@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,57 +1,25 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Monitor evaluate/fire loop.
|
|
3
|
-
*
|
|
4
|
-
* Modeled on the routines daemon: a single MonitorEngine lives inside runDaemon()
|
|
5
|
-
* beside the cron JobScheduler. On each tick it evaluates every enabled monitor
|
|
6
|
-
* that is DUE and owned by this device, applies the condition through the native
|
|
7
|
-
* state-diff store, and on a fire dispatches the action, writes a fire record, and
|
|
8
|
-
* updates state. A per-monitor rate limit auto-pauses a firehose.
|
|
9
|
-
*
|
|
10
|
-
* v1 covers the poll model (command, poll, poll-http, file, device). Push sources
|
|
11
|
-
* (ws, webhook) return null from `evaluate` — they deliver through `subscribe` /
|
|
12
|
-
* the webhook receiver, wired in a follow-up; the engine treats them as inert.
|
|
13
|
-
*/
|
|
14
1
|
import { type MonitorConfig, type MonitorEvent } from './config.js';
|
|
15
2
|
import { type Observation } from './sources/index.js';
|
|
16
|
-
/** How often the engine wakes to check which monitors are due. */
|
|
17
3
|
export declare const MONITOR_ENGINE_TICK_MS = 5000;
|
|
18
|
-
/** Poll-model source types the engine actually evaluates on a cadence; ws/webhook are push-only and inert here. */
|
|
19
4
|
export declare const POLL_SOURCE_TYPES: Set<string>;
|
|
20
|
-
/**
|
|
21
|
-
* Whether a monitor's liveness has crossed into a drought worth notifying the
|
|
22
|
-
* owner about: enough consecutive failed checks, and not already notified for
|
|
23
|
-
* this drought. Pure so the branch is unit-testable without a real notify.
|
|
24
|
-
*/
|
|
25
5
|
export declare function shouldEscalateDrought(liveness: MonitorLivenessLike): boolean;
|
|
26
|
-
/** The liveness fields the drought predicate reads. */
|
|
27
6
|
interface MonitorLivenessLike {
|
|
28
7
|
consecutiveErrors: number;
|
|
29
8
|
droughtNotifiedAt?: string;
|
|
30
9
|
}
|
|
31
|
-
/** The fire/no-fire decision for one observation, plus what to persist. */
|
|
32
10
|
interface FireDecision {
|
|
33
11
|
fire: boolean;
|
|
34
|
-
/** The value whose de-dupe signature is stored on persist. */
|
|
35
12
|
value: string;
|
|
36
|
-
/** The de-dupe key (regex) applied to the value, if any. */
|
|
37
13
|
dedupeKey?: string;
|
|
38
|
-
/** Persist `value` as the new baseline even when not firing (on-change baseline). */
|
|
39
14
|
persist: boolean;
|
|
40
|
-
/** The event to dispatch, present iff `fire`. */
|
|
41
15
|
event: MonitorEvent | null;
|
|
42
16
|
}
|
|
43
|
-
/**
|
|
44
|
-
* Apply a monitor's condition to an observation. Pure (reads state, never
|
|
45
|
-
* writes), so both the tick loop and the `test` dry-run share it.
|
|
46
|
-
*/
|
|
47
17
|
export declare function decideFire(monitor: MonitorConfig, observation: Observation): FireDecision;
|
|
48
|
-
/** One evaluation of a monitor's source + condition, without side effects. Used by `test`. */
|
|
49
18
|
export declare function evaluateMonitorOnce(monitor: MonitorConfig): Promise<{
|
|
50
19
|
observation: Observation | null;
|
|
51
20
|
decision: FireDecision | null;
|
|
52
21
|
}>;
|
|
53
22
|
type LogFn = (level: string, message: string) => void;
|
|
54
|
-
/** The durable monitor engine. One instance per daemon. */
|
|
55
23
|
export declare class MonitorEngine {
|
|
56
24
|
private logFn;
|
|
57
25
|
private timer;
|
|
@@ -60,37 +28,17 @@ export declare class MonitorEngine {
|
|
|
60
28
|
private ticking;
|
|
61
29
|
private running;
|
|
62
30
|
constructor(logFn?: LogFn);
|
|
63
|
-
/** Load owned+enabled monitors and start the tick loop. */
|
|
64
31
|
start(options?: {
|
|
65
32
|
externalScheduler?: boolean;
|
|
66
33
|
}): void;
|
|
67
|
-
/** Reload monitor configs (SIGHUP). */
|
|
68
34
|
reload(): void;
|
|
69
|
-
/** Stop the tick loop. No monitor dispatches after this until `start()`. */
|
|
70
35
|
stop(): void;
|
|
71
36
|
private loadAll;
|
|
72
37
|
private intervalMs;
|
|
73
38
|
private isDue;
|
|
74
|
-
|
|
75
|
-
tick(): Promise<void>;
|
|
76
|
-
/**
|
|
77
|
-
* Evaluate one monitor once and record the outcome. Public so the daemon tick
|
|
78
|
-
* and tests drive the exact same path. A "failed check" is an evaluation that
|
|
79
|
-
* produced no observation, threw, OR fired an action that failed — all three
|
|
80
|
-
* are "the monitor ran and accomplished nothing", the drought signal. A poll
|
|
81
|
-
* that observes and either fires cleanly or matches nothing is a success and
|
|
82
|
-
* resets the streak.
|
|
83
|
-
*/
|
|
39
|
+
tick(launchWindowMs?: number): Promise<void>;
|
|
84
40
|
runMonitor(monitor: MonitorConfig): Promise<void>;
|
|
85
|
-
/**
|
|
86
|
-
* Record the poll heartbeat and, on a sustained failure streak, escalate a
|
|
87
|
-
* drought to the owner exactly once. The heartbeat is what makes a
|
|
88
|
-
* polling-but-not-matching monitor visibly distinct from one the engine never
|
|
89
|
-
* touched (RUSH-2485); the streak is what turns "every poll fails and the owner
|
|
90
|
-
* never hears about it" into one notification.
|
|
91
|
-
*/
|
|
92
41
|
private afterCheck;
|
|
93
|
-
/** Notify the owner that an enabled monitor has failed N checks in a row and done nothing. */
|
|
94
42
|
private escalateDrought;
|
|
95
43
|
private fire;
|
|
96
44
|
}
|
|
@@ -1,40 +1,14 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Monitor evaluate/fire loop.
|
|
3
|
-
*
|
|
4
|
-
* Modeled on the routines daemon: a single MonitorEngine lives inside runDaemon()
|
|
5
|
-
* beside the cron JobScheduler. On each tick it evaluates every enabled monitor
|
|
6
|
-
* that is DUE and owned by this device, applies the condition through the native
|
|
7
|
-
* state-diff store, and on a fire dispatches the action, writes a fire record, and
|
|
8
|
-
* updates state. A per-monitor rate limit auto-pauses a firehose.
|
|
9
|
-
*
|
|
10
|
-
* v1 covers the poll model (command, poll, poll-http, file, device). Push sources
|
|
11
|
-
* (ws, webhook) return null from `evaluate` — they deliver through `subscribe` /
|
|
12
|
-
* the webhook receiver, wired in a follow-up; the engine treats them as inert.
|
|
13
|
-
*/
|
|
14
1
|
import { listMonitors, monitorRunsOnThisDevice, parseInterval, setMonitorEnabled, } from './config.js';
|
|
15
2
|
import { evaluateSource } from './sources/index.js';
|
|
16
3
|
import { hasChanged, readState, writeState, recordFireTime, writeFireRecord, recordCheck, markDroughtNotified, } from './state.js';
|
|
17
4
|
import { dispatchAction, injectEvent } from './dispatch.js';
|
|
18
5
|
import { sendToOwner } from '../notify.js';
|
|
19
6
|
import { readRunMeta } from '../scheduling/routines.js';
|
|
20
|
-
/** How often the engine wakes to check which monitors are due. */
|
|
21
7
|
export const MONITOR_ENGINE_TICK_MS = 5_000;
|
|
22
|
-
/** Default evaluation cadence for sources that carry no explicit interval. */
|
|
23
8
|
const DEFAULT_INTERVAL_MS = 60_000;
|
|
24
|
-
|
|
25
|
-
* Consecutive failed polls before the engine escalates a drought to the owner.
|
|
26
|
-
* A monitor that looks healthy (enabled, daemon up) but whose source errors
|
|
27
|
-
* every poll does no real work — the "every signal reads healthy while zero work
|
|
28
|
-
* happened" failure RUSH-2485 is about. One notification per drought.
|
|
29
|
-
*/
|
|
9
|
+
const MAX_CONCURRENT_POLLS = 4;
|
|
30
10
|
const DROUGHT_THRESHOLD = 5;
|
|
31
|
-
/** Poll-model source types the engine actually evaluates on a cadence; ws/webhook are push-only and inert here. */
|
|
32
11
|
export const POLL_SOURCE_TYPES = new Set(['command', 'poll', 'poll-http', 'file', 'device']);
|
|
33
|
-
/**
|
|
34
|
-
* Whether a monitor's liveness has crossed into a drought worth notifying the
|
|
35
|
-
* owner about: enough consecutive failed checks, and not already notified for
|
|
36
|
-
* this drought. Pure so the branch is unit-testable without a real notify.
|
|
37
|
-
*/
|
|
38
12
|
export function shouldEscalateDrought(liveness) {
|
|
39
13
|
return liveness.consecutiveErrors >= DROUGHT_THRESHOLD && !liveness.droughtNotifiedAt;
|
|
40
14
|
}
|
|
@@ -45,30 +19,16 @@ function truncateSummary(text) {
|
|
|
45
19
|
function buildEvent(monitor, summary, payload) {
|
|
46
20
|
return { monitorName: monitor.name, firedAt: new Date().toISOString(), summary, payload };
|
|
47
21
|
}
|
|
48
|
-
|
|
49
|
-
* Apply a monitor's condition to an observation. Pure (reads state, never
|
|
50
|
-
* writes), so both the tick loop and the `test` dry-run share it.
|
|
51
|
-
*/
|
|
22
|
+
// Failed observations never move state; every-mode ignores blank output, while the first valid on-change value, even empty, becomes a silent baseline.
|
|
52
23
|
export function decideFire(monitor, observation) {
|
|
53
24
|
const cond = monitor.condition;
|
|
54
25
|
const raw = observation.raw;
|
|
55
26
|
const payload = observation.meta ?? {};
|
|
56
27
|
const dedupeKey = cond.dedupeKey;
|
|
57
|
-
// A snapshot the source flagged as an OBSERVATION FAILURE (a poll that exited
|
|
58
|
-
// non-zero or emitted a transport/auth/rate-limit error) is never a value
|
|
59
|
-
// change: don't fire, don't move the baseline — so an empty→error→empty flap
|
|
60
|
-
// can't read as two value changes (PHNX-3510). The engine records it as a
|
|
61
|
-
// failed check separately, feeding the drought health streak.
|
|
62
28
|
if (observation.failed) {
|
|
63
29
|
return { fire: false, value: raw, dedupeKey, persist: false, event: null };
|
|
64
30
|
}
|
|
65
31
|
if (cond.mode === 'every') {
|
|
66
|
-
// Fire on every tick that carries a real observation. An empty (or
|
|
67
|
-
// whitespace-only) observation means "nothing to report": firing an action
|
|
68
|
-
// with an empty {event} is never useful, and skipping it lets a poll whose
|
|
69
|
-
// command yields no rows (e.g. no mergeable PR) stay silent while still
|
|
70
|
-
// re-firing every tick the set is non-empty — the retry semantics a
|
|
71
|
-
// silently-failed action dispatch needs (RUSH-2488).
|
|
72
32
|
if (raw.trim() === '') {
|
|
73
33
|
return { fire: false, value: raw, dedupeKey, persist: false, event: null };
|
|
74
34
|
}
|
|
@@ -101,8 +61,6 @@ export function decideFire(monitor, observation) {
|
|
|
101
61
|
event: changed ? buildEvent(monitor, truncateSummary(matchedValue), payload) : null,
|
|
102
62
|
};
|
|
103
63
|
}
|
|
104
|
-
// on-change (default): the first observation establishes a silent baseline;
|
|
105
|
-
// thereafter fire when the de-dupe signature differs from last-seen.
|
|
106
64
|
const prior = readState(monitor.name);
|
|
107
65
|
if (!prior) {
|
|
108
66
|
return { fire: false, value: raw, dedupeKey, persist: true, event: null };
|
|
@@ -116,14 +74,12 @@ export function decideFire(monitor, observation) {
|
|
|
116
74
|
event: changed ? buildEvent(monitor, truncateSummary(raw), payload) : null,
|
|
117
75
|
};
|
|
118
76
|
}
|
|
119
|
-
/** One evaluation of a monitor's source + condition, without side effects. Used by `test`. */
|
|
120
77
|
export async function evaluateMonitorOnce(monitor) {
|
|
121
78
|
const observation = await evaluateSource(monitor.source);
|
|
122
79
|
if (!observation)
|
|
123
80
|
return { observation: null, decision: null };
|
|
124
81
|
return { observation, decision: decideFire(monitor, observation) };
|
|
125
82
|
}
|
|
126
|
-
/** The durable monitor engine. One instance per daemon. */
|
|
127
83
|
export class MonitorEngine {
|
|
128
84
|
logFn;
|
|
129
85
|
timer = null;
|
|
@@ -134,7 +90,6 @@ export class MonitorEngine {
|
|
|
134
90
|
constructor(logFn = () => { }) {
|
|
135
91
|
this.logFn = logFn;
|
|
136
92
|
}
|
|
137
|
-
/** Load owned+enabled monitors and start the tick loop. */
|
|
138
93
|
start(options = {}) {
|
|
139
94
|
this.running = true;
|
|
140
95
|
this.loadAll();
|
|
@@ -143,12 +98,10 @@ export class MonitorEngine {
|
|
|
143
98
|
this.timer = setInterval(() => void this.tick(), MONITOR_ENGINE_TICK_MS);
|
|
144
99
|
}
|
|
145
100
|
}
|
|
146
|
-
/** Reload monitor configs (SIGHUP). */
|
|
147
101
|
reload() {
|
|
148
102
|
this.loadAll();
|
|
149
103
|
this.logFn('INFO', `Monitor engine reloaded (${this.monitors.length} monitor(s) on this device)`);
|
|
150
104
|
}
|
|
151
|
-
/** Stop the tick loop. No monitor dispatches after this until `start()`. */
|
|
152
105
|
stop() {
|
|
153
106
|
this.running = false;
|
|
154
107
|
if (this.timer) {
|
|
@@ -168,39 +121,29 @@ export class MonitorEngine {
|
|
|
168
121
|
const last = this.lastEval.get(monitor.name) ?? 0;
|
|
169
122
|
return now - last >= this.intervalMs(monitor);
|
|
170
123
|
}
|
|
171
|
-
|
|
172
|
-
async tick() {
|
|
173
|
-
// A stopped engine dispatches nothing (PHNX-3608): under the external
|
|
174
|
-
// scheduler the supervisor owns the timer, so a `stop()` (monitors service
|
|
175
|
-
// disabled) must be honoured HERE — otherwise the next supervised tick would
|
|
176
|
-
// still fire the last-loaded monitors even though the engine is stopped.
|
|
124
|
+
async tick(launchWindowMs = Infinity) {
|
|
177
125
|
if (!this.running || this.ticking)
|
|
178
126
|
return;
|
|
179
127
|
this.ticking = true;
|
|
180
128
|
try {
|
|
181
|
-
const
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
129
|
+
const startedAt = Date.now();
|
|
130
|
+
const due = this.monitors
|
|
131
|
+
.filter((monitor) => this.isDue(monitor, startedAt))
|
|
132
|
+
.sort((a, b) => (this.lastEval.get(a.name) ?? 0) - (this.lastEval.get(b.name) ?? 0));
|
|
133
|
+
const worker = async () => {
|
|
134
|
+
while (this.running && due.length > 0 && Date.now() - startedAt < launchWindowMs) {
|
|
135
|
+
const monitor = due.shift();
|
|
136
|
+
this.lastEval.set(monitor.name, Date.now());
|
|
137
|
+
await this.runMonitor(monitor);
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
await Promise.all(Array.from({ length: MAX_CONCURRENT_POLLS }, worker));
|
|
188
141
|
}
|
|
189
142
|
finally {
|
|
190
143
|
this.ticking = false;
|
|
191
144
|
}
|
|
192
145
|
}
|
|
193
|
-
/**
|
|
194
|
-
* Evaluate one monitor once and record the outcome. Public so the daemon tick
|
|
195
|
-
* and tests drive the exact same path. A "failed check" is an evaluation that
|
|
196
|
-
* produced no observation, threw, OR fired an action that failed — all three
|
|
197
|
-
* are "the monitor ran and accomplished nothing", the drought signal. A poll
|
|
198
|
-
* that observes and either fires cleanly or matches nothing is a success and
|
|
199
|
-
* resets the streak.
|
|
200
|
-
*/
|
|
201
146
|
async runMonitor(monitor) {
|
|
202
|
-
// Push-only sources (ws/webhook) deliver through subscribe, not this loop —
|
|
203
|
-
// they return null from evaluate by design, so they have no poll to record.
|
|
204
147
|
const isPollSource = POLL_SOURCE_TYPES.has(monitor.source.type);
|
|
205
148
|
if (!isPollSource)
|
|
206
149
|
return;
|
|
@@ -212,12 +155,6 @@ export class MonitorEngine {
|
|
|
212
155
|
checkError = 'source produced no observation';
|
|
213
156
|
}
|
|
214
157
|
else if (observation.failed) {
|
|
215
|
-
// The poll ran but did not OBSERVE (non-zero exit, or a transport/auth/
|
|
216
|
-
// rate-limit error in its output). Skip it entirely: no decideFire, no
|
|
217
|
-
// fire, watched-state untouched — so no empty→error→empty flap dispatches
|
|
218
|
-
// an agent on a dead premise. Record it as a failed check so a sustained
|
|
219
|
-
// streak escalates as a drought, the same health surface `--postcondition`
|
|
220
|
-
// uses on the action side (PHNX-3510).
|
|
221
158
|
checkError = `poll failed: ${observation.failureReason ?? 'observation failure'}`;
|
|
222
159
|
this.logFn('WARN', `monitor '${monitor.name}' poll failed (${observation.failureReason ?? 'observation failure'}) — not treated as a value change`);
|
|
223
160
|
}
|
|
@@ -229,7 +166,6 @@ export class MonitorEngine {
|
|
|
229
166
|
checkError = `action ${result.kind} failed: ${result.error ?? 'unknown'}`;
|
|
230
167
|
}
|
|
231
168
|
else if (decision.persist) {
|
|
232
|
-
// Silent baseline / no-change: record the value so we don't re-fire.
|
|
233
169
|
writeState(monitor.name, decision.value, decision.dedupeKey);
|
|
234
170
|
}
|
|
235
171
|
}
|
|
@@ -240,24 +176,15 @@ export class MonitorEngine {
|
|
|
240
176
|
}
|
|
241
177
|
this.afterCheck(monitor, checkedAt, checkError);
|
|
242
178
|
}
|
|
243
|
-
|
|
244
|
-
* Record the poll heartbeat and, on a sustained failure streak, escalate a
|
|
245
|
-
* drought to the owner exactly once. The heartbeat is what makes a
|
|
246
|
-
* polling-but-not-matching monitor visibly distinct from one the engine never
|
|
247
|
-
* touched (RUSH-2485); the streak is what turns "every poll fails and the owner
|
|
248
|
-
* never hears about it" into one notification.
|
|
249
|
-
*/
|
|
179
|
+
// Liveness is independent of change state: every poll updates it and recovery resets the drought.
|
|
250
180
|
afterCheck(monitor, checkedAt, error) {
|
|
251
181
|
const liveness = recordCheck(monitor.name, checkedAt, error);
|
|
252
182
|
if (error && shouldEscalateDrought(liveness)) {
|
|
253
183
|
void this.escalateDrought(monitor, liveness.consecutiveErrors, error);
|
|
254
184
|
}
|
|
255
185
|
}
|
|
256
|
-
/** Notify the owner that an enabled monitor has failed N checks in a row and done nothing. */
|
|
257
186
|
async escalateDrought(monitor, consecutiveErrors, error) {
|
|
258
187
|
const at = new Date().toISOString();
|
|
259
|
-
// Stamp the marker BEFORE the send so a slow/failing notify can't re-fire the
|
|
260
|
-
// drought on the next tick; recordCheck clears it on the first good check.
|
|
261
188
|
markDroughtNotified(monitor.name, at);
|
|
262
189
|
const text = `Monitor '${monitor.name}' has failed ${consecutiveErrors} checks in a row and accomplished nothing. ` +
|
|
263
190
|
`Last error: ${error}`;
|
|
@@ -273,24 +200,18 @@ export class MonitorEngine {
|
|
|
273
200
|
async fire(monitor, decision, event) {
|
|
274
201
|
const now = Date.now();
|
|
275
202
|
let fireTimes;
|
|
276
|
-
// Firehose guard: auto-pause a monitor that exceeds its rate limit.
|
|
277
203
|
if (monitor.rateLimit) {
|
|
278
204
|
const windowMs = parseInterval(monitor.rateLimit.per) ?? 60_000;
|
|
279
205
|
fireTimes = recordFireTime(monitor.name, now, windowMs);
|
|
280
206
|
if (fireTimes.length > monitor.rateLimit.max) {
|
|
281
|
-
// Record the tripped event in fire history too, so `agents monitors runs`
|
|
282
|
-
// reflects what `view`'s `lastFiredAt` shows — the firehose event the guard
|
|
283
|
-
// exists to surface must not be invisible in the fire log.
|
|
284
207
|
writeFireRecord(event, { action: monitor.action.type, ok: false, error: 'rate limited — auto-paused' });
|
|
285
208
|
writeState(monitor.name, decision.value, decision.dedupeKey, { lastFiredAt: event.firedAt, fireTimes });
|
|
286
209
|
try {
|
|
287
210
|
setMonitorEnabled(monitor.name, false);
|
|
288
211
|
}
|
|
289
|
-
catch {
|
|
212
|
+
catch { }
|
|
290
213
|
this.logFn('WARN', `monitor '${monitor.name}' exceeded rate limit (${monitor.rateLimit.max}/${monitor.rateLimit.per}) — auto-paused`);
|
|
291
214
|
this.loadAll();
|
|
292
|
-
// An auto-pause is a deliberate stop, not a failed action — don't let it
|
|
293
|
-
// feed the drought streak (the monitor is now disabled anyway).
|
|
294
215
|
return { kind: monitor.action.type, ok: true };
|
|
295
216
|
}
|
|
296
217
|
}
|
|
@@ -301,17 +222,7 @@ export class MonitorEngine {
|
|
|
301
222
|
catch (err) {
|
|
302
223
|
result = { kind: monitor.action.type, ok: false, error: err.message };
|
|
303
224
|
}
|
|
304
|
-
// Best-effort snapshot of the run's status AT THIS INSTANT — the same
|
|
305
|
-
// synchronous view `dispatchAction` just returned from. For the async-race
|
|
306
|
-
// case (RUSH-2690) this reads 'running': the dispatched process is still
|
|
307
|
-
// in flight, `ok` was frozen on that transient state, and the real outcome
|
|
308
|
-
// is not known yet. Recorded so a future reconciliation pass can find
|
|
309
|
-
// exactly the fires whose `ok` needs revisiting; `resolveFireOutcome`
|
|
310
|
-
// (state.ts) never trusts this field — it re-reads the run fresh instead.
|
|
311
225
|
const runStatusAtFire = result.runId ? readRunMeta(monitor.name, result.runId)?.status : undefined;
|
|
312
|
-
// Snapshot the postcondition with `{event}` already interpolated so a later
|
|
313
|
-
// `resolveFireOutcome` can assert the stated effect without re-reading YAML
|
|
314
|
-
// (PHNX-2842). Notify/webhook-out have no run to settle, so they skip this.
|
|
315
226
|
const postcondition = (result.kind === 'run' || result.kind === 'routine') && monitor.action.postcondition
|
|
316
227
|
? injectEvent(monitor.action.postcondition, event)
|
|
317
228
|
: undefined;
|
|
@@ -1,46 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Semantic identity of a monitor — "are these two definitions the same watcher?"
|
|
3
|
-
*
|
|
4
|
-
* A monitor's NAME is not its identity. Two monitors can poll the same command
|
|
5
|
-
* on the same interval and fire the same action under two different names, and
|
|
6
|
-
* nothing today notices: `writeMonitor` overwrites by name and never compares
|
|
7
|
-
* arguments. Observed on one box: `open-pr-watch`, `pr-ci-fail`, three stale
|
|
8
|
-
* `pr2222-*` watchers, and an agent-added lander, all polling
|
|
9
|
-
* `gh pr list ... phnx-labs/agents-cli` — four overlapping triggers on one PR
|
|
10
|
-
* queue, added without a single warning.
|
|
11
|
-
*
|
|
12
|
-
* That is the double-trigger bug class. The fingerprint is what lets `add`
|
|
13
|
-
* refuse it.
|
|
14
|
-
*
|
|
15
|
-
* WHAT IS HASHED: only fields that change what the monitor DOES — the source it
|
|
16
|
-
* watches, how often, the condition that fires, and the action it takes. Name,
|
|
17
|
-
* description, and `enabled` are deliberately excluded, because a duplicate
|
|
18
|
-
* under a new name is exactly the case being caught, and a paused duplicate is
|
|
19
|
-
* still a duplicate the moment someone resumes it.
|
|
20
|
-
*
|
|
21
|
-
* WHAT IS NOT HASHED: `device`/`devices`/`runOn`. Placement is who executes, not
|
|
22
|
-
* what runs — and two boxes deliberately owning the same watcher is a different
|
|
23
|
-
* decision (see `monitorRunsOnThisDevice`). Including placement would let the
|
|
24
|
-
* same watcher be added N times by varying only the owner, which is the very
|
|
25
|
-
* duplication this guards.
|
|
26
|
-
*/
|
|
27
1
|
import type { MonitorConfig } from './config.js';
|
|
28
|
-
/**
|
|
29
|
-
* The behavioral identity of a monitor, as a short hex digest. Two monitors with
|
|
30
|
-
* the same fingerprint watch the same thing and do the same thing on fire —
|
|
31
|
-
* whatever they are called and wherever they are pinned.
|
|
32
|
-
*
|
|
33
|
-
* Pure: no I/O, so the duplicate check is unit-tested without a monitors dir.
|
|
34
|
-
*/
|
|
35
2
|
export declare function monitorFingerprint(config: Pick<MonitorConfig, 'source' | 'condition' | 'action'>): string;
|
|
36
|
-
/**
|
|
37
|
-
* The already-existing monitor that this config would duplicate, or null.
|
|
38
|
-
*
|
|
39
|
-
* `existing` is the full monitor set (user + system layers), so a user monitor
|
|
40
|
-
* duplicating a shipped built-in is caught too. A monitor never collides with
|
|
41
|
-
* itself: a same-NAME entry is a rewrite of that monitor, which `add` reports
|
|
42
|
-
* separately and more precisely than "duplicate".
|
|
43
|
-
*
|
|
44
|
-
* Pure — the caller supplies the list.
|
|
45
|
-
*/
|
|
46
3
|
export declare function findDuplicateMonitor(config: Pick<MonitorConfig, 'name' | 'source' | 'condition' | 'action'>, existing: Array<Pick<MonitorConfig, 'name' | 'source' | 'condition' | 'action'>>): string | null;
|
|
@@ -1,44 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Semantic identity of a monitor — "are these two definitions the same watcher?"
|
|
3
|
-
*
|
|
4
|
-
* A monitor's NAME is not its identity. Two monitors can poll the same command
|
|
5
|
-
* on the same interval and fire the same action under two different names, and
|
|
6
|
-
* nothing today notices: `writeMonitor` overwrites by name and never compares
|
|
7
|
-
* arguments. Observed on one box: `open-pr-watch`, `pr-ci-fail`, three stale
|
|
8
|
-
* `pr2222-*` watchers, and an agent-added lander, all polling
|
|
9
|
-
* `gh pr list ... phnx-labs/agents-cli` — four overlapping triggers on one PR
|
|
10
|
-
* queue, added without a single warning.
|
|
11
|
-
*
|
|
12
|
-
* That is the double-trigger bug class. The fingerprint is what lets `add`
|
|
13
|
-
* refuse it.
|
|
14
|
-
*
|
|
15
|
-
* WHAT IS HASHED: only fields that change what the monitor DOES — the source it
|
|
16
|
-
* watches, how often, the condition that fires, and the action it takes. Name,
|
|
17
|
-
* description, and `enabled` are deliberately excluded, because a duplicate
|
|
18
|
-
* under a new name is exactly the case being caught, and a paused duplicate is
|
|
19
|
-
* still a duplicate the moment someone resumes it.
|
|
20
|
-
*
|
|
21
|
-
* WHAT IS NOT HASHED: `device`/`devices`/`runOn`. Placement is who executes, not
|
|
22
|
-
* what runs — and two boxes deliberately owning the same watcher is a different
|
|
23
|
-
* decision (see `monitorRunsOnThisDevice`). Including placement would let the
|
|
24
|
-
* same watcher be added N times by varying only the owner, which is the very
|
|
25
|
-
* duplication this guards.
|
|
26
|
-
*/
|
|
27
1
|
import { createHash } from 'crypto';
|
|
28
|
-
/**
|
|
29
|
-
* Stable JSON: object keys sorted, so key order in the YAML cannot change the hash.
|
|
30
|
-
*
|
|
31
|
-
* Cycle-safe by construction. A monitor can arrive from arbitrary YAML
|
|
32
|
-
* (`agents monitors add ./watcher.yml`), and a recursive anchor produces a
|
|
33
|
-
* genuinely cyclic object that `validateMonitor` accepts — it checks named
|
|
34
|
-
* fields, while this walks the whole graph. Without the seen-set the recursion
|
|
35
|
-
* blew the stack before `JSON.stringify` could raise its own circular-structure
|
|
36
|
-
* error, turning a bad input into a stack trace instead of a clear refusal.
|
|
37
|
-
*
|
|
38
|
-
* A `Date` is serialized to its ISO string rather than falling into the object
|
|
39
|
-
* branch, where every Date collapsed to `{}` and two different timestamps
|
|
40
|
-
* fingerprinted identically.
|
|
41
|
-
*/
|
|
42
2
|
function stable(value, seen = new WeakSet()) {
|
|
43
3
|
if (value instanceof Date)
|
|
44
4
|
return value.toISOString();
|
|
@@ -63,13 +23,6 @@ function stable(value, seen = new WeakSet()) {
|
|
|
63
23
|
}
|
|
64
24
|
return value;
|
|
65
25
|
}
|
|
66
|
-
/**
|
|
67
|
-
* The behavioral identity of a monitor, as a short hex digest. Two monitors with
|
|
68
|
-
* the same fingerprint watch the same thing and do the same thing on fire —
|
|
69
|
-
* whatever they are called and wherever they are pinned.
|
|
70
|
-
*
|
|
71
|
-
* Pure: no I/O, so the duplicate check is unit-tested without a monitors dir.
|
|
72
|
-
*/
|
|
73
26
|
export function monitorFingerprint(config) {
|
|
74
27
|
const identity = stable({
|
|
75
28
|
source: config.source,
|
|
@@ -78,16 +31,6 @@ export function monitorFingerprint(config) {
|
|
|
78
31
|
});
|
|
79
32
|
return createHash('sha256').update(JSON.stringify(identity)).digest('hex').slice(0, 16);
|
|
80
33
|
}
|
|
81
|
-
/**
|
|
82
|
-
* The already-existing monitor that this config would duplicate, or null.
|
|
83
|
-
*
|
|
84
|
-
* `existing` is the full monitor set (user + system layers), so a user monitor
|
|
85
|
-
* duplicating a shipped built-in is caught too. A monitor never collides with
|
|
86
|
-
* itself: a same-NAME entry is a rewrite of that monitor, which `add` reports
|
|
87
|
-
* separately and more precisely than "duplicate".
|
|
88
|
-
*
|
|
89
|
-
* Pure — the caller supplies the list.
|
|
90
|
-
*/
|
|
91
34
|
export function findDuplicateMonitor(config, existing) {
|
|
92
35
|
const fp = monitorFingerprint(config);
|
|
93
36
|
for (const other of existing) {
|
|
@@ -1,35 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `--watch-pid` support — turns a backgrounded OS process into a durable,
|
|
3
|
-
* daemon-polled watcher instead of relying on a harness's own exit hook
|
|
4
|
-
* (PHNX-3023: a "will re-invoke me" background shell never fires when the
|
|
5
|
-
* harness only notifies on process exit and the watch loop itself never
|
|
6
|
-
* exits — `gh pr checks --watch`, a long sleep, a tick poll).
|
|
7
|
-
*
|
|
8
|
-
* The command built here reuses the same existence-check predicate
|
|
9
|
-
* `isPidAlive`'s existence branch uses (`process.kill(pid, 0)`), but it runs
|
|
10
|
-
* inside the monitor engine's own poll loop (`sources/command.ts`) rather than
|
|
11
|
-
* the caller's process — so the check survives past the CLI invocation that
|
|
12
|
-
* armed it.
|
|
13
|
-
*/
|
|
14
|
-
/** The token a --watch-pid source's condition matches on process exit. */
|
|
15
1
|
export declare const PID_WATCH_EXITED_TOKEN = "exited";
|
|
16
|
-
/** Emitted while the pid is alive. */
|
|
17
2
|
export declare const PID_WATCH_RUNNING_TOKEN = "running";
|
|
18
|
-
/**
|
|
19
|
-
* Emitted when the pid is not alive AND has never been observed alive — the
|
|
20
|
-
* `--force` not-yet-spawned case. Deliberately distinct from
|
|
21
|
-
* {@link PID_WATCH_EXITED_TOKEN} so it can never match the exit condition.
|
|
22
|
-
*/
|
|
23
3
|
export declare const PID_WATCH_NOT_YET_SPAWNED_TOKEN = "notyetspawned";
|
|
24
|
-
/**
|
|
25
|
-
* The shell command a --watch-pid source polls. A poll only reports "exited"
|
|
26
|
-
* once it has FIRST observed the pid running — tracked with a marker file the
|
|
27
|
-
* command touches on every "running" poll — otherwise a `--force`-armed watch
|
|
28
|
-
* on a not-yet-spawned pid would report "exited" on its very first poll (the
|
|
29
|
-
* pid doesn't exist *yet*, not *anymore*), which the engine's match-mode
|
|
30
|
-
* fires immediately (no prior state to diff against) and then persists as the
|
|
31
|
-
* baseline — silencing the real exit forever once the process actually spawns
|
|
32
|
-
* and later dies. Portable across the shells `sources/command.ts` invokes
|
|
33
|
-
* (`/bin/sh -c` posix, `cmd /c` Windows).
|
|
34
|
-
*/
|
|
35
4
|
export declare function pidLivenessCommand(pid: number, seenRunningMarkerPath: string): string;
|
|
@@ -1,38 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `--watch-pid` support — turns a backgrounded OS process into a durable,
|
|
3
|
-
* daemon-polled watcher instead of relying on a harness's own exit hook
|
|
4
|
-
* (PHNX-3023: a "will re-invoke me" background shell never fires when the
|
|
5
|
-
* harness only notifies on process exit and the watch loop itself never
|
|
6
|
-
* exits — `gh pr checks --watch`, a long sleep, a tick poll).
|
|
7
|
-
*
|
|
8
|
-
* The command built here reuses the same existence-check predicate
|
|
9
|
-
* `isPidAlive`'s existence branch uses (`process.kill(pid, 0)`), but it runs
|
|
10
|
-
* inside the monitor engine's own poll loop (`sources/command.ts`) rather than
|
|
11
|
-
* the caller's process — so the check survives past the CLI invocation that
|
|
12
|
-
* armed it.
|
|
13
|
-
*/
|
|
14
1
|
import { IS_WINDOWS } from '../platform/index.js';
|
|
15
|
-
/** The token a --watch-pid source's condition matches on process exit. */
|
|
16
2
|
export const PID_WATCH_EXITED_TOKEN = 'exited';
|
|
17
|
-
/** Emitted while the pid is alive. */
|
|
18
3
|
export const PID_WATCH_RUNNING_TOKEN = 'running';
|
|
19
|
-
/**
|
|
20
|
-
* Emitted when the pid is not alive AND has never been observed alive — the
|
|
21
|
-
* `--force` not-yet-spawned case. Deliberately distinct from
|
|
22
|
-
* {@link PID_WATCH_EXITED_TOKEN} so it can never match the exit condition.
|
|
23
|
-
*/
|
|
24
4
|
export const PID_WATCH_NOT_YET_SPAWNED_TOKEN = 'notyetspawned';
|
|
25
|
-
/**
|
|
26
|
-
* The shell command a --watch-pid source polls. A poll only reports "exited"
|
|
27
|
-
* once it has FIRST observed the pid running — tracked with a marker file the
|
|
28
|
-
* command touches on every "running" poll — otherwise a `--force`-armed watch
|
|
29
|
-
* on a not-yet-spawned pid would report "exited" on its very first poll (the
|
|
30
|
-
* pid doesn't exist *yet*, not *anymore*), which the engine's match-mode
|
|
31
|
-
* fires immediately (no prior state to diff against) and then persists as the
|
|
32
|
-
* baseline — silencing the real exit forever once the process actually spawns
|
|
33
|
-
* and later dies. Portable across the shells `sources/command.ts` invokes
|
|
34
|
-
* (`/bin/sh -c` posix, `cmd /c` Windows).
|
|
35
|
-
*/
|
|
36
5
|
export function pidLivenessCommand(pid, seenRunningMarkerPath) {
|
|
37
6
|
if (IS_WINDOWS) {
|
|
38
7
|
return (`tasklist /FI "PID eq ${pid}" 2>NUL | findstr /I "${pid}" >NUL ` +
|
|
@@ -1,31 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Fleet-wide monitor lookup — "is any box already watching this?"
|
|
3
|
-
*
|
|
4
|
-
* A monitor's identity is its ARGUMENTS, not its name or its device. Agents
|
|
5
|
-
* create monitors per work item, so the same shape runs many times over with
|
|
6
|
-
* different arguments (PR #2517 vs #2600) and those must all coexist. The case
|
|
7
|
-
* that must NOT happen is two agents, on two different machines, creating a
|
|
8
|
-
* watcher with the SAME arguments — one work item, two triggers.
|
|
9
|
-
*
|
|
10
|
-
* A local-only check cannot see that: each box reads its own `monitors/` dir and
|
|
11
|
-
* neither sees the other. So the duplicate guard asks the fleet, reusing the
|
|
12
|
-
* same cross-machine fan-out `sessions --active` and `fleet status` already run
|
|
13
|
-
* (`lib/remote-agents-json.ts`).
|
|
14
|
-
*
|
|
15
|
-
* Deliberately NOT solved by syncing `monitors/*.yml` through the DotAgents repo:
|
|
16
|
-
* an agent's per-PR watcher is running state, not config, and syncing would push
|
|
17
|
-
* every one of them onto every box — the accumulation this guard exists to stop.
|
|
18
|
-
*/
|
|
19
1
|
import { type GatherRemoteAgentsJsonDeps } from '../remote-agents-json.js';
|
|
20
2
|
import type { MonitorConfig } from './config.js';
|
|
21
|
-
/** Recursion guard: a peer answering the fan-out must not fan out again. */
|
|
22
3
|
export declare const NO_MONITOR_FANOUT_ENV = "AGENTS_MONITORS_LOCAL";
|
|
23
|
-
/**
|
|
24
|
-
* The owning box's view of a remote monitor, beyond its behavioral identity —
|
|
25
|
-
* enough for `monitors list` to render it (enabled/placement/scope) and show a
|
|
26
|
-
* one-line liveness note without a second round-trip. All optional: a peer on an
|
|
27
|
-
* older CLI may omit them, and the duplicate guard never reads them.
|
|
28
|
-
*/
|
|
29
4
|
export interface RemoteMonitorDisplay {
|
|
30
5
|
enabled?: boolean;
|
|
31
6
|
owner?: string;
|
|
@@ -36,48 +11,21 @@ export interface RemoteMonitorDisplay {
|
|
|
36
11
|
lastFiredAt?: string | null;
|
|
37
12
|
lastActionFailed?: boolean;
|
|
38
13
|
}
|
|
39
|
-
/** One monitor as seen on a peer, tagged with the box it lives on. */
|
|
40
14
|
export interface RemoteMonitor {
|
|
41
15
|
machine: string;
|
|
42
16
|
monitor: Pick<MonitorConfig, 'name' | 'source' | 'condition' | 'action'>;
|
|
43
|
-
/** The owning box's enabled/placement/scope/liveness view, for `list` display. */
|
|
44
17
|
display?: RemoteMonitorDisplay;
|
|
45
18
|
}
|
|
46
|
-
/**
|
|
47
|
-
* Parse a peer's `monitors list --json`. Defensive against version skew: a peer
|
|
48
|
-
* on an older CLI may emit a different shape or no JSON at all, and one bad peer
|
|
49
|
-
* must never blank the guard for the rest of the fleet.
|
|
50
|
-
*/
|
|
51
19
|
export declare function parseRemoteMonitors(stdout: string, machine: string): RemoteMonitor[];
|
|
52
20
|
interface FleetMonitorsResult {
|
|
53
21
|
monitors: RemoteMonitor[];
|
|
54
|
-
/** Target discovery failed before any peer was dialed — the fleet was not
|
|
55
|
-
* consulted at all, which must not read as "no duplicate anywhere". */
|
|
56
22
|
discoveryFailed: boolean;
|
|
57
|
-
/** Peers dialed but unreachable / erroring — the guard reports these rather than
|
|
58
|
-
* silently treating "we could not ask" as "there is no duplicate". */
|
|
59
23
|
skipped: string[];
|
|
60
24
|
}
|
|
61
25
|
interface GatherFleetMonitorsOptions {
|
|
62
|
-
/** When supplied, the fan-out aborts as soon as any peer returns a monitor with
|
|
63
|
-
* this behavioral fingerprint. The miss path still waits for every peer so the
|
|
64
|
-
* guard can prove absence fleet-wide. */
|
|
65
26
|
againstFingerprint?: string;
|
|
66
|
-
/** Optional test seam for the SSH boundary; production uses the real capture. */
|
|
67
27
|
deps?: GatherRemoteAgentsJsonDeps;
|
|
68
|
-
/** Optional explicit host list; production omits it and asks the device registry. */
|
|
69
28
|
hosts?: string[];
|
|
70
29
|
}
|
|
71
|
-
/**
|
|
72
|
-
* Every monitor on every other registered device. Never throws: an unreachable
|
|
73
|
-
* fleet degrades to an empty list plus the names we could not consult, and the
|
|
74
|
-
* caller decides what to say about them.
|
|
75
|
-
*
|
|
76
|
-
* When {@link GatherFleetMonitorsOptions.againstFingerprint} is provided, a peer
|
|
77
|
-
* returning that fingerprint is a definitive clash: the remaining peers are
|
|
78
|
-
* SIGTERM'd immediately rather than burning the rest of the timeout budget.
|
|
79
|
-
* Absence of a clash still waits for the full fleet, because uniqueness is only
|
|
80
|
-
* knowable once every peer has answered.
|
|
81
|
-
*/
|
|
82
30
|
export declare function gatherFleetMonitors(options?: GatherFleetMonitorsOptions): Promise<FleetMonitorsResult>;
|
|
83
31
|
export {};
|