@phnx-labs/agents-cli 1.22.39 → 1.22.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +294 -0
- package/README.md +111 -70
- package/dist/bin/agents +0 -0
- package/dist/bootstrap.js +45 -26
- package/dist/browser.js +2 -2
- package/dist/cli/command-registry.d.ts +135 -0
- package/dist/cli/command-registry.js +260 -0
- package/dist/commands/accounts.d.ts +20 -0
- package/dist/commands/accounts.js +186 -25
- package/dist/commands/apply.d.ts +3 -3
- package/dist/commands/apply.js +20 -63
- package/dist/commands/browser.js +206 -94
- package/dist/commands/budget.d.ts +7 -6
- package/dist/commands/budget.js +8 -7
- package/dist/commands/cloud.js +17 -20
- package/dist/commands/commands.js +1 -1
- package/dist/commands/computer-actions.d.ts +1 -35
- package/dist/commands/computer-actions.js +13 -181
- package/dist/commands/computer.d.ts +28 -3
- package/dist/commands/computer.js +93 -65
- package/dist/commands/config.js +16 -3
- package/dist/commands/cost.d.ts +2 -1
- package/dist/commands/cost.js +7 -6
- package/dist/commands/daemon.js +151 -4
- package/dist/commands/detach.js +1 -1
- package/dist/commands/doctor.js +19 -11
- package/dist/commands/events.js +1 -1
- package/dist/commands/exec.d.ts +2 -50
- package/dist/commands/exec.js +160 -215
- package/dist/commands/factory.js +1 -1
- package/dist/commands/feed.d.ts +2 -2
- package/dist/commands/feed.js +9 -12
- package/dist/commands/fleet-capture.js +25 -27
- package/dist/commands/focus.d.ts +2 -3
- package/dist/commands/focus.js +34 -9
- package/dist/commands/go.js +15 -5
- package/dist/commands/harness.d.ts +3 -3
- package/dist/commands/harness.js +53 -5
- package/dist/commands/hooks.js +1 -1
- package/dist/commands/import.js +2 -2
- package/dist/commands/insights.d.ts +5 -5
- package/dist/commands/insights.js +15 -9
- package/dist/commands/inspect.d.ts +2 -3
- package/dist/commands/inspect.js +4 -16
- package/dist/commands/logs.d.ts +2 -2
- package/dist/commands/logs.js +9 -9
- package/dist/commands/mcp.js +2 -2
- package/dist/commands/memory.js +1 -1
- package/dist/commands/message.d.ts +1 -1
- package/dist/commands/message.js +7 -7
- package/dist/commands/mine.d.ts +11 -8
- package/dist/commands/mine.js +11 -10
- package/dist/commands/models.js +1 -1
- package/dist/commands/modes.js +1 -1
- package/dist/commands/monitors.js +23 -6
- package/dist/commands/output.d.ts +7 -6
- package/dist/commands/output.js +11 -10
- package/dist/commands/packages.js +4 -4
- package/dist/commands/perf.js +1 -1
- package/dist/commands/permissions.js +49 -32
- package/dist/commands/plugins.d.ts +1 -1
- package/dist/commands/plugins.js +3 -3
- package/dist/commands/profiles.d.ts +6 -9
- package/dist/commands/profiles.js +8 -321
- package/dist/commands/projects.d.ts +9 -0
- package/dist/commands/projects.js +140 -8
- package/dist/commands/prune.js +5 -13
- package/dist/commands/refresh-rules.js +1 -1
- package/dist/commands/repo.d.ts +5 -7
- package/dist/commands/repo.js +34 -18
- package/dist/commands/resource-view.js +4 -0
- package/dist/commands/resume.d.ts +11 -7
- package/dist/commands/resume.js +82 -98
- package/dist/commands/route.d.ts +12 -0
- package/dist/commands/route.js +261 -0
- package/dist/commands/routines.d.ts +2 -3
- package/dist/commands/routines.js +120 -145
- package/dist/commands/rules.js +1 -1
- package/dist/commands/run-account-picker.d.ts +1 -1
- package/dist/commands/run-account-picker.js +2 -2
- package/dist/commands/run-broadcast.d.ts +21 -0
- package/dist/commands/run-broadcast.js +89 -0
- package/dist/commands/run-cloud.js +1 -1
- package/dist/commands/secrets-vault.d.ts +10 -0
- package/dist/commands/{login.js → secrets-vault.js} +34 -14
- package/dist/commands/secrets.d.ts +4 -4
- package/dist/commands/secrets.js +72 -63
- package/dist/commands/sessions-backfill.js +1 -1
- package/dist/commands/sessions-browser.d.ts +1 -1
- package/dist/commands/sessions-browser.js +9 -5
- package/dist/commands/sessions-export.js +2 -2
- package/dist/commands/sessions-inject.js +4 -5
- package/dist/commands/sessions-migrate.js +16 -27
- package/dist/commands/sessions-picker.d.ts +13 -0
- package/dist/commands/sessions-picker.js +182 -8
- package/dist/commands/sessions-resume.d.ts +7 -3
- package/dist/commands/sessions-resume.js +81 -33
- package/dist/commands/sessions-stats.js +2 -2
- package/dist/commands/sessions.d.ts +75 -68
- package/dist/commands/sessions.js +142 -180
- package/dist/commands/setup-computer.js +1 -1
- package/dist/commands/setup-fleet.js +3 -0
- package/dist/commands/setup-mine.d.ts +7 -3
- package/dist/commands/setup-mine.js +13 -8
- package/dist/commands/setup-secrets.js +2 -2
- package/dist/commands/setup-watchdog.js +2 -2
- package/dist/commands/setup.js +7 -2
- package/dist/commands/share.d.ts +65 -0
- package/dist/commands/share.js +253 -20
- package/dist/commands/skills.js +3 -3
- package/dist/commands/snapshot.d.ts +2 -2
- package/dist/commands/snapshot.js +9 -9
- package/dist/commands/ssh.d.ts +1 -1
- package/dist/commands/ssh.js +186 -64
- package/dist/commands/subagents.js +1 -1
- package/dist/commands/sync.js +24 -9
- package/dist/commands/teams.d.ts +2 -2
- package/dist/commands/teams.js +9 -18
- package/dist/commands/tmux.js +5 -1
- package/dist/commands/trash.js +1 -1
- package/dist/commands/usage.d.ts +1 -1
- package/dist/commands/usage.js +2 -2
- package/dist/commands/utils.d.ts +4 -14
- package/dist/commands/utils.js +6 -27
- package/dist/commands/versions.js +2 -2
- package/dist/commands/view.d.ts +9 -77
- package/dist/commands/view.js +23 -8
- package/dist/commands/watchdog.js +1 -1
- package/dist/commands/webhook.js +11 -25
- package/dist/commands/workflows.js +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/account-capabilities.d.ts +39 -0
- package/dist/lib/account-capabilities.js +59 -0
- package/dist/lib/account-catalog.js +1 -1
- package/dist/lib/account-registry.d.ts +66 -0
- package/dist/lib/account-registry.js +151 -5
- package/dist/lib/{rotate.d.ts → accounting/rotate.d.ts} +4 -4
- package/dist/lib/{rotate.js → accounting/rotate.js} +8 -8
- package/dist/lib/{usage.d.ts → accounting/usage.d.ts} +4 -4
- package/dist/lib/{usage.js → accounting/usage.js} +11 -11
- package/dist/lib/agent-spec/provider.js +1 -1
- package/dist/lib/agents.d.ts +72 -4
- package/dist/lib/agents.js +231 -199
- package/dist/lib/answer-router.d.ts +2 -2
- package/dist/lib/ask-classifier.d.ts +1 -1
- package/dist/lib/ask-classifier.js +1 -1
- package/dist/lib/audit/log.js +1 -1
- package/dist/lib/auth-health.d.ts +1 -1
- package/dist/lib/auth-health.js +2 -2
- package/dist/lib/brand.js +1 -1
- package/dist/lib/browser/caller-identity.d.ts +28 -0
- package/dist/lib/browser/caller-identity.js +156 -0
- package/dist/lib/browser/cdp.js +1 -1
- package/dist/lib/browser/drivers/ssh.d.ts +1 -1
- package/dist/lib/browser/drivers/ssh.js +2 -2
- package/dist/lib/browser/hygiene.d.ts +10 -2
- package/dist/lib/browser/hygiene.js +7 -4
- package/dist/lib/browser/ipc.d.ts +22 -2
- package/dist/lib/browser/ipc.js +185 -21
- package/dist/lib/browser/profiles.d.ts +67 -3
- package/dist/lib/browser/profiles.js +129 -7
- package/dist/lib/browser/remote-control.d.ts +2 -2
- package/dist/lib/browser/remote-control.js +3 -3
- package/dist/lib/browser/runtime-state.d.ts +79 -0
- package/dist/lib/browser/runtime-state.js +119 -1
- package/dist/lib/browser/service.d.ts +113 -1
- package/dist/lib/browser/service.js +454 -40
- package/dist/lib/browser/sessions-list.d.ts +2 -1
- package/dist/lib/browser/sessions-list.js +4 -13
- package/dist/lib/browser/types.d.ts +18 -0
- package/dist/lib/budget/config.js +1 -1
- package/dist/lib/budget/ledger.js +1 -1
- package/dist/lib/byok-usage.js +1 -1
- package/dist/lib/capabilities.js +3 -15
- package/dist/lib/catchup.d.ts +1 -1
- package/dist/lib/catchup.js +1 -1
- package/dist/lib/cloud/dispatch.js +1 -1
- package/dist/lib/cloud/host.d.ts +3 -3
- package/dist/lib/cloud/host.js +5 -5
- package/dist/lib/cloud/rush.d.ts +9 -21
- package/dist/lib/cloud/rush.js +33 -120
- package/dist/lib/cloud/types.d.ts +2 -2
- package/dist/lib/commands.js +3 -13
- package/dist/lib/computer/actions.d.ts +36 -0
- package/dist/lib/computer/actions.js +162 -0
- package/dist/lib/computer/dispatch.d.ts +2 -2
- package/dist/lib/computer/dispatch.js +2 -2
- package/dist/lib/computer/sessions-list.d.ts +3 -3
- package/dist/lib/computer/sessions-list.js +2 -2
- package/dist/lib/config-keys.d.ts +2 -1
- package/dist/lib/config-keys.js +8 -4
- package/dist/lib/config-machine-keys.d.ts +4 -2
- package/dist/lib/config-machine-keys.js +5 -2
- package/dist/lib/crabbox/lease.js +9 -1
- package/dist/lib/crabbox/runtimes.d.ts +32 -7
- package/dist/lib/crabbox/runtimes.js +72 -30
- package/dist/lib/{daemon.d.ts → daemon/daemon.d.ts} +59 -1
- package/dist/lib/{daemon.js → daemon/daemon.js} +237 -49
- package/dist/lib/daemon-services.d.ts +1 -1
- package/dist/lib/daemon-services.js +5 -0
- package/dist/lib/daemon-ticks.d.ts +25 -0
- package/dist/lib/daemon-ticks.js +31 -1
- package/dist/lib/daemon-webhooks.d.ts +102 -0
- package/dist/lib/daemon-webhooks.js +210 -0
- package/dist/lib/device-config.d.ts +85 -75
- package/dist/lib/device-config.js +279 -141
- package/dist/lib/devices/config-migration.d.ts +29 -34
- package/dist/lib/devices/config-migration.js +209 -130
- package/dist/lib/devices/connect.d.ts +2 -2
- package/dist/lib/devices/connect.js +2 -2
- package/dist/lib/devices/discovery-policy.d.ts +30 -0
- package/dist/lib/devices/discovery-policy.js +101 -0
- package/dist/lib/devices/fleet-inventory.js +8 -3
- package/dist/lib/devices/harness-inventory.d.ts +1 -1
- package/dist/lib/devices/harness-inventory.js +12 -3
- package/dist/lib/devices/known-hosts.js +1 -1
- package/dist/lib/devices/pool.d.ts +10 -5
- package/dist/lib/devices/pool.js +5 -7
- package/dist/lib/devices/registry.d.ts +1 -1
- package/dist/lib/devices/registry.js +1 -1
- package/dist/lib/devices/resolve-profile.d.ts +2 -2
- package/dist/lib/devices/resolve-profile.js +2 -2
- package/dist/lib/devices/resolve-target.d.ts +1 -1
- package/dist/lib/devices/resolve-target.js +4 -4
- package/dist/lib/devices/self-host.d.ts +1 -1
- package/dist/lib/devices/self-host.js +3 -3
- package/dist/lib/devices/ssh-config.d.ts +1 -1
- package/dist/lib/devices/stats-cache.js +1 -1
- package/dist/lib/devices/sync.d.ts +3 -1
- package/dist/lib/devices/sync.js +3 -3
- package/dist/lib/doctor-diff.js +4 -4
- package/dist/lib/drift-sync.js +2 -2
- package/dist/lib/drift.js +2 -2
- package/dist/lib/event-families.d.ts +1 -1
- package/dist/lib/event-stream.d.ts +1 -1
- package/dist/lib/event-stream.js +2 -2
- package/dist/lib/events-ingest.js +2 -2
- package/dist/lib/exec.d.ts +4 -4
- package/dist/lib/exec.js +11 -11
- package/dist/lib/factory/snapshot.d.ts +1 -1
- package/dist/lib/factory/snapshot.js +1 -1
- package/dist/lib/{activity.d.ts → feed/activity.d.ts} +1 -1
- package/dist/lib/{activity.js → feed/activity.js} +7 -7
- package/dist/lib/{events.d.ts → feed/events.d.ts} +2 -2
- package/dist/lib/{events.js → feed/events.js} +5 -5
- package/dist/lib/{feed.js → feed/feed.js} +4 -4
- package/dist/lib/feed-outcome.d.ts +1 -1
- package/dist/lib/feed-policy.d.ts +1 -1
- package/dist/lib/feed-policy.js +1 -1
- package/dist/lib/feed-post.d.ts +1 -1
- package/dist/lib/feed-post.js +1 -1
- package/dist/lib/feed-ranking.d.ts +1 -1
- package/dist/lib/fleet/apply.d.ts +0 -6
- package/dist/lib/fleet/apply.js +18 -45
- package/dist/lib/fleet/auth-sync.d.ts +16 -35
- package/dist/lib/fleet/auth-sync.js +16 -75
- package/dist/lib/fleet/capture.js +8 -6
- package/dist/lib/fleet/manifest.js +23 -11
- package/dist/lib/fleet/types.d.ts +19 -7
- package/dist/lib/fleet-cache.d.ts +1 -1
- package/dist/lib/fleet-cache.js +1 -1
- package/dist/lib/format.d.ts +19 -0
- package/dist/lib/format.js +44 -1
- package/dist/lib/friction-heuristics.d.ts +1 -1
- package/dist/lib/git.d.ts +24 -1
- package/dist/lib/git.js +82 -38
- package/dist/lib/heal.js +3 -3
- package/dist/lib/hooks.d.ts +18 -0
- package/dist/lib/hooks.js +113 -1
- package/dist/lib/hosts/credentials.d.ts +30 -10
- package/dist/lib/hosts/credentials.js +38 -26
- package/dist/lib/hosts/dispatch.d.ts +3 -3
- package/dist/lib/hosts/dispatch.js +3 -3
- package/dist/lib/hosts/option.d.ts +3 -3
- package/dist/lib/hosts/option.js +7 -8
- package/dist/lib/hosts/passthrough.d.ts +17 -17
- package/dist/lib/hosts/passthrough.js +67 -50
- package/dist/lib/hosts/providers/devices.d.ts +1 -1
- package/dist/lib/hosts/providers/devices.js +1 -1
- package/dist/lib/hosts/reconcile.d.ts +1 -1
- package/dist/lib/hosts/reconcile.js +1 -1
- package/dist/lib/hosts/reconnect.d.ts +1 -1
- package/dist/lib/hosts/reconnect.js +2 -2
- package/dist/lib/hosts/registry.d.ts +5 -5
- package/dist/lib/hosts/registry.js +5 -5
- package/dist/lib/hosts/remote-cmd.d.ts +10 -10
- package/dist/lib/hosts/remote-cmd.js +25 -18
- package/dist/lib/hosts/remote-os.d.ts +4 -4
- package/dist/lib/hosts/remote-os.js +4 -4
- package/dist/lib/hosts/remote-session-id.d.ts +2 -2
- package/dist/lib/hosts/remote-session-id.js +2 -2
- package/dist/lib/hosts/routing-flag.d.ts +3 -3
- package/dist/lib/hosts/routing-flag.js +4 -5
- package/dist/lib/hosts/run-target.d.ts +4 -4
- package/dist/lib/hosts/run-target.js +4 -4
- package/dist/lib/hosts/session-index.d.ts +2 -2
- package/dist/lib/hosts/session-index.js +1 -1
- package/dist/lib/hosts/session-marker.d.ts +1 -1
- package/dist/lib/hosts/session-marker.js +1 -1
- package/dist/lib/hosts/types.d.ts +2 -2
- package/dist/lib/hosts/types.js +2 -2
- package/dist/lib/import.js +1 -1
- package/dist/lib/{migrate.d.ts → installations/migrate.d.ts} +13 -1
- package/dist/lib/{migrate.js → installations/migrate.js} +160 -40
- package/dist/lib/installations/resolve.js +1 -1
- package/dist/lib/installations/strategies.js +1 -1
- package/dist/lib/installations/update.js +2 -2
- package/dist/lib/{versions.d.ts → installations/versions.d.ts} +12 -3
- package/dist/lib/{versions.js → installations/versions.js} +51 -31
- package/dist/lib/isolation-boundary-report.js +1 -1
- package/dist/lib/linear-projects.d.ts +28 -0
- package/dist/lib/linear-projects.js +30 -0
- package/dist/lib/loop.js +1 -1
- package/dist/lib/mailbox-gc.js +1 -1
- package/dist/lib/mailbox.js +1 -1
- package/dist/lib/mcp-registry.d.ts +62 -0
- package/dist/lib/mcp-registry.js +177 -0
- package/dist/lib/mcp.d.ts +5 -0
- package/dist/lib/mcp.js +124 -307
- package/dist/lib/menubar/MenubarHelper.app/Contents/CodeResources +0 -0
- package/dist/lib/menubar/MenubarHelper.app/Contents/MacOS/MenubarHelper +0 -0
- package/dist/lib/menubar/install-menubar.d.ts +7 -0
- package/dist/lib/menubar/install-menubar.js +24 -6
- package/dist/lib/menubar/snapshot.d.ts +7 -0
- package/dist/lib/menubar/snapshot.js +8 -6
- package/dist/lib/models.js +1 -1
- package/dist/lib/monitors/config.d.ts +12 -0
- package/dist/lib/monitors/config.js +3 -0
- package/dist/lib/monitors/dispatch.js +26 -5
- package/dist/lib/monitors/engine.js +10 -0
- package/dist/lib/monitors/sources/webhook.d.ts +1 -1
- package/dist/lib/monitors/state.d.ts +42 -0
- package/dist/lib/monitors/state.js +30 -0
- package/dist/lib/notify.d.ts +1 -1
- package/dist/lib/observe-aliases.d.ts +2 -2
- package/dist/lib/observe-aliases.js +2 -11
- package/dist/lib/output/git-output.js +2 -2
- package/dist/lib/overdue.d.ts +1 -1
- package/dist/lib/overdue.js +1 -1
- package/dist/lib/permissions-registry.d.ts +65 -0
- package/dist/lib/permissions-registry.js +599 -0
- package/dist/lib/permissions.d.ts +24 -13
- package/dist/lib/permissions.js +52 -271
- package/dist/lib/picker.d.ts +16 -0
- package/dist/lib/picker.js +33 -3
- package/dist/lib/placement.d.ts +1 -1
- package/dist/lib/placement.js +4 -4
- package/dist/lib/platform/paths.d.ts +8 -0
- package/dist/lib/platform/paths.js +11 -0
- package/dist/lib/platform/posixpath.js +3 -3
- package/dist/lib/{plugin-marketplace.d.ts → plugins/plugin-marketplace.d.ts} +1 -1
- package/dist/lib/{plugin-marketplace.js → plugins/plugin-marketplace.js} +2 -2
- package/dist/lib/{plugins.d.ts → plugins/plugins.d.ts} +1 -1
- package/dist/lib/{plugins.js → plugins/plugins.js} +7 -7
- package/dist/lib/{skills.d.ts → plugins/skills.d.ts} +1 -1
- package/dist/lib/{skills.js → plugins/skills.js} +7 -7
- package/dist/lib/pricing/cost.d.ts +1 -1
- package/dist/lib/pricing/cost.js +1 -1
- package/dist/lib/profiles-presets.d.ts +1 -1
- package/dist/lib/profiles-presets.js +1 -1
- package/dist/lib/profiles.js +2 -2
- package/dist/lib/project-import.js +4 -1
- package/dist/lib/project-launch.d.ts +1 -1
- package/dist/lib/project-launch.js +3 -3
- package/dist/lib/project-pull.d.ts +128 -0
- package/dist/lib/project-pull.js +384 -0
- package/dist/lib/project-root.d.ts +2 -2
- package/dist/lib/project-root.js +2 -2
- package/dist/lib/project-status.js +1 -1
- package/dist/lib/projects.d.ts +23 -0
- package/dist/lib/projects.js +29 -6
- package/dist/lib/refresh.d.ts +12 -1
- package/dist/lib/refresh.js +16 -9
- package/dist/lib/registry.d.ts +9 -2
- package/dist/lib/registry.js +11 -4
- package/dist/lib/resources.d.ts +2 -2
- package/dist/lib/resources.js +2 -2
- package/dist/lib/routers.d.ts +81 -0
- package/dist/lib/routers.js +153 -0
- package/dist/lib/routine-context.d.ts +1 -0
- package/dist/lib/routine-context.js +7 -2
- package/dist/lib/routine-notify-owner.d.ts +1 -1
- package/dist/lib/routine-notify.d.ts +1 -1
- package/dist/lib/routine-notify.js +1 -1
- package/dist/lib/routine-process-cleanup.d.ts +1 -1
- package/dist/lib/routine-readiness.d.ts +1 -1
- package/dist/lib/routine-readiness.js +11 -4
- package/dist/lib/routines-placement.d.ts +12 -2
- package/dist/lib/routines-placement.js +20 -3
- package/dist/lib/routines-project.d.ts +1 -1
- package/dist/lib/routines-project.js +1 -1
- package/dist/lib/rules/compile.d.ts +1 -0
- package/dist/lib/rules/compile.js +10 -2
- package/dist/lib/rules/rules.js +1 -1
- package/dist/lib/run-notify.js +1 -1
- package/dist/lib/runner.d.ts +80 -2
- package/dist/lib/runner.js +241 -62
- package/dist/lib/sandbox.d.ts +1 -1
- package/dist/lib/scheduler.d.ts +1 -1
- package/dist/lib/scheduler.js +1 -1
- package/dist/lib/{routines.d.ts → scheduling/routines.d.ts} +54 -9
- package/dist/lib/{routines.js → scheduling/routines.js} +173 -14
- package/dist/lib/secrets/Agents CLI.app/Contents/CodeResources +0 -0
- package/dist/lib/secrets/Agents CLI.app/Contents/MacOS/Agents CLI +0 -0
- package/dist/lib/secrets/agent.js +2 -2
- package/dist/lib/secrets/audit.js +1 -1
- package/dist/lib/secrets/bundles.d.ts +3 -3
- package/dist/lib/secrets/bundles.js +7 -7
- package/dist/lib/secrets/index.js +1 -1
- package/dist/lib/secrets/list-filter.d.ts +1 -1
- package/dist/lib/secrets/list-filter.js +2 -2
- package/dist/lib/secrets/push.d.ts +1 -1
- package/dist/lib/secrets/push.js +10 -12
- package/dist/lib/secrets/remote.d.ts +12 -10
- package/dist/lib/secrets/remote.js +21 -14
- package/dist/lib/secrets/vault.js +2 -2
- package/dist/lib/self-heal/checks/shadowing.js +1 -1
- package/dist/lib/self-heal/checks/shims.js +1 -1
- package/dist/lib/self-update.d.ts +39 -4
- package/dist/lib/self-update.js +78 -25
- package/dist/lib/serve/control.d.ts +1 -1
- package/dist/lib/serve/control.js +4 -4
- package/dist/lib/serve/data.d.ts +1 -1
- package/dist/lib/serve/data.js +1 -1
- package/dist/lib/serve/stream.js +1 -1
- package/dist/lib/service-manifest.d.ts +29 -0
- package/dist/lib/service-manifest.js +80 -0
- package/dist/lib/session/active.d.ts +59 -7
- package/dist/lib/session/active.js +158 -17
- package/dist/lib/session/bash-command.js +1 -1
- package/dist/lib/session/claude-accounts.d.ts +1 -1
- package/dist/lib/session/claude-accounts.js +1 -1
- package/dist/lib/session/db.d.ts +10 -2
- package/dist/lib/session/db.js +25 -6
- package/dist/lib/session/discover.d.ts +77 -0
- package/dist/lib/session/discover.js +130 -25
- package/dist/lib/session/fork.js +1 -1
- package/dist/lib/session/inject.d.ts +1 -1
- package/dist/lib/session/insights.d.ts +1 -1
- package/dist/lib/session/insights.js +1 -1
- package/dist/lib/session/live-metadata.d.ts +15 -0
- package/dist/lib/session/live-metadata.js +76 -0
- package/dist/lib/session/migrate-targets.d.ts +1 -1
- package/dist/lib/session/recovery.d.ts +1 -1
- package/dist/lib/session/recovery.js +2 -2
- package/dist/lib/session/remote-active.d.ts +10 -1
- package/dist/lib/session/remote-active.js +8 -3
- package/dist/lib/session/remote-bundle.d.ts +1 -1
- package/dist/lib/session/remote-bundle.js +2 -2
- package/dist/lib/session/remote-list.d.ts +15 -4
- package/dist/lib/session/remote-list.js +40 -3
- package/dist/lib/session/remote.d.ts +5 -5
- package/dist/lib/session/remote.js +13 -17
- package/dist/lib/session/resume-command.d.ts +3 -2
- package/dist/lib/session/resume-command.js +4 -3
- package/dist/lib/session/resume-owner.d.ts +3 -3
- package/dist/lib/session/resume-owner.js +3 -3
- package/dist/lib/session/session-cache.d.ts +12 -0
- package/dist/lib/session/session-cache.js +2 -0
- package/dist/lib/session/shell-programs.js +1 -1
- package/dist/lib/session/state.js +5 -5
- package/dist/lib/session/team-filter.d.ts +1 -1
- package/dist/lib/session/team-filter.js +1 -1
- package/dist/lib/session/types.d.ts +3 -3
- package/dist/lib/session/width.d.ts +2 -2
- package/dist/lib/session/width.js +2 -2
- package/dist/lib/share/delete.d.ts +21 -0
- package/dist/lib/share/delete.js +42 -0
- package/dist/lib/share/publish.d.ts +82 -0
- package/dist/lib/share/publish.js +170 -18
- package/dist/lib/share/worker-template.js +172 -9
- package/dist/lib/shims.js +35 -7
- package/dist/lib/smart-launch.d.ts +4 -4
- package/dist/lib/smart-launch.js +6 -4
- package/dist/lib/snapshot.d.ts +4 -4
- package/dist/lib/snapshot.js +2 -2
- package/dist/lib/ssh-exec.d.ts +1 -1
- package/dist/lib/ssh-exec.js +2 -2
- package/dist/lib/ssh-tunnel.d.ts +10 -10
- package/dist/lib/ssh-tunnel.js +12 -12
- package/dist/lib/staleness/checkers/hooks.d.ts +1 -1
- package/dist/lib/staleness/checkers/hooks.js +1 -1
- package/dist/lib/staleness/detectors/permissions.js +0 -23
- package/dist/lib/staleness/detectors/plugins.js +1 -1
- package/dist/lib/staleness/fingerprint.js +1 -1
- package/dist/lib/staleness/layers.d.ts +1 -1
- package/dist/lib/staleness/layers.js +1 -1
- package/dist/lib/staleness/writers/mcp.js +3 -1
- package/dist/lib/staleness/writers/plugins.js +1 -1
- package/dist/lib/staleness/writers/types.d.ts +8 -0
- package/dist/lib/startup/command-registry.d.ts +5 -147
- package/dist/lib/startup/command-registry.js +38 -303
- package/dist/lib/startup/dev-build.d.ts +0 -21
- package/dist/lib/startup/dev-build.js +29 -8
- package/dist/lib/state.d.ts +19 -1
- package/dist/lib/state.js +120 -51
- package/dist/lib/subagents.js +1 -1
- package/dist/lib/sync-status.js +1 -1
- package/dist/lib/sync-umbrella.d.ts +6 -1
- package/dist/lib/sync-umbrella.js +9 -4
- package/dist/lib/teams/agents.js +2 -2
- package/dist/lib/teams/registry.js +1 -1
- package/dist/lib/terminal/backends/vscodium-agent.js +1 -1
- package/dist/lib/terminal/engine.js +1 -1
- package/dist/lib/terminal/index.d.ts +4 -0
- package/dist/lib/terminal/index.js +3 -0
- package/dist/lib/terminal/inject.d.ts +2 -2
- package/dist/lib/terminal/inject.js +2 -2
- package/dist/lib/terminal/transport.js +1 -1
- package/dist/lib/tmux/index.d.ts +1 -1
- package/dist/lib/tmux/index.js +1 -1
- package/dist/lib/tmux/session.d.ts +21 -5
- package/dist/lib/tmux/session.js +76 -22
- package/dist/lib/triggers/handlers.d.ts +1 -1
- package/dist/lib/triggers/handlers.js +2 -2
- package/dist/lib/triggers/webhook.d.ts +36 -2
- package/dist/lib/triggers/webhook.js +97 -42
- package/dist/lib/types.d.ts +18 -6
- package/dist/lib/usage-fleet.d.ts +1 -1
- package/dist/lib/usage-fleet.js +1 -1
- package/dist/lib/usage-refresh.d.ts +1 -1
- package/dist/lib/usage-refresh.js +3 -3
- package/dist/lib/version-duplicates.js +2 -2
- package/dist/lib/view-types.d.ts +56 -0
- package/dist/lib/view-types.js +1 -0
- package/dist/lib/watchdog/rotate.d.ts +2 -2
- package/dist/lib/watchdog/rotate.js +3 -3
- package/dist/lib/watchdog/runner.d.ts +2 -3
- package/dist/lib/watchdog/runner.js +3 -4
- package/dist/lib/workflows.js +1 -1
- package/package.json +2 -1
- package/scripts/postinstall.js +2 -2
- package/dist/commands/bench.d.ts +0 -2
- package/dist/commands/bench.js +0 -101
- package/dist/commands/cp.d.ts +0 -84
- package/dist/commands/cp.js +0 -231
- package/dist/commands/login.d.ts +0 -2
- package/dist/lib/resources/commands.d.ts +0 -46
- package/dist/lib/resources/commands.js +0 -211
- package/dist/lib/resources/hooks.d.ts +0 -16
- package/dist/lib/resources/hooks.js +0 -153
- package/dist/lib/resources/mcp.d.ts +0 -34
- package/dist/lib/resources/mcp.js +0 -250
- package/dist/lib/resources/memory.d.ts +0 -15
- package/dist/lib/resources/memory.js +0 -46
- package/dist/lib/resources/permissions.d.ts +0 -13
- package/dist/lib/resources/permissions.js +0 -202
- package/dist/lib/resources/rules.d.ts +0 -46
- package/dist/lib/resources/rules.js +0 -179
- package/dist/lib/resources/skills.d.ts +0 -37
- package/dist/lib/resources/skills.js +0 -247
- package/dist/lib/resources/subagents.d.ts +0 -46
- package/dist/lib/resources/subagents.js +0 -202
- /package/dist/lib/{feed.d.ts → feed/feed.d.ts} +0 -0
|
@@ -1,283 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
* Parity is non-negotiable: the name -> loader map below mirrors exactly which
|
|
16
|
-
* module registers which top-level command on `main`. Multi-command modules
|
|
17
|
-
* (versions, packages) map several names to the same loader; `prune` needs BOTH
|
|
18
|
-
* versions (which creates `prune <specs...>`) and prune.js (which attaches the
|
|
19
|
-
* `cleanup` subcommand to it), in that order — see commands/prune.ts.
|
|
20
|
-
*/
|
|
21
|
-
import { Command } from 'commander';
|
|
22
|
-
import { readFileSync } from 'node:fs';
|
|
23
|
-
import { fileURLToPath } from 'node:url';
|
|
24
|
-
import { configureRootCommand } from './root-command.js';
|
|
25
|
-
// One loader per command module. Each dynamically imports the module and hands
|
|
26
|
-
// back its register function. Kept as named consts so src/index.ts can compose
|
|
27
|
-
// them into the exact main-branch registration order for the slow path.
|
|
28
|
-
export const loadView = async () => (await import('../../commands/view.js')).registerViewCommand;
|
|
29
|
-
export const loadInspect = async () => (await import('../../commands/inspect.js')).registerInspectCommand;
|
|
30
|
-
export const loadFeedback = async () => (await import('../../commands/feedback.js')).registerFeedbackCommand;
|
|
31
|
-
export const loadCommands = async () => (await import('../../commands/commands.js')).registerCommandsCommands;
|
|
32
|
-
export const loadHooks = async () => (await import('../../commands/hooks.js')).registerHooksCommands;
|
|
33
|
-
export const loadSkills = async () => (await import('../../commands/skills.js')).registerSkillsCommands;
|
|
34
|
-
export const loadRules = async () => (await import('../../commands/rules.js')).registerRulesCommands;
|
|
35
|
-
export const loadMemory = async () => (await import('../../commands/memory.js')).registerMemoryCommands;
|
|
36
|
-
export const loadPermissions = async () => (await import('../../commands/permissions.js')).registerPermissionsCommands;
|
|
37
|
-
export const loadMcp = async () => (await import('../../commands/mcp.js')).registerMcpCommands;
|
|
38
|
-
export const loadCli = async () => (await import('../../commands/cli.js')).registerCliCommands;
|
|
39
|
-
export const loadSubagents = async () => (await import('../../commands/subagents.js')).registerSubagentsCommands;
|
|
40
|
-
export const loadPlugins = async () => (await import('../../commands/plugins.js')).registerPluginsCommands;
|
|
41
|
-
export const loadWorkflows = async () => (await import('../../commands/workflows.js')).registerWorkflowsCommands;
|
|
42
|
-
export const loadVersions = async () => (await import('../../commands/versions.js')).registerVersionsCommands;
|
|
43
|
-
export const loadUpdate = async () => (await import('../../commands/update.js')).registerUpdateCommand;
|
|
44
|
-
export const loadImport = async () => (await import('../../commands/import.js')).registerImportCommand;
|
|
45
|
-
export const loadPackages = async () => (await import('../../commands/packages.js')).registerPackagesCommands;
|
|
46
|
-
export const loadRoutines = async () => (await import('../../commands/routines.js')).registerRoutinesCommands;
|
|
47
|
-
export const loadMonitors = async () => (await import('../../commands/monitors.js')).registerMonitorsCommands;
|
|
48
|
-
export const loadProjects = async () => (await import('../../commands/projects.js')).registerProjectsCommands;
|
|
49
|
-
export const loadRun = async () => (await import('../../commands/exec.js')).registerRunCommand;
|
|
50
|
-
export const loadResume = async () => (await import('../../commands/resume.js')).registerResumeCommand;
|
|
51
|
-
export const loadOpen = async () => (await import('../../commands/open.js')).registerOpenCommand;
|
|
52
|
-
export const loadReconnect = async () => (await import('../../commands/reconnect.js')).registerReconnectCommand;
|
|
53
|
-
export const loadFork = async () => (await import('../../commands/fork.js')).registerForkCommand;
|
|
54
|
-
export const loadConfig = async () => (await import('../../commands/config.js')).registerConfigCommand;
|
|
55
|
-
export const loadModels = async () => (await import('../../commands/models.js')).registerModelsCommand;
|
|
56
|
-
export const loadModes = async () => (await import('../../commands/modes.js')).registerModesCommand;
|
|
57
|
-
export const loadPrune = async () => (await import('../../commands/prune.js')).registerPruneCommand;
|
|
58
|
-
export const loadTrash = async () => (await import('../../commands/trash.js')).registerTrashCommands;
|
|
59
|
-
export const loadRestore = async () => (await import('../../commands/trash.js')).registerRestoreCommand;
|
|
60
|
-
export const loadDoctor = async () => (await import('../../commands/doctor.js')).registerDoctorCommand;
|
|
61
|
-
export const loadApply = async () => (await import('../../commands/apply.js')).registerApplyCommand;
|
|
62
|
-
export const loadStatus = async () => (await import('../../commands/status.js')).registerStatusCommand;
|
|
63
|
-
export const loadSnapshot = async () => (await import('../../commands/snapshot.js')).registerSnapshotCommand;
|
|
64
|
-
export const loadProfiles = async () => (await import('../../commands/profiles.js')).registerProfilesCommands;
|
|
65
|
-
export const loadHarness = async () => (await import('../../commands/harness.js')).registerHarnessCommands;
|
|
66
|
-
export const loadSecrets = async () => (await import('../../commands/secrets.js')).registerSecretsCommands;
|
|
67
|
-
export const loadLogin = async () => (await import('../../commands/login.js')).registerLoginCommands;
|
|
68
|
-
export const loadMenubar = async () => (await import('../../commands/menubar.js')).registerMenubarCommands;
|
|
69
|
-
export const loadBeta = async () => (await import('../../commands/beta.js')).registerBetaCommands;
|
|
70
|
-
export const loadSync = async () => (await import('../../commands/sync.js')).registerSyncCommand;
|
|
71
|
-
export const loadRefreshRules = async () => (await import('../../commands/refresh-rules.js')).registerRefreshRulesCommand;
|
|
72
|
-
export const loadFactory = async () => (await import('../../commands/factory.js')).registerFactoryCommands;
|
|
73
|
-
export const loadUsage = async () => (await import('../../commands/usage.js')).registerUsageCommand;
|
|
74
|
-
export const loadCost = async () => (await import('../../commands/cost.js')).registerCostCommand;
|
|
75
|
-
export const loadInsights = async () => (await import('../../commands/insights.js')).registerInsightsCommand;
|
|
76
|
-
export const loadPerf = async () => (await import('../../commands/perf.js')).registerPerfCommand;
|
|
77
|
-
export const loadBench = async () => (await import('../../commands/bench.js')).registerBenchCommand;
|
|
78
|
-
// Thin deprecated alias of `agents insights mix` — no second mix implementation.
|
|
79
|
-
export const loadTrends = async () => (await import('../../commands/trends.js')).registerTrendsCommand;
|
|
80
|
-
export const loadOutput = async () => (await import('../../commands/output.js')).registerOutputCommand;
|
|
81
|
-
export const loadBudget = async () => (await import('../../commands/budget.js')).registerBudgetCommand;
|
|
82
|
-
export const loadAlias = async () => (await import('../../commands/alias.js')).registerAliasCommand;
|
|
83
|
-
export const loadMine = async () => (await import('../../commands/mine.js')).registerMineCommand;
|
|
84
|
-
export const loadPty = async () => (await import('../../commands/pty.js')).registerPtyCommands;
|
|
85
|
-
export const loadTmux = async () => (await import('../../commands/tmux.js')).registerTmuxCommands;
|
|
86
|
-
export const loadWatchdog = async () => (await import('../../commands/watchdog.js')).registerWatchdogCommand;
|
|
87
|
-
export const loadBrowser = async () => (await import('../../commands/browser.js')).registerBrowserCommand;
|
|
88
|
-
export const loadComputer = async () => (await import('../../commands/computer.js')).registerComputerCommand;
|
|
89
|
-
export const loadLogs = async () => (await import('../../commands/logs.js')).registerLogsCommand;
|
|
90
|
-
export const loadEvents = async () => (await import('../../commands/events.js')).registerEventsCommand;
|
|
91
|
-
export const loadSsh = async () => (await import('../../commands/ssh.js')).registerSshCommands;
|
|
92
|
-
export const loadRepo = async () => (await import('../../commands/repo.js')).registerRepoCommands;
|
|
93
|
-
export const loadSetup = async () => (await import('../../commands/setup.js')).registerSetupCommand;
|
|
94
|
-
export const loadUninstall = async () => (await import('../../commands/uninstall.js')).registerUninstallCommands;
|
|
95
|
-
export const loadUpgrade = async () => (await import('../../commands/upgrade.js')).registerUpgradeCommand;
|
|
96
|
-
export const loadSessions = async () => (await import('../../commands/sessions.js')).registerSessionsCommands;
|
|
97
|
-
export const loadTeams = async () => (await import('../../commands/teams.js')).registerTeamsCommands;
|
|
98
|
-
export const loadTickets = async () => (await import('../../commands/tickets.js')).registerTicketsCommand;
|
|
99
|
-
export const loadCloud = async () => (await import('../../commands/cloud.js')).registerCloudCommands;
|
|
100
|
-
export const loadMessage = async () => (await import('../../commands/message.js')).registerMessageCommand;
|
|
101
|
-
export const loadSend = async () => (await import('../../commands/send.js')).registerSendCommand;
|
|
102
|
-
export const loadFeed = async () => (await import('../../commands/feed.js')).registerFeedCommand;
|
|
103
|
-
export const loadMailboxes = async () => (await import('../../commands/mailboxes.js')).registerMailboxesCommand;
|
|
104
|
-
export const loadServe = async () => (await import('../../commands/serve.js')).registerServeCommand;
|
|
105
|
-
// Registers the `artifacts` group (with `share` + `setup` under it) AND the
|
|
106
|
-
// top-level `unshare` alias — see commands/artifacts.ts.
|
|
107
|
-
export const loadArtifacts = async () => (await import('../../commands/artifacts.js')).registerArtifactsCommands;
|
|
108
|
-
export const loadAudit = async () => (await import('../../commands/audit.js')).registerAuditCommands;
|
|
109
|
-
export const loadWebhooks = async () => (await import('../../commands/webhook.js')).registerWebhooksCommand;
|
|
110
|
-
export const loadHumans = async () => (await import('../../commands/humans.js')).registerHumansCommands;
|
|
111
|
-
export const loadAccounts = async () => (await import('../../commands/accounts.js')).registerAccountsCommand;
|
|
112
|
-
export const loadDaemon = async () => (await import('../../commands/daemon.js')).registerDaemonCommand;
|
|
113
|
-
export const loadCp = async () => (await import('../../commands/cp.js')).registerCpCommand;
|
|
114
|
-
/**
|
|
115
|
-
* Commands whose modules pull in the SQLite-backed session/cloud stack. They are
|
|
116
|
-
* registered AFTER `applyGlobalHelpConventions` (mirroring main's order: help
|
|
117
|
-
* conventions at module top-level, lazy registration just before parse), so they
|
|
118
|
-
* inherit the root's custom help formatter rather than getting the per-command
|
|
119
|
-
* recursive pass. Keeping that ordering preserves their `--help` output exactly.
|
|
120
|
-
*/
|
|
121
|
-
// `roster` is an observe-umbrella alias of `sessions --active` — same module,
|
|
122
|
-
// same SQLite stack, same post-help registration order as sessions.
|
|
123
|
-
export const LAZY_COMMAND_NAMES = new Set([
|
|
124
|
-
'sessions',
|
|
125
|
-
'resume',
|
|
126
|
-
'reconnect',
|
|
127
|
-
'roster',
|
|
128
|
-
'teams',
|
|
129
|
-
'cloud',
|
|
130
|
-
'message',
|
|
131
|
-
'serve',
|
|
132
|
-
]);
|
|
133
|
-
/**
|
|
134
|
-
* User-typed top-level command name -> ordered list of module loaders to run.
|
|
135
|
-
*
|
|
136
|
-
* Most names map to a single loader. The exceptions encode real coupling on main:
|
|
137
|
-
* - `add`/`use`/`list`/`remove`/`rm`/`purge` all come from the versions module.
|
|
138
|
-
* - `registry`/`search`/`install` all come from the packages module.
|
|
139
|
-
* - `trash` and `restore` are separate registrars in the trash module.
|
|
140
|
-
* - `prune` needs versions FIRST (it creates `prune <specs...>`) then prune.js
|
|
141
|
-
* (which finds that command and attaches the `cleanup` subcommand).
|
|
142
|
-
*
|
|
143
|
-
* Inline deprecated aliases (memory/perms/exec/jobs/cron) and the inline
|
|
144
|
-
* `upgrade` command are NOT here — they are closures over entry-point state and
|
|
145
|
-
* are handled directly in src/index.ts.
|
|
146
|
-
*/
|
|
147
|
-
export const COMMAND_LOADERS = {
|
|
148
|
-
accounts: [loadAccounts],
|
|
149
|
-
view: [loadView],
|
|
150
|
-
inspect: [loadInspect],
|
|
151
|
-
feedback: [loadFeedback],
|
|
152
|
-
commands: [loadCommands],
|
|
153
|
-
hooks: [loadHooks],
|
|
154
|
-
skills: [loadSkills],
|
|
155
|
-
rules: [loadRules],
|
|
156
|
-
memory: [loadMemory],
|
|
157
|
-
permissions: [loadPermissions],
|
|
158
|
-
mcp: [loadMcp],
|
|
159
|
-
clis: [loadCli],
|
|
160
|
-
subagents: [loadSubagents],
|
|
161
|
-
plugins: [loadPlugins],
|
|
162
|
-
workflows: [loadWorkflows],
|
|
163
|
-
add: [loadVersions],
|
|
164
|
-
use: [loadVersions],
|
|
165
|
-
list: [loadVersions],
|
|
166
|
-
remove: [loadVersions],
|
|
167
|
-
rm: [loadVersions],
|
|
168
|
-
purge: [loadVersions],
|
|
169
|
-
update: [loadUpdate],
|
|
170
|
-
prune: [loadVersions, loadPrune],
|
|
171
|
-
import: [loadImport],
|
|
172
|
-
registry: [loadPackages],
|
|
173
|
-
search: [loadPackages],
|
|
174
|
-
install: [loadPackages],
|
|
175
|
-
routines: [loadRoutines],
|
|
176
|
-
monitors: [loadMonitors],
|
|
177
|
-
projects: [loadProjects],
|
|
178
|
-
run: [loadRun],
|
|
179
|
-
resume: [loadResume],
|
|
180
|
-
open: [loadOpen],
|
|
181
|
-
reconnect: [loadReconnect],
|
|
182
|
-
fork: [loadFork],
|
|
183
|
-
config: [loadConfig],
|
|
184
|
-
models: [loadModels],
|
|
185
|
-
modes: [loadModes],
|
|
186
|
-
trash: [loadTrash],
|
|
187
|
-
restore: [loadRestore],
|
|
188
|
-
doctor: [loadDoctor],
|
|
189
|
-
apply: [loadApply],
|
|
190
|
-
status: [loadStatus],
|
|
191
|
-
snapshot: [loadSnapshot],
|
|
192
|
-
profiles: [loadProfiles],
|
|
193
|
-
harness: [loadHarness],
|
|
194
|
-
harnesses: [loadHarness],
|
|
195
|
-
secrets: [loadSecrets],
|
|
196
|
-
login: [loadLogin],
|
|
197
|
-
logout: [loadLogin],
|
|
198
|
-
menubar: [loadMenubar],
|
|
199
|
-
beta: [loadBeta],
|
|
200
|
-
sync: [loadSync],
|
|
201
|
-
'refresh-rules': [loadRefreshRules],
|
|
202
|
-
factory: [loadFactory],
|
|
203
|
-
usage: [loadUsage],
|
|
204
|
-
cost: [loadCost],
|
|
205
|
-
insights: [loadInsights],
|
|
206
|
-
perf: [loadPerf],
|
|
207
|
-
bench: [loadBench],
|
|
208
|
-
trends: [loadTrends],
|
|
209
|
-
output: [loadOutput],
|
|
210
|
-
budget: [loadBudget],
|
|
211
|
-
alias: [loadAlias],
|
|
212
|
-
mine: [loadMine],
|
|
213
|
-
pty: [loadPty],
|
|
214
|
-
tmux: [loadTmux],
|
|
215
|
-
watchdog: [loadWatchdog],
|
|
216
|
-
browser: [loadBrowser],
|
|
217
|
-
computer: [loadComputer],
|
|
218
|
-
logs: [loadLogs],
|
|
219
|
-
events: [loadEvents],
|
|
220
|
-
ssh: [loadSsh],
|
|
221
|
-
devices: [loadSsh],
|
|
222
|
-
// `fleet` is a commander alias of `devices` (see commands/ssh.ts); list it so
|
|
223
|
-
// lazy registration loads the devices tree when the user types `agents fleet`.
|
|
224
|
-
fleet: [loadSsh],
|
|
225
|
-
// `repos` is the canonical command name; `repo` remains a convenience alias
|
|
226
|
-
// (see commands/repo.ts). List both so lazy registration loads the tree
|
|
227
|
-
// whichever the user types.
|
|
228
|
-
repos: [loadRepo],
|
|
229
|
-
repo: [loadRepo],
|
|
230
|
-
setup: [loadSetup],
|
|
231
|
-
uninstall: [loadUninstall],
|
|
232
|
-
upgrade: [loadUpgrade],
|
|
233
|
-
sessions: [loadSessions],
|
|
234
|
-
// Observe-umbrella alias of sessions --active (same lazy module).
|
|
235
|
-
roster: [loadSessions],
|
|
236
|
-
teams: [loadTeams],
|
|
237
|
-
tickets: [loadTickets],
|
|
238
|
-
cloud: [loadCloud],
|
|
239
|
-
message: [loadMessage],
|
|
240
|
-
send: [loadSend],
|
|
241
|
-
notify: [loadSend],
|
|
242
|
-
feed: [loadFeed],
|
|
243
|
-
// Observe-umbrella aliases of feed / feed --filter updates.
|
|
244
|
-
inbox: [loadFeed],
|
|
245
|
-
timeline: [loadFeed],
|
|
246
|
-
mailboxes: [loadMailboxes],
|
|
247
|
-
mailbox: [loadMailboxes],
|
|
248
|
-
serve: [loadServe],
|
|
249
|
-
artifacts: [loadArtifacts],
|
|
250
|
-
// `unshare` is a top-level convenience alias of `artifacts share delete` (see
|
|
251
|
-
// commands/share.ts) — same module, registered as its own program.command().
|
|
252
|
-
unshare: [loadArtifacts],
|
|
253
|
-
audit: [loadAudit],
|
|
254
|
-
webhooks: [loadWebhooks],
|
|
255
|
-
humans: [loadHumans],
|
|
256
|
-
daemon: [loadDaemon],
|
|
257
|
-
cp: [loadCp],
|
|
258
|
-
};
|
|
259
|
-
/**
|
|
260
|
-
* Top-level names that {@link COMMAND_LOADERS} does not carry because they are
|
|
261
|
-
* registered inline in src/index.ts — closures over entry-point state (the
|
|
262
|
-
* deprecated aliases and tombstones) plus the internal command. They are
|
|
263
|
-
* real commands, so anything that asks "does this command exist?" must count them.
|
|
264
|
-
*/
|
|
1
|
+
const LOADED_COMMAND_NAMES = [
|
|
2
|
+
'accounts', 'view', 'inspect', 'feedback', 'commands', 'hooks', 'skills', 'rules', 'memory',
|
|
3
|
+
'permissions', 'mcp', 'clis', 'subagents', 'plugins', 'workflows', 'add', 'use', 'list',
|
|
4
|
+
'remove', 'rm', 'purge', 'update', 'prune', 'import', 'registry', 'search', 'install',
|
|
5
|
+
'routines', 'monitors', 'projects', 'run', 'open', 'reconnect', 'fork', 'config',
|
|
6
|
+
'models', 'modes', 'trash', 'restore', 'doctor', 'apply', 'status',
|
|
7
|
+
'route', 'harness', 'harnesses', 'secrets', 'menubar', 'beta', 'sync',
|
|
8
|
+
'refresh-rules', 'factory', 'usage', 'insights', 'perf', 'trends',
|
|
9
|
+
'alias', 'pty', 'tmux', 'watchdog', 'browser', 'computer', 'logs', 'events',
|
|
10
|
+
'ssh', 'devices', 'fleet', 'repos', 'repo', 'setup', 'uninstall', 'upgrade', 'sessions',
|
|
11
|
+
'teams', 'tickets', 'cloud', 'message', 'send', 'notify', 'feed', 'inbox',
|
|
12
|
+
'timeline', 'mailboxes', 'mailbox', 'serve', 'artifacts', 'unshare', 'audit', 'webhooks',
|
|
13
|
+
'humans', 'daemon',
|
|
14
|
+
];
|
|
265
15
|
const INLINE_COMMAND_NAMES = [
|
|
266
|
-
'perms',
|
|
267
|
-
'exec', // deprecated alias -> run
|
|
268
|
-
'jobs', // deprecated alias -> routines
|
|
269
|
-
'cron', // deprecated alias -> routines
|
|
270
|
-
'check', // tombstone -> doctor --check
|
|
271
|
-
'resources', // tombstone -> view --merged
|
|
272
|
-
'hq', // tombstone
|
|
273
|
-
'_internal',
|
|
16
|
+
'perms', 'exec', 'jobs', 'cron', 'check', 'resources', 'hq', '_internal',
|
|
274
17
|
];
|
|
275
18
|
/**
|
|
276
19
|
* Every top-level command name the CLI answers to — the loader table plus the
|
|
277
20
|
* inline aliases/tombstones above. This is the "does this command exist?"
|
|
278
21
|
* predicate for code that runs BEFORE commander parses, most importantly the
|
|
279
|
-
* `--
|
|
280
|
-
* command carrying `--
|
|
22
|
+
* `--device` router (lib/hosts/passthrough.ts): without it a typo'd
|
|
23
|
+
* command carrying `--device` reported a flag-support error instead of
|
|
281
24
|
* `unknown command` (RUSH-2022).
|
|
282
25
|
*
|
|
283
26
|
* Commander sub-aliases (`sessions ls`, `teams rm`, …) are deliberately absent —
|
|
@@ -285,7 +28,7 @@ const INLINE_COMMAND_NAMES = [
|
|
|
285
28
|
* registered command tree so a new command can never drift out of it.
|
|
286
29
|
*/
|
|
287
30
|
export const KNOWN_TOP_LEVEL_COMMANDS = new Set([
|
|
288
|
-
...
|
|
31
|
+
...LOADED_COMMAND_NAMES,
|
|
289
32
|
...INLINE_COMMAND_NAMES,
|
|
290
33
|
]);
|
|
291
34
|
/**
|
|
@@ -295,35 +38,27 @@ export const KNOWN_TOP_LEVEL_COMMANDS = new Set([
|
|
|
295
38
|
* the user never asked for instead of saying the command is gone.
|
|
296
39
|
*
|
|
297
40
|
* `set` moved under `agents models`/`agents config` (RUSH-2579); `share` moved
|
|
298
|
-
* under `agents artifacts share` (RUSH-2580).
|
|
41
|
+
* under `agents artifacts share` (RUSH-2580). login/logout/budget/bench/mine/
|
|
42
|
+
* cost/output/profiles/snapshot/cp/resume/roster moved under nested homes
|
|
43
|
+
* (cli-surface-consolidate).
|
|
299
44
|
*/
|
|
300
|
-
export const RETIRED_TOP_LEVEL_COMMANDS = new Set([
|
|
301
|
-
|
|
45
|
+
export const RETIRED_TOP_LEVEL_COMMANDS = new Set([
|
|
46
|
+
'webhook',
|
|
47
|
+
'login',
|
|
48
|
+
'logout',
|
|
49
|
+
'budget',
|
|
50
|
+
'bench',
|
|
51
|
+
'mine',
|
|
52
|
+
'cost',
|
|
53
|
+
'output',
|
|
54
|
+
'profiles',
|
|
55
|
+
'snapshot',
|
|
56
|
+
'cp',
|
|
57
|
+
'resume',
|
|
58
|
+
'roster',
|
|
59
|
+
'set',
|
|
60
|
+
'share',
|
|
61
|
+
]);
|
|
302
62
|
export function isKnownTopLevelCommand(name) {
|
|
303
63
|
return KNOWN_TOP_LEVEL_COMMANDS.has(name);
|
|
304
64
|
}
|
|
305
|
-
/**
|
|
306
|
-
* Register every module in {@link COMMAND_LOADERS} onto one fresh program and
|
|
307
|
-
* return it — the full public command tree, deduped by loader identity so a
|
|
308
|
-
* loader mapped to several names (e.g. `add`/`use`/`list` -> versions) runs once.
|
|
309
|
-
*
|
|
310
|
-
* Off the hot path only: the command-index generator (`scripts/gen-command-index.ts`)
|
|
311
|
-
* and the tests build the tree from this. Startup never calls it — src/index.ts
|
|
312
|
-
* registers just the one requested command via `registerEagerForRequest`. The
|
|
313
|
-
* inline aliases/tombstones ({@link INLINE_COMMAND_NAMES}) are NOT included: they
|
|
314
|
-
* are closures over entry-point state that src/index.ts registers directly.
|
|
315
|
-
*/
|
|
316
|
-
export async function buildFullCommandTree() {
|
|
317
|
-
const packageJson = JSON.parse(readFileSync(fileURLToPath(new URL('../../../package.json', import.meta.url)), 'utf8'));
|
|
318
|
-
const program = configureRootCommand(new Command(), 'agents', packageJson.version);
|
|
319
|
-
const done = new Set();
|
|
320
|
-
for (const loaders of Object.values(COMMAND_LOADERS)) {
|
|
321
|
-
for (const loader of loaders) {
|
|
322
|
-
if (done.has(loader))
|
|
323
|
-
continue;
|
|
324
|
-
done.add(loader);
|
|
325
|
-
(await loader())(program);
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
return program;
|
|
329
|
-
}
|
|
@@ -1,24 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Decide whether the CLI is running from a source checkout (a "dev build") vs an
|
|
3
|
-
* installed package. Dev builds suppress autopull / migrations / auto-update so
|
|
4
|
-
* iterating on the repo never mutates the user's real setup.
|
|
5
|
-
*
|
|
6
|
-
* Two signals:
|
|
7
|
-
* 1. A `0.0.0-dev*` version stamp (scripts/install.sh dev installs).
|
|
8
|
-
* 2. Running out of an actual agents-cli git checkout.
|
|
9
|
-
*
|
|
10
|
-
* Signal 2 must be precise. The naive check —
|
|
11
|
-
* `existsSync(dirname(dirname(argv[1])) + '/.git')` — false-positives badly:
|
|
12
|
-
* - npm-global bins are symlinks. `/opt/homebrew/bin/agents` →
|
|
13
|
-
* `…/node_modules/@phnx-labs/agents-cli/dist/index.js`. Without resolving the
|
|
14
|
-
* symlink, `dirname(dirname())` walks to `/opt/homebrew`, which is **itself a
|
|
15
|
-
* git repo** (Homebrew). So every Homebrew-node user looked like a dev build
|
|
16
|
-
* and had migrations + the menu-bar self-heal silently disabled.
|
|
17
|
-
*
|
|
18
|
-
* Fix: resolve the symlink with realpath, then require the `.git`'s repo root to
|
|
19
|
-
* actually be the agents-cli package (its package.json `name`), not some
|
|
20
|
-
* unrelated ancestor that happens to be version-controlled.
|
|
21
|
-
*/
|
|
22
1
|
/**
|
|
23
2
|
* Whether a version string is the `0.0.0-dev.<sha>[-dirty]` stamp
|
|
24
3
|
* `scripts/install.sh` writes for a side-by-side dev install (`install.sh:61`).
|
|
@@ -17,10 +17,22 @@ import * as path from 'path';
|
|
|
17
17
|
* git repo** (Homebrew). So every Homebrew-node user looked like a dev build
|
|
18
18
|
* and had migrations + the menu-bar self-heal silently disabled.
|
|
19
19
|
*
|
|
20
|
-
* Fix: resolve the symlink with realpath
|
|
21
|
-
* actually be the agents-cli package
|
|
22
|
-
*
|
|
20
|
+
* Fix: resolve the symlink with realpath and require the resolved package root's
|
|
21
|
+
* own package.json `name` to actually be the agents-cli package, before ever
|
|
22
|
+
* looking for `.git`.
|
|
23
|
+
*
|
|
24
|
+
* That package root does not always hold `.git` itself, though — this repo is a
|
|
25
|
+
* monorepo where the package lives at `apps/cli` and `.git` sits one level
|
|
26
|
+
* higher, at the true repo root. `.git` is therefore searched for in a SMALL,
|
|
27
|
+
* bounded set of ancestors above the package root (see
|
|
28
|
+
* `DEV_BUILD_GIT_ANCESTOR_DEPTH`), not just the package root itself — a source
|
|
29
|
+
* checkout run via tsx/ts-node from `apps/cli/src/` or built to
|
|
30
|
+
* `apps/cli/dist/` must still be recognized. The bound keeps this well short of
|
|
31
|
+
* an unrelated ancestor repo: a real Homebrew npm-global install's package root
|
|
32
|
+
* sits 3 directories below `/opt/homebrew` (`lib/node_modules/@phnx-labs/…`),
|
|
33
|
+
* so a depth of 2 finds this repo's `.git` while staying short of Homebrew's.
|
|
23
34
|
*/
|
|
35
|
+
const DEV_BUILD_GIT_ANCESTOR_DEPTH = 2;
|
|
24
36
|
/**
|
|
25
37
|
* Whether a version string is the `0.0.0-dev.<sha>[-dirty]` stamp
|
|
26
38
|
* `scripts/install.sh` writes for a side-by-side dev install (`install.sh:61`).
|
|
@@ -38,14 +50,23 @@ export function detectDevBuild(argv1, version) {
|
|
|
38
50
|
return true;
|
|
39
51
|
try {
|
|
40
52
|
const cliPath = fs.realpathSync(argv1 || '');
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
return false;
|
|
44
|
-
const pkgPath = path.join(repoRoot, 'package.json');
|
|
53
|
+
const packageRoot = path.dirname(path.dirname(cliPath));
|
|
54
|
+
const pkgPath = path.join(packageRoot, 'package.json');
|
|
45
55
|
if (!fs.existsSync(pkgPath))
|
|
46
56
|
return false;
|
|
47
57
|
const name = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'))?.name;
|
|
48
|
-
|
|
58
|
+
if (name !== '@phnx-labs/agents-cli')
|
|
59
|
+
return false;
|
|
60
|
+
let dir = packageRoot;
|
|
61
|
+
for (let depth = 0; depth <= DEV_BUILD_GIT_ANCESTOR_DEPTH; depth++) {
|
|
62
|
+
if (fs.existsSync(path.join(dir, '.git')))
|
|
63
|
+
return true;
|
|
64
|
+
const parent = path.dirname(dir);
|
|
65
|
+
if (parent === dir)
|
|
66
|
+
return false; // reached the filesystem root
|
|
67
|
+
dir = parent;
|
|
68
|
+
}
|
|
69
|
+
return false;
|
|
49
70
|
}
|
|
50
71
|
catch {
|
|
51
72
|
return false;
|
package/dist/lib/state.d.ts
CHANGED
|
@@ -47,6 +47,16 @@ export declare function getUserAgentsDir(): string;
|
|
|
47
47
|
* @deprecated Use getUserAgentsDir() directly.
|
|
48
48
|
*/
|
|
49
49
|
export declare function getOptionalUserAgentsDir(): string | null;
|
|
50
|
+
/**
|
|
51
|
+
* True when `agentsPath` is a reserved `.agents` root that must never be
|
|
52
|
+
* treated as a project layer: the user repo (~/.agents), the system repo
|
|
53
|
+
* (~/.agents/.system), or a git checkout of either canonical DotAgents repo.
|
|
54
|
+
* `getProjectAgentsDir` skips these while walking up; direct-cwd callers
|
|
55
|
+
* (`compileRulesForProject`) consult the same predicate so `$HOME` — whose
|
|
56
|
+
* `.agents/rules` is the user layer itself — can never compile as a
|
|
57
|
+
* "project" (RUSH-2725).
|
|
58
|
+
*/
|
|
59
|
+
export declare function isReservedAgentsDir(agentsPath: string): boolean;
|
|
50
60
|
/** Walk up from startPath to find a project-scoped .agents/ directory (skipping both roots). */
|
|
51
61
|
export declare function getProjectAgentsDir(startPath?: string): string | null;
|
|
52
62
|
/** Return all .agents/ directories in scope: project, user, then system. */
|
|
@@ -250,8 +260,15 @@ export declare function getTeamsRegistryPath(): string;
|
|
|
250
260
|
export declare function getDevicesRegistryPath(): string;
|
|
251
261
|
/** Path to the device ignore-list — tailscale node names the user dismissed, so auto-discovery never re-suggests them. Per-machine, same dir as the registry. */
|
|
252
262
|
export declare function getDevicesIgnoredPath(): string;
|
|
253
|
-
/** Path to the LEGACY device auto-launch preference file — which registered devices are eligible/preferred for the ext's auto-host selection. Superseded by the
|
|
263
|
+
/** Path to the LEGACY device auto-launch preference file — which registered devices are eligible/preferred for the ext's auto-host selection. Superseded by the per-device doc `config:` block; only lib/devices/config-migration.ts still reads it (to fold + remove it). */
|
|
254
264
|
export declare function getDevicesAutoLaunchPath(): string;
|
|
265
|
+
/** Path to THIS machine's agent pins — the `agents:` global defaults and
|
|
266
|
+
* `isolatedAgents:` pointers. Each pin names a version installed on THIS
|
|
267
|
+
* machine, so it is machine-local runtime state and lives beside the device
|
|
268
|
+
* registry under `.history/devices/` (untracked) — NOT in the tracked
|
|
269
|
+
* per-device doc, where auto-written pins caused commit churn on every
|
|
270
|
+
* `agents use` / install. Read at call time like the other devices-dir paths. */
|
|
271
|
+
export declare function getDevicePinsPath(): string;
|
|
255
272
|
/** Dir of "pending device" sentinels (~/.agents/.cache/state/devices-pending/) — one empty-ish file per newly-discovered, not-yet-approved tailnet node. Written by the daemon probe, read by the menu-bar helper (mirrors the attention sentinel dir). */
|
|
256
273
|
export declare function getDevicesPendingDir(): string;
|
|
257
274
|
/** Path to cloud dispatch cache (~/.agents/.cache/cloud/). */
|
|
@@ -373,6 +390,7 @@ export declare function getDeviceMetaPath(): string;
|
|
|
373
390
|
* Gitignored (under .history/) and regenerable; never synced.
|
|
374
391
|
*/
|
|
375
392
|
export declare function getVersionResourcesPath(): string;
|
|
393
|
+
export declare function withMetaLock<T>(fn: () => T): T;
|
|
376
394
|
/**
|
|
377
395
|
* Read and cache ~/.agents/agents.yaml, migrating from legacy locations if needed.
|
|
378
396
|
*
|