@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,38 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Live budget kill-switch for `agents teams` supervisor (issue #399).
|
|
3
|
-
*
|
|
4
|
-
* Follow-up to #346, which wired `makeLiveSpendWatcher` into local `agents run`
|
|
5
|
-
* only. Teams spawns each teammate as its own `agents run --headless --json`
|
|
6
|
-
* process, so per-teammate `per_run` caps already fire from those child
|
|
7
|
-
* watchers. What was still missing was aggregate cross-teammate enforcement
|
|
8
|
-
* (`per_project` / `per_day` / `per_agent` combined), because the ledger only
|
|
9
|
-
* gets written on child close — a long-running teammate would blow the shared
|
|
10
|
-
* cap without any single child watcher noticing.
|
|
11
|
-
*
|
|
12
|
-
* This module reuses `makeLiveSpendWatcher` verbatim: on each supervisor wave
|
|
13
|
-
* we tail every running teammate's stdout.log through `extractUsageEvents`
|
|
14
|
-
* (the same primitive the local run path uses in src/lib/exec.ts), feed the
|
|
15
|
-
* usage events into ONE shared watcher, and expose `breached()` so the
|
|
16
|
-
* supervisor can call `stopByTask` to terminate the whole team.
|
|
17
|
-
*
|
|
18
|
-
* Dormant (returns null) when no caps are configured — same zero-cost contract
|
|
19
|
-
* as the local watcher.
|
|
20
|
-
*/
|
|
21
1
|
import * as fs from 'fs';
|
|
22
2
|
import { capsFromConfig, extractUsageEvents, makeLiveSpendWatcher, } from './enforce.js';
|
|
23
3
|
import { resolveBudgetConfig, hasAnyCap } from './config.js';
|
|
24
4
|
import { loadLedger, localDay, spendForDay, spendForProject } from './ledger.js';
|
|
25
|
-
/**
|
|
26
|
-
* Build a team-scoped budget watcher for the given team. Returns null when the
|
|
27
|
-
* effective budget config has no caps — matching the local watcher's dormant
|
|
28
|
-
* contract so callers pay nothing when the feature is off.
|
|
29
|
-
*
|
|
30
|
-
* The watcher is seeded with prior-day and prior-project spend from the ledger
|
|
31
|
-
* so a partway-through day counts today's earlier runs against `per_day`.
|
|
32
|
-
* Each `poll()` reads new bytes from every running teammate's stdout.log and
|
|
33
|
-
* feeds parsed usage events into the shared watcher — `onBreach` fires exactly
|
|
34
|
-
* once, mirroring `makeLiveSpendWatcher`.
|
|
35
|
-
*/
|
|
36
5
|
export function createTeamBudgetWatcher(args) {
|
|
37
6
|
const cfg = resolveBudgetConfig(args.cwd);
|
|
38
7
|
if (!hasAnyCap(cfg))
|
|
@@ -59,9 +28,6 @@ export function createTeamBudgetWatcher(args) {
|
|
|
59
28
|
return;
|
|
60
29
|
const teammates = await args.manager.listByTask(args.team);
|
|
61
30
|
for (const agent of teammates) {
|
|
62
|
-
// Only tap running local teammates: PENDING has no output yet, cloud
|
|
63
|
-
// teammates emit through a different channel (their own SSE stream),
|
|
64
|
-
// and terminal states produce no new bytes.
|
|
65
31
|
if (agent.status !== 'running')
|
|
66
32
|
continue;
|
|
67
33
|
if (agent.cloudProvider)
|
|
@@ -72,7 +38,7 @@ export function createTeamBudgetWatcher(args) {
|
|
|
72
38
|
stat = fs.statSync(stdoutPath);
|
|
73
39
|
}
|
|
74
40
|
catch {
|
|
75
|
-
continue;
|
|
41
|
+
continue;
|
|
76
42
|
}
|
|
77
43
|
const cursor = cursors.get(agent.agentId) ?? { offset: 0, pending: '' };
|
|
78
44
|
if (stat.size <= cursor.offset) {
|
|
@@ -1,36 +1,12 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pre-flight cost estimate + gate (issue #346).
|
|
3
|
-
*
|
|
4
|
-
* Before a run spawns we estimate its cost and decide whether to allow it. The
|
|
5
|
-
* estimate's token basis comes from recent ledger averages for the same agent
|
|
6
|
-
* (the most accurate signal we have), falling back to a prompt-character
|
|
7
|
-
* heuristic when there's no history. Cost is computed via the canonical pricing
|
|
8
|
-
* module — never reimplemented here.
|
|
9
|
-
*
|
|
10
|
-
* `enforcePreflight` is the decision: with `on_exceed: block`, if launching
|
|
11
|
-
* this run would push any cap (per_run / per_day / per_agent / per_project)
|
|
12
|
-
* over the line, it denies. With `on_exceed: warn` it always allows but reports
|
|
13
|
-
* the projected overrun.
|
|
14
|
-
*/
|
|
15
1
|
import type { BudgetConfig } from '../types.js';
|
|
16
2
|
import type { SpendEntry } from './ledger.js';
|
|
17
|
-
/** A pre-flight cost estimate for one run. */
|
|
18
3
|
interface RunEstimate {
|
|
19
|
-
/** Estimated USD for this run. 0 when the model is unpriced. */
|
|
20
4
|
estUsd: number;
|
|
21
|
-
/** How the token count was derived. */
|
|
22
5
|
basis: 'ledger-average' | 'prompt-heuristic' | 'none';
|
|
23
|
-
/** True when the model resolved to a priced entry. */
|
|
24
6
|
priced: boolean;
|
|
25
7
|
estInputTokens: number;
|
|
26
8
|
estOutputTokens: number;
|
|
27
9
|
}
|
|
28
|
-
/**
|
|
29
|
-
* Estimate the cost of a run. When the ledger has prior runs for this agent we
|
|
30
|
-
* use their average input/output tokens; otherwise we fall back to a
|
|
31
|
-
* prompt-character heuristic. `recentAvgTokens` lets callers inject a
|
|
32
|
-
* precomputed average (e.g. from a scoped ledger) for testability.
|
|
33
|
-
*/
|
|
34
10
|
export declare function estimateRunCost(args: {
|
|
35
11
|
agent: string;
|
|
36
12
|
model: string;
|
|
@@ -42,60 +18,33 @@ export declare function estimateRunCost(args: {
|
|
|
42
18
|
};
|
|
43
19
|
ledger?: SpendEntry[];
|
|
44
20
|
}): RunEstimate;
|
|
45
|
-
/** Average input/output tokens per RUN for an agent, from the ledger. Null when no history. */
|
|
46
21
|
export declare function ledgerAverageTokens(agent: string, ledger: SpendEntry[]): {
|
|
47
22
|
input: number;
|
|
48
23
|
output: number;
|
|
49
24
|
} | null;
|
|
50
|
-
/** Decision returned by the pre-flight gate. */
|
|
51
25
|
interface PreflightDecision {
|
|
52
|
-
/** Whether the run may proceed. */
|
|
53
26
|
allow: boolean;
|
|
54
|
-
/** Whether the caller must interactively confirm (estimate >= require_confirm_over). */
|
|
55
27
|
needsConfirm: boolean;
|
|
56
|
-
/** Human reason when blocked or confirming. */
|
|
57
28
|
reason?: string;
|
|
58
|
-
/** Which cap blocked, if any. */
|
|
59
29
|
blockedCap?: 'per_run' | 'per_day' | 'per_agent' | 'per_project';
|
|
60
|
-
/** Projected day spend if this run lands at its estimate. */
|
|
61
30
|
projectedDaySpend: number;
|
|
62
|
-
/** Projected project spend if this run lands at its estimate. */
|
|
63
31
|
projectedProjectSpend: number;
|
|
64
32
|
}
|
|
65
|
-
/** Current spend snapshot the gate compares the estimate against. */
|
|
66
33
|
export interface LedgerState {
|
|
67
|
-
/** Agent this snapshot is for (used to pick the matching per_agent cap). */
|
|
68
34
|
agent: string;
|
|
69
35
|
daySpend: number;
|
|
70
36
|
projectSpend: number;
|
|
71
37
|
agentDaySpend: number;
|
|
72
38
|
}
|
|
73
|
-
/** Read the ledger snapshot the gate needs for `agent` / `project` / today. */
|
|
74
39
|
export declare function ledgerStateFor(agent: string, project: string, ledger?: SpendEntry[]): LedgerState;
|
|
75
|
-
/**
|
|
76
|
-
* The pre-flight gate. Projects this run's estimate on top of current spend and
|
|
77
|
-
* decides allow/deny. `on_exceed: warn` never blocks (allow:true) but still
|
|
78
|
-
* reports the projected overrun via `reason`. A hard block sets allow:false —
|
|
79
|
-
* `--yes` MUST NOT override it (the caller enforces that; this function only
|
|
80
|
-
* reports the truth).
|
|
81
|
-
*/
|
|
82
40
|
export declare function enforcePreflight(cfg: BudgetConfig, state: LedgerState, est: RunEstimate): PreflightDecision;
|
|
83
|
-
/** Result of the high-level run gate consumed by `agents run` / teams / cloud. */
|
|
84
41
|
interface PreflightGateResult {
|
|
85
|
-
/** True when no caps are configured — budget feature dormant, nothing to do. */
|
|
86
42
|
dormant: boolean;
|
|
87
43
|
cfg: BudgetConfig;
|
|
88
44
|
estimate: RunEstimate;
|
|
89
45
|
decision: PreflightDecision;
|
|
90
46
|
banner: string;
|
|
91
47
|
}
|
|
92
|
-
/**
|
|
93
|
-
* High-level pre-flight gate: resolve the effective budget for `cwd`, estimate
|
|
94
|
-
* the run, and evaluate every cap. Returns `dormant:true` (and skips all work)
|
|
95
|
-
* when no caps are set, so the gate is zero-cost for users who never configure
|
|
96
|
-
* a budget. The CLI layer decides how to act on `decision` (print banner,
|
|
97
|
-
* confirm, or block + exit non-zero).
|
|
98
|
-
*/
|
|
99
48
|
export declare function runPreflightGate(args: {
|
|
100
49
|
agent: string;
|
|
101
50
|
model: string;
|
|
@@ -1,21 +1,8 @@
|
|
|
1
1
|
import { estimateCost, formatUsd } from '../pricing/index.js';
|
|
2
2
|
import { loadLedger, spendForDay, spendForAgentDay, spendForProject, localDay } from './ledger.js';
|
|
3
3
|
import { resolveBudgetConfig, hasAnyCap } from './config.js';
|
|
4
|
-
/** Roughly 4 characters per token — the standard coarse heuristic for English text. */
|
|
5
4
|
const CHARS_PER_TOKEN = 4;
|
|
6
|
-
/**
|
|
7
|
-
* Output is typically a multiple of the visible prompt for an agentic run
|
|
8
|
-
* (tool calls, file reads, reasoning). 6x is a deliberately conservative
|
|
9
|
-
* lower bound so the estimate doesn't wildly under-report and wave through a
|
|
10
|
-
* run that then blows the cap on its first turn.
|
|
11
|
-
*/
|
|
12
5
|
const HEURISTIC_OUTPUT_MULTIPLIER = 6;
|
|
13
|
-
/**
|
|
14
|
-
* Estimate the cost of a run. When the ledger has prior runs for this agent we
|
|
15
|
-
* use their average input/output tokens; otherwise we fall back to a
|
|
16
|
-
* prompt-character heuristic. `recentAvgTokens` lets callers inject a
|
|
17
|
-
* precomputed average (e.g. from a scoped ledger) for testability.
|
|
18
|
-
*/
|
|
19
6
|
export function estimateRunCost(args) {
|
|
20
7
|
const ledger = args.ledger ?? loadLedger();
|
|
21
8
|
let estInputTokens = 0;
|
|
@@ -44,7 +31,6 @@ export function estimateRunCost(args) {
|
|
|
44
31
|
estOutputTokens,
|
|
45
32
|
};
|
|
46
33
|
}
|
|
47
|
-
/** Average input/output tokens per RUN for an agent, from the ledger. Null when no history. */
|
|
48
34
|
export function ledgerAverageTokens(agent, ledger) {
|
|
49
35
|
const runs = new Map();
|
|
50
36
|
for (const e of ledger) {
|
|
@@ -65,7 +51,6 @@ export function ledgerAverageTokens(agent, ledger) {
|
|
|
65
51
|
}
|
|
66
52
|
return { input: Math.round(input / runs.size), output: Math.round(output / runs.size) };
|
|
67
53
|
}
|
|
68
|
-
/** Read the ledger snapshot the gate needs for `agent` / `project` / today. */
|
|
69
54
|
export function ledgerStateFor(agent, project, ledger) {
|
|
70
55
|
const entries = ledger ?? loadLedger();
|
|
71
56
|
const today = localDay();
|
|
@@ -76,13 +61,6 @@ export function ledgerStateFor(agent, project, ledger) {
|
|
|
76
61
|
agentDaySpend: spendForAgentDay(agent, today, entries),
|
|
77
62
|
};
|
|
78
63
|
}
|
|
79
|
-
/**
|
|
80
|
-
* The pre-flight gate. Projects this run's estimate on top of current spend and
|
|
81
|
-
* decides allow/deny. `on_exceed: warn` never blocks (allow:true) but still
|
|
82
|
-
* reports the projected overrun via `reason`. A hard block sets allow:false —
|
|
83
|
-
* `--yes` MUST NOT override it (the caller enforces that; this function only
|
|
84
|
-
* reports the truth).
|
|
85
|
-
*/
|
|
86
64
|
export function enforcePreflight(cfg, state, est) {
|
|
87
65
|
const projectedDaySpend = state.daySpend + est.estUsd;
|
|
88
66
|
const projectedProjectSpend = state.projectSpend + est.estUsd;
|
|
@@ -114,13 +92,7 @@ export function enforcePreflight(cfg, state, est) {
|
|
|
114
92
|
reason: `projected agent day spend ${formatUsd(projectedAgentDaySpend)} exceeds per_agent cap ${formatUsd(agentCap)}`,
|
|
115
93
|
});
|
|
116
94
|
}
|
|
117
|
-
// require_confirm_over only governs interactive confirm, not a hard block.
|
|
118
95
|
let needsConfirm = cfg.require_confirm_over !== undefined && est.estUsd >= cfg.require_confirm_over;
|
|
119
|
-
// Unpriced model + active caps: the estimate is $0 because we have no price
|
|
120
|
-
// for this model, so NONE of the per_run/per_day caps above can ever trip and
|
|
121
|
-
// we'd silently wave the run through. Never $0-wave-through (#346): when caps
|
|
122
|
-
// are set but the model is unpriced, require confirmation so the user is told
|
|
123
|
-
// the cap cannot be enforced for this model rather than getting a false pass.
|
|
124
96
|
if (!est.priced && hasAnyCap(cfg) && breaches.length === 0) {
|
|
125
97
|
needsConfirm = true;
|
|
126
98
|
return {
|
|
@@ -152,7 +124,6 @@ export function enforcePreflight(cfg, state, est) {
|
|
|
152
124
|
projectedProjectSpend,
|
|
153
125
|
};
|
|
154
126
|
}
|
|
155
|
-
/** Build a one-line human estimate banner for `agents run` preamble. */
|
|
156
127
|
function formatEstimateBanner(agent, model, est) {
|
|
157
128
|
const cost = est.priced ? formatUsd(est.estUsd) : 'unpriced';
|
|
158
129
|
const basisLabel = est.basis === 'ledger-average'
|
|
@@ -162,13 +133,6 @@ function formatEstimateBanner(agent, model, est) {
|
|
|
162
133
|
: 'no basis';
|
|
163
134
|
return `[budget] est. ${cost} for this ${agent} run (${model}, ${basisLabel})`;
|
|
164
135
|
}
|
|
165
|
-
/**
|
|
166
|
-
* High-level pre-flight gate: resolve the effective budget for `cwd`, estimate
|
|
167
|
-
* the run, and evaluate every cap. Returns `dormant:true` (and skips all work)
|
|
168
|
-
* when no caps are set, so the gate is zero-cost for users who never configure
|
|
169
|
-
* a budget. The CLI layer decides how to act on `decision` (print banner,
|
|
170
|
-
* confirm, or block + exit non-zero).
|
|
171
|
-
*/
|
|
172
136
|
export function runPreflightGate(args) {
|
|
173
137
|
const cfg = resolveBudgetConfig(args.cwd);
|
|
174
138
|
const ledger = args.ledger ?? loadLedger();
|
package/dist/lib/byok-usage.d.ts
CHANGED
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* BYOK (Bring Your Own Key) budget fetcher.
|
|
3
|
-
*
|
|
4
|
-
* For custom harnesses that use a provider's API key stored in the keychain
|
|
5
|
-
* (e.g. OpenRouter), this module fetches the account's credit/usage data so
|
|
6
|
-
* `agents view` can show a budget bar alongside the harness detail row — the
|
|
7
|
-
* same bar style the native usage system uses, just sourced from the provider
|
|
8
|
-
* API rather than the CLI's own usage tracking.
|
|
9
|
-
*/
|
|
10
1
|
import type { Profile } from './profiles.js';
|
|
11
2
|
export interface ByokBudgetInfo {
|
|
12
3
|
limitUsd: number | null;
|
|
@@ -25,20 +16,9 @@ export declare function setByokCachePathForTest(value: string | null): string |
|
|
|
25
16
|
export declare function resetByokCacheForTest(): void;
|
|
26
17
|
export declare function hasByokProvider(provider: string): boolean;
|
|
27
18
|
export declare function renderByokBar(result: ByokUsageResult): string;
|
|
28
|
-
/**
|
|
29
|
-
* Fetch the BYOK budget for a harness.
|
|
30
|
-
*
|
|
31
|
-
* Returns `null` when the harness has no registered BYOK provider or no auth.
|
|
32
|
-
* Returns a `ByokUsageResult` with `budget: null` when the token is absent
|
|
33
|
-
* from the keychain (so the caller can skip rendering a bar without error).
|
|
34
|
-
*
|
|
35
|
-
* Ordinary reads are cache-only. Explicit refreshes are serialized per provider
|
|
36
|
-
* credential across every agents-cli process on the device.
|
|
37
|
-
*/
|
|
38
19
|
export declare function getByokUsageForHarness(profile: Profile, opts?: {
|
|
39
20
|
forceRefresh?: boolean;
|
|
40
21
|
}): Promise<ByokUsageResult | null>;
|
|
41
|
-
/** Refresh each configured BYOK credential when its daemon-owned snapshot is due. */
|
|
42
22
|
export declare function refreshDueByokUsage(profiles: Profile[], now?: number): Promise<{
|
|
43
23
|
refreshed: number;
|
|
44
24
|
skipped: number;
|
package/dist/lib/byok-usage.js
CHANGED
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* BYOK (Bring Your Own Key) budget fetcher.
|
|
3
|
-
*
|
|
4
|
-
* For custom harnesses that use a provider's API key stored in the keychain
|
|
5
|
-
* (e.g. OpenRouter), this module fetches the account's credit/usage data so
|
|
6
|
-
* `agents view` can show a budget bar alongside the harness detail row — the
|
|
7
|
-
* same bar style the native usage system uses, just sourced from the provider
|
|
8
|
-
* API rather than the CLI's own usage tracking.
|
|
9
|
-
*/
|
|
10
1
|
import { getKeychainTokenSync, hasKeychainTokenSync } from './secrets-client.js';
|
|
11
2
|
import { renderBar, getUsageColor } from './accounting/usage.js';
|
|
12
3
|
import * as fs from 'node:fs';
|
|
@@ -17,7 +8,6 @@ import { atomicWriteFileSync, ensureLockTarget, withFileLock } from './fs-atomic
|
|
|
17
8
|
import { withRefreshLease } from './refresh-coordinator.js';
|
|
18
9
|
import { findAccount, resolveCredentialAccount } from './account-registry.js';
|
|
19
10
|
import { getAccountProvider } from './account-provider-registry.js';
|
|
20
|
-
// ─── Injectable fetch seam (tests only) ──────────────────────────────────────
|
|
21
11
|
let _fetch = globalThis.fetch;
|
|
22
12
|
export function setByokFetchForTest(fn) {
|
|
23
13
|
_fetch = fn;
|
|
@@ -55,7 +45,7 @@ export function resetByokCacheForTest() {
|
|
|
55
45
|
try {
|
|
56
46
|
fs.unlinkSync(cachePath());
|
|
57
47
|
}
|
|
58
|
-
catch {
|
|
48
|
+
catch { }
|
|
59
49
|
}
|
|
60
50
|
function resolveByokToken(profile) {
|
|
61
51
|
if (profile.account) {
|
|
@@ -144,7 +134,6 @@ const BYOK_REGISTRY = {
|
|
|
144
134
|
export function hasByokProvider(provider) {
|
|
145
135
|
return Object.prototype.hasOwnProperty.call(BYOK_REGISTRY, provider);
|
|
146
136
|
}
|
|
147
|
-
// ─── Bar renderer ─────────────────────────────────────────────────────────────
|
|
148
137
|
export function renderByokBar(result) {
|
|
149
138
|
if (!result.budget)
|
|
150
139
|
return '';
|
|
@@ -161,17 +150,6 @@ export function renderByokBar(result) {
|
|
|
161
150
|
const limit = `$${budget.limitUsd.toFixed(2)}`;
|
|
162
151
|
return `$: ${bar} ${color(`${Math.round(pct)}%`)} (${remaining} left of ${limit})`;
|
|
163
152
|
}
|
|
164
|
-
// ─── Public API ───────────────────────────────────────────────────────────────
|
|
165
|
-
/**
|
|
166
|
-
* Fetch the BYOK budget for a harness.
|
|
167
|
-
*
|
|
168
|
-
* Returns `null` when the harness has no registered BYOK provider or no auth.
|
|
169
|
-
* Returns a `ByokUsageResult` with `budget: null` when the token is absent
|
|
170
|
-
* from the keychain (so the caller can skip rendering a bar without error).
|
|
171
|
-
*
|
|
172
|
-
* Ordinary reads are cache-only. Explicit refreshes are serialized per provider
|
|
173
|
-
* credential across every agents-cli process on the device.
|
|
174
|
-
*/
|
|
175
153
|
export async function getByokUsageForHarness(profile, opts) {
|
|
176
154
|
if (!profile.provider || !hasByokProvider(profile.provider) || (!profile.auth && !profile.account))
|
|
177
155
|
return null;
|
|
@@ -195,7 +173,6 @@ export async function getByokUsageForHarness(profile, opts) {
|
|
|
195
173
|
},
|
|
196
174
|
}).then((entry) => entry.result);
|
|
197
175
|
}
|
|
198
|
-
/** Refresh each configured BYOK credential when its daemon-owned snapshot is due. */
|
|
199
176
|
export async function refreshDueByokUsage(profiles, now = Date.now()) {
|
|
200
177
|
const due = new Map();
|
|
201
178
|
for (const profile of profiles) {
|
|
@@ -1,29 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Capability gate for agent features.
|
|
3
|
-
*
|
|
4
|
-
* Every install path that touches an agent-version (hooks, plugins, MCP,
|
|
5
|
-
* skills, commands) calls `supports(agent, cap, version?)` before writing to
|
|
6
|
-
* the version's config dir. When the capability is unsupported or the version
|
|
7
|
-
* is below `since`, the install path skips the write and surfaces a clear
|
|
8
|
-
* reason instead of silently corrupting an older binary's settings file.
|
|
9
|
-
*/
|
|
10
1
|
import type { AgentId, CapabilityName, CapabilityResult } from './types.js';
|
|
11
|
-
/**
|
|
12
|
-
* True when the agent supports the capability on at least some version.
|
|
13
|
-
* Useful for filtering UI lists; does not check installed version.
|
|
14
|
-
*/
|
|
15
2
|
export declare function isCapable(agent: AgentId, cap: CapabilityName): boolean;
|
|
16
|
-
/**
|
|
17
|
-
* Check whether the given agent (optionally pinned to a specific installed
|
|
18
|
-
* version) supports `cap`. Pass `version` whenever you know it -- omitting it
|
|
19
|
-
* only checks the agent-level flag, which is fine for "is this agent ever
|
|
20
|
-
* capable" filters but NOT for install-time gating.
|
|
21
|
-
*/
|
|
22
3
|
export declare function supports(agent: AgentId, cap: CapabilityName, version?: string): CapabilityResult;
|
|
23
|
-
/**
|
|
24
|
-
* Human-readable explanation for skipping an install. Stable shape so callers
|
|
25
|
-
* can either log it or push it onto an `errors[]` collector.
|
|
26
|
-
*/
|
|
27
4
|
export declare function explainSkip(agent: AgentId, cap: CapabilityName, result: CapabilityResult, version?: string): string;
|
|
28
|
-
/** All agents whose `capabilities[cap]` is anything other than `false`. */
|
|
29
5
|
export declare function capableAgents(cap: CapabilityName): AgentId[];
|
package/dist/lib/capabilities.js
CHANGED
|
@@ -1,42 +1,18 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Capability gate for agent features.
|
|
3
|
-
*
|
|
4
|
-
* Every install path that touches an agent-version (hooks, plugins, MCP,
|
|
5
|
-
* skills, commands) calls `supports(agent, cap, version?)` before writing to
|
|
6
|
-
* the version's config dir. When the capability is unsupported or the version
|
|
7
|
-
* is below `since`, the install path skips the write and surfaces a clear
|
|
8
|
-
* reason instead of silently corrupting an older binary's settings file.
|
|
9
|
-
*/
|
|
10
1
|
import { AGENTS, MANAGED_AGENT_IDS } from './agents.js';
|
|
11
|
-
// agent-spec/primitives is a leaf module — importing it creates no cycle, and it
|
|
12
|
-
// is the only compareVersions that honors OpenClaw's `-N` rebuild suffix.
|
|
13
2
|
import { compareVersions } from './agent-spec/primitives.js';
|
|
14
3
|
import { installedReleaseFor } from './installations/store.js';
|
|
15
4
|
function getCapability(agent, cap) {
|
|
16
|
-
// Guard against unknown agent ids (e.g. a caller passing "claude@2.1.168"
|
|
17
|
-
// instead of "claude"). Without this, AGENTS[agent] is undefined and the
|
|
18
|
-
// property access throws an opaque TypeError instead of reporting false.
|
|
19
5
|
const def = AGENTS[agent];
|
|
20
6
|
if (!def)
|
|
21
7
|
return false;
|
|
22
8
|
return def.capabilities[cap];
|
|
23
9
|
}
|
|
24
|
-
/**
|
|
25
|
-
* True when the agent supports the capability on at least some version.
|
|
26
|
-
* Useful for filtering UI lists; does not check installed version.
|
|
27
|
-
*/
|
|
28
10
|
export function isCapable(agent, cap) {
|
|
29
11
|
if (AGENTS[agent]?.deprecated?.hard)
|
|
30
12
|
return false;
|
|
31
13
|
const c = getCapability(agent, cap);
|
|
32
14
|
return c !== false;
|
|
33
15
|
}
|
|
34
|
-
/**
|
|
35
|
-
* Check whether the given agent (optionally pinned to a specific installed
|
|
36
|
-
* version) supports `cap`. Pass `version` whenever you know it -- omitting it
|
|
37
|
-
* only checks the agent-level flag, which is fine for "is this agent ever
|
|
38
|
-
* capable" filters but NOT for install-time gating.
|
|
39
|
-
*/
|
|
40
16
|
export function supports(agent, cap, version) {
|
|
41
17
|
if (AGENTS[agent]?.deprecated?.hard)
|
|
42
18
|
return { ok: false, reason: 'unsupported' };
|
|
@@ -58,10 +34,6 @@ export function supports(agent, cap, version) {
|
|
|
58
34
|
}
|
|
59
35
|
return { ok: true };
|
|
60
36
|
}
|
|
61
|
-
/**
|
|
62
|
-
* Human-readable explanation for skipping an install. Stable shape so callers
|
|
63
|
-
* can either log it or push it onto an `errors[]` collector.
|
|
64
|
-
*/
|
|
65
37
|
export function explainSkip(agent, cap, result, version) {
|
|
66
38
|
if (result.ok)
|
|
67
39
|
return '';
|
|
@@ -70,7 +42,6 @@ export function explainSkip(agent, cap, result, version) {
|
|
|
70
42
|
return `${tag}: ${cap} not supported`;
|
|
71
43
|
return `${tag}: ${cap} requires ${result.need}`;
|
|
72
44
|
}
|
|
73
|
-
/** All agents whose `capabilities[cap]` is anything other than `false`. */
|
|
74
45
|
export function capableAgents(cap) {
|
|
75
46
|
return MANAGED_AGENT_IDS.filter((id) => isCapable(id, cap));
|
|
76
47
|
}
|
package/dist/lib/catchup.d.ts
CHANGED
|
@@ -1,106 +1,19 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Catch-up: run a routine whose scheduled fire this device missed.
|
|
3
|
-
*
|
|
4
|
-
* Fires are in-process croner timers, and croner only ever schedules forward
|
|
5
|
-
* from "now". A daemon that is down, asleep, or wedged when a routine comes due
|
|
6
|
-
* therefore loses that fire outright — `loadAll()` rebuilds every Cron looking
|
|
7
|
-
* only at the future (scheduler.ts), so nothing replays it. Detection has always
|
|
8
|
-
* existed (`detectOverdueJobs`), but it ran once at daemon startup and only
|
|
9
|
-
* logged plus popped a notification; the routine still never ran.
|
|
10
|
-
*
|
|
11
|
-
* This module closes that loop. A missed fire is:
|
|
12
|
-
*
|
|
13
|
-
* 1. CLAIMED — `claimMissedFire` writes a real run with status `missed`,
|
|
14
|
-
* stamped at the time the fire was DUE, so `agents routines runs <name>`
|
|
15
|
-
* shows the gap instead of the listing showing a weeks-old `completed` as
|
|
16
|
-
* though it were current. The write is an atomic claim (see below), and
|
|
17
|
-
* only the claimant proceeds to step 2.
|
|
18
|
-
* 2. RUN — unless the routine sets `catchup: false`, it is executed late via
|
|
19
|
-
* the same `executeJobDetached` path `agents routines catchup` already used.
|
|
20
|
-
*
|
|
21
|
-
* The `missed` record is also what makes this idempotent, so there is no
|
|
22
|
-
* separate ledger to keep in sync. `detectOverdueJobs` compares the most recent
|
|
23
|
-
* expected fire against `getLatestRun(...).startedAt`; a `missed` record stamped
|
|
24
|
-
* at `expectedAt` advances that comparison, so the same missed fire is never
|
|
25
|
-
* reconsidered — across ticks, daemon restarts, or a restart storm. (A job that
|
|
26
|
-
* is overdue by definition has no run later than `expectedAt`, so the
|
|
27
|
-
* back-stamped record always sorts last in `listRuns`.)
|
|
28
|
-
*
|
|
29
|
-
* That comparison alone is not enough when two callers overlap, because both
|
|
30
|
-
* can read the same overdue set before either writes. The claim in
|
|
31
|
-
* `claimMissedFire` closes that: the record's directory is created with a
|
|
32
|
-
* non-recursive `mkdir`, an atomic test-and-set, and only the caller that wins
|
|
33
|
-
* it runs the routine. This holds across processes — the daemon's timer and a
|
|
34
|
-
* human running `agents routines catchup` — which neither an in-process flag
|
|
35
|
-
* nor `withFileLock` (synchronous; this pass awaits a spawn) can cover.
|
|
36
|
-
*/
|
|
37
1
|
import { type JobConfig, type RunMeta } from './scheduling/routines.js';
|
|
38
2
|
import { type OverdueJob } from './overdue.js';
|
|
39
|
-
/** What happened to one overdue routine on a catch-up pass. */
|
|
40
3
|
export interface CatchupOutcome {
|
|
41
4
|
name: string;
|
|
42
|
-
/** The fire that was missed. */
|
|
43
5
|
expectedAt: Date;
|
|
44
|
-
/**
|
|
45
|
-
* `ran` — re-run late. `recorded` — miss logged, not re-run (`catchup: false`
|
|
46
|
-
* or a dry run). `claimed-elsewhere` — a concurrent pass or process already
|
|
47
|
-
* owns this fire. `error` — could not start the late run.
|
|
48
|
-
*/
|
|
49
6
|
result: 'ran' | 'recorded' | 'claimed-elsewhere' | 'error';
|
|
50
|
-
/** Run id of the late run, when one was started. */
|
|
51
7
|
runId?: string;
|
|
52
|
-
/** Why the late run could not be started. */
|
|
53
8
|
error?: string;
|
|
54
9
|
}
|
|
55
|
-
/**
|
|
56
|
-
* Is this routine allowed to run late? Default true — a routine you scheduled
|
|
57
|
-
* is one you expect to have run, so losing a fire silently is never the helpful
|
|
58
|
-
* default. `catchup: false` opts out a routine whose worth expires with its slot.
|
|
59
|
-
*/
|
|
60
10
|
export declare function shouldCatchUp(job: Pick<JobConfig, 'catchup'>): boolean;
|
|
61
|
-
/** The run id a missed fire is recorded under — derived from when it was DUE. */
|
|
62
11
|
export declare function missedRunId(expectedAt: Date): string;
|
|
63
|
-
/**
|
|
64
|
-
* CLAIM a missed fire: atomically record that it never happened, and report
|
|
65
|
-
* whether this caller is the one that recorded it.
|
|
66
|
-
*
|
|
67
|
-
* Returns the run on a successful claim, or `null` when another caller already
|
|
68
|
-
* claimed the same (routine, expected-fire) pair. That return value is the
|
|
69
|
-
* concurrency control for the whole module — only the claimant runs the routine
|
|
70
|
-
* late, so a fire can never be spawned twice.
|
|
71
|
-
*
|
|
72
|
-
* The atomicity is the non-recursive `mkdir` of the run directory: on every
|
|
73
|
-
* POSIX filesystem that is a single test-and-set, failing with EEXIST if the
|
|
74
|
-
* directory is already there. It therefore holds between the daemon's timer and
|
|
75
|
-
* a human running `agents routines catchup` in a separate process — which an
|
|
76
|
-
* in-process re-entrancy flag cannot cover, and which a lock cannot cover either
|
|
77
|
-
* (`withFileLock` is synchronous and this pass awaits a spawn).
|
|
78
|
-
*
|
|
79
|
-
* The run id is derived from `expectedAt` rather than "now" so the same missed
|
|
80
|
-
* fire always maps to the same directory — that is what makes the claim
|
|
81
|
-
* meaningful — and so the record sorts into `listRuns` (lexical over ISO run
|
|
82
|
-
* ids) at the point the gap actually occurred.
|
|
83
|
-
*
|
|
84
|
-
* Deliberately at-most-once: a process that dies between claiming and spawning
|
|
85
|
-
* leaves the fire un-run. That is the right trade for something that starts
|
|
86
|
-
* agent processes — a double spawn costs real work and money, while the miss is
|
|
87
|
-
* still on the record for a human to see and re-run.
|
|
88
|
-
*/
|
|
89
12
|
export declare function claimMissedFire(job: JobConfig, expectedAt: Date): RunMeta | null;
|
|
90
13
|
interface CatchupOptions {
|
|
91
|
-
/** Record misses but start no late runs. Powers `catchup --dry-run`. */
|
|
92
14
|
dryRun?: boolean;
|
|
93
|
-
/** Clock injection seam for tests. */
|
|
94
15
|
now?: Date;
|
|
95
|
-
/** Overdue set to act on. Defaults to detecting it. Lets a caller reuse a scan. */
|
|
96
16
|
overdue?: OverdueJob[];
|
|
97
17
|
}
|
|
98
|
-
/**
|
|
99
|
-
* Record — and, unless opted out, re-run — every routine this device missed.
|
|
100
|
-
*
|
|
101
|
-
* Device scoping is already enforced upstream: `detectOverdueJobs` skips a job
|
|
102
|
-
* pinned elsewhere (overdue.ts), so a fleet of machines never all catch up the
|
|
103
|
-
* same routine.
|
|
104
|
-
*/
|
|
105
18
|
export declare function runCatchup(opts?: CatchupOptions): Promise<CatchupOutcome[]>;
|
|
106
19
|
export {};
|
package/dist/lib/catchup.js
CHANGED
|
@@ -1,88 +1,20 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Catch-up: run a routine whose scheduled fire this device missed.
|
|
3
|
-
*
|
|
4
|
-
* Fires are in-process croner timers, and croner only ever schedules forward
|
|
5
|
-
* from "now". A daemon that is down, asleep, or wedged when a routine comes due
|
|
6
|
-
* therefore loses that fire outright — `loadAll()` rebuilds every Cron looking
|
|
7
|
-
* only at the future (scheduler.ts), so nothing replays it. Detection has always
|
|
8
|
-
* existed (`detectOverdueJobs`), but it ran once at daemon startup and only
|
|
9
|
-
* logged plus popped a notification; the routine still never ran.
|
|
10
|
-
*
|
|
11
|
-
* This module closes that loop. A missed fire is:
|
|
12
|
-
*
|
|
13
|
-
* 1. CLAIMED — `claimMissedFire` writes a real run with status `missed`,
|
|
14
|
-
* stamped at the time the fire was DUE, so `agents routines runs <name>`
|
|
15
|
-
* shows the gap instead of the listing showing a weeks-old `completed` as
|
|
16
|
-
* though it were current. The write is an atomic claim (see below), and
|
|
17
|
-
* only the claimant proceeds to step 2.
|
|
18
|
-
* 2. RUN — unless the routine sets `catchup: false`, it is executed late via
|
|
19
|
-
* the same `executeJobDetached` path `agents routines catchup` already used.
|
|
20
|
-
*
|
|
21
|
-
* The `missed` record is also what makes this idempotent, so there is no
|
|
22
|
-
* separate ledger to keep in sync. `detectOverdueJobs` compares the most recent
|
|
23
|
-
* expected fire against `getLatestRun(...).startedAt`; a `missed` record stamped
|
|
24
|
-
* at `expectedAt` advances that comparison, so the same missed fire is never
|
|
25
|
-
* reconsidered — across ticks, daemon restarts, or a restart storm. (A job that
|
|
26
|
-
* is overdue by definition has no run later than `expectedAt`, so the
|
|
27
|
-
* back-stamped record always sorts last in `listRuns`.)
|
|
28
|
-
*
|
|
29
|
-
* That comparison alone is not enough when two callers overlap, because both
|
|
30
|
-
* can read the same overdue set before either writes. The claim in
|
|
31
|
-
* `claimMissedFire` closes that: the record's directory is created with a
|
|
32
|
-
* non-recursive `mkdir`, an atomic test-and-set, and only the caller that wins
|
|
33
|
-
* it runs the routine. This holds across processes — the daemon's timer and a
|
|
34
|
-
* human running `agents routines catchup` — which neither an in-process flag
|
|
35
|
-
* nor `withFileLock` (synchronous; this pass awaits a spawn) can cover.
|
|
36
|
-
*/
|
|
37
1
|
import * as fs from 'fs';
|
|
38
2
|
import * as path from 'path';
|
|
39
3
|
import { readJob, writeRunMeta, getRunDir, } from './scheduling/routines.js';
|
|
40
4
|
import { detectOverdueJobs } from './overdue.js';
|
|
41
5
|
import { executeJobDetached } from './daemon/runner.js';
|
|
42
|
-
/**
|
|
43
|
-
* Is this routine allowed to run late? Default true — a routine you scheduled
|
|
44
|
-
* is one you expect to have run, so losing a fire silently is never the helpful
|
|
45
|
-
* default. `catchup: false` opts out a routine whose worth expires with its slot.
|
|
46
|
-
*/
|
|
47
6
|
export function shouldCatchUp(job) {
|
|
48
7
|
return job.catchup !== false;
|
|
49
8
|
}
|
|
50
|
-
/** The run id a missed fire is recorded under — derived from when it was DUE. */
|
|
51
9
|
export function missedRunId(expectedAt) {
|
|
52
10
|
return expectedAt.toISOString().replace(/[:.]/g, '-');
|
|
53
11
|
}
|
|
54
|
-
/**
|
|
55
|
-
* CLAIM a missed fire: atomically record that it never happened, and report
|
|
56
|
-
* whether this caller is the one that recorded it.
|
|
57
|
-
*
|
|
58
|
-
* Returns the run on a successful claim, or `null` when another caller already
|
|
59
|
-
* claimed the same (routine, expected-fire) pair. That return value is the
|
|
60
|
-
* concurrency control for the whole module — only the claimant runs the routine
|
|
61
|
-
* late, so a fire can never be spawned twice.
|
|
62
|
-
*
|
|
63
|
-
* The atomicity is the non-recursive `mkdir` of the run directory: on every
|
|
64
|
-
* POSIX filesystem that is a single test-and-set, failing with EEXIST if the
|
|
65
|
-
* directory is already there. It therefore holds between the daemon's timer and
|
|
66
|
-
* a human running `agents routines catchup` in a separate process — which an
|
|
67
|
-
* in-process re-entrancy flag cannot cover, and which a lock cannot cover either
|
|
68
|
-
* (`withFileLock` is synchronous and this pass awaits a spawn).
|
|
69
|
-
*
|
|
70
|
-
* The run id is derived from `expectedAt` rather than "now" so the same missed
|
|
71
|
-
* fire always maps to the same directory — that is what makes the claim
|
|
72
|
-
* meaningful — and so the record sorts into `listRuns` (lexical over ISO run
|
|
73
|
-
* ids) at the point the gap actually occurred.
|
|
74
|
-
*
|
|
75
|
-
* Deliberately at-most-once: a process that dies between claiming and spawning
|
|
76
|
-
* leaves the fire un-run. That is the right trade for something that starts
|
|
77
|
-
* agent processes — a double spawn costs real work and money, while the miss is
|
|
78
|
-
* still on the record for a human to see and re-run.
|
|
79
|
-
*/
|
|
80
12
|
export function claimMissedFire(job, expectedAt) {
|
|
81
13
|
const runId = missedRunId(expectedAt);
|
|
82
14
|
const runDir = getRunDir(job.name, runId);
|
|
83
15
|
fs.mkdirSync(path.dirname(runDir), { recursive: true });
|
|
84
16
|
try {
|
|
85
|
-
fs.mkdirSync(runDir);
|
|
17
|
+
fs.mkdirSync(runDir);
|
|
86
18
|
}
|
|
87
19
|
catch (err) {
|
|
88
20
|
if (err.code === 'EEXIST')
|
|
@@ -107,13 +39,6 @@ export function claimMissedFire(job, expectedAt) {
|
|
|
107
39
|
writeRunMeta(meta);
|
|
108
40
|
return meta;
|
|
109
41
|
}
|
|
110
|
-
/**
|
|
111
|
-
* Record — and, unless opted out, re-run — every routine this device missed.
|
|
112
|
-
*
|
|
113
|
-
* Device scoping is already enforced upstream: `detectOverdueJobs` skips a job
|
|
114
|
-
* pinned elsewhere (overdue.ts), so a fleet of machines never all catch up the
|
|
115
|
-
* same routine.
|
|
116
|
-
*/
|
|
117
42
|
export async function runCatchup(opts = {}) {
|
|
118
43
|
const overdue = opts.overdue ?? detectOverdueJobs(opts.now ?? new Date());
|
|
119
44
|
const outcomes = [];
|
|
@@ -128,8 +53,6 @@ export async function runCatchup(opts = {}) {
|
|
|
128
53
|
});
|
|
129
54
|
continue;
|
|
130
55
|
}
|
|
131
|
-
// Claim first. Losing the claim means another pass (or another process)
|
|
132
|
-
// already owns this fire — say so rather than running it a second time.
|
|
133
56
|
if (claimMissedFire(config, entry.expectedAt) === null) {
|
|
134
57
|
outcomes.push({ name: entry.name, expectedAt: entry.expectedAt, result: 'claimed-elsewhere' });
|
|
135
58
|
continue;
|
|
@@ -139,9 +62,6 @@ export async function runCatchup(opts = {}) {
|
|
|
139
62
|
continue;
|
|
140
63
|
}
|
|
141
64
|
try {
|
|
142
|
-
// No `scheduledFor` here on purpose: the missed slot is already claimed by
|
|
143
|
-
// `claimMissedFire` above (its atomic mkdir IS the catch-up single-fire), so
|
|
144
|
-
// the late run gets a fresh id rather than colliding with the missed record.
|
|
145
65
|
const meta = await executeJobDetached(config, undefined, { kind: 'catchup' });
|
|
146
66
|
outcomes.push({
|
|
147
67
|
name: entry.name,
|