@phnx-labs/agents-cli 1.22.119 → 1.22.121
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +236 -0
- package/README.md +19 -2
- package/dist/bootstrap.d.ts +0 -15
- package/dist/bootstrap.js +10 -409
- package/dist/cli/command-registry.d.ts +0 -58
- package/dist/cli/command-registry.js +2 -74
- package/dist/commands/accounts.d.ts +0 -17
- package/dist/commands/accounts.js +1 -52
- package/dist/commands/alias.d.ts +0 -12
- package/dist/commands/alias.js +0 -6
- package/dist/commands/apply.d.ts +0 -15
- package/dist/commands/apply.js +0 -63
- package/dist/commands/audit.d.ts +0 -12
- package/dist/commands/audit.js +0 -13
- package/dist/commands/auth.js +4 -12
- package/dist/commands/beta.d.ts +0 -6
- package/dist/commands/beta.js +2 -6
- package/dist/commands/browser-sessions-picker.d.ts +0 -8
- package/dist/commands/browser-sessions-picker.js +0 -26
- package/dist/commands/browser.d.ts +0 -57
- package/dist/commands/browser.js +0 -80
- package/dist/commands/budget.d.ts +0 -13
- package/dist/commands/budget.js +0 -2
- package/dist/commands/cli.d.ts +0 -12
- package/dist/commands/cli.js +0 -4
- package/dist/commands/cloud.d.ts +0 -9
- package/dist/commands/cloud.js +0 -43
- package/dist/commands/commands.d.ts +0 -9
- package/dist/commands/commands.js +0 -18
- package/dist/commands/computer-sessions-picker.d.ts +0 -11
- package/dist/commands/computer-sessions-picker.js +0 -29
- package/dist/commands/computer.d.ts +0 -62
- package/dist/commands/computer.js +3 -114
- package/dist/commands/config.d.ts +0 -14
- package/dist/commands/config.js +21 -60
- package/dist/commands/cost.d.ts +0 -11
- package/dist/commands/cost.js +1 -17
- package/dist/commands/daemon-test-harness.d.ts +0 -32
- package/dist/commands/daemon-test-harness.js +1 -36
- package/dist/commands/daemon.d.ts +0 -46
- package/dist/commands/daemon.js +8 -255
- package/dist/commands/detach-core.d.ts +0 -28
- package/dist/commands/detach-core.js +0 -30
- package/dist/commands/detach.d.ts +1 -12
- package/dist/commands/detach.js +16 -52
- package/dist/commands/device-config-test-harness.js +0 -12
- package/dist/commands/doctor.d.ts +0 -103
- package/dist/commands/doctor.js +3 -279
- package/dist/commands/events.d.ts +0 -29
- package/dist/commands/events.js +1 -55
- package/dist/commands/exec.d.ts +0 -163
- package/dist/commands/exec.js +15 -964
- package/dist/commands/factory.d.ts +0 -6
- package/dist/commands/factory.js +0 -2
- package/dist/commands/feed-watch.js +0 -20
- package/dist/commands/feed.d.ts +0 -38
- package/dist/commands/feed.js +1 -151
- package/dist/commands/feedback.d.ts +0 -5
- package/dist/commands/feedback.js +0 -5
- package/dist/commands/fleet-capture.d.ts +0 -12
- package/dist/commands/fleet-capture.js +1 -39
- package/dist/commands/focus.d.ts +6 -94
- package/dist/commands/focus.js +13 -183
- package/dist/commands/fork.d.ts +0 -21
- package/dist/commands/fork.js +0 -45
- package/dist/commands/funnel.d.ts +0 -3
- package/dist/commands/go.d.ts +2 -71
- package/dist/commands/go.js +5 -99
- package/dist/commands/harness-hooks.d.ts +0 -41
- package/dist/commands/harness-hooks.js +0 -48
- package/dist/commands/harness-wizard.d.ts +0 -137
- package/dist/commands/harness-wizard.js +0 -109
- package/dist/commands/harness.d.ts +0 -63
- package/dist/commands/harness.js +0 -103
- package/dist/commands/hooks.d.ts +0 -9
- package/dist/commands/hooks.js +0 -26
- package/dist/commands/humans.d.ts +0 -8
- package/dist/commands/humans.js +0 -8
- package/dist/commands/import.d.ts +0 -22
- package/dist/commands/import.js +0 -79
- package/dist/commands/insights.d.ts +0 -37
- package/dist/commands/insights.js +3 -115
- package/dist/commands/inspect.d.ts +0 -117
- package/dist/commands/inspect.js +2 -448
- package/dist/commands/lease.d.ts +0 -28
- package/dist/commands/lease.js +0 -43
- package/dist/commands/logs.d.ts +0 -23
- package/dist/commands/logs.js +0 -30
- package/dist/commands/mailboxes.d.ts +0 -18
- package/dist/commands/mailboxes.js +0 -29
- package/dist/commands/mcp.d.ts +0 -9
- package/dist/commands/mcp.js +0 -53
- package/dist/commands/memory.d.ts +0 -7
- package/dist/commands/memory.js +0 -7
- package/dist/commands/menubar.d.ts +0 -8
- package/dist/commands/menubar.js +0 -24
- package/dist/commands/message.d.ts +0 -23
- package/dist/commands/message.js +0 -50
- package/dist/commands/mine.d.ts +0 -22
- package/dist/commands/mine.js +0 -21
- package/dist/commands/models.d.ts +0 -8
- package/dist/commands/models.js +0 -33
- package/dist/commands/modes.d.ts +0 -10
- package/dist/commands/modes.js +0 -13
- package/dist/commands/monitors.d.ts +0 -9
- package/dist/commands/monitors.js +3 -160
- package/dist/commands/open.d.ts +0 -26
- package/dist/commands/open.js +0 -10
- package/dist/commands/output.d.ts +0 -18
- package/dist/commands/output.js +1 -34
- package/dist/commands/packages-materialize.d.ts +0 -11
- package/dist/commands/packages-materialize.js +0 -3
- package/dist/commands/packages.d.ts +0 -10
- package/dist/commands/packages.js +0 -50
- package/dist/commands/perf.d.ts +0 -41
- package/dist/commands/perf.js +0 -55
- package/dist/commands/permissions.d.ts +0 -9
- package/dist/commands/permissions.js +0 -43
- package/dist/commands/plugins.d.ts +0 -14
- package/dist/commands/plugins.js +2 -55
- package/dist/commands/profiles.d.ts +0 -25
- package/dist/commands/profiles.js +0 -27
- package/dist/commands/projects-todo.d.ts +2 -0
- package/dist/commands/projects-todo.js +132 -0
- package/dist/commands/projects.d.ts +0 -85
- package/dist/commands/projects.js +344 -291
- package/dist/commands/prune.js +0 -30
- package/dist/commands/ps-roster.d.ts +92 -0
- package/dist/commands/ps-roster.js +744 -0
- package/dist/commands/ps.d.ts +6 -0
- package/dist/commands/ps.js +98 -0
- package/dist/commands/refresh-rules.d.ts +0 -13
- package/dist/commands/refresh-rules.js +0 -14
- package/dist/commands/reminders.d.ts +0 -7
- package/dist/commands/repo.d.ts +0 -89
- package/dist/commands/repo.js +7 -205
- package/dist/commands/resource-view.d.ts +0 -33
- package/dist/commands/resource-view.js +0 -49
- package/dist/commands/resume.d.ts +1 -19
- package/dist/commands/resume.js +0 -50
- package/dist/commands/route.d.ts +0 -10
- package/dist/commands/route.js +0 -19
- package/dist/commands/routines.d.ts +0 -42
- package/dist/commands/routines.js +5 -290
- package/dist/commands/routines.test-fixture.d.ts +0 -34
- package/dist/commands/routines.test-fixture.js +4 -100
- package/dist/commands/rules.d.ts +0 -9
- package/dist/commands/rules.js +1 -6
- package/dist/commands/run-account-picker.d.ts +0 -59
- package/dist/commands/run-account-picker.js +0 -71
- package/dist/commands/run-broadcast.d.ts +0 -9
- package/dist/commands/run-broadcast.js +0 -7
- package/dist/commands/run-cloud.d.ts +0 -15
- package/dist/commands/run-cloud.js +0 -37
- package/dist/commands/run-device-picker.d.ts +0 -25
- package/dist/commands/run-device-picker.js +1 -53
- package/dist/commands/secrets-passthrough.d.ts +0 -31
- package/dist/commands/secrets-passthrough.js +0 -10
- package/dist/commands/send.d.ts +0 -20
- package/dist/commands/send.js +14 -18
- package/dist/commands/sessions-backfill.d.ts +0 -7
- package/dist/commands/sessions-backfill.js +1 -16
- package/dist/commands/sessions-backup-setup.js +0 -11
- package/dist/commands/sessions-bookmark.d.ts +0 -8
- package/dist/commands/sessions-bookmark.js +0 -28
- package/dist/commands/sessions-browser.d.ts +2 -117
- package/dist/commands/sessions-browser.js +5 -243
- package/dist/commands/sessions-export.d.ts +1 -26
- package/dist/commands/sessions-export.js +3 -81
- package/dist/commands/sessions-import.d.ts +0 -14
- package/dist/commands/sessions-import.js +0 -59
- package/dist/commands/sessions-inject.d.ts +0 -60
- package/dist/commands/sessions-inject.js +3 -96
- package/dist/commands/sessions-migrate.d.ts +2 -37
- package/dist/commands/sessions-migrate.js +7 -159
- package/dist/commands/sessions-optimize.d.ts +0 -12
- package/dist/commands/sessions-picker-factory.d.ts +0 -7
- package/dist/commands/sessions-picker-factory.js +0 -8
- package/dist/commands/sessions-picker.d.ts +4 -103
- package/dist/commands/sessions-picker.js +13 -352
- package/dist/commands/sessions-render.d.ts +1 -2
- package/dist/commands/sessions-render.js +3 -7
- package/dist/commands/sessions-resume.d.ts +1 -24
- package/dist/commands/sessions-resume.js +2 -65
- package/dist/commands/sessions-share.d.ts +1 -9
- package/dist/commands/sessions-share.js +1 -45
- package/dist/commands/sessions-stats.d.ts +0 -24
- package/dist/commands/sessions-stats.js +0 -49
- package/dist/commands/sessions-stop.d.ts +1 -20
- package/dist/commands/sessions-stop.js +4 -9
- package/dist/commands/sessions-tail.d.ts +1 -19
- package/dist/commands/sessions-tail.js +3 -36
- package/dist/commands/sessions-trace.d.ts +5 -36
- package/dist/commands/sessions-trace.js +7 -82
- package/dist/commands/sessions.d.ts +1 -666
- package/dist/commands/sessions.js +30 -2279
- package/dist/commands/sessions.test-fixture.d.ts +0 -9
- package/dist/commands/sessions.test-fixture.js +8 -23
- package/dist/commands/setup-accounts.d.ts +0 -6
- package/dist/commands/setup-browser.d.ts +0 -23
- package/dist/commands/setup-browser.js +0 -28
- package/dist/commands/setup-computer.d.ts +0 -16
- package/dist/commands/setup-computer.js +0 -28
- package/dist/commands/setup-fleet.d.ts +0 -8
- package/dist/commands/setup-fleet.js +0 -11
- package/dist/commands/setup-mine.d.ts +0 -14
- package/dist/commands/setup-mine.js +0 -25
- package/dist/commands/setup-preferences.d.ts +0 -47
- package/dist/commands/setup-preferences.js +0 -53
- package/dist/commands/setup-secrets.d.ts +2 -24
- package/dist/commands/setup-secrets.js +0 -24
- package/dist/commands/setup-term.d.ts +0 -21
- package/dist/commands/setup-term.js +0 -21
- package/dist/commands/setup-terminal.d.ts +0 -1
- package/dist/commands/setup-terminal.js +0 -1
- package/dist/commands/setup-tools.d.ts +2 -0
- package/dist/commands/setup-tools.js +73 -0
- package/dist/commands/setup.d.ts +0 -20
- package/dist/commands/setup.js +4 -57
- package/dist/commands/skills.d.ts +0 -9
- package/dist/commands/skills.js +1 -22
- package/dist/commands/snapshot.d.ts +0 -9
- package/dist/commands/snapshot.js +0 -10
- package/dist/commands/ssh.d.ts +0 -64
- package/dist/commands/ssh.js +9 -420
- package/dist/commands/status.d.ts +0 -12
- package/dist/commands/status.js +0 -26
- package/dist/commands/subagents.d.ts +0 -8
- package/dist/commands/subagents.js +0 -31
- package/dist/commands/sync.d.ts +0 -37
- package/dist/commands/sync.js +0 -256
- package/dist/commands/teams-picker.d.ts +0 -3
- package/dist/commands/teams-picker.js +0 -34
- package/dist/commands/teams.d.ts +1 -76
- package/dist/commands/teams.js +9 -477
- package/dist/commands/tmux.d.ts +0 -25
- package/dist/commands/tmux.js +0 -46
- package/dist/commands/traces.js +0 -19
- package/dist/commands/trash.d.ts +0 -17
- package/dist/commands/trash.js +1 -11
- package/dist/commands/uninstall.d.ts +0 -9
- package/dist/commands/uninstall.js +0 -6
- package/dist/commands/update.d.ts +0 -22
- package/dist/commands/update.js +0 -44
- package/dist/commands/upgrade.d.ts +0 -1
- package/dist/commands/upgrade.js +0 -1
- package/dist/commands/utils.d.ts +0 -85
- package/dist/commands/utils.js +1 -95
- package/dist/commands/versions.d.ts +0 -16
- package/dist/commands/versions.js +0 -134
- package/dist/commands/view.d.ts +0 -90
- package/dist/commands/view.js +4 -343
- package/dist/commands/watchdog.d.ts +0 -19
- package/dist/commands/watchdog.js +3 -43
- package/dist/commands/webhook.d.ts +0 -8
- package/dist/commands/webhook.js +0 -14
- package/dist/commands/workflows.d.ts +0 -8
- package/dist/commands/workflows.js +0 -6
- package/dist/index.d.ts +0 -25
- package/dist/index.js +5 -119
- package/dist/lib/account-capabilities.d.ts +0 -34
- package/dist/lib/account-capabilities.js +0 -32
- package/dist/lib/account-catalog.d.ts +0 -128
- package/dist/lib/account-catalog.js +8 -154
- package/dist/lib/account-provider-registry.d.ts +0 -14
- package/dist/lib/account-provider-registry.js +0 -8
- package/dist/lib/account-registry.d.ts +0 -74
- package/dist/lib/account-registry.js +14 -189
- package/dist/lib/account-schema.d.ts +0 -19
- package/dist/lib/account-schema.js +0 -43
- package/dist/lib/accounting/account-launch.d.ts +0 -15
- package/dist/lib/accounting/account-launch.js +1 -3
- package/dist/lib/accounting/account-pool-collect.d.ts +0 -26
- package/dist/lib/accounting/account-pool-collect.js +0 -42
- package/dist/lib/accounting/account-pool.d.ts +0 -41
- package/dist/lib/accounting/account-pool.js +0 -17
- package/dist/lib/accounting/capacity.d.ts +0 -32
- package/dist/lib/accounting/capacity.js +0 -32
- package/dist/lib/accounting/rotate.d.ts +0 -518
- package/dist/lib/accounting/rotate.js +4 -598
- package/dist/lib/accounting/usage-ingest.d.ts +0 -1
- package/dist/lib/accounting/usage-ingest.js +0 -44
- package/dist/lib/accounting/usage-sync.d.ts +0 -60
- package/dist/lib/accounting/usage-sync.js +4 -51
- package/dist/lib/accounting/usage.d.ts +0 -632
- package/dist/lib/accounting/usage.js +14 -1055
- package/dist/lib/accounts/add.d.ts +0 -60
- package/dist/lib/accounts/add.js +0 -127
- package/dist/lib/accounts/auth-operation-lock.d.ts +0 -1
- package/dist/lib/accounts/auth-operation-lock.js +0 -4
- package/dist/lib/accounts/migrate.d.ts +0 -9
- package/dist/lib/accounts/migrate.js +3 -42
- package/dist/lib/accounts/slots.d.ts +0 -25
- package/dist/lib/accounts/slots.js +1 -49
- package/dist/lib/acp/client.d.ts +0 -16
- package/dist/lib/acp/client.js +0 -29
- package/dist/lib/acp/harnesses.d.ts +0 -15
- package/dist/lib/acp/harnesses.js +0 -16
- package/dist/lib/acp/run.d.ts +0 -8
- package/dist/lib/acp/run.js +0 -8
- package/dist/lib/actor.d.ts +1 -71
- package/dist/lib/actor.js +1 -99
- package/dist/lib/add-dir.d.ts +0 -46
- package/dist/lib/add-dir.js +1 -70
- package/dist/lib/address.d.ts +0 -17
- package/dist/lib/address.js +0 -15
- package/dist/lib/agent-cli-commands.d.ts +0 -10
- package/dist/lib/agent-cli-commands.js +0 -10
- package/dist/lib/agent-modes.d.ts +0 -29
- package/dist/lib/agent-modes.js +0 -31
- package/dist/lib/agent-spec/agents.d.ts +0 -426
- package/dist/lib/agent-spec/agents.js +37 -924
- package/dist/lib/agent-spec/index.d.ts +0 -5
- package/dist/lib/agent-spec/index.js +0 -14
- package/dist/lib/agent-spec/materialize.d.ts +0 -10
- package/dist/lib/agent-spec/materialize.js +2 -139
- package/dist/lib/agent-spec/package-resolve.d.ts +0 -8
- package/dist/lib/agent-spec/package-resolve.js +1 -44
- package/dist/lib/agent-spec/package-schema.d.ts +0 -2
- package/dist/lib/agent-spec/package-schema.js +0 -11
- package/dist/lib/agent-spec/package-types.d.ts +0 -27
- package/dist/lib/agent-spec/package-types.js +0 -1
- package/dist/lib/agent-spec/primitives.d.ts +0 -18
- package/dist/lib/agent-spec/primitives.js +0 -27
- package/dist/lib/agent-spec/provider.js +0 -2
- package/dist/lib/agent-spec/resolve.d.ts +0 -23
- package/dist/lib/agent-spec/resolve.js +0 -41
- package/dist/lib/agent-spec/types.d.ts +0 -34
- package/dist/lib/agent-spec/types.js +0 -6
- package/dist/lib/agents.d.ts +0 -1
- package/dist/lib/agents.js +0 -1
- package/dist/lib/analytics/mix-commands.d.ts +0 -23
- package/dist/lib/analytics/mix-commands.js +0 -26
- package/dist/lib/analytics/recipes.d.ts +0 -1
- package/dist/lib/analytics/recipes.js +5 -10
- package/dist/lib/analytics/usage-db.js +4 -6
- package/dist/lib/answer-router.d.ts +0 -61
- package/dist/lib/answer-router.js +0 -57
- package/dist/lib/app-bundle-install.d.ts +0 -13
- package/dist/lib/app-bundle-install.js +0 -50
- package/dist/lib/artifact-actions.d.ts +0 -15
- package/dist/lib/artifact-actions.js +0 -18
- package/dist/lib/artifacts-client.d.ts +0 -10
- package/dist/lib/artifacts-client.js +0 -17
- package/dist/lib/ask-classifier.d.ts +0 -38
- package/dist/lib/ask-classifier.js +0 -27
- package/dist/lib/audit/log.d.ts +0 -47
- package/dist/lib/audit/log.js +1 -59
- package/dist/lib/auth-health.d.ts +0 -213
- package/dist/lib/auth-health.js +16 -266
- package/dist/lib/auth-mint.d.ts +0 -83
- package/dist/lib/auth-mint.js +8 -85
- package/dist/lib/auto-pull-worker.d.ts +0 -10
- package/dist/lib/auto-pull-worker.js +3 -48
- package/dist/lib/auto-pull.d.ts +0 -64
- package/dist/lib/auto-pull.js +0 -79
- package/dist/lib/beta.d.ts +0 -9
- package/dist/lib/beta.js +0 -9
- package/dist/lib/binary-shadow.d.ts +0 -22
- package/dist/lib/binary-shadow.js +4 -34
- package/dist/lib/boot-profile.d.ts +0 -10
- package/dist/lib/boot-profile.js +1 -31
- package/dist/lib/brand.d.ts +0 -20
- package/dist/lib/brand.js +0 -50
- package/dist/lib/browser/context.d.ts +0 -54
- package/dist/lib/browser/context.js +0 -49
- package/dist/lib/browser/paths.d.ts +0 -21
- package/dist/lib/browser/paths.js +0 -26
- package/dist/lib/browser/record.d.ts +0 -34
- package/dist/lib/browser/record.js +0 -38
- package/dist/lib/browser/sessions-list.d.ts +1 -79
- package/dist/lib/browser/sessions-list.js +2 -98
- package/dist/lib/browser-client.d.ts +0 -112
- package/dist/lib/browser-client.js +1 -90
- package/dist/lib/budget/config.d.ts +0 -6
- package/dist/lib/budget/config.js +0 -29
- package/dist/lib/budget/enforce.d.ts +0 -50
- package/dist/lib/budget/enforce.js +0 -27
- package/dist/lib/budget/ledger.d.ts +0 -23
- package/dist/lib/budget/ledger.js +0 -28
- package/dist/lib/budget/live-cloud.d.ts +0 -26
- package/dist/lib/budget/live-cloud.js +0 -12
- package/dist/lib/budget/live-team.d.ts +0 -17
- package/dist/lib/budget/live-team.js +1 -35
- package/dist/lib/budget/preflight.d.ts +0 -51
- package/dist/lib/budget/preflight.js +0 -36
- package/dist/lib/byok-usage.d.ts +0 -20
- package/dist/lib/byok-usage.js +1 -24
- package/dist/lib/capabilities.d.ts +0 -24
- package/dist/lib/capabilities.js +0 -29
- package/dist/lib/catchup.d.ts +0 -87
- package/dist/lib/catchup.js +1 -81
- package/dist/lib/channels/owner-forward.d.ts +0 -70
- package/dist/lib/channels/owner-forward.js +1 -43
- package/dist/lib/channels/owner-sink.js +0 -21
- package/dist/lib/channels/providers/desktop.d.ts +0 -37
- package/dist/lib/channels/providers/desktop.js +0 -72
- package/dist/lib/channels/providers/index.d.ts +0 -1
- package/dist/lib/channels/providers/index.js +2 -6
- package/dist/lib/channels/providers/mailbox.js +0 -7
- package/dist/lib/channels/providers/openclaw-telegram.js +0 -8
- package/dist/lib/channels/providers/rush.d.ts +0 -2
- package/dist/lib/channels/providers/rush.js +0 -26
- package/dist/lib/channels/providers/session.d.ts +2 -0
- package/dist/lib/channels/providers/session.js +26 -0
- package/dist/lib/channels/registry.d.ts +0 -27
- package/dist/lib/channels/registry.js +0 -10
- package/dist/lib/channels/resolve.d.ts +0 -19
- package/dist/lib/channels/resolve.js +0 -2
- package/dist/lib/channels/send.d.ts +0 -50
- package/dist/lib/channels/send.js +0 -25
- package/dist/lib/checkpoint.d.ts +0 -36
- package/dist/lib/checkpoint.js +0 -28
- package/dist/lib/claude-account-token.d.ts +0 -98
- package/dist/lib/claude-account-token.js +7 -169
- package/dist/lib/claude-statusline.d.ts +0 -41
- package/dist/lib/claude-statusline.js +0 -68
- package/dist/lib/cli-entry.d.ts +0 -26
- package/dist/lib/cli-entry.js +1 -61
- package/dist/lib/cli-resources.d.ts +31 -89
- package/dist/lib/cli-resources.js +116 -152
- package/dist/lib/cloud/antigravity.d.ts +0 -29
- package/dist/lib/cloud/antigravity.js +0 -36
- package/dist/lib/cloud/codex.d.ts +0 -8
- package/dist/lib/cloud/codex.js +0 -41
- package/dist/lib/cloud/cursor.d.ts +0 -5
- package/dist/lib/cloud/cursor.js +2 -7
- package/dist/lib/cloud/dispatch.d.ts +0 -13
- package/dist/lib/cloud/dispatch.js +1 -48
- package/dist/lib/cloud/factory.d.ts +0 -52
- package/dist/lib/cloud/factory.js +3 -67
- package/dist/lib/cloud/host.d.ts +0 -39
- package/dist/lib/cloud/host.js +5 -48
- package/dist/lib/cloud/registry.d.ts +0 -25
- package/dist/lib/cloud/registry.js +0 -29
- package/dist/lib/cloud/rush.d.ts +0 -47
- package/dist/lib/cloud/rush.js +1 -82
- package/dist/lib/cloud/session-index.d.ts +0 -27
- package/dist/lib/cloud/session-index.js +1 -32
- package/dist/lib/cloud/store.d.ts +0 -18
- package/dist/lib/cloud/store.js +0 -28
- package/dist/lib/cloud/stream.d.ts +0 -14
- package/dist/lib/cloud/stream.js +0 -25
- package/dist/lib/cloud/types.d.ts +0 -168
- package/dist/lib/cloud/types.js +0 -46
- package/dist/lib/cloudflare/creds.d.ts +0 -2
- package/dist/lib/cloudflare/creds.js +0 -14
- package/dist/lib/cloudflare/provision.d.ts +0 -8
- package/dist/lib/cloudflare/provision.js +1 -19
- package/dist/lib/codex-home.d.ts +0 -60
- package/dist/lib/codex-home.js +2 -72
- package/dist/lib/codex-policy.d.ts +0 -10
- package/dist/lib/codex-policy.js +0 -13
- package/dist/lib/command-skills.d.ts +0 -10
- package/dist/lib/command-skills.js +0 -10
- package/dist/lib/commands.d.ts +0 -74
- package/dist/lib/commands.js +0 -112
- package/dist/lib/comms-render.d.ts +0 -5
- package/dist/lib/comms-render.js +0 -5
- package/dist/lib/computer/context.d.ts +0 -23
- package/dist/lib/computer/context.js +0 -14
- package/dist/lib/computer/policy.d.ts +0 -20
- package/dist/lib/computer/policy.js +0 -53
- package/dist/lib/computer/record.d.ts +0 -33
- package/dist/lib/computer/record.js +1 -48
- package/dist/lib/computer/sessions-list.d.ts +1 -128
- package/dist/lib/computer/sessions-list.js +6 -165
- package/dist/lib/computer-client.d.ts +0 -106
- package/dist/lib/computer-client.js +5 -86
- package/dist/lib/concurrency.d.ts +0 -14
- package/dist/lib/concurrency.js +0 -3
- package/dist/lib/config-drift.d.ts +0 -31
- package/dist/lib/config-drift.js +0 -32
- package/dist/lib/config-keys.d.ts +1 -65
- package/dist/lib/config-keys.js +6 -52
- package/dist/lib/config-transfer.d.ts +0 -14
- package/dist/lib/config-transfer.js +0 -26
- package/dist/lib/convert.d.ts +0 -17
- package/dist/lib/convert.js +0 -18
- package/dist/lib/crabbox/cli.d.ts +0 -156
- package/dist/lib/crabbox/cli.js +1 -188
- package/dist/lib/crabbox/config.d.ts +0 -18
- package/dist/lib/crabbox/config.js +1 -19
- package/dist/lib/crabbox/lease.d.ts +0 -93
- package/dist/lib/crabbox/lease.js +4 -148
- package/dist/lib/crabbox/progress.d.ts +0 -56
- package/dist/lib/crabbox/progress.js +2 -49
- package/dist/lib/crabbox/runtimes.d.ts +0 -94
- package/dist/lib/crabbox/runtimes.js +1 -111
- package/dist/lib/crabbox/setup-copy.d.ts +0 -64
- package/dist/lib/crabbox/setup-copy.js +1 -53
- package/dist/lib/daemon/account-state-daemon-service.d.ts +0 -48
- package/dist/lib/daemon/account-state-daemon-service.js +2 -63
- package/dist/lib/daemon/attention-notify-service.d.ts +0 -12
- package/dist/lib/daemon/attention-notify-service.js +1 -24
- package/dist/lib/daemon/auth-sync-service.d.ts +0 -28
- package/dist/lib/daemon/auth-sync-service.js +0 -56
- package/dist/lib/daemon/catchup-service.d.ts +0 -34
- package/dist/lib/daemon/catchup-service.js +0 -30
- package/dist/lib/daemon/daemon.d.ts +0 -374
- package/dist/lib/daemon/daemon.js +44 -1049
- package/dist/lib/daemon/daemon.test-fixture.d.ts +0 -19
- package/dist/lib/daemon/daemon.test-fixture.js +1 -24
- package/dist/lib/daemon/device-probe-service.d.ts +0 -16
- package/dist/lib/daemon/device-probe-service.js +0 -20
- package/dist/lib/daemon/feed-stream-service.d.ts +0 -15
- package/dist/lib/daemon/feed-stream-service.js +0 -20
- package/dist/lib/daemon/harness-update-service.d.ts +2 -61
- package/dist/lib/daemon/harness-update-service.js +6 -86
- package/dist/lib/daemon/heartbeat-service.d.ts +0 -1
- package/dist/lib/daemon/heartbeat-service.js +0 -1
- package/dist/lib/daemon/leaked-daemons.d.ts +0 -46
- package/dist/lib/daemon/leaked-daemons.js +2 -78
- package/dist/lib/daemon/monitor-engine-service.d.ts +0 -13
- package/dist/lib/daemon/monitor-engine-service.js +3 -15
- package/dist/lib/daemon/runner.d.ts +0 -194
- package/dist/lib/daemon/runner.js +39 -760
- package/dist/lib/daemon/self-heal-service.d.ts +18 -17
- package/dist/lib/daemon/self-heal-service.js +83 -37
- package/dist/lib/daemon/self-update-service.d.ts +1 -131
- package/dist/lib/daemon/self-update-service.js +26 -189
- package/dist/lib/daemon/service.d.ts +0 -73
- package/dist/lib/daemon/service.js +0 -34
- package/dist/lib/daemon/session-index-service.d.ts +0 -12
- package/dist/lib/daemon/session-index-service.js +0 -23
- package/dist/lib/daemon/session-state-service.d.ts +0 -8
- package/dist/lib/daemon/session-state-service.js +0 -8
- package/dist/lib/daemon/session-summarizer-service.d.ts +0 -14
- package/dist/lib/daemon/session-summarizer-service.js +1 -19
- package/dist/lib/daemon/session-title-service.d.ts +0 -25
- package/dist/lib/daemon/session-title-service.js +0 -32
- package/dist/lib/daemon/state-dir-check-service.d.ts +0 -24
- package/dist/lib/daemon/state-dir-check-service.js +0 -29
- package/dist/lib/daemon/supervisor.d.ts +0 -112
- package/dist/lib/daemon/supervisor.js +4 -147
- package/dist/lib/daemon/testdata/process-view-daemon.js +0 -2
- package/dist/lib/daemon/testdata/process-view-start.js +0 -5
- package/dist/lib/daemon/tmux-reap-service.d.ts +0 -1
- package/dist/lib/daemon/tmux-reap-service.js +0 -1
- package/dist/lib/daemon/usage-sync-service.d.ts +0 -23
- package/dist/lib/daemon/usage-sync-service.js +0 -26
- package/dist/lib/daemon/watchdog-service.d.ts +0 -9
- package/dist/lib/daemon/watchdog-service.js +0 -13
- package/dist/lib/daemon/webhook-receiver-service.d.ts +0 -1
- package/dist/lib/daemon/webhook-receiver-service.js +0 -1
- package/dist/lib/daemon-health.d.ts +0 -55
- package/dist/lib/daemon-health.js +4 -77
- package/dist/lib/daemon-services.d.ts +0 -36
- package/dist/lib/daemon-services.js +0 -45
- package/dist/lib/daemon-ticks.d.ts +0 -126
- package/dist/lib/daemon-ticks.js +1 -156
- package/dist/lib/daemon-webhooks.d.ts +0 -57
- package/dist/lib/daemon-webhooks.js +2 -54
- package/dist/lib/deeplink/register.d.ts +0 -15
- package/dist/lib/deeplink/register.js +0 -60
- package/dist/lib/deeplink/url.d.ts +0 -24
- package/dist/lib/deeplink/url.js +1 -33
- package/dist/lib/device-config.d.ts +1 -192
- package/dist/lib/device-config.js +86 -240
- package/dist/lib/devices/config-migration.d.ts +0 -43
- package/dist/lib/devices/config-migration.js +7 -127
- package/dist/lib/devices/connect.d.ts +0 -168
- package/dist/lib/devices/connect.js +6 -254
- package/dist/lib/devices/device-docs.d.ts +0 -24
- package/dist/lib/devices/device-docs.js +0 -46
- package/dist/lib/devices/discovery-policy.d.ts +0 -30
- package/dist/lib/devices/discovery-policy.js +3 -34
- package/dist/lib/devices/doctor-findings.d.ts +0 -109
- package/dist/lib/devices/doctor-findings.js +30 -326
- package/dist/lib/devices/doctor-overview-cache.d.ts +0 -33
- package/dist/lib/devices/doctor-overview-cache.js +0 -81
- package/dist/lib/devices/fleet-divergence.d.ts +0 -89
- package/dist/lib/devices/fleet-divergence.js +1 -60
- package/dist/lib/devices/fleet-inventory.d.ts +0 -27
- package/dist/lib/devices/fleet-inventory.js +0 -38
- package/dist/lib/devices/fleet.d.ts +0 -95
- package/dist/lib/devices/fleet.js +0 -79
- package/dist/lib/devices/harness-inventory.d.ts +0 -75
- package/dist/lib/devices/harness-inventory.js +0 -101
- package/dist/lib/devices/health-report.d.ts +0 -37
- package/dist/lib/devices/health-report.js +0 -73
- package/dist/lib/devices/health.d.ts +0 -71
- package/dist/lib/devices/health.js +2 -82
- package/dist/lib/devices/interactive-host.d.ts +0 -10
- package/dist/lib/devices/interactive-host.js +0 -34
- package/dist/lib/devices/known-hosts.d.ts +0 -45
- package/dist/lib/devices/known-hosts.js +0 -77
- package/dist/lib/devices/pending.d.ts +0 -31
- package/dist/lib/devices/pending.js +7 -67
- package/dist/lib/devices/pool.d.ts +0 -36
- package/dist/lib/devices/pool.js +0 -30
- package/dist/lib/devices/reachability.d.ts +0 -25
- package/dist/lib/devices/reachability.js +0 -14
- package/dist/lib/devices/registry.d.ts +0 -141
- package/dist/lib/devices/registry.js +4 -151
- package/dist/lib/devices/resolve-profile.d.ts +0 -18
- package/dist/lib/devices/resolve-profile.js +0 -18
- package/dist/lib/devices/resolve-target.d.ts +0 -20
- package/dist/lib/devices/resolve-target.js +1 -51
- package/dist/lib/devices/rollout-verify.d.ts +1 -81
- package/dist/lib/devices/rollout-verify.js +0 -77
- package/dist/lib/devices/self-host.d.ts +0 -7
- package/dist/lib/devices/self-host.js +1 -29
- package/dist/lib/devices/ssh-config.d.ts +0 -18
- package/dist/lib/devices/ssh-config.js +0 -9
- package/dist/lib/devices/stats-cache.d.ts +0 -48
- package/dist/lib/devices/stats-cache.js +0 -80
- package/dist/lib/devices/sync.d.ts +0 -97
- package/dist/lib/devices/sync.js +0 -88
- package/dist/lib/devices/tailscale.d.ts +0 -18
- package/dist/lib/devices/tailscale.js +1 -38
- package/dist/lib/devices/terminfo.d.ts +0 -27
- package/dist/lib/devices/terminfo.js +2 -64
- package/dist/lib/devices/worker-pick.d.ts +0 -15
- package/dist/lib/devices/worker-pick.js +0 -48
- package/dist/lib/diff-text.d.ts +0 -18
- package/dist/lib/diff-text.js +0 -15
- package/dist/lib/doctor-diff.d.ts +0 -79
- package/dist/lib/doctor-diff.js +2 -181
- package/dist/lib/drift-sync.d.ts +0 -29
- package/dist/lib/drift-sync.js +0 -40
- package/dist/lib/drift.d.ts +0 -43
- package/dist/lib/drift.js +0 -31
- package/dist/lib/event-families.d.ts +0 -17
- package/dist/lib/event-families.js +0 -33
- package/dist/lib/event-provenance.d.ts +0 -4
- package/dist/lib/event-provenance.js +0 -5
- package/dist/lib/event-stream.d.ts +0 -29
- package/dist/lib/event-stream.js +0 -36
- package/dist/lib/events-ingest.d.ts +0 -27
- package/dist/lib/events-ingest.js +0 -54
- package/dist/lib/exec-account-home.d.ts +0 -24
- package/dist/lib/exec-account-home.js +0 -41
- package/dist/lib/exec-bounded.d.ts +1 -37
- package/dist/lib/exec-bounded.js +10 -46
- package/dist/lib/exec.d.ts +3 -583
- package/dist/lib/exec.js +18 -1025
- package/dist/lib/factory/snapshot.js +1 -15
- package/dist/lib/feed/activity-stream.d.ts +0 -27
- package/dist/lib/feed/activity-stream.js +4 -80
- package/dist/lib/feed/activity.d.ts +1 -243
- package/dist/lib/feed/activity.js +8 -273
- package/dist/lib/feed/answer.d.ts +0 -103
- package/dist/lib/feed/answer.js +0 -267
- package/dist/lib/feed/attention.d.ts +0 -56
- package/dist/lib/feed/attention.js +0 -161
- package/dist/lib/feed/envelope.d.ts +2 -17
- package/dist/lib/feed/envelope.js +0 -14
- package/dist/lib/feed/events.d.ts +0 -118
- package/dist/lib/feed/events.js +13 -213
- package/dist/lib/feed/feed.d.ts +1 -250
- package/dist/lib/feed/feed.js +24 -334
- package/dist/lib/feed/hub-server.d.ts +0 -100
- package/dist/lib/feed/hub-server.js +1 -191
- package/dist/lib/feed/hub.d.ts +0 -53
- package/dist/lib/feed/hub.js +0 -89
- package/dist/lib/feed/pr-status.d.ts +1 -19
- package/dist/lib/feed/pr-status.js +0 -18
- package/dist/lib/feed/tool-activity.d.ts +0 -59
- package/dist/lib/feed/tool-activity.js +1 -119
- package/dist/lib/feed/tools.d.ts +0 -100
- package/dist/lib/feed/tools.js +0 -89
- package/dist/lib/feed/watch.d.ts +0 -33
- package/dist/lib/feed/watch.js +2 -94
- package/dist/lib/feed-broadcast.d.ts +0 -148
- package/dist/lib/feed-broadcast.js +1 -283
- package/dist/lib/feed-outcome.d.ts +0 -50
- package/dist/lib/feed-outcome.js +1 -67
- package/dist/lib/feed-policy.d.ts +0 -6
- package/dist/lib/feed-policy.js +1 -27
- package/dist/lib/feed-post.d.ts +0 -61
- package/dist/lib/feed-post.js +4 -61
- package/dist/lib/feed-ranking.d.ts +1 -1
- package/dist/lib/fleet/apply.d.ts +0 -64
- package/dist/lib/fleet/apply.js +0 -125
- package/dist/lib/fleet/auth-sync.d.ts +0 -48
- package/dist/lib/fleet/auth-sync.js +4 -49
- package/dist/lib/fleet/capture.d.ts +0 -26
- package/dist/lib/fleet/capture.js +1 -36
- package/dist/lib/fleet/manifest.d.ts +0 -38
- package/dist/lib/fleet/manifest.js +0 -40
- package/dist/lib/fleet/types.d.ts +1 -138
- package/dist/lib/fleet/types.js +0 -12
- package/dist/lib/fleet-cache.d.ts +0 -12
- package/dist/lib/fleet-cache.js +0 -24
- package/dist/lib/fleet-shared-state.d.ts +6 -59
- package/dist/lib/fleet-shared-state.js +5 -51
- package/dist/lib/fleet-status.d.ts +0 -27
- package/dist/lib/fleet-status.js +0 -48
- package/dist/lib/format.d.ts +0 -74
- package/dist/lib/format.js +3 -77
- package/dist/lib/friction-heuristics.d.ts +0 -20
- package/dist/lib/friction-heuristics.js +0 -8
- package/dist/lib/fs-atomic.d.ts +0 -51
- package/dist/lib/fs-atomic.js +8 -66
- package/dist/lib/fs-walk.d.ts +0 -13
- package/dist/lib/fs-walk.js +0 -22
- package/dist/lib/fuzzy.d.ts +0 -29
- package/dist/lib/fuzzy.js +0 -31
- package/dist/lib/gemini-settings.js +0 -12
- package/dist/lib/git.d.ts +0 -366
- package/dist/lib/git.js +7 -574
- package/dist/lib/github/ci-failure.d.ts +30 -0
- package/dist/lib/github/ci-failure.js +95 -0
- package/dist/lib/github/gh-overload.d.ts +0 -38
- package/dist/lib/github/gh-overload.js +3 -55
- package/dist/lib/github/pr-mergeable.d.ts +3 -34
- package/dist/lib/github/pr-mergeable.js +2 -42
- package/dist/lib/github/pr-verdict.d.ts +0 -44
- package/dist/lib/github/pr-verdict.js +0 -36
- package/dist/lib/github/project-prs.d.ts +135 -105
- package/dist/lib/github/project-prs.js +530 -170
- package/dist/lib/github/release-drift.d.ts +45 -0
- package/dist/lib/github/release-drift.js +91 -0
- package/dist/lib/github/rest.d.ts +0 -50
- package/dist/lib/github/rest.js +0 -49
- package/dist/lib/github/viewer.d.ts +27 -0
- package/dist/lib/github/viewer.js +101 -0
- package/dist/lib/goose-commands.d.ts +0 -29
- package/dist/lib/goose-commands.js +3 -48
- package/dist/lib/harness/adapter.d.ts +0 -151
- package/dist/lib/harness/adapter.js +0 -41
- package/dist/lib/harness/adapters/claude.d.ts +0 -8
- package/dist/lib/harness/adapters/claude.js +0 -89
- package/dist/lib/harness/adapters/codex.js +0 -18
- package/dist/lib/harness/adapters/copilot.js +0 -3
- package/dist/lib/harness/adapters/cursor.js +0 -16
- package/dist/lib/harness/adapters/droid.js +0 -3
- package/dist/lib/harness/adapters/kimi.js +0 -19
- package/dist/lib/harness/adapters/muse.js +0 -9
- package/dist/lib/harness/adapters/opencode.js +0 -2
- package/dist/lib/harness/exec-config-version.d.ts +0 -2
- package/dist/lib/harness/exec-config-version.js +0 -13
- package/dist/lib/harness/index.js +0 -10
- package/dist/lib/harness-auth-capabilities.d.ts +0 -26
- package/dist/lib/harness-auth-capabilities.js +0 -18
- package/dist/lib/harness-connection-test.d.ts +0 -27
- package/dist/lib/harness-connection-test.js +2 -20
- package/dist/lib/heal.d.ts +0 -45
- package/dist/lib/heal.js +2 -82
- package/dist/lib/help.d.ts +0 -32
- package/dist/lib/help.js +0 -41
- package/dist/lib/helper-download.d.ts +0 -85
- package/dist/lib/helper-download.js +0 -95
- package/dist/lib/helper-versions.d.ts +0 -51
- package/dist/lib/helper-versions.js +1 -45
- package/dist/lib/hooks/cache.d.ts +0 -40
- package/dist/lib/hooks/cache.js +8 -122
- package/dist/lib/hooks/install.d.ts +0 -253
- package/dist/lib/hooks/install.js +49 -822
- package/dist/lib/hooks/match.d.ts +0 -24
- package/dist/lib/hooks/match.js +0 -31
- package/dist/lib/hooks/profile.d.ts +0 -21
- package/dist/lib/hooks/profile.js +0 -28
- package/dist/lib/hosts/credential-transport.d.ts +0 -6
- package/dist/lib/hosts/credential-transport.js +0 -17
- package/dist/lib/hosts/credentials.d.ts +0 -35
- package/dist/lib/hosts/credentials.js +0 -38
- package/dist/lib/hosts/dispatch.d.ts +0 -140
- package/dist/lib/hosts/dispatch.js +0 -176
- package/dist/lib/hosts/logs.d.ts +0 -25
- package/dist/lib/hosts/logs.js +1 -51
- package/dist/lib/hosts/option.d.ts +0 -12
- package/dist/lib/hosts/option.js +0 -12
- package/dist/lib/hosts/passthrough.d.ts +0 -129
- package/dist/lib/hosts/passthrough.js +12 -249
- package/dist/lib/hosts/progress.d.ts +0 -90
- package/dist/lib/hosts/progress.js +5 -115
- package/dist/lib/hosts/providers/devices.d.ts +0 -19
- package/dist/lib/hosts/providers/devices.js +1 -34
- package/dist/lib/hosts/providers/local.d.ts +0 -14
- package/dist/lib/hosts/providers/local.js +0 -22
- package/dist/lib/hosts/ready.d.ts +0 -99
- package/dist/lib/hosts/ready.js +0 -101
- package/dist/lib/hosts/reconcile.d.ts +0 -38
- package/dist/lib/hosts/reconcile.js +1 -50
- package/dist/lib/hosts/reconnect.d.ts +0 -75
- package/dist/lib/hosts/reconnect.js +0 -98
- package/dist/lib/hosts/registry.d.ts +0 -74
- package/dist/lib/hosts/registry.js +0 -110
- package/dist/lib/hosts/remote-cmd.d.ts +1 -228
- package/dist/lib/hosts/remote-cmd.js +19 -294
- package/dist/lib/hosts/remote-cmd.test-fixture.d.ts +0 -1
- package/dist/lib/hosts/remote-cmd.test-fixture.js +0 -12
- package/dist/lib/hosts/remote-os.d.ts +0 -19
- package/dist/lib/hosts/remote-os.js +0 -22
- package/dist/lib/hosts/remote-session-id.d.ts +0 -22
- package/dist/lib/hosts/remote-session-id.js +0 -24
- package/dist/lib/hosts/routing-flag.d.ts +0 -21
- package/dist/lib/hosts/routing-flag.js +0 -21
- package/dist/lib/hosts/run-target.d.ts +0 -53
- package/dist/lib/hosts/run-target.js +0 -56
- package/dist/lib/hosts/session-index.d.ts +1 -53
- package/dist/lib/hosts/session-index.js +2 -59
- package/dist/lib/hosts/session-marker.d.ts +0 -31
- package/dist/lib/hosts/session-marker.js +0 -32
- package/dist/lib/hosts/ssh-config.d.ts +0 -25
- package/dist/lib/hosts/ssh-config.js +1 -32
- package/dist/lib/hosts/tasks.d.ts +0 -54
- package/dist/lib/hosts/tasks.js +0 -35
- package/dist/lib/hosts/types.d.ts +0 -39
- package/dist/lib/hosts/types.js +0 -22
- package/dist/lib/humans.d.ts +0 -21
- package/dist/lib/humans.js +0 -30
- package/dist/lib/identity/client.d.ts +1 -35
- package/dist/lib/identity/client.js +3 -29
- package/dist/lib/identity/index.d.ts +3 -27
- package/dist/lib/identity/index.js +8 -24
- package/dist/lib/import.d.ts +0 -104
- package/dist/lib/import.js +1 -137
- package/dist/lib/installations/active-check.d.ts +0 -53
- package/dist/lib/installations/active-check.js +0 -49
- package/dist/lib/installations/index.d.ts +0 -9
- package/dist/lib/installations/index.js +0 -9
- package/dist/lib/installations/installation-lock.js +0 -8
- package/dist/lib/installations/launch-gate.d.ts +0 -56
- package/dist/lib/installations/launch-gate.js +0 -83
- package/dist/lib/installations/migrate.d.ts +0 -100
- package/dist/lib/installations/migrate.js +105 -572
- package/dist/lib/installations/native-command.d.ts +0 -1
- package/dist/lib/installations/native-command.js +0 -6
- package/dist/lib/installations/resolve.d.ts +0 -24
- package/dist/lib/installations/resolve.js +0 -24
- package/dist/lib/installations/shims.d.ts +0 -395
- package/dist/lib/installations/shims.js +30 -957
- package/dist/lib/installations/store.d.ts +0 -199
- package/dist/lib/installations/store.js +1 -297
- package/dist/lib/installations/strategies.d.ts +0 -44
- package/dist/lib/installations/strategies.js +0 -87
- package/dist/lib/installations/types.d.ts +1 -67
- package/dist/lib/installations/types.js +0 -6
- package/dist/lib/installations/update-cancellation.d.ts +0 -74
- package/dist/lib/installations/update-cancellation.js +0 -74
- package/dist/lib/installations/update-policy.d.ts +0 -57
- package/dist/lib/installations/update-policy.js +0 -62
- package/dist/lib/installations/update-runtime.d.ts +0 -88
- package/dist/lib/installations/update-runtime.js +1 -127
- package/dist/lib/installations/update.d.ts +0 -53
- package/dist/lib/installations/update.js +0 -95
- package/dist/lib/installations/versions.d.ts +0 -310
- package/dist/lib/installations/versions.js +14 -837
- package/dist/lib/isolation-boundary-report.d.ts +0 -7
- package/dist/lib/isolation-boundary-report.js +0 -7
- package/dist/lib/launch-identity.d.ts +0 -8
- package/dist/lib/launch-identity.js +0 -8
- package/dist/lib/linear-autoclose.d.ts +0 -25
- package/dist/lib/linear-autoclose.js +0 -19
- package/dist/lib/linear-cache.d.ts +0 -57
- package/dist/lib/linear-cache.js +1 -81
- package/dist/lib/linear-project-counts.d.ts +0 -83
- package/dist/lib/linear-project-counts.js +2 -64
- package/dist/lib/linear-projects.d.ts +0 -62
- package/dist/lib/linear-projects.js +0 -85
- package/dist/lib/linear-rate-limit.d.ts +0 -21
- package/dist/lib/linear-rate-limit.js +1 -93
- package/dist/lib/linux-userns.d.ts +1 -42
- package/dist/lib/linux-userns.js +0 -47
- package/dist/lib/lock-compromise.d.ts +0 -7
- package/dist/lib/lock-compromise.js +0 -7
- package/dist/lib/log-follow.d.ts +0 -2
- package/dist/lib/log-follow.js +5 -15
- package/dist/lib/loop.d.ts +0 -106
- package/dist/lib/loop.js +0 -135
- package/dist/lib/machine-id.d.ts +0 -19
- package/dist/lib/machine-id.js +0 -19
- package/dist/lib/mailbox-gc.d.ts +0 -7
- package/dist/lib/mailbox-gc.js +0 -25
- package/dist/lib/mailbox-target.d.ts +0 -31
- package/dist/lib/mailbox-target.js +0 -27
- package/dist/lib/mailbox.d.ts +0 -77
- package/dist/lib/mailbox.js +5 -105
- package/dist/lib/manifest.d.ts +0 -4
- package/dist/lib/manifest.js +0 -36
- package/dist/lib/markdown.d.ts +0 -3
- package/dist/lib/markdown.js +0 -9
- package/dist/lib/mcp-registry.d.ts +1 -50
- package/dist/lib/mcp-registry.js +0 -64
- package/dist/lib/mcp.d.ts +0 -115
- package/dist/lib/mcp.js +3 -199
- package/dist/lib/memory-cache.d.ts +0 -11
- package/dist/lib/memory-cache.js +0 -9
- package/dist/lib/memory.d.ts +0 -52
- package/dist/lib/memory.js +12 -74
- package/dist/lib/menubar/download-menubar.d.ts +0 -35
- package/dist/lib/menubar/download-menubar.js +0 -38
- package/dist/lib/menubar/install-menubar.d.ts +0 -405
- package/dist/lib/menubar/install-menubar.js +25 -667
- package/dist/lib/menubar/migrate-prefs.d.ts +0 -47
- package/dist/lib/menubar/migrate-prefs.js +1 -70
- package/dist/lib/menubar/notify-desktop.d.ts +0 -82
- package/dist/lib/menubar/notify-desktop.js +0 -68
- package/dist/lib/menubar/resolve-version.d.ts +0 -41
- package/dist/lib/menubar/resolve-version.js +2 -44
- package/dist/lib/menubar/snapshot.d.ts +13 -66
- package/dist/lib/menubar/snapshot.js +45 -39
- package/dist/lib/merged-resources.d.ts +0 -10
- package/dist/lib/merged-resources.js +0 -10
- package/dist/lib/migrate-fold.d.ts +0 -31
- package/dist/lib/migrate-fold.js +6 -38
- package/dist/lib/model-tier-overrides.d.ts +0 -30
- package/dist/lib/model-tier-overrides.js +0 -14
- package/dist/lib/model-tiers.d.ts +0 -43
- package/dist/lib/model-tiers.js +5 -78
- package/dist/lib/models.d.ts +0 -145
- package/dist/lib/models.js +3 -333
- package/dist/lib/monitors/config.d.ts +0 -187
- package/dist/lib/monitors/config.js +4 -101
- package/dist/lib/monitors/dispatch.d.ts +0 -22
- package/dist/lib/monitors/dispatch.js +0 -35
- package/dist/lib/monitors/engine.d.ts +1 -53
- package/dist/lib/monitors/engine.js +17 -106
- package/dist/lib/monitors/fingerprint.d.ts +0 -43
- package/dist/lib/monitors/fingerprint.js +0 -57
- package/dist/lib/monitors/pid-watch.d.ts +0 -31
- package/dist/lib/monitors/pid-watch.js +0 -31
- package/dist/lib/monitors/remote.d.ts +0 -52
- package/dist/lib/monitors/remote.js +0 -42
- package/dist/lib/monitors/sources/command.d.ts +2 -9
- package/dist/lib/monitors/sources/command.js +13 -34
- package/dist/lib/monitors/sources/device.d.ts +0 -10
- package/dist/lib/monitors/sources/device.js +0 -14
- package/dist/lib/monitors/sources/failure.d.ts +0 -27
- package/dist/lib/monitors/sources/failure.js +0 -27
- package/dist/lib/monitors/sources/file.d.ts +0 -10
- package/dist/lib/monitors/sources/file.js +0 -11
- package/dist/lib/monitors/sources/http.d.ts +0 -7
- package/dist/lib/monitors/sources/http.js +0 -9
- package/dist/lib/monitors/sources/index.d.ts +0 -9
- package/dist/lib/monitors/sources/index.js +0 -9
- package/dist/lib/monitors/sources/poll.d.ts +0 -8
- package/dist/lib/monitors/sources/poll.js +0 -8
- package/dist/lib/monitors/sources/types.d.ts +0 -18
- package/dist/lib/monitors/sources/types.js +0 -8
- package/dist/lib/monitors/sources/webhook.d.ts +0 -7
- package/dist/lib/monitors/sources/webhook.js +0 -7
- package/dist/lib/monitors/sources/ws.d.ts +0 -10
- package/dist/lib/monitors/sources/ws.js +3 -13
- package/dist/lib/monitors/state.d.ts +0 -132
- package/dist/lib/monitors/state.js +2 -86
- package/dist/lib/native-accounts.d.ts +0 -32
- package/dist/lib/native-accounts.js +0 -17
- package/dist/lib/net-close.d.ts +0 -9
- package/dist/lib/net-close.js +0 -5
- package/dist/lib/notify.d.ts +0 -47
- package/dist/lib/notify.js +0 -30
- package/dist/lib/onepassword.d.ts +0 -14
- package/dist/lib/onepassword.js +0 -12
- package/dist/lib/open-url.d.ts +0 -38
- package/dist/lib/open-url.js +1 -69
- package/dist/lib/openclaw-keychain.js +2 -7
- package/dist/lib/operator.d.ts +0 -9
- package/dist/lib/operator.js +0 -34
- package/dist/lib/origin-machine.d.ts +0 -16
- package/dist/lib/origin-machine.js +0 -16
- package/dist/lib/output/git-output.d.ts +0 -31
- package/dist/lib/output/git-output.js +4 -43
- package/dist/lib/overdue.d.ts +0 -35
- package/dist/lib/overdue.js +0 -60
- package/dist/lib/owner-message.d.ts +0 -20
- package/dist/lib/owner-message.js +1 -40
- package/dist/lib/packages/output-home.d.ts +0 -28
- package/dist/lib/packages/output-home.js +0 -114
- package/dist/lib/paths.d.ts +0 -26
- package/dist/lib/paths.js +1 -27
- package/dist/lib/percentile.d.ts +0 -11
- package/dist/lib/percentile.js +0 -11
- package/dist/lib/perf/db.d.ts +0 -16
- package/dist/lib/perf/db.js +3 -32
- package/dist/lib/perf/spool.d.ts +0 -12
- package/dist/lib/perf/spool.js +0 -13
- package/dist/lib/perf/types.d.ts +0 -26
- package/dist/lib/perf/types.js +0 -1
- package/dist/lib/permissions-registry.d.ts +0 -48
- package/dist/lib/permissions-registry.js +0 -108
- package/dist/lib/permissions.d.ts +0 -215
- package/dist/lib/permissions.js +4 -407
- package/dist/lib/picker.d.ts +0 -124
- package/dist/lib/picker.js +0 -140
- package/dist/lib/placement.d.ts +0 -57
- package/dist/lib/placement.js +0 -47
- package/dist/lib/platform/exec.d.ts +0 -73
- package/dist/lib/platform/exec.js +0 -80
- package/dist/lib/platform/index.d.ts +0 -14
- package/dist/lib/platform/index.js +0 -14
- package/dist/lib/platform/ipc.d.ts +0 -10
- package/dist/lib/platform/ipc.js +0 -13
- package/dist/lib/platform/links.d.ts +0 -14
- package/dist/lib/platform/links.js +0 -25
- package/dist/lib/platform/paths.d.ts +0 -48
- package/dist/lib/platform/paths.js +0 -52
- package/dist/lib/platform/posixpath.d.ts +0 -18
- package/dist/lib/platform/posixpath.js +0 -62
- package/dist/lib/platform/process.d.ts +0 -67
- package/dist/lib/platform/process.js +5 -99
- package/dist/lib/platform/winpath.d.ts +0 -50
- package/dist/lib/platform/winpath.js +0 -81
- package/dist/lib/plugins/plugin-marketplace.d.ts +0 -165
- package/dist/lib/plugins/plugin-marketplace.js +10 -238
- package/dist/lib/plugins/plugins.d.ts +0 -238
- package/dist/lib/plugins/plugins.js +20 -454
- package/dist/lib/plugins/skills.d.ts +0 -86
- package/dist/lib/plugins/skills.js +1 -139
- package/dist/lib/pr-land-detach.d.ts +0 -17
- package/dist/lib/pr-land-detach.js +0 -30
- package/dist/lib/pricing/cost.d.ts +0 -29
- package/dist/lib/pricing/cost.js +0 -38
- package/dist/lib/pricing/index.d.ts +0 -6
- package/dist/lib/pricing/index.js +0 -6
- package/dist/lib/pricing/table.d.ts +0 -8
- package/dist/lib/pricing/table.js +3 -56
- package/dist/lib/probe.d.ts +0 -5
- package/dist/lib/probe.js +0 -40
- package/dist/lib/profiles-presets.d.ts +0 -20
- package/dist/lib/profiles-presets.js +1 -36
- package/dist/lib/profiles.d.ts +0 -185
- package/dist/lib/profiles.js +1 -158
- package/dist/lib/project-doctor.d.ts +0 -29
- package/dist/lib/project-doctor.js +0 -26
- package/dist/lib/project-focus.d.ts +0 -41
- package/dist/lib/project-focus.js +0 -49
- package/dist/lib/project-import.d.ts +0 -41
- package/dist/lib/project-import.js +0 -36
- package/dist/lib/project-key.d.ts +0 -65
- package/dist/lib/project-key.js +0 -70
- package/dist/lib/project-launch.d.ts +0 -49
- package/dist/lib/project-launch.js +2 -91
- package/dist/lib/project-probe.d.ts +0 -86
- package/dist/lib/project-probe.js +1 -88
- package/dist/lib/project-pull.d.ts +0 -96
- package/dist/lib/project-pull.js +0 -122
- package/dist/lib/project-resources.d.ts +0 -44
- package/dist/lib/project-resources.js +7 -171
- package/dist/lib/project-root.d.ts +0 -95
- package/dist/lib/project-root.js +0 -101
- package/dist/lib/project-schedule.d.ts +0 -43
- package/dist/lib/project-schedule.js +0 -52
- package/dist/lib/project-status.d.ts +0 -108
- package/dist/lib/project-status.js +0 -117
- package/dist/lib/projects.d.ts +0 -197
- package/dist/lib/projects.js +1 -213
- package/dist/lib/pwsh.d.ts +0 -41
- package/dist/lib/pwsh.js +0 -51
- package/dist/lib/quick-todo.d.ts +84 -0
- package/dist/lib/quick-todo.js +243 -0
- package/dist/lib/reconcile-and-repair.d.ts +0 -78
- package/dist/lib/reconcile-and-repair.js +3 -66
- package/dist/lib/redact.d.ts +0 -29
- package/dist/lib/redact.js +0 -54
- package/dist/lib/refresh-coordinator.d.ts +0 -15
- package/dist/lib/refresh-coordinator.js +0 -10
- package/dist/lib/refresh.d.ts +0 -39
- package/dist/lib/refresh.js +0 -45
- package/dist/lib/registry.d.ts +0 -65
- package/dist/lib/registry.js +0 -127
- package/dist/lib/reminders.d.ts +0 -21
- package/dist/lib/reminders.js +0 -30
- package/dist/lib/remote-agents-json.d.ts +0 -44
- package/dist/lib/remote-agents-json.js +1 -44
- package/dist/lib/reserved-stores.d.ts +0 -28
- package/dist/lib/reserved-stores.js +2 -28
- package/dist/lib/resource-aliases.d.ts +0 -12
- package/dist/lib/resource-aliases.js +0 -12
- package/dist/lib/resource-content-diff.d.ts +0 -28
- package/dist/lib/resource-content-diff.js +7 -34
- package/dist/lib/resource-inventory.d.ts +0 -51
- package/dist/lib/resource-inventory.js +0 -45
- package/dist/lib/resource-patterns.d.ts +0 -32
- package/dist/lib/resource-patterns.js +0 -34
- package/dist/lib/resource-profiles.d.ts +0 -7
- package/dist/lib/resource-profiles.js +0 -11
- package/dist/lib/resources/types.d.ts +0 -50
- package/dist/lib/resources/types.js +0 -7
- package/dist/lib/resources/workflows.d.ts +0 -7
- package/dist/lib/resources/workflows.js +0 -13
- package/dist/lib/resources.d.ts +0 -65
- package/dist/lib/resources.js +0 -78
- package/dist/lib/routers.d.ts +0 -67
- package/dist/lib/routers.js +0 -60
- package/dist/lib/routine-activation.d.ts +0 -23
- package/dist/lib/routine-activation.js +0 -24
- package/dist/lib/routine-context.d.ts +1 -91
- package/dist/lib/routine-context.js +0 -107
- package/dist/lib/routine-notify-owner.d.ts +0 -79
- package/dist/lib/routine-notify-owner.js +1 -103
- package/dist/lib/routine-notify.d.ts +0 -70
- package/dist/lib/routine-notify.js +1 -75
- package/dist/lib/routine-process-cleanup.d.ts +0 -1
- package/dist/lib/routine-process-cleanup.js +1 -4
- package/dist/lib/routine-readiness.d.ts +0 -63
- package/dist/lib/routine-readiness.js +4 -86
- package/dist/lib/routines-format.d.ts +0 -40
- package/dist/lib/routines-format.js +0 -67
- package/dist/lib/routines-placement.d.ts +0 -33
- package/dist/lib/routines-placement.js +0 -40
- package/dist/lib/routines-project.d.ts +0 -57
- package/dist/lib/routines-project.js +6 -80
- package/dist/lib/rules/compile.d.ts +0 -66
- package/dist/lib/rules/compile.js +6 -118
- package/dist/lib/rules/compose.d.ts +0 -56
- package/dist/lib/rules/compose.js +2 -83
- package/dist/lib/rules/rules.d.ts +0 -23
- package/dist/lib/rules/rules.js +0 -35
- package/dist/lib/rules/run-sync.d.ts +0 -16
- package/dist/lib/rules/run-sync.js +1 -44
- package/dist/lib/run-config.d.ts +0 -7
- package/dist/lib/run-config.js +0 -8
- package/dist/lib/run-defaults.d.ts +0 -14
- package/dist/lib/run-defaults.js +0 -14
- package/dist/lib/run-notify.d.ts +0 -18
- package/dist/lib/run-notify.js +0 -36
- package/dist/lib/run-trace-sync.d.ts +0 -21
- package/dist/lib/run-trace-sync.js +2 -66
- package/dist/lib/rush-session.d.ts +0 -26
- package/dist/lib/rush-session.js +0 -28
- package/dist/lib/sandbox.d.ts +0 -45
- package/dist/lib/sandbox.js +5 -93
- package/dist/lib/scheduler.d.ts +0 -28
- package/dist/lib/scheduler.js +0 -45
- package/dist/lib/scheduling/routines.d.ts +0 -652
- package/dist/lib/scheduling/routines.js +8 -475
- package/dist/lib/secrets-cli.d.ts +3 -8
- package/dist/lib/secrets-cli.js +1 -19
- package/dist/lib/secrets-client.d.ts +0 -117
- package/dist/lib/secrets-client.js +4 -275
- package/dist/lib/secrets-policy.d.ts +0 -142
- package/dist/lib/secrets-policy.js +4 -237
- package/dist/lib/secrets-types.d.ts +0 -87
- package/dist/lib/secrets-types.js +0 -13
- package/dist/lib/self-heal/checks/hook-manifest.js +0 -25
- package/dist/lib/self-heal/checks/hook-runtime.js +0 -5
- package/dist/lib/self-heal/checks/install-staging.d.ts +0 -1
- package/dist/lib/self-heal/checks/install-staging.js +1 -28
- package/dist/lib/self-heal/checks/menubar-helper.js +0 -5
- package/dist/lib/self-heal/checks/path.js +0 -9
- package/dist/lib/self-heal/checks/resources.js +0 -5
- package/dist/lib/self-heal/checks/shadowing.js +2 -16
- package/dist/lib/self-heal/checks/shims.js +0 -14
- package/dist/lib/self-heal/child.d.ts +12 -0
- package/dist/lib/self-heal/child.js +23 -0
- package/dist/lib/self-heal/registry.d.ts +0 -9
- package/dist/lib/self-heal/registry.js +0 -16
- package/dist/lib/self-heal/types.d.ts +0 -12
- package/dist/lib/self-heal/types.js +0 -15
- package/dist/lib/self-update.d.ts +0 -312
- package/dist/lib/self-update.js +9 -360
- package/dist/lib/service-manifest.d.ts +0 -39
- package/dist/lib/service-manifest.js +0 -72
- package/dist/lib/session/active.d.ts +13 -869
- package/dist/lib/session/active.js +20 -976
- package/dist/lib/session/actor-sidecar.d.ts +1 -32
- package/dist/lib/session/actor-sidecar.js +1 -41
- package/dist/lib/session/bookmarks.d.ts +0 -33
- package/dist/lib/session/bookmarks.js +0 -37
- package/dist/lib/session/bundle.d.ts +0 -86
- package/dist/lib/session/bundle.js +0 -54
- package/dist/lib/session/claude-accounts.d.ts +0 -40
- package/dist/lib/session/claude-accounts.js +0 -49
- package/dist/lib/session/cloud.d.ts +1 -23
- package/dist/lib/session/cloud.js +0 -26
- package/dist/lib/session/db.d.ts +5 -658
- package/dist/lib/session/db.js +22 -1443
- package/dist/lib/session/detached.d.ts +0 -21
- package/dist/lib/session/detached.js +0 -29
- package/dist/lib/session/discover.d.ts +3 -420
- package/dist/lib/session/discover.js +30 -1123
- package/dist/lib/session/fork.d.ts +1 -41
- package/dist/lib/session/fork.js +0 -19
- package/dist/lib/session/ghostty-tabs.d.ts +0 -24
- package/dist/lib/session/ghostty-tabs.js +0 -37
- package/dist/lib/session/glance-files.d.ts +19 -0
- package/dist/lib/session/glance-files.js +258 -0
- package/dist/lib/session/hook-sessions.d.ts +0 -33
- package/dist/lib/session/hook-sessions.js +4 -99
- package/dist/lib/session/host-link.d.ts +1 -94
- package/dist/lib/session/host-link.js +1 -81
- package/dist/lib/session/inject-target.d.ts +8 -0
- package/dist/lib/session/inject-target.js +32 -0
- package/dist/lib/session/inject.d.ts +0 -15
- package/dist/lib/session/inject.js +0 -15
- package/dist/lib/session/live-metadata.d.ts +1 -34
- package/dist/lib/session/live-metadata.js +1 -73
- package/dist/lib/session/local-tmux-attach.d.ts +0 -37
- package/dist/lib/session/local-tmux-attach.js +1 -76
- package/dist/lib/session/migrate-targets.d.ts +0 -46
- package/dist/lib/session/migrate-targets.js +0 -24
- package/dist/lib/session/migrations.d.ts +0 -12
- package/dist/lib/session/migrations.js +1 -20
- package/dist/lib/session/mirror.d.ts +0 -32
- package/dist/lib/session/mirror.js +0 -77
- package/dist/lib/session/origin-machine.js +0 -3
- package/dist/lib/session/pid-registry.d.ts +0 -80
- package/dist/lib/session/pid-registry.js +2 -81
- package/dist/lib/session/presence.d.ts +0 -39
- package/dist/lib/session/presence.js +2 -52
- package/dist/lib/session/process-view.d.ts +0 -11
- package/dist/lib/session/process-view.js +0 -25
- package/dist/lib/session/projection.d.ts +0 -3
- package/dist/lib/session/projection.js +0 -10
- package/dist/lib/session/provenance.d.ts +1 -37
- package/dist/lib/session/provenance.js +0 -69
- package/dist/lib/session/recovery.d.ts +1 -40
- package/dist/lib/session/recovery.js +2 -80
- package/dist/lib/session/relative-time.js +0 -3
- package/dist/lib/session/remote/peer-stream.d.ts +0 -42
- package/dist/lib/session/remote/peer-stream.js +0 -64
- package/dist/lib/session/remote/remote-bundle.d.ts +0 -6
- package/dist/lib/session/remote/remote-bundle.js +0 -21
- package/dist/lib/session/remote/remote-list.d.ts +1 -110
- package/dist/lib/session/remote/remote-list.js +5 -139
- package/dist/lib/session/remote/remote.d.ts +0 -98
- package/dist/lib/session/remote/remote.js +3 -119
- package/dist/lib/session/remote/watch.d.ts +1 -34
- package/dist/lib/session/remote/watch.js +12 -72
- package/dist/lib/session/remote-active.d.ts +0 -35
- package/dist/lib/session/remote-active.js +0 -48
- package/dist/lib/session/remote-bundle.js +0 -2
- package/dist/lib/session/remote-list.js +0 -2
- package/dist/lib/session/remote-preview-cache.d.ts +0 -7
- package/dist/lib/session/remote-preview-cache.js +1 -76
- package/dist/lib/session/remote.js +0 -2
- package/dist/lib/session/resume-command.d.ts +0 -6
- package/dist/lib/session/resume-command.js +0 -6
- package/dist/lib/session/resume-owner.d.ts +1 -52
- package/dist/lib/session/resume-owner.js +0 -56
- package/dist/lib/session/run-names.d.ts +0 -24
- package/dist/lib/session/run-names.js +0 -26
- package/dist/lib/session/session-cache.d.ts +2 -146
- package/dist/lib/session/session-cache.js +26 -203
- package/dist/lib/session/short-id.js +0 -3
- package/dist/lib/session/sync/agents.d.ts +0 -68
- package/dist/lib/session/sync/agents.js +0 -0
- package/dist/lib/session/sync/backend.d.ts +0 -39
- package/dist/lib/session/sync/backend.js +0 -45
- package/dist/lib/session/sync/config.d.ts +0 -27
- package/dist/lib/session/sync/config.js +0 -56
- package/dist/lib/session/sync/managed-config.d.ts +0 -17
- package/dist/lib/session/sync/managed-config.js +0 -17
- package/dist/lib/session/sync/managed-key.d.ts +0 -38
- package/dist/lib/session/sync/managed-key.js +1 -42
- package/dist/lib/session/sync/net-client.d.ts +0 -36
- package/dist/lib/session/sync/net-client.js +0 -30
- package/dist/lib/session/sync/provision.d.ts +0 -2
- package/dist/lib/session/sync/provision.js +0 -13
- package/dist/lib/session/sync/r2.d.ts +0 -20
- package/dist/lib/session/sync/r2.js +0 -20
- package/dist/lib/session/sync/transcript-crypto.d.ts +0 -37
- package/dist/lib/session/sync/transcript-crypto.js +5 -37
- package/dist/lib/session/sync/worker-template.d.ts +0 -5
- package/dist/lib/session/sync/worker-template.js +0 -40
- package/dist/lib/session/testdata/pid-registry-namespace.js +0 -2
- package/dist/lib/session/testdata/process-view-private.js +0 -1
- package/dist/lib/session/throughput.d.ts +0 -24
- package/dist/lib/session/throughput.js +1 -25
- package/dist/lib/session/timeline-pass.d.ts +1 -63
- package/dist/lib/session/timeline-pass.js +161 -148
- package/dist/lib/session/title.d.ts +0 -182
- package/dist/lib/session/title.js +0 -139
- package/dist/lib/session/tool-index.d.ts +2 -21
- package/dist/lib/session/tool-index.js +3 -75
- package/dist/lib/session/tool-store.d.ts +2 -48
- package/dist/lib/session/tool-store.js +1 -33
- package/dist/lib/session/viewing-in.d.ts +0 -67
- package/dist/lib/session/viewing-in.js +1 -71
- package/dist/lib/session/watch.js +0 -2
- package/dist/lib/session/width.js +0 -3
- package/dist/lib/sessions-client.d.ts +0 -46
- package/dist/lib/sessions-client.js +36 -113
- package/dist/lib/settings-manifest.d.ts +1 -17
- package/dist/lib/settings-manifest.js +4 -57
- package/dist/lib/setup-tool-install.d.ts +0 -1
- package/dist/lib/setup-tool-install.js +2 -7
- package/dist/lib/setup-tool-status.d.ts +0 -3
- package/dist/lib/setup-tool-status.js +4 -14
- package/dist/lib/sha256-asset.d.ts +0 -20
- package/dist/lib/sha256-asset.js +0 -20
- package/dist/lib/share-runtime.d.ts +0 -10
- package/dist/lib/share-runtime.js +1 -27
- package/dist/lib/shim-heal.d.ts +0 -15
- package/dist/lib/shim-heal.js +3 -29
- package/dist/lib/signin-badge.d.ts +0 -72
- package/dist/lib/signin-badge.js +0 -86
- package/dist/lib/sink-format.d.ts +0 -32
- package/dist/lib/sink-format.js +0 -14
- package/dist/lib/smart-launch.d.ts +0 -75
- package/dist/lib/smart-launch.js +1 -83
- package/dist/lib/snapshot.d.ts +0 -46
- package/dist/lib/snapshot.js +5 -31
- package/dist/lib/spinner.d.ts +0 -37
- package/dist/lib/spinner.js +0 -37
- package/dist/lib/sqlite.d.ts +0 -13
- package/dist/lib/sqlite.js +3 -71
- package/dist/lib/ssh-exec.d.ts +0 -209
- package/dist/lib/ssh-exec.js +11 -248
- package/dist/lib/ssh-tunnel.d.ts +0 -43
- package/dist/lib/ssh-tunnel.js +2 -48
- package/dist/lib/staleness/checkers/commands.d.ts +0 -4
- package/dist/lib/staleness/checkers/commands.js +0 -4
- package/dist/lib/staleness/checkers/hooks.d.ts +0 -10
- package/dist/lib/staleness/checkers/hooks.js +0 -15
- package/dist/lib/staleness/checkers/mcp.d.ts +0 -9
- package/dist/lib/staleness/checkers/mcp.js +0 -9
- package/dist/lib/staleness/checkers/permissions.d.ts +0 -12
- package/dist/lib/staleness/checkers/permissions.js +0 -13
- package/dist/lib/staleness/checkers/plugins.d.ts +0 -8
- package/dist/lib/staleness/checkers/plugins.js +0 -8
- package/dist/lib/staleness/checkers/rules.d.ts +0 -15
- package/dist/lib/staleness/checkers/rules.js +0 -26
- package/dist/lib/staleness/checkers/skills.d.ts +0 -4
- package/dist/lib/staleness/checkers/skills.js +0 -4
- package/dist/lib/staleness/checkers/subagents.d.ts +0 -9
- package/dist/lib/staleness/checkers/subagents.js +0 -9
- package/dist/lib/staleness/checkers/types.d.ts +0 -34
- package/dist/lib/staleness/checkers/types.js +0 -19
- package/dist/lib/staleness/checkers/workflows.d.ts +0 -7
- package/dist/lib/staleness/checkers/workflows.js +0 -7
- package/dist/lib/staleness/detectors/commands.js +0 -17
- package/dist/lib/staleness/detectors/hooks.js +1 -6
- package/dist/lib/staleness/detectors/mcp.js +0 -4
- package/dist/lib/staleness/detectors/permissions.js +10 -23
- package/dist/lib/staleness/detectors/rules.js +0 -6
- package/dist/lib/staleness/detectors/skills.d.ts +0 -1
- package/dist/lib/staleness/detectors/skills.js +1 -12
- package/dist/lib/staleness/detectors/types.d.ts +0 -10
- package/dist/lib/staleness/fingerprint.d.ts +0 -19
- package/dist/lib/staleness/fingerprint.js +0 -35
- package/dist/lib/staleness/index.d.ts +0 -28
- package/dist/lib/staleness/index.js +1 -45
- package/dist/lib/staleness/layers.d.ts +0 -23
- package/dist/lib/staleness/layers.js +0 -34
- package/dist/lib/staleness/prune.d.ts +0 -71
- package/dist/lib/staleness/prune.js +2 -27
- package/dist/lib/staleness/registry.d.ts +0 -10
- package/dist/lib/staleness/registry.js +3 -33
- package/dist/lib/staleness/types.d.ts +0 -36
- package/dist/lib/staleness/types.js +0 -5
- package/dist/lib/staleness/writers/commands.js +1 -48
- package/dist/lib/staleness/writers/hooks.js +1 -18
- package/dist/lib/staleness/writers/kinds.d.ts +0 -12
- package/dist/lib/staleness/writers/kinds.js +0 -1
- package/dist/lib/staleness/writers/lazy-map.d.ts +0 -11
- package/dist/lib/staleness/writers/mcp.js +0 -13
- package/dist/lib/staleness/writers/plugins.js +0 -4
- package/dist/lib/staleness/writers/rules.d.ts +0 -1
- package/dist/lib/staleness/writers/rules.js +1 -19
- package/dist/lib/staleness/writers/skills.js +3 -14
- package/dist/lib/staleness/writers/sources.d.ts +0 -11
- package/dist/lib/staleness/writers/sources.js +0 -32
- package/dist/lib/staleness/writers/subagents.js +0 -16
- package/dist/lib/staleness/writers/types.d.ts +0 -58
- package/dist/lib/staleness/writers/workflows.js +1 -1
- package/dist/lib/standalone-tools.d.ts +24 -0
- package/dist/lib/standalone-tools.js +58 -0
- package/dist/lib/star-nudge.d.ts +0 -32
- package/dist/lib/star-nudge.js +2 -36
- package/dist/lib/startup/command-registry.d.ts +0 -45
- package/dist/lib/startup/command-registry.js +1 -46
- package/dist/lib/startup/dev-build.d.ts +0 -9
- package/dist/lib/startup/dev-build.js +1 -42
- package/dist/lib/startup/root-command.d.ts +0 -19
- package/dist/lib/startup/root-command.js +0 -19
- package/dist/lib/startup/spellcheck.d.ts +0 -13
- package/dist/lib/startup/spellcheck.js +0 -13
- package/dist/lib/state.d.ts +0 -376
- package/dist/lib/state.js +19 -737
- package/dist/lib/storage/selection.d.ts +0 -40
- package/dist/lib/storage/selection.js +0 -29
- package/dist/lib/subagents-registry.d.ts +0 -56
- package/dist/lib/subagents-registry.js +0 -99
- package/dist/lib/subagents.d.ts +0 -128
- package/dist/lib/subagents.js +1 -158
- package/dist/lib/summarizer/config.d.ts +0 -37
- package/dist/lib/summarizer/config.js +0 -37
- package/dist/lib/summarizer/pass.d.ts +0 -20
- package/dist/lib/summarizer/pass.js +1 -34
- package/dist/lib/summarizer/summarize.d.ts +1 -49
- package/dist/lib/summarizer/summarize.js +0 -35
- package/dist/lib/sync-passphrase.d.ts +0 -16
- package/dist/lib/sync-passphrase.js +1 -18
- package/dist/lib/sync-status.d.ts +0 -72
- package/dist/lib/sync-status.js +0 -55
- package/dist/lib/sync-umbrella.d.ts +0 -54
- package/dist/lib/sync-umbrella.js +0 -48
- package/dist/lib/system-run-sync.d.ts +0 -5
- package/dist/lib/system-run-sync.js +1 -31
- package/dist/lib/teams/agents.d.ts +1 -444
- package/dist/lib/teams/agents.js +11 -871
- package/dist/lib/teams/api.d.ts +2 -52
- package/dist/lib/teams/api.js +4 -63
- package/dist/lib/teams/debug.d.ts +0 -6
- package/dist/lib/teams/debug.js +0 -6
- package/dist/lib/teams/delivery.d.ts +0 -41
- package/dist/lib/teams/delivery.js +0 -32
- package/dist/lib/teams/file_ops.d.ts +0 -11
- package/dist/lib/teams/file_ops.js +0 -11
- package/dist/lib/teams/forEach.d.ts +0 -76
- package/dist/lib/teams/forEach.js +1 -77
- package/dist/lib/teams/index.d.ts +1 -7
- package/dist/lib/teams/index.js +1 -7
- package/dist/lib/teams/parsers.d.ts +0 -4
- package/dist/lib/teams/parsers.js +0 -81
- package/dist/lib/teams/persistence.d.ts +0 -2
- package/dist/lib/teams/persistence.js +0 -12
- package/dist/lib/teams/placement-probe.d.ts +0 -12
- package/dist/lib/teams/placement-probe.js +1 -51
- package/dist/lib/teams/pr-watch.d.ts +0 -107
- package/dist/lib/teams/pr-watch.js +1 -107
- package/dist/lib/teams/registry.d.ts +0 -36
- package/dist/lib/teams/registry.js +0 -47
- package/dist/lib/teams/remoteWorktree.d.ts +0 -50
- package/dist/lib/teams/remoteWorktree.js +1 -96
- package/dist/lib/teams/scheduler.d.ts +0 -111
- package/dist/lib/teams/scheduler.js +2 -125
- package/dist/lib/teams/summarizer.d.ts +0 -22
- package/dist/lib/teams/summarizer.js +6 -50
- package/dist/lib/teams/supervisor.d.ts +0 -38
- package/dist/lib/teams/supervisor.js +0 -21
- package/dist/lib/teams/worktree.d.ts +0 -95
- package/dist/lib/teams/worktree.js +3 -110
- package/dist/lib/template.d.ts +0 -21
- package/dist/lib/template.js +0 -23
- package/dist/lib/term-client.d.ts +0 -26
- package/dist/lib/term-client.js +0 -48
- package/dist/lib/term-driver.d.ts +0 -5
- package/dist/lib/term-driver.js +0 -8
- package/dist/lib/terminal/backends/ghostty.d.ts +0 -2
- package/dist/lib/terminal/backends/ghostty.js +0 -12
- package/dist/lib/terminal/backends/index.d.ts +0 -17
- package/dist/lib/terminal/backends/index.js +0 -15
- package/dist/lib/terminal/backends/iterm.d.ts +0 -2
- package/dist/lib/terminal/backends/iterm.js +0 -10
- package/dist/lib/terminal/backends/terminal-app.d.ts +0 -10
- package/dist/lib/terminal/backends/terminal-app.js +0 -30
- package/dist/lib/terminal/backends/tmux.d.ts +0 -10
- package/dist/lib/terminal/backends/tmux.js +0 -2
- package/dist/lib/terminal/backends/vscodium-agent.d.ts +0 -25
- package/dist/lib/terminal/backends/vscodium-agent.js +0 -36
- package/dist/lib/terminal/engine.d.ts +0 -17
- package/dist/lib/terminal/engine.js +0 -10
- package/dist/lib/terminal/index.d.ts +0 -8
- package/dist/lib/terminal/inject.d.ts +1 -173
- package/dist/lib/terminal/inject.js +0 -146
- package/dist/lib/terminal/policy.d.ts +0 -8
- package/dist/lib/terminal/policy.js +0 -1
- package/dist/lib/terminal/preferred.d.ts +0 -66
- package/dist/lib/terminal/preferred.js +0 -30
- package/dist/lib/terminal/quote.d.ts +0 -8
- package/dist/lib/terminal/quote.js +0 -8
- package/dist/lib/terminal/resolve.d.ts +0 -46
- package/dist/lib/terminal/resolve.js +0 -30
- package/dist/lib/terminal/run-surface.d.ts +0 -56
- package/dist/lib/terminal/run-surface.js +0 -46
- package/dist/lib/terminal/shell.d.ts +0 -3
- package/dist/lib/terminal/shell.js +0 -13
- package/dist/lib/terminal/transport.d.ts +0 -14
- package/dist/lib/terminal/transport.js +1 -30
- package/dist/lib/terminal/types.d.ts +0 -40
- package/dist/lib/terminal/types.js +0 -10
- package/dist/lib/text/relative-time.d.ts +0 -36
- package/dist/lib/text/relative-time.js +0 -43
- package/dist/lib/text/short-id.d.ts +0 -16
- package/dist/lib/text/short-id.js +0 -16
- package/dist/lib/text/width.d.ts +0 -24
- package/dist/lib/text/width.js +10 -52
- package/dist/lib/tmux/binary.d.ts +0 -36
- package/dist/lib/tmux/binary.js +0 -28
- package/dist/lib/tmux/index.d.ts +0 -5
- package/dist/lib/tmux/index.js +0 -5
- package/dist/lib/tmux/orphan-reap.d.ts +0 -253
- package/dist/lib/tmux/orphan-reap.js +3 -299
- package/dist/lib/tmux/paths.d.ts +0 -14
- package/dist/lib/tmux/paths.js +0 -14
- package/dist/lib/tmux/session.d.ts +0 -263
- package/dist/lib/tmux/session.js +6 -344
- package/dist/lib/traces/backend.d.ts +0 -20
- package/dist/lib/traces/backend.js +0 -23
- package/dist/lib/traces/classify.d.ts +0 -20
- package/dist/lib/traces/classify.js +0 -7
- package/dist/lib/traces/insights.d.ts +1 -84
- package/dist/lib/traces/insights.js +0 -126
- package/dist/lib/traces/phenotype.d.ts +0 -69
- package/dist/lib/traces/phenotype.js +0 -150
- package/dist/lib/traces/provision.d.ts +0 -1
- package/dist/lib/traces/provision.js +0 -5
- package/dist/lib/traces/schema2-build.d.ts +3 -60
- package/dist/lib/traces/schema2-build.js +8 -149
- package/dist/lib/traces/schema2-danger.d.ts +0 -30
- package/dist/lib/traces/schema2-danger.js +1 -63
- package/dist/lib/traces/schema2.d.ts +0 -11
- package/dist/lib/traces/segments.d.ts +0 -44
- package/dist/lib/traces/segments.js +0 -65
- package/dist/lib/traces/sync.d.ts +2 -239
- package/dist/lib/traces/sync.js +15 -237
- package/dist/lib/traces/worker-template.d.ts +0 -3
- package/dist/lib/traces/worker-template.js +0 -29
- package/dist/lib/triggers/handlers.d.ts +0 -82
- package/dist/lib/triggers/handlers.js +0 -75
- package/dist/lib/triggers/webhook.d.ts +0 -158
- package/dist/lib/triggers/webhook.js +0 -143
- package/dist/lib/types.d.ts +0 -736
- package/dist/lib/types.js +0 -50
- package/dist/lib/uninstall.d.ts +0 -17
- package/dist/lib/uninstall.js +0 -75
- package/dist/lib/usage-backoff.d.ts +0 -20
- package/dist/lib/usage-backoff.js +3 -60
- package/dist/lib/usage-refresh.d.ts +0 -154
- package/dist/lib/usage-refresh.js +8 -212
- package/dist/lib/verbs.d.ts +0 -12
- package/dist/lib/verbs.js +0 -12
- package/dist/lib/version-duplicates.d.ts +0 -6
- package/dist/lib/version-duplicates.js +0 -6
- package/dist/lib/version.d.ts +0 -55
- package/dist/lib/version.js +1 -58
- package/dist/lib/view-types.d.ts +0 -48
- package/dist/lib/warn-unpushed.d.ts +0 -27
- package/dist/lib/warn-unpushed.js +1 -45
- package/dist/lib/watchdog/history.d.ts +0 -1
- package/dist/lib/watchdog/history.js +0 -3
- package/dist/lib/watchdog/index.js +0 -2
- package/dist/lib/watchdog/log.d.ts +0 -19
- package/dist/lib/watchdog/log.js +0 -34
- package/dist/lib/watchdog/read.d.ts +0 -27
- package/dist/lib/watchdog/read.js +3 -58
- package/dist/lib/watchdog/rotate.d.ts +0 -139
- package/dist/lib/watchdog/rotate.js +2 -151
- package/dist/lib/watchdog/runner.d.ts +0 -125
- package/dist/lib/watchdog/runner.js +3 -223
- package/dist/lib/watchdog/service.d.ts +0 -1
- package/dist/lib/watchdog/service.js +0 -2
- package/dist/lib/watchdog/watchdog-agent.d.ts +0 -31
- package/dist/lib/watchdog/watchdog-agent.js +0 -27
- package/dist/lib/watchdog/watchdog.d.ts +0 -7
- package/dist/lib/watchdog/watchdog.js +0 -10
- package/dist/lib/watchdog/watchdogTail.js +0 -7
- package/dist/lib/whats-new.d.ts +0 -10
- package/dist/lib/whats-new.js +0 -21
- package/dist/lib/workflows-registry.d.ts +0 -45
- package/dist/lib/workflows-registry.js +0 -60
- package/dist/lib/workflows.d.ts +0 -282
- package/dist/lib/workflows.js +3 -213
- package/dist/lib/worktree/held.d.ts +0 -89
- package/dist/lib/worktree/held.js +1 -103
- package/dist/lib/wrap.d.ts +0 -32
- package/dist/lib/wrap.js +0 -32
- package/dist/lib/yaml-io.d.ts +0 -45
- package/dist/lib/yaml-io.js +0 -47
- package/dist/session-tracker/dist/adapters/claude.js +0 -2
- package/dist/session-tracker/dist/hook.sh +4 -37
- package/dist/session-tracker/dist/index.d.ts +0 -7
- package/dist/session-tracker/dist/index.js +0 -5
- package/dist/session-tracker/dist/install-hook.d.ts +0 -5
- package/dist/session-tracker/dist/install-hook.js +1 -15
- package/dist/session-tracker/dist/prune-state.js +0 -4
- package/dist/session-tracker/dist/reader.js +0 -4
- package/dist/session-tracker/dist/state-file.d.ts +0 -3
- package/dist/session-tracker/dist/state-file.js +3 -8
- package/package.json +3 -4
- package/scripts/postinstall.js +8 -116
- package/dist/lib/session/artifacts.d.ts +0 -14
- package/dist/lib/session/artifacts.js +0 -101
- package/dist/lib/session/bash-command.d.ts +0 -63
- package/dist/lib/session/bash-command.js +0 -490
- package/dist/lib/session/digest.d.ts +0 -66
- package/dist/lib/session/digest.js +0 -328
- package/dist/lib/session/highlights.d.ts +0 -151
- package/dist/lib/session/highlights.js +0 -391
- package/dist/lib/session/insights.d.ts +0 -165
- package/dist/lib/session/insights.js +0 -563
- package/dist/lib/session/linear.d.ts +0 -19
- package/dist/lib/session/linear.js +0 -99
- package/dist/lib/session/parse.d.ts +0 -224
- package/dist/lib/session/parse.js +0 -2408
- package/dist/lib/session/prompt.d.ts +0 -213
- package/dist/lib/session/prompt.js +0 -601
- package/dist/lib/session/render.d.ts +0 -133
- package/dist/lib/session/render.js +0 -1047
- package/dist/lib/session/share-html.d.ts +0 -35
- package/dist/lib/session/share-html.js +0 -319
- package/dist/lib/session/shell-programs.d.ts +0 -33
- package/dist/lib/session/shell-programs.js +0 -380
- package/dist/lib/session/state.d.ts +0 -269
- package/dist/lib/session/state.js +0 -777
- package/dist/lib/session/stream-render.d.ts +0 -4
- package/dist/lib/session/stream-render.js +0 -131
- package/dist/lib/session/tail.d.ts +0 -88
- package/dist/lib/session/tail.js +0 -294
- package/dist/lib/session/team-filter.d.ts +0 -129
- package/dist/lib/session/team-filter.js +0 -269
- package/dist/lib/session/timeline.d.ts +0 -172
- package/dist/lib/session/timeline.js +0 -636
- package/dist/lib/session/tool-calls.d.ts +0 -132
- package/dist/lib/session/tool-calls.js +0 -674
- package/dist/lib/session/trajectory-compare.d.ts +0 -48
- package/dist/lib/session/trajectory-compare.js +0 -116
- package/dist/lib/session/trajectory-html.d.ts +0 -19
- package/dist/lib/session/trajectory-html.js +0 -771
- package/dist/lib/session/trajectory-lineage.d.ts +0 -93
- package/dist/lib/session/trajectory-lineage.js +0 -195
- package/dist/lib/session/trajectory-text.d.ts +0 -38
- package/dist/lib/session/trajectory-text.js +0 -284
- package/dist/lib/session/trajectory.d.ts +0 -145
- package/dist/lib/session/trajectory.js +0 -394
- package/dist/lib/session/types.d.ts +0 -627
- package/dist/lib/session/types.js +0 -43
package/dist/lib/crabbox/cli.js
CHANGED
|
@@ -1,21 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Typed wrapper over the external `crabbox` binary (github.com/openclaw/crabbox).
|
|
3
|
-
*
|
|
4
|
-
* crabbox leases ephemeral cloud boxes (Hetzner/DO/EC2/…), syncs the dirty
|
|
5
|
-
* checkout, and runs commands on them. We use it as the transport for
|
|
6
|
-
* `agents run --lease`: warm a box → run the agent on it via `crabbox run` →
|
|
7
|
-
* stop it. crabbox owns the SSH connection, so agents-cli never needs a direct
|
|
8
|
-
* ssh target (unlike the host-dispatch model).
|
|
9
|
-
*
|
|
10
|
-
* crabbox talks to its cloud provider's API for list/status/warmup/stop, which
|
|
11
|
-
* needs a provider token (e.g. HCLOUD_TOKEN) in the environment. We inject it
|
|
12
|
-
* from a secrets bundle when one is configured (see `crabboxEnv`).
|
|
13
|
-
*/
|
|
14
1
|
import { spawn, spawnSync } from 'child_process';
|
|
15
2
|
import { readAndResolveBundleEnvSync, listBundlesSync, bundleExistsSync } from '../secrets-client.js';
|
|
16
3
|
import { readMeta, writeMeta } from '../state.js';
|
|
17
4
|
import { DEFAULT_CRABBOX_PROFILE } from './config.js';
|
|
18
|
-
/** Locate the crabbox binary, or throw an actionable error. */
|
|
19
5
|
export function findCrabbox() {
|
|
20
6
|
const r = spawnSync('crabbox', ['--help'], { encoding: 'utf-8' });
|
|
21
7
|
if (r.error) {
|
|
@@ -23,14 +9,7 @@ export function findCrabbox() {
|
|
|
23
9
|
}
|
|
24
10
|
return 'crabbox';
|
|
25
11
|
}
|
|
26
|
-
/**
|
|
27
|
-
* Env keys that mark a secrets bundle as usable for `--lease` — the provider
|
|
28
|
-
* tokens crabbox reads to reach a cloud API. Matching a bundle needs only its
|
|
29
|
-
* declared key NAMES; only the matched key's VALUE is ever injected (see
|
|
30
|
-
* `crabboxEnv`), so an auto-detected bundle can't leak its other secrets.
|
|
31
|
-
*/
|
|
32
12
|
const LEASE_PROVIDER_TOKEN_KEYS = ['HCLOUD_TOKEN', 'AWS_ACCESS_KEY_ID', 'DIGITALOCEAN_TOKEN', 'DO_TOKEN'];
|
|
33
|
-
/** The first bundle that declares a provider token key, or undefined. Pure over `bundles`. */
|
|
34
13
|
export function pickLeaseBundleFromList(bundles) {
|
|
35
14
|
for (const b of bundles) {
|
|
36
15
|
if (Object.keys(b.vars ?? {}).some((k) => LEASE_PROVIDER_TOKEN_KEYS.includes(k)))
|
|
@@ -38,13 +17,7 @@ export function pickLeaseBundleFromList(bundles) {
|
|
|
38
17
|
}
|
|
39
18
|
return undefined;
|
|
40
19
|
}
|
|
41
|
-
/**
|
|
42
|
-
* Env keys a bundle may use for a Tailscale auth key. crabbox reads
|
|
43
|
-
* `CRABBOX_TAILSCALE_AUTH_KEY` to join a leased box to the tailnet; we accept the
|
|
44
|
-
* common alternate names too and rename to that canonical key on injection.
|
|
45
|
-
*/
|
|
46
20
|
const TAILSCALE_AUTH_KEY_NAMES = ['CRABBOX_TAILSCALE_AUTH_KEY', 'TAILSCALE_AUTH_KEY', 'TS_AUTHKEY'];
|
|
47
|
-
/** The first bundle + key that declares a Tailscale auth key, or undefined. Pure over `bundles`. */
|
|
48
21
|
export function pickTailscaleBundleFromList(bundles) {
|
|
49
22
|
for (const b of bundles) {
|
|
50
23
|
const key = Object.keys(b.vars ?? {}).find((k) => TAILSCALE_AUTH_KEY_NAMES.includes(k));
|
|
@@ -53,7 +26,6 @@ export function pickTailscaleBundleFromList(bundles) {
|
|
|
53
26
|
}
|
|
54
27
|
return undefined;
|
|
55
28
|
}
|
|
56
|
-
/** Process-lifetime memo so the tailscale bundle `listBundles()` scan runs at most once. */
|
|
57
29
|
let tailscaleBundleMemo;
|
|
58
30
|
function resolveTailscaleBundleMemo() {
|
|
59
31
|
if (!tailscaleBundleMemo) {
|
|
@@ -62,27 +34,11 @@ function resolveTailscaleBundleMemo() {
|
|
|
62
34
|
value = pickTailscaleBundleFromList(listBundlesSync());
|
|
63
35
|
}
|
|
64
36
|
catch {
|
|
65
|
-
/* secrets unreadable — no auto-detect */
|
|
66
37
|
}
|
|
67
38
|
tailscaleBundleMemo = { value };
|
|
68
39
|
}
|
|
69
40
|
return tailscaleBundleMemo.value;
|
|
70
41
|
}
|
|
71
|
-
/**
|
|
72
|
-
* Process-lifetime memo for the RESOLVED tailscale key value, next to the pick
|
|
73
|
-
* memo above. `crabboxEnv` runs several times per lease (list/wait/spawn/stop),
|
|
74
|
-
* and the single-key subset read (`keys: [ts.key]`) is rejected by
|
|
75
|
-
* `canCacheResolvedEnv` for broker auto-cache — so without this memo a
|
|
76
|
-
* non-broker-held tailscale bundle re-read the keychain on EVERY call (and,
|
|
77
|
-
* pre-guard, could pop a Touch ID sheet each time). The read is always
|
|
78
|
-
* `agentOnly: true` (broker-only, SEC-13): tailscale is opt-in plumbing, a
|
|
79
|
-
* `--lease` run is headless by contract, and even an interactive `--lease`
|
|
80
|
-
* invocation must never pop an unwatched Touch ID sheet for this best-effort
|
|
81
|
-
* read — a locked bundle degrades silently to a public-network lease via the
|
|
82
|
-
* catch below. One read per process, success or failure (a failed read
|
|
83
|
-
* memoizes as undefined: the catch below already degrades to a public-network
|
|
84
|
-
* lease, retrying mid-process only repeats the same failure).
|
|
85
|
-
*/
|
|
86
42
|
let tailscaleValueMemo;
|
|
87
43
|
function resolveTailscaleKeyValueMemo(ts) {
|
|
88
44
|
if (!tailscaleValueMemo) {
|
|
@@ -96,33 +52,17 @@ function resolveTailscaleKeyValueMemo(ts) {
|
|
|
96
52
|
value = env[ts.key];
|
|
97
53
|
}
|
|
98
54
|
catch {
|
|
99
|
-
/* best-effort — tailscale is opt-in plumbing, never blocks a public lease */
|
|
100
55
|
}
|
|
101
56
|
tailscaleValueMemo = { value };
|
|
102
57
|
}
|
|
103
58
|
return tailscaleValueMemo.value;
|
|
104
59
|
}
|
|
105
|
-
/** Test seam: drop every crabboxEnv secrets memo so each test resolves fresh. */
|
|
106
60
|
export function resetCrabboxSecretsMemosForTest() {
|
|
107
61
|
tailscaleBundleMemo = undefined;
|
|
108
62
|
tailscaleValueMemo = undefined;
|
|
109
63
|
leaseBundleMemo = undefined;
|
|
110
64
|
leaseEnvMemo = undefined;
|
|
111
65
|
}
|
|
112
|
-
/**
|
|
113
|
-
* The secrets bundle to feed crabbox, resolved in priority order:
|
|
114
|
-
* 1. `AGENTS_LEASE_SECRETS_BUNDLE` env var — explicit, no keychain
|
|
115
|
-
* 2. `lease.secretsBundle` config (set by `lease setup`) — explicit, no keychain
|
|
116
|
-
* 3. auto-detect: the first keychain bundle DECLARING a provider token key
|
|
117
|
-
*
|
|
118
|
-
* Tiers 1–2 are the frictionless steady state (env + config are plain, no keychain
|
|
119
|
-
* read). Tier 3 is a fallback that DOES read bundle metadata via `listBundles()`
|
|
120
|
-
* (one batched keychain unlock, ~7-day broker cache) — so it only runs when
|
|
121
|
-
* neither env nor config is set, and `crabboxEnv` memoizes the result for the
|
|
122
|
-
* process (it is called several times per lease, and we don't want a scan each
|
|
123
|
-
* time). Once `lease setup` persists the choice (tier 2), tier 3 never runs.
|
|
124
|
-
* Returns undefined when nothing matches — crabbox then falls back to `crabbox login`.
|
|
125
|
-
*/
|
|
126
66
|
export function resolveLeaseBundle() {
|
|
127
67
|
const env = process.env.AGENTS_LEASE_SECRETS_BUNDLE;
|
|
128
68
|
if (env)
|
|
@@ -133,7 +73,6 @@ export function resolveLeaseBundle() {
|
|
|
133
73
|
return { name: configured };
|
|
134
74
|
}
|
|
135
75
|
catch {
|
|
136
|
-
/* config unreadable — fall through to auto-detect */
|
|
137
76
|
}
|
|
138
77
|
try {
|
|
139
78
|
const bundles = listBundlesSync();
|
|
@@ -145,33 +84,15 @@ export function resolveLeaseBundle() {
|
|
|
145
84
|
}
|
|
146
85
|
}
|
|
147
86
|
catch {
|
|
148
|
-
/* secrets unreadable — no auto-detect */
|
|
149
87
|
}
|
|
150
88
|
return undefined;
|
|
151
89
|
}
|
|
152
|
-
/** Process-lifetime memo so the tier-3 `listBundles()` scan runs at most once. */
|
|
153
90
|
let leaseBundleMemo;
|
|
154
91
|
function resolveLeaseBundleMemo() {
|
|
155
92
|
if (!leaseBundleMemo)
|
|
156
93
|
leaseBundleMemo = { value: resolveLeaseBundle() };
|
|
157
94
|
return leaseBundleMemo.value;
|
|
158
95
|
}
|
|
159
|
-
/**
|
|
160
|
-
* Process-lifetime memo for the RESOLVED provider-token env, resolved ONCE up
|
|
161
|
-
* front. `crabboxEnv` is called on every `crabboxWaitReady` poll iteration
|
|
162
|
-
* (crabboxWaitReady → crabboxFind → crabboxList → crabboxEnv), so without this
|
|
163
|
-
* memo the lease-token keychain read re-ran every ~5s of the ready wait — the
|
|
164
|
-
* per-poll storm this fix exists to kill. The read is now `agentOnly: true`
|
|
165
|
-
* (SEC-13: a `--lease` run is headless by contract and must never pop an
|
|
166
|
-
* unwatched Touch ID sheet). A locked `hold`/`always` bundle makes that read
|
|
167
|
-
* THROW the actionable "unlock <name>" message; we memoize the thrown error too
|
|
168
|
-
* and re-raise it on every subsequent call, so the failure surfaces loud ONCE
|
|
169
|
-
* up front (crabboxWarmup / the first crabboxList, before any poll loop) and the
|
|
170
|
-
* loop never re-issues the read. A `never`/no-ACL or broker-held bundle resolves
|
|
171
|
-
* silently. `undefined` when no lease bundle is configured (crabbox uses its own
|
|
172
|
-
* `crabbox login`). The memo (success OR failure) is cleared per test by
|
|
173
|
-
* resetCrabboxSecretsMemosForTest.
|
|
174
|
-
*/
|
|
175
96
|
let leaseEnvMemo;
|
|
176
97
|
function resolveLeaseEnvMemo(explicitBundle) {
|
|
177
98
|
if (!leaseEnvMemo) {
|
|
@@ -183,16 +104,9 @@ function resolveLeaseEnvMemo(explicitBundle) {
|
|
|
183
104
|
}
|
|
184
105
|
else {
|
|
185
106
|
try {
|
|
186
|
-
// Auto-detected bundle → inject ONLY the provider token key(s) (least
|
|
187
|
-
// privilege; an unrelated bundle can't leak its other secrets into crabbox).
|
|
188
|
-
// An explicitly-named bundle (env/config or `opts.secretsBundle`) injects
|
|
189
|
-
// whole — the user chose it. Same resolver `agents secrets exec` uses.
|
|
190
107
|
const { env } = readAndResolveBundleEnvSync(resolved.name, {
|
|
191
108
|
caller: 'agents run --lease (crabbox)',
|
|
192
109
|
keys: resolved.keys,
|
|
193
|
-
// --lease is headless by contract and a locked bundle must fail loud with
|
|
194
|
-
// an unlock hint, NEVER pop a Touch ID sheet — the read cannot be answered
|
|
195
|
-
// in a background lease (SEC-13).
|
|
196
110
|
agentOnly: true,
|
|
197
111
|
});
|
|
198
112
|
leaseEnvMemo = { env };
|
|
@@ -209,30 +123,16 @@ function resolveLeaseEnvMemo(explicitBundle) {
|
|
|
209
123
|
throw leaseEnvMemo.error;
|
|
210
124
|
return leaseEnvMemo.env;
|
|
211
125
|
}
|
|
212
|
-
/** Persist `lease.secretsBundle` in agents config so `--lease` needs no env var. */
|
|
213
126
|
export function setLeaseSecretsBundle(name) {
|
|
214
127
|
const meta = readMeta();
|
|
215
128
|
writeMeta({ ...meta, lease: { ...meta.lease, secretsBundle: name } });
|
|
216
|
-
leaseBundleMemo = undefined;
|
|
129
|
+
leaseBundleMemo = undefined;
|
|
217
130
|
}
|
|
218
|
-
/** Build the child env for crabbox, injecting a secrets bundle when configured. */
|
|
219
131
|
export function crabboxEnv(opts) {
|
|
220
132
|
const out = { ...process.env };
|
|
221
|
-
// The lease provider-token read is resolved ONCE up front and memoized (env or
|
|
222
|
-
// thrown error) for the process — crabboxEnv runs on every crabboxWaitReady
|
|
223
|
-
// poll, so re-reading here was the per-poll storm. A locked bundle re-raises
|
|
224
|
-
// the memoized "unlock <name>" error every call, so the failure surfaces loud
|
|
225
|
-
// on the first crabboxEnv (before any poll loop) and never re-issues the read.
|
|
226
133
|
const leaseEnv = resolveLeaseEnvMemo(opts.secretsBundle);
|
|
227
134
|
if (leaseEnv)
|
|
228
135
|
Object.assign(out, leaseEnv);
|
|
229
|
-
// Tailscale plumbing (F5): inject CRABBOX_TAILSCALE_AUTH_KEY from a bundle that
|
|
230
|
-
// declares a tailscale auth key, when the ambient env doesn't already set one.
|
|
231
|
-
// Best-effort and opt-in — a missing/unreadable tailscale bundle never fails a
|
|
232
|
-
// public-network lease; `crabboxWarmup({ netMode: 'tailscale' })` is what decides
|
|
233
|
-
// whether the key is actually used. The resolved value is memoized per process
|
|
234
|
-
// (see resolveTailscaleKeyValueMemo) so repeated crabboxEnv calls read the
|
|
235
|
-
// keychain at most once.
|
|
236
136
|
if (!out.CRABBOX_TAILSCALE_AUTH_KEY) {
|
|
237
137
|
const ts = resolveTailscaleBundleMemo();
|
|
238
138
|
if (ts) {
|
|
@@ -276,7 +176,6 @@ function normalizeBox(raw) {
|
|
|
276
176
|
idleTimeoutSecs: num(labels.idle_timeout_secs ?? labels.idle_timeout),
|
|
277
177
|
};
|
|
278
178
|
}
|
|
279
|
-
/** All crabbox machines the broker knows about. */
|
|
280
179
|
export function crabboxList(opts = {}) {
|
|
281
180
|
findCrabbox();
|
|
282
181
|
const timeoutMs = opts.timeoutMs ?? 8000;
|
|
@@ -298,17 +197,9 @@ export function crabboxList(opts = {}) {
|
|
|
298
197
|
return [];
|
|
299
198
|
return parsed.map((b) => normalizeBox(b)).filter((b) => b !== null);
|
|
300
199
|
}
|
|
301
|
-
/** Find one box by slug, or null. */
|
|
302
200
|
export function crabboxFind(slug, opts = {}) {
|
|
303
201
|
return crabboxList(opts).find((b) => b.slug === slug) ?? null;
|
|
304
202
|
}
|
|
305
|
-
/**
|
|
306
|
-
* Whether `crabbox status` reports the box SSH-ready (`ready=true`). A box whose
|
|
307
|
-
* cloud-init bootstrap failed still LISTS as `running` but never becomes ready —
|
|
308
|
-
* selecting it burns the full SSH wait before hard-failing. `crabbox status`
|
|
309
|
-
* flips ready=true only once sshd answers, so warm-pool reuse gates on it
|
|
310
|
-
* (mirrors scripts/sandbox.sh's `box_ready`).
|
|
311
|
-
*/
|
|
312
203
|
export function crabboxStatusReady(slug, opts = {}) {
|
|
313
204
|
findCrabbox();
|
|
314
205
|
const r = spawnSync('crabbox', ['status', '--id', slug], {
|
|
@@ -320,16 +211,6 @@ export function crabboxStatusReady(slug, opts = {}) {
|
|
|
320
211
|
return false;
|
|
321
212
|
return /(^|\s)ready=true(\s|$)/m.test(r.stdout);
|
|
322
213
|
}
|
|
323
|
-
/**
|
|
324
|
-
* Warm boxes in the profile pool this run could reuse: `running`, same profile
|
|
325
|
-
* label, same network mode, lease unexpired — most-recently-touched first.
|
|
326
|
-
*
|
|
327
|
-
* Readiness is NOT required here (deliberately mirrors sandbox.sh's
|
|
328
|
-
* `running_slugs_for_profile`, which filters on `status` only): the list `state`
|
|
329
|
-
* label can lag, so the caller gates each candidate on `crabboxStatusReady`
|
|
330
|
-
* before committing. A not-ready box is skipped, never stopped — a concurrent
|
|
331
|
-
* run may be mid-boot on it, and crabbox's idle timeout reaps genuine duds.
|
|
332
|
-
*/
|
|
333
214
|
export function poolReusableBoxes(boxes, opts = {}) {
|
|
334
215
|
const profile = opts.profile ?? DEFAULT_CRABBOX_PROFILE;
|
|
335
216
|
const netMode = opts.netMode ?? 'public';
|
|
@@ -347,13 +228,6 @@ export function poolReusableBoxes(boxes, opts = {}) {
|
|
|
347
228
|
})
|
|
348
229
|
.sort((a, b) => (b.lastTouchedAt ?? 0) - (a.lastTouchedAt ?? 0));
|
|
349
230
|
}
|
|
350
|
-
/**
|
|
351
|
-
* Lease a box and block until it is ready. Returns the leased box.
|
|
352
|
-
*
|
|
353
|
-
* We diff `crabbox list` before/after so we reliably identify the box this call
|
|
354
|
-
* created even if warmup's stdout format changes — the new lease id is the one
|
|
355
|
-
* that wasn't present before.
|
|
356
|
-
*/
|
|
357
231
|
export async function crabboxWarmup(opts = {}) {
|
|
358
232
|
findCrabbox();
|
|
359
233
|
const env = crabboxEnv(opts);
|
|
@@ -367,12 +241,8 @@ export async function crabboxWarmup(opts = {}) {
|
|
|
367
241
|
args.push('--provider', opts.provider);
|
|
368
242
|
if (opts.code)
|
|
369
243
|
args.push('--code');
|
|
370
|
-
// Tailscale plumbing (F5): join the box to the tailnet, tagged tag:crabbox.
|
|
371
|
-
// The auth key rides the child env as CRABBOX_TAILSCALE_AUTH_KEY (see crabboxEnv).
|
|
372
244
|
if (opts.netMode === 'tailscale')
|
|
373
245
|
args.push('--network', 'tailscale', '-tailscale-tags', 'tag:crabbox');
|
|
374
|
-
// Async spawn (not spawnSync): provisioning takes 30-90s and a blocking call
|
|
375
|
-
// would freeze any caller's progress spinner. Output is captured, not streamed.
|
|
376
246
|
const r = await new Promise((resolve) => {
|
|
377
247
|
const proc = spawn('crabbox', args, { env, stdio: ['ignore', 'pipe', 'pipe'] });
|
|
378
248
|
let stdout = '';
|
|
@@ -384,9 +254,6 @@ export async function crabboxWarmup(opts = {}) {
|
|
|
384
254
|
});
|
|
385
255
|
if (r.status !== 0) {
|
|
386
256
|
const detail = (r.stderr || r.stdout || '').trim();
|
|
387
|
-
// A provider `server_limit` / `resource_limit_exceeded` 403 means the account's
|
|
388
|
-
// box quota is full. Turn the raw 403 into an actionable message that names the
|
|
389
|
-
// reap-safe orphans + the one-command fix, instead of a generic failure.
|
|
390
257
|
if (/server_limit|resource_limit_exceeded/i.test(detail)) {
|
|
391
258
|
let hint = ' Stop unused boxes (`crabbox list`) or raise your provider server limit.';
|
|
392
259
|
try {
|
|
@@ -398,19 +265,16 @@ export async function crabboxWarmup(opts = {}) {
|
|
|
398
265
|
}
|
|
399
266
|
}
|
|
400
267
|
catch {
|
|
401
|
-
/* best-effort hint; fall back to the generic guidance above */
|
|
402
268
|
}
|
|
403
269
|
throw new Error(`crabbox warmup failed: provider server limit reached.${hint}`);
|
|
404
270
|
}
|
|
405
271
|
throw new Error(`crabbox warmup failed: ${detail || 'unknown error'}. ` +
|
|
406
272
|
`Check provider access with \`crabbox doctor\`; a missing cloud token often means \`crabbox login\` or a lease.secretsBundle is needed.`);
|
|
407
273
|
}
|
|
408
|
-
// Prefer the freshly-created box (lease absent from the pre-warmup snapshot).
|
|
409
274
|
const after = crabboxList(opts);
|
|
410
275
|
const fresh = after.filter((b) => !before.has(b.lease));
|
|
411
276
|
if (fresh.length === 1)
|
|
412
277
|
return fresh[0];
|
|
413
|
-
// Fallback: parse the cbx_ lease id crabbox prints and match it.
|
|
414
278
|
const m = (r.stdout || '').match(/cbx_[0-9a-f]+/i);
|
|
415
279
|
if (m) {
|
|
416
280
|
const byLease = after.find((b) => b.lease === m[0]);
|
|
@@ -418,7 +282,6 @@ export async function crabboxWarmup(opts = {}) {
|
|
|
418
282
|
return byLease;
|
|
419
283
|
}
|
|
420
284
|
if (fresh.length > 1) {
|
|
421
|
-
// Multiple new boxes (concurrent warmups) — pick the newest ready one.
|
|
422
285
|
const ready = fresh.filter((b) => b.ready);
|
|
423
286
|
if (ready.length)
|
|
424
287
|
return ready[ready.length - 1];
|
|
@@ -426,17 +289,12 @@ export async function crabboxWarmup(opts = {}) {
|
|
|
426
289
|
}
|
|
427
290
|
throw new Error('crabbox warmup succeeded but the new box could not be located in `crabbox list`.');
|
|
428
291
|
}
|
|
429
|
-
/**
|
|
430
|
-
* Poll until the box reports ready, or throw after timeoutMs.
|
|
431
|
-
* `sleep` is injectable so tests don't wall-clock wait.
|
|
432
|
-
*/
|
|
433
292
|
export async function crabboxWaitReady(slug, opts = {}) {
|
|
434
293
|
const timeoutMs = opts.timeoutMs ?? 180_000;
|
|
435
294
|
const intervalMs = opts.intervalMs ?? 5_000;
|
|
436
295
|
const sleep = opts.sleep ?? ((ms) => new Promise((res) => setTimeout(res, ms)));
|
|
437
296
|
const deadline = Date.now() + timeoutMs;
|
|
438
297
|
let last = null;
|
|
439
|
-
// First check is immediate (warmup usually returns an already-ready box).
|
|
440
298
|
for (;;) {
|
|
441
299
|
last = crabboxFind(slug, opts);
|
|
442
300
|
if (last?.ready)
|
|
@@ -447,15 +305,6 @@ export async function crabboxWaitReady(slug, opts = {}) {
|
|
|
447
305
|
}
|
|
448
306
|
throw new Error(`crabbox box "${slug}" did not become ready within ${Math.round(timeoutMs / 1000)}s (state: ${last?.state ?? 'gone'}).`);
|
|
449
307
|
}
|
|
450
|
-
/**
|
|
451
|
-
* Upload `script` to the box via `crabbox run --script-stdin` and run it.
|
|
452
|
-
*
|
|
453
|
-
* The script body travels over stdin and is written to a file on the box before
|
|
454
|
-
* execution — it never appears in argv / `ps` / shell history, which is why this
|
|
455
|
-
* is the transport for credential provisioning (the token contents live only in
|
|
456
|
-
* the uploaded script, then the file is removed by the script itself).
|
|
457
|
-
* Streams combined output; resolves with the remote exit code (null on dispatch failure).
|
|
458
|
-
*/
|
|
459
308
|
export function crabboxRunScript(slug, script, opts = {}) {
|
|
460
309
|
findCrabbox();
|
|
461
310
|
const args = ['run', '--id', slug, '--reclaim'];
|
|
@@ -481,10 +330,6 @@ export function crabboxRunScript(slug, script, opts = {}) {
|
|
|
481
330
|
proc.stdin.end();
|
|
482
331
|
});
|
|
483
332
|
}
|
|
484
|
-
/**
|
|
485
|
-
* Parse crabbox's shell-quoted `ssh` command (`'ssh' '-i' '<key>' … 'crabbox@ip'`)
|
|
486
|
-
* into an argv array. Exported for testing.
|
|
487
|
-
*/
|
|
488
333
|
export function parseCrabboxSshArgv(stdout) {
|
|
489
334
|
for (const raw of stdout.split('\n')) {
|
|
490
335
|
const line = raw.trim();
|
|
@@ -496,15 +341,6 @@ export function parseCrabboxSshArgv(stdout) {
|
|
|
496
341
|
}
|
|
497
342
|
return null;
|
|
498
343
|
}
|
|
499
|
-
/**
|
|
500
|
-
* The concrete `ssh` argv crabbox uses to reach box `slug` — including the
|
|
501
|
-
* per-lease identity key and known_hosts crabbox provisions under its own config
|
|
502
|
-
* dir. A raw `ssh crabbox@ip` fails `publickey`; this is the only auth that works.
|
|
503
|
-
* `crabbox ssh --id` PRINTS the command (it doesn't connect — that's `crabbox
|
|
504
|
-
* connect`), and `--reclaim` makes it resolve regardless of which repo holds the
|
|
505
|
-
* lease claim (matching `crabboxRunScript`). Returns null when crabbox can't
|
|
506
|
-
* resolve the box (caller treats setup-copy / `agents ssh` as best-effort).
|
|
507
|
-
*/
|
|
508
344
|
export function crabboxSshArgv(slug, opts = {}) {
|
|
509
345
|
findCrabbox();
|
|
510
346
|
const r = spawnSync('crabbox', ['ssh', '--id', slug, '--reclaim'], {
|
|
@@ -516,12 +352,8 @@ export function crabboxSshArgv(slug, opts = {}) {
|
|
|
516
352
|
return null;
|
|
517
353
|
return parseCrabboxSshArgv(r.stdout);
|
|
518
354
|
}
|
|
519
|
-
/** Release the lease / delete the box. Best-effort; never throws. */
|
|
520
355
|
export function crabboxStop(slug, opts = {}) {
|
|
521
356
|
try {
|
|
522
|
-
// Positional target: crabbox's stop subcommand has no --id flag (unlike
|
|
523
|
-
// status/run/ssh) — `stop --id <slug>` dies with "flag provided but not
|
|
524
|
-
// defined: -id" and the box leaks past the run it was leased for.
|
|
525
357
|
const r = spawnSync('crabbox', ['stop', slug], { encoding: 'utf-8', env: crabboxEnv(opts) });
|
|
526
358
|
return r.status === 0;
|
|
527
359
|
}
|
|
@@ -529,20 +361,7 @@ export function crabboxStop(slug, opts = {}) {
|
|
|
529
361
|
return false;
|
|
530
362
|
}
|
|
531
363
|
}
|
|
532
|
-
/** Never reap a box touched within this many seconds, regardless of idle-timeout. */
|
|
533
364
|
export const REAP_MIN_IDLE_SECS = 3600;
|
|
534
|
-
/**
|
|
535
|
-
* Whether a box is a genuine orphan that is safe to reap.
|
|
536
|
-
*
|
|
537
|
-
* Reap-safe ONLY when BOTH hold: the lease has already expired (`expiresAt` in the
|
|
538
|
-
* past) AND the box has not been touched for a safety window of
|
|
539
|
-
* `max(2 × idleTimeout, 1h)`. The freshness guard is what makes this safe against
|
|
540
|
-
* a TOCTOU race: a box a concurrent run just reused (`cbx_acquire_box`) has a
|
|
541
|
-
* recent `lastTouchedAt` and is never eligible. Reaping by `profile`/`ready` alone
|
|
542
|
-
* — as `crabbox cleanup` cannot (it skips `keep=true`, which every real orphan is)
|
|
543
|
-
* — would kill in-use boxes. Boxes with unknown age (`expiresAt`/`lastTouchedAt`
|
|
544
|
-
* null) are never reaped. `nowSecs` is injected so tests don't wall-clock.
|
|
545
|
-
*/
|
|
546
365
|
export function isReapSafe(box, nowSecs) {
|
|
547
366
|
if (box.expiresAt === null || box.lastTouchedAt === null)
|
|
548
367
|
return false;
|
|
@@ -551,17 +370,11 @@ export function isReapSafe(box, nowSecs) {
|
|
|
551
370
|
const window = Math.max((box.idleTimeoutSecs ?? 0) * 2, REAP_MIN_IDLE_SECS);
|
|
552
371
|
return nowSecs - box.lastTouchedAt >= window;
|
|
553
372
|
}
|
|
554
|
-
/** The reap-safe orphans among `boxes`, most-stale (oldest touch) first. */
|
|
555
373
|
export function reapSafeOrphans(boxes, nowSecs) {
|
|
556
374
|
return boxes
|
|
557
375
|
.filter((b) => isReapSafe(b, nowSecs))
|
|
558
376
|
.sort((a, b) => (a.lastTouchedAt ?? 0) - (b.lastTouchedAt ?? 0));
|
|
559
377
|
}
|
|
560
|
-
/**
|
|
561
|
-
* List reap-safe orphans and (unless `dryRun`) stop them. Returns the candidates
|
|
562
|
-
* considered and the slugs actually stopped. Best-effort per box — a stop failure
|
|
563
|
-
* is skipped, never thrown. Backs `agents devices lease prune` and the 403 auto-reap opt-in.
|
|
564
|
-
*/
|
|
565
378
|
export function reapOrphans(opts = {}) {
|
|
566
379
|
const nowSecs = opts.nowSecs ?? Math.floor(Date.now() / 1000);
|
|
567
380
|
const candidates = reapSafeOrphans(crabboxList(opts), nowSecs);
|
|
@@ -1,20 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The repo-local crabbox config (`.crabbox.yaml` at the repo root).
|
|
3
|
-
*
|
|
4
|
-
* crabbox itself reads this file when warming a box (the `profile:` key becomes
|
|
5
|
-
* the box's `profile` label). `agents run --lease` deliberately does NOT inherit
|
|
6
|
-
* that repo/CI label: leases share the default pool unless `leaseProfile:` opts
|
|
7
|
-
* the repo into a dedicated hot box.
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* The profile label a box warm pool shares. Matches sandbox.sh's
|
|
11
|
-
* `PROFILE="${PROFILE:-default}"`: a run with no configured profile and a box
|
|
12
|
-
* with no `profile` label both normalize here, so they still match each other.
|
|
13
|
-
*/
|
|
14
1
|
export declare const DEFAULT_CRABBOX_PROFILE = "default";
|
|
15
|
-
/**
|
|
16
|
-
* Pool label for `agents run --lease`. The generic `profile:` key remains owned
|
|
17
|
-
* by repo sandbox/CI scripts; only the explicit `leaseProfile:` key opts lease
|
|
18
|
-
* runs out of the shared default pool.
|
|
19
|
-
*/
|
|
20
2
|
export declare function readCrabboxLeaseProfile(repoRoot: string): string;
|
|
@@ -1,19 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The repo-local crabbox config (`.crabbox.yaml` at the repo root).
|
|
3
|
-
*
|
|
4
|
-
* crabbox itself reads this file when warming a box (the `profile:` key becomes
|
|
5
|
-
* the box's `profile` label). `agents run --lease` deliberately does NOT inherit
|
|
6
|
-
* that repo/CI label: leases share the default pool unless `leaseProfile:` opts
|
|
7
|
-
* the repo into a dedicated hot box.
|
|
8
|
-
*/
|
|
9
1
|
import * as fs from 'fs';
|
|
10
2
|
import * as path from 'path';
|
|
11
3
|
import * as yaml from 'yaml';
|
|
12
|
-
/**
|
|
13
|
-
* The profile label a box warm pool shares. Matches sandbox.sh's
|
|
14
|
-
* `PROFILE="${PROFILE:-default}"`: a run with no configured profile and a box
|
|
15
|
-
* with no `profile` label both normalize here, so they still match each other.
|
|
16
|
-
*/
|
|
17
4
|
export const DEFAULT_CRABBOX_PROFILE = 'default';
|
|
18
5
|
function readCrabboxRepoConfig(repoRoot) {
|
|
19
6
|
let raw;
|
|
@@ -21,7 +8,7 @@ function readCrabboxRepoConfig(repoRoot) {
|
|
|
21
8
|
raw = fs.readFileSync(path.join(repoRoot, '.crabbox.yaml'), 'utf-8');
|
|
22
9
|
}
|
|
23
10
|
catch {
|
|
24
|
-
return undefined;
|
|
11
|
+
return undefined;
|
|
25
12
|
}
|
|
26
13
|
let parsed;
|
|
27
14
|
try {
|
|
@@ -32,11 +19,6 @@ function readCrabboxRepoConfig(repoRoot) {
|
|
|
32
19
|
}
|
|
33
20
|
return parsed && typeof parsed === 'object' ? parsed : undefined;
|
|
34
21
|
}
|
|
35
|
-
/**
|
|
36
|
-
* Pool label for `agents run --lease`. The generic `profile:` key remains owned
|
|
37
|
-
* by repo sandbox/CI scripts; only the explicit `leaseProfile:` key opts lease
|
|
38
|
-
* runs out of the shared default pool.
|
|
39
|
-
*/
|
|
40
22
|
export function readCrabboxLeaseProfile(repoRoot) {
|
|
41
23
|
const profile = readCrabboxRepoConfig(repoRoot)?.leaseProfile;
|
|
42
24
|
return typeof profile === 'string' && profile.length > 0 ? profile : DEFAULT_CRABBOX_PROFILE;
|
|
@@ -1,38 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `agents run --lease` orchestrator.
|
|
3
|
-
*
|
|
4
|
-
* Acquire a box → provision the picked runtime(s) + their credentials → run the
|
|
5
|
-
* agent on the box (via `crabbox run`, which owns the SSH) → tear the box down.
|
|
6
|
-
* Acquisition is reuse-first against the shared warm pool (a ready box carrying
|
|
7
|
-
* the lease profile + netMode labels is reused and kept; `--fresh` opts out and
|
|
8
|
-
* always leases a new, torn-down box). Concurrent callers run from separate
|
|
9
|
-
* `~/workspaces/<repo>-<run>` directories on that box. The whole box-side
|
|
10
|
-
* sequence rides a single `--script-stdin` body so token contents never touch argv.
|
|
11
|
-
*
|
|
12
|
-
* ── Command-layer contract (RUSH-1920/1921/1924) ─────────────────────────────
|
|
13
|
-
* Exports the commands layer (exec.ts / lease.ts / ssh.ts) consumes:
|
|
14
|
-
* • `buildBootstrapScript(opts)` — `opts.copySetup` (default TRUE; clear for
|
|
15
|
-
* --bare) gates the `copy-setup` progress sentinel; `opts.netMode`
|
|
16
|
-
* ('public' | 'tailscale', default 'public') adds the `joined-tailnet` step.
|
|
17
|
-
* • `LeaseRunOptions.copySetup` / `LeaseRunOptions.netMode` — forwarded by
|
|
18
|
-
* `leaseAndRun` (netMode → `crabboxWarmup`). `LeaseRunOptions.fresh`
|
|
19
|
-
* (`--fresh`) skips the warm profile-pool reuse check and always leases a
|
|
20
|
-
* new box, torn down after the run.
|
|
21
|
-
* • `crabboxWarmup(opts.netMode)` — 'tailscale' leases onto the tailnet
|
|
22
|
-
* (`--network tailscale -tailscale-tags tag:crabbox`); auth key rides the
|
|
23
|
-
* child env as `CRABBOX_TAILSCALE_AUTH_KEY` (crabboxEnv, cli.ts).
|
|
24
|
-
* • `CrabboxBox.tailscaleIPv4` / `CrabboxBox.tailscaleFQDN` — populated from
|
|
25
|
-
* the box labels by `normalizeBox` (cli.ts).
|
|
26
|
-
* • Step stream (progress.ts): `type LeaseStep`, the `onStep` router option,
|
|
27
|
-
* and the self-contained `renderStepLine(step)` helper (the lib never prints).
|
|
28
|
-
* • Setup-copy (setup-copy.ts): `copySetupToBox({ host, user?, port?,
|
|
29
|
-
* secretsBundle?, userAgentsDir?, onData? }): Promise<CopySetupResult>` — the
|
|
30
|
-
* push-from-local the command layer runs before the box run.
|
|
31
|
-
*/
|
|
32
1
|
import type { AgentId } from '../types.js';
|
|
33
2
|
import { type CrabboxBox } from './cli.js';
|
|
34
3
|
import { type DetectedRuntime } from './runtimes.js';
|
|
35
|
-
/** Phase signal for a lease run, so the command layer can drive a progress UI. */
|
|
36
4
|
type LeasePhase = {
|
|
37
5
|
kind: 'warmup';
|
|
38
6
|
backend?: string;
|
|
@@ -51,53 +19,22 @@ interface LeaseRunOptions {
|
|
|
51
19
|
prompt: string;
|
|
52
20
|
mode?: string;
|
|
53
21
|
model?: string;
|
|
54
|
-
/** Cloud backend crabbox provisions on (hetzner/aws/do/…). */
|
|
55
22
|
backend?: string;
|
|
56
23
|
boxClass?: string;
|
|
57
24
|
profile?: string;
|
|
58
|
-
/** Per-run directory under ~/workspaces; isolates concurrent runs on one box. */
|
|
59
25
|
workspaceId?: string;
|
|
60
|
-
/** Runtimes to install on the box. */
|
|
61
26
|
runtimes: AgentId[];
|
|
62
|
-
/** Runtime credentials to copy; defaults to `runtimes`. */
|
|
63
27
|
credentialRuntimes?: AgentId[];
|
|
64
28
|
detected: DetectedRuntime[];
|
|
65
|
-
/** Profile-dispatch config to materialize on the leased box before the run. */
|
|
66
29
|
dispatchProfile?: LeaseDispatchProfile;
|
|
67
|
-
/** Secrets bundle providing crabbox's provider token. */
|
|
68
30
|
secretsBundle?: string;
|
|
69
|
-
/**
|
|
70
|
-
* Push the git-tracked subset of the local `~/.agents` onto the box before the
|
|
71
|
-
* run (default TRUE). The command layer sets `false` for `--bare`. When true,
|
|
72
|
-
* `buildBootstrapScript` emits the `copy-setup` progress sentinel; the actual
|
|
73
|
-
* push-from-local is `copySetupToBox` (setup-copy.ts), which the command layer
|
|
74
|
-
* runs before the box run.
|
|
75
|
-
*/
|
|
76
31
|
copySetup?: boolean;
|
|
77
|
-
/**
|
|
78
|
-
* Network mode threaded to `crabboxWarmup` (default `'public'`). `'tailscale'`
|
|
79
|
-
* leases the box onto the tailnet and adds a `joined-tailnet` progress step.
|
|
80
|
-
* The command layer decides WHEN to enable it — this is plumbing only.
|
|
81
|
-
*/
|
|
82
32
|
netMode?: 'public' | 'tailscale';
|
|
83
33
|
onData?: (s: string) => void;
|
|
84
|
-
/** Progress phases (warmup → ready → teardown) for a command-layer spinner. */
|
|
85
34
|
onPhase?: (phase: LeasePhase) => void;
|
|
86
|
-
/** Keep the box after the run instead of stopping it. */
|
|
87
35
|
keep?: boolean;
|
|
88
|
-
/** Existing warm crabbox slug to reuse instead of provisioning a new lease. */
|
|
89
36
|
reuseBox?: string;
|
|
90
|
-
/**
|
|
91
|
-
* Force a brand-new box: skip the warm profile-pool reuse check and tear the
|
|
92
|
-
* box down after the run (the pre-pool `--lease` behavior). `--fresh` at the
|
|
93
|
-
* command layer.
|
|
94
|
-
*/
|
|
95
37
|
fresh?: boolean;
|
|
96
|
-
/**
|
|
97
|
-
* Raw wrapped Claude OAuth payload (from `resolveClaudeCredentialsBlob`), written
|
|
98
|
-
* to `~/.claude/.credentials.json` on the box. The command layer resolves it
|
|
99
|
-
* (after consent) so this module stays free of Keychain I/O and unit-testable.
|
|
100
|
-
*/
|
|
101
38
|
claudeCredentialsJson?: string | null;
|
|
102
39
|
}
|
|
103
40
|
export interface LeaseDispatchProfile {
|
|
@@ -115,47 +52,17 @@ interface LeaseRunResult {
|
|
|
115
52
|
exitCode: number | null;
|
|
116
53
|
toreDown: boolean;
|
|
117
54
|
}
|
|
118
|
-
/**
|
|
119
|
-
* Exit code the box-side bootstrap raises when `agents setup` did not leave a
|
|
120
|
-
* usable install (`~/.agents/.system` is still not a git repo). The run-side gate
|
|
121
|
-
* (`ensureInitialized`, commands/setup.ts) refuses `agents run` with "agents-cli
|
|
122
|
-
* is not set up" in exactly that state, so the bootstrap aborts with this code
|
|
123
|
-
* instead of running the agent into that refusal. `leaseAndRun` reads it to stop
|
|
124
|
-
* a box THIS run provisioned — a newly created box that can't run is pure cost.
|
|
125
|
-
*/
|
|
126
55
|
export declare const LEASE_BOOTSTRAP_FAILED_CODE = 97;
|
|
127
|
-
/** Build a shell-safe, collision-resistant workspace id for one lease run. */
|
|
128
56
|
export declare function leaseWorkspaceId(repoRoot: string, startedAtMs?: number, pid?: number): string;
|
|
129
|
-
/**
|
|
130
|
-
* Build the single bootstrap script run on the box: ensure agents-cli, install
|
|
131
|
-
* the picked runtime CLIs, write their credentials, run the agent, then shred
|
|
132
|
-
* the credential files. Best-effort install steps never abort the run.
|
|
133
|
-
*/
|
|
134
57
|
export declare function buildBootstrapScript(opts: LeaseRunOptions): string;
|
|
135
|
-
/** Untouched-for-this-long ⇒ no active run holds the box, so an expired one is a stray. */
|
|
136
58
|
export declare const STRAY_GRACE_SECS = 600;
|
|
137
59
|
interface StrayMatchOptions {
|
|
138
|
-
/** Pool the lease belongs to (defaults to DEFAULT_CRABBOX_PROFILE). */
|
|
139
60
|
profile?: string;
|
|
140
|
-
/** Network mode of the lease (default 'public'); a box is partitioned by it. */
|
|
141
61
|
netMode?: 'public' | 'tailscale';
|
|
142
|
-
/** The box this run is using — never a stray. */
|
|
143
62
|
keepSlug: string;
|
|
144
|
-
/** Injectable clock (unix seconds). */
|
|
145
63
|
nowSecs?: number;
|
|
146
|
-
/** Idle grace window (defaults to {@link STRAY_GRACE_SECS}). */
|
|
147
64
|
graceSecs?: number;
|
|
148
65
|
}
|
|
149
|
-
/**
|
|
150
|
-
* Whether `box` is an EXPIRED, idle stray in this run's pool — the boxes that
|
|
151
|
-
* accumulate cost. An expired box can never be reused (`poolReusableBoxes` gates
|
|
152
|
-
* on an unexpired lease), yet `keep:true` leaves it running, so without a sweep a
|
|
153
|
-
* fresh provision leaves the old one billing until `gc`'s 1h-idle window. Only a
|
|
154
|
-
* box that is running, in the SAME profile+netMode pool, has an EXPIRED lease, and
|
|
155
|
-
* has been untouched for the grace window is a stray — a mid-boot or in-use box
|
|
156
|
-
* (recent `lastTouchedAt`, or an unexpired lease) is never one. Pure — testable
|
|
157
|
-
* without a shell.
|
|
158
|
-
*/
|
|
159
66
|
export declare function isExpiredPoolStray(box: CrabboxBox, opts: StrayMatchOptions): boolean;
|
|
160
67
|
export declare function leaseAndRun(opts: LeaseRunOptions): Promise<LeaseRunResult>;
|
|
161
68
|
export {};
|