@phnx-labs/agents-cli 1.22.120 → 1.22.121
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +227 -0
- package/README.md +19 -2
- package/dist/bootstrap.d.ts +0 -15
- package/dist/bootstrap.js +10 -409
- package/dist/cli/command-registry.d.ts +0 -58
- package/dist/cli/command-registry.js +2 -74
- package/dist/commands/accounts.d.ts +0 -17
- package/dist/commands/accounts.js +1 -52
- package/dist/commands/alias.d.ts +0 -12
- package/dist/commands/alias.js +0 -6
- package/dist/commands/apply.d.ts +0 -15
- package/dist/commands/apply.js +0 -63
- package/dist/commands/audit.d.ts +0 -12
- package/dist/commands/audit.js +0 -13
- package/dist/commands/auth.js +4 -12
- package/dist/commands/beta.d.ts +0 -6
- package/dist/commands/beta.js +2 -6
- package/dist/commands/browser-sessions-picker.d.ts +0 -8
- package/dist/commands/browser-sessions-picker.js +0 -26
- package/dist/commands/browser.d.ts +0 -57
- package/dist/commands/browser.js +0 -80
- package/dist/commands/budget.d.ts +0 -13
- package/dist/commands/budget.js +0 -2
- package/dist/commands/cli.d.ts +0 -12
- package/dist/commands/cli.js +0 -4
- package/dist/commands/cloud.d.ts +0 -9
- package/dist/commands/cloud.js +0 -43
- package/dist/commands/commands.d.ts +0 -9
- package/dist/commands/commands.js +0 -18
- package/dist/commands/computer-sessions-picker.d.ts +0 -11
- package/dist/commands/computer-sessions-picker.js +0 -29
- package/dist/commands/computer.d.ts +0 -62
- package/dist/commands/computer.js +3 -114
- package/dist/commands/config.d.ts +0 -14
- package/dist/commands/config.js +21 -60
- package/dist/commands/cost.d.ts +0 -11
- package/dist/commands/cost.js +1 -17
- package/dist/commands/daemon-test-harness.d.ts +0 -32
- package/dist/commands/daemon-test-harness.js +1 -36
- package/dist/commands/daemon.d.ts +0 -46
- package/dist/commands/daemon.js +8 -255
- package/dist/commands/detach-core.d.ts +0 -28
- package/dist/commands/detach-core.js +0 -30
- package/dist/commands/detach.d.ts +1 -12
- package/dist/commands/detach.js +16 -52
- package/dist/commands/device-config-test-harness.js +0 -12
- package/dist/commands/doctor.d.ts +0 -103
- package/dist/commands/doctor.js +3 -279
- package/dist/commands/events.d.ts +0 -29
- package/dist/commands/events.js +1 -55
- package/dist/commands/exec.d.ts +0 -163
- package/dist/commands/exec.js +15 -964
- package/dist/commands/factory.d.ts +0 -6
- package/dist/commands/factory.js +0 -2
- package/dist/commands/feed-watch.js +0 -20
- package/dist/commands/feed.d.ts +0 -38
- package/dist/commands/feed.js +1 -151
- package/dist/commands/feedback.d.ts +0 -5
- package/dist/commands/feedback.js +0 -5
- package/dist/commands/fleet-capture.d.ts +0 -12
- package/dist/commands/fleet-capture.js +1 -39
- package/dist/commands/focus.d.ts +6 -94
- package/dist/commands/focus.js +13 -183
- package/dist/commands/fork.d.ts +0 -21
- package/dist/commands/fork.js +0 -45
- package/dist/commands/funnel.d.ts +0 -3
- package/dist/commands/go.d.ts +2 -71
- package/dist/commands/go.js +5 -99
- package/dist/commands/harness-hooks.d.ts +0 -41
- package/dist/commands/harness-hooks.js +0 -48
- package/dist/commands/harness-wizard.d.ts +0 -137
- package/dist/commands/harness-wizard.js +0 -109
- package/dist/commands/harness.d.ts +0 -63
- package/dist/commands/harness.js +0 -103
- package/dist/commands/hooks.d.ts +0 -9
- package/dist/commands/hooks.js +0 -26
- package/dist/commands/humans.d.ts +0 -8
- package/dist/commands/humans.js +0 -8
- package/dist/commands/import.d.ts +0 -22
- package/dist/commands/import.js +0 -79
- package/dist/commands/insights.d.ts +0 -37
- package/dist/commands/insights.js +3 -115
- package/dist/commands/inspect.d.ts +0 -117
- package/dist/commands/inspect.js +2 -448
- package/dist/commands/lease.d.ts +0 -28
- package/dist/commands/lease.js +0 -43
- package/dist/commands/logs.d.ts +0 -23
- package/dist/commands/logs.js +0 -30
- package/dist/commands/mailboxes.d.ts +0 -18
- package/dist/commands/mailboxes.js +0 -29
- package/dist/commands/mcp.d.ts +0 -9
- package/dist/commands/mcp.js +0 -53
- package/dist/commands/memory.d.ts +0 -7
- package/dist/commands/memory.js +0 -7
- package/dist/commands/menubar.d.ts +0 -8
- package/dist/commands/menubar.js +0 -24
- package/dist/commands/message.d.ts +0 -23
- package/dist/commands/message.js +0 -50
- package/dist/commands/mine.d.ts +0 -22
- package/dist/commands/mine.js +0 -21
- package/dist/commands/models.d.ts +0 -8
- package/dist/commands/models.js +0 -33
- package/dist/commands/modes.d.ts +0 -10
- package/dist/commands/modes.js +0 -13
- package/dist/commands/monitors.d.ts +0 -9
- package/dist/commands/monitors.js +3 -160
- package/dist/commands/open.d.ts +0 -26
- package/dist/commands/open.js +0 -10
- package/dist/commands/output.d.ts +0 -18
- package/dist/commands/output.js +1 -34
- package/dist/commands/packages-materialize.d.ts +0 -11
- package/dist/commands/packages-materialize.js +0 -3
- package/dist/commands/packages.d.ts +0 -10
- package/dist/commands/packages.js +0 -50
- package/dist/commands/perf.d.ts +0 -41
- package/dist/commands/perf.js +0 -55
- package/dist/commands/permissions.d.ts +0 -9
- package/dist/commands/permissions.js +0 -43
- package/dist/commands/plugins.d.ts +0 -14
- package/dist/commands/plugins.js +2 -55
- package/dist/commands/profiles.d.ts +0 -25
- package/dist/commands/profiles.js +0 -27
- package/dist/commands/projects-todo.d.ts +2 -0
- package/dist/commands/projects-todo.js +132 -0
- package/dist/commands/projects.d.ts +0 -85
- package/dist/commands/projects.js +344 -291
- package/dist/commands/prune.js +0 -30
- package/dist/commands/ps-roster.d.ts +92 -0
- package/dist/commands/ps-roster.js +744 -0
- package/dist/commands/ps.d.ts +6 -0
- package/dist/commands/ps.js +98 -0
- package/dist/commands/refresh-rules.d.ts +0 -13
- package/dist/commands/refresh-rules.js +0 -14
- package/dist/commands/reminders.d.ts +0 -7
- package/dist/commands/repo.d.ts +0 -89
- package/dist/commands/repo.js +7 -205
- package/dist/commands/resource-view.d.ts +0 -33
- package/dist/commands/resource-view.js +0 -49
- package/dist/commands/resume.d.ts +1 -19
- package/dist/commands/resume.js +0 -50
- package/dist/commands/route.d.ts +0 -10
- package/dist/commands/route.js +0 -19
- package/dist/commands/routines.d.ts +0 -42
- package/dist/commands/routines.js +5 -290
- package/dist/commands/routines.test-fixture.d.ts +0 -34
- package/dist/commands/routines.test-fixture.js +4 -100
- package/dist/commands/rules.d.ts +0 -9
- package/dist/commands/rules.js +1 -6
- package/dist/commands/run-account-picker.d.ts +0 -59
- package/dist/commands/run-account-picker.js +0 -71
- package/dist/commands/run-broadcast.d.ts +0 -9
- package/dist/commands/run-broadcast.js +0 -7
- package/dist/commands/run-cloud.d.ts +0 -15
- package/dist/commands/run-cloud.js +0 -37
- package/dist/commands/run-device-picker.d.ts +0 -25
- package/dist/commands/run-device-picker.js +1 -53
- package/dist/commands/secrets-passthrough.d.ts +0 -31
- package/dist/commands/secrets-passthrough.js +0 -10
- package/dist/commands/send.d.ts +0 -20
- package/dist/commands/send.js +14 -18
- package/dist/commands/sessions-backfill.d.ts +0 -7
- package/dist/commands/sessions-backfill.js +1 -16
- package/dist/commands/sessions-backup-setup.js +0 -11
- package/dist/commands/sessions-bookmark.d.ts +0 -8
- package/dist/commands/sessions-bookmark.js +0 -28
- package/dist/commands/sessions-browser.d.ts +2 -117
- package/dist/commands/sessions-browser.js +5 -243
- package/dist/commands/sessions-export.d.ts +1 -26
- package/dist/commands/sessions-export.js +3 -81
- package/dist/commands/sessions-import.d.ts +0 -14
- package/dist/commands/sessions-import.js +0 -59
- package/dist/commands/sessions-inject.d.ts +0 -60
- package/dist/commands/sessions-inject.js +3 -96
- package/dist/commands/sessions-migrate.d.ts +2 -37
- package/dist/commands/sessions-migrate.js +7 -159
- package/dist/commands/sessions-optimize.d.ts +0 -12
- package/dist/commands/sessions-picker-factory.d.ts +0 -7
- package/dist/commands/sessions-picker-factory.js +0 -8
- package/dist/commands/sessions-picker.d.ts +4 -103
- package/dist/commands/sessions-picker.js +13 -352
- package/dist/commands/sessions-render.d.ts +1 -2
- package/dist/commands/sessions-render.js +3 -7
- package/dist/commands/sessions-resume.d.ts +1 -24
- package/dist/commands/sessions-resume.js +2 -65
- package/dist/commands/sessions-share.d.ts +1 -9
- package/dist/commands/sessions-share.js +1 -45
- package/dist/commands/sessions-stats.d.ts +0 -24
- package/dist/commands/sessions-stats.js +0 -49
- package/dist/commands/sessions-stop.d.ts +1 -20
- package/dist/commands/sessions-stop.js +4 -9
- package/dist/commands/sessions-tail.d.ts +1 -19
- package/dist/commands/sessions-tail.js +3 -36
- package/dist/commands/sessions-trace.d.ts +5 -36
- package/dist/commands/sessions-trace.js +7 -82
- package/dist/commands/sessions.d.ts +1 -666
- package/dist/commands/sessions.js +30 -2279
- package/dist/commands/sessions.test-fixture.d.ts +0 -9
- package/dist/commands/sessions.test-fixture.js +8 -23
- package/dist/commands/setup-accounts.d.ts +0 -6
- package/dist/commands/setup-browser.d.ts +0 -23
- package/dist/commands/setup-browser.js +0 -28
- package/dist/commands/setup-computer.d.ts +0 -16
- package/dist/commands/setup-computer.js +0 -28
- package/dist/commands/setup-fleet.d.ts +0 -8
- package/dist/commands/setup-fleet.js +0 -11
- package/dist/commands/setup-mine.d.ts +0 -14
- package/dist/commands/setup-mine.js +0 -25
- package/dist/commands/setup-preferences.d.ts +0 -47
- package/dist/commands/setup-preferences.js +0 -53
- package/dist/commands/setup-secrets.d.ts +2 -24
- package/dist/commands/setup-secrets.js +0 -24
- package/dist/commands/setup-term.d.ts +0 -21
- package/dist/commands/setup-term.js +0 -21
- package/dist/commands/setup-terminal.d.ts +0 -1
- package/dist/commands/setup-terminal.js +0 -1
- package/dist/commands/setup-tools.d.ts +2 -0
- package/dist/commands/setup-tools.js +73 -0
- package/dist/commands/setup.d.ts +0 -20
- package/dist/commands/setup.js +4 -57
- package/dist/commands/skills.d.ts +0 -9
- package/dist/commands/skills.js +1 -22
- package/dist/commands/snapshot.d.ts +0 -9
- package/dist/commands/snapshot.js +0 -10
- package/dist/commands/ssh.d.ts +0 -64
- package/dist/commands/ssh.js +9 -420
- package/dist/commands/status.d.ts +0 -12
- package/dist/commands/status.js +0 -26
- package/dist/commands/subagents.d.ts +0 -8
- package/dist/commands/subagents.js +0 -31
- package/dist/commands/sync.d.ts +0 -37
- package/dist/commands/sync.js +0 -256
- package/dist/commands/teams-picker.d.ts +0 -3
- package/dist/commands/teams-picker.js +0 -34
- package/dist/commands/teams.d.ts +1 -76
- package/dist/commands/teams.js +9 -477
- package/dist/commands/tmux.d.ts +0 -25
- package/dist/commands/tmux.js +0 -46
- package/dist/commands/traces.js +0 -19
- package/dist/commands/trash.d.ts +0 -17
- package/dist/commands/trash.js +1 -11
- package/dist/commands/uninstall.d.ts +0 -9
- package/dist/commands/uninstall.js +0 -6
- package/dist/commands/update.d.ts +0 -22
- package/dist/commands/update.js +0 -44
- package/dist/commands/upgrade.d.ts +0 -1
- package/dist/commands/upgrade.js +0 -1
- package/dist/commands/utils.d.ts +0 -85
- package/dist/commands/utils.js +1 -95
- package/dist/commands/versions.d.ts +0 -16
- package/dist/commands/versions.js +0 -134
- package/dist/commands/view.d.ts +0 -90
- package/dist/commands/view.js +4 -343
- package/dist/commands/watchdog.d.ts +0 -19
- package/dist/commands/watchdog.js +3 -43
- package/dist/commands/webhook.d.ts +0 -8
- package/dist/commands/webhook.js +0 -14
- package/dist/commands/workflows.d.ts +0 -8
- package/dist/commands/workflows.js +0 -6
- package/dist/index.d.ts +0 -25
- package/dist/index.js +5 -119
- package/dist/lib/account-capabilities.d.ts +0 -34
- package/dist/lib/account-capabilities.js +0 -32
- package/dist/lib/account-catalog.d.ts +0 -128
- package/dist/lib/account-catalog.js +8 -154
- package/dist/lib/account-provider-registry.d.ts +0 -14
- package/dist/lib/account-provider-registry.js +0 -8
- package/dist/lib/account-registry.d.ts +0 -74
- package/dist/lib/account-registry.js +14 -189
- package/dist/lib/account-schema.d.ts +0 -19
- package/dist/lib/account-schema.js +0 -43
- package/dist/lib/accounting/account-launch.d.ts +0 -15
- package/dist/lib/accounting/account-launch.js +1 -3
- package/dist/lib/accounting/account-pool-collect.d.ts +0 -26
- package/dist/lib/accounting/account-pool-collect.js +0 -42
- package/dist/lib/accounting/account-pool.d.ts +0 -41
- package/dist/lib/accounting/account-pool.js +0 -17
- package/dist/lib/accounting/capacity.d.ts +0 -32
- package/dist/lib/accounting/capacity.js +0 -32
- package/dist/lib/accounting/rotate.d.ts +0 -518
- package/dist/lib/accounting/rotate.js +4 -598
- package/dist/lib/accounting/usage-ingest.d.ts +0 -1
- package/dist/lib/accounting/usage-ingest.js +0 -44
- package/dist/lib/accounting/usage-sync.d.ts +0 -60
- package/dist/lib/accounting/usage-sync.js +4 -51
- package/dist/lib/accounting/usage.d.ts +0 -632
- package/dist/lib/accounting/usage.js +14 -1055
- package/dist/lib/accounts/add.d.ts +0 -60
- package/dist/lib/accounts/add.js +0 -127
- package/dist/lib/accounts/auth-operation-lock.d.ts +0 -1
- package/dist/lib/accounts/auth-operation-lock.js +0 -4
- package/dist/lib/accounts/migrate.d.ts +0 -9
- package/dist/lib/accounts/migrate.js +3 -42
- package/dist/lib/accounts/slots.d.ts +0 -25
- package/dist/lib/accounts/slots.js +1 -49
- package/dist/lib/acp/client.d.ts +0 -16
- package/dist/lib/acp/client.js +0 -29
- package/dist/lib/acp/harnesses.d.ts +0 -15
- package/dist/lib/acp/harnesses.js +0 -16
- package/dist/lib/acp/run.d.ts +0 -8
- package/dist/lib/acp/run.js +0 -8
- package/dist/lib/actor.d.ts +1 -71
- package/dist/lib/actor.js +1 -99
- package/dist/lib/add-dir.d.ts +0 -46
- package/dist/lib/add-dir.js +1 -70
- package/dist/lib/address.d.ts +0 -17
- package/dist/lib/address.js +0 -15
- package/dist/lib/agent-cli-commands.d.ts +0 -10
- package/dist/lib/agent-cli-commands.js +0 -10
- package/dist/lib/agent-modes.d.ts +0 -29
- package/dist/lib/agent-modes.js +0 -31
- package/dist/lib/agent-spec/agents.d.ts +0 -426
- package/dist/lib/agent-spec/agents.js +37 -924
- package/dist/lib/agent-spec/index.d.ts +0 -5
- package/dist/lib/agent-spec/index.js +0 -14
- package/dist/lib/agent-spec/materialize.d.ts +0 -10
- package/dist/lib/agent-spec/materialize.js +2 -139
- package/dist/lib/agent-spec/package-resolve.d.ts +0 -8
- package/dist/lib/agent-spec/package-resolve.js +1 -44
- package/dist/lib/agent-spec/package-schema.d.ts +0 -2
- package/dist/lib/agent-spec/package-schema.js +0 -11
- package/dist/lib/agent-spec/package-types.d.ts +0 -27
- package/dist/lib/agent-spec/package-types.js +0 -1
- package/dist/lib/agent-spec/primitives.d.ts +0 -18
- package/dist/lib/agent-spec/primitives.js +0 -27
- package/dist/lib/agent-spec/provider.js +0 -2
- package/dist/lib/agent-spec/resolve.d.ts +0 -23
- package/dist/lib/agent-spec/resolve.js +0 -41
- package/dist/lib/agent-spec/types.d.ts +0 -34
- package/dist/lib/agent-spec/types.js +0 -6
- package/dist/lib/agents.d.ts +0 -1
- package/dist/lib/agents.js +0 -1
- package/dist/lib/analytics/mix-commands.d.ts +0 -23
- package/dist/lib/analytics/mix-commands.js +0 -26
- package/dist/lib/analytics/recipes.d.ts +0 -1
- package/dist/lib/analytics/recipes.js +5 -10
- package/dist/lib/analytics/usage-db.js +4 -6
- package/dist/lib/answer-router.d.ts +0 -61
- package/dist/lib/answer-router.js +0 -57
- package/dist/lib/app-bundle-install.d.ts +0 -13
- package/dist/lib/app-bundle-install.js +0 -50
- package/dist/lib/artifact-actions.d.ts +0 -15
- package/dist/lib/artifact-actions.js +0 -18
- package/dist/lib/artifacts-client.d.ts +0 -10
- package/dist/lib/artifacts-client.js +0 -17
- package/dist/lib/ask-classifier.d.ts +0 -38
- package/dist/lib/ask-classifier.js +0 -27
- package/dist/lib/audit/log.d.ts +0 -47
- package/dist/lib/audit/log.js +1 -59
- package/dist/lib/auth-health.d.ts +0 -213
- package/dist/lib/auth-health.js +16 -266
- package/dist/lib/auth-mint.d.ts +0 -83
- package/dist/lib/auth-mint.js +8 -85
- package/dist/lib/auto-pull-worker.d.ts +0 -10
- package/dist/lib/auto-pull-worker.js +3 -48
- package/dist/lib/auto-pull.d.ts +0 -64
- package/dist/lib/auto-pull.js +0 -79
- package/dist/lib/beta.d.ts +0 -9
- package/dist/lib/beta.js +0 -9
- package/dist/lib/binary-shadow.d.ts +0 -22
- package/dist/lib/binary-shadow.js +4 -34
- package/dist/lib/boot-profile.d.ts +0 -10
- package/dist/lib/boot-profile.js +1 -31
- package/dist/lib/brand.d.ts +0 -20
- package/dist/lib/brand.js +0 -50
- package/dist/lib/browser/context.d.ts +0 -54
- package/dist/lib/browser/context.js +0 -49
- package/dist/lib/browser/paths.d.ts +0 -21
- package/dist/lib/browser/paths.js +0 -26
- package/dist/lib/browser/record.d.ts +0 -34
- package/dist/lib/browser/record.js +0 -38
- package/dist/lib/browser/sessions-list.d.ts +1 -79
- package/dist/lib/browser/sessions-list.js +2 -98
- package/dist/lib/browser-client.d.ts +0 -112
- package/dist/lib/browser-client.js +1 -90
- package/dist/lib/budget/config.d.ts +0 -6
- package/dist/lib/budget/config.js +0 -29
- package/dist/lib/budget/enforce.d.ts +0 -50
- package/dist/lib/budget/enforce.js +0 -27
- package/dist/lib/budget/ledger.d.ts +0 -23
- package/dist/lib/budget/ledger.js +0 -28
- package/dist/lib/budget/live-cloud.d.ts +0 -26
- package/dist/lib/budget/live-cloud.js +0 -12
- package/dist/lib/budget/live-team.d.ts +0 -17
- package/dist/lib/budget/live-team.js +1 -35
- package/dist/lib/budget/preflight.d.ts +0 -51
- package/dist/lib/budget/preflight.js +0 -36
- package/dist/lib/byok-usage.d.ts +0 -20
- package/dist/lib/byok-usage.js +1 -24
- package/dist/lib/capabilities.d.ts +0 -24
- package/dist/lib/capabilities.js +0 -29
- package/dist/lib/catchup.d.ts +0 -87
- package/dist/lib/catchup.js +1 -81
- package/dist/lib/channels/owner-forward.d.ts +0 -70
- package/dist/lib/channels/owner-forward.js +1 -43
- package/dist/lib/channels/owner-sink.js +0 -21
- package/dist/lib/channels/providers/desktop.d.ts +0 -37
- package/dist/lib/channels/providers/desktop.js +0 -72
- package/dist/lib/channels/providers/index.d.ts +0 -1
- package/dist/lib/channels/providers/index.js +2 -6
- package/dist/lib/channels/providers/mailbox.js +0 -7
- package/dist/lib/channels/providers/openclaw-telegram.js +0 -8
- package/dist/lib/channels/providers/rush.d.ts +0 -2
- package/dist/lib/channels/providers/rush.js +0 -26
- package/dist/lib/channels/providers/session.d.ts +2 -0
- package/dist/lib/channels/providers/session.js +26 -0
- package/dist/lib/channels/registry.d.ts +0 -27
- package/dist/lib/channels/registry.js +0 -10
- package/dist/lib/channels/resolve.d.ts +0 -19
- package/dist/lib/channels/resolve.js +0 -2
- package/dist/lib/channels/send.d.ts +0 -50
- package/dist/lib/channels/send.js +0 -25
- package/dist/lib/checkpoint.d.ts +0 -36
- package/dist/lib/checkpoint.js +0 -28
- package/dist/lib/claude-account-token.d.ts +0 -98
- package/dist/lib/claude-account-token.js +7 -169
- package/dist/lib/claude-statusline.d.ts +0 -41
- package/dist/lib/claude-statusline.js +0 -68
- package/dist/lib/cli-entry.d.ts +0 -26
- package/dist/lib/cli-entry.js +1 -61
- package/dist/lib/cli-resources.d.ts +31 -89
- package/dist/lib/cli-resources.js +116 -152
- package/dist/lib/cloud/antigravity.d.ts +0 -29
- package/dist/lib/cloud/antigravity.js +0 -36
- package/dist/lib/cloud/codex.d.ts +0 -8
- package/dist/lib/cloud/codex.js +0 -41
- package/dist/lib/cloud/cursor.d.ts +0 -5
- package/dist/lib/cloud/cursor.js +2 -7
- package/dist/lib/cloud/dispatch.d.ts +0 -13
- package/dist/lib/cloud/dispatch.js +1 -48
- package/dist/lib/cloud/factory.d.ts +0 -52
- package/dist/lib/cloud/factory.js +3 -67
- package/dist/lib/cloud/host.d.ts +0 -39
- package/dist/lib/cloud/host.js +5 -48
- package/dist/lib/cloud/registry.d.ts +0 -25
- package/dist/lib/cloud/registry.js +0 -29
- package/dist/lib/cloud/rush.d.ts +0 -47
- package/dist/lib/cloud/rush.js +1 -82
- package/dist/lib/cloud/session-index.d.ts +0 -27
- package/dist/lib/cloud/session-index.js +1 -32
- package/dist/lib/cloud/store.d.ts +0 -18
- package/dist/lib/cloud/store.js +0 -28
- package/dist/lib/cloud/stream.d.ts +0 -14
- package/dist/lib/cloud/stream.js +0 -25
- package/dist/lib/cloud/types.d.ts +0 -168
- package/dist/lib/cloud/types.js +0 -46
- package/dist/lib/cloudflare/creds.d.ts +0 -2
- package/dist/lib/cloudflare/creds.js +0 -14
- package/dist/lib/cloudflare/provision.d.ts +0 -8
- package/dist/lib/cloudflare/provision.js +1 -19
- package/dist/lib/codex-home.d.ts +0 -60
- package/dist/lib/codex-home.js +2 -72
- package/dist/lib/codex-policy.d.ts +0 -10
- package/dist/lib/codex-policy.js +0 -13
- package/dist/lib/command-skills.d.ts +0 -10
- package/dist/lib/command-skills.js +0 -10
- package/dist/lib/commands.d.ts +0 -74
- package/dist/lib/commands.js +0 -112
- package/dist/lib/comms-render.d.ts +0 -5
- package/dist/lib/comms-render.js +0 -5
- package/dist/lib/computer/context.d.ts +0 -23
- package/dist/lib/computer/context.js +0 -14
- package/dist/lib/computer/policy.d.ts +0 -20
- package/dist/lib/computer/policy.js +0 -53
- package/dist/lib/computer/record.d.ts +0 -33
- package/dist/lib/computer/record.js +1 -48
- package/dist/lib/computer/sessions-list.d.ts +1 -128
- package/dist/lib/computer/sessions-list.js +6 -165
- package/dist/lib/computer-client.d.ts +0 -106
- package/dist/lib/computer-client.js +5 -86
- package/dist/lib/concurrency.d.ts +0 -14
- package/dist/lib/concurrency.js +0 -3
- package/dist/lib/config-drift.d.ts +0 -31
- package/dist/lib/config-drift.js +0 -32
- package/dist/lib/config-keys.d.ts +1 -65
- package/dist/lib/config-keys.js +6 -52
- package/dist/lib/config-transfer.d.ts +0 -14
- package/dist/lib/config-transfer.js +0 -26
- package/dist/lib/convert.d.ts +0 -17
- package/dist/lib/convert.js +0 -18
- package/dist/lib/crabbox/cli.d.ts +0 -156
- package/dist/lib/crabbox/cli.js +1 -188
- package/dist/lib/crabbox/config.d.ts +0 -18
- package/dist/lib/crabbox/config.js +1 -19
- package/dist/lib/crabbox/lease.d.ts +0 -93
- package/dist/lib/crabbox/lease.js +4 -148
- package/dist/lib/crabbox/progress.d.ts +0 -56
- package/dist/lib/crabbox/progress.js +2 -49
- package/dist/lib/crabbox/runtimes.d.ts +0 -94
- package/dist/lib/crabbox/runtimes.js +1 -111
- package/dist/lib/crabbox/setup-copy.d.ts +0 -64
- package/dist/lib/crabbox/setup-copy.js +1 -53
- package/dist/lib/daemon/account-state-daemon-service.d.ts +0 -48
- package/dist/lib/daemon/account-state-daemon-service.js +2 -63
- package/dist/lib/daemon/attention-notify-service.d.ts +0 -12
- package/dist/lib/daemon/attention-notify-service.js +1 -24
- package/dist/lib/daemon/auth-sync-service.d.ts +0 -28
- package/dist/lib/daemon/auth-sync-service.js +0 -56
- package/dist/lib/daemon/catchup-service.d.ts +0 -34
- package/dist/lib/daemon/catchup-service.js +0 -30
- package/dist/lib/daemon/daemon.d.ts +0 -374
- package/dist/lib/daemon/daemon.js +44 -1049
- package/dist/lib/daemon/daemon.test-fixture.d.ts +0 -19
- package/dist/lib/daemon/daemon.test-fixture.js +1 -24
- package/dist/lib/daemon/device-probe-service.d.ts +0 -16
- package/dist/lib/daemon/device-probe-service.js +0 -20
- package/dist/lib/daemon/feed-stream-service.d.ts +0 -15
- package/dist/lib/daemon/feed-stream-service.js +0 -20
- package/dist/lib/daemon/harness-update-service.d.ts +2 -61
- package/dist/lib/daemon/harness-update-service.js +6 -86
- package/dist/lib/daemon/heartbeat-service.d.ts +0 -1
- package/dist/lib/daemon/heartbeat-service.js +0 -1
- package/dist/lib/daemon/leaked-daemons.d.ts +0 -46
- package/dist/lib/daemon/leaked-daemons.js +2 -78
- package/dist/lib/daemon/monitor-engine-service.d.ts +0 -13
- package/dist/lib/daemon/monitor-engine-service.js +3 -15
- package/dist/lib/daemon/runner.d.ts +0 -194
- package/dist/lib/daemon/runner.js +39 -760
- package/dist/lib/daemon/self-heal-service.d.ts +18 -17
- package/dist/lib/daemon/self-heal-service.js +83 -37
- package/dist/lib/daemon/self-update-service.d.ts +1 -131
- package/dist/lib/daemon/self-update-service.js +26 -189
- package/dist/lib/daemon/service.d.ts +0 -73
- package/dist/lib/daemon/service.js +0 -34
- package/dist/lib/daemon/session-index-service.d.ts +0 -12
- package/dist/lib/daemon/session-index-service.js +0 -23
- package/dist/lib/daemon/session-state-service.d.ts +0 -8
- package/dist/lib/daemon/session-state-service.js +0 -8
- package/dist/lib/daemon/session-summarizer-service.d.ts +0 -14
- package/dist/lib/daemon/session-summarizer-service.js +1 -19
- package/dist/lib/daemon/session-title-service.d.ts +0 -25
- package/dist/lib/daemon/session-title-service.js +0 -32
- package/dist/lib/daemon/state-dir-check-service.d.ts +0 -24
- package/dist/lib/daemon/state-dir-check-service.js +0 -29
- package/dist/lib/daemon/supervisor.d.ts +0 -112
- package/dist/lib/daemon/supervisor.js +4 -147
- package/dist/lib/daemon/testdata/process-view-daemon.js +0 -2
- package/dist/lib/daemon/testdata/process-view-start.js +0 -5
- package/dist/lib/daemon/tmux-reap-service.d.ts +0 -1
- package/dist/lib/daemon/tmux-reap-service.js +0 -1
- package/dist/lib/daemon/usage-sync-service.d.ts +0 -23
- package/dist/lib/daemon/usage-sync-service.js +0 -26
- package/dist/lib/daemon/watchdog-service.d.ts +0 -9
- package/dist/lib/daemon/watchdog-service.js +0 -13
- package/dist/lib/daemon/webhook-receiver-service.d.ts +0 -1
- package/dist/lib/daemon/webhook-receiver-service.js +0 -1
- package/dist/lib/daemon-health.d.ts +0 -55
- package/dist/lib/daemon-health.js +4 -77
- package/dist/lib/daemon-services.d.ts +0 -36
- package/dist/lib/daemon-services.js +0 -45
- package/dist/lib/daemon-ticks.d.ts +0 -126
- package/dist/lib/daemon-ticks.js +1 -156
- package/dist/lib/daemon-webhooks.d.ts +0 -57
- package/dist/lib/daemon-webhooks.js +2 -54
- package/dist/lib/deeplink/register.d.ts +0 -15
- package/dist/lib/deeplink/register.js +0 -60
- package/dist/lib/deeplink/url.d.ts +0 -24
- package/dist/lib/deeplink/url.js +1 -33
- package/dist/lib/device-config.d.ts +1 -192
- package/dist/lib/device-config.js +86 -240
- package/dist/lib/devices/config-migration.d.ts +0 -43
- package/dist/lib/devices/config-migration.js +7 -127
- package/dist/lib/devices/connect.d.ts +0 -168
- package/dist/lib/devices/connect.js +6 -254
- package/dist/lib/devices/device-docs.d.ts +0 -24
- package/dist/lib/devices/device-docs.js +0 -46
- package/dist/lib/devices/discovery-policy.d.ts +0 -30
- package/dist/lib/devices/discovery-policy.js +3 -34
- package/dist/lib/devices/doctor-findings.d.ts +0 -109
- package/dist/lib/devices/doctor-findings.js +30 -326
- package/dist/lib/devices/doctor-overview-cache.d.ts +0 -33
- package/dist/lib/devices/doctor-overview-cache.js +0 -81
- package/dist/lib/devices/fleet-divergence.d.ts +0 -89
- package/dist/lib/devices/fleet-divergence.js +1 -60
- package/dist/lib/devices/fleet-inventory.d.ts +0 -27
- package/dist/lib/devices/fleet-inventory.js +0 -38
- package/dist/lib/devices/fleet.d.ts +0 -95
- package/dist/lib/devices/fleet.js +0 -79
- package/dist/lib/devices/harness-inventory.d.ts +0 -75
- package/dist/lib/devices/harness-inventory.js +0 -101
- package/dist/lib/devices/health-report.d.ts +0 -37
- package/dist/lib/devices/health-report.js +0 -73
- package/dist/lib/devices/health.d.ts +0 -71
- package/dist/lib/devices/health.js +2 -82
- package/dist/lib/devices/interactive-host.d.ts +0 -10
- package/dist/lib/devices/interactive-host.js +0 -34
- package/dist/lib/devices/known-hosts.d.ts +0 -45
- package/dist/lib/devices/known-hosts.js +0 -77
- package/dist/lib/devices/pending.d.ts +0 -31
- package/dist/lib/devices/pending.js +7 -67
- package/dist/lib/devices/pool.d.ts +0 -36
- package/dist/lib/devices/pool.js +0 -30
- package/dist/lib/devices/reachability.d.ts +0 -25
- package/dist/lib/devices/reachability.js +0 -14
- package/dist/lib/devices/registry.d.ts +0 -141
- package/dist/lib/devices/registry.js +4 -151
- package/dist/lib/devices/resolve-profile.d.ts +0 -18
- package/dist/lib/devices/resolve-profile.js +0 -18
- package/dist/lib/devices/resolve-target.d.ts +0 -20
- package/dist/lib/devices/resolve-target.js +1 -51
- package/dist/lib/devices/rollout-verify.d.ts +1 -81
- package/dist/lib/devices/rollout-verify.js +0 -77
- package/dist/lib/devices/self-host.d.ts +0 -7
- package/dist/lib/devices/self-host.js +1 -29
- package/dist/lib/devices/ssh-config.d.ts +0 -18
- package/dist/lib/devices/ssh-config.js +0 -9
- package/dist/lib/devices/stats-cache.d.ts +0 -48
- package/dist/lib/devices/stats-cache.js +0 -80
- package/dist/lib/devices/sync.d.ts +0 -97
- package/dist/lib/devices/sync.js +0 -88
- package/dist/lib/devices/tailscale.d.ts +0 -18
- package/dist/lib/devices/tailscale.js +1 -38
- package/dist/lib/devices/terminfo.d.ts +0 -27
- package/dist/lib/devices/terminfo.js +2 -64
- package/dist/lib/devices/worker-pick.d.ts +0 -15
- package/dist/lib/devices/worker-pick.js +0 -48
- package/dist/lib/diff-text.d.ts +0 -18
- package/dist/lib/diff-text.js +0 -15
- package/dist/lib/doctor-diff.d.ts +0 -79
- package/dist/lib/doctor-diff.js +2 -181
- package/dist/lib/drift-sync.d.ts +0 -29
- package/dist/lib/drift-sync.js +0 -40
- package/dist/lib/drift.d.ts +0 -43
- package/dist/lib/drift.js +0 -31
- package/dist/lib/event-families.d.ts +0 -17
- package/dist/lib/event-families.js +0 -33
- package/dist/lib/event-provenance.d.ts +0 -4
- package/dist/lib/event-provenance.js +0 -5
- package/dist/lib/event-stream.d.ts +0 -29
- package/dist/lib/event-stream.js +0 -36
- package/dist/lib/events-ingest.d.ts +0 -27
- package/dist/lib/events-ingest.js +0 -54
- package/dist/lib/exec-account-home.d.ts +0 -24
- package/dist/lib/exec-account-home.js +0 -41
- package/dist/lib/exec-bounded.d.ts +1 -37
- package/dist/lib/exec-bounded.js +10 -46
- package/dist/lib/exec.d.ts +3 -583
- package/dist/lib/exec.js +18 -1025
- package/dist/lib/factory/snapshot.js +1 -15
- package/dist/lib/feed/activity-stream.d.ts +0 -27
- package/dist/lib/feed/activity-stream.js +4 -80
- package/dist/lib/feed/activity.d.ts +1 -243
- package/dist/lib/feed/activity.js +8 -273
- package/dist/lib/feed/answer.d.ts +0 -103
- package/dist/lib/feed/answer.js +0 -267
- package/dist/lib/feed/attention.d.ts +0 -56
- package/dist/lib/feed/attention.js +0 -161
- package/dist/lib/feed/envelope.d.ts +2 -17
- package/dist/lib/feed/envelope.js +0 -14
- package/dist/lib/feed/events.d.ts +0 -118
- package/dist/lib/feed/events.js +13 -213
- package/dist/lib/feed/feed.d.ts +1 -250
- package/dist/lib/feed/feed.js +24 -334
- package/dist/lib/feed/hub-server.d.ts +0 -100
- package/dist/lib/feed/hub-server.js +1 -191
- package/dist/lib/feed/hub.d.ts +0 -53
- package/dist/lib/feed/hub.js +0 -89
- package/dist/lib/feed/pr-status.d.ts +1 -19
- package/dist/lib/feed/pr-status.js +0 -18
- package/dist/lib/feed/tool-activity.d.ts +0 -59
- package/dist/lib/feed/tool-activity.js +1 -119
- package/dist/lib/feed/tools.d.ts +0 -100
- package/dist/lib/feed/tools.js +0 -89
- package/dist/lib/feed/watch.d.ts +0 -33
- package/dist/lib/feed/watch.js +2 -94
- package/dist/lib/feed-broadcast.d.ts +0 -148
- package/dist/lib/feed-broadcast.js +1 -283
- package/dist/lib/feed-outcome.d.ts +0 -50
- package/dist/lib/feed-outcome.js +1 -67
- package/dist/lib/feed-policy.d.ts +0 -6
- package/dist/lib/feed-policy.js +1 -27
- package/dist/lib/feed-post.d.ts +0 -61
- package/dist/lib/feed-post.js +4 -61
- package/dist/lib/feed-ranking.d.ts +1 -1
- package/dist/lib/fleet/apply.d.ts +0 -64
- package/dist/lib/fleet/apply.js +0 -125
- package/dist/lib/fleet/auth-sync.d.ts +0 -48
- package/dist/lib/fleet/auth-sync.js +4 -49
- package/dist/lib/fleet/capture.d.ts +0 -26
- package/dist/lib/fleet/capture.js +1 -36
- package/dist/lib/fleet/manifest.d.ts +0 -38
- package/dist/lib/fleet/manifest.js +0 -40
- package/dist/lib/fleet/types.d.ts +1 -138
- package/dist/lib/fleet/types.js +0 -12
- package/dist/lib/fleet-cache.d.ts +0 -12
- package/dist/lib/fleet-cache.js +0 -24
- package/dist/lib/fleet-shared-state.d.ts +6 -59
- package/dist/lib/fleet-shared-state.js +5 -51
- package/dist/lib/fleet-status.d.ts +0 -27
- package/dist/lib/fleet-status.js +0 -48
- package/dist/lib/format.d.ts +0 -74
- package/dist/lib/format.js +3 -77
- package/dist/lib/friction-heuristics.d.ts +0 -20
- package/dist/lib/friction-heuristics.js +0 -8
- package/dist/lib/fs-atomic.d.ts +0 -51
- package/dist/lib/fs-atomic.js +8 -66
- package/dist/lib/fs-walk.d.ts +0 -13
- package/dist/lib/fs-walk.js +0 -22
- package/dist/lib/fuzzy.d.ts +0 -29
- package/dist/lib/fuzzy.js +0 -31
- package/dist/lib/gemini-settings.js +0 -12
- package/dist/lib/git.d.ts +0 -366
- package/dist/lib/git.js +7 -574
- package/dist/lib/github/ci-failure.d.ts +30 -0
- package/dist/lib/github/ci-failure.js +95 -0
- package/dist/lib/github/gh-overload.d.ts +0 -38
- package/dist/lib/github/gh-overload.js +3 -55
- package/dist/lib/github/pr-mergeable.d.ts +3 -34
- package/dist/lib/github/pr-mergeable.js +2 -42
- package/dist/lib/github/pr-verdict.d.ts +0 -44
- package/dist/lib/github/pr-verdict.js +0 -36
- package/dist/lib/github/project-prs.d.ts +135 -105
- package/dist/lib/github/project-prs.js +530 -170
- package/dist/lib/github/release-drift.d.ts +45 -0
- package/dist/lib/github/release-drift.js +91 -0
- package/dist/lib/github/rest.d.ts +0 -50
- package/dist/lib/github/rest.js +0 -49
- package/dist/lib/github/viewer.d.ts +27 -0
- package/dist/lib/github/viewer.js +101 -0
- package/dist/lib/goose-commands.d.ts +0 -29
- package/dist/lib/goose-commands.js +3 -48
- package/dist/lib/harness/adapter.d.ts +0 -151
- package/dist/lib/harness/adapter.js +0 -41
- package/dist/lib/harness/adapters/claude.d.ts +0 -8
- package/dist/lib/harness/adapters/claude.js +0 -89
- package/dist/lib/harness/adapters/codex.js +0 -18
- package/dist/lib/harness/adapters/copilot.js +0 -3
- package/dist/lib/harness/adapters/cursor.js +0 -16
- package/dist/lib/harness/adapters/droid.js +0 -3
- package/dist/lib/harness/adapters/kimi.js +0 -19
- package/dist/lib/harness/adapters/muse.js +0 -9
- package/dist/lib/harness/adapters/opencode.js +0 -2
- package/dist/lib/harness/exec-config-version.d.ts +0 -2
- package/dist/lib/harness/exec-config-version.js +0 -13
- package/dist/lib/harness/index.js +0 -10
- package/dist/lib/harness-auth-capabilities.d.ts +0 -26
- package/dist/lib/harness-auth-capabilities.js +0 -18
- package/dist/lib/harness-connection-test.d.ts +0 -27
- package/dist/lib/harness-connection-test.js +2 -20
- package/dist/lib/heal.d.ts +0 -45
- package/dist/lib/heal.js +2 -82
- package/dist/lib/help.d.ts +0 -32
- package/dist/lib/help.js +0 -41
- package/dist/lib/helper-download.d.ts +0 -85
- package/dist/lib/helper-download.js +0 -95
- package/dist/lib/helper-versions.d.ts +0 -51
- package/dist/lib/helper-versions.js +1 -45
- package/dist/lib/hooks/cache.d.ts +0 -40
- package/dist/lib/hooks/cache.js +8 -122
- package/dist/lib/hooks/install.d.ts +0 -253
- package/dist/lib/hooks/install.js +49 -822
- package/dist/lib/hooks/match.d.ts +0 -24
- package/dist/lib/hooks/match.js +0 -31
- package/dist/lib/hooks/profile.d.ts +0 -21
- package/dist/lib/hooks/profile.js +0 -28
- package/dist/lib/hosts/credential-transport.d.ts +0 -6
- package/dist/lib/hosts/credential-transport.js +0 -17
- package/dist/lib/hosts/credentials.d.ts +0 -35
- package/dist/lib/hosts/credentials.js +0 -38
- package/dist/lib/hosts/dispatch.d.ts +0 -140
- package/dist/lib/hosts/dispatch.js +0 -176
- package/dist/lib/hosts/logs.d.ts +0 -25
- package/dist/lib/hosts/logs.js +1 -51
- package/dist/lib/hosts/option.d.ts +0 -12
- package/dist/lib/hosts/option.js +0 -12
- package/dist/lib/hosts/passthrough.d.ts +0 -129
- package/dist/lib/hosts/passthrough.js +12 -249
- package/dist/lib/hosts/progress.d.ts +0 -90
- package/dist/lib/hosts/progress.js +5 -115
- package/dist/lib/hosts/providers/devices.d.ts +0 -19
- package/dist/lib/hosts/providers/devices.js +1 -34
- package/dist/lib/hosts/providers/local.d.ts +0 -14
- package/dist/lib/hosts/providers/local.js +0 -22
- package/dist/lib/hosts/ready.d.ts +0 -99
- package/dist/lib/hosts/ready.js +0 -101
- package/dist/lib/hosts/reconcile.d.ts +0 -38
- package/dist/lib/hosts/reconcile.js +1 -50
- package/dist/lib/hosts/reconnect.d.ts +0 -75
- package/dist/lib/hosts/reconnect.js +0 -98
- package/dist/lib/hosts/registry.d.ts +0 -74
- package/dist/lib/hosts/registry.js +0 -110
- package/dist/lib/hosts/remote-cmd.d.ts +1 -228
- package/dist/lib/hosts/remote-cmd.js +19 -294
- package/dist/lib/hosts/remote-cmd.test-fixture.d.ts +0 -1
- package/dist/lib/hosts/remote-cmd.test-fixture.js +0 -12
- package/dist/lib/hosts/remote-os.d.ts +0 -19
- package/dist/lib/hosts/remote-os.js +0 -22
- package/dist/lib/hosts/remote-session-id.d.ts +0 -22
- package/dist/lib/hosts/remote-session-id.js +0 -24
- package/dist/lib/hosts/routing-flag.d.ts +0 -21
- package/dist/lib/hosts/routing-flag.js +0 -21
- package/dist/lib/hosts/run-target.d.ts +0 -53
- package/dist/lib/hosts/run-target.js +0 -56
- package/dist/lib/hosts/session-index.d.ts +1 -53
- package/dist/lib/hosts/session-index.js +2 -59
- package/dist/lib/hosts/session-marker.d.ts +0 -31
- package/dist/lib/hosts/session-marker.js +0 -32
- package/dist/lib/hosts/ssh-config.d.ts +0 -25
- package/dist/lib/hosts/ssh-config.js +1 -32
- package/dist/lib/hosts/tasks.d.ts +0 -54
- package/dist/lib/hosts/tasks.js +0 -35
- package/dist/lib/hosts/types.d.ts +0 -39
- package/dist/lib/hosts/types.js +0 -22
- package/dist/lib/humans.d.ts +0 -21
- package/dist/lib/humans.js +0 -30
- package/dist/lib/identity/client.d.ts +1 -35
- package/dist/lib/identity/client.js +3 -29
- package/dist/lib/identity/index.d.ts +3 -27
- package/dist/lib/identity/index.js +8 -24
- package/dist/lib/import.d.ts +0 -104
- package/dist/lib/import.js +1 -137
- package/dist/lib/installations/active-check.d.ts +0 -53
- package/dist/lib/installations/active-check.js +0 -49
- package/dist/lib/installations/index.d.ts +0 -9
- package/dist/lib/installations/index.js +0 -9
- package/dist/lib/installations/installation-lock.js +0 -8
- package/dist/lib/installations/launch-gate.d.ts +0 -56
- package/dist/lib/installations/launch-gate.js +0 -83
- package/dist/lib/installations/migrate.d.ts +0 -100
- package/dist/lib/installations/migrate.js +105 -572
- package/dist/lib/installations/native-command.d.ts +0 -1
- package/dist/lib/installations/native-command.js +0 -6
- package/dist/lib/installations/resolve.d.ts +0 -24
- package/dist/lib/installations/resolve.js +0 -24
- package/dist/lib/installations/shims.d.ts +0 -395
- package/dist/lib/installations/shims.js +30 -957
- package/dist/lib/installations/store.d.ts +0 -199
- package/dist/lib/installations/store.js +1 -297
- package/dist/lib/installations/strategies.d.ts +0 -44
- package/dist/lib/installations/strategies.js +0 -87
- package/dist/lib/installations/types.d.ts +1 -67
- package/dist/lib/installations/types.js +0 -6
- package/dist/lib/installations/update-cancellation.d.ts +0 -74
- package/dist/lib/installations/update-cancellation.js +0 -74
- package/dist/lib/installations/update-policy.d.ts +0 -57
- package/dist/lib/installations/update-policy.js +0 -62
- package/dist/lib/installations/update-runtime.d.ts +0 -88
- package/dist/lib/installations/update-runtime.js +1 -127
- package/dist/lib/installations/update.d.ts +0 -53
- package/dist/lib/installations/update.js +0 -95
- package/dist/lib/installations/versions.d.ts +0 -310
- package/dist/lib/installations/versions.js +14 -837
- package/dist/lib/isolation-boundary-report.d.ts +0 -7
- package/dist/lib/isolation-boundary-report.js +0 -7
- package/dist/lib/launch-identity.d.ts +0 -8
- package/dist/lib/launch-identity.js +0 -8
- package/dist/lib/linear-autoclose.d.ts +0 -25
- package/dist/lib/linear-autoclose.js +0 -19
- package/dist/lib/linear-cache.d.ts +0 -57
- package/dist/lib/linear-cache.js +1 -81
- package/dist/lib/linear-project-counts.d.ts +0 -83
- package/dist/lib/linear-project-counts.js +2 -64
- package/dist/lib/linear-projects.d.ts +0 -62
- package/dist/lib/linear-projects.js +0 -85
- package/dist/lib/linear-rate-limit.d.ts +0 -21
- package/dist/lib/linear-rate-limit.js +1 -93
- package/dist/lib/linux-userns.d.ts +1 -42
- package/dist/lib/linux-userns.js +0 -47
- package/dist/lib/lock-compromise.d.ts +0 -7
- package/dist/lib/lock-compromise.js +0 -7
- package/dist/lib/log-follow.d.ts +0 -2
- package/dist/lib/log-follow.js +5 -15
- package/dist/lib/loop.d.ts +0 -106
- package/dist/lib/loop.js +0 -135
- package/dist/lib/machine-id.d.ts +0 -19
- package/dist/lib/machine-id.js +0 -19
- package/dist/lib/mailbox-gc.d.ts +0 -7
- package/dist/lib/mailbox-gc.js +0 -25
- package/dist/lib/mailbox-target.d.ts +0 -31
- package/dist/lib/mailbox-target.js +0 -27
- package/dist/lib/mailbox.d.ts +0 -77
- package/dist/lib/mailbox.js +5 -105
- package/dist/lib/manifest.d.ts +0 -4
- package/dist/lib/manifest.js +0 -36
- package/dist/lib/markdown.d.ts +0 -3
- package/dist/lib/markdown.js +0 -9
- package/dist/lib/mcp-registry.d.ts +1 -50
- package/dist/lib/mcp-registry.js +0 -64
- package/dist/lib/mcp.d.ts +0 -115
- package/dist/lib/mcp.js +3 -199
- package/dist/lib/memory-cache.d.ts +0 -11
- package/dist/lib/memory-cache.js +0 -9
- package/dist/lib/memory.d.ts +0 -52
- package/dist/lib/memory.js +12 -74
- package/dist/lib/menubar/download-menubar.d.ts +0 -35
- package/dist/lib/menubar/download-menubar.js +0 -38
- package/dist/lib/menubar/install-menubar.d.ts +0 -405
- package/dist/lib/menubar/install-menubar.js +25 -667
- package/dist/lib/menubar/migrate-prefs.d.ts +0 -47
- package/dist/lib/menubar/migrate-prefs.js +1 -70
- package/dist/lib/menubar/notify-desktop.d.ts +0 -82
- package/dist/lib/menubar/notify-desktop.js +0 -68
- package/dist/lib/menubar/resolve-version.d.ts +0 -41
- package/dist/lib/menubar/resolve-version.js +2 -44
- package/dist/lib/menubar/snapshot.d.ts +13 -66
- package/dist/lib/menubar/snapshot.js +45 -39
- package/dist/lib/merged-resources.d.ts +0 -10
- package/dist/lib/merged-resources.js +0 -10
- package/dist/lib/migrate-fold.d.ts +0 -31
- package/dist/lib/migrate-fold.js +6 -38
- package/dist/lib/model-tier-overrides.d.ts +0 -30
- package/dist/lib/model-tier-overrides.js +0 -14
- package/dist/lib/model-tiers.d.ts +0 -43
- package/dist/lib/model-tiers.js +5 -78
- package/dist/lib/models.d.ts +0 -145
- package/dist/lib/models.js +3 -333
- package/dist/lib/monitors/config.d.ts +0 -187
- package/dist/lib/monitors/config.js +4 -101
- package/dist/lib/monitors/dispatch.d.ts +0 -22
- package/dist/lib/monitors/dispatch.js +0 -35
- package/dist/lib/monitors/engine.d.ts +1 -53
- package/dist/lib/monitors/engine.js +17 -106
- package/dist/lib/monitors/fingerprint.d.ts +0 -43
- package/dist/lib/monitors/fingerprint.js +0 -57
- package/dist/lib/monitors/pid-watch.d.ts +0 -31
- package/dist/lib/monitors/pid-watch.js +0 -31
- package/dist/lib/monitors/remote.d.ts +0 -52
- package/dist/lib/monitors/remote.js +0 -42
- package/dist/lib/monitors/sources/command.d.ts +2 -9
- package/dist/lib/monitors/sources/command.js +13 -34
- package/dist/lib/monitors/sources/device.d.ts +0 -10
- package/dist/lib/monitors/sources/device.js +0 -14
- package/dist/lib/monitors/sources/failure.d.ts +0 -27
- package/dist/lib/monitors/sources/failure.js +0 -27
- package/dist/lib/monitors/sources/file.d.ts +0 -10
- package/dist/lib/monitors/sources/file.js +0 -11
- package/dist/lib/monitors/sources/http.d.ts +0 -7
- package/dist/lib/monitors/sources/http.js +0 -9
- package/dist/lib/monitors/sources/index.d.ts +0 -9
- package/dist/lib/monitors/sources/index.js +0 -9
- package/dist/lib/monitors/sources/poll.d.ts +0 -8
- package/dist/lib/monitors/sources/poll.js +0 -8
- package/dist/lib/monitors/sources/types.d.ts +0 -18
- package/dist/lib/monitors/sources/types.js +0 -8
- package/dist/lib/monitors/sources/webhook.d.ts +0 -7
- package/dist/lib/monitors/sources/webhook.js +0 -7
- package/dist/lib/monitors/sources/ws.d.ts +0 -10
- package/dist/lib/monitors/sources/ws.js +3 -13
- package/dist/lib/monitors/state.d.ts +0 -132
- package/dist/lib/monitors/state.js +2 -86
- package/dist/lib/native-accounts.d.ts +0 -32
- package/dist/lib/native-accounts.js +0 -17
- package/dist/lib/net-close.d.ts +0 -9
- package/dist/lib/net-close.js +0 -5
- package/dist/lib/notify.d.ts +0 -47
- package/dist/lib/notify.js +0 -30
- package/dist/lib/onepassword.d.ts +0 -14
- package/dist/lib/onepassword.js +0 -12
- package/dist/lib/open-url.d.ts +0 -38
- package/dist/lib/open-url.js +1 -69
- package/dist/lib/openclaw-keychain.js +2 -7
- package/dist/lib/operator.d.ts +0 -9
- package/dist/lib/operator.js +0 -34
- package/dist/lib/origin-machine.d.ts +0 -16
- package/dist/lib/origin-machine.js +0 -16
- package/dist/lib/output/git-output.d.ts +0 -31
- package/dist/lib/output/git-output.js +4 -43
- package/dist/lib/overdue.d.ts +0 -35
- package/dist/lib/overdue.js +0 -60
- package/dist/lib/owner-message.d.ts +0 -20
- package/dist/lib/owner-message.js +1 -40
- package/dist/lib/packages/output-home.d.ts +0 -28
- package/dist/lib/packages/output-home.js +0 -114
- package/dist/lib/paths.d.ts +0 -26
- package/dist/lib/paths.js +1 -27
- package/dist/lib/percentile.d.ts +0 -11
- package/dist/lib/percentile.js +0 -11
- package/dist/lib/perf/db.d.ts +0 -16
- package/dist/lib/perf/db.js +3 -32
- package/dist/lib/perf/spool.d.ts +0 -12
- package/dist/lib/perf/spool.js +0 -13
- package/dist/lib/perf/types.d.ts +0 -26
- package/dist/lib/perf/types.js +0 -1
- package/dist/lib/permissions-registry.d.ts +0 -48
- package/dist/lib/permissions-registry.js +0 -108
- package/dist/lib/permissions.d.ts +0 -215
- package/dist/lib/permissions.js +4 -407
- package/dist/lib/picker.d.ts +0 -124
- package/dist/lib/picker.js +0 -140
- package/dist/lib/placement.d.ts +0 -57
- package/dist/lib/placement.js +0 -47
- package/dist/lib/platform/exec.d.ts +0 -73
- package/dist/lib/platform/exec.js +0 -80
- package/dist/lib/platform/index.d.ts +0 -14
- package/dist/lib/platform/index.js +0 -14
- package/dist/lib/platform/ipc.d.ts +0 -10
- package/dist/lib/platform/ipc.js +0 -13
- package/dist/lib/platform/links.d.ts +0 -14
- package/dist/lib/platform/links.js +0 -25
- package/dist/lib/platform/paths.d.ts +0 -48
- package/dist/lib/platform/paths.js +0 -52
- package/dist/lib/platform/posixpath.d.ts +0 -18
- package/dist/lib/platform/posixpath.js +0 -62
- package/dist/lib/platform/process.d.ts +0 -67
- package/dist/lib/platform/process.js +5 -99
- package/dist/lib/platform/winpath.d.ts +0 -50
- package/dist/lib/platform/winpath.js +0 -81
- package/dist/lib/plugins/plugin-marketplace.d.ts +0 -165
- package/dist/lib/plugins/plugin-marketplace.js +10 -238
- package/dist/lib/plugins/plugins.d.ts +0 -238
- package/dist/lib/plugins/plugins.js +20 -454
- package/dist/lib/plugins/skills.d.ts +0 -86
- package/dist/lib/plugins/skills.js +1 -139
- package/dist/lib/pr-land-detach.d.ts +0 -17
- package/dist/lib/pr-land-detach.js +0 -30
- package/dist/lib/pricing/cost.d.ts +0 -29
- package/dist/lib/pricing/cost.js +0 -38
- package/dist/lib/pricing/index.d.ts +0 -6
- package/dist/lib/pricing/index.js +0 -6
- package/dist/lib/pricing/table.d.ts +0 -8
- package/dist/lib/pricing/table.js +3 -56
- package/dist/lib/probe.d.ts +0 -5
- package/dist/lib/probe.js +0 -40
- package/dist/lib/profiles-presets.d.ts +0 -20
- package/dist/lib/profiles-presets.js +1 -36
- package/dist/lib/profiles.d.ts +0 -185
- package/dist/lib/profiles.js +1 -158
- package/dist/lib/project-doctor.d.ts +0 -29
- package/dist/lib/project-doctor.js +0 -26
- package/dist/lib/project-focus.d.ts +0 -41
- package/dist/lib/project-focus.js +0 -49
- package/dist/lib/project-import.d.ts +0 -41
- package/dist/lib/project-import.js +0 -36
- package/dist/lib/project-key.d.ts +0 -65
- package/dist/lib/project-key.js +0 -70
- package/dist/lib/project-launch.d.ts +0 -49
- package/dist/lib/project-launch.js +2 -91
- package/dist/lib/project-probe.d.ts +0 -86
- package/dist/lib/project-probe.js +1 -88
- package/dist/lib/project-pull.d.ts +0 -96
- package/dist/lib/project-pull.js +0 -122
- package/dist/lib/project-resources.d.ts +0 -44
- package/dist/lib/project-resources.js +7 -171
- package/dist/lib/project-root.d.ts +0 -95
- package/dist/lib/project-root.js +0 -101
- package/dist/lib/project-schedule.d.ts +0 -43
- package/dist/lib/project-schedule.js +0 -52
- package/dist/lib/project-status.d.ts +0 -108
- package/dist/lib/project-status.js +0 -117
- package/dist/lib/projects.d.ts +0 -197
- package/dist/lib/projects.js +1 -213
- package/dist/lib/pwsh.d.ts +0 -41
- package/dist/lib/pwsh.js +0 -51
- package/dist/lib/quick-todo.d.ts +84 -0
- package/dist/lib/quick-todo.js +243 -0
- package/dist/lib/reconcile-and-repair.d.ts +0 -78
- package/dist/lib/reconcile-and-repair.js +3 -66
- package/dist/lib/redact.d.ts +0 -29
- package/dist/lib/redact.js +0 -54
- package/dist/lib/refresh-coordinator.d.ts +0 -15
- package/dist/lib/refresh-coordinator.js +0 -10
- package/dist/lib/refresh.d.ts +0 -39
- package/dist/lib/refresh.js +0 -45
- package/dist/lib/registry.d.ts +0 -65
- package/dist/lib/registry.js +0 -127
- package/dist/lib/reminders.d.ts +0 -21
- package/dist/lib/reminders.js +0 -30
- package/dist/lib/remote-agents-json.d.ts +0 -44
- package/dist/lib/remote-agents-json.js +1 -44
- package/dist/lib/reserved-stores.d.ts +0 -28
- package/dist/lib/reserved-stores.js +2 -28
- package/dist/lib/resource-aliases.d.ts +0 -12
- package/dist/lib/resource-aliases.js +0 -12
- package/dist/lib/resource-content-diff.d.ts +0 -28
- package/dist/lib/resource-content-diff.js +7 -34
- package/dist/lib/resource-inventory.d.ts +0 -51
- package/dist/lib/resource-inventory.js +0 -45
- package/dist/lib/resource-patterns.d.ts +0 -32
- package/dist/lib/resource-patterns.js +0 -34
- package/dist/lib/resource-profiles.d.ts +0 -7
- package/dist/lib/resource-profiles.js +0 -11
- package/dist/lib/resources/types.d.ts +0 -50
- package/dist/lib/resources/types.js +0 -7
- package/dist/lib/resources/workflows.d.ts +0 -7
- package/dist/lib/resources/workflows.js +0 -13
- package/dist/lib/resources.d.ts +0 -65
- package/dist/lib/resources.js +0 -78
- package/dist/lib/routers.d.ts +0 -67
- package/dist/lib/routers.js +0 -60
- package/dist/lib/routine-activation.d.ts +0 -23
- package/dist/lib/routine-activation.js +0 -24
- package/dist/lib/routine-context.d.ts +1 -91
- package/dist/lib/routine-context.js +0 -107
- package/dist/lib/routine-notify-owner.d.ts +0 -79
- package/dist/lib/routine-notify-owner.js +1 -103
- package/dist/lib/routine-notify.d.ts +0 -70
- package/dist/lib/routine-notify.js +1 -75
- package/dist/lib/routine-process-cleanup.d.ts +0 -1
- package/dist/lib/routine-process-cleanup.js +1 -4
- package/dist/lib/routine-readiness.d.ts +0 -63
- package/dist/lib/routine-readiness.js +4 -86
- package/dist/lib/routines-format.d.ts +0 -40
- package/dist/lib/routines-format.js +0 -67
- package/dist/lib/routines-placement.d.ts +0 -33
- package/dist/lib/routines-placement.js +0 -40
- package/dist/lib/routines-project.d.ts +0 -57
- package/dist/lib/routines-project.js +6 -80
- package/dist/lib/rules/compile.d.ts +0 -66
- package/dist/lib/rules/compile.js +6 -118
- package/dist/lib/rules/compose.d.ts +0 -56
- package/dist/lib/rules/compose.js +2 -83
- package/dist/lib/rules/rules.d.ts +0 -23
- package/dist/lib/rules/rules.js +0 -35
- package/dist/lib/rules/run-sync.d.ts +0 -16
- package/dist/lib/rules/run-sync.js +1 -44
- package/dist/lib/run-config.d.ts +0 -7
- package/dist/lib/run-config.js +0 -8
- package/dist/lib/run-defaults.d.ts +0 -14
- package/dist/lib/run-defaults.js +0 -14
- package/dist/lib/run-notify.d.ts +0 -18
- package/dist/lib/run-notify.js +0 -36
- package/dist/lib/run-trace-sync.d.ts +0 -21
- package/dist/lib/run-trace-sync.js +2 -66
- package/dist/lib/rush-session.d.ts +0 -26
- package/dist/lib/rush-session.js +0 -28
- package/dist/lib/sandbox.d.ts +0 -45
- package/dist/lib/sandbox.js +5 -93
- package/dist/lib/scheduler.d.ts +0 -28
- package/dist/lib/scheduler.js +0 -45
- package/dist/lib/scheduling/routines.d.ts +0 -652
- package/dist/lib/scheduling/routines.js +8 -475
- package/dist/lib/secrets-cli.d.ts +3 -8
- package/dist/lib/secrets-cli.js +1 -19
- package/dist/lib/secrets-client.d.ts +0 -117
- package/dist/lib/secrets-client.js +4 -275
- package/dist/lib/secrets-policy.d.ts +0 -142
- package/dist/lib/secrets-policy.js +4 -237
- package/dist/lib/secrets-types.d.ts +0 -87
- package/dist/lib/secrets-types.js +0 -13
- package/dist/lib/self-heal/checks/hook-manifest.js +0 -25
- package/dist/lib/self-heal/checks/hook-runtime.js +0 -5
- package/dist/lib/self-heal/checks/install-staging.d.ts +0 -1
- package/dist/lib/self-heal/checks/install-staging.js +1 -28
- package/dist/lib/self-heal/checks/menubar-helper.js +0 -5
- package/dist/lib/self-heal/checks/path.js +0 -9
- package/dist/lib/self-heal/checks/resources.js +0 -5
- package/dist/lib/self-heal/checks/shadowing.js +2 -16
- package/dist/lib/self-heal/checks/shims.js +0 -14
- package/dist/lib/self-heal/child.d.ts +12 -0
- package/dist/lib/self-heal/child.js +23 -0
- package/dist/lib/self-heal/registry.d.ts +0 -9
- package/dist/lib/self-heal/registry.js +0 -16
- package/dist/lib/self-heal/types.d.ts +0 -12
- package/dist/lib/self-heal/types.js +0 -15
- package/dist/lib/self-update.d.ts +0 -312
- package/dist/lib/self-update.js +9 -360
- package/dist/lib/service-manifest.d.ts +0 -39
- package/dist/lib/service-manifest.js +0 -72
- package/dist/lib/session/active.d.ts +13 -869
- package/dist/lib/session/active.js +17 -976
- package/dist/lib/session/actor-sidecar.d.ts +1 -32
- package/dist/lib/session/actor-sidecar.js +1 -41
- package/dist/lib/session/bookmarks.d.ts +0 -33
- package/dist/lib/session/bookmarks.js +0 -37
- package/dist/lib/session/bundle.d.ts +0 -86
- package/dist/lib/session/bundle.js +0 -54
- package/dist/lib/session/claude-accounts.d.ts +0 -40
- package/dist/lib/session/claude-accounts.js +0 -49
- package/dist/lib/session/cloud.d.ts +1 -23
- package/dist/lib/session/cloud.js +0 -26
- package/dist/lib/session/db.d.ts +5 -658
- package/dist/lib/session/db.js +22 -1443
- package/dist/lib/session/detached.d.ts +0 -21
- package/dist/lib/session/detached.js +0 -29
- package/dist/lib/session/discover.d.ts +3 -420
- package/dist/lib/session/discover.js +30 -1123
- package/dist/lib/session/fork.d.ts +1 -41
- package/dist/lib/session/fork.js +0 -19
- package/dist/lib/session/ghostty-tabs.d.ts +0 -24
- package/dist/lib/session/ghostty-tabs.js +0 -37
- package/dist/lib/session/glance-files.d.ts +19 -0
- package/dist/lib/session/glance-files.js +258 -0
- package/dist/lib/session/hook-sessions.d.ts +0 -33
- package/dist/lib/session/hook-sessions.js +4 -99
- package/dist/lib/session/host-link.d.ts +1 -94
- package/dist/lib/session/host-link.js +1 -81
- package/dist/lib/session/inject-target.d.ts +8 -0
- package/dist/lib/session/inject-target.js +32 -0
- package/dist/lib/session/inject.d.ts +0 -15
- package/dist/lib/session/inject.js +0 -15
- package/dist/lib/session/live-metadata.d.ts +1 -34
- package/dist/lib/session/live-metadata.js +1 -73
- package/dist/lib/session/local-tmux-attach.d.ts +0 -37
- package/dist/lib/session/local-tmux-attach.js +1 -76
- package/dist/lib/session/migrate-targets.d.ts +0 -46
- package/dist/lib/session/migrate-targets.js +0 -24
- package/dist/lib/session/migrations.d.ts +0 -12
- package/dist/lib/session/migrations.js +1 -20
- package/dist/lib/session/mirror.d.ts +0 -32
- package/dist/lib/session/mirror.js +0 -77
- package/dist/lib/session/origin-machine.js +0 -3
- package/dist/lib/session/pid-registry.d.ts +0 -80
- package/dist/lib/session/pid-registry.js +2 -81
- package/dist/lib/session/presence.d.ts +0 -39
- package/dist/lib/session/presence.js +2 -52
- package/dist/lib/session/process-view.d.ts +0 -11
- package/dist/lib/session/process-view.js +0 -25
- package/dist/lib/session/projection.d.ts +0 -3
- package/dist/lib/session/projection.js +0 -10
- package/dist/lib/session/provenance.d.ts +1 -37
- package/dist/lib/session/provenance.js +0 -69
- package/dist/lib/session/recovery.d.ts +1 -40
- package/dist/lib/session/recovery.js +2 -80
- package/dist/lib/session/relative-time.js +0 -3
- package/dist/lib/session/remote/peer-stream.d.ts +0 -42
- package/dist/lib/session/remote/peer-stream.js +0 -64
- package/dist/lib/session/remote/remote-bundle.d.ts +0 -6
- package/dist/lib/session/remote/remote-bundle.js +0 -21
- package/dist/lib/session/remote/remote-list.d.ts +1 -110
- package/dist/lib/session/remote/remote-list.js +5 -139
- package/dist/lib/session/remote/remote.d.ts +0 -98
- package/dist/lib/session/remote/remote.js +3 -119
- package/dist/lib/session/remote/watch.d.ts +1 -34
- package/dist/lib/session/remote/watch.js +12 -72
- package/dist/lib/session/remote-active.d.ts +0 -35
- package/dist/lib/session/remote-active.js +0 -48
- package/dist/lib/session/remote-bundle.js +0 -2
- package/dist/lib/session/remote-list.js +0 -2
- package/dist/lib/session/remote-preview-cache.d.ts +0 -7
- package/dist/lib/session/remote-preview-cache.js +1 -76
- package/dist/lib/session/remote.js +0 -2
- package/dist/lib/session/resume-command.d.ts +0 -6
- package/dist/lib/session/resume-command.js +0 -6
- package/dist/lib/session/resume-owner.d.ts +1 -52
- package/dist/lib/session/resume-owner.js +0 -56
- package/dist/lib/session/run-names.d.ts +0 -24
- package/dist/lib/session/run-names.js +0 -26
- package/dist/lib/session/session-cache.d.ts +2 -146
- package/dist/lib/session/session-cache.js +26 -203
- package/dist/lib/session/short-id.js +0 -3
- package/dist/lib/session/sync/agents.d.ts +0 -68
- package/dist/lib/session/sync/agents.js +0 -0
- package/dist/lib/session/sync/backend.d.ts +0 -39
- package/dist/lib/session/sync/backend.js +0 -45
- package/dist/lib/session/sync/config.d.ts +0 -27
- package/dist/lib/session/sync/config.js +0 -56
- package/dist/lib/session/sync/managed-config.d.ts +0 -17
- package/dist/lib/session/sync/managed-config.js +0 -17
- package/dist/lib/session/sync/managed-key.d.ts +0 -38
- package/dist/lib/session/sync/managed-key.js +1 -42
- package/dist/lib/session/sync/net-client.d.ts +0 -36
- package/dist/lib/session/sync/net-client.js +0 -30
- package/dist/lib/session/sync/provision.d.ts +0 -2
- package/dist/lib/session/sync/provision.js +0 -13
- package/dist/lib/session/sync/r2.d.ts +0 -20
- package/dist/lib/session/sync/r2.js +0 -20
- package/dist/lib/session/sync/transcript-crypto.d.ts +0 -37
- package/dist/lib/session/sync/transcript-crypto.js +5 -37
- package/dist/lib/session/sync/worker-template.d.ts +0 -5
- package/dist/lib/session/sync/worker-template.js +0 -40
- package/dist/lib/session/testdata/pid-registry-namespace.js +0 -2
- package/dist/lib/session/testdata/process-view-private.js +0 -1
- package/dist/lib/session/throughput.d.ts +0 -24
- package/dist/lib/session/throughput.js +1 -25
- package/dist/lib/session/timeline-pass.d.ts +1 -63
- package/dist/lib/session/timeline-pass.js +161 -148
- package/dist/lib/session/title.d.ts +0 -182
- package/dist/lib/session/title.js +0 -139
- package/dist/lib/session/tool-index.d.ts +2 -21
- package/dist/lib/session/tool-index.js +3 -75
- package/dist/lib/session/tool-store.d.ts +2 -48
- package/dist/lib/session/tool-store.js +1 -33
- package/dist/lib/session/viewing-in.d.ts +0 -67
- package/dist/lib/session/viewing-in.js +1 -71
- package/dist/lib/session/watch.js +0 -2
- package/dist/lib/session/width.js +0 -3
- package/dist/lib/sessions-client.d.ts +0 -46
- package/dist/lib/sessions-client.js +36 -113
- package/dist/lib/settings-manifest.d.ts +1 -17
- package/dist/lib/settings-manifest.js +4 -57
- package/dist/lib/setup-tool-install.d.ts +0 -1
- package/dist/lib/setup-tool-install.js +2 -7
- package/dist/lib/setup-tool-status.d.ts +0 -3
- package/dist/lib/setup-tool-status.js +4 -14
- package/dist/lib/sha256-asset.d.ts +0 -20
- package/dist/lib/sha256-asset.js +0 -20
- package/dist/lib/share-runtime.d.ts +0 -10
- package/dist/lib/share-runtime.js +1 -27
- package/dist/lib/shim-heal.d.ts +0 -15
- package/dist/lib/shim-heal.js +3 -29
- package/dist/lib/signin-badge.d.ts +0 -72
- package/dist/lib/signin-badge.js +0 -86
- package/dist/lib/sink-format.d.ts +0 -32
- package/dist/lib/sink-format.js +0 -14
- package/dist/lib/smart-launch.d.ts +0 -75
- package/dist/lib/smart-launch.js +1 -83
- package/dist/lib/snapshot.d.ts +0 -46
- package/dist/lib/snapshot.js +5 -31
- package/dist/lib/spinner.d.ts +0 -37
- package/dist/lib/spinner.js +0 -37
- package/dist/lib/sqlite.d.ts +0 -13
- package/dist/lib/sqlite.js +3 -71
- package/dist/lib/ssh-exec.d.ts +0 -209
- package/dist/lib/ssh-exec.js +11 -248
- package/dist/lib/ssh-tunnel.d.ts +0 -43
- package/dist/lib/ssh-tunnel.js +2 -48
- package/dist/lib/staleness/checkers/commands.d.ts +0 -4
- package/dist/lib/staleness/checkers/commands.js +0 -4
- package/dist/lib/staleness/checkers/hooks.d.ts +0 -10
- package/dist/lib/staleness/checkers/hooks.js +0 -15
- package/dist/lib/staleness/checkers/mcp.d.ts +0 -9
- package/dist/lib/staleness/checkers/mcp.js +0 -9
- package/dist/lib/staleness/checkers/permissions.d.ts +0 -12
- package/dist/lib/staleness/checkers/permissions.js +0 -13
- package/dist/lib/staleness/checkers/plugins.d.ts +0 -8
- package/dist/lib/staleness/checkers/plugins.js +0 -8
- package/dist/lib/staleness/checkers/rules.d.ts +0 -15
- package/dist/lib/staleness/checkers/rules.js +0 -26
- package/dist/lib/staleness/checkers/skills.d.ts +0 -4
- package/dist/lib/staleness/checkers/skills.js +0 -4
- package/dist/lib/staleness/checkers/subagents.d.ts +0 -9
- package/dist/lib/staleness/checkers/subagents.js +0 -9
- package/dist/lib/staleness/checkers/types.d.ts +0 -34
- package/dist/lib/staleness/checkers/types.js +0 -19
- package/dist/lib/staleness/checkers/workflows.d.ts +0 -7
- package/dist/lib/staleness/checkers/workflows.js +0 -7
- package/dist/lib/staleness/detectors/commands.js +0 -17
- package/dist/lib/staleness/detectors/hooks.js +1 -6
- package/dist/lib/staleness/detectors/mcp.js +0 -4
- package/dist/lib/staleness/detectors/permissions.js +10 -23
- package/dist/lib/staleness/detectors/rules.js +0 -6
- package/dist/lib/staleness/detectors/skills.d.ts +0 -1
- package/dist/lib/staleness/detectors/skills.js +1 -12
- package/dist/lib/staleness/detectors/types.d.ts +0 -10
- package/dist/lib/staleness/fingerprint.d.ts +0 -19
- package/dist/lib/staleness/fingerprint.js +0 -35
- package/dist/lib/staleness/index.d.ts +0 -28
- package/dist/lib/staleness/index.js +1 -45
- package/dist/lib/staleness/layers.d.ts +0 -23
- package/dist/lib/staleness/layers.js +0 -34
- package/dist/lib/staleness/prune.d.ts +0 -71
- package/dist/lib/staleness/prune.js +2 -27
- package/dist/lib/staleness/registry.d.ts +0 -10
- package/dist/lib/staleness/registry.js +3 -33
- package/dist/lib/staleness/types.d.ts +0 -36
- package/dist/lib/staleness/types.js +0 -5
- package/dist/lib/staleness/writers/commands.js +1 -48
- package/dist/lib/staleness/writers/hooks.js +1 -18
- package/dist/lib/staleness/writers/kinds.d.ts +0 -12
- package/dist/lib/staleness/writers/kinds.js +0 -1
- package/dist/lib/staleness/writers/lazy-map.d.ts +0 -11
- package/dist/lib/staleness/writers/mcp.js +0 -13
- package/dist/lib/staleness/writers/plugins.js +0 -4
- package/dist/lib/staleness/writers/rules.d.ts +0 -1
- package/dist/lib/staleness/writers/rules.js +1 -19
- package/dist/lib/staleness/writers/skills.js +3 -14
- package/dist/lib/staleness/writers/sources.d.ts +0 -11
- package/dist/lib/staleness/writers/sources.js +0 -32
- package/dist/lib/staleness/writers/subagents.js +0 -16
- package/dist/lib/staleness/writers/types.d.ts +0 -58
- package/dist/lib/staleness/writers/workflows.js +1 -1
- package/dist/lib/standalone-tools.d.ts +24 -0
- package/dist/lib/standalone-tools.js +58 -0
- package/dist/lib/star-nudge.d.ts +0 -32
- package/dist/lib/star-nudge.js +2 -36
- package/dist/lib/startup/command-registry.d.ts +0 -45
- package/dist/lib/startup/command-registry.js +1 -46
- package/dist/lib/startup/dev-build.d.ts +0 -9
- package/dist/lib/startup/dev-build.js +1 -42
- package/dist/lib/startup/root-command.d.ts +0 -19
- package/dist/lib/startup/root-command.js +0 -19
- package/dist/lib/startup/spellcheck.d.ts +0 -13
- package/dist/lib/startup/spellcheck.js +0 -13
- package/dist/lib/state.d.ts +0 -376
- package/dist/lib/state.js +19 -737
- package/dist/lib/storage/selection.d.ts +0 -40
- package/dist/lib/storage/selection.js +0 -29
- package/dist/lib/subagents-registry.d.ts +0 -56
- package/dist/lib/subagents-registry.js +0 -99
- package/dist/lib/subagents.d.ts +0 -128
- package/dist/lib/subagents.js +1 -158
- package/dist/lib/summarizer/config.d.ts +0 -37
- package/dist/lib/summarizer/config.js +0 -37
- package/dist/lib/summarizer/pass.d.ts +0 -20
- package/dist/lib/summarizer/pass.js +1 -34
- package/dist/lib/summarizer/summarize.d.ts +1 -49
- package/dist/lib/summarizer/summarize.js +0 -35
- package/dist/lib/sync-passphrase.d.ts +0 -16
- package/dist/lib/sync-passphrase.js +1 -18
- package/dist/lib/sync-status.d.ts +0 -72
- package/dist/lib/sync-status.js +0 -55
- package/dist/lib/sync-umbrella.d.ts +0 -54
- package/dist/lib/sync-umbrella.js +0 -48
- package/dist/lib/system-run-sync.d.ts +0 -5
- package/dist/lib/system-run-sync.js +1 -31
- package/dist/lib/teams/agents.d.ts +1 -444
- package/dist/lib/teams/agents.js +11 -871
- package/dist/lib/teams/api.d.ts +2 -52
- package/dist/lib/teams/api.js +4 -63
- package/dist/lib/teams/debug.d.ts +0 -6
- package/dist/lib/teams/debug.js +0 -6
- package/dist/lib/teams/delivery.d.ts +0 -41
- package/dist/lib/teams/delivery.js +0 -32
- package/dist/lib/teams/file_ops.d.ts +0 -11
- package/dist/lib/teams/file_ops.js +0 -11
- package/dist/lib/teams/forEach.d.ts +0 -76
- package/dist/lib/teams/forEach.js +1 -77
- package/dist/lib/teams/index.d.ts +1 -7
- package/dist/lib/teams/index.js +1 -7
- package/dist/lib/teams/parsers.d.ts +0 -4
- package/dist/lib/teams/parsers.js +0 -81
- package/dist/lib/teams/persistence.d.ts +0 -2
- package/dist/lib/teams/persistence.js +0 -12
- package/dist/lib/teams/placement-probe.d.ts +0 -12
- package/dist/lib/teams/placement-probe.js +1 -51
- package/dist/lib/teams/pr-watch.d.ts +0 -107
- package/dist/lib/teams/pr-watch.js +1 -107
- package/dist/lib/teams/registry.d.ts +0 -36
- package/dist/lib/teams/registry.js +0 -47
- package/dist/lib/teams/remoteWorktree.d.ts +0 -50
- package/dist/lib/teams/remoteWorktree.js +1 -96
- package/dist/lib/teams/scheduler.d.ts +0 -111
- package/dist/lib/teams/scheduler.js +2 -125
- package/dist/lib/teams/summarizer.d.ts +0 -22
- package/dist/lib/teams/summarizer.js +6 -50
- package/dist/lib/teams/supervisor.d.ts +0 -38
- package/dist/lib/teams/supervisor.js +0 -21
- package/dist/lib/teams/worktree.d.ts +0 -95
- package/dist/lib/teams/worktree.js +3 -110
- package/dist/lib/template.d.ts +0 -21
- package/dist/lib/template.js +0 -23
- package/dist/lib/term-client.d.ts +0 -26
- package/dist/lib/term-client.js +0 -48
- package/dist/lib/term-driver.d.ts +0 -5
- package/dist/lib/term-driver.js +0 -8
- package/dist/lib/terminal/backends/ghostty.d.ts +0 -2
- package/dist/lib/terminal/backends/ghostty.js +0 -12
- package/dist/lib/terminal/backends/index.d.ts +0 -17
- package/dist/lib/terminal/backends/index.js +0 -15
- package/dist/lib/terminal/backends/iterm.d.ts +0 -2
- package/dist/lib/terminal/backends/iterm.js +0 -10
- package/dist/lib/terminal/backends/terminal-app.d.ts +0 -10
- package/dist/lib/terminal/backends/terminal-app.js +0 -30
- package/dist/lib/terminal/backends/tmux.d.ts +0 -10
- package/dist/lib/terminal/backends/tmux.js +0 -2
- package/dist/lib/terminal/backends/vscodium-agent.d.ts +0 -25
- package/dist/lib/terminal/backends/vscodium-agent.js +0 -36
- package/dist/lib/terminal/engine.d.ts +0 -17
- package/dist/lib/terminal/engine.js +0 -10
- package/dist/lib/terminal/index.d.ts +0 -8
- package/dist/lib/terminal/inject.d.ts +1 -173
- package/dist/lib/terminal/inject.js +0 -146
- package/dist/lib/terminal/policy.d.ts +0 -8
- package/dist/lib/terminal/policy.js +0 -1
- package/dist/lib/terminal/preferred.d.ts +0 -66
- package/dist/lib/terminal/preferred.js +0 -30
- package/dist/lib/terminal/quote.d.ts +0 -8
- package/dist/lib/terminal/quote.js +0 -8
- package/dist/lib/terminal/resolve.d.ts +0 -46
- package/dist/lib/terminal/resolve.js +0 -30
- package/dist/lib/terminal/run-surface.d.ts +0 -56
- package/dist/lib/terminal/run-surface.js +0 -46
- package/dist/lib/terminal/shell.d.ts +0 -3
- package/dist/lib/terminal/shell.js +0 -13
- package/dist/lib/terminal/transport.d.ts +0 -14
- package/dist/lib/terminal/transport.js +1 -30
- package/dist/lib/terminal/types.d.ts +0 -40
- package/dist/lib/terminal/types.js +0 -10
- package/dist/lib/text/relative-time.d.ts +0 -36
- package/dist/lib/text/relative-time.js +0 -43
- package/dist/lib/text/short-id.d.ts +0 -16
- package/dist/lib/text/short-id.js +0 -16
- package/dist/lib/text/width.d.ts +0 -24
- package/dist/lib/text/width.js +10 -52
- package/dist/lib/tmux/binary.d.ts +0 -36
- package/dist/lib/tmux/binary.js +0 -28
- package/dist/lib/tmux/index.d.ts +0 -5
- package/dist/lib/tmux/index.js +0 -5
- package/dist/lib/tmux/orphan-reap.d.ts +0 -253
- package/dist/lib/tmux/orphan-reap.js +3 -299
- package/dist/lib/tmux/paths.d.ts +0 -14
- package/dist/lib/tmux/paths.js +0 -14
- package/dist/lib/tmux/session.d.ts +0 -263
- package/dist/lib/tmux/session.js +6 -344
- package/dist/lib/traces/backend.d.ts +0 -20
- package/dist/lib/traces/backend.js +0 -23
- package/dist/lib/traces/classify.d.ts +0 -20
- package/dist/lib/traces/classify.js +0 -7
- package/dist/lib/traces/insights.d.ts +1 -84
- package/dist/lib/traces/insights.js +0 -126
- package/dist/lib/traces/phenotype.d.ts +0 -69
- package/dist/lib/traces/phenotype.js +0 -150
- package/dist/lib/traces/provision.d.ts +0 -1
- package/dist/lib/traces/provision.js +0 -5
- package/dist/lib/traces/schema2-build.d.ts +3 -60
- package/dist/lib/traces/schema2-build.js +8 -149
- package/dist/lib/traces/schema2-danger.d.ts +0 -30
- package/dist/lib/traces/schema2-danger.js +1 -63
- package/dist/lib/traces/schema2.d.ts +0 -11
- package/dist/lib/traces/segments.d.ts +0 -44
- package/dist/lib/traces/segments.js +0 -65
- package/dist/lib/traces/sync.d.ts +2 -239
- package/dist/lib/traces/sync.js +15 -237
- package/dist/lib/traces/worker-template.d.ts +0 -3
- package/dist/lib/traces/worker-template.js +0 -29
- package/dist/lib/triggers/handlers.d.ts +0 -82
- package/dist/lib/triggers/handlers.js +0 -75
- package/dist/lib/triggers/webhook.d.ts +0 -158
- package/dist/lib/triggers/webhook.js +0 -143
- package/dist/lib/types.d.ts +0 -736
- package/dist/lib/types.js +0 -50
- package/dist/lib/uninstall.d.ts +0 -17
- package/dist/lib/uninstall.js +0 -75
- package/dist/lib/usage-backoff.d.ts +0 -20
- package/dist/lib/usage-backoff.js +3 -60
- package/dist/lib/usage-refresh.d.ts +0 -154
- package/dist/lib/usage-refresh.js +8 -212
- package/dist/lib/verbs.d.ts +0 -12
- package/dist/lib/verbs.js +0 -12
- package/dist/lib/version-duplicates.d.ts +0 -6
- package/dist/lib/version-duplicates.js +0 -6
- package/dist/lib/version.d.ts +0 -55
- package/dist/lib/version.js +1 -58
- package/dist/lib/view-types.d.ts +0 -48
- package/dist/lib/warn-unpushed.d.ts +0 -27
- package/dist/lib/warn-unpushed.js +1 -45
- package/dist/lib/watchdog/history.d.ts +0 -1
- package/dist/lib/watchdog/history.js +0 -3
- package/dist/lib/watchdog/index.js +0 -2
- package/dist/lib/watchdog/log.d.ts +0 -19
- package/dist/lib/watchdog/log.js +0 -34
- package/dist/lib/watchdog/read.d.ts +0 -27
- package/dist/lib/watchdog/read.js +3 -58
- package/dist/lib/watchdog/rotate.d.ts +0 -139
- package/dist/lib/watchdog/rotate.js +2 -151
- package/dist/lib/watchdog/runner.d.ts +0 -125
- package/dist/lib/watchdog/runner.js +3 -223
- package/dist/lib/watchdog/service.d.ts +0 -1
- package/dist/lib/watchdog/service.js +0 -2
- package/dist/lib/watchdog/watchdog-agent.d.ts +0 -31
- package/dist/lib/watchdog/watchdog-agent.js +0 -27
- package/dist/lib/watchdog/watchdog.d.ts +0 -7
- package/dist/lib/watchdog/watchdog.js +0 -10
- package/dist/lib/watchdog/watchdogTail.js +0 -7
- package/dist/lib/whats-new.d.ts +0 -10
- package/dist/lib/whats-new.js +0 -21
- package/dist/lib/workflows-registry.d.ts +0 -45
- package/dist/lib/workflows-registry.js +0 -60
- package/dist/lib/workflows.d.ts +0 -282
- package/dist/lib/workflows.js +3 -213
- package/dist/lib/worktree/held.d.ts +0 -89
- package/dist/lib/worktree/held.js +1 -103
- package/dist/lib/wrap.d.ts +0 -32
- package/dist/lib/wrap.js +0 -32
- package/dist/lib/yaml-io.d.ts +0 -45
- package/dist/lib/yaml-io.js +0 -47
- package/dist/session-tracker/dist/adapters/claude.js +0 -2
- package/dist/session-tracker/dist/hook.sh +4 -37
- package/dist/session-tracker/dist/index.d.ts +0 -7
- package/dist/session-tracker/dist/index.js +0 -5
- package/dist/session-tracker/dist/install-hook.d.ts +0 -5
- package/dist/session-tracker/dist/install-hook.js +1 -15
- package/dist/session-tracker/dist/prune-state.js +0 -4
- package/dist/session-tracker/dist/reader.js +0 -4
- package/dist/session-tracker/dist/state-file.d.ts +0 -3
- package/dist/session-tracker/dist/state-file.js +3 -8
- package/package.json +3 -4
- package/scripts/postinstall.js +8 -116
- package/dist/lib/session/artifacts.d.ts +0 -14
- package/dist/lib/session/artifacts.js +0 -101
- package/dist/lib/session/bash-command.d.ts +0 -63
- package/dist/lib/session/bash-command.js +0 -490
- package/dist/lib/session/digest.d.ts +0 -66
- package/dist/lib/session/digest.js +0 -328
- package/dist/lib/session/highlights.d.ts +0 -151
- package/dist/lib/session/highlights.js +0 -391
- package/dist/lib/session/insights.d.ts +0 -165
- package/dist/lib/session/insights.js +0 -563
- package/dist/lib/session/linear.d.ts +0 -19
- package/dist/lib/session/linear.js +0 -99
- package/dist/lib/session/parse.d.ts +0 -224
- package/dist/lib/session/parse.js +0 -2408
- package/dist/lib/session/prompt.d.ts +0 -213
- package/dist/lib/session/prompt.js +0 -601
- package/dist/lib/session/render.d.ts +0 -133
- package/dist/lib/session/render.js +0 -1047
- package/dist/lib/session/share-html.d.ts +0 -35
- package/dist/lib/session/share-html.js +0 -319
- package/dist/lib/session/shell-programs.d.ts +0 -33
- package/dist/lib/session/shell-programs.js +0 -380
- package/dist/lib/session/state.d.ts +0 -269
- package/dist/lib/session/state.js +0 -777
- package/dist/lib/session/stream-render.d.ts +0 -4
- package/dist/lib/session/stream-render.js +0 -131
- package/dist/lib/session/tail.d.ts +0 -88
- package/dist/lib/session/tail.js +0 -294
- package/dist/lib/session/team-filter.d.ts +0 -129
- package/dist/lib/session/team-filter.js +0 -269
- package/dist/lib/session/timeline.d.ts +0 -172
- package/dist/lib/session/timeline.js +0 -636
- package/dist/lib/session/tool-calls.d.ts +0 -132
- package/dist/lib/session/tool-calls.js +0 -674
- package/dist/lib/session/trajectory-compare.d.ts +0 -48
- package/dist/lib/session/trajectory-compare.js +0 -116
- package/dist/lib/session/trajectory-html.d.ts +0 -19
- package/dist/lib/session/trajectory-html.js +0 -771
- package/dist/lib/session/trajectory-lineage.d.ts +0 -93
- package/dist/lib/session/trajectory-lineage.js +0 -195
- package/dist/lib/session/trajectory-text.d.ts +0 -38
- package/dist/lib/session/trajectory-text.js +0 -284
- package/dist/lib/session/trajectory.d.ts +0 -145
- package/dist/lib/session/trajectory.js +0 -394
- package/dist/lib/session/types.d.ts +0 -627
- package/dist/lib/session/types.js +0 -43
|
@@ -1,71 +1,26 @@
|
|
|
1
1
|
import type { CloudTaskStatus } from '../cloud/types.js';
|
|
2
2
|
import { type PidSessionEntry } from './pid-registry.js';
|
|
3
3
|
import { type HookSessionIndex } from './hook-sessions.js';
|
|
4
|
-
import { type UserPromptKind } from '
|
|
5
|
-
import { type SessionState, type SessionActivity, type AwaitingReason, type StructuredQuestion, type TodoProgress, type DetectedPr, type DetectedWorktree, type DetectedTicket } from '
|
|
6
|
-
import { type SessionAgentId, type SessionAttachment, type SessionFiles, type SessionMeta, type SessionRequest, type SessionTimeline } from '
|
|
4
|
+
import { type UserPromptKind } from '@phnx-labs/sessions-cli/reader';
|
|
5
|
+
import { type SessionState, type SessionActivity, type AwaitingReason, type StructuredQuestion, type TodoProgress, type DetectedPr, type DetectedWorktree, type DetectedTicket } from '@phnx-labs/sessions-cli/reader';
|
|
6
|
+
import { type SessionAgentId, type SessionAttachment, type SessionFiles, type SessionMeta, type SessionRequest, type SessionTimeline } from '@phnx-labs/sessions-cli/reader';
|
|
7
7
|
import { type SessionProvenance } from './provenance.js';
|
|
8
8
|
import { type DeviceRegistry } from '../devices/registry.js';
|
|
9
9
|
import { type Presence } from './detached.js';
|
|
10
10
|
import { type HostLink } from './host-link.js';
|
|
11
|
-
/** Prefer live actor attribution; the durable sidecar survives actor-less hook rewrites. */
|
|
12
11
|
export declare function resolveOwner(pidActor: string | null | undefined, sessionId: string | undefined): string | undefined;
|
|
13
|
-
/**
|
|
14
|
-
* Per-PID `lsof` probes run bounded and staggered rather than as one parallel
|
|
15
|
-
* fan-out: a simultaneous system-wide `lsof` burst reads to behavioral EDR
|
|
16
|
-
* (CrowdStrike Falcon) as lateral-movement recon. Results are identical — the
|
|
17
|
-
* cwds are just gathered at a bounded spawn rate instead of a single burst.
|
|
18
|
-
*/
|
|
19
12
|
export declare const LSOF_CONCURRENCY = 4;
|
|
20
|
-
/**
|
|
21
|
-
* Process-local process-table memo (#2047). One `getActiveSessions` scan can
|
|
22
|
-
* call `ps -A` from the terminal path, the headless path, and host ancestry —
|
|
23
|
-
* without this, each is a full process-table snapshot. 5s is well under the
|
|
24
|
-
* ~10–30s menu-bar / `--active` poll so a quiet re-poll usually reuses the
|
|
25
|
-
* snapshot; a brand-new agent pid still appears on the next full refresh.
|
|
26
|
-
*/
|
|
27
13
|
export declare const PROCESS_TABLE_FRESH_MS = 5000;
|
|
28
|
-
/**
|
|
29
|
-
* How long {@link listUnattributedActive} may reuse its last full `ps`+`lsof`
|
|
30
|
-
* result (#2047). Between full rescans the previous rows are re-emitted after
|
|
31
|
-
* dropping dead PIDs and PIDs that are now attributed. A *shrinking* attributed
|
|
32
|
-
* set forces a rescan so a process that just left teams/terminals can reappear
|
|
33
|
-
* as headless instead of vanishing until the next cold poll.
|
|
34
|
-
*/
|
|
35
14
|
export declare const UNATTRIBUTED_RESCAN_MS = 15000;
|
|
36
|
-
/** Test seam: override the clock used by process-table / unattributed memos. */
|
|
37
15
|
export declare function setActiveScanClockForTest(fn?: () => number): void;
|
|
38
|
-
/** Test seam: drop the process-table + unattributed memos and their counters. */
|
|
39
16
|
export declare function clearActiveScanCachesForTest(): void;
|
|
40
|
-
/** Test seam: how many times the live `ps` / CIM path actually ran. */
|
|
41
17
|
export declare function processTableLiveReadCountForTest(): number;
|
|
42
|
-
/** Test seam: how many full unattributed (ps + lsof) rescans ran. */
|
|
43
18
|
export declare function unattributedFullRescanCountForTest(): number;
|
|
44
|
-
/**
|
|
45
|
-
* True when any pid in `prev` is absent from `next` — the attributed set
|
|
46
|
-
* shrank, so a process may need to reappear as unattributed. Pure for tests.
|
|
47
|
-
*/
|
|
48
19
|
export declare function attributedSetLostPids(prev: Set<number>, next: Set<number>): boolean;
|
|
49
|
-
/**
|
|
50
|
-
* Drop rows whose pid is now attributed or no longer alive. Pure over the
|
|
51
|
-
* inputs so the unattributed TTL reuse path is unit-testable without a live
|
|
52
|
-
* process table. `alive` receives the row's `startedAtMs` so callers can apply
|
|
53
|
-
* the same pid-reuse guard {@link isPidAlive} uses elsewhere.
|
|
54
|
-
*/
|
|
55
20
|
export declare function filterCachedUnattributed(sessions: ActiveSession[], attributed: Set<number>, alive: (pid: number, startedAtMs?: number) => boolean, ppidMap?: Map<number, number>): ActiveSession[];
|
|
56
21
|
type ActiveContext = 'terminal' | 'teams' | 'cloud' | 'headless';
|
|
57
|
-
/** The SessionMeta fields the live-row backfill reads — the enrichment a running process cannot report. */
|
|
58
22
|
export type BackfillMeta = Pick<SessionMeta, 'version' | 'account' | 'accountId' | 'accountKey' | 'timestamp' | 'label' | 'firstUserMessage' | 'lastUserMessage' | 'generatedTitle' | 'ticketId' | 'prUrl' | 'prNumber' | 'origin' | 'routineName' | 'harness' | 'tokenCount' | 'durationMs' | 'subAgentCount' | 'lastActivity'>;
|
|
59
|
-
/**
|
|
60
|
-
* Fold index-only enrichment onto live rows, then RE-DERIVE the recap for every
|
|
61
|
-
* row it touched. The re-derive is load-bearing: `foldRecap` runs inside
|
|
62
|
-
* {@link getActiveSessions}, before any caller reaches the index, so a `label`
|
|
63
|
-
* or `generatedTitle` that only the index knows would otherwise never reach the
|
|
64
|
-
* shown `title` (PHNX-3797). Doing it here rather than at each of the three
|
|
65
|
-
* backfill call sites is what keeps them from drifting apart.
|
|
66
|
-
*/
|
|
67
23
|
export declare function backfillActiveRowsFromMeta(sessions: ActiveSession[], metaById: Map<string, BackfillMeta>): void;
|
|
68
|
-
/** Resolve a display name only when the indexed identity names one registered slot. */
|
|
69
24
|
export declare function sessionAccountLabel(kind: string, session: Pick<SessionMeta, 'accountId' | 'accountKey' | 'account'>, accounts?: import("../account-registry.js").NativeAccount[]): string | undefined;
|
|
70
25
|
export declare function backfillActiveRowsFromIndex(sessions: ActiveSession[]): void;
|
|
71
26
|
export declare function isRunningLiveSession(s: ActiveSession): boolean;
|
|
@@ -78,681 +33,148 @@ export declare function serializeActiveSessionsForJson(sessions: ActiveSession[]
|
|
|
78
33
|
viewingIn: string | null;
|
|
79
34
|
}>;
|
|
80
35
|
export declare function serializeSessionsJson(sessions: SessionMeta[]): string;
|
|
81
|
-
|
|
82
|
-
* Every status here is COMPUTED by the framework from observable signals — PID
|
|
83
|
-
* liveness and transcript last-write (mtime) — never self-reported by the agent.
|
|
84
|
-
*
|
|
85
|
-
* - `running` / `idle` / `input_required` — a live process's working / stopped
|
|
86
|
-
* / waiting-on-you activity, from its transcript (see {@link computeLiveSignals}).
|
|
87
|
-
* - `queued` — dispatched, work in the pipeline (cloud/headless launch).
|
|
88
|
-
* - `closed` — the PID is dead. The process has exited; report that, don't
|
|
89
|
-
* fabricate `idle` ("done, waiting for you") for a process that is simply gone.
|
|
90
|
-
* - `abandoned` — no transcript write in {@link ABANDONED_STALE_MS} (days): the
|
|
91
|
-
* session is dangling, whether its PID is dead (long gone) or still alive but
|
|
92
|
-
* stuck making no progress. A soft signal — it clears the moment it writes again.
|
|
93
|
-
* - `unknown` — the residual: genuinely NO signal (no PID info AND no file).
|
|
94
|
-
*
|
|
95
|
-
* A LIVE, fresh process is never `unknown` — "the process is alive" is itself a
|
|
96
|
-
* positive signal, so an opaque/unparseable live harness resolves to `running`
|
|
97
|
-
* (its honest floor), and every tracked harness with a locatable, parseable
|
|
98
|
-
* transcript (claude, codex, grok, droid, rush, gemini, kimi, hermes, opencode,
|
|
99
|
-
* antigravity) gets a real working/waiting/idle from its own parser — see
|
|
100
|
-
* {@link computeLiveSignals}, {@link lifecycleStatus} and {@link resolveFallbackStatus}.
|
|
101
|
-
*/
|
|
102
|
-
export type ActiveStatus = 'running' | 'idle' | 'queued' | 'input_required' | 'closed' | 'abandoned'
|
|
103
|
-
/** Alive, but no client is attached — the host window died and the agent outlived it. */
|
|
104
|
-
| 'orphaned'
|
|
105
|
-
/** The host window died and took the agent with it — an unclean exit, not a normal close. */
|
|
106
|
-
| 'crashed' | 'unknown';
|
|
107
|
-
/**
|
|
108
|
-
* Coarse lifecycle bucket a UI groups a row by, projected once at the source from
|
|
109
|
-
* {@link ActiveStatus} so consumers stop re-deriving it (PHNX-2484). The vocabulary
|
|
110
|
-
* is deliberately small — five terminal-agnostic buckets — so the AGI EXT Fleet panel
|
|
111
|
-
* reads `phase` straight off the `sessions watch --json` row instead of mirroring the
|
|
112
|
-
* CLI status word onto its own enum (the ext's `mapStatusToPhase`, now deleted):
|
|
113
|
-
* `running` — dispatched or actively working;
|
|
114
|
-
* `waiting` — blocked on the operator (needs-you);
|
|
115
|
-
* `failed` — dangling/dead and needing attention (crashed, orphaned, abandoned);
|
|
116
|
-
* `done` — the process exited cleanly;
|
|
117
|
-
* `idle` — alive but quiet, or an unclassified state.
|
|
118
|
-
*/
|
|
36
|
+
export type ActiveStatus = 'running' | 'idle' | 'queued' | 'input_required' | 'closed' | 'abandoned' | 'orphaned' | 'crashed' | 'unknown';
|
|
119
37
|
export type SessionPhase = 'running' | 'waiting' | 'failed' | 'done' | 'idle';
|
|
120
|
-
/**
|
|
121
|
-
* Which rung of the recap ladder produced a row's shown {@link ActiveSession.title}
|
|
122
|
-
* (RUSH-3011, reshaped by PHNX-3797), best-first:
|
|
123
|
-
* - `label` — a `/rename` or harness-set label (incl. a harness-generated
|
|
124
|
-
* title, which lands in `label`); always wins.
|
|
125
|
-
* - `generated` — the daemon-generated session title (`generatedTitle`).
|
|
126
|
-
* - `prompt` — the first-user-prompt topic; the honest fallback while the
|
|
127
|
-
* titler has not reached this session.
|
|
128
|
-
*
|
|
129
|
-
* There is deliberately no rung for the agent's last transcript line: it is a
|
|
130
|
-
* rolling monologue, not what the session IS. It stays on the row as
|
|
131
|
-
* `lastAgentLine` for the separate live preview.
|
|
132
|
-
*/
|
|
133
38
|
export type RecapSource = 'label' | 'generated' | 'prompt';
|
|
134
|
-
/**
|
|
135
|
-
* How urgent a row's secondary line is (PHNX-3797 owner feedback), best-first:
|
|
136
|
-
* - `question` — the agent asked something and is parked on the answer;
|
|
137
|
-
* - `needs_you` — blocked on the operator (a plan review, a permission, or a
|
|
138
|
-
* generic input-required wait) — the "needs you" case;
|
|
139
|
-
* - `activity` — nothing blocking; just what the agent is doing right now.
|
|
140
|
-
*
|
|
141
|
-
* `question`/`needs_you` are the signals a plain rolling activity preview buries,
|
|
142
|
-
* which is why they get their own ranked line distinct from the {@link ActiveSession.title}
|
|
143
|
-
* headline.
|
|
144
|
-
*/
|
|
145
39
|
export type ImportantMessageKind = 'question' | 'needs_you' | 'activity';
|
|
146
|
-
/**
|
|
147
|
-
* The single most important recent agent message for a row's secondary line
|
|
148
|
-
* (PHNX-3797 owner feedback). Distinct from the headline ({@link ActiveSession.title}),
|
|
149
|
-
* which says what the session IS: this says what the agent is doing or waiting on
|
|
150
|
-
* RIGHT NOW, ranked by {@link deriveImportantMessage} so a blocking question or a
|
|
151
|
-
* needs-you beats generic activity.
|
|
152
|
-
*/
|
|
153
40
|
export interface SessionImportantMessage {
|
|
154
|
-
/** The message to show, trimmed + capped for a single line. */
|
|
155
41
|
text: string;
|
|
156
|
-
/** Its urgency class — drives ordering and any glyph/color the renderer adds. */
|
|
157
42
|
kind: ImportantMessageKind;
|
|
158
43
|
}
|
|
159
44
|
export interface ActiveSession {
|
|
160
45
|
context: ActiveContext;
|
|
161
46
|
kind: string;
|
|
162
|
-
/**
|
|
163
|
-
* Custom harness / profile name when this live process was launched via
|
|
164
|
-
* `agents run <profile>` (e.g. `deepseek`). `kind` stays the HOST process
|
|
165
|
-
* (claude) so transcript lookup and live-signal parsers keep working.
|
|
166
|
-
* `sessions --active` displays this when set (PHNX-2935).
|
|
167
|
-
*/
|
|
168
47
|
harness?: string;
|
|
169
|
-
/** Specific host app — 'code', 'cursor', 'codium', 'iterm', 'terminal', 'warp', 'tmux', etc. */
|
|
170
48
|
host?: string;
|
|
171
49
|
pid?: number;
|
|
172
50
|
sessionId?: string;
|
|
173
51
|
cwd?: string;
|
|
174
|
-
/** Project/repo key derived from cwd, when known. */
|
|
175
52
|
project?: string | null;
|
|
176
|
-
/** User-given name from /rename command. */
|
|
177
53
|
label?: string;
|
|
178
|
-
/** Durable `agents run --name` launch handle, when the run was named. */
|
|
179
54
|
name?: string;
|
|
180
|
-
/** First meaningful line of the initial prompt (extracted topic). */
|
|
181
55
|
topic?: string;
|
|
182
|
-
/** Full, cleaned first genuine user turn, backfilled from the session index. */
|
|
183
56
|
firstUserMessage?: string;
|
|
184
|
-
/**
|
|
185
|
-
* Full, cleaned LATEST genuine user turn, backfilled from the session index
|
|
186
|
-
* beside {@link firstUserMessage}. This is what {@link deriveSessionRecap}
|
|
187
|
-
* classifies — a `/continue`d or redirected session's real request is the last
|
|
188
|
-
* thing the user said, not the first (PHNX-3939).
|
|
189
|
-
*/
|
|
190
57
|
lastUserMessage?: string;
|
|
191
|
-
/**
|
|
192
|
-
* The daemon-generated session title (PHNX-3797) — a short technical label for
|
|
193
|
-
* what the session worked on, produced once per session by the `session-title`
|
|
194
|
-
* service and backfilled from the index by {@link backfillActiveRowsFromMeta}.
|
|
195
|
-
* Rung 2 of the headline ladder; see {@link title}.
|
|
196
|
-
*/
|
|
197
58
|
generatedTitle?: string;
|
|
198
|
-
/**
|
|
199
|
-
* The row's shown title — WHAT the session is, best-source-wins (RUSH-3011,
|
|
200
|
-
* reshaped by PHNX-3797). The ladder ({@link deriveSessionRecap}): a `/rename`
|
|
201
|
-
* or harness `label` → the daemon-generated `generatedTitle` → the classified
|
|
202
|
-
* user prompt (from {@link lastUserMessage}/{@link firstUserMessage}/`topic`,
|
|
203
|
-
* PHNX-3939). It is a user-anchored NAME, never the agent's latest turn — that
|
|
204
|
-
* line stays in `lastAgentLine`/`preview`, where a live rolling status belongs.
|
|
205
|
-
* Folded on at the end of {@link getActiveSessions} (and re-derived after an
|
|
206
|
-
* index backfill); `recapSource` names which rung produced it.
|
|
207
|
-
*/
|
|
208
59
|
title?: string;
|
|
209
|
-
/** Which ladder rung produced {@link title}. */
|
|
210
60
|
recapSource?: RecapSource;
|
|
211
|
-
/**
|
|
212
|
-
* The first user turn cleaned for a "You" line — a screenshot path folds to
|
|
213
|
-
* `[image]`, a pasted `$ cmd` to the command, a `/skill` install path to
|
|
214
|
-
* `/<name>`, so path noise never shows. See {@link classifyUserPrompt}.
|
|
215
|
-
*/
|
|
216
61
|
userPromptClean?: string;
|
|
217
|
-
/** What kind of first turn {@link userPromptClean} was. */
|
|
218
62
|
userPromptKind?: UserPromptKind;
|
|
219
|
-
/**
|
|
220
|
-
* The most recent assistant line (from the transcript tail) — the free,
|
|
221
|
-
* always-current signal of what the agent last said/did. A LIVE-status field
|
|
222
|
-
* that belongs next to `preview`/`activity`; it is deliberately not a rung of
|
|
223
|
-
* the {@link title} ladder (PHNX-3797).
|
|
224
|
-
*/
|
|
225
63
|
lastAgentLine?: string;
|
|
226
|
-
/** Live preview: the latest turn (agent message or tool action), from the state engine. */
|
|
227
64
|
preview?: string;
|
|
228
|
-
/**
|
|
229
|
-
* The row's SECONDARY line (PHNX-3797 owner feedback): the most important recent
|
|
230
|
-
* agent message — a pending question, a needs-you block, or the current activity —
|
|
231
|
-
* ranked by {@link deriveImportantMessage}. Distinct from the {@link title}
|
|
232
|
-
* headline; folded on beside it in {@link foldRecap} and carried on the same
|
|
233
|
-
* `sessions watch --json` / mirror feed (via spread) so AGI EXT can render a bold
|
|
234
|
-
* title over a dim secondary line without a second query.
|
|
235
|
-
*/
|
|
236
65
|
importantMessage?: SessionImportantMessage;
|
|
237
|
-
/** Inferred activity: working / waiting_input / idle (from the transcript tail). */
|
|
238
66
|
activity?: SessionActivity;
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
67
|
+
model?: string;
|
|
68
|
+
failures?: import('@phnx-labs/sessions-cli/reader').SessionFailure[];
|
|
69
|
+
activityHistogram?: import('@phnx-labs/sessions-cli/reader').SessionActivityHistogram;
|
|
70
|
+
userTurns?: import('@phnx-labs/sessions-cli/reader').SessionUserTurn[];
|
|
71
|
+
subagents?: import('@phnx-labs/sessions-cli/reader').SessionSubagent[];
|
|
244
72
|
tokPerSec?: number;
|
|
245
|
-
/** Why the agent is waiting, when activity is waiting_input. */
|
|
246
73
|
awaitingReason?: AwaitingReason;
|
|
247
|
-
/** The structured decision (question/plan/permission + options) the agent is waiting on. */
|
|
248
74
|
question?: StructuredQuestion;
|
|
249
|
-
/**
|
|
250
|
-
* Plan markdown from the last `ExitPlanMode` tool call. Present when the
|
|
251
|
-
* transcript ever entered plan-review; `awaitingReason === 'plan_review'`
|
|
252
|
-
* says whether it is still pending.
|
|
253
|
-
*/
|
|
254
75
|
plan?: string;
|
|
255
|
-
/**
|
|
256
|
-
* Live plan progress from the most recent `TodoWrite` (RUSH-1380): the checklist
|
|
257
|
-
* items + a done/total tally + the current step. The Fleet renders this
|
|
258
|
-
* as an N/M pill + checklist for every session — including remote and
|
|
259
|
-
* device-dispatched agents that have no local tool-call stream to parse.
|
|
260
|
-
*/
|
|
261
76
|
todos?: TodoProgress;
|
|
262
|
-
/** Last few assistant turns (most-recent last), for at-a-glance context in the UI. */
|
|
263
77
|
tail?: string[];
|
|
264
|
-
/** PR opened during the session. */
|
|
265
78
|
pr?: DetectedPr;
|
|
266
|
-
/** Worktree the session runs in. */
|
|
267
79
|
worktree?: DetectedWorktree;
|
|
268
|
-
/** Tracker ticket the session is tied to. */
|
|
269
80
|
ticket?: DetectedTicket;
|
|
270
|
-
/** Per-session rate/usage limit detected in the transcript (RUSH-1523). */
|
|
271
81
|
rateLimited?: boolean;
|
|
272
|
-
/** Tracker refs the session CREATED (Linear create_issue / gh issue create). */
|
|
273
82
|
createdTickets?: string[];
|
|
274
|
-
/** Team name the session SPAWNED via `agents teams create/add`. */
|
|
275
83
|
spawnedTeam?: string;
|
|
276
|
-
/** Files/screenshots attached to the session prompt. */
|
|
277
84
|
attachments?: SessionAttachment[];
|
|
278
|
-
/**
|
|
279
|
-
* The session's operative request: the LATEST genuine user turn, tidied but
|
|
280
|
-
* never rewritten (PHNX-3939) — prose separated from screenshot paths, clip
|
|
281
|
-
* references, `@dir` mentions and pasted terminal echo. Folded by the daemon
|
|
282
|
-
* timeline pass and merged from the `session_timelines` cache; the sidebar's
|
|
283
|
-
* Request card reads it straight off the row.
|
|
284
|
-
*/
|
|
285
85
|
request?: SessionRequest;
|
|
286
|
-
/**
|
|
287
|
-
* Narration-anchored steps — what the agent has been doing, in its own words
|
|
288
|
-
* (PHNX-3939). Last 8 in full plus a fold of everything older. Produced by the
|
|
289
|
-
* daemon's timeline pass, never on the request path.
|
|
290
|
-
*/
|
|
291
86
|
timeline?: SessionTimeline;
|
|
292
|
-
/** Files the session created, modified or deleted; ≤ 8 rows plus a total. */
|
|
293
87
|
files?: SessionFiles;
|
|
294
|
-
/** Total tokens and elapsed duration from the indexed transcript. */
|
|
295
88
|
tokenCount?: number;
|
|
296
89
|
durationMs?: number;
|
|
297
|
-
/** Number of subagents launched, persisted by the index scanner. */
|
|
298
90
|
subAgentCount?: number;
|
|
299
|
-
|
|
300
|
-
artifacts?: import('./highlights.js').ProducedArtifact[];
|
|
301
|
-
/** Created plan document singled out for plan-first consumers. */
|
|
91
|
+
artifacts?: import('@phnx-labs/sessions-cli/reader').ProducedArtifact[];
|
|
302
92
|
planFile?: string;
|
|
303
93
|
sessionFile?: string;
|
|
304
94
|
startedAtMs?: number;
|
|
305
|
-
/**
|
|
306
|
-
* Agent version (e.g. `2.1.207`) for the row's `agent version` cell. Not a
|
|
307
|
-
* live-scan signal — a running process does not report its own semver — so it
|
|
308
|
-
* is backfilled at render time from the indexed {@link SessionMeta} by session
|
|
309
|
-
* id (RUSH-2205), never asserted by a source.
|
|
310
|
-
*/
|
|
311
95
|
version?: string;
|
|
312
|
-
/**
|
|
313
|
-
* Email of the account that produced the session (display-only). Like
|
|
314
|
-
* {@link version}, a running process does not report which account a
|
|
315
|
-
* `--strategy balanced` launch selected, so it is backfilled at render time
|
|
316
|
-
* from the indexed {@link SessionMeta} by session id (PHNX-3184). This is what
|
|
317
|
-
* the AGI EXT status bar renders as the session's account — it reads it off the
|
|
318
|
-
* `sessions watch --json` row instead of spawning a per-tab `agents sessions
|
|
319
|
-
* <id> --device <host> --json` (the 2026-08-25 CPU incident, agi-cli#3019).
|
|
320
|
-
* Never group on this — two orgs can share one email; group on the index's
|
|
321
|
-
* `accountKey`.
|
|
322
|
-
*/
|
|
323
96
|
account?: string;
|
|
324
|
-
/**
|
|
325
|
-
* Human account-slot name (e.g. `gmail` in `claude#gmail`), display-only.
|
|
326
|
-
* Backfilled alongside {@link account} from indexed accountId/accountKey/email
|
|
327
|
-
* and the account registry. Unknown or ambiguous slots stay undefined.
|
|
328
|
-
* Never group on this label; use the index's `accountKey`.
|
|
329
|
-
*/
|
|
330
97
|
accountLabel?: string;
|
|
331
|
-
/**
|
|
332
|
-
* Last-activity epoch — the transcript's last write (mtime). Distinct from
|
|
333
|
-
* {@link startedAtMs} (session START): a session begun 3h ago but last touched
|
|
334
|
-
* 20s ago has an old start and a fresh last-activity. The Floor renders "Xs ago"
|
|
335
|
-
* off this so an idle-but-old session doesn't read as freshly active.
|
|
336
|
-
*/
|
|
337
98
|
lastActivityMs?: number;
|
|
338
|
-
/**
|
|
339
|
-
* The transcript's own cursor — the harness stamp on the last meaningful event
|
|
340
|
-
* (message / tool call / tool result), from {@link SessionState.lastEventMs}.
|
|
341
|
-
* Unlike {@link lastActivityMs} it does not move when a hook-firing record is
|
|
342
|
-
* appended, so the attention reconciler uses it to decide whether the agent
|
|
343
|
-
* worked past a hook-raised prompt (PHNX-3999). Absent when the harness stamps
|
|
344
|
-
* no times, when no transcript was parsed, and on rows from a peer running an
|
|
345
|
-
* older CLI.
|
|
346
|
-
*/
|
|
347
99
|
lastEventMs?: number;
|
|
348
100
|
status: ActiveStatus;
|
|
349
|
-
/**
|
|
350
|
-
* Coarse lifecycle bucket derived once from {@link status} (see {@link SessionPhase}).
|
|
351
|
-
* Folded on at the end of {@link getActiveSessions} by {@link foldPhase}, AFTER
|
|
352
|
-
* {@link foldHostLink} has finalized `status` — so `orphaned`/`crashed` land in the
|
|
353
|
-
* `failed` bucket rather than being re-derived (and mis-bucketed as `idle`) downstream.
|
|
354
|
-
*/
|
|
355
101
|
phase?: SessionPhase;
|
|
356
|
-
/** Indexed launch origin, backfilled by the sessions command for JSON consumers. */
|
|
357
102
|
origin?: 'cli' | 'routine';
|
|
358
|
-
/** Routine definition name when origin is `routine`. */
|
|
359
103
|
routineName?: string;
|
|
360
|
-
/**
|
|
361
|
-
* Foreground/background presence for the detach/attach model:
|
|
362
|
-
* `attached` — live interactive TUI you're watching;
|
|
363
|
-
* `background` — detached: running headless, unattended (via `agents sessions detach`);
|
|
364
|
-
* `parked` — the headless continuation has exited; the transcript is durable.
|
|
365
|
-
* Absent for ad-hoc headless runs and cloud/team rows, which aren't on the
|
|
366
|
-
* foreground/background axis. Folded on at the end of {@link getActiveSessions}
|
|
367
|
-
* from the detach store — never asserted by a source.
|
|
368
|
-
*/
|
|
369
104
|
presence?: Presence;
|
|
370
|
-
/**
|
|
371
|
-
* Whether anything is still on the other end of this session — folded on at the
|
|
372
|
-
* end of {@link getActiveSessions} by {@link foldHostLink} from the raw signals
|
|
373
|
-
* below, never asserted by a source. Drives the `orphaned` / `crashed` statuses.
|
|
374
|
-
*/
|
|
375
105
|
hostLink?: HostLink;
|
|
376
|
-
/**
|
|
377
|
-
* Whether this session's process was alive at scan time — the boolean
|
|
378
|
-
* {@link applyState} already computes, kept rather than thrown away.
|
|
379
|
-
*
|
|
380
|
-
* `status` cannot stand in for it. `abandoned` fires on transcript staleness
|
|
381
|
-
* BEFORE the liveness check, so it covers a live-but-stuck process as well as
|
|
382
|
-
* a long-dead one; only `closed`/`crashed` are unconditionally dead. A consumer
|
|
383
|
-
* that must tell "still there, just quiet" from "gone" needs this, not the
|
|
384
|
-
* status. Absent from cloud rows (no pid) and from a peer running an older CLI.
|
|
385
|
-
*/
|
|
386
106
|
pidAlive?: boolean;
|
|
387
|
-
/**
|
|
388
|
-
* Clients attached to this session's tmux session (`#{session_attached}`), for
|
|
389
|
-
* a tmux-hosted row. Absent — NOT zero — when the session is not tmux-hosted:
|
|
390
|
-
* zero means "tmux says nobody is looking", absent means "we cannot tell".
|
|
391
|
-
*/
|
|
392
107
|
tmuxClients?: number;
|
|
393
|
-
/**
|
|
394
|
-
* When the owning IDE window last refreshed its slice of the live-terminals
|
|
395
|
-
* registry. Absent for a session no IDE window owns. A stale value means that
|
|
396
|
-
* window is gone — see {@link HOST_HEARTBEAT_STALE_MS}.
|
|
397
|
-
*/
|
|
398
108
|
windowHeartbeatMs?: number;
|
|
399
|
-
/** How many live PIDs resolve to this same session (subagents/forks). 1 unless collapsed. */
|
|
400
109
|
pidCount?: number;
|
|
401
|
-
/**
|
|
402
|
-
* Where the process actually lives — machine host, local vs SSH, tmux pane,
|
|
403
|
-
* and whether a rail exists to type back into it. Read from the process env
|
|
404
|
-
* (`/proc/<pid>/environ` on Linux, `ps eww` on macOS) during enrichment.
|
|
405
|
-
* Absent for cloud sessions (no local pid) and any pid whose env is unreadable.
|
|
406
|
-
*/
|
|
407
110
|
provenance?: SessionProvenance;
|
|
408
|
-
/**
|
|
409
|
-
* Who initiated this session — the resolved actor id stamped at spawn
|
|
410
|
-
* (`resolveActor().id`, read back from the pid registry / teammate record).
|
|
411
|
-
* A tailnet login/email for a resolved human, `UNRESOLVED@<host>` when it
|
|
412
|
-
* couldn't be determined, absent when the launch predates actor stamping.
|
|
413
|
-
* Surfaced as the owner column in `--active` (RUSH-2018).
|
|
414
|
-
*/
|
|
415
111
|
owner?: string;
|
|
416
|
-
/**
|
|
417
|
-
* The machine this session runs on, as a normalized device id (machineId()
|
|
418
|
-
* form). Set when merging cross-machine results so the grouped `--active`
|
|
419
|
-
* view can bucket by computer. Absent for a purely local query (the renderer
|
|
420
|
-
* falls back to provenance.host, then the local machine).
|
|
421
|
-
*
|
|
422
|
-
* For a host-dispatched run this is the EXECUTION host, not the box holding
|
|
423
|
-
* the live shim process — see {@link foldExecutionMachine}.
|
|
424
|
-
*/
|
|
425
112
|
machine?: string;
|
|
426
|
-
/**
|
|
427
|
-
* Set only on the dispatching box's own row for a host-dispatched run
|
|
428
|
-
* (`agents run --device <peer>`): the live process here is the ssh/TTY shim,
|
|
429
|
-
* while the agent itself runs on {@link machine}. Names the box the dispatch
|
|
430
|
-
* was issued from, so a merged fleet view can prefer the executing machine's
|
|
431
|
-
* own richer row over this shim (see `dedupeByMachineSession`).
|
|
432
|
-
*/
|
|
433
113
|
offloadedFrom?: string;
|
|
434
114
|
teamName?: string;
|
|
435
|
-
/**
|
|
436
|
-
* For a teams teammate: the session id of the ORCHESTRATOR that spawned the
|
|
437
|
-
* team (the agent that ran `agents teams add`, captured from AGENTS_SESSION_ID
|
|
438
|
-
* at spawn). Lets the listing answer "which session spun up this team" and
|
|
439
|
-
* group teammates under their orchestrator. Distinct from `sessionId`, which is
|
|
440
|
-
* the teammate's OWN transcript.
|
|
441
|
-
*/
|
|
442
115
|
orchestratorSessionId?: string;
|
|
443
|
-
/** Display label for the orchestrator (its topic/label), resolved when the
|
|
444
|
-
* orchestrator is itself present in the active set. Display-only. */
|
|
445
116
|
orchestratorLabel?: string;
|
|
446
|
-
/**
|
|
447
|
-
* For a teams teammate: a one-line summary of the mission it was spawned with
|
|
448
|
-
* (the `prompt` stored on the teammate record — the team's task/target), so the
|
|
449
|
-
* listing answers "what is this team working on", not just its name. Survives
|
|
450
|
-
* before the teammate has produced any transcript (a pending/staged teammate
|
|
451
|
-
* still shows its target). Distinct from `topic`, which is derived from the
|
|
452
|
-
* teammate's own transcript once it starts.
|
|
453
|
-
*/
|
|
454
117
|
assignedTask?: string;
|
|
455
118
|
agentId?: string;
|
|
456
119
|
cloudProvider?: string;
|
|
457
120
|
cloudTaskId?: string;
|
|
458
121
|
cloudStatus?: string;
|
|
459
|
-
/**
|
|
460
|
-
* IDE window that owns this terminal. Source of truth is the per-window
|
|
461
|
-
* slice key in `live-terminals.json` (computeWindowId in the swarmify
|
|
462
|
-
* extension): `${vscode.env.sessionId}-${extension-host pid}`. Lets the
|
|
463
|
-
* renderer cluster terminals that belong to the same IDE window even when
|
|
464
|
-
* two windows have the same cwd open. Only populated for `terminal` context.
|
|
465
|
-
*/
|
|
466
122
|
windowId?: string;
|
|
467
|
-
/**
|
|
468
|
-
* Controlling TTY of the agent process (e.g. 'ttys003'), from the `ps -A`
|
|
469
|
-
* read. macOS/Linux terminal sessions only; '??'/none normalized to undefined.
|
|
470
|
-
* A disambiguation bridge (and the basis for future terminal addressing).
|
|
471
|
-
*/
|
|
472
123
|
tty?: string;
|
|
473
|
-
/**
|
|
474
|
-
* Ghostty tab index (1-based) the session is shown in, when it can be matched
|
|
475
|
-
* to a Ghostty surface by working directory (+ title). Transient, populated by
|
|
476
|
-
* the renderer just before printing — NOT part of the pure discovery path.
|
|
477
|
-
*/
|
|
478
124
|
ghosttyTab?: number;
|
|
479
|
-
/**
|
|
480
|
-
* Resolved tmux attach target (`session:window.pane`) for a tmux-hosted local
|
|
481
|
-
* session, from the pane id via `mapPanesToTargets`. Transient, renderer-set
|
|
482
|
-
* (after the --json/--waiting gates) — NOT emitted on the discovery path.
|
|
483
|
-
*/
|
|
484
125
|
tmuxTarget?: string;
|
|
485
|
-
/**
|
|
486
|
-
* Which host app + tab a tmux-hosted session is currently being VIEWED in,
|
|
487
|
-
* resolved from the attached tmux client (its terminal PID -> app via
|
|
488
|
-
* HOST_MATCHERS, its tab via the per-app resolver). `undefined` means no
|
|
489
|
-
* client is attached — the session is running detached. Transient,
|
|
490
|
-
* renderer-set (see src/lib/session/viewing-in.ts) — NOT on the discovery path.
|
|
491
|
-
*/
|
|
492
126
|
viewingIn?: {
|
|
493
127
|
app: string;
|
|
494
128
|
tab?: number;
|
|
495
129
|
};
|
|
496
|
-
/**
|
|
497
|
-
* The editor tab that launched this agent (`AGENT_TERMINAL_ID`), from the pid
|
|
498
|
-
* registry or the published terminal entry. This is the one identifier that survives an SSH hop AND a session
|
|
499
|
-
* rotation: a Factory tab offloaded to a device has no local process to inspect,
|
|
500
|
-
* and its spawn-time session id goes stale the moment the agent moves to another
|
|
501
|
-
* session (`/clear`, exit-and-rerun), so `--active --device <device>` joined on
|
|
502
|
-
* this is how that tab re-identifies its own session. Absent for any launch that
|
|
503
|
-
* did not inherit a terminal id.
|
|
504
|
-
*/
|
|
505
130
|
terminalId?: string;
|
|
506
|
-
/** Published editor tab index, retained across agent restarts. */
|
|
507
131
|
tabIndex?: number;
|
|
508
|
-
/**
|
|
509
|
-
* The launch id (`AGENT_LAUNCH_ID`) the CLI stamps on every agent at spawn — a
|
|
510
|
-
* stable UUID that is identical locally and across an SSH hop and survives a
|
|
511
|
-
* session-id rotation (`/clear`, exit-and-rerun). Unlike `sessionId` (which the
|
|
512
|
-
* non-Claude harnesses only mint after boot) it exists from the first tick, so
|
|
513
|
-
* it is the join key a client uses to re-identify a session on the watch stream.
|
|
514
|
-
* Populated wherever the by-pid launch registry resolves — reliably for
|
|
515
|
-
* `agents run`-launched processes and editor terminals with a recorded live
|
|
516
|
-
* agent descendant.
|
|
517
|
-
*/
|
|
518
132
|
launchId?: string;
|
|
519
|
-
/**
|
|
520
|
-
* tmux pane id (`%N`) when this row was discovered via the tmux source AND its
|
|
521
|
-
* session id could not be resolved (a born-unidentifiable non-Claude pane). It
|
|
522
|
-
* is the dedupe key for such id-less rows, so two anonymous panes in the same
|
|
523
|
-
* cwd render as two distinct rows instead of collapsing onto each other. Unset
|
|
524
|
-
* once a session id resolves (the id is the identity then).
|
|
525
|
-
*/
|
|
526
133
|
paneId?: string;
|
|
527
|
-
/**
|
|
528
|
-
* The `ag-<agent>-<shortid>` tmux session name this row was discovered under,
|
|
529
|
-
* when it came from the tmux source. Kept even when the full session id could
|
|
530
|
-
* NOT be resolved (the row's `sessionId` is then absent), because the name's
|
|
531
|
-
* `<shortid>` suffix is the only stable selector such a row exposes — it is
|
|
532
|
-
* what `agents sessions --active` prints as the tmux target and what
|
|
533
|
-
* `agents sessions inject <shortid>` matches on to nudge an id-less remote
|
|
534
|
-
* session (PHNX-3688). Absent for non-tmux rows.
|
|
535
|
-
*/
|
|
536
134
|
tmuxName?: string;
|
|
537
|
-
/**
|
|
538
|
-
* Daemon-computed 1–2 line goal from the session's first user turn (PHNX-3939).
|
|
539
|
-
* Produced off the request path by the background `SessionSummarizerService`
|
|
540
|
-
* and merged from the `session_summaries` cache in {@link applyImmutableMemo};
|
|
541
|
-
* rides the `sessions watch` stream free via the `...row` spread.
|
|
542
|
-
*/
|
|
543
135
|
goal?: string;
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
summaryChecklist?: import('./types.js').SessionChecklistItem[];
|
|
548
|
-
/** Lifecycle of the daemon-computed summary; `skipped` when disabled (PHNX-3939). */
|
|
549
|
-
summaryState?: import('./types.js').SummaryState;
|
|
136
|
+
checkpoints?: import('@phnx-labs/sessions-cli/reader').SessionCheckpoint[];
|
|
137
|
+
summaryChecklist?: import('@phnx-labs/sessions-cli/reader').SessionChecklistItem[];
|
|
138
|
+
summaryState?: import('@phnx-labs/sessions-cli/reader').SummaryState;
|
|
550
139
|
}
|
|
551
140
|
export declare function activeStatusFromCloudStatus(status: CloudTaskStatus): ActiveStatus;
|
|
552
141
|
interface ActiveQueryOptions {
|
|
553
|
-
/** Skip the `ps` scan for ad-hoc headless agents. */
|
|
554
142
|
skipHeadless?: boolean;
|
|
555
|
-
/**
|
|
556
|
-
* A `--local` query: this machine only. Never dial a remote-host teammate
|
|
557
|
-
* (one dispatched via `agents teams add --device`) over ssh — report its
|
|
558
|
-
* last-persisted meta.json state instead of polling it. RUSH-2118: without
|
|
559
|
-
* this, `agents sessions --active --local` still fired one ssh round-trip
|
|
560
|
-
* per remote-host teammate (finished or not) on every call.
|
|
561
|
-
*/
|
|
562
143
|
localOnly?: boolean;
|
|
563
144
|
}
|
|
564
|
-
/**
|
|
565
|
-
* Thrown by {@link listTmuxAgentSessions} when the socket exists (a server has
|
|
566
|
-
* run) but tmux could not be asked for its truth — spawn failure, timeout, or a
|
|
567
|
-
* nonzero exit. Distinct from a missing socket, which means no server ever ran
|
|
568
|
-
* and is genuinely empty, not degraded. `getActiveSessions` still swallows this
|
|
569
|
-
* to `[]` so its return type stays a plain session array, but
|
|
570
|
-
* {@link describeActiveDiscoveryHealth} re-probes and surfaces it so the empty
|
|
571
|
-
* case a real fleet sweep found (RUSH-2507) reads differently from a clean one.
|
|
572
|
-
*/
|
|
573
145
|
export declare class TmuxDiscoveryDegradedError extends Error {
|
|
574
146
|
constructor(message: string);
|
|
575
147
|
}
|
|
576
|
-
/**
|
|
577
|
-
* A session whose transcript hasn't been written in this long is ABANDONED /
|
|
578
|
-
* dangling — the framework can no longer treat it as live work, whether its PID
|
|
579
|
-
* is dead (long gone) or still alive but making no progress (a hung agent).
|
|
580
|
-
* Two days: past a normal work gap, well short of a session legitimately kept
|
|
581
|
-
* open across a long weekend. Deliberately far wider than
|
|
582
|
-
* {@link ACTIVE_SESSION_STALE_MS} (which bounds transcript-borrowing, a different
|
|
583
|
-
* concern) — this is the lifecycle threshold, not the freshness window.
|
|
584
|
-
*/
|
|
585
148
|
export declare const ABANDONED_STALE_MS: number;
|
|
586
|
-
/**
|
|
587
|
-
* Every process executable ("comm") name that identifies a given session-agent
|
|
588
|
-
* kind in the headless `ps`-scan. Driven off the AGENTS registry's `cliCommand`
|
|
589
|
-
* (the real executable name — e.g. `agy` for antigravity, `cursor-agent` for
|
|
590
|
-
* cursor) plus {@link EXTRA_SESSION_AGENT_COMMS} for members with no registry
|
|
591
|
-
* row. Exported so the completeness test can assert every {@link SESSION_AGENTS}
|
|
592
|
-
* member resolves — the fix for the harness-parity gap where bare-headless
|
|
593
|
-
* grok/kimi/antigravity/openclaw/hermes/rush were silently dropped.
|
|
594
|
-
*/
|
|
595
149
|
export declare function sessionAgentComms(id: SessionAgentId): string[];
|
|
596
|
-
/**
|
|
597
|
-
* Resolve an agent kind from a process's reported executable. `comm` may be an
|
|
598
|
-
* absolute path (shim-launched agents), and Windows image names carry an
|
|
599
|
-
* `.exe` suffix (`claude.exe`), so basename + suffix-strip before the lookup.
|
|
600
|
-
*/
|
|
601
150
|
export declare function agentKindFromComm(commRaw: string): string | undefined;
|
|
602
|
-
/** Agent kind from an `ag-<agent>-<shortid>` tmux session name, else undefined. */
|
|
603
151
|
export declare function agentKindFromName(sessName: string): string | undefined;
|
|
604
|
-
/** The 8-char session-id prefix from an `ag-<agent>-<shortid>` name, else undefined. */
|
|
605
152
|
export declare function shortIdFromName(sessName: string): string | undefined;
|
|
606
|
-
/**
|
|
607
|
-
* Map every `ag-<agent>-<shortid>` tmux session name to its full session UUID in
|
|
608
|
-
* ONE batched DB lookup. The live scan calls this once per poll (not per pane),
|
|
609
|
-
* then resolvePaneIdentity reads the map — the recovery that makes a detached
|
|
610
|
-
* agent findable by `focus <id>` even when its durable identity records are gone.
|
|
611
|
-
* `findSessionsByShortIds` is injected so this stays unit-testable without a DB.
|
|
612
|
-
*/
|
|
613
153
|
export declare function resolveNamesToSessionIds(sessionNames: string[], deps: {
|
|
614
154
|
findSessionsByShortIds: (shortIds: string[]) => Map<string, {
|
|
615
155
|
id: string;
|
|
616
156
|
}>;
|
|
617
157
|
}): Map<string, string>;
|
|
618
|
-
/**
|
|
619
|
-
* True when `pid` names a live process AND — when a session's recorded
|
|
620
|
-
* `startedAtMs` is supplied — that process is plausibly the SAME one, not a later
|
|
621
|
-
* process that recycled the pid. The OS reuses pids, so a bare
|
|
622
|
-
* `process.kill(pid, 0)` existence check reports a dead session as alive (a
|
|
623
|
-
* "zombie") once its pid is handed to an unrelated process. A genuine session
|
|
624
|
-
* process starts at or before its own recorded start, so a process that began
|
|
625
|
-
* meaningfully AFTER `startedAtMs` is a reused pid and the session is dead. When
|
|
626
|
-
* the start time can't be read, we keep the existence answer.
|
|
627
|
-
*/
|
|
628
158
|
export declare function isPidAlive(pid: number, startedAtMs?: number): boolean;
|
|
629
|
-
/**
|
|
630
|
-
* Resolve a Claude transcript for `cwd` across the given project roots, newest
|
|
631
|
-
* mtime winning when the same id/cwd resolves in more than one version home
|
|
632
|
-
* (the actively-written copy is the newest). Pure over `projectRoots`, so it is
|
|
633
|
-
* testable against temp dirs without touching the real home directory.
|
|
634
|
-
*/
|
|
635
159
|
export declare function pickClaudeSessionFileAcrossRoots(projectRoots: string[], cwd: string, sessionId?: string): string | undefined;
|
|
636
|
-
/**
|
|
637
|
-
* Pick a Claude transcript file within a project dir.
|
|
638
|
-
*
|
|
639
|
-
* With a CONCRETE session id: return that id's `<id>.jsonl` or undefined — NEVER a
|
|
640
|
-
* sibling's. Falling back to the newest file here is the bug that made N distinct
|
|
641
|
-
* co-located sessions (e.g. several editor tabs in one cwd, or two worktree siblings)
|
|
642
|
-
* all collapse onto ONE file and render identical preview + topic (they look like
|
|
643
|
-
* duplicate cards). The mtime fallback is only sound when NO id is known.
|
|
644
|
-
*
|
|
645
|
-
* With NO id: return the newest `.jsonl` by mtime (the legitimate single-session
|
|
646
|
-
* heuristic for a directly-launched agent with no registry entry).
|
|
647
|
-
*/
|
|
648
160
|
export declare function pickSessionFile(projectDir: string, sessionId?: string): string | undefined;
|
|
649
|
-
/**
|
|
650
|
-
* One `stat` → the transcript's creation (≈ session start) and last-write (≈ last
|
|
651
|
-
* activity) epochs. Both `undefined` when the file can't be stat'd (vanished /
|
|
652
|
-
* unresolved). `birthtimeMs` can be 0 on filesystems without creation time — coerce
|
|
653
|
-
* that to `undefined` so callers fall through to a real signal instead of epoch 0.
|
|
654
|
-
*/
|
|
655
161
|
export declare function sessionFileTimes(sessionFile: string | undefined): {
|
|
656
162
|
birthtimeMs?: number;
|
|
657
163
|
mtimeMs?: number;
|
|
658
164
|
};
|
|
659
|
-
/**
|
|
660
|
-
* The lifecycle status computed purely from the two hard signals the framework
|
|
661
|
-
* always has — PID liveness and transcript last-write (mtime) — independent of
|
|
662
|
-
* anything the agent self-reports or what its last transcript turn happened to
|
|
663
|
-
* look like. Returns the definitive lifecycle label when one applies, or
|
|
664
|
-
* `undefined` when the process is live and fresh (so the caller uses the richer
|
|
665
|
-
* activity-derived status instead).
|
|
666
|
-
*
|
|
667
|
-
* - No write in {@link ABANDONED_STALE_MS} ⇒ `abandoned` (dangling): a
|
|
668
|
-
* days-stale session is not live work, whether its PID is dead (long gone)
|
|
669
|
-
* or still alive but stuck. Checked first — it outranks a bare `closed`.
|
|
670
|
-
* - Otherwise, PID dead ⇒ `closed`: the process has exited. This is the fix
|
|
671
|
-
* for the old "dead PID reports idle" lie — `idle` reads as "done, waiting
|
|
672
|
-
* for you", but a dead process is done, period.
|
|
673
|
-
* - Otherwise (alive + fresh) ⇒ `undefined`: defer to the activity engine.
|
|
674
|
-
*/
|
|
675
165
|
export declare function lifecycleStatus(pidAlive: boolean, mtimeMs: number | undefined, nowMs?: number): ActiveStatus | undefined;
|
|
676
|
-
/**
|
|
677
|
-
* The ONE place a fallback status is decided when no rich transcript state is
|
|
678
|
-
* available — an opaque kind we cannot parse (openclaw), or a transcript
|
|
679
|
-
* whose parse/tail was empty or unreadable. Honest by construction: computed from
|
|
680
|
-
* PID + mtime, never a fabricated `idle`.
|
|
681
|
-
*
|
|
682
|
-
* - Dead PID, or a days-stale transcript ⇒ {@link lifecycleStatus} (`closed` /
|
|
683
|
-
* `abandoned`). A dead process is `closed`, not the old fabricated `idle`
|
|
684
|
-
* (which the UI reads as "done, waiting for you"); a dead process whose file
|
|
685
|
-
* also vanished is still `closed` (death is a definitive answer, not `unknown`).
|
|
686
|
-
* - Live + fresh ⇒ `running`. A live process is, at minimum, running: we may
|
|
687
|
-
* not see WHAT an opaque harness (or an empty tail) is doing, but the process
|
|
688
|
-
* being alive is a positive signal — never a blank `unknown` (the old blanket
|
|
689
|
-
* bug for every non-claude/codex live agent) nor a downgraded `idle`.
|
|
690
|
-
*/
|
|
691
166
|
export declare function resolveFallbackStatus(sessionFile: string | undefined, pidAlive: boolean, nowMs?: number): ActiveStatus;
|
|
692
|
-
/**
|
|
693
|
-
* Locate the live transcript for an agent process. Claude files are keyed by cwd
|
|
694
|
-
* (+ optional session uuid), so they resolve straight off disk. Every OTHER
|
|
695
|
-
* tracked harness — Codex (date-partitioned), plus grok / droid / rush / gemini /
|
|
696
|
-
* kimi / hermes / opencode / antigravity / cursor (per-session dirs, SQLite, single-JSON)
|
|
697
|
-
* — is resolved through the session index. When the session id is KNOWN, that id
|
|
698
|
-
* selects the transcript. Only an id-less process falls back to the newest indexed
|
|
699
|
-
* transcript for that cwd, bounded by ACTIVE_SESSION_STALE_MS so a live pid never
|
|
700
|
-
* borrows a weeks-old transcript. This is what lets a live NON-claude/codex agent
|
|
701
|
-
* get a real status instead of falling through to `unknown` (the file feeds
|
|
702
|
-
* {@link computeLiveSignals}). An opaque kind we don't track still yields undefined
|
|
703
|
-
* here and degrades honestly to a live `running`.
|
|
704
|
-
*
|
|
705
|
-
* The id branch exists because the cwd fallback is only safe when there is nothing
|
|
706
|
-
* better: it answers `WHERE agent = ? AND cwd = ? ORDER BY last_activity DESC LIMIT 1`
|
|
707
|
-
* (`latestSessionFileForCwd`), so with two same-harness agents in ONE cwd — routine on
|
|
708
|
-
* this fleet — every one of them resolves to whichever transcript was touched last.
|
|
709
|
-
* That is the same "one stranger's transcript" hazard the id-less tmux pane already
|
|
710
|
-
* refuses to guess at (see `listTmuxAgentSessions`), and since RUSH-2682 it reaches
|
|
711
|
-
* further than a status badge: the live row now backs `sessions preview <id>`, so the
|
|
712
|
-
* guess renders session B's digest under session A's header and caches it against A.
|
|
713
|
-
* An id we cannot resolve yields undefined — the honest "not indexed here" render —
|
|
714
|
-
* rather than a neighbour's transcript (RUSH-2691).
|
|
715
|
-
*/
|
|
716
167
|
export declare function findSessionFileForKind(kind: string, cwd?: string, sessionId?: string): string | undefined;
|
|
717
|
-
/** Live per-session signals derived from one transcript-tail read. */
|
|
718
168
|
interface LiveSignals {
|
|
719
|
-
/** Rich inferred state (activity/preview/badges). Undefined when unreadable. */
|
|
720
169
|
state?: SessionState;
|
|
721
|
-
/** Rolling output-token throughput (tokens/sec). Undefined when no usage in the tail. */
|
|
722
170
|
tokPerSec?: number;
|
|
723
171
|
}
|
|
724
|
-
/** Test seam: drop the in-process parsed-tail memo. */
|
|
725
172
|
export declare function clearLiveSignalsCacheForTest(): void;
|
|
726
|
-
/**
|
|
727
|
-
* Derive the inferred state (working / waiting / idle + preview/badges) and, for
|
|
728
|
-
* the two harnesses whose raw lines carry it, the output-token throughput.
|
|
729
|
-
*
|
|
730
|
-
* Every tracked harness runs through the SAME {@link inferSessionState}, so a
|
|
731
|
-
* live non-claude/codex agent gets a real working/waiting/idle instead of the
|
|
732
|
-
* blanket `unknown` it used to fall through to. An opaque/untracked kind or an
|
|
733
|
-
* unreadable/empty transcript yields an empty signal set, and the caller's
|
|
734
|
-
* {@link resolveFallbackStatus} reports the honest live floor (`running`).
|
|
735
|
-
*
|
|
736
|
-
* An unchanged-mtime call reuses the parsed tail (see {@link liveTailCache}) so a
|
|
737
|
-
* 30s active-session poll does not re-tail every quiet transcript — but it always
|
|
738
|
-
* re-classifies against `nowMs`, so an elapsed-time verdict is never frozen.
|
|
739
|
-
*/
|
|
740
173
|
export declare function computeLiveSignals(kind: string, sessionFile: string | undefined, cwd: string | undefined, pidAlive: boolean, nowMs?: number): LiveSignals;
|
|
741
|
-
/**
|
|
742
|
-
* One-line summary of a teammate's spawn prompt — the team's task/target. Takes
|
|
743
|
-
* the first non-empty line, strips a leading `MISSION:`/`CONTEXT:`/`TASK:` label,
|
|
744
|
-
* and truncates. Exported for tests.
|
|
745
|
-
*/
|
|
746
174
|
export declare function summarizeMission(prompt: string | null | undefined): string | undefined;
|
|
747
|
-
/**
|
|
748
|
-
* Live teams teammates. Reuses AgentManager which already polls PIDs via
|
|
749
|
-
* `kill -0`. `localOnly` (RUSH-2118) skips the ssh round-trip AgentManager
|
|
750
|
-
* would otherwise issue for every distributed (remote-host) teammate.
|
|
751
|
-
*/
|
|
752
175
|
export declare function listTeamsActive(opts?: {
|
|
753
176
|
localOnly?: boolean;
|
|
754
177
|
}): Promise<ActiveSession[]>;
|
|
755
|
-
/** Live editor-terminal agents across every IDE window. */
|
|
756
178
|
export declare function listTerminalsActive(): Promise<ActiveSession[]>;
|
|
757
179
|
interface ProcRow {
|
|
758
180
|
pid: number;
|
|
@@ -762,147 +184,36 @@ interface ProcRow {
|
|
|
762
184
|
kind?: string;
|
|
763
185
|
startTime?: string;
|
|
764
186
|
}
|
|
765
|
-
/** Parse `ConvertTo-Csv` output of Win32_Process rows. Exported for tests. */
|
|
766
187
|
export declare function parseWin32ProcessCsv(out: string): ProcRow[];
|
|
767
|
-
/**
|
|
768
|
-
* Resolve every candidate PID's cwd, bounded and staggered so the probes no
|
|
769
|
-
* longer fan out as one simultaneous system-wide `lsof` burst (a behavioral-EDR
|
|
770
|
-
* recon trigger). Order matches the input `pids`. The `probe` seam is injectable
|
|
771
|
-
* for testing the bound; production always uses the real `lsof`-backed probe.
|
|
772
|
-
*/
|
|
773
188
|
export declare function resolveCwds(pids: number[], probe?: (pid: number) => Promise<string | undefined>): Promise<(string | undefined)[]>;
|
|
774
|
-
/**
|
|
775
|
-
* Resolve the host app for a single pid by walking its process ancestry with the
|
|
776
|
-
* same HOST_MATCHERS logic `detectHost` uses. Reads the whole process table per
|
|
777
|
-
* call, so it's for the low-cardinality renderer path (one tmux client per
|
|
778
|
-
* session), not a hot loop. Returns undefined when nothing above the pid is a
|
|
779
|
-
* recognised UI. Exported for the "viewing in <app>" resolver.
|
|
780
|
-
*/
|
|
781
189
|
export declare function hostFromPid(pid: number): Promise<string | undefined>;
|
|
782
190
|
export interface AgentCandidate {
|
|
783
191
|
pid: number;
|
|
784
192
|
kind: string;
|
|
785
193
|
}
|
|
786
|
-
/**
|
|
787
|
-
* Find the launch registry entry recorded by a WRAPPER of this process. The
|
|
788
|
-
* shim delegate records the pid it spawned, but on Windows the `.cmd` shell
|
|
789
|
-
* path makes that a cmd.exe intermediary whose child is the real agent binary
|
|
790
|
-
* — so the agent pid itself has no entry and the wrapper one ancestor up does.
|
|
791
|
-
* The nearest entry wins, and only if its agent matches the candidate's kind:
|
|
792
|
-
* a claude session shelling out to codex must not hand codex its identity.
|
|
793
|
-
*/
|
|
794
194
|
export declare function readAncestorSessionEntry(pid: number, ppidMap: Map<number, number>, kind: string, readEntry?: (pid: number) => PidSessionEntry | undefined): PidSessionEntry | undefined;
|
|
795
|
-
/**
|
|
796
|
-
* Collapse agent processes spawned by another live agent process of the same
|
|
797
|
-
* kind onto their nearest kept ancestor. Claude runs subagents, forks, and
|
|
798
|
-
* even its bundled ripgrep as child `claude` processes — on POSIX those
|
|
799
|
-
* children resolve to the parent's cwd and collapse in dedupeBySession, but
|
|
800
|
-
* where no cwd can be recovered (Windows has no lsof) every fork would print
|
|
801
|
-
* as its own headless row. Two exceptions keep their own row: a candidate with
|
|
802
|
-
* its own registry entry — on its pid OR on a wrapper ancestor strictly below
|
|
803
|
-
* the pid it would fold into (the shim's entry lands on the cmd.exe
|
|
804
|
-
* intermediary on Windows) — a child whose live argv carries `--session-id`
|
|
805
|
-
* (RUSH-2384: empty by-pid must not fold a real session into a parent and
|
|
806
|
-
* drop it from the active set) — and a child of a *different* agent kind
|
|
807
|
-
* (claude shelling out to codex is a real second session, not a fork).
|
|
808
|
-
* Returns the kept roots plus, per root pid, how many descendants folded in.
|
|
809
|
-
*
|
|
810
|
-
* `hasLiveSessionId` defaults to reading `--session-id` from the live process
|
|
811
|
-
* argv; tests inject a pure predicate so they do not need real agent pids.
|
|
812
|
-
*/
|
|
813
195
|
export declare function foldSubordinateAgents(candidates: AgentCandidate[], ppidMap: Map<number, number>, readEntry: (pid: number) => PidSessionEntry | undefined, hasLiveSessionId?: (pid: number) => boolean): {
|
|
814
196
|
kept: AgentCandidate[];
|
|
815
197
|
foldedByRoot: Map<number, number>;
|
|
816
198
|
};
|
|
817
|
-
/**
|
|
818
|
-
* Agent processes not attributed to a team or the runtime registry.
|
|
819
|
-
* Classified by walking the ppid chain: any recognised UI ancestor (IDE
|
|
820
|
-
* helper, terminal-app, or multiplexer) means `terminal`; nothing of the
|
|
821
|
-
* sort means `headless` (daemon, launchd-spawned, orphan).
|
|
822
|
-
*
|
|
823
|
-
* Full `ps`+`lsof` rescans are throttled to {@link UNATTRIBUTED_RESCAN_MS}
|
|
824
|
-
* (#2047). Between rescans the previous rows are re-emitted after dropping
|
|
825
|
-
* dead PIDs and PIDs that are now attributed. A shrinking attributed set
|
|
826
|
-
* forces a rescan so a process that just left teams/terminals can reappear
|
|
827
|
-
* as headless.
|
|
828
|
-
*/
|
|
829
199
|
export declare function listUnattributedActive(attributed: Set<number>): Promise<ActiveSession[]>;
|
|
830
|
-
/** One tmux pane's resolved agent identity for the authoritative source. */
|
|
831
200
|
interface PaneIdentity {
|
|
832
201
|
agent: string;
|
|
833
|
-
/** Custom harness/profile name from the launch registry, when set. */
|
|
834
202
|
harness?: string;
|
|
835
|
-
/** Exact session id when resolvable (launch registry, or the hook join). */
|
|
836
203
|
sessionId?: string;
|
|
837
|
-
/** The agent's OS pid from the launch registry (may differ from `pane_pid`). */
|
|
838
204
|
pid?: number;
|
|
839
205
|
}
|
|
840
|
-
/**
|
|
841
|
-
* Attribute a single tmux pane to the agent actually running in it.
|
|
842
|
-
*
|
|
843
|
-
* The launch registry — written per bare-spawn AND per wrap, each stamped with the
|
|
844
|
-
* `tmuxPane` it targeted (see src/lib/exec.ts) — is the EXACT, per-pane source of
|
|
845
|
-
* truth. So an agent spawned into an EXISTING pane (a split, where `$TMUX` is
|
|
846
|
-
* already set so no new session meta is stamped) is attributed to its OWN launch,
|
|
847
|
-
* not the session's original agent — closing the gap where such an agent was
|
|
848
|
-
* dropped by this source and left to the weaker ps-scan fallback. Session-meta
|
|
849
|
-
* labels remain the fallback for the wrapped origin pane of a session whose
|
|
850
|
-
* registry entry is absent (a failed best-effort write, or a legacy session that
|
|
851
|
-
* predates the registry's `tmuxPane` field) — and ONLY for that origin pane
|
|
852
|
-
* (`meta.pane`), so a split shell pane of a labeled session isn't mis-attributed
|
|
853
|
-
* the wrapped agent. When `meta.pane` is unknown (attach-existing sessions), any
|
|
854
|
-
* labeled pane is accepted and the caller's per-session dedupe keeps one.
|
|
855
|
-
* `source: 'teams'` panes are skipped — teammates are surfaced by listTeamsActive.
|
|
856
|
-
* Pure so it is unit-tested without tmux.
|
|
857
|
-
*/
|
|
858
206
|
export declare function resolvePaneIdentity(pane: string, sessName: string, meta: {
|
|
859
207
|
labels?: Record<string, string>;
|
|
860
208
|
source?: string;
|
|
861
209
|
pane?: string;
|
|
862
210
|
} | null, liveEntry: PidSessionEntry | undefined, getHookIndex: () => HookSessionIndex, nameToFullId: Map<string, string>): PaneIdentity | undefined;
|
|
863
|
-
/**
|
|
864
|
-
* Agents hosted in the shared-socket tmux server — the authoritative source for
|
|
865
|
-
* tmux-hosted interactive spawns (see src/lib/exec.ts `runInTmux`). Enumerates
|
|
866
|
-
* every pane on the shared socket and attributes each to the agent running in it
|
|
867
|
-
* via {@link resolvePaneIdentity}: the per-pane launch registry (exact) first, the
|
|
868
|
-
* session-meta labels as fallback. Because tmux (not a per-window
|
|
869
|
-
* `live-terminals.json`) is the source of truth, a tmux-hosted agent is captured
|
|
870
|
-
* with its exact `%pane` even when the extension registry is stale — INCLUDING an
|
|
871
|
-
* agent bare-spawned into a split of an existing session, which older logic dropped
|
|
872
|
-
* (it kept only the first pane per session meta). `source: 'teams'` is skipped.
|
|
873
|
-
*/
|
|
874
211
|
export declare function listTmuxAgentSessions(): Promise<ActiveSession[]>;
|
|
875
|
-
/**
|
|
876
|
-
* Union of all sources. Teams and terminals spawn actual CLI processes that
|
|
877
|
-
* also show up in `ps`, so headless attribution runs last with the already-
|
|
878
|
-
* attributed PIDs removed. The tmux source goes FIRST into the dedupe so a
|
|
879
|
-
* tmux-hosted agent's row (which carries the exact `%pane`) wins over a staler
|
|
880
|
-
* terminal/headless row for the same session id.
|
|
881
|
-
*/
|
|
882
212
|
export declare function getActiveSessions(opts?: ActiveQueryOptions): Promise<ActiveSession[]>;
|
|
883
|
-
/** Local discovery sources probed by {@link describeActiveDiscoveryHealth}. */
|
|
884
213
|
interface ActiveDiscoveryHealth {
|
|
885
|
-
/** Sources that failed on the probe (currently only `'tmux'`). Empty = nothing degraded locally. */
|
|
886
214
|
degradedSources: string[];
|
|
887
215
|
}
|
|
888
|
-
/**
|
|
889
|
-
* Cheap post-hoc health probe for the local discovery sources. `getActiveSessions`
|
|
890
|
-
* always swallows a source failure to `[]` so its return type stays a plain
|
|
891
|
-
* session array — this re-probes the same sources and reports which ones threw,
|
|
892
|
-
* so a caller that got an empty list back can tell "genuinely nothing running"
|
|
893
|
-
* apart from "a source errored and got silently folded into empty" (RUSH-2507).
|
|
894
|
-
* Intended for the empty-result branch only, not the hot path — it repeats a
|
|
895
|
-
* `list-panes` call `getActiveSessions` already made.
|
|
896
|
-
*/
|
|
897
216
|
export declare function describeActiveDiscoveryHealth(): Promise<ActiveDiscoveryHealth>;
|
|
898
|
-
/**
|
|
899
|
-
* True when a live agent process on this host carries `--session-id <id>` in
|
|
900
|
-
* its argv. RUSH-2384 last-resort for `agents message`: getActiveSessions can
|
|
901
|
-
* still miss a row (teams status flap, attributed-ancestor skip), but the
|
|
902
|
-
* process table + argv are ground truth for "this session is alive and
|
|
903
|
-
* mailbox-reachable". Only UUID-shaped ids are accepted so a short prefix
|
|
904
|
-
* never false-matches.
|
|
905
|
-
*/
|
|
906
217
|
export declare function isSessionIdLiveOnProcessTable(sessionId: string, deps?: {
|
|
907
218
|
readTable?: () => Promise<Array<{
|
|
908
219
|
pid: number;
|
|
@@ -910,121 +221,11 @@ export declare function isSessionIdLiveOnProcessTable(sessionId: string, deps?:
|
|
|
910
221
|
}>>;
|
|
911
222
|
sessionIdOf?: (pid: number) => string | undefined;
|
|
912
223
|
}): Promise<boolean>;
|
|
913
|
-
/**
|
|
914
|
-
* Fold tmux's attached-client count onto every tmux-hosted row.
|
|
915
|
-
*
|
|
916
|
-
* Keyed off `provenance.mux` — which {@link enrichProvenance} has already stamped
|
|
917
|
-
* on any row whose process env names a tmux pane — rather than off
|
|
918
|
-
* {@link listTmuxAgentSessions}. That source only emits a row when it can resolve
|
|
919
|
-
* the pane's agent IDENTITY (launch registry or session meta), and on a machine
|
|
920
|
-
* where neither resolves it emits nothing at all while the same sessions still
|
|
921
|
-
* arrive through the terminal/headless sources carrying full tmux provenance.
|
|
922
|
-
* Hanging the client count off the identity-resolving source would have made the
|
|
923
|
-
* whole orphan signal silently dead on exactly those machines.
|
|
924
|
-
*
|
|
925
|
-
* One `list-panes` per distinct socket, and only when some row is tmux-hosted —
|
|
926
|
-
* a fleet with no tmux pays nothing. A query failure leaves the count undefined,
|
|
927
|
-
* which the classifier reads as "cannot tell", never as a false zero.
|
|
928
|
-
*/
|
|
929
224
|
export declare function foldTmuxClients(rows: ActiveSession[]): Promise<void>;
|
|
930
|
-
/**
|
|
931
|
-
* Fold the host link onto each row and, where it changes the answer, onto the
|
|
932
|
-
* status. Runs AFTER {@link foldPresence}, because a deliberately backgrounded
|
|
933
|
-
* session (`presence` `background`/`parked`) is supposed to have no client and
|
|
934
|
-
* must not be reported as an orphan.
|
|
935
|
-
*
|
|
936
|
-
* Precedence is deliberate, and the two new statuses slot in where they add
|
|
937
|
-
* information rather than destroy it:
|
|
938
|
-
*
|
|
939
|
-
* - `abandoned` wins outright. A days-stale session is already dangling; that
|
|
940
|
-
* it also lost its window is not the headline, and it keeps a crashed row
|
|
941
|
-
* from lingering as an alert forever.
|
|
942
|
-
* - `crashed` REPLACES `closed`. Both mean the process is gone, but `closed`
|
|
943
|
-
* reads as a normal exit; `crashed` says the host window went down with it
|
|
944
|
-
* and never cleaned up.
|
|
945
|
-
* - `orphaned` replaces `idle` / `input_required` on ANY `no-client`, and
|
|
946
|
-
* `running` ONLY when the owning WINDOW was lost (`hostWindowLost`). A
|
|
947
|
-
* session still working with merely zero tmux clients is a normal headless
|
|
948
|
-
* run — since RUSH-3125 a detached remote pane is the steady state — so
|
|
949
|
-
* flagging every one would bury the real signal (the false positive reverted
|
|
950
|
-
* in 6d973b823). But a running agent whose IDE window stopped republishing
|
|
951
|
-
* its heartbeat outlived an unclean host death and is genuinely stranded, so
|
|
952
|
-
* it IS promoted. A session sitting idle — or worse, waiting on a question —
|
|
953
|
-
* with no client attached is the same stranded case: nobody is coming.
|
|
954
|
-
*/
|
|
955
|
-
/**
|
|
956
|
-
* Attribute each live row to the machine the session actually EXECUTES on.
|
|
957
|
-
*
|
|
958
|
-
* A host-dispatched run (`agents run --device <peer>`) leaves a live process on
|
|
959
|
-
* the DISPATCHING box — the ssh/TTY shim — carrying the remote run's session id.
|
|
960
|
-
* Nothing about that local process knows the agent is on the peer, so the row
|
|
961
|
-
* was tagged with THIS machine: `--device <dispatcher>` then claimed a session
|
|
962
|
-
* that is not running here, and its preview dead-ended at "full transcript not
|
|
963
|
-
* indexed here" because the transcript lives on the peer (RUSH-2479).
|
|
964
|
-
*
|
|
965
|
-
* The dispatch already recorded the truth. `registerHostSession` /
|
|
966
|
-
* `registerInteractiveHostSession` write the index row with
|
|
967
|
-
* `machine: normalizeHost(task.host)` (`lib/hosts/session-index.ts:55,134`), so
|
|
968
|
-
* this folds that recorded machine back onto the live row. Every consumer then
|
|
969
|
-
* agrees on one owner: the `--device`/`--device` scope, the browser's device
|
|
970
|
-
* filter, `_remote`/preview routing (`liveSessionToMeta`), and the id resolver.
|
|
971
|
-
*
|
|
972
|
-
* Two rows are deliberately left alone:
|
|
973
|
-
* - one the cross-machine fan-out already attributed to a peer — that is the
|
|
974
|
-
* peer's own self-report, which outranks this box's index copy;
|
|
975
|
-
* - one whose indexed machine IS this box — nothing was offloaded.
|
|
976
|
-
*
|
|
977
|
-
* Pure over the array; `machineOf` is injected so the join is unit-tested
|
|
978
|
-
* without a SQLite index.
|
|
979
|
-
*/
|
|
980
225
|
export declare function foldExecutionMachine(rows: ActiveSession[], machineOf: (sessionId: string) => string | undefined, self: string): void;
|
|
981
|
-
/**
|
|
982
|
-
* Is the PROCESS behind this row running on this machine?
|
|
983
|
-
*
|
|
984
|
-
* `machine` answers a different question — "where does the agent execute" —
|
|
985
|
-
* which is what a `--device` scope, preview routing, and resume ownership need.
|
|
986
|
-
* For an offloaded run the two answers diverge: {@link foldExecutionMachine}
|
|
987
|
-
* points `machine` at the peer, while the shim process, its tmux pane, and its
|
|
988
|
-
* terminal window are all still HERE. `offloadedFrom` marks exactly that row.
|
|
989
|
-
*
|
|
990
|
-
* Any caller reaching for a LOCAL pid, pane, or window must ask this rather
|
|
991
|
-
* than `machine === self`. A local tmux pane id (`%N`) handed to a peer's tmux
|
|
992
|
-
* server does not fail — pane ids are small per-server integers, so it can
|
|
993
|
-
* resolve against an unrelated pane and attach the user to someone else's
|
|
994
|
-
* session. That is why this predicate exists instead of ten copies of the
|
|
995
|
-
* comparison.
|
|
996
|
-
*/
|
|
997
226
|
export declare function sessionProcessIsLocal(s: Pick<ActiveSession, 'machine' | 'offloadedFrom'>, self: string): boolean;
|
|
998
|
-
/**
|
|
999
|
-
* The machine to reach for this session's PROCESS — its pid, tmux pane, and
|
|
1000
|
-
* window — or `undefined` when that process is right here.
|
|
1001
|
-
*
|
|
1002
|
-
* Not the same as `machine`, which is where the AGENT executes. For an offloaded
|
|
1003
|
-
* run the process lives on the dispatcher (`offloadedFrom`) while the agent runs
|
|
1004
|
-
* on the peer, so a caller that ssh'd to `machine` would carry the dispatcher's
|
|
1005
|
-
* pane id to a box that never had it.
|
|
1006
|
-
*/
|
|
1007
227
|
export declare function sessionProcessHost(s: Pick<ActiveSession, 'machine' | 'offloadedFrom'>, self: string): string | undefined;
|
|
1008
228
|
export declare function foldHostLink(rows: ActiveSession[]): void;
|
|
1009
|
-
/**
|
|
1010
|
-
* The headline ladder (PHNX-3797): an explicit `/rename` label, then the
|
|
1011
|
-
* daemon-generated title, then the classified user prompt.
|
|
1012
|
-
*
|
|
1013
|
-
* The prompt rung classifies the RAW latest genuine user turn, not the
|
|
1014
|
-
* already-collapsed `topic` (PHNX-3939). Classifying `topic` was how a `/model`
|
|
1015
|
-
* echo or a skill body became a session's displayed title: `extractSessionTopic`
|
|
1016
|
-
* accepted text `cleanFirstUserMessage` rejected, and the recap then dressed up
|
|
1017
|
-
* that scaffolding as the user's words. It also never saw the row's attachments,
|
|
1018
|
-
* so an image-only turn could not be recognized. A row that has already been
|
|
1019
|
-
* merged with a daemon-folded {@link ActiveSession.request} uses it directly.
|
|
1020
|
-
*
|
|
1021
|
-
* The agent's last transcript line is deliberately NOT a rung. It is still
|
|
1022
|
-
* returned as `lastAgentLine` — and still shown, in the separate live
|
|
1023
|
-
* preview/activity slot — but a rolling monologue is not what the session IS,
|
|
1024
|
-
* and using it as the headline is the defect this ladder fixes. A session the
|
|
1025
|
-
* titler has not reached yet falls back to the classified user prompt, never
|
|
1026
|
-
* to the agent's last line.
|
|
1027
|
-
*/
|
|
1028
229
|
export declare function deriveSessionRecap(row: Pick<ActiveSession, 'label' | 'generatedTitle' | 'topic' | 'tail' | 'firstUserMessage' | 'lastUserMessage' | 'attachments' | 'request'>): {
|
|
1029
230
|
title?: string;
|
|
1030
231
|
recapSource?: RecapSource;
|
|
@@ -1033,73 +234,16 @@ export declare function deriveSessionRecap(row: Pick<ActiveSession, 'label' | 'g
|
|
|
1033
234
|
lastAgentLine?: string;
|
|
1034
235
|
request?: SessionRequest;
|
|
1035
236
|
};
|
|
1036
|
-
/**
|
|
1037
|
-
* The row's SECONDARY line (PHNX-3797 owner feedback): the most important recent
|
|
1038
|
-
* agent message, ranked so the operator sees a block before generic chatter —
|
|
1039
|
-
* a pending question, then a needs-you wait (plan review / permission /
|
|
1040
|
-
* input-required), then the current activity (the agent's latest line). Returns
|
|
1041
|
-
* `undefined` only when there is nothing recent to show at all.
|
|
1042
|
-
*
|
|
1043
|
-
* Pure over the fields it reads so the ranking is unit-tested directly; folded
|
|
1044
|
-
* onto every row by {@link applyRecap} beside the {@link deriveSessionRecap} title.
|
|
1045
|
-
*/
|
|
1046
237
|
export declare function deriveImportantMessage(row: Pick<ActiveSession, 'status' | 'activity' | 'awaitingReason' | 'question' | 'preview' | 'lastAgentLine'>): SessionImportantMessage | undefined;
|
|
1047
|
-
/** Fold the recap ladder onto every row (see {@link deriveSessionRecap}). */
|
|
1048
238
|
export declare function foldRecap(rows: ActiveSession[]): void;
|
|
1049
|
-
/**
|
|
1050
|
-
* Project a {@link SessionPhase} from the finalized {@link ActiveStatus} (PHNX-2484).
|
|
1051
|
-
* This is the single source of truth the AGI EXT previously mirrored as
|
|
1052
|
-
* `mapStatusToPhase` — the ext now reads the `phase` field instead of re-deriving it.
|
|
1053
|
-
* `queued` counts as `running` (dispatched, in the pipeline); `abandoned`, `orphaned`,
|
|
1054
|
-
* and `crashed` all bucket to `failed` (dangling/dead — needs attention), which is the
|
|
1055
|
-
* drift this fixes: those three used to fall through a status-only map to `idle` and
|
|
1056
|
-
* silently hide a dead agent.
|
|
1057
|
-
*/
|
|
1058
239
|
export declare function derivePhase(status: ActiveStatus | undefined): SessionPhase;
|
|
1059
|
-
/** Fold the coarse lifecycle {@link SessionPhase} onto every row (see {@link derivePhase}). */
|
|
1060
240
|
export declare function foldPhase(rows: ActiveSession[]): void;
|
|
1061
|
-
/** Reap only stale sessions with proven-dead pids; unknown or live processes remain recoverable. */
|
|
1062
241
|
export declare function isReapableOrphan(row: Pick<ActiveSession, 'status' | 'pidAlive'>): boolean;
|
|
1063
|
-
/**
|
|
1064
|
-
* Resolve each teams row's `orchestratorLabel` from the orchestrator's own row,
|
|
1065
|
-
* when that orchestrator session is itself in the active set (it usually is — the
|
|
1066
|
-
* agent that ran `agents teams add` is running). Falls back to nothing, so the
|
|
1067
|
-
* renderer shows the short id. Pure over the array; exported for tests.
|
|
1068
|
-
*/
|
|
1069
242
|
export declare function annotateOrchestratorLabels(sessions: ActiveSession[]): void;
|
|
1070
|
-
/**
|
|
1071
|
-
* Attach provenance (host / local-vs-SSH / tmux pane / reply rail) to every
|
|
1072
|
-
* session that has a live pid. Mutates in place. Runs after dedupe so we probe
|
|
1073
|
-
* each session once, not once per fork pid. Probes run in parallel — each is a
|
|
1074
|
-
* single /proc read (Linux) or `ps` call (macOS); failures leave `provenance`
|
|
1075
|
-
* undefined rather than blocking the listing. The probes use the same bounded
|
|
1076
|
-
* concurrency as the adjacent per-PID lsof sweep so large session lists cannot
|
|
1077
|
-
* spawn one `ps eww` subprocess per row at once on macOS.
|
|
1078
|
-
*
|
|
1079
|
-
* A row that already carries provenance (the tmux path, which knows its exact
|
|
1080
|
-
* mux/reply from the pane) is not skipped — it is probe-and-MERGED. The tmux
|
|
1081
|
-
* path can only stamp a `transport:'local'` placeholder because the pane alone
|
|
1082
|
-
* doesn't reveal how the shell above it was reached; the process env does. So we
|
|
1083
|
-
* still read the env and fill in the real SSH origin/term, while preserving the
|
|
1084
|
-
* authoritative mux/reply the pane already gave us. Skipping this (the old
|
|
1085
|
-
* behavior) is exactly why ssh-launched tmux sessions rendered as local.
|
|
1086
|
-
*/
|
|
1087
243
|
export declare function enrichProvenance(sessions: ActiveSession[], probe?: (pid: number) => Promise<SessionProvenance | undefined>): Promise<void>;
|
|
1088
|
-
/**
|
|
1089
|
-
* Match an SSH client IP to a registered device (pure — testable with a plain
|
|
1090
|
-
* registry object). Returns the device name + ssh login user when the IP is a
|
|
1091
|
-
* known device address.
|
|
1092
|
-
*/
|
|
1093
244
|
export declare function matchOriginDevice(clientIp: string, reg: DeviceRegistry): {
|
|
1094
245
|
device: string;
|
|
1095
246
|
user?: string;
|
|
1096
247
|
} | undefined;
|
|
1097
|
-
/**
|
|
1098
|
-
* Collapse rows that resolve to the *same* session — a session with many
|
|
1099
|
-
* subagent/fork PIDs (all matched to one transcript file) would otherwise print
|
|
1100
|
-
* dozens of identical rows. Keyed by session id, falling back to the transcript
|
|
1101
|
-
* file, then the cloud/run handle, then {@link anonymousWorkerKey}. The first row
|
|
1102
|
-
* wins and carries a `pidCount`.
|
|
1103
|
-
*/
|
|
1104
248
|
export declare function dedupeBySession(sessions: ActiveSession[]): ActiveSession[];
|
|
1105
249
|
export {};
|