@phnx-labs/agents-cli 1.22.119 → 1.22.121
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 +236 -0
- package/README.md +19 -2
- package/dist/bootstrap.d.ts +0 -15
- package/dist/bootstrap.js +10 -409
- package/dist/cli/command-registry.d.ts +0 -58
- package/dist/cli/command-registry.js +2 -74
- package/dist/commands/accounts.d.ts +0 -17
- package/dist/commands/accounts.js +1 -52
- package/dist/commands/alias.d.ts +0 -12
- package/dist/commands/alias.js +0 -6
- package/dist/commands/apply.d.ts +0 -15
- package/dist/commands/apply.js +0 -63
- package/dist/commands/audit.d.ts +0 -12
- package/dist/commands/audit.js +0 -13
- package/dist/commands/auth.js +4 -12
- package/dist/commands/beta.d.ts +0 -6
- package/dist/commands/beta.js +2 -6
- package/dist/commands/browser-sessions-picker.d.ts +0 -8
- package/dist/commands/browser-sessions-picker.js +0 -26
- package/dist/commands/browser.d.ts +0 -57
- package/dist/commands/browser.js +0 -80
- package/dist/commands/budget.d.ts +0 -13
- package/dist/commands/budget.js +0 -2
- package/dist/commands/cli.d.ts +0 -12
- package/dist/commands/cli.js +0 -4
- package/dist/commands/cloud.d.ts +0 -9
- package/dist/commands/cloud.js +0 -43
- package/dist/commands/commands.d.ts +0 -9
- package/dist/commands/commands.js +0 -18
- package/dist/commands/computer-sessions-picker.d.ts +0 -11
- package/dist/commands/computer-sessions-picker.js +0 -29
- package/dist/commands/computer.d.ts +0 -62
- package/dist/commands/computer.js +3 -114
- package/dist/commands/config.d.ts +0 -14
- package/dist/commands/config.js +21 -60
- package/dist/commands/cost.d.ts +0 -11
- package/dist/commands/cost.js +1 -17
- package/dist/commands/daemon-test-harness.d.ts +0 -32
- package/dist/commands/daemon-test-harness.js +1 -36
- package/dist/commands/daemon.d.ts +0 -46
- package/dist/commands/daemon.js +8 -255
- package/dist/commands/detach-core.d.ts +0 -28
- package/dist/commands/detach-core.js +0 -30
- package/dist/commands/detach.d.ts +1 -12
- package/dist/commands/detach.js +16 -52
- package/dist/commands/device-config-test-harness.js +0 -12
- package/dist/commands/doctor.d.ts +0 -103
- package/dist/commands/doctor.js +3 -279
- package/dist/commands/events.d.ts +0 -29
- package/dist/commands/events.js +1 -55
- package/dist/commands/exec.d.ts +0 -163
- package/dist/commands/exec.js +15 -964
- package/dist/commands/factory.d.ts +0 -6
- package/dist/commands/factory.js +0 -2
- package/dist/commands/feed-watch.js +0 -20
- package/dist/commands/feed.d.ts +0 -38
- package/dist/commands/feed.js +1 -151
- package/dist/commands/feedback.d.ts +0 -5
- package/dist/commands/feedback.js +0 -5
- package/dist/commands/fleet-capture.d.ts +0 -12
- package/dist/commands/fleet-capture.js +1 -39
- package/dist/commands/focus.d.ts +6 -94
- package/dist/commands/focus.js +13 -183
- package/dist/commands/fork.d.ts +0 -21
- package/dist/commands/fork.js +0 -45
- package/dist/commands/funnel.d.ts +0 -3
- package/dist/commands/go.d.ts +2 -71
- package/dist/commands/go.js +5 -99
- package/dist/commands/harness-hooks.d.ts +0 -41
- package/dist/commands/harness-hooks.js +0 -48
- package/dist/commands/harness-wizard.d.ts +0 -137
- package/dist/commands/harness-wizard.js +0 -109
- package/dist/commands/harness.d.ts +0 -63
- package/dist/commands/harness.js +0 -103
- package/dist/commands/hooks.d.ts +0 -9
- package/dist/commands/hooks.js +0 -26
- package/dist/commands/humans.d.ts +0 -8
- package/dist/commands/humans.js +0 -8
- package/dist/commands/import.d.ts +0 -22
- package/dist/commands/import.js +0 -79
- package/dist/commands/insights.d.ts +0 -37
- package/dist/commands/insights.js +3 -115
- package/dist/commands/inspect.d.ts +0 -117
- package/dist/commands/inspect.js +2 -448
- package/dist/commands/lease.d.ts +0 -28
- package/dist/commands/lease.js +0 -43
- package/dist/commands/logs.d.ts +0 -23
- package/dist/commands/logs.js +0 -30
- package/dist/commands/mailboxes.d.ts +0 -18
- package/dist/commands/mailboxes.js +0 -29
- package/dist/commands/mcp.d.ts +0 -9
- package/dist/commands/mcp.js +0 -53
- package/dist/commands/memory.d.ts +0 -7
- package/dist/commands/memory.js +0 -7
- package/dist/commands/menubar.d.ts +0 -8
- package/dist/commands/menubar.js +0 -24
- package/dist/commands/message.d.ts +0 -23
- package/dist/commands/message.js +0 -50
- package/dist/commands/mine.d.ts +0 -22
- package/dist/commands/mine.js +0 -21
- package/dist/commands/models.d.ts +0 -8
- package/dist/commands/models.js +0 -33
- package/dist/commands/modes.d.ts +0 -10
- package/dist/commands/modes.js +0 -13
- package/dist/commands/monitors.d.ts +0 -9
- package/dist/commands/monitors.js +3 -160
- package/dist/commands/open.d.ts +0 -26
- package/dist/commands/open.js +0 -10
- package/dist/commands/output.d.ts +0 -18
- package/dist/commands/output.js +1 -34
- package/dist/commands/packages-materialize.d.ts +0 -11
- package/dist/commands/packages-materialize.js +0 -3
- package/dist/commands/packages.d.ts +0 -10
- package/dist/commands/packages.js +0 -50
- package/dist/commands/perf.d.ts +0 -41
- package/dist/commands/perf.js +0 -55
- package/dist/commands/permissions.d.ts +0 -9
- package/dist/commands/permissions.js +0 -43
- package/dist/commands/plugins.d.ts +0 -14
- package/dist/commands/plugins.js +2 -55
- package/dist/commands/profiles.d.ts +0 -25
- package/dist/commands/profiles.js +0 -27
- package/dist/commands/projects-todo.d.ts +2 -0
- package/dist/commands/projects-todo.js +132 -0
- package/dist/commands/projects.d.ts +0 -85
- package/dist/commands/projects.js +344 -291
- package/dist/commands/prune.js +0 -30
- package/dist/commands/ps-roster.d.ts +92 -0
- package/dist/commands/ps-roster.js +744 -0
- package/dist/commands/ps.d.ts +6 -0
- package/dist/commands/ps.js +98 -0
- package/dist/commands/refresh-rules.d.ts +0 -13
- package/dist/commands/refresh-rules.js +0 -14
- package/dist/commands/reminders.d.ts +0 -7
- package/dist/commands/repo.d.ts +0 -89
- package/dist/commands/repo.js +7 -205
- package/dist/commands/resource-view.d.ts +0 -33
- package/dist/commands/resource-view.js +0 -49
- package/dist/commands/resume.d.ts +1 -19
- package/dist/commands/resume.js +0 -50
- package/dist/commands/route.d.ts +0 -10
- package/dist/commands/route.js +0 -19
- package/dist/commands/routines.d.ts +0 -42
- package/dist/commands/routines.js +5 -290
- package/dist/commands/routines.test-fixture.d.ts +0 -34
- package/dist/commands/routines.test-fixture.js +4 -100
- package/dist/commands/rules.d.ts +0 -9
- package/dist/commands/rules.js +1 -6
- package/dist/commands/run-account-picker.d.ts +0 -59
- package/dist/commands/run-account-picker.js +0 -71
- package/dist/commands/run-broadcast.d.ts +0 -9
- package/dist/commands/run-broadcast.js +0 -7
- package/dist/commands/run-cloud.d.ts +0 -15
- package/dist/commands/run-cloud.js +0 -37
- package/dist/commands/run-device-picker.d.ts +0 -25
- package/dist/commands/run-device-picker.js +1 -53
- package/dist/commands/secrets-passthrough.d.ts +0 -31
- package/dist/commands/secrets-passthrough.js +0 -10
- package/dist/commands/send.d.ts +0 -20
- package/dist/commands/send.js +14 -18
- package/dist/commands/sessions-backfill.d.ts +0 -7
- package/dist/commands/sessions-backfill.js +1 -16
- package/dist/commands/sessions-backup-setup.js +0 -11
- package/dist/commands/sessions-bookmark.d.ts +0 -8
- package/dist/commands/sessions-bookmark.js +0 -28
- package/dist/commands/sessions-browser.d.ts +2 -117
- package/dist/commands/sessions-browser.js +5 -243
- package/dist/commands/sessions-export.d.ts +1 -26
- package/dist/commands/sessions-export.js +3 -81
- package/dist/commands/sessions-import.d.ts +0 -14
- package/dist/commands/sessions-import.js +0 -59
- package/dist/commands/sessions-inject.d.ts +0 -60
- package/dist/commands/sessions-inject.js +3 -96
- package/dist/commands/sessions-migrate.d.ts +2 -37
- package/dist/commands/sessions-migrate.js +7 -159
- package/dist/commands/sessions-optimize.d.ts +0 -12
- package/dist/commands/sessions-picker-factory.d.ts +0 -7
- package/dist/commands/sessions-picker-factory.js +0 -8
- package/dist/commands/sessions-picker.d.ts +4 -103
- package/dist/commands/sessions-picker.js +13 -352
- package/dist/commands/sessions-render.d.ts +1 -2
- package/dist/commands/sessions-render.js +3 -7
- package/dist/commands/sessions-resume.d.ts +1 -24
- package/dist/commands/sessions-resume.js +2 -65
- package/dist/commands/sessions-share.d.ts +1 -9
- package/dist/commands/sessions-share.js +1 -45
- package/dist/commands/sessions-stats.d.ts +0 -24
- package/dist/commands/sessions-stats.js +0 -49
- package/dist/commands/sessions-stop.d.ts +1 -20
- package/dist/commands/sessions-stop.js +4 -9
- package/dist/commands/sessions-tail.d.ts +1 -19
- package/dist/commands/sessions-tail.js +3 -36
- package/dist/commands/sessions-trace.d.ts +5 -36
- package/dist/commands/sessions-trace.js +7 -82
- package/dist/commands/sessions.d.ts +1 -666
- package/dist/commands/sessions.js +30 -2279
- package/dist/commands/sessions.test-fixture.d.ts +0 -9
- package/dist/commands/sessions.test-fixture.js +8 -23
- package/dist/commands/setup-accounts.d.ts +0 -6
- package/dist/commands/setup-browser.d.ts +0 -23
- package/dist/commands/setup-browser.js +0 -28
- package/dist/commands/setup-computer.d.ts +0 -16
- package/dist/commands/setup-computer.js +0 -28
- package/dist/commands/setup-fleet.d.ts +0 -8
- package/dist/commands/setup-fleet.js +0 -11
- package/dist/commands/setup-mine.d.ts +0 -14
- package/dist/commands/setup-mine.js +0 -25
- package/dist/commands/setup-preferences.d.ts +0 -47
- package/dist/commands/setup-preferences.js +0 -53
- package/dist/commands/setup-secrets.d.ts +2 -24
- package/dist/commands/setup-secrets.js +0 -24
- package/dist/commands/setup-term.d.ts +0 -21
- package/dist/commands/setup-term.js +0 -21
- package/dist/commands/setup-terminal.d.ts +0 -1
- package/dist/commands/setup-terminal.js +0 -1
- package/dist/commands/setup-tools.d.ts +2 -0
- package/dist/commands/setup-tools.js +73 -0
- package/dist/commands/setup.d.ts +0 -20
- package/dist/commands/setup.js +4 -57
- package/dist/commands/skills.d.ts +0 -9
- package/dist/commands/skills.js +1 -22
- package/dist/commands/snapshot.d.ts +0 -9
- package/dist/commands/snapshot.js +0 -10
- package/dist/commands/ssh.d.ts +0 -64
- package/dist/commands/ssh.js +9 -420
- package/dist/commands/status.d.ts +0 -12
- package/dist/commands/status.js +0 -26
- package/dist/commands/subagents.d.ts +0 -8
- package/dist/commands/subagents.js +0 -31
- package/dist/commands/sync.d.ts +0 -37
- package/dist/commands/sync.js +0 -256
- package/dist/commands/teams-picker.d.ts +0 -3
- package/dist/commands/teams-picker.js +0 -34
- package/dist/commands/teams.d.ts +1 -76
- package/dist/commands/teams.js +9 -477
- package/dist/commands/tmux.d.ts +0 -25
- package/dist/commands/tmux.js +0 -46
- package/dist/commands/traces.js +0 -19
- package/dist/commands/trash.d.ts +0 -17
- package/dist/commands/trash.js +1 -11
- package/dist/commands/uninstall.d.ts +0 -9
- package/dist/commands/uninstall.js +0 -6
- package/dist/commands/update.d.ts +0 -22
- package/dist/commands/update.js +0 -44
- package/dist/commands/upgrade.d.ts +0 -1
- package/dist/commands/upgrade.js +0 -1
- package/dist/commands/utils.d.ts +0 -85
- package/dist/commands/utils.js +1 -95
- package/dist/commands/versions.d.ts +0 -16
- package/dist/commands/versions.js +0 -134
- package/dist/commands/view.d.ts +0 -90
- package/dist/commands/view.js +4 -343
- package/dist/commands/watchdog.d.ts +0 -19
- package/dist/commands/watchdog.js +3 -43
- package/dist/commands/webhook.d.ts +0 -8
- package/dist/commands/webhook.js +0 -14
- package/dist/commands/workflows.d.ts +0 -8
- package/dist/commands/workflows.js +0 -6
- package/dist/index.d.ts +0 -25
- package/dist/index.js +5 -119
- package/dist/lib/account-capabilities.d.ts +0 -34
- package/dist/lib/account-capabilities.js +0 -32
- package/dist/lib/account-catalog.d.ts +0 -128
- package/dist/lib/account-catalog.js +8 -154
- package/dist/lib/account-provider-registry.d.ts +0 -14
- package/dist/lib/account-provider-registry.js +0 -8
- package/dist/lib/account-registry.d.ts +0 -74
- package/dist/lib/account-registry.js +14 -189
- package/dist/lib/account-schema.d.ts +0 -19
- package/dist/lib/account-schema.js +0 -43
- package/dist/lib/accounting/account-launch.d.ts +0 -15
- package/dist/lib/accounting/account-launch.js +1 -3
- package/dist/lib/accounting/account-pool-collect.d.ts +0 -26
- package/dist/lib/accounting/account-pool-collect.js +0 -42
- package/dist/lib/accounting/account-pool.d.ts +0 -41
- package/dist/lib/accounting/account-pool.js +0 -17
- package/dist/lib/accounting/capacity.d.ts +0 -32
- package/dist/lib/accounting/capacity.js +0 -32
- package/dist/lib/accounting/rotate.d.ts +0 -518
- package/dist/lib/accounting/rotate.js +4 -598
- package/dist/lib/accounting/usage-ingest.d.ts +0 -1
- package/dist/lib/accounting/usage-ingest.js +0 -44
- package/dist/lib/accounting/usage-sync.d.ts +0 -60
- package/dist/lib/accounting/usage-sync.js +4 -51
- package/dist/lib/accounting/usage.d.ts +0 -632
- package/dist/lib/accounting/usage.js +14 -1055
- package/dist/lib/accounts/add.d.ts +0 -60
- package/dist/lib/accounts/add.js +0 -127
- package/dist/lib/accounts/auth-operation-lock.d.ts +0 -1
- package/dist/lib/accounts/auth-operation-lock.js +0 -4
- package/dist/lib/accounts/migrate.d.ts +0 -9
- package/dist/lib/accounts/migrate.js +3 -42
- package/dist/lib/accounts/slots.d.ts +0 -25
- package/dist/lib/accounts/slots.js +1 -49
- package/dist/lib/acp/client.d.ts +0 -16
- package/dist/lib/acp/client.js +0 -29
- package/dist/lib/acp/harnesses.d.ts +0 -15
- package/dist/lib/acp/harnesses.js +0 -16
- package/dist/lib/acp/run.d.ts +0 -8
- package/dist/lib/acp/run.js +0 -8
- package/dist/lib/actor.d.ts +1 -71
- package/dist/lib/actor.js +1 -99
- package/dist/lib/add-dir.d.ts +0 -46
- package/dist/lib/add-dir.js +1 -70
- package/dist/lib/address.d.ts +0 -17
- package/dist/lib/address.js +0 -15
- package/dist/lib/agent-cli-commands.d.ts +0 -10
- package/dist/lib/agent-cli-commands.js +0 -10
- package/dist/lib/agent-modes.d.ts +0 -29
- package/dist/lib/agent-modes.js +0 -31
- package/dist/lib/agent-spec/agents.d.ts +0 -426
- package/dist/lib/agent-spec/agents.js +37 -924
- package/dist/lib/agent-spec/index.d.ts +0 -5
- package/dist/lib/agent-spec/index.js +0 -14
- package/dist/lib/agent-spec/materialize.d.ts +0 -10
- package/dist/lib/agent-spec/materialize.js +2 -139
- package/dist/lib/agent-spec/package-resolve.d.ts +0 -8
- package/dist/lib/agent-spec/package-resolve.js +1 -44
- package/dist/lib/agent-spec/package-schema.d.ts +0 -2
- package/dist/lib/agent-spec/package-schema.js +0 -11
- package/dist/lib/agent-spec/package-types.d.ts +0 -27
- package/dist/lib/agent-spec/package-types.js +0 -1
- package/dist/lib/agent-spec/primitives.d.ts +0 -18
- package/dist/lib/agent-spec/primitives.js +0 -27
- package/dist/lib/agent-spec/provider.js +0 -2
- package/dist/lib/agent-spec/resolve.d.ts +0 -23
- package/dist/lib/agent-spec/resolve.js +0 -41
- package/dist/lib/agent-spec/types.d.ts +0 -34
- package/dist/lib/agent-spec/types.js +0 -6
- package/dist/lib/agents.d.ts +0 -1
- package/dist/lib/agents.js +0 -1
- package/dist/lib/analytics/mix-commands.d.ts +0 -23
- package/dist/lib/analytics/mix-commands.js +0 -26
- package/dist/lib/analytics/recipes.d.ts +0 -1
- package/dist/lib/analytics/recipes.js +5 -10
- package/dist/lib/analytics/usage-db.js +4 -6
- package/dist/lib/answer-router.d.ts +0 -61
- package/dist/lib/answer-router.js +0 -57
- package/dist/lib/app-bundle-install.d.ts +0 -13
- package/dist/lib/app-bundle-install.js +0 -50
- package/dist/lib/artifact-actions.d.ts +0 -15
- package/dist/lib/artifact-actions.js +0 -18
- package/dist/lib/artifacts-client.d.ts +0 -10
- package/dist/lib/artifacts-client.js +0 -17
- package/dist/lib/ask-classifier.d.ts +0 -38
- package/dist/lib/ask-classifier.js +0 -27
- package/dist/lib/audit/log.d.ts +0 -47
- package/dist/lib/audit/log.js +1 -59
- package/dist/lib/auth-health.d.ts +0 -213
- package/dist/lib/auth-health.js +16 -266
- package/dist/lib/auth-mint.d.ts +0 -83
- package/dist/lib/auth-mint.js +8 -85
- package/dist/lib/auto-pull-worker.d.ts +0 -10
- package/dist/lib/auto-pull-worker.js +3 -48
- package/dist/lib/auto-pull.d.ts +0 -64
- package/dist/lib/auto-pull.js +0 -79
- package/dist/lib/beta.d.ts +0 -9
- package/dist/lib/beta.js +0 -9
- package/dist/lib/binary-shadow.d.ts +0 -22
- package/dist/lib/binary-shadow.js +4 -34
- package/dist/lib/boot-profile.d.ts +0 -10
- package/dist/lib/boot-profile.js +1 -31
- package/dist/lib/brand.d.ts +0 -20
- package/dist/lib/brand.js +0 -50
- package/dist/lib/browser/context.d.ts +0 -54
- package/dist/lib/browser/context.js +0 -49
- package/dist/lib/browser/paths.d.ts +0 -21
- package/dist/lib/browser/paths.js +0 -26
- package/dist/lib/browser/record.d.ts +0 -34
- package/dist/lib/browser/record.js +0 -38
- package/dist/lib/browser/sessions-list.d.ts +1 -79
- package/dist/lib/browser/sessions-list.js +2 -98
- package/dist/lib/browser-client.d.ts +0 -112
- package/dist/lib/browser-client.js +1 -90
- package/dist/lib/budget/config.d.ts +0 -6
- package/dist/lib/budget/config.js +0 -29
- package/dist/lib/budget/enforce.d.ts +0 -50
- package/dist/lib/budget/enforce.js +0 -27
- package/dist/lib/budget/ledger.d.ts +0 -23
- package/dist/lib/budget/ledger.js +0 -28
- package/dist/lib/budget/live-cloud.d.ts +0 -26
- package/dist/lib/budget/live-cloud.js +0 -12
- package/dist/lib/budget/live-team.d.ts +0 -17
- package/dist/lib/budget/live-team.js +1 -35
- package/dist/lib/budget/preflight.d.ts +0 -51
- package/dist/lib/budget/preflight.js +0 -36
- package/dist/lib/byok-usage.d.ts +0 -20
- package/dist/lib/byok-usage.js +1 -24
- package/dist/lib/capabilities.d.ts +0 -24
- package/dist/lib/capabilities.js +0 -29
- package/dist/lib/catchup.d.ts +0 -87
- package/dist/lib/catchup.js +1 -81
- package/dist/lib/channels/owner-forward.d.ts +0 -70
- package/dist/lib/channels/owner-forward.js +1 -43
- package/dist/lib/channels/owner-sink.js +0 -21
- package/dist/lib/channels/providers/desktop.d.ts +0 -37
- package/dist/lib/channels/providers/desktop.js +0 -72
- package/dist/lib/channels/providers/index.d.ts +0 -1
- package/dist/lib/channels/providers/index.js +2 -6
- package/dist/lib/channels/providers/mailbox.js +0 -7
- package/dist/lib/channels/providers/openclaw-telegram.js +0 -8
- package/dist/lib/channels/providers/rush.d.ts +0 -2
- package/dist/lib/channels/providers/rush.js +0 -26
- package/dist/lib/channels/providers/session.d.ts +2 -0
- package/dist/lib/channels/providers/session.js +26 -0
- package/dist/lib/channels/registry.d.ts +0 -27
- package/dist/lib/channels/registry.js +0 -10
- package/dist/lib/channels/resolve.d.ts +0 -19
- package/dist/lib/channels/resolve.js +0 -2
- package/dist/lib/channels/send.d.ts +0 -50
- package/dist/lib/channels/send.js +0 -25
- package/dist/lib/checkpoint.d.ts +0 -36
- package/dist/lib/checkpoint.js +0 -28
- package/dist/lib/claude-account-token.d.ts +0 -98
- package/dist/lib/claude-account-token.js +7 -169
- package/dist/lib/claude-statusline.d.ts +0 -41
- package/dist/lib/claude-statusline.js +0 -68
- package/dist/lib/cli-entry.d.ts +0 -26
- package/dist/lib/cli-entry.js +1 -61
- package/dist/lib/cli-resources.d.ts +31 -89
- package/dist/lib/cli-resources.js +116 -152
- package/dist/lib/cloud/antigravity.d.ts +0 -29
- package/dist/lib/cloud/antigravity.js +0 -36
- package/dist/lib/cloud/codex.d.ts +0 -8
- package/dist/lib/cloud/codex.js +0 -41
- package/dist/lib/cloud/cursor.d.ts +0 -5
- package/dist/lib/cloud/cursor.js +2 -7
- package/dist/lib/cloud/dispatch.d.ts +0 -13
- package/dist/lib/cloud/dispatch.js +1 -48
- package/dist/lib/cloud/factory.d.ts +0 -52
- package/dist/lib/cloud/factory.js +3 -67
- package/dist/lib/cloud/host.d.ts +0 -39
- package/dist/lib/cloud/host.js +5 -48
- package/dist/lib/cloud/registry.d.ts +0 -25
- package/dist/lib/cloud/registry.js +0 -29
- package/dist/lib/cloud/rush.d.ts +0 -47
- package/dist/lib/cloud/rush.js +1 -82
- package/dist/lib/cloud/session-index.d.ts +0 -27
- package/dist/lib/cloud/session-index.js +1 -32
- package/dist/lib/cloud/store.d.ts +0 -18
- package/dist/lib/cloud/store.js +0 -28
- package/dist/lib/cloud/stream.d.ts +0 -14
- package/dist/lib/cloud/stream.js +0 -25
- package/dist/lib/cloud/types.d.ts +0 -168
- package/dist/lib/cloud/types.js +0 -46
- package/dist/lib/cloudflare/creds.d.ts +0 -2
- package/dist/lib/cloudflare/creds.js +0 -14
- package/dist/lib/cloudflare/provision.d.ts +0 -8
- package/dist/lib/cloudflare/provision.js +1 -19
- package/dist/lib/codex-home.d.ts +0 -60
- package/dist/lib/codex-home.js +2 -72
- package/dist/lib/codex-policy.d.ts +0 -10
- package/dist/lib/codex-policy.js +0 -13
- package/dist/lib/command-skills.d.ts +0 -10
- package/dist/lib/command-skills.js +0 -10
- package/dist/lib/commands.d.ts +0 -74
- package/dist/lib/commands.js +0 -112
- package/dist/lib/comms-render.d.ts +0 -5
- package/dist/lib/comms-render.js +0 -5
- package/dist/lib/computer/context.d.ts +0 -23
- package/dist/lib/computer/context.js +0 -14
- package/dist/lib/computer/policy.d.ts +0 -20
- package/dist/lib/computer/policy.js +0 -53
- package/dist/lib/computer/record.d.ts +0 -33
- package/dist/lib/computer/record.js +1 -48
- package/dist/lib/computer/sessions-list.d.ts +1 -128
- package/dist/lib/computer/sessions-list.js +6 -165
- package/dist/lib/computer-client.d.ts +0 -106
- package/dist/lib/computer-client.js +5 -86
- package/dist/lib/concurrency.d.ts +0 -14
- package/dist/lib/concurrency.js +0 -3
- package/dist/lib/config-drift.d.ts +0 -31
- package/dist/lib/config-drift.js +0 -32
- package/dist/lib/config-keys.d.ts +1 -65
- package/dist/lib/config-keys.js +6 -52
- package/dist/lib/config-transfer.d.ts +0 -14
- package/dist/lib/config-transfer.js +0 -26
- package/dist/lib/convert.d.ts +0 -17
- package/dist/lib/convert.js +0 -18
- package/dist/lib/crabbox/cli.d.ts +0 -156
- package/dist/lib/crabbox/cli.js +1 -188
- package/dist/lib/crabbox/config.d.ts +0 -18
- package/dist/lib/crabbox/config.js +1 -19
- package/dist/lib/crabbox/lease.d.ts +0 -93
- package/dist/lib/crabbox/lease.js +4 -148
- package/dist/lib/crabbox/progress.d.ts +0 -56
- package/dist/lib/crabbox/progress.js +2 -49
- package/dist/lib/crabbox/runtimes.d.ts +0 -94
- package/dist/lib/crabbox/runtimes.js +1 -111
- package/dist/lib/crabbox/setup-copy.d.ts +0 -64
- package/dist/lib/crabbox/setup-copy.js +1 -53
- package/dist/lib/daemon/account-state-daemon-service.d.ts +0 -48
- package/dist/lib/daemon/account-state-daemon-service.js +2 -63
- package/dist/lib/daemon/attention-notify-service.d.ts +0 -12
- package/dist/lib/daemon/attention-notify-service.js +1 -24
- package/dist/lib/daemon/auth-sync-service.d.ts +0 -28
- package/dist/lib/daemon/auth-sync-service.js +0 -56
- package/dist/lib/daemon/catchup-service.d.ts +0 -34
- package/dist/lib/daemon/catchup-service.js +0 -30
- package/dist/lib/daemon/daemon.d.ts +0 -374
- package/dist/lib/daemon/daemon.js +44 -1049
- package/dist/lib/daemon/daemon.test-fixture.d.ts +0 -19
- package/dist/lib/daemon/daemon.test-fixture.js +1 -24
- package/dist/lib/daemon/device-probe-service.d.ts +0 -16
- package/dist/lib/daemon/device-probe-service.js +0 -20
- package/dist/lib/daemon/feed-stream-service.d.ts +0 -15
- package/dist/lib/daemon/feed-stream-service.js +0 -20
- package/dist/lib/daemon/harness-update-service.d.ts +2 -61
- package/dist/lib/daemon/harness-update-service.js +6 -86
- package/dist/lib/daemon/heartbeat-service.d.ts +0 -1
- package/dist/lib/daemon/heartbeat-service.js +0 -1
- package/dist/lib/daemon/leaked-daemons.d.ts +0 -46
- package/dist/lib/daemon/leaked-daemons.js +2 -78
- package/dist/lib/daemon/monitor-engine-service.d.ts +0 -13
- package/dist/lib/daemon/monitor-engine-service.js +3 -15
- package/dist/lib/daemon/runner.d.ts +0 -194
- package/dist/lib/daemon/runner.js +39 -760
- package/dist/lib/daemon/self-heal-service.d.ts +18 -17
- package/dist/lib/daemon/self-heal-service.js +83 -37
- package/dist/lib/daemon/self-update-service.d.ts +1 -131
- package/dist/lib/daemon/self-update-service.js +26 -189
- package/dist/lib/daemon/service.d.ts +0 -73
- package/dist/lib/daemon/service.js +0 -34
- package/dist/lib/daemon/session-index-service.d.ts +0 -12
- package/dist/lib/daemon/session-index-service.js +0 -23
- package/dist/lib/daemon/session-state-service.d.ts +0 -8
- package/dist/lib/daemon/session-state-service.js +0 -8
- package/dist/lib/daemon/session-summarizer-service.d.ts +0 -14
- package/dist/lib/daemon/session-summarizer-service.js +1 -19
- package/dist/lib/daemon/session-title-service.d.ts +0 -25
- package/dist/lib/daemon/session-title-service.js +0 -32
- package/dist/lib/daemon/state-dir-check-service.d.ts +0 -24
- package/dist/lib/daemon/state-dir-check-service.js +0 -29
- package/dist/lib/daemon/supervisor.d.ts +0 -112
- package/dist/lib/daemon/supervisor.js +4 -147
- package/dist/lib/daemon/testdata/process-view-daemon.js +0 -2
- package/dist/lib/daemon/testdata/process-view-start.js +0 -5
- package/dist/lib/daemon/tmux-reap-service.d.ts +0 -1
- package/dist/lib/daemon/tmux-reap-service.js +0 -1
- package/dist/lib/daemon/usage-sync-service.d.ts +0 -23
- package/dist/lib/daemon/usage-sync-service.js +0 -26
- package/dist/lib/daemon/watchdog-service.d.ts +0 -9
- package/dist/lib/daemon/watchdog-service.js +0 -13
- package/dist/lib/daemon/webhook-receiver-service.d.ts +0 -1
- package/dist/lib/daemon/webhook-receiver-service.js +0 -1
- package/dist/lib/daemon-health.d.ts +0 -55
- package/dist/lib/daemon-health.js +4 -77
- package/dist/lib/daemon-services.d.ts +0 -36
- package/dist/lib/daemon-services.js +0 -45
- package/dist/lib/daemon-ticks.d.ts +0 -126
- package/dist/lib/daemon-ticks.js +1 -156
- package/dist/lib/daemon-webhooks.d.ts +0 -57
- package/dist/lib/daemon-webhooks.js +2 -54
- package/dist/lib/deeplink/register.d.ts +0 -15
- package/dist/lib/deeplink/register.js +0 -60
- package/dist/lib/deeplink/url.d.ts +0 -24
- package/dist/lib/deeplink/url.js +1 -33
- package/dist/lib/device-config.d.ts +1 -192
- package/dist/lib/device-config.js +86 -240
- package/dist/lib/devices/config-migration.d.ts +0 -43
- package/dist/lib/devices/config-migration.js +7 -127
- package/dist/lib/devices/connect.d.ts +0 -168
- package/dist/lib/devices/connect.js +6 -254
- package/dist/lib/devices/device-docs.d.ts +0 -24
- package/dist/lib/devices/device-docs.js +0 -46
- package/dist/lib/devices/discovery-policy.d.ts +0 -30
- package/dist/lib/devices/discovery-policy.js +3 -34
- package/dist/lib/devices/doctor-findings.d.ts +0 -109
- package/dist/lib/devices/doctor-findings.js +30 -326
- package/dist/lib/devices/doctor-overview-cache.d.ts +0 -33
- package/dist/lib/devices/doctor-overview-cache.js +0 -81
- package/dist/lib/devices/fleet-divergence.d.ts +0 -89
- package/dist/lib/devices/fleet-divergence.js +1 -60
- package/dist/lib/devices/fleet-inventory.d.ts +0 -27
- package/dist/lib/devices/fleet-inventory.js +0 -38
- package/dist/lib/devices/fleet.d.ts +0 -95
- package/dist/lib/devices/fleet.js +0 -79
- package/dist/lib/devices/harness-inventory.d.ts +0 -75
- package/dist/lib/devices/harness-inventory.js +0 -101
- package/dist/lib/devices/health-report.d.ts +0 -37
- package/dist/lib/devices/health-report.js +0 -73
- package/dist/lib/devices/health.d.ts +0 -71
- package/dist/lib/devices/health.js +2 -82
- package/dist/lib/devices/interactive-host.d.ts +0 -10
- package/dist/lib/devices/interactive-host.js +0 -34
- package/dist/lib/devices/known-hosts.d.ts +0 -45
- package/dist/lib/devices/known-hosts.js +0 -77
- package/dist/lib/devices/pending.d.ts +0 -31
- package/dist/lib/devices/pending.js +7 -67
- package/dist/lib/devices/pool.d.ts +0 -36
- package/dist/lib/devices/pool.js +0 -30
- package/dist/lib/devices/reachability.d.ts +0 -25
- package/dist/lib/devices/reachability.js +0 -14
- package/dist/lib/devices/registry.d.ts +0 -141
- package/dist/lib/devices/registry.js +4 -151
- package/dist/lib/devices/resolve-profile.d.ts +0 -18
- package/dist/lib/devices/resolve-profile.js +0 -18
- package/dist/lib/devices/resolve-target.d.ts +0 -20
- package/dist/lib/devices/resolve-target.js +1 -51
- package/dist/lib/devices/rollout-verify.d.ts +1 -81
- package/dist/lib/devices/rollout-verify.js +0 -77
- package/dist/lib/devices/self-host.d.ts +0 -7
- package/dist/lib/devices/self-host.js +1 -29
- package/dist/lib/devices/ssh-config.d.ts +0 -18
- package/dist/lib/devices/ssh-config.js +0 -9
- package/dist/lib/devices/stats-cache.d.ts +0 -48
- package/dist/lib/devices/stats-cache.js +0 -80
- package/dist/lib/devices/sync.d.ts +0 -97
- package/dist/lib/devices/sync.js +0 -88
- package/dist/lib/devices/tailscale.d.ts +0 -18
- package/dist/lib/devices/tailscale.js +1 -38
- package/dist/lib/devices/terminfo.d.ts +0 -27
- package/dist/lib/devices/terminfo.js +2 -64
- package/dist/lib/devices/worker-pick.d.ts +0 -15
- package/dist/lib/devices/worker-pick.js +0 -48
- package/dist/lib/diff-text.d.ts +0 -18
- package/dist/lib/diff-text.js +0 -15
- package/dist/lib/doctor-diff.d.ts +0 -79
- package/dist/lib/doctor-diff.js +2 -181
- package/dist/lib/drift-sync.d.ts +0 -29
- package/dist/lib/drift-sync.js +0 -40
- package/dist/lib/drift.d.ts +0 -43
- package/dist/lib/drift.js +0 -31
- package/dist/lib/event-families.d.ts +0 -17
- package/dist/lib/event-families.js +0 -33
- package/dist/lib/event-provenance.d.ts +0 -4
- package/dist/lib/event-provenance.js +0 -5
- package/dist/lib/event-stream.d.ts +0 -29
- package/dist/lib/event-stream.js +0 -36
- package/dist/lib/events-ingest.d.ts +0 -27
- package/dist/lib/events-ingest.js +0 -54
- package/dist/lib/exec-account-home.d.ts +0 -24
- package/dist/lib/exec-account-home.js +0 -41
- package/dist/lib/exec-bounded.d.ts +1 -37
- package/dist/lib/exec-bounded.js +10 -46
- package/dist/lib/exec.d.ts +3 -583
- package/dist/lib/exec.js +18 -1025
- package/dist/lib/factory/snapshot.js +1 -15
- package/dist/lib/feed/activity-stream.d.ts +0 -27
- package/dist/lib/feed/activity-stream.js +4 -80
- package/dist/lib/feed/activity.d.ts +1 -243
- package/dist/lib/feed/activity.js +8 -273
- package/dist/lib/feed/answer.d.ts +0 -103
- package/dist/lib/feed/answer.js +0 -267
- package/dist/lib/feed/attention.d.ts +0 -56
- package/dist/lib/feed/attention.js +0 -161
- package/dist/lib/feed/envelope.d.ts +2 -17
- package/dist/lib/feed/envelope.js +0 -14
- package/dist/lib/feed/events.d.ts +0 -118
- package/dist/lib/feed/events.js +13 -213
- package/dist/lib/feed/feed.d.ts +1 -250
- package/dist/lib/feed/feed.js +24 -334
- package/dist/lib/feed/hub-server.d.ts +0 -100
- package/dist/lib/feed/hub-server.js +1 -191
- package/dist/lib/feed/hub.d.ts +0 -53
- package/dist/lib/feed/hub.js +0 -89
- package/dist/lib/feed/pr-status.d.ts +1 -19
- package/dist/lib/feed/pr-status.js +0 -18
- package/dist/lib/feed/tool-activity.d.ts +0 -59
- package/dist/lib/feed/tool-activity.js +1 -119
- package/dist/lib/feed/tools.d.ts +0 -100
- package/dist/lib/feed/tools.js +0 -89
- package/dist/lib/feed/watch.d.ts +0 -33
- package/dist/lib/feed/watch.js +2 -94
- package/dist/lib/feed-broadcast.d.ts +0 -148
- package/dist/lib/feed-broadcast.js +1 -283
- package/dist/lib/feed-outcome.d.ts +0 -50
- package/dist/lib/feed-outcome.js +1 -67
- package/dist/lib/feed-policy.d.ts +0 -6
- package/dist/lib/feed-policy.js +1 -27
- package/dist/lib/feed-post.d.ts +0 -61
- package/dist/lib/feed-post.js +4 -61
- package/dist/lib/feed-ranking.d.ts +1 -1
- package/dist/lib/fleet/apply.d.ts +0 -64
- package/dist/lib/fleet/apply.js +0 -125
- package/dist/lib/fleet/auth-sync.d.ts +0 -48
- package/dist/lib/fleet/auth-sync.js +4 -49
- package/dist/lib/fleet/capture.d.ts +0 -26
- package/dist/lib/fleet/capture.js +1 -36
- package/dist/lib/fleet/manifest.d.ts +0 -38
- package/dist/lib/fleet/manifest.js +0 -40
- package/dist/lib/fleet/types.d.ts +1 -138
- package/dist/lib/fleet/types.js +0 -12
- package/dist/lib/fleet-cache.d.ts +0 -12
- package/dist/lib/fleet-cache.js +0 -24
- package/dist/lib/fleet-shared-state.d.ts +6 -59
- package/dist/lib/fleet-shared-state.js +5 -51
- package/dist/lib/fleet-status.d.ts +0 -27
- package/dist/lib/fleet-status.js +0 -48
- package/dist/lib/format.d.ts +0 -74
- package/dist/lib/format.js +3 -77
- package/dist/lib/friction-heuristics.d.ts +0 -20
- package/dist/lib/friction-heuristics.js +0 -8
- package/dist/lib/fs-atomic.d.ts +0 -51
- package/dist/lib/fs-atomic.js +8 -66
- package/dist/lib/fs-walk.d.ts +0 -13
- package/dist/lib/fs-walk.js +0 -22
- package/dist/lib/fuzzy.d.ts +0 -29
- package/dist/lib/fuzzy.js +0 -31
- package/dist/lib/gemini-settings.js +0 -12
- package/dist/lib/git.d.ts +0 -366
- package/dist/lib/git.js +7 -574
- package/dist/lib/github/ci-failure.d.ts +30 -0
- package/dist/lib/github/ci-failure.js +95 -0
- package/dist/lib/github/gh-overload.d.ts +0 -38
- package/dist/lib/github/gh-overload.js +3 -55
- package/dist/lib/github/pr-mergeable.d.ts +3 -34
- package/dist/lib/github/pr-mergeable.js +2 -42
- package/dist/lib/github/pr-verdict.d.ts +0 -44
- package/dist/lib/github/pr-verdict.js +0 -36
- package/dist/lib/github/project-prs.d.ts +135 -105
- package/dist/lib/github/project-prs.js +530 -170
- package/dist/lib/github/release-drift.d.ts +45 -0
- package/dist/lib/github/release-drift.js +91 -0
- package/dist/lib/github/rest.d.ts +0 -50
- package/dist/lib/github/rest.js +0 -49
- package/dist/lib/github/viewer.d.ts +27 -0
- package/dist/lib/github/viewer.js +101 -0
- package/dist/lib/goose-commands.d.ts +0 -29
- package/dist/lib/goose-commands.js +3 -48
- package/dist/lib/harness/adapter.d.ts +0 -151
- package/dist/lib/harness/adapter.js +0 -41
- package/dist/lib/harness/adapters/claude.d.ts +0 -8
- package/dist/lib/harness/adapters/claude.js +0 -89
- package/dist/lib/harness/adapters/codex.js +0 -18
- package/dist/lib/harness/adapters/copilot.js +0 -3
- package/dist/lib/harness/adapters/cursor.js +0 -16
- package/dist/lib/harness/adapters/droid.js +0 -3
- package/dist/lib/harness/adapters/kimi.js +0 -19
- package/dist/lib/harness/adapters/muse.js +0 -9
- package/dist/lib/harness/adapters/opencode.js +0 -2
- package/dist/lib/harness/exec-config-version.d.ts +0 -2
- package/dist/lib/harness/exec-config-version.js +0 -13
- package/dist/lib/harness/index.js +0 -10
- package/dist/lib/harness-auth-capabilities.d.ts +0 -26
- package/dist/lib/harness-auth-capabilities.js +0 -18
- package/dist/lib/harness-connection-test.d.ts +0 -27
- package/dist/lib/harness-connection-test.js +2 -20
- package/dist/lib/heal.d.ts +0 -45
- package/dist/lib/heal.js +2 -82
- package/dist/lib/help.d.ts +0 -32
- package/dist/lib/help.js +0 -41
- package/dist/lib/helper-download.d.ts +0 -85
- package/dist/lib/helper-download.js +0 -95
- package/dist/lib/helper-versions.d.ts +0 -51
- package/dist/lib/helper-versions.js +1 -45
- package/dist/lib/hooks/cache.d.ts +0 -40
- package/dist/lib/hooks/cache.js +8 -122
- package/dist/lib/hooks/install.d.ts +0 -253
- package/dist/lib/hooks/install.js +49 -822
- package/dist/lib/hooks/match.d.ts +0 -24
- package/dist/lib/hooks/match.js +0 -31
- package/dist/lib/hooks/profile.d.ts +0 -21
- package/dist/lib/hooks/profile.js +0 -28
- package/dist/lib/hosts/credential-transport.d.ts +0 -6
- package/dist/lib/hosts/credential-transport.js +0 -17
- package/dist/lib/hosts/credentials.d.ts +0 -35
- package/dist/lib/hosts/credentials.js +0 -38
- package/dist/lib/hosts/dispatch.d.ts +0 -140
- package/dist/lib/hosts/dispatch.js +0 -176
- package/dist/lib/hosts/logs.d.ts +0 -25
- package/dist/lib/hosts/logs.js +1 -51
- package/dist/lib/hosts/option.d.ts +0 -12
- package/dist/lib/hosts/option.js +0 -12
- package/dist/lib/hosts/passthrough.d.ts +0 -129
- package/dist/lib/hosts/passthrough.js +12 -249
- package/dist/lib/hosts/progress.d.ts +0 -90
- package/dist/lib/hosts/progress.js +5 -115
- package/dist/lib/hosts/providers/devices.d.ts +0 -19
- package/dist/lib/hosts/providers/devices.js +1 -34
- package/dist/lib/hosts/providers/local.d.ts +0 -14
- package/dist/lib/hosts/providers/local.js +0 -22
- package/dist/lib/hosts/ready.d.ts +0 -99
- package/dist/lib/hosts/ready.js +0 -101
- package/dist/lib/hosts/reconcile.d.ts +0 -38
- package/dist/lib/hosts/reconcile.js +1 -50
- package/dist/lib/hosts/reconnect.d.ts +0 -75
- package/dist/lib/hosts/reconnect.js +0 -98
- package/dist/lib/hosts/registry.d.ts +0 -74
- package/dist/lib/hosts/registry.js +0 -110
- package/dist/lib/hosts/remote-cmd.d.ts +1 -228
- package/dist/lib/hosts/remote-cmd.js +19 -294
- package/dist/lib/hosts/remote-cmd.test-fixture.d.ts +0 -1
- package/dist/lib/hosts/remote-cmd.test-fixture.js +0 -12
- package/dist/lib/hosts/remote-os.d.ts +0 -19
- package/dist/lib/hosts/remote-os.js +0 -22
- package/dist/lib/hosts/remote-session-id.d.ts +0 -22
- package/dist/lib/hosts/remote-session-id.js +0 -24
- package/dist/lib/hosts/routing-flag.d.ts +0 -21
- package/dist/lib/hosts/routing-flag.js +0 -21
- package/dist/lib/hosts/run-target.d.ts +0 -53
- package/dist/lib/hosts/run-target.js +0 -56
- package/dist/lib/hosts/session-index.d.ts +1 -53
- package/dist/lib/hosts/session-index.js +2 -59
- package/dist/lib/hosts/session-marker.d.ts +0 -31
- package/dist/lib/hosts/session-marker.js +0 -32
- package/dist/lib/hosts/ssh-config.d.ts +0 -25
- package/dist/lib/hosts/ssh-config.js +1 -32
- package/dist/lib/hosts/tasks.d.ts +0 -54
- package/dist/lib/hosts/tasks.js +0 -35
- package/dist/lib/hosts/types.d.ts +0 -39
- package/dist/lib/hosts/types.js +0 -22
- package/dist/lib/humans.d.ts +0 -21
- package/dist/lib/humans.js +0 -30
- package/dist/lib/identity/client.d.ts +1 -35
- package/dist/lib/identity/client.js +3 -29
- package/dist/lib/identity/index.d.ts +3 -27
- package/dist/lib/identity/index.js +8 -24
- package/dist/lib/import.d.ts +0 -104
- package/dist/lib/import.js +1 -137
- package/dist/lib/installations/active-check.d.ts +0 -53
- package/dist/lib/installations/active-check.js +0 -49
- package/dist/lib/installations/index.d.ts +0 -9
- package/dist/lib/installations/index.js +0 -9
- package/dist/lib/installations/installation-lock.js +0 -8
- package/dist/lib/installations/launch-gate.d.ts +0 -56
- package/dist/lib/installations/launch-gate.js +0 -83
- package/dist/lib/installations/migrate.d.ts +0 -100
- package/dist/lib/installations/migrate.js +105 -572
- package/dist/lib/installations/native-command.d.ts +0 -1
- package/dist/lib/installations/native-command.js +0 -6
- package/dist/lib/installations/resolve.d.ts +0 -24
- package/dist/lib/installations/resolve.js +0 -24
- package/dist/lib/installations/shims.d.ts +0 -395
- package/dist/lib/installations/shims.js +30 -957
- package/dist/lib/installations/store.d.ts +0 -199
- package/dist/lib/installations/store.js +1 -297
- package/dist/lib/installations/strategies.d.ts +0 -44
- package/dist/lib/installations/strategies.js +0 -87
- package/dist/lib/installations/types.d.ts +1 -67
- package/dist/lib/installations/types.js +0 -6
- package/dist/lib/installations/update-cancellation.d.ts +0 -74
- package/dist/lib/installations/update-cancellation.js +0 -74
- package/dist/lib/installations/update-policy.d.ts +0 -57
- package/dist/lib/installations/update-policy.js +0 -62
- package/dist/lib/installations/update-runtime.d.ts +0 -88
- package/dist/lib/installations/update-runtime.js +1 -127
- package/dist/lib/installations/update.d.ts +0 -53
- package/dist/lib/installations/update.js +0 -95
- package/dist/lib/installations/versions.d.ts +0 -310
- package/dist/lib/installations/versions.js +14 -837
- package/dist/lib/isolation-boundary-report.d.ts +0 -7
- package/dist/lib/isolation-boundary-report.js +0 -7
- package/dist/lib/launch-identity.d.ts +0 -8
- package/dist/lib/launch-identity.js +0 -8
- package/dist/lib/linear-autoclose.d.ts +0 -25
- package/dist/lib/linear-autoclose.js +0 -19
- package/dist/lib/linear-cache.d.ts +0 -57
- package/dist/lib/linear-cache.js +1 -81
- package/dist/lib/linear-project-counts.d.ts +0 -83
- package/dist/lib/linear-project-counts.js +2 -64
- package/dist/lib/linear-projects.d.ts +0 -62
- package/dist/lib/linear-projects.js +0 -85
- package/dist/lib/linear-rate-limit.d.ts +0 -21
- package/dist/lib/linear-rate-limit.js +1 -93
- package/dist/lib/linux-userns.d.ts +1 -42
- package/dist/lib/linux-userns.js +0 -47
- package/dist/lib/lock-compromise.d.ts +0 -7
- package/dist/lib/lock-compromise.js +0 -7
- package/dist/lib/log-follow.d.ts +0 -2
- package/dist/lib/log-follow.js +5 -15
- package/dist/lib/loop.d.ts +0 -106
- package/dist/lib/loop.js +0 -135
- package/dist/lib/machine-id.d.ts +0 -19
- package/dist/lib/machine-id.js +0 -19
- package/dist/lib/mailbox-gc.d.ts +0 -7
- package/dist/lib/mailbox-gc.js +0 -25
- package/dist/lib/mailbox-target.d.ts +0 -31
- package/dist/lib/mailbox-target.js +0 -27
- package/dist/lib/mailbox.d.ts +0 -77
- package/dist/lib/mailbox.js +5 -105
- package/dist/lib/manifest.d.ts +0 -4
- package/dist/lib/manifest.js +0 -36
- package/dist/lib/markdown.d.ts +0 -3
- package/dist/lib/markdown.js +0 -9
- package/dist/lib/mcp-registry.d.ts +1 -50
- package/dist/lib/mcp-registry.js +0 -64
- package/dist/lib/mcp.d.ts +0 -115
- package/dist/lib/mcp.js +3 -199
- package/dist/lib/memory-cache.d.ts +0 -11
- package/dist/lib/memory-cache.js +0 -9
- package/dist/lib/memory.d.ts +0 -52
- package/dist/lib/memory.js +12 -74
- package/dist/lib/menubar/download-menubar.d.ts +0 -35
- package/dist/lib/menubar/download-menubar.js +0 -38
- package/dist/lib/menubar/install-menubar.d.ts +0 -405
- package/dist/lib/menubar/install-menubar.js +25 -667
- package/dist/lib/menubar/migrate-prefs.d.ts +0 -47
- package/dist/lib/menubar/migrate-prefs.js +1 -70
- package/dist/lib/menubar/notify-desktop.d.ts +0 -82
- package/dist/lib/menubar/notify-desktop.js +0 -68
- package/dist/lib/menubar/resolve-version.d.ts +0 -41
- package/dist/lib/menubar/resolve-version.js +2 -44
- package/dist/lib/menubar/snapshot.d.ts +13 -66
- package/dist/lib/menubar/snapshot.js +45 -39
- package/dist/lib/merged-resources.d.ts +0 -10
- package/dist/lib/merged-resources.js +0 -10
- package/dist/lib/migrate-fold.d.ts +0 -31
- package/dist/lib/migrate-fold.js +6 -38
- package/dist/lib/model-tier-overrides.d.ts +0 -30
- package/dist/lib/model-tier-overrides.js +0 -14
- package/dist/lib/model-tiers.d.ts +0 -43
- package/dist/lib/model-tiers.js +5 -78
- package/dist/lib/models.d.ts +0 -145
- package/dist/lib/models.js +3 -333
- package/dist/lib/monitors/config.d.ts +0 -187
- package/dist/lib/monitors/config.js +4 -101
- package/dist/lib/monitors/dispatch.d.ts +0 -22
- package/dist/lib/monitors/dispatch.js +0 -35
- package/dist/lib/monitors/engine.d.ts +1 -53
- package/dist/lib/monitors/engine.js +17 -106
- package/dist/lib/monitors/fingerprint.d.ts +0 -43
- package/dist/lib/monitors/fingerprint.js +0 -57
- package/dist/lib/monitors/pid-watch.d.ts +0 -31
- package/dist/lib/monitors/pid-watch.js +0 -31
- package/dist/lib/monitors/remote.d.ts +0 -52
- package/dist/lib/monitors/remote.js +0 -42
- package/dist/lib/monitors/sources/command.d.ts +2 -9
- package/dist/lib/monitors/sources/command.js +13 -34
- package/dist/lib/monitors/sources/device.d.ts +0 -10
- package/dist/lib/monitors/sources/device.js +0 -14
- package/dist/lib/monitors/sources/failure.d.ts +0 -27
- package/dist/lib/monitors/sources/failure.js +0 -27
- package/dist/lib/monitors/sources/file.d.ts +0 -10
- package/dist/lib/monitors/sources/file.js +0 -11
- package/dist/lib/monitors/sources/http.d.ts +0 -7
- package/dist/lib/monitors/sources/http.js +0 -9
- package/dist/lib/monitors/sources/index.d.ts +0 -9
- package/dist/lib/monitors/sources/index.js +0 -9
- package/dist/lib/monitors/sources/poll.d.ts +0 -8
- package/dist/lib/monitors/sources/poll.js +0 -8
- package/dist/lib/monitors/sources/types.d.ts +0 -18
- package/dist/lib/monitors/sources/types.js +0 -8
- package/dist/lib/monitors/sources/webhook.d.ts +0 -7
- package/dist/lib/monitors/sources/webhook.js +0 -7
- package/dist/lib/monitors/sources/ws.d.ts +0 -10
- package/dist/lib/monitors/sources/ws.js +3 -13
- package/dist/lib/monitors/state.d.ts +0 -132
- package/dist/lib/monitors/state.js +2 -86
- package/dist/lib/native-accounts.d.ts +0 -32
- package/dist/lib/native-accounts.js +0 -17
- package/dist/lib/net-close.d.ts +0 -9
- package/dist/lib/net-close.js +0 -5
- package/dist/lib/notify.d.ts +0 -47
- package/dist/lib/notify.js +0 -30
- package/dist/lib/onepassword.d.ts +0 -14
- package/dist/lib/onepassword.js +0 -12
- package/dist/lib/open-url.d.ts +0 -38
- package/dist/lib/open-url.js +1 -69
- package/dist/lib/openclaw-keychain.js +2 -7
- package/dist/lib/operator.d.ts +0 -9
- package/dist/lib/operator.js +0 -34
- package/dist/lib/origin-machine.d.ts +0 -16
- package/dist/lib/origin-machine.js +0 -16
- package/dist/lib/output/git-output.d.ts +0 -31
- package/dist/lib/output/git-output.js +4 -43
- package/dist/lib/overdue.d.ts +0 -35
- package/dist/lib/overdue.js +0 -60
- package/dist/lib/owner-message.d.ts +0 -20
- package/dist/lib/owner-message.js +1 -40
- package/dist/lib/packages/output-home.d.ts +0 -28
- package/dist/lib/packages/output-home.js +0 -114
- package/dist/lib/paths.d.ts +0 -26
- package/dist/lib/paths.js +1 -27
- package/dist/lib/percentile.d.ts +0 -11
- package/dist/lib/percentile.js +0 -11
- package/dist/lib/perf/db.d.ts +0 -16
- package/dist/lib/perf/db.js +3 -32
- package/dist/lib/perf/spool.d.ts +0 -12
- package/dist/lib/perf/spool.js +0 -13
- package/dist/lib/perf/types.d.ts +0 -26
- package/dist/lib/perf/types.js +0 -1
- package/dist/lib/permissions-registry.d.ts +0 -48
- package/dist/lib/permissions-registry.js +0 -108
- package/dist/lib/permissions.d.ts +0 -215
- package/dist/lib/permissions.js +4 -407
- package/dist/lib/picker.d.ts +0 -124
- package/dist/lib/picker.js +0 -140
- package/dist/lib/placement.d.ts +0 -57
- package/dist/lib/placement.js +0 -47
- package/dist/lib/platform/exec.d.ts +0 -73
- package/dist/lib/platform/exec.js +0 -80
- package/dist/lib/platform/index.d.ts +0 -14
- package/dist/lib/platform/index.js +0 -14
- package/dist/lib/platform/ipc.d.ts +0 -10
- package/dist/lib/platform/ipc.js +0 -13
- package/dist/lib/platform/links.d.ts +0 -14
- package/dist/lib/platform/links.js +0 -25
- package/dist/lib/platform/paths.d.ts +0 -48
- package/dist/lib/platform/paths.js +0 -52
- package/dist/lib/platform/posixpath.d.ts +0 -18
- package/dist/lib/platform/posixpath.js +0 -62
- package/dist/lib/platform/process.d.ts +0 -67
- package/dist/lib/platform/process.js +5 -99
- package/dist/lib/platform/winpath.d.ts +0 -50
- package/dist/lib/platform/winpath.js +0 -81
- package/dist/lib/plugins/plugin-marketplace.d.ts +0 -165
- package/dist/lib/plugins/plugin-marketplace.js +10 -238
- package/dist/lib/plugins/plugins.d.ts +0 -238
- package/dist/lib/plugins/plugins.js +20 -454
- package/dist/lib/plugins/skills.d.ts +0 -86
- package/dist/lib/plugins/skills.js +1 -139
- package/dist/lib/pr-land-detach.d.ts +0 -17
- package/dist/lib/pr-land-detach.js +0 -30
- package/dist/lib/pricing/cost.d.ts +0 -29
- package/dist/lib/pricing/cost.js +0 -38
- package/dist/lib/pricing/index.d.ts +0 -6
- package/dist/lib/pricing/index.js +0 -6
- package/dist/lib/pricing/table.d.ts +0 -8
- package/dist/lib/pricing/table.js +3 -56
- package/dist/lib/probe.d.ts +0 -5
- package/dist/lib/probe.js +0 -40
- package/dist/lib/profiles-presets.d.ts +0 -20
- package/dist/lib/profiles-presets.js +1 -36
- package/dist/lib/profiles.d.ts +0 -185
- package/dist/lib/profiles.js +1 -158
- package/dist/lib/project-doctor.d.ts +0 -29
- package/dist/lib/project-doctor.js +0 -26
- package/dist/lib/project-focus.d.ts +0 -41
- package/dist/lib/project-focus.js +0 -49
- package/dist/lib/project-import.d.ts +0 -41
- package/dist/lib/project-import.js +0 -36
- package/dist/lib/project-key.d.ts +0 -65
- package/dist/lib/project-key.js +0 -70
- package/dist/lib/project-launch.d.ts +0 -49
- package/dist/lib/project-launch.js +2 -91
- package/dist/lib/project-probe.d.ts +0 -86
- package/dist/lib/project-probe.js +1 -88
- package/dist/lib/project-pull.d.ts +0 -96
- package/dist/lib/project-pull.js +0 -122
- package/dist/lib/project-resources.d.ts +0 -44
- package/dist/lib/project-resources.js +7 -171
- package/dist/lib/project-root.d.ts +0 -95
- package/dist/lib/project-root.js +0 -101
- package/dist/lib/project-schedule.d.ts +0 -43
- package/dist/lib/project-schedule.js +0 -52
- package/dist/lib/project-status.d.ts +0 -108
- package/dist/lib/project-status.js +0 -117
- package/dist/lib/projects.d.ts +0 -197
- package/dist/lib/projects.js +1 -213
- package/dist/lib/pwsh.d.ts +0 -41
- package/dist/lib/pwsh.js +0 -51
- package/dist/lib/quick-todo.d.ts +84 -0
- package/dist/lib/quick-todo.js +243 -0
- package/dist/lib/reconcile-and-repair.d.ts +0 -78
- package/dist/lib/reconcile-and-repair.js +3 -66
- package/dist/lib/redact.d.ts +0 -29
- package/dist/lib/redact.js +0 -54
- package/dist/lib/refresh-coordinator.d.ts +0 -15
- package/dist/lib/refresh-coordinator.js +0 -10
- package/dist/lib/refresh.d.ts +0 -39
- package/dist/lib/refresh.js +0 -45
- package/dist/lib/registry.d.ts +0 -65
- package/dist/lib/registry.js +0 -127
- package/dist/lib/reminders.d.ts +0 -21
- package/dist/lib/reminders.js +0 -30
- package/dist/lib/remote-agents-json.d.ts +0 -44
- package/dist/lib/remote-agents-json.js +1 -44
- package/dist/lib/reserved-stores.d.ts +0 -28
- package/dist/lib/reserved-stores.js +2 -28
- package/dist/lib/resource-aliases.d.ts +0 -12
- package/dist/lib/resource-aliases.js +0 -12
- package/dist/lib/resource-content-diff.d.ts +0 -28
- package/dist/lib/resource-content-diff.js +7 -34
- package/dist/lib/resource-inventory.d.ts +0 -51
- package/dist/lib/resource-inventory.js +0 -45
- package/dist/lib/resource-patterns.d.ts +0 -32
- package/dist/lib/resource-patterns.js +0 -34
- package/dist/lib/resource-profiles.d.ts +0 -7
- package/dist/lib/resource-profiles.js +0 -11
- package/dist/lib/resources/types.d.ts +0 -50
- package/dist/lib/resources/types.js +0 -7
- package/dist/lib/resources/workflows.d.ts +0 -7
- package/dist/lib/resources/workflows.js +0 -13
- package/dist/lib/resources.d.ts +0 -65
- package/dist/lib/resources.js +0 -78
- package/dist/lib/routers.d.ts +0 -67
- package/dist/lib/routers.js +0 -60
- package/dist/lib/routine-activation.d.ts +0 -23
- package/dist/lib/routine-activation.js +0 -24
- package/dist/lib/routine-context.d.ts +1 -91
- package/dist/lib/routine-context.js +0 -107
- package/dist/lib/routine-notify-owner.d.ts +0 -79
- package/dist/lib/routine-notify-owner.js +1 -103
- package/dist/lib/routine-notify.d.ts +0 -70
- package/dist/lib/routine-notify.js +1 -75
- package/dist/lib/routine-process-cleanup.d.ts +0 -1
- package/dist/lib/routine-process-cleanup.js +1 -4
- package/dist/lib/routine-readiness.d.ts +0 -63
- package/dist/lib/routine-readiness.js +4 -86
- package/dist/lib/routines-format.d.ts +0 -40
- package/dist/lib/routines-format.js +0 -67
- package/dist/lib/routines-placement.d.ts +0 -33
- package/dist/lib/routines-placement.js +0 -40
- package/dist/lib/routines-project.d.ts +0 -57
- package/dist/lib/routines-project.js +6 -80
- package/dist/lib/rules/compile.d.ts +0 -66
- package/dist/lib/rules/compile.js +6 -118
- package/dist/lib/rules/compose.d.ts +0 -56
- package/dist/lib/rules/compose.js +2 -83
- package/dist/lib/rules/rules.d.ts +0 -23
- package/dist/lib/rules/rules.js +0 -35
- package/dist/lib/rules/run-sync.d.ts +0 -16
- package/dist/lib/rules/run-sync.js +1 -44
- package/dist/lib/run-config.d.ts +0 -7
- package/dist/lib/run-config.js +0 -8
- package/dist/lib/run-defaults.d.ts +0 -14
- package/dist/lib/run-defaults.js +0 -14
- package/dist/lib/run-notify.d.ts +0 -18
- package/dist/lib/run-notify.js +0 -36
- package/dist/lib/run-trace-sync.d.ts +0 -21
- package/dist/lib/run-trace-sync.js +2 -66
- package/dist/lib/rush-session.d.ts +0 -26
- package/dist/lib/rush-session.js +0 -28
- package/dist/lib/sandbox.d.ts +0 -45
- package/dist/lib/sandbox.js +5 -93
- package/dist/lib/scheduler.d.ts +0 -28
- package/dist/lib/scheduler.js +0 -45
- package/dist/lib/scheduling/routines.d.ts +0 -652
- package/dist/lib/scheduling/routines.js +8 -475
- package/dist/lib/secrets-cli.d.ts +3 -8
- package/dist/lib/secrets-cli.js +1 -19
- package/dist/lib/secrets-client.d.ts +0 -117
- package/dist/lib/secrets-client.js +4 -275
- package/dist/lib/secrets-policy.d.ts +0 -142
- package/dist/lib/secrets-policy.js +4 -237
- package/dist/lib/secrets-types.d.ts +0 -87
- package/dist/lib/secrets-types.js +0 -13
- package/dist/lib/self-heal/checks/hook-manifest.js +0 -25
- package/dist/lib/self-heal/checks/hook-runtime.js +0 -5
- package/dist/lib/self-heal/checks/install-staging.d.ts +0 -1
- package/dist/lib/self-heal/checks/install-staging.js +1 -28
- package/dist/lib/self-heal/checks/menubar-helper.js +0 -5
- package/dist/lib/self-heal/checks/path.js +0 -9
- package/dist/lib/self-heal/checks/resources.js +0 -5
- package/dist/lib/self-heal/checks/shadowing.js +2 -16
- package/dist/lib/self-heal/checks/shims.js +0 -14
- package/dist/lib/self-heal/child.d.ts +12 -0
- package/dist/lib/self-heal/child.js +23 -0
- package/dist/lib/self-heal/registry.d.ts +0 -9
- package/dist/lib/self-heal/registry.js +0 -16
- package/dist/lib/self-heal/types.d.ts +0 -12
- package/dist/lib/self-heal/types.js +0 -15
- package/dist/lib/self-update.d.ts +0 -312
- package/dist/lib/self-update.js +9 -360
- package/dist/lib/service-manifest.d.ts +0 -39
- package/dist/lib/service-manifest.js +0 -72
- package/dist/lib/session/active.d.ts +13 -869
- package/dist/lib/session/active.js +20 -976
- package/dist/lib/session/actor-sidecar.d.ts +1 -32
- package/dist/lib/session/actor-sidecar.js +1 -41
- package/dist/lib/session/bookmarks.d.ts +0 -33
- package/dist/lib/session/bookmarks.js +0 -37
- package/dist/lib/session/bundle.d.ts +0 -86
- package/dist/lib/session/bundle.js +0 -54
- package/dist/lib/session/claude-accounts.d.ts +0 -40
- package/dist/lib/session/claude-accounts.js +0 -49
- package/dist/lib/session/cloud.d.ts +1 -23
- package/dist/lib/session/cloud.js +0 -26
- package/dist/lib/session/db.d.ts +5 -658
- package/dist/lib/session/db.js +22 -1443
- package/dist/lib/session/detached.d.ts +0 -21
- package/dist/lib/session/detached.js +0 -29
- package/dist/lib/session/discover.d.ts +3 -420
- package/dist/lib/session/discover.js +30 -1123
- package/dist/lib/session/fork.d.ts +1 -41
- package/dist/lib/session/fork.js +0 -19
- package/dist/lib/session/ghostty-tabs.d.ts +0 -24
- package/dist/lib/session/ghostty-tabs.js +0 -37
- package/dist/lib/session/glance-files.d.ts +19 -0
- package/dist/lib/session/glance-files.js +258 -0
- package/dist/lib/session/hook-sessions.d.ts +0 -33
- package/dist/lib/session/hook-sessions.js +4 -99
- package/dist/lib/session/host-link.d.ts +1 -94
- package/dist/lib/session/host-link.js +1 -81
- package/dist/lib/session/inject-target.d.ts +8 -0
- package/dist/lib/session/inject-target.js +32 -0
- package/dist/lib/session/inject.d.ts +0 -15
- package/dist/lib/session/inject.js +0 -15
- package/dist/lib/session/live-metadata.d.ts +1 -34
- package/dist/lib/session/live-metadata.js +1 -73
- package/dist/lib/session/local-tmux-attach.d.ts +0 -37
- package/dist/lib/session/local-tmux-attach.js +1 -76
- package/dist/lib/session/migrate-targets.d.ts +0 -46
- package/dist/lib/session/migrate-targets.js +0 -24
- package/dist/lib/session/migrations.d.ts +0 -12
- package/dist/lib/session/migrations.js +1 -20
- package/dist/lib/session/mirror.d.ts +0 -32
- package/dist/lib/session/mirror.js +0 -77
- package/dist/lib/session/origin-machine.js +0 -3
- package/dist/lib/session/pid-registry.d.ts +0 -80
- package/dist/lib/session/pid-registry.js +2 -81
- package/dist/lib/session/presence.d.ts +0 -39
- package/dist/lib/session/presence.js +2 -52
- package/dist/lib/session/process-view.d.ts +0 -11
- package/dist/lib/session/process-view.js +0 -25
- package/dist/lib/session/projection.d.ts +0 -3
- package/dist/lib/session/projection.js +0 -10
- package/dist/lib/session/provenance.d.ts +1 -37
- package/dist/lib/session/provenance.js +0 -69
- package/dist/lib/session/recovery.d.ts +1 -40
- package/dist/lib/session/recovery.js +2 -80
- package/dist/lib/session/relative-time.js +0 -3
- package/dist/lib/session/remote/peer-stream.d.ts +0 -42
- package/dist/lib/session/remote/peer-stream.js +0 -64
- package/dist/lib/session/remote/remote-bundle.d.ts +0 -6
- package/dist/lib/session/remote/remote-bundle.js +0 -21
- package/dist/lib/session/remote/remote-list.d.ts +1 -110
- package/dist/lib/session/remote/remote-list.js +5 -139
- package/dist/lib/session/remote/remote.d.ts +0 -98
- package/dist/lib/session/remote/remote.js +3 -119
- package/dist/lib/session/remote/watch.d.ts +1 -34
- package/dist/lib/session/remote/watch.js +12 -72
- package/dist/lib/session/remote-active.d.ts +0 -35
- package/dist/lib/session/remote-active.js +0 -48
- package/dist/lib/session/remote-bundle.js +0 -2
- package/dist/lib/session/remote-list.js +0 -2
- package/dist/lib/session/remote-preview-cache.d.ts +0 -7
- package/dist/lib/session/remote-preview-cache.js +1 -76
- package/dist/lib/session/remote.js +0 -2
- package/dist/lib/session/resume-command.d.ts +0 -6
- package/dist/lib/session/resume-command.js +0 -6
- package/dist/lib/session/resume-owner.d.ts +1 -52
- package/dist/lib/session/resume-owner.js +0 -56
- package/dist/lib/session/run-names.d.ts +0 -24
- package/dist/lib/session/run-names.js +0 -26
- package/dist/lib/session/session-cache.d.ts +2 -146
- package/dist/lib/session/session-cache.js +26 -203
- package/dist/lib/session/short-id.js +0 -3
- package/dist/lib/session/sync/agents.d.ts +0 -68
- package/dist/lib/session/sync/agents.js +0 -0
- package/dist/lib/session/sync/backend.d.ts +0 -39
- package/dist/lib/session/sync/backend.js +0 -45
- package/dist/lib/session/sync/config.d.ts +0 -27
- package/dist/lib/session/sync/config.js +0 -56
- package/dist/lib/session/sync/managed-config.d.ts +0 -17
- package/dist/lib/session/sync/managed-config.js +0 -17
- package/dist/lib/session/sync/managed-key.d.ts +0 -38
- package/dist/lib/session/sync/managed-key.js +1 -42
- package/dist/lib/session/sync/net-client.d.ts +0 -36
- package/dist/lib/session/sync/net-client.js +0 -30
- package/dist/lib/session/sync/provision.d.ts +0 -2
- package/dist/lib/session/sync/provision.js +0 -13
- package/dist/lib/session/sync/r2.d.ts +0 -20
- package/dist/lib/session/sync/r2.js +0 -20
- package/dist/lib/session/sync/transcript-crypto.d.ts +0 -37
- package/dist/lib/session/sync/transcript-crypto.js +5 -37
- package/dist/lib/session/sync/worker-template.d.ts +0 -5
- package/dist/lib/session/sync/worker-template.js +0 -40
- package/dist/lib/session/testdata/pid-registry-namespace.js +0 -2
- package/dist/lib/session/testdata/process-view-private.js +0 -1
- package/dist/lib/session/throughput.d.ts +0 -24
- package/dist/lib/session/throughput.js +1 -25
- package/dist/lib/session/timeline-pass.d.ts +1 -63
- package/dist/lib/session/timeline-pass.js +161 -148
- package/dist/lib/session/title.d.ts +0 -182
- package/dist/lib/session/title.js +0 -139
- package/dist/lib/session/tool-index.d.ts +2 -21
- package/dist/lib/session/tool-index.js +3 -75
- package/dist/lib/session/tool-store.d.ts +2 -48
- package/dist/lib/session/tool-store.js +1 -33
- package/dist/lib/session/viewing-in.d.ts +0 -67
- package/dist/lib/session/viewing-in.js +1 -71
- package/dist/lib/session/watch.js +0 -2
- package/dist/lib/session/width.js +0 -3
- package/dist/lib/sessions-client.d.ts +0 -46
- package/dist/lib/sessions-client.js +36 -113
- package/dist/lib/settings-manifest.d.ts +1 -17
- package/dist/lib/settings-manifest.js +4 -57
- package/dist/lib/setup-tool-install.d.ts +0 -1
- package/dist/lib/setup-tool-install.js +2 -7
- package/dist/lib/setup-tool-status.d.ts +0 -3
- package/dist/lib/setup-tool-status.js +4 -14
- package/dist/lib/sha256-asset.d.ts +0 -20
- package/dist/lib/sha256-asset.js +0 -20
- package/dist/lib/share-runtime.d.ts +0 -10
- package/dist/lib/share-runtime.js +1 -27
- package/dist/lib/shim-heal.d.ts +0 -15
- package/dist/lib/shim-heal.js +3 -29
- package/dist/lib/signin-badge.d.ts +0 -72
- package/dist/lib/signin-badge.js +0 -86
- package/dist/lib/sink-format.d.ts +0 -32
- package/dist/lib/sink-format.js +0 -14
- package/dist/lib/smart-launch.d.ts +0 -75
- package/dist/lib/smart-launch.js +1 -83
- package/dist/lib/snapshot.d.ts +0 -46
- package/dist/lib/snapshot.js +5 -31
- package/dist/lib/spinner.d.ts +0 -37
- package/dist/lib/spinner.js +0 -37
- package/dist/lib/sqlite.d.ts +0 -13
- package/dist/lib/sqlite.js +3 -71
- package/dist/lib/ssh-exec.d.ts +0 -209
- package/dist/lib/ssh-exec.js +11 -248
- package/dist/lib/ssh-tunnel.d.ts +0 -43
- package/dist/lib/ssh-tunnel.js +2 -48
- package/dist/lib/staleness/checkers/commands.d.ts +0 -4
- package/dist/lib/staleness/checkers/commands.js +0 -4
- package/dist/lib/staleness/checkers/hooks.d.ts +0 -10
- package/dist/lib/staleness/checkers/hooks.js +0 -15
- package/dist/lib/staleness/checkers/mcp.d.ts +0 -9
- package/dist/lib/staleness/checkers/mcp.js +0 -9
- package/dist/lib/staleness/checkers/permissions.d.ts +0 -12
- package/dist/lib/staleness/checkers/permissions.js +0 -13
- package/dist/lib/staleness/checkers/plugins.d.ts +0 -8
- package/dist/lib/staleness/checkers/plugins.js +0 -8
- package/dist/lib/staleness/checkers/rules.d.ts +0 -15
- package/dist/lib/staleness/checkers/rules.js +0 -26
- package/dist/lib/staleness/checkers/skills.d.ts +0 -4
- package/dist/lib/staleness/checkers/skills.js +0 -4
- package/dist/lib/staleness/checkers/subagents.d.ts +0 -9
- package/dist/lib/staleness/checkers/subagents.js +0 -9
- package/dist/lib/staleness/checkers/types.d.ts +0 -34
- package/dist/lib/staleness/checkers/types.js +0 -19
- package/dist/lib/staleness/checkers/workflows.d.ts +0 -7
- package/dist/lib/staleness/checkers/workflows.js +0 -7
- package/dist/lib/staleness/detectors/commands.js +0 -17
- package/dist/lib/staleness/detectors/hooks.js +1 -6
- package/dist/lib/staleness/detectors/mcp.js +0 -4
- package/dist/lib/staleness/detectors/permissions.js +10 -23
- package/dist/lib/staleness/detectors/rules.js +0 -6
- package/dist/lib/staleness/detectors/skills.d.ts +0 -1
- package/dist/lib/staleness/detectors/skills.js +1 -12
- package/dist/lib/staleness/detectors/types.d.ts +0 -10
- package/dist/lib/staleness/fingerprint.d.ts +0 -19
- package/dist/lib/staleness/fingerprint.js +0 -35
- package/dist/lib/staleness/index.d.ts +0 -28
- package/dist/lib/staleness/index.js +1 -45
- package/dist/lib/staleness/layers.d.ts +0 -23
- package/dist/lib/staleness/layers.js +0 -34
- package/dist/lib/staleness/prune.d.ts +0 -71
- package/dist/lib/staleness/prune.js +2 -27
- package/dist/lib/staleness/registry.d.ts +0 -10
- package/dist/lib/staleness/registry.js +3 -33
- package/dist/lib/staleness/types.d.ts +0 -36
- package/dist/lib/staleness/types.js +0 -5
- package/dist/lib/staleness/writers/commands.js +1 -48
- package/dist/lib/staleness/writers/hooks.js +1 -18
- package/dist/lib/staleness/writers/kinds.d.ts +0 -12
- package/dist/lib/staleness/writers/kinds.js +0 -1
- package/dist/lib/staleness/writers/lazy-map.d.ts +0 -11
- package/dist/lib/staleness/writers/mcp.js +0 -13
- package/dist/lib/staleness/writers/plugins.js +0 -4
- package/dist/lib/staleness/writers/rules.d.ts +0 -1
- package/dist/lib/staleness/writers/rules.js +1 -19
- package/dist/lib/staleness/writers/skills.js +3 -14
- package/dist/lib/staleness/writers/sources.d.ts +0 -11
- package/dist/lib/staleness/writers/sources.js +0 -32
- package/dist/lib/staleness/writers/subagents.js +0 -16
- package/dist/lib/staleness/writers/types.d.ts +0 -58
- package/dist/lib/staleness/writers/workflows.js +1 -1
- package/dist/lib/standalone-tools.d.ts +24 -0
- package/dist/lib/standalone-tools.js +58 -0
- package/dist/lib/star-nudge.d.ts +0 -32
- package/dist/lib/star-nudge.js +2 -36
- package/dist/lib/startup/command-registry.d.ts +0 -45
- package/dist/lib/startup/command-registry.js +1 -46
- package/dist/lib/startup/dev-build.d.ts +0 -9
- package/dist/lib/startup/dev-build.js +1 -42
- package/dist/lib/startup/root-command.d.ts +0 -19
- package/dist/lib/startup/root-command.js +0 -19
- package/dist/lib/startup/spellcheck.d.ts +0 -13
- package/dist/lib/startup/spellcheck.js +0 -13
- package/dist/lib/state.d.ts +0 -376
- package/dist/lib/state.js +19 -737
- package/dist/lib/storage/selection.d.ts +0 -40
- package/dist/lib/storage/selection.js +0 -29
- package/dist/lib/subagents-registry.d.ts +0 -56
- package/dist/lib/subagents-registry.js +0 -99
- package/dist/lib/subagents.d.ts +0 -128
- package/dist/lib/subagents.js +1 -158
- package/dist/lib/summarizer/config.d.ts +0 -37
- package/dist/lib/summarizer/config.js +0 -37
- package/dist/lib/summarizer/pass.d.ts +0 -20
- package/dist/lib/summarizer/pass.js +1 -34
- package/dist/lib/summarizer/summarize.d.ts +1 -49
- package/dist/lib/summarizer/summarize.js +0 -35
- package/dist/lib/sync-passphrase.d.ts +0 -16
- package/dist/lib/sync-passphrase.js +1 -18
- package/dist/lib/sync-status.d.ts +0 -72
- package/dist/lib/sync-status.js +0 -55
- package/dist/lib/sync-umbrella.d.ts +0 -54
- package/dist/lib/sync-umbrella.js +0 -48
- package/dist/lib/system-run-sync.d.ts +0 -5
- package/dist/lib/system-run-sync.js +1 -31
- package/dist/lib/teams/agents.d.ts +1 -444
- package/dist/lib/teams/agents.js +11 -871
- package/dist/lib/teams/api.d.ts +2 -52
- package/dist/lib/teams/api.js +4 -63
- package/dist/lib/teams/debug.d.ts +0 -6
- package/dist/lib/teams/debug.js +0 -6
- package/dist/lib/teams/delivery.d.ts +0 -41
- package/dist/lib/teams/delivery.js +0 -32
- package/dist/lib/teams/file_ops.d.ts +0 -11
- package/dist/lib/teams/file_ops.js +0 -11
- package/dist/lib/teams/forEach.d.ts +0 -76
- package/dist/lib/teams/forEach.js +1 -77
- package/dist/lib/teams/index.d.ts +1 -7
- package/dist/lib/teams/index.js +1 -7
- package/dist/lib/teams/parsers.d.ts +0 -4
- package/dist/lib/teams/parsers.js +0 -81
- package/dist/lib/teams/persistence.d.ts +0 -2
- package/dist/lib/teams/persistence.js +0 -12
- package/dist/lib/teams/placement-probe.d.ts +0 -12
- package/dist/lib/teams/placement-probe.js +1 -51
- package/dist/lib/teams/pr-watch.d.ts +0 -107
- package/dist/lib/teams/pr-watch.js +1 -107
- package/dist/lib/teams/registry.d.ts +0 -36
- package/dist/lib/teams/registry.js +0 -47
- package/dist/lib/teams/remoteWorktree.d.ts +0 -50
- package/dist/lib/teams/remoteWorktree.js +1 -96
- package/dist/lib/teams/scheduler.d.ts +0 -111
- package/dist/lib/teams/scheduler.js +2 -125
- package/dist/lib/teams/summarizer.d.ts +0 -22
- package/dist/lib/teams/summarizer.js +6 -50
- package/dist/lib/teams/supervisor.d.ts +0 -38
- package/dist/lib/teams/supervisor.js +0 -21
- package/dist/lib/teams/worktree.d.ts +0 -95
- package/dist/lib/teams/worktree.js +3 -110
- package/dist/lib/template.d.ts +0 -21
- package/dist/lib/template.js +0 -23
- package/dist/lib/term-client.d.ts +0 -26
- package/dist/lib/term-client.js +0 -48
- package/dist/lib/term-driver.d.ts +0 -5
- package/dist/lib/term-driver.js +0 -8
- package/dist/lib/terminal/backends/ghostty.d.ts +0 -2
- package/dist/lib/terminal/backends/ghostty.js +0 -12
- package/dist/lib/terminal/backends/index.d.ts +0 -17
- package/dist/lib/terminal/backends/index.js +0 -15
- package/dist/lib/terminal/backends/iterm.d.ts +0 -2
- package/dist/lib/terminal/backends/iterm.js +0 -10
- package/dist/lib/terminal/backends/terminal-app.d.ts +0 -10
- package/dist/lib/terminal/backends/terminal-app.js +0 -30
- package/dist/lib/terminal/backends/tmux.d.ts +0 -10
- package/dist/lib/terminal/backends/tmux.js +0 -2
- package/dist/lib/terminal/backends/vscodium-agent.d.ts +0 -25
- package/dist/lib/terminal/backends/vscodium-agent.js +0 -36
- package/dist/lib/terminal/engine.d.ts +0 -17
- package/dist/lib/terminal/engine.js +0 -10
- package/dist/lib/terminal/index.d.ts +0 -8
- package/dist/lib/terminal/inject.d.ts +1 -173
- package/dist/lib/terminal/inject.js +0 -146
- package/dist/lib/terminal/policy.d.ts +0 -8
- package/dist/lib/terminal/policy.js +0 -1
- package/dist/lib/terminal/preferred.d.ts +0 -66
- package/dist/lib/terminal/preferred.js +0 -30
- package/dist/lib/terminal/quote.d.ts +0 -8
- package/dist/lib/terminal/quote.js +0 -8
- package/dist/lib/terminal/resolve.d.ts +0 -46
- package/dist/lib/terminal/resolve.js +0 -30
- package/dist/lib/terminal/run-surface.d.ts +0 -56
- package/dist/lib/terminal/run-surface.js +0 -46
- package/dist/lib/terminal/shell.d.ts +0 -3
- package/dist/lib/terminal/shell.js +0 -13
- package/dist/lib/terminal/transport.d.ts +0 -14
- package/dist/lib/terminal/transport.js +1 -30
- package/dist/lib/terminal/types.d.ts +0 -40
- package/dist/lib/terminal/types.js +0 -10
- package/dist/lib/text/relative-time.d.ts +0 -36
- package/dist/lib/text/relative-time.js +0 -43
- package/dist/lib/text/short-id.d.ts +0 -16
- package/dist/lib/text/short-id.js +0 -16
- package/dist/lib/text/width.d.ts +0 -24
- package/dist/lib/text/width.js +10 -52
- package/dist/lib/tmux/binary.d.ts +0 -36
- package/dist/lib/tmux/binary.js +0 -28
- package/dist/lib/tmux/index.d.ts +0 -5
- package/dist/lib/tmux/index.js +0 -5
- package/dist/lib/tmux/orphan-reap.d.ts +0 -253
- package/dist/lib/tmux/orphan-reap.js +3 -299
- package/dist/lib/tmux/paths.d.ts +0 -14
- package/dist/lib/tmux/paths.js +0 -14
- package/dist/lib/tmux/session.d.ts +0 -263
- package/dist/lib/tmux/session.js +6 -344
- package/dist/lib/traces/backend.d.ts +0 -20
- package/dist/lib/traces/backend.js +0 -23
- package/dist/lib/traces/classify.d.ts +0 -20
- package/dist/lib/traces/classify.js +0 -7
- package/dist/lib/traces/insights.d.ts +1 -84
- package/dist/lib/traces/insights.js +0 -126
- package/dist/lib/traces/phenotype.d.ts +0 -69
- package/dist/lib/traces/phenotype.js +0 -150
- package/dist/lib/traces/provision.d.ts +0 -1
- package/dist/lib/traces/provision.js +0 -5
- package/dist/lib/traces/schema2-build.d.ts +3 -60
- package/dist/lib/traces/schema2-build.js +8 -149
- package/dist/lib/traces/schema2-danger.d.ts +0 -30
- package/dist/lib/traces/schema2-danger.js +1 -63
- package/dist/lib/traces/schema2.d.ts +0 -11
- package/dist/lib/traces/segments.d.ts +0 -44
- package/dist/lib/traces/segments.js +0 -65
- package/dist/lib/traces/sync.d.ts +2 -239
- package/dist/lib/traces/sync.js +15 -237
- package/dist/lib/traces/worker-template.d.ts +0 -3
- package/dist/lib/traces/worker-template.js +0 -29
- package/dist/lib/triggers/handlers.d.ts +0 -82
- package/dist/lib/triggers/handlers.js +0 -75
- package/dist/lib/triggers/webhook.d.ts +0 -158
- package/dist/lib/triggers/webhook.js +0 -143
- package/dist/lib/types.d.ts +0 -736
- package/dist/lib/types.js +0 -50
- package/dist/lib/uninstall.d.ts +0 -17
- package/dist/lib/uninstall.js +0 -75
- package/dist/lib/usage-backoff.d.ts +0 -20
- package/dist/lib/usage-backoff.js +3 -60
- package/dist/lib/usage-refresh.d.ts +0 -154
- package/dist/lib/usage-refresh.js +8 -212
- package/dist/lib/verbs.d.ts +0 -12
- package/dist/lib/verbs.js +0 -12
- package/dist/lib/version-duplicates.d.ts +0 -6
- package/dist/lib/version-duplicates.js +0 -6
- package/dist/lib/version.d.ts +0 -55
- package/dist/lib/version.js +1 -58
- package/dist/lib/view-types.d.ts +0 -48
- package/dist/lib/warn-unpushed.d.ts +0 -27
- package/dist/lib/warn-unpushed.js +1 -45
- package/dist/lib/watchdog/history.d.ts +0 -1
- package/dist/lib/watchdog/history.js +0 -3
- package/dist/lib/watchdog/index.js +0 -2
- package/dist/lib/watchdog/log.d.ts +0 -19
- package/dist/lib/watchdog/log.js +0 -34
- package/dist/lib/watchdog/read.d.ts +0 -27
- package/dist/lib/watchdog/read.js +3 -58
- package/dist/lib/watchdog/rotate.d.ts +0 -139
- package/dist/lib/watchdog/rotate.js +2 -151
- package/dist/lib/watchdog/runner.d.ts +0 -125
- package/dist/lib/watchdog/runner.js +3 -223
- package/dist/lib/watchdog/service.d.ts +0 -1
- package/dist/lib/watchdog/service.js +0 -2
- package/dist/lib/watchdog/watchdog-agent.d.ts +0 -31
- package/dist/lib/watchdog/watchdog-agent.js +0 -27
- package/dist/lib/watchdog/watchdog.d.ts +0 -7
- package/dist/lib/watchdog/watchdog.js +0 -10
- package/dist/lib/watchdog/watchdogTail.js +0 -7
- package/dist/lib/whats-new.d.ts +0 -10
- package/dist/lib/whats-new.js +0 -21
- package/dist/lib/workflows-registry.d.ts +0 -45
- package/dist/lib/workflows-registry.js +0 -60
- package/dist/lib/workflows.d.ts +0 -282
- package/dist/lib/workflows.js +3 -213
- package/dist/lib/worktree/held.d.ts +0 -89
- package/dist/lib/worktree/held.js +1 -103
- package/dist/lib/wrap.d.ts +0 -32
- package/dist/lib/wrap.js +0 -32
- package/dist/lib/yaml-io.d.ts +0 -45
- package/dist/lib/yaml-io.js +0 -47
- package/dist/session-tracker/dist/adapters/claude.js +0 -2
- package/dist/session-tracker/dist/hook.sh +4 -37
- package/dist/session-tracker/dist/index.d.ts +0 -7
- package/dist/session-tracker/dist/index.js +0 -5
- package/dist/session-tracker/dist/install-hook.d.ts +0 -5
- package/dist/session-tracker/dist/install-hook.js +1 -15
- package/dist/session-tracker/dist/prune-state.js +0 -4
- package/dist/session-tracker/dist/reader.js +0 -4
- package/dist/session-tracker/dist/state-file.d.ts +0 -3
- package/dist/session-tracker/dist/state-file.js +3 -8
- package/package.json +3 -4
- package/scripts/postinstall.js +8 -116
- package/dist/lib/session/artifacts.d.ts +0 -14
- package/dist/lib/session/artifacts.js +0 -101
- package/dist/lib/session/bash-command.d.ts +0 -63
- package/dist/lib/session/bash-command.js +0 -490
- package/dist/lib/session/digest.d.ts +0 -66
- package/dist/lib/session/digest.js +0 -328
- package/dist/lib/session/highlights.d.ts +0 -151
- package/dist/lib/session/highlights.js +0 -391
- package/dist/lib/session/insights.d.ts +0 -165
- package/dist/lib/session/insights.js +0 -563
- package/dist/lib/session/linear.d.ts +0 -19
- package/dist/lib/session/linear.js +0 -99
- package/dist/lib/session/parse.d.ts +0 -224
- package/dist/lib/session/parse.js +0 -2408
- package/dist/lib/session/prompt.d.ts +0 -213
- package/dist/lib/session/prompt.js +0 -601
- package/dist/lib/session/render.d.ts +0 -133
- package/dist/lib/session/render.js +0 -1047
- package/dist/lib/session/share-html.d.ts +0 -35
- package/dist/lib/session/share-html.js +0 -319
- package/dist/lib/session/shell-programs.d.ts +0 -33
- package/dist/lib/session/shell-programs.js +0 -380
- package/dist/lib/session/state.d.ts +0 -269
- package/dist/lib/session/state.js +0 -777
- package/dist/lib/session/stream-render.d.ts +0 -4
- package/dist/lib/session/stream-render.js +0 -131
- package/dist/lib/session/tail.d.ts +0 -88
- package/dist/lib/session/tail.js +0 -294
- package/dist/lib/session/team-filter.d.ts +0 -129
- package/dist/lib/session/team-filter.js +0 -269
- package/dist/lib/session/timeline.d.ts +0 -172
- package/dist/lib/session/timeline.js +0 -636
- package/dist/lib/session/tool-calls.d.ts +0 -132
- package/dist/lib/session/tool-calls.js +0 -674
- package/dist/lib/session/trajectory-compare.d.ts +0 -48
- package/dist/lib/session/trajectory-compare.js +0 -116
- package/dist/lib/session/trajectory-html.d.ts +0 -19
- package/dist/lib/session/trajectory-html.js +0 -771
- package/dist/lib/session/trajectory-lineage.d.ts +0 -93
- package/dist/lib/session/trajectory-lineage.js +0 -195
- package/dist/lib/session/trajectory-text.d.ts +0 -38
- package/dist/lib/session/trajectory-text.js +0 -284
- package/dist/lib/session/trajectory.d.ts +0 -145
- package/dist/lib/session/trajectory.js +0 -394
- package/dist/lib/session/types.d.ts +0 -627
- package/dist/lib/session/types.js +0 -43
|
@@ -1,18 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cross-machine fan-out for the default `agents sessions` listing.
|
|
3
|
-
*
|
|
4
|
-
* `discoverSessions()` only scans the local disk. To browse the whole fleet in
|
|
5
|
-
* one list — without syncing anything — we run `agents sessions <same query>
|
|
6
|
-
* --json` on each peer over SSH and merge the parsed `SessionMeta[]`, tagging
|
|
7
|
-
* every row with the machine it came from so the picker/table can label and
|
|
8
|
-
* group by computer.
|
|
9
|
-
*
|
|
10
|
-
* This is the browse-listing sibling of `remote-active.ts` (which fans out
|
|
11
|
-
* `--active`): same transport, same device set, same recursion guard. The peer
|
|
12
|
-
* runs with `AGENTS_SESSIONS_LOCAL=1` so it answers only for itself and the
|
|
13
|
-
* sweep never recurses. A dead or slow host is skipped with a stderr note,
|
|
14
|
-
* never fatal — one asleep laptop must not blank the list.
|
|
15
|
-
*/
|
|
16
1
|
import { spawn } from 'child_process';
|
|
17
2
|
import chalk from 'chalk';
|
|
18
3
|
import { SSH_OPTS, controlOpts, assertValidSshTarget, shellQuote, SSH_CONN_FAILURE_CODE, REMOTE_STDOUT_MAX_BYTES, RemoteUtf8Accumulator, } from '../../ssh-exec.js';
|
|
@@ -28,15 +13,10 @@ import { terminalWidth } from '../../text/width.js';
|
|
|
28
13
|
import { sanitizeForTerminal } from '../../redact.js';
|
|
29
14
|
import { mapBounded } from '../../concurrency.js';
|
|
30
15
|
import { TOOL_QUERY_MAX_CLAUSE_BYTES, TOOL_QUERY_MAX_CALL_ROWS, TOOL_QUERY_MAX_CLAUSES, TOOL_QUERY_MAX_RESULT_SESSIONS, TOOL_QUERY_MAX_SERIALIZED_BYTES, serializedToolSearchEnvelopeBytes, } from '../tool-index.js';
|
|
31
|
-
import { TOOL_ERROR_OUTPUT_MAX_BYTES, TOOL_INPUT_MAX_BYTES, TOOL_SUCCESS_OUTPUT_MAX_BYTES, sanitizeToolEvidenceText, } from '
|
|
16
|
+
import { TOOL_ERROR_OUTPUT_MAX_BYTES, TOOL_INPUT_MAX_BYTES, TOOL_SUCCESS_OUTPUT_MAX_BYTES, sanitizeToolEvidenceText, } from '@phnx-labs/sessions-cli/reader';
|
|
32
17
|
const REMOTE_TOOL_TIMEOUT_MS = 60_000;
|
|
33
|
-
// The per-peer stdout ceiling and the UTF-8-safe accumulator live in ssh-exec.ts
|
|
34
|
-
// (the shared SSH transport both this reader and the top-level `remote-agents-json`
|
|
35
|
-
// fan-out import), so the bound is defined once. Re-exported here for the existing
|
|
36
|
-
// consumers/tests that reach them through this module.
|
|
37
18
|
export { REMOTE_STDOUT_MAX_BYTES, RemoteUtf8Accumulator } from '../../ssh-exec.js';
|
|
38
19
|
export const REMOTE_TOOL_AGGREGATE_MAX_BYTES = TOOL_QUERY_MAX_SERIALIZED_BYTES;
|
|
39
|
-
/** Claim received bytes against one fleet-query budget before retaining them. */
|
|
40
20
|
export function consumeRemoteToolByteBudget(budget, bytes) {
|
|
41
21
|
if (budget.exhausted || bytes > budget.remainingBytes) {
|
|
42
22
|
budget.remainingBytes = 0;
|
|
@@ -48,17 +28,9 @@ export function consumeRemoteToolByteBudget(budget, bytes) {
|
|
|
48
28
|
budget.exhausted = true;
|
|
49
29
|
return true;
|
|
50
30
|
}
|
|
51
|
-
/** Charge sanitized, machine-stamped evidence because redaction may expand it. */
|
|
52
31
|
export function consumeParsedRemoteToolSearchBudget(budget, envelope) {
|
|
53
32
|
return consumeRemoteToolByteBudget(budget, serializedToolSearchEnvelopeBytes(envelope));
|
|
54
33
|
}
|
|
55
|
-
/**
|
|
56
|
-
* The command run on each peer: answer for itself, as JSON, without recursing.
|
|
57
|
-
* `forwardedArgs` carry the caller's own query/filters (already including the
|
|
58
|
-
* leading `sessions` and a `--json`) so each peer returns a comparable slice.
|
|
59
|
-
* A Windows peer gets a PowerShell invocation (ssh lands in cmd.exe/PowerShell
|
|
60
|
-
* there, where `bash -lc` is not a command); every other OS keeps `bash -lc`.
|
|
61
|
-
*/
|
|
62
34
|
export function remoteListCommand(forwardedArgs, os) {
|
|
63
35
|
if (remoteShellFor(os) === 'powershell') {
|
|
64
36
|
return buildWindowsAgentsCommand({
|
|
@@ -69,14 +41,6 @@ export function remoteListCommand(forwardedArgs, os) {
|
|
|
69
41
|
const inner = [`${NO_FANOUT_ENV}=1`, 'agents', ...forwardedArgs].map((t, i) => i === 0 ? t : shellQuote(t)).join(' ');
|
|
70
42
|
return `bash -lc ${shellQuote(inner)}`;
|
|
71
43
|
}
|
|
72
|
-
/**
|
|
73
|
-
* Parse a peer's `sessions --json` stdout into `SessionMeta[]`, tagging each
|
|
74
|
-
* with `machine`. Defensive against version skew / partial output: non-JSON or
|
|
75
|
-
* a non-array yields `[]`, and non-object entries are dropped rather than
|
|
76
|
-
* throwing. The `machine` we dialed always wins over any value the peer set on
|
|
77
|
-
* its own rows, so grouping keys off the computer we asked. Exported for unit
|
|
78
|
-
* testing without a live tailnet.
|
|
79
|
-
*/
|
|
80
44
|
export function parseRemoteList(stdout, machine) {
|
|
81
45
|
let parsed;
|
|
82
46
|
try {
|
|
@@ -91,8 +55,6 @@ export function parseRemoteList(stdout, machine) {
|
|
|
91
55
|
? [{ ...value, machine, _remote: true }]
|
|
92
56
|
: []);
|
|
93
57
|
}
|
|
94
|
-
/** Strict parser used at the live peer boundary. A successful process with
|
|
95
|
-
* malformed/non-array JSON is an incomplete source, not an empty machine. */
|
|
96
58
|
const SAFE_RESOLVER_KEYS = new Set([
|
|
97
59
|
'id', 'shortId', 'agent', 'origin', 'timestamp', 'lastActivity', 'project',
|
|
98
60
|
'version', 'harness', 'mode', 'label', 'topic', 'machine',
|
|
@@ -120,14 +82,10 @@ export function parseRemoteListPayload(stdout, machine, safeResolver = false) {
|
|
|
120
82
|
if (safeResolver && !isSafeResolverRow(x)) {
|
|
121
83
|
return { items: [], valid: false };
|
|
122
84
|
}
|
|
123
|
-
// `_remote` marks these as living on the peer's disk (not a local mirror),
|
|
124
|
-
// so the picker routes read/resume back over SSH instead of the local FS.
|
|
125
85
|
out.push({ ...x, machine, _remote: true });
|
|
126
86
|
}
|
|
127
87
|
return { items: out, valid: true };
|
|
128
88
|
}
|
|
129
|
-
/** Run one remote `agents sessions … --json` and capture stdout. Resolves
|
|
130
|
-
* `{ code: null }` on spawn error or timeout (host treated as dead). */
|
|
131
89
|
export function sshCapture(target, remoteCmd, timeoutMs, aggregateBudget, options = {}) {
|
|
132
90
|
assertValidSshTarget(target);
|
|
133
91
|
return new Promise((resolve) => {
|
|
@@ -172,7 +130,6 @@ export function sshCapture(target, remoteCmd, timeoutMs, aggregateBudget, option
|
|
|
172
130
|
child.on('close', (code) => done(code));
|
|
173
131
|
});
|
|
174
132
|
}
|
|
175
|
-
/** Keep browse and tool-search fan-out on the same automatic peer set. */
|
|
176
133
|
export function isAutomaticSessionPeer(d, self) {
|
|
177
134
|
if (!isDialableDevice(d))
|
|
178
135
|
return false;
|
|
@@ -364,9 +321,6 @@ function parseRemoteToolSession(value, machine) {
|
|
|
364
321
|
};
|
|
365
322
|
}
|
|
366
323
|
export function parseRemoteToolSearch(stdout, machine, expectedClauses) {
|
|
367
|
-
// The fleet tool-search fan-out reads a raw sshCapture (not the stripped
|
|
368
|
-
// gatherRemoteAgentsJson wrapper), so a Windows peer's PowerShell CLIXML banner
|
|
369
|
-
// must be removed here too or the box reads as "no envelope" (RUSH-2286).
|
|
370
324
|
stdout = stripClixml(stdout);
|
|
371
325
|
if (Buffer.byteLength(stdout) > REMOTE_STDOUT_MAX_BYTES)
|
|
372
326
|
return undefined;
|
|
@@ -422,11 +376,6 @@ export function parseRemoteToolSearch(stdout, machine, expectedClauses) {
|
|
|
422
376
|
return undefined;
|
|
423
377
|
}
|
|
424
378
|
}
|
|
425
|
-
/**
|
|
426
|
-
* Fleet sibling of {@link gatherRemoteList} for the versioned tool-search
|
|
427
|
-
* envelope. Each peer executes the same local-only query against its own
|
|
428
|
-
* SQLite index; only compact matches cross SSH.
|
|
429
|
-
*/
|
|
430
379
|
export async function gatherRemoteToolSearch(forwardedArgs, hosts, maxAggregateBytes = REMOTE_TOOL_AGGREGATE_MAX_BYTES, expectedClauses = []) {
|
|
431
380
|
const self = machineId();
|
|
432
381
|
const targets = [];
|
|
@@ -451,7 +400,6 @@ export async function gatherRemoteToolSearch(forwardedArgs, hosts, maxAggregateB
|
|
|
451
400
|
targets.push({ target: sshTargetFor(d), machine: normalizeHost(d.name), name: d.name, os: d.platform });
|
|
452
401
|
}
|
|
453
402
|
catch {
|
|
454
|
-
// A registered control record without a dialable address is not a query target.
|
|
455
403
|
}
|
|
456
404
|
}
|
|
457
405
|
}
|
|
@@ -467,11 +415,7 @@ export async function gatherRemoteToolSearch(forwardedArgs, hosts, maxAggregateB
|
|
|
467
415
|
const results = await mapBounded(targets, async (target) => {
|
|
468
416
|
if (aggregateBudget.exhausted)
|
|
469
417
|
return { target, truncated: target.name };
|
|
470
|
-
const capture = await sshCapture(target.target, remoteListCommand(forwardedArgs, target.os), REMOTE_TOOL_TIMEOUT_MS, aggregateBudget,
|
|
471
|
-
// A tool-index deadline must own the SSH connection. Killing a
|
|
472
|
-
// multiplexed child would leave its remote command running on the
|
|
473
|
-
// persistent control master.
|
|
474
|
-
{ multiplex: false });
|
|
418
|
+
const capture = await sshCapture(target.target, remoteListCommand(forwardedArgs, target.os), REMOTE_TOOL_TIMEOUT_MS, aggregateBudget, { multiplex: false });
|
|
475
419
|
if (capture.aggregateBudgetExceeded)
|
|
476
420
|
return { target, truncated: target.name };
|
|
477
421
|
if (capture.code !== 0)
|
|
@@ -501,9 +445,6 @@ export async function gatherRemoteToolSearch(forwardedArgs, hosts, maxAggregateB
|
|
|
501
445
|
truncated: results.map((result) => result.truncated).filter((name) => !!name),
|
|
502
446
|
};
|
|
503
447
|
}
|
|
504
|
-
/** Resolve a peer's SSH target (and OS) from the device registry by its
|
|
505
|
-
* normalized machine id — the same id the fan-out tags rows with. Returns
|
|
506
|
-
* undefined when no registered device with an address matches. */
|
|
507
448
|
export async function resolvePeerTarget(machine) {
|
|
508
449
|
let reg;
|
|
509
450
|
try {
|
|
@@ -519,44 +460,18 @@ export async function resolvePeerTarget(machine) {
|
|
|
519
460
|
return { target: sshTargetFor(d), os: d.platform };
|
|
520
461
|
}
|
|
521
462
|
catch {
|
|
522
|
-
return undefined;
|
|
463
|
+
return undefined;
|
|
523
464
|
}
|
|
524
465
|
}
|
|
525
466
|
return undefined;
|
|
526
467
|
}
|
|
527
|
-
/** Interactive ceiling for a picker-driven peer preview fetch. Tighter than the
|
|
528
|
-
* fan-out's 60s: the user is arrowing through rows, and a peer that can't
|
|
529
|
-
* answer a one-session digest in this window should degrade to the metadata
|
|
530
|
-
* card rather than hold a "fetching…" pane open. */
|
|
531
468
|
const PEER_PREVIEW_TIMEOUT_MS = 15_000;
|
|
532
|
-
/**
|
|
533
|
-
* Fetch one remote session's preview digest from its owning peer — the data
|
|
534
|
-
* behind the picker pane for a `_remote` row, whose transcript file this
|
|
535
|
-
* machine cannot parse. Runs the peer's own `agents sessions preview <id>
|
|
536
|
-
* --local --json` (the same envelope `agents sessions preview` already
|
|
537
|
-
* delegates to for a remote id) and returns its `preview` object, verbatim and
|
|
538
|
-
* UNSANITIZED — the caller owns scrubbing peer-supplied strings before any of
|
|
539
|
-
* them reach a TTY. Undefined on every failure: unregistered machine, SSH
|
|
540
|
-
* error, timeout, version-skewed peer with no `--json` preview envelope.
|
|
541
|
-
*/
|
|
542
469
|
export async function fetchPeerPreviewDigest(sessionId, machine, timeoutMs = PEER_PREVIEW_TIMEOUT_MS) {
|
|
543
470
|
const envelope = await fetchPeerPreviewEnvelope(sessionId, machine, timeoutMs);
|
|
544
471
|
if (!envelope.ok)
|
|
545
472
|
return undefined;
|
|
546
473
|
return parsePeerPreviewDigest(envelope.envelope);
|
|
547
474
|
}
|
|
548
|
-
/**
|
|
549
|
-
* Fetch the FULL `agents sessions preview <id> --local --json` envelope
|
|
550
|
-
* (session/active/preview/error, not just the `.preview` slice
|
|
551
|
-
* {@link fetchPeerPreviewDigest} narrows to) from a session's owning peer in
|
|
552
|
-
* exactly ONE bounded {@link sshCapture} hop. This is the canonical exact
|
|
553
|
-
* ID+owner preview loader (PHNX-3999): the peer's own command already runs the
|
|
554
|
-
* owner-side bounded parsers/fold (`loadSessionPreviewDigest`) and existing
|
|
555
|
-
* redaction, so a caller that already knows the owning device needs no
|
|
556
|
-
* separate metadata round trip before this one — unlike the general fleet
|
|
557
|
-
* resolver, which fans out a `sessions <id> --json --all` metadata query first
|
|
558
|
-
* because it does NOT yet know which peer (if any) holds the id.
|
|
559
|
-
*/
|
|
560
475
|
export async function fetchPeerPreviewEnvelope(sessionId, machine, timeoutMs = PEER_PREVIEW_TIMEOUT_MS) {
|
|
561
476
|
const peer = await resolvePeerTarget(machine);
|
|
562
477
|
if (!peer)
|
|
@@ -572,7 +487,6 @@ export async function fetchPeerPreviewEnvelope(sessionId, machine, timeoutMs = P
|
|
|
572
487
|
return { ok: false, reason: 'invalid-json' };
|
|
573
488
|
}
|
|
574
489
|
}
|
|
575
|
-
/** Parse the JSON envelope returned by `sessions preview --json`. */
|
|
576
490
|
export function parsePeerPreviewDigest(parsed) {
|
|
577
491
|
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
|
|
578
492
|
return undefined;
|
|
@@ -581,43 +495,6 @@ export function parsePeerPreviewDigest(parsed) {
|
|
|
581
495
|
return undefined;
|
|
582
496
|
return preview;
|
|
583
497
|
}
|
|
584
|
-
/**
|
|
585
|
-
* Run `agents <args>` ON a peer over SSH, attached to this terminal (inherited
|
|
586
|
-
* stdio). `args` is the full arg vector after the binary — callers pass e.g.
|
|
587
|
-
* `['sessions', id, '--markdown']` or `['sessions', 'resume', id]`. Used when a
|
|
588
|
-
* picked session lives on another machine: its transcript and agent binary are
|
|
589
|
-
* there, so both reading (no TTY) and resuming (TTY) must execute on the peer —
|
|
590
|
-
* not via a local `--device` hop, which would discover locally and dead-end for a
|
|
591
|
-
* session that exists only on the peer. Resolves 'no-target' when the machine
|
|
592
|
-
* isn't a dialable registered device; the caller surfaces a clear message.
|
|
593
|
-
*
|
|
594
|
-
* `opts.env` adds variables to the remote command. It deliberately does NOT
|
|
595
|
-
* carry `AGENTS_FLEET_REMOTE` the way the `--device` passthrough does: that marker
|
|
596
|
-
* gates consent-sensitive actions on the far side
|
|
597
|
-
* (lib/browser/remote-control.ts), and a resumed agent is a long-lived session
|
|
598
|
-
* that would inherit it for its whole life — `agents browser start` inside it
|
|
599
|
-
* would then be refused as a cross-machine drive. A one-shot `--device` command
|
|
600
|
-
* can carry the marker; a session cannot.
|
|
601
|
-
*
|
|
602
|
-
* `opts.sessionId` (with `tty`) prints the session id and resume command when
|
|
603
|
-
* the SSH hop ends, so OpenSSH's `Shared connection … closed.` is not the last
|
|
604
|
-
* thing on the local shell (RUSH-3227). Omit it for one-shot non-TTY renders.
|
|
605
|
-
*
|
|
606
|
-
* Resolves `'unreachable'` when the SSH connection itself failed — ssh could not
|
|
607
|
-
* launch (spawn error) or exited with {@link SSH_CONN_FAILURE_CODE} (255, its
|
|
608
|
-
* connect-failure convention) — as opposed to `'ok'` for a hop that actually
|
|
609
|
-
* reached the peer (whatever the remote command's own exit code). This lets a
|
|
610
|
-
* caller prefer the recorded device yet fall back locally when it is genuinely
|
|
611
|
-
* offline (PHNX-3626); callers that ignore `'unreachable'` behave exactly as
|
|
612
|
-
* before (it was `'ok'`).
|
|
613
|
-
*/
|
|
614
|
-
/**
|
|
615
|
-
* Classify a finished SSH hop by its exit code: `'unreachable'` when the
|
|
616
|
-
* connection itself failed (ssh's {@link SSH_CONN_FAILURE_CODE} = 255, or a null
|
|
617
|
-
* code from a killed/never-launched child), else `'ok'` — the remote command ran,
|
|
618
|
-
* whatever its own exit status. Pure so the offline-device fallback is unit-tested
|
|
619
|
-
* without a live SSH hop (PHNX-3626).
|
|
620
|
-
*/
|
|
621
498
|
export function peerHopOutcome(code) {
|
|
622
499
|
return code === SSH_CONN_FAILURE_CODE || code === null ? 'unreachable' : 'ok';
|
|
623
500
|
}
|
|
@@ -630,39 +507,28 @@ export async function runOnPeer(args, machine, opts = {}) {
|
|
|
630
507
|
const peer = await resolvePeerTarget(machine);
|
|
631
508
|
if (!peer)
|
|
632
509
|
return 'no-target';
|
|
633
|
-
assertValidSshTarget(peer.target);
|
|
510
|
+
assertValidSshTarget(peer.target);
|
|
634
511
|
const cols = terminalWidth();
|
|
635
512
|
const env = { ...(cols > 0 ? { COLUMNS: String(cols) } : {}), ...opts.env };
|
|
636
513
|
const assignments = Object.entries(env).map(([k, v]) => `${k}=${shellQuote(v)}`);
|
|
637
514
|
const invocation = assignments.concat(['agents', ...args].map(shellQuote)).join(' ');
|
|
638
|
-
// OpenSSH uses 255 for transport failure, but also propagates a reached remote
|
|
639
|
-
// program's 255 verbatim. Remap only the remote program's 255 inside the peer
|
|
640
|
-
// shell so the outer SSH status remains an unambiguous connectivity signal.
|
|
641
515
|
const remoteCmd = remoteShellFor(peer.os) === 'powershell'
|
|
642
516
|
? buildWindowsAgentsCommand({ args, env: assignments.length ? env : undefined, remapExit255: true })
|
|
643
517
|
: `bash -lc ${shellQuote(`${invocation}; agents_rc=$?; if [ "$agents_rc" -eq 255 ]; then exit 254; fi; exit "$agents_rc"`)}`;
|
|
644
518
|
const sshArgs = [...SSH_OPTS, ...controlOpts()];
|
|
645
519
|
if (opts.tty)
|
|
646
|
-
sshArgs.push('-tt');
|
|
520
|
+
sshArgs.push('-tt');
|
|
647
521
|
sshArgs.push(peer.target, remoteCmd);
|
|
648
522
|
return new Promise((resolve) => {
|
|
649
523
|
const child = spawn('ssh', sshArgs, { stdio: 'inherit' });
|
|
650
|
-
// ssh prints its own connection errors to the inherited stderr; a spawn
|
|
651
|
-
// failure (e.g. ssh not on PATH) has no such output, so name it. Either way
|
|
652
|
-
// we resolve once it settles so the picker flow completes.
|
|
653
524
|
child.on('error', (err) => {
|
|
654
525
|
process.stderr.write(chalk.red(`Failed to reach ${machine}: ${err?.message ?? 'ssh failed to launch'}\n`));
|
|
655
526
|
resolve('unreachable');
|
|
656
527
|
});
|
|
657
528
|
child.on('close', (code) => {
|
|
658
|
-
// Interactive TTY hop: OpenSSH prints "Shared connection … closed." and
|
|
659
|
-
// nothing else. Leave the session id on the local shell (RUSH-3227).
|
|
660
529
|
const notice = peerHopCloseNotice(opts, machine, code);
|
|
661
530
|
if (notice)
|
|
662
531
|
process.stderr.write(notice);
|
|
663
|
-
// ssh exits 255 only when the connection itself failed (host down/asleep),
|
|
664
|
-
// distinct from the remote command's own non-zero exit. Report that so a
|
|
665
|
-
// caller can fall back locally instead of silently completing.
|
|
666
532
|
resolve(peerHopOutcome(code));
|
|
667
533
|
});
|
|
668
534
|
});
|
|
@@ -1,133 +1,35 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* POSIX single-quote a string for safe interpolation into a remote shell command.
|
|
3
|
-
* Always wraps (unlike the bare-passthrough variant in `ssh-exec.ts`) — the
|
|
4
|
-
* forwarded `agents` argv is embedded verbatim inside `bash -lc '<cmd>'`, so
|
|
5
|
-
* every token is quoted to keep the command boundary unambiguous.
|
|
6
|
-
*/
|
|
7
1
|
export declare function shellQuote(s: string): string;
|
|
8
|
-
/**
|
|
9
|
-
* Strip the `--device`/`-D` flag (and its value) from a raw `agents sessions` argv,
|
|
10
|
-
* leaving the args to forward to the remote unchanged. The remote runs the same
|
|
11
|
-
* binary, so every other flag (`--since`, `--last`, `--json`, query, …) carries
|
|
12
|
-
* over for free. Handles every form commander accepts: `--device h`, `--device=h`,
|
|
13
|
-
* `-D h`, `-D=h`, and the glued short form `-Dh`.
|
|
14
|
-
*
|
|
15
|
-
* @param argv full process argv; the sessions args begin at index 2
|
|
16
|
-
* (`[runtime, script, 'sessions', ...]`).
|
|
17
|
-
*/
|
|
18
2
|
export declare function buildForwardedArgs(argv: string[], hosts?: Set<string>): string[];
|
|
19
|
-
/**
|
|
20
|
-
* Force a forwarded `agents sessions` listing to span the peer's WHOLE index.
|
|
21
|
-
*
|
|
22
|
-
* A remote listing runs in the peer's SSH-login cwd — its home dir — and the
|
|
23
|
-
* default listing is silently cwd-scoped, so `sessions --device box` reads as
|
|
24
|
-
* empty even when the box's index is full (`No sessions found for /home/<user>`).
|
|
25
|
-
* Across SSH a peer's cwd is meaningless, so `--device` defaults to `--all`
|
|
26
|
-
* (whole-index) scope. This only drops the *cwd* narrowing — an explicit path
|
|
27
|
-
* query, `--project`, `--since`, or `--agent` filter still narrows on top, and
|
|
28
|
-
* a query that looks like a path takes precedence over `--all` on the remote.
|
|
29
|
-
* Idempotent: never adds a second `--all`.
|
|
30
|
-
*/
|
|
31
3
|
export declare function ensureWholeIndex(forwardedArgs: string[]): string[];
|
|
32
|
-
/**
|
|
33
|
-
* Build the single remote command string for `ssh <host> <cmd>`. Forwarded args
|
|
34
|
-
* are quoted for the inner login shell, then the whole `agents …` invocation is
|
|
35
|
-
* quoted again so it survives `bash -lc <...>`.
|
|
36
|
-
*
|
|
37
|
-
* `os` selects the remote shell: a Windows host gets a PowerShell invocation
|
|
38
|
-
* (ssh lands in cmd.exe/PowerShell there, where `bash -lc` does not exist);
|
|
39
|
-
* anything else — including unknown/absent — keeps the POSIX form unchanged.
|
|
40
|
-
* The forwarded terminal width rides across as an env var either way so the
|
|
41
|
-
* remote renders its table to the local screen.
|
|
42
|
-
*/
|
|
43
4
|
export declare function buildRemoteCommand(forwardedArgs: string[], columns?: number, os?: string): string;
|
|
44
|
-
/** The four outcomes of one `ssh <host> agents sessions …` invocation. */
|
|
45
5
|
type SshOutcome = 'ok' | 'unreachable' | 'query-failed' | 'spawn-error';
|
|
46
|
-
/**
|
|
47
|
-
* Classify an ssh `spawnSync` result. ssh(1) reserves exit 255 for its own
|
|
48
|
-
* connection-layer failures (host down, timeout, refused, auth, changed host
|
|
49
|
-
* key) — distinct from any other non-zero, which is the remote `agents sessions`
|
|
50
|
-
* exit code forwarded back (the query ran but failed). The two must be handled
|
|
51
|
-
* differently: 255 may fall back to cache, a forwarded failure must surface.
|
|
52
|
-
*/
|
|
53
6
|
export declare function classifySshFailure(res: {
|
|
54
7
|
error?: Error | null;
|
|
55
8
|
status: number | null;
|
|
56
9
|
}): SshOutcome;
|
|
57
|
-
/**
|
|
58
|
-
* How long a successful remote fetch may be served without re-SSHing.
|
|
59
|
-
* Short on purpose: session listings must stay near-live (RUSH-2062). Match the
|
|
60
|
-
* active-session snapshot window so surfaces share one freshness model.
|
|
61
|
-
*/
|
|
62
10
|
export declare const REMOTE_CACHE_MAX_AGE_MS = 15000;
|
|
63
|
-
/**
|
|
64
|
-
* Deterministic cache path for a (host, forwarded-args) pair. The forwarded args
|
|
65
|
-
* are hashed so distinct queries cache independently; the host stays readable in
|
|
66
|
-
* the filename (sanitised so `user@host` and aliases are filesystem-safe).
|
|
67
|
-
*/
|
|
68
11
|
export declare function remoteCachePath(host: string, forwardedArgs: string[]): string;
|
|
69
|
-
/**
|
|
70
|
-
* Pure freshness check for a remote-sessions cache entry. A reachable host
|
|
71
|
-
* skips SSH only while this returns true; unreachable fallback ignores age.
|
|
72
|
-
*/
|
|
73
12
|
export declare function isRemoteCacheFresh(mtimeMs: number, nowMs: number, maxAgeMs?: number): boolean;
|
|
74
13
|
interface RemoteCacheHit {
|
|
75
14
|
output: string;
|
|
76
15
|
mtimeMs: number;
|
|
77
16
|
}
|
|
78
|
-
/**
|
|
79
|
-
* Read a cached remote fetch. When `maxAgeMs` is set, returns null if the
|
|
80
|
-
* entry is older than the window (cache-first path for reachable hosts).
|
|
81
|
-
* Omit `maxAgeMs` to accept any age (unreachable fallback).
|
|
82
|
-
*/
|
|
83
17
|
export declare function readRemoteCache(host: string, forwardedArgs: string[], opts?: {
|
|
84
18
|
maxAgeMs?: number;
|
|
85
19
|
nowMs?: number;
|
|
86
20
|
}): RemoteCacheHit | null;
|
|
87
|
-
/** Banner shown above replayed cache rows when the peer is offline. */
|
|
88
21
|
export declare function formatStaleBanner(host: string, mtimeMs: number): string;
|
|
89
|
-
/** Message shown when a host is unreachable and there is no cache to fall back to. */
|
|
90
22
|
export declare function formatUnreachable(host: string): string;
|
|
91
|
-
/** Persist a successful fetch for later cache-first / offline replay.
|
|
92
|
-
* Best-effort: a cache write must never break the live query. Exported for tests. */
|
|
93
23
|
export declare function writeRemoteCache(host: string, forwardedArgs: string[], output: string): void;
|
|
94
|
-
/**
|
|
95
|
-
* Serve a *fresh* cache entry for a reachable-host skip (no banner — the data
|
|
96
|
-
* is still within the freshness window). Returns false when missing/stale so
|
|
97
|
-
* the caller SSHes. RUSH-2062: without this, a reachable host never skipped SSH
|
|
98
|
-
* even when the cache was just written.
|
|
99
|
-
*/
|
|
100
24
|
export declare function serveWarmRemoteCache(host: string, forwardedArgs: string[], opts?: {
|
|
101
25
|
maxAgeMs?: number;
|
|
102
26
|
nowMs?: number;
|
|
103
27
|
}): boolean;
|
|
104
|
-
/** Replay a cached fetch for an unreachable host (any age). Banner goes to
|
|
105
|
-
* stderr (so a piped stdout stays exactly the cached rows); returns false when
|
|
106
|
-
* nothing is cached for this exact (host, query). */
|
|
107
28
|
export declare function replayRemoteCache(host: string, forwardedArgs: string[]): boolean;
|
|
108
29
|
interface RunRemoteSessionsOptions {
|
|
109
|
-
/** Skip warm cache and SSH every host (force-refresh). */
|
|
110
30
|
forceRefresh?: boolean;
|
|
111
|
-
/** Override freshness window for the warm path. */
|
|
112
31
|
maxAgeMs?: number;
|
|
113
|
-
/** Clock (tests). */
|
|
114
32
|
nowMs?: number;
|
|
115
33
|
}
|
|
116
|
-
/**
|
|
117
|
-
* Run the current `agents sessions` invocation on one or more remote machines over
|
|
118
|
-
* SSH, writing each remote's output to the terminal.
|
|
119
|
-
*
|
|
120
|
-
* Cache policy (RUSH-2062):
|
|
121
|
-
* - **Default:** serve a fresh cache hit without SSH; SSH only on miss/stale.
|
|
122
|
-
* - **`forceRefresh`:** always SSH, then rewrite the cache.
|
|
123
|
-
* - **Unreachable:** fall back to any cached output (with a stale banner).
|
|
124
|
-
*
|
|
125
|
-
* Sets `process.exitCode = 1` if any host could not be answered (live or cached).
|
|
126
|
-
* Reads the invocation from `process.argv` (override via `argv` for testing).
|
|
127
|
-
*
|
|
128
|
-
* Output is captured rather than `stdio: 'inherit'`-streamed so it can be cached.
|
|
129
|
-
* Session output is small and the remote returns quickly, so buffering is
|
|
130
|
-
* imperceptible; `maxBuffer` is generous for the rare large `--markdown <id>` dump.
|
|
131
|
-
*/
|
|
132
34
|
export declare function runRemoteSessions(hosts: string[], argv?: string[], opts?: RunRemoteSessionsOptions): void;
|
|
133
35
|
export {};
|
|
@@ -34,42 +34,21 @@ import { resolveRemoteOsSync } from '../../hosts/remote-os.js';
|
|
|
34
34
|
import { NO_FANOUT_ENV } from '../remote-active.js';
|
|
35
35
|
import { formatRelativeTime } from '../../text/relative-time.js';
|
|
36
36
|
import { terminalWidth } from '../../text/width.js';
|
|
37
|
-
/**
|
|
38
|
-
* POSIX single-quote a string for safe interpolation into a remote shell command.
|
|
39
|
-
* Always wraps (unlike the bare-passthrough variant in `ssh-exec.ts`) — the
|
|
40
|
-
* forwarded `agents` argv is embedded verbatim inside `bash -lc '<cmd>'`, so
|
|
41
|
-
* every token is quoted to keep the command boundary unambiguous.
|
|
42
|
-
*/
|
|
43
37
|
export function shellQuote(s) {
|
|
44
38
|
return `'${s.replace(/'/g, `'\\''`)}'`;
|
|
45
39
|
}
|
|
46
|
-
/**
|
|
47
|
-
* Strip the `--device`/`-D` flag (and its value) from a raw `agents sessions` argv,
|
|
48
|
-
* leaving the args to forward to the remote unchanged. The remote runs the same
|
|
49
|
-
* binary, so every other flag (`--since`, `--last`, `--json`, query, …) carries
|
|
50
|
-
* over for free. Handles every form commander accepts: `--device h`, `--device=h`,
|
|
51
|
-
* `-D h`, `-D=h`, and the glued short form `-Dh`.
|
|
52
|
-
*
|
|
53
|
-
* @param argv full process argv; the sessions args begin at index 2
|
|
54
|
-
* (`[runtime, script, 'sessions', ...]`).
|
|
55
|
-
*/
|
|
56
40
|
export function buildForwardedArgs(argv, hosts = new Set()) {
|
|
57
41
|
const args = argv.slice(2);
|
|
58
42
|
const out = [];
|
|
59
43
|
for (let i = 0; i < args.length; i++) {
|
|
60
44
|
const a = args[i];
|
|
61
45
|
if (a === '--device' || a === '--devices') {
|
|
62
|
-
// Commander's `<target...>` variadic accepts both `--device a --device b`
|
|
63
|
-
// and `--device a b` — consume every consecutive token that is a known host
|
|
64
|
-
// so the variadic form doesn't leak the extra hosts into the remote argv.
|
|
65
|
-
// Fall back to consuming the single next token when we have no host set
|
|
66
|
-
// (e.g. malformed input) so the flag value never leaks either way.
|
|
67
46
|
if (hosts.size > 0) {
|
|
68
47
|
while (i + 1 < args.length && hosts.has(args[i + 1]))
|
|
69
48
|
i++;
|
|
70
49
|
}
|
|
71
50
|
else {
|
|
72
|
-
i++;
|
|
51
|
+
i++;
|
|
73
52
|
}
|
|
74
53
|
continue;
|
|
75
54
|
}
|
|
@@ -79,38 +58,10 @@ export function buildForwardedArgs(argv, hosts = new Set()) {
|
|
|
79
58
|
}
|
|
80
59
|
return out;
|
|
81
60
|
}
|
|
82
|
-
/**
|
|
83
|
-
* Force a forwarded `agents sessions` listing to span the peer's WHOLE index.
|
|
84
|
-
*
|
|
85
|
-
* A remote listing runs in the peer's SSH-login cwd — its home dir — and the
|
|
86
|
-
* default listing is silently cwd-scoped, so `sessions --device box` reads as
|
|
87
|
-
* empty even when the box's index is full (`No sessions found for /home/<user>`).
|
|
88
|
-
* Across SSH a peer's cwd is meaningless, so `--device` defaults to `--all`
|
|
89
|
-
* (whole-index) scope. This only drops the *cwd* narrowing — an explicit path
|
|
90
|
-
* query, `--project`, `--since`, or `--agent` filter still narrows on top, and
|
|
91
|
-
* a query that looks like a path takes precedence over `--all` on the remote.
|
|
92
|
-
* Idempotent: never adds a second `--all`.
|
|
93
|
-
*/
|
|
94
61
|
export function ensureWholeIndex(forwardedArgs) {
|
|
95
62
|
return forwardedArgs.includes('--all') ? forwardedArgs : [...forwardedArgs, '--all'];
|
|
96
63
|
}
|
|
97
|
-
/**
|
|
98
|
-
* Build the single remote command string for `ssh <host> <cmd>`. Forwarded args
|
|
99
|
-
* are quoted for the inner login shell, then the whole `agents …` invocation is
|
|
100
|
-
* quoted again so it survives `bash -lc <...>`.
|
|
101
|
-
*
|
|
102
|
-
* `os` selects the remote shell: a Windows host gets a PowerShell invocation
|
|
103
|
-
* (ssh lands in cmd.exe/PowerShell there, where `bash -lc` does not exist);
|
|
104
|
-
* anything else — including unknown/absent — keeps the POSIX form unchanged.
|
|
105
|
-
* The forwarded terminal width rides across as an env var either way so the
|
|
106
|
-
* remote renders its table to the local screen.
|
|
107
|
-
*/
|
|
108
64
|
export function buildRemoteCommand(forwardedArgs, columns, os) {
|
|
109
|
-
// `--device <box>` means "that box's own sessions" — so the peer must answer for
|
|
110
|
-
// ITSELF and not re-sweep its fleet. Without this the remote `agents sessions`
|
|
111
|
-
// fans back out to every device IT knows (including us), printing a spurious
|
|
112
|
-
// `<this-machine>: unreachable`. AGENTS_SESSIONS_LOCAL=1 pins the peer local,
|
|
113
|
-
// matching the JSON fan-out path (`remote-list.ts`).
|
|
114
65
|
if (remoteShellFor(os) === 'powershell') {
|
|
115
66
|
const env = { [NO_FANOUT_ENV]: '1' };
|
|
116
67
|
if (columns && columns > 0)
|
|
@@ -118,19 +69,9 @@ export function buildRemoteCommand(forwardedArgs, columns, os) {
|
|
|
118
69
|
return buildWindowsAgentsCommand({ args: forwardedArgs, env });
|
|
119
70
|
}
|
|
120
71
|
const inner = ['agents', ...forwardedArgs].map(shellQuote).join(' ');
|
|
121
|
-
// Forward the caller's terminal width so the remote renders the table to the
|
|
122
|
-
// local screen (over SSH the remote's own COLUMNS is unset/wrong). `VAR=val
|
|
123
|
-
// cmd` scopes the env to that process — the remote's terminalWidth() reads it.
|
|
124
72
|
const envPrefix = `${NO_FANOUT_ENV}=1` + (columns && columns > 0 ? ` COLUMNS=${columns}` : '');
|
|
125
73
|
return `bash -lc ${shellQuote(`${envPrefix} ${inner}`)}`;
|
|
126
74
|
}
|
|
127
|
-
/**
|
|
128
|
-
* Classify an ssh `spawnSync` result. ssh(1) reserves exit 255 for its own
|
|
129
|
-
* connection-layer failures (host down, timeout, refused, auth, changed host
|
|
130
|
-
* key) — distinct from any other non-zero, which is the remote `agents sessions`
|
|
131
|
-
* exit code forwarded back (the query ran but failed). The two must be handled
|
|
132
|
-
* differently: 255 may fall back to cache, a forwarded failure must surface.
|
|
133
|
-
*/
|
|
134
75
|
export function classifySshFailure(res) {
|
|
135
76
|
if (res.error)
|
|
136
77
|
return 'spawn-error';
|
|
@@ -140,38 +81,18 @@ export function classifySshFailure(res) {
|
|
|
140
81
|
return 'unreachable';
|
|
141
82
|
return 'query-failed';
|
|
142
83
|
}
|
|
143
|
-
/** Root of the offline-replay cache (`~/.agents/.cache/remote-sessions/`). */
|
|
144
84
|
const REMOTE_CACHE_DIR = join(getCacheDir(), 'remote-sessions');
|
|
145
|
-
/**
|
|
146
|
-
* How long a successful remote fetch may be served without re-SSHing.
|
|
147
|
-
* Short on purpose: session listings must stay near-live (RUSH-2062). Match the
|
|
148
|
-
* active-session snapshot window so surfaces share one freshness model.
|
|
149
|
-
*/
|
|
150
85
|
export const REMOTE_CACHE_MAX_AGE_MS = 15_000;
|
|
151
|
-
/**
|
|
152
|
-
* Deterministic cache path for a (host, forwarded-args) pair. The forwarded args
|
|
153
|
-
* are hashed so distinct queries cache independently; the host stays readable in
|
|
154
|
-
* the filename (sanitised so `user@host` and aliases are filesystem-safe).
|
|
155
|
-
*/
|
|
156
86
|
export function remoteCachePath(host, forwardedArgs) {
|
|
157
87
|
const hash = createHash('sha256').update(forwardedArgs.join('\u0000')).digest('hex').slice(0, 16);
|
|
158
88
|
const safeHost = host.replace(/[^a-zA-Z0-9._@-]/g, '_');
|
|
159
89
|
return join(REMOTE_CACHE_DIR, `${safeHost}__${hash}.txt`);
|
|
160
90
|
}
|
|
161
|
-
/**
|
|
162
|
-
* Pure freshness check for a remote-sessions cache entry. A reachable host
|
|
163
|
-
* skips SSH only while this returns true; unreachable fallback ignores age.
|
|
164
|
-
*/
|
|
165
91
|
export function isRemoteCacheFresh(mtimeMs, nowMs, maxAgeMs = REMOTE_CACHE_MAX_AGE_MS) {
|
|
166
92
|
if (!Number.isFinite(mtimeMs) || !Number.isFinite(maxAgeMs) || maxAgeMs < 0)
|
|
167
93
|
return false;
|
|
168
94
|
return nowMs - mtimeMs <= maxAgeMs;
|
|
169
95
|
}
|
|
170
|
-
/**
|
|
171
|
-
* Read a cached remote fetch. When `maxAgeMs` is set, returns null if the
|
|
172
|
-
* entry is older than the window (cache-first path for reachable hosts).
|
|
173
|
-
* Omit `maxAgeMs` to accept any age (unreachable fallback).
|
|
174
|
-
*/
|
|
175
96
|
export function readRemoteCache(host, forwardedArgs, opts = {}) {
|
|
176
97
|
try {
|
|
177
98
|
const p = remoteCachePath(host, forwardedArgs);
|
|
@@ -189,32 +110,21 @@ export function readRemoteCache(host, forwardedArgs, opts = {}) {
|
|
|
189
110
|
return null;
|
|
190
111
|
}
|
|
191
112
|
}
|
|
192
|
-
/** Banner shown above replayed cache rows when the peer is offline. */
|
|
193
113
|
export function formatStaleBanner(host, mtimeMs) {
|
|
194
114
|
const ago = formatRelativeTime(new Date(mtimeMs).toISOString());
|
|
195
115
|
return chalk.yellow(`${host}: offline — showing cached results from ${ago}`);
|
|
196
116
|
}
|
|
197
|
-
/** Message shown when a host is unreachable and there is no cache to fall back to. */
|
|
198
117
|
export function formatUnreachable(host) {
|
|
199
118
|
return chalk.red(`${host}: unreachable over SSH (asleep, offline, or host key changed?) — ConnectTimeout 10s`);
|
|
200
119
|
}
|
|
201
|
-
/** Persist a successful fetch for later cache-first / offline replay.
|
|
202
|
-
* Best-effort: a cache write must never break the live query. Exported for tests. */
|
|
203
120
|
export function writeRemoteCache(host, forwardedArgs, output) {
|
|
204
121
|
try {
|
|
205
122
|
mkdirSync(REMOTE_CACHE_DIR, { recursive: true });
|
|
206
123
|
writeFileSync(remoteCachePath(host, forwardedArgs), output);
|
|
207
124
|
}
|
|
208
125
|
catch {
|
|
209
|
-
// ignore — caching is an optimisation, not a guarantee
|
|
210
126
|
}
|
|
211
127
|
}
|
|
212
|
-
/**
|
|
213
|
-
* Serve a *fresh* cache entry for a reachable-host skip (no banner — the data
|
|
214
|
-
* is still within the freshness window). Returns false when missing/stale so
|
|
215
|
-
* the caller SSHes. RUSH-2062: without this, a reachable host never skipped SSH
|
|
216
|
-
* even when the cache was just written.
|
|
217
|
-
*/
|
|
218
128
|
export function serveWarmRemoteCache(host, forwardedArgs, opts = {}) {
|
|
219
129
|
const hit = readRemoteCache(host, forwardedArgs, {
|
|
220
130
|
maxAgeMs: opts.maxAgeMs ?? REMOTE_CACHE_MAX_AGE_MS,
|
|
@@ -225,36 +135,17 @@ export function serveWarmRemoteCache(host, forwardedArgs, opts = {}) {
|
|
|
225
135
|
process.stdout.write(hit.output);
|
|
226
136
|
return true;
|
|
227
137
|
}
|
|
228
|
-
/** Replay a cached fetch for an unreachable host (any age). Banner goes to
|
|
229
|
-
* stderr (so a piped stdout stays exactly the cached rows); returns false when
|
|
230
|
-
* nothing is cached for this exact (host, query). */
|
|
231
138
|
export function replayRemoteCache(host, forwardedArgs) {
|
|
232
|
-
const hit = readRemoteCache(host, forwardedArgs);
|
|
139
|
+
const hit = readRemoteCache(host, forwardedArgs);
|
|
233
140
|
if (!hit)
|
|
234
141
|
return false;
|
|
235
142
|
process.stderr.write(formatStaleBanner(host, hit.mtimeMs) + '\n');
|
|
236
143
|
process.stdout.write(hit.output);
|
|
237
144
|
return true;
|
|
238
145
|
}
|
|
239
|
-
/**
|
|
240
|
-
* Run the current `agents sessions` invocation on one or more remote machines over
|
|
241
|
-
* SSH, writing each remote's output to the terminal.
|
|
242
|
-
*
|
|
243
|
-
* Cache policy (RUSH-2062):
|
|
244
|
-
* - **Default:** serve a fresh cache hit without SSH; SSH only on miss/stale.
|
|
245
|
-
* - **`forceRefresh`:** always SSH, then rewrite the cache.
|
|
246
|
-
* - **Unreachable:** fall back to any cached output (with a stale banner).
|
|
247
|
-
*
|
|
248
|
-
* Sets `process.exitCode = 1` if any host could not be answered (live or cached).
|
|
249
|
-
* Reads the invocation from `process.argv` (override via `argv` for testing).
|
|
250
|
-
*
|
|
251
|
-
* Output is captured rather than `stdio: 'inherit'`-streamed so it can be cached.
|
|
252
|
-
* Session output is small and the remote returns quickly, so buffering is
|
|
253
|
-
* imperceptible; `maxBuffer` is generous for the rare large `--markdown <id>` dump.
|
|
254
|
-
*/
|
|
255
146
|
export function runRemoteSessions(hosts, argv = process.argv, opts = {}) {
|
|
256
147
|
for (const host of hosts)
|
|
257
|
-
assertValidSshTarget(host);
|
|
148
|
+
assertValidSshTarget(host);
|
|
258
149
|
const forwarded = ensureWholeIndex(buildForwardedArgs(argv, new Set(hosts)));
|
|
259
150
|
const cols = terminalWidth();
|
|
260
151
|
const multi = hosts.length > 1;
|
|
@@ -264,15 +155,12 @@ export function runRemoteSessions(hosts, argv = process.argv, opts = {}) {
|
|
|
264
155
|
for (const host of hosts) {
|
|
265
156
|
if (multi)
|
|
266
157
|
process.stdout.write(chalk.cyan(`\n── ${host} ──\n`));
|
|
267
|
-
// Cache-first: a warm hit skips SSH entirely so reachable hosts share one
|
|
268
|
-
// snapshot across menubar/CLI/watchdog instead of re-fanning every call.
|
|
269
158
|
if (!forceRefresh && serveWarmRemoteCache(host, forwarded, {
|
|
270
159
|
maxAgeMs: opts.maxAgeMs,
|
|
271
160
|
nowMs: opts.nowMs,
|
|
272
161
|
})) {
|
|
273
162
|
continue;
|
|
274
163
|
}
|
|
275
|
-
// Per-host: a Windows peer needs a PowerShell command, POSIX peers `bash -lc`.
|
|
276
164
|
const remoteCmd = buildRemoteCommand(forwarded, cols, resolveRemoteOsSync(host));
|
|
277
165
|
const res = spawnSync('ssh', [...SSH_OPTS, ...controlOpts(), host, remoteCmd], {
|
|
278
166
|
encoding: 'utf8',
|
|
@@ -286,8 +174,6 @@ export function runRemoteSessions(hosts, argv = process.argv, opts = {}) {
|
|
|
286
174
|
writeRemoteCache(host, forwarded, res.stdout ?? '');
|
|
287
175
|
break;
|
|
288
176
|
case 'unreachable':
|
|
289
|
-
// Served-from-cache counts as answered (degraded, but with data + a clear
|
|
290
|
-
// banner), so it does not increment failures. No cache → a real failure.
|
|
291
177
|
if (!replayRemoteCache(host, forwarded)) {
|
|
292
178
|
failures++;
|
|
293
179
|
console.error(formatUnreachable(host));
|
|
@@ -298,8 +184,6 @@ export function runRemoteSessions(hosts, argv = process.argv, opts = {}) {
|
|
|
298
184
|
console.error(chalk.red(`${host}: ${res.error?.message ?? 'failed to launch ssh'}`));
|
|
299
185
|
break;
|
|
300
186
|
case 'query-failed':
|
|
301
|
-
// The remote ran but its query exited non-zero — surface its own output
|
|
302
|
-
// and exit code; never mask a genuine error with stale cache.
|
|
303
187
|
failures++;
|
|
304
188
|
if (res.stdout)
|
|
305
189
|
process.stdout.write(res.stdout);
|