@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
|
@@ -6,27 +6,12 @@ import { type FleetSharedDeviceState, type SharedAuthStatus } from './fleet-shar
|
|
|
6
6
|
import { selfConfiguredDeviceRole } from './device-config.js';
|
|
7
7
|
import { AUTH_STORE_ALIAS, AUTH_BUNDLE_BACKEND, RESERVED_BUNDLE_NAMES, isReservedBundleName, ReservedBundleWrongBackendError, assertReservedAuthBackend, isReservedBundleBackendError, RESERVED_STORES, reservedStoreName, isReservedStoreName, assertStorableCredentialKind, inspectReservedAuthBundle, type StorableCredentialKind } from './reserved-stores.js';
|
|
8
8
|
export { AUTH_STORE_ALIAS, AUTH_BUNDLE_BACKEND, RESERVED_BUNDLE_NAMES, isReservedBundleName, ReservedBundleWrongBackendError, assertReservedAuthBackend, isReservedBundleBackendError, RESERVED_STORES, reservedStoreName, isReservedStoreName, assertStorableCredentialKind, inspectReservedAuthBundle, type StorableCredentialKind, };
|
|
9
|
-
/**
|
|
10
|
-
* `SecretsContext.allowedBundles` for the active resource profile, or
|
|
11
|
-
* `undefined` when no profile is active (full trust — the client's default).
|
|
12
|
-
* `allNames` is the caller's already-fetched full bundle listing (e.g. from
|
|
13
|
-
* `listBundlesSync()`), so this stays a pure filter with no extra round trip.
|
|
14
|
-
*/
|
|
15
9
|
export declare function resolveAllowedBundlesForActiveProfile(allNames: string[]): string[] | undefined;
|
|
16
|
-
/**
|
|
17
|
-
* The `SecretsContext` a run should pass to every bundle resolution it makes:
|
|
18
|
-
* the run's harness as the opaque `scope`, plus `allowedBundles` computed from
|
|
19
|
-
* a fresh full bundle listing when a resource profile is active (a stale
|
|
20
|
-
* listing could exclude a bundle created after the profile was set). No
|
|
21
|
-
* profile active means full trust and no extra round trip.
|
|
22
|
-
*/
|
|
23
10
|
export declare function resolveSecretsContextForRun(scope?: string): Promise<SecretsContext | undefined>;
|
|
24
|
-
/** Parse a `--secrets` flag value into its bundle name and optional `@host`. */
|
|
25
11
|
export declare function splitBundleRef(ref: string): {
|
|
26
12
|
bundle: string;
|
|
27
13
|
host?: string;
|
|
28
14
|
};
|
|
29
|
-
/** A remote (bundle@host) reference does not yet support key-subset or expiry overrides. */
|
|
30
15
|
export declare function assertRemoteBundleFlagsUnsupported(bundleName: string, host: string, opts: {
|
|
31
16
|
keys?: string[];
|
|
32
17
|
allowExpired?: boolean;
|
|
@@ -76,15 +61,6 @@ interface AuthSyncDeps {
|
|
|
76
61
|
push?: (bundle: string, host: string) => Promise<PushBundleResult>;
|
|
77
62
|
sshTarget?: (device: DeviceProfile) => string;
|
|
78
63
|
}
|
|
79
|
-
/**
|
|
80
|
-
* The one device that pushes credentials this tick. A ready HEADED device
|
|
81
|
-
* (`personal`/`desktop`) wins over any ready worker: the headed box is where
|
|
82
|
-
* tokens are minted (invariant 7), so it is the copy of record; a worker holds
|
|
83
|
-
* only what was once pushed to it. Name order breaks ties so every box elects
|
|
84
|
-
* the same publisher from the same shared verdicts. Before this rule the sort
|
|
85
|
-
* was by name alone, which elected `mac-mini` (a worker with a 6-day-old copy)
|
|
86
|
-
* over `zion`, and zion then skipped every peer as a non-publisher.
|
|
87
|
-
*/
|
|
88
64
|
export declare function electPublisher(ready: readonly string[], roleOf: (name: string) => ReturnType<typeof selfConfiguredDeviceRole>): string | null;
|
|
89
65
|
interface PublishAuthVerdictOptions {
|
|
90
66
|
inspectLocal?: () => {
|
|
@@ -100,74 +76,24 @@ interface PublishAuthVerdictResult {
|
|
|
100
76
|
changed: boolean;
|
|
101
77
|
error: string | null;
|
|
102
78
|
}
|
|
103
|
-
/** Publish only safe readiness metadata; useful immediately before a repo push. */
|
|
104
79
|
export declare function publishReservedAuthVerdict(options?: PublishAuthVerdictOptions): Promise<PublishAuthVerdictResult>;
|
|
105
|
-
/**
|
|
106
|
-
* Publish local readiness, elect one ready source, then asynchronously provision
|
|
107
|
-
* only peers whose shared verdict says the bundle is missing.
|
|
108
|
-
*/
|
|
109
80
|
export declare function syncReservedAuthBundle(deps?: AuthSyncDeps): Promise<AuthSyncResult>;
|
|
110
|
-
/**
|
|
111
|
-
* Skip reason for a peer that has never sent a daemon-state reply (no
|
|
112
|
-
* `devices/<peer>/daemon-state.json`). auth-sync logs these at INFO — a
|
|
113
|
-
* brand-new or never-dialed worker legitimately has no reply on an early tick,
|
|
114
|
-
* so it is informational, not a warning. Stable so the service classifies the
|
|
115
|
-
* skip without matching a substring.
|
|
116
|
-
*/
|
|
117
81
|
export declare const SKIP_REASON_NO_PEER_REPLY = "no daemon-state reply from this peer yet";
|
|
118
|
-
/**
|
|
119
|
-
* Skip reason for a peer whose reply exists but carries no `accounts.rows` field
|
|
120
|
-
* at all (an older CLI that does not publish per-account verdicts, or a partial
|
|
121
|
-
* state written before the account-state daemon ran). Without those rows there is
|
|
122
|
-
* no first-hand knowledge of what the peer holds, so the plan FAILS CLOSED and
|
|
123
|
-
* skips rather than pushing every key blindly. auth-sync logs it at INFO — it is
|
|
124
|
-
* transient during a rolling upgrade. An EMPTY `accounts.rows` array (a peer with
|
|
125
|
-
* no registered account) is NOT this case: it is a legitimate "holds nothing",
|
|
126
|
-
* and its keys are (correctly) pushed to provision it.
|
|
127
|
-
*/
|
|
128
82
|
export declare const SKIP_REASON_NO_ACCOUNT_ROWS = "daemon-state reply carries no account rows (fail closed)";
|
|
129
|
-
/** One account's durable worker credential, resolved to (bundle, key). */
|
|
130
83
|
export interface ReservedSyncAccount {
|
|
131
84
|
accountId: string;
|
|
132
85
|
harness: AgentId;
|
|
133
|
-
/** Reserved store `__<harness>__`, or the legacy `auth` alias for a pre-T1 claude row. */
|
|
134
86
|
bundle: string;
|
|
135
|
-
/** Storage key `<ENV>_<accountId>` (or the legacy email-keyed claude key). */
|
|
136
87
|
key: string;
|
|
137
|
-
/**
|
|
138
|
-
* The credential's rotation fingerprint: `workerCredential.mintedAt` for a T1
|
|
139
|
-
* row, `'legacy'` for a pre-T1 claude row. A re-mint (`accounts login`) bumps
|
|
140
|
-
* `mintedAt`, so this changes even though the OLD token still authenticates —
|
|
141
|
-
* which is why presence is gated on BOTH the peer's verdict AND a delivered-
|
|
142
|
-
* fingerprint match (see {@link peerPresentKeys}).
|
|
143
|
-
*/
|
|
144
88
|
fingerprint: string;
|
|
145
89
|
}
|
|
146
|
-
/** A peer as the plan sees it: its role, reachability, and the keys it is KNOWN to hold. */
|
|
147
90
|
export interface ReservedSyncPeer {
|
|
148
91
|
name: string;
|
|
149
|
-
/** `personal`/`desktop` -- receives the account row, never a durable key. */
|
|
150
92
|
headed: boolean;
|
|
151
93
|
reachable: boolean;
|
|
152
94
|
pinned: boolean;
|
|
153
|
-
/**
|
|
154
|
-
* Whether this peer has ever sent a daemon-state reply on this box
|
|
155
|
-
* (`devices/<peer>/daemon-state.json` exists). Without one there is no
|
|
156
|
-
* first-hand knowledge of what it holds, so the peer is skipped this tick.
|
|
157
|
-
*/
|
|
158
95
|
hasReply: boolean;
|
|
159
|
-
/**
|
|
160
|
-
* Whether the peer's reply actually carried an `accounts.rows` array (present,
|
|
161
|
-
* even if empty). A reply file with no such field (older CLI, partial state)
|
|
162
|
-
* has no first-hand inventory, so the plan skips it fail-closed rather than
|
|
163
|
-
* pushing blindly. See {@link SKIP_REASON_NO_ACCOUNT_ROWS}.
|
|
164
|
-
*/
|
|
165
96
|
hasAccountRows: boolean;
|
|
166
|
-
/**
|
|
167
|
-
* bundle -> keys the peer is KNOWN to hold: its own reply verdict says present
|
|
168
|
-
* AND the fingerprint we last delivered to it matches the current one. Absent ⇒
|
|
169
|
-
* none known.
|
|
170
|
-
*/
|
|
171
97
|
presentKeys: Record<string, ReadonlySet<string>>;
|
|
172
98
|
}
|
|
173
99
|
type ReservedSyncPlanItem = {
|
|
@@ -180,64 +106,18 @@ type ReservedSyncPlanItem = {
|
|
|
180
106
|
device: string;
|
|
181
107
|
reason: string;
|
|
182
108
|
};
|
|
183
|
-
/**
|
|
184
|
-
* Pure plan: for each worker peer, push each bundle it is missing at least one
|
|
185
|
-
* key of. Deterministic (peers and bundles sorted) so it pins exactly in tests.
|
|
186
|
-
* A headed peer is skipped BEFORE any key comparison -- it never receives a key;
|
|
187
|
-
* a peer with no reply yet (`hasReply: false`) is skipped next -- there is no
|
|
188
|
-
* first-hand knowledge of what it holds, so nothing is pushed to it this tick;
|
|
189
|
-
* a peer whose reply carries no `accounts.rows` field (`hasAccountRows: false`)
|
|
190
|
-
* is skipped FAIL-CLOSED for the same reason (an older CLI's reply is not proof
|
|
191
|
-
* of an empty inventory), rather than pushing every key blindly.
|
|
192
|
-
*/
|
|
193
109
|
export declare function planReservedStoreSync(accounts: ReservedSyncAccount[], peers: ReservedSyncPeer[]): ReservedSyncPlanItem[];
|
|
194
|
-
/**
|
|
195
|
-
* Every portable account's durable worker credential, resolved to (bundle, key).
|
|
196
|
-
* A T1 row carries `workerCredential`; a claude row predating T1 has none, so it
|
|
197
|
-
* falls back to the legacy `auth` bundle keyed by the account email -- the
|
|
198
|
-
* legacy fallback for claude rows that predate T1. An account with no derivable
|
|
199
|
-
* durable credential (per-device harness, or a non-claude row with no
|
|
200
|
-
* `workerCredential`) is not a sync target.
|
|
201
|
-
*/
|
|
202
110
|
export declare function reservedSyncTargets(meta: Pick<Meta, 'accounts' | 'deviceAccounts'>): ReservedSyncAccount[];
|
|
203
|
-
/** The subset of a peer's per-account verdict row this planner reads. */
|
|
204
111
|
export interface PeerAccountVerdict {
|
|
205
112
|
accountId: string;
|
|
206
113
|
harness: string;
|
|
207
|
-
/** `missing` ⇒ no working credential on the peer; anything else ⇒ present. */
|
|
208
114
|
verdict: string;
|
|
209
115
|
}
|
|
210
|
-
/** Narrow a peer's opaque `accounts.rows` to the verdict fields the planner reads. */
|
|
211
116
|
export declare function readPeerAccountVerdicts(state: FleetSharedDeviceState | undefined): PeerAccountVerdict[];
|
|
212
|
-
/**
|
|
213
|
-
* True when the peer's reply carried an `accounts.rows` array at all (present,
|
|
214
|
-
* even if empty). An older CLI, or a partial state written before the account-
|
|
215
|
-
* state daemon ran, has no such field — and its absence must NOT read as "the
|
|
216
|
-
* peer holds nothing", or the plan would push every key blindly. An EMPTY array
|
|
217
|
-
* (a peer with no registered account) IS a valid first-hand "holds nothing".
|
|
218
|
-
*/
|
|
219
117
|
export declare function peerHasAccountRows(state: FleetSharedDeviceState | undefined): boolean;
|
|
220
|
-
/**
|
|
221
|
-
* The reserved keys a peer is KNOWN to hold, per bundle. Two conditions must BOTH
|
|
222
|
-
* hold (PHNX-4116):
|
|
223
|
-
*
|
|
224
|
-
* 1. FIRST-HAND — the peer's own daemon-state reply reports a NON-`missing`
|
|
225
|
-
* verdict for the account, so it has a working credential for it (its slot
|
|
226
|
-
* materialized). A `missing` verdict, or no row for the account at all, means
|
|
227
|
-
* it does not — self-correcting: a key removed on the worker flips its next
|
|
228
|
-
* verdict to `missing` and the push resumes, which a publisher-side memo alone
|
|
229
|
-
* could never see.
|
|
230
|
-
* 2. ROTATION — the fingerprint we last delivered to this peer (`delivered`)
|
|
231
|
-
* matches the account's CURRENT fingerprint. A re-mint bumps
|
|
232
|
-
* `workerCredential.mintedAt` while the old token still authenticates, so the
|
|
233
|
-
* verdict stays non-`missing`; without this the rotated key would never
|
|
234
|
-
* propagate. A never-delivered key (no memo entry ⇒ `undefined`) never
|
|
235
|
-
* matches, so a newly-added account still pushes.
|
|
236
|
-
*/
|
|
237
118
|
export declare function peerPresentKeys(accounts: ReservedSyncAccount[], verdicts: PeerAccountVerdict[], delivered: (bundle: string, key: string) => string | undefined): Record<string, ReadonlySet<string>>;
|
|
238
119
|
interface ReservedStoreSyncResult {
|
|
239
120
|
publisher: string | null;
|
|
240
|
-
/** Legacy raw reserved items adopted into their bundle on this box before planning (local repair). */
|
|
241
121
|
adopted: Array<{
|
|
242
122
|
bundle: string;
|
|
243
123
|
key: string;
|
|
@@ -260,16 +140,13 @@ interface ReservedStoreSyncDeps {
|
|
|
260
140
|
listDevices?: () => DeviceProfile[];
|
|
261
141
|
localName?: string;
|
|
262
142
|
userAgentsDir?: string;
|
|
263
|
-
/** Where the publisher-side delivery memo lives; defaults to `getCacheDir()`. */
|
|
264
143
|
cacheDir?: string;
|
|
265
144
|
readMetaFn?: () => Pick<Meta, 'accounts' | 'deviceAccounts'>;
|
|
266
145
|
isPinned?: (name: string) => boolean;
|
|
267
146
|
peerRole?: (name: string) => ReturnType<typeof selfConfiguredDeviceRole>;
|
|
268
147
|
selfRole?: () => ReturnType<typeof selfConfiguredDeviceRole>;
|
|
269
148
|
localReady?: boolean;
|
|
270
|
-
/** Does THIS publisher hold (bundle, key) to push? Defaults to a local bundle read. */
|
|
271
149
|
hasLocalKey?: (bundle: string, key: string) => boolean;
|
|
272
|
-
/** Adopt pre-bundle raw reserved items locally before planning; defaults to `adoptLegacyReservedStoreItems`. */
|
|
273
150
|
adoptLegacy?: (meta: Pick<Meta, 'accounts' | 'deviceAccounts'>) => Promise<{
|
|
274
151
|
adopted: Array<{
|
|
275
152
|
bundle: string;
|
|
@@ -284,16 +161,9 @@ interface ReservedStoreSyncDeps {
|
|
|
284
161
|
push?: (bundle: string, host: string) => Promise<PushBundleResult>;
|
|
285
162
|
sshTarget?: (device: DeviceProfile) => string;
|
|
286
163
|
}
|
|
287
|
-
/**
|
|
288
|
-
* Push every portable account's reserved store to the worker peers that are
|
|
289
|
-
* missing it, per key and per role. Reuses the same election as
|
|
290
|
-
* {@link syncReservedAuthBundle} (one deterministic ready publisher pushes) so
|
|
291
|
-
* there is no second scheduler. The daemon runs this each tick.
|
|
292
|
-
*/
|
|
293
164
|
export declare function syncReservedStores(deps?: ReservedStoreSyncDeps): Promise<ReservedStoreSyncResult>;
|
|
294
165
|
interface ReconcileWorkerSlotsResult {
|
|
295
166
|
provisioned: string[];
|
|
296
|
-
/** Stale slots removed from the device doc (accountId no longer registered). */
|
|
297
167
|
dropped: string[];
|
|
298
168
|
skipped: Array<{
|
|
299
169
|
accountId: string;
|
|
@@ -309,20 +179,8 @@ interface ReconcileWorkerSlotsDeps {
|
|
|
309
179
|
readMetaFn?: () => Pick<Meta, 'accounts' | 'deviceAccounts'>;
|
|
310
180
|
hasLocalKey?: (bundle: string, key: string) => boolean;
|
|
311
181
|
provision?: (account: NativeAccountRecord) => void;
|
|
312
|
-
/** True when an existing durable slot already carries everything provisioning seeds. */
|
|
313
182
|
slotSeeded?: (harness: AgentId, slotDir: string) => boolean;
|
|
314
|
-
/** Remove stale slot records from the device doc. Default: {@link dropSlots}. */
|
|
315
183
|
dropSlots?: (accountIds: readonly string[]) => void;
|
|
316
|
-
/** Emit an operational log line. Default: the daemon log (fire-and-forget). */
|
|
317
184
|
log?: (level: 'INFO' | 'WARN', message: string) => void;
|
|
318
185
|
}
|
|
319
|
-
/**
|
|
320
|
-
* Worker-side: after a durable key lands, materialize a slot for each portable
|
|
321
|
-
* account whose credential is now present locally. Runs only on a NON-headed
|
|
322
|
-
* (worker or unmarked) device -- a headed device provisions its slots from an
|
|
323
|
-
* interactive native login (`accounts add`), never from an injected durable key
|
|
324
|
-
* (invariant 7). Idempotent: an account already backed by a fully seeded
|
|
325
|
-
* `durable` slot is skipped; a claude slot provisioned before onboarding was
|
|
326
|
-
* seeded (no `hasCompletedOnboarding`) is provisioned again so it converges.
|
|
327
|
-
*/
|
|
328
186
|
export declare function reconcileLocalWorkerSlots(deps?: ReconcileWorkerSlotsDeps): ReconcileWorkerSlotsResult;
|
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agents-owned fleet policy for the secrets engine boundary (PHNX-3989 CTX-1,
|
|
3
|
-
* delta-spec OWN-1). The standalone `secrets` engine has no concept of a
|
|
4
|
-
* "reserved" per-harness credential store, resource profiles, device roles, or
|
|
5
|
-
* fleet election — none of that is portable secret-storage behavior, so it
|
|
6
|
-
* lives here rather than in the engine. Every actual read/write against a
|
|
7
|
-
* bundle or raw item resolves through the process client (`secrets-client.ts`);
|
|
8
|
-
* this module only decides WHICH bundle/key, WHO may reach it, and WHERE it
|
|
9
|
-
* gets pushed.
|
|
10
|
-
*/
|
|
11
1
|
import * as fs from 'node:fs';
|
|
12
2
|
import * as path from 'node:path';
|
|
13
3
|
import { pushBundleToHostAsync, listBundles, } from './secrets-client.js';
|
|
@@ -22,53 +12,20 @@ import { dropSlots, listNativeAccounts, readSlots } from './account-registry.js'
|
|
|
22
12
|
import { claudeAccountTokenKey, isClaudeWorkerHomeSeeded, provisionWorkerSlot, readReservedCredential } from './claude-account-token.js';
|
|
23
13
|
import { configuredDeviceRole, isHeadedDeviceRole, selfConfiguredDeviceRole } from './device-config.js';
|
|
24
14
|
import { AUTH_STORE_ALIAS, AUTH_BUNDLE_BACKEND, RESERVED_BUNDLE_NAMES, isReservedBundleName, ReservedBundleWrongBackendError, assertReservedAuthBackend, isReservedBundleBackendError, RESERVED_STORES, reservedStoreName, isReservedStoreName, assertStorableCredentialKind, inspectReservedAuthBundle, } from './reserved-stores.js';
|
|
25
|
-
// --- reserved per-harness credential stores (PHNX-3940 / PHNX-3989) --------
|
|
26
|
-
//
|
|
27
|
-
// Re-exported from the leaf module `reserved-stores.ts` rather than declared
|
|
28
|
-
// here: `claude-account-token.ts` needs these constants AND is itself a
|
|
29
|
-
// dependency of this module's fleet-sync helpers below, so declaring them
|
|
30
|
-
// here would form a real circular import (reproduced as a TDZ
|
|
31
|
-
// ReferenceError under real ESM evaluation order, outside vitest's
|
|
32
|
-
// mock-tolerant transform). Keep the public surface unchanged for existing
|
|
33
|
-
// importers of `secrets-policy.js`.
|
|
34
15
|
export { AUTH_STORE_ALIAS, AUTH_BUNDLE_BACKEND, RESERVED_BUNDLE_NAMES, isReservedBundleName, ReservedBundleWrongBackendError, assertReservedAuthBackend, isReservedBundleBackendError, RESERVED_STORES, reservedStoreName, isReservedStoreName, assertStorableCredentialKind, inspectReservedAuthBundle, };
|
|
35
|
-
// --- resource-profile -> allowedBundles (CTX-1) -----------------------------
|
|
36
|
-
//
|
|
37
|
-
// A resource profile scopes WHICH bundle names a run may reach. The standalone
|
|
38
|
-
// has no concept of a profile; agents-cli computes the allowed set from the
|
|
39
|
-
// full bundle listing and forwards it as `SecretsContext.allowedBundles` on
|
|
40
|
-
// every bounded request. Absent (no active profile) means full trust, matching
|
|
41
|
-
// the client's own documented default.
|
|
42
|
-
/** Filter `names` down to the ones the active resource profile allows for `secrets`. */
|
|
43
16
|
function filterBundleNamesForActiveProfile(names) {
|
|
44
17
|
return filterNamesForActiveResourceProfile('secrets', names);
|
|
45
18
|
}
|
|
46
|
-
/**
|
|
47
|
-
* `SecretsContext.allowedBundles` for the active resource profile, or
|
|
48
|
-
* `undefined` when no profile is active (full trust — the client's default).
|
|
49
|
-
* `allNames` is the caller's already-fetched full bundle listing (e.g. from
|
|
50
|
-
* `listBundlesSync()`), so this stays a pure filter with no extra round trip.
|
|
51
|
-
*/
|
|
52
19
|
export function resolveAllowedBundlesForActiveProfile(allNames) {
|
|
53
20
|
const filtered = filterBundleNamesForActiveProfile(allNames);
|
|
54
21
|
return filtered.length === allNames.length ? undefined : filtered;
|
|
55
22
|
}
|
|
56
|
-
/**
|
|
57
|
-
* The `SecretsContext` a run should pass to every bundle resolution it makes:
|
|
58
|
-
* the run's harness as the opaque `scope`, plus `allowedBundles` computed from
|
|
59
|
-
* a fresh full bundle listing when a resource profile is active (a stale
|
|
60
|
-
* listing could exclude a bundle created after the profile was set). No
|
|
61
|
-
* profile active means full trust and no extra round trip.
|
|
62
|
-
*/
|
|
63
23
|
export async function resolveSecretsContextForRun(scope) {
|
|
64
24
|
if (!getActiveResourceProfile())
|
|
65
25
|
return scope ? { scope } : undefined;
|
|
66
26
|
const allNames = (await listBundles()).map((b) => b.name);
|
|
67
27
|
return { allowedBundles: resolveAllowedBundlesForActiveProfile(allNames), scope };
|
|
68
28
|
}
|
|
69
|
-
// --- bundle@host remote-reference parsing (agents' own `--secrets` flag
|
|
70
|
-
// semantics, REMOTE-1) -------------------------------------------------------
|
|
71
|
-
/** Parse a `--secrets` flag value into its bundle name and optional `@host`. */
|
|
72
29
|
export function splitBundleRef(ref) {
|
|
73
30
|
const at = ref.indexOf('@');
|
|
74
31
|
if (at === -1)
|
|
@@ -80,7 +37,6 @@ export function splitBundleRef(ref) {
|
|
|
80
37
|
}
|
|
81
38
|
return { bundle, host };
|
|
82
39
|
}
|
|
83
|
-
/** A remote (bundle@host) reference does not yet support key-subset or expiry overrides. */
|
|
84
40
|
export function assertRemoteBundleFlagsUnsupported(bundleName, host, opts, flagLabels) {
|
|
85
41
|
const hasKeys = Array.isArray(opts.keys) && opts.keys.length > 0;
|
|
86
42
|
if (!hasKeys && !opts.allowExpired)
|
|
@@ -88,16 +44,6 @@ export function assertRemoteBundleFlagsUnsupported(bundleName, host, opts, flagL
|
|
|
88
44
|
throw new Error(`Bundle '${bundleName}@${host}': ${flagLabels.keysFlag} and ${flagLabels.allowExpiredFlag} are not supported for remote (bundle@host) bundles yet. ` +
|
|
89
45
|
`Drop the flag or resolve the bundle locally.`);
|
|
90
46
|
}
|
|
91
|
-
// ---------------------------------------------------------------------------
|
|
92
|
-
// Fleet sync of the reserved file-backed `auth` bundle (PHNX-2371/PHNX-3609).
|
|
93
|
-
//
|
|
94
|
-
// Every daemon publishes only a safe auth readiness verdict into its owned
|
|
95
|
-
// fleet-shared state file. A deterministic ready publisher reads those
|
|
96
|
-
// verdicts and transfers the actual bundle only to a peer reporting `missing`.
|
|
97
|
-
// Secret values never enter Git; the exceptional provisioning transfer is SSH,
|
|
98
|
-
// async and kill-bounded so it never blocks the daemon event loop.
|
|
99
|
-
// ---------------------------------------------------------------------------
|
|
100
|
-
/** Each import/read-back SSH operation gets this deadline plus the SSH hard-kill grace. */
|
|
101
47
|
const AUTH_SYNC_PUSH_DEADLINE_MS = 20_000;
|
|
102
48
|
export function planAuthBundlePush(localAuthOk, localIsPublisher, devices) {
|
|
103
49
|
if (!localAuthOk) {
|
|
@@ -122,15 +68,6 @@ export function planAuthBundlePush(localAuthOk, localIsPublisher, devices) {
|
|
|
122
68
|
return { action: 'push', device: device.name };
|
|
123
69
|
});
|
|
124
70
|
}
|
|
125
|
-
/**
|
|
126
|
-
* The one device that pushes credentials this tick. A ready HEADED device
|
|
127
|
-
* (`personal`/`desktop`) wins over any ready worker: the headed box is where
|
|
128
|
-
* tokens are minted (invariant 7), so it is the copy of record; a worker holds
|
|
129
|
-
* only what was once pushed to it. Name order breaks ties so every box elects
|
|
130
|
-
* the same publisher from the same shared verdicts. Before this rule the sort
|
|
131
|
-
* was by name alone, which elected `mac-mini` (a worker with a 6-day-old copy)
|
|
132
|
-
* over `zion`, and zion then skipped every peer as a non-publisher.
|
|
133
|
-
*/
|
|
134
71
|
export function electPublisher(ready, roleOf) {
|
|
135
72
|
const rank = (name) => (isHeadedDeviceRole(roleOf(name)) ? 0 : 1);
|
|
136
73
|
return [...ready].sort((a, b) => rank(a) - rank(b) || normalizeHost(a).localeCompare(normalizeHost(b)))[0] ?? null;
|
|
@@ -143,7 +80,6 @@ function authStatus(local) {
|
|
|
143
80
|
return 'missing';
|
|
144
81
|
return local.ok ? 'ready' : 'invalid';
|
|
145
82
|
}
|
|
146
|
-
/** Publish only safe readiness metadata; useful immediately before a repo push. */
|
|
147
83
|
export async function publishReservedAuthVerdict(options = {}) {
|
|
148
84
|
const local = (options.inspectLocal ?? inspectReservedAuthBundle)();
|
|
149
85
|
const status = authStatus(local);
|
|
@@ -156,10 +92,6 @@ export async function publishReservedAuthVerdict(options = {}) {
|
|
|
156
92
|
return { device, status, changed: false, error: err.message };
|
|
157
93
|
}
|
|
158
94
|
}
|
|
159
|
-
/**
|
|
160
|
-
* Publish local readiness, elect one ready source, then asynchronously provision
|
|
161
|
-
* only peers whose shared verdict says the bundle is missing.
|
|
162
|
-
*/
|
|
163
95
|
export async function syncReservedAuthBundle(deps = {}) {
|
|
164
96
|
const result = { publisher: null, stateChanged: false, pushed: [], skipped: [], errors: [] };
|
|
165
97
|
const published = await publishReservedAuthVerdict(deps);
|
|
@@ -233,76 +165,10 @@ export async function syncReservedAuthBundle(deps = {}) {
|
|
|
233
165
|
}
|
|
234
166
|
return result;
|
|
235
167
|
}
|
|
236
|
-
// ---------------------------------------------------------------------------
|
|
237
|
-
// Reserved-store sync, generalized to every portable account (PHNX-3940 T6).
|
|
238
|
-
//
|
|
239
|
-
// The path above pushes ONE bundle (`auth`) to peers reporting a bundle-coarse
|
|
240
|
-
// `missing` verdict. That under-pushes: a peer already holding `auth` (verdict
|
|
241
|
-
// `ready`) never receives a newly-added account's key, so a new account never
|
|
242
|
-
// propagates. It also pushes to any peer regardless of role, and a headed peer
|
|
243
|
-
// must never receive a durable key (owner invariant 7).
|
|
244
|
-
//
|
|
245
|
-
// The functions below fix both. The plan is per ACCOUNT and per KEY
|
|
246
|
-
// (`<ENV>_<accountId>`), not per bundle, and targets `role=worker` peers only.
|
|
247
|
-
//
|
|
248
|
-
// PRESENCE IS FIRST-HAND + ROTATION-AWARE (PHNX-4116). Each device's account-
|
|
249
|
-
// state daemon publishes a per-account verdict row into `accounts.rows`
|
|
250
|
-
// (`account-state-daemon-service.ts`), and the usage-sync SSH exchange stores
|
|
251
|
-
// each peer's reply at `devices/<peer>/daemon-state.json`. A key counts as
|
|
252
|
-
// present on a peer only when BOTH hold:
|
|
253
|
-
// 1. FIRST-HAND — the peer's own reply reports a NON-`missing` verdict for the
|
|
254
|
-
// account (its slot materialized). This is what a publisher-side memo alone
|
|
255
|
-
// could never see: a key removed on the worker out of band flips the next
|
|
256
|
-
// verdict to `missing`, so the push resumes within a tick.
|
|
257
|
-
// 2. ROTATION — the fingerprint (`workerCredential.mintedAt`) we last delivered
|
|
258
|
-
// to that peer matches the account's CURRENT fingerprint. A re-mint
|
|
259
|
-
// (`accounts login`) rotates the reserved key and bumps `mintedAt` while the
|
|
260
|
-
// peer's OLD token keeps authenticating, so its verdict stays non-`missing`;
|
|
261
|
-
// verdict alone would read `present` forever and the rotated key would never
|
|
262
|
-
// reach the worker. The delivery memo is a LOCAL rotation cursor keyed per
|
|
263
|
-
// (peer, bundle, key) → fingerprint, never synced, never the primary signal.
|
|
264
|
-
// A peer reply with no `accounts.rows` field at all (an older CLI) is not proof
|
|
265
|
-
// of an empty inventory, so the plan FAILS CLOSED and skips it (INFO), rather
|
|
266
|
-
// than treating "no rows" as "holds nothing" and pushing every key blindly.
|
|
267
|
-
//
|
|
268
|
-
// INVARIANT 1 (transport, retain nothing): materializing a worker slot happens
|
|
269
|
-
// on the box where the key LANDED (`reconcileLocalWorkerSlots` ->
|
|
270
|
-
// `provisionWorkerSlot`); the credential itself only ever moves over the
|
|
271
|
-
// existing encrypted SSH bundle push (the client's `pushBundleToHostAsync`),
|
|
272
|
-
// which writes nothing on the sender beyond its existing store. A native
|
|
273
|
-
// OAuth/session file is never transported (`fleet/auth-sync.ts`
|
|
274
|
-
// `isCredentialSafeToPropagate` stays false).
|
|
275
|
-
// ---------------------------------------------------------------------------
|
|
276
168
|
const EMPTY_KEY_SET = new Set();
|
|
277
|
-
/**
|
|
278
|
-
* Skip reason for a peer that has never sent a daemon-state reply (no
|
|
279
|
-
* `devices/<peer>/daemon-state.json`). auth-sync logs these at INFO — a
|
|
280
|
-
* brand-new or never-dialed worker legitimately has no reply on an early tick,
|
|
281
|
-
* so it is informational, not a warning. Stable so the service classifies the
|
|
282
|
-
* skip without matching a substring.
|
|
283
|
-
*/
|
|
284
169
|
export const SKIP_REASON_NO_PEER_REPLY = 'no daemon-state reply from this peer yet';
|
|
285
|
-
/**
|
|
286
|
-
* Skip reason for a peer whose reply exists but carries no `accounts.rows` field
|
|
287
|
-
* at all (an older CLI that does not publish per-account verdicts, or a partial
|
|
288
|
-
* state written before the account-state daemon ran). Without those rows there is
|
|
289
|
-
* no first-hand knowledge of what the peer holds, so the plan FAILS CLOSED and
|
|
290
|
-
* skips rather than pushing every key blindly. auth-sync logs it at INFO — it is
|
|
291
|
-
* transient during a rolling upgrade. An EMPTY `accounts.rows` array (a peer with
|
|
292
|
-
* no registered account) is NOT this case: it is a legitimate "holds nothing",
|
|
293
|
-
* and its keys are (correctly) pushed to provision it.
|
|
294
|
-
*/
|
|
295
170
|
export const SKIP_REASON_NO_ACCOUNT_ROWS = 'daemon-state reply carries no account rows (fail closed)';
|
|
296
|
-
|
|
297
|
-
* Pure plan: for each worker peer, push each bundle it is missing at least one
|
|
298
|
-
* key of. Deterministic (peers and bundles sorted) so it pins exactly in tests.
|
|
299
|
-
* A headed peer is skipped BEFORE any key comparison -- it never receives a key;
|
|
300
|
-
* a peer with no reply yet (`hasReply: false`) is skipped next -- there is no
|
|
301
|
-
* first-hand knowledge of what it holds, so nothing is pushed to it this tick;
|
|
302
|
-
* a peer whose reply carries no `accounts.rows` field (`hasAccountRows: false`)
|
|
303
|
-
* is skipped FAIL-CLOSED for the same reason (an older CLI's reply is not proof
|
|
304
|
-
* of an empty inventory), rather than pushing every key blindly.
|
|
305
|
-
*/
|
|
171
|
+
// Durable credentials flow headed-to-worker only; missing peer/account role truth fails closed.
|
|
306
172
|
export function planReservedStoreSync(accounts, peers) {
|
|
307
173
|
const keysByBundle = new Map();
|
|
308
174
|
for (const account of accounts) {
|
|
@@ -349,14 +215,6 @@ export function planReservedStoreSync(accounts, peers) {
|
|
|
349
215
|
}
|
|
350
216
|
return items;
|
|
351
217
|
}
|
|
352
|
-
/**
|
|
353
|
-
* Every portable account's durable worker credential, resolved to (bundle, key).
|
|
354
|
-
* A T1 row carries `workerCredential`; a claude row predating T1 has none, so it
|
|
355
|
-
* falls back to the legacy `auth` bundle keyed by the account email -- the
|
|
356
|
-
* legacy fallback for claude rows that predate T1. An account with no derivable
|
|
357
|
-
* durable credential (per-device harness, or a non-claude row with no
|
|
358
|
-
* `workerCredential`) is not a sync target.
|
|
359
|
-
*/
|
|
360
218
|
export function reservedSyncTargets(meta) {
|
|
361
219
|
const out = [];
|
|
362
220
|
for (const account of listNativeAccounts(meta)) {
|
|
@@ -370,7 +228,6 @@ export function reservedSyncTargets(meta) {
|
|
|
370
228
|
}
|
|
371
229
|
return out;
|
|
372
230
|
}
|
|
373
|
-
/** Narrow a peer's opaque `accounts.rows` to the verdict fields the planner reads. */
|
|
374
231
|
export function readPeerAccountVerdicts(state) {
|
|
375
232
|
const rows = state?.accounts?.rows;
|
|
376
233
|
if (!Array.isArray(rows))
|
|
@@ -386,28 +243,9 @@ export function readPeerAccountVerdicts(state) {
|
|
|
386
243
|
}
|
|
387
244
|
return out;
|
|
388
245
|
}
|
|
389
|
-
/**
|
|
390
|
-
* True when the peer's reply carried an `accounts.rows` array at all (present,
|
|
391
|
-
* even if empty). An older CLI, or a partial state written before the account-
|
|
392
|
-
* state daemon ran, has no such field — and its absence must NOT read as "the
|
|
393
|
-
* peer holds nothing", or the plan would push every key blindly. An EMPTY array
|
|
394
|
-
* (a peer with no registered account) IS a valid first-hand "holds nothing".
|
|
395
|
-
*/
|
|
396
246
|
export function peerHasAccountRows(state) {
|
|
397
247
|
return Array.isArray(state?.accounts?.rows);
|
|
398
248
|
}
|
|
399
|
-
// --- publisher-side delivery memo (rotation) -------------------------------
|
|
400
|
-
// A peer's verdict says WHETHER it holds a working credential for an account, but
|
|
401
|
-
// not WHICH one: a re-mint (`accounts login`) rotates the reserved key and bumps
|
|
402
|
-
// `workerCredential.mintedAt`, yet the peer's OLD token keeps authenticating, so
|
|
403
|
-
// its verdict stays `live`/`unverified` and never flips to `missing`. Verdict
|
|
404
|
-
// alone would therefore read `present` forever and the new key would never reach
|
|
405
|
-
// the worker. The publisher records the fingerprint it last delivered per
|
|
406
|
-
// (peer, bundle, key); presence requires BOTH the peer's own verdict AND a
|
|
407
|
-
// delivered-fingerprint match, so a re-mint (fingerprint change) re-pushes within
|
|
408
|
-
// a tick while a key removed on the worker (verdict `missing`) also re-pushes.
|
|
409
|
-
// LOCAL publisher bookkeeping, never synced — it is a rotation cursor, not a
|
|
410
|
-
// substitute for the first-hand verdict.
|
|
411
249
|
function deliveryMemoPath(root = getCacheDir()) {
|
|
412
250
|
return path.join(root, 'reserved-sync-delivered.json');
|
|
413
251
|
}
|
|
@@ -420,30 +258,13 @@ function readDeliveryMemo(root) {
|
|
|
420
258
|
if (parsed && typeof parsed === 'object' && !Array.isArray(parsed))
|
|
421
259
|
return parsed;
|
|
422
260
|
}
|
|
423
|
-
catch {
|
|
261
|
+
catch { }
|
|
424
262
|
return {};
|
|
425
263
|
}
|
|
426
264
|
function writeDeliveryMemo(memo, root = getCacheDir()) {
|
|
427
265
|
fs.mkdirSync(root, { recursive: true });
|
|
428
266
|
fs.writeFileSync(deliveryMemoPath(root), `${JSON.stringify(memo, null, 2)}\n`, 'utf-8');
|
|
429
267
|
}
|
|
430
|
-
/**
|
|
431
|
-
* The reserved keys a peer is KNOWN to hold, per bundle. Two conditions must BOTH
|
|
432
|
-
* hold (PHNX-4116):
|
|
433
|
-
*
|
|
434
|
-
* 1. FIRST-HAND — the peer's own daemon-state reply reports a NON-`missing`
|
|
435
|
-
* verdict for the account, so it has a working credential for it (its slot
|
|
436
|
-
* materialized). A `missing` verdict, or no row for the account at all, means
|
|
437
|
-
* it does not — self-correcting: a key removed on the worker flips its next
|
|
438
|
-
* verdict to `missing` and the push resumes, which a publisher-side memo alone
|
|
439
|
-
* could never see.
|
|
440
|
-
* 2. ROTATION — the fingerprint we last delivered to this peer (`delivered`)
|
|
441
|
-
* matches the account's CURRENT fingerprint. A re-mint bumps
|
|
442
|
-
* `workerCredential.mintedAt` while the old token still authenticates, so the
|
|
443
|
-
* verdict stays non-`missing`; without this the rotated key would never
|
|
444
|
-
* propagate. A never-delivered key (no memo entry ⇒ `undefined`) never
|
|
445
|
-
* matches, so a newly-added account still pushes.
|
|
446
|
-
*/
|
|
447
268
|
export function peerPresentKeys(accounts, verdicts, delivered) {
|
|
448
269
|
const held = new Set(verdicts.filter((v) => v.verdict !== 'missing').map((v) => `${v.harness}:${v.accountId}`));
|
|
449
270
|
const present = {};
|
|
@@ -457,25 +278,14 @@ export function peerPresentKeys(accounts, verdicts, delivered) {
|
|
|
457
278
|
return present;
|
|
458
279
|
}
|
|
459
280
|
function defaultHasLocalKey(bundle, key) {
|
|
460
|
-
// Reserved-store aware: readReservedCredential reads a `__<harness>__` item
|
|
461
|
-
// directly and a legacy/provider bundle through the normal resolver.
|
|
462
281
|
return readReservedCredential(bundle, key) !== null;
|
|
463
282
|
}
|
|
464
|
-
/**
|
|
465
|
-
* Push every portable account's reserved store to the worker peers that are
|
|
466
|
-
* missing it, per key and per role. Reuses the same election as
|
|
467
|
-
* {@link syncReservedAuthBundle} (one deterministic ready publisher pushes) so
|
|
468
|
-
* there is no second scheduler. The daemon runs this each tick.
|
|
469
|
-
*/
|
|
470
283
|
export async function syncReservedStores(deps = {}) {
|
|
471
284
|
const result = { publisher: null, adopted: [], pushed: [], skipped: [], errors: [] };
|
|
472
285
|
const localName = deps.localName ?? machineId();
|
|
473
286
|
const localNorm = normalizeHost(localName);
|
|
474
287
|
const root = deps.userAgentsDir ?? getUserAgentsDir();
|
|
475
288
|
const meta = (deps.readMetaFn ?? readMeta)();
|
|
476
|
-
// Local repair first: a reserved key written by 1.22.84–1.22.89 is a bare
|
|
477
|
-
// file item with no bundle record, which the push below cannot read. Adopt
|
|
478
|
-
// it into its bundle here so the plan sees it; nothing leaves the box.
|
|
479
289
|
const adopt = deps.adoptLegacy ?? (async (m) => (await import('./auth-mint.js')).adoptLegacyReservedStoreItems(m));
|
|
480
290
|
try {
|
|
481
291
|
const adoption = await adopt(meta);
|
|
@@ -550,9 +360,6 @@ export async function syncReservedStores(deps = {}) {
|
|
|
550
360
|
const out = await push(item.bundle, sshTarget(profile));
|
|
551
361
|
if (out.ok) {
|
|
552
362
|
result.pushed.push({ device: item.device, bundle: item.bundle, keys: item.keys });
|
|
553
|
-
// Record the fingerprint delivered so an UNCHANGED key is not re-pushed
|
|
554
|
-
// next tick; a re-mint (new fingerprint) or a removed key (verdict flips
|
|
555
|
-
// `missing`) still re-pushes.
|
|
556
363
|
for (const key of item.keys) {
|
|
557
364
|
const fp = targets.find((t) => t.bundle === item.bundle && t.key === key)?.fingerprint;
|
|
558
365
|
if (fp)
|
|
@@ -570,59 +377,29 @@ export async function syncReservedStores(deps = {}) {
|
|
|
570
377
|
writeDeliveryMemo(memo, deps.cacheDir ?? getCacheDir());
|
|
571
378
|
return result;
|
|
572
379
|
}
|
|
573
|
-
/**
|
|
574
|
-
* Fire-and-forget the daemon log without pulling its module graph into every
|
|
575
|
-
* consumer of this file: `reconcileLocalWorkerSlots` is synchronous and only
|
|
576
|
-
* runs inside the daemon (where daemon.js is already loaded), so the dynamic
|
|
577
|
-
* import is paid only on the rare tick that actually drops a slot.
|
|
578
|
-
*/
|
|
579
380
|
function defaultWorkerSlotLog(level, message) {
|
|
580
381
|
void import('./daemon/daemon.js').then((m) => m.log(level, message)).catch(() => { });
|
|
581
382
|
}
|
|
582
383
|
function defaultSlotSeeded(harness, slotDir) {
|
|
583
384
|
return harness === 'claude' ? isClaudeWorkerHomeSeeded(slotDir) : true;
|
|
584
385
|
}
|
|
585
|
-
|
|
586
|
-
* Worker-side: after a durable key lands, materialize a slot for each portable
|
|
587
|
-
* account whose credential is now present locally. Runs only on a NON-headed
|
|
588
|
-
* (worker or unmarked) device -- a headed device provisions its slots from an
|
|
589
|
-
* interactive native login (`accounts add`), never from an injected durable key
|
|
590
|
-
* (invariant 7). Idempotent: an account already backed by a fully seeded
|
|
591
|
-
* `durable` slot is skipped; a claude slot provisioned before onboarding was
|
|
592
|
-
* seeded (no `hasCompletedOnboarding`) is provisioned again so it converges.
|
|
593
|
-
*/
|
|
386
|
+
// Delete a stale worker credential before its registry row, but retain the slot directory for transcripts.
|
|
594
387
|
export function reconcileLocalWorkerSlots(deps = {}) {
|
|
595
388
|
const result = { provisioned: [], dropped: [], skipped: [], errors: [] };
|
|
596
|
-
// `'selfRole' in deps` (not `??`) so a caller can inject an explicit `undefined`
|
|
597
|
-
// to mean "unmarked device"; a caller that omits it reads the real machine role.
|
|
598
389
|
const role = 'selfRole' in deps ? deps.selfRole : selfConfiguredDeviceRole();
|
|
599
390
|
if (isHeadedDeviceRole(role))
|
|
600
|
-
return result;
|
|
391
|
+
return result;
|
|
601
392
|
const meta = (deps.readMetaFn ?? readMeta)();
|
|
602
393
|
const slots = readSlots(meta);
|
|
603
394
|
const hasLocalKey = deps.hasLocalKey ?? defaultHasLocalKey;
|
|
604
395
|
const provision = deps.provision ?? provisionWorkerSlot;
|
|
605
396
|
const slotSeeded = deps.slotSeeded ?? defaultSlotSeeded;
|
|
606
397
|
const byId = new Map(listNativeAccounts(meta).map((account) => [account.id, account]));
|
|
607
|
-
// Drop stale worker slots (PHNX-4116). A `deviceAccounts.slots` record whose
|
|
608
|
-
// accountId is no longer a registered native account is a leftover from an
|
|
609
|
-
// older account-id generation — every worker held 8 such duplicates, each a
|
|
610
|
-
// full HOME carrying a live setup-token in `.claude/.oauth_token`. Delete that
|
|
611
|
-
// credential (a 0600 file) and drop the record, but KEEP the slot directory:
|
|
612
|
-
// `.claude/projects` holds session transcripts. Fail closed — an empty
|
|
613
|
-
// registry is a transient read, and stripping every slot on it would wipe a
|
|
614
|
-
// healthy box's whole slot set, so drop nothing until the registry answers.
|
|
615
|
-
// This deletion runs ONLY on a device explicitly marked `worker`: provisioning
|
|
616
|
-
// above is safe on an unmarked box, but destroying a credential is not — an
|
|
617
|
-
// unmarked device is not headed (`isHeadedDeviceRole(undefined)` is false) yet
|
|
618
|
-
// must never run a credential-deleting branch.
|
|
619
398
|
if (role === 'worker' && byId.size > 0) {
|
|
620
399
|
const stale = Object.values(slots).filter((slot) => !byId.has(slot.accountId));
|
|
621
400
|
const droppable = [];
|
|
622
401
|
for (const slot of stale) {
|
|
623
402
|
try {
|
|
624
|
-
// force ignores an already-absent token; a real failure (EACCES) keeps
|
|
625
|
-
// the slot so the record is never dropped while its credential lingers.
|
|
626
403
|
fs.rmSync(path.join(slot.slotDir, '.claude', '.oauth_token'), { force: true });
|
|
627
404
|
droppable.push(slot);
|
|
628
405
|
}
|
|
@@ -639,13 +416,6 @@ export function reconcileLocalWorkerSlots(deps = {}) {
|
|
|
639
416
|
}
|
|
640
417
|
}
|
|
641
418
|
}
|
|
642
|
-
// Resolve each account to the one (bundle, key) the push plan uses: a T1 row's
|
|
643
|
-
// reserved `__<harness>__` key, or the legacy `auth` key by email for a claude
|
|
644
|
-
// row predating T1. Both are worker credentials this box may already hold, so
|
|
645
|
-
// both get a slot. Skipping the legacy rows here is what left every registered
|
|
646
|
-
// pre-T1 account without a slot on every worker while its token sat in `auth`:
|
|
647
|
-
// the picker then fell back to identity-less version homes and Claude showed a
|
|
648
|
-
// login screen on a headless box (the mac-mini 2026-09-06 incident).
|
|
649
419
|
for (const target of reservedSyncTargets(meta)) {
|
|
650
420
|
const account = byId.get(target.accountId);
|
|
651
421
|
if (!account)
|
|
@@ -662,9 +432,6 @@ export function reconcileLocalWorkerSlots(deps = {}) {
|
|
|
662
432
|
}
|
|
663
433
|
try {
|
|
664
434
|
provision(account);
|
|
665
|
-
// A re-seed that still reads as unseeded is a slot file this box cannot
|
|
666
|
-
// repair (a .claude.json that exists but does not parse is left alone by
|
|
667
|
-
// the seeder). Surface it instead of logging "provisioned" every tick.
|
|
668
435
|
if (reseed && !slotSeeded(account.agent, existing.slotDir)) {
|
|
669
436
|
result.errors.push({ accountId: account.id, message: `slot ${existing.slotDir} is still not fully seeded after re-provisioning; a config file there exists but cannot be parsed` });
|
|
670
437
|
continue;
|