@phnx-labs/agents-cli 1.22.119 → 1.22.121
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +236 -0
- package/README.md +19 -2
- package/dist/bootstrap.d.ts +0 -15
- package/dist/bootstrap.js +10 -409
- package/dist/cli/command-registry.d.ts +0 -58
- package/dist/cli/command-registry.js +2 -74
- package/dist/commands/accounts.d.ts +0 -17
- package/dist/commands/accounts.js +1 -52
- package/dist/commands/alias.d.ts +0 -12
- package/dist/commands/alias.js +0 -6
- package/dist/commands/apply.d.ts +0 -15
- package/dist/commands/apply.js +0 -63
- package/dist/commands/audit.d.ts +0 -12
- package/dist/commands/audit.js +0 -13
- package/dist/commands/auth.js +4 -12
- package/dist/commands/beta.d.ts +0 -6
- package/dist/commands/beta.js +2 -6
- package/dist/commands/browser-sessions-picker.d.ts +0 -8
- package/dist/commands/browser-sessions-picker.js +0 -26
- package/dist/commands/browser.d.ts +0 -57
- package/dist/commands/browser.js +0 -80
- package/dist/commands/budget.d.ts +0 -13
- package/dist/commands/budget.js +0 -2
- package/dist/commands/cli.d.ts +0 -12
- package/dist/commands/cli.js +0 -4
- package/dist/commands/cloud.d.ts +0 -9
- package/dist/commands/cloud.js +0 -43
- package/dist/commands/commands.d.ts +0 -9
- package/dist/commands/commands.js +0 -18
- package/dist/commands/computer-sessions-picker.d.ts +0 -11
- package/dist/commands/computer-sessions-picker.js +0 -29
- package/dist/commands/computer.d.ts +0 -62
- package/dist/commands/computer.js +3 -114
- package/dist/commands/config.d.ts +0 -14
- package/dist/commands/config.js +21 -60
- package/dist/commands/cost.d.ts +0 -11
- package/dist/commands/cost.js +1 -17
- package/dist/commands/daemon-test-harness.d.ts +0 -32
- package/dist/commands/daemon-test-harness.js +1 -36
- package/dist/commands/daemon.d.ts +0 -46
- package/dist/commands/daemon.js +8 -255
- package/dist/commands/detach-core.d.ts +0 -28
- package/dist/commands/detach-core.js +0 -30
- package/dist/commands/detach.d.ts +1 -12
- package/dist/commands/detach.js +16 -52
- package/dist/commands/device-config-test-harness.js +0 -12
- package/dist/commands/doctor.d.ts +0 -103
- package/dist/commands/doctor.js +3 -279
- package/dist/commands/events.d.ts +0 -29
- package/dist/commands/events.js +1 -55
- package/dist/commands/exec.d.ts +0 -163
- package/dist/commands/exec.js +15 -964
- package/dist/commands/factory.d.ts +0 -6
- package/dist/commands/factory.js +0 -2
- package/dist/commands/feed-watch.js +0 -20
- package/dist/commands/feed.d.ts +0 -38
- package/dist/commands/feed.js +1 -151
- package/dist/commands/feedback.d.ts +0 -5
- package/dist/commands/feedback.js +0 -5
- package/dist/commands/fleet-capture.d.ts +0 -12
- package/dist/commands/fleet-capture.js +1 -39
- package/dist/commands/focus.d.ts +6 -94
- package/dist/commands/focus.js +13 -183
- package/dist/commands/fork.d.ts +0 -21
- package/dist/commands/fork.js +0 -45
- package/dist/commands/funnel.d.ts +0 -3
- package/dist/commands/go.d.ts +2 -71
- package/dist/commands/go.js +5 -99
- package/dist/commands/harness-hooks.d.ts +0 -41
- package/dist/commands/harness-hooks.js +0 -48
- package/dist/commands/harness-wizard.d.ts +0 -137
- package/dist/commands/harness-wizard.js +0 -109
- package/dist/commands/harness.d.ts +0 -63
- package/dist/commands/harness.js +0 -103
- package/dist/commands/hooks.d.ts +0 -9
- package/dist/commands/hooks.js +0 -26
- package/dist/commands/humans.d.ts +0 -8
- package/dist/commands/humans.js +0 -8
- package/dist/commands/import.d.ts +0 -22
- package/dist/commands/import.js +0 -79
- package/dist/commands/insights.d.ts +0 -37
- package/dist/commands/insights.js +3 -115
- package/dist/commands/inspect.d.ts +0 -117
- package/dist/commands/inspect.js +2 -448
- package/dist/commands/lease.d.ts +0 -28
- package/dist/commands/lease.js +0 -43
- package/dist/commands/logs.d.ts +0 -23
- package/dist/commands/logs.js +0 -30
- package/dist/commands/mailboxes.d.ts +0 -18
- package/dist/commands/mailboxes.js +0 -29
- package/dist/commands/mcp.d.ts +0 -9
- package/dist/commands/mcp.js +0 -53
- package/dist/commands/memory.d.ts +0 -7
- package/dist/commands/memory.js +0 -7
- package/dist/commands/menubar.d.ts +0 -8
- package/dist/commands/menubar.js +0 -24
- package/dist/commands/message.d.ts +0 -23
- package/dist/commands/message.js +0 -50
- package/dist/commands/mine.d.ts +0 -22
- package/dist/commands/mine.js +0 -21
- package/dist/commands/models.d.ts +0 -8
- package/dist/commands/models.js +0 -33
- package/dist/commands/modes.d.ts +0 -10
- package/dist/commands/modes.js +0 -13
- package/dist/commands/monitors.d.ts +0 -9
- package/dist/commands/monitors.js +3 -160
- package/dist/commands/open.d.ts +0 -26
- package/dist/commands/open.js +0 -10
- package/dist/commands/output.d.ts +0 -18
- package/dist/commands/output.js +1 -34
- package/dist/commands/packages-materialize.d.ts +0 -11
- package/dist/commands/packages-materialize.js +0 -3
- package/dist/commands/packages.d.ts +0 -10
- package/dist/commands/packages.js +0 -50
- package/dist/commands/perf.d.ts +0 -41
- package/dist/commands/perf.js +0 -55
- package/dist/commands/permissions.d.ts +0 -9
- package/dist/commands/permissions.js +0 -43
- package/dist/commands/plugins.d.ts +0 -14
- package/dist/commands/plugins.js +2 -55
- package/dist/commands/profiles.d.ts +0 -25
- package/dist/commands/profiles.js +0 -27
- package/dist/commands/projects-todo.d.ts +2 -0
- package/dist/commands/projects-todo.js +132 -0
- package/dist/commands/projects.d.ts +0 -85
- package/dist/commands/projects.js +344 -291
- package/dist/commands/prune.js +0 -30
- package/dist/commands/ps-roster.d.ts +92 -0
- package/dist/commands/ps-roster.js +744 -0
- package/dist/commands/ps.d.ts +6 -0
- package/dist/commands/ps.js +98 -0
- package/dist/commands/refresh-rules.d.ts +0 -13
- package/dist/commands/refresh-rules.js +0 -14
- package/dist/commands/reminders.d.ts +0 -7
- package/dist/commands/repo.d.ts +0 -89
- package/dist/commands/repo.js +7 -205
- package/dist/commands/resource-view.d.ts +0 -33
- package/dist/commands/resource-view.js +0 -49
- package/dist/commands/resume.d.ts +1 -19
- package/dist/commands/resume.js +0 -50
- package/dist/commands/route.d.ts +0 -10
- package/dist/commands/route.js +0 -19
- package/dist/commands/routines.d.ts +0 -42
- package/dist/commands/routines.js +5 -290
- package/dist/commands/routines.test-fixture.d.ts +0 -34
- package/dist/commands/routines.test-fixture.js +4 -100
- package/dist/commands/rules.d.ts +0 -9
- package/dist/commands/rules.js +1 -6
- package/dist/commands/run-account-picker.d.ts +0 -59
- package/dist/commands/run-account-picker.js +0 -71
- package/dist/commands/run-broadcast.d.ts +0 -9
- package/dist/commands/run-broadcast.js +0 -7
- package/dist/commands/run-cloud.d.ts +0 -15
- package/dist/commands/run-cloud.js +0 -37
- package/dist/commands/run-device-picker.d.ts +0 -25
- package/dist/commands/run-device-picker.js +1 -53
- package/dist/commands/secrets-passthrough.d.ts +0 -31
- package/dist/commands/secrets-passthrough.js +0 -10
- package/dist/commands/send.d.ts +0 -20
- package/dist/commands/send.js +14 -18
- package/dist/commands/sessions-backfill.d.ts +0 -7
- package/dist/commands/sessions-backfill.js +1 -16
- package/dist/commands/sessions-backup-setup.js +0 -11
- package/dist/commands/sessions-bookmark.d.ts +0 -8
- package/dist/commands/sessions-bookmark.js +0 -28
- package/dist/commands/sessions-browser.d.ts +2 -117
- package/dist/commands/sessions-browser.js +5 -243
- package/dist/commands/sessions-export.d.ts +1 -26
- package/dist/commands/sessions-export.js +3 -81
- package/dist/commands/sessions-import.d.ts +0 -14
- package/dist/commands/sessions-import.js +0 -59
- package/dist/commands/sessions-inject.d.ts +0 -60
- package/dist/commands/sessions-inject.js +3 -96
- package/dist/commands/sessions-migrate.d.ts +2 -37
- package/dist/commands/sessions-migrate.js +7 -159
- package/dist/commands/sessions-optimize.d.ts +0 -12
- package/dist/commands/sessions-picker-factory.d.ts +0 -7
- package/dist/commands/sessions-picker-factory.js +0 -8
- package/dist/commands/sessions-picker.d.ts +4 -103
- package/dist/commands/sessions-picker.js +13 -352
- package/dist/commands/sessions-render.d.ts +1 -2
- package/dist/commands/sessions-render.js +3 -7
- package/dist/commands/sessions-resume.d.ts +1 -24
- package/dist/commands/sessions-resume.js +2 -65
- package/dist/commands/sessions-share.d.ts +1 -9
- package/dist/commands/sessions-share.js +1 -45
- package/dist/commands/sessions-stats.d.ts +0 -24
- package/dist/commands/sessions-stats.js +0 -49
- package/dist/commands/sessions-stop.d.ts +1 -20
- package/dist/commands/sessions-stop.js +4 -9
- package/dist/commands/sessions-tail.d.ts +1 -19
- package/dist/commands/sessions-tail.js +3 -36
- package/dist/commands/sessions-trace.d.ts +5 -36
- package/dist/commands/sessions-trace.js +7 -82
- package/dist/commands/sessions.d.ts +1 -666
- package/dist/commands/sessions.js +30 -2279
- package/dist/commands/sessions.test-fixture.d.ts +0 -9
- package/dist/commands/sessions.test-fixture.js +8 -23
- package/dist/commands/setup-accounts.d.ts +0 -6
- package/dist/commands/setup-browser.d.ts +0 -23
- package/dist/commands/setup-browser.js +0 -28
- package/dist/commands/setup-computer.d.ts +0 -16
- package/dist/commands/setup-computer.js +0 -28
- package/dist/commands/setup-fleet.d.ts +0 -8
- package/dist/commands/setup-fleet.js +0 -11
- package/dist/commands/setup-mine.d.ts +0 -14
- package/dist/commands/setup-mine.js +0 -25
- package/dist/commands/setup-preferences.d.ts +0 -47
- package/dist/commands/setup-preferences.js +0 -53
- package/dist/commands/setup-secrets.d.ts +2 -24
- package/dist/commands/setup-secrets.js +0 -24
- package/dist/commands/setup-term.d.ts +0 -21
- package/dist/commands/setup-term.js +0 -21
- package/dist/commands/setup-terminal.d.ts +0 -1
- package/dist/commands/setup-terminal.js +0 -1
- package/dist/commands/setup-tools.d.ts +2 -0
- package/dist/commands/setup-tools.js +73 -0
- package/dist/commands/setup.d.ts +0 -20
- package/dist/commands/setup.js +4 -57
- package/dist/commands/skills.d.ts +0 -9
- package/dist/commands/skills.js +1 -22
- package/dist/commands/snapshot.d.ts +0 -9
- package/dist/commands/snapshot.js +0 -10
- package/dist/commands/ssh.d.ts +0 -64
- package/dist/commands/ssh.js +9 -420
- package/dist/commands/status.d.ts +0 -12
- package/dist/commands/status.js +0 -26
- package/dist/commands/subagents.d.ts +0 -8
- package/dist/commands/subagents.js +0 -31
- package/dist/commands/sync.d.ts +0 -37
- package/dist/commands/sync.js +0 -256
- package/dist/commands/teams-picker.d.ts +0 -3
- package/dist/commands/teams-picker.js +0 -34
- package/dist/commands/teams.d.ts +1 -76
- package/dist/commands/teams.js +9 -477
- package/dist/commands/tmux.d.ts +0 -25
- package/dist/commands/tmux.js +0 -46
- package/dist/commands/traces.js +0 -19
- package/dist/commands/trash.d.ts +0 -17
- package/dist/commands/trash.js +1 -11
- package/dist/commands/uninstall.d.ts +0 -9
- package/dist/commands/uninstall.js +0 -6
- package/dist/commands/update.d.ts +0 -22
- package/dist/commands/update.js +0 -44
- package/dist/commands/upgrade.d.ts +0 -1
- package/dist/commands/upgrade.js +0 -1
- package/dist/commands/utils.d.ts +0 -85
- package/dist/commands/utils.js +1 -95
- package/dist/commands/versions.d.ts +0 -16
- package/dist/commands/versions.js +0 -134
- package/dist/commands/view.d.ts +0 -90
- package/dist/commands/view.js +4 -343
- package/dist/commands/watchdog.d.ts +0 -19
- package/dist/commands/watchdog.js +3 -43
- package/dist/commands/webhook.d.ts +0 -8
- package/dist/commands/webhook.js +0 -14
- package/dist/commands/workflows.d.ts +0 -8
- package/dist/commands/workflows.js +0 -6
- package/dist/index.d.ts +0 -25
- package/dist/index.js +5 -119
- package/dist/lib/account-capabilities.d.ts +0 -34
- package/dist/lib/account-capabilities.js +0 -32
- package/dist/lib/account-catalog.d.ts +0 -128
- package/dist/lib/account-catalog.js +8 -154
- package/dist/lib/account-provider-registry.d.ts +0 -14
- package/dist/lib/account-provider-registry.js +0 -8
- package/dist/lib/account-registry.d.ts +0 -74
- package/dist/lib/account-registry.js +14 -189
- package/dist/lib/account-schema.d.ts +0 -19
- package/dist/lib/account-schema.js +0 -43
- package/dist/lib/accounting/account-launch.d.ts +0 -15
- package/dist/lib/accounting/account-launch.js +1 -3
- package/dist/lib/accounting/account-pool-collect.d.ts +0 -26
- package/dist/lib/accounting/account-pool-collect.js +0 -42
- package/dist/lib/accounting/account-pool.d.ts +0 -41
- package/dist/lib/accounting/account-pool.js +0 -17
- package/dist/lib/accounting/capacity.d.ts +0 -32
- package/dist/lib/accounting/capacity.js +0 -32
- package/dist/lib/accounting/rotate.d.ts +0 -518
- package/dist/lib/accounting/rotate.js +4 -598
- package/dist/lib/accounting/usage-ingest.d.ts +0 -1
- package/dist/lib/accounting/usage-ingest.js +0 -44
- package/dist/lib/accounting/usage-sync.d.ts +0 -60
- package/dist/lib/accounting/usage-sync.js +4 -51
- package/dist/lib/accounting/usage.d.ts +0 -632
- package/dist/lib/accounting/usage.js +14 -1055
- package/dist/lib/accounts/add.d.ts +0 -60
- package/dist/lib/accounts/add.js +0 -127
- package/dist/lib/accounts/auth-operation-lock.d.ts +0 -1
- package/dist/lib/accounts/auth-operation-lock.js +0 -4
- package/dist/lib/accounts/migrate.d.ts +0 -9
- package/dist/lib/accounts/migrate.js +3 -42
- package/dist/lib/accounts/slots.d.ts +0 -25
- package/dist/lib/accounts/slots.js +1 -49
- package/dist/lib/acp/client.d.ts +0 -16
- package/dist/lib/acp/client.js +0 -29
- package/dist/lib/acp/harnesses.d.ts +0 -15
- package/dist/lib/acp/harnesses.js +0 -16
- package/dist/lib/acp/run.d.ts +0 -8
- package/dist/lib/acp/run.js +0 -8
- package/dist/lib/actor.d.ts +1 -71
- package/dist/lib/actor.js +1 -99
- package/dist/lib/add-dir.d.ts +0 -46
- package/dist/lib/add-dir.js +1 -70
- package/dist/lib/address.d.ts +0 -17
- package/dist/lib/address.js +0 -15
- package/dist/lib/agent-cli-commands.d.ts +0 -10
- package/dist/lib/agent-cli-commands.js +0 -10
- package/dist/lib/agent-modes.d.ts +0 -29
- package/dist/lib/agent-modes.js +0 -31
- package/dist/lib/agent-spec/agents.d.ts +0 -426
- package/dist/lib/agent-spec/agents.js +37 -924
- package/dist/lib/agent-spec/index.d.ts +0 -5
- package/dist/lib/agent-spec/index.js +0 -14
- package/dist/lib/agent-spec/materialize.d.ts +0 -10
- package/dist/lib/agent-spec/materialize.js +2 -139
- package/dist/lib/agent-spec/package-resolve.d.ts +0 -8
- package/dist/lib/agent-spec/package-resolve.js +1 -44
- package/dist/lib/agent-spec/package-schema.d.ts +0 -2
- package/dist/lib/agent-spec/package-schema.js +0 -11
- package/dist/lib/agent-spec/package-types.d.ts +0 -27
- package/dist/lib/agent-spec/package-types.js +0 -1
- package/dist/lib/agent-spec/primitives.d.ts +0 -18
- package/dist/lib/agent-spec/primitives.js +0 -27
- package/dist/lib/agent-spec/provider.js +0 -2
- package/dist/lib/agent-spec/resolve.d.ts +0 -23
- package/dist/lib/agent-spec/resolve.js +0 -41
- package/dist/lib/agent-spec/types.d.ts +0 -34
- package/dist/lib/agent-spec/types.js +0 -6
- package/dist/lib/agents.d.ts +0 -1
- package/dist/lib/agents.js +0 -1
- package/dist/lib/analytics/mix-commands.d.ts +0 -23
- package/dist/lib/analytics/mix-commands.js +0 -26
- package/dist/lib/analytics/recipes.d.ts +0 -1
- package/dist/lib/analytics/recipes.js +5 -10
- package/dist/lib/analytics/usage-db.js +4 -6
- package/dist/lib/answer-router.d.ts +0 -61
- package/dist/lib/answer-router.js +0 -57
- package/dist/lib/app-bundle-install.d.ts +0 -13
- package/dist/lib/app-bundle-install.js +0 -50
- package/dist/lib/artifact-actions.d.ts +0 -15
- package/dist/lib/artifact-actions.js +0 -18
- package/dist/lib/artifacts-client.d.ts +0 -10
- package/dist/lib/artifacts-client.js +0 -17
- package/dist/lib/ask-classifier.d.ts +0 -38
- package/dist/lib/ask-classifier.js +0 -27
- package/dist/lib/audit/log.d.ts +0 -47
- package/dist/lib/audit/log.js +1 -59
- package/dist/lib/auth-health.d.ts +0 -213
- package/dist/lib/auth-health.js +16 -266
- package/dist/lib/auth-mint.d.ts +0 -83
- package/dist/lib/auth-mint.js +8 -85
- package/dist/lib/auto-pull-worker.d.ts +0 -10
- package/dist/lib/auto-pull-worker.js +3 -48
- package/dist/lib/auto-pull.d.ts +0 -64
- package/dist/lib/auto-pull.js +0 -79
- package/dist/lib/beta.d.ts +0 -9
- package/dist/lib/beta.js +0 -9
- package/dist/lib/binary-shadow.d.ts +0 -22
- package/dist/lib/binary-shadow.js +4 -34
- package/dist/lib/boot-profile.d.ts +0 -10
- package/dist/lib/boot-profile.js +1 -31
- package/dist/lib/brand.d.ts +0 -20
- package/dist/lib/brand.js +0 -50
- package/dist/lib/browser/context.d.ts +0 -54
- package/dist/lib/browser/context.js +0 -49
- package/dist/lib/browser/paths.d.ts +0 -21
- package/dist/lib/browser/paths.js +0 -26
- package/dist/lib/browser/record.d.ts +0 -34
- package/dist/lib/browser/record.js +0 -38
- package/dist/lib/browser/sessions-list.d.ts +1 -79
- package/dist/lib/browser/sessions-list.js +2 -98
- package/dist/lib/browser-client.d.ts +0 -112
- package/dist/lib/browser-client.js +1 -90
- package/dist/lib/budget/config.d.ts +0 -6
- package/dist/lib/budget/config.js +0 -29
- package/dist/lib/budget/enforce.d.ts +0 -50
- package/dist/lib/budget/enforce.js +0 -27
- package/dist/lib/budget/ledger.d.ts +0 -23
- package/dist/lib/budget/ledger.js +0 -28
- package/dist/lib/budget/live-cloud.d.ts +0 -26
- package/dist/lib/budget/live-cloud.js +0 -12
- package/dist/lib/budget/live-team.d.ts +0 -17
- package/dist/lib/budget/live-team.js +1 -35
- package/dist/lib/budget/preflight.d.ts +0 -51
- package/dist/lib/budget/preflight.js +0 -36
- package/dist/lib/byok-usage.d.ts +0 -20
- package/dist/lib/byok-usage.js +1 -24
- package/dist/lib/capabilities.d.ts +0 -24
- package/dist/lib/capabilities.js +0 -29
- package/dist/lib/catchup.d.ts +0 -87
- package/dist/lib/catchup.js +1 -81
- package/dist/lib/channels/owner-forward.d.ts +0 -70
- package/dist/lib/channels/owner-forward.js +1 -43
- package/dist/lib/channels/owner-sink.js +0 -21
- package/dist/lib/channels/providers/desktop.d.ts +0 -37
- package/dist/lib/channels/providers/desktop.js +0 -72
- package/dist/lib/channels/providers/index.d.ts +0 -1
- package/dist/lib/channels/providers/index.js +2 -6
- package/dist/lib/channels/providers/mailbox.js +0 -7
- package/dist/lib/channels/providers/openclaw-telegram.js +0 -8
- package/dist/lib/channels/providers/rush.d.ts +0 -2
- package/dist/lib/channels/providers/rush.js +0 -26
- package/dist/lib/channels/providers/session.d.ts +2 -0
- package/dist/lib/channels/providers/session.js +26 -0
- package/dist/lib/channels/registry.d.ts +0 -27
- package/dist/lib/channels/registry.js +0 -10
- package/dist/lib/channels/resolve.d.ts +0 -19
- package/dist/lib/channels/resolve.js +0 -2
- package/dist/lib/channels/send.d.ts +0 -50
- package/dist/lib/channels/send.js +0 -25
- package/dist/lib/checkpoint.d.ts +0 -36
- package/dist/lib/checkpoint.js +0 -28
- package/dist/lib/claude-account-token.d.ts +0 -98
- package/dist/lib/claude-account-token.js +7 -169
- package/dist/lib/claude-statusline.d.ts +0 -41
- package/dist/lib/claude-statusline.js +0 -68
- package/dist/lib/cli-entry.d.ts +0 -26
- package/dist/lib/cli-entry.js +1 -61
- package/dist/lib/cli-resources.d.ts +31 -89
- package/dist/lib/cli-resources.js +116 -152
- package/dist/lib/cloud/antigravity.d.ts +0 -29
- package/dist/lib/cloud/antigravity.js +0 -36
- package/dist/lib/cloud/codex.d.ts +0 -8
- package/dist/lib/cloud/codex.js +0 -41
- package/dist/lib/cloud/cursor.d.ts +0 -5
- package/dist/lib/cloud/cursor.js +2 -7
- package/dist/lib/cloud/dispatch.d.ts +0 -13
- package/dist/lib/cloud/dispatch.js +1 -48
- package/dist/lib/cloud/factory.d.ts +0 -52
- package/dist/lib/cloud/factory.js +3 -67
- package/dist/lib/cloud/host.d.ts +0 -39
- package/dist/lib/cloud/host.js +5 -48
- package/dist/lib/cloud/registry.d.ts +0 -25
- package/dist/lib/cloud/registry.js +0 -29
- package/dist/lib/cloud/rush.d.ts +0 -47
- package/dist/lib/cloud/rush.js +1 -82
- package/dist/lib/cloud/session-index.d.ts +0 -27
- package/dist/lib/cloud/session-index.js +1 -32
- package/dist/lib/cloud/store.d.ts +0 -18
- package/dist/lib/cloud/store.js +0 -28
- package/dist/lib/cloud/stream.d.ts +0 -14
- package/dist/lib/cloud/stream.js +0 -25
- package/dist/lib/cloud/types.d.ts +0 -168
- package/dist/lib/cloud/types.js +0 -46
- package/dist/lib/cloudflare/creds.d.ts +0 -2
- package/dist/lib/cloudflare/creds.js +0 -14
- package/dist/lib/cloudflare/provision.d.ts +0 -8
- package/dist/lib/cloudflare/provision.js +1 -19
- package/dist/lib/codex-home.d.ts +0 -60
- package/dist/lib/codex-home.js +2 -72
- package/dist/lib/codex-policy.d.ts +0 -10
- package/dist/lib/codex-policy.js +0 -13
- package/dist/lib/command-skills.d.ts +0 -10
- package/dist/lib/command-skills.js +0 -10
- package/dist/lib/commands.d.ts +0 -74
- package/dist/lib/commands.js +0 -112
- package/dist/lib/comms-render.d.ts +0 -5
- package/dist/lib/comms-render.js +0 -5
- package/dist/lib/computer/context.d.ts +0 -23
- package/dist/lib/computer/context.js +0 -14
- package/dist/lib/computer/policy.d.ts +0 -20
- package/dist/lib/computer/policy.js +0 -53
- package/dist/lib/computer/record.d.ts +0 -33
- package/dist/lib/computer/record.js +1 -48
- package/dist/lib/computer/sessions-list.d.ts +1 -128
- package/dist/lib/computer/sessions-list.js +6 -165
- package/dist/lib/computer-client.d.ts +0 -106
- package/dist/lib/computer-client.js +5 -86
- package/dist/lib/concurrency.d.ts +0 -14
- package/dist/lib/concurrency.js +0 -3
- package/dist/lib/config-drift.d.ts +0 -31
- package/dist/lib/config-drift.js +0 -32
- package/dist/lib/config-keys.d.ts +1 -65
- package/dist/lib/config-keys.js +6 -52
- package/dist/lib/config-transfer.d.ts +0 -14
- package/dist/lib/config-transfer.js +0 -26
- package/dist/lib/convert.d.ts +0 -17
- package/dist/lib/convert.js +0 -18
- package/dist/lib/crabbox/cli.d.ts +0 -156
- package/dist/lib/crabbox/cli.js +1 -188
- package/dist/lib/crabbox/config.d.ts +0 -18
- package/dist/lib/crabbox/config.js +1 -19
- package/dist/lib/crabbox/lease.d.ts +0 -93
- package/dist/lib/crabbox/lease.js +4 -148
- package/dist/lib/crabbox/progress.d.ts +0 -56
- package/dist/lib/crabbox/progress.js +2 -49
- package/dist/lib/crabbox/runtimes.d.ts +0 -94
- package/dist/lib/crabbox/runtimes.js +1 -111
- package/dist/lib/crabbox/setup-copy.d.ts +0 -64
- package/dist/lib/crabbox/setup-copy.js +1 -53
- package/dist/lib/daemon/account-state-daemon-service.d.ts +0 -48
- package/dist/lib/daemon/account-state-daemon-service.js +2 -63
- package/dist/lib/daemon/attention-notify-service.d.ts +0 -12
- package/dist/lib/daemon/attention-notify-service.js +1 -24
- package/dist/lib/daemon/auth-sync-service.d.ts +0 -28
- package/dist/lib/daemon/auth-sync-service.js +0 -56
- package/dist/lib/daemon/catchup-service.d.ts +0 -34
- package/dist/lib/daemon/catchup-service.js +0 -30
- package/dist/lib/daemon/daemon.d.ts +0 -374
- package/dist/lib/daemon/daemon.js +44 -1049
- package/dist/lib/daemon/daemon.test-fixture.d.ts +0 -19
- package/dist/lib/daemon/daemon.test-fixture.js +1 -24
- package/dist/lib/daemon/device-probe-service.d.ts +0 -16
- package/dist/lib/daemon/device-probe-service.js +0 -20
- package/dist/lib/daemon/feed-stream-service.d.ts +0 -15
- package/dist/lib/daemon/feed-stream-service.js +0 -20
- package/dist/lib/daemon/harness-update-service.d.ts +2 -61
- package/dist/lib/daemon/harness-update-service.js +6 -86
- package/dist/lib/daemon/heartbeat-service.d.ts +0 -1
- package/dist/lib/daemon/heartbeat-service.js +0 -1
- package/dist/lib/daemon/leaked-daemons.d.ts +0 -46
- package/dist/lib/daemon/leaked-daemons.js +2 -78
- package/dist/lib/daemon/monitor-engine-service.d.ts +0 -13
- package/dist/lib/daemon/monitor-engine-service.js +3 -15
- package/dist/lib/daemon/runner.d.ts +0 -194
- package/dist/lib/daemon/runner.js +39 -760
- package/dist/lib/daemon/self-heal-service.d.ts +18 -17
- package/dist/lib/daemon/self-heal-service.js +83 -37
- package/dist/lib/daemon/self-update-service.d.ts +1 -131
- package/dist/lib/daemon/self-update-service.js +26 -189
- package/dist/lib/daemon/service.d.ts +0 -73
- package/dist/lib/daemon/service.js +0 -34
- package/dist/lib/daemon/session-index-service.d.ts +0 -12
- package/dist/lib/daemon/session-index-service.js +0 -23
- package/dist/lib/daemon/session-state-service.d.ts +0 -8
- package/dist/lib/daemon/session-state-service.js +0 -8
- package/dist/lib/daemon/session-summarizer-service.d.ts +0 -14
- package/dist/lib/daemon/session-summarizer-service.js +1 -19
- package/dist/lib/daemon/session-title-service.d.ts +0 -25
- package/dist/lib/daemon/session-title-service.js +0 -32
- package/dist/lib/daemon/state-dir-check-service.d.ts +0 -24
- package/dist/lib/daemon/state-dir-check-service.js +0 -29
- package/dist/lib/daemon/supervisor.d.ts +0 -112
- package/dist/lib/daemon/supervisor.js +4 -147
- package/dist/lib/daemon/testdata/process-view-daemon.js +0 -2
- package/dist/lib/daemon/testdata/process-view-start.js +0 -5
- package/dist/lib/daemon/tmux-reap-service.d.ts +0 -1
- package/dist/lib/daemon/tmux-reap-service.js +0 -1
- package/dist/lib/daemon/usage-sync-service.d.ts +0 -23
- package/dist/lib/daemon/usage-sync-service.js +0 -26
- package/dist/lib/daemon/watchdog-service.d.ts +0 -9
- package/dist/lib/daemon/watchdog-service.js +0 -13
- package/dist/lib/daemon/webhook-receiver-service.d.ts +0 -1
- package/dist/lib/daemon/webhook-receiver-service.js +0 -1
- package/dist/lib/daemon-health.d.ts +0 -55
- package/dist/lib/daemon-health.js +4 -77
- package/dist/lib/daemon-services.d.ts +0 -36
- package/dist/lib/daemon-services.js +0 -45
- package/dist/lib/daemon-ticks.d.ts +0 -126
- package/dist/lib/daemon-ticks.js +1 -156
- package/dist/lib/daemon-webhooks.d.ts +0 -57
- package/dist/lib/daemon-webhooks.js +2 -54
- package/dist/lib/deeplink/register.d.ts +0 -15
- package/dist/lib/deeplink/register.js +0 -60
- package/dist/lib/deeplink/url.d.ts +0 -24
- package/dist/lib/deeplink/url.js +1 -33
- package/dist/lib/device-config.d.ts +1 -192
- package/dist/lib/device-config.js +86 -240
- package/dist/lib/devices/config-migration.d.ts +0 -43
- package/dist/lib/devices/config-migration.js +7 -127
- package/dist/lib/devices/connect.d.ts +0 -168
- package/dist/lib/devices/connect.js +6 -254
- package/dist/lib/devices/device-docs.d.ts +0 -24
- package/dist/lib/devices/device-docs.js +0 -46
- package/dist/lib/devices/discovery-policy.d.ts +0 -30
- package/dist/lib/devices/discovery-policy.js +3 -34
- package/dist/lib/devices/doctor-findings.d.ts +0 -109
- package/dist/lib/devices/doctor-findings.js +30 -326
- package/dist/lib/devices/doctor-overview-cache.d.ts +0 -33
- package/dist/lib/devices/doctor-overview-cache.js +0 -81
- package/dist/lib/devices/fleet-divergence.d.ts +0 -89
- package/dist/lib/devices/fleet-divergence.js +1 -60
- package/dist/lib/devices/fleet-inventory.d.ts +0 -27
- package/dist/lib/devices/fleet-inventory.js +0 -38
- package/dist/lib/devices/fleet.d.ts +0 -95
- package/dist/lib/devices/fleet.js +0 -79
- package/dist/lib/devices/harness-inventory.d.ts +0 -75
- package/dist/lib/devices/harness-inventory.js +0 -101
- package/dist/lib/devices/health-report.d.ts +0 -37
- package/dist/lib/devices/health-report.js +0 -73
- package/dist/lib/devices/health.d.ts +0 -71
- package/dist/lib/devices/health.js +2 -82
- package/dist/lib/devices/interactive-host.d.ts +0 -10
- package/dist/lib/devices/interactive-host.js +0 -34
- package/dist/lib/devices/known-hosts.d.ts +0 -45
- package/dist/lib/devices/known-hosts.js +0 -77
- package/dist/lib/devices/pending.d.ts +0 -31
- package/dist/lib/devices/pending.js +7 -67
- package/dist/lib/devices/pool.d.ts +0 -36
- package/dist/lib/devices/pool.js +0 -30
- package/dist/lib/devices/reachability.d.ts +0 -25
- package/dist/lib/devices/reachability.js +0 -14
- package/dist/lib/devices/registry.d.ts +0 -141
- package/dist/lib/devices/registry.js +4 -151
- package/dist/lib/devices/resolve-profile.d.ts +0 -18
- package/dist/lib/devices/resolve-profile.js +0 -18
- package/dist/lib/devices/resolve-target.d.ts +0 -20
- package/dist/lib/devices/resolve-target.js +1 -51
- package/dist/lib/devices/rollout-verify.d.ts +1 -81
- package/dist/lib/devices/rollout-verify.js +0 -77
- package/dist/lib/devices/self-host.d.ts +0 -7
- package/dist/lib/devices/self-host.js +1 -29
- package/dist/lib/devices/ssh-config.d.ts +0 -18
- package/dist/lib/devices/ssh-config.js +0 -9
- package/dist/lib/devices/stats-cache.d.ts +0 -48
- package/dist/lib/devices/stats-cache.js +0 -80
- package/dist/lib/devices/sync.d.ts +0 -97
- package/dist/lib/devices/sync.js +0 -88
- package/dist/lib/devices/tailscale.d.ts +0 -18
- package/dist/lib/devices/tailscale.js +1 -38
- package/dist/lib/devices/terminfo.d.ts +0 -27
- package/dist/lib/devices/terminfo.js +2 -64
- package/dist/lib/devices/worker-pick.d.ts +0 -15
- package/dist/lib/devices/worker-pick.js +0 -48
- package/dist/lib/diff-text.d.ts +0 -18
- package/dist/lib/diff-text.js +0 -15
- package/dist/lib/doctor-diff.d.ts +0 -79
- package/dist/lib/doctor-diff.js +2 -181
- package/dist/lib/drift-sync.d.ts +0 -29
- package/dist/lib/drift-sync.js +0 -40
- package/dist/lib/drift.d.ts +0 -43
- package/dist/lib/drift.js +0 -31
- package/dist/lib/event-families.d.ts +0 -17
- package/dist/lib/event-families.js +0 -33
- package/dist/lib/event-provenance.d.ts +0 -4
- package/dist/lib/event-provenance.js +0 -5
- package/dist/lib/event-stream.d.ts +0 -29
- package/dist/lib/event-stream.js +0 -36
- package/dist/lib/events-ingest.d.ts +0 -27
- package/dist/lib/events-ingest.js +0 -54
- package/dist/lib/exec-account-home.d.ts +0 -24
- package/dist/lib/exec-account-home.js +0 -41
- package/dist/lib/exec-bounded.d.ts +1 -37
- package/dist/lib/exec-bounded.js +10 -46
- package/dist/lib/exec.d.ts +3 -583
- package/dist/lib/exec.js +18 -1025
- package/dist/lib/factory/snapshot.js +1 -15
- package/dist/lib/feed/activity-stream.d.ts +0 -27
- package/dist/lib/feed/activity-stream.js +4 -80
- package/dist/lib/feed/activity.d.ts +1 -243
- package/dist/lib/feed/activity.js +8 -273
- package/dist/lib/feed/answer.d.ts +0 -103
- package/dist/lib/feed/answer.js +0 -267
- package/dist/lib/feed/attention.d.ts +0 -56
- package/dist/lib/feed/attention.js +0 -161
- package/dist/lib/feed/envelope.d.ts +2 -17
- package/dist/lib/feed/envelope.js +0 -14
- package/dist/lib/feed/events.d.ts +0 -118
- package/dist/lib/feed/events.js +13 -213
- package/dist/lib/feed/feed.d.ts +1 -250
- package/dist/lib/feed/feed.js +24 -334
- package/dist/lib/feed/hub-server.d.ts +0 -100
- package/dist/lib/feed/hub-server.js +1 -191
- package/dist/lib/feed/hub.d.ts +0 -53
- package/dist/lib/feed/hub.js +0 -89
- package/dist/lib/feed/pr-status.d.ts +1 -19
- package/dist/lib/feed/pr-status.js +0 -18
- package/dist/lib/feed/tool-activity.d.ts +0 -59
- package/dist/lib/feed/tool-activity.js +1 -119
- package/dist/lib/feed/tools.d.ts +0 -100
- package/dist/lib/feed/tools.js +0 -89
- package/dist/lib/feed/watch.d.ts +0 -33
- package/dist/lib/feed/watch.js +2 -94
- package/dist/lib/feed-broadcast.d.ts +0 -148
- package/dist/lib/feed-broadcast.js +1 -283
- package/dist/lib/feed-outcome.d.ts +0 -50
- package/dist/lib/feed-outcome.js +1 -67
- package/dist/lib/feed-policy.d.ts +0 -6
- package/dist/lib/feed-policy.js +1 -27
- package/dist/lib/feed-post.d.ts +0 -61
- package/dist/lib/feed-post.js +4 -61
- package/dist/lib/feed-ranking.d.ts +1 -1
- package/dist/lib/fleet/apply.d.ts +0 -64
- package/dist/lib/fleet/apply.js +0 -125
- package/dist/lib/fleet/auth-sync.d.ts +0 -48
- package/dist/lib/fleet/auth-sync.js +4 -49
- package/dist/lib/fleet/capture.d.ts +0 -26
- package/dist/lib/fleet/capture.js +1 -36
- package/dist/lib/fleet/manifest.d.ts +0 -38
- package/dist/lib/fleet/manifest.js +0 -40
- package/dist/lib/fleet/types.d.ts +1 -138
- package/dist/lib/fleet/types.js +0 -12
- package/dist/lib/fleet-cache.d.ts +0 -12
- package/dist/lib/fleet-cache.js +0 -24
- package/dist/lib/fleet-shared-state.d.ts +6 -59
- package/dist/lib/fleet-shared-state.js +5 -51
- package/dist/lib/fleet-status.d.ts +0 -27
- package/dist/lib/fleet-status.js +0 -48
- package/dist/lib/format.d.ts +0 -74
- package/dist/lib/format.js +3 -77
- package/dist/lib/friction-heuristics.d.ts +0 -20
- package/dist/lib/friction-heuristics.js +0 -8
- package/dist/lib/fs-atomic.d.ts +0 -51
- package/dist/lib/fs-atomic.js +8 -66
- package/dist/lib/fs-walk.d.ts +0 -13
- package/dist/lib/fs-walk.js +0 -22
- package/dist/lib/fuzzy.d.ts +0 -29
- package/dist/lib/fuzzy.js +0 -31
- package/dist/lib/gemini-settings.js +0 -12
- package/dist/lib/git.d.ts +0 -366
- package/dist/lib/git.js +7 -574
- package/dist/lib/github/ci-failure.d.ts +30 -0
- package/dist/lib/github/ci-failure.js +95 -0
- package/dist/lib/github/gh-overload.d.ts +0 -38
- package/dist/lib/github/gh-overload.js +3 -55
- package/dist/lib/github/pr-mergeable.d.ts +3 -34
- package/dist/lib/github/pr-mergeable.js +2 -42
- package/dist/lib/github/pr-verdict.d.ts +0 -44
- package/dist/lib/github/pr-verdict.js +0 -36
- package/dist/lib/github/project-prs.d.ts +135 -105
- package/dist/lib/github/project-prs.js +530 -170
- package/dist/lib/github/release-drift.d.ts +45 -0
- package/dist/lib/github/release-drift.js +91 -0
- package/dist/lib/github/rest.d.ts +0 -50
- package/dist/lib/github/rest.js +0 -49
- package/dist/lib/github/viewer.d.ts +27 -0
- package/dist/lib/github/viewer.js +101 -0
- package/dist/lib/goose-commands.d.ts +0 -29
- package/dist/lib/goose-commands.js +3 -48
- package/dist/lib/harness/adapter.d.ts +0 -151
- package/dist/lib/harness/adapter.js +0 -41
- package/dist/lib/harness/adapters/claude.d.ts +0 -8
- package/dist/lib/harness/adapters/claude.js +0 -89
- package/dist/lib/harness/adapters/codex.js +0 -18
- package/dist/lib/harness/adapters/copilot.js +0 -3
- package/dist/lib/harness/adapters/cursor.js +0 -16
- package/dist/lib/harness/adapters/droid.js +0 -3
- package/dist/lib/harness/adapters/kimi.js +0 -19
- package/dist/lib/harness/adapters/muse.js +0 -9
- package/dist/lib/harness/adapters/opencode.js +0 -2
- package/dist/lib/harness/exec-config-version.d.ts +0 -2
- package/dist/lib/harness/exec-config-version.js +0 -13
- package/dist/lib/harness/index.js +0 -10
- package/dist/lib/harness-auth-capabilities.d.ts +0 -26
- package/dist/lib/harness-auth-capabilities.js +0 -18
- package/dist/lib/harness-connection-test.d.ts +0 -27
- package/dist/lib/harness-connection-test.js +2 -20
- package/dist/lib/heal.d.ts +0 -45
- package/dist/lib/heal.js +2 -82
- package/dist/lib/help.d.ts +0 -32
- package/dist/lib/help.js +0 -41
- package/dist/lib/helper-download.d.ts +0 -85
- package/dist/lib/helper-download.js +0 -95
- package/dist/lib/helper-versions.d.ts +0 -51
- package/dist/lib/helper-versions.js +1 -45
- package/dist/lib/hooks/cache.d.ts +0 -40
- package/dist/lib/hooks/cache.js +8 -122
- package/dist/lib/hooks/install.d.ts +0 -253
- package/dist/lib/hooks/install.js +49 -822
- package/dist/lib/hooks/match.d.ts +0 -24
- package/dist/lib/hooks/match.js +0 -31
- package/dist/lib/hooks/profile.d.ts +0 -21
- package/dist/lib/hooks/profile.js +0 -28
- package/dist/lib/hosts/credential-transport.d.ts +0 -6
- package/dist/lib/hosts/credential-transport.js +0 -17
- package/dist/lib/hosts/credentials.d.ts +0 -35
- package/dist/lib/hosts/credentials.js +0 -38
- package/dist/lib/hosts/dispatch.d.ts +0 -140
- package/dist/lib/hosts/dispatch.js +0 -176
- package/dist/lib/hosts/logs.d.ts +0 -25
- package/dist/lib/hosts/logs.js +1 -51
- package/dist/lib/hosts/option.d.ts +0 -12
- package/dist/lib/hosts/option.js +0 -12
- package/dist/lib/hosts/passthrough.d.ts +0 -129
- package/dist/lib/hosts/passthrough.js +12 -249
- package/dist/lib/hosts/progress.d.ts +0 -90
- package/dist/lib/hosts/progress.js +5 -115
- package/dist/lib/hosts/providers/devices.d.ts +0 -19
- package/dist/lib/hosts/providers/devices.js +1 -34
- package/dist/lib/hosts/providers/local.d.ts +0 -14
- package/dist/lib/hosts/providers/local.js +0 -22
- package/dist/lib/hosts/ready.d.ts +0 -99
- package/dist/lib/hosts/ready.js +0 -101
- package/dist/lib/hosts/reconcile.d.ts +0 -38
- package/dist/lib/hosts/reconcile.js +1 -50
- package/dist/lib/hosts/reconnect.d.ts +0 -75
- package/dist/lib/hosts/reconnect.js +0 -98
- package/dist/lib/hosts/registry.d.ts +0 -74
- package/dist/lib/hosts/registry.js +0 -110
- package/dist/lib/hosts/remote-cmd.d.ts +1 -228
- package/dist/lib/hosts/remote-cmd.js +19 -294
- package/dist/lib/hosts/remote-cmd.test-fixture.d.ts +0 -1
- package/dist/lib/hosts/remote-cmd.test-fixture.js +0 -12
- package/dist/lib/hosts/remote-os.d.ts +0 -19
- package/dist/lib/hosts/remote-os.js +0 -22
- package/dist/lib/hosts/remote-session-id.d.ts +0 -22
- package/dist/lib/hosts/remote-session-id.js +0 -24
- package/dist/lib/hosts/routing-flag.d.ts +0 -21
- package/dist/lib/hosts/routing-flag.js +0 -21
- package/dist/lib/hosts/run-target.d.ts +0 -53
- package/dist/lib/hosts/run-target.js +0 -56
- package/dist/lib/hosts/session-index.d.ts +1 -53
- package/dist/lib/hosts/session-index.js +2 -59
- package/dist/lib/hosts/session-marker.d.ts +0 -31
- package/dist/lib/hosts/session-marker.js +0 -32
- package/dist/lib/hosts/ssh-config.d.ts +0 -25
- package/dist/lib/hosts/ssh-config.js +1 -32
- package/dist/lib/hosts/tasks.d.ts +0 -54
- package/dist/lib/hosts/tasks.js +0 -35
- package/dist/lib/hosts/types.d.ts +0 -39
- package/dist/lib/hosts/types.js +0 -22
- package/dist/lib/humans.d.ts +0 -21
- package/dist/lib/humans.js +0 -30
- package/dist/lib/identity/client.d.ts +1 -35
- package/dist/lib/identity/client.js +3 -29
- package/dist/lib/identity/index.d.ts +3 -27
- package/dist/lib/identity/index.js +8 -24
- package/dist/lib/import.d.ts +0 -104
- package/dist/lib/import.js +1 -137
- package/dist/lib/installations/active-check.d.ts +0 -53
- package/dist/lib/installations/active-check.js +0 -49
- package/dist/lib/installations/index.d.ts +0 -9
- package/dist/lib/installations/index.js +0 -9
- package/dist/lib/installations/installation-lock.js +0 -8
- package/dist/lib/installations/launch-gate.d.ts +0 -56
- package/dist/lib/installations/launch-gate.js +0 -83
- package/dist/lib/installations/migrate.d.ts +0 -100
- package/dist/lib/installations/migrate.js +105 -572
- package/dist/lib/installations/native-command.d.ts +0 -1
- package/dist/lib/installations/native-command.js +0 -6
- package/dist/lib/installations/resolve.d.ts +0 -24
- package/dist/lib/installations/resolve.js +0 -24
- package/dist/lib/installations/shims.d.ts +0 -395
- package/dist/lib/installations/shims.js +30 -957
- package/dist/lib/installations/store.d.ts +0 -199
- package/dist/lib/installations/store.js +1 -297
- package/dist/lib/installations/strategies.d.ts +0 -44
- package/dist/lib/installations/strategies.js +0 -87
- package/dist/lib/installations/types.d.ts +1 -67
- package/dist/lib/installations/types.js +0 -6
- package/dist/lib/installations/update-cancellation.d.ts +0 -74
- package/dist/lib/installations/update-cancellation.js +0 -74
- package/dist/lib/installations/update-policy.d.ts +0 -57
- package/dist/lib/installations/update-policy.js +0 -62
- package/dist/lib/installations/update-runtime.d.ts +0 -88
- package/dist/lib/installations/update-runtime.js +1 -127
- package/dist/lib/installations/update.d.ts +0 -53
- package/dist/lib/installations/update.js +0 -95
- package/dist/lib/installations/versions.d.ts +0 -310
- package/dist/lib/installations/versions.js +14 -837
- package/dist/lib/isolation-boundary-report.d.ts +0 -7
- package/dist/lib/isolation-boundary-report.js +0 -7
- package/dist/lib/launch-identity.d.ts +0 -8
- package/dist/lib/launch-identity.js +0 -8
- package/dist/lib/linear-autoclose.d.ts +0 -25
- package/dist/lib/linear-autoclose.js +0 -19
- package/dist/lib/linear-cache.d.ts +0 -57
- package/dist/lib/linear-cache.js +1 -81
- package/dist/lib/linear-project-counts.d.ts +0 -83
- package/dist/lib/linear-project-counts.js +2 -64
- package/dist/lib/linear-projects.d.ts +0 -62
- package/dist/lib/linear-projects.js +0 -85
- package/dist/lib/linear-rate-limit.d.ts +0 -21
- package/dist/lib/linear-rate-limit.js +1 -93
- package/dist/lib/linux-userns.d.ts +1 -42
- package/dist/lib/linux-userns.js +0 -47
- package/dist/lib/lock-compromise.d.ts +0 -7
- package/dist/lib/lock-compromise.js +0 -7
- package/dist/lib/log-follow.d.ts +0 -2
- package/dist/lib/log-follow.js +5 -15
- package/dist/lib/loop.d.ts +0 -106
- package/dist/lib/loop.js +0 -135
- package/dist/lib/machine-id.d.ts +0 -19
- package/dist/lib/machine-id.js +0 -19
- package/dist/lib/mailbox-gc.d.ts +0 -7
- package/dist/lib/mailbox-gc.js +0 -25
- package/dist/lib/mailbox-target.d.ts +0 -31
- package/dist/lib/mailbox-target.js +0 -27
- package/dist/lib/mailbox.d.ts +0 -77
- package/dist/lib/mailbox.js +5 -105
- package/dist/lib/manifest.d.ts +0 -4
- package/dist/lib/manifest.js +0 -36
- package/dist/lib/markdown.d.ts +0 -3
- package/dist/lib/markdown.js +0 -9
- package/dist/lib/mcp-registry.d.ts +1 -50
- package/dist/lib/mcp-registry.js +0 -64
- package/dist/lib/mcp.d.ts +0 -115
- package/dist/lib/mcp.js +3 -199
- package/dist/lib/memory-cache.d.ts +0 -11
- package/dist/lib/memory-cache.js +0 -9
- package/dist/lib/memory.d.ts +0 -52
- package/dist/lib/memory.js +12 -74
- package/dist/lib/menubar/download-menubar.d.ts +0 -35
- package/dist/lib/menubar/download-menubar.js +0 -38
- package/dist/lib/menubar/install-menubar.d.ts +0 -405
- package/dist/lib/menubar/install-menubar.js +25 -667
- package/dist/lib/menubar/migrate-prefs.d.ts +0 -47
- package/dist/lib/menubar/migrate-prefs.js +1 -70
- package/dist/lib/menubar/notify-desktop.d.ts +0 -82
- package/dist/lib/menubar/notify-desktop.js +0 -68
- package/dist/lib/menubar/resolve-version.d.ts +0 -41
- package/dist/lib/menubar/resolve-version.js +2 -44
- package/dist/lib/menubar/snapshot.d.ts +13 -66
- package/dist/lib/menubar/snapshot.js +45 -39
- package/dist/lib/merged-resources.d.ts +0 -10
- package/dist/lib/merged-resources.js +0 -10
- package/dist/lib/migrate-fold.d.ts +0 -31
- package/dist/lib/migrate-fold.js +6 -38
- package/dist/lib/model-tier-overrides.d.ts +0 -30
- package/dist/lib/model-tier-overrides.js +0 -14
- package/dist/lib/model-tiers.d.ts +0 -43
- package/dist/lib/model-tiers.js +5 -78
- package/dist/lib/models.d.ts +0 -145
- package/dist/lib/models.js +3 -333
- package/dist/lib/monitors/config.d.ts +0 -187
- package/dist/lib/monitors/config.js +4 -101
- package/dist/lib/monitors/dispatch.d.ts +0 -22
- package/dist/lib/monitors/dispatch.js +0 -35
- package/dist/lib/monitors/engine.d.ts +1 -53
- package/dist/lib/monitors/engine.js +17 -106
- package/dist/lib/monitors/fingerprint.d.ts +0 -43
- package/dist/lib/monitors/fingerprint.js +0 -57
- package/dist/lib/monitors/pid-watch.d.ts +0 -31
- package/dist/lib/monitors/pid-watch.js +0 -31
- package/dist/lib/monitors/remote.d.ts +0 -52
- package/dist/lib/monitors/remote.js +0 -42
- package/dist/lib/monitors/sources/command.d.ts +2 -9
- package/dist/lib/monitors/sources/command.js +13 -34
- package/dist/lib/monitors/sources/device.d.ts +0 -10
- package/dist/lib/monitors/sources/device.js +0 -14
- package/dist/lib/monitors/sources/failure.d.ts +0 -27
- package/dist/lib/monitors/sources/failure.js +0 -27
- package/dist/lib/monitors/sources/file.d.ts +0 -10
- package/dist/lib/monitors/sources/file.js +0 -11
- package/dist/lib/monitors/sources/http.d.ts +0 -7
- package/dist/lib/monitors/sources/http.js +0 -9
- package/dist/lib/monitors/sources/index.d.ts +0 -9
- package/dist/lib/monitors/sources/index.js +0 -9
- package/dist/lib/monitors/sources/poll.d.ts +0 -8
- package/dist/lib/monitors/sources/poll.js +0 -8
- package/dist/lib/monitors/sources/types.d.ts +0 -18
- package/dist/lib/monitors/sources/types.js +0 -8
- package/dist/lib/monitors/sources/webhook.d.ts +0 -7
- package/dist/lib/monitors/sources/webhook.js +0 -7
- package/dist/lib/monitors/sources/ws.d.ts +0 -10
- package/dist/lib/monitors/sources/ws.js +3 -13
- package/dist/lib/monitors/state.d.ts +0 -132
- package/dist/lib/monitors/state.js +2 -86
- package/dist/lib/native-accounts.d.ts +0 -32
- package/dist/lib/native-accounts.js +0 -17
- package/dist/lib/net-close.d.ts +0 -9
- package/dist/lib/net-close.js +0 -5
- package/dist/lib/notify.d.ts +0 -47
- package/dist/lib/notify.js +0 -30
- package/dist/lib/onepassword.d.ts +0 -14
- package/dist/lib/onepassword.js +0 -12
- package/dist/lib/open-url.d.ts +0 -38
- package/dist/lib/open-url.js +1 -69
- package/dist/lib/openclaw-keychain.js +2 -7
- package/dist/lib/operator.d.ts +0 -9
- package/dist/lib/operator.js +0 -34
- package/dist/lib/origin-machine.d.ts +0 -16
- package/dist/lib/origin-machine.js +0 -16
- package/dist/lib/output/git-output.d.ts +0 -31
- package/dist/lib/output/git-output.js +4 -43
- package/dist/lib/overdue.d.ts +0 -35
- package/dist/lib/overdue.js +0 -60
- package/dist/lib/owner-message.d.ts +0 -20
- package/dist/lib/owner-message.js +1 -40
- package/dist/lib/packages/output-home.d.ts +0 -28
- package/dist/lib/packages/output-home.js +0 -114
- package/dist/lib/paths.d.ts +0 -26
- package/dist/lib/paths.js +1 -27
- package/dist/lib/percentile.d.ts +0 -11
- package/dist/lib/percentile.js +0 -11
- package/dist/lib/perf/db.d.ts +0 -16
- package/dist/lib/perf/db.js +3 -32
- package/dist/lib/perf/spool.d.ts +0 -12
- package/dist/lib/perf/spool.js +0 -13
- package/dist/lib/perf/types.d.ts +0 -26
- package/dist/lib/perf/types.js +0 -1
- package/dist/lib/permissions-registry.d.ts +0 -48
- package/dist/lib/permissions-registry.js +0 -108
- package/dist/lib/permissions.d.ts +0 -215
- package/dist/lib/permissions.js +4 -407
- package/dist/lib/picker.d.ts +0 -124
- package/dist/lib/picker.js +0 -140
- package/dist/lib/placement.d.ts +0 -57
- package/dist/lib/placement.js +0 -47
- package/dist/lib/platform/exec.d.ts +0 -73
- package/dist/lib/platform/exec.js +0 -80
- package/dist/lib/platform/index.d.ts +0 -14
- package/dist/lib/platform/index.js +0 -14
- package/dist/lib/platform/ipc.d.ts +0 -10
- package/dist/lib/platform/ipc.js +0 -13
- package/dist/lib/platform/links.d.ts +0 -14
- package/dist/lib/platform/links.js +0 -25
- package/dist/lib/platform/paths.d.ts +0 -48
- package/dist/lib/platform/paths.js +0 -52
- package/dist/lib/platform/posixpath.d.ts +0 -18
- package/dist/lib/platform/posixpath.js +0 -62
- package/dist/lib/platform/process.d.ts +0 -67
- package/dist/lib/platform/process.js +5 -99
- package/dist/lib/platform/winpath.d.ts +0 -50
- package/dist/lib/platform/winpath.js +0 -81
- package/dist/lib/plugins/plugin-marketplace.d.ts +0 -165
- package/dist/lib/plugins/plugin-marketplace.js +10 -238
- package/dist/lib/plugins/plugins.d.ts +0 -238
- package/dist/lib/plugins/plugins.js +20 -454
- package/dist/lib/plugins/skills.d.ts +0 -86
- package/dist/lib/plugins/skills.js +1 -139
- package/dist/lib/pr-land-detach.d.ts +0 -17
- package/dist/lib/pr-land-detach.js +0 -30
- package/dist/lib/pricing/cost.d.ts +0 -29
- package/dist/lib/pricing/cost.js +0 -38
- package/dist/lib/pricing/index.d.ts +0 -6
- package/dist/lib/pricing/index.js +0 -6
- package/dist/lib/pricing/table.d.ts +0 -8
- package/dist/lib/pricing/table.js +3 -56
- package/dist/lib/probe.d.ts +0 -5
- package/dist/lib/probe.js +0 -40
- package/dist/lib/profiles-presets.d.ts +0 -20
- package/dist/lib/profiles-presets.js +1 -36
- package/dist/lib/profiles.d.ts +0 -185
- package/dist/lib/profiles.js +1 -158
- package/dist/lib/project-doctor.d.ts +0 -29
- package/dist/lib/project-doctor.js +0 -26
- package/dist/lib/project-focus.d.ts +0 -41
- package/dist/lib/project-focus.js +0 -49
- package/dist/lib/project-import.d.ts +0 -41
- package/dist/lib/project-import.js +0 -36
- package/dist/lib/project-key.d.ts +0 -65
- package/dist/lib/project-key.js +0 -70
- package/dist/lib/project-launch.d.ts +0 -49
- package/dist/lib/project-launch.js +2 -91
- package/dist/lib/project-probe.d.ts +0 -86
- package/dist/lib/project-probe.js +1 -88
- package/dist/lib/project-pull.d.ts +0 -96
- package/dist/lib/project-pull.js +0 -122
- package/dist/lib/project-resources.d.ts +0 -44
- package/dist/lib/project-resources.js +7 -171
- package/dist/lib/project-root.d.ts +0 -95
- package/dist/lib/project-root.js +0 -101
- package/dist/lib/project-schedule.d.ts +0 -43
- package/dist/lib/project-schedule.js +0 -52
- package/dist/lib/project-status.d.ts +0 -108
- package/dist/lib/project-status.js +0 -117
- package/dist/lib/projects.d.ts +0 -197
- package/dist/lib/projects.js +1 -213
- package/dist/lib/pwsh.d.ts +0 -41
- package/dist/lib/pwsh.js +0 -51
- package/dist/lib/quick-todo.d.ts +84 -0
- package/dist/lib/quick-todo.js +243 -0
- package/dist/lib/reconcile-and-repair.d.ts +0 -78
- package/dist/lib/reconcile-and-repair.js +3 -66
- package/dist/lib/redact.d.ts +0 -29
- package/dist/lib/redact.js +0 -54
- package/dist/lib/refresh-coordinator.d.ts +0 -15
- package/dist/lib/refresh-coordinator.js +0 -10
- package/dist/lib/refresh.d.ts +0 -39
- package/dist/lib/refresh.js +0 -45
- package/dist/lib/registry.d.ts +0 -65
- package/dist/lib/registry.js +0 -127
- package/dist/lib/reminders.d.ts +0 -21
- package/dist/lib/reminders.js +0 -30
- package/dist/lib/remote-agents-json.d.ts +0 -44
- package/dist/lib/remote-agents-json.js +1 -44
- package/dist/lib/reserved-stores.d.ts +0 -28
- package/dist/lib/reserved-stores.js +2 -28
- package/dist/lib/resource-aliases.d.ts +0 -12
- package/dist/lib/resource-aliases.js +0 -12
- package/dist/lib/resource-content-diff.d.ts +0 -28
- package/dist/lib/resource-content-diff.js +7 -34
- package/dist/lib/resource-inventory.d.ts +0 -51
- package/dist/lib/resource-inventory.js +0 -45
- package/dist/lib/resource-patterns.d.ts +0 -32
- package/dist/lib/resource-patterns.js +0 -34
- package/dist/lib/resource-profiles.d.ts +0 -7
- package/dist/lib/resource-profiles.js +0 -11
- package/dist/lib/resources/types.d.ts +0 -50
- package/dist/lib/resources/types.js +0 -7
- package/dist/lib/resources/workflows.d.ts +0 -7
- package/dist/lib/resources/workflows.js +0 -13
- package/dist/lib/resources.d.ts +0 -65
- package/dist/lib/resources.js +0 -78
- package/dist/lib/routers.d.ts +0 -67
- package/dist/lib/routers.js +0 -60
- package/dist/lib/routine-activation.d.ts +0 -23
- package/dist/lib/routine-activation.js +0 -24
- package/dist/lib/routine-context.d.ts +1 -91
- package/dist/lib/routine-context.js +0 -107
- package/dist/lib/routine-notify-owner.d.ts +0 -79
- package/dist/lib/routine-notify-owner.js +1 -103
- package/dist/lib/routine-notify.d.ts +0 -70
- package/dist/lib/routine-notify.js +1 -75
- package/dist/lib/routine-process-cleanup.d.ts +0 -1
- package/dist/lib/routine-process-cleanup.js +1 -4
- package/dist/lib/routine-readiness.d.ts +0 -63
- package/dist/lib/routine-readiness.js +4 -86
- package/dist/lib/routines-format.d.ts +0 -40
- package/dist/lib/routines-format.js +0 -67
- package/dist/lib/routines-placement.d.ts +0 -33
- package/dist/lib/routines-placement.js +0 -40
- package/dist/lib/routines-project.d.ts +0 -57
- package/dist/lib/routines-project.js +6 -80
- package/dist/lib/rules/compile.d.ts +0 -66
- package/dist/lib/rules/compile.js +6 -118
- package/dist/lib/rules/compose.d.ts +0 -56
- package/dist/lib/rules/compose.js +2 -83
- package/dist/lib/rules/rules.d.ts +0 -23
- package/dist/lib/rules/rules.js +0 -35
- package/dist/lib/rules/run-sync.d.ts +0 -16
- package/dist/lib/rules/run-sync.js +1 -44
- package/dist/lib/run-config.d.ts +0 -7
- package/dist/lib/run-config.js +0 -8
- package/dist/lib/run-defaults.d.ts +0 -14
- package/dist/lib/run-defaults.js +0 -14
- package/dist/lib/run-notify.d.ts +0 -18
- package/dist/lib/run-notify.js +0 -36
- package/dist/lib/run-trace-sync.d.ts +0 -21
- package/dist/lib/run-trace-sync.js +2 -66
- package/dist/lib/rush-session.d.ts +0 -26
- package/dist/lib/rush-session.js +0 -28
- package/dist/lib/sandbox.d.ts +0 -45
- package/dist/lib/sandbox.js +5 -93
- package/dist/lib/scheduler.d.ts +0 -28
- package/dist/lib/scheduler.js +0 -45
- package/dist/lib/scheduling/routines.d.ts +0 -652
- package/dist/lib/scheduling/routines.js +8 -475
- package/dist/lib/secrets-cli.d.ts +3 -8
- package/dist/lib/secrets-cli.js +1 -19
- package/dist/lib/secrets-client.d.ts +0 -117
- package/dist/lib/secrets-client.js +4 -275
- package/dist/lib/secrets-policy.d.ts +0 -142
- package/dist/lib/secrets-policy.js +4 -237
- package/dist/lib/secrets-types.d.ts +0 -87
- package/dist/lib/secrets-types.js +0 -13
- package/dist/lib/self-heal/checks/hook-manifest.js +0 -25
- package/dist/lib/self-heal/checks/hook-runtime.js +0 -5
- package/dist/lib/self-heal/checks/install-staging.d.ts +0 -1
- package/dist/lib/self-heal/checks/install-staging.js +1 -28
- package/dist/lib/self-heal/checks/menubar-helper.js +0 -5
- package/dist/lib/self-heal/checks/path.js +0 -9
- package/dist/lib/self-heal/checks/resources.js +0 -5
- package/dist/lib/self-heal/checks/shadowing.js +2 -16
- package/dist/lib/self-heal/checks/shims.js +0 -14
- package/dist/lib/self-heal/child.d.ts +12 -0
- package/dist/lib/self-heal/child.js +23 -0
- package/dist/lib/self-heal/registry.d.ts +0 -9
- package/dist/lib/self-heal/registry.js +0 -16
- package/dist/lib/self-heal/types.d.ts +0 -12
- package/dist/lib/self-heal/types.js +0 -15
- package/dist/lib/self-update.d.ts +0 -312
- package/dist/lib/self-update.js +9 -360
- package/dist/lib/service-manifest.d.ts +0 -39
- package/dist/lib/service-manifest.js +0 -72
- package/dist/lib/session/active.d.ts +13 -869
- package/dist/lib/session/active.js +20 -976
- package/dist/lib/session/actor-sidecar.d.ts +1 -32
- package/dist/lib/session/actor-sidecar.js +1 -41
- package/dist/lib/session/bookmarks.d.ts +0 -33
- package/dist/lib/session/bookmarks.js +0 -37
- package/dist/lib/session/bundle.d.ts +0 -86
- package/dist/lib/session/bundle.js +0 -54
- package/dist/lib/session/claude-accounts.d.ts +0 -40
- package/dist/lib/session/claude-accounts.js +0 -49
- package/dist/lib/session/cloud.d.ts +1 -23
- package/dist/lib/session/cloud.js +0 -26
- package/dist/lib/session/db.d.ts +5 -658
- package/dist/lib/session/db.js +22 -1443
- package/dist/lib/session/detached.d.ts +0 -21
- package/dist/lib/session/detached.js +0 -29
- package/dist/lib/session/discover.d.ts +3 -420
- package/dist/lib/session/discover.js +30 -1123
- package/dist/lib/session/fork.d.ts +1 -41
- package/dist/lib/session/fork.js +0 -19
- package/dist/lib/session/ghostty-tabs.d.ts +0 -24
- package/dist/lib/session/ghostty-tabs.js +0 -37
- package/dist/lib/session/glance-files.d.ts +19 -0
- package/dist/lib/session/glance-files.js +258 -0
- package/dist/lib/session/hook-sessions.d.ts +0 -33
- package/dist/lib/session/hook-sessions.js +4 -99
- package/dist/lib/session/host-link.d.ts +1 -94
- package/dist/lib/session/host-link.js +1 -81
- package/dist/lib/session/inject-target.d.ts +8 -0
- package/dist/lib/session/inject-target.js +32 -0
- package/dist/lib/session/inject.d.ts +0 -15
- package/dist/lib/session/inject.js +0 -15
- package/dist/lib/session/live-metadata.d.ts +1 -34
- package/dist/lib/session/live-metadata.js +1 -73
- package/dist/lib/session/local-tmux-attach.d.ts +0 -37
- package/dist/lib/session/local-tmux-attach.js +1 -76
- package/dist/lib/session/migrate-targets.d.ts +0 -46
- package/dist/lib/session/migrate-targets.js +0 -24
- package/dist/lib/session/migrations.d.ts +0 -12
- package/dist/lib/session/migrations.js +1 -20
- package/dist/lib/session/mirror.d.ts +0 -32
- package/dist/lib/session/mirror.js +0 -77
- package/dist/lib/session/origin-machine.js +0 -3
- package/dist/lib/session/pid-registry.d.ts +0 -80
- package/dist/lib/session/pid-registry.js +2 -81
- package/dist/lib/session/presence.d.ts +0 -39
- package/dist/lib/session/presence.js +2 -52
- package/dist/lib/session/process-view.d.ts +0 -11
- package/dist/lib/session/process-view.js +0 -25
- package/dist/lib/session/projection.d.ts +0 -3
- package/dist/lib/session/projection.js +0 -10
- package/dist/lib/session/provenance.d.ts +1 -37
- package/dist/lib/session/provenance.js +0 -69
- package/dist/lib/session/recovery.d.ts +1 -40
- package/dist/lib/session/recovery.js +2 -80
- package/dist/lib/session/relative-time.js +0 -3
- package/dist/lib/session/remote/peer-stream.d.ts +0 -42
- package/dist/lib/session/remote/peer-stream.js +0 -64
- package/dist/lib/session/remote/remote-bundle.d.ts +0 -6
- package/dist/lib/session/remote/remote-bundle.js +0 -21
- package/dist/lib/session/remote/remote-list.d.ts +1 -110
- package/dist/lib/session/remote/remote-list.js +5 -139
- package/dist/lib/session/remote/remote.d.ts +0 -98
- package/dist/lib/session/remote/remote.js +3 -119
- package/dist/lib/session/remote/watch.d.ts +1 -34
- package/dist/lib/session/remote/watch.js +12 -72
- package/dist/lib/session/remote-active.d.ts +0 -35
- package/dist/lib/session/remote-active.js +0 -48
- package/dist/lib/session/remote-bundle.js +0 -2
- package/dist/lib/session/remote-list.js +0 -2
- package/dist/lib/session/remote-preview-cache.d.ts +0 -7
- package/dist/lib/session/remote-preview-cache.js +1 -76
- package/dist/lib/session/remote.js +0 -2
- package/dist/lib/session/resume-command.d.ts +0 -6
- package/dist/lib/session/resume-command.js +0 -6
- package/dist/lib/session/resume-owner.d.ts +1 -52
- package/dist/lib/session/resume-owner.js +0 -56
- package/dist/lib/session/run-names.d.ts +0 -24
- package/dist/lib/session/run-names.js +0 -26
- package/dist/lib/session/session-cache.d.ts +2 -146
- package/dist/lib/session/session-cache.js +26 -203
- package/dist/lib/session/short-id.js +0 -3
- package/dist/lib/session/sync/agents.d.ts +0 -68
- package/dist/lib/session/sync/agents.js +0 -0
- package/dist/lib/session/sync/backend.d.ts +0 -39
- package/dist/lib/session/sync/backend.js +0 -45
- package/dist/lib/session/sync/config.d.ts +0 -27
- package/dist/lib/session/sync/config.js +0 -56
- package/dist/lib/session/sync/managed-config.d.ts +0 -17
- package/dist/lib/session/sync/managed-config.js +0 -17
- package/dist/lib/session/sync/managed-key.d.ts +0 -38
- package/dist/lib/session/sync/managed-key.js +1 -42
- package/dist/lib/session/sync/net-client.d.ts +0 -36
- package/dist/lib/session/sync/net-client.js +0 -30
- package/dist/lib/session/sync/provision.d.ts +0 -2
- package/dist/lib/session/sync/provision.js +0 -13
- package/dist/lib/session/sync/r2.d.ts +0 -20
- package/dist/lib/session/sync/r2.js +0 -20
- package/dist/lib/session/sync/transcript-crypto.d.ts +0 -37
- package/dist/lib/session/sync/transcript-crypto.js +5 -37
- package/dist/lib/session/sync/worker-template.d.ts +0 -5
- package/dist/lib/session/sync/worker-template.js +0 -40
- package/dist/lib/session/testdata/pid-registry-namespace.js +0 -2
- package/dist/lib/session/testdata/process-view-private.js +0 -1
- package/dist/lib/session/throughput.d.ts +0 -24
- package/dist/lib/session/throughput.js +1 -25
- package/dist/lib/session/timeline-pass.d.ts +1 -63
- package/dist/lib/session/timeline-pass.js +161 -148
- package/dist/lib/session/title.d.ts +0 -182
- package/dist/lib/session/title.js +0 -139
- package/dist/lib/session/tool-index.d.ts +2 -21
- package/dist/lib/session/tool-index.js +3 -75
- package/dist/lib/session/tool-store.d.ts +2 -48
- package/dist/lib/session/tool-store.js +1 -33
- package/dist/lib/session/viewing-in.d.ts +0 -67
- package/dist/lib/session/viewing-in.js +1 -71
- package/dist/lib/session/watch.js +0 -2
- package/dist/lib/session/width.js +0 -3
- package/dist/lib/sessions-client.d.ts +0 -46
- package/dist/lib/sessions-client.js +36 -113
- package/dist/lib/settings-manifest.d.ts +1 -17
- package/dist/lib/settings-manifest.js +4 -57
- package/dist/lib/setup-tool-install.d.ts +0 -1
- package/dist/lib/setup-tool-install.js +2 -7
- package/dist/lib/setup-tool-status.d.ts +0 -3
- package/dist/lib/setup-tool-status.js +4 -14
- package/dist/lib/sha256-asset.d.ts +0 -20
- package/dist/lib/sha256-asset.js +0 -20
- package/dist/lib/share-runtime.d.ts +0 -10
- package/dist/lib/share-runtime.js +1 -27
- package/dist/lib/shim-heal.d.ts +0 -15
- package/dist/lib/shim-heal.js +3 -29
- package/dist/lib/signin-badge.d.ts +0 -72
- package/dist/lib/signin-badge.js +0 -86
- package/dist/lib/sink-format.d.ts +0 -32
- package/dist/lib/sink-format.js +0 -14
- package/dist/lib/smart-launch.d.ts +0 -75
- package/dist/lib/smart-launch.js +1 -83
- package/dist/lib/snapshot.d.ts +0 -46
- package/dist/lib/snapshot.js +5 -31
- package/dist/lib/spinner.d.ts +0 -37
- package/dist/lib/spinner.js +0 -37
- package/dist/lib/sqlite.d.ts +0 -13
- package/dist/lib/sqlite.js +3 -71
- package/dist/lib/ssh-exec.d.ts +0 -209
- package/dist/lib/ssh-exec.js +11 -248
- package/dist/lib/ssh-tunnel.d.ts +0 -43
- package/dist/lib/ssh-tunnel.js +2 -48
- package/dist/lib/staleness/checkers/commands.d.ts +0 -4
- package/dist/lib/staleness/checkers/commands.js +0 -4
- package/dist/lib/staleness/checkers/hooks.d.ts +0 -10
- package/dist/lib/staleness/checkers/hooks.js +0 -15
- package/dist/lib/staleness/checkers/mcp.d.ts +0 -9
- package/dist/lib/staleness/checkers/mcp.js +0 -9
- package/dist/lib/staleness/checkers/permissions.d.ts +0 -12
- package/dist/lib/staleness/checkers/permissions.js +0 -13
- package/dist/lib/staleness/checkers/plugins.d.ts +0 -8
- package/dist/lib/staleness/checkers/plugins.js +0 -8
- package/dist/lib/staleness/checkers/rules.d.ts +0 -15
- package/dist/lib/staleness/checkers/rules.js +0 -26
- package/dist/lib/staleness/checkers/skills.d.ts +0 -4
- package/dist/lib/staleness/checkers/skills.js +0 -4
- package/dist/lib/staleness/checkers/subagents.d.ts +0 -9
- package/dist/lib/staleness/checkers/subagents.js +0 -9
- package/dist/lib/staleness/checkers/types.d.ts +0 -34
- package/dist/lib/staleness/checkers/types.js +0 -19
- package/dist/lib/staleness/checkers/workflows.d.ts +0 -7
- package/dist/lib/staleness/checkers/workflows.js +0 -7
- package/dist/lib/staleness/detectors/commands.js +0 -17
- package/dist/lib/staleness/detectors/hooks.js +1 -6
- package/dist/lib/staleness/detectors/mcp.js +0 -4
- package/dist/lib/staleness/detectors/permissions.js +10 -23
- package/dist/lib/staleness/detectors/rules.js +0 -6
- package/dist/lib/staleness/detectors/skills.d.ts +0 -1
- package/dist/lib/staleness/detectors/skills.js +1 -12
- package/dist/lib/staleness/detectors/types.d.ts +0 -10
- package/dist/lib/staleness/fingerprint.d.ts +0 -19
- package/dist/lib/staleness/fingerprint.js +0 -35
- package/dist/lib/staleness/index.d.ts +0 -28
- package/dist/lib/staleness/index.js +1 -45
- package/dist/lib/staleness/layers.d.ts +0 -23
- package/dist/lib/staleness/layers.js +0 -34
- package/dist/lib/staleness/prune.d.ts +0 -71
- package/dist/lib/staleness/prune.js +2 -27
- package/dist/lib/staleness/registry.d.ts +0 -10
- package/dist/lib/staleness/registry.js +3 -33
- package/dist/lib/staleness/types.d.ts +0 -36
- package/dist/lib/staleness/types.js +0 -5
- package/dist/lib/staleness/writers/commands.js +1 -48
- package/dist/lib/staleness/writers/hooks.js +1 -18
- package/dist/lib/staleness/writers/kinds.d.ts +0 -12
- package/dist/lib/staleness/writers/kinds.js +0 -1
- package/dist/lib/staleness/writers/lazy-map.d.ts +0 -11
- package/dist/lib/staleness/writers/mcp.js +0 -13
- package/dist/lib/staleness/writers/plugins.js +0 -4
- package/dist/lib/staleness/writers/rules.d.ts +0 -1
- package/dist/lib/staleness/writers/rules.js +1 -19
- package/dist/lib/staleness/writers/skills.js +3 -14
- package/dist/lib/staleness/writers/sources.d.ts +0 -11
- package/dist/lib/staleness/writers/sources.js +0 -32
- package/dist/lib/staleness/writers/subagents.js +0 -16
- package/dist/lib/staleness/writers/types.d.ts +0 -58
- package/dist/lib/staleness/writers/workflows.js +1 -1
- package/dist/lib/standalone-tools.d.ts +24 -0
- package/dist/lib/standalone-tools.js +58 -0
- package/dist/lib/star-nudge.d.ts +0 -32
- package/dist/lib/star-nudge.js +2 -36
- package/dist/lib/startup/command-registry.d.ts +0 -45
- package/dist/lib/startup/command-registry.js +1 -46
- package/dist/lib/startup/dev-build.d.ts +0 -9
- package/dist/lib/startup/dev-build.js +1 -42
- package/dist/lib/startup/root-command.d.ts +0 -19
- package/dist/lib/startup/root-command.js +0 -19
- package/dist/lib/startup/spellcheck.d.ts +0 -13
- package/dist/lib/startup/spellcheck.js +0 -13
- package/dist/lib/state.d.ts +0 -376
- package/dist/lib/state.js +19 -737
- package/dist/lib/storage/selection.d.ts +0 -40
- package/dist/lib/storage/selection.js +0 -29
- package/dist/lib/subagents-registry.d.ts +0 -56
- package/dist/lib/subagents-registry.js +0 -99
- package/dist/lib/subagents.d.ts +0 -128
- package/dist/lib/subagents.js +1 -158
- package/dist/lib/summarizer/config.d.ts +0 -37
- package/dist/lib/summarizer/config.js +0 -37
- package/dist/lib/summarizer/pass.d.ts +0 -20
- package/dist/lib/summarizer/pass.js +1 -34
- package/dist/lib/summarizer/summarize.d.ts +1 -49
- package/dist/lib/summarizer/summarize.js +0 -35
- package/dist/lib/sync-passphrase.d.ts +0 -16
- package/dist/lib/sync-passphrase.js +1 -18
- package/dist/lib/sync-status.d.ts +0 -72
- package/dist/lib/sync-status.js +0 -55
- package/dist/lib/sync-umbrella.d.ts +0 -54
- package/dist/lib/sync-umbrella.js +0 -48
- package/dist/lib/system-run-sync.d.ts +0 -5
- package/dist/lib/system-run-sync.js +1 -31
- package/dist/lib/teams/agents.d.ts +1 -444
- package/dist/lib/teams/agents.js +11 -871
- package/dist/lib/teams/api.d.ts +2 -52
- package/dist/lib/teams/api.js +4 -63
- package/dist/lib/teams/debug.d.ts +0 -6
- package/dist/lib/teams/debug.js +0 -6
- package/dist/lib/teams/delivery.d.ts +0 -41
- package/dist/lib/teams/delivery.js +0 -32
- package/dist/lib/teams/file_ops.d.ts +0 -11
- package/dist/lib/teams/file_ops.js +0 -11
- package/dist/lib/teams/forEach.d.ts +0 -76
- package/dist/lib/teams/forEach.js +1 -77
- package/dist/lib/teams/index.d.ts +1 -7
- package/dist/lib/teams/index.js +1 -7
- package/dist/lib/teams/parsers.d.ts +0 -4
- package/dist/lib/teams/parsers.js +0 -81
- package/dist/lib/teams/persistence.d.ts +0 -2
- package/dist/lib/teams/persistence.js +0 -12
- package/dist/lib/teams/placement-probe.d.ts +0 -12
- package/dist/lib/teams/placement-probe.js +1 -51
- package/dist/lib/teams/pr-watch.d.ts +0 -107
- package/dist/lib/teams/pr-watch.js +1 -107
- package/dist/lib/teams/registry.d.ts +0 -36
- package/dist/lib/teams/registry.js +0 -47
- package/dist/lib/teams/remoteWorktree.d.ts +0 -50
- package/dist/lib/teams/remoteWorktree.js +1 -96
- package/dist/lib/teams/scheduler.d.ts +0 -111
- package/dist/lib/teams/scheduler.js +2 -125
- package/dist/lib/teams/summarizer.d.ts +0 -22
- package/dist/lib/teams/summarizer.js +6 -50
- package/dist/lib/teams/supervisor.d.ts +0 -38
- package/dist/lib/teams/supervisor.js +0 -21
- package/dist/lib/teams/worktree.d.ts +0 -95
- package/dist/lib/teams/worktree.js +3 -110
- package/dist/lib/template.d.ts +0 -21
- package/dist/lib/template.js +0 -23
- package/dist/lib/term-client.d.ts +0 -26
- package/dist/lib/term-client.js +0 -48
- package/dist/lib/term-driver.d.ts +0 -5
- package/dist/lib/term-driver.js +0 -8
- package/dist/lib/terminal/backends/ghostty.d.ts +0 -2
- package/dist/lib/terminal/backends/ghostty.js +0 -12
- package/dist/lib/terminal/backends/index.d.ts +0 -17
- package/dist/lib/terminal/backends/index.js +0 -15
- package/dist/lib/terminal/backends/iterm.d.ts +0 -2
- package/dist/lib/terminal/backends/iterm.js +0 -10
- package/dist/lib/terminal/backends/terminal-app.d.ts +0 -10
- package/dist/lib/terminal/backends/terminal-app.js +0 -30
- package/dist/lib/terminal/backends/tmux.d.ts +0 -10
- package/dist/lib/terminal/backends/tmux.js +0 -2
- package/dist/lib/terminal/backends/vscodium-agent.d.ts +0 -25
- package/dist/lib/terminal/backends/vscodium-agent.js +0 -36
- package/dist/lib/terminal/engine.d.ts +0 -17
- package/dist/lib/terminal/engine.js +0 -10
- package/dist/lib/terminal/index.d.ts +0 -8
- package/dist/lib/terminal/inject.d.ts +1 -173
- package/dist/lib/terminal/inject.js +0 -146
- package/dist/lib/terminal/policy.d.ts +0 -8
- package/dist/lib/terminal/policy.js +0 -1
- package/dist/lib/terminal/preferred.d.ts +0 -66
- package/dist/lib/terminal/preferred.js +0 -30
- package/dist/lib/terminal/quote.d.ts +0 -8
- package/dist/lib/terminal/quote.js +0 -8
- package/dist/lib/terminal/resolve.d.ts +0 -46
- package/dist/lib/terminal/resolve.js +0 -30
- package/dist/lib/terminal/run-surface.d.ts +0 -56
- package/dist/lib/terminal/run-surface.js +0 -46
- package/dist/lib/terminal/shell.d.ts +0 -3
- package/dist/lib/terminal/shell.js +0 -13
- package/dist/lib/terminal/transport.d.ts +0 -14
- package/dist/lib/terminal/transport.js +1 -30
- package/dist/lib/terminal/types.d.ts +0 -40
- package/dist/lib/terminal/types.js +0 -10
- package/dist/lib/text/relative-time.d.ts +0 -36
- package/dist/lib/text/relative-time.js +0 -43
- package/dist/lib/text/short-id.d.ts +0 -16
- package/dist/lib/text/short-id.js +0 -16
- package/dist/lib/text/width.d.ts +0 -24
- package/dist/lib/text/width.js +10 -52
- package/dist/lib/tmux/binary.d.ts +0 -36
- package/dist/lib/tmux/binary.js +0 -28
- package/dist/lib/tmux/index.d.ts +0 -5
- package/dist/lib/tmux/index.js +0 -5
- package/dist/lib/tmux/orphan-reap.d.ts +0 -253
- package/dist/lib/tmux/orphan-reap.js +3 -299
- package/dist/lib/tmux/paths.d.ts +0 -14
- package/dist/lib/tmux/paths.js +0 -14
- package/dist/lib/tmux/session.d.ts +0 -263
- package/dist/lib/tmux/session.js +6 -344
- package/dist/lib/traces/backend.d.ts +0 -20
- package/dist/lib/traces/backend.js +0 -23
- package/dist/lib/traces/classify.d.ts +0 -20
- package/dist/lib/traces/classify.js +0 -7
- package/dist/lib/traces/insights.d.ts +1 -84
- package/dist/lib/traces/insights.js +0 -126
- package/dist/lib/traces/phenotype.d.ts +0 -69
- package/dist/lib/traces/phenotype.js +0 -150
- package/dist/lib/traces/provision.d.ts +0 -1
- package/dist/lib/traces/provision.js +0 -5
- package/dist/lib/traces/schema2-build.d.ts +3 -60
- package/dist/lib/traces/schema2-build.js +8 -149
- package/dist/lib/traces/schema2-danger.d.ts +0 -30
- package/dist/lib/traces/schema2-danger.js +1 -63
- package/dist/lib/traces/schema2.d.ts +0 -11
- package/dist/lib/traces/segments.d.ts +0 -44
- package/dist/lib/traces/segments.js +0 -65
- package/dist/lib/traces/sync.d.ts +2 -239
- package/dist/lib/traces/sync.js +15 -237
- package/dist/lib/traces/worker-template.d.ts +0 -3
- package/dist/lib/traces/worker-template.js +0 -29
- package/dist/lib/triggers/handlers.d.ts +0 -82
- package/dist/lib/triggers/handlers.js +0 -75
- package/dist/lib/triggers/webhook.d.ts +0 -158
- package/dist/lib/triggers/webhook.js +0 -143
- package/dist/lib/types.d.ts +0 -736
- package/dist/lib/types.js +0 -50
- package/dist/lib/uninstall.d.ts +0 -17
- package/dist/lib/uninstall.js +0 -75
- package/dist/lib/usage-backoff.d.ts +0 -20
- package/dist/lib/usage-backoff.js +3 -60
- package/dist/lib/usage-refresh.d.ts +0 -154
- package/dist/lib/usage-refresh.js +8 -212
- package/dist/lib/verbs.d.ts +0 -12
- package/dist/lib/verbs.js +0 -12
- package/dist/lib/version-duplicates.d.ts +0 -6
- package/dist/lib/version-duplicates.js +0 -6
- package/dist/lib/version.d.ts +0 -55
- package/dist/lib/version.js +1 -58
- package/dist/lib/view-types.d.ts +0 -48
- package/dist/lib/warn-unpushed.d.ts +0 -27
- package/dist/lib/warn-unpushed.js +1 -45
- package/dist/lib/watchdog/history.d.ts +0 -1
- package/dist/lib/watchdog/history.js +0 -3
- package/dist/lib/watchdog/index.js +0 -2
- package/dist/lib/watchdog/log.d.ts +0 -19
- package/dist/lib/watchdog/log.js +0 -34
- package/dist/lib/watchdog/read.d.ts +0 -27
- package/dist/lib/watchdog/read.js +3 -58
- package/dist/lib/watchdog/rotate.d.ts +0 -139
- package/dist/lib/watchdog/rotate.js +2 -151
- package/dist/lib/watchdog/runner.d.ts +0 -125
- package/dist/lib/watchdog/runner.js +3 -223
- package/dist/lib/watchdog/service.d.ts +0 -1
- package/dist/lib/watchdog/service.js +0 -2
- package/dist/lib/watchdog/watchdog-agent.d.ts +0 -31
- package/dist/lib/watchdog/watchdog-agent.js +0 -27
- package/dist/lib/watchdog/watchdog.d.ts +0 -7
- package/dist/lib/watchdog/watchdog.js +0 -10
- package/dist/lib/watchdog/watchdogTail.js +0 -7
- package/dist/lib/whats-new.d.ts +0 -10
- package/dist/lib/whats-new.js +0 -21
- package/dist/lib/workflows-registry.d.ts +0 -45
- package/dist/lib/workflows-registry.js +0 -60
- package/dist/lib/workflows.d.ts +0 -282
- package/dist/lib/workflows.js +3 -213
- package/dist/lib/worktree/held.d.ts +0 -89
- package/dist/lib/worktree/held.js +1 -103
- package/dist/lib/wrap.d.ts +0 -32
- package/dist/lib/wrap.js +0 -32
- package/dist/lib/yaml-io.d.ts +0 -45
- package/dist/lib/yaml-io.js +0 -47
- package/dist/session-tracker/dist/adapters/claude.js +0 -2
- package/dist/session-tracker/dist/hook.sh +4 -37
- package/dist/session-tracker/dist/index.d.ts +0 -7
- package/dist/session-tracker/dist/index.js +0 -5
- package/dist/session-tracker/dist/install-hook.d.ts +0 -5
- package/dist/session-tracker/dist/install-hook.js +1 -15
- package/dist/session-tracker/dist/prune-state.js +0 -4
- package/dist/session-tracker/dist/reader.js +0 -4
- package/dist/session-tracker/dist/state-file.d.ts +0 -3
- package/dist/session-tracker/dist/state-file.js +3 -8
- package/package.json +3 -4
- package/scripts/postinstall.js +8 -116
- package/dist/lib/session/artifacts.d.ts +0 -14
- package/dist/lib/session/artifacts.js +0 -101
- package/dist/lib/session/bash-command.d.ts +0 -63
- package/dist/lib/session/bash-command.js +0 -490
- package/dist/lib/session/digest.d.ts +0 -66
- package/dist/lib/session/digest.js +0 -328
- package/dist/lib/session/highlights.d.ts +0 -151
- package/dist/lib/session/highlights.js +0 -391
- package/dist/lib/session/insights.d.ts +0 -165
- package/dist/lib/session/insights.js +0 -563
- package/dist/lib/session/linear.d.ts +0 -19
- package/dist/lib/session/linear.js +0 -99
- package/dist/lib/session/parse.d.ts +0 -224
- package/dist/lib/session/parse.js +0 -2408
- package/dist/lib/session/prompt.d.ts +0 -213
- package/dist/lib/session/prompt.js +0 -601
- package/dist/lib/session/render.d.ts +0 -133
- package/dist/lib/session/render.js +0 -1047
- package/dist/lib/session/share-html.d.ts +0 -35
- package/dist/lib/session/share-html.js +0 -319
- package/dist/lib/session/shell-programs.d.ts +0 -33
- package/dist/lib/session/shell-programs.js +0 -380
- package/dist/lib/session/state.d.ts +0 -269
- package/dist/lib/session/state.js +0 -777
- package/dist/lib/session/stream-render.d.ts +0 -4
- package/dist/lib/session/stream-render.js +0 -131
- package/dist/lib/session/tail.d.ts +0 -88
- package/dist/lib/session/tail.js +0 -294
- package/dist/lib/session/team-filter.d.ts +0 -129
- package/dist/lib/session/team-filter.js +0 -269
- package/dist/lib/session/timeline.d.ts +0 -172
- package/dist/lib/session/timeline.js +0 -636
- package/dist/lib/session/tool-calls.d.ts +0 -132
- package/dist/lib/session/tool-calls.js +0 -674
- package/dist/lib/session/trajectory-compare.d.ts +0 -48
- package/dist/lib/session/trajectory-compare.js +0 -116
- package/dist/lib/session/trajectory-html.d.ts +0 -19
- package/dist/lib/session/trajectory-html.js +0 -771
- package/dist/lib/session/trajectory-lineage.d.ts +0 -93
- package/dist/lib/session/trajectory-lineage.js +0 -195
- package/dist/lib/session/trajectory-text.d.ts +0 -38
- package/dist/lib/session/trajectory-text.js +0 -284
- package/dist/lib/session/trajectory.d.ts +0 -145
- package/dist/lib/session/trajectory.js +0 -394
- package/dist/lib/session/types.d.ts +0 -627
- package/dist/lib/session/types.js +0 -43
package/dist/lib/overdue.js
CHANGED
|
@@ -1,49 +1,14 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Overdue routine detection.
|
|
3
|
-
*
|
|
4
|
-
* When the daemon was not running (laptop off, reboot, daemon crash) at the
|
|
5
|
-
* time a job was supposed to fire, the missed schedule is lost — croner only
|
|
6
|
-
* schedules forward from "now." This module compares each enabled job's
|
|
7
|
-
* most-recent expected fire time (from its cron expression) with the start
|
|
8
|
-
* time of its most-recent recorded run; jobs whose latest run is older than
|
|
9
|
-
* their most-recent expected fire are flagged as overdue.
|
|
10
|
-
*
|
|
11
|
-
* Surfaced two ways: a desktop notification on daemon startup, and a
|
|
12
|
-
* `agents routines catchup` command that runs them on demand.
|
|
13
|
-
*/
|
|
14
1
|
import * as fs from 'fs';
|
|
15
2
|
import { Cron } from 'croner';
|
|
16
3
|
import { alignedSlotForFire, listJobs, getLatestRun, resolveJobFilePath, isPastEndAt, isOneShotRoutine, jobRunsOnThisDevice } from './scheduling/routines.js';
|
|
17
4
|
import { notifyDesktop } from './menubar/notify-desktop.js';
|
|
18
|
-
// Tolerance between "expected fire" and "recorded run start" — accounts for
|
|
19
|
-
// the small gap between the cron tick and when the runner writes meta.json.
|
|
20
5
|
const GRACE_MS = 60_000;
|
|
21
|
-
/** Compute the most recent fire of `pattern` at or before `now`. Delegates to
|
|
22
|
-
* {@link alignedSlotForFire} so overdue detection (`missedRunId`) and the live
|
|
23
|
-
* forward-timer dispatch (`slotRunId`) key on the SAME occurrence identity — a
|
|
24
|
-
* missed fire and its live twin for one UTC slot then collide by construction
|
|
25
|
-
* (SING-15). */
|
|
26
6
|
function previousExpectedFire(cron, now) {
|
|
27
7
|
return alignedSlotForFire(cron, now);
|
|
28
8
|
}
|
|
29
|
-
/**
|
|
30
|
-
* When a routine started existing, and therefore the earliest fire it can
|
|
31
|
-
* sensibly be judged against.
|
|
32
|
-
*
|
|
33
|
-
* `createdAt` is stamped by `writeJob`. Routines written before that field
|
|
34
|
-
* existed have none, so the file's own mtime stands in — it is the closest
|
|
35
|
-
* honest answer available on disk, and it only ever moves the floor later,
|
|
36
|
-
* never earlier, so it cannot manufacture a false "overdue".
|
|
37
|
-
*
|
|
38
|
-
* Returns null when neither is available, which leaves the routine unfloored
|
|
39
|
-
* (previous behaviour) rather than silently skipping it.
|
|
40
|
-
*/
|
|
41
9
|
export function routineEffectiveStart(job, now = new Date()) {
|
|
42
10
|
if (job.createdAt) {
|
|
43
11
|
const stamped = new Date(job.createdAt);
|
|
44
|
-
// Clamp a future stamp (clock skew, a hand-edited year) to now. Left
|
|
45
|
-
// unclamped it sits after every possible expected fire, so the routine can
|
|
46
|
-
// never be flagged overdue until wall-clock time catches up.
|
|
47
12
|
if (!isNaN(stamped.getTime())) {
|
|
48
13
|
return stamped.getTime() > now.getTime() ? now : stamped;
|
|
49
14
|
}
|
|
@@ -58,31 +23,17 @@ export function routineEffectiveStart(job, now = new Date()) {
|
|
|
58
23
|
return null;
|
|
59
24
|
}
|
|
60
25
|
}
|
|
61
|
-
/** Return every enabled, recurring job whose most recent expected fire was
|
|
62
|
-
* missed. One-shot jobs are excluded — they fire at most once. */
|
|
63
26
|
export function detectOverdueJobs(now = new Date()) {
|
|
64
27
|
const overdue = [];
|
|
65
28
|
for (const job of listJobs()) {
|
|
66
29
|
if (!job.enabled)
|
|
67
30
|
continue;
|
|
68
|
-
// One-shot: fires at most once, so a missed slot is not a backlog to replay.
|
|
69
|
-
// Use the same predicate the scheduler does — the raw `runOnce` flag alone
|
|
70
|
-
// missed a one-shot-LIKE schedule (a fixed minute/hour/day/month) that never
|
|
71
|
-
// carried the flag.
|
|
72
31
|
if (isOneShotRoutine(job))
|
|
73
32
|
continue;
|
|
74
|
-
// Past its configured end: catch-up must not resurrect a routine the author
|
|
75
|
-
// already retired. The scheduler only auto-disables lazily, inside a live
|
|
76
|
-
// cron tick, so a routine whose endAt elapsed while the daemon was down is
|
|
77
|
-
// still enabled on disk when the catch-up pass runs.
|
|
78
33
|
if (isPastEndAt(job, now))
|
|
79
34
|
continue;
|
|
80
|
-
// Trigger-only jobs (no cron schedule) never have an expected fire time.
|
|
81
35
|
if (!job.schedule)
|
|
82
36
|
continue;
|
|
83
|
-
// A job pinned to another device is that device's to run, notify, and
|
|
84
|
-
// catch up — flagging it here would make every machine in the fleet nag
|
|
85
|
-
// (and `catchup` fire) for a job that must not run locally.
|
|
86
37
|
if (!jobRunsOnThisDevice(job))
|
|
87
38
|
continue;
|
|
88
39
|
let expected = null;
|
|
@@ -95,15 +46,10 @@ export function detectOverdueJobs(now = new Date()) {
|
|
|
95
46
|
cron.stop();
|
|
96
47
|
}
|
|
97
48
|
catch {
|
|
98
|
-
// Invalid cron expression — skip rather than crash the daemon.
|
|
99
49
|
continue;
|
|
100
50
|
}
|
|
101
51
|
if (!expected)
|
|
102
52
|
continue;
|
|
103
|
-
// A fire that predates the routine never could have happened, so it is not
|
|
104
|
-
// a miss. Without this, any newly created routine on a daily/weekly cron is
|
|
105
|
-
// instantly "overdue" for the previous occurrence — and with auto-catchup
|
|
106
|
-
// that means `agents routines add` runs the routine once, immediately.
|
|
107
53
|
const start = routineEffectiveStart(job, now);
|
|
108
54
|
if (start && expected.getTime() < start.getTime())
|
|
109
55
|
continue;
|
|
@@ -116,12 +62,6 @@ export function detectOverdueJobs(now = new Date()) {
|
|
|
116
62
|
}
|
|
117
63
|
return overdue;
|
|
118
64
|
}
|
|
119
|
-
/**
|
|
120
|
-
* Fire a branded desktop notification listing the overdue jobs. Routed through
|
|
121
|
-
* the MenubarHelper companion (notify-desktop.ts) so it carries the agents-cli
|
|
122
|
-
* mark; clicking opens the runs folder (~/.agents/.history/runs). Best-effort —
|
|
123
|
-
* a missing notifier or absent display is swallowed and never crashes the daemon.
|
|
124
|
-
*/
|
|
125
65
|
export function notifyOverdue(jobs) {
|
|
126
66
|
if (jobs.length === 0)
|
|
127
67
|
return;
|
|
@@ -1,29 +1,9 @@
|
|
|
1
1
|
import type { SinkMessageFormat } from './sink-format.js';
|
|
2
2
|
interface OwnerMessageOptions {
|
|
3
|
-
/** Scannable subject line, when the caller has one (feed post does; notify does not). */
|
|
4
3
|
title?: string;
|
|
5
|
-
/** Explicit session id (`--session`); otherwise resolved from the run environment. */
|
|
6
4
|
sessionId?: string;
|
|
7
|
-
/**
|
|
8
|
-
* Rendering vocabulary for this body (PHNX-3698). Slack `mrkdwn` linkifies the
|
|
9
|
-
* ticket keys and the session crumb as `<url|label>`; `plain` (the default)
|
|
10
|
-
* keeps the human sentence with no URLs, for iMessage / owner-scoped rush.
|
|
11
|
-
* The owner fan-out passes one format per destination.
|
|
12
|
-
*/
|
|
13
5
|
format?: SinkMessageFormat;
|
|
14
6
|
}
|
|
15
|
-
/**
|
|
16
|
-
* Shape a raw owner-send body into the composed broadcast message. `format`
|
|
17
|
-
* decides how links surface — `plain` (default) for iMessage / owner-scoped rush,
|
|
18
|
-
* `mrkdwn` for a Slack owner destination (PHNX-3698).
|
|
19
|
-
*/
|
|
20
7
|
export declare function composeOwnerMessage(rawText: string, opts?: OwnerMessageOptions): string;
|
|
21
|
-
/**
|
|
22
|
-
* A per-format composer bound to ONE resolved context — the shape the owner
|
|
23
|
-
* fan-out wants (PHNX-3698). `agents send --to owner` build
|
|
24
|
-
* this once, use `compose('plain')` for the envelope's display body, and hand
|
|
25
|
-
* `compose` to `sendToOwner` so each policy destination re-renders in its own
|
|
26
|
-
* format without re-walking the pid registry.
|
|
27
|
-
*/
|
|
28
8
|
export declare function ownerMessageComposer(rawText: string, opts?: OwnerMessageOptions): (format: SinkMessageFormat) => string;
|
|
29
9
|
export {};
|
|
@@ -1,36 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Compose an owner-bound phone ping through the SAME shaper `agents feed post`
|
|
3
|
-
* uses, so `agents send --to owner` stop shipping a raw body
|
|
4
|
-
* dump (PHNX-3698).
|
|
5
|
-
*
|
|
6
|
-
* Before this, an owner send delivered the body verbatim: a long wall of prose,
|
|
7
|
-
* a `TEAM-N` key iMessage renders as dead text, and no way back to the session.
|
|
8
|
-
* Routing the body through {@link composeBroadcastMessage} makes an owner ping
|
|
9
|
-
* identical to an important feed post of the same event — short-shaped body,
|
|
10
|
-
* every ticket key linkified to its Linear URL, and the current session's
|
|
11
|
-
* `…/console/sessions/<id>` page as a tappable crumb.
|
|
12
|
-
*
|
|
13
|
-
* The session/agent/host are resolved the same way a feed post resolves them
|
|
14
|
-
* ({@link resolvePostIdentity} — the pid-registry / env walk), so a `notify`
|
|
15
|
-
* run inside an agent session inherits that session with no flag. Outside a
|
|
16
|
-
* session (a human at a shell) identity is undefined: the ping still gets
|
|
17
|
-
* short-shaping and ticket linkification, just no session crumb.
|
|
18
|
-
*/
|
|
19
1
|
import { composeBroadcastMessage } from './feed-broadcast.js';
|
|
20
2
|
import { resolvePostIdentity } from './feed-post.js';
|
|
21
3
|
import { getSessionById, resolveFullSessionId } from './session/db.js';
|
|
22
|
-
import { linearIssueUrl } from '
|
|
23
|
-
/**
|
|
24
|
-
* Resolve the run identity into the broadcast context an owner ping is built
|
|
25
|
-
* from — the shared shape a `feed post` uses. Pure except for the identity/index
|
|
26
|
-
* reads that {@link resolvePostIdentity} / {@link getSessionById} already perform
|
|
27
|
-
* for feed posts. Built ONCE so the owner fan-out can render it in more than one
|
|
28
|
-
* format (Slack vs iMessage) without re-walking the pid registry per destination.
|
|
29
|
-
*/
|
|
4
|
+
import { linearIssueUrl } from '@phnx-labs/sessions-cli/reader';
|
|
30
5
|
function ownerMessageContext(rawText, opts = {}) {
|
|
31
6
|
const identity = resolvePostIdentity({ sessionId: opts.sessionId });
|
|
32
|
-
// A footer crumb that would 404 (an 8-char short id) is upgraded to the full
|
|
33
|
-
// indexed id so the console URL resolves; a full/native id passes through.
|
|
34
7
|
const session = resolveFullSessionId(identity?.sessionId);
|
|
35
8
|
const ticket = session ? getSessionById(session)?.ticketId : undefined;
|
|
36
9
|
return {
|
|
@@ -43,21 +16,9 @@ function ownerMessageContext(rawText, opts = {}) {
|
|
|
43
16
|
...(session ? { session } : {}),
|
|
44
17
|
};
|
|
45
18
|
}
|
|
46
|
-
/**
|
|
47
|
-
* Shape a raw owner-send body into the composed broadcast message. `format`
|
|
48
|
-
* decides how links surface — `plain` (default) for iMessage / owner-scoped rush,
|
|
49
|
-
* `mrkdwn` for a Slack owner destination (PHNX-3698).
|
|
50
|
-
*/
|
|
51
19
|
export function composeOwnerMessage(rawText, opts = {}) {
|
|
52
20
|
return composeBroadcastMessage(ownerMessageContext(rawText, opts), opts.format ?? 'plain');
|
|
53
21
|
}
|
|
54
|
-
/**
|
|
55
|
-
* A per-format composer bound to ONE resolved context — the shape the owner
|
|
56
|
-
* fan-out wants (PHNX-3698). `agents send --to owner` build
|
|
57
|
-
* this once, use `compose('plain')` for the envelope's display body, and hand
|
|
58
|
-
* `compose` to `sendToOwner` so each policy destination re-renders in its own
|
|
59
|
-
* format without re-walking the pid registry.
|
|
60
|
-
*/
|
|
61
22
|
export function ownerMessageComposer(rawText, opts = {}) {
|
|
62
23
|
const ctx = ownerMessageContext(rawText, opts);
|
|
63
24
|
return (format) => composeBroadcastMessage(ctx, format);
|
|
@@ -1,37 +1,9 @@
|
|
|
1
|
-
/** The three harness homes a portable schema-v3 package can be materialized into. */
|
|
2
1
|
export declare const PORTABLE_HARNESSES: readonly ["claude", "codex", "opencode"];
|
|
3
2
|
type PortableHarness = (typeof PORTABLE_HARNESSES)[number];
|
|
4
|
-
/** Thrown for a bad front-door argument (harness / version / output home). Never `process.exit`. */
|
|
5
3
|
export declare class MaterializeGuardError extends Error {
|
|
6
4
|
constructor(message: string);
|
|
7
5
|
}
|
|
8
|
-
/** Reject a harness that is not one of the three portable homes, with a message naming it. */
|
|
9
6
|
export declare function assertPortableHarness(harness: string): PortableHarness;
|
|
10
|
-
/** Reject a non-exact harness version (empty, malformed, or `@latest`). */
|
|
11
7
|
export declare function assertExactHarnessVersion(version: string): string;
|
|
12
|
-
/**
|
|
13
|
-
* Resolve `--output-home` to an absolute path, refusing a target that climbs out
|
|
14
|
-
* of cwd (relative), uses a `..` segment, IS the live home root, or targets (or
|
|
15
|
-
* sits inside) an existing live Claude/Codex/OpenCode home — after canonicalizing
|
|
16
|
-
* symlinks in the existing ancestors so a symlinked target/ancestor can't alias
|
|
17
|
-
* `$HOME`. Every rejection carries a `Path escape:` prefix so callers surface one
|
|
18
|
-
* consistent reason.
|
|
19
|
-
*
|
|
20
|
-
* If any protected home is instead a DANGLING symlink or chain, the function
|
|
21
|
-
* fails closed and refuses EVERY output home (via {@link assertNoDanglingLiveHome}),
|
|
22
|
-
* because the absent target it points at has no canonical spelling to compare a
|
|
23
|
-
* candidate against and the materializer's first `mkdir -p` would follow the link
|
|
24
|
-
* and re-create the operator's live home there (PHNX-3838). The existing-home
|
|
25
|
-
* comparison uses a byte-exact `===` / `startsWith` on two `realpath`-canonical
|
|
26
|
-
* paths, which is exact filesystem identity — no approximation of the volume's
|
|
27
|
-
* case/Unicode collation, which an independent macOS review showed cannot be
|
|
28
|
-
* reproduced in JS from the path text.
|
|
29
|
-
*
|
|
30
|
-
* This is a front-door convenience guard. The load-bearing containment invariant
|
|
31
|
-
* (that no per-resource write/delete escapes the output home — including through
|
|
32
|
-
* a symlink planted at the harness-config-dir join point, which this function
|
|
33
|
-
* cannot see because the materializer forms that child itself) is enforced in
|
|
34
|
-
* `materializeAgentPackage`, so a direct (non-CLI) caller is protected too.
|
|
35
|
-
*/
|
|
36
8
|
export declare function resolveOutputHome(raw: string, cwd?: string, home?: string): string;
|
|
37
9
|
export {};
|
|
@@ -1,84 +1,33 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Front-door safety guard for `agents packages materialize` (PHNX-3838).
|
|
3
|
-
*
|
|
4
|
-
* The canonical materializer ({@link materializeAgentPackage} in
|
|
5
|
-
* `agent-spec/materialize.ts`) writes into whatever `outputHome` it is handed —
|
|
6
|
-
* that is its job, and it must stay destination-agnostic so Factory / Prix Cloud
|
|
7
|
-
* can point it at any ephemeral home. Refusing a *dangerous* destination is a
|
|
8
|
-
* CLI-front-door concern, not a materializer concern, so it lives here:
|
|
9
|
-
*
|
|
10
|
-
* - the target may not climb out of cwd (relative) or carry a `..` segment;
|
|
11
|
-
* - if any protected live harness home (`~/.claude`, `~/.codex`, `~/.opencode`)
|
|
12
|
-
* is a DANGLING symlink or dangling chain, EVERY output home is refused —
|
|
13
|
-
* fail closed (see {@link assertNoDanglingLiveHome});
|
|
14
|
-
* - the target may not be the operator's live home ROOT, nor — or sit inside —
|
|
15
|
-
* an EXISTING live `~/.claude`, `~/.codex`, or `~/.opencode` home;
|
|
16
|
-
* - the harness must be one of the three portable homes;
|
|
17
|
-
* - the harness version must be an exact version, never `@latest`.
|
|
18
|
-
*
|
|
19
|
-
* The live-home ROOT refusal is load-bearing: the materializer appends the
|
|
20
|
-
* harness config dir (`.claude`/`.codex`/`.opencode`) to `outputHome`, so an
|
|
21
|
-
* `outputHome` of `$HOME` itself would land straight in the operator's live
|
|
22
|
-
* `~/.claude`. And because a symlink (`outputHome` itself, or any ancestor)
|
|
23
|
-
* pointing at `$HOME` re-opens the same hole — `path.resolve` normalizes `..`
|
|
24
|
-
* but never follows links — the check canonicalizes the existing ancestors with
|
|
25
|
-
* `realpath` before comparing.
|
|
26
|
-
*
|
|
27
|
-
* Kept beside the command (not inside it) so the live-home refusal is
|
|
28
|
-
* unit-testable without spawning the whole CLI.
|
|
29
|
-
*/
|
|
30
1
|
import * as fs from 'fs';
|
|
31
2
|
import * as os from 'os';
|
|
32
3
|
import * as path from 'path';
|
|
33
4
|
import { assertWithin, realpathExistingPrefix } from '../paths.js';
|
|
34
5
|
import { VERSION_RE } from '../agent-spec/primitives.js';
|
|
35
|
-
/** The three harness homes a portable schema-v3 package can be materialized into. */
|
|
36
6
|
export const PORTABLE_HARNESSES = ['claude', 'codex', 'opencode'];
|
|
37
7
|
function isPortableHarness(value) {
|
|
38
8
|
return PORTABLE_HARNESSES.includes(value);
|
|
39
9
|
}
|
|
40
|
-
/** Thrown for a bad front-door argument (harness / version / output home). Never `process.exit`. */
|
|
41
10
|
export class MaterializeGuardError extends Error {
|
|
42
11
|
constructor(message) {
|
|
43
12
|
super(message);
|
|
44
13
|
this.name = 'MaterializeGuardError';
|
|
45
14
|
}
|
|
46
15
|
}
|
|
47
|
-
/** Reject a harness that is not one of the three portable homes, with a message naming it. */
|
|
48
16
|
export function assertPortableHarness(harness) {
|
|
49
17
|
if (!isPortableHarness(harness)) {
|
|
50
18
|
throw new MaterializeGuardError(`Unsupported capability: '${harness}' is not a portable-agent harness (${PORTABLE_HARNESSES.join(', ')}).`);
|
|
51
19
|
}
|
|
52
20
|
return harness;
|
|
53
21
|
}
|
|
54
|
-
/** Reject a non-exact harness version (empty, malformed, or `@latest`). */
|
|
55
22
|
export function assertExactHarnessVersion(version) {
|
|
56
23
|
if (!version || version === 'latest' || !VERSION_RE.test(version)) {
|
|
57
24
|
throw new MaterializeGuardError(`Invalid harness version '${version}'. Pass an exact harness version (not @latest).`);
|
|
58
25
|
}
|
|
59
26
|
return version;
|
|
60
27
|
}
|
|
61
|
-
/** True when `raw` still contains a `..` segment after splitting on both separators. */
|
|
62
28
|
function outputHomeHasDotDot(raw) {
|
|
63
29
|
return raw.split(/[\\/]/).includes('..');
|
|
64
30
|
}
|
|
65
|
-
/**
|
|
66
|
-
* The absolute path a DANGLING symlink chain ultimately points at, or `null`
|
|
67
|
-
* when `p` is not a symlink or its chain resolves to an existing file.
|
|
68
|
-
*
|
|
69
|
-
* `realpathExistingPrefix` deliberately does NOT follow a dangling LEAF link — it
|
|
70
|
-
* resolves the link's parent and re-appends the basename — so `~/.claude` → an
|
|
71
|
-
* absent target canonicalizes to the literal `~/.claude`, and the target itself
|
|
72
|
-
* sails past every containment compare. Yet the materializer's very first act is
|
|
73
|
-
* `fs.mkdirSync(outputHome, { recursive: true })`, which FOLLOWS that link and
|
|
74
|
-
* creates the target, re-pointing the operator's live `~/.claude` at the
|
|
75
|
-
* materialized tree. So the guard treats a dangling protected home as a fail-
|
|
76
|
-
* closed condition (see {@link assertNoDanglingLiveHome}). A live symlink (its
|
|
77
|
-
* target exists) resolves cleanly through `realpathExistingPrefix`, hence the
|
|
78
|
-
* `!fs.existsSync` gate returns `null` for it. Relative links resolve against
|
|
79
|
-
* each hop's own directory; a bounded hop budget defuses a symlink cycle
|
|
80
|
-
* (returning the best-effort endpoint, which still reads as dangling → refused).
|
|
81
|
-
*/
|
|
82
31
|
function danglingLinkChainTarget(p) {
|
|
83
32
|
let current = path.resolve(p);
|
|
84
33
|
let followed = false;
|
|
@@ -95,28 +44,6 @@ function danglingLinkChainTarget(p) {
|
|
|
95
44
|
}
|
|
96
45
|
return current;
|
|
97
46
|
}
|
|
98
|
-
/**
|
|
99
|
-
* Fail CLOSED when any protected live harness home (`~/.claude`, `~/.codex`,
|
|
100
|
-
* `~/.opencode`) is a DANGLING symlink or dangling symlink chain — refusing
|
|
101
|
-
* EVERY output home, not merely one that aliases the dangling target.
|
|
102
|
-
*
|
|
103
|
-
* Why refuse the whole operation instead of the aliasing path alone: the
|
|
104
|
-
* materializer's first act is `fs.mkdirSync(outputHome, { recursive: true })`,
|
|
105
|
-
* which FOLLOWS the link and creates its absent target, re-pointing the
|
|
106
|
-
* operator's live `~/.<harness>` at the materialized tree. To refuse only the
|
|
107
|
-
* aliasing output home we would have to decide whether the requested path and
|
|
108
|
-
* the dangling target name the SAME file — but the target does not exist, so it
|
|
109
|
-
* cannot be `realpath`'d, and its identity then depends on the destination
|
|
110
|
-
* volume's own case/Unicode collation, which is per-volume and NOT knowable from
|
|
111
|
-
* the path text. An independent macOS review confirmed this directly: NFC +
|
|
112
|
-
* `toLowerCase` is not APFS case folding (APFS treats e.g. U+017F ſ and ASCII `s`
|
|
113
|
-
* as identical, which `toLowerCase` does not), and an OS-derived case-sensitivity
|
|
114
|
-
* flag is wrong for per-volume semantics. Rather than approximate an unknowable
|
|
115
|
-
* collation, the guard refuses outright until the operator repairs the dangling
|
|
116
|
-
* home. A dangling protected home is an abnormal state, so this over-rejects
|
|
117
|
-
* nothing a healthy environment relies on; the EXISTING-home comparison stays
|
|
118
|
-
* exact because `realpath` gives it a trustworthy canonical spelling.
|
|
119
|
-
*/
|
|
120
47
|
function assertNoDanglingLiveHome(realHome) {
|
|
121
48
|
for (const name of PORTABLE_HARNESSES) {
|
|
122
49
|
if (danglingLinkChainTarget(path.join(realHome, `.${name}`)) !== null) {
|
|
@@ -125,49 +52,12 @@ function assertNoDanglingLiveHome(realHome) {
|
|
|
125
52
|
}
|
|
126
53
|
}
|
|
127
54
|
}
|
|
128
|
-
/**
|
|
129
|
-
* The canonical EXISTING live harness home to forbid, per harness: the
|
|
130
|
-
* `realpathExistingPrefix` of each `~/.<harness>`. For a live symlink this is the
|
|
131
|
-
* real on-disk target (so `--output-home ~/.claude` and its resolved dir both
|
|
132
|
-
* match); for a plain dir, or a home that does not exist at all, it is the
|
|
133
|
-
* literal `~/.<harness>` path. Because both this and the candidate output home
|
|
134
|
-
* are canonicalized with `realpath`, a byte-exact compare is exact filesystem
|
|
135
|
-
* identity — `realpath` returns the volume's own on-disk spelling, so two paths
|
|
136
|
-
* naming the same file collapse to the same string with no need to approximate
|
|
137
|
-
* the volume's case/Unicode collation. A DANGLING `~/.<harness>` never reaches
|
|
138
|
-
* here: {@link assertNoDanglingLiveHome} fails closed first, precisely because
|
|
139
|
-
* its absent target has no realpath-canonical spelling to compare against.
|
|
140
|
-
*/
|
|
141
55
|
function liveHarnessHomes(realHome) {
|
|
142
56
|
return PORTABLE_HARNESSES.map((name) => ({
|
|
143
57
|
harness: name,
|
|
144
58
|
live: realpathExistingPrefix(path.join(realHome, `.${name}`)),
|
|
145
59
|
}));
|
|
146
60
|
}
|
|
147
|
-
/**
|
|
148
|
-
* Resolve `--output-home` to an absolute path, refusing a target that climbs out
|
|
149
|
-
* of cwd (relative), uses a `..` segment, IS the live home root, or targets (or
|
|
150
|
-
* sits inside) an existing live Claude/Codex/OpenCode home — after canonicalizing
|
|
151
|
-
* symlinks in the existing ancestors so a symlinked target/ancestor can't alias
|
|
152
|
-
* `$HOME`. Every rejection carries a `Path escape:` prefix so callers surface one
|
|
153
|
-
* consistent reason.
|
|
154
|
-
*
|
|
155
|
-
* If any protected home is instead a DANGLING symlink or chain, the function
|
|
156
|
-
* fails closed and refuses EVERY output home (via {@link assertNoDanglingLiveHome}),
|
|
157
|
-
* because the absent target it points at has no canonical spelling to compare a
|
|
158
|
-
* candidate against and the materializer's first `mkdir -p` would follow the link
|
|
159
|
-
* and re-create the operator's live home there (PHNX-3838). The existing-home
|
|
160
|
-
* comparison uses a byte-exact `===` / `startsWith` on two `realpath`-canonical
|
|
161
|
-
* paths, which is exact filesystem identity — no approximation of the volume's
|
|
162
|
-
* case/Unicode collation, which an independent macOS review showed cannot be
|
|
163
|
-
* reproduced in JS from the path text.
|
|
164
|
-
*
|
|
165
|
-
* This is a front-door convenience guard. The load-bearing containment invariant
|
|
166
|
-
* (that no per-resource write/delete escapes the output home — including through
|
|
167
|
-
* a symlink planted at the harness-config-dir join point, which this function
|
|
168
|
-
* cannot see because the materializer forms that child itself) is enforced in
|
|
169
|
-
* `materializeAgentPackage`, so a direct (non-CLI) caller is protected too.
|
|
170
|
-
*/
|
|
171
61
|
export function resolveOutputHome(raw, cwd = process.cwd(), home = os.homedir()) {
|
|
172
62
|
if (!raw || raw.includes('\0')) {
|
|
173
63
|
throw new MaterializeGuardError('Path escape: output home is empty or contains a null byte');
|
|
@@ -186,11 +76,7 @@ export function resolveOutputHome(raw, cwd = process.cwd(), home = os.homedir())
|
|
|
186
76
|
}
|
|
187
77
|
const canonical = realpathExistingPrefix(resolved);
|
|
188
78
|
const realHome = realpathExistingPrefix(home);
|
|
189
|
-
// Fail closed first: a dangling protected home makes EVERY output home unsafe,
|
|
190
|
-
// and its absent target has no realpath-canonical spelling to compare against.
|
|
191
79
|
assertNoDanglingLiveHome(realHome);
|
|
192
|
-
// The materializer appends the harness config dir to outputHome, so the live
|
|
193
|
-
// home ROOT would write straight into ~/.claude etc.
|
|
194
80
|
if (canonical === realHome) {
|
|
195
81
|
throw new MaterializeGuardError('Path escape: output home must not be the live home directory');
|
|
196
82
|
}
|
package/dist/lib/paths.d.ts
CHANGED
|
@@ -1,30 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Canonicalize `target` by `realpath`-resolving its longest EXISTING ancestor and
|
|
3
|
-
* re-appending the not-yet-created tail. A plain `realpathSync(target)` throws when
|
|
4
|
-
* `target` (a fresh output dir, a not-yet-written file) does not exist — but any
|
|
5
|
-
* symlink in the part that DOES exist (the target itself, or an ancestor) is
|
|
6
|
-
* exactly the escape hatch a containment check must resolve before comparing.
|
|
7
|
-
* Unlike `path.resolve` (which only normalizes `..`), this follows links.
|
|
8
|
-
*/
|
|
9
1
|
export declare function realpathExistingPrefix(target: string): string;
|
|
10
|
-
/**
|
|
11
|
-
* True when `name` is a safe single path segment: non-empty, not '.'/'..',
|
|
12
|
-
* free of path separators and null bytes, and within the filename length limit.
|
|
13
|
-
* Dot-prefixed names like '.env.example' are allowed.
|
|
14
|
-
*/
|
|
15
2
|
export declare function isSafeSegmentName(name: string): boolean;
|
|
16
|
-
/**
|
|
17
|
-
* Resolve base + name while preventing path-traversal attacks.
|
|
18
|
-
* Rejects path separators, null bytes, '.' and '..', and any resolved path
|
|
19
|
-
* that escapes the base directory. Dot-prefixed names like '.env.example'
|
|
20
|
-
* are allowed — actual traversal is caught by the containment check below.
|
|
21
|
-
* Allows spaces, unicode, and other common filename characters.
|
|
22
|
-
*/
|
|
23
3
|
export declare function safeJoin(base: string, name: string): string;
|
|
24
|
-
/**
|
|
25
|
-
* Assert that `target` (which may legitimately contain path separators, e.g. a
|
|
26
|
-
* multi-segment relative key) stays within `root` after normalization. Use this
|
|
27
|
-
* where a caller must accept nested relative paths but the input is untrusted —
|
|
28
|
-
* `safeJoin` is stricter and only allows single segments.
|
|
29
|
-
*/
|
|
30
4
|
export declare function assertWithin(root: string, target: string): string;
|
package/dist/lib/paths.js
CHANGED
|
@@ -1,13 +1,5 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
2
|
import * as path from 'path';
|
|
3
|
-
/**
|
|
4
|
-
* Canonicalize `target` by `realpath`-resolving its longest EXISTING ancestor and
|
|
5
|
-
* re-appending the not-yet-created tail. A plain `realpathSync(target)` throws when
|
|
6
|
-
* `target` (a fresh output dir, a not-yet-written file) does not exist — but any
|
|
7
|
-
* symlink in the part that DOES exist (the target itself, or an ancestor) is
|
|
8
|
-
* exactly the escape hatch a containment check must resolve before comparing.
|
|
9
|
-
* Unlike `path.resolve` (which only normalizes `..`), this follows links.
|
|
10
|
-
*/
|
|
11
3
|
export function realpathExistingPrefix(target) {
|
|
12
4
|
let current = path.resolve(target);
|
|
13
5
|
const tail = [];
|
|
@@ -19,30 +11,18 @@ export function realpathExistingPrefix(target) {
|
|
|
19
11
|
catch {
|
|
20
12
|
const parent = path.dirname(current);
|
|
21
13
|
if (parent === current)
|
|
22
|
-
return path.resolve(target);
|
|
14
|
+
return path.resolve(target);
|
|
23
15
|
tail.push(path.basename(current));
|
|
24
16
|
current = parent;
|
|
25
17
|
}
|
|
26
18
|
}
|
|
27
19
|
}
|
|
28
|
-
/**
|
|
29
|
-
* True when `name` is a safe single path segment: non-empty, not '.'/'..',
|
|
30
|
-
* free of path separators and null bytes, and within the filename length limit.
|
|
31
|
-
* Dot-prefixed names like '.env.example' are allowed.
|
|
32
|
-
*/
|
|
33
20
|
export function isSafeSegmentName(name) {
|
|
34
21
|
return (!!name &&
|
|
35
22
|
name !== '.' && name !== '..' &&
|
|
36
23
|
!/[\/\\\x00]/.test(name) &&
|
|
37
24
|
name.length <= 255);
|
|
38
25
|
}
|
|
39
|
-
/**
|
|
40
|
-
* Resolve base + name while preventing path-traversal attacks.
|
|
41
|
-
* Rejects path separators, null bytes, '.' and '..', and any resolved path
|
|
42
|
-
* that escapes the base directory. Dot-prefixed names like '.env.example'
|
|
43
|
-
* are allowed — actual traversal is caught by the containment check below.
|
|
44
|
-
* Allows spaces, unicode, and other common filename characters.
|
|
45
|
-
*/
|
|
46
26
|
export function safeJoin(base, name) {
|
|
47
27
|
if (!isSafeSegmentName(name)) {
|
|
48
28
|
throw new Error(`Invalid name: ${name}`);
|
|
@@ -52,12 +32,6 @@ export function safeJoin(base, name) {
|
|
|
52
32
|
throw new Error(`Path escape: ${name}`);
|
|
53
33
|
return resolved;
|
|
54
34
|
}
|
|
55
|
-
/**
|
|
56
|
-
* Assert that `target` (which may legitimately contain path separators, e.g. a
|
|
57
|
-
* multi-segment relative key) stays within `root` after normalization. Use this
|
|
58
|
-
* where a caller must accept nested relative paths but the input is untrusted —
|
|
59
|
-
* `safeJoin` is stricter and only allows single segments.
|
|
60
|
-
*/
|
|
61
35
|
export function assertWithin(root, target) {
|
|
62
36
|
const base = path.resolve(root);
|
|
63
37
|
const resolved = path.resolve(target);
|
package/dist/lib/percentile.d.ts
CHANGED
|
@@ -1,12 +1 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Percentile of a sorted-ascending array, linear interpolation. p in [0,100].
|
|
3
|
-
*
|
|
4
|
-
* Deliberately its own file with zero imports: `perf/db.ts` (the SQLite
|
|
5
|
-
* warehouse), `hooks/profile.ts` (the legacy JSONL hook profile), and
|
|
6
|
-
* `routines.ts` (routineStats) all need this exact formula, but `routines.ts`
|
|
7
|
-
* and `hooks/profile.ts` must NOT pull in `perf/db.ts`'s `../sqlite.js`
|
|
8
|
-
* dependency just to round a percentile — sqlite is a heavier, perf-warehouse-
|
|
9
|
-
* specific dependency that has no business loading into every routines- or
|
|
10
|
-
* hooks-touching code path.
|
|
11
|
-
*/
|
|
12
1
|
export declare function percentile(sorted: number[], p: number): number;
|
package/dist/lib/percentile.js
CHANGED
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Percentile of a sorted-ascending array, linear interpolation. p in [0,100].
|
|
3
|
-
*
|
|
4
|
-
* Deliberately its own file with zero imports: `perf/db.ts` (the SQLite
|
|
5
|
-
* warehouse), `hooks/profile.ts` (the legacy JSONL hook profile), and
|
|
6
|
-
* `routines.ts` (routineStats) all need this exact formula, but `routines.ts`
|
|
7
|
-
* and `hooks/profile.ts` must NOT pull in `perf/db.ts`'s `../sqlite.js`
|
|
8
|
-
* dependency just to round a percentile — sqlite is a heavier, perf-warehouse-
|
|
9
|
-
* specific dependency that has no business loading into every routines- or
|
|
10
|
-
* hooks-touching code path.
|
|
11
|
-
*/
|
|
12
1
|
export function percentile(sorted, p) {
|
|
13
2
|
if (sorted.length === 0)
|
|
14
3
|
return 0;
|
package/dist/lib/perf/db.d.ts
CHANGED
|
@@ -1,27 +1,11 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Disposable performance warehouse — SQLite under ~/.agents/.cache/perf/.
|
|
3
|
-
*
|
|
4
|
-
* Opened only by `agents insights perf` / `hooks profile` (read path). Writers use
|
|
5
|
-
* {@link recordSample} in `./spool.ts` (NDJSON, no SQLite).
|
|
6
|
-
*/
|
|
7
1
|
import Database from '../sqlite.js';
|
|
8
2
|
import type { AggregateOptions, PerfAggregateRow } from './types.js';
|
|
9
3
|
export type { AggregateOptions, PerfAggregateRow, PerfPhaseStat, PerfSample } from './types.js';
|
|
10
4
|
export { recordSample, shortSessionId, resolveSpoolPath } from './spool.js';
|
|
11
5
|
export { percentile } from '../percentile.js';
|
|
12
6
|
export declare const DEFAULT_RETENTION_DAYS = 30;
|
|
13
|
-
/** Test seam — redirect the warehouse path (like AGENTS_EVENTS_PATH). */
|
|
14
7
|
export declare function _resetPerfDbForTest(overridePath?: string | null): void;
|
|
15
|
-
/** Drain the NDJSON spool into samples. Idempotent; truncates on success. */
|
|
16
8
|
export declare function drainSpool(db?: Database.Database): number;
|
|
17
|
-
/**
|
|
18
|
-
* Aggregate samples by (kind, label) with p50/p95/p99. Drains the spool first.
|
|
19
|
-
*
|
|
20
|
-
* `opts.project` scopes the query to samples whose recorded `cwd` resolves to
|
|
21
|
-
* that project key (see project-key.ts) — resolution runs per unique cwd
|
|
22
|
-
* (memoized) rather than per row, since `resolveProjectKey` does a filesystem
|
|
23
|
-
* walk and a warehouse query can carry many rows sharing the same cwd.
|
|
24
|
-
*/
|
|
25
9
|
export declare function aggregateSamples(opts?: AggregateOptions): PerfAggregateRow[];
|
|
26
10
|
export declare function perfDbPath(): string;
|
|
27
11
|
export declare function perfSpoolPath(): string;
|
package/dist/lib/perf/db.js
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Disposable performance warehouse — SQLite under ~/.agents/.cache/perf/.
|
|
3
|
-
*
|
|
4
|
-
* Opened only by `agents insights perf` / `hooks profile` (read path). Writers use
|
|
5
|
-
* {@link recordSample} in `./spool.ts` (NDJSON, no SQLite).
|
|
6
|
-
*/
|
|
7
1
|
import * as fs from 'fs';
|
|
8
2
|
import * as path from 'path';
|
|
9
3
|
import Database from '../sqlite.js';
|
|
@@ -12,11 +6,6 @@ import { localMachineId } from '../origin-machine.js';
|
|
|
12
6
|
import { resolveProjectKey } from '../project-key.js';
|
|
13
7
|
import { percentile } from '../percentile.js';
|
|
14
8
|
import { resolveSpoolPath, shortSessionId, _resetPerfSpoolForTest } from './spool.js';
|
|
15
|
-
/**
|
|
16
|
-
* Parse the `phases` map from a sample's meta_json. Fail-soft: a row with no
|
|
17
|
-
* meta_json, malformed JSON, or a non-numeric phase value contributes nothing
|
|
18
|
-
* rather than throwing (the warehouse must survive any writer's shape).
|
|
19
|
-
*/
|
|
20
9
|
function parsePhases(metaJson) {
|
|
21
10
|
if (!metaJson)
|
|
22
11
|
return undefined;
|
|
@@ -74,13 +63,12 @@ CREATE TABLE IF NOT EXISTS meta (
|
|
|
74
63
|
let _db = null;
|
|
75
64
|
let _dbPath = null;
|
|
76
65
|
let _disabled = false;
|
|
77
|
-
/** Test seam — redirect the warehouse path (like AGENTS_EVENTS_PATH). */
|
|
78
66
|
export function _resetPerfDbForTest(overridePath) {
|
|
79
67
|
if (_db) {
|
|
80
68
|
try {
|
|
81
69
|
_db.close();
|
|
82
70
|
}
|
|
83
|
-
catch {
|
|
71
|
+
catch { }
|
|
84
72
|
}
|
|
85
73
|
_db = null;
|
|
86
74
|
_dbPath = overridePath === undefined ? null : overridePath;
|
|
@@ -111,7 +99,7 @@ function openDb() {
|
|
|
111
99
|
try {
|
|
112
100
|
_db.close();
|
|
113
101
|
}
|
|
114
|
-
catch {
|
|
102
|
+
catch { }
|
|
115
103
|
_db = null;
|
|
116
104
|
}
|
|
117
105
|
try {
|
|
@@ -136,7 +124,6 @@ function openDb() {
|
|
|
136
124
|
return null;
|
|
137
125
|
}
|
|
138
126
|
}
|
|
139
|
-
/** Drain the NDJSON spool into samples. Idempotent; truncates on success. */
|
|
140
127
|
export function drainSpool(db) {
|
|
141
128
|
const spool = resolveSpoolPath();
|
|
142
129
|
if (!fs.existsSync(spool))
|
|
@@ -152,7 +139,7 @@ export function drainSpool(db) {
|
|
|
152
139
|
try {
|
|
153
140
|
fs.writeFileSync(spool, '');
|
|
154
141
|
}
|
|
155
|
-
catch {
|
|
142
|
+
catch { }
|
|
156
143
|
return 0;
|
|
157
144
|
}
|
|
158
145
|
const target = db ?? openDb();
|
|
@@ -210,17 +197,8 @@ function maybeRetain(db) {
|
|
|
210
197
|
db.prepare(`INSERT OR REPLACE INTO meta(key, value) VALUES ('last_retain_ms', ?)`).run(String(now));
|
|
211
198
|
}
|
|
212
199
|
catch {
|
|
213
|
-
// ignore
|
|
214
200
|
}
|
|
215
201
|
}
|
|
216
|
-
/**
|
|
217
|
-
* Aggregate samples by (kind, label) with p50/p95/p99. Drains the spool first.
|
|
218
|
-
*
|
|
219
|
-
* `opts.project` scopes the query to samples whose recorded `cwd` resolves to
|
|
220
|
-
* that project key (see project-key.ts) — resolution runs per unique cwd
|
|
221
|
-
* (memoized) rather than per row, since `resolveProjectKey` does a filesystem
|
|
222
|
-
* walk and a warehouse query can carry many rows sharing the same cwd.
|
|
223
|
-
*/
|
|
224
202
|
export function aggregateSamples(opts = {}) {
|
|
225
203
|
const db = openDb();
|
|
226
204
|
if (!db)
|
|
@@ -249,8 +227,6 @@ export function aggregateSamples(opts = {}) {
|
|
|
249
227
|
}
|
|
250
228
|
const rows = db.prepare(`SELECT kind, label, duration_ms, cache, exit_code, status, cwd, meta_json
|
|
251
229
|
FROM samples WHERE ${clauses.join(' AND ')}`).all(...params);
|
|
252
|
-
// Memoize cwd -> project key: resolveProjectKey walks the filesystem for
|
|
253
|
-
// a repo root, and many rows in one warehouse query share the same cwd.
|
|
254
230
|
const projectCache = new Map();
|
|
255
231
|
const projectForCwd = (cwd) => {
|
|
256
232
|
if (!cwd)
|
|
@@ -290,11 +266,6 @@ export function aggregateSamples(opts = {}) {
|
|
|
290
266
|
b.stale++;
|
|
291
267
|
else if (r.cache === 'miss' || r.cache === 'none')
|
|
292
268
|
b.misses++;
|
|
293
|
-
// Exit classes (Claude/Codex PreToolUse convention):
|
|
294
|
-
// 0 → allowed
|
|
295
|
-
// 2 → intentional deny/block (not a crash)
|
|
296
|
-
// 1 / other nonzero → real error
|
|
297
|
-
// Timeouts are recorded via status, not exit_code, so they don't double-count.
|
|
298
269
|
if (r.status === 'timeout')
|
|
299
270
|
b.timeouts++;
|
|
300
271
|
else if (typeof r.exit_code === 'number') {
|