@phnx-labs/agents-cli 1.22.119 → 1.22.121
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +236 -0
- package/README.md +19 -2
- package/dist/bootstrap.d.ts +0 -15
- package/dist/bootstrap.js +10 -409
- package/dist/cli/command-registry.d.ts +0 -58
- package/dist/cli/command-registry.js +2 -74
- package/dist/commands/accounts.d.ts +0 -17
- package/dist/commands/accounts.js +1 -52
- package/dist/commands/alias.d.ts +0 -12
- package/dist/commands/alias.js +0 -6
- package/dist/commands/apply.d.ts +0 -15
- package/dist/commands/apply.js +0 -63
- package/dist/commands/audit.d.ts +0 -12
- package/dist/commands/audit.js +0 -13
- package/dist/commands/auth.js +4 -12
- package/dist/commands/beta.d.ts +0 -6
- package/dist/commands/beta.js +2 -6
- package/dist/commands/browser-sessions-picker.d.ts +0 -8
- package/dist/commands/browser-sessions-picker.js +0 -26
- package/dist/commands/browser.d.ts +0 -57
- package/dist/commands/browser.js +0 -80
- package/dist/commands/budget.d.ts +0 -13
- package/dist/commands/budget.js +0 -2
- package/dist/commands/cli.d.ts +0 -12
- package/dist/commands/cli.js +0 -4
- package/dist/commands/cloud.d.ts +0 -9
- package/dist/commands/cloud.js +0 -43
- package/dist/commands/commands.d.ts +0 -9
- package/dist/commands/commands.js +0 -18
- package/dist/commands/computer-sessions-picker.d.ts +0 -11
- package/dist/commands/computer-sessions-picker.js +0 -29
- package/dist/commands/computer.d.ts +0 -62
- package/dist/commands/computer.js +3 -114
- package/dist/commands/config.d.ts +0 -14
- package/dist/commands/config.js +21 -60
- package/dist/commands/cost.d.ts +0 -11
- package/dist/commands/cost.js +1 -17
- package/dist/commands/daemon-test-harness.d.ts +0 -32
- package/dist/commands/daemon-test-harness.js +1 -36
- package/dist/commands/daemon.d.ts +0 -46
- package/dist/commands/daemon.js +8 -255
- package/dist/commands/detach-core.d.ts +0 -28
- package/dist/commands/detach-core.js +0 -30
- package/dist/commands/detach.d.ts +1 -12
- package/dist/commands/detach.js +16 -52
- package/dist/commands/device-config-test-harness.js +0 -12
- package/dist/commands/doctor.d.ts +0 -103
- package/dist/commands/doctor.js +3 -279
- package/dist/commands/events.d.ts +0 -29
- package/dist/commands/events.js +1 -55
- package/dist/commands/exec.d.ts +0 -163
- package/dist/commands/exec.js +15 -964
- package/dist/commands/factory.d.ts +0 -6
- package/dist/commands/factory.js +0 -2
- package/dist/commands/feed-watch.js +0 -20
- package/dist/commands/feed.d.ts +0 -38
- package/dist/commands/feed.js +1 -151
- package/dist/commands/feedback.d.ts +0 -5
- package/dist/commands/feedback.js +0 -5
- package/dist/commands/fleet-capture.d.ts +0 -12
- package/dist/commands/fleet-capture.js +1 -39
- package/dist/commands/focus.d.ts +6 -94
- package/dist/commands/focus.js +13 -183
- package/dist/commands/fork.d.ts +0 -21
- package/dist/commands/fork.js +0 -45
- package/dist/commands/funnel.d.ts +0 -3
- package/dist/commands/go.d.ts +2 -71
- package/dist/commands/go.js +5 -99
- package/dist/commands/harness-hooks.d.ts +0 -41
- package/dist/commands/harness-hooks.js +0 -48
- package/dist/commands/harness-wizard.d.ts +0 -137
- package/dist/commands/harness-wizard.js +0 -109
- package/dist/commands/harness.d.ts +0 -63
- package/dist/commands/harness.js +0 -103
- package/dist/commands/hooks.d.ts +0 -9
- package/dist/commands/hooks.js +0 -26
- package/dist/commands/humans.d.ts +0 -8
- package/dist/commands/humans.js +0 -8
- package/dist/commands/import.d.ts +0 -22
- package/dist/commands/import.js +0 -79
- package/dist/commands/insights.d.ts +0 -37
- package/dist/commands/insights.js +3 -115
- package/dist/commands/inspect.d.ts +0 -117
- package/dist/commands/inspect.js +2 -448
- package/dist/commands/lease.d.ts +0 -28
- package/dist/commands/lease.js +0 -43
- package/dist/commands/logs.d.ts +0 -23
- package/dist/commands/logs.js +0 -30
- package/dist/commands/mailboxes.d.ts +0 -18
- package/dist/commands/mailboxes.js +0 -29
- package/dist/commands/mcp.d.ts +0 -9
- package/dist/commands/mcp.js +0 -53
- package/dist/commands/memory.d.ts +0 -7
- package/dist/commands/memory.js +0 -7
- package/dist/commands/menubar.d.ts +0 -8
- package/dist/commands/menubar.js +0 -24
- package/dist/commands/message.d.ts +0 -23
- package/dist/commands/message.js +0 -50
- package/dist/commands/mine.d.ts +0 -22
- package/dist/commands/mine.js +0 -21
- package/dist/commands/models.d.ts +0 -8
- package/dist/commands/models.js +0 -33
- package/dist/commands/modes.d.ts +0 -10
- package/dist/commands/modes.js +0 -13
- package/dist/commands/monitors.d.ts +0 -9
- package/dist/commands/monitors.js +3 -160
- package/dist/commands/open.d.ts +0 -26
- package/dist/commands/open.js +0 -10
- package/dist/commands/output.d.ts +0 -18
- package/dist/commands/output.js +1 -34
- package/dist/commands/packages-materialize.d.ts +0 -11
- package/dist/commands/packages-materialize.js +0 -3
- package/dist/commands/packages.d.ts +0 -10
- package/dist/commands/packages.js +0 -50
- package/dist/commands/perf.d.ts +0 -41
- package/dist/commands/perf.js +0 -55
- package/dist/commands/permissions.d.ts +0 -9
- package/dist/commands/permissions.js +0 -43
- package/dist/commands/plugins.d.ts +0 -14
- package/dist/commands/plugins.js +2 -55
- package/dist/commands/profiles.d.ts +0 -25
- package/dist/commands/profiles.js +0 -27
- package/dist/commands/projects-todo.d.ts +2 -0
- package/dist/commands/projects-todo.js +132 -0
- package/dist/commands/projects.d.ts +0 -85
- package/dist/commands/projects.js +344 -291
- package/dist/commands/prune.js +0 -30
- package/dist/commands/ps-roster.d.ts +92 -0
- package/dist/commands/ps-roster.js +744 -0
- package/dist/commands/ps.d.ts +6 -0
- package/dist/commands/ps.js +98 -0
- package/dist/commands/refresh-rules.d.ts +0 -13
- package/dist/commands/refresh-rules.js +0 -14
- package/dist/commands/reminders.d.ts +0 -7
- package/dist/commands/repo.d.ts +0 -89
- package/dist/commands/repo.js +7 -205
- package/dist/commands/resource-view.d.ts +0 -33
- package/dist/commands/resource-view.js +0 -49
- package/dist/commands/resume.d.ts +1 -19
- package/dist/commands/resume.js +0 -50
- package/dist/commands/route.d.ts +0 -10
- package/dist/commands/route.js +0 -19
- package/dist/commands/routines.d.ts +0 -42
- package/dist/commands/routines.js +5 -290
- package/dist/commands/routines.test-fixture.d.ts +0 -34
- package/dist/commands/routines.test-fixture.js +4 -100
- package/dist/commands/rules.d.ts +0 -9
- package/dist/commands/rules.js +1 -6
- package/dist/commands/run-account-picker.d.ts +0 -59
- package/dist/commands/run-account-picker.js +0 -71
- package/dist/commands/run-broadcast.d.ts +0 -9
- package/dist/commands/run-broadcast.js +0 -7
- package/dist/commands/run-cloud.d.ts +0 -15
- package/dist/commands/run-cloud.js +0 -37
- package/dist/commands/run-device-picker.d.ts +0 -25
- package/dist/commands/run-device-picker.js +1 -53
- package/dist/commands/secrets-passthrough.d.ts +0 -31
- package/dist/commands/secrets-passthrough.js +0 -10
- package/dist/commands/send.d.ts +0 -20
- package/dist/commands/send.js +14 -18
- package/dist/commands/sessions-backfill.d.ts +0 -7
- package/dist/commands/sessions-backfill.js +1 -16
- package/dist/commands/sessions-backup-setup.js +0 -11
- package/dist/commands/sessions-bookmark.d.ts +0 -8
- package/dist/commands/sessions-bookmark.js +0 -28
- package/dist/commands/sessions-browser.d.ts +2 -117
- package/dist/commands/sessions-browser.js +5 -243
- package/dist/commands/sessions-export.d.ts +1 -26
- package/dist/commands/sessions-export.js +3 -81
- package/dist/commands/sessions-import.d.ts +0 -14
- package/dist/commands/sessions-import.js +0 -59
- package/dist/commands/sessions-inject.d.ts +0 -60
- package/dist/commands/sessions-inject.js +3 -96
- package/dist/commands/sessions-migrate.d.ts +2 -37
- package/dist/commands/sessions-migrate.js +7 -159
- package/dist/commands/sessions-optimize.d.ts +0 -12
- package/dist/commands/sessions-picker-factory.d.ts +0 -7
- package/dist/commands/sessions-picker-factory.js +0 -8
- package/dist/commands/sessions-picker.d.ts +4 -103
- package/dist/commands/sessions-picker.js +13 -352
- package/dist/commands/sessions-render.d.ts +1 -2
- package/dist/commands/sessions-render.js +3 -7
- package/dist/commands/sessions-resume.d.ts +1 -24
- package/dist/commands/sessions-resume.js +2 -65
- package/dist/commands/sessions-share.d.ts +1 -9
- package/dist/commands/sessions-share.js +1 -45
- package/dist/commands/sessions-stats.d.ts +0 -24
- package/dist/commands/sessions-stats.js +0 -49
- package/dist/commands/sessions-stop.d.ts +1 -20
- package/dist/commands/sessions-stop.js +4 -9
- package/dist/commands/sessions-tail.d.ts +1 -19
- package/dist/commands/sessions-tail.js +3 -36
- package/dist/commands/sessions-trace.d.ts +5 -36
- package/dist/commands/sessions-trace.js +7 -82
- package/dist/commands/sessions.d.ts +1 -666
- package/dist/commands/sessions.js +30 -2279
- package/dist/commands/sessions.test-fixture.d.ts +0 -9
- package/dist/commands/sessions.test-fixture.js +8 -23
- package/dist/commands/setup-accounts.d.ts +0 -6
- package/dist/commands/setup-browser.d.ts +0 -23
- package/dist/commands/setup-browser.js +0 -28
- package/dist/commands/setup-computer.d.ts +0 -16
- package/dist/commands/setup-computer.js +0 -28
- package/dist/commands/setup-fleet.d.ts +0 -8
- package/dist/commands/setup-fleet.js +0 -11
- package/dist/commands/setup-mine.d.ts +0 -14
- package/dist/commands/setup-mine.js +0 -25
- package/dist/commands/setup-preferences.d.ts +0 -47
- package/dist/commands/setup-preferences.js +0 -53
- package/dist/commands/setup-secrets.d.ts +2 -24
- package/dist/commands/setup-secrets.js +0 -24
- package/dist/commands/setup-term.d.ts +0 -21
- package/dist/commands/setup-term.js +0 -21
- package/dist/commands/setup-terminal.d.ts +0 -1
- package/dist/commands/setup-terminal.js +0 -1
- package/dist/commands/setup-tools.d.ts +2 -0
- package/dist/commands/setup-tools.js +73 -0
- package/dist/commands/setup.d.ts +0 -20
- package/dist/commands/setup.js +4 -57
- package/dist/commands/skills.d.ts +0 -9
- package/dist/commands/skills.js +1 -22
- package/dist/commands/snapshot.d.ts +0 -9
- package/dist/commands/snapshot.js +0 -10
- package/dist/commands/ssh.d.ts +0 -64
- package/dist/commands/ssh.js +9 -420
- package/dist/commands/status.d.ts +0 -12
- package/dist/commands/status.js +0 -26
- package/dist/commands/subagents.d.ts +0 -8
- package/dist/commands/subagents.js +0 -31
- package/dist/commands/sync.d.ts +0 -37
- package/dist/commands/sync.js +0 -256
- package/dist/commands/teams-picker.d.ts +0 -3
- package/dist/commands/teams-picker.js +0 -34
- package/dist/commands/teams.d.ts +1 -76
- package/dist/commands/teams.js +9 -477
- package/dist/commands/tmux.d.ts +0 -25
- package/dist/commands/tmux.js +0 -46
- package/dist/commands/traces.js +0 -19
- package/dist/commands/trash.d.ts +0 -17
- package/dist/commands/trash.js +1 -11
- package/dist/commands/uninstall.d.ts +0 -9
- package/dist/commands/uninstall.js +0 -6
- package/dist/commands/update.d.ts +0 -22
- package/dist/commands/update.js +0 -44
- package/dist/commands/upgrade.d.ts +0 -1
- package/dist/commands/upgrade.js +0 -1
- package/dist/commands/utils.d.ts +0 -85
- package/dist/commands/utils.js +1 -95
- package/dist/commands/versions.d.ts +0 -16
- package/dist/commands/versions.js +0 -134
- package/dist/commands/view.d.ts +0 -90
- package/dist/commands/view.js +4 -343
- package/dist/commands/watchdog.d.ts +0 -19
- package/dist/commands/watchdog.js +3 -43
- package/dist/commands/webhook.d.ts +0 -8
- package/dist/commands/webhook.js +0 -14
- package/dist/commands/workflows.d.ts +0 -8
- package/dist/commands/workflows.js +0 -6
- package/dist/index.d.ts +0 -25
- package/dist/index.js +5 -119
- package/dist/lib/account-capabilities.d.ts +0 -34
- package/dist/lib/account-capabilities.js +0 -32
- package/dist/lib/account-catalog.d.ts +0 -128
- package/dist/lib/account-catalog.js +8 -154
- package/dist/lib/account-provider-registry.d.ts +0 -14
- package/dist/lib/account-provider-registry.js +0 -8
- package/dist/lib/account-registry.d.ts +0 -74
- package/dist/lib/account-registry.js +14 -189
- package/dist/lib/account-schema.d.ts +0 -19
- package/dist/lib/account-schema.js +0 -43
- package/dist/lib/accounting/account-launch.d.ts +0 -15
- package/dist/lib/accounting/account-launch.js +1 -3
- package/dist/lib/accounting/account-pool-collect.d.ts +0 -26
- package/dist/lib/accounting/account-pool-collect.js +0 -42
- package/dist/lib/accounting/account-pool.d.ts +0 -41
- package/dist/lib/accounting/account-pool.js +0 -17
- package/dist/lib/accounting/capacity.d.ts +0 -32
- package/dist/lib/accounting/capacity.js +0 -32
- package/dist/lib/accounting/rotate.d.ts +0 -518
- package/dist/lib/accounting/rotate.js +4 -598
- package/dist/lib/accounting/usage-ingest.d.ts +0 -1
- package/dist/lib/accounting/usage-ingest.js +0 -44
- package/dist/lib/accounting/usage-sync.d.ts +0 -60
- package/dist/lib/accounting/usage-sync.js +4 -51
- package/dist/lib/accounting/usage.d.ts +0 -632
- package/dist/lib/accounting/usage.js +14 -1055
- package/dist/lib/accounts/add.d.ts +0 -60
- package/dist/lib/accounts/add.js +0 -127
- package/dist/lib/accounts/auth-operation-lock.d.ts +0 -1
- package/dist/lib/accounts/auth-operation-lock.js +0 -4
- package/dist/lib/accounts/migrate.d.ts +0 -9
- package/dist/lib/accounts/migrate.js +3 -42
- package/dist/lib/accounts/slots.d.ts +0 -25
- package/dist/lib/accounts/slots.js +1 -49
- package/dist/lib/acp/client.d.ts +0 -16
- package/dist/lib/acp/client.js +0 -29
- package/dist/lib/acp/harnesses.d.ts +0 -15
- package/dist/lib/acp/harnesses.js +0 -16
- package/dist/lib/acp/run.d.ts +0 -8
- package/dist/lib/acp/run.js +0 -8
- package/dist/lib/actor.d.ts +1 -71
- package/dist/lib/actor.js +1 -99
- package/dist/lib/add-dir.d.ts +0 -46
- package/dist/lib/add-dir.js +1 -70
- package/dist/lib/address.d.ts +0 -17
- package/dist/lib/address.js +0 -15
- package/dist/lib/agent-cli-commands.d.ts +0 -10
- package/dist/lib/agent-cli-commands.js +0 -10
- package/dist/lib/agent-modes.d.ts +0 -29
- package/dist/lib/agent-modes.js +0 -31
- package/dist/lib/agent-spec/agents.d.ts +0 -426
- package/dist/lib/agent-spec/agents.js +37 -924
- package/dist/lib/agent-spec/index.d.ts +0 -5
- package/dist/lib/agent-spec/index.js +0 -14
- package/dist/lib/agent-spec/materialize.d.ts +0 -10
- package/dist/lib/agent-spec/materialize.js +2 -139
- package/dist/lib/agent-spec/package-resolve.d.ts +0 -8
- package/dist/lib/agent-spec/package-resolve.js +1 -44
- package/dist/lib/agent-spec/package-schema.d.ts +0 -2
- package/dist/lib/agent-spec/package-schema.js +0 -11
- package/dist/lib/agent-spec/package-types.d.ts +0 -27
- package/dist/lib/agent-spec/package-types.js +0 -1
- package/dist/lib/agent-spec/primitives.d.ts +0 -18
- package/dist/lib/agent-spec/primitives.js +0 -27
- package/dist/lib/agent-spec/provider.js +0 -2
- package/dist/lib/agent-spec/resolve.d.ts +0 -23
- package/dist/lib/agent-spec/resolve.js +0 -41
- package/dist/lib/agent-spec/types.d.ts +0 -34
- package/dist/lib/agent-spec/types.js +0 -6
- package/dist/lib/agents.d.ts +0 -1
- package/dist/lib/agents.js +0 -1
- package/dist/lib/analytics/mix-commands.d.ts +0 -23
- package/dist/lib/analytics/mix-commands.js +0 -26
- package/dist/lib/analytics/recipes.d.ts +0 -1
- package/dist/lib/analytics/recipes.js +5 -10
- package/dist/lib/analytics/usage-db.js +4 -6
- package/dist/lib/answer-router.d.ts +0 -61
- package/dist/lib/answer-router.js +0 -57
- package/dist/lib/app-bundle-install.d.ts +0 -13
- package/dist/lib/app-bundle-install.js +0 -50
- package/dist/lib/artifact-actions.d.ts +0 -15
- package/dist/lib/artifact-actions.js +0 -18
- package/dist/lib/artifacts-client.d.ts +0 -10
- package/dist/lib/artifacts-client.js +0 -17
- package/dist/lib/ask-classifier.d.ts +0 -38
- package/dist/lib/ask-classifier.js +0 -27
- package/dist/lib/audit/log.d.ts +0 -47
- package/dist/lib/audit/log.js +1 -59
- package/dist/lib/auth-health.d.ts +0 -213
- package/dist/lib/auth-health.js +16 -266
- package/dist/lib/auth-mint.d.ts +0 -83
- package/dist/lib/auth-mint.js +8 -85
- package/dist/lib/auto-pull-worker.d.ts +0 -10
- package/dist/lib/auto-pull-worker.js +3 -48
- package/dist/lib/auto-pull.d.ts +0 -64
- package/dist/lib/auto-pull.js +0 -79
- package/dist/lib/beta.d.ts +0 -9
- package/dist/lib/beta.js +0 -9
- package/dist/lib/binary-shadow.d.ts +0 -22
- package/dist/lib/binary-shadow.js +4 -34
- package/dist/lib/boot-profile.d.ts +0 -10
- package/dist/lib/boot-profile.js +1 -31
- package/dist/lib/brand.d.ts +0 -20
- package/dist/lib/brand.js +0 -50
- package/dist/lib/browser/context.d.ts +0 -54
- package/dist/lib/browser/context.js +0 -49
- package/dist/lib/browser/paths.d.ts +0 -21
- package/dist/lib/browser/paths.js +0 -26
- package/dist/lib/browser/record.d.ts +0 -34
- package/dist/lib/browser/record.js +0 -38
- package/dist/lib/browser/sessions-list.d.ts +1 -79
- package/dist/lib/browser/sessions-list.js +2 -98
- package/dist/lib/browser-client.d.ts +0 -112
- package/dist/lib/browser-client.js +1 -90
- package/dist/lib/budget/config.d.ts +0 -6
- package/dist/lib/budget/config.js +0 -29
- package/dist/lib/budget/enforce.d.ts +0 -50
- package/dist/lib/budget/enforce.js +0 -27
- package/dist/lib/budget/ledger.d.ts +0 -23
- package/dist/lib/budget/ledger.js +0 -28
- package/dist/lib/budget/live-cloud.d.ts +0 -26
- package/dist/lib/budget/live-cloud.js +0 -12
- package/dist/lib/budget/live-team.d.ts +0 -17
- package/dist/lib/budget/live-team.js +1 -35
- package/dist/lib/budget/preflight.d.ts +0 -51
- package/dist/lib/budget/preflight.js +0 -36
- package/dist/lib/byok-usage.d.ts +0 -20
- package/dist/lib/byok-usage.js +1 -24
- package/dist/lib/capabilities.d.ts +0 -24
- package/dist/lib/capabilities.js +0 -29
- package/dist/lib/catchup.d.ts +0 -87
- package/dist/lib/catchup.js +1 -81
- package/dist/lib/channels/owner-forward.d.ts +0 -70
- package/dist/lib/channels/owner-forward.js +1 -43
- package/dist/lib/channels/owner-sink.js +0 -21
- package/dist/lib/channels/providers/desktop.d.ts +0 -37
- package/dist/lib/channels/providers/desktop.js +0 -72
- package/dist/lib/channels/providers/index.d.ts +0 -1
- package/dist/lib/channels/providers/index.js +2 -6
- package/dist/lib/channels/providers/mailbox.js +0 -7
- package/dist/lib/channels/providers/openclaw-telegram.js +0 -8
- package/dist/lib/channels/providers/rush.d.ts +0 -2
- package/dist/lib/channels/providers/rush.js +0 -26
- package/dist/lib/channels/providers/session.d.ts +2 -0
- package/dist/lib/channels/providers/session.js +26 -0
- package/dist/lib/channels/registry.d.ts +0 -27
- package/dist/lib/channels/registry.js +0 -10
- package/dist/lib/channels/resolve.d.ts +0 -19
- package/dist/lib/channels/resolve.js +0 -2
- package/dist/lib/channels/send.d.ts +0 -50
- package/dist/lib/channels/send.js +0 -25
- package/dist/lib/checkpoint.d.ts +0 -36
- package/dist/lib/checkpoint.js +0 -28
- package/dist/lib/claude-account-token.d.ts +0 -98
- package/dist/lib/claude-account-token.js +7 -169
- package/dist/lib/claude-statusline.d.ts +0 -41
- package/dist/lib/claude-statusline.js +0 -68
- package/dist/lib/cli-entry.d.ts +0 -26
- package/dist/lib/cli-entry.js +1 -61
- package/dist/lib/cli-resources.d.ts +31 -89
- package/dist/lib/cli-resources.js +116 -152
- package/dist/lib/cloud/antigravity.d.ts +0 -29
- package/dist/lib/cloud/antigravity.js +0 -36
- package/dist/lib/cloud/codex.d.ts +0 -8
- package/dist/lib/cloud/codex.js +0 -41
- package/dist/lib/cloud/cursor.d.ts +0 -5
- package/dist/lib/cloud/cursor.js +2 -7
- package/dist/lib/cloud/dispatch.d.ts +0 -13
- package/dist/lib/cloud/dispatch.js +1 -48
- package/dist/lib/cloud/factory.d.ts +0 -52
- package/dist/lib/cloud/factory.js +3 -67
- package/dist/lib/cloud/host.d.ts +0 -39
- package/dist/lib/cloud/host.js +5 -48
- package/dist/lib/cloud/registry.d.ts +0 -25
- package/dist/lib/cloud/registry.js +0 -29
- package/dist/lib/cloud/rush.d.ts +0 -47
- package/dist/lib/cloud/rush.js +1 -82
- package/dist/lib/cloud/session-index.d.ts +0 -27
- package/dist/lib/cloud/session-index.js +1 -32
- package/dist/lib/cloud/store.d.ts +0 -18
- package/dist/lib/cloud/store.js +0 -28
- package/dist/lib/cloud/stream.d.ts +0 -14
- package/dist/lib/cloud/stream.js +0 -25
- package/dist/lib/cloud/types.d.ts +0 -168
- package/dist/lib/cloud/types.js +0 -46
- package/dist/lib/cloudflare/creds.d.ts +0 -2
- package/dist/lib/cloudflare/creds.js +0 -14
- package/dist/lib/cloudflare/provision.d.ts +0 -8
- package/dist/lib/cloudflare/provision.js +1 -19
- package/dist/lib/codex-home.d.ts +0 -60
- package/dist/lib/codex-home.js +2 -72
- package/dist/lib/codex-policy.d.ts +0 -10
- package/dist/lib/codex-policy.js +0 -13
- package/dist/lib/command-skills.d.ts +0 -10
- package/dist/lib/command-skills.js +0 -10
- package/dist/lib/commands.d.ts +0 -74
- package/dist/lib/commands.js +0 -112
- package/dist/lib/comms-render.d.ts +0 -5
- package/dist/lib/comms-render.js +0 -5
- package/dist/lib/computer/context.d.ts +0 -23
- package/dist/lib/computer/context.js +0 -14
- package/dist/lib/computer/policy.d.ts +0 -20
- package/dist/lib/computer/policy.js +0 -53
- package/dist/lib/computer/record.d.ts +0 -33
- package/dist/lib/computer/record.js +1 -48
- package/dist/lib/computer/sessions-list.d.ts +1 -128
- package/dist/lib/computer/sessions-list.js +6 -165
- package/dist/lib/computer-client.d.ts +0 -106
- package/dist/lib/computer-client.js +5 -86
- package/dist/lib/concurrency.d.ts +0 -14
- package/dist/lib/concurrency.js +0 -3
- package/dist/lib/config-drift.d.ts +0 -31
- package/dist/lib/config-drift.js +0 -32
- package/dist/lib/config-keys.d.ts +1 -65
- package/dist/lib/config-keys.js +6 -52
- package/dist/lib/config-transfer.d.ts +0 -14
- package/dist/lib/config-transfer.js +0 -26
- package/dist/lib/convert.d.ts +0 -17
- package/dist/lib/convert.js +0 -18
- package/dist/lib/crabbox/cli.d.ts +0 -156
- package/dist/lib/crabbox/cli.js +1 -188
- package/dist/lib/crabbox/config.d.ts +0 -18
- package/dist/lib/crabbox/config.js +1 -19
- package/dist/lib/crabbox/lease.d.ts +0 -93
- package/dist/lib/crabbox/lease.js +4 -148
- package/dist/lib/crabbox/progress.d.ts +0 -56
- package/dist/lib/crabbox/progress.js +2 -49
- package/dist/lib/crabbox/runtimes.d.ts +0 -94
- package/dist/lib/crabbox/runtimes.js +1 -111
- package/dist/lib/crabbox/setup-copy.d.ts +0 -64
- package/dist/lib/crabbox/setup-copy.js +1 -53
- package/dist/lib/daemon/account-state-daemon-service.d.ts +0 -48
- package/dist/lib/daemon/account-state-daemon-service.js +2 -63
- package/dist/lib/daemon/attention-notify-service.d.ts +0 -12
- package/dist/lib/daemon/attention-notify-service.js +1 -24
- package/dist/lib/daemon/auth-sync-service.d.ts +0 -28
- package/dist/lib/daemon/auth-sync-service.js +0 -56
- package/dist/lib/daemon/catchup-service.d.ts +0 -34
- package/dist/lib/daemon/catchup-service.js +0 -30
- package/dist/lib/daemon/daemon.d.ts +0 -374
- package/dist/lib/daemon/daemon.js +44 -1049
- package/dist/lib/daemon/daemon.test-fixture.d.ts +0 -19
- package/dist/lib/daemon/daemon.test-fixture.js +1 -24
- package/dist/lib/daemon/device-probe-service.d.ts +0 -16
- package/dist/lib/daemon/device-probe-service.js +0 -20
- package/dist/lib/daemon/feed-stream-service.d.ts +0 -15
- package/dist/lib/daemon/feed-stream-service.js +0 -20
- package/dist/lib/daemon/harness-update-service.d.ts +2 -61
- package/dist/lib/daemon/harness-update-service.js +6 -86
- package/dist/lib/daemon/heartbeat-service.d.ts +0 -1
- package/dist/lib/daemon/heartbeat-service.js +0 -1
- package/dist/lib/daemon/leaked-daemons.d.ts +0 -46
- package/dist/lib/daemon/leaked-daemons.js +2 -78
- package/dist/lib/daemon/monitor-engine-service.d.ts +0 -13
- package/dist/lib/daemon/monitor-engine-service.js +3 -15
- package/dist/lib/daemon/runner.d.ts +0 -194
- package/dist/lib/daemon/runner.js +39 -760
- package/dist/lib/daemon/self-heal-service.d.ts +18 -17
- package/dist/lib/daemon/self-heal-service.js +83 -37
- package/dist/lib/daemon/self-update-service.d.ts +1 -131
- package/dist/lib/daemon/self-update-service.js +26 -189
- package/dist/lib/daemon/service.d.ts +0 -73
- package/dist/lib/daemon/service.js +0 -34
- package/dist/lib/daemon/session-index-service.d.ts +0 -12
- package/dist/lib/daemon/session-index-service.js +0 -23
- package/dist/lib/daemon/session-state-service.d.ts +0 -8
- package/dist/lib/daemon/session-state-service.js +0 -8
- package/dist/lib/daemon/session-summarizer-service.d.ts +0 -14
- package/dist/lib/daemon/session-summarizer-service.js +1 -19
- package/dist/lib/daemon/session-title-service.d.ts +0 -25
- package/dist/lib/daemon/session-title-service.js +0 -32
- package/dist/lib/daemon/state-dir-check-service.d.ts +0 -24
- package/dist/lib/daemon/state-dir-check-service.js +0 -29
- package/dist/lib/daemon/supervisor.d.ts +0 -112
- package/dist/lib/daemon/supervisor.js +4 -147
- package/dist/lib/daemon/testdata/process-view-daemon.js +0 -2
- package/dist/lib/daemon/testdata/process-view-start.js +0 -5
- package/dist/lib/daemon/tmux-reap-service.d.ts +0 -1
- package/dist/lib/daemon/tmux-reap-service.js +0 -1
- package/dist/lib/daemon/usage-sync-service.d.ts +0 -23
- package/dist/lib/daemon/usage-sync-service.js +0 -26
- package/dist/lib/daemon/watchdog-service.d.ts +0 -9
- package/dist/lib/daemon/watchdog-service.js +0 -13
- package/dist/lib/daemon/webhook-receiver-service.d.ts +0 -1
- package/dist/lib/daemon/webhook-receiver-service.js +0 -1
- package/dist/lib/daemon-health.d.ts +0 -55
- package/dist/lib/daemon-health.js +4 -77
- package/dist/lib/daemon-services.d.ts +0 -36
- package/dist/lib/daemon-services.js +0 -45
- package/dist/lib/daemon-ticks.d.ts +0 -126
- package/dist/lib/daemon-ticks.js +1 -156
- package/dist/lib/daemon-webhooks.d.ts +0 -57
- package/dist/lib/daemon-webhooks.js +2 -54
- package/dist/lib/deeplink/register.d.ts +0 -15
- package/dist/lib/deeplink/register.js +0 -60
- package/dist/lib/deeplink/url.d.ts +0 -24
- package/dist/lib/deeplink/url.js +1 -33
- package/dist/lib/device-config.d.ts +1 -192
- package/dist/lib/device-config.js +86 -240
- package/dist/lib/devices/config-migration.d.ts +0 -43
- package/dist/lib/devices/config-migration.js +7 -127
- package/dist/lib/devices/connect.d.ts +0 -168
- package/dist/lib/devices/connect.js +6 -254
- package/dist/lib/devices/device-docs.d.ts +0 -24
- package/dist/lib/devices/device-docs.js +0 -46
- package/dist/lib/devices/discovery-policy.d.ts +0 -30
- package/dist/lib/devices/discovery-policy.js +3 -34
- package/dist/lib/devices/doctor-findings.d.ts +0 -109
- package/dist/lib/devices/doctor-findings.js +30 -326
- package/dist/lib/devices/doctor-overview-cache.d.ts +0 -33
- package/dist/lib/devices/doctor-overview-cache.js +0 -81
- package/dist/lib/devices/fleet-divergence.d.ts +0 -89
- package/dist/lib/devices/fleet-divergence.js +1 -60
- package/dist/lib/devices/fleet-inventory.d.ts +0 -27
- package/dist/lib/devices/fleet-inventory.js +0 -38
- package/dist/lib/devices/fleet.d.ts +0 -95
- package/dist/lib/devices/fleet.js +0 -79
- package/dist/lib/devices/harness-inventory.d.ts +0 -75
- package/dist/lib/devices/harness-inventory.js +0 -101
- package/dist/lib/devices/health-report.d.ts +0 -37
- package/dist/lib/devices/health-report.js +0 -73
- package/dist/lib/devices/health.d.ts +0 -71
- package/dist/lib/devices/health.js +2 -82
- package/dist/lib/devices/interactive-host.d.ts +0 -10
- package/dist/lib/devices/interactive-host.js +0 -34
- package/dist/lib/devices/known-hosts.d.ts +0 -45
- package/dist/lib/devices/known-hosts.js +0 -77
- package/dist/lib/devices/pending.d.ts +0 -31
- package/dist/lib/devices/pending.js +7 -67
- package/dist/lib/devices/pool.d.ts +0 -36
- package/dist/lib/devices/pool.js +0 -30
- package/dist/lib/devices/reachability.d.ts +0 -25
- package/dist/lib/devices/reachability.js +0 -14
- package/dist/lib/devices/registry.d.ts +0 -141
- package/dist/lib/devices/registry.js +4 -151
- package/dist/lib/devices/resolve-profile.d.ts +0 -18
- package/dist/lib/devices/resolve-profile.js +0 -18
- package/dist/lib/devices/resolve-target.d.ts +0 -20
- package/dist/lib/devices/resolve-target.js +1 -51
- package/dist/lib/devices/rollout-verify.d.ts +1 -81
- package/dist/lib/devices/rollout-verify.js +0 -77
- package/dist/lib/devices/self-host.d.ts +0 -7
- package/dist/lib/devices/self-host.js +1 -29
- package/dist/lib/devices/ssh-config.d.ts +0 -18
- package/dist/lib/devices/ssh-config.js +0 -9
- package/dist/lib/devices/stats-cache.d.ts +0 -48
- package/dist/lib/devices/stats-cache.js +0 -80
- package/dist/lib/devices/sync.d.ts +0 -97
- package/dist/lib/devices/sync.js +0 -88
- package/dist/lib/devices/tailscale.d.ts +0 -18
- package/dist/lib/devices/tailscale.js +1 -38
- package/dist/lib/devices/terminfo.d.ts +0 -27
- package/dist/lib/devices/terminfo.js +2 -64
- package/dist/lib/devices/worker-pick.d.ts +0 -15
- package/dist/lib/devices/worker-pick.js +0 -48
- package/dist/lib/diff-text.d.ts +0 -18
- package/dist/lib/diff-text.js +0 -15
- package/dist/lib/doctor-diff.d.ts +0 -79
- package/dist/lib/doctor-diff.js +2 -181
- package/dist/lib/drift-sync.d.ts +0 -29
- package/dist/lib/drift-sync.js +0 -40
- package/dist/lib/drift.d.ts +0 -43
- package/dist/lib/drift.js +0 -31
- package/dist/lib/event-families.d.ts +0 -17
- package/dist/lib/event-families.js +0 -33
- package/dist/lib/event-provenance.d.ts +0 -4
- package/dist/lib/event-provenance.js +0 -5
- package/dist/lib/event-stream.d.ts +0 -29
- package/dist/lib/event-stream.js +0 -36
- package/dist/lib/events-ingest.d.ts +0 -27
- package/dist/lib/events-ingest.js +0 -54
- package/dist/lib/exec-account-home.d.ts +0 -24
- package/dist/lib/exec-account-home.js +0 -41
- package/dist/lib/exec-bounded.d.ts +1 -37
- package/dist/lib/exec-bounded.js +10 -46
- package/dist/lib/exec.d.ts +3 -583
- package/dist/lib/exec.js +18 -1025
- package/dist/lib/factory/snapshot.js +1 -15
- package/dist/lib/feed/activity-stream.d.ts +0 -27
- package/dist/lib/feed/activity-stream.js +4 -80
- package/dist/lib/feed/activity.d.ts +1 -243
- package/dist/lib/feed/activity.js +8 -273
- package/dist/lib/feed/answer.d.ts +0 -103
- package/dist/lib/feed/answer.js +0 -267
- package/dist/lib/feed/attention.d.ts +0 -56
- package/dist/lib/feed/attention.js +0 -161
- package/dist/lib/feed/envelope.d.ts +2 -17
- package/dist/lib/feed/envelope.js +0 -14
- package/dist/lib/feed/events.d.ts +0 -118
- package/dist/lib/feed/events.js +13 -213
- package/dist/lib/feed/feed.d.ts +1 -250
- package/dist/lib/feed/feed.js +24 -334
- package/dist/lib/feed/hub-server.d.ts +0 -100
- package/dist/lib/feed/hub-server.js +1 -191
- package/dist/lib/feed/hub.d.ts +0 -53
- package/dist/lib/feed/hub.js +0 -89
- package/dist/lib/feed/pr-status.d.ts +1 -19
- package/dist/lib/feed/pr-status.js +0 -18
- package/dist/lib/feed/tool-activity.d.ts +0 -59
- package/dist/lib/feed/tool-activity.js +1 -119
- package/dist/lib/feed/tools.d.ts +0 -100
- package/dist/lib/feed/tools.js +0 -89
- package/dist/lib/feed/watch.d.ts +0 -33
- package/dist/lib/feed/watch.js +2 -94
- package/dist/lib/feed-broadcast.d.ts +0 -148
- package/dist/lib/feed-broadcast.js +1 -283
- package/dist/lib/feed-outcome.d.ts +0 -50
- package/dist/lib/feed-outcome.js +1 -67
- package/dist/lib/feed-policy.d.ts +0 -6
- package/dist/lib/feed-policy.js +1 -27
- package/dist/lib/feed-post.d.ts +0 -61
- package/dist/lib/feed-post.js +4 -61
- package/dist/lib/feed-ranking.d.ts +1 -1
- package/dist/lib/fleet/apply.d.ts +0 -64
- package/dist/lib/fleet/apply.js +0 -125
- package/dist/lib/fleet/auth-sync.d.ts +0 -48
- package/dist/lib/fleet/auth-sync.js +4 -49
- package/dist/lib/fleet/capture.d.ts +0 -26
- package/dist/lib/fleet/capture.js +1 -36
- package/dist/lib/fleet/manifest.d.ts +0 -38
- package/dist/lib/fleet/manifest.js +0 -40
- package/dist/lib/fleet/types.d.ts +1 -138
- package/dist/lib/fleet/types.js +0 -12
- package/dist/lib/fleet-cache.d.ts +0 -12
- package/dist/lib/fleet-cache.js +0 -24
- package/dist/lib/fleet-shared-state.d.ts +6 -59
- package/dist/lib/fleet-shared-state.js +5 -51
- package/dist/lib/fleet-status.d.ts +0 -27
- package/dist/lib/fleet-status.js +0 -48
- package/dist/lib/format.d.ts +0 -74
- package/dist/lib/format.js +3 -77
- package/dist/lib/friction-heuristics.d.ts +0 -20
- package/dist/lib/friction-heuristics.js +0 -8
- package/dist/lib/fs-atomic.d.ts +0 -51
- package/dist/lib/fs-atomic.js +8 -66
- package/dist/lib/fs-walk.d.ts +0 -13
- package/dist/lib/fs-walk.js +0 -22
- package/dist/lib/fuzzy.d.ts +0 -29
- package/dist/lib/fuzzy.js +0 -31
- package/dist/lib/gemini-settings.js +0 -12
- package/dist/lib/git.d.ts +0 -366
- package/dist/lib/git.js +7 -574
- package/dist/lib/github/ci-failure.d.ts +30 -0
- package/dist/lib/github/ci-failure.js +95 -0
- package/dist/lib/github/gh-overload.d.ts +0 -38
- package/dist/lib/github/gh-overload.js +3 -55
- package/dist/lib/github/pr-mergeable.d.ts +3 -34
- package/dist/lib/github/pr-mergeable.js +2 -42
- package/dist/lib/github/pr-verdict.d.ts +0 -44
- package/dist/lib/github/pr-verdict.js +0 -36
- package/dist/lib/github/project-prs.d.ts +135 -105
- package/dist/lib/github/project-prs.js +530 -170
- package/dist/lib/github/release-drift.d.ts +45 -0
- package/dist/lib/github/release-drift.js +91 -0
- package/dist/lib/github/rest.d.ts +0 -50
- package/dist/lib/github/rest.js +0 -49
- package/dist/lib/github/viewer.d.ts +27 -0
- package/dist/lib/github/viewer.js +101 -0
- package/dist/lib/goose-commands.d.ts +0 -29
- package/dist/lib/goose-commands.js +3 -48
- package/dist/lib/harness/adapter.d.ts +0 -151
- package/dist/lib/harness/adapter.js +0 -41
- package/dist/lib/harness/adapters/claude.d.ts +0 -8
- package/dist/lib/harness/adapters/claude.js +0 -89
- package/dist/lib/harness/adapters/codex.js +0 -18
- package/dist/lib/harness/adapters/copilot.js +0 -3
- package/dist/lib/harness/adapters/cursor.js +0 -16
- package/dist/lib/harness/adapters/droid.js +0 -3
- package/dist/lib/harness/adapters/kimi.js +0 -19
- package/dist/lib/harness/adapters/muse.js +0 -9
- package/dist/lib/harness/adapters/opencode.js +0 -2
- package/dist/lib/harness/exec-config-version.d.ts +0 -2
- package/dist/lib/harness/exec-config-version.js +0 -13
- package/dist/lib/harness/index.js +0 -10
- package/dist/lib/harness-auth-capabilities.d.ts +0 -26
- package/dist/lib/harness-auth-capabilities.js +0 -18
- package/dist/lib/harness-connection-test.d.ts +0 -27
- package/dist/lib/harness-connection-test.js +2 -20
- package/dist/lib/heal.d.ts +0 -45
- package/dist/lib/heal.js +2 -82
- package/dist/lib/help.d.ts +0 -32
- package/dist/lib/help.js +0 -41
- package/dist/lib/helper-download.d.ts +0 -85
- package/dist/lib/helper-download.js +0 -95
- package/dist/lib/helper-versions.d.ts +0 -51
- package/dist/lib/helper-versions.js +1 -45
- package/dist/lib/hooks/cache.d.ts +0 -40
- package/dist/lib/hooks/cache.js +8 -122
- package/dist/lib/hooks/install.d.ts +0 -253
- package/dist/lib/hooks/install.js +49 -822
- package/dist/lib/hooks/match.d.ts +0 -24
- package/dist/lib/hooks/match.js +0 -31
- package/dist/lib/hooks/profile.d.ts +0 -21
- package/dist/lib/hooks/profile.js +0 -28
- package/dist/lib/hosts/credential-transport.d.ts +0 -6
- package/dist/lib/hosts/credential-transport.js +0 -17
- package/dist/lib/hosts/credentials.d.ts +0 -35
- package/dist/lib/hosts/credentials.js +0 -38
- package/dist/lib/hosts/dispatch.d.ts +0 -140
- package/dist/lib/hosts/dispatch.js +0 -176
- package/dist/lib/hosts/logs.d.ts +0 -25
- package/dist/lib/hosts/logs.js +1 -51
- package/dist/lib/hosts/option.d.ts +0 -12
- package/dist/lib/hosts/option.js +0 -12
- package/dist/lib/hosts/passthrough.d.ts +0 -129
- package/dist/lib/hosts/passthrough.js +12 -249
- package/dist/lib/hosts/progress.d.ts +0 -90
- package/dist/lib/hosts/progress.js +5 -115
- package/dist/lib/hosts/providers/devices.d.ts +0 -19
- package/dist/lib/hosts/providers/devices.js +1 -34
- package/dist/lib/hosts/providers/local.d.ts +0 -14
- package/dist/lib/hosts/providers/local.js +0 -22
- package/dist/lib/hosts/ready.d.ts +0 -99
- package/dist/lib/hosts/ready.js +0 -101
- package/dist/lib/hosts/reconcile.d.ts +0 -38
- package/dist/lib/hosts/reconcile.js +1 -50
- package/dist/lib/hosts/reconnect.d.ts +0 -75
- package/dist/lib/hosts/reconnect.js +0 -98
- package/dist/lib/hosts/registry.d.ts +0 -74
- package/dist/lib/hosts/registry.js +0 -110
- package/dist/lib/hosts/remote-cmd.d.ts +1 -228
- package/dist/lib/hosts/remote-cmd.js +19 -294
- package/dist/lib/hosts/remote-cmd.test-fixture.d.ts +0 -1
- package/dist/lib/hosts/remote-cmd.test-fixture.js +0 -12
- package/dist/lib/hosts/remote-os.d.ts +0 -19
- package/dist/lib/hosts/remote-os.js +0 -22
- package/dist/lib/hosts/remote-session-id.d.ts +0 -22
- package/dist/lib/hosts/remote-session-id.js +0 -24
- package/dist/lib/hosts/routing-flag.d.ts +0 -21
- package/dist/lib/hosts/routing-flag.js +0 -21
- package/dist/lib/hosts/run-target.d.ts +0 -53
- package/dist/lib/hosts/run-target.js +0 -56
- package/dist/lib/hosts/session-index.d.ts +1 -53
- package/dist/lib/hosts/session-index.js +2 -59
- package/dist/lib/hosts/session-marker.d.ts +0 -31
- package/dist/lib/hosts/session-marker.js +0 -32
- package/dist/lib/hosts/ssh-config.d.ts +0 -25
- package/dist/lib/hosts/ssh-config.js +1 -32
- package/dist/lib/hosts/tasks.d.ts +0 -54
- package/dist/lib/hosts/tasks.js +0 -35
- package/dist/lib/hosts/types.d.ts +0 -39
- package/dist/lib/hosts/types.js +0 -22
- package/dist/lib/humans.d.ts +0 -21
- package/dist/lib/humans.js +0 -30
- package/dist/lib/identity/client.d.ts +1 -35
- package/dist/lib/identity/client.js +3 -29
- package/dist/lib/identity/index.d.ts +3 -27
- package/dist/lib/identity/index.js +8 -24
- package/dist/lib/import.d.ts +0 -104
- package/dist/lib/import.js +1 -137
- package/dist/lib/installations/active-check.d.ts +0 -53
- package/dist/lib/installations/active-check.js +0 -49
- package/dist/lib/installations/index.d.ts +0 -9
- package/dist/lib/installations/index.js +0 -9
- package/dist/lib/installations/installation-lock.js +0 -8
- package/dist/lib/installations/launch-gate.d.ts +0 -56
- package/dist/lib/installations/launch-gate.js +0 -83
- package/dist/lib/installations/migrate.d.ts +0 -100
- package/dist/lib/installations/migrate.js +105 -572
- package/dist/lib/installations/native-command.d.ts +0 -1
- package/dist/lib/installations/native-command.js +0 -6
- package/dist/lib/installations/resolve.d.ts +0 -24
- package/dist/lib/installations/resolve.js +0 -24
- package/dist/lib/installations/shims.d.ts +0 -395
- package/dist/lib/installations/shims.js +30 -957
- package/dist/lib/installations/store.d.ts +0 -199
- package/dist/lib/installations/store.js +1 -297
- package/dist/lib/installations/strategies.d.ts +0 -44
- package/dist/lib/installations/strategies.js +0 -87
- package/dist/lib/installations/types.d.ts +1 -67
- package/dist/lib/installations/types.js +0 -6
- package/dist/lib/installations/update-cancellation.d.ts +0 -74
- package/dist/lib/installations/update-cancellation.js +0 -74
- package/dist/lib/installations/update-policy.d.ts +0 -57
- package/dist/lib/installations/update-policy.js +0 -62
- package/dist/lib/installations/update-runtime.d.ts +0 -88
- package/dist/lib/installations/update-runtime.js +1 -127
- package/dist/lib/installations/update.d.ts +0 -53
- package/dist/lib/installations/update.js +0 -95
- package/dist/lib/installations/versions.d.ts +0 -310
- package/dist/lib/installations/versions.js +14 -837
- package/dist/lib/isolation-boundary-report.d.ts +0 -7
- package/dist/lib/isolation-boundary-report.js +0 -7
- package/dist/lib/launch-identity.d.ts +0 -8
- package/dist/lib/launch-identity.js +0 -8
- package/dist/lib/linear-autoclose.d.ts +0 -25
- package/dist/lib/linear-autoclose.js +0 -19
- package/dist/lib/linear-cache.d.ts +0 -57
- package/dist/lib/linear-cache.js +1 -81
- package/dist/lib/linear-project-counts.d.ts +0 -83
- package/dist/lib/linear-project-counts.js +2 -64
- package/dist/lib/linear-projects.d.ts +0 -62
- package/dist/lib/linear-projects.js +0 -85
- package/dist/lib/linear-rate-limit.d.ts +0 -21
- package/dist/lib/linear-rate-limit.js +1 -93
- package/dist/lib/linux-userns.d.ts +1 -42
- package/dist/lib/linux-userns.js +0 -47
- package/dist/lib/lock-compromise.d.ts +0 -7
- package/dist/lib/lock-compromise.js +0 -7
- package/dist/lib/log-follow.d.ts +0 -2
- package/dist/lib/log-follow.js +5 -15
- package/dist/lib/loop.d.ts +0 -106
- package/dist/lib/loop.js +0 -135
- package/dist/lib/machine-id.d.ts +0 -19
- package/dist/lib/machine-id.js +0 -19
- package/dist/lib/mailbox-gc.d.ts +0 -7
- package/dist/lib/mailbox-gc.js +0 -25
- package/dist/lib/mailbox-target.d.ts +0 -31
- package/dist/lib/mailbox-target.js +0 -27
- package/dist/lib/mailbox.d.ts +0 -77
- package/dist/lib/mailbox.js +5 -105
- package/dist/lib/manifest.d.ts +0 -4
- package/dist/lib/manifest.js +0 -36
- package/dist/lib/markdown.d.ts +0 -3
- package/dist/lib/markdown.js +0 -9
- package/dist/lib/mcp-registry.d.ts +1 -50
- package/dist/lib/mcp-registry.js +0 -64
- package/dist/lib/mcp.d.ts +0 -115
- package/dist/lib/mcp.js +3 -199
- package/dist/lib/memory-cache.d.ts +0 -11
- package/dist/lib/memory-cache.js +0 -9
- package/dist/lib/memory.d.ts +0 -52
- package/dist/lib/memory.js +12 -74
- package/dist/lib/menubar/download-menubar.d.ts +0 -35
- package/dist/lib/menubar/download-menubar.js +0 -38
- package/dist/lib/menubar/install-menubar.d.ts +0 -405
- package/dist/lib/menubar/install-menubar.js +25 -667
- package/dist/lib/menubar/migrate-prefs.d.ts +0 -47
- package/dist/lib/menubar/migrate-prefs.js +1 -70
- package/dist/lib/menubar/notify-desktop.d.ts +0 -82
- package/dist/lib/menubar/notify-desktop.js +0 -68
- package/dist/lib/menubar/resolve-version.d.ts +0 -41
- package/dist/lib/menubar/resolve-version.js +2 -44
- package/dist/lib/menubar/snapshot.d.ts +13 -66
- package/dist/lib/menubar/snapshot.js +45 -39
- package/dist/lib/merged-resources.d.ts +0 -10
- package/dist/lib/merged-resources.js +0 -10
- package/dist/lib/migrate-fold.d.ts +0 -31
- package/dist/lib/migrate-fold.js +6 -38
- package/dist/lib/model-tier-overrides.d.ts +0 -30
- package/dist/lib/model-tier-overrides.js +0 -14
- package/dist/lib/model-tiers.d.ts +0 -43
- package/dist/lib/model-tiers.js +5 -78
- package/dist/lib/models.d.ts +0 -145
- package/dist/lib/models.js +3 -333
- package/dist/lib/monitors/config.d.ts +0 -187
- package/dist/lib/monitors/config.js +4 -101
- package/dist/lib/monitors/dispatch.d.ts +0 -22
- package/dist/lib/monitors/dispatch.js +0 -35
- package/dist/lib/monitors/engine.d.ts +1 -53
- package/dist/lib/monitors/engine.js +17 -106
- package/dist/lib/monitors/fingerprint.d.ts +0 -43
- package/dist/lib/monitors/fingerprint.js +0 -57
- package/dist/lib/monitors/pid-watch.d.ts +0 -31
- package/dist/lib/monitors/pid-watch.js +0 -31
- package/dist/lib/monitors/remote.d.ts +0 -52
- package/dist/lib/monitors/remote.js +0 -42
- package/dist/lib/monitors/sources/command.d.ts +2 -9
- package/dist/lib/monitors/sources/command.js +13 -34
- package/dist/lib/monitors/sources/device.d.ts +0 -10
- package/dist/lib/monitors/sources/device.js +0 -14
- package/dist/lib/monitors/sources/failure.d.ts +0 -27
- package/dist/lib/monitors/sources/failure.js +0 -27
- package/dist/lib/monitors/sources/file.d.ts +0 -10
- package/dist/lib/monitors/sources/file.js +0 -11
- package/dist/lib/monitors/sources/http.d.ts +0 -7
- package/dist/lib/monitors/sources/http.js +0 -9
- package/dist/lib/monitors/sources/index.d.ts +0 -9
- package/dist/lib/monitors/sources/index.js +0 -9
- package/dist/lib/monitors/sources/poll.d.ts +0 -8
- package/dist/lib/monitors/sources/poll.js +0 -8
- package/dist/lib/monitors/sources/types.d.ts +0 -18
- package/dist/lib/monitors/sources/types.js +0 -8
- package/dist/lib/monitors/sources/webhook.d.ts +0 -7
- package/dist/lib/monitors/sources/webhook.js +0 -7
- package/dist/lib/monitors/sources/ws.d.ts +0 -10
- package/dist/lib/monitors/sources/ws.js +3 -13
- package/dist/lib/monitors/state.d.ts +0 -132
- package/dist/lib/monitors/state.js +2 -86
- package/dist/lib/native-accounts.d.ts +0 -32
- package/dist/lib/native-accounts.js +0 -17
- package/dist/lib/net-close.d.ts +0 -9
- package/dist/lib/net-close.js +0 -5
- package/dist/lib/notify.d.ts +0 -47
- package/dist/lib/notify.js +0 -30
- package/dist/lib/onepassword.d.ts +0 -14
- package/dist/lib/onepassword.js +0 -12
- package/dist/lib/open-url.d.ts +0 -38
- package/dist/lib/open-url.js +1 -69
- package/dist/lib/openclaw-keychain.js +2 -7
- package/dist/lib/operator.d.ts +0 -9
- package/dist/lib/operator.js +0 -34
- package/dist/lib/origin-machine.d.ts +0 -16
- package/dist/lib/origin-machine.js +0 -16
- package/dist/lib/output/git-output.d.ts +0 -31
- package/dist/lib/output/git-output.js +4 -43
- package/dist/lib/overdue.d.ts +0 -35
- package/dist/lib/overdue.js +0 -60
- package/dist/lib/owner-message.d.ts +0 -20
- package/dist/lib/owner-message.js +1 -40
- package/dist/lib/packages/output-home.d.ts +0 -28
- package/dist/lib/packages/output-home.js +0 -114
- package/dist/lib/paths.d.ts +0 -26
- package/dist/lib/paths.js +1 -27
- package/dist/lib/percentile.d.ts +0 -11
- package/dist/lib/percentile.js +0 -11
- package/dist/lib/perf/db.d.ts +0 -16
- package/dist/lib/perf/db.js +3 -32
- package/dist/lib/perf/spool.d.ts +0 -12
- package/dist/lib/perf/spool.js +0 -13
- package/dist/lib/perf/types.d.ts +0 -26
- package/dist/lib/perf/types.js +0 -1
- package/dist/lib/permissions-registry.d.ts +0 -48
- package/dist/lib/permissions-registry.js +0 -108
- package/dist/lib/permissions.d.ts +0 -215
- package/dist/lib/permissions.js +4 -407
- package/dist/lib/picker.d.ts +0 -124
- package/dist/lib/picker.js +0 -140
- package/dist/lib/placement.d.ts +0 -57
- package/dist/lib/placement.js +0 -47
- package/dist/lib/platform/exec.d.ts +0 -73
- package/dist/lib/platform/exec.js +0 -80
- package/dist/lib/platform/index.d.ts +0 -14
- package/dist/lib/platform/index.js +0 -14
- package/dist/lib/platform/ipc.d.ts +0 -10
- package/dist/lib/platform/ipc.js +0 -13
- package/dist/lib/platform/links.d.ts +0 -14
- package/dist/lib/platform/links.js +0 -25
- package/dist/lib/platform/paths.d.ts +0 -48
- package/dist/lib/platform/paths.js +0 -52
- package/dist/lib/platform/posixpath.d.ts +0 -18
- package/dist/lib/platform/posixpath.js +0 -62
- package/dist/lib/platform/process.d.ts +0 -67
- package/dist/lib/platform/process.js +5 -99
- package/dist/lib/platform/winpath.d.ts +0 -50
- package/dist/lib/platform/winpath.js +0 -81
- package/dist/lib/plugins/plugin-marketplace.d.ts +0 -165
- package/dist/lib/plugins/plugin-marketplace.js +10 -238
- package/dist/lib/plugins/plugins.d.ts +0 -238
- package/dist/lib/plugins/plugins.js +20 -454
- package/dist/lib/plugins/skills.d.ts +0 -86
- package/dist/lib/plugins/skills.js +1 -139
- package/dist/lib/pr-land-detach.d.ts +0 -17
- package/dist/lib/pr-land-detach.js +0 -30
- package/dist/lib/pricing/cost.d.ts +0 -29
- package/dist/lib/pricing/cost.js +0 -38
- package/dist/lib/pricing/index.d.ts +0 -6
- package/dist/lib/pricing/index.js +0 -6
- package/dist/lib/pricing/table.d.ts +0 -8
- package/dist/lib/pricing/table.js +3 -56
- package/dist/lib/probe.d.ts +0 -5
- package/dist/lib/probe.js +0 -40
- package/dist/lib/profiles-presets.d.ts +0 -20
- package/dist/lib/profiles-presets.js +1 -36
- package/dist/lib/profiles.d.ts +0 -185
- package/dist/lib/profiles.js +1 -158
- package/dist/lib/project-doctor.d.ts +0 -29
- package/dist/lib/project-doctor.js +0 -26
- package/dist/lib/project-focus.d.ts +0 -41
- package/dist/lib/project-focus.js +0 -49
- package/dist/lib/project-import.d.ts +0 -41
- package/dist/lib/project-import.js +0 -36
- package/dist/lib/project-key.d.ts +0 -65
- package/dist/lib/project-key.js +0 -70
- package/dist/lib/project-launch.d.ts +0 -49
- package/dist/lib/project-launch.js +2 -91
- package/dist/lib/project-probe.d.ts +0 -86
- package/dist/lib/project-probe.js +1 -88
- package/dist/lib/project-pull.d.ts +0 -96
- package/dist/lib/project-pull.js +0 -122
- package/dist/lib/project-resources.d.ts +0 -44
- package/dist/lib/project-resources.js +7 -171
- package/dist/lib/project-root.d.ts +0 -95
- package/dist/lib/project-root.js +0 -101
- package/dist/lib/project-schedule.d.ts +0 -43
- package/dist/lib/project-schedule.js +0 -52
- package/dist/lib/project-status.d.ts +0 -108
- package/dist/lib/project-status.js +0 -117
- package/dist/lib/projects.d.ts +0 -197
- package/dist/lib/projects.js +1 -213
- package/dist/lib/pwsh.d.ts +0 -41
- package/dist/lib/pwsh.js +0 -51
- package/dist/lib/quick-todo.d.ts +84 -0
- package/dist/lib/quick-todo.js +243 -0
- package/dist/lib/reconcile-and-repair.d.ts +0 -78
- package/dist/lib/reconcile-and-repair.js +3 -66
- package/dist/lib/redact.d.ts +0 -29
- package/dist/lib/redact.js +0 -54
- package/dist/lib/refresh-coordinator.d.ts +0 -15
- package/dist/lib/refresh-coordinator.js +0 -10
- package/dist/lib/refresh.d.ts +0 -39
- package/dist/lib/refresh.js +0 -45
- package/dist/lib/registry.d.ts +0 -65
- package/dist/lib/registry.js +0 -127
- package/dist/lib/reminders.d.ts +0 -21
- package/dist/lib/reminders.js +0 -30
- package/dist/lib/remote-agents-json.d.ts +0 -44
- package/dist/lib/remote-agents-json.js +1 -44
- package/dist/lib/reserved-stores.d.ts +0 -28
- package/dist/lib/reserved-stores.js +2 -28
- package/dist/lib/resource-aliases.d.ts +0 -12
- package/dist/lib/resource-aliases.js +0 -12
- package/dist/lib/resource-content-diff.d.ts +0 -28
- package/dist/lib/resource-content-diff.js +7 -34
- package/dist/lib/resource-inventory.d.ts +0 -51
- package/dist/lib/resource-inventory.js +0 -45
- package/dist/lib/resource-patterns.d.ts +0 -32
- package/dist/lib/resource-patterns.js +0 -34
- package/dist/lib/resource-profiles.d.ts +0 -7
- package/dist/lib/resource-profiles.js +0 -11
- package/dist/lib/resources/types.d.ts +0 -50
- package/dist/lib/resources/types.js +0 -7
- package/dist/lib/resources/workflows.d.ts +0 -7
- package/dist/lib/resources/workflows.js +0 -13
- package/dist/lib/resources.d.ts +0 -65
- package/dist/lib/resources.js +0 -78
- package/dist/lib/routers.d.ts +0 -67
- package/dist/lib/routers.js +0 -60
- package/dist/lib/routine-activation.d.ts +0 -23
- package/dist/lib/routine-activation.js +0 -24
- package/dist/lib/routine-context.d.ts +1 -91
- package/dist/lib/routine-context.js +0 -107
- package/dist/lib/routine-notify-owner.d.ts +0 -79
- package/dist/lib/routine-notify-owner.js +1 -103
- package/dist/lib/routine-notify.d.ts +0 -70
- package/dist/lib/routine-notify.js +1 -75
- package/dist/lib/routine-process-cleanup.d.ts +0 -1
- package/dist/lib/routine-process-cleanup.js +1 -4
- package/dist/lib/routine-readiness.d.ts +0 -63
- package/dist/lib/routine-readiness.js +4 -86
- package/dist/lib/routines-format.d.ts +0 -40
- package/dist/lib/routines-format.js +0 -67
- package/dist/lib/routines-placement.d.ts +0 -33
- package/dist/lib/routines-placement.js +0 -40
- package/dist/lib/routines-project.d.ts +0 -57
- package/dist/lib/routines-project.js +6 -80
- package/dist/lib/rules/compile.d.ts +0 -66
- package/dist/lib/rules/compile.js +6 -118
- package/dist/lib/rules/compose.d.ts +0 -56
- package/dist/lib/rules/compose.js +2 -83
- package/dist/lib/rules/rules.d.ts +0 -23
- package/dist/lib/rules/rules.js +0 -35
- package/dist/lib/rules/run-sync.d.ts +0 -16
- package/dist/lib/rules/run-sync.js +1 -44
- package/dist/lib/run-config.d.ts +0 -7
- package/dist/lib/run-config.js +0 -8
- package/dist/lib/run-defaults.d.ts +0 -14
- package/dist/lib/run-defaults.js +0 -14
- package/dist/lib/run-notify.d.ts +0 -18
- package/dist/lib/run-notify.js +0 -36
- package/dist/lib/run-trace-sync.d.ts +0 -21
- package/dist/lib/run-trace-sync.js +2 -66
- package/dist/lib/rush-session.d.ts +0 -26
- package/dist/lib/rush-session.js +0 -28
- package/dist/lib/sandbox.d.ts +0 -45
- package/dist/lib/sandbox.js +5 -93
- package/dist/lib/scheduler.d.ts +0 -28
- package/dist/lib/scheduler.js +0 -45
- package/dist/lib/scheduling/routines.d.ts +0 -652
- package/dist/lib/scheduling/routines.js +8 -475
- package/dist/lib/secrets-cli.d.ts +3 -8
- package/dist/lib/secrets-cli.js +1 -19
- package/dist/lib/secrets-client.d.ts +0 -117
- package/dist/lib/secrets-client.js +4 -275
- package/dist/lib/secrets-policy.d.ts +0 -142
- package/dist/lib/secrets-policy.js +4 -237
- package/dist/lib/secrets-types.d.ts +0 -87
- package/dist/lib/secrets-types.js +0 -13
- package/dist/lib/self-heal/checks/hook-manifest.js +0 -25
- package/dist/lib/self-heal/checks/hook-runtime.js +0 -5
- package/dist/lib/self-heal/checks/install-staging.d.ts +0 -1
- package/dist/lib/self-heal/checks/install-staging.js +1 -28
- package/dist/lib/self-heal/checks/menubar-helper.js +0 -5
- package/dist/lib/self-heal/checks/path.js +0 -9
- package/dist/lib/self-heal/checks/resources.js +0 -5
- package/dist/lib/self-heal/checks/shadowing.js +2 -16
- package/dist/lib/self-heal/checks/shims.js +0 -14
- package/dist/lib/self-heal/child.d.ts +12 -0
- package/dist/lib/self-heal/child.js +23 -0
- package/dist/lib/self-heal/registry.d.ts +0 -9
- package/dist/lib/self-heal/registry.js +0 -16
- package/dist/lib/self-heal/types.d.ts +0 -12
- package/dist/lib/self-heal/types.js +0 -15
- package/dist/lib/self-update.d.ts +0 -312
- package/dist/lib/self-update.js +9 -360
- package/dist/lib/service-manifest.d.ts +0 -39
- package/dist/lib/service-manifest.js +0 -72
- package/dist/lib/session/active.d.ts +13 -869
- package/dist/lib/session/active.js +20 -976
- package/dist/lib/session/actor-sidecar.d.ts +1 -32
- package/dist/lib/session/actor-sidecar.js +1 -41
- package/dist/lib/session/bookmarks.d.ts +0 -33
- package/dist/lib/session/bookmarks.js +0 -37
- package/dist/lib/session/bundle.d.ts +0 -86
- package/dist/lib/session/bundle.js +0 -54
- package/dist/lib/session/claude-accounts.d.ts +0 -40
- package/dist/lib/session/claude-accounts.js +0 -49
- package/dist/lib/session/cloud.d.ts +1 -23
- package/dist/lib/session/cloud.js +0 -26
- package/dist/lib/session/db.d.ts +5 -658
- package/dist/lib/session/db.js +22 -1443
- package/dist/lib/session/detached.d.ts +0 -21
- package/dist/lib/session/detached.js +0 -29
- package/dist/lib/session/discover.d.ts +3 -420
- package/dist/lib/session/discover.js +30 -1123
- package/dist/lib/session/fork.d.ts +1 -41
- package/dist/lib/session/fork.js +0 -19
- package/dist/lib/session/ghostty-tabs.d.ts +0 -24
- package/dist/lib/session/ghostty-tabs.js +0 -37
- package/dist/lib/session/glance-files.d.ts +19 -0
- package/dist/lib/session/glance-files.js +258 -0
- package/dist/lib/session/hook-sessions.d.ts +0 -33
- package/dist/lib/session/hook-sessions.js +4 -99
- package/dist/lib/session/host-link.d.ts +1 -94
- package/dist/lib/session/host-link.js +1 -81
- package/dist/lib/session/inject-target.d.ts +8 -0
- package/dist/lib/session/inject-target.js +32 -0
- package/dist/lib/session/inject.d.ts +0 -15
- package/dist/lib/session/inject.js +0 -15
- package/dist/lib/session/live-metadata.d.ts +1 -34
- package/dist/lib/session/live-metadata.js +1 -73
- package/dist/lib/session/local-tmux-attach.d.ts +0 -37
- package/dist/lib/session/local-tmux-attach.js +1 -76
- package/dist/lib/session/migrate-targets.d.ts +0 -46
- package/dist/lib/session/migrate-targets.js +0 -24
- package/dist/lib/session/migrations.d.ts +0 -12
- package/dist/lib/session/migrations.js +1 -20
- package/dist/lib/session/mirror.d.ts +0 -32
- package/dist/lib/session/mirror.js +0 -77
- package/dist/lib/session/origin-machine.js +0 -3
- package/dist/lib/session/pid-registry.d.ts +0 -80
- package/dist/lib/session/pid-registry.js +2 -81
- package/dist/lib/session/presence.d.ts +0 -39
- package/dist/lib/session/presence.js +2 -52
- package/dist/lib/session/process-view.d.ts +0 -11
- package/dist/lib/session/process-view.js +0 -25
- package/dist/lib/session/projection.d.ts +0 -3
- package/dist/lib/session/projection.js +0 -10
- package/dist/lib/session/provenance.d.ts +1 -37
- package/dist/lib/session/provenance.js +0 -69
- package/dist/lib/session/recovery.d.ts +1 -40
- package/dist/lib/session/recovery.js +2 -80
- package/dist/lib/session/relative-time.js +0 -3
- package/dist/lib/session/remote/peer-stream.d.ts +0 -42
- package/dist/lib/session/remote/peer-stream.js +0 -64
- package/dist/lib/session/remote/remote-bundle.d.ts +0 -6
- package/dist/lib/session/remote/remote-bundle.js +0 -21
- package/dist/lib/session/remote/remote-list.d.ts +1 -110
- package/dist/lib/session/remote/remote-list.js +5 -139
- package/dist/lib/session/remote/remote.d.ts +0 -98
- package/dist/lib/session/remote/remote.js +3 -119
- package/dist/lib/session/remote/watch.d.ts +1 -34
- package/dist/lib/session/remote/watch.js +12 -72
- package/dist/lib/session/remote-active.d.ts +0 -35
- package/dist/lib/session/remote-active.js +0 -48
- package/dist/lib/session/remote-bundle.js +0 -2
- package/dist/lib/session/remote-list.js +0 -2
- package/dist/lib/session/remote-preview-cache.d.ts +0 -7
- package/dist/lib/session/remote-preview-cache.js +1 -76
- package/dist/lib/session/remote.js +0 -2
- package/dist/lib/session/resume-command.d.ts +0 -6
- package/dist/lib/session/resume-command.js +0 -6
- package/dist/lib/session/resume-owner.d.ts +1 -52
- package/dist/lib/session/resume-owner.js +0 -56
- package/dist/lib/session/run-names.d.ts +0 -24
- package/dist/lib/session/run-names.js +0 -26
- package/dist/lib/session/session-cache.d.ts +2 -146
- package/dist/lib/session/session-cache.js +26 -203
- package/dist/lib/session/short-id.js +0 -3
- package/dist/lib/session/sync/agents.d.ts +0 -68
- package/dist/lib/session/sync/agents.js +0 -0
- package/dist/lib/session/sync/backend.d.ts +0 -39
- package/dist/lib/session/sync/backend.js +0 -45
- package/dist/lib/session/sync/config.d.ts +0 -27
- package/dist/lib/session/sync/config.js +0 -56
- package/dist/lib/session/sync/managed-config.d.ts +0 -17
- package/dist/lib/session/sync/managed-config.js +0 -17
- package/dist/lib/session/sync/managed-key.d.ts +0 -38
- package/dist/lib/session/sync/managed-key.js +1 -42
- package/dist/lib/session/sync/net-client.d.ts +0 -36
- package/dist/lib/session/sync/net-client.js +0 -30
- package/dist/lib/session/sync/provision.d.ts +0 -2
- package/dist/lib/session/sync/provision.js +0 -13
- package/dist/lib/session/sync/r2.d.ts +0 -20
- package/dist/lib/session/sync/r2.js +0 -20
- package/dist/lib/session/sync/transcript-crypto.d.ts +0 -37
- package/dist/lib/session/sync/transcript-crypto.js +5 -37
- package/dist/lib/session/sync/worker-template.d.ts +0 -5
- package/dist/lib/session/sync/worker-template.js +0 -40
- package/dist/lib/session/testdata/pid-registry-namespace.js +0 -2
- package/dist/lib/session/testdata/process-view-private.js +0 -1
- package/dist/lib/session/throughput.d.ts +0 -24
- package/dist/lib/session/throughput.js +1 -25
- package/dist/lib/session/timeline-pass.d.ts +1 -63
- package/dist/lib/session/timeline-pass.js +161 -148
- package/dist/lib/session/title.d.ts +0 -182
- package/dist/lib/session/title.js +0 -139
- package/dist/lib/session/tool-index.d.ts +2 -21
- package/dist/lib/session/tool-index.js +3 -75
- package/dist/lib/session/tool-store.d.ts +2 -48
- package/dist/lib/session/tool-store.js +1 -33
- package/dist/lib/session/viewing-in.d.ts +0 -67
- package/dist/lib/session/viewing-in.js +1 -71
- package/dist/lib/session/watch.js +0 -2
- package/dist/lib/session/width.js +0 -3
- package/dist/lib/sessions-client.d.ts +0 -46
- package/dist/lib/sessions-client.js +36 -113
- package/dist/lib/settings-manifest.d.ts +1 -17
- package/dist/lib/settings-manifest.js +4 -57
- package/dist/lib/setup-tool-install.d.ts +0 -1
- package/dist/lib/setup-tool-install.js +2 -7
- package/dist/lib/setup-tool-status.d.ts +0 -3
- package/dist/lib/setup-tool-status.js +4 -14
- package/dist/lib/sha256-asset.d.ts +0 -20
- package/dist/lib/sha256-asset.js +0 -20
- package/dist/lib/share-runtime.d.ts +0 -10
- package/dist/lib/share-runtime.js +1 -27
- package/dist/lib/shim-heal.d.ts +0 -15
- package/dist/lib/shim-heal.js +3 -29
- package/dist/lib/signin-badge.d.ts +0 -72
- package/dist/lib/signin-badge.js +0 -86
- package/dist/lib/sink-format.d.ts +0 -32
- package/dist/lib/sink-format.js +0 -14
- package/dist/lib/smart-launch.d.ts +0 -75
- package/dist/lib/smart-launch.js +1 -83
- package/dist/lib/snapshot.d.ts +0 -46
- package/dist/lib/snapshot.js +5 -31
- package/dist/lib/spinner.d.ts +0 -37
- package/dist/lib/spinner.js +0 -37
- package/dist/lib/sqlite.d.ts +0 -13
- package/dist/lib/sqlite.js +3 -71
- package/dist/lib/ssh-exec.d.ts +0 -209
- package/dist/lib/ssh-exec.js +11 -248
- package/dist/lib/ssh-tunnel.d.ts +0 -43
- package/dist/lib/ssh-tunnel.js +2 -48
- package/dist/lib/staleness/checkers/commands.d.ts +0 -4
- package/dist/lib/staleness/checkers/commands.js +0 -4
- package/dist/lib/staleness/checkers/hooks.d.ts +0 -10
- package/dist/lib/staleness/checkers/hooks.js +0 -15
- package/dist/lib/staleness/checkers/mcp.d.ts +0 -9
- package/dist/lib/staleness/checkers/mcp.js +0 -9
- package/dist/lib/staleness/checkers/permissions.d.ts +0 -12
- package/dist/lib/staleness/checkers/permissions.js +0 -13
- package/dist/lib/staleness/checkers/plugins.d.ts +0 -8
- package/dist/lib/staleness/checkers/plugins.js +0 -8
- package/dist/lib/staleness/checkers/rules.d.ts +0 -15
- package/dist/lib/staleness/checkers/rules.js +0 -26
- package/dist/lib/staleness/checkers/skills.d.ts +0 -4
- package/dist/lib/staleness/checkers/skills.js +0 -4
- package/dist/lib/staleness/checkers/subagents.d.ts +0 -9
- package/dist/lib/staleness/checkers/subagents.js +0 -9
- package/dist/lib/staleness/checkers/types.d.ts +0 -34
- package/dist/lib/staleness/checkers/types.js +0 -19
- package/dist/lib/staleness/checkers/workflows.d.ts +0 -7
- package/dist/lib/staleness/checkers/workflows.js +0 -7
- package/dist/lib/staleness/detectors/commands.js +0 -17
- package/dist/lib/staleness/detectors/hooks.js +1 -6
- package/dist/lib/staleness/detectors/mcp.js +0 -4
- package/dist/lib/staleness/detectors/permissions.js +10 -23
- package/dist/lib/staleness/detectors/rules.js +0 -6
- package/dist/lib/staleness/detectors/skills.d.ts +0 -1
- package/dist/lib/staleness/detectors/skills.js +1 -12
- package/dist/lib/staleness/detectors/types.d.ts +0 -10
- package/dist/lib/staleness/fingerprint.d.ts +0 -19
- package/dist/lib/staleness/fingerprint.js +0 -35
- package/dist/lib/staleness/index.d.ts +0 -28
- package/dist/lib/staleness/index.js +1 -45
- package/dist/lib/staleness/layers.d.ts +0 -23
- package/dist/lib/staleness/layers.js +0 -34
- package/dist/lib/staleness/prune.d.ts +0 -71
- package/dist/lib/staleness/prune.js +2 -27
- package/dist/lib/staleness/registry.d.ts +0 -10
- package/dist/lib/staleness/registry.js +3 -33
- package/dist/lib/staleness/types.d.ts +0 -36
- package/dist/lib/staleness/types.js +0 -5
- package/dist/lib/staleness/writers/commands.js +1 -48
- package/dist/lib/staleness/writers/hooks.js +1 -18
- package/dist/lib/staleness/writers/kinds.d.ts +0 -12
- package/dist/lib/staleness/writers/kinds.js +0 -1
- package/dist/lib/staleness/writers/lazy-map.d.ts +0 -11
- package/dist/lib/staleness/writers/mcp.js +0 -13
- package/dist/lib/staleness/writers/plugins.js +0 -4
- package/dist/lib/staleness/writers/rules.d.ts +0 -1
- package/dist/lib/staleness/writers/rules.js +1 -19
- package/dist/lib/staleness/writers/skills.js +3 -14
- package/dist/lib/staleness/writers/sources.d.ts +0 -11
- package/dist/lib/staleness/writers/sources.js +0 -32
- package/dist/lib/staleness/writers/subagents.js +0 -16
- package/dist/lib/staleness/writers/types.d.ts +0 -58
- package/dist/lib/staleness/writers/workflows.js +1 -1
- package/dist/lib/standalone-tools.d.ts +24 -0
- package/dist/lib/standalone-tools.js +58 -0
- package/dist/lib/star-nudge.d.ts +0 -32
- package/dist/lib/star-nudge.js +2 -36
- package/dist/lib/startup/command-registry.d.ts +0 -45
- package/dist/lib/startup/command-registry.js +1 -46
- package/dist/lib/startup/dev-build.d.ts +0 -9
- package/dist/lib/startup/dev-build.js +1 -42
- package/dist/lib/startup/root-command.d.ts +0 -19
- package/dist/lib/startup/root-command.js +0 -19
- package/dist/lib/startup/spellcheck.d.ts +0 -13
- package/dist/lib/startup/spellcheck.js +0 -13
- package/dist/lib/state.d.ts +0 -376
- package/dist/lib/state.js +19 -737
- package/dist/lib/storage/selection.d.ts +0 -40
- package/dist/lib/storage/selection.js +0 -29
- package/dist/lib/subagents-registry.d.ts +0 -56
- package/dist/lib/subagents-registry.js +0 -99
- package/dist/lib/subagents.d.ts +0 -128
- package/dist/lib/subagents.js +1 -158
- package/dist/lib/summarizer/config.d.ts +0 -37
- package/dist/lib/summarizer/config.js +0 -37
- package/dist/lib/summarizer/pass.d.ts +0 -20
- package/dist/lib/summarizer/pass.js +1 -34
- package/dist/lib/summarizer/summarize.d.ts +1 -49
- package/dist/lib/summarizer/summarize.js +0 -35
- package/dist/lib/sync-passphrase.d.ts +0 -16
- package/dist/lib/sync-passphrase.js +1 -18
- package/dist/lib/sync-status.d.ts +0 -72
- package/dist/lib/sync-status.js +0 -55
- package/dist/lib/sync-umbrella.d.ts +0 -54
- package/dist/lib/sync-umbrella.js +0 -48
- package/dist/lib/system-run-sync.d.ts +0 -5
- package/dist/lib/system-run-sync.js +1 -31
- package/dist/lib/teams/agents.d.ts +1 -444
- package/dist/lib/teams/agents.js +11 -871
- package/dist/lib/teams/api.d.ts +2 -52
- package/dist/lib/teams/api.js +4 -63
- package/dist/lib/teams/debug.d.ts +0 -6
- package/dist/lib/teams/debug.js +0 -6
- package/dist/lib/teams/delivery.d.ts +0 -41
- package/dist/lib/teams/delivery.js +0 -32
- package/dist/lib/teams/file_ops.d.ts +0 -11
- package/dist/lib/teams/file_ops.js +0 -11
- package/dist/lib/teams/forEach.d.ts +0 -76
- package/dist/lib/teams/forEach.js +1 -77
- package/dist/lib/teams/index.d.ts +1 -7
- package/dist/lib/teams/index.js +1 -7
- package/dist/lib/teams/parsers.d.ts +0 -4
- package/dist/lib/teams/parsers.js +0 -81
- package/dist/lib/teams/persistence.d.ts +0 -2
- package/dist/lib/teams/persistence.js +0 -12
- package/dist/lib/teams/placement-probe.d.ts +0 -12
- package/dist/lib/teams/placement-probe.js +1 -51
- package/dist/lib/teams/pr-watch.d.ts +0 -107
- package/dist/lib/teams/pr-watch.js +1 -107
- package/dist/lib/teams/registry.d.ts +0 -36
- package/dist/lib/teams/registry.js +0 -47
- package/dist/lib/teams/remoteWorktree.d.ts +0 -50
- package/dist/lib/teams/remoteWorktree.js +1 -96
- package/dist/lib/teams/scheduler.d.ts +0 -111
- package/dist/lib/teams/scheduler.js +2 -125
- package/dist/lib/teams/summarizer.d.ts +0 -22
- package/dist/lib/teams/summarizer.js +6 -50
- package/dist/lib/teams/supervisor.d.ts +0 -38
- package/dist/lib/teams/supervisor.js +0 -21
- package/dist/lib/teams/worktree.d.ts +0 -95
- package/dist/lib/teams/worktree.js +3 -110
- package/dist/lib/template.d.ts +0 -21
- package/dist/lib/template.js +0 -23
- package/dist/lib/term-client.d.ts +0 -26
- package/dist/lib/term-client.js +0 -48
- package/dist/lib/term-driver.d.ts +0 -5
- package/dist/lib/term-driver.js +0 -8
- package/dist/lib/terminal/backends/ghostty.d.ts +0 -2
- package/dist/lib/terminal/backends/ghostty.js +0 -12
- package/dist/lib/terminal/backends/index.d.ts +0 -17
- package/dist/lib/terminal/backends/index.js +0 -15
- package/dist/lib/terminal/backends/iterm.d.ts +0 -2
- package/dist/lib/terminal/backends/iterm.js +0 -10
- package/dist/lib/terminal/backends/terminal-app.d.ts +0 -10
- package/dist/lib/terminal/backends/terminal-app.js +0 -30
- package/dist/lib/terminal/backends/tmux.d.ts +0 -10
- package/dist/lib/terminal/backends/tmux.js +0 -2
- package/dist/lib/terminal/backends/vscodium-agent.d.ts +0 -25
- package/dist/lib/terminal/backends/vscodium-agent.js +0 -36
- package/dist/lib/terminal/engine.d.ts +0 -17
- package/dist/lib/terminal/engine.js +0 -10
- package/dist/lib/terminal/index.d.ts +0 -8
- package/dist/lib/terminal/inject.d.ts +1 -173
- package/dist/lib/terminal/inject.js +0 -146
- package/dist/lib/terminal/policy.d.ts +0 -8
- package/dist/lib/terminal/policy.js +0 -1
- package/dist/lib/terminal/preferred.d.ts +0 -66
- package/dist/lib/terminal/preferred.js +0 -30
- package/dist/lib/terminal/quote.d.ts +0 -8
- package/dist/lib/terminal/quote.js +0 -8
- package/dist/lib/terminal/resolve.d.ts +0 -46
- package/dist/lib/terminal/resolve.js +0 -30
- package/dist/lib/terminal/run-surface.d.ts +0 -56
- package/dist/lib/terminal/run-surface.js +0 -46
- package/dist/lib/terminal/shell.d.ts +0 -3
- package/dist/lib/terminal/shell.js +0 -13
- package/dist/lib/terminal/transport.d.ts +0 -14
- package/dist/lib/terminal/transport.js +1 -30
- package/dist/lib/terminal/types.d.ts +0 -40
- package/dist/lib/terminal/types.js +0 -10
- package/dist/lib/text/relative-time.d.ts +0 -36
- package/dist/lib/text/relative-time.js +0 -43
- package/dist/lib/text/short-id.d.ts +0 -16
- package/dist/lib/text/short-id.js +0 -16
- package/dist/lib/text/width.d.ts +0 -24
- package/dist/lib/text/width.js +10 -52
- package/dist/lib/tmux/binary.d.ts +0 -36
- package/dist/lib/tmux/binary.js +0 -28
- package/dist/lib/tmux/index.d.ts +0 -5
- package/dist/lib/tmux/index.js +0 -5
- package/dist/lib/tmux/orphan-reap.d.ts +0 -253
- package/dist/lib/tmux/orphan-reap.js +3 -299
- package/dist/lib/tmux/paths.d.ts +0 -14
- package/dist/lib/tmux/paths.js +0 -14
- package/dist/lib/tmux/session.d.ts +0 -263
- package/dist/lib/tmux/session.js +6 -344
- package/dist/lib/traces/backend.d.ts +0 -20
- package/dist/lib/traces/backend.js +0 -23
- package/dist/lib/traces/classify.d.ts +0 -20
- package/dist/lib/traces/classify.js +0 -7
- package/dist/lib/traces/insights.d.ts +1 -84
- package/dist/lib/traces/insights.js +0 -126
- package/dist/lib/traces/phenotype.d.ts +0 -69
- package/dist/lib/traces/phenotype.js +0 -150
- package/dist/lib/traces/provision.d.ts +0 -1
- package/dist/lib/traces/provision.js +0 -5
- package/dist/lib/traces/schema2-build.d.ts +3 -60
- package/dist/lib/traces/schema2-build.js +8 -149
- package/dist/lib/traces/schema2-danger.d.ts +0 -30
- package/dist/lib/traces/schema2-danger.js +1 -63
- package/dist/lib/traces/schema2.d.ts +0 -11
- package/dist/lib/traces/segments.d.ts +0 -44
- package/dist/lib/traces/segments.js +0 -65
- package/dist/lib/traces/sync.d.ts +2 -239
- package/dist/lib/traces/sync.js +15 -237
- package/dist/lib/traces/worker-template.d.ts +0 -3
- package/dist/lib/traces/worker-template.js +0 -29
- package/dist/lib/triggers/handlers.d.ts +0 -82
- package/dist/lib/triggers/handlers.js +0 -75
- package/dist/lib/triggers/webhook.d.ts +0 -158
- package/dist/lib/triggers/webhook.js +0 -143
- package/dist/lib/types.d.ts +0 -736
- package/dist/lib/types.js +0 -50
- package/dist/lib/uninstall.d.ts +0 -17
- package/dist/lib/uninstall.js +0 -75
- package/dist/lib/usage-backoff.d.ts +0 -20
- package/dist/lib/usage-backoff.js +3 -60
- package/dist/lib/usage-refresh.d.ts +0 -154
- package/dist/lib/usage-refresh.js +8 -212
- package/dist/lib/verbs.d.ts +0 -12
- package/dist/lib/verbs.js +0 -12
- package/dist/lib/version-duplicates.d.ts +0 -6
- package/dist/lib/version-duplicates.js +0 -6
- package/dist/lib/version.d.ts +0 -55
- package/dist/lib/version.js +1 -58
- package/dist/lib/view-types.d.ts +0 -48
- package/dist/lib/warn-unpushed.d.ts +0 -27
- package/dist/lib/warn-unpushed.js +1 -45
- package/dist/lib/watchdog/history.d.ts +0 -1
- package/dist/lib/watchdog/history.js +0 -3
- package/dist/lib/watchdog/index.js +0 -2
- package/dist/lib/watchdog/log.d.ts +0 -19
- package/dist/lib/watchdog/log.js +0 -34
- package/dist/lib/watchdog/read.d.ts +0 -27
- package/dist/lib/watchdog/read.js +3 -58
- package/dist/lib/watchdog/rotate.d.ts +0 -139
- package/dist/lib/watchdog/rotate.js +2 -151
- package/dist/lib/watchdog/runner.d.ts +0 -125
- package/dist/lib/watchdog/runner.js +3 -223
- package/dist/lib/watchdog/service.d.ts +0 -1
- package/dist/lib/watchdog/service.js +0 -2
- package/dist/lib/watchdog/watchdog-agent.d.ts +0 -31
- package/dist/lib/watchdog/watchdog-agent.js +0 -27
- package/dist/lib/watchdog/watchdog.d.ts +0 -7
- package/dist/lib/watchdog/watchdog.js +0 -10
- package/dist/lib/watchdog/watchdogTail.js +0 -7
- package/dist/lib/whats-new.d.ts +0 -10
- package/dist/lib/whats-new.js +0 -21
- package/dist/lib/workflows-registry.d.ts +0 -45
- package/dist/lib/workflows-registry.js +0 -60
- package/dist/lib/workflows.d.ts +0 -282
- package/dist/lib/workflows.js +3 -213
- package/dist/lib/worktree/held.d.ts +0 -89
- package/dist/lib/worktree/held.js +1 -103
- package/dist/lib/wrap.d.ts +0 -32
- package/dist/lib/wrap.js +0 -32
- package/dist/lib/yaml-io.d.ts +0 -45
- package/dist/lib/yaml-io.js +0 -47
- package/dist/session-tracker/dist/adapters/claude.js +0 -2
- package/dist/session-tracker/dist/hook.sh +4 -37
- package/dist/session-tracker/dist/index.d.ts +0 -7
- package/dist/session-tracker/dist/index.js +0 -5
- package/dist/session-tracker/dist/install-hook.d.ts +0 -5
- package/dist/session-tracker/dist/install-hook.js +1 -15
- package/dist/session-tracker/dist/prune-state.js +0 -4
- package/dist/session-tracker/dist/reader.js +0 -4
- package/dist/session-tracker/dist/state-file.d.ts +0 -3
- package/dist/session-tracker/dist/state-file.js +3 -8
- package/package.json +3 -4
- package/scripts/postinstall.js +8 -116
- package/dist/lib/session/artifacts.d.ts +0 -14
- package/dist/lib/session/artifacts.js +0 -101
- package/dist/lib/session/bash-command.d.ts +0 -63
- package/dist/lib/session/bash-command.js +0 -490
- package/dist/lib/session/digest.d.ts +0 -66
- package/dist/lib/session/digest.js +0 -328
- package/dist/lib/session/highlights.d.ts +0 -151
- package/dist/lib/session/highlights.js +0 -391
- package/dist/lib/session/insights.d.ts +0 -165
- package/dist/lib/session/insights.js +0 -563
- package/dist/lib/session/linear.d.ts +0 -19
- package/dist/lib/session/linear.js +0 -99
- package/dist/lib/session/parse.d.ts +0 -224
- package/dist/lib/session/parse.js +0 -2408
- package/dist/lib/session/prompt.d.ts +0 -213
- package/dist/lib/session/prompt.js +0 -601
- package/dist/lib/session/render.d.ts +0 -133
- package/dist/lib/session/render.js +0 -1047
- package/dist/lib/session/share-html.d.ts +0 -35
- package/dist/lib/session/share-html.js +0 -319
- package/dist/lib/session/shell-programs.d.ts +0 -33
- package/dist/lib/session/shell-programs.js +0 -380
- package/dist/lib/session/state.d.ts +0 -269
- package/dist/lib/session/state.js +0 -777
- package/dist/lib/session/stream-render.d.ts +0 -4
- package/dist/lib/session/stream-render.js +0 -131
- package/dist/lib/session/tail.d.ts +0 -88
- package/dist/lib/session/tail.js +0 -294
- package/dist/lib/session/team-filter.d.ts +0 -129
- package/dist/lib/session/team-filter.js +0 -269
- package/dist/lib/session/timeline.d.ts +0 -172
- package/dist/lib/session/timeline.js +0 -636
- package/dist/lib/session/tool-calls.d.ts +0 -132
- package/dist/lib/session/tool-calls.js +0 -674
- package/dist/lib/session/trajectory-compare.d.ts +0 -48
- package/dist/lib/session/trajectory-compare.js +0 -116
- package/dist/lib/session/trajectory-html.d.ts +0 -19
- package/dist/lib/session/trajectory-html.js +0 -771
- package/dist/lib/session/trajectory-lineage.d.ts +0 -93
- package/dist/lib/session/trajectory-lineage.js +0 -195
- package/dist/lib/session/trajectory-text.d.ts +0 -38
- package/dist/lib/session/trajectory-text.js +0 -284
- package/dist/lib/session/trajectory.d.ts +0 -145
- package/dist/lib/session/trajectory.js +0 -394
- package/dist/lib/session/types.d.ts +0 -627
- package/dist/lib/session/types.js +0 -43
|
@@ -1,21 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Credential accounts, stored as canonical `agents secrets` bundles (RUSH-2470).
|
|
3
|
-
*
|
|
4
|
-
* One account IS one bundle: the bundle label is the account name, its vars
|
|
5
|
-
* carry the identity (ACCOUNT_ID / PROVIDER / AUTH_TYPE / optional BASE_URL)
|
|
6
|
-
* and the secret (API_KEY or TOKEN), and it uses the `never` prompt policy so
|
|
7
|
-
* it reads headlessly and syncs across the fleet with no Touch ID. The bundle
|
|
8
|
-
* shape lives in [[account-schema]]; this module owns the CRUD, resolution,
|
|
9
|
-
* and the one-time migration off the legacy `accounts.yaml`.
|
|
10
|
-
*
|
|
11
|
-
* `readAccountRegistry()` still returns the historical
|
|
12
|
-
* `{ version: 2, accounts }` view so existing consumers (harness, profiles,
|
|
13
|
-
* exec) keep working — it is now a projection over the account bundles, not a
|
|
14
|
-
* file read. Native OAuth logins are NOT accounts here; they stay native and
|
|
15
|
-
* surface through unified discovery in [[account-catalog]]. Labels bind to
|
|
16
|
-
* `(agent, identityKey)` on the central `accounts.native` rows in agents.yaml,
|
|
17
|
-
* which `agents repo push/pull` already syncs fleet-wide.
|
|
18
|
-
*/
|
|
19
1
|
import * as fs from 'node:fs';
|
|
20
2
|
import * as path from 'node:path';
|
|
21
3
|
import * as crypto from 'node:crypto';
|
|
@@ -56,7 +38,6 @@ function toCredentialAccount(record) {
|
|
|
56
38
|
baseUrl: record.baseUrl,
|
|
57
39
|
};
|
|
58
40
|
}
|
|
59
|
-
/** Every account bundle currently on this device, keyed by stable id. */
|
|
60
41
|
function readAccountBundles() {
|
|
61
42
|
const out = [];
|
|
62
43
|
for (const bundle of listBundlesSync()) {
|
|
@@ -66,22 +47,15 @@ function readAccountBundles() {
|
|
|
66
47
|
}
|
|
67
48
|
return out;
|
|
68
49
|
}
|
|
69
|
-
/**
|
|
70
|
-
* Fold a legacy `accounts.yaml` into account bundles, then archive it.
|
|
71
|
-
* Transactional: every bundle is written first, and the file is archived (and
|
|
72
|
-
* the old per-account keychain items dropped) ONLY after all writes succeed —
|
|
73
|
-
* so an interrupted migration leaves the file in place and the next read
|
|
74
|
-
* retries, skipping accounts that already landed as a bundle.
|
|
75
|
-
*/
|
|
76
50
|
function migrateLegacyRegistryFile(base) {
|
|
51
|
+
// Credential accounts live in policy-never bundles; AccountRegistryDocument is only a compatibility projection.
|
|
52
|
+
// Migration writes all bundles first, skips identical retry writes, and removes legacy data only after total success.
|
|
77
53
|
const file = accountRegistryPath(base);
|
|
78
54
|
if (!fs.existsSync(file))
|
|
79
55
|
return;
|
|
80
56
|
const raw = yaml.parse(fs.readFileSync(file, 'utf8'));
|
|
81
57
|
if (!raw || Array.isArray(raw))
|
|
82
58
|
throw new Error(`Account registry corrupted at ${file}: expected a YAML map.`);
|
|
83
|
-
// Legacy version-bound labels (pre-credential-accounts) are not credentials —
|
|
84
|
-
// archive them so they are never resurrected as fake accounts.
|
|
85
59
|
if (raw.version === undefined && raw.labels !== undefined) {
|
|
86
60
|
archiveLegacyFile(file, 'accounts.legacy-labels.yaml');
|
|
87
61
|
return;
|
|
@@ -108,18 +82,16 @@ function migrateLegacyRegistryFile(base) {
|
|
|
108
82
|
if (!existing || existing.id !== id) {
|
|
109
83
|
throw new Error(`Cannot migrate account '${name}': a different secrets bundle already uses that name.`);
|
|
110
84
|
}
|
|
111
|
-
continue;
|
|
85
|
+
continue;
|
|
112
86
|
}
|
|
113
87
|
const baseUrl = item.baseUrl ? String(item.baseUrl) : undefined;
|
|
114
88
|
const record = { id, name, provider, auth, baseUrl };
|
|
115
89
|
const secret = hasKeychainTokenSync(legacySecretRef) ? getKeychainTokenSync(legacySecretRef) : '';
|
|
116
90
|
const { bundle, items } = buildAccountBundle(record, secret || 'x');
|
|
117
91
|
if (!secret)
|
|
118
|
-
items.clear();
|
|
92
|
+
items.clear();
|
|
119
93
|
writeBundleWithItemsSync(bundle, items);
|
|
120
94
|
}
|
|
121
|
-
// Success: the file's accounts all exist as bundles now. Archive it and drop
|
|
122
|
-
// the superseded per-account keychain items.
|
|
123
95
|
archiveLegacyFile(file, 'accounts.migrated.yaml');
|
|
124
96
|
for (const legacyItem of retiredSecretItems)
|
|
125
97
|
deleteKeychainTokenSync(legacyItem);
|
|
@@ -140,55 +112,21 @@ export function readAccountRegistry(base = getUserAgentsDir()) {
|
|
|
140
112
|
export function findAccount(name, doc = readAccountRegistry()) {
|
|
141
113
|
return doc.accounts[name] ?? Object.values(doc.accounts).find(account => account.name === name) ?? null;
|
|
142
114
|
}
|
|
143
|
-
/**
|
|
144
|
-
* Effective native accounts: the fleet-shared central store (version-scoped
|
|
145
|
-
* identities) merged with THIS box's own device doc (device-scoped identities).
|
|
146
|
-
* A native login is machine-local — its home follows its scope (PHNX-3315), so
|
|
147
|
-
* a `scope:'device'` identity is read from this box's device doc and never the
|
|
148
|
-
* shared central agents.yaml (which is where its email/identityKey PII used to
|
|
149
|
-
* accumulate). On an id collision the device slice wins.
|
|
150
|
-
*/
|
|
151
115
|
export function listNativeAccounts(meta) {
|
|
152
116
|
const merged = { ...meta.accounts?.native, ...meta.deviceAccounts?.native };
|
|
153
117
|
return Object.values(merged).map(account => ({ ...account, kind: 'native' }));
|
|
154
118
|
}
|
|
155
|
-
/**
|
|
156
|
-
* The native account registered for one harness login, or null when that login
|
|
157
|
-
* is unnamed. `info` is the login's identity as `getAccountInfo` /
|
|
158
|
-
* `readClaudeHomeConfig` report it; the match key is the same value every
|
|
159
|
-
* catalog and inventory groups a home on — the stable `accountKey`, else the
|
|
160
|
-
* lowercased email. The one lookup behind `agents view`, the device
|
|
161
|
-
* inventories, and the Claude status line.
|
|
162
|
-
*/
|
|
163
119
|
export function findNativeAccountByIdentity(meta, agent, info) {
|
|
120
|
+
// Stable accountKey must win; normalized email is only the key-less fallback shared by view, inventory, and statusline.
|
|
164
121
|
const identityKey = info?.accountKey ?? info?.email?.toLowerCase();
|
|
165
122
|
if (!identityKey)
|
|
166
123
|
return null;
|
|
167
124
|
return listNativeAccounts(meta).find(account => account.agent === agent && account.identityKey === identityKey) ?? null;
|
|
168
125
|
}
|
|
169
|
-
/**
|
|
170
|
-
* Resolve one account by name or id across both stores, native first.
|
|
171
|
-
*
|
|
172
|
-
* `doc` is optional and read LAZILY: a native match returns without ever reading
|
|
173
|
-
* the provider bundle registry — so a native view/attach/run never triggers a
|
|
174
|
-
* bundle read, legacy-`accounts.yaml` migration, or a keychain decrypt (which
|
|
175
|
-
* would surface a Touch ID prompt or crash on an undecryptable legacy item). A
|
|
176
|
-
* default-evaluated `doc = readAccountRegistry()` argument would defeat this by
|
|
177
|
-
* running before the body, so callers that only need a native lookup must be
|
|
178
|
-
* able to omit it.
|
|
179
|
-
*/
|
|
180
126
|
export function findUnifiedAccount(nameOrId, meta, doc, preferAgent) {
|
|
127
|
+
// Native matches return before bundle/keychain reads; preferAgent resolves shared labels for the launched harness.
|
|
181
128
|
const needle = nameOrId.toLowerCase();
|
|
182
129
|
const matches = listNativeAccounts(meta).filter(account => account.id === nameOrId || account.name.toLowerCase() === needle || account.identityLabel?.toLowerCase() === needle);
|
|
183
|
-
// `identityLabel` defaults to the login's own identifier (the email), so ONE
|
|
184
|
-
// selector legitimately matches several harnesses: `muqsitnawaz@gmail.com` is a
|
|
185
|
-
// claude login AND a codex login. Un-scoped, `.find()` returned whichever row the
|
|
186
|
-
// merged store happened to order first, so `agents run claude#<email>` died with
|
|
187
|
-
// "Account 'personal' is a codex login and cannot authenticate the claude harness"
|
|
188
|
-
// while that identity's own claude login sat right there. Prefer the harness being
|
|
189
|
-
// launched; fall back to the first match when the caller has no harness in hand.
|
|
190
|
-
// rename/remove/view refuse an ambiguous *name* via assertUnambiguousNativeAccount
|
|
191
|
-
// before they get here — this fallback is for identityLabel collisions.
|
|
192
130
|
const native = matches.find(account => account.agent === preferAgent) ?? matches[0];
|
|
193
131
|
if (native)
|
|
194
132
|
return native;
|
|
@@ -198,12 +136,6 @@ export function findUnifiedAccount(nameOrId, meta, doc, preferAgent) {
|
|
|
198
136
|
function nativeIdentityRows(meta, agent, identityKey) {
|
|
199
137
|
return listNativeAccounts(meta).filter(account => account.agent === agent && account.identityKey === identityKey);
|
|
200
138
|
}
|
|
201
|
-
/**
|
|
202
|
-
* Split a management selector into its harness and name. `<harness>#<name>`
|
|
203
|
-
* pins the harness; a bare name (or row id) carries none. Native names are
|
|
204
|
-
* unique per harness (PHNX-3887), so a bare name alone can legitimately match a
|
|
205
|
-
* claude row AND a codex row — the selector is how rename/remove say which.
|
|
206
|
-
*/
|
|
207
139
|
export function parseAccountSelector(input) {
|
|
208
140
|
const hash = input.indexOf('#');
|
|
209
141
|
if (hash < 0)
|
|
@@ -216,12 +148,6 @@ export function parseAccountSelector(input) {
|
|
|
216
148
|
throw new Error('Select an account after #.');
|
|
217
149
|
return { agent: agentRaw, name };
|
|
218
150
|
}
|
|
219
|
-
/**
|
|
220
|
-
* Refuse a bare name that native rows in several harnesses share. A
|
|
221
|
-
* harness-qualified selector (`agent` set) never hits this — uniqueness is
|
|
222
|
-
* per harness. Ids are unique so they never collide either. Shared by
|
|
223
|
-
* rename/remove/view so the message stays one string.
|
|
224
|
-
*/
|
|
225
151
|
export function assertUnambiguousNativeAccount(meta, name, agent) {
|
|
226
152
|
const matches = listNativeAccounts(meta).filter(account => (agent === undefined || account.agent === agent) && (account.id === name || account.name === name));
|
|
227
153
|
const harnesses = [...new Set(matches.map(account => account.agent))].sort();
|
|
@@ -230,10 +156,6 @@ export function assertUnambiguousNativeAccount(meta, name, agent) {
|
|
|
230
156
|
+ `Pick one with <harness>#${name}, e.g. ${harnesses[0]}#${name}.`);
|
|
231
157
|
}
|
|
232
158
|
}
|
|
233
|
-
/** Every row (central + this box's device store) for the identity that `name`
|
|
234
|
-
* (id or account name) resolves to. With `agent` set only that harness's rows
|
|
235
|
-
* are considered; without it, a name owned by rows in several harnesses is
|
|
236
|
-
* refused rather than resolved to whichever the store ordered first. */
|
|
237
159
|
function nativeRowsForNameOrId(meta, name, agent) {
|
|
238
160
|
assertUnambiguousNativeAccount(meta, name, agent);
|
|
239
161
|
const matches = listNativeAccounts(meta).filter(account => (agent === undefined || account.agent === agent) && (account.id === name || account.name === name));
|
|
@@ -242,23 +164,6 @@ function nativeRowsForNameOrId(meta, name, agent) {
|
|
|
242
164
|
return [];
|
|
243
165
|
return nativeIdentityRows(meta, found.agent, found.identityKey);
|
|
244
166
|
}
|
|
245
|
-
/**
|
|
246
|
-
* Native label names are unique per HARNESS, not globally (PHNX-3887).
|
|
247
|
-
*
|
|
248
|
-
* One human identity is commonly signed into several harnesses —
|
|
249
|
-
* `muqsitnawaz@icloud.com` is a claude login AND a codex login AND a grok login.
|
|
250
|
-
* A global namespace let whichever harness was labelled first squat the good
|
|
251
|
-
* name, forcing prefixed junk (`cxicloud`, `gkicloud`) on the rest. Nothing is
|
|
252
|
-
* actually ambiguous at the point of use: the selector is `<harness>#<label>`,
|
|
253
|
-
* and `findUnifiedAccount` already disambiguates via `preferAgent`.
|
|
254
|
-
*
|
|
255
|
-
* Pass `agent` to scope the check to that harness. Every native path has one
|
|
256
|
-
* in hand — connect/label from the caller, rename from the row being renamed —
|
|
257
|
-
* so the un-scoped form is only for provider accounts.
|
|
258
|
-
*
|
|
259
|
-
* Provider (non-native) accounts stay globally unique — they are selected by
|
|
260
|
-
* bare name via `--account`, with no harness to scope them by.
|
|
261
|
-
*/
|
|
262
167
|
function assertUniqueUnifiedName(name, meta, doc, exceptIds, agent) {
|
|
263
168
|
const needle = name.toLowerCase();
|
|
264
169
|
const nativeHits = listNativeAccounts(meta).filter(account => (agent === undefined || account.agent === agent)
|
|
@@ -268,25 +173,18 @@ function assertUniqueUnifiedName(name, meta, doc, exceptIds, agent) {
|
|
|
268
173
|
? `Account '${name}' already exists.`
|
|
269
174
|
: `Account '${name}' already exists for the ${agent} harness.`);
|
|
270
175
|
}
|
|
271
|
-
// Same laziness as findUnifiedAccount: a native row that already owns this
|
|
272
|
-
// name (even one we are mutating) means we never open the provider store.
|
|
273
176
|
if (nativeHits.length > 0)
|
|
274
177
|
return;
|
|
275
178
|
const provider = findAccount(name, doc ?? readAccountRegistry());
|
|
276
179
|
if (provider && !exceptIds?.has(provider.id))
|
|
277
180
|
throw new Error(`Account '${name}' already exists.`);
|
|
278
181
|
}
|
|
279
|
-
/**
|
|
280
|
-
* Validate a native account NAME (charset + per-harness uniqueness) WITHOUT a
|
|
281
|
-
* known identity — the pre-flight `agents accounts add` runs before it
|
|
282
|
-
* installs a home and drives a login, so a bad/colliding name fails before any
|
|
283
|
-
* side effect instead of orphaning a freshly-minted home (PHNX-3940).
|
|
284
|
-
*/
|
|
285
182
|
export function assertNativeAccountNameAvailable(name, agent) {
|
|
286
183
|
assertNativeLabel(name);
|
|
287
184
|
assertUniqueUnifiedName(name, readMeta(), undefined, undefined, agent);
|
|
288
185
|
}
|
|
289
186
|
export function addNativeAccount(name, agent, identityKey, identityLabel, scope) {
|
|
187
|
+
// Device-scoped identity belongs in the device document and must not propagate through central metadata.
|
|
290
188
|
assertNativeLabel(name);
|
|
291
189
|
const meta = readMeta();
|
|
292
190
|
assertUniqueUnifiedName(name, meta, undefined, undefined, agent);
|
|
@@ -295,9 +193,6 @@ export function addNativeAccount(name, agent, identityKey, identityLabel, scope)
|
|
|
295
193
|
throw new Error(`This ${agent} login is already named '${duplicate.name}'.`);
|
|
296
194
|
const account = { id: crypto.randomUUID(), name, kind: 'native', agent, identityKey, identityLabel, scope };
|
|
297
195
|
const entry = { id: account.id, name, agent, identityKey, identityLabel, scope };
|
|
298
|
-
// A native login's home follows its scope (PHNX-3315): a device-scoped
|
|
299
|
-
// identity lands in THIS box's device doc (its PII never touches the shared
|
|
300
|
-
// central agents.yaml); a version-scoped one stays in the fleet-shared store.
|
|
301
196
|
if (scope === 'device') {
|
|
302
197
|
updateMeta(current => ({
|
|
303
198
|
...current,
|
|
@@ -318,7 +213,6 @@ export function addNativeAccount(name, agent, identityKey, identityLabel, scope)
|
|
|
318
213
|
}
|
|
319
214
|
return account;
|
|
320
215
|
}
|
|
321
|
-
/** Create or replace the version-independent label for one native identity. */
|
|
322
216
|
export function labelNativeAccount(agent, identityKey, identityLabel, label, scope) {
|
|
323
217
|
const resolvedLabel = label ?? identityLabel;
|
|
324
218
|
if (!resolvedLabel)
|
|
@@ -329,10 +223,6 @@ export function labelNativeAccount(agent, identityKey, identityLabel, label, sco
|
|
|
329
223
|
assertUniqueUnifiedName(resolvedLabel, meta, undefined, new Set(matches.map(account => account.id)), agent);
|
|
330
224
|
if (matches.length === 0)
|
|
331
225
|
return addNativeAccount(resolvedLabel, agent, identityKey, identityLabel, scope);
|
|
332
|
-
// Sweep every row for this identity (PHNX-3206), routing the whole sweep to the
|
|
333
|
-
// store that owns them: all rows for one identityKey share a scope (same agent),
|
|
334
|
-
// so a device-scoped login lands in this box's device doc, a version-scoped one
|
|
335
|
-
// in central (PHNX-3315).
|
|
336
226
|
const rowScope = matches[0].scope;
|
|
337
227
|
updateMeta(current => {
|
|
338
228
|
if (rowScope === 'device') {
|
|
@@ -348,32 +238,17 @@ export function labelNativeAccount(agent, identityKey, identityLabel, label, sco
|
|
|
348
238
|
});
|
|
349
239
|
return { ...matches[0], name: resolvedLabel, identityLabel, scope: rowScope };
|
|
350
240
|
}
|
|
351
|
-
/**
|
|
352
|
-
* This box's recorded home LABEL for an account, or null.
|
|
353
|
-
* Reads the leftover device-scoped `homes` map so legacy `acct-*` installation
|
|
354
|
-
* labels still resolve (T5/T7); spawn-time HOME is {@link readSlots}[id].slotDir.
|
|
355
|
-
*/
|
|
356
241
|
export function nativeAccountHome(accountId, meta) {
|
|
357
242
|
return meta.deviceAccounts?.homes?.[accountId] ?? null;
|
|
358
243
|
}
|
|
359
|
-
/**
|
|
360
|
-
* Set the per-harness default account by NAME only when none is configured
|
|
361
|
-
* (PHNX-3940). Never overrides an existing choice — a first connect selecting a
|
|
362
|
-
* default is a convenience, not a takeover. Returns whether it set the default.
|
|
363
|
-
*
|
|
364
|
-
* The check-then-write is performed INSIDE the `updateMeta` callback so two
|
|
365
|
-
* concurrent callers (concurrent Promises or back-to-back calls on an async
|
|
366
|
-
* boundary) cannot both observe "no default" and then both set themselves. Only
|
|
367
|
-
* the first write wins; the second callback sees the first's write and returns
|
|
368
|
-
* the current state unchanged.
|
|
369
|
-
*/
|
|
370
244
|
export function setDefaultAccountIfAbsent(agent, name) {
|
|
245
|
+
// Compare-and-set preserves concurrent and legacy defaults.
|
|
371
246
|
let set = false;
|
|
372
247
|
updateMeta(current => {
|
|
373
248
|
if (current.accounts?.defaults?.[agent])
|
|
374
|
-
return current;
|
|
249
|
+
return current;
|
|
375
250
|
if (current.agents?.[agent] || current.isolatedAgents?.[agent])
|
|
376
|
-
return current;
|
|
251
|
+
return current;
|
|
377
252
|
set = true;
|
|
378
253
|
return {
|
|
379
254
|
...current,
|
|
@@ -384,16 +259,9 @@ export function setDefaultAccountIfAbsent(agent, name) {
|
|
|
384
259
|
}
|
|
385
260
|
export function bindAccount(nameOrId, target, preferAgent) {
|
|
386
261
|
const meta = readMeta();
|
|
387
|
-
// Scope to the harness being bound to: a bare identity selector matches every
|
|
388
|
-
// harness it is signed into, so without this the binding could persist against
|
|
389
|
-
// a different harness's row than the caller validated (the attach command
|
|
390
|
-
// resolves `targetAgent` and passes it here).
|
|
391
262
|
const account = findUnifiedAccount(nameOrId, meta, undefined, preferAgent);
|
|
392
263
|
if (!account)
|
|
393
264
|
throw new Error(`Unknown account '${nameOrId}'.`);
|
|
394
|
-
// A binding follows its account: one that targets a device-scoped native login
|
|
395
|
-
// is itself machine-local and lands in this box's device doc (PHNX-3315);
|
|
396
|
-
// every other binding stays fleet-shared in central.
|
|
397
265
|
if (account.kind === 'native' && account.scope === 'device') {
|
|
398
266
|
updateMeta(current => ({
|
|
399
267
|
...current,
|
|
@@ -410,8 +278,6 @@ export function bindAccount(nameOrId, target, preferAgent) {
|
|
|
410
278
|
}
|
|
411
279
|
export function unbindAccount(nameOrId, target, preferAgent) {
|
|
412
280
|
const meta = readMeta();
|
|
413
|
-
// Same scoping as bindAccount: detach the row on the harness the caller means,
|
|
414
|
-
// not whichever the store happened to order first for a colliding identity.
|
|
415
281
|
const account = findUnifiedAccount(nameOrId, meta, undefined, preferAgent);
|
|
416
282
|
if (!account)
|
|
417
283
|
throw new Error(`Unknown account '${nameOrId}'.`);
|
|
@@ -434,19 +300,14 @@ export function unbindAccount(nameOrId, target, preferAgent) {
|
|
|
434
300
|
return next;
|
|
435
301
|
});
|
|
436
302
|
}
|
|
437
|
-
/** Every target bound to `accountId`: this box's device-doc bindings merged over
|
|
438
|
-
* the fleet-shared central bindings (PHNX-3315). */
|
|
439
303
|
export function accountBindings(accountId, meta) {
|
|
440
304
|
const merged = { ...meta.accounts?.bindings, ...meta.deviceAccounts?.bindings };
|
|
441
305
|
return Object.entries(merged).filter(([, id]) => id === accountId).map(([target]) => target).sort();
|
|
442
306
|
}
|
|
443
|
-
/** Explicit selection wins over a configured per-harness default. */
|
|
444
307
|
export function resolveAccountSelection(explicit, agent, meta, opts = {}) {
|
|
308
|
+
// Device bindings override central bindings; missing explicit/bound accounts fail loud, while a stale default returns to balanced rotation.
|
|
445
309
|
if (explicit)
|
|
446
310
|
return { id: explicit, source: 'explicit' };
|
|
447
|
-
// This box's device-doc bindings win over the fleet-shared central bindings
|
|
448
|
-
// (PHNX-3315), so a per-box account attachment resolves without touching the
|
|
449
|
-
// shared file. Defaults are genuinely fleet-shared and stay central.
|
|
450
311
|
const bindings = { ...meta.accounts?.bindings, ...meta.deviceAccounts?.bindings };
|
|
451
312
|
const bound = opts.target ? bindings[opts.target] : undefined;
|
|
452
313
|
if (bound)
|
|
@@ -498,34 +359,23 @@ export function setAccountSecret(name, secret, base = getUserAgentsDir()) {
|
|
|
498
359
|
getAccountProvider(account.provider).validate(account.auth, secret);
|
|
499
360
|
const record = { id: account.id, name: account.name, provider: account.provider, auth: account.auth, baseUrl: account.baseUrl };
|
|
500
361
|
const { bundle, items } = buildAccountBundle(record, secret);
|
|
501
|
-
bundle.created_at = readBundleSync(account.name).created_at;
|
|
362
|
+
bundle.created_at = readBundleSync(account.name).created_at;
|
|
502
363
|
writeBundleWithItemsSync(bundle, items);
|
|
503
364
|
}
|
|
504
|
-
/**
|
|
505
|
-
* `oldSelector` is a bare name, a row id, or `<harness>#<name>`. A native row
|
|
506
|
-
* carries its harness, so the new name only has to be free within THAT harness
|
|
507
|
-
* (PHNX-3887 / PHNX-3988): renaming codex's `cxicloud` to `icloud` is fine
|
|
508
|
-
* while claude's `icloud` stays untouched. Provider accounts have no harness
|
|
509
|
-
* and stay globally unique.
|
|
510
|
-
*/
|
|
511
365
|
export function renameAccount(oldSelector, newName, base = getUserAgentsDir()) {
|
|
512
366
|
assertName(newName);
|
|
513
367
|
const meta = readMeta();
|
|
514
368
|
const selector = parseAccountSelector(oldSelector);
|
|
515
369
|
const rows = nativeRowsForNameOrId(meta, selector.name, selector.agent);
|
|
516
370
|
if (rows.length) {
|
|
371
|
+
// Sweep every identity row in its owning store; bare-name defaults rewrite only within this harness, while ids are global.
|
|
517
372
|
assertUniqueUnifiedName(newName, meta, undefined, new Set(rows.map(account => account.id)), rows[0].agent);
|
|
518
|
-
// Sweep every row for the identity (PHNX-3206) in its owning store (PHNX-3315)
|
|
519
|
-
// and any per-harness default that points to the old name or row ids.
|
|
520
373
|
const rowScope = rows[0].scope;
|
|
521
374
|
const renamedAgent = rows[0].agent;
|
|
522
375
|
const renamedIds = new Set(rows.map(row => row.id));
|
|
523
376
|
updateMeta(current => {
|
|
524
377
|
const defaults = { ...current.accounts?.defaults };
|
|
525
378
|
for (const [agent, value] of Object.entries(defaults)) {
|
|
526
|
-
// Ids are unique so an id match may rewrite any harness's default. A
|
|
527
|
-
// bare-name match must only rewrite THIS harness — two harnesses may
|
|
528
|
-
// legitimately share the same native name (PHNX-3988).
|
|
529
379
|
if (renamedIds.has(value) || (agent === renamedAgent && value === selector.name))
|
|
530
380
|
defaults[agent] = newName;
|
|
531
381
|
}
|
|
@@ -562,10 +412,9 @@ export function renameAccount(oldSelector, newName, base = getUserAgentsDir()) {
|
|
|
562
412
|
}
|
|
563
413
|
return { ...current, accounts: { ...current.accounts, defaults } };
|
|
564
414
|
});
|
|
565
|
-
renameBundleSync(account.name, newName);
|
|
415
|
+
renameBundleSync(account.name, newName);
|
|
566
416
|
renameProfileConsumers(account.name, newName, base);
|
|
567
417
|
}
|
|
568
|
-
/** `selector` is a bare name, a row id, or `<harness>#<name>` (see {@link renameAccount}). */
|
|
569
418
|
export function removeAccount(selector, base = getUserAgentsDir()) {
|
|
570
419
|
const meta = readMeta();
|
|
571
420
|
const parsed = parseAccountSelector(selector);
|
|
@@ -575,10 +424,8 @@ export function removeAccount(selector, base = getUserAgentsDir()) {
|
|
|
575
424
|
if (bindings.length)
|
|
576
425
|
throw new Error(`Account '${rows[0].name}' is attached to: ${bindings.join(', ')}. Detach it before removing it.`);
|
|
577
426
|
const ids = new Set(rows.map(row => row.id));
|
|
578
|
-
// Sweep every row for the identity (PHNX-3206) from its owning store (PHNX-3315).
|
|
579
427
|
const rowScope = rows[0].scope;
|
|
580
428
|
updateMeta(current => {
|
|
581
|
-
// Drop this box's connect-home and slot records for the removed account (PHNX-3940).
|
|
582
429
|
const homes = { ...current.deviceAccounts?.homes };
|
|
583
430
|
const slots = { ...current.deviceAccounts?.slots };
|
|
584
431
|
for (const id of ids) {
|
|
@@ -639,11 +486,6 @@ export function resolveCredentialAccount(name, host, expectedProvider, base = ge
|
|
|
639
486
|
if (!hasKeychainTokenSync(account.secretRef))
|
|
640
487
|
throw new Error(`Credential for account '${account.name}' is missing on this device. Add it with 'agents accounts set-key ${account.name}'.`);
|
|
641
488
|
const secretVar = secretVarFor(account.auth);
|
|
642
|
-
// Account bundles are policy `never`, so their value items carry no biometry
|
|
643
|
-
// ACL. Resolve through the bundle path that verifies that policy and attests
|
|
644
|
-
// `silentNoAcl` to the headless keychain guard. Calling getKeychainTokenSync()
|
|
645
|
-
// directly makes a headless --account launch reject the prompt-free item as
|
|
646
|
-
// if it required Touch ID before the helper ever reads it (PHNX-2939).
|
|
647
489
|
const secret = readAndResolveBundleEnvSync(account.name, {
|
|
648
490
|
keys: [secretVar],
|
|
649
491
|
keyMode: 'storage',
|
|
@@ -665,11 +507,6 @@ export function resolveCredentialAccount(name, host, expectedProvider, base = ge
|
|
|
665
507
|
env: { ...connectionEnv, [envVar]: secret },
|
|
666
508
|
};
|
|
667
509
|
}
|
|
668
|
-
/**
|
|
669
|
-
* Sync fallback: scan installed version homes to discover a native identity
|
|
670
|
-
* that matches the given email, for accounts that predate the registration
|
|
671
|
-
* system (empty `accounts.native`). Returns a synthetic SpawnAccount or null.
|
|
672
|
-
*/
|
|
673
510
|
function discoverUnregisteredNativeAccount(email, agent) {
|
|
674
511
|
if (agent !== 'claude')
|
|
675
512
|
return null;
|
|
@@ -710,24 +547,15 @@ function discoverUnregisteredNativeAccount(email, agent) {
|
|
|
710
547
|
* fails loudly (EXEC-ACCOUNT-4). Returns null when nothing is selected.
|
|
711
548
|
*/
|
|
712
549
|
export function resolveSpawnAccount(explicit, agent, version, meta, opts = {}) {
|
|
713
|
-
// The binding lookup key. A custom harness passes its own profile/harness name
|
|
714
|
-
// (a run of `deepseek` must find a binding on `deepseek`, not `claude@x`); a
|
|
715
|
-
// native/global run keys on the exact `agent@version` installation.
|
|
716
550
|
const target = opts.target ?? (version ? `${agent}@${version}` : agent);
|
|
717
551
|
const selection = resolveAccountSelection(explicit, agent, meta, { useDefault: opts.useDefault, target });
|
|
718
552
|
if (!selection)
|
|
719
553
|
return null;
|
|
720
|
-
// Scope the lookup to the harness being launched: a bare identity selector
|
|
721
|
-
// (`claude#muqsitnawaz@gmail.com`) matches every harness that identity is signed
|
|
722
|
-
// into, and only this one can authenticate the spawn.
|
|
723
554
|
let unified = findUnifiedAccount(selection.id, meta, undefined, agent);
|
|
724
555
|
if (!unified && selection.source === 'explicit' && selection.id.includes('@')) {
|
|
725
556
|
unified = discoverUnregisteredNativeAccount(selection.id, agent);
|
|
726
557
|
}
|
|
727
558
|
if (!unified) {
|
|
728
|
-
// A stale per-harness default is a preference, not a hard requirement: the
|
|
729
|
-
// machine stays runnable by falling back to balanced rotation. Bindings and
|
|
730
|
-
// explicit --account are intentional, so they still fail loud.
|
|
731
559
|
if (selection.source === 'default') {
|
|
732
560
|
process.stderr.write(chalk.yellow(`[agents] default account '${selection.id}' for ${agent} no longer exists on this machine; falling back to balanced selection. Clear the stale default with: agents accounts clear-default ${agent}\n`));
|
|
733
561
|
return null;
|
|
@@ -741,9 +569,6 @@ export function resolveSpawnAccount(explicit, agent, version, meta, opts = {}) {
|
|
|
741
569
|
if (unified.agent !== agent) {
|
|
742
570
|
throw new Error(`Account '${unified.name}' is a ${unified.agent} login and cannot authenticate the ${agent} harness.`);
|
|
743
571
|
}
|
|
744
|
-
// A provider-backed custom harness still injects its provider auth env, so a
|
|
745
|
-
// native identity claim over it is incoherent — reject before spawn even when
|
|
746
|
-
// the account is chosen explicitly with --account (which bypasses `attach`).
|
|
747
572
|
if (opts.provider) {
|
|
748
573
|
throw new Error(`Account '${unified.name}' is a native ${unified.agent} login and cannot run under a provider-backed harness (${opts.provider}); the harness's ${opts.provider} credentials would still be injected. Use a matching provider account.`);
|
|
749
574
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { SecretsBundle } from './secrets-types.js';
|
|
2
2
|
import type { AccountAuthKind } from './account-provider-registry.js';
|
|
3
|
-
/** Canonical bundle variable names for a provider-account bundle. */
|
|
4
3
|
export declare const ACCOUNT_VARS: {
|
|
5
4
|
readonly id: "ACCOUNT_ID";
|
|
6
5
|
readonly provider: "PROVIDER";
|
|
@@ -9,12 +8,7 @@ export declare const ACCOUNT_VARS: {
|
|
|
9
8
|
readonly apiKey: "API_KEY";
|
|
10
9
|
readonly token: "TOKEN";
|
|
11
10
|
};
|
|
12
|
-
/**
|
|
13
|
-
* Account bundles are stored with the `never` prompt policy: no biometry ACL,
|
|
14
|
-
* so reads are silent and the bundle syncs across the fleet without Touch ID.
|
|
15
|
-
*/
|
|
16
11
|
export declare const ACCOUNT_POLICY: "never";
|
|
17
|
-
/** The parsed identity of an account, independent of where its bytes live. */
|
|
18
12
|
export interface AccountSchemaRecord {
|
|
19
13
|
id: string;
|
|
20
14
|
name: string;
|
|
@@ -22,23 +16,10 @@ export interface AccountSchemaRecord {
|
|
|
22
16
|
auth: AccountAuthKind;
|
|
23
17
|
baseUrl?: string;
|
|
24
18
|
}
|
|
25
|
-
/** The single secret var name that carries the credential for an auth kind. */
|
|
26
19
|
export declare function secretVarFor(auth: AccountAuthKind): 'API_KEY' | 'TOKEN';
|
|
27
|
-
/** The keychain item that stores an account bundle's secret value. */
|
|
28
20
|
export declare function accountSecretItem(name: string, auth: AccountAuthKind): string;
|
|
29
|
-
/**
|
|
30
|
-
* Build the canonical account bundle plus the keychain item map holding its
|
|
31
|
-
* secret. The identity vars are literals; the secret var is a `keychain:` ref
|
|
32
|
-
* whose value lives in the returned item map, ready for `writeBundleWithItems`.
|
|
33
|
-
*/
|
|
34
21
|
export declare function buildAccountBundle(record: AccountSchemaRecord, secret: string): {
|
|
35
22
|
bundle: SecretsBundle;
|
|
36
23
|
items: Map<string, string>;
|
|
37
24
|
};
|
|
38
|
-
/**
|
|
39
|
-
* Parse an account record from a bundle, or null when the bundle is not an
|
|
40
|
-
* account bundle (missing ACCOUNT_ID / PROVIDER / a known AUTH_TYPE). The
|
|
41
|
-
* catalog uses the null return to keep ordinary secrets bundles out of the
|
|
42
|
-
* account list.
|
|
43
|
-
*/
|
|
44
25
|
export declare function parseAccountBundle(bundle: SecretsBundle): AccountSchemaRecord | null;
|
|
@@ -1,27 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Canonical on-disk shape of a provider credential account.
|
|
3
|
-
*
|
|
4
|
-
* RUSH-2470 makes a `agents secrets` bundle the single source of truth for a
|
|
5
|
-
* credential account: one account IS one bundle. The bundle's label is the
|
|
6
|
-
* account name; its variables carry the account's identity plus its secret:
|
|
7
|
-
*
|
|
8
|
-
* ACCOUNT_ID the stable UUID (a literal, survives rename)
|
|
9
|
-
* PROVIDER the provider id (a literal, e.g. 'openrouter')
|
|
10
|
-
* AUTH_TYPE 'api-key' | 'setup-token' | 'bearer-token' (a literal)
|
|
11
|
-
* BASE_URL optional endpoint override (a literal)
|
|
12
|
-
* API_KEY the secret, for AUTH_TYPE 'api-key' (a keychain ref)
|
|
13
|
-
* TOKEN the secret, for setup-token/bearer-token (a keychain ref)
|
|
14
|
-
*
|
|
15
|
-
* The identity vars are non-secret literals stored inline in the bundle
|
|
16
|
-
* metadata; only API_KEY / TOKEN reference a keychain-backed value. Account
|
|
17
|
-
* bundles use the `never` prompt policy so their values carry no biometry ACL
|
|
18
|
-
* and sync (and read headlessly) with no Touch ID — the whole point of the
|
|
19
|
-
* change. This module is pure: it builds a bundle from a record and parses a
|
|
20
|
-
* record back out, with no I/O. The registry ([[account-registry]]) owns
|
|
21
|
-
* reads and writes; the catalog ([[account-catalog]]) owns discovery.
|
|
22
|
-
*/
|
|
23
1
|
import { parseBundleValue, secretsKeychainItem } from './secrets-client.js';
|
|
24
|
-
/** Canonical bundle variable names for a provider-account bundle. */
|
|
25
2
|
export const ACCOUNT_VARS = {
|
|
26
3
|
id: 'ACCOUNT_ID',
|
|
27
4
|
provider: 'PROVIDER',
|
|
@@ -30,20 +7,13 @@ export const ACCOUNT_VARS = {
|
|
|
30
7
|
apiKey: 'API_KEY',
|
|
31
8
|
token: 'TOKEN',
|
|
32
9
|
};
|
|
33
|
-
/**
|
|
34
|
-
* Account bundles are stored with the `never` prompt policy: no biometry ACL,
|
|
35
|
-
* so reads are silent and the bundle syncs across the fleet without Touch ID.
|
|
36
|
-
*/
|
|
37
10
|
export const ACCOUNT_POLICY = 'never';
|
|
38
|
-
/** The single secret var name that carries the credential for an auth kind. */
|
|
39
11
|
export function secretVarFor(auth) {
|
|
40
12
|
return auth === 'api-key' ? ACCOUNT_VARS.apiKey : ACCOUNT_VARS.token;
|
|
41
13
|
}
|
|
42
|
-
/** The keychain item that stores an account bundle's secret value. */
|
|
43
14
|
export function accountSecretItem(name, auth) {
|
|
44
15
|
return secretsKeychainItem(name, secretVarFor(auth));
|
|
45
16
|
}
|
|
46
|
-
/** Read a bundle var as a literal string, or undefined if it is a secret ref. */
|
|
47
17
|
function literalOf(raw) {
|
|
48
18
|
if (raw === undefined)
|
|
49
19
|
return undefined;
|
|
@@ -53,11 +23,6 @@ function literalOf(raw) {
|
|
|
53
23
|
function isAccountAuthKind(value) {
|
|
54
24
|
return value === 'api-key' || value === 'setup-token' || value === 'bearer-token';
|
|
55
25
|
}
|
|
56
|
-
/**
|
|
57
|
-
* Build the canonical account bundle plus the keychain item map holding its
|
|
58
|
-
* secret. The identity vars are literals; the secret var is a `keychain:` ref
|
|
59
|
-
* whose value lives in the returned item map, ready for `writeBundleWithItems`.
|
|
60
|
-
*/
|
|
61
26
|
export function buildAccountBundle(record, secret) {
|
|
62
27
|
const secretVar = secretVarFor(record.auth);
|
|
63
28
|
const vars = {
|
|
@@ -66,20 +31,12 @@ export function buildAccountBundle(record, secret) {
|
|
|
66
31
|
[ACCOUNT_VARS.authType]: record.auth,
|
|
67
32
|
[secretVar]: `keychain:${secretVar}`,
|
|
68
33
|
};
|
|
69
|
-
// Wrap BASE_URL as an escaped literal so a URL that happens to start with a
|
|
70
|
-
// ref prefix (e.g. 'env://…') is never misread as a secret reference.
|
|
71
34
|
if (record.baseUrl)
|
|
72
35
|
vars[ACCOUNT_VARS.baseUrl] = { value: record.baseUrl };
|
|
73
36
|
const bundle = { name: record.name, policy: ACCOUNT_POLICY, vars };
|
|
74
37
|
const items = new Map([[secretsKeychainItem(record.name, secretVar), secret]]);
|
|
75
38
|
return { bundle, items };
|
|
76
39
|
}
|
|
77
|
-
/**
|
|
78
|
-
* Parse an account record from a bundle, or null when the bundle is not an
|
|
79
|
-
* account bundle (missing ACCOUNT_ID / PROVIDER / a known AUTH_TYPE). The
|
|
80
|
-
* catalog uses the null return to keep ordinary secrets bundles out of the
|
|
81
|
-
* account list.
|
|
82
|
-
*/
|
|
83
40
|
export function parseAccountBundle(bundle) {
|
|
84
41
|
const id = literalOf(bundle.vars[ACCOUNT_VARS.id]);
|
|
85
42
|
const provider = literalOf(bundle.vars[ACCOUNT_VARS.provider]);
|
|
@@ -1,29 +1,18 @@
|
|
|
1
1
|
import type { AgentId, Meta } from '../types.js';
|
|
2
2
|
import { type RotateCandidate } from './rotate.js';
|
|
3
3
|
type ResolvedLaunchAccountKind = 'native' | 'provider' | 'legacy-native';
|
|
4
|
-
/** Safe account identity that may be passed between launch consumers. */
|
|
5
4
|
interface ResolvedLaunchAccount {
|
|
6
5
|
kind: ResolvedLaunchAccountKind;
|
|
7
|
-
/** Stable registry id, or the durable identity key for an unmigrated login. */
|
|
8
6
|
id: string;
|
|
9
|
-
/** User-facing account name, falling back to the durable identity label. */
|
|
10
7
|
name: string;
|
|
11
|
-
/** Selector another device may resolve against its own registry. */
|
|
12
8
|
selector: string;
|
|
13
|
-
/** Stable anti-collision/failover key; never derived from the binary label. */
|
|
14
9
|
key: string;
|
|
15
10
|
}
|
|
16
|
-
/**
|
|
17
|
-
* One fully-resolved spawn attempt. `env` may contain credential material and
|
|
18
|
-
* `execHome` is a device-local path, so this type is confined to the local exec
|
|
19
|
-
* boundary. Events and remote callers use {@link ResolvedLaunchAccount} only.
|
|
20
|
-
*/
|
|
21
11
|
export interface ResolvedLocalAccountLaunch {
|
|
22
12
|
agent: AgentId;
|
|
23
13
|
executableVersion: string;
|
|
24
14
|
account: ResolvedLaunchAccount | null;
|
|
25
15
|
execHome?: string;
|
|
26
|
-
/** Compatibility label for an explicitly recorded, unmigrated home. */
|
|
27
16
|
configVersion?: string;
|
|
28
17
|
env: Record<string, string>;
|
|
29
18
|
signedIn: boolean | null;
|
|
@@ -31,13 +20,9 @@ export interface ResolvedLocalAccountLaunch {
|
|
|
31
20
|
}
|
|
32
21
|
interface ResolveLocalAccountLaunchOptions {
|
|
33
22
|
agent: AgentId;
|
|
34
|
-
/** Selects the executable only. It never chooses account state. */
|
|
35
23
|
executableVersion: string;
|
|
36
|
-
/** Exact account candidate selected by strategy/picker/readiness. */
|
|
37
24
|
candidate?: RotateCandidate;
|
|
38
|
-
/** Explicit account name/id (`--account`, `#name`, or a consumer intent). */
|
|
39
25
|
selector?: string;
|
|
40
|
-
/** Resolve the harness default when no explicit selector/candidate exists. */
|
|
41
26
|
useDefault?: boolean;
|
|
42
27
|
provider?: string;
|
|
43
28
|
target?: string;
|
|
@@ -48,10 +48,8 @@ export async function resolveLocalAccountLaunch(options) {
|
|
|
48
48
|
const meta = options.meta ?? readMeta();
|
|
49
49
|
const selected = options.candidate;
|
|
50
50
|
const selector = options.selector ?? (selected ? candidateSelector(selected) : undefined);
|
|
51
|
-
// Compatibility for a candidate already discovered in an unmigrated home.
|
|
52
|
-
// The candidate is the identity decision; the label only locates that exact
|
|
53
|
-
// local config home and never participates in account comparison.
|
|
54
51
|
if (selected && !selector) {
|
|
52
|
+
// Legacy labels locate an exact local home; they are not rediscovered identities.
|
|
55
53
|
const execHome = getVersionHomePath(options.agent, selected.version);
|
|
56
54
|
if (!fs.existsSync(execHome)) {
|
|
57
55
|
throw new Error(`${selected.accountLabel || options.agent} has no local account home at ${execHome}.`);
|
|
@@ -1,36 +1,10 @@
|
|
|
1
1
|
import type { AgentId } from '../types.js';
|
|
2
2
|
import { type RotateCandidate } from './rotate.js';
|
|
3
3
|
import { type RegistryAccountRecord } from './account-pool.js';
|
|
4
|
-
/** Inputs to {@link foldRegistryCandidates} — injectable so the fold is unit-tested. */
|
|
5
4
|
export interface RunCandidateInputs {
|
|
6
5
|
native: RotateCandidate[];
|
|
7
6
|
records: RegistryAccountRecord[];
|
|
8
7
|
runVersion: string | undefined;
|
|
9
8
|
}
|
|
10
|
-
/**
|
|
11
|
-
* PURE: fold provider-account candidates into the native version-home list.
|
|
12
|
-
*
|
|
13
|
-
* A registry account runs in `runVersion` (the agent's default installed home);
|
|
14
|
-
* the token/key overrides that home's own login at exec, so any home works. It
|
|
15
|
-
* carries `providerAccount` so the run path routes it through the existing
|
|
16
|
-
* `--account` injection (`resolveSpawnAccount` → `accountEnv`). An account already
|
|
17
|
-
* covered by a native login is skipped by accountKey. With no installed version
|
|
18
|
-
* there is nowhere to execute a registry account, so the native list passes
|
|
19
|
-
* through unchanged.
|
|
20
|
-
*/
|
|
21
9
|
export declare function foldRegistryCandidates(agent: AgentId, inputs: RunCandidateInputs): RotateCandidate[];
|
|
22
|
-
/**
|
|
23
|
-
* Candidate list for the `agents run` strategy pick, account-centric: the usual
|
|
24
|
-
* native version-home candidates PLUS one candidate per provider account whose
|
|
25
|
-
* provider can authenticate `agent` and whose credential is present locally
|
|
26
|
-
* (RUSH-3182). This is what makes a setup-token / API-key account balance-eligible.
|
|
27
|
-
*
|
|
28
|
-
* Passed as the `collect` argument to {@link resolveRunVersion} on the RUN path,
|
|
29
|
-
* and used by session recovery (`resolveSessionRecovery`, PHNX-3626) so an
|
|
30
|
-
* origin-account limit can rotate to a healthy provider account and stay NATIVE.
|
|
31
|
-
* The other consumers of {@link collectRunCandidates} (watchdog, teams
|
|
32
|
-
* placement) keep calling it directly and are unaffected. The existing
|
|
33
|
-
* {@link pickBalancedCandidate} selects over the combined list, so the
|
|
34
|
-
* revoked / rate-limit / exhausted logic is unchanged.
|
|
35
|
-
*/
|
|
36
10
|
export declare function collectRunCandidatesForRun(agent: AgentId): Promise<RotateCandidate[]>;
|