Skip to content

Phase 1: Noetica workstation install and OS-native service model #20

Description

@mdheller

Scope

Initialize Phase 1 for making Noetica installable and runnable on macOS and Linux without coupling service supervision to Homebrew.

Corrected operating assumptions

  • Homebrew is an installer/distribution path for the Mac workstation and developer bootstrapping.
  • Homebrew must not be treated as the canonical service supervisor.
  • Noetica should provide its own CLI entrypoint and lifecycle commands, similar in spirit to Codex / Claude Code style foreground operation.
  • Long-running service mode must use OS-native supervision:
    • macOS: launchctl / LaunchAgent plist
    • Linux / SourceOS: systemd --user, systemd unit, or Quadlet where containerized
  • Agent Machine remains the local runtime substrate for local providers/workers, but Phase 1 should not require live Agent Machine provider activation.
  • AgentTerm is not on the critical path for Phase 1.
  • Prophet Mesh in GCP is deferred until after Noetica install/provider abstraction works against external test providers such as GPT/Claude.

Phase 1 target

brew install SourceOS-Linux/tap/noetica should install a coherent Noetica workstation package that can be run in foreground or registered with OS-native service control.

Initial commands should include:

noetica version
noetica doctor
noetica configure
noetica start
noetica open
noetica smoke
noetica service install
noetica service start
noetica service status
noetica service stop
noetica service uninstall

noetica service ... must call through to the platform-native service adapter, not Homebrew services.

Required implementation plan

  1. Add a Phase 1 install architecture document in docs/architecture/noetica-workstation-install-phase-1.md.
  2. Add a small CLI wrapper or launcher contract for Noetica lifecycle commands.
  3. Add macOS LaunchAgent template generation.
  4. Add Linux systemd user unit template generation.
  5. Add config path discipline:
    • macOS/Linux user config: ~/.config/sourceos/noetica/config.json
    • user state/logs under SourceOS-aligned user-state paths.
  6. Add provider config for external test providers first:
    • OpenAI-compatible route
    • Anthropic/Claude route
    • placeholder SourceOS route
    • placeholder Agent Machine route
  7. Add noetica doctor checks:
    • Node runtime present
    • Noetica build present
    • config present/valid
    • external provider key present or explicitly absent
    • Agent Machine installed or absent
    • SourceOS route configured/unconfigured
  8. Add noetica smoke using external provider or dry-run mode.
  9. Add Homebrew formula only after lifecycle contract is explicit.

Acceptance criteria

  • Homebrew installs Noetica files and the noetica CLI.
  • Running noetica start starts Noetica in foreground without service registration.
  • Running noetica service install writes the correct OS-native service definition.
  • Running noetica service start/status/stop uses launchctl on macOS and systemctl --user or SourceOS-compatible control on Linux.
  • Noetica works with external GPT/Claude test providers before Prophet Mesh exists.
  • Noetica does not require AgentTerm.
  • Noetica detects Agent Machine but does not fail if Agent Machine is bootstrap-only.
  • Prophet Mesh remains Phase 5 / later-provider work, not Phase 1.

Non-goals

  • Do not use brew services as the canonical service abstraction.
  • Do not require Prophet Mesh for first install.
  • Do not require live Agent Machine provider activation for Phase 1.
  • Do not include AgentTerm in the default install path.
  • Do not add unrestricted memory persistence or policy bypasses.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions