@phnx-labs/agents-cli 1.22.113 → 1.22.114
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -0
- package/README.md +10 -11
- package/dist/cli/command-registry.d.ts +0 -60
- package/dist/cli/command-registry.js +59 -61
- package/dist/commands/apply.d.ts +0 -4
- package/dist/commands/apply.js +3 -3
- package/dist/commands/browser-picker.d.ts +3 -6
- package/dist/commands/browser-picker.js +2 -2
- package/dist/commands/browser-sessions-picker.d.ts +2 -1
- package/dist/commands/computer-sessions-picker.d.ts +2 -1
- package/dist/commands/computer.d.ts +14 -19
- package/dist/commands/computer.js +65 -10
- package/dist/commands/config.js +46 -2
- package/dist/commands/daemon.d.ts +0 -23
- package/dist/commands/daemon.js +1 -1
- package/dist/commands/detach-core.d.ts +2 -1
- package/dist/commands/detach.d.ts +0 -3
- package/dist/commands/detach.js +3 -3
- package/dist/commands/feed.d.ts +3 -3
- package/dist/commands/feed.js +1 -1
- package/dist/commands/focus.d.ts +4 -4
- package/dist/commands/harness-hooks.d.ts +0 -7
- package/dist/commands/harness-hooks.js +1 -1
- package/dist/commands/harness-wizard.d.ts +2 -2
- package/dist/commands/harness.d.ts +3 -8
- package/dist/commands/harness.js +1 -1
- package/dist/commands/inspect.d.ts +2 -3
- package/dist/commands/inspect.js +1 -1
- package/dist/commands/message.d.ts +1 -1
- package/dist/commands/message.js +3 -3
- package/dist/commands/projects.d.ts +2 -18
- package/dist/commands/projects.js +89 -3
- package/dist/commands/resource-view.d.ts +3 -2
- package/dist/commands/resume.d.ts +0 -1
- package/dist/commands/resume.js +1 -1
- package/dist/commands/routines.d.ts +1 -3
- package/dist/commands/routines.js +1 -1
- package/dist/commands/run-account-picker.d.ts +2 -1
- package/dist/commands/run-broadcast.d.ts +2 -1
- package/dist/commands/run-device-picker.d.ts +2 -1
- package/dist/commands/secrets-passthrough.d.ts +14 -0
- package/dist/commands/secrets-passthrough.js +21 -2
- package/dist/commands/sessions-backfill.d.ts +2 -35
- package/dist/commands/sessions-backfill.js +1 -1
- package/dist/commands/sessions-bookmark.d.ts +0 -10
- package/dist/commands/sessions-bookmark.js +1 -1
- package/dist/commands/sessions-inject.d.ts +2 -3
- package/dist/commands/sessions-inject.js +8 -17
- package/dist/commands/sessions-picker-factory.d.ts +4 -14
- package/dist/commands/sessions-picker-factory.js +2 -2
- package/dist/commands/sessions-picker.d.ts +3 -9
- package/dist/commands/sessions-picker.js +2 -2
- package/dist/commands/sessions-resume.d.ts +2 -4
- package/dist/commands/sessions-resume.js +0 -5
- package/dist/commands/sessions-stats.d.ts +2 -1
- package/dist/commands/sessions-stop.d.ts +0 -3
- package/dist/commands/sessions-stop.js +1 -1
- package/dist/commands/sessions-tail.d.ts +2 -1
- package/dist/commands/sessions-trace.d.ts +4 -6
- package/dist/commands/sessions-trace.js +1 -1
- package/dist/commands/sessions.d.ts +13 -104
- package/dist/commands/sessions.js +10 -10
- package/dist/commands/setup-mine.d.ts +0 -6
- package/dist/commands/setup-mine.js +1 -1
- package/dist/commands/setup.d.ts +3 -4
- package/dist/commands/setup.js +1 -1
- package/dist/commands/share.d.ts +8 -8
- package/dist/commands/teams-picker.d.ts +2 -5
- package/dist/commands/teams-picker.js +2 -2
- package/dist/commands/teams.d.ts +1 -7
- package/dist/commands/teams.js +1 -1
- package/dist/commands/tmux.d.ts +1 -1
- package/dist/commands/tmux.js +1 -1
- package/dist/commands/upgrade.d.ts +2 -1
- package/dist/commands/utils.d.ts +1 -1
- package/dist/commands/utils.js +1 -1
- package/dist/lib/account-capabilities.d.ts +2 -1
- package/dist/lib/account-catalog.d.ts +4 -13
- package/dist/lib/account-catalog.js +1 -1
- package/dist/lib/account-registry.d.ts +3 -4
- package/dist/lib/account-registry.js +1 -1
- package/dist/lib/accounting/account-launch.d.ts +4 -3
- package/dist/lib/accounting/account-pool.d.ts +2 -1
- package/dist/lib/accounting/rotate.d.ts +3 -9
- package/dist/lib/accounting/rotate.js +2 -14
- package/dist/lib/accounting/usage-sync.d.ts +5 -4
- package/dist/lib/accounting/usage.d.ts +7 -31
- package/dist/lib/accounting/usage.js +4 -4
- package/dist/lib/accounts/migrate.d.ts +8 -8
- package/dist/lib/accounts/migrate.js +1 -1
- package/dist/lib/acp/client.d.ts +3 -2
- package/dist/lib/acp/harnesses.d.ts +2 -2
- package/dist/lib/acp/harnesses.js +1 -1
- package/dist/lib/acp/run.d.ts +2 -1
- package/dist/lib/actor.d.ts +3 -2
- package/dist/lib/add-dir.d.ts +2 -17
- package/dist/lib/add-dir.js +2 -6
- package/dist/lib/address.d.ts +56 -0
- package/dist/lib/address.js +143 -0
- package/dist/lib/agent-spec/agents.d.ts +12 -28
- package/dist/lib/agent-spec/agents.js +2 -6
- package/dist/lib/agent-spec/primitives.d.ts +0 -7
- package/dist/lib/agent-spec/primitives.js +0 -6
- package/dist/lib/agent-spec/types.d.ts +2 -1
- package/dist/lib/analytics/dashboard.d.ts +1 -5
- package/dist/lib/analytics/dashboard.js +0 -2
- package/dist/lib/analytics/mix-commands.d.ts +0 -7
- package/dist/lib/analytics/mix-commands.js +3 -3
- package/dist/lib/analytics/recipes.d.ts +0 -12
- package/dist/lib/analytics/recipes.js +7 -31
- package/dist/lib/analytics/usage-db.d.ts +5 -32
- package/dist/lib/analytics/usage-db.js +1 -70
- package/dist/lib/answer-router.d.ts +7 -6
- package/dist/lib/answer-router.js +5 -11
- package/dist/lib/artifact-actions.d.ts +0 -4
- package/dist/lib/ask-classifier.d.ts +3 -4
- package/dist/lib/ask-classifier.js +0 -7
- package/dist/lib/auth-health.d.ts +3 -46
- package/dist/lib/auth-health.js +3 -3
- package/dist/lib/auth-mint.d.ts +6 -6
- package/dist/lib/auth-mint.js +5 -5
- package/dist/lib/bench/runner.d.ts +2 -2
- package/dist/lib/bench/runner.js +1 -1
- package/dist/lib/bench/storage.d.ts +0 -1
- package/dist/lib/bench/storage.js +1 -1
- package/dist/lib/boot-profile.d.ts +0 -2
- package/dist/lib/boot-profile.js +0 -4
- package/dist/lib/brand.d.ts +0 -6
- package/dist/lib/brand.js +1 -1
- package/dist/lib/browser/arc-discovery.d.ts +4 -12
- package/dist/lib/browser/arc-discovery.js +1 -1
- package/dist/lib/browser/cdp.d.ts +1 -1
- package/dist/lib/browser/chrome.d.ts +2 -2
- package/dist/lib/browser/chrome.js +0 -4
- package/dist/lib/browser/chromium-discovery.d.ts +3 -2
- package/dist/lib/browser/drivers/arc.d.ts +3 -20
- package/dist/lib/browser/drivers/arc.js +2 -7
- package/dist/lib/browser/drivers/firefox.d.ts +2 -6
- package/dist/lib/browser/drivers/firefox.js +1 -1
- package/dist/lib/browser/drivers/local.d.ts +2 -1
- package/dist/lib/browser/drivers/ssh.d.ts +2 -3
- package/dist/lib/browser/drivers/ssh.js +0 -7
- package/dist/lib/browser/firefox-discovery.d.ts +4 -3
- package/dist/lib/browser/har.d.ts +8 -7
- package/dist/lib/browser/hygiene.d.ts +2 -3
- package/dist/lib/browser/hygiene.js +1 -1
- package/dist/lib/browser/ipc.d.ts +4 -3
- package/dist/lib/browser/ipc.js +1 -1
- package/dist/lib/browser/login-detection.d.ts +1 -8
- package/dist/lib/browser/registry.d.ts +2 -1
- package/dist/lib/browser/remote-control.d.ts +0 -7
- package/dist/lib/browser/remote-control.js +2 -2
- package/dist/lib/browser/resolve-target.d.ts +2 -6
- package/dist/lib/browser/resolve-target.js +3 -3
- package/dist/lib/browser/runtime-state.d.ts +4 -4
- package/dist/lib/browser/service.d.ts +4 -4
- package/dist/lib/browser/sessions-list.d.ts +0 -10
- package/dist/lib/browser/sessions-list.js +3 -3
- package/dist/lib/browser/stream.d.ts +2 -1
- package/dist/lib/browser/task-index.d.ts +4 -4
- package/dist/lib/browser/task-index.js +1 -1
- package/dist/lib/browser/types.d.ts +0 -20
- package/dist/lib/browser/types.js +1 -34
- package/dist/lib/browser/upload.d.ts +0 -27
- package/dist/lib/budget/ledger.d.ts +0 -2
- package/dist/lib/budget/ledger.js +1 -1
- package/dist/lib/budget/live-cloud.d.ts +2 -1
- package/dist/lib/budget/preflight.d.ts +3 -5
- package/dist/lib/budget/preflight.js +1 -1
- package/dist/lib/catchup.d.ts +2 -1
- package/dist/lib/channels/owner-forward.d.ts +5 -4
- package/dist/lib/channels/owner-sink.js +2 -2
- package/dist/lib/channels/providers/desktop.js +1 -1
- package/dist/lib/channels/providers/rush.d.ts +2 -1
- package/dist/lib/channels/registry.d.ts +1 -1
- package/dist/lib/channels/registry.js +1 -1
- package/dist/lib/channels/resolve.d.ts +3 -2
- package/dist/lib/channels/send.d.ts +5 -4
- package/dist/lib/cli-resources.d.ts +3 -9
- package/dist/lib/cli-resources.js +1 -1
- package/dist/lib/cloud/cursor.d.ts +1 -2
- package/dist/lib/cloud/cursor.js +1 -1
- package/dist/lib/cloud/dispatch.d.ts +2 -1
- package/dist/lib/cloud/factory.d.ts +0 -2
- package/dist/lib/cloud/factory.js +1 -1
- package/dist/lib/cloud/rush.d.ts +3 -11
- package/dist/lib/cloud/rush.js +1 -1
- package/dist/lib/cloud/session-index.d.ts +2 -1
- package/dist/lib/cloud/types.d.ts +2 -1
- package/dist/lib/codex-policy.d.ts +2 -1
- package/dist/lib/commands.d.ts +7 -7
- package/dist/lib/commands.js +1 -1
- package/dist/lib/comms-render.d.ts +1 -1
- package/dist/lib/computer/context.d.ts +11 -3
- package/dist/lib/computer/context.js +2 -2
- package/dist/lib/computer/policy.d.ts +0 -12
- package/dist/lib/computer/policy.js +1 -1
- package/dist/lib/computer-client.d.ts +3 -3
- package/dist/lib/computer-client.js +0 -1
- package/dist/lib/concurrency.d.ts +2 -1
- package/dist/lib/config-keys.d.ts +16 -3
- package/dist/lib/config-keys.js +47 -2
- package/dist/lib/convert.d.ts +0 -12
- package/dist/lib/convert.js +1 -12
- package/dist/lib/crabbox/cli.d.ts +6 -24
- package/dist/lib/crabbox/cli.js +2 -28
- package/dist/lib/crabbox/lease.d.ts +5 -6
- package/dist/lib/crabbox/lease.js +1 -1
- package/dist/lib/crabbox/progress.d.ts +2 -1
- package/dist/lib/crabbox/setup-copy.d.ts +2 -3
- package/dist/lib/crabbox/setup-copy.js +1 -1
- package/dist/lib/daemon/account-state-daemon-service.d.ts +1 -1
- package/dist/lib/daemon/attention-notify-service.d.ts +2 -1
- package/dist/lib/daemon/catchup-service.d.ts +2 -1
- package/dist/lib/daemon/daemon.d.ts +4 -4
- package/dist/lib/daemon/daemon.js +1 -1
- 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 +2 -1
- package/dist/lib/daemon-webhooks.d.ts +1 -1
- package/dist/lib/deeplink/register.d.ts +3 -13
- package/dist/lib/deeplink/register.js +3 -3
- package/dist/lib/deeplink/url.d.ts +3 -2
- package/dist/lib/device-config.d.ts +4 -15
- package/dist/lib/device-config.js +164 -8
- package/dist/lib/devices/connect.d.ts +2 -1
- package/dist/lib/devices/discovery-policy.d.ts +3 -2
- package/dist/lib/devices/doctor-findings.js +1 -1
- package/dist/lib/devices/doctor-overview-cache.d.ts +3 -2
- package/dist/lib/devices/fleet-divergence.d.ts +2 -1
- package/dist/lib/devices/fleet.d.ts +3 -4
- package/dist/lib/devices/fleet.js +1 -1
- package/dist/lib/devices/harness-inventory.d.ts +3 -2
- package/dist/lib/devices/health-report.d.ts +3 -2
- package/dist/lib/devices/health.d.ts +1 -8
- package/dist/lib/devices/health.js +1 -1
- package/dist/lib/devices/interactive-host.d.ts +0 -2
- package/dist/lib/devices/interactive-host.js +1 -1
- package/dist/lib/devices/known-hosts.d.ts +2 -20
- package/dist/lib/devices/known-hosts.js +2 -2
- package/dist/lib/devices/pool.d.ts +2 -1
- package/dist/lib/devices/resolve-target.d.ts +2 -2
- package/dist/lib/devices/rollout-verify.d.ts +3 -2
- package/dist/lib/devices/stats-cache.d.ts +3 -2
- package/dist/lib/devices/sync.d.ts +6 -5
- package/dist/lib/devices/worker-pick.d.ts +3 -12
- package/dist/lib/devices/worker-pick.js +1 -1
- package/dist/lib/diff-text.d.ts +2 -1
- package/dist/lib/doctor-diff.d.ts +2 -1
- package/dist/lib/drift-sync.d.ts +3 -2
- package/dist/lib/drift.d.ts +3 -3
- package/dist/lib/drift.js +1 -1
- package/dist/lib/event-families.d.ts +0 -6
- package/dist/lib/event-families.js +3 -3
- package/dist/lib/event-provenance.d.ts +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/events.d.ts +2 -47
- package/dist/lib/feed/events.js +1 -141
- package/dist/lib/feed/feed.d.ts +9 -42
- package/dist/lib/feed/feed.js +1 -60
- package/dist/lib/feed/pr-status.d.ts +0 -2
- package/dist/lib/feed/pr-status.js +1 -5
- package/dist/lib/feed/watch.d.ts +1 -2
- package/dist/lib/feed/watch.js +0 -1
- 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 +2 -1
- package/dist/lib/friction-heuristics.d.ts +2 -1
- package/dist/lib/fs-walk.d.ts +2 -1
- package/dist/lib/fuzzy.d.ts +2 -1
- package/dist/lib/gemini-settings.d.ts +0 -1
- package/dist/lib/gemini-settings.js +1 -1
- package/dist/lib/git.d.ts +7 -65
- package/dist/lib/git.js +3 -142
- package/dist/lib/github/gh-overload.d.ts +0 -4
- package/dist/lib/github/gh-overload.js +2 -2
- package/dist/lib/github/project-prs.d.ts +118 -0
- package/dist/lib/github/project-prs.js +173 -0
- package/dist/lib/github/rest.d.ts +2 -1
- package/dist/lib/harness/exec-config-version.d.ts +2 -1
- package/dist/lib/harness-auth-capabilities.d.ts +5 -4
- package/dist/lib/harness-connection-test.d.ts +2 -1
- package/dist/lib/heal.d.ts +3 -20
- package/dist/lib/heal.js +2 -39
- package/dist/lib/help.d.ts +3 -2
- package/dist/lib/helper-download.d.ts +0 -12
- package/dist/lib/helper-download.js +2 -2
- package/dist/lib/helper-versions.d.ts +2 -1
- package/dist/lib/helper-versions.js +1 -1
- package/dist/lib/hooks/install.d.ts +8 -49
- package/dist/lib/hooks/install.js +2 -96
- package/dist/lib/hooks/match.d.ts +2 -1
- package/dist/lib/hosts/credential-transport.d.ts +0 -2
- package/dist/lib/hosts/credential-transport.js +1 -1
- package/dist/lib/hosts/dispatch.d.ts +2 -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 +4 -3
- 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/memory.d.ts +2 -13
- package/dist/lib/memory.js +4 -4
- package/dist/lib/menubar/download-menubar.d.ts +0 -2
- package/dist/lib/menubar/download-menubar.js +1 -5
- package/dist/lib/menubar/install-menubar.d.ts +3 -14
- package/dist/lib/menubar/install-menubar.js +3 -3
- package/dist/lib/menubar/migrate-prefs.d.ts +53 -0
- package/dist/lib/menubar/migrate-prefs.js +168 -0
- package/dist/lib/menubar/resolve-version.d.ts +1 -9
- package/dist/lib/menubar/resolve-version.js +4 -4
- package/dist/lib/menubar/snapshot.d.ts +24 -2
- package/dist/lib/menubar/snapshot.js +26 -0
- package/dist/lib/model-tier-overrides.d.ts +3 -2
- package/dist/lib/monitors/config.d.ts +0 -2
- package/dist/lib/monitors/config.js +0 -4
- package/dist/lib/monitors/engine.d.ts +1 -1
- package/dist/lib/monitors/remote.d.ts +3 -2
- package/dist/lib/monitors/sources/webhook.d.ts +2 -15
- package/dist/lib/monitors/sources/webhook.js +1 -38
- package/dist/lib/monitors/state.d.ts +4 -7
- package/dist/lib/monitors/state.js +2 -2
- package/dist/lib/notify.d.ts +1 -1
- package/dist/lib/notify.js +1 -1
- package/dist/lib/onepassword.d.ts +5 -14
- package/dist/lib/onepassword.js +0 -64
- package/dist/lib/open-url.d.ts +3 -2
- package/dist/lib/openclaw-keychain.d.ts +4 -17
- package/dist/lib/openclaw-keychain.js +3 -33
- package/dist/lib/operator.d.ts +2 -2
- package/dist/lib/operator.js +1 -1
- package/dist/lib/output/git-output.d.ts +4 -14
- package/dist/lib/output/git-output.js +1 -1
- package/dist/lib/owner-message.d.ts +3 -29
- package/dist/lib/owner-message.js +3 -3
- package/dist/lib/packages/output-home.d.ts +2 -4
- package/dist/lib/packages/output-home.js +2 -2
- package/dist/lib/perf/db.d.ts +0 -2
- package/dist/lib/perf/db.js +2 -7
- package/dist/lib/permissions-registry.d.ts +2 -3
- package/dist/lib/permissions-registry.js +0 -4
- package/dist/lib/permissions.d.ts +6 -16
- package/dist/lib/permissions.js +2 -15
- package/dist/lib/picker.d.ts +6 -5
- package/dist/lib/placement.d.ts +3 -6
- package/dist/lib/placement.js +0 -17
- package/dist/lib/platform/posixpath.d.ts +2 -1
- package/dist/lib/platform/winpath.d.ts +2 -1
- package/dist/lib/plugins/plugin-marketplace.d.ts +2 -2
- package/dist/lib/plugins/plugin-marketplace.js +1 -1
- package/dist/lib/pr-land-detach.d.ts +2 -1
- package/dist/lib/profiles-presets.d.ts +2 -1
- package/dist/lib/profiles.d.ts +3 -9
- package/dist/lib/profiles.js +1 -9
- package/dist/lib/project-doctor.d.ts +2 -1
- package/dist/lib/project-launch.d.ts +2 -2
- package/dist/lib/project-probe.d.ts +4 -3
- package/dist/lib/project-pull.d.ts +2 -1
- package/dist/lib/project-resources.d.ts +2 -2
- package/dist/lib/project-resources.js +1 -1
- package/dist/lib/project-root.d.ts +2 -6
- package/dist/lib/project-root.js +1 -1
- package/dist/lib/project-schedule.d.ts +2 -1
- package/dist/lib/project-status.d.ts +2 -16
- package/dist/lib/project-status.js +3 -3
- package/dist/lib/reconcile-and-repair.d.ts +5 -4
- package/dist/lib/redact.d.ts +7 -1
- package/dist/lib/redact.js +94 -3
- package/dist/lib/refresh-coordinator.d.ts +2 -1
- package/dist/lib/refresh.d.ts +3 -2
- package/dist/lib/remote-agents-json.d.ts +3 -2
- package/dist/lib/reserved-stores.d.ts +0 -2
- package/dist/lib/reserved-stores.js +3 -5
- package/dist/lib/resource-content-diff.d.ts +0 -2
- package/dist/lib/resource-content-diff.js +1 -1
- package/dist/lib/resource-patterns.d.ts +2 -1
- package/dist/lib/resource-profiles.d.ts +2 -8
- package/dist/lib/resource-profiles.js +3 -27
- package/dist/lib/resources/workflows.d.ts +1 -1
- package/dist/lib/resources.d.ts +4 -9
- package/dist/lib/resources.js +1 -1
- package/dist/lib/routine-context.d.ts +2 -5
- package/dist/lib/routine-context.js +2 -2
- package/dist/lib/routine-notify-owner.d.ts +8 -7
- package/dist/lib/routine-notify-owner.js +5 -5
- package/dist/lib/routine-process-cleanup.d.ts +2 -1
- package/dist/lib/routine-readiness.d.ts +0 -2
- package/dist/lib/routine-readiness.js +0 -7
- package/dist/lib/routines-project.d.ts +3 -4
- package/dist/lib/routines-project.js +1 -1
- package/dist/lib/rules/compile.d.ts +3 -25
- package/dist/lib/rules/compile.js +1 -1
- package/dist/lib/rules/compose.d.ts +3 -9
- package/dist/lib/rules/rules.d.ts +4 -15
- package/dist/lib/rules/rules.js +1 -64
- package/dist/lib/run-defaults.d.ts +1 -1
- package/dist/lib/run-notify.d.ts +2 -1
- package/dist/lib/run-trace-sync.d.ts +1 -1
- package/dist/lib/run-trace-sync.js +1 -1
- package/dist/lib/scheduler.d.ts +2 -1
- package/dist/lib/scheduling/routines.d.ts +9 -21
- package/dist/lib/scheduling/routines.js +3 -46
- package/dist/lib/secrets-client.d.ts +0 -17
- package/dist/lib/secrets-client.js +4 -26
- package/dist/lib/secrets-policy.d.ts +12 -17
- package/dist/lib/secrets-policy.js +5 -5
- package/dist/lib/secrets-types.d.ts +3 -2
- package/dist/lib/secrets-types.js +2 -1
- package/dist/lib/self-heal/checks/install-staging.js +1 -1
- package/dist/lib/self-heal/registry.d.ts +3 -2
- package/dist/lib/self-heal/types.d.ts +1 -1
- package/dist/lib/self-heal/types.js +1 -1
- package/dist/lib/self-update.d.ts +5 -5
- package/dist/lib/self-update.js +4 -4
- package/dist/lib/session/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 +2 -1
- package/dist/lib/session/detached.js +2 -2
- package/dist/lib/session/digest.d.ts +2 -2
- package/dist/lib/session/digest.js +1 -1
- package/dist/lib/session/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 +2 -5
- package/dist/lib/session/remote/peer-stream.js +2 -2
- package/dist/lib/session/remote/remote-bundle.d.ts +2 -1
- package/dist/lib/session/remote/remote-list.d.ts +5 -5
- package/dist/lib/session/remote/remote.d.ts +4 -3
- package/dist/lib/session/remote/watch.d.ts +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 +5 -5
- package/dist/lib/session/sync/managed-config.d.ts +0 -8
- package/dist/lib/session/sync/managed-key.d.ts +0 -2
- package/dist/lib/session/sync/managed-key.js +1 -1
- package/dist/lib/session/sync/r2.d.ts +4 -1
- package/dist/lib/session/sync/r2.js +4 -7
- package/dist/lib/session/sync/transcript-crypto.d.ts +2 -1
- package/dist/lib/session/tail.d.ts +2 -1
- package/dist/lib/session/team-filter.d.ts +1 -1
- package/dist/lib/session/throughput.d.ts +2 -3
- package/dist/lib/session/throughput.js +1 -1
- package/dist/lib/session/timeline-pass.d.ts +3 -42
- package/dist/lib/session/timeline-pass.js +4 -4
- package/dist/lib/session/timeline.d.ts +3 -13
- package/dist/lib/session/timeline.js +3 -3
- package/dist/lib/session/tool-calls.d.ts +2 -2
- package/dist/lib/session/tool-calls.js +1 -1
- package/dist/lib/session/tool-index.d.ts +0 -8
- package/dist/lib/session/tool-index.js +2 -2
- package/dist/lib/session/tool-store.d.ts +2 -1
- package/dist/lib/session/trajectory-compare.d.ts +2 -1
- package/dist/lib/session/trajectory-lineage.d.ts +2 -1
- package/dist/lib/session/trajectory-text.d.ts +3 -2
- package/dist/lib/session/trajectory.d.ts +2 -1
- package/dist/lib/session/viewing-in.d.ts +2 -1
- package/dist/lib/settings-manifest.d.ts +2 -1
- package/dist/lib/share/delete.d.ts +5 -4
- package/dist/lib/share/html.d.ts +0 -2
- package/dist/lib/share/html.js +9 -9
- package/dist/lib/share/http-error.d.ts +3 -2
- package/dist/lib/share/og.d.ts +2 -1
- package/dist/lib/share/provision.d.ts +2 -2
- package/dist/lib/share/publish.d.ts +4 -13
- package/dist/lib/share/publish.js +2 -2
- package/dist/lib/shim-heal.d.ts +1 -5
- package/dist/lib/shim-heal.js +0 -6
- package/dist/lib/smart-launch.d.ts +4 -5
- package/dist/lib/smart-launch.js +1 -1
- package/dist/lib/snapshot.d.ts +3 -2
- package/dist/lib/ssh-exec.d.ts +5 -4
- package/dist/lib/ssh-tunnel.d.ts +3 -2
- package/dist/lib/staleness/checkers/permissions.d.ts +0 -2
- package/dist/lib/staleness/checkers/permissions.js +1 -1
- package/dist/lib/staleness/fingerprint.d.ts +0 -7
- package/dist/lib/staleness/fingerprint.js +1 -1
- package/dist/lib/staleness/prune.d.ts +3 -2
- package/dist/lib/staleness/registry.d.ts +1 -1
- package/dist/lib/staleness/writers/sources.d.ts +0 -8
- package/dist/lib/staleness/writers/sources.js +1 -1
- package/dist/lib/startup/command-registry.js +1 -1
- package/dist/lib/state.d.ts +1 -3
- package/dist/lib/state.js +1 -4
- package/dist/lib/subagents-registry.d.ts +4 -3
- package/dist/lib/subagents.d.ts +2 -1
- package/dist/lib/subagents.js +3 -2
- package/dist/lib/summarizer/pass.d.ts +3 -6
- package/dist/lib/summarizer/pass.js +2 -2
- package/dist/lib/summarizer/summarize.d.ts +4 -3
- package/dist/lib/sync-passphrase.d.ts +3 -2
- package/dist/lib/sync-status.d.ts +3 -16
- package/dist/lib/sync-status.js +2 -2
- package/dist/lib/sync-umbrella.d.ts +4 -3
- package/dist/lib/system-run-sync.d.ts +2 -1
- package/dist/lib/teams/agents.d.ts +2 -4
- package/dist/lib/teams/agents.js +1 -1
- package/dist/lib/teams/forEach.d.ts +3 -2
- package/dist/lib/teams/pr-watch.d.ts +4 -11
- package/dist/lib/teams/pr-watch.js +4 -4
- package/dist/lib/teams/registry.d.ts +2 -3
- package/dist/lib/teams/registry.js +1 -1
- package/dist/lib/teams/remoteWorktree.d.ts +0 -16
- package/dist/lib/teams/remoteWorktree.js +3 -3
- package/dist/lib/teams/scheduler.d.ts +6 -5
- package/dist/lib/teams/scheduler.js +1 -1
- package/dist/lib/teams/supervisor.d.ts +4 -3
- package/dist/lib/teams/worktree.d.ts +0 -9
- package/dist/lib/teams/worktree.js +0 -32
- package/dist/lib/term-client.d.ts +44 -0
- package/dist/lib/term-client.js +117 -0
- package/dist/lib/terminal/inject.d.ts +3 -16
- package/dist/lib/terminal/inject.js +1 -29
- package/dist/lib/terminal/resolve.d.ts +3 -9
- package/dist/lib/terminal/resolve.js +3 -7
- package/dist/lib/tmux/binary.d.ts +2 -1
- package/dist/lib/tmux/orphan-reap.d.ts +6 -7
- package/dist/lib/tmux/orphan-reap.js +1 -1
- package/dist/lib/tmux/session.d.ts +4 -3
- package/dist/lib/traces/classify.d.ts +3 -2
- package/dist/lib/traces/config.d.ts +0 -8
- package/dist/lib/traces/insights.d.ts +2 -1
- package/dist/lib/traces/phenotype.d.ts +3 -3
- package/dist/lib/traces/provision.d.ts +1 -3
- package/dist/lib/traces/provision.js +1 -1
- package/dist/lib/traces/schema2-build.d.ts +1 -1
- package/dist/lib/traces/schema2-danger.d.ts +2 -1
- package/dist/lib/traces/schema2.d.ts +5 -4
- package/dist/lib/traces/segments.d.ts +4 -20
- package/dist/lib/traces/segments.js +3 -3
- package/dist/lib/traces/sync.d.ts +2 -3
- package/dist/lib/traces/sync.js +1 -1
- package/dist/lib/triggers/handlers.d.ts +4 -13
- package/dist/lib/triggers/handlers.js +1 -1
- package/dist/lib/triggers/webhook.d.ts +5 -27
- package/dist/lib/triggers/webhook.js +4 -4
- package/dist/lib/types.d.ts +3 -3
- package/dist/lib/usage-refresh.d.ts +4 -10
- package/dist/lib/usage-refresh.js +3 -8
- package/dist/lib/verbs.d.ts +2 -1
- package/dist/lib/version-duplicates.d.ts +2 -3
- package/dist/lib/version-duplicates.js +3 -33
- package/dist/lib/version.d.ts +2 -1
- package/dist/lib/warn-unpushed.d.ts +2 -1
- package/dist/lib/watchdog/history.d.ts +3 -2
- package/dist/lib/watchdog/log.d.ts +0 -6
- package/dist/lib/watchdog/log.js +1 -1
- package/dist/lib/watchdog/rotate.d.ts +2 -26
- package/dist/lib/watchdog/rotate.js +4 -12
- package/dist/lib/watchdog/runner.d.ts +0 -7
- package/dist/lib/watchdog/runner.js +4 -4
- package/dist/lib/watchdog/service.d.ts +2 -2
- package/dist/lib/watchdog/service.js +1 -1
- package/dist/lib/watchdog/watchdog-agent.d.ts +2 -1
- package/dist/lib/watchdog/watchdog.d.ts +2 -1
- package/dist/lib/watchdog/watchdogTail.d.ts +2 -1
- package/dist/lib/workflows-registry.d.ts +3 -2
- package/dist/lib/workflows.d.ts +4 -7
- package/dist/lib/workflows.js +1 -1
- package/dist/lib/worktree/held.d.ts +4 -28
- package/dist/lib/worktree/held.js +3 -3
- package/package.json +2 -3
- package/scripts/postinstall.js +5 -4
- package/dist/commands/pty.d.ts +0 -20
- package/dist/commands/pty.js +0 -404
- package/dist/lib/config-machine-keys.d.ts +0 -14
- package/dist/lib/config-machine-keys.js +0 -21
- package/dist/lib/pty-client.d.ts +0 -49
- package/dist/lib/pty-client.js +0 -315
- package/dist/lib/pty-server.d.ts +0 -59
- package/dist/lib/pty-server.js +0 -653
|
@@ -4,10 +4,8 @@ import type { AgentId, Meta, NativeAccountRecord } from './types.js';
|
|
|
4
4
|
import { type DeviceProfile } from './devices/registry.js';
|
|
5
5
|
import { type SharedAuthStatus } from './fleet-shared-state.js';
|
|
6
6
|
import { selfConfiguredDeviceRole } from './device-config.js';
|
|
7
|
-
import { AUTH_STORE_ALIAS,
|
|
8
|
-
export { AUTH_STORE_ALIAS,
|
|
9
|
-
/** Filter `names` down to the ones the active resource profile allows for `secrets`. */
|
|
10
|
-
export declare function filterBundleNamesForActiveProfile(names: string[]): string[];
|
|
7
|
+
import { AUTH_STORE_ALIAS, AUTH_BUNDLE_BACKEND, RESERVED_BUNDLE_NAMES, isReservedBundleName, ReservedBundleWrongBackendError, assertReservedAuthBackend, isReservedBundleBackendError, RESERVED_STORES, reservedStoreName, isReservedStoreName, assertStorableCredentialKind, inspectReservedAuthBundle, type StorableCredentialKind } from './reserved-stores.js';
|
|
8
|
+
export { AUTH_STORE_ALIAS, AUTH_BUNDLE_BACKEND, RESERVED_BUNDLE_NAMES, isReservedBundleName, ReservedBundleWrongBackendError, assertReservedAuthBackend, isReservedBundleBackendError, RESERVED_STORES, reservedStoreName, isReservedStoreName, assertStorableCredentialKind, inspectReservedAuthBundle, type StorableCredentialKind, };
|
|
11
9
|
/**
|
|
12
10
|
* `SecretsContext.allowedBundles` for the active resource profile, or
|
|
13
11
|
* `undefined` when no profile is active (full trust — the client's default).
|
|
@@ -36,15 +34,13 @@ export declare function assertRemoteBundleFlagsUnsupported(bundleName: string, h
|
|
|
36
34
|
keysFlag: string;
|
|
37
35
|
allowExpiredFlag: string;
|
|
38
36
|
}): void;
|
|
39
|
-
/** Each import/read-back SSH operation gets this deadline plus the SSH hard-kill grace. */
|
|
40
|
-
export declare const AUTH_SYNC_PUSH_DEADLINE_MS = 20000;
|
|
41
37
|
export interface AuthSyncDevice {
|
|
42
38
|
name: string;
|
|
43
39
|
reachable: boolean;
|
|
44
40
|
pinned: boolean;
|
|
45
41
|
remoteAuth: SharedAuthStatus | 'unknown';
|
|
46
42
|
}
|
|
47
|
-
|
|
43
|
+
type AuthSyncPlanItem = {
|
|
48
44
|
action: 'push';
|
|
49
45
|
device: string;
|
|
50
46
|
} | {
|
|
@@ -53,7 +49,7 @@ export type AuthSyncPlanItem = {
|
|
|
53
49
|
reason: string;
|
|
54
50
|
};
|
|
55
51
|
export declare function planAuthBundlePush(localAuthOk: boolean, localIsPublisher: boolean, devices: AuthSyncDevice[]): AuthSyncPlanItem[];
|
|
56
|
-
|
|
52
|
+
interface AuthSyncResult {
|
|
57
53
|
publisher: string | null;
|
|
58
54
|
stateChanged: boolean;
|
|
59
55
|
pushed: string[];
|
|
@@ -66,7 +62,7 @@ export interface AuthSyncResult {
|
|
|
66
62
|
message: string;
|
|
67
63
|
}>;
|
|
68
64
|
}
|
|
69
|
-
|
|
65
|
+
interface AuthSyncDeps {
|
|
70
66
|
inspectLocal?: () => {
|
|
71
67
|
exists: boolean;
|
|
72
68
|
ok: boolean;
|
|
@@ -90,7 +86,7 @@ export interface AuthSyncDeps {
|
|
|
90
86
|
* over `zion`, and zion then skipped every peer as a non-publisher.
|
|
91
87
|
*/
|
|
92
88
|
export declare function electPublisher(ready: readonly string[], roleOf: (name: string) => ReturnType<typeof selfConfiguredDeviceRole>): string | null;
|
|
93
|
-
|
|
89
|
+
interface PublishAuthVerdictOptions {
|
|
94
90
|
inspectLocal?: () => {
|
|
95
91
|
exists: boolean;
|
|
96
92
|
ok: boolean;
|
|
@@ -98,7 +94,7 @@ export interface PublishAuthVerdictOptions {
|
|
|
98
94
|
localName?: string;
|
|
99
95
|
userAgentsDir?: string;
|
|
100
96
|
}
|
|
101
|
-
|
|
97
|
+
interface PublishAuthVerdictResult {
|
|
102
98
|
device: string;
|
|
103
99
|
status: SharedAuthStatus;
|
|
104
100
|
changed: boolean;
|
|
@@ -135,7 +131,7 @@ export interface ReservedSyncPeer {
|
|
|
135
131
|
/** bundle -> keys the peer already holds at the current fingerprint. Absent ⇒ none known. */
|
|
136
132
|
presentKeys: Record<string, ReadonlySet<string>>;
|
|
137
133
|
}
|
|
138
|
-
|
|
134
|
+
type ReservedSyncPlanItem = {
|
|
139
135
|
action: 'push';
|
|
140
136
|
device: string;
|
|
141
137
|
bundle: string;
|
|
@@ -160,7 +156,6 @@ export declare function planReservedStoreSync(accounts: ReservedSyncAccount[], p
|
|
|
160
156
|
* `workerCredential`) is not a sync target.
|
|
161
157
|
*/
|
|
162
158
|
export declare function reservedSyncTargets(meta: Pick<Meta, 'accounts' | 'deviceAccounts'>): ReservedSyncAccount[];
|
|
163
|
-
export declare function readDeliveryMemo(root?: string): Record<string, string>;
|
|
164
159
|
/**
|
|
165
160
|
* The keys a peer is KNOWN to hold, per bundle, from what we have delivered to it
|
|
166
161
|
* (memo, matched by fingerprint) plus the coarse legacy-`auth` verdict: a peer
|
|
@@ -169,7 +164,7 @@ export declare function readDeliveryMemo(root?: string): Record<string, string>;
|
|
|
169
164
|
* from the memo alone -- which is what makes a newly-added reserved account push.
|
|
170
165
|
*/
|
|
171
166
|
export declare function peerPresentKeys(peer: string, accounts: ReservedSyncAccount[], memo: Record<string, string>, legacyAuthReady: boolean): Record<string, ReadonlySet<string>>;
|
|
172
|
-
|
|
167
|
+
interface ReservedStoreSyncResult {
|
|
173
168
|
publisher: string | null;
|
|
174
169
|
/** Legacy raw reserved items adopted into their bundle on this box before planning (local repair). */
|
|
175
170
|
adopted: Array<{
|
|
@@ -190,7 +185,7 @@ export interface ReservedStoreSyncResult {
|
|
|
190
185
|
message: string;
|
|
191
186
|
}>;
|
|
192
187
|
}
|
|
193
|
-
|
|
188
|
+
interface ReservedStoreSyncDeps {
|
|
194
189
|
listDevices?: () => DeviceProfile[];
|
|
195
190
|
localName?: string;
|
|
196
191
|
userAgentsDir?: string;
|
|
@@ -224,7 +219,7 @@ export interface ReservedStoreSyncDeps {
|
|
|
224
219
|
* there is no second scheduler. The daemon runs this each tick.
|
|
225
220
|
*/
|
|
226
221
|
export declare function syncReservedStores(deps?: ReservedStoreSyncDeps): Promise<ReservedStoreSyncResult>;
|
|
227
|
-
|
|
222
|
+
interface ReconcileWorkerSlotsResult {
|
|
228
223
|
provisioned: string[];
|
|
229
224
|
skipped: Array<{
|
|
230
225
|
accountId: string;
|
|
@@ -235,7 +230,7 @@ export interface ReconcileWorkerSlotsResult {
|
|
|
235
230
|
message: string;
|
|
236
231
|
}>;
|
|
237
232
|
}
|
|
238
|
-
|
|
233
|
+
interface ReconcileWorkerSlotsDeps {
|
|
239
234
|
selfRole?: ReturnType<typeof selfConfiguredDeviceRole>;
|
|
240
235
|
readMetaFn?: () => Pick<Meta, 'accounts' | 'deviceAccounts'>;
|
|
241
236
|
hasLocalKey?: (bundle: string, key: string) => boolean;
|
|
@@ -21,7 +21,7 @@ import { getCacheDir, getUserAgentsDir, readMeta } from './state.js';
|
|
|
21
21
|
import { listNativeAccounts, readSlots } from './account-registry.js';
|
|
22
22
|
import { claudeAccountTokenKey, isClaudeWorkerHomeSeeded, provisionWorkerSlot, readReservedCredential } from './claude-account-token.js';
|
|
23
23
|
import { configuredDeviceRole, isHeadedDeviceRole, selfConfiguredDeviceRole } from './device-config.js';
|
|
24
|
-
import { AUTH_STORE_ALIAS,
|
|
24
|
+
import { AUTH_STORE_ALIAS, AUTH_BUNDLE_BACKEND, RESERVED_BUNDLE_NAMES, isReservedBundleName, ReservedBundleWrongBackendError, assertReservedAuthBackend, isReservedBundleBackendError, RESERVED_STORES, reservedStoreName, isReservedStoreName, assertStorableCredentialKind, inspectReservedAuthBundle, } from './reserved-stores.js';
|
|
25
25
|
// --- reserved per-harness credential stores (PHNX-3940 / PHNX-3989) --------
|
|
26
26
|
//
|
|
27
27
|
// Re-exported from the leaf module `reserved-stores.ts` rather than declared
|
|
@@ -31,7 +31,7 @@ import { AUTH_STORE_ALIAS, AUTH_BUNDLE_NAME, AUTH_BUNDLE_BACKEND, RESERVED_BUNDL
|
|
|
31
31
|
// ReferenceError under real ESM evaluation order, outside vitest's
|
|
32
32
|
// mock-tolerant transform). Keep the public surface unchanged for existing
|
|
33
33
|
// importers of `secrets-policy.js`.
|
|
34
|
-
export { AUTH_STORE_ALIAS,
|
|
34
|
+
export { AUTH_STORE_ALIAS, AUTH_BUNDLE_BACKEND, RESERVED_BUNDLE_NAMES, isReservedBundleName, ReservedBundleWrongBackendError, assertReservedAuthBackend, isReservedBundleBackendError, RESERVED_STORES, reservedStoreName, isReservedStoreName, assertStorableCredentialKind, inspectReservedAuthBundle, };
|
|
35
35
|
// --- resource-profile -> allowedBundles (CTX-1) -----------------------------
|
|
36
36
|
//
|
|
37
37
|
// A resource profile scopes WHICH bundle names a run may reach. The standalone
|
|
@@ -40,7 +40,7 @@ export { AUTH_STORE_ALIAS, AUTH_BUNDLE_NAME, AUTH_BUNDLE_BACKEND, RESERVED_BUNDL
|
|
|
40
40
|
// every bounded request. Absent (no active profile) means full trust, matching
|
|
41
41
|
// the client's own documented default.
|
|
42
42
|
/** Filter `names` down to the ones the active resource profile allows for `secrets`. */
|
|
43
|
-
|
|
43
|
+
function filterBundleNamesForActiveProfile(names) {
|
|
44
44
|
return filterNamesForActiveResourceProfile('secrets', names);
|
|
45
45
|
}
|
|
46
46
|
/**
|
|
@@ -98,7 +98,7 @@ export function assertRemoteBundleFlagsUnsupported(bundleName, host, opts, flagL
|
|
|
98
98
|
// async and kill-bounded so it never blocks the daemon event loop.
|
|
99
99
|
// ---------------------------------------------------------------------------
|
|
100
100
|
/** Each import/read-back SSH operation gets this deadline plus the SSH hard-kill grace. */
|
|
101
|
-
|
|
101
|
+
const AUTH_SYNC_PUSH_DEADLINE_MS = 20_000;
|
|
102
102
|
export function planAuthBundlePush(localAuthOk, localIsPublisher, devices) {
|
|
103
103
|
if (!localAuthOk) {
|
|
104
104
|
return devices.map((device) => ({ action: 'skip', device: device.name, reason: 'no local file-backed auth bundle' }));
|
|
@@ -332,7 +332,7 @@ function deliveryMemoPath(root = getCacheDir()) {
|
|
|
332
332
|
function memoKey(peer, bundle, key) {
|
|
333
333
|
return `${normalizeHost(peer)} ${bundle} ${key}`;
|
|
334
334
|
}
|
|
335
|
-
|
|
335
|
+
function readDeliveryMemo(root) {
|
|
336
336
|
try {
|
|
337
337
|
const parsed = JSON.parse(fs.readFileSync(deliveryMemoPath(root), 'utf-8'));
|
|
338
338
|
if (parsed && typeof parsed === 'object' && !Array.isArray(parsed))
|
|
@@ -29,8 +29,8 @@ export type BundleValue = string | {
|
|
|
29
29
|
};
|
|
30
30
|
/** Remote (bundle@host) push destination backend. */
|
|
31
31
|
export type RemoteBackend = 'keychain' | 'file';
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
declare const SECRET_TYPES: readonly ["api-key", "token", "password", "url", "database-url", "ssh-key", "certificate", "webhook", "note"];
|
|
33
|
+
type SecretType = (typeof SECRET_TYPES)[number];
|
|
34
34
|
/** Per-secret metadata; absent fields are omitted at write time. */
|
|
35
35
|
export interface VarMeta {
|
|
36
36
|
type?: SecretType;
|
|
@@ -194,3 +194,4 @@ export interface RcSecretFinding {
|
|
|
194
194
|
/** The file-store master passphrase gets called out separately. */
|
|
195
195
|
isMasterPassphrase: boolean;
|
|
196
196
|
}
|
|
197
|
+
export {};
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* `secrets-client.ts` docblock).
|
|
12
12
|
*/
|
|
13
13
|
// --- bundle document ---------------------------------------------------
|
|
14
|
-
|
|
14
|
+
const SECRET_TYPES = [
|
|
15
15
|
'api-key',
|
|
16
16
|
'token',
|
|
17
17
|
'password',
|
|
@@ -22,3 +22,4 @@ export const SECRET_TYPES = [
|
|
|
22
22
|
'webhook',
|
|
23
23
|
'note',
|
|
24
24
|
];
|
|
25
|
+
export {};
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
// ENOTEMPTY the sweep exists to prevent, and nothing runs `agents upgrade` to
|
|
10
10
|
// trigger that sweep in the meantime. Periodic cadence closes that gap
|
|
11
11
|
// fleet-wide (via the daemon's self-heal service) and on demand via
|
|
12
|
-
// `agents
|
|
12
|
+
// `agents sync`.
|
|
13
13
|
//
|
|
14
14
|
// The age guard is load-bearing: a staging dir can be legitimately mid-write
|
|
15
15
|
// by a CONCURRENT upgrade this instant. Only a dir older than the guard is
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { HealCheck, HealCheckId, HealCadence, SelfHealReport } from './types.js';
|
|
2
2
|
export declare const HEAL_CHECKS: HealCheck[];
|
|
3
|
-
|
|
3
|
+
interface SelfHealOptions {
|
|
4
4
|
/** Restrict to these check ids; omit to run every registered check. */
|
|
5
5
|
checks?: HealCheckId[];
|
|
6
6
|
/** Only run checks whose cadence is in this set (daemon scheduling). */
|
|
7
7
|
cadences?: HealCadence[];
|
|
8
|
-
/** 'safe' (daemon default) or 'full' (
|
|
8
|
+
/** 'safe' (daemon default) or 'full' (agents sync). Default 'safe'. */
|
|
9
9
|
mode?: 'safe' | 'full';
|
|
10
10
|
/** Detect only — never write. Default false. */
|
|
11
11
|
dryRun?: boolean;
|
|
@@ -20,3 +20,4 @@ export declare function selfHealChangedAnything(report: SelfHealReport): boolean
|
|
|
20
20
|
export declare function selfHealNeedsAttention(report: SelfHealReport): boolean;
|
|
21
21
|
/** One-line human summary, e.g. "shims: 2 fixed; path: 1 fixed". */
|
|
22
22
|
export declare function summarizeSelfHeal(report: SelfHealReport): string;
|
|
23
|
+
export {};
|
|
@@ -2,7 +2,7 @@ export type HealCheckId = 'resources' | 'hook-runtime' | 'hook-manifest' | 'shim
|
|
|
2
2
|
/** When the daemon schedules a check. */
|
|
3
3
|
export type HealCadence = 'startup' | 'frequent' | 'periodic';
|
|
4
4
|
export interface HealCtx {
|
|
5
|
-
/** 'safe' = daemon (low-risk only); 'full' =
|
|
5
|
+
/** 'safe' = daemon (low-risk only); 'full' = agents sync (everything). */
|
|
6
6
|
mode: 'safe' | 'full';
|
|
7
7
|
/** Detect only — never write. Powers `agents doctor` (read-only) and previews. */
|
|
8
8
|
dryRun: boolean;
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
// when `ctx.dryRun`), mirroring the existing resource heal (heal.ts) which computes
|
|
11
11
|
// and applies together. `mode` gates how aggressive a repair may be: 'safe' (the
|
|
12
12
|
// daemon default) fixes only low-risk drift and merely reports risky conditions;
|
|
13
|
-
// 'full' (`agents
|
|
13
|
+
// 'full' (`agents sync`) applies everything.
|
|
14
14
|
/** Convenience: an all-clear result. */
|
|
15
15
|
export function okResult() {
|
|
16
16
|
return { fixed: [], needsAttention: [], ok: true };
|
|
@@ -307,7 +307,7 @@ export interface MultiInstallInventoryEntry {
|
|
|
307
307
|
/** True for the copy that is currently executing. */
|
|
308
308
|
running: boolean;
|
|
309
309
|
/**
|
|
310
|
-
* True when a bare `agents
|
|
310
|
+
* True when a bare `agents sync` deletes this copy (RUSH-2415:
|
|
311
311
|
* npx-cache / unsafe-legacy / pre-1.22.30 with a fixed peer). False for the
|
|
312
312
|
* running copy and for any duplicate --fix will not touch — a healthy
|
|
313
313
|
* >=1.22.30 peer, or a pre-1.22.30 copy with no fixed peer to fall back to;
|
|
@@ -317,7 +317,7 @@ export interface MultiInstallInventoryEntry {
|
|
|
317
317
|
}
|
|
318
318
|
/**
|
|
319
319
|
* The exact shell command that removes the install at `packageRoot` by hand —
|
|
320
|
-
* the remedy for duplicates `
|
|
320
|
+
* the remedy for duplicates `agents sync` deliberately will not purge
|
|
321
321
|
* (RUSH-2705). `--prefix` pins the target tree no matter which npm binary
|
|
322
322
|
* PATH resolves, mirroring installPackageIntoPrefix.
|
|
323
323
|
*/
|
|
@@ -347,7 +347,7 @@ export declare function isNpxCacheInstall(packageRoot: string): boolean;
|
|
|
347
347
|
*/
|
|
348
348
|
export declare function isTouchIdStormFixedVersion(version: string): boolean;
|
|
349
349
|
/**
|
|
350
|
-
* Classify discovered installs that
|
|
350
|
+
* Classify discovered installs that agents sync / upgrade may delete.
|
|
351
351
|
*
|
|
352
352
|
* Never marks the running package root. Auto-purge is limited to copies that
|
|
353
353
|
* cannot be the intended primary install:
|
|
@@ -371,7 +371,7 @@ export declare function purgeRemovableAgentsCliInstalls(candidates: RemovableAge
|
|
|
371
371
|
dryRun?: boolean;
|
|
372
372
|
runningRoot?: string;
|
|
373
373
|
}): PurgeRemovableInstallsResult;
|
|
374
|
-
/** A detected duplicate that `
|
|
374
|
+
/** A detected duplicate that `agents sync` will not purge (RUSH-2705). */
|
|
375
375
|
export interface UnresolvedDuplicateInstall {
|
|
376
376
|
packageRoot: string;
|
|
377
377
|
version: string;
|
|
@@ -393,7 +393,7 @@ export interface RemediateStaleInstallsResult extends PurgeRemovableInstallsResu
|
|
|
393
393
|
unresolved: UnresolvedDuplicateInstall[];
|
|
394
394
|
}
|
|
395
395
|
/**
|
|
396
|
-
* Scan + classify + purge in one call. Used by `agents
|
|
396
|
+
* Scan + classify + purge in one call. Used by `agents sync` and
|
|
397
397
|
* `agents upgrade` so both paths remediate the same set of latent copies.
|
|
398
398
|
*/
|
|
399
399
|
export declare function remediateStaleAgentsCliInstalls(opts: {
|
package/dist/lib/self-update.js
CHANGED
|
@@ -669,7 +669,7 @@ function withRunningInstall(installs, runningRoot, runningVersion) {
|
|
|
669
669
|
}
|
|
670
670
|
/**
|
|
671
671
|
* The exact shell command that removes the install at `packageRoot` by hand —
|
|
672
|
-
* the remedy for duplicates `
|
|
672
|
+
* the remedy for duplicates `agents sync` deliberately will not purge
|
|
673
673
|
* (RUSH-2705). `--prefix` pins the target tree no matter which npm binary
|
|
674
674
|
* PATH resolves, mirroring installPackageIntoPrefix.
|
|
675
675
|
*/
|
|
@@ -720,7 +720,7 @@ export function buildMultiInstallInventory(runningRoot, runningVersion, installs
|
|
|
720
720
|
/** True when the package root lives under npm's `_npx` cache (ephemeral runs). */
|
|
721
721
|
export function isNpxCacheInstall(packageRoot) {
|
|
722
722
|
// Split on either separator so a POSIX-shaped path is still recognized when
|
|
723
|
-
// this runs on Windows (
|
|
723
|
+
// this runs on Windows (agents sync / tests pass forward literal `_npx`
|
|
724
724
|
// paths from other boxes). `path.sep` alone missed `/home/…/_npx/…` on win32.
|
|
725
725
|
const parts = packageRoot.split(/[\\/]/);
|
|
726
726
|
return parts.includes('_npx');
|
|
@@ -741,7 +741,7 @@ export function isTouchIdStormFixedVersion(version) {
|
|
|
741
741
|
return compareVersions(version, TOUCH_ID_STORM_FIXED_SINCE) >= 0;
|
|
742
742
|
}
|
|
743
743
|
/**
|
|
744
|
-
* Classify discovered installs that
|
|
744
|
+
* Classify discovered installs that agents sync / upgrade may delete.
|
|
745
745
|
*
|
|
746
746
|
* Never marks the running package root. Auto-purge is limited to copies that
|
|
747
747
|
* cannot be the intended primary install:
|
|
@@ -866,7 +866,7 @@ export function purgeRemovableAgentsCliInstalls(candidates, opts = {}) {
|
|
|
866
866
|
return result;
|
|
867
867
|
}
|
|
868
868
|
/**
|
|
869
|
-
* Scan + classify + purge in one call. Used by `agents
|
|
869
|
+
* Scan + classify + purge in one call. Used by `agents sync` and
|
|
870
870
|
* `agents upgrade` so both paths remediate the same set of latent copies.
|
|
871
871
|
*/
|
|
872
872
|
export function remediateStaleAgentsCliInstalls(opts) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type SessionRunMode } from './types.js';
|
|
2
|
-
|
|
2
|
+
interface SessionActorRecord {
|
|
3
3
|
sessionId: string;
|
|
4
4
|
/** Resolved actor id (`resolveActor().id`) — the responsible human/agent. */
|
|
5
5
|
actor?: string;
|
|
@@ -36,7 +36,7 @@ export interface SessionActorRecord {
|
|
|
36
36
|
*/
|
|
37
37
|
export declare function writeSessionActorRecord(record: SessionActorRecord): void;
|
|
38
38
|
export declare function writeSessionAliasRecord(sessionId: string, alias: string): void;
|
|
39
|
-
|
|
39
|
+
type SessionAliasResolution = {
|
|
40
40
|
kind: 'resolved';
|
|
41
41
|
sessionId: string;
|
|
42
42
|
} | {
|
|
@@ -56,3 +56,4 @@ export declare function readSessionActorRecord(sessionId: string): SessionActorR
|
|
|
56
56
|
* yields an empty map.
|
|
57
57
|
*/
|
|
58
58
|
export declare function loadSessionActorIndex(): Map<string, SessionActorRecord>;
|
|
59
|
+
export {};
|
|
@@ -8,8 +8,6 @@
|
|
|
8
8
|
import type { SessionMeta, SessionArtifact } from './types.js';
|
|
9
9
|
/** Parse a session and return metadata for every file written or edited during it. */
|
|
10
10
|
export declare function discoverArtifacts(meta: SessionMeta): SessionArtifact[];
|
|
11
|
-
/** Refuse to load artifact files larger than this. Returns '' silently above the cap. */
|
|
12
|
-
export declare const ARTIFACT_MAX_BYTES = 50000000;
|
|
13
11
|
/** Read the current contents of an artifact file from disk. Rejects symlinks. */
|
|
14
12
|
export declare function readArtifact(artifact: SessionArtifact): string;
|
|
15
13
|
/** Resolve a user-provided name to an artifact by exact path, basename, or path suffix. */
|
|
@@ -65,7 +65,7 @@ export function discoverArtifacts(meta) {
|
|
|
65
65
|
return artifacts;
|
|
66
66
|
}
|
|
67
67
|
/** Refuse to load artifact files larger than this. Returns '' silently above the cap. */
|
|
68
|
-
|
|
68
|
+
const ARTIFACT_MAX_BYTES = 50_000_000;
|
|
69
69
|
/** Read the current contents of an artifact file from disk. Rejects symlinks. */
|
|
70
70
|
export function readArtifact(artifact) {
|
|
71
71
|
const stat = fs.lstatSync(artifact.path);
|
|
@@ -5,13 +5,7 @@
|
|
|
5
5
|
* summarize what actually happened instead of printing a wall of shell.
|
|
6
6
|
*/
|
|
7
7
|
export type BashCategory = 'vcs' | 'build-test' | 'install' | 'remote' | 'http' | 'media' | 'upscaling' | 'metadata' | 'probe' | 'search' | 'shell' | 'wait' | 'other';
|
|
8
|
-
|
|
9
|
-
category: BashCategory;
|
|
10
|
-
signal: 'high' | 'mid' | 'low';
|
|
11
|
-
action: string;
|
|
12
|
-
aliases?: string[];
|
|
13
|
-
}
|
|
14
|
-
export interface BashCommandInfo {
|
|
8
|
+
interface BashCommandInfo {
|
|
15
9
|
tool: string;
|
|
16
10
|
category: BashCategory;
|
|
17
11
|
subcommand: string;
|
|
@@ -66,3 +60,4 @@ export declare function detectBashMilestone(command: string): {
|
|
|
66
60
|
* Human-readable category label for renderers.
|
|
67
61
|
*/
|
|
68
62
|
export declare function categoryLabel(category: BashCategory): string;
|
|
63
|
+
export {};
|
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
*/
|
|
20
20
|
import { type SyncAgentSpec } from './sync/agents.js';
|
|
21
21
|
export declare const BUNDLE_KIND = "agents-session-bundle";
|
|
22
|
-
export declare const BUNDLE_VERSION = 1;
|
|
23
22
|
/** First line of a bundle: what it is and how the bodies are encoded. */
|
|
24
23
|
export interface BundleHeader {
|
|
25
24
|
kind: typeof BUNDLE_KIND;
|
|
@@ -71,7 +70,7 @@ export interface FileToExport {
|
|
|
71
70
|
absPath: string;
|
|
72
71
|
label?: string;
|
|
73
72
|
}
|
|
74
|
-
|
|
73
|
+
interface BuildRecordOpts {
|
|
75
74
|
/** Scrub secrets from the body before hashing/sealing (default-on at the command layer). */
|
|
76
75
|
redact: boolean;
|
|
77
76
|
/** Non-null → seal each body with this key; null → plaintext bodies. */
|
|
@@ -85,8 +84,6 @@ export interface BuildRecordOpts {
|
|
|
85
84
|
}
|
|
86
85
|
/** Look up the sync spec for an agent id (undefined → agent not sync-representable). */
|
|
87
86
|
export declare function specForAgent(agentId: string): SyncAgentSpec | undefined;
|
|
88
|
-
/** True when an agent's sessions can be represented in a bundle (has a sync spec). */
|
|
89
|
-
export declare function isExportableAgent(agentId: string): boolean;
|
|
90
87
|
/**
|
|
91
88
|
* Read one file and turn it into a bundle record. The hash and size are always
|
|
92
89
|
* computed over the PLAINTEXT (post-redaction) body, so they equal what lands on
|
|
@@ -128,7 +125,7 @@ export interface ImportPlanItem {
|
|
|
128
125
|
targetPath: string;
|
|
129
126
|
status: ImportStatus;
|
|
130
127
|
}
|
|
131
|
-
|
|
128
|
+
interface PlanImportOpts {
|
|
132
129
|
/** Key to open encrypted record bodies (null → only plaintext bodies readable). */
|
|
133
130
|
decryptKey: Buffer | null;
|
|
134
131
|
}
|
|
@@ -152,7 +149,7 @@ export interface WriteResult {
|
|
|
152
149
|
/** Records for agents with no sync spec. */
|
|
153
150
|
unknown: number;
|
|
154
151
|
}
|
|
155
|
-
|
|
152
|
+
interface WriteImportOpts {
|
|
156
153
|
overwrite: boolean;
|
|
157
154
|
decryptKey: Buffer | null;
|
|
158
155
|
}
|
|
@@ -162,3 +159,4 @@ export interface WriteImportOpts {
|
|
|
162
159
|
* are counted and skipped.
|
|
163
160
|
*/
|
|
164
161
|
export declare function writeImport(plan: ImportPlanItem[], opts: WriteImportOpts): WriteResult;
|
|
162
|
+
export {};
|
|
@@ -24,7 +24,7 @@ import { SYNC_AGENTS, mirrorPath } from './sync/agents.js';
|
|
|
24
24
|
import { redactSecrets } from '../redact.js';
|
|
25
25
|
import { encryptTranscript, decryptTranscriptBody } from './sync/transcript-crypto.js';
|
|
26
26
|
export const BUNDLE_KIND = 'agents-session-bundle';
|
|
27
|
-
|
|
27
|
+
const BUNDLE_VERSION = 1;
|
|
28
28
|
/** SHA-256 of a file body, used for the bundle's dedup/conflict check on import. */
|
|
29
29
|
function hashContent(content) {
|
|
30
30
|
return crypto.createHash('sha256').update(content).digest('hex');
|
|
@@ -33,10 +33,6 @@ function hashContent(content) {
|
|
|
33
33
|
export function specForAgent(agentId) {
|
|
34
34
|
return SYNC_AGENTS.find(s => s.id === agentId);
|
|
35
35
|
}
|
|
36
|
-
/** True when an agent's sessions can be represented in a bundle (has a sync spec). */
|
|
37
|
-
export function isExportableAgent(agentId) {
|
|
38
|
-
return specForAgent(agentId) !== undefined;
|
|
39
|
-
}
|
|
40
36
|
/**
|
|
41
37
|
* Read one file and turn it into a bundle record. The hash and size are always
|
|
42
38
|
* computed over the PLAINTEXT (post-redaction) body, so they equal what lands on
|
|
@@ -10,8 +10,6 @@
|
|
|
10
10
|
* GET /api/v1/cloud-runs/:id/session.jsonl → raw captured jsonl
|
|
11
11
|
*/
|
|
12
12
|
import type { SessionMeta } from './types.js';
|
|
13
|
-
export declare function assertContained(candidate: string, rootDir: string): string;
|
|
14
|
-
export declare function validateCloudExecutionId(executionId: string): string;
|
|
15
13
|
/**
|
|
16
14
|
* List cloud executions the user has captured sessions for. Includes
|
|
17
15
|
* completed + needs_review + failed; an empty session_path means capture
|
|
@@ -28,5 +26,3 @@ export declare function discoverCloudSessions(options?: {
|
|
|
28
26
|
export declare function ensureCloudSessionCached(executionId: string, destPath?: string): Promise<string>;
|
|
29
27
|
/** True if filePath points into the cloud session cache dir. */
|
|
30
28
|
export declare function isCloudSessionPath(filePath: string): boolean;
|
|
31
|
-
/** Extract execution_id from a cloud cache path. */
|
|
32
|
-
export declare function executionIdFromCloudPath(filePath: string): string | null;
|
|
@@ -57,7 +57,7 @@ function agentToFormat(agent) {
|
|
|
57
57
|
return 'opencode';
|
|
58
58
|
return null;
|
|
59
59
|
}
|
|
60
|
-
|
|
60
|
+
function assertContained(candidate, rootDir) {
|
|
61
61
|
const root = path.resolve(rootDir);
|
|
62
62
|
const resolved = path.resolve(root, candidate);
|
|
63
63
|
if (!resolved.startsWith(root + path.sep)) {
|
|
@@ -65,7 +65,7 @@ export function assertContained(candidate, rootDir) {
|
|
|
65
65
|
}
|
|
66
66
|
return resolved;
|
|
67
67
|
}
|
|
68
|
-
|
|
68
|
+
function validateCloudExecutionId(executionId) {
|
|
69
69
|
if (!CLOUD_EXECUTION_ID_RE.test(executionId)) {
|
|
70
70
|
throw new Error(`Invalid cloud execution_id: ${JSON.stringify(executionId)}`);
|
|
71
71
|
}
|
|
@@ -145,16 +145,3 @@ export function isCloudSessionPath(filePath) {
|
|
|
145
145
|
const resolved = path.resolve(filePath);
|
|
146
146
|
return resolved.startsWith(root + path.sep);
|
|
147
147
|
}
|
|
148
|
-
/** Extract execution_id from a cloud cache path. */
|
|
149
|
-
export function executionIdFromCloudPath(filePath) {
|
|
150
|
-
if (!isCloudSessionPath(filePath))
|
|
151
|
-
return null;
|
|
152
|
-
const rel = path.relative(CLOUD_CACHE_DIR, filePath);
|
|
153
|
-
const parts = rel.split(path.sep);
|
|
154
|
-
try {
|
|
155
|
-
return parts[0] ? validateCloudExecutionId(parts[0]) : null;
|
|
156
|
-
}
|
|
157
|
-
catch {
|
|
158
|
-
return null;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** A session's foreground/background presence. */
|
|
2
2
|
export type Presence = 'attached' | 'background' | 'parked';
|
|
3
|
-
|
|
3
|
+
interface DetachRecord {
|
|
4
4
|
sessionId: string;
|
|
5
5
|
agent: string;
|
|
6
6
|
cwd?: string;
|
|
@@ -28,3 +28,4 @@ export declare function isHeadlessAlive(rec: DetachRecord): boolean;
|
|
|
28
28
|
* - record + pid exited -> `parked` (the run finished; transcript is durable)
|
|
29
29
|
*/
|
|
30
30
|
export declare function presenceFromStore(sessionId: string): Presence | undefined;
|
|
31
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Detached-session store — the record `agents sessions detach` writes and both
|
|
3
|
-
* `agents sessions
|
|
3
|
+
* `agents sessions resume` and the active-session scan read to know an agent is
|
|
4
4
|
* "backgrounded": running headless with no terminal, continuing its task
|
|
5
5
|
* unattended.
|
|
6
6
|
*
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
import fs from 'node:fs';
|
|
15
15
|
import path from 'node:path';
|
|
16
16
|
import { getSystemAgentsDir } from '../state.js';
|
|
17
|
-
import { captureProcessStartTime } from '../
|
|
17
|
+
import { captureProcessStartTime } from '../platform/process.js';
|
|
18
18
|
function detachedDir() {
|
|
19
19
|
return path.join(getSystemAgentsDir(), 'detached');
|
|
20
20
|
}
|
|
@@ -13,7 +13,6 @@ export interface FileChange {
|
|
|
13
13
|
path: string;
|
|
14
14
|
op: FileOp;
|
|
15
15
|
}
|
|
16
|
-
export declare const READ_TOOLS: Set<string>;
|
|
17
16
|
export declare const WRITE_TOOLS: Set<string>;
|
|
18
17
|
export declare const EDIT_TOOLS: Set<string>;
|
|
19
18
|
/**
|
|
@@ -51,7 +50,7 @@ export declare function toolHistogram(toolCounts: Record<string, number>, top?:
|
|
|
51
50
|
* only surfaces repeatable tools.
|
|
52
51
|
*/
|
|
53
52
|
export declare function bashToolCounts(events: SessionEvent[]): Record<string, number>;
|
|
54
|
-
|
|
53
|
+
interface TestResult {
|
|
55
54
|
runner: string;
|
|
56
55
|
passed?: number;
|
|
57
56
|
failed?: number;
|
|
@@ -64,3 +63,4 @@ export interface TestResult {
|
|
|
64
63
|
* (tool_use) with the next tool_result's output. Returns undefined if none ran.
|
|
65
64
|
*/
|
|
66
65
|
export declare function detectTestResult(events: SessionEvent[]): TestResult | undefined;
|
|
66
|
+
export {};
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
import { bucketKey, classifyBashCommand } from './bash-command.js';
|
|
11
11
|
// Tool vocab mirrors parse.ts / render.ts so classification matches what those
|
|
12
12
|
// modules already recognize across Claude/Codex/others.
|
|
13
|
-
|
|
13
|
+
const READ_TOOLS = new Set(['Read', 'read_file', 'view_file', 'cat_file', 'get_file']);
|
|
14
14
|
export const WRITE_TOOLS = new Set(['Write', 'write_file', 'create_file', 'Create']);
|
|
15
15
|
export const EDIT_TOOLS = new Set(['Edit', 'edit_file', 'replace', 'patch', 'MultiEdit', 'apply_patch']);
|
|
16
16
|
/**
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import type { SessionMeta } from './types.js';
|
|
17
17
|
/** File-change tally as `sessions preview --json` serializes it (digest.changes). */
|
|
18
|
-
|
|
18
|
+
interface ForkRecapChanges {
|
|
19
19
|
created: number;
|
|
20
20
|
modified: number;
|
|
21
21
|
deleted: number;
|
|
22
22
|
}
|
|
23
23
|
/** Everything the recap seed is built from — resolved cross-fleet before launch. */
|
|
24
|
-
|
|
24
|
+
interface ForkRecapInput {
|
|
25
25
|
/** Source harness id — the sibling launches the same one. */
|
|
26
26
|
agent: string;
|
|
27
27
|
/** Display label for the source (label → topic → short id, resolved by the caller). */
|
|
@@ -57,3 +57,4 @@ export declare function forkLabelFor(session: Pick<SessionMeta, 'label' | 'gener
|
|
|
57
57
|
* orchestration in `commands/fork.ts` stays the only side-effecting layer.
|
|
58
58
|
*/
|
|
59
59
|
export declare function buildForkRecap(input: ForkRecapInput): string;
|
|
60
|
+
export {};
|
|
@@ -30,7 +30,7 @@ export declare function isSkillInvocation(e: SessionEvent): boolean;
|
|
|
30
30
|
* `args.skill` (or `args.name`). Sorted by count desc, then name.
|
|
31
31
|
*/
|
|
32
32
|
export declare function extractSkills(events: SessionEvent[]): SkillUse[];
|
|
33
|
-
|
|
33
|
+
interface SlashCommandUse {
|
|
34
34
|
/** WITH the leading slash, e.g. `/recap`, `/code:commit` — matches SessionEvent.slashCommand's shape. */
|
|
35
35
|
name: string;
|
|
36
36
|
count: number;
|
|
@@ -43,7 +43,7 @@ export interface SlashCommandUse {
|
|
|
43
43
|
* count desc, then name.
|
|
44
44
|
*/
|
|
45
45
|
export declare function extractSlashCommands(events: SessionEvent[]): SlashCommandUse[];
|
|
46
|
-
|
|
46
|
+
interface HookUse {
|
|
47
47
|
/** Hook name as configured, e.g. `SessionStart:startup`. */
|
|
48
48
|
name: string;
|
|
49
49
|
/** Lifecycle event, e.g. `SessionStart`. */
|
|
@@ -60,8 +60,8 @@ export interface HookUse {
|
|
|
60
60
|
* Sorted by count desc, then name.
|
|
61
61
|
*/
|
|
62
62
|
export declare function extractHooks(events: SessionEvent[]): HookUse[];
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
type LinkKind = 'linear' | 'jira' | 'github' | 'gitlab' | 'other';
|
|
64
|
+
interface SessionLink {
|
|
65
65
|
kind: LinkKind;
|
|
66
66
|
url: string;
|
|
67
67
|
/** Short display label: `RUSH-2076`, `PR#1755`, `owner/repo#123`, host. */
|
|
@@ -113,7 +113,7 @@ export declare function harnessTracksBackgroundShells(agent: SessionAgentId): bo
|
|
|
113
113
|
* matching events while streaming instead of re-reading the transcript.
|
|
114
114
|
*/
|
|
115
115
|
export declare function isBackgroundShellStart(e: SessionEvent): boolean;
|
|
116
|
-
|
|
116
|
+
interface BackgroundShell {
|
|
117
117
|
/** The command line as invoked, trimmed for display. */
|
|
118
118
|
command: string;
|
|
119
119
|
timestamp: string;
|
|
@@ -148,3 +148,4 @@ export declare function extractBackgroundShells(events: SessionEvent[]): Backgro
|
|
|
148
148
|
* different answer; do not "unify" them.
|
|
149
149
|
*/
|
|
150
150
|
export declare function isSubAgentTool(tool: string, command: string): boolean;
|
|
151
|
+
export {};
|
|
@@ -39,7 +39,7 @@ export declare function recordCompletedLaunch(binding: PidSessionEntry | undefin
|
|
|
39
39
|
* collision (pid reuse, or a launch id lingering from a since-dead process).
|
|
40
40
|
*/
|
|
41
41
|
export declare function loadHookSessionIndex(): HookSessionIndex;
|
|
42
|
-
|
|
42
|
+
interface ResolveOpts {
|
|
43
43
|
pid: number;
|
|
44
44
|
kind: string;
|
|
45
45
|
launchId?: string;
|
|
@@ -60,3 +60,4 @@ export declare function resolveHookSessionRecord(index: HookSessionIndex, opts:
|
|
|
60
60
|
/** The session id alone — see {@link resolveHookSessionRecord} for the full record
|
|
61
61
|
* (which also carries the SessionStart `ts` used to stamp `startedAtMs`). */
|
|
62
62
|
export declare function resolveHookSessionId(index: HookSessionIndex, opts: ResolveOpts): string | undefined;
|
|
63
|
+
export {};
|