@phnx-labs/agents-cli 1.22.120 → 1.22.121
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +227 -0
- package/README.md +19 -2
- package/dist/bootstrap.d.ts +0 -15
- package/dist/bootstrap.js +10 -409
- package/dist/cli/command-registry.d.ts +0 -58
- package/dist/cli/command-registry.js +2 -74
- package/dist/commands/accounts.d.ts +0 -17
- package/dist/commands/accounts.js +1 -52
- package/dist/commands/alias.d.ts +0 -12
- package/dist/commands/alias.js +0 -6
- package/dist/commands/apply.d.ts +0 -15
- package/dist/commands/apply.js +0 -63
- package/dist/commands/audit.d.ts +0 -12
- package/dist/commands/audit.js +0 -13
- package/dist/commands/auth.js +4 -12
- package/dist/commands/beta.d.ts +0 -6
- package/dist/commands/beta.js +2 -6
- package/dist/commands/browser-sessions-picker.d.ts +0 -8
- package/dist/commands/browser-sessions-picker.js +0 -26
- package/dist/commands/browser.d.ts +0 -57
- package/dist/commands/browser.js +0 -80
- package/dist/commands/budget.d.ts +0 -13
- package/dist/commands/budget.js +0 -2
- package/dist/commands/cli.d.ts +0 -12
- package/dist/commands/cli.js +0 -4
- package/dist/commands/cloud.d.ts +0 -9
- package/dist/commands/cloud.js +0 -43
- package/dist/commands/commands.d.ts +0 -9
- package/dist/commands/commands.js +0 -18
- package/dist/commands/computer-sessions-picker.d.ts +0 -11
- package/dist/commands/computer-sessions-picker.js +0 -29
- package/dist/commands/computer.d.ts +0 -62
- package/dist/commands/computer.js +3 -114
- package/dist/commands/config.d.ts +0 -14
- package/dist/commands/config.js +21 -60
- package/dist/commands/cost.d.ts +0 -11
- package/dist/commands/cost.js +1 -17
- package/dist/commands/daemon-test-harness.d.ts +0 -32
- package/dist/commands/daemon-test-harness.js +1 -36
- package/dist/commands/daemon.d.ts +0 -46
- package/dist/commands/daemon.js +8 -255
- package/dist/commands/detach-core.d.ts +0 -28
- package/dist/commands/detach-core.js +0 -30
- package/dist/commands/detach.d.ts +1 -12
- package/dist/commands/detach.js +16 -52
- package/dist/commands/device-config-test-harness.js +0 -12
- package/dist/commands/doctor.d.ts +0 -103
- package/dist/commands/doctor.js +3 -279
- package/dist/commands/events.d.ts +0 -29
- package/dist/commands/events.js +1 -55
- package/dist/commands/exec.d.ts +0 -163
- package/dist/commands/exec.js +15 -964
- package/dist/commands/factory.d.ts +0 -6
- package/dist/commands/factory.js +0 -2
- package/dist/commands/feed-watch.js +0 -20
- package/dist/commands/feed.d.ts +0 -38
- package/dist/commands/feed.js +1 -151
- package/dist/commands/feedback.d.ts +0 -5
- package/dist/commands/feedback.js +0 -5
- package/dist/commands/fleet-capture.d.ts +0 -12
- package/dist/commands/fleet-capture.js +1 -39
- package/dist/commands/focus.d.ts +6 -94
- package/dist/commands/focus.js +13 -183
- package/dist/commands/fork.d.ts +0 -21
- package/dist/commands/fork.js +0 -45
- package/dist/commands/funnel.d.ts +0 -3
- package/dist/commands/go.d.ts +2 -71
- package/dist/commands/go.js +5 -99
- package/dist/commands/harness-hooks.d.ts +0 -41
- package/dist/commands/harness-hooks.js +0 -48
- package/dist/commands/harness-wizard.d.ts +0 -137
- package/dist/commands/harness-wizard.js +0 -109
- package/dist/commands/harness.d.ts +0 -63
- package/dist/commands/harness.js +0 -103
- package/dist/commands/hooks.d.ts +0 -9
- package/dist/commands/hooks.js +0 -26
- package/dist/commands/humans.d.ts +0 -8
- package/dist/commands/humans.js +0 -8
- package/dist/commands/import.d.ts +0 -22
- package/dist/commands/import.js +0 -79
- package/dist/commands/insights.d.ts +0 -37
- package/dist/commands/insights.js +3 -115
- package/dist/commands/inspect.d.ts +0 -117
- package/dist/commands/inspect.js +2 -448
- package/dist/commands/lease.d.ts +0 -28
- package/dist/commands/lease.js +0 -43
- package/dist/commands/logs.d.ts +0 -23
- package/dist/commands/logs.js +0 -30
- package/dist/commands/mailboxes.d.ts +0 -18
- package/dist/commands/mailboxes.js +0 -29
- package/dist/commands/mcp.d.ts +0 -9
- package/dist/commands/mcp.js +0 -53
- package/dist/commands/memory.d.ts +0 -7
- package/dist/commands/memory.js +0 -7
- package/dist/commands/menubar.d.ts +0 -8
- package/dist/commands/menubar.js +0 -24
- package/dist/commands/message.d.ts +0 -23
- package/dist/commands/message.js +0 -50
- package/dist/commands/mine.d.ts +0 -22
- package/dist/commands/mine.js +0 -21
- package/dist/commands/models.d.ts +0 -8
- package/dist/commands/models.js +0 -33
- package/dist/commands/modes.d.ts +0 -10
- package/dist/commands/modes.js +0 -13
- package/dist/commands/monitors.d.ts +0 -9
- package/dist/commands/monitors.js +3 -160
- package/dist/commands/open.d.ts +0 -26
- package/dist/commands/open.js +0 -10
- package/dist/commands/output.d.ts +0 -18
- package/dist/commands/output.js +1 -34
- package/dist/commands/packages-materialize.d.ts +0 -11
- package/dist/commands/packages-materialize.js +0 -3
- package/dist/commands/packages.d.ts +0 -10
- package/dist/commands/packages.js +0 -50
- package/dist/commands/perf.d.ts +0 -41
- package/dist/commands/perf.js +0 -55
- package/dist/commands/permissions.d.ts +0 -9
- package/dist/commands/permissions.js +0 -43
- package/dist/commands/plugins.d.ts +0 -14
- package/dist/commands/plugins.js +2 -55
- package/dist/commands/profiles.d.ts +0 -25
- package/dist/commands/profiles.js +0 -27
- package/dist/commands/projects-todo.d.ts +2 -0
- package/dist/commands/projects-todo.js +132 -0
- package/dist/commands/projects.d.ts +0 -85
- package/dist/commands/projects.js +344 -291
- package/dist/commands/prune.js +0 -30
- package/dist/commands/ps-roster.d.ts +92 -0
- package/dist/commands/ps-roster.js +744 -0
- package/dist/commands/ps.d.ts +6 -0
- package/dist/commands/ps.js +98 -0
- package/dist/commands/refresh-rules.d.ts +0 -13
- package/dist/commands/refresh-rules.js +0 -14
- package/dist/commands/reminders.d.ts +0 -7
- package/dist/commands/repo.d.ts +0 -89
- package/dist/commands/repo.js +7 -205
- package/dist/commands/resource-view.d.ts +0 -33
- package/dist/commands/resource-view.js +0 -49
- package/dist/commands/resume.d.ts +1 -19
- package/dist/commands/resume.js +0 -50
- package/dist/commands/route.d.ts +0 -10
- package/dist/commands/route.js +0 -19
- package/dist/commands/routines.d.ts +0 -42
- package/dist/commands/routines.js +5 -290
- package/dist/commands/routines.test-fixture.d.ts +0 -34
- package/dist/commands/routines.test-fixture.js +4 -100
- package/dist/commands/rules.d.ts +0 -9
- package/dist/commands/rules.js +1 -6
- package/dist/commands/run-account-picker.d.ts +0 -59
- package/dist/commands/run-account-picker.js +0 -71
- package/dist/commands/run-broadcast.d.ts +0 -9
- package/dist/commands/run-broadcast.js +0 -7
- package/dist/commands/run-cloud.d.ts +0 -15
- package/dist/commands/run-cloud.js +0 -37
- package/dist/commands/run-device-picker.d.ts +0 -25
- package/dist/commands/run-device-picker.js +1 -53
- package/dist/commands/secrets-passthrough.d.ts +0 -31
- package/dist/commands/secrets-passthrough.js +0 -10
- package/dist/commands/send.d.ts +0 -20
- package/dist/commands/send.js +14 -18
- package/dist/commands/sessions-backfill.d.ts +0 -7
- package/dist/commands/sessions-backfill.js +1 -16
- package/dist/commands/sessions-backup-setup.js +0 -11
- package/dist/commands/sessions-bookmark.d.ts +0 -8
- package/dist/commands/sessions-bookmark.js +0 -28
- package/dist/commands/sessions-browser.d.ts +2 -117
- package/dist/commands/sessions-browser.js +5 -243
- package/dist/commands/sessions-export.d.ts +1 -26
- package/dist/commands/sessions-export.js +3 -81
- package/dist/commands/sessions-import.d.ts +0 -14
- package/dist/commands/sessions-import.js +0 -59
- package/dist/commands/sessions-inject.d.ts +0 -60
- package/dist/commands/sessions-inject.js +3 -96
- package/dist/commands/sessions-migrate.d.ts +2 -37
- package/dist/commands/sessions-migrate.js +7 -159
- package/dist/commands/sessions-optimize.d.ts +0 -12
- package/dist/commands/sessions-picker-factory.d.ts +0 -7
- package/dist/commands/sessions-picker-factory.js +0 -8
- package/dist/commands/sessions-picker.d.ts +4 -103
- package/dist/commands/sessions-picker.js +13 -352
- package/dist/commands/sessions-render.d.ts +1 -2
- package/dist/commands/sessions-render.js +3 -7
- package/dist/commands/sessions-resume.d.ts +1 -24
- package/dist/commands/sessions-resume.js +2 -65
- package/dist/commands/sessions-share.d.ts +1 -9
- package/dist/commands/sessions-share.js +1 -45
- package/dist/commands/sessions-stats.d.ts +0 -24
- package/dist/commands/sessions-stats.js +0 -49
- package/dist/commands/sessions-stop.d.ts +1 -20
- package/dist/commands/sessions-stop.js +4 -9
- package/dist/commands/sessions-tail.d.ts +1 -19
- package/dist/commands/sessions-tail.js +3 -36
- package/dist/commands/sessions-trace.d.ts +5 -36
- package/dist/commands/sessions-trace.js +7 -82
- package/dist/commands/sessions.d.ts +1 -666
- package/dist/commands/sessions.js +30 -2279
- package/dist/commands/sessions.test-fixture.d.ts +0 -9
- package/dist/commands/sessions.test-fixture.js +8 -23
- package/dist/commands/setup-accounts.d.ts +0 -6
- package/dist/commands/setup-browser.d.ts +0 -23
- package/dist/commands/setup-browser.js +0 -28
- package/dist/commands/setup-computer.d.ts +0 -16
- package/dist/commands/setup-computer.js +0 -28
- package/dist/commands/setup-fleet.d.ts +0 -8
- package/dist/commands/setup-fleet.js +0 -11
- package/dist/commands/setup-mine.d.ts +0 -14
- package/dist/commands/setup-mine.js +0 -25
- package/dist/commands/setup-preferences.d.ts +0 -47
- package/dist/commands/setup-preferences.js +0 -53
- package/dist/commands/setup-secrets.d.ts +2 -24
- package/dist/commands/setup-secrets.js +0 -24
- package/dist/commands/setup-term.d.ts +0 -21
- package/dist/commands/setup-term.js +0 -21
- package/dist/commands/setup-terminal.d.ts +0 -1
- package/dist/commands/setup-terminal.js +0 -1
- package/dist/commands/setup-tools.d.ts +2 -0
- package/dist/commands/setup-tools.js +73 -0
- package/dist/commands/setup.d.ts +0 -20
- package/dist/commands/setup.js +4 -57
- package/dist/commands/skills.d.ts +0 -9
- package/dist/commands/skills.js +1 -22
- package/dist/commands/snapshot.d.ts +0 -9
- package/dist/commands/snapshot.js +0 -10
- package/dist/commands/ssh.d.ts +0 -64
- package/dist/commands/ssh.js +9 -420
- package/dist/commands/status.d.ts +0 -12
- package/dist/commands/status.js +0 -26
- package/dist/commands/subagents.d.ts +0 -8
- package/dist/commands/subagents.js +0 -31
- package/dist/commands/sync.d.ts +0 -37
- package/dist/commands/sync.js +0 -256
- package/dist/commands/teams-picker.d.ts +0 -3
- package/dist/commands/teams-picker.js +0 -34
- package/dist/commands/teams.d.ts +1 -76
- package/dist/commands/teams.js +9 -477
- package/dist/commands/tmux.d.ts +0 -25
- package/dist/commands/tmux.js +0 -46
- package/dist/commands/traces.js +0 -19
- package/dist/commands/trash.d.ts +0 -17
- package/dist/commands/trash.js +1 -11
- package/dist/commands/uninstall.d.ts +0 -9
- package/dist/commands/uninstall.js +0 -6
- package/dist/commands/update.d.ts +0 -22
- package/dist/commands/update.js +0 -44
- package/dist/commands/upgrade.d.ts +0 -1
- package/dist/commands/upgrade.js +0 -1
- package/dist/commands/utils.d.ts +0 -85
- package/dist/commands/utils.js +1 -95
- package/dist/commands/versions.d.ts +0 -16
- package/dist/commands/versions.js +0 -134
- package/dist/commands/view.d.ts +0 -90
- package/dist/commands/view.js +4 -343
- package/dist/commands/watchdog.d.ts +0 -19
- package/dist/commands/watchdog.js +3 -43
- package/dist/commands/webhook.d.ts +0 -8
- package/dist/commands/webhook.js +0 -14
- package/dist/commands/workflows.d.ts +0 -8
- package/dist/commands/workflows.js +0 -6
- package/dist/index.d.ts +0 -25
- package/dist/index.js +5 -119
- package/dist/lib/account-capabilities.d.ts +0 -34
- package/dist/lib/account-capabilities.js +0 -32
- package/dist/lib/account-catalog.d.ts +0 -128
- package/dist/lib/account-catalog.js +8 -154
- package/dist/lib/account-provider-registry.d.ts +0 -14
- package/dist/lib/account-provider-registry.js +0 -8
- package/dist/lib/account-registry.d.ts +0 -74
- package/dist/lib/account-registry.js +14 -189
- package/dist/lib/account-schema.d.ts +0 -19
- package/dist/lib/account-schema.js +0 -43
- package/dist/lib/accounting/account-launch.d.ts +0 -15
- package/dist/lib/accounting/account-launch.js +1 -3
- package/dist/lib/accounting/account-pool-collect.d.ts +0 -26
- package/dist/lib/accounting/account-pool-collect.js +0 -42
- package/dist/lib/accounting/account-pool.d.ts +0 -41
- package/dist/lib/accounting/account-pool.js +0 -17
- package/dist/lib/accounting/capacity.d.ts +0 -32
- package/dist/lib/accounting/capacity.js +0 -32
- package/dist/lib/accounting/rotate.d.ts +0 -518
- package/dist/lib/accounting/rotate.js +4 -598
- package/dist/lib/accounting/usage-ingest.d.ts +0 -1
- package/dist/lib/accounting/usage-ingest.js +0 -44
- package/dist/lib/accounting/usage-sync.d.ts +0 -60
- package/dist/lib/accounting/usage-sync.js +4 -51
- package/dist/lib/accounting/usage.d.ts +0 -632
- package/dist/lib/accounting/usage.js +14 -1055
- package/dist/lib/accounts/add.d.ts +0 -60
- package/dist/lib/accounts/add.js +0 -127
- package/dist/lib/accounts/auth-operation-lock.d.ts +0 -1
- package/dist/lib/accounts/auth-operation-lock.js +0 -4
- package/dist/lib/accounts/migrate.d.ts +0 -9
- package/dist/lib/accounts/migrate.js +3 -42
- package/dist/lib/accounts/slots.d.ts +0 -25
- package/dist/lib/accounts/slots.js +1 -49
- package/dist/lib/acp/client.d.ts +0 -16
- package/dist/lib/acp/client.js +0 -29
- package/dist/lib/acp/harnesses.d.ts +0 -15
- package/dist/lib/acp/harnesses.js +0 -16
- package/dist/lib/acp/run.d.ts +0 -8
- package/dist/lib/acp/run.js +0 -8
- package/dist/lib/actor.d.ts +1 -71
- package/dist/lib/actor.js +1 -99
- package/dist/lib/add-dir.d.ts +0 -46
- package/dist/lib/add-dir.js +1 -70
- package/dist/lib/address.d.ts +0 -17
- package/dist/lib/address.js +0 -15
- package/dist/lib/agent-cli-commands.d.ts +0 -10
- package/dist/lib/agent-cli-commands.js +0 -10
- package/dist/lib/agent-modes.d.ts +0 -29
- package/dist/lib/agent-modes.js +0 -31
- package/dist/lib/agent-spec/agents.d.ts +0 -426
- package/dist/lib/agent-spec/agents.js +37 -924
- package/dist/lib/agent-spec/index.d.ts +0 -5
- package/dist/lib/agent-spec/index.js +0 -14
- package/dist/lib/agent-spec/materialize.d.ts +0 -10
- package/dist/lib/agent-spec/materialize.js +2 -139
- package/dist/lib/agent-spec/package-resolve.d.ts +0 -8
- package/dist/lib/agent-spec/package-resolve.js +1 -44
- package/dist/lib/agent-spec/package-schema.d.ts +0 -2
- package/dist/lib/agent-spec/package-schema.js +0 -11
- package/dist/lib/agent-spec/package-types.d.ts +0 -27
- package/dist/lib/agent-spec/package-types.js +0 -1
- package/dist/lib/agent-spec/primitives.d.ts +0 -18
- package/dist/lib/agent-spec/primitives.js +0 -27
- package/dist/lib/agent-spec/provider.js +0 -2
- package/dist/lib/agent-spec/resolve.d.ts +0 -23
- package/dist/lib/agent-spec/resolve.js +0 -41
- package/dist/lib/agent-spec/types.d.ts +0 -34
- package/dist/lib/agent-spec/types.js +0 -6
- package/dist/lib/agents.d.ts +0 -1
- package/dist/lib/agents.js +0 -1
- package/dist/lib/analytics/mix-commands.d.ts +0 -23
- package/dist/lib/analytics/mix-commands.js +0 -26
- package/dist/lib/analytics/recipes.d.ts +0 -1
- package/dist/lib/analytics/recipes.js +5 -10
- package/dist/lib/analytics/usage-db.js +4 -6
- package/dist/lib/answer-router.d.ts +0 -61
- package/dist/lib/answer-router.js +0 -57
- package/dist/lib/app-bundle-install.d.ts +0 -13
- package/dist/lib/app-bundle-install.js +0 -50
- package/dist/lib/artifact-actions.d.ts +0 -15
- package/dist/lib/artifact-actions.js +0 -18
- package/dist/lib/artifacts-client.d.ts +0 -10
- package/dist/lib/artifacts-client.js +0 -17
- package/dist/lib/ask-classifier.d.ts +0 -38
- package/dist/lib/ask-classifier.js +0 -27
- package/dist/lib/audit/log.d.ts +0 -47
- package/dist/lib/audit/log.js +1 -59
- package/dist/lib/auth-health.d.ts +0 -213
- package/dist/lib/auth-health.js +16 -266
- package/dist/lib/auth-mint.d.ts +0 -83
- package/dist/lib/auth-mint.js +8 -85
- package/dist/lib/auto-pull-worker.d.ts +0 -10
- package/dist/lib/auto-pull-worker.js +3 -48
- package/dist/lib/auto-pull.d.ts +0 -64
- package/dist/lib/auto-pull.js +0 -79
- package/dist/lib/beta.d.ts +0 -9
- package/dist/lib/beta.js +0 -9
- package/dist/lib/binary-shadow.d.ts +0 -22
- package/dist/lib/binary-shadow.js +4 -34
- package/dist/lib/boot-profile.d.ts +0 -10
- package/dist/lib/boot-profile.js +1 -31
- package/dist/lib/brand.d.ts +0 -20
- package/dist/lib/brand.js +0 -50
- package/dist/lib/browser/context.d.ts +0 -54
- package/dist/lib/browser/context.js +0 -49
- package/dist/lib/browser/paths.d.ts +0 -21
- package/dist/lib/browser/paths.js +0 -26
- package/dist/lib/browser/record.d.ts +0 -34
- package/dist/lib/browser/record.js +0 -38
- package/dist/lib/browser/sessions-list.d.ts +1 -79
- package/dist/lib/browser/sessions-list.js +2 -98
- package/dist/lib/browser-client.d.ts +0 -112
- package/dist/lib/browser-client.js +1 -90
- package/dist/lib/budget/config.d.ts +0 -6
- package/dist/lib/budget/config.js +0 -29
- package/dist/lib/budget/enforce.d.ts +0 -50
- package/dist/lib/budget/enforce.js +0 -27
- package/dist/lib/budget/ledger.d.ts +0 -23
- package/dist/lib/budget/ledger.js +0 -28
- package/dist/lib/budget/live-cloud.d.ts +0 -26
- package/dist/lib/budget/live-cloud.js +0 -12
- package/dist/lib/budget/live-team.d.ts +0 -17
- package/dist/lib/budget/live-team.js +1 -35
- package/dist/lib/budget/preflight.d.ts +0 -51
- package/dist/lib/budget/preflight.js +0 -36
- package/dist/lib/byok-usage.d.ts +0 -20
- package/dist/lib/byok-usage.js +1 -24
- package/dist/lib/capabilities.d.ts +0 -24
- package/dist/lib/capabilities.js +0 -29
- package/dist/lib/catchup.d.ts +0 -87
- package/dist/lib/catchup.js +1 -81
- package/dist/lib/channels/owner-forward.d.ts +0 -70
- package/dist/lib/channels/owner-forward.js +1 -43
- package/dist/lib/channels/owner-sink.js +0 -21
- package/dist/lib/channels/providers/desktop.d.ts +0 -37
- package/dist/lib/channels/providers/desktop.js +0 -72
- package/dist/lib/channels/providers/index.d.ts +0 -1
- package/dist/lib/channels/providers/index.js +2 -6
- package/dist/lib/channels/providers/mailbox.js +0 -7
- package/dist/lib/channels/providers/openclaw-telegram.js +0 -8
- package/dist/lib/channels/providers/rush.d.ts +0 -2
- package/dist/lib/channels/providers/rush.js +0 -26
- package/dist/lib/channels/providers/session.d.ts +2 -0
- package/dist/lib/channels/providers/session.js +26 -0
- package/dist/lib/channels/registry.d.ts +0 -27
- package/dist/lib/channels/registry.js +0 -10
- package/dist/lib/channels/resolve.d.ts +0 -19
- package/dist/lib/channels/resolve.js +0 -2
- package/dist/lib/channels/send.d.ts +0 -50
- package/dist/lib/channels/send.js +0 -25
- package/dist/lib/checkpoint.d.ts +0 -36
- package/dist/lib/checkpoint.js +0 -28
- package/dist/lib/claude-account-token.d.ts +0 -98
- package/dist/lib/claude-account-token.js +7 -169
- package/dist/lib/claude-statusline.d.ts +0 -41
- package/dist/lib/claude-statusline.js +0 -68
- package/dist/lib/cli-entry.d.ts +0 -26
- package/dist/lib/cli-entry.js +1 -61
- package/dist/lib/cli-resources.d.ts +31 -89
- package/dist/lib/cli-resources.js +116 -152
- package/dist/lib/cloud/antigravity.d.ts +0 -29
- package/dist/lib/cloud/antigravity.js +0 -36
- package/dist/lib/cloud/codex.d.ts +0 -8
- package/dist/lib/cloud/codex.js +0 -41
- package/dist/lib/cloud/cursor.d.ts +0 -5
- package/dist/lib/cloud/cursor.js +2 -7
- package/dist/lib/cloud/dispatch.d.ts +0 -13
- package/dist/lib/cloud/dispatch.js +1 -48
- package/dist/lib/cloud/factory.d.ts +0 -52
- package/dist/lib/cloud/factory.js +3 -67
- package/dist/lib/cloud/host.d.ts +0 -39
- package/dist/lib/cloud/host.js +5 -48
- package/dist/lib/cloud/registry.d.ts +0 -25
- package/dist/lib/cloud/registry.js +0 -29
- package/dist/lib/cloud/rush.d.ts +0 -47
- package/dist/lib/cloud/rush.js +1 -82
- package/dist/lib/cloud/session-index.d.ts +0 -27
- package/dist/lib/cloud/session-index.js +1 -32
- package/dist/lib/cloud/store.d.ts +0 -18
- package/dist/lib/cloud/store.js +0 -28
- package/dist/lib/cloud/stream.d.ts +0 -14
- package/dist/lib/cloud/stream.js +0 -25
- package/dist/lib/cloud/types.d.ts +0 -168
- package/dist/lib/cloud/types.js +0 -46
- package/dist/lib/cloudflare/creds.d.ts +0 -2
- package/dist/lib/cloudflare/creds.js +0 -14
- package/dist/lib/cloudflare/provision.d.ts +0 -8
- package/dist/lib/cloudflare/provision.js +1 -19
- package/dist/lib/codex-home.d.ts +0 -60
- package/dist/lib/codex-home.js +2 -72
- package/dist/lib/codex-policy.d.ts +0 -10
- package/dist/lib/codex-policy.js +0 -13
- package/dist/lib/command-skills.d.ts +0 -10
- package/dist/lib/command-skills.js +0 -10
- package/dist/lib/commands.d.ts +0 -74
- package/dist/lib/commands.js +0 -112
- package/dist/lib/comms-render.d.ts +0 -5
- package/dist/lib/comms-render.js +0 -5
- package/dist/lib/computer/context.d.ts +0 -23
- package/dist/lib/computer/context.js +0 -14
- package/dist/lib/computer/policy.d.ts +0 -20
- package/dist/lib/computer/policy.js +0 -53
- package/dist/lib/computer/record.d.ts +0 -33
- package/dist/lib/computer/record.js +1 -48
- package/dist/lib/computer/sessions-list.d.ts +1 -128
- package/dist/lib/computer/sessions-list.js +6 -165
- package/dist/lib/computer-client.d.ts +0 -106
- package/dist/lib/computer-client.js +5 -86
- package/dist/lib/concurrency.d.ts +0 -14
- package/dist/lib/concurrency.js +0 -3
- package/dist/lib/config-drift.d.ts +0 -31
- package/dist/lib/config-drift.js +0 -32
- package/dist/lib/config-keys.d.ts +1 -65
- package/dist/lib/config-keys.js +6 -52
- package/dist/lib/config-transfer.d.ts +0 -14
- package/dist/lib/config-transfer.js +0 -26
- package/dist/lib/convert.d.ts +0 -17
- package/dist/lib/convert.js +0 -18
- package/dist/lib/crabbox/cli.d.ts +0 -156
- package/dist/lib/crabbox/cli.js +1 -188
- package/dist/lib/crabbox/config.d.ts +0 -18
- package/dist/lib/crabbox/config.js +1 -19
- package/dist/lib/crabbox/lease.d.ts +0 -93
- package/dist/lib/crabbox/lease.js +4 -148
- package/dist/lib/crabbox/progress.d.ts +0 -56
- package/dist/lib/crabbox/progress.js +2 -49
- package/dist/lib/crabbox/runtimes.d.ts +0 -94
- package/dist/lib/crabbox/runtimes.js +1 -111
- package/dist/lib/crabbox/setup-copy.d.ts +0 -64
- package/dist/lib/crabbox/setup-copy.js +1 -53
- package/dist/lib/daemon/account-state-daemon-service.d.ts +0 -48
- package/dist/lib/daemon/account-state-daemon-service.js +2 -63
- package/dist/lib/daemon/attention-notify-service.d.ts +0 -12
- package/dist/lib/daemon/attention-notify-service.js +1 -24
- package/dist/lib/daemon/auth-sync-service.d.ts +0 -28
- package/dist/lib/daemon/auth-sync-service.js +0 -56
- package/dist/lib/daemon/catchup-service.d.ts +0 -34
- package/dist/lib/daemon/catchup-service.js +0 -30
- package/dist/lib/daemon/daemon.d.ts +0 -374
- package/dist/lib/daemon/daemon.js +44 -1049
- package/dist/lib/daemon/daemon.test-fixture.d.ts +0 -19
- package/dist/lib/daemon/daemon.test-fixture.js +1 -24
- package/dist/lib/daemon/device-probe-service.d.ts +0 -16
- package/dist/lib/daemon/device-probe-service.js +0 -20
- package/dist/lib/daemon/feed-stream-service.d.ts +0 -15
- package/dist/lib/daemon/feed-stream-service.js +0 -20
- package/dist/lib/daemon/harness-update-service.d.ts +2 -61
- package/dist/lib/daemon/harness-update-service.js +6 -86
- package/dist/lib/daemon/heartbeat-service.d.ts +0 -1
- package/dist/lib/daemon/heartbeat-service.js +0 -1
- package/dist/lib/daemon/leaked-daemons.d.ts +0 -46
- package/dist/lib/daemon/leaked-daemons.js +2 -78
- package/dist/lib/daemon/monitor-engine-service.d.ts +0 -13
- package/dist/lib/daemon/monitor-engine-service.js +3 -15
- package/dist/lib/daemon/runner.d.ts +0 -194
- package/dist/lib/daemon/runner.js +39 -760
- package/dist/lib/daemon/self-heal-service.d.ts +18 -17
- package/dist/lib/daemon/self-heal-service.js +83 -37
- package/dist/lib/daemon/self-update-service.d.ts +1 -131
- package/dist/lib/daemon/self-update-service.js +26 -189
- package/dist/lib/daemon/service.d.ts +0 -73
- package/dist/lib/daemon/service.js +0 -34
- package/dist/lib/daemon/session-index-service.d.ts +0 -12
- package/dist/lib/daemon/session-index-service.js +0 -23
- package/dist/lib/daemon/session-state-service.d.ts +0 -8
- package/dist/lib/daemon/session-state-service.js +0 -8
- package/dist/lib/daemon/session-summarizer-service.d.ts +0 -14
- package/dist/lib/daemon/session-summarizer-service.js +1 -19
- package/dist/lib/daemon/session-title-service.d.ts +0 -25
- package/dist/lib/daemon/session-title-service.js +0 -32
- package/dist/lib/daemon/state-dir-check-service.d.ts +0 -24
- package/dist/lib/daemon/state-dir-check-service.js +0 -29
- package/dist/lib/daemon/supervisor.d.ts +0 -112
- package/dist/lib/daemon/supervisor.js +4 -147
- package/dist/lib/daemon/testdata/process-view-daemon.js +0 -2
- package/dist/lib/daemon/testdata/process-view-start.js +0 -5
- package/dist/lib/daemon/tmux-reap-service.d.ts +0 -1
- package/dist/lib/daemon/tmux-reap-service.js +0 -1
- package/dist/lib/daemon/usage-sync-service.d.ts +0 -23
- package/dist/lib/daemon/usage-sync-service.js +0 -26
- package/dist/lib/daemon/watchdog-service.d.ts +0 -9
- package/dist/lib/daemon/watchdog-service.js +0 -13
- package/dist/lib/daemon/webhook-receiver-service.d.ts +0 -1
- package/dist/lib/daemon/webhook-receiver-service.js +0 -1
- package/dist/lib/daemon-health.d.ts +0 -55
- package/dist/lib/daemon-health.js +4 -77
- package/dist/lib/daemon-services.d.ts +0 -36
- package/dist/lib/daemon-services.js +0 -45
- package/dist/lib/daemon-ticks.d.ts +0 -126
- package/dist/lib/daemon-ticks.js +1 -156
- package/dist/lib/daemon-webhooks.d.ts +0 -57
- package/dist/lib/daemon-webhooks.js +2 -54
- package/dist/lib/deeplink/register.d.ts +0 -15
- package/dist/lib/deeplink/register.js +0 -60
- package/dist/lib/deeplink/url.d.ts +0 -24
- package/dist/lib/deeplink/url.js +1 -33
- package/dist/lib/device-config.d.ts +1 -192
- package/dist/lib/device-config.js +86 -240
- package/dist/lib/devices/config-migration.d.ts +0 -43
- package/dist/lib/devices/config-migration.js +7 -127
- package/dist/lib/devices/connect.d.ts +0 -168
- package/dist/lib/devices/connect.js +6 -254
- package/dist/lib/devices/device-docs.d.ts +0 -24
- package/dist/lib/devices/device-docs.js +0 -46
- package/dist/lib/devices/discovery-policy.d.ts +0 -30
- package/dist/lib/devices/discovery-policy.js +3 -34
- package/dist/lib/devices/doctor-findings.d.ts +0 -109
- package/dist/lib/devices/doctor-findings.js +30 -326
- package/dist/lib/devices/doctor-overview-cache.d.ts +0 -33
- package/dist/lib/devices/doctor-overview-cache.js +0 -81
- package/dist/lib/devices/fleet-divergence.d.ts +0 -89
- package/dist/lib/devices/fleet-divergence.js +1 -60
- package/dist/lib/devices/fleet-inventory.d.ts +0 -27
- package/dist/lib/devices/fleet-inventory.js +0 -38
- package/dist/lib/devices/fleet.d.ts +0 -95
- package/dist/lib/devices/fleet.js +0 -79
- package/dist/lib/devices/harness-inventory.d.ts +0 -75
- package/dist/lib/devices/harness-inventory.js +0 -101
- package/dist/lib/devices/health-report.d.ts +0 -37
- package/dist/lib/devices/health-report.js +0 -73
- package/dist/lib/devices/health.d.ts +0 -71
- package/dist/lib/devices/health.js +2 -82
- package/dist/lib/devices/interactive-host.d.ts +0 -10
- package/dist/lib/devices/interactive-host.js +0 -34
- package/dist/lib/devices/known-hosts.d.ts +0 -45
- package/dist/lib/devices/known-hosts.js +0 -77
- package/dist/lib/devices/pending.d.ts +0 -31
- package/dist/lib/devices/pending.js +7 -67
- package/dist/lib/devices/pool.d.ts +0 -36
- package/dist/lib/devices/pool.js +0 -30
- package/dist/lib/devices/reachability.d.ts +0 -25
- package/dist/lib/devices/reachability.js +0 -14
- package/dist/lib/devices/registry.d.ts +0 -141
- package/dist/lib/devices/registry.js +4 -151
- package/dist/lib/devices/resolve-profile.d.ts +0 -18
- package/dist/lib/devices/resolve-profile.js +0 -18
- package/dist/lib/devices/resolve-target.d.ts +0 -20
- package/dist/lib/devices/resolve-target.js +1 -51
- package/dist/lib/devices/rollout-verify.d.ts +1 -81
- package/dist/lib/devices/rollout-verify.js +0 -77
- package/dist/lib/devices/self-host.d.ts +0 -7
- package/dist/lib/devices/self-host.js +1 -29
- package/dist/lib/devices/ssh-config.d.ts +0 -18
- package/dist/lib/devices/ssh-config.js +0 -9
- package/dist/lib/devices/stats-cache.d.ts +0 -48
- package/dist/lib/devices/stats-cache.js +0 -80
- package/dist/lib/devices/sync.d.ts +0 -97
- package/dist/lib/devices/sync.js +0 -88
- package/dist/lib/devices/tailscale.d.ts +0 -18
- package/dist/lib/devices/tailscale.js +1 -38
- package/dist/lib/devices/terminfo.d.ts +0 -27
- package/dist/lib/devices/terminfo.js +2 -64
- package/dist/lib/devices/worker-pick.d.ts +0 -15
- package/dist/lib/devices/worker-pick.js +0 -48
- package/dist/lib/diff-text.d.ts +0 -18
- package/dist/lib/diff-text.js +0 -15
- package/dist/lib/doctor-diff.d.ts +0 -79
- package/dist/lib/doctor-diff.js +2 -181
- package/dist/lib/drift-sync.d.ts +0 -29
- package/dist/lib/drift-sync.js +0 -40
- package/dist/lib/drift.d.ts +0 -43
- package/dist/lib/drift.js +0 -31
- package/dist/lib/event-families.d.ts +0 -17
- package/dist/lib/event-families.js +0 -33
- package/dist/lib/event-provenance.d.ts +0 -4
- package/dist/lib/event-provenance.js +0 -5
- package/dist/lib/event-stream.d.ts +0 -29
- package/dist/lib/event-stream.js +0 -36
- package/dist/lib/events-ingest.d.ts +0 -27
- package/dist/lib/events-ingest.js +0 -54
- package/dist/lib/exec-account-home.d.ts +0 -24
- package/dist/lib/exec-account-home.js +0 -41
- package/dist/lib/exec-bounded.d.ts +1 -37
- package/dist/lib/exec-bounded.js +10 -46
- package/dist/lib/exec.d.ts +3 -583
- package/dist/lib/exec.js +18 -1025
- package/dist/lib/factory/snapshot.js +1 -15
- package/dist/lib/feed/activity-stream.d.ts +0 -27
- package/dist/lib/feed/activity-stream.js +4 -80
- package/dist/lib/feed/activity.d.ts +1 -243
- package/dist/lib/feed/activity.js +8 -273
- package/dist/lib/feed/answer.d.ts +0 -103
- package/dist/lib/feed/answer.js +0 -267
- package/dist/lib/feed/attention.d.ts +0 -56
- package/dist/lib/feed/attention.js +0 -161
- package/dist/lib/feed/envelope.d.ts +2 -17
- package/dist/lib/feed/envelope.js +0 -14
- package/dist/lib/feed/events.d.ts +0 -118
- package/dist/lib/feed/events.js +13 -213
- package/dist/lib/feed/feed.d.ts +1 -250
- package/dist/lib/feed/feed.js +24 -334
- package/dist/lib/feed/hub-server.d.ts +0 -100
- package/dist/lib/feed/hub-server.js +1 -191
- package/dist/lib/feed/hub.d.ts +0 -53
- package/dist/lib/feed/hub.js +0 -89
- package/dist/lib/feed/pr-status.d.ts +1 -19
- package/dist/lib/feed/pr-status.js +0 -18
- package/dist/lib/feed/tool-activity.d.ts +0 -59
- package/dist/lib/feed/tool-activity.js +1 -119
- package/dist/lib/feed/tools.d.ts +0 -100
- package/dist/lib/feed/tools.js +0 -89
- package/dist/lib/feed/watch.d.ts +0 -33
- package/dist/lib/feed/watch.js +2 -94
- package/dist/lib/feed-broadcast.d.ts +0 -148
- package/dist/lib/feed-broadcast.js +1 -283
- package/dist/lib/feed-outcome.d.ts +0 -50
- package/dist/lib/feed-outcome.js +1 -67
- package/dist/lib/feed-policy.d.ts +0 -6
- package/dist/lib/feed-policy.js +1 -27
- package/dist/lib/feed-post.d.ts +0 -61
- package/dist/lib/feed-post.js +4 -61
- package/dist/lib/feed-ranking.d.ts +1 -1
- package/dist/lib/fleet/apply.d.ts +0 -64
- package/dist/lib/fleet/apply.js +0 -125
- package/dist/lib/fleet/auth-sync.d.ts +0 -48
- package/dist/lib/fleet/auth-sync.js +4 -49
- package/dist/lib/fleet/capture.d.ts +0 -26
- package/dist/lib/fleet/capture.js +1 -36
- package/dist/lib/fleet/manifest.d.ts +0 -38
- package/dist/lib/fleet/manifest.js +0 -40
- package/dist/lib/fleet/types.d.ts +1 -138
- package/dist/lib/fleet/types.js +0 -12
- package/dist/lib/fleet-cache.d.ts +0 -12
- package/dist/lib/fleet-cache.js +0 -24
- package/dist/lib/fleet-shared-state.d.ts +6 -59
- package/dist/lib/fleet-shared-state.js +5 -51
- package/dist/lib/fleet-status.d.ts +0 -27
- package/dist/lib/fleet-status.js +0 -48
- package/dist/lib/format.d.ts +0 -74
- package/dist/lib/format.js +3 -77
- package/dist/lib/friction-heuristics.d.ts +0 -20
- package/dist/lib/friction-heuristics.js +0 -8
- package/dist/lib/fs-atomic.d.ts +0 -51
- package/dist/lib/fs-atomic.js +8 -66
- package/dist/lib/fs-walk.d.ts +0 -13
- package/dist/lib/fs-walk.js +0 -22
- package/dist/lib/fuzzy.d.ts +0 -29
- package/dist/lib/fuzzy.js +0 -31
- package/dist/lib/gemini-settings.js +0 -12
- package/dist/lib/git.d.ts +0 -366
- package/dist/lib/git.js +7 -574
- package/dist/lib/github/ci-failure.d.ts +30 -0
- package/dist/lib/github/ci-failure.js +95 -0
- package/dist/lib/github/gh-overload.d.ts +0 -38
- package/dist/lib/github/gh-overload.js +3 -55
- package/dist/lib/github/pr-mergeable.d.ts +3 -34
- package/dist/lib/github/pr-mergeable.js +2 -42
- package/dist/lib/github/pr-verdict.d.ts +0 -44
- package/dist/lib/github/pr-verdict.js +0 -36
- package/dist/lib/github/project-prs.d.ts +135 -105
- package/dist/lib/github/project-prs.js +530 -170
- package/dist/lib/github/release-drift.d.ts +45 -0
- package/dist/lib/github/release-drift.js +91 -0
- package/dist/lib/github/rest.d.ts +0 -50
- package/dist/lib/github/rest.js +0 -49
- package/dist/lib/github/viewer.d.ts +27 -0
- package/dist/lib/github/viewer.js +101 -0
- package/dist/lib/goose-commands.d.ts +0 -29
- package/dist/lib/goose-commands.js +3 -48
- package/dist/lib/harness/adapter.d.ts +0 -151
- package/dist/lib/harness/adapter.js +0 -41
- package/dist/lib/harness/adapters/claude.d.ts +0 -8
- package/dist/lib/harness/adapters/claude.js +0 -89
- package/dist/lib/harness/adapters/codex.js +0 -18
- package/dist/lib/harness/adapters/copilot.js +0 -3
- package/dist/lib/harness/adapters/cursor.js +0 -16
- package/dist/lib/harness/adapters/droid.js +0 -3
- package/dist/lib/harness/adapters/kimi.js +0 -19
- package/dist/lib/harness/adapters/muse.js +0 -9
- package/dist/lib/harness/adapters/opencode.js +0 -2
- package/dist/lib/harness/exec-config-version.d.ts +0 -2
- package/dist/lib/harness/exec-config-version.js +0 -13
- package/dist/lib/harness/index.js +0 -10
- package/dist/lib/harness-auth-capabilities.d.ts +0 -26
- package/dist/lib/harness-auth-capabilities.js +0 -18
- package/dist/lib/harness-connection-test.d.ts +0 -27
- package/dist/lib/harness-connection-test.js +2 -20
- package/dist/lib/heal.d.ts +0 -45
- package/dist/lib/heal.js +2 -82
- package/dist/lib/help.d.ts +0 -32
- package/dist/lib/help.js +0 -41
- package/dist/lib/helper-download.d.ts +0 -85
- package/dist/lib/helper-download.js +0 -95
- package/dist/lib/helper-versions.d.ts +0 -51
- package/dist/lib/helper-versions.js +1 -45
- package/dist/lib/hooks/cache.d.ts +0 -40
- package/dist/lib/hooks/cache.js +8 -122
- package/dist/lib/hooks/install.d.ts +0 -253
- package/dist/lib/hooks/install.js +49 -822
- package/dist/lib/hooks/match.d.ts +0 -24
- package/dist/lib/hooks/match.js +0 -31
- package/dist/lib/hooks/profile.d.ts +0 -21
- package/dist/lib/hooks/profile.js +0 -28
- package/dist/lib/hosts/credential-transport.d.ts +0 -6
- package/dist/lib/hosts/credential-transport.js +0 -17
- package/dist/lib/hosts/credentials.d.ts +0 -35
- package/dist/lib/hosts/credentials.js +0 -38
- package/dist/lib/hosts/dispatch.d.ts +0 -140
- package/dist/lib/hosts/dispatch.js +0 -176
- package/dist/lib/hosts/logs.d.ts +0 -25
- package/dist/lib/hosts/logs.js +1 -51
- package/dist/lib/hosts/option.d.ts +0 -12
- package/dist/lib/hosts/option.js +0 -12
- package/dist/lib/hosts/passthrough.d.ts +0 -129
- package/dist/lib/hosts/passthrough.js +12 -249
- package/dist/lib/hosts/progress.d.ts +0 -90
- package/dist/lib/hosts/progress.js +5 -115
- package/dist/lib/hosts/providers/devices.d.ts +0 -19
- package/dist/lib/hosts/providers/devices.js +1 -34
- package/dist/lib/hosts/providers/local.d.ts +0 -14
- package/dist/lib/hosts/providers/local.js +0 -22
- package/dist/lib/hosts/ready.d.ts +0 -99
- package/dist/lib/hosts/ready.js +0 -101
- package/dist/lib/hosts/reconcile.d.ts +0 -38
- package/dist/lib/hosts/reconcile.js +1 -50
- package/dist/lib/hosts/reconnect.d.ts +0 -75
- package/dist/lib/hosts/reconnect.js +0 -98
- package/dist/lib/hosts/registry.d.ts +0 -74
- package/dist/lib/hosts/registry.js +0 -110
- package/dist/lib/hosts/remote-cmd.d.ts +1 -228
- package/dist/lib/hosts/remote-cmd.js +19 -294
- package/dist/lib/hosts/remote-cmd.test-fixture.d.ts +0 -1
- package/dist/lib/hosts/remote-cmd.test-fixture.js +0 -12
- package/dist/lib/hosts/remote-os.d.ts +0 -19
- package/dist/lib/hosts/remote-os.js +0 -22
- package/dist/lib/hosts/remote-session-id.d.ts +0 -22
- package/dist/lib/hosts/remote-session-id.js +0 -24
- package/dist/lib/hosts/routing-flag.d.ts +0 -21
- package/dist/lib/hosts/routing-flag.js +0 -21
- package/dist/lib/hosts/run-target.d.ts +0 -53
- package/dist/lib/hosts/run-target.js +0 -56
- package/dist/lib/hosts/session-index.d.ts +1 -53
- package/dist/lib/hosts/session-index.js +2 -59
- package/dist/lib/hosts/session-marker.d.ts +0 -31
- package/dist/lib/hosts/session-marker.js +0 -32
- package/dist/lib/hosts/ssh-config.d.ts +0 -25
- package/dist/lib/hosts/ssh-config.js +1 -32
- package/dist/lib/hosts/tasks.d.ts +0 -54
- package/dist/lib/hosts/tasks.js +0 -35
- package/dist/lib/hosts/types.d.ts +0 -39
- package/dist/lib/hosts/types.js +0 -22
- package/dist/lib/humans.d.ts +0 -21
- package/dist/lib/humans.js +0 -30
- package/dist/lib/identity/client.d.ts +1 -35
- package/dist/lib/identity/client.js +3 -29
- package/dist/lib/identity/index.d.ts +3 -27
- package/dist/lib/identity/index.js +8 -24
- package/dist/lib/import.d.ts +0 -104
- package/dist/lib/import.js +1 -137
- package/dist/lib/installations/active-check.d.ts +0 -53
- package/dist/lib/installations/active-check.js +0 -49
- package/dist/lib/installations/index.d.ts +0 -9
- package/dist/lib/installations/index.js +0 -9
- package/dist/lib/installations/installation-lock.js +0 -8
- package/dist/lib/installations/launch-gate.d.ts +0 -56
- package/dist/lib/installations/launch-gate.js +0 -83
- package/dist/lib/installations/migrate.d.ts +0 -100
- package/dist/lib/installations/migrate.js +105 -572
- package/dist/lib/installations/native-command.d.ts +0 -1
- package/dist/lib/installations/native-command.js +0 -6
- package/dist/lib/installations/resolve.d.ts +0 -24
- package/dist/lib/installations/resolve.js +0 -24
- package/dist/lib/installations/shims.d.ts +0 -395
- package/dist/lib/installations/shims.js +30 -957
- package/dist/lib/installations/store.d.ts +0 -199
- package/dist/lib/installations/store.js +1 -297
- package/dist/lib/installations/strategies.d.ts +0 -44
- package/dist/lib/installations/strategies.js +0 -87
- package/dist/lib/installations/types.d.ts +1 -67
- package/dist/lib/installations/types.js +0 -6
- package/dist/lib/installations/update-cancellation.d.ts +0 -74
- package/dist/lib/installations/update-cancellation.js +0 -74
- package/dist/lib/installations/update-policy.d.ts +0 -57
- package/dist/lib/installations/update-policy.js +0 -62
- package/dist/lib/installations/update-runtime.d.ts +0 -88
- package/dist/lib/installations/update-runtime.js +1 -127
- package/dist/lib/installations/update.d.ts +0 -53
- package/dist/lib/installations/update.js +0 -95
- package/dist/lib/installations/versions.d.ts +0 -310
- package/dist/lib/installations/versions.js +14 -837
- package/dist/lib/isolation-boundary-report.d.ts +0 -7
- package/dist/lib/isolation-boundary-report.js +0 -7
- package/dist/lib/launch-identity.d.ts +0 -8
- package/dist/lib/launch-identity.js +0 -8
- package/dist/lib/linear-autoclose.d.ts +0 -25
- package/dist/lib/linear-autoclose.js +0 -19
- package/dist/lib/linear-cache.d.ts +0 -57
- package/dist/lib/linear-cache.js +1 -81
- package/dist/lib/linear-project-counts.d.ts +0 -83
- package/dist/lib/linear-project-counts.js +2 -64
- package/dist/lib/linear-projects.d.ts +0 -62
- package/dist/lib/linear-projects.js +0 -85
- package/dist/lib/linear-rate-limit.d.ts +0 -21
- package/dist/lib/linear-rate-limit.js +1 -93
- package/dist/lib/linux-userns.d.ts +1 -42
- package/dist/lib/linux-userns.js +0 -47
- package/dist/lib/lock-compromise.d.ts +0 -7
- package/dist/lib/lock-compromise.js +0 -7
- package/dist/lib/log-follow.d.ts +0 -2
- package/dist/lib/log-follow.js +5 -15
- package/dist/lib/loop.d.ts +0 -106
- package/dist/lib/loop.js +0 -135
- package/dist/lib/machine-id.d.ts +0 -19
- package/dist/lib/machine-id.js +0 -19
- package/dist/lib/mailbox-gc.d.ts +0 -7
- package/dist/lib/mailbox-gc.js +0 -25
- package/dist/lib/mailbox-target.d.ts +0 -31
- package/dist/lib/mailbox-target.js +0 -27
- package/dist/lib/mailbox.d.ts +0 -77
- package/dist/lib/mailbox.js +5 -105
- package/dist/lib/manifest.d.ts +0 -4
- package/dist/lib/manifest.js +0 -36
- package/dist/lib/markdown.d.ts +0 -3
- package/dist/lib/markdown.js +0 -9
- package/dist/lib/mcp-registry.d.ts +1 -50
- package/dist/lib/mcp-registry.js +0 -64
- package/dist/lib/mcp.d.ts +0 -115
- package/dist/lib/mcp.js +3 -199
- package/dist/lib/memory-cache.d.ts +0 -11
- package/dist/lib/memory-cache.js +0 -9
- package/dist/lib/memory.d.ts +0 -52
- package/dist/lib/memory.js +12 -74
- package/dist/lib/menubar/download-menubar.d.ts +0 -35
- package/dist/lib/menubar/download-menubar.js +0 -38
- package/dist/lib/menubar/install-menubar.d.ts +0 -405
- package/dist/lib/menubar/install-menubar.js +25 -667
- package/dist/lib/menubar/migrate-prefs.d.ts +0 -47
- package/dist/lib/menubar/migrate-prefs.js +1 -70
- package/dist/lib/menubar/notify-desktop.d.ts +0 -82
- package/dist/lib/menubar/notify-desktop.js +0 -68
- package/dist/lib/menubar/resolve-version.d.ts +0 -41
- package/dist/lib/menubar/resolve-version.js +2 -44
- package/dist/lib/menubar/snapshot.d.ts +13 -66
- package/dist/lib/menubar/snapshot.js +45 -39
- package/dist/lib/merged-resources.d.ts +0 -10
- package/dist/lib/merged-resources.js +0 -10
- package/dist/lib/migrate-fold.d.ts +0 -31
- package/dist/lib/migrate-fold.js +6 -38
- package/dist/lib/model-tier-overrides.d.ts +0 -30
- package/dist/lib/model-tier-overrides.js +0 -14
- package/dist/lib/model-tiers.d.ts +0 -43
- package/dist/lib/model-tiers.js +5 -78
- package/dist/lib/models.d.ts +0 -145
- package/dist/lib/models.js +3 -333
- package/dist/lib/monitors/config.d.ts +0 -187
- package/dist/lib/monitors/config.js +4 -101
- package/dist/lib/monitors/dispatch.d.ts +0 -22
- package/dist/lib/monitors/dispatch.js +0 -35
- package/dist/lib/monitors/engine.d.ts +1 -53
- package/dist/lib/monitors/engine.js +17 -106
- package/dist/lib/monitors/fingerprint.d.ts +0 -43
- package/dist/lib/monitors/fingerprint.js +0 -57
- package/dist/lib/monitors/pid-watch.d.ts +0 -31
- package/dist/lib/monitors/pid-watch.js +0 -31
- package/dist/lib/monitors/remote.d.ts +0 -52
- package/dist/lib/monitors/remote.js +0 -42
- package/dist/lib/monitors/sources/command.d.ts +2 -9
- package/dist/lib/monitors/sources/command.js +13 -34
- package/dist/lib/monitors/sources/device.d.ts +0 -10
- package/dist/lib/monitors/sources/device.js +0 -14
- package/dist/lib/monitors/sources/failure.d.ts +0 -27
- package/dist/lib/monitors/sources/failure.js +0 -27
- package/dist/lib/monitors/sources/file.d.ts +0 -10
- package/dist/lib/monitors/sources/file.js +0 -11
- package/dist/lib/monitors/sources/http.d.ts +0 -7
- package/dist/lib/monitors/sources/http.js +0 -9
- package/dist/lib/monitors/sources/index.d.ts +0 -9
- package/dist/lib/monitors/sources/index.js +0 -9
- package/dist/lib/monitors/sources/poll.d.ts +0 -8
- package/dist/lib/monitors/sources/poll.js +0 -8
- package/dist/lib/monitors/sources/types.d.ts +0 -18
- package/dist/lib/monitors/sources/types.js +0 -8
- package/dist/lib/monitors/sources/webhook.d.ts +0 -7
- package/dist/lib/monitors/sources/webhook.js +0 -7
- package/dist/lib/monitors/sources/ws.d.ts +0 -10
- package/dist/lib/monitors/sources/ws.js +3 -13
- package/dist/lib/monitors/state.d.ts +0 -132
- package/dist/lib/monitors/state.js +2 -86
- package/dist/lib/native-accounts.d.ts +0 -32
- package/dist/lib/native-accounts.js +0 -17
- package/dist/lib/net-close.d.ts +0 -9
- package/dist/lib/net-close.js +0 -5
- package/dist/lib/notify.d.ts +0 -47
- package/dist/lib/notify.js +0 -30
- package/dist/lib/onepassword.d.ts +0 -14
- package/dist/lib/onepassword.js +0 -12
- package/dist/lib/open-url.d.ts +0 -38
- package/dist/lib/open-url.js +1 -69
- package/dist/lib/openclaw-keychain.js +2 -7
- package/dist/lib/operator.d.ts +0 -9
- package/dist/lib/operator.js +0 -34
- package/dist/lib/origin-machine.d.ts +0 -16
- package/dist/lib/origin-machine.js +0 -16
- package/dist/lib/output/git-output.d.ts +0 -31
- package/dist/lib/output/git-output.js +4 -43
- package/dist/lib/overdue.d.ts +0 -35
- package/dist/lib/overdue.js +0 -60
- package/dist/lib/owner-message.d.ts +0 -20
- package/dist/lib/owner-message.js +1 -40
- package/dist/lib/packages/output-home.d.ts +0 -28
- package/dist/lib/packages/output-home.js +0 -114
- package/dist/lib/paths.d.ts +0 -26
- package/dist/lib/paths.js +1 -27
- package/dist/lib/percentile.d.ts +0 -11
- package/dist/lib/percentile.js +0 -11
- package/dist/lib/perf/db.d.ts +0 -16
- package/dist/lib/perf/db.js +3 -32
- package/dist/lib/perf/spool.d.ts +0 -12
- package/dist/lib/perf/spool.js +0 -13
- package/dist/lib/perf/types.d.ts +0 -26
- package/dist/lib/perf/types.js +0 -1
- package/dist/lib/permissions-registry.d.ts +0 -48
- package/dist/lib/permissions-registry.js +0 -108
- package/dist/lib/permissions.d.ts +0 -215
- package/dist/lib/permissions.js +4 -407
- package/dist/lib/picker.d.ts +0 -124
- package/dist/lib/picker.js +0 -140
- package/dist/lib/placement.d.ts +0 -57
- package/dist/lib/placement.js +0 -47
- package/dist/lib/platform/exec.d.ts +0 -73
- package/dist/lib/platform/exec.js +0 -80
- package/dist/lib/platform/index.d.ts +0 -14
- package/dist/lib/platform/index.js +0 -14
- package/dist/lib/platform/ipc.d.ts +0 -10
- package/dist/lib/platform/ipc.js +0 -13
- package/dist/lib/platform/links.d.ts +0 -14
- package/dist/lib/platform/links.js +0 -25
- package/dist/lib/platform/paths.d.ts +0 -48
- package/dist/lib/platform/paths.js +0 -52
- package/dist/lib/platform/posixpath.d.ts +0 -18
- package/dist/lib/platform/posixpath.js +0 -62
- package/dist/lib/platform/process.d.ts +0 -67
- package/dist/lib/platform/process.js +5 -99
- package/dist/lib/platform/winpath.d.ts +0 -50
- package/dist/lib/platform/winpath.js +0 -81
- package/dist/lib/plugins/plugin-marketplace.d.ts +0 -165
- package/dist/lib/plugins/plugin-marketplace.js +10 -238
- package/dist/lib/plugins/plugins.d.ts +0 -238
- package/dist/lib/plugins/plugins.js +20 -454
- package/dist/lib/plugins/skills.d.ts +0 -86
- package/dist/lib/plugins/skills.js +1 -139
- package/dist/lib/pr-land-detach.d.ts +0 -17
- package/dist/lib/pr-land-detach.js +0 -30
- package/dist/lib/pricing/cost.d.ts +0 -29
- package/dist/lib/pricing/cost.js +0 -38
- package/dist/lib/pricing/index.d.ts +0 -6
- package/dist/lib/pricing/index.js +0 -6
- package/dist/lib/pricing/table.d.ts +0 -8
- package/dist/lib/pricing/table.js +3 -56
- package/dist/lib/probe.d.ts +0 -5
- package/dist/lib/probe.js +0 -40
- package/dist/lib/profiles-presets.d.ts +0 -20
- package/dist/lib/profiles-presets.js +1 -36
- package/dist/lib/profiles.d.ts +0 -185
- package/dist/lib/profiles.js +1 -158
- package/dist/lib/project-doctor.d.ts +0 -29
- package/dist/lib/project-doctor.js +0 -26
- package/dist/lib/project-focus.d.ts +0 -41
- package/dist/lib/project-focus.js +0 -49
- package/dist/lib/project-import.d.ts +0 -41
- package/dist/lib/project-import.js +0 -36
- package/dist/lib/project-key.d.ts +0 -65
- package/dist/lib/project-key.js +0 -70
- package/dist/lib/project-launch.d.ts +0 -49
- package/dist/lib/project-launch.js +2 -91
- package/dist/lib/project-probe.d.ts +0 -86
- package/dist/lib/project-probe.js +1 -88
- package/dist/lib/project-pull.d.ts +0 -96
- package/dist/lib/project-pull.js +0 -122
- package/dist/lib/project-resources.d.ts +0 -44
- package/dist/lib/project-resources.js +7 -171
- package/dist/lib/project-root.d.ts +0 -95
- package/dist/lib/project-root.js +0 -101
- package/dist/lib/project-schedule.d.ts +0 -43
- package/dist/lib/project-schedule.js +0 -52
- package/dist/lib/project-status.d.ts +0 -108
- package/dist/lib/project-status.js +0 -117
- package/dist/lib/projects.d.ts +0 -197
- package/dist/lib/projects.js +1 -213
- package/dist/lib/pwsh.d.ts +0 -41
- package/dist/lib/pwsh.js +0 -51
- package/dist/lib/quick-todo.d.ts +84 -0
- package/dist/lib/quick-todo.js +243 -0
- package/dist/lib/reconcile-and-repair.d.ts +0 -78
- package/dist/lib/reconcile-and-repair.js +3 -66
- package/dist/lib/redact.d.ts +0 -29
- package/dist/lib/redact.js +0 -54
- package/dist/lib/refresh-coordinator.d.ts +0 -15
- package/dist/lib/refresh-coordinator.js +0 -10
- package/dist/lib/refresh.d.ts +0 -39
- package/dist/lib/refresh.js +0 -45
- package/dist/lib/registry.d.ts +0 -65
- package/dist/lib/registry.js +0 -127
- package/dist/lib/reminders.d.ts +0 -21
- package/dist/lib/reminders.js +0 -30
- package/dist/lib/remote-agents-json.d.ts +0 -44
- package/dist/lib/remote-agents-json.js +1 -44
- package/dist/lib/reserved-stores.d.ts +0 -28
- package/dist/lib/reserved-stores.js +2 -28
- package/dist/lib/resource-aliases.d.ts +0 -12
- package/dist/lib/resource-aliases.js +0 -12
- package/dist/lib/resource-content-diff.d.ts +0 -28
- package/dist/lib/resource-content-diff.js +7 -34
- package/dist/lib/resource-inventory.d.ts +0 -51
- package/dist/lib/resource-inventory.js +0 -45
- package/dist/lib/resource-patterns.d.ts +0 -32
- package/dist/lib/resource-patterns.js +0 -34
- package/dist/lib/resource-profiles.d.ts +0 -7
- package/dist/lib/resource-profiles.js +0 -11
- package/dist/lib/resources/types.d.ts +0 -50
- package/dist/lib/resources/types.js +0 -7
- package/dist/lib/resources/workflows.d.ts +0 -7
- package/dist/lib/resources/workflows.js +0 -13
- package/dist/lib/resources.d.ts +0 -65
- package/dist/lib/resources.js +0 -78
- package/dist/lib/routers.d.ts +0 -67
- package/dist/lib/routers.js +0 -60
- package/dist/lib/routine-activation.d.ts +0 -23
- package/dist/lib/routine-activation.js +0 -24
- package/dist/lib/routine-context.d.ts +1 -91
- package/dist/lib/routine-context.js +0 -107
- package/dist/lib/routine-notify-owner.d.ts +0 -79
- package/dist/lib/routine-notify-owner.js +1 -103
- package/dist/lib/routine-notify.d.ts +0 -70
- package/dist/lib/routine-notify.js +1 -75
- package/dist/lib/routine-process-cleanup.d.ts +0 -1
- package/dist/lib/routine-process-cleanup.js +1 -4
- package/dist/lib/routine-readiness.d.ts +0 -63
- package/dist/lib/routine-readiness.js +4 -86
- package/dist/lib/routines-format.d.ts +0 -40
- package/dist/lib/routines-format.js +0 -67
- package/dist/lib/routines-placement.d.ts +0 -33
- package/dist/lib/routines-placement.js +0 -40
- package/dist/lib/routines-project.d.ts +0 -57
- package/dist/lib/routines-project.js +6 -80
- package/dist/lib/rules/compile.d.ts +0 -66
- package/dist/lib/rules/compile.js +6 -118
- package/dist/lib/rules/compose.d.ts +0 -56
- package/dist/lib/rules/compose.js +2 -83
- package/dist/lib/rules/rules.d.ts +0 -23
- package/dist/lib/rules/rules.js +0 -35
- package/dist/lib/rules/run-sync.d.ts +0 -16
- package/dist/lib/rules/run-sync.js +1 -44
- package/dist/lib/run-config.d.ts +0 -7
- package/dist/lib/run-config.js +0 -8
- package/dist/lib/run-defaults.d.ts +0 -14
- package/dist/lib/run-defaults.js +0 -14
- package/dist/lib/run-notify.d.ts +0 -18
- package/dist/lib/run-notify.js +0 -36
- package/dist/lib/run-trace-sync.d.ts +0 -21
- package/dist/lib/run-trace-sync.js +2 -66
- package/dist/lib/rush-session.d.ts +0 -26
- package/dist/lib/rush-session.js +0 -28
- package/dist/lib/sandbox.d.ts +0 -45
- package/dist/lib/sandbox.js +5 -93
- package/dist/lib/scheduler.d.ts +0 -28
- package/dist/lib/scheduler.js +0 -45
- package/dist/lib/scheduling/routines.d.ts +0 -652
- package/dist/lib/scheduling/routines.js +8 -475
- package/dist/lib/secrets-cli.d.ts +3 -8
- package/dist/lib/secrets-cli.js +1 -19
- package/dist/lib/secrets-client.d.ts +0 -117
- package/dist/lib/secrets-client.js +4 -275
- package/dist/lib/secrets-policy.d.ts +0 -142
- package/dist/lib/secrets-policy.js +4 -237
- package/dist/lib/secrets-types.d.ts +0 -87
- package/dist/lib/secrets-types.js +0 -13
- package/dist/lib/self-heal/checks/hook-manifest.js +0 -25
- package/dist/lib/self-heal/checks/hook-runtime.js +0 -5
- package/dist/lib/self-heal/checks/install-staging.d.ts +0 -1
- package/dist/lib/self-heal/checks/install-staging.js +1 -28
- package/dist/lib/self-heal/checks/menubar-helper.js +0 -5
- package/dist/lib/self-heal/checks/path.js +0 -9
- package/dist/lib/self-heal/checks/resources.js +0 -5
- package/dist/lib/self-heal/checks/shadowing.js +2 -16
- package/dist/lib/self-heal/checks/shims.js +0 -14
- package/dist/lib/self-heal/child.d.ts +12 -0
- package/dist/lib/self-heal/child.js +23 -0
- package/dist/lib/self-heal/registry.d.ts +0 -9
- package/dist/lib/self-heal/registry.js +0 -16
- package/dist/lib/self-heal/types.d.ts +0 -12
- package/dist/lib/self-heal/types.js +0 -15
- package/dist/lib/self-update.d.ts +0 -312
- package/dist/lib/self-update.js +9 -360
- package/dist/lib/service-manifest.d.ts +0 -39
- package/dist/lib/service-manifest.js +0 -72
- package/dist/lib/session/active.d.ts +13 -869
- package/dist/lib/session/active.js +17 -976
- package/dist/lib/session/actor-sidecar.d.ts +1 -32
- package/dist/lib/session/actor-sidecar.js +1 -41
- package/dist/lib/session/bookmarks.d.ts +0 -33
- package/dist/lib/session/bookmarks.js +0 -37
- package/dist/lib/session/bundle.d.ts +0 -86
- package/dist/lib/session/bundle.js +0 -54
- package/dist/lib/session/claude-accounts.d.ts +0 -40
- package/dist/lib/session/claude-accounts.js +0 -49
- package/dist/lib/session/cloud.d.ts +1 -23
- package/dist/lib/session/cloud.js +0 -26
- package/dist/lib/session/db.d.ts +5 -658
- package/dist/lib/session/db.js +22 -1443
- package/dist/lib/session/detached.d.ts +0 -21
- package/dist/lib/session/detached.js +0 -29
- package/dist/lib/session/discover.d.ts +3 -420
- package/dist/lib/session/discover.js +30 -1123
- package/dist/lib/session/fork.d.ts +1 -41
- package/dist/lib/session/fork.js +0 -19
- package/dist/lib/session/ghostty-tabs.d.ts +0 -24
- package/dist/lib/session/ghostty-tabs.js +0 -37
- package/dist/lib/session/glance-files.d.ts +19 -0
- package/dist/lib/session/glance-files.js +258 -0
- package/dist/lib/session/hook-sessions.d.ts +0 -33
- package/dist/lib/session/hook-sessions.js +4 -99
- package/dist/lib/session/host-link.d.ts +1 -94
- package/dist/lib/session/host-link.js +1 -81
- package/dist/lib/session/inject-target.d.ts +8 -0
- package/dist/lib/session/inject-target.js +32 -0
- package/dist/lib/session/inject.d.ts +0 -15
- package/dist/lib/session/inject.js +0 -15
- package/dist/lib/session/live-metadata.d.ts +1 -34
- package/dist/lib/session/live-metadata.js +1 -73
- package/dist/lib/session/local-tmux-attach.d.ts +0 -37
- package/dist/lib/session/local-tmux-attach.js +1 -76
- package/dist/lib/session/migrate-targets.d.ts +0 -46
- package/dist/lib/session/migrate-targets.js +0 -24
- package/dist/lib/session/migrations.d.ts +0 -12
- package/dist/lib/session/migrations.js +1 -20
- package/dist/lib/session/mirror.d.ts +0 -32
- package/dist/lib/session/mirror.js +0 -77
- package/dist/lib/session/origin-machine.js +0 -3
- package/dist/lib/session/pid-registry.d.ts +0 -80
- package/dist/lib/session/pid-registry.js +2 -81
- package/dist/lib/session/presence.d.ts +0 -39
- package/dist/lib/session/presence.js +2 -52
- package/dist/lib/session/process-view.d.ts +0 -11
- package/dist/lib/session/process-view.js +0 -25
- package/dist/lib/session/projection.d.ts +0 -3
- package/dist/lib/session/projection.js +0 -10
- package/dist/lib/session/provenance.d.ts +1 -37
- package/dist/lib/session/provenance.js +0 -69
- package/dist/lib/session/recovery.d.ts +1 -40
- package/dist/lib/session/recovery.js +2 -80
- package/dist/lib/session/relative-time.js +0 -3
- package/dist/lib/session/remote/peer-stream.d.ts +0 -42
- package/dist/lib/session/remote/peer-stream.js +0 -64
- package/dist/lib/session/remote/remote-bundle.d.ts +0 -6
- package/dist/lib/session/remote/remote-bundle.js +0 -21
- package/dist/lib/session/remote/remote-list.d.ts +1 -110
- package/dist/lib/session/remote/remote-list.js +5 -139
- package/dist/lib/session/remote/remote.d.ts +0 -98
- package/dist/lib/session/remote/remote.js +3 -119
- package/dist/lib/session/remote/watch.d.ts +1 -34
- package/dist/lib/session/remote/watch.js +12 -72
- package/dist/lib/session/remote-active.d.ts +0 -35
- package/dist/lib/session/remote-active.js +0 -48
- package/dist/lib/session/remote-bundle.js +0 -2
- package/dist/lib/session/remote-list.js +0 -2
- package/dist/lib/session/remote-preview-cache.d.ts +0 -7
- package/dist/lib/session/remote-preview-cache.js +1 -76
- package/dist/lib/session/remote.js +0 -2
- package/dist/lib/session/resume-command.d.ts +0 -6
- package/dist/lib/session/resume-command.js +0 -6
- package/dist/lib/session/resume-owner.d.ts +1 -52
- package/dist/lib/session/resume-owner.js +0 -56
- package/dist/lib/session/run-names.d.ts +0 -24
- package/dist/lib/session/run-names.js +0 -26
- package/dist/lib/session/session-cache.d.ts +2 -146
- package/dist/lib/session/session-cache.js +26 -203
- package/dist/lib/session/short-id.js +0 -3
- package/dist/lib/session/sync/agents.d.ts +0 -68
- package/dist/lib/session/sync/agents.js +0 -0
- package/dist/lib/session/sync/backend.d.ts +0 -39
- package/dist/lib/session/sync/backend.js +0 -45
- package/dist/lib/session/sync/config.d.ts +0 -27
- package/dist/lib/session/sync/config.js +0 -56
- package/dist/lib/session/sync/managed-config.d.ts +0 -17
- package/dist/lib/session/sync/managed-config.js +0 -17
- package/dist/lib/session/sync/managed-key.d.ts +0 -38
- package/dist/lib/session/sync/managed-key.js +1 -42
- package/dist/lib/session/sync/net-client.d.ts +0 -36
- package/dist/lib/session/sync/net-client.js +0 -30
- package/dist/lib/session/sync/provision.d.ts +0 -2
- package/dist/lib/session/sync/provision.js +0 -13
- package/dist/lib/session/sync/r2.d.ts +0 -20
- package/dist/lib/session/sync/r2.js +0 -20
- package/dist/lib/session/sync/transcript-crypto.d.ts +0 -37
- package/dist/lib/session/sync/transcript-crypto.js +5 -37
- package/dist/lib/session/sync/worker-template.d.ts +0 -5
- package/dist/lib/session/sync/worker-template.js +0 -40
- package/dist/lib/session/testdata/pid-registry-namespace.js +0 -2
- package/dist/lib/session/testdata/process-view-private.js +0 -1
- package/dist/lib/session/throughput.d.ts +0 -24
- package/dist/lib/session/throughput.js +1 -25
- package/dist/lib/session/timeline-pass.d.ts +1 -63
- package/dist/lib/session/timeline-pass.js +161 -148
- package/dist/lib/session/title.d.ts +0 -182
- package/dist/lib/session/title.js +0 -139
- package/dist/lib/session/tool-index.d.ts +2 -21
- package/dist/lib/session/tool-index.js +3 -75
- package/dist/lib/session/tool-store.d.ts +2 -48
- package/dist/lib/session/tool-store.js +1 -33
- package/dist/lib/session/viewing-in.d.ts +0 -67
- package/dist/lib/session/viewing-in.js +1 -71
- package/dist/lib/session/watch.js +0 -2
- package/dist/lib/session/width.js +0 -3
- package/dist/lib/sessions-client.d.ts +0 -46
- package/dist/lib/sessions-client.js +36 -113
- package/dist/lib/settings-manifest.d.ts +1 -17
- package/dist/lib/settings-manifest.js +4 -57
- package/dist/lib/setup-tool-install.d.ts +0 -1
- package/dist/lib/setup-tool-install.js +2 -7
- package/dist/lib/setup-tool-status.d.ts +0 -3
- package/dist/lib/setup-tool-status.js +4 -14
- package/dist/lib/sha256-asset.d.ts +0 -20
- package/dist/lib/sha256-asset.js +0 -20
- package/dist/lib/share-runtime.d.ts +0 -10
- package/dist/lib/share-runtime.js +1 -27
- package/dist/lib/shim-heal.d.ts +0 -15
- package/dist/lib/shim-heal.js +3 -29
- package/dist/lib/signin-badge.d.ts +0 -72
- package/dist/lib/signin-badge.js +0 -86
- package/dist/lib/sink-format.d.ts +0 -32
- package/dist/lib/sink-format.js +0 -14
- package/dist/lib/smart-launch.d.ts +0 -75
- package/dist/lib/smart-launch.js +1 -83
- package/dist/lib/snapshot.d.ts +0 -46
- package/dist/lib/snapshot.js +5 -31
- package/dist/lib/spinner.d.ts +0 -37
- package/dist/lib/spinner.js +0 -37
- package/dist/lib/sqlite.d.ts +0 -13
- package/dist/lib/sqlite.js +3 -71
- package/dist/lib/ssh-exec.d.ts +0 -209
- package/dist/lib/ssh-exec.js +11 -248
- package/dist/lib/ssh-tunnel.d.ts +0 -43
- package/dist/lib/ssh-tunnel.js +2 -48
- package/dist/lib/staleness/checkers/commands.d.ts +0 -4
- package/dist/lib/staleness/checkers/commands.js +0 -4
- package/dist/lib/staleness/checkers/hooks.d.ts +0 -10
- package/dist/lib/staleness/checkers/hooks.js +0 -15
- package/dist/lib/staleness/checkers/mcp.d.ts +0 -9
- package/dist/lib/staleness/checkers/mcp.js +0 -9
- package/dist/lib/staleness/checkers/permissions.d.ts +0 -12
- package/dist/lib/staleness/checkers/permissions.js +0 -13
- package/dist/lib/staleness/checkers/plugins.d.ts +0 -8
- package/dist/lib/staleness/checkers/plugins.js +0 -8
- package/dist/lib/staleness/checkers/rules.d.ts +0 -15
- package/dist/lib/staleness/checkers/rules.js +0 -26
- package/dist/lib/staleness/checkers/skills.d.ts +0 -4
- package/dist/lib/staleness/checkers/skills.js +0 -4
- package/dist/lib/staleness/checkers/subagents.d.ts +0 -9
- package/dist/lib/staleness/checkers/subagents.js +0 -9
- package/dist/lib/staleness/checkers/types.d.ts +0 -34
- package/dist/lib/staleness/checkers/types.js +0 -19
- package/dist/lib/staleness/checkers/workflows.d.ts +0 -7
- package/dist/lib/staleness/checkers/workflows.js +0 -7
- package/dist/lib/staleness/detectors/commands.js +0 -17
- package/dist/lib/staleness/detectors/hooks.js +1 -6
- package/dist/lib/staleness/detectors/mcp.js +0 -4
- package/dist/lib/staleness/detectors/permissions.js +10 -23
- package/dist/lib/staleness/detectors/rules.js +0 -6
- package/dist/lib/staleness/detectors/skills.d.ts +0 -1
- package/dist/lib/staleness/detectors/skills.js +1 -12
- package/dist/lib/staleness/detectors/types.d.ts +0 -10
- package/dist/lib/staleness/fingerprint.d.ts +0 -19
- package/dist/lib/staleness/fingerprint.js +0 -35
- package/dist/lib/staleness/index.d.ts +0 -28
- package/dist/lib/staleness/index.js +1 -45
- package/dist/lib/staleness/layers.d.ts +0 -23
- package/dist/lib/staleness/layers.js +0 -34
- package/dist/lib/staleness/prune.d.ts +0 -71
- package/dist/lib/staleness/prune.js +2 -27
- package/dist/lib/staleness/registry.d.ts +0 -10
- package/dist/lib/staleness/registry.js +3 -33
- package/dist/lib/staleness/types.d.ts +0 -36
- package/dist/lib/staleness/types.js +0 -5
- package/dist/lib/staleness/writers/commands.js +1 -48
- package/dist/lib/staleness/writers/hooks.js +1 -18
- package/dist/lib/staleness/writers/kinds.d.ts +0 -12
- package/dist/lib/staleness/writers/kinds.js +0 -1
- package/dist/lib/staleness/writers/lazy-map.d.ts +0 -11
- package/dist/lib/staleness/writers/mcp.js +0 -13
- package/dist/lib/staleness/writers/plugins.js +0 -4
- package/dist/lib/staleness/writers/rules.d.ts +0 -1
- package/dist/lib/staleness/writers/rules.js +1 -19
- package/dist/lib/staleness/writers/skills.js +3 -14
- package/dist/lib/staleness/writers/sources.d.ts +0 -11
- package/dist/lib/staleness/writers/sources.js +0 -32
- package/dist/lib/staleness/writers/subagents.js +0 -16
- package/dist/lib/staleness/writers/types.d.ts +0 -58
- package/dist/lib/staleness/writers/workflows.js +1 -1
- package/dist/lib/standalone-tools.d.ts +24 -0
- package/dist/lib/standalone-tools.js +58 -0
- package/dist/lib/star-nudge.d.ts +0 -32
- package/dist/lib/star-nudge.js +2 -36
- package/dist/lib/startup/command-registry.d.ts +0 -45
- package/dist/lib/startup/command-registry.js +1 -46
- package/dist/lib/startup/dev-build.d.ts +0 -9
- package/dist/lib/startup/dev-build.js +1 -42
- package/dist/lib/startup/root-command.d.ts +0 -19
- package/dist/lib/startup/root-command.js +0 -19
- package/dist/lib/startup/spellcheck.d.ts +0 -13
- package/dist/lib/startup/spellcheck.js +0 -13
- package/dist/lib/state.d.ts +0 -376
- package/dist/lib/state.js +19 -737
- package/dist/lib/storage/selection.d.ts +0 -40
- package/dist/lib/storage/selection.js +0 -29
- package/dist/lib/subagents-registry.d.ts +0 -56
- package/dist/lib/subagents-registry.js +0 -99
- package/dist/lib/subagents.d.ts +0 -128
- package/dist/lib/subagents.js +1 -158
- package/dist/lib/summarizer/config.d.ts +0 -37
- package/dist/lib/summarizer/config.js +0 -37
- package/dist/lib/summarizer/pass.d.ts +0 -20
- package/dist/lib/summarizer/pass.js +1 -34
- package/dist/lib/summarizer/summarize.d.ts +1 -49
- package/dist/lib/summarizer/summarize.js +0 -35
- package/dist/lib/sync-passphrase.d.ts +0 -16
- package/dist/lib/sync-passphrase.js +1 -18
- package/dist/lib/sync-status.d.ts +0 -72
- package/dist/lib/sync-status.js +0 -55
- package/dist/lib/sync-umbrella.d.ts +0 -54
- package/dist/lib/sync-umbrella.js +0 -48
- package/dist/lib/system-run-sync.d.ts +0 -5
- package/dist/lib/system-run-sync.js +1 -31
- package/dist/lib/teams/agents.d.ts +1 -444
- package/dist/lib/teams/agents.js +11 -871
- package/dist/lib/teams/api.d.ts +2 -52
- package/dist/lib/teams/api.js +4 -63
- package/dist/lib/teams/debug.d.ts +0 -6
- package/dist/lib/teams/debug.js +0 -6
- package/dist/lib/teams/delivery.d.ts +0 -41
- package/dist/lib/teams/delivery.js +0 -32
- package/dist/lib/teams/file_ops.d.ts +0 -11
- package/dist/lib/teams/file_ops.js +0 -11
- package/dist/lib/teams/forEach.d.ts +0 -76
- package/dist/lib/teams/forEach.js +1 -77
- package/dist/lib/teams/index.d.ts +1 -7
- package/dist/lib/teams/index.js +1 -7
- package/dist/lib/teams/parsers.d.ts +0 -4
- package/dist/lib/teams/parsers.js +0 -81
- package/dist/lib/teams/persistence.d.ts +0 -2
- package/dist/lib/teams/persistence.js +0 -12
- package/dist/lib/teams/placement-probe.d.ts +0 -12
- package/dist/lib/teams/placement-probe.js +1 -51
- package/dist/lib/teams/pr-watch.d.ts +0 -107
- package/dist/lib/teams/pr-watch.js +1 -107
- package/dist/lib/teams/registry.d.ts +0 -36
- package/dist/lib/teams/registry.js +0 -47
- package/dist/lib/teams/remoteWorktree.d.ts +0 -50
- package/dist/lib/teams/remoteWorktree.js +1 -96
- package/dist/lib/teams/scheduler.d.ts +0 -111
- package/dist/lib/teams/scheduler.js +2 -125
- package/dist/lib/teams/summarizer.d.ts +0 -22
- package/dist/lib/teams/summarizer.js +6 -50
- package/dist/lib/teams/supervisor.d.ts +0 -38
- package/dist/lib/teams/supervisor.js +0 -21
- package/dist/lib/teams/worktree.d.ts +0 -95
- package/dist/lib/teams/worktree.js +3 -110
- package/dist/lib/template.d.ts +0 -21
- package/dist/lib/template.js +0 -23
- package/dist/lib/term-client.d.ts +0 -26
- package/dist/lib/term-client.js +0 -48
- package/dist/lib/term-driver.d.ts +0 -5
- package/dist/lib/term-driver.js +0 -8
- package/dist/lib/terminal/backends/ghostty.d.ts +0 -2
- package/dist/lib/terminal/backends/ghostty.js +0 -12
- package/dist/lib/terminal/backends/index.d.ts +0 -17
- package/dist/lib/terminal/backends/index.js +0 -15
- package/dist/lib/terminal/backends/iterm.d.ts +0 -2
- package/dist/lib/terminal/backends/iterm.js +0 -10
- package/dist/lib/terminal/backends/terminal-app.d.ts +0 -10
- package/dist/lib/terminal/backends/terminal-app.js +0 -30
- package/dist/lib/terminal/backends/tmux.d.ts +0 -10
- package/dist/lib/terminal/backends/tmux.js +0 -2
- package/dist/lib/terminal/backends/vscodium-agent.d.ts +0 -25
- package/dist/lib/terminal/backends/vscodium-agent.js +0 -36
- package/dist/lib/terminal/engine.d.ts +0 -17
- package/dist/lib/terminal/engine.js +0 -10
- package/dist/lib/terminal/index.d.ts +0 -8
- package/dist/lib/terminal/inject.d.ts +1 -173
- package/dist/lib/terminal/inject.js +0 -146
- package/dist/lib/terminal/policy.d.ts +0 -8
- package/dist/lib/terminal/policy.js +0 -1
- package/dist/lib/terminal/preferred.d.ts +0 -66
- package/dist/lib/terminal/preferred.js +0 -30
- package/dist/lib/terminal/quote.d.ts +0 -8
- package/dist/lib/terminal/quote.js +0 -8
- package/dist/lib/terminal/resolve.d.ts +0 -46
- package/dist/lib/terminal/resolve.js +0 -30
- package/dist/lib/terminal/run-surface.d.ts +0 -56
- package/dist/lib/terminal/run-surface.js +0 -46
- package/dist/lib/terminal/shell.d.ts +0 -3
- package/dist/lib/terminal/shell.js +0 -13
- package/dist/lib/terminal/transport.d.ts +0 -14
- package/dist/lib/terminal/transport.js +1 -30
- package/dist/lib/terminal/types.d.ts +0 -40
- package/dist/lib/terminal/types.js +0 -10
- package/dist/lib/text/relative-time.d.ts +0 -36
- package/dist/lib/text/relative-time.js +0 -43
- package/dist/lib/text/short-id.d.ts +0 -16
- package/dist/lib/text/short-id.js +0 -16
- package/dist/lib/text/width.d.ts +0 -24
- package/dist/lib/text/width.js +10 -52
- package/dist/lib/tmux/binary.d.ts +0 -36
- package/dist/lib/tmux/binary.js +0 -28
- package/dist/lib/tmux/index.d.ts +0 -5
- package/dist/lib/tmux/index.js +0 -5
- package/dist/lib/tmux/orphan-reap.d.ts +0 -253
- package/dist/lib/tmux/orphan-reap.js +3 -299
- package/dist/lib/tmux/paths.d.ts +0 -14
- package/dist/lib/tmux/paths.js +0 -14
- package/dist/lib/tmux/session.d.ts +0 -263
- package/dist/lib/tmux/session.js +6 -344
- package/dist/lib/traces/backend.d.ts +0 -20
- package/dist/lib/traces/backend.js +0 -23
- package/dist/lib/traces/classify.d.ts +0 -20
- package/dist/lib/traces/classify.js +0 -7
- package/dist/lib/traces/insights.d.ts +1 -84
- package/dist/lib/traces/insights.js +0 -126
- package/dist/lib/traces/phenotype.d.ts +0 -69
- package/dist/lib/traces/phenotype.js +0 -150
- package/dist/lib/traces/provision.d.ts +0 -1
- package/dist/lib/traces/provision.js +0 -5
- package/dist/lib/traces/schema2-build.d.ts +3 -60
- package/dist/lib/traces/schema2-build.js +8 -149
- package/dist/lib/traces/schema2-danger.d.ts +0 -30
- package/dist/lib/traces/schema2-danger.js +1 -63
- package/dist/lib/traces/schema2.d.ts +0 -11
- package/dist/lib/traces/segments.d.ts +0 -44
- package/dist/lib/traces/segments.js +0 -65
- package/dist/lib/traces/sync.d.ts +2 -239
- package/dist/lib/traces/sync.js +15 -237
- package/dist/lib/traces/worker-template.d.ts +0 -3
- package/dist/lib/traces/worker-template.js +0 -29
- package/dist/lib/triggers/handlers.d.ts +0 -82
- package/dist/lib/triggers/handlers.js +0 -75
- package/dist/lib/triggers/webhook.d.ts +0 -158
- package/dist/lib/triggers/webhook.js +0 -143
- package/dist/lib/types.d.ts +0 -736
- package/dist/lib/types.js +0 -50
- package/dist/lib/uninstall.d.ts +0 -17
- package/dist/lib/uninstall.js +0 -75
- package/dist/lib/usage-backoff.d.ts +0 -20
- package/dist/lib/usage-backoff.js +3 -60
- package/dist/lib/usage-refresh.d.ts +0 -154
- package/dist/lib/usage-refresh.js +8 -212
- package/dist/lib/verbs.d.ts +0 -12
- package/dist/lib/verbs.js +0 -12
- package/dist/lib/version-duplicates.d.ts +0 -6
- package/dist/lib/version-duplicates.js +0 -6
- package/dist/lib/version.d.ts +0 -55
- package/dist/lib/version.js +1 -58
- package/dist/lib/view-types.d.ts +0 -48
- package/dist/lib/warn-unpushed.d.ts +0 -27
- package/dist/lib/warn-unpushed.js +1 -45
- package/dist/lib/watchdog/history.d.ts +0 -1
- package/dist/lib/watchdog/history.js +0 -3
- package/dist/lib/watchdog/index.js +0 -2
- package/dist/lib/watchdog/log.d.ts +0 -19
- package/dist/lib/watchdog/log.js +0 -34
- package/dist/lib/watchdog/read.d.ts +0 -27
- package/dist/lib/watchdog/read.js +3 -58
- package/dist/lib/watchdog/rotate.d.ts +0 -139
- package/dist/lib/watchdog/rotate.js +2 -151
- package/dist/lib/watchdog/runner.d.ts +0 -125
- package/dist/lib/watchdog/runner.js +3 -223
- package/dist/lib/watchdog/service.d.ts +0 -1
- package/dist/lib/watchdog/service.js +0 -2
- package/dist/lib/watchdog/watchdog-agent.d.ts +0 -31
- package/dist/lib/watchdog/watchdog-agent.js +0 -27
- package/dist/lib/watchdog/watchdog.d.ts +0 -7
- package/dist/lib/watchdog/watchdog.js +0 -10
- package/dist/lib/watchdog/watchdogTail.js +0 -7
- package/dist/lib/whats-new.d.ts +0 -10
- package/dist/lib/whats-new.js +0 -21
- package/dist/lib/workflows-registry.d.ts +0 -45
- package/dist/lib/workflows-registry.js +0 -60
- package/dist/lib/workflows.d.ts +0 -282
- package/dist/lib/workflows.js +3 -213
- package/dist/lib/worktree/held.d.ts +0 -89
- package/dist/lib/worktree/held.js +1 -103
- package/dist/lib/wrap.d.ts +0 -32
- package/dist/lib/wrap.js +0 -32
- package/dist/lib/yaml-io.d.ts +0 -45
- package/dist/lib/yaml-io.js +0 -47
- package/dist/session-tracker/dist/adapters/claude.js +0 -2
- package/dist/session-tracker/dist/hook.sh +4 -37
- package/dist/session-tracker/dist/index.d.ts +0 -7
- package/dist/session-tracker/dist/index.js +0 -5
- package/dist/session-tracker/dist/install-hook.d.ts +0 -5
- package/dist/session-tracker/dist/install-hook.js +1 -15
- package/dist/session-tracker/dist/prune-state.js +0 -4
- package/dist/session-tracker/dist/reader.js +0 -4
- package/dist/session-tracker/dist/state-file.d.ts +0 -3
- package/dist/session-tracker/dist/state-file.js +3 -8
- package/package.json +3 -4
- package/scripts/postinstall.js +8 -116
- package/dist/lib/session/artifacts.d.ts +0 -14
- package/dist/lib/session/artifacts.js +0 -101
- package/dist/lib/session/bash-command.d.ts +0 -63
- package/dist/lib/session/bash-command.js +0 -490
- package/dist/lib/session/digest.d.ts +0 -66
- package/dist/lib/session/digest.js +0 -328
- package/dist/lib/session/highlights.d.ts +0 -151
- package/dist/lib/session/highlights.js +0 -391
- package/dist/lib/session/insights.d.ts +0 -165
- package/dist/lib/session/insights.js +0 -563
- package/dist/lib/session/linear.d.ts +0 -19
- package/dist/lib/session/linear.js +0 -99
- package/dist/lib/session/parse.d.ts +0 -224
- package/dist/lib/session/parse.js +0 -2408
- package/dist/lib/session/prompt.d.ts +0 -213
- package/dist/lib/session/prompt.js +0 -601
- package/dist/lib/session/render.d.ts +0 -133
- package/dist/lib/session/render.js +0 -1047
- package/dist/lib/session/share-html.d.ts +0 -35
- package/dist/lib/session/share-html.js +0 -319
- package/dist/lib/session/shell-programs.d.ts +0 -33
- package/dist/lib/session/shell-programs.js +0 -380
- package/dist/lib/session/state.d.ts +0 -269
- package/dist/lib/session/state.js +0 -777
- package/dist/lib/session/stream-render.d.ts +0 -4
- package/dist/lib/session/stream-render.js +0 -131
- package/dist/lib/session/tail.d.ts +0 -88
- package/dist/lib/session/tail.js +0 -294
- package/dist/lib/session/team-filter.d.ts +0 -129
- package/dist/lib/session/team-filter.js +0 -269
- package/dist/lib/session/timeline.d.ts +0 -172
- package/dist/lib/session/timeline.js +0 -636
- package/dist/lib/session/tool-calls.d.ts +0 -132
- package/dist/lib/session/tool-calls.js +0 -674
- package/dist/lib/session/trajectory-compare.d.ts +0 -48
- package/dist/lib/session/trajectory-compare.js +0 -116
- package/dist/lib/session/trajectory-html.d.ts +0 -19
- package/dist/lib/session/trajectory-html.js +0 -771
- package/dist/lib/session/trajectory-lineage.d.ts +0 -93
- package/dist/lib/session/trajectory-lineage.js +0 -195
- package/dist/lib/session/trajectory-text.d.ts +0 -38
- package/dist/lib/session/trajectory-text.js +0 -284
- package/dist/lib/session/trajectory.d.ts +0 -145
- package/dist/lib/session/trajectory.js +0 -394
- package/dist/lib/session/types.d.ts +0 -627
- package/dist/lib/session/types.js +0 -43
|
@@ -32,24 +32,10 @@ export interface FleetHealthRow {
|
|
|
32
32
|
clis: Record<string, FleetCliStatus>;
|
|
33
33
|
sync: FleetSyncStatus[];
|
|
34
34
|
orphans: FleetOrphanStatus[];
|
|
35
|
-
/** Cached auth-health rollup for this host (the Auth column). Undefined when
|
|
36
|
-
* the host has never been probed (`agents fleet ping`) or the cache is cold. */
|
|
37
35
|
auth?: HostAuthSummary;
|
|
38
|
-
/** Resolved online/offline verdict (from {@link deviceOnlineState}). Populated
|
|
39
|
-
* by `runFleetStatus` for the summary view; undefined in the raw grid. */
|
|
40
36
|
online?: OnlineState;
|
|
41
|
-
/** When this box was last seen reachable (ISO), for the "last seen …" note on
|
|
42
|
-
* an offline row. Sourced from the registry's tailscale snapshot / reachability
|
|
43
|
-
* verdict. Undefined when never recorded. */
|
|
44
37
|
lastSeen?: string;
|
|
45
|
-
/** This host's self-reported harness inventory (resources / agent versions /
|
|
46
|
-
* repo state) from its `doctor --json` `fleet` field, for cross-device
|
|
47
|
-
* divergence detection (RUSH-2027). Undefined for an unreachable box or an
|
|
48
|
-
* older CLI that doesn't emit it. */
|
|
49
38
|
inventory?: FleetInventory;
|
|
50
|
-
/** This host's live agent workload (running-agent count + per-context / per-
|
|
51
|
-
* agent breakdown), from the fleet-status mirror / read-union (RUSH-2061).
|
|
52
|
-
* Undefined when no row has been published for the host yet. */
|
|
53
39
|
agents?: FleetAgentCounts;
|
|
54
40
|
}
|
|
55
41
|
interface FleetWarning {
|
|
@@ -69,39 +55,16 @@ export declare function buildFleetHealthReport(rows: FleetHealthRow[], now?: Dat
|
|
|
69
55
|
}): FleetHealthReport;
|
|
70
56
|
export declare function renderFleetWarnings(report: FleetHealthReport): string[];
|
|
71
57
|
export declare function renderFleetMatrix(report: FleetHealthReport): string[];
|
|
72
|
-
/**
|
|
73
|
-
* "as of …" line so cache-served output is honest about age and points at the
|
|
74
|
-
* refresh flag. Stats age comes from `stats.fetchedAt`, auth age from the
|
|
75
|
-
* cached rollup's `oldestCheckedAt`; either may be absent. Returns null when the
|
|
76
|
-
* table carries no timestamped data at all (nothing to date).
|
|
77
|
-
*/
|
|
78
58
|
export declare function freshnessFooter(rows: FleetHealthRow[], now?: number): string | null;
|
|
79
|
-
/** Collapse a long dev build (`0.0.0-dev.<sha>[-dirty]`) to `dev`/`dev-dirty`;
|
|
80
|
-
* released semver is shown verbatim. Keeps the version column narrow and stops
|
|
81
|
-
* a single dev box from widening every row. */
|
|
82
59
|
export declare function shortVersion(version: string | null | undefined): string;
|
|
83
|
-
/** OS bucket label for grouping. Anything unrecognized falls under "Other". */
|
|
84
60
|
export declare function platformGroupLabel(platform: string | undefined): 'macOS' | 'Linux' | 'Windows' | 'Other';
|
|
85
61
|
interface FleetAttentionItem {
|
|
86
|
-
/** Leading mark: `○` offline, `⚠` config/CLI/version issue. */
|
|
87
62
|
glyph: 'offline' | 'warn';
|
|
88
63
|
subject: string;
|
|
89
64
|
detail: string;
|
|
90
|
-
/** The exact command (or instruction) that fixes it. */
|
|
91
65
|
fix: string;
|
|
92
66
|
}
|
|
93
|
-
/**
|
|
94
|
-
* The actionable problems only — each with the command that fixes it. Order:
|
|
95
|
-
* offline boxes, CLI gaps, active-version config drift, then version skew.
|
|
96
|
-
* A healthy fleet returns `[]` (the caller prints an all-clear line).
|
|
97
|
-
*/
|
|
98
67
|
export declare function buildFleetAttentionItems(report: FleetHealthReport, now?: number): FleetAttentionItem[];
|
|
99
|
-
/**
|
|
100
|
-
* The default `agents fleet status` view (RUSH-1966): a one-line rollup, a
|
|
101
|
-
* NEEDS ATTENTION list of only the actionable problems (each with its fix
|
|
102
|
-
* command), quiet per-device rows grouped by OS, and an honest footer. The full
|
|
103
|
-
* auth/CLI/sync grid moves behind `--verbose` ({@link renderFleetMatrix}).
|
|
104
|
-
*/
|
|
105
68
|
export declare function renderFleetSummary(report: FleetHealthReport, opts?: {
|
|
106
69
|
self?: string;
|
|
107
70
|
now?: number;
|
|
@@ -61,11 +61,6 @@ export function buildFleetHealthReport(rows, now = new Date(), opts = {}) {
|
|
|
61
61
|
message: `agents-cli version skew: ${Array.from(versions.keys()).sort().join(', ')}`,
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
|
-
// Cross-device harness divergence (RUSH-2027): compare every device's
|
|
65
|
-
// self-reported inventory against the local baseline and roll the findings up
|
|
66
|
-
// into one warning per affected device. Only runs when a baseline (`self`) is
|
|
67
|
-
// named and at least one device carries an inventory — an older-CLI fleet with
|
|
68
|
-
// no `fleet` field simply produces no divergence warning.
|
|
69
64
|
if (opts.self && rows.some((r) => r.inventory)) {
|
|
70
65
|
const divergence = compareFleetInventories(rows.map((r) => ({ name: r.name, inventory: r.inventory ?? null })), opts.self);
|
|
71
66
|
const byDevice = new Map();
|
|
@@ -142,16 +137,6 @@ function loadLabel(stats) {
|
|
|
142
137
|
const mem = stats.memPercent === undefined ? '-' : `${Math.round(stats.memPercent)}%`;
|
|
143
138
|
return `${load}/${mem}`;
|
|
144
139
|
}
|
|
145
|
-
/**
|
|
146
|
-
* Compact per-host auth cell. Four buckets, deliberately distinct so the column
|
|
147
|
-
* doesn't cry wolf on healthy accounts:
|
|
148
|
-
* `●{live}` green — live-verified
|
|
149
|
-
* `·{present}` gray — signed in but no live probe (codex/grok/…): benign
|
|
150
|
-
* `◐{degraded}` yellow — soft/self-healing (expired/limited/error)
|
|
151
|
-
* `○{revoked}` red — server rejected the token: re-login now
|
|
152
|
-
* A host with no cached auth rows shows "—"; an unreachable/skipped row shows
|
|
153
|
-
* "-" like the other probe columns.
|
|
154
|
-
*/
|
|
155
140
|
function authLabel(row) {
|
|
156
141
|
if (row.error || row.skipped)
|
|
157
142
|
return chalk.gray('-');
|
|
@@ -167,11 +152,8 @@ function authLabel(row) {
|
|
|
167
152
|
parts.push(chalk.yellow(`◐${s.degraded}`));
|
|
168
153
|
if (s.revoked > 0)
|
|
169
154
|
parts.push(chalk.red(`○${s.revoked}`));
|
|
170
|
-
// All-zero can't happen (total > 0); but if only present/degraded exist we
|
|
171
|
-
// still lead with them — never show an empty cell for a probed host.
|
|
172
155
|
return parts.length > 0 ? parts.join(' ') : chalk.gray('—');
|
|
173
156
|
}
|
|
174
|
-
/** Oldest epoch-ms timestamp across rows for a field, or null when none present. */
|
|
175
157
|
function oldestAcross(rows, pick) {
|
|
176
158
|
let oldest = null;
|
|
177
159
|
for (const row of rows) {
|
|
@@ -196,14 +178,8 @@ export function renderFleetMatrix(report) {
|
|
|
196
178
|
return [chalk.gray('No registered devices. Run `agents devices` to register some.')];
|
|
197
179
|
const nameW = Math.min(22, Math.max(6, ...report.devices.map((r) => r.name.length)));
|
|
198
180
|
const versionW = Math.min(14, Math.max(7, ...report.devices.map((r) => (r.version ?? '-').length)));
|
|
199
|
-
// Auth cells are variable-length (up to four space-separated buckets, e.g.
|
|
200
|
-
// `●2 ·3 ◐1 ○1`); size the column to the widest so a mixed-auth row can't
|
|
201
|
-
// overflow the fixed slot and shove every later column out of alignment.
|
|
202
181
|
const authW = Math.max(9, ...report.devices.map((r) => stringWidth(authLabel(r))));
|
|
203
182
|
const width = terminalWidth();
|
|
204
|
-
// 4 = leading " " + the per-row status glyph + its trailing space (rows prefix
|
|
205
|
-
// ` ${statusGlyph} `; the header reserves the same 4 cols so every column lines up).
|
|
206
|
-
// Columns: Device, OS(8), Health(9), Sync(9), CLI(9), Auth(authW), Version, Load/Mem(9), then Note.
|
|
207
183
|
const fixed = 4 + nameW + 2 + 8 + 2 + 9 + 2 + 9 + 2 + 9 + 2 + authW + 2 + versionW + 2 + 9;
|
|
208
184
|
const noteW = Math.max(12, width - fixed);
|
|
209
185
|
const lines = [
|
|
@@ -228,12 +204,6 @@ export function renderFleetMatrix(report) {
|
|
|
228
204
|
lines.push(chalk.gray(foot));
|
|
229
205
|
return lines;
|
|
230
206
|
}
|
|
231
|
-
/**
|
|
232
|
-
* "as of …" line so cache-served output is honest about age and points at the
|
|
233
|
-
* refresh flag. Stats age comes from `stats.fetchedAt`, auth age from the
|
|
234
|
-
* cached rollup's `oldestCheckedAt`; either may be absent. Returns null when the
|
|
235
|
-
* table carries no timestamped data at all (nothing to date).
|
|
236
|
-
*/
|
|
237
207
|
export function freshnessFooter(rows, now = Date.now()) {
|
|
238
208
|
const oldestStats = oldestAcross(rows, (r) => r.stats?.fetchedAt);
|
|
239
209
|
const oldestAuth = oldestAcross(rows, (r) => r.auth?.oldestCheckedAt);
|
|
@@ -246,13 +216,6 @@ export function freshnessFooter(rows, now = Date.now()) {
|
|
|
246
216
|
return null;
|
|
247
217
|
return ` updated ${parts.join(' · ')} — pass --refresh (--live) for a live probe`;
|
|
248
218
|
}
|
|
249
|
-
// ---------------------------------------------------------------------------
|
|
250
|
-
// Summary view (default): rollup + NEEDS ATTENTION + OS groups + footer.
|
|
251
|
-
// The full grid above is kept for `--verbose`. (RUSH-1966)
|
|
252
|
-
// ---------------------------------------------------------------------------
|
|
253
|
-
/** Collapse a long dev build (`0.0.0-dev.<sha>[-dirty]`) to `dev`/`dev-dirty`;
|
|
254
|
-
* released semver is shown verbatim. Keeps the version column narrow and stops
|
|
255
|
-
* a single dev box from widening every row. */
|
|
256
219
|
export function shortVersion(version) {
|
|
257
220
|
if (!version)
|
|
258
221
|
return '—';
|
|
@@ -261,7 +224,6 @@ export function shortVersion(version) {
|
|
|
261
224
|
return /dirty/.test(version) ? 'dev-dirty' : 'dev';
|
|
262
225
|
return version;
|
|
263
226
|
}
|
|
264
|
-
/** OS bucket label for grouping. Anything unrecognized falls under "Other". */
|
|
265
227
|
export function platformGroupLabel(platform) {
|
|
266
228
|
const p = (platform ?? '').toLowerCase();
|
|
267
229
|
if (p === 'macos' || p === 'darwin')
|
|
@@ -273,50 +235,29 @@ export function platformGroupLabel(platform) {
|
|
|
273
235
|
return 'Other';
|
|
274
236
|
}
|
|
275
237
|
const GROUP_ORDER = ['macOS', 'Linux', 'Windows', 'Other'];
|
|
276
|
-
/** Non-fresh sync rows for the ACTIVE (default) version only — the drift that a
|
|
277
|
-
* running install actually feels, not stale/cold counts across old orphans. */
|
|
278
238
|
function activeDriftRows(row) {
|
|
279
239
|
return row.sync.filter((s) => s.isDefault && s.status !== 'fresh');
|
|
280
240
|
}
|
|
281
241
|
function isOffline(row) {
|
|
282
|
-
// Prefer the resolved verdict; fall back to a probe error/skip when the caller
|
|
283
|
-
// didn't populate it (e.g. a raw report). Only a positive 'online' is "up".
|
|
284
242
|
if (row.online)
|
|
285
243
|
return row.online !== 'online';
|
|
286
244
|
return Boolean(row.error || row.skipped);
|
|
287
245
|
}
|
|
288
|
-
/** A box with a real offline verdict — as opposed to `unknown` (registered but
|
|
289
|
-
* never addressed/probed). Only a genuine offline is a "check the box" item;
|
|
290
|
-
* an unknown box is unconfigured, not down. */
|
|
291
246
|
function isGenuinelyOffline(row) {
|
|
292
247
|
return row.online === 'offline' || (!row.online && Boolean(row.error || row.skipped));
|
|
293
248
|
}
|
|
294
|
-
/** A CLI count is only worth flagging when it's stark — the box is missing more
|
|
295
|
-
* than two-thirds of the known agent CLIs (e.g. 1/9), which signals a
|
|
296
|
-
* broken/half-set-up box. A normal partial install (a box that just doesn't run
|
|
297
|
-
* every agent) is not a problem, so this deliberately does NOT fire at 4/9 or
|
|
298
|
-
* 6/9. The full count stays visible under `--verbose`. */
|
|
299
249
|
function starkCliGap(row) {
|
|
300
250
|
const { installed, total } = installedCliCount(row);
|
|
301
251
|
return total > 0 && installed * 3 < total ? { installed, total } : null;
|
|
302
252
|
}
|
|
303
|
-
/**
|
|
304
|
-
* The actionable problems only — each with the command that fixes it. Order:
|
|
305
|
-
* offline boxes, CLI gaps, active-version config drift, then version skew.
|
|
306
|
-
* A healthy fleet returns `[]` (the caller prints an all-clear line).
|
|
307
|
-
*/
|
|
308
253
|
export function buildFleetAttentionItems(report, now = Date.now()) {
|
|
309
254
|
const items = [];
|
|
310
|
-
// 1) Genuinely-offline boxes (not `unknown`/unconfigured), each individually.
|
|
311
255
|
for (const row of report.devices) {
|
|
312
256
|
if (!isGenuinelyOffline(row))
|
|
313
257
|
continue;
|
|
314
258
|
const seen = row.lastSeen ? ` · last seen ${formatCheckedAge(Date.parse(row.lastSeen), now)}` : '';
|
|
315
259
|
items.push({ glyph: 'offline', subject: row.name, detail: `offline${seen}`, fix: 'check the box' });
|
|
316
260
|
}
|
|
317
|
-
// 2) Boxes that need `agents fleet apply` — merge config drift and a stark CLI gap
|
|
318
|
-
// into ONE item per box (both are fixed by the same command, so don't
|
|
319
|
-
// double-list). An offline box's config/CLI is unknowable, so skip it.
|
|
320
261
|
for (const row of report.devices) {
|
|
321
262
|
if (isOffline(row))
|
|
322
263
|
continue;
|
|
@@ -330,7 +271,6 @@ export function buildFleetAttentionItems(report, now = Date.now()) {
|
|
|
330
271
|
items.push({ glyph: 'warn', subject: row.name, detail: reasons.join(' · '), fix: `agents fleet apply --device ${row.name}` });
|
|
331
272
|
}
|
|
332
273
|
}
|
|
333
|
-
// 3) Version skew across the fleet — one line.
|
|
334
274
|
const skew = report.warnings.find((w) => w.kind === 'version-skew');
|
|
335
275
|
if (skew) {
|
|
336
276
|
const counts = new Map();
|
|
@@ -346,7 +286,6 @@ export function buildFleetAttentionItems(report, now = Date.now()) {
|
|
|
346
286
|
.join(' · ');
|
|
347
287
|
items.push({ glyph: 'warn', subject: 'version skew', detail: summary, fix: 'agents upgrade --fleet' });
|
|
348
288
|
}
|
|
349
|
-
// 4) Cross-device harness divergence — one item per diverged box (RUSH-2027).
|
|
350
289
|
for (const w of report.warnings) {
|
|
351
290
|
if (w.kind !== 'divergence')
|
|
352
291
|
continue;
|
|
@@ -359,8 +298,6 @@ export function buildFleetAttentionItems(report, now = Date.now()) {
|
|
|
359
298
|
}
|
|
360
299
|
return items;
|
|
361
300
|
}
|
|
362
|
-
/** Right-aligned `<content>` on the same line as `left`, clamped so it never
|
|
363
|
-
* overlaps the left text on a narrow terminal. */
|
|
364
301
|
function alignRight(left, right, width) {
|
|
365
302
|
const gap = width - stringWidth(left) - stringWidth(right);
|
|
366
303
|
return gap > 1 ? `${left}${' '.repeat(gap)}${right}` : `${left} ${right}`;
|
|
@@ -382,12 +319,6 @@ function versionCell(row) {
|
|
|
382
319
|
return chalk.gray('—');
|
|
383
320
|
return shortVersion(row.version);
|
|
384
321
|
}
|
|
385
|
-
/**
|
|
386
|
-
* The default `agents fleet status` view (RUSH-1966): a one-line rollup, a
|
|
387
|
-
* NEEDS ATTENTION list of only the actionable problems (each with its fix
|
|
388
|
-
* command), quiet per-device rows grouped by OS, and an honest footer. The full
|
|
389
|
-
* auth/CLI/sync grid moves behind `--verbose` ({@link renderFleetMatrix}).
|
|
390
|
-
*/
|
|
391
322
|
export function renderFleetSummary(report, opts = {}) {
|
|
392
323
|
const now = opts.now ?? Date.now();
|
|
393
324
|
const width = terminalWidth();
|
|
@@ -416,8 +347,6 @@ export function renderFleetSummary(report, opts = {}) {
|
|
|
416
347
|
}
|
|
417
348
|
lines.push('');
|
|
418
349
|
}
|
|
419
|
-
// Per-device rows, grouped by OS. Within a group, this machine floats to the
|
|
420
|
-
// top; the rest stay alphabetical.
|
|
421
350
|
const nameW = Math.min(18, Math.max(6, ...rows.map((r) => r.name.length)));
|
|
422
351
|
const headW = Math.max(...rows.map((r) => stringWidth(headroomWord(r))));
|
|
423
352
|
const loadW = Math.max(...rows.map((r) => stringWidth(loadMemCell(r))));
|
|
@@ -459,8 +388,6 @@ export function renderFleetSummary(report, opts = {}) {
|
|
|
459
388
|
}
|
|
460
389
|
lines.push('');
|
|
461
390
|
}
|
|
462
|
-
// Footer: orphan-version nudge (a `prune` concern, not drift), then an honest
|
|
463
|
-
// freshness line naming the cache age and what --live/--verbose add.
|
|
464
391
|
const orphaned = rows.filter((r) => r.orphans.length > 0).length;
|
|
465
392
|
if (orphaned > 0) {
|
|
466
393
|
const subject = orphaned === 1 ? '1 device carries' : `${orphaned} devices carry`;
|
|
@@ -1,53 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Device resource probing for `agents devices list`.
|
|
3
|
-
*
|
|
4
|
-
* One SSH round-trip per device gathers load average, memory pressure, disk, and core
|
|
5
|
-
* count (mac + linux via a POSIX snippet, windows via a CIM one-liner), parsed
|
|
6
|
-
* into a {@link DeviceStats}. Probes run in parallel with a bounded timeout so
|
|
7
|
-
* the list stays responsive — a slow or hung box degrades to "no stats" instead
|
|
8
|
-
* of blocking the whole table.
|
|
9
|
-
*
|
|
10
|
-
* The parsers are pure and unit-tested (health.test.ts). They mirror the ones in
|
|
11
|
-
* AGI EXT (apps/ext/src/core/deviceHealth.ts) — kept as a
|
|
12
|
-
* separate copy on purpose: the CLI does not import across packages.
|
|
13
|
-
*/
|
|
14
1
|
import type { DeviceProfile } from './registry.js';
|
|
15
|
-
/** Default per-device probe budget, for a device reachable over a DIRECT
|
|
16
|
-
* Tailscale path. Short enough that the list never hangs on a wedged box. */
|
|
17
2
|
export declare const PROBE_TIMEOUT_MS = 2500;
|
|
18
|
-
/**
|
|
19
|
-
* Probe budget for a device whose last handshake was DERP-relayed
|
|
20
|
-
* ({@link DeviceTailscale.direct} === false).
|
|
21
|
-
*
|
|
22
|
-
* This constant used to not exist: 2.5s was applied to every device and its
|
|
23
|
-
* docstring claimed to be "long enough for a cold relayed SSH handshake". That
|
|
24
|
-
* was false, and on a fleet with no direct paths it broke `--device auto`
|
|
25
|
-
* outright (PHNX-3682). Measured on a 9-box relayed fleet, probed in parallel
|
|
26
|
-
* with cold paths: 1686/1805/1914/2688/2706/2749/3082/5586/6588 ms — six of nine
|
|
27
|
-
* over budget, every one of them healthy (rc=0 within 10s). Warm, the same
|
|
28
|
-
* probes take 512-872ms, which is what made the failure intermittent.
|
|
29
|
-
*
|
|
30
|
-
* A relayed hop pays DERP path setup on top of the TCP+SSH handshake, so it
|
|
31
|
-
* gets the same budget the readiness probe already allows
|
|
32
|
-
* (`READY_PROBE_TIMEOUT_MS`) rather than the direct-path one.
|
|
33
|
-
*/
|
|
34
3
|
export declare const RELAYED_PROBE_TIMEOUT_MS = 8000;
|
|
35
|
-
/**
|
|
36
|
-
* The probe budget for one device. A relayed peer gets
|
|
37
|
-
* {@link RELAYED_PROBE_TIMEOUT_MS}; a direct (or unknown-path) peer keeps the
|
|
38
|
-
* tight {@link PROBE_TIMEOUT_MS}. Windows keeps its own larger budget, which
|
|
39
|
-
* already exceeds both.
|
|
40
|
-
*
|
|
41
|
-
* `direct` is only meaningful when a tailscale snapshot exists — a
|
|
42
|
-
* `via:"manual"` device never gets a peer entry, so absence is "unknown path",
|
|
43
|
-
* not "relayed", and must not silently widen every manual device's budget.
|
|
44
|
-
*/
|
|
45
4
|
export declare function probeBudgetMs(device: DeviceProfile): number;
|
|
46
|
-
/** Windows probe budget. The first CIM query of a PowerShell session pays a
|
|
47
|
-
* "Preparing modules for first use" cost on top of PowerShell startup, which
|
|
48
|
-
* routinely blows the 2.5s POSIX budget on a relayed connection. */
|
|
49
5
|
export declare const WIN_PROBE_TIMEOUT_MS = 6000;
|
|
50
|
-
/** One-shot remote snapshot: load, memory, core count, then root filesystem. */
|
|
51
6
|
export declare const PROBE_SNIPPET = "uptime; echo ---AGSTAT---; (vm_stat 2>/dev/null || cat /proc/meminfo 2>/dev/null); echo ---AGSTAT---; (nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null); echo ---AGSTAT---; df -Pk / 2>/dev/null | tail -1";
|
|
52
7
|
export declare function localProbeInvocation(platform: NodeJS.Platform): {
|
|
53
8
|
file: string;
|
|
@@ -56,18 +11,9 @@ export declare function localProbeInvocation(platform: NodeJS.Platform): {
|
|
|
56
11
|
export interface DeviceStats {
|
|
57
12
|
host: string;
|
|
58
13
|
reachable: boolean;
|
|
59
|
-
/**
|
|
60
|
-
* The probe exceeded its budget rather than being refused or unresolvable.
|
|
61
|
-
* Only meaningful when `reachable` is false — it separates "this box did not
|
|
62
|
-
* answer in time" from "this box actively could not be reached", so callers
|
|
63
|
-
* report a slow link honestly instead of calling a healthy device offline
|
|
64
|
-
* (PHNX-3682).
|
|
65
|
-
*/
|
|
66
14
|
timedOut?: boolean;
|
|
67
15
|
loadAvg1?: number;
|
|
68
16
|
ncpu?: number;
|
|
69
|
-
/** Load normalized to core count (the "has room" number): loadAvg1 / ncpu *
|
|
70
|
-
* 100 on mac/linux, CPU utilization % directly on windows (no loadAvg1). */
|
|
71
17
|
loadPercent?: number;
|
|
72
18
|
memPercent?: number;
|
|
73
19
|
memTotalBytes?: number;
|
|
@@ -75,11 +21,9 @@ export interface DeviceStats {
|
|
|
75
21
|
diskTotalBytes?: number;
|
|
76
22
|
diskFreeBytes?: number;
|
|
77
23
|
diskUsedPercent?: number;
|
|
78
|
-
/** When the static ncpu/RAM/disk totals were last observed. */
|
|
79
24
|
specsFetchedAt?: number;
|
|
80
25
|
fetchedAt: number;
|
|
81
26
|
}
|
|
82
|
-
/** Compact human byte size: 512M, 64G, 1.5T (binary units, ≤1 decimal). */
|
|
83
27
|
export declare function fmtBytes(bytes: number | undefined): string;
|
|
84
28
|
export declare function parseUptime(out: string): {
|
|
85
29
|
loadAvg1?: number;
|
|
@@ -99,13 +43,8 @@ interface DiskStats {
|
|
|
99
43
|
diskFreeBytes?: number;
|
|
100
44
|
diskUsedPercent?: number;
|
|
101
45
|
}
|
|
102
|
-
/** Parse the final data row from `df -k /`, deriving usage from block counts. */
|
|
103
46
|
export declare function parseDf(out: string): DiskStats;
|
|
104
|
-
/** Assemble a DeviceStats from the four snippet sections. */
|
|
105
47
|
export declare function parseProbeOutput(host: string, stdout: string, fetchedAt: number): DeviceStats;
|
|
106
|
-
/** Assemble a DeviceStats from the windows one-liner. A missing marker line
|
|
107
|
-
* (e.g. CIM unavailable) keeps `reachable: true` — ssh answered — with no
|
|
108
|
-
* numbers, mirroring how garbage POSIX output degrades. */
|
|
109
48
|
export declare function parseWinProbeOutput(host: string, stdout: string, fetchedAt: number): DeviceStats;
|
|
110
49
|
interface FleetCapacity {
|
|
111
50
|
reachable: number;
|
|
@@ -113,27 +52,17 @@ interface FleetCapacity {
|
|
|
113
52
|
memTotalBytes: number;
|
|
114
53
|
memFreeBytes: number;
|
|
115
54
|
}
|
|
116
|
-
/** Sum cores and memory across reachable devices for the summary footer. */
|
|
117
55
|
export declare function fleetCapacity(statsList: Iterable<DeviceStats>): FleetCapacity;
|
|
118
|
-
/** Headroom bucket from the worst of normalized-load and memory. */
|
|
119
56
|
export type Headroom = 'idle' | 'light' | 'busy' | 'loaded' | 'unknown';
|
|
120
57
|
export declare function headroom(stats: DeviceStats | undefined): Headroom;
|
|
121
|
-
/** Probe one device over the same ssh path as `agents ssh <name>`. Never throws;
|
|
122
|
-
* an unreachable/slow/misconfigured device resolves to `reachable: false`. */
|
|
123
58
|
export declare function probeDeviceStats(device: DeviceProfile, opts?: {
|
|
124
59
|
timeoutMs?: number;
|
|
125
60
|
now?: number;
|
|
126
61
|
}): Promise<DeviceStats>;
|
|
127
|
-
/** Probe the local machine directly (no ssh round-trip) — used for the "this
|
|
128
|
-
* machine" row so it always shows real numbers even if it isn't ssh-reachable
|
|
129
|
-
* from itself. */
|
|
130
62
|
export declare function probeLocalStats(host: string, opts?: {
|
|
131
63
|
timeoutMs?: number;
|
|
132
64
|
now?: number;
|
|
133
65
|
}): Promise<DeviceStats>;
|
|
134
|
-
/** Probe many devices concurrently; returns a name→stats map. Bounded by the
|
|
135
|
-
* per-probe timeout, so total wall time ≈ the slowest single probe. The device
|
|
136
|
-
* named `selfName` is probed locally instead of over ssh. */
|
|
137
66
|
export declare function probeFleetStats(devices: DeviceProfile[], opts?: {
|
|
138
67
|
timeoutMs?: number;
|
|
139
68
|
selfName?: string;
|
|
@@ -1,48 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Device resource probing for `agents devices list`.
|
|
3
|
-
*
|
|
4
|
-
* One SSH round-trip per device gathers load average, memory pressure, disk, and core
|
|
5
|
-
* count (mac + linux via a POSIX snippet, windows via a CIM one-liner), parsed
|
|
6
|
-
* into a {@link DeviceStats}. Probes run in parallel with a bounded timeout so
|
|
7
|
-
* the list stays responsive — a slow or hung box degrades to "no stats" instead
|
|
8
|
-
* of blocking the whole table.
|
|
9
|
-
*
|
|
10
|
-
* The parsers are pure and unit-tested (health.test.ts). They mirror the ones in
|
|
11
|
-
* AGI EXT (apps/ext/src/core/deviceHealth.ts) — kept as a
|
|
12
|
-
* separate copy on purpose: the CLI does not import across packages.
|
|
13
|
-
*/
|
|
14
1
|
import { execFile } from 'child_process';
|
|
15
2
|
import { buildSshInvocation, writeAskpassShim } from './connect.js';
|
|
16
|
-
/** Default per-device probe budget, for a device reachable over a DIRECT
|
|
17
|
-
* Tailscale path. Short enough that the list never hangs on a wedged box. */
|
|
18
3
|
export const PROBE_TIMEOUT_MS = 2_500;
|
|
19
|
-
/**
|
|
20
|
-
* Probe budget for a device whose last handshake was DERP-relayed
|
|
21
|
-
* ({@link DeviceTailscale.direct} === false).
|
|
22
|
-
*
|
|
23
|
-
* This constant used to not exist: 2.5s was applied to every device and its
|
|
24
|
-
* docstring claimed to be "long enough for a cold relayed SSH handshake". That
|
|
25
|
-
* was false, and on a fleet with no direct paths it broke `--device auto`
|
|
26
|
-
* outright (PHNX-3682). Measured on a 9-box relayed fleet, probed in parallel
|
|
27
|
-
* with cold paths: 1686/1805/1914/2688/2706/2749/3082/5586/6588 ms — six of nine
|
|
28
|
-
* over budget, every one of them healthy (rc=0 within 10s). Warm, the same
|
|
29
|
-
* probes take 512-872ms, which is what made the failure intermittent.
|
|
30
|
-
*
|
|
31
|
-
* A relayed hop pays DERP path setup on top of the TCP+SSH handshake, so it
|
|
32
|
-
* gets the same budget the readiness probe already allows
|
|
33
|
-
* (`READY_PROBE_TIMEOUT_MS`) rather than the direct-path one.
|
|
34
|
-
*/
|
|
35
4
|
export const RELAYED_PROBE_TIMEOUT_MS = 8_000;
|
|
36
|
-
|
|
37
|
-
* The probe budget for one device. A relayed peer gets
|
|
38
|
-
* {@link RELAYED_PROBE_TIMEOUT_MS}; a direct (or unknown-path) peer keeps the
|
|
39
|
-
* tight {@link PROBE_TIMEOUT_MS}. Windows keeps its own larger budget, which
|
|
40
|
-
* already exceeds both.
|
|
41
|
-
*
|
|
42
|
-
* `direct` is only meaningful when a tailscale snapshot exists — a
|
|
43
|
-
* `via:"manual"` device never gets a peer entry, so absence is "unknown path",
|
|
44
|
-
* not "relayed", and must not silently widen every manual device's budget.
|
|
45
|
-
*/
|
|
5
|
+
// Only measured relayed peers receive the wider budget; unknown/manual peers are not assumed relayed.
|
|
46
6
|
export function probeBudgetMs(device) {
|
|
47
7
|
if (device.shell === 'powershell')
|
|
48
8
|
return WIN_PROBE_TIMEOUT_MS;
|
|
@@ -50,26 +10,15 @@ export function probeBudgetMs(device) {
|
|
|
50
10
|
? RELAYED_PROBE_TIMEOUT_MS
|
|
51
11
|
: PROBE_TIMEOUT_MS;
|
|
52
12
|
}
|
|
53
|
-
/** Windows probe budget. The first CIM query of a PowerShell session pays a
|
|
54
|
-
* "Preparing modules for first use" cost on top of PowerShell startup, which
|
|
55
|
-
* routinely blows the 2.5s POSIX budget on a relayed connection. */
|
|
56
13
|
export const WIN_PROBE_TIMEOUT_MS = 6_000;
|
|
57
14
|
const SEP = '---AGSTAT---';
|
|
58
|
-
/** One-shot remote snapshot: load, memory, core count, then root filesystem. */
|
|
59
15
|
export const PROBE_SNIPPET = `uptime; echo ${SEP}; (vm_stat 2>/dev/null || cat /proc/meminfo 2>/dev/null); echo ${SEP}; (nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null); echo ${SEP}; df -Pk / 2>/dev/null | tail -1`;
|
|
60
|
-
/** Windows equivalent, one labeled line via CIM. PowerShell 5.1-safe: no `||`
|
|
61
|
-
* chaining, plain string concatenation. `LoadPercentage` is $null on some
|
|
62
|
-
* hosts/VMs, which concatenates to an empty field — the parser treats that as
|
|
63
|
-
* "no load signal" and headroom falls back to memory pressure alone.
|
|
64
|
-
* wrapRemoteCommand base64-encodes this for powershell-shell devices, so the
|
|
65
|
-
* quoting survives ssh intact. */
|
|
66
16
|
const WIN_PROBE_SNIPPET = `$os = Get-CimInstance Win32_OperatingSystem; $cpu = (Get-CimInstance Win32_Processor | Measure-Object -Property LoadPercentage -Average).Average; $disk = Get-CimInstance Win32_LogicalDisk -Filter "DeviceID='C:'"; Write-Output ('AGWINSTAT load=' + $cpu + ' freeKb=' + $os.FreePhysicalMemory + ' totalKb=' + $os.TotalVisibleMemorySize + ' ncpu=' + $env:NUMBER_OF_PROCESSORS + ' diskFreeKb=' + ($disk.FreeSpace / 1KB) + ' diskTotalKb=' + ($disk.Size / 1KB))`;
|
|
67
17
|
export function localProbeInvocation(platform) {
|
|
68
18
|
return platform === 'win32'
|
|
69
19
|
? { file: 'powershell', args: ['-NoProfile', '-Command', WIN_PROBE_SNIPPET] }
|
|
70
20
|
: { file: 'sh', args: ['-c', PROBE_SNIPPET] };
|
|
71
21
|
}
|
|
72
|
-
/** Compact human byte size: 512M, 64G, 1.5T (binary units, ≤1 decimal). */
|
|
73
22
|
export function fmtBytes(bytes) {
|
|
74
23
|
if (bytes === undefined || !Number.isFinite(bytes) || bytes < 0)
|
|
75
24
|
return '—';
|
|
@@ -100,9 +49,6 @@ export function parseVmStat(out) {
|
|
|
100
49
|
const free = out.match(/Pages free:\s+([0-9]+)/);
|
|
101
50
|
if (!active || !wired || !compressed || !free)
|
|
102
51
|
return {};
|
|
103
|
-
// macOS reclaims inactive + speculative pages on demand, so they count as
|
|
104
|
-
// available — folding them into "free" (as Activity Monitor / vm_pressure do)
|
|
105
|
-
// rather than "used" keeps the headroom bucket honest on a Mac.
|
|
106
52
|
const inactive = out.match(/Pages inactive:\s+([0-9]+)/);
|
|
107
53
|
const speculative = out.match(/Pages speculative:\s+([0-9]+)/);
|
|
108
54
|
const usedPages = parseInt(active[1], 10) + parseInt(wired[1], 10) + parseInt(compressed[1], 10);
|
|
@@ -137,7 +83,6 @@ export function parseNcpu(out) {
|
|
|
137
83
|
const n = parseInt(out.trim().split(/\s+/)[0] ?? '', 10);
|
|
138
84
|
return Number.isFinite(n) && n > 0 ? { ncpu: n } : {};
|
|
139
85
|
}
|
|
140
|
-
/** Parse the final data row from `df -k /`, deriving usage from block counts. */
|
|
141
86
|
export function parseDf(out) {
|
|
142
87
|
const columns = out.trim().split(/\s+/);
|
|
143
88
|
if (columns.length < 4)
|
|
@@ -152,7 +97,6 @@ export function parseDf(out) {
|
|
|
152
97
|
diskUsedPercent: Math.max(0, Math.min(100, ((totalKb - freeKb) / totalKb) * 100)),
|
|
153
98
|
};
|
|
154
99
|
}
|
|
155
|
-
/** Assemble a DeviceStats from the four snippet sections. */
|
|
156
100
|
export function parseProbeOutput(host, stdout, fetchedAt) {
|
|
157
101
|
const [uptimePart = '', memPart = '', ncpuPart = '', diskPart = ''] = stdout.split(SEP);
|
|
158
102
|
const { loadAvg1 } = parseUptime(uptimePart);
|
|
@@ -174,15 +118,8 @@ export function parseProbeOutput(host, stdout, fetchedAt) {
|
|
|
174
118
|
fetchedAt,
|
|
175
119
|
};
|
|
176
120
|
}
|
|
177
|
-
/** Assemble a DeviceStats from the windows one-liner. A missing marker line
|
|
178
|
-
* (e.g. CIM unavailable) keeps `reachable: true` — ssh answered — with no
|
|
179
|
-
* numbers, mirroring how garbage POSIX output degrades. */
|
|
180
121
|
export function parseWinProbeOutput(host, stdout, fetchedAt) {
|
|
181
122
|
const m = stdout.match(/AGWINSTAT load=([0-9.]*) freeKb=([0-9]+) totalKb=([0-9]+) ncpu=([0-9]+)(?: diskFreeKb=([0-9.]+) diskTotalKb=([0-9.]+))?/);
|
|
182
|
-
// Unparseable output still means the probe RAN — the box answered, we just
|
|
183
|
-
// could not read it. Stamp specsFetchedAt anyway so a hardware-fact carry
|
|
184
|
-
// forward (retainHardwareFacts, RUSH-3096) has a real observation moment
|
|
185
|
-
// instead of undefined.
|
|
186
123
|
if (!m)
|
|
187
124
|
return { host, reachable: true, fetchedAt, specsFetchedAt: fetchedAt };
|
|
188
125
|
const loadPercent = m[1] === '' ? undefined : parseFloat(m[1]);
|
|
@@ -207,7 +144,6 @@ export function parseWinProbeOutput(host, stdout, fetchedAt) {
|
|
|
207
144
|
fetchedAt,
|
|
208
145
|
};
|
|
209
146
|
}
|
|
210
|
-
/** Sum cores and memory across reachable devices for the summary footer. */
|
|
211
147
|
export function fleetCapacity(statsList) {
|
|
212
148
|
const cap = { reachable: 0, cores: 0, memTotalBytes: 0, memFreeBytes: 0 };
|
|
213
149
|
for (const s of statsList) {
|
|
@@ -235,8 +171,7 @@ export function headroom(stats) {
|
|
|
235
171
|
return 'busy';
|
|
236
172
|
return 'loaded';
|
|
237
173
|
}
|
|
238
|
-
|
|
239
|
-
* an unreachable/slow/misconfigured device resolves to `reachable: false`. */
|
|
174
|
+
// Stats probes are agentOnly so listing devices never opens credential UI; a timeout means slow, not conclusively unreachable.
|
|
240
175
|
export function probeDeviceStats(device, opts = {}) {
|
|
241
176
|
const host = device.name;
|
|
242
177
|
const fetchedAt = opts.now ?? Date.now();
|
|
@@ -245,13 +180,6 @@ export function probeDeviceStats(device, opts = {}) {
|
|
|
245
180
|
let env;
|
|
246
181
|
try {
|
|
247
182
|
const shim = writeAskpassShim();
|
|
248
|
-
// buildSshInvocation joins the cmd with spaces and hands the string to the
|
|
249
|
-
// remote login shell, which evaluates the snippet's `;`/`||` directly — no
|
|
250
|
-
// `sh -c` wrapper needed (and a wrapper would only re-quote the first token).
|
|
251
|
-
// For powershell devices it base64-encodes the snippet instead.
|
|
252
|
-
// agentOnly: this is a read-only stats probe. A password-auth device must
|
|
253
|
-
// resolve its bundle broker-only — never force a foreground Touch ID sheet
|
|
254
|
-
// just to render the load/mem columns of `agents devices` (RUSH-1970).
|
|
255
183
|
({ args, env } = buildSshInvocation(device, [isWin ? WIN_PROBE_SNIPPET : PROBE_SNIPPET], shim, {}, { agentOnly: true }));
|
|
256
184
|
}
|
|
257
185
|
catch {
|
|
@@ -263,8 +191,6 @@ export function probeDeviceStats(device, opts = {}) {
|
|
|
263
191
|
env: { ...process.env, ...env },
|
|
264
192
|
timeout: opts.timeoutMs ?? probeBudgetMs(device),
|
|
265
193
|
}, (err, stdout) => {
|
|
266
|
-
// execFile kills an over-budget child with a signal; that is a slow link,
|
|
267
|
-
// not an unreachable box, and the two must not read the same downstream.
|
|
268
194
|
if (err || !stdout) {
|
|
269
195
|
const timedOut = Boolean(err && err.killed);
|
|
270
196
|
return resolve(timedOut ? { host, reachable: false, timedOut, fetchedAt } : { host, reachable: false, fetchedAt });
|
|
@@ -273,9 +199,6 @@ export function probeDeviceStats(device, opts = {}) {
|
|
|
273
199
|
});
|
|
274
200
|
});
|
|
275
201
|
}
|
|
276
|
-
/** Probe the local machine directly (no ssh round-trip) — used for the "this
|
|
277
|
-
* machine" row so it always shows real numbers even if it isn't ssh-reachable
|
|
278
|
-
* from itself. */
|
|
279
202
|
export function probeLocalStats(host, opts = {}) {
|
|
280
203
|
const fetchedAt = opts.now ?? Date.now();
|
|
281
204
|
const isWin = process.platform === 'win32';
|
|
@@ -288,9 +211,6 @@ export function probeLocalStats(host, opts = {}) {
|
|
|
288
211
|
});
|
|
289
212
|
});
|
|
290
213
|
}
|
|
291
|
-
/** Probe many devices concurrently; returns a name→stats map. Bounded by the
|
|
292
|
-
* per-probe timeout, so total wall time ≈ the slowest single probe. The device
|
|
293
|
-
* named `selfName` is probed locally instead of over ssh. */
|
|
294
214
|
export async function probeFleetStats(devices, opts = {}) {
|
|
295
215
|
const entries = await Promise.all(devices.map(async (d) => {
|
|
296
216
|
const stats = d.name === opts.selfName
|
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
/** True when a host flag value is the interactive sentinel. */
|
|
2
1
|
export declare function isDeviceInteractive(value: string | undefined | null): boolean;
|
|
3
|
-
/**
|
|
4
|
-
* The device pinned as `interactive.host`, or null when unset.
|
|
5
|
-
*
|
|
6
|
-
* Callers MUST refuse on null rather than falling back to the local machine.
|
|
7
|
-
* The whole point of the sentinel is reaching a screen someone is watching;
|
|
8
|
-
* silently running on a headless worker instead is the exact failure it exists
|
|
9
|
-
* to prevent, and it would fail invisibly.
|
|
10
|
-
*/
|
|
11
2
|
export declare function resolveInteractiveDevice(): string | null;
|
|
12
|
-
/** The actionable error for an unset pin — shared so every call site says the same thing. */
|
|
13
3
|
export declare function interactiveUnsetError(): string;
|
|
@@ -1,52 +1,18 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The `interactive` device sentinel: "wherever the human is sitting".
|
|
3
|
-
*
|
|
4
|
-
* `--device auto` means "pick a box by load". This means the opposite — one
|
|
5
|
-
* specific box, the one whose screen a person is actually looking at, pinned as
|
|
6
|
-
* `interactive.host`.
|
|
7
|
-
*
|
|
8
|
-
* It exists because a skill cannot teach a host name. Guidance that says
|
|
9
|
-
* "deliver it to zion" is wrong on every other fleet and stale the moment the
|
|
10
|
-
* pin changes, so agents were left to infer the target or to skip the step. A
|
|
11
|
-
* fixed token is something a SKILL.md can state literally and have be correct
|
|
12
|
-
* everywhere.
|
|
13
|
-
*
|
|
14
|
-
* Resolution happens at the dispatch site, before `isSelfHost`, exactly like
|
|
15
|
-
* `auto` — so a pin naming this machine runs locally instead of self-SSHing, and
|
|
16
|
-
* the forwarded argv has the routing flag stripped, which is what keeps this
|
|
17
|
-
* from recursing.
|
|
18
|
-
*/
|
|
19
1
|
import { getConfigValue } from '../device-config.js';
|
|
20
2
|
import { RESERVED_DEVICE_NAMES } from './registry.js';
|
|
21
|
-
/** The reserved `--device` value meaning the box the human is at. */
|
|
22
3
|
const INTERACTIVE_DEVICE_SENTINEL = 'interactive';
|
|
23
|
-
/** True when a host flag value is the interactive sentinel. */
|
|
24
4
|
export function isDeviceInteractive(value) {
|
|
25
5
|
return typeof value === 'string' && value.trim().toLowerCase() === INTERACTIVE_DEVICE_SENTINEL;
|
|
26
6
|
}
|
|
27
|
-
/**
|
|
28
|
-
* The device pinned as `interactive.host`, or null when unset.
|
|
29
|
-
*
|
|
30
|
-
* Callers MUST refuse on null rather than falling back to the local machine.
|
|
31
|
-
* The whole point of the sentinel is reaching a screen someone is watching;
|
|
32
|
-
* silently running on a headless worker instead is the exact failure it exists
|
|
33
|
-
* to prevent, and it would fail invisibly.
|
|
34
|
-
*/
|
|
35
7
|
export function resolveInteractiveDevice() {
|
|
36
8
|
const pinned = getConfigValue('interactive.host').value;
|
|
37
9
|
if (typeof pinned !== 'string' || !pinned.trim())
|
|
38
10
|
return null;
|
|
39
11
|
const host = pinned.trim();
|
|
40
|
-
// Defensive only. `interactive.host` rejects every reserved sentinel at WRITE
|
|
41
|
-
// time (assertValidDeviceName), so a pin of "interactive" or "auto" cannot be
|
|
42
|
-
// stored in the first place — which is the right layer, because refusing on
|
|
43
|
-
// read could only ever say "none is set" and send the user back to the command
|
|
44
|
-
// they just ran. This catches a config written by an older version.
|
|
45
12
|
if (RESERVED_DEVICE_NAMES.has(host.toLowerCase()))
|
|
46
13
|
return null;
|
|
47
14
|
return host;
|
|
48
15
|
}
|
|
49
|
-
/** The actionable error for an unset pin — shared so every call site says the same thing. */
|
|
50
16
|
export function interactiveUnsetError() {
|
|
51
17
|
return (`--device interactive needs an interactive host pinned, and none is set.\n` +
|
|
52
18
|
` Set it on the machine you sit at: agents config set interactive.host <device>`);
|