@phnx-labs/agents-cli 1.22.34 → 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 +672 -2
- package/README.md +82 -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 +85 -0
- package/dist/commands/share.js +379 -8
- 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/codex-policy.d.ts +9 -1
- package/dist/lib/codex-policy.js +17 -2
- 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 +220 -122
- 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-key.d.ts +17 -0
- package/dist/lib/project-key.js +26 -0
- 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/delete.d.ts +93 -0
- package/dist/lib/share/delete.js +127 -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 +136 -27
- 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 +14 -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
|
@@ -48,7 +48,7 @@ export function resolveMessageTarget(target, sessions, isCloudTask) {
|
|
|
48
48
|
* local/cloud session (RUSH-2366 follow-up): `getActiveSessions()` has no
|
|
49
49
|
* visibility into a detached `agents run --device <host> --no-follow`
|
|
50
50
|
* dispatch, whose only local record is the `~/.agents/.cache/hosts/<id>.json`
|
|
51
|
-
* sidecar `agents
|
|
51
|
+
* sidecar `agents devices ps` reads. Pure — the caller does the actual lookup
|
|
52
52
|
* (`resolveTaskRef`) and I/O (the ssh reroute).
|
|
53
53
|
*
|
|
54
54
|
* `remoteRef` prefers the remote agent's OWN identity (its captured session id
|
package/dist/lib/manifest.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import * as fs from 'fs';
|
|
8
8
|
import * as yaml from 'yaml';
|
|
9
|
+
import { stringifyDoc } from './yaml-io.js';
|
|
9
10
|
import { ensureLockTarget, atomicWriteFileSync, withFileLock } from './fs-atomic.js';
|
|
10
11
|
import { safeJoin } from './paths.js';
|
|
11
12
|
/** Canonical filename for the manifest in any agents repo or project root. */
|
|
@@ -54,10 +55,12 @@ export function serializeManifest(manifest, existingContent) {
|
|
|
54
55
|
// Nothing changed → keep the file byte-identical (comments intact).
|
|
55
56
|
if (!changed)
|
|
56
57
|
return existingContent;
|
|
57
|
-
//
|
|
58
|
-
//
|
|
59
|
-
//
|
|
60
|
-
|
|
58
|
+
// stringifyDoc still normalizes a legacy flow root (`{}`) to block so edited
|
|
59
|
+
// nodes do not render flow, but no longer forces block on a normal document —
|
|
60
|
+
// that flattened committed flow sequences and made this writer disagree with
|
|
61
|
+
// the other agents.yaml writers (RUSH-2505). parseDocument still preserves
|
|
62
|
+
// comments + key ordering.
|
|
63
|
+
return isEmpty ? '' : stringifyDoc(doc);
|
|
61
64
|
}
|
|
62
65
|
/** Read and parse agents.yaml from a directory. Returns null if the file does not exist. */
|
|
63
66
|
export function readManifest(repoPath) {
|
|
Binary file
|
|
Binary file
|
|
@@ -2,8 +2,8 @@ import type { WatchdogTickResult } from '../watchdog/runner.js';
|
|
|
2
2
|
/**
|
|
3
3
|
* One registered fleet device, for the menu-bar's collapsible DEVICES section.
|
|
4
4
|
* Sourced from the local registry read (`loadDevices`) — no network probe — so
|
|
5
|
-
* it carries only
|
|
6
|
-
* is the interactive host, whether it is this machine). Live load% is merged in
|
|
5
|
+
* it carries only local persisted state (name, platform, preferred status,
|
|
6
|
+
* whether it is the interactive host, whether it is this machine). Live load% is merged in
|
|
7
7
|
* on the Swift side from the daemon-warmed `.fleet-stats.json`; online/offline
|
|
8
8
|
* is deliberately NOT claimed here (the registry's cached tailscale flag is
|
|
9
9
|
* documented as stale in both directions — registry.ts isLikelyOnline).
|
|
@@ -13,6 +13,7 @@ export interface MenubarDevice {
|
|
|
13
13
|
platform: string;
|
|
14
14
|
interactive: boolean;
|
|
15
15
|
isLocal: boolean;
|
|
16
|
+
preferred: boolean;
|
|
16
17
|
}
|
|
17
18
|
export interface MenubarSnapshot {
|
|
18
19
|
version: 1;
|
|
@@ -2,7 +2,7 @@ import * as fs from 'fs';
|
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import { buildRoutineListJson } from '../../commands/routines.js';
|
|
4
4
|
import { backfillActiveRowsFromIndex, isRunningLiveSession, serializeActiveSessionsForJson, serializeSessionsJson } from '../../commands/sessions.js';
|
|
5
|
-
import { getConfigValue } from '../device-config.js';
|
|
5
|
+
import { getConfigValue, loadAutoLaunchPreferences } from '../device-config.js';
|
|
6
6
|
import { loadDevices } from '../devices/registry.js';
|
|
7
7
|
import { machineId } from '../machine-id.js';
|
|
8
8
|
import { querySessions } from '../session/db.js';
|
|
@@ -14,7 +14,10 @@ import { getRuntimeStateDir } from '../state.js';
|
|
|
14
14
|
* it rides the same 3-minute snapshot poll instead of a second timer.
|
|
15
15
|
*/
|
|
16
16
|
async function buildMenubarDevices() {
|
|
17
|
-
const reg = await
|
|
17
|
+
const [reg, prefs] = await Promise.all([
|
|
18
|
+
loadDevices(),
|
|
19
|
+
loadAutoLaunchPreferences(),
|
|
20
|
+
]);
|
|
18
21
|
const interactiveHost = getConfigValue('interactive.host').value;
|
|
19
22
|
const self = machineId();
|
|
20
23
|
return Object.keys(reg)
|
|
@@ -24,6 +27,7 @@ async function buildMenubarDevices() {
|
|
|
24
27
|
platform: reg[name].platform,
|
|
25
28
|
interactive: name === interactiveHost,
|
|
26
29
|
isLocal: name === self,
|
|
30
|
+
preferred: prefs[name]?.preferred === true,
|
|
27
31
|
}));
|
|
28
32
|
}
|
|
29
33
|
export function readLastWatchdogTick(stateDir = path.join(getRuntimeStateDir(), 'watchdog')) {
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Leaf migrator: fold ~/.agents-system/ into ~/.agents/.system/.
|
|
3
|
+
*
|
|
4
|
+
* Kept separate from migrate.ts so the always-on startup hop (index.ts) does
|
|
5
|
+
* not load the hosts/routine/teams/daemon/menubar graph that migrate.ts's
|
|
6
|
+
* static imports pull in (RUSH-2454). migrate.ts re-exports and still calls
|
|
7
|
+
* foldLegacySystemRepo() at the top of runMigration().
|
|
8
|
+
*
|
|
9
|
+
* HOME is resolved at call time (not module load) so tests can point at a
|
|
10
|
+
* fixture tree via process.env.HOME without cache-busting the module.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Fold ~/.agents-system/ into ~/.agents/.system/.
|
|
14
|
+
*
|
|
15
|
+
* MUST run first in runMigration() — every other migrator reads SYSTEM_DIR
|
|
16
|
+
* (the new path), so the contents have to be there before they execute.
|
|
17
|
+
*
|
|
18
|
+
* Strategy:
|
|
19
|
+
* 1. If legacy dir doesn't exist or is already a symlink, no-op.
|
|
20
|
+
* 2. If new path doesn't exist yet, rename in one shot (fast path).
|
|
21
|
+
* 3. If both exist (mid-migration / re-run on partially-migrated state),
|
|
22
|
+
* merge legacy → new with new winning on collision, then drop legacy.
|
|
23
|
+
*
|
|
24
|
+
* After the contents move, the legacy path becomes a symlink → SYSTEM_DIR
|
|
25
|
+
* so external tooling that still references ~/.agents-system/ keeps
|
|
26
|
+
* resolving correctly. The symlink is harmless on its own and can be
|
|
27
|
+
* removed with `rm ~/.agents-system` once everything has updated.
|
|
28
|
+
*
|
|
29
|
+
* Idempotent: re-running converges to "contents at SYSTEM_DIR, symlink at
|
|
30
|
+
* LEGACY_SYSTEM_DIR" without duplicating data.
|
|
31
|
+
*/
|
|
32
|
+
export declare function foldLegacySystemRepo(): void;
|
|
33
|
+
export declare function copyDirSkipExisting(src: string, dest: string): void;
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Leaf migrator: fold ~/.agents-system/ into ~/.agents/.system/.
|
|
3
|
+
*
|
|
4
|
+
* Kept separate from migrate.ts so the always-on startup hop (index.ts) does
|
|
5
|
+
* not load the hosts/routine/teams/daemon/menubar graph that migrate.ts's
|
|
6
|
+
* static imports pull in (RUSH-2454). migrate.ts re-exports and still calls
|
|
7
|
+
* foldLegacySystemRepo() at the top of runMigration().
|
|
8
|
+
*
|
|
9
|
+
* HOME is resolved at call time (not module load) so tests can point at a
|
|
10
|
+
* fixture tree via process.env.HOME without cache-busting the module.
|
|
11
|
+
*/
|
|
12
|
+
import * as fs from 'fs';
|
|
13
|
+
import * as path from 'path';
|
|
14
|
+
import * as os from 'os';
|
|
15
|
+
import { createLink } from './platform/links.js';
|
|
16
|
+
function homeDir() {
|
|
17
|
+
return process.env.HOME ?? os.homedir();
|
|
18
|
+
}
|
|
19
|
+
function userDir() {
|
|
20
|
+
return path.join(homeDir(), '.agents');
|
|
21
|
+
}
|
|
22
|
+
function systemDir() {
|
|
23
|
+
return path.join(userDir(), '.system');
|
|
24
|
+
}
|
|
25
|
+
function legacySystemDir() {
|
|
26
|
+
return path.join(homeDir(), '.agents-system');
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Fold ~/.agents-system/ into ~/.agents/.system/.
|
|
30
|
+
*
|
|
31
|
+
* MUST run first in runMigration() — every other migrator reads SYSTEM_DIR
|
|
32
|
+
* (the new path), so the contents have to be there before they execute.
|
|
33
|
+
*
|
|
34
|
+
* Strategy:
|
|
35
|
+
* 1. If legacy dir doesn't exist or is already a symlink, no-op.
|
|
36
|
+
* 2. If new path doesn't exist yet, rename in one shot (fast path).
|
|
37
|
+
* 3. If both exist (mid-migration / re-run on partially-migrated state),
|
|
38
|
+
* merge legacy → new with new winning on collision, then drop legacy.
|
|
39
|
+
*
|
|
40
|
+
* After the contents move, the legacy path becomes a symlink → SYSTEM_DIR
|
|
41
|
+
* so external tooling that still references ~/.agents-system/ keeps
|
|
42
|
+
* resolving correctly. The symlink is harmless on its own and can be
|
|
43
|
+
* removed with `rm ~/.agents-system` once everything has updated.
|
|
44
|
+
*
|
|
45
|
+
* Idempotent: re-running converges to "contents at SYSTEM_DIR, symlink at
|
|
46
|
+
* LEGACY_SYSTEM_DIR" without duplicating data.
|
|
47
|
+
*/
|
|
48
|
+
export function foldLegacySystemRepo() {
|
|
49
|
+
const LEGACY_SYSTEM_DIR = legacySystemDir();
|
|
50
|
+
const SYSTEM_DIR = systemDir();
|
|
51
|
+
const USER_DIR = userDir();
|
|
52
|
+
let legacyStat = null;
|
|
53
|
+
try {
|
|
54
|
+
legacyStat = fs.lstatSync(LEGACY_SYSTEM_DIR);
|
|
55
|
+
}
|
|
56
|
+
catch { /* missing */ }
|
|
57
|
+
if (!legacyStat)
|
|
58
|
+
return;
|
|
59
|
+
if (legacyStat.isSymbolicLink())
|
|
60
|
+
return;
|
|
61
|
+
if (!legacyStat.isDirectory())
|
|
62
|
+
return;
|
|
63
|
+
try {
|
|
64
|
+
fs.mkdirSync(USER_DIR, { recursive: true, mode: 0o700 });
|
|
65
|
+
}
|
|
66
|
+
catch { /* best-effort */ }
|
|
67
|
+
if (!fs.existsSync(SYSTEM_DIR)) {
|
|
68
|
+
try {
|
|
69
|
+
fs.renameSync(LEGACY_SYSTEM_DIR, SYSTEM_DIR);
|
|
70
|
+
try {
|
|
71
|
+
createLink(SYSTEM_DIR, LEGACY_SYSTEM_DIR);
|
|
72
|
+
}
|
|
73
|
+
catch { /* best-effort */ }
|
|
74
|
+
console.error('Folded ~/.agents-system/ into ~/.agents/.system/ (left back-compat symlink)');
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
// Cross-device rename or perm issue — fall through to copy + remove.
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
try {
|
|
82
|
+
copyDirSkipExisting(LEGACY_SYSTEM_DIR, SYSTEM_DIR);
|
|
83
|
+
fs.rmSync(LEGACY_SYSTEM_DIR, { recursive: true, force: true });
|
|
84
|
+
try {
|
|
85
|
+
createLink(SYSTEM_DIR, LEGACY_SYSTEM_DIR);
|
|
86
|
+
}
|
|
87
|
+
catch { /* best-effort */ }
|
|
88
|
+
console.error('Merged ~/.agents-system/ into ~/.agents/.system/ (left back-compat symlink)');
|
|
89
|
+
}
|
|
90
|
+
catch { /* best-effort */ }
|
|
91
|
+
}
|
|
92
|
+
export function copyDirSkipExisting(src, dest) {
|
|
93
|
+
let entries;
|
|
94
|
+
try {
|
|
95
|
+
entries = fs.readdirSync(src, { withFileTypes: true });
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
fs.mkdirSync(dest, { recursive: true, mode: 0o700 });
|
|
101
|
+
for (const entry of entries) {
|
|
102
|
+
const s = path.join(src, entry.name);
|
|
103
|
+
const d = path.join(dest, entry.name);
|
|
104
|
+
if (fs.existsSync(d)) {
|
|
105
|
+
if (entry.isDirectory()) {
|
|
106
|
+
const dStat = fs.lstatSync(d);
|
|
107
|
+
if (dStat.isDirectory())
|
|
108
|
+
copyDirSkipExisting(s, d);
|
|
109
|
+
}
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
try {
|
|
113
|
+
fs.renameSync(s, d);
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
try {
|
|
117
|
+
if (entry.isDirectory()) {
|
|
118
|
+
copyDirSkipExisting(s, d);
|
|
119
|
+
}
|
|
120
|
+
else if (entry.isSymbolicLink()) {
|
|
121
|
+
fs.symlinkSync(fs.readlinkSync(s), d);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
fs.copyFileSync(s, d);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
catch { /* best-effort */ }
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
package/dist/lib/migrate.d.ts
CHANGED
|
@@ -4,27 +4,7 @@
|
|
|
4
4
|
* Called from postinstall and as a command-time fallback from agents view/use/pull.
|
|
5
5
|
* Each migration is guarded by an existence check so re-running is safe.
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
* Fold ~/.agents-system/ into ~/.agents/.system/.
|
|
9
|
-
*
|
|
10
|
-
* MUST run first in runMigration() — every other migrator reads SYSTEM_DIR
|
|
11
|
-
* (the new path), so the contents have to be there before they execute.
|
|
12
|
-
*
|
|
13
|
-
* Strategy:
|
|
14
|
-
* 1. If legacy dir doesn't exist or is already a symlink, no-op.
|
|
15
|
-
* 2. If new path doesn't exist yet, rename in one shot (fast path).
|
|
16
|
-
* 3. If both exist (mid-migration / re-run on partially-migrated state),
|
|
17
|
-
* merge legacy → new with new winning on collision, then drop legacy.
|
|
18
|
-
*
|
|
19
|
-
* After the contents move, the legacy path becomes a symlink → SYSTEM_DIR
|
|
20
|
-
* so external tooling that still references ~/.agents-system/ keeps
|
|
21
|
-
* resolving correctly. The symlink is harmless on its own and can be
|
|
22
|
-
* removed with `rm ~/.agents-system` once everything has updated.
|
|
23
|
-
*
|
|
24
|
-
* Idempotent: re-running converges to "contents at SYSTEM_DIR, symlink at
|
|
25
|
-
* LEGACY_SYSTEM_DIR" without duplicating data.
|
|
26
|
-
*/
|
|
27
|
-
export declare function foldLegacySystemRepo(): void;
|
|
7
|
+
export { foldLegacySystemRepo } from './migrate-fold.js';
|
|
28
8
|
/**
|
|
29
9
|
* Migrate a legacy single-repo agents.yaml into ~/.agents/agents.yaml.
|
|
30
10
|
*
|
|
@@ -59,7 +39,7 @@ export declare function foldBrowserSessionsIntoProfiles(browserDir?: string): vo
|
|
|
59
39
|
/**
|
|
60
40
|
* Repair self-referential agent binary symlinks.
|
|
61
41
|
*
|
|
62
|
-
* Some installScript-based agents — notably Factory's `droid`, whose installer
|
|
42
|
+
* Some installScript-based agents — notably Factory.ai's `droid`, whose installer
|
|
63
43
|
* drops a standalone native binary at ~/.local/bin/droid — were registered at
|
|
64
44
|
* install time by resolving the post-install binary with `which <cli>`. Because
|
|
65
45
|
* ~/.agents/.cache/shims sits ahead of ~/.local/bin on PATH, `which` could
|
|
@@ -145,21 +125,23 @@ export declare function migrateRoutineRemoteCwdToCwd(routinesDir?: string): void
|
|
|
145
125
|
*/
|
|
146
126
|
export declare function pauseUnreadyEnabledRoutines(): void;
|
|
147
127
|
/**
|
|
148
|
-
* Fold the legacy watchdog enable sentinel into the watchdog
|
|
128
|
+
* Fold the legacy watchdog enable sentinel into the `watchdog.enabled` config.
|
|
149
129
|
*
|
|
150
130
|
* The always-on watchdog used to be gated by a presence sentinel at
|
|
151
|
-
* `<runtime-state>/watchdog/enabled`; it is now a daemon
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
*
|
|
155
|
-
*
|
|
156
|
-
*
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
|
-
*
|
|
131
|
+
* `<runtime-state>/watchdog/enabled`; it is now a daemon-owned timer (RUSH-2495)
|
|
132
|
+
* gated by the `watchdog.enabled` device-config flag — the same flag
|
|
133
|
+
* `agents watchdog enable` writes. A user who had run `agents watchdog enable`
|
|
134
|
+
* under the old build has that file on disk; without this, upgrading would
|
|
135
|
+
* silently drop them back to OFF (the nudge just stops), the worst failure mode
|
|
136
|
+
* for a "survives reboots" feature. If the sentinel exists, set
|
|
137
|
+
* `watchdog.enabled: true`, then delete the sentinel so this runs exactly once.
|
|
138
|
+
* If setting it fails, the sentinel is left in place so a later run retries
|
|
139
|
+
* rather than silently losing the opt-in.
|
|
140
|
+
*
|
|
141
|
+
* The setter seam is injectable so the migration is unit-testable without
|
|
142
|
+
* touching the real device config.
|
|
161
143
|
*/
|
|
162
|
-
export declare function
|
|
144
|
+
export declare function migrateWatchdogSentinelToConfig(sentinelPath?: string, enable?: (value: boolean) => void): void;
|
|
163
145
|
/**
|
|
164
146
|
* Rename cli/ → clis/ in each of the given `.agents/` directories.
|
|
165
147
|
*
|
|
@@ -179,5 +161,23 @@ export declare function migrateCliDirToClis(agentsDirs: string[]): void;
|
|
|
179
161
|
* (where ~/.cursor is a real dir, not a symlink into a version home).
|
|
180
162
|
*/
|
|
181
163
|
export declare function seedActiveCursorLoginPerVersion(): void;
|
|
164
|
+
/**
|
|
165
|
+
* Fold the pre-markdown Kimi subagent layout out of every kimi version home.
|
|
166
|
+
*
|
|
167
|
+
* agents-cli used to write each Kimi subagent as a `<name>.yaml` +
|
|
168
|
+
* `<name>.system.md` pair plus a managed `_agents-cli.yaml` index, against the
|
|
169
|
+
* agentspec of `kimi-cli` — a different product from the `kimi-code` harness we
|
|
170
|
+
* install, which never read any of it. Those files are inert, but not harmless:
|
|
171
|
+
* `<name>.system.md` ends in `.md`, so the subagent enumerator would surface it
|
|
172
|
+
* as a phantom subagent named `<name>.system`, and kimi-code logs
|
|
173
|
+
* `Missing frontmatter` for it once per session.
|
|
174
|
+
*
|
|
175
|
+
* This is the ONE place that knows about the old layout — the registry target
|
|
176
|
+
* describes only the current `<name>.md` shape. A pair is identified by its
|
|
177
|
+
* signature (a `<name>.yaml` with a sibling `<name>.system.md`), so a subagent a
|
|
178
|
+
* user legitimately named e.g. `foo.system` is never touched: it has no
|
|
179
|
+
* `foo.yaml` beside it. Idempotent; a no-op once the dirs are clean.
|
|
180
|
+
*/
|
|
181
|
+
export declare function migrateKimiSubagentsToMarkdown(versionsDir?: string): void;
|
|
182
182
|
/** Run all idempotent migrations. Safe to call multiple times. */
|
|
183
183
|
export declare function runMigration(): Promise<void>;
|