@phnx-labs/agents-cli 1.22.120 → 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 +227 -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 +17 -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
|
@@ -10,9 +10,8 @@ import { formatNoHealthyAccountError, matchAccountCandidate, pickBalancedCandida
|
|
|
10
10
|
import { collectRunCandidatesForRun } from '../accounting/account-pool-collect.js';
|
|
11
11
|
import { getVersionHomePath, resolveManagedInstallation } from '../installations/store.js';
|
|
12
12
|
import { readSessionContent } from './db.js';
|
|
13
|
-
import { parseOpenCode, splitSessionFilePath } from '
|
|
13
|
+
import { parseOpenCode, splitSessionFilePath } from '@phnx-labs/sessions-cli/reader';
|
|
14
14
|
const RESUMABLE_SESSION_AGENTS = new Set(['claude', 'codex', 'muse', 'opencode']);
|
|
15
|
-
/** One capability boundary for every surface that advertises faithful Resume. */
|
|
16
15
|
export function sessionAgentSupportsResume(agent) {
|
|
17
16
|
return RESUMABLE_SESSION_AGENTS.has(agent);
|
|
18
17
|
}
|
|
@@ -22,17 +21,14 @@ export class SessionRecoveryError extends Error {
|
|
|
22
21
|
this.name = 'SessionRecoveryError';
|
|
23
22
|
}
|
|
24
23
|
}
|
|
25
|
-
/** Canonical origin-device label for every recovery consumer. */
|
|
26
24
|
export function sessionOriginDevice(session, self = machineId()) {
|
|
27
25
|
return normalizeHost(session.machine ?? self);
|
|
28
26
|
}
|
|
29
|
-
/** The peer that must execute recovery, or undefined when this is the origin. */
|
|
30
27
|
export function sessionRecoveryPeer(session, selfCheck = isSelfHost) {
|
|
31
28
|
if (!session.machine || selfCheck(session.machine))
|
|
32
29
|
return undefined;
|
|
33
30
|
return normalizeHost(session.machine);
|
|
34
31
|
}
|
|
35
|
-
/** Whether an explicit placement names the session's origin device. */
|
|
36
32
|
export function sessionRecoveryDestinationMatches(session, requestedHost, self = machineId()) {
|
|
37
33
|
const requested = normalizeHost(requestedHost.split('@').pop() || requestedHost);
|
|
38
34
|
return requested === sessionOriginDevice(session, self);
|
|
@@ -75,15 +71,6 @@ function existingDirectory(dir) {
|
|
|
75
71
|
return undefined;
|
|
76
72
|
}
|
|
77
73
|
}
|
|
78
|
-
/**
|
|
79
|
-
* Realpath of `filePath` when it is genuinely reachable from `homeRoot` (or
|
|
80
|
-
* that root's agent config subdir), else `null`. The one place transcript
|
|
81
|
-
* ownership is decided — reused by native-resume inspection, account
|
|
82
|
-
* attribution, and disambiguation between several accounts sharing one
|
|
83
|
-
* managed binary. Retained trash/backup transcripts are intentionally
|
|
84
|
-
* rejected: they remain readable by `/continue`, but a home must not claim to
|
|
85
|
-
* natively own a transcript it does not.
|
|
86
|
-
*/
|
|
87
74
|
function resolveOwnedTranscriptRealpath(filePath, homeRoot, agent) {
|
|
88
75
|
let realFile;
|
|
89
76
|
try {
|
|
@@ -108,7 +95,6 @@ function resolveOwnedTranscriptRealpath(filePath, homeRoot, agent) {
|
|
|
108
95
|
function transcriptOwnedByHome(filePath, homeRoot, agent) {
|
|
109
96
|
return resolveOwnedTranscriptRealpath(filePath, homeRoot, agent) !== null;
|
|
110
97
|
}
|
|
111
|
-
/** History filtering uses login identity, never an organization quota key. */
|
|
112
98
|
export function sessionMatchesAccount(session, account, home) {
|
|
113
99
|
if (account.kind === 'native' && session.agent !== account.agent)
|
|
114
100
|
return false;
|
|
@@ -123,18 +109,9 @@ export function sessionMatchesAccount(session, account, home) {
|
|
|
123
109
|
function candidateAccountId(candidate) {
|
|
124
110
|
return candidate.providerAccountId ?? candidate.nativeAccountId ?? (candidate.fromSlot && candidate.slotDir ? path.basename(candidate.slotDir) : undefined);
|
|
125
111
|
}
|
|
126
|
-
/** The actual native context root for a candidate: its account slot dir when it has one, else the managed version home. */
|
|
127
112
|
function candidateHome(candidate) {
|
|
128
113
|
return candidate.slotDir || getVersionHomePath(candidate.agent, candidate.version);
|
|
129
114
|
}
|
|
130
|
-
/**
|
|
131
|
-
* Whether `candidate` is the proven native owner of `session`'s transcript.
|
|
132
|
-
* A provider (injected credential) candidate never qualifies: it has no
|
|
133
|
-
* isolated context of its own, so a transcript sitting in the version home it
|
|
134
|
-
* happens to ride in is not evidence it produced that transcript (the exact
|
|
135
|
-
* "current credentials in an old home as historical proof" mistake this must
|
|
136
|
-
* not repeat).
|
|
137
|
-
*/
|
|
138
115
|
function candidateOwnsTranscript(candidate, session) {
|
|
139
116
|
if (candidate.providerAccount && !session.accountId)
|
|
140
117
|
return false;
|
|
@@ -144,7 +121,6 @@ function candidateOwnsTranscript(candidate, session) {
|
|
|
144
121
|
return session.accountId === acctId;
|
|
145
122
|
return transcriptOwnedByHome(session.filePath, home, candidate.agent);
|
|
146
123
|
}
|
|
147
|
-
/** Stored login identity wins; otherwise require actual native context ownership. */
|
|
148
124
|
function pickOriginCandidate(session, candidates) {
|
|
149
125
|
if (session.accountId)
|
|
150
126
|
return candidates.find(candidate => candidateAccountId(candidate) === session.accountId);
|
|
@@ -152,9 +128,6 @@ function pickOriginCandidate(session, candidates) {
|
|
|
152
128
|
const owners = native.filter(candidate => candidateOwnsTranscript(candidate, session));
|
|
153
129
|
return owners.length === 1 ? owners[0] : undefined;
|
|
154
130
|
}
|
|
155
|
-
/** Read the launch cwd Claude used to choose its projects/<cwd-key> directory.
|
|
156
|
-
* Claude can record attachment envelopes before the first user turn, and those
|
|
157
|
-
* envelopes retain the actual launch cwd even after the session changes dirs. */
|
|
158
131
|
function readClaudeLaunchCwd(filePath) {
|
|
159
132
|
const maxBytes = 2 * 1024 * 1024;
|
|
160
133
|
let fd;
|
|
@@ -179,7 +152,6 @@ function readClaudeLaunchCwd(filePath) {
|
|
|
179
152
|
return parsed.cwd;
|
|
180
153
|
}
|
|
181
154
|
catch {
|
|
182
|
-
// A malformed line or vanished cwd cannot identify a usable native home.
|
|
183
155
|
}
|
|
184
156
|
}
|
|
185
157
|
}
|
|
@@ -188,13 +160,6 @@ function readClaudeLaunchCwd(filePath) {
|
|
|
188
160
|
}
|
|
189
161
|
return undefined;
|
|
190
162
|
}
|
|
191
|
-
/**
|
|
192
|
-
* Prove that the indexed transcript is reachable from the exact active
|
|
193
|
-
* native context root that would receive native resume (a version home, or
|
|
194
|
-
* an account slot dir). Retained trash/backup transcripts are intentionally
|
|
195
|
-
* rejected here: they remain readable by `/continue`, but a new installation
|
|
196
|
-
* or account slot must not native-resume an empty isolated home.
|
|
197
|
-
*/
|
|
198
163
|
export function inspectNativeResumeSession(session, versionHome) {
|
|
199
164
|
if (session.agent === 'opencode' && (!fs.existsSync(splitSessionFilePath(session.filePath).container) || parseOpenCode(session.filePath).length === 0)) {
|
|
200
165
|
return { available: false, reason: 'the native database has no readable conversation for this session' };
|
|
@@ -266,7 +231,6 @@ function resolveExplicitAccountRecovery(session, candidates, agent, device, supp
|
|
|
266
231
|
: `explicit account '${requested}' differs from the session's recorded origin; continuing on ${matched.accountLabel}${modelSuffix} requires interactive confirmation before replay`,
|
|
267
232
|
};
|
|
268
233
|
}
|
|
269
|
-
/** Keep the native conversation where possible; replay remains a separate choice. */
|
|
270
234
|
export function resolveSessionRecoveryFromCandidates(session, candidates, supportsNative = nativeResume, nativeInspection, options = {}) {
|
|
271
235
|
const agent = runnableSessionAgent(session);
|
|
272
236
|
const device = sessionOriginDevice(session);
|
|
@@ -275,15 +239,6 @@ export function resolveSessionRecoveryFromCandidates(session, candidates, suppor
|
|
|
275
239
|
}
|
|
276
240
|
const source = pickOriginCandidate(session, candidates);
|
|
277
241
|
const sourceReady = source ? readinessFromCandidate(source, undefined, options.model ?? session.model).ready : false;
|
|
278
|
-
// Native-first with account rotation (PHNX-3626). When the origin login is
|
|
279
|
-
// usage/rate/session-LIMITED (not signed-out or revoked — those need a login,
|
|
280
|
-
// not a rotation, so they keep going to /continue per SES-39) but its native
|
|
281
|
-
// context is installed, native-resume-capable, and still owns the indexed
|
|
282
|
-
// transcript, keep resume NATIVE by rotating to a healthy INJECTABLE (provider)
|
|
283
|
-
// account in that SAME context — rather than dropping to /continue on a
|
|
284
|
-
// different version. Only a provider token/key qualifies: a native login
|
|
285
|
-
// lives in its own isolated context and cannot be forwarded, so it could
|
|
286
|
-
// never authenticate a resume that must read the origin's transcript (see §11).
|
|
287
242
|
const originReadiness = source ? readinessFromCandidate(source, undefined, options.model ?? session.model) : null;
|
|
288
243
|
const originLimited = !!originReadiness && !originReadiness.ready
|
|
289
244
|
&& (originReadiness.reason === 'rate_limited' || originReadiness.reason === 'out_of_credits' || originReadiness.reason === 'model_limited');
|
|
@@ -294,7 +249,6 @@ export function resolveSessionRecoveryFromCandidates(session, candidates, suppor
|
|
|
294
249
|
const rotated = pickBalancedCandidate(candidates.filter((c) => c.providerAccount && c.accountKey !== source.accountKey), undefined, options.model ?? session.model);
|
|
295
250
|
const account = rotated ? recoveryAccountFromCandidate(rotated.picked) : undefined;
|
|
296
251
|
if (account) {
|
|
297
|
-
// `originLimited` guarantees the origin is unhealthy with a limit reason.
|
|
298
252
|
const why = originReadiness.ready ? 'limited' : originReadiness.reason;
|
|
299
253
|
return {
|
|
300
254
|
mode: 'native',
|
|
@@ -310,10 +264,6 @@ export function resolveSessionRecoveryFromCandidates(session, candidates, suppor
|
|
|
310
264
|
}
|
|
311
265
|
}
|
|
312
266
|
}
|
|
313
|
-
// An exact healthy origin is deterministic: preserve its isolated context.
|
|
314
|
-
// If native resume is unavailable for that harness, /continue still
|
|
315
|
-
// launches there. Only an unusable/missing/ambiguous origin enters balanced
|
|
316
|
-
// account selection.
|
|
317
267
|
const selection = sourceReady
|
|
318
268
|
? { picked: source }
|
|
319
269
|
: pickBalancedCandidate(candidates, undefined, options.model ?? session.model);
|
|
@@ -324,14 +274,6 @@ export function resolveSessionRecoveryFromCandidates(session, candidates, suppor
|
|
|
324
274
|
const version = options.executableVersion ?? selection.picked.version;
|
|
325
275
|
const account = recoveryAccountFromCandidate(selection.picked);
|
|
326
276
|
const continueWith = account ? `healthy ${account.label}` : `the selected ${agent} account`;
|
|
327
|
-
// Native resume without an injected RecoveryAccount is valid only for the
|
|
328
|
-
// exact healthy origin login — when sourceReady, `selection.picked` IS
|
|
329
|
-
// `source` by construction above, so no separate version comparison is
|
|
330
|
-
// needed (and none would be safe: an accountId-matched origin can carry a
|
|
331
|
-
// version different from the session's recorded one after a vendor
|
|
332
|
-
// relabel). A balanced same-version provider selected for a signed-out/
|
|
333
|
-
// revoked origin must stay on /continue; otherwise we would open the origin
|
|
334
|
-
// context with no usable credential and fail (or fork state).
|
|
335
277
|
if (sourceReady && supportsNative(agent, version)) {
|
|
336
278
|
const home = candidateHome(selection.picked);
|
|
337
279
|
const inspection = nativeInspection ?? inspectNativeResumeSession(session, home);
|
|
@@ -365,13 +307,6 @@ export function resolveSessionRecoveryFromCandidates(session, candidates, suppor
|
|
|
365
307
|
reason: `${sourceReason(session, source, options.model ?? session.model)}; continuing with ${continueWith}`,
|
|
366
308
|
};
|
|
367
309
|
}
|
|
368
|
-
/**
|
|
369
|
-
* Whether recovery has conversation content to replay for this session: a
|
|
370
|
-
* non-empty transcript file, or archived content in the index for a row this
|
|
371
|
-
* device owns. A mirror digest or live registry entry is not conversation
|
|
372
|
-
* content. The picker consults this before spending a terminal tab on a pick
|
|
373
|
-
* that {@link assertRecoverableTranscript} would refuse one hop later.
|
|
374
|
-
*/
|
|
375
310
|
export function sessionTranscriptReadable(session) {
|
|
376
311
|
const file = splitSessionFilePath(session.filePath).container;
|
|
377
312
|
try {
|
|
@@ -379,25 +314,15 @@ export function sessionTranscriptReadable(session) {
|
|
|
379
314
|
&& (session.agent !== 'opencode' || parseOpenCode(session.filePath).length > 0))
|
|
380
315
|
return true;
|
|
381
316
|
}
|
|
382
|
-
catch {
|
|
317
|
+
catch { }
|
|
383
318
|
return !session.mirrorSyncedAt && !session.mirrorSource && Boolean(readSessionContent(session.id)?.trim());
|
|
384
319
|
}
|
|
385
|
-
/** Refuse recovery for a session with nothing to replay (PHNX-4080). */
|
|
386
320
|
export function assertRecoverableTranscript(session) {
|
|
387
321
|
if (sessionTranscriptReadable(session))
|
|
388
322
|
return;
|
|
389
323
|
throw new SessionRecoveryError(`Session ${session.shortId} has no readable transcript after checking its account homes and index. ` +
|
|
390
324
|
`No agent was started. Start a new conversation with: agents run ${session.agent}`);
|
|
391
325
|
}
|
|
392
|
-
/**
|
|
393
|
-
* Resolve recovery for a durable session, reading the live account pool.
|
|
394
|
-
*
|
|
395
|
-
* Uses {@link collectRunCandidatesForRun} (native version-home logins PLUS
|
|
396
|
-
* durable provider accounts, RUSH-3182) rather than the native-only
|
|
397
|
-
* {@link collectRunCandidates}, so an origin-account limit can rotate to a
|
|
398
|
-
* healthy provider account and stay NATIVE (PHNX-3626). `collect` is injectable
|
|
399
|
-
* for tests and for callers that must stay native-only.
|
|
400
|
-
*/
|
|
401
326
|
export async function resolveSessionRecovery(session, collect = collectRunCandidatesForRun, options = {}) {
|
|
402
327
|
const agent = runnableSessionAgent(session);
|
|
403
328
|
const { hydrateSessionTranscript } = await import('./discover.js');
|
|
@@ -410,9 +335,6 @@ export async function resolveSessionRecovery(session, collect = collectRunCandid
|
|
|
410
335
|
...options, executableVersion: installation.label,
|
|
411
336
|
});
|
|
412
337
|
}
|
|
413
|
-
/** Stable self-command used by focus, resume, and attach. The owning device runs
|
|
414
|
-
* the recovery resolver above; callers must not native-resume another version's
|
|
415
|
-
* isolated home themselves. */
|
|
416
338
|
export function sessionRecoveryRunArgs(session) {
|
|
417
339
|
return ['run', 'auto', '--resume', session.id, '--interactive'];
|
|
418
340
|
}
|
|
@@ -1,66 +1,24 @@
|
|
|
1
1
|
import type { DeviceProfile } from '../../devices/registry.js';
|
|
2
|
-
/** First reconnect delay after a failed subscription. */
|
|
3
2
|
export declare const PEER_BACKOFF_BASE_MS = 2000;
|
|
4
|
-
/** Ceiling the doubling delay saturates at. */
|
|
5
3
|
export declare const PEER_BACKOFF_CAP_MS = 60000;
|
|
6
|
-
/** Consecutive failed spawns before the peer is parked. */
|
|
7
4
|
export declare const PEER_PARK_AFTER_FAILURES = 3;
|
|
8
|
-
/**
|
|
9
|
-
* Consecutive failed spawns before the peer is RETIRED — the capped 60 s ladder
|
|
10
|
-
* gives way to {@link PEER_RETIRED_RECHECK_MS}.
|
|
11
|
-
*
|
|
12
|
-
* The cap alone bounds the delay but not the total work: a box that is off for a
|
|
13
|
-
* weekend was dialed every 60 s for two days, ~2,880 ssh children per watcher
|
|
14
|
-
* per peer, each one already known to fail. Ten consecutive failures is well
|
|
15
|
-
* past any transient network event, so past that point the peer is treated as
|
|
16
|
-
* genuinely absent and re-dialed on the slow cadence instead.
|
|
17
|
-
*/
|
|
18
5
|
export declare const PEER_RETIRE_AFTER_FAILURES = 10;
|
|
19
|
-
/**
|
|
20
|
-
* Re-dial cadence for a retired peer. Still bounded rather than never, because a
|
|
21
|
-
* box can come back without anything touching the device registry — waiting
|
|
22
|
-
* only on a registry change would leave it unreachable until an operator acted.
|
|
23
|
-
*/
|
|
24
6
|
export declare const PEER_RETIRED_RECHECK_MS: number;
|
|
25
|
-
/**
|
|
26
|
-
* Reconnect delay for `failures` consecutive failed spawns: 0 for a healthy
|
|
27
|
-
* peer, then {@link PEER_BACKOFF_BASE_MS} doubling to {@link PEER_BACKOFF_CAP_MS},
|
|
28
|
-
* and {@link PEER_RETIRED_RECHECK_MS} once the peer is retired.
|
|
29
|
-
*/
|
|
30
7
|
export declare function peerBackoffDelayMs(failures: number, base?: number, cap?: number, retireAfter?: number, retiredMs?: number): number;
|
|
31
8
|
interface PeerStreamOptions {
|
|
32
|
-
/** The device to subscribe to. */
|
|
33
9
|
device: DeviceProfile;
|
|
34
|
-
/** Remote command to run over ssh, already shell-quoted for the peer's OS. */
|
|
35
10
|
command: string;
|
|
36
11
|
signal: AbortSignal;
|
|
37
|
-
/**
|
|
38
|
-
* One line of the peer's stdout. Return `true` when the line was a valid
|
|
39
|
-
* protocol event — that is the health signal that resets the backoff.
|
|
40
|
-
*/
|
|
41
12
|
onLine: (line: string) => boolean;
|
|
42
|
-
/** Report the peer as unavailable, with the captured reason. */
|
|
43
13
|
onUnavailable: (reason: string) => void;
|
|
44
|
-
/** Override the first backoff delay (tests). */
|
|
45
14
|
backoffBaseMs?: number;
|
|
46
|
-
/** Override the backoff ceiling (tests). */
|
|
47
15
|
backoffCapMs?: number;
|
|
48
|
-
/** Override the park threshold (tests). */
|
|
49
16
|
parkAfterFailures?: number;
|
|
50
|
-
/** Override the retire threshold (tests). */
|
|
51
17
|
retireAfterFailures?: number;
|
|
52
|
-
/** Override the retired re-dial cadence (tests). */
|
|
53
18
|
retiredRecheckMs?: number;
|
|
54
|
-
/** Override the ssh binary (tests). */
|
|
55
19
|
sshBin?: string;
|
|
56
|
-
/** Override the parked peer's registry re-check cadence (tests). */
|
|
57
20
|
registryPollMs?: number;
|
|
58
|
-
/** Override the registry file a parked peer waits on (tests). */
|
|
59
21
|
registryPath?: string;
|
|
60
22
|
}
|
|
61
|
-
/**
|
|
62
|
-
* Hold one peer subscription open for the life of the signal, reconnecting with
|
|
63
|
-
* backoff. Resolves when the signal aborts or the peer cannot be addressed.
|
|
64
|
-
*/
|
|
65
23
|
export declare function streamFromPeer(options: PeerStreamOptions): Promise<void>;
|
|
66
24
|
export {};
|
|
@@ -1,68 +1,16 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* One peer's `--local` watch subscription, with connection hygiene.
|
|
3
|
-
*
|
|
4
|
-
* Both fleet fan-outs (`watchFleetSessions`, `watchFleetFeed`) subscribe to
|
|
5
|
-
* every dialable device with a long-lived `ssh <peer> agents … watch --json
|
|
6
|
-
* --local`. Both used to respawn that child on a bare 2 s timer with the
|
|
7
|
-
* child's stderr set to `'ignore'`, so an offline peer — and `isDialableDevice`
|
|
8
|
-
* deliberately never excludes one — got a fresh ssh every ConnectTimeout + 2 s
|
|
9
|
-
* for the whole life of the watcher, with the reason discarded. That is the
|
|
10
|
-
* ssh-child churn the 2026-09-03 incident reported.
|
|
11
|
-
*
|
|
12
|
-
* This module is the single implementation both fan-outs call:
|
|
13
|
-
*
|
|
14
|
-
* - exponential backoff per peer, {@link PEER_BACKOFF_BASE_MS} doubling to
|
|
15
|
-
* {@link PEER_BACKOFF_CAP_MS}, reset the moment the peer delivers a healthy
|
|
16
|
-
* protocol event;
|
|
17
|
-
* - the child's stderr captured (bounded to {@link PEER_STDERR_BYTES}) and
|
|
18
|
-
* surfaced as the `unavailable` reason instead of being thrown away;
|
|
19
|
-
* - a peer that fails {@link PEER_PARK_AFTER_FAILURES} spawns in a row parked —
|
|
20
|
-
* it stops the reconnect cycle and re-dials only when the device registry
|
|
21
|
-
* changes or the capped backoff elapses;
|
|
22
|
-
* - a peer that fails {@link PEER_RETIRE_AFTER_FAILURES} in a row RETIRED — the
|
|
23
|
-
* capped 60 s ladder is itself unbounded in total work, so past that point the
|
|
24
|
-
* re-dial drops to {@link PEER_RETIRED_RECHECK_MS};
|
|
25
|
-
* - abort listeners removed per iteration, so a watcher open for hours does not
|
|
26
|
-
* accumulate one per reconnect on the caller's AbortSignal.
|
|
27
|
-
*/
|
|
28
1
|
import { spawn } from 'node:child_process';
|
|
29
2
|
import * as fs from 'node:fs';
|
|
30
3
|
import { createInterface } from 'node:readline';
|
|
31
4
|
import { deviceIdentityArgs, sshTargetFor } from '../../devices/connect.js';
|
|
32
5
|
import { SSH_OPTS, controlOpts } from '../../ssh-exec.js';
|
|
33
6
|
import { getDevicesRegistryPath } from '../../state.js';
|
|
34
|
-
/** First reconnect delay after a failed subscription. */
|
|
35
7
|
export const PEER_BACKOFF_BASE_MS = 2_000;
|
|
36
|
-
/** Ceiling the doubling delay saturates at. */
|
|
37
8
|
export const PEER_BACKOFF_CAP_MS = 60_000;
|
|
38
|
-
/** Consecutive failed spawns before the peer is parked. */
|
|
39
9
|
export const PEER_PARK_AFTER_FAILURES = 3;
|
|
40
|
-
/**
|
|
41
|
-
* Consecutive failed spawns before the peer is RETIRED — the capped 60 s ladder
|
|
42
|
-
* gives way to {@link PEER_RETIRED_RECHECK_MS}.
|
|
43
|
-
*
|
|
44
|
-
* The cap alone bounds the delay but not the total work: a box that is off for a
|
|
45
|
-
* weekend was dialed every 60 s for two days, ~2,880 ssh children per watcher
|
|
46
|
-
* per peer, each one already known to fail. Ten consecutive failures is well
|
|
47
|
-
* past any transient network event, so past that point the peer is treated as
|
|
48
|
-
* genuinely absent and re-dialed on the slow cadence instead.
|
|
49
|
-
*/
|
|
50
10
|
export const PEER_RETIRE_AFTER_FAILURES = 10;
|
|
51
|
-
/**
|
|
52
|
-
* Re-dial cadence for a retired peer. Still bounded rather than never, because a
|
|
53
|
-
* box can come back without anything touching the device registry — waiting
|
|
54
|
-
* only on a registry change would leave it unreachable until an operator acted.
|
|
55
|
-
*/
|
|
56
11
|
export const PEER_RETIRED_RECHECK_MS = 15 * 60_000;
|
|
57
|
-
/** Bytes of a peer's stderr retained for the `unavailable` reason. */
|
|
58
12
|
const PEER_STDERR_BYTES = 2_048;
|
|
59
|
-
/** How often a parked peer re-checks the device registry for a refresh. */
|
|
60
13
|
const PEER_REGISTRY_POLL_MS = 5_000;
|
|
61
|
-
/**
|
|
62
|
-
* Reconnect delay for `failures` consecutive failed spawns: 0 for a healthy
|
|
63
|
-
* peer, then {@link PEER_BACKOFF_BASE_MS} doubling to {@link PEER_BACKOFF_CAP_MS},
|
|
64
|
-
* and {@link PEER_RETIRED_RECHECK_MS} once the peer is retired.
|
|
65
|
-
*/
|
|
66
14
|
export function peerBackoffDelayMs(failures, base = PEER_BACKOFF_BASE_MS, cap = PEER_BACKOFF_CAP_MS, retireAfter = PEER_RETIRE_AFTER_FAILURES, retiredMs = PEER_RETIRED_RECHECK_MS) {
|
|
67
15
|
if (failures <= 0)
|
|
68
16
|
return 0;
|
|
@@ -70,17 +18,14 @@ export function peerBackoffDelayMs(failures, base = PEER_BACKOFF_BASE_MS, cap =
|
|
|
70
18
|
return retiredMs;
|
|
71
19
|
return Math.min(cap, base * 2 ** (failures - 1));
|
|
72
20
|
}
|
|
73
|
-
/** Bounded tail of a child's stderr, kept for the unavailable reason. */
|
|
74
21
|
function stderrTail(chunks, next, limit) {
|
|
75
22
|
const joined = chunks + next;
|
|
76
23
|
return joined.length > limit ? joined.slice(joined.length - limit) : joined;
|
|
77
24
|
}
|
|
78
|
-
/** Collapse captured stderr to one quotable line. */
|
|
79
25
|
function reasonFor(exit, stderr) {
|
|
80
26
|
const detail = stderr.split('\n').map((line) => line.trim()).filter(Boolean).pop();
|
|
81
27
|
return detail ? `${exit}: ${detail}` : exit;
|
|
82
28
|
}
|
|
83
|
-
/** Await a delay, a device-registry change, or abort — whichever comes first. */
|
|
84
29
|
async function parkedWait(options, delayMs) {
|
|
85
30
|
const registry = options.registryPath ?? getDevicesRegistryPath();
|
|
86
31
|
const pollMs = options.registryPollMs ?? PEER_REGISTRY_POLL_MS;
|
|
@@ -111,10 +56,6 @@ async function parkedWait(options, delayMs) {
|
|
|
111
56
|
options.signal.addEventListener('abort', finish, { once: true });
|
|
112
57
|
});
|
|
113
58
|
}
|
|
114
|
-
/**
|
|
115
|
-
* Hold one peer subscription open for the life of the signal, reconnecting with
|
|
116
|
-
* backoff. Resolves when the signal aborts or the peer cannot be addressed.
|
|
117
|
-
*/
|
|
118
59
|
export async function streamFromPeer(options) {
|
|
119
60
|
const parkAfter = options.parkAfterFailures ?? PEER_PARK_AFTER_FAILURES;
|
|
120
61
|
let failures = 0;
|
|
@@ -124,7 +65,6 @@ export async function streamFromPeer(options) {
|
|
|
124
65
|
target = sshTargetFor(options.device);
|
|
125
66
|
}
|
|
126
67
|
catch (error) {
|
|
127
|
-
// No address at all is not a transient failure: retrying cannot fix it.
|
|
128
68
|
options.onUnavailable(error instanceof Error ? error.message : String(error));
|
|
129
69
|
return;
|
|
130
70
|
}
|
|
@@ -138,8 +78,6 @@ export async function streamFromPeer(options) {
|
|
|
138
78
|
child.stderr?.on('data', (chunk) => { stderr = stderrTail(stderr, chunk, PEER_STDERR_BYTES); });
|
|
139
79
|
const reader = createInterface({ input: child.stdout });
|
|
140
80
|
reader.on('line', (line) => {
|
|
141
|
-
// A peer that is delivering protocol is healthy, so the next disconnect
|
|
142
|
-
// starts the backoff over rather than inheriting an old failure streak.
|
|
143
81
|
if (options.onLine(line))
|
|
144
82
|
failures = 0;
|
|
145
83
|
});
|
|
@@ -148,8 +86,6 @@ export async function streamFromPeer(options) {
|
|
|
148
86
|
child.once('close', resolve);
|
|
149
87
|
});
|
|
150
88
|
reader.close();
|
|
151
|
-
// Removed per iteration: a watcher open for hours would otherwise leak one
|
|
152
|
-
// listener per reconnect onto the caller's signal.
|
|
153
89
|
options.signal.removeEventListener('abort', stop);
|
|
154
90
|
if (options.signal.aborted)
|
|
155
91
|
return;
|
|
@@ -3,11 +3,5 @@ interface RemotePullResult {
|
|
|
3
3
|
bundles: ParsedBundle[];
|
|
4
4
|
errors: string[];
|
|
5
5
|
}
|
|
6
|
-
/**
|
|
7
|
-
* Run `agents sessions export …exportArgs --stdout` on each host and parse the
|
|
8
|
-
* streamed bundle. A host that fails (unreachable, remote error, bad output) is
|
|
9
|
-
* collected in `errors` and skipped — one asleep peer never aborts the pull.
|
|
10
|
-
* `exportArgs` must NOT contain --device (the remote export runs for itself only).
|
|
11
|
-
*/
|
|
12
6
|
export declare function pullBundlesFromHosts(hosts: string[], exportArgs: string[]): Promise<RemotePullResult>;
|
|
13
7
|
export {};
|
|
@@ -1,25 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Multi-device session transfer over the EXISTING SSH fleet transport
|
|
3
|
-
* (RUSH-1712) — no R2, no daemon. `agents sessions export --device <h>` and
|
|
4
|
-
* `agents sessions import --from-host <h>` both run `agents sessions export
|
|
5
|
-
* … --stdout` ON the peer and stream the bundle back over the same SSH path the
|
|
6
|
-
* cross-machine listing already uses (resolveExplicitTargets + ssh-exec), then
|
|
7
|
-
* either write it (export) or import it (import) locally.
|
|
8
|
-
*
|
|
9
|
-
* This deliberately reuses ssh-exec / resolve-target rather than adding a second
|
|
10
|
-
* transport: the raw form `agents ssh boxA 'agents sessions export --stdout' |
|
|
11
|
-
* agents sessions import -` works with plain export/import; this module is just
|
|
12
|
-
* the one-shot wrapper around it.
|
|
13
|
-
*/
|
|
14
1
|
import chalk from 'chalk';
|
|
15
2
|
import { sshExec } from '../../ssh-exec.js';
|
|
16
3
|
import { shellQuote } from '../../ssh-exec.js';
|
|
17
4
|
import { resolveExplicitTargets } from '../../devices/resolve-target.js';
|
|
18
5
|
import { remoteShellFor, buildWindowsAgentsCommand } from '../../hosts/remote-cmd.js';
|
|
19
6
|
import { parseBundle } from '../bundle.js';
|
|
20
|
-
/** Remote export can traverse many sessions; give it a generous ceiling. */
|
|
21
7
|
const REMOTE_EXPORT_TIMEOUT_MS = 300_000;
|
|
22
|
-
/** Build `agents <args>` for the peer's login shell (bash or PowerShell). */
|
|
23
8
|
function remoteAgentsCommand(args, os) {
|
|
24
9
|
if (remoteShellFor(os) === 'powershell') {
|
|
25
10
|
return buildWindowsAgentsCommand({ args });
|
|
@@ -27,12 +12,6 @@ function remoteAgentsCommand(args, os) {
|
|
|
27
12
|
const inner = ['agents', ...args].map((t, i) => (i === 0 ? t : shellQuote(t))).join(' ');
|
|
28
13
|
return `bash -lc ${shellQuote(inner)}`;
|
|
29
14
|
}
|
|
30
|
-
/**
|
|
31
|
-
* Run `agents sessions export …exportArgs --stdout` on each host and parse the
|
|
32
|
-
* streamed bundle. A host that fails (unreachable, remote error, bad output) is
|
|
33
|
-
* collected in `errors` and skipped — one asleep peer never aborts the pull.
|
|
34
|
-
* `exportArgs` must NOT contain --device (the remote export runs for itself only).
|
|
35
|
-
*/
|
|
36
15
|
export async function pullBundlesFromHosts(hosts, exportArgs) {
|
|
37
16
|
const targets = await resolveExplicitTargets(hosts);
|
|
38
17
|
const bundles = [];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type DeviceProfile } from '../../devices/registry.js';
|
|
2
2
|
import { type RemoteAgentsJsonParseResult } from '../../remote-agents-json.js';
|
|
3
|
-
import type { SessionMeta } from '
|
|
3
|
+
import type { SessionMeta } from '@phnx-labs/sessions-cli/reader';
|
|
4
4
|
import { type ToolProgramCountEnvelope, type ToolSearchEnvelope } from '../tool-index.js';
|
|
5
5
|
export { REMOTE_STDOUT_MAX_BYTES, RemoteUtf8Accumulator } from '../../ssh-exec.js';
|
|
6
6
|
export declare const REMOTE_TOOL_AGGREGATE_MAX_BYTES: number;
|
|
@@ -8,33 +8,14 @@ interface RemoteToolByteBudget {
|
|
|
8
8
|
remainingBytes: number;
|
|
9
9
|
exhausted: boolean;
|
|
10
10
|
}
|
|
11
|
-
/** Claim received bytes against one fleet-query budget before retaining them. */
|
|
12
11
|
export declare function consumeRemoteToolByteBudget(budget: RemoteToolByteBudget, bytes: number): boolean;
|
|
13
|
-
/** Charge sanitized, machine-stamped evidence because redaction may expand it. */
|
|
14
12
|
export declare function consumeParsedRemoteToolSearchBudget(budget: RemoteToolByteBudget, envelope: ToolSearchEnvelope): boolean;
|
|
15
|
-
/**
|
|
16
|
-
* The command run on each peer: answer for itself, as JSON, without recursing.
|
|
17
|
-
* `forwardedArgs` carry the caller's own query/filters (already including the
|
|
18
|
-
* leading `sessions` and a `--json`) so each peer returns a comparable slice.
|
|
19
|
-
* A Windows peer gets a PowerShell invocation (ssh lands in cmd.exe/PowerShell
|
|
20
|
-
* there, where `bash -lc` is not a command); every other OS keeps `bash -lc`.
|
|
21
|
-
*/
|
|
22
13
|
export declare function remoteListCommand(forwardedArgs: string[], os?: string): string;
|
|
23
|
-
/**
|
|
24
|
-
* Parse a peer's `sessions --json` stdout into `SessionMeta[]`, tagging each
|
|
25
|
-
* with `machine`. Defensive against version skew / partial output: non-JSON or
|
|
26
|
-
* a non-array yields `[]`, and non-object entries are dropped rather than
|
|
27
|
-
* throwing. The `machine` we dialed always wins over any value the peer set on
|
|
28
|
-
* its own rows, so grouping keys off the computer we asked. Exported for unit
|
|
29
|
-
* testing without a live tailnet.
|
|
30
|
-
*/
|
|
31
14
|
export declare function parseRemoteList(stdout: string, machine: string): SessionMeta[];
|
|
32
15
|
export declare function parseRemoteListPayload(stdout: string, machine: string, safeResolver?: boolean): {
|
|
33
16
|
items: SessionMeta[];
|
|
34
17
|
valid: boolean;
|
|
35
18
|
};
|
|
36
|
-
/** Run one remote `agents sessions … --json` and capture stdout. Resolves
|
|
37
|
-
* `{ code: null }` on spawn error or timeout (host treated as dead). */
|
|
38
19
|
export declare function sshCapture(target: string, remoteCmd: string, timeoutMs: number, aggregateBudget?: RemoteToolByteBudget, options?: {
|
|
39
20
|
multiplex?: boolean;
|
|
40
21
|
port?: number;
|
|
@@ -46,34 +27,12 @@ export declare function sshCapture(target: string, remoteCmd: string, timeoutMs:
|
|
|
46
27
|
}>;
|
|
47
28
|
interface RemoteListResult {
|
|
48
29
|
sessions: SessionMeta[];
|
|
49
|
-
/** How many peer machines we attempted to reach (drives the empty-fleet tip). */
|
|
50
30
|
deviceCount: number;
|
|
51
|
-
/**
|
|
52
|
-
* Peers that failed to answer, by display name. The stderr note above is
|
|
53
|
-
* enough for a printed listing, but the interactive browser repaints over it —
|
|
54
|
-
* so callers rendering a full-screen UI need the outcome as data to tell
|
|
55
|
-
* "that box is asleep" apart from "that box has no matching sessions".
|
|
56
|
-
*/
|
|
57
31
|
unreachable: string[];
|
|
58
32
|
}
|
|
59
|
-
/** Keep browse and tool-search fan-out on the same automatic peer set. */
|
|
60
33
|
export declare function isAutomaticSessionPeer(d: DeviceProfile, self: string): boolean;
|
|
61
|
-
/**
|
|
62
|
-
* Gather listing sessions from other machines. With an explicit `hosts` list
|
|
63
|
-
* (from `--device`), fan out to exactly those. Otherwise sweep the registered,
|
|
64
|
-
* online devices from `ag devices`, excluding this machine and any without an
|
|
65
|
-
* address. `forwardedArgs` are the caller's own sessions args (query + filters,
|
|
66
|
-
* already `--json`) so every peer returns the same slice this machine asked for.
|
|
67
|
-
*/
|
|
68
34
|
interface GatherRemoteListOptions {
|
|
69
|
-
/**
|
|
70
|
-
* Opt-in early-exit for a globally-unique id lookup (a full UUID): the first
|
|
71
|
-
* peer to return the matching row resolves the fan-out and cancels the rest.
|
|
72
|
-
* Omitted for browse/label/prefix sweeps, which must wait for every peer to
|
|
73
|
-
* know whether the match is unique or conflicting.
|
|
74
|
-
*/
|
|
75
35
|
isDefinitive?: (session: SessionMeta, machine: string) => boolean;
|
|
76
|
-
/** Per-peer deadline for slower indexed browse queries. */
|
|
77
36
|
timeoutMs?: number;
|
|
78
37
|
}
|
|
79
38
|
export declare function gatherRemoteList(forwardedArgs: string[], hosts?: string[], opts?: GatherRemoteListOptions): Promise<RemoteListResult>;
|
|
@@ -100,29 +59,11 @@ export declare function parseRemoteToolProgramCount(stdout: string, machine: str
|
|
|
100
59
|
}>;
|
|
101
60
|
export declare function gatherRemoteToolProgramCounts(forwardedArgs: string[], hosts: string[] | undefined, expectedProgram: string): Promise<RemoteToolProgramCountResult>;
|
|
102
61
|
export declare function parseRemoteToolSearch(stdout: string, machine: string, expectedClauses?: string[]): ToolSearchEnvelope | undefined;
|
|
103
|
-
/**
|
|
104
|
-
* Fleet sibling of {@link gatherRemoteList} for the versioned tool-search
|
|
105
|
-
* envelope. Each peer executes the same local-only query against its own
|
|
106
|
-
* SQLite index; only compact matches cross SSH.
|
|
107
|
-
*/
|
|
108
62
|
export declare function gatherRemoteToolSearch(forwardedArgs: string[], hosts?: string[], maxAggregateBytes?: number, expectedClauses?: string[]): Promise<RemoteToolSearchResult>;
|
|
109
|
-
/** Resolve a peer's SSH target (and OS) from the device registry by its
|
|
110
|
-
* normalized machine id — the same id the fan-out tags rows with. Returns
|
|
111
|
-
* undefined when no registered device with an address matches. */
|
|
112
63
|
export declare function resolvePeerTarget(machine: string): Promise<{
|
|
113
64
|
target: string;
|
|
114
65
|
os?: string;
|
|
115
66
|
} | undefined>;
|
|
116
|
-
/**
|
|
117
|
-
* Fetch one remote session's preview digest from its owning peer — the data
|
|
118
|
-
* behind the picker pane for a `_remote` row, whose transcript file this
|
|
119
|
-
* machine cannot parse. Runs the peer's own `agents sessions preview <id>
|
|
120
|
-
* --local --json` (the same envelope `agents sessions preview` already
|
|
121
|
-
* delegates to for a remote id) and returns its `preview` object, verbatim and
|
|
122
|
-
* UNSANITIZED — the caller owns scrubbing peer-supplied strings before any of
|
|
123
|
-
* them reach a TTY. Undefined on every failure: unregistered machine, SSH
|
|
124
|
-
* error, timeout, version-skewed peer with no `--json` preview envelope.
|
|
125
|
-
*/
|
|
126
67
|
export declare function fetchPeerPreviewDigest(sessionId: string, machine: string, timeoutMs?: number): Promise<unknown | undefined>;
|
|
127
68
|
export type PeerPreviewEnvelopeResult = {
|
|
128
69
|
ok: true;
|
|
@@ -131,58 +72,8 @@ export type PeerPreviewEnvelopeResult = {
|
|
|
131
72
|
ok: false;
|
|
132
73
|
reason: 'no-target' | 'unreachable' | 'invalid-json';
|
|
133
74
|
};
|
|
134
|
-
/**
|
|
135
|
-
* Fetch the FULL `agents sessions preview <id> --local --json` envelope
|
|
136
|
-
* (session/active/preview/error, not just the `.preview` slice
|
|
137
|
-
* {@link fetchPeerPreviewDigest} narrows to) from a session's owning peer in
|
|
138
|
-
* exactly ONE bounded {@link sshCapture} hop. This is the canonical exact
|
|
139
|
-
* ID+owner preview loader (PHNX-3999): the peer's own command already runs the
|
|
140
|
-
* owner-side bounded parsers/fold (`loadSessionPreviewDigest`) and existing
|
|
141
|
-
* redaction, so a caller that already knows the owning device needs no
|
|
142
|
-
* separate metadata round trip before this one — unlike the general fleet
|
|
143
|
-
* resolver, which fans out a `sessions <id> --json --all` metadata query first
|
|
144
|
-
* because it does NOT yet know which peer (if any) holds the id.
|
|
145
|
-
*/
|
|
146
75
|
export declare function fetchPeerPreviewEnvelope(sessionId: string, machine: string, timeoutMs?: number): Promise<PeerPreviewEnvelopeResult>;
|
|
147
|
-
/** Parse the JSON envelope returned by `sessions preview --json`. */
|
|
148
76
|
export declare function parsePeerPreviewDigest(parsed: unknown): unknown | undefined;
|
|
149
|
-
/**
|
|
150
|
-
* Run `agents <args>` ON a peer over SSH, attached to this terminal (inherited
|
|
151
|
-
* stdio). `args` is the full arg vector after the binary — callers pass e.g.
|
|
152
|
-
* `['sessions', id, '--markdown']` or `['sessions', 'resume', id]`. Used when a
|
|
153
|
-
* picked session lives on another machine: its transcript and agent binary are
|
|
154
|
-
* there, so both reading (no TTY) and resuming (TTY) must execute on the peer —
|
|
155
|
-
* not via a local `--device` hop, which would discover locally and dead-end for a
|
|
156
|
-
* session that exists only on the peer. Resolves 'no-target' when the machine
|
|
157
|
-
* isn't a dialable registered device; the caller surfaces a clear message.
|
|
158
|
-
*
|
|
159
|
-
* `opts.env` adds variables to the remote command. It deliberately does NOT
|
|
160
|
-
* carry `AGENTS_FLEET_REMOTE` the way the `--device` passthrough does: that marker
|
|
161
|
-
* gates consent-sensitive actions on the far side
|
|
162
|
-
* (lib/browser/remote-control.ts), and a resumed agent is a long-lived session
|
|
163
|
-
* that would inherit it for its whole life — `agents browser start` inside it
|
|
164
|
-
* would then be refused as a cross-machine drive. A one-shot `--device` command
|
|
165
|
-
* can carry the marker; a session cannot.
|
|
166
|
-
*
|
|
167
|
-
* `opts.sessionId` (with `tty`) prints the session id and resume command when
|
|
168
|
-
* the SSH hop ends, so OpenSSH's `Shared connection … closed.` is not the last
|
|
169
|
-
* thing on the local shell (RUSH-3227). Omit it for one-shot non-TTY renders.
|
|
170
|
-
*
|
|
171
|
-
* Resolves `'unreachable'` when the SSH connection itself failed — ssh could not
|
|
172
|
-
* launch (spawn error) or exited with {@link SSH_CONN_FAILURE_CODE} (255, its
|
|
173
|
-
* connect-failure convention) — as opposed to `'ok'` for a hop that actually
|
|
174
|
-
* reached the peer (whatever the remote command's own exit code). This lets a
|
|
175
|
-
* caller prefer the recorded device yet fall back locally when it is genuinely
|
|
176
|
-
* offline (PHNX-3626); callers that ignore `'unreachable'` behave exactly as
|
|
177
|
-
* before (it was `'ok'`).
|
|
178
|
-
*/
|
|
179
|
-
/**
|
|
180
|
-
* Classify a finished SSH hop by its exit code: `'unreachable'` when the
|
|
181
|
-
* connection itself failed (ssh's {@link SSH_CONN_FAILURE_CODE} = 255, or a null
|
|
182
|
-
* code from a killed/never-launched child), else `'ok'` — the remote command ran,
|
|
183
|
-
* whatever its own exit status. Pure so the offline-device fallback is unit-tested
|
|
184
|
-
* without a live SSH hop (PHNX-3626).
|
|
185
|
-
*/
|
|
186
77
|
export declare function peerHopOutcome(code: number | null): 'ok' | 'unreachable';
|
|
187
78
|
export declare function peerHopCloseNotice(opts: {
|
|
188
79
|
tty?: boolean;
|