@phnx-labs/agents-cli 1.22.119 → 1.22.121
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +236 -0
- package/README.md +19 -2
- package/dist/bootstrap.d.ts +0 -15
- package/dist/bootstrap.js +10 -409
- package/dist/cli/command-registry.d.ts +0 -58
- package/dist/cli/command-registry.js +2 -74
- package/dist/commands/accounts.d.ts +0 -17
- package/dist/commands/accounts.js +1 -52
- package/dist/commands/alias.d.ts +0 -12
- package/dist/commands/alias.js +0 -6
- package/dist/commands/apply.d.ts +0 -15
- package/dist/commands/apply.js +0 -63
- package/dist/commands/audit.d.ts +0 -12
- package/dist/commands/audit.js +0 -13
- package/dist/commands/auth.js +4 -12
- package/dist/commands/beta.d.ts +0 -6
- package/dist/commands/beta.js +2 -6
- package/dist/commands/browser-sessions-picker.d.ts +0 -8
- package/dist/commands/browser-sessions-picker.js +0 -26
- package/dist/commands/browser.d.ts +0 -57
- package/dist/commands/browser.js +0 -80
- package/dist/commands/budget.d.ts +0 -13
- package/dist/commands/budget.js +0 -2
- package/dist/commands/cli.d.ts +0 -12
- package/dist/commands/cli.js +0 -4
- package/dist/commands/cloud.d.ts +0 -9
- package/dist/commands/cloud.js +0 -43
- package/dist/commands/commands.d.ts +0 -9
- package/dist/commands/commands.js +0 -18
- package/dist/commands/computer-sessions-picker.d.ts +0 -11
- package/dist/commands/computer-sessions-picker.js +0 -29
- package/dist/commands/computer.d.ts +0 -62
- package/dist/commands/computer.js +3 -114
- package/dist/commands/config.d.ts +0 -14
- package/dist/commands/config.js +21 -60
- package/dist/commands/cost.d.ts +0 -11
- package/dist/commands/cost.js +1 -17
- package/dist/commands/daemon-test-harness.d.ts +0 -32
- package/dist/commands/daemon-test-harness.js +1 -36
- package/dist/commands/daemon.d.ts +0 -46
- package/dist/commands/daemon.js +8 -255
- package/dist/commands/detach-core.d.ts +0 -28
- package/dist/commands/detach-core.js +0 -30
- package/dist/commands/detach.d.ts +1 -12
- package/dist/commands/detach.js +16 -52
- package/dist/commands/device-config-test-harness.js +0 -12
- package/dist/commands/doctor.d.ts +0 -103
- package/dist/commands/doctor.js +3 -279
- package/dist/commands/events.d.ts +0 -29
- package/dist/commands/events.js +1 -55
- package/dist/commands/exec.d.ts +0 -163
- package/dist/commands/exec.js +15 -964
- package/dist/commands/factory.d.ts +0 -6
- package/dist/commands/factory.js +0 -2
- package/dist/commands/feed-watch.js +0 -20
- package/dist/commands/feed.d.ts +0 -38
- package/dist/commands/feed.js +1 -151
- package/dist/commands/feedback.d.ts +0 -5
- package/dist/commands/feedback.js +0 -5
- package/dist/commands/fleet-capture.d.ts +0 -12
- package/dist/commands/fleet-capture.js +1 -39
- package/dist/commands/focus.d.ts +6 -94
- package/dist/commands/focus.js +13 -183
- package/dist/commands/fork.d.ts +0 -21
- package/dist/commands/fork.js +0 -45
- package/dist/commands/funnel.d.ts +0 -3
- package/dist/commands/go.d.ts +2 -71
- package/dist/commands/go.js +5 -99
- package/dist/commands/harness-hooks.d.ts +0 -41
- package/dist/commands/harness-hooks.js +0 -48
- package/dist/commands/harness-wizard.d.ts +0 -137
- package/dist/commands/harness-wizard.js +0 -109
- package/dist/commands/harness.d.ts +0 -63
- package/dist/commands/harness.js +0 -103
- package/dist/commands/hooks.d.ts +0 -9
- package/dist/commands/hooks.js +0 -26
- package/dist/commands/humans.d.ts +0 -8
- package/dist/commands/humans.js +0 -8
- package/dist/commands/import.d.ts +0 -22
- package/dist/commands/import.js +0 -79
- package/dist/commands/insights.d.ts +0 -37
- package/dist/commands/insights.js +3 -115
- package/dist/commands/inspect.d.ts +0 -117
- package/dist/commands/inspect.js +2 -448
- package/dist/commands/lease.d.ts +0 -28
- package/dist/commands/lease.js +0 -43
- package/dist/commands/logs.d.ts +0 -23
- package/dist/commands/logs.js +0 -30
- package/dist/commands/mailboxes.d.ts +0 -18
- package/dist/commands/mailboxes.js +0 -29
- package/dist/commands/mcp.d.ts +0 -9
- package/dist/commands/mcp.js +0 -53
- package/dist/commands/memory.d.ts +0 -7
- package/dist/commands/memory.js +0 -7
- package/dist/commands/menubar.d.ts +0 -8
- package/dist/commands/menubar.js +0 -24
- package/dist/commands/message.d.ts +0 -23
- package/dist/commands/message.js +0 -50
- package/dist/commands/mine.d.ts +0 -22
- package/dist/commands/mine.js +0 -21
- package/dist/commands/models.d.ts +0 -8
- package/dist/commands/models.js +0 -33
- package/dist/commands/modes.d.ts +0 -10
- package/dist/commands/modes.js +0 -13
- package/dist/commands/monitors.d.ts +0 -9
- package/dist/commands/monitors.js +3 -160
- package/dist/commands/open.d.ts +0 -26
- package/dist/commands/open.js +0 -10
- package/dist/commands/output.d.ts +0 -18
- package/dist/commands/output.js +1 -34
- package/dist/commands/packages-materialize.d.ts +0 -11
- package/dist/commands/packages-materialize.js +0 -3
- package/dist/commands/packages.d.ts +0 -10
- package/dist/commands/packages.js +0 -50
- package/dist/commands/perf.d.ts +0 -41
- package/dist/commands/perf.js +0 -55
- package/dist/commands/permissions.d.ts +0 -9
- package/dist/commands/permissions.js +0 -43
- package/dist/commands/plugins.d.ts +0 -14
- package/dist/commands/plugins.js +2 -55
- package/dist/commands/profiles.d.ts +0 -25
- package/dist/commands/profiles.js +0 -27
- package/dist/commands/projects-todo.d.ts +2 -0
- package/dist/commands/projects-todo.js +132 -0
- package/dist/commands/projects.d.ts +0 -85
- package/dist/commands/projects.js +344 -291
- package/dist/commands/prune.js +0 -30
- package/dist/commands/ps-roster.d.ts +92 -0
- package/dist/commands/ps-roster.js +744 -0
- package/dist/commands/ps.d.ts +6 -0
- package/dist/commands/ps.js +98 -0
- package/dist/commands/refresh-rules.d.ts +0 -13
- package/dist/commands/refresh-rules.js +0 -14
- package/dist/commands/reminders.d.ts +0 -7
- package/dist/commands/repo.d.ts +0 -89
- package/dist/commands/repo.js +7 -205
- package/dist/commands/resource-view.d.ts +0 -33
- package/dist/commands/resource-view.js +0 -49
- package/dist/commands/resume.d.ts +1 -19
- package/dist/commands/resume.js +0 -50
- package/dist/commands/route.d.ts +0 -10
- package/dist/commands/route.js +0 -19
- package/dist/commands/routines.d.ts +0 -42
- package/dist/commands/routines.js +5 -290
- package/dist/commands/routines.test-fixture.d.ts +0 -34
- package/dist/commands/routines.test-fixture.js +4 -100
- package/dist/commands/rules.d.ts +0 -9
- package/dist/commands/rules.js +1 -6
- package/dist/commands/run-account-picker.d.ts +0 -59
- package/dist/commands/run-account-picker.js +0 -71
- package/dist/commands/run-broadcast.d.ts +0 -9
- package/dist/commands/run-broadcast.js +0 -7
- package/dist/commands/run-cloud.d.ts +0 -15
- package/dist/commands/run-cloud.js +0 -37
- package/dist/commands/run-device-picker.d.ts +0 -25
- package/dist/commands/run-device-picker.js +1 -53
- package/dist/commands/secrets-passthrough.d.ts +0 -31
- package/dist/commands/secrets-passthrough.js +0 -10
- package/dist/commands/send.d.ts +0 -20
- package/dist/commands/send.js +14 -18
- package/dist/commands/sessions-backfill.d.ts +0 -7
- package/dist/commands/sessions-backfill.js +1 -16
- package/dist/commands/sessions-backup-setup.js +0 -11
- package/dist/commands/sessions-bookmark.d.ts +0 -8
- package/dist/commands/sessions-bookmark.js +0 -28
- package/dist/commands/sessions-browser.d.ts +2 -117
- package/dist/commands/sessions-browser.js +5 -243
- package/dist/commands/sessions-export.d.ts +1 -26
- package/dist/commands/sessions-export.js +3 -81
- package/dist/commands/sessions-import.d.ts +0 -14
- package/dist/commands/sessions-import.js +0 -59
- package/dist/commands/sessions-inject.d.ts +0 -60
- package/dist/commands/sessions-inject.js +3 -96
- package/dist/commands/sessions-migrate.d.ts +2 -37
- package/dist/commands/sessions-migrate.js +7 -159
- package/dist/commands/sessions-optimize.d.ts +0 -12
- package/dist/commands/sessions-picker-factory.d.ts +0 -7
- package/dist/commands/sessions-picker-factory.js +0 -8
- package/dist/commands/sessions-picker.d.ts +4 -103
- package/dist/commands/sessions-picker.js +13 -352
- package/dist/commands/sessions-render.d.ts +1 -2
- package/dist/commands/sessions-render.js +3 -7
- package/dist/commands/sessions-resume.d.ts +1 -24
- package/dist/commands/sessions-resume.js +2 -65
- package/dist/commands/sessions-share.d.ts +1 -9
- package/dist/commands/sessions-share.js +1 -45
- package/dist/commands/sessions-stats.d.ts +0 -24
- package/dist/commands/sessions-stats.js +0 -49
- package/dist/commands/sessions-stop.d.ts +1 -20
- package/dist/commands/sessions-stop.js +4 -9
- package/dist/commands/sessions-tail.d.ts +1 -19
- package/dist/commands/sessions-tail.js +3 -36
- package/dist/commands/sessions-trace.d.ts +5 -36
- package/dist/commands/sessions-trace.js +7 -82
- package/dist/commands/sessions.d.ts +1 -666
- package/dist/commands/sessions.js +30 -2279
- package/dist/commands/sessions.test-fixture.d.ts +0 -9
- package/dist/commands/sessions.test-fixture.js +8 -23
- package/dist/commands/setup-accounts.d.ts +0 -6
- package/dist/commands/setup-browser.d.ts +0 -23
- package/dist/commands/setup-browser.js +0 -28
- package/dist/commands/setup-computer.d.ts +0 -16
- package/dist/commands/setup-computer.js +0 -28
- package/dist/commands/setup-fleet.d.ts +0 -8
- package/dist/commands/setup-fleet.js +0 -11
- package/dist/commands/setup-mine.d.ts +0 -14
- package/dist/commands/setup-mine.js +0 -25
- package/dist/commands/setup-preferences.d.ts +0 -47
- package/dist/commands/setup-preferences.js +0 -53
- package/dist/commands/setup-secrets.d.ts +2 -24
- package/dist/commands/setup-secrets.js +0 -24
- package/dist/commands/setup-term.d.ts +0 -21
- package/dist/commands/setup-term.js +0 -21
- package/dist/commands/setup-terminal.d.ts +0 -1
- package/dist/commands/setup-terminal.js +0 -1
- package/dist/commands/setup-tools.d.ts +2 -0
- package/dist/commands/setup-tools.js +73 -0
- package/dist/commands/setup.d.ts +0 -20
- package/dist/commands/setup.js +4 -57
- package/dist/commands/skills.d.ts +0 -9
- package/dist/commands/skills.js +1 -22
- package/dist/commands/snapshot.d.ts +0 -9
- package/dist/commands/snapshot.js +0 -10
- package/dist/commands/ssh.d.ts +0 -64
- package/dist/commands/ssh.js +9 -420
- package/dist/commands/status.d.ts +0 -12
- package/dist/commands/status.js +0 -26
- package/dist/commands/subagents.d.ts +0 -8
- package/dist/commands/subagents.js +0 -31
- package/dist/commands/sync.d.ts +0 -37
- package/dist/commands/sync.js +0 -256
- package/dist/commands/teams-picker.d.ts +0 -3
- package/dist/commands/teams-picker.js +0 -34
- package/dist/commands/teams.d.ts +1 -76
- package/dist/commands/teams.js +9 -477
- package/dist/commands/tmux.d.ts +0 -25
- package/dist/commands/tmux.js +0 -46
- package/dist/commands/traces.js +0 -19
- package/dist/commands/trash.d.ts +0 -17
- package/dist/commands/trash.js +1 -11
- package/dist/commands/uninstall.d.ts +0 -9
- package/dist/commands/uninstall.js +0 -6
- package/dist/commands/update.d.ts +0 -22
- package/dist/commands/update.js +0 -44
- package/dist/commands/upgrade.d.ts +0 -1
- package/dist/commands/upgrade.js +0 -1
- package/dist/commands/utils.d.ts +0 -85
- package/dist/commands/utils.js +1 -95
- package/dist/commands/versions.d.ts +0 -16
- package/dist/commands/versions.js +0 -134
- package/dist/commands/view.d.ts +0 -90
- package/dist/commands/view.js +4 -343
- package/dist/commands/watchdog.d.ts +0 -19
- package/dist/commands/watchdog.js +3 -43
- package/dist/commands/webhook.d.ts +0 -8
- package/dist/commands/webhook.js +0 -14
- package/dist/commands/workflows.d.ts +0 -8
- package/dist/commands/workflows.js +0 -6
- package/dist/index.d.ts +0 -25
- package/dist/index.js +5 -119
- package/dist/lib/account-capabilities.d.ts +0 -34
- package/dist/lib/account-capabilities.js +0 -32
- package/dist/lib/account-catalog.d.ts +0 -128
- package/dist/lib/account-catalog.js +8 -154
- package/dist/lib/account-provider-registry.d.ts +0 -14
- package/dist/lib/account-provider-registry.js +0 -8
- package/dist/lib/account-registry.d.ts +0 -74
- package/dist/lib/account-registry.js +14 -189
- package/dist/lib/account-schema.d.ts +0 -19
- package/dist/lib/account-schema.js +0 -43
- package/dist/lib/accounting/account-launch.d.ts +0 -15
- package/dist/lib/accounting/account-launch.js +1 -3
- package/dist/lib/accounting/account-pool-collect.d.ts +0 -26
- package/dist/lib/accounting/account-pool-collect.js +0 -42
- package/dist/lib/accounting/account-pool.d.ts +0 -41
- package/dist/lib/accounting/account-pool.js +0 -17
- package/dist/lib/accounting/capacity.d.ts +0 -32
- package/dist/lib/accounting/capacity.js +0 -32
- package/dist/lib/accounting/rotate.d.ts +0 -518
- package/dist/lib/accounting/rotate.js +4 -598
- package/dist/lib/accounting/usage-ingest.d.ts +0 -1
- package/dist/lib/accounting/usage-ingest.js +0 -44
- package/dist/lib/accounting/usage-sync.d.ts +0 -60
- package/dist/lib/accounting/usage-sync.js +4 -51
- package/dist/lib/accounting/usage.d.ts +0 -632
- package/dist/lib/accounting/usage.js +14 -1055
- package/dist/lib/accounts/add.d.ts +0 -60
- package/dist/lib/accounts/add.js +0 -127
- package/dist/lib/accounts/auth-operation-lock.d.ts +0 -1
- package/dist/lib/accounts/auth-operation-lock.js +0 -4
- package/dist/lib/accounts/migrate.d.ts +0 -9
- package/dist/lib/accounts/migrate.js +3 -42
- package/dist/lib/accounts/slots.d.ts +0 -25
- package/dist/lib/accounts/slots.js +1 -49
- package/dist/lib/acp/client.d.ts +0 -16
- package/dist/lib/acp/client.js +0 -29
- package/dist/lib/acp/harnesses.d.ts +0 -15
- package/dist/lib/acp/harnesses.js +0 -16
- package/dist/lib/acp/run.d.ts +0 -8
- package/dist/lib/acp/run.js +0 -8
- package/dist/lib/actor.d.ts +1 -71
- package/dist/lib/actor.js +1 -99
- package/dist/lib/add-dir.d.ts +0 -46
- package/dist/lib/add-dir.js +1 -70
- package/dist/lib/address.d.ts +0 -17
- package/dist/lib/address.js +0 -15
- package/dist/lib/agent-cli-commands.d.ts +0 -10
- package/dist/lib/agent-cli-commands.js +0 -10
- package/dist/lib/agent-modes.d.ts +0 -29
- package/dist/lib/agent-modes.js +0 -31
- package/dist/lib/agent-spec/agents.d.ts +0 -426
- package/dist/lib/agent-spec/agents.js +37 -924
- package/dist/lib/agent-spec/index.d.ts +0 -5
- package/dist/lib/agent-spec/index.js +0 -14
- package/dist/lib/agent-spec/materialize.d.ts +0 -10
- package/dist/lib/agent-spec/materialize.js +2 -139
- package/dist/lib/agent-spec/package-resolve.d.ts +0 -8
- package/dist/lib/agent-spec/package-resolve.js +1 -44
- package/dist/lib/agent-spec/package-schema.d.ts +0 -2
- package/dist/lib/agent-spec/package-schema.js +0 -11
- package/dist/lib/agent-spec/package-types.d.ts +0 -27
- package/dist/lib/agent-spec/package-types.js +0 -1
- package/dist/lib/agent-spec/primitives.d.ts +0 -18
- package/dist/lib/agent-spec/primitives.js +0 -27
- package/dist/lib/agent-spec/provider.js +0 -2
- package/dist/lib/agent-spec/resolve.d.ts +0 -23
- package/dist/lib/agent-spec/resolve.js +0 -41
- package/dist/lib/agent-spec/types.d.ts +0 -34
- package/dist/lib/agent-spec/types.js +0 -6
- package/dist/lib/agents.d.ts +0 -1
- package/dist/lib/agents.js +0 -1
- package/dist/lib/analytics/mix-commands.d.ts +0 -23
- package/dist/lib/analytics/mix-commands.js +0 -26
- package/dist/lib/analytics/recipes.d.ts +0 -1
- package/dist/lib/analytics/recipes.js +5 -10
- package/dist/lib/analytics/usage-db.js +4 -6
- package/dist/lib/answer-router.d.ts +0 -61
- package/dist/lib/answer-router.js +0 -57
- package/dist/lib/app-bundle-install.d.ts +0 -13
- package/dist/lib/app-bundle-install.js +0 -50
- package/dist/lib/artifact-actions.d.ts +0 -15
- package/dist/lib/artifact-actions.js +0 -18
- package/dist/lib/artifacts-client.d.ts +0 -10
- package/dist/lib/artifacts-client.js +0 -17
- package/dist/lib/ask-classifier.d.ts +0 -38
- package/dist/lib/ask-classifier.js +0 -27
- package/dist/lib/audit/log.d.ts +0 -47
- package/dist/lib/audit/log.js +1 -59
- package/dist/lib/auth-health.d.ts +0 -213
- package/dist/lib/auth-health.js +16 -266
- package/dist/lib/auth-mint.d.ts +0 -83
- package/dist/lib/auth-mint.js +8 -85
- package/dist/lib/auto-pull-worker.d.ts +0 -10
- package/dist/lib/auto-pull-worker.js +3 -48
- package/dist/lib/auto-pull.d.ts +0 -64
- package/dist/lib/auto-pull.js +0 -79
- package/dist/lib/beta.d.ts +0 -9
- package/dist/lib/beta.js +0 -9
- package/dist/lib/binary-shadow.d.ts +0 -22
- package/dist/lib/binary-shadow.js +4 -34
- package/dist/lib/boot-profile.d.ts +0 -10
- package/dist/lib/boot-profile.js +1 -31
- package/dist/lib/brand.d.ts +0 -20
- package/dist/lib/brand.js +0 -50
- package/dist/lib/browser/context.d.ts +0 -54
- package/dist/lib/browser/context.js +0 -49
- package/dist/lib/browser/paths.d.ts +0 -21
- package/dist/lib/browser/paths.js +0 -26
- package/dist/lib/browser/record.d.ts +0 -34
- package/dist/lib/browser/record.js +0 -38
- package/dist/lib/browser/sessions-list.d.ts +1 -79
- package/dist/lib/browser/sessions-list.js +2 -98
- package/dist/lib/browser-client.d.ts +0 -112
- package/dist/lib/browser-client.js +1 -90
- package/dist/lib/budget/config.d.ts +0 -6
- package/dist/lib/budget/config.js +0 -29
- package/dist/lib/budget/enforce.d.ts +0 -50
- package/dist/lib/budget/enforce.js +0 -27
- package/dist/lib/budget/ledger.d.ts +0 -23
- package/dist/lib/budget/ledger.js +0 -28
- package/dist/lib/budget/live-cloud.d.ts +0 -26
- package/dist/lib/budget/live-cloud.js +0 -12
- package/dist/lib/budget/live-team.d.ts +0 -17
- package/dist/lib/budget/live-team.js +1 -35
- package/dist/lib/budget/preflight.d.ts +0 -51
- package/dist/lib/budget/preflight.js +0 -36
- package/dist/lib/byok-usage.d.ts +0 -20
- package/dist/lib/byok-usage.js +1 -24
- package/dist/lib/capabilities.d.ts +0 -24
- package/dist/lib/capabilities.js +0 -29
- package/dist/lib/catchup.d.ts +0 -87
- package/dist/lib/catchup.js +1 -81
- package/dist/lib/channels/owner-forward.d.ts +0 -70
- package/dist/lib/channels/owner-forward.js +1 -43
- package/dist/lib/channels/owner-sink.js +0 -21
- package/dist/lib/channels/providers/desktop.d.ts +0 -37
- package/dist/lib/channels/providers/desktop.js +0 -72
- package/dist/lib/channels/providers/index.d.ts +0 -1
- package/dist/lib/channels/providers/index.js +2 -6
- package/dist/lib/channels/providers/mailbox.js +0 -7
- package/dist/lib/channels/providers/openclaw-telegram.js +0 -8
- package/dist/lib/channels/providers/rush.d.ts +0 -2
- package/dist/lib/channels/providers/rush.js +0 -26
- package/dist/lib/channels/providers/session.d.ts +2 -0
- package/dist/lib/channels/providers/session.js +26 -0
- package/dist/lib/channels/registry.d.ts +0 -27
- package/dist/lib/channels/registry.js +0 -10
- package/dist/lib/channels/resolve.d.ts +0 -19
- package/dist/lib/channels/resolve.js +0 -2
- package/dist/lib/channels/send.d.ts +0 -50
- package/dist/lib/channels/send.js +0 -25
- package/dist/lib/checkpoint.d.ts +0 -36
- package/dist/lib/checkpoint.js +0 -28
- package/dist/lib/claude-account-token.d.ts +0 -98
- package/dist/lib/claude-account-token.js +7 -169
- package/dist/lib/claude-statusline.d.ts +0 -41
- package/dist/lib/claude-statusline.js +0 -68
- package/dist/lib/cli-entry.d.ts +0 -26
- package/dist/lib/cli-entry.js +1 -61
- package/dist/lib/cli-resources.d.ts +31 -89
- package/dist/lib/cli-resources.js +116 -152
- package/dist/lib/cloud/antigravity.d.ts +0 -29
- package/dist/lib/cloud/antigravity.js +0 -36
- package/dist/lib/cloud/codex.d.ts +0 -8
- package/dist/lib/cloud/codex.js +0 -41
- package/dist/lib/cloud/cursor.d.ts +0 -5
- package/dist/lib/cloud/cursor.js +2 -7
- package/dist/lib/cloud/dispatch.d.ts +0 -13
- package/dist/lib/cloud/dispatch.js +1 -48
- package/dist/lib/cloud/factory.d.ts +0 -52
- package/dist/lib/cloud/factory.js +3 -67
- package/dist/lib/cloud/host.d.ts +0 -39
- package/dist/lib/cloud/host.js +5 -48
- package/dist/lib/cloud/registry.d.ts +0 -25
- package/dist/lib/cloud/registry.js +0 -29
- package/dist/lib/cloud/rush.d.ts +0 -47
- package/dist/lib/cloud/rush.js +1 -82
- package/dist/lib/cloud/session-index.d.ts +0 -27
- package/dist/lib/cloud/session-index.js +1 -32
- package/dist/lib/cloud/store.d.ts +0 -18
- package/dist/lib/cloud/store.js +0 -28
- package/dist/lib/cloud/stream.d.ts +0 -14
- package/dist/lib/cloud/stream.js +0 -25
- package/dist/lib/cloud/types.d.ts +0 -168
- package/dist/lib/cloud/types.js +0 -46
- package/dist/lib/cloudflare/creds.d.ts +0 -2
- package/dist/lib/cloudflare/creds.js +0 -14
- package/dist/lib/cloudflare/provision.d.ts +0 -8
- package/dist/lib/cloudflare/provision.js +1 -19
- package/dist/lib/codex-home.d.ts +0 -60
- package/dist/lib/codex-home.js +2 -72
- package/dist/lib/codex-policy.d.ts +0 -10
- package/dist/lib/codex-policy.js +0 -13
- package/dist/lib/command-skills.d.ts +0 -10
- package/dist/lib/command-skills.js +0 -10
- package/dist/lib/commands.d.ts +0 -74
- package/dist/lib/commands.js +0 -112
- package/dist/lib/comms-render.d.ts +0 -5
- package/dist/lib/comms-render.js +0 -5
- package/dist/lib/computer/context.d.ts +0 -23
- package/dist/lib/computer/context.js +0 -14
- package/dist/lib/computer/policy.d.ts +0 -20
- package/dist/lib/computer/policy.js +0 -53
- package/dist/lib/computer/record.d.ts +0 -33
- package/dist/lib/computer/record.js +1 -48
- package/dist/lib/computer/sessions-list.d.ts +1 -128
- package/dist/lib/computer/sessions-list.js +6 -165
- package/dist/lib/computer-client.d.ts +0 -106
- package/dist/lib/computer-client.js +5 -86
- package/dist/lib/concurrency.d.ts +0 -14
- package/dist/lib/concurrency.js +0 -3
- package/dist/lib/config-drift.d.ts +0 -31
- package/dist/lib/config-drift.js +0 -32
- package/dist/lib/config-keys.d.ts +1 -65
- package/dist/lib/config-keys.js +6 -52
- package/dist/lib/config-transfer.d.ts +0 -14
- package/dist/lib/config-transfer.js +0 -26
- package/dist/lib/convert.d.ts +0 -17
- package/dist/lib/convert.js +0 -18
- package/dist/lib/crabbox/cli.d.ts +0 -156
- package/dist/lib/crabbox/cli.js +1 -188
- package/dist/lib/crabbox/config.d.ts +0 -18
- package/dist/lib/crabbox/config.js +1 -19
- package/dist/lib/crabbox/lease.d.ts +0 -93
- package/dist/lib/crabbox/lease.js +4 -148
- package/dist/lib/crabbox/progress.d.ts +0 -56
- package/dist/lib/crabbox/progress.js +2 -49
- package/dist/lib/crabbox/runtimes.d.ts +0 -94
- package/dist/lib/crabbox/runtimes.js +1 -111
- package/dist/lib/crabbox/setup-copy.d.ts +0 -64
- package/dist/lib/crabbox/setup-copy.js +1 -53
- package/dist/lib/daemon/account-state-daemon-service.d.ts +0 -48
- package/dist/lib/daemon/account-state-daemon-service.js +2 -63
- package/dist/lib/daemon/attention-notify-service.d.ts +0 -12
- package/dist/lib/daemon/attention-notify-service.js +1 -24
- package/dist/lib/daemon/auth-sync-service.d.ts +0 -28
- package/dist/lib/daemon/auth-sync-service.js +0 -56
- package/dist/lib/daemon/catchup-service.d.ts +0 -34
- package/dist/lib/daemon/catchup-service.js +0 -30
- package/dist/lib/daemon/daemon.d.ts +0 -374
- package/dist/lib/daemon/daemon.js +44 -1049
- package/dist/lib/daemon/daemon.test-fixture.d.ts +0 -19
- package/dist/lib/daemon/daemon.test-fixture.js +1 -24
- package/dist/lib/daemon/device-probe-service.d.ts +0 -16
- package/dist/lib/daemon/device-probe-service.js +0 -20
- package/dist/lib/daemon/feed-stream-service.d.ts +0 -15
- package/dist/lib/daemon/feed-stream-service.js +0 -20
- package/dist/lib/daemon/harness-update-service.d.ts +2 -61
- package/dist/lib/daemon/harness-update-service.js +6 -86
- package/dist/lib/daemon/heartbeat-service.d.ts +0 -1
- package/dist/lib/daemon/heartbeat-service.js +0 -1
- package/dist/lib/daemon/leaked-daemons.d.ts +0 -46
- package/dist/lib/daemon/leaked-daemons.js +2 -78
- package/dist/lib/daemon/monitor-engine-service.d.ts +0 -13
- package/dist/lib/daemon/monitor-engine-service.js +3 -15
- package/dist/lib/daemon/runner.d.ts +0 -194
- package/dist/lib/daemon/runner.js +39 -760
- package/dist/lib/daemon/self-heal-service.d.ts +18 -17
- package/dist/lib/daemon/self-heal-service.js +83 -37
- package/dist/lib/daemon/self-update-service.d.ts +1 -131
- package/dist/lib/daemon/self-update-service.js +26 -189
- package/dist/lib/daemon/service.d.ts +0 -73
- package/dist/lib/daemon/service.js +0 -34
- package/dist/lib/daemon/session-index-service.d.ts +0 -12
- package/dist/lib/daemon/session-index-service.js +0 -23
- package/dist/lib/daemon/session-state-service.d.ts +0 -8
- package/dist/lib/daemon/session-state-service.js +0 -8
- package/dist/lib/daemon/session-summarizer-service.d.ts +0 -14
- package/dist/lib/daemon/session-summarizer-service.js +1 -19
- package/dist/lib/daemon/session-title-service.d.ts +0 -25
- package/dist/lib/daemon/session-title-service.js +0 -32
- package/dist/lib/daemon/state-dir-check-service.d.ts +0 -24
- package/dist/lib/daemon/state-dir-check-service.js +0 -29
- package/dist/lib/daemon/supervisor.d.ts +0 -112
- package/dist/lib/daemon/supervisor.js +4 -147
- package/dist/lib/daemon/testdata/process-view-daemon.js +0 -2
- package/dist/lib/daemon/testdata/process-view-start.js +0 -5
- package/dist/lib/daemon/tmux-reap-service.d.ts +0 -1
- package/dist/lib/daemon/tmux-reap-service.js +0 -1
- package/dist/lib/daemon/usage-sync-service.d.ts +0 -23
- package/dist/lib/daemon/usage-sync-service.js +0 -26
- package/dist/lib/daemon/watchdog-service.d.ts +0 -9
- package/dist/lib/daemon/watchdog-service.js +0 -13
- package/dist/lib/daemon/webhook-receiver-service.d.ts +0 -1
- package/dist/lib/daemon/webhook-receiver-service.js +0 -1
- package/dist/lib/daemon-health.d.ts +0 -55
- package/dist/lib/daemon-health.js +4 -77
- package/dist/lib/daemon-services.d.ts +0 -36
- package/dist/lib/daemon-services.js +0 -45
- package/dist/lib/daemon-ticks.d.ts +0 -126
- package/dist/lib/daemon-ticks.js +1 -156
- package/dist/lib/daemon-webhooks.d.ts +0 -57
- package/dist/lib/daemon-webhooks.js +2 -54
- package/dist/lib/deeplink/register.d.ts +0 -15
- package/dist/lib/deeplink/register.js +0 -60
- package/dist/lib/deeplink/url.d.ts +0 -24
- package/dist/lib/deeplink/url.js +1 -33
- package/dist/lib/device-config.d.ts +1 -192
- package/dist/lib/device-config.js +86 -240
- package/dist/lib/devices/config-migration.d.ts +0 -43
- package/dist/lib/devices/config-migration.js +7 -127
- package/dist/lib/devices/connect.d.ts +0 -168
- package/dist/lib/devices/connect.js +6 -254
- package/dist/lib/devices/device-docs.d.ts +0 -24
- package/dist/lib/devices/device-docs.js +0 -46
- package/dist/lib/devices/discovery-policy.d.ts +0 -30
- package/dist/lib/devices/discovery-policy.js +3 -34
- package/dist/lib/devices/doctor-findings.d.ts +0 -109
- package/dist/lib/devices/doctor-findings.js +30 -326
- package/dist/lib/devices/doctor-overview-cache.d.ts +0 -33
- package/dist/lib/devices/doctor-overview-cache.js +0 -81
- package/dist/lib/devices/fleet-divergence.d.ts +0 -89
- package/dist/lib/devices/fleet-divergence.js +1 -60
- package/dist/lib/devices/fleet-inventory.d.ts +0 -27
- package/dist/lib/devices/fleet-inventory.js +0 -38
- package/dist/lib/devices/fleet.d.ts +0 -95
- package/dist/lib/devices/fleet.js +0 -79
- package/dist/lib/devices/harness-inventory.d.ts +0 -75
- package/dist/lib/devices/harness-inventory.js +0 -101
- package/dist/lib/devices/health-report.d.ts +0 -37
- package/dist/lib/devices/health-report.js +0 -73
- package/dist/lib/devices/health.d.ts +0 -71
- package/dist/lib/devices/health.js +2 -82
- package/dist/lib/devices/interactive-host.d.ts +0 -10
- package/dist/lib/devices/interactive-host.js +0 -34
- package/dist/lib/devices/known-hosts.d.ts +0 -45
- package/dist/lib/devices/known-hosts.js +0 -77
- package/dist/lib/devices/pending.d.ts +0 -31
- package/dist/lib/devices/pending.js +7 -67
- package/dist/lib/devices/pool.d.ts +0 -36
- package/dist/lib/devices/pool.js +0 -30
- package/dist/lib/devices/reachability.d.ts +0 -25
- package/dist/lib/devices/reachability.js +0 -14
- package/dist/lib/devices/registry.d.ts +0 -141
- package/dist/lib/devices/registry.js +4 -151
- package/dist/lib/devices/resolve-profile.d.ts +0 -18
- package/dist/lib/devices/resolve-profile.js +0 -18
- package/dist/lib/devices/resolve-target.d.ts +0 -20
- package/dist/lib/devices/resolve-target.js +1 -51
- package/dist/lib/devices/rollout-verify.d.ts +1 -81
- package/dist/lib/devices/rollout-verify.js +0 -77
- package/dist/lib/devices/self-host.d.ts +0 -7
- package/dist/lib/devices/self-host.js +1 -29
- package/dist/lib/devices/ssh-config.d.ts +0 -18
- package/dist/lib/devices/ssh-config.js +0 -9
- package/dist/lib/devices/stats-cache.d.ts +0 -48
- package/dist/lib/devices/stats-cache.js +0 -80
- package/dist/lib/devices/sync.d.ts +0 -97
- package/dist/lib/devices/sync.js +0 -88
- package/dist/lib/devices/tailscale.d.ts +0 -18
- package/dist/lib/devices/tailscale.js +1 -38
- package/dist/lib/devices/terminfo.d.ts +0 -27
- package/dist/lib/devices/terminfo.js +2 -64
- package/dist/lib/devices/worker-pick.d.ts +0 -15
- package/dist/lib/devices/worker-pick.js +0 -48
- package/dist/lib/diff-text.d.ts +0 -18
- package/dist/lib/diff-text.js +0 -15
- package/dist/lib/doctor-diff.d.ts +0 -79
- package/dist/lib/doctor-diff.js +2 -181
- package/dist/lib/drift-sync.d.ts +0 -29
- package/dist/lib/drift-sync.js +0 -40
- package/dist/lib/drift.d.ts +0 -43
- package/dist/lib/drift.js +0 -31
- package/dist/lib/event-families.d.ts +0 -17
- package/dist/lib/event-families.js +0 -33
- package/dist/lib/event-provenance.d.ts +0 -4
- package/dist/lib/event-provenance.js +0 -5
- package/dist/lib/event-stream.d.ts +0 -29
- package/dist/lib/event-stream.js +0 -36
- package/dist/lib/events-ingest.d.ts +0 -27
- package/dist/lib/events-ingest.js +0 -54
- package/dist/lib/exec-account-home.d.ts +0 -24
- package/dist/lib/exec-account-home.js +0 -41
- package/dist/lib/exec-bounded.d.ts +1 -37
- package/dist/lib/exec-bounded.js +10 -46
- package/dist/lib/exec.d.ts +3 -583
- package/dist/lib/exec.js +18 -1025
- package/dist/lib/factory/snapshot.js +1 -15
- package/dist/lib/feed/activity-stream.d.ts +0 -27
- package/dist/lib/feed/activity-stream.js +4 -80
- package/dist/lib/feed/activity.d.ts +1 -243
- package/dist/lib/feed/activity.js +8 -273
- package/dist/lib/feed/answer.d.ts +0 -103
- package/dist/lib/feed/answer.js +0 -267
- package/dist/lib/feed/attention.d.ts +0 -56
- package/dist/lib/feed/attention.js +0 -161
- package/dist/lib/feed/envelope.d.ts +2 -17
- package/dist/lib/feed/envelope.js +0 -14
- package/dist/lib/feed/events.d.ts +0 -118
- package/dist/lib/feed/events.js +13 -213
- package/dist/lib/feed/feed.d.ts +1 -250
- package/dist/lib/feed/feed.js +24 -334
- package/dist/lib/feed/hub-server.d.ts +0 -100
- package/dist/lib/feed/hub-server.js +1 -191
- package/dist/lib/feed/hub.d.ts +0 -53
- package/dist/lib/feed/hub.js +0 -89
- package/dist/lib/feed/pr-status.d.ts +1 -19
- package/dist/lib/feed/pr-status.js +0 -18
- package/dist/lib/feed/tool-activity.d.ts +0 -59
- package/dist/lib/feed/tool-activity.js +1 -119
- package/dist/lib/feed/tools.d.ts +0 -100
- package/dist/lib/feed/tools.js +0 -89
- package/dist/lib/feed/watch.d.ts +0 -33
- package/dist/lib/feed/watch.js +2 -94
- package/dist/lib/feed-broadcast.d.ts +0 -148
- package/dist/lib/feed-broadcast.js +1 -283
- package/dist/lib/feed-outcome.d.ts +0 -50
- package/dist/lib/feed-outcome.js +1 -67
- package/dist/lib/feed-policy.d.ts +0 -6
- package/dist/lib/feed-policy.js +1 -27
- package/dist/lib/feed-post.d.ts +0 -61
- package/dist/lib/feed-post.js +4 -61
- package/dist/lib/feed-ranking.d.ts +1 -1
- package/dist/lib/fleet/apply.d.ts +0 -64
- package/dist/lib/fleet/apply.js +0 -125
- package/dist/lib/fleet/auth-sync.d.ts +0 -48
- package/dist/lib/fleet/auth-sync.js +4 -49
- package/dist/lib/fleet/capture.d.ts +0 -26
- package/dist/lib/fleet/capture.js +1 -36
- package/dist/lib/fleet/manifest.d.ts +0 -38
- package/dist/lib/fleet/manifest.js +0 -40
- package/dist/lib/fleet/types.d.ts +1 -138
- package/dist/lib/fleet/types.js +0 -12
- package/dist/lib/fleet-cache.d.ts +0 -12
- package/dist/lib/fleet-cache.js +0 -24
- package/dist/lib/fleet-shared-state.d.ts +6 -59
- package/dist/lib/fleet-shared-state.js +5 -51
- package/dist/lib/fleet-status.d.ts +0 -27
- package/dist/lib/fleet-status.js +0 -48
- package/dist/lib/format.d.ts +0 -74
- package/dist/lib/format.js +3 -77
- package/dist/lib/friction-heuristics.d.ts +0 -20
- package/dist/lib/friction-heuristics.js +0 -8
- package/dist/lib/fs-atomic.d.ts +0 -51
- package/dist/lib/fs-atomic.js +8 -66
- package/dist/lib/fs-walk.d.ts +0 -13
- package/dist/lib/fs-walk.js +0 -22
- package/dist/lib/fuzzy.d.ts +0 -29
- package/dist/lib/fuzzy.js +0 -31
- package/dist/lib/gemini-settings.js +0 -12
- package/dist/lib/git.d.ts +0 -366
- package/dist/lib/git.js +7 -574
- package/dist/lib/github/ci-failure.d.ts +30 -0
- package/dist/lib/github/ci-failure.js +95 -0
- package/dist/lib/github/gh-overload.d.ts +0 -38
- package/dist/lib/github/gh-overload.js +3 -55
- package/dist/lib/github/pr-mergeable.d.ts +3 -34
- package/dist/lib/github/pr-mergeable.js +2 -42
- package/dist/lib/github/pr-verdict.d.ts +0 -44
- package/dist/lib/github/pr-verdict.js +0 -36
- package/dist/lib/github/project-prs.d.ts +135 -105
- package/dist/lib/github/project-prs.js +530 -170
- package/dist/lib/github/release-drift.d.ts +45 -0
- package/dist/lib/github/release-drift.js +91 -0
- package/dist/lib/github/rest.d.ts +0 -50
- package/dist/lib/github/rest.js +0 -49
- package/dist/lib/github/viewer.d.ts +27 -0
- package/dist/lib/github/viewer.js +101 -0
- package/dist/lib/goose-commands.d.ts +0 -29
- package/dist/lib/goose-commands.js +3 -48
- package/dist/lib/harness/adapter.d.ts +0 -151
- package/dist/lib/harness/adapter.js +0 -41
- package/dist/lib/harness/adapters/claude.d.ts +0 -8
- package/dist/lib/harness/adapters/claude.js +0 -89
- package/dist/lib/harness/adapters/codex.js +0 -18
- package/dist/lib/harness/adapters/copilot.js +0 -3
- package/dist/lib/harness/adapters/cursor.js +0 -16
- package/dist/lib/harness/adapters/droid.js +0 -3
- package/dist/lib/harness/adapters/kimi.js +0 -19
- package/dist/lib/harness/adapters/muse.js +0 -9
- package/dist/lib/harness/adapters/opencode.js +0 -2
- package/dist/lib/harness/exec-config-version.d.ts +0 -2
- package/dist/lib/harness/exec-config-version.js +0 -13
- package/dist/lib/harness/index.js +0 -10
- package/dist/lib/harness-auth-capabilities.d.ts +0 -26
- package/dist/lib/harness-auth-capabilities.js +0 -18
- package/dist/lib/harness-connection-test.d.ts +0 -27
- package/dist/lib/harness-connection-test.js +2 -20
- package/dist/lib/heal.d.ts +0 -45
- package/dist/lib/heal.js +2 -82
- package/dist/lib/help.d.ts +0 -32
- package/dist/lib/help.js +0 -41
- package/dist/lib/helper-download.d.ts +0 -85
- package/dist/lib/helper-download.js +0 -95
- package/dist/lib/helper-versions.d.ts +0 -51
- package/dist/lib/helper-versions.js +1 -45
- package/dist/lib/hooks/cache.d.ts +0 -40
- package/dist/lib/hooks/cache.js +8 -122
- package/dist/lib/hooks/install.d.ts +0 -253
- package/dist/lib/hooks/install.js +49 -822
- package/dist/lib/hooks/match.d.ts +0 -24
- package/dist/lib/hooks/match.js +0 -31
- package/dist/lib/hooks/profile.d.ts +0 -21
- package/dist/lib/hooks/profile.js +0 -28
- package/dist/lib/hosts/credential-transport.d.ts +0 -6
- package/dist/lib/hosts/credential-transport.js +0 -17
- package/dist/lib/hosts/credentials.d.ts +0 -35
- package/dist/lib/hosts/credentials.js +0 -38
- package/dist/lib/hosts/dispatch.d.ts +0 -140
- package/dist/lib/hosts/dispatch.js +0 -176
- package/dist/lib/hosts/logs.d.ts +0 -25
- package/dist/lib/hosts/logs.js +1 -51
- package/dist/lib/hosts/option.d.ts +0 -12
- package/dist/lib/hosts/option.js +0 -12
- package/dist/lib/hosts/passthrough.d.ts +0 -129
- package/dist/lib/hosts/passthrough.js +12 -249
- package/dist/lib/hosts/progress.d.ts +0 -90
- package/dist/lib/hosts/progress.js +5 -115
- package/dist/lib/hosts/providers/devices.d.ts +0 -19
- package/dist/lib/hosts/providers/devices.js +1 -34
- package/dist/lib/hosts/providers/local.d.ts +0 -14
- package/dist/lib/hosts/providers/local.js +0 -22
- package/dist/lib/hosts/ready.d.ts +0 -99
- package/dist/lib/hosts/ready.js +0 -101
- package/dist/lib/hosts/reconcile.d.ts +0 -38
- package/dist/lib/hosts/reconcile.js +1 -50
- package/dist/lib/hosts/reconnect.d.ts +0 -75
- package/dist/lib/hosts/reconnect.js +0 -98
- package/dist/lib/hosts/registry.d.ts +0 -74
- package/dist/lib/hosts/registry.js +0 -110
- package/dist/lib/hosts/remote-cmd.d.ts +1 -228
- package/dist/lib/hosts/remote-cmd.js +19 -294
- package/dist/lib/hosts/remote-cmd.test-fixture.d.ts +0 -1
- package/dist/lib/hosts/remote-cmd.test-fixture.js +0 -12
- package/dist/lib/hosts/remote-os.d.ts +0 -19
- package/dist/lib/hosts/remote-os.js +0 -22
- package/dist/lib/hosts/remote-session-id.d.ts +0 -22
- package/dist/lib/hosts/remote-session-id.js +0 -24
- package/dist/lib/hosts/routing-flag.d.ts +0 -21
- package/dist/lib/hosts/routing-flag.js +0 -21
- package/dist/lib/hosts/run-target.d.ts +0 -53
- package/dist/lib/hosts/run-target.js +0 -56
- package/dist/lib/hosts/session-index.d.ts +1 -53
- package/dist/lib/hosts/session-index.js +2 -59
- package/dist/lib/hosts/session-marker.d.ts +0 -31
- package/dist/lib/hosts/session-marker.js +0 -32
- package/dist/lib/hosts/ssh-config.d.ts +0 -25
- package/dist/lib/hosts/ssh-config.js +1 -32
- package/dist/lib/hosts/tasks.d.ts +0 -54
- package/dist/lib/hosts/tasks.js +0 -35
- package/dist/lib/hosts/types.d.ts +0 -39
- package/dist/lib/hosts/types.js +0 -22
- package/dist/lib/humans.d.ts +0 -21
- package/dist/lib/humans.js +0 -30
- package/dist/lib/identity/client.d.ts +1 -35
- package/dist/lib/identity/client.js +3 -29
- package/dist/lib/identity/index.d.ts +3 -27
- package/dist/lib/identity/index.js +8 -24
- package/dist/lib/import.d.ts +0 -104
- package/dist/lib/import.js +1 -137
- package/dist/lib/installations/active-check.d.ts +0 -53
- package/dist/lib/installations/active-check.js +0 -49
- package/dist/lib/installations/index.d.ts +0 -9
- package/dist/lib/installations/index.js +0 -9
- package/dist/lib/installations/installation-lock.js +0 -8
- package/dist/lib/installations/launch-gate.d.ts +0 -56
- package/dist/lib/installations/launch-gate.js +0 -83
- package/dist/lib/installations/migrate.d.ts +0 -100
- package/dist/lib/installations/migrate.js +105 -572
- package/dist/lib/installations/native-command.d.ts +0 -1
- package/dist/lib/installations/native-command.js +0 -6
- package/dist/lib/installations/resolve.d.ts +0 -24
- package/dist/lib/installations/resolve.js +0 -24
- package/dist/lib/installations/shims.d.ts +0 -395
- package/dist/lib/installations/shims.js +30 -957
- package/dist/lib/installations/store.d.ts +0 -199
- package/dist/lib/installations/store.js +1 -297
- package/dist/lib/installations/strategies.d.ts +0 -44
- package/dist/lib/installations/strategies.js +0 -87
- package/dist/lib/installations/types.d.ts +1 -67
- package/dist/lib/installations/types.js +0 -6
- package/dist/lib/installations/update-cancellation.d.ts +0 -74
- package/dist/lib/installations/update-cancellation.js +0 -74
- package/dist/lib/installations/update-policy.d.ts +0 -57
- package/dist/lib/installations/update-policy.js +0 -62
- package/dist/lib/installations/update-runtime.d.ts +0 -88
- package/dist/lib/installations/update-runtime.js +1 -127
- package/dist/lib/installations/update.d.ts +0 -53
- package/dist/lib/installations/update.js +0 -95
- package/dist/lib/installations/versions.d.ts +0 -310
- package/dist/lib/installations/versions.js +14 -837
- package/dist/lib/isolation-boundary-report.d.ts +0 -7
- package/dist/lib/isolation-boundary-report.js +0 -7
- package/dist/lib/launch-identity.d.ts +0 -8
- package/dist/lib/launch-identity.js +0 -8
- package/dist/lib/linear-autoclose.d.ts +0 -25
- package/dist/lib/linear-autoclose.js +0 -19
- package/dist/lib/linear-cache.d.ts +0 -57
- package/dist/lib/linear-cache.js +1 -81
- package/dist/lib/linear-project-counts.d.ts +0 -83
- package/dist/lib/linear-project-counts.js +2 -64
- package/dist/lib/linear-projects.d.ts +0 -62
- package/dist/lib/linear-projects.js +0 -85
- package/dist/lib/linear-rate-limit.d.ts +0 -21
- package/dist/lib/linear-rate-limit.js +1 -93
- package/dist/lib/linux-userns.d.ts +1 -42
- package/dist/lib/linux-userns.js +0 -47
- package/dist/lib/lock-compromise.d.ts +0 -7
- package/dist/lib/lock-compromise.js +0 -7
- package/dist/lib/log-follow.d.ts +0 -2
- package/dist/lib/log-follow.js +5 -15
- package/dist/lib/loop.d.ts +0 -106
- package/dist/lib/loop.js +0 -135
- package/dist/lib/machine-id.d.ts +0 -19
- package/dist/lib/machine-id.js +0 -19
- package/dist/lib/mailbox-gc.d.ts +0 -7
- package/dist/lib/mailbox-gc.js +0 -25
- package/dist/lib/mailbox-target.d.ts +0 -31
- package/dist/lib/mailbox-target.js +0 -27
- package/dist/lib/mailbox.d.ts +0 -77
- package/dist/lib/mailbox.js +5 -105
- package/dist/lib/manifest.d.ts +0 -4
- package/dist/lib/manifest.js +0 -36
- package/dist/lib/markdown.d.ts +0 -3
- package/dist/lib/markdown.js +0 -9
- package/dist/lib/mcp-registry.d.ts +1 -50
- package/dist/lib/mcp-registry.js +0 -64
- package/dist/lib/mcp.d.ts +0 -115
- package/dist/lib/mcp.js +3 -199
- package/dist/lib/memory-cache.d.ts +0 -11
- package/dist/lib/memory-cache.js +0 -9
- package/dist/lib/memory.d.ts +0 -52
- package/dist/lib/memory.js +12 -74
- package/dist/lib/menubar/download-menubar.d.ts +0 -35
- package/dist/lib/menubar/download-menubar.js +0 -38
- package/dist/lib/menubar/install-menubar.d.ts +0 -405
- package/dist/lib/menubar/install-menubar.js +25 -667
- package/dist/lib/menubar/migrate-prefs.d.ts +0 -47
- package/dist/lib/menubar/migrate-prefs.js +1 -70
- package/dist/lib/menubar/notify-desktop.d.ts +0 -82
- package/dist/lib/menubar/notify-desktop.js +0 -68
- package/dist/lib/menubar/resolve-version.d.ts +0 -41
- package/dist/lib/menubar/resolve-version.js +2 -44
- package/dist/lib/menubar/snapshot.d.ts +13 -66
- package/dist/lib/menubar/snapshot.js +45 -39
- package/dist/lib/merged-resources.d.ts +0 -10
- package/dist/lib/merged-resources.js +0 -10
- package/dist/lib/migrate-fold.d.ts +0 -31
- package/dist/lib/migrate-fold.js +6 -38
- package/dist/lib/model-tier-overrides.d.ts +0 -30
- package/dist/lib/model-tier-overrides.js +0 -14
- package/dist/lib/model-tiers.d.ts +0 -43
- package/dist/lib/model-tiers.js +5 -78
- package/dist/lib/models.d.ts +0 -145
- package/dist/lib/models.js +3 -333
- package/dist/lib/monitors/config.d.ts +0 -187
- package/dist/lib/monitors/config.js +4 -101
- package/dist/lib/monitors/dispatch.d.ts +0 -22
- package/dist/lib/monitors/dispatch.js +0 -35
- package/dist/lib/monitors/engine.d.ts +1 -53
- package/dist/lib/monitors/engine.js +17 -106
- package/dist/lib/monitors/fingerprint.d.ts +0 -43
- package/dist/lib/monitors/fingerprint.js +0 -57
- package/dist/lib/monitors/pid-watch.d.ts +0 -31
- package/dist/lib/monitors/pid-watch.js +0 -31
- package/dist/lib/monitors/remote.d.ts +0 -52
- package/dist/lib/monitors/remote.js +0 -42
- package/dist/lib/monitors/sources/command.d.ts +2 -9
- package/dist/lib/monitors/sources/command.js +13 -34
- package/dist/lib/monitors/sources/device.d.ts +0 -10
- package/dist/lib/monitors/sources/device.js +0 -14
- package/dist/lib/monitors/sources/failure.d.ts +0 -27
- package/dist/lib/monitors/sources/failure.js +0 -27
- package/dist/lib/monitors/sources/file.d.ts +0 -10
- package/dist/lib/monitors/sources/file.js +0 -11
- package/dist/lib/monitors/sources/http.d.ts +0 -7
- package/dist/lib/monitors/sources/http.js +0 -9
- package/dist/lib/monitors/sources/index.d.ts +0 -9
- package/dist/lib/monitors/sources/index.js +0 -9
- package/dist/lib/monitors/sources/poll.d.ts +0 -8
- package/dist/lib/monitors/sources/poll.js +0 -8
- package/dist/lib/monitors/sources/types.d.ts +0 -18
- package/dist/lib/monitors/sources/types.js +0 -8
- package/dist/lib/monitors/sources/webhook.d.ts +0 -7
- package/dist/lib/monitors/sources/webhook.js +0 -7
- package/dist/lib/monitors/sources/ws.d.ts +0 -10
- package/dist/lib/monitors/sources/ws.js +3 -13
- package/dist/lib/monitors/state.d.ts +0 -132
- package/dist/lib/monitors/state.js +2 -86
- package/dist/lib/native-accounts.d.ts +0 -32
- package/dist/lib/native-accounts.js +0 -17
- package/dist/lib/net-close.d.ts +0 -9
- package/dist/lib/net-close.js +0 -5
- package/dist/lib/notify.d.ts +0 -47
- package/dist/lib/notify.js +0 -30
- package/dist/lib/onepassword.d.ts +0 -14
- package/dist/lib/onepassword.js +0 -12
- package/dist/lib/open-url.d.ts +0 -38
- package/dist/lib/open-url.js +1 -69
- package/dist/lib/openclaw-keychain.js +2 -7
- package/dist/lib/operator.d.ts +0 -9
- package/dist/lib/operator.js +0 -34
- package/dist/lib/origin-machine.d.ts +0 -16
- package/dist/lib/origin-machine.js +0 -16
- package/dist/lib/output/git-output.d.ts +0 -31
- package/dist/lib/output/git-output.js +4 -43
- package/dist/lib/overdue.d.ts +0 -35
- package/dist/lib/overdue.js +0 -60
- package/dist/lib/owner-message.d.ts +0 -20
- package/dist/lib/owner-message.js +1 -40
- package/dist/lib/packages/output-home.d.ts +0 -28
- package/dist/lib/packages/output-home.js +0 -114
- package/dist/lib/paths.d.ts +0 -26
- package/dist/lib/paths.js +1 -27
- package/dist/lib/percentile.d.ts +0 -11
- package/dist/lib/percentile.js +0 -11
- package/dist/lib/perf/db.d.ts +0 -16
- package/dist/lib/perf/db.js +3 -32
- package/dist/lib/perf/spool.d.ts +0 -12
- package/dist/lib/perf/spool.js +0 -13
- package/dist/lib/perf/types.d.ts +0 -26
- package/dist/lib/perf/types.js +0 -1
- package/dist/lib/permissions-registry.d.ts +0 -48
- package/dist/lib/permissions-registry.js +0 -108
- package/dist/lib/permissions.d.ts +0 -215
- package/dist/lib/permissions.js +4 -407
- package/dist/lib/picker.d.ts +0 -124
- package/dist/lib/picker.js +0 -140
- package/dist/lib/placement.d.ts +0 -57
- package/dist/lib/placement.js +0 -47
- package/dist/lib/platform/exec.d.ts +0 -73
- package/dist/lib/platform/exec.js +0 -80
- package/dist/lib/platform/index.d.ts +0 -14
- package/dist/lib/platform/index.js +0 -14
- package/dist/lib/platform/ipc.d.ts +0 -10
- package/dist/lib/platform/ipc.js +0 -13
- package/dist/lib/platform/links.d.ts +0 -14
- package/dist/lib/platform/links.js +0 -25
- package/dist/lib/platform/paths.d.ts +0 -48
- package/dist/lib/platform/paths.js +0 -52
- package/dist/lib/platform/posixpath.d.ts +0 -18
- package/dist/lib/platform/posixpath.js +0 -62
- package/dist/lib/platform/process.d.ts +0 -67
- package/dist/lib/platform/process.js +5 -99
- package/dist/lib/platform/winpath.d.ts +0 -50
- package/dist/lib/platform/winpath.js +0 -81
- package/dist/lib/plugins/plugin-marketplace.d.ts +0 -165
- package/dist/lib/plugins/plugin-marketplace.js +10 -238
- package/dist/lib/plugins/plugins.d.ts +0 -238
- package/dist/lib/plugins/plugins.js +20 -454
- package/dist/lib/plugins/skills.d.ts +0 -86
- package/dist/lib/plugins/skills.js +1 -139
- package/dist/lib/pr-land-detach.d.ts +0 -17
- package/dist/lib/pr-land-detach.js +0 -30
- package/dist/lib/pricing/cost.d.ts +0 -29
- package/dist/lib/pricing/cost.js +0 -38
- package/dist/lib/pricing/index.d.ts +0 -6
- package/dist/lib/pricing/index.js +0 -6
- package/dist/lib/pricing/table.d.ts +0 -8
- package/dist/lib/pricing/table.js +3 -56
- package/dist/lib/probe.d.ts +0 -5
- package/dist/lib/probe.js +0 -40
- package/dist/lib/profiles-presets.d.ts +0 -20
- package/dist/lib/profiles-presets.js +1 -36
- package/dist/lib/profiles.d.ts +0 -185
- package/dist/lib/profiles.js +1 -158
- package/dist/lib/project-doctor.d.ts +0 -29
- package/dist/lib/project-doctor.js +0 -26
- package/dist/lib/project-focus.d.ts +0 -41
- package/dist/lib/project-focus.js +0 -49
- package/dist/lib/project-import.d.ts +0 -41
- package/dist/lib/project-import.js +0 -36
- package/dist/lib/project-key.d.ts +0 -65
- package/dist/lib/project-key.js +0 -70
- package/dist/lib/project-launch.d.ts +0 -49
- package/dist/lib/project-launch.js +2 -91
- package/dist/lib/project-probe.d.ts +0 -86
- package/dist/lib/project-probe.js +1 -88
- package/dist/lib/project-pull.d.ts +0 -96
- package/dist/lib/project-pull.js +0 -122
- package/dist/lib/project-resources.d.ts +0 -44
- package/dist/lib/project-resources.js +7 -171
- package/dist/lib/project-root.d.ts +0 -95
- package/dist/lib/project-root.js +0 -101
- package/dist/lib/project-schedule.d.ts +0 -43
- package/dist/lib/project-schedule.js +0 -52
- package/dist/lib/project-status.d.ts +0 -108
- package/dist/lib/project-status.js +0 -117
- package/dist/lib/projects.d.ts +0 -197
- package/dist/lib/projects.js +1 -213
- package/dist/lib/pwsh.d.ts +0 -41
- package/dist/lib/pwsh.js +0 -51
- package/dist/lib/quick-todo.d.ts +84 -0
- package/dist/lib/quick-todo.js +243 -0
- package/dist/lib/reconcile-and-repair.d.ts +0 -78
- package/dist/lib/reconcile-and-repair.js +3 -66
- package/dist/lib/redact.d.ts +0 -29
- package/dist/lib/redact.js +0 -54
- package/dist/lib/refresh-coordinator.d.ts +0 -15
- package/dist/lib/refresh-coordinator.js +0 -10
- package/dist/lib/refresh.d.ts +0 -39
- package/dist/lib/refresh.js +0 -45
- package/dist/lib/registry.d.ts +0 -65
- package/dist/lib/registry.js +0 -127
- package/dist/lib/reminders.d.ts +0 -21
- package/dist/lib/reminders.js +0 -30
- package/dist/lib/remote-agents-json.d.ts +0 -44
- package/dist/lib/remote-agents-json.js +1 -44
- package/dist/lib/reserved-stores.d.ts +0 -28
- package/dist/lib/reserved-stores.js +2 -28
- package/dist/lib/resource-aliases.d.ts +0 -12
- package/dist/lib/resource-aliases.js +0 -12
- package/dist/lib/resource-content-diff.d.ts +0 -28
- package/dist/lib/resource-content-diff.js +7 -34
- package/dist/lib/resource-inventory.d.ts +0 -51
- package/dist/lib/resource-inventory.js +0 -45
- package/dist/lib/resource-patterns.d.ts +0 -32
- package/dist/lib/resource-patterns.js +0 -34
- package/dist/lib/resource-profiles.d.ts +0 -7
- package/dist/lib/resource-profiles.js +0 -11
- package/dist/lib/resources/types.d.ts +0 -50
- package/dist/lib/resources/types.js +0 -7
- package/dist/lib/resources/workflows.d.ts +0 -7
- package/dist/lib/resources/workflows.js +0 -13
- package/dist/lib/resources.d.ts +0 -65
- package/dist/lib/resources.js +0 -78
- package/dist/lib/routers.d.ts +0 -67
- package/dist/lib/routers.js +0 -60
- package/dist/lib/routine-activation.d.ts +0 -23
- package/dist/lib/routine-activation.js +0 -24
- package/dist/lib/routine-context.d.ts +1 -91
- package/dist/lib/routine-context.js +0 -107
- package/dist/lib/routine-notify-owner.d.ts +0 -79
- package/dist/lib/routine-notify-owner.js +1 -103
- package/dist/lib/routine-notify.d.ts +0 -70
- package/dist/lib/routine-notify.js +1 -75
- package/dist/lib/routine-process-cleanup.d.ts +0 -1
- package/dist/lib/routine-process-cleanup.js +1 -4
- package/dist/lib/routine-readiness.d.ts +0 -63
- package/dist/lib/routine-readiness.js +4 -86
- package/dist/lib/routines-format.d.ts +0 -40
- package/dist/lib/routines-format.js +0 -67
- package/dist/lib/routines-placement.d.ts +0 -33
- package/dist/lib/routines-placement.js +0 -40
- package/dist/lib/routines-project.d.ts +0 -57
- package/dist/lib/routines-project.js +6 -80
- package/dist/lib/rules/compile.d.ts +0 -66
- package/dist/lib/rules/compile.js +6 -118
- package/dist/lib/rules/compose.d.ts +0 -56
- package/dist/lib/rules/compose.js +2 -83
- package/dist/lib/rules/rules.d.ts +0 -23
- package/dist/lib/rules/rules.js +0 -35
- package/dist/lib/rules/run-sync.d.ts +0 -16
- package/dist/lib/rules/run-sync.js +1 -44
- package/dist/lib/run-config.d.ts +0 -7
- package/dist/lib/run-config.js +0 -8
- package/dist/lib/run-defaults.d.ts +0 -14
- package/dist/lib/run-defaults.js +0 -14
- package/dist/lib/run-notify.d.ts +0 -18
- package/dist/lib/run-notify.js +0 -36
- package/dist/lib/run-trace-sync.d.ts +0 -21
- package/dist/lib/run-trace-sync.js +2 -66
- package/dist/lib/rush-session.d.ts +0 -26
- package/dist/lib/rush-session.js +0 -28
- package/dist/lib/sandbox.d.ts +0 -45
- package/dist/lib/sandbox.js +5 -93
- package/dist/lib/scheduler.d.ts +0 -28
- package/dist/lib/scheduler.js +0 -45
- package/dist/lib/scheduling/routines.d.ts +0 -652
- package/dist/lib/scheduling/routines.js +8 -475
- package/dist/lib/secrets-cli.d.ts +3 -8
- package/dist/lib/secrets-cli.js +1 -19
- package/dist/lib/secrets-client.d.ts +0 -117
- package/dist/lib/secrets-client.js +4 -275
- package/dist/lib/secrets-policy.d.ts +0 -142
- package/dist/lib/secrets-policy.js +4 -237
- package/dist/lib/secrets-types.d.ts +0 -87
- package/dist/lib/secrets-types.js +0 -13
- package/dist/lib/self-heal/checks/hook-manifest.js +0 -25
- package/dist/lib/self-heal/checks/hook-runtime.js +0 -5
- package/dist/lib/self-heal/checks/install-staging.d.ts +0 -1
- package/dist/lib/self-heal/checks/install-staging.js +1 -28
- package/dist/lib/self-heal/checks/menubar-helper.js +0 -5
- package/dist/lib/self-heal/checks/path.js +0 -9
- package/dist/lib/self-heal/checks/resources.js +0 -5
- package/dist/lib/self-heal/checks/shadowing.js +2 -16
- package/dist/lib/self-heal/checks/shims.js +0 -14
- package/dist/lib/self-heal/child.d.ts +12 -0
- package/dist/lib/self-heal/child.js +23 -0
- package/dist/lib/self-heal/registry.d.ts +0 -9
- package/dist/lib/self-heal/registry.js +0 -16
- package/dist/lib/self-heal/types.d.ts +0 -12
- package/dist/lib/self-heal/types.js +0 -15
- package/dist/lib/self-update.d.ts +0 -312
- package/dist/lib/self-update.js +9 -360
- package/dist/lib/service-manifest.d.ts +0 -39
- package/dist/lib/service-manifest.js +0 -72
- package/dist/lib/session/active.d.ts +13 -869
- package/dist/lib/session/active.js +20 -976
- package/dist/lib/session/actor-sidecar.d.ts +1 -32
- package/dist/lib/session/actor-sidecar.js +1 -41
- package/dist/lib/session/bookmarks.d.ts +0 -33
- package/dist/lib/session/bookmarks.js +0 -37
- package/dist/lib/session/bundle.d.ts +0 -86
- package/dist/lib/session/bundle.js +0 -54
- package/dist/lib/session/claude-accounts.d.ts +0 -40
- package/dist/lib/session/claude-accounts.js +0 -49
- package/dist/lib/session/cloud.d.ts +1 -23
- package/dist/lib/session/cloud.js +0 -26
- package/dist/lib/session/db.d.ts +5 -658
- package/dist/lib/session/db.js +22 -1443
- package/dist/lib/session/detached.d.ts +0 -21
- package/dist/lib/session/detached.js +0 -29
- package/dist/lib/session/discover.d.ts +3 -420
- package/dist/lib/session/discover.js +30 -1123
- package/dist/lib/session/fork.d.ts +1 -41
- package/dist/lib/session/fork.js +0 -19
- package/dist/lib/session/ghostty-tabs.d.ts +0 -24
- package/dist/lib/session/ghostty-tabs.js +0 -37
- package/dist/lib/session/glance-files.d.ts +19 -0
- package/dist/lib/session/glance-files.js +258 -0
- package/dist/lib/session/hook-sessions.d.ts +0 -33
- package/dist/lib/session/hook-sessions.js +4 -99
- package/dist/lib/session/host-link.d.ts +1 -94
- package/dist/lib/session/host-link.js +1 -81
- package/dist/lib/session/inject-target.d.ts +8 -0
- package/dist/lib/session/inject-target.js +32 -0
- package/dist/lib/session/inject.d.ts +0 -15
- package/dist/lib/session/inject.js +0 -15
- package/dist/lib/session/live-metadata.d.ts +1 -34
- package/dist/lib/session/live-metadata.js +1 -73
- package/dist/lib/session/local-tmux-attach.d.ts +0 -37
- package/dist/lib/session/local-tmux-attach.js +1 -76
- package/dist/lib/session/migrate-targets.d.ts +0 -46
- package/dist/lib/session/migrate-targets.js +0 -24
- package/dist/lib/session/migrations.d.ts +0 -12
- package/dist/lib/session/migrations.js +1 -20
- package/dist/lib/session/mirror.d.ts +0 -32
- package/dist/lib/session/mirror.js +0 -77
- package/dist/lib/session/origin-machine.js +0 -3
- package/dist/lib/session/pid-registry.d.ts +0 -80
- package/dist/lib/session/pid-registry.js +2 -81
- package/dist/lib/session/presence.d.ts +0 -39
- package/dist/lib/session/presence.js +2 -52
- package/dist/lib/session/process-view.d.ts +0 -11
- package/dist/lib/session/process-view.js +0 -25
- package/dist/lib/session/projection.d.ts +0 -3
- package/dist/lib/session/projection.js +0 -10
- package/dist/lib/session/provenance.d.ts +1 -37
- package/dist/lib/session/provenance.js +0 -69
- package/dist/lib/session/recovery.d.ts +1 -40
- package/dist/lib/session/recovery.js +2 -80
- package/dist/lib/session/relative-time.js +0 -3
- package/dist/lib/session/remote/peer-stream.d.ts +0 -42
- package/dist/lib/session/remote/peer-stream.js +0 -64
- package/dist/lib/session/remote/remote-bundle.d.ts +0 -6
- package/dist/lib/session/remote/remote-bundle.js +0 -21
- package/dist/lib/session/remote/remote-list.d.ts +1 -110
- package/dist/lib/session/remote/remote-list.js +5 -139
- package/dist/lib/session/remote/remote.d.ts +0 -98
- package/dist/lib/session/remote/remote.js +3 -119
- package/dist/lib/session/remote/watch.d.ts +1 -34
- package/dist/lib/session/remote/watch.js +12 -72
- package/dist/lib/session/remote-active.d.ts +0 -35
- package/dist/lib/session/remote-active.js +0 -48
- package/dist/lib/session/remote-bundle.js +0 -2
- package/dist/lib/session/remote-list.js +0 -2
- package/dist/lib/session/remote-preview-cache.d.ts +0 -7
- package/dist/lib/session/remote-preview-cache.js +1 -76
- package/dist/lib/session/remote.js +0 -2
- package/dist/lib/session/resume-command.d.ts +0 -6
- package/dist/lib/session/resume-command.js +0 -6
- package/dist/lib/session/resume-owner.d.ts +1 -52
- package/dist/lib/session/resume-owner.js +0 -56
- package/dist/lib/session/run-names.d.ts +0 -24
- package/dist/lib/session/run-names.js +0 -26
- package/dist/lib/session/session-cache.d.ts +2 -146
- package/dist/lib/session/session-cache.js +26 -203
- package/dist/lib/session/short-id.js +0 -3
- package/dist/lib/session/sync/agents.d.ts +0 -68
- package/dist/lib/session/sync/agents.js +0 -0
- package/dist/lib/session/sync/backend.d.ts +0 -39
- package/dist/lib/session/sync/backend.js +0 -45
- package/dist/lib/session/sync/config.d.ts +0 -27
- package/dist/lib/session/sync/config.js +0 -56
- package/dist/lib/session/sync/managed-config.d.ts +0 -17
- package/dist/lib/session/sync/managed-config.js +0 -17
- package/dist/lib/session/sync/managed-key.d.ts +0 -38
- package/dist/lib/session/sync/managed-key.js +1 -42
- package/dist/lib/session/sync/net-client.d.ts +0 -36
- package/dist/lib/session/sync/net-client.js +0 -30
- package/dist/lib/session/sync/provision.d.ts +0 -2
- package/dist/lib/session/sync/provision.js +0 -13
- package/dist/lib/session/sync/r2.d.ts +0 -20
- package/dist/lib/session/sync/r2.js +0 -20
- package/dist/lib/session/sync/transcript-crypto.d.ts +0 -37
- package/dist/lib/session/sync/transcript-crypto.js +5 -37
- package/dist/lib/session/sync/worker-template.d.ts +0 -5
- package/dist/lib/session/sync/worker-template.js +0 -40
- package/dist/lib/session/testdata/pid-registry-namespace.js +0 -2
- package/dist/lib/session/testdata/process-view-private.js +0 -1
- package/dist/lib/session/throughput.d.ts +0 -24
- package/dist/lib/session/throughput.js +1 -25
- package/dist/lib/session/timeline-pass.d.ts +1 -63
- package/dist/lib/session/timeline-pass.js +161 -148
- package/dist/lib/session/title.d.ts +0 -182
- package/dist/lib/session/title.js +0 -139
- package/dist/lib/session/tool-index.d.ts +2 -21
- package/dist/lib/session/tool-index.js +3 -75
- package/dist/lib/session/tool-store.d.ts +2 -48
- package/dist/lib/session/tool-store.js +1 -33
- package/dist/lib/session/viewing-in.d.ts +0 -67
- package/dist/lib/session/viewing-in.js +1 -71
- package/dist/lib/session/watch.js +0 -2
- package/dist/lib/session/width.js +0 -3
- package/dist/lib/sessions-client.d.ts +0 -46
- package/dist/lib/sessions-client.js +36 -113
- package/dist/lib/settings-manifest.d.ts +1 -17
- package/dist/lib/settings-manifest.js +4 -57
- package/dist/lib/setup-tool-install.d.ts +0 -1
- package/dist/lib/setup-tool-install.js +2 -7
- package/dist/lib/setup-tool-status.d.ts +0 -3
- package/dist/lib/setup-tool-status.js +4 -14
- package/dist/lib/sha256-asset.d.ts +0 -20
- package/dist/lib/sha256-asset.js +0 -20
- package/dist/lib/share-runtime.d.ts +0 -10
- package/dist/lib/share-runtime.js +1 -27
- package/dist/lib/shim-heal.d.ts +0 -15
- package/dist/lib/shim-heal.js +3 -29
- package/dist/lib/signin-badge.d.ts +0 -72
- package/dist/lib/signin-badge.js +0 -86
- package/dist/lib/sink-format.d.ts +0 -32
- package/dist/lib/sink-format.js +0 -14
- package/dist/lib/smart-launch.d.ts +0 -75
- package/dist/lib/smart-launch.js +1 -83
- package/dist/lib/snapshot.d.ts +0 -46
- package/dist/lib/snapshot.js +5 -31
- package/dist/lib/spinner.d.ts +0 -37
- package/dist/lib/spinner.js +0 -37
- package/dist/lib/sqlite.d.ts +0 -13
- package/dist/lib/sqlite.js +3 -71
- package/dist/lib/ssh-exec.d.ts +0 -209
- package/dist/lib/ssh-exec.js +11 -248
- package/dist/lib/ssh-tunnel.d.ts +0 -43
- package/dist/lib/ssh-tunnel.js +2 -48
- package/dist/lib/staleness/checkers/commands.d.ts +0 -4
- package/dist/lib/staleness/checkers/commands.js +0 -4
- package/dist/lib/staleness/checkers/hooks.d.ts +0 -10
- package/dist/lib/staleness/checkers/hooks.js +0 -15
- package/dist/lib/staleness/checkers/mcp.d.ts +0 -9
- package/dist/lib/staleness/checkers/mcp.js +0 -9
- package/dist/lib/staleness/checkers/permissions.d.ts +0 -12
- package/dist/lib/staleness/checkers/permissions.js +0 -13
- package/dist/lib/staleness/checkers/plugins.d.ts +0 -8
- package/dist/lib/staleness/checkers/plugins.js +0 -8
- package/dist/lib/staleness/checkers/rules.d.ts +0 -15
- package/dist/lib/staleness/checkers/rules.js +0 -26
- package/dist/lib/staleness/checkers/skills.d.ts +0 -4
- package/dist/lib/staleness/checkers/skills.js +0 -4
- package/dist/lib/staleness/checkers/subagents.d.ts +0 -9
- package/dist/lib/staleness/checkers/subagents.js +0 -9
- package/dist/lib/staleness/checkers/types.d.ts +0 -34
- package/dist/lib/staleness/checkers/types.js +0 -19
- package/dist/lib/staleness/checkers/workflows.d.ts +0 -7
- package/dist/lib/staleness/checkers/workflows.js +0 -7
- package/dist/lib/staleness/detectors/commands.js +0 -17
- package/dist/lib/staleness/detectors/hooks.js +1 -6
- package/dist/lib/staleness/detectors/mcp.js +0 -4
- package/dist/lib/staleness/detectors/permissions.js +10 -23
- package/dist/lib/staleness/detectors/rules.js +0 -6
- package/dist/lib/staleness/detectors/skills.d.ts +0 -1
- package/dist/lib/staleness/detectors/skills.js +1 -12
- package/dist/lib/staleness/detectors/types.d.ts +0 -10
- package/dist/lib/staleness/fingerprint.d.ts +0 -19
- package/dist/lib/staleness/fingerprint.js +0 -35
- package/dist/lib/staleness/index.d.ts +0 -28
- package/dist/lib/staleness/index.js +1 -45
- package/dist/lib/staleness/layers.d.ts +0 -23
- package/dist/lib/staleness/layers.js +0 -34
- package/dist/lib/staleness/prune.d.ts +0 -71
- package/dist/lib/staleness/prune.js +2 -27
- package/dist/lib/staleness/registry.d.ts +0 -10
- package/dist/lib/staleness/registry.js +3 -33
- package/dist/lib/staleness/types.d.ts +0 -36
- package/dist/lib/staleness/types.js +0 -5
- package/dist/lib/staleness/writers/commands.js +1 -48
- package/dist/lib/staleness/writers/hooks.js +1 -18
- package/dist/lib/staleness/writers/kinds.d.ts +0 -12
- package/dist/lib/staleness/writers/kinds.js +0 -1
- package/dist/lib/staleness/writers/lazy-map.d.ts +0 -11
- package/dist/lib/staleness/writers/mcp.js +0 -13
- package/dist/lib/staleness/writers/plugins.js +0 -4
- package/dist/lib/staleness/writers/rules.d.ts +0 -1
- package/dist/lib/staleness/writers/rules.js +1 -19
- package/dist/lib/staleness/writers/skills.js +3 -14
- package/dist/lib/staleness/writers/sources.d.ts +0 -11
- package/dist/lib/staleness/writers/sources.js +0 -32
- package/dist/lib/staleness/writers/subagents.js +0 -16
- package/dist/lib/staleness/writers/types.d.ts +0 -58
- package/dist/lib/staleness/writers/workflows.js +1 -1
- package/dist/lib/standalone-tools.d.ts +24 -0
- package/dist/lib/standalone-tools.js +58 -0
- package/dist/lib/star-nudge.d.ts +0 -32
- package/dist/lib/star-nudge.js +2 -36
- package/dist/lib/startup/command-registry.d.ts +0 -45
- package/dist/lib/startup/command-registry.js +1 -46
- package/dist/lib/startup/dev-build.d.ts +0 -9
- package/dist/lib/startup/dev-build.js +1 -42
- package/dist/lib/startup/root-command.d.ts +0 -19
- package/dist/lib/startup/root-command.js +0 -19
- package/dist/lib/startup/spellcheck.d.ts +0 -13
- package/dist/lib/startup/spellcheck.js +0 -13
- package/dist/lib/state.d.ts +0 -376
- package/dist/lib/state.js +19 -737
- package/dist/lib/storage/selection.d.ts +0 -40
- package/dist/lib/storage/selection.js +0 -29
- package/dist/lib/subagents-registry.d.ts +0 -56
- package/dist/lib/subagents-registry.js +0 -99
- package/dist/lib/subagents.d.ts +0 -128
- package/dist/lib/subagents.js +1 -158
- package/dist/lib/summarizer/config.d.ts +0 -37
- package/dist/lib/summarizer/config.js +0 -37
- package/dist/lib/summarizer/pass.d.ts +0 -20
- package/dist/lib/summarizer/pass.js +1 -34
- package/dist/lib/summarizer/summarize.d.ts +1 -49
- package/dist/lib/summarizer/summarize.js +0 -35
- package/dist/lib/sync-passphrase.d.ts +0 -16
- package/dist/lib/sync-passphrase.js +1 -18
- package/dist/lib/sync-status.d.ts +0 -72
- package/dist/lib/sync-status.js +0 -55
- package/dist/lib/sync-umbrella.d.ts +0 -54
- package/dist/lib/sync-umbrella.js +0 -48
- package/dist/lib/system-run-sync.d.ts +0 -5
- package/dist/lib/system-run-sync.js +1 -31
- package/dist/lib/teams/agents.d.ts +1 -444
- package/dist/lib/teams/agents.js +11 -871
- package/dist/lib/teams/api.d.ts +2 -52
- package/dist/lib/teams/api.js +4 -63
- package/dist/lib/teams/debug.d.ts +0 -6
- package/dist/lib/teams/debug.js +0 -6
- package/dist/lib/teams/delivery.d.ts +0 -41
- package/dist/lib/teams/delivery.js +0 -32
- package/dist/lib/teams/file_ops.d.ts +0 -11
- package/dist/lib/teams/file_ops.js +0 -11
- package/dist/lib/teams/forEach.d.ts +0 -76
- package/dist/lib/teams/forEach.js +1 -77
- package/dist/lib/teams/index.d.ts +1 -7
- package/dist/lib/teams/index.js +1 -7
- package/dist/lib/teams/parsers.d.ts +0 -4
- package/dist/lib/teams/parsers.js +0 -81
- package/dist/lib/teams/persistence.d.ts +0 -2
- package/dist/lib/teams/persistence.js +0 -12
- package/dist/lib/teams/placement-probe.d.ts +0 -12
- package/dist/lib/teams/placement-probe.js +1 -51
- package/dist/lib/teams/pr-watch.d.ts +0 -107
- package/dist/lib/teams/pr-watch.js +1 -107
- package/dist/lib/teams/registry.d.ts +0 -36
- package/dist/lib/teams/registry.js +0 -47
- package/dist/lib/teams/remoteWorktree.d.ts +0 -50
- package/dist/lib/teams/remoteWorktree.js +1 -96
- package/dist/lib/teams/scheduler.d.ts +0 -111
- package/dist/lib/teams/scheduler.js +2 -125
- package/dist/lib/teams/summarizer.d.ts +0 -22
- package/dist/lib/teams/summarizer.js +6 -50
- package/dist/lib/teams/supervisor.d.ts +0 -38
- package/dist/lib/teams/supervisor.js +0 -21
- package/dist/lib/teams/worktree.d.ts +0 -95
- package/dist/lib/teams/worktree.js +3 -110
- package/dist/lib/template.d.ts +0 -21
- package/dist/lib/template.js +0 -23
- package/dist/lib/term-client.d.ts +0 -26
- package/dist/lib/term-client.js +0 -48
- package/dist/lib/term-driver.d.ts +0 -5
- package/dist/lib/term-driver.js +0 -8
- package/dist/lib/terminal/backends/ghostty.d.ts +0 -2
- package/dist/lib/terminal/backends/ghostty.js +0 -12
- package/dist/lib/terminal/backends/index.d.ts +0 -17
- package/dist/lib/terminal/backends/index.js +0 -15
- package/dist/lib/terminal/backends/iterm.d.ts +0 -2
- package/dist/lib/terminal/backends/iterm.js +0 -10
- package/dist/lib/terminal/backends/terminal-app.d.ts +0 -10
- package/dist/lib/terminal/backends/terminal-app.js +0 -30
- package/dist/lib/terminal/backends/tmux.d.ts +0 -10
- package/dist/lib/terminal/backends/tmux.js +0 -2
- package/dist/lib/terminal/backends/vscodium-agent.d.ts +0 -25
- package/dist/lib/terminal/backends/vscodium-agent.js +0 -36
- package/dist/lib/terminal/engine.d.ts +0 -17
- package/dist/lib/terminal/engine.js +0 -10
- package/dist/lib/terminal/index.d.ts +0 -8
- package/dist/lib/terminal/inject.d.ts +1 -173
- package/dist/lib/terminal/inject.js +0 -146
- package/dist/lib/terminal/policy.d.ts +0 -8
- package/dist/lib/terminal/policy.js +0 -1
- package/dist/lib/terminal/preferred.d.ts +0 -66
- package/dist/lib/terminal/preferred.js +0 -30
- package/dist/lib/terminal/quote.d.ts +0 -8
- package/dist/lib/terminal/quote.js +0 -8
- package/dist/lib/terminal/resolve.d.ts +0 -46
- package/dist/lib/terminal/resolve.js +0 -30
- package/dist/lib/terminal/run-surface.d.ts +0 -56
- package/dist/lib/terminal/run-surface.js +0 -46
- package/dist/lib/terminal/shell.d.ts +0 -3
- package/dist/lib/terminal/shell.js +0 -13
- package/dist/lib/terminal/transport.d.ts +0 -14
- package/dist/lib/terminal/transport.js +1 -30
- package/dist/lib/terminal/types.d.ts +0 -40
- package/dist/lib/terminal/types.js +0 -10
- package/dist/lib/text/relative-time.d.ts +0 -36
- package/dist/lib/text/relative-time.js +0 -43
- package/dist/lib/text/short-id.d.ts +0 -16
- package/dist/lib/text/short-id.js +0 -16
- package/dist/lib/text/width.d.ts +0 -24
- package/dist/lib/text/width.js +10 -52
- package/dist/lib/tmux/binary.d.ts +0 -36
- package/dist/lib/tmux/binary.js +0 -28
- package/dist/lib/tmux/index.d.ts +0 -5
- package/dist/lib/tmux/index.js +0 -5
- package/dist/lib/tmux/orphan-reap.d.ts +0 -253
- package/dist/lib/tmux/orphan-reap.js +3 -299
- package/dist/lib/tmux/paths.d.ts +0 -14
- package/dist/lib/tmux/paths.js +0 -14
- package/dist/lib/tmux/session.d.ts +0 -263
- package/dist/lib/tmux/session.js +6 -344
- package/dist/lib/traces/backend.d.ts +0 -20
- package/dist/lib/traces/backend.js +0 -23
- package/dist/lib/traces/classify.d.ts +0 -20
- package/dist/lib/traces/classify.js +0 -7
- package/dist/lib/traces/insights.d.ts +1 -84
- package/dist/lib/traces/insights.js +0 -126
- package/dist/lib/traces/phenotype.d.ts +0 -69
- package/dist/lib/traces/phenotype.js +0 -150
- package/dist/lib/traces/provision.d.ts +0 -1
- package/dist/lib/traces/provision.js +0 -5
- package/dist/lib/traces/schema2-build.d.ts +3 -60
- package/dist/lib/traces/schema2-build.js +8 -149
- package/dist/lib/traces/schema2-danger.d.ts +0 -30
- package/dist/lib/traces/schema2-danger.js +1 -63
- package/dist/lib/traces/schema2.d.ts +0 -11
- package/dist/lib/traces/segments.d.ts +0 -44
- package/dist/lib/traces/segments.js +0 -65
- package/dist/lib/traces/sync.d.ts +2 -239
- package/dist/lib/traces/sync.js +15 -237
- package/dist/lib/traces/worker-template.d.ts +0 -3
- package/dist/lib/traces/worker-template.js +0 -29
- package/dist/lib/triggers/handlers.d.ts +0 -82
- package/dist/lib/triggers/handlers.js +0 -75
- package/dist/lib/triggers/webhook.d.ts +0 -158
- package/dist/lib/triggers/webhook.js +0 -143
- package/dist/lib/types.d.ts +0 -736
- package/dist/lib/types.js +0 -50
- package/dist/lib/uninstall.d.ts +0 -17
- package/dist/lib/uninstall.js +0 -75
- package/dist/lib/usage-backoff.d.ts +0 -20
- package/dist/lib/usage-backoff.js +3 -60
- package/dist/lib/usage-refresh.d.ts +0 -154
- package/dist/lib/usage-refresh.js +8 -212
- package/dist/lib/verbs.d.ts +0 -12
- package/dist/lib/verbs.js +0 -12
- package/dist/lib/version-duplicates.d.ts +0 -6
- package/dist/lib/version-duplicates.js +0 -6
- package/dist/lib/version.d.ts +0 -55
- package/dist/lib/version.js +1 -58
- package/dist/lib/view-types.d.ts +0 -48
- package/dist/lib/warn-unpushed.d.ts +0 -27
- package/dist/lib/warn-unpushed.js +1 -45
- package/dist/lib/watchdog/history.d.ts +0 -1
- package/dist/lib/watchdog/history.js +0 -3
- package/dist/lib/watchdog/index.js +0 -2
- package/dist/lib/watchdog/log.d.ts +0 -19
- package/dist/lib/watchdog/log.js +0 -34
- package/dist/lib/watchdog/read.d.ts +0 -27
- package/dist/lib/watchdog/read.js +3 -58
- package/dist/lib/watchdog/rotate.d.ts +0 -139
- package/dist/lib/watchdog/rotate.js +2 -151
- package/dist/lib/watchdog/runner.d.ts +0 -125
- package/dist/lib/watchdog/runner.js +3 -223
- package/dist/lib/watchdog/service.d.ts +0 -1
- package/dist/lib/watchdog/service.js +0 -2
- package/dist/lib/watchdog/watchdog-agent.d.ts +0 -31
- package/dist/lib/watchdog/watchdog-agent.js +0 -27
- package/dist/lib/watchdog/watchdog.d.ts +0 -7
- package/dist/lib/watchdog/watchdog.js +0 -10
- package/dist/lib/watchdog/watchdogTail.js +0 -7
- package/dist/lib/whats-new.d.ts +0 -10
- package/dist/lib/whats-new.js +0 -21
- package/dist/lib/workflows-registry.d.ts +0 -45
- package/dist/lib/workflows-registry.js +0 -60
- package/dist/lib/workflows.d.ts +0 -282
- package/dist/lib/workflows.js +3 -213
- package/dist/lib/worktree/held.d.ts +0 -89
- package/dist/lib/worktree/held.js +1 -103
- package/dist/lib/wrap.d.ts +0 -32
- package/dist/lib/wrap.js +0 -32
- package/dist/lib/yaml-io.d.ts +0 -45
- package/dist/lib/yaml-io.js +0 -47
- package/dist/session-tracker/dist/adapters/claude.js +0 -2
- package/dist/session-tracker/dist/hook.sh +4 -37
- package/dist/session-tracker/dist/index.d.ts +0 -7
- package/dist/session-tracker/dist/index.js +0 -5
- package/dist/session-tracker/dist/install-hook.d.ts +0 -5
- package/dist/session-tracker/dist/install-hook.js +1 -15
- package/dist/session-tracker/dist/prune-state.js +0 -4
- package/dist/session-tracker/dist/reader.js +0 -4
- package/dist/session-tracker/dist/state-file.d.ts +0 -3
- package/dist/session-tracker/dist/state-file.js +3 -8
- package/package.json +3 -4
- package/scripts/postinstall.js +8 -116
- package/dist/lib/session/artifacts.d.ts +0 -14
- package/dist/lib/session/artifacts.js +0 -101
- package/dist/lib/session/bash-command.d.ts +0 -63
- package/dist/lib/session/bash-command.js +0 -490
- package/dist/lib/session/digest.d.ts +0 -66
- package/dist/lib/session/digest.js +0 -328
- package/dist/lib/session/highlights.d.ts +0 -151
- package/dist/lib/session/highlights.js +0 -391
- package/dist/lib/session/insights.d.ts +0 -165
- package/dist/lib/session/insights.js +0 -563
- package/dist/lib/session/linear.d.ts +0 -19
- package/dist/lib/session/linear.js +0 -99
- package/dist/lib/session/parse.d.ts +0 -224
- package/dist/lib/session/parse.js +0 -2408
- package/dist/lib/session/prompt.d.ts +0 -213
- package/dist/lib/session/prompt.js +0 -601
- package/dist/lib/session/render.d.ts +0 -133
- package/dist/lib/session/render.js +0 -1047
- package/dist/lib/session/share-html.d.ts +0 -35
- package/dist/lib/session/share-html.js +0 -319
- package/dist/lib/session/shell-programs.d.ts +0 -33
- package/dist/lib/session/shell-programs.js +0 -380
- package/dist/lib/session/state.d.ts +0 -269
- package/dist/lib/session/state.js +0 -777
- package/dist/lib/session/stream-render.d.ts +0 -4
- package/dist/lib/session/stream-render.js +0 -131
- package/dist/lib/session/tail.d.ts +0 -88
- package/dist/lib/session/tail.js +0 -294
- package/dist/lib/session/team-filter.d.ts +0 -129
- package/dist/lib/session/team-filter.js +0 -269
- package/dist/lib/session/timeline.d.ts +0 -172
- package/dist/lib/session/timeline.js +0 -636
- package/dist/lib/session/tool-calls.d.ts +0 -132
- package/dist/lib/session/tool-calls.js +0 -674
- package/dist/lib/session/trajectory-compare.d.ts +0 -48
- package/dist/lib/session/trajectory-compare.js +0 -116
- package/dist/lib/session/trajectory-html.d.ts +0 -19
- package/dist/lib/session/trajectory-html.js +0 -771
- package/dist/lib/session/trajectory-lineage.d.ts +0 -93
- package/dist/lib/session/trajectory-lineage.js +0 -195
- package/dist/lib/session/trajectory-text.d.ts +0 -38
- package/dist/lib/session/trajectory-text.js +0 -284
- package/dist/lib/session/trajectory.d.ts +0 -145
- package/dist/lib/session/trajectory.js +0 -394
- package/dist/lib/session/types.d.ts +0 -627
- package/dist/lib/session/types.js +0 -43
|
@@ -1,24 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Session-title service (PHNX-3797) — the ONE generator of session headlines.
|
|
3
|
-
*
|
|
4
|
-
* Every session row's headline used to be the agent's latest transcript line.
|
|
5
|
-
* This service replaces it with a user-anchored NAME: it sweeps the local
|
|
6
|
-
* session index for recent sessions whose title is still the raw first user
|
|
7
|
-
* message, asks a {@link SessionTitleProvider} (the cloud cheap-model call by
|
|
8
|
-
* default) for a short action+object headline, and persists it
|
|
9
|
-
* (`lib/session/title.ts`). Because the value lands in the index, every consumer
|
|
10
|
-
* — the CLI list, the picker, `sessions watch --json`, the fleet mirror, AGI EXT
|
|
11
|
-
* — reads one title that was generated exactly once.
|
|
12
|
-
*
|
|
13
|
-
* Cost is bounded by construction, not by hope: at most
|
|
14
|
-
* {@link SESSION_TITLE_MAX_PER_TICK} generations per tick, only for sessions
|
|
15
|
-
* inside the display window, only for rows whose stored source key no longer
|
|
16
|
-
* matches their user text (so a titled session is a pure DB read forever after),
|
|
17
|
-
* and never for the titler's own spawned sessions. When the harness is missing
|
|
18
|
-
* or signed out every attempt fails, so the service backs off exponentially
|
|
19
|
-
* instead of respawning two processes a minute forever — the rows simply keep
|
|
20
|
-
* showing the user's own words, which is the honest fallback.
|
|
21
|
-
*/
|
|
22
1
|
import type { DaemonServiceId } from '../daemon-services.js';
|
|
23
2
|
import { type SessionTitleRunner } from '../session/title.js';
|
|
24
3
|
import { BasePeriodicService, type DaemonContext } from './service.js';
|
|
@@ -27,13 +6,9 @@ export declare class SessionTitleService extends BasePeriodicService {
|
|
|
27
6
|
readonly id: DaemonServiceId;
|
|
28
7
|
readonly intervalMs: number;
|
|
29
8
|
readonly deadlineMs = 110000;
|
|
30
|
-
/** Let the box settle (shims, PATH, index warm) before spawning a harness. */
|
|
31
9
|
readonly startupDelayMs = 60000;
|
|
32
|
-
/** Ticks still to skip before the next attempt; 0 = attempt this tick. */
|
|
33
10
|
private skipTicks;
|
|
34
|
-
/** Skip count applied after the next all-failed sweep. */
|
|
35
11
|
private backoff;
|
|
36
|
-
/** `run` is the model-call seam (defaults to the real subprocess); tests inject one. */
|
|
37
12
|
constructor(run?: SessionTitleRunner | undefined);
|
|
38
13
|
protected onStart(_ctx: DaemonContext): Promise<void>;
|
|
39
14
|
protected onStop(): Promise<void>;
|
|
@@ -1,46 +1,17 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Session-title service (PHNX-3797) — the ONE generator of session headlines.
|
|
3
|
-
*
|
|
4
|
-
* Every session row's headline used to be the agent's latest transcript line.
|
|
5
|
-
* This service replaces it with a user-anchored NAME: it sweeps the local
|
|
6
|
-
* session index for recent sessions whose title is still the raw first user
|
|
7
|
-
* message, asks a {@link SessionTitleProvider} (the cloud cheap-model call by
|
|
8
|
-
* default) for a short action+object headline, and persists it
|
|
9
|
-
* (`lib/session/title.ts`). Because the value lands in the index, every consumer
|
|
10
|
-
* — the CLI list, the picker, `sessions watch --json`, the fleet mirror, AGI EXT
|
|
11
|
-
* — reads one title that was generated exactly once.
|
|
12
|
-
*
|
|
13
|
-
* Cost is bounded by construction, not by hope: at most
|
|
14
|
-
* {@link SESSION_TITLE_MAX_PER_TICK} generations per tick, only for sessions
|
|
15
|
-
* inside the display window, only for rows whose stored source key no longer
|
|
16
|
-
* matches their user text (so a titled session is a pure DB read forever after),
|
|
17
|
-
* and never for the titler's own spawned sessions. When the harness is missing
|
|
18
|
-
* or signed out every attempt fails, so the service backs off exponentially
|
|
19
|
-
* instead of respawning two processes a minute forever — the rows simply keep
|
|
20
|
-
* showing the user's own words, which is the honest fallback.
|
|
21
|
-
*/
|
|
22
1
|
import { runSessionTitleTick, SESSION_TITLE_MAX_PER_TICK } from '../session/title.js';
|
|
23
2
|
import { BasePeriodicService } from './service.js';
|
|
24
|
-
/** Cadence of the sweep. Slow on purpose: a title is not a live signal. */
|
|
25
3
|
const SESSION_TITLE_TICK_MS = 2 * 60_000;
|
|
26
|
-
/** Above the worst case (limit x the per-generation subprocess timeout), below the interval. */
|
|
27
4
|
const SESSION_TITLE_DEADLINE_MS = 110_000;
|
|
28
|
-
/** Ticks skipped after the first all-failed sweep, doubling up to the ceiling. */
|
|
29
5
|
const SESSION_TITLE_BACKOFF_START = 2;
|
|
30
|
-
/** ~1h at the tick cadence — long enough that a signed-out box stays quiet. */
|
|
31
6
|
const SESSION_TITLE_BACKOFF_MAX = 30;
|
|
32
7
|
export class SessionTitleService extends BasePeriodicService {
|
|
33
8
|
run;
|
|
34
9
|
id = 'session-title';
|
|
35
10
|
intervalMs = SESSION_TITLE_TICK_MS;
|
|
36
11
|
deadlineMs = SESSION_TITLE_DEADLINE_MS;
|
|
37
|
-
/** Let the box settle (shims, PATH, index warm) before spawning a harness. */
|
|
38
12
|
startupDelayMs = 60_000;
|
|
39
|
-
/** Ticks still to skip before the next attempt; 0 = attempt this tick. */
|
|
40
13
|
skipTicks = 0;
|
|
41
|
-
/** Skip count applied after the next all-failed sweep. */
|
|
42
14
|
backoff = 0;
|
|
43
|
-
/** `run` is the model-call seam (defaults to the real subprocess); tests inject one. */
|
|
44
15
|
constructor(run) {
|
|
45
16
|
super();
|
|
46
17
|
this.run = run;
|
|
@@ -58,7 +29,6 @@ export class SessionTitleService extends BasePeriodicService {
|
|
|
58
29
|
...(this.run ? { run: this.run } : {}),
|
|
59
30
|
});
|
|
60
31
|
if (result.generated > 0) {
|
|
61
|
-
// A success clears the backoff: whatever was broken is working again.
|
|
62
32
|
this.backoff = 0;
|
|
63
33
|
ctx.log('INFO', `session-title: generated ${result.generated} title(s) (${result.cached} already current)`);
|
|
64
34
|
return;
|
|
@@ -70,7 +40,5 @@ export class SessionTitleService extends BasePeriodicService {
|
|
|
70
40
|
this.skipTicks = this.backoff;
|
|
71
41
|
ctx.log('WARN', `session-title: ${result.failed} generation(s) produced no title; backing off ${this.backoff} tick(s)`);
|
|
72
42
|
}
|
|
73
|
-
// Nothing generated and nothing failed = every recent session is titled.
|
|
74
|
-
// That is the steady state, and it logs nothing.
|
|
75
43
|
}
|
|
76
44
|
}
|
|
@@ -1,27 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* State-dir self-terminate guard as a `PeriodicService` (RUSH-3193 P3).
|
|
3
|
-
*
|
|
4
|
-
* RUSH-2367: self-terminate if this daemon's own state directory has been
|
|
5
|
-
* removed out from under it — the shape of a leaked test-fixture daemon whose
|
|
6
|
-
* /tmp HOME was deleted by its test's own cleanup while the process itself
|
|
7
|
-
* somehow survived. Nothing else can reach a daemon in that state: a
|
|
8
|
-
* different HOME resolves a different `ensureDaemonDir()` and therefore a
|
|
9
|
-
* different instance registry — without this it runs forever. Reads the
|
|
10
|
-
* lifetime marker directly, never the local `ensureDaemonDir()` wrapper,
|
|
11
|
-
* which recreates the directory as a side effect and would defeat the check.
|
|
12
|
-
* Heartbeat/status paths may recreate the directory and pid file after a
|
|
13
|
-
* deletion; they never recreate this per-lifetime token.
|
|
14
|
-
*
|
|
15
|
-
* `lifetimePath`/`lifetimeToken` are per-boot constants computed once at
|
|
16
|
-
* `runDaemon()` start and passed in via the constructor, along with the
|
|
17
|
-
* shutdown callback. Registering (and starting) this service happens AFTER
|
|
18
|
-
* `runDaemon()` defines its `handleShutdown` — unlike the other four migrated
|
|
19
|
-
* services, which register before `supervisor.startAll()` — because the
|
|
20
|
-
* supervisor fires an immediate first tick on start, and calling an
|
|
21
|
-
* as-yet-undefined `handleShutdown` const at that point would throw. See the
|
|
22
|
-
* registration site in daemon.ts for the deferred `supervisor.register()` +
|
|
23
|
-
* `supervisor.start()` pairing this requires.
|
|
24
|
-
*/
|
|
25
1
|
import { BasePeriodicService, type DaemonContext } from './service.js';
|
|
26
2
|
import type { DaemonServiceId } from '../daemon-services.js';
|
|
27
3
|
interface StateDirCheckServiceOptions {
|
|
@@ -1,32 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* State-dir self-terminate guard as a `PeriodicService` (RUSH-3193 P3).
|
|
3
|
-
*
|
|
4
|
-
* RUSH-2367: self-terminate if this daemon's own state directory has been
|
|
5
|
-
* removed out from under it — the shape of a leaked test-fixture daemon whose
|
|
6
|
-
* /tmp HOME was deleted by its test's own cleanup while the process itself
|
|
7
|
-
* somehow survived. Nothing else can reach a daemon in that state: a
|
|
8
|
-
* different HOME resolves a different `ensureDaemonDir()` and therefore a
|
|
9
|
-
* different instance registry — without this it runs forever. Reads the
|
|
10
|
-
* lifetime marker directly, never the local `ensureDaemonDir()` wrapper,
|
|
11
|
-
* which recreates the directory as a side effect and would defeat the check.
|
|
12
|
-
* Heartbeat/status paths may recreate the directory and pid file after a
|
|
13
|
-
* deletion; they never recreate this per-lifetime token.
|
|
14
|
-
*
|
|
15
|
-
* `lifetimePath`/`lifetimeToken` are per-boot constants computed once at
|
|
16
|
-
* `runDaemon()` start and passed in via the constructor, along with the
|
|
17
|
-
* shutdown callback. Registering (and starting) this service happens AFTER
|
|
18
|
-
* `runDaemon()` defines its `handleShutdown` — unlike the other four migrated
|
|
19
|
-
* services, which register before `supervisor.startAll()` — because the
|
|
20
|
-
* supervisor fires an immediate first tick on start, and calling an
|
|
21
|
-
* as-yet-undefined `handleShutdown` const at that point would throw. See the
|
|
22
|
-
* registration site in daemon.ts for the deferred `supervisor.register()` +
|
|
23
|
-
* `supervisor.start()` pairing this requires.
|
|
24
|
-
*/
|
|
25
1
|
import { BasePeriodicService } from './service.js';
|
|
26
2
|
import * as fsp from 'fs/promises';
|
|
27
|
-
/** Matches the historical inline interval (daemon.ts STATE_DIR_CHECK_TICK_MS), overridable for tests. */
|
|
28
3
|
const STATE_DIR_CHECK_TICK_MS = 60_000;
|
|
29
|
-
/** Hard cap per tick — a single async file read, far above what it could ever need. */
|
|
30
4
|
const STATE_DIR_CHECK_DEADLINE_MS = 5_000;
|
|
31
5
|
export class StateDirCheckService extends BasePeriodicService {
|
|
32
6
|
id = 'state-dir-check';
|
|
@@ -42,10 +16,8 @@ export class StateDirCheckService extends BasePeriodicService {
|
|
|
42
16
|
this.onMissing = opts.onMissing;
|
|
43
17
|
}
|
|
44
18
|
async onStart(_ctx) {
|
|
45
|
-
// No connections/handles to open — each tick re-reads the lifetime marker.
|
|
46
19
|
}
|
|
47
20
|
async onStop() {
|
|
48
|
-
// Nothing to release — the supervisor's timer teardown is the only cleanup needed.
|
|
49
21
|
}
|
|
50
22
|
async onTick(ctx) {
|
|
51
23
|
let markerMatches = false;
|
|
@@ -53,7 +25,6 @@ export class StateDirCheckService extends BasePeriodicService {
|
|
|
53
25
|
markerMatches = (await fsp.readFile(this.lifetimePath, 'utf-8')) === this.lifetimeToken;
|
|
54
26
|
}
|
|
55
27
|
catch {
|
|
56
|
-
// A missing state dir or marker is the condition this guard detects.
|
|
57
28
|
}
|
|
58
29
|
if (!markerMatches) {
|
|
59
30
|
ctx.log('WARN', `Daemon state dir no longer exists; exiting (self-terminate guard)`);
|
|
@@ -1,56 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ServiceSupervisor (RUSH-3193 P1, PHNX-4116).
|
|
3
|
-
*
|
|
4
|
-
* Owns the timer for every registered `PeriodicService`, replacing the bare
|
|
5
|
-
* `setInterval` closures in `runDaemon()`. Two failure modes motivated it, both
|
|
6
|
-
* observed in production, and each is now handled without ever leaving a service
|
|
7
|
-
* silently dark:
|
|
8
|
-
*
|
|
9
|
-
* - A throw escaping a tick's local try/catch used to hit the process-wide
|
|
10
|
-
* `uncaughtException` handler and `process.exit(1)` the whole daemon, taking
|
|
11
|
-
* every OTHER service down with it. Here a thrown tick is caught per-service,
|
|
12
|
-
* recorded via `recordFailure`, and the service keeps ticking on its own
|
|
13
|
-
* interval — a throw is recoverable, so it is retried in place on the next
|
|
14
|
-
* tick and no sibling is disturbed.
|
|
15
|
-
* - A tick that HANGS on an unbounded await (SSH, keychain) used to latch its
|
|
16
|
-
* in-flight guard `true` forever, silently freezing that one service for the
|
|
17
|
-
* daemon's life (observed ~51h). A hang cannot be retried in-process — the
|
|
18
|
-
* promise may never settle — so when a tick (or a `start()`/`restart()`
|
|
19
|
-
* lifecycle call) BREACHES its deadline the supervisor records the cause,
|
|
20
|
-
* flushes it to disk, and EXITS the process (code 70). systemd
|
|
21
|
-
* (`Restart=always`, `RestartSec=30`, `StartLimitIntervalSec=0`) and launchd
|
|
22
|
-
* (`KeepAlive` + `ThrottleInterval=30`) restart the daemon within ~30s and the
|
|
23
|
-
* wedged service comes back healthy with it.
|
|
24
|
-
*
|
|
25
|
-
* This is the PHNX-4116 model: there is NO `parked` state and NO in-process
|
|
26
|
-
* backoff restart. A supervised service is `idle` before start, `running` while
|
|
27
|
-
* ticking, or `stopped` after a live disable / shutdown — a hang is not a fourth
|
|
28
|
-
* state to sit in, it is a reason to hand the daemon back to its OS supervisor,
|
|
29
|
-
* which is what actually "just works" like systemd/launchd. `start()`/`stop()`/
|
|
30
|
-
* `restart()` stay bounded by {@link ServiceSupervisorOptions.lifecycleDeadlineMs}
|
|
31
|
-
* so a wedged bind or close cannot stall daemon startup or shutdown; a start /
|
|
32
|
-
* restart lifecycle breach exits the same way a tick breach does.
|
|
33
|
-
*/
|
|
34
1
|
import type { DaemonServiceId } from '../daemon-services.js';
|
|
35
2
|
import type { DaemonContext, DaemonService, ServiceHealth } from './service.js';
|
|
36
3
|
interface ServiceSupervisorOptions {
|
|
37
|
-
/**
|
|
38
|
-
* Hard cap on a service's `start()`/`stop()`/`restart()` call (PHNX-3608). A
|
|
39
|
-
* wedged bind/close would otherwise stall `startAll()` (which awaits each
|
|
40
|
-
* `startOne` in turn) or `stopAll()` at shutdown. A start/restart that breaches
|
|
41
|
-
* it exits the process for a supervised restart (PHNX-4116); a stop that
|
|
42
|
-
* breaches it is logged and the service is left marked stopped. Default 30s.
|
|
43
|
-
*/
|
|
44
4
|
lifecycleDeadlineMs?: number;
|
|
45
|
-
/**
|
|
46
|
-
* How the supervisor ends the process on a deadline breach. Defaults to
|
|
47
|
-
* `process.exit`; injected in tests so a breach is observable without actually
|
|
48
|
-
* exiting the test runner (PHNX-4116).
|
|
49
|
-
*/
|
|
50
5
|
exit?: (code: number) => never;
|
|
51
6
|
}
|
|
52
7
|
interface RegisterServiceOptions {
|
|
53
|
-
/** Register the lifecycle owner but leave it stopped until a live enable. */
|
|
54
8
|
enabled?: boolean;
|
|
55
9
|
}
|
|
56
10
|
export declare class ServiceSupervisor {
|
|
@@ -59,91 +13,25 @@ export declare class ServiceSupervisor {
|
|
|
59
13
|
private readonly lifecycleDeadlineMs;
|
|
60
14
|
private readonly exit;
|
|
61
15
|
constructor(opts?: ServiceSupervisorOptions);
|
|
62
|
-
/**
|
|
63
|
-
* Race `op` against a deadline. On breach the returned promise rejects with a
|
|
64
|
-
* labelled error while the real `op` is left to settle in the background —
|
|
65
|
-
* used to bound the lifecycle calls (`start`/`stop`/`restart`) so a wedged one
|
|
66
|
-
* cannot stall startup or shutdown. `Promise.race` cannot cancel `op`; the
|
|
67
|
-
* caller decides what a breach means for that service.
|
|
68
|
-
*/
|
|
69
16
|
private withDeadline;
|
|
70
|
-
/**
|
|
71
|
-
* Register a service. Must be called before `startAll()`.
|
|
72
|
-
*
|
|
73
|
-
* Accepts both `PeriodicService` (ticked on a fixed interval) and
|
|
74
|
-
* lifecycle-only `DaemonService` (started once, stopped at shutdown). The
|
|
75
|
-
* supervisor uses `isPeriodicService()` to decide whether to schedule a timer
|
|
76
|
-
* for each registered entry.
|
|
77
|
-
*/
|
|
78
17
|
register(service: DaemonService, options?: RegisterServiceOptions): void;
|
|
79
|
-
/**
|
|
80
|
-
* Flip a tick's in-flight guard off and release every `awaitIdle()` waiter in
|
|
81
|
-
* the same synchronous step, so no waiter's continuation can run while
|
|
82
|
-
* `inFlight` is still true (PHNX-3608).
|
|
83
|
-
*/
|
|
84
18
|
private clearInFlight;
|
|
85
|
-
/** Start every registered service and begin ticking each on its own timer. */
|
|
86
19
|
startAll(ctx: DaemonContext): Promise<void>;
|
|
87
|
-
/** Stop every registered service and clear all timers. */
|
|
88
20
|
stopAll(): Promise<void>;
|
|
89
|
-
/**
|
|
90
|
-
* Force one service to restart right now — drives `agents daemon services
|
|
91
|
-
* restart <id>` (RUSH-3193 P4). A plain stop + start, with no intermediate
|
|
92
|
-
* `parked` state (PHNX-4116).
|
|
93
|
-
*/
|
|
94
21
|
restartOne(id: DaemonServiceId): Promise<void>;
|
|
95
|
-
/** Whether `id` has a lifecycle owner on this supervisor, running or stopped. */
|
|
96
22
|
isRegistered(id: DaemonServiceId): boolean;
|
|
97
|
-
/** Every currently registered service id. */
|
|
98
23
|
registeredIds(): DaemonServiceId[];
|
|
99
|
-
/**
|
|
100
|
-
* Resolve when the service's current tick has really settled. Daemon control
|
|
101
|
-
* edges use this to queue a requested live transition without polling.
|
|
102
|
-
*/
|
|
103
24
|
awaitIdle(id: DaemonServiceId): Promise<void>;
|
|
104
|
-
/**
|
|
105
|
-
* Start one registered service live — drives `agents daemon services enable
|
|
106
|
-
* <id>` (RUSH-3193 P4). Only affects a service already registered on this
|
|
107
|
-
* supervisor. Callers that need live enable from a boot-disabled state must
|
|
108
|
-
* register the service with `{ enabled: false }`, which gives the supervisor
|
|
109
|
-
* ownership without running its startup side effects.
|
|
110
|
-
*/
|
|
111
25
|
start(id: DaemonServiceId): Promise<void>;
|
|
112
|
-
/** Stop one registered service live — drives `agents daemon services disable <id>` (RUSH-3193 P4). */
|
|
113
26
|
stop(id: DaemonServiceId): Promise<void>;
|
|
114
|
-
/** Request an immediate supervised tick, used by event edges that cannot wait for the regular cadence. */
|
|
115
27
|
runNow(id: DaemonServiceId): void;
|
|
116
|
-
/** Health for every registered service, keyed by service id. */
|
|
117
28
|
health(): Record<string, ServiceHealth>;
|
|
118
29
|
private startOne;
|
|
119
30
|
private stopOne;
|
|
120
31
|
private scheduleTimer;
|
|
121
|
-
/**
|
|
122
|
-
* Run one tick under a hard deadline (PHNX-3608, PHNX-4116). The tick receives
|
|
123
|
-
* an `AbortSignal` that is aborted when the deadline elapses, so a cooperating
|
|
124
|
-
* tick can bound its own I/O and unwind. The deadline itself is enforced with
|
|
125
|
-
* `Promise.race` — JS cannot forcibly cancel an arbitrary await.
|
|
126
|
-
*
|
|
127
|
-
* A tick that THROWS is recoverable: it is recorded and the interval keeps
|
|
128
|
-
* firing, so the service retries on its next tick. A tick that BREACHES its
|
|
129
|
-
* deadline is a hang that can never be retried in-process (the promise may
|
|
130
|
-
* never settle), so the supervisor exits the process (`exitForRestart`) and
|
|
131
|
-
* lets systemd/launchd restart the whole daemon.
|
|
132
|
-
*/
|
|
133
32
|
private runTick;
|
|
134
33
|
private recordFailure;
|
|
135
|
-
/**
|
|
136
|
-
* Record a deadline breach durably and exit the process so systemd/launchd
|
|
137
|
-
* restart the whole daemon (PHNX-4116). `recordSubsystemError` writes
|
|
138
|
-
* `health.json` synchronously (atomic write under a file lock), so the cause is
|
|
139
|
-
* on disk before we exit; `recordDaemonRestart` appends to the restart ledger
|
|
140
|
-
* `agents daemon status` reads for "restarts in the last 24h". Every timer is
|
|
141
|
-
* frozen first so no further tick fires between this decision and process death
|
|
142
|
-
* — and so an injected test `exit` (which does not actually exit) still observes
|
|
143
|
-
* exactly one call.
|
|
144
|
-
*/
|
|
145
34
|
private exitForRestart;
|
|
146
|
-
/** Clear every service's interval / startup timer — the process is exiting. */
|
|
147
35
|
private freezeTimers;
|
|
148
36
|
}
|
|
149
37
|
export {};
|
|
@@ -1,43 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ServiceSupervisor (RUSH-3193 P1, PHNX-4116).
|
|
3
|
-
*
|
|
4
|
-
* Owns the timer for every registered `PeriodicService`, replacing the bare
|
|
5
|
-
* `setInterval` closures in `runDaemon()`. Two failure modes motivated it, both
|
|
6
|
-
* observed in production, and each is now handled without ever leaving a service
|
|
7
|
-
* silently dark:
|
|
8
|
-
*
|
|
9
|
-
* - A throw escaping a tick's local try/catch used to hit the process-wide
|
|
10
|
-
* `uncaughtException` handler and `process.exit(1)` the whole daemon, taking
|
|
11
|
-
* every OTHER service down with it. Here a thrown tick is caught per-service,
|
|
12
|
-
* recorded via `recordFailure`, and the service keeps ticking on its own
|
|
13
|
-
* interval — a throw is recoverable, so it is retried in place on the next
|
|
14
|
-
* tick and no sibling is disturbed.
|
|
15
|
-
* - A tick that HANGS on an unbounded await (SSH, keychain) used to latch its
|
|
16
|
-
* in-flight guard `true` forever, silently freezing that one service for the
|
|
17
|
-
* daemon's life (observed ~51h). A hang cannot be retried in-process — the
|
|
18
|
-
* promise may never settle — so when a tick (or a `start()`/`restart()`
|
|
19
|
-
* lifecycle call) BREACHES its deadline the supervisor records the cause,
|
|
20
|
-
* flushes it to disk, and EXITS the process (code 70). systemd
|
|
21
|
-
* (`Restart=always`, `RestartSec=30`, `StartLimitIntervalSec=0`) and launchd
|
|
22
|
-
* (`KeepAlive` + `ThrottleInterval=30`) restart the daemon within ~30s and the
|
|
23
|
-
* wedged service comes back healthy with it.
|
|
24
|
-
*
|
|
25
|
-
* This is the PHNX-4116 model: there is NO `parked` state and NO in-process
|
|
26
|
-
* backoff restart. A supervised service is `idle` before start, `running` while
|
|
27
|
-
* ticking, or `stopped` after a live disable / shutdown — a hang is not a fourth
|
|
28
|
-
* state to sit in, it is a reason to hand the daemon back to its OS supervisor,
|
|
29
|
-
* which is what actually "just works" like systemd/launchd. `start()`/`stop()`/
|
|
30
|
-
* `restart()` stay bounded by {@link ServiceSupervisorOptions.lifecycleDeadlineMs}
|
|
31
|
-
* so a wedged bind or close cannot stall daemon startup or shutdown; a start /
|
|
32
|
-
* restart lifecycle breach exits the same way a tick breach does.
|
|
33
|
-
*/
|
|
34
1
|
import { recordSubsystemOk, recordSubsystemError, recordSubsystemState, recordDaemonRestart } from '../daemon-health.js';
|
|
35
2
|
import { isPeriodicService } from './service.js';
|
|
36
|
-
/**
|
|
37
|
-
* Exit code the supervisor uses when a deadline breach hands the daemon back to
|
|
38
|
-
* its OS supervisor for a restart. 70 (`EX_SOFTWARE`) marks an internal software
|
|
39
|
-
* fault, distinct from a clean shutdown (0) or a config error.
|
|
40
|
-
*/
|
|
41
3
|
const DEADLINE_EXIT_CODE = 70;
|
|
42
4
|
const DEFAULT_LIFECYCLE_DEADLINE_MS = 30_000;
|
|
43
5
|
export class ServiceSupervisor {
|
|
@@ -49,13 +11,6 @@ export class ServiceSupervisor {
|
|
|
49
11
|
this.lifecycleDeadlineMs = opts.lifecycleDeadlineMs ?? DEFAULT_LIFECYCLE_DEADLINE_MS;
|
|
50
12
|
this.exit = opts.exit ?? ((code) => process.exit(code));
|
|
51
13
|
}
|
|
52
|
-
/**
|
|
53
|
-
* Race `op` against a deadline. On breach the returned promise rejects with a
|
|
54
|
-
* labelled error while the real `op` is left to settle in the background —
|
|
55
|
-
* used to bound the lifecycle calls (`start`/`stop`/`restart`) so a wedged one
|
|
56
|
-
* cannot stall startup or shutdown. `Promise.race` cannot cancel `op`; the
|
|
57
|
-
* caller decides what a breach means for that service.
|
|
58
|
-
*/
|
|
59
14
|
async withDeadline(op, ms, label) {
|
|
60
15
|
let timer;
|
|
61
16
|
const deadline = new Promise((_, reject) => {
|
|
@@ -69,14 +24,6 @@ export class ServiceSupervisor {
|
|
|
69
24
|
clearTimeout(timer);
|
|
70
25
|
}
|
|
71
26
|
}
|
|
72
|
-
/**
|
|
73
|
-
* Register a service. Must be called before `startAll()`.
|
|
74
|
-
*
|
|
75
|
-
* Accepts both `PeriodicService` (ticked on a fixed interval) and
|
|
76
|
-
* lifecycle-only `DaemonService` (started once, stopped at shutdown). The
|
|
77
|
-
* supervisor uses `isPeriodicService()` to decide whether to schedule a timer
|
|
78
|
-
* for each registered entry.
|
|
79
|
-
*/
|
|
80
27
|
register(service, options = {}) {
|
|
81
28
|
if (this.registry.has(service.id))
|
|
82
29
|
throw new Error(`service '${service.id}' is already registered`);
|
|
@@ -90,11 +37,7 @@ export class ServiceSupervisor {
|
|
|
90
37
|
idleWaiters: [],
|
|
91
38
|
});
|
|
92
39
|
}
|
|
93
|
-
|
|
94
|
-
* Flip a tick's in-flight guard off and release every `awaitIdle()` waiter in
|
|
95
|
-
* the same synchronous step, so no waiter's continuation can run while
|
|
96
|
-
* `inFlight` is still true (PHNX-3608).
|
|
97
|
-
*/
|
|
40
|
+
// Resolve idle waiters in the same step that clears inFlight, so reload cannot race the active tick.
|
|
98
41
|
clearInFlight(entry) {
|
|
99
42
|
entry.inFlight = false;
|
|
100
43
|
const waiters = entry.idleWaiters;
|
|
@@ -102,7 +45,6 @@ export class ServiceSupervisor {
|
|
|
102
45
|
for (const resolve of waiters)
|
|
103
46
|
resolve();
|
|
104
47
|
}
|
|
105
|
-
/** Start every registered service and begin ticking each on its own timer. */
|
|
106
48
|
async startAll(ctx) {
|
|
107
49
|
this.ctx = ctx;
|
|
108
50
|
for (const [id, entry] of this.registry) {
|
|
@@ -111,16 +53,10 @@ export class ServiceSupervisor {
|
|
|
111
53
|
await this.startOne(id);
|
|
112
54
|
}
|
|
113
55
|
}
|
|
114
|
-
/** Stop every registered service and clear all timers. */
|
|
115
56
|
async stopAll() {
|
|
116
57
|
for (const id of this.registry.keys())
|
|
117
58
|
await this.stopOne(id, true);
|
|
118
59
|
}
|
|
119
|
-
/**
|
|
120
|
-
* Force one service to restart right now — drives `agents daemon services
|
|
121
|
-
* restart <id>` (RUSH-3193 P4). A plain stop + start, with no intermediate
|
|
122
|
-
* `parked` state (PHNX-4116).
|
|
123
|
-
*/
|
|
124
60
|
async restartOne(id) {
|
|
125
61
|
const entry = this.registry.get(id);
|
|
126
62
|
if (!entry)
|
|
@@ -131,39 +67,20 @@ export class ServiceSupervisor {
|
|
|
131
67
|
await this.stopOne(id, false);
|
|
132
68
|
await this.startOne(id);
|
|
133
69
|
}
|
|
134
|
-
/** Whether `id` has a lifecycle owner on this supervisor, running or stopped. */
|
|
135
70
|
isRegistered(id) {
|
|
136
71
|
return this.registry.has(id);
|
|
137
72
|
}
|
|
138
|
-
/** Every currently registered service id. */
|
|
139
73
|
registeredIds() {
|
|
140
74
|
return Array.from(this.registry.keys());
|
|
141
75
|
}
|
|
142
|
-
/**
|
|
143
|
-
* Resolve when the service's current tick has really settled. Daemon control
|
|
144
|
-
* edges use this to queue a requested live transition without polling.
|
|
145
|
-
*/
|
|
146
76
|
async awaitIdle(id) {
|
|
147
77
|
const entry = this.registry.get(id);
|
|
148
78
|
if (!entry)
|
|
149
79
|
throw new Error(`service '${id}' is not registered`);
|
|
150
|
-
// Resolve from clearInFlight (which also flips `inFlight` false) rather than
|
|
151
|
-
// from the tick promise directly: awaiting the tick promise resumed this
|
|
152
|
-
// caller on a shorter microtask chain than the tick's own finally, so a
|
|
153
|
-
// queued `.then(stop)` could run before `inFlight` was cleared and `stop()`
|
|
154
|
-
// would throw "cannot stop while a tick is still in flight" (PHNX-3608 — the
|
|
155
|
-
// SIGHUP live-disable regression). Waiting on the guard makes it deterministic.
|
|
156
80
|
if (!entry.inFlight)
|
|
157
81
|
return;
|
|
158
82
|
await new Promise((resolve) => { entry.idleWaiters.push(resolve); });
|
|
159
83
|
}
|
|
160
|
-
/**
|
|
161
|
-
* Start one registered service live — drives `agents daemon services enable
|
|
162
|
-
* <id>` (RUSH-3193 P4). Only affects a service already registered on this
|
|
163
|
-
* supervisor. Callers that need live enable from a boot-disabled state must
|
|
164
|
-
* register the service with `{ enabled: false }`, which gives the supervisor
|
|
165
|
-
* ownership without running its startup side effects.
|
|
166
|
-
*/
|
|
167
84
|
async start(id) {
|
|
168
85
|
const entry = this.registry.get(id);
|
|
169
86
|
if (!entry)
|
|
@@ -175,7 +92,6 @@ export class ServiceSupervisor {
|
|
|
175
92
|
}
|
|
176
93
|
await this.startOne(id);
|
|
177
94
|
}
|
|
178
|
-
/** Stop one registered service live — drives `agents daemon services disable <id>` (RUSH-3193 P4). */
|
|
179
95
|
async stop(id) {
|
|
180
96
|
const entry = this.registry.get(id);
|
|
181
97
|
if (!entry)
|
|
@@ -184,13 +100,11 @@ export class ServiceSupervisor {
|
|
|
184
100
|
return;
|
|
185
101
|
await this.stopOne(id, false);
|
|
186
102
|
}
|
|
187
|
-
/** Request an immediate supervised tick, used by event edges that cannot wait for the regular cadence. */
|
|
188
103
|
runNow(id) {
|
|
189
104
|
if (!this.registry.has(id))
|
|
190
105
|
throw new Error(`service '${id}' is not registered`);
|
|
191
106
|
void this.runTick(id);
|
|
192
107
|
}
|
|
193
|
-
/** Health for every registered service, keyed by service id. */
|
|
194
108
|
health() {
|
|
195
109
|
const out = {};
|
|
196
110
|
for (const [id, entry] of this.registry) {
|
|
@@ -212,9 +126,6 @@ export class ServiceSupervisor {
|
|
|
212
126
|
await this.withDeadline(() => entry.service.start(ctx), this.lifecycleDeadlineMs, `service '${id}' start`);
|
|
213
127
|
}
|
|
214
128
|
catch (err) {
|
|
215
|
-
// A thrown OR wedged start()/restart() cannot leave the service silently
|
|
216
|
-
// dark, and there is no `parked` state to fall back to (PHNX-4116): record
|
|
217
|
-
// the cause and exit so systemd/launchd restart the whole daemon and retry.
|
|
218
129
|
this.exitForRestart(id, err);
|
|
219
130
|
return;
|
|
220
131
|
}
|
|
@@ -224,9 +135,6 @@ export class ServiceSupervisor {
|
|
|
224
135
|
if (isPeriodicService(entry.service)) {
|
|
225
136
|
const startupDelayMs = entry.service.startupDelayMs ?? 0;
|
|
226
137
|
if (startupDelayMs > 0) {
|
|
227
|
-
// Defer BOTH the first tick and the recurring interval's start until the
|
|
228
|
-
// delay elapses — starting the interval at t=0 would fire its own ticks
|
|
229
|
-
// on top of the staggered one instead of after it.
|
|
230
138
|
entry.startupTimer = setTimeout(() => {
|
|
231
139
|
entry.startupTimer = undefined;
|
|
232
140
|
this.scheduleTimer(id);
|
|
@@ -239,11 +147,11 @@ export class ServiceSupervisor {
|
|
|
239
147
|
}
|
|
240
148
|
}
|
|
241
149
|
else {
|
|
242
|
-
// Lifecycle-only service: record health once on successful start (no ticks).
|
|
243
150
|
entry.lastRunMs = Date.now();
|
|
244
151
|
recordSubsystemOk(id);
|
|
245
152
|
}
|
|
246
153
|
}
|
|
154
|
+
// Clear deadline timers before abort: a hung tick must not turn deliberate shutdown into an OS restart.
|
|
247
155
|
async stopOne(id, force) {
|
|
248
156
|
const entry = this.registry.get(id);
|
|
249
157
|
if (!entry)
|
|
@@ -259,25 +167,14 @@ export class ServiceSupervisor {
|
|
|
259
167
|
clearTimeout(entry.startupTimer);
|
|
260
168
|
entry.startupTimer = undefined;
|
|
261
169
|
}
|
|
262
|
-
// Cancel the in-flight tick's deadline timer too — leaving it armed lets it
|
|
263
|
-
// fire `exitForRestart` mid-shutdown if the hung tick ignores the abort
|
|
264
|
-
// below (PHNX-4116). The `state === 'stopped'` guard in `runTick` is the
|
|
265
|
-
// belt to this braces.
|
|
266
170
|
if (entry.deadlineTimer) {
|
|
267
171
|
clearTimeout(entry.deadlineTimer);
|
|
268
172
|
entry.deadlineTimer = undefined;
|
|
269
173
|
}
|
|
270
174
|
entry.state = 'stopped';
|
|
271
175
|
recordSubsystemState(id, 'stopped');
|
|
272
|
-
// Signal any in-flight tick to unwind — a cooperating tick threads this into
|
|
273
|
-
// its I/O and returns promptly at shutdown instead of blocking on it.
|
|
274
176
|
entry.activeController?.abort();
|
|
275
|
-
// Whole-daemon shutdown must not hang forever on an unresolved tick, but it
|
|
276
|
-
// also must not tear down resources the tick may still be using. Stop its
|
|
277
|
-
// timers and mark it stopped; process exit owns final cleanup in this case.
|
|
278
177
|
if (entry.inFlight && force) {
|
|
279
|
-
// Release any awaitIdle waiter — the service is stopping, so no one should
|
|
280
|
-
// keep waiting on a tick that will now be abandoned at process exit.
|
|
281
178
|
const waiters = entry.idleWaiters;
|
|
282
179
|
entry.idleWaiters = [];
|
|
283
180
|
for (const resolve of waiters)
|
|
@@ -285,9 +182,8 @@ export class ServiceSupervisor {
|
|
|
285
182
|
return;
|
|
286
183
|
}
|
|
287
184
|
if (!entry.everStarted)
|
|
288
|
-
return;
|
|
185
|
+
return;
|
|
289
186
|
try {
|
|
290
|
-
// A wedged stop() must not stall stopAll() at shutdown (PHNX-3608).
|
|
291
187
|
await this.withDeadline(() => entry.service.stop(), this.lifecycleDeadlineMs, `service '${id}' stop`);
|
|
292
188
|
}
|
|
293
189
|
catch (err) {
|
|
@@ -300,25 +196,12 @@ export class ServiceSupervisor {
|
|
|
300
196
|
return;
|
|
301
197
|
entry.timer = setInterval(() => { void this.runTick(id); }, entry.service.intervalMs);
|
|
302
198
|
}
|
|
303
|
-
|
|
304
|
-
* Run one tick under a hard deadline (PHNX-3608, PHNX-4116). The tick receives
|
|
305
|
-
* an `AbortSignal` that is aborted when the deadline elapses, so a cooperating
|
|
306
|
-
* tick can bound its own I/O and unwind. The deadline itself is enforced with
|
|
307
|
-
* `Promise.race` — JS cannot forcibly cancel an arbitrary await.
|
|
308
|
-
*
|
|
309
|
-
* A tick that THROWS is recoverable: it is recorded and the interval keeps
|
|
310
|
-
* firing, so the service retries on its next tick. A tick that BREACHES its
|
|
311
|
-
* deadline is a hang that can never be retried in-process (the promise may
|
|
312
|
-
* never settle), so the supervisor exits the process (`exitForRestart`) and
|
|
313
|
-
* lets systemd/launchd restart the whole daemon.
|
|
314
|
-
*/
|
|
199
|
+
// Thrown ticks retry; a deadline may never settle, so record it durably and exit 70 for supervised restart instead of parking.
|
|
315
200
|
async runTick(id) {
|
|
316
201
|
const entry = this.registry.get(id);
|
|
317
202
|
const ctx = this.ctx;
|
|
318
203
|
if (!entry || !ctx || entry.state !== 'running' || entry.inFlight)
|
|
319
204
|
return;
|
|
320
|
-
// runTick is only called for periodic services (from scheduleTimer and startOne).
|
|
321
|
-
// The isPeriodicService guard here keeps TypeScript narrowing correct.
|
|
322
205
|
if (!isPeriodicService(entry.service))
|
|
323
206
|
return;
|
|
324
207
|
const periodicService = entry.service;
|
|
@@ -342,27 +225,12 @@ export class ServiceSupervisor {
|
|
|
342
225
|
recordSubsystemOk(id);
|
|
343
226
|
}
|
|
344
227
|
catch (err) {
|
|
345
|
-
// A stopped service must never exit the process: `stopOne` may have
|
|
346
|
-
// force-stopped this tick (aborting its signal) while the deadline timer
|
|
347
|
-
// was still armed, and a hang that ignored the abort would otherwise let
|
|
348
|
-
// that timer fire `exitForRestart` mid-shutdown — wrong exit code, a
|
|
349
|
-
// spurious restart-ledger entry, and `handleShutdown` cleanup skipped
|
|
350
|
-
// (PHNX-4116). This is the belt to `stopOne`'s clearTimeout braces. Read
|
|
351
|
-
// the state fresh: `stopOne` mutated it across the `await` above, past the
|
|
352
|
-
// narrowing the top-of-function `state !== 'running'` guard applied.
|
|
353
228
|
const stoppedDuringTick = this.registry.get(id)?.state === 'stopped';
|
|
354
229
|
if (timedOut && !stoppedDuringTick) {
|
|
355
|
-
// Abort the runaway tick's signal so a cooperating tick can unwind, then
|
|
356
|
-
// hand the daemon back to its OS supervisor: a hang has no in-process
|
|
357
|
-
// recovery (PHNX-4116). `exitForRestart` calls `process.exit`, so nothing
|
|
358
|
-
// below runs in production; the injected test exit returns, and the
|
|
359
|
-
// `finally` still releases the in-flight guard.
|
|
360
230
|
controller.abort();
|
|
361
231
|
this.exitForRestart(id, err);
|
|
362
232
|
return;
|
|
363
233
|
}
|
|
364
|
-
// A throw is recoverable — record it and keep ticking on the next interval.
|
|
365
|
-
// A deadline breach of an already-stopped service is intentionally dropped.
|
|
366
234
|
if (!timedOut)
|
|
367
235
|
this.recordFailure(entry, id, err);
|
|
368
236
|
}
|
|
@@ -383,16 +251,6 @@ export class ServiceSupervisor {
|
|
|
383
251
|
recordSubsystemError(id, message);
|
|
384
252
|
this.ctx?.log('WARN', `service '${id}' failed: ${message}`);
|
|
385
253
|
}
|
|
386
|
-
/**
|
|
387
|
-
* Record a deadline breach durably and exit the process so systemd/launchd
|
|
388
|
-
* restart the whole daemon (PHNX-4116). `recordSubsystemError` writes
|
|
389
|
-
* `health.json` synchronously (atomic write under a file lock), so the cause is
|
|
390
|
-
* on disk before we exit; `recordDaemonRestart` appends to the restart ledger
|
|
391
|
-
* `agents daemon status` reads for "restarts in the last 24h". Every timer is
|
|
392
|
-
* frozen first so no further tick fires between this decision and process death
|
|
393
|
-
* — and so an injected test `exit` (which does not actually exit) still observes
|
|
394
|
-
* exactly one call.
|
|
395
|
-
*/
|
|
396
254
|
exitForRestart(id, err) {
|
|
397
255
|
const cause = err instanceof Error ? err.message : String(err);
|
|
398
256
|
const entry = this.registry.get(id);
|
|
@@ -406,7 +264,6 @@ export class ServiceSupervisor {
|
|
|
406
264
|
this.freezeTimers();
|
|
407
265
|
this.exit(DEADLINE_EXIT_CODE);
|
|
408
266
|
}
|
|
409
|
-
/** Clear every service's interval / startup timer — the process is exiting. */
|
|
410
267
|
freezeTimers() {
|
|
411
268
|
for (const entry of this.registry.values()) {
|
|
412
269
|
if (entry.timer) {
|