@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
|
@@ -92,6 +92,11 @@ export const DAEMON_SERVICES = [
|
|
|
92
92
|
title: 'Live session state',
|
|
93
93
|
description: 'Publishes this host\'s active session metadata for sessions watch and fleet consumers.',
|
|
94
94
|
},
|
|
95
|
+
{
|
|
96
|
+
id: 'feed-stream',
|
|
97
|
+
title: 'Shared feed stream',
|
|
98
|
+
description: 'Owns the one fleet feed fan-out and serves it to every reader over a socket, so N consumers cost one ssh per peer instead of N.',
|
|
99
|
+
},
|
|
95
100
|
{
|
|
96
101
|
id: 'session-index',
|
|
97
102
|
title: 'Session-index warm',
|
|
@@ -35,7 +35,7 @@ export interface HostedReceiverConfig {
|
|
|
35
35
|
/** Public Funnel exposure; omit to bind localhost only. */
|
|
36
36
|
funnel?: HostedReceiverFunnel;
|
|
37
37
|
}
|
|
38
|
-
|
|
38
|
+
interface DaemonWebhooksConfig {
|
|
39
39
|
receivers: HostedReceiverConfig[];
|
|
40
40
|
}
|
|
41
41
|
/** Path to `~/.agents/daemon/webhooks.yaml`. */
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export declare const AGENTS_URL_SCHEME = "agents";
|
|
2
|
-
|
|
3
|
-
export interface SchemeStatus {
|
|
2
|
+
interface SchemeStatus {
|
|
4
3
|
registered: boolean;
|
|
5
4
|
platform: NodeJS.Platform;
|
|
6
5
|
/** One human line: where the handler is, or why it is not registered. */
|
|
@@ -11,15 +10,6 @@ export interface SchemeStatus {
|
|
|
11
10
|
* out of the handler command.
|
|
12
11
|
*/
|
|
13
12
|
export declare function shQuote(p: string): string;
|
|
14
|
-
/**
|
|
15
|
-
* Resolve how the OS handler should invoke this CLI, as an already-quoted
|
|
16
|
-
* command prefix (without the `open <url>` suffix).
|
|
17
|
-
*
|
|
18
|
-
* A macOS GUI app does NOT inherit the shell PATH, so the handler must use an
|
|
19
|
-
* absolute path. Prefer the `agents` shim on PATH (directly executable); fall
|
|
20
|
-
* back to `<node> <entry>` for a bare JS install.
|
|
21
|
-
*/
|
|
22
|
-
export declare function resolveAgentsInvocation(platform?: NodeJS.Platform): string;
|
|
23
13
|
/** The freedesktop `.desktop` entry that claims `x-scheme-handler/agents`. */
|
|
24
14
|
export declare function linuxDesktopEntry(invocation: string): string;
|
|
25
15
|
/**
|
|
@@ -33,10 +23,9 @@ export declare function macPlistBuddyCommands(plistPath: string): string[][];
|
|
|
33
23
|
/** `reg add` argv lists that register the scheme under HKCU on Windows. */
|
|
34
24
|
export declare function windowsRegistryCommands(invocation: string): string[][];
|
|
35
25
|
export declare function linuxDesktopPath(home?: string): string;
|
|
36
|
-
export declare function macAppPath(home?: string): string;
|
|
37
26
|
/** Whether the handler artifact exists on disk (a cheap, side-effect-free check). */
|
|
38
27
|
export declare function agentsUrlSchemeStatus(platform?: NodeJS.Platform, home?: string): SchemeStatus;
|
|
39
|
-
|
|
28
|
+
interface RegisterOptions {
|
|
40
29
|
platform?: NodeJS.Platform;
|
|
41
30
|
home?: string;
|
|
42
31
|
/** Skip if already present (used by best-effort callers like setup). */
|
|
@@ -47,3 +36,4 @@ export declare function unregisterAgentsUrlScheme(opts?: {
|
|
|
47
36
|
platform?: NodeJS.Platform;
|
|
48
37
|
home?: string;
|
|
49
38
|
}): SchemeStatus;
|
|
39
|
+
export {};
|
|
@@ -23,7 +23,7 @@ import * as os from 'node:os';
|
|
|
23
23
|
import * as path from 'node:path';
|
|
24
24
|
import { getAgentsBinPath } from '../cli-entry.js';
|
|
25
25
|
export const AGENTS_URL_SCHEME = 'agents';
|
|
26
|
-
|
|
26
|
+
const MAC_BUNDLE_ID = 'dev.agents.urlhandler';
|
|
27
27
|
const LINUX_DESKTOP_FILE = 'agents-url-handler.desktop';
|
|
28
28
|
const MAC_APP_NAME = 'AgentsURLHandler.app';
|
|
29
29
|
// ---------------------------------------------------------------------------
|
|
@@ -44,7 +44,7 @@ export function shQuote(p) {
|
|
|
44
44
|
* absolute path. Prefer the `agents` shim on PATH (directly executable); fall
|
|
45
45
|
* back to `<node> <entry>` for a bare JS install.
|
|
46
46
|
*/
|
|
47
|
-
|
|
47
|
+
function resolveAgentsInvocation(platform = os.platform()) {
|
|
48
48
|
const onPath = whichAgents(platform);
|
|
49
49
|
if (onPath)
|
|
50
50
|
return platform === 'win32' ? `"${onPath}"` : shQuote(onPath);
|
|
@@ -123,7 +123,7 @@ export function windowsRegistryCommands(invocation) {
|
|
|
123
123
|
export function linuxDesktopPath(home = os.homedir()) {
|
|
124
124
|
return path.join(home, '.local', 'share', 'applications', LINUX_DESKTOP_FILE);
|
|
125
125
|
}
|
|
126
|
-
|
|
126
|
+
function macAppPath(home = os.homedir()) {
|
|
127
127
|
return path.join(home, 'Applications', MAC_APP_NAME);
|
|
128
128
|
}
|
|
129
129
|
// ---------------------------------------------------------------------------
|
|
@@ -16,14 +16,14 @@
|
|
|
16
16
|
* agents://session/<id> — resume <id>, owner host resolved from the id
|
|
17
17
|
* agents://session/<id>?host=<name> — the same, with a routing hint
|
|
18
18
|
*/
|
|
19
|
-
|
|
19
|
+
interface AgentsSessionLink {
|
|
20
20
|
kind: 'session';
|
|
21
21
|
/** The session id (or short-id/alias) to resume. */
|
|
22
22
|
id: string;
|
|
23
23
|
/** Optional owning-host hint; resume self-resolves the owner from the id regardless. */
|
|
24
24
|
host?: string;
|
|
25
25
|
}
|
|
26
|
-
|
|
26
|
+
interface AgentsUrlError {
|
|
27
27
|
error: string;
|
|
28
28
|
}
|
|
29
29
|
export declare function isDeepLinkSessionId(raw: string): boolean;
|
|
@@ -32,3 +32,4 @@ export declare function isDeepLinkSessionId(raw: string): boolean;
|
|
|
32
32
|
* {@link AgentsUrlError} with a human reason. Never throws.
|
|
33
33
|
*/
|
|
34
34
|
export declare function parseAgentsUrl(input: string): AgentsSessionLink | AgentsUrlError;
|
|
35
|
+
export {};
|
|
@@ -44,7 +44,7 @@ export type ConfigScope = 'user' | 'device';
|
|
|
44
44
|
*/
|
|
45
45
|
export type ConfigVisibility = 'shared' | 'machine';
|
|
46
46
|
/** Value type of a config key — drives validation and `--json` rendering. */
|
|
47
|
-
|
|
47
|
+
type ConfigType = 'string' | 'int' | 'bool' | 'string-list';
|
|
48
48
|
/** Fields every key carries, regardless of scope. */
|
|
49
49
|
interface ConfigKeySpecBase {
|
|
50
50
|
/** CLI dotted name, e.g. `interactive.host`. */
|
|
@@ -81,7 +81,7 @@ export interface ConfigEntry {
|
|
|
81
81
|
source: ConfigSource;
|
|
82
82
|
}
|
|
83
83
|
/** Options scoping a read/write: a specific device (default: this machine), or the fleet-defaults layer. */
|
|
84
|
-
|
|
84
|
+
interface ConfigTarget {
|
|
85
85
|
device?: string;
|
|
86
86
|
/** Write/read the fleet-wide defaults layer (central fleet.defaults.config). */
|
|
87
87
|
fleet?: boolean;
|
|
@@ -92,16 +92,8 @@ declare const DEVICE_ROLES: readonly ["worker", "personal", "desktop"];
|
|
|
92
92
|
declare const AUTO_POOL_MODES: readonly ["workers", "all"];
|
|
93
93
|
export declare const CONFIG_KEYS: readonly ConfigKeySpec[];
|
|
94
94
|
export declare function configKeySpec(name: string): ConfigKeySpec;
|
|
95
|
-
/**
|
|
96
|
-
|
|
97
|
-
* process. A failure is loud but non-fatal — config reads must keep working,
|
|
98
|
-
* and the next process retries the fold. Honors AGENTS_SKIP_MIGRATION=1, the
|
|
99
|
-
* same gate bootstrap's runMigration uses (tests pin it so a fork never folds
|
|
100
|
-
* the developer's real ~/.agents as a side effect).
|
|
101
|
-
*/
|
|
102
|
-
export declare function ensureDeviceConfigMigrated(): void;
|
|
103
|
-
/** The fleet-defaults config layer (central `fleet.defaults.config`; {} when unset). */
|
|
104
|
-
export declare function readFleetConfigDefaults(): Record<string, unknown>;
|
|
95
|
+
/** Throw when `value` does not match the key's declared type or validation. */
|
|
96
|
+
export declare function assertValidValue(spec: ConfigKeySpec, value: unknown): void;
|
|
105
97
|
/**
|
|
106
98
|
* The effective device-scope config block for `device`: fleet.defaults.config
|
|
107
99
|
* overlaid with the per-device doc's config:. This is the single read path
|
|
@@ -130,9 +122,6 @@ export declare function getConfigValueAsync(name: string, opts?: ConfigTarget):
|
|
|
130
122
|
* must not hard-fail. Asking for such a key by name still errors.
|
|
131
123
|
*/
|
|
132
124
|
export declare function listConfig(opts?: ConfigTarget): ConfigEntry[];
|
|
133
|
-
/** List user-scope config keys with their values. Used to show inherited settings
|
|
134
|
-
* in per-device views without implying those keys are device-local. */
|
|
135
|
-
export declare function listUserConfig(): ConfigEntry[];
|
|
136
125
|
/**
|
|
137
126
|
* Set a config key (validated). Device-scope keys target this machine unless
|
|
138
127
|
* `opts.device` names a peer; `opts.fleet` writes the fleet-wide defaults layer
|
|
@@ -39,6 +39,7 @@ import { atomicWriteFileSync } from './fs-atomic.js';
|
|
|
39
39
|
import { machineId } from './machine-id.js';
|
|
40
40
|
import { assertValidDeviceName, assertRegistrableDeviceName } from './devices/registry.js';
|
|
41
41
|
import { migrateDeviceConfigStores } from './devices/config-migration.js';
|
|
42
|
+
import { parseAddress } from './address.js';
|
|
42
43
|
import { isAgentId } from './types.js';
|
|
43
44
|
const DEVICE_PLATFORMS = ['windows', 'linux', 'macos', 'unknown'];
|
|
44
45
|
const SSH_AUTH_METHODS = ['key', 'password'];
|
|
@@ -46,6 +47,16 @@ const SSH_AUTH_METHODS = ['key', 'password'];
|
|
|
46
47
|
const DEVICE_ROLES = ['worker', 'personal', 'desktop'];
|
|
47
48
|
/** Which devices automatic placement may pick — see the `auto.pool` key below. */
|
|
48
49
|
const AUTO_POOL_MODES = ['workers', 'all'];
|
|
50
|
+
/**
|
|
51
|
+
* A device's physical form factor (`formFactor` key) — a factual hardware fact
|
|
52
|
+
* the menu bar shows as an icon. Set explicitly per device (no inference from
|
|
53
|
+
* platform, no hardcoded device names). `unknown` is the effective default.
|
|
54
|
+
*/
|
|
55
|
+
const DEVICE_FORM_FACTORS = ['laptop', 'desktop', 'server', 'unknown'];
|
|
56
|
+
/** A validate() that accepts only one of `allowed` — the enum-string keys reuse it. */
|
|
57
|
+
function oneOf(name, allowed) {
|
|
58
|
+
return (v) => (allowed.includes(v) ? null : `${name} must be one of ${allowed.join(' | ')}.`);
|
|
59
|
+
}
|
|
49
60
|
export const CONFIG_KEYS = [
|
|
50
61
|
{
|
|
51
62
|
name: 'interactive.host',
|
|
@@ -133,6 +144,28 @@ export const CONFIG_KEYS = [
|
|
|
133
144
|
type: 'string',
|
|
134
145
|
description: 'Browser profile `agents browser start` resolves to without --profile (set via `agents browser use`).',
|
|
135
146
|
},
|
|
147
|
+
{
|
|
148
|
+
name: 'computer.host',
|
|
149
|
+
yamlKey: 'computerHost',
|
|
150
|
+
scope: 'device',
|
|
151
|
+
visibility: 'shared',
|
|
152
|
+
type: 'string',
|
|
153
|
+
description: 'The --host address (PHNX-4090) `agents computer --device <name>` forwards to the standalone engine: ' +
|
|
154
|
+
'ssh://[user@]host[:port], vnc://host[:port], or tcp://host:port. Unset falls back to the fleet ssh ' +
|
|
155
|
+
'identity (ssh://user@host resolved against the device registry).',
|
|
156
|
+
validate: (v) => {
|
|
157
|
+
try {
|
|
158
|
+
const addr = parseAddress(v);
|
|
159
|
+
if (addr.scheme !== 'ssh' && addr.scheme !== 'vnc' && addr.scheme !== 'tcp') {
|
|
160
|
+
return `computer.host speaks ssh://, vnc:// and tcp:// only (got ${addr.scheme}://).`;
|
|
161
|
+
}
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
catch (err) {
|
|
165
|
+
return err?.message ?? String(err);
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
},
|
|
136
169
|
{
|
|
137
170
|
name: 'browser.device',
|
|
138
171
|
yamlKey: 'defaultBrowserDevice',
|
|
@@ -344,6 +377,134 @@ export const CONFIG_KEYS = [
|
|
|
344
377
|
defaultValue: false,
|
|
345
378
|
description: 'Boost this device in `--device auto` ranking (default off) — picked ahead of load-equal peers when eligible.',
|
|
346
379
|
},
|
|
380
|
+
{
|
|
381
|
+
name: 'formFactor',
|
|
382
|
+
yamlKey: 'formFactor',
|
|
383
|
+
scope: 'device',
|
|
384
|
+
visibility: 'shared',
|
|
385
|
+
type: 'string',
|
|
386
|
+
defaultValue: 'unknown',
|
|
387
|
+
description: "This device's physical form factor, a factual hardware fact the menu bar renders as an icon: " +
|
|
388
|
+
'laptop, desktop, server, or unknown. Synced fleet-wide (any box may set it for any device). Set it ' +
|
|
389
|
+
'explicitly — never inferred from the OS platform. Unset reads as `unknown`.',
|
|
390
|
+
validate: oneOf('formFactor', DEVICE_FORM_FACTORS),
|
|
391
|
+
},
|
|
392
|
+
// ─── AGI Menu preferences (PHNX-3999) ──────────────────────────────────────
|
|
393
|
+
// User-scope so one value syncs fleet-wide via `agents repo push/pull` and the
|
|
394
|
+
// native menu reads it from `agents config list --json`. Names mirror the Swift
|
|
395
|
+
// MenuPreferences local-cache keys. `config list` OMITS an unset key, so the
|
|
396
|
+
// native app falls back to its own known defaults — the defaults documented
|
|
397
|
+
// here match those, they are not substituted on read.
|
|
398
|
+
{
|
|
399
|
+
name: 'menubar.menu.defaultProject',
|
|
400
|
+
yamlKey: 'menubarMenuDefaultProject',
|
|
401
|
+
scope: 'user',
|
|
402
|
+
type: 'string',
|
|
403
|
+
description: 'AGI Menu: the project name the menu opens focused on. Unset = no default project.',
|
|
404
|
+
},
|
|
405
|
+
{
|
|
406
|
+
name: 'menubar.menu.workingRowsShown',
|
|
407
|
+
yamlKey: 'menubarMenuWorkingRowsShown',
|
|
408
|
+
scope: 'user',
|
|
409
|
+
type: 'int',
|
|
410
|
+
defaultValue: 3,
|
|
411
|
+
description: 'AGI Menu: how many working (in-progress) rows to show per group — 2, 3, or 4.',
|
|
412
|
+
validate: (v) => ([2, 3, 4].includes(v) ? null : 'menubar.menu.workingRowsShown must be 2, 3, or 4.'),
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
name: 'menubar.menu.showPreviews',
|
|
416
|
+
yamlKey: 'menubarMenuShowPreviews',
|
|
417
|
+
scope: 'user',
|
|
418
|
+
type: 'bool',
|
|
419
|
+
defaultValue: true,
|
|
420
|
+
description: 'AGI Menu: show the session preview line under each row.',
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
name: 'menubar.menu.projectPriorityFilter',
|
|
424
|
+
yamlKey: 'menubarMenuProjectPriorityFilter',
|
|
425
|
+
scope: 'user',
|
|
426
|
+
type: 'string',
|
|
427
|
+
defaultValue: 'all',
|
|
428
|
+
description: 'AGI Menu: minimum project priority shown — all, urgent, high, or medium.',
|
|
429
|
+
validate: oneOf('menubar.menu.projectPriorityFilter', ['all', 'urgent', 'high', 'medium']),
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
name: 'menubar.menu.hideCompletedMilestones',
|
|
433
|
+
yamlKey: 'menubarMenuHideCompletedMilestones',
|
|
434
|
+
scope: 'user',
|
|
435
|
+
type: 'bool',
|
|
436
|
+
defaultValue: true,
|
|
437
|
+
description: 'AGI Menu: hide milestones that are fully complete.',
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
name: 'menubar.menu.bannerWhenNeedsYou',
|
|
441
|
+
yamlKey: 'menubarMenuBannerWhenNeedsYou',
|
|
442
|
+
scope: 'user',
|
|
443
|
+
type: 'bool',
|
|
444
|
+
defaultValue: true,
|
|
445
|
+
description: 'AGI Menu: show a top banner when a session needs the operator.',
|
|
446
|
+
},
|
|
447
|
+
{
|
|
448
|
+
name: 'menubar.menu.includeOtherDeviceRequests',
|
|
449
|
+
yamlKey: 'menubarMenuIncludeOtherDeviceRequests',
|
|
450
|
+
scope: 'user',
|
|
451
|
+
type: 'bool',
|
|
452
|
+
defaultValue: true,
|
|
453
|
+
description: 'AGI Menu: include needs-you requests from sessions on OTHER fleet devices.',
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
name: 'menubar.menu.groupBy',
|
|
457
|
+
yamlKey: 'menubarMenuGroupBy',
|
|
458
|
+
scope: 'user',
|
|
459
|
+
type: 'string',
|
|
460
|
+
defaultValue: 'project',
|
|
461
|
+
description: 'AGI Menu: primary grouping of rows — none, project, agent, or device.',
|
|
462
|
+
validate: oneOf('menubar.menu.groupBy', ['none', 'project', 'agent', 'device']),
|
|
463
|
+
},
|
|
464
|
+
{
|
|
465
|
+
name: 'menubar.menu.thenBy',
|
|
466
|
+
yamlKey: 'menubarMenuThenBy',
|
|
467
|
+
scope: 'user',
|
|
468
|
+
type: 'string',
|
|
469
|
+
defaultValue: 'none',
|
|
470
|
+
description: 'AGI Menu: secondary grouping within each group — none, project, agent, or device.',
|
|
471
|
+
validate: oneOf('menubar.menu.thenBy', ['none', 'project', 'agent', 'device']),
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
name: 'menubar.menu.projectScope',
|
|
475
|
+
yamlKey: 'menubarMenuProjectScope',
|
|
476
|
+
scope: 'user',
|
|
477
|
+
type: 'string',
|
|
478
|
+
defaultValue: 'cycle',
|
|
479
|
+
description: 'AGI Menu: which project issues to show — the current cycle only, or all.',
|
|
480
|
+
validate: oneOf('menubar.menu.projectScope', ['cycle', 'all']),
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
name: 'menubar.menu.projectSort',
|
|
484
|
+
yamlKey: 'menubarMenuProjectSort',
|
|
485
|
+
scope: 'user',
|
|
486
|
+
type: 'string',
|
|
487
|
+
defaultValue: 'updated',
|
|
488
|
+
description: 'AGI Menu: how projects are ordered — updated, priority, or name.',
|
|
489
|
+
validate: oneOf('menubar.menu.projectSort', ['updated', 'priority', 'name']),
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
name: 'menubar.menu.ticketSort',
|
|
493
|
+
yamlKey: 'menubarMenuTicketSort',
|
|
494
|
+
scope: 'user',
|
|
495
|
+
type: 'string',
|
|
496
|
+
defaultValue: 'priority',
|
|
497
|
+
description: 'AGI Menu: how tickets within a project are ordered — priority, updated, or title.',
|
|
498
|
+
validate: oneOf('menubar.menu.ticketSort', ['priority', 'updated', 'title']),
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
name: 'menubar.menu.showPullRequests',
|
|
502
|
+
yamlKey: 'menubarMenuShowPullRequests',
|
|
503
|
+
scope: 'user',
|
|
504
|
+
type: 'bool',
|
|
505
|
+
defaultValue: true,
|
|
506
|
+
description: 'AGI Menu: show the open pull requests section for each project.',
|
|
507
|
+
},
|
|
347
508
|
];
|
|
348
509
|
/** Look up a key spec by CLI dotted name, or throw listing the known keys. */
|
|
349
510
|
/**
|
|
@@ -377,7 +538,7 @@ export function configKeySpec(name) {
|
|
|
377
538
|
return spec;
|
|
378
539
|
}
|
|
379
540
|
/** Throw when `value` does not match the key's declared type or validation. */
|
|
380
|
-
function assertValidValue(spec, value) {
|
|
541
|
+
export function assertValidValue(spec, value) {
|
|
381
542
|
switch (spec.type) {
|
|
382
543
|
case 'string':
|
|
383
544
|
if (typeof value !== 'string' || value.length === 0) {
|
|
@@ -413,7 +574,7 @@ let migrationDone = false;
|
|
|
413
574
|
* same gate bootstrap's runMigration uses (tests pin it so a fork never folds
|
|
414
575
|
* the developer's real ~/.agents as a side effect).
|
|
415
576
|
*/
|
|
416
|
-
|
|
577
|
+
function ensureDeviceConfigMigrated() {
|
|
417
578
|
if (migrationDone || process.env.AGENTS_SKIP_MIGRATION === '1')
|
|
418
579
|
return;
|
|
419
580
|
try {
|
|
@@ -499,7 +660,7 @@ function writeDeviceDoc(device, doc) {
|
|
|
499
660
|
atomicWriteFileSync(p, META_HEADER + yaml.stringify(doc));
|
|
500
661
|
}
|
|
501
662
|
/** The fleet-defaults config layer (central `fleet.defaults.config`; {} when unset). */
|
|
502
|
-
|
|
663
|
+
function readFleetConfigDefaults() {
|
|
503
664
|
const config = readMeta().fleet?.defaults?.config;
|
|
504
665
|
return config && typeof config === 'object' && !Array.isArray(config) ? config : {};
|
|
505
666
|
}
|
|
@@ -609,11 +770,6 @@ export function listConfig(opts) {
|
|
|
609
770
|
: CONFIG_KEYS;
|
|
610
771
|
return visible.map((spec) => getConfigValue(spec.name, opts));
|
|
611
772
|
}
|
|
612
|
-
/** List user-scope config keys with their values. Used to show inherited settings
|
|
613
|
-
* in per-device views without implying those keys are device-local. */
|
|
614
|
-
export function listUserConfig() {
|
|
615
|
-
return CONFIG_KEYS.filter((spec) => spec.scope === 'user').map((spec) => getConfigValue(spec.name));
|
|
616
|
-
}
|
|
617
773
|
// ─── Writes ───────────────────────────────────────────────────────────────────
|
|
618
774
|
/** The fleet manifest for a defaults write: `devices` materializes as an
|
|
619
775
|
* explicit empty map (NOT 'all') so `agents apply` targets nothing until the
|
|
@@ -30,13 +30,43 @@ export declare function sshTargetFor(device: DeviceProfile): string;
|
|
|
30
30
|
*/
|
|
31
31
|
export declare function fleetDialTarget(device: DeviceProfile): string;
|
|
32
32
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
33
|
+
* Render `cmd` as the single command string ssh sends to the peer.
|
|
34
|
+
*
|
|
35
|
+
* Windows devices speak PowerShell, so the result is run through
|
|
36
|
+
* `powershell -NoProfile -EncodedCommand`; POSIX devices get it as the remote
|
|
37
|
+
* login shell sees it. Returns undefined when no command was given (interactive
|
|
37
38
|
* login).
|
|
39
|
+
*
|
|
40
|
+
* TWO MODES, and the difference is load-bearing rather than a convenience.
|
|
41
|
+
*
|
|
42
|
+
* The default joins the tokens RAW. That is not a bug to be tidied away: every
|
|
43
|
+
* existing caller of `agents ssh` relies on the remote shell interpreting what it
|
|
44
|
+
* is handed — `agents ssh box 'bash -lc "cd x && make"'` arrives as ONE token
|
|
45
|
+
* whose pipeline, globs and redirections the peer's shell must expand. Quoting
|
|
46
|
+
* that would ship the whole line as a literal argument and break it.
|
|
47
|
+
*
|
|
48
|
+
* `{ argv: true }` is for a caller that genuinely holds an argv ARRAY and needs
|
|
49
|
+
* each element delivered as exactly one token. Joining those raw destroys any
|
|
50
|
+
* token containing a space or a metacharacter — `['--title', 'two words']`
|
|
51
|
+
* arrives as three tokens, and `'a & b'` arrives as a backgrounded command — which
|
|
52
|
+
* is what a native client hitting this path actually hit.
|
|
53
|
+
*
|
|
54
|
+
* So fidelity is opt-in at the call site that knows which shape it has, and the
|
|
55
|
+
* quoting itself reuses the canonical helpers (`shellQuote`, {@link pwshQuote})
|
|
56
|
+
* rather than introducing a third escaping scheme.
|
|
38
57
|
*/
|
|
39
|
-
export declare function wrapRemoteCommand(device: DeviceProfile, cmd: string[]
|
|
58
|
+
export declare function wrapRemoteCommand(device: DeviceProfile, cmd: string[], opts?: {
|
|
59
|
+
argv?: boolean;
|
|
60
|
+
prelude?: string[];
|
|
61
|
+
}): string | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Single-quote one token for PowerShell's OWN parser. Inside a single-quoted pwsh
|
|
64
|
+
* string the only special character is `'`, escaped by doubling.
|
|
65
|
+
*
|
|
66
|
+
* This is correct for a value PowerShell itself consumes, and NOT sufficient for
|
|
67
|
+
* an argument handed on to a native program — see the Win32 note below.
|
|
68
|
+
*/
|
|
69
|
+
export declare function pwshQuote(token: string): string;
|
|
40
70
|
/**
|
|
41
71
|
* True when `cmd` is a browser drive: `agents browser …`, `ag browser …`, or
|
|
42
72
|
* the standalone `browser` binary (`cli/package.json` `bin.browser` →
|
|
@@ -65,6 +95,19 @@ export declare function isAgentsBrowserDrive(cmd: string[]): boolean;
|
|
|
65
95
|
* fan-out stamps the marker before {@link buildSshInvocation}) is left unchanged
|
|
66
96
|
* so nothing is doubled.
|
|
67
97
|
*/
|
|
98
|
+
/**
|
|
99
|
+
* The provenance prefix as READY SHELL SYNTAX for the device's shell.
|
|
100
|
+
*
|
|
101
|
+
* These tokens are already quoted/escaped for their target shell — a POSIX
|
|
102
|
+
* `K=V` pair is `shellQuote`d here, and a PowerShell assignment is a complete
|
|
103
|
+
* statement with its own doubled quotes. That matters because argv mode quotes
|
|
104
|
+
* every token it is handed: quoting THESE again turns
|
|
105
|
+
* `'AGENTS_ACTOR=Some Name'` into `''\''AGENTS_ACTOR=Some Name'\'''` and turns a
|
|
106
|
+
* pwsh assignment into an inert string literal. So the prelude is composed
|
|
107
|
+
* SEPARATELY from the caller's argv rather than concatenated into it, and this is
|
|
108
|
+
* the single definition both paths use.
|
|
109
|
+
*/
|
|
110
|
+
export declare function fleetRemotePrelude(device: Pick<DeviceProfile, 'shell'>, provenanceEnv?: Record<string, string>): string[];
|
|
68
111
|
export declare function markFleetRemote(cmd: string[], device: Pick<DeviceProfile, 'shell'>, provenanceEnv?: Record<string, string>): string[];
|
|
69
112
|
/**
|
|
70
113
|
* Build the remote command that starts an INTERACTIVE LOGIN shell inside a
|
|
@@ -91,7 +134,7 @@ export declare function markFleetRemote(cmd: string[], device: Pick<DeviceProfil
|
|
|
91
134
|
*/
|
|
92
135
|
export declare function buildInteractiveShellCommand(device: DeviceProfile, mirrorCwd: string | undefined): string | undefined;
|
|
93
136
|
/** Host-key posture for {@link buildSshInvocation}. */
|
|
94
|
-
|
|
137
|
+
interface SshHostKeyOptions {
|
|
95
138
|
/**
|
|
96
139
|
* True when the device's host key is already pinned in the managed
|
|
97
140
|
* known_hosts store — connections then verify with `StrictHostKeyChecking=yes`
|
|
@@ -136,6 +179,7 @@ export declare function deviceIdentityArgs(device: DeviceProfile): string[];
|
|
|
136
179
|
export declare function buildSshInvocation(device: DeviceProfile, cmd: string[], askpassShimPath: string, hostKey?: SshHostKeyOptions, opts?: {
|
|
137
180
|
agentOnly?: boolean;
|
|
138
181
|
interactiveCwd?: string;
|
|
182
|
+
argv?: boolean;
|
|
139
183
|
}): {
|
|
140
184
|
args: string[];
|
|
141
185
|
env: Record<string, string>;
|
|
@@ -162,3 +206,4 @@ export declare function buildAskpassShimBody(launch?: {
|
|
|
162
206
|
* protocol back into the CLI, which then resolves the bundle.
|
|
163
207
|
*/
|
|
164
208
|
export declare function writeAskpassShim(): string;
|
|
209
|
+
export {};
|