@phnx-labs/agents-cli 1.22.113 → 1.22.115
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +139 -0
- package/README.md +32 -113
- package/dist/browser.js +0 -0
- package/dist/cli/command-registry.d.ts +0 -60
- package/dist/cli/command-registry.js +57 -66
- package/dist/commands/accounts.d.ts +3 -77
- package/dist/commands/accounts.js +13 -366
- package/dist/commands/apply.d.ts +0 -4
- package/dist/commands/apply.js +3 -3
- package/dist/commands/audit.js +1 -1
- package/dist/commands/auth.js +0 -2
- package/dist/commands/browser-picker.d.ts +3 -6
- package/dist/commands/browser-picker.js +2 -2
- package/dist/commands/browser-sessions-picker.d.ts +2 -1
- package/dist/commands/browser.d.ts +53 -0
- package/dist/commands/browser.js +199 -9
- package/dist/commands/computer-sessions-picker.d.ts +2 -1
- package/dist/commands/computer.d.ts +14 -19
- package/dist/commands/computer.js +65 -10
- package/dist/commands/config.js +46 -2
- package/dist/commands/daemon.d.ts +0 -23
- package/dist/commands/daemon.js +1 -1
- package/dist/commands/detach-core.d.ts +2 -1
- package/dist/commands/detach.d.ts +0 -3
- package/dist/commands/detach.js +3 -3
- package/dist/commands/doctor.d.ts +2 -3
- package/dist/commands/doctor.js +0 -11
- package/dist/commands/events.d.ts +1 -3
- package/dist/commands/events.js +4 -7
- package/dist/commands/exec.d.ts +0 -1
- package/dist/commands/exec.js +2 -7
- package/dist/commands/feed-watch.js +52 -8
- package/dist/commands/feed.d.ts +3 -3
- package/dist/commands/feed.js +1 -1
- package/dist/commands/focus.d.ts +4 -4
- package/dist/commands/focus.js +1 -1
- package/dist/commands/go.d.ts +0 -17
- package/dist/commands/go.js +2 -19
- package/dist/commands/harness-hooks.d.ts +0 -7
- package/dist/commands/harness-hooks.js +1 -1
- package/dist/commands/harness-wizard.d.ts +2 -2
- package/dist/commands/harness.d.ts +3 -8
- package/dist/commands/harness.js +1 -1
- package/dist/commands/inspect.d.ts +2 -3
- package/dist/commands/inspect.js +1 -1
- package/dist/commands/logs.js +1 -1
- package/dist/commands/mcp.js +8 -83
- package/dist/commands/memory.js +4 -47
- package/dist/commands/message.d.ts +1 -1
- package/dist/commands/message.js +7 -7
- package/dist/commands/plugins.js +1 -93
- package/dist/commands/projects.d.ts +2 -18
- package/dist/commands/projects.js +89 -3
- package/dist/commands/repo.js +0 -44
- package/dist/commands/resource-view.d.ts +3 -2
- package/dist/commands/resume.d.ts +0 -1
- package/dist/commands/resume.js +5 -2
- package/dist/commands/routines.d.ts +1 -3
- package/dist/commands/routines.js +1 -1
- package/dist/commands/run-account-picker.d.ts +2 -1
- package/dist/commands/run-broadcast.d.ts +2 -1
- package/dist/commands/run-device-picker.d.ts +2 -1
- package/dist/commands/secrets-passthrough.d.ts +14 -0
- package/dist/commands/secrets-passthrough.js +23 -4
- package/dist/commands/send.d.ts +4 -4
- package/dist/commands/send.js +6 -51
- package/dist/commands/sessions-backfill.d.ts +2 -35
- package/dist/commands/sessions-backfill.js +1 -1
- package/dist/commands/sessions-backup-setup.js +1 -1
- package/dist/commands/sessions-bookmark.d.ts +0 -10
- package/dist/commands/sessions-bookmark.js +1 -1
- package/dist/commands/sessions-inject.d.ts +2 -3
- package/dist/commands/sessions-inject.js +8 -17
- package/dist/commands/sessions-picker-factory.d.ts +4 -14
- package/dist/commands/sessions-picker-factory.js +2 -2
- package/dist/commands/sessions-picker.d.ts +3 -9
- package/dist/commands/sessions-picker.js +2 -2
- package/dist/commands/sessions-resume.d.ts +2 -4
- package/dist/commands/sessions-resume.js +0 -6
- package/dist/commands/sessions-share.d.ts +5 -7
- package/dist/commands/sessions-share.js +98 -49
- package/dist/commands/sessions-stats.d.ts +2 -1
- package/dist/commands/sessions-stop.d.ts +0 -3
- package/dist/commands/sessions-stop.js +1 -1
- package/dist/commands/sessions-tail.d.ts +2 -1
- package/dist/commands/sessions-trace.d.ts +4 -6
- package/dist/commands/sessions-trace.js +1 -1
- package/dist/commands/sessions.d.ts +13 -104
- package/dist/commands/sessions.js +11 -18
- package/dist/commands/setup-browser.js +18 -2
- package/dist/commands/setup-computer.js +20 -6
- package/dist/commands/setup-mine.d.ts +0 -6
- package/dist/commands/setup-mine.js +1 -1
- package/dist/commands/setup-secrets.js +24 -4
- package/dist/commands/setup-terminal.d.ts +3 -0
- package/dist/commands/setup-terminal.js +22 -0
- package/dist/commands/setup.d.ts +3 -4
- package/dist/commands/setup.js +21 -11
- package/dist/commands/skills.js +0 -8
- package/dist/commands/ssh.d.ts +6 -0
- package/dist/commands/ssh.js +92 -233
- package/dist/commands/sync.js +14 -5
- package/dist/commands/teams-picker.d.ts +2 -5
- package/dist/commands/teams-picker.js +2 -2
- package/dist/commands/teams.d.ts +1 -7
- package/dist/commands/teams.js +2 -2
- package/dist/commands/tmux.d.ts +1 -1
- package/dist/commands/tmux.js +1 -1
- package/dist/commands/traces.js +1 -1
- package/dist/commands/upgrade.d.ts +2 -1
- package/dist/commands/utils.d.ts +1 -1
- package/dist/commands/utils.js +1 -1
- package/dist/lib/account-capabilities.d.ts +2 -1
- package/dist/lib/account-catalog.d.ts +4 -13
- package/dist/lib/account-catalog.js +1 -1
- package/dist/lib/account-registry.d.ts +3 -4
- package/dist/lib/account-registry.js +1 -1
- package/dist/lib/accounting/account-launch.d.ts +4 -3
- package/dist/lib/accounting/account-pool.d.ts +2 -1
- package/dist/lib/accounting/rotate.d.ts +3 -9
- package/dist/lib/accounting/rotate.js +2 -14
- package/dist/lib/accounting/usage-sync.d.ts +5 -4
- package/dist/lib/accounting/usage.d.ts +7 -31
- package/dist/lib/accounting/usage.js +4 -4
- package/dist/lib/accounts/add.d.ts +0 -5
- package/dist/lib/accounts/add.js +1 -7
- package/dist/lib/accounts/migrate.d.ts +8 -8
- package/dist/lib/accounts/migrate.js +1 -1
- package/dist/lib/acp/client.d.ts +3 -2
- package/dist/lib/acp/harnesses.d.ts +2 -2
- package/dist/lib/acp/harnesses.js +1 -1
- package/dist/lib/acp/run.d.ts +2 -1
- package/dist/lib/actor.d.ts +3 -2
- package/dist/lib/add-dir.d.ts +2 -17
- package/dist/lib/add-dir.js +2 -6
- package/dist/lib/address.d.ts +56 -0
- package/dist/lib/address.js +143 -0
- package/dist/lib/agent-spec/agents.d.ts +12 -28
- package/dist/lib/agent-spec/agents.js +2 -6
- package/dist/lib/agent-spec/primitives.d.ts +0 -7
- package/dist/lib/agent-spec/primitives.js +0 -6
- package/dist/lib/agent-spec/types.d.ts +2 -1
- package/dist/lib/analytics/dashboard.d.ts +1 -5
- package/dist/lib/analytics/dashboard.js +0 -2
- package/dist/lib/analytics/mix-commands.d.ts +0 -7
- package/dist/lib/analytics/mix-commands.js +3 -3
- package/dist/lib/analytics/recipes.d.ts +0 -12
- package/dist/lib/analytics/recipes.js +7 -31
- package/dist/lib/analytics/usage-db.d.ts +5 -32
- package/dist/lib/analytics/usage-db.js +1 -70
- package/dist/lib/answer-router.d.ts +7 -6
- package/dist/lib/answer-router.js +5 -11
- package/dist/lib/artifact-actions.d.ts +0 -4
- package/dist/lib/artifacts-client.d.ts +20 -0
- package/dist/lib/artifacts-client.js +46 -0
- package/dist/lib/ask-classifier.d.ts +3 -4
- package/dist/lib/ask-classifier.js +0 -7
- package/dist/lib/auth-health.d.ts +3 -46
- package/dist/lib/auth-health.js +3 -3
- package/dist/lib/auth-mint.d.ts +6 -6
- package/dist/lib/auth-mint.js +7 -7
- package/dist/lib/bench/runner.d.ts +2 -2
- package/dist/lib/bench/runner.js +1 -1
- package/dist/lib/bench/storage.d.ts +0 -1
- package/dist/lib/bench/storage.js +1 -1
- package/dist/lib/boot-profile.d.ts +0 -2
- package/dist/lib/boot-profile.js +0 -4
- package/dist/lib/brand.d.ts +0 -6
- package/dist/lib/brand.js +1 -1
- package/dist/lib/browser/arc-discovery.d.ts +4 -12
- package/dist/lib/browser/arc-discovery.js +1 -1
- package/dist/lib/browser/cdp.d.ts +1 -1
- package/dist/lib/browser/chrome.d.ts +2 -2
- package/dist/lib/browser/chrome.js +0 -4
- package/dist/lib/browser/chromium-discovery.d.ts +3 -2
- package/dist/lib/browser/drivers/arc.d.ts +3 -20
- package/dist/lib/browser/drivers/arc.js +2 -7
- package/dist/lib/browser/drivers/firefox.d.ts +2 -6
- package/dist/lib/browser/drivers/firefox.js +1 -1
- package/dist/lib/browser/drivers/local.d.ts +2 -1
- package/dist/lib/browser/drivers/ssh.d.ts +2 -3
- package/dist/lib/browser/drivers/ssh.js +0 -7
- package/dist/lib/browser/firefox-discovery.d.ts +4 -3
- package/dist/lib/browser/har.d.ts +8 -7
- package/dist/lib/browser/hygiene.d.ts +2 -3
- package/dist/lib/browser/hygiene.js +1 -1
- package/dist/lib/browser/ipc.d.ts +4 -3
- package/dist/lib/browser/ipc.js +1 -1
- package/dist/lib/browser/login-detection.d.ts +1 -8
- package/dist/lib/browser/registry.d.ts +2 -1
- package/dist/lib/browser/remote-control.d.ts +0 -7
- package/dist/lib/browser/remote-control.js +2 -2
- package/dist/lib/browser/resolve-target.d.ts +2 -6
- package/dist/lib/browser/resolve-target.js +3 -3
- package/dist/lib/browser/runtime-state.d.ts +59 -4
- package/dist/lib/browser/runtime-state.js +99 -18
- package/dist/lib/browser/service.d.ts +4 -4
- package/dist/lib/browser/service.js +21 -1
- package/dist/lib/browser/sessions-list.d.ts +0 -10
- package/dist/lib/browser/sessions-list.js +3 -3
- package/dist/lib/browser/stream.d.ts +2 -1
- package/dist/lib/browser/task-index.d.ts +4 -4
- package/dist/lib/browser/task-index.js +1 -1
- package/dist/lib/browser/types.d.ts +0 -20
- package/dist/lib/browser/types.js +1 -34
- package/dist/lib/browser/upload.d.ts +0 -27
- package/dist/lib/budget/ledger.d.ts +0 -2
- package/dist/lib/budget/ledger.js +1 -1
- package/dist/lib/budget/live-cloud.d.ts +2 -1
- package/dist/lib/budget/preflight.d.ts +3 -5
- package/dist/lib/budget/preflight.js +1 -1
- package/dist/lib/catchup.d.ts +2 -1
- package/dist/lib/channels/owner-forward.d.ts +5 -4
- package/dist/lib/channels/owner-sink.js +2 -2
- package/dist/lib/channels/providers/desktop.js +1 -1
- package/dist/lib/channels/providers/rush.d.ts +2 -1
- package/dist/lib/channels/registry.d.ts +1 -1
- package/dist/lib/channels/registry.js +1 -1
- package/dist/lib/channels/resolve.d.ts +3 -2
- package/dist/lib/channels/send.d.ts +5 -4
- package/dist/lib/cli-resources.d.ts +3 -9
- package/dist/lib/cli-resources.js +4 -2
- package/dist/lib/cloud/cursor.d.ts +1 -2
- package/dist/lib/cloud/cursor.js +1 -1
- package/dist/lib/cloud/dispatch.d.ts +2 -1
- package/dist/lib/cloud/dispatch.js +1 -1
- package/dist/lib/cloud/factory.d.ts +0 -2
- package/dist/lib/cloud/factory.js +1 -1
- package/dist/lib/cloud/rush.d.ts +3 -11
- package/dist/lib/cloud/rush.js +1 -1
- package/dist/lib/cloud/session-index.d.ts +2 -1
- package/dist/lib/cloud/types.d.ts +2 -1
- package/dist/lib/cloudflare/creds.d.ts +10 -0
- package/dist/lib/cloudflare/creds.js +46 -0
- package/dist/lib/cloudflare/provision.d.ts +35 -0
- package/dist/lib/cloudflare/provision.js +144 -0
- package/dist/lib/codex-policy.d.ts +2 -1
- package/dist/lib/commands.d.ts +7 -7
- package/dist/lib/commands.js +1 -1
- package/dist/lib/comms-render.d.ts +1 -1
- package/dist/lib/computer/context.d.ts +11 -3
- package/dist/lib/computer/context.js +2 -2
- package/dist/lib/computer/policy.d.ts +0 -12
- package/dist/lib/computer/policy.js +1 -1
- package/dist/lib/computer/sessions-list.d.ts +55 -0
- package/dist/lib/computer/sessions-list.js +168 -1
- package/dist/lib/computer-client.d.ts +3 -3
- package/dist/lib/computer-client.js +0 -1
- package/dist/lib/concurrency.d.ts +2 -1
- package/dist/lib/config-keys.d.ts +16 -3
- package/dist/lib/config-keys.js +47 -2
- package/dist/lib/convert.d.ts +0 -12
- package/dist/lib/convert.js +1 -12
- package/dist/lib/crabbox/cli.d.ts +6 -24
- package/dist/lib/crabbox/cli.js +2 -28
- package/dist/lib/crabbox/lease.d.ts +5 -6
- package/dist/lib/crabbox/lease.js +1 -1
- package/dist/lib/crabbox/progress.d.ts +2 -1
- package/dist/lib/crabbox/setup-copy.d.ts +2 -3
- package/dist/lib/crabbox/setup-copy.js +1 -1
- package/dist/lib/daemon/account-state-daemon-service.d.ts +1 -1
- package/dist/lib/daemon/attention-notify-service.d.ts +2 -1
- package/dist/lib/daemon/catchup-service.d.ts +2 -1
- package/dist/lib/daemon/daemon.d.ts +4 -4
- package/dist/lib/daemon/daemon.js +9 -2
- package/dist/lib/daemon/feed-stream-service.d.ts +23 -0
- package/dist/lib/daemon/feed-stream-service.js +40 -0
- package/dist/lib/daemon/harness-update-service.d.ts +2 -19
- package/dist/lib/daemon/harness-update-service.js +3 -3
- package/dist/lib/daemon/runner.d.ts +3 -3
- package/dist/lib/daemon/self-update-service.d.ts +1 -16
- package/dist/lib/daemon/self-update-service.js +6 -6
- package/dist/lib/daemon/state-dir-check-service.d.ts +2 -1
- package/dist/lib/daemon/supervisor.d.ts +3 -2
- package/dist/lib/daemon-services.d.ts +3 -2
- package/dist/lib/daemon-services.js +5 -0
- package/dist/lib/daemon-webhooks.d.ts +1 -1
- package/dist/lib/deeplink/register.d.ts +3 -13
- package/dist/lib/deeplink/register.js +3 -3
- package/dist/lib/deeplink/url.d.ts +3 -2
- package/dist/lib/device-config.d.ts +4 -15
- package/dist/lib/device-config.js +164 -8
- package/dist/lib/devices/connect.d.ts +51 -6
- package/dist/lib/devices/connect.js +169 -21
- package/dist/lib/devices/discovery-policy.d.ts +3 -2
- package/dist/lib/devices/doctor-findings.js +1 -1
- package/dist/lib/devices/doctor-overview-cache.d.ts +3 -2
- package/dist/lib/devices/fleet-divergence.d.ts +2 -1
- package/dist/lib/devices/fleet.d.ts +3 -4
- package/dist/lib/devices/fleet.js +1 -1
- package/dist/lib/devices/harness-inventory.d.ts +3 -2
- package/dist/lib/devices/health-report.d.ts +3 -2
- package/dist/lib/devices/health.d.ts +1 -8
- package/dist/lib/devices/health.js +1 -1
- package/dist/lib/devices/interactive-host.d.ts +0 -2
- package/dist/lib/devices/interactive-host.js +1 -1
- package/dist/lib/devices/known-hosts.d.ts +2 -20
- package/dist/lib/devices/known-hosts.js +2 -2
- package/dist/lib/devices/pool.d.ts +2 -1
- package/dist/lib/devices/resolve-target.d.ts +2 -2
- package/dist/lib/devices/rollout-verify.d.ts +3 -2
- package/dist/lib/devices/stats-cache.d.ts +3 -2
- package/dist/lib/devices/sync.d.ts +6 -5
- package/dist/lib/devices/worker-pick.d.ts +3 -12
- package/dist/lib/devices/worker-pick.js +1 -1
- package/dist/lib/diff-text.d.ts +2 -1
- package/dist/lib/doctor-diff.d.ts +2 -1
- package/dist/lib/drift-sync.d.ts +3 -2
- package/dist/lib/drift.d.ts +3 -3
- package/dist/lib/drift.js +1 -1
- package/dist/lib/event-families.d.ts +0 -6
- package/dist/lib/event-families.js +3 -3
- package/dist/lib/event-provenance.d.ts +2 -1
- package/dist/lib/events-ingest.d.ts +4 -3
- package/dist/lib/exec-account-home.d.ts +2 -4
- package/dist/lib/exec-account-home.js +1 -1
- package/dist/lib/exec-bounded.d.ts +3 -4
- package/dist/lib/exec-bounded.js +1 -1
- package/dist/lib/exec.d.ts +6 -18
- package/dist/lib/exec.js +1 -1
- package/dist/lib/factory/snapshot.d.ts +2 -2
- package/dist/lib/factory/snapshot.js +1 -1
- package/dist/lib/feed/activity-stream.d.ts +2 -5
- package/dist/lib/feed/activity-stream.js +2 -2
- package/dist/lib/feed/activity.d.ts +8 -33
- package/dist/lib/feed/activity.js +8 -8
- package/dist/lib/feed/answer.d.ts +3 -2
- package/dist/lib/feed/attention.js +5 -1
- package/dist/lib/feed/envelope.d.ts +79 -0
- package/dist/lib/feed/envelope.js +23 -0
- package/dist/lib/feed/events.d.ts +8 -47
- package/dist/lib/feed/events.js +9 -141
- package/dist/lib/feed/feed.d.ts +9 -42
- package/dist/lib/feed/feed.js +1 -60
- package/dist/lib/feed/hub-server.d.ts +86 -0
- package/dist/lib/feed/hub-server.js +334 -0
- package/dist/lib/feed/hub.d.ts +95 -0
- package/dist/lib/feed/hub.js +255 -0
- package/dist/lib/feed/pr-status.d.ts +0 -2
- package/dist/lib/feed/pr-status.js +1 -5
- package/dist/lib/feed/tool-activity.d.ts +108 -0
- package/dist/lib/feed/tool-activity.js +313 -0
- package/dist/lib/feed/tools.d.ts +198 -0
- package/dist/lib/feed/tools.js +265 -0
- package/dist/lib/feed/watch.d.ts +51 -52
- package/dist/lib/feed/watch.js +147 -17
- package/dist/lib/feed-broadcast.d.ts +5 -47
- package/dist/lib/feed-broadcast.js +9 -9
- package/dist/lib/feed-outcome.d.ts +3 -6
- package/dist/lib/feed-outcome.js +2 -2
- package/dist/lib/feed-policy.d.ts +5 -6
- package/dist/lib/feed-policy.js +2 -2
- package/dist/lib/feed-post.d.ts +3 -4
- package/dist/lib/feed-post.js +1 -1
- package/dist/lib/feed-ranking.d.ts +2 -2
- package/dist/lib/feed-ranking.js +1 -1
- package/dist/lib/fleet/apply.d.ts +5 -6
- package/dist/lib/fleet/apply.js +4 -4
- package/dist/lib/fleet/manifest.d.ts +2 -1
- package/dist/lib/fleet/remote-login.d.ts +18 -36
- package/dist/lib/fleet/remote-login.js +20 -19
- package/dist/lib/fleet/types.d.ts +0 -8
- package/dist/lib/fleet-cache.d.ts +1 -18
- package/dist/lib/fleet-cache.js +0 -5
- package/dist/lib/fleet-shared-repo-sync.d.ts +3 -3
- package/dist/lib/fleet-shared-repo-sync.js +1 -1
- package/dist/lib/fleet-shared-state.d.ts +3 -2
- package/dist/lib/format.d.ts +3 -2
- package/dist/lib/format.js +1 -1
- package/dist/lib/friction-heuristics.d.ts +2 -1
- package/dist/lib/fs-walk.d.ts +2 -1
- package/dist/lib/fuzzy.d.ts +2 -1
- package/dist/lib/gemini-settings.d.ts +0 -1
- package/dist/lib/gemini-settings.js +1 -1
- package/dist/lib/git.d.ts +7 -81
- package/dist/lib/git.js +2 -199
- package/dist/lib/github/gh-overload.d.ts +0 -4
- package/dist/lib/github/gh-overload.js +2 -2
- package/dist/lib/github/project-prs.d.ts +118 -0
- package/dist/lib/github/project-prs.js +173 -0
- package/dist/lib/github/rest.d.ts +2 -1
- package/dist/lib/harness/exec-config-version.d.ts +2 -1
- package/dist/lib/harness-auth-capabilities.d.ts +5 -4
- package/dist/lib/harness-connection-test.d.ts +2 -1
- package/dist/lib/heal.d.ts +3 -20
- package/dist/lib/heal.js +2 -39
- package/dist/lib/help.d.ts +3 -2
- package/dist/lib/helper-download.d.ts +0 -12
- package/dist/lib/helper-download.js +2 -2
- package/dist/lib/helper-versions.d.ts +2 -1
- package/dist/lib/helper-versions.js +1 -1
- package/dist/lib/hooks/install.d.ts +8 -49
- package/dist/lib/hooks/install.js +2 -96
- package/dist/lib/hooks/match.d.ts +2 -1
- package/dist/lib/hosts/credential-transport.d.ts +0 -2
- package/dist/lib/hosts/credential-transport.js +1 -1
- package/dist/lib/hosts/dispatch.d.ts +2 -24
- package/dist/lib/hosts/dispatch.js +2 -2
- package/dist/lib/hosts/logs.d.ts +2 -1
- package/dist/lib/hosts/passthrough.d.ts +1 -1
- package/dist/lib/hosts/passthrough.js +0 -1
- package/dist/lib/hosts/progress.d.ts +0 -5
- package/dist/lib/hosts/progress.js +1 -1
- package/dist/lib/hosts/ready.d.ts +3 -4
- package/dist/lib/hosts/ready.js +0 -8
- package/dist/lib/hosts/reconcile.d.ts +2 -8
- package/dist/lib/hosts/reconcile.js +1 -1
- package/dist/lib/hosts/reconnect.d.ts +4 -11
- package/dist/lib/hosts/reconnect.js +2 -2
- package/dist/lib/hosts/registry.d.ts +1 -1
- package/dist/lib/hosts/remote-cmd.d.ts +55 -4
- package/dist/lib/hosts/remote-cmd.js +125 -8
- package/dist/lib/hosts/remote-cmd.test-fixture.d.ts +2 -0
- package/dist/lib/hosts/remote-cmd.test-fixture.js +22 -0
- package/dist/lib/hosts/session-index.d.ts +3 -2
- package/dist/lib/hosts/ssh-config.d.ts +2 -3
- package/dist/lib/hosts/ssh-config.js +0 -10
- package/dist/lib/humans.d.ts +0 -2
- package/dist/lib/humans.js +2 -2
- package/dist/lib/import.d.ts +4 -3
- package/dist/lib/installations/installation-lock.d.ts +0 -2
- package/dist/lib/installations/installation-lock.js +2 -2
- package/dist/lib/installations/launch-gate.d.ts +0 -9
- package/dist/lib/installations/launch-gate.js +1 -1
- package/dist/lib/installations/migrate.d.ts +0 -11
- package/dist/lib/installations/migrate.js +1 -1
- package/dist/lib/installations/shims.d.ts +1 -1
- package/dist/lib/installations/shims.js +2 -2
- package/dist/lib/installations/update-runtime.js +1 -1
- package/dist/lib/linear-cache.d.ts +2 -1
- package/dist/lib/linux-userns.d.ts +2 -3
- package/dist/lib/linux-userns.js +0 -4
- package/dist/lib/loop.d.ts +2 -1
- package/dist/lib/mailbox-gc.d.ts +2 -1
- package/dist/lib/mailbox-target.d.ts +2 -1
- package/dist/lib/mailbox.d.ts +0 -6
- package/dist/lib/mailbox.js +1 -1
- package/dist/lib/manifest.d.ts +0 -14
- package/dist/lib/manifest.js +2 -2
- package/dist/lib/mcp-registry.d.ts +2 -1
- package/dist/lib/mcp.js +17 -11
- package/dist/lib/memory.d.ts +2 -13
- package/dist/lib/memory.js +4 -4
- package/dist/lib/menubar/download-menubar.d.ts +0 -2
- package/dist/lib/menubar/download-menubar.js +1 -5
- package/dist/lib/menubar/install-menubar.d.ts +3 -14
- package/dist/lib/menubar/install-menubar.js +3 -3
- package/dist/lib/menubar/migrate-prefs.d.ts +53 -0
- package/dist/lib/menubar/migrate-prefs.js +168 -0
- package/dist/lib/menubar/resolve-version.d.ts +1 -9
- package/dist/lib/menubar/resolve-version.js +4 -4
- package/dist/lib/menubar/snapshot.d.ts +24 -2
- package/dist/lib/menubar/snapshot.js +26 -0
- package/dist/lib/model-tier-overrides.d.ts +3 -2
- package/dist/lib/monitors/config.d.ts +0 -2
- package/dist/lib/monitors/config.js +0 -4
- package/dist/lib/monitors/engine.d.ts +1 -1
- package/dist/lib/monitors/remote.d.ts +3 -2
- package/dist/lib/monitors/sources/webhook.d.ts +2 -15
- package/dist/lib/monitors/sources/webhook.js +1 -38
- package/dist/lib/monitors/state.d.ts +4 -7
- package/dist/lib/monitors/state.js +2 -2
- package/dist/lib/notify.d.ts +1 -1
- package/dist/lib/notify.js +1 -1
- package/dist/lib/onepassword.d.ts +5 -14
- package/dist/lib/onepassword.js +0 -64
- package/dist/lib/open-url.d.ts +3 -2
- package/dist/lib/openclaw-keychain.d.ts +4 -17
- package/dist/lib/openclaw-keychain.js +3 -33
- package/dist/lib/operator.d.ts +2 -2
- package/dist/lib/operator.js +1 -1
- package/dist/lib/output/git-output.d.ts +4 -14
- package/dist/lib/output/git-output.js +1 -1
- package/dist/lib/owner-message.d.ts +3 -29
- package/dist/lib/owner-message.js +3 -3
- package/dist/lib/packages/output-home.d.ts +2 -4
- package/dist/lib/packages/output-home.js +2 -2
- package/dist/lib/perf/db.d.ts +0 -2
- package/dist/lib/perf/db.js +2 -7
- package/dist/lib/permissions-registry.d.ts +2 -3
- package/dist/lib/permissions-registry.js +0 -4
- package/dist/lib/permissions.d.ts +6 -16
- package/dist/lib/permissions.js +2 -15
- package/dist/lib/picker.d.ts +6 -5
- package/dist/lib/placement.d.ts +3 -6
- package/dist/lib/placement.js +0 -17
- package/dist/lib/platform/posixpath.d.ts +2 -1
- package/dist/lib/platform/winpath.d.ts +2 -1
- package/dist/lib/plugins/plugin-marketplace.d.ts +2 -2
- package/dist/lib/plugins/plugin-marketplace.js +1 -1
- package/dist/lib/pr-land-detach.d.ts +2 -1
- package/dist/lib/probe.d.ts +4 -1
- package/dist/lib/probe.js +5 -2
- package/dist/lib/profiles-presets.d.ts +2 -1
- package/dist/lib/profiles.d.ts +3 -9
- package/dist/lib/profiles.js +1 -9
- package/dist/lib/project-doctor.d.ts +2 -1
- package/dist/lib/project-launch.d.ts +2 -2
- package/dist/lib/project-probe.d.ts +4 -3
- package/dist/lib/project-pull.d.ts +2 -1
- package/dist/lib/project-resources.d.ts +2 -2
- package/dist/lib/project-resources.js +1 -1
- package/dist/lib/project-root.d.ts +2 -6
- package/dist/lib/project-root.js +1 -1
- package/dist/lib/project-schedule.d.ts +2 -1
- package/dist/lib/project-status.d.ts +2 -16
- package/dist/lib/project-status.js +3 -3
- package/dist/lib/pwsh.d.ts +33 -0
- package/dist/lib/pwsh.js +56 -0
- package/dist/lib/reconcile-and-repair.d.ts +5 -4
- package/dist/lib/redact.d.ts +15 -1
- package/dist/lib/redact.js +105 -3
- package/dist/lib/refresh-coordinator.d.ts +2 -1
- package/dist/lib/refresh.d.ts +9 -4
- package/dist/lib/refresh.js +92 -72
- package/dist/lib/remote-agents-json.d.ts +3 -2
- package/dist/lib/reserved-stores.d.ts +0 -2
- package/dist/lib/reserved-stores.js +3 -5
- package/dist/lib/resource-content-diff.d.ts +0 -2
- package/dist/lib/resource-content-diff.js +1 -1
- package/dist/lib/resource-patterns.d.ts +2 -1
- package/dist/lib/resource-profiles.d.ts +2 -8
- package/dist/lib/resource-profiles.js +3 -27
- package/dist/lib/resources/workflows.d.ts +1 -1
- package/dist/lib/resources.d.ts +4 -9
- package/dist/lib/resources.js +1 -1
- package/dist/lib/routine-context.d.ts +2 -5
- package/dist/lib/routine-context.js +2 -2
- package/dist/lib/routine-notify-owner.d.ts +8 -7
- package/dist/lib/routine-notify-owner.js +5 -5
- package/dist/lib/routine-process-cleanup.d.ts +2 -1
- package/dist/lib/routine-readiness.d.ts +0 -2
- package/dist/lib/routine-readiness.js +0 -7
- package/dist/lib/routines-project.d.ts +3 -4
- package/dist/lib/routines-project.js +1 -1
- package/dist/lib/rules/compile.d.ts +3 -25
- package/dist/lib/rules/compile.js +1 -1
- package/dist/lib/rules/compose.d.ts +3 -9
- package/dist/lib/rules/rules.d.ts +4 -15
- package/dist/lib/rules/rules.js +1 -64
- package/dist/lib/run-defaults.d.ts +1 -1
- package/dist/lib/run-notify.d.ts +2 -1
- package/dist/lib/run-trace-sync.d.ts +1 -1
- package/dist/lib/run-trace-sync.js +1 -1
- package/dist/lib/scheduler.d.ts +2 -1
- package/dist/lib/scheduling/routines.d.ts +9 -21
- package/dist/lib/scheduling/routines.js +3 -46
- package/dist/lib/secrets-cli.d.ts +11 -0
- package/dist/lib/secrets-cli.js +30 -0
- package/dist/lib/secrets-client.d.ts +0 -17
- package/dist/lib/secrets-client.js +7 -28
- package/dist/lib/secrets-policy.d.ts +12 -17
- package/dist/lib/secrets-policy.js +5 -5
- package/dist/lib/secrets-types.d.ts +3 -2
- package/dist/lib/secrets-types.js +2 -1
- package/dist/lib/self-heal/checks/install-staging.js +1 -1
- package/dist/lib/self-heal/registry.d.ts +3 -2
- package/dist/lib/self-heal/types.d.ts +1 -1
- package/dist/lib/self-heal/types.js +1 -1
- package/dist/lib/self-update.d.ts +5 -5
- package/dist/lib/self-update.js +4 -4
- package/dist/lib/session/actor-sidecar.d.ts +3 -2
- package/dist/lib/session/artifacts.d.ts +0 -2
- package/dist/lib/session/artifacts.js +1 -1
- package/dist/lib/session/bash-command.d.ts +2 -7
- package/dist/lib/session/bundle.d.ts +4 -6
- package/dist/lib/session/bundle.js +1 -5
- package/dist/lib/session/cloud.d.ts +0 -4
- package/dist/lib/session/cloud.js +2 -15
- package/dist/lib/session/detached.d.ts +9 -1
- package/dist/lib/session/detached.js +31 -2
- package/dist/lib/session/digest.d.ts +2 -2
- package/dist/lib/session/digest.js +1 -1
- package/dist/lib/session/fork.d.ts +3 -2
- package/dist/lib/session/highlights.d.ts +6 -5
- package/dist/lib/session/hook-sessions.d.ts +2 -1
- package/dist/lib/session/host-link.d.ts +2 -1
- package/dist/lib/session/inject.d.ts +1 -1
- package/dist/lib/session/inject.js +1 -1
- package/dist/lib/session/insights.d.ts +3 -15
- package/dist/lib/session/insights.js +2 -2
- package/dist/lib/session/local-tmux-attach.d.ts +2 -18
- package/dist/lib/session/local-tmux-attach.js +1 -1
- package/dist/lib/session/migrations.d.ts +0 -1
- package/dist/lib/session/migrations.js +1 -1
- package/dist/lib/session/mirror.d.ts +5 -8
- package/dist/lib/session/mirror.js +2 -2
- package/dist/lib/session/parse.d.ts +1 -32
- package/dist/lib/session/parse.js +4 -4
- package/dist/lib/session/presence.d.ts +2 -1
- package/dist/lib/session/prompt.d.ts +3 -2
- package/dist/lib/session/prompt.js +38 -1
- package/dist/lib/session/recovery.d.ts +3 -2
- package/dist/lib/session/remote/peer-stream.d.ts +26 -7
- package/dist/lib/session/remote/peer-stream.js +35 -8
- package/dist/lib/session/remote/remote-bundle.d.ts +2 -1
- package/dist/lib/session/remote/remote-list.d.ts +5 -5
- package/dist/lib/session/remote/remote.d.ts +4 -3
- package/dist/lib/session/remote/watch.d.ts +2 -7
- package/dist/lib/session/remote/watch.js +3 -3
- package/dist/lib/session/remote-active.d.ts +2 -1
- package/dist/lib/session/render.d.ts +2 -2
- package/dist/lib/session/render.js +1 -1
- package/dist/lib/session/resume-owner.d.ts +1 -1
- package/dist/lib/session/resume-owner.js +1 -1
- package/dist/lib/session/run-names.d.ts +2 -1
- package/dist/lib/session/session-cache.d.ts +7 -26
- package/dist/lib/session/session-cache.js +2 -8
- package/dist/lib/session/share-html.d.ts +1 -21
- package/dist/lib/session/share-html.js +1 -1
- package/dist/lib/session/shell-programs.d.ts +2 -1
- package/dist/lib/session/state.d.ts +41 -8
- package/dist/lib/session/state.js +112 -11
- package/dist/lib/session/stream-render.d.ts +2 -1
- package/dist/lib/session/sync/agents.d.ts +0 -4
- package/dist/lib/session/sync/agents.js +0 -0
- package/dist/lib/session/sync/backend.d.ts +8 -8
- package/dist/lib/session/sync/backend.js +3 -3
- package/dist/lib/session/sync/managed-config.d.ts +0 -8
- package/dist/lib/session/sync/managed-key.d.ts +0 -2
- package/dist/lib/session/sync/managed-key.js +1 -1
- package/dist/lib/session/sync/provision.d.ts +1 -1
- package/dist/lib/session/sync/provision.js +2 -2
- package/dist/lib/session/sync/r2.d.ts +4 -1
- package/dist/lib/session/sync/r2.js +4 -7
- package/dist/lib/session/sync/transcript-crypto.d.ts +2 -1
- package/dist/lib/session/tail.d.ts +2 -1
- package/dist/lib/session/team-filter.d.ts +1 -1
- package/dist/lib/session/throughput.d.ts +2 -3
- package/dist/lib/session/throughput.js +1 -1
- package/dist/lib/session/timeline-pass.d.ts +3 -42
- package/dist/lib/session/timeline-pass.js +4 -4
- package/dist/lib/session/timeline.d.ts +3 -13
- package/dist/lib/session/timeline.js +3 -3
- package/dist/lib/session/tool-calls.d.ts +2 -2
- package/dist/lib/session/tool-calls.js +1 -1
- package/dist/lib/session/tool-index.d.ts +0 -8
- package/dist/lib/session/tool-index.js +2 -2
- package/dist/lib/session/tool-store.d.ts +2 -1
- package/dist/lib/session/trajectory-compare.d.ts +2 -1
- package/dist/lib/session/trajectory-lineage.d.ts +2 -1
- package/dist/lib/session/trajectory-text.d.ts +3 -2
- package/dist/lib/session/trajectory.d.ts +2 -1
- package/dist/lib/session/viewing-in.d.ts +2 -1
- package/dist/lib/sessions-client.js +0 -3
- package/dist/lib/settings-manifest.d.ts +2 -1
- package/dist/lib/setup-tool-install.d.ts +3 -0
- package/dist/lib/setup-tool-install.js +26 -0
- package/dist/lib/setup-tool-status.d.ts +22 -0
- package/dist/lib/setup-tool-status.js +215 -0
- package/dist/lib/share-runtime.d.ts +11 -0
- package/dist/lib/share-runtime.js +63 -0
- package/dist/lib/shim-heal.d.ts +1 -5
- package/dist/lib/shim-heal.js +0 -6
- package/dist/lib/smart-launch.d.ts +5 -10
- package/dist/lib/smart-launch.js +4 -12
- package/dist/lib/snapshot.d.ts +3 -2
- package/dist/lib/ssh-exec.d.ts +49 -4
- package/dist/lib/ssh-exec.js +119 -0
- package/dist/lib/ssh-tunnel.d.ts +3 -2
- package/dist/lib/staleness/checkers/permissions.d.ts +0 -2
- package/dist/lib/staleness/checkers/permissions.js +1 -1
- package/dist/lib/staleness/fingerprint.d.ts +0 -7
- package/dist/lib/staleness/fingerprint.js +1 -1
- package/dist/lib/staleness/prune.d.ts +3 -2
- package/dist/lib/staleness/registry.d.ts +1 -1
- package/dist/lib/staleness/writers/sources.d.ts +0 -8
- package/dist/lib/staleness/writers/sources.js +1 -1
- package/dist/lib/startup/command-registry.d.ts +6 -4
- package/dist/lib/startup/command-registry.js +11 -8
- package/dist/lib/state.d.ts +1 -3
- package/dist/lib/state.js +3 -6
- package/dist/lib/storage/selection.d.ts +2 -2
- package/dist/lib/storage/selection.js +2 -2
- package/dist/lib/subagents-registry.d.ts +4 -3
- package/dist/lib/subagents.d.ts +2 -1
- package/dist/lib/subagents.js +3 -2
- package/dist/lib/summarizer/pass.d.ts +3 -6
- package/dist/lib/summarizer/pass.js +2 -2
- package/dist/lib/summarizer/summarize.d.ts +4 -3
- package/dist/lib/sync-passphrase.d.ts +3 -2
- package/dist/lib/sync-status.d.ts +3 -16
- package/dist/lib/sync-status.js +2 -2
- package/dist/lib/sync-umbrella.d.ts +9 -3
- package/dist/lib/sync-umbrella.js +18 -10
- package/dist/lib/system-run-sync.d.ts +2 -1
- package/dist/lib/teams/agents.d.ts +2 -4
- package/dist/lib/teams/agents.js +1 -1
- package/dist/lib/teams/forEach.d.ts +3 -2
- package/dist/lib/teams/pr-watch.d.ts +4 -11
- package/dist/lib/teams/pr-watch.js +4 -4
- package/dist/lib/teams/registry.d.ts +2 -3
- package/dist/lib/teams/registry.js +1 -1
- package/dist/lib/teams/remoteWorktree.d.ts +0 -16
- package/dist/lib/teams/remoteWorktree.js +3 -3
- package/dist/lib/teams/scheduler.d.ts +6 -5
- package/dist/lib/teams/scheduler.js +1 -1
- package/dist/lib/teams/supervisor.d.ts +4 -3
- package/dist/lib/teams/worktree.d.ts +0 -9
- package/dist/lib/teams/worktree.js +0 -32
- package/dist/lib/term-client.d.ts +44 -0
- package/dist/lib/term-client.js +117 -0
- package/dist/lib/terminal/inject.d.ts +3 -16
- package/dist/lib/terminal/inject.js +1 -29
- package/dist/lib/terminal/resolve.d.ts +3 -9
- package/dist/lib/terminal/resolve.js +3 -7
- package/dist/lib/tmux/binary.d.ts +2 -1
- package/dist/lib/tmux/orphan-reap.d.ts +6 -7
- package/dist/lib/tmux/orphan-reap.js +1 -1
- package/dist/lib/tmux/session.d.ts +4 -3
- package/dist/lib/traces/backend.d.ts +1 -2
- package/dist/lib/traces/backend.js +1 -2
- package/dist/lib/traces/classify.d.ts +3 -2
- package/dist/lib/traces/config.d.ts +0 -8
- package/dist/lib/traces/insights.d.ts +2 -1
- package/dist/lib/traces/phenotype.d.ts +3 -3
- package/dist/lib/traces/provision.d.ts +2 -4
- package/dist/lib/traces/provision.js +3 -3
- package/dist/lib/traces/schema2-build.d.ts +1 -1
- package/dist/lib/traces/schema2-danger.d.ts +2 -1
- package/dist/lib/traces/schema2.d.ts +5 -4
- package/dist/lib/traces/segments.d.ts +4 -20
- package/dist/lib/traces/segments.js +3 -3
- package/dist/lib/traces/sync.d.ts +2 -3
- package/dist/lib/traces/sync.js +1 -1
- package/dist/lib/triggers/handlers.d.ts +4 -13
- package/dist/lib/triggers/handlers.js +1 -1
- package/dist/lib/triggers/webhook.d.ts +5 -27
- package/dist/lib/triggers/webhook.js +4 -4
- package/dist/lib/types.d.ts +11 -9
- package/dist/lib/usage-refresh.d.ts +4 -10
- package/dist/lib/usage-refresh.js +3 -8
- package/dist/lib/verbs.d.ts +2 -1
- package/dist/lib/version-duplicates.d.ts +2 -3
- package/dist/lib/version-duplicates.js +3 -33
- package/dist/lib/version.d.ts +2 -1
- package/dist/lib/warn-unpushed.d.ts +2 -1
- package/dist/lib/watchdog/history.d.ts +3 -2
- package/dist/lib/watchdog/log.d.ts +0 -6
- package/dist/lib/watchdog/log.js +1 -1
- package/dist/lib/watchdog/rotate.d.ts +2 -26
- package/dist/lib/watchdog/rotate.js +4 -12
- package/dist/lib/watchdog/runner.d.ts +0 -7
- package/dist/lib/watchdog/runner.js +4 -4
- package/dist/lib/watchdog/service.d.ts +2 -2
- package/dist/lib/watchdog/service.js +1 -1
- package/dist/lib/watchdog/watchdog-agent.d.ts +2 -1
- package/dist/lib/watchdog/watchdog.d.ts +2 -1
- package/dist/lib/watchdog/watchdogTail.d.ts +2 -1
- package/dist/lib/workflows-registry.d.ts +3 -2
- package/dist/lib/workflows.d.ts +4 -7
- package/dist/lib/workflows.js +1 -1
- package/dist/lib/worktree/held.d.ts +4 -28
- package/dist/lib/worktree/held.js +3 -3
- package/package.json +3 -5
- package/scripts/postinstall.js +5 -4
- package/dist/commands/artifacts-setup.d.ts +0 -53
- package/dist/commands/artifacts-setup.js +0 -161
- package/dist/commands/artifacts.d.ts +0 -18
- package/dist/commands/artifacts.js +0 -58
- package/dist/commands/attach.d.ts +0 -12
- package/dist/commands/attach.js +0 -86
- package/dist/commands/auth-mint.d.ts +0 -12
- package/dist/commands/auth-mint.js +0 -108
- package/dist/commands/pty.d.ts +0 -20
- package/dist/commands/pty.js +0 -404
- package/dist/commands/reconnect.d.ts +0 -46
- package/dist/commands/reconnect.js +0 -115
- package/dist/commands/share.d.ts +0 -293
- package/dist/commands/share.js +0 -1424
- package/dist/lib/config-machine-keys.d.ts +0 -14
- package/dist/lib/config-machine-keys.js +0 -21
- package/dist/lib/pty-client.d.ts +0 -49
- package/dist/lib/pty-client.js +0 -315
- package/dist/lib/pty-server.d.ts +0 -59
- package/dist/lib/pty-server.js +0 -653
- package/dist/lib/share/analytics.d.ts +0 -13
- package/dist/lib/share/analytics.js +0 -45
- package/dist/lib/share/backend.d.ts +0 -120
- package/dist/lib/share/backend.js +0 -176
- package/dist/lib/share/capture.d.ts +0 -31
- package/dist/lib/share/capture.js +0 -174
- package/dist/lib/share/config.d.ts +0 -72
- package/dist/lib/share/config.js +0 -211
- package/dist/lib/share/delete.d.ts +0 -122
- package/dist/lib/share/delete.js +0 -173
- package/dist/lib/share/html.d.ts +0 -22
- package/dist/lib/share/html.js +0 -88
- package/dist/lib/share/http-error.d.ts +0 -52
- package/dist/lib/share/http-error.js +0 -65
- package/dist/lib/share/og.d.ts +0 -25
- package/dist/lib/share/og.js +0 -84
- package/dist/lib/share/provision.d.ts +0 -127
- package/dist/lib/share/provision.js +0 -285
- package/dist/lib/share/publish.d.ts +0 -388
- package/dist/lib/share/publish.js +0 -818
- package/dist/lib/share/worker-template.d.ts +0 -27
- package/dist/lib/share/worker-template.js +0 -2424
- package/dist/lib/storage/index.d.ts +0 -14
- package/dist/lib/storage/index.js +0 -14
- package/dist/lib/storage/visibility.d.ts +0 -82
- package/dist/lib/storage/visibility.js +0 -99
|
@@ -1,27 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `agents sessions share <id>` — publish one session transcript as a link.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* `
|
|
6
|
-
* `
|
|
7
|
-
*
|
|
8
|
-
*
|
|
4
|
+
* Renders the session locally — `renderSessionMarkdownDocument()` (redacted
|
|
5
|
+
* transcript) and `renderSessionHtmlDocument()` (self-contained branded page) —
|
|
6
|
+
* then publishes it through the standalone `artifacts` CLI (`artifacts share`),
|
|
7
|
+
* the single home for artifact sharing since PHNX-3992. agents-cli holds no
|
|
8
|
+
* share engine of its own; this command contributes the session-specific
|
|
9
|
+
* rendering and redaction, and forwards the finished page to `artifacts share`.
|
|
9
10
|
*
|
|
10
|
-
* Unlisted by default, unlike `
|
|
11
|
-
* paths, command output, error text, and whatever a tool printed —
|
|
12
|
-
* than a plan does — so it does not belong in the public `/<user>`
|
|
13
|
-
* the operator asks for it with `--public`. The URL itself stays
|
|
14
|
-
* unlisted is a capability URL, not a secret.
|
|
11
|
+
* Unlisted by default, unlike `artifacts share` (public by default). A transcript
|
|
12
|
+
* carries file paths, command output, error text, and whatever a tool printed —
|
|
13
|
+
* strictly more than a plan does — so it does not belong in the public `/<user>`
|
|
14
|
+
* gallery unless the operator asks for it with `--public`. The URL itself stays
|
|
15
|
+
* world-readable: unlisted is a capability URL, not a secret.
|
|
15
16
|
*/
|
|
16
17
|
import * as fs from 'fs';
|
|
17
18
|
import * as os from 'os';
|
|
18
19
|
import * as path from 'path';
|
|
20
|
+
import { spawnSync } from 'node:child_process';
|
|
19
21
|
import chalk from 'chalk';
|
|
20
22
|
import { setHelpSections } from '../lib/help.js';
|
|
21
|
-
import { knownSecretValuesFromEnv } from '../lib/redact.js';
|
|
23
|
+
import { knownSecretValuesFromEnv, redactEmails } from '../lib/redact.js';
|
|
22
24
|
import { discoverSessions } from '../lib/session/discover.js';
|
|
23
25
|
import { renderSessionHtmlDocument } from '../lib/session/share-html.js';
|
|
24
|
-
import {
|
|
26
|
+
import { resolveArtifactsBin, invocation, ArtifactsClientError } from '../lib/artifacts-client.js';
|
|
25
27
|
import { renderSessionMarkdownDocument } from './sessions-render.js';
|
|
26
28
|
import { selectSessions } from './sessions-export.js';
|
|
27
29
|
import { parseAgentFilter } from './sessions.js';
|
|
@@ -35,23 +37,33 @@ export function defaultSessionSlug(session) {
|
|
|
35
37
|
return `session-${session.shortId || session.id}`;
|
|
36
38
|
}
|
|
37
39
|
/**
|
|
38
|
-
*
|
|
40
|
+
* Build the `artifacts share` argv for a session publish.
|
|
39
41
|
*
|
|
40
|
-
* Extracted so the
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
* flipped.
|
|
42
|
+
* Extracted so the mapping is testable directly. The security-relevant default
|
|
43
|
+
* is `--visibility unlisted` — it inverts `artifacts share`'s public default, and
|
|
44
|
+
* a test that re-implements this mapping would still pass with it flipped.
|
|
44
45
|
*/
|
|
45
|
-
export function
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
meta
|
|
54
|
-
|
|
46
|
+
export function buildArtifactsShareArgs(session, options, file) {
|
|
47
|
+
const args = [
|
|
48
|
+
'share',
|
|
49
|
+
file,
|
|
50
|
+
'--slug',
|
|
51
|
+
options.slug ?? defaultSessionSlug(session),
|
|
52
|
+
'--visibility',
|
|
53
|
+
options.public === true ? 'public' : 'unlisted',
|
|
54
|
+
'--meta',
|
|
55
|
+
'kind=session',
|
|
56
|
+
'--json',
|
|
57
|
+
];
|
|
58
|
+
if (options.expire)
|
|
59
|
+
args.push('--expire', options.expire);
|
|
60
|
+
if (options.force === true)
|
|
61
|
+
args.push('--force');
|
|
62
|
+
if (options.cover === false)
|
|
63
|
+
args.push('--no-cover');
|
|
64
|
+
if (options.label)
|
|
65
|
+
args.push('--label', options.label);
|
|
66
|
+
return args;
|
|
55
67
|
}
|
|
56
68
|
export function registerSessionsShareCommand(sessionsCmd) {
|
|
57
69
|
const cmd = sessionsCmd
|
|
@@ -59,7 +71,7 @@ export function registerSessionsShareCommand(sessionsCmd) {
|
|
|
59
71
|
.description('Publish one session as a redacted, self-contained web page and print the link.')
|
|
60
72
|
.option('--public', 'List the page in your public share gallery (default: unlisted capability URL)')
|
|
61
73
|
.option('--slug <slug>', 'URL slug under your namespace (default: session-<shortId>)')
|
|
62
|
-
.option('--label <text>', 'Display title in the gallery and `
|
|
74
|
+
.option('--label <text>', 'Display title in the gallery and `artifacts share list`')
|
|
63
75
|
.option('--expire <spec>', 'Auto-expire window: 30d, 12h, a date, or never (default: 30d)')
|
|
64
76
|
.option('--reasoning <mode>', 'Reasoning visibility: omit, fold, or include', 'omit')
|
|
65
77
|
.option('--force', 'Publish despite the sensitive-content scan flagging the transcript')
|
|
@@ -76,22 +88,23 @@ agents sessions share a1b2c3d4 --reasoning fold
|
|
|
76
88
|
|
|
77
89
|
# A link that does not decay
|
|
78
90
|
agents sessions share a1b2c3d4 --expire never`,
|
|
79
|
-
notes: `
|
|
80
|
-
|
|
91
|
+
notes: `Publishes through the standalone artifacts CLI — install it with
|
|
92
|
+
'npm i -g @phnx-labs/artifacts-cli'. Sign in with
|
|
93
|
+
'artifacts auth login' for the managed endpoint (zero Cloudflare setup), or configure
|
|
94
|
+
your own bucket with 'artifacts share setup' / 'artifacts share join <baseUrl>'.
|
|
81
95
|
|
|
82
96
|
Unlisted by default — the URL is world-readable but the page stays out of your public
|
|
83
|
-
gallery and out of '
|
|
97
|
+
gallery and out of 'artifacts share list'. Pass --public to list it.
|
|
84
98
|
|
|
85
|
-
Secrets are redacted and
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
99
|
+
Secrets are redacted and 'artifacts share' runs its own pre-publish scan on the page,
|
|
100
|
+
so a transcript carrying emails or credential-shaped strings is refused unless you pass
|
|
101
|
+
--force. --no-redact (the sessions-level flag) disables redaction and is a bad idea for
|
|
102
|
+
anything you publish.
|
|
89
103
|
|
|
90
104
|
Re-running with the same session updates the same URL and keeps the prior version
|
|
91
|
-
as a revision ('
|
|
105
|
+
as a revision ('artifacts share revisions <slug>').
|
|
92
106
|
|
|
93
|
-
Manage published sessions with '
|
|
94
|
-
'agents artifacts share delete <slug>'.`,
|
|
107
|
+
Manage published sessions with 'artifacts share list' and 'artifacts share delete <slug>'.`,
|
|
95
108
|
});
|
|
96
109
|
cmd.action(async (selector, options, command) => {
|
|
97
110
|
const globals = command.optsWithGlobals();
|
|
@@ -125,25 +138,60 @@ Manage published sessions with 'agents artifacts share list' and
|
|
|
125
138
|
});
|
|
126
139
|
// Emails on top of what the renderer masks. Almost every real transcript
|
|
127
140
|
// carries a few — git author addresses, `gh api user`, a pasted log — and
|
|
128
|
-
//
|
|
129
|
-
// means the published page genuinely does not carry them; the
|
|
130
|
-
// telling people to pass --force,
|
|
131
|
-
// that also catches real credentials.
|
|
141
|
+
// `artifacts share` refuses a body containing any (its own scan). Masking
|
|
142
|
+
// them means the published page genuinely does not carry them; the
|
|
143
|
+
// alternative, telling people to pass --force, trains everyone to bypass the
|
|
144
|
+
// gate that also catches real credentials.
|
|
132
145
|
//
|
|
133
146
|
// Applied to the RENDERED PAGE, not the Markdown, so the text that is masked
|
|
134
|
-
// is exactly the text
|
|
147
|
+
// is exactly the text the publish scan will see. Markdown escaping stands
|
|
135
148
|
// between the two: `foo\@example.com` hides from the pattern in the Markdown
|
|
136
149
|
// and reappears as a live address once marked drops the backslash.
|
|
137
150
|
const page = renderSessionHtmlDocument(session, markdown, { redacted: redact });
|
|
138
151
|
const html = redact ? redactEmails(page) : page;
|
|
139
|
-
// A real file on disk is what
|
|
140
|
-
// it in a browser. 0600 + a per-run directory keeps the intermediate
|
|
141
|
-
// world-readable /tmp path while it exists.
|
|
152
|
+
// A real file on disk is what `artifacts share` takes, and its OG capturer
|
|
153
|
+
// opens it in a browser. 0600 + a per-run directory keeps the intermediate
|
|
154
|
+
// off a world-readable /tmp path while it exists.
|
|
142
155
|
const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'agents-session-share-'));
|
|
143
156
|
const file = path.join(dir, `${defaultSessionSlug(session)}.html`);
|
|
144
157
|
try {
|
|
145
158
|
fs.writeFileSync(file, html, { mode: 0o600 });
|
|
146
|
-
|
|
159
|
+
let bin;
|
|
160
|
+
try {
|
|
161
|
+
bin = resolveArtifactsBin();
|
|
162
|
+
}
|
|
163
|
+
catch (err) {
|
|
164
|
+
if (err instanceof ArtifactsClientError) {
|
|
165
|
+
process.stderr.write(chalk.red(err.message + '\n'));
|
|
166
|
+
process.exitCode = 1;
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
throw err;
|
|
170
|
+
}
|
|
171
|
+
const { command: execCommand, prefix } = invocation(bin);
|
|
172
|
+
const args = [...prefix, ...buildArtifactsShareArgs(session, options, file)];
|
|
173
|
+
const proc = spawnSync(execCommand, args, { encoding: 'utf-8' });
|
|
174
|
+
if (proc.error)
|
|
175
|
+
throw proc.error;
|
|
176
|
+
if (proc.status !== 0) {
|
|
177
|
+
process.stderr.write(proc.stderr || chalk.red(`artifacts share exited ${proc.status ?? 'with no status'}\n`));
|
|
178
|
+
process.exitCode = proc.status ?? 1;
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
let result;
|
|
182
|
+
try {
|
|
183
|
+
result = JSON.parse(proc.stdout);
|
|
184
|
+
}
|
|
185
|
+
catch {
|
|
186
|
+
// A 0 exit with non-JSON stdout (a version-skewed `artifacts` that
|
|
187
|
+
// printed a banner before the JSON, or one predating `--json` here) must
|
|
188
|
+
// fail loud with the bytes it actually returned, not an uncaught parse
|
|
189
|
+
// stack trace — mirroring `secrets-client.ts`'s `parseResponse`.
|
|
190
|
+
const preview = proc.stdout.trim().slice(0, 200);
|
|
191
|
+
process.stderr.write(chalk.red(`artifacts share returned a non-JSON response${preview ? `: ${preview}` : ' (empty output)'}\n`));
|
|
192
|
+
process.exitCode = 1;
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
147
195
|
if (globals.json) {
|
|
148
196
|
process.stdout.write(JSON.stringify({
|
|
149
197
|
session: session.id,
|
|
@@ -154,9 +202,10 @@ Manage published sessions with 'agents artifacts share list' and
|
|
|
154
202
|
return;
|
|
155
203
|
}
|
|
156
204
|
process.stdout.write(`${result.url}\n`);
|
|
157
|
-
const
|
|
205
|
+
const visibility = result.visibility ?? (result.unlisted ? 'unlisted' : options.public ? 'public' : 'unlisted');
|
|
206
|
+
const bits = [visibility, redact ? 'redacted' : chalk.red('NOT redacted')];
|
|
158
207
|
if (result.expiresAt)
|
|
159
|
-
bits.push(`expires ${result.expiresAt.slice(0, 10)}`);
|
|
208
|
+
bits.push(`expires ${String(result.expiresAt).slice(0, 10)}`);
|
|
160
209
|
process.stderr.write(chalk.dim(`${bits.join(' · ')}\n`));
|
|
161
210
|
}
|
|
162
211
|
finally {
|
|
@@ -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)')
|
|
@@ -226,7 +226,7 @@ export declare function linkCwdCell(s: Pick<SessionMeta, 'cwd' | '_remote'>, lab
|
|
|
226
226
|
* session from an orphaned one (its terminal died, the agent is still running)
|
|
227
227
|
* without re-implementing the tmux client lookup.
|
|
228
228
|
*/
|
|
229
|
-
|
|
229
|
+
interface SessionPickerJsonRow extends SessionMeta {
|
|
230
230
|
state: ActiveSession['status'] | 'inactive';
|
|
231
231
|
resumable: boolean;
|
|
232
232
|
unwatched: boolean;
|
|
@@ -267,7 +267,7 @@ export declare function renderActiveRowLines(s: ActiveSession, indent: string, t
|
|
|
267
267
|
*/
|
|
268
268
|
export declare function ownerLabel(s: ActiveSession): string;
|
|
269
269
|
/** Grouped + sorted view of active sessions for the --active renderer. */
|
|
270
|
-
|
|
270
|
+
interface ActiveSessionsLayout {
|
|
271
271
|
workspaces: Array<{
|
|
272
272
|
/** Internal grouping key — `__cloud__`, `__unknown__`, or the cwd. */
|
|
273
273
|
key: string;
|
|
@@ -294,7 +294,7 @@ export interface ActiveSessionsLayout {
|
|
|
294
294
|
*/
|
|
295
295
|
export declare function groupActiveSessions(sessions: ActiveSession[]): ActiveSessionsLayout;
|
|
296
296
|
/** One machine's active sessions, keeping the within-machine workspace layout. */
|
|
297
|
-
|
|
297
|
+
interface MachineGroup {
|
|
298
298
|
/** Normalized device id (machineId() form). */
|
|
299
299
|
machine: string;
|
|
300
300
|
/** The machine this command is running on — pinned first and marked. */
|
|
@@ -303,7 +303,7 @@ export interface MachineGroup {
|
|
|
303
303
|
layout: ActiveSessionsLayout;
|
|
304
304
|
}
|
|
305
305
|
/** Active sessions grouped by the machine they run on. */
|
|
306
|
-
|
|
306
|
+
interface MachineGroupedLayout {
|
|
307
307
|
machines: MachineGroup[];
|
|
308
308
|
}
|
|
309
309
|
/**
|
|
@@ -356,10 +356,6 @@ export declare function serializeResolvedSessionsJson(sessions: SessionMeta[]):
|
|
|
356
356
|
* JSON. The fan-out boundary supplies the machine name when an older peer row
|
|
357
357
|
* omitted it. */
|
|
358
358
|
export declare function parseRemoteComputerSessionRows(stdout: string, machine: string): RemoteAgentsJsonParseResult<ComputerRunRow>;
|
|
359
|
-
/** Collect computer history from named peers, or every automatic peer when
|
|
360
|
-
* hosts is omitted. Every peer is forced to JSON and receives the recursion
|
|
361
|
-
* guard through the shared fleet transport. */
|
|
362
|
-
export declare function gatherRemoteComputerSessionRows(hosts?: string[]): Promise<ComputerRunRow[]>;
|
|
363
359
|
/**
|
|
364
360
|
* Whether the local machine's sessions belong in an `--active` view. Local is
|
|
365
361
|
* included by default; an explicit `--device` list scopes the view to
|
|
@@ -414,14 +410,6 @@ export type LiveStatusFilter = 'working' | 'idle' | 'waiting' | 'orphaned' | 'cr
|
|
|
414
410
|
export declare function matchesLiveStatus(session: ActiveSession, status: LiveStatusFilter): boolean;
|
|
415
411
|
/** Resolve convenience flags once. Multiple flags intentionally form a union. */
|
|
416
412
|
export declare function requestedLiveStatuses(options: SessionsOptions): LiveStatusFilter[];
|
|
417
|
-
/**
|
|
418
|
-
* A bare interactive fleet listing — no query, no render/filter flag — that the
|
|
419
|
-
* `runSessionBrowser` picker can represent. The single predicate shared by the
|
|
420
|
-
* bare-browser branch and the `--device` early-return guard so they can't drift:
|
|
421
|
-
* when this holds, an explicit `--device` scope is folded into the
|
|
422
|
-
* browser (preview-rich, selectable) instead of the legacy per-host raw stream.
|
|
423
|
-
*/
|
|
424
|
-
export declare function isBareBrowserListing(options: SessionsOptions, query: string | undefined): boolean;
|
|
425
413
|
/**
|
|
426
414
|
* Pure flag-gate half of {@link isBareBrowserListing} (TTY-independent, so it is
|
|
427
415
|
* unit-testable): true when no query, render, or filter flag is present that the
|
|
@@ -435,7 +423,7 @@ export interface RoutineRunGroup {
|
|
|
435
423
|
timestamp: string;
|
|
436
424
|
sessions: SessionMeta[];
|
|
437
425
|
}
|
|
438
|
-
|
|
426
|
+
interface RoutineChoice {
|
|
439
427
|
name: string;
|
|
440
428
|
lastRunAt: string;
|
|
441
429
|
runCount: number;
|
|
@@ -443,23 +431,9 @@ export interface RoutineChoice {
|
|
|
443
431
|
}
|
|
444
432
|
export declare function buildRoutineRunGroups(sessions: SessionMeta[]): RoutineRunGroup[];
|
|
445
433
|
export declare function buildRoutineChoices(sessions: SessionMeta[], runOnlyNames?: string[]): RoutineChoice[];
|
|
446
|
-
/**
|
|
447
|
-
* Resolve which routine the user is targeting for `--routine`. Returns `null` to
|
|
448
|
-
* ABORT the command (a bad `--routine <name>` printed an error, or the user
|
|
449
|
-
* cancelled the interactive pick). `{ name: null }` means "no routine was
|
|
450
|
-
* selected, don't filter" — the degenerate bare `--routine` piped to a
|
|
451
|
-
* non-interactive sink. `{ name }` is a chosen routine.
|
|
452
|
-
*
|
|
453
|
-
* The name universe is transcripts UNION every routine with a definition or a
|
|
454
|
-
* run record (`safeListJobsWithRuns`), so a command-only or never-ran routine —
|
|
455
|
-
* which produces no `SessionMeta` — still resolves and drills down.
|
|
456
|
-
*/
|
|
457
|
-
export declare function selectRoutineTarget(sessions: SessionMeta[], routine: boolean | string, interactive: boolean): Promise<{
|
|
458
|
-
name: string | null;
|
|
459
|
-
} | null>;
|
|
460
434
|
export declare function filterSessionsByRoutine(sessions: SessionMeta[], routine: boolean | string, interactive: boolean): Promise<SessionMeta[] | null>;
|
|
461
435
|
/** How a run executed — decides whether an agent session is even expected. */
|
|
462
|
-
|
|
436
|
+
type RoutineExecutionKind = 'agent' | 'command' | 'workflow';
|
|
463
437
|
export declare function executionKind(meta: RunMeta): RoutineExecutionKind;
|
|
464
438
|
/** One canonical run record plus the indexed sessions linked to it by run id. */
|
|
465
439
|
export interface RoutineRunEntry {
|
|
@@ -482,11 +456,6 @@ export interface RoutineDrilldown {
|
|
|
482
456
|
* routine. False for a pure command routine, where no session is expected. */
|
|
483
457
|
isAgentRoutine: boolean;
|
|
484
458
|
}
|
|
485
|
-
/**
|
|
486
|
-
* Reconcile a routine's canonical run records (`listRuns`, local disk) with the
|
|
487
|
-
* indexed sessions for that routine (fleet-wide, keyed by `routineRunId`).
|
|
488
|
-
*/
|
|
489
|
-
export declare function buildRoutineDrilldown(name: string, sessions: SessionMeta[]): RoutineDrilldown;
|
|
490
459
|
/**
|
|
491
460
|
* Render the routine drilldown: canonical run history first, each run linked to
|
|
492
461
|
* its indexed agent session(s). This is the run/session seam made visible — a
|
|
@@ -522,10 +491,7 @@ export declare function mergeToolSearchEnvelopes(local: ToolSearchEnvelope, remo
|
|
|
522
491
|
export declare function mergeToolProgramCountEnvelopes(local: ToolProgramCountEnvelope, remotes: ToolProgramCountEnvelope[]): ToolProgramCountEnvelope;
|
|
523
492
|
/** Partition a fleet query by transcript origin so synced mirrors cannot duplicate results. */
|
|
524
493
|
export declare function toolOriginSessions(sessions: SessionMeta[], machine: string, originOnly: boolean): SessionMeta[];
|
|
525
|
-
export declare function printToolProgramCount(envelope: ToolProgramCountEnvelope): void;
|
|
526
494
|
export declare function toolSearchFleetSortError(sort: string | undefined, spansDevices: boolean): string | undefined;
|
|
527
|
-
/** Compact grouped evidence for humans; JSON retains every bounded field. */
|
|
528
|
-
export declare function printToolSearch(envelope: ToolSearchEnvelope): void;
|
|
529
495
|
/**
|
|
530
496
|
* Whether a session belongs to `team`, from either end: it spawned the team, or
|
|
531
497
|
* it is one of the team's teammates. Case-insensitive, matching the SQL
|
|
@@ -571,7 +537,7 @@ export declare function maybeLiveIndex(options: SessionsOptions): Promise<Map<st
|
|
|
571
537
|
* machine cannot see still folds by basename through the same resolver.
|
|
572
538
|
*/
|
|
573
539
|
export declare function overviewProjectKey(s: Pick<SessionMeta, 'project' | 'cwd'>, defs?: ProjectDef[]): string;
|
|
574
|
-
|
|
540
|
+
interface OverviewGroup {
|
|
575
541
|
key: string;
|
|
576
542
|
total: number;
|
|
577
543
|
shown: SessionMeta[];
|
|
@@ -685,18 +651,7 @@ export declare function pickSessionInteractive(sessions: SessionMeta[], message?
|
|
|
685
651
|
* pick handler checks before trying to read or resume one.
|
|
686
652
|
*/
|
|
687
653
|
export declare const LIVE_ROW_PREFIX = "live:";
|
|
688
|
-
export declare function isIdlessLiveRow(s: SessionMeta): boolean;
|
|
689
654
|
export declare function handlePickedSession(picked: PickedSession): Promise<void>;
|
|
690
|
-
/**
|
|
691
|
-
* Resume `session` on the machine that owns it, when that is not this one.
|
|
692
|
-
* Returns true when it handled the resume (hopped, or reported an unreachable
|
|
693
|
-
* owner), false when the session is local and the caller should take over here.
|
|
694
|
-
*
|
|
695
|
-
* The one hop for a foreground, one-session-at-a-time resume — shared by the
|
|
696
|
-
* `agents sessions` picker and by `sessions resume`'s no-tab-backend path, which
|
|
697
|
-
* would otherwise reach `resumeSessionInPlace` and be refused (RUSH-2022).
|
|
698
|
-
*/
|
|
699
|
-
export declare function resumeOnOwnerIfRemote(session: SessionMeta): Promise<boolean>;
|
|
700
655
|
/**
|
|
701
656
|
* Resume a session in the current terminal — a foreground takeover of this
|
|
702
657
|
* process. Used by the single-select picker and by `sessions resume` when the
|
|
@@ -742,7 +697,7 @@ export declare function parseAgentFilter(agentName?: string): AgentFilter;
|
|
|
742
697
|
* listing pool (cwd-scoped, default-capped) that PHNX-2767 hydrates past:
|
|
743
698
|
* these flags MUST still exclude FTS hits after that union.
|
|
744
699
|
*/
|
|
745
|
-
|
|
700
|
+
type SessionSearchScope = {
|
|
746
701
|
agent?: string;
|
|
747
702
|
project?: string;
|
|
748
703
|
routine?: boolean | string;
|
|
@@ -755,7 +710,7 @@ export type SessionSearchScope = {
|
|
|
755
710
|
* the query was a whole session id: it is unique by construction, so a miss is
|
|
756
711
|
* final and must NOT widen into a text/content search.
|
|
757
712
|
*/
|
|
758
|
-
|
|
713
|
+
interface SessionQueryResolution {
|
|
759
714
|
matches: SessionMeta[];
|
|
760
715
|
byId: boolean;
|
|
761
716
|
completeId: boolean;
|
|
@@ -791,23 +746,9 @@ export declare function filterSessionsByQuery(sessions: SessionMeta[], query: st
|
|
|
791
746
|
*/
|
|
792
747
|
export declare function applyScopeFilters(sessions: SessionMeta[], scope: SessionSearchScope): SessionMeta[];
|
|
793
748
|
export declare function artifactLookupScope(agent?: string, project?: string, routine?: boolean | string): SessionSearchScope;
|
|
794
|
-
/**
|
|
795
|
-
* Whether a missed local id lookup should widen to a cross-machine sweep.
|
|
796
|
-
*
|
|
797
|
-
* Gate (all must hold):
|
|
798
|
-
* - the query is id-shaped (`looksLikeSessionId`) — only an identifier resolves
|
|
799
|
-
* across the fleet; a search phrase never does.
|
|
800
|
-
* - not `--local` — the caller opted out of cross-machine lookup (deterministic
|
|
801
|
-
* local behavior for scripts, RUSH-2024 acceptance: "--local still restricts").
|
|
802
|
-
* - `AGENTS_SESSIONS_LOCAL` is unset — we are not ourselves a peer answering a
|
|
803
|
-
* parent's sweep, so a locate can never recurse (RUSH-2024: avoid double-fan-out).
|
|
804
|
-
*
|
|
805
|
-
* Pure + exported so the gate is unit-tested without driving discovery / SSH.
|
|
806
|
-
*/
|
|
807
|
-
export declare function shouldFanOutForId(query: string, local: boolean | undefined): boolean;
|
|
808
749
|
/** Injectable SSH/peer boundary so the fleet-resolve logic is unit-testable
|
|
809
750
|
* without a live tailnet. Production wires these to the real remote-list infra. */
|
|
810
|
-
|
|
751
|
+
interface FleetResolveDeps {
|
|
811
752
|
gatherRemoteList: typeof gatherRemoteList;
|
|
812
753
|
runOnPeer: typeof runOnPeer;
|
|
813
754
|
}
|
|
@@ -817,11 +758,11 @@ interface FleetHit {
|
|
|
817
758
|
session: SessionMeta;
|
|
818
759
|
}
|
|
819
760
|
/** One logical session returned by the fleet, including every machine holding a copy. */
|
|
820
|
-
|
|
761
|
+
interface FleetSessionCandidate {
|
|
821
762
|
id: string;
|
|
822
763
|
hits: FleetHit[];
|
|
823
764
|
}
|
|
824
|
-
|
|
765
|
+
type MetadataResolveOutcome = {
|
|
825
766
|
kind: 'resolved';
|
|
826
767
|
session: SessionMeta;
|
|
827
768
|
} | {
|
|
@@ -943,7 +884,7 @@ export declare function isLocallyDefinitiveMatch(session: SessionMeta, self: str
|
|
|
943
884
|
export declare function preferOwnerAttribution(localMatches: SessionMeta[], remoteSessions: SessionMeta[], self: string): SessionMeta[];
|
|
944
885
|
/** Injectable dependencies for the live-registry cold-miss fallback (RUSH-2682)
|
|
945
886
|
* and the fleet-attribution reconciliation (PHNX-3890). */
|
|
946
|
-
|
|
887
|
+
type LiveMetadataDeps = {
|
|
947
888
|
loadActive?: typeof loadLocalActiveSessions;
|
|
948
889
|
/** The fleet-active snapshot rows used to attribute a self-defaulted launcher
|
|
949
890
|
* shim to its true execution host. Defaults to the cached fleet snapshot; the
|
|
@@ -1003,37 +944,5 @@ export declare function resolveSessionMetadata(selector: string, scope: {
|
|
|
1003
944
|
local?: boolean;
|
|
1004
945
|
hosts?: string[];
|
|
1005
946
|
}, deps?: Pick<FleetResolveDeps, 'gatherRemoteList'> & LiveMetadataDeps): Promise<void>;
|
|
1006
|
-
/**
|
|
1007
|
-
* Locate a full session id or short id prefix across the online fleet and render it from the machine
|
|
1008
|
-
* that holds it. The local disk already missed; this fans `sessions <id> --json
|
|
1009
|
-
* --all` out to every registered online peer (or the explicit `hosts` set),
|
|
1010
|
-
* groups the rows to distinct machines, then:
|
|
1011
|
-
*
|
|
1012
|
-
* - exactly one logical session → delegate rendering to one peer via `runOnPeer`
|
|
1013
|
-
* (its transcript and agent binary live there — a local `--device` hop would
|
|
1014
|
-
* re-discover locally and dead-end), returning `'rendered'`.
|
|
1015
|
-
* - more than one logical session → print every full-id candidate with its
|
|
1016
|
-
* machine labels, returning `{ kind: 'conflict' }`.
|
|
1017
|
-
* - none → `{ kind: 'not-found', deviceCount, unreachable }`,
|
|
1018
|
-
* letting the caller print an honest sweep-aware message.
|
|
1019
|
-
*
|
|
1020
|
-
* A full-UUID query opts into early-exit: the first peer holding it resolves the
|
|
1021
|
-
* sweep and cancels the rest, so a fast peer is not bounded by the slowest one.
|
|
1022
|
-
* A short-id prefix stays all-settle — its ambiguity is only known once every
|
|
1023
|
-
* peer has answered, so it must wait to surface a conflict.
|
|
1024
|
-
*
|
|
1025
|
-
* No fuzzy/content fallback: the sweep forwards the id selector and every result
|
|
1026
|
-
* is resolved through `resolveSessionQuery`, the same id-only resolver used locally.
|
|
1027
|
-
*/
|
|
1028
|
-
export type FleetResolveResult = {
|
|
1029
|
-
kind: 'rendered';
|
|
1030
|
-
} | {
|
|
1031
|
-
kind: 'conflict';
|
|
1032
|
-
} | {
|
|
1033
|
-
kind: 'not-found';
|
|
1034
|
-
deviceCount: number;
|
|
1035
|
-
unreachable: string[];
|
|
1036
|
-
};
|
|
1037
|
-
export declare function resolveSessionAcrossFleet(query: string, mode: ViewMode, hosts?: string[], deps?: FleetResolveDeps): Promise<FleetResolveResult>;
|
|
1038
947
|
/** Register the `agents sessions` command with all its options and help text. */
|
|
1039
948
|
export declare function registerSessionsCommands(program: Command): void;
|