@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
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
import type { Command } from 'commander';
|
|
9
9
|
export { buildRoutineListJson } from '../lib/scheduling/routines.js';
|
|
10
10
|
import type { JobConfig, RunMeta } from '../lib/scheduling/routines.js';
|
|
11
|
-
import type { DeviceRegistry } from '../lib/devices/registry.js';
|
|
12
11
|
/**
|
|
13
12
|
* Human-friendly wall-clock a run took (e.g. " · 3 min", " · 45 sec"), or ""
|
|
14
13
|
* when it hasn't completed or timestamps are unparseable. Leading separator lets
|
|
@@ -27,7 +26,7 @@ export declare function formatRunDuration(startedAt: string, completedAt: string
|
|
|
27
26
|
* history stays readable via `agents routines runs <name>`, and the owning
|
|
28
27
|
* device's status via `agents routines list --device <name>`.
|
|
29
28
|
*/
|
|
30
|
-
|
|
29
|
+
interface RoutineListGroup {
|
|
31
30
|
key: string;
|
|
32
31
|
title: string;
|
|
33
32
|
jobs: JobConfig[];
|
|
@@ -38,7 +37,6 @@ export interface RoutineListGroup {
|
|
|
38
37
|
*/
|
|
39
38
|
local: boolean;
|
|
40
39
|
}
|
|
41
|
-
export declare function groupRoutineJobsByDevice(jobs: JobConfig[], registry: DeviceRegistry, self?: string): RoutineListGroup[];
|
|
42
40
|
/**
|
|
43
41
|
* Group routines by their `projects` metadata field.
|
|
44
42
|
* Named projects come first (alphabetically), followed by All projects, Cross-project,
|
|
@@ -116,7 +116,7 @@ function deviceLabel(job, width) {
|
|
|
116
116
|
: raw;
|
|
117
117
|
return { raw, display, dim: full.length === 0 || !jobRunsOnThisDevice(job) };
|
|
118
118
|
}
|
|
119
|
-
|
|
119
|
+
function groupRoutineJobsByDevice(jobs, registry, self = machineId()) {
|
|
120
120
|
const groups = new Map();
|
|
121
121
|
const add = (key, title, job) => {
|
|
122
122
|
const existing = groups.get(key);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AgentId } from '../lib/types.js';
|
|
2
2
|
import { type RotateCandidate } from '../lib/accounting/rotate.js';
|
|
3
|
-
|
|
3
|
+
interface RunAccountChoice {
|
|
4
4
|
name: string;
|
|
5
5
|
value: string;
|
|
6
6
|
disabled?: string;
|
|
@@ -93,3 +93,4 @@ export declare function noVerifiedUsageDecision(input: {
|
|
|
93
93
|
export declare function pickSignInLaunchVersion(agent: AgentId, recoverable: RotateCandidate[], quiet?: boolean): Promise<string | null>;
|
|
94
94
|
/** Prompt for one safe installed account/version. A cancelled picker launches nothing. */
|
|
95
95
|
export declare function pickRunAccountCandidate(agent: AgentId): Promise<RotateCandidate | null>;
|
|
96
|
+
export {};
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Task definitions live under cli/bench/tasks/<id>/task.json.
|
|
6
6
|
*/
|
|
7
|
-
|
|
7
|
+
interface BroadcastOpts {
|
|
8
8
|
listTasks?: boolean;
|
|
9
9
|
results?: string | true;
|
|
10
10
|
task?: string;
|
|
@@ -19,3 +19,4 @@ export interface BroadcastOpts {
|
|
|
19
19
|
}
|
|
20
20
|
/** Handle --broadcast / --list-tasks / --results on `agents run`. Always completes the path. */
|
|
21
21
|
export declare function handleBroadcast(opts: BroadcastOpts): Promise<void>;
|
|
22
|
+
export {};
|
|
@@ -15,7 +15,7 @@ export interface RunDeviceRow {
|
|
|
15
15
|
lastSeenAt?: string;
|
|
16
16
|
hasAccount?: boolean;
|
|
17
17
|
}
|
|
18
|
-
|
|
18
|
+
interface RunDeviceChoice {
|
|
19
19
|
name: string;
|
|
20
20
|
value: string;
|
|
21
21
|
disabled?: boolean | string;
|
|
@@ -56,3 +56,4 @@ export declare function pickRunDevice(opts: {
|
|
|
56
56
|
agent: AgentId;
|
|
57
57
|
accountLabel?: string;
|
|
58
58
|
}): Promise<string | null>;
|
|
59
|
+
export {};
|
|
@@ -15,6 +15,20 @@
|
|
|
15
15
|
* retired in-repo engine (`commands/secrets.ts` and its siblings), which stays
|
|
16
16
|
* in the tree, unregistered, until every consumer has moved off it (tasks.md
|
|
17
17
|
* item 7).
|
|
18
|
+
*
|
|
19
|
+
* `secrets` is listed in {@link import('../lib/hosts/passthrough.js').OWN_HOST_COMMANDS}
|
|
20
|
+
* so `--device` never routes through the generic SSH passthrough — the engine
|
|
21
|
+
* has no fleet registry of its own (PHNX-4090), so a `--device <name>` here is
|
|
22
|
+
* rewritten to `--host ssh://user@host` before exec, exactly like
|
|
23
|
+
* `agents computer`'s equivalent rewrite. An explicit `--host` on the command
|
|
24
|
+
* line is left untouched.
|
|
18
25
|
*/
|
|
19
26
|
import type { Command } from 'commander';
|
|
27
|
+
/**
|
|
28
|
+
* Rewrite a `--device <name>` (or `-D`) on the forwarded argv to
|
|
29
|
+
* `--host ssh://user@host`, the address grammar `secrets` speaks (PHNX-4090).
|
|
30
|
+
* A `--host` the caller already typed wins — `--device` is left in place so
|
|
31
|
+
* the standalone binary reports the same "both given" ambiguity it always has.
|
|
32
|
+
*/
|
|
33
|
+
export declare function rewriteDeviceToHost(argv: string[]): Promise<string[]>;
|
|
20
34
|
export declare function registerSecretsCommands(program: Command): void;
|
|
@@ -1,7 +1,26 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import { spawnSync } from 'node:child_process';
|
|
3
3
|
import { buildServeEnv, invocation, resolveSecretsBin, SecretsClientError } from '../lib/secrets-client.js';
|
|
4
|
+
import { flagValue } from '../lib/hosts/routing-flag.js';
|
|
5
|
+
import { stripRoutingFlags } from '../lib/hosts/remote-cmd.js';
|
|
6
|
+
import { resolveRemoteDevice } from '../lib/ssh-tunnel.js';
|
|
4
7
|
const INSTALL_HINT = 'npm i -g @phnx-labs/secrets-cli';
|
|
8
|
+
/**
|
|
9
|
+
* Rewrite a `--device <name>` (or `-D`) on the forwarded argv to
|
|
10
|
+
* `--host ssh://user@host`, the address grammar `secrets` speaks (PHNX-4090).
|
|
11
|
+
* A `--host` the caller already typed wins — `--device` is left in place so
|
|
12
|
+
* the standalone binary reports the same "both given" ambiguity it always has.
|
|
13
|
+
*/
|
|
14
|
+
export async function rewriteDeviceToHost(argv) {
|
|
15
|
+
if (flagValue(argv, 'host', 'H') !== undefined)
|
|
16
|
+
return argv;
|
|
17
|
+
const device = flagValue(argv, 'device', 'D');
|
|
18
|
+
if (device === undefined)
|
|
19
|
+
return argv;
|
|
20
|
+
const resolved = await resolveRemoteDevice(device, {});
|
|
21
|
+
const stripped = stripRoutingFlags(argv, [{ long: 'device', short: 'D', takesValue: true }]);
|
|
22
|
+
return [...stripped, '--host', `ssh://${resolved.target}`];
|
|
23
|
+
}
|
|
5
24
|
export function registerSecretsCommands(program) {
|
|
6
25
|
program
|
|
7
26
|
.command('secrets')
|
|
@@ -11,7 +30,7 @@ export function registerSecretsCommands(program) {
|
|
|
11
30
|
// Hand `-h`/`--help` through too — the real subcommand help lives in the
|
|
12
31
|
// installed `secrets` binary, not in this passthrough.
|
|
13
32
|
.helpOption(false)
|
|
14
|
-
.action(() => {
|
|
33
|
+
.action(async () => {
|
|
15
34
|
let bin;
|
|
16
35
|
try {
|
|
17
36
|
bin = resolveSecretsBin();
|
|
@@ -28,7 +47,7 @@ export function registerSecretsCommands(program) {
|
|
|
28
47
|
// Everything after the literal `secrets` token on the real argv — the
|
|
29
48
|
// subcommand + its own flags, verbatim, never re-parsed by commander.
|
|
30
49
|
const secretsIndex = process.argv.indexOf('secrets');
|
|
31
|
-
const forwarded = secretsIndex >= 0 ? process.argv.slice(secretsIndex + 1) : [];
|
|
50
|
+
const forwarded = await rewriteDeviceToHost(secretsIndex >= 0 ? process.argv.slice(secretsIndex + 1) : []);
|
|
32
51
|
const { command, prefix } = invocation(bin);
|
|
33
52
|
const res = spawnSync(command, [...prefix, ...forwarded], {
|
|
34
53
|
stdio: 'inherit',
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { Command } from 'commander';
|
|
2
2
|
import { type ToolIndexCoverage } from '../lib/session/tool-index.js';
|
|
3
3
|
import { type SessionTitleRunner } from '../lib/session/title.js';
|
|
4
|
-
|
|
4
|
+
interface ToolBackfillMachineResult {
|
|
5
5
|
machine: string;
|
|
6
6
|
indexedFiles: number;
|
|
7
7
|
indexedCalls: number;
|
|
8
8
|
coverage: ToolIndexCoverage;
|
|
9
9
|
}
|
|
10
|
-
|
|
10
|
+
interface ToolBackfillEnvelope {
|
|
11
11
|
schemaVersion: 1;
|
|
12
12
|
kind: 'tools-backfill';
|
|
13
13
|
generatedAt: string;
|
|
@@ -29,39 +29,6 @@ interface ToolBackfillOptions {
|
|
|
29
29
|
}
|
|
30
30
|
export declare function backfillToolsLocal(options: ToolBackfillOptions, oneBatch?: boolean): Promise<ToolBackfillMachineResult>;
|
|
31
31
|
export declare function runToolsBackfill(options: ToolBackfillOptions): Promise<ToolBackfillEnvelope>;
|
|
32
|
-
interface ResourceBackfillOptions {
|
|
33
|
-
agent?: string;
|
|
34
|
-
project?: string;
|
|
35
|
-
since?: string;
|
|
36
|
-
until?: string;
|
|
37
|
-
teams?: boolean;
|
|
38
|
-
json?: boolean;
|
|
39
|
-
}
|
|
40
|
-
export interface ResourceBackfillEnvelope {
|
|
41
|
-
schemaVersion: 1;
|
|
42
|
-
kind: 'resources-backfill';
|
|
43
|
-
generatedAt: string;
|
|
44
|
-
machine: string;
|
|
45
|
-
/** Sessions considered (matched the filter, had a real transcript). */
|
|
46
|
-
scanned: number;
|
|
47
|
-
/** Sessions (re)parsed and written this run. */
|
|
48
|
-
updated: number;
|
|
49
|
-
/** Sessions already current at this extractor version, skipped. */
|
|
50
|
-
skipped: number;
|
|
51
|
-
/** Sessions whose transcript could not be stat'd or parsed. */
|
|
52
|
-
failed: number;
|
|
53
|
-
/** Total session_resource_usage rows written across updated sessions. */
|
|
54
|
-
resourceRows: number;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Populate session_resource_usage for historical sessions on THIS machine.
|
|
58
|
-
* Local-only by design: the resource signal is derived from each machine's own
|
|
59
|
-
* transcripts, and the index is machine-local, so there is no cross-machine
|
|
60
|
-
* merge to do — run it on each box (or over `agents ssh`). Ensures the session
|
|
61
|
-
* index is complete first (discoverSessions), then re-derives usage gated by the
|
|
62
|
-
* resource_scan_ledger so reruns skip completed transcripts.
|
|
63
|
-
*/
|
|
64
|
-
export declare function runResourceBackfill(options: ResourceBackfillOptions): Promise<ResourceBackfillEnvelope>;
|
|
65
32
|
interface TitleBackfillOptions {
|
|
66
33
|
session?: string;
|
|
67
34
|
limit?: string;
|
|
@@ -148,7 +148,7 @@ export async function runToolsBackfill(options) {
|
|
|
148
148
|
* index is complete first (discoverSessions), then re-derives usage gated by the
|
|
149
149
|
* resource_scan_ledger so reruns skip completed transcripts.
|
|
150
150
|
*/
|
|
151
|
-
|
|
151
|
+
async function runResourceBackfill(options) {
|
|
152
152
|
const { agent, version } = parseAgent(options.agent);
|
|
153
153
|
// Make sure every matching transcript is indexed before we re-derive usage.
|
|
154
154
|
await discoverSessions({
|
|
@@ -7,14 +7,4 @@
|
|
|
7
7
|
* UI. Both write the one store in `lib/session/bookmarks.ts`.
|
|
8
8
|
*/
|
|
9
9
|
import type { Command } from 'commander';
|
|
10
|
-
/**
|
|
11
|
-
* Resolve one user-typed id (usually the 8-char short id the listing prints) to
|
|
12
|
-
* a full session id. Ambiguity is an ERROR, not a silent first-match: bookmarking
|
|
13
|
-
* the wrong session is invisible until the user wonders where their bookmark went.
|
|
14
|
-
*/
|
|
15
|
-
export declare function resolveBookmarkTarget(idQuery: string): {
|
|
16
|
-
id: string;
|
|
17
|
-
} | {
|
|
18
|
-
error: string;
|
|
19
|
-
};
|
|
20
10
|
export declare function registerSessionsBookmarkCommand(sessionsCmd: Command): void;
|
|
@@ -16,7 +16,7 @@ import { isBookmarked, listBookmarks, setBookmark } from '../lib/session/bookmar
|
|
|
16
16
|
* a full session id. Ambiguity is an ERROR, not a silent first-match: bookmarking
|
|
17
17
|
* the wrong session is invisible until the user wonders where their bookmark went.
|
|
18
18
|
*/
|
|
19
|
-
|
|
19
|
+
function resolveBookmarkTarget(idQuery) {
|
|
20
20
|
const matches = findSessionsById(idQuery);
|
|
21
21
|
// A COMPLETE id needs no index entry: the id is the key the store is built on,
|
|
22
22
|
// and requiring a transcript row would refuse exactly the newest sessions — a
|
|
@@ -6,18 +6,17 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Resolution: find the active session by id, then resolve its exact split through
|
|
8
8
|
* the SAME canonical resolver the watchdog uses — `resolveInjectTargetForSession`
|
|
9
|
-
* (lib/terminal/resolve.ts), precedence tmux > iterm > vscodium
|
|
9
|
+
* (lib/terminal/resolve.ts), precedence tmux > iterm > vscodium. Sharing one
|
|
10
10
|
* resolver keeps the manual unblock path and the watchdog in agreement on which
|
|
11
11
|
* sessions are addressable (a prior duplicate resolver read only `provenance.reply`
|
|
12
12
|
* and could not address a VSCodium/Cursor terminal the watchdog handled fine).
|
|
13
|
-
* `--pane
|
|
13
|
+
* `--pane` targets a backend directly when the handle is already known.
|
|
14
14
|
*/
|
|
15
15
|
import type { Command } from 'commander';
|
|
16
16
|
import { type ActiveSession } from '../lib/session/active.js';
|
|
17
17
|
interface InjectOptions {
|
|
18
18
|
pane?: string;
|
|
19
19
|
socket?: string;
|
|
20
|
-
pty?: string;
|
|
21
20
|
/**
|
|
22
21
|
* The remote device. A single `--device box` arrives here as `['box']` because
|
|
23
22
|
* the parent `sessions` command's variadic `-D, --device <target...>` shadows
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Resolution: find the active session by id, then resolve its exact split through
|
|
8
8
|
* the SAME canonical resolver the watchdog uses — `resolveInjectTargetForSession`
|
|
9
|
-
* (lib/terminal/resolve.ts), precedence tmux > iterm > vscodium
|
|
9
|
+
* (lib/terminal/resolve.ts), precedence tmux > iterm > vscodium. Sharing one
|
|
10
10
|
* resolver keeps the manual unblock path and the watchdog in agreement on which
|
|
11
11
|
* sessions are addressable (a prior duplicate resolver read only `provenance.reply`
|
|
12
12
|
* and could not address a VSCodium/Cursor terminal the watchdog handled fine).
|
|
13
|
-
* `--pane
|
|
13
|
+
* `--pane` targets a backend directly when the handle is already known.
|
|
14
14
|
*/
|
|
15
15
|
import chalk from 'chalk';
|
|
16
16
|
import { getActiveSessions, shortIdFromName } from '../lib/session/active.js';
|
|
@@ -69,8 +69,6 @@ export function buildRemoteInjectArgv(sessionId, text, options) {
|
|
|
69
69
|
argv.push('--combined');
|
|
70
70
|
if (options.socket)
|
|
71
71
|
argv.push('--socket', options.socket);
|
|
72
|
-
if (options.pty)
|
|
73
|
-
argv.push('--pty', options.pty);
|
|
74
72
|
if (options.pane)
|
|
75
73
|
argv.push('--pane', options.pane);
|
|
76
74
|
if (options.json)
|
|
@@ -148,14 +146,11 @@ async function runInject(sessionId, text, options) {
|
|
|
148
146
|
console.error(chalk.red(message));
|
|
149
147
|
process.exit(1);
|
|
150
148
|
}
|
|
151
|
-
// Direct-target
|
|
152
|
-
// holds the pane id
|
|
153
|
-
//
|
|
149
|
+
// Direct-target shortcut skips the session lookup — the watchdog often already
|
|
150
|
+
// holds the pane id it wants to type into. The pane's exact address is known,
|
|
151
|
+
// so it composes with --device (tmux send-keys over SSH).
|
|
154
152
|
let target = null;
|
|
155
|
-
if (options.
|
|
156
|
-
target = { backend: 'pty', id: options.pty };
|
|
157
|
-
}
|
|
158
|
-
else if (options.pane) {
|
|
153
|
+
if (options.pane) {
|
|
159
154
|
target = { backend: 'tmux', pane: options.pane, socket: options.socket };
|
|
160
155
|
}
|
|
161
156
|
else if (device) {
|
|
@@ -200,7 +195,6 @@ export function registerSessionsInjectCommand(sessionsCmd) {
|
|
|
200
195
|
.command('inject <sessionId> <text>')
|
|
201
196
|
.description('Deliver text (+ Enter) into the terminal a running session lives in — nudge a stalled agent.')
|
|
202
197
|
.option('--pane <id>', 'Target a tmux pane id directly (e.g. %3), skipping session lookup')
|
|
203
|
-
.option('--pty <id>', 'Target an agents-pty session id directly, skipping session lookup')
|
|
204
198
|
.option('--socket <path>', 'tmux socket path (defaults to the session/shared socket)')
|
|
205
199
|
.option('--device <target>', 'Deliver on a remote device over SSH. With a bare session id, the session is resolved ON that device; with --pane, the pane is addressed there directly.')
|
|
206
200
|
.option('--no-enter', 'Send only the text, without a trailing Enter')
|
|
@@ -214,9 +208,6 @@ export function registerSessionsInjectCommand(sessionsCmd) {
|
|
|
214
208
|
# Target a tmux pane directly (what a watchdog already holds)
|
|
215
209
|
agents sessions inject _ "continue" --pane %3 --socket /tmp/agents/tmux.sock
|
|
216
210
|
|
|
217
|
-
# Type into an agents-pty session without submitting
|
|
218
|
-
agents sessions inject _ "ls" --pty $SID --no-enter
|
|
219
|
-
|
|
220
211
|
# Nudge a live session on another box (resolved on the device)
|
|
221
212
|
agents sessions inject 214edaae "continue" --device yosemite-s0
|
|
222
213
|
|
|
@@ -227,8 +218,8 @@ export function registerSessionsInjectCommand(sessionsCmd) {
|
|
|
227
218
|
- Ink-TUI Enter semantics: by default the text and Enter are two separate
|
|
228
219
|
writes, which is what Claude's Ink TUI needs. --combined fuses them.
|
|
229
220
|
- A session is addressable by id when it resolves to a precise split —
|
|
230
|
-
tmux, iTerm, a VSCodium/Cursor/VS Code integrated terminal
|
|
231
|
-
(resolveInjectTargetForSession). Use --pane
|
|
221
|
+
tmux, iTerm, or a VSCodium/Cursor/VS Code integrated terminal
|
|
222
|
+
(resolveInjectTargetForSession). Use --pane for direct targeting.
|
|
232
223
|
- The id may be the session id (short or full) OR the '<shortid>' suffix of
|
|
233
224
|
a tmux target (ag-<agent>-<shortid>) — the only selector a live tmux
|
|
234
225
|
session whose id column shows '-' exposes.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/** Flag subset both twins share for the interactive-routing gate. */
|
|
2
|
-
|
|
2
|
+
interface SessionsPickerGateOpts {
|
|
3
3
|
interactive?: boolean;
|
|
4
4
|
json?: boolean;
|
|
5
5
|
/** Present only on the browser twin; computer never sets it. */
|
|
6
6
|
open?: string | boolean;
|
|
7
7
|
}
|
|
8
|
-
|
|
8
|
+
interface SessionsPickerCommandSpec<TRow, TOpts extends SessionsPickerGateOpts> {
|
|
9
9
|
/**
|
|
10
10
|
* Browser requires `opts.open === undefined` so `--open` (bare or with a
|
|
11
11
|
* selector) falls through to the flat printer. Computer has no `--open`.
|
|
@@ -23,19 +23,9 @@ export interface SessionsPickerCommandSpec<TRow, TOpts extends SessionsPickerGat
|
|
|
23
23
|
enterHint: string;
|
|
24
24
|
onOpen: (row: TRow) => void | Promise<void>;
|
|
25
25
|
}
|
|
26
|
-
|
|
26
|
+
interface SessionsPickerCommand<TOpts extends SessionsPickerGateOpts> {
|
|
27
27
|
shouldOpen: (opts: TOpts, isTTY: boolean) => boolean;
|
|
28
28
|
run: (opts: TOpts) => Promise<void>;
|
|
29
29
|
}
|
|
30
|
-
export declare function shouldOpenInteractiveSessions(opts: SessionsPickerGateOpts, isTTY: boolean, requireOpenUndefined?: boolean): boolean;
|
|
31
|
-
export declare function browseSessionsUntilQuit<TRow>(spec: {
|
|
32
|
-
message: string;
|
|
33
|
-
rows: TRow[];
|
|
34
|
-
matches: (row: TRow, query: string) => boolean;
|
|
35
|
-
labelFor: (row: TRow) => string;
|
|
36
|
-
buildPreview: (row: TRow) => string;
|
|
37
|
-
emptyFilterMessage: string;
|
|
38
|
-
enterHint: string;
|
|
39
|
-
onOpen: (row: TRow) => void | Promise<void>;
|
|
40
|
-
}): Promise<void>;
|
|
41
30
|
export declare function createSessionsPickerCommand<TRow, TOpts extends SessionsPickerGateOpts>(spec: SessionsPickerCommandSpec<TRow, TOpts>): SessionsPickerCommand<TOpts>;
|
|
31
|
+
export {};
|
|
@@ -8,13 +8,13 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { itemPicker } from '../lib/picker.js';
|
|
10
10
|
import { isInteractiveTerminal, isPromptCancelled } from './utils.js';
|
|
11
|
-
|
|
11
|
+
function shouldOpenInteractiveSessions(opts, isTTY, requireOpenUndefined = false) {
|
|
12
12
|
return (opts.interactive !== false &&
|
|
13
13
|
!opts.json &&
|
|
14
14
|
(!requireOpenUndefined || opts.open === undefined) &&
|
|
15
15
|
isTTY);
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
async function browseSessionsUntilQuit(spec) {
|
|
18
18
|
for (;;) {
|
|
19
19
|
let picked;
|
|
20
20
|
try {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { SessionEvent, SessionMeta, TodoProgress } from '../lib/session/types.js';
|
|
2
2
|
import { fetchPeerPreviewDigest } from '../lib/session/remote-list.js';
|
|
3
|
-
import {
|
|
3
|
+
import { changeCounts, toolHistogram, detectTestResult } from '../lib/session/digest.js';
|
|
4
4
|
import type { FileChange } from '../lib/session/digest.js';
|
|
5
5
|
import { extractArtifacts, extractHooks, extractLinks, extractSkills } from '../lib/session/highlights.js';
|
|
6
6
|
/** A session whose transcript FILE is on another machine: its `filePath` is on
|
|
@@ -33,7 +33,7 @@ export interface PickedSession {
|
|
|
33
33
|
session: SessionMeta;
|
|
34
34
|
action: 'resume' | 'view';
|
|
35
35
|
}
|
|
36
|
-
|
|
36
|
+
interface SessionPickerConfig {
|
|
37
37
|
message: string;
|
|
38
38
|
/** Dim hint line shown under the header (filters/flags tip). */
|
|
39
39
|
subtitle?: string;
|
|
@@ -156,15 +156,9 @@ export interface SessionPreviewDigest {
|
|
|
156
156
|
}
|
|
157
157
|
/** Fold a harness-normalized event stream into the stable preview data model. */
|
|
158
158
|
export declare function buildSessionPreviewDigest(events: SessionEvent[], session: SessionMeta): SessionPreviewDigest;
|
|
159
|
-
/**
|
|
160
|
-
* Unique directories the session touched, compact and human-readable.
|
|
161
|
-
* Prefer `session.recentDirectoriesTouched` — the scan records it on the row, so
|
|
162
|
-
* it is present for remote rows whose transcript we can't parse here — otherwise
|
|
163
|
-
* derive from the file-change + tool paths already available.
|
|
164
|
-
*/
|
|
165
|
-
export declare function directoriesTouched(session: SessionMeta, events: SessionEvent[], changes: ReturnType<typeof classifyFileChanges>): string[];
|
|
166
159
|
/** Relativize a file path to its parent dir, short enough for one preview line. */
|
|
167
160
|
export declare function relativizeDir(filePath: string, cwd?: string): string | undefined;
|
|
168
161
|
export declare function renderLastResponse(content: string, maxLines?: number, width?: number): string[];
|
|
169
162
|
/** Show an interactive session picker and return the selected session with its action (resume or view). */
|
|
170
163
|
export declare function sessionPicker(config: SessionPickerConfig): Promise<PickedSession | null>;
|
|
164
|
+
export {};
|
|
@@ -417,7 +417,7 @@ export function buildPreview(session) {
|
|
|
417
417
|
}
|
|
418
418
|
// No transcript on disk — either an archived session (file gone, user turns
|
|
419
419
|
// still in the DB — RUSH-2436), a live session not indexed locally, or a
|
|
420
|
-
// synthesized entry (
|
|
420
|
+
// synthesized entry (an attach-only resume). Show the header + a clean note.
|
|
421
421
|
if (!session.filePath || !fs.existsSync(session.filePath)) {
|
|
422
422
|
const archivedContent = readSessionContent(session.id);
|
|
423
423
|
if (archivedContent && archivedContent.trim() !== '') {
|
|
@@ -965,7 +965,7 @@ function classifySessionTool(tool, command) {
|
|
|
965
965
|
* it is present for remote rows whose transcript we can't parse here — otherwise
|
|
966
966
|
* derive from the file-change + tool paths already available.
|
|
967
967
|
*/
|
|
968
|
-
|
|
968
|
+
function directoriesTouched(session, events, changes) {
|
|
969
969
|
const fromMeta = session.recentDirectoriesTouched;
|
|
970
970
|
if (Array.isArray(fromMeta) && fromMeta.length > 0) {
|
|
971
971
|
// The scan stores ABSOLUTE paths, so they go through the same relativizer the
|
|
@@ -4,7 +4,7 @@ import { type Backend, type SurfaceItem, type EngineContext, type Packing } from
|
|
|
4
4
|
import { type StrictResumeOptions } from './resume.js';
|
|
5
5
|
/** Opening more than this many live sessions at once asks for confirmation first. */
|
|
6
6
|
export declare const CONFIRM_THRESHOLD = 5;
|
|
7
|
-
|
|
7
|
+
interface ResumeOptions extends StrictResumeOptions {
|
|
8
8
|
agent?: string;
|
|
9
9
|
all?: boolean;
|
|
10
10
|
teams?: boolean;
|
|
@@ -32,9 +32,6 @@ export declare function buildSelectedResumeArgs(id: string, prompt: string | und
|
|
|
32
32
|
/** IDs and tmux aliases are actions, not picker search text. Human phrases keep
|
|
33
33
|
* the existing pre-filtered picker, while an explicit identity resumes directly. */
|
|
34
34
|
export declare function isDirectResumeSelector(query: string): boolean;
|
|
35
|
-
/** Re-enter through sessions resume so fleet routing and harness policy
|
|
36
|
-
* stay centralized. The child inherits this terminal for a real interactive resume. */
|
|
37
|
-
export declare function resumeSelectorInPlace(selector: string): Promise<void>;
|
|
38
35
|
/**
|
|
39
36
|
* Local preflight cannot inspect a peer's files or index. Leave peer validation
|
|
40
37
|
* to the existing origin-device recovery hop. --here without a remote surface
|
|
@@ -64,3 +61,4 @@ export declare function resumeHostMismatch(session: Pick<SessionMeta, 'shortId'
|
|
|
64
61
|
* user dismissed the chooser).
|
|
65
62
|
*/
|
|
66
63
|
export declare function resolveBackend(options: ResumeOptions, ctx: EngineContext, count: number): Promise<Backend | 'inplace' | 'cancel'>;
|
|
64
|
+
export {};
|
|
@@ -394,11 +394,6 @@ export function isDirectResumeSelector(query) {
|
|
|
394
394
|
const selector = query.trim();
|
|
395
395
|
return looksLikeSessionId(selector) || isAgentTmuxAlias(selector);
|
|
396
396
|
}
|
|
397
|
-
/** Re-enter through sessions resume so fleet routing and harness policy
|
|
398
|
-
* stay centralized. The child inherits this terminal for a real interactive resume. */
|
|
399
|
-
export async function resumeSelectorInPlace(selector) {
|
|
400
|
-
await spawnCliInPlace(['sessions', 'resume', selector]);
|
|
401
|
-
}
|
|
402
397
|
/**
|
|
403
398
|
* Local preflight cannot inspect a peer's files or index. Leave peer validation
|
|
404
399
|
* to the existing origin-device recovery hop. --here without a remote surface
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import type { Command } from 'commander';
|
|
19
19
|
/** One installed resource, keyed the same way session_resource_usage stores it. */
|
|
20
|
-
|
|
20
|
+
interface InstalledResource {
|
|
21
21
|
kind: 'skill' | 'command';
|
|
22
22
|
name: string;
|
|
23
23
|
plugin: string | null;
|
|
@@ -34,3 +34,4 @@ export declare function diffZeroInvoked(installed: InstalledResource[], invoked:
|
|
|
34
34
|
name: string;
|
|
35
35
|
}>): InstalledResource[];
|
|
36
36
|
export declare function registerSessionsStatsCommand(sessionsCmd: Command): void;
|
|
37
|
+
export {};
|
|
@@ -31,7 +31,7 @@ export function registerSessionsStopCommand(program) {
|
|
|
31
31
|
`,
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
|
-
|
|
34
|
+
async function stopSessionAction(id, opts = {}) {
|
|
35
35
|
const { self, activeById } = await gatherLiveTargets(!!opts.local, { includeCloud: true, selector: id });
|
|
36
36
|
const resolved = resolveOne(activeById, id);
|
|
37
37
|
if ('error' in resolved) {
|
|
@@ -2,7 +2,7 @@ import type { Command } from 'commander';
|
|
|
2
2
|
import type { SessionMeta, SessionAgentId } from '../lib/session/types.js';
|
|
3
3
|
/** Whether a session's transcript can be live-tailed (append-only JSONL agents). */
|
|
4
4
|
export declare function isTailable(agent: SessionAgentId): boolean;
|
|
5
|
-
|
|
5
|
+
interface TailFileOptions {
|
|
6
6
|
/** If true, emit every line from byte 0 first, then follow. Default false (EOF). */
|
|
7
7
|
fromStart?: boolean;
|
|
8
8
|
}
|
|
@@ -28,3 +28,4 @@ export declare function streamSessionTail(session: SessionMeta, options?: {
|
|
|
28
28
|
}): Promise<void>;
|
|
29
29
|
/** Attach the `tail` subcommand to an existing `sessions` command. */
|
|
30
30
|
export declare function registerSessionsTailCommand(sessionsCmd: Command): void;
|
|
31
|
+
export {};
|
|
@@ -7,7 +7,7 @@ import type { LineageEdge, LineageNode, SessionLineage } from '../lib/session/tr
|
|
|
7
7
|
/** Versioned envelope emitted by `--json` — the stable contract for consumers. */
|
|
8
8
|
export declare const SESSIONS_TRACE_SCHEMA_VERSION = 1;
|
|
9
9
|
/** The `diff` block of a `layout: 'compare'` envelope — everything but the two full trajectories, which already ride `sessions`. */
|
|
10
|
-
|
|
10
|
+
interface SessionsTraceDiffEnvelope {
|
|
11
11
|
divergence?: TrajectoryDivergence;
|
|
12
12
|
added: TrajectoryStep[];
|
|
13
13
|
removed: TrajectoryStep[];
|
|
@@ -17,7 +17,7 @@ export interface SessionsTraceDiffEnvelope {
|
|
|
17
17
|
truncatedB: number;
|
|
18
18
|
}
|
|
19
19
|
/** The `lineage` block of a `layout: 'lineage'` envelope — the delegation graph. */
|
|
20
|
-
|
|
20
|
+
interface SessionsTraceLineageEnvelope {
|
|
21
21
|
rootId: string;
|
|
22
22
|
nodes: LineageNode[];
|
|
23
23
|
edges: LineageEdge[];
|
|
@@ -25,7 +25,7 @@ export interface SessionsTraceLineageEnvelope {
|
|
|
25
25
|
unresolvedParentIds: string[];
|
|
26
26
|
}
|
|
27
27
|
/** The `--json` envelope: the versioned contract for the ext / triaging agents. */
|
|
28
|
-
|
|
28
|
+
interface SessionsTraceEnvelope {
|
|
29
29
|
schemaVersion: typeof SESSIONS_TRACE_SCHEMA_VERSION;
|
|
30
30
|
kind: 'sessions-trace';
|
|
31
31
|
layout: 'single' | 'compare' | 'lineage';
|
|
@@ -60,7 +60,7 @@ interface TraceOptions {
|
|
|
60
60
|
compare?: boolean;
|
|
61
61
|
tree?: boolean;
|
|
62
62
|
}
|
|
63
|
-
|
|
63
|
+
type RenderFormat = 'html' | 'text' | 'json';
|
|
64
64
|
/**
|
|
65
65
|
* Pick the rendering by audience: explicit `--html/--text/--json` win; otherwise
|
|
66
66
|
* a person at a TTY gets the visual HTML and a piped/headless caller (an agent)
|
|
@@ -84,8 +84,6 @@ export declare function renderSessionSteps(session: SessionMeta, options?: {
|
|
|
84
84
|
redact?: boolean;
|
|
85
85
|
knownSecrets?: readonly string[];
|
|
86
86
|
}): string;
|
|
87
|
-
/** Attach the trace behaviour to a command node (canonical or top-level alias). */
|
|
88
|
-
export declare function configureTraceCommand(cmd: Command): Command;
|
|
89
87
|
/** Canonical `agents sessions trace <selectors...>`. */
|
|
90
88
|
export declare function registerSessionsTraceCommand(sessionsCmd: Command): void;
|
|
91
89
|
/** Top-level alias `agents trace <selectors...>` (mirrors `agents insights`). */
|
|
@@ -184,7 +184,7 @@ export function renderSessionSteps(session, options = {}) {
|
|
|
184
184
|
return `${lines.join('\n')}\n\n${footer}\n`;
|
|
185
185
|
}
|
|
186
186
|
/** Attach the trace behaviour to a command node (canonical or top-level alias). */
|
|
187
|
-
|
|
187
|
+
function configureTraceCommand(cmd) {
|
|
188
188
|
cmd
|
|
189
189
|
.description('Visualize a session as a trajectory — a tool-call timeline you can read at a glance. Opens a visual for a person; prints a compact trajectory for an agent.')
|
|
190
190
|
.option('--html', 'Force the HTML rendering (opens in a browser)')
|