@phnx-labs/agents-cli 1.22.120 → 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 +227 -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 +17 -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,11 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Scheduled job (routine) configuration and run history management.
|
|
3
|
-
*
|
|
4
|
-
* Routines are YAML files in ~/.agents/routines/ that define recurring or
|
|
5
|
-
* one-shot agent tasks. This module handles CRUD operations on job configs,
|
|
6
|
-
* run metadata persistence, prompt variable expansion, and one-shot "at" time
|
|
7
|
-
* scheduling.
|
|
8
|
-
*/
|
|
9
1
|
import { Cron } from 'croner';
|
|
10
2
|
import { type ResolvedExecutionContext, type ProjectResolution, type PlacementMode, type ContextFsProbe } from '../routine-context.js';
|
|
11
3
|
import type { AgentId, RunStrategy } from '../types.js';
|
|
@@ -17,27 +9,19 @@ export declare function nextRunLabel(job: JobConfig, scheduler: JobScheduler, no
|
|
|
17
9
|
export declare function localLatestRun(job: JobConfig): RunMeta | null;
|
|
18
10
|
export declare function listJobsForDisplay(cwd?: string): JobConfig[];
|
|
19
11
|
export declare function buildRoutineListJson(): Record<string, unknown>[];
|
|
20
|
-
/** One routine's live scheduler-status row for `agents routines status --json`. */
|
|
21
12
|
interface RoutineStatusRow {
|
|
22
13
|
name: string;
|
|
23
|
-
/** The single device this routine is pinned to fire on, or null when unpinned. */
|
|
24
14
|
ownerDevice: string | null;
|
|
25
|
-
/** True when `devices:` names more than one device — no single owner (doctor flags it). */
|
|
26
15
|
ambiguousDevicePin: boolean;
|
|
27
|
-
/** Every device this routine is enabled on. */
|
|
28
16
|
enabledDevices: string[];
|
|
29
|
-
/** Whether THIS device is the one that fires the routine. */
|
|
30
17
|
runsHere: boolean;
|
|
31
18
|
enabled: boolean;
|
|
32
19
|
overdue: boolean;
|
|
33
20
|
nextRun: string | null;
|
|
34
|
-
/** Terminal status of the last local fire: completed/failed/timeout/missed/blocked/skipped/running, or null if it never ran here. */
|
|
35
21
|
lastStatus: RunMeta['status'] | null;
|
|
36
|
-
/** The last fire's failure reason, when it did not complete cleanly. Named to match `list --json`'s `failureReason`. */
|
|
37
22
|
failureReason: string | null;
|
|
38
23
|
lastRunStartedAt: string | null;
|
|
39
24
|
lastRunCompletedAt: string | null;
|
|
40
|
-
/** Present only while a run is genuinely in flight on THIS device (a live local child or a host-placed run) — never a provisional pre-spawn claim. */
|
|
41
25
|
inFlight: {
|
|
42
26
|
runId: string;
|
|
43
27
|
pid: number | null;
|
|
@@ -45,129 +29,49 @@ interface RoutineStatusRow {
|
|
|
45
29
|
triggerKind: RunMeta['triggerKind'] | null;
|
|
46
30
|
} | null;
|
|
47
31
|
}
|
|
48
|
-
/**
|
|
49
|
-
* The per-routine rows behind `agents routines status --json`. Distinct from
|
|
50
|
-
* {@link buildRoutineListJson}: this is the scheduler-truth surface the daemon
|
|
51
|
-
* owns — per routine it names the single owner device, the last fire's outcome
|
|
52
|
-
* and error, and any in-flight spawn — the fields an operator (or the menu bar /
|
|
53
|
-
* ext) needs to answer "did this routine fire, and is one running right now?"
|
|
54
|
-
* that the definition-shaped `list --json` does not carry (PHNX-3215).
|
|
55
|
-
*
|
|
56
|
-
* `monitorRunningJobs()` runs first to reap runs whose process has exited, then
|
|
57
|
-
* `inFlight` is gated on {@link isRunGenuinelyInFlight} — NOT on `status ===
|
|
58
|
-
* 'running'` alone, because a provisional pre-spawn claim is `running` with a
|
|
59
|
-
* null pid that the reaper does not touch (RUSH-2640).
|
|
60
|
-
*
|
|
61
|
-
* The routine set is the schedulable one ({@link listJobs}, the same
|
|
62
|
-
* `getDaemonStatus`/`routines status` counts), not the display set
|
|
63
|
-
* {@link buildRoutineListJson} uses — a scheduler-status surface names what the
|
|
64
|
-
* daemon can actually fire, not discoverable-but-unmaterialised project routines.
|
|
65
|
-
*/
|
|
66
32
|
export declare function buildRoutineStatusRows(): RoutineStatusRow[];
|
|
67
|
-
/** Tool/site/directory allow-list for sandboxed job execution. */
|
|
68
33
|
export interface JobAllowConfig {
|
|
69
34
|
tools?: string[];
|
|
70
35
|
sites?: string[];
|
|
71
36
|
dirs?: string[];
|
|
72
37
|
}
|
|
73
|
-
/**
|
|
74
|
-
* Where a routine's job body executes when the daemon fires it.
|
|
75
|
-
* Distinct from `devices` (which daemon may *fire*) and from the CLI `--device`
|
|
76
|
-
* remote-management passthrough (manage routines *on* another machine).
|
|
77
|
-
*/
|
|
78
38
|
export type HostStrategy = 'local' | 'host' | 'fleet' | 'cloud';
|
|
79
39
|
export declare const HOST_STRATEGIES: readonly HostStrategy[];
|
|
80
|
-
/**
|
|
81
|
-
* Provenance for a routine that was materialised from a project
|
|
82
|
-
* (`.agents/routines/*.yml` synced into the user layer after opt-in).
|
|
83
|
-
*/
|
|
84
40
|
export interface JobSource {
|
|
85
|
-
/** Always `project` today; reserved for future layers. */
|
|
86
41
|
kind: 'project';
|
|
87
|
-
/** Absolute path to the project root that owns the YAML. */
|
|
88
42
|
projectPath: string;
|
|
89
|
-
/** GitHub `owner/repo` when the project has a GitHub origin remote. */
|
|
90
43
|
repo?: string;
|
|
91
|
-
/** Branch at last sync (when known). */
|
|
92
44
|
branch?: string;
|
|
93
|
-
/** Short commit SHA at last sync (when known). */
|
|
94
45
|
commit?: string;
|
|
95
46
|
}
|
|
96
|
-
/** GitHub webhook events a routine can be triggered by. */
|
|
97
47
|
export type GithubTriggerEvent = 'pull_request' | 'push' | 'issue_comment' | 'workflow_run';
|
|
98
|
-
/** Canonical set of accepted GitHub trigger events — single source for validation. */
|
|
99
48
|
export declare const GITHUB_TRIGGER_EVENTS: readonly GithubTriggerEvent[];
|
|
100
|
-
/** Linear webhook resource types a routine can be triggered by. */
|
|
101
49
|
export type LinearTriggerEvent = 'Issue' | 'IssueLabel' | 'Comment' | 'Project' | 'Cycle';
|
|
102
|
-
/**
|
|
103
|
-
* Map a user-facing `--on` alias to a canonical GitHub trigger event.
|
|
104
|
-
* Accepts the canonical names plus friendly shortcuts (e.g. `pr`, `pr_opened`
|
|
105
|
-
* → `pull_request`, `comment` → `issue_comment`). Returns null when unknown.
|
|
106
|
-
*/
|
|
107
50
|
export declare function normalizeTriggerEvent(input: string): GithubTriggerEvent | null;
|
|
108
|
-
/**
|
|
109
|
-
* Event-based fire condition for a routine — an alternative (or complement) to
|
|
110
|
-
* `schedule`. Incoming webhooks whose source-specific filters match fire the job
|
|
111
|
-
* through the same dispatch path a cron fire uses. See
|
|
112
|
-
* `src/lib/triggers/webhook.ts`.
|
|
113
|
-
*/
|
|
114
51
|
export interface GithubJobTrigger {
|
|
115
52
|
type: 'github_event';
|
|
116
53
|
event: GithubTriggerEvent;
|
|
117
|
-
/** `owner/name` — when set, only payloads for this repo match. */
|
|
118
54
|
repo?: string;
|
|
119
|
-
/** git branch (ref short name) — when set, only payloads for this branch match. */
|
|
120
55
|
branch?: string;
|
|
121
|
-
/** GitHub webhook action, e.g. `opened`, `synchronize`, or `labeled`. */
|
|
122
56
|
action?: string;
|
|
123
|
-
/** Required GitHub label name. For `pull_request.labeled`, this is the added label. */
|
|
124
57
|
label?: string;
|
|
125
58
|
}
|
|
126
59
|
export interface LinearJobTrigger {
|
|
127
60
|
type: 'linear_event';
|
|
128
61
|
event: LinearTriggerEvent;
|
|
129
|
-
/** Linear action, e.g. `create`, `update`, `remove`. */
|
|
130
62
|
action?: string;
|
|
131
|
-
/** Issue identifier prefix such as `RUSH`; useful when one webhook spans teams. */
|
|
132
63
|
teamKey?: string;
|
|
133
|
-
/** Required issue label name. */
|
|
134
64
|
label?: string;
|
|
135
|
-
/** Fire on a transition INTO this Linear state (e.g. `Plan`): the current state
|
|
136
|
-
* must match AND the delivery's `updatedFrom` must record a state change, so a
|
|
137
|
-
* later edit that leaves the issue in this state does not re-fire (RUSH-2539). */
|
|
138
65
|
stateTo?: string;
|
|
139
|
-
/** Previous Linear state name that must match (e.g. `Triage`). */
|
|
140
66
|
stateFrom?: string;
|
|
141
67
|
}
|
|
142
68
|
export type JobTrigger = GithubJobTrigger | LinearJobTrigger;
|
|
143
|
-
/**
|
|
144
|
-
* Full configuration for a routine (persisted as YAML).
|
|
145
|
-
*
|
|
146
|
-
* A job fires on a `schedule` (cron), on a `trigger` (event/webhook), or both.
|
|
147
|
-
* `schedule` remains a first-class field; trigger-only jobs omit it and are
|
|
148
|
-
* skipped by the cron scheduler (they fire only via the webhook receiver).
|
|
149
|
-
*/
|
|
150
69
|
export interface JobConfig {
|
|
151
70
|
name: string;
|
|
152
|
-
/** Cron expression. Optional when `trigger` is set (event-only routine). */
|
|
153
71
|
schedule?: string;
|
|
154
|
-
/** Event/webhook fire condition. Optional when `schedule` is set. */
|
|
155
72
|
trigger?: JobTrigger;
|
|
156
|
-
/**
|
|
157
|
-
* Which agent runs the routine — a native harness id, or the name of a
|
|
158
|
-
* custom harness (`agents harness list`), which the runner delegates to
|
|
159
|
-
* `agents run <name>` the same way workflow jobs are. Optional — omitted
|
|
160
|
-
* for `workflow`/`command` routines. Exactly one of agent/workflow/command
|
|
161
|
-
* must be set.
|
|
162
|
-
*/
|
|
163
73
|
agent?: AgentId | (string & {});
|
|
164
74
|
workflow?: string;
|
|
165
|
-
/**
|
|
166
|
-
* A plain shell command run directly instead of an agent/workflow — no LLM,
|
|
167
|
-
* no auth, no rotation, no tokens, no sandbox overlay. For deterministic
|
|
168
|
-
* housekeeping routines (version-check, `npm i -g`, `git pull`, notify).
|
|
169
|
-
* Mutually exclusive with `agent` and `workflow`.
|
|
170
|
-
*/
|
|
171
75
|
command?: string;
|
|
172
76
|
mode: 'plan' | 'edit' | 'auto' | 'skip' | 'full';
|
|
173
77
|
effort: 'low' | 'medium' | 'high' | 'xhigh' | 'max' | 'auto';
|
|
@@ -176,208 +80,32 @@ export interface JobConfig {
|
|
|
176
80
|
prompt: string;
|
|
177
81
|
timezone?: string;
|
|
178
82
|
repo?: string;
|
|
179
|
-
/**
|
|
180
|
-
* Singular execution anchor: the named project (`agents projects`) whose base
|
|
181
|
-
* directory the routine's run lands in. Optional. Metadata-only `projects[]`
|
|
182
|
-
* (below) is NEVER used for execution — this field is. Resolution happens on
|
|
183
|
-
* the execution TARGET (`resolveRoutineExecutionContext`, routine-context.ts),
|
|
184
|
-
* never from the daemon's own cwd: a project with a usable `defaultPath`/`root`
|
|
185
|
-
* gives the base directory; a rootless Linear-imported project gives no base,
|
|
186
|
-
* so a bare relative `cwd` then anchors at the target user's `$HOME`.
|
|
187
|
-
*
|
|
188
|
-
* CLI flag is `--project-anchor` (not `--project`, which is the repeatable
|
|
189
|
-
* grouping-metadata flag that writes `projects[]`). The YAML key is the shorter
|
|
190
|
-
* singular `project` because it is unambiguous there.
|
|
191
|
-
*/
|
|
192
83
|
project?: string;
|
|
193
|
-
/**
|
|
194
|
-
* Portable execution directory for the routine's run. Optional. A relative
|
|
195
|
-
* value resolves under the `project` base when that base is usable, otherwise
|
|
196
|
-
* under the execution target's `$HOME` (so a Linear-imported rootless project
|
|
197
|
-
* can still name `cwd: src/github.com/acme/app`). A `~/`-anchored value is the
|
|
198
|
-
* target's home-relative path; an absolute path under the target home is
|
|
199
|
-
* normalized to the portable `~/…` form on save. An absolute path outside the
|
|
200
|
-
* home is only allowed for local-pinned routines — host/fleet/cloud placement
|
|
201
|
-
* pauses it as non-portable. Supersedes the legacy `remoteCwd`, which the
|
|
202
|
-
* one-shot migration folds into this field.
|
|
203
|
-
*/
|
|
204
84
|
cwd?: string;
|
|
205
|
-
/**
|
|
206
|
-
* Fleet allowlist — restrict this routine to specific devices. When omitted
|
|
207
|
-
* or empty, the routine is unrestricted and fires on every device running the
|
|
208
|
-
* scheduler. When set, only devices whose `machineId()` matches any entry
|
|
209
|
-
* (via `normalizeHost`) schedule, fire, catch up, or count this job as
|
|
210
|
-
* overdue; everywhere else it is inert and `run` refuses with a pointer.
|
|
211
|
-
*/
|
|
212
85
|
devices?: string[];
|
|
213
|
-
/**
|
|
214
|
-
* Whether a fire this device missed (daemon down, laptop asleep, wedged event
|
|
215
|
-
* loop) is run late. Defaults to true: croner only schedules forward from
|
|
216
|
-
* "now", so without catch-up a missed fire is simply lost and the routine
|
|
217
|
-
* silently does not run.
|
|
218
|
-
*
|
|
219
|
-
* Set `catchup: false` for a routine whose value is tied to its clock — a
|
|
220
|
-
* 9am standup brief is worthless at 3pm. An opted-out routine still records
|
|
221
|
-
* the miss (a `missed` run), it just is not re-run.
|
|
222
|
-
*/
|
|
223
86
|
catchup?: boolean;
|
|
224
|
-
/**
|
|
225
|
-
* When this routine came into existence, ISO 8601. Stamped once by
|
|
226
|
-
* {@link writeJob}, like `actor`.
|
|
227
|
-
*
|
|
228
|
-
* Overdue detection needs it: `detectOverdueJobs` walks back a week for the
|
|
229
|
-
* most recent expected fire, so without a floor a brand-new routine is
|
|
230
|
-
* "overdue" for occurrences that happened before it was written. Harmless
|
|
231
|
-
* when catch-up was a manual command; with auto-catchup it would run every
|
|
232
|
-
* newly created routine once, immediately.
|
|
233
|
-
*/
|
|
234
87
|
createdAt?: string;
|
|
235
|
-
/**
|
|
236
|
-
* Environment variables injected into the spawned run, on top of the sandbox
|
|
237
|
-
* overlay's own. Merged by `buildSpawnEnv`, so it applies to both the
|
|
238
|
-
* foreground and detached execution paths.
|
|
239
|
-
*/
|
|
240
88
|
env?: Record<string, string>;
|
|
241
|
-
/**
|
|
242
|
-
* Execution placement — run the job body on this machine over SSH (a
|
|
243
|
-
* registered host, device, capability tag, or user@host) instead of locally.
|
|
244
|
-
* Distinct from `devices`: `devices` says which daemon may FIRE the job,
|
|
245
|
-
* `host` says where the dispatched run EXECUTES. CLI flag: `--run-on`
|
|
246
|
-
* (`--device` on routines commands already means "manage routines on that
|
|
247
|
-
* machine" via the remote passthrough).
|
|
248
|
-
*
|
|
249
|
-
* When `hostStrategy` is set, it owns placement semantics; `host` is then
|
|
250
|
-
* only required for `hostStrategy: host` (or when strategy is inferred from
|
|
251
|
-
* a bare `host:` field for back-compat).
|
|
252
|
-
*/
|
|
253
89
|
host?: string;
|
|
254
|
-
/**
|
|
255
|
-
* Where the job body should run when the daemon fires it.
|
|
256
|
-
* - `local` — on the firing machine (default / current behavior)
|
|
257
|
-
* - `host` — on the named `host` over SSH (maps to `--run-on`)
|
|
258
|
-
* - `fleet` — pick one online registered device per run (no cross-device
|
|
259
|
-
* double-fire; the firing pin stays on `devices`)
|
|
260
|
-
* - `cloud` — dispatch via the agent's native cloud provider
|
|
261
|
-
*
|
|
262
|
-
* CLI flag: `--placement` (not `--device`, which is the remote-management
|
|
263
|
-
* passthrough). Omitted strategy falls back to `host` when `host:` is set,
|
|
264
|
-
* otherwise `local`.
|
|
265
|
-
*/
|
|
266
90
|
hostStrategy?: HostStrategy;
|
|
267
|
-
/** Working directory on the host for `host:`-placed runs. */
|
|
268
91
|
remoteCwd?: string;
|
|
269
|
-
/**
|
|
270
|
-
* Provenance for routines materialised from a project
|
|
271
|
-
* (`<project>/.agents/routines/*.yml` → user-layer copy after opt-in).
|
|
272
|
-
* Absent for hand-authored user/system routines.
|
|
273
|
-
*/
|
|
274
92
|
source?: JobSource;
|
|
275
93
|
variables?: Record<string, string>;
|
|
276
94
|
sandbox?: boolean;
|
|
277
95
|
allow?: JobAllowConfig;
|
|
278
96
|
config?: Record<string, unknown>;
|
|
279
97
|
version?: string;
|
|
280
|
-
/**
|
|
281
|
-
* Explicit per-routine version/account selection strategy — the same
|
|
282
|
-
* vocabulary as `agents run --strategy` (RUN_STRATEGIES). Overrides
|
|
283
|
-
* `run.<agent>.strategy` from the FIRING device's own agents.yaml
|
|
284
|
-
* (getConfiguredRunStrategy) so a routine's selection policy travels with the
|
|
285
|
-
* definition instead of depending on whichever box happens to fire it.
|
|
286
|
-
* Conflicts with `version:` (an exact pin leaves nothing to select) —
|
|
287
|
-
* validateJob rejects the pair.
|
|
288
|
-
*/
|
|
289
98
|
strategy?: RunStrategy;
|
|
290
|
-
/**
|
|
291
|
-
* Pin this routine to a signed-in account by identity (its login email, or its
|
|
292
|
-
* account key) instead of rotating. At launch it resolves to whichever
|
|
293
|
-
* installed version currently holds that account and runs pinned — no
|
|
294
|
-
* `balanced` rotation, no usage-read refresh, no failover onto other accounts.
|
|
295
|
-
*
|
|
296
|
-
* This is the durable way to keep concurrent unattended routines off a *shared*
|
|
297
|
-
* Claude OAuth credential: the refresh token is single-use and rotates
|
|
298
|
-
* server-side on every refresh, so two routines running the same account
|
|
299
|
-
* concurrently (on one box or across the fleet) mutually revoke each other —
|
|
300
|
-
* the `401 OAuth access token has been revoked` storm (RUSH-1957). Give each
|
|
301
|
-
* routine (or each device's routines) a distinct account and no run rotates a
|
|
302
|
-
* credential out from under another.
|
|
303
|
-
*
|
|
304
|
-
* Prefer this over `version:`, which pins a version *number* that is GC'd on
|
|
305
|
-
* the next agent upgrade — when the pinned version disappears the routine
|
|
306
|
-
* silently falls back to `balanced` and the stampede returns.
|
|
307
|
-
*/
|
|
308
99
|
account?: string;
|
|
309
100
|
runOnce?: boolean;
|
|
310
101
|
endAt?: string;
|
|
311
|
-
/**
|
|
312
|
-
* When set, the job resumes this existing agent session id at fire time
|
|
313
|
-
* (`agents run <agent> --resume <id>`) instead of starting a fresh conversation,
|
|
314
|
-
* so the actual session reopens with full context and `prompt` becomes its next
|
|
315
|
-
* turn. Powers self-scheduled wake-ups (e.g. /hibernate). claude/codex only.
|
|
316
|
-
*/
|
|
317
102
|
resume?: string;
|
|
318
|
-
/** When set, executeJob runs this job through the loop driver instead of once. */
|
|
319
103
|
loop?: LoopConfig;
|
|
320
|
-
/**
|
|
321
|
-
* Actor id of whoever CREATED this routine (`resolveActor().id`, stamped by
|
|
322
|
-
* `writeJob` at creation and preserved across edits). Propagated into each
|
|
323
|
-
* fired run's env and RunMeta so an unattended cron traces back to the person
|
|
324
|
-
* who scheduled it, not the `UNRESOLVED@<host>` a live resolve would give.
|
|
325
|
-
* RUSH-2020.
|
|
326
|
-
*/
|
|
327
104
|
actor?: string;
|
|
328
|
-
/**
|
|
329
|
-
* Named projects this routine belongs to. Metadata-only: organises the
|
|
330
|
-
* routine under a project group in `agents routines list` and the menu bar;
|
|
331
|
-
* has no effect on scheduling or execution.
|
|
332
|
-
*
|
|
333
|
-
* Special values:
|
|
334
|
-
* - `["*"]` — routine applies to all defined projects (the "All projects" group).
|
|
335
|
-
* - A single name — routine belongs to that specific project.
|
|
336
|
-
* - Multiple names — routine spans several projects ("Cross-project" group).
|
|
337
|
-
* - Absent/empty — routine belongs to no project ("Operations" group).
|
|
338
|
-
*/
|
|
339
105
|
projects?: string[];
|
|
340
|
-
/**
|
|
341
|
-
* Set only by `lib/monitors/dispatch.ts` on the one-off job it synthesizes for
|
|
342
|
-
* a monitor's `run` action. Such a job is NOT a routine: it has no definition
|
|
343
|
-
* file, `agents routines` never lists it, and its name can therefore never
|
|
344
|
-
* appear in this device's routine activation manifest
|
|
345
|
-
* (`~/.agents/devices/<machine>/agents.yaml` → `routines:`). Gating it on that
|
|
346
|
-
* manifest refused every monitor action fleet-wide with `wrong_owner` and an
|
|
347
|
-
* empty allowlist (RUSH-2681), so {@link jobRunsOnThisDevice} skips the
|
|
348
|
-
* manifest for it. Exactly-once ownership is already resolved BEFORE dispatch
|
|
349
|
-
* by the monitor's own `device:` pin (`monitorRunsOnThisDevice`,
|
|
350
|
-
* `lib/monitors/config.ts`) — re-gating here was double-gating on the wrong
|
|
351
|
-
* key.
|
|
352
|
-
*
|
|
353
|
-
* Deliberately narrow: a monitor's or webhook handler's `routine` action fires a
|
|
354
|
-
* REAL routine, which keeps its activation gate, so a routine defined but not
|
|
355
|
-
* activated on this device is still refused.
|
|
356
|
-
*
|
|
357
|
-
* Runtime-only, enforced at both ends of the schema boundary: `writeJob`
|
|
358
|
-
* strips it, and `readJobFileResult` refuses a definition that carries it
|
|
359
|
-
* (a hand-authored one would otherwise fire on every box regardless of
|
|
360
|
-
* activation, since the daemon's load path never calls `validateJob`).
|
|
361
|
-
*/
|
|
362
106
|
dispatchedBy?: 'monitor' | 'webhook';
|
|
363
107
|
}
|
|
364
|
-
/**
|
|
365
|
-
* Canonical form of a routine's `projects` field: drop non-string and empty
|
|
366
|
-
* entries and deduplicate while preserving first-seen order. This is the single
|
|
367
|
-
* source of truth for project-name normalization, applied at the schema
|
|
368
|
-
* boundary (`writeJob` before persistence) and at grouping (`computeProjectGroupKind`)
|
|
369
|
-
* so a hand-authored YAML with duplicates (`projects: [myapp, myapp]`) is
|
|
370
|
-
* treated identically to the canonical single-entry form everywhere.
|
|
371
|
-
*
|
|
372
|
-
* Returns `undefined` when nothing survives, so callers can omit the field.
|
|
373
|
-
*/
|
|
374
108
|
export declare function normalizeProjects(projects: string[] | undefined): string[] | undefined;
|
|
375
|
-
/**
|
|
376
|
-
* A routine's project bucket, discriminated by `kind` so buckets are never keyed
|
|
377
|
-
* on their human display label. A named project called literally "Operations" or
|
|
378
|
-
* "Cross-project" is `{ kind: 'named', name }` and can never collide with the
|
|
379
|
-
* `operations` / `cross` special buckets that happen to share those titles.
|
|
380
|
-
*/
|
|
381
109
|
type ProjectGroup = {
|
|
382
110
|
kind: 'named';
|
|
383
111
|
name: string;
|
|
@@ -390,111 +118,30 @@ type ProjectGroup = {
|
|
|
390
118
|
} | {
|
|
391
119
|
kind: 'unknown';
|
|
392
120
|
};
|
|
393
|
-
/**
|
|
394
|
-
* Classify a routine's `projects` field into a discriminated {@link ProjectGroup}.
|
|
395
|
-
* Duplicates are collapsed first ({@link normalizeProjects}), so `[myapp, myapp]`
|
|
396
|
-
* is a single named project, not a "Cross-project" span.
|
|
397
|
-
*
|
|
398
|
-
* @param projects - The routine's projects array (may be undefined).
|
|
399
|
-
* @param knownProjectNames - The set of currently defined project names (from `listProjectDefs`).
|
|
400
|
-
*/
|
|
401
121
|
export declare function computeProjectGroupKind(projects: string[] | undefined, knownProjectNames: Set<string>): ProjectGroup;
|
|
402
|
-
/** Human display title for a {@link ProjectGroup}. */
|
|
403
122
|
export declare function projectGroupTitle(group: ProjectGroup): string;
|
|
404
|
-
/**
|
|
405
|
-
* Stable bucket key for a {@link ProjectGroup}. Named projects key on their name
|
|
406
|
-
* under a `named:` prefix; specials key on their `kind` under a `special:` prefix.
|
|
407
|
-
* The two namespaces can never collide, so a project named "Operations" gets its
|
|
408
|
-
* own bucket separate from the no-project "Operations" special.
|
|
409
|
-
*/
|
|
410
123
|
export declare function projectGroupKey(group: ProjectGroup): string;
|
|
411
|
-
/** Sort rank for a {@link ProjectGroup}: named projects first, then specials in a fixed order. */
|
|
412
124
|
export declare function projectGroupOrder(group: ProjectGroup): number;
|
|
413
|
-
/**
|
|
414
|
-
* Compute the display group label for a routine's `projects` field.
|
|
415
|
-
*
|
|
416
|
-
* Kept as the label-returning form for the JSON `projectGroup` field and any
|
|
417
|
-
* text consumer; grouping and ordering use the discriminated
|
|
418
|
-
* {@link computeProjectGroupKind}/{@link projectGroupKey} instead so buckets are
|
|
419
|
-
* never keyed on the label.
|
|
420
|
-
*
|
|
421
|
-
* @param projects - The routine's projects array (may be undefined).
|
|
422
|
-
* @param knownProjectNames - The set of currently defined project names (from `listProjectDefs`).
|
|
423
|
-
*
|
|
424
|
-
* Returns one of:
|
|
425
|
-
* - A specific project name — when `projects` has exactly one known name.
|
|
426
|
-
* - `"All projects"` — when `projects` is `["*"]`.
|
|
427
|
-
* - `"Cross-project"` — when `projects` has multiple distinct known entries.
|
|
428
|
-
* - `"Operations"` — when `projects` is absent or empty.
|
|
429
|
-
* - `"Unknown projects"` — when any entry is no longer a defined project (stale).
|
|
430
|
-
*/
|
|
431
125
|
export declare function computeProjectGroup(projects: string[] | undefined, knownProjectNames: Set<string>): string;
|
|
432
|
-
/**
|
|
433
|
-
* Resolve a routine's execution context (working directory + structural/fs
|
|
434
|
-
* readiness) by bridging its `project`/`cwd` fields into the pure
|
|
435
|
-
* {@link resolveRoutineExecutionContext} resolver. Local placement resolves
|
|
436
|
-
* against this machine's `$HOME` with a real filesystem probe; a caller may
|
|
437
|
-
* inject a different target home / probe (e.g. `null` to defer existence for a
|
|
438
|
-
* remote target).
|
|
439
|
-
*/
|
|
440
126
|
export declare function resolveJobExecutionContext(config: Pick<JobConfig, 'name' | 'project' | 'cwd' | 'agent' | 'workflow' | 'command'>, opts?: {
|
|
441
127
|
targetHome?: string;
|
|
442
128
|
mode?: PlacementMode;
|
|
443
129
|
probe?: ContextFsProbe | null;
|
|
444
130
|
projectResolution?: ProjectResolution;
|
|
445
131
|
}): ResolvedExecutionContext;
|
|
446
|
-
/** Metadata for a single job execution, persisted as JSON in the run directory. */
|
|
447
132
|
export interface RunMeta {
|
|
448
133
|
jobName: string;
|
|
449
134
|
runId: string;
|
|
450
135
|
agent?: AgentId | (string & {});
|
|
451
|
-
/**
|
|
452
|
-
* Resolved agent version this run launched under. Re-pointed to each failover
|
|
453
|
-
* attempt's version as the single-shot chain advances (runner.ts), so it names
|
|
454
|
-
* the version that actually ran and wrote the transcript. Recorded so
|
|
455
|
-
* `archiveRoutineTranscripts` can find the transcript in the per-version home a
|
|
456
|
-
* config-dir-relocating agent (claude/codex) writes to, and so account
|
|
457
|
-
* attribution can name the home that ran (RUSH-2271). Unset for
|
|
458
|
-
* command/self-updating runs.
|
|
459
|
-
*/
|
|
460
136
|
version?: string;
|
|
461
137
|
workflow?: string;
|
|
462
|
-
/** The shell command that ran, for command-mode routines (no agent). */
|
|
463
138
|
command?: string;
|
|
464
139
|
pid: number | null;
|
|
465
|
-
/** Process birth time (epoch ms) recorded at spawn for pid-reuse detection. */
|
|
466
140
|
spawnedAt?: number;
|
|
467
|
-
/** Configured execution deadline persisted for daemon-restart recovery. */
|
|
468
141
|
timeoutMs?: number;
|
|
469
|
-
/**
|
|
470
|
-
* `missed` is not an execution outcome — it is the record that a scheduled
|
|
471
|
-
* fire never happened (the daemon was down, asleep, or wedged when it came
|
|
472
|
-
* due). Without it a miss leaves no trace at all and the listing keeps
|
|
473
|
-
* showing the previous run's status as if it were current. Written by
|
|
474
|
-
* `claimMissedFire` (catchup.ts), never by the runner.
|
|
475
|
-
*
|
|
476
|
-
* `blocked` and `skipped` are pre-execution terminals that leave a visible
|
|
477
|
-
* record even though no agent process ran (the plan's history contract):
|
|
478
|
-
* - `blocked` — a fire-time readiness rejection (bad context, dead auth,
|
|
479
|
-
* untrusted workspace). No agent process was spawned. Distinct from `failed`,
|
|
480
|
-
* which means a process started and failed.
|
|
481
|
-
* - `skipped` — the attempt lost a claim (`skipReason`): a duplicate schedule
|
|
482
|
-
* slot, an already-active run it would overlap, or a wrong device owner.
|
|
483
|
-
*/
|
|
484
142
|
status: 'running' | 'completed' | 'failed' | 'timeout' | 'missed' | 'blocked' | 'skipped';
|
|
485
|
-
/**
|
|
486
|
-
* How this attempt was triggered. Answers "why did this run exist" for a
|
|
487
|
-
* record that may have no transcript (a blocked/skipped attempt).
|
|
488
|
-
*/
|
|
489
143
|
triggerKind?: 'schedule' | 'catchup' | 'manual' | 'webhook' | 'event';
|
|
490
|
-
/**
|
|
491
|
-
* The scheduler's intended UTC fire time (ISO), for a `schedule`/`catchup`
|
|
492
|
-
* attempt. The atomic single-fire claim keys on (routine, scheduledFor): a
|
|
493
|
-
* duplicate cron delivery for the same slot resolves to this same run rather
|
|
494
|
-
* than launching a second time.
|
|
495
|
-
*/
|
|
496
144
|
scheduledFor?: string;
|
|
497
|
-
/** Resolved execution context (routine-context.ts), recorded before preflight. */
|
|
498
145
|
project?: string;
|
|
499
146
|
requestedCwd?: string;
|
|
500
147
|
resolvedCwd?: string;
|
|
@@ -503,167 +150,45 @@ export interface RunMeta {
|
|
|
503
150
|
message: string;
|
|
504
151
|
repair?: string;
|
|
505
152
|
};
|
|
506
|
-
/** Why a `skipped` attempt launched nothing. */
|
|
507
153
|
skipReason?: 'duplicate_slot' | 'active_run' | 'wrong_owner';
|
|
508
|
-
/** The run this attempt deferred to (the winning duplicate slot / active run). */
|
|
509
154
|
activeRunId?: string;
|
|
510
155
|
startedAt: string;
|
|
511
156
|
completedAt: string | null;
|
|
512
157
|
exitCode: number | null;
|
|
513
|
-
/** Machine-readable failure reason when the run did not complete successfully. */
|
|
514
158
|
errorMessage?: string;
|
|
515
|
-
/** Wall-clock duration of the run in milliseconds (set when the run finishes). */
|
|
516
159
|
duration?: number;
|
|
517
|
-
/** Set for `host:`-placed runs — where the job body executes (no local pid). */
|
|
518
160
|
host?: string;
|
|
519
|
-
/** The host-task sidecar id backing a `host:` run; the daemon monitor
|
|
520
|
-
* finalizes the run by reconciling it against the remote `.exit`. */
|
|
521
161
|
hostTaskId?: string;
|
|
522
|
-
/** Cloud provider task id when `hostStrategy: cloud` dispatched the run. */
|
|
523
162
|
cloudTaskId?: string;
|
|
524
|
-
/** Cloud provider id when the run was cloud-dispatched. */
|
|
525
163
|
cloudProvider?: string;
|
|
526
|
-
/**
|
|
527
|
-
* Actor id of the routine's CREATOR (stamped at creation, carried from the job
|
|
528
|
-
* config). Answers "whose scheduled run is this" for an unattended cron fire,
|
|
529
|
-
* where resolving the actor live would only yield `UNRESOLVED@<host>`. RUSH-2020.
|
|
530
|
-
*/
|
|
531
164
|
actor?: string;
|
|
532
|
-
/**
|
|
533
|
-
* Actor id that TRIGGERED this particular run (`resolveActor().id` at fire
|
|
534
|
-
* time): a person for a manual `agents routines run`, `UNRESOLVED@<host>` for
|
|
535
|
-
* an unattended scheduled fire. Distinct from {@link actor} (the creator).
|
|
536
|
-
*/
|
|
537
165
|
triggeredBy?: string;
|
|
538
166
|
}
|
|
539
|
-
/**
|
|
540
|
-
* Finalize a run record with a terminal status, computing `duration` from
|
|
541
|
-
* `startedAt` and the completion timestamp. Keeps failure-reason population
|
|
542
|
-
* centralized so every completion path writes the same machine-readable fields.
|
|
543
|
-
*/
|
|
544
167
|
export declare function finalizeRunMeta(meta: RunMeta, status: RunMeta['status'], exitCode: number | null, opts?: {
|
|
545
168
|
errorMessage?: string;
|
|
546
169
|
completedAt?: string;
|
|
547
170
|
}): void;
|
|
548
|
-
/**
|
|
549
|
-
* True when the job may execute on this machine: no `devices` allowlist (or
|
|
550
|
-
* empty), or the allowlist includes this device. Both sides go through
|
|
551
|
-
* `normalizeHost` so `Yosemite-S0`, `yosemite-s0.tailnet.ts.net`, and
|
|
552
|
-
* `yosemite-s0` all agree. Every fire path (cron scheduler, webhook,
|
|
553
|
-
* catchup/overdue, manual run) gates on this.
|
|
554
|
-
*
|
|
555
|
-
* A monitor- or webhook-dispatched job ({@link JobConfig.dispatchedBy} set) skips
|
|
556
|
-
* the routine activation manifest: it is not a routine, so its name can never be
|
|
557
|
-
* a member and the lookup could only ever answer "not activated here"
|
|
558
|
-
* (RUSH-2681 for monitors; the same hole broke every `run.agent`/`run.workflow`
|
|
559
|
-
* webhook handler, which the receiver logged as `fired` while the run record read
|
|
560
|
-
* `skipped` with an empty allowlist). Ownership was already decided upstream — by
|
|
561
|
-
* the monitor's `device:` pin, or by the one box the webhook was delivered to.
|
|
562
|
-
*/
|
|
563
171
|
export declare function jobRunsOnThisDevice(config: Pick<JobConfig, 'name' | 'devices' | 'dispatchedBy'>): boolean;
|
|
564
|
-
/**
|
|
565
|
-
* The ONE device that owns a routine — the single daemon allowed to fire it.
|
|
566
|
-
*
|
|
567
|
-
* `devices` is an allowlist, and every listed device used to fire
|
|
568
|
-
* independently, so a routine pinned to two boxes ran **twice** per schedule:
|
|
569
|
-
* two full agent sessions doing identical work, burning double the quota. On
|
|
570
|
-
* this fleet seven routines were in that state, e.g. `security-sweep` running
|
|
571
|
-
* at 15:30:02 on one box and 15:30:03 on the other, both completing.
|
|
572
|
-
*
|
|
573
|
-
* Ownership is a pure function of the config — the first entry in normalized
|
|
574
|
-
* sort order — so every daemon independently reaches the same answer with no
|
|
575
|
-
* lease, no cross-device coordination, and no split brain when the fleet
|
|
576
|
-
* partitions. A multi-entry pin is a misconfiguration
|
|
577
|
-
* ({@link hasAmbiguousDevicePin}); this keeps such a routine running exactly
|
|
578
|
-
* once instead of silently dropping it, while `validateJob` refuses to create
|
|
579
|
-
* a new one and `agents doctor` surfaces the existing ones.
|
|
580
|
-
*
|
|
581
|
-
* Returns null when the routine is unrestricted (empty or omitted `devices`).
|
|
582
|
-
*/
|
|
583
172
|
export declare function routineOwnerDevice(config: Pick<JobConfig, 'devices'>): string | null;
|
|
584
|
-
/**
|
|
585
|
-
* Does this routine name more than one distinct device? Such a pin used to mean
|
|
586
|
-
* "fire on each of them"; it now means "fire only on the first", which is
|
|
587
|
-
* almost certainly not what the author intended either way — so it is reported
|
|
588
|
-
* as a misconfiguration rather than silently reinterpreted.
|
|
589
|
-
*/
|
|
590
173
|
export declare function hasAmbiguousDevicePin(config: Pick<JobConfig, 'devices'>): boolean;
|
|
591
|
-
/** One routine whose `devices` names more than one machine, with its resolved owner. */
|
|
592
174
|
interface AmbiguousDevicePin {
|
|
593
175
|
name: string;
|
|
594
176
|
devices: string[];
|
|
595
|
-
/** The device that now fires it — the rest are inert. */
|
|
596
177
|
owner: string;
|
|
597
178
|
}
|
|
598
|
-
/**
|
|
599
|
-
* Every routine carrying a multi-device pin. Surfaced by `agents doctor` and
|
|
600
|
-
* `agents routines list` so an existing misconfiguration is visible rather than
|
|
601
|
-
* silently reinterpreted: before ownership became singular each of these fired
|
|
602
|
-
* once per listed device, doubling the work and the agent spend.
|
|
603
|
-
*/
|
|
604
179
|
export declare function findAmbiguousDevicePins(cwd?: string): AmbiguousDevicePin[];
|
|
605
|
-
/**
|
|
606
|
-
* Resolve the effective host strategy for a job.
|
|
607
|
-
* Bare `host:` without an explicit strategy implies `host` (back-compat with
|
|
608
|
-
* pre-hostStrategy YAML). Otherwise default to `local`.
|
|
609
|
-
*/
|
|
610
180
|
export declare function resolveHostStrategy(config: Pick<JobConfig, 'hostStrategy' | 'host'>): HostStrategy;
|
|
611
|
-
/**
|
|
612
|
-
* Parse a CLI `--placement` value into a HostStrategy, or null when empty.
|
|
613
|
-
* Throws a human-readable Error for unknown values.
|
|
614
|
-
*/
|
|
615
181
|
export declare function parseHostStrategy(raw: string | undefined | null): HostStrategy | null;
|
|
616
|
-
/**
|
|
617
|
-
* Strategies that dispatch the job body off the firing machine. Without a
|
|
618
|
-
* `devices` pin every daemon in the fleet would fire and each would dispatch
|
|
619
|
-
* once — N× duplicate runs. Callers pin to this machine when the user did not
|
|
620
|
-
* set an explicit allowlist.
|
|
621
|
-
*/
|
|
622
182
|
export declare function placementRequiresFiringPin(strategy: HostStrategy): boolean;
|
|
623
|
-
/** Human presentation of a device-affinity mismatch for commands and runner. */
|
|
624
183
|
interface JobEligibilityResult {
|
|
625
|
-
/** Full human message, e.g. "Job 'NAME' can only run on: a, b". */
|
|
626
184
|
message: string;
|
|
627
|
-
/** One-line copy-paste suggestion, e.g. "agents routines run NAME --device a". */
|
|
628
185
|
suggestion: string;
|
|
629
|
-
/** Comma-separated allowed devices label, e.g. "a, b". */
|
|
630
186
|
allowedLabel: string;
|
|
631
|
-
/** First allowed device (normalized), useful for the suggested host. */
|
|
632
187
|
firstHost: string;
|
|
633
188
|
}
|
|
634
|
-
/**
|
|
635
|
-
* Return null when the job may run here; otherwise return a structured,
|
|
636
|
-
* human-friendly eligibility failure. Centralizes the message/suggestion
|
|
637
|
-
* construction so manual run, executeJob, and executeJobDetached stay in
|
|
638
|
-
* sync. Scheduler/webhook/overdue paths continue to use jobRunsOnThisDevice.
|
|
639
|
-
*/
|
|
640
189
|
export declare function checkJobDeviceEligibility(config: Pick<JobConfig, 'name' | 'devices' | 'dispatchedBy'>): JobEligibilityResult | null;
|
|
641
|
-
/**
|
|
642
|
-
* List all job configs, scanning project > user > system routine dirs.
|
|
643
|
-
* Higher layers shadow lower ones of the same name (first-seen wins): a project
|
|
644
|
-
* routine shadows a user routine, and a user routine shadows a system routine
|
|
645
|
-
* (`~/.agents/.system/routines/`, shipped via gh:phnx-labs/.agents-system).
|
|
646
|
-
* When a same-name project routine wins for inspection, the user-layer
|
|
647
|
-
* `devices` allowlist is overlaid only if the project routine does not declare
|
|
648
|
-
* its own allowlist, so CWD project discovery cannot hide an operational fleet
|
|
649
|
-
* pin or erase a project-authored one.
|
|
650
|
-
* Project discovery is opt-in via `cwd`; the daemon (which calls `listJobs()`
|
|
651
|
-
* with no argument) sees user + system routines.
|
|
652
|
-
*/
|
|
653
190
|
export declare function listJobs(cwd?: string): JobConfig[];
|
|
654
|
-
/**
|
|
655
|
-
* Read a single job config by name, checking project > user > system.
|
|
656
|
-
* Same-name project routines keep the user-layer `devices` allowlist only when
|
|
657
|
-
* the project routine does not declare its own allowlist, for the same reason
|
|
658
|
-
* as listJobs().
|
|
659
|
-
* Project discovery is opt-in via `cwd`; daemon callers pass no argument and
|
|
660
|
-
* resolve user + system routines.
|
|
661
|
-
*/
|
|
662
191
|
export declare function readJob(name: string, cwd?: string): JobConfig | null;
|
|
663
|
-
/**
|
|
664
|
-
* The outcome of reading one routine file: a config, or the reason it is inert.
|
|
665
|
-
* Every `problem` here means the daemon will not run the routine.
|
|
666
|
-
*/
|
|
667
192
|
type RoutineReadResult = {
|
|
668
193
|
config: JobConfig;
|
|
669
194
|
problem: null;
|
|
@@ -671,49 +196,14 @@ type RoutineReadResult = {
|
|
|
671
196
|
config: null;
|
|
672
197
|
problem: string;
|
|
673
198
|
};
|
|
674
|
-
/**
|
|
675
|
-
* Read one routine file, preserving WHY it failed.
|
|
676
|
-
*
|
|
677
|
-
* `readJobFile` collapses all four fail-closed paths to `null`, which is right
|
|
678
|
-
* for the loaders (an inert routine must not run) but leaves a broken routine
|
|
679
|
-
* invisible in every view — the one routine an operator most needs to see. Same
|
|
680
|
-
* reading, reason kept, for diagnostic surfaces like `agents inspect --routines`.
|
|
681
|
-
*/
|
|
682
199
|
export declare function readJobFileResult(filePath: string): RoutineReadResult;
|
|
683
|
-
/** Write a job config to disk, omitting fields that match defaults.
|
|
684
|
-
*
|
|
685
|
-
* Updates the one existing supported extension (.yml or .yaml) atomically.
|
|
686
|
-
* New routines are written as .yml. If both extensions exist for the same
|
|
687
|
-
* name, the write fails explicitly so we never choose or drop a sibling.
|
|
688
|
-
*/
|
|
689
200
|
export declare function writeJob(config: JobConfig): void;
|
|
690
|
-
/**
|
|
691
|
-
* Serialize a job config, preserving the on-disk formatting of an existing file.
|
|
692
|
-
*
|
|
693
|
-
* A full `yaml.stringify(config)` re-emits the whole document — restyling every
|
|
694
|
-
* scalar (unquoting `schedule`, re-wrapping the folded `prompt` block, reordering
|
|
695
|
-
* keys). When a routine is only being toggled (pause/resume) or re-pinned
|
|
696
|
-
* (`devices --set`), that rewrites the entire file, leaving the git-backed
|
|
697
|
-
* `~/.agents` tree perpetually dirty so `agents repo pull` refuses to sync across
|
|
698
|
-
* the fleet. To keep the diff to the field that actually changed, we edit the
|
|
699
|
-
* existing document in place and only re-render touched nodes; untouched nodes
|
|
700
|
-
* (notably the large `prompt` block) keep their byte-for-byte formatting.
|
|
701
|
-
*
|
|
702
|
-
* `existingText` is the current file contents, or null for a new file. New,
|
|
703
|
-
* unparseable, and non-mapping documents fall back to canonical `yaml.stringify`.
|
|
704
|
-
*/
|
|
705
201
|
export declare function serializeJob(output: Record<string, unknown>, existingText: string | null): string;
|
|
706
|
-
/** Delete a job config file by name. Returns true if the file existed. */
|
|
707
202
|
export declare function deleteJob(name: string): boolean;
|
|
708
|
-
/** Enable or disable a job by name. */
|
|
709
203
|
export declare function setJobEnabled(name: string, enabled: boolean): void;
|
|
710
|
-
/** Materialize legacy definition state into this device's activation manifest. */
|
|
711
204
|
export declare function migrateLegacyRoutineActivation(): boolean;
|
|
712
|
-
/** Validate a partial job config, returning a list of human-readable errors. */
|
|
713
205
|
export declare function validateJob(config: Partial<JobConfig>): string[];
|
|
714
|
-
/** Validate a job trigger block, returning a list of human-readable errors. */
|
|
715
206
|
export declare function validateTrigger(trigger: unknown): string[];
|
|
716
|
-
/** True when a job's endAt has already elapsed. False when endAt is unset or in the future. */
|
|
717
207
|
export declare function isPastEndAt(config: Pick<JobConfig, 'endAt'>, now?: Date): boolean;
|
|
718
208
|
interface OneShotScheduleParts {
|
|
719
209
|
minute: number;
|
|
@@ -728,10 +218,6 @@ export declare function oneShotScheduleFireDate(schedule: string | undefined | n
|
|
|
728
218
|
export declare function isPastOneShotRoutine(config: Pick<JobConfig, 'schedule' | 'runOnce' | 'timezone'>, now?: Date): boolean;
|
|
729
219
|
export declare function hasCompletedOneShotRun(config: Pick<JobConfig, 'name' | 'schedule' | 'runOnce' | 'timezone'>, now?: Date): boolean;
|
|
730
220
|
export declare function shouldPurgeCompletedOneShotRoutine(config: Pick<JobConfig, 'name' | 'schedule' | 'runOnce' | 'timezone'>, now?: Date): boolean;
|
|
731
|
-
/**
|
|
732
|
-
* Context passed to `resolveJobPrompt` when a job is fired by a webhook. Lets
|
|
733
|
-
* prompts use `{{issue.identifier}}`, `{{updatedFrom.state.name}}`, etc.
|
|
734
|
-
*/
|
|
735
221
|
export interface WebhookContext {
|
|
736
222
|
source: string;
|
|
737
223
|
event: string;
|
|
@@ -741,60 +227,15 @@ export interface WebhookContext {
|
|
|
741
227
|
pull_request?: unknown;
|
|
742
228
|
repository?: unknown;
|
|
743
229
|
}
|
|
744
|
-
/**
|
|
745
|
-
* Substitute `{{dotted.path}}` placeholders in a string using a webhook context.
|
|
746
|
-
* Missing values are replaced with an empty string.
|
|
747
|
-
*/
|
|
748
230
|
export declare function substituteWebhookPrompt(prompt: string, context: WebhookContext): string;
|
|
749
|
-
/**
|
|
750
|
-
* Substitute `{{dotted.path}}` placeholders in a string destined for a SHELL,
|
|
751
|
-
* quoting every substituted value so payload content cannot break out of it.
|
|
752
|
-
*
|
|
753
|
-
* `run.command` is executed through a shell, and its context is built from an
|
|
754
|
-
* external webhook payload — `issue.title`, `issue.description`, and the GitHub
|
|
755
|
-
* `pull_request` fields are free text any outside contributor can set. Pasting
|
|
756
|
-
* those in raw (as {@link substituteWebhookPrompt} does, correctly, for prompts)
|
|
757
|
-
* turns an operator's `echo {{issue.title}}` into a command-injection sink.
|
|
758
|
-
*
|
|
759
|
-
* The template itself is operator-authored and stays unquoted, so pipes,
|
|
760
|
-
* redirects, and `&&` in the configured command keep working. Only the
|
|
761
|
-
* interpolated values are quoted.
|
|
762
|
-
*
|
|
763
|
-
* POSIX `sh` quoting: wrap in single quotes and close/escape/reopen for any
|
|
764
|
-
* embedded single quote. `exec` uses `cmd.exe` on Windows, which does not
|
|
765
|
-
* honour these rules — see `assertShellSubstitutionSupported`.
|
|
766
|
-
*/
|
|
767
231
|
export declare function substituteWebhookCommand(command: string, context: WebhookContext): string;
|
|
768
|
-
/**
|
|
769
|
-
* Refuse a `run.command` carrying placeholders on a platform whose shell we
|
|
770
|
-
* cannot safely quote for. `child_process.exec` runs through `cmd.exe` on
|
|
771
|
-
* Windows, where POSIX single-quoting is not a quoting mechanism at all, so
|
|
772
|
-
* {@link substituteWebhookCommand} would not contain a hostile value.
|
|
773
|
-
*
|
|
774
|
-
* Fail loud rather than execute something we cannot prove is safe.
|
|
775
|
-
*/
|
|
776
232
|
export declare function assertShellSubstitutionSupported(command: string, platform?: NodeJS.Platform): void;
|
|
777
|
-
/** Expand built-in and user-defined template variables in a job's prompt string. */
|
|
778
233
|
export declare function resolveJobPrompt(config: JobConfig, context?: WebhookContext): string;
|
|
779
|
-
/** Parse a human-readable timeout string (e.g. "10m", "2h", "1h30m", "3d", "1w") into milliseconds.
|
|
780
|
-
* Accepts combinations of w (weeks), d (days), h (hours), m (minutes).
|
|
781
|
-
* Returns null if the string is empty, matches nothing, totals zero, or exceeds 1 week.
|
|
782
|
-
*/
|
|
783
234
|
export declare function parseTimeout(timeout: string): number | null;
|
|
784
|
-
/** List all run metadata entries for a job, sorted chronologically. */
|
|
785
235
|
export declare function listRuns(jobName: string): RunMeta[];
|
|
786
|
-
/** Get the most recent run for a job, or null if never run. */
|
|
787
236
|
export declare function getLatestRun(jobName: string): RunMeta | null;
|
|
788
|
-
/**
|
|
789
|
-
* Get the most recent COMPLETED run for a job, or null if none has completed.
|
|
790
|
-
* Used to resolve `{last_report}` so a failed run's error text (e.g. an auth
|
|
791
|
-
* login prompt written into report.md) can never be injected into the next
|
|
792
|
-
* run's prompt.
|
|
793
|
-
*/
|
|
794
237
|
export declare function getLatestCompletedRun(jobName: string): RunMeta | null;
|
|
795
|
-
/** Duration + outcome rollup for a job's run history. */
|
|
796
238
|
interface RoutineStats {
|
|
797
|
-
/** Total run records (any status, including `missed`). */
|
|
798
239
|
count: number;
|
|
799
240
|
failed: number;
|
|
800
241
|
missed: number;
|
|
@@ -802,126 +243,33 @@ interface RoutineStats {
|
|
|
802
243
|
p50: number;
|
|
803
244
|
p95: number;
|
|
804
245
|
}
|
|
805
|
-
/**
|
|
806
|
-
* Fold a job's run history (`listRuns`) into a duration + outcome summary.
|
|
807
|
-
* `missed` fires (no process ever ran) carry no `duration` and are excluded
|
|
808
|
-
* from the latency percentiles but still counted in `count`/`missed`.
|
|
809
|
-
*/
|
|
810
246
|
export declare function routineStats(jobName: string): RoutineStats;
|
|
811
|
-
/** Persist run metadata to its run directory as meta.json. */
|
|
812
247
|
export declare function writeRunMeta(meta: RunMeta): void;
|
|
813
|
-
/** Read run metadata from disk. Returns null if missing or corrupt. */
|
|
814
248
|
export declare function readRunMeta(jobName: string, runId: string): RunMeta | null;
|
|
815
|
-
/**
|
|
816
|
-
* Runs directory for a single job, with the (untrusted) job name contained to a
|
|
817
|
-
* single segment beneath the runs dir — same guard as `getJobHomePath`. The name
|
|
818
|
-
* comes from routine YAML and can arrive via a synced config repo; every runs-dir
|
|
819
|
-
* sink (run dir, meta read/write, last-report read) routes through here so a
|
|
820
|
-
* crafted `name` like `../../../../tmp/x` can't `mkdirSync`/write `stdout.log`,
|
|
821
|
-
* `meta.json`, or `report.md` outside `~/.agents/.history/runs`.
|
|
822
|
-
*/
|
|
823
249
|
export declare function getJobRunsDir(jobName: string): string;
|
|
824
|
-
/** Get the filesystem path for a specific run's directory. */
|
|
825
250
|
export declare function getRunDir(jobName: string, runId: string): string;
|
|
826
|
-
/**
|
|
827
|
-
* The run id a scheduled fire is recorded under — derived from its intended UTC
|
|
828
|
-
* fire time so the SAME slot always maps to the SAME run directory. This is what
|
|
829
|
-
* makes the single-fire claim meaningful: a duplicate cron delivery for one slot
|
|
830
|
-
* computes the same id and loses the atomic `mkdir` claim. Shares the derivation
|
|
831
|
-
* with `missedRunId` (catchup.ts) so a missed-then-caught-up fire and a live fire
|
|
832
|
-
* for the same UTC slot are one record.
|
|
833
|
-
*/
|
|
834
251
|
export declare function slotRunId(scheduledFor: Date | string): string;
|
|
835
|
-
/**
|
|
836
|
-
* The aligned schedule boundary a fire belongs to: the most recent occurrence of
|
|
837
|
-
* `cron` at or before `at`.
|
|
838
|
-
*
|
|
839
|
-
* This is the occurrence IDENTITY that {@link slotRunId} (forward dispatch) and
|
|
840
|
-
* `missedRunId` (catchup.ts) must both key on. croner's `currentRun()` inside a
|
|
841
|
-
* fire callback is the JITTERED wall-clock trigger instant (it carries
|
|
842
|
-
* milliseconds — verified), not the aligned boundary, so keying `slotRunId`
|
|
843
|
-
* directly on it produced a distinct id per delivery: two callbacks for one
|
|
844
|
-
* occurrence each claimed a different run dir and both launched, and a live fire
|
|
845
|
-
* never collided with its catch-up twin (which keys on the aligned
|
|
846
|
-
* `previousExpectedFire`). Flooring both to this boundary is what makes the
|
|
847
|
-
* single-fire claim a structural claim on `(routine, scheduledFor)` (SING-15).
|
|
848
|
-
*
|
|
849
|
-
* croner's `previousRun()` takes no argument and returns null on a freshly
|
|
850
|
-
* constructed instance, so we walk `nextRun(cursor)` forward from a lookback
|
|
851
|
-
* window and keep the last fire still ≤ `at` — the same derivation catchup's
|
|
852
|
-
* overdue detection has always used.
|
|
853
|
-
*/
|
|
854
252
|
export declare function alignedSlotForFire(cron: Cron, at: Date): Date | null;
|
|
855
|
-
/**
|
|
856
|
-
* Atomically CLAIM a run directory. Returns true on a successful claim, false
|
|
857
|
-
* when the directory already exists (another caller — even in a separate process
|
|
858
|
-
* — owns this (routine, slot) pair). The non-recursive `mkdir` is a single
|
|
859
|
-
* filesystem test-and-set on every POSIX filesystem, the same primitive
|
|
860
|
-
* `claimMissedFire` relies on; it holds across processes where an in-process flag
|
|
861
|
-
* or a released lock cannot.
|
|
862
|
-
*/
|
|
863
253
|
export declare function claimRunSlot(jobName: string, runId: string): boolean;
|
|
864
|
-
/** Discover routine YAML files in a repository's routines/ directory. */
|
|
865
254
|
export declare function discoverJobsFromRepo(repoPath: string): Array<{
|
|
866
255
|
name: string;
|
|
867
256
|
path: string;
|
|
868
257
|
}>;
|
|
869
|
-
/** Check whether a job with the given name exists on disk. */
|
|
870
258
|
export declare function jobExists(name: string): boolean;
|
|
871
|
-
/**
|
|
872
|
-
* True when `sourcePath` already IS the canonical user-layer file for `name`.
|
|
873
|
-
*
|
|
874
|
-
* `agents routines add <file>` copies a definition into the routines dir, but
|
|
875
|
-
* users routinely point it at the file that already lives there — the release
|
|
876
|
-
* train's own `~/.agents/routines/release-train.yml`. `writeJob` would then
|
|
877
|
-
* re-serialize that file in place and, per {@link serializeJob}, delete every
|
|
878
|
-
* key absent from the canonical output — silently dropping the legacy
|
|
879
|
-
* `devices:` pin from config tracked in the git-backed `~/.agents` repo
|
|
880
|
-
* (RUSH-2517). Callers use this to skip the write when there is nothing to
|
|
881
|
-
* copy.
|
|
882
|
-
*
|
|
883
|
-
* Compares real paths so a symlinked `~/.agents` (the normal layout) still
|
|
884
|
-
* matches, and falls back to a resolved-path compare when either side cannot be
|
|
885
|
-
* realpath'd.
|
|
886
|
-
*/
|
|
887
259
|
export declare function isCanonicalRoutineSource(sourcePath: string, name: string): boolean;
|
|
888
|
-
/** Get the filesystem path of a job's YAML config file, or null if not found. */
|
|
889
260
|
export declare function getJobPath(name: string): string | null;
|
|
890
|
-
/**
|
|
891
|
-
* Resolve a routine's YAML across EVERY layer `listJobs`/`readJob` read — user
|
|
892
|
-
* then system — not just the user dir.
|
|
893
|
-
*
|
|
894
|
-
* `getJobPath` is user-layer only because its callers write there. Read paths
|
|
895
|
-
* that ask "when did this routine come to exist" need the system layer too:
|
|
896
|
-
* a built-in shipped in the system repo has no user-layer file and no
|
|
897
|
-
* `createdAt`, so a user-layer-only lookup returns null, the overdue floor is
|
|
898
|
-
* skipped, and the routine reads as instantly overdue on first daemon start —
|
|
899
|
-
* exactly the case the floor exists to prevent.
|
|
900
|
-
*/
|
|
901
261
|
export declare function resolveJobFilePath(name: string): string | null;
|
|
902
|
-
/**
|
|
903
|
-
* Parse an "at" time string into a one-shot cron expression.
|
|
904
|
-
* Supports formats like:
|
|
905
|
-
* - "9:00" or "09:00" - today at 9:00 AM (or tomorrow if past)
|
|
906
|
-
* - "14:30" - today at 2:30 PM
|
|
907
|
-
* - "2026-02-24 09:00" - specific date and time
|
|
908
|
-
* Returns null if invalid format.
|
|
909
|
-
*/
|
|
910
262
|
export declare function parseAtTime(atTime: string): {
|
|
911
263
|
schedule: string;
|
|
912
264
|
runOnce: boolean;
|
|
913
265
|
} | null;
|
|
914
|
-
/** List all job names that have run directories. */
|
|
915
266
|
export declare function listJobsWithRuns(): string[];
|
|
916
|
-
/** Count total runs across all jobs. */
|
|
917
267
|
export declare function countAllRuns(): number;
|
|
918
|
-
/** Preview runs that would be pruned (keeping only the most recent `keep` per job). */
|
|
919
268
|
export declare function previewRunsPrune(keep: number): Array<{
|
|
920
269
|
jobName: string;
|
|
921
270
|
runId: string;
|
|
922
271
|
startedAt: string;
|
|
923
272
|
}>;
|
|
924
|
-
/** Delete old runs, keeping only the most recent `keep` per job. Returns bytes freed and run count. */
|
|
925
273
|
export declare function pruneRuns(keep: number): {
|
|
926
274
|
deleted: number;
|
|
927
275
|
bytesFreed: number;
|