@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/harness.js
CHANGED
|
@@ -16,6 +16,7 @@ import { isInteractiveTerminal } from './utils.js';
|
|
|
16
16
|
import { listProfiles, readProfile, writeProfile, deleteProfile, profileExists, profileHostLabel, profileProviderLabel, profileModelLabel, profileAuthLabel, profileLabel, forkProfile, editProfile, renameProfile, profileFromHostModel, authEnvKeyForHost, modelEnvKeyForHost, baseUrlEnvKeyForHost, getProfilePath, validateProfileName, } from '../lib/profiles.js';
|
|
17
17
|
import { listPresets, getPreset } from '../lib/profiles-presets.js';
|
|
18
18
|
import { AGENTS, ALL_AGENT_IDS, resolveAgentName } from '../lib/agents.js';
|
|
19
|
+
import { findAccount } from '../lib/account-registry.js';
|
|
19
20
|
import { runWizardSteps, createSteps, editSteps, defaultWizardIO, } from './harness-wizard.js';
|
|
20
21
|
/** Short capability summary for a native harness — its supported run modes. */
|
|
21
22
|
function nativeModes(id) {
|
|
@@ -39,6 +40,8 @@ export function renderHarnessDetail(name) {
|
|
|
39
40
|
console.log(`Fallback: ${p.fallback_model}`);
|
|
40
41
|
console.log(`Provider: ${profileProviderLabel(p)}`);
|
|
41
42
|
console.log(`Auth: ${profileAuthLabel(p)}`);
|
|
43
|
+
if (p.account)
|
|
44
|
+
console.log(`Account: ${findAccount(p.account)?.name ?? p.account}`);
|
|
42
45
|
if (p.forkedFrom)
|
|
43
46
|
console.log(`Forked: from ${p.forkedFrom}`);
|
|
44
47
|
console.log(chalk.gray(getProfilePath(p.name)));
|
|
@@ -54,14 +57,24 @@ export function renderHarnessDetail(name) {
|
|
|
54
57
|
* copy a model from.
|
|
55
58
|
*/
|
|
56
59
|
export function buildFork(source, name, opts) {
|
|
60
|
+
if (opts.authProvider || opts.fromSecrets)
|
|
61
|
+
throw new Error("Harnesses no longer own credentials. Add one with 'agents accounts add <name> --provider <provider> --auth <type>', then pass --account <name>.");
|
|
57
62
|
if (profileExists(source)) {
|
|
58
|
-
|
|
63
|
+
const profile = forkProfile(readProfile(source), name, {
|
|
59
64
|
model: opts.model,
|
|
60
65
|
baseUrl: opts.baseUrl,
|
|
61
66
|
provider: opts.authProvider,
|
|
62
67
|
version: opts.version,
|
|
63
68
|
description: opts.description,
|
|
64
69
|
});
|
|
70
|
+
if (opts.account) {
|
|
71
|
+
const account = findAccount(opts.account);
|
|
72
|
+
if (!account)
|
|
73
|
+
throw new Error(`Unknown account '${opts.account}'.`);
|
|
74
|
+
profile.account = account.id;
|
|
75
|
+
profile.provider = account.provider;
|
|
76
|
+
}
|
|
77
|
+
return profile;
|
|
65
78
|
}
|
|
66
79
|
const host = resolveAgentName(source);
|
|
67
80
|
if (!host) {
|
|
@@ -71,13 +84,21 @@ export function buildFork(source, name, opts) {
|
|
|
71
84
|
if (!opts.model) {
|
|
72
85
|
throw new Error(`--model <id> is required when forking the native '${host}' harness (there is no model to inherit).`);
|
|
73
86
|
}
|
|
74
|
-
|
|
87
|
+
const profile = profileFromHostModel(name, host, opts.model, {
|
|
75
88
|
version: opts.version,
|
|
76
89
|
baseUrl: opts.baseUrl,
|
|
77
90
|
provider: opts.authProvider,
|
|
78
91
|
authEnvVar: opts.authProvider ? authEnvKeyForHostOrThrow(host) : undefined,
|
|
79
92
|
description: opts.description ?? `Forked from ${host}: ${opts.model}`,
|
|
80
93
|
});
|
|
94
|
+
if (opts.account) {
|
|
95
|
+
const account = findAccount(opts.account);
|
|
96
|
+
if (!account)
|
|
97
|
+
throw new Error(`Unknown account '${opts.account}'.`);
|
|
98
|
+
profile.account = account.id;
|
|
99
|
+
profile.provider = account.provider;
|
|
100
|
+
}
|
|
101
|
+
return profile;
|
|
81
102
|
}
|
|
82
103
|
/** Auth env var for a host, as a hard error when the host declares none. */
|
|
83
104
|
function authEnvKeyForHostOrThrow(host) {
|
|
@@ -111,6 +132,7 @@ export function hasEditFlags(opts) {
|
|
|
111
132
|
return (opts.model !== undefined ||
|
|
112
133
|
opts.baseUrl !== undefined ||
|
|
113
134
|
opts.authProvider !== undefined ||
|
|
135
|
+
opts.account !== undefined ||
|
|
114
136
|
opts.version !== undefined ||
|
|
115
137
|
opts.description !== undefined ||
|
|
116
138
|
opts.fallbackModel !== undefined ||
|
|
@@ -132,6 +154,15 @@ export function buildEdit(name, opts) {
|
|
|
132
154
|
}
|
|
133
155
|
const source = readProfile(name);
|
|
134
156
|
const edited = editProfile(source, buildEditOverrides(opts));
|
|
157
|
+
if (opts.authProvider || opts.fromSecrets)
|
|
158
|
+
throw new Error("Harnesses no longer own credentials. Add one with 'agents accounts add <name> --provider <provider> --auth <type>', then pass --account <name>.");
|
|
159
|
+
if (opts.account !== undefined) {
|
|
160
|
+
const account = findAccount(opts.account);
|
|
161
|
+
if (!account)
|
|
162
|
+
throw new Error(`Unknown account '${opts.account}'.`);
|
|
163
|
+
edited.account = account.id;
|
|
164
|
+
edited.provider = account.provider;
|
|
165
|
+
}
|
|
135
166
|
if (opts.version === '')
|
|
136
167
|
delete edited.host.version;
|
|
137
168
|
if (opts.fallbackModel !== undefined) {
|
|
@@ -210,8 +241,7 @@ async function runCreateWizard() {
|
|
|
210
241
|
opts: {
|
|
211
242
|
model: draft.model,
|
|
212
243
|
baseUrl: draft.baseUrl,
|
|
213
|
-
|
|
214
|
-
fromSecrets: draft.fromSecrets,
|
|
244
|
+
account: draft.account,
|
|
215
245
|
},
|
|
216
246
|
};
|
|
217
247
|
}
|
|
@@ -238,10 +268,8 @@ export function draftToEditOptions(draft, original) {
|
|
|
238
268
|
opts.model = draft.model;
|
|
239
269
|
if (draft.baseUrl && draft.baseUrl !== curBaseUrl)
|
|
240
270
|
opts.baseUrl = draft.baseUrl;
|
|
241
|
-
if (draft.
|
|
242
|
-
opts.
|
|
243
|
-
if (draft.fromSecrets !== undefined)
|
|
244
|
-
opts.fromSecrets = draft.fromSecrets;
|
|
271
|
+
if (draft.account !== undefined)
|
|
272
|
+
opts.account = draft.account;
|
|
245
273
|
if (draft.version !== undefined && draft.version !== curVersion)
|
|
246
274
|
opts.version = draft.version;
|
|
247
275
|
if (draft.fallbackModel !== undefined && draft.fallbackModel !== curFallback)
|
|
@@ -300,7 +328,7 @@ Examples:
|
|
|
300
328
|
agents run spark "refactor api/handlers/checkout.py"
|
|
301
329
|
|
|
302
330
|
# Fork a native harness, or copy one of your own and swap the model
|
|
303
|
-
agents harness fork opencode deepseek --model deepseek/deepseek-v4-flash-0731 --
|
|
331
|
+
agents harness fork opencode deepseek --model deepseek/deepseek-v4-flash-0731 --account openrouter-work
|
|
304
332
|
agents harness fork deepseek deepseek-chat --model deepseek/deepseek-chat-v3
|
|
305
333
|
|
|
306
334
|
# Per-run model override still wins
|
|
@@ -310,14 +338,14 @@ Examples:
|
|
|
310
338
|
agents harness edit deepseek --fallback-model deepseek/deepseek-chat-v3
|
|
311
339
|
agents harness rename deepseek deepseek-classic
|
|
312
340
|
|
|
313
|
-
# No args, in an interactive terminal: a wizard walks you through host, model,
|
|
341
|
+
# No args, in an interactive terminal: a wizard walks you through host, model, and account
|
|
314
342
|
agents harness add
|
|
315
343
|
|
|
316
344
|
# See custom harnesses, addable presets, and native harnesses
|
|
317
345
|
agents harness list
|
|
318
346
|
|
|
319
|
-
# Private OpenAI/Anthropic-compatible endpoint
|
|
320
|
-
agents harness add corp --host claude --model gpt-x --base-url https://gw.corp/v1 --
|
|
347
|
+
# Private OpenAI/Anthropic-compatible endpoint using an existing account
|
|
348
|
+
agents harness add corp --host claude --model gpt-x --base-url https://gw.corp/v1 --account corp
|
|
321
349
|
|
|
322
350
|
# Custom harnesses are just profiles — this also works via 'agents profiles'
|
|
323
351
|
`);
|
|
@@ -327,14 +355,17 @@ Examples:
|
|
|
327
355
|
.option('--host <agent>', 'Host CLI to run under (opencode, claude, codex, grok, antigravity, ...) — pair with --model')
|
|
328
356
|
.option('--model <id>', 'Model id to pin on the host (e.g., meta/muse-spark-1.1) — pair with --host')
|
|
329
357
|
.option('--base-url <url>', 'Custom endpoint base URL (claude/codex hosts)')
|
|
330
|
-
.option('--
|
|
358
|
+
.option('--account <name>', 'Default durable credential account')
|
|
359
|
+
.option('--auth-provider <provider>', 'Removed: use agents accounts add, then --account')
|
|
331
360
|
.option('--preset <preset>', 'Apply a built-in preset instead of --host/--model')
|
|
332
361
|
.option('--version <version>', 'Pin the host CLI version (e.g., 1.16.0)')
|
|
333
|
-
.option('--from-secrets <bundle>[:<key>]',
|
|
362
|
+
.option('--from-secrets <bundle>[:<key>]', 'Removed: import the value with agents accounts add, then use --account')
|
|
334
363
|
.option('--key-stdin', 'Read API key from stdin instead of prompting (for scripts/CI)')
|
|
335
364
|
.option('--force', 'Overwrite an existing harness with the same name')
|
|
336
365
|
.action(async (name, opts) => {
|
|
337
366
|
try {
|
|
367
|
+
if (opts.authProvider || opts.fromSecrets)
|
|
368
|
+
throw new Error("Harnesses no longer own credentials. Add one with 'agents accounts add <name> --provider <provider> --auth <type>', then pass --account <name>.");
|
|
338
369
|
if (addNeedsWizard(name, opts)) {
|
|
339
370
|
if (!isInteractiveTerminal()) {
|
|
340
371
|
throw new Error("'agents harness add' needs --preset or --host + --model (or a name and an interactive terminal for the wizard).");
|
|
@@ -355,25 +386,26 @@ Examples:
|
|
|
355
386
|
.description('Fork a native harness (claude, opencode, ...) or an existing custom one into a new named harness. Omit args in a terminal for the interactive wizard.')
|
|
356
387
|
.option('--model <id>', 'Model to pin on the fork (required when forking a native harness)')
|
|
357
388
|
.option('--base-url <url>', 'Custom endpoint base URL (claude/codex hosts)')
|
|
358
|
-
.option('--
|
|
389
|
+
.option('--account <name>', 'Default durable credential account')
|
|
390
|
+
.option('--auth-provider <provider>', 'Removed: use agents accounts add, then --account')
|
|
359
391
|
.option('--version <version>', 'Pin the host CLI version (e.g., 1.16.0)')
|
|
360
392
|
.option('--description <text>', 'One-line description')
|
|
361
|
-
.option('--from-secrets <bundle>[:<key>]',
|
|
393
|
+
.option('--from-secrets <bundle>[:<key>]', 'Removed: import the value with agents accounts add, then use --account')
|
|
362
394
|
.option('--key-stdin', 'Read the API key from stdin instead of prompting (for scripts/CI)')
|
|
363
395
|
.option('--force', 'Overwrite an existing harness with the same name')
|
|
364
396
|
.addHelpText('after', `
|
|
365
397
|
Examples:
|
|
366
398
|
# Fork OpenCode into a harness pinned to a DeepSeek model on OpenRouter
|
|
367
|
-
agents harness fork opencode deepseek --model deepseek/deepseek-v4-flash-0731 --
|
|
399
|
+
agents harness fork opencode deepseek --model deepseek/deepseek-v4-flash-0731 --account openrouter-work
|
|
368
400
|
|
|
369
401
|
# Fork Claude Code onto a private gateway
|
|
370
|
-
agents harness fork claude corp --model gpt-x --base-url https://gw.corp/v1 --
|
|
402
|
+
agents harness fork claude corp --model gpt-x --base-url https://gw.corp/v1 --account corp
|
|
371
403
|
|
|
372
404
|
# Copy an existing harness and swap only the model
|
|
373
405
|
agents harness fork deepseek deepseek-chat --model deepseek/deepseek-chat-v3
|
|
374
406
|
|
|
375
|
-
#
|
|
376
|
-
agents harness fork claude corp --model gpt-x --
|
|
407
|
+
# Attach an account whose credential came from agents secrets
|
|
408
|
+
agents harness fork claude corp --model gpt-x --account corp
|
|
377
409
|
|
|
378
410
|
# No args, in an interactive terminal: walks through source, preset/model, name, key
|
|
379
411
|
agents harness fork
|
|
@@ -400,19 +432,20 @@ Examples:
|
|
|
400
432
|
.description('Edit an existing custom harness in place — model, endpoint, auth, version, description, fallback. Omit flags in a terminal for the interactive wizard.')
|
|
401
433
|
.option('--model <id>', 'Swap the pinned model')
|
|
402
434
|
.option('--base-url <url>', 'Swap the custom endpoint base URL')
|
|
403
|
-
.option('--
|
|
435
|
+
.option('--account <name>', 'Change the default durable credential account')
|
|
436
|
+
.option('--auth-provider <provider>', 'Removed: use agents accounts add, then --account')
|
|
404
437
|
.option('--version <version>', 'Re-pin the host CLI version (pass an empty string to unpin)')
|
|
405
438
|
.option('--description <text>', 'Update the one-line description')
|
|
406
439
|
.option('--fallback-model <id>', 'Secondary model retried on the same host on a rate limit (pass an empty string to clear it)')
|
|
407
|
-
.option('--from-secrets <bundle>[:<key>]',
|
|
440
|
+
.option('--from-secrets <bundle>[:<key>]', 'Removed: import the value with agents accounts add, then use --account')
|
|
408
441
|
.option('--key-stdin', 'Read the API key from stdin instead of prompting (for scripts/CI)')
|
|
409
442
|
.addHelpText('after', `
|
|
410
443
|
Examples:
|
|
411
444
|
# Swap the pinned model
|
|
412
445
|
agents harness edit deepseek --model deepseek/deepseek-v3.2
|
|
413
446
|
|
|
414
|
-
# Repoint auth at a different
|
|
415
|
-
agents harness edit corp --
|
|
447
|
+
# Repoint auth at a different durable account
|
|
448
|
+
agents harness edit corp --account corp2
|
|
416
449
|
|
|
417
450
|
# Unpin the host CLI version
|
|
418
451
|
agents harness edit spark --version ""
|
|
@@ -420,8 +453,8 @@ Examples:
|
|
|
420
453
|
# Add a same-host fallback model for rate-limit retries
|
|
421
454
|
agents harness edit deepseek --fallback-model deepseek/deepseek-chat-v3
|
|
422
455
|
|
|
423
|
-
#
|
|
424
|
-
agents
|
|
456
|
+
# Rotate the attached credential without editing the harness
|
|
457
|
+
agents accounts set-key corp2 --from-secrets prod:OPENROUTER_KEY
|
|
425
458
|
|
|
426
459
|
# No flags, in an interactive terminal: a wizard walks each field pre-filled
|
|
427
460
|
agents harness edit deepseek
|
package/dist/commands/hooks.js
CHANGED
|
@@ -517,17 +517,6 @@ Examples:
|
|
|
517
517
|
console.log(chalk.gray('Central source unchanged. Hooks will re-sync on next agent launch.'));
|
|
518
518
|
}
|
|
519
519
|
});
|
|
520
|
-
// `hooks sync` is gone — sync runs automatically when the agent launches.
|
|
521
|
-
hooksCmd
|
|
522
|
-
.command('sync', { hidden: true })
|
|
523
|
-
.allowUnknownOption()
|
|
524
|
-
.allowExcessArguments()
|
|
525
|
-
.action(() => {
|
|
526
|
-
console.error(chalk.red('"agents hooks sync" is gone.'));
|
|
527
|
-
console.error(chalk.gray('Sync runs automatically when you launch the agent.'));
|
|
528
|
-
console.error(chalk.gray('To remove orphans, use: agents prune cleanup hooks'));
|
|
529
|
-
process.exit(1);
|
|
530
|
-
});
|
|
531
520
|
// `hooks prune` moved to the top-level `agents prune cleanup` command.
|
|
532
521
|
hooksCmd
|
|
533
522
|
.command('prune', { hidden: true })
|
|
@@ -15,8 +15,9 @@ import { Command } from 'commander';
|
|
|
15
15
|
import type { ManifestHook } from '../lib/types.js';
|
|
16
16
|
import { type McpYamlConfig } from '../lib/mcp.js';
|
|
17
17
|
import { type PluginResourceGroup } from '../lib/plugins.js';
|
|
18
|
+
import { type JobConfig, type RunMeta } from '../lib/routines.js';
|
|
18
19
|
/** Resource kinds the inspect command can drill into. */
|
|
19
|
-
declare const DRILLABLE_KINDS: readonly ["commands", "skills", "hooks", "mcp", "rules", "plugins", "workflows", "subagents"];
|
|
20
|
+
declare const DRILLABLE_KINDS: readonly ["commands", "skills", "hooks", "mcp", "rules", "plugins", "workflows", "subagents", "routines"];
|
|
20
21
|
type DrillableKind = typeof DRILLABLE_KINDS[number];
|
|
21
22
|
/** Wrap a separator-joined value list under `prefix`, preserving a hanging indent. */
|
|
22
23
|
export declare function wrapJoined(prefix: string, items: string[], sep: string, width: number): string[];
|
|
@@ -33,6 +34,11 @@ interface ResourceItem {
|
|
|
33
34
|
extra?: Array<[string, string]>;
|
|
34
35
|
/** For plugins: the resource categories (skills, commands, …) the bundle packages. */
|
|
35
36
|
groups?: PluginResourceGroup[];
|
|
37
|
+
/**
|
|
38
|
+
* Machine-shaped fields for `--json`, when the display strings in `extra` would
|
|
39
|
+
* lose information a script needs (a routine's raw cron, its device arrays).
|
|
40
|
+
*/
|
|
41
|
+
json?: Record<string, unknown>;
|
|
36
42
|
}
|
|
37
43
|
export interface InspectOptions {
|
|
38
44
|
brief?: boolean;
|
|
@@ -45,6 +51,7 @@ export interface InspectOptions {
|
|
|
45
51
|
plugins?: boolean | string;
|
|
46
52
|
workflows?: boolean | string;
|
|
47
53
|
subagents?: boolean | string;
|
|
54
|
+
routines?: boolean | string;
|
|
48
55
|
command?: string;
|
|
49
56
|
skill?: string;
|
|
50
57
|
hook?: string;
|
|
@@ -52,6 +59,7 @@ export interface InspectOptions {
|
|
|
52
59
|
plugin?: string;
|
|
53
60
|
workflow?: string;
|
|
54
61
|
subagent?: string;
|
|
62
|
+
routine?: string;
|
|
55
63
|
}
|
|
56
64
|
export declare function registerInspectCommand(program: Command): void;
|
|
57
65
|
export declare function inspectAction(target: string, options: InspectOptions): Promise<void>;
|
|
@@ -71,6 +79,55 @@ export declare function resolveRepoTarget(target: string, cwd?: string): RepoTar
|
|
|
71
79
|
export declare function inspectRepo(repo: RepoTarget, options: InspectOptions): Promise<void>;
|
|
72
80
|
/** List one resource kind from a single repo root — no layering, no overrides. */
|
|
73
81
|
export declare function collectRepoKind(repo: RepoTarget, kind: DrillableKind): ResourceItem[];
|
|
82
|
+
/** The live answers about one routine — what the YAML alone cannot say. */
|
|
83
|
+
export interface RoutineLiveState {
|
|
84
|
+
/** Devices whose `routines:` allowlist names it. Empty means it fires nowhere. */
|
|
85
|
+
devices: string[];
|
|
86
|
+
/** False until some device has materialized an allowlist at all. */
|
|
87
|
+
materialized: boolean;
|
|
88
|
+
/** This machine's name, for reporting whether the routine is enabled here. */
|
|
89
|
+
thisDevice: string;
|
|
90
|
+
/**
|
|
91
|
+
* THIS machine's activation answer, from `routineEnabledOnThisDevice` — the
|
|
92
|
+
* same call `applyDeviceActivation` makes. `null` means this device has not
|
|
93
|
+
* materialized its own allowlist, so the file's `enabled:` still governs.
|
|
94
|
+
*
|
|
95
|
+
* Deliberately separate from `materialized`, which is fleet-wide: a box whose
|
|
96
|
+
* own device doc has no `routines:` key while a synced peer's does is the
|
|
97
|
+
* normal state of a freshly-joined machine, and conflating the two reported
|
|
98
|
+
* `enabled: no` for routines the daemon was actively firing.
|
|
99
|
+
*/
|
|
100
|
+
enabledHere: boolean | null;
|
|
101
|
+
/** Last run's status, or null if it has never run on a device we can see. */
|
|
102
|
+
lastStatus: RunMeta['status'] | null;
|
|
103
|
+
/** ISO timestamp of that run's start. */
|
|
104
|
+
lastAt: string | null;
|
|
105
|
+
}
|
|
106
|
+
/** `2h` / `3d` / `just now` — compact enough for a 10-column cell. */
|
|
107
|
+
export declare function compactAge(iso: string | null, now?: Date): string;
|
|
108
|
+
/** What makes this routine fire: a humanized cron, an event trigger, or nothing. */
|
|
109
|
+
export declare function routineFireLabel(job: JobConfig, now?: Date): string;
|
|
110
|
+
/** What the routine actually executes. Exactly one of agent/workflow/command is set. */
|
|
111
|
+
export declare function routineTargetLabel(job: JobConfig): string;
|
|
112
|
+
/**
|
|
113
|
+
* A routine's one-line intent.
|
|
114
|
+
*
|
|
115
|
+
* Routine YAML has no `description:` key, so the generic first-prose-line reader
|
|
116
|
+
* returns `name: growth-metrics` for one file and a real sentence for the next.
|
|
117
|
+
* Prefer the prompt's first sentence, then the file's leading comment block, then
|
|
118
|
+
* the first meaningful line of a shell command.
|
|
119
|
+
*/
|
|
120
|
+
export declare function routineDescription(job: JobConfig | null, raw: string): string;
|
|
121
|
+
/**
|
|
122
|
+
* Read every routine one DotAgents repo declares.
|
|
123
|
+
*
|
|
124
|
+
* Reads exactly `<root>/routines/`, never the layered `listJobs` — `collectRepoKind`
|
|
125
|
+
* is a single-root view, and returning `~/.agents` routines while inspecting a
|
|
126
|
+
* project repo would be a lie. `live` is injectable because `getUserAgentsDir()`
|
|
127
|
+
* and `getRunsDir()` have no env override, so tests cannot otherwise keep this
|
|
128
|
+
* off the developer's real fleet state.
|
|
129
|
+
*/
|
|
130
|
+
export declare function collectRepoRoutines(repo: RepoTarget, live?: (name: string) => RoutineLiveState, now?: Date): ResourceItem[];
|
|
74
131
|
/** Recursive size + file count of a path; symlinks are not followed. */
|
|
75
132
|
export declare function pathSize(p: string): {
|
|
76
133
|
bytes: number;
|
|
@@ -106,6 +163,24 @@ export interface RepoGitInfo {
|
|
|
106
163
|
behind: number | null;
|
|
107
164
|
}
|
|
108
165
|
export declare function repoGitInfo(root: string): RepoGitInfo | null;
|
|
166
|
+
/**
|
|
167
|
+
* The scannable half of a description: everything before the trigger clause, and
|
|
168
|
+
* only the first sentence of that. 15 of 20 skills in .system lead with their
|
|
169
|
+
* purpose and then append "Triggers on: …" — in a one-line row that boilerplate
|
|
170
|
+
* is what survives truncation, so the row says nothing. The full text still
|
|
171
|
+
* renders in the preview pane.
|
|
172
|
+
*/
|
|
173
|
+
export declare function summaryLine(description: string): string;
|
|
174
|
+
/**
|
|
175
|
+
* The preview pane for one row, refreshed as the selection moves.
|
|
176
|
+
*
|
|
177
|
+
* Adaptive on purpose — the sessions picker sets the precedent: a Cursor
|
|
178
|
+
* session shows Dirs/Repos/Artifacts, a Codex one shows a different set, and
|
|
179
|
+
* empty fields simply do not render. A hook's useful metadata (what fires it,
|
|
180
|
+
* whether it is wired) has nothing in common with a skill's (what invokes it,
|
|
181
|
+
* where it is synced), so each kind contributes its own rows and blanks drop out.
|
|
182
|
+
*/
|
|
183
|
+
export declare function previewFor(kind: DrillableKind, item: ResourceItem, hookManifest: Map<string, ManifestHook>): string;
|
|
109
184
|
/**
|
|
110
185
|
* Compact one-liner for a hook from its manifest entry: the firing events (with
|
|
111
186
|
* the matcher/tool-name in parens), then a `·`-separated predicate summary, then
|
|
@@ -121,4 +196,22 @@ export declare function summarizeMcp(cfg: McpYamlConfig): string;
|
|
|
121
196
|
* script basename, not the manifest key.
|
|
122
197
|
*/
|
|
123
198
|
export declare function hookManifestByScript(manifest: Record<string, ManifestHook>): Map<string, ManifestHook>;
|
|
199
|
+
/**
|
|
200
|
+
* Health tier for the section ordering. Lower sorts first.
|
|
201
|
+
*
|
|
202
|
+
* `printExpandedSection` shows only the first handful before a `…(+N)` tail, so
|
|
203
|
+
* for a repo with 24 routines the sort IS the section. Same reasoning as
|
|
204
|
+
* `hookRows` putting wired hooks first: a routine that fires nowhere is exactly
|
|
205
|
+
* what the reader opened this for, and must never hide behind the tail.
|
|
206
|
+
*/
|
|
207
|
+
export declare function routineHealthTier(item: ResourceItem): number;
|
|
208
|
+
/**
|
|
209
|
+
* The one-line warning under the Routines section, or null when it would mislead.
|
|
210
|
+
*
|
|
211
|
+
* Silent until some device has materialized a `routines:` list — before that,
|
|
212
|
+
* every routine is legitimately unpinned and "will not fire" would be noise.
|
|
213
|
+
*/
|
|
214
|
+
export declare function routineDarkWarning(items: ResourceItem[]): string | null;
|
|
215
|
+
/** Read a repo/agents.yaml `hooks:` section into a name→ManifestHook map (best-effort). */
|
|
216
|
+
export declare function hookManifestFromFile(agentsYamlPath: string): Record<string, ManifestHook>;
|
|
124
217
|
export {};
|