@phnx-labs/agents-cli 1.22.119 → 1.22.121
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +236 -0
- package/README.md +19 -2
- package/dist/bootstrap.d.ts +0 -15
- package/dist/bootstrap.js +10 -409
- package/dist/cli/command-registry.d.ts +0 -58
- package/dist/cli/command-registry.js +2 -74
- package/dist/commands/accounts.d.ts +0 -17
- package/dist/commands/accounts.js +1 -52
- package/dist/commands/alias.d.ts +0 -12
- package/dist/commands/alias.js +0 -6
- package/dist/commands/apply.d.ts +0 -15
- package/dist/commands/apply.js +0 -63
- package/dist/commands/audit.d.ts +0 -12
- package/dist/commands/audit.js +0 -13
- package/dist/commands/auth.js +4 -12
- package/dist/commands/beta.d.ts +0 -6
- package/dist/commands/beta.js +2 -6
- package/dist/commands/browser-sessions-picker.d.ts +0 -8
- package/dist/commands/browser-sessions-picker.js +0 -26
- package/dist/commands/browser.d.ts +0 -57
- package/dist/commands/browser.js +0 -80
- package/dist/commands/budget.d.ts +0 -13
- package/dist/commands/budget.js +0 -2
- package/dist/commands/cli.d.ts +0 -12
- package/dist/commands/cli.js +0 -4
- package/dist/commands/cloud.d.ts +0 -9
- package/dist/commands/cloud.js +0 -43
- package/dist/commands/commands.d.ts +0 -9
- package/dist/commands/commands.js +0 -18
- package/dist/commands/computer-sessions-picker.d.ts +0 -11
- package/dist/commands/computer-sessions-picker.js +0 -29
- package/dist/commands/computer.d.ts +0 -62
- package/dist/commands/computer.js +3 -114
- package/dist/commands/config.d.ts +0 -14
- package/dist/commands/config.js +21 -60
- package/dist/commands/cost.d.ts +0 -11
- package/dist/commands/cost.js +1 -17
- package/dist/commands/daemon-test-harness.d.ts +0 -32
- package/dist/commands/daemon-test-harness.js +1 -36
- package/dist/commands/daemon.d.ts +0 -46
- package/dist/commands/daemon.js +8 -255
- package/dist/commands/detach-core.d.ts +0 -28
- package/dist/commands/detach-core.js +0 -30
- package/dist/commands/detach.d.ts +1 -12
- package/dist/commands/detach.js +16 -52
- package/dist/commands/device-config-test-harness.js +0 -12
- package/dist/commands/doctor.d.ts +0 -103
- package/dist/commands/doctor.js +3 -279
- package/dist/commands/events.d.ts +0 -29
- package/dist/commands/events.js +1 -55
- package/dist/commands/exec.d.ts +0 -163
- package/dist/commands/exec.js +15 -964
- package/dist/commands/factory.d.ts +0 -6
- package/dist/commands/factory.js +0 -2
- package/dist/commands/feed-watch.js +0 -20
- package/dist/commands/feed.d.ts +0 -38
- package/dist/commands/feed.js +1 -151
- package/dist/commands/feedback.d.ts +0 -5
- package/dist/commands/feedback.js +0 -5
- package/dist/commands/fleet-capture.d.ts +0 -12
- package/dist/commands/fleet-capture.js +1 -39
- package/dist/commands/focus.d.ts +6 -94
- package/dist/commands/focus.js +13 -183
- package/dist/commands/fork.d.ts +0 -21
- package/dist/commands/fork.js +0 -45
- package/dist/commands/funnel.d.ts +0 -3
- package/dist/commands/go.d.ts +2 -71
- package/dist/commands/go.js +5 -99
- package/dist/commands/harness-hooks.d.ts +0 -41
- package/dist/commands/harness-hooks.js +0 -48
- package/dist/commands/harness-wizard.d.ts +0 -137
- package/dist/commands/harness-wizard.js +0 -109
- package/dist/commands/harness.d.ts +0 -63
- package/dist/commands/harness.js +0 -103
- package/dist/commands/hooks.d.ts +0 -9
- package/dist/commands/hooks.js +0 -26
- package/dist/commands/humans.d.ts +0 -8
- package/dist/commands/humans.js +0 -8
- package/dist/commands/import.d.ts +0 -22
- package/dist/commands/import.js +0 -79
- package/dist/commands/insights.d.ts +0 -37
- package/dist/commands/insights.js +3 -115
- package/dist/commands/inspect.d.ts +0 -117
- package/dist/commands/inspect.js +2 -448
- package/dist/commands/lease.d.ts +0 -28
- package/dist/commands/lease.js +0 -43
- package/dist/commands/logs.d.ts +0 -23
- package/dist/commands/logs.js +0 -30
- package/dist/commands/mailboxes.d.ts +0 -18
- package/dist/commands/mailboxes.js +0 -29
- package/dist/commands/mcp.d.ts +0 -9
- package/dist/commands/mcp.js +0 -53
- package/dist/commands/memory.d.ts +0 -7
- package/dist/commands/memory.js +0 -7
- package/dist/commands/menubar.d.ts +0 -8
- package/dist/commands/menubar.js +0 -24
- package/dist/commands/message.d.ts +0 -23
- package/dist/commands/message.js +0 -50
- package/dist/commands/mine.d.ts +0 -22
- package/dist/commands/mine.js +0 -21
- package/dist/commands/models.d.ts +0 -8
- package/dist/commands/models.js +0 -33
- package/dist/commands/modes.d.ts +0 -10
- package/dist/commands/modes.js +0 -13
- package/dist/commands/monitors.d.ts +0 -9
- package/dist/commands/monitors.js +3 -160
- package/dist/commands/open.d.ts +0 -26
- package/dist/commands/open.js +0 -10
- package/dist/commands/output.d.ts +0 -18
- package/dist/commands/output.js +1 -34
- package/dist/commands/packages-materialize.d.ts +0 -11
- package/dist/commands/packages-materialize.js +0 -3
- package/dist/commands/packages.d.ts +0 -10
- package/dist/commands/packages.js +0 -50
- package/dist/commands/perf.d.ts +0 -41
- package/dist/commands/perf.js +0 -55
- package/dist/commands/permissions.d.ts +0 -9
- package/dist/commands/permissions.js +0 -43
- package/dist/commands/plugins.d.ts +0 -14
- package/dist/commands/plugins.js +2 -55
- package/dist/commands/profiles.d.ts +0 -25
- package/dist/commands/profiles.js +0 -27
- package/dist/commands/projects-todo.d.ts +2 -0
- package/dist/commands/projects-todo.js +132 -0
- package/dist/commands/projects.d.ts +0 -85
- package/dist/commands/projects.js +344 -291
- package/dist/commands/prune.js +0 -30
- package/dist/commands/ps-roster.d.ts +92 -0
- package/dist/commands/ps-roster.js +744 -0
- package/dist/commands/ps.d.ts +6 -0
- package/dist/commands/ps.js +98 -0
- package/dist/commands/refresh-rules.d.ts +0 -13
- package/dist/commands/refresh-rules.js +0 -14
- package/dist/commands/reminders.d.ts +0 -7
- package/dist/commands/repo.d.ts +0 -89
- package/dist/commands/repo.js +7 -205
- package/dist/commands/resource-view.d.ts +0 -33
- package/dist/commands/resource-view.js +0 -49
- package/dist/commands/resume.d.ts +1 -19
- package/dist/commands/resume.js +0 -50
- package/dist/commands/route.d.ts +0 -10
- package/dist/commands/route.js +0 -19
- package/dist/commands/routines.d.ts +0 -42
- package/dist/commands/routines.js +5 -290
- package/dist/commands/routines.test-fixture.d.ts +0 -34
- package/dist/commands/routines.test-fixture.js +4 -100
- package/dist/commands/rules.d.ts +0 -9
- package/dist/commands/rules.js +1 -6
- package/dist/commands/run-account-picker.d.ts +0 -59
- package/dist/commands/run-account-picker.js +0 -71
- package/dist/commands/run-broadcast.d.ts +0 -9
- package/dist/commands/run-broadcast.js +0 -7
- package/dist/commands/run-cloud.d.ts +0 -15
- package/dist/commands/run-cloud.js +0 -37
- package/dist/commands/run-device-picker.d.ts +0 -25
- package/dist/commands/run-device-picker.js +1 -53
- package/dist/commands/secrets-passthrough.d.ts +0 -31
- package/dist/commands/secrets-passthrough.js +0 -10
- package/dist/commands/send.d.ts +0 -20
- package/dist/commands/send.js +14 -18
- package/dist/commands/sessions-backfill.d.ts +0 -7
- package/dist/commands/sessions-backfill.js +1 -16
- package/dist/commands/sessions-backup-setup.js +0 -11
- package/dist/commands/sessions-bookmark.d.ts +0 -8
- package/dist/commands/sessions-bookmark.js +0 -28
- package/dist/commands/sessions-browser.d.ts +2 -117
- package/dist/commands/sessions-browser.js +5 -243
- package/dist/commands/sessions-export.d.ts +1 -26
- package/dist/commands/sessions-export.js +3 -81
- package/dist/commands/sessions-import.d.ts +0 -14
- package/dist/commands/sessions-import.js +0 -59
- package/dist/commands/sessions-inject.d.ts +0 -60
- package/dist/commands/sessions-inject.js +3 -96
- package/dist/commands/sessions-migrate.d.ts +2 -37
- package/dist/commands/sessions-migrate.js +7 -159
- package/dist/commands/sessions-optimize.d.ts +0 -12
- package/dist/commands/sessions-picker-factory.d.ts +0 -7
- package/dist/commands/sessions-picker-factory.js +0 -8
- package/dist/commands/sessions-picker.d.ts +4 -103
- package/dist/commands/sessions-picker.js +13 -352
- package/dist/commands/sessions-render.d.ts +1 -2
- package/dist/commands/sessions-render.js +3 -7
- package/dist/commands/sessions-resume.d.ts +1 -24
- package/dist/commands/sessions-resume.js +2 -65
- package/dist/commands/sessions-share.d.ts +1 -9
- package/dist/commands/sessions-share.js +1 -45
- package/dist/commands/sessions-stats.d.ts +0 -24
- package/dist/commands/sessions-stats.js +0 -49
- package/dist/commands/sessions-stop.d.ts +1 -20
- package/dist/commands/sessions-stop.js +4 -9
- package/dist/commands/sessions-tail.d.ts +1 -19
- package/dist/commands/sessions-tail.js +3 -36
- package/dist/commands/sessions-trace.d.ts +5 -36
- package/dist/commands/sessions-trace.js +7 -82
- package/dist/commands/sessions.d.ts +1 -666
- package/dist/commands/sessions.js +30 -2279
- package/dist/commands/sessions.test-fixture.d.ts +0 -9
- package/dist/commands/sessions.test-fixture.js +8 -23
- package/dist/commands/setup-accounts.d.ts +0 -6
- package/dist/commands/setup-browser.d.ts +0 -23
- package/dist/commands/setup-browser.js +0 -28
- package/dist/commands/setup-computer.d.ts +0 -16
- package/dist/commands/setup-computer.js +0 -28
- package/dist/commands/setup-fleet.d.ts +0 -8
- package/dist/commands/setup-fleet.js +0 -11
- package/dist/commands/setup-mine.d.ts +0 -14
- package/dist/commands/setup-mine.js +0 -25
- package/dist/commands/setup-preferences.d.ts +0 -47
- package/dist/commands/setup-preferences.js +0 -53
- package/dist/commands/setup-secrets.d.ts +2 -24
- package/dist/commands/setup-secrets.js +0 -24
- package/dist/commands/setup-term.d.ts +0 -21
- package/dist/commands/setup-term.js +0 -21
- package/dist/commands/setup-terminal.d.ts +0 -1
- package/dist/commands/setup-terminal.js +0 -1
- package/dist/commands/setup-tools.d.ts +2 -0
- package/dist/commands/setup-tools.js +73 -0
- package/dist/commands/setup.d.ts +0 -20
- package/dist/commands/setup.js +4 -57
- package/dist/commands/skills.d.ts +0 -9
- package/dist/commands/skills.js +1 -22
- package/dist/commands/snapshot.d.ts +0 -9
- package/dist/commands/snapshot.js +0 -10
- package/dist/commands/ssh.d.ts +0 -64
- package/dist/commands/ssh.js +9 -420
- package/dist/commands/status.d.ts +0 -12
- package/dist/commands/status.js +0 -26
- package/dist/commands/subagents.d.ts +0 -8
- package/dist/commands/subagents.js +0 -31
- package/dist/commands/sync.d.ts +0 -37
- package/dist/commands/sync.js +0 -256
- package/dist/commands/teams-picker.d.ts +0 -3
- package/dist/commands/teams-picker.js +0 -34
- package/dist/commands/teams.d.ts +1 -76
- package/dist/commands/teams.js +9 -477
- package/dist/commands/tmux.d.ts +0 -25
- package/dist/commands/tmux.js +0 -46
- package/dist/commands/traces.js +0 -19
- package/dist/commands/trash.d.ts +0 -17
- package/dist/commands/trash.js +1 -11
- package/dist/commands/uninstall.d.ts +0 -9
- package/dist/commands/uninstall.js +0 -6
- package/dist/commands/update.d.ts +0 -22
- package/dist/commands/update.js +0 -44
- package/dist/commands/upgrade.d.ts +0 -1
- package/dist/commands/upgrade.js +0 -1
- package/dist/commands/utils.d.ts +0 -85
- package/dist/commands/utils.js +1 -95
- package/dist/commands/versions.d.ts +0 -16
- package/dist/commands/versions.js +0 -134
- package/dist/commands/view.d.ts +0 -90
- package/dist/commands/view.js +4 -343
- package/dist/commands/watchdog.d.ts +0 -19
- package/dist/commands/watchdog.js +3 -43
- package/dist/commands/webhook.d.ts +0 -8
- package/dist/commands/webhook.js +0 -14
- package/dist/commands/workflows.d.ts +0 -8
- package/dist/commands/workflows.js +0 -6
- package/dist/index.d.ts +0 -25
- package/dist/index.js +5 -119
- package/dist/lib/account-capabilities.d.ts +0 -34
- package/dist/lib/account-capabilities.js +0 -32
- package/dist/lib/account-catalog.d.ts +0 -128
- package/dist/lib/account-catalog.js +8 -154
- package/dist/lib/account-provider-registry.d.ts +0 -14
- package/dist/lib/account-provider-registry.js +0 -8
- package/dist/lib/account-registry.d.ts +0 -74
- package/dist/lib/account-registry.js +14 -189
- package/dist/lib/account-schema.d.ts +0 -19
- package/dist/lib/account-schema.js +0 -43
- package/dist/lib/accounting/account-launch.d.ts +0 -15
- package/dist/lib/accounting/account-launch.js +1 -3
- package/dist/lib/accounting/account-pool-collect.d.ts +0 -26
- package/dist/lib/accounting/account-pool-collect.js +0 -42
- package/dist/lib/accounting/account-pool.d.ts +0 -41
- package/dist/lib/accounting/account-pool.js +0 -17
- package/dist/lib/accounting/capacity.d.ts +0 -32
- package/dist/lib/accounting/capacity.js +0 -32
- package/dist/lib/accounting/rotate.d.ts +0 -518
- package/dist/lib/accounting/rotate.js +4 -598
- package/dist/lib/accounting/usage-ingest.d.ts +0 -1
- package/dist/lib/accounting/usage-ingest.js +0 -44
- package/dist/lib/accounting/usage-sync.d.ts +0 -60
- package/dist/lib/accounting/usage-sync.js +4 -51
- package/dist/lib/accounting/usage.d.ts +0 -632
- package/dist/lib/accounting/usage.js +14 -1055
- package/dist/lib/accounts/add.d.ts +0 -60
- package/dist/lib/accounts/add.js +0 -127
- package/dist/lib/accounts/auth-operation-lock.d.ts +0 -1
- package/dist/lib/accounts/auth-operation-lock.js +0 -4
- package/dist/lib/accounts/migrate.d.ts +0 -9
- package/dist/lib/accounts/migrate.js +3 -42
- package/dist/lib/accounts/slots.d.ts +0 -25
- package/dist/lib/accounts/slots.js +1 -49
- package/dist/lib/acp/client.d.ts +0 -16
- package/dist/lib/acp/client.js +0 -29
- package/dist/lib/acp/harnesses.d.ts +0 -15
- package/dist/lib/acp/harnesses.js +0 -16
- package/dist/lib/acp/run.d.ts +0 -8
- package/dist/lib/acp/run.js +0 -8
- package/dist/lib/actor.d.ts +1 -71
- package/dist/lib/actor.js +1 -99
- package/dist/lib/add-dir.d.ts +0 -46
- package/dist/lib/add-dir.js +1 -70
- package/dist/lib/address.d.ts +0 -17
- package/dist/lib/address.js +0 -15
- package/dist/lib/agent-cli-commands.d.ts +0 -10
- package/dist/lib/agent-cli-commands.js +0 -10
- package/dist/lib/agent-modes.d.ts +0 -29
- package/dist/lib/agent-modes.js +0 -31
- package/dist/lib/agent-spec/agents.d.ts +0 -426
- package/dist/lib/agent-spec/agents.js +37 -924
- package/dist/lib/agent-spec/index.d.ts +0 -5
- package/dist/lib/agent-spec/index.js +0 -14
- package/dist/lib/agent-spec/materialize.d.ts +0 -10
- package/dist/lib/agent-spec/materialize.js +2 -139
- package/dist/lib/agent-spec/package-resolve.d.ts +0 -8
- package/dist/lib/agent-spec/package-resolve.js +1 -44
- package/dist/lib/agent-spec/package-schema.d.ts +0 -2
- package/dist/lib/agent-spec/package-schema.js +0 -11
- package/dist/lib/agent-spec/package-types.d.ts +0 -27
- package/dist/lib/agent-spec/package-types.js +0 -1
- package/dist/lib/agent-spec/primitives.d.ts +0 -18
- package/dist/lib/agent-spec/primitives.js +0 -27
- package/dist/lib/agent-spec/provider.js +0 -2
- package/dist/lib/agent-spec/resolve.d.ts +0 -23
- package/dist/lib/agent-spec/resolve.js +0 -41
- package/dist/lib/agent-spec/types.d.ts +0 -34
- package/dist/lib/agent-spec/types.js +0 -6
- package/dist/lib/agents.d.ts +0 -1
- package/dist/lib/agents.js +0 -1
- package/dist/lib/analytics/mix-commands.d.ts +0 -23
- package/dist/lib/analytics/mix-commands.js +0 -26
- package/dist/lib/analytics/recipes.d.ts +0 -1
- package/dist/lib/analytics/recipes.js +5 -10
- package/dist/lib/analytics/usage-db.js +4 -6
- package/dist/lib/answer-router.d.ts +0 -61
- package/dist/lib/answer-router.js +0 -57
- package/dist/lib/app-bundle-install.d.ts +0 -13
- package/dist/lib/app-bundle-install.js +0 -50
- package/dist/lib/artifact-actions.d.ts +0 -15
- package/dist/lib/artifact-actions.js +0 -18
- package/dist/lib/artifacts-client.d.ts +0 -10
- package/dist/lib/artifacts-client.js +0 -17
- package/dist/lib/ask-classifier.d.ts +0 -38
- package/dist/lib/ask-classifier.js +0 -27
- package/dist/lib/audit/log.d.ts +0 -47
- package/dist/lib/audit/log.js +1 -59
- package/dist/lib/auth-health.d.ts +0 -213
- package/dist/lib/auth-health.js +16 -266
- package/dist/lib/auth-mint.d.ts +0 -83
- package/dist/lib/auth-mint.js +8 -85
- package/dist/lib/auto-pull-worker.d.ts +0 -10
- package/dist/lib/auto-pull-worker.js +3 -48
- package/dist/lib/auto-pull.d.ts +0 -64
- package/dist/lib/auto-pull.js +0 -79
- package/dist/lib/beta.d.ts +0 -9
- package/dist/lib/beta.js +0 -9
- package/dist/lib/binary-shadow.d.ts +0 -22
- package/dist/lib/binary-shadow.js +4 -34
- package/dist/lib/boot-profile.d.ts +0 -10
- package/dist/lib/boot-profile.js +1 -31
- package/dist/lib/brand.d.ts +0 -20
- package/dist/lib/brand.js +0 -50
- package/dist/lib/browser/context.d.ts +0 -54
- package/dist/lib/browser/context.js +0 -49
- package/dist/lib/browser/paths.d.ts +0 -21
- package/dist/lib/browser/paths.js +0 -26
- package/dist/lib/browser/record.d.ts +0 -34
- package/dist/lib/browser/record.js +0 -38
- package/dist/lib/browser/sessions-list.d.ts +1 -79
- package/dist/lib/browser/sessions-list.js +2 -98
- package/dist/lib/browser-client.d.ts +0 -112
- package/dist/lib/browser-client.js +1 -90
- package/dist/lib/budget/config.d.ts +0 -6
- package/dist/lib/budget/config.js +0 -29
- package/dist/lib/budget/enforce.d.ts +0 -50
- package/dist/lib/budget/enforce.js +0 -27
- package/dist/lib/budget/ledger.d.ts +0 -23
- package/dist/lib/budget/ledger.js +0 -28
- package/dist/lib/budget/live-cloud.d.ts +0 -26
- package/dist/lib/budget/live-cloud.js +0 -12
- package/dist/lib/budget/live-team.d.ts +0 -17
- package/dist/lib/budget/live-team.js +1 -35
- package/dist/lib/budget/preflight.d.ts +0 -51
- package/dist/lib/budget/preflight.js +0 -36
- package/dist/lib/byok-usage.d.ts +0 -20
- package/dist/lib/byok-usage.js +1 -24
- package/dist/lib/capabilities.d.ts +0 -24
- package/dist/lib/capabilities.js +0 -29
- package/dist/lib/catchup.d.ts +0 -87
- package/dist/lib/catchup.js +1 -81
- package/dist/lib/channels/owner-forward.d.ts +0 -70
- package/dist/lib/channels/owner-forward.js +1 -43
- package/dist/lib/channels/owner-sink.js +0 -21
- package/dist/lib/channels/providers/desktop.d.ts +0 -37
- package/dist/lib/channels/providers/desktop.js +0 -72
- package/dist/lib/channels/providers/index.d.ts +0 -1
- package/dist/lib/channels/providers/index.js +2 -6
- package/dist/lib/channels/providers/mailbox.js +0 -7
- package/dist/lib/channels/providers/openclaw-telegram.js +0 -8
- package/dist/lib/channels/providers/rush.d.ts +0 -2
- package/dist/lib/channels/providers/rush.js +0 -26
- package/dist/lib/channels/providers/session.d.ts +2 -0
- package/dist/lib/channels/providers/session.js +26 -0
- package/dist/lib/channels/registry.d.ts +0 -27
- package/dist/lib/channels/registry.js +0 -10
- package/dist/lib/channels/resolve.d.ts +0 -19
- package/dist/lib/channels/resolve.js +0 -2
- package/dist/lib/channels/send.d.ts +0 -50
- package/dist/lib/channels/send.js +0 -25
- package/dist/lib/checkpoint.d.ts +0 -36
- package/dist/lib/checkpoint.js +0 -28
- package/dist/lib/claude-account-token.d.ts +0 -98
- package/dist/lib/claude-account-token.js +7 -169
- package/dist/lib/claude-statusline.d.ts +0 -41
- package/dist/lib/claude-statusline.js +0 -68
- package/dist/lib/cli-entry.d.ts +0 -26
- package/dist/lib/cli-entry.js +1 -61
- package/dist/lib/cli-resources.d.ts +31 -89
- package/dist/lib/cli-resources.js +116 -152
- package/dist/lib/cloud/antigravity.d.ts +0 -29
- package/dist/lib/cloud/antigravity.js +0 -36
- package/dist/lib/cloud/codex.d.ts +0 -8
- package/dist/lib/cloud/codex.js +0 -41
- package/dist/lib/cloud/cursor.d.ts +0 -5
- package/dist/lib/cloud/cursor.js +2 -7
- package/dist/lib/cloud/dispatch.d.ts +0 -13
- package/dist/lib/cloud/dispatch.js +1 -48
- package/dist/lib/cloud/factory.d.ts +0 -52
- package/dist/lib/cloud/factory.js +3 -67
- package/dist/lib/cloud/host.d.ts +0 -39
- package/dist/lib/cloud/host.js +5 -48
- package/dist/lib/cloud/registry.d.ts +0 -25
- package/dist/lib/cloud/registry.js +0 -29
- package/dist/lib/cloud/rush.d.ts +0 -47
- package/dist/lib/cloud/rush.js +1 -82
- package/dist/lib/cloud/session-index.d.ts +0 -27
- package/dist/lib/cloud/session-index.js +1 -32
- package/dist/lib/cloud/store.d.ts +0 -18
- package/dist/lib/cloud/store.js +0 -28
- package/dist/lib/cloud/stream.d.ts +0 -14
- package/dist/lib/cloud/stream.js +0 -25
- package/dist/lib/cloud/types.d.ts +0 -168
- package/dist/lib/cloud/types.js +0 -46
- package/dist/lib/cloudflare/creds.d.ts +0 -2
- package/dist/lib/cloudflare/creds.js +0 -14
- package/dist/lib/cloudflare/provision.d.ts +0 -8
- package/dist/lib/cloudflare/provision.js +1 -19
- package/dist/lib/codex-home.d.ts +0 -60
- package/dist/lib/codex-home.js +2 -72
- package/dist/lib/codex-policy.d.ts +0 -10
- package/dist/lib/codex-policy.js +0 -13
- package/dist/lib/command-skills.d.ts +0 -10
- package/dist/lib/command-skills.js +0 -10
- package/dist/lib/commands.d.ts +0 -74
- package/dist/lib/commands.js +0 -112
- package/dist/lib/comms-render.d.ts +0 -5
- package/dist/lib/comms-render.js +0 -5
- package/dist/lib/computer/context.d.ts +0 -23
- package/dist/lib/computer/context.js +0 -14
- package/dist/lib/computer/policy.d.ts +0 -20
- package/dist/lib/computer/policy.js +0 -53
- package/dist/lib/computer/record.d.ts +0 -33
- package/dist/lib/computer/record.js +1 -48
- package/dist/lib/computer/sessions-list.d.ts +1 -128
- package/dist/lib/computer/sessions-list.js +6 -165
- package/dist/lib/computer-client.d.ts +0 -106
- package/dist/lib/computer-client.js +5 -86
- package/dist/lib/concurrency.d.ts +0 -14
- package/dist/lib/concurrency.js +0 -3
- package/dist/lib/config-drift.d.ts +0 -31
- package/dist/lib/config-drift.js +0 -32
- package/dist/lib/config-keys.d.ts +1 -65
- package/dist/lib/config-keys.js +6 -52
- package/dist/lib/config-transfer.d.ts +0 -14
- package/dist/lib/config-transfer.js +0 -26
- package/dist/lib/convert.d.ts +0 -17
- package/dist/lib/convert.js +0 -18
- package/dist/lib/crabbox/cli.d.ts +0 -156
- package/dist/lib/crabbox/cli.js +1 -188
- package/dist/lib/crabbox/config.d.ts +0 -18
- package/dist/lib/crabbox/config.js +1 -19
- package/dist/lib/crabbox/lease.d.ts +0 -93
- package/dist/lib/crabbox/lease.js +4 -148
- package/dist/lib/crabbox/progress.d.ts +0 -56
- package/dist/lib/crabbox/progress.js +2 -49
- package/dist/lib/crabbox/runtimes.d.ts +0 -94
- package/dist/lib/crabbox/runtimes.js +1 -111
- package/dist/lib/crabbox/setup-copy.d.ts +0 -64
- package/dist/lib/crabbox/setup-copy.js +1 -53
- package/dist/lib/daemon/account-state-daemon-service.d.ts +0 -48
- package/dist/lib/daemon/account-state-daemon-service.js +2 -63
- package/dist/lib/daemon/attention-notify-service.d.ts +0 -12
- package/dist/lib/daemon/attention-notify-service.js +1 -24
- package/dist/lib/daemon/auth-sync-service.d.ts +0 -28
- package/dist/lib/daemon/auth-sync-service.js +0 -56
- package/dist/lib/daemon/catchup-service.d.ts +0 -34
- package/dist/lib/daemon/catchup-service.js +0 -30
- package/dist/lib/daemon/daemon.d.ts +0 -374
- package/dist/lib/daemon/daemon.js +44 -1049
- package/dist/lib/daemon/daemon.test-fixture.d.ts +0 -19
- package/dist/lib/daemon/daemon.test-fixture.js +1 -24
- package/dist/lib/daemon/device-probe-service.d.ts +0 -16
- package/dist/lib/daemon/device-probe-service.js +0 -20
- package/dist/lib/daemon/feed-stream-service.d.ts +0 -15
- package/dist/lib/daemon/feed-stream-service.js +0 -20
- package/dist/lib/daemon/harness-update-service.d.ts +2 -61
- package/dist/lib/daemon/harness-update-service.js +6 -86
- package/dist/lib/daemon/heartbeat-service.d.ts +0 -1
- package/dist/lib/daemon/heartbeat-service.js +0 -1
- package/dist/lib/daemon/leaked-daemons.d.ts +0 -46
- package/dist/lib/daemon/leaked-daemons.js +2 -78
- package/dist/lib/daemon/monitor-engine-service.d.ts +0 -13
- package/dist/lib/daemon/monitor-engine-service.js +3 -15
- package/dist/lib/daemon/runner.d.ts +0 -194
- package/dist/lib/daemon/runner.js +39 -760
- package/dist/lib/daemon/self-heal-service.d.ts +18 -17
- package/dist/lib/daemon/self-heal-service.js +83 -37
- package/dist/lib/daemon/self-update-service.d.ts +1 -131
- package/dist/lib/daemon/self-update-service.js +26 -189
- package/dist/lib/daemon/service.d.ts +0 -73
- package/dist/lib/daemon/service.js +0 -34
- package/dist/lib/daemon/session-index-service.d.ts +0 -12
- package/dist/lib/daemon/session-index-service.js +0 -23
- package/dist/lib/daemon/session-state-service.d.ts +0 -8
- package/dist/lib/daemon/session-state-service.js +0 -8
- package/dist/lib/daemon/session-summarizer-service.d.ts +0 -14
- package/dist/lib/daemon/session-summarizer-service.js +1 -19
- package/dist/lib/daemon/session-title-service.d.ts +0 -25
- package/dist/lib/daemon/session-title-service.js +0 -32
- package/dist/lib/daemon/state-dir-check-service.d.ts +0 -24
- package/dist/lib/daemon/state-dir-check-service.js +0 -29
- package/dist/lib/daemon/supervisor.d.ts +0 -112
- package/dist/lib/daemon/supervisor.js +4 -147
- package/dist/lib/daemon/testdata/process-view-daemon.js +0 -2
- package/dist/lib/daemon/testdata/process-view-start.js +0 -5
- package/dist/lib/daemon/tmux-reap-service.d.ts +0 -1
- package/dist/lib/daemon/tmux-reap-service.js +0 -1
- package/dist/lib/daemon/usage-sync-service.d.ts +0 -23
- package/dist/lib/daemon/usage-sync-service.js +0 -26
- package/dist/lib/daemon/watchdog-service.d.ts +0 -9
- package/dist/lib/daemon/watchdog-service.js +0 -13
- package/dist/lib/daemon/webhook-receiver-service.d.ts +0 -1
- package/dist/lib/daemon/webhook-receiver-service.js +0 -1
- package/dist/lib/daemon-health.d.ts +0 -55
- package/dist/lib/daemon-health.js +4 -77
- package/dist/lib/daemon-services.d.ts +0 -36
- package/dist/lib/daemon-services.js +0 -45
- package/dist/lib/daemon-ticks.d.ts +0 -126
- package/dist/lib/daemon-ticks.js +1 -156
- package/dist/lib/daemon-webhooks.d.ts +0 -57
- package/dist/lib/daemon-webhooks.js +2 -54
- package/dist/lib/deeplink/register.d.ts +0 -15
- package/dist/lib/deeplink/register.js +0 -60
- package/dist/lib/deeplink/url.d.ts +0 -24
- package/dist/lib/deeplink/url.js +1 -33
- package/dist/lib/device-config.d.ts +1 -192
- package/dist/lib/device-config.js +86 -240
- package/dist/lib/devices/config-migration.d.ts +0 -43
- package/dist/lib/devices/config-migration.js +7 -127
- package/dist/lib/devices/connect.d.ts +0 -168
- package/dist/lib/devices/connect.js +6 -254
- package/dist/lib/devices/device-docs.d.ts +0 -24
- package/dist/lib/devices/device-docs.js +0 -46
- package/dist/lib/devices/discovery-policy.d.ts +0 -30
- package/dist/lib/devices/discovery-policy.js +3 -34
- package/dist/lib/devices/doctor-findings.d.ts +0 -109
- package/dist/lib/devices/doctor-findings.js +30 -326
- package/dist/lib/devices/doctor-overview-cache.d.ts +0 -33
- package/dist/lib/devices/doctor-overview-cache.js +0 -81
- package/dist/lib/devices/fleet-divergence.d.ts +0 -89
- package/dist/lib/devices/fleet-divergence.js +1 -60
- package/dist/lib/devices/fleet-inventory.d.ts +0 -27
- package/dist/lib/devices/fleet-inventory.js +0 -38
- package/dist/lib/devices/fleet.d.ts +0 -95
- package/dist/lib/devices/fleet.js +0 -79
- package/dist/lib/devices/harness-inventory.d.ts +0 -75
- package/dist/lib/devices/harness-inventory.js +0 -101
- package/dist/lib/devices/health-report.d.ts +0 -37
- package/dist/lib/devices/health-report.js +0 -73
- package/dist/lib/devices/health.d.ts +0 -71
- package/dist/lib/devices/health.js +2 -82
- package/dist/lib/devices/interactive-host.d.ts +0 -10
- package/dist/lib/devices/interactive-host.js +0 -34
- package/dist/lib/devices/known-hosts.d.ts +0 -45
- package/dist/lib/devices/known-hosts.js +0 -77
- package/dist/lib/devices/pending.d.ts +0 -31
- package/dist/lib/devices/pending.js +7 -67
- package/dist/lib/devices/pool.d.ts +0 -36
- package/dist/lib/devices/pool.js +0 -30
- package/dist/lib/devices/reachability.d.ts +0 -25
- package/dist/lib/devices/reachability.js +0 -14
- package/dist/lib/devices/registry.d.ts +0 -141
- package/dist/lib/devices/registry.js +4 -151
- package/dist/lib/devices/resolve-profile.d.ts +0 -18
- package/dist/lib/devices/resolve-profile.js +0 -18
- package/dist/lib/devices/resolve-target.d.ts +0 -20
- package/dist/lib/devices/resolve-target.js +1 -51
- package/dist/lib/devices/rollout-verify.d.ts +1 -81
- package/dist/lib/devices/rollout-verify.js +0 -77
- package/dist/lib/devices/self-host.d.ts +0 -7
- package/dist/lib/devices/self-host.js +1 -29
- package/dist/lib/devices/ssh-config.d.ts +0 -18
- package/dist/lib/devices/ssh-config.js +0 -9
- package/dist/lib/devices/stats-cache.d.ts +0 -48
- package/dist/lib/devices/stats-cache.js +0 -80
- package/dist/lib/devices/sync.d.ts +0 -97
- package/dist/lib/devices/sync.js +0 -88
- package/dist/lib/devices/tailscale.d.ts +0 -18
- package/dist/lib/devices/tailscale.js +1 -38
- package/dist/lib/devices/terminfo.d.ts +0 -27
- package/dist/lib/devices/terminfo.js +2 -64
- package/dist/lib/devices/worker-pick.d.ts +0 -15
- package/dist/lib/devices/worker-pick.js +0 -48
- package/dist/lib/diff-text.d.ts +0 -18
- package/dist/lib/diff-text.js +0 -15
- package/dist/lib/doctor-diff.d.ts +0 -79
- package/dist/lib/doctor-diff.js +2 -181
- package/dist/lib/drift-sync.d.ts +0 -29
- package/dist/lib/drift-sync.js +0 -40
- package/dist/lib/drift.d.ts +0 -43
- package/dist/lib/drift.js +0 -31
- package/dist/lib/event-families.d.ts +0 -17
- package/dist/lib/event-families.js +0 -33
- package/dist/lib/event-provenance.d.ts +0 -4
- package/dist/lib/event-provenance.js +0 -5
- package/dist/lib/event-stream.d.ts +0 -29
- package/dist/lib/event-stream.js +0 -36
- package/dist/lib/events-ingest.d.ts +0 -27
- package/dist/lib/events-ingest.js +0 -54
- package/dist/lib/exec-account-home.d.ts +0 -24
- package/dist/lib/exec-account-home.js +0 -41
- package/dist/lib/exec-bounded.d.ts +1 -37
- package/dist/lib/exec-bounded.js +10 -46
- package/dist/lib/exec.d.ts +3 -583
- package/dist/lib/exec.js +18 -1025
- package/dist/lib/factory/snapshot.js +1 -15
- package/dist/lib/feed/activity-stream.d.ts +0 -27
- package/dist/lib/feed/activity-stream.js +4 -80
- package/dist/lib/feed/activity.d.ts +1 -243
- package/dist/lib/feed/activity.js +8 -273
- package/dist/lib/feed/answer.d.ts +0 -103
- package/dist/lib/feed/answer.js +0 -267
- package/dist/lib/feed/attention.d.ts +0 -56
- package/dist/lib/feed/attention.js +0 -161
- package/dist/lib/feed/envelope.d.ts +2 -17
- package/dist/lib/feed/envelope.js +0 -14
- package/dist/lib/feed/events.d.ts +0 -118
- package/dist/lib/feed/events.js +13 -213
- package/dist/lib/feed/feed.d.ts +1 -250
- package/dist/lib/feed/feed.js +24 -334
- package/dist/lib/feed/hub-server.d.ts +0 -100
- package/dist/lib/feed/hub-server.js +1 -191
- package/dist/lib/feed/hub.d.ts +0 -53
- package/dist/lib/feed/hub.js +0 -89
- package/dist/lib/feed/pr-status.d.ts +1 -19
- package/dist/lib/feed/pr-status.js +0 -18
- package/dist/lib/feed/tool-activity.d.ts +0 -59
- package/dist/lib/feed/tool-activity.js +1 -119
- package/dist/lib/feed/tools.d.ts +0 -100
- package/dist/lib/feed/tools.js +0 -89
- package/dist/lib/feed/watch.d.ts +0 -33
- package/dist/lib/feed/watch.js +2 -94
- package/dist/lib/feed-broadcast.d.ts +0 -148
- package/dist/lib/feed-broadcast.js +1 -283
- package/dist/lib/feed-outcome.d.ts +0 -50
- package/dist/lib/feed-outcome.js +1 -67
- package/dist/lib/feed-policy.d.ts +0 -6
- package/dist/lib/feed-policy.js +1 -27
- package/dist/lib/feed-post.d.ts +0 -61
- package/dist/lib/feed-post.js +4 -61
- package/dist/lib/feed-ranking.d.ts +1 -1
- package/dist/lib/fleet/apply.d.ts +0 -64
- package/dist/lib/fleet/apply.js +0 -125
- package/dist/lib/fleet/auth-sync.d.ts +0 -48
- package/dist/lib/fleet/auth-sync.js +4 -49
- package/dist/lib/fleet/capture.d.ts +0 -26
- package/dist/lib/fleet/capture.js +1 -36
- package/dist/lib/fleet/manifest.d.ts +0 -38
- package/dist/lib/fleet/manifest.js +0 -40
- package/dist/lib/fleet/types.d.ts +1 -138
- package/dist/lib/fleet/types.js +0 -12
- package/dist/lib/fleet-cache.d.ts +0 -12
- package/dist/lib/fleet-cache.js +0 -24
- package/dist/lib/fleet-shared-state.d.ts +6 -59
- package/dist/lib/fleet-shared-state.js +5 -51
- package/dist/lib/fleet-status.d.ts +0 -27
- package/dist/lib/fleet-status.js +0 -48
- package/dist/lib/format.d.ts +0 -74
- package/dist/lib/format.js +3 -77
- package/dist/lib/friction-heuristics.d.ts +0 -20
- package/dist/lib/friction-heuristics.js +0 -8
- package/dist/lib/fs-atomic.d.ts +0 -51
- package/dist/lib/fs-atomic.js +8 -66
- package/dist/lib/fs-walk.d.ts +0 -13
- package/dist/lib/fs-walk.js +0 -22
- package/dist/lib/fuzzy.d.ts +0 -29
- package/dist/lib/fuzzy.js +0 -31
- package/dist/lib/gemini-settings.js +0 -12
- package/dist/lib/git.d.ts +0 -366
- package/dist/lib/git.js +7 -574
- package/dist/lib/github/ci-failure.d.ts +30 -0
- package/dist/lib/github/ci-failure.js +95 -0
- package/dist/lib/github/gh-overload.d.ts +0 -38
- package/dist/lib/github/gh-overload.js +3 -55
- package/dist/lib/github/pr-mergeable.d.ts +3 -34
- package/dist/lib/github/pr-mergeable.js +2 -42
- package/dist/lib/github/pr-verdict.d.ts +0 -44
- package/dist/lib/github/pr-verdict.js +0 -36
- package/dist/lib/github/project-prs.d.ts +135 -105
- package/dist/lib/github/project-prs.js +530 -170
- package/dist/lib/github/release-drift.d.ts +45 -0
- package/dist/lib/github/release-drift.js +91 -0
- package/dist/lib/github/rest.d.ts +0 -50
- package/dist/lib/github/rest.js +0 -49
- package/dist/lib/github/viewer.d.ts +27 -0
- package/dist/lib/github/viewer.js +101 -0
- package/dist/lib/goose-commands.d.ts +0 -29
- package/dist/lib/goose-commands.js +3 -48
- package/dist/lib/harness/adapter.d.ts +0 -151
- package/dist/lib/harness/adapter.js +0 -41
- package/dist/lib/harness/adapters/claude.d.ts +0 -8
- package/dist/lib/harness/adapters/claude.js +0 -89
- package/dist/lib/harness/adapters/codex.js +0 -18
- package/dist/lib/harness/adapters/copilot.js +0 -3
- package/dist/lib/harness/adapters/cursor.js +0 -16
- package/dist/lib/harness/adapters/droid.js +0 -3
- package/dist/lib/harness/adapters/kimi.js +0 -19
- package/dist/lib/harness/adapters/muse.js +0 -9
- package/dist/lib/harness/adapters/opencode.js +0 -2
- package/dist/lib/harness/exec-config-version.d.ts +0 -2
- package/dist/lib/harness/exec-config-version.js +0 -13
- package/dist/lib/harness/index.js +0 -10
- package/dist/lib/harness-auth-capabilities.d.ts +0 -26
- package/dist/lib/harness-auth-capabilities.js +0 -18
- package/dist/lib/harness-connection-test.d.ts +0 -27
- package/dist/lib/harness-connection-test.js +2 -20
- package/dist/lib/heal.d.ts +0 -45
- package/dist/lib/heal.js +2 -82
- package/dist/lib/help.d.ts +0 -32
- package/dist/lib/help.js +0 -41
- package/dist/lib/helper-download.d.ts +0 -85
- package/dist/lib/helper-download.js +0 -95
- package/dist/lib/helper-versions.d.ts +0 -51
- package/dist/lib/helper-versions.js +1 -45
- package/dist/lib/hooks/cache.d.ts +0 -40
- package/dist/lib/hooks/cache.js +8 -122
- package/dist/lib/hooks/install.d.ts +0 -253
- package/dist/lib/hooks/install.js +49 -822
- package/dist/lib/hooks/match.d.ts +0 -24
- package/dist/lib/hooks/match.js +0 -31
- package/dist/lib/hooks/profile.d.ts +0 -21
- package/dist/lib/hooks/profile.js +0 -28
- package/dist/lib/hosts/credential-transport.d.ts +0 -6
- package/dist/lib/hosts/credential-transport.js +0 -17
- package/dist/lib/hosts/credentials.d.ts +0 -35
- package/dist/lib/hosts/credentials.js +0 -38
- package/dist/lib/hosts/dispatch.d.ts +0 -140
- package/dist/lib/hosts/dispatch.js +0 -176
- package/dist/lib/hosts/logs.d.ts +0 -25
- package/dist/lib/hosts/logs.js +1 -51
- package/dist/lib/hosts/option.d.ts +0 -12
- package/dist/lib/hosts/option.js +0 -12
- package/dist/lib/hosts/passthrough.d.ts +0 -129
- package/dist/lib/hosts/passthrough.js +12 -249
- package/dist/lib/hosts/progress.d.ts +0 -90
- package/dist/lib/hosts/progress.js +5 -115
- package/dist/lib/hosts/providers/devices.d.ts +0 -19
- package/dist/lib/hosts/providers/devices.js +1 -34
- package/dist/lib/hosts/providers/local.d.ts +0 -14
- package/dist/lib/hosts/providers/local.js +0 -22
- package/dist/lib/hosts/ready.d.ts +0 -99
- package/dist/lib/hosts/ready.js +0 -101
- package/dist/lib/hosts/reconcile.d.ts +0 -38
- package/dist/lib/hosts/reconcile.js +1 -50
- package/dist/lib/hosts/reconnect.d.ts +0 -75
- package/dist/lib/hosts/reconnect.js +0 -98
- package/dist/lib/hosts/registry.d.ts +0 -74
- package/dist/lib/hosts/registry.js +0 -110
- package/dist/lib/hosts/remote-cmd.d.ts +1 -228
- package/dist/lib/hosts/remote-cmd.js +19 -294
- package/dist/lib/hosts/remote-cmd.test-fixture.d.ts +0 -1
- package/dist/lib/hosts/remote-cmd.test-fixture.js +0 -12
- package/dist/lib/hosts/remote-os.d.ts +0 -19
- package/dist/lib/hosts/remote-os.js +0 -22
- package/dist/lib/hosts/remote-session-id.d.ts +0 -22
- package/dist/lib/hosts/remote-session-id.js +0 -24
- package/dist/lib/hosts/routing-flag.d.ts +0 -21
- package/dist/lib/hosts/routing-flag.js +0 -21
- package/dist/lib/hosts/run-target.d.ts +0 -53
- package/dist/lib/hosts/run-target.js +0 -56
- package/dist/lib/hosts/session-index.d.ts +1 -53
- package/dist/lib/hosts/session-index.js +2 -59
- package/dist/lib/hosts/session-marker.d.ts +0 -31
- package/dist/lib/hosts/session-marker.js +0 -32
- package/dist/lib/hosts/ssh-config.d.ts +0 -25
- package/dist/lib/hosts/ssh-config.js +1 -32
- package/dist/lib/hosts/tasks.d.ts +0 -54
- package/dist/lib/hosts/tasks.js +0 -35
- package/dist/lib/hosts/types.d.ts +0 -39
- package/dist/lib/hosts/types.js +0 -22
- package/dist/lib/humans.d.ts +0 -21
- package/dist/lib/humans.js +0 -30
- package/dist/lib/identity/client.d.ts +1 -35
- package/dist/lib/identity/client.js +3 -29
- package/dist/lib/identity/index.d.ts +3 -27
- package/dist/lib/identity/index.js +8 -24
- package/dist/lib/import.d.ts +0 -104
- package/dist/lib/import.js +1 -137
- package/dist/lib/installations/active-check.d.ts +0 -53
- package/dist/lib/installations/active-check.js +0 -49
- package/dist/lib/installations/index.d.ts +0 -9
- package/dist/lib/installations/index.js +0 -9
- package/dist/lib/installations/installation-lock.js +0 -8
- package/dist/lib/installations/launch-gate.d.ts +0 -56
- package/dist/lib/installations/launch-gate.js +0 -83
- package/dist/lib/installations/migrate.d.ts +0 -100
- package/dist/lib/installations/migrate.js +105 -572
- package/dist/lib/installations/native-command.d.ts +0 -1
- package/dist/lib/installations/native-command.js +0 -6
- package/dist/lib/installations/resolve.d.ts +0 -24
- package/dist/lib/installations/resolve.js +0 -24
- package/dist/lib/installations/shims.d.ts +0 -395
- package/dist/lib/installations/shims.js +30 -957
- package/dist/lib/installations/store.d.ts +0 -199
- package/dist/lib/installations/store.js +1 -297
- package/dist/lib/installations/strategies.d.ts +0 -44
- package/dist/lib/installations/strategies.js +0 -87
- package/dist/lib/installations/types.d.ts +1 -67
- package/dist/lib/installations/types.js +0 -6
- package/dist/lib/installations/update-cancellation.d.ts +0 -74
- package/dist/lib/installations/update-cancellation.js +0 -74
- package/dist/lib/installations/update-policy.d.ts +0 -57
- package/dist/lib/installations/update-policy.js +0 -62
- package/dist/lib/installations/update-runtime.d.ts +0 -88
- package/dist/lib/installations/update-runtime.js +1 -127
- package/dist/lib/installations/update.d.ts +0 -53
- package/dist/lib/installations/update.js +0 -95
- package/dist/lib/installations/versions.d.ts +0 -310
- package/dist/lib/installations/versions.js +14 -837
- package/dist/lib/isolation-boundary-report.d.ts +0 -7
- package/dist/lib/isolation-boundary-report.js +0 -7
- package/dist/lib/launch-identity.d.ts +0 -8
- package/dist/lib/launch-identity.js +0 -8
- package/dist/lib/linear-autoclose.d.ts +0 -25
- package/dist/lib/linear-autoclose.js +0 -19
- package/dist/lib/linear-cache.d.ts +0 -57
- package/dist/lib/linear-cache.js +1 -81
- package/dist/lib/linear-project-counts.d.ts +0 -83
- package/dist/lib/linear-project-counts.js +2 -64
- package/dist/lib/linear-projects.d.ts +0 -62
- package/dist/lib/linear-projects.js +0 -85
- package/dist/lib/linear-rate-limit.d.ts +0 -21
- package/dist/lib/linear-rate-limit.js +1 -93
- package/dist/lib/linux-userns.d.ts +1 -42
- package/dist/lib/linux-userns.js +0 -47
- package/dist/lib/lock-compromise.d.ts +0 -7
- package/dist/lib/lock-compromise.js +0 -7
- package/dist/lib/log-follow.d.ts +0 -2
- package/dist/lib/log-follow.js +5 -15
- package/dist/lib/loop.d.ts +0 -106
- package/dist/lib/loop.js +0 -135
- package/dist/lib/machine-id.d.ts +0 -19
- package/dist/lib/machine-id.js +0 -19
- package/dist/lib/mailbox-gc.d.ts +0 -7
- package/dist/lib/mailbox-gc.js +0 -25
- package/dist/lib/mailbox-target.d.ts +0 -31
- package/dist/lib/mailbox-target.js +0 -27
- package/dist/lib/mailbox.d.ts +0 -77
- package/dist/lib/mailbox.js +5 -105
- package/dist/lib/manifest.d.ts +0 -4
- package/dist/lib/manifest.js +0 -36
- package/dist/lib/markdown.d.ts +0 -3
- package/dist/lib/markdown.js +0 -9
- package/dist/lib/mcp-registry.d.ts +1 -50
- package/dist/lib/mcp-registry.js +0 -64
- package/dist/lib/mcp.d.ts +0 -115
- package/dist/lib/mcp.js +3 -199
- package/dist/lib/memory-cache.d.ts +0 -11
- package/dist/lib/memory-cache.js +0 -9
- package/dist/lib/memory.d.ts +0 -52
- package/dist/lib/memory.js +12 -74
- package/dist/lib/menubar/download-menubar.d.ts +0 -35
- package/dist/lib/menubar/download-menubar.js +0 -38
- package/dist/lib/menubar/install-menubar.d.ts +0 -405
- package/dist/lib/menubar/install-menubar.js +25 -667
- package/dist/lib/menubar/migrate-prefs.d.ts +0 -47
- package/dist/lib/menubar/migrate-prefs.js +1 -70
- package/dist/lib/menubar/notify-desktop.d.ts +0 -82
- package/dist/lib/menubar/notify-desktop.js +0 -68
- package/dist/lib/menubar/resolve-version.d.ts +0 -41
- package/dist/lib/menubar/resolve-version.js +2 -44
- package/dist/lib/menubar/snapshot.d.ts +13 -66
- package/dist/lib/menubar/snapshot.js +45 -39
- package/dist/lib/merged-resources.d.ts +0 -10
- package/dist/lib/merged-resources.js +0 -10
- package/dist/lib/migrate-fold.d.ts +0 -31
- package/dist/lib/migrate-fold.js +6 -38
- package/dist/lib/model-tier-overrides.d.ts +0 -30
- package/dist/lib/model-tier-overrides.js +0 -14
- package/dist/lib/model-tiers.d.ts +0 -43
- package/dist/lib/model-tiers.js +5 -78
- package/dist/lib/models.d.ts +0 -145
- package/dist/lib/models.js +3 -333
- package/dist/lib/monitors/config.d.ts +0 -187
- package/dist/lib/monitors/config.js +4 -101
- package/dist/lib/monitors/dispatch.d.ts +0 -22
- package/dist/lib/monitors/dispatch.js +0 -35
- package/dist/lib/monitors/engine.d.ts +1 -53
- package/dist/lib/monitors/engine.js +17 -106
- package/dist/lib/monitors/fingerprint.d.ts +0 -43
- package/dist/lib/monitors/fingerprint.js +0 -57
- package/dist/lib/monitors/pid-watch.d.ts +0 -31
- package/dist/lib/monitors/pid-watch.js +0 -31
- package/dist/lib/monitors/remote.d.ts +0 -52
- package/dist/lib/monitors/remote.js +0 -42
- package/dist/lib/monitors/sources/command.d.ts +2 -9
- package/dist/lib/monitors/sources/command.js +13 -34
- package/dist/lib/monitors/sources/device.d.ts +0 -10
- package/dist/lib/monitors/sources/device.js +0 -14
- package/dist/lib/monitors/sources/failure.d.ts +0 -27
- package/dist/lib/monitors/sources/failure.js +0 -27
- package/dist/lib/monitors/sources/file.d.ts +0 -10
- package/dist/lib/monitors/sources/file.js +0 -11
- package/dist/lib/monitors/sources/http.d.ts +0 -7
- package/dist/lib/monitors/sources/http.js +0 -9
- package/dist/lib/monitors/sources/index.d.ts +0 -9
- package/dist/lib/monitors/sources/index.js +0 -9
- package/dist/lib/monitors/sources/poll.d.ts +0 -8
- package/dist/lib/monitors/sources/poll.js +0 -8
- package/dist/lib/monitors/sources/types.d.ts +0 -18
- package/dist/lib/monitors/sources/types.js +0 -8
- package/dist/lib/monitors/sources/webhook.d.ts +0 -7
- package/dist/lib/monitors/sources/webhook.js +0 -7
- package/dist/lib/monitors/sources/ws.d.ts +0 -10
- package/dist/lib/monitors/sources/ws.js +3 -13
- package/dist/lib/monitors/state.d.ts +0 -132
- package/dist/lib/monitors/state.js +2 -86
- package/dist/lib/native-accounts.d.ts +0 -32
- package/dist/lib/native-accounts.js +0 -17
- package/dist/lib/net-close.d.ts +0 -9
- package/dist/lib/net-close.js +0 -5
- package/dist/lib/notify.d.ts +0 -47
- package/dist/lib/notify.js +0 -30
- package/dist/lib/onepassword.d.ts +0 -14
- package/dist/lib/onepassword.js +0 -12
- package/dist/lib/open-url.d.ts +0 -38
- package/dist/lib/open-url.js +1 -69
- package/dist/lib/openclaw-keychain.js +2 -7
- package/dist/lib/operator.d.ts +0 -9
- package/dist/lib/operator.js +0 -34
- package/dist/lib/origin-machine.d.ts +0 -16
- package/dist/lib/origin-machine.js +0 -16
- package/dist/lib/output/git-output.d.ts +0 -31
- package/dist/lib/output/git-output.js +4 -43
- package/dist/lib/overdue.d.ts +0 -35
- package/dist/lib/overdue.js +0 -60
- package/dist/lib/owner-message.d.ts +0 -20
- package/dist/lib/owner-message.js +1 -40
- package/dist/lib/packages/output-home.d.ts +0 -28
- package/dist/lib/packages/output-home.js +0 -114
- package/dist/lib/paths.d.ts +0 -26
- package/dist/lib/paths.js +1 -27
- package/dist/lib/percentile.d.ts +0 -11
- package/dist/lib/percentile.js +0 -11
- package/dist/lib/perf/db.d.ts +0 -16
- package/dist/lib/perf/db.js +3 -32
- package/dist/lib/perf/spool.d.ts +0 -12
- package/dist/lib/perf/spool.js +0 -13
- package/dist/lib/perf/types.d.ts +0 -26
- package/dist/lib/perf/types.js +0 -1
- package/dist/lib/permissions-registry.d.ts +0 -48
- package/dist/lib/permissions-registry.js +0 -108
- package/dist/lib/permissions.d.ts +0 -215
- package/dist/lib/permissions.js +4 -407
- package/dist/lib/picker.d.ts +0 -124
- package/dist/lib/picker.js +0 -140
- package/dist/lib/placement.d.ts +0 -57
- package/dist/lib/placement.js +0 -47
- package/dist/lib/platform/exec.d.ts +0 -73
- package/dist/lib/platform/exec.js +0 -80
- package/dist/lib/platform/index.d.ts +0 -14
- package/dist/lib/platform/index.js +0 -14
- package/dist/lib/platform/ipc.d.ts +0 -10
- package/dist/lib/platform/ipc.js +0 -13
- package/dist/lib/platform/links.d.ts +0 -14
- package/dist/lib/platform/links.js +0 -25
- package/dist/lib/platform/paths.d.ts +0 -48
- package/dist/lib/platform/paths.js +0 -52
- package/dist/lib/platform/posixpath.d.ts +0 -18
- package/dist/lib/platform/posixpath.js +0 -62
- package/dist/lib/platform/process.d.ts +0 -67
- package/dist/lib/platform/process.js +5 -99
- package/dist/lib/platform/winpath.d.ts +0 -50
- package/dist/lib/platform/winpath.js +0 -81
- package/dist/lib/plugins/plugin-marketplace.d.ts +0 -165
- package/dist/lib/plugins/plugin-marketplace.js +10 -238
- package/dist/lib/plugins/plugins.d.ts +0 -238
- package/dist/lib/plugins/plugins.js +20 -454
- package/dist/lib/plugins/skills.d.ts +0 -86
- package/dist/lib/plugins/skills.js +1 -139
- package/dist/lib/pr-land-detach.d.ts +0 -17
- package/dist/lib/pr-land-detach.js +0 -30
- package/dist/lib/pricing/cost.d.ts +0 -29
- package/dist/lib/pricing/cost.js +0 -38
- package/dist/lib/pricing/index.d.ts +0 -6
- package/dist/lib/pricing/index.js +0 -6
- package/dist/lib/pricing/table.d.ts +0 -8
- package/dist/lib/pricing/table.js +3 -56
- package/dist/lib/probe.d.ts +0 -5
- package/dist/lib/probe.js +0 -40
- package/dist/lib/profiles-presets.d.ts +0 -20
- package/dist/lib/profiles-presets.js +1 -36
- package/dist/lib/profiles.d.ts +0 -185
- package/dist/lib/profiles.js +1 -158
- package/dist/lib/project-doctor.d.ts +0 -29
- package/dist/lib/project-doctor.js +0 -26
- package/dist/lib/project-focus.d.ts +0 -41
- package/dist/lib/project-focus.js +0 -49
- package/dist/lib/project-import.d.ts +0 -41
- package/dist/lib/project-import.js +0 -36
- package/dist/lib/project-key.d.ts +0 -65
- package/dist/lib/project-key.js +0 -70
- package/dist/lib/project-launch.d.ts +0 -49
- package/dist/lib/project-launch.js +2 -91
- package/dist/lib/project-probe.d.ts +0 -86
- package/dist/lib/project-probe.js +1 -88
- package/dist/lib/project-pull.d.ts +0 -96
- package/dist/lib/project-pull.js +0 -122
- package/dist/lib/project-resources.d.ts +0 -44
- package/dist/lib/project-resources.js +7 -171
- package/dist/lib/project-root.d.ts +0 -95
- package/dist/lib/project-root.js +0 -101
- package/dist/lib/project-schedule.d.ts +0 -43
- package/dist/lib/project-schedule.js +0 -52
- package/dist/lib/project-status.d.ts +0 -108
- package/dist/lib/project-status.js +0 -117
- package/dist/lib/projects.d.ts +0 -197
- package/dist/lib/projects.js +1 -213
- package/dist/lib/pwsh.d.ts +0 -41
- package/dist/lib/pwsh.js +0 -51
- package/dist/lib/quick-todo.d.ts +84 -0
- package/dist/lib/quick-todo.js +243 -0
- package/dist/lib/reconcile-and-repair.d.ts +0 -78
- package/dist/lib/reconcile-and-repair.js +3 -66
- package/dist/lib/redact.d.ts +0 -29
- package/dist/lib/redact.js +0 -54
- package/dist/lib/refresh-coordinator.d.ts +0 -15
- package/dist/lib/refresh-coordinator.js +0 -10
- package/dist/lib/refresh.d.ts +0 -39
- package/dist/lib/refresh.js +0 -45
- package/dist/lib/registry.d.ts +0 -65
- package/dist/lib/registry.js +0 -127
- package/dist/lib/reminders.d.ts +0 -21
- package/dist/lib/reminders.js +0 -30
- package/dist/lib/remote-agents-json.d.ts +0 -44
- package/dist/lib/remote-agents-json.js +1 -44
- package/dist/lib/reserved-stores.d.ts +0 -28
- package/dist/lib/reserved-stores.js +2 -28
- package/dist/lib/resource-aliases.d.ts +0 -12
- package/dist/lib/resource-aliases.js +0 -12
- package/dist/lib/resource-content-diff.d.ts +0 -28
- package/dist/lib/resource-content-diff.js +7 -34
- package/dist/lib/resource-inventory.d.ts +0 -51
- package/dist/lib/resource-inventory.js +0 -45
- package/dist/lib/resource-patterns.d.ts +0 -32
- package/dist/lib/resource-patterns.js +0 -34
- package/dist/lib/resource-profiles.d.ts +0 -7
- package/dist/lib/resource-profiles.js +0 -11
- package/dist/lib/resources/types.d.ts +0 -50
- package/dist/lib/resources/types.js +0 -7
- package/dist/lib/resources/workflows.d.ts +0 -7
- package/dist/lib/resources/workflows.js +0 -13
- package/dist/lib/resources.d.ts +0 -65
- package/dist/lib/resources.js +0 -78
- package/dist/lib/routers.d.ts +0 -67
- package/dist/lib/routers.js +0 -60
- package/dist/lib/routine-activation.d.ts +0 -23
- package/dist/lib/routine-activation.js +0 -24
- package/dist/lib/routine-context.d.ts +1 -91
- package/dist/lib/routine-context.js +0 -107
- package/dist/lib/routine-notify-owner.d.ts +0 -79
- package/dist/lib/routine-notify-owner.js +1 -103
- package/dist/lib/routine-notify.d.ts +0 -70
- package/dist/lib/routine-notify.js +1 -75
- package/dist/lib/routine-process-cleanup.d.ts +0 -1
- package/dist/lib/routine-process-cleanup.js +1 -4
- package/dist/lib/routine-readiness.d.ts +0 -63
- package/dist/lib/routine-readiness.js +4 -86
- package/dist/lib/routines-format.d.ts +0 -40
- package/dist/lib/routines-format.js +0 -67
- package/dist/lib/routines-placement.d.ts +0 -33
- package/dist/lib/routines-placement.js +0 -40
- package/dist/lib/routines-project.d.ts +0 -57
- package/dist/lib/routines-project.js +6 -80
- package/dist/lib/rules/compile.d.ts +0 -66
- package/dist/lib/rules/compile.js +6 -118
- package/dist/lib/rules/compose.d.ts +0 -56
- package/dist/lib/rules/compose.js +2 -83
- package/dist/lib/rules/rules.d.ts +0 -23
- package/dist/lib/rules/rules.js +0 -35
- package/dist/lib/rules/run-sync.d.ts +0 -16
- package/dist/lib/rules/run-sync.js +1 -44
- package/dist/lib/run-config.d.ts +0 -7
- package/dist/lib/run-config.js +0 -8
- package/dist/lib/run-defaults.d.ts +0 -14
- package/dist/lib/run-defaults.js +0 -14
- package/dist/lib/run-notify.d.ts +0 -18
- package/dist/lib/run-notify.js +0 -36
- package/dist/lib/run-trace-sync.d.ts +0 -21
- package/dist/lib/run-trace-sync.js +2 -66
- package/dist/lib/rush-session.d.ts +0 -26
- package/dist/lib/rush-session.js +0 -28
- package/dist/lib/sandbox.d.ts +0 -45
- package/dist/lib/sandbox.js +5 -93
- package/dist/lib/scheduler.d.ts +0 -28
- package/dist/lib/scheduler.js +0 -45
- package/dist/lib/scheduling/routines.d.ts +0 -652
- package/dist/lib/scheduling/routines.js +8 -475
- package/dist/lib/secrets-cli.d.ts +3 -8
- package/dist/lib/secrets-cli.js +1 -19
- package/dist/lib/secrets-client.d.ts +0 -117
- package/dist/lib/secrets-client.js +4 -275
- package/dist/lib/secrets-policy.d.ts +0 -142
- package/dist/lib/secrets-policy.js +4 -237
- package/dist/lib/secrets-types.d.ts +0 -87
- package/dist/lib/secrets-types.js +0 -13
- package/dist/lib/self-heal/checks/hook-manifest.js +0 -25
- package/dist/lib/self-heal/checks/hook-runtime.js +0 -5
- package/dist/lib/self-heal/checks/install-staging.d.ts +0 -1
- package/dist/lib/self-heal/checks/install-staging.js +1 -28
- package/dist/lib/self-heal/checks/menubar-helper.js +0 -5
- package/dist/lib/self-heal/checks/path.js +0 -9
- package/dist/lib/self-heal/checks/resources.js +0 -5
- package/dist/lib/self-heal/checks/shadowing.js +2 -16
- package/dist/lib/self-heal/checks/shims.js +0 -14
- package/dist/lib/self-heal/child.d.ts +12 -0
- package/dist/lib/self-heal/child.js +23 -0
- package/dist/lib/self-heal/registry.d.ts +0 -9
- package/dist/lib/self-heal/registry.js +0 -16
- package/dist/lib/self-heal/types.d.ts +0 -12
- package/dist/lib/self-heal/types.js +0 -15
- package/dist/lib/self-update.d.ts +0 -312
- package/dist/lib/self-update.js +9 -360
- package/dist/lib/service-manifest.d.ts +0 -39
- package/dist/lib/service-manifest.js +0 -72
- package/dist/lib/session/active.d.ts +13 -869
- package/dist/lib/session/active.js +20 -976
- package/dist/lib/session/actor-sidecar.d.ts +1 -32
- package/dist/lib/session/actor-sidecar.js +1 -41
- package/dist/lib/session/bookmarks.d.ts +0 -33
- package/dist/lib/session/bookmarks.js +0 -37
- package/dist/lib/session/bundle.d.ts +0 -86
- package/dist/lib/session/bundle.js +0 -54
- package/dist/lib/session/claude-accounts.d.ts +0 -40
- package/dist/lib/session/claude-accounts.js +0 -49
- package/dist/lib/session/cloud.d.ts +1 -23
- package/dist/lib/session/cloud.js +0 -26
- package/dist/lib/session/db.d.ts +5 -658
- package/dist/lib/session/db.js +22 -1443
- package/dist/lib/session/detached.d.ts +0 -21
- package/dist/lib/session/detached.js +0 -29
- package/dist/lib/session/discover.d.ts +3 -420
- package/dist/lib/session/discover.js +30 -1123
- package/dist/lib/session/fork.d.ts +1 -41
- package/dist/lib/session/fork.js +0 -19
- package/dist/lib/session/ghostty-tabs.d.ts +0 -24
- package/dist/lib/session/ghostty-tabs.js +0 -37
- package/dist/lib/session/glance-files.d.ts +19 -0
- package/dist/lib/session/glance-files.js +258 -0
- package/dist/lib/session/hook-sessions.d.ts +0 -33
- package/dist/lib/session/hook-sessions.js +4 -99
- package/dist/lib/session/host-link.d.ts +1 -94
- package/dist/lib/session/host-link.js +1 -81
- package/dist/lib/session/inject-target.d.ts +8 -0
- package/dist/lib/session/inject-target.js +32 -0
- package/dist/lib/session/inject.d.ts +0 -15
- package/dist/lib/session/inject.js +0 -15
- package/dist/lib/session/live-metadata.d.ts +1 -34
- package/dist/lib/session/live-metadata.js +1 -73
- package/dist/lib/session/local-tmux-attach.d.ts +0 -37
- package/dist/lib/session/local-tmux-attach.js +1 -76
- package/dist/lib/session/migrate-targets.d.ts +0 -46
- package/dist/lib/session/migrate-targets.js +0 -24
- package/dist/lib/session/migrations.d.ts +0 -12
- package/dist/lib/session/migrations.js +1 -20
- package/dist/lib/session/mirror.d.ts +0 -32
- package/dist/lib/session/mirror.js +0 -77
- package/dist/lib/session/origin-machine.js +0 -3
- package/dist/lib/session/pid-registry.d.ts +0 -80
- package/dist/lib/session/pid-registry.js +2 -81
- package/dist/lib/session/presence.d.ts +0 -39
- package/dist/lib/session/presence.js +2 -52
- package/dist/lib/session/process-view.d.ts +0 -11
- package/dist/lib/session/process-view.js +0 -25
- package/dist/lib/session/projection.d.ts +0 -3
- package/dist/lib/session/projection.js +0 -10
- package/dist/lib/session/provenance.d.ts +1 -37
- package/dist/lib/session/provenance.js +0 -69
- package/dist/lib/session/recovery.d.ts +1 -40
- package/dist/lib/session/recovery.js +2 -80
- package/dist/lib/session/relative-time.js +0 -3
- package/dist/lib/session/remote/peer-stream.d.ts +0 -42
- package/dist/lib/session/remote/peer-stream.js +0 -64
- package/dist/lib/session/remote/remote-bundle.d.ts +0 -6
- package/dist/lib/session/remote/remote-bundle.js +0 -21
- package/dist/lib/session/remote/remote-list.d.ts +1 -110
- package/dist/lib/session/remote/remote-list.js +5 -139
- package/dist/lib/session/remote/remote.d.ts +0 -98
- package/dist/lib/session/remote/remote.js +3 -119
- package/dist/lib/session/remote/watch.d.ts +1 -34
- package/dist/lib/session/remote/watch.js +12 -72
- package/dist/lib/session/remote-active.d.ts +0 -35
- package/dist/lib/session/remote-active.js +0 -48
- package/dist/lib/session/remote-bundle.js +0 -2
- package/dist/lib/session/remote-list.js +0 -2
- package/dist/lib/session/remote-preview-cache.d.ts +0 -7
- package/dist/lib/session/remote-preview-cache.js +1 -76
- package/dist/lib/session/remote.js +0 -2
- package/dist/lib/session/resume-command.d.ts +0 -6
- package/dist/lib/session/resume-command.js +0 -6
- package/dist/lib/session/resume-owner.d.ts +1 -52
- package/dist/lib/session/resume-owner.js +0 -56
- package/dist/lib/session/run-names.d.ts +0 -24
- package/dist/lib/session/run-names.js +0 -26
- package/dist/lib/session/session-cache.d.ts +2 -146
- package/dist/lib/session/session-cache.js +26 -203
- package/dist/lib/session/short-id.js +0 -3
- package/dist/lib/session/sync/agents.d.ts +0 -68
- package/dist/lib/session/sync/agents.js +0 -0
- package/dist/lib/session/sync/backend.d.ts +0 -39
- package/dist/lib/session/sync/backend.js +0 -45
- package/dist/lib/session/sync/config.d.ts +0 -27
- package/dist/lib/session/sync/config.js +0 -56
- package/dist/lib/session/sync/managed-config.d.ts +0 -17
- package/dist/lib/session/sync/managed-config.js +0 -17
- package/dist/lib/session/sync/managed-key.d.ts +0 -38
- package/dist/lib/session/sync/managed-key.js +1 -42
- package/dist/lib/session/sync/net-client.d.ts +0 -36
- package/dist/lib/session/sync/net-client.js +0 -30
- package/dist/lib/session/sync/provision.d.ts +0 -2
- package/dist/lib/session/sync/provision.js +0 -13
- package/dist/lib/session/sync/r2.d.ts +0 -20
- package/dist/lib/session/sync/r2.js +0 -20
- package/dist/lib/session/sync/transcript-crypto.d.ts +0 -37
- package/dist/lib/session/sync/transcript-crypto.js +5 -37
- package/dist/lib/session/sync/worker-template.d.ts +0 -5
- package/dist/lib/session/sync/worker-template.js +0 -40
- package/dist/lib/session/testdata/pid-registry-namespace.js +0 -2
- package/dist/lib/session/testdata/process-view-private.js +0 -1
- package/dist/lib/session/throughput.d.ts +0 -24
- package/dist/lib/session/throughput.js +1 -25
- package/dist/lib/session/timeline-pass.d.ts +1 -63
- package/dist/lib/session/timeline-pass.js +161 -148
- package/dist/lib/session/title.d.ts +0 -182
- package/dist/lib/session/title.js +0 -139
- package/dist/lib/session/tool-index.d.ts +2 -21
- package/dist/lib/session/tool-index.js +3 -75
- package/dist/lib/session/tool-store.d.ts +2 -48
- package/dist/lib/session/tool-store.js +1 -33
- package/dist/lib/session/viewing-in.d.ts +0 -67
- package/dist/lib/session/viewing-in.js +1 -71
- package/dist/lib/session/watch.js +0 -2
- package/dist/lib/session/width.js +0 -3
- package/dist/lib/sessions-client.d.ts +0 -46
- package/dist/lib/sessions-client.js +36 -113
- package/dist/lib/settings-manifest.d.ts +1 -17
- package/dist/lib/settings-manifest.js +4 -57
- package/dist/lib/setup-tool-install.d.ts +0 -1
- package/dist/lib/setup-tool-install.js +2 -7
- package/dist/lib/setup-tool-status.d.ts +0 -3
- package/dist/lib/setup-tool-status.js +4 -14
- package/dist/lib/sha256-asset.d.ts +0 -20
- package/dist/lib/sha256-asset.js +0 -20
- package/dist/lib/share-runtime.d.ts +0 -10
- package/dist/lib/share-runtime.js +1 -27
- package/dist/lib/shim-heal.d.ts +0 -15
- package/dist/lib/shim-heal.js +3 -29
- package/dist/lib/signin-badge.d.ts +0 -72
- package/dist/lib/signin-badge.js +0 -86
- package/dist/lib/sink-format.d.ts +0 -32
- package/dist/lib/sink-format.js +0 -14
- package/dist/lib/smart-launch.d.ts +0 -75
- package/dist/lib/smart-launch.js +1 -83
- package/dist/lib/snapshot.d.ts +0 -46
- package/dist/lib/snapshot.js +5 -31
- package/dist/lib/spinner.d.ts +0 -37
- package/dist/lib/spinner.js +0 -37
- package/dist/lib/sqlite.d.ts +0 -13
- package/dist/lib/sqlite.js +3 -71
- package/dist/lib/ssh-exec.d.ts +0 -209
- package/dist/lib/ssh-exec.js +11 -248
- package/dist/lib/ssh-tunnel.d.ts +0 -43
- package/dist/lib/ssh-tunnel.js +2 -48
- package/dist/lib/staleness/checkers/commands.d.ts +0 -4
- package/dist/lib/staleness/checkers/commands.js +0 -4
- package/dist/lib/staleness/checkers/hooks.d.ts +0 -10
- package/dist/lib/staleness/checkers/hooks.js +0 -15
- package/dist/lib/staleness/checkers/mcp.d.ts +0 -9
- package/dist/lib/staleness/checkers/mcp.js +0 -9
- package/dist/lib/staleness/checkers/permissions.d.ts +0 -12
- package/dist/lib/staleness/checkers/permissions.js +0 -13
- package/dist/lib/staleness/checkers/plugins.d.ts +0 -8
- package/dist/lib/staleness/checkers/plugins.js +0 -8
- package/dist/lib/staleness/checkers/rules.d.ts +0 -15
- package/dist/lib/staleness/checkers/rules.js +0 -26
- package/dist/lib/staleness/checkers/skills.d.ts +0 -4
- package/dist/lib/staleness/checkers/skills.js +0 -4
- package/dist/lib/staleness/checkers/subagents.d.ts +0 -9
- package/dist/lib/staleness/checkers/subagents.js +0 -9
- package/dist/lib/staleness/checkers/types.d.ts +0 -34
- package/dist/lib/staleness/checkers/types.js +0 -19
- package/dist/lib/staleness/checkers/workflows.d.ts +0 -7
- package/dist/lib/staleness/checkers/workflows.js +0 -7
- package/dist/lib/staleness/detectors/commands.js +0 -17
- package/dist/lib/staleness/detectors/hooks.js +1 -6
- package/dist/lib/staleness/detectors/mcp.js +0 -4
- package/dist/lib/staleness/detectors/permissions.js +10 -23
- package/dist/lib/staleness/detectors/rules.js +0 -6
- package/dist/lib/staleness/detectors/skills.d.ts +0 -1
- package/dist/lib/staleness/detectors/skills.js +1 -12
- package/dist/lib/staleness/detectors/types.d.ts +0 -10
- package/dist/lib/staleness/fingerprint.d.ts +0 -19
- package/dist/lib/staleness/fingerprint.js +0 -35
- package/dist/lib/staleness/index.d.ts +0 -28
- package/dist/lib/staleness/index.js +1 -45
- package/dist/lib/staleness/layers.d.ts +0 -23
- package/dist/lib/staleness/layers.js +0 -34
- package/dist/lib/staleness/prune.d.ts +0 -71
- package/dist/lib/staleness/prune.js +2 -27
- package/dist/lib/staleness/registry.d.ts +0 -10
- package/dist/lib/staleness/registry.js +3 -33
- package/dist/lib/staleness/types.d.ts +0 -36
- package/dist/lib/staleness/types.js +0 -5
- package/dist/lib/staleness/writers/commands.js +1 -48
- package/dist/lib/staleness/writers/hooks.js +1 -18
- package/dist/lib/staleness/writers/kinds.d.ts +0 -12
- package/dist/lib/staleness/writers/kinds.js +0 -1
- package/dist/lib/staleness/writers/lazy-map.d.ts +0 -11
- package/dist/lib/staleness/writers/mcp.js +0 -13
- package/dist/lib/staleness/writers/plugins.js +0 -4
- package/dist/lib/staleness/writers/rules.d.ts +0 -1
- package/dist/lib/staleness/writers/rules.js +1 -19
- package/dist/lib/staleness/writers/skills.js +3 -14
- package/dist/lib/staleness/writers/sources.d.ts +0 -11
- package/dist/lib/staleness/writers/sources.js +0 -32
- package/dist/lib/staleness/writers/subagents.js +0 -16
- package/dist/lib/staleness/writers/types.d.ts +0 -58
- package/dist/lib/staleness/writers/workflows.js +1 -1
- package/dist/lib/standalone-tools.d.ts +24 -0
- package/dist/lib/standalone-tools.js +58 -0
- package/dist/lib/star-nudge.d.ts +0 -32
- package/dist/lib/star-nudge.js +2 -36
- package/dist/lib/startup/command-registry.d.ts +0 -45
- package/dist/lib/startup/command-registry.js +1 -46
- package/dist/lib/startup/dev-build.d.ts +0 -9
- package/dist/lib/startup/dev-build.js +1 -42
- package/dist/lib/startup/root-command.d.ts +0 -19
- package/dist/lib/startup/root-command.js +0 -19
- package/dist/lib/startup/spellcheck.d.ts +0 -13
- package/dist/lib/startup/spellcheck.js +0 -13
- package/dist/lib/state.d.ts +0 -376
- package/dist/lib/state.js +19 -737
- package/dist/lib/storage/selection.d.ts +0 -40
- package/dist/lib/storage/selection.js +0 -29
- package/dist/lib/subagents-registry.d.ts +0 -56
- package/dist/lib/subagents-registry.js +0 -99
- package/dist/lib/subagents.d.ts +0 -128
- package/dist/lib/subagents.js +1 -158
- package/dist/lib/summarizer/config.d.ts +0 -37
- package/dist/lib/summarizer/config.js +0 -37
- package/dist/lib/summarizer/pass.d.ts +0 -20
- package/dist/lib/summarizer/pass.js +1 -34
- package/dist/lib/summarizer/summarize.d.ts +1 -49
- package/dist/lib/summarizer/summarize.js +0 -35
- package/dist/lib/sync-passphrase.d.ts +0 -16
- package/dist/lib/sync-passphrase.js +1 -18
- package/dist/lib/sync-status.d.ts +0 -72
- package/dist/lib/sync-status.js +0 -55
- package/dist/lib/sync-umbrella.d.ts +0 -54
- package/dist/lib/sync-umbrella.js +0 -48
- package/dist/lib/system-run-sync.d.ts +0 -5
- package/dist/lib/system-run-sync.js +1 -31
- package/dist/lib/teams/agents.d.ts +1 -444
- package/dist/lib/teams/agents.js +11 -871
- package/dist/lib/teams/api.d.ts +2 -52
- package/dist/lib/teams/api.js +4 -63
- package/dist/lib/teams/debug.d.ts +0 -6
- package/dist/lib/teams/debug.js +0 -6
- package/dist/lib/teams/delivery.d.ts +0 -41
- package/dist/lib/teams/delivery.js +0 -32
- package/dist/lib/teams/file_ops.d.ts +0 -11
- package/dist/lib/teams/file_ops.js +0 -11
- package/dist/lib/teams/forEach.d.ts +0 -76
- package/dist/lib/teams/forEach.js +1 -77
- package/dist/lib/teams/index.d.ts +1 -7
- package/dist/lib/teams/index.js +1 -7
- package/dist/lib/teams/parsers.d.ts +0 -4
- package/dist/lib/teams/parsers.js +0 -81
- package/dist/lib/teams/persistence.d.ts +0 -2
- package/dist/lib/teams/persistence.js +0 -12
- package/dist/lib/teams/placement-probe.d.ts +0 -12
- package/dist/lib/teams/placement-probe.js +1 -51
- package/dist/lib/teams/pr-watch.d.ts +0 -107
- package/dist/lib/teams/pr-watch.js +1 -107
- package/dist/lib/teams/registry.d.ts +0 -36
- package/dist/lib/teams/registry.js +0 -47
- package/dist/lib/teams/remoteWorktree.d.ts +0 -50
- package/dist/lib/teams/remoteWorktree.js +1 -96
- package/dist/lib/teams/scheduler.d.ts +0 -111
- package/dist/lib/teams/scheduler.js +2 -125
- package/dist/lib/teams/summarizer.d.ts +0 -22
- package/dist/lib/teams/summarizer.js +6 -50
- package/dist/lib/teams/supervisor.d.ts +0 -38
- package/dist/lib/teams/supervisor.js +0 -21
- package/dist/lib/teams/worktree.d.ts +0 -95
- package/dist/lib/teams/worktree.js +3 -110
- package/dist/lib/template.d.ts +0 -21
- package/dist/lib/template.js +0 -23
- package/dist/lib/term-client.d.ts +0 -26
- package/dist/lib/term-client.js +0 -48
- package/dist/lib/term-driver.d.ts +0 -5
- package/dist/lib/term-driver.js +0 -8
- package/dist/lib/terminal/backends/ghostty.d.ts +0 -2
- package/dist/lib/terminal/backends/ghostty.js +0 -12
- package/dist/lib/terminal/backends/index.d.ts +0 -17
- package/dist/lib/terminal/backends/index.js +0 -15
- package/dist/lib/terminal/backends/iterm.d.ts +0 -2
- package/dist/lib/terminal/backends/iterm.js +0 -10
- package/dist/lib/terminal/backends/terminal-app.d.ts +0 -10
- package/dist/lib/terminal/backends/terminal-app.js +0 -30
- package/dist/lib/terminal/backends/tmux.d.ts +0 -10
- package/dist/lib/terminal/backends/tmux.js +0 -2
- package/dist/lib/terminal/backends/vscodium-agent.d.ts +0 -25
- package/dist/lib/terminal/backends/vscodium-agent.js +0 -36
- package/dist/lib/terminal/engine.d.ts +0 -17
- package/dist/lib/terminal/engine.js +0 -10
- package/dist/lib/terminal/index.d.ts +0 -8
- package/dist/lib/terminal/inject.d.ts +1 -173
- package/dist/lib/terminal/inject.js +0 -146
- package/dist/lib/terminal/policy.d.ts +0 -8
- package/dist/lib/terminal/policy.js +0 -1
- package/dist/lib/terminal/preferred.d.ts +0 -66
- package/dist/lib/terminal/preferred.js +0 -30
- package/dist/lib/terminal/quote.d.ts +0 -8
- package/dist/lib/terminal/quote.js +0 -8
- package/dist/lib/terminal/resolve.d.ts +0 -46
- package/dist/lib/terminal/resolve.js +0 -30
- package/dist/lib/terminal/run-surface.d.ts +0 -56
- package/dist/lib/terminal/run-surface.js +0 -46
- package/dist/lib/terminal/shell.d.ts +0 -3
- package/dist/lib/terminal/shell.js +0 -13
- package/dist/lib/terminal/transport.d.ts +0 -14
- package/dist/lib/terminal/transport.js +1 -30
- package/dist/lib/terminal/types.d.ts +0 -40
- package/dist/lib/terminal/types.js +0 -10
- package/dist/lib/text/relative-time.d.ts +0 -36
- package/dist/lib/text/relative-time.js +0 -43
- package/dist/lib/text/short-id.d.ts +0 -16
- package/dist/lib/text/short-id.js +0 -16
- package/dist/lib/text/width.d.ts +0 -24
- package/dist/lib/text/width.js +10 -52
- package/dist/lib/tmux/binary.d.ts +0 -36
- package/dist/lib/tmux/binary.js +0 -28
- package/dist/lib/tmux/index.d.ts +0 -5
- package/dist/lib/tmux/index.js +0 -5
- package/dist/lib/tmux/orphan-reap.d.ts +0 -253
- package/dist/lib/tmux/orphan-reap.js +3 -299
- package/dist/lib/tmux/paths.d.ts +0 -14
- package/dist/lib/tmux/paths.js +0 -14
- package/dist/lib/tmux/session.d.ts +0 -263
- package/dist/lib/tmux/session.js +6 -344
- package/dist/lib/traces/backend.d.ts +0 -20
- package/dist/lib/traces/backend.js +0 -23
- package/dist/lib/traces/classify.d.ts +0 -20
- package/dist/lib/traces/classify.js +0 -7
- package/dist/lib/traces/insights.d.ts +1 -84
- package/dist/lib/traces/insights.js +0 -126
- package/dist/lib/traces/phenotype.d.ts +0 -69
- package/dist/lib/traces/phenotype.js +0 -150
- package/dist/lib/traces/provision.d.ts +0 -1
- package/dist/lib/traces/provision.js +0 -5
- package/dist/lib/traces/schema2-build.d.ts +3 -60
- package/dist/lib/traces/schema2-build.js +8 -149
- package/dist/lib/traces/schema2-danger.d.ts +0 -30
- package/dist/lib/traces/schema2-danger.js +1 -63
- package/dist/lib/traces/schema2.d.ts +0 -11
- package/dist/lib/traces/segments.d.ts +0 -44
- package/dist/lib/traces/segments.js +0 -65
- package/dist/lib/traces/sync.d.ts +2 -239
- package/dist/lib/traces/sync.js +15 -237
- package/dist/lib/traces/worker-template.d.ts +0 -3
- package/dist/lib/traces/worker-template.js +0 -29
- package/dist/lib/triggers/handlers.d.ts +0 -82
- package/dist/lib/triggers/handlers.js +0 -75
- package/dist/lib/triggers/webhook.d.ts +0 -158
- package/dist/lib/triggers/webhook.js +0 -143
- package/dist/lib/types.d.ts +0 -736
- package/dist/lib/types.js +0 -50
- package/dist/lib/uninstall.d.ts +0 -17
- package/dist/lib/uninstall.js +0 -75
- package/dist/lib/usage-backoff.d.ts +0 -20
- package/dist/lib/usage-backoff.js +3 -60
- package/dist/lib/usage-refresh.d.ts +0 -154
- package/dist/lib/usage-refresh.js +8 -212
- package/dist/lib/verbs.d.ts +0 -12
- package/dist/lib/verbs.js +0 -12
- package/dist/lib/version-duplicates.d.ts +0 -6
- package/dist/lib/version-duplicates.js +0 -6
- package/dist/lib/version.d.ts +0 -55
- package/dist/lib/version.js +1 -58
- package/dist/lib/view-types.d.ts +0 -48
- package/dist/lib/warn-unpushed.d.ts +0 -27
- package/dist/lib/warn-unpushed.js +1 -45
- package/dist/lib/watchdog/history.d.ts +0 -1
- package/dist/lib/watchdog/history.js +0 -3
- package/dist/lib/watchdog/index.js +0 -2
- package/dist/lib/watchdog/log.d.ts +0 -19
- package/dist/lib/watchdog/log.js +0 -34
- package/dist/lib/watchdog/read.d.ts +0 -27
- package/dist/lib/watchdog/read.js +3 -58
- package/dist/lib/watchdog/rotate.d.ts +0 -139
- package/dist/lib/watchdog/rotate.js +2 -151
- package/dist/lib/watchdog/runner.d.ts +0 -125
- package/dist/lib/watchdog/runner.js +3 -223
- package/dist/lib/watchdog/service.d.ts +0 -1
- package/dist/lib/watchdog/service.js +0 -2
- package/dist/lib/watchdog/watchdog-agent.d.ts +0 -31
- package/dist/lib/watchdog/watchdog-agent.js +0 -27
- package/dist/lib/watchdog/watchdog.d.ts +0 -7
- package/dist/lib/watchdog/watchdog.js +0 -10
- package/dist/lib/watchdog/watchdogTail.js +0 -7
- package/dist/lib/whats-new.d.ts +0 -10
- package/dist/lib/whats-new.js +0 -21
- package/dist/lib/workflows-registry.d.ts +0 -45
- package/dist/lib/workflows-registry.js +0 -60
- package/dist/lib/workflows.d.ts +0 -282
- package/dist/lib/workflows.js +3 -213
- package/dist/lib/worktree/held.d.ts +0 -89
- package/dist/lib/worktree/held.js +1 -103
- package/dist/lib/wrap.d.ts +0 -32
- package/dist/lib/wrap.js +0 -32
- package/dist/lib/yaml-io.d.ts +0 -45
- package/dist/lib/yaml-io.js +0 -47
- package/dist/session-tracker/dist/adapters/claude.js +0 -2
- package/dist/session-tracker/dist/hook.sh +4 -37
- package/dist/session-tracker/dist/index.d.ts +0 -7
- package/dist/session-tracker/dist/index.js +0 -5
- package/dist/session-tracker/dist/install-hook.d.ts +0 -5
- package/dist/session-tracker/dist/install-hook.js +1 -15
- package/dist/session-tracker/dist/prune-state.js +0 -4
- package/dist/session-tracker/dist/reader.js +0 -4
- package/dist/session-tracker/dist/state-file.d.ts +0 -3
- package/dist/session-tracker/dist/state-file.js +3 -8
- package/package.json +3 -4
- package/scripts/postinstall.js +8 -116
- package/dist/lib/session/artifacts.d.ts +0 -14
- package/dist/lib/session/artifacts.js +0 -101
- package/dist/lib/session/bash-command.d.ts +0 -63
- package/dist/lib/session/bash-command.js +0 -490
- package/dist/lib/session/digest.d.ts +0 -66
- package/dist/lib/session/digest.js +0 -328
- package/dist/lib/session/highlights.d.ts +0 -151
- package/dist/lib/session/highlights.js +0 -391
- package/dist/lib/session/insights.d.ts +0 -165
- package/dist/lib/session/insights.js +0 -563
- package/dist/lib/session/linear.d.ts +0 -19
- package/dist/lib/session/linear.js +0 -99
- package/dist/lib/session/parse.d.ts +0 -224
- package/dist/lib/session/parse.js +0 -2408
- package/dist/lib/session/prompt.d.ts +0 -213
- package/dist/lib/session/prompt.js +0 -601
- package/dist/lib/session/render.d.ts +0 -133
- package/dist/lib/session/render.js +0 -1047
- package/dist/lib/session/share-html.d.ts +0 -35
- package/dist/lib/session/share-html.js +0 -319
- package/dist/lib/session/shell-programs.d.ts +0 -33
- package/dist/lib/session/shell-programs.js +0 -380
- package/dist/lib/session/state.d.ts +0 -269
- package/dist/lib/session/state.js +0 -777
- package/dist/lib/session/stream-render.d.ts +0 -4
- package/dist/lib/session/stream-render.js +0 -131
- package/dist/lib/session/tail.d.ts +0 -88
- package/dist/lib/session/tail.js +0 -294
- package/dist/lib/session/team-filter.d.ts +0 -129
- package/dist/lib/session/team-filter.js +0 -269
- package/dist/lib/session/timeline.d.ts +0 -172
- package/dist/lib/session/timeline.js +0 -636
- package/dist/lib/session/tool-calls.d.ts +0 -132
- package/dist/lib/session/tool-calls.js +0 -674
- package/dist/lib/session/trajectory-compare.d.ts +0 -48
- package/dist/lib/session/trajectory-compare.js +0 -116
- package/dist/lib/session/trajectory-html.d.ts +0 -19
- package/dist/lib/session/trajectory-html.js +0 -771
- package/dist/lib/session/trajectory-lineage.d.ts +0 -93
- package/dist/lib/session/trajectory-lineage.js +0 -195
- package/dist/lib/session/trajectory-text.d.ts +0 -38
- package/dist/lib/session/trajectory-text.js +0 -284
- package/dist/lib/session/trajectory.d.ts +0 -145
- package/dist/lib/session/trajectory.js +0 -394
- package/dist/lib/session/types.d.ts +0 -627
- package/dist/lib/session/types.js +0 -43
|
@@ -46,11 +46,6 @@ import { CONFIG_ENV_ISOLATED_AGENTS } from '../installations/shims.js';
|
|
|
46
46
|
import { padToWidth, stringWidth } from '../text/width.js';
|
|
47
47
|
import { windowsSshEnrollmentProblem } from './windows-ssh-enrollment.js';
|
|
48
48
|
import { DOCTOR_ALL_KINDS } from '../doctor-diff.js';
|
|
49
|
-
/**
|
|
50
|
-
* Singular noun per resource kind for finding messages. A naive `kind.replace(/s$/,'')`
|
|
51
|
-
* mangles `memory` → `memor` and `mcp` → `mcp` inconsistently, so the mapping is
|
|
52
|
-
* explicit. Keyed by `DoctorKind` so a new kind fails the type check until named.
|
|
53
|
-
*/
|
|
54
49
|
const KIND_SINGULAR = {
|
|
55
50
|
commands: 'command',
|
|
56
51
|
skills: 'skill',
|
|
@@ -64,92 +59,55 @@ const KIND_SINGULAR = {
|
|
|
64
59
|
memory: 'memory',
|
|
65
60
|
};
|
|
66
61
|
const AGENT_NAMES = Object.fromEntries(ALL_AGENT_IDS.map((id) => [id, AGENTS[id].name]));
|
|
67
|
-
/** Agents with NO per-version credential isolation: their login is shared across
|
|
68
|
-
* every installed version, so a "log into THIS version" remediation would be a
|
|
69
|
-
* lie. Derived from `CONFIG_ENV_ISOLATED_AGENTS` in `lib/installations/shims.ts` — the shim
|
|
70
|
-
* generator is what actually exports the per-version isolation env var, so it is
|
|
71
|
-
* the source of truth. Do not hand-maintain a second copy: an agent gaining
|
|
72
|
-
* isolation there must not leave a stale "login is shared" hint here. */
|
|
73
62
|
const ISOLATED_LOGIN = new Set(CONFIG_ENV_ISOLATED_AGENTS);
|
|
74
63
|
const NO_PER_VERSION_LOGIN = new Set(ALL_AGENT_IDS.filter((a) => !ISOLATED_LOGIN.has(a)));
|
|
75
|
-
/** How an agent's login is actually reached — the three shapes `loginHint`
|
|
76
|
-
* encodes (`lib/signin-badge.ts:23-36`), split apart because a per-version fix
|
|
77
|
-
* has to build a different command for each:
|
|
78
|
-
* `subcommand` — `<cli> login` / `<cli> auth login`, runnable via `--`
|
|
79
|
-
* `in-tui` — claude only: a `/login` slash command inside its own TUI
|
|
80
|
-
* `on-launch` — the device/oauth flow starts when the agent launches */
|
|
81
64
|
const LOGIN_SUBCOMMAND = Object.fromEntries(SUBCOMMAND_LOGIN_AGENTS.map((agent) => [agent, loginSubcommand(agent)]));
|
|
82
|
-
/** Kinds whose fix is inherently PER VERSION, so a row collapsed across versions
|
|
83
|
-
* could not carry a correct remediation. A login is the whole set: there is no
|
|
84
|
-
* `@all` selector for it, and dropping the version falls back to the bare native
|
|
85
|
-
* hint, which the shim points at the DEFAULT version. */
|
|
86
65
|
const NEVER_COLLAPSED = new Set(['logged-out', 'logout-unprovable']);
|
|
87
66
|
function loginShape(agent) {
|
|
88
67
|
if (LOGIN_SUBCOMMAND[agent])
|
|
89
68
|
return 'subcommand';
|
|
90
69
|
return agent === 'claude' ? 'in-tui' : 'on-launch';
|
|
91
70
|
}
|
|
92
|
-
/** A machine-stable class for a finding — drives {@link remediationFor} and lets
|
|
93
|
-
* the JSON consumer group by kind. */
|
|
94
|
-
/** Every finding class. Severity is NOT annotated here — {@link FINDING_SEVERITY}
|
|
95
|
-
* below owns it, and a second copy in these comments is a fourth place to drift. */
|
|
96
71
|
export const ALL_FINDING_KINDS = [
|
|
97
|
-
'logged-out',
|
|
98
|
-
'logout-unprovable',
|
|
99
|
-
'missing-hook',
|
|
100
|
-
'missing-plugin',
|
|
101
|
-
'unwired-hook',
|
|
102
|
-
'hook-runtime-broken',
|
|
103
|
-
'hook-runtime-visibility-unavailable',
|
|
104
|
-
'cli-missing',
|
|
105
|
-
'missing-resource',
|
|
106
|
-
'content-drift',
|
|
107
|
-
'never-synced',
|
|
108
|
-
'stale',
|
|
109
|
-
'repo-behind',
|
|
110
|
-
'repo-drift',
|
|
111
|
-
'fleet-resource-gap',
|
|
112
|
-
'host-cli-missing',
|
|
113
|
-
'host-cli-invalid',
|
|
114
|
-
'version-skew',
|
|
115
|
-
'orphan',
|
|
116
|
-
'duplicate-hook',
|
|
117
|
-
'duplicate-hook-drift',
|
|
118
|
-
'rc-secret-export',
|
|
119
|
-
'env-secret-export',
|
|
120
|
-
'auth-bundle-wrong-backend',
|
|
121
|
-
'exec-policy',
|
|
122
|
-
'ssh-key-enrollment',
|
|
72
|
+
'logged-out',
|
|
73
|
+
'logout-unprovable',
|
|
74
|
+
'missing-hook',
|
|
75
|
+
'missing-plugin',
|
|
76
|
+
'unwired-hook',
|
|
77
|
+
'hook-runtime-broken',
|
|
78
|
+
'hook-runtime-visibility-unavailable',
|
|
79
|
+
'cli-missing',
|
|
80
|
+
'missing-resource',
|
|
81
|
+
'content-drift',
|
|
82
|
+
'never-synced',
|
|
83
|
+
'stale',
|
|
84
|
+
'repo-behind',
|
|
85
|
+
'repo-drift',
|
|
86
|
+
'fleet-resource-gap',
|
|
87
|
+
'host-cli-missing',
|
|
88
|
+
'host-cli-invalid',
|
|
89
|
+
'version-skew',
|
|
90
|
+
'orphan',
|
|
91
|
+
'duplicate-hook',
|
|
92
|
+
'duplicate-hook-drift',
|
|
93
|
+
'rc-secret-export',
|
|
94
|
+
'env-secret-export',
|
|
95
|
+
'auth-bundle-wrong-backend',
|
|
96
|
+
'exec-policy',
|
|
97
|
+
'ssh-key-enrollment',
|
|
123
98
|
'stale-cli',
|
|
124
|
-
'binary-shadow',
|
|
125
|
-
'owner-sink-unreachable',
|
|
126
|
-
'leaked-daemon',
|
|
99
|
+
'binary-shadow',
|
|
100
|
+
'owner-sink-unreachable',
|
|
101
|
+
'leaked-daemon',
|
|
127
102
|
];
|
|
128
|
-
/**
|
|
129
|
-
* The severity each kind is emitted with - the SINGLE source of truth, read by
|
|
130
|
-
* the builders below and asserted against both prose rubrics by
|
|
131
|
-
* `doctor-findings.test.ts`.
|
|
132
|
-
*
|
|
133
|
-
* It exists because severity drifted: the rubrics claimed `never-synced` and
|
|
134
|
-
* `duplicate-hook-drift` were critical for three days after RUSH-2162 downgraded
|
|
135
|
-
* them, and the exhaustiveness test missed it because it only checked that a kind
|
|
136
|
-
* was *named* in the rubric, not which bucket it sat in. Change a severity HERE
|
|
137
|
-
* and the test names the docs that must move with it.
|
|
138
|
-
*/
|
|
139
103
|
export const FINDING_SEVERITY = {
|
|
140
|
-
// Needs you now: the harness cannot do its job until this is fixed.
|
|
141
104
|
'logged-out': 'critical',
|
|
142
105
|
'missing-hook': 'critical',
|
|
143
106
|
'missing-plugin': 'critical',
|
|
144
107
|
'unwired-hook': 'critical',
|
|
145
108
|
'hook-runtime-broken': 'critical',
|
|
146
109
|
'cli-missing': 'critical',
|
|
147
|
-
// A factory that cannot escalate a blocked agent to the owner is not healthy,
|
|
148
|
-
// and the failure is otherwise silent until a block is filed (RUSH-2262/2258).
|
|
149
110
|
'owner-sink-unreachable': 'critical',
|
|
150
|
-
// Everything else is resolvable by a routine sync/cleanup and does not block
|
|
151
|
-
// the harness right now. RUSH-2162 moved never-synced and duplicate-hook-drift
|
|
152
|
-
// here: both are stale-sync states that one `agents sync` resolves.
|
|
153
111
|
'logout-unprovable': 'warning',
|
|
154
112
|
'hook-runtime-visibility-unavailable': 'warning',
|
|
155
113
|
'missing-resource': 'warning',
|
|
@@ -172,18 +130,11 @@ export const FINDING_SEVERITY = {
|
|
|
172
130
|
'ssh-key-enrollment': 'critical',
|
|
173
131
|
'stale-cli': 'warning',
|
|
174
132
|
'binary-shadow': 'warning',
|
|
175
|
-
// A stray `__daemon-run` under its own (usually temp) HOME: it shares nothing
|
|
176
|
-
// with this install's state, so it cannot double-fire the real box's work —
|
|
177
|
-
// but it is a leak nothing owns and it outlives whatever launched it (W4,
|
|
178
|
-
// PHNX-3736). A human reads its HOME/start time and kills it; nothing is
|
|
179
|
-
// blocked right now.
|
|
180
133
|
'leaked-daemon': 'warning',
|
|
181
134
|
};
|
|
182
135
|
function agentName(agent) {
|
|
183
136
|
return AGENT_NAMES[agent] || agent;
|
|
184
137
|
}
|
|
185
|
-
/** Agent ids in the registry's display order — the one stable ordering, used
|
|
186
|
-
* wherever output would otherwise inherit a map's insertion order. */
|
|
187
138
|
function sortedAgentIds(ids) {
|
|
188
139
|
const rank = (a) => {
|
|
189
140
|
const i = ALL_AGENT_IDS.indexOf(a);
|
|
@@ -191,15 +142,6 @@ function sortedAgentIds(ids) {
|
|
|
191
142
|
};
|
|
192
143
|
return [...ids].sort((a, b) => rank(a) - rank(b) || a.localeCompare(b));
|
|
193
144
|
}
|
|
194
|
-
/**
|
|
195
|
-
* The exact remediation for a finding. Login fixes are harness-native
|
|
196
|
-
* (`loginHint`); a per-version login is offered ONLY for agents that isolate the
|
|
197
|
-
* credential per home (`agents run <agent>@<version>` then log in) — for
|
|
198
|
-
* gemini/antigravity/droid the login is shared, so we say so instead of
|
|
199
|
-
* faking a per-version fix. (Cursor now isolates its token per version home via
|
|
200
|
-
* XDG_CONFIG_HOME — see buildExecEnv — so it gets the per-version run.) Every
|
|
201
|
-
* other kind maps to its canonical command.
|
|
202
|
-
*/
|
|
203
145
|
export function remediationFor(finding) {
|
|
204
146
|
const { kind, agent, version } = finding;
|
|
205
147
|
const idLabel = agent && version ? `${agent}@${version}` : agent ?? '';
|
|
@@ -210,25 +152,16 @@ export function remediationFor(finding) {
|
|
|
210
152
|
return 'log in';
|
|
211
153
|
const native = loginHint(agent);
|
|
212
154
|
if (!version || NO_PER_VERSION_LOGIN.has(agent)) {
|
|
213
|
-
// Shared login across versions — no per-version isolation to target.
|
|
214
155
|
return NO_PER_VERSION_LOGIN.has(agent)
|
|
215
156
|
? `${native} (shared across all ${agentName(agent)} versions)`
|
|
216
157
|
: native;
|
|
217
158
|
}
|
|
218
|
-
// Isolated per-version home: the login must RUN INSIDE that home. A bare
|
|
219
|
-
// `<cli> login` afterwards would NOT — the native shim resolves to the
|
|
220
|
-
// project/default version (`lib/installations/shims.ts:471-474`), so it would log into
|
|
221
|
-
// whichever version is default, not the one that is logged out.
|
|
222
159
|
switch (loginShape(agent)) {
|
|
223
160
|
case 'subcommand':
|
|
224
|
-
// `-- <args>` is forwarded verbatim to the binary in that version home
|
|
225
|
-
// (`commands/exec.ts:723`, `lib/exec.ts:1004`) — one correct invocation.
|
|
226
161
|
return `agents run ${idLabel} -- ${LOGIN_SUBCOMMAND[agent]}`;
|
|
227
162
|
case 'in-tui':
|
|
228
|
-
// Claude has no login subcommand; it logs in from inside its own TUI.
|
|
229
163
|
return `agents run ${idLabel}, then /login`;
|
|
230
164
|
case 'on-launch':
|
|
231
|
-
// The device/oauth flow starts when the agent launches — nothing to add.
|
|
232
165
|
return `agents run ${idLabel}`;
|
|
233
166
|
}
|
|
234
167
|
}
|
|
@@ -239,65 +172,37 @@ export function remediationFor(finding) {
|
|
|
239
172
|
case 'missing-resource':
|
|
240
173
|
case 'content-drift':
|
|
241
174
|
case 'stale':
|
|
242
|
-
// doctor diagnoses; `agents sync` fixes (the superset of the old
|
|
243
|
-
// `agents sync`). A bare `agents sync <agent>` hits only the default
|
|
244
|
-
// version, so an agent-only row collapsed across versions must ask for
|
|
245
|
-
// @all to reach every one it covers.
|
|
246
175
|
if (agent && version)
|
|
247
176
|
return `agents sync ${agent}@${version} --yes`;
|
|
248
177
|
return agent ? `agents sync ${agent}@all --yes` : 'agents sync';
|
|
249
178
|
case 'hook-runtime-visibility-unavailable':
|
|
250
179
|
return 'upgrade agents-cli on this device';
|
|
251
180
|
case 'never-synced':
|
|
252
|
-
// A bare `agents sync <agent>` targets only the default/sole installed
|
|
253
|
-
// version (`commands/sync.ts:8`), so a row collapsed across versions must
|
|
254
|
-
// ask for the `@all` selector or it silently fixes just one of them.
|
|
255
181
|
if (!agent)
|
|
256
182
|
return 'agents sync';
|
|
257
183
|
return version ? `agents sync ${agent}@${version} --yes` : `agents sync ${agent}@all --yes`;
|
|
258
184
|
case 'cli-missing':
|
|
259
185
|
return agent ? `agents add ${agent}` : 'agents add <agent>';
|
|
260
186
|
case 'orphan':
|
|
261
|
-
// Without `--all`, cleanup sweeps only each agent's DEFAULT version
|
|
262
|
-
// (`commands/prune.ts:351`, `collectOrphans(..., options.all === true)`) —
|
|
263
|
-
// and this row aggregates every version on the machine.
|
|
264
187
|
return 'agents prune cleanup --all';
|
|
265
188
|
case 'repo-behind':
|
|
266
189
|
return `agents repo pull ${finding.version ?? 'user'}`;
|
|
267
190
|
case 'repo-drift':
|
|
268
|
-
// `version` carries the repo alias (`user` for ~/.agents, `system` for
|
|
269
|
-
// ~/.agents/.system) — hardcoding `user` would send a `.system` drift at
|
|
270
|
-
// the wrong repo.
|
|
271
191
|
return `agents repo pull ${version ?? 'user'}`;
|
|
272
192
|
case 'fleet-resource-gap':
|
|
273
|
-
// The resource is absent from this box's CENTRAL repos, not from a version
|
|
274
|
-
// home, so `agents sync` (which reconciles central -> homes) has nothing to
|
|
275
|
-
// copy. The divergence row cannot say WHICH repo declares it,
|
|
276
|
-
// and neither `agents repo pull` nor the sync umbrella touches the system
|
|
277
|
-
// repo (`commands/repo.ts:1186`, `lib/sync-umbrella.ts:104`) — that one is
|
|
278
|
-
// npm-shipped and moves with the CLI. So name both paths rather than a
|
|
279
|
-
// single command that silently covers half the cases.
|
|
280
193
|
return 'agents repo pull user (or upgrade agents-cli if it ships in .system)';
|
|
281
194
|
case 'version-skew':
|
|
282
195
|
return idLabel ? `agents add ${idLabel}` : 'agents add <agent>@<version>';
|
|
283
196
|
case 'duplicate-hook':
|
|
284
197
|
case 'duplicate-hook-drift':
|
|
285
|
-
// The copies live in SEVERAL version homes, so the reconcile has to reach
|
|
286
|
-
// every one — `agents sync <agent>@<one-version>` would leave the others
|
|
287
|
-
// holding their stale copy.
|
|
288
198
|
return agent ? `agents sync ${agent}@all --yes` : 'agents sync';
|
|
289
199
|
case 'host-cli-missing':
|
|
290
200
|
return 'agents cli install';
|
|
291
201
|
case 'host-cli-invalid':
|
|
292
|
-
// Nothing installs a manifest the loader cannot parse — the file has to be
|
|
293
|
-
// fixed where it is declared.
|
|
294
202
|
return 'fix the manifest';
|
|
295
203
|
case 'rc-secret-export':
|
|
296
204
|
return 'agents secrets add';
|
|
297
205
|
case 'env-secret-export':
|
|
298
|
-
// Not just "restart the shell": the value is in every long-lived parent
|
|
299
|
-
// that inherited it — an editor, a tmux server, the agents daemon — and
|
|
300
|
-
// each keeps handing it to new children until IT restarts.
|
|
301
206
|
return 'unset at the source, then restart every process that inherited it (shells, editor, tmux, agents daemon)';
|
|
302
207
|
case 'auth-bundle-wrong-backend':
|
|
303
208
|
return 'agents secrets delete auth --yes && agents secrets create auth --backend file';
|
|
@@ -310,9 +215,6 @@ export function remediationFor(finding) {
|
|
|
310
215
|
case 'binary-shadow':
|
|
311
216
|
return 'remove or repoint the shadowing agents install(s)';
|
|
312
217
|
case 'leaked-daemon':
|
|
313
|
-
// The builder emits the concrete `kill <pid>` — the pid is a property of
|
|
314
|
-
// the row it builds, not of anything remediationFor can see. This is the
|
|
315
|
-
// shape only, for a kind constructed through finding() by a future caller.
|
|
316
218
|
return 'kill <pid>';
|
|
317
219
|
case 'owner-sink-unreachable':
|
|
318
220
|
return 'check the channel transport: iMessage needs macOS, Slack needs SLACK_BOT_TOKEN in env or the webhooks bundle';
|
|
@@ -321,15 +223,6 @@ export function remediationFor(finding) {
|
|
|
321
223
|
function finding(f) {
|
|
322
224
|
return { ...f, remediation: remediationFor({ ...f, remediation: '' }) };
|
|
323
225
|
}
|
|
324
|
-
/**
|
|
325
|
-
* Emit at most ONE finding for a list of same-kind resources on one version.
|
|
326
|
-
* A single affected resource is named in full (`hook 'git-guard' missing`); two
|
|
327
|
-
* or more collapse into a count plus the first two subjects
|
|
328
|
-
* (`32 hooks missing (incl. 'git-guard', 'rm-guard')`). Naming every item — the
|
|
329
|
-
* pre-RUSH-2069-review behavior — flooded the section with dozens of near-identical
|
|
330
|
-
* rows for one root cause; the count carries the same signal and `agents sync`
|
|
331
|
-
* is the same command either way.
|
|
332
|
-
*/
|
|
333
226
|
function emitGroup(out, items, severity, kind, device, agent, version, noun, verb) {
|
|
334
227
|
if (items.length === 0)
|
|
335
228
|
return;
|
|
@@ -338,29 +231,16 @@ function emitGroup(out, items, severity, kind, device, agent, version, noun, ver
|
|
|
338
231
|
: `${items.length} ${noun}s ${verb} (incl. ${items.slice(0, 2).map((i) => i.short).join(', ')})`;
|
|
339
232
|
out.push(finding({ severity, kind, device, agent, version, message }));
|
|
340
233
|
}
|
|
341
|
-
/**
|
|
342
|
-
* Fold this machine's signals into findings. Missing hooks/plugins and unwired
|
|
343
|
-
* hooks are CRITICAL; provable logouts are CRITICAL and unprovable ones WARNING;
|
|
344
|
-
* everything else (other missing kinds, drift, stale/never-synced, repo-behind,
|
|
345
|
-
* orphans) is a WARNING. Pure.
|
|
346
|
-
*/
|
|
347
234
|
export function buildLocalFindings(input) {
|
|
348
235
|
const out = [];
|
|
349
236
|
const device = input.device;
|
|
350
|
-
/** `<agent>@<version>` keys that already named their specific drift/missing
|
|
351
|
-
* resources below — a `stale` row for those would repeat the same fact in
|
|
352
|
-
* vaguer words, so it is suppressed. */
|
|
353
237
|
const detailedVersions = new Set();
|
|
354
|
-
// cli-missing (managed agent, binary broken) — critical.
|
|
355
238
|
for (const agent of input.cliMissing ?? []) {
|
|
356
239
|
out.push(finding({
|
|
357
240
|
severity: FINDING_SEVERITY['cli-missing'], kind: 'cli-missing', device, agent,
|
|
358
241
|
message: `${agentName(agent)} binary not found`,
|
|
359
242
|
}));
|
|
360
243
|
}
|
|
361
|
-
// owner-sink-unreachable — the feed/notify owner-delivery lane can't reach the
|
|
362
|
-
// owner from this box (RUSH-2262). Only when owner delivery is CONFIGURED for the
|
|
363
|
-
// fleet; an un-opted-in box is not broken. The message names the concrete reason.
|
|
364
244
|
const sink = input.ownerSink;
|
|
365
245
|
if (sink?.configured && !sink.reachable) {
|
|
366
246
|
const chan = sink.channel ?? 'owner';
|
|
@@ -376,8 +256,6 @@ export function buildLocalFindings(input) {
|
|
|
376
256
|
message: `${chan} → owner unreachable: ${why}`,
|
|
377
257
|
}));
|
|
378
258
|
}
|
|
379
|
-
// Per-version resource reports → missing hook/plugin (critical), unwired hook
|
|
380
|
-
// (critical), other missing kinds (warning), content drift (warning).
|
|
381
259
|
for (const report of input.reports) {
|
|
382
260
|
const agent = report.agent;
|
|
383
261
|
const version = report.version;
|
|
@@ -404,19 +282,12 @@ export function buildLocalFindings(input) {
|
|
|
404
282
|
}
|
|
405
283
|
}
|
|
406
284
|
}
|
|
407
|
-
// Generated shim wrapper missing/unusable for a wired hook — independent of
|
|
408
|
-
// whether the native settings format itself is understood, so this fires
|
|
409
|
-
// even for harnesses `w.supported` is false for (RUSH-2382).
|
|
410
285
|
for (const issue of w?.runtimeBroken ?? []) {
|
|
411
286
|
out.push(finding({
|
|
412
287
|
severity: FINDING_SEVERITY['hook-runtime-broken'], kind: 'hook-runtime-broken', device, agent, version,
|
|
413
288
|
message: `hook '${issue.name}' wired but its generated shim is ${issue.reason}`,
|
|
414
289
|
}));
|
|
415
290
|
}
|
|
416
|
-
// A never-synced version has EVERY declared resource "missing" — that's one
|
|
417
|
-
// root cause (never synced), not one emergency per hook. Collapse it to a
|
|
418
|
-
// single critical rather than flooding the top section with 100+ lines. The
|
|
419
|
-
// per-version `never-synced` warning below carries the sync remediation.
|
|
420
291
|
const neverSynced = input.syncRows.some((s) => s.agent === agent && s.version === version && s.status === 'never-synced');
|
|
421
292
|
const missingHooks = [];
|
|
422
293
|
const missingPlugins = [];
|
|
@@ -444,12 +315,6 @@ export function buildLocalFindings(input) {
|
|
|
444
315
|
}
|
|
445
316
|
}
|
|
446
317
|
if (neverSynced) {
|
|
447
|
-
// Everything is "missing" because it was never synced — collapse to ONE
|
|
448
|
-
// line. A never-synced version is almost always an old/unused install (you
|
|
449
|
-
// don't run a version you never synced), so this is a WARNING, not a "needs
|
|
450
|
-
// you now" critical: it isn't hurting anything until you actually launch it.
|
|
451
|
-
// The real criticals are a logged-out account or a hook/plugin missing from
|
|
452
|
-
// a version you DO keep synced (the `else` branch below).
|
|
453
318
|
const total = missingHooks.length + missingPlugins.length + missingOther.length;
|
|
454
319
|
if (total > 0) {
|
|
455
320
|
const breakdown = [
|
|
@@ -463,7 +328,6 @@ export function buildLocalFindings(input) {
|
|
|
463
328
|
}
|
|
464
329
|
}
|
|
465
330
|
else {
|
|
466
|
-
// Synced-but-drifted: one line per kind of gap on this version.
|
|
467
331
|
emitGroup(out, missingHooks, FINDING_SEVERITY['missing-hook'], 'missing-hook', device, agent, version, 'hook', 'missing');
|
|
468
332
|
emitGroup(out, missingPlugins, FINDING_SEVERITY['missing-plugin'], 'missing-plugin', device, agent, version, 'plugin', 'missing');
|
|
469
333
|
emitGroup(out, missingOther, FINDING_SEVERITY['missing-resource'], 'missing-resource', device, agent, version, 'resource', 'missing');
|
|
@@ -473,11 +337,6 @@ export function buildLocalFindings(input) {
|
|
|
473
337
|
}
|
|
474
338
|
}
|
|
475
339
|
}
|
|
476
|
-
// Sync status → stale (warning). A NEVER-SYNCED version already surfaced a
|
|
477
|
-
// single collapsed critical above (its resources aren't installed at all), so
|
|
478
|
-
// we don't ALSO emit a never-synced warning — that would double-report the same
|
|
479
|
-
// root cause. Likewise a version that just listed its drifted/missing resources
|
|
480
|
-
// by name gets no vaguer `sources changed since last sync` row on top.
|
|
481
340
|
for (const row of input.syncRows) {
|
|
482
341
|
if (row.status === 'stale') {
|
|
483
342
|
if (detailedVersions.has(`${row.agent}@${row.version}`))
|
|
@@ -488,9 +347,6 @@ export function buildLocalFindings(input) {
|
|
|
488
347
|
}));
|
|
489
348
|
}
|
|
490
349
|
else if (row.status === 'never-synced') {
|
|
491
|
-
// Only surface a never-synced warning when the collapsed critical above did
|
|
492
|
-
// NOT fire (a version with zero declared resources to miss — nothing landed
|
|
493
|
-
// in the critical section, so name the never-synced state here).
|
|
494
350
|
const hadCritical = input.reports.some((rep) => rep.agent === row.agent && rep.version === row.version &&
|
|
495
351
|
Object.values(rep.kinds).some((rows) => rows.some((r) => r.status === 'missing')));
|
|
496
352
|
if (!hadCritical) {
|
|
@@ -501,8 +357,6 @@ export function buildLocalFindings(input) {
|
|
|
501
357
|
}
|
|
502
358
|
}
|
|
503
359
|
}
|
|
504
|
-
// Repo-behind markers (warning). `version` carries the alias so remediationFor
|
|
505
|
-
// can build `agents repo pull <alias>`.
|
|
506
360
|
for (const m of input.repoBehind) {
|
|
507
361
|
if (m.behind <= 0)
|
|
508
362
|
continue;
|
|
@@ -513,13 +367,7 @@ export function buildLocalFindings(input) {
|
|
|
513
367
|
message: `${m.behind} behind ${m.branch}${staleNote}`,
|
|
514
368
|
}));
|
|
515
369
|
}
|
|
516
|
-
// Orphans (warning) — ONE line for the whole device. Orphans are cleanup-only
|
|
517
|
-
// and `agents prune cleanup` fixes every version at once, so a row per version
|
|
518
|
-
// was the single largest block of noise in the readout for zero added action.
|
|
519
370
|
out.push(...orphanFinding(device, input.orphanRows));
|
|
520
|
-
// Host CLIs declared but not on PATH. One row for the machine, naming the
|
|
521
|
-
// count and two examples — `agents cli install <name>` is per-CLI, so the
|
|
522
|
-
// names have to survive into the message.
|
|
523
371
|
const missingClis = (input.hostClis?.statuses ?? []).filter((c) => !c.installed).map((c) => c.name);
|
|
524
372
|
if (missingClis.length > 0) {
|
|
525
373
|
out.push({
|
|
@@ -527,16 +375,11 @@ export function buildLocalFindings(input) {
|
|
|
527
375
|
message: missingClis.length === 1
|
|
528
376
|
? `host CLI '${missingClis[0]}' declared but not installed`
|
|
529
377
|
: `${missingClis.length} declared host CLIs not installed (${missingClis.slice(0, 2).join(', ')}${missingClis.length > 2 ? ', …' : ''})`,
|
|
530
|
-
// `agents cli install <name>` takes ONE optional name; with none it installs
|
|
531
|
-
// every declared CLI that is missing (`commands/cli.ts:118,133-146`). A
|
|
532
|
-
// second positional — or a literal ellipsis — is not a runnable command.
|
|
533
378
|
remediation: missingClis.length === 1
|
|
534
379
|
? `agents cli install ${missingClis[0]}`
|
|
535
380
|
: 'agents cli install',
|
|
536
381
|
});
|
|
537
382
|
}
|
|
538
|
-
// A manifest the loader rejected declares a CLI that can never install — one
|
|
539
|
-
// row per bad file, since each needs its own edit.
|
|
540
383
|
for (const e of input.hostClis?.errors ?? []) {
|
|
541
384
|
out.push(finding({
|
|
542
385
|
severity: FINDING_SEVERITY['host-cli-invalid'], kind: 'host-cli-invalid', device,
|
|
@@ -544,19 +387,14 @@ export function buildLocalFindings(input) {
|
|
|
544
387
|
}));
|
|
545
388
|
}
|
|
546
389
|
out.push(...duplicateHookFindings(device, input.duplicateHooks ?? []));
|
|
547
|
-
// Credential-shaped exports in shell rc files (RUSH-1968) — a warning per class
|
|
548
|
-
// of fix: the file-store master key moves to its own file, everything else goes
|
|
549
|
-
// into `agents secrets`.
|
|
550
390
|
for (const f of rcSecretFindings(device, input.rcSecrets ?? []))
|
|
551
391
|
out.push(f);
|
|
552
|
-
// The same key, live in this process's environment rather than in a file.
|
|
553
392
|
const envFinding = envSecretFinding(device, input.masterPassphraseInEnv ?? false);
|
|
554
393
|
if (envFinding)
|
|
555
394
|
out.push(envFinding);
|
|
556
395
|
const authFinding = authBundleWrongBackendFinding(device, input.authBundleWrongBackend ?? false);
|
|
557
396
|
if (authFinding)
|
|
558
397
|
out.push(authFinding);
|
|
559
|
-
// Windows execution policy blocking the generated agents.ps1 launcher.
|
|
560
398
|
const policyFinding = execPolicyFinding(device, input.execPolicy);
|
|
561
399
|
if (policyFinding)
|
|
562
400
|
out.push(policyFinding);
|
|
@@ -569,12 +407,7 @@ export function buildLocalFindings(input) {
|
|
|
569
407
|
}));
|
|
570
408
|
}
|
|
571
409
|
}
|
|
572
|
-
// Per-version sign-in → logged-out (critical, provable) / logout-unprovable
|
|
573
|
-
// (warning). Signed-in versions produce no finding — the accounts line shows
|
|
574
|
-
// them. Agents that can't be inspected never yield a logout finding.
|
|
575
410
|
out.push(...signInToFindings(device, input.signIn));
|
|
576
|
-
// agents binary shadows (warning) — another install could be resolved by a
|
|
577
|
-
// scheduled routine or by a different shell PATH, running stale code.
|
|
578
411
|
const shadows = input.binaryShadows ?? [];
|
|
579
412
|
if (shadows.length > 0) {
|
|
580
413
|
const examples = shadows.slice(0, 2).map((s) => `${s.path}${s.version ? ` (${s.version})` : ''}`).join(', ');
|
|
@@ -585,17 +418,9 @@ export function buildLocalFindings(input) {
|
|
|
585
418
|
: `${shadows.length} agents binaries may shadow the running copy (incl. ${examples})`,
|
|
586
419
|
}));
|
|
587
420
|
}
|
|
588
|
-
// Leaked daemons (warning) — a `__daemon-run` no owner record names. One row
|
|
589
|
-
// per pid: the remediation is pid-specific, and the HOME + start time are
|
|
590
|
-
// what let the operator tell a leaked test fixture from something they meant
|
|
591
|
-
// to run before they kill it (W4, PHNX-3736). Built directly, not through
|
|
592
|
-
// finding(): the remediation carries this row's own pid.
|
|
593
421
|
for (const d of input.leakedDaemons ?? []) {
|
|
594
422
|
const home = d.home ?? 'unknown HOME';
|
|
595
423
|
const started = d.startedAt ? `, started ${d.startedAt}` : '';
|
|
596
|
-
// The launch entry names WHICH install leaked the daemon — part of what
|
|
597
|
-
// the operator judges before killing. Only a real path: for a stand-in
|
|
598
|
-
// (`node -e '<code>' __daemon-run`) the token is the code blob.
|
|
599
424
|
const entry = d.entry && path.isAbsolute(d.entry) ? ` · ${d.entry}` : '';
|
|
600
425
|
out.push({
|
|
601
426
|
severity: FINDING_SEVERITY['leaked-daemon'], kind: 'leaked-daemon', device,
|
|
@@ -605,10 +430,6 @@ export function buildLocalFindings(input) {
|
|
|
605
430
|
}
|
|
606
431
|
return collapseAcrossVersions(out, new Set(input.isolatedVersions ?? []));
|
|
607
432
|
}
|
|
608
|
-
/**
|
|
609
|
-
* Fold every orphan row on a device into one warning. Returns `[]` when nothing
|
|
610
|
-
* is orphaned. Pure.
|
|
611
|
-
*/
|
|
612
433
|
function orphanFinding(device, rows) {
|
|
613
434
|
const affected = rows.filter((r) => r.commands + r.skills + r.hooks > 0);
|
|
614
435
|
if (affected.length === 0)
|
|
@@ -622,15 +443,6 @@ function orphanFinding(device, rows) {
|
|
|
622
443
|
message: `${total} orphaned resource${total === 1 ? '' : 's'} on ${where} (cleanup only)`,
|
|
623
444
|
})];
|
|
624
445
|
}
|
|
625
|
-
/**
|
|
626
|
-
* Findings for hooks materialized into several version homes at once. Differing
|
|
627
|
-
* content is CRITICAL — a stale copy can gate differently from the active one;
|
|
628
|
-
* byte-identical copies are a WARNING (noise plus duplicated runtime cost).
|
|
629
|
-
*
|
|
630
|
-
* One row per (agent, severity), not per hook: `agents sync <agent>@<active>
|
|
631
|
-
* --yes` reconciles every copy in one command, and a machine with five installed
|
|
632
|
-
* claudes otherwise emits two dozen identical rows. Pure.
|
|
633
|
-
*/
|
|
634
446
|
function duplicateHookFindings(device, dups) {
|
|
635
447
|
const out = [];
|
|
636
448
|
const byAgentKind = new Map();
|
|
@@ -654,10 +466,6 @@ function duplicateHookFindings(device, dups) {
|
|
|
654
466
|
`${versions.length} version${versions.length === 1 ? '' : 's'} ` +
|
|
655
467
|
`(incl. ${group.slice(0, 2).map((d) => `'${d.name}'`).join(', ')}) — ${authority}`;
|
|
656
468
|
out.push({
|
|
657
|
-
// A hook that DIFFERS across versions is still installed and firing — it's
|
|
658
|
-
// stale/sync drift, not a missing hook. Resolvable by one sync; a WARNING,
|
|
659
|
-
// not a "needs you now" critical. (A genuinely MISSING hook stays critical
|
|
660
|
-
// via the missing-hook path.)
|
|
661
469
|
severity: FINDING_SEVERITY[drift ? 'duplicate-hook-drift' : 'duplicate-hook'],
|
|
662
470
|
kind: drift ? 'duplicate-hook-drift' : 'duplicate-hook',
|
|
663
471
|
device, agent, versions, message,
|
|
@@ -666,12 +474,6 @@ function duplicateHookFindings(device, dups) {
|
|
|
666
474
|
}
|
|
667
475
|
return out;
|
|
668
476
|
}
|
|
669
|
-
/**
|
|
670
|
-
* Warnings for credential-shaped exports in the user's shell rc files. The
|
|
671
|
-
* file-store master passphrase and ordinary credentials have different fixes, so
|
|
672
|
-
* they get one row each (never one per export — the count plus two examples
|
|
673
|
-
* carries the same signal). Pure.
|
|
674
|
-
*/
|
|
675
477
|
function rcSecretFindings(device, rc) {
|
|
676
478
|
if (rc.length === 0)
|
|
677
479
|
return [];
|
|
@@ -681,10 +483,6 @@ function rcSecretFindings(device, rc) {
|
|
|
681
483
|
rows: rc.filter((f) => f.isMasterPassphrase),
|
|
682
484
|
remediation: 'move it to ~/.agents/.secrets-key/passphrase (chmod 600)',
|
|
683
485
|
},
|
|
684
|
-
// `agents secrets add [bundle] [key]` stores exactly ONE variable
|
|
685
|
-
// (`commands/secrets.ts:1349`), and nothing edits the rc file — so an
|
|
686
|
-
// aggregated row has to say both that the command repeats and that the
|
|
687
|
-
// deletion is manual, or following it once leaves most of the leak in place.
|
|
688
486
|
{ rows: rc.filter((f) => !f.isMasterPassphrase), remediation: '' },
|
|
689
487
|
];
|
|
690
488
|
for (const g of groups) {
|
|
@@ -709,34 +507,11 @@ function rcSecretFindings(device, rc) {
|
|
|
709
507
|
}
|
|
710
508
|
return out;
|
|
711
509
|
}
|
|
712
|
-
/**
|
|
713
|
-
* The Windows-only advisory: when the effective PowerShell execution policy
|
|
714
|
-
* blocks unsigned local scripts (`Restricted`/`AllSigned`), the generated
|
|
715
|
-
* `agents.ps1` launcher fails even though it is on PATH. The `agents.cmd`
|
|
716
|
-
* companion still works, so this is a warning and doctor never changes the
|
|
717
|
-
* policy itself. Returns null off Windows or on a permissive policy — pure, so
|
|
718
|
-
* both branches are testable without invoking PowerShell.
|
|
719
|
-
*/
|
|
720
|
-
/**
|
|
721
|
-
* The file-store master key sitting in THIS process's environment.
|
|
722
|
-
*
|
|
723
|
-
* `rc-hygiene.ts` scans FILES, which leaves a real hole: a value inherited by a
|
|
724
|
-
* long-lived process outlives the rc line that set it, so an operator who
|
|
725
|
-
* deletes `~/.zshenv:8` gets a clean `rc-secret-export` while every shell,
|
|
726
|
-
* editor and agent started before the edit still carries the key — and hands it
|
|
727
|
-
* to everything they spawn. Verified on a box with no rc export whose live
|
|
728
|
-
* environment still held the value, hashing identical to its key file.
|
|
729
|
-
*
|
|
730
|
-
* Warning, not critical: on the release home base the export is deliberate and
|
|
731
|
-
* scoped (`headless-sign-context.sh`), so the message names that exception
|
|
732
|
-
* rather than the check trying to detect it.
|
|
733
|
-
*/
|
|
734
510
|
function envSecretFinding(device, present) {
|
|
735
511
|
if (!present)
|
|
736
512
|
return null;
|
|
737
513
|
return finding({
|
|
738
514
|
severity: FINDING_SEVERITY['env-secret-export'], kind: 'env-secret-export', device,
|
|
739
|
-
// Never the value — only that it is set.
|
|
740
515
|
message: 'AGENTS_SECRETS_PASSPHRASE is set in this process environment — every '
|
|
741
516
|
+ 'child inherits it and any same-user process can read it from /proc/<pid>/environ. '
|
|
742
517
|
+ 'It outlives the shell rc line that set it, so deleting that line is not enough. '
|
|
@@ -790,11 +565,7 @@ export function collapseAcrossVersions(findings, isolated) {
|
|
|
790
565
|
const mergeable = f.agent && f.version
|
|
791
566
|
&& !isolated.has(`${f.agent}@${f.version}`)
|
|
792
567
|
&& !NEVER_COLLAPSED.has(f.kind);
|
|
793
|
-
// A non-mergeable finding gets a unique key so it passes through untouched.
|
|
794
568
|
const key = mergeable
|
|
795
|
-
// `account` is part of the key: two versions with the SAME problem but
|
|
796
|
-
// DIFFERENT signed-in accounts are not one row — merging them would
|
|
797
|
-
// attribute every version to the first member's account.
|
|
798
569
|
? `${f.device}\0${f.agent}\0${f.kind}\0${f.severity}\0${f.account ?? ''}\0${f.message}`
|
|
799
570
|
: `${order.length}`;
|
|
800
571
|
if (!groups.has(key)) {
|
|
@@ -836,11 +607,6 @@ export function collapseAcrossVersions(findings, isolated) {
|
|
|
836
607
|
*/
|
|
837
608
|
export function signInToFindings(device, signIn) {
|
|
838
609
|
const out = [];
|
|
839
|
-
// Iterate in the registry's agent order, NOT the map's insertion order:
|
|
840
|
-
// `collectLocalFleetSignIn` fills its map inside a `Promise.all`, so key order
|
|
841
|
-
// is whatever order the account probes happened to finish in. The renderer
|
|
842
|
-
// preserves input order within a device, so consuming the map order directly
|
|
843
|
-
// would make two runs on identical state print their logout rows differently.
|
|
844
610
|
for (const agentId of sortedAgentIds(Object.keys(signIn))) {
|
|
845
611
|
const rows = signIn[agentId];
|
|
846
612
|
const agent = agentId;
|
|
@@ -867,10 +633,6 @@ export function signInToFindings(device, signIn) {
|
|
|
867
633
|
}
|
|
868
634
|
return out;
|
|
869
635
|
}
|
|
870
|
-
/**
|
|
871
|
-
* Rebuild remote generated-wrapper findings from the closed enum inventory
|
|
872
|
-
* state. Remote paths and detector messages never cross the fleet boundary.
|
|
873
|
-
*/
|
|
874
636
|
export function hookRuntimeToFindings(device, hookRuntime) {
|
|
875
637
|
if (!hookRuntime) {
|
|
876
638
|
return [finding({
|
|
@@ -900,14 +662,6 @@ export function hookRuntimeToFindings(device, hookRuntime) {
|
|
|
900
662
|
}
|
|
901
663
|
return out;
|
|
902
664
|
}
|
|
903
|
-
/**
|
|
904
|
-
* Map cross-device divergence (from {@link compareFleetInventories}) into
|
|
905
|
-
* warnings: an agent version present elsewhere but absent on a device is a
|
|
906
|
-
* version-skew warning; a diverged config repo is a repo-drift warning; a
|
|
907
|
-
* missing resource is a missing-resource warning. Baseline = the local machine.
|
|
908
|
-
* Only the *lagging* box is attributed (a `*-missing-local` finding is the
|
|
909
|
-
* baseline's gap). Pure.
|
|
910
|
-
*/
|
|
911
665
|
export function fleetDivergenceToFindings(divergences, baseline) {
|
|
912
666
|
const out = [];
|
|
913
667
|
for (const d of divergences) {
|
|
@@ -924,8 +678,6 @@ export function fleetDivergenceToFindings(divergences, baseline) {
|
|
|
924
678
|
case 'repo-drift':
|
|
925
679
|
out.push(finding({
|
|
926
680
|
severity: FINDING_SEVERITY['repo-drift'], kind: 'repo-drift', device: laggingDevice,
|
|
927
|
-
// `category` is the repo ('agents' | 'system'); carry it as the alias
|
|
928
|
-
// `agents repo pull` expects — ~/.agents is the `user` repo.
|
|
929
681
|
version: d.category === 'system' ? 'system' : 'user',
|
|
930
682
|
message: d.message,
|
|
931
683
|
}));
|
|
@@ -941,15 +693,11 @@ export function fleetDivergenceToFindings(divergences, baseline) {
|
|
|
941
693
|
}
|
|
942
694
|
return out;
|
|
943
695
|
}
|
|
944
|
-
// ─── rendering ──────────────────────────────────────────────────────────────
|
|
945
|
-
/** Sort key so the worst device floats to the top: criticals, then warnings. */
|
|
946
696
|
function deviceSeverityRank(findings) {
|
|
947
697
|
const crit = findings.filter((f) => f.severity === 'critical').length;
|
|
948
698
|
const warn = findings.filter((f) => f.severity === 'warning').length;
|
|
949
699
|
return crit * 1000 + warn;
|
|
950
700
|
}
|
|
951
|
-
/** `claude @2.1.170` for one version, `claude (5 versions)` for a collapsed row,
|
|
952
|
-
* the bare agent id when neither applies. */
|
|
953
701
|
function subjectLabel(f) {
|
|
954
702
|
if (!f.agent)
|
|
955
703
|
return '';
|
|
@@ -958,8 +706,6 @@ function subjectLabel(f) {
|
|
|
958
706
|
return f.version ? `${f.agent} @${f.version}` : f.agent;
|
|
959
707
|
}
|
|
960
708
|
function critLabel(f) {
|
|
961
|
-
// Machine-level criticals with no agent get a category subject so the left
|
|
962
|
-
// column is not blank; the owner-sink row reads `owner …`, not an empty label.
|
|
963
709
|
if (f.kind === 'owner-sink-unreachable')
|
|
964
710
|
return { left: 'owner', account: '', message: f.message };
|
|
965
711
|
return {
|
|
@@ -968,40 +714,21 @@ function critLabel(f) {
|
|
|
968
714
|
message: f.message,
|
|
969
715
|
};
|
|
970
716
|
}
|
|
971
|
-
/** Pad a plain string to a DISPLAY width, ignoring that the caller may color it
|
|
972
|
-
* later (we pad before coloring so alignment is on visible text). Uses the
|
|
973
|
-
* repo's width helpers, not `.length`: a CJK character or a compound emoji is
|
|
974
|
-
* one-to-several UTF-16 code units but a different number of terminal columns,
|
|
975
|
-
* so `.length` skews every column in the row — and account labels, device
|
|
976
|
-
* names, and org badges are all user-supplied. */
|
|
977
717
|
function pad(s, width) {
|
|
978
718
|
return padToWidth(s, width);
|
|
979
719
|
}
|
|
980
|
-
/** Display width of the widest entry, floored at `min`. */
|
|
981
720
|
function widestOf(values, min) {
|
|
982
721
|
return Math.max(...values.map(stringWidth), min);
|
|
983
722
|
}
|
|
984
|
-
/**
|
|
985
|
-
* Render the two-part hybrid layout from a flat findings list. Pure — returns the
|
|
986
|
-
* lines so the exact output is snapshot-tested. Criticals across ALL devices go
|
|
987
|
-
* to the top section, worst-first; the per-computer section lists each device's
|
|
988
|
-
* warnings + a `✗ N critical (above)` marker, worst device first.
|
|
989
|
-
*/
|
|
990
723
|
export function renderFindings(findings, accounts, opts) {
|
|
991
724
|
const lines = [];
|
|
992
|
-
// Header.
|
|
993
725
|
if (opts.header)
|
|
994
726
|
lines.push(opts.header);
|
|
995
727
|
lines.push('');
|
|
996
|
-
// Group by device up front: the CRITICAL section orders its rows by the SAME
|
|
997
|
-
// worst-device-first ranking the per-computer blocks use, so the two sections
|
|
998
|
-
// agree and the worst machine's criticals lead.
|
|
999
728
|
const byDevice = new Map();
|
|
1000
729
|
for (const f of findings) {
|
|
1001
730
|
(byDevice.get(f.device) ?? byDevice.set(f.device, []).get(f.device)).push(f);
|
|
1002
731
|
}
|
|
1003
|
-
// Also include devices that have accounts but no findings (a clean box still
|
|
1004
|
-
// needs its block + accounts line).
|
|
1005
732
|
for (const device of Object.keys(accounts)) {
|
|
1006
733
|
if (!byDevice.has(device))
|
|
1007
734
|
byDevice.set(device, []);
|
|
@@ -1010,8 +737,7 @@ export function renderFindings(findings, accounts, opts) {
|
|
|
1010
737
|
const ra = deviceSeverityRank(byDevice.get(a));
|
|
1011
738
|
const rb = deviceSeverityRank(byDevice.get(b));
|
|
1012
739
|
if (rb !== ra)
|
|
1013
|
-
return rb - ra;
|
|
1014
|
-
// Baseline (local) first among ties, then alphabetical.
|
|
740
|
+
return rb - ra;
|
|
1015
741
|
if (a === opts.baseline)
|
|
1016
742
|
return -1;
|
|
1017
743
|
if (b === opts.baseline)
|
|
@@ -1019,9 +745,6 @@ export function renderFindings(findings, accounts, opts) {
|
|
|
1019
745
|
return a.localeCompare(b);
|
|
1020
746
|
});
|
|
1021
747
|
const deviceOrder = new Map(devices.map((d, i) => [d, i]));
|
|
1022
|
-
// ── CRITICAL section — all devices, worst device first, input order within ──
|
|
1023
|
-
// Array.prototype.sort is stable, so equal device ranks keep the order the
|
|
1024
|
-
// builders emitted — deterministic across runs.
|
|
1025
748
|
const criticals = findings
|
|
1026
749
|
.filter((f) => f.severity === 'critical')
|
|
1027
750
|
.sort((a, b) => (deviceOrder.get(a.device) ?? 0) - (deviceOrder.get(b.device) ?? 0));
|
|
@@ -1030,7 +753,6 @@ export function renderFindings(findings, accounts, opts) {
|
|
|
1030
753
|
lines.push(` ${chalk.green('✓')} ${chalk.gray('nothing critical across the fleet')}`);
|
|
1031
754
|
}
|
|
1032
755
|
else {
|
|
1033
|
-
// Column widths computed on visible text.
|
|
1034
756
|
const rows = criticals.map((f) => ({ f, ...critLabel(f) }));
|
|
1035
757
|
const showDevice = opts.fleet;
|
|
1036
758
|
const devW = showDevice ? widestOf(rows.map((r) => r.f.device), 6) : 0;
|
|
@@ -1045,7 +767,6 @@ export function renderFindings(findings, accounts, opts) {
|
|
|
1045
767
|
lines.push(` ${chalk.hex('#a3e635')(dev)}${chalk.bold(left)}${acct ? chalk.cyan(acct) : ''} ${msg} ${chalk.blue('→')} ${chalk.blue(r.f.remediation)}`);
|
|
1046
768
|
}
|
|
1047
769
|
}
|
|
1048
|
-
// ── by-computer section ──
|
|
1049
770
|
if (opts.fleet) {
|
|
1050
771
|
lines.push('');
|
|
1051
772
|
lines.push(chalk.gray('─── by computer ───'));
|
|
@@ -1062,7 +783,6 @@ export function renderFindings(findings, accounts, opts) {
|
|
|
1062
783
|
? ` ${chalk.red(`✗ ${critN} critical (above)`)}`
|
|
1063
784
|
: '';
|
|
1064
785
|
lines.push(`${chalk.hex('#a3e635')(`▸ ${device}`)}${tagStr}${critMarker}`);
|
|
1065
|
-
// Warnings for this device.
|
|
1066
786
|
const warnings = df.filter((f) => f.severity === 'warning');
|
|
1067
787
|
if (warnings.length === 0) {
|
|
1068
788
|
lines.push(` ${chalk.green('✓')} ${chalk.gray('no warnings')}`);
|
|
@@ -1074,24 +794,17 @@ export function renderFindings(findings, accounts, opts) {
|
|
|
1074
794
|
lines.push(` ${chalk.yellow('⚠')} ${chalk.yellow(subj)} ${w.message} ${chalk.blue('→')} ${chalk.blue(w.remediation)}`);
|
|
1075
795
|
}
|
|
1076
796
|
}
|
|
1077
|
-
// Accounts / versions line for this device.
|
|
1078
797
|
const acctLine = renderAccountsLine(accounts[device] ?? {});
|
|
1079
798
|
if (acctLine)
|
|
1080
799
|
lines.push(` ${acctLine}`);
|
|
1081
800
|
}
|
|
1082
801
|
return lines;
|
|
1083
802
|
}
|
|
1084
|
-
/** The left-hand subject label for a warning row (agent@version, repo alias, or
|
|
1085
|
-
* a short category). */
|
|
1086
803
|
function warningSubject(f) {
|
|
1087
|
-
// Both the user and system repos live under ~/.agents — name which one, or the
|
|
1088
|
-
// two rows read as duplicates of each other.
|
|
1089
804
|
if (f.kind === 'repo-behind')
|
|
1090
805
|
return f.version ? `~/.agents (${f.version})` : '~/.agents';
|
|
1091
806
|
if (f.kind === 'repo-drift')
|
|
1092
807
|
return 'config repo';
|
|
1093
|
-
// Never "this device" — the row already sits under its own `▸ <device>` block,
|
|
1094
|
-
// so a self-referential subject reads as the local machine in fleet mode.
|
|
1095
808
|
if (f.kind === 'stale-cli')
|
|
1096
809
|
return 'agents-cli';
|
|
1097
810
|
if (f.kind === 'binary-shadow')
|
|
@@ -1116,15 +829,8 @@ function warningSubject(f) {
|
|
|
1116
829
|
return subjectLabel(f);
|
|
1117
830
|
return f.kind;
|
|
1118
831
|
}
|
|
1119
|
-
/**
|
|
1120
|
-
* The compact accounts/versions line for one device: every installed version and
|
|
1121
|
-
* its account, grouped by agent — green ✓ signed in, red ✗ provably logged out,
|
|
1122
|
-
* gray ? unknown (see {@link badge}). e.g.
|
|
1123
|
-
* `claude 2.1.170 ✓muqsit@gmail(Max) 2.1.999 ✓team(Team) · codex ✗ · grok ✓`
|
|
1124
|
-
*/
|
|
1125
832
|
export function renderAccountsLine(signIn) {
|
|
1126
833
|
const parts = [];
|
|
1127
|
-
// Stable agent order matches AGENT display order.
|
|
1128
834
|
const agents = sortedAgentIds(Object.keys(signIn));
|
|
1129
835
|
for (const agentId of agents) {
|
|
1130
836
|
const rows = signIn[agentId];
|
|
@@ -1132,8 +838,6 @@ export function renderAccountsLine(signIn) {
|
|
|
1132
838
|
continue;
|
|
1133
839
|
const agent = agentId;
|
|
1134
840
|
if (rows.length === 1) {
|
|
1135
|
-
// Single version — collapse to `<agent> <badge>` (omit the version to keep
|
|
1136
|
-
// the healthy fleet line short), matching the target layout's `codex ✓`.
|
|
1137
841
|
const r = rows[0];
|
|
1138
842
|
parts.push(`${agentId} ${badge(agent, r)}`);
|
|
1139
843
|
}
|