@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
|
@@ -10,32 +10,15 @@ import { getBinaryPath, getLatestNpmVersion, getOldestNpmVersion, getLiveVersion
|
|
|
10
10
|
import { installationDir } from './store.js';
|
|
11
11
|
const execAsync = promisify(exec);
|
|
12
12
|
const execFileAsync = promisify(execFile);
|
|
13
|
-
/** npm install timeout, matching the install path's own installer budget. */
|
|
14
13
|
const INSTALL_TIMEOUT_MS = 120_000;
|
|
15
14
|
function runId() {
|
|
16
15
|
return `${process.pid}-${crypto.randomBytes(4).toString('hex')}`;
|
|
17
16
|
}
|
|
18
17
|
function moveDir(from, to) {
|
|
19
18
|
fs.mkdirSync(path.dirname(to), { recursive: true });
|
|
20
|
-
// Staging and rollback are siblings on the installation filesystem. Never
|
|
21
|
-
// turn an atomic rename failure into a partially successful copy-and-delete:
|
|
22
|
-
// an open Windows file or unexpected mount must leave the source intact.
|
|
23
19
|
fs.renameSync(from, to);
|
|
24
20
|
}
|
|
25
|
-
/**
|
|
26
|
-
* Entries a swap replaces: everything npm owns inside a version dir. The lockfile
|
|
27
|
-
* is included deliberately — leaving the previous release's `package-lock.json`
|
|
28
|
-
* beside the new `node_modules` would make the directory describe a release it no
|
|
29
|
-
* longer contains, and the next repair reinstall would resolve from that stale lock.
|
|
30
|
-
* Entries absent on either side are skipped, so a dir without a lockfile is fine.
|
|
31
|
-
*/
|
|
32
21
|
const NPM_LIVE_ENTRIES = ['node_modules', 'package.json', 'package-lock.json'];
|
|
33
|
-
/**
|
|
34
|
-
* npm-packaged harnesses (claude, codex, kimi, opencode, …). The only fully
|
|
35
|
-
* transactional class: a pinned release can be fetched into a sibling directory,
|
|
36
|
-
* probed there, and swapped in, with the displaced tree kept until the swap is
|
|
37
|
-
* proven — so a failed update leaves the previous release running.
|
|
38
|
-
*/
|
|
39
22
|
const npmPackageStrategy = {
|
|
40
23
|
id: 'npm-package',
|
|
41
24
|
transactional: true,
|
|
@@ -60,10 +43,6 @@ const npmPackageStrategy = {
|
|
|
60
43
|
fs.writeFileSync(path.join(stagingDir, 'package.json'), JSON.stringify({ name: `agents-${ctx.agent}-${target}`, version: '1.0.0', private: true }, null, 2));
|
|
61
44
|
const winShell = process.platform === 'win32';
|
|
62
45
|
ctx.onProgress?.(`Staging ${pkg}@${target}...`);
|
|
63
|
-
// `--ignore-scripts` for the dependency tree; the first-party package's own
|
|
64
|
-
// postinstall is re-run below, exactly as the install path does — several
|
|
65
|
-
// harnesses ship their native binary via that script and are unlaunchable
|
|
66
|
-
// without it.
|
|
67
46
|
await execFileAsync('npm', ['install', `${pkg}@${target}`, '--ignore-scripts'], {
|
|
68
47
|
cwd: stagingDir,
|
|
69
48
|
shell: winShell,
|
|
@@ -79,7 +58,6 @@ const npmPackageStrategy = {
|
|
|
79
58
|
}
|
|
80
59
|
}
|
|
81
60
|
catch {
|
|
82
|
-
/* non-fatal: the launch probe in update.ts is the real gate */
|
|
83
61
|
}
|
|
84
62
|
return {
|
|
85
63
|
release: target,
|
|
@@ -93,8 +71,6 @@ const npmPackageStrategy = {
|
|
|
93
71
|
const rollbackDir = path.join(dir, `.rollback-${runId()}`);
|
|
94
72
|
const displaced = [];
|
|
95
73
|
const stagedIn = [];
|
|
96
|
-
// Restore each displaced entry. If restoration itself fails, retain every
|
|
97
|
-
// remaining backup and surface its path; never erase the only good copy.
|
|
98
74
|
const restorePreCommitState = () => {
|
|
99
75
|
const errors = [];
|
|
100
76
|
for (const entry of [...stagedIn].reverse()) {
|
|
@@ -118,13 +94,6 @@ const npmPackageStrategy = {
|
|
|
118
94
|
fs.rmSync(rollbackDir, { recursive: true, force: true });
|
|
119
95
|
};
|
|
120
96
|
try {
|
|
121
|
-
// Move the live tree aside first, then move the staged tree in. Doing it
|
|
122
|
-
// in this order means the failure window contains no half-merged tree on
|
|
123
|
-
// its own: either the old entries are all aside (restorable) or the new
|
|
124
|
-
// ones are all in place — the try/catch below is what makes a throw
|
|
125
|
-
// BETWEEN those two loops (or partway through the second one) recover
|
|
126
|
-
// to the pre-commit state instead of leaving whichever entries already
|
|
127
|
-
// moved exactly where the exception left them.
|
|
128
97
|
for (const entry of NPM_LIVE_ENTRIES) {
|
|
129
98
|
const live = path.join(dir, entry);
|
|
130
99
|
if (!fs.existsSync(live))
|
|
@@ -151,26 +120,15 @@ const npmPackageStrategy = {
|
|
|
151
120
|
};
|
|
152
121
|
},
|
|
153
122
|
};
|
|
154
|
-
/**
|
|
155
|
-
* Harnesses that are ONE global self-updating binary (droid, muse, warp): every
|
|
156
|
-
* installation of the agent points at the same file, so there is nothing
|
|
157
|
-
* per-installation to stage or swap, and updating one necessarily updates all.
|
|
158
|
-
* The honest model is therefore: run the official installer, probe the live
|
|
159
|
-
* binary, and record the new release on every installation that shares it.
|
|
160
|
-
*/
|
|
161
123
|
const globalBinaryStrategy = {
|
|
162
124
|
id: 'global-binary',
|
|
163
125
|
transactional: false,
|
|
164
126
|
sharedBinary: true,
|
|
165
127
|
async resolveTarget(ctx) {
|
|
166
|
-
// The installer for these carries no version token, so a requested release
|
|
167
|
-
// cannot be honoured. Fail loud rather than install something else and
|
|
168
|
-
// report it as the pin the user asked for.
|
|
169
128
|
if (ctx.requested !== 'latest') {
|
|
170
129
|
throw new Error(`${AGENTS[ctx.agent].name} is a single self-updating binary with no pinnable releases — `
|
|
171
130
|
+ `it can only be updated to the current one. Re-run: agents update ${ctx.agent}@${ctx.installation.label} --to latest`);
|
|
172
131
|
}
|
|
173
|
-
// Resolved after the installer runs — `latest` here is whatever it fetches.
|
|
174
132
|
return 'latest';
|
|
175
133
|
},
|
|
176
134
|
async stage(ctx) {
|
|
@@ -190,19 +148,9 @@ const globalBinaryStrategy = {
|
|
|
190
148
|
};
|
|
191
149
|
},
|
|
192
150
|
async commit() {
|
|
193
|
-
// The installer already replaced the shared binary; there is no per-install
|
|
194
|
-
// swap to perform and no previous copy to restore.
|
|
195
151
|
return { undo: () => { }, finalize: () => { } };
|
|
196
152
|
},
|
|
197
153
|
};
|
|
198
|
-
/**
|
|
199
|
-
* Harnesses installed by an official script that keeps a per-installation copy
|
|
200
|
-
* or symlink farm (grok, cursor, antigravity, hermes, goose, …). The
|
|
201
|
-
* vendor artifact lands in a global location the installer owns, so the fetch
|
|
202
|
-
* itself is not reversible; what IS per-installation — the version dir's binary
|
|
203
|
-
* link farm — is staged and swapped so a failed re-import cannot strand the
|
|
204
|
-
* installation without a launch target.
|
|
205
|
-
*/
|
|
206
154
|
const installScriptStrategy = {
|
|
207
155
|
id: 'install-script',
|
|
208
156
|
transactional: false,
|
|
@@ -221,16 +169,10 @@ const installScriptStrategy = {
|
|
|
221
169
|
ctx.onProgress?.(`Updating ${config.name} via official installer...`);
|
|
222
170
|
await execAsync(script, { timeout: INSTALL_TIMEOUT_MS });
|
|
223
171
|
invalidateLiveVersionCache(ctx.agent);
|
|
224
|
-
// findInPath skips our own shims dir, so this is the genuine vendor binary
|
|
225
|
-
// and never our dispatcher (which would produce a self-execing link farm).
|
|
226
172
|
const installed = findInPath(config.cliCommand);
|
|
227
173
|
if (!installed) {
|
|
228
174
|
throw new Error(`${config.name} installer finished but ${config.cliCommand} is not on PATH — the install did not complete.`);
|
|
229
175
|
}
|
|
230
|
-
// On Windows there is no `.cmd` wrapper beside an imported install-script
|
|
231
|
-
// binary, so the staged launch probe cannot run and reports healthy. The
|
|
232
|
-
// gate is therefore weaker here than on POSIX; the unconditional undo in
|
|
233
|
-
// update.ts is what keeps a bad swap recoverable.
|
|
234
176
|
const release = target === 'latest'
|
|
235
177
|
? (await getLiveVersion(ctx.agent)) ?? target
|
|
236
178
|
: target;
|
|
@@ -239,8 +181,6 @@ const installScriptStrategy = {
|
|
|
239
181
|
fs.mkdirSync(stagingDir, { recursive: true });
|
|
240
182
|
const imported = importInstallScriptBinary({ agentId: ctx.agent, npmPackage: config.npmPackage, cliCommand: config.cliCommand }, ctx.installation.label, installed, stagingDir);
|
|
241
183
|
if (!imported.success) {
|
|
242
|
-
// Swallowing this reported the launch probe's generic "binary not found"
|
|
243
|
-
// instead of the real reason the import failed.
|
|
244
184
|
throw new Error(`${config.name} ${release} was installed but could not be linked into the version directory: ${imported.error ?? 'unknown error'}`);
|
|
245
185
|
}
|
|
246
186
|
return {
|
|
@@ -252,15 +192,6 @@ const installScriptStrategy = {
|
|
|
252
192
|
},
|
|
253
193
|
commit: npmPackageStrategy.commit,
|
|
254
194
|
};
|
|
255
|
-
/**
|
|
256
|
-
* Pick the update strategy for an agent from the registry's declared shape.
|
|
257
|
-
*
|
|
258
|
-
* The ordering mirrors `installVersion`: an npm package wins whenever one is
|
|
259
|
-
* declared (kimi declares both a package and a script, and its package is what
|
|
260
|
-
* `agents add` installs), then a single shared global binary, then a per-install
|
|
261
|
-
* script. Anything else is an integration boundary we do not handle — it throws
|
|
262
|
-
* rather than silently no-opping and reporting success.
|
|
263
|
-
*/
|
|
264
195
|
export function selectUpdateStrategy(agent) {
|
|
265
196
|
const config = AGENTS[agent];
|
|
266
197
|
if (config.npmPackage)
|
|
@@ -269,11 +200,6 @@ export function selectUpdateStrategy(agent) {
|
|
|
269
200
|
return globalBinaryStrategy;
|
|
270
201
|
if (config.installScript) {
|
|
271
202
|
if (!usesVersionDirLinkFarm(agent)) {
|
|
272
|
-
// The install path resolves this harness's binary somewhere the version
|
|
273
|
-
// dir's link farm does not describe (grok keeps a real per-release copy
|
|
274
|
-
// under its version home). Staging and swapping the link farm would leave
|
|
275
|
-
// the launch target untouched, so the update would record a release that
|
|
276
|
-
// is not actually installed. Refuse instead of reporting a false success.
|
|
277
203
|
throw new Error(`${config.name} keeps its binary outside the managed version directory, so agents-cli cannot yet update an `
|
|
278
204
|
+ `installation in place. Install the current release as a new installation: agents add ${agent}@latest`);
|
|
279
205
|
}
|
|
@@ -282,30 +208,17 @@ export function selectUpdateStrategy(agent) {
|
|
|
282
208
|
throw new Error(`${config.name} is not installed by agents-cli (it declares no npm package and no installer), so there is nothing to update. `
|
|
283
209
|
+ `Update it with its own tooling.`);
|
|
284
210
|
}
|
|
285
|
-
/**
|
|
286
|
-
* Does this harness's launch target live in the version dir's own
|
|
287
|
-
* `node_modules/.bin` link farm — the thing an installation can stage and swap?
|
|
288
|
-
*
|
|
289
|
-
* Probed through `getBinaryPath`, the single resolver the shims and `agents run`
|
|
290
|
-
* use, rather than tested against an agent id, so a harness that resolves its
|
|
291
|
-
* binary elsewhere is recognised without being enumerated here.
|
|
292
|
-
*/
|
|
293
211
|
function usesVersionDirLinkFarm(agent) {
|
|
294
212
|
const probe = '0.0.0-probe';
|
|
295
213
|
const expected = path.join(installationDir(agent, probe), 'node_modules', '.bin', AGENTS[agent].cliCommand);
|
|
296
214
|
return getBinaryPath(agent, probe) === expected;
|
|
297
215
|
}
|
|
298
|
-
/**
|
|
299
|
-
* Whether a concrete release can be requested for this agent at all. False for
|
|
300
|
-
* every self-updating harness — their installers carry no version token.
|
|
301
|
-
*/
|
|
302
216
|
export function supportsPinnedUpdate(agent) {
|
|
303
217
|
const config = AGENTS[agent];
|
|
304
218
|
if (config.npmPackage)
|
|
305
219
|
return true;
|
|
306
220
|
return !isSelfUpdatingAgent(agent);
|
|
307
221
|
}
|
|
308
|
-
/** Guard a user-supplied release token before it reaches a path or a package spec. */
|
|
309
222
|
export function assertValidRelease(requested) {
|
|
310
223
|
if (!VERSION_RE.test(requested)) {
|
|
311
224
|
throw new Error(`Invalid release: ${JSON.stringify(requested)}`);
|
|
@@ -1,95 +1,29 @@
|
|
|
1
1
|
import type { AgentId } from '../types.js';
|
|
2
|
-
/**
|
|
3
|
-
* Schema version of the on-disk installation record. Bump only for a change a
|
|
4
|
-
* previous CLI could not read; {@link INSTALLATION_SCHEMA} is asserted on read
|
|
5
|
-
* so a newer record fails loud instead of being silently misinterpreted.
|
|
6
|
-
*/
|
|
7
2
|
export declare const INSTALLATION_SCHEMA = 1;
|
|
8
|
-
/** File name of the record, written at the root of a version dir. */
|
|
9
3
|
export declare const INSTALLATION_RECORD_FILE = "installation.json";
|
|
10
|
-
/**
|
|
11
|
-
* One entry in an installation's release history — appended on every successful
|
|
12
|
-
* update so `agents update --json` can report where a frozen installation came
|
|
13
|
-
* from without consulting the vendor.
|
|
14
|
-
*/
|
|
15
4
|
export interface InstallationRelease {
|
|
16
|
-
/** The vendor release that was live for this span. */
|
|
17
5
|
releaseVersion: string;
|
|
18
|
-
/** ISO-8601 timestamp at which this release became live. */
|
|
19
6
|
at: string;
|
|
20
7
|
}
|
|
21
|
-
/**
|
|
22
|
-
* A frozen agent installation.
|
|
23
|
-
*
|
|
24
|
-
* The load-bearing idea: an installation's IDENTITY ({@link id}, {@link label})
|
|
25
|
-
* is stable for the life of the install, while the vendor release it carries
|
|
26
|
-
* ({@link releaseVersion}) moves only on an explicit `agents update`. Every
|
|
27
|
-
* persisted reference — the global default, an isolated default, a project pin,
|
|
28
|
-
* a routine's agent spec — names the {@link label}, so a release change never
|
|
29
|
-
* invalidates a reference.
|
|
30
|
-
*
|
|
31
|
-
* Before this record existed the version-dir NAME was the only identity, which
|
|
32
|
-
* made those two concepts the same string: updating a release necessarily
|
|
33
|
-
* renamed the directory and broke every reference pointing at it, and two
|
|
34
|
-
* installations of the same release could not coexist at all. Splitting them is
|
|
35
|
-
* what makes both possible.
|
|
36
|
-
*/
|
|
37
8
|
export interface Installation {
|
|
38
9
|
schema: number;
|
|
39
|
-
/** Opaque, stable, never reused. Survives every update. */
|
|
40
10
|
id: string;
|
|
41
11
|
agent: AgentId;
|
|
42
|
-
/**
|
|
43
|
-
* The addressable name of this installation — the version-dir basename, and
|
|
44
|
-
* the token users type in `agents update <agent>@<label>`. Frozen at creation.
|
|
45
|
-
*/
|
|
46
12
|
label: string;
|
|
47
|
-
/** The vendor release currently installed on disk. Moves on update. */
|
|
48
13
|
releaseVersion: string;
|
|
49
14
|
createdAt: string;
|
|
50
15
|
updatedAt: string;
|
|
51
|
-
/** Newest last. Always non-empty: creation seeds it with the first release. */
|
|
52
16
|
history: InstallationRelease[];
|
|
53
|
-
/**
|
|
54
|
-
* How the automatic-update pass (`installations/update-runtime.ts`) treats
|
|
55
|
-
* this installation. `'latest'` (the default) lets it ride the automatic
|
|
56
|
-
* pass; `'pinned'` excludes it — set implicitly by `agents update
|
|
57
|
-
* <agent>@<label> --to <concrete-release>` and cleared by `--to latest`.
|
|
58
|
-
*
|
|
59
|
-
* Absent means `'latest'`: every installation created before this field
|
|
60
|
-
* existed is legacy data, not an opt-out, so a missing key must resolve the
|
|
61
|
-
* same as an explicit `'latest'` rather than being treated as unset/invalid.
|
|
62
|
-
* Read through {@link effectiveUpdatePolicy} in `update-policy.ts` — never
|
|
63
|
-
* compare this field directly, so that default stays in one place.
|
|
64
|
-
*/
|
|
65
17
|
updatePolicy?: UpdatePolicy;
|
|
66
18
|
}
|
|
67
|
-
/** See {@link Installation.updatePolicy}. */
|
|
68
19
|
export type UpdatePolicy = 'latest' | 'pinned';
|
|
69
|
-
|
|
70
|
-
* How an installation's release is replaced. Selected from the agent registry's
|
|
71
|
-
* capabilities, never from an agent id — see `selectUpdateStrategy`.
|
|
72
|
-
*/
|
|
73
|
-
export type UpdateStrategyId =
|
|
74
|
-
/** Agent ships an npm package: a pinnable release staged into the version dir. */
|
|
75
|
-
'npm-package'
|
|
76
|
-
/** One global self-updating binary shared by every installation of the agent. */
|
|
77
|
-
| 'global-binary'
|
|
78
|
-
/** An official install script with no pinnable version, re-imported per install. */
|
|
79
|
-
| 'install-script';
|
|
80
|
-
/** Outcome of a single `agents update` run against one installation. */
|
|
20
|
+
export type UpdateStrategyId = 'npm-package' | 'global-binary' | 'install-script';
|
|
81
21
|
export interface UpdateOutcome {
|
|
82
22
|
installation: Installation;
|
|
83
23
|
strategy: UpdateStrategyId;
|
|
84
24
|
fromRelease: string;
|
|
85
25
|
toRelease: string;
|
|
86
|
-
/** True when the resolved target already matched the installed release. */
|
|
87
26
|
unchanged: boolean;
|
|
88
|
-
/** No swap occurred because activity, cancellation, or policy prevented it. */
|
|
89
27
|
deferred?: string;
|
|
90
|
-
/**
|
|
91
|
-
* Installations other than the target whose recorded release also moved,
|
|
92
|
-
* because the strategy replaced a binary they share (global-binary only).
|
|
93
|
-
*/
|
|
94
28
|
alsoUpdated: Installation[];
|
|
95
29
|
}
|
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Schema version of the on-disk installation record. Bump only for a change a
|
|
3
|
-
* previous CLI could not read; {@link INSTALLATION_SCHEMA} is asserted on read
|
|
4
|
-
* so a newer record fails loud instead of being silently misinterpreted.
|
|
5
|
-
*/
|
|
6
1
|
export const INSTALLATION_SCHEMA = 1;
|
|
7
|
-
/** File name of the record, written at the root of a version dir. */
|
|
8
2
|
export const INSTALLATION_RECORD_FILE = 'installation.json';
|
|
@@ -1,82 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cross-platform cooperative cancellation for the harness auto-update pass
|
|
3
|
-
* (PHNX-3940).
|
|
4
|
-
*
|
|
5
|
-
* The pass mutates the filesystem transactionally — stage an npm install into a
|
|
6
|
-
* sibling dir, launch-probe it, swap it in, record the new release, drop the
|
|
7
|
-
* rollback material (see `update.ts`). Interrupting it mid-swap can leave an
|
|
8
|
-
* installation whose directory and its own metadata disagree, with no way back.
|
|
9
|
-
* So it must be cancellable from OUTSIDE the process — on the daemon's per-tick
|
|
10
|
-
* deadline, or on daemon shutdown — WITHOUT terminating a process that is mid-swap.
|
|
11
|
-
*
|
|
12
|
-
* `execFile`'s `timeout`/`AbortSignal` do exactly the wrong thing here: they
|
|
13
|
-
* FORCE-terminate the child. On Windows that is unconditional (there are no POSIX
|
|
14
|
-
* signals to cooperate with — the SIGTERM listener the pass installs never runs),
|
|
15
|
-
* so a Windows daemon would kill its own update worker mid-rename. Even on POSIX
|
|
16
|
-
* the forced kill races the swap.
|
|
17
|
-
*
|
|
18
|
-
* The fix is a request, not a kill: the daemon spawns the pass as a child over a
|
|
19
|
-
* Node IPC channel and asks it to stop by SENDING A MESSAGE. The child flips a
|
|
20
|
-
* flag that `update.ts`'s existing `shouldCancel` reads at each safe boundary
|
|
21
|
-
* (before the next installation, before staging, and immediately before commit)
|
|
22
|
-
* and finishes what it is doing cleanly. The channel closing (parent gone) and a
|
|
23
|
-
* received SIGTERM/SIGINT are treated as the same request, so a force-killed
|
|
24
|
-
* daemon can never strand a child mutating forever, and a manual `agents update
|
|
25
|
-
* --auto` interrupted with Ctrl+C also stops at a boundary rather than mid-swap.
|
|
26
|
-
*
|
|
27
|
-
* This module is a dependency-free LEAF on purpose: `index.ts` reads the guard
|
|
28
|
-
* depth below through the shared {@link GUARDED_AUTO_UPDATE_SYMBOL} registry key
|
|
29
|
-
* (never importing this module, so the slim CLI shell stays slim), and the daemon
|
|
30
|
-
* child fixture in tests imports {@link withGuardedUpdateCancellation} without
|
|
31
|
-
* pulling the installations graph.
|
|
32
|
-
*/
|
|
33
|
-
/**
|
|
34
|
-
* The hidden verb the daemon spawns to run one auto-update pass with IPC-driven
|
|
35
|
-
* cancellation (dispatched in `index.ts`, handled by
|
|
36
|
-
* `update-runtime.ts`'s `runHarnessUpdateChild`). Internal protocol — not a
|
|
37
|
-
* public command.
|
|
38
|
-
*/
|
|
39
1
|
export declare const HARNESS_UPDATE_CHILD_CMD = "__harness-update-run";
|
|
40
|
-
/** IPC message `type` the daemon sends to request a cooperative stop. */
|
|
41
2
|
export declare const HARNESS_UPDATE_CANCEL_MSG = "harness-update:cancel";
|
|
42
|
-
/**
|
|
43
|
-
* Well-known cross-realm key naming the count of guarded auto-update passes
|
|
44
|
-
* running IN THIS PROCESS right now. `index.ts`'s top-level SIGINT handler reads
|
|
45
|
-
* it via `Symbol.for(...)` WITHOUT importing this module (keeping the slim entry
|
|
46
|
-
* shell free of a heavy static import — see `agent.test.ts`'s import guard), so
|
|
47
|
-
* the guard state has to live somewhere both can reach: the global symbol
|
|
48
|
-
* registry.
|
|
49
|
-
*/
|
|
50
3
|
export declare const GUARDED_AUTO_UPDATE_SYMBOL: unique symbol;
|
|
51
|
-
/** The IPC payload the daemon sends; `child.send(cancelMessage())`. */
|
|
52
4
|
export declare function cancelMessage(): {
|
|
53
5
|
type: typeof HARNESS_UPDATE_CANCEL_MSG;
|
|
54
6
|
};
|
|
55
|
-
/**
|
|
56
|
-
* True while a guarded auto-update pass is mutating this process. Read by
|
|
57
|
-
* `index.ts`'s SIGINT handler (which reads the same registry symbol directly) to
|
|
58
|
-
* DEFER its default `process.exit(130)` so a Ctrl+C can't tear a swap apart; the
|
|
59
|
-
* pass still observes the SIGINT cooperatively and stops at its next boundary.
|
|
60
|
-
* Ref-counted (a depth, not a boolean) so it is correct even if a pass ever nests.
|
|
61
|
-
*/
|
|
62
7
|
export declare function isGuardedAutoUpdateActive(): boolean;
|
|
63
|
-
/**
|
|
64
|
-
* Run `run(cancelled)` with cooperative cancellation wired from every source
|
|
65
|
-
* that can reach this process, and the SIGINT guard held for its duration:
|
|
66
|
-
*
|
|
67
|
-
* - **IPC message** `{ type: HARNESS_UPDATE_CANCEL_MSG }` — the primary,
|
|
68
|
-
* cross-platform request the daemon sends. Works on Windows, where a signal
|
|
69
|
-
* would force-kill.
|
|
70
|
-
* - **`disconnect`** — the IPC channel closed (the daemon went away). Stop
|
|
71
|
-
* rather than continue mutating orphaned.
|
|
72
|
-
* - **SIGTERM / SIGINT** — a direct `kill`/Ctrl+C on this process. Cooperative,
|
|
73
|
-
* not fatal; paired with `index.ts`'s guard, which defers its hard exit while
|
|
74
|
-
* {@link isGuardedAutoUpdateActive} holds.
|
|
75
|
-
*
|
|
76
|
-
* `cancelled()` never un-sets once set. Listeners are installed for the call's
|
|
77
|
-
* lifetime only and removed in `finally`, and the process-wide `message`/
|
|
78
|
-
* `disconnect` listeners are harmless when there is no IPC channel (they simply
|
|
79
|
-
* never fire), so this is safe on the in-process manual `agents update --auto`
|
|
80
|
-
* path too.
|
|
81
|
-
*/
|
|
82
8
|
export declare function withGuardedUpdateCancellation<T>(run: (cancelled: () => boolean) => Promise<T>): Promise<T>;
|
|
@@ -1,54 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cross-platform cooperative cancellation for the harness auto-update pass
|
|
3
|
-
* (PHNX-3940).
|
|
4
|
-
*
|
|
5
|
-
* The pass mutates the filesystem transactionally — stage an npm install into a
|
|
6
|
-
* sibling dir, launch-probe it, swap it in, record the new release, drop the
|
|
7
|
-
* rollback material (see `update.ts`). Interrupting it mid-swap can leave an
|
|
8
|
-
* installation whose directory and its own metadata disagree, with no way back.
|
|
9
|
-
* So it must be cancellable from OUTSIDE the process — on the daemon's per-tick
|
|
10
|
-
* deadline, or on daemon shutdown — WITHOUT terminating a process that is mid-swap.
|
|
11
|
-
*
|
|
12
|
-
* `execFile`'s `timeout`/`AbortSignal` do exactly the wrong thing here: they
|
|
13
|
-
* FORCE-terminate the child. On Windows that is unconditional (there are no POSIX
|
|
14
|
-
* signals to cooperate with — the SIGTERM listener the pass installs never runs),
|
|
15
|
-
* so a Windows daemon would kill its own update worker mid-rename. Even on POSIX
|
|
16
|
-
* the forced kill races the swap.
|
|
17
|
-
*
|
|
18
|
-
* The fix is a request, not a kill: the daemon spawns the pass as a child over a
|
|
19
|
-
* Node IPC channel and asks it to stop by SENDING A MESSAGE. The child flips a
|
|
20
|
-
* flag that `update.ts`'s existing `shouldCancel` reads at each safe boundary
|
|
21
|
-
* (before the next installation, before staging, and immediately before commit)
|
|
22
|
-
* and finishes what it is doing cleanly. The channel closing (parent gone) and a
|
|
23
|
-
* received SIGTERM/SIGINT are treated as the same request, so a force-killed
|
|
24
|
-
* daemon can never strand a child mutating forever, and a manual `agents update
|
|
25
|
-
* --auto` interrupted with Ctrl+C also stops at a boundary rather than mid-swap.
|
|
26
|
-
*
|
|
27
|
-
* This module is a dependency-free LEAF on purpose: `index.ts` reads the guard
|
|
28
|
-
* depth below through the shared {@link GUARDED_AUTO_UPDATE_SYMBOL} registry key
|
|
29
|
-
* (never importing this module, so the slim CLI shell stays slim), and the daemon
|
|
30
|
-
* child fixture in tests imports {@link withGuardedUpdateCancellation} without
|
|
31
|
-
* pulling the installations graph.
|
|
32
|
-
*/
|
|
33
|
-
/**
|
|
34
|
-
* The hidden verb the daemon spawns to run one auto-update pass with IPC-driven
|
|
35
|
-
* cancellation (dispatched in `index.ts`, handled by
|
|
36
|
-
* `update-runtime.ts`'s `runHarnessUpdateChild`). Internal protocol — not a
|
|
37
|
-
* public command.
|
|
38
|
-
*/
|
|
39
1
|
export const HARNESS_UPDATE_CHILD_CMD = '__harness-update-run';
|
|
40
|
-
/** IPC message `type` the daemon sends to request a cooperative stop. */
|
|
41
2
|
export const HARNESS_UPDATE_CANCEL_MSG = 'harness-update:cancel';
|
|
42
|
-
/**
|
|
43
|
-
* Well-known cross-realm key naming the count of guarded auto-update passes
|
|
44
|
-
* running IN THIS PROCESS right now. `index.ts`'s top-level SIGINT handler reads
|
|
45
|
-
* it via `Symbol.for(...)` WITHOUT importing this module (keeping the slim entry
|
|
46
|
-
* shell free of a heavy static import — see `agent.test.ts`'s import guard), so
|
|
47
|
-
* the guard state has to live somewhere both can reach: the global symbol
|
|
48
|
-
* registry.
|
|
49
|
-
*/
|
|
50
3
|
export const GUARDED_AUTO_UPDATE_SYMBOL = Symbol.for('agents.guardedAutoUpdateDepth');
|
|
51
|
-
/** The IPC payload the daemon sends; `child.send(cancelMessage())`. */
|
|
52
4
|
export function cancelMessage() {
|
|
53
5
|
return { type: HARNESS_UPDATE_CANCEL_MSG };
|
|
54
6
|
}
|
|
@@ -57,13 +9,6 @@ function isCancelMessage(msg) {
|
|
|
57
9
|
msg !== null &&
|
|
58
10
|
msg.type === HARNESS_UPDATE_CANCEL_MSG);
|
|
59
11
|
}
|
|
60
|
-
/**
|
|
61
|
-
* True while a guarded auto-update pass is mutating this process. Read by
|
|
62
|
-
* `index.ts`'s SIGINT handler (which reads the same registry symbol directly) to
|
|
63
|
-
* DEFER its default `process.exit(130)` so a Ctrl+C can't tear a swap apart; the
|
|
64
|
-
* pass still observes the SIGINT cooperatively and stops at its next boundary.
|
|
65
|
-
* Ref-counted (a depth, not a boolean) so it is correct even if a pass ever nests.
|
|
66
|
-
*/
|
|
67
12
|
export function isGuardedAutoUpdateActive() {
|
|
68
13
|
return (globalThis[GUARDED_AUTO_UPDATE_SYMBOL] ?? 0) > 0;
|
|
69
14
|
}
|
|
@@ -76,25 +21,6 @@ function endGuardedAutoUpdate() {
|
|
|
76
21
|
const depth = holder[GUARDED_AUTO_UPDATE_SYMBOL] ?? 0;
|
|
77
22
|
holder[GUARDED_AUTO_UPDATE_SYMBOL] = depth > 0 ? depth - 1 : 0;
|
|
78
23
|
}
|
|
79
|
-
/**
|
|
80
|
-
* Run `run(cancelled)` with cooperative cancellation wired from every source
|
|
81
|
-
* that can reach this process, and the SIGINT guard held for its duration:
|
|
82
|
-
*
|
|
83
|
-
* - **IPC message** `{ type: HARNESS_UPDATE_CANCEL_MSG }` — the primary,
|
|
84
|
-
* cross-platform request the daemon sends. Works on Windows, where a signal
|
|
85
|
-
* would force-kill.
|
|
86
|
-
* - **`disconnect`** — the IPC channel closed (the daemon went away). Stop
|
|
87
|
-
* rather than continue mutating orphaned.
|
|
88
|
-
* - **SIGTERM / SIGINT** — a direct `kill`/Ctrl+C on this process. Cooperative,
|
|
89
|
-
* not fatal; paired with `index.ts`'s guard, which defers its hard exit while
|
|
90
|
-
* {@link isGuardedAutoUpdateActive} holds.
|
|
91
|
-
*
|
|
92
|
-
* `cancelled()` never un-sets once set. Listeners are installed for the call's
|
|
93
|
-
* lifetime only and removed in `finally`, and the process-wide `message`/
|
|
94
|
-
* `disconnect` listeners are harmless when there is no IPC channel (they simply
|
|
95
|
-
* never fire), so this is safe on the in-process manual `agents update --auto`
|
|
96
|
-
* path too.
|
|
97
|
-
*/
|
|
98
24
|
export async function withGuardedUpdateCancellation(run) {
|
|
99
25
|
let cancelled = typeof process.send === 'function' && process.connected === false;
|
|
100
26
|
const requestStop = () => {
|
|
@@ -1,69 +1,12 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Settings that gate the AUTOMATIC update pass (PHNX-3940): whether it runs at
|
|
3
|
-
* all (global + per-harness), and whether one installation participates.
|
|
4
|
-
*
|
|
5
|
-
* Two independent axes, deliberately kept apart:
|
|
6
|
-
* - `updates.auto` / `updates.<agent>.auto` — an OPERATOR switch, global and
|
|
7
|
-
* per-harness, stored centrally (`~/.agents/agents.yaml` `config:`) so it
|
|
8
|
-
* syncs fleet-wide like `summarizer.*`. Both are registered as ordinary
|
|
9
|
-
* TYPED entries in `device-config.ts`'s `CONFIG_KEYS` — the one canonical
|
|
10
|
-
* store for user-scope config — rather than a second untyped read/write
|
|
11
|
-
* path against `Meta.config` directly, so a config rewrite that only knows
|
|
12
|
-
* about the registry (validation, `agents config list`, the fleet sync
|
|
13
|
-
* that round-trips `config:`) can't silently drop these keys.
|
|
14
|
-
* - `Installation.updatePolicy` — an INSTALLATION property. Manual
|
|
15
|
-
* `agents update <agent>@<label> --to <concrete>` pins it; `--to latest`
|
|
16
|
-
* (or a fresh install) leaves/returns it to `'latest'`.
|
|
17
|
-
*
|
|
18
|
-
* The global switch is a HARD KILL SWITCH, not a default an explicit
|
|
19
|
-
* per-harness `true` can override: `updates.auto=false` must stop every
|
|
20
|
-
* harness's automatic pass even when an operator separately turned one
|
|
21
|
-
* harness's switch on, because the global switch is the "something is
|
|
22
|
-
* wrong, stop touching installations fleet-wide" lever and a forgotten
|
|
23
|
-
* per-harness override must never defeat it. See
|
|
24
|
-
* {@link isAutoUpdateEnabledForAgent}.
|
|
25
|
-
*/
|
|
26
1
|
import type { AgentId } from '../types.js';
|
|
27
2
|
import type { Installation, UpdatePolicy } from './types.js';
|
|
28
|
-
/** The raw, explicitly-set global switch, or `undefined` when never set (default: on). */
|
|
29
3
|
export declare function rawGlobalAutoUpdateSetting(): boolean | undefined;
|
|
30
4
|
export declare function setGlobalAutoUpdateEnabled(enabled: boolean): void;
|
|
31
5
|
export declare function unsetGlobalAutoUpdateEnabled(): void;
|
|
32
|
-
/** True unless the operator explicitly turned automatic updates off globally. */
|
|
33
6
|
export declare function isGlobalAutoUpdateEnabled(): boolean;
|
|
34
|
-
/** The raw, explicitly-set per-harness switch, or `undefined` when it defers to the global one. */
|
|
35
7
|
export declare function rawAgentAutoUpdateSetting(agent: AgentId): boolean | undefined;
|
|
36
8
|
export declare function setAgentAutoUpdateEnabled(agent: AgentId, enabled: boolean): void;
|
|
37
9
|
export declare function unsetAgentAutoUpdateEnabled(agent: AgentId): void;
|
|
38
|
-
/**
|
|
39
|
-
* Whether the automatic-update pass may consider this agent at all.
|
|
40
|
-
*
|
|
41
|
-
* `updates.auto=false` is a hard kill switch: it wins even over an explicit
|
|
42
|
-
* `updates.<agent>.auto=true` (see the module docblock). With the global
|
|
43
|
-
* switch on (the default), the per-harness switch refines it when explicitly
|
|
44
|
-
* set, else the harness is enabled too.
|
|
45
|
-
*/
|
|
46
10
|
export declare function isAutoUpdateEnabledForAgent(agent: AgentId): boolean;
|
|
47
|
-
/**
|
|
48
|
-
* The effective policy for one installation. Absent (legacy data, or a fresh
|
|
49
|
-
* install that never set it) means `'latest'` — see {@link Installation.updatePolicy}.
|
|
50
|
-
* Read through this everywhere rather than comparing the field directly.
|
|
51
|
-
*/
|
|
52
11
|
export declare function effectiveUpdatePolicy(installation: Pick<Installation, 'updatePolicy'>): UpdatePolicy;
|
|
53
|
-
/**
|
|
54
|
-
* Persist an installation's update policy. Takes the SAME per-installation
|
|
55
|
-
* lock `updateInstallation` (`update.ts`) holds for its whole transaction —
|
|
56
|
-
* without it, a manual `--to <release>`/`--to latest` pin racing an automatic
|
|
57
|
-
* pass's own `recordRelease` write (both a read-modify-write of the same
|
|
58
|
-
* `installation.json`) could lose whichever wrote second, silently reverting
|
|
59
|
-
* a just-applied pin or an update's own release bump. Reloads the record
|
|
60
|
-
* fresh from disk under the lock (never trusts a possibly-stale in-memory
|
|
61
|
-
* copy) and writes back only the policy field — never touches
|
|
62
|
-
* `history`/`releaseVersion`, since pinning or unpinning is not a release
|
|
63
|
-
* change. Locks with the SAME `staleMs`/`acquireTimeoutMs`
|
|
64
|
-
* ({@link INSTALLATION_LOCK_OPTIONS}) as that transaction — the fs-atomic
|
|
65
|
-
* default (5s stale) is far shorter than an update can legitimately run, so
|
|
66
|
-
* using it here would let this write break the transaction's
|
|
67
|
-
* still-legitimately-held lock out from under it.
|
|
68
|
-
*/
|
|
69
12
|
export declare function setInstallationUpdatePolicy(agent: AgentId, label: string, policy: UpdatePolicy): Promise<Installation>;
|
|
@@ -1,28 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Settings that gate the AUTOMATIC update pass (PHNX-3940): whether it runs at
|
|
3
|
-
* all (global + per-harness), and whether one installation participates.
|
|
4
|
-
*
|
|
5
|
-
* Two independent axes, deliberately kept apart:
|
|
6
|
-
* - `updates.auto` / `updates.<agent>.auto` — an OPERATOR switch, global and
|
|
7
|
-
* per-harness, stored centrally (`~/.agents/agents.yaml` `config:`) so it
|
|
8
|
-
* syncs fleet-wide like `summarizer.*`. Both are registered as ordinary
|
|
9
|
-
* TYPED entries in `device-config.ts`'s `CONFIG_KEYS` — the one canonical
|
|
10
|
-
* store for user-scope config — rather than a second untyped read/write
|
|
11
|
-
* path against `Meta.config` directly, so a config rewrite that only knows
|
|
12
|
-
* about the registry (validation, `agents config list`, the fleet sync
|
|
13
|
-
* that round-trips `config:`) can't silently drop these keys.
|
|
14
|
-
* - `Installation.updatePolicy` — an INSTALLATION property. Manual
|
|
15
|
-
* `agents update <agent>@<label> --to <concrete>` pins it; `--to latest`
|
|
16
|
-
* (or a fresh install) leaves/returns it to `'latest'`.
|
|
17
|
-
*
|
|
18
|
-
* The global switch is a HARD KILL SWITCH, not a default an explicit
|
|
19
|
-
* per-harness `true` can override: `updates.auto=false` must stop every
|
|
20
|
-
* harness's automatic pass even when an operator separately turned one
|
|
21
|
-
* harness's switch on, because the global switch is the "something is
|
|
22
|
-
* wrong, stop touching installations fleet-wide" lever and a forgotten
|
|
23
|
-
* per-harness override must never defeat it. See
|
|
24
|
-
* {@link isAutoUpdateEnabledForAgent}.
|
|
25
|
-
*/
|
|
26
1
|
import { getConfigValue, setConfigValue, unsetConfigValue } from '../device-config.js';
|
|
27
2
|
import { withFileLockAsync } from '../fs-atomic.js';
|
|
28
3
|
import * as fs from 'node:fs';
|
|
@@ -31,7 +6,6 @@ import { installationLockTarget, INSTALLATION_LOCK_OPTIONS } from './installatio
|
|
|
31
6
|
function agentAutoKey(agent) {
|
|
32
7
|
return `updates.${agent}.auto`;
|
|
33
8
|
}
|
|
34
|
-
/** The raw, explicitly-set global switch, or `undefined` when never set (default: on). */
|
|
35
9
|
export function rawGlobalAutoUpdateSetting() {
|
|
36
10
|
return getConfigValue('updates.auto').value;
|
|
37
11
|
}
|
|
@@ -41,11 +15,9 @@ export function setGlobalAutoUpdateEnabled(enabled) {
|
|
|
41
15
|
export function unsetGlobalAutoUpdateEnabled() {
|
|
42
16
|
unsetConfigValue('updates.auto');
|
|
43
17
|
}
|
|
44
|
-
/** True unless the operator explicitly turned automatic updates off globally. */
|
|
45
18
|
export function isGlobalAutoUpdateEnabled() {
|
|
46
19
|
return rawGlobalAutoUpdateSetting() !== false;
|
|
47
20
|
}
|
|
48
|
-
/** The raw, explicitly-set per-harness switch, or `undefined` when it defers to the global one. */
|
|
49
21
|
export function rawAgentAutoUpdateSetting(agent) {
|
|
50
22
|
return getConfigValue(agentAutoKey(agent)).value;
|
|
51
23
|
}
|
|
@@ -55,52 +27,18 @@ export function setAgentAutoUpdateEnabled(agent, enabled) {
|
|
|
55
27
|
export function unsetAgentAutoUpdateEnabled(agent) {
|
|
56
28
|
unsetConfigValue(agentAutoKey(agent));
|
|
57
29
|
}
|
|
58
|
-
/**
|
|
59
|
-
* Whether the automatic-update pass may consider this agent at all.
|
|
60
|
-
*
|
|
61
|
-
* `updates.auto=false` is a hard kill switch: it wins even over an explicit
|
|
62
|
-
* `updates.<agent>.auto=true` (see the module docblock). With the global
|
|
63
|
-
* switch on (the default), the per-harness switch refines it when explicitly
|
|
64
|
-
* set, else the harness is enabled too.
|
|
65
|
-
*/
|
|
66
30
|
export function isAutoUpdateEnabledForAgent(agent) {
|
|
67
31
|
if (!isGlobalAutoUpdateEnabled())
|
|
68
32
|
return false;
|
|
69
33
|
const perAgent = rawAgentAutoUpdateSetting(agent);
|
|
70
34
|
return perAgent !== false;
|
|
71
35
|
}
|
|
72
|
-
/**
|
|
73
|
-
* The effective policy for one installation. Absent (legacy data, or a fresh
|
|
74
|
-
* install that never set it) means `'latest'` — see {@link Installation.updatePolicy}.
|
|
75
|
-
* Read through this everywhere rather than comparing the field directly.
|
|
76
|
-
*/
|
|
77
36
|
export function effectiveUpdatePolicy(installation) {
|
|
78
37
|
return installation.updatePolicy ?? 'latest';
|
|
79
38
|
}
|
|
80
|
-
/**
|
|
81
|
-
* Persist an installation's update policy. Takes the SAME per-installation
|
|
82
|
-
* lock `updateInstallation` (`update.ts`) holds for its whole transaction —
|
|
83
|
-
* without it, a manual `--to <release>`/`--to latest` pin racing an automatic
|
|
84
|
-
* pass's own `recordRelease` write (both a read-modify-write of the same
|
|
85
|
-
* `installation.json`) could lose whichever wrote second, silently reverting
|
|
86
|
-
* a just-applied pin or an update's own release bump. Reloads the record
|
|
87
|
-
* fresh from disk under the lock (never trusts a possibly-stale in-memory
|
|
88
|
-
* copy) and writes back only the policy field — never touches
|
|
89
|
-
* `history`/`releaseVersion`, since pinning or unpinning is not a release
|
|
90
|
-
* change. Locks with the SAME `staleMs`/`acquireTimeoutMs`
|
|
91
|
-
* ({@link INSTALLATION_LOCK_OPTIONS}) as that transaction — the fs-atomic
|
|
92
|
-
* default (5s stale) is far shorter than an update can legitimately run, so
|
|
93
|
-
* using it here would let this write break the transaction's
|
|
94
|
-
* still-legitimately-held lock out from under it.
|
|
95
|
-
*/
|
|
96
39
|
export async function setInstallationUpdatePolicy(agent, label, policy) {
|
|
97
40
|
if (!fs.existsSync(installationDir(agent, label)))
|
|
98
41
|
throw new Error(`No installation directory for ${agent}@${label}.`);
|
|
99
|
-
// Guarantees `installation.json` exists and is VALID before locking on it,
|
|
100
|
-
// migrating a legacy pre-frozen version dir when needed — same reasoning as
|
|
101
|
-
// `launch-gate.ts`'s identical call. Throws its own clear
|
|
102
|
-
// "no installation directory" error when `label` was never installed at
|
|
103
|
-
// all, which is a real caller bug, not a race to reconcile under the lock.
|
|
104
42
|
const recordPath = installationLockTarget(agent, label);
|
|
105
43
|
return withFileLockAsync(recordPath, () => {
|
|
106
44
|
const current = ensureInstallationLocked(agent, label);
|