@phnx-labs/agents-cli 1.22.113 → 1.22.115
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 +139 -0
- package/README.md +32 -113
- package/dist/browser.js +0 -0
- package/dist/cli/command-registry.d.ts +0 -60
- package/dist/cli/command-registry.js +57 -66
- package/dist/commands/accounts.d.ts +3 -77
- package/dist/commands/accounts.js +13 -366
- package/dist/commands/apply.d.ts +0 -4
- package/dist/commands/apply.js +3 -3
- package/dist/commands/audit.js +1 -1
- package/dist/commands/auth.js +0 -2
- 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/browser.d.ts +53 -0
- package/dist/commands/browser.js +199 -9
- 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/doctor.d.ts +2 -3
- package/dist/commands/doctor.js +0 -11
- package/dist/commands/events.d.ts +1 -3
- package/dist/commands/events.js +4 -7
- package/dist/commands/exec.d.ts +0 -1
- package/dist/commands/exec.js +2 -7
- package/dist/commands/feed-watch.js +52 -8
- 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/focus.js +1 -1
- package/dist/commands/go.d.ts +0 -17
- package/dist/commands/go.js +2 -19
- 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/logs.js +1 -1
- package/dist/commands/mcp.js +8 -83
- package/dist/commands/memory.js +4 -47
- package/dist/commands/message.d.ts +1 -1
- package/dist/commands/message.js +7 -7
- package/dist/commands/plugins.js +1 -93
- package/dist/commands/projects.d.ts +2 -18
- package/dist/commands/projects.js +89 -3
- package/dist/commands/repo.js +0 -44
- package/dist/commands/resource-view.d.ts +3 -2
- package/dist/commands/resume.d.ts +0 -1
- package/dist/commands/resume.js +5 -2
- 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 +23 -4
- package/dist/commands/send.d.ts +4 -4
- package/dist/commands/send.js +6 -51
- package/dist/commands/sessions-backfill.d.ts +2 -35
- package/dist/commands/sessions-backfill.js +1 -1
- package/dist/commands/sessions-backup-setup.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 -6
- package/dist/commands/sessions-share.d.ts +5 -7
- package/dist/commands/sessions-share.js +98 -49
- 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 +13 -104
- package/dist/commands/sessions.js +11 -18
- package/dist/commands/setup-browser.js +18 -2
- package/dist/commands/setup-computer.js +20 -6
- package/dist/commands/setup-mine.d.ts +0 -6
- package/dist/commands/setup-mine.js +1 -1
- package/dist/commands/setup-secrets.js +24 -4
- package/dist/commands/setup-terminal.d.ts +3 -0
- package/dist/commands/setup-terminal.js +22 -0
- package/dist/commands/setup.d.ts +3 -4
- package/dist/commands/setup.js +21 -11
- package/dist/commands/skills.js +0 -8
- package/dist/commands/ssh.d.ts +6 -0
- package/dist/commands/ssh.js +92 -233
- package/dist/commands/sync.js +14 -5
- 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 +2 -2
- package/dist/commands/tmux.d.ts +1 -1
- package/dist/commands/tmux.js +1 -1
- package/dist/commands/traces.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/add.d.ts +0 -5
- package/dist/lib/accounts/add.js +1 -7
- 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/artifacts-client.d.ts +20 -0
- package/dist/lib/artifacts-client.js +46 -0
- 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 +7 -7
- 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 +59 -4
- package/dist/lib/browser/runtime-state.js +99 -18
- package/dist/lib/browser/service.d.ts +4 -4
- package/dist/lib/browser/service.js +21 -1
- 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 +4 -2
- 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/dispatch.js +1 -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/cloudflare/creds.d.ts +10 -0
- package/dist/lib/cloudflare/creds.js +46 -0
- package/dist/lib/cloudflare/provision.d.ts +35 -0
- package/dist/lib/cloudflare/provision.js +144 -0
- 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/sessions-list.d.ts +55 -0
- package/dist/lib/computer/sessions-list.js +168 -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 -4
- package/dist/lib/daemon/daemon.js +9 -2
- package/dist/lib/daemon/feed-stream-service.d.ts +23 -0
- package/dist/lib/daemon/feed-stream-service.js +40 -0
- 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-services.d.ts +3 -2
- package/dist/lib/daemon-services.js +5 -0
- 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 +51 -6
- package/dist/lib/devices/connect.js +169 -21
- 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 +2 -1
- 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 +1 -1
- 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 +2 -2
- package/dist/lib/feed/activity.d.ts +8 -33
- package/dist/lib/feed/activity.js +8 -8
- package/dist/lib/feed/answer.d.ts +3 -2
- package/dist/lib/feed/attention.js +5 -1
- package/dist/lib/feed/envelope.d.ts +79 -0
- package/dist/lib/feed/envelope.js +23 -0
- package/dist/lib/feed/events.d.ts +8 -47
- package/dist/lib/feed/events.js +9 -141
- package/dist/lib/feed/feed.d.ts +9 -42
- package/dist/lib/feed/feed.js +1 -60
- package/dist/lib/feed/hub-server.d.ts +86 -0
- package/dist/lib/feed/hub-server.js +334 -0
- package/dist/lib/feed/hub.d.ts +95 -0
- package/dist/lib/feed/hub.js +255 -0
- package/dist/lib/feed/pr-status.d.ts +0 -2
- package/dist/lib/feed/pr-status.js +1 -5
- package/dist/lib/feed/tool-activity.d.ts +108 -0
- package/dist/lib/feed/tool-activity.js +313 -0
- package/dist/lib/feed/tools.d.ts +198 -0
- package/dist/lib/feed/tools.js +265 -0
- package/dist/lib/feed/watch.d.ts +51 -52
- package/dist/lib/feed/watch.js +147 -17
- 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 +1 -1
- 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 +3 -2
- package/dist/lib/format.js +1 -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 -81
- package/dist/lib/git.js +2 -199
- 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 -24
- package/dist/lib/hosts/dispatch.js +2 -2
- 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 +55 -4
- package/dist/lib/hosts/remote-cmd.js +125 -8
- package/dist/lib/hosts/remote-cmd.test-fixture.d.ts +2 -0
- package/dist/lib/hosts/remote-cmd.test-fixture.js +22 -0
- 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/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/mcp.js +17 -11
- 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/probe.d.ts +4 -1
- package/dist/lib/probe.js +5 -2
- 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/pwsh.d.ts +33 -0
- package/dist/lib/pwsh.js +56 -0
- package/dist/lib/reconcile-and-repair.d.ts +5 -4
- package/dist/lib/redact.d.ts +15 -1
- package/dist/lib/redact.js +105 -3
- package/dist/lib/refresh-coordinator.d.ts +2 -1
- package/dist/lib/refresh.d.ts +9 -4
- package/dist/lib/refresh.js +92 -72
- 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-cli.d.ts +11 -0
- package/dist/lib/secrets-cli.js +30 -0
- package/dist/lib/secrets-client.d.ts +0 -17
- package/dist/lib/secrets-client.js +7 -28
- 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/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/detached.d.ts +9 -1
- package/dist/lib/session/detached.js +31 -2
- package/dist/lib/session/digest.d.ts +2 -2
- package/dist/lib/session/digest.js +1 -1
- 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 +2 -1
- 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/presence.d.ts +2 -1
- 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 +26 -7
- package/dist/lib/session/remote/peer-stream.js +35 -8
- 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 +2 -7
- package/dist/lib/session/remote/watch.js +3 -3
- 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 +2 -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 +8 -8
- package/dist/lib/session/sync/backend.js +3 -3
- 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/provision.d.ts +1 -1
- package/dist/lib/session/sync/provision.js +2 -2
- 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/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/sessions-client.js +0 -3
- package/dist/lib/settings-manifest.d.ts +2 -1
- package/dist/lib/setup-tool-install.d.ts +3 -0
- package/dist/lib/setup-tool-install.js +26 -0
- package/dist/lib/setup-tool-status.d.ts +22 -0
- package/dist/lib/setup-tool-status.js +215 -0
- package/dist/lib/share-runtime.d.ts +11 -0
- package/dist/lib/share-runtime.js +63 -0
- package/dist/lib/shim-heal.d.ts +1 -5
- package/dist/lib/shim-heal.js +0 -6
- package/dist/lib/smart-launch.d.ts +5 -10
- package/dist/lib/smart-launch.js +4 -12
- package/dist/lib/snapshot.d.ts +3 -2
- package/dist/lib/ssh-exec.d.ts +49 -4
- package/dist/lib/ssh-exec.js +119 -0
- 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.d.ts +6 -4
- package/dist/lib/startup/command-registry.js +11 -8
- package/dist/lib/state.d.ts +1 -3
- package/dist/lib/state.js +3 -6
- package/dist/lib/storage/selection.d.ts +2 -2
- package/dist/lib/storage/selection.js +2 -2
- 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 +9 -3
- package/dist/lib/sync-umbrella.js +18 -10
- 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/backend.d.ts +1 -2
- package/dist/lib/traces/backend.js +1 -2
- 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 +2 -4
- package/dist/lib/traces/provision.js +3 -3
- 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 +11 -9
- 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 +3 -5
- package/scripts/postinstall.js +5 -4
- package/dist/commands/artifacts-setup.d.ts +0 -53
- package/dist/commands/artifacts-setup.js +0 -161
- package/dist/commands/artifacts.d.ts +0 -18
- package/dist/commands/artifacts.js +0 -58
- package/dist/commands/attach.d.ts +0 -12
- package/dist/commands/attach.js +0 -86
- package/dist/commands/auth-mint.d.ts +0 -12
- package/dist/commands/auth-mint.js +0 -108
- package/dist/commands/pty.d.ts +0 -20
- package/dist/commands/pty.js +0 -404
- package/dist/commands/reconnect.d.ts +0 -46
- package/dist/commands/reconnect.js +0 -115
- package/dist/commands/share.d.ts +0 -293
- package/dist/commands/share.js +0 -1424
- 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
- package/dist/lib/share/analytics.d.ts +0 -13
- package/dist/lib/share/analytics.js +0 -45
- package/dist/lib/share/backend.d.ts +0 -120
- package/dist/lib/share/backend.js +0 -176
- package/dist/lib/share/capture.d.ts +0 -31
- package/dist/lib/share/capture.js +0 -174
- package/dist/lib/share/config.d.ts +0 -72
- package/dist/lib/share/config.js +0 -211
- package/dist/lib/share/delete.d.ts +0 -122
- package/dist/lib/share/delete.js +0 -173
- package/dist/lib/share/html.d.ts +0 -22
- package/dist/lib/share/html.js +0 -88
- package/dist/lib/share/http-error.d.ts +0 -52
- package/dist/lib/share/http-error.js +0 -65
- package/dist/lib/share/og.d.ts +0 -25
- package/dist/lib/share/og.js +0 -84
- package/dist/lib/share/provision.d.ts +0 -127
- package/dist/lib/share/provision.js +0 -285
- package/dist/lib/share/publish.d.ts +0 -388
- package/dist/lib/share/publish.js +0 -818
- package/dist/lib/share/worker-template.d.ts +0 -27
- package/dist/lib/share/worker-template.js +0 -2424
- package/dist/lib/storage/index.d.ts +0 -14
- package/dist/lib/storage/index.js +0 -14
- package/dist/lib/storage/visibility.d.ts +0 -82
- package/dist/lib/storage/visibility.js +0 -99
package/dist/lib/ssh-exec.d.ts
CHANGED
|
@@ -102,7 +102,7 @@ export declare function controlOpts(): string[];
|
|
|
102
102
|
* ignored. Pure so the ordering contract is unit-testable. See RUSH-1767.
|
|
103
103
|
*/
|
|
104
104
|
export declare function sshConnectOpts(mux: string[], hostKeyOpts?: string[]): string[];
|
|
105
|
-
|
|
105
|
+
interface SshExecOptions {
|
|
106
106
|
/** Piped to the remote command's stdin (never interpolated into the shell). */
|
|
107
107
|
input?: string;
|
|
108
108
|
/** Kill the ssh process after this many ms. */
|
|
@@ -146,7 +146,7 @@ export declare function sshExec(target: string, remoteCmd: string, opts?: SshExe
|
|
|
146
146
|
* down the remote side (RUSH-2114).
|
|
147
147
|
*/
|
|
148
148
|
export declare function sshExecAsync(target: string, remoteCmd: string, opts?: SshExecOptions): Promise<SshExecResult>;
|
|
149
|
-
|
|
149
|
+
interface SshExecRawResult {
|
|
150
150
|
code: number | null;
|
|
151
151
|
stdout: Buffer;
|
|
152
152
|
stderr: Buffer;
|
|
@@ -160,7 +160,7 @@ export interface SshExecRawResult {
|
|
|
160
160
|
* U+FFFD replacement char (which would desync a byte offset from the wire).
|
|
161
161
|
*/
|
|
162
162
|
export declare function sshExecRaw(target: string, remoteCmd: string, opts?: SshExecOptions): SshExecRawResult;
|
|
163
|
-
|
|
163
|
+
interface SshExecRawStreamOptions extends SshExecOptions {
|
|
164
164
|
onStdout: (chunk: Buffer) => void;
|
|
165
165
|
onStderr?: (chunk: Buffer) => void;
|
|
166
166
|
signal?: AbortSignal;
|
|
@@ -173,10 +173,54 @@ export interface SshExecRawStreamOptions extends SshExecOptions {
|
|
|
173
173
|
* offset-resumed log following where a UTF-8 decode boundary must not shift the
|
|
174
174
|
* byte cursor.
|
|
175
175
|
*/
|
|
176
|
+
/** Grace between SIGTERM and SIGKILL for a stream that will not stop. */
|
|
177
|
+
export declare const SSH_STREAM_KILL_GRACE_MS = 3000;
|
|
178
|
+
/** Bytes of a stream's stderr retained; the rest is dropped, with a note. */
|
|
179
|
+
export declare const SSH_STREAM_MAX_STDERR: number;
|
|
180
|
+
export interface SshStreamResult {
|
|
181
|
+
code: number | null;
|
|
182
|
+
stderr: Buffer;
|
|
183
|
+
timedOut: boolean;
|
|
184
|
+
/** True when the child had to be SIGKILLed after ignoring SIGTERM. */
|
|
185
|
+
killed: boolean;
|
|
186
|
+
/** True when stderr was truncated at {@link SSH_STREAM_MAX_STDERR}. */
|
|
187
|
+
stderrTruncated: boolean;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Stream one ssh command's stdout, with the args and env a CALLER built.
|
|
191
|
+
*
|
|
192
|
+
* This exists because {@link sshExecRawStream} assembles its own ssh args, which
|
|
193
|
+
* means it cannot carry a device's canonical auth — the askpass shim for a
|
|
194
|
+
* password-auth box, `-i`/`IdentitiesOnly` for an explicit identity file, or the
|
|
195
|
+
* managed known-hosts pinning. A caller that has already built those through
|
|
196
|
+
* `buildSshInvocation` needs a way to run them, and duplicating the transport to
|
|
197
|
+
* get it would be the worse answer. So this takes `args`/`env` verbatim and adds
|
|
198
|
+
* only the lifecycle guarantees:
|
|
199
|
+
*
|
|
200
|
+
* - **SIGTERM then SIGKILL.** A timeout or abort that only sends SIGTERM leaks a
|
|
201
|
+
* child that ignores it — ssh does, mid-handshake — and the promise never
|
|
202
|
+
* settles. After {@link SSH_STREAM_KILL_GRACE_MS} the child is SIGKILLed and
|
|
203
|
+
* `killed` says so.
|
|
204
|
+
* - **Bounded stderr.** A peer that writes endlessly to stderr would otherwise
|
|
205
|
+
* grow this buffer without limit; it is capped and `stderrTruncated` says so.
|
|
206
|
+
* - **`onStdout` cannot break the caller's cleanup.** A throw from the consumer
|
|
207
|
+
* is captured and re-thrown by the awaiting caller, so a write failure ends the
|
|
208
|
+
* transfer instead of escaping as an unhandled error inside a stream event.
|
|
209
|
+
*/
|
|
210
|
+
export declare function sshStreamWithArgs(opts: {
|
|
211
|
+
args: string[];
|
|
212
|
+
env?: Record<string, string>;
|
|
213
|
+
onStdout: (chunk: Buffer) => void;
|
|
214
|
+
timeoutMs?: number;
|
|
215
|
+
killGraceMs?: number;
|
|
216
|
+
maxStderrBytes?: number;
|
|
217
|
+
signal?: AbortSignal;
|
|
218
|
+
sshBin?: string;
|
|
219
|
+
}): Promise<SshStreamResult>;
|
|
176
220
|
export declare function sshExecRawStream(target: string, remoteCmd: string, opts: SshExecRawStreamOptions): Promise<Omit<SshExecRawResult, 'stdout'>>;
|
|
177
221
|
/** True if `target` is reachable over ssh (a passwordless `true` succeeds quickly). */
|
|
178
222
|
export declare function sshReachable(target: string, timeoutMs?: number): boolean;
|
|
179
|
-
|
|
223
|
+
interface SshStreamOptions {
|
|
180
224
|
/**
|
|
181
225
|
* Allocate a remote pseudo-terminal (`ssh -tt`) so an interactive remote
|
|
182
226
|
* command (a picker, a prompt) renders live on the local terminal. Callers
|
|
@@ -261,3 +305,4 @@ export declare function saveLocalTerminal(): string | undefined;
|
|
|
261
305
|
* mode resets.
|
|
262
306
|
*/
|
|
263
307
|
export declare function sshStream(target: string, remoteCmd: string, opts?: SshStreamOptions): number;
|
|
308
|
+
export {};
|
package/dist/lib/ssh-exec.js
CHANGED
|
@@ -317,6 +317,125 @@ export function sshExecRaw(target, remoteCmd, opts = {}) {
|
|
|
317
317
|
* offset-resumed log following where a UTF-8 decode boundary must not shift the
|
|
318
318
|
* byte cursor.
|
|
319
319
|
*/
|
|
320
|
+
/** Grace between SIGTERM and SIGKILL for a stream that will not stop. */
|
|
321
|
+
export const SSH_STREAM_KILL_GRACE_MS = 3_000;
|
|
322
|
+
/** Bytes of a stream's stderr retained; the rest is dropped, with a note. */
|
|
323
|
+
export const SSH_STREAM_MAX_STDERR = 8 * 1024;
|
|
324
|
+
/**
|
|
325
|
+
* Stream one ssh command's stdout, with the args and env a CALLER built.
|
|
326
|
+
*
|
|
327
|
+
* This exists because {@link sshExecRawStream} assembles its own ssh args, which
|
|
328
|
+
* means it cannot carry a device's canonical auth — the askpass shim for a
|
|
329
|
+
* password-auth box, `-i`/`IdentitiesOnly` for an explicit identity file, or the
|
|
330
|
+
* managed known-hosts pinning. A caller that has already built those through
|
|
331
|
+
* `buildSshInvocation` needs a way to run them, and duplicating the transport to
|
|
332
|
+
* get it would be the worse answer. So this takes `args`/`env` verbatim and adds
|
|
333
|
+
* only the lifecycle guarantees:
|
|
334
|
+
*
|
|
335
|
+
* - **SIGTERM then SIGKILL.** A timeout or abort that only sends SIGTERM leaks a
|
|
336
|
+
* child that ignores it — ssh does, mid-handshake — and the promise never
|
|
337
|
+
* settles. After {@link SSH_STREAM_KILL_GRACE_MS} the child is SIGKILLed and
|
|
338
|
+
* `killed` says so.
|
|
339
|
+
* - **Bounded stderr.** A peer that writes endlessly to stderr would otherwise
|
|
340
|
+
* grow this buffer without limit; it is capped and `stderrTruncated` says so.
|
|
341
|
+
* - **`onStdout` cannot break the caller's cleanup.** A throw from the consumer
|
|
342
|
+
* is captured and re-thrown by the awaiting caller, so a write failure ends the
|
|
343
|
+
* transfer instead of escaping as an unhandled error inside a stream event.
|
|
344
|
+
*/
|
|
345
|
+
export function sshStreamWithArgs(opts) {
|
|
346
|
+
const maxStderr = opts.maxStderrBytes ?? SSH_STREAM_MAX_STDERR;
|
|
347
|
+
const grace = opts.killGraceMs ?? SSH_STREAM_KILL_GRACE_MS;
|
|
348
|
+
return new Promise((resolve, reject) => {
|
|
349
|
+
const child = spawn(opts.sshBin ?? 'ssh', opts.args, {
|
|
350
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
351
|
+
env: opts.env ? { ...process.env, ...opts.env } : process.env,
|
|
352
|
+
windowsHide: true,
|
|
353
|
+
// Own process group on POSIX so a kill reaches the whole tree. Killing only
|
|
354
|
+
// the ssh pid is not enough: a descendant that inherited stdout keeps the
|
|
355
|
+
// pipe open, `'close'` never fires, and the promise hangs for as long as
|
|
356
|
+
// that grandchild lives — which defeats the timeout entirely.
|
|
357
|
+
detached: process.platform !== 'win32',
|
|
358
|
+
});
|
|
359
|
+
const stderr = [];
|
|
360
|
+
let stderrBytes = 0;
|
|
361
|
+
let stderrTruncated = false;
|
|
362
|
+
let timedOut = false;
|
|
363
|
+
let killed = false;
|
|
364
|
+
let consumerError;
|
|
365
|
+
let settled = false;
|
|
366
|
+
let killTimer;
|
|
367
|
+
/** Signal the whole group where the platform supports it, else just the child. */
|
|
368
|
+
const signal = (sig) => {
|
|
369
|
+
try {
|
|
370
|
+
if (process.platform !== 'win32' && child.pid)
|
|
371
|
+
process.kill(-child.pid, sig);
|
|
372
|
+
else
|
|
373
|
+
child.kill(sig);
|
|
374
|
+
}
|
|
375
|
+
catch { /* already gone */ }
|
|
376
|
+
};
|
|
377
|
+
const escalate = () => {
|
|
378
|
+
signal('SIGTERM');
|
|
379
|
+
// Escalation, not a second polite ask: a child still alive after the grace
|
|
380
|
+
// is one that is not going to honour SIGTERM.
|
|
381
|
+
killTimer = setTimeout(() => { killed = true; signal('SIGKILL'); }, grace);
|
|
382
|
+
killTimer.unref?.();
|
|
383
|
+
};
|
|
384
|
+
const stop = () => escalate();
|
|
385
|
+
const finish = (code) => {
|
|
386
|
+
if (settled)
|
|
387
|
+
return;
|
|
388
|
+
settled = true;
|
|
389
|
+
if (timer)
|
|
390
|
+
clearTimeout(timer);
|
|
391
|
+
if (killTimer)
|
|
392
|
+
clearTimeout(killTimer);
|
|
393
|
+
opts.signal?.removeEventListener('abort', stop);
|
|
394
|
+
if (consumerError !== undefined) {
|
|
395
|
+
reject(consumerError);
|
|
396
|
+
return;
|
|
397
|
+
}
|
|
398
|
+
resolve({ code, stderr: Buffer.concat(stderr), timedOut, killed, stderrTruncated });
|
|
399
|
+
};
|
|
400
|
+
const timer = opts.timeoutMs
|
|
401
|
+
? setTimeout(() => { timedOut = true; escalate(); }, opts.timeoutMs)
|
|
402
|
+
: null;
|
|
403
|
+
child.stdout.on('data', (chunk) => {
|
|
404
|
+
if (consumerError !== undefined)
|
|
405
|
+
return;
|
|
406
|
+
try {
|
|
407
|
+
opts.onStdout(chunk);
|
|
408
|
+
}
|
|
409
|
+
catch (error) {
|
|
410
|
+
// Captured, not thrown: a throw here would surface as an unhandled error
|
|
411
|
+
// on the stream and skip the caller's cleanup entirely.
|
|
412
|
+
consumerError = error;
|
|
413
|
+
escalate();
|
|
414
|
+
}
|
|
415
|
+
});
|
|
416
|
+
child.stderr.on('data', (chunk) => {
|
|
417
|
+
const room = maxStderr - stderrBytes;
|
|
418
|
+
if (room <= 0) {
|
|
419
|
+
stderrTruncated = true;
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
422
|
+
if (chunk.length > room) {
|
|
423
|
+
stderrTruncated = true;
|
|
424
|
+
stderr.push(chunk.subarray(0, room));
|
|
425
|
+
stderrBytes = maxStderr;
|
|
426
|
+
return;
|
|
427
|
+
}
|
|
428
|
+
stderr.push(chunk);
|
|
429
|
+
stderrBytes += chunk.length;
|
|
430
|
+
});
|
|
431
|
+
child.once('error', () => finish(null));
|
|
432
|
+
child.once('close', finish);
|
|
433
|
+
if (opts.signal?.aborted)
|
|
434
|
+
escalate();
|
|
435
|
+
else
|
|
436
|
+
opts.signal?.addEventListener('abort', stop, { once: true });
|
|
437
|
+
});
|
|
438
|
+
}
|
|
320
439
|
export function sshExecRawStream(target, remoteCmd, opts) {
|
|
321
440
|
assertValidSshTarget(target);
|
|
322
441
|
const mux = opts.multiplex === false ? [] : controlOpts();
|
package/dist/lib/ssh-tunnel.d.ts
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
*/
|
|
20
20
|
import { type ChildProcess } from 'child_process';
|
|
21
21
|
import { type DeviceProfile } from './devices/registry.js';
|
|
22
|
-
|
|
22
|
+
interface StartTunnelOptions {
|
|
23
23
|
extraSshArgs?: string[];
|
|
24
24
|
}
|
|
25
25
|
/** Build the ssh argv (after the `ssh` program name) for an `-L` tunnel. Pure.
|
|
@@ -37,7 +37,7 @@ export declare function buildTunnelArgs(user: string, host: string, localPort: n
|
|
|
37
37
|
*/
|
|
38
38
|
export declare function startSSHTunnel(user: string, host: string, localPort: number, remotePort: number, opts?: StartTunnelOptions): Promise<ChildProcess>;
|
|
39
39
|
/** One registered device, resolved to everything an ssh invocation needs. */
|
|
40
|
-
|
|
40
|
+
interface ResolvedRemoteDevice {
|
|
41
41
|
device: DeviceProfile;
|
|
42
42
|
target: string;
|
|
43
43
|
user: string;
|
|
@@ -59,3 +59,4 @@ export declare function resolveRemoteDevice(name: string, opts?: {
|
|
|
59
59
|
expectPlatform?: DeviceProfile['platform'];
|
|
60
60
|
forWhat?: string;
|
|
61
61
|
}): Promise<ResolvedRemoteDevice>;
|
|
62
|
+
export {};
|
|
@@ -9,8 +9,6 @@
|
|
|
9
9
|
* counts as stale.
|
|
10
10
|
*/
|
|
11
11
|
import type { PermEntry } from '../types.js';
|
|
12
|
-
/** Walk user + system permissions/groups/. First-wins user > system on names. */
|
|
13
|
-
export declare function collectPermissionGroupFiles(): Record<string, string>;
|
|
14
12
|
/** Build the permissions section of the manifest. */
|
|
15
13
|
export declare function buildPermissions(): PermEntry;
|
|
16
14
|
/** True when the stored permissions section no longer matches current state. */
|
|
@@ -14,7 +14,7 @@ import { getUserPermissionsDir, getPermissionsDir } from '../../state.js';
|
|
|
14
14
|
import { fingerprintFile, isFileStale } from '../fingerprint.js';
|
|
15
15
|
import { getActivePermissionPresetName } from '../../permissions.js';
|
|
16
16
|
/** Walk user + system permissions/groups/. First-wins user > system on names. */
|
|
17
|
-
|
|
17
|
+
function collectPermissionGroupFiles() {
|
|
18
18
|
const seen = new Map();
|
|
19
19
|
for (const baseDir of [getUserPermissionsDir(), getPermissionsDir()]) {
|
|
20
20
|
const groupsDir = path.join(baseDir, 'groups');
|
|
@@ -27,12 +27,5 @@ export declare function isFileStale(stored: Fingerprint, currentPath: string): b
|
|
|
27
27
|
* sha256 only on stat mismatch.
|
|
28
28
|
*/
|
|
29
29
|
export declare function isDirStale(storedDirPath: string, storedFiles: Fingerprint[], currentDirPath: string): boolean;
|
|
30
|
-
/**
|
|
31
|
-
* Walk a directory and return sorted absolute paths of every regular file.
|
|
32
|
-
* No content reads. Uses the same FINGERPRINT_SKIP allowlist as
|
|
33
|
-
* `fingerprintDir` so both produce the same path set (required for the
|
|
34
|
-
* dir-stale path comparison to work).
|
|
35
|
-
*/
|
|
36
|
-
export declare function walkDirPaths(dirPath: string): string[];
|
|
37
30
|
/** True if two sorted-or-unsorted name sets differ. */
|
|
38
31
|
export declare function nameSetDiffers(a: string[], b: string[]): boolean;
|
|
@@ -120,7 +120,7 @@ export function isDirStale(storedDirPath, storedFiles, currentDirPath) {
|
|
|
120
120
|
* `fingerprintDir` so both produce the same path set (required for the
|
|
121
121
|
* dir-stale path comparison to work).
|
|
122
122
|
*/
|
|
123
|
-
|
|
123
|
+
function walkDirPaths(dirPath) {
|
|
124
124
|
const results = [];
|
|
125
125
|
function walk(dir) {
|
|
126
126
|
let entries;
|
|
@@ -55,7 +55,7 @@ import type { SyncManifest } from './types.js';
|
|
|
55
55
|
*/
|
|
56
56
|
export declare const PRUNABLE_KINDS: readonly ["commands", "skills"];
|
|
57
57
|
export type PrunableKind = typeof PRUNABLE_KINDS[number];
|
|
58
|
-
|
|
58
|
+
interface PruneInput {
|
|
59
59
|
agent: AgentId;
|
|
60
60
|
version: string;
|
|
61
61
|
versionHome: string;
|
|
@@ -71,7 +71,7 @@ export interface PruneInput {
|
|
|
71
71
|
*/
|
|
72
72
|
sourceNames: Record<PrunableKind, ReadonlyArray<string>>;
|
|
73
73
|
}
|
|
74
|
-
|
|
74
|
+
interface PruneOutcome {
|
|
75
75
|
/** Names actually removed from the version home, per kind. */
|
|
76
76
|
pruned: Record<PrunableKind, string[]>;
|
|
77
77
|
/**
|
|
@@ -86,3 +86,4 @@ export interface PruneOutcome {
|
|
|
86
86
|
* source, from one agent@version home. Deletes nothing when no manifest exists.
|
|
87
87
|
*/
|
|
88
88
|
export declare function pruneRemovedResources(input: PruneInput): PruneOutcome;
|
|
89
|
+
export {};
|
|
@@ -9,7 +9,7 @@ export type { ResourceWriter, WriteArgs, WriteResult, RemoveArgs, RemoveResult }
|
|
|
9
9
|
export type { ResourceDetector, DetectArgs } from './detectors/types.js';
|
|
10
10
|
export type { RulesSelection } from './writers/rules.js';
|
|
11
11
|
/** Per-kind selection payload. Most kinds are string[]; rules is special. */
|
|
12
|
-
|
|
12
|
+
type SelectionFor<K extends ResourceKind> = K extends 'rules' ? RulesSelection : string[];
|
|
13
13
|
export declare const WRITERS: Record<ResourceKind, Partial<Record<AgentId, ResourceWriter<any>>>>;
|
|
14
14
|
export declare const DETECTORS: Record<ResourceKind, Partial<Record<AgentId, ResourceDetector>>>;
|
|
15
15
|
/**
|
|
@@ -1,12 +1,4 @@
|
|
|
1
1
|
import type { AgentId } from '../../types.js';
|
|
2
|
-
export type EnabledExtra = {
|
|
3
|
-
alias: string;
|
|
4
|
-
dir: string;
|
|
5
|
-
};
|
|
6
|
-
/** Trusted source bases for content-like kinds. Project layer excluded. */
|
|
7
|
-
export declare function trustedSourceBases(): {
|
|
8
|
-
dir: string;
|
|
9
|
-
}[];
|
|
10
2
|
/** Every `plugins/<plugin>/skills` dir across trusted source bases, filtered to an optional plugin/agent scope. */
|
|
11
3
|
export declare function pluginSkillDirs(options?: {
|
|
12
4
|
agent?: AgentId;
|
|
@@ -12,7 +12,7 @@ import * as path from 'path';
|
|
|
12
12
|
import { getUserAgentsDir, getAgentsDir, getEnabledExtraRepos, getCommandsDir, getSkillsDir, getHooksDir } from '../../state.js';
|
|
13
13
|
import { isSafeSegmentName, safeJoin } from '../../paths.js';
|
|
14
14
|
/** Trusted source bases for content-like kinds. Project layer excluded. */
|
|
15
|
-
|
|
15
|
+
function trustedSourceBases() {
|
|
16
16
|
return [
|
|
17
17
|
{ dir: getUserAgentsDir() },
|
|
18
18
|
{ dir: getAgentsDir() },
|
|
@@ -17,15 +17,17 @@ export declare const KNOWN_TOP_LEVEL_COMMANDS: ReadonlySet<string>;
|
|
|
17
17
|
* name is gone, the spellchecker finds a neighbour, and the CLI runs something
|
|
18
18
|
* the user never asked for instead of saying the command is gone.
|
|
19
19
|
*
|
|
20
|
-
* `set` moved under `agents models`/`agents config` (RUSH-2579); `share
|
|
21
|
-
*
|
|
20
|
+
* `set` moved under `agents models`/`agents config` (RUSH-2579); `share`,
|
|
21
|
+
* `unshare`, and the whole `artifacts` group moved OUT to the standalone
|
|
22
|
+
* `artifacts` CLI (`@phnx-labs/artifacts-cli`, PHNX-3992) — artifact sharing is
|
|
23
|
+
* no longer an agents-cli surface at all. login/logout/budget/bench/mine/
|
|
22
24
|
* cost/output/profiles/snapshot/cp/resume/roster moved under nested homes
|
|
23
25
|
* (cli-surface-consolidate). `timeline` was removed as a duplicated surface —
|
|
24
26
|
* use `agents feed --filter updates` (RUSH-2692). `status` moved under
|
|
25
27
|
* `agents sync status` (RUSH-2864). `tickets` was removed — use `linear`
|
|
26
28
|
* (linear-cli) (RUSH-2932). `alias` moved under `agents setup alias` (RUSH-2965).
|
|
27
|
-
* `inbox` was a pure alias of `agents feed` (RUSH-2984). `
|
|
28
|
-
* `agents
|
|
29
|
+
* `inbox` was a pure alias of `agents feed` (RUSH-2984). `audit` nested under
|
|
30
|
+
* `agents events audit`.
|
|
29
31
|
* `trends` was removed with the insights recipe collapse — the one counter
|
|
30
32
|
* surface is `agents insights mix` (PHNX-3391). `serve` (the
|
|
31
33
|
* read-only local web companion + `--control` anchor) was removed with the
|
|
@@ -2,14 +2,14 @@ const LOADED_COMMAND_NAMES = [
|
|
|
2
2
|
'accounts', 'auth', 'view', 'inspect', 'feedback', 'commands', 'hooks', 'skills', 'rules', 'memory',
|
|
3
3
|
'permissions', 'mcp', 'clis', 'subagents', 'plugins', 'workflows', 'add', 'use',
|
|
4
4
|
'remove', 'rm', 'purge', 'update', 'prune', 'import', 'registry', 'search', 'install', 'packages',
|
|
5
|
-
'routines', 'monitors', 'projects', 'run', '_callback', 'open', '
|
|
5
|
+
'routines', 'monitors', 'projects', 'run', '_callback', 'open', 'fork', 'config',
|
|
6
6
|
'models', 'modes', 'trash', 'restore', 'doctor',
|
|
7
7
|
'route', 'routes', 'harness', 'harnesses', 'secrets', 'menubar', 'sync',
|
|
8
8
|
'refresh-rules', 'factory', 'insights', 'trace', 'reminders',
|
|
9
|
-
'
|
|
9
|
+
'tmux', 'watchdog', 'browser', 'computer', 'logs', 'events',
|
|
10
10
|
'ssh', 'devices', 'fleet', 'repos', 'repo', 'setup', 'uninstall', 'upgrade', 'sessions',
|
|
11
|
-
'teams', 'cloud', 'message', 'send', '
|
|
12
|
-
'mailboxes', 'mailbox', '
|
|
11
|
+
'teams', 'cloud', 'message', 'send', 'feed',
|
|
12
|
+
'mailboxes', 'mailbox', 'webhooks',
|
|
13
13
|
'humans', 'daemon', 'traces',
|
|
14
14
|
];
|
|
15
15
|
const INLINE_COMMAND_NAMES = [
|
|
@@ -37,15 +37,17 @@ export const KNOWN_TOP_LEVEL_COMMANDS = new Set([
|
|
|
37
37
|
* name is gone, the spellchecker finds a neighbour, and the CLI runs something
|
|
38
38
|
* the user never asked for instead of saying the command is gone.
|
|
39
39
|
*
|
|
40
|
-
* `set` moved under `agents models`/`agents config` (RUSH-2579); `share
|
|
41
|
-
*
|
|
40
|
+
* `set` moved under `agents models`/`agents config` (RUSH-2579); `share`,
|
|
41
|
+
* `unshare`, and the whole `artifacts` group moved OUT to the standalone
|
|
42
|
+
* `artifacts` CLI (`@phnx-labs/artifacts-cli`, PHNX-3992) — artifact sharing is
|
|
43
|
+
* no longer an agents-cli surface at all. login/logout/budget/bench/mine/
|
|
42
44
|
* cost/output/profiles/snapshot/cp/resume/roster moved under nested homes
|
|
43
45
|
* (cli-surface-consolidate). `timeline` was removed as a duplicated surface —
|
|
44
46
|
* use `agents feed --filter updates` (RUSH-2692). `status` moved under
|
|
45
47
|
* `agents sync status` (RUSH-2864). `tickets` was removed — use `linear`
|
|
46
48
|
* (linear-cli) (RUSH-2932). `alias` moved under `agents setup alias` (RUSH-2965).
|
|
47
|
-
* `inbox` was a pure alias of `agents feed` (RUSH-2984). `
|
|
48
|
-
* `agents
|
|
49
|
+
* `inbox` was a pure alias of `agents feed` (RUSH-2984). `audit` nested under
|
|
50
|
+
* `agents events audit`.
|
|
49
51
|
* `trends` was removed with the insights recipe collapse — the one counter
|
|
50
52
|
* surface is `agents insights mix` (PHNX-3391). `serve` (the
|
|
51
53
|
* read-only local web companion + `--control` anchor) was removed with the
|
|
@@ -81,6 +83,7 @@ export const RETIRED_TOP_LEVEL_COMMANDS = new Set([
|
|
|
81
83
|
'roster',
|
|
82
84
|
'set',
|
|
83
85
|
'share',
|
|
86
|
+
'artifacts',
|
|
84
87
|
'timeline',
|
|
85
88
|
'status',
|
|
86
89
|
'tickets',
|
package/dist/lib/state.d.ts
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* teams/agents, trash, backups). Backed up by
|
|
13
13
|
* `agents repo push`.
|
|
14
14
|
* ~/.agents/.cache/ — regenerable runtime data (shims, packages, helpers
|
|
15
|
-
* for daemon
|
|
15
|
+
* for daemon, terminals, cloud, drive, browser
|
|
16
16
|
* chrome-data, logs, companion). Gitignored.
|
|
17
17
|
*
|
|
18
18
|
* Resolution precedence for resources: project > user > system.
|
|
@@ -350,8 +350,6 @@ export declare function getHelpersDir(): string;
|
|
|
350
350
|
* the daemon module is exercised. Never set in production code.
|
|
351
351
|
*/
|
|
352
352
|
export declare function getDaemonDir(): string;
|
|
353
|
-
/** Path to PTY server scratch (~/.agents/.cache/helpers/pty/). */
|
|
354
|
-
export declare function getPtyDir(): string;
|
|
355
353
|
/** Path to tmux scratch (~/.agents/.cache/helpers/tmux/) — shared server socket + per-session meta JSONs. */
|
|
356
354
|
export declare function getTmuxDir(): string;
|
|
357
355
|
/** Path to remote-resource auto-pull cache (~/.agents/.cache/.fetch/). */
|
package/dist/lib/state.js
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* teams/agents, trash, backups). Backed up by
|
|
13
13
|
* `agents repo push`.
|
|
14
14
|
* ~/.agents/.cache/ — regenerable runtime data (shims, packages, helpers
|
|
15
|
-
* for daemon
|
|
15
|
+
* for daemon, terminals, cloud, drive, browser
|
|
16
16
|
* chrome-data, logs, companion). Gitignored.
|
|
17
17
|
*
|
|
18
18
|
* Resolution precedence for resources: project > user > system.
|
|
@@ -141,7 +141,6 @@ const COMPANION_CACHE_DIR = path.join(CACHE_DIR, 'companion');
|
|
|
141
141
|
const BROWSER_RUNTIME_DIR = path.join(CACHE_DIR, 'browser');
|
|
142
142
|
const HELPERS_DIR = path.join(CACHE_DIR, 'helpers');
|
|
143
143
|
const DAEMON_DIR = path.join(HELPERS_DIR, 'daemon');
|
|
144
|
-
const PTY_DIR = path.join(HELPERS_DIR, 'pty');
|
|
145
144
|
const TMUX_DIR = path.join(HELPERS_DIR, 'tmux');
|
|
146
145
|
const FETCH_CACHE_DIR = path.join(CACHE_DIR, '.fetch');
|
|
147
146
|
const CLI_VERSION_CACHE_FILE = path.join(CACHE_DIR, '.cli-version-cache.json');
|
|
@@ -216,8 +215,8 @@ export function getOptionalUserAgentsDir() {
|
|
|
216
215
|
* Origin `owner/repo` slug (lowercased, `.git` stripped) of a git checkout, or
|
|
217
216
|
* null when `dir` isn't a git repo / has no origin. Extracts the slug from any
|
|
218
217
|
* remote URL form: `git@host:owner/repo.git`, `https://host/owner/repo.git`,
|
|
219
|
-
* `ssh://git@host/owner/repo`. Sync (
|
|
220
|
-
* can be used from the synchronous getProjectAgentsDir walk.
|
|
218
|
+
* `ssh://git@host/owner/repo`. Sync (uses `execFileSync`, not the async git
|
|
219
|
+
* helpers) so it can be used from the synchronous getProjectAgentsDir walk.
|
|
221
220
|
*/
|
|
222
221
|
function gitOriginSlug(dir) {
|
|
223
222
|
let url;
|
|
@@ -673,8 +672,6 @@ export function getHelpersDir() { return HELPERS_DIR; }
|
|
|
673
672
|
* the daemon module is exercised. Never set in production code.
|
|
674
673
|
*/
|
|
675
674
|
export function getDaemonDir() { return process.env.AGENTS_DAEMON_DIR ?? DAEMON_DIR; }
|
|
676
|
-
/** Path to PTY server scratch (~/.agents/.cache/helpers/pty/). */
|
|
677
|
-
export function getPtyDir() { return PTY_DIR; }
|
|
678
675
|
/** Path to tmux scratch (~/.agents/.cache/helpers/tmux/) — shared server socket + per-session meta JSONs. */
|
|
679
676
|
export function getTmuxDir() { return TMUX_DIR; }
|
|
680
677
|
/** Path to remote-resource auto-pull cache (~/.agents/.cache/.fetch/). */
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
* covers — those differ (share uses an email-handle namespace with public reads
|
|
14
14
|
* and covers; a traces/sessions adapter uses the userId and differs again). Each
|
|
15
15
|
* surface keeps its own DISCRIMINATED, typed adapter that reads this decision and
|
|
16
|
-
* returns its own `kind`-tagged backend. See `lib/
|
|
17
|
-
*
|
|
16
|
+
* returns its own `kind`-tagged backend. See `lib/traces/backend.ts` for a
|
|
17
|
+
* concrete adapter.
|
|
18
18
|
*/
|
|
19
19
|
import { type PhoenixSession } from '../identity/client.js';
|
|
20
20
|
/** The two legitimate principals any managed-capable surface can resolve to. */
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
* covers — those differ (share uses an email-handle namespace with public reads
|
|
14
14
|
* and covers; a traces/sessions adapter uses the userId and differs again). Each
|
|
15
15
|
* surface keeps its own DISCRIMINATED, typed adapter that reads this decision and
|
|
16
|
-
* returns its own `kind`-tagged backend. See `lib/
|
|
17
|
-
*
|
|
16
|
+
* returns its own `kind`-tagged backend. See `lib/traces/backend.ts` for a
|
|
17
|
+
* concrete adapter.
|
|
18
18
|
*/
|
|
19
19
|
import { readSession } from '../identity/client.js';
|
|
20
20
|
/**
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { AgentId, InstalledSubagent, SubagentFrontmatter } from './types.js';
|
|
2
2
|
/** A path an installed subagent occupies, tagged for removal/trash handling. */
|
|
3
|
-
|
|
3
|
+
interface OccupiedEntry {
|
|
4
4
|
path: string;
|
|
5
5
|
kind: 'file' | 'dir';
|
|
6
6
|
}
|
|
7
7
|
/** Parsed metadata for one installed subagent (drives the rich listing). */
|
|
8
|
-
|
|
8
|
+
interface SubagentMeta {
|
|
9
9
|
frontmatter: SubagentFrontmatter;
|
|
10
10
|
files: string[];
|
|
11
11
|
/** Primary on-disk path for the listing's `path` field (a file or a dir, per layout). */
|
|
@@ -15,7 +15,7 @@ export interface SubagentMeta {
|
|
|
15
15
|
* The complete on-disk contract for one agent's subagents. Every operation is
|
|
16
16
|
* expressed here so the engine below never branches on the agent id.
|
|
17
17
|
*/
|
|
18
|
-
|
|
18
|
+
interface SubagentTarget {
|
|
19
19
|
/** Absolute container dir under a home root (a version home or an agent home). */
|
|
20
20
|
dir(home: string): string;
|
|
21
21
|
/** Materialize central subagent `sub` into container `dir`. Throws on fs error. */
|
|
@@ -96,3 +96,4 @@ export declare function trashSubagentFromHome(agent: AgentId, home: string, name
|
|
|
96
96
|
success: boolean;
|
|
97
97
|
error?: string;
|
|
98
98
|
};
|
|
99
|
+
export {};
|
package/dist/lib/subagents.d.ts
CHANGED
|
@@ -151,7 +151,7 @@ export declare function subagentContentMatches(installedDir: string, sourceDir:
|
|
|
151
151
|
* enumerator so a new agent needs no arm here -- just a registry entry.
|
|
152
152
|
*/
|
|
153
153
|
export declare function listSubagentsForAgent(agentId: AgentId, home: string): InstalledSubagent[];
|
|
154
|
-
|
|
154
|
+
interface VersionSubagentDiff {
|
|
155
155
|
agent: AgentId;
|
|
156
156
|
version: string;
|
|
157
157
|
orphans: string[];
|
|
@@ -179,3 +179,4 @@ export declare function removeSubagentFromVersion(agent: AgentId, version: strin
|
|
|
179
179
|
success: boolean;
|
|
180
180
|
error?: string;
|
|
181
181
|
};
|
|
182
|
+
export {};
|
package/dist/lib/subagents.js
CHANGED
|
@@ -377,8 +377,9 @@ export function transformSubagentForCodex(subagentDir) {
|
|
|
377
377
|
throw new Error(`Invalid AGENT.md in ${subagentDir}`);
|
|
378
378
|
}
|
|
379
379
|
const instructions = flattenSubagentInstructions(subagentDir);
|
|
380
|
-
//
|
|
381
|
-
|
|
380
|
+
// TOML multi-line basic strings still process backslash escapes, so a literal
|
|
381
|
+
// backslash (a Windows path, a regex) must be doubled before """ is escaped.
|
|
382
|
+
const safeInstructions = instructions.replace(/\\/g, '\\\\').replace(/"""/g, '\\"""');
|
|
382
383
|
const safeName = frontmatter.name.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
|
|
383
384
|
const safeDesc = frontmatter.description.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
|
|
384
385
|
let toml = `name = "${safeName}"\n`;
|
|
@@ -13,11 +13,7 @@
|
|
|
13
13
|
import type { ActiveSession } from '../session/active.js';
|
|
14
14
|
import { type SummarizerConfig } from './config.js';
|
|
15
15
|
import { summarize as defaultSummarize } from './summarize.js';
|
|
16
|
-
|
|
17
|
-
export declare const SUMMARIZER_MAX_PER_TICK = 8;
|
|
18
|
-
/** Narration headlines handed to the model per session — the recent tail, not the history. */
|
|
19
|
-
export declare const SUMMARIZER_STEP_INPUT = 12;
|
|
20
|
-
export interface SummarizerPassOptions {
|
|
16
|
+
interface SummarizerPassOptions {
|
|
21
17
|
now?: number;
|
|
22
18
|
config?: SummarizerConfig;
|
|
23
19
|
/** Live sessions to consider; default = this box's warm local-session cache. */
|
|
@@ -34,7 +30,7 @@ export interface SummarizerPassOptions {
|
|
|
34
30
|
/** Skip the reader-recency gate (tests pass sessions directly). */
|
|
35
31
|
requireReader?: boolean;
|
|
36
32
|
}
|
|
37
|
-
|
|
33
|
+
interface SummarizerPassResult {
|
|
38
34
|
disabled: boolean;
|
|
39
35
|
computed: number;
|
|
40
36
|
reused: number;
|
|
@@ -45,3 +41,4 @@ export interface SummarizerPassResult {
|
|
|
45
41
|
* is isolated so one bad transcript can't stall the whole tick.
|
|
46
42
|
*/
|
|
47
43
|
export declare function runSummarizerPass(opts?: SummarizerPassOptions): Promise<SummarizerPassResult>;
|
|
44
|
+
export {};
|
|
@@ -16,9 +16,9 @@ import { isActiveSessionsJournalReaderRecent, readActiveSessionsCache, } from '.
|
|
|
16
16
|
import { resolveSummarizerConfig, isSummarizerRunnable } from './config.js';
|
|
17
17
|
import { summarize as defaultSummarize } from './summarize.js';
|
|
18
18
|
/** Max sessions summarized per tick — a debounce ceiling on local-model calls. */
|
|
19
|
-
|
|
19
|
+
const SUMMARIZER_MAX_PER_TICK = 8;
|
|
20
20
|
/** Narration headlines handed to the model per session — the recent tail, not the history. */
|
|
21
|
-
|
|
21
|
+
const SUMMARIZER_STEP_INPUT = 12;
|
|
22
22
|
/**
|
|
23
23
|
* Merge model checkpoint TEXTS with any prior stored checkpoints so a line that
|
|
24
24
|
* already existed keeps its original `at`, and only genuinely new lines get
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import type { TodoProgress } from '../session/types.js';
|
|
15
15
|
/** Live progress fed to the model alongside the goal-bearing prompt. */
|
|
16
|
-
|
|
16
|
+
interface SummarizeProgress {
|
|
17
17
|
/** Latest checklist write (TodoWrite / update_plan), when the session has one. */
|
|
18
18
|
todos?: TodoProgress;
|
|
19
19
|
/** Plan markdown from the last ExitPlanMode, when present. */
|
|
@@ -29,7 +29,7 @@ export interface SummarizeProgress {
|
|
|
29
29
|
steps?: string[];
|
|
30
30
|
}
|
|
31
31
|
/** The validated model output. `at` timestamps are stamped by the caller. */
|
|
32
|
-
|
|
32
|
+
interface SummarizeResult {
|
|
33
33
|
goal: string;
|
|
34
34
|
/** Progress checkpoints, newest last (short lines). */
|
|
35
35
|
checkpoints: string[];
|
|
@@ -39,7 +39,7 @@ export interface SummarizeResult {
|
|
|
39
39
|
done: boolean;
|
|
40
40
|
}[];
|
|
41
41
|
}
|
|
42
|
-
|
|
42
|
+
interface SummarizeOptions {
|
|
43
43
|
baseUrl: string;
|
|
44
44
|
model: string;
|
|
45
45
|
maxTokens?: number;
|
|
@@ -73,3 +73,4 @@ export declare function extractJsonObject(text: string): string | undefined;
|
|
|
73
73
|
* failure (the caller then marks the session `summaryState: 'skipped'`).
|
|
74
74
|
*/
|
|
75
75
|
export declare function summarize(prompt: string, progress: SummarizeProgress, opts: SummarizeOptions): Promise<SummarizeResult | undefined>;
|
|
76
|
+
export {};
|
|
@@ -5,8 +5,8 @@ export declare const LEGACY_PASSPHRASE_ENV = "AGENTS_SECRETS_PASSPHRASE";
|
|
|
5
5
|
/** Reset the one-shot warning latches. Tests only — production never re-warns. */
|
|
6
6
|
export declare function resetSyncPassphraseWarnings(): void;
|
|
7
7
|
/** Where a resolved sync passphrase came from, so callers can report honestly. */
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
type SyncPassphraseSource = 'sync-env' | 'legacy-env' | null;
|
|
9
|
+
interface ResolvedSyncPassphrase {
|
|
10
10
|
value: string | null;
|
|
11
11
|
source: SyncPassphraseSource;
|
|
12
12
|
}
|
|
@@ -25,3 +25,4 @@ export declare function resolveSyncPassphraseFromEnv(): ResolvedSyncPassphrase;
|
|
|
25
25
|
export declare function warnEnvPassphraseReadableOnce(): void;
|
|
26
26
|
/** The message a headless caller shows when no passphrase is available. */
|
|
27
27
|
export declare function missingSyncPassphraseMessage(): string;
|
|
28
|
+
export {};
|