@phnx-labs/agents-cli 1.22.119 → 1.22.121
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +236 -0
- package/README.md +19 -2
- package/dist/bootstrap.d.ts +0 -15
- package/dist/bootstrap.js +10 -409
- package/dist/cli/command-registry.d.ts +0 -58
- package/dist/cli/command-registry.js +2 -74
- package/dist/commands/accounts.d.ts +0 -17
- package/dist/commands/accounts.js +1 -52
- package/dist/commands/alias.d.ts +0 -12
- package/dist/commands/alias.js +0 -6
- package/dist/commands/apply.d.ts +0 -15
- package/dist/commands/apply.js +0 -63
- package/dist/commands/audit.d.ts +0 -12
- package/dist/commands/audit.js +0 -13
- package/dist/commands/auth.js +4 -12
- package/dist/commands/beta.d.ts +0 -6
- package/dist/commands/beta.js +2 -6
- package/dist/commands/browser-sessions-picker.d.ts +0 -8
- package/dist/commands/browser-sessions-picker.js +0 -26
- package/dist/commands/browser.d.ts +0 -57
- package/dist/commands/browser.js +0 -80
- package/dist/commands/budget.d.ts +0 -13
- package/dist/commands/budget.js +0 -2
- package/dist/commands/cli.d.ts +0 -12
- package/dist/commands/cli.js +0 -4
- package/dist/commands/cloud.d.ts +0 -9
- package/dist/commands/cloud.js +0 -43
- package/dist/commands/commands.d.ts +0 -9
- package/dist/commands/commands.js +0 -18
- package/dist/commands/computer-sessions-picker.d.ts +0 -11
- package/dist/commands/computer-sessions-picker.js +0 -29
- package/dist/commands/computer.d.ts +0 -62
- package/dist/commands/computer.js +3 -114
- package/dist/commands/config.d.ts +0 -14
- package/dist/commands/config.js +21 -60
- package/dist/commands/cost.d.ts +0 -11
- package/dist/commands/cost.js +1 -17
- package/dist/commands/daemon-test-harness.d.ts +0 -32
- package/dist/commands/daemon-test-harness.js +1 -36
- package/dist/commands/daemon.d.ts +0 -46
- package/dist/commands/daemon.js +8 -255
- package/dist/commands/detach-core.d.ts +0 -28
- package/dist/commands/detach-core.js +0 -30
- package/dist/commands/detach.d.ts +1 -12
- package/dist/commands/detach.js +16 -52
- package/dist/commands/device-config-test-harness.js +0 -12
- package/dist/commands/doctor.d.ts +0 -103
- package/dist/commands/doctor.js +3 -279
- package/dist/commands/events.d.ts +0 -29
- package/dist/commands/events.js +1 -55
- package/dist/commands/exec.d.ts +0 -163
- package/dist/commands/exec.js +15 -964
- package/dist/commands/factory.d.ts +0 -6
- package/dist/commands/factory.js +0 -2
- package/dist/commands/feed-watch.js +0 -20
- package/dist/commands/feed.d.ts +0 -38
- package/dist/commands/feed.js +1 -151
- package/dist/commands/feedback.d.ts +0 -5
- package/dist/commands/feedback.js +0 -5
- package/dist/commands/fleet-capture.d.ts +0 -12
- package/dist/commands/fleet-capture.js +1 -39
- package/dist/commands/focus.d.ts +6 -94
- package/dist/commands/focus.js +13 -183
- package/dist/commands/fork.d.ts +0 -21
- package/dist/commands/fork.js +0 -45
- package/dist/commands/funnel.d.ts +0 -3
- package/dist/commands/go.d.ts +2 -71
- package/dist/commands/go.js +5 -99
- package/dist/commands/harness-hooks.d.ts +0 -41
- package/dist/commands/harness-hooks.js +0 -48
- package/dist/commands/harness-wizard.d.ts +0 -137
- package/dist/commands/harness-wizard.js +0 -109
- package/dist/commands/harness.d.ts +0 -63
- package/dist/commands/harness.js +0 -103
- package/dist/commands/hooks.d.ts +0 -9
- package/dist/commands/hooks.js +0 -26
- package/dist/commands/humans.d.ts +0 -8
- package/dist/commands/humans.js +0 -8
- package/dist/commands/import.d.ts +0 -22
- package/dist/commands/import.js +0 -79
- package/dist/commands/insights.d.ts +0 -37
- package/dist/commands/insights.js +3 -115
- package/dist/commands/inspect.d.ts +0 -117
- package/dist/commands/inspect.js +2 -448
- package/dist/commands/lease.d.ts +0 -28
- package/dist/commands/lease.js +0 -43
- package/dist/commands/logs.d.ts +0 -23
- package/dist/commands/logs.js +0 -30
- package/dist/commands/mailboxes.d.ts +0 -18
- package/dist/commands/mailboxes.js +0 -29
- package/dist/commands/mcp.d.ts +0 -9
- package/dist/commands/mcp.js +0 -53
- package/dist/commands/memory.d.ts +0 -7
- package/dist/commands/memory.js +0 -7
- package/dist/commands/menubar.d.ts +0 -8
- package/dist/commands/menubar.js +0 -24
- package/dist/commands/message.d.ts +0 -23
- package/dist/commands/message.js +0 -50
- package/dist/commands/mine.d.ts +0 -22
- package/dist/commands/mine.js +0 -21
- package/dist/commands/models.d.ts +0 -8
- package/dist/commands/models.js +0 -33
- package/dist/commands/modes.d.ts +0 -10
- package/dist/commands/modes.js +0 -13
- package/dist/commands/monitors.d.ts +0 -9
- package/dist/commands/monitors.js +3 -160
- package/dist/commands/open.d.ts +0 -26
- package/dist/commands/open.js +0 -10
- package/dist/commands/output.d.ts +0 -18
- package/dist/commands/output.js +1 -34
- package/dist/commands/packages-materialize.d.ts +0 -11
- package/dist/commands/packages-materialize.js +0 -3
- package/dist/commands/packages.d.ts +0 -10
- package/dist/commands/packages.js +0 -50
- package/dist/commands/perf.d.ts +0 -41
- package/dist/commands/perf.js +0 -55
- package/dist/commands/permissions.d.ts +0 -9
- package/dist/commands/permissions.js +0 -43
- package/dist/commands/plugins.d.ts +0 -14
- package/dist/commands/plugins.js +2 -55
- package/dist/commands/profiles.d.ts +0 -25
- package/dist/commands/profiles.js +0 -27
- package/dist/commands/projects-todo.d.ts +2 -0
- package/dist/commands/projects-todo.js +132 -0
- package/dist/commands/projects.d.ts +0 -85
- package/dist/commands/projects.js +344 -291
- package/dist/commands/prune.js +0 -30
- package/dist/commands/ps-roster.d.ts +92 -0
- package/dist/commands/ps-roster.js +744 -0
- package/dist/commands/ps.d.ts +6 -0
- package/dist/commands/ps.js +98 -0
- package/dist/commands/refresh-rules.d.ts +0 -13
- package/dist/commands/refresh-rules.js +0 -14
- package/dist/commands/reminders.d.ts +0 -7
- package/dist/commands/repo.d.ts +0 -89
- package/dist/commands/repo.js +7 -205
- package/dist/commands/resource-view.d.ts +0 -33
- package/dist/commands/resource-view.js +0 -49
- package/dist/commands/resume.d.ts +1 -19
- package/dist/commands/resume.js +0 -50
- package/dist/commands/route.d.ts +0 -10
- package/dist/commands/route.js +0 -19
- package/dist/commands/routines.d.ts +0 -42
- package/dist/commands/routines.js +5 -290
- package/dist/commands/routines.test-fixture.d.ts +0 -34
- package/dist/commands/routines.test-fixture.js +4 -100
- package/dist/commands/rules.d.ts +0 -9
- package/dist/commands/rules.js +1 -6
- package/dist/commands/run-account-picker.d.ts +0 -59
- package/dist/commands/run-account-picker.js +0 -71
- package/dist/commands/run-broadcast.d.ts +0 -9
- package/dist/commands/run-broadcast.js +0 -7
- package/dist/commands/run-cloud.d.ts +0 -15
- package/dist/commands/run-cloud.js +0 -37
- package/dist/commands/run-device-picker.d.ts +0 -25
- package/dist/commands/run-device-picker.js +1 -53
- package/dist/commands/secrets-passthrough.d.ts +0 -31
- package/dist/commands/secrets-passthrough.js +0 -10
- package/dist/commands/send.d.ts +0 -20
- package/dist/commands/send.js +14 -18
- package/dist/commands/sessions-backfill.d.ts +0 -7
- package/dist/commands/sessions-backfill.js +1 -16
- package/dist/commands/sessions-backup-setup.js +0 -11
- package/dist/commands/sessions-bookmark.d.ts +0 -8
- package/dist/commands/sessions-bookmark.js +0 -28
- package/dist/commands/sessions-browser.d.ts +2 -117
- package/dist/commands/sessions-browser.js +5 -243
- package/dist/commands/sessions-export.d.ts +1 -26
- package/dist/commands/sessions-export.js +3 -81
- package/dist/commands/sessions-import.d.ts +0 -14
- package/dist/commands/sessions-import.js +0 -59
- package/dist/commands/sessions-inject.d.ts +0 -60
- package/dist/commands/sessions-inject.js +3 -96
- package/dist/commands/sessions-migrate.d.ts +2 -37
- package/dist/commands/sessions-migrate.js +7 -159
- package/dist/commands/sessions-optimize.d.ts +0 -12
- package/dist/commands/sessions-picker-factory.d.ts +0 -7
- package/dist/commands/sessions-picker-factory.js +0 -8
- package/dist/commands/sessions-picker.d.ts +4 -103
- package/dist/commands/sessions-picker.js +13 -352
- package/dist/commands/sessions-render.d.ts +1 -2
- package/dist/commands/sessions-render.js +3 -7
- package/dist/commands/sessions-resume.d.ts +1 -24
- package/dist/commands/sessions-resume.js +2 -65
- package/dist/commands/sessions-share.d.ts +1 -9
- package/dist/commands/sessions-share.js +1 -45
- package/dist/commands/sessions-stats.d.ts +0 -24
- package/dist/commands/sessions-stats.js +0 -49
- package/dist/commands/sessions-stop.d.ts +1 -20
- package/dist/commands/sessions-stop.js +4 -9
- package/dist/commands/sessions-tail.d.ts +1 -19
- package/dist/commands/sessions-tail.js +3 -36
- package/dist/commands/sessions-trace.d.ts +5 -36
- package/dist/commands/sessions-trace.js +7 -82
- package/dist/commands/sessions.d.ts +1 -666
- package/dist/commands/sessions.js +30 -2279
- package/dist/commands/sessions.test-fixture.d.ts +0 -9
- package/dist/commands/sessions.test-fixture.js +8 -23
- package/dist/commands/setup-accounts.d.ts +0 -6
- package/dist/commands/setup-browser.d.ts +0 -23
- package/dist/commands/setup-browser.js +0 -28
- package/dist/commands/setup-computer.d.ts +0 -16
- package/dist/commands/setup-computer.js +0 -28
- package/dist/commands/setup-fleet.d.ts +0 -8
- package/dist/commands/setup-fleet.js +0 -11
- package/dist/commands/setup-mine.d.ts +0 -14
- package/dist/commands/setup-mine.js +0 -25
- package/dist/commands/setup-preferences.d.ts +0 -47
- package/dist/commands/setup-preferences.js +0 -53
- package/dist/commands/setup-secrets.d.ts +2 -24
- package/dist/commands/setup-secrets.js +0 -24
- package/dist/commands/setup-term.d.ts +0 -21
- package/dist/commands/setup-term.js +0 -21
- package/dist/commands/setup-terminal.d.ts +0 -1
- package/dist/commands/setup-terminal.js +0 -1
- package/dist/commands/setup-tools.d.ts +2 -0
- package/dist/commands/setup-tools.js +73 -0
- package/dist/commands/setup.d.ts +0 -20
- package/dist/commands/setup.js +4 -57
- package/dist/commands/skills.d.ts +0 -9
- package/dist/commands/skills.js +1 -22
- package/dist/commands/snapshot.d.ts +0 -9
- package/dist/commands/snapshot.js +0 -10
- package/dist/commands/ssh.d.ts +0 -64
- package/dist/commands/ssh.js +9 -420
- package/dist/commands/status.d.ts +0 -12
- package/dist/commands/status.js +0 -26
- package/dist/commands/subagents.d.ts +0 -8
- package/dist/commands/subagents.js +0 -31
- package/dist/commands/sync.d.ts +0 -37
- package/dist/commands/sync.js +0 -256
- package/dist/commands/teams-picker.d.ts +0 -3
- package/dist/commands/teams-picker.js +0 -34
- package/dist/commands/teams.d.ts +1 -76
- package/dist/commands/teams.js +9 -477
- package/dist/commands/tmux.d.ts +0 -25
- package/dist/commands/tmux.js +0 -46
- package/dist/commands/traces.js +0 -19
- package/dist/commands/trash.d.ts +0 -17
- package/dist/commands/trash.js +1 -11
- package/dist/commands/uninstall.d.ts +0 -9
- package/dist/commands/uninstall.js +0 -6
- package/dist/commands/update.d.ts +0 -22
- package/dist/commands/update.js +0 -44
- package/dist/commands/upgrade.d.ts +0 -1
- package/dist/commands/upgrade.js +0 -1
- package/dist/commands/utils.d.ts +0 -85
- package/dist/commands/utils.js +1 -95
- package/dist/commands/versions.d.ts +0 -16
- package/dist/commands/versions.js +0 -134
- package/dist/commands/view.d.ts +0 -90
- package/dist/commands/view.js +4 -343
- package/dist/commands/watchdog.d.ts +0 -19
- package/dist/commands/watchdog.js +3 -43
- package/dist/commands/webhook.d.ts +0 -8
- package/dist/commands/webhook.js +0 -14
- package/dist/commands/workflows.d.ts +0 -8
- package/dist/commands/workflows.js +0 -6
- package/dist/index.d.ts +0 -25
- package/dist/index.js +5 -119
- package/dist/lib/account-capabilities.d.ts +0 -34
- package/dist/lib/account-capabilities.js +0 -32
- package/dist/lib/account-catalog.d.ts +0 -128
- package/dist/lib/account-catalog.js +8 -154
- package/dist/lib/account-provider-registry.d.ts +0 -14
- package/dist/lib/account-provider-registry.js +0 -8
- package/dist/lib/account-registry.d.ts +0 -74
- package/dist/lib/account-registry.js +14 -189
- package/dist/lib/account-schema.d.ts +0 -19
- package/dist/lib/account-schema.js +0 -43
- package/dist/lib/accounting/account-launch.d.ts +0 -15
- package/dist/lib/accounting/account-launch.js +1 -3
- package/dist/lib/accounting/account-pool-collect.d.ts +0 -26
- package/dist/lib/accounting/account-pool-collect.js +0 -42
- package/dist/lib/accounting/account-pool.d.ts +0 -41
- package/dist/lib/accounting/account-pool.js +0 -17
- package/dist/lib/accounting/capacity.d.ts +0 -32
- package/dist/lib/accounting/capacity.js +0 -32
- package/dist/lib/accounting/rotate.d.ts +0 -518
- package/dist/lib/accounting/rotate.js +4 -598
- package/dist/lib/accounting/usage-ingest.d.ts +0 -1
- package/dist/lib/accounting/usage-ingest.js +0 -44
- package/dist/lib/accounting/usage-sync.d.ts +0 -60
- package/dist/lib/accounting/usage-sync.js +4 -51
- package/dist/lib/accounting/usage.d.ts +0 -632
- package/dist/lib/accounting/usage.js +14 -1055
- package/dist/lib/accounts/add.d.ts +0 -60
- package/dist/lib/accounts/add.js +0 -127
- package/dist/lib/accounts/auth-operation-lock.d.ts +0 -1
- package/dist/lib/accounts/auth-operation-lock.js +0 -4
- package/dist/lib/accounts/migrate.d.ts +0 -9
- package/dist/lib/accounts/migrate.js +3 -42
- package/dist/lib/accounts/slots.d.ts +0 -25
- package/dist/lib/accounts/slots.js +1 -49
- package/dist/lib/acp/client.d.ts +0 -16
- package/dist/lib/acp/client.js +0 -29
- package/dist/lib/acp/harnesses.d.ts +0 -15
- package/dist/lib/acp/harnesses.js +0 -16
- package/dist/lib/acp/run.d.ts +0 -8
- package/dist/lib/acp/run.js +0 -8
- package/dist/lib/actor.d.ts +1 -71
- package/dist/lib/actor.js +1 -99
- package/dist/lib/add-dir.d.ts +0 -46
- package/dist/lib/add-dir.js +1 -70
- package/dist/lib/address.d.ts +0 -17
- package/dist/lib/address.js +0 -15
- package/dist/lib/agent-cli-commands.d.ts +0 -10
- package/dist/lib/agent-cli-commands.js +0 -10
- package/dist/lib/agent-modes.d.ts +0 -29
- package/dist/lib/agent-modes.js +0 -31
- package/dist/lib/agent-spec/agents.d.ts +0 -426
- package/dist/lib/agent-spec/agents.js +37 -924
- package/dist/lib/agent-spec/index.d.ts +0 -5
- package/dist/lib/agent-spec/index.js +0 -14
- package/dist/lib/agent-spec/materialize.d.ts +0 -10
- package/dist/lib/agent-spec/materialize.js +2 -139
- package/dist/lib/agent-spec/package-resolve.d.ts +0 -8
- package/dist/lib/agent-spec/package-resolve.js +1 -44
- package/dist/lib/agent-spec/package-schema.d.ts +0 -2
- package/dist/lib/agent-spec/package-schema.js +0 -11
- package/dist/lib/agent-spec/package-types.d.ts +0 -27
- package/dist/lib/agent-spec/package-types.js +0 -1
- package/dist/lib/agent-spec/primitives.d.ts +0 -18
- package/dist/lib/agent-spec/primitives.js +0 -27
- package/dist/lib/agent-spec/provider.js +0 -2
- package/dist/lib/agent-spec/resolve.d.ts +0 -23
- package/dist/lib/agent-spec/resolve.js +0 -41
- package/dist/lib/agent-spec/types.d.ts +0 -34
- package/dist/lib/agent-spec/types.js +0 -6
- package/dist/lib/agents.d.ts +0 -1
- package/dist/lib/agents.js +0 -1
- package/dist/lib/analytics/mix-commands.d.ts +0 -23
- package/dist/lib/analytics/mix-commands.js +0 -26
- package/dist/lib/analytics/recipes.d.ts +0 -1
- package/dist/lib/analytics/recipes.js +5 -10
- package/dist/lib/analytics/usage-db.js +4 -6
- package/dist/lib/answer-router.d.ts +0 -61
- package/dist/lib/answer-router.js +0 -57
- package/dist/lib/app-bundle-install.d.ts +0 -13
- package/dist/lib/app-bundle-install.js +0 -50
- package/dist/lib/artifact-actions.d.ts +0 -15
- package/dist/lib/artifact-actions.js +0 -18
- package/dist/lib/artifacts-client.d.ts +0 -10
- package/dist/lib/artifacts-client.js +0 -17
- package/dist/lib/ask-classifier.d.ts +0 -38
- package/dist/lib/ask-classifier.js +0 -27
- package/dist/lib/audit/log.d.ts +0 -47
- package/dist/lib/audit/log.js +1 -59
- package/dist/lib/auth-health.d.ts +0 -213
- package/dist/lib/auth-health.js +16 -266
- package/dist/lib/auth-mint.d.ts +0 -83
- package/dist/lib/auth-mint.js +8 -85
- package/dist/lib/auto-pull-worker.d.ts +0 -10
- package/dist/lib/auto-pull-worker.js +3 -48
- package/dist/lib/auto-pull.d.ts +0 -64
- package/dist/lib/auto-pull.js +0 -79
- package/dist/lib/beta.d.ts +0 -9
- package/dist/lib/beta.js +0 -9
- package/dist/lib/binary-shadow.d.ts +0 -22
- package/dist/lib/binary-shadow.js +4 -34
- package/dist/lib/boot-profile.d.ts +0 -10
- package/dist/lib/boot-profile.js +1 -31
- package/dist/lib/brand.d.ts +0 -20
- package/dist/lib/brand.js +0 -50
- package/dist/lib/browser/context.d.ts +0 -54
- package/dist/lib/browser/context.js +0 -49
- package/dist/lib/browser/paths.d.ts +0 -21
- package/dist/lib/browser/paths.js +0 -26
- package/dist/lib/browser/record.d.ts +0 -34
- package/dist/lib/browser/record.js +0 -38
- package/dist/lib/browser/sessions-list.d.ts +1 -79
- package/dist/lib/browser/sessions-list.js +2 -98
- package/dist/lib/browser-client.d.ts +0 -112
- package/dist/lib/browser-client.js +1 -90
- package/dist/lib/budget/config.d.ts +0 -6
- package/dist/lib/budget/config.js +0 -29
- package/dist/lib/budget/enforce.d.ts +0 -50
- package/dist/lib/budget/enforce.js +0 -27
- package/dist/lib/budget/ledger.d.ts +0 -23
- package/dist/lib/budget/ledger.js +0 -28
- package/dist/lib/budget/live-cloud.d.ts +0 -26
- package/dist/lib/budget/live-cloud.js +0 -12
- package/dist/lib/budget/live-team.d.ts +0 -17
- package/dist/lib/budget/live-team.js +1 -35
- package/dist/lib/budget/preflight.d.ts +0 -51
- package/dist/lib/budget/preflight.js +0 -36
- package/dist/lib/byok-usage.d.ts +0 -20
- package/dist/lib/byok-usage.js +1 -24
- package/dist/lib/capabilities.d.ts +0 -24
- package/dist/lib/capabilities.js +0 -29
- package/dist/lib/catchup.d.ts +0 -87
- package/dist/lib/catchup.js +1 -81
- package/dist/lib/channels/owner-forward.d.ts +0 -70
- package/dist/lib/channels/owner-forward.js +1 -43
- package/dist/lib/channels/owner-sink.js +0 -21
- package/dist/lib/channels/providers/desktop.d.ts +0 -37
- package/dist/lib/channels/providers/desktop.js +0 -72
- package/dist/lib/channels/providers/index.d.ts +0 -1
- package/dist/lib/channels/providers/index.js +2 -6
- package/dist/lib/channels/providers/mailbox.js +0 -7
- package/dist/lib/channels/providers/openclaw-telegram.js +0 -8
- package/dist/lib/channels/providers/rush.d.ts +0 -2
- package/dist/lib/channels/providers/rush.js +0 -26
- package/dist/lib/channels/providers/session.d.ts +2 -0
- package/dist/lib/channels/providers/session.js +26 -0
- package/dist/lib/channels/registry.d.ts +0 -27
- package/dist/lib/channels/registry.js +0 -10
- package/dist/lib/channels/resolve.d.ts +0 -19
- package/dist/lib/channels/resolve.js +0 -2
- package/dist/lib/channels/send.d.ts +0 -50
- package/dist/lib/channels/send.js +0 -25
- package/dist/lib/checkpoint.d.ts +0 -36
- package/dist/lib/checkpoint.js +0 -28
- package/dist/lib/claude-account-token.d.ts +0 -98
- package/dist/lib/claude-account-token.js +7 -169
- package/dist/lib/claude-statusline.d.ts +0 -41
- package/dist/lib/claude-statusline.js +0 -68
- package/dist/lib/cli-entry.d.ts +0 -26
- package/dist/lib/cli-entry.js +1 -61
- package/dist/lib/cli-resources.d.ts +31 -89
- package/dist/lib/cli-resources.js +116 -152
- package/dist/lib/cloud/antigravity.d.ts +0 -29
- package/dist/lib/cloud/antigravity.js +0 -36
- package/dist/lib/cloud/codex.d.ts +0 -8
- package/dist/lib/cloud/codex.js +0 -41
- package/dist/lib/cloud/cursor.d.ts +0 -5
- package/dist/lib/cloud/cursor.js +2 -7
- package/dist/lib/cloud/dispatch.d.ts +0 -13
- package/dist/lib/cloud/dispatch.js +1 -48
- package/dist/lib/cloud/factory.d.ts +0 -52
- package/dist/lib/cloud/factory.js +3 -67
- package/dist/lib/cloud/host.d.ts +0 -39
- package/dist/lib/cloud/host.js +5 -48
- package/dist/lib/cloud/registry.d.ts +0 -25
- package/dist/lib/cloud/registry.js +0 -29
- package/dist/lib/cloud/rush.d.ts +0 -47
- package/dist/lib/cloud/rush.js +1 -82
- package/dist/lib/cloud/session-index.d.ts +0 -27
- package/dist/lib/cloud/session-index.js +1 -32
- package/dist/lib/cloud/store.d.ts +0 -18
- package/dist/lib/cloud/store.js +0 -28
- package/dist/lib/cloud/stream.d.ts +0 -14
- package/dist/lib/cloud/stream.js +0 -25
- package/dist/lib/cloud/types.d.ts +0 -168
- package/dist/lib/cloud/types.js +0 -46
- package/dist/lib/cloudflare/creds.d.ts +0 -2
- package/dist/lib/cloudflare/creds.js +0 -14
- package/dist/lib/cloudflare/provision.d.ts +0 -8
- package/dist/lib/cloudflare/provision.js +1 -19
- package/dist/lib/codex-home.d.ts +0 -60
- package/dist/lib/codex-home.js +2 -72
- package/dist/lib/codex-policy.d.ts +0 -10
- package/dist/lib/codex-policy.js +0 -13
- package/dist/lib/command-skills.d.ts +0 -10
- package/dist/lib/command-skills.js +0 -10
- package/dist/lib/commands.d.ts +0 -74
- package/dist/lib/commands.js +0 -112
- package/dist/lib/comms-render.d.ts +0 -5
- package/dist/lib/comms-render.js +0 -5
- package/dist/lib/computer/context.d.ts +0 -23
- package/dist/lib/computer/context.js +0 -14
- package/dist/lib/computer/policy.d.ts +0 -20
- package/dist/lib/computer/policy.js +0 -53
- package/dist/lib/computer/record.d.ts +0 -33
- package/dist/lib/computer/record.js +1 -48
- package/dist/lib/computer/sessions-list.d.ts +1 -128
- package/dist/lib/computer/sessions-list.js +6 -165
- package/dist/lib/computer-client.d.ts +0 -106
- package/dist/lib/computer-client.js +5 -86
- package/dist/lib/concurrency.d.ts +0 -14
- package/dist/lib/concurrency.js +0 -3
- package/dist/lib/config-drift.d.ts +0 -31
- package/dist/lib/config-drift.js +0 -32
- package/dist/lib/config-keys.d.ts +1 -65
- package/dist/lib/config-keys.js +6 -52
- package/dist/lib/config-transfer.d.ts +0 -14
- package/dist/lib/config-transfer.js +0 -26
- package/dist/lib/convert.d.ts +0 -17
- package/dist/lib/convert.js +0 -18
- package/dist/lib/crabbox/cli.d.ts +0 -156
- package/dist/lib/crabbox/cli.js +1 -188
- package/dist/lib/crabbox/config.d.ts +0 -18
- package/dist/lib/crabbox/config.js +1 -19
- package/dist/lib/crabbox/lease.d.ts +0 -93
- package/dist/lib/crabbox/lease.js +4 -148
- package/dist/lib/crabbox/progress.d.ts +0 -56
- package/dist/lib/crabbox/progress.js +2 -49
- package/dist/lib/crabbox/runtimes.d.ts +0 -94
- package/dist/lib/crabbox/runtimes.js +1 -111
- package/dist/lib/crabbox/setup-copy.d.ts +0 -64
- package/dist/lib/crabbox/setup-copy.js +1 -53
- package/dist/lib/daemon/account-state-daemon-service.d.ts +0 -48
- package/dist/lib/daemon/account-state-daemon-service.js +2 -63
- package/dist/lib/daemon/attention-notify-service.d.ts +0 -12
- package/dist/lib/daemon/attention-notify-service.js +1 -24
- package/dist/lib/daemon/auth-sync-service.d.ts +0 -28
- package/dist/lib/daemon/auth-sync-service.js +0 -56
- package/dist/lib/daemon/catchup-service.d.ts +0 -34
- package/dist/lib/daemon/catchup-service.js +0 -30
- package/dist/lib/daemon/daemon.d.ts +0 -374
- package/dist/lib/daemon/daemon.js +44 -1049
- package/dist/lib/daemon/daemon.test-fixture.d.ts +0 -19
- package/dist/lib/daemon/daemon.test-fixture.js +1 -24
- package/dist/lib/daemon/device-probe-service.d.ts +0 -16
- package/dist/lib/daemon/device-probe-service.js +0 -20
- package/dist/lib/daemon/feed-stream-service.d.ts +0 -15
- package/dist/lib/daemon/feed-stream-service.js +0 -20
- package/dist/lib/daemon/harness-update-service.d.ts +2 -61
- package/dist/lib/daemon/harness-update-service.js +6 -86
- package/dist/lib/daemon/heartbeat-service.d.ts +0 -1
- package/dist/lib/daemon/heartbeat-service.js +0 -1
- package/dist/lib/daemon/leaked-daemons.d.ts +0 -46
- package/dist/lib/daemon/leaked-daemons.js +2 -78
- package/dist/lib/daemon/monitor-engine-service.d.ts +0 -13
- package/dist/lib/daemon/monitor-engine-service.js +3 -15
- package/dist/lib/daemon/runner.d.ts +0 -194
- package/dist/lib/daemon/runner.js +39 -760
- package/dist/lib/daemon/self-heal-service.d.ts +18 -17
- package/dist/lib/daemon/self-heal-service.js +83 -37
- package/dist/lib/daemon/self-update-service.d.ts +1 -131
- package/dist/lib/daemon/self-update-service.js +26 -189
- package/dist/lib/daemon/service.d.ts +0 -73
- package/dist/lib/daemon/service.js +0 -34
- package/dist/lib/daemon/session-index-service.d.ts +0 -12
- package/dist/lib/daemon/session-index-service.js +0 -23
- package/dist/lib/daemon/session-state-service.d.ts +0 -8
- package/dist/lib/daemon/session-state-service.js +0 -8
- package/dist/lib/daemon/session-summarizer-service.d.ts +0 -14
- package/dist/lib/daemon/session-summarizer-service.js +1 -19
- package/dist/lib/daemon/session-title-service.d.ts +0 -25
- package/dist/lib/daemon/session-title-service.js +0 -32
- package/dist/lib/daemon/state-dir-check-service.d.ts +0 -24
- package/dist/lib/daemon/state-dir-check-service.js +0 -29
- package/dist/lib/daemon/supervisor.d.ts +0 -112
- package/dist/lib/daemon/supervisor.js +4 -147
- package/dist/lib/daemon/testdata/process-view-daemon.js +0 -2
- package/dist/lib/daemon/testdata/process-view-start.js +0 -5
- package/dist/lib/daemon/tmux-reap-service.d.ts +0 -1
- package/dist/lib/daemon/tmux-reap-service.js +0 -1
- package/dist/lib/daemon/usage-sync-service.d.ts +0 -23
- package/dist/lib/daemon/usage-sync-service.js +0 -26
- package/dist/lib/daemon/watchdog-service.d.ts +0 -9
- package/dist/lib/daemon/watchdog-service.js +0 -13
- package/dist/lib/daemon/webhook-receiver-service.d.ts +0 -1
- package/dist/lib/daemon/webhook-receiver-service.js +0 -1
- package/dist/lib/daemon-health.d.ts +0 -55
- package/dist/lib/daemon-health.js +4 -77
- package/dist/lib/daemon-services.d.ts +0 -36
- package/dist/lib/daemon-services.js +0 -45
- package/dist/lib/daemon-ticks.d.ts +0 -126
- package/dist/lib/daemon-ticks.js +1 -156
- package/dist/lib/daemon-webhooks.d.ts +0 -57
- package/dist/lib/daemon-webhooks.js +2 -54
- package/dist/lib/deeplink/register.d.ts +0 -15
- package/dist/lib/deeplink/register.js +0 -60
- package/dist/lib/deeplink/url.d.ts +0 -24
- package/dist/lib/deeplink/url.js +1 -33
- package/dist/lib/device-config.d.ts +1 -192
- package/dist/lib/device-config.js +86 -240
- package/dist/lib/devices/config-migration.d.ts +0 -43
- package/dist/lib/devices/config-migration.js +7 -127
- package/dist/lib/devices/connect.d.ts +0 -168
- package/dist/lib/devices/connect.js +6 -254
- package/dist/lib/devices/device-docs.d.ts +0 -24
- package/dist/lib/devices/device-docs.js +0 -46
- package/dist/lib/devices/discovery-policy.d.ts +0 -30
- package/dist/lib/devices/discovery-policy.js +3 -34
- package/dist/lib/devices/doctor-findings.d.ts +0 -109
- package/dist/lib/devices/doctor-findings.js +30 -326
- package/dist/lib/devices/doctor-overview-cache.d.ts +0 -33
- package/dist/lib/devices/doctor-overview-cache.js +0 -81
- package/dist/lib/devices/fleet-divergence.d.ts +0 -89
- package/dist/lib/devices/fleet-divergence.js +1 -60
- package/dist/lib/devices/fleet-inventory.d.ts +0 -27
- package/dist/lib/devices/fleet-inventory.js +0 -38
- package/dist/lib/devices/fleet.d.ts +0 -95
- package/dist/lib/devices/fleet.js +0 -79
- package/dist/lib/devices/harness-inventory.d.ts +0 -75
- package/dist/lib/devices/harness-inventory.js +0 -101
- package/dist/lib/devices/health-report.d.ts +0 -37
- package/dist/lib/devices/health-report.js +0 -73
- package/dist/lib/devices/health.d.ts +0 -71
- package/dist/lib/devices/health.js +2 -82
- package/dist/lib/devices/interactive-host.d.ts +0 -10
- package/dist/lib/devices/interactive-host.js +0 -34
- package/dist/lib/devices/known-hosts.d.ts +0 -45
- package/dist/lib/devices/known-hosts.js +0 -77
- package/dist/lib/devices/pending.d.ts +0 -31
- package/dist/lib/devices/pending.js +7 -67
- package/dist/lib/devices/pool.d.ts +0 -36
- package/dist/lib/devices/pool.js +0 -30
- package/dist/lib/devices/reachability.d.ts +0 -25
- package/dist/lib/devices/reachability.js +0 -14
- package/dist/lib/devices/registry.d.ts +0 -141
- package/dist/lib/devices/registry.js +4 -151
- package/dist/lib/devices/resolve-profile.d.ts +0 -18
- package/dist/lib/devices/resolve-profile.js +0 -18
- package/dist/lib/devices/resolve-target.d.ts +0 -20
- package/dist/lib/devices/resolve-target.js +1 -51
- package/dist/lib/devices/rollout-verify.d.ts +1 -81
- package/dist/lib/devices/rollout-verify.js +0 -77
- package/dist/lib/devices/self-host.d.ts +0 -7
- package/dist/lib/devices/self-host.js +1 -29
- package/dist/lib/devices/ssh-config.d.ts +0 -18
- package/dist/lib/devices/ssh-config.js +0 -9
- package/dist/lib/devices/stats-cache.d.ts +0 -48
- package/dist/lib/devices/stats-cache.js +0 -80
- package/dist/lib/devices/sync.d.ts +0 -97
- package/dist/lib/devices/sync.js +0 -88
- package/dist/lib/devices/tailscale.d.ts +0 -18
- package/dist/lib/devices/tailscale.js +1 -38
- package/dist/lib/devices/terminfo.d.ts +0 -27
- package/dist/lib/devices/terminfo.js +2 -64
- package/dist/lib/devices/worker-pick.d.ts +0 -15
- package/dist/lib/devices/worker-pick.js +0 -48
- package/dist/lib/diff-text.d.ts +0 -18
- package/dist/lib/diff-text.js +0 -15
- package/dist/lib/doctor-diff.d.ts +0 -79
- package/dist/lib/doctor-diff.js +2 -181
- package/dist/lib/drift-sync.d.ts +0 -29
- package/dist/lib/drift-sync.js +0 -40
- package/dist/lib/drift.d.ts +0 -43
- package/dist/lib/drift.js +0 -31
- package/dist/lib/event-families.d.ts +0 -17
- package/dist/lib/event-families.js +0 -33
- package/dist/lib/event-provenance.d.ts +0 -4
- package/dist/lib/event-provenance.js +0 -5
- package/dist/lib/event-stream.d.ts +0 -29
- package/dist/lib/event-stream.js +0 -36
- package/dist/lib/events-ingest.d.ts +0 -27
- package/dist/lib/events-ingest.js +0 -54
- package/dist/lib/exec-account-home.d.ts +0 -24
- package/dist/lib/exec-account-home.js +0 -41
- package/dist/lib/exec-bounded.d.ts +1 -37
- package/dist/lib/exec-bounded.js +10 -46
- package/dist/lib/exec.d.ts +3 -583
- package/dist/lib/exec.js +18 -1025
- package/dist/lib/factory/snapshot.js +1 -15
- package/dist/lib/feed/activity-stream.d.ts +0 -27
- package/dist/lib/feed/activity-stream.js +4 -80
- package/dist/lib/feed/activity.d.ts +1 -243
- package/dist/lib/feed/activity.js +8 -273
- package/dist/lib/feed/answer.d.ts +0 -103
- package/dist/lib/feed/answer.js +0 -267
- package/dist/lib/feed/attention.d.ts +0 -56
- package/dist/lib/feed/attention.js +0 -161
- package/dist/lib/feed/envelope.d.ts +2 -17
- package/dist/lib/feed/envelope.js +0 -14
- package/dist/lib/feed/events.d.ts +0 -118
- package/dist/lib/feed/events.js +13 -213
- package/dist/lib/feed/feed.d.ts +1 -250
- package/dist/lib/feed/feed.js +24 -334
- package/dist/lib/feed/hub-server.d.ts +0 -100
- package/dist/lib/feed/hub-server.js +1 -191
- package/dist/lib/feed/hub.d.ts +0 -53
- package/dist/lib/feed/hub.js +0 -89
- package/dist/lib/feed/pr-status.d.ts +1 -19
- package/dist/lib/feed/pr-status.js +0 -18
- package/dist/lib/feed/tool-activity.d.ts +0 -59
- package/dist/lib/feed/tool-activity.js +1 -119
- package/dist/lib/feed/tools.d.ts +0 -100
- package/dist/lib/feed/tools.js +0 -89
- package/dist/lib/feed/watch.d.ts +0 -33
- package/dist/lib/feed/watch.js +2 -94
- package/dist/lib/feed-broadcast.d.ts +0 -148
- package/dist/lib/feed-broadcast.js +1 -283
- package/dist/lib/feed-outcome.d.ts +0 -50
- package/dist/lib/feed-outcome.js +1 -67
- package/dist/lib/feed-policy.d.ts +0 -6
- package/dist/lib/feed-policy.js +1 -27
- package/dist/lib/feed-post.d.ts +0 -61
- package/dist/lib/feed-post.js +4 -61
- package/dist/lib/feed-ranking.d.ts +1 -1
- package/dist/lib/fleet/apply.d.ts +0 -64
- package/dist/lib/fleet/apply.js +0 -125
- package/dist/lib/fleet/auth-sync.d.ts +0 -48
- package/dist/lib/fleet/auth-sync.js +4 -49
- package/dist/lib/fleet/capture.d.ts +0 -26
- package/dist/lib/fleet/capture.js +1 -36
- package/dist/lib/fleet/manifest.d.ts +0 -38
- package/dist/lib/fleet/manifest.js +0 -40
- package/dist/lib/fleet/types.d.ts +1 -138
- package/dist/lib/fleet/types.js +0 -12
- package/dist/lib/fleet-cache.d.ts +0 -12
- package/dist/lib/fleet-cache.js +0 -24
- package/dist/lib/fleet-shared-state.d.ts +6 -59
- package/dist/lib/fleet-shared-state.js +5 -51
- package/dist/lib/fleet-status.d.ts +0 -27
- package/dist/lib/fleet-status.js +0 -48
- package/dist/lib/format.d.ts +0 -74
- package/dist/lib/format.js +3 -77
- package/dist/lib/friction-heuristics.d.ts +0 -20
- package/dist/lib/friction-heuristics.js +0 -8
- package/dist/lib/fs-atomic.d.ts +0 -51
- package/dist/lib/fs-atomic.js +8 -66
- package/dist/lib/fs-walk.d.ts +0 -13
- package/dist/lib/fs-walk.js +0 -22
- package/dist/lib/fuzzy.d.ts +0 -29
- package/dist/lib/fuzzy.js +0 -31
- package/dist/lib/gemini-settings.js +0 -12
- package/dist/lib/git.d.ts +0 -366
- package/dist/lib/git.js +7 -574
- package/dist/lib/github/ci-failure.d.ts +30 -0
- package/dist/lib/github/ci-failure.js +95 -0
- package/dist/lib/github/gh-overload.d.ts +0 -38
- package/dist/lib/github/gh-overload.js +3 -55
- package/dist/lib/github/pr-mergeable.d.ts +3 -34
- package/dist/lib/github/pr-mergeable.js +2 -42
- package/dist/lib/github/pr-verdict.d.ts +0 -44
- package/dist/lib/github/pr-verdict.js +0 -36
- package/dist/lib/github/project-prs.d.ts +135 -105
- package/dist/lib/github/project-prs.js +530 -170
- package/dist/lib/github/release-drift.d.ts +45 -0
- package/dist/lib/github/release-drift.js +91 -0
- package/dist/lib/github/rest.d.ts +0 -50
- package/dist/lib/github/rest.js +0 -49
- package/dist/lib/github/viewer.d.ts +27 -0
- package/dist/lib/github/viewer.js +101 -0
- package/dist/lib/goose-commands.d.ts +0 -29
- package/dist/lib/goose-commands.js +3 -48
- package/dist/lib/harness/adapter.d.ts +0 -151
- package/dist/lib/harness/adapter.js +0 -41
- package/dist/lib/harness/adapters/claude.d.ts +0 -8
- package/dist/lib/harness/adapters/claude.js +0 -89
- package/dist/lib/harness/adapters/codex.js +0 -18
- package/dist/lib/harness/adapters/copilot.js +0 -3
- package/dist/lib/harness/adapters/cursor.js +0 -16
- package/dist/lib/harness/adapters/droid.js +0 -3
- package/dist/lib/harness/adapters/kimi.js +0 -19
- package/dist/lib/harness/adapters/muse.js +0 -9
- package/dist/lib/harness/adapters/opencode.js +0 -2
- package/dist/lib/harness/exec-config-version.d.ts +0 -2
- package/dist/lib/harness/exec-config-version.js +0 -13
- package/dist/lib/harness/index.js +0 -10
- package/dist/lib/harness-auth-capabilities.d.ts +0 -26
- package/dist/lib/harness-auth-capabilities.js +0 -18
- package/dist/lib/harness-connection-test.d.ts +0 -27
- package/dist/lib/harness-connection-test.js +2 -20
- package/dist/lib/heal.d.ts +0 -45
- package/dist/lib/heal.js +2 -82
- package/dist/lib/help.d.ts +0 -32
- package/dist/lib/help.js +0 -41
- package/dist/lib/helper-download.d.ts +0 -85
- package/dist/lib/helper-download.js +0 -95
- package/dist/lib/helper-versions.d.ts +0 -51
- package/dist/lib/helper-versions.js +1 -45
- package/dist/lib/hooks/cache.d.ts +0 -40
- package/dist/lib/hooks/cache.js +8 -122
- package/dist/lib/hooks/install.d.ts +0 -253
- package/dist/lib/hooks/install.js +49 -822
- package/dist/lib/hooks/match.d.ts +0 -24
- package/dist/lib/hooks/match.js +0 -31
- package/dist/lib/hooks/profile.d.ts +0 -21
- package/dist/lib/hooks/profile.js +0 -28
- package/dist/lib/hosts/credential-transport.d.ts +0 -6
- package/dist/lib/hosts/credential-transport.js +0 -17
- package/dist/lib/hosts/credentials.d.ts +0 -35
- package/dist/lib/hosts/credentials.js +0 -38
- package/dist/lib/hosts/dispatch.d.ts +0 -140
- package/dist/lib/hosts/dispatch.js +0 -176
- package/dist/lib/hosts/logs.d.ts +0 -25
- package/dist/lib/hosts/logs.js +1 -51
- package/dist/lib/hosts/option.d.ts +0 -12
- package/dist/lib/hosts/option.js +0 -12
- package/dist/lib/hosts/passthrough.d.ts +0 -129
- package/dist/lib/hosts/passthrough.js +12 -249
- package/dist/lib/hosts/progress.d.ts +0 -90
- package/dist/lib/hosts/progress.js +5 -115
- package/dist/lib/hosts/providers/devices.d.ts +0 -19
- package/dist/lib/hosts/providers/devices.js +1 -34
- package/dist/lib/hosts/providers/local.d.ts +0 -14
- package/dist/lib/hosts/providers/local.js +0 -22
- package/dist/lib/hosts/ready.d.ts +0 -99
- package/dist/lib/hosts/ready.js +0 -101
- package/dist/lib/hosts/reconcile.d.ts +0 -38
- package/dist/lib/hosts/reconcile.js +1 -50
- package/dist/lib/hosts/reconnect.d.ts +0 -75
- package/dist/lib/hosts/reconnect.js +0 -98
- package/dist/lib/hosts/registry.d.ts +0 -74
- package/dist/lib/hosts/registry.js +0 -110
- package/dist/lib/hosts/remote-cmd.d.ts +1 -228
- package/dist/lib/hosts/remote-cmd.js +19 -294
- package/dist/lib/hosts/remote-cmd.test-fixture.d.ts +0 -1
- package/dist/lib/hosts/remote-cmd.test-fixture.js +0 -12
- package/dist/lib/hosts/remote-os.d.ts +0 -19
- package/dist/lib/hosts/remote-os.js +0 -22
- package/dist/lib/hosts/remote-session-id.d.ts +0 -22
- package/dist/lib/hosts/remote-session-id.js +0 -24
- package/dist/lib/hosts/routing-flag.d.ts +0 -21
- package/dist/lib/hosts/routing-flag.js +0 -21
- package/dist/lib/hosts/run-target.d.ts +0 -53
- package/dist/lib/hosts/run-target.js +0 -56
- package/dist/lib/hosts/session-index.d.ts +1 -53
- package/dist/lib/hosts/session-index.js +2 -59
- package/dist/lib/hosts/session-marker.d.ts +0 -31
- package/dist/lib/hosts/session-marker.js +0 -32
- package/dist/lib/hosts/ssh-config.d.ts +0 -25
- package/dist/lib/hosts/ssh-config.js +1 -32
- package/dist/lib/hosts/tasks.d.ts +0 -54
- package/dist/lib/hosts/tasks.js +0 -35
- package/dist/lib/hosts/types.d.ts +0 -39
- package/dist/lib/hosts/types.js +0 -22
- package/dist/lib/humans.d.ts +0 -21
- package/dist/lib/humans.js +0 -30
- package/dist/lib/identity/client.d.ts +1 -35
- package/dist/lib/identity/client.js +3 -29
- package/dist/lib/identity/index.d.ts +3 -27
- package/dist/lib/identity/index.js +8 -24
- package/dist/lib/import.d.ts +0 -104
- package/dist/lib/import.js +1 -137
- package/dist/lib/installations/active-check.d.ts +0 -53
- package/dist/lib/installations/active-check.js +0 -49
- package/dist/lib/installations/index.d.ts +0 -9
- package/dist/lib/installations/index.js +0 -9
- package/dist/lib/installations/installation-lock.js +0 -8
- package/dist/lib/installations/launch-gate.d.ts +0 -56
- package/dist/lib/installations/launch-gate.js +0 -83
- package/dist/lib/installations/migrate.d.ts +0 -100
- package/dist/lib/installations/migrate.js +105 -572
- package/dist/lib/installations/native-command.d.ts +0 -1
- package/dist/lib/installations/native-command.js +0 -6
- package/dist/lib/installations/resolve.d.ts +0 -24
- package/dist/lib/installations/resolve.js +0 -24
- package/dist/lib/installations/shims.d.ts +0 -395
- package/dist/lib/installations/shims.js +30 -957
- package/dist/lib/installations/store.d.ts +0 -199
- package/dist/lib/installations/store.js +1 -297
- package/dist/lib/installations/strategies.d.ts +0 -44
- package/dist/lib/installations/strategies.js +0 -87
- package/dist/lib/installations/types.d.ts +1 -67
- package/dist/lib/installations/types.js +0 -6
- package/dist/lib/installations/update-cancellation.d.ts +0 -74
- package/dist/lib/installations/update-cancellation.js +0 -74
- package/dist/lib/installations/update-policy.d.ts +0 -57
- package/dist/lib/installations/update-policy.js +0 -62
- package/dist/lib/installations/update-runtime.d.ts +0 -88
- package/dist/lib/installations/update-runtime.js +1 -127
- package/dist/lib/installations/update.d.ts +0 -53
- package/dist/lib/installations/update.js +0 -95
- package/dist/lib/installations/versions.d.ts +0 -310
- package/dist/lib/installations/versions.js +14 -837
- package/dist/lib/isolation-boundary-report.d.ts +0 -7
- package/dist/lib/isolation-boundary-report.js +0 -7
- package/dist/lib/launch-identity.d.ts +0 -8
- package/dist/lib/launch-identity.js +0 -8
- package/dist/lib/linear-autoclose.d.ts +0 -25
- package/dist/lib/linear-autoclose.js +0 -19
- package/dist/lib/linear-cache.d.ts +0 -57
- package/dist/lib/linear-cache.js +1 -81
- package/dist/lib/linear-project-counts.d.ts +0 -83
- package/dist/lib/linear-project-counts.js +2 -64
- package/dist/lib/linear-projects.d.ts +0 -62
- package/dist/lib/linear-projects.js +0 -85
- package/dist/lib/linear-rate-limit.d.ts +0 -21
- package/dist/lib/linear-rate-limit.js +1 -93
- package/dist/lib/linux-userns.d.ts +1 -42
- package/dist/lib/linux-userns.js +0 -47
- package/dist/lib/lock-compromise.d.ts +0 -7
- package/dist/lib/lock-compromise.js +0 -7
- package/dist/lib/log-follow.d.ts +0 -2
- package/dist/lib/log-follow.js +5 -15
- package/dist/lib/loop.d.ts +0 -106
- package/dist/lib/loop.js +0 -135
- package/dist/lib/machine-id.d.ts +0 -19
- package/dist/lib/machine-id.js +0 -19
- package/dist/lib/mailbox-gc.d.ts +0 -7
- package/dist/lib/mailbox-gc.js +0 -25
- package/dist/lib/mailbox-target.d.ts +0 -31
- package/dist/lib/mailbox-target.js +0 -27
- package/dist/lib/mailbox.d.ts +0 -77
- package/dist/lib/mailbox.js +5 -105
- package/dist/lib/manifest.d.ts +0 -4
- package/dist/lib/manifest.js +0 -36
- package/dist/lib/markdown.d.ts +0 -3
- package/dist/lib/markdown.js +0 -9
- package/dist/lib/mcp-registry.d.ts +1 -50
- package/dist/lib/mcp-registry.js +0 -64
- package/dist/lib/mcp.d.ts +0 -115
- package/dist/lib/mcp.js +3 -199
- package/dist/lib/memory-cache.d.ts +0 -11
- package/dist/lib/memory-cache.js +0 -9
- package/dist/lib/memory.d.ts +0 -52
- package/dist/lib/memory.js +12 -74
- package/dist/lib/menubar/download-menubar.d.ts +0 -35
- package/dist/lib/menubar/download-menubar.js +0 -38
- package/dist/lib/menubar/install-menubar.d.ts +0 -405
- package/dist/lib/menubar/install-menubar.js +25 -667
- package/dist/lib/menubar/migrate-prefs.d.ts +0 -47
- package/dist/lib/menubar/migrate-prefs.js +1 -70
- package/dist/lib/menubar/notify-desktop.d.ts +0 -82
- package/dist/lib/menubar/notify-desktop.js +0 -68
- package/dist/lib/menubar/resolve-version.d.ts +0 -41
- package/dist/lib/menubar/resolve-version.js +2 -44
- package/dist/lib/menubar/snapshot.d.ts +13 -66
- package/dist/lib/menubar/snapshot.js +45 -39
- package/dist/lib/merged-resources.d.ts +0 -10
- package/dist/lib/merged-resources.js +0 -10
- package/dist/lib/migrate-fold.d.ts +0 -31
- package/dist/lib/migrate-fold.js +6 -38
- package/dist/lib/model-tier-overrides.d.ts +0 -30
- package/dist/lib/model-tier-overrides.js +0 -14
- package/dist/lib/model-tiers.d.ts +0 -43
- package/dist/lib/model-tiers.js +5 -78
- package/dist/lib/models.d.ts +0 -145
- package/dist/lib/models.js +3 -333
- package/dist/lib/monitors/config.d.ts +0 -187
- package/dist/lib/monitors/config.js +4 -101
- package/dist/lib/monitors/dispatch.d.ts +0 -22
- package/dist/lib/monitors/dispatch.js +0 -35
- package/dist/lib/monitors/engine.d.ts +1 -53
- package/dist/lib/monitors/engine.js +17 -106
- package/dist/lib/monitors/fingerprint.d.ts +0 -43
- package/dist/lib/monitors/fingerprint.js +0 -57
- package/dist/lib/monitors/pid-watch.d.ts +0 -31
- package/dist/lib/monitors/pid-watch.js +0 -31
- package/dist/lib/monitors/remote.d.ts +0 -52
- package/dist/lib/monitors/remote.js +0 -42
- package/dist/lib/monitors/sources/command.d.ts +2 -9
- package/dist/lib/monitors/sources/command.js +13 -34
- package/dist/lib/monitors/sources/device.d.ts +0 -10
- package/dist/lib/monitors/sources/device.js +0 -14
- package/dist/lib/monitors/sources/failure.d.ts +0 -27
- package/dist/lib/monitors/sources/failure.js +0 -27
- package/dist/lib/monitors/sources/file.d.ts +0 -10
- package/dist/lib/monitors/sources/file.js +0 -11
- package/dist/lib/monitors/sources/http.d.ts +0 -7
- package/dist/lib/monitors/sources/http.js +0 -9
- package/dist/lib/monitors/sources/index.d.ts +0 -9
- package/dist/lib/monitors/sources/index.js +0 -9
- package/dist/lib/monitors/sources/poll.d.ts +0 -8
- package/dist/lib/monitors/sources/poll.js +0 -8
- package/dist/lib/monitors/sources/types.d.ts +0 -18
- package/dist/lib/monitors/sources/types.js +0 -8
- package/dist/lib/monitors/sources/webhook.d.ts +0 -7
- package/dist/lib/monitors/sources/webhook.js +0 -7
- package/dist/lib/monitors/sources/ws.d.ts +0 -10
- package/dist/lib/monitors/sources/ws.js +3 -13
- package/dist/lib/monitors/state.d.ts +0 -132
- package/dist/lib/monitors/state.js +2 -86
- package/dist/lib/native-accounts.d.ts +0 -32
- package/dist/lib/native-accounts.js +0 -17
- package/dist/lib/net-close.d.ts +0 -9
- package/dist/lib/net-close.js +0 -5
- package/dist/lib/notify.d.ts +0 -47
- package/dist/lib/notify.js +0 -30
- package/dist/lib/onepassword.d.ts +0 -14
- package/dist/lib/onepassword.js +0 -12
- package/dist/lib/open-url.d.ts +0 -38
- package/dist/lib/open-url.js +1 -69
- package/dist/lib/openclaw-keychain.js +2 -7
- package/dist/lib/operator.d.ts +0 -9
- package/dist/lib/operator.js +0 -34
- package/dist/lib/origin-machine.d.ts +0 -16
- package/dist/lib/origin-machine.js +0 -16
- package/dist/lib/output/git-output.d.ts +0 -31
- package/dist/lib/output/git-output.js +4 -43
- package/dist/lib/overdue.d.ts +0 -35
- package/dist/lib/overdue.js +0 -60
- package/dist/lib/owner-message.d.ts +0 -20
- package/dist/lib/owner-message.js +1 -40
- package/dist/lib/packages/output-home.d.ts +0 -28
- package/dist/lib/packages/output-home.js +0 -114
- package/dist/lib/paths.d.ts +0 -26
- package/dist/lib/paths.js +1 -27
- package/dist/lib/percentile.d.ts +0 -11
- package/dist/lib/percentile.js +0 -11
- package/dist/lib/perf/db.d.ts +0 -16
- package/dist/lib/perf/db.js +3 -32
- package/dist/lib/perf/spool.d.ts +0 -12
- package/dist/lib/perf/spool.js +0 -13
- package/dist/lib/perf/types.d.ts +0 -26
- package/dist/lib/perf/types.js +0 -1
- package/dist/lib/permissions-registry.d.ts +0 -48
- package/dist/lib/permissions-registry.js +0 -108
- package/dist/lib/permissions.d.ts +0 -215
- package/dist/lib/permissions.js +4 -407
- package/dist/lib/picker.d.ts +0 -124
- package/dist/lib/picker.js +0 -140
- package/dist/lib/placement.d.ts +0 -57
- package/dist/lib/placement.js +0 -47
- package/dist/lib/platform/exec.d.ts +0 -73
- package/dist/lib/platform/exec.js +0 -80
- package/dist/lib/platform/index.d.ts +0 -14
- package/dist/lib/platform/index.js +0 -14
- package/dist/lib/platform/ipc.d.ts +0 -10
- package/dist/lib/platform/ipc.js +0 -13
- package/dist/lib/platform/links.d.ts +0 -14
- package/dist/lib/platform/links.js +0 -25
- package/dist/lib/platform/paths.d.ts +0 -48
- package/dist/lib/platform/paths.js +0 -52
- package/dist/lib/platform/posixpath.d.ts +0 -18
- package/dist/lib/platform/posixpath.js +0 -62
- package/dist/lib/platform/process.d.ts +0 -67
- package/dist/lib/platform/process.js +5 -99
- package/dist/lib/platform/winpath.d.ts +0 -50
- package/dist/lib/platform/winpath.js +0 -81
- package/dist/lib/plugins/plugin-marketplace.d.ts +0 -165
- package/dist/lib/plugins/plugin-marketplace.js +10 -238
- package/dist/lib/plugins/plugins.d.ts +0 -238
- package/dist/lib/plugins/plugins.js +20 -454
- package/dist/lib/plugins/skills.d.ts +0 -86
- package/dist/lib/plugins/skills.js +1 -139
- package/dist/lib/pr-land-detach.d.ts +0 -17
- package/dist/lib/pr-land-detach.js +0 -30
- package/dist/lib/pricing/cost.d.ts +0 -29
- package/dist/lib/pricing/cost.js +0 -38
- package/dist/lib/pricing/index.d.ts +0 -6
- package/dist/lib/pricing/index.js +0 -6
- package/dist/lib/pricing/table.d.ts +0 -8
- package/dist/lib/pricing/table.js +3 -56
- package/dist/lib/probe.d.ts +0 -5
- package/dist/lib/probe.js +0 -40
- package/dist/lib/profiles-presets.d.ts +0 -20
- package/dist/lib/profiles-presets.js +1 -36
- package/dist/lib/profiles.d.ts +0 -185
- package/dist/lib/profiles.js +1 -158
- package/dist/lib/project-doctor.d.ts +0 -29
- package/dist/lib/project-doctor.js +0 -26
- package/dist/lib/project-focus.d.ts +0 -41
- package/dist/lib/project-focus.js +0 -49
- package/dist/lib/project-import.d.ts +0 -41
- package/dist/lib/project-import.js +0 -36
- package/dist/lib/project-key.d.ts +0 -65
- package/dist/lib/project-key.js +0 -70
- package/dist/lib/project-launch.d.ts +0 -49
- package/dist/lib/project-launch.js +2 -91
- package/dist/lib/project-probe.d.ts +0 -86
- package/dist/lib/project-probe.js +1 -88
- package/dist/lib/project-pull.d.ts +0 -96
- package/dist/lib/project-pull.js +0 -122
- package/dist/lib/project-resources.d.ts +0 -44
- package/dist/lib/project-resources.js +7 -171
- package/dist/lib/project-root.d.ts +0 -95
- package/dist/lib/project-root.js +0 -101
- package/dist/lib/project-schedule.d.ts +0 -43
- package/dist/lib/project-schedule.js +0 -52
- package/dist/lib/project-status.d.ts +0 -108
- package/dist/lib/project-status.js +0 -117
- package/dist/lib/projects.d.ts +0 -197
- package/dist/lib/projects.js +1 -213
- package/dist/lib/pwsh.d.ts +0 -41
- package/dist/lib/pwsh.js +0 -51
- package/dist/lib/quick-todo.d.ts +84 -0
- package/dist/lib/quick-todo.js +243 -0
- package/dist/lib/reconcile-and-repair.d.ts +0 -78
- package/dist/lib/reconcile-and-repair.js +3 -66
- package/dist/lib/redact.d.ts +0 -29
- package/dist/lib/redact.js +0 -54
- package/dist/lib/refresh-coordinator.d.ts +0 -15
- package/dist/lib/refresh-coordinator.js +0 -10
- package/dist/lib/refresh.d.ts +0 -39
- package/dist/lib/refresh.js +0 -45
- package/dist/lib/registry.d.ts +0 -65
- package/dist/lib/registry.js +0 -127
- package/dist/lib/reminders.d.ts +0 -21
- package/dist/lib/reminders.js +0 -30
- package/dist/lib/remote-agents-json.d.ts +0 -44
- package/dist/lib/remote-agents-json.js +1 -44
- package/dist/lib/reserved-stores.d.ts +0 -28
- package/dist/lib/reserved-stores.js +2 -28
- package/dist/lib/resource-aliases.d.ts +0 -12
- package/dist/lib/resource-aliases.js +0 -12
- package/dist/lib/resource-content-diff.d.ts +0 -28
- package/dist/lib/resource-content-diff.js +7 -34
- package/dist/lib/resource-inventory.d.ts +0 -51
- package/dist/lib/resource-inventory.js +0 -45
- package/dist/lib/resource-patterns.d.ts +0 -32
- package/dist/lib/resource-patterns.js +0 -34
- package/dist/lib/resource-profiles.d.ts +0 -7
- package/dist/lib/resource-profiles.js +0 -11
- package/dist/lib/resources/types.d.ts +0 -50
- package/dist/lib/resources/types.js +0 -7
- package/dist/lib/resources/workflows.d.ts +0 -7
- package/dist/lib/resources/workflows.js +0 -13
- package/dist/lib/resources.d.ts +0 -65
- package/dist/lib/resources.js +0 -78
- package/dist/lib/routers.d.ts +0 -67
- package/dist/lib/routers.js +0 -60
- package/dist/lib/routine-activation.d.ts +0 -23
- package/dist/lib/routine-activation.js +0 -24
- package/dist/lib/routine-context.d.ts +1 -91
- package/dist/lib/routine-context.js +0 -107
- package/dist/lib/routine-notify-owner.d.ts +0 -79
- package/dist/lib/routine-notify-owner.js +1 -103
- package/dist/lib/routine-notify.d.ts +0 -70
- package/dist/lib/routine-notify.js +1 -75
- package/dist/lib/routine-process-cleanup.d.ts +0 -1
- package/dist/lib/routine-process-cleanup.js +1 -4
- package/dist/lib/routine-readiness.d.ts +0 -63
- package/dist/lib/routine-readiness.js +4 -86
- package/dist/lib/routines-format.d.ts +0 -40
- package/dist/lib/routines-format.js +0 -67
- package/dist/lib/routines-placement.d.ts +0 -33
- package/dist/lib/routines-placement.js +0 -40
- package/dist/lib/routines-project.d.ts +0 -57
- package/dist/lib/routines-project.js +6 -80
- package/dist/lib/rules/compile.d.ts +0 -66
- package/dist/lib/rules/compile.js +6 -118
- package/dist/lib/rules/compose.d.ts +0 -56
- package/dist/lib/rules/compose.js +2 -83
- package/dist/lib/rules/rules.d.ts +0 -23
- package/dist/lib/rules/rules.js +0 -35
- package/dist/lib/rules/run-sync.d.ts +0 -16
- package/dist/lib/rules/run-sync.js +1 -44
- package/dist/lib/run-config.d.ts +0 -7
- package/dist/lib/run-config.js +0 -8
- package/dist/lib/run-defaults.d.ts +0 -14
- package/dist/lib/run-defaults.js +0 -14
- package/dist/lib/run-notify.d.ts +0 -18
- package/dist/lib/run-notify.js +0 -36
- package/dist/lib/run-trace-sync.d.ts +0 -21
- package/dist/lib/run-trace-sync.js +2 -66
- package/dist/lib/rush-session.d.ts +0 -26
- package/dist/lib/rush-session.js +0 -28
- package/dist/lib/sandbox.d.ts +0 -45
- package/dist/lib/sandbox.js +5 -93
- package/dist/lib/scheduler.d.ts +0 -28
- package/dist/lib/scheduler.js +0 -45
- package/dist/lib/scheduling/routines.d.ts +0 -652
- package/dist/lib/scheduling/routines.js +8 -475
- package/dist/lib/secrets-cli.d.ts +3 -8
- package/dist/lib/secrets-cli.js +1 -19
- package/dist/lib/secrets-client.d.ts +0 -117
- package/dist/lib/secrets-client.js +4 -275
- package/dist/lib/secrets-policy.d.ts +0 -142
- package/dist/lib/secrets-policy.js +4 -237
- package/dist/lib/secrets-types.d.ts +0 -87
- package/dist/lib/secrets-types.js +0 -13
- package/dist/lib/self-heal/checks/hook-manifest.js +0 -25
- package/dist/lib/self-heal/checks/hook-runtime.js +0 -5
- package/dist/lib/self-heal/checks/install-staging.d.ts +0 -1
- package/dist/lib/self-heal/checks/install-staging.js +1 -28
- package/dist/lib/self-heal/checks/menubar-helper.js +0 -5
- package/dist/lib/self-heal/checks/path.js +0 -9
- package/dist/lib/self-heal/checks/resources.js +0 -5
- package/dist/lib/self-heal/checks/shadowing.js +2 -16
- package/dist/lib/self-heal/checks/shims.js +0 -14
- package/dist/lib/self-heal/child.d.ts +12 -0
- package/dist/lib/self-heal/child.js +23 -0
- package/dist/lib/self-heal/registry.d.ts +0 -9
- package/dist/lib/self-heal/registry.js +0 -16
- package/dist/lib/self-heal/types.d.ts +0 -12
- package/dist/lib/self-heal/types.js +0 -15
- package/dist/lib/self-update.d.ts +0 -312
- package/dist/lib/self-update.js +9 -360
- package/dist/lib/service-manifest.d.ts +0 -39
- package/dist/lib/service-manifest.js +0 -72
- package/dist/lib/session/active.d.ts +13 -869
- package/dist/lib/session/active.js +20 -976
- package/dist/lib/session/actor-sidecar.d.ts +1 -32
- package/dist/lib/session/actor-sidecar.js +1 -41
- package/dist/lib/session/bookmarks.d.ts +0 -33
- package/dist/lib/session/bookmarks.js +0 -37
- package/dist/lib/session/bundle.d.ts +0 -86
- package/dist/lib/session/bundle.js +0 -54
- package/dist/lib/session/claude-accounts.d.ts +0 -40
- package/dist/lib/session/claude-accounts.js +0 -49
- package/dist/lib/session/cloud.d.ts +1 -23
- package/dist/lib/session/cloud.js +0 -26
- package/dist/lib/session/db.d.ts +5 -658
- package/dist/lib/session/db.js +22 -1443
- package/dist/lib/session/detached.d.ts +0 -21
- package/dist/lib/session/detached.js +0 -29
- package/dist/lib/session/discover.d.ts +3 -420
- package/dist/lib/session/discover.js +30 -1123
- package/dist/lib/session/fork.d.ts +1 -41
- package/dist/lib/session/fork.js +0 -19
- package/dist/lib/session/ghostty-tabs.d.ts +0 -24
- package/dist/lib/session/ghostty-tabs.js +0 -37
- package/dist/lib/session/glance-files.d.ts +19 -0
- package/dist/lib/session/glance-files.js +258 -0
- package/dist/lib/session/hook-sessions.d.ts +0 -33
- package/dist/lib/session/hook-sessions.js +4 -99
- package/dist/lib/session/host-link.d.ts +1 -94
- package/dist/lib/session/host-link.js +1 -81
- package/dist/lib/session/inject-target.d.ts +8 -0
- package/dist/lib/session/inject-target.js +32 -0
- package/dist/lib/session/inject.d.ts +0 -15
- package/dist/lib/session/inject.js +0 -15
- package/dist/lib/session/live-metadata.d.ts +1 -34
- package/dist/lib/session/live-metadata.js +1 -73
- package/dist/lib/session/local-tmux-attach.d.ts +0 -37
- package/dist/lib/session/local-tmux-attach.js +1 -76
- package/dist/lib/session/migrate-targets.d.ts +0 -46
- package/dist/lib/session/migrate-targets.js +0 -24
- package/dist/lib/session/migrations.d.ts +0 -12
- package/dist/lib/session/migrations.js +1 -20
- package/dist/lib/session/mirror.d.ts +0 -32
- package/dist/lib/session/mirror.js +0 -77
- package/dist/lib/session/origin-machine.js +0 -3
- package/dist/lib/session/pid-registry.d.ts +0 -80
- package/dist/lib/session/pid-registry.js +2 -81
- package/dist/lib/session/presence.d.ts +0 -39
- package/dist/lib/session/presence.js +2 -52
- package/dist/lib/session/process-view.d.ts +0 -11
- package/dist/lib/session/process-view.js +0 -25
- package/dist/lib/session/projection.d.ts +0 -3
- package/dist/lib/session/projection.js +0 -10
- package/dist/lib/session/provenance.d.ts +1 -37
- package/dist/lib/session/provenance.js +0 -69
- package/dist/lib/session/recovery.d.ts +1 -40
- package/dist/lib/session/recovery.js +2 -80
- package/dist/lib/session/relative-time.js +0 -3
- package/dist/lib/session/remote/peer-stream.d.ts +0 -42
- package/dist/lib/session/remote/peer-stream.js +0 -64
- package/dist/lib/session/remote/remote-bundle.d.ts +0 -6
- package/dist/lib/session/remote/remote-bundle.js +0 -21
- package/dist/lib/session/remote/remote-list.d.ts +1 -110
- package/dist/lib/session/remote/remote-list.js +5 -139
- package/dist/lib/session/remote/remote.d.ts +0 -98
- package/dist/lib/session/remote/remote.js +3 -119
- package/dist/lib/session/remote/watch.d.ts +1 -34
- package/dist/lib/session/remote/watch.js +12 -72
- package/dist/lib/session/remote-active.d.ts +0 -35
- package/dist/lib/session/remote-active.js +0 -48
- package/dist/lib/session/remote-bundle.js +0 -2
- package/dist/lib/session/remote-list.js +0 -2
- package/dist/lib/session/remote-preview-cache.d.ts +0 -7
- package/dist/lib/session/remote-preview-cache.js +1 -76
- package/dist/lib/session/remote.js +0 -2
- package/dist/lib/session/resume-command.d.ts +0 -6
- package/dist/lib/session/resume-command.js +0 -6
- package/dist/lib/session/resume-owner.d.ts +1 -52
- package/dist/lib/session/resume-owner.js +0 -56
- package/dist/lib/session/run-names.d.ts +0 -24
- package/dist/lib/session/run-names.js +0 -26
- package/dist/lib/session/session-cache.d.ts +2 -146
- package/dist/lib/session/session-cache.js +26 -203
- package/dist/lib/session/short-id.js +0 -3
- package/dist/lib/session/sync/agents.d.ts +0 -68
- package/dist/lib/session/sync/agents.js +0 -0
- package/dist/lib/session/sync/backend.d.ts +0 -39
- package/dist/lib/session/sync/backend.js +0 -45
- package/dist/lib/session/sync/config.d.ts +0 -27
- package/dist/lib/session/sync/config.js +0 -56
- package/dist/lib/session/sync/managed-config.d.ts +0 -17
- package/dist/lib/session/sync/managed-config.js +0 -17
- package/dist/lib/session/sync/managed-key.d.ts +0 -38
- package/dist/lib/session/sync/managed-key.js +1 -42
- package/dist/lib/session/sync/net-client.d.ts +0 -36
- package/dist/lib/session/sync/net-client.js +0 -30
- package/dist/lib/session/sync/provision.d.ts +0 -2
- package/dist/lib/session/sync/provision.js +0 -13
- package/dist/lib/session/sync/r2.d.ts +0 -20
- package/dist/lib/session/sync/r2.js +0 -20
- package/dist/lib/session/sync/transcript-crypto.d.ts +0 -37
- package/dist/lib/session/sync/transcript-crypto.js +5 -37
- package/dist/lib/session/sync/worker-template.d.ts +0 -5
- package/dist/lib/session/sync/worker-template.js +0 -40
- package/dist/lib/session/testdata/pid-registry-namespace.js +0 -2
- package/dist/lib/session/testdata/process-view-private.js +0 -1
- package/dist/lib/session/throughput.d.ts +0 -24
- package/dist/lib/session/throughput.js +1 -25
- package/dist/lib/session/timeline-pass.d.ts +1 -63
- package/dist/lib/session/timeline-pass.js +161 -148
- package/dist/lib/session/title.d.ts +0 -182
- package/dist/lib/session/title.js +0 -139
- package/dist/lib/session/tool-index.d.ts +2 -21
- package/dist/lib/session/tool-index.js +3 -75
- package/dist/lib/session/tool-store.d.ts +2 -48
- package/dist/lib/session/tool-store.js +1 -33
- package/dist/lib/session/viewing-in.d.ts +0 -67
- package/dist/lib/session/viewing-in.js +1 -71
- package/dist/lib/session/watch.js +0 -2
- package/dist/lib/session/width.js +0 -3
- package/dist/lib/sessions-client.d.ts +0 -46
- package/dist/lib/sessions-client.js +36 -113
- package/dist/lib/settings-manifest.d.ts +1 -17
- package/dist/lib/settings-manifest.js +4 -57
- package/dist/lib/setup-tool-install.d.ts +0 -1
- package/dist/lib/setup-tool-install.js +2 -7
- package/dist/lib/setup-tool-status.d.ts +0 -3
- package/dist/lib/setup-tool-status.js +4 -14
- package/dist/lib/sha256-asset.d.ts +0 -20
- package/dist/lib/sha256-asset.js +0 -20
- package/dist/lib/share-runtime.d.ts +0 -10
- package/dist/lib/share-runtime.js +1 -27
- package/dist/lib/shim-heal.d.ts +0 -15
- package/dist/lib/shim-heal.js +3 -29
- package/dist/lib/signin-badge.d.ts +0 -72
- package/dist/lib/signin-badge.js +0 -86
- package/dist/lib/sink-format.d.ts +0 -32
- package/dist/lib/sink-format.js +0 -14
- package/dist/lib/smart-launch.d.ts +0 -75
- package/dist/lib/smart-launch.js +1 -83
- package/dist/lib/snapshot.d.ts +0 -46
- package/dist/lib/snapshot.js +5 -31
- package/dist/lib/spinner.d.ts +0 -37
- package/dist/lib/spinner.js +0 -37
- package/dist/lib/sqlite.d.ts +0 -13
- package/dist/lib/sqlite.js +3 -71
- package/dist/lib/ssh-exec.d.ts +0 -209
- package/dist/lib/ssh-exec.js +11 -248
- package/dist/lib/ssh-tunnel.d.ts +0 -43
- package/dist/lib/ssh-tunnel.js +2 -48
- package/dist/lib/staleness/checkers/commands.d.ts +0 -4
- package/dist/lib/staleness/checkers/commands.js +0 -4
- package/dist/lib/staleness/checkers/hooks.d.ts +0 -10
- package/dist/lib/staleness/checkers/hooks.js +0 -15
- package/dist/lib/staleness/checkers/mcp.d.ts +0 -9
- package/dist/lib/staleness/checkers/mcp.js +0 -9
- package/dist/lib/staleness/checkers/permissions.d.ts +0 -12
- package/dist/lib/staleness/checkers/permissions.js +0 -13
- package/dist/lib/staleness/checkers/plugins.d.ts +0 -8
- package/dist/lib/staleness/checkers/plugins.js +0 -8
- package/dist/lib/staleness/checkers/rules.d.ts +0 -15
- package/dist/lib/staleness/checkers/rules.js +0 -26
- package/dist/lib/staleness/checkers/skills.d.ts +0 -4
- package/dist/lib/staleness/checkers/skills.js +0 -4
- package/dist/lib/staleness/checkers/subagents.d.ts +0 -9
- package/dist/lib/staleness/checkers/subagents.js +0 -9
- package/dist/lib/staleness/checkers/types.d.ts +0 -34
- package/dist/lib/staleness/checkers/types.js +0 -19
- package/dist/lib/staleness/checkers/workflows.d.ts +0 -7
- package/dist/lib/staleness/checkers/workflows.js +0 -7
- package/dist/lib/staleness/detectors/commands.js +0 -17
- package/dist/lib/staleness/detectors/hooks.js +1 -6
- package/dist/lib/staleness/detectors/mcp.js +0 -4
- package/dist/lib/staleness/detectors/permissions.js +10 -23
- package/dist/lib/staleness/detectors/rules.js +0 -6
- package/dist/lib/staleness/detectors/skills.d.ts +0 -1
- package/dist/lib/staleness/detectors/skills.js +1 -12
- package/dist/lib/staleness/detectors/types.d.ts +0 -10
- package/dist/lib/staleness/fingerprint.d.ts +0 -19
- package/dist/lib/staleness/fingerprint.js +0 -35
- package/dist/lib/staleness/index.d.ts +0 -28
- package/dist/lib/staleness/index.js +1 -45
- package/dist/lib/staleness/layers.d.ts +0 -23
- package/dist/lib/staleness/layers.js +0 -34
- package/dist/lib/staleness/prune.d.ts +0 -71
- package/dist/lib/staleness/prune.js +2 -27
- package/dist/lib/staleness/registry.d.ts +0 -10
- package/dist/lib/staleness/registry.js +3 -33
- package/dist/lib/staleness/types.d.ts +0 -36
- package/dist/lib/staleness/types.js +0 -5
- package/dist/lib/staleness/writers/commands.js +1 -48
- package/dist/lib/staleness/writers/hooks.js +1 -18
- package/dist/lib/staleness/writers/kinds.d.ts +0 -12
- package/dist/lib/staleness/writers/kinds.js +0 -1
- package/dist/lib/staleness/writers/lazy-map.d.ts +0 -11
- package/dist/lib/staleness/writers/mcp.js +0 -13
- package/dist/lib/staleness/writers/plugins.js +0 -4
- package/dist/lib/staleness/writers/rules.d.ts +0 -1
- package/dist/lib/staleness/writers/rules.js +1 -19
- package/dist/lib/staleness/writers/skills.js +3 -14
- package/dist/lib/staleness/writers/sources.d.ts +0 -11
- package/dist/lib/staleness/writers/sources.js +0 -32
- package/dist/lib/staleness/writers/subagents.js +0 -16
- package/dist/lib/staleness/writers/types.d.ts +0 -58
- package/dist/lib/staleness/writers/workflows.js +1 -1
- package/dist/lib/standalone-tools.d.ts +24 -0
- package/dist/lib/standalone-tools.js +58 -0
- package/dist/lib/star-nudge.d.ts +0 -32
- package/dist/lib/star-nudge.js +2 -36
- package/dist/lib/startup/command-registry.d.ts +0 -45
- package/dist/lib/startup/command-registry.js +1 -46
- package/dist/lib/startup/dev-build.d.ts +0 -9
- package/dist/lib/startup/dev-build.js +1 -42
- package/dist/lib/startup/root-command.d.ts +0 -19
- package/dist/lib/startup/root-command.js +0 -19
- package/dist/lib/startup/spellcheck.d.ts +0 -13
- package/dist/lib/startup/spellcheck.js +0 -13
- package/dist/lib/state.d.ts +0 -376
- package/dist/lib/state.js +19 -737
- package/dist/lib/storage/selection.d.ts +0 -40
- package/dist/lib/storage/selection.js +0 -29
- package/dist/lib/subagents-registry.d.ts +0 -56
- package/dist/lib/subagents-registry.js +0 -99
- package/dist/lib/subagents.d.ts +0 -128
- package/dist/lib/subagents.js +1 -158
- package/dist/lib/summarizer/config.d.ts +0 -37
- package/dist/lib/summarizer/config.js +0 -37
- package/dist/lib/summarizer/pass.d.ts +0 -20
- package/dist/lib/summarizer/pass.js +1 -34
- package/dist/lib/summarizer/summarize.d.ts +1 -49
- package/dist/lib/summarizer/summarize.js +0 -35
- package/dist/lib/sync-passphrase.d.ts +0 -16
- package/dist/lib/sync-passphrase.js +1 -18
- package/dist/lib/sync-status.d.ts +0 -72
- package/dist/lib/sync-status.js +0 -55
- package/dist/lib/sync-umbrella.d.ts +0 -54
- package/dist/lib/sync-umbrella.js +0 -48
- package/dist/lib/system-run-sync.d.ts +0 -5
- package/dist/lib/system-run-sync.js +1 -31
- package/dist/lib/teams/agents.d.ts +1 -444
- package/dist/lib/teams/agents.js +11 -871
- package/dist/lib/teams/api.d.ts +2 -52
- package/dist/lib/teams/api.js +4 -63
- package/dist/lib/teams/debug.d.ts +0 -6
- package/dist/lib/teams/debug.js +0 -6
- package/dist/lib/teams/delivery.d.ts +0 -41
- package/dist/lib/teams/delivery.js +0 -32
- package/dist/lib/teams/file_ops.d.ts +0 -11
- package/dist/lib/teams/file_ops.js +0 -11
- package/dist/lib/teams/forEach.d.ts +0 -76
- package/dist/lib/teams/forEach.js +1 -77
- package/dist/lib/teams/index.d.ts +1 -7
- package/dist/lib/teams/index.js +1 -7
- package/dist/lib/teams/parsers.d.ts +0 -4
- package/dist/lib/teams/parsers.js +0 -81
- package/dist/lib/teams/persistence.d.ts +0 -2
- package/dist/lib/teams/persistence.js +0 -12
- package/dist/lib/teams/placement-probe.d.ts +0 -12
- package/dist/lib/teams/placement-probe.js +1 -51
- package/dist/lib/teams/pr-watch.d.ts +0 -107
- package/dist/lib/teams/pr-watch.js +1 -107
- package/dist/lib/teams/registry.d.ts +0 -36
- package/dist/lib/teams/registry.js +0 -47
- package/dist/lib/teams/remoteWorktree.d.ts +0 -50
- package/dist/lib/teams/remoteWorktree.js +1 -96
- package/dist/lib/teams/scheduler.d.ts +0 -111
- package/dist/lib/teams/scheduler.js +2 -125
- package/dist/lib/teams/summarizer.d.ts +0 -22
- package/dist/lib/teams/summarizer.js +6 -50
- package/dist/lib/teams/supervisor.d.ts +0 -38
- package/dist/lib/teams/supervisor.js +0 -21
- package/dist/lib/teams/worktree.d.ts +0 -95
- package/dist/lib/teams/worktree.js +3 -110
- package/dist/lib/template.d.ts +0 -21
- package/dist/lib/template.js +0 -23
- package/dist/lib/term-client.d.ts +0 -26
- package/dist/lib/term-client.js +0 -48
- package/dist/lib/term-driver.d.ts +0 -5
- package/dist/lib/term-driver.js +0 -8
- package/dist/lib/terminal/backends/ghostty.d.ts +0 -2
- package/dist/lib/terminal/backends/ghostty.js +0 -12
- package/dist/lib/terminal/backends/index.d.ts +0 -17
- package/dist/lib/terminal/backends/index.js +0 -15
- package/dist/lib/terminal/backends/iterm.d.ts +0 -2
- package/dist/lib/terminal/backends/iterm.js +0 -10
- package/dist/lib/terminal/backends/terminal-app.d.ts +0 -10
- package/dist/lib/terminal/backends/terminal-app.js +0 -30
- package/dist/lib/terminal/backends/tmux.d.ts +0 -10
- package/dist/lib/terminal/backends/tmux.js +0 -2
- package/dist/lib/terminal/backends/vscodium-agent.d.ts +0 -25
- package/dist/lib/terminal/backends/vscodium-agent.js +0 -36
- package/dist/lib/terminal/engine.d.ts +0 -17
- package/dist/lib/terminal/engine.js +0 -10
- package/dist/lib/terminal/index.d.ts +0 -8
- package/dist/lib/terminal/inject.d.ts +1 -173
- package/dist/lib/terminal/inject.js +0 -146
- package/dist/lib/terminal/policy.d.ts +0 -8
- package/dist/lib/terminal/policy.js +0 -1
- package/dist/lib/terminal/preferred.d.ts +0 -66
- package/dist/lib/terminal/preferred.js +0 -30
- package/dist/lib/terminal/quote.d.ts +0 -8
- package/dist/lib/terminal/quote.js +0 -8
- package/dist/lib/terminal/resolve.d.ts +0 -46
- package/dist/lib/terminal/resolve.js +0 -30
- package/dist/lib/terminal/run-surface.d.ts +0 -56
- package/dist/lib/terminal/run-surface.js +0 -46
- package/dist/lib/terminal/shell.d.ts +0 -3
- package/dist/lib/terminal/shell.js +0 -13
- package/dist/lib/terminal/transport.d.ts +0 -14
- package/dist/lib/terminal/transport.js +1 -30
- package/dist/lib/terminal/types.d.ts +0 -40
- package/dist/lib/terminal/types.js +0 -10
- package/dist/lib/text/relative-time.d.ts +0 -36
- package/dist/lib/text/relative-time.js +0 -43
- package/dist/lib/text/short-id.d.ts +0 -16
- package/dist/lib/text/short-id.js +0 -16
- package/dist/lib/text/width.d.ts +0 -24
- package/dist/lib/text/width.js +10 -52
- package/dist/lib/tmux/binary.d.ts +0 -36
- package/dist/lib/tmux/binary.js +0 -28
- package/dist/lib/tmux/index.d.ts +0 -5
- package/dist/lib/tmux/index.js +0 -5
- package/dist/lib/tmux/orphan-reap.d.ts +0 -253
- package/dist/lib/tmux/orphan-reap.js +3 -299
- package/dist/lib/tmux/paths.d.ts +0 -14
- package/dist/lib/tmux/paths.js +0 -14
- package/dist/lib/tmux/session.d.ts +0 -263
- package/dist/lib/tmux/session.js +6 -344
- package/dist/lib/traces/backend.d.ts +0 -20
- package/dist/lib/traces/backend.js +0 -23
- package/dist/lib/traces/classify.d.ts +0 -20
- package/dist/lib/traces/classify.js +0 -7
- package/dist/lib/traces/insights.d.ts +1 -84
- package/dist/lib/traces/insights.js +0 -126
- package/dist/lib/traces/phenotype.d.ts +0 -69
- package/dist/lib/traces/phenotype.js +0 -150
- package/dist/lib/traces/provision.d.ts +0 -1
- package/dist/lib/traces/provision.js +0 -5
- package/dist/lib/traces/schema2-build.d.ts +3 -60
- package/dist/lib/traces/schema2-build.js +8 -149
- package/dist/lib/traces/schema2-danger.d.ts +0 -30
- package/dist/lib/traces/schema2-danger.js +1 -63
- package/dist/lib/traces/schema2.d.ts +0 -11
- package/dist/lib/traces/segments.d.ts +0 -44
- package/dist/lib/traces/segments.js +0 -65
- package/dist/lib/traces/sync.d.ts +2 -239
- package/dist/lib/traces/sync.js +15 -237
- package/dist/lib/traces/worker-template.d.ts +0 -3
- package/dist/lib/traces/worker-template.js +0 -29
- package/dist/lib/triggers/handlers.d.ts +0 -82
- package/dist/lib/triggers/handlers.js +0 -75
- package/dist/lib/triggers/webhook.d.ts +0 -158
- package/dist/lib/triggers/webhook.js +0 -143
- package/dist/lib/types.d.ts +0 -736
- package/dist/lib/types.js +0 -50
- package/dist/lib/uninstall.d.ts +0 -17
- package/dist/lib/uninstall.js +0 -75
- package/dist/lib/usage-backoff.d.ts +0 -20
- package/dist/lib/usage-backoff.js +3 -60
- package/dist/lib/usage-refresh.d.ts +0 -154
- package/dist/lib/usage-refresh.js +8 -212
- package/dist/lib/verbs.d.ts +0 -12
- package/dist/lib/verbs.js +0 -12
- package/dist/lib/version-duplicates.d.ts +0 -6
- package/dist/lib/version-duplicates.js +0 -6
- package/dist/lib/version.d.ts +0 -55
- package/dist/lib/version.js +1 -58
- package/dist/lib/view-types.d.ts +0 -48
- package/dist/lib/warn-unpushed.d.ts +0 -27
- package/dist/lib/warn-unpushed.js +1 -45
- package/dist/lib/watchdog/history.d.ts +0 -1
- package/dist/lib/watchdog/history.js +0 -3
- package/dist/lib/watchdog/index.js +0 -2
- package/dist/lib/watchdog/log.d.ts +0 -19
- package/dist/lib/watchdog/log.js +0 -34
- package/dist/lib/watchdog/read.d.ts +0 -27
- package/dist/lib/watchdog/read.js +3 -58
- package/dist/lib/watchdog/rotate.d.ts +0 -139
- package/dist/lib/watchdog/rotate.js +2 -151
- package/dist/lib/watchdog/runner.d.ts +0 -125
- package/dist/lib/watchdog/runner.js +3 -223
- package/dist/lib/watchdog/service.d.ts +0 -1
- package/dist/lib/watchdog/service.js +0 -2
- package/dist/lib/watchdog/watchdog-agent.d.ts +0 -31
- package/dist/lib/watchdog/watchdog-agent.js +0 -27
- package/dist/lib/watchdog/watchdog.d.ts +0 -7
- package/dist/lib/watchdog/watchdog.js +0 -10
- package/dist/lib/watchdog/watchdogTail.js +0 -7
- package/dist/lib/whats-new.d.ts +0 -10
- package/dist/lib/whats-new.js +0 -21
- package/dist/lib/workflows-registry.d.ts +0 -45
- package/dist/lib/workflows-registry.js +0 -60
- package/dist/lib/workflows.d.ts +0 -282
- package/dist/lib/workflows.js +3 -213
- package/dist/lib/worktree/held.d.ts +0 -89
- package/dist/lib/worktree/held.js +1 -103
- package/dist/lib/wrap.d.ts +0 -32
- package/dist/lib/wrap.js +0 -32
- package/dist/lib/yaml-io.d.ts +0 -45
- package/dist/lib/yaml-io.js +0 -47
- package/dist/session-tracker/dist/adapters/claude.js +0 -2
- package/dist/session-tracker/dist/hook.sh +4 -37
- package/dist/session-tracker/dist/index.d.ts +0 -7
- package/dist/session-tracker/dist/index.js +0 -5
- package/dist/session-tracker/dist/install-hook.d.ts +0 -5
- package/dist/session-tracker/dist/install-hook.js +1 -15
- package/dist/session-tracker/dist/prune-state.js +0 -4
- package/dist/session-tracker/dist/reader.js +0 -4
- package/dist/session-tracker/dist/state-file.d.ts +0 -3
- package/dist/session-tracker/dist/state-file.js +3 -8
- package/package.json +3 -4
- package/scripts/postinstall.js +8 -116
- package/dist/lib/session/artifacts.d.ts +0 -14
- package/dist/lib/session/artifacts.js +0 -101
- package/dist/lib/session/bash-command.d.ts +0 -63
- package/dist/lib/session/bash-command.js +0 -490
- package/dist/lib/session/digest.d.ts +0 -66
- package/dist/lib/session/digest.js +0 -328
- package/dist/lib/session/highlights.d.ts +0 -151
- package/dist/lib/session/highlights.js +0 -391
- package/dist/lib/session/insights.d.ts +0 -165
- package/dist/lib/session/insights.js +0 -563
- package/dist/lib/session/linear.d.ts +0 -19
- package/dist/lib/session/linear.js +0 -99
- package/dist/lib/session/parse.d.ts +0 -224
- package/dist/lib/session/parse.js +0 -2408
- package/dist/lib/session/prompt.d.ts +0 -213
- package/dist/lib/session/prompt.js +0 -601
- package/dist/lib/session/render.d.ts +0 -133
- package/dist/lib/session/render.js +0 -1047
- package/dist/lib/session/share-html.d.ts +0 -35
- package/dist/lib/session/share-html.js +0 -319
- package/dist/lib/session/shell-programs.d.ts +0 -33
- package/dist/lib/session/shell-programs.js +0 -380
- package/dist/lib/session/state.d.ts +0 -269
- package/dist/lib/session/state.js +0 -777
- package/dist/lib/session/stream-render.d.ts +0 -4
- package/dist/lib/session/stream-render.js +0 -131
- package/dist/lib/session/tail.d.ts +0 -88
- package/dist/lib/session/tail.js +0 -294
- package/dist/lib/session/team-filter.d.ts +0 -129
- package/dist/lib/session/team-filter.js +0 -269
- package/dist/lib/session/timeline.d.ts +0 -172
- package/dist/lib/session/timeline.js +0 -636
- package/dist/lib/session/tool-calls.d.ts +0 -132
- package/dist/lib/session/tool-calls.js +0 -674
- package/dist/lib/session/trajectory-compare.d.ts +0 -48
- package/dist/lib/session/trajectory-compare.js +0 -116
- package/dist/lib/session/trajectory-html.d.ts +0 -19
- package/dist/lib/session/trajectory-html.js +0 -771
- package/dist/lib/session/trajectory-lineage.d.ts +0 -93
- package/dist/lib/session/trajectory-lineage.js +0 -195
- package/dist/lib/session/trajectory-text.d.ts +0 -38
- package/dist/lib/session/trajectory-text.js +0 -284
- package/dist/lib/session/trajectory.d.ts +0 -145
- package/dist/lib/session/trajectory.js +0 -394
- package/dist/lib/session/types.d.ts +0 -627
- package/dist/lib/session/types.js +0 -43
|
@@ -1,777 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Session state inference.
|
|
3
|
-
*
|
|
4
|
-
* Turns a chronological slice of normalized `SessionEvent`s (typically the tail
|
|
5
|
-
* of a transcript) plus lightweight context (file mtime, cwd, branch, whether
|
|
6
|
-
* the owning process is alive) into a `SessionState`: is the agent working,
|
|
7
|
-
* waiting on the user, or idle — and did it open a PR, is it in a worktree, is
|
|
8
|
-
* it tied to a tracker ticket. Pure functions, no I/O, so the whole thing is
|
|
9
|
-
* unit-testable and shared by both the live `--active` path and the incremental
|
|
10
|
-
* scanner (which persists the durable signals to the index).
|
|
11
|
-
*
|
|
12
|
-
* Structural signals are preferred over prose heuristics: Claude's
|
|
13
|
-
* `ExitPlanMode` / `AskUserQuestion` tool calls are exact "waiting on you"
|
|
14
|
-
* markers. Codex has no such tools, so it falls back to last-role + question
|
|
15
|
-
* shape + mtime — same function, driven off the normalized events.
|
|
16
|
-
*/
|
|
17
|
-
import * as path from 'path';
|
|
18
|
-
import { Lexer } from 'marked';
|
|
19
|
-
import { isCompletedTodoStatus, SNAPSHOT_TODO_TOOLS, summarizeToolUse } from './parse.js';
|
|
20
|
-
import { isShellExecTool } from './shell-programs.js';
|
|
21
|
-
import { classifyFileChanges } from './digest.js';
|
|
22
|
-
import { extractArtifacts } from './highlights.js';
|
|
23
|
-
import { LINEAR_KEY_DENYLIST, linearIssueKeys } from './linear.js';
|
|
24
|
-
/**
|
|
25
|
-
* Detect per-session rate-limit / usage-limit signals in assistant or error
|
|
26
|
-
* text (RUSH-1523). Matches the same shapes the ext's prewarm detectBlockingPrompt
|
|
27
|
-
* uses, plus common Claude/Codex/Gemini limit strings.
|
|
28
|
-
*/
|
|
29
|
-
export function detectRateLimited(text) {
|
|
30
|
-
if (!text)
|
|
31
|
-
return false;
|
|
32
|
-
const t = text.toLowerCase();
|
|
33
|
-
return (/\brate[- ]?limit(ed|s)?\b/.test(t) ||
|
|
34
|
-
/\btoo many requests\b/.test(t) ||
|
|
35
|
-
/\b429\b/.test(t) ||
|
|
36
|
-
/\busage[- ]?limit(ed)?\b/.test(t) ||
|
|
37
|
-
/\bhit your (usage |rate )?limit\b/.test(t) ||
|
|
38
|
-
/\byou('ve| have) (hit|reached|exceeded) (your |the )?(rate |usage )?limit\b/.test(t) ||
|
|
39
|
-
/\bout of (credits|quota)\b/.test(t) ||
|
|
40
|
-
/\bquota exceeded\b/.test(t) ||
|
|
41
|
-
/\btry again (in|later|after)\b/.test(t) && /\b(limit|rate|quota|throttl)\b/.test(t));
|
|
42
|
-
}
|
|
43
|
-
/** A healthy live session writes several times a minute; 2 min ⇒ "recently active". */
|
|
44
|
-
const ACTIVE_WINDOW_MS = 2 * 60_000;
|
|
45
|
-
/**
|
|
46
|
-
* A prose trailing question ("…?") is a HEURISTIC, so it decays: past this long
|
|
47
|
-
* with no session writes it stops classifying as waiting_input — otherwise a
|
|
48
|
-
* finished session that signed off with "anything else?" reads as needing input
|
|
49
|
-
* forever (RUSH-1522). The structural ExitPlanMode / AskUserQuestion signals are
|
|
50
|
-
* exempt: they are precise, still-unanswered decisions.
|
|
51
|
-
*/
|
|
52
|
-
const PROSE_QUESTION_FRESH_MS = 30 * 60_000;
|
|
53
|
-
/** Claude tool names that structurally mean "the agent handed control back to you". */
|
|
54
|
-
const PLAN_TOOL = 'ExitPlanMode';
|
|
55
|
-
const ASK_TOOL = 'AskUserQuestion';
|
|
56
|
-
const TASK_CREATE_TOOL = 'TaskCreate';
|
|
57
|
-
const TASK_UPDATE_TOOL = 'TaskUpdate';
|
|
58
|
-
/**
|
|
59
|
-
* Derive live plan progress from a checklist tool call's args. Accepts Claude's
|
|
60
|
-
* `TodoWrite` (`todos: [{content,status,activeForm}]`), Kimi's `TodoList`
|
|
61
|
-
* (`todos: [{title,status}]`, where finished is `done` rather than `completed`)
|
|
62
|
-
* and Codex's `update_plan` (`plan: [{step,status}]`) shapes, so the CLI is the
|
|
63
|
-
* single source of checklist state for every agent. Returns undefined when there
|
|
64
|
-
* is no usable list, so a session with no plan carries no `todos` field.
|
|
65
|
-
*/
|
|
66
|
-
export function extractTodoProgress(args) {
|
|
67
|
-
const input = args?.input && typeof args.input === 'object' ? args.input : args;
|
|
68
|
-
const raw = Array.isArray(input?.todos)
|
|
69
|
-
? input.todos
|
|
70
|
-
: Array.isArray(input?.plan)
|
|
71
|
-
? input.plan
|
|
72
|
-
: undefined;
|
|
73
|
-
if (!Array.isArray(raw) || raw.length === 0)
|
|
74
|
-
return undefined;
|
|
75
|
-
const items = [];
|
|
76
|
-
for (const t of raw) {
|
|
77
|
-
const activeForm = typeof t?.activeForm === 'string' && t.activeForm ? t.activeForm : undefined;
|
|
78
|
-
const content = typeof t?.content === 'string' && t.content
|
|
79
|
-
? t.content
|
|
80
|
-
: typeof t?.text === 'string' && t.text
|
|
81
|
-
? t.text
|
|
82
|
-
: typeof t?.step === 'string' && t.step
|
|
83
|
-
? t.step
|
|
84
|
-
: typeof t?.title === 'string' && t.title
|
|
85
|
-
? t.title
|
|
86
|
-
: activeForm ?? '';
|
|
87
|
-
if (!content)
|
|
88
|
-
continue;
|
|
89
|
-
const status = isCompletedTodoStatus(t?.status)
|
|
90
|
-
? 'completed'
|
|
91
|
-
: t?.status === 'in_progress'
|
|
92
|
-
? 'in_progress'
|
|
93
|
-
: 'pending';
|
|
94
|
-
const description = typeof t?.description === 'string' && t.description ? t.description : undefined;
|
|
95
|
-
items.push({ content, status, ...(description ? { description } : {}), ...(activeForm ? { activeForm } : {}) });
|
|
96
|
-
}
|
|
97
|
-
if (items.length === 0)
|
|
98
|
-
return undefined;
|
|
99
|
-
const done = items.filter(i => i.status === 'completed').length;
|
|
100
|
-
const inProgress = items.find(i => i.status === 'in_progress');
|
|
101
|
-
return {
|
|
102
|
-
items,
|
|
103
|
-
done,
|
|
104
|
-
total: items.length,
|
|
105
|
-
activeForm: inProgress ? inProgress.activeForm ?? inProgress.content : undefined,
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
/** Fold snapshot checklist tools and Claude TaskCreate/TaskUpdate event logs. */
|
|
109
|
-
export function extractTodoProgressFromEvents(events) {
|
|
110
|
-
let items = [];
|
|
111
|
-
let nextTaskId = 1;
|
|
112
|
-
let sawChecklist = false;
|
|
113
|
-
for (const event of events) {
|
|
114
|
-
if (event.type !== 'tool_use')
|
|
115
|
-
continue;
|
|
116
|
-
const args = event.args ?? {};
|
|
117
|
-
if (SNAPSHOT_TODO_TOOLS.has(event.tool ?? '')) {
|
|
118
|
-
const input = args.input && typeof args.input === 'object' ? args.input : args;
|
|
119
|
-
const raw = Array.isArray(input.todos) ? input.todos : Array.isArray(input.plan) ? input.plan : undefined;
|
|
120
|
-
if (raw) {
|
|
121
|
-
items = raw.map((item) => ({ ...item }));
|
|
122
|
-
sawChecklist = true;
|
|
123
|
-
}
|
|
124
|
-
continue;
|
|
125
|
-
}
|
|
126
|
-
if (event.tool === TASK_CREATE_TOOL) {
|
|
127
|
-
const content = args.subject || args.description;
|
|
128
|
-
if (typeof content !== 'string' || !content.trim())
|
|
129
|
-
continue;
|
|
130
|
-
items.push({
|
|
131
|
-
taskId: String(nextTaskId++),
|
|
132
|
-
content: content.trim(),
|
|
133
|
-
description: typeof args.description === 'string' ? args.description : undefined,
|
|
134
|
-
activeForm: typeof args.activeForm === 'string' ? args.activeForm : undefined,
|
|
135
|
-
status: 'pending',
|
|
136
|
-
});
|
|
137
|
-
sawChecklist = true;
|
|
138
|
-
continue;
|
|
139
|
-
}
|
|
140
|
-
if (event.tool === TASK_UPDATE_TOOL) {
|
|
141
|
-
const taskId = String(args.taskId ?? args.task_id ?? '');
|
|
142
|
-
const index = items.findIndex(item => String(item.taskId ?? '') === taskId);
|
|
143
|
-
if (index < 0)
|
|
144
|
-
continue;
|
|
145
|
-
if (args.status === 'deleted') {
|
|
146
|
-
items.splice(index, 1);
|
|
147
|
-
continue;
|
|
148
|
-
}
|
|
149
|
-
const prior = items[index];
|
|
150
|
-
items[index] = {
|
|
151
|
-
...prior,
|
|
152
|
-
...(typeof args.subject === 'string' ? { content: args.subject } : {}),
|
|
153
|
-
...(typeof args.description === 'string' ? { description: args.description } : {}),
|
|
154
|
-
...(typeof args.activeForm === 'string' ? { activeForm: args.activeForm } : {}),
|
|
155
|
-
...(typeof args.status === 'string' ? { status: args.status } : {}),
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
return sawChecklist ? extractTodoProgress({ todos: items }) : undefined;
|
|
160
|
-
}
|
|
161
|
-
/** Derive a recency-ordered, de-duplicated list of directories touched by tools. */
|
|
162
|
-
export function extractRecentDirectoriesTouched(events, cwd) {
|
|
163
|
-
const dirs = [];
|
|
164
|
-
const add = (value, file = false) => {
|
|
165
|
-
if (typeof value !== 'string' || !value.trim())
|
|
166
|
-
return;
|
|
167
|
-
const resolved = path.isAbsolute(value) ? value : path.resolve(cwd || process.cwd(), value);
|
|
168
|
-
const dir = file ? path.dirname(resolved) : resolved;
|
|
169
|
-
const old = dirs.indexOf(dir);
|
|
170
|
-
if (old >= 0)
|
|
171
|
-
dirs.splice(old, 1);
|
|
172
|
-
dirs.push(dir);
|
|
173
|
-
};
|
|
174
|
-
for (const event of events) {
|
|
175
|
-
if (event.type !== 'tool_use')
|
|
176
|
-
continue;
|
|
177
|
-
const tool = event.tool ?? '';
|
|
178
|
-
const args = event.args ?? {};
|
|
179
|
-
if (['Edit', 'Write', 'edit_file', 'write_file', 'create_file', 'edit', 'write'].includes(tool)) {
|
|
180
|
-
add(args.file_path ?? args.filePath ?? args.path ?? event.path, true);
|
|
181
|
-
}
|
|
182
|
-
else if (isShellExecTool(tool)) {
|
|
183
|
-
add(args.cwd ?? args.Cwd ?? args.workdir ?? args.working_directory ?? cwd);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
return dirs.length ? dirs.slice(-10) : undefined;
|
|
187
|
-
}
|
|
188
|
-
/** Trailing '?' or a leading interrogative — a question aimed at the user. */
|
|
189
|
-
const QUESTION_TRAILING = /\?["'”)\]]?\s*$/;
|
|
190
|
-
const QUESTION_PHRASE = /\b(shall i|should i|do you want|would you like|which (?:one|option|approach|of)|can you (?:confirm|clarify)|please (?:confirm|clarify|advise)|let me know|are you (?:ok|okay|sure)|proceed\?)\b/i;
|
|
191
|
-
/**
|
|
192
|
-
* Linear/Jira-style ref detection reuses the canonical key matcher +
|
|
193
|
-
* {@link LINEAR_KEY_DENYLIST} from `./linear.js`, so the transcript detector and
|
|
194
|
-
* the owner-ping linkifier agree on what a real key is (no second copy to drift).
|
|
195
|
-
*/
|
|
196
|
-
/** Lowercase branch form (Linear branch names): muqsit/rush-1234-fix. */
|
|
197
|
-
const TICKET_BRANCH_RE = /(?:^|[/_-])([a-z]{2,6})-(\d{2,6})(?=[/_-]|$)/;
|
|
198
|
-
const PR_URL_RE = /https:\/\/github\.com\/[^\s"'()<>]+\/pull\/(\d+)/;
|
|
199
|
-
// Either separator: a Windows session cwd is `…\.agents\worktrees\<slug>`, and a
|
|
200
|
-
// forward-slash-only pattern silently derived no slug there (the RUSH-2358
|
|
201
|
-
// worktree_slug parity test is red on the Windows CI leg for exactly this).
|
|
202
|
-
export const WORKTREE_RE = /[\\/]\.agents[\\/]worktrees[\\/]([^\\/]+)/;
|
|
203
|
-
/** gh invocations that create/open a PR. */
|
|
204
|
-
const GH_PR_CREATE_RE = /\bgh\s+pr\s+(?:create|new)\b/;
|
|
205
|
-
/** gh invocation that opens an issue — the created number is read from its result. */
|
|
206
|
-
const GH_ISSUE_CREATE_RE = /\bgh\s+issue\s+create\b/;
|
|
207
|
-
/** A created GitHub issue URL (…/issues/123) in tool-result output. */
|
|
208
|
-
const GH_ISSUE_URL_RE = /https:\/\/github\.com\/[^\s"'()<>]+\/issues\/(\d+)/;
|
|
209
|
-
/**
|
|
210
|
-
* Flags of `teams create` / `teams add` that take a value, so the value is not
|
|
211
|
-
* mistaken for the positional team name. Mirrors their value-taking flags in
|
|
212
|
-
* `commands/teams.ts` — most are `.option('… <x>')` registrations, but
|
|
213
|
-
* `--device` comes from `addHostOption`, so auditing this list against
|
|
214
|
-
* `.option(` alone would wrongly drop it. A flag missing here degrades to "no
|
|
215
|
-
* team detected", never to a wrong one.
|
|
216
|
-
*/
|
|
217
|
-
const TEAM_VALUE_FLAGS = [
|
|
218
|
-
'-d', '--description', '--use-worktree', '--devices', '--hosts', '--repo',
|
|
219
|
-
'-n', '--name', '-m', '--mode', '-e', '--effort', '--model', '--env',
|
|
220
|
-
'--cwd', '--worktree', '--after', '--task-type', '--cloud', '--branch',
|
|
221
|
-
'--device',
|
|
222
|
-
];
|
|
223
|
-
/**
|
|
224
|
-
* One flag value: a quoted string or a bare token. `-d "sessions lineage"` is the
|
|
225
|
-
* common shape — `--description` is usually a phrase — and a value pattern of
|
|
226
|
-
* `\S+` alone stops at the first space, leaving the rest of the phrase to be read
|
|
227
|
-
* as the positional team name (`… -d "sessions lineage" my-team` detected
|
|
228
|
-
* `lineage`). Quotes are matched as a unit so the whole value is consumed.
|
|
229
|
-
*
|
|
230
|
-
* A value containing an ESCAPED quote (`-d "say \"hi\" now"`) stops the quoted
|
|
231
|
-
* branch early and the match then fails outright — which is the intended failure
|
|
232
|
-
* direction: no team detected rather than a wrong one.
|
|
233
|
-
*/
|
|
234
|
-
const FLAG_VALUE = String.raw `(?:"[^"\n]*"|'[^'\n]*'|\S+)`;
|
|
235
|
-
/**
|
|
236
|
-
* `agents teams create <name>` / `agents teams add <team> …` (also the `ag` alias).
|
|
237
|
-
* The team NAME is the first bareword after the sub-verb, skipping any flags. This
|
|
238
|
-
* is the structural signal that a session SPAWNED a team (vs. was spawned by one).
|
|
239
|
-
*
|
|
240
|
-
* The separators are spaces/tabs, never `\s`: a command string routinely embeds
|
|
241
|
-
* documentation and quoted output, and `\s` let the flag-skip run across newlines
|
|
242
|
-
* to capture a word from a completely different line (a real scan produced
|
|
243
|
-
* `team:installed` from a heredoc). For the same reason the flag-skip is bounded
|
|
244
|
-
* rather than unlimited — a real invocation carries a handful of flags before the
|
|
245
|
-
* name, not dozens.
|
|
246
|
-
*/
|
|
247
|
-
const TEAMS_SPAWN_RE = new RegExp(
|
|
248
|
-
// Start of an actually-executed command: string start, a newline, or a shell
|
|
249
|
-
// separator. Without this, a backticked mention inside prose or tool output
|
|
250
|
-
// ("… and `agents teams add --device auto`") reads as a spawn.
|
|
251
|
-
String.raw `(?:^|[\n;&|(]|&&|\|\|)[ \t]*` +
|
|
252
|
-
String.raw `ag(?:ents)?[ \t]+teams?[ \t]+(?:create|add)[ \t]+` +
|
|
253
|
-
// Flags before the positional name. A value-taking flag must swallow its
|
|
254
|
-
// value, or `--device auto` leaves `auto` looking like the team name — and
|
|
255
|
-
// the generic branch must exclude those flags, or it swallows the flag alone
|
|
256
|
-
// and hands the value back as the name.
|
|
257
|
-
String.raw `(?:(?:${TEAM_VALUE_FLAGS.join('|')})[= \t]${FLAG_VALUE}[ \t]+` +
|
|
258
|
-
String.raw `|(?!(?:${TEAM_VALUE_FLAGS.join('|')})[= \t])--?[a-z][\w-]*(?:=\S+)?[ \t]+){0,6}` +
|
|
259
|
-
// A team name may start with a digit — `createTeam` validates nothing, and
|
|
260
|
-
// `2fa-migration` is a legal name — so the class stays [A-Za-z0-9]. The
|
|
261
|
-
// all-digits case is rejected in the guard below instead.
|
|
262
|
-
String.raw `([A-Za-z0-9][\w-]*)`);
|
|
263
|
-
/**
|
|
264
|
-
* Sub-verbs that can follow `teams create|add` in prose ("teams add a teammate")
|
|
265
|
-
* but are never a team name. Guards the common case where the match came from a
|
|
266
|
-
* sentence rather than an executed command.
|
|
267
|
-
*/
|
|
268
|
-
const NON_TEAM_WORDS = new Set(['a', 'an', 'the', 'to', 'for', 'with', 'and', 'this', 'your', 'my', 'it']);
|
|
269
|
-
/** Collapse to a single trimmed line for a one-row preview cell. */
|
|
270
|
-
function oneLine(s) {
|
|
271
|
-
return s.replace(/\s+/g, ' ').trim();
|
|
272
|
-
}
|
|
273
|
-
/** Detect a worktree from the session cwd, per the `.agents/worktrees/<slug>/` convention. */
|
|
274
|
-
export function detectWorktree(cwd, branch) {
|
|
275
|
-
if (!cwd)
|
|
276
|
-
return undefined;
|
|
277
|
-
const m = cwd.match(WORKTREE_RE);
|
|
278
|
-
if (!m)
|
|
279
|
-
return undefined;
|
|
280
|
-
return { path: cwd, slug: m[1], branch: branch || undefined };
|
|
281
|
-
}
|
|
282
|
-
/** Detect a tracker ticket from free text (prompt/topic) then a branch name. */
|
|
283
|
-
export function detectTicket(text, branch) {
|
|
284
|
-
if (text) {
|
|
285
|
-
const key = linearIssueKeys(text)[0];
|
|
286
|
-
if (key)
|
|
287
|
-
return { id: key };
|
|
288
|
-
}
|
|
289
|
-
if (branch) {
|
|
290
|
-
const m = branch.match(TICKET_BRANCH_RE);
|
|
291
|
-
if (m) {
|
|
292
|
-
const key = m[1].toUpperCase();
|
|
293
|
-
if (!LINEAR_KEY_DENYLIST.has(key))
|
|
294
|
-
return { id: `${key}-${m[2]}` };
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
return undefined;
|
|
298
|
-
}
|
|
299
|
-
/** Pull a PR URL + number out of tool-result output text. */
|
|
300
|
-
export function extractPrUrl(output) {
|
|
301
|
-
if (!output)
|
|
302
|
-
return undefined;
|
|
303
|
-
const m = output.match(PR_URL_RE);
|
|
304
|
-
if (!m)
|
|
305
|
-
return undefined;
|
|
306
|
-
return { url: m[0], number: Number.parseInt(m[1], 10) };
|
|
307
|
-
}
|
|
308
|
-
/** True when a Bash/exec command string is a `gh pr create`. */
|
|
309
|
-
export function isPrCreateCommand(command) {
|
|
310
|
-
return !!command && GH_PR_CREATE_RE.test(command);
|
|
311
|
-
}
|
|
312
|
-
/**
|
|
313
|
-
* The team a session SPAWNED, from an `agents teams create/add <name>` command.
|
|
314
|
-
* Returns the team name, or undefined if the command isn't a team spawn. Note this
|
|
315
|
-
* is the opposite of `isTeamOrigin` (which marks sessions spawned BY a team).
|
|
316
|
-
*/
|
|
317
|
-
export function detectSpawnedTeam(command) {
|
|
318
|
-
if (!command)
|
|
319
|
-
return undefined;
|
|
320
|
-
const m = command.match(TEAMS_SPAWN_RE);
|
|
321
|
-
if (!m)
|
|
322
|
-
return undefined;
|
|
323
|
-
const name = m[1];
|
|
324
|
-
// A single character is a doc placeholder (`agents teams create t --device <box>`)
|
|
325
|
-
// far more often than a real team, and an English article is prose. Both used to
|
|
326
|
-
// land in the index as a team name, and now that the name is rendered on the row
|
|
327
|
-
// a wrong one is worse than none.
|
|
328
|
-
// A single character is a doc placeholder (`agents teams create t --device <name>`)
|
|
329
|
-
// far more often than a real team; an all-digits token is a flag value or a list
|
|
330
|
-
// index that leaked through, never a name someone typed. Both had reached the
|
|
331
|
-
// index, and now that the name is rendered a wrong one is worse than none.
|
|
332
|
-
if (name.length < 2 || /^\d+$/.test(name) || NON_TEAM_WORDS.has(name.toLowerCase()))
|
|
333
|
-
return undefined;
|
|
334
|
-
return name;
|
|
335
|
-
}
|
|
336
|
-
/**
|
|
337
|
-
* True when a tool_use call CREATES a tracker ticket — a Linear MCP `create_issue`
|
|
338
|
-
* tool, or a Bash `gh issue create`. The created id is then read from the matching
|
|
339
|
-
* tool_result via {@link extractCreatedTicket}.
|
|
340
|
-
*/
|
|
341
|
-
export function isTicketCreateTool(name, command) {
|
|
342
|
-
if (typeof name === 'string' && /linear/i.test(name) && /create[_-]?issue/i.test(name))
|
|
343
|
-
return true;
|
|
344
|
-
// Any shell tool (Bash / shell / local_shell) running `gh issue create`.
|
|
345
|
-
if (!!command && GH_ISSUE_CREATE_RE.test(command))
|
|
346
|
-
return true;
|
|
347
|
-
return false;
|
|
348
|
-
}
|
|
349
|
-
/**
|
|
350
|
-
* Pull a created ticket ref out of a create-issue tool_result. Linear returns a
|
|
351
|
-
* key like `RUSH-1234`; `gh issue create` returns the issue URL, from which we
|
|
352
|
-
* take `#<number>`. Returns undefined when neither shape is present.
|
|
353
|
-
*/
|
|
354
|
-
export function extractCreatedTicket(text) {
|
|
355
|
-
if (!text)
|
|
356
|
-
return undefined;
|
|
357
|
-
const lin = linearIssueKeys(text)[0];
|
|
358
|
-
if (lin)
|
|
359
|
-
return lin;
|
|
360
|
-
const gh = text.match(GH_ISSUE_URL_RE);
|
|
361
|
-
if (gh)
|
|
362
|
-
return `#${gh[1]}`;
|
|
363
|
-
return undefined;
|
|
364
|
-
}
|
|
365
|
-
/**
|
|
366
|
-
* Pull the plan markdown out of an `ExitPlanMode` tool_use event's args. The
|
|
367
|
-
* Claude tool schema is `{ plan: string }`; the transcript parser already
|
|
368
|
-
* lifts `input` onto `event.args`. Returns undefined for a missing/empty plan
|
|
369
|
-
* so consumers can rely on `plan?: string` truthiness.
|
|
370
|
-
*/
|
|
371
|
-
function extractPlanText(args) {
|
|
372
|
-
const plan = args?.plan;
|
|
373
|
-
if (typeof plan !== 'string')
|
|
374
|
-
return undefined;
|
|
375
|
-
const trimmed = plan.trim();
|
|
376
|
-
return trimmed ? plan : undefined;
|
|
377
|
-
}
|
|
378
|
-
/**
|
|
379
|
-
* Structured question from a Claude `AskUserQuestion` tool call. Its input is
|
|
380
|
-
* `{ questions: [{ question, header, options: [{label, description}] }] }` and the
|
|
381
|
-
* whole thing is already parsed onto `event.args` by the transcript parser — this
|
|
382
|
-
* surfaces the first question + its options (instead of collapsing to a generic
|
|
383
|
-
* "Asked you a question"). The prompt is a select-list, so each option carries its
|
|
384
|
-
* 1-based selection digit as `key`.
|
|
385
|
-
*/
|
|
386
|
-
export function structuredQuestionFromAsk(args) {
|
|
387
|
-
const q = Array.isArray(args?.questions) ? args.questions[0] : undefined;
|
|
388
|
-
if (!q)
|
|
389
|
-
return undefined;
|
|
390
|
-
const text = oneLine(String(q.question ?? q.header ?? '')) || 'Asked you a question';
|
|
391
|
-
const raw = Array.isArray(q.options) ? q.options : [];
|
|
392
|
-
const options = [];
|
|
393
|
-
for (const o of raw) {
|
|
394
|
-
const label = typeof o === 'string' ? oneLine(o) : o?.label != null ? oneLine(String(o.label)) : '';
|
|
395
|
-
if (!label)
|
|
396
|
-
continue;
|
|
397
|
-
const description = typeof o === 'object' && o?.description != null ? oneLine(String(o.description)) : undefined;
|
|
398
|
-
options.push({ label, description, key: String(options.length + 1) });
|
|
399
|
-
}
|
|
400
|
-
return { text, reason: 'question', options: options.length ? options : undefined };
|
|
401
|
-
}
|
|
402
|
-
/**
|
|
403
|
-
* Canonical approve/send-back choices for Claude's plan-review dialog, which
|
|
404
|
-
* carries no agent-supplied option list. Approve is reliably option 1; keep-planning
|
|
405
|
-
* maps to ESC, which cancels the prompt in every variant (2- or 3-option) — safer
|
|
406
|
-
* than guessing a digit that could differ.
|
|
407
|
-
*/
|
|
408
|
-
function planReviewQuestion() {
|
|
409
|
-
return {
|
|
410
|
-
text: 'Plan ready — review it',
|
|
411
|
-
reason: 'plan_review',
|
|
412
|
-
options: [
|
|
413
|
-
{ label: 'Approve plan', key: '1' },
|
|
414
|
-
{ label: 'Keep planning', key: 'esc' },
|
|
415
|
-
],
|
|
416
|
-
};
|
|
417
|
-
}
|
|
418
|
-
/**
|
|
419
|
-
* The harness's own stamp on an event, as ms — or undefined when the event carries
|
|
420
|
-
* none. A stamp LATER than the file's last write cannot have come from the
|
|
421
|
-
* transcript (a parser that finds no stamp fills the field with its own parse
|
|
422
|
-
* time), so it is rejected rather than read as "just happened": the mtime is the
|
|
423
|
-
* physical upper bound on when any transcript line was written.
|
|
424
|
-
*/
|
|
425
|
-
function eventStampMs(e, mtimeMs) {
|
|
426
|
-
if (!e?.timestamp)
|
|
427
|
-
return undefined;
|
|
428
|
-
const ms = Date.parse(e.timestamp);
|
|
429
|
-
if (!Number.isFinite(ms))
|
|
430
|
-
return undefined;
|
|
431
|
-
if (mtimeMs != null && ms > mtimeMs)
|
|
432
|
-
return undefined;
|
|
433
|
-
return ms;
|
|
434
|
-
}
|
|
435
|
-
/** Does an assistant message read as a question directed at the user? */
|
|
436
|
-
/** Strip inline-code spans so a `?` living only inside `code` never reads as a question. */
|
|
437
|
-
function stripInlineCode(s) {
|
|
438
|
-
return s.replace(/`[^`]*`/g, '');
|
|
439
|
-
}
|
|
440
|
-
/** Whether one line's prose ENDS an ask (trailing '?' or an interrogative phrase). */
|
|
441
|
-
function lineIsQuestion(line) {
|
|
442
|
-
const probe = stripInlineCode(line.trim());
|
|
443
|
-
return QUESTION_TRAILING.test(probe) || QUESTION_PHRASE.test(probe);
|
|
444
|
-
}
|
|
445
|
-
/**
|
|
446
|
-
* Split a run of prose into its trailing QUESTION and the CONTEXT before it,
|
|
447
|
-
* instead of flattening a whole report into one line (the old `oneLine(content)`
|
|
448
|
-
* that copied a merged report and lost its Markdown). Returns undefined when the
|
|
449
|
-
* text has no real trailing ask.
|
|
450
|
-
*
|
|
451
|
-
* Rules, each pinned by a test:
|
|
452
|
-
* - The ask must be TRAILING: the last eligible non-empty line is the question,
|
|
453
|
-
* or the search stops (a report line after the question means it isn't the ask).
|
|
454
|
-
* - A `?` that lives ONLY inside a fenced code block, an inline `code` span, or a
|
|
455
|
-
* `>` blockquote does NOT count — those lines are ineligible to end the ask
|
|
456
|
-
* (they still ride along in `context`).
|
|
457
|
-
* - Multiple/multiline related asks are kept together (a contiguous run of
|
|
458
|
-
* question / list-item / `:`-lead-in lines), never dropped.
|
|
459
|
-
* - When the ask shares ONE line with preceding prose, the leading non-question
|
|
460
|
-
* sentences peel into `context` and only the trailing question sentence(s) stay
|
|
461
|
-
* in `text`.
|
|
462
|
-
* - Both fields preserve newlines and Markdown.
|
|
463
|
-
*/
|
|
464
|
-
export function extractProseQuestion(raw) {
|
|
465
|
-
const content = (raw ?? '').replace(/\r\n/g, '\n');
|
|
466
|
-
if (!content.trim())
|
|
467
|
-
return undefined;
|
|
468
|
-
const lines = content.split('\n');
|
|
469
|
-
// Mark lines that may NOT end the ask: fenced-code (delimiters + body) and
|
|
470
|
-
// blockquotes. They remain part of context; they just can't BE the question.
|
|
471
|
-
const eligible = [];
|
|
472
|
-
let fence;
|
|
473
|
-
for (const line of lines) {
|
|
474
|
-
const t = line.trim();
|
|
475
|
-
const delimiter = /^(`{3,}|~{3,})(.*)$/.exec(t);
|
|
476
|
-
if (fence) {
|
|
477
|
-
if (delimiter && delimiter[1][0] === fence.marker && delimiter[1].length >= fence.length && !delimiter[2].trim())
|
|
478
|
-
fence = undefined;
|
|
479
|
-
eligible.push(false);
|
|
480
|
-
continue;
|
|
481
|
-
}
|
|
482
|
-
if (delimiter) {
|
|
483
|
-
fence = { marker: delimiter[1][0], length: delimiter[1].length };
|
|
484
|
-
eligible.push(false);
|
|
485
|
-
continue;
|
|
486
|
-
}
|
|
487
|
-
eligible.push(!/^>/.test(t)); // blockquote line is ineligible
|
|
488
|
-
}
|
|
489
|
-
// The trailing ask: the last eligible non-empty line must itself be a question.
|
|
490
|
-
let qEnd = -1;
|
|
491
|
-
for (let i = lines.length - 1; i >= 0; i--) {
|
|
492
|
-
if (!eligible[i] || !lines[i].trim())
|
|
493
|
-
continue;
|
|
494
|
-
if (lineIsQuestion(lines[i]))
|
|
495
|
-
qEnd = i;
|
|
496
|
-
break; // first eligible non-empty line from the end decides it
|
|
497
|
-
}
|
|
498
|
-
if (qEnd === -1)
|
|
499
|
-
return undefined;
|
|
500
|
-
// Expand upward over contiguous eligible non-empty ask/lead-in lines so a
|
|
501
|
-
// multi-line ask ("Questions:\n- A?\n- B?") stays whole.
|
|
502
|
-
let blockStart = qEnd;
|
|
503
|
-
for (let i = qEnd - 1; i >= 0; i--) {
|
|
504
|
-
if (!eligible[i])
|
|
505
|
-
break;
|
|
506
|
-
if (!lines[i].trim())
|
|
507
|
-
break; // blank line ends the paragraph/block
|
|
508
|
-
blockStart = i;
|
|
509
|
-
}
|
|
510
|
-
const contextAbove = lines.slice(0, blockStart).join('\n').trim();
|
|
511
|
-
let block = lines.slice(blockStart, qEnd + 1).join('\n').trim();
|
|
512
|
-
// Only plain text can contribute a sentence boundary. Code, links and other
|
|
513
|
-
// inline Markdown remain whole, even when their content contains punctuation.
|
|
514
|
-
let inlineContext = '';
|
|
515
|
-
if (!/^\s*(?:[-*]|\d+[.)])\s/m.test(block)) {
|
|
516
|
-
const boundaries = [];
|
|
517
|
-
let offset = 0;
|
|
518
|
-
for (const token of Lexer.lexInline(block)) {
|
|
519
|
-
if (token.type === 'text') {
|
|
520
|
-
for (const match of token.raw.matchAll(/(?<=[.!?])\s+/g))
|
|
521
|
-
boundaries.push(offset + match.index + match[0].length);
|
|
522
|
-
}
|
|
523
|
-
offset += token.raw.length;
|
|
524
|
-
}
|
|
525
|
-
const starts = [0, ...boundaries];
|
|
526
|
-
const sentences = starts.map((start, i) => block.slice(start, starts[i + 1] ?? block.length));
|
|
527
|
-
let firstQ = sentences.length - 1;
|
|
528
|
-
for (let i = sentences.length - 1; i >= 0; i--) {
|
|
529
|
-
if (lineIsQuestion(sentences[i]))
|
|
530
|
-
firstQ = i;
|
|
531
|
-
else
|
|
532
|
-
break;
|
|
533
|
-
}
|
|
534
|
-
inlineContext = sentences.slice(0, firstQ).join('').trim();
|
|
535
|
-
block = sentences.slice(firstQ).join('').trim();
|
|
536
|
-
}
|
|
537
|
-
const trailingContext = lines.slice(qEnd + 1).join('\n').trim();
|
|
538
|
-
const context = [contextAbove, inlineContext, trailingContext].filter(Boolean).join('\n\n').trim() || undefined;
|
|
539
|
-
return { text: block, context };
|
|
540
|
-
}
|
|
541
|
-
/** Human-readable one-liner for the latest event (message text or tool action). */
|
|
542
|
-
function describeEvent(e) {
|
|
543
|
-
if (e.type === 'message' && e.content)
|
|
544
|
-
return oneLine(e.content);
|
|
545
|
-
if (e.type === 'tool_use' && e.tool)
|
|
546
|
-
return oneLine(summarizeToolUse(e.tool, e.args));
|
|
547
|
-
if (e.type === 'thinking')
|
|
548
|
-
return 'thinking…';
|
|
549
|
-
if (e.type === 'tool_result')
|
|
550
|
-
return e.tool ? `↳ ${e.tool}` : undefined;
|
|
551
|
-
if (e.type === 'error')
|
|
552
|
-
return oneLine(e.content || 'error');
|
|
553
|
-
return e.content ? oneLine(e.content) : undefined;
|
|
554
|
-
}
|
|
555
|
-
/** Last event of a given type, scanning from the end. */
|
|
556
|
-
function lastOf(events, pred) {
|
|
557
|
-
for (let i = events.length - 1; i >= 0; i--)
|
|
558
|
-
if (pred(events[i]))
|
|
559
|
-
return events[i];
|
|
560
|
-
return undefined;
|
|
561
|
-
}
|
|
562
|
-
/**
|
|
563
|
-
* Infer live activity + a preview from a chronological event slice. `pr` /
|
|
564
|
-
* `ticket` / `worktree` are attached by `inferSessionState`; this focuses on the
|
|
565
|
-
* running-vs-waiting-vs-idle decision and the preview line.
|
|
566
|
-
*/
|
|
567
|
-
export function inferActivity(events, ctx = {}) {
|
|
568
|
-
const windowMs = ctx.activeWindowMs ?? ACTIVE_WINDOW_MS;
|
|
569
|
-
const nowMs = ctx.nowMs ?? Date.now();
|
|
570
|
-
const fresh = ctx.mtimeMs != null && nowMs - ctx.mtimeMs < windowMs;
|
|
571
|
-
// A non-live process (pidAlive === false) can never be "working"; the strongest
|
|
572
|
-
// it gets is "waiting on you" (a dangling question) or "idle".
|
|
573
|
-
const canWork = ctx.pidAlive !== false && (ctx.pidAlive === true || fresh);
|
|
574
|
-
const meaningful = events.filter(e => e.type === 'message' || e.type === 'tool_use' || e.type === 'tool_result' || e.type === 'thinking' || e.type === 'error');
|
|
575
|
-
const last = meaningful[meaningful.length - 1];
|
|
576
|
-
const lastMsg = lastOf(meaningful, e => e.type === 'message');
|
|
577
|
-
const lastToolUse = lastOf(meaningful, e => e.type === 'tool_use');
|
|
578
|
-
// The most informative recent line: a message or tool call as-is, but for a
|
|
579
|
-
// trailing tool_result/thinking show the tool *call* that produced it (its
|
|
580
|
-
// command), or — failing that — the last assistant message, rather than a bare
|
|
581
|
-
// "↳ Bash" or a content-free "thinking…". This is what stops a trailing thinking
|
|
582
|
-
// block from masking the real turn (the defect behind the "Thinking…" panel).
|
|
583
|
-
const previewSource = !last
|
|
584
|
-
? undefined
|
|
585
|
-
: last.type === 'message' || last.type === 'tool_use'
|
|
586
|
-
? last
|
|
587
|
-
: (lastToolUse ?? lastMsg ?? last);
|
|
588
|
-
// Last few assistant turns, most-recent last — context for the decision panel.
|
|
589
|
-
const tail = meaningful
|
|
590
|
-
.filter(e => e.type === 'message' && e.role === 'assistant' && e.content)
|
|
591
|
-
.slice(-3)
|
|
592
|
-
.map(e => oneLine(e.content ?? ''))
|
|
593
|
-
.filter(Boolean);
|
|
594
|
-
// Live plan progress: snapshot checklist tools or the folded Task* event log. Attached
|
|
595
|
-
// to `base` so every return path below carries it — a working, waiting, or idle
|
|
596
|
-
// session all keep showing how far the plan got.
|
|
597
|
-
const todos = extractTodoProgressFromEvents(meaningful);
|
|
598
|
-
const base = {
|
|
599
|
-
activity: 'idle',
|
|
600
|
-
lastRole: lastMsg?.role,
|
|
601
|
-
lastEventKind: last?.type,
|
|
602
|
-
lastActivityMs: ctx.mtimeMs,
|
|
603
|
-
lastEventMs: eventStampMs(last, ctx.mtimeMs),
|
|
604
|
-
preview: previewSource ? describeEvent(previewSource) : undefined,
|
|
605
|
-
todos,
|
|
606
|
-
tail: tail.length ? tail : undefined,
|
|
607
|
-
};
|
|
608
|
-
if (!last)
|
|
609
|
-
return base;
|
|
610
|
-
// Structural "waiting on you" — Claude handed control back via a plan/question
|
|
611
|
-
// tool and nothing has come after it.
|
|
612
|
-
const lastPlanOrAsk = lastOf(meaningful, e => e.type === 'tool_use' && (e.tool === PLAN_TOOL || e.tool === ASK_TOOL));
|
|
613
|
-
if (lastPlanOrAsk && meaningful.indexOf(lastPlanOrAsk) === meaningful.length - 1) {
|
|
614
|
-
if (lastPlanOrAsk.tool === PLAN_TOOL) {
|
|
615
|
-
const question = planReviewQuestion();
|
|
616
|
-
const plan = extractPlanText(lastPlanOrAsk.args);
|
|
617
|
-
return { ...base, activity: 'waiting_input', awaitingReason: 'plan_review', preview: question.text, question, plan };
|
|
618
|
-
}
|
|
619
|
-
// AskUserQuestion: surface the real question + options (they're on `args`),
|
|
620
|
-
// not the generic "Asked you a question" that discarded them.
|
|
621
|
-
const question = structuredQuestionFromAsk(lastPlanOrAsk.args) ?? { text: 'Asked you a question', reason: 'question' };
|
|
622
|
-
return { ...base, activity: 'waiting_input', awaitingReason: 'question', preview: question.text, question };
|
|
623
|
-
}
|
|
624
|
-
// Pending tool call (tool_use with no following tool_result): the call is in
|
|
625
|
-
// flight for as long as the process is alive. A command that has run for ten
|
|
626
|
-
// minutes and a permission dialog that has sat for ten minutes leave the SAME
|
|
627
|
-
// transcript — a tool_use with no result and a quiet file — so elapsed time is
|
|
628
|
-
// not evidence of a request, and this engine never labels one `permission`
|
|
629
|
-
// (PHNX-3999: the "is the user idle?" reminder and the two-minute mark were both
|
|
630
|
-
// being rendered with Approve/Deny). The harness's own `permission_prompt` hook
|
|
631
|
-
// event, carried by the feed block, is the only evidence a dialog is up; the
|
|
632
|
-
// attention reconciler confirms it against `lastEventMs`.
|
|
633
|
-
if (last.type === 'tool_use') {
|
|
634
|
-
return { ...base, activity: canWork ? 'working' : 'idle' };
|
|
635
|
-
}
|
|
636
|
-
// Thinking or a tool result just landed → agent is mid-turn if recently active.
|
|
637
|
-
if (last.type === 'thinking' || last.type === 'tool_result' || last.type === 'error') {
|
|
638
|
-
return { ...base, activity: canWork && fresh ? 'working' : 'idle' };
|
|
639
|
-
}
|
|
640
|
-
// Last event is a message.
|
|
641
|
-
if (last.type === 'message') {
|
|
642
|
-
if (last.role === 'user') {
|
|
643
|
-
// User spoke last; the agent owes a reply → working if it's alive/fresh.
|
|
644
|
-
return { ...base, activity: canWork ? 'working' : 'idle' };
|
|
645
|
-
}
|
|
646
|
-
// Assistant spoke last and stopped. A trailing question → waiting; else idle.
|
|
647
|
-
// A prose question takes a free-text reply (no select-list), so no options/keys.
|
|
648
|
-
// Unlike the structural plan/ask signals above, the prose heuristic DECAYS: a
|
|
649
|
-
// question nobody answered within PROSE_QUESTION_FRESH_MS is a session that
|
|
650
|
-
// ended, not one that needs you (RUSH-1522). The question's age is the
|
|
651
|
-
// assistant message's own stamp when the harness wrote one — the exact moment
|
|
652
|
-
// it was asked — and the file's last write when it did not; the age is measured
|
|
653
|
-
// against `ctx.nowMs`, never a clock frozen at parse time, so the verdict
|
|
654
|
-
// expires on schedule even while the bytes sit still (PHNX-3999). With no age
|
|
655
|
-
// evidence at all the heuristic must not fire (an unknown-age prose question is
|
|
656
|
-
// a session that ended, closing RUSH-1522's null-mtime hole where a null mtime
|
|
657
|
-
// kept the question forever).
|
|
658
|
-
const askedAtMs = eventStampMs(last, ctx.mtimeMs) ?? ctx.mtimeMs;
|
|
659
|
-
const questionFresh = askedAtMs != null && nowMs - askedAtMs < PROSE_QUESTION_FRESH_MS;
|
|
660
|
-
const prose = questionFresh ? extractProseQuestion(last.content ?? '') : undefined;
|
|
661
|
-
if (prose) {
|
|
662
|
-
const question = { text: prose.text, reason: 'question' };
|
|
663
|
-
if (prose.context)
|
|
664
|
-
question.context = prose.context;
|
|
665
|
-
return { ...base, activity: 'waiting_input', awaitingReason: 'question', question };
|
|
666
|
-
}
|
|
667
|
-
return { ...base, activity: 'idle' };
|
|
668
|
-
}
|
|
669
|
-
return base;
|
|
670
|
-
}
|
|
671
|
-
/**
|
|
672
|
-
* Scan an event slice for the durable signals that aren't about the cwd: the PR
|
|
673
|
-
* opened, the injected ticket, plus the artifacts the session PRODUCED — tracker
|
|
674
|
-
* refs it created and any team it spawned. Each `gh pr create` / create-issue tool
|
|
675
|
-
* call is correlated with the nearest following tool_result; the team name comes
|
|
676
|
-
* straight off the `agents teams create/add` command.
|
|
677
|
-
*/
|
|
678
|
-
export function detectDurableSignals(events) {
|
|
679
|
-
let pr;
|
|
680
|
-
let sawPrCreate = false;
|
|
681
|
-
let ticket;
|
|
682
|
-
let sawTicketCreate = false;
|
|
683
|
-
let spawnedTeam;
|
|
684
|
-
const createdTickets = new Set();
|
|
685
|
-
const attachments = [];
|
|
686
|
-
const seenAttachments = new Set();
|
|
687
|
-
for (const e of events) {
|
|
688
|
-
// Structural PR signal: a real `gh pr create` tool call, then the pull URL
|
|
689
|
-
// from a following tool_result — never a bare URL mentioned in prose.
|
|
690
|
-
if (e.type === 'tool_use' && isPrCreateCommand(e.command))
|
|
691
|
-
sawPrCreate = true;
|
|
692
|
-
if (sawPrCreate && e.type === 'tool_result') {
|
|
693
|
-
const found = extractPrUrl(e.output);
|
|
694
|
-
if (found) {
|
|
695
|
-
pr = found;
|
|
696
|
-
sawPrCreate = false;
|
|
697
|
-
}
|
|
698
|
-
}
|
|
699
|
-
// Produced artifacts: a team spawn is read off the command; a created ticket
|
|
700
|
-
// is a create-issue tool call whose following tool_result carries the new ref.
|
|
701
|
-
if (e.type === 'tool_use') {
|
|
702
|
-
if (!spawnedTeam) {
|
|
703
|
-
const team = detectSpawnedTeam(e.command);
|
|
704
|
-
if (team)
|
|
705
|
-
spawnedTeam = team;
|
|
706
|
-
}
|
|
707
|
-
if (isTicketCreateTool(e.tool, e.command))
|
|
708
|
-
sawTicketCreate = true;
|
|
709
|
-
}
|
|
710
|
-
if (sawTicketCreate && e.type === 'tool_result') {
|
|
711
|
-
const t = extractCreatedTicket(e.output);
|
|
712
|
-
if (t)
|
|
713
|
-
createdTickets.add(t);
|
|
714
|
-
sawTicketCreate = false;
|
|
715
|
-
}
|
|
716
|
-
if (!ticket && e.type === 'message' && e.role === 'user') {
|
|
717
|
-
ticket = detectTicket(e.content);
|
|
718
|
-
}
|
|
719
|
-
if (e.type === 'attachment') {
|
|
720
|
-
const mediaType = e.mediaType || 'application/octet-stream';
|
|
721
|
-
const key = e.path || e.name || `${mediaType}:${e.sizeBytes ?? 0}:${e.timestamp}`;
|
|
722
|
-
if (key && !seenAttachments.has(key)) {
|
|
723
|
-
seenAttachments.add(key);
|
|
724
|
-
attachments.push({
|
|
725
|
-
path: e.path,
|
|
726
|
-
name: e.name,
|
|
727
|
-
mediaType,
|
|
728
|
-
sizeBytes: e.sizeBytes,
|
|
729
|
-
});
|
|
730
|
-
}
|
|
731
|
-
}
|
|
732
|
-
}
|
|
733
|
-
return {
|
|
734
|
-
pr,
|
|
735
|
-
ticket,
|
|
736
|
-
createdTickets: createdTickets.size > 0 ? [...createdTickets] : undefined,
|
|
737
|
-
spawnedTeam,
|
|
738
|
-
attachments: attachments.length > 0 ? attachments : undefined,
|
|
739
|
-
};
|
|
740
|
-
}
|
|
741
|
-
/** Full inference: activity + preview + durable signals + worktree/ticket from ctx. */
|
|
742
|
-
export function inferSessionState(events, ctx = {}) {
|
|
743
|
-
const state = inferActivity(events, ctx);
|
|
744
|
-
const { pr, ticket, createdTickets, spawnedTeam, attachments } = detectDurableSignals(events);
|
|
745
|
-
const worktree = detectWorktree(ctx.cwd, ctx.gitBranch);
|
|
746
|
-
const artifacts = extractArtifacts(classifyFileChanges(events));
|
|
747
|
-
const planFile = artifacts.find((artifact) => artifact.bucket === 'plans')?.path;
|
|
748
|
-
// Rate-limit: scan the most recent assistant messages + tool errors (tail-first).
|
|
749
|
-
let rateLimited = false;
|
|
750
|
-
for (let i = events.length - 1; i >= 0 && i >= events.length - 12; i--) {
|
|
751
|
-
const e = events[i];
|
|
752
|
-
if (!e)
|
|
753
|
-
continue;
|
|
754
|
-
if (e.type === 'message' && e.role === 'assistant' && detectRateLimited(e.content)) {
|
|
755
|
-
rateLimited = true;
|
|
756
|
-
break;
|
|
757
|
-
}
|
|
758
|
-
if (e.type === 'tool_result' && detectRateLimited(e.output)) {
|
|
759
|
-
rateLimited = true;
|
|
760
|
-
break;
|
|
761
|
-
}
|
|
762
|
-
}
|
|
763
|
-
if (!rateLimited && detectRateLimited(state.preview))
|
|
764
|
-
rateLimited = true;
|
|
765
|
-
return {
|
|
766
|
-
...state,
|
|
767
|
-
pr: pr ?? state.pr,
|
|
768
|
-
worktree: worktree ?? state.worktree,
|
|
769
|
-
ticket: ticket ?? detectTicket(undefined, ctx.gitBranch) ?? state.ticket,
|
|
770
|
-
createdTickets,
|
|
771
|
-
spawnedTeam,
|
|
772
|
-
attachments,
|
|
773
|
-
artifacts: artifacts.length > 0 ? artifacts : undefined,
|
|
774
|
-
planFile,
|
|
775
|
-
rateLimited: rateLimited || undefined,
|
|
776
|
-
};
|
|
777
|
-
}
|