@phnx-labs/agents-cli 1.22.112 → 1.22.114
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 +37 -0
- package/README.md +10 -11
- package/dist/cli/command-registry.d.ts +0 -60
- package/dist/cli/command-registry.js +59 -61
- package/dist/commands/apply.d.ts +0 -4
- package/dist/commands/apply.js +3 -3
- package/dist/commands/browser-picker.d.ts +3 -6
- package/dist/commands/browser-picker.js +2 -2
- package/dist/commands/browser-sessions-picker.d.ts +2 -1
- package/dist/commands/computer-sessions-picker.d.ts +2 -1
- package/dist/commands/computer.d.ts +14 -19
- package/dist/commands/computer.js +65 -10
- package/dist/commands/config.js +46 -2
- package/dist/commands/daemon.d.ts +0 -23
- package/dist/commands/daemon.js +1 -1
- package/dist/commands/detach-core.d.ts +2 -1
- package/dist/commands/detach.d.ts +0 -3
- package/dist/commands/detach.js +3 -3
- package/dist/commands/feed.d.ts +3 -3
- package/dist/commands/feed.js +1 -1
- package/dist/commands/focus.d.ts +4 -4
- package/dist/commands/harness-hooks.d.ts +0 -7
- package/dist/commands/harness-hooks.js +1 -1
- package/dist/commands/harness-wizard.d.ts +2 -2
- package/dist/commands/harness.d.ts +3 -8
- package/dist/commands/harness.js +1 -1
- package/dist/commands/inspect.d.ts +2 -3
- package/dist/commands/inspect.js +1 -1
- package/dist/commands/message.d.ts +1 -1
- package/dist/commands/message.js +3 -3
- package/dist/commands/projects.d.ts +2 -18
- package/dist/commands/projects.js +89 -3
- package/dist/commands/resource-view.d.ts +3 -2
- package/dist/commands/resume.d.ts +0 -1
- package/dist/commands/resume.js +1 -1
- package/dist/commands/routines.d.ts +1 -3
- package/dist/commands/routines.js +1 -1
- package/dist/commands/run-account-picker.d.ts +2 -1
- package/dist/commands/run-broadcast.d.ts +2 -1
- package/dist/commands/run-device-picker.d.ts +2 -1
- package/dist/commands/secrets-passthrough.d.ts +14 -0
- package/dist/commands/secrets-passthrough.js +21 -2
- package/dist/commands/sessions-backfill.d.ts +2 -35
- package/dist/commands/sessions-backfill.js +1 -1
- package/dist/commands/sessions-bookmark.d.ts +0 -10
- package/dist/commands/sessions-bookmark.js +1 -1
- package/dist/commands/sessions-inject.d.ts +2 -3
- package/dist/commands/sessions-inject.js +8 -17
- package/dist/commands/sessions-picker-factory.d.ts +4 -14
- package/dist/commands/sessions-picker-factory.js +2 -2
- package/dist/commands/sessions-picker.d.ts +3 -9
- package/dist/commands/sessions-picker.js +2 -2
- package/dist/commands/sessions-resume.d.ts +2 -4
- package/dist/commands/sessions-resume.js +0 -5
- package/dist/commands/sessions-stats.d.ts +2 -1
- package/dist/commands/sessions-stop.d.ts +0 -3
- package/dist/commands/sessions-stop.js +1 -1
- package/dist/commands/sessions-tail.d.ts +2 -1
- package/dist/commands/sessions-trace.d.ts +4 -6
- package/dist/commands/sessions-trace.js +1 -1
- package/dist/commands/sessions.d.ts +14 -104
- package/dist/commands/sessions.js +22 -10
- package/dist/commands/setup-mine.d.ts +0 -6
- package/dist/commands/setup-mine.js +1 -1
- package/dist/commands/setup.d.ts +3 -4
- package/dist/commands/setup.js +1 -1
- package/dist/commands/share.d.ts +8 -8
- package/dist/commands/teams-picker.d.ts +2 -5
- package/dist/commands/teams-picker.js +2 -2
- package/dist/commands/teams.d.ts +1 -7
- package/dist/commands/teams.js +1 -1
- package/dist/commands/tmux.d.ts +1 -1
- package/dist/commands/tmux.js +1 -1
- package/dist/commands/upgrade.d.ts +2 -1
- package/dist/commands/utils.d.ts +1 -1
- package/dist/commands/utils.js +1 -1
- package/dist/lib/account-capabilities.d.ts +2 -1
- package/dist/lib/account-catalog.d.ts +4 -13
- package/dist/lib/account-catalog.js +1 -1
- package/dist/lib/account-registry.d.ts +3 -4
- package/dist/lib/account-registry.js +1 -1
- package/dist/lib/accounting/account-launch.d.ts +4 -3
- package/dist/lib/accounting/account-pool.d.ts +2 -1
- package/dist/lib/accounting/rotate.d.ts +3 -9
- package/dist/lib/accounting/rotate.js +2 -14
- package/dist/lib/accounting/usage-sync.d.ts +5 -4
- package/dist/lib/accounting/usage.d.ts +7 -31
- package/dist/lib/accounting/usage.js +4 -4
- package/dist/lib/accounts/migrate.d.ts +8 -8
- package/dist/lib/accounts/migrate.js +1 -1
- package/dist/lib/acp/client.d.ts +3 -2
- package/dist/lib/acp/harnesses.d.ts +2 -2
- package/dist/lib/acp/harnesses.js +1 -1
- package/dist/lib/acp/run.d.ts +2 -1
- package/dist/lib/actor.d.ts +3 -2
- package/dist/lib/add-dir.d.ts +2 -17
- package/dist/lib/add-dir.js +2 -6
- package/dist/lib/address.d.ts +56 -0
- package/dist/lib/address.js +143 -0
- package/dist/lib/agent-spec/agents.d.ts +12 -28
- package/dist/lib/agent-spec/agents.js +2 -6
- package/dist/lib/agent-spec/primitives.d.ts +0 -7
- package/dist/lib/agent-spec/primitives.js +0 -6
- package/dist/lib/agent-spec/types.d.ts +2 -1
- package/dist/lib/analytics/dashboard.d.ts +1 -5
- package/dist/lib/analytics/dashboard.js +0 -2
- package/dist/lib/analytics/mix-commands.d.ts +0 -7
- package/dist/lib/analytics/mix-commands.js +3 -3
- package/dist/lib/analytics/recipes.d.ts +0 -12
- package/dist/lib/analytics/recipes.js +7 -31
- package/dist/lib/analytics/usage-db.d.ts +5 -32
- package/dist/lib/analytics/usage-db.js +1 -70
- package/dist/lib/answer-router.d.ts +7 -6
- package/dist/lib/answer-router.js +5 -11
- package/dist/lib/artifact-actions.d.ts +0 -4
- package/dist/lib/ask-classifier.d.ts +3 -4
- package/dist/lib/ask-classifier.js +0 -7
- package/dist/lib/auth-health.d.ts +3 -46
- package/dist/lib/auth-health.js +3 -3
- package/dist/lib/auth-mint.d.ts +6 -6
- package/dist/lib/auth-mint.js +5 -5
- package/dist/lib/bench/runner.d.ts +2 -2
- package/dist/lib/bench/runner.js +1 -1
- package/dist/lib/bench/storage.d.ts +0 -1
- package/dist/lib/bench/storage.js +1 -1
- package/dist/lib/boot-profile.d.ts +0 -2
- package/dist/lib/boot-profile.js +0 -4
- package/dist/lib/brand.d.ts +0 -6
- package/dist/lib/brand.js +1 -1
- package/dist/lib/browser/arc-discovery.d.ts +4 -12
- package/dist/lib/browser/arc-discovery.js +1 -1
- package/dist/lib/browser/cdp.d.ts +1 -1
- package/dist/lib/browser/chrome.d.ts +2 -2
- package/dist/lib/browser/chrome.js +0 -4
- package/dist/lib/browser/chromium-discovery.d.ts +3 -2
- package/dist/lib/browser/drivers/arc.d.ts +3 -20
- package/dist/lib/browser/drivers/arc.js +2 -7
- package/dist/lib/browser/drivers/firefox.d.ts +2 -6
- package/dist/lib/browser/drivers/firefox.js +1 -1
- package/dist/lib/browser/drivers/local.d.ts +2 -1
- package/dist/lib/browser/drivers/ssh.d.ts +2 -3
- package/dist/lib/browser/drivers/ssh.js +0 -7
- package/dist/lib/browser/firefox-discovery.d.ts +4 -3
- package/dist/lib/browser/har.d.ts +8 -7
- package/dist/lib/browser/hygiene.d.ts +2 -3
- package/dist/lib/browser/hygiene.js +1 -1
- package/dist/lib/browser/ipc.d.ts +4 -3
- package/dist/lib/browser/ipc.js +1 -1
- package/dist/lib/browser/login-detection.d.ts +1 -8
- package/dist/lib/browser/registry.d.ts +2 -1
- package/dist/lib/browser/remote-control.d.ts +0 -7
- package/dist/lib/browser/remote-control.js +2 -2
- package/dist/lib/browser/resolve-target.d.ts +2 -6
- package/dist/lib/browser/resolve-target.js +3 -3
- package/dist/lib/browser/runtime-state.d.ts +4 -4
- package/dist/lib/browser/service.d.ts +4 -4
- package/dist/lib/browser/sessions-list.d.ts +0 -10
- package/dist/lib/browser/sessions-list.js +3 -3
- package/dist/lib/browser/stream.d.ts +2 -1
- package/dist/lib/browser/task-index.d.ts +4 -4
- package/dist/lib/browser/task-index.js +1 -1
- package/dist/lib/browser/types.d.ts +0 -20
- package/dist/lib/browser/types.js +1 -34
- package/dist/lib/browser/upload.d.ts +0 -27
- package/dist/lib/budget/ledger.d.ts +0 -2
- package/dist/lib/budget/ledger.js +1 -1
- package/dist/lib/budget/live-cloud.d.ts +2 -1
- package/dist/lib/budget/preflight.d.ts +3 -5
- package/dist/lib/budget/preflight.js +1 -1
- package/dist/lib/catchup.d.ts +2 -1
- package/dist/lib/channels/owner-forward.d.ts +5 -4
- package/dist/lib/channels/owner-sink.js +2 -2
- package/dist/lib/channels/providers/desktop.js +1 -1
- package/dist/lib/channels/providers/rush.d.ts +2 -1
- package/dist/lib/channels/registry.d.ts +1 -1
- package/dist/lib/channels/registry.js +1 -1
- package/dist/lib/channels/resolve.d.ts +3 -2
- package/dist/lib/channels/send.d.ts +5 -4
- package/dist/lib/cli-resources.d.ts +3 -9
- package/dist/lib/cli-resources.js +1 -1
- package/dist/lib/cloud/cursor.d.ts +1 -2
- package/dist/lib/cloud/cursor.js +1 -1
- package/dist/lib/cloud/dispatch.d.ts +2 -1
- package/dist/lib/cloud/factory.d.ts +0 -2
- package/dist/lib/cloud/factory.js +1 -1
- package/dist/lib/cloud/rush.d.ts +3 -11
- package/dist/lib/cloud/rush.js +1 -1
- package/dist/lib/cloud/session-index.d.ts +2 -1
- package/dist/lib/cloud/types.d.ts +2 -1
- package/dist/lib/codex-policy.d.ts +2 -1
- package/dist/lib/commands.d.ts +7 -7
- package/dist/lib/commands.js +1 -1
- package/dist/lib/comms-render.d.ts +1 -1
- package/dist/lib/computer/context.d.ts +11 -3
- package/dist/lib/computer/context.js +2 -2
- package/dist/lib/computer/policy.d.ts +0 -12
- package/dist/lib/computer/policy.js +1 -1
- package/dist/lib/computer-client.d.ts +3 -3
- package/dist/lib/computer-client.js +0 -1
- package/dist/lib/concurrency.d.ts +2 -1
- package/dist/lib/config-keys.d.ts +16 -3
- package/dist/lib/config-keys.js +47 -2
- package/dist/lib/convert.d.ts +0 -12
- package/dist/lib/convert.js +1 -12
- package/dist/lib/crabbox/cli.d.ts +6 -24
- package/dist/lib/crabbox/cli.js +2 -28
- package/dist/lib/crabbox/lease.d.ts +5 -6
- package/dist/lib/crabbox/lease.js +1 -1
- package/dist/lib/crabbox/progress.d.ts +2 -1
- package/dist/lib/crabbox/setup-copy.d.ts +2 -3
- package/dist/lib/crabbox/setup-copy.js +1 -1
- package/dist/lib/daemon/account-state-daemon-service.d.ts +1 -1
- package/dist/lib/daemon/attention-notify-service.d.ts +2 -1
- package/dist/lib/daemon/catchup-service.d.ts +2 -1
- package/dist/lib/daemon/daemon.d.ts +4 -12
- package/dist/lib/daemon/daemon.js +42 -23
- package/dist/lib/daemon/harness-update-service.d.ts +2 -19
- package/dist/lib/daemon/harness-update-service.js +3 -3
- package/dist/lib/daemon/runner.d.ts +3 -3
- package/dist/lib/daemon/self-update-service.d.ts +1 -16
- package/dist/lib/daemon/self-update-service.js +6 -6
- package/dist/lib/daemon/state-dir-check-service.d.ts +2 -1
- package/dist/lib/daemon/supervisor.d.ts +3 -2
- package/dist/lib/daemon/testdata/process-view-daemon.d.ts +1 -0
- package/dist/lib/daemon/testdata/process-view-daemon.js +14 -0
- package/dist/lib/daemon/testdata/process-view-start.d.ts +1 -0
- package/dist/lib/daemon/testdata/process-view-start.js +43 -0
- package/dist/lib/daemon-services.d.ts +2 -1
- package/dist/lib/daemon-webhooks.d.ts +1 -1
- package/dist/lib/deeplink/register.d.ts +3 -13
- package/dist/lib/deeplink/register.js +3 -3
- package/dist/lib/deeplink/url.d.ts +3 -2
- package/dist/lib/device-config.d.ts +4 -15
- package/dist/lib/device-config.js +164 -8
- package/dist/lib/devices/connect.d.ts +2 -1
- package/dist/lib/devices/discovery-policy.d.ts +3 -2
- package/dist/lib/devices/doctor-findings.js +1 -1
- package/dist/lib/devices/doctor-overview-cache.d.ts +3 -2
- package/dist/lib/devices/fleet-divergence.d.ts +2 -1
- package/dist/lib/devices/fleet.d.ts +3 -4
- package/dist/lib/devices/fleet.js +1 -1
- package/dist/lib/devices/harness-inventory.d.ts +3 -2
- package/dist/lib/devices/health-report.d.ts +3 -2
- package/dist/lib/devices/health.d.ts +1 -8
- package/dist/lib/devices/health.js +1 -1
- package/dist/lib/devices/interactive-host.d.ts +0 -2
- package/dist/lib/devices/interactive-host.js +1 -1
- package/dist/lib/devices/known-hosts.d.ts +2 -20
- package/dist/lib/devices/known-hosts.js +2 -2
- package/dist/lib/devices/pool.d.ts +2 -1
- package/dist/lib/devices/resolve-target.d.ts +2 -2
- package/dist/lib/devices/rollout-verify.d.ts +3 -2
- package/dist/lib/devices/stats-cache.d.ts +3 -2
- package/dist/lib/devices/sync.d.ts +6 -5
- package/dist/lib/devices/worker-pick.d.ts +3 -12
- package/dist/lib/devices/worker-pick.js +1 -1
- package/dist/lib/diff-text.d.ts +2 -1
- package/dist/lib/doctor-diff.d.ts +2 -1
- package/dist/lib/drift-sync.d.ts +3 -2
- package/dist/lib/drift.d.ts +3 -3
- package/dist/lib/drift.js +1 -1
- package/dist/lib/event-families.d.ts +0 -6
- package/dist/lib/event-families.js +3 -3
- package/dist/lib/event-provenance.d.ts +4 -1
- package/dist/lib/event-provenance.js +4 -0
- package/dist/lib/events-ingest.d.ts +4 -3
- package/dist/lib/exec-account-home.d.ts +2 -4
- package/dist/lib/exec-account-home.js +1 -1
- package/dist/lib/exec-bounded.d.ts +3 -4
- package/dist/lib/exec-bounded.js +1 -1
- package/dist/lib/exec.d.ts +6 -18
- package/dist/lib/exec.js +28 -8
- package/dist/lib/factory/snapshot.d.ts +2 -2
- package/dist/lib/factory/snapshot.js +1 -1
- package/dist/lib/feed/activity-stream.d.ts +2 -5
- package/dist/lib/feed/activity-stream.js +11 -2
- package/dist/lib/feed/activity.d.ts +16 -33
- package/dist/lib/feed/activity.js +69 -26
- package/dist/lib/feed/answer.d.ts +3 -2
- package/dist/lib/feed/attention.js +5 -1
- package/dist/lib/feed/events.d.ts +2 -47
- package/dist/lib/feed/events.js +1 -141
- package/dist/lib/feed/feed.d.ts +9 -42
- package/dist/lib/feed/feed.js +1 -60
- package/dist/lib/feed/pr-status.d.ts +0 -2
- package/dist/lib/feed/pr-status.js +1 -5
- package/dist/lib/feed/watch.d.ts +10 -2
- package/dist/lib/feed/watch.js +91 -4
- package/dist/lib/feed-broadcast.d.ts +5 -47
- package/dist/lib/feed-broadcast.js +9 -9
- package/dist/lib/feed-outcome.d.ts +3 -6
- package/dist/lib/feed-outcome.js +2 -2
- package/dist/lib/feed-policy.d.ts +5 -6
- package/dist/lib/feed-policy.js +2 -2
- package/dist/lib/feed-post.d.ts +3 -4
- package/dist/lib/feed-post.js +2 -2
- package/dist/lib/feed-ranking.d.ts +2 -2
- package/dist/lib/feed-ranking.js +1 -1
- package/dist/lib/fleet/apply.d.ts +5 -6
- package/dist/lib/fleet/apply.js +4 -4
- package/dist/lib/fleet/manifest.d.ts +2 -1
- package/dist/lib/fleet/remote-login.d.ts +18 -36
- package/dist/lib/fleet/remote-login.js +20 -19
- package/dist/lib/fleet/types.d.ts +0 -8
- package/dist/lib/fleet-cache.d.ts +1 -18
- package/dist/lib/fleet-cache.js +0 -5
- package/dist/lib/fleet-shared-repo-sync.d.ts +3 -3
- package/dist/lib/fleet-shared-repo-sync.js +1 -1
- package/dist/lib/fleet-shared-state.d.ts +3 -2
- package/dist/lib/format.d.ts +2 -1
- package/dist/lib/friction-heuristics.d.ts +2 -1
- package/dist/lib/fs-walk.d.ts +2 -1
- package/dist/lib/fuzzy.d.ts +2 -1
- package/dist/lib/gemini-settings.d.ts +0 -1
- package/dist/lib/gemini-settings.js +1 -1
- package/dist/lib/git.d.ts +7 -65
- package/dist/lib/git.js +3 -142
- package/dist/lib/github/gh-overload.d.ts +0 -4
- package/dist/lib/github/gh-overload.js +2 -2
- package/dist/lib/github/project-prs.d.ts +118 -0
- package/dist/lib/github/project-prs.js +173 -0
- package/dist/lib/github/rest.d.ts +2 -1
- package/dist/lib/harness/exec-config-version.d.ts +2 -1
- package/dist/lib/harness-auth-capabilities.d.ts +5 -4
- package/dist/lib/harness-connection-test.d.ts +2 -1
- package/dist/lib/heal.d.ts +3 -20
- package/dist/lib/heal.js +2 -39
- package/dist/lib/help.d.ts +3 -2
- package/dist/lib/helper-download.d.ts +0 -12
- package/dist/lib/helper-download.js +2 -2
- package/dist/lib/helper-versions.d.ts +2 -1
- package/dist/lib/helper-versions.js +1 -1
- package/dist/lib/hooks/install.d.ts +8 -49
- package/dist/lib/hooks/install.js +2 -96
- package/dist/lib/hooks/match.d.ts +2 -1
- package/dist/lib/hosts/credential-transport.d.ts +0 -2
- package/dist/lib/hosts/credential-transport.js +1 -1
- package/dist/lib/hosts/dispatch.d.ts +2 -34
- package/dist/lib/hosts/dispatch.js +4 -21
- package/dist/lib/hosts/logs.d.ts +2 -1
- package/dist/lib/hosts/passthrough.d.ts +1 -1
- package/dist/lib/hosts/passthrough.js +0 -1
- package/dist/lib/hosts/progress.d.ts +0 -5
- package/dist/lib/hosts/progress.js +1 -1
- package/dist/lib/hosts/ready.d.ts +3 -4
- package/dist/lib/hosts/ready.js +0 -8
- package/dist/lib/hosts/reconcile.d.ts +2 -8
- package/dist/lib/hosts/reconcile.js +1 -1
- package/dist/lib/hosts/reconnect.d.ts +4 -11
- package/dist/lib/hosts/reconnect.js +2 -2
- package/dist/lib/hosts/registry.d.ts +1 -1
- package/dist/lib/hosts/remote-cmd.d.ts +4 -3
- package/dist/lib/hosts/remote-session-id.d.ts +5 -27
- package/dist/lib/hosts/remote-session-id.js +18 -61
- package/dist/lib/hosts/session-index.d.ts +3 -2
- package/dist/lib/hosts/ssh-config.d.ts +2 -3
- package/dist/lib/hosts/ssh-config.js +0 -10
- package/dist/lib/humans.d.ts +0 -2
- package/dist/lib/humans.js +2 -2
- package/dist/lib/import.d.ts +4 -3
- package/dist/lib/installations/installation-lock.d.ts +0 -2
- package/dist/lib/installations/installation-lock.js +2 -2
- package/dist/lib/installations/launch-gate.d.ts +0 -9
- package/dist/lib/installations/launch-gate.js +1 -1
- package/dist/lib/installations/migrate.d.ts +0 -11
- package/dist/lib/installations/migrate.js +1 -1
- package/dist/lib/installations/shims.d.ts +1 -1
- package/dist/lib/installations/shims.js +2 -2
- package/dist/lib/installations/update-runtime.js +1 -1
- package/dist/lib/launch-identity.d.ts +10 -0
- package/dist/lib/launch-identity.js +31 -0
- package/dist/lib/linear-cache.d.ts +2 -1
- package/dist/lib/linux-userns.d.ts +2 -3
- package/dist/lib/linux-userns.js +0 -4
- package/dist/lib/loop.d.ts +2 -1
- package/dist/lib/mailbox-gc.d.ts +2 -1
- package/dist/lib/mailbox-target.d.ts +2 -1
- package/dist/lib/mailbox.d.ts +0 -6
- package/dist/lib/mailbox.js +1 -1
- package/dist/lib/manifest.d.ts +0 -14
- package/dist/lib/manifest.js +2 -2
- package/dist/lib/mcp-registry.d.ts +2 -1
- package/dist/lib/memory.d.ts +2 -13
- package/dist/lib/memory.js +4 -4
- package/dist/lib/menubar/download-menubar.d.ts +0 -2
- package/dist/lib/menubar/download-menubar.js +1 -5
- package/dist/lib/menubar/install-menubar.d.ts +3 -14
- package/dist/lib/menubar/install-menubar.js +3 -3
- package/dist/lib/menubar/migrate-prefs.d.ts +53 -0
- package/dist/lib/menubar/migrate-prefs.js +168 -0
- package/dist/lib/menubar/resolve-version.d.ts +1 -9
- package/dist/lib/menubar/resolve-version.js +4 -4
- package/dist/lib/menubar/snapshot.d.ts +24 -2
- package/dist/lib/menubar/snapshot.js +26 -0
- package/dist/lib/model-tier-overrides.d.ts +3 -2
- package/dist/lib/monitors/config.d.ts +0 -2
- package/dist/lib/monitors/config.js +0 -4
- package/dist/lib/monitors/engine.d.ts +1 -1
- package/dist/lib/monitors/remote.d.ts +3 -2
- package/dist/lib/monitors/sources/webhook.d.ts +2 -15
- package/dist/lib/monitors/sources/webhook.js +1 -38
- package/dist/lib/monitors/state.d.ts +4 -7
- package/dist/lib/monitors/state.js +2 -2
- package/dist/lib/notify.d.ts +1 -1
- package/dist/lib/notify.js +1 -1
- package/dist/lib/onepassword.d.ts +5 -14
- package/dist/lib/onepassword.js +0 -64
- package/dist/lib/open-url.d.ts +3 -2
- package/dist/lib/openclaw-keychain.d.ts +4 -17
- package/dist/lib/openclaw-keychain.js +3 -33
- package/dist/lib/operator.d.ts +2 -2
- package/dist/lib/operator.js +1 -1
- package/dist/lib/output/git-output.d.ts +4 -14
- package/dist/lib/output/git-output.js +1 -1
- package/dist/lib/owner-message.d.ts +3 -29
- package/dist/lib/owner-message.js +3 -3
- package/dist/lib/packages/output-home.d.ts +2 -4
- package/dist/lib/packages/output-home.js +2 -2
- package/dist/lib/perf/db.d.ts +0 -2
- package/dist/lib/perf/db.js +2 -7
- package/dist/lib/permissions-registry.d.ts +2 -3
- package/dist/lib/permissions-registry.js +0 -4
- package/dist/lib/permissions.d.ts +6 -16
- package/dist/lib/permissions.js +2 -15
- package/dist/lib/picker.d.ts +6 -5
- package/dist/lib/placement.d.ts +3 -6
- package/dist/lib/placement.js +0 -17
- package/dist/lib/platform/posixpath.d.ts +2 -1
- package/dist/lib/platform/winpath.d.ts +2 -1
- package/dist/lib/plugins/plugin-marketplace.d.ts +2 -2
- package/dist/lib/plugins/plugin-marketplace.js +1 -1
- package/dist/lib/pr-land-detach.d.ts +2 -1
- package/dist/lib/profiles-presets.d.ts +2 -1
- package/dist/lib/profiles.d.ts +3 -9
- package/dist/lib/profiles.js +1 -9
- package/dist/lib/project-doctor.d.ts +2 -1
- package/dist/lib/project-launch.d.ts +2 -2
- package/dist/lib/project-probe.d.ts +4 -3
- package/dist/lib/project-pull.d.ts +2 -1
- package/dist/lib/project-resources.d.ts +2 -2
- package/dist/lib/project-resources.js +1 -1
- package/dist/lib/project-root.d.ts +2 -6
- package/dist/lib/project-root.js +1 -1
- package/dist/lib/project-schedule.d.ts +2 -1
- package/dist/lib/project-status.d.ts +2 -16
- package/dist/lib/project-status.js +3 -3
- package/dist/lib/reconcile-and-repair.d.ts +5 -4
- package/dist/lib/redact.d.ts +7 -1
- package/dist/lib/redact.js +94 -3
- package/dist/lib/refresh-coordinator.d.ts +2 -1
- package/dist/lib/refresh.d.ts +3 -2
- package/dist/lib/remote-agents-json.d.ts +3 -2
- package/dist/lib/reserved-stores.d.ts +0 -2
- package/dist/lib/reserved-stores.js +3 -5
- package/dist/lib/resource-content-diff.d.ts +0 -2
- package/dist/lib/resource-content-diff.js +1 -1
- package/dist/lib/resource-patterns.d.ts +2 -1
- package/dist/lib/resource-profiles.d.ts +2 -8
- package/dist/lib/resource-profiles.js +3 -27
- package/dist/lib/resources/workflows.d.ts +1 -1
- package/dist/lib/resources.d.ts +4 -9
- package/dist/lib/resources.js +1 -1
- package/dist/lib/routine-context.d.ts +2 -5
- package/dist/lib/routine-context.js +2 -2
- package/dist/lib/routine-notify-owner.d.ts +8 -7
- package/dist/lib/routine-notify-owner.js +5 -5
- package/dist/lib/routine-process-cleanup.d.ts +2 -1
- package/dist/lib/routine-readiness.d.ts +0 -2
- package/dist/lib/routine-readiness.js +0 -7
- package/dist/lib/routines-project.d.ts +3 -4
- package/dist/lib/routines-project.js +1 -1
- package/dist/lib/rules/compile.d.ts +3 -25
- package/dist/lib/rules/compile.js +1 -1
- package/dist/lib/rules/compose.d.ts +3 -9
- package/dist/lib/rules/rules.d.ts +4 -15
- package/dist/lib/rules/rules.js +1 -64
- package/dist/lib/run-defaults.d.ts +1 -1
- package/dist/lib/run-notify.d.ts +2 -1
- package/dist/lib/run-trace-sync.d.ts +1 -1
- package/dist/lib/run-trace-sync.js +1 -1
- package/dist/lib/scheduler.d.ts +2 -1
- package/dist/lib/scheduling/routines.d.ts +9 -21
- package/dist/lib/scheduling/routines.js +3 -46
- package/dist/lib/secrets-client.d.ts +0 -17
- package/dist/lib/secrets-client.js +4 -26
- package/dist/lib/secrets-policy.d.ts +12 -17
- package/dist/lib/secrets-policy.js +5 -5
- package/dist/lib/secrets-types.d.ts +3 -2
- package/dist/lib/secrets-types.js +2 -1
- package/dist/lib/self-heal/checks/install-staging.js +1 -1
- package/dist/lib/self-heal/registry.d.ts +3 -2
- package/dist/lib/self-heal/types.d.ts +1 -1
- package/dist/lib/self-heal/types.js +1 -1
- package/dist/lib/self-update.d.ts +5 -5
- package/dist/lib/self-update.js +4 -4
- package/dist/lib/session/active.js +9 -3
- package/dist/lib/session/actor-sidecar.d.ts +3 -2
- package/dist/lib/session/artifacts.d.ts +0 -2
- package/dist/lib/session/artifacts.js +1 -1
- package/dist/lib/session/bash-command.d.ts +2 -7
- package/dist/lib/session/bundle.d.ts +4 -6
- package/dist/lib/session/bundle.js +1 -5
- package/dist/lib/session/cloud.d.ts +0 -4
- package/dist/lib/session/cloud.js +2 -15
- package/dist/lib/session/db.d.ts +2 -1
- package/dist/lib/session/db.js +39 -4
- package/dist/lib/session/detached.d.ts +2 -1
- package/dist/lib/session/detached.js +2 -2
- package/dist/lib/session/digest.d.ts +2 -2
- package/dist/lib/session/digest.js +1 -1
- package/dist/lib/session/discover.js +7 -2
- package/dist/lib/session/fork.d.ts +3 -2
- package/dist/lib/session/highlights.d.ts +6 -5
- package/dist/lib/session/hook-sessions.d.ts +12 -1
- package/dist/lib/session/hook-sessions.js +139 -6
- package/dist/lib/session/host-link.d.ts +2 -1
- package/dist/lib/session/inject.d.ts +1 -1
- package/dist/lib/session/inject.js +1 -1
- package/dist/lib/session/insights.d.ts +3 -15
- package/dist/lib/session/insights.js +2 -2
- package/dist/lib/session/local-tmux-attach.d.ts +2 -18
- package/dist/lib/session/local-tmux-attach.js +1 -1
- package/dist/lib/session/migrations.d.ts +0 -1
- package/dist/lib/session/migrations.js +1 -1
- package/dist/lib/session/mirror.d.ts +5 -8
- package/dist/lib/session/mirror.js +2 -2
- package/dist/lib/session/parse.d.ts +1 -32
- package/dist/lib/session/parse.js +4 -4
- package/dist/lib/session/pid-registry.d.ts +18 -5
- package/dist/lib/session/pid-registry.js +164 -17
- package/dist/lib/session/presence.d.ts +2 -1
- package/dist/lib/session/process-view.d.ts +25 -0
- package/dist/lib/session/process-view.js +176 -0
- package/dist/lib/session/projection.d.ts +13 -0
- package/dist/lib/session/projection.js +101 -0
- package/dist/lib/session/prompt.d.ts +3 -2
- package/dist/lib/session/prompt.js +38 -1
- package/dist/lib/session/recovery.d.ts +3 -2
- package/dist/lib/session/remote/peer-stream.d.ts +2 -5
- package/dist/lib/session/remote/peer-stream.js +2 -2
- package/dist/lib/session/remote/remote-bundle.d.ts +2 -1
- package/dist/lib/session/remote/remote-list.d.ts +5 -5
- package/dist/lib/session/remote/remote.d.ts +4 -3
- package/dist/lib/session/remote/watch.d.ts +10 -7
- package/dist/lib/session/remote/watch.js +10 -6
- package/dist/lib/session/remote-active.d.ts +2 -1
- package/dist/lib/session/render.d.ts +2 -2
- package/dist/lib/session/render.js +1 -1
- package/dist/lib/session/resume-owner.d.ts +1 -1
- package/dist/lib/session/resume-owner.js +1 -1
- package/dist/lib/session/run-names.d.ts +2 -1
- package/dist/lib/session/session-cache.d.ts +7 -26
- package/dist/lib/session/session-cache.js +17 -8
- package/dist/lib/session/share-html.d.ts +1 -21
- package/dist/lib/session/share-html.js +1 -1
- package/dist/lib/session/shell-programs.d.ts +2 -1
- package/dist/lib/session/state.d.ts +41 -8
- package/dist/lib/session/state.js +112 -11
- package/dist/lib/session/stream-render.d.ts +2 -1
- package/dist/lib/session/sync/agents.d.ts +0 -4
- package/dist/lib/session/sync/agents.js +0 -0
- package/dist/lib/session/sync/backend.d.ts +5 -5
- package/dist/lib/session/sync/managed-config.d.ts +0 -8
- package/dist/lib/session/sync/managed-key.d.ts +0 -2
- package/dist/lib/session/sync/managed-key.js +1 -1
- package/dist/lib/session/sync/r2.d.ts +4 -1
- package/dist/lib/session/sync/r2.js +4 -7
- package/dist/lib/session/sync/transcript-crypto.d.ts +2 -1
- package/dist/lib/session/tail.d.ts +2 -1
- package/dist/lib/session/team-filter.d.ts +1 -1
- package/dist/lib/session/testdata/pid-registry-namespace.d.ts +1 -0
- package/dist/lib/session/testdata/pid-registry-namespace.js +27 -0
- package/dist/lib/session/testdata/process-view-namespace.d.ts +1 -0
- package/dist/lib/session/testdata/process-view-namespace.js +56 -0
- package/dist/lib/session/testdata/process-view-private.d.ts +1 -0
- package/dist/lib/session/testdata/process-view-private.js +12 -0
- package/dist/lib/session/throughput.d.ts +2 -3
- package/dist/lib/session/throughput.js +1 -1
- package/dist/lib/session/timeline-pass.d.ts +3 -42
- package/dist/lib/session/timeline-pass.js +4 -4
- package/dist/lib/session/timeline.d.ts +3 -13
- package/dist/lib/session/timeline.js +3 -3
- package/dist/lib/session/tool-calls.d.ts +2 -2
- package/dist/lib/session/tool-calls.js +1 -1
- package/dist/lib/session/tool-index.d.ts +0 -8
- package/dist/lib/session/tool-index.js +2 -2
- package/dist/lib/session/tool-store.d.ts +2 -1
- package/dist/lib/session/trajectory-compare.d.ts +2 -1
- package/dist/lib/session/trajectory-lineage.d.ts +2 -1
- package/dist/lib/session/trajectory-text.d.ts +3 -2
- package/dist/lib/session/trajectory.d.ts +2 -1
- package/dist/lib/session/viewing-in.d.ts +2 -1
- package/dist/lib/settings-manifest.d.ts +2 -1
- package/dist/lib/share/delete.d.ts +5 -4
- package/dist/lib/share/html.d.ts +0 -2
- package/dist/lib/share/html.js +9 -9
- package/dist/lib/share/http-error.d.ts +3 -2
- package/dist/lib/share/og.d.ts +2 -1
- package/dist/lib/share/provision.d.ts +2 -2
- package/dist/lib/share/publish.d.ts +4 -13
- package/dist/lib/share/publish.js +2 -2
- package/dist/lib/shim-heal.d.ts +1 -5
- package/dist/lib/shim-heal.js +0 -6
- package/dist/lib/smart-launch.d.ts +4 -5
- package/dist/lib/smart-launch.js +1 -1
- package/dist/lib/snapshot.d.ts +3 -2
- package/dist/lib/ssh-exec.d.ts +5 -4
- package/dist/lib/ssh-tunnel.d.ts +3 -2
- package/dist/lib/staleness/checkers/permissions.d.ts +0 -2
- package/dist/lib/staleness/checkers/permissions.js +1 -1
- package/dist/lib/staleness/fingerprint.d.ts +0 -7
- package/dist/lib/staleness/fingerprint.js +1 -1
- package/dist/lib/staleness/prune.d.ts +3 -2
- package/dist/lib/staleness/registry.d.ts +1 -1
- package/dist/lib/staleness/writers/sources.d.ts +0 -8
- package/dist/lib/staleness/writers/sources.js +1 -1
- package/dist/lib/startup/command-registry.js +1 -1
- package/dist/lib/state.d.ts +1 -3
- package/dist/lib/state.js +1 -4
- package/dist/lib/subagents-registry.d.ts +4 -3
- package/dist/lib/subagents.d.ts +2 -1
- package/dist/lib/subagents.js +3 -2
- package/dist/lib/summarizer/pass.d.ts +3 -6
- package/dist/lib/summarizer/pass.js +2 -2
- package/dist/lib/summarizer/summarize.d.ts +4 -3
- package/dist/lib/sync-passphrase.d.ts +3 -2
- package/dist/lib/sync-status.d.ts +3 -16
- package/dist/lib/sync-status.js +2 -2
- package/dist/lib/sync-umbrella.d.ts +4 -3
- package/dist/lib/system-run-sync.d.ts +2 -1
- package/dist/lib/teams/agents.d.ts +2 -4
- package/dist/lib/teams/agents.js +1 -1
- package/dist/lib/teams/forEach.d.ts +3 -2
- package/dist/lib/teams/pr-watch.d.ts +4 -11
- package/dist/lib/teams/pr-watch.js +4 -4
- package/dist/lib/teams/registry.d.ts +2 -3
- package/dist/lib/teams/registry.js +1 -1
- package/dist/lib/teams/remoteWorktree.d.ts +0 -16
- package/dist/lib/teams/remoteWorktree.js +3 -3
- package/dist/lib/teams/scheduler.d.ts +6 -5
- package/dist/lib/teams/scheduler.js +1 -1
- package/dist/lib/teams/supervisor.d.ts +4 -3
- package/dist/lib/teams/worktree.d.ts +0 -9
- package/dist/lib/teams/worktree.js +0 -32
- package/dist/lib/term-client.d.ts +44 -0
- package/dist/lib/term-client.js +117 -0
- package/dist/lib/terminal/inject.d.ts +3 -16
- package/dist/lib/terminal/inject.js +1 -29
- package/dist/lib/terminal/resolve.d.ts +3 -9
- package/dist/lib/terminal/resolve.js +3 -7
- package/dist/lib/tmux/binary.d.ts +2 -1
- package/dist/lib/tmux/orphan-reap.d.ts +6 -7
- package/dist/lib/tmux/orphan-reap.js +1 -1
- package/dist/lib/tmux/session.d.ts +4 -3
- package/dist/lib/traces/classify.d.ts +3 -2
- package/dist/lib/traces/config.d.ts +0 -8
- package/dist/lib/traces/insights.d.ts +2 -1
- package/dist/lib/traces/phenotype.d.ts +3 -3
- package/dist/lib/traces/provision.d.ts +1 -3
- package/dist/lib/traces/provision.js +1 -1
- package/dist/lib/traces/schema2-build.d.ts +1 -1
- package/dist/lib/traces/schema2-danger.d.ts +2 -1
- package/dist/lib/traces/schema2.d.ts +5 -4
- package/dist/lib/traces/segments.d.ts +4 -20
- package/dist/lib/traces/segments.js +3 -3
- package/dist/lib/traces/sync.d.ts +2 -3
- package/dist/lib/traces/sync.js +1 -1
- package/dist/lib/triggers/handlers.d.ts +4 -13
- package/dist/lib/triggers/handlers.js +1 -1
- package/dist/lib/triggers/webhook.d.ts +5 -27
- package/dist/lib/triggers/webhook.js +4 -4
- package/dist/lib/types.d.ts +3 -3
- package/dist/lib/usage-refresh.d.ts +4 -10
- package/dist/lib/usage-refresh.js +3 -8
- package/dist/lib/verbs.d.ts +2 -1
- package/dist/lib/version-duplicates.d.ts +2 -3
- package/dist/lib/version-duplicates.js +3 -33
- package/dist/lib/version.d.ts +2 -1
- package/dist/lib/warn-unpushed.d.ts +2 -1
- package/dist/lib/watchdog/history.d.ts +3 -2
- package/dist/lib/watchdog/log.d.ts +0 -6
- package/dist/lib/watchdog/log.js +1 -1
- package/dist/lib/watchdog/rotate.d.ts +2 -26
- package/dist/lib/watchdog/rotate.js +4 -12
- package/dist/lib/watchdog/runner.d.ts +0 -7
- package/dist/lib/watchdog/runner.js +4 -4
- package/dist/lib/watchdog/service.d.ts +2 -2
- package/dist/lib/watchdog/service.js +1 -1
- package/dist/lib/watchdog/watchdog-agent.d.ts +2 -1
- package/dist/lib/watchdog/watchdog.d.ts +2 -1
- package/dist/lib/watchdog/watchdogTail.d.ts +2 -1
- package/dist/lib/workflows-registry.d.ts +3 -2
- package/dist/lib/workflows.d.ts +4 -7
- package/dist/lib/workflows.js +1 -1
- package/dist/lib/worktree/held.d.ts +4 -28
- package/dist/lib/worktree/held.js +3 -3
- package/package.json +2 -3
- package/scripts/postinstall.js +5 -4
- package/dist/commands/pty.d.ts +0 -20
- package/dist/commands/pty.js +0 -404
- package/dist/lib/config-machine-keys.d.ts +0 -14
- package/dist/lib/config-machine-keys.js +0 -21
- package/dist/lib/pty-client.d.ts +0 -49
- package/dist/lib/pty-client.js +0 -315
- package/dist/lib/pty-server.d.ts +0 -59
- package/dist/lib/pty-server.js +0 -653
|
@@ -9,76 +9,33 @@
|
|
|
9
9
|
*
|
|
10
10
|
* The launcher forwards a launch id it controls (`--env AGENT_LAUNCH_ID=<id>`);
|
|
11
11
|
* the remote `agents run` adopts it (exec.ts `resolveLaunchId`), so the remote
|
|
12
|
-
* SessionStart hook records the agent's REAL session id
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* the
|
|
16
|
-
* (session/hook-sessions.ts), just across the SSH hop.
|
|
12
|
+
* SessionStart hook records the agent's REAL session id. After the stream
|
|
13
|
+
* returns we ask the owning CLI to join that hook with the durable launch
|
|
14
|
+
* registry, using the same index as local focus/session projection. This also
|
|
15
|
+
* supports the deployed legacy hook containing only session_id and pid.
|
|
17
16
|
*
|
|
18
17
|
* This gives the interactive path a real per-agent id to register in the local
|
|
19
18
|
* session index and to reconnect against, for Codex/Kimi/Grok/Gemini — closing
|
|
20
19
|
* the gap RUSH-2033 left for every non-Claude agent (Claude still forces its own
|
|
21
20
|
* id up front and never reaches here).
|
|
22
21
|
*/
|
|
23
|
-
import { sshExec } from '../ssh-exec.js';
|
|
24
|
-
/**
|
|
25
|
-
* Pick the real session id for `launchId` from the remote hook records.
|
|
26
|
-
*
|
|
27
|
-
* `recordsJson` is the newline-delimited JSON the remote read emits — one record
|
|
28
|
-
* per line (a `cat` of every `sessions/*.json`). Scan for the record whose
|
|
29
|
-
* `launch_id` matches and return its `session_id`; when several match (pid reuse,
|
|
30
|
-
* a lingering file) the NEWEST by `ts` wins, mirroring the local reader's
|
|
31
|
-
* keep-newest tie-break (session/hook-sessions.ts). Pure so the correlation is
|
|
32
|
-
* unit-testable from fixtures with no SSH. Returns undefined when no record
|
|
33
|
-
* carries the launch id (the hook hasn't landed yet, or a hookless harness).
|
|
34
|
-
*/
|
|
35
|
-
export function pickRemoteSessionId(recordsJson, launchId) {
|
|
36
|
-
if (!launchId)
|
|
37
|
-
return undefined;
|
|
38
|
-
let best;
|
|
39
|
-
for (const line of recordsJson.split('\n')) {
|
|
40
|
-
const trimmed = line.trim();
|
|
41
|
-
if (!trimmed)
|
|
42
|
-
continue;
|
|
43
|
-
let rec;
|
|
44
|
-
try {
|
|
45
|
-
rec = JSON.parse(trimmed);
|
|
46
|
-
}
|
|
47
|
-
catch {
|
|
48
|
-
continue; // a partial/garbled line — skip, never throw
|
|
49
|
-
}
|
|
50
|
-
if (rec.launch_id !== launchId)
|
|
51
|
-
continue;
|
|
52
|
-
if (typeof rec.session_id !== 'string' || !rec.session_id)
|
|
53
|
-
continue;
|
|
54
|
-
const ts = typeof rec.ts === 'number' ? rec.ts : 0;
|
|
55
|
-
// Strict `>` so the FIRST record wins a tie — matches keepNewest (hook-sessions.ts).
|
|
56
|
-
if (!best || ts > best.ts)
|
|
57
|
-
best = { sid: rec.session_id, ts };
|
|
58
|
-
}
|
|
59
|
-
return best?.sid;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Read the remote hook-session dir over ssh and resolve the real session id the
|
|
63
|
-
* remote run recorded under `launchId`. One round-trip, best-effort: any ssh
|
|
64
|
-
* failure, a missing dir, or an absent record yields undefined — the caller then
|
|
65
|
-
* keeps the un-mapped run rather than a fabricated id.
|
|
66
|
-
*
|
|
67
|
-
* `$HOME` expands on the REMOTE login shell (never the local box). The glob is a
|
|
68
|
-
* literal path with no user input, so it is injection-safe; a `2>/dev/null` on a
|
|
69
|
-
* globless dir keeps the command quiet when the dir is empty or absent.
|
|
70
|
-
*/
|
|
22
|
+
import { sshExec, shellQuote } from '../ssh-exec.js';
|
|
23
|
+
/** Resolve on the execution owner through the canonical read-only CLI projection. */
|
|
71
24
|
export function resolveRemoteSessionId(target, launchId, timeoutMs = 6000) {
|
|
72
25
|
if (!launchId)
|
|
73
26
|
return undefined;
|
|
74
|
-
//
|
|
75
|
-
//
|
|
76
|
-
const cmd =
|
|
27
|
+
// Let the owning CLI join its deployed hook and launch registry. A remote
|
|
28
|
+
// caller must not carry a second implementation of session identity rules.
|
|
29
|
+
const cmd = `agents sessions --resolve-launch-id ${shellQuote(launchId)} --json --local`;
|
|
77
30
|
const res = sshExec(target, cmd, { timeoutMs, multiplex: true });
|
|
78
|
-
if (res.code !== 0
|
|
31
|
+
if (res.code !== 0)
|
|
79
32
|
return undefined;
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
33
|
+
try {
|
|
34
|
+
const record = JSON.parse(res.stdout);
|
|
35
|
+
return record.launchId === launchId && typeof record.sessionId === 'string' && record.sessionId
|
|
36
|
+
? record.sessionId : undefined;
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
84
41
|
}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import type { SessionMeta } from '../session/types.js';
|
|
20
20
|
import { type HostTask } from './tasks.js';
|
|
21
|
-
|
|
21
|
+
interface HostSessionContext {
|
|
22
22
|
/** Local directory the `agents run --device` was invoked from. */
|
|
23
23
|
cwd: string;
|
|
24
24
|
/** Prompt the run was launched with, used for the session topic. */
|
|
@@ -53,7 +53,7 @@ export declare function registerHostSession(task: HostTask, ctx: HostSessionCont
|
|
|
53
53
|
* missing/unreadable mirror or absent marker yields null, never an exception.
|
|
54
54
|
*/
|
|
55
55
|
export declare function captureRemoteSessionId(task: HostTask): HostTask | null;
|
|
56
|
-
|
|
56
|
+
interface InteractiveHostSessionContext {
|
|
57
57
|
cwd: string;
|
|
58
58
|
host: string;
|
|
59
59
|
agent: string;
|
|
@@ -68,3 +68,4 @@ export interface InteractiveHostSessionContext {
|
|
|
68
68
|
* surface and resume it by id.
|
|
69
69
|
*/
|
|
70
70
|
export declare function registerInteractiveHostSession(ctx: InteractiveHostSessionContext): void;
|
|
71
|
+
export {};
|
|
@@ -19,11 +19,9 @@ export declare function parseSshConfigHosts(content: string): string[];
|
|
|
19
19
|
export declare function parseKnownHosts(content: string): string[];
|
|
20
20
|
/** `Host` names from ~/.ssh/config, following `Include` globs (best-effort). */
|
|
21
21
|
export declare function listSshConfigHosts(): string[];
|
|
22
|
-
/** Hostnames recorded in ~/.ssh/known_hosts (hashed entries skipped). */
|
|
23
|
-
export declare function listKnownHosts(): string[];
|
|
24
22
|
/** True if `name` is a concrete `Host` stanza in ssh config. */
|
|
25
23
|
export declare function isSshConfigHost(name: string): boolean;
|
|
26
|
-
|
|
24
|
+
interface SshGResult {
|
|
27
25
|
hostname?: string;
|
|
28
26
|
user?: string;
|
|
29
27
|
port?: string;
|
|
@@ -35,3 +33,4 @@ export interface SshGResult {
|
|
|
35
33
|
* to decide whether a name is actually configured.
|
|
36
34
|
*/
|
|
37
35
|
export declare function sshResolve(name: string): SshGResult | undefined;
|
|
36
|
+
export {};
|
|
@@ -12,7 +12,6 @@ import { spawnSync } from 'child_process';
|
|
|
12
12
|
import { assertValidSshTarget } from '../ssh-exec.js';
|
|
13
13
|
const SSH_DIR = path.join(os.homedir(), '.ssh');
|
|
14
14
|
const SSH_CONFIG = path.join(SSH_DIR, 'config');
|
|
15
|
-
const KNOWN_HOSTS = path.join(SSH_DIR, 'known_hosts');
|
|
16
15
|
/**
|
|
17
16
|
* Parse `Host` stanza names from ssh config text. Wildcard/negated patterns
|
|
18
17
|
* (`*`, `?`, `!`) are skipped — they're match rules, not concrete hosts.
|
|
@@ -110,15 +109,6 @@ function globMaybe(pattern) {
|
|
|
110
109
|
return [];
|
|
111
110
|
}
|
|
112
111
|
}
|
|
113
|
-
/** Hostnames recorded in ~/.ssh/known_hosts (hashed entries skipped). */
|
|
114
|
-
export function listKnownHosts() {
|
|
115
|
-
try {
|
|
116
|
-
return parseKnownHosts(fs.readFileSync(KNOWN_HOSTS, 'utf-8'));
|
|
117
|
-
}
|
|
118
|
-
catch {
|
|
119
|
-
return [];
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
112
|
/** True if `name` is a concrete `Host` stanza in ssh config. */
|
|
123
113
|
export function isSshConfigHost(name) {
|
|
124
114
|
return listSshConfigHosts().includes(name);
|
package/dist/lib/humans.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import type { HumansConfig, HumanOwner } from './types.js';
|
|
2
|
-
export declare const HUMANS_VERSION: 1;
|
|
3
|
-
export declare const HUMANS_HEADER = "# humans.yaml \u2014 owner identity and notification channels\n# Managed by agents-cli. See: agents humans --help\n";
|
|
4
2
|
/**
|
|
5
3
|
* Read and parse humans.yaml. Returns null when the file does not exist or
|
|
6
4
|
* is not a valid v1 config — never throws.
|
package/dist/lib/humans.js
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
import * as fs from 'fs';
|
|
11
11
|
import * as yaml from 'yaml';
|
|
12
12
|
import { getHumansFilePath } from './state.js';
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
const HUMANS_VERSION = 1;
|
|
14
|
+
const HUMANS_HEADER = `# humans.yaml — owner identity and notification channels
|
|
15
15
|
# Managed by agents-cli. See: agents humans --help
|
|
16
16
|
`;
|
|
17
17
|
/**
|
package/dist/lib/import.d.ts
CHANGED
|
@@ -17,12 +17,12 @@
|
|
|
17
17
|
* true.
|
|
18
18
|
*/
|
|
19
19
|
import type { AgentId } from './types.js';
|
|
20
|
-
|
|
20
|
+
interface ImportConfigResult {
|
|
21
21
|
success: boolean;
|
|
22
22
|
skipped?: boolean;
|
|
23
23
|
error?: string;
|
|
24
24
|
}
|
|
25
|
-
|
|
25
|
+
interface ImportBinaryResult {
|
|
26
26
|
success: boolean;
|
|
27
27
|
skipped?: boolean;
|
|
28
28
|
error?: string;
|
|
@@ -60,7 +60,7 @@ export declare function finalizeImport(agentId: AgentId, version: string): void;
|
|
|
60
60
|
* farm from the AGENTS registry, which keeps the function pure and avoids
|
|
61
61
|
* fragile coupling in test setups that stub `lib/agents.ts`.
|
|
62
62
|
*/
|
|
63
|
-
|
|
63
|
+
interface AgentBinarySpec {
|
|
64
64
|
/** Agent id used in the marker package.json (`agents-{agentId}-{version}`). */
|
|
65
65
|
agentId: string;
|
|
66
66
|
/** npm package name (e.g. `openclaw`) — used as the `node_modules/<name>` dir. */
|
|
@@ -136,3 +136,4 @@ export declare function seedIsolatedConfigFromLocal(agentId: AgentId, version: s
|
|
|
136
136
|
skippedRuntime: string[];
|
|
137
137
|
error?: string;
|
|
138
138
|
};
|
|
139
|
+
export {};
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { type FileLockOptions } from '../fs-atomic.js';
|
|
2
2
|
import { type AgentId } from '../types.js';
|
|
3
3
|
export declare function installationLockTarget(agent: AgentId, label: string): string;
|
|
4
|
-
export declare const INSTALLATION_LOCK_STALE_MS: number;
|
|
5
|
-
export declare const INSTALLATION_LOCK_ACQUIRE_TIMEOUT_MS: number;
|
|
6
4
|
export declare const INSTALLATION_LOCK_OPTIONS: Required<FileLockOptions>;
|
|
@@ -20,8 +20,8 @@ export function installationLockTarget(agent, label) {
|
|
|
20
20
|
ensureLockTarget(target, '', 0o700);
|
|
21
21
|
return target;
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
const INSTALLATION_LOCK_STALE_MS = 10 * 60_000;
|
|
24
|
+
const INSTALLATION_LOCK_ACQUIRE_TIMEOUT_MS = 5 * 60_000;
|
|
25
25
|
export const INSTALLATION_LOCK_OPTIONS = {
|
|
26
26
|
staleMs: INSTALLATION_LOCK_STALE_MS,
|
|
27
27
|
acquireTimeoutMs: INSTALLATION_LOCK_ACQUIRE_TIMEOUT_MS,
|
|
@@ -44,15 +44,6 @@ import type { AgentId } from '../types.js';
|
|
|
44
44
|
* work here serializes launches against each other unnecessarily.
|
|
45
45
|
*/
|
|
46
46
|
export declare function withLaunchGate<T>(agent: AgentId, label: string, fn: () => T): Promise<T>;
|
|
47
|
-
/**
|
|
48
|
-
* Acquire the per-installation update lock, register a launch lease for
|
|
49
|
-
* `pid`, then release. For a caller that already has its own pid before the
|
|
50
|
-
* risky operation (the native shim's `$$`, exec-replaced so the pid is
|
|
51
|
-
* final) — a Node caller that spawns a child should use {@link withLaunchGate}
|
|
52
|
-
* around the spawn itself instead, since here the process already exists by
|
|
53
|
-
* the time the lock is acquired.
|
|
54
|
-
*/
|
|
55
|
-
export declare function acquireLaunchGate(agent: AgentId, label: string, pid: number): Promise<() => void>;
|
|
56
47
|
/** Keep a live launcher's lease until its operation ends, without holding the lock. */
|
|
57
48
|
export declare function withInstallationLease<T>(agent: AgentId, label: string, fn: () => Promise<T>): Promise<T>;
|
|
58
49
|
/**
|
|
@@ -91,7 +91,7 @@ export async function withLaunchGate(agent, label, fn) {
|
|
|
91
91
|
* around the spawn itself instead, since here the process already exists by
|
|
92
92
|
* the time the lock is acquired.
|
|
93
93
|
*/
|
|
94
|
-
|
|
94
|
+
async function acquireLaunchGate(agent, label, pid) {
|
|
95
95
|
return withLaunchGate(agent, label, () => recordLaunchLease(agent, label, pid));
|
|
96
96
|
}
|
|
97
97
|
/** Keep a live launcher's lease until its operation ends, without holding the lock. */
|
|
@@ -45,17 +45,6 @@ export declare function migrateRoutineDeviceToDevices(routinesDir?: string): voi
|
|
|
45
45
|
* Idempotent: a file with only `cwd` (already migrated) is skipped.
|
|
46
46
|
*/
|
|
47
47
|
export declare function migrateRoutineRemoteCwdToCwd(routinesDir?: string): void;
|
|
48
|
-
/**
|
|
49
|
-
* Pause every currently-active routine whose execution context no longer
|
|
50
|
-
* resolves ready (RUSH-2290). An agent/workflow routine with no project/cwd, a
|
|
51
|
-
* missing directory, or a non-portable path used to fire and fail every tick —
|
|
52
|
-
* the mass auth_failed / untrusted-home storm this ticket exists to stop. After
|
|
53
|
-
* the fold, such a routine is deactivated on THIS device (only), preventing it
|
|
54
|
-
* from being scheduled until `agents routines doctor --all --fix` (or a repair +
|
|
55
|
-
* `resume`) makes it ready. Never materializes a device manifest that does not
|
|
56
|
-
* yet exist, and never touches command routines (they run in the target home).
|
|
57
|
-
*/
|
|
58
|
-
export declare function pauseUnreadyEnabledRoutines(): void;
|
|
59
48
|
/**
|
|
60
49
|
* Fold the legacy watchdog enable sentinel into the `watchdog.enabled` config.
|
|
61
50
|
*
|
|
@@ -1871,7 +1871,7 @@ export function migrateRoutineRemoteCwdToCwd(routinesDir) {
|
|
|
1871
1871
|
* `resume`) makes it ready. Never materializes a device manifest that does not
|
|
1872
1872
|
* yet exist, and never touches command routines (they run in the target home).
|
|
1873
1873
|
*/
|
|
1874
|
-
|
|
1874
|
+
function pauseUnreadyEnabledRoutines() {
|
|
1875
1875
|
const enabled = enabledRoutineNames();
|
|
1876
1876
|
if (enabled === null)
|
|
1877
1877
|
return; // no manifest yet — nothing activated to pause
|
|
@@ -358,7 +358,7 @@ export declare function listShimFileNames(): string[];
|
|
|
358
358
|
/**
|
|
359
359
|
* Prune a stale, orphaned shim: one that is NOT a managed agent shim and NOT a user
|
|
360
360
|
* alias, whose baked `AGENTS_BIN` points at an install that no longer exists. These
|
|
361
|
-
* are `exec "$AGENTS_BIN" <cmd>` command shims (browser/
|
|
361
|
+
* are `exec "$AGENTS_BIN" <cmd>` command shims (browser/teams) that
|
|
362
362
|
* `scripts/postinstall.js` writes for the LIVE install; one baked at a removed
|
|
363
363
|
* install either dies with `exit 127` or shadows the real package bin on PATH.
|
|
364
364
|
* Only removed when the baked target is gone, so a working shim is never touched —
|
|
@@ -2197,11 +2197,11 @@ export function listShimFileNames() {
|
|
|
2197
2197
|
* `computer` bin of its own: a machine that installed an older CLI has a real
|
|
2198
2198
|
* shim on PATH under the name the standalone engine now owns.
|
|
2199
2199
|
*/
|
|
2200
|
-
const LEGACY_SHIMS_ALWAYS_PRUNED = new Set(['secrets', 'sessions', 'computer']);
|
|
2200
|
+
const LEGACY_SHIMS_ALWAYS_PRUNED = new Set(['secrets', 'sessions', 'computer', 'pty']);
|
|
2201
2201
|
/**
|
|
2202
2202
|
* Prune a stale, orphaned shim: one that is NOT a managed agent shim and NOT a user
|
|
2203
2203
|
* alias, whose baked `AGENTS_BIN` points at an install that no longer exists. These
|
|
2204
|
-
* are `exec "$AGENTS_BIN" <cmd>` command shims (browser/
|
|
2204
|
+
* are `exec "$AGENTS_BIN" <cmd>` command shims (browser/teams) that
|
|
2205
2205
|
* `scripts/postinstall.js` writes for the LIVE install; one baked at a removed
|
|
2206
2206
|
* install either dies with `exit 127` or shadows the real package bin on PATH.
|
|
2207
2207
|
* Only removed when the baked target is gone, so a working shim is never touched —
|
|
@@ -299,7 +299,7 @@ async function runAutoUpdatePassUntilCancelled(opts, cancelled) {
|
|
|
299
299
|
// (`ensureShimCurrent`/`ensureVersionedAliasCurrent`). Deliberately
|
|
300
300
|
// NEVER `adoptShadowingLauncher`: that seizes a launcher this pass does
|
|
301
301
|
// not own (a user's own PATH entry, or another install's), and is an
|
|
302
|
-
// operator-triggered `
|
|
302
|
+
// operator-triggered `agents sync` action, not something an unattended
|
|
303
303
|
// background pass may do on its own. Real-pass-only, same reason as the
|
|
304
304
|
// migration above — a `--check` preview must not touch PATH or a
|
|
305
305
|
// config-dir symlink.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Editor identity belongs to the first launch attached to that terminal. The
|
|
3
|
+
* harness inherits it for its own tools, but another `agents run` is a new
|
|
4
|
+
* launch, not another owner of the parent's editor tab. AGENTS_RUNTIME is set
|
|
5
|
+
* by buildExecEnv, whereas an editor's initial launch sets AGENT_TERMINAL_ID
|
|
6
|
+
* (and may already set AGENT_SESSION_ID) without that runtime marker.
|
|
7
|
+
*/
|
|
8
|
+
export declare function launchIdentityEnv(env?: NodeJS.ProcessEnv): Record<string, string>;
|
|
9
|
+
/** Identity absent from a new launch must not leak back in from a tmux server. */
|
|
10
|
+
export declare const LAUNCH_IDENTITY_KEYS: readonly ["AGENT_TERMINAL_ID", "AGENT_SESSION_ID", "AGENTS_SESSION_ID", "AGENTS_MAILBOX_DIR", "AGENT_LAUNCH_ID", "AGENTS_PARENT_SESSION_ID", "AGENTS_PARENT_LAUNCH_ID", "AGENTS_ORIGIN_TERMINAL_ID"];
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Editor identity belongs to the first launch attached to that terminal. The
|
|
3
|
+
* harness inherits it for its own tools, but another `agents run` is a new
|
|
4
|
+
* launch, not another owner of the parent's editor tab. AGENTS_RUNTIME is set
|
|
5
|
+
* by buildExecEnv, whereas an editor's initial launch sets AGENT_TERMINAL_ID
|
|
6
|
+
* (and may already set AGENT_SESSION_ID) without that runtime marker.
|
|
7
|
+
*/
|
|
8
|
+
export function launchIdentityEnv(env = process.env) {
|
|
9
|
+
const result = {};
|
|
10
|
+
const terminal = env.AGENT_TERMINAL_ID?.trim();
|
|
11
|
+
const nested = env.AGENTS_RUNTIME === 'terminal' || env.AGENTS_RUNTIME === 'headless' || env.AGENTS_RUNTIME === 'teams';
|
|
12
|
+
if (terminal && !nested)
|
|
13
|
+
result.AGENT_TERMINAL_ID = terminal;
|
|
14
|
+
const originTerminal = env.AGENTS_ORIGIN_TERMINAL_ID?.trim() || terminal;
|
|
15
|
+
if (originTerminal)
|
|
16
|
+
result.AGENTS_ORIGIN_TERMINAL_ID = originTerminal;
|
|
17
|
+
const parentLaunch = nested ? env.AGENT_LAUNCH_ID : env.AGENTS_PARENT_LAUNCH_ID;
|
|
18
|
+
const parentSession = nested
|
|
19
|
+
? env.AGENTS_SESSION_ID || env.AGENT_SESSION_ID
|
|
20
|
+
: env.AGENTS_PARENT_SESSION_ID;
|
|
21
|
+
if (parentLaunch)
|
|
22
|
+
result.AGENTS_PARENT_LAUNCH_ID = parentLaunch;
|
|
23
|
+
if (parentSession)
|
|
24
|
+
result.AGENTS_PARENT_SESSION_ID = parentSession;
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
/** Identity absent from a new launch must not leak back in from a tmux server. */
|
|
28
|
+
export const LAUNCH_IDENTITY_KEYS = [
|
|
29
|
+
'AGENT_TERMINAL_ID', 'AGENT_SESSION_ID', 'AGENTS_SESSION_ID', 'AGENTS_MAILBOX_DIR',
|
|
30
|
+
'AGENT_LAUNCH_ID', 'AGENTS_PARENT_SESSION_ID', 'AGENTS_PARENT_LAUNCH_ID', 'AGENTS_ORIGIN_TERMINAL_ID',
|
|
31
|
+
];
|
|
@@ -42,7 +42,7 @@ export declare const LINEAR_CACHE_TTL_MS: number;
|
|
|
42
42
|
*/
|
|
43
43
|
export declare function resolveLinearApiKey(): string | null;
|
|
44
44
|
/** What a lookup found, and how much to trust it. */
|
|
45
|
-
|
|
45
|
+
interface CacheHit<T> {
|
|
46
46
|
value: T;
|
|
47
47
|
/** Age in ms. Past the TTL the value is still returned, flagged stale. */
|
|
48
48
|
ageMs: number;
|
|
@@ -68,3 +68,4 @@ export declare function parseRateLimitReset(header: string | null, nowMs: number
|
|
|
68
68
|
* `resetAtMs` comes from {@link parseRateLimitReset}; without it, back off one TTL.
|
|
69
69
|
*/
|
|
70
70
|
export declare function noteRateLimited(resetAtMs: number | undefined, nowMs: number): void;
|
|
71
|
+
export {};
|
|
@@ -13,7 +13,7 @@ export interface UsernsStatus {
|
|
|
13
13
|
reason?: string;
|
|
14
14
|
}
|
|
15
15
|
/** The raw signals the pure interpreter reasons over. */
|
|
16
|
-
|
|
16
|
+
interface UsernsInputs {
|
|
17
17
|
platform: NodeJS.Platform;
|
|
18
18
|
/**
|
|
19
19
|
* Contents of {@link APPARMOR_USERNS_SYSCTL_PATH} trimmed, or null when the
|
|
@@ -54,5 +54,4 @@ export declare function probeUnshare(): 'ok' | 'denied' | 'no-tool';
|
|
|
54
54
|
* short-circuits to `ok` without spawning anything.
|
|
55
55
|
*/
|
|
56
56
|
export declare function probeUnprivilegedUserns(platform?: NodeJS.Platform): UsernsStatus;
|
|
57
|
-
|
|
58
|
-
export declare function resetUsernsCacheForTests(): void;
|
|
57
|
+
export {};
|
package/dist/lib/linux-userns.js
CHANGED
package/dist/lib/loop.d.ts
CHANGED
|
@@ -40,7 +40,7 @@ export interface LoopSignal {
|
|
|
40
40
|
/** Why the loop stopped. Mirrors the teams supervisor exit reasons. */
|
|
41
41
|
export type LoopStoppedBy = 'condition-met' | 'budget' | 'stalled' | 'max' | 'signal' | 'error';
|
|
42
42
|
/** Result of a loop run. */
|
|
43
|
-
|
|
43
|
+
interface LoopResult {
|
|
44
44
|
/** Iterations actually executed. */
|
|
45
45
|
iterations: number;
|
|
46
46
|
stoppedBy: LoopStoppedBy;
|
|
@@ -152,3 +152,4 @@ export declare function defaultRunIteration(options: ExecOptions): Promise<Itera
|
|
|
152
152
|
* - `error` — an iteration threw or exited non-zero.
|
|
153
153
|
*/
|
|
154
154
|
export declare function runLoop(execOptions: ExecOptions, loop: LoopConfig, ctx: LoopContext, deps?: LoopDeps): Promise<LoopResult>;
|
|
155
|
+
export {};
|
package/dist/lib/mailbox-gc.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export interface GcResult {
|
|
|
6
6
|
consumedPruned: number;
|
|
7
7
|
blocksRemoved: number;
|
|
8
8
|
}
|
|
9
|
-
|
|
9
|
+
interface GcOptions {
|
|
10
10
|
root?: string;
|
|
11
11
|
/** Feed store root. Defaults to getFeedDir(). */
|
|
12
12
|
feedRoot?: string;
|
|
@@ -20,3 +20,4 @@ export interface GcOptions {
|
|
|
20
20
|
* mailbox. For live boxes, drop expired messages and prune old consumed files.
|
|
21
21
|
*/
|
|
22
22
|
export declare function gcMailbox(activeBoxIds: Set<string>, options?: GcOptions): GcResult;
|
|
23
|
+
export {};
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { ActiveSession } from './session/active.js';
|
|
8
8
|
import type { HostTask } from './hosts/tasks.js';
|
|
9
|
-
|
|
9
|
+
type MessageResolution = {
|
|
10
10
|
kind: 'cloud';
|
|
11
11
|
id: string;
|
|
12
12
|
} | {
|
|
@@ -61,3 +61,4 @@ export type HostTaskRoute = {
|
|
|
61
61
|
* latter.
|
|
62
62
|
*/
|
|
63
63
|
export declare function decideHostTaskRoute(task: HostTask | null, target: string): HostTaskRoute;
|
|
64
|
+
export {};
|
package/dist/lib/mailbox.d.ts
CHANGED
|
@@ -2,12 +2,6 @@
|
|
|
2
2
|
export declare const DEFAULT_TTL_SECONDS: number;
|
|
3
3
|
/** Env var that overrides {@link DEFAULT_TTL_SECONDS} with a duration like "24h" or "3600". */
|
|
4
4
|
export declare const MAILBOX_TTL_ENV = "AGENTS_MAILBOX_TTL";
|
|
5
|
-
/**
|
|
6
|
-
* Resolve the default mailbox TTL in seconds. Honors `AGENTS_MAILBOX_TTL`
|
|
7
|
-
* (parsed by {@link parseDuration}); falls back to 24h. A malformed env value
|
|
8
|
-
* fails loud instead of silently disabling expiry.
|
|
9
|
-
*/
|
|
10
|
-
export declare function resolveDefaultTtlSeconds(): number;
|
|
11
5
|
/** A single mailbox message. `text` may embed `host:/path` clip tokens. */
|
|
12
6
|
export interface MailboxMessage {
|
|
13
7
|
/** Unique, time-sortable id. Also the on-disk filename stem. */
|
package/dist/lib/mailbox.js
CHANGED
|
@@ -30,7 +30,7 @@ export const MAILBOX_TTL_ENV = 'AGENTS_MAILBOX_TTL';
|
|
|
30
30
|
* (parsed by {@link parseDuration}); falls back to 24h. A malformed env value
|
|
31
31
|
* fails loud instead of silently disabling expiry.
|
|
32
32
|
*/
|
|
33
|
-
|
|
33
|
+
function resolveDefaultTtlSeconds() {
|
|
34
34
|
const raw = process.env[MAILBOX_TTL_ENV];
|
|
35
35
|
if (raw == null || raw === '')
|
|
36
36
|
return DEFAULT_TTL_SECONDS;
|
package/dist/lib/manifest.d.ts
CHANGED
|
@@ -1,20 +1,6 @@
|
|
|
1
1
|
import type { Manifest } from './types.js';
|
|
2
2
|
/** Canonical filename for the manifest in any agents repo or project root. */
|
|
3
3
|
export declare const MANIFEST_FILENAME = "agents.yaml";
|
|
4
|
-
/** Parse a YAML string into a typed Manifest object. */
|
|
5
|
-
export declare function parseManifest(content: string): Manifest;
|
|
6
|
-
/**
|
|
7
|
-
* Serialize a Manifest to YAML WITHOUT destroying hand-written comments.
|
|
8
|
-
*
|
|
9
|
-
* Plain `yaml.stringify(manifest)` drops every comment, so `agents mcp add`
|
|
10
|
-
* (and every other writeManifest caller) used to clobber annotations in
|
|
11
|
-
* agents.yaml. Matching `serializeCentral` in state.ts: when existing file
|
|
12
|
-
* text is provided, parse it into a `yaml.Document` (comments + key order
|
|
13
|
-
* preserved) and edit only keys that actually changed. Untouched keys and
|
|
14
|
-
* their comments stay byte-stable. Falls back to plain stringify when there
|
|
15
|
-
* is no existing document yet.
|
|
16
|
-
*/
|
|
17
|
-
export declare function serializeManifest(manifest: Manifest, existingContent?: string | null): string;
|
|
18
4
|
/** Read and parse agents.yaml from a directory. Returns null if the file does not exist. */
|
|
19
5
|
export declare function readManifest(repoPath: string): Manifest | null;
|
|
20
6
|
/** Write a Manifest object to agents.yaml in the given directory. */
|
package/dist/lib/manifest.js
CHANGED
|
@@ -14,7 +14,7 @@ export const MANIFEST_FILENAME = 'agents.yaml';
|
|
|
14
14
|
// Per-path re-entrancy depth so withManifestLock is safe against recursive calls.
|
|
15
15
|
const manifestLockDepth = new Map();
|
|
16
16
|
/** Parse a YAML string into a typed Manifest object. */
|
|
17
|
-
|
|
17
|
+
function parseManifest(content) {
|
|
18
18
|
return yaml.parse(content);
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
@@ -28,7 +28,7 @@ export function parseManifest(content) {
|
|
|
28
28
|
* their comments stay byte-stable. Falls back to plain stringify when there
|
|
29
29
|
* is no existing document yet.
|
|
30
30
|
*/
|
|
31
|
-
|
|
31
|
+
function serializeManifest(manifest, existingContent) {
|
|
32
32
|
const entries = Object.entries(manifest).filter(([, v]) => v !== undefined);
|
|
33
33
|
const isEmpty = entries.length === 0;
|
|
34
34
|
if (existingContent == null || existingContent.trim() === '') {
|
|
@@ -19,7 +19,7 @@ export type McpFormat =
|
|
|
19
19
|
/** `{ schema_version, mcp_servers: { "<name>": {transport, ..., enabled} } }` */
|
|
20
20
|
| 'muse-json';
|
|
21
21
|
/** The complete MCP contract for one agent. */
|
|
22
|
-
|
|
22
|
+
interface McpTarget {
|
|
23
23
|
/** MCP config file under a HOME root (a version home, or the real HOME). */
|
|
24
24
|
home(home: string): string;
|
|
25
25
|
/** Project-scoped MCP config file for a repo at `cwd`. */
|
|
@@ -60,3 +60,4 @@ export declare function mcpTarget(agent: AgentId): McpTarget | undefined;
|
|
|
60
60
|
* MCP-capable, or a hard-deprecated id), or it has one with `format: null`.
|
|
61
61
|
*/
|
|
62
62
|
export declare function mcpWriteUnsupportedReason(agent: AgentId): string | null;
|
|
63
|
+
export {};
|
package/dist/lib/memory.d.ts
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* target dir (see memoryTargetDir).
|
|
13
13
|
*/
|
|
14
14
|
import type { AgentId } from './types.js';
|
|
15
|
-
|
|
15
|
+
interface MemoryFact {
|
|
16
16
|
/** Filename without .md (slug). */
|
|
17
17
|
name: string;
|
|
18
18
|
/** Absolute path to the fact file. */
|
|
@@ -22,20 +22,10 @@ export interface MemoryFact {
|
|
|
22
22
|
/** First non-empty line of the body (for list display). */
|
|
23
23
|
summary: string;
|
|
24
24
|
}
|
|
25
|
-
export interface MemoryLayerDir {
|
|
26
|
-
layer: 'project' | 'user' | 'system';
|
|
27
|
-
dir: string;
|
|
28
|
-
}
|
|
29
25
|
/** User-layer memory root (~/.agents/memory/). */
|
|
30
26
|
export declare function getUserMemoryDir(): string;
|
|
31
|
-
/** System-layer memory root (~/.agents/.system/memory/). */
|
|
32
|
-
export declare function getSystemMemoryDir(): string;
|
|
33
|
-
/** Project-layer memory root when a project agents dir exists. */
|
|
34
|
-
export declare function getProjectMemoryDir(cwd?: string): string | null;
|
|
35
27
|
/** Ensure the user memory dir exists (creates MEMORY.md index if missing). */
|
|
36
28
|
export declare function ensureUserMemoryDir(): string;
|
|
37
|
-
/** Layer dirs highest-priority first. */
|
|
38
|
-
export declare function getMemoryLayerDirs(cwd?: string): MemoryLayerDir[];
|
|
39
29
|
/** List memory facts with project > user > system override on name. */
|
|
40
30
|
export declare function listMemoryFacts(cwd?: string): MemoryFact[];
|
|
41
31
|
/** Read one fact by name (winning layer). */
|
|
@@ -44,8 +34,6 @@ export declare function readMemoryFact(name: string, cwd?: string): MemoryFact |
|
|
|
44
34
|
export declare function addMemoryFact(name: string, body: string): string;
|
|
45
35
|
/** Remove a fact from the user layer. Returns true if a file was deleted. */
|
|
46
36
|
export declare function removeMemoryFact(name: string): boolean;
|
|
47
|
-
/** Rebuild MEMORY.md index from sibling fact files in a single layer dir. */
|
|
48
|
-
export declare function rebuildMemoryIndex(dir: string): void;
|
|
49
37
|
/**
|
|
50
38
|
* Per-agent target directory (relative to version home) for synced memory.
|
|
51
39
|
* Claude/Codex/OpenClaw/Grok get native-ish paths; others get a generic memory/.
|
|
@@ -79,3 +67,4 @@ export declare function getClaudeProjectMemoryDir(cwd: string): string;
|
|
|
79
67
|
* being replaced by the symlink.
|
|
80
68
|
*/
|
|
81
69
|
export declare function syncClaudeProjectMemoryDir(versionHome: string, cwd?: string): void;
|
|
70
|
+
export {};
|
package/dist/lib/memory.js
CHANGED
|
@@ -22,11 +22,11 @@ export function getUserMemoryDir() {
|
|
|
22
22
|
return path.join(getUserAgentsDir(), 'memory');
|
|
23
23
|
}
|
|
24
24
|
/** System-layer memory root (~/.agents/.system/memory/). */
|
|
25
|
-
|
|
25
|
+
function getSystemMemoryDir() {
|
|
26
26
|
return path.join(getSystemAgentsDir(), 'memory');
|
|
27
27
|
}
|
|
28
28
|
/** Project-layer memory root when a project agents dir exists. */
|
|
29
|
-
|
|
29
|
+
function getProjectMemoryDir(cwd = process.cwd()) {
|
|
30
30
|
const project = getProjectAgentsDir(cwd);
|
|
31
31
|
return project ? path.join(project, 'memory') : null;
|
|
32
32
|
}
|
|
@@ -69,7 +69,7 @@ function summarize(content) {
|
|
|
69
69
|
return '(empty)';
|
|
70
70
|
}
|
|
71
71
|
/** Layer dirs highest-priority first. */
|
|
72
|
-
|
|
72
|
+
function getMemoryLayerDirs(cwd = process.cwd()) {
|
|
73
73
|
const out = [];
|
|
74
74
|
const project = getProjectMemoryDir(cwd);
|
|
75
75
|
if (project && fs.existsSync(project))
|
|
@@ -157,7 +157,7 @@ export function removeMemoryFact(name) {
|
|
|
157
157
|
return true;
|
|
158
158
|
}
|
|
159
159
|
/** Rebuild MEMORY.md index from sibling fact files in a single layer dir. */
|
|
160
|
-
|
|
160
|
+
function rebuildMemoryIndex(dir) {
|
|
161
161
|
let facts = [];
|
|
162
162
|
try {
|
|
163
163
|
facts = fs.readdirSync(dir).filter(isFactFile).sort();
|
|
@@ -38,8 +38,6 @@ export declare function menubarHelperAssetUrls(version: string): {
|
|
|
38
38
|
};
|
|
39
39
|
/** Cache dir for the downloaded menu-bar helper, one subdir per release tag. */
|
|
40
40
|
export declare function menubarHelperCacheDir(version: string): string;
|
|
41
|
-
/** Verify a menu-bar helper `.app`: codesign + Team + DR pin + notarization. */
|
|
42
|
-
export declare function verifyMenubarHelper(appPath: string): void;
|
|
43
41
|
/**
|
|
44
42
|
* Download the menu-bar helper release asset for `version`, verify sha256 +
|
|
45
43
|
* signature + DR pin, and return the path to the extracted `MenubarHelper.app`
|