@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
|
@@ -1,17 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Runtime detection + picker + credential-script builder for `agents run --lease`.
|
|
3
|
-
*
|
|
4
|
-
* The picker asks which coding-agent runtime(s) to provision on a leased box.
|
|
5
|
-
* The default selection is whatever the user is currently signed into locally
|
|
6
|
-
* (via `getAccountInfo`, the same source `agents view` uses). The chosen runtimes
|
|
7
|
-
* drive both what gets installed on the box and which auth token file is copied
|
|
8
|
-
* over — the token contents ride the uploaded `--script-stdin` body, never argv.
|
|
9
|
-
*
|
|
10
|
-
* SECURITY: copying a runtime's auth token to an ephemeral cloud box is a
|
|
11
|
-
* credential transfer. It is strictly opt-in (a confirm prompt in the command
|
|
12
|
-
* layer), the token never appears in argv/`ps`, and `--lease` one-shot runs tear
|
|
13
|
-
* the box down afterward so the credential's lifetime is bounded by the run.
|
|
14
|
-
*/
|
|
15
1
|
import * as os from 'os';
|
|
16
2
|
import * as path from 'path';
|
|
17
3
|
import * as fs from 'fs';
|
|
@@ -37,11 +23,9 @@ export const LEASE_RUNTIMES = [
|
|
|
37
23
|
* `--lease` (this module's `buildCredentialScript`) both refuse against it.
|
|
38
24
|
*/
|
|
39
25
|
const NATIVE_OAUTH_RUNTIMES = new Set(LEASE_RUNTIMES.map((c) => c.id));
|
|
40
|
-
/** True when `id` is a native OAuth / session login that MUST NOT be copied between devices (SING-1b). */
|
|
41
26
|
export function isNativeOAuthRuntime(id) {
|
|
42
27
|
return NATIVE_OAUTH_RUNTIMES.has(id);
|
|
43
28
|
}
|
|
44
|
-
/** The fail-loud message naming the forbidden runtimes and the portable path to use instead. */
|
|
45
29
|
export function nativeOAuthTransferRefusal(nativeRuntimes) {
|
|
46
30
|
return (`Refusing to copy native OAuth / session credentials to another device: ${nativeRuntimes.join(', ')}.\n` +
|
|
47
31
|
`A rotating harness login copied across machines is invalidated on its next server-side token ` +
|
|
@@ -52,7 +36,6 @@ export function nativeOAuthTransferRefusal(nativeRuntimes) {
|
|
|
52
36
|
` agents accounts add <name> --provider <provider> --auth <api-key|setup-token>\n` +
|
|
53
37
|
` agents accounts sync <name> --device <host>`);
|
|
54
38
|
}
|
|
55
|
-
/** First existing candidate path under the real home, or null. */
|
|
56
39
|
function findLocalCred(cred) {
|
|
57
40
|
const home = process.env.AGENTS_REAL_HOME || os.homedir();
|
|
58
41
|
for (const rel of cred.localCandidates) {
|
|
@@ -62,12 +45,10 @@ function findLocalCred(cred) {
|
|
|
62
45
|
return p;
|
|
63
46
|
}
|
|
64
47
|
catch {
|
|
65
|
-
/* unreadable — skip */
|
|
66
48
|
}
|
|
67
49
|
}
|
|
68
50
|
return null;
|
|
69
51
|
}
|
|
70
|
-
/** Which lease-capable runtimes the user is signed into on this machine. */
|
|
71
52
|
export async function detectSignedInRuntimes() {
|
|
72
53
|
const out = [];
|
|
73
54
|
for (const cred of LEASE_RUNTIMES) {
|
|
@@ -88,11 +69,6 @@ export async function detectSignedInRuntimes() {
|
|
|
88
69
|
}
|
|
89
70
|
return out;
|
|
90
71
|
}
|
|
91
|
-
/**
|
|
92
|
-
* Interactive checkbox: which runtimes to provision on the box. Defaults to the
|
|
93
|
-
* signed-in ones. Runtimes with no local credential are shown disabled.
|
|
94
|
-
* `prompt` is injected so tests don't require a TTY.
|
|
95
|
-
*/
|
|
96
72
|
export async function pickRuntimes(detected, prompt) {
|
|
97
73
|
const choices = detected.map((d) => ({
|
|
98
74
|
name: `${d.label}${d.email ? ` (${d.email})` : d.signedIn ? ' (signed in)' : ''}`,
|
|
@@ -105,28 +81,11 @@ export async function pickRuntimes(detected, prompt) {
|
|
|
105
81
|
const { checkbox } = await import('@inquirer/prompts');
|
|
106
82
|
return checkbox({ message: 'Provision which runtime(s) on the leased box?', choices });
|
|
107
83
|
}
|
|
108
|
-
/**
|
|
109
|
-
* The lease runtime to provision for a headless run of `agentName`.
|
|
110
|
-
*
|
|
111
|
-
* When the agent is itself a lease-capable runtime (claude/codex/gemini/grok)
|
|
112
|
-
* that IS the runtime to install. Otherwise fall back to the single signed-in
|
|
113
|
-
* lease runtime (preferring claude), or null when none is signed in. This is the
|
|
114
|
-
* non-interactive replacement for the runtime checkbox picker: `--lease` requires
|
|
115
|
-
* a prompt, so it is headless by contract and must never block on a TTY.
|
|
116
|
-
*
|
|
117
|
-
* Profile-dispatch agents (kimi/deepseek) and custom workflow agents that run
|
|
118
|
-
* under a non-obvious runtime are resolved separately — see RUSH-1725.
|
|
119
|
-
*/
|
|
120
84
|
export function inferLeaseRuntime(agentName, detected) {
|
|
121
85
|
const signedIn = detected.filter((d) => d.signedIn && d.credPath);
|
|
122
|
-
// The agent names a lease runtime directly: require that runtime to be signed
|
|
123
|
-
// in — never silently substitute a different one for an explicit `run <runtime>`
|
|
124
|
-
// (that would lease a billable box only to boot it "Not logged in"). Not signed
|
|
125
|
-
// in → null, so the caller exits with "sign into it locally first".
|
|
126
86
|
if (LEASE_RUNTIMES.some((c) => c.id === agentName)) {
|
|
127
87
|
return signedIn.find((d) => d.id === agentName)?.id ?? null;
|
|
128
88
|
}
|
|
129
|
-
// Custom/workflow agent: fall back to the signed-in runtime (preferring claude).
|
|
130
89
|
return signedIn.find((d) => d.id === 'claude')?.id ?? signedIn[0]?.id ?? null;
|
|
131
90
|
}
|
|
132
91
|
const PROFILE_AUTH_ENV_KEYS_BY_RUNTIME = {
|
|
@@ -143,7 +102,6 @@ const PROFILE_AUTH_ENV_KEYS_BY_RUNTIME = {
|
|
|
143
102
|
codex: ['OPENAI_API_KEY'],
|
|
144
103
|
grok: ['XAI_API_KEY', 'GROK_API_KEY'],
|
|
145
104
|
};
|
|
146
|
-
/** True when a profile already carries auth for its host runtime via env. */
|
|
147
105
|
export function profileNeedsBaseRuntimeCredentials(agent, env, authEnvVar) {
|
|
148
106
|
if (!LEASE_RUNTIMES.some((c) => c.id === agent))
|
|
149
107
|
return false;
|
|
@@ -152,24 +110,14 @@ export function profileNeedsBaseRuntimeCredentials(agent, env, authEnvVar) {
|
|
|
152
110
|
const keys = PROFILE_AUTH_ENV_KEYS_BY_RUNTIME[agent] ?? [];
|
|
153
111
|
return !keys.some((key) => typeof env[key] === 'string' && env[key].trim() !== '');
|
|
154
112
|
}
|
|
155
|
-
// A long random sentinel makes an accidental (or malicious) collision with a
|
|
156
|
-
// token's contents effectively impossible, so the quoted heredoc can never be
|
|
157
|
-
// closed early by the credential body.
|
|
158
113
|
const CRED_EOF = 'AGENTS_LEASE_CRED_EOF_9f3c1a7b5e2d4068';
|
|
159
|
-
/** Build a quoted heredoc write to a path under the remote user's home. */
|
|
160
114
|
export function buildHomeFileWriteScript(remote, contents) {
|
|
161
115
|
const dir = path.posix.dirname(remote);
|
|
162
116
|
const mkdir = dir && dir !== '.' ? `mkdir -p "$HOME/${dir}"\n` : '';
|
|
163
117
|
return (`${mkdir}cat > "$HOME/${remote}" <<'${CRED_EOF}'\n${contents}${contents.endsWith('\n') ? '' : '\n'}${CRED_EOF}\n` +
|
|
164
118
|
`chmod 600 "$HOME/${remote}"`);
|
|
165
119
|
}
|
|
166
|
-
/**
|
|
167
|
-
* Where Claude Code reads its OAuth token on the box. `.claude.json` (the file
|
|
168
|
-
* LEASE_RUNTIMES copies) is config/account-metadata ONLY — the actual token
|
|
169
|
-
* lives here, so without it the box boots "Not logged in".
|
|
170
|
-
*/
|
|
171
120
|
export const CLAUDE_TOKEN_REMOTE = '.claude/.credentials.json';
|
|
172
|
-
/** True when `s` parses to a Claude keychain payload with an OAuth access token. */
|
|
173
121
|
function isClaudeCredentialsBlob(s) {
|
|
174
122
|
try {
|
|
175
123
|
const p = JSON.parse(s);
|
|
@@ -179,27 +127,6 @@ function isClaudeCredentialsBlob(s) {
|
|
|
179
127
|
return false;
|
|
180
128
|
}
|
|
181
129
|
}
|
|
182
|
-
/**
|
|
183
|
-
* The RAW wrapped Claude credential payload (`{"claudeAiOauth":{…}}`) to write to
|
|
184
|
-
* the box's `~/.claude/.credentials.json`, or null if no signed-in token is found.
|
|
185
|
-
*
|
|
186
|
-
* On macOS the token is in the login Keychain, read SILENTLY via the standalone
|
|
187
|
-
* `secrets` client's `getKeychainTokenSync` (the `/usr/bin/security … -w` path —
|
|
188
|
-
* Claude's item trusts it, no Touch ID). A default native install uses the bare `Claude Code-credentials`
|
|
189
|
-
* service; an agents-cli managed install (where `~/.claude` symlinks into a
|
|
190
|
-
* versioned home) uses a hash-suffixed service, so we try the bare service first,
|
|
191
|
-
* then enumerate installed version homes (preferring the account whose email
|
|
192
|
-
* matches `preferEmail`, so the token matches the `.claude.json` config we copy).
|
|
193
|
-
* Off macOS the local Claude CLI stores the wrapped rotating blob in
|
|
194
|
-
* `.credentials.json` already. Read that file here with a shape check
|
|
195
|
-
* (`claudeAiOauth.accessToken`). Do not reintroduce a shared helper that
|
|
196
|
-
* also serves Rush Cloud dispatch — dispatch is email-only (SING-1b) and
|
|
197
|
-
* the old `readClaudeCredentialsBlob` path was the #1767 TTY-banner leak
|
|
198
|
-
* (RUSH-2359).
|
|
199
|
-
*
|
|
200
|
-
* The reader/service/version helpers are injected so unit tests never touch the
|
|
201
|
-
* real Keychain.
|
|
202
|
-
*/
|
|
203
130
|
export async function resolveClaudeCredentialsBlob(opts) {
|
|
204
131
|
const readItem = opts?.readItem ?? getKeychainTokenSync;
|
|
205
132
|
const service = opts?.service ?? getClaudeKeychainService;
|
|
@@ -216,21 +143,15 @@ export async function resolveClaudeCredentialsBlob(opts) {
|
|
|
216
143
|
}
|
|
217
144
|
};
|
|
218
145
|
if (process.platform === 'darwin') {
|
|
219
|
-
// 1) Bare service — the default native (non-managed) install.
|
|
220
146
|
const bare = tryRead(service(undefined));
|
|
221
147
|
if (bare) {
|
|
222
148
|
if (!opts?.preferEmail)
|
|
223
149
|
return bare;
|
|
224
|
-
// preferEmail is set — verify the bare service belongs to the right account
|
|
225
|
-
// before handing it back; on mismatch fall through to managed installs.
|
|
226
150
|
const realHome = process.env.AGENTS_REAL_HOME || os.homedir();
|
|
227
151
|
const bareEmail = await accountEmail(realHome).catch(() => null);
|
|
228
152
|
if (bareEmail === opts.preferEmail)
|
|
229
153
|
return bare;
|
|
230
|
-
// email mismatch — fall through
|
|
231
154
|
}
|
|
232
|
-
// 2) Managed installs — hash-suffixed service keyed to each version home.
|
|
233
|
-
// Prefer the version whose account email matches the copied config.
|
|
234
155
|
let homes;
|
|
235
156
|
try {
|
|
236
157
|
homes = listVersions().map(versionHome);
|
|
@@ -249,9 +170,6 @@ export async function resolveClaudeCredentialsBlob(opts) {
|
|
|
249
170
|
}
|
|
250
171
|
return null;
|
|
251
172
|
}
|
|
252
|
-
// Off darwin: the local Claude CLI stores the wrapped rotating blob on disk.
|
|
253
|
-
// Read it directly so a file-based setup-token (Rush Cloud dispatch) is not
|
|
254
|
-
// mistaken for a native OAuth login that SING-1b must refuse to copy.
|
|
255
173
|
const home = process.env.AGENTS_REAL_HOME || os.homedir();
|
|
256
174
|
const credsPath = path.join(home, '.claude', '.credentials.json');
|
|
257
175
|
try {
|
|
@@ -262,28 +180,9 @@ export async function resolveClaudeCredentialsBlob(opts) {
|
|
|
262
180
|
}
|
|
263
181
|
}
|
|
264
182
|
catch {
|
|
265
|
-
/* no readable credentials file */
|
|
266
183
|
}
|
|
267
184
|
return null;
|
|
268
185
|
}
|
|
269
|
-
/**
|
|
270
|
-
* The credential-provisioning snippet for a `--lease` box.
|
|
271
|
-
*
|
|
272
|
-
* Every runtime this could serialize is a native OAuth / session login
|
|
273
|
-
* (`LEASE_RUNTIMES`), and SING-1b forbids copying one to another device —
|
|
274
|
-
* including an ephemeral leased box, whose refresh of a shared rotating token
|
|
275
|
-
* invalidates every other holder. So this no longer writes a login: it REFUSES
|
|
276
|
-
* (throws, steering to the portable `agents accounts` path) whenever a picked
|
|
277
|
-
* runtime actually has a native credential to copy — signed in locally
|
|
278
|
-
* (`credPath`), or a Claude OAuth blob supplied. A picked runtime with nothing to
|
|
279
|
-
* copy is simply skipped, so `buildCredentialScript` returns `''` (a no-op box
|
|
280
|
-
* bootstrap) rather than throwing on a not-signed-in runtime.
|
|
281
|
-
*/
|
|
282
|
-
/**
|
|
283
|
-
* The native OAuth runtimes among `picked` that actually have a credential to copy
|
|
284
|
-
* — signed in locally (`credPath`) or a Claude OAuth blob supplied — i.e. the ones
|
|
285
|
-
* a transfer would leak. A picked runtime with nothing to copy is not refused.
|
|
286
|
-
*/
|
|
287
186
|
export function refusedNativeOAuthRuntimes(picked, detected, extras) {
|
|
288
187
|
const byId = new Map(detected.map((d) => [d.id, d]));
|
|
289
188
|
return picked.filter((id) => {
|
|
@@ -294,14 +193,8 @@ export function refusedNativeOAuthRuntimes(picked, detected, extras) {
|
|
|
294
193
|
return hasLocalFile || hasClaudeToken;
|
|
295
194
|
});
|
|
296
195
|
}
|
|
297
|
-
/**
|
|
298
|
-
* Throw the SING-1b refusal if any picked runtime would transfer a native OAuth
|
|
299
|
-
* login. Callers should invoke this at a FAIL-FAST point — before any expensive or
|
|
300
|
-
* costly side effect (e.g. before `crabboxWarmup` leases a paid box) — so a refused
|
|
301
|
-
* `--lease` never leaks infra, mirroring how `--copy-creds` refuses before it opens
|
|
302
|
-
* an SSH connection.
|
|
303
|
-
*/
|
|
304
196
|
export function assertNoNativeOAuthTransfer(picked, detected, extras) {
|
|
197
|
+
// Reject native OAuth before leasing a paid box; only durable worker credentials transfer.
|
|
305
198
|
const refused = refusedNativeOAuthRuntimes(picked, detected, extras);
|
|
306
199
|
if (refused.length > 0) {
|
|
307
200
|
throw new Error(nativeOAuthTransferRefusal(refused));
|
|
@@ -309,8 +202,5 @@ export function assertNoNativeOAuthTransfer(picked, detected, extras) {
|
|
|
309
202
|
}
|
|
310
203
|
export function buildCredentialScript(picked, detected, extras) {
|
|
311
204
|
assertNoNativeOAuthTransfer(picked, detected, extras);
|
|
312
|
-
// Past the refusal there is nothing to serialize — every runtime this handles is
|
|
313
|
-
// native OAuth, so a non-refused set has no credential to copy. (Always '' today;
|
|
314
|
-
// the shape stays general in case a non-native runtime is ever added.)
|
|
315
205
|
return '';
|
|
316
206
|
}
|
|
@@ -1,78 +1,21 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Setup-copy for `agents run --lease` (RUSH-1920), transport = PUSH-FROM-LOCAL.
|
|
3
|
-
*
|
|
4
|
-
* A fresh crabbox box has agents-cli installed but none of the caller's own
|
|
5
|
-
* `~/.agents` config (skills, hooks, commands, MCP, profiles). This module
|
|
6
|
-
* replicates the *git-tracked* subset of the LOCAL `~/.agents` onto the box:
|
|
7
|
-
*
|
|
8
|
-
* 1. `git -C <userAgentsDir> ls-files` — tracked files only. Tracked-only is
|
|
9
|
-
* the safety boundary: it excludes `.history/`, `.cache/`, `.system/` and
|
|
10
|
-
* any keychain-backed secrets by construction (those are gitignored), so no
|
|
11
|
-
* credential material is ever pushed.
|
|
12
|
-
* 2. `rsync` that exact file set to `~/.agents` on the box over crabbox's OWN
|
|
13
|
-
* ssh invocation (`crabboxSshArgv`) — crabbox provisions a per-lease identity
|
|
14
|
-
* key, so a raw `ssh crabbox@ip` fails publickey; only crabbox's key works.
|
|
15
|
-
* 3. `agents sync --local` on the box so the copied config takes effect.
|
|
16
|
-
*
|
|
17
|
-
* NEVER copies `~/.claude` / `~/.claude.json` — they live in `$HOME`, not
|
|
18
|
-
* `~/.agents`, and are rebuilt on the box by `agents add` + refresh; an explicit
|
|
19
|
-
* filter belts-and-braces the tracked-only guarantee.
|
|
20
|
-
*
|
|
21
|
-
* This is a self-contained local function the command layer calls; it does NOT
|
|
22
|
-
* ride the box-side bootstrap script (that only echoes the `copy-setup` progress
|
|
23
|
-
* sentinel — see `buildBootstrapScript`).
|
|
24
|
-
*/
|
|
25
1
|
interface CopySetupOptions {
|
|
26
|
-
/** crabbox box slug to push to — its per-lease ssh key does the auth. */
|
|
27
2
|
slug: string;
|
|
28
|
-
/** Secrets bundle whose env the ssh/rsync children inherit (crabbox parity). */
|
|
29
3
|
secretsBundle?: string;
|
|
30
|
-
/** Override the local `~/.agents` dir (defaults to `getUserAgentsDir()`). */
|
|
31
4
|
userAgentsDir?: string;
|
|
32
|
-
/**
|
|
33
|
-
* Destination relative to the box user's home. Lease runs set this to their
|
|
34
|
-
* isolated home; other callers retain the historical `~/.agents/` target.
|
|
35
|
-
*/
|
|
36
5
|
remoteDir?: string;
|
|
37
|
-
/** Receives combined stdout/stderr of the rsync + refresh, if set. */
|
|
38
6
|
onData?: (chunk: string) => void;
|
|
39
|
-
/**
|
|
40
|
-
* Run `agents sync --local` on the box after the push (default `true`). Set
|
|
41
|
-
* `false` when the caller runs the refresh itself in the box bootstrap — the
|
|
42
|
-
* lease path does this so the refresh runs AFTER the box installs agents-cli
|
|
43
|
-
* (this host-side push happens before the box boots agents-cli, so a host-side
|
|
44
|
-
* refresh here could not find the CLI).
|
|
45
|
-
*/
|
|
46
7
|
refresh?: boolean;
|
|
47
8
|
}
|
|
48
9
|
export interface CopySetupResult {
|
|
49
|
-
/** The tracked files enumerated for the push (post-exclusion). */
|
|
50
10
|
files: string[];
|
|
51
|
-
/** rsync exit code, or null when the process failed to spawn. */
|
|
52
11
|
pushExitCode: number | null;
|
|
53
|
-
/** `agents sync --local` exit code, or null when it was skipped/failed to spawn. */
|
|
54
12
|
refreshExitCode: number | null;
|
|
55
13
|
}
|
|
56
|
-
/**
|
|
57
|
-
* git-tracked files under `dir` (paths relative to `dir`), minus the never-copy
|
|
58
|
-
* set. Returns `[]` when `dir` is not a git repo — a caller with no tracked
|
|
59
|
-
* `~/.agents` simply copies nothing.
|
|
60
|
-
*/
|
|
61
14
|
export declare function enumerateTrackedFiles(dir: string): string[];
|
|
62
|
-
/**
|
|
63
|
-
* Split crabbox's ssh argv (`['ssh', …opts, 'crabbox@host']`) into the `-e`
|
|
64
|
-
* transport string (`ssh …opts`) and the `crabbox@host` endpoint. This is what
|
|
65
|
-
* carries the per-lease identity key + known_hosts a raw ssh lacks.
|
|
66
|
-
*/
|
|
67
15
|
export declare function sshTransportFromArgv(sshArgv: string[]): {
|
|
68
16
|
rsh: string;
|
|
69
17
|
host: string;
|
|
70
18
|
};
|
|
71
|
-
/**
|
|
72
|
-
* rsync argv to push the tracked file set to `~/.agents` on the box. Reads the
|
|
73
|
-
* NUL-separated list at `filesFrom` (`--from0`, matching `ls-files -z`) so paths
|
|
74
|
-
* with spaces survive, and tunnels over crabbox's own ssh (`rsh`).
|
|
75
|
-
*/
|
|
76
19
|
export declare function buildSetupRsyncArgs(opts: {
|
|
77
20
|
rsh: string;
|
|
78
21
|
host: string;
|
|
@@ -80,12 +23,5 @@ export declare function buildSetupRsyncArgs(opts: {
|
|
|
80
23
|
source: string;
|
|
81
24
|
remoteDir?: string;
|
|
82
25
|
}): string[];
|
|
83
|
-
/**
|
|
84
|
-
* Replicate the git-tracked subset of the local `~/.agents` onto the crabbox box
|
|
85
|
-
* and refresh it. Enumerates tracked files, rsyncs them over ssh, then runs
|
|
86
|
-
* `agents sync --local` on the box. Refresh is skipped when the push fails or the
|
|
87
|
-
* file set is empty (nothing to refresh). Never throws — surfaces failure through
|
|
88
|
-
* the returned exit codes.
|
|
89
|
-
*/
|
|
90
26
|
export declare function copySetupToBox(opts: CopySetupOptions): Promise<CopySetupResult>;
|
|
91
27
|
export {};
|
|
@@ -1,42 +1,11 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Setup-copy for `agents run --lease` (RUSH-1920), transport = PUSH-FROM-LOCAL.
|
|
3
|
-
*
|
|
4
|
-
* A fresh crabbox box has agents-cli installed but none of the caller's own
|
|
5
|
-
* `~/.agents` config (skills, hooks, commands, MCP, profiles). This module
|
|
6
|
-
* replicates the *git-tracked* subset of the LOCAL `~/.agents` onto the box:
|
|
7
|
-
*
|
|
8
|
-
* 1. `git -C <userAgentsDir> ls-files` — tracked files only. Tracked-only is
|
|
9
|
-
* the safety boundary: it excludes `.history/`, `.cache/`, `.system/` and
|
|
10
|
-
* any keychain-backed secrets by construction (those are gitignored), so no
|
|
11
|
-
* credential material is ever pushed.
|
|
12
|
-
* 2. `rsync` that exact file set to `~/.agents` on the box over crabbox's OWN
|
|
13
|
-
* ssh invocation (`crabboxSshArgv`) — crabbox provisions a per-lease identity
|
|
14
|
-
* key, so a raw `ssh crabbox@ip` fails publickey; only crabbox's key works.
|
|
15
|
-
* 3. `agents sync --local` on the box so the copied config takes effect.
|
|
16
|
-
*
|
|
17
|
-
* NEVER copies `~/.claude` / `~/.claude.json` — they live in `$HOME`, not
|
|
18
|
-
* `~/.agents`, and are rebuilt on the box by `agents add` + refresh; an explicit
|
|
19
|
-
* filter belts-and-braces the tracked-only guarantee.
|
|
20
|
-
*
|
|
21
|
-
* This is a self-contained local function the command layer calls; it does NOT
|
|
22
|
-
* ride the box-side bootstrap script (that only echoes the `copy-setup` progress
|
|
23
|
-
* sentinel — see `buildBootstrapScript`).
|
|
24
|
-
*/
|
|
25
1
|
import { spawn, spawnSync } from 'child_process';
|
|
26
2
|
import * as fs from 'fs';
|
|
27
3
|
import * as os from 'os';
|
|
28
4
|
import * as path from 'path';
|
|
29
5
|
import { getUserAgentsDir } from '../state.js';
|
|
30
6
|
import { crabboxEnv, crabboxSshArgv } from './cli.js';
|
|
31
|
-
/** Remote path (relative to the box user's home) the tracked config lands in. */
|
|
32
7
|
const REMOTE_AGENTS_DIR = '.agents/';
|
|
33
|
-
/** Top-level paths that must never be pushed, even if somehow tracked. */
|
|
34
8
|
const NEVER_COPY = new Set(['.claude', '.claude.json']);
|
|
35
|
-
/**
|
|
36
|
-
* git-tracked files under `dir` (paths relative to `dir`), minus the never-copy
|
|
37
|
-
* set. Returns `[]` when `dir` is not a git repo — a caller with no tracked
|
|
38
|
-
* `~/.agents` simply copies nothing.
|
|
39
|
-
*/
|
|
40
9
|
export function enumerateTrackedFiles(dir) {
|
|
41
10
|
const r = spawnSync('git', ['-C', dir, 'ls-files', '-z'], { encoding: 'utf-8' });
|
|
42
11
|
if (r.status !== 0 || !r.stdout)
|
|
@@ -49,21 +18,11 @@ export function enumerateTrackedFiles(dir) {
|
|
|
49
18
|
return !NEVER_COPY.has(f) && !NEVER_COPY.has(top);
|
|
50
19
|
});
|
|
51
20
|
}
|
|
52
|
-
/**
|
|
53
|
-
* Split crabbox's ssh argv (`['ssh', …opts, 'crabbox@host']`) into the `-e`
|
|
54
|
-
* transport string (`ssh …opts`) and the `crabbox@host` endpoint. This is what
|
|
55
|
-
* carries the per-lease identity key + known_hosts a raw ssh lacks.
|
|
56
|
-
*/
|
|
57
21
|
export function sshTransportFromArgv(sshArgv) {
|
|
58
22
|
const host = sshArgv[sshArgv.length - 1];
|
|
59
|
-
const rsh = sshArgv.slice(0, -1).join(' ');
|
|
23
|
+
const rsh = sshArgv.slice(0, -1).join(' ');
|
|
60
24
|
return { rsh, host };
|
|
61
25
|
}
|
|
62
|
-
/**
|
|
63
|
-
* rsync argv to push the tracked file set to `~/.agents` on the box. Reads the
|
|
64
|
-
* NUL-separated list at `filesFrom` (`--from0`, matching `ls-files -z`) so paths
|
|
65
|
-
* with spaces survive, and tunnels over crabbox's own ssh (`rsh`).
|
|
66
|
-
*/
|
|
67
26
|
export function buildSetupRsyncArgs(opts) {
|
|
68
27
|
const remote = `${opts.host}:${opts.remoteDir ?? REMOTE_AGENTS_DIR}`;
|
|
69
28
|
const source = opts.source.endsWith('/') ? opts.source : `${opts.source}/`;
|
|
@@ -85,21 +44,12 @@ function runStreaming(cmd, args, env, onData) {
|
|
|
85
44
|
proc.on('close', (code) => resolve(code));
|
|
86
45
|
});
|
|
87
46
|
}
|
|
88
|
-
/**
|
|
89
|
-
* Replicate the git-tracked subset of the local `~/.agents` onto the crabbox box
|
|
90
|
-
* and refresh it. Enumerates tracked files, rsyncs them over ssh, then runs
|
|
91
|
-
* `agents sync --local` on the box. Refresh is skipped when the push fails or the
|
|
92
|
-
* file set is empty (nothing to refresh). Never throws — surfaces failure through
|
|
93
|
-
* the returned exit codes.
|
|
94
|
-
*/
|
|
95
47
|
export async function copySetupToBox(opts) {
|
|
96
48
|
const dir = opts.userAgentsDir ?? getUserAgentsDir();
|
|
97
49
|
const files = enumerateTrackedFiles(dir);
|
|
98
50
|
if (files.length === 0) {
|
|
99
51
|
return { files, pushExitCode: null, refreshExitCode: null };
|
|
100
52
|
}
|
|
101
|
-
// crabbox provisions a per-lease ssh key; a raw `ssh crabbox@ip` fails publickey.
|
|
102
|
-
// Ask crabbox for its exact ssh invocation and tunnel rsync through it.
|
|
103
53
|
const sshArgv = crabboxSshArgv(opts.slug, { secretsBundle: opts.secretsBundle });
|
|
104
54
|
if (!sshArgv) {
|
|
105
55
|
return { files, pushExitCode: null, refreshExitCode: null };
|
|
@@ -125,13 +75,11 @@ export async function copySetupToBox(opts) {
|
|
|
125
75
|
return { files, pushExitCode: prepareExitCode, refreshExitCode: null };
|
|
126
76
|
}
|
|
127
77
|
}
|
|
128
|
-
// NUL-separated list, matching `buildSetupRsyncArgs`'s `--from0`.
|
|
129
78
|
fs.writeFileSync(listPath, files.join('\0'), 'utf-8');
|
|
130
79
|
const rsyncArgs = buildSetupRsyncArgs({ rsh, host, filesFrom: listPath, source: dir, remoteDir: opts.remoteDir });
|
|
131
80
|
const pushExitCode = await runStreaming('rsync', rsyncArgs, env, opts.onData);
|
|
132
81
|
let refreshExitCode = null;
|
|
133
82
|
if (pushExitCode === 0 && opts.refresh !== false) {
|
|
134
|
-
// ssh <opts> crabbox@host bash -lc 'agents sync --local -y'
|
|
135
83
|
const refreshArgs = [...sshArgv.slice(1), 'bash', '-lc', 'agents sync --local -y'];
|
|
136
84
|
refreshExitCode = await runStreaming('ssh', refreshArgs, env, opts.onData);
|
|
137
85
|
}
|
|
@@ -1,36 +1,12 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Account-state services as supervised `PeriodicService`s (PHNX-3608).
|
|
3
|
-
*
|
|
4
|
-
* The daemon owns usage and authentication health as first-party device state.
|
|
5
|
-
* This used to run its OWN two `setInterval` loops behind a `usageRunning` /
|
|
6
|
-
* `authRunning` latch with NO deadline (`account-state-service.ts`, now removed):
|
|
7
|
-
* a `runUsageRefreshTick` that hung on an unbounded provider await latched
|
|
8
|
-
* `usageRunning = true` forever, so the usage cache froze for the daemon's whole
|
|
9
|
-
* life while the service still looked healthy — the "12h usage-dark" root cause.
|
|
10
|
-
*
|
|
11
|
-
* Now usage and auth are TWO independent supervised services, each with its own
|
|
12
|
-
* timer, per-tick deadline, AbortSignal, and — crucially — its own circuit
|
|
13
|
-
* breaker (`AccountUsageService` = `account-state`, `AccountAuthService` =
|
|
14
|
-
* `account-auth`). Keeping them separate means a run of usage-refresh failures
|
|
15
|
-
* parks ONLY usage and never starves the slower auth refresh (they hit different
|
|
16
|
-
* endpoints), matching the old design's independent loops. Each threads its
|
|
17
|
-
* deadline AbortSignal into its refresh so the tick unwinds at the deadline
|
|
18
|
-
* instead of blocking; the provider fetch is itself already bounded
|
|
19
|
-
* (`AbortSignal.timeout` at the leaf), and the supervisor abandons + restarts a
|
|
20
|
-
* hung tick regardless.
|
|
21
|
-
*/
|
|
22
1
|
import { BasePeriodicService, type DaemonContext } from './service.js';
|
|
23
2
|
import type { DaemonServiceId } from '../daemon-services.js';
|
|
24
3
|
import type { AuthProbeRow } from '../auth-health.js';
|
|
25
|
-
/** Usage cache refresh cadence. */
|
|
26
4
|
export declare const USAGE_STATE_TICK_MS = 60000;
|
|
27
|
-
/** Fleet-auth refresh cadence — deliberately slower (rate-limited endpoint). */
|
|
28
5
|
export declare const AUTH_STATE_TICK_MS: number;
|
|
29
6
|
type AccountAuthRefresh = (signal: AbortSignal) => Promise<AuthProbeRow[] | void>;
|
|
30
7
|
type AccountTransitionNotifier = (transition: DeadAccountTransition) => Promise<void>;
|
|
31
8
|
interface DeadAccountTransition {
|
|
32
9
|
agent: AuthProbeRow['agent'];
|
|
33
|
-
/** Display label (email / account name) — presentation only, never a key. */
|
|
34
10
|
account: string;
|
|
35
11
|
verdict: 'expired' | 'revoked';
|
|
36
12
|
}
|
|
@@ -38,10 +14,6 @@ interface AccountAuthServiceOptions {
|
|
|
38
14
|
stateFile?: string;
|
|
39
15
|
notify?: AccountTransitionNotifier;
|
|
40
16
|
}
|
|
41
|
-
/**
|
|
42
|
-
* Refresh the usage cache the `agents run` router reads. Independent circuit
|
|
43
|
-
* breaker from auth — a persistently-failing usage endpoint parks only this.
|
|
44
|
-
*/
|
|
45
17
|
export declare class AccountUsageService extends BasePeriodicService {
|
|
46
18
|
readonly id: DaemonServiceId;
|
|
47
19
|
readonly intervalMs = 60000;
|
|
@@ -52,11 +24,6 @@ export declare class AccountUsageService extends BasePeriodicService {
|
|
|
52
24
|
protected onStop(): Promise<void>;
|
|
53
25
|
protected onTick(_ctx: DaemonContext, signal: AbortSignal): Promise<void>;
|
|
54
26
|
}
|
|
55
|
-
/**
|
|
56
|
-
* Publish this host's fleet-status row and refresh auth health. Independent
|
|
57
|
-
* circuit breaker from usage, and on a slower cadence (the auth verdict rides a
|
|
58
|
-
* rate-limited endpoint).
|
|
59
|
-
*/
|
|
60
27
|
export declare class AccountAuthService extends BasePeriodicService {
|
|
61
28
|
readonly id: DaemonServiceId;
|
|
62
29
|
readonly intervalMs: number;
|
|
@@ -70,21 +37,6 @@ export declare class AccountAuthService extends BasePeriodicService {
|
|
|
70
37
|
protected onTick(_ctx: DaemonContext, signal: AbortSignal): Promise<void>;
|
|
71
38
|
}
|
|
72
39
|
export declare function publishAccountDaemonStateRows(rows: readonly AuthProbeRow[], userAgentsDir?: string): Promise<void>;
|
|
73
|
-
/**
|
|
74
|
-
* Detect live → expired/revoked transitions and deliver one owner-important
|
|
75
|
-
* feed post each, through a persisted outbox:
|
|
76
|
-
*
|
|
77
|
-
* 1. Newly-dead accounts are ENQUEUED into `pending` and the state is written
|
|
78
|
-
* BEFORE any delivery is attempted — a crash or a failed sink can never
|
|
79
|
-
* strand a transition in the already-recorded `entries` with no retry.
|
|
80
|
-
* 2. Every pending item (fresh and retried) is delivered; an item leaves
|
|
81
|
-
* `pending` only after its notifier resolves, and the state is written
|
|
82
|
-
* again. A crash in the narrow window between a successful post and that
|
|
83
|
-
* second write re-sends once — at-least-once, never zero.
|
|
84
|
-
*
|
|
85
|
-
* Delivery failures keep their outbox entries AND throw after the state is
|
|
86
|
-
* durable, so the supervisor's circuit breaker still sees the unhealthy tick.
|
|
87
|
-
*/
|
|
88
40
|
export declare function processAccountAuthTransitions(rows: readonly AuthProbeRow[], options?: {
|
|
89
41
|
stateFile?: string;
|
|
90
42
|
notify?: AccountTransitionNotifier;
|
|
@@ -1,24 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Account-state services as supervised `PeriodicService`s (PHNX-3608).
|
|
3
|
-
*
|
|
4
|
-
* The daemon owns usage and authentication health as first-party device state.
|
|
5
|
-
* This used to run its OWN two `setInterval` loops behind a `usageRunning` /
|
|
6
|
-
* `authRunning` latch with NO deadline (`account-state-service.ts`, now removed):
|
|
7
|
-
* a `runUsageRefreshTick` that hung on an unbounded provider await latched
|
|
8
|
-
* `usageRunning = true` forever, so the usage cache froze for the daemon's whole
|
|
9
|
-
* life while the service still looked healthy — the "12h usage-dark" root cause.
|
|
10
|
-
*
|
|
11
|
-
* Now usage and auth are TWO independent supervised services, each with its own
|
|
12
|
-
* timer, per-tick deadline, AbortSignal, and — crucially — its own circuit
|
|
13
|
-
* breaker (`AccountUsageService` = `account-state`, `AccountAuthService` =
|
|
14
|
-
* `account-auth`). Keeping them separate means a run of usage-refresh failures
|
|
15
|
-
* parks ONLY usage and never starves the slower auth refresh (they hit different
|
|
16
|
-
* endpoints), matching the old design's independent loops. Each threads its
|
|
17
|
-
* deadline AbortSignal into its refresh so the tick unwinds at the deadline
|
|
18
|
-
* instead of blocking; the provider fetch is itself already bounded
|
|
19
|
-
* (`AbortSignal.timeout` at the leaf), and the supervisor abandons + restarts a
|
|
20
|
-
* hung tick regardless.
|
|
21
|
-
*/
|
|
22
1
|
import * as fsp from 'node:fs/promises';
|
|
23
2
|
import * as path from 'node:path';
|
|
24
3
|
import { BasePeriodicService } from './service.js';
|
|
@@ -31,23 +10,12 @@ import { withFileLockAsync } from '../fs-atomic.js';
|
|
|
31
10
|
import { machineId } from '../machine-id.js';
|
|
32
11
|
import { getConfigValueAsync, isHeadedDeviceRole } from '../device-config.js';
|
|
33
12
|
import { harnessWorkerIsPerDevice } from '../harness-auth-capabilities.js';
|
|
34
|
-
/** Usage cache refresh cadence. */
|
|
35
13
|
export const USAGE_STATE_TICK_MS = 60_000;
|
|
36
|
-
/** Fleet-auth refresh cadence — deliberately slower (rate-limited endpoint). */
|
|
37
14
|
export const AUTH_STATE_TICK_MS = 3 * 60_000;
|
|
38
|
-
/** A hung refresh is abandoned at this deadline; a real sweep is far under it. */
|
|
39
15
|
const REFRESH_DEADLINE_MS = 2 * 60_000;
|
|
40
16
|
const NOTIFY_DEADLINE_MS = 30_000;
|
|
41
17
|
const ACCOUNT_TRANSITIONS_FILE = 'account-auth-transitions.json';
|
|
42
|
-
// Resolve the current CLI once at daemon startup. getCliLaunch performs sync
|
|
43
|
-
// filesystem probes, so it must never run inside a service tick.
|
|
44
18
|
const FEED_POST_LAUNCH = getCliLaunch([]);
|
|
45
|
-
/**
|
|
46
|
-
* A promise that rejects when `signal` aborts (immediately if already aborted),
|
|
47
|
-
* so a tick can `Promise.race` its work against the supervisor's deadline and
|
|
48
|
-
* unwind instead of blocking on an await that may never settle. The signal is
|
|
49
|
-
* per-tick, so the once-listener is dropped with it — no cross-tick leak.
|
|
50
|
-
*/
|
|
51
19
|
function abortRejection(signal, label) {
|
|
52
20
|
return new Promise((_, reject) => {
|
|
53
21
|
if (signal.aborted) {
|
|
@@ -57,10 +25,6 @@ function abortRejection(signal, label) {
|
|
|
57
25
|
signal.addEventListener('abort', () => reject(new Error(label)), { once: true });
|
|
58
26
|
});
|
|
59
27
|
}
|
|
60
|
-
/**
|
|
61
|
-
* Refresh the usage cache the `agents run` router reads. Independent circuit
|
|
62
|
-
* breaker from auth — a persistently-failing usage endpoint parks only this.
|
|
63
|
-
*/
|
|
64
28
|
export class AccountUsageService extends BasePeriodicService {
|
|
65
29
|
id = 'account-state';
|
|
66
30
|
intervalMs = USAGE_STATE_TICK_MS;
|
|
@@ -79,11 +43,6 @@ export class AccountUsageService extends BasePeriodicService {
|
|
|
79
43
|
]);
|
|
80
44
|
}
|
|
81
45
|
}
|
|
82
|
-
/**
|
|
83
|
-
* Publish this host's fleet-status row and refresh auth health. Independent
|
|
84
|
-
* circuit breaker from usage, and on a slower cadence (the auth verdict rides a
|
|
85
|
-
* rate-limited endpoint).
|
|
86
|
-
*/
|
|
87
46
|
export class AccountAuthService extends BasePeriodicService {
|
|
88
47
|
id = 'account-auth';
|
|
89
48
|
intervalMs = AUTH_STATE_TICK_MS;
|
|
@@ -122,9 +81,6 @@ export async function publishAccountDaemonStateRows(rows, userAgentsDir) {
|
|
|
122
81
|
const role = (await getConfigValueAsync('role', { device })).value;
|
|
123
82
|
const headed = isHeadedDeviceRole(role);
|
|
124
83
|
const accountRows = [...collapseAccountRows(rows).values()].map((row) => ({
|
|
125
|
-
// The registered account id is the only stable identity: two accounts may
|
|
126
|
-
// share one email (different orgs), so the display label is never a key.
|
|
127
|
-
// Unregistered legacy homes have no registry id and fall back to the label.
|
|
128
84
|
accountId: row.accountId ?? row.account ?? row.version,
|
|
129
85
|
identityLabel: row.account,
|
|
130
86
|
harness: row.agent,
|
|
@@ -163,9 +119,8 @@ export async function publishAccountDaemonStateRows(rows, userAgentsDir) {
|
|
|
163
119
|
await fsp.rename(temp, file);
|
|
164
120
|
});
|
|
165
121
|
}
|
|
122
|
+
// Registered account id is stable; only unregistered legacy homes fall back to the display label, so same-email named accounts remain distinct.
|
|
166
123
|
function transitionKey(row) {
|
|
167
|
-
// Stable identity first (registered account id); the display label is the
|
|
168
|
-
// fallback for unregistered legacy homes, never the key for a named account.
|
|
169
124
|
return `${row.agent}:${row.accountId ?? row.account ?? `version:${row.version}`}`;
|
|
170
125
|
}
|
|
171
126
|
function verdictRank(verdict) {
|
|
@@ -195,7 +150,6 @@ async function readTransitionState(file) {
|
|
|
195
150
|
try {
|
|
196
151
|
const parsed = JSON.parse(await fsp.readFile(file, 'utf-8'));
|
|
197
152
|
if ((parsed.version === 1 || parsed.version === 2) && parsed.entries && typeof parsed.entries === 'object') {
|
|
198
|
-
// Version 1 files predate the outbox; they upgrade with an empty one.
|
|
199
153
|
return { version: 2, entries: parsed.entries, pending: parsed.pending ?? {} };
|
|
200
154
|
}
|
|
201
155
|
}
|
|
@@ -212,21 +166,6 @@ async function writeTransitionState(file, state) {
|
|
|
212
166
|
await fsp.writeFile(temp, `${JSON.stringify(state, null, 2)}\n`, { mode: 0o600 });
|
|
213
167
|
await fsp.rename(temp, file);
|
|
214
168
|
}
|
|
215
|
-
/**
|
|
216
|
-
* Detect live → expired/revoked transitions and deliver one owner-important
|
|
217
|
-
* feed post each, through a persisted outbox:
|
|
218
|
-
*
|
|
219
|
-
* 1. Newly-dead accounts are ENQUEUED into `pending` and the state is written
|
|
220
|
-
* BEFORE any delivery is attempted — a crash or a failed sink can never
|
|
221
|
-
* strand a transition in the already-recorded `entries` with no retry.
|
|
222
|
-
* 2. Every pending item (fresh and retried) is delivered; an item leaves
|
|
223
|
-
* `pending` only after its notifier resolves, and the state is written
|
|
224
|
-
* again. A crash in the narrow window between a successful post and that
|
|
225
|
-
* second write re-sends once — at-least-once, never zero.
|
|
226
|
-
*
|
|
227
|
-
* Delivery failures keep their outbox entries AND throw after the state is
|
|
228
|
-
* durable, so the supervisor's circuit breaker still sees the unhealthy tick.
|
|
229
|
-
*/
|
|
230
169
|
export async function processAccountAuthTransitions(rows, options = {}) {
|
|
231
170
|
const file = options.stateFile ?? path.join(getDaemonDir(), ACCOUNT_TRANSITIONS_FILE);
|
|
232
171
|
const notify = options.notify ?? postImportantAccountTransition;
|
|
@@ -248,7 +187,7 @@ export async function processAccountAuthTransitions(rows, options = {}) {
|
|
|
248
187
|
};
|
|
249
188
|
}
|
|
250
189
|
}
|
|
251
|
-
//
|
|
190
|
+
// Persist the transition to the outbox before notifying; delete only after success for at-least-once delivery.
|
|
252
191
|
await writeTransitionState(file, next);
|
|
253
192
|
const delivered = [];
|
|
254
193
|
const failures = [];
|
|
@@ -28,23 +28,12 @@ import { type AttentionItem } from '../feed/attention.js';
|
|
|
28
28
|
import { type DesktopNotification } from '../menubar/notify-desktop.js';
|
|
29
29
|
import { BasePeriodicService, type DaemonContext } from './service.js';
|
|
30
30
|
import type { DaemonServiceId } from '../daemon-services.js';
|
|
31
|
-
/**
|
|
32
|
-
* The banner for one attention item, or `undefined` when its kind does not
|
|
33
|
-
* notify (`done` comes from the run process; `declared`/`review` are surfaced in
|
|
34
|
-
* the feed, not as a native banner). Pure — the service and its test both build
|
|
35
|
-
* through here, so what ships is what is asserted.
|
|
36
|
-
*/
|
|
37
31
|
export declare function buildAttentionNotification(item: AttentionItem, session: ActiveSession): DesktopNotification | undefined;
|
|
38
32
|
interface AttentionNotifyServiceOptions {
|
|
39
|
-
/** Live-session source (default: the real active-session query). Injected in tests. */
|
|
40
33
|
getSessions?: () => Promise<ActiveSession[]>;
|
|
41
|
-
/** Notifier (default: the real desktop notifier). Injected in tests to capture posts. */
|
|
42
34
|
notify?: (n: DesktopNotification) => void;
|
|
43
|
-
/** Feed store root (default: the real feed dir). Overridden in tests. */
|
|
44
35
|
feedRoot?: string;
|
|
45
|
-
/** Notified-ledger dir (default: `<feedRoot>/notified`). Overridden in tests. */
|
|
46
36
|
ledgerDir?: string;
|
|
47
|
-
/** Clock (default: `Date.now`). Injected in tests. */
|
|
48
37
|
now?: () => number;
|
|
49
38
|
}
|
|
50
39
|
export declare class AttentionNotifyService extends BasePeriodicService {
|
|
@@ -61,7 +50,6 @@ export declare class AttentionNotifyService extends BasePeriodicService {
|
|
|
61
50
|
protected onStart(_ctx: DaemonContext): Promise<void>;
|
|
62
51
|
protected onStop(): Promise<void>;
|
|
63
52
|
protected onTick(ctx: DaemonContext): Promise<void>;
|
|
64
|
-
/** Filesystem-safe sidecar name for an attention key (`host/session/generation`). */
|
|
65
53
|
private ledgerPath;
|
|
66
54
|
private hasNotified;
|
|
67
55
|
private markNotified;
|