@phnx-labs/agents-cli 1.22.35 → 1.22.37
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 +666 -2
- package/README.md +75 -35
- package/dist/bin/agents +0 -0
- package/dist/bootstrap.d.ts +15 -0
- package/dist/bootstrap.js +1211 -0
- package/dist/commands/accounts.d.ts +4 -11
- package/dist/commands/accounts.js +159 -27
- package/dist/commands/attach.js +17 -4
- package/dist/commands/audit.d.ts +8 -8
- package/dist/commands/audit.js +57 -47
- package/dist/commands/browser.js +15 -11
- package/dist/commands/cloud.js +1 -1
- package/dist/commands/commands.js +0 -11
- package/dist/commands/computer-actions.js +33 -0
- package/dist/commands/computer-sessions-picker.d.ts +21 -0
- package/dist/commands/computer-sessions-picker.js +141 -0
- package/dist/commands/computer.d.ts +16 -0
- package/dist/commands/computer.js +37 -0
- package/dist/commands/config.d.ts +17 -0
- package/dist/commands/config.js +401 -0
- package/dist/commands/cp.d.ts +84 -0
- package/dist/commands/cp.js +231 -0
- package/dist/commands/daemon.js +243 -14
- package/dist/commands/detach-core.d.ts +1 -1
- package/dist/commands/detach-core.js +12 -2
- package/dist/commands/detach.js +1 -1
- package/dist/commands/doctor.js +64 -5
- package/dist/commands/events.d.ts +24 -12
- package/dist/commands/events.js +144 -28
- package/dist/commands/exec.js +85 -41
- package/dist/commands/feed.d.ts +1 -1
- package/dist/commands/feed.js +16 -8
- package/dist/commands/focus.d.ts +33 -1
- package/dist/commands/focus.js +177 -17
- package/dist/commands/funnel.d.ts +1 -1
- package/dist/commands/go.js +9 -8
- package/dist/commands/harness-wizard.d.ts +1 -0
- package/dist/commands/harness-wizard.js +18 -20
- package/dist/commands/harness.d.ts +2 -0
- package/dist/commands/harness.js +59 -26
- package/dist/commands/hooks.js +0 -11
- package/dist/commands/inspect.d.ts +94 -1
- package/dist/commands/inspect.js +866 -40
- package/dist/commands/lease.d.ts +4 -4
- package/dist/commands/lease.js +6 -6
- package/dist/commands/login.js +0 -13
- package/dist/commands/logs.d.ts +2 -2
- package/dist/commands/logs.js +2 -2
- package/dist/commands/mcp.js +7 -2
- package/dist/commands/memory.js +7 -2
- package/dist/commands/message.d.ts +1 -1
- package/dist/commands/message.js +37 -6
- package/dist/commands/models.js +4 -0
- package/dist/commands/monitors.d.ts +0 -1
- package/dist/commands/monitors.js +199 -16
- package/dist/commands/open.d.ts +18 -0
- package/dist/commands/open.js +57 -0
- package/dist/commands/packages.js +2 -107
- package/dist/commands/plugins.js +6 -3
- package/dist/commands/profiles.d.ts +1 -0
- package/dist/commands/profiles.js +16 -160
- package/dist/commands/projects.d.ts +28 -0
- package/dist/commands/projects.js +125 -5
- package/dist/commands/reconnect.js +9 -3
- package/dist/commands/repo.js +42 -1
- package/dist/commands/resource-view.d.ts +17 -0
- package/dist/commands/resource-view.js +36 -14
- package/dist/commands/resume.js +9 -2
- package/dist/commands/routines.d.ts +0 -2
- package/dist/commands/routines.js +473 -289
- package/dist/commands/secrets.js +52 -9
- package/dist/commands/sessions-export.d.ts +47 -0
- package/dist/commands/sessions-export.js +116 -6
- package/dist/commands/sessions-import.d.ts +17 -0
- package/dist/commands/sessions-import.js +114 -6
- package/dist/commands/sessions-migrate.d.ts +27 -0
- package/dist/commands/sessions-migrate.js +50 -9
- package/dist/commands/sessions-picker.js +23 -4
- package/dist/commands/sessions-resume.d.ts +5 -3
- package/dist/commands/sessions-resume.js +30 -8
- package/dist/commands/sessions-watch.d.ts +2 -0
- package/dist/commands/sessions-watch.js +53 -0
- package/dist/commands/sessions.d.ts +66 -3
- package/dist/commands/sessions.js +298 -47
- package/dist/commands/set.d.ts +1 -1
- package/dist/commands/set.js +2 -2
- package/dist/commands/setup-browser.js +2 -2
- package/dist/commands/setup-mine.js +0 -1
- package/dist/commands/setup-preferences.js +1 -1
- package/dist/commands/setup-share.js +34 -4
- package/dist/commands/setup.d.ts +5 -0
- package/dist/commands/setup.js +26 -0
- package/dist/commands/share.d.ts +67 -0
- package/dist/commands/share.js +275 -12
- package/dist/commands/skills.js +0 -11
- package/dist/commands/snapshot.js +1 -1
- package/dist/commands/ssh.d.ts +18 -0
- package/dist/commands/ssh.js +549 -210
- package/dist/commands/sync.d.ts +5 -0
- package/dist/commands/sync.js +212 -32
- package/dist/commands/teams.d.ts +13 -0
- package/dist/commands/teams.js +187 -30
- package/dist/commands/tickets.d.ts +2 -0
- package/dist/commands/tickets.js +43 -0
- package/dist/commands/update.js +2 -4
- package/dist/commands/usage.js +5 -3
- package/dist/commands/versions.js +11 -5
- package/dist/commands/view.js +15 -7
- package/dist/commands/webhook.d.ts +2 -2
- package/dist/commands/webhook.js +7 -7
- package/dist/index.d.ts +18 -2
- package/dist/index.js +53 -1264
- package/dist/lib/account-catalog.d.ts +18 -0
- package/dist/lib/account-catalog.js +38 -0
- package/dist/lib/account-provider-registry.d.ts +18 -0
- package/dist/lib/account-provider-registry.js +59 -0
- package/dist/lib/account-registry.d.ts +40 -0
- package/dist/lib/account-registry.js +239 -0
- package/dist/lib/account-schema.d.ts +44 -0
- package/dist/lib/account-schema.js +91 -0
- package/dist/lib/account-state-service.d.ts +21 -0
- package/dist/lib/account-state-service.js +60 -0
- package/dist/lib/activity.d.ts +1 -1
- package/dist/lib/activity.js +8 -1
- package/dist/lib/add-dir.d.ts +80 -0
- package/dist/lib/add-dir.js +241 -0
- package/dist/lib/agent-cli-commands.d.ts +11 -0
- package/dist/lib/agent-cli-commands.js +30 -0
- package/dist/lib/agents.js +44 -36
- package/dist/lib/answer-router.js +1 -1
- package/dist/lib/audit/log.d.ts +10 -27
- package/dist/lib/audit/log.js +20 -33
- package/dist/lib/auth-health.d.ts +9 -2
- package/dist/lib/auth-health.js +42 -9
- package/dist/lib/auto-pull-worker.js +7 -3
- package/dist/lib/auto-pull.d.ts +44 -3
- package/dist/lib/auto-pull.js +88 -5
- package/dist/lib/binary-shadow.d.ts +28 -0
- package/dist/lib/binary-shadow.js +121 -0
- package/dist/lib/brand.js +9 -3
- package/dist/lib/browser/ipc.d.ts +30 -0
- package/dist/lib/browser/ipc.js +81 -4
- package/dist/lib/browser/profiles.d.ts +3 -2
- package/dist/lib/browser/profiles.js +65 -22
- package/dist/lib/browser/service.d.ts +4 -0
- package/dist/lib/browser/service.js +30 -3
- package/dist/lib/browser/sessions-list.d.ts +22 -2
- package/dist/lib/browser/sessions-list.js +54 -6
- package/dist/lib/browser/stream.d.ts +2 -0
- package/dist/lib/browser/stream.js +1 -0
- package/dist/lib/browser/types.d.ts +19 -0
- package/dist/lib/byok-usage.d.ts +9 -2
- package/dist/lib/byok-usage.js +133 -31
- package/dist/lib/cli-entry.d.ts +11 -0
- package/dist/lib/cli-entry.js +46 -0
- package/dist/lib/cloud/host.d.ts +1 -1
- package/dist/lib/cloud/host.js +2 -2
- package/dist/lib/cloud/registry.js +1 -1
- package/dist/lib/cloud/types.d.ts +1 -1
- package/dist/lib/commands.d.ts +2 -0
- package/dist/lib/commands.js +2 -0
- package/dist/lib/computer/sessions-list.d.ts +150 -0
- package/dist/lib/computer/sessions-list.js +363 -0
- package/dist/lib/config-keys.d.ts +86 -0
- package/dist/lib/config-keys.js +193 -0
- package/dist/lib/config-machine-keys.d.ts +12 -0
- package/dist/lib/config-machine-keys.js +17 -0
- package/dist/lib/config-transfer.js +3 -4
- package/dist/lib/crabbox/cli.d.ts +2 -2
- package/dist/lib/crabbox/cli.js +3 -3
- package/dist/lib/daemon-health.d.ts +22 -0
- package/dist/lib/daemon-health.js +33 -3
- package/dist/lib/daemon-services.d.ts +50 -0
- package/dist/lib/daemon-services.js +147 -0
- package/dist/lib/daemon-ticks.d.ts +35 -66
- package/dist/lib/daemon-ticks.js +77 -159
- package/dist/lib/daemon.d.ts +72 -4
- package/dist/lib/daemon.js +792 -202
- package/dist/lib/deeplink/register.d.ts +49 -0
- package/dist/lib/deeplink/register.js +253 -0
- package/dist/lib/deeplink/url.d.ts +34 -0
- package/dist/lib/deeplink/url.js +78 -0
- package/dist/lib/device-config.d.ts +124 -29
- package/dist/lib/device-config.js +346 -141
- package/dist/lib/devices/config-migration.d.ts +42 -0
- package/dist/lib/devices/config-migration.js +203 -0
- package/dist/lib/devices/connect.js +14 -7
- package/dist/lib/devices/doctor-findings.d.ts +4 -1
- package/dist/lib/devices/doctor-findings.js +20 -1
- package/dist/lib/devices/harness-inventory.d.ts +11 -2
- package/dist/lib/devices/harness-inventory.js +0 -0
- package/dist/lib/devices/health.d.ts +1 -1
- package/dist/lib/devices/health.js +1 -1
- package/dist/lib/devices/pending.d.ts +22 -1
- package/dist/lib/devices/pending.js +67 -2
- package/dist/lib/devices/registry.d.ts +0 -25
- package/dist/lib/devices/registry.js +2 -83
- package/dist/lib/devices/resolve-profile.d.ts +20 -0
- package/dist/lib/devices/resolve-profile.js +44 -0
- package/dist/lib/devices/rollout-verify.d.ts +101 -0
- package/dist/lib/devices/rollout-verify.js +193 -0
- package/dist/lib/devices/ssh-config.js +10 -6
- package/dist/lib/event-families.d.ts +28 -0
- package/dist/lib/event-families.js +159 -0
- package/dist/lib/event-stream.d.ts +9 -1
- package/dist/lib/event-stream.js +26 -9
- package/dist/lib/events.d.ts +9 -1
- package/dist/lib/events.js +21 -6
- package/dist/lib/exec.d.ts +30 -0
- package/dist/lib/exec.js +219 -121
- package/dist/lib/feed-broadcast.d.ts +25 -0
- package/dist/lib/feed-broadcast.js +33 -0
- package/dist/lib/feed.d.ts +1 -1
- package/dist/lib/feed.js +12 -2
- package/dist/lib/fleet/capture.js +15 -0
- package/dist/lib/fleet/manifest.js +9 -0
- package/dist/lib/fleet/types.d.ts +9 -0
- package/dist/lib/fleet-status.js +10 -8
- package/dist/lib/git.d.ts +20 -6
- package/dist/lib/git.js +121 -17
- package/dist/lib/hosts/dispatch.d.ts +8 -3
- package/dist/lib/hosts/dispatch.js +29 -3
- package/dist/lib/hosts/logs.d.ts +2 -2
- package/dist/lib/hosts/logs.js +2 -2
- package/dist/lib/hosts/option.js +1 -1
- package/dist/lib/hosts/passthrough.d.ts +2 -3
- package/dist/lib/hosts/passthrough.js +10 -24
- package/dist/lib/hosts/progress.js +2 -2
- package/dist/lib/hosts/providers/devices.d.ts +3 -3
- package/dist/lib/hosts/providers/devices.js +18 -12
- package/dist/lib/hosts/ready.d.ts +5 -1
- package/dist/lib/hosts/ready.js +9 -3
- package/dist/lib/hosts/reconcile.d.ts +2 -2
- package/dist/lib/hosts/reconcile.js +2 -2
- package/dist/lib/hosts/registry.js +14 -9
- package/dist/lib/hosts/remote-cmd.js +1 -1
- package/dist/lib/hosts/remote-os.d.ts +9 -6
- package/dist/lib/hosts/remote-os.js +13 -6
- package/dist/lib/hosts/routing-flag.d.ts +23 -0
- package/dist/lib/hosts/routing-flag.js +41 -0
- package/dist/lib/hosts/run-target.js +1 -1
- package/dist/lib/hosts/session-index.js +1 -1
- package/dist/lib/hosts/tasks.d.ts +6 -6
- package/dist/lib/hosts/tasks.js +4 -4
- package/dist/lib/hosts/types.js +1 -2
- package/dist/lib/installations/resolve.js +2 -8
- package/dist/lib/isolation-boundary-report.js +0 -1
- package/dist/lib/linear-cache.d.ts +7 -0
- package/dist/lib/linear-cache.js +31 -4
- package/dist/lib/linear-project-counts.d.ts +1 -1
- package/dist/lib/linear-project-counts.js +2 -3
- package/dist/lib/linear-projects.js +1 -1
- package/dist/lib/loop.d.ts +2 -2
- package/dist/lib/loop.js +1 -1
- package/dist/lib/mailbox-target.d.ts +1 -1
- package/dist/lib/mailbox-target.js +1 -1
- package/dist/lib/manifest.js +7 -4
- 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/snapshot.d.ts +3 -2
- package/dist/lib/menubar/snapshot.js +6 -2
- package/dist/lib/migrate-fold.d.ts +33 -0
- package/dist/lib/migrate-fold.js +130 -0
- package/dist/lib/migrate.d.ts +34 -34
- package/dist/lib/migrate.js +106 -128
- package/dist/lib/model-tier-overrides.d.ts +1 -1
- package/dist/lib/model-tier-overrides.js +15 -2
- package/dist/lib/monitors/config.d.ts +17 -3
- package/dist/lib/monitors/config.js +52 -18
- package/dist/lib/monitors/engine.d.ts +32 -1
- package/dist/lib/monitors/engine.js +94 -11
- package/dist/lib/monitors/fingerprint.d.ts +46 -0
- package/dist/lib/monitors/fingerprint.js +100 -0
- package/dist/lib/monitors/remote.d.ts +47 -0
- package/dist/lib/monitors/remote.js +81 -0
- package/dist/lib/monitors/state.d.ts +39 -0
- package/dist/lib/monitors/state.js +56 -0
- package/dist/lib/onepassword.d.ts +17 -0
- package/dist/lib/onepassword.js +52 -22
- package/dist/lib/open-url.js +1 -1
- package/dist/lib/picker.d.ts +14 -2
- package/dist/lib/picker.js +35 -13
- package/dist/lib/placement.d.ts +1 -1
- package/dist/lib/placement.js +1 -1
- package/dist/lib/pr-land-detach.d.ts +32 -0
- package/dist/lib/pr-land-detach.js +79 -0
- package/dist/lib/profiles-presets.js +13 -0
- package/dist/lib/profiles.d.ts +2 -0
- package/dist/lib/profiles.js +44 -1
- package/dist/lib/project-focus.d.ts +1 -1
- package/dist/lib/project-focus.js +1 -1
- package/dist/lib/project-probe.d.ts +4 -1
- package/dist/lib/project-probe.js +5 -4
- package/dist/lib/project-resources.js +2 -18
- package/dist/lib/project-root.d.ts +16 -0
- package/dist/lib/project-root.js +20 -2
- package/dist/lib/projects.d.ts +20 -1
- package/dist/lib/projects.js +78 -1
- package/dist/lib/refresh-coordinator.d.ts +24 -0
- package/dist/lib/refresh-coordinator.js +52 -0
- package/dist/lib/registry.d.ts +2 -2
- package/dist/lib/registry.js +1 -1
- package/dist/lib/resource-aliases.d.ts +13 -0
- package/dist/lib/resource-aliases.js +26 -0
- package/dist/lib/resources/types.d.ts +1 -1
- package/dist/lib/resources.d.ts +16 -0
- package/dist/lib/resources.js +66 -10
- package/dist/lib/rotate.d.ts +3 -4
- package/dist/lib/rotate.js +4 -5
- package/dist/lib/routine-activation.d.ts +22 -2
- package/dist/lib/routine-activation.js +63 -16
- package/dist/lib/routine-context.d.ts +9 -2
- package/dist/lib/routine-context.js +21 -6
- package/dist/lib/routines-project.d.ts +58 -48
- package/dist/lib/routines-project.js +190 -159
- package/dist/lib/routines.d.ts +41 -6
- package/dist/lib/routines.js +92 -34
- package/dist/lib/run-defaults.d.ts +5 -0
- package/dist/lib/run-defaults.js +11 -1
- package/dist/lib/runner.d.ts +10 -8
- package/dist/lib/runner.js +122 -39
- 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.d.ts +10 -3
- package/dist/lib/secrets/agent.js +43 -8
- package/dist/lib/secrets/bundles.d.ts +1 -0
- package/dist/lib/secrets/bundles.js +92 -80
- package/dist/lib/secrets/index.js +32 -9
- package/dist/lib/secrets/install-helper.d.ts +4 -4
- package/dist/lib/secrets/install-helper.js +4 -4
- package/dist/lib/secrets/push.d.ts +40 -6
- package/dist/lib/secrets/push.js +58 -11
- package/dist/lib/secrets/read-backoff.d.ts +1 -1
- package/dist/lib/secrets/read-backoff.js +1 -1
- package/dist/lib/secrets/remote.d.ts +24 -0
- package/dist/lib/secrets/remote.js +54 -4
- package/dist/lib/self-update.d.ts +108 -0
- package/dist/lib/self-update.js +276 -1
- package/dist/lib/session/active.d.ts +89 -5
- package/dist/lib/session/active.js +165 -10
- package/dist/lib/session/actor-sidecar.d.ts +1 -1
- package/dist/lib/session/actor-sidecar.js +2 -1
- package/dist/lib/session/db.d.ts +176 -2
- package/dist/lib/session/db.js +484 -17
- package/dist/lib/session/discover.js +27 -4
- package/dist/lib/session/hook-sessions.js +2 -2
- package/dist/lib/session/host-link.d.ts +2 -2
- package/dist/lib/session/host-link.js +2 -2
- package/dist/lib/session/pid-registry.d.ts +21 -0
- package/dist/lib/session/pid-registry.js +57 -0
- package/dist/lib/session/remote-active.js +15 -1
- package/dist/lib/session/remote.js +2 -2
- package/dist/lib/session/session-cache.d.ts +14 -7
- package/dist/lib/session/session-cache.js +51 -9
- package/dist/lib/session/state.d.ts +2 -2
- package/dist/lib/session/state.js +1 -1
- package/dist/lib/session/sync/config.d.ts +10 -10
- package/dist/lib/session/sync/config.js +10 -10
- package/dist/lib/session/sync/r2.d.ts +34 -0
- package/dist/lib/session/sync/r2.js +123 -0
- package/dist/lib/session/throughput.d.ts +1 -1
- package/dist/lib/session/throughput.js +1 -1
- package/dist/lib/session/types.d.ts +23 -1
- package/dist/lib/session/types.js +15 -0
- package/dist/lib/session/viewing-in.d.ts +1 -1
- package/dist/lib/session/viewing-in.js +1 -1
- package/dist/lib/session/watch.d.ts +101 -0
- package/dist/lib/session/watch.js +242 -0
- package/dist/lib/share/config.d.ts +4 -0
- package/dist/lib/share/config.js +1 -0
- package/dist/lib/share/provision.d.ts +38 -0
- package/dist/lib/share/provision.js +50 -0
- package/dist/lib/share/publish.d.ts +40 -1
- package/dist/lib/share/publish.js +116 -3
- package/dist/lib/share/worker-template.js +71 -6
- package/dist/lib/shims.d.ts +17 -3
- package/dist/lib/shims.js +98 -26
- package/dist/lib/signin-badge.js +3 -2
- package/dist/lib/skills.js +2 -0
- package/dist/lib/smart-launch.d.ts +8 -8
- package/dist/lib/smart-launch.js +80 -59
- package/dist/lib/ssh-exec.d.ts +1 -1
- package/dist/lib/ssh-exec.js +1 -1
- package/dist/lib/staleness/prune.d.ts +88 -0
- package/dist/lib/staleness/prune.js +69 -0
- package/dist/lib/staleness/registry.d.ts +1 -1
- package/dist/lib/staleness/writers/commands.js +34 -2
- package/dist/lib/staleness/writers/hooks.js +16 -0
- package/dist/lib/staleness/writers/kinds.d.ts +6 -0
- package/dist/lib/staleness/writers/skills.js +19 -0
- package/dist/lib/staleness/writers/subagents.d.ts +2 -3
- package/dist/lib/staleness/writers/subagents.js +0 -4
- package/dist/lib/staleness/writers/types.d.ts +32 -0
- package/dist/lib/startup/command-registry.d.ts +6 -12
- package/dist/lib/startup/command-registry.js +11 -31
- package/dist/lib/startup/dev-build.d.ts +10 -0
- package/dist/lib/startup/dev-build.js +13 -1
- package/dist/lib/startup/spellcheck.d.ts +18 -0
- package/dist/lib/startup/spellcheck.js +45 -0
- package/dist/lib/state.d.ts +36 -9
- package/dist/lib/state.js +96 -46
- package/dist/lib/subagents-registry.d.ts +0 -7
- package/dist/lib/subagents-registry.js +38 -65
- package/dist/lib/subagents.d.ts +0 -33
- package/dist/lib/subagents.js +0 -75
- package/dist/lib/sync-umbrella.js +1 -1
- package/dist/lib/teams/agents.d.ts +41 -1
- package/dist/lib/teams/agents.js +187 -9
- package/dist/lib/teams/api.d.ts +11 -1
- package/dist/lib/teams/api.js +11 -2
- package/dist/lib/teams/delivery.d.ts +41 -0
- package/dist/lib/teams/delivery.js +60 -0
- package/dist/lib/teams/registry.d.ts +14 -0
- package/dist/lib/teams/registry.js +51 -1
- package/dist/lib/teams/remoteWorktree.d.ts +19 -0
- package/dist/lib/teams/remoteWorktree.js +29 -0
- package/dist/lib/teams/scheduler.d.ts +1 -1
- package/dist/lib/teams/scheduler.js +1 -1
- package/dist/lib/teams/worktree.d.ts +24 -0
- package/dist/lib/teams/worktree.js +42 -0
- package/dist/lib/terminal/backends/vscodium-agent.d.ts +10 -1
- package/dist/lib/terminal/backends/vscodium-agent.js +16 -5
- package/dist/lib/terminal/engine.d.ts +4 -0
- package/dist/lib/terminal/engine.js +8 -2
- package/dist/lib/terminal/types.d.ts +21 -2
- package/dist/lib/testdata/refresh-coordinator-worker.d.ts +1 -0
- package/dist/lib/testdata/refresh-coordinator-worker.js +23 -0
- package/dist/lib/tickets/list.d.ts +53 -0
- package/dist/lib/tickets/list.js +153 -0
- package/dist/lib/tmux/orphan-reap.d.ts +320 -0
- package/dist/lib/tmux/orphan-reap.js +644 -0
- package/dist/lib/tmux/session.d.ts +68 -3
- package/dist/lib/tmux/session.js +95 -5
- package/dist/lib/triggers/handlers.d.ts +20 -0
- package/dist/lib/triggers/handlers.js +6 -1
- package/dist/lib/types.d.ts +46 -34
- package/dist/lib/usage-fleet.d.ts +32 -0
- package/dist/lib/usage-fleet.js +125 -0
- package/dist/lib/usage-refresh.d.ts +3 -3
- package/dist/lib/usage-refresh.js +19 -16
- package/dist/lib/usage.d.ts +51 -47
- package/dist/lib/usage.js +145 -153
- package/dist/lib/version-duplicates.js +2 -2
- package/dist/lib/versions.d.ts +56 -13
- package/dist/lib/versions.js +195 -45
- package/dist/lib/watchdog/log.d.ts +1 -1
- package/dist/lib/watchdog/log.js +3 -3
- package/dist/lib/watchdog/rotate.d.ts +6 -6
- package/dist/lib/watchdog/rotate.js +6 -6
- package/dist/lib/workflows.d.ts +1 -1
- package/dist/lib/yaml-io.d.ts +47 -0
- package/dist/lib/yaml-io.js +55 -0
- package/package.json +2 -1
- package/scripts/install-helper.js +2 -2
- package/scripts/postinstall.js +23 -20
- package/dist/commands/defaults.d.ts +0 -7
- package/dist/commands/defaults.js +0 -107
- package/dist/commands/export.d.ts +0 -11
- package/dist/commands/export.js +0 -215
- package/dist/commands/helper.d.ts +0 -12
- package/dist/commands/helper.js +0 -87
- package/dist/commands/hosts.d.ts +0 -11
- package/dist/commands/hosts.js +0 -330
- package/dist/commands/lock.d.ts +0 -12
- package/dist/commands/lock.js +0 -70
- package/dist/commands/pull.d.ts +0 -17
- package/dist/commands/pull.js +0 -39
- package/dist/commands/push.d.ts +0 -14
- package/dist/commands/push.js +0 -30
- package/dist/commands/wallet.d.ts +0 -20
- package/dist/commands/wallet.js +0 -216
- package/dist/commands/worktree.d.ts +0 -19
- package/dist/commands/worktree.js +0 -272
- package/dist/lib/account-labels.d.ts +0 -24
- package/dist/lib/account-labels.js +0 -72
- package/dist/lib/auto-dispatch-linear.d.ts +0 -18
- package/dist/lib/auto-dispatch-linear.js +0 -107
- package/dist/lib/auto-dispatch-provider.d.ts +0 -10
- package/dist/lib/auto-dispatch-provider.js +0 -30
- package/dist/lib/auto-dispatch.d.ts +0 -93
- package/dist/lib/auto-dispatch.js +0 -128
- package/dist/lib/export.d.ts +0 -72
- package/dist/lib/export.js +0 -269
- package/dist/lib/lock.d.ts +0 -93
- package/dist/lib/lock.js +0 -207
- package/dist/lib/wallet/index.d.ts +0 -78
- package/dist/lib/wallet/index.js +0 -253
|
@@ -27,15 +27,8 @@ export interface SubagentTarget {
|
|
|
27
27
|
names(dir: string): string[];
|
|
28
28
|
/** On-disk paths subagent `name` occupies (for removal / soft-delete). */
|
|
29
29
|
occupied(dir: string, name: string): OccupiedEntry[];
|
|
30
|
-
/** Cross-item files this target owns outside any one subagent's occupied paths. */
|
|
31
|
-
finalizeOccupied?(dir: string): OccupiedEntry[];
|
|
32
30
|
/** Rich metadata for `name`; `null` skips it from the listing. */
|
|
33
31
|
read(dir: string, name: string): SubagentMeta | null;
|
|
34
|
-
/** Optional post-sync pass over the just-synced subagents (Kimi's parent index). */
|
|
35
|
-
finalize?(dir: string, synced: Array<{
|
|
36
|
-
name: string;
|
|
37
|
-
path: string;
|
|
38
|
-
}>): void;
|
|
39
32
|
}
|
|
40
33
|
/**
|
|
41
34
|
* Copy every file in `src` into `dest` (created if missing), applying
|
|
@@ -14,16 +14,16 @@
|
|
|
14
14
|
* every current agent, so most entries are a single call:
|
|
15
15
|
*
|
|
16
16
|
* - `flatFile` one `<name><ext>` file, body from a `transform` fn.
|
|
17
|
-
* (claude, grok, droid, codex, opencode, copilot,
|
|
18
|
-
* cursor, kiro, goose)
|
|
17
|
+
* (claude, grok, pi, droid, codex, opencode, copilot,
|
|
18
|
+
* cursor, kiro, goose, kimi)
|
|
19
19
|
* - `dirFile` a `<name>/` directory holding one generated `<file>`.
|
|
20
20
|
* (antigravity: `<name>/agent.md`)
|
|
21
21
|
* - `dirCopy` copy the whole source directory to `<name>/`, applying
|
|
22
22
|
* renames, detected by a `marker` file. (openclaw)
|
|
23
23
|
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
24
|
+
* Every agent now uses a builder; there are no bespoke handlers left. Legacy
|
|
25
|
+
* on-disk layouts are folded once by `lib/migrate.ts`, never by a target --
|
|
26
|
+
* a target describes the CURRENT shape and nothing else.
|
|
27
27
|
*
|
|
28
28
|
* The per-agent `transform`/metadata parsers are the escape hatch: they live in
|
|
29
29
|
* `subagents.ts` and are referenced by the table, so the generic engine has zero
|
|
@@ -31,11 +31,12 @@
|
|
|
31
31
|
*/
|
|
32
32
|
import * as fs from 'fs';
|
|
33
33
|
import * as path from 'path';
|
|
34
|
+
import * as TOML from 'smol-toml';
|
|
34
35
|
import * as yaml from 'yaml';
|
|
35
36
|
import { safeJoin } from './paths.js';
|
|
36
|
-
import { parseSubagentFrontmatter, transformSubagentForClaude, transformSubagentForCodex, transformSubagentForCopilot, transformSubagentForCursor, transformSubagentForDroid, transformSubagentForGoose, transformSubagentForKiro, transformSubagentForOpenCode, transformSubagentForAntigravity,
|
|
37
|
+
import { parseSubagentFrontmatter, transformSubagentForClaude, transformSubagentForCodex, transformSubagentForCopilot, transformSubagentForCursor, transformSubagentForDroid, transformSubagentForGoose, transformSubagentForKiro, transformSubagentForOpenCode, transformSubagentForAntigravity, } from './subagents.js';
|
|
37
38
|
// ── metadata readers (the per-format escape hatch) ───────────────────────────
|
|
38
|
-
/** Frontmatter, skipping files that lack a valid block (claude/grok/droid
|
|
39
|
+
/** Frontmatter, skipping files that lack a valid block (claude/grok/droid). */
|
|
39
40
|
function metaFrontmatterSkip(filePath) {
|
|
40
41
|
return parseSubagentFrontmatter(filePath);
|
|
41
42
|
}
|
|
@@ -63,6 +64,24 @@ function metaGooseYaml(filePath, name) {
|
|
|
63
64
|
return null;
|
|
64
65
|
}
|
|
65
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Codex custom-agent TOML: name / description / model (optional).
|
|
69
|
+
* Codex writes no YAML frontmatter — without this reader, `flatFile.read`
|
|
70
|
+
* drops every installed `.toml` and `agents subagents list` reports codex
|
|
71
|
+
* targets as `missing` even when the files are present and Codex loads them.
|
|
72
|
+
*/
|
|
73
|
+
function metaToml(filePath, name) {
|
|
74
|
+
try {
|
|
75
|
+
const cfg = TOML.parse(fs.readFileSync(filePath, 'utf-8'));
|
|
76
|
+
const tomlName = typeof cfg.name === 'string' ? cfg.name : '';
|
|
77
|
+
const description = typeof cfg.description === 'string' ? cfg.description : '';
|
|
78
|
+
const model = typeof cfg.model === 'string' ? cfg.model : undefined;
|
|
79
|
+
return { name: tomlName || name, description, model };
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
66
85
|
// ── shared fs primitive ──────────────────────────────────────────────────────
|
|
67
86
|
/**
|
|
68
87
|
* Copy every file in `src` into `dest` (created if missing), applying
|
|
@@ -187,61 +206,6 @@ function dirCopy(opts) {
|
|
|
187
206
|
},
|
|
188
207
|
};
|
|
189
208
|
}
|
|
190
|
-
/**
|
|
191
|
-
* Kimi (genuinely bespoke): each subagent is a `<name>.yaml` + sibling
|
|
192
|
-
* `<name>.system.md`, and a managed `_agents-cli.yaml` parent lists them all for
|
|
193
|
-
* `kimi --agent-file`. The parent index is a cross-item concern, so it is built
|
|
194
|
-
* in `finalize`, not per-item.
|
|
195
|
-
*/
|
|
196
|
-
const kimiTarget = {
|
|
197
|
-
dir: (home) => path.join(home, '.kimi-code', 'agents'),
|
|
198
|
-
write(dir, sub) {
|
|
199
|
-
writeKimiSubagentFiles(dir, sub.path, sub.name);
|
|
200
|
-
},
|
|
201
|
-
names(dir) {
|
|
202
|
-
if (!fs.existsSync(dir))
|
|
203
|
-
return [];
|
|
204
|
-
// The parent is `_agents-cli.yaml` (underscore-prefixed, reserved).
|
|
205
|
-
return fs
|
|
206
|
-
.readdirSync(dir)
|
|
207
|
-
.filter((f) => f.endsWith('.yaml') && !f.startsWith('_'))
|
|
208
|
-
.map((f) => f.slice(0, -'.yaml'.length));
|
|
209
|
-
},
|
|
210
|
-
occupied(dir, name) {
|
|
211
|
-
return [
|
|
212
|
-
{ path: safeJoin(dir, `${name}.yaml`), kind: 'file' },
|
|
213
|
-
{ path: safeJoin(dir, `${name}.system.md`), kind: 'file' },
|
|
214
|
-
];
|
|
215
|
-
},
|
|
216
|
-
finalizeOccupied(dir) {
|
|
217
|
-
return [{ path: safeJoin(dir, KIMI_SUBAGENTS_PARENT_FILE), kind: 'file' }];
|
|
218
|
-
},
|
|
219
|
-
read(dir, name) {
|
|
220
|
-
const yamlPath = path.join(dir, `${name}.yaml`);
|
|
221
|
-
if (!fs.existsSync(yamlPath) || !fs.statSync(yamlPath).isFile())
|
|
222
|
-
return null;
|
|
223
|
-
let description = '';
|
|
224
|
-
try {
|
|
225
|
-
const parsed = yaml.parse(fs.readFileSync(yamlPath, 'utf-8'));
|
|
226
|
-
description = parsed?.agent?.description ?? '';
|
|
227
|
-
}
|
|
228
|
-
catch {
|
|
229
|
-
/* leave description empty */
|
|
230
|
-
}
|
|
231
|
-
const files = [`${name}.yaml`];
|
|
232
|
-
const promptFile = `${name}.system.md`;
|
|
233
|
-
if (fs.existsSync(path.join(dir, promptFile)))
|
|
234
|
-
files.push(promptFile);
|
|
235
|
-
return { frontmatter: { name, description }, files, path: yamlPath };
|
|
236
|
-
},
|
|
237
|
-
finalize(dir, synced) {
|
|
238
|
-
const entries = synced.map((sub) => {
|
|
239
|
-
const fm = parseSubagentFrontmatter(path.join(sub.path, 'AGENT.md'));
|
|
240
|
-
return { name: sub.name, description: fm?.description ?? sub.name, relativePath: `./${sub.name}.yaml` };
|
|
241
|
-
});
|
|
242
|
-
fs.writeFileSync(safeJoin(dir, KIMI_SUBAGENTS_PARENT_FILE), buildKimiSubagentsParentYaml(entries));
|
|
243
|
-
},
|
|
244
|
-
};
|
|
245
209
|
// ── the registry ─────────────────────────────────────────────────────────────
|
|
246
210
|
/**
|
|
247
211
|
* Single source of truth for how each subagents-capable agent stores subagents.
|
|
@@ -257,7 +221,12 @@ export const SUBAGENT_TARGETS = {
|
|
|
257
221
|
pi: flatFile({ subdir: ['.omp', 'agent', 'agents'], ext: '.md', transform: transformSubagentForClaude, readMeta: metaFrontmatterFallback }),
|
|
258
222
|
droid: flatFile({ subdir: ['.factory', 'droids'], ext: '.md', transform: transformSubagentForDroid }),
|
|
259
223
|
// Bespoke frontmatter/format, still one flat file.
|
|
260
|
-
codex: flatFile({
|
|
224
|
+
codex: flatFile({
|
|
225
|
+
subdir: ['.codex', 'agents'],
|
|
226
|
+
ext: '.toml',
|
|
227
|
+
transform: transformSubagentForCodex,
|
|
228
|
+
readMeta: metaToml,
|
|
229
|
+
}),
|
|
261
230
|
opencode: flatFile({
|
|
262
231
|
subdir: ['.config', 'opencode', 'agents'],
|
|
263
232
|
ext: '.md',
|
|
@@ -295,8 +264,12 @@ export const SUBAGENT_TARGETS = {
|
|
|
295
264
|
transform: transformSubagentForAntigravity,
|
|
296
265
|
}),
|
|
297
266
|
openclaw: dirCopy({ subdir: ['.openclaw'], marker: 'AGENTS.md', rename: { 'AGENT.md': 'AGENTS.md' } }),
|
|
298
|
-
//
|
|
299
|
-
kimi
|
|
267
|
+
// Kimi discovers Claude-shaped agent markdown from its brand home's `agents/`
|
|
268
|
+
// dir (`USER_BRAND_DIRS = ["agents"]`, kimi-code >= 0.29.0). Frontmatter
|
|
269
|
+
// name/description + body, kebab-case name -- the same shape as claude/grok.
|
|
270
|
+
// The pre-markdown files agents-cli used to write here are swept once by
|
|
271
|
+
// `migrateKimiSubagentsToMarkdown` (lib/migrate.ts), not by this target.
|
|
272
|
+
kimi: flatFile({ subdir: ['.kimi-code', 'agents'], ext: '.md', transform: transformSubagentForClaude, readMeta: metaFrontmatterFallback }),
|
|
300
273
|
};
|
|
301
274
|
/** The registry entry for `agent`, or undefined if it stores no subagents. */
|
|
302
275
|
export function subagentTarget(agent) {
|
package/dist/lib/subagents.d.ts
CHANGED
|
@@ -97,39 +97,6 @@ export declare function transformSubagentForAntigravity(subagentDir: string): st
|
|
|
97
97
|
* https://opencode.ai/docs/agents/
|
|
98
98
|
*/
|
|
99
99
|
export declare function transformSubagentForOpenCode(subagentDir: string): string;
|
|
100
|
-
/** Managed parent agent file for Kimi (underscore prefix avoids clobbering a user subagent named agents-cli). */
|
|
101
|
-
export declare const KIMI_SUBAGENTS_PARENT_FILE = "_agents-cli.yaml";
|
|
102
|
-
export interface KimiSubagentFiles {
|
|
103
|
-
/** Agent YAML content (uses system_prompt_path, not inline system_prompt). */
|
|
104
|
-
yaml: string;
|
|
105
|
-
/** Markdown body written next to the YAML and referenced by system_prompt_path. */
|
|
106
|
-
systemPrompt: string;
|
|
107
|
-
/** Sibling prompt filename, e.g. `reviewer.system.md`. */
|
|
108
|
-
systemPromptFileName: string;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Transform a subagent into Kimi Code agent files.
|
|
112
|
-
*
|
|
113
|
-
* Kimi's schema (agentspec) only accepts `system_prompt_path` (path relative to
|
|
114
|
-
* the agent YAML) — there is no inline `system_prompt` key. We write:
|
|
115
|
-
* ~/.kimi-code/agents/<name>.yaml — agent YAML
|
|
116
|
-
* ~/.kimi-code/agents/<name>.system.md — system prompt body
|
|
117
|
-
* plus a managed parent `_agents-cli.yaml` that lists them under agent.subagents
|
|
118
|
-
* for `kimi --agent-file …/_agents-cli.yaml`.
|
|
119
|
-
* https://moonshotai.github.io/kimi-cli/en/customization/agents.html
|
|
120
|
-
*/
|
|
121
|
-
export declare function transformSubagentForKimi(subagentDir: string, fileBaseName: string): KimiSubagentFiles;
|
|
122
|
-
/**
|
|
123
|
-
* Build the managed parent agent YAML that declares all installed subagents
|
|
124
|
-
* so `kimi --agent-file ~/.kimi-code/agents/_agents-cli.yaml` can launch them.
|
|
125
|
-
*/
|
|
126
|
-
export declare function buildKimiSubagentsParentYaml(entries: Array<{
|
|
127
|
-
name: string;
|
|
128
|
-
description: string;
|
|
129
|
-
relativePath: string;
|
|
130
|
-
}>): string;
|
|
131
|
-
/** Write a Kimi subagent YAML + sibling system-prompt md into agentsDir. */
|
|
132
|
-
export declare function writeKimiSubagentFiles(agentsDir: string, subagentDir: string, name: string): void;
|
|
133
100
|
/**
|
|
134
101
|
* Transform a subagent into a Codex custom-agent TOML file.
|
|
135
102
|
*
|
package/dist/lib/subagents.js
CHANGED
|
@@ -356,81 +356,6 @@ export function transformSubagentForOpenCode(subagentDir) {
|
|
|
356
356
|
}
|
|
357
357
|
return `---\n${yaml.stringify(fm).trim()}\n---\n\n${systemPrompt}\n`;
|
|
358
358
|
}
|
|
359
|
-
/** Managed parent agent file for Kimi (underscore prefix avoids clobbering a user subagent named agents-cli). */
|
|
360
|
-
export const KIMI_SUBAGENTS_PARENT_FILE = '_agents-cli.yaml';
|
|
361
|
-
/**
|
|
362
|
-
* Transform a subagent into Kimi Code agent files.
|
|
363
|
-
*
|
|
364
|
-
* Kimi's schema (agentspec) only accepts `system_prompt_path` (path relative to
|
|
365
|
-
* the agent YAML) — there is no inline `system_prompt` key. We write:
|
|
366
|
-
* ~/.kimi-code/agents/<name>.yaml — agent YAML
|
|
367
|
-
* ~/.kimi-code/agents/<name>.system.md — system prompt body
|
|
368
|
-
* plus a managed parent `_agents-cli.yaml` that lists them under agent.subagents
|
|
369
|
-
* for `kimi --agent-file …/_agents-cli.yaml`.
|
|
370
|
-
* https://moonshotai.github.io/kimi-cli/en/customization/agents.html
|
|
371
|
-
*/
|
|
372
|
-
export function transformSubagentForKimi(subagentDir, fileBaseName) {
|
|
373
|
-
const agentMd = path.join(subagentDir, 'AGENT.md');
|
|
374
|
-
const frontmatter = parseSubagentFrontmatter(agentMd);
|
|
375
|
-
const body = getSubagentBody(agentMd);
|
|
376
|
-
if (!frontmatter) {
|
|
377
|
-
throw new Error(`Invalid AGENT.md in ${subagentDir}`);
|
|
378
|
-
}
|
|
379
|
-
let systemPrompt = body.trim();
|
|
380
|
-
const files = fs.readdirSync(subagentDir)
|
|
381
|
-
.filter(f => f.endsWith('.md') && f !== 'AGENT.md')
|
|
382
|
-
.sort();
|
|
383
|
-
for (const file of files) {
|
|
384
|
-
const content = fs.readFileSync(path.join(subagentDir, file), 'utf-8').trim();
|
|
385
|
-
const sectionName = file.replace('.md', '');
|
|
386
|
-
const title = sectionName.charAt(0).toUpperCase() + sectionName.slice(1).toLowerCase();
|
|
387
|
-
systemPrompt += `\n\n## ${title}\n\n${content}`;
|
|
388
|
-
}
|
|
389
|
-
const systemPromptFileName = `${fileBaseName}.system.md`;
|
|
390
|
-
const doc = {
|
|
391
|
-
version: 1,
|
|
392
|
-
agent: {
|
|
393
|
-
extend: 'default',
|
|
394
|
-
name: frontmatter.name,
|
|
395
|
-
description: frontmatter.description,
|
|
396
|
-
system_prompt_path: `./${systemPromptFileName}`,
|
|
397
|
-
},
|
|
398
|
-
};
|
|
399
|
-
if (frontmatter.model) {
|
|
400
|
-
doc.agent.model = frontmatter.model;
|
|
401
|
-
}
|
|
402
|
-
return {
|
|
403
|
-
yaml: yaml.stringify(doc),
|
|
404
|
-
systemPrompt,
|
|
405
|
-
systemPromptFileName,
|
|
406
|
-
};
|
|
407
|
-
}
|
|
408
|
-
/**
|
|
409
|
-
* Build the managed parent agent YAML that declares all installed subagents
|
|
410
|
-
* so `kimi --agent-file ~/.kimi-code/agents/_agents-cli.yaml` can launch them.
|
|
411
|
-
*/
|
|
412
|
-
export function buildKimiSubagentsParentYaml(entries) {
|
|
413
|
-
const subagents = {};
|
|
414
|
-
for (const e of entries) {
|
|
415
|
-
subagents[e.name] = { path: e.relativePath, description: e.description };
|
|
416
|
-
}
|
|
417
|
-
return yaml.stringify({
|
|
418
|
-
version: 1,
|
|
419
|
-
agent: {
|
|
420
|
-
extend: 'default',
|
|
421
|
-
name: 'agents-cli',
|
|
422
|
-
description: 'Managed parent agent listing agents-cli synced subagents',
|
|
423
|
-
subagents,
|
|
424
|
-
},
|
|
425
|
-
});
|
|
426
|
-
}
|
|
427
|
-
/** Write a Kimi subagent YAML + sibling system-prompt md into agentsDir. */
|
|
428
|
-
export function writeKimiSubagentFiles(agentsDir, subagentDir, name) {
|
|
429
|
-
const { yaml: yml, systemPrompt, systemPromptFileName } = transformSubagentForKimi(subagentDir, name);
|
|
430
|
-
fs.mkdirSync(agentsDir, { recursive: true });
|
|
431
|
-
fs.writeFileSync(safeJoin(agentsDir, `${name}.yaml`), yml);
|
|
432
|
-
fs.writeFileSync(safeJoin(agentsDir, systemPromptFileName), systemPrompt);
|
|
433
|
-
}
|
|
434
359
|
/**
|
|
435
360
|
* Transform a subagent into a Codex custom-agent TOML file.
|
|
436
361
|
*
|
|
@@ -120,7 +120,7 @@ export async function runUmbrellaSync(args) {
|
|
|
120
120
|
const { reconcilePendingSentinels } = await import('./devices/pending.js');
|
|
121
121
|
const dev = await runDeviceSync({ soft: true, mode: 'refresh' });
|
|
122
122
|
if (dev.ok)
|
|
123
|
-
reconcilePendingSentinels(dev.pending);
|
|
123
|
+
await reconcilePendingSentinels(dev.pending);
|
|
124
124
|
result.devices = { synced: dev.synced, pending: dev.pending.length, skipped: !dev.ok };
|
|
125
125
|
if (dev.ok) {
|
|
126
126
|
log(`devices: ${dev.synced} refreshed${dev.pending.length ? `, ${dev.pending.length} new pending` : ''}`);
|
|
@@ -193,6 +193,7 @@ export declare class AgentProcess {
|
|
|
193
193
|
cloudBranch: string | null;
|
|
194
194
|
worktreeName: string | null;
|
|
195
195
|
worktreePath: string | null;
|
|
196
|
+
project: string | null;
|
|
196
197
|
hostName: string | null;
|
|
197
198
|
hostTarget: string | null;
|
|
198
199
|
hostIdentityFile: string | null;
|
|
@@ -304,6 +305,26 @@ export declare class AgentProcess {
|
|
|
304
305
|
*/
|
|
305
306
|
private capEventsCache;
|
|
306
307
|
saveMeta(): Promise<void>;
|
|
308
|
+
/**
|
|
309
|
+
* Rename an unreadable meta.json out of the way so it stops silently
|
|
310
|
+
* masquerading as "no record" (RUSH-2429). Before saveMeta() wrote atomically,
|
|
311
|
+
* a process killed mid-write left a truncated, unparseable meta.json that
|
|
312
|
+
* loadFromDisk() returned null for -- indistinguishable from ENOENT -- so
|
|
313
|
+
* retention (loadExistingAgents/rescanFromDisk) never reaped it and
|
|
314
|
+
* isWorktreeClaimed() (which reads meta.json directly, not through this
|
|
315
|
+
* method) failed CLOSED on it forever: it scans every record and answers
|
|
316
|
+
* "claimed" for every worktree name in every team the first time it cannot
|
|
317
|
+
* read one. Quarantining removes meta.json so the NEXT read of this record
|
|
318
|
+
* sees ENOENT (genuinely absent) instead of "unreadable" -- that is what lets
|
|
319
|
+
* isWorktreeClaimed's fail-closed guard recover once the corrupt record is
|
|
320
|
+
* gone, without weakening the guard itself for a record that is still
|
|
321
|
+
* present-but-unreadable at decision time.
|
|
322
|
+
*
|
|
323
|
+
* Best-effort: if the rename itself fails (e.g. EACCES on the directory),
|
|
324
|
+
* the record is left in place and the fail-closed guard keeps protecting
|
|
325
|
+
* worktree removal -- quarantine only ever ADDS a recovery path.
|
|
326
|
+
*/
|
|
327
|
+
private static quarantineCorruptMeta;
|
|
307
328
|
static loadFromDisk(agentId: string, baseDir?: string | null): Promise<AgentProcess | null>;
|
|
308
329
|
isProcessAlive(): boolean;
|
|
309
330
|
/**
|
|
@@ -478,7 +499,7 @@ export declare class AgentManager {
|
|
|
478
499
|
* asymmetry, not defensive coding: the caller acts destructively on `false`.
|
|
479
500
|
*/
|
|
480
501
|
isWorktreeClaimed(worktreeName: string): Promise<boolean>;
|
|
481
|
-
spawn(taskName: string, agentType: AgentType, prompt: string, cwd?: string | null, mode?: Mode | null, effort?: EffortLevel, parentSessionId?: string | null, workspaceDir?: string | null, version?: string | null, name?: string | null, after?: string[], model?: string | null, envOverrides?: Record<string, string> | null, taskType?: TaskType | null, cloudProvider?: string | null, cloudSessionId?: string | null, cloudRepo?: string | null, cloudBranch?: string | null, worktreeName?: string | null, worktreePath?: string | null, profileName?: string | null, hostName?: string | null, hostTarget?: string | null, repoPath?: string | null): Promise<AgentProcess>;
|
|
502
|
+
spawn(taskName: string, agentType: AgentType, prompt: string, cwd?: string | null, mode?: Mode | null, effort?: EffortLevel, parentSessionId?: string | null, workspaceDir?: string | null, version?: string | null, name?: string | null, after?: string[], model?: string | null, envOverrides?: Record<string, string> | null, taskType?: TaskType | null, cloudProvider?: string | null, cloudSessionId?: string | null, cloudRepo?: string | null, cloudBranch?: string | null, worktreeName?: string | null, worktreePath?: string | null, profileName?: string | null, hostName?: string | null, hostTarget?: string | null, repoPath?: string | null, project?: string | null): Promise<AgentProcess>;
|
|
482
503
|
/**
|
|
483
504
|
* Resume a STOPPED teammate (completed / failed / stopped) by re-entering its
|
|
484
505
|
* own session with `message` as the next user turn. Re-launches through the
|
|
@@ -613,6 +634,25 @@ export declare class AgentManager {
|
|
|
613
634
|
*/
|
|
614
635
|
listCompleted(): Promise<AgentProcess[]>;
|
|
615
636
|
listByTask(taskName: string): Promise<AgentProcess[]>;
|
|
637
|
+
/**
|
|
638
|
+
* Terminal removal of every teammate record for a team (RUSH-2450).
|
|
639
|
+
*
|
|
640
|
+
* `teams disband` used to delete log dirs and the registry entry, but left
|
|
641
|
+
* the in-memory AgentProcess cache intact. A concurrent `teams start --watch`
|
|
642
|
+
* supervisor then re-persisted those records via saveMeta, so a second
|
|
643
|
+
* disband still found N logs to clear and `teams start` could re-launch
|
|
644
|
+
* PENDING work that had already merged.
|
|
645
|
+
*
|
|
646
|
+
* This drops every matching record from the manager map AND removes its
|
|
647
|
+
* durable state. With `keepLogs`, only `meta.json` is removed so the
|
|
648
|
+
* teammate is no longer discoverable/startable while stdout/stderr logs
|
|
649
|
+
* remain for postmortem.
|
|
650
|
+
*
|
|
651
|
+
* Returns the agent_ids that were purged.
|
|
652
|
+
*/
|
|
653
|
+
purgeByTask(taskName: string, opts?: {
|
|
654
|
+
keepLogs?: boolean;
|
|
655
|
+
}): Promise<string[]>;
|
|
616
656
|
listByParentSession(parentSessionId: string): Promise<AgentProcess[]>;
|
|
617
657
|
stopByTask(taskName: string): Promise<{
|
|
618
658
|
stopped: string[];
|