@phnx-labs/agents-cli 1.22.119 → 1.22.121
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +236 -0
- package/README.md +19 -2
- package/dist/bootstrap.d.ts +0 -15
- package/dist/bootstrap.js +10 -409
- package/dist/cli/command-registry.d.ts +0 -58
- package/dist/cli/command-registry.js +2 -74
- package/dist/commands/accounts.d.ts +0 -17
- package/dist/commands/accounts.js +1 -52
- package/dist/commands/alias.d.ts +0 -12
- package/dist/commands/alias.js +0 -6
- package/dist/commands/apply.d.ts +0 -15
- package/dist/commands/apply.js +0 -63
- package/dist/commands/audit.d.ts +0 -12
- package/dist/commands/audit.js +0 -13
- package/dist/commands/auth.js +4 -12
- package/dist/commands/beta.d.ts +0 -6
- package/dist/commands/beta.js +2 -6
- package/dist/commands/browser-sessions-picker.d.ts +0 -8
- package/dist/commands/browser-sessions-picker.js +0 -26
- package/dist/commands/browser.d.ts +0 -57
- package/dist/commands/browser.js +0 -80
- package/dist/commands/budget.d.ts +0 -13
- package/dist/commands/budget.js +0 -2
- package/dist/commands/cli.d.ts +0 -12
- package/dist/commands/cli.js +0 -4
- package/dist/commands/cloud.d.ts +0 -9
- package/dist/commands/cloud.js +0 -43
- package/dist/commands/commands.d.ts +0 -9
- package/dist/commands/commands.js +0 -18
- package/dist/commands/computer-sessions-picker.d.ts +0 -11
- package/dist/commands/computer-sessions-picker.js +0 -29
- package/dist/commands/computer.d.ts +0 -62
- package/dist/commands/computer.js +3 -114
- package/dist/commands/config.d.ts +0 -14
- package/dist/commands/config.js +21 -60
- package/dist/commands/cost.d.ts +0 -11
- package/dist/commands/cost.js +1 -17
- package/dist/commands/daemon-test-harness.d.ts +0 -32
- package/dist/commands/daemon-test-harness.js +1 -36
- package/dist/commands/daemon.d.ts +0 -46
- package/dist/commands/daemon.js +8 -255
- package/dist/commands/detach-core.d.ts +0 -28
- package/dist/commands/detach-core.js +0 -30
- package/dist/commands/detach.d.ts +1 -12
- package/dist/commands/detach.js +16 -52
- package/dist/commands/device-config-test-harness.js +0 -12
- package/dist/commands/doctor.d.ts +0 -103
- package/dist/commands/doctor.js +3 -279
- package/dist/commands/events.d.ts +0 -29
- package/dist/commands/events.js +1 -55
- package/dist/commands/exec.d.ts +0 -163
- package/dist/commands/exec.js +15 -964
- package/dist/commands/factory.d.ts +0 -6
- package/dist/commands/factory.js +0 -2
- package/dist/commands/feed-watch.js +0 -20
- package/dist/commands/feed.d.ts +0 -38
- package/dist/commands/feed.js +1 -151
- package/dist/commands/feedback.d.ts +0 -5
- package/dist/commands/feedback.js +0 -5
- package/dist/commands/fleet-capture.d.ts +0 -12
- package/dist/commands/fleet-capture.js +1 -39
- package/dist/commands/focus.d.ts +6 -94
- package/dist/commands/focus.js +13 -183
- package/dist/commands/fork.d.ts +0 -21
- package/dist/commands/fork.js +0 -45
- package/dist/commands/funnel.d.ts +0 -3
- package/dist/commands/go.d.ts +2 -71
- package/dist/commands/go.js +5 -99
- package/dist/commands/harness-hooks.d.ts +0 -41
- package/dist/commands/harness-hooks.js +0 -48
- package/dist/commands/harness-wizard.d.ts +0 -137
- package/dist/commands/harness-wizard.js +0 -109
- package/dist/commands/harness.d.ts +0 -63
- package/dist/commands/harness.js +0 -103
- package/dist/commands/hooks.d.ts +0 -9
- package/dist/commands/hooks.js +0 -26
- package/dist/commands/humans.d.ts +0 -8
- package/dist/commands/humans.js +0 -8
- package/dist/commands/import.d.ts +0 -22
- package/dist/commands/import.js +0 -79
- package/dist/commands/insights.d.ts +0 -37
- package/dist/commands/insights.js +3 -115
- package/dist/commands/inspect.d.ts +0 -117
- package/dist/commands/inspect.js +2 -448
- package/dist/commands/lease.d.ts +0 -28
- package/dist/commands/lease.js +0 -43
- package/dist/commands/logs.d.ts +0 -23
- package/dist/commands/logs.js +0 -30
- package/dist/commands/mailboxes.d.ts +0 -18
- package/dist/commands/mailboxes.js +0 -29
- package/dist/commands/mcp.d.ts +0 -9
- package/dist/commands/mcp.js +0 -53
- package/dist/commands/memory.d.ts +0 -7
- package/dist/commands/memory.js +0 -7
- package/dist/commands/menubar.d.ts +0 -8
- package/dist/commands/menubar.js +0 -24
- package/dist/commands/message.d.ts +0 -23
- package/dist/commands/message.js +0 -50
- package/dist/commands/mine.d.ts +0 -22
- package/dist/commands/mine.js +0 -21
- package/dist/commands/models.d.ts +0 -8
- package/dist/commands/models.js +0 -33
- package/dist/commands/modes.d.ts +0 -10
- package/dist/commands/modes.js +0 -13
- package/dist/commands/monitors.d.ts +0 -9
- package/dist/commands/monitors.js +3 -160
- package/dist/commands/open.d.ts +0 -26
- package/dist/commands/open.js +0 -10
- package/dist/commands/output.d.ts +0 -18
- package/dist/commands/output.js +1 -34
- package/dist/commands/packages-materialize.d.ts +0 -11
- package/dist/commands/packages-materialize.js +0 -3
- package/dist/commands/packages.d.ts +0 -10
- package/dist/commands/packages.js +0 -50
- package/dist/commands/perf.d.ts +0 -41
- package/dist/commands/perf.js +0 -55
- package/dist/commands/permissions.d.ts +0 -9
- package/dist/commands/permissions.js +0 -43
- package/dist/commands/plugins.d.ts +0 -14
- package/dist/commands/plugins.js +2 -55
- package/dist/commands/profiles.d.ts +0 -25
- package/dist/commands/profiles.js +0 -27
- package/dist/commands/projects-todo.d.ts +2 -0
- package/dist/commands/projects-todo.js +132 -0
- package/dist/commands/projects.d.ts +0 -85
- package/dist/commands/projects.js +344 -291
- package/dist/commands/prune.js +0 -30
- package/dist/commands/ps-roster.d.ts +92 -0
- package/dist/commands/ps-roster.js +744 -0
- package/dist/commands/ps.d.ts +6 -0
- package/dist/commands/ps.js +98 -0
- package/dist/commands/refresh-rules.d.ts +0 -13
- package/dist/commands/refresh-rules.js +0 -14
- package/dist/commands/reminders.d.ts +0 -7
- package/dist/commands/repo.d.ts +0 -89
- package/dist/commands/repo.js +7 -205
- package/dist/commands/resource-view.d.ts +0 -33
- package/dist/commands/resource-view.js +0 -49
- package/dist/commands/resume.d.ts +1 -19
- package/dist/commands/resume.js +0 -50
- package/dist/commands/route.d.ts +0 -10
- package/dist/commands/route.js +0 -19
- package/dist/commands/routines.d.ts +0 -42
- package/dist/commands/routines.js +5 -290
- package/dist/commands/routines.test-fixture.d.ts +0 -34
- package/dist/commands/routines.test-fixture.js +4 -100
- package/dist/commands/rules.d.ts +0 -9
- package/dist/commands/rules.js +1 -6
- package/dist/commands/run-account-picker.d.ts +0 -59
- package/dist/commands/run-account-picker.js +0 -71
- package/dist/commands/run-broadcast.d.ts +0 -9
- package/dist/commands/run-broadcast.js +0 -7
- package/dist/commands/run-cloud.d.ts +0 -15
- package/dist/commands/run-cloud.js +0 -37
- package/dist/commands/run-device-picker.d.ts +0 -25
- package/dist/commands/run-device-picker.js +1 -53
- package/dist/commands/secrets-passthrough.d.ts +0 -31
- package/dist/commands/secrets-passthrough.js +0 -10
- package/dist/commands/send.d.ts +0 -20
- package/dist/commands/send.js +14 -18
- package/dist/commands/sessions-backfill.d.ts +0 -7
- package/dist/commands/sessions-backfill.js +1 -16
- package/dist/commands/sessions-backup-setup.js +0 -11
- package/dist/commands/sessions-bookmark.d.ts +0 -8
- package/dist/commands/sessions-bookmark.js +0 -28
- package/dist/commands/sessions-browser.d.ts +2 -117
- package/dist/commands/sessions-browser.js +5 -243
- package/dist/commands/sessions-export.d.ts +1 -26
- package/dist/commands/sessions-export.js +3 -81
- package/dist/commands/sessions-import.d.ts +0 -14
- package/dist/commands/sessions-import.js +0 -59
- package/dist/commands/sessions-inject.d.ts +0 -60
- package/dist/commands/sessions-inject.js +3 -96
- package/dist/commands/sessions-migrate.d.ts +2 -37
- package/dist/commands/sessions-migrate.js +7 -159
- package/dist/commands/sessions-optimize.d.ts +0 -12
- package/dist/commands/sessions-picker-factory.d.ts +0 -7
- package/dist/commands/sessions-picker-factory.js +0 -8
- package/dist/commands/sessions-picker.d.ts +4 -103
- package/dist/commands/sessions-picker.js +13 -352
- package/dist/commands/sessions-render.d.ts +1 -2
- package/dist/commands/sessions-render.js +3 -7
- package/dist/commands/sessions-resume.d.ts +1 -24
- package/dist/commands/sessions-resume.js +2 -65
- package/dist/commands/sessions-share.d.ts +1 -9
- package/dist/commands/sessions-share.js +1 -45
- package/dist/commands/sessions-stats.d.ts +0 -24
- package/dist/commands/sessions-stats.js +0 -49
- package/dist/commands/sessions-stop.d.ts +1 -20
- package/dist/commands/sessions-stop.js +4 -9
- package/dist/commands/sessions-tail.d.ts +1 -19
- package/dist/commands/sessions-tail.js +3 -36
- package/dist/commands/sessions-trace.d.ts +5 -36
- package/dist/commands/sessions-trace.js +7 -82
- package/dist/commands/sessions.d.ts +1 -666
- package/dist/commands/sessions.js +30 -2279
- package/dist/commands/sessions.test-fixture.d.ts +0 -9
- package/dist/commands/sessions.test-fixture.js +8 -23
- package/dist/commands/setup-accounts.d.ts +0 -6
- package/dist/commands/setup-browser.d.ts +0 -23
- package/dist/commands/setup-browser.js +0 -28
- package/dist/commands/setup-computer.d.ts +0 -16
- package/dist/commands/setup-computer.js +0 -28
- package/dist/commands/setup-fleet.d.ts +0 -8
- package/dist/commands/setup-fleet.js +0 -11
- package/dist/commands/setup-mine.d.ts +0 -14
- package/dist/commands/setup-mine.js +0 -25
- package/dist/commands/setup-preferences.d.ts +0 -47
- package/dist/commands/setup-preferences.js +0 -53
- package/dist/commands/setup-secrets.d.ts +2 -24
- package/dist/commands/setup-secrets.js +0 -24
- package/dist/commands/setup-term.d.ts +0 -21
- package/dist/commands/setup-term.js +0 -21
- package/dist/commands/setup-terminal.d.ts +0 -1
- package/dist/commands/setup-terminal.js +0 -1
- package/dist/commands/setup-tools.d.ts +2 -0
- package/dist/commands/setup-tools.js +73 -0
- package/dist/commands/setup.d.ts +0 -20
- package/dist/commands/setup.js +4 -57
- package/dist/commands/skills.d.ts +0 -9
- package/dist/commands/skills.js +1 -22
- package/dist/commands/snapshot.d.ts +0 -9
- package/dist/commands/snapshot.js +0 -10
- package/dist/commands/ssh.d.ts +0 -64
- package/dist/commands/ssh.js +9 -420
- package/dist/commands/status.d.ts +0 -12
- package/dist/commands/status.js +0 -26
- package/dist/commands/subagents.d.ts +0 -8
- package/dist/commands/subagents.js +0 -31
- package/dist/commands/sync.d.ts +0 -37
- package/dist/commands/sync.js +0 -256
- package/dist/commands/teams-picker.d.ts +0 -3
- package/dist/commands/teams-picker.js +0 -34
- package/dist/commands/teams.d.ts +1 -76
- package/dist/commands/teams.js +9 -477
- package/dist/commands/tmux.d.ts +0 -25
- package/dist/commands/tmux.js +0 -46
- package/dist/commands/traces.js +0 -19
- package/dist/commands/trash.d.ts +0 -17
- package/dist/commands/trash.js +1 -11
- package/dist/commands/uninstall.d.ts +0 -9
- package/dist/commands/uninstall.js +0 -6
- package/dist/commands/update.d.ts +0 -22
- package/dist/commands/update.js +0 -44
- package/dist/commands/upgrade.d.ts +0 -1
- package/dist/commands/upgrade.js +0 -1
- package/dist/commands/utils.d.ts +0 -85
- package/dist/commands/utils.js +1 -95
- package/dist/commands/versions.d.ts +0 -16
- package/dist/commands/versions.js +0 -134
- package/dist/commands/view.d.ts +0 -90
- package/dist/commands/view.js +4 -343
- package/dist/commands/watchdog.d.ts +0 -19
- package/dist/commands/watchdog.js +3 -43
- package/dist/commands/webhook.d.ts +0 -8
- package/dist/commands/webhook.js +0 -14
- package/dist/commands/workflows.d.ts +0 -8
- package/dist/commands/workflows.js +0 -6
- package/dist/index.d.ts +0 -25
- package/dist/index.js +5 -119
- package/dist/lib/account-capabilities.d.ts +0 -34
- package/dist/lib/account-capabilities.js +0 -32
- package/dist/lib/account-catalog.d.ts +0 -128
- package/dist/lib/account-catalog.js +8 -154
- package/dist/lib/account-provider-registry.d.ts +0 -14
- package/dist/lib/account-provider-registry.js +0 -8
- package/dist/lib/account-registry.d.ts +0 -74
- package/dist/lib/account-registry.js +14 -189
- package/dist/lib/account-schema.d.ts +0 -19
- package/dist/lib/account-schema.js +0 -43
- package/dist/lib/accounting/account-launch.d.ts +0 -15
- package/dist/lib/accounting/account-launch.js +1 -3
- package/dist/lib/accounting/account-pool-collect.d.ts +0 -26
- package/dist/lib/accounting/account-pool-collect.js +0 -42
- package/dist/lib/accounting/account-pool.d.ts +0 -41
- package/dist/lib/accounting/account-pool.js +0 -17
- package/dist/lib/accounting/capacity.d.ts +0 -32
- package/dist/lib/accounting/capacity.js +0 -32
- package/dist/lib/accounting/rotate.d.ts +0 -518
- package/dist/lib/accounting/rotate.js +4 -598
- package/dist/lib/accounting/usage-ingest.d.ts +0 -1
- package/dist/lib/accounting/usage-ingest.js +0 -44
- package/dist/lib/accounting/usage-sync.d.ts +0 -60
- package/dist/lib/accounting/usage-sync.js +4 -51
- package/dist/lib/accounting/usage.d.ts +0 -632
- package/dist/lib/accounting/usage.js +14 -1055
- package/dist/lib/accounts/add.d.ts +0 -60
- package/dist/lib/accounts/add.js +0 -127
- package/dist/lib/accounts/auth-operation-lock.d.ts +0 -1
- package/dist/lib/accounts/auth-operation-lock.js +0 -4
- package/dist/lib/accounts/migrate.d.ts +0 -9
- package/dist/lib/accounts/migrate.js +3 -42
- package/dist/lib/accounts/slots.d.ts +0 -25
- package/dist/lib/accounts/slots.js +1 -49
- package/dist/lib/acp/client.d.ts +0 -16
- package/dist/lib/acp/client.js +0 -29
- package/dist/lib/acp/harnesses.d.ts +0 -15
- package/dist/lib/acp/harnesses.js +0 -16
- package/dist/lib/acp/run.d.ts +0 -8
- package/dist/lib/acp/run.js +0 -8
- package/dist/lib/actor.d.ts +1 -71
- package/dist/lib/actor.js +1 -99
- package/dist/lib/add-dir.d.ts +0 -46
- package/dist/lib/add-dir.js +1 -70
- package/dist/lib/address.d.ts +0 -17
- package/dist/lib/address.js +0 -15
- package/dist/lib/agent-cli-commands.d.ts +0 -10
- package/dist/lib/agent-cli-commands.js +0 -10
- package/dist/lib/agent-modes.d.ts +0 -29
- package/dist/lib/agent-modes.js +0 -31
- package/dist/lib/agent-spec/agents.d.ts +0 -426
- package/dist/lib/agent-spec/agents.js +37 -924
- package/dist/lib/agent-spec/index.d.ts +0 -5
- package/dist/lib/agent-spec/index.js +0 -14
- package/dist/lib/agent-spec/materialize.d.ts +0 -10
- package/dist/lib/agent-spec/materialize.js +2 -139
- package/dist/lib/agent-spec/package-resolve.d.ts +0 -8
- package/dist/lib/agent-spec/package-resolve.js +1 -44
- package/dist/lib/agent-spec/package-schema.d.ts +0 -2
- package/dist/lib/agent-spec/package-schema.js +0 -11
- package/dist/lib/agent-spec/package-types.d.ts +0 -27
- package/dist/lib/agent-spec/package-types.js +0 -1
- package/dist/lib/agent-spec/primitives.d.ts +0 -18
- package/dist/lib/agent-spec/primitives.js +0 -27
- package/dist/lib/agent-spec/provider.js +0 -2
- package/dist/lib/agent-spec/resolve.d.ts +0 -23
- package/dist/lib/agent-spec/resolve.js +0 -41
- package/dist/lib/agent-spec/types.d.ts +0 -34
- package/dist/lib/agent-spec/types.js +0 -6
- package/dist/lib/agents.d.ts +0 -1
- package/dist/lib/agents.js +0 -1
- package/dist/lib/analytics/mix-commands.d.ts +0 -23
- package/dist/lib/analytics/mix-commands.js +0 -26
- package/dist/lib/analytics/recipes.d.ts +0 -1
- package/dist/lib/analytics/recipes.js +5 -10
- package/dist/lib/analytics/usage-db.js +4 -6
- package/dist/lib/answer-router.d.ts +0 -61
- package/dist/lib/answer-router.js +0 -57
- package/dist/lib/app-bundle-install.d.ts +0 -13
- package/dist/lib/app-bundle-install.js +0 -50
- package/dist/lib/artifact-actions.d.ts +0 -15
- package/dist/lib/artifact-actions.js +0 -18
- package/dist/lib/artifacts-client.d.ts +0 -10
- package/dist/lib/artifacts-client.js +0 -17
- package/dist/lib/ask-classifier.d.ts +0 -38
- package/dist/lib/ask-classifier.js +0 -27
- package/dist/lib/audit/log.d.ts +0 -47
- package/dist/lib/audit/log.js +1 -59
- package/dist/lib/auth-health.d.ts +0 -213
- package/dist/lib/auth-health.js +16 -266
- package/dist/lib/auth-mint.d.ts +0 -83
- package/dist/lib/auth-mint.js +8 -85
- package/dist/lib/auto-pull-worker.d.ts +0 -10
- package/dist/lib/auto-pull-worker.js +3 -48
- package/dist/lib/auto-pull.d.ts +0 -64
- package/dist/lib/auto-pull.js +0 -79
- package/dist/lib/beta.d.ts +0 -9
- package/dist/lib/beta.js +0 -9
- package/dist/lib/binary-shadow.d.ts +0 -22
- package/dist/lib/binary-shadow.js +4 -34
- package/dist/lib/boot-profile.d.ts +0 -10
- package/dist/lib/boot-profile.js +1 -31
- package/dist/lib/brand.d.ts +0 -20
- package/dist/lib/brand.js +0 -50
- package/dist/lib/browser/context.d.ts +0 -54
- package/dist/lib/browser/context.js +0 -49
- package/dist/lib/browser/paths.d.ts +0 -21
- package/dist/lib/browser/paths.js +0 -26
- package/dist/lib/browser/record.d.ts +0 -34
- package/dist/lib/browser/record.js +0 -38
- package/dist/lib/browser/sessions-list.d.ts +1 -79
- package/dist/lib/browser/sessions-list.js +2 -98
- package/dist/lib/browser-client.d.ts +0 -112
- package/dist/lib/browser-client.js +1 -90
- package/dist/lib/budget/config.d.ts +0 -6
- package/dist/lib/budget/config.js +0 -29
- package/dist/lib/budget/enforce.d.ts +0 -50
- package/dist/lib/budget/enforce.js +0 -27
- package/dist/lib/budget/ledger.d.ts +0 -23
- package/dist/lib/budget/ledger.js +0 -28
- package/dist/lib/budget/live-cloud.d.ts +0 -26
- package/dist/lib/budget/live-cloud.js +0 -12
- package/dist/lib/budget/live-team.d.ts +0 -17
- package/dist/lib/budget/live-team.js +1 -35
- package/dist/lib/budget/preflight.d.ts +0 -51
- package/dist/lib/budget/preflight.js +0 -36
- package/dist/lib/byok-usage.d.ts +0 -20
- package/dist/lib/byok-usage.js +1 -24
- package/dist/lib/capabilities.d.ts +0 -24
- package/dist/lib/capabilities.js +0 -29
- package/dist/lib/catchup.d.ts +0 -87
- package/dist/lib/catchup.js +1 -81
- package/dist/lib/channels/owner-forward.d.ts +0 -70
- package/dist/lib/channels/owner-forward.js +1 -43
- package/dist/lib/channels/owner-sink.js +0 -21
- package/dist/lib/channels/providers/desktop.d.ts +0 -37
- package/dist/lib/channels/providers/desktop.js +0 -72
- package/dist/lib/channels/providers/index.d.ts +0 -1
- package/dist/lib/channels/providers/index.js +2 -6
- package/dist/lib/channels/providers/mailbox.js +0 -7
- package/dist/lib/channels/providers/openclaw-telegram.js +0 -8
- package/dist/lib/channels/providers/rush.d.ts +0 -2
- package/dist/lib/channels/providers/rush.js +0 -26
- package/dist/lib/channels/providers/session.d.ts +2 -0
- package/dist/lib/channels/providers/session.js +26 -0
- package/dist/lib/channels/registry.d.ts +0 -27
- package/dist/lib/channels/registry.js +0 -10
- package/dist/lib/channels/resolve.d.ts +0 -19
- package/dist/lib/channels/resolve.js +0 -2
- package/dist/lib/channels/send.d.ts +0 -50
- package/dist/lib/channels/send.js +0 -25
- package/dist/lib/checkpoint.d.ts +0 -36
- package/dist/lib/checkpoint.js +0 -28
- package/dist/lib/claude-account-token.d.ts +0 -98
- package/dist/lib/claude-account-token.js +7 -169
- package/dist/lib/claude-statusline.d.ts +0 -41
- package/dist/lib/claude-statusline.js +0 -68
- package/dist/lib/cli-entry.d.ts +0 -26
- package/dist/lib/cli-entry.js +1 -61
- package/dist/lib/cli-resources.d.ts +31 -89
- package/dist/lib/cli-resources.js +116 -152
- package/dist/lib/cloud/antigravity.d.ts +0 -29
- package/dist/lib/cloud/antigravity.js +0 -36
- package/dist/lib/cloud/codex.d.ts +0 -8
- package/dist/lib/cloud/codex.js +0 -41
- package/dist/lib/cloud/cursor.d.ts +0 -5
- package/dist/lib/cloud/cursor.js +2 -7
- package/dist/lib/cloud/dispatch.d.ts +0 -13
- package/dist/lib/cloud/dispatch.js +1 -48
- package/dist/lib/cloud/factory.d.ts +0 -52
- package/dist/lib/cloud/factory.js +3 -67
- package/dist/lib/cloud/host.d.ts +0 -39
- package/dist/lib/cloud/host.js +5 -48
- package/dist/lib/cloud/registry.d.ts +0 -25
- package/dist/lib/cloud/registry.js +0 -29
- package/dist/lib/cloud/rush.d.ts +0 -47
- package/dist/lib/cloud/rush.js +1 -82
- package/dist/lib/cloud/session-index.d.ts +0 -27
- package/dist/lib/cloud/session-index.js +1 -32
- package/dist/lib/cloud/store.d.ts +0 -18
- package/dist/lib/cloud/store.js +0 -28
- package/dist/lib/cloud/stream.d.ts +0 -14
- package/dist/lib/cloud/stream.js +0 -25
- package/dist/lib/cloud/types.d.ts +0 -168
- package/dist/lib/cloud/types.js +0 -46
- package/dist/lib/cloudflare/creds.d.ts +0 -2
- package/dist/lib/cloudflare/creds.js +0 -14
- package/dist/lib/cloudflare/provision.d.ts +0 -8
- package/dist/lib/cloudflare/provision.js +1 -19
- package/dist/lib/codex-home.d.ts +0 -60
- package/dist/lib/codex-home.js +2 -72
- package/dist/lib/codex-policy.d.ts +0 -10
- package/dist/lib/codex-policy.js +0 -13
- package/dist/lib/command-skills.d.ts +0 -10
- package/dist/lib/command-skills.js +0 -10
- package/dist/lib/commands.d.ts +0 -74
- package/dist/lib/commands.js +0 -112
- package/dist/lib/comms-render.d.ts +0 -5
- package/dist/lib/comms-render.js +0 -5
- package/dist/lib/computer/context.d.ts +0 -23
- package/dist/lib/computer/context.js +0 -14
- package/dist/lib/computer/policy.d.ts +0 -20
- package/dist/lib/computer/policy.js +0 -53
- package/dist/lib/computer/record.d.ts +0 -33
- package/dist/lib/computer/record.js +1 -48
- package/dist/lib/computer/sessions-list.d.ts +1 -128
- package/dist/lib/computer/sessions-list.js +6 -165
- package/dist/lib/computer-client.d.ts +0 -106
- package/dist/lib/computer-client.js +5 -86
- package/dist/lib/concurrency.d.ts +0 -14
- package/dist/lib/concurrency.js +0 -3
- package/dist/lib/config-drift.d.ts +0 -31
- package/dist/lib/config-drift.js +0 -32
- package/dist/lib/config-keys.d.ts +1 -65
- package/dist/lib/config-keys.js +6 -52
- package/dist/lib/config-transfer.d.ts +0 -14
- package/dist/lib/config-transfer.js +0 -26
- package/dist/lib/convert.d.ts +0 -17
- package/dist/lib/convert.js +0 -18
- package/dist/lib/crabbox/cli.d.ts +0 -156
- package/dist/lib/crabbox/cli.js +1 -188
- package/dist/lib/crabbox/config.d.ts +0 -18
- package/dist/lib/crabbox/config.js +1 -19
- package/dist/lib/crabbox/lease.d.ts +0 -93
- package/dist/lib/crabbox/lease.js +4 -148
- package/dist/lib/crabbox/progress.d.ts +0 -56
- package/dist/lib/crabbox/progress.js +2 -49
- package/dist/lib/crabbox/runtimes.d.ts +0 -94
- package/dist/lib/crabbox/runtimes.js +1 -111
- package/dist/lib/crabbox/setup-copy.d.ts +0 -64
- package/dist/lib/crabbox/setup-copy.js +1 -53
- package/dist/lib/daemon/account-state-daemon-service.d.ts +0 -48
- package/dist/lib/daemon/account-state-daemon-service.js +2 -63
- package/dist/lib/daemon/attention-notify-service.d.ts +0 -12
- package/dist/lib/daemon/attention-notify-service.js +1 -24
- package/dist/lib/daemon/auth-sync-service.d.ts +0 -28
- package/dist/lib/daemon/auth-sync-service.js +0 -56
- package/dist/lib/daemon/catchup-service.d.ts +0 -34
- package/dist/lib/daemon/catchup-service.js +0 -30
- package/dist/lib/daemon/daemon.d.ts +0 -374
- package/dist/lib/daemon/daemon.js +44 -1049
- package/dist/lib/daemon/daemon.test-fixture.d.ts +0 -19
- package/dist/lib/daemon/daemon.test-fixture.js +1 -24
- package/dist/lib/daemon/device-probe-service.d.ts +0 -16
- package/dist/lib/daemon/device-probe-service.js +0 -20
- package/dist/lib/daemon/feed-stream-service.d.ts +0 -15
- package/dist/lib/daemon/feed-stream-service.js +0 -20
- package/dist/lib/daemon/harness-update-service.d.ts +2 -61
- package/dist/lib/daemon/harness-update-service.js +6 -86
- package/dist/lib/daemon/heartbeat-service.d.ts +0 -1
- package/dist/lib/daemon/heartbeat-service.js +0 -1
- package/dist/lib/daemon/leaked-daemons.d.ts +0 -46
- package/dist/lib/daemon/leaked-daemons.js +2 -78
- package/dist/lib/daemon/monitor-engine-service.d.ts +0 -13
- package/dist/lib/daemon/monitor-engine-service.js +3 -15
- package/dist/lib/daemon/runner.d.ts +0 -194
- package/dist/lib/daemon/runner.js +39 -760
- package/dist/lib/daemon/self-heal-service.d.ts +18 -17
- package/dist/lib/daemon/self-heal-service.js +83 -37
- package/dist/lib/daemon/self-update-service.d.ts +1 -131
- package/dist/lib/daemon/self-update-service.js +26 -189
- package/dist/lib/daemon/service.d.ts +0 -73
- package/dist/lib/daemon/service.js +0 -34
- package/dist/lib/daemon/session-index-service.d.ts +0 -12
- package/dist/lib/daemon/session-index-service.js +0 -23
- package/dist/lib/daemon/session-state-service.d.ts +0 -8
- package/dist/lib/daemon/session-state-service.js +0 -8
- package/dist/lib/daemon/session-summarizer-service.d.ts +0 -14
- package/dist/lib/daemon/session-summarizer-service.js +1 -19
- package/dist/lib/daemon/session-title-service.d.ts +0 -25
- package/dist/lib/daemon/session-title-service.js +0 -32
- package/dist/lib/daemon/state-dir-check-service.d.ts +0 -24
- package/dist/lib/daemon/state-dir-check-service.js +0 -29
- package/dist/lib/daemon/supervisor.d.ts +0 -112
- package/dist/lib/daemon/supervisor.js +4 -147
- package/dist/lib/daemon/testdata/process-view-daemon.js +0 -2
- package/dist/lib/daemon/testdata/process-view-start.js +0 -5
- package/dist/lib/daemon/tmux-reap-service.d.ts +0 -1
- package/dist/lib/daemon/tmux-reap-service.js +0 -1
- package/dist/lib/daemon/usage-sync-service.d.ts +0 -23
- package/dist/lib/daemon/usage-sync-service.js +0 -26
- package/dist/lib/daemon/watchdog-service.d.ts +0 -9
- package/dist/lib/daemon/watchdog-service.js +0 -13
- package/dist/lib/daemon/webhook-receiver-service.d.ts +0 -1
- package/dist/lib/daemon/webhook-receiver-service.js +0 -1
- package/dist/lib/daemon-health.d.ts +0 -55
- package/dist/lib/daemon-health.js +4 -77
- package/dist/lib/daemon-services.d.ts +0 -36
- package/dist/lib/daemon-services.js +0 -45
- package/dist/lib/daemon-ticks.d.ts +0 -126
- package/dist/lib/daemon-ticks.js +1 -156
- package/dist/lib/daemon-webhooks.d.ts +0 -57
- package/dist/lib/daemon-webhooks.js +2 -54
- package/dist/lib/deeplink/register.d.ts +0 -15
- package/dist/lib/deeplink/register.js +0 -60
- package/dist/lib/deeplink/url.d.ts +0 -24
- package/dist/lib/deeplink/url.js +1 -33
- package/dist/lib/device-config.d.ts +1 -192
- package/dist/lib/device-config.js +86 -240
- package/dist/lib/devices/config-migration.d.ts +0 -43
- package/dist/lib/devices/config-migration.js +7 -127
- package/dist/lib/devices/connect.d.ts +0 -168
- package/dist/lib/devices/connect.js +6 -254
- package/dist/lib/devices/device-docs.d.ts +0 -24
- package/dist/lib/devices/device-docs.js +0 -46
- package/dist/lib/devices/discovery-policy.d.ts +0 -30
- package/dist/lib/devices/discovery-policy.js +3 -34
- package/dist/lib/devices/doctor-findings.d.ts +0 -109
- package/dist/lib/devices/doctor-findings.js +30 -326
- package/dist/lib/devices/doctor-overview-cache.d.ts +0 -33
- package/dist/lib/devices/doctor-overview-cache.js +0 -81
- package/dist/lib/devices/fleet-divergence.d.ts +0 -89
- package/dist/lib/devices/fleet-divergence.js +1 -60
- package/dist/lib/devices/fleet-inventory.d.ts +0 -27
- package/dist/lib/devices/fleet-inventory.js +0 -38
- package/dist/lib/devices/fleet.d.ts +0 -95
- package/dist/lib/devices/fleet.js +0 -79
- package/dist/lib/devices/harness-inventory.d.ts +0 -75
- package/dist/lib/devices/harness-inventory.js +0 -101
- package/dist/lib/devices/health-report.d.ts +0 -37
- package/dist/lib/devices/health-report.js +0 -73
- package/dist/lib/devices/health.d.ts +0 -71
- package/dist/lib/devices/health.js +2 -82
- package/dist/lib/devices/interactive-host.d.ts +0 -10
- package/dist/lib/devices/interactive-host.js +0 -34
- package/dist/lib/devices/known-hosts.d.ts +0 -45
- package/dist/lib/devices/known-hosts.js +0 -77
- package/dist/lib/devices/pending.d.ts +0 -31
- package/dist/lib/devices/pending.js +7 -67
- package/dist/lib/devices/pool.d.ts +0 -36
- package/dist/lib/devices/pool.js +0 -30
- package/dist/lib/devices/reachability.d.ts +0 -25
- package/dist/lib/devices/reachability.js +0 -14
- package/dist/lib/devices/registry.d.ts +0 -141
- package/dist/lib/devices/registry.js +4 -151
- package/dist/lib/devices/resolve-profile.d.ts +0 -18
- package/dist/lib/devices/resolve-profile.js +0 -18
- package/dist/lib/devices/resolve-target.d.ts +0 -20
- package/dist/lib/devices/resolve-target.js +1 -51
- package/dist/lib/devices/rollout-verify.d.ts +1 -81
- package/dist/lib/devices/rollout-verify.js +0 -77
- package/dist/lib/devices/self-host.d.ts +0 -7
- package/dist/lib/devices/self-host.js +1 -29
- package/dist/lib/devices/ssh-config.d.ts +0 -18
- package/dist/lib/devices/ssh-config.js +0 -9
- package/dist/lib/devices/stats-cache.d.ts +0 -48
- package/dist/lib/devices/stats-cache.js +0 -80
- package/dist/lib/devices/sync.d.ts +0 -97
- package/dist/lib/devices/sync.js +0 -88
- package/dist/lib/devices/tailscale.d.ts +0 -18
- package/dist/lib/devices/tailscale.js +1 -38
- package/dist/lib/devices/terminfo.d.ts +0 -27
- package/dist/lib/devices/terminfo.js +2 -64
- package/dist/lib/devices/worker-pick.d.ts +0 -15
- package/dist/lib/devices/worker-pick.js +0 -48
- package/dist/lib/diff-text.d.ts +0 -18
- package/dist/lib/diff-text.js +0 -15
- package/dist/lib/doctor-diff.d.ts +0 -79
- package/dist/lib/doctor-diff.js +2 -181
- package/dist/lib/drift-sync.d.ts +0 -29
- package/dist/lib/drift-sync.js +0 -40
- package/dist/lib/drift.d.ts +0 -43
- package/dist/lib/drift.js +0 -31
- package/dist/lib/event-families.d.ts +0 -17
- package/dist/lib/event-families.js +0 -33
- package/dist/lib/event-provenance.d.ts +0 -4
- package/dist/lib/event-provenance.js +0 -5
- package/dist/lib/event-stream.d.ts +0 -29
- package/dist/lib/event-stream.js +0 -36
- package/dist/lib/events-ingest.d.ts +0 -27
- package/dist/lib/events-ingest.js +0 -54
- package/dist/lib/exec-account-home.d.ts +0 -24
- package/dist/lib/exec-account-home.js +0 -41
- package/dist/lib/exec-bounded.d.ts +1 -37
- package/dist/lib/exec-bounded.js +10 -46
- package/dist/lib/exec.d.ts +3 -583
- package/dist/lib/exec.js +18 -1025
- package/dist/lib/factory/snapshot.js +1 -15
- package/dist/lib/feed/activity-stream.d.ts +0 -27
- package/dist/lib/feed/activity-stream.js +4 -80
- package/dist/lib/feed/activity.d.ts +1 -243
- package/dist/lib/feed/activity.js +8 -273
- package/dist/lib/feed/answer.d.ts +0 -103
- package/dist/lib/feed/answer.js +0 -267
- package/dist/lib/feed/attention.d.ts +0 -56
- package/dist/lib/feed/attention.js +0 -161
- package/dist/lib/feed/envelope.d.ts +2 -17
- package/dist/lib/feed/envelope.js +0 -14
- package/dist/lib/feed/events.d.ts +0 -118
- package/dist/lib/feed/events.js +13 -213
- package/dist/lib/feed/feed.d.ts +1 -250
- package/dist/lib/feed/feed.js +24 -334
- package/dist/lib/feed/hub-server.d.ts +0 -100
- package/dist/lib/feed/hub-server.js +1 -191
- package/dist/lib/feed/hub.d.ts +0 -53
- package/dist/lib/feed/hub.js +0 -89
- package/dist/lib/feed/pr-status.d.ts +1 -19
- package/dist/lib/feed/pr-status.js +0 -18
- package/dist/lib/feed/tool-activity.d.ts +0 -59
- package/dist/lib/feed/tool-activity.js +1 -119
- package/dist/lib/feed/tools.d.ts +0 -100
- package/dist/lib/feed/tools.js +0 -89
- package/dist/lib/feed/watch.d.ts +0 -33
- package/dist/lib/feed/watch.js +2 -94
- package/dist/lib/feed-broadcast.d.ts +0 -148
- package/dist/lib/feed-broadcast.js +1 -283
- package/dist/lib/feed-outcome.d.ts +0 -50
- package/dist/lib/feed-outcome.js +1 -67
- package/dist/lib/feed-policy.d.ts +0 -6
- package/dist/lib/feed-policy.js +1 -27
- package/dist/lib/feed-post.d.ts +0 -61
- package/dist/lib/feed-post.js +4 -61
- package/dist/lib/feed-ranking.d.ts +1 -1
- package/dist/lib/fleet/apply.d.ts +0 -64
- package/dist/lib/fleet/apply.js +0 -125
- package/dist/lib/fleet/auth-sync.d.ts +0 -48
- package/dist/lib/fleet/auth-sync.js +4 -49
- package/dist/lib/fleet/capture.d.ts +0 -26
- package/dist/lib/fleet/capture.js +1 -36
- package/dist/lib/fleet/manifest.d.ts +0 -38
- package/dist/lib/fleet/manifest.js +0 -40
- package/dist/lib/fleet/types.d.ts +1 -138
- package/dist/lib/fleet/types.js +0 -12
- package/dist/lib/fleet-cache.d.ts +0 -12
- package/dist/lib/fleet-cache.js +0 -24
- package/dist/lib/fleet-shared-state.d.ts +6 -59
- package/dist/lib/fleet-shared-state.js +5 -51
- package/dist/lib/fleet-status.d.ts +0 -27
- package/dist/lib/fleet-status.js +0 -48
- package/dist/lib/format.d.ts +0 -74
- package/dist/lib/format.js +3 -77
- package/dist/lib/friction-heuristics.d.ts +0 -20
- package/dist/lib/friction-heuristics.js +0 -8
- package/dist/lib/fs-atomic.d.ts +0 -51
- package/dist/lib/fs-atomic.js +8 -66
- package/dist/lib/fs-walk.d.ts +0 -13
- package/dist/lib/fs-walk.js +0 -22
- package/dist/lib/fuzzy.d.ts +0 -29
- package/dist/lib/fuzzy.js +0 -31
- package/dist/lib/gemini-settings.js +0 -12
- package/dist/lib/git.d.ts +0 -366
- package/dist/lib/git.js +7 -574
- package/dist/lib/github/ci-failure.d.ts +30 -0
- package/dist/lib/github/ci-failure.js +95 -0
- package/dist/lib/github/gh-overload.d.ts +0 -38
- package/dist/lib/github/gh-overload.js +3 -55
- package/dist/lib/github/pr-mergeable.d.ts +3 -34
- package/dist/lib/github/pr-mergeable.js +2 -42
- package/dist/lib/github/pr-verdict.d.ts +0 -44
- package/dist/lib/github/pr-verdict.js +0 -36
- package/dist/lib/github/project-prs.d.ts +135 -105
- package/dist/lib/github/project-prs.js +530 -170
- package/dist/lib/github/release-drift.d.ts +45 -0
- package/dist/lib/github/release-drift.js +91 -0
- package/dist/lib/github/rest.d.ts +0 -50
- package/dist/lib/github/rest.js +0 -49
- package/dist/lib/github/viewer.d.ts +27 -0
- package/dist/lib/github/viewer.js +101 -0
- package/dist/lib/goose-commands.d.ts +0 -29
- package/dist/lib/goose-commands.js +3 -48
- package/dist/lib/harness/adapter.d.ts +0 -151
- package/dist/lib/harness/adapter.js +0 -41
- package/dist/lib/harness/adapters/claude.d.ts +0 -8
- package/dist/lib/harness/adapters/claude.js +0 -89
- package/dist/lib/harness/adapters/codex.js +0 -18
- package/dist/lib/harness/adapters/copilot.js +0 -3
- package/dist/lib/harness/adapters/cursor.js +0 -16
- package/dist/lib/harness/adapters/droid.js +0 -3
- package/dist/lib/harness/adapters/kimi.js +0 -19
- package/dist/lib/harness/adapters/muse.js +0 -9
- package/dist/lib/harness/adapters/opencode.js +0 -2
- package/dist/lib/harness/exec-config-version.d.ts +0 -2
- package/dist/lib/harness/exec-config-version.js +0 -13
- package/dist/lib/harness/index.js +0 -10
- package/dist/lib/harness-auth-capabilities.d.ts +0 -26
- package/dist/lib/harness-auth-capabilities.js +0 -18
- package/dist/lib/harness-connection-test.d.ts +0 -27
- package/dist/lib/harness-connection-test.js +2 -20
- package/dist/lib/heal.d.ts +0 -45
- package/dist/lib/heal.js +2 -82
- package/dist/lib/help.d.ts +0 -32
- package/dist/lib/help.js +0 -41
- package/dist/lib/helper-download.d.ts +0 -85
- package/dist/lib/helper-download.js +0 -95
- package/dist/lib/helper-versions.d.ts +0 -51
- package/dist/lib/helper-versions.js +1 -45
- package/dist/lib/hooks/cache.d.ts +0 -40
- package/dist/lib/hooks/cache.js +8 -122
- package/dist/lib/hooks/install.d.ts +0 -253
- package/dist/lib/hooks/install.js +49 -822
- package/dist/lib/hooks/match.d.ts +0 -24
- package/dist/lib/hooks/match.js +0 -31
- package/dist/lib/hooks/profile.d.ts +0 -21
- package/dist/lib/hooks/profile.js +0 -28
- package/dist/lib/hosts/credential-transport.d.ts +0 -6
- package/dist/lib/hosts/credential-transport.js +0 -17
- package/dist/lib/hosts/credentials.d.ts +0 -35
- package/dist/lib/hosts/credentials.js +0 -38
- package/dist/lib/hosts/dispatch.d.ts +0 -140
- package/dist/lib/hosts/dispatch.js +0 -176
- package/dist/lib/hosts/logs.d.ts +0 -25
- package/dist/lib/hosts/logs.js +1 -51
- package/dist/lib/hosts/option.d.ts +0 -12
- package/dist/lib/hosts/option.js +0 -12
- package/dist/lib/hosts/passthrough.d.ts +0 -129
- package/dist/lib/hosts/passthrough.js +12 -249
- package/dist/lib/hosts/progress.d.ts +0 -90
- package/dist/lib/hosts/progress.js +5 -115
- package/dist/lib/hosts/providers/devices.d.ts +0 -19
- package/dist/lib/hosts/providers/devices.js +1 -34
- package/dist/lib/hosts/providers/local.d.ts +0 -14
- package/dist/lib/hosts/providers/local.js +0 -22
- package/dist/lib/hosts/ready.d.ts +0 -99
- package/dist/lib/hosts/ready.js +0 -101
- package/dist/lib/hosts/reconcile.d.ts +0 -38
- package/dist/lib/hosts/reconcile.js +1 -50
- package/dist/lib/hosts/reconnect.d.ts +0 -75
- package/dist/lib/hosts/reconnect.js +0 -98
- package/dist/lib/hosts/registry.d.ts +0 -74
- package/dist/lib/hosts/registry.js +0 -110
- package/dist/lib/hosts/remote-cmd.d.ts +1 -228
- package/dist/lib/hosts/remote-cmd.js +19 -294
- package/dist/lib/hosts/remote-cmd.test-fixture.d.ts +0 -1
- package/dist/lib/hosts/remote-cmd.test-fixture.js +0 -12
- package/dist/lib/hosts/remote-os.d.ts +0 -19
- package/dist/lib/hosts/remote-os.js +0 -22
- package/dist/lib/hosts/remote-session-id.d.ts +0 -22
- package/dist/lib/hosts/remote-session-id.js +0 -24
- package/dist/lib/hosts/routing-flag.d.ts +0 -21
- package/dist/lib/hosts/routing-flag.js +0 -21
- package/dist/lib/hosts/run-target.d.ts +0 -53
- package/dist/lib/hosts/run-target.js +0 -56
- package/dist/lib/hosts/session-index.d.ts +1 -53
- package/dist/lib/hosts/session-index.js +2 -59
- package/dist/lib/hosts/session-marker.d.ts +0 -31
- package/dist/lib/hosts/session-marker.js +0 -32
- package/dist/lib/hosts/ssh-config.d.ts +0 -25
- package/dist/lib/hosts/ssh-config.js +1 -32
- package/dist/lib/hosts/tasks.d.ts +0 -54
- package/dist/lib/hosts/tasks.js +0 -35
- package/dist/lib/hosts/types.d.ts +0 -39
- package/dist/lib/hosts/types.js +0 -22
- package/dist/lib/humans.d.ts +0 -21
- package/dist/lib/humans.js +0 -30
- package/dist/lib/identity/client.d.ts +1 -35
- package/dist/lib/identity/client.js +3 -29
- package/dist/lib/identity/index.d.ts +3 -27
- package/dist/lib/identity/index.js +8 -24
- package/dist/lib/import.d.ts +0 -104
- package/dist/lib/import.js +1 -137
- package/dist/lib/installations/active-check.d.ts +0 -53
- package/dist/lib/installations/active-check.js +0 -49
- package/dist/lib/installations/index.d.ts +0 -9
- package/dist/lib/installations/index.js +0 -9
- package/dist/lib/installations/installation-lock.js +0 -8
- package/dist/lib/installations/launch-gate.d.ts +0 -56
- package/dist/lib/installations/launch-gate.js +0 -83
- package/dist/lib/installations/migrate.d.ts +0 -100
- package/dist/lib/installations/migrate.js +105 -572
- package/dist/lib/installations/native-command.d.ts +0 -1
- package/dist/lib/installations/native-command.js +0 -6
- package/dist/lib/installations/resolve.d.ts +0 -24
- package/dist/lib/installations/resolve.js +0 -24
- package/dist/lib/installations/shims.d.ts +0 -395
- package/dist/lib/installations/shims.js +30 -957
- package/dist/lib/installations/store.d.ts +0 -199
- package/dist/lib/installations/store.js +1 -297
- package/dist/lib/installations/strategies.d.ts +0 -44
- package/dist/lib/installations/strategies.js +0 -87
- package/dist/lib/installations/types.d.ts +1 -67
- package/dist/lib/installations/types.js +0 -6
- package/dist/lib/installations/update-cancellation.d.ts +0 -74
- package/dist/lib/installations/update-cancellation.js +0 -74
- package/dist/lib/installations/update-policy.d.ts +0 -57
- package/dist/lib/installations/update-policy.js +0 -62
- package/dist/lib/installations/update-runtime.d.ts +0 -88
- package/dist/lib/installations/update-runtime.js +1 -127
- package/dist/lib/installations/update.d.ts +0 -53
- package/dist/lib/installations/update.js +0 -95
- package/dist/lib/installations/versions.d.ts +0 -310
- package/dist/lib/installations/versions.js +14 -837
- package/dist/lib/isolation-boundary-report.d.ts +0 -7
- package/dist/lib/isolation-boundary-report.js +0 -7
- package/dist/lib/launch-identity.d.ts +0 -8
- package/dist/lib/launch-identity.js +0 -8
- package/dist/lib/linear-autoclose.d.ts +0 -25
- package/dist/lib/linear-autoclose.js +0 -19
- package/dist/lib/linear-cache.d.ts +0 -57
- package/dist/lib/linear-cache.js +1 -81
- package/dist/lib/linear-project-counts.d.ts +0 -83
- package/dist/lib/linear-project-counts.js +2 -64
- package/dist/lib/linear-projects.d.ts +0 -62
- package/dist/lib/linear-projects.js +0 -85
- package/dist/lib/linear-rate-limit.d.ts +0 -21
- package/dist/lib/linear-rate-limit.js +1 -93
- package/dist/lib/linux-userns.d.ts +1 -42
- package/dist/lib/linux-userns.js +0 -47
- package/dist/lib/lock-compromise.d.ts +0 -7
- package/dist/lib/lock-compromise.js +0 -7
- package/dist/lib/log-follow.d.ts +0 -2
- package/dist/lib/log-follow.js +5 -15
- package/dist/lib/loop.d.ts +0 -106
- package/dist/lib/loop.js +0 -135
- package/dist/lib/machine-id.d.ts +0 -19
- package/dist/lib/machine-id.js +0 -19
- package/dist/lib/mailbox-gc.d.ts +0 -7
- package/dist/lib/mailbox-gc.js +0 -25
- package/dist/lib/mailbox-target.d.ts +0 -31
- package/dist/lib/mailbox-target.js +0 -27
- package/dist/lib/mailbox.d.ts +0 -77
- package/dist/lib/mailbox.js +5 -105
- package/dist/lib/manifest.d.ts +0 -4
- package/dist/lib/manifest.js +0 -36
- package/dist/lib/markdown.d.ts +0 -3
- package/dist/lib/markdown.js +0 -9
- package/dist/lib/mcp-registry.d.ts +1 -50
- package/dist/lib/mcp-registry.js +0 -64
- package/dist/lib/mcp.d.ts +0 -115
- package/dist/lib/mcp.js +3 -199
- package/dist/lib/memory-cache.d.ts +0 -11
- package/dist/lib/memory-cache.js +0 -9
- package/dist/lib/memory.d.ts +0 -52
- package/dist/lib/memory.js +12 -74
- package/dist/lib/menubar/download-menubar.d.ts +0 -35
- package/dist/lib/menubar/download-menubar.js +0 -38
- package/dist/lib/menubar/install-menubar.d.ts +0 -405
- package/dist/lib/menubar/install-menubar.js +25 -667
- package/dist/lib/menubar/migrate-prefs.d.ts +0 -47
- package/dist/lib/menubar/migrate-prefs.js +1 -70
- package/dist/lib/menubar/notify-desktop.d.ts +0 -82
- package/dist/lib/menubar/notify-desktop.js +0 -68
- package/dist/lib/menubar/resolve-version.d.ts +0 -41
- package/dist/lib/menubar/resolve-version.js +2 -44
- package/dist/lib/menubar/snapshot.d.ts +13 -66
- package/dist/lib/menubar/snapshot.js +45 -39
- package/dist/lib/merged-resources.d.ts +0 -10
- package/dist/lib/merged-resources.js +0 -10
- package/dist/lib/migrate-fold.d.ts +0 -31
- package/dist/lib/migrate-fold.js +6 -38
- package/dist/lib/model-tier-overrides.d.ts +0 -30
- package/dist/lib/model-tier-overrides.js +0 -14
- package/dist/lib/model-tiers.d.ts +0 -43
- package/dist/lib/model-tiers.js +5 -78
- package/dist/lib/models.d.ts +0 -145
- package/dist/lib/models.js +3 -333
- package/dist/lib/monitors/config.d.ts +0 -187
- package/dist/lib/monitors/config.js +4 -101
- package/dist/lib/monitors/dispatch.d.ts +0 -22
- package/dist/lib/monitors/dispatch.js +0 -35
- package/dist/lib/monitors/engine.d.ts +1 -53
- package/dist/lib/monitors/engine.js +17 -106
- package/dist/lib/monitors/fingerprint.d.ts +0 -43
- package/dist/lib/monitors/fingerprint.js +0 -57
- package/dist/lib/monitors/pid-watch.d.ts +0 -31
- package/dist/lib/monitors/pid-watch.js +0 -31
- package/dist/lib/monitors/remote.d.ts +0 -52
- package/dist/lib/monitors/remote.js +0 -42
- package/dist/lib/monitors/sources/command.d.ts +2 -9
- package/dist/lib/monitors/sources/command.js +13 -34
- package/dist/lib/monitors/sources/device.d.ts +0 -10
- package/dist/lib/monitors/sources/device.js +0 -14
- package/dist/lib/monitors/sources/failure.d.ts +0 -27
- package/dist/lib/monitors/sources/failure.js +0 -27
- package/dist/lib/monitors/sources/file.d.ts +0 -10
- package/dist/lib/monitors/sources/file.js +0 -11
- package/dist/lib/monitors/sources/http.d.ts +0 -7
- package/dist/lib/monitors/sources/http.js +0 -9
- package/dist/lib/monitors/sources/index.d.ts +0 -9
- package/dist/lib/monitors/sources/index.js +0 -9
- package/dist/lib/monitors/sources/poll.d.ts +0 -8
- package/dist/lib/monitors/sources/poll.js +0 -8
- package/dist/lib/monitors/sources/types.d.ts +0 -18
- package/dist/lib/monitors/sources/types.js +0 -8
- package/dist/lib/monitors/sources/webhook.d.ts +0 -7
- package/dist/lib/monitors/sources/webhook.js +0 -7
- package/dist/lib/monitors/sources/ws.d.ts +0 -10
- package/dist/lib/monitors/sources/ws.js +3 -13
- package/dist/lib/monitors/state.d.ts +0 -132
- package/dist/lib/monitors/state.js +2 -86
- package/dist/lib/native-accounts.d.ts +0 -32
- package/dist/lib/native-accounts.js +0 -17
- package/dist/lib/net-close.d.ts +0 -9
- package/dist/lib/net-close.js +0 -5
- package/dist/lib/notify.d.ts +0 -47
- package/dist/lib/notify.js +0 -30
- package/dist/lib/onepassword.d.ts +0 -14
- package/dist/lib/onepassword.js +0 -12
- package/dist/lib/open-url.d.ts +0 -38
- package/dist/lib/open-url.js +1 -69
- package/dist/lib/openclaw-keychain.js +2 -7
- package/dist/lib/operator.d.ts +0 -9
- package/dist/lib/operator.js +0 -34
- package/dist/lib/origin-machine.d.ts +0 -16
- package/dist/lib/origin-machine.js +0 -16
- package/dist/lib/output/git-output.d.ts +0 -31
- package/dist/lib/output/git-output.js +4 -43
- package/dist/lib/overdue.d.ts +0 -35
- package/dist/lib/overdue.js +0 -60
- package/dist/lib/owner-message.d.ts +0 -20
- package/dist/lib/owner-message.js +1 -40
- package/dist/lib/packages/output-home.d.ts +0 -28
- package/dist/lib/packages/output-home.js +0 -114
- package/dist/lib/paths.d.ts +0 -26
- package/dist/lib/paths.js +1 -27
- package/dist/lib/percentile.d.ts +0 -11
- package/dist/lib/percentile.js +0 -11
- package/dist/lib/perf/db.d.ts +0 -16
- package/dist/lib/perf/db.js +3 -32
- package/dist/lib/perf/spool.d.ts +0 -12
- package/dist/lib/perf/spool.js +0 -13
- package/dist/lib/perf/types.d.ts +0 -26
- package/dist/lib/perf/types.js +0 -1
- package/dist/lib/permissions-registry.d.ts +0 -48
- package/dist/lib/permissions-registry.js +0 -108
- package/dist/lib/permissions.d.ts +0 -215
- package/dist/lib/permissions.js +4 -407
- package/dist/lib/picker.d.ts +0 -124
- package/dist/lib/picker.js +0 -140
- package/dist/lib/placement.d.ts +0 -57
- package/dist/lib/placement.js +0 -47
- package/dist/lib/platform/exec.d.ts +0 -73
- package/dist/lib/platform/exec.js +0 -80
- package/dist/lib/platform/index.d.ts +0 -14
- package/dist/lib/platform/index.js +0 -14
- package/dist/lib/platform/ipc.d.ts +0 -10
- package/dist/lib/platform/ipc.js +0 -13
- package/dist/lib/platform/links.d.ts +0 -14
- package/dist/lib/platform/links.js +0 -25
- package/dist/lib/platform/paths.d.ts +0 -48
- package/dist/lib/platform/paths.js +0 -52
- package/dist/lib/platform/posixpath.d.ts +0 -18
- package/dist/lib/platform/posixpath.js +0 -62
- package/dist/lib/platform/process.d.ts +0 -67
- package/dist/lib/platform/process.js +5 -99
- package/dist/lib/platform/winpath.d.ts +0 -50
- package/dist/lib/platform/winpath.js +0 -81
- package/dist/lib/plugins/plugin-marketplace.d.ts +0 -165
- package/dist/lib/plugins/plugin-marketplace.js +10 -238
- package/dist/lib/plugins/plugins.d.ts +0 -238
- package/dist/lib/plugins/plugins.js +20 -454
- package/dist/lib/plugins/skills.d.ts +0 -86
- package/dist/lib/plugins/skills.js +1 -139
- package/dist/lib/pr-land-detach.d.ts +0 -17
- package/dist/lib/pr-land-detach.js +0 -30
- package/dist/lib/pricing/cost.d.ts +0 -29
- package/dist/lib/pricing/cost.js +0 -38
- package/dist/lib/pricing/index.d.ts +0 -6
- package/dist/lib/pricing/index.js +0 -6
- package/dist/lib/pricing/table.d.ts +0 -8
- package/dist/lib/pricing/table.js +3 -56
- package/dist/lib/probe.d.ts +0 -5
- package/dist/lib/probe.js +0 -40
- package/dist/lib/profiles-presets.d.ts +0 -20
- package/dist/lib/profiles-presets.js +1 -36
- package/dist/lib/profiles.d.ts +0 -185
- package/dist/lib/profiles.js +1 -158
- package/dist/lib/project-doctor.d.ts +0 -29
- package/dist/lib/project-doctor.js +0 -26
- package/dist/lib/project-focus.d.ts +0 -41
- package/dist/lib/project-focus.js +0 -49
- package/dist/lib/project-import.d.ts +0 -41
- package/dist/lib/project-import.js +0 -36
- package/dist/lib/project-key.d.ts +0 -65
- package/dist/lib/project-key.js +0 -70
- package/dist/lib/project-launch.d.ts +0 -49
- package/dist/lib/project-launch.js +2 -91
- package/dist/lib/project-probe.d.ts +0 -86
- package/dist/lib/project-probe.js +1 -88
- package/dist/lib/project-pull.d.ts +0 -96
- package/dist/lib/project-pull.js +0 -122
- package/dist/lib/project-resources.d.ts +0 -44
- package/dist/lib/project-resources.js +7 -171
- package/dist/lib/project-root.d.ts +0 -95
- package/dist/lib/project-root.js +0 -101
- package/dist/lib/project-schedule.d.ts +0 -43
- package/dist/lib/project-schedule.js +0 -52
- package/dist/lib/project-status.d.ts +0 -108
- package/dist/lib/project-status.js +0 -117
- package/dist/lib/projects.d.ts +0 -197
- package/dist/lib/projects.js +1 -213
- package/dist/lib/pwsh.d.ts +0 -41
- package/dist/lib/pwsh.js +0 -51
- package/dist/lib/quick-todo.d.ts +84 -0
- package/dist/lib/quick-todo.js +243 -0
- package/dist/lib/reconcile-and-repair.d.ts +0 -78
- package/dist/lib/reconcile-and-repair.js +3 -66
- package/dist/lib/redact.d.ts +0 -29
- package/dist/lib/redact.js +0 -54
- package/dist/lib/refresh-coordinator.d.ts +0 -15
- package/dist/lib/refresh-coordinator.js +0 -10
- package/dist/lib/refresh.d.ts +0 -39
- package/dist/lib/refresh.js +0 -45
- package/dist/lib/registry.d.ts +0 -65
- package/dist/lib/registry.js +0 -127
- package/dist/lib/reminders.d.ts +0 -21
- package/dist/lib/reminders.js +0 -30
- package/dist/lib/remote-agents-json.d.ts +0 -44
- package/dist/lib/remote-agents-json.js +1 -44
- package/dist/lib/reserved-stores.d.ts +0 -28
- package/dist/lib/reserved-stores.js +2 -28
- package/dist/lib/resource-aliases.d.ts +0 -12
- package/dist/lib/resource-aliases.js +0 -12
- package/dist/lib/resource-content-diff.d.ts +0 -28
- package/dist/lib/resource-content-diff.js +7 -34
- package/dist/lib/resource-inventory.d.ts +0 -51
- package/dist/lib/resource-inventory.js +0 -45
- package/dist/lib/resource-patterns.d.ts +0 -32
- package/dist/lib/resource-patterns.js +0 -34
- package/dist/lib/resource-profiles.d.ts +0 -7
- package/dist/lib/resource-profiles.js +0 -11
- package/dist/lib/resources/types.d.ts +0 -50
- package/dist/lib/resources/types.js +0 -7
- package/dist/lib/resources/workflows.d.ts +0 -7
- package/dist/lib/resources/workflows.js +0 -13
- package/dist/lib/resources.d.ts +0 -65
- package/dist/lib/resources.js +0 -78
- package/dist/lib/routers.d.ts +0 -67
- package/dist/lib/routers.js +0 -60
- package/dist/lib/routine-activation.d.ts +0 -23
- package/dist/lib/routine-activation.js +0 -24
- package/dist/lib/routine-context.d.ts +1 -91
- package/dist/lib/routine-context.js +0 -107
- package/dist/lib/routine-notify-owner.d.ts +0 -79
- package/dist/lib/routine-notify-owner.js +1 -103
- package/dist/lib/routine-notify.d.ts +0 -70
- package/dist/lib/routine-notify.js +1 -75
- package/dist/lib/routine-process-cleanup.d.ts +0 -1
- package/dist/lib/routine-process-cleanup.js +1 -4
- package/dist/lib/routine-readiness.d.ts +0 -63
- package/dist/lib/routine-readiness.js +4 -86
- package/dist/lib/routines-format.d.ts +0 -40
- package/dist/lib/routines-format.js +0 -67
- package/dist/lib/routines-placement.d.ts +0 -33
- package/dist/lib/routines-placement.js +0 -40
- package/dist/lib/routines-project.d.ts +0 -57
- package/dist/lib/routines-project.js +6 -80
- package/dist/lib/rules/compile.d.ts +0 -66
- package/dist/lib/rules/compile.js +6 -118
- package/dist/lib/rules/compose.d.ts +0 -56
- package/dist/lib/rules/compose.js +2 -83
- package/dist/lib/rules/rules.d.ts +0 -23
- package/dist/lib/rules/rules.js +0 -35
- package/dist/lib/rules/run-sync.d.ts +0 -16
- package/dist/lib/rules/run-sync.js +1 -44
- package/dist/lib/run-config.d.ts +0 -7
- package/dist/lib/run-config.js +0 -8
- package/dist/lib/run-defaults.d.ts +0 -14
- package/dist/lib/run-defaults.js +0 -14
- package/dist/lib/run-notify.d.ts +0 -18
- package/dist/lib/run-notify.js +0 -36
- package/dist/lib/run-trace-sync.d.ts +0 -21
- package/dist/lib/run-trace-sync.js +2 -66
- package/dist/lib/rush-session.d.ts +0 -26
- package/dist/lib/rush-session.js +0 -28
- package/dist/lib/sandbox.d.ts +0 -45
- package/dist/lib/sandbox.js +5 -93
- package/dist/lib/scheduler.d.ts +0 -28
- package/dist/lib/scheduler.js +0 -45
- package/dist/lib/scheduling/routines.d.ts +0 -652
- package/dist/lib/scheduling/routines.js +8 -475
- package/dist/lib/secrets-cli.d.ts +3 -8
- package/dist/lib/secrets-cli.js +1 -19
- package/dist/lib/secrets-client.d.ts +0 -117
- package/dist/lib/secrets-client.js +4 -275
- package/dist/lib/secrets-policy.d.ts +0 -142
- package/dist/lib/secrets-policy.js +4 -237
- package/dist/lib/secrets-types.d.ts +0 -87
- package/dist/lib/secrets-types.js +0 -13
- package/dist/lib/self-heal/checks/hook-manifest.js +0 -25
- package/dist/lib/self-heal/checks/hook-runtime.js +0 -5
- package/dist/lib/self-heal/checks/install-staging.d.ts +0 -1
- package/dist/lib/self-heal/checks/install-staging.js +1 -28
- package/dist/lib/self-heal/checks/menubar-helper.js +0 -5
- package/dist/lib/self-heal/checks/path.js +0 -9
- package/dist/lib/self-heal/checks/resources.js +0 -5
- package/dist/lib/self-heal/checks/shadowing.js +2 -16
- package/dist/lib/self-heal/checks/shims.js +0 -14
- package/dist/lib/self-heal/child.d.ts +12 -0
- package/dist/lib/self-heal/child.js +23 -0
- package/dist/lib/self-heal/registry.d.ts +0 -9
- package/dist/lib/self-heal/registry.js +0 -16
- package/dist/lib/self-heal/types.d.ts +0 -12
- package/dist/lib/self-heal/types.js +0 -15
- package/dist/lib/self-update.d.ts +0 -312
- package/dist/lib/self-update.js +9 -360
- package/dist/lib/service-manifest.d.ts +0 -39
- package/dist/lib/service-manifest.js +0 -72
- package/dist/lib/session/active.d.ts +13 -869
- package/dist/lib/session/active.js +20 -976
- package/dist/lib/session/actor-sidecar.d.ts +1 -32
- package/dist/lib/session/actor-sidecar.js +1 -41
- package/dist/lib/session/bookmarks.d.ts +0 -33
- package/dist/lib/session/bookmarks.js +0 -37
- package/dist/lib/session/bundle.d.ts +0 -86
- package/dist/lib/session/bundle.js +0 -54
- package/dist/lib/session/claude-accounts.d.ts +0 -40
- package/dist/lib/session/claude-accounts.js +0 -49
- package/dist/lib/session/cloud.d.ts +1 -23
- package/dist/lib/session/cloud.js +0 -26
- package/dist/lib/session/db.d.ts +5 -658
- package/dist/lib/session/db.js +22 -1443
- package/dist/lib/session/detached.d.ts +0 -21
- package/dist/lib/session/detached.js +0 -29
- package/dist/lib/session/discover.d.ts +3 -420
- package/dist/lib/session/discover.js +30 -1123
- package/dist/lib/session/fork.d.ts +1 -41
- package/dist/lib/session/fork.js +0 -19
- package/dist/lib/session/ghostty-tabs.d.ts +0 -24
- package/dist/lib/session/ghostty-tabs.js +0 -37
- package/dist/lib/session/glance-files.d.ts +19 -0
- package/dist/lib/session/glance-files.js +258 -0
- package/dist/lib/session/hook-sessions.d.ts +0 -33
- package/dist/lib/session/hook-sessions.js +4 -99
- package/dist/lib/session/host-link.d.ts +1 -94
- package/dist/lib/session/host-link.js +1 -81
- package/dist/lib/session/inject-target.d.ts +8 -0
- package/dist/lib/session/inject-target.js +32 -0
- package/dist/lib/session/inject.d.ts +0 -15
- package/dist/lib/session/inject.js +0 -15
- package/dist/lib/session/live-metadata.d.ts +1 -34
- package/dist/lib/session/live-metadata.js +1 -73
- package/dist/lib/session/local-tmux-attach.d.ts +0 -37
- package/dist/lib/session/local-tmux-attach.js +1 -76
- package/dist/lib/session/migrate-targets.d.ts +0 -46
- package/dist/lib/session/migrate-targets.js +0 -24
- package/dist/lib/session/migrations.d.ts +0 -12
- package/dist/lib/session/migrations.js +1 -20
- package/dist/lib/session/mirror.d.ts +0 -32
- package/dist/lib/session/mirror.js +0 -77
- package/dist/lib/session/origin-machine.js +0 -3
- package/dist/lib/session/pid-registry.d.ts +0 -80
- package/dist/lib/session/pid-registry.js +2 -81
- package/dist/lib/session/presence.d.ts +0 -39
- package/dist/lib/session/presence.js +2 -52
- package/dist/lib/session/process-view.d.ts +0 -11
- package/dist/lib/session/process-view.js +0 -25
- package/dist/lib/session/projection.d.ts +0 -3
- package/dist/lib/session/projection.js +0 -10
- package/dist/lib/session/provenance.d.ts +1 -37
- package/dist/lib/session/provenance.js +0 -69
- package/dist/lib/session/recovery.d.ts +1 -40
- package/dist/lib/session/recovery.js +2 -80
- package/dist/lib/session/relative-time.js +0 -3
- package/dist/lib/session/remote/peer-stream.d.ts +0 -42
- package/dist/lib/session/remote/peer-stream.js +0 -64
- package/dist/lib/session/remote/remote-bundle.d.ts +0 -6
- package/dist/lib/session/remote/remote-bundle.js +0 -21
- package/dist/lib/session/remote/remote-list.d.ts +1 -110
- package/dist/lib/session/remote/remote-list.js +5 -139
- package/dist/lib/session/remote/remote.d.ts +0 -98
- package/dist/lib/session/remote/remote.js +3 -119
- package/dist/lib/session/remote/watch.d.ts +1 -34
- package/dist/lib/session/remote/watch.js +12 -72
- package/dist/lib/session/remote-active.d.ts +0 -35
- package/dist/lib/session/remote-active.js +0 -48
- package/dist/lib/session/remote-bundle.js +0 -2
- package/dist/lib/session/remote-list.js +0 -2
- package/dist/lib/session/remote-preview-cache.d.ts +0 -7
- package/dist/lib/session/remote-preview-cache.js +1 -76
- package/dist/lib/session/remote.js +0 -2
- package/dist/lib/session/resume-command.d.ts +0 -6
- package/dist/lib/session/resume-command.js +0 -6
- package/dist/lib/session/resume-owner.d.ts +1 -52
- package/dist/lib/session/resume-owner.js +0 -56
- package/dist/lib/session/run-names.d.ts +0 -24
- package/dist/lib/session/run-names.js +0 -26
- package/dist/lib/session/session-cache.d.ts +2 -146
- package/dist/lib/session/session-cache.js +26 -203
- package/dist/lib/session/short-id.js +0 -3
- package/dist/lib/session/sync/agents.d.ts +0 -68
- package/dist/lib/session/sync/agents.js +0 -0
- package/dist/lib/session/sync/backend.d.ts +0 -39
- package/dist/lib/session/sync/backend.js +0 -45
- package/dist/lib/session/sync/config.d.ts +0 -27
- package/dist/lib/session/sync/config.js +0 -56
- package/dist/lib/session/sync/managed-config.d.ts +0 -17
- package/dist/lib/session/sync/managed-config.js +0 -17
- package/dist/lib/session/sync/managed-key.d.ts +0 -38
- package/dist/lib/session/sync/managed-key.js +1 -42
- package/dist/lib/session/sync/net-client.d.ts +0 -36
- package/dist/lib/session/sync/net-client.js +0 -30
- package/dist/lib/session/sync/provision.d.ts +0 -2
- package/dist/lib/session/sync/provision.js +0 -13
- package/dist/lib/session/sync/r2.d.ts +0 -20
- package/dist/lib/session/sync/r2.js +0 -20
- package/dist/lib/session/sync/transcript-crypto.d.ts +0 -37
- package/dist/lib/session/sync/transcript-crypto.js +5 -37
- package/dist/lib/session/sync/worker-template.d.ts +0 -5
- package/dist/lib/session/sync/worker-template.js +0 -40
- package/dist/lib/session/testdata/pid-registry-namespace.js +0 -2
- package/dist/lib/session/testdata/process-view-private.js +0 -1
- package/dist/lib/session/throughput.d.ts +0 -24
- package/dist/lib/session/throughput.js +1 -25
- package/dist/lib/session/timeline-pass.d.ts +1 -63
- package/dist/lib/session/timeline-pass.js +161 -148
- package/dist/lib/session/title.d.ts +0 -182
- package/dist/lib/session/title.js +0 -139
- package/dist/lib/session/tool-index.d.ts +2 -21
- package/dist/lib/session/tool-index.js +3 -75
- package/dist/lib/session/tool-store.d.ts +2 -48
- package/dist/lib/session/tool-store.js +1 -33
- package/dist/lib/session/viewing-in.d.ts +0 -67
- package/dist/lib/session/viewing-in.js +1 -71
- package/dist/lib/session/watch.js +0 -2
- package/dist/lib/session/width.js +0 -3
- package/dist/lib/sessions-client.d.ts +0 -46
- package/dist/lib/sessions-client.js +36 -113
- package/dist/lib/settings-manifest.d.ts +1 -17
- package/dist/lib/settings-manifest.js +4 -57
- package/dist/lib/setup-tool-install.d.ts +0 -1
- package/dist/lib/setup-tool-install.js +2 -7
- package/dist/lib/setup-tool-status.d.ts +0 -3
- package/dist/lib/setup-tool-status.js +4 -14
- package/dist/lib/sha256-asset.d.ts +0 -20
- package/dist/lib/sha256-asset.js +0 -20
- package/dist/lib/share-runtime.d.ts +0 -10
- package/dist/lib/share-runtime.js +1 -27
- package/dist/lib/shim-heal.d.ts +0 -15
- package/dist/lib/shim-heal.js +3 -29
- package/dist/lib/signin-badge.d.ts +0 -72
- package/dist/lib/signin-badge.js +0 -86
- package/dist/lib/sink-format.d.ts +0 -32
- package/dist/lib/sink-format.js +0 -14
- package/dist/lib/smart-launch.d.ts +0 -75
- package/dist/lib/smart-launch.js +1 -83
- package/dist/lib/snapshot.d.ts +0 -46
- package/dist/lib/snapshot.js +5 -31
- package/dist/lib/spinner.d.ts +0 -37
- package/dist/lib/spinner.js +0 -37
- package/dist/lib/sqlite.d.ts +0 -13
- package/dist/lib/sqlite.js +3 -71
- package/dist/lib/ssh-exec.d.ts +0 -209
- package/dist/lib/ssh-exec.js +11 -248
- package/dist/lib/ssh-tunnel.d.ts +0 -43
- package/dist/lib/ssh-tunnel.js +2 -48
- package/dist/lib/staleness/checkers/commands.d.ts +0 -4
- package/dist/lib/staleness/checkers/commands.js +0 -4
- package/dist/lib/staleness/checkers/hooks.d.ts +0 -10
- package/dist/lib/staleness/checkers/hooks.js +0 -15
- package/dist/lib/staleness/checkers/mcp.d.ts +0 -9
- package/dist/lib/staleness/checkers/mcp.js +0 -9
- package/dist/lib/staleness/checkers/permissions.d.ts +0 -12
- package/dist/lib/staleness/checkers/permissions.js +0 -13
- package/dist/lib/staleness/checkers/plugins.d.ts +0 -8
- package/dist/lib/staleness/checkers/plugins.js +0 -8
- package/dist/lib/staleness/checkers/rules.d.ts +0 -15
- package/dist/lib/staleness/checkers/rules.js +0 -26
- package/dist/lib/staleness/checkers/skills.d.ts +0 -4
- package/dist/lib/staleness/checkers/skills.js +0 -4
- package/dist/lib/staleness/checkers/subagents.d.ts +0 -9
- package/dist/lib/staleness/checkers/subagents.js +0 -9
- package/dist/lib/staleness/checkers/types.d.ts +0 -34
- package/dist/lib/staleness/checkers/types.js +0 -19
- package/dist/lib/staleness/checkers/workflows.d.ts +0 -7
- package/dist/lib/staleness/checkers/workflows.js +0 -7
- package/dist/lib/staleness/detectors/commands.js +0 -17
- package/dist/lib/staleness/detectors/hooks.js +1 -6
- package/dist/lib/staleness/detectors/mcp.js +0 -4
- package/dist/lib/staleness/detectors/permissions.js +10 -23
- package/dist/lib/staleness/detectors/rules.js +0 -6
- package/dist/lib/staleness/detectors/skills.d.ts +0 -1
- package/dist/lib/staleness/detectors/skills.js +1 -12
- package/dist/lib/staleness/detectors/types.d.ts +0 -10
- package/dist/lib/staleness/fingerprint.d.ts +0 -19
- package/dist/lib/staleness/fingerprint.js +0 -35
- package/dist/lib/staleness/index.d.ts +0 -28
- package/dist/lib/staleness/index.js +1 -45
- package/dist/lib/staleness/layers.d.ts +0 -23
- package/dist/lib/staleness/layers.js +0 -34
- package/dist/lib/staleness/prune.d.ts +0 -71
- package/dist/lib/staleness/prune.js +2 -27
- package/dist/lib/staleness/registry.d.ts +0 -10
- package/dist/lib/staleness/registry.js +3 -33
- package/dist/lib/staleness/types.d.ts +0 -36
- package/dist/lib/staleness/types.js +0 -5
- package/dist/lib/staleness/writers/commands.js +1 -48
- package/dist/lib/staleness/writers/hooks.js +1 -18
- package/dist/lib/staleness/writers/kinds.d.ts +0 -12
- package/dist/lib/staleness/writers/kinds.js +0 -1
- package/dist/lib/staleness/writers/lazy-map.d.ts +0 -11
- package/dist/lib/staleness/writers/mcp.js +0 -13
- package/dist/lib/staleness/writers/plugins.js +0 -4
- package/dist/lib/staleness/writers/rules.d.ts +0 -1
- package/dist/lib/staleness/writers/rules.js +1 -19
- package/dist/lib/staleness/writers/skills.js +3 -14
- package/dist/lib/staleness/writers/sources.d.ts +0 -11
- package/dist/lib/staleness/writers/sources.js +0 -32
- package/dist/lib/staleness/writers/subagents.js +0 -16
- package/dist/lib/staleness/writers/types.d.ts +0 -58
- package/dist/lib/staleness/writers/workflows.js +1 -1
- package/dist/lib/standalone-tools.d.ts +24 -0
- package/dist/lib/standalone-tools.js +58 -0
- package/dist/lib/star-nudge.d.ts +0 -32
- package/dist/lib/star-nudge.js +2 -36
- package/dist/lib/startup/command-registry.d.ts +0 -45
- package/dist/lib/startup/command-registry.js +1 -46
- package/dist/lib/startup/dev-build.d.ts +0 -9
- package/dist/lib/startup/dev-build.js +1 -42
- package/dist/lib/startup/root-command.d.ts +0 -19
- package/dist/lib/startup/root-command.js +0 -19
- package/dist/lib/startup/spellcheck.d.ts +0 -13
- package/dist/lib/startup/spellcheck.js +0 -13
- package/dist/lib/state.d.ts +0 -376
- package/dist/lib/state.js +19 -737
- package/dist/lib/storage/selection.d.ts +0 -40
- package/dist/lib/storage/selection.js +0 -29
- package/dist/lib/subagents-registry.d.ts +0 -56
- package/dist/lib/subagents-registry.js +0 -99
- package/dist/lib/subagents.d.ts +0 -128
- package/dist/lib/subagents.js +1 -158
- package/dist/lib/summarizer/config.d.ts +0 -37
- package/dist/lib/summarizer/config.js +0 -37
- package/dist/lib/summarizer/pass.d.ts +0 -20
- package/dist/lib/summarizer/pass.js +1 -34
- package/dist/lib/summarizer/summarize.d.ts +1 -49
- package/dist/lib/summarizer/summarize.js +0 -35
- package/dist/lib/sync-passphrase.d.ts +0 -16
- package/dist/lib/sync-passphrase.js +1 -18
- package/dist/lib/sync-status.d.ts +0 -72
- package/dist/lib/sync-status.js +0 -55
- package/dist/lib/sync-umbrella.d.ts +0 -54
- package/dist/lib/sync-umbrella.js +0 -48
- package/dist/lib/system-run-sync.d.ts +0 -5
- package/dist/lib/system-run-sync.js +1 -31
- package/dist/lib/teams/agents.d.ts +1 -444
- package/dist/lib/teams/agents.js +11 -871
- package/dist/lib/teams/api.d.ts +2 -52
- package/dist/lib/teams/api.js +4 -63
- package/dist/lib/teams/debug.d.ts +0 -6
- package/dist/lib/teams/debug.js +0 -6
- package/dist/lib/teams/delivery.d.ts +0 -41
- package/dist/lib/teams/delivery.js +0 -32
- package/dist/lib/teams/file_ops.d.ts +0 -11
- package/dist/lib/teams/file_ops.js +0 -11
- package/dist/lib/teams/forEach.d.ts +0 -76
- package/dist/lib/teams/forEach.js +1 -77
- package/dist/lib/teams/index.d.ts +1 -7
- package/dist/lib/teams/index.js +1 -7
- package/dist/lib/teams/parsers.d.ts +0 -4
- package/dist/lib/teams/parsers.js +0 -81
- package/dist/lib/teams/persistence.d.ts +0 -2
- package/dist/lib/teams/persistence.js +0 -12
- package/dist/lib/teams/placement-probe.d.ts +0 -12
- package/dist/lib/teams/placement-probe.js +1 -51
- package/dist/lib/teams/pr-watch.d.ts +0 -107
- package/dist/lib/teams/pr-watch.js +1 -107
- package/dist/lib/teams/registry.d.ts +0 -36
- package/dist/lib/teams/registry.js +0 -47
- package/dist/lib/teams/remoteWorktree.d.ts +0 -50
- package/dist/lib/teams/remoteWorktree.js +1 -96
- package/dist/lib/teams/scheduler.d.ts +0 -111
- package/dist/lib/teams/scheduler.js +2 -125
- package/dist/lib/teams/summarizer.d.ts +0 -22
- package/dist/lib/teams/summarizer.js +6 -50
- package/dist/lib/teams/supervisor.d.ts +0 -38
- package/dist/lib/teams/supervisor.js +0 -21
- package/dist/lib/teams/worktree.d.ts +0 -95
- package/dist/lib/teams/worktree.js +3 -110
- package/dist/lib/template.d.ts +0 -21
- package/dist/lib/template.js +0 -23
- package/dist/lib/term-client.d.ts +0 -26
- package/dist/lib/term-client.js +0 -48
- package/dist/lib/term-driver.d.ts +0 -5
- package/dist/lib/term-driver.js +0 -8
- package/dist/lib/terminal/backends/ghostty.d.ts +0 -2
- package/dist/lib/terminal/backends/ghostty.js +0 -12
- package/dist/lib/terminal/backends/index.d.ts +0 -17
- package/dist/lib/terminal/backends/index.js +0 -15
- package/dist/lib/terminal/backends/iterm.d.ts +0 -2
- package/dist/lib/terminal/backends/iterm.js +0 -10
- package/dist/lib/terminal/backends/terminal-app.d.ts +0 -10
- package/dist/lib/terminal/backends/terminal-app.js +0 -30
- package/dist/lib/terminal/backends/tmux.d.ts +0 -10
- package/dist/lib/terminal/backends/tmux.js +0 -2
- package/dist/lib/terminal/backends/vscodium-agent.d.ts +0 -25
- package/dist/lib/terminal/backends/vscodium-agent.js +0 -36
- package/dist/lib/terminal/engine.d.ts +0 -17
- package/dist/lib/terminal/engine.js +0 -10
- package/dist/lib/terminal/index.d.ts +0 -8
- package/dist/lib/terminal/inject.d.ts +1 -173
- package/dist/lib/terminal/inject.js +0 -146
- package/dist/lib/terminal/policy.d.ts +0 -8
- package/dist/lib/terminal/policy.js +0 -1
- package/dist/lib/terminal/preferred.d.ts +0 -66
- package/dist/lib/terminal/preferred.js +0 -30
- package/dist/lib/terminal/quote.d.ts +0 -8
- package/dist/lib/terminal/quote.js +0 -8
- package/dist/lib/terminal/resolve.d.ts +0 -46
- package/dist/lib/terminal/resolve.js +0 -30
- package/dist/lib/terminal/run-surface.d.ts +0 -56
- package/dist/lib/terminal/run-surface.js +0 -46
- package/dist/lib/terminal/shell.d.ts +0 -3
- package/dist/lib/terminal/shell.js +0 -13
- package/dist/lib/terminal/transport.d.ts +0 -14
- package/dist/lib/terminal/transport.js +1 -30
- package/dist/lib/terminal/types.d.ts +0 -40
- package/dist/lib/terminal/types.js +0 -10
- package/dist/lib/text/relative-time.d.ts +0 -36
- package/dist/lib/text/relative-time.js +0 -43
- package/dist/lib/text/short-id.d.ts +0 -16
- package/dist/lib/text/short-id.js +0 -16
- package/dist/lib/text/width.d.ts +0 -24
- package/dist/lib/text/width.js +10 -52
- package/dist/lib/tmux/binary.d.ts +0 -36
- package/dist/lib/tmux/binary.js +0 -28
- package/dist/lib/tmux/index.d.ts +0 -5
- package/dist/lib/tmux/index.js +0 -5
- package/dist/lib/tmux/orphan-reap.d.ts +0 -253
- package/dist/lib/tmux/orphan-reap.js +3 -299
- package/dist/lib/tmux/paths.d.ts +0 -14
- package/dist/lib/tmux/paths.js +0 -14
- package/dist/lib/tmux/session.d.ts +0 -263
- package/dist/lib/tmux/session.js +6 -344
- package/dist/lib/traces/backend.d.ts +0 -20
- package/dist/lib/traces/backend.js +0 -23
- package/dist/lib/traces/classify.d.ts +0 -20
- package/dist/lib/traces/classify.js +0 -7
- package/dist/lib/traces/insights.d.ts +1 -84
- package/dist/lib/traces/insights.js +0 -126
- package/dist/lib/traces/phenotype.d.ts +0 -69
- package/dist/lib/traces/phenotype.js +0 -150
- package/dist/lib/traces/provision.d.ts +0 -1
- package/dist/lib/traces/provision.js +0 -5
- package/dist/lib/traces/schema2-build.d.ts +3 -60
- package/dist/lib/traces/schema2-build.js +8 -149
- package/dist/lib/traces/schema2-danger.d.ts +0 -30
- package/dist/lib/traces/schema2-danger.js +1 -63
- package/dist/lib/traces/schema2.d.ts +0 -11
- package/dist/lib/traces/segments.d.ts +0 -44
- package/dist/lib/traces/segments.js +0 -65
- package/dist/lib/traces/sync.d.ts +2 -239
- package/dist/lib/traces/sync.js +15 -237
- package/dist/lib/traces/worker-template.d.ts +0 -3
- package/dist/lib/traces/worker-template.js +0 -29
- package/dist/lib/triggers/handlers.d.ts +0 -82
- package/dist/lib/triggers/handlers.js +0 -75
- package/dist/lib/triggers/webhook.d.ts +0 -158
- package/dist/lib/triggers/webhook.js +0 -143
- package/dist/lib/types.d.ts +0 -736
- package/dist/lib/types.js +0 -50
- package/dist/lib/uninstall.d.ts +0 -17
- package/dist/lib/uninstall.js +0 -75
- package/dist/lib/usage-backoff.d.ts +0 -20
- package/dist/lib/usage-backoff.js +3 -60
- package/dist/lib/usage-refresh.d.ts +0 -154
- package/dist/lib/usage-refresh.js +8 -212
- package/dist/lib/verbs.d.ts +0 -12
- package/dist/lib/verbs.js +0 -12
- package/dist/lib/version-duplicates.d.ts +0 -6
- package/dist/lib/version-duplicates.js +0 -6
- package/dist/lib/version.d.ts +0 -55
- package/dist/lib/version.js +1 -58
- package/dist/lib/view-types.d.ts +0 -48
- package/dist/lib/warn-unpushed.d.ts +0 -27
- package/dist/lib/warn-unpushed.js +1 -45
- package/dist/lib/watchdog/history.d.ts +0 -1
- package/dist/lib/watchdog/history.js +0 -3
- package/dist/lib/watchdog/index.js +0 -2
- package/dist/lib/watchdog/log.d.ts +0 -19
- package/dist/lib/watchdog/log.js +0 -34
- package/dist/lib/watchdog/read.d.ts +0 -27
- package/dist/lib/watchdog/read.js +3 -58
- package/dist/lib/watchdog/rotate.d.ts +0 -139
- package/dist/lib/watchdog/rotate.js +2 -151
- package/dist/lib/watchdog/runner.d.ts +0 -125
- package/dist/lib/watchdog/runner.js +3 -223
- package/dist/lib/watchdog/service.d.ts +0 -1
- package/dist/lib/watchdog/service.js +0 -2
- package/dist/lib/watchdog/watchdog-agent.d.ts +0 -31
- package/dist/lib/watchdog/watchdog-agent.js +0 -27
- package/dist/lib/watchdog/watchdog.d.ts +0 -7
- package/dist/lib/watchdog/watchdog.js +0 -10
- package/dist/lib/watchdog/watchdogTail.js +0 -7
- package/dist/lib/whats-new.d.ts +0 -10
- package/dist/lib/whats-new.js +0 -21
- package/dist/lib/workflows-registry.d.ts +0 -45
- package/dist/lib/workflows-registry.js +0 -60
- package/dist/lib/workflows.d.ts +0 -282
- package/dist/lib/workflows.js +3 -213
- package/dist/lib/worktree/held.d.ts +0 -89
- package/dist/lib/worktree/held.js +1 -103
- package/dist/lib/wrap.d.ts +0 -32
- package/dist/lib/wrap.js +0 -32
- package/dist/lib/yaml-io.d.ts +0 -45
- package/dist/lib/yaml-io.js +0 -47
- package/dist/session-tracker/dist/adapters/claude.js +0 -2
- package/dist/session-tracker/dist/hook.sh +4 -37
- package/dist/session-tracker/dist/index.d.ts +0 -7
- package/dist/session-tracker/dist/index.js +0 -5
- package/dist/session-tracker/dist/install-hook.d.ts +0 -5
- package/dist/session-tracker/dist/install-hook.js +1 -15
- package/dist/session-tracker/dist/prune-state.js +0 -4
- package/dist/session-tracker/dist/reader.js +0 -4
- package/dist/session-tracker/dist/state-file.d.ts +0 -3
- package/dist/session-tracker/dist/state-file.js +3 -8
- package/package.json +3 -4
- package/scripts/postinstall.js +8 -116
- package/dist/lib/session/artifacts.d.ts +0 -14
- package/dist/lib/session/artifacts.js +0 -101
- package/dist/lib/session/bash-command.d.ts +0 -63
- package/dist/lib/session/bash-command.js +0 -490
- package/dist/lib/session/digest.d.ts +0 -66
- package/dist/lib/session/digest.js +0 -328
- package/dist/lib/session/highlights.d.ts +0 -151
- package/dist/lib/session/highlights.js +0 -391
- package/dist/lib/session/insights.d.ts +0 -165
- package/dist/lib/session/insights.js +0 -563
- package/dist/lib/session/linear.d.ts +0 -19
- package/dist/lib/session/linear.js +0 -99
- package/dist/lib/session/parse.d.ts +0 -224
- package/dist/lib/session/parse.js +0 -2408
- package/dist/lib/session/prompt.d.ts +0 -213
- package/dist/lib/session/prompt.js +0 -601
- package/dist/lib/session/render.d.ts +0 -133
- package/dist/lib/session/render.js +0 -1047
- package/dist/lib/session/share-html.d.ts +0 -35
- package/dist/lib/session/share-html.js +0 -319
- package/dist/lib/session/shell-programs.d.ts +0 -33
- package/dist/lib/session/shell-programs.js +0 -380
- package/dist/lib/session/state.d.ts +0 -269
- package/dist/lib/session/state.js +0 -777
- package/dist/lib/session/stream-render.d.ts +0 -4
- package/dist/lib/session/stream-render.js +0 -131
- package/dist/lib/session/tail.d.ts +0 -88
- package/dist/lib/session/tail.js +0 -294
- package/dist/lib/session/team-filter.d.ts +0 -129
- package/dist/lib/session/team-filter.js +0 -269
- package/dist/lib/session/timeline.d.ts +0 -172
- package/dist/lib/session/timeline.js +0 -636
- package/dist/lib/session/tool-calls.d.ts +0 -132
- package/dist/lib/session/tool-calls.js +0 -674
- package/dist/lib/session/trajectory-compare.d.ts +0 -48
- package/dist/lib/session/trajectory-compare.js +0 -116
- package/dist/lib/session/trajectory-html.d.ts +0 -19
- package/dist/lib/session/trajectory-html.js +0 -771
- package/dist/lib/session/trajectory-lineage.d.ts +0 -93
- package/dist/lib/session/trajectory-lineage.js +0 -195
- package/dist/lib/session/trajectory-text.d.ts +0 -38
- package/dist/lib/session/trajectory-text.js +0 -284
- package/dist/lib/session/trajectory.d.ts +0 -145
- package/dist/lib/session/trajectory.js +0 -394
- package/dist/lib/session/types.d.ts +0 -627
- package/dist/lib/session/types.js +0 -43
|
@@ -1,18 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Fleet-wide device operations — pick online targets and run a command on each.
|
|
3
|
-
*
|
|
4
|
-
* Used by `agents fleet update` / `agents fleet run` (aliases of the same
|
|
5
|
-
* subcommands under `agents devices`). Offline devices are skipped with a
|
|
6
|
-
* reason so a single dead node never blocks the rest of the rollout. Per-device
|
|
7
|
-
* throws (misconfigured auth, etc.) become `failed` rows — they never abort
|
|
8
|
-
* the remaining devices.
|
|
9
|
-
*/
|
|
10
1
|
import type { DeviceProfile, DeviceRegistry } from './registry.js';
|
|
11
2
|
import type { DeviceStats } from './health.js';
|
|
12
3
|
export type FleetSkipReason = 'offline' | 'no-address';
|
|
13
4
|
export interface FleetTarget {
|
|
14
5
|
device: DeviceProfile;
|
|
15
|
-
/** When set, this device is not reached (skip with reason). */
|
|
16
6
|
skip?: FleetSkipReason;
|
|
17
7
|
}
|
|
18
8
|
export interface FleetRunResult {
|
|
@@ -20,7 +10,6 @@ export interface FleetRunResult {
|
|
|
20
10
|
status: 'ok' | 'failed' | 'skipped';
|
|
21
11
|
code: number | null;
|
|
22
12
|
reason?: FleetSkipReason | string;
|
|
23
|
-
/** Truncated combined stderr/stdout for failures. */
|
|
24
13
|
detail?: string;
|
|
25
14
|
}
|
|
26
15
|
export interface FanOutDeviceTarget {
|
|
@@ -34,50 +23,10 @@ export interface FanOutDeviceResult<T> {
|
|
|
34
23
|
error?: string;
|
|
35
24
|
reason?: FleetSkipReason | string;
|
|
36
25
|
}
|
|
37
|
-
/**
|
|
38
|
-
* Classify each registered device for a fleet operation.
|
|
39
|
-
*
|
|
40
|
-
* - Tailscale-offline → skip `offline`
|
|
41
|
-
* - No address → skip `no-address`
|
|
42
|
-
* - Everything else is a target (including this machine, reached over ssh when
|
|
43
|
-
* it has a registry address — same path as any other box).
|
|
44
|
-
*/
|
|
45
26
|
export declare function planFleetTargets(reg: DeviceRegistry): FleetTarget[];
|
|
46
|
-
/**
|
|
47
|
-
* Remote fan-out targets for the fleet health/drift gates (`fleet status`,
|
|
48
|
-
* `doctor --check --devices`): every planned device except this machine.
|
|
49
|
-
* Offline / no-address devices are kept — those are genuine faults a gate should
|
|
50
|
-
* surface — so their `skip` reason still flows through as an `unreachable` row.
|
|
51
|
-
*/
|
|
52
27
|
export declare function remoteFleetTargets(planned: FleetTarget[], self: string): FleetTarget[];
|
|
53
|
-
/**
|
|
54
|
-
* Decide whether a fleet-health target should skip the expensive version+doctor
|
|
55
|
-
* dials (`agents fleet status`). The cheap stats probe (~2.5s, same registry
|
|
56
|
-
* address) has already tried this box one step earlier. If it came back
|
|
57
|
-
* unreachable, dialing `agents --version` (15s) + `agents doctor --json` (30s)
|
|
58
|
-
* would almost certainly fail the same way — just 45s slower — so one
|
|
59
|
-
* genuinely-offline box would stall the whole matrix (the ~60s hang, RUSH-1964).
|
|
60
|
-
*
|
|
61
|
-
* We trust the stats verdict on the DEFAULT path, not only under
|
|
62
|
-
* `--refresh`/`--live`: `probeDeviceStats` and the version/doctor dials share
|
|
63
|
-
* one ssh path (`fleetDialTarget`), so reachability is not per-probe. The
|
|
64
|
-
* verdict is either freshly probed this run or daemon-warmed (~3min) with the
|
|
65
|
-
* live write-back from RUSH-1965, so a box that came online in the last few
|
|
66
|
-
* minutes is the only false-negative window — it renders `unreachable` until the
|
|
67
|
-
* next stats warm, which beats letting it hang the status glance for 45s.
|
|
68
|
-
*
|
|
69
|
-
* An existing skip (offline/no-address from {@link planFleetTargets})
|
|
70
|
-
* always wins — those are classified before any probe.
|
|
71
|
-
*/
|
|
72
28
|
export declare function fleetHealthSkip(currentSkip: FleetSkipReason | string | undefined, stats: DeviceStats | undefined): FleetSkipReason | string | undefined;
|
|
73
|
-
/** Human label for a skip reason. */
|
|
74
29
|
export declare function skipLabel(reason: FleetSkipReason): string;
|
|
75
|
-
/**
|
|
76
|
-
* Run `cmd` on one device via the same ssh path as `agents ssh <name> …`.
|
|
77
|
-
* Captures stdout/stderr (not inherited) so the fleet table can summarize.
|
|
78
|
-
* Throws from buildSshInvocation are returned as a non-zero result so a single
|
|
79
|
-
* misconfigured device cannot abort the fleet loop.
|
|
80
|
-
*/
|
|
81
30
|
export declare function runOnDevice(device: DeviceProfile, cmd: string[], opts?: {
|
|
82
31
|
timeoutMs?: number;
|
|
83
32
|
}): {
|
|
@@ -85,18 +34,6 @@ export declare function runOnDevice(device: DeviceProfile, cmd: string[], opts?:
|
|
|
85
34
|
stdout: string;
|
|
86
35
|
stderr: string;
|
|
87
36
|
};
|
|
88
|
-
/**
|
|
89
|
-
* Run `cmd` on THIS machine directly — no ssh. Used by {@link runFleet} for the
|
|
90
|
-
* self target: a box frequently can't ssh to itself (no self-authorized key, as
|
|
91
|
-
* `agents fleet update` hit trying to reach zion from zion) and doesn't need to —
|
|
92
|
-
* `agents upgrade` etc. runs identically as a local process. Mirrors
|
|
93
|
-
* {@link runOnDevice}'s return shape and never throws. The argv is space-joined
|
|
94
|
-
* and evaluated by a shell — matching the POSIX-shell ssh path (so PATH-resolved
|
|
95
|
-
* `agents`, quoting, and `;`/`&&` behave the same). It does NOT replicate the
|
|
96
|
-
* powershell-device encoding runOnDevice uses (`connect.ts` base64 path): a
|
|
97
|
-
* Windows self runs under the default OS shell (cmd.exe), which still resolves
|
|
98
|
-
* `agents` on PATH for the only self commands that matter (`agents upgrade …`).
|
|
99
|
-
*/
|
|
100
37
|
export declare function runLocalCommand(cmd: string[], opts?: {
|
|
101
38
|
timeoutMs?: number;
|
|
102
39
|
}): {
|
|
@@ -104,47 +41,15 @@ export declare function runLocalCommand(cmd: string[], opts?: {
|
|
|
104
41
|
stdout: string;
|
|
105
42
|
stderr: string;
|
|
106
43
|
};
|
|
107
|
-
/**
|
|
108
|
-
* Build `agents upgrade --yes` argv, optionally pinned to a version/dist-tag.
|
|
109
|
-
* Rejects anything that is not a plain npm version/tag token so a version pin
|
|
110
|
-
* cannot inject shell metacharacters into the remote command line.
|
|
111
|
-
*/
|
|
112
44
|
export declare function upgradeCommand(version?: string): string[];
|
|
113
45
|
interface RunFleetOptions {
|
|
114
|
-
/**
|
|
115
|
-
* Name of THIS machine. Its target runs the command **locally** (no ssh) — a
|
|
116
|
-
* box can't reliably ssh to itself and doesn't need to. Omit to ssh every
|
|
117
|
-
* target (the old behaviour). Callers pass `machineId()`.
|
|
118
|
-
*/
|
|
119
46
|
self?: string;
|
|
120
|
-
/** Injectable ssh runner (tests). */
|
|
121
47
|
runner?: typeof runOnDevice;
|
|
122
|
-
/** Injectable local runner (tests). */
|
|
123
48
|
localRunner?: typeof runLocalCommand;
|
|
124
49
|
}
|
|
125
|
-
/**
|
|
126
|
-
* Execute a command across planned targets. Pure orchestration over
|
|
127
|
-
* {@link runOnDevice} / {@link runLocalCommand}; testable by injecting either.
|
|
128
|
-
* The `self` target runs locally so `agents fleet update` upgrades this machine
|
|
129
|
-
* too instead of failing to ssh to itself. Per-device throws from a runner are
|
|
130
|
-
* recorded as `failed` so one bad device never aborts the rest.
|
|
131
|
-
*/
|
|
132
50
|
export declare function runFleet(targets: FleetTarget[], cmd: string[], opts?: RunFleetOptions): FleetRunResult[];
|
|
133
51
|
interface FanOutDeviceOptions {
|
|
134
|
-
/**
|
|
135
|
-
* Per-device deadline in milliseconds. When set, any probe that does not
|
|
136
|
-
* settle within this window is abandoned via `Promise.race` against a
|
|
137
|
-
* rejection timer and recorded as a `failed` result with the message
|
|
138
|
-
* `'timed out'`. There is no AbortController — the underlying probe
|
|
139
|
-
* continues running in the background; cancellation of the in-flight work
|
|
140
|
-
* is the caller's responsibility. In practice `probeRemoteAuth` relies on
|
|
141
|
-
* `sshExecAsync`'s own 15 s timer to kill the ssh child independently.
|
|
142
|
-
* The per-device ssh timeout passed directly to {@link sshExecAsync} is
|
|
143
|
-
* the first line of defence; this acts as a hard backstop so one slow
|
|
144
|
-
* device can never stall the entire fan-out past its budget.
|
|
145
|
-
*/
|
|
146
52
|
perDeviceTimeoutMs?: number;
|
|
147
53
|
}
|
|
148
|
-
/** Run one async probe per device in parallel, preserving input order. */
|
|
149
54
|
export declare function fanOutDevices<T, Target extends FanOutDeviceTarget = FanOutDeviceTarget>(targets: Target[], probe: (target: Target) => Promise<T>, opts?: FanOutDeviceOptions): Promise<FanOutDeviceResult<T>[]>;
|
|
150
55
|
export {};
|
|
@@ -1,25 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Fleet-wide device operations — pick online targets and run a command on each.
|
|
3
|
-
*
|
|
4
|
-
* Used by `agents fleet update` / `agents fleet run` (aliases of the same
|
|
5
|
-
* subcommands under `agents devices`). Offline devices are skipped with a
|
|
6
|
-
* reason so a single dead node never blocks the rest of the rollout. Per-device
|
|
7
|
-
* throws (misconfigured auth, etc.) become `failed` rows — they never abort
|
|
8
|
-
* the remaining devices.
|
|
9
|
-
*/
|
|
10
1
|
import { spawnSync } from 'child_process';
|
|
11
2
|
import { isSelfHost } from './self-host.js';
|
|
12
3
|
import { buildSshInvocation, sshTargetFor, writeAskpassShim } from './connect.js';
|
|
13
|
-
/** npm dist-tags / semver pins only — rejects shell metacharacters. */
|
|
14
4
|
const FLEET_VERSION_RE = /^[A-Za-z0-9._-]+$/;
|
|
15
|
-
/**
|
|
16
|
-
* Classify each registered device for a fleet operation.
|
|
17
|
-
*
|
|
18
|
-
* - Tailscale-offline → skip `offline`
|
|
19
|
-
* - No address → skip `no-address`
|
|
20
|
-
* - Everything else is a target (including this machine, reached over ssh when
|
|
21
|
-
* it has a registry address — same path as any other box).
|
|
22
|
-
*/
|
|
23
5
|
export function planFleetTargets(reg) {
|
|
24
6
|
const names = Object.keys(reg).sort();
|
|
25
7
|
return names.map((name) => {
|
|
@@ -36,38 +18,9 @@ export function planFleetTargets(reg) {
|
|
|
36
18
|
return { device };
|
|
37
19
|
});
|
|
38
20
|
}
|
|
39
|
-
/**
|
|
40
|
-
* Remote fan-out targets for the fleet health/drift gates (`fleet status`,
|
|
41
|
-
* `doctor --check --devices`): every planned device except this machine.
|
|
42
|
-
* Offline / no-address devices are kept — those are genuine faults a gate should
|
|
43
|
-
* surface — so their `skip` reason still flows through as an `unreachable` row.
|
|
44
|
-
*/
|
|
45
21
|
export function remoteFleetTargets(planned, self) {
|
|
46
|
-
// Exclude self by name AND by full identity (tailscale dnsName, loopback): a
|
|
47
|
-
// device referenced by its dnsName slipped past the bare name check and got a
|
|
48
|
-
// remote version+doctor dial back to THIS box, which orphaned on timeout and
|
|
49
|
-
// piled up (RUSH-2114). `isSelfHost` matches every alias the box answers to.
|
|
50
22
|
return planned.filter((t) => t.device.name !== self && !isSelfHost(t.device.name));
|
|
51
23
|
}
|
|
52
|
-
/**
|
|
53
|
-
* Decide whether a fleet-health target should skip the expensive version+doctor
|
|
54
|
-
* dials (`agents fleet status`). The cheap stats probe (~2.5s, same registry
|
|
55
|
-
* address) has already tried this box one step earlier. If it came back
|
|
56
|
-
* unreachable, dialing `agents --version` (15s) + `agents doctor --json` (30s)
|
|
57
|
-
* would almost certainly fail the same way — just 45s slower — so one
|
|
58
|
-
* genuinely-offline box would stall the whole matrix (the ~60s hang, RUSH-1964).
|
|
59
|
-
*
|
|
60
|
-
* We trust the stats verdict on the DEFAULT path, not only under
|
|
61
|
-
* `--refresh`/`--live`: `probeDeviceStats` and the version/doctor dials share
|
|
62
|
-
* one ssh path (`fleetDialTarget`), so reachability is not per-probe. The
|
|
63
|
-
* verdict is either freshly probed this run or daemon-warmed (~3min) with the
|
|
64
|
-
* live write-back from RUSH-1965, so a box that came online in the last few
|
|
65
|
-
* minutes is the only false-negative window — it renders `unreachable` until the
|
|
66
|
-
* next stats warm, which beats letting it hang the status glance for 45s.
|
|
67
|
-
*
|
|
68
|
-
* An existing skip (offline/no-address from {@link planFleetTargets})
|
|
69
|
-
* always wins — those are classified before any probe.
|
|
70
|
-
*/
|
|
71
24
|
export function fleetHealthSkip(currentSkip, stats) {
|
|
72
25
|
if (currentSkip)
|
|
73
26
|
return currentSkip;
|
|
@@ -75,7 +28,6 @@ export function fleetHealthSkip(currentSkip, stats) {
|
|
|
75
28
|
return 'unreachable';
|
|
76
29
|
return undefined;
|
|
77
30
|
}
|
|
78
|
-
/** Human label for a skip reason. */
|
|
79
31
|
export function skipLabel(reason) {
|
|
80
32
|
switch (reason) {
|
|
81
33
|
case 'offline':
|
|
@@ -84,12 +36,6 @@ export function skipLabel(reason) {
|
|
|
84
36
|
return 'no address';
|
|
85
37
|
}
|
|
86
38
|
}
|
|
87
|
-
/**
|
|
88
|
-
* Run `cmd` on one device via the same ssh path as `agents ssh <name> …`.
|
|
89
|
-
* Captures stdout/stderr (not inherited) so the fleet table can summarize.
|
|
90
|
-
* Throws from buildSshInvocation are returned as a non-zero result so a single
|
|
91
|
-
* misconfigured device cannot abort the fleet loop.
|
|
92
|
-
*/
|
|
93
39
|
export function runOnDevice(device, cmd, opts = {}) {
|
|
94
40
|
try {
|
|
95
41
|
const shim = writeAskpassShim();
|
|
@@ -113,18 +59,6 @@ export function runOnDevice(device, cmd, opts = {}) {
|
|
|
113
59
|
};
|
|
114
60
|
}
|
|
115
61
|
}
|
|
116
|
-
/**
|
|
117
|
-
* Run `cmd` on THIS machine directly — no ssh. Used by {@link runFleet} for the
|
|
118
|
-
* self target: a box frequently can't ssh to itself (no self-authorized key, as
|
|
119
|
-
* `agents fleet update` hit trying to reach zion from zion) and doesn't need to —
|
|
120
|
-
* `agents upgrade` etc. runs identically as a local process. Mirrors
|
|
121
|
-
* {@link runOnDevice}'s return shape and never throws. The argv is space-joined
|
|
122
|
-
* and evaluated by a shell — matching the POSIX-shell ssh path (so PATH-resolved
|
|
123
|
-
* `agents`, quoting, and `;`/`&&` behave the same). It does NOT replicate the
|
|
124
|
-
* powershell-device encoding runOnDevice uses (`connect.ts` base64 path): a
|
|
125
|
-
* Windows self runs under the default OS shell (cmd.exe), which still resolves
|
|
126
|
-
* `agents` on PATH for the only self commands that matter (`agents upgrade …`).
|
|
127
|
-
*/
|
|
128
62
|
export function runLocalCommand(cmd, opts = {}) {
|
|
129
63
|
try {
|
|
130
64
|
const res = spawnSync(cmd.join(' '), {
|
|
@@ -146,11 +80,6 @@ export function runLocalCommand(cmd, opts = {}) {
|
|
|
146
80
|
};
|
|
147
81
|
}
|
|
148
82
|
}
|
|
149
|
-
/**
|
|
150
|
-
* Build `agents upgrade --yes` argv, optionally pinned to a version/dist-tag.
|
|
151
|
-
* Rejects anything that is not a plain npm version/tag token so a version pin
|
|
152
|
-
* cannot inject shell metacharacters into the remote command line.
|
|
153
|
-
*/
|
|
154
83
|
export function upgradeCommand(version) {
|
|
155
84
|
if (version !== undefined && version !== '') {
|
|
156
85
|
if (!FLEET_VERSION_RE.test(version)) {
|
|
@@ -160,13 +89,6 @@ export function upgradeCommand(version) {
|
|
|
160
89
|
}
|
|
161
90
|
return ['agents', 'upgrade', '--yes'];
|
|
162
91
|
}
|
|
163
|
-
/**
|
|
164
|
-
* Execute a command across planned targets. Pure orchestration over
|
|
165
|
-
* {@link runOnDevice} / {@link runLocalCommand}; testable by injecting either.
|
|
166
|
-
* The `self` target runs locally so `agents fleet update` upgrades this machine
|
|
167
|
-
* too instead of failing to ssh to itself. Per-device throws from a runner are
|
|
168
|
-
* recorded as `failed` so one bad device never aborts the rest.
|
|
169
|
-
*/
|
|
170
92
|
export function runFleet(targets, cmd, opts = {}) {
|
|
171
93
|
const runner = opts.runner ?? runOnDevice;
|
|
172
94
|
const localRunner = opts.localRunner ?? runLocalCommand;
|
|
@@ -204,7 +126,6 @@ export function runFleet(targets, cmd, opts = {}) {
|
|
|
204
126
|
}
|
|
205
127
|
return results;
|
|
206
128
|
}
|
|
207
|
-
/** Run one async probe per device in parallel, preserving input order. */
|
|
208
129
|
export async function fanOutDevices(targets, probe, opts = {}) {
|
|
209
130
|
return Promise.all(targets.map(async (target) => {
|
|
210
131
|
if (target.skip) {
|
|
@@ -2,133 +2,63 @@ import { type AccountInfo } from '../agents.js';
|
|
|
2
2
|
import type { AgentId } from '../types.js';
|
|
3
3
|
import { type UsageSnapshot } from '../accounting/usage.js';
|
|
4
4
|
import { type AccountVerdict } from '../signin-badge.js';
|
|
5
|
-
/** An account's usage headroom rolled into one glanceable summary. */
|
|
6
5
|
export interface QuotaSummary {
|
|
7
|
-
/**
|
|
8
|
-
* `available` / `rate_limited` from the live usage windows, or `null` when
|
|
9
|
-
* there is no snapshot at all (no data yet, or the agent has no usage source).
|
|
10
|
-
*/
|
|
11
6
|
status: 'available' | 'rate_limited' | 'out_of_credits' | null;
|
|
12
|
-
/** Canonical launch verdict. Kept separate from utilization for JSON clients. */
|
|
13
7
|
verdict: 'available' | 'rate_limited' | 'out_of_credits' | 'unavailable';
|
|
14
|
-
/** Max utilization across blocking windows (0-100, rounded), or null when unknown. */
|
|
15
8
|
usedPercent: number | null;
|
|
16
|
-
/** True when the snapshot is a cached `last_seen`, not a fresh `live` read. */
|
|
17
9
|
stale: boolean;
|
|
18
|
-
/** ISO-8601 timestamp for the underlying usage observation. */
|
|
19
10
|
capturedAt: string | null;
|
|
20
|
-
/** Earliest reset across blocking windows, ISO-8601. */
|
|
21
11
|
resetsAt: string | null;
|
|
22
|
-
/** Why quota could not be evaluated; null when a verdict is available. */
|
|
23
12
|
unavailableReason: string | null;
|
|
24
13
|
}
|
|
25
|
-
/** One installed (agent, version) on a host, fully resolved. */
|
|
26
14
|
export interface HarnessRow {
|
|
27
15
|
agent: AgentId;
|
|
28
16
|
version: string;
|
|
29
|
-
/** Account display label (email / id), or null when signed out or unidentifiable. */
|
|
30
17
|
account: string | null;
|
|
31
18
|
signedIn: boolean;
|
|
32
19
|
quota: QuotaSummary;
|
|
33
|
-
/** signed in AND not rate-limited — usable for a run right now. */
|
|
34
20
|
ready: boolean;
|
|
35
|
-
/** When `!ready`, a short reason ("signed out" / "rate-limited"). */
|
|
36
21
|
reason?: string;
|
|
37
22
|
verdict: AccountVerdict;
|
|
38
23
|
fix: string | null;
|
|
39
|
-
/** The live usage snapshot backing `quota`, or null when none was collected. */
|
|
40
24
|
snapshot: UsageSnapshot | null;
|
|
41
|
-
/** Raw error string from the usage fetch, if any (headless scope, expired, etc.). */
|
|
42
25
|
usageError: string | null;
|
|
43
26
|
}
|
|
44
|
-
/** One host's rows, or the reason it produced none. */
|
|
45
27
|
export interface HostHarnessResult {
|
|
46
28
|
host: string;
|
|
47
29
|
rows: HarnessRow[];
|
|
48
|
-
/** Set when the host failed to probe (offline / error). */
|
|
49
30
|
error?: string;
|
|
50
|
-
/** Set when the host was skipped (control / offline). */
|
|
51
31
|
skipped?: string;
|
|
52
32
|
}
|
|
53
|
-
/** An account collapsed across the installs on one host that share it. */
|
|
54
33
|
interface AccountGroup {
|
|
55
|
-
/** Account display label, or null for the signed-out bucket. */
|
|
56
34
|
account: string | null;
|
|
57
|
-
/** Distinct agent ids using this account, sorted. */
|
|
58
35
|
agents: AgentId[];
|
|
59
|
-
/** How many (agent, version) installs share this account. */
|
|
60
36
|
installs: number;
|
|
61
|
-
/** True when at least one install under this account is signed in. */
|
|
62
37
|
signedIn: boolean;
|
|
63
|
-
/** Representative quota — an account maps to one provider identity, so its usage is shared. */
|
|
64
38
|
quota: QuotaSummary;
|
|
65
39
|
ready: boolean;
|
|
66
40
|
reason?: string;
|
|
67
41
|
}
|
|
68
|
-
/**
|
|
69
|
-
* Roll one usage snapshot into a {@link QuotaSummary}. Mirrors the blocking-window
|
|
70
|
-
* selection of {@link deriveUsageStatusFromSnapshot} (the model-specific
|
|
71
|
-
* `sonnet_week` sub-limit is excluded so hitting it doesn't read as a throttled
|
|
72
|
-
* account) and takes the highest utilization across those windows. Pure.
|
|
73
|
-
*/
|
|
74
42
|
export declare function summarizeQuota(snapshot: UsageSnapshot | null | undefined, unavailableReason?: string | null, accountStatus?: AccountInfo['usageStatus']): QuotaSummary;
|
|
75
|
-
/**
|
|
76
|
-
* Scope/permission failures on a worker mean the usage endpoint cannot be read.
|
|
77
|
-
* They are not evidence of exhausted credits, even when stale account metadata
|
|
78
|
-
* previously carried that coarse status.
|
|
79
|
-
*/
|
|
80
43
|
export declare function summarizeObservedQuota(snapshot: UsageSnapshot | null | undefined, error: string | null | undefined, accountStatus?: AccountInfo['usageStatus']): {
|
|
81
44
|
quota: QuotaSummary;
|
|
82
45
|
unverified: boolean;
|
|
83
46
|
};
|
|
84
|
-
/**
|
|
85
|
-
* A scope/permission failure on the usage endpoint is not a credit claim.
|
|
86
|
-
* Strip utilization and, only when auth still looks healthy, surface
|
|
87
|
-
* `unverified` instead of `live`/`rate_limited`. A real auth failure
|
|
88
|
-
* (expired/revoked/missing) stays the auth failure.
|
|
89
|
-
*/
|
|
90
47
|
export declare function applyUsageHonesty(verdict: AccountVerdict, usage: QuotaSummary | null): {
|
|
91
48
|
verdict: AccountVerdict;
|
|
92
49
|
usage: QuotaSummary | null;
|
|
93
50
|
};
|
|
94
|
-
/**
|
|
95
|
-
* "Ready" = signed in AND not rate-limited. A missing quota snapshot does NOT
|
|
96
|
-
* block readiness: the account is signed in and usable, we just have no live
|
|
97
|
-
* utilization to show. Pure.
|
|
98
|
-
*/
|
|
99
51
|
export declare function computeReady(signedIn: boolean, quota: QuotaSummary): {
|
|
100
52
|
ready: boolean;
|
|
101
53
|
reason?: string;
|
|
102
54
|
};
|
|
103
|
-
/**
|
|
104
|
-
* Enumerate every installed (agent, version) on THIS host, resolve account +
|
|
105
|
-
* sign-in + quota + ready, and return the rows. Signed-out installs are kept
|
|
106
|
-
* (they are the actionable ones), unlike the auth-health probe which drops
|
|
107
|
-
* `unconfigured`. Quota is cache-only unless `refresh` is set.
|
|
108
|
-
*/
|
|
109
55
|
export declare function collectLocalHarnessInventory(opts?: {
|
|
110
56
|
agents?: readonly AgentId[];
|
|
111
57
|
refresh?: boolean;
|
|
112
58
|
}): Promise<HarnessRow[]>;
|
|
113
|
-
/**
|
|
114
|
-
* Collapse a host's rows into one {@link AccountGroup} per distinct account (the
|
|
115
|
-
* signed-out installs fall into the `null` bucket). Because an account label maps
|
|
116
|
-
* to a single provider identity, every install sharing it shares one quota, so
|
|
117
|
-
* the group's quota is taken from the first row carrying real data (preferring a
|
|
118
|
-
* `rate_limited` row so a throttle is never hidden). Pure.
|
|
119
|
-
*/
|
|
120
59
|
export declare function groupByAccount(rows: HarnessRow[]): AccountGroup[];
|
|
121
|
-
/** Short human quota cell: "12%", "limited", or "—" when no data. */
|
|
122
60
|
export declare function formatQuota(quota: QuotaSummary): string;
|
|
123
|
-
/**
|
|
124
|
-
* Render the device × harness table: one block per device, one row per installed
|
|
125
|
-
* (agent, version) with account / signed-in / quota / ready. Pure.
|
|
126
|
-
*/
|
|
127
61
|
export declare function renderHarnessMatrix(results: HostHarnessResult[]): string[];
|
|
128
|
-
/**
|
|
129
|
-
* Render the device × account table: one block per device, one row per distinct
|
|
130
|
-
* account (installs sharing it collapsed), showing which harnesses use it. Pure.
|
|
131
|
-
*/
|
|
132
62
|
export declare function renderAccountsMatrix(results: HostHarnessResult[]): string[];
|
|
133
63
|
interface AccountFleetMatrixRow {
|
|
134
64
|
harness: AgentId;
|
|
@@ -139,11 +69,6 @@ interface AccountFleetMatrixRow {
|
|
|
139
69
|
verdict: AccountVerdict;
|
|
140
70
|
}>;
|
|
141
71
|
}
|
|
142
|
-
/**
|
|
143
|
-
* Account × device matrix used by `agents accounts list --fleet`.
|
|
144
|
-
* Rows are logical accounts, not installations. Columns come from the
|
|
145
|
-
* daemon-state observations already joined onto each account row.
|
|
146
|
-
*/
|
|
147
72
|
export declare function renderAccountFleetMatrix(rows: AccountFleetMatrixRow[], opts?: {
|
|
148
73
|
uncoveredDevices?: string[];
|
|
149
74
|
}): string[];
|
|
@@ -1,18 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Per-device harness inventory: for every installed (agent, version) on a host,
|
|
3
|
-
* resolve its account identity, sign-in state, usage quota, and a single "ready"
|
|
4
|
-
* verdict — the data behind `agents devices harnesses` and `agents devices
|
|
5
|
-
* accounts`.
|
|
6
|
-
*
|
|
7
|
-
* The collector ({@link collectLocalHarnessInventory}) runs on ONE host (the
|
|
8
|
-
* `--local` worker); the command fans it out over SSH exactly like
|
|
9
|
-
* `agents devices ping`. Everything else here is pure so the table/grouping/ready
|
|
10
|
-
* logic is unit-tested without a shell or a network.
|
|
11
|
-
*
|
|
12
|
-
* Quota is read cache-only by default (the daemon warms the usage cache every few
|
|
13
|
-
* minutes), so a glance never blocks on a per-account network fetch; `--refresh`
|
|
14
|
-
* opts into a live read.
|
|
15
|
-
*/
|
|
16
1
|
import chalk from 'chalk';
|
|
17
2
|
import { ALL_AGENT_IDS, accountDisplayLabel, getAccountInfo, } from '../agents.js';
|
|
18
3
|
import { deriveUsageStatusFromSnapshot, liveUsageWindows, classifyUsageErrorKind, getUsageInfoByIdentity, getUsageLookupKey, usageErrorForDisplay, } from '../accounting/usage.js';
|
|
@@ -23,20 +8,8 @@ import { authCacheKey, readAuthHealthCache } from '../auth-health.js';
|
|
|
23
8
|
import { machineId } from '../machine-id.js';
|
|
24
9
|
import { fixFor } from '../signin-badge.js';
|
|
25
10
|
import { harnessWorkerIsPerDevice } from '../harness-auth-capabilities.js';
|
|
26
|
-
/**
|
|
27
|
-
* Roll one usage snapshot into a {@link QuotaSummary}. Mirrors the blocking-window
|
|
28
|
-
* selection of {@link deriveUsageStatusFromSnapshot} (the model-specific
|
|
29
|
-
* `sonnet_week` sub-limit is excluded so hitting it doesn't read as a throttled
|
|
30
|
-
* account) and takes the highest utilization across those windows. Pure.
|
|
31
|
-
*/
|
|
32
11
|
export function summarizeQuota(snapshot, unavailableReason = null, accountStatus = null) {
|
|
33
12
|
if (!snapshot || snapshot.windows.length === 0) {
|
|
34
|
-
// An active refusal marker (persisted out_of_credits, or an unexpired
|
|
35
|
-
// session_limit) blocks even when there are no live utilization windows —
|
|
36
|
-
// which is the normal state hours/days after a run, once cached windows
|
|
37
|
-
// expire. Check it BEFORE trusting the coarse account status, which is
|
|
38
|
-
// hardcoded 'available' for a signed-in Claude; otherwise a tokens-exhausted
|
|
39
|
-
// account reads ready:true here (RUSH-3018 finding, `agents devices harnesses`).
|
|
40
13
|
const marker = snapshot?.unavailable;
|
|
41
14
|
let status = accountStatus;
|
|
42
15
|
let reason = unavailableReason;
|
|
@@ -59,24 +32,14 @@ export function summarizeQuota(snapshot, unavailableReason = null, accountStatus
|
|
|
59
32
|
unavailableReason: status ? null : (reason ?? 'usage unavailable'),
|
|
60
33
|
};
|
|
61
34
|
}
|
|
62
|
-
// Percentage and status MUST read from the SAME live windows, or a window past
|
|
63
|
-
// its reset (usedPercent from the PREVIOUS period) makes the status `available`
|
|
64
|
-
// while the displayed percentage still shows a stale ~100% (#3705). Select the
|
|
65
|
-
// live set first, then narrow to blocking exactly as
|
|
66
|
-
// `deriveUsageStatusFromSnapshot` does.
|
|
67
35
|
const live = liveUsageWindows(snapshot);
|
|
68
36
|
const blocking = live.filter((w) => w.key !== 'sonnet_week');
|
|
69
37
|
const windows = blocking.length > 0 ? blocking : live;
|
|
70
38
|
const derived = deriveUsageStatusFromSnapshot(snapshot);
|
|
71
39
|
const status = accountStatus === 'out_of_credits' ? accountStatus : derived;
|
|
72
|
-
// Every window rolled over: no live utilization to show (status is `available`).
|
|
73
40
|
let usedPercent = windows.length > 0
|
|
74
41
|
? Math.round(Math.max(...windows.map((w) => w.usedPercent)))
|
|
75
42
|
: 0;
|
|
76
|
-
// Never show 100% for an account that isn't actually capped: a genuinely-100
|
|
77
|
-
// blocking window makes the status `rate_limited` (rendered "limited"), so a
|
|
78
|
-
// rounded 100 on an `available` account (e.g. 99.6% → 100) would read as maxed
|
|
79
|
-
// next to a "ready" verdict. Cap the display at 99 to keep the two consistent.
|
|
80
43
|
if (status !== 'rate_limited' && usedPercent >= 100)
|
|
81
44
|
usedPercent = 99;
|
|
82
45
|
return {
|
|
@@ -92,11 +55,6 @@ export function summarizeQuota(snapshot, unavailableReason = null, accountStatus
|
|
|
92
55
|
unavailableReason: null,
|
|
93
56
|
};
|
|
94
57
|
}
|
|
95
|
-
/**
|
|
96
|
-
* Scope/permission failures on a worker mean the usage endpoint cannot be read.
|
|
97
|
-
* They are not evidence of exhausted credits, even when stale account metadata
|
|
98
|
-
* previously carried that coarse status.
|
|
99
|
-
*/
|
|
100
58
|
export function summarizeObservedQuota(snapshot, error, accountStatus = null) {
|
|
101
59
|
const displayError = usageErrorForDisplay(error);
|
|
102
60
|
const unverified = classifyUsageErrorKind(error) === 'headless-scope'
|
|
@@ -108,12 +66,6 @@ export function summarizeObservedQuota(snapshot, error, accountStatus = null) {
|
|
|
108
66
|
unverified,
|
|
109
67
|
};
|
|
110
68
|
}
|
|
111
|
-
/**
|
|
112
|
-
* A scope/permission failure on the usage endpoint is not a credit claim.
|
|
113
|
-
* Strip utilization and, only when auth still looks healthy, surface
|
|
114
|
-
* `unverified` instead of `live`/`rate_limited`. A real auth failure
|
|
115
|
-
* (expired/revoked/missing) stays the auth failure.
|
|
116
|
-
*/
|
|
117
69
|
export function applyUsageHonesty(verdict, usage) {
|
|
118
70
|
if (!usage)
|
|
119
71
|
return { verdict, usage };
|
|
@@ -137,11 +89,6 @@ export function applyUsageHonesty(verdict, usage) {
|
|
|
137
89
|
}
|
|
138
90
|
return { verdict, usage };
|
|
139
91
|
}
|
|
140
|
-
/**
|
|
141
|
-
* "Ready" = signed in AND not rate-limited. A missing quota snapshot does NOT
|
|
142
|
-
* block readiness: the account is signed in and usable, we just have no live
|
|
143
|
-
* utilization to show. Pure.
|
|
144
|
-
*/
|
|
145
92
|
export function computeReady(signedIn, quota) {
|
|
146
93
|
if (!signedIn)
|
|
147
94
|
return { ready: false, reason: 'signed out' };
|
|
@@ -151,12 +98,6 @@ export function computeReady(signedIn, quota) {
|
|
|
151
98
|
return { ready: false, reason: 'out of credits' };
|
|
152
99
|
return { ready: true };
|
|
153
100
|
}
|
|
154
|
-
/**
|
|
155
|
-
* Enumerate every installed (agent, version) on THIS host, resolve account +
|
|
156
|
-
* sign-in + quota + ready, and return the rows. Signed-out installs are kept
|
|
157
|
-
* (they are the actionable ones), unlike the auth-health probe which drops
|
|
158
|
-
* `unconfigured`. Quota is cache-only unless `refresh` is set.
|
|
159
|
-
*/
|
|
160
101
|
export async function collectLocalHarnessInventory(opts) {
|
|
161
102
|
const agentIds = opts?.agents ?? ALL_AGENT_IDS;
|
|
162
103
|
const pending = [];
|
|
@@ -166,8 +107,6 @@ export async function collectLocalHarnessInventory(opts) {
|
|
|
166
107
|
const home = getVersionHomePath(agent, version);
|
|
167
108
|
const info = await getAccountInfo(agent, home).catch(() => null);
|
|
168
109
|
pending.push({ agent, version, info });
|
|
169
|
-
// Only signed-in installs can have usage; a signed-out one has no identity
|
|
170
|
-
// to look up (and would just widen the fetch set for nothing).
|
|
171
110
|
if (info?.signedIn) {
|
|
172
111
|
usageInputs.push({ agentId: agent, info, home, cliVersion: version });
|
|
173
112
|
}
|
|
@@ -183,9 +122,6 @@ export async function collectLocalHarnessInventory(opts) {
|
|
|
183
122
|
const key = getUsageLookupKey(info);
|
|
184
123
|
const usage = key ? usageByKey.get(key) : undefined;
|
|
185
124
|
const snapshot = usage?.snapshot ?? null;
|
|
186
|
-
// Normalize the internal 'stale' not-collected sentinel out before it reaches
|
|
187
|
-
// the JSON `quota.unavailableReason` — same leak PHNX-3348 fixed for
|
|
188
|
-
// `agents view --json`, here for `agents devices harnesses/accounts --json`.
|
|
189
125
|
const observed = summarizeObservedQuota(snapshot, usage?.error, info?.usageStatus ?? null);
|
|
190
126
|
const quota = observed.quota;
|
|
191
127
|
const signedIn = !!info?.signedIn;
|
|
@@ -218,20 +154,10 @@ export async function collectLocalHarnessInventory(opts) {
|
|
|
218
154
|
};
|
|
219
155
|
});
|
|
220
156
|
}
|
|
221
|
-
/**
|
|
222
|
-
* Collapse a host's rows into one {@link AccountGroup} per distinct account (the
|
|
223
|
-
* signed-out installs fall into the `null` bucket). Because an account label maps
|
|
224
|
-
* to a single provider identity, every install sharing it shares one quota, so
|
|
225
|
-
* the group's quota is taken from the first row carrying real data (preferring a
|
|
226
|
-
* `rate_limited` row so a throttle is never hidden). Pure.
|
|
227
|
-
*/
|
|
228
157
|
export function groupByAccount(rows) {
|
|
229
158
|
const order = [];
|
|
230
159
|
const groups = new Map();
|
|
231
160
|
for (const row of rows) {
|
|
232
|
-
// Signed-out rows share one bucket under a sentinel key. Use the NUL-prefixed
|
|
233
|
-
// literal (a TS `\0` escape, NOT a raw NUL byte in the source) so the key can
|
|
234
|
-
// never collide with a real account label named literally "signed-out".
|
|
235
161
|
const key = row.account ?? '\0signed-out';
|
|
236
162
|
if (!groups.has(key)) {
|
|
237
163
|
groups.set(key, []);
|
|
@@ -244,8 +170,6 @@ export function groupByAccount(rows) {
|
|
|
244
170
|
const account = members[0].account;
|
|
245
171
|
const agents = [...new Set(members.map((m) => m.agent))].sort();
|
|
246
172
|
const signedIn = members.some((m) => m.signedIn);
|
|
247
|
-
// Prefer a throttled member's quota (a hidden rate-limit is the dangerous
|
|
248
|
-
// miss), else the first member with any real usage data, else the first row.
|
|
249
173
|
const withData = members.filter((m) => m.quota.status !== null);
|
|
250
174
|
const rep = withData.find((m) => m.quota.status === 'out_of_credits') ??
|
|
251
175
|
withData.find((m) => m.quota.status === 'rate_limited') ?? withData[0] ?? members[0];
|
|
@@ -262,7 +186,6 @@ export function groupByAccount(rows) {
|
|
|
262
186
|
};
|
|
263
187
|
});
|
|
264
188
|
}
|
|
265
|
-
/** Short human quota cell: "12%", "limited", or "—" when no data. */
|
|
266
189
|
export function formatQuota(quota) {
|
|
267
190
|
if (quota.status === 'out_of_credits')
|
|
268
191
|
return 'no credits';
|
|
@@ -272,16 +195,9 @@ export function formatQuota(quota) {
|
|
|
272
195
|
return '—';
|
|
273
196
|
return `${quota.usedPercent}%${quota.stale ? '*' : ''}`;
|
|
274
197
|
}
|
|
275
|
-
// ---------------------------------------------------------------------------
|
|
276
|
-
// Rendering. Each cell is padded as PLAIN text to a computed width, then colored
|
|
277
|
-
// — coloring first would let chalk's escape codes throw off the alignment.
|
|
278
|
-
// chalk auto-disables color off a TTY, so the strings tests assert on are plain.
|
|
279
|
-
// ---------------------------------------------------------------------------
|
|
280
|
-
/** Pad plain `text` to `width`, then apply `paint`. Alignment survives coloring. */
|
|
281
198
|
function cell(text, width, paint) {
|
|
282
199
|
return paint(text.padEnd(width));
|
|
283
200
|
}
|
|
284
|
-
/** Color for a quota value: red limited, yellow ≥80%, green below, dim unknown. */
|
|
285
201
|
function quotaPaint(quota) {
|
|
286
202
|
if (quota.status === 'rate_limited')
|
|
287
203
|
return chalk.red;
|
|
@@ -289,18 +205,15 @@ function quotaPaint(quota) {
|
|
|
289
205
|
return chalk.dim;
|
|
290
206
|
return quota.usedPercent >= 80 ? chalk.yellow : chalk.green;
|
|
291
207
|
}
|
|
292
|
-
/** The ready cell text + color: green "ready", else the reason. */
|
|
293
208
|
function readyCell(ready, reason, width) {
|
|
294
209
|
if (ready)
|
|
295
210
|
return cell('ready', width, chalk.green);
|
|
296
211
|
const label = reason ?? 'not ready';
|
|
297
212
|
return cell(label, width, reason === 'signed out' ? chalk.gray : chalk.yellow);
|
|
298
213
|
}
|
|
299
|
-
/** The signed-in cell — three chars so the column stays aligned. */
|
|
300
214
|
function signedCell(signedIn) {
|
|
301
215
|
return signedIn ? chalk.green('yes') : chalk.gray('no ');
|
|
302
216
|
}
|
|
303
|
-
/** A host note (skipped / error / no installs), or '' when the host has rows. */
|
|
304
217
|
function hostNote(result) {
|
|
305
218
|
if (result.skipped)
|
|
306
219
|
return chalk.dim(` ${result.skipped}`);
|
|
@@ -310,15 +223,10 @@ function hostNote(result) {
|
|
|
310
223
|
return chalk.dim(' no harnesses installed');
|
|
311
224
|
return '';
|
|
312
225
|
}
|
|
313
|
-
/** Widest string in a list, floored at `min`. */
|
|
314
226
|
function colWidth(values, min) {
|
|
315
227
|
return Math.max(min, ...values.map((v) => v.length));
|
|
316
228
|
}
|
|
317
229
|
const QUOTA_W = 7;
|
|
318
|
-
/**
|
|
319
|
-
* Render the device × harness table: one block per device, one row per installed
|
|
320
|
-
* (agent, version) with account / signed-in / quota / ready. Pure.
|
|
321
|
-
*/
|
|
322
230
|
export function renderHarnessMatrix(results) {
|
|
323
231
|
const lines = [chalk.bold('Fleet harnesses')];
|
|
324
232
|
const allRows = results.flatMap((r) => r.rows);
|
|
@@ -338,10 +246,6 @@ export function renderHarnessMatrix(results) {
|
|
|
338
246
|
lines.push(chalk.gray(' quota = highest window utilization (* = cached) · ready = signed in and not rate-limited'));
|
|
339
247
|
return lines;
|
|
340
248
|
}
|
|
341
|
-
/**
|
|
342
|
-
* Render the device × account table: one block per device, one row per distinct
|
|
343
|
-
* account (installs sharing it collapsed), showing which harnesses use it. Pure.
|
|
344
|
-
*/
|
|
345
249
|
export function renderAccountsMatrix(results) {
|
|
346
250
|
const lines = [chalk.bold('Fleet accounts')];
|
|
347
251
|
const grouped = results.map((r) => ({ ...r, groups: groupByAccount(r.rows) }));
|
|
@@ -368,11 +272,6 @@ function fleetVerdictLabel(verdict) {
|
|
|
368
272
|
return 'LIMITED';
|
|
369
273
|
return verdict.toUpperCase();
|
|
370
274
|
}
|
|
371
|
-
/**
|
|
372
|
-
* Account × device matrix used by `agents accounts list --fleet`.
|
|
373
|
-
* Rows are logical accounts, not installations. Columns come from the
|
|
374
|
-
* daemon-state observations already joined onto each account row.
|
|
375
|
-
*/
|
|
376
275
|
export function renderAccountFleetMatrix(rows, opts = {}) {
|
|
377
276
|
const devices = [...new Set(rows.flatMap((row) => row.devices.map((device) => device.device)))].sort();
|
|
378
277
|
const accountLabels = rows.map((row) => `${row.harness}#${row.name ?? 'unnamed'} ${row.identityLabel}`);
|