@phnx-labs/agents-cli 1.22.35 → 1.22.38
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 +708 -2
- package/README.md +83 -43
- package/dist/bin/agents +0 -0
- package/dist/bootstrap.d.ts +15 -0
- package/dist/bootstrap.js +1212 -0
- package/dist/commands/accounts.d.ts +4 -11
- package/dist/commands/accounts.js +159 -27
- package/dist/commands/artifacts-setup.d.ts +53 -0
- package/dist/commands/artifacts-setup.js +161 -0
- package/dist/commands/artifacts.d.ts +18 -0
- package/dist/commands/artifacts.js +58 -0
- 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 +17 -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 +86 -42
- 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 +71 -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/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.d.ts +5 -0
- package/dist/commands/setup.js +31 -5
- package/dist/commands/share.d.ts +87 -7
- package/dist/commands/share.js +320 -58
- 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/hygiene.d.ts +90 -0
- package/dist/lib/browser/hygiene.js +146 -0
- package/dist/lib/browser/ipc.d.ts +30 -0
- package/dist/lib/browser/ipc.js +93 -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 +79 -1
- package/dist/lib/browser/service.js +231 -14
- 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 +63 -1
- 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 +21 -7
- package/dist/lib/git.js +122 -18
- 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 +44 -7
- 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/analytics.js +1 -1
- package/dist/lib/share/capture.d.ts +1 -1
- package/dist/lib/share/capture.js +3 -3
- package/dist/lib/share/config.d.ts +6 -2
- package/dist/lib/share/config.js +6 -5
- package/dist/lib/share/delete.js +3 -3
- package/dist/lib/share/provision.d.ts +38 -0
- package/dist/lib/share/provision.js +51 -1
- package/dist/lib/share/publish.d.ts +40 -1
- package/dist/lib/share/publish.js +119 -6
- package/dist/lib/share/worker-template.d.ts +12 -1
- package/dist/lib/share/worker-template.js +83 -7
- 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 +16 -14
- package/dist/lib/startup/command-registry.js +26 -37
- 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 +316 -0
- package/dist/lib/tmux/orphan-reap.js +638 -0
- package/dist/lib/tmux/session.d.ts +68 -3
- package/dist/lib/tmux/session.js +96 -5
- package/dist/lib/triggers/handlers.d.ts +20 -0
- package/dist/lib/triggers/handlers.js +16 -1
- package/dist/lib/triggers/webhook.js +10 -0
- package/dist/lib/types.d.ts +47 -35
- 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/set.d.ts +0 -15
- package/dist/commands/set.js +0 -79
- package/dist/commands/setup-share.d.ts +0 -17
- package/dist/commands/setup-share.js +0 -85
- 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
package/dist/commands/lease.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `agents lease` — manage the disposable cloud boxes used by `agents run --lease`.
|
|
2
|
+
* `agents devices lease` — manage the disposable cloud boxes used by `agents run --lease`.
|
|
3
3
|
*
|
|
4
|
-
* Today: `agents lease gc`, which stops expired + idle "orphan" boxes that are
|
|
4
|
+
* Today: `agents devices lease gc`, which stops expired + idle "orphan" boxes that are
|
|
5
5
|
* holding a provider's server quota (the cause of the `server_limit` 403 a new
|
|
6
6
|
* lease hits). Reaping is conservative: only boxes whose lease has expired AND
|
|
7
7
|
* that have been untouched for a safety window are eligible (see `isReapSafe`),
|
|
@@ -25,7 +25,7 @@ export declare function boxStatus(box: CrabboxBox): string;
|
|
|
25
25
|
* freshest box (an untouched `lastTouchedAt` sorts last).
|
|
26
26
|
*/
|
|
27
27
|
export declare function reusableBoxes(boxes: CrabboxBox[], nowSecs: number): CrabboxBox[];
|
|
28
|
-
/** One aligned row for the reuse picker / `agents lease list`. */
|
|
28
|
+
/** One aligned row for the reuse picker / `agents devices lease list`. */
|
|
29
29
|
export declare function formatBoxRow(box: CrabboxBox, nowSecs: number): string;
|
|
30
30
|
/** Validate a Hetzner token against the live API. Exported for unit tests (fetch injectable). */
|
|
31
31
|
export declare function validateHetznerToken(token: string, fetchImpl?: typeof fetch): Promise<'valid' | 'invalid' | 'unreachable'>;
|
|
@@ -39,4 +39,4 @@ export declare function validateHetznerToken(token: string, fetchImpl?: typeof f
|
|
|
39
39
|
export declare function runLeaseSetup(opts?: {
|
|
40
40
|
provider?: string;
|
|
41
41
|
}): Promise<boolean>;
|
|
42
|
-
export declare function registerLeaseCommand(
|
|
42
|
+
export declare function registerLeaseCommand(devicesCommand: Command): void;
|
package/dist/commands/lease.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `agents lease` — manage the disposable cloud boxes used by `agents run --lease`.
|
|
2
|
+
* `agents devices lease` — manage the disposable cloud boxes used by `agents run --lease`.
|
|
3
3
|
*
|
|
4
|
-
* Today: `agents lease gc`, which stops expired + idle "orphan" boxes that are
|
|
4
|
+
* Today: `agents devices lease gc`, which stops expired + idle "orphan" boxes that are
|
|
5
5
|
* holding a provider's server quota (the cause of the `server_limit` 403 a new
|
|
6
6
|
* lease hits). Reaping is conservative: only boxes whose lease has expired AND
|
|
7
7
|
* that have been untouched for a safety window are eligible (see `isReapSafe`),
|
|
@@ -64,7 +64,7 @@ export function reusableBoxes(boxes, nowSecs) {
|
|
|
64
64
|
.filter((b) => b.ready && (b.expiresAt === null || b.expiresAt > nowSecs))
|
|
65
65
|
.sort((a, b) => (b.lastTouchedAt ?? 0) - (a.lastTouchedAt ?? 0));
|
|
66
66
|
}
|
|
67
|
-
/** One aligned row for the reuse picker / `agents lease list`. */
|
|
67
|
+
/** One aligned row for the reuse picker / `agents devices lease list`. */
|
|
68
68
|
export function formatBoxRow(box, nowSecs) {
|
|
69
69
|
const slug = box.slug.padEnd(16);
|
|
70
70
|
const cls = (box.class ?? '?').padEnd(10);
|
|
@@ -201,8 +201,8 @@ export async function runLeaseSetup(opts = {}) {
|
|
|
201
201
|
throw e;
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
|
-
export function registerLeaseCommand(
|
|
205
|
-
const lease =
|
|
204
|
+
export function registerLeaseCommand(devicesCommand) {
|
|
205
|
+
const lease = devicesCommand
|
|
206
206
|
.command('lease')
|
|
207
207
|
.description('Manage the disposable cloud boxes used by `agents run --lease`.');
|
|
208
208
|
lease
|
|
@@ -241,7 +241,7 @@ export function registerLeaseCommand(program) {
|
|
|
241
241
|
console.log(chalk.bold(`Warm boxes (${boxes.length})`));
|
|
242
242
|
for (const b of boxes)
|
|
243
243
|
console.log(' ' + formatBoxRow(b, nowSecs));
|
|
244
|
-
console.log(chalk.gray(' Reuse: agents run <agent> "…" --box <slug> · Stop: agents lease stop <slug>'));
|
|
244
|
+
console.log(chalk.gray(' Reuse: agents run <agent> "…" --box <slug> · Stop: agents devices lease stop <slug>'));
|
|
245
245
|
});
|
|
246
246
|
lease
|
|
247
247
|
.command('stop <slug>')
|
package/dist/commands/login.js
CHANGED
|
@@ -107,17 +107,4 @@ export function registerLoginCommands(program) {
|
|
|
107
107
|
clearVaultKey();
|
|
108
108
|
console.log(chalk.green('Logged out. Synced secrets are locked.'));
|
|
109
109
|
});
|
|
110
|
-
program
|
|
111
|
-
.command('whoami')
|
|
112
|
-
.description('Show synced-secrets login status')
|
|
113
|
-
.action(() => {
|
|
114
|
-
const session = getVaultSession();
|
|
115
|
-
if (!session.loggedIn) {
|
|
116
|
-
console.log(chalk.yellow('Not logged in.'));
|
|
117
|
-
console.log(chalk.gray(`File: ${vaultPath()}${vaultExists() ? '' : ' (not created)'}`));
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
console.log(chalk.green(`Logged in (${formatRemaining(session.expiresAt)} remaining).`));
|
|
121
|
-
console.log(chalk.gray(`File: ${vaultPath()}`));
|
|
122
|
-
});
|
|
123
110
|
}
|
package/dist/commands/logs.d.ts
CHANGED
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
* id, `--host`/`--agent`/`--version` filter a merged candidate list; one match is
|
|
18
18
|
* shown, several open the fuzzy picker (or, non-TTY, print the list).
|
|
19
19
|
*
|
|
20
|
-
* Additive: `agents
|
|
21
|
-
* the same underlying helpers (showHostTaskLog / streamSessionTail).
|
|
20
|
+
* Additive: `agents devices ps`/`stop` and `agents sessions tail` are unchanged and
|
|
21
|
+
* share the same underlying helpers (showHostTaskLog / streamSessionTail).
|
|
22
22
|
*/
|
|
23
23
|
import type { Command } from 'commander';
|
|
24
24
|
/** Register the top-level `agents logs` command. */
|
package/dist/commands/logs.js
CHANGED
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
* id, `--host`/`--agent`/`--version` filter a merged candidate list; one match is
|
|
18
18
|
* shown, several open the fuzzy picker (or, non-TTY, print the list).
|
|
19
19
|
*
|
|
20
|
-
* Additive: `agents
|
|
21
|
-
* the same underlying helpers (showHostTaskLog / streamSessionTail).
|
|
20
|
+
* Additive: `agents devices ps`/`stop` and `agents sessions tail` are unchanged and
|
|
21
|
+
* share the same underlying helpers (showHostTaskLog / streamSessionTail).
|
|
22
22
|
*/
|
|
23
23
|
import chalk from 'chalk';
|
|
24
24
|
import { discoverSessions, resolveSessionById } from '../lib/session/discover.js';
|
package/dist/commands/mcp.js
CHANGED
|
@@ -564,9 +564,11 @@ Examples:
|
|
|
564
564
|
}
|
|
565
565
|
console.log();
|
|
566
566
|
});
|
|
567
|
+
// Deprecated: superseded by `agents sync --mcp`. Kept as a warned, functional
|
|
568
|
+
// alias so old muscle-memory and scripts don't break.
|
|
567
569
|
mcpCmd
|
|
568
|
-
.command('register [name]')
|
|
569
|
-
.description('
|
|
570
|
+
.command('register [name]', { hidden: true })
|
|
571
|
+
.description('Deprecated — use `agents sync --mcp` instead.')
|
|
570
572
|
.option('-a, --agents <list>', 'Override manifest targets: claude, codex@0.116.0')
|
|
571
573
|
.option('-y, --yes', 'Auto-install any missing agent versions without prompting')
|
|
572
574
|
.addHelpText('after', `
|
|
@@ -581,6 +583,9 @@ Examples:
|
|
|
581
583
|
agents mcp register --agents codex@0.116.0
|
|
582
584
|
`)
|
|
583
585
|
.action(async (name, options) => {
|
|
586
|
+
console.warn(chalk.yellow('`agents mcp register` is deprecated — use `agents sync --mcp` instead:'));
|
|
587
|
+
console.warn(chalk.gray(' all servers: agents sync --mcp'));
|
|
588
|
+
console.warn(chalk.gray(' specific server: agents sync --mcp <name>'));
|
|
584
589
|
const localPath = getUserAgentsDir();
|
|
585
590
|
const manifest = readManifest(localPath);
|
|
586
591
|
if (!manifest?.mcp) {
|
package/dist/commands/memory.js
CHANGED
|
@@ -111,11 +111,16 @@ export function registerMemoryCommands(program) {
|
|
|
111
111
|
console.log(chalk.dim(`# ${fact.name} [${fact.layer}] ${fact.path}`));
|
|
112
112
|
console.log(fs.readFileSync(fact.path, 'utf-8'));
|
|
113
113
|
});
|
|
114
|
+
// Deprecated: superseded by `agents sync --memory`. Kept as a warned, functional
|
|
115
|
+
// alias so old muscle-memory and scripts don't break.
|
|
114
116
|
memoryCmd
|
|
115
|
-
.command('sync [agent]')
|
|
116
|
-
.description('
|
|
117
|
+
.command('sync [agent]', { hidden: true })
|
|
118
|
+
.description('Deprecated — use `agents sync --memory` instead.')
|
|
117
119
|
.option('-a, --agent <agent>', 'Limit to one agent (or agent@version)')
|
|
118
120
|
.action(async (agentArg, options) => {
|
|
121
|
+
console.warn(chalk.yellow('`agents memory sync` is deprecated — use `agents sync --memory` instead:'));
|
|
122
|
+
console.warn(chalk.gray(' all agents: agents sync --memory'));
|
|
123
|
+
console.warn(chalk.gray(' one agent: agents sync --memory <agent>'));
|
|
119
124
|
ensureUserMemoryDir();
|
|
120
125
|
const input = agentArg || options.agent;
|
|
121
126
|
if (input) {
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* written on the host that actually owns the agent. A caller who doesn't already
|
|
13
13
|
* know the host (a detached `agents run --device <h> --no-follow` dispatch) is
|
|
14
14
|
* still resolved automatically: a `target` matching no local/cloud session falls
|
|
15
|
-
* through to the `~/.agents/.cache/hosts/` records `agents
|
|
15
|
+
* through to the `~/.agents/.cache/hosts/` records `agents devices ps` reads
|
|
16
16
|
* (RUSH-2366 follow-up — see decideHostTaskRoute in lib/mailbox-target.ts), and
|
|
17
17
|
* the message is rerouted there.
|
|
18
18
|
*
|
package/dist/commands/message.js
CHANGED
|
@@ -2,7 +2,7 @@ import chalk from 'chalk';
|
|
|
2
2
|
import { spawn } from 'child_process';
|
|
3
3
|
import { die } from '../lib/format.js';
|
|
4
4
|
import { parseDuration } from '../lib/hooks/cache.js';
|
|
5
|
-
import { getActiveSessions } from '../lib/session/active.js';
|
|
5
|
+
import { getActiveSessions, isSessionIdLiveOnProcessTable } from '../lib/session/active.js';
|
|
6
6
|
import { getTaskById, updateTaskStatus } from '../lib/cloud/store.js';
|
|
7
7
|
import { resolveProvider } from '../lib/cloud/registry.js';
|
|
8
8
|
import { mailboxDir, enqueue } from '../lib/mailbox.js';
|
|
@@ -119,7 +119,7 @@ async function deliverViaResume(route, mailboxId) {
|
|
|
119
119
|
* dispatch (RUSH-2366 follow-up). `getActiveSessions()` never sees these: the
|
|
120
120
|
* live process is on the dispatch's host, not this machine, so the local
|
|
121
121
|
* session resolver in `resolveMessageTarget` reports "no running agent" even
|
|
122
|
-
* while `agents
|
|
122
|
+
* while `agents devices ps` shows the same dispatch running with a live remote
|
|
123
123
|
* pid — the only recovery was kill-and-redispatch, losing all context.
|
|
124
124
|
*
|
|
125
125
|
* Re-spawns `agents message <remoteRef> <text> --host <host>` through
|
|
@@ -251,11 +251,42 @@ export function registerMessageCommand(program) {
|
|
|
251
251
|
return;
|
|
252
252
|
}
|
|
253
253
|
case 'none': {
|
|
254
|
+
// RUSH-2384: a live local process can still advertise `--session-id
|
|
255
|
+
// <target>` in its argv when getActiveSessions lost the row (empty
|
|
256
|
+
// by-pid registry, teams status flap, fold into a parent). Mailbox
|
|
257
|
+
// delivery only needs the id — prove liveness from the process table
|
|
258
|
+
// before giving up, so a mid-run agent is never unreachable while
|
|
259
|
+
// its pid is alive.
|
|
260
|
+
if (await isSessionIdLiveOnProcessTable(target)) {
|
|
261
|
+
try {
|
|
262
|
+
const block = findOpenBlockForMailbox(target);
|
|
263
|
+
const route = resolveAnswerRoute({
|
|
264
|
+
mailboxId: target,
|
|
265
|
+
answer: text,
|
|
266
|
+
block,
|
|
267
|
+
session: null,
|
|
268
|
+
});
|
|
269
|
+
if (route.kind === 'refuse')
|
|
270
|
+
die(route.reason);
|
|
271
|
+
claimBlockAnswer(block, opts);
|
|
272
|
+
if (route.kind === 'mailbox') {
|
|
273
|
+
await deliverViaMailbox(target, text, block, { from: opts.from, ttlSeconds });
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
die(`Live process carries --session-id ${target} but needs a ${route.kind} rail ` +
|
|
277
|
+
`that is unavailable without an active-session row. Retry after the session ` +
|
|
278
|
+
`reappears in \`agents sessions --active\`, or inject into its terminal directly.`);
|
|
279
|
+
}
|
|
280
|
+
catch (err) {
|
|
281
|
+
die(err.message);
|
|
282
|
+
}
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
254
285
|
// Not a local/cloud session — check whether it's a detached
|
|
255
286
|
// `--device ... --no-follow` dispatch, which `getActiveSessions()`
|
|
256
287
|
// never sees (its live process is on another host). Same records
|
|
257
|
-
// `agents
|
|
258
|
-
// Heal first, exactly as `
|
|
288
|
+
// `agents devices ps` reads, so the two commands never disagree.
|
|
289
|
+
// Heal first, exactly as `agents devices stop`/`agents devices ps` do: a detached
|
|
259
290
|
// dispatch record never self-updates, so a finished run is still
|
|
260
291
|
// stamped `status:'running'` on disk. Without this we'd route a dead
|
|
261
292
|
// task through an SSH reroute that can only fail, instead of
|
|
@@ -269,9 +300,9 @@ export function registerMessageCommand(program) {
|
|
|
269
300
|
if (hostRoute.kind === 'finished') {
|
|
270
301
|
die(`Task '${target}' on host '${hostRoute.host}' already ${hostRoute.status}` +
|
|
271
302
|
(hostRoute.exitCode !== undefined ? ` (exit ${hostRoute.exitCode})` : '') +
|
|
272
|
-
`. Nothing to message. View its output: \`agents
|
|
303
|
+
`. Nothing to message. View its output: \`agents logs ${target}\`.`);
|
|
273
304
|
}
|
|
274
|
-
die(`No running agent or cloud task matches "${target}". List targets with \`agents sessions --active\` or \`agents
|
|
305
|
+
die(`No running agent or cloud task matches "${target}". List targets with \`agents sessions --active\` or \`agents devices ps\`.`);
|
|
275
306
|
}
|
|
276
307
|
}
|
|
277
308
|
});
|
package/dist/commands/models.js
CHANGED
|
@@ -16,6 +16,8 @@ import { setTierOverride, clearTierOverride, listTierOverrides } from '../lib/mo
|
|
|
16
16
|
import { getModelPricing } from '../lib/pricing/index.js';
|
|
17
17
|
import { terminalWidth, truncateToWidth, stringWidth } from '../lib/session/width.js';
|
|
18
18
|
import { wrapJoined } from './inspect.js';
|
|
19
|
+
import { setHelpSections } from '../lib/help.js';
|
|
20
|
+
import { formatRunDefaultEntry, listRunDefaults, parseRunDefaultSelector, setRunDefault, } from '../lib/run-defaults.js';
|
|
19
21
|
const MODEL_CAPABLE_AGENTS = ['claude', 'codex', 'opencode', 'cursor', 'openclaw', 'antigravity', 'kimi', 'grok', 'droid', 'pi'];
|
|
20
22
|
/**
|
|
21
23
|
* Agents that don't necessarily install under ~/.agents/versions (cursor ships
|
|
@@ -75,8 +77,74 @@ export function registerModelsCommand(program) {
|
|
|
75
77
|
console.log(chalk.gray(' Permission modes (--mode plan|edit|auto|skip): `agents modes <agent>`'));
|
|
76
78
|
}
|
|
77
79
|
});
|
|
80
|
+
// `models set` — the ergonomic setter for per-agent/version run defaults. It
|
|
81
|
+
// reads and writes the same store as `agents config set run.<agent@version>.*`
|
|
82
|
+
// (agents.yaml -> run.defaults), so the two stay consistent — `set` is just the
|
|
83
|
+
// short front door, nested here because `models` owns model/mode concerns.
|
|
84
|
+
const set = models
|
|
85
|
+
.command('set [selector]')
|
|
86
|
+
.description('Set the default model/mode an agent version uses for `agents run`')
|
|
87
|
+
.option('--model <model>', 'Default model or model alias, forwarded via --model')
|
|
88
|
+
.option('--mode <mode>', "Default mode: plan, edit, auto, skip. 'full' accepted as alias for skip.")
|
|
89
|
+
.action((selector, options) => {
|
|
90
|
+
try {
|
|
91
|
+
const hasFlags = options.model !== undefined || options.mode !== undefined;
|
|
92
|
+
if (!selector) {
|
|
93
|
+
if (hasFlags) {
|
|
94
|
+
throw new Error('Selector is required when passing --model/--mode. Example: agents models set claude@2.1.220 --model opus-5');
|
|
95
|
+
}
|
|
96
|
+
const entries = listRunDefaults();
|
|
97
|
+
if (entries.length === 0) {
|
|
98
|
+
console.log(chalk.gray('No agent defaults configured.'));
|
|
99
|
+
console.log(chalk.gray('Set one with: agents models set claude@2.1.220 --model opus-5'));
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
console.log(chalk.bold('Agent Defaults\n'));
|
|
103
|
+
for (const entry of entries) {
|
|
104
|
+
console.log(` ${formatRunDefaultEntry(entry)}`);
|
|
105
|
+
}
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (!hasFlags) {
|
|
109
|
+
const parsed = parseRunDefaultSelector(selector);
|
|
110
|
+
const entry = listRunDefaults().find((e) => e.selector === parsed.selector);
|
|
111
|
+
if (!entry || (!entry.defaults.mode && !entry.defaults.model)) {
|
|
112
|
+
console.log(chalk.gray(`No default set for ${parsed.selector}.`));
|
|
113
|
+
console.log(chalk.gray(`Set one with: agents models set ${selector} --model <model>`));
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
console.log(` ${formatRunDefaultEntry(entry)}`);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const entry = setRunDefault(selector, {
|
|
120
|
+
...(options.mode !== undefined ? { mode: options.mode } : {}),
|
|
121
|
+
...(options.model !== undefined ? { model: options.model } : {}),
|
|
122
|
+
});
|
|
123
|
+
console.log(chalk.green('Set default:'));
|
|
124
|
+
console.log(` ${formatRunDefaultEntry(entry)}`);
|
|
125
|
+
}
|
|
126
|
+
catch (err) {
|
|
127
|
+
console.error(chalk.red(err.message));
|
|
128
|
+
process.exit(1);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
setHelpSections(set, {
|
|
132
|
+
examples: `
|
|
133
|
+
agents models set claude@2.1.220 --model opus-5
|
|
134
|
+
agents models set 'claude:*' --mode auto --model opus
|
|
135
|
+
agents models set claude@2.1.220
|
|
136
|
+
agents models set
|
|
137
|
+
`,
|
|
138
|
+
notes: `
|
|
139
|
+
Selectors use <agent>@<version> or <agent>:<version>; * matches all versions.
|
|
140
|
+
Exact selectors override wildcard selectors field by field.
|
|
141
|
+
Writes the same store as 'agents config set run.<agent@version>.*'. Explicit flags on
|
|
142
|
+
'agents run' always win over configured defaults.
|
|
143
|
+
`,
|
|
144
|
+
});
|
|
78
145
|
// Override subcommands. These WRITE agents.yaml so the user never hand-edits it;
|
|
79
146
|
// resolution is exact `<agent>@<version>` over `<agent>` over the auto guess.
|
|
147
|
+
const tierDeprecation = chalk.yellow('Deprecation: `agents models tier` is replaced by `agents config set run.<agent@version>.tier.<tier>`.');
|
|
80
148
|
const tier = models
|
|
81
149
|
.command('tier')
|
|
82
150
|
.description('Override which model a cost tier resolves to (per harness, or per agent@version).');
|
|
@@ -85,6 +153,7 @@ export function registerModelsCommand(program) {
|
|
|
85
153
|
.description('Pin a tier to a model. selector: <agent> or <agent>@<version> (e.g. kimi, kimi@0.19.2).')
|
|
86
154
|
.action((selector, tierName, model) => {
|
|
87
155
|
try {
|
|
156
|
+
console.warn(tierDeprecation);
|
|
88
157
|
const entry = setTierOverride(selector, tierName, model);
|
|
89
158
|
console.log(chalk.green(`✓ ${entry.selector} ${chalk.cyan(tierName.toLowerCase())} → ${chalk.bold(model)}`));
|
|
90
159
|
}
|
|
@@ -98,6 +167,7 @@ export function registerModelsCommand(program) {
|
|
|
98
167
|
.description('Clear one tier (or all tiers) back to the auto guess.')
|
|
99
168
|
.action((selector, tierName) => {
|
|
100
169
|
try {
|
|
170
|
+
console.warn(tierDeprecation);
|
|
101
171
|
const changed = clearTierOverride(selector, tierName);
|
|
102
172
|
console.log(changed ? chalk.green(`✓ cleared ${selector}${tierName ? ` ${tierName}` : ''}`) : chalk.gray('nothing to clear'));
|
|
103
173
|
}
|
|
@@ -110,6 +180,7 @@ export function registerModelsCommand(program) {
|
|
|
110
180
|
.command('list')
|
|
111
181
|
.description('List all configured tier overrides.')
|
|
112
182
|
.action(() => {
|
|
183
|
+
console.warn(tierDeprecation);
|
|
113
184
|
const entries = listTierOverrides();
|
|
114
185
|
if (entries.length === 0) {
|
|
115
186
|
console.log(chalk.gray('No tier overrides — every tier uses the auto guess. Set one with `agents models tier set`.'));
|