agent-log-viewer 1.1.0 → 1.2.0
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/bin/cli.mjs +4 -0
- package/bin/server-runtime.test.ts +63 -12
- package/dist/mcp-server.mjs +31365 -26173
- package/dist/runtime-host.mjs +15618 -7081
- package/dist/standalone/.next/BUILD_ID +1 -1
- package/dist/standalone/.next/app-path-routes-manifest.json +21 -16
- package/dist/standalone/.next/build-manifest.json +3 -3
- package/dist/standalone/.next/prerender-manifest.json +4 -4
- package/dist/standalone/.next/react-loadable-manifest.json +1 -1
- package/dist/standalone/.next/required-server-files.json +1 -1
- package/dist/standalone/.next/routes-manifest.json +30 -0
- package/dist/standalone/.next/server/account-migration-controller-worker.js +1 -1
- package/dist/standalone/.next/server/app/_global-error/page.js +2 -2
- package/dist/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/dist/standalone/.next/server/app/_global-error.html +1 -1
- package/dist/standalone/.next/server/app/_global-error.rsc +1 -1
- package/dist/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_not-found/page.js +1 -1
- package/dist/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/standalone/.next/server/app/_not-found.html +1 -1
- package/dist/standalone/.next/server/app/_not-found.rsc +2 -2
- package/dist/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/dist/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/dist/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/dist/standalone/.next/server/app/api/access/route.js +1 -1
- package/dist/standalone/.next/server/app/api/access/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/account-project-bindings/route.js +1 -1
- package/dist/standalone/.next/server/app/api/account-project-bindings/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/limits/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/limits/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/limits/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/limits/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/reset-credits/route.js +2 -2
- package/dist/standalone/.next/server/app/api/accounts/codex/reset-credits/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/agent/route.js +1 -1
- package/dist/standalone/.next/server/app/api/agent/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/agent/snapshot/route.js +1 -1
- package/dist/standalone/.next/server/app/api/agent/snapshot/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/answer/route.js +1 -2
- package/dist/standalone/.next/server/app/api/answer/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/artifact/route.js +1 -1
- package/dist/standalone/.next/server/app/api/artifact/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/attach-command/route.js +1 -1
- package/dist/standalone/.next/server/app/api/attach-command/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/attention/[id]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/attention/[id]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/attention/route.js +1 -1
- package/dist/standalone/.next/server/app/api/attention/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/board/route.js +1 -1
- package/dist/standalone/.next/server/app/api/board/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/bridge/route.js +1 -2
- package/dist/standalone/.next/server/app/api/bridge/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/conversation-host/route.js +1 -1
- package/dist/standalone/.next/server/app/api/conversation-host/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/conversation-host/targets/route.js +1 -1
- package/dist/standalone/.next/server/app/api/conversation-host/targets/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js +1 -1
- package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/conversations/route.js +1 -1
- package/dist/standalone/.next/server/app/api/conversations/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/files/route.js +3 -2
- package/dist/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/flows/[id]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/flows/[id]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/flows/route.js +1 -1
- package/dist/standalone/.next/server/app/api/flows/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/image/route.js +1 -1
- package/dist/standalone/.next/server/app/api/image/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/inbox/route.js +2 -2
- package/dist/standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js +1 -1
- package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/limits/history/route.js +1 -1
- package/dist/standalone/.next/server/app/api/limits/history/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/limits/route.js +1 -1
- package/dist/standalone/.next/server/app/api/limits/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/log/preflight/route.js +1 -1
- package/dist/standalone/.next/server/app/api/log/preflight/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/log/project-delete/route.js +1 -1
- package/dist/standalone/.next/server/app/api/log/project-delete/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/log/provenance/route.js +107 -1
- package/dist/standalone/.next/server/app/api/log/provenance/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/log/route.js +1 -1
- package/dist/standalone/.next/server/app/api/log/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/log/suggestions/route.js +2 -4
- package/dist/standalone/.next/server/app/api/log/suggestions/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/logs/route.js +1 -1
- package/dist/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/logs/stream/route.js +2 -2
- package/dist/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/monitor/runs/route.js +3 -3
- package/dist/standalone/.next/server/app/api/monitor/runs/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/monitor/seat-tick/route.js +25 -0
- package/dist/standalone/.next/server/app/api/monitor/seat-tick/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/monitor/seat-tick/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route.js +2 -0
- package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js +1 -1
- package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js +1 -1
- package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js +2 -2
- package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js +1 -1
- package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/pipelines/route.js +1 -2
- package/dist/standalone/.next/server/app/api/pipelines/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/pipelines/tick/route.js +2 -2
- package/dist/standalone/.next/server/app/api/pipelines/tick/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/proc/route.js +1 -1
- package/dist/standalone/.next/server/app/api/proc/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/projects/create/route.js +2 -2
- package/dist/standalone/.next/server/app/api/projects/create/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/projects/crown/route.js +1 -1
- package/dist/standalone/.next/server/app/api/projects/crown/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/projects/directories/route.js +1 -1
- package/dist/standalone/.next/server/app/api/projects/directories/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/push/route.js +2 -2
- package/dist/standalone/.next/server/app/api/push/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/resources/route.js +1 -1
- package/dist/standalone/.next/server/app/api/resources/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/roles/route.js +2 -2
- package/dist/standalone/.next/server/app/api/roles/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/answer/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/answer/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/deployments/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/deployments/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/hosts/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/hosts/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/inject/route.js +1 -0
- package/dist/standalone/.next/server/app/api/runtime/inject/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/runtime/inject/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/operations/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/operations/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/queue/route.js +1 -0
- package/dist/standalone/.next/server/app/api/runtime/queue/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/runtime/queue/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/runtime/realtime/route.js +1 -2
- package/dist/standalone/.next/server/app/api/runtime/realtime/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/send/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/send/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/spawn/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/spawn/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/steer/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/steer/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/stream/route.js +2 -2
- package/dist/standalone/.next/server/app/api/runtime/stream/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/search/transcripts/route.js +2 -2
- package/dist/standalone/.next/server/app/api/search/transcripts/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/session/route.js +1 -1
- package/dist/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/session/supersedence/route.js +1 -1
- package/dist/standalone/.next/server/app/api/session/supersedence/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/session/title/route.js +1 -1
- package/dist/standalone/.next/server/app/api/session/title/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/spawn/policy/route.js +3 -3
- package/dist/standalone/.next/server/app/api/spawn/policy/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/spawn/route.js +1 -2
- package/dist/standalone/.next/server/app/api/spawn/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/spawn/validate/route.js +1 -0
- package/dist/standalone/.next/server/app/api/spawn/validate/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/spawn/validate/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/staging/route.js +2 -2
- package/dist/standalone/.next/server/app/api/staging/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/task-attachments/route.js +2 -2
- package/dist/standalone/.next/server/app/api/task-attachments/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js +1 -2
- package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js +1 -2
- package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/curator/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tasks/curator/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/telegram/reports/route.js +1 -1
- package/dist/standalone/.next/server/app/api/telegram/reports/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/telegram/route.js +1 -1
- package/dist/standalone/.next/server/app/api/telegram/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/timeline/route.js +1 -1
- package/dist/standalone/.next/server/app/api/timeline/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tmux/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tmux/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tmux/targets/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tmux/targets/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/transcribe/backend/route.js +2 -2
- package/dist/standalone/.next/server/app/api/transcribe/backend/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/transcribe/route.js +2 -2
- package/dist/standalone/.next/server/app/api/transcribe/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/transcribe/token/route.js +2 -2
- package/dist/standalone/.next/server/app/api/transcribe/token/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tts/backend/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tts/backend/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tts/route.js +3 -3
- package/dist/standalone/.next/server/app/api/tts/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/view/presence/route.js +1 -1
- package/dist/standalone/.next/server/app/api/view/presence/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/workflows/[id]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/workflows/[id]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/workflows/route.js +1 -1
- package/dist/standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/favicon.ico/route.js +1 -1
- package/dist/standalone/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/index.html +1 -1
- package/dist/standalone/.next/server/app/index.rsc +3 -3
- package/dist/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/dist/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/dist/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/dist/standalone/.next/server/app/page.js +59 -30
- package/dist/standalone/.next/server/app/page.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/standalone/.next/server/app-paths-manifest.json +21 -16
- package/dist/standalone/.next/server/chunks/107.js +1 -1
- package/dist/standalone/.next/server/chunks/1100.js +29 -10
- package/dist/standalone/.next/server/chunks/1406.js +399 -0
- package/dist/standalone/.next/server/chunks/1585.js +108 -0
- package/dist/standalone/.next/server/chunks/160.js +4 -4
- package/dist/standalone/.next/server/chunks/1617.js +2 -2
- package/dist/standalone/.next/server/chunks/1849.js +1 -0
- package/dist/standalone/.next/server/chunks/1888.js +1 -1
- package/dist/standalone/.next/server/chunks/193.js +1 -0
- package/dist/standalone/.next/server/chunks/1952.js +1 -0
- package/dist/standalone/.next/server/chunks/2549.js +1 -1
- package/dist/standalone/.next/server/chunks/2555.js +1 -0
- package/dist/standalone/.next/server/chunks/2647.js +1 -1
- package/dist/standalone/.next/server/chunks/2857.js +1 -0
- package/dist/standalone/.next/server/chunks/2914.js +24 -0
- package/dist/standalone/.next/server/chunks/3034.js +1 -0
- package/dist/standalone/.next/server/chunks/3086.js +1 -1
- package/dist/standalone/.next/server/chunks/3131.js +1 -0
- package/dist/standalone/.next/server/chunks/3214.js +1 -1
- package/dist/standalone/.next/server/chunks/3302.js +1 -2
- package/dist/standalone/.next/server/chunks/3407.js +1 -0
- package/dist/standalone/.next/server/chunks/3422.js +1 -0
- package/dist/standalone/.next/server/chunks/3558.js +1 -0
- package/dist/standalone/.next/server/chunks/3570.js +81 -0
- package/dist/standalone/.next/server/chunks/3587.js +1 -1
- package/dist/standalone/.next/server/chunks/3743.js +74 -24
- package/dist/standalone/.next/server/chunks/3830.js +1 -1
- package/dist/standalone/.next/server/chunks/3896.js +1 -0
- package/dist/standalone/.next/server/chunks/4127.js +1 -1
- package/dist/standalone/.next/server/chunks/4509.js +1 -1
- package/dist/standalone/.next/server/chunks/4637.js +62 -0
- package/dist/standalone/.next/server/chunks/4651.js +1 -1
- package/dist/standalone/.next/server/chunks/4783.js +1 -0
- package/dist/standalone/.next/server/chunks/480.js +126 -0
- package/dist/standalone/.next/server/chunks/4972.js +3 -3
- package/dist/standalone/.next/server/chunks/{4756.js → 4995.js} +3 -5
- package/dist/standalone/.next/server/chunks/5480.js +1 -1
- package/dist/standalone/.next/server/chunks/5545.js +1 -1
- package/dist/standalone/.next/server/chunks/568.js +1 -2
- package/dist/standalone/.next/server/chunks/5682.js +1 -0
- package/dist/standalone/.next/server/chunks/5771.js +1 -0
- package/dist/standalone/.next/server/chunks/5847.js +1 -0
- package/dist/standalone/.next/server/chunks/6023.js +1 -0
- package/dist/standalone/.next/server/chunks/6277.js +81 -0
- package/dist/standalone/.next/server/chunks/6289.js +2 -0
- package/dist/standalone/.next/server/chunks/644.js +81 -0
- package/dist/standalone/.next/server/chunks/6453.js +1 -0
- package/dist/standalone/.next/server/chunks/6522.js +1 -0
- package/dist/standalone/.next/server/chunks/6665.js +1 -1
- package/dist/standalone/.next/server/chunks/6809.js +3 -0
- package/dist/standalone/.next/server/chunks/6826.js +1 -1
- package/dist/standalone/.next/server/chunks/6926.js +1 -1
- package/dist/standalone/.next/server/chunks/{1920.js → 6942.js} +1 -1
- package/dist/standalone/.next/server/chunks/6978.js +1 -0
- package/dist/standalone/.next/server/chunks/7008.js +114 -9
- package/dist/standalone/.next/server/chunks/7192.js +1 -0
- package/dist/standalone/.next/server/chunks/7238.js +2 -0
- package/dist/standalone/.next/server/chunks/7361.js +22 -0
- package/dist/standalone/.next/server/chunks/7644.js +3 -3
- package/dist/standalone/.next/server/chunks/7722.js +1 -1
- package/dist/standalone/.next/server/chunks/781.js +55 -0
- package/dist/standalone/.next/server/chunks/7826.js +62 -0
- package/dist/standalone/.next/server/chunks/8027.js +11 -1
- package/dist/standalone/.next/server/chunks/8444.js +1 -1
- package/dist/standalone/.next/server/chunks/8512.js +1 -0
- package/dist/standalone/.next/server/chunks/8513.js +2 -0
- package/dist/standalone/.next/server/chunks/8617.js +1 -1
- package/dist/standalone/.next/server/chunks/8817.js +1 -1
- package/dist/standalone/.next/server/chunks/8991.js +1 -1
- package/dist/standalone/.next/server/chunks/8996.js +1 -1
- package/dist/standalone/.next/server/chunks/9296.js +104 -0
- package/dist/standalone/.next/server/chunks/{7139.js → 9298.js} +2 -2
- package/dist/standalone/.next/server/chunks/9307.js +1 -1
- package/dist/standalone/.next/server/chunks/9360.js +197 -0
- package/dist/standalone/.next/server/chunks/9403.js +1 -1
- package/dist/standalone/.next/server/chunks/9517.js +1 -1
- package/dist/standalone/.next/server/chunks/9554.js +47 -0
- package/dist/standalone/.next/server/chunks/9676.js +1 -62
- package/dist/standalone/.next/server/chunks/9822.js +11 -1
- package/dist/standalone/.next/server/chunks/9901.js +1 -62
- package/dist/standalone/.next/server/chunks/9940.js +3 -3
- package/dist/standalone/.next/server/chunks/9998.js +1 -1
- package/dist/standalone/.next/server/file-scanner-worker.js +3 -3
- package/dist/standalone/.next/server/files-response-worker.js +6 -6
- package/dist/standalone/.next/server/functions-config-manifest.json +5 -0
- package/dist/standalone/.next/server/instrumentation.js +1 -1
- package/dist/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/dist/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/dist/standalone/.next/server/middleware.js +4 -4
- package/dist/standalone/.next/server/pages/404.html +1 -1
- package/dist/standalone/.next/server/pages/500.html +1 -1
- package/dist/standalone/.next/server/resource-collector-worker.js +1 -1
- package/dist/standalone/.next/server/server-reference-manifest.json +1 -1
- package/dist/standalone/.next/server/wakatime-sync-worker.js +2 -2
- package/dist/standalone/.next/static/chunks/{3794-d1854fdd0e41dc44.js → 3794-0ef35fddac53cd9a.js} +1 -1
- package/dist/standalone/.next/static/chunks/6976-016b6947195a6ed2.js +1 -0
- package/dist/standalone/.next/static/chunks/app/_global-error/page-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/access/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/account-project-bindings/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/limits/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/limits/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/reset-credits/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/agent/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/answer/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/artifact/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/attach-command/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/attention/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/board/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/bridge/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/conversation-host/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/conversation-host/targets/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/conversations/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/files/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/flows/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/image/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/inbox/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/limits/history/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/limits/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/suggestions/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/logs/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/monitor/seat-tick/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/monitor/seat-tick/settings/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/pipelines/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/proc/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/projects/create/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/projects/directories/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/push/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/resources/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/roles/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/hosts/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/inject/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/queue/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/session/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/session/title/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/spawn/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/spawn/validate/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/staging/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/telegram/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/timeline/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tmux/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/transcribe/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tts/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/view/presence/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/workflows/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/page-16384e540b4c0a90.js +125 -0
- package/dist/standalone/.next/static/chunks/{main-8691b7dc3557ef3f.js → main-7e65147ff5ce0866.js} +1 -1
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/css/496211a19557b7ee.css +1 -0
- package/dist/standalone/.next/static/e4qE_aCE0s0KQnnU6IWRw/_buildManifest.js +1 -0
- package/dist/standalone/AGENTS.md +20 -0
- package/dist/standalone/node_modules/@next/env/package.json +1 -1
- package/dist/standalone/node_modules/next/dist/build/swc/index.js +1 -1
- package/dist/standalone/node_modules/next/dist/build/webpack-config.js +3 -3
- package/dist/standalone/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js +1 -1
- package/dist/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +1 -1
- package/dist/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +1 -1
- package/dist/standalone/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js +1 -1
- package/dist/standalone/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js +1 -1
- package/dist/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +5 -5
- package/dist/standalone/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +5 -5
- package/dist/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
- package/dist/standalone/node_modules/next/dist/server/config.js +1 -1
- package/dist/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
- package/dist/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/dist/standalone/node_modules/next/dist/server/image-optimizer.js +2 -2
- package/dist/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
- package/dist/standalone/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +17 -4
- package/dist/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
- package/dist/standalone/node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js +1 -1
- package/dist/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
- package/dist/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
- package/dist/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
- package/dist/standalone/node_modules/next/package.json +10 -10
- package/dist/standalone/package.json +5 -5
- package/dist/standalone/server.bun.js +1 -1
- package/dist/standalone/src/lib/viewerInstrumentation.ts +809 -0
- package/package.json +5 -5
- package/dist/standalone/.next/server/chunks/112.js +0 -1
- package/dist/standalone/.next/server/chunks/2190.js +0 -1
- package/dist/standalone/.next/server/chunks/2318.js +0 -2
- package/dist/standalone/.next/server/chunks/2371.js +0 -1
- package/dist/standalone/.next/server/chunks/2500.js +0 -55
- package/dist/standalone/.next/server/chunks/2799.js +0 -1
- package/dist/standalone/.next/server/chunks/2870.js +0 -104
- package/dist/standalone/.next/server/chunks/3598.js +0 -81
- package/dist/standalone/.next/server/chunks/3740.js +0 -126
- package/dist/standalone/.next/server/chunks/3953.js +0 -1
- package/dist/standalone/.next/server/chunks/411.js +0 -1
- package/dist/standalone/.next/server/chunks/4191.js +0 -1
- package/dist/standalone/.next/server/chunks/461.js +0 -1
- package/dist/standalone/.next/server/chunks/4968.js +0 -2
- package/dist/standalone/.next/server/chunks/5408.js +0 -1
- package/dist/standalone/.next/server/chunks/6333.js +0 -47
- package/dist/standalone/.next/server/chunks/6839.js +0 -81
- package/dist/standalone/.next/server/chunks/7045.js +0 -319
- package/dist/standalone/.next/server/chunks/7159.js +0 -1
- package/dist/standalone/.next/server/chunks/8176.js +0 -1
- package/dist/standalone/.next/server/chunks/8263.js +0 -81
- package/dist/standalone/.next/server/chunks/8392.js +0 -126
- package/dist/standalone/.next/server/chunks/9120.js +0 -78
- package/dist/standalone/.next/server/chunks/9507.js +0 -1
- package/dist/standalone/.next/static/6jhPk8sOUI3wRf_j1l5vY/_buildManifest.js +0 -1
- package/dist/standalone/.next/static/chunks/3021-9ced2d55bf2cbf77.js +0 -1
- package/dist/standalone/.next/static/chunks/app/_global-error/page-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/access/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/account-project-bindings/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/limits/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/limits/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/reset-credits/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/agent/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/answer/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/artifact/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/attach-command/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/attention/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/board/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/bridge/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/conversation-host/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/conversation-host/targets/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/conversations/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/files/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/flows/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/image/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/inbox/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/limits/history/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/limits/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/log/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/log/suggestions/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/logs/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/pipelines/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/proc/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/projects/create/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/projects/directories/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/push/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/resources/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/roles/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/hosts/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/session/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/session/title/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/spawn/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/staging/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/telegram/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/timeline/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tmux/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/transcribe/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tts/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/view/presence/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/workflows/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/page-dbe7cb010b4941d6.js +0 -96
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/css/282596e2aaee1aa4.css +0 -1
- package/dist/standalone/src/lib/inboxFiles.ts +0 -203
- /package/dist/standalone/.next/static/{6jhPk8sOUI3wRf_j1l5vY → e4qE_aCE0s0KQnnU6IWRw}/_ssgManifest.js +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";exports.id=160,exports.ids=[160,7733],exports.modules={227:(a,b,c)=>{c.d(b,{ET:()=>r,Gz:()=>m,H:()=>n,S:()=>p,XB:()=>q});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(28976),i=c(19339),j=c(45491);(0,h.E)("codex-native-parent-thread").clear(),(0,h.E)("codex-native-parent-thread-v2").clear();let k=(0,h.E)("codex-native-session-meta-v1"),l=/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i;function m(a){return g().basename(a).match(l)?.[0]??null}function n(a,b,c){let d=k.get(a);if(d&&d.size===b&&d.mtimeMs===c)return{parent:d.parent,forkedFrom:d.forkedFrom,complete:!0};let e=null,f=null,g=(0,i.zy)(a,b,c,{maxBytes:65536});if(!g.complete||!g.value)return{parent:d?.parent??null,forkedFrom:d?.forkedFrom??null,complete:!1};for(let a of g.value.text.split("\n"))if(a.includes('"session_meta"'))try{let b=JSON.parse(a),c=(0,j.xK)(b.payload);if(!c)continue;let d=(0,j.xK)(c.source),g=(0,j.xK)(d?.subagent),h=(0,j.xK)(g?.thread_spawn),i=(0,j.r$)(c.parent_thread_id),k=(0,j.r$)(h?.parent_thread_id);e=i??k,f=(0,j.r$)(c.forked_from_id);break}catch{continue}return k.set(a,{size:b,mtimeMs:c,parent:e,forkedFrom:f}),{parent:e,forkedFrom:f,complete:!0}}function o(a,b){if(void 0!==b)return b;try{return e().statSync(a).mtimeMs}catch{return null}}function p(a,b,c){let d,e=o(a,c);return null===e?null:({value:(d=n(a,b,e)).parent,complete:d.complete}).value}function q(a,b,c){let d=o(a,c);return null===d?null:n(a,b,d).forkedFrom}function r(a,b,c){return null!==p(a,b,c)}},7733:(a,b,c)=>{c.r(b),c.d(b,{CODEX_VIEWER_SPAWN_FEATURES:()=>v,NATIVE_MULTI_AGENT_HOOK_MATCHER:()=>p,NATIVE_MULTI_AGENT_TOOLS:()=>o,NATIVE_SUBAGENT_DENY_MESSAGE:()=>t,VIEWER_SPAWN_CAPABILITY_ENV:()=>r,VIEWER_SPAWN_CAPABILITY_HEADER:()=>k,VIEWER_SPAWN_ENDPOINT:()=>q,VIEWER_SPAWN_PROMPT_FENCE:()=>u,applyClaudeSpawnPolicy:()=>H,claudeSpawnPolicyPaths:()=>x,fenceViewerSpawnPrompt:()=>I,prepareManagedClaudeSpawnHome:()=>G,resolveClaudeMcpServers:()=>E,viewerMcpRegistered:()=>F,viewerMcpServerEntry:()=>w});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(77598),i=c.n(h),j=c(23953);let k="x-llv-spawn-capability",l="LLV_MANAGED_NATIVE_SUBAGENT_DENY=1 ",m=".llv",n=["enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers"],o=Object.freeze(["Task","Agent","Workflow","TeamCreate","TeamDelete","SendMessage"]),p=o.join("|"),q="http://127.0.0.1:8898/api/spawn",r="LLV_SPAWN_CAPABILITY",s=`Send header ${k}: $${r}.`,t=`Sub-agents are disabled on this surface. Spawn через POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?} and ${s} The worker then appears on the board with correct lineage.`,u=`Viewer spawn policy: avoid native sub-agent, collaboration, and background-agent features. Spawn every helper through POST ${q} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?}. ${s} The worker appears on the board with correct lineage.`,v={plugins:!1,apps:!1,multi_agent:!1};function w(a=process.cwd()){let b=[g().resolve(a,"bin","mcp-server.mjs"),g().resolve(a,"..","..","bin","mcp-server.mjs")].find(a=>e().existsSync(a));if(!b)throw Error(`Viewer MCP launcher could not be resolved from package cwd: ${a}`);return{command:"bun",args:[b]}}function x(a,b){if(!/^[A-Za-z0-9_-]{1,128}$/.test(b))throw Error("Claude spawn policy profile id is invalid");let c=g().join(a,m,"hooks","deny-native-subagents.sh");return{settingsPath:g().join(a,m,"spawn-settings",`${b}.json`),mcpConfigPath:g().join(a,m,"spawn-mcp",`${b}.json`),hookPath:c,command:`${l}${z(c)}`}}function y(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function z(a){return"'"+a.replace(/'/g,"'\\''")+"'"}function A(a,b,c){e().mkdirSync(g().dirname(a),{recursive:!0,mode:448});let d=g().join(g().dirname(a),`.${g().basename(a)}.${process.pid}.${i().randomUUID()}.tmp`);try{e().writeFileSync(d,b,{mode:c}),e().chmodSync(d,c),e().renameSync(d,a)}finally{e().rmSync(d,{force:!0})}}function B(a){let b;if(!e().existsSync(a))return{};try{b=JSON.parse(e().readFileSync(a,"utf8"))}catch{throw Error(`Claude settings are invalid JSON: ${a}`)}let c=y(b);if(!c)throw Error(`Claude settings must contain a JSON object: ${a}`);return c}function C(a){return Array.isArray(a)?a.filter(a=>"string"==typeof a):[]}function D(a){if(!a)return{};let b=g().resolve(a),c=b;for(let a=b;;a=g().dirname(a)){if(e().existsSync(g().join(a,".git"))){c=a;break}if(g().dirname(a)===a)break}let d=g().join(c,".mcp.json");return e().existsSync(d)?y(B(d).mcpServers)??{}:{}}function E(a,b,c=g().join(a,".claude.json")){let d=e().existsSync(c)?B(c):{},f=y(d.mcpServers)??{},h=y(d.projects),i=b&&h?y(h[b]):null,j=D(b),k=y(i?.mcpServers)??{};return{...f,...j,...k}}function F(a,b,c){return null!==y(E(a,b,c).viewer)}function G(a,b){let c=g().join(a,".claude.json");try{let a=e().lstatSync(c);if(a.isSymbolicLink()||!a.isFile())throw Error(`Claude state path is unsafe: ${c}`)}catch(a){if("ENOENT"!==a.code)throw a}let d={};if(e().existsSync(c)){let a;try{a=JSON.parse(e().readFileSync(c,"utf8"))}catch{throw Error(`Claude state is invalid JSON: ${c}`)}let b=y(a);if(!b)throw Error(`Claude state must contain a JSON object: ${c}`);d=b}let f=void 0===d.projects?{}:y(d.projects);if(!f)throw Error(`Claude state projects must contain a JSON object: ${c}`);let h=void 0===f[b]?{}:y(f[b]);if(!h)throw Error(`Claude project state must contain a JSON object: ${b}`);A(c,JSON.stringify({...d,hasCompletedOnboarding:!0,bypassPermissionsModeAccepted:!0,projects:{...f,[b]:{...h,hasTrustDialogAccepted:!0,hasCompletedProjectOnboarding:!0}}},null,2)+"\n",384)}function H(a,b={}){var c,d;let f,h=g().join(a,"settings.json"),k=x(a,b.profileId??i().randomUUID()),m=e().existsSync(h),o=m?B(h):b.baseSettingsPath?B(b.baseSettingsPath):{},q=m?{}:o;if(!b.allowSubagents&&!0===o.disableAllHooks)throw Error("Claude settings disableAllHooks prevents the Viewer spawn policy from enforcing native sub-agent denial");if(!b.allowSubagents&&!0===o.allowManagedHooksOnly)throw Error("Claude settings allowManagedHooksOnly prevents the Viewer spawn policy from enforcing native sub-agent denial");let r=void 0===o.hooks?{}:y(o.hooks);if(!r)throw Error("Claude settings hooks must contain a JSON object");let s=function(a){if(void 0===a)return[];if(!Array.isArray(a))throw Error("Claude settings hooks.PreToolUse must be an array");return a.flatMap(a=>{let b=y(a);if(!b||!Array.isArray(b.hooks))return[a];let c=b.hooks.filter(a=>{var b;return!("string"==typeof(b=y(a)?.command)&&b.startsWith(l))});return c.length?[{...b,hooks:c}]:[]})}(r.PreToolUse);if(!b.allowSubagents){let a=`#!/bin/sh
|
|
2
2
|
printf '%s\\n' ${z(t)} >&2
|
|
3
3
|
exit 2
|
|
4
|
-
`;A(k.hookPath,a,448),s.push({matcher:p,hooks:[{type:"command",command:k.command}]})}let u=b.allowSubagents?q:{...q,disableAllHooks:!1,allowManagedHooksOnly:!1},v=(c=b.cwd,d=b.mcpServers,f=E(a,c,b.mcpStatePath),Object.fromEntries((0,j.c1)(d).flatMap(a=>{let b=y(f[a])??("viewer"===a?{type:"stdio",...w()}:null);return b?[[a,b]]:[]}))),F=new Set(Object.keys(v)),G=Object.keys(D(b.cwd)).filter(a=>!F.has(a)),I=Object.fromEntries(Object.entries(u).filter(([a])=>"mcpServers"!==a)),J=Object.fromEntries(n.flatMap(a=>void 0===o[a]?[]:[[a,o[a]]]));void 0!==o.enabledMcpjsonServers&&(J.enabledMcpjsonServers=C(o.enabledMcpjsonServers).filter(a=>F.has(a)));let K=[...new Set([...C(o.disabledMcpjsonServers),...G])];return K.length>0&&(J.disabledMcpjsonServers=K),A(k.settingsPath,JSON.stringify({...I,...J,hooks:{...r,PreToolUse:s}},null,2)+"\n",384),A(k.mcpConfigPath,JSON.stringify({mcpServers:v},null,2)+"\n",384),k}function I(a,b){return"codex"!==a?b:[b.trim(),u].filter(Boolean).join("\n\n")}},14310:(a,b,c)=>{c.d(b,{CL:()=>ap,D$:()=>ab,Oc:()=>T,fy:()=>am,hY:()=>aa,ot:()=>_,q0:()=>aq,tS:()=>B,xn:()=>ao});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(27146),k=c(38751),l=c(14928),m=c(46211),n=c(57718),o=c(28976),p=c(227),q=c(19339),r=c(45491),s=c(39733),t=c(99391);(0,o.E)("meta-v4").clear(),(0,o.E)("title-v2").clear(),(0,o.E)("meta-v6").clear();let u=(0,o.E)("meta-transcript-v7");(0,o.E)("project-overlay-v1").clear();let v=(0,o.E)("project-overlay-v2"),w=(0,o.E)("title-v5");(0,o.E)("conversation-search-v1").clear(),(0,o.E)("codex-project-v5").clear();let x=(0,o.E)("repo-path-from-slug-v1"),y=(0,o.E)("claude-cwd-v3"),z=(0,o.E)("session-started-at-v1"),A=q.Eu;function B(a,b,c){let d="claude-projects"===a&&i().basename(b).startsWith("agent-")&&b.endsWith(".jsonl")?b.slice(0,-6)+".meta.json":null;if(!d)return{size:c.size,mtimeMs:c.mtimeMs,sidecarSize:null,sidecarMtimeMs:null,complete:!0};try{let a=e().statSync(d);return{size:c.size,mtimeMs:c.mtimeMs,sidecarSize:a.size,sidecarMtimeMs:a.mtimeMs,complete:!0}}catch(a){return{size:c.size,mtimeMs:c.mtimeMs,sidecarSize:null,sidecarMtimeMs:null,complete:"ENOENT"===a.code}}}let C=["<","#","Caveat:","{","[","This session is being continued"];function D(a){return(0,k.G$)(a)}function E(a){let b=a.join(i().sep);return b?/^[A-Za-z]:$/.test(b)?b+i().sep:b:i().sep}function F(a){let b=i().sep+".claude"+i().sep+"worktrees"+i().sep,c=a.indexOf(b);if(c<0)return null;let d=a.slice(c+b.length).split(i().sep).filter(Boolean)[0];return d?{repo:a.slice(0,c),worktree:d}:null}function G(a){let b=a.split(i().sep);for(let a=1;a<b.length-1;a++){if("worktrees"!==b[a]&&".worktrees"!==b[a])continue;if(".claude"===b[a-1]||".codex"===b[a-1])break;let c=b[a+1];if(!c)break;return{repo:E(b.slice(0,a)),worktree:c}}return null}function H(a){let b=x.get(a);if(b&&b[0]>Date.now())return b[1];if(!a.startsWith("-"))return null;let c=[],d=[{pathname:i().parse(i().resolve(i().sep)).root,encoded:""}];for(let b=0;b<32&&d.length>0&&c.length<16;b+=1){let b=[];for(let f of d){let d;try{d=e().readdirSync(f.pathname,{withFileTypes:!0})}catch{continue}for(let g of d){let d=f.encoded+"-"+g.name.replace(/[^a-zA-Z0-9]/g,"-");if(d!==a&&!a.startsWith(d+"-"))continue;let h=i().join(f.pathname,g.name),j=g.isDirectory();if(!j&&g.isSymbolicLink())try{j=e().statSync(h).isDirectory()}catch{j=!1}j&&(d===a?c.push(h):b.push({pathname:h,encoded:d}))}}d=b.slice(0,64)}let f=c.filter(V),g=1===f.length?f[0]:1===c.length?c[0]:null;return x.set(a,[Date.now()+1e4,g]),g}function I(a){let b=i().sep+".codex"+i().sep+"worktrees"+i().sep,c=a.indexOf(b);if(c<0)return null;let[d,e]=a.slice(c+b.length).split(i().sep).filter(Boolean);return d&&e?{repo:"",worktree:d,projectHint:e}:null}let J=(0,o.E)("worktree-git"),K=(0,o.E)("project-info-cwd-v2"),L=(0,o.E)("persisted-project-v2");function M(a){return{project:m.Mv,displayName:m.MO,unresolved:!0,...a?{worktree:a}:{}}}function N(a,b,c){let d=(0,k.G$)(a);if(d===a&&d!==m.Mv&&!(0,m.z)(d))return M(b);let e=c?(0,m.im)(c):null,f=e?.project===d?e.displayName:(0,k.E2)().displayNames[d]??(0,m.rj)(d);return{project:d,displayName:f,...d===m.Mv?{unresolved:!0}:{},...b?{worktree:b}:{},...c?{repo:c}:{}}}let O="worktree-map.json",P=null,Q=!1;function R(){let a=(0,j.Pn)();if(P&&P.dir===a)return P.map;let b=new Map;try{let c=JSON.parse(e().readFileSync(i().join(a,O),"utf8"));for(let[a,d]of Object.entries(c))"string"==typeof d?.repo&&"string"==typeof d?.worktree&&b.set(a,{repo:d.repo,worktree:d.worktree})}catch{}return P={dir:a,map:b},Q=!1,b}function S(a){return R().get(a)??null}function T(){if(Q&&P){Q=!1;try{e().mkdirSync(P.dir,{recursive:!0}),e().writeFileSync(i().join(P.dir,O),JSON.stringify(Object.fromEntries(P.map)))}catch{}}}function U(a){var b;let c,d,f=J.get(a);if(f&&f[0]>Date.now())return f[1];let g=null;try{let b=i().join(a,".git");e().lstatSync(b).isFile()&&(g=function(a,b){let c=/^gitdir:\s*(.+?)\s*$/m.exec(b)?.[1];if(!c)return null;let d=i().resolve(a,c).split(i().sep),e=d.lastIndexOf("worktrees"),f=e>=0?d[e+1]:void 0;return f&&".git"===d[e-1]?{repo:E(d.slice(0,e-1)),worktree:f}:null}(a,e().readFileSync(b,"utf8")))}catch{}return J.set(a,[Date.now()+6e4,g]),g&&(b=g,(d=(c=R()).get(a))&&d.repo===b.repo&&d.worktree===b.worktree||(c.set(a,b),Q=!0)),g}function V(a){try{return e().lstatSync(i().join(a,".git")),!0}catch{return!1}}function W(a,b){if(null!==b)return b;let c=function(a){try{return JSON.parse(e().readFileSync(i().join((0,j.Pn)(),a),"utf8"))}catch{return null}}(`${a}.json`);return Array.isArray(c?.[a])?c[a]:[]}function X(a,b,c=!1){if("string"!=typeof a||!a.trim()||"string"!=typeof b||!b.trim())return null;let d=D(b.replace(/[^a-zA-Z0-9]/g,"-")),e=c||d!==a?i().basename(b):void 0,f=(0,m.V5)(b);return{project:a,worktree:e,...f?{repo:f}:{}}}function Y(a=(0,t.g)()){let b=(0,j.Pn)(),c=L.get("state");if(c&&c[0]>Date.now()&&c[1]===b&&c[2]===a)return c[3];let d=new Map,e=new Map,f=new Map,g=(a,b)=>{b&&"string"==typeof a&&a.trim()&&e.set(a,b),((a,b)=>{if(!b||"string"!=typeof a||!a.endsWith(".jsonl"))return;let c=i().basename(i().dirname(a));c.startsWith("-")&&f.set(c,b)})(a,b)},h=(0,l.M)(i().join(b,"state.sqlite"),["flows","workflows"]);for(let a of W("flows",h.get("flows")??null)){if(!a||"object"!=typeof a||Array.isArray(a))continue;let b=X(a.project,a.cwd);if(b&&"string"==typeof a.cwd)for(let c of(d.set(a.cwd,b),g(a.implementerPath,b),Array.isArray(a.rounds)?a.rounds:[]))!c||"object"!=typeof c||Array.isArray(c)||g(c.reviewerPath,b)}for(let a of W("workflows",h.get("workflows")??null)){if(!a||"object"!=typeof a||Array.isArray(a))continue;let b=X(a.project,a.repoDir);b&&"string"==typeof a.repoDir&&d.set(a.repoDir,b);let c=X(a.project,a.worktreeDir,!0);for(let e of(c&&"string"==typeof a.worktreeDir&&d.set(a.worktreeDir,c),Array.isArray(a.stageRuns)?a.stageRuns:[]))!e||"object"!=typeof e||Array.isArray(e)||g(e.agentPath,c??b);g(a.fixerPath,c??b)}let k={byCwd:d,byPath:e,bySlug:f};return L.set("state",[Date.now()+1e4,b,a,k]),k}let Z=/^\.openclaw(?:-[A-Za-z0-9._-]+)?$/;function $(a){let b=i().resolve(a);if("workspace"!==i().basename(b))return null;let c=i().dirname(b),d=process.env.OPENCLAW_STATE_DIR?.trim();return void 0!==d&&""!==d&&i().resolve(d)===c||i().dirname(c)===g().homedir()&&Z.test(i().basename(c))?{project:(0,m.qe)(b),displayName:"OpenClaw"}:null}function _(a,b){if(!a.trim())return null;let c=b??(0,t.g)(),d=K.get(a);if(d&&d[0]>Date.now()&&d[1]===c)return d[2];let e=ad(a);if(e)return K.set(a,[Date.now()+1e4,c,e]),e;let f=$(a);if(f)return K.set(a,[Date.now()+1e4,c,f]),f;let g=I(a),h=F(a)??G(a)??(g?U(a)??g:U(a));if(!h&&!V(a)&&!(h=S(a))){let b=Y(c).byCwd.get(a);if(b){let d=N(b.project,b.worktree,b.repo);return K.set(a,[Date.now()+1e4,c,d]),d}}let i=()=>{let b=(0,m.NP)(a);return b?{project:b.project,displayName:b.displayName,...h?.worktree?{worktree:h.worktree}:{}}:M(h?.worktree)},j=h?.repo||(0,m.V5)(a);if(!j){let b=g?.projectHint?N(g.projectHint,h?.worktree):i();return K.set(a,[Date.now()+1e4,c,b]),b}let k=(0,m.im)(j),l=k?{project:k.project,displayName:k.displayName,worktree:h?.worktree,repo:j}:i();return K.set(a,[Date.now()+1e4,c,l]),l}function aa(a){return _(a)?.project??null}function ab(a){let b=ad(a);if(b)return b.repo;if($(a))return;let c=F(a)??G(a)??(I(a)?U(a)??I(a):null)??U(a)??S(a);return c?.repo||(0,m.V5)(a)||void 0}function ac(a){let b="--codex-worktrees-",c=null,d=1/0;for(let e of["--claude-worktrees-",b,"--worktrees-"]){let b=a.indexOf(e);b>=0&&b<d&&(c=e,d=b)}if(!c||!Number.isFinite(d))return null;let e=a.slice(d+c.length);if(c===b){let a=e.indexOf("-");if(a<=0)return null;let b=e.slice(0,a),c=e.slice(a+1),d=["--claude-worktrees-","--codex-worktrees-","--worktrees-","-worktrees-"].map(a=>c.indexOf(a)).filter(a=>a>=0).sort((a,b)=>a-b)[0],f=void 0===d?c:c.slice(0,d);return f?{project:f,worktree:b}:null}let f=["--claude-worktrees-","--codex-worktrees-","--worktrees-","-worktrees-"].map(a=>e.indexOf(a)).filter(a=>a>=0).sort((a,b)=>a-b)[0],g=void 0===f?e:e.slice(0,f);if(!g)return null;let h=a.slice(0,d),i=D(h);return i?{project:i,worktree:g,repo:H(h)??void 0}:null}function ad(a){let b=a.split(i().sep),c=b.findIndex(a=>/^claude-\d+$/.test(a)),d=c>=0?b[c+1]:void 0,e=c>=0?b[c+2]:void 0;if(!d||!e||"scratchpad"!==b[c+3])return null;let f=ac(d);if(f?.repo){let a=(0,m.im)(f.repo);if(a)return{...a,worktree:f.worktree,repo:f.repo}}if(f)return N(f.project,f.worktree,f.repo);let g=H(d);if(g){let a=(0,m.im)(g);if(a)return{...a,repo:g}}let h=D(d);return h?N(h):null}function ae(a){let b="string"==typeof a?a.trim():"";return b&&!C.some(a=>b.startsWith(a))?b:null}function af(a,b){if("openclaw"===b){let b=(0,s.j5)(a);if(!b||"user"!==b.role)return null;let c=b.content;return"string"==typeof c?c.trim()||null:(0,r.Em)(c).filter(a=>"text"===a.type).map(a=>(0,r.r$)(a.text)??"").join(" ").trim()||null}if("codex"===b){let b=(0,r.xK)(a.payload)??{};if("user_message"===b.type)return("string"==typeof b.message?b.message.trim():"")||null;if("message"===b.type&&"user"===b.role)return(0,r.Em)(b.content).map(a=>(0,r.r$)(a.text)??(0,r.r$)(a.input_text)??"").join(" ").trim()||null}else if("user"===a.type){let b=(0,r.xK)(a.message)?.content;return"string"==typeof b?b.trim()||null:(0,r.Em)(b).filter(a=>"text"===a.type).map(a=>(0,r.r$)(a.text)??"").join(" ").trim()||null}return null}function ag(a,b,c){return b.size<=a.size||!c.complete||!c.value||c.value.read<a.headBytes||(0,q.HL)(c.value.bytes.subarray(0,a.headBytes))!==a.headFingerprint||null===a.value&&a.headBytes<A?null:{size:b.size,mtimeMs:b.mtimeMs,value:a.value,headBytes:c.value.read,headFingerprint:(0,q.HL)(c.value.bytes)}}function ah(a,b,c){return{size:a.size,mtimeMs:a.mtimeMs,value:c,headBytes:b.read,headFingerprint:(0,q.HL)(b.bytes)}}function ai(a,b){let c=y.get(a);if(c?.size===b.size&&c.mtimeMs===b.mtimeMs)return{value:c.value,complete:!0,headPreserved:!0};let d=(0,q.zy)(a,b.size,b.mtimeMs,{maxBytes:A});if(!d.complete||!d.value)return{value:c?.value??null,complete:!1,headPreserved:!1};if(c){let e=ag(c,b,d);if(e)return y.set(a,e),{value:e.value,complete:!0,headPreserved:!0}}let e=function(a){for(let b of a)try{let a=JSON.parse(b),c=(0,r.xK)(a),d=(0,r.r$)(c?.cwd)??(0,r.r$)((0,r.xK)(c?.payload)?.cwd);if(d)return d}catch{continue}return null}(d.value.text.split("\n").slice(0,25));return y.set(a,ah(b,d.value,e)),{value:e,complete:!0,headPreserved:!1}}function aj(a,b){let c=z.get(a);if(c?.size===b.size&&c.mtimeMs===b.mtimeMs)return{value:c.value,complete:!0,headPreserved:!0};let d=(0,q.zy)(a,b.size,b.mtimeMs,{maxBytes:A});if(!d.complete||!d.value)return{value:c?.value??null,complete:!1,headPreserved:!1};if(c){let e=ag(c,b,d);if(e)return z.set(a,e),{value:e.value,complete:!0,headPreserved:!0}}let e=null;for(let a of d.value.text.split("\n").slice(0,10))if(a.trim())try{let b=JSON.parse(a),c="string"==typeof b.payload?.timestamp?b.payload.timestamp:"string"==typeof b.timestamp?b.timestamp:null;if(c&&Number.isFinite(Date.parse(c))){e=new Date(c).toISOString();break}}catch{continue}return z.set(a,ah(b,d.value,e)),{value:e,complete:!0,headPreserved:!1}}function ak(a,b){let c=Y(b).byPath.get(a);return c?N(c.project,c.worktree,c.repo):null}function al(a,b,c){let d=w.get(a);if(d?.size===b.size&&d.mtimeMs===b.mtimeMs)return{value:d.value,complete:!0,headPreserved:!0};let e=(0,q.zy)(a,b.size,b.mtimeMs,{maxBytes:A});if(!e.complete||!e.value)return{value:d?.value??null,complete:!1,headPreserved:!1};if(d){let c=ag(d,b,e);if(c)return w.set(a,c),{value:c.value,complete:!0,headPreserved:!0}}let f=function(a,b){for(let c of a){let a;try{let b=JSON.parse(c);if(!b||"object"!=typeof b||Array.isArray(b))continue;a=b}catch{continue}if("summary"===a.type){let b=ae(a.summary);if(b)return b}if("ai-title"===a.type){let b=ae(a.aiTitle);if(b)return b}let d=ae(af(a,b));if(d)return d}return null}(e.value.text.split("\n").slice(0,151),c);return w.set(a,ah(b,e.value,f)),{value:f,complete:!0,headPreserved:!1}}function am(a,b,c){let d=function(a,b){try{let c=e().openSync(a,"r");try{let a=Buffer.alloc(Math.min(b,A)),d=e().readSync(c,a,0,a.length,0);return{text:a.toString("utf8",0,d),read:d}}finally{e().closeSync(c)}}catch(a){if("ENOENT"===a.code)return null;throw a}}(a,b);return d?function(a,b){let c=null,d=null;for(let e of a){let a;try{let b=JSON.parse(e);if(!b||"object"!=typeof b||Array.isArray(b))continue;a=b}catch{continue}"summary"===a.type&&(c??=ae(a.summary)),"ai-title"===a.type&&(c??=ae(a.aiTitle));let f=af(a,b);if(f&&(d??=f,(c??=ae(f))&&d))break}return{title:c,firstPrompt:d}}(d.text.split("\n").slice(0,151),c):{title:null,firstPrompt:null}}function an(a,b,c,d,e,f){let g=v.get(c);if(e&&g&&g.stateKey===f&&g.cwd===d)return{project:g.project,projectName:g.projectName,projectUnresolved:g.projectUnresolved,worktree:g.worktree,projectRoot:g.projectRoot};let h=null;if("codex-sessions"===a)h=(d?_(d,f):null)??ak(c,f);else if("claude-projects"===a){let a=i().relative(b,c).split(i().sep)[0]??"",e=ac(a);h=(d?_(d,f):null)??ak(c,f)??(e?N(e.project,e.worktree,e.repo):N(D(a)))}else if("openclaw-sessions"===a)h=(d?_(d,f):null)??ak(c,f);else if("claude-tasks"===a){let a,d=i().relative(b,c).split(i().sep)[0]??"";h=((a=Y(f).bySlug.get(d))?N(a.project,a.worktree,a.repo):null)??N(D(d))}let j={project:(h??=M()).project,projectName:h.displayName,projectUnresolved:h.unresolved,worktree:h.worktree,projectRoot:d?ab(d)??null:void 0};return e&&v.set(c,{...j,stateKey:f,cwd:d}),j}function ao(a,b,c,d,e=(0,t.g)()){let f=an(a,b,c,d.cwd,!0,e);return{...d,project:f.project,projectName:f.projectName,projectUnresolved:f.projectUnresolved,worktree:f.worktree,projectRoot:f.projectRoot}}function ap(a,b,c,d,e=(0,t.g)(),f=B(a,c,d)){var g;let h,j,k,l=u.get(c);if(f.complete&&l&&(g=l.identity,g.size===f.size&&g.mtimeMs===f.mtimeMs&&g.sidecarSize===f.sidecarSize&&g.sidecarMtimeMs===f.sidecarMtimeMs))h=l.metadata,j=!0,k=!0;else{let b=function(a,b,c,d){let e,f=i().basename(b),g=d.complete,h=null,j=null,k=null,l=null,m="claude",o="",q="plain",s=d.complete;if("codex-sessions"===a){let a=s?ai(b,c):{value:null,complete:!1,headPreserved:!1};if(s&&=a.complete,g=a.complete,e=a.value??void 0,s){let a=aj(b,c);s&&=a.complete,h=a.value}if(s){let a=(0,p.H)(b,c.size,c.mtimeMs);s&&=a.complete,j=a.parent,k=a.forkedFrom}if(m="codex",o="session",q="codex",s){let a=al(b,c,"codex");s&&=a.complete,l=a.value}l??="Codex session"}else if("claude-projects"===a){let a=s?ai(b,c):{value:null,complete:!1,headPreserved:!1};if(s&&=a.complete,g=a.complete,e=a.value??void 0,s){let a=aj(b,c);s&&=a.complete,h=a.value}if(q="claude",f.startsWith("agent-")){o="subagent";let a=s?null===d.sidecarSize?{value:null,complete:d.complete}:(0,r.Y6)(b.slice(0,-6)+".meta.json"):{value:null,complete:!1};s&&=a.complete;let e=a.value??{};if(!(l=(0,r.r$)(e.description)??(0,r.r$)(e.name)??null)&&s){let a=al(b,c,"claude");s&&=a.complete,l=a.value}l??="Subagent "+f.slice(6).split(".")[0]}else{if(o="session",s){let a=al(b,c,"claude");s&&=a.complete,l=a.value}l??="Claude session"}}else if("openclaw-sessions"===a){let a=s?ai(b,c):{value:null,complete:!1,headPreserved:!1};if(s&&=a.complete,g=a.complete,e=a.value??void 0,s){let a=aj(b,c);s&&=a.complete,h=a.value}if(m="openclaw",o="session",q="openclaw",s){let a=al(b,c,"openclaw");s&&=a.complete,l=a.value}l??="OpenClaw session"}else"claude-tasks"===a&&(m="shell",o="background",l="Background task "+f.split(".")[0]);return{metadata:{cwd:e,sessionStartedAt:h,nativeParentThreadId:j,nativeForkSourceThreadId:k,title:(0,n.cr)(l??f,120),engine:m,kind:o,fmt:q},complete:s,cwdComplete:g}}(a,c,d,f);h=b.metadata,j=b.complete,k=b.cwdComplete,j&&u.set(c,{identity:f,metadata:h})}let m=an(a,b,c,h.cwd,k,e);return{description:{project:m.project,projectName:m.projectName,projectUnresolved:m.projectUnresolved,worktree:m.worktree,cwd:h.cwd,sessionStartedAt:h.sessionStartedAt,nativeParentThreadId:h.nativeParentThreadId,nativeForkSourceThreadId:h.nativeForkSourceThreadId,projectRoot:m.projectRoot,title:h.title,engine:h.engine,kind:h.kind,fmt:h.fmt},complete:j}}function aq(a,b,c,d,e=(0,t.g)(),f=B(a,c,d)){return ap(a,b,c,d,e,f).description}},15641:(a,b,c)=>{function d(a,b,c,e,f=Date.now()){let g=new Map(b.map(a=>[a.accountId,a])),h=new Set(e),i=a.filter(a=>a.authPresent).map(a=>({account:a,capacity:function(a,b){if(!a)return{kind:"unknown"};let c=Date.parse(a.observedAt),d=Date.parse(a.authCheckedAt);if(!Number.isFinite(c)||!Number.isFinite(d)||b<c||b<d||b-c>3e5||b-d>3e5)return{kind:"unknown"};if(!a.authenticated)return{kind:"unavailable"};if(!a.limits)return{kind:"unknown"};let e=[a.limits.session,a.limits.weekly,a.limits.flagship??null].filter(a=>null!==a);if(!e.length||e.some(a=>!Number.isFinite(a.usedPercent)||a.usedPercent<0||a.usedPercent>100||null!==a.resetsAt&&(!Number.isSafeInteger(a.resetsAt)||a.resetsAt<0)))return{kind:"unknown"};let f=Math.min(...e.map(a=>100-a.usedPercent));if("live"!==a.provenance.source&&!("transcript"===a.provenance.source&&f<=0))return{kind:"unknown"};if(f>0)return{kind:"available",remaining:f};let g=e.filter(a=>a.usedPercent>=100),h=Math.floor(b/1e3);return g.some(a=>null===a.resetsAt||a.resetsAt<=h)?{kind:"exhausted",resetsAt:null}:{kind:"exhausted",resetsAt:Math.max(...g.map(a=>a.resetsAt))}}(g.get(a.id),f)})).filter(a=>"unavailable"!==a.capacity.kind);if(!i.length)return{kind:"unavailable"};for(let a of[!1,!0]){let b=i.filter(b=>h.has(b.account.id)===a),d=b.flatMap(a=>"available"===a.capacity.kind?[{...a,remaining:a.capacity.remaining}]:[]).sort((a,b)=>b.remaining-a.remaining||Number(b.account.id===c)-Number(a.account.id===c)||a.account.id.localeCompare(b.account.id));if(d[0])return{kind:"available",accountId:d[0].account.id};let e=b.filter(a=>"unknown"===a.capacity.kind).sort((a,b)=>Number(b.account.id===c)-Number(a.account.id===c)||a.account.id.localeCompare(b.account.id));if(e[0])return{kind:"available",accountId:e[0].account.id}}let j=i.flatMap(a=>"exhausted"===a.capacity.kind&&null!==a.capacity.resetsAt?[a.capacity.resetsAt]:[]);return{kind:"exhausted",resetsAt:j.length?Math.min(...j):null}}c.d(b,{h:()=>g,X:()=>f});var e=c(53424);function f(a){let b=(0,e.sx)(a.project,a.engine,a.bindings),c=a.requestedId?.trim()||null;if(c&&null!==b&&!b.includes(c))return{kind:"not_allowed",accountId:c,allowedAccountIds:b};if(c)return{kind:"available",accountId:c};let f=new Set(a.unavailableIds??[]);if(null===b&&0===f.size&&(a.unbound??"engine-default")==="engine-default")return{kind:"available",accountId:a.preferredId?.trim()||null};let g=null===b?[...a.accounts]:a.accounts.filter(a=>b.includes(a.id)),h=g.filter(a=>!f.has(a.id)),i=null===b||a.preferredId&&b.includes(a.preferredId)?a.preferredId??null:null,j=d(h,[...a.observations],i,[...a.excludedIds??[]],a.now);if("available"===j.kind)return j;let k=b??g.map(a=>a.id);return"exhausted"===j.kind?{kind:"exhausted",resetsAt:j.resetsAt,allowedAccountIds:k}:{kind:"unavailable",allowedAccountIds:k}}function g(a){let b=(0,e.sx)(a.project,a.engine,a.bindings),c=a.targetId.trim();if(null===b)return{kind:"available",accountId:c};if(!b.includes(c))return{kind:"not_allowed",accountId:c,allowedAccountIds:b};let f=d([{id:c,authPresent:!0}],[...a.observations],c,[],a.now);return"available"===f.kind?{kind:"available",accountId:c}:"exhausted"===f.kind?{kind:"exhausted",resetsAt:f.resetsAt,allowedAccountIds:b}:{kind:"unavailable",allowedAccountIds:b}}},19339:(a,b,c)=>{c.d(b,{Eu:()=>h,HL:()=>j,zy:()=>m});var d=c(77598),e=c(73024),f=c.n(e),g=c(28976);let h=131072,i=(0,g.E)("scanner-head-v1");function j(a){return(0,d.createHash)("sha256").update(a).digest("base64url")}function k(a){let b=0;for(let c of a)10===c&&(b+=1);return b}function l(a,b){let c=Buffer.from(a);return{value:{bytes:c,text:c.toString("utf8"),read:c.length},complete:b}}function m(a,b,c,d={}){let e=Math.min(Math.max(0,b),Math.max(0,d.maxBytes??h)),g=Math.max(0,d.lineLimit??0),j=i.get(a),n=j?.size===b&&j.mtimeMs===c,o=n?j.bytes:Buffer.alloc(0),p=g>0?k(o):0;if(o.length>=e||j?.eof&&n||g>0&&p>=g)return l(o.subarray(0,e),!0);let q=o.length>0?[o]:[],r=o.length,s=!1,t=null;try{for(t=f().openSync(a,"r");r<e;){let a=Math.min(h,e-r),b=Buffer.allocUnsafe(a),c=0,d=!1;for(;c<a;){let e=f().readSync(t,b,c,a-c,r+c);if(0===e){d=!0;break}if(g>0&&(p+=k(b.subarray(c,c+e))),c+=e,g>0&&p>=g)break}if(c>0&&(q.push(c===b.length?b:Buffer.from(b.subarray(0,c))),r+=c),g>0&&p>=g){s=!0;break}if(d)break}s||=r>=e}catch{return{value:null,complete:!1}}finally{null!==t&&f().closeSync(t)}let u=1===q.length?q[0]:Buffer.concat(q,r);if(!s)return l(u,!1);var v={size:b,mtimeMs:c,bytes:u,eof:r>=b};i.delete(a);let w=0;for(let a of i.values())w+=a.bytes.length;for(;i.size>0&&(i.size>=2048||w+v.bytes.length>0x2000000);){let a=i.keys().next().value;if(void 0===a)break;w-=i.get(a)?.bytes.length??0,i.delete(a)}return i.set(a,v),l(u,!0)}},28976:(a,b,c)=>{c.d(b,{E:()=>e});let d=globalThis;function e(a){return d.__llvCaches??={},d.__llvCaches[a]??=new Map,d.__llvCaches[a]}},30033:(a,b,c)=>{c.d(b,{o:()=>f});var d=c(38751),e=c(14310);function f(a,b,c={}){let e=a?.project?.trim()||b?.project?.trim()||"";if(e)return(0,d.G$)(e);let h=g(b?.cwd);if(h)return h;let i=c.project?.trim();return i?(0,d.G$)(i):g(c.cwd)}function g(a){let b=a?.trim();if(!b)return null;let c=(0,e.hY)(b);return c?(0,d.G$)(c):null}},38751:(a,b,c)=>{c.d(b,{E2:()=>s,G$:()=>r,JC:()=>v,YX:()=>x,oh:()=>y});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(27146),k=c(14928),l=c(46211);let m=null;function n(){return(0,j.BQ)("project-aliases.json")}function o(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=Object.entries(a);return b.every(([a,b])=>!!a.trim()&&"string"==typeof b&&!!b.trim())?Object.fromEntries(b):null}function p(){let a,b=n();try{a=g().statSync(b)}catch{return(m={file:b,mtimeMs:-1,size:-1,snapshot:{aliases:{},displayNames:{}}}).snapshot}if(m&&m.file===b&&m.mtimeMs===a.mtimeMs&&m.size===a.size)return m.snapshot;try{let c=JSON.parse(g().readFileSync(b,"utf8")),d=1===c.schemaVersion?o(c.aliases):null,e=1===c.schemaVersion?o(c.displayNames):null,f=d&&e?{aliases:d,displayNames:e}:{aliases:{},displayNames:{}};return m={file:b,mtimeMs:a.mtimeMs,size:a.size,snapshot:f},f}catch{let c={aliases:{},displayNames:{}};return m={file:b,mtimeMs:a.mtimeMs,size:a.size,snapshot:c},c}}function q(a,b){let c=a,d=new Set;for(;b[c]&&!d.has(c);)d.add(c),c=b[c];return d.has(c)?a:c}function r(a){return q(a,p().aliases)}function s(){let a=p();return{aliases:{...a.aliases},displayNames:{...a.displayNames}}}function t(a){try{let b=JSON.parse(g().readFileSync((0,j.BQ)(a),"utf8"));return b&&"object"==typeof b&&!Array.isArray(b)?b:null}catch{return null}}function u(a,b,c){let d=(["flows","pipelines","workflows"].includes(b)?(0,k.Vx)((0,j.BQ)("state.sqlite"),b):null)??t(a)?.[b];if(!Array.isArray(d))return[];let e=[];for(let a of d)!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.project&&a.project.trim()&&"string"==typeof a[c]&&a[c].trim()&&e.push([a.project,a[c]]);return e}function v(){let a=function(){let a=t("worktree-map.json");if(!a)return new Map;let b=new Map;for(let[c,d]of Object.entries(a)){if(!d||"object"!=typeof d||Array.isArray(d))continue;let a=d.repo;"string"==typeof a&&a.trim()&&b.set(c,a)}return b}(),b=[...u("flows.json","flows","cwd"),...u("pipelines.json","pipelines","repoDir"),...u("workflows.json","workflows","repoDir")],c=new Map;for(let[d,e]of b){let b=(0,l.V5)(e)??a.get(e),f=b?(0,l.im)(b):null;if(!f)continue;let g=c.get(d)??new Map,h=g.get(f.project)??{registration:{source:d,target:f.project,displayName:f.displayName},records:0};h.records+=1,g.set(f.project,h),c.set(d,g)}let d=[],e=[];for(let[a,b]of c){if(b.has(a)){b.size>1&&e.push(a);continue}let c=[...b.values()].sort((a,b)=>b.records-a.records),f=c.reduce((a,b)=>a+b.records,0),g=c[0];2*g.records>f?d.push(g.registration):e.push(a)}let f=function(a){let b=new Map(a.map(a=>[a.source,a.target])),c=new Set,d=new Set;for(let[a,e]of[["tasks.json","tasks"],["flows.json","flows"],["pipelines.json","pipelines"],["workflows.json","workflows"]]){let f=new Map;for(let g of function(a,b){let c=(["flows","pipelines","workflows"].includes(b)?(0,k.Vx)((0,j.BQ)("state.sqlite"),b):null)??t(a)?.[b];return Array.isArray(c)?c.filter(a=>!!a&&"object"==typeof a&&!Array.isArray(a)):[]}(a,e)){if("string"!=typeof g.id||!g.id.trim()||"string"!=typeof g.project||!g.project.trim())continue;let a=r(g.project),h=b.get(a)??a,i=`${h}\0${g.id}`,j=f.get(i);j&&j!==a?(c.add(`${e} id collision`),b.has(j)&&d.add(j),b.has(a)&&d.add(a)):f.set(i,a)}}return{labels:[...c],sources:d}}(d);return e.push(...f.labels),{registrations:d.filter(a=>!f.sources.has(a.source)),conflicts:e}}function w(a){let b=p(),c={...b.aliases},d={...b.displayNames};for(let b of a){let a=b.source.trim(),e=q(b.target.trim(),c),f=b.displayName.trim();if(!a||!e||!f)return null;let g=c[a]?q(c[a],c):null;if(g&&g!==e)return null;a!==e&&(c[a]=e),d[e]=f}return{aliases:c,displayNames:d}}function x(a){return null!==w(a)}function y(a){if(0===a.length)return!0;let b=w(a);if(!b)return!1;let c=n(),d=i().join(i().dirname(c),`.${i().basename(c)}.${process.pid}.${e().randomUUID()}.tmp`);try{return g().mkdirSync(i().dirname(c),{recursive:!0,mode:448}),g().writeFileSync(d,JSON.stringify({schemaVersion:1,...b},null,2)+"\n",{encoding:"utf8",mode:384}),g().renameSync(d,c),m=null,p(),!0}catch{try{g().rmSync(d,{force:!0})}catch{}return!1}}},39733:(a,b,c)=>{c.d(b,{Re:()=>h,j5:()=>g,mu:()=>f});var d=c(45491);let e=[".trajectory.",".checkpoint.",".acp-stream.",".deleted.",".bak"];function f(a){return!!a.endsWith(".jsonl")&&!e.some(b=>a.includes(b))}function g(a){return"message"===a.type?(0,d.xK)(a.message):null}function h(a){let b=g(a);return b&&"assistant"===b.role?"openclaw"===(0,d.r$)(b.provider)?null:b:null}},44405:(a,b,c)=>{c.d(b,{f:()=>j});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h);function j(a,b){g().mkdirSync(i().dirname(a),{recursive:!0});let c=i().join(i().dirname(a),`.${i().basename(a)}.${process.pid}.${e().randomUUID()}.tmp`),d=null;try{d=g().openSync(c,"wx",384),g().writeFileSync(d,`${JSON.stringify(b,null,2)}
|
|
5
|
-
`,"utf8"),g().fsyncSync(d),g().closeSync(d),d=null,g().renameSync(c,a);let e=g().openSync(i().dirname(a),"r");try{g().fsyncSync(e)}finally{g().closeSync(e)}}finally{null!==d&&g().closeSync(d),g().rmSync(c,{force:!0})}}},45491:(a,b,c)=>{c.d(b,{Em:()=>l,Vg:()=>j,Vh:()=>h,Y6:()=>g,r$:()=>i,xK:()=>k});var d=c(73024),e=c.n(d);let f=(0,c(28976).E)("json-v3");function g(a){let b,c,d;try{let d=e().statSync(a);b=d.mtimeMs,c=d.size}catch(a){return{value:null,complete:"ENOENT"===a.code}}let g=f.get(a);if(g?.[0]===c&&g[1]===b)return{value:g[2],complete:!0};try{d=JSON.parse(e().readFileSync(a,"utf8"))}catch{return{value:null,complete:!1}}let h=d&&"object"==typeof d&&!Array.isArray(d)?d:null;return f.set(a,[c,b,h]),{value:h,complete:!0}}function h(a){return g(a).value}function i(a){return"string"==typeof a?a:null}function j(a){return"number"==typeof a&&Number.isFinite(a)?a:null}function k(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function l(a){return Array.isArray(a)?a.filter(a=>null!==a&&"object"==typeof a&&!Array.isArray(a)):[]}},46211:(a,b,c)=>{c.d(b,{MO:()=>m,Mv:()=>l,NP:()=>o,V5:()=>t,im:()=>u,qe:()=>p,rj:()=>q,z:()=>n});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(48161),i=c.n(h),j=c(76760),k=c.n(j);let l="project_unresolved",m="Unresolved project";function n(a){return/^(?:repo|dir)-[0-9a-f]{32}$/.test(a)}function o(a){let b=(()=>{try{return g().realpathSync.native(a)}catch{return k().resolve(a)}})(),c=k().basename(b);if(!c||b===k().sep)return null;let d=b===i().homedir()?`home-${c}`:c;return{project:p(b),displayName:d}}function p(a){return`dir-${e().createHash("sha256").update(`dir:${a}`).digest("hex").slice(0,32)}`}function q(a){return a===l?m:a}function r(a){try{return g().statSync(k().join(a,"HEAD")).isFile()}catch{return!1}}function s(a){let b=k().join(a,".git");try{let c=g().lstatSync(b);if(c.isDirectory())return r(b)?b:null;if(!c.isFile())return null;let d=g().readFileSync(b,"utf8").slice(0,4096),e=/^gitdir:\s*(.+?)\s*$/im.exec(d)?.[1];if(!e)return null;let f=k().resolve(a,e);return r(f)?f:null}catch{return null}}function t(a){let b=k().resolve(a);for(;;){if(s(b))return b;let a=k().dirname(b);if(a===b)return null;b=a}}function u(a){let b,c=s(a);if(!c)return null;try{b=g().readFileSync(k().join(function(a){try{let b=g().readFileSync(k().join(a,"commondir"),"utf8").trim();return b?k().resolve(a,b):a}catch{return a}}(c),"config"),"utf8")}catch{return null}let d=function(a){let b=!1;for(let c of a.split(/\r?\n/)){let a=/^\s*\[\s*remote\s+"([^"]+)"\s*\]\s*$/i.exec(c);if(a){b="origin"===a[1];continue}if(/^\s*\[/.test(c)){b=!1;continue}if(!b)continue;let d=/^\s*url\s*=\s*(.*?)\s*$/i.exec(c)?.[1],e=d?.replace(/\s+[;#].*$/,"").trim();if(e)return e}return null}(b),f=(()=>{try{return g().realpathSync.native(a)}catch{return k().resolve(a)}})(),h=d?function(a,b){let c=/^[a-z][a-z0-9+.-]*:\/\//i.test(a)?null:/^(?:[^@\s]+@)?([^:/\s]+):(.+)$/.exec(a);if(c){let a=c[1].toLowerCase(),b=c[2].replace(/^\/+|\/+$/g,"").replace(/\.git$/i,"");return b?`${a}/${b}`:null}try{let b=new URL(a);if("file:"===b.protocol){let a=k().resolve(b.pathname).replace(/\.git$/i,"");return`file:${a}`}let c=b.hostname.toLowerCase(),d=b.port?`:${b.port}`:"",e=b.pathname.replace(/^\/+|\/+$/g,"").replace(/\.git$/i,"");return c&&e?`${c}${d}/${e}`:null}catch{let c=k().resolve(b,a).replace(/\.git$/i,"");return`file:${c}`}}(d,a):`local:${f}`,i=h&&h.replace(/^file:/,"").split("/").filter(Boolean).at(-1)?.trim()||null;if(!h||!i)return null;let j=e().createHash("sha256").update(h).digest("hex").slice(0,32);return{project:`repo-${j}`,displayName:i,canonicalRemote:h}}},47473:(a,b,c)=>{c.d(b,{CC:()=>l,Hy:()=>j,Pk:()=>o,Zx:()=>g,gy:()=>i,h1:()=>k,in:()=>f,kW:()=>n,rM:()=>p,t6:()=>h});var d=c(77598),e=c.n(d);let f=["image/png","image/jpeg","image/gif","image/webp"],g="structured-image-v1",h="The selected Codex model does not advertise image input through app-server.",i="Structured image protocol is unavailable for this host.";class j extends Error{constructor(){super("structured message text exceeds the 32000-byte envelope bound"),this.name="StructuredEnvelopeTooLargeError"}}function k(a){if(Buffer.byteLength(a,"utf8")>32e3)throw new j}function l(a){let b="image/jpg"===a.toLowerCase()?"image/jpeg":a.toLowerCase();return f.includes(b)?b:null}function m(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b="string"==typeof a.mime?l(a.mime):null;return b&&"string"==typeof a.sha256&&/^[a-f0-9]{64}$/.test(a.sha256)&&Number.isSafeInteger(a.bytes)&&!(a.bytes<=0)?{sha256:a.sha256,mime:b,bytes:a.bytes}:null}function n(a,b){if(!Array.isArray(a)||a.length>b)return null;let c=a.map(m);return c.every(a=>null!==a)?c:null}function o(a){let b=JSON.stringify({text:a.text,images:a.images.map(({sha256:a,mime:b,bytes:c})=>({sha256:a,mime:b,bytes:c}))});return e().createHash("sha256").update(b).digest("hex")}function p(a,b){let c={text:a,images:b.map(a=>({...a}))};if(!c.text.trim()&&0===c.images.length)throw Error("message content is required");return{content:c,contentDigest:o(c)}}},53424:(a,b,c)=>{c.d(b,{$8:()=>k,FV:()=>n,Uq:()=>i,ed:()=>o,sx:()=>m});var d=c(73024),e=c.n(d);c(76760);var f=c(27146),g=c(38751);c(44405),c(63685);let h="account-project-bindings.json";class i extends Error{constructor(a){super(`the account↔project binding record ${h} is unreadable (${a}); no account may be selected for a project until it is repaired or removed`),this.reason=a,this.name="AccountProjectBindingsUnreadableError"}}function j(){let a,b,c=(0,f.BQ)(h);try{a=e().readFileSync(c,"utf8")}catch(b){let a=b.code;if("ENOENT"===a){let a=function(a){try{return e().lstatSync(a),{absent:!1,reason:"an entry at the record's pathname could not be read (a dangling link)"}}catch(b){let a=b.code;if("ENOENT"===a)return{absent:!0};return{absent:!1,reason:a?`the record could not be read and its pathname could not be inspected (${a})`:"the record could not be read and its pathname could not be inspected"}}}(c);if(a.absent)return[];throw new i(a.reason)}throw new i(a?`the read failed with ${a}`:"the read failed")}try{b=JSON.parse(a)}catch{throw new i("the record is not valid JSON")}if(!b||"object"!=typeof b||Array.isArray(b))throw new i("the record is not a binding file");let d=b;if(1!==d.schemaVersion)throw new i("number"==typeof d.schemaVersion?`the record's schemaVersion ${d.schemaVersion} is not supported`:"the record names no supported schemaVersion");let g=function(a){if(!Array.isArray(a))return null;let b=[];for(let c of a){if(!c||"object"!=typeof c||Array.isArray(c)||"claude"!==c.engine&&"codex"!==c.engine||"string"!=typeof c.accountId||!c.accountId.trim()||"string"!=typeof c.project||!c.project.trim()||"string"!=typeof c.createdAt||!c.createdAt.trim())return null;b.push({engine:c.engine,accountId:c.accountId,project:c.project,createdAt:c.createdAt})}return b}(d.bindings);if(!g)throw new i("the record's bindings are malformed");return g.map(a=>({...a,project:l(a.project)}))}function k(){let a=new Map;for(let b of j()){let c=[b.engine,b.accountId,b.project].join("\0"),d=a.get(c);(!d||b.createdAt<d.createdAt)&&a.set(c,{...b})}return[...a.values()].sort((a,b)=>a.engine.localeCompare(b.engine)||a.project.localeCompare(b.project)||a.accountId.localeCompare(b.accountId))}function l(a){return(0,g.G$)(a.trim())}function m(a,b,c=j()){let d="string"==typeof a&&a.trim()?l(a):"";if(!d)return null;let e=c.filter(a=>a.engine===b&&a.project===d).map(a=>a.accountId);return e.length?[...new Set(e)].sort():null}function n(a,b,c){let d;try{d=m(a,b)}catch(a){if(!(a instanceof i))throw a;return{kind:"binding-unreadable",reason:a.message}}return null===d||d.includes(c)?{kind:"within-pool"}:{kind:"outside-pool",allowedAccountIds:d}}function o(a,b,c){let d=a.allowedAccountIds.length?`allowed ${b} accounts: ${a.allowedAccountIds.join(", ")}`:`project ${c} allows no ${b} account`;if("not_allowed"===a.kind)return`${b} account ${a.accountId} is not allowed on project ${c} (${d})`;if("exhausted"===a.kind){let e=null===a.resetsAt?"unknown":new Date(1e3*a.resetsAt).toISOString();return`no allowed ${b} account has capacity for project ${c} (${d}); resetsAt=${e}`}return`no allowed ${b} account is available for project ${c} (${d})`}},57718:(a,b,c)=>{function d(a,b=160){let c=a.replace(/\[([^\]]+)\]\(([^)]+)\)/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/[*_~#>]+/g,"").replace(/\s+/g," ").trim().replace(/(?:\/[^\s)]+){3,}/g,a=>{if(a.length<=40)return a;let b=a.split("/").filter(Boolean);return b.length>=2?".../"+b.slice(-2).join("/"):a}).replace(/\s+/g," ").trim();return c.length>b?c.slice(0,b-1).trimEnd()+"…":c}c.d(b,{QE:()=>f,St:()=>g,V0:()=>i,bF:()=>j,cr:()=>d,tU:()=>h});let e=new Set(["codex session","claude session","codex","claude"]),f="title is required for every new spawn";function g(a,b=160){var c;if("string"!=typeof a)return null;let f=a.trim(),h=d(f,b);return!f||!/[\p{L}\p{N}]/u.test(h)||"string"==typeof(c=f)&&e.has(c.toLocaleLowerCase().replace(/[\p{P}\p{S}\s]+/gu," ").trim())?null:f.length>b?f.slice(0,b-1).trimEnd()+"…":f}function h(a,b=160){let c=g(a,b);return c?d(c,b):null}function i(a,b=60){return h(a?.split(/\r?\n/,1)[0]??"",b)}function j(a,b,c="New task"){let e="string"==typeof a&&d(a,40)||"agent",f=i(b,60)??h(c,60)??"New task";return d(`${e} \xb7 ${f}`,120)}},58577:(a,b,c)=>{c.d(b,{Em:()=>j,Lf:()=>n,MO:()=>i,QK:()=>h,Qq:()=>p,Ui:()=>m,WB:()=>q,lV:()=>k,pY:()=>l});var d=c(23953),e=c(72294),f=c(57718);let g=/^-?[A-Za-z0-9][A-Za-z0-9._-]{0,126}$/;function h(a){if("string"!=typeof a)return null;let b=a.trim();return g.test(b)?b:null}function i(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=h(a.project);return b&&("operator"===a.source||"relocation"===a.source)?{project:b,source:a.source,setAt:"string"==typeof a.setAt?a.setAt:"1970-01-01T00:00:00.000Z",operationId:"string"==typeof a.operationId?a.operationId:""}:null}function j(a){return a?.sandbox==="full"||a?.sandbox==="restricted"?a.sandbox:null}function k(a){return null===j(a)&&a?.readOnly===!0}function l(a){let b=j(a);return"full"===b?"danger-full-access":"restricted"===b?"workspace-write":a?.readOnly===!0?"read-only":null}function m(a={},b){return{cwd:"",model:null,effort:null,fast:null,permissionMode:null,readOnly:null,sandbox:null,allowSubagents:!1,title:null,project:null,parentConversationId:null,role:"worker",goal:null,plan:null,...a,mcpServers:(0,d.c1)(a.mcpServers,b),plugins:(0,e.sJ)(a.plugins)}}function n(a){return m({...a,title:(0,f.St)(a.title,120)??(0,f.bF)("migration successor",a.goal?.objective??a.cwd,"Conversation migration")})}function o(a,b){return a.pid===b.pid&&a.startIdentity===b.startIdentity}function p(a,b){if(a.kind!==b.kind||a.identity!==b.identity||a.epoch!==b.epoch)return!1;let c=a.tmuxHost,d=b.tmuxHost;return c&&d?c.kind===d.kind&&c.endpoint===d.endpoint&&o(c.server,d.server)&&c.paneId===d.paneId&&o(c.panePid,d.panePid)&&c.windowName===d.windowName&&o(c.agent,d.agent)&&c.argv.length===d.argv.length&&c.argv.every((a,b)=>a===d.argv[b]):c===d}function q(a,b){return a.operationId===b.operationId&&a.nativeId===b.nativeId&&a.path===b.path&&a.historyHash===b.historyHash&&a.continuityPaths.length===b.continuityPaths.length&&a.continuityPaths.every((a,c)=>a===b.continuityPaths[c])&&p(a.host,b.host)}},60546:(a,b,c)=>{c.d(b,{Jc:()=>g,MT:()=>i,mo:()=>k,n4:()=>f,rF:()=>h});var d=c(7733);let e=Object.freeze(["reviewer","verifier"]);function f(a){return"string"==typeof a&&e.includes(a)}class g extends Error{constructor(a,b){super(b.guidance),this.receipt=a,this.rejection=b,this.name="SpawnAdmissionError"}}function h(a){return`${"verifier"===a?"Verifier":"Reviewer"} sessions run every check in-session — filesystem, shell, GitHub, and browser access stay available, but child agents do not. For more perspectives, report the need to your parent so an operator or orchestrator adds a visible reviewer stage (POST /api/pipelines or POST ${d.VIEWER_SPAWN_ENDPOINT}).`}function i(a,b){return`Agent nesting is capped at depth ${b} and this launch would create a depth-${a} child. Finish delegated work in-session or report the need to your parent. An operator can raise maxAgentNestingDepth in Viewer spawn settings (PATCH /api/spawn/policy).`}function j(a,b){let c=new Set,d=b;for(;!c.has(d);){c.add(d);let b=a.conversationAliases[d];if(!b)break;d=b}return d}function k(a,b){if("agent"!==b.kind&&"container"!==b.kind)return null;let c="agent"===b.kind?b.conversationId:b.creatorConversationId,d=c?j(a,c):null;return{kind:b.kind,conversationId:d,role:d?function(a,b){let c=j(a,b),d=a.conversations[c]?.agentRole;if("string"==typeof d&&d.trim())return d;let e=a.lineageEdges[c]?.role;if("string"==typeof e&&e.trim())return e;let f=[...a.memberships[c]??[]].sort((a,b)=>b.createdAt.localeCompare(a.createdAt))[0];return f?.role??null}(a,d):null,depth:d?function(a,b){let c=j(a,b),d=a.conversations[c]?.delegationDepth;if(Number.isInteger(d)&&d>=0)return d;if((a.memberships[c]??[]).length>0)return 1;let e=0,f=new Set([c]),g=c;for(;e<8;){let b=a.lineageEdges[g];if(!b||"viewer-spawn"!==b.source)break;let c=j(a,b.parentConversationId);if(f.has(c))break;f.add(c),e+=1;let d=a.conversations[c]?.delegationDepth;if(Number.isInteger(d)&&d>=0)return d+e;g=c}return e}(a,d):0}}},63685:(a,b,c)=>{c.d(b,{Cu:()=>E,gB:()=>p,oV:()=>D});var d=c(16698),e=c(77598),f=c.n(e),g=c(73024),h=c.n(g),i=c(76760),j=c.n(i),k=c(27146),l=c(55686);let m=globalThis.__llvAccountMutationRuntime??={transactionContext:new d.AsyncLocalStorage,localWaiters:[],localHeld:!1},n=m.transactionContext,o=m.localWaiters;class p extends Error{constructor(a="account mutation is busy; retry shortly"){super(a),this.name="AccountMutationBusyError"}}function q(){let a=o.shift();a?a():m.localHeld=!1}async function r(){return m.localHeld?await new Promise(a=>o.push(a)):m.localHeld=!0,q}let s=function(){try{return h().readlinkSync("/proc/self/ns/pid")}catch{return null}}();function t(a,b){try{return Date.now()-h().statSync(a).mtimeMs>b}catch{return!1}}function u(a,b=null){if(null!==b&&t(a,b))return!0;try{let b=JSON.parse(h().readFileSync(a,"utf8"));if("number"==typeof b.pid&&Number.isInteger(b.pid)&&b.pid>0){if(("string"==typeof b.ns?b.ns:null)!==s)return t(a,3e4);if(!l.B.pidAlive(b.pid))return!0;if("string"!=typeof b.startIdentity)return!1;let c=l.B.processIdentity(b.pid);return null!==c&&c!==b.startIdentity}return t(a,3e4)}catch{return t(a,3e4)}}function v(a,b){try{JSON.parse(h().readFileSync(a,"utf8")).token===b&&h().rmSync(a,{force:!0})}catch{}}function w(){try{let a=JSON.parse(h().readFileSync((0,k.BQ)("account-mutation-revision.json"),"utf8"));return 1===a.version&&Number.isSafeInteger(a.revision)&&a.revision>=0?a.revision:0}catch{return 0}}function x(){let a=(0,k.BQ)("account-selection.lock"),b=`${a}.queue`;h().mkdirSync(b,{recursive:!0,mode:448});let c={pid:process.pid,startIdentity:l.B.processIdentity(process.pid),ns:s,token:f().randomUUID()},d=j().join(b,`${String(Date.now()).padStart(16,"0")}-${process.pid}-${f().randomUUID()}.json`);return h().writeFileSync(d,JSON.stringify(c),{encoding:"utf8",flag:"wx",mode:384}),{lock:a,queue:b,owner:c,ticket:d}}function y(a){let b=new Date;try{return h().utimesSync(a,b,b),!0}catch{return!1}}function z(a){let b,c=[];for(let b of h().readdirSync(a.queue).filter(a=>a.endsWith(".json")).sort()){let d=j().join(a.queue,b);if(d!==a.ticket&&u(d,6e5)){h().rmSync(d,{force:!0});continue}h().existsSync(d)&&c.push(d)}if(c[0]!==a.ticket)return null;try{b=h().openSync(a.lock,"wx",384)}catch(b){if("EEXIST"!==b.code)throw b;return u(a.lock)&&h().rmSync(a.lock,{force:!0}),null}try{h().writeFileSync(b,JSON.stringify(a.owner),"utf8"),h().fsyncSync(b)}catch(c){throw h().closeSync(b),h().rmSync(a.lock,{force:!0}),c}let d={active:!0,revision:w()},e=setInterval(()=>y(a.lock),1e4);return e.unref?.(),{context:d,release(){clearInterval(e),d.active=!1,h().closeSync(b),v(a.lock,a.owner.token),v(a.ticket,a.owner.token)}}}function A(a,b){return{context:a.context,release(){try{a.release()}finally{b()}}}}async function B(){let a=await r(),b=null;try{b=x();let d=Date.now();for(let e=0;e<2e3;e+=1){let e=z(b);if(e)return A(e,a);if(Date.now()-d>=1e4){d=Date.now();var c=b;if(!y(c.ticket))try{h().writeFileSync(c.ticket,JSON.stringify(c.owner),{encoding:"utf8",mode:384})}catch{}}await new Promise(a=>setTimeout(a,5))}throw Error("account mutation is busy; retry shortly")}catch(c){throw b&&v(b.ticket,b.owner.token),a(),c}}function C(a){!function(a){let b=(0,k.BQ)("account-mutation-revision.json");if(w()!==a)throw Error("account mutation revision fence changed while locked");let c=`${b}.${process.pid}.${f().randomUUID()}.tmp`;h().mkdirSync(j().dirname(b),{recursive:!0,mode:448});try{h().writeFileSync(c,JSON.stringify({version:1,revision:a+1})+"\n",{mode:384});let d=h().openSync(c,"r");try{h().fsyncSync(d)}finally{h().closeSync(d)}h().renameSync(c,b)}finally{h().rmSync(c,{force:!0})}}(a.revision),a.revision+=1}function D(a){let b=n.getStore();if(b?.active)return a();let c=function(){let a=function(){if(m.localHeld)throw new p("account mutation is busy in this process; retry shortly");return m.localHeld=!0,q}(),b=null;try{b=x();for(let c=0;c<2;c+=1){let c=z(b);if(c)return A(c,a)}throw new p}catch(c){throw b&&v(b.ticket,b.owner.token),a(),c}}();try{return C(c.context),n.run(c.context,a)}finally{c.release()}}async function E(a){let b=n.getStore();if(b?.active)return a();let c=await B();try{return C(c.context),await n.run(c.context,a)}finally{c.release()}}},65972:(a,b,c)=>{c.d(b,{AM:()=>k,LB:()=>o,Oh:()=>f,Vm:()=>t,dw:()=>n,eW:()=>l,vZ:()=>s});var d=c(55686),e=c(88623);function f(a,b=Date.now()){if(!a.enabled)return{kind:"unavailable",reason:"account-disabled",stale:a.stale,retryAt:null};if("failed"===a.authentication)return{kind:"unavailable",reason:"auth-failed",stale:a.stale,retryAt:null};if("exhausted"===a.limits){let c=function(a,b){if(!a)return null;let c=Date.parse(a);return Number.isFinite(c)&&c>b?new Date(c).toISOString():null}(a.retryAt,b);return c?{kind:"retry-at",reason:"hard-limit",stale:a.stale,retryAt:c}:{kind:"unavailable",reason:"hard-limit",stale:a.stale,retryAt:null}}return{kind:"admissible",basis:a.stale||"unknown"===a.authentication?"last-known":"current",stale:a.stale,retryAt:null}}let g=new Set(["starting","live","idle","handoff"]),h=new Set(["starting","pane-bound","host-verified","prompt-delivered","path-pending"]),i=new Set(["committed","rolled-back"]),j=new Set(["held","assigned","delivery-uncertain"]);function k(a={}){return{now:a.now??(()=>Date.now()),pidAlive:a.pidAlive??(a=>d.B.pidAlive(a)),processIdentity:a.processIdentity??(a=>d.B.processIdentity(a))}}function l(a,b){if(!a||!Number.isInteger(a.pid)||a.pid<=0||!b.pidAlive(a.pid))return!1;if(null===a.startIdentity)return!0;let c=b.processIdentity(a.pid);return null===c||c===a.startIdentity}function m(a,b){let c=a?Date.parse(a):NaN;return!!Number.isFinite(c)&&b.now()-c<3e5}function n(a,b){return!!g.has(a.status)&&(!!(l(a.host?.agent,b)||l(a.host?.panePid,b)||l(a.structuredHost?.process??null,b))||m(a.updatedAt,b))}function o(a,b,c){if(!h.has(b.state))return!1;if(l(b.admissionOwner,c)||l(b.verifiedHost?.agent,c)||l(b.pane?.panePid,c))return!0;let d=b.key?a.entries[(0,e.pp)(b.key)]:void 0;return!!(d&&n(d,c))||m(b.createdAt,c)}function p(a,b){let c=new Set,d=b;for(;!c.has(d);){c.add(d);let b=a.conversationAliases[d];if(!b)break;d=b}return d}function q(a,b,c,d){let e=b.generations.at(-1);if(e&&l(e.host?.tmuxHost?.agent,d))return!0;for(let a of c)if(function(a,b){return a.generations.some(a=>a.path===b)||a.continuityPaths.includes(b)}(b,a))return!0;if(b.migration&&!i.has(b.migration.phase))return!0;let f=c=>p(a,c)===b.id;for(let b of Object.values(a.heldDeliveries))if(j.has(b.state)&&(f(b.conversationId)||f(b.runtimeConversationId))&&("delivery-uncertain"!==b.state||m(b.createdAt,d)))return!0;for(let b of Object.values(a.receipts))if(f(b.conversationId)&&o(a,b,d))return!0;return!1}function r(a,b,c){let d=new Set;for(let e of Object.values(a.entries))e.key.engine===b&&n(e,c)&&d.add(e.artifactPath);return d}function s(a,b={}){let c=k(b),d=new Map,e=b=>{let e=d.get(b);return e||(e=r(a,b,c),d.set(b,e)),e},f=[];for(let b of Object.values(a.heldDeliveries)){if("delivery-uncertain"!==b.state||m(b.createdAt,c))continue;let d=a.conversations[p(a,b.conversationId)];d&&(q(a,d,e(d.engine),c)||f.push(b.id))}return f}function t(a,b,c,d={}){let e=k(d),f=r(a,b,e),g=[];for(let d of Object.values(a.conversations))d.engine===b&&d.generations.at(-1)?.accountId===c&&q(a,d,f,e)&&g.push(d.id);return g}},70160:(a,b,c)=>{c.d(b,{ph:()=>ad,Ou:()=>ah,rK:()=>am,fr:()=>J,agentRegistry:()=>bh,oP:()=>aV,hM:()=>aC,Vt:()=>z,l5:()=>a4,MA:()=>aW});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(57975),k=c(27146),l=c(76385),m=c(57718),n=c(63685),o=c(30033),p=c(53424),q=c(15641),r=c(58577),s=c(82093),t=c(74085),u=c(23953),v=c(65972),w=c(60546),x=c(88623),y=c(93151);function z(a){let b=(b,c={})=>{let d=c.entry??(b.key?a?.entries[(0,x.pp)(b.key)]:void 0);return"structured"===b.transport||null===b.transport&&(!0===c.structured||!!d?.structuredHost||"string"==typeof d?.structuredHostOperationId)},c=(a,c={})=>!b(a,c)||"completed"===a.state,d=new Set;if(a)for(let b of Object.values(a.receipts))!b.artifactPath||c(b)||("resume-successor"!==b.purpose||b.resumeSourcePath!==b.artifactPath)&&d.add(b.artifactPath);return{isStructured:b,allowsReceipt:c,allowsPath:a=>!d.has(a),pathForConversation:b=>{if(!a)return null;let c=new Set,e=b;for(;!c.has(e);){c.add(e);let b=a.conversationAliases[e];if(!b)break;e=b}let f=a.conversations[e];return f?.generations.findLast(a=>!d.has(a.path))?.path??null}}}let A=new Set(["entries","receipts","conversations","lineageEdges"]),B=["entries","receipts","lineageEdges","memberships","conversations","conversationAliases","migrationIntents","heldDeliveries","deliveryOperationOwners","pendingSuccessorCleanups","pendingSupersedence"],C=["importedResumePanes","legacyResumePanes","identityMigrations","conversationRevision","engineRouting","autoBalance","quotaObservations"];function D(a,b,c){if(null===a||"object"!=typeof a)return a;let d=c.get(a);if(d)return d;let e=new Proxy(a,{get:(a,d,e)=>D(Reflect.get(a,d,e),b,c),set:(a,c,d)=>(b(),Reflect.set(a,c,d)),deleteProperty:(a,c)=>(b(),Reflect.deleteProperty(a,c)),defineProperty:(a,c,d)=>(b(),Reflect.defineProperty(a,c,d))});return c.set(a,e),e}class E{markDecided(a){return this.decidedFiles.add(a),a}decideAssembled(a){return(0,u.$q)(a,this.mcpGrantPolicy),this.markDecided(a)}assertDecided(a){if(!this.decidedFiles.has(a))throw Error("agent registry rows cannot be persisted before the MCP grant decision has run (#739)")}constructor(a,b){this.filename=a,this.rowCache=new Map,this.revisionCache=null,this.readOnlyCache=null,this.decidedFiles=new WeakSet,g().mkdirSync(i().dirname(a),{recursive:!0,mode:448});const c=process.getBuiltinModule?.("bun:sqlite");if(!c)throw Error("SQLite registry modes require the Bun runtime");const{Database:d}=c;this.db=new d(a,{create:!0,strict:!0}),this.normalize=b.normalize,this.onWriterWait=b.onWriterWait,this.onSnapshotLoad=b.onSnapshotLoad,this.onRowPayloadRead=b.onRowPayloadRead,this.onRowPayloadParse=b.onRowPayloadParse,this.onRevisionQuery=b.onRevisionQuery,this.mcpGrantPolicy=b.mcpGrantPolicy,this.db.exec("PRAGMA busy_timeout = 5000; PRAGMA journal_mode = WAL; PRAGMA synchronous = FULL; PRAGMA foreign_keys = ON; PRAGMA auto_vacuum = INCREMENTAL;"),this.db.exec(`
|
|
4
|
+
`;A(k.hookPath,a,448),s.push({matcher:p,hooks:[{type:"command",command:k.command}]})}let u=b.allowSubagents?q:{...q,disableAllHooks:!1,allowManagedHooksOnly:!1},v=(c=b.cwd,d=b.mcpServers,f=E(a,c,b.mcpStatePath),Object.fromEntries((0,j.c1)(d).flatMap(a=>{let b=y(f[a])??("viewer"===a?{type:"stdio",...w()}:null);return b?[[a,b]]:[]}))),F=new Set(Object.keys(v)),G=Object.keys(D(b.cwd)).filter(a=>!F.has(a)),I=Object.fromEntries(Object.entries(u).filter(([a])=>"mcpServers"!==a)),J=Object.fromEntries(n.flatMap(a=>void 0===o[a]?[]:[[a,o[a]]]));void 0!==o.enabledMcpjsonServers&&(J.enabledMcpjsonServers=C(o.enabledMcpjsonServers).filter(a=>F.has(a)));let K=[...new Set([...C(o.disabledMcpjsonServers),...G])];return K.length>0&&(J.disabledMcpjsonServers=K),A(k.settingsPath,JSON.stringify({...I,...J,hooks:{...r,PreToolUse:s}},null,2)+"\n",384),A(k.mcpConfigPath,JSON.stringify({mcpServers:v},null,2)+"\n",384),k}function I(a,b){return"codex"!==a?b:[b.trim(),u].filter(Boolean).join("\n\n")}},8292:(a,b,c)=>{c.d(b,{Ng:()=>i,sd:()=>g,sj:()=>j});var d=c(18027),e=c(14310),f=c(20261);class g extends Error{constructor(a,b){super(a),this.status=b,this.name="LaunchMembershipError"}}let h={commit:a=>(0,f.to)(a),pipelineTaskIds:a=>{try{return(0,d.loadPipelinesForProjection)().find(b=>b.id===a)?.taskIds??null}catch{return null}},projectForCwd:a=>(0,e.ot)(a)?.project??null};function i(a,b,c,d=h){let e,f=function(a,b,c,d){let e,f={launchId:b.launchId,conversationId:b.conversationId,clientAttemptId:a.clientAttemptId??null,engine:"claude"===(e=a.engine)||"codex"===e?e:null},g=a.explicitProject?.trim()||d(a.cwd??"")||"other",h=a.launchProfile?.title?.trim()||a.launchDisplay?.prompt||null,i={kind:"launch",key:a.clientAttemptId??b.launchId},j=(a.taskIds??[]).filter(a=>a.trim());if(j.length)return{project:"",origin:i,title:h,identity:f,explicitTaskIds:j};let k=[];for(let b of[a.reviewsConversationId,a.parentConversationId])b&&!k.some(a=>a.conversationId===b)&&k.push({conversationId:b,path:b===a.parentConversationId?a.parentArtifactPath??null:null});if(a.origin?.kind==="container"&&a.origin.containerId){let b=a.origin.containerId;if("pipeline"===a.origin.container){let a=(c(b)??[]).filter(a=>a.trim());return a.length?{project:g,origin:i,title:h,identity:f,explicitTaskIds:a}:{project:g,origin:{kind:"pipeline",key:b},title:h,identity:f}}return{project:g,origin:{kind:"flow",key:b},title:h,identity:f,inherit:k}}return{project:g,origin:i,title:h,identity:f,...k.length?{inherit:k}:{}}}(a,b,d.pipelineTaskIds,d.projectForCwd);try{!(e=d.commit(f)).ok&&404===e.status&&f.explicitTaskIds&&!a.taskIds?.length&&a.origin?.containerId&&(f={...f,origin:{kind:"pipeline",key:a.origin.containerId},explicitTaskIds:void 0},e=d.commit(f))}catch(b){let a=`task membership could not be recorded: ${b instanceof Error?b.message:String(b)}`;throw c(a),new g(a,503)}if(!e.ok)throw c(e.error),new g(e.error,e.status);return e}function j(a,b=h){return i({engine:a.engine,cwd:a.cwd,clientAttemptId:a.clientAttemptId,explicitProject:a.explicitProject,launchProfile:a.launchProfile,launchDisplay:a.launchDisplay},a,()=>void 0,b)}},10988:(a,b,c)=>{c.d(b,{Pf:()=>A,h6:()=>w,z4:()=>z});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(27146),k=c(38751),l=c(89204),m=c(59646),n=c(39340);let o=(0,j.BQ)("tasks.json"),p=new WeakMap;function q(a,b,c){for(let b of a)b.project=(0,k.G$)(b.project);return(0,m.lw)(a,b,c),a.map(a=>{let c=b.get(a.id);return c&&(0,m.d4)(a)===c.revision&&p.has(c.ref)?p.get(c.ref):a})}function r(a,b){g().mkdirSync(i().dirname(a),{recursive:!0});let c=i().join(i().dirname(a),`.${i().basename(a)}.${process.pid}.${e().randomUUID()}.tmp`);g().writeFileSync(c,JSON.stringify(b,null,2)+"\n","utf8"),g().renameSync(c,a)}function s(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"number"==typeof a.x&&Number.isFinite(a.x)&&"number"==typeof a.y&&Number.isFinite(a.y)}function t(a){var b;return!(!a||"object"!=typeof a||Array.isArray(a))&&("string"==typeof a.path||null===a.path)&&(void 0===a.launchId||"string"==typeof a.launchId||null===a.launchId)&&(void 0===a.clientAttemptId||"string"==typeof a.clientAttemptId||null===a.clientAttemptId)&&(void 0===a.conversationId||"string"==typeof a.conversationId||null===a.conversationId)&&("number"==typeof a.panePid||null===a.panePid)&&(null===a.panePid||Number.isInteger(a.panePid)&&a.panePid>0)&&("delivered"===(b=a.state)||"failed"===b||"spawning"===b||"handoff"===b||"linked"===b)&&("string"==typeof a.error||null===a.error)&&"string"==typeof a.at}function u(a){return"pinned"===a||"unplaced"===a||"auto"===a}function v(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.clientRequestId&&"string"==typeof a.taskId}function w(a=o){return x(a).tasks}function x(a=o){var b;let c=function(a){try{return JSON.parse(g().readFileSync(a,"utf8"))}catch(a){if("ENOENT"===a.code)return;throw a}}(a);if(void 0===c)return{tasks:[],recentCreates:[],migrations:{}};if(!c||!Array.isArray(c.tasks))throw Error("invalid persisted task state");let d=c.tasks.map(a=>{let b=function(a){var b,c,d,e,f;let g,h;if(!a||"object"!=typeof a||Array.isArray(a)||!("string"==typeof a.id&&"string"==typeof a.project&&("inbox"===(b=a.status)||"assigned"===b||"blocked"===b||"done"===b)&&"string"==typeof a.text&&(void 0===a.details||"string"==typeof a.details)&&(void 0===a.placement||u(a.placement))&&(void 0===a.pos||s(a.pos))&&(g=void 0!==a.dueAt,h=void 0!==a.dueTz,!g&&!h||"string"==typeof a.dueAt&&"string"==typeof a.dueTz)&&(void 0===(c=a.attachments)||Array.isArray(c)&&c.every(n.tK))&&Array.isArray(a.assignments)&&a.assignments.every(t)&&(void 0===a.source||!(!(d=a.source)||"object"!=typeof d||Array.isArray(d))&&"string"==typeof d.path&&("string"==typeof d.ts||null===d.ts)&&"string"==typeof d.text&&"string"==typeof d.fingerprint&&("claude"===d.engine||"codex"===d.engine))&&(void 0===a.origin||!(!(e=a.origin)||"object"!=typeof e||Array.isArray(e))&&("conversation"===e.kind||"launch"===e.kind||"pipeline"===e.kind||"flow"===e.kind)&&"string"==typeof e.key&&e.key.length>0&&("pending"===e.refinement||"titled"===e.refinement)&&(void 0===e.refinedBy||"string"==typeof e.refinedBy)&&(void 0===e.refinedText||"string"==typeof e.refinedText))&&(void 0===a.board||"shown"===(f=a.board)||"hidden"===f)&&"string"==typeof a.createdAt&&"string"==typeof a.updatedAt))return null;let i=s(a.pos),j=u(a.placement)?a.placement:i?"pinned":"unplaced",l="pinned"===j&&i,o={...a,id:a.id,project:(0,k.G$)(a.project),status:a.status,text:a.text,...void 0!==a.details?{details:a.details}:{},placement:"pinned"!==j||i?j:"unplaced",...l?{pos:a.pos}:{},...void 0!==a.dueAt?{dueAt:a.dueAt,dueTz:a.dueTz}:{},...void 0!==a.attachments?{attachments:a.attachments}:{},assignments:a.assignments,...void 0!==a.source?{source:a.source}:{},...void 0!==a.origin?{origin:a.origin}:{},...void 0!==a.board?{board:a.board}:{},createdAt:a.createdAt,updatedAt:a.updatedAt};l||delete o.pos;try{Object.assign(o,{revision:(0,m.d4)(o)})}catch{return null}return o}(a);if(!b)throw Error("invalid persisted task row");return p.set(b,a),b});if(new Set(d.map(a=>a.id)).size!==d.length)throw Error("duplicate persisted task id");if(void 0!==c.recentCreates&&(!Array.isArray(c.recentCreates)||!c.recentCreates.every(v)))throw Error("invalid persisted task receipts");let e=c.recentCreates??[];if(void 0!==c.migrations&&!(!(!(b=c.migrations)||"object"!=typeof b||Array.isArray(b))&&Object.values(b).every(a=>"string"==typeof a)))throw Error("invalid persisted task migrations");return{tasks:d,recentCreates:e,migrations:{...c.migrations??{}}}}function y(a,b,c={}){return{tasks:a,...b.length?{recentCreates:b}:{},...Object.keys(c).length?{migrations:c}:{}}}function z(a,b=o){return(0,l.Ol)(b,"task state is busy",()=>{let c=x(b),d=(0,m.lU)(c.tasks),e=a(c.tasks);return e.tasks&&r(b,y(q(e.tasks,d,!0),c.recentCreates,c.migrations)),e.result})}function A(a,b=o){return(0,l.Ol)(b,"task state is busy",()=>{let c=x(b),d=(0,m.lU)(c.tasks),e=a(c);return e.state&&r(b,y(q(e.state.tasks,d,!0),e.state.recentCreates,e.state.migrations??c.migrations)),e.result})}},14310:(a,b,c)=>{c.d(b,{CL:()=>ap,D$:()=>ab,Oc:()=>T,fy:()=>am,hY:()=>aa,ot:()=>_,q0:()=>aq,tS:()=>B,xn:()=>ao});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(27146),k=c(38751),l=c(14928),m=c(46211),n=c(57718),o=c(28976),p=c(227),q=c(19339),r=c(45491),s=c(39733),t=c(99391);(0,o.E)("meta-v4").clear(),(0,o.E)("title-v2").clear(),(0,o.E)("meta-v6").clear();let u=(0,o.E)("meta-transcript-v7");(0,o.E)("project-overlay-v1").clear();let v=(0,o.E)("project-overlay-v2"),w=(0,o.E)("title-v5");(0,o.E)("conversation-search-v1").clear(),(0,o.E)("codex-project-v5").clear();let x=(0,o.E)("repo-path-from-slug-v1"),y=(0,o.E)("claude-cwd-v3"),z=(0,o.E)("session-started-at-v1"),A=q.Eu;function B(a,b,c){let d="claude-projects"===a&&i().basename(b).startsWith("agent-")&&b.endsWith(".jsonl")?b.slice(0,-6)+".meta.json":null;if(!d)return{size:c.size,mtimeMs:c.mtimeMs,sidecarSize:null,sidecarMtimeMs:null,complete:!0};try{let a=e().statSync(d);return{size:c.size,mtimeMs:c.mtimeMs,sidecarSize:a.size,sidecarMtimeMs:a.mtimeMs,complete:!0}}catch(a){return{size:c.size,mtimeMs:c.mtimeMs,sidecarSize:null,sidecarMtimeMs:null,complete:"ENOENT"===a.code}}}let C=["<","#","Caveat:","{","[","This session is being continued"];function D(a){return(0,k.G$)(a)}function E(a){let b=a.join(i().sep);return b?/^[A-Za-z]:$/.test(b)?b+i().sep:b:i().sep}function F(a){let b=i().sep+".claude"+i().sep+"worktrees"+i().sep,c=a.indexOf(b);if(c<0)return null;let d=a.slice(c+b.length).split(i().sep).filter(Boolean)[0];return d?{repo:a.slice(0,c),worktree:d}:null}function G(a){let b=a.split(i().sep);for(let a=1;a<b.length-1;a++){if("worktrees"!==b[a]&&".worktrees"!==b[a])continue;if(".claude"===b[a-1]||".codex"===b[a-1])break;let c=b[a+1];if(!c)break;return{repo:E(b.slice(0,a)),worktree:c}}return null}function H(a){let b=x.get(a);if(b&&b[0]>Date.now())return b[1];if(!a.startsWith("-"))return null;let c=[],d=[{pathname:i().parse(i().resolve(i().sep)).root,encoded:""}];for(let b=0;b<32&&d.length>0&&c.length<16;b+=1){let b=[];for(let f of d){let d;try{d=e().readdirSync(f.pathname,{withFileTypes:!0})}catch{continue}for(let g of d){let d=f.encoded+"-"+g.name.replace(/[^a-zA-Z0-9]/g,"-");if(d!==a&&!a.startsWith(d+"-"))continue;let h=i().join(f.pathname,g.name),j=g.isDirectory();if(!j&&g.isSymbolicLink())try{j=e().statSync(h).isDirectory()}catch{j=!1}j&&(d===a?c.push(h):b.push({pathname:h,encoded:d}))}}d=b.slice(0,64)}let f=c.filter(V),g=1===f.length?f[0]:1===c.length?c[0]:null;return x.set(a,[Date.now()+1e4,g]),g}function I(a){let b=i().sep+".codex"+i().sep+"worktrees"+i().sep,c=a.indexOf(b);if(c<0)return null;let[d,e]=a.slice(c+b.length).split(i().sep).filter(Boolean);return d&&e?{repo:"",worktree:d,projectHint:e}:null}let J=(0,o.E)("worktree-git"),K=(0,o.E)("project-info-cwd-v2"),L=(0,o.E)("persisted-project-v2");function M(a){return{project:m.Mv,displayName:m.MO,unresolved:!0,...a?{worktree:a}:{}}}function N(a,b,c){let d=(0,k.G$)(a);if(d===a&&d!==m.Mv&&!(0,m.z)(d))return M(b);let e=c?(0,m.im)(c):null,f=e?.project===d?e.displayName:(0,k.E2)().displayNames[d]??(0,m.rj)(d);return{project:d,displayName:f,...d===m.Mv?{unresolved:!0}:{},...b?{worktree:b}:{},...c?{repo:c}:{}}}let O="worktree-map.json",P=null,Q=!1;function R(){let a=(0,j.Pn)();if(P&&P.dir===a)return P.map;let b=new Map;try{let c=JSON.parse(e().readFileSync(i().join(a,O),"utf8"));for(let[a,d]of Object.entries(c))"string"==typeof d?.repo&&"string"==typeof d?.worktree&&b.set(a,{repo:d.repo,worktree:d.worktree})}catch{}return P={dir:a,map:b},Q=!1,b}function S(a){return R().get(a)??null}function T(){if(Q&&P){Q=!1;try{e().mkdirSync(P.dir,{recursive:!0}),e().writeFileSync(i().join(P.dir,O),JSON.stringify(Object.fromEntries(P.map)))}catch{}}}function U(a){var b;let c,d,f=J.get(a);if(f&&f[0]>Date.now())return f[1];let g=null;try{let b=i().join(a,".git");e().lstatSync(b).isFile()&&(g=function(a,b){let c=/^gitdir:\s*(.+?)\s*$/m.exec(b)?.[1];if(!c)return null;let d=i().resolve(a,c).split(i().sep),e=d.lastIndexOf("worktrees"),f=e>=0?d[e+1]:void 0;return f&&".git"===d[e-1]?{repo:E(d.slice(0,e-1)),worktree:f}:null}(a,e().readFileSync(b,"utf8")))}catch{}return J.set(a,[Date.now()+6e4,g]),g&&(b=g,(d=(c=R()).get(a))&&d.repo===b.repo&&d.worktree===b.worktree||(c.set(a,b),Q=!0)),g}function V(a){try{return e().lstatSync(i().join(a,".git")),!0}catch{return!1}}function W(a,b){if(null!==b)return b;let c=function(a){try{return JSON.parse(e().readFileSync(i().join((0,j.Pn)(),a),"utf8"))}catch{return null}}(`${a}.json`);return Array.isArray(c?.[a])?c[a]:[]}function X(a,b,c=!1){if("string"!=typeof a||!a.trim()||"string"!=typeof b||!b.trim())return null;let d=D(b.replace(/[^a-zA-Z0-9]/g,"-")),e=c||d!==a?i().basename(b):void 0,f=(0,m.V5)(b);return{project:a,worktree:e,...f?{repo:f}:{}}}function Y(a=(0,t.g)()){let b=(0,j.Pn)(),c=L.get("state");if(c&&c[0]>Date.now()&&c[1]===b&&c[2]===a)return c[3];let d=new Map,e=new Map,f=new Map,g=(a,b)=>{b&&"string"==typeof a&&a.trim()&&e.set(a,b),((a,b)=>{if(!b||"string"!=typeof a||!a.endsWith(".jsonl"))return;let c=i().basename(i().dirname(a));c.startsWith("-")&&f.set(c,b)})(a,b)},h=(0,l.M)(i().join(b,"state.sqlite"),["flows","workflows"]);for(let a of W("flows",h.get("flows")??null)){if(!a||"object"!=typeof a||Array.isArray(a))continue;let b=X(a.project,a.cwd);if(b&&"string"==typeof a.cwd)for(let c of(d.set(a.cwd,b),g(a.implementerPath,b),Array.isArray(a.rounds)?a.rounds:[]))!c||"object"!=typeof c||Array.isArray(c)||g(c.reviewerPath,b)}for(let a of W("workflows",h.get("workflows")??null)){if(!a||"object"!=typeof a||Array.isArray(a))continue;let b=X(a.project,a.repoDir);b&&"string"==typeof a.repoDir&&d.set(a.repoDir,b);let c=X(a.project,a.worktreeDir,!0);for(let e of(c&&"string"==typeof a.worktreeDir&&d.set(a.worktreeDir,c),Array.isArray(a.stageRuns)?a.stageRuns:[]))!e||"object"!=typeof e||Array.isArray(e)||g(e.agentPath,c??b);g(a.fixerPath,c??b)}let k={byCwd:d,byPath:e,bySlug:f};return L.set("state",[Date.now()+1e4,b,a,k]),k}let Z=/^\.openclaw(?:-[A-Za-z0-9._-]+)?$/;function $(a){let b=i().resolve(a);if("workspace"!==i().basename(b))return null;let c=i().dirname(b),d=process.env.OPENCLAW_STATE_DIR?.trim();return void 0!==d&&""!==d&&i().resolve(d)===c||i().dirname(c)===g().homedir()&&Z.test(i().basename(c))?{project:(0,m.qe)(b),displayName:"OpenClaw"}:null}function _(a,b){if(!a.trim())return null;let c=b??(0,t.g)(),d=K.get(a);if(d&&d[0]>Date.now()&&d[1]===c)return d[2];let e=ad(a);if(e)return K.set(a,[Date.now()+1e4,c,e]),e;let f=$(a);if(f)return K.set(a,[Date.now()+1e4,c,f]),f;let g=I(a),h=F(a)??G(a)??(g?U(a)??g:U(a));if(!h&&!V(a)&&!(h=S(a))){let b=Y(c).byCwd.get(a);if(b){let d=N(b.project,b.worktree,b.repo);return K.set(a,[Date.now()+1e4,c,d]),d}}let i=()=>{let b=(0,m.NP)(a);return b?{project:b.project,displayName:b.displayName,...h?.worktree?{worktree:h.worktree}:{}}:M(h?.worktree)},j=h?.repo||(0,m.V5)(a);if(!j){let b=g?.projectHint?N(g.projectHint,h?.worktree):i();return K.set(a,[Date.now()+1e4,c,b]),b}let k=(0,m.im)(j),l=k?{project:k.project,displayName:k.displayName,worktree:h?.worktree,repo:j}:i();return K.set(a,[Date.now()+1e4,c,l]),l}function aa(a){return _(a)?.project??null}function ab(a){let b=ad(a);if(b)return b.repo;if($(a))return;let c=F(a)??G(a)??(I(a)?U(a)??I(a):null)??U(a)??S(a);return c?.repo||(0,m.V5)(a)||void 0}function ac(a){let b="--codex-worktrees-",c=null,d=1/0;for(let e of["--claude-worktrees-",b,"--worktrees-"]){let b=a.indexOf(e);b>=0&&b<d&&(c=e,d=b)}if(!c||!Number.isFinite(d))return null;let e=a.slice(d+c.length);if(c===b){let a=e.indexOf("-");if(a<=0)return null;let b=e.slice(0,a),c=e.slice(a+1),d=["--claude-worktrees-","--codex-worktrees-","--worktrees-","-worktrees-"].map(a=>c.indexOf(a)).filter(a=>a>=0).sort((a,b)=>a-b)[0],f=void 0===d?c:c.slice(0,d);return f?{project:f,worktree:b}:null}let f=["--claude-worktrees-","--codex-worktrees-","--worktrees-","-worktrees-"].map(a=>e.indexOf(a)).filter(a=>a>=0).sort((a,b)=>a-b)[0],g=void 0===f?e:e.slice(0,f);if(!g)return null;let h=a.slice(0,d),i=D(h);return i?{project:i,worktree:g,repo:H(h)??void 0}:null}function ad(a){let b=a.split(i().sep),c=b.findIndex(a=>/^claude-\d+$/.test(a)),d=c>=0?b[c+1]:void 0,e=c>=0?b[c+2]:void 0;if(!d||!e||"scratchpad"!==b[c+3])return null;let f=ac(d);if(f?.repo){let a=(0,m.im)(f.repo);if(a)return{...a,worktree:f.worktree,repo:f.repo}}if(f)return N(f.project,f.worktree,f.repo);let g=H(d);if(g){let a=(0,m.im)(g);if(a)return{...a,repo:g}}let h=D(d);return h?N(h):null}function ae(a){let b="string"==typeof a?a.trim():"";return b&&!C.some(a=>b.startsWith(a))?b:null}function af(a,b){if("openclaw"===b){let b=(0,s.j5)(a);if(!b||"user"!==b.role)return null;let c=b.content;return"string"==typeof c?c.trim()||null:(0,r.Em)(c).filter(a=>"text"===a.type).map(a=>(0,r.r$)(a.text)??"").join(" ").trim()||null}if("codex"===b){let b=(0,r.xK)(a.payload)??{};if("user_message"===b.type)return("string"==typeof b.message?b.message.trim():"")||null;if("message"===b.type&&"user"===b.role)return(0,r.Em)(b.content).map(a=>(0,r.r$)(a.text)??(0,r.r$)(a.input_text)??"").join(" ").trim()||null}else if("user"===a.type){let b=(0,r.xK)(a.message)?.content;return"string"==typeof b?b.trim()||null:(0,r.Em)(b).filter(a=>"text"===a.type).map(a=>(0,r.r$)(a.text)??"").join(" ").trim()||null}return null}function ag(a,b,c){return b.size<=a.size||!c.complete||!c.value||c.value.read<a.headBytes||(0,q.HL)(c.value.bytes.subarray(0,a.headBytes))!==a.headFingerprint||null===a.value&&a.headBytes<A?null:{size:b.size,mtimeMs:b.mtimeMs,value:a.value,headBytes:c.value.read,headFingerprint:(0,q.HL)(c.value.bytes)}}function ah(a,b,c){return{size:a.size,mtimeMs:a.mtimeMs,value:c,headBytes:b.read,headFingerprint:(0,q.HL)(b.bytes)}}function ai(a,b){let c=y.get(a);if(c?.size===b.size&&c.mtimeMs===b.mtimeMs)return{value:c.value,complete:!0,headPreserved:!0};let d=(0,q.zy)(a,b.size,b.mtimeMs,{maxBytes:A});if(!d.complete||!d.value)return{value:c?.value??null,complete:!1,headPreserved:!1};if(c){let e=ag(c,b,d);if(e)return y.set(a,e),{value:e.value,complete:!0,headPreserved:!0}}let e=function(a){for(let b of a)try{let a=JSON.parse(b),c=(0,r.xK)(a),d=(0,r.r$)(c?.cwd)??(0,r.r$)((0,r.xK)(c?.payload)?.cwd);if(d)return d}catch{continue}return null}(d.value.text.split("\n").slice(0,25));return y.set(a,ah(b,d.value,e)),{value:e,complete:!0,headPreserved:!1}}function aj(a,b){let c=z.get(a);if(c?.size===b.size&&c.mtimeMs===b.mtimeMs)return{value:c.value,complete:!0,headPreserved:!0};let d=(0,q.zy)(a,b.size,b.mtimeMs,{maxBytes:A});if(!d.complete||!d.value)return{value:c?.value??null,complete:!1,headPreserved:!1};if(c){let e=ag(c,b,d);if(e)return z.set(a,e),{value:e.value,complete:!0,headPreserved:!0}}let e=null;for(let a of d.value.text.split("\n").slice(0,10))if(a.trim())try{let b=JSON.parse(a),c="string"==typeof b.payload?.timestamp?b.payload.timestamp:"string"==typeof b.timestamp?b.timestamp:null;if(c&&Number.isFinite(Date.parse(c))){e=new Date(c).toISOString();break}}catch{continue}return z.set(a,ah(b,d.value,e)),{value:e,complete:!0,headPreserved:!1}}function ak(a,b){let c=Y(b).byPath.get(a);return c?N(c.project,c.worktree,c.repo):null}function al(a,b,c){let d=w.get(a);if(d?.size===b.size&&d.mtimeMs===b.mtimeMs)return{value:d.value,complete:!0,headPreserved:!0};let e=(0,q.zy)(a,b.size,b.mtimeMs,{maxBytes:A});if(!e.complete||!e.value)return{value:d?.value??null,complete:!1,headPreserved:!1};if(d){let c=ag(d,b,e);if(c)return w.set(a,c),{value:c.value,complete:!0,headPreserved:!0}}let f=function(a,b){for(let c of a){let a;try{let b=JSON.parse(c);if(!b||"object"!=typeof b||Array.isArray(b))continue;a=b}catch{continue}if("summary"===a.type){let b=ae(a.summary);if(b)return b}if("ai-title"===a.type){let b=ae(a.aiTitle);if(b)return b}let d=ae(af(a,b));if(d)return d}return null}(e.value.text.split("\n").slice(0,151),c);return w.set(a,ah(b,e.value,f)),{value:f,complete:!0,headPreserved:!1}}function am(a,b,c){let d=function(a,b){try{let c=e().openSync(a,"r");try{let a=Buffer.alloc(Math.min(b,A)),d=e().readSync(c,a,0,a.length,0);return{text:a.toString("utf8",0,d),read:d}}finally{e().closeSync(c)}}catch(a){if("ENOENT"===a.code)return null;throw a}}(a,b);return d?function(a,b){let c=null,d=null;for(let e of a){let a;try{let b=JSON.parse(e);if(!b||"object"!=typeof b||Array.isArray(b))continue;a=b}catch{continue}"summary"===a.type&&(c??=ae(a.summary)),"ai-title"===a.type&&(c??=ae(a.aiTitle));let f=af(a,b);if(f&&(d??=f,(c??=ae(f))&&d))break}return{title:c,firstPrompt:d}}(d.text.split("\n").slice(0,151),c):{title:null,firstPrompt:null}}function an(a,b,c,d,e,f){let g=v.get(c);if(e&&g&&g.stateKey===f&&g.cwd===d)return{project:g.project,projectName:g.projectName,projectUnresolved:g.projectUnresolved,worktree:g.worktree,projectRoot:g.projectRoot};let h=null;if("codex-sessions"===a)h=(d?_(d,f):null)??ak(c,f);else if("claude-projects"===a){let a=i().relative(b,c).split(i().sep)[0]??"",e=ac(a);h=(d?_(d,f):null)??ak(c,f)??(e?N(e.project,e.worktree,e.repo):N(D(a)))}else if("openclaw-sessions"===a)h=(d?_(d,f):null)??ak(c,f);else if("claude-tasks"===a){let a,d=i().relative(b,c).split(i().sep)[0]??"";h=((a=Y(f).bySlug.get(d))?N(a.project,a.worktree,a.repo):null)??N(D(d))}let j={project:(h??=M()).project,projectName:h.displayName,projectUnresolved:h.unresolved,worktree:h.worktree,projectRoot:d?ab(d)??null:void 0};return e&&v.set(c,{...j,stateKey:f,cwd:d}),j}function ao(a,b,c,d,e=(0,t.g)()){let f=an(a,b,c,d.cwd,!0,e);return{...d,project:f.project,projectName:f.projectName,projectUnresolved:f.projectUnresolved,worktree:f.worktree,projectRoot:f.projectRoot}}function ap(a,b,c,d,e=(0,t.g)(),f=B(a,c,d)){var g;let h,j,k,l=u.get(c);if(f.complete&&l&&(g=l.identity,g.size===f.size&&g.mtimeMs===f.mtimeMs&&g.sidecarSize===f.sidecarSize&&g.sidecarMtimeMs===f.sidecarMtimeMs))h=l.metadata,j=!0,k=!0;else{let b=function(a,b,c,d){let e,f=i().basename(b),g=d.complete,h=null,j=null,k=null,l=null,m="claude",o="",q="plain",s=d.complete;if("codex-sessions"===a){let a=s?ai(b,c):{value:null,complete:!1,headPreserved:!1};if(s&&=a.complete,g=a.complete,e=a.value??void 0,s){let a=aj(b,c);s&&=a.complete,h=a.value}if(s){let a=(0,p.H)(b,c.size,c.mtimeMs);s&&=a.complete,j=a.parent,k=a.forkedFrom}if(m="codex",o="session",q="codex",s){let a=al(b,c,"codex");s&&=a.complete,l=a.value}l??="Codex session"}else if("claude-projects"===a){let a=s?ai(b,c):{value:null,complete:!1,headPreserved:!1};if(s&&=a.complete,g=a.complete,e=a.value??void 0,s){let a=aj(b,c);s&&=a.complete,h=a.value}if(q="claude",f.startsWith("agent-")){o="subagent";let a=s?null===d.sidecarSize?{value:null,complete:d.complete}:(0,r.Y6)(b.slice(0,-6)+".meta.json"):{value:null,complete:!1};s&&=a.complete;let e=a.value??{};if(!(l=(0,r.r$)(e.description)??(0,r.r$)(e.name)??null)&&s){let a=al(b,c,"claude");s&&=a.complete,l=a.value}l??="Subagent "+f.slice(6).split(".")[0]}else{if(o="session",s){let a=al(b,c,"claude");s&&=a.complete,l=a.value}l??="Claude session"}}else if("openclaw-sessions"===a){let a=s?ai(b,c):{value:null,complete:!1,headPreserved:!1};if(s&&=a.complete,g=a.complete,e=a.value??void 0,s){let a=aj(b,c);s&&=a.complete,h=a.value}if(m="openclaw",o="session",q="openclaw",s){let a=al(b,c,"openclaw");s&&=a.complete,l=a.value}l??="OpenClaw session"}else"claude-tasks"===a&&(m="shell",o="background",l="Background task "+f.split(".")[0]);return{metadata:{cwd:e,sessionStartedAt:h,nativeParentThreadId:j,nativeForkSourceThreadId:k,title:(0,n.cr)(l??f,120),engine:m,kind:o,fmt:q},complete:s,cwdComplete:g}}(a,c,d,f);h=b.metadata,j=b.complete,k=b.cwdComplete,j&&u.set(c,{identity:f,metadata:h})}let m=an(a,b,c,h.cwd,k,e);return{description:{project:m.project,projectName:m.projectName,projectUnresolved:m.projectUnresolved,worktree:m.worktree,cwd:h.cwd,sessionStartedAt:h.sessionStartedAt,nativeParentThreadId:h.nativeParentThreadId,nativeForkSourceThreadId:h.nativeForkSourceThreadId,projectRoot:m.projectRoot,title:h.title,engine:h.engine,kind:h.kind,fmt:h.fmt},complete:j}}function aq(a,b,c,d,e=(0,t.g)(),f=B(a,c,d)){return ap(a,b,c,d,e,f).description}},14666:(a,b,c)=>{c.d(b,{B1:()=>g,Wz:()=>i,__:()=>f,cQ:()=>h});var d=c(51888),e=c(39584);let f=9e5,g=3e5;function h(a,b,c){let f=[{window:"session",value:b?.session},{window:"weekly",value:b?.weekly}];if("claude"!==a)return f;let g=(0,d.u$)(c),h=(0,e.dZ)(b).find(a=>a.tier===g);return h?[...f,{window:(0,e.iK)(h.tier),value:h}]:f}function i(a,b=Date.now(),c={}){if(!Number.isFinite(b)||!Number.isFinite(a.observedAt)||void 0!==a.authCheckedAt&&!Number.isFinite(a.authCheckedAt))return null;let d=b-a.observedAt,e=b-(a.authCheckedAt??a.observedAt);if(!a.authenticated||"live"!==a.provenance.source||d<0||e<0||d>g||e>g||!a.limits)return null;let f=h(a.engine,a.limits,c.model).filter(a=>null!==a.value&&void 0!==a.value);return f.some(({value:a})=>!Number.isFinite(a.usedPercent)||a.usedPercent<0||a.usedPercent>100||null!==a.resetsAt&&(!Number.isSafeInteger(a.resetsAt)||a.resetsAt<0))?null:f.length?f.map(({window:a,value:b})=>({window:a,percent:100-b.usedPercent})).sort((a,b)=>a.percent-b.percent||a.window.localeCompare(b.window))[0]??null:null}},15641:(a,b,c)=>{c.d(b,{h:()=>h,X:()=>g});var d=c(14666);function e(a,b,c,f,g=Date.now(),h){let i=new Map(b.map(a=>[a.accountId,a])),j=new Set(f),k=a.filter(a=>a.authPresent).map(a=>({account:a,capacity:function(a,b,c){if(!a)return{kind:"unknown"};let e=Date.parse(a.observedAt),f=Date.parse(a.authCheckedAt);if(!Number.isFinite(e)||!Number.isFinite(f)||b<e||b<f||b-e>3e5||b-f>3e5)return{kind:"unknown"};if(!a.authenticated)return{kind:"unavailable"};if(!a.limits)return{kind:"unknown"};let g=(0,d.cQ)(a.engine,a.limits,c).map(a=>a.value).filter(a=>null!=a);if(!g.length||g.some(a=>!Number.isFinite(a.usedPercent)||a.usedPercent<0||a.usedPercent>100||null!==a.resetsAt&&(!Number.isSafeInteger(a.resetsAt)||a.resetsAt<0)))return{kind:"unknown"};let h=Math.min(...g.map(a=>100-a.usedPercent));if("live"!==a.provenance.source&&!("transcript"===a.provenance.source&&h<=0))return{kind:"unknown"};if(h>0)return{kind:"available",remaining:h};let i=g.filter(a=>a.usedPercent>=100),j=Math.floor(b/1e3);return i.some(a=>null===a.resetsAt||a.resetsAt<=j)?{kind:"exhausted",resetsAt:null}:{kind:"exhausted",resetsAt:Math.max(...i.map(a=>a.resetsAt))}}(i.get(a.id),g,h)})).filter(a=>"unavailable"!==a.capacity.kind);if(!k.length)return{kind:"unavailable"};for(let a of[!1,!0]){let b=k.filter(b=>j.has(b.account.id)===a),d=b.flatMap(a=>"available"===a.capacity.kind?[{...a,remaining:a.capacity.remaining}]:[]).sort((a,b)=>b.remaining-a.remaining||Number(b.account.id===c)-Number(a.account.id===c)||a.account.id.localeCompare(b.account.id));if(d[0])return{kind:"available",accountId:d[0].account.id};let e=b.filter(a=>"unknown"===a.capacity.kind).sort((a,b)=>Number(b.account.id===c)-Number(a.account.id===c)||a.account.id.localeCompare(b.account.id));if(e[0])return{kind:"available",accountId:e[0].account.id}}let l=k.flatMap(a=>"exhausted"===a.capacity.kind&&null!==a.capacity.resetsAt?[a.capacity.resetsAt]:[]);return{kind:"exhausted",resetsAt:l.length?Math.min(...l):null}}var f=c(53424);function g(a){let b=(0,f.sx)(a.project,a.engine,a.bindings),c=a.requestedId?.trim()||null;if(c&&null!==b&&!b.includes(c))return"explicit"===a.requestedChoice?{kind:"available",accountId:c}:{kind:"not_allowed",accountId:c,allowedAccountIds:b};if(c)return{kind:"available",accountId:c};let d=new Set(a.unavailableIds??[]);if(null===b&&0===d.size&&(a.unbound??"engine-default")==="engine-default")return{kind:"available",accountId:a.preferredId?.trim()||null};let g=null===b?[...a.accounts]:a.accounts.filter(a=>b.includes(a.id)),h=g.filter(a=>!d.has(a.id)),i=null===b||a.preferredId&&b.includes(a.preferredId)?a.preferredId??null:null,j=e(h,[...a.observations],i,[...a.excludedIds??[]],a.now,a.model);if("available"===j.kind)return j;let k=b??g.map(a=>a.id);return"exhausted"===j.kind?{kind:"exhausted",resetsAt:j.resetsAt,allowedAccountIds:k}:{kind:"unavailable",allowedAccountIds:k}}function h(a){let b=(0,f.sx)(a.project,a.engine,a.bindings),c=a.targetId.trim();if(null===b)return{kind:"available",accountId:c};if(!b.includes(c))return{kind:"not_allowed",accountId:c,allowedAccountIds:b};let d=e([{id:c,authPresent:!0}],[...a.observations],c,[],a.now,a.model);return"available"===d.kind?{kind:"available",accountId:c}:"exhausted"===d.kind?{kind:"exhausted",resetsAt:d.resetsAt,allowedAccountIds:b}:{kind:"unavailable",allowedAccountIds:b}}},16781:(a,b,c)=>{c.d(b,{PG:()=>f,YP:()=>e});let d={"image/png":"png","image/jpeg":"jpg","image/jpg":"jpg","image/gif":"gif","image/webp":"webp"},e=0xa00000;function f(a){return d[a]??null}},19339:(a,b,c)=>{c.d(b,{Eu:()=>h,HL:()=>j,zy:()=>m});var d=c(77598),e=c(73024),f=c.n(e),g=c(28976);let h=131072,i=(0,g.E)("scanner-head-v1");function j(a){return(0,d.createHash)("sha256").update(a).digest("base64url")}function k(a){let b=0;for(let c of a)10===c&&(b+=1);return b}function l(a,b){let c=Buffer.from(a);return{value:{bytes:c,text:c.toString("utf8"),read:c.length},complete:b}}function m(a,b,c,d={}){let e=Math.min(Math.max(0,b),Math.max(0,d.maxBytes??h)),g=Math.max(0,d.lineLimit??0),j=i.get(a),n=j?.size===b&&j.mtimeMs===c,o=n?j.bytes:Buffer.alloc(0),p=g>0?k(o):0;if(o.length>=e||j?.eof&&n||g>0&&p>=g)return l(o.subarray(0,e),!0);let q=o.length>0?[o]:[],r=o.length,s=!1,t=null;try{for(t=f().openSync(a,"r");r<e;){let a=Math.min(h,e-r),b=Buffer.allocUnsafe(a),c=0,d=!1;for(;c<a;){let e=f().readSync(t,b,c,a-c,r+c);if(0===e){d=!0;break}if(g>0&&(p+=k(b.subarray(c,c+e))),c+=e,g>0&&p>=g)break}if(c>0&&(q.push(c===b.length?b:Buffer.from(b.subarray(0,c))),r+=c),g>0&&p>=g){s=!0;break}if(d)break}s||=r>=e}catch{return{value:null,complete:!1}}finally{null!==t&&f().closeSync(t)}let u=1===q.length?q[0]:Buffer.concat(q,r);if(!s)return l(u,!1);var v={size:b,mtimeMs:c,bytes:u,eof:r>=b};i.delete(a);let w=0;for(let a of i.values())w+=a.bytes.length;for(;i.size>0&&(i.size>=2048||w+v.bytes.length>0x2000000);){let a=i.keys().next().value;if(void 0===a)break;w-=i.get(a)?.bytes.length??0,i.delete(a)}return i.set(a,v),l(u,!0)}},20261:(a,b,c)=>{c.d(b,{mD:()=>o,to:()=>l});var d=c(77598),e=c.n(d),f=c(96428),g=c(10988);let h=function(a,b){return b.conversationId&&a.conversationId?a.conversationId===b.conversationId:b.launchId&&a.launchId?a.launchId===b.launchId:b.clientAttemptId&&a.clientAttemptId?a.clientAttemptId===b.clientAttemptId:!!b.path&&a.path===b.path};function i(a,b,c){let d=a.assignments.findIndex(a=>h(a,b));if(d>=0){let e=a.assignments[d],f={...e,...b.launchId&&!e.launchId?{launchId:b.launchId}:{},...b.clientAttemptId&&!e.clientAttemptId?{clientAttemptId:b.clientAttemptId}:{},...b.conversationId&&!e.conversationId?{conversationId:b.conversationId}:{},path:e.path??b.path??null,...b.engine&&!e.engine?{engine:b.engine}:{},...b.accountId&&!e.accountId?{accountId:b.accountId}:{}};if(JSON.stringify(f)===JSON.stringify(e))return{task:a,changed:!1};let g=a.assignments.slice();return g[d]=f,{task:{...a,assignments:g,updatedAt:c},changed:!0}}let e={...b.launchId?{launchId:b.launchId}:{},...b.clientAttemptId?{clientAttemptId:b.clientAttemptId}:{},path:b.path??null,...b.conversationId?{conversationId:b.conversationId}:{},panePid:null,state:"linked",error:null,at:c,...b.engine?{engine:b.engine}:{},...b.accountId?{accountId:b.accountId}:{}},f="inbox"===a.status?"assigned":a.status;return{task:{...a,status:f,assignments:[...a.assignments,e],updatedAt:c},changed:!0}}function j(a){return!!(a.launchId||a.clientAttemptId||a.conversationId||a.path)}function k(a,b,c={}){var d;let g,l=b.project.trim();if(!l&&!b.explicitTaskIds?.length)return{ok:!1,error:"project is required",status:400};if(!b.origin.key.trim())return{ok:!1,error:"membership origin key is required",status:400};if(!j(b.identity))return{ok:!1,error:"membership needs a launch, conversation or path identity",status:400};let m=c.now?.()??(0,f.Ec)(),n=a.slice(),o=!1,p=(a,b)=>{b.changed&&(n[a]=b.task,o=!0)},q=n.filter(a=>a.assignments.some(a=>{var c;return"failed"!==a.state&&((c=b.identity).launchId&&a.launchId?a.launchId===c.launchId:!!c.clientAttemptId&&a.clientAttemptId===c.clientAttemptId)})),r=n.find(a=>a.project===(l||a.project)&&a.origin?.kind===b.origin.kind&&a.origin.key===b.origin.key);if(b.explicitTaskIds?.length){let c=[...new Set(b.explicitTaskIds)];if(r&&!c.includes(r.id))return{ok:!1,error:"this launch was admitted without a task target; a retry cannot add one",status:409};if(q.length&&(q.length!==c.length||q.some(a=>!c.includes(a.id))))return{ok:!1,error:"this launch was admitted with a different task target set; a retry keeps the original",status:409};let d=c.map(a=>n.findIndex(b=>b.id===a)),e=d.findIndex(a=>a<0);if(e>=0)return{ok:!1,error:`task ${c[e]} is not available`,status:404};let f=new Set(d.map(a=>n[a].project));if(f.size>1||l&&!f.has(l))return{ok:!1,error:"explicit tasks must belong to the launch's project",status:409};for(let a of d)p(a,i(n[a],b.identity,m));return{ok:!0,tasks:o?n:a.slice(),taskIds:c,created:[],changed:o}}let s=n.findIndex(a=>a.project===l&&a.origin?.kind===b.origin.kind&&a.origin.key===b.origin.key);if(s>=0)return p(s,i(n[s],b.identity,m)),{ok:!0,tasks:o?n:a.slice(),taskIds:[n[s].id],created:[],changed:o};let t=n.map((a,b)=>({task:a,index:b})).filter(({task:a})=>a.assignments.some(a=>"failed"!==a.state&&h(a,b.identity)));if(t.length){for(let{index:a}of t)p(a,i(n[a],b.identity,m));return{ok:!0,tasks:o?n:a.slice(),taskIds:t.map(({task:a})=>a.id),created:[],changed:o}}let u=(b.inherit??[]).filter(j),v=n.map((a,b)=>({task:a,index:b})).filter(({task:a})=>u.some(b=>a.assignments.some(a=>"failed"!==a.state&&h(a,b))));if(v.length){for(let{index:a}of v)p(a,i(n[a],b.identity,m));return{ok:!0,tasks:o?n:a.slice(),taskIds:v.map(({task:a})=>a.id),created:[],changed:o}}let w=c.id?.()??e().randomUUID(),x=i({id:w,project:l,status:"inbox",text:(d=b.title,(g=(d??"").split(/\r?\n/,1)[0]?.trim()??"")?g.length>80?`${g.slice(0,79).trimEnd()}…`:g:"Untitled task"),placement:"unplaced",origin:{kind:b.origin.kind,key:b.origin.key,refinement:"pending"},assignments:[],createdAt:m,updatedAt:m},b.identity,m).task;for(let a of u)x=i(x,a,m).task;return{ok:!0,tasks:n=[...n,x],taskIds:[w],created:[w],changed:!0}}function l(a,b){return(0,g.z4)(b=>{let c=k(b,a);return{tasks:c.ok&&c.changed?c.tasks:void 0,result:c}},b)}function m(a){return!(!a.project||!a.path||a.path.startsWith("spawn:"))&&("claude-projects"===a.root||"codex-sessions"===a.root)&&!a.path.includes("/subagents/")}let n=(a,b)=>!!(b.conversationId&&a.conversationIds.has(b.conversationId))||a.paths.has(b.path);function o(a,b,c){return(0,g.z4)(c=>{let d=function(a,b,c,d=50){let e=function(a){let b={conversationIds:new Set,paths:new Set,launches:new Map};for(let c of a)for(let a of c.assignments)if("failed"!==a.state)for(let d of(a.conversationId&&b.conversationIds.add(a.conversationId),a.path&&b.paths.add(a.path),[a.launchId,a.clientAttemptId])){if(!d)continue;let a=b.launches.get(d)??[];a.includes(c.id)||a.push(c.id),b.launches.set(d,a)}return b}(b),f=[],g=new Set,h=new Map(a.map(a=>[a.path,a])),i=b=>(b.agentPath?h.get(b.agentPath):void 0)??(b.conversationId?a.find(a=>a.conversationId===b.conversationId):void 0);for(let a of c){if(a.hiddenAt)continue;let b=a.runs.flatMap(a=>a.attempts).map(i).filter(a=>!!a);for(let a of b)g.add(a.path);if(!a.taskIds.length)for(let c of b)n(e,c)||f.length>=d||(f.push({project:c.project,origin:{kind:"pipeline",key:a.id},title:a.task,identity:{conversationId:c.conversationId??null,path:c.path,engine:"claude"===c.engine||"codex"===c.engine?c.engine:null}}),e.paths.add(c.path),c.conversationId&&e.conversationIds.add(c.conversationId))}let j=(a,b)=>{let c=function(a,b){let c=[b.spawn?.launchId,b.spawn?.clientAttemptId].filter(a=>!!a),d=new Set;for(let b of c)for(let c of a.launches.get(b)??[])d.add(c);return[...d]}(e,a);c.length?f.push({project:a.project,origin:{kind:"launch",key:a.spawn?.clientAttemptId??a.spawn?.launchId??a.path},identity:{launchId:a.spawn?.launchId??null,clientAttemptId:a.spawn?.clientAttemptId??null,conversationId:a.conversationId??null,path:a.path},explicitTaskIds:c}):f.push({project:a.project,origin:{kind:"conversation",key:a.conversationId??a.path},title:a.title,identity:{conversationId:a.conversationId??null,path:a.path,engine:"claude"===a.engine||"codex"===a.engine?a.engine:null},...b.length?{inherit:b}:{}}),e.paths.add(a.path),a.conversationId&&e.conversationIds.add(a.conversationId)};for(let b of a){if(f.length>=d)break;b.parent||g.has(b.path)||!m(b)||n(e,b)||j(b,[])}for(let b of a){if(f.length>=d)break;if(!b.parent||g.has(b.path)||!m(b)||n(e,b))continue;let a=h.get(b.parent);(!a||n(e,a))&&j(b,a?[{conversationId:a.conversationId??null,path:a.path}]:[])}return f}(a,c,b);if(!d.length)return{tasks:void 0,result:0};let e=function(a,b,c={}){let d=a.slice(),e=0;for(let a of b){let b=k(d,a,c);b.ok&&b.changed&&(d=b.tasks,e+=1)}return{tasks:d,admitted:e}}(c,d);return{tasks:e.admitted?e.tasks:void 0,result:e.admitted}},c)}},28976:(a,b,c)=>{c.d(b,{E:()=>e});let d=globalThis;function e(a){return d.__llvCaches??={},d.__llvCaches[a]??=new Map,d.__llvCaches[a]}},30033:(a,b,c)=>{c.d(b,{o:()=>f});var d=c(38751),e=c(14310);function f(a,b,c={}){let e=a?.project?.trim()||b?.project?.trim()||"";if(e)return(0,d.G$)(e);let h=g(b?.cwd);if(h)return h;let i=c.project?.trim();return i?(0,d.G$)(i):g(c.cwd)}function g(a){let b=a?.trim();if(!b)return null;let c=(0,e.hY)(b);return c?(0,d.G$)(c):null}},39340:(a,b,c)=>{c.d(b,{tK:()=>f}),c(77598),c(73024),c(76760),c(27146);var d=c(16781);let e=new Set(["png","jpg","gif","webp"]);function f(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.id&&a.id.length>0&&"string"==typeof a.sha256&&/^[0-9a-f]{64}$/.test(a.sha256)&&"string"==typeof a.ext&&e.has(a.ext)&&"string"==typeof a.mime&&null!==(0,d.PG)(a.mime)&&"number"==typeof a.bytes&&Number.isFinite(a.bytes)&&a.bytes>0&&"string"==typeof a.createdAt}},39584:(a,b,c)=>{function d(a){return Array.isArray(a?.tiers)?a.tiers:a?.flagship?[a.flagship]:[]}function e(a){return`tier:${a}`}c.d(b,{dZ:()=>d,e4:()=>g,iK:()=>e,sb:()=>h,u1:()=>f});let f="oauth-rate-limited",g="oauth-reauthentication-required",h=512},39733:(a,b,c)=>{c.d(b,{Re:()=>h,j5:()=>g,mu:()=>f});var d=c(45491);let e=[".trajectory.",".checkpoint.",".acp-stream.",".deleted.",".bak"];function f(a){return!!a.endsWith(".jsonl")&&!e.some(b=>a.includes(b))}function g(a){return"message"===a.type?(0,d.xK)(a.message):null}function h(a){let b=g(a);return b&&"assistant"===b.role?"openclaw"===(0,d.r$)(b.provider)?null:b:null}},44405:(a,b,c)=>{c.d(b,{f:()=>j});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h);function j(a,b){g().mkdirSync(i().dirname(a),{recursive:!0});let c=i().join(i().dirname(a),`.${i().basename(a)}.${process.pid}.${e().randomUUID()}.tmp`),d=null;try{d=g().openSync(c,"wx",384),g().writeFileSync(d,`${JSON.stringify(b,null,2)}
|
|
5
|
+
`,"utf8"),g().fsyncSync(d),g().closeSync(d),d=null,g().renameSync(c,a);let e=g().openSync(i().dirname(a),"r");try{g().fsyncSync(e)}finally{g().closeSync(e)}}finally{null!==d&&g().closeSync(d),g().rmSync(c,{force:!0})}}},45491:(a,b,c)=>{c.d(b,{Em:()=>l,Vg:()=>j,Vh:()=>h,Y6:()=>g,r$:()=>i,xK:()=>k});var d=c(73024),e=c.n(d);let f=(0,c(28976).E)("json-v3");function g(a){let b,c,d;try{let d=e().statSync(a);b=d.mtimeMs,c=d.size}catch(a){return{value:null,complete:"ENOENT"===a.code}}let g=f.get(a);if(g?.[0]===c&&g[1]===b)return{value:g[2],complete:!0};try{d=JSON.parse(e().readFileSync(a,"utf8"))}catch{return{value:null,complete:!1}}let h=d&&"object"==typeof d&&!Array.isArray(d)?d:null;return f.set(a,[c,b,h]),{value:h,complete:!0}}function h(a){return g(a).value}function i(a){return"string"==typeof a?a:null}function j(a){return"number"==typeof a&&Number.isFinite(a)?a:null}function k(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function l(a){return Array.isArray(a)?a.filter(a=>null!==a&&"object"==typeof a&&!Array.isArray(a)):[]}},47473:(a,b,c)=>{c.d(b,{CC:()=>l,Hy:()=>j,Pk:()=>o,Zx:()=>g,gy:()=>i,h1:()=>k,in:()=>f,kW:()=>n,rM:()=>p,t6:()=>h});var d=c(77598),e=c.n(d);let f=["image/png","image/jpeg","image/gif","image/webp"],g="structured-image-v1",h="The selected Codex model does not advertise image input through app-server.",i="Structured image protocol is unavailable for this host.";class j extends Error{constructor(){super("structured message text exceeds the 32000-byte envelope bound"),this.name="StructuredEnvelopeTooLargeError"}}function k(a){if(Buffer.byteLength(a,"utf8")>32e3)throw new j}function l(a){let b="image/jpg"===a.toLowerCase()?"image/jpeg":a.toLowerCase();return f.includes(b)?b:null}function m(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b="string"==typeof a.mime?l(a.mime):null;return b&&"string"==typeof a.sha256&&/^[a-f0-9]{64}$/.test(a.sha256)&&Number.isSafeInteger(a.bytes)&&!(a.bytes<=0)?{sha256:a.sha256,mime:b,bytes:a.bytes}:null}function n(a,b){if(!Array.isArray(a)||a.length>b)return null;let c=a.map(m);return c.every(a=>null!==a)?c:null}function o(a){let b=JSON.stringify({text:a.text,images:a.images.map(({sha256:a,mime:b,bytes:c})=>({sha256:a,mime:b,bytes:c}))});return e().createHash("sha256").update(b).digest("hex")}function p(a,b){let c={text:a,images:b.map(a=>({...a}))};if(!c.text.trim()&&0===c.images.length)throw Error("message content is required");return{content:c,contentDigest:o(c)}}},53424:(a,b,c)=>{c.d(b,{$8:()=>k,FV:()=>n,Uq:()=>i,ed:()=>o,sx:()=>m});var d=c(73024),e=c.n(d);c(76760);var f=c(27146),g=c(38751);c(44405),c(63685);let h="account-project-bindings.json";class i extends Error{constructor(a){super(`the account↔project binding record ${h} is unreadable (${a}); no account may be selected for a project until it is repaired or removed`),this.reason=a,this.name="AccountProjectBindingsUnreadableError"}}function j(){let a,b,c=(0,f.BQ)(h);try{a=e().readFileSync(c,"utf8")}catch(b){let a=b.code;if("ENOENT"===a){let a=function(a){try{return e().lstatSync(a),{absent:!1,reason:"an entry at the record's pathname could not be read (a dangling link)"}}catch(b){let a=b.code;if("ENOENT"===a)return{absent:!0};return{absent:!1,reason:a?`the record could not be read and its pathname could not be inspected (${a})`:"the record could not be read and its pathname could not be inspected"}}}(c);if(a.absent)return[];throw new i(a.reason)}throw new i(a?`the read failed with ${a}`:"the read failed")}try{b=JSON.parse(a)}catch{throw new i("the record is not valid JSON")}if(!b||"object"!=typeof b||Array.isArray(b))throw new i("the record is not a binding file");let d=b;if(1!==d.schemaVersion)throw new i("number"==typeof d.schemaVersion?`the record's schemaVersion ${d.schemaVersion} is not supported`:"the record names no supported schemaVersion");let g=function(a){if(!Array.isArray(a))return null;let b=[];for(let c of a){if(!c||"object"!=typeof c||Array.isArray(c)||"claude"!==c.engine&&"codex"!==c.engine||"string"!=typeof c.accountId||!c.accountId.trim()||"string"!=typeof c.project||!c.project.trim()||"string"!=typeof c.createdAt||!c.createdAt.trim())return null;b.push({engine:c.engine,accountId:c.accountId,project:c.project,createdAt:c.createdAt})}return b}(d.bindings);if(!g)throw new i("the record's bindings are malformed");return g.map(a=>({...a,project:l(a.project)}))}function k(){let a=new Map;for(let b of j()){let c=[b.engine,b.accountId,b.project].join("\0"),d=a.get(c);(!d||b.createdAt<d.createdAt)&&a.set(c,{...b})}return[...a.values()].sort((a,b)=>a.engine.localeCompare(b.engine)||a.project.localeCompare(b.project)||a.accountId.localeCompare(b.accountId))}function l(a){return(0,g.G$)(a.trim())}function m(a,b,c=j()){let d="string"==typeof a&&a.trim()?l(a):"";if(!d)return null;let e=c.filter(a=>a.engine===b&&a.project===d).map(a=>a.accountId);return e.length?[...new Set(e)].sort():null}function n(a,b,c){let d;try{d=m(a,b)}catch(a){if(!(a instanceof i))throw a;return{kind:"binding-unreadable",reason:a.message}}return null===d||d.includes(c)?{kind:"within-pool"}:{kind:"outside-pool",allowedAccountIds:d}}function o(a,b,c){let d=a.allowedAccountIds.length?`allowed ${b} accounts: ${a.allowedAccountIds.join(", ")}`:`project ${c} allows no ${b} account`;if("not_allowed"===a.kind)return`${b} account ${a.accountId} is not allowed on project ${c} (${d})`;if("exhausted"===a.kind){let e=null===a.resetsAt?"unknown":new Date(1e3*a.resetsAt).toISOString();return`no allowed ${b} account has capacity for project ${c} (${d}); resetsAt=${e}`}return`no allowed ${b} account is available for project ${c} (${d})`}},57718:(a,b,c)=>{function d(a,b=160){let c=a.replace(/\[([^\]]+)\]\(([^)]+)\)/g,"$1").replace(/`([^`]+)`/g,"$1").replace(/[*_~#>]+/g,"").replace(/\s+/g," ").trim().replace(/(?:\/[^\s)]+){3,}/g,a=>{if(a.length<=40)return a;let b=a.split("/").filter(Boolean);return b.length>=2?".../"+b.slice(-2).join("/"):a}).replace(/\s+/g," ").trim();return c.length>b?c.slice(0,b-1).trimEnd()+"…":c}c.d(b,{QE:()=>f,St:()=>g,V0:()=>i,bF:()=>j,cr:()=>d,tU:()=>h});let e=new Set(["codex session","claude session","codex","claude"]),f="title is required for every new spawn";function g(a,b=160){var c;if("string"!=typeof a)return null;let f=a.trim(),h=d(f,b);return!f||!/[\p{L}\p{N}]/u.test(h)||"string"==typeof(c=f)&&e.has(c.toLocaleLowerCase().replace(/[\p{P}\p{S}\s]+/gu," ").trim())?null:f.length>b?f.slice(0,b-1).trimEnd()+"…":f}function h(a,b=160){let c=g(a,b);return c?d(c,b):null}function i(a,b=60){return h(a?.split(/\r?\n/,1)[0]??"",b)}function j(a,b,c="New task"){let e="string"==typeof a&&d(a,40)||"agent",f=i(b,60)??h(c,60)??"New task";return d(`${e} \xb7 ${f}`,120)}},58577:(a,b,c)=>{c.d(b,{Em:()=>j,Lf:()=>n,MO:()=>i,QK:()=>h,Qq:()=>p,Ui:()=>m,WB:()=>q,lV:()=>k,pY:()=>l});var d=c(23953),e=c(72294),f=c(57718);let g=/^-?[A-Za-z0-9][A-Za-z0-9._-]{0,126}$/;function h(a){if("string"!=typeof a)return null;let b=a.trim();return g.test(b)?b:null}function i(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=h(a.project);return b&&("operator"===a.source||"relocation"===a.source)?{project:b,source:a.source,setAt:"string"==typeof a.setAt?a.setAt:"1970-01-01T00:00:00.000Z",operationId:"string"==typeof a.operationId?a.operationId:""}:null}function j(a){return a?.sandbox==="full"||a?.sandbox==="restricted"?a.sandbox:null}function k(a){return null===j(a)&&a?.readOnly===!0}function l(a){let b=j(a);return"full"===b?"danger-full-access":"restricted"===b?"workspace-write":a?.readOnly===!0?"read-only":null}function m(a={},b){return{cwd:"",model:null,effort:null,fast:null,permissionMode:null,readOnly:null,sandbox:null,allowSubagents:!1,title:null,project:null,parentConversationId:null,role:"worker",goal:null,plan:null,...a,mcpServers:(0,d.c1)(a.mcpServers,b),plugins:(0,e.sJ)(a.plugins)}}function n(a){return m({...a,title:(0,f.St)(a.title,120)??(0,f.bF)("migration successor",a.goal?.objective??a.cwd,"Conversation migration")})}function o(a,b){return a.pid===b.pid&&a.startIdentity===b.startIdentity}function p(a,b){if(a.kind!==b.kind||a.identity!==b.identity||a.epoch!==b.epoch)return!1;let c=a.tmuxHost,d=b.tmuxHost;return c&&d?c.kind===d.kind&&c.endpoint===d.endpoint&&o(c.server,d.server)&&c.paneId===d.paneId&&o(c.panePid,d.panePid)&&c.windowName===d.windowName&&o(c.agent,d.agent)&&c.argv.length===d.argv.length&&c.argv.every((a,b)=>a===d.argv[b]):c===d}function q(a,b){return a.operationId===b.operationId&&a.nativeId===b.nativeId&&a.path===b.path&&a.historyHash===b.historyHash&&a.continuityPaths.length===b.continuityPaths.length&&a.continuityPaths.every((a,c)=>a===b.continuityPaths[c])&&p(a.host,b.host)}},59646:(a,b,c)=>{c.d(b,{d4:()=>f,lU:()=>g,lw:()=>h});var d=c(77598);function e(a){let{revision:b,...c}=a;return(0,d.createHash)("sha256").update(JSON.stringify(function a(b){return Array.isArray(b)?b.map(a):b&&"object"==typeof b?Object.fromEntries(Object.entries(b).sort(([a],[b])=>a.localeCompare(b)).map(([b,c])=>[b,a(c)])):b}(c))).digest("hex")}function f(a){let b=a.revision;if(void 0===b)return`task-legacy:${e(a)}`;if("string"!=typeof b||!/^(task-v1:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|task-legacy:[0-9a-f]{64})$/.test(b))throw Error("invalid persisted task revision");return b}function g(a){return new Map(a.map(a=>[a.id,{ref:a,fingerprint:e(a),revision:f(a)}]))}function h(a,b,c){for(let f of a){let a=b.get(f.id),g=!a||a.fingerprint!==e(f)||c&&a.ref!==f;f.revision=g?`task-v1:${(0,d.randomUUID)()}`:a.revision}}},60546:(a,b,c)=>{c.d(b,{AO:()=>p,Jc:()=>v,L8:()=>u,MT:()=>x,eO:()=>o,mo:()=>z,n4:()=>n,o:()=>t,rF:()=>w});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(63685),k=c(27146),l=c(7733);let m=Object.freeze(["reviewer","verifier"]);function n(a){return"string"==typeof a&&m.includes(a)}class o extends Error{constructor(a){super(a.error),this.fence=a,this.name="SpawnAdmissionFenceError"}}class p extends Error{constructor(){super("spawn attempt conflicts with its original request"),this.name="SpawnAdmissionFenceConflictError"}}function q(){return(0,k.BQ)("spawn-admission-fences.json")}function r(a){return/^[A-Za-z0-9_-]{8,128}$/.test(a)}function s(a){let b,c;try{b=g().readFileSync(q(),"utf8")}catch(a){if("ENOENT"===a.code)return{version:1,fences:{}};throw a}try{c=JSON.parse(b)}catch(a){throw Error("spawn admission fence store could not be read",{cause:a})}if(!c||"object"!=typeof c||Array.isArray(c)||1!==c.version||!c.fences||"object"!=typeof c.fences||Array.isArray(c.fences))throw Error("spawn admission fence store has an unsupported schema");let d={};for(let[b,e]of Object.entries(c.fences))try{d[b]=function(a,b){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("invalid spawn admission fence");let c=a.status;if(1!==a.version||a.clientAttemptId!==b||"string"!=typeof a.clientAttemptId||!r(a.clientAttemptId)||"string"!=typeof a.requestDigest||!/^[0-9a-f]{64}$/i.test(a.requestDigest)||"number"!=typeof c||!Number.isInteger(c)||c<400||c>499||"string"!=typeof a.error||!a.error.trim()||a.error.length>500||"string"!=typeof a.rejectedAt||!a.rejectedAt)throw Error("invalid spawn admission fence");return{version:1,clientAttemptId:a.clientAttemptId,requestDigest:a.requestDigest.toLowerCase(),status:c,error:a.error,rejectedAt:a.rejectedAt}}(e,b)}catch(c){if(b===a)throw c}return{version:1,fences:d}}function t(a){return r(a)?s(a).fences[a]??null:null}function u(a,b){if(!r(a.clientAttemptId))throw Error("invalid spawn admission fence clientAttemptId");if(!/^[0-9a-f]{64}$/i.test(a.requestDigest))throw Error("invalid spawn admission fence request digest");if(!Number.isInteger(a.status)||a.status<400||a.status>499)throw Error("invalid spawn admission fence status");let c=a.error.trim().slice(0,500);if(!c)throw Error("spawn admission fence error is required");return(0,j.oV)(()=>{let d,f,h=b();if(h)return{kind:"existing-receipt",receipt:h};let j=s(a.clientAttemptId),k=j.fences[a.clientAttemptId],l=a.requestDigest.toLowerCase();if(k)return k.requestDigest===l?{kind:"fenced",fence:k}:{kind:"conflict"};let m={version:1,clientAttemptId:a.clientAttemptId,requestDigest:l,status:a.status,error:c,rejectedAt:a.rejectedAt??new Date().toISOString()};return j.fences[a.clientAttemptId]=m,d=q(),g().mkdirSync(i().dirname(d),{recursive:!0,mode:448}),f=i().join(i().dirname(d),`.${i().basename(d)}.${process.pid}.${e().randomUUID()}.tmp`),g().writeFileSync(f,JSON.stringify(j,null,2)+"\n",{encoding:"utf8",mode:384}),g().renameSync(f,d),{kind:"fenced",fence:m}})}class v extends Error{constructor(a,b){super(b.guidance),this.receipt=a,this.rejection=b,this.name="SpawnAdmissionError"}}function w(a){return`${"verifier"===a?"Verifier":"Reviewer"} sessions run every check in-session — filesystem, shell, GitHub, and browser access stay available, but child agents do not. For more perspectives, report the need to your parent so an operator or orchestrator adds a visible reviewer stage (POST /api/pipelines or POST ${l.VIEWER_SPAWN_ENDPOINT}).`}function x(a,b){return`Agent nesting is capped at depth ${b} and this launch would create a depth-${a} child. Finish delegated work in-session or report the need to your parent. An operator can raise maxAgentNestingDepth in Viewer spawn settings (PATCH /api/spawn/policy).`}function y(a,b){let c=new Set,d=b;for(;!c.has(d);){c.add(d);let b=a.conversationAliases[d];if(!b)break;d=b}return d}function z(a,b){if("agent"!==b.kind&&"container"!==b.kind)return null;let c="agent"===b.kind?b.conversationId:b.creatorConversationId,d=c?y(a,c):null;return{kind:b.kind,conversationId:d,role:d?function(a,b){let c=y(a,b),d=a.conversations[c]?.agentRole;if("string"==typeof d&&d.trim())return d;let e=a.lineageEdges[c]?.role;if("string"==typeof e&&e.trim())return e;let f=[...a.memberships[c]??[]].sort((a,b)=>b.createdAt.localeCompare(a.createdAt))[0];return f?.role??null}(a,d):null,depth:d?function(a,b){let c=y(a,b),d=a.conversations[c]?.delegationDepth;if(Number.isInteger(d)&&d>=0)return d;if((a.memberships[c]??[]).length>0)return 1;let e=0,f=new Set([c]),g=c;for(;e<8;){let b=a.lineageEdges[g];if(!b||"viewer-spawn"!==b.source)break;let c=y(a,b.parentConversationId);if(f.has(c))break;f.add(c),e+=1;let d=a.conversations[c]?.delegationDepth;if(Number.isInteger(d)&&d>=0)return d+e;g=c}return e}(a,d):0}}},63685:(a,b,c)=>{c.d(b,{Cu:()=>E,gB:()=>p,oV:()=>D});var d=c(16698),e=c(77598),f=c.n(e),g=c(73024),h=c.n(g),i=c(76760),j=c.n(i),k=c(27146),l=c(55686);let m=globalThis.__llvAccountMutationRuntime??={transactionContext:new d.AsyncLocalStorage,localWaiters:[],localHeld:!1},n=m.transactionContext,o=m.localWaiters;class p extends Error{constructor(a="account mutation is busy; retry shortly"){super(a),this.name="AccountMutationBusyError"}}function q(){let a=o.shift();a?a():m.localHeld=!1}async function r(){return m.localHeld?await new Promise(a=>o.push(a)):m.localHeld=!0,q}let s=function(){try{return h().readlinkSync("/proc/self/ns/pid")}catch{return null}}();function t(a,b){try{return Date.now()-h().statSync(a).mtimeMs>b}catch{return!1}}function u(a,b=null){if(null!==b&&t(a,b))return!0;try{let b=JSON.parse(h().readFileSync(a,"utf8"));if("number"==typeof b.pid&&Number.isInteger(b.pid)&&b.pid>0){if(("string"==typeof b.ns?b.ns:null)!==s)return t(a,3e4);if(!l.B.pidAlive(b.pid))return!0;if("string"!=typeof b.startIdentity)return!1;let c=l.B.processIdentity(b.pid);return null!==c&&c!==b.startIdentity}return t(a,3e4)}catch{return t(a,3e4)}}function v(a,b){try{JSON.parse(h().readFileSync(a,"utf8")).token===b&&h().rmSync(a,{force:!0})}catch{}}function w(){try{let a=JSON.parse(h().readFileSync((0,k.BQ)("account-mutation-revision.json"),"utf8"));return 1===a.version&&Number.isSafeInteger(a.revision)&&a.revision>=0?a.revision:0}catch{return 0}}function x(){let a=(0,k.BQ)("account-selection.lock"),b=`${a}.queue`;h().mkdirSync(b,{recursive:!0,mode:448});let c={pid:process.pid,startIdentity:l.B.processIdentity(process.pid),ns:s,token:f().randomUUID()},d=j().join(b,`${String(Date.now()).padStart(16,"0")}-${process.pid}-${f().randomUUID()}.json`);return h().writeFileSync(d,JSON.stringify(c),{encoding:"utf8",flag:"wx",mode:384}),{lock:a,queue:b,owner:c,ticket:d}}function y(a){let b=new Date;try{return h().utimesSync(a,b,b),!0}catch{return!1}}function z(a){let b,c=[];for(let b of h().readdirSync(a.queue).filter(a=>a.endsWith(".json")).sort()){let d=j().join(a.queue,b);if(d!==a.ticket&&u(d,6e5)){h().rmSync(d,{force:!0});continue}h().existsSync(d)&&c.push(d)}if(c[0]!==a.ticket)return null;try{b=h().openSync(a.lock,"wx",384)}catch(b){if("EEXIST"!==b.code)throw b;return u(a.lock)&&h().rmSync(a.lock,{force:!0}),null}try{h().writeFileSync(b,JSON.stringify(a.owner),"utf8"),h().fsyncSync(b)}catch(c){throw h().closeSync(b),h().rmSync(a.lock,{force:!0}),c}let d={active:!0,revision:w()},e=setInterval(()=>y(a.lock),1e4);return e.unref?.(),{context:d,release(){clearInterval(e),d.active=!1,h().closeSync(b),v(a.lock,a.owner.token),v(a.ticket,a.owner.token)}}}function A(a,b){return{context:a.context,release(){try{a.release()}finally{b()}}}}async function B(){let a=await r(),b=null;try{b=x();let d=Date.now();for(let e=0;e<2e3;e+=1){let e=z(b);if(e)return A(e,a);if(Date.now()-d>=1e4){d=Date.now();var c=b;if(!y(c.ticket))try{h().writeFileSync(c.ticket,JSON.stringify(c.owner),{encoding:"utf8",mode:384})}catch{}}await new Promise(a=>setTimeout(a,5))}throw Error("account mutation is busy; retry shortly")}catch(c){throw b&&v(b.ticket,b.owner.token),a(),c}}function C(a){!function(a){let b=(0,k.BQ)("account-mutation-revision.json");if(w()!==a)throw Error("account mutation revision fence changed while locked");let c=`${b}.${process.pid}.${f().randomUUID()}.tmp`;h().mkdirSync(j().dirname(b),{recursive:!0,mode:448});try{h().writeFileSync(c,JSON.stringify({version:1,revision:a+1})+"\n",{mode:384});let d=h().openSync(c,"r");try{h().fsyncSync(d)}finally{h().closeSync(d)}h().renameSync(c,b)}finally{h().rmSync(c,{force:!0})}}(a.revision),a.revision+=1}function D(a){let b=n.getStore();if(b?.active)return a();let c=function(){let a=function(){if(m.localHeld)throw new p("account mutation is busy in this process; retry shortly");return m.localHeld=!0,q}(),b=null;try{b=x();for(let c=0;c<2;c+=1){let c=z(b);if(c)return A(c,a)}throw new p}catch(c){throw b&&v(b.ticket,b.owner.token),a(),c}}();try{return C(c.context),n.run(c.context,a)}finally{c.release()}}async function E(a){let b=n.getStore();if(b?.active)return a();let c=await B();try{return C(c.context),await n.run(c.context,a)}finally{c.release()}}},65972:(a,b,c)=>{c.d(b,{AM:()=>k,LB:()=>o,Oh:()=>f,Vm:()=>t,dw:()=>n,eW:()=>l,vZ:()=>s});var d=c(55686),e=c(88623);function f(a,b=Date.now()){if(!a.enabled)return{kind:"unavailable",reason:"account-disabled",stale:a.stale,retryAt:null};if("failed"===a.authentication)return{kind:"unavailable",reason:"auth-failed",stale:a.stale,retryAt:null};if("exhausted"===a.limits){let c=function(a,b){if(!a)return null;let c=Date.parse(a);return Number.isFinite(c)&&c>b?new Date(c).toISOString():null}(a.retryAt,b);return c?{kind:"retry-at",reason:"hard-limit",stale:a.stale,retryAt:c}:{kind:"unavailable",reason:"hard-limit",stale:a.stale,retryAt:null}}return{kind:"admissible",basis:a.stale||"unknown"===a.authentication?"last-known":"current",stale:a.stale,retryAt:null}}let g=new Set(["starting","live","idle","handoff"]),h=new Set(["starting","pane-bound","host-verified","prompt-delivered","path-pending"]),i=new Set(["committed","rolled-back"]),j=new Set(["held","assigned","delivery-uncertain"]);function k(a={}){return{now:a.now??(()=>Date.now()),pidAlive:a.pidAlive??(a=>d.B.pidAlive(a)),processIdentity:a.processIdentity??(a=>d.B.processIdentity(a))}}function l(a,b){if(!a||!Number.isInteger(a.pid)||a.pid<=0||!b.pidAlive(a.pid))return!1;if(null===a.startIdentity)return!0;let c=b.processIdentity(a.pid);return null===c||c===a.startIdentity}function m(a,b){let c=a?Date.parse(a):NaN;return!!Number.isFinite(c)&&b.now()-c<3e5}function n(a,b){return!!g.has(a.status)&&(!!(l(a.host?.agent,b)||l(a.host?.panePid,b)||l(a.structuredHost?.process??null,b))||m(a.updatedAt,b))}function o(a,b,c){if(!h.has(b.state))return!1;if(l(b.admissionOwner,c)||l(b.verifiedHost?.agent,c)||l(b.pane?.panePid,c))return!0;let d=b.key?a.entries[(0,e.pp)(b.key)]:void 0;return!!(d&&n(d,c))||m(b.createdAt,c)}function p(a,b){let c=new Set,d=b;for(;!c.has(d);){c.add(d);let b=a.conversationAliases[d];if(!b)break;d=b}return d}function q(a,b,c,d){let e=b.generations.at(-1);if(e&&l(e.host?.tmuxHost?.agent,d))return!0;for(let a of c)if(function(a,b){return a.generations.some(a=>a.path===b)||a.continuityPaths.includes(b)}(b,a))return!0;if(b.migration&&!i.has(b.migration.phase))return!0;let f=c=>p(a,c)===b.id;for(let b of Object.values(a.heldDeliveries))if(j.has(b.state)&&(f(b.conversationId)||f(b.runtimeConversationId))&&("delivery-uncertain"!==b.state||m(b.createdAt,d)))return!0;for(let b of Object.values(a.receipts))if(f(b.conversationId)&&o(a,b,d))return!0;return!1}function r(a,b,c){let d=new Set;for(let e of Object.values(a.entries))e.key.engine===b&&n(e,c)&&d.add(e.artifactPath);return d}function s(a,b={}){let c=k(b),d=new Map,e=b=>{let e=d.get(b);return e||(e=r(a,b,c),d.set(b,e)),e},f=[];for(let b of Object.values(a.heldDeliveries)){if("delivery-uncertain"!==b.state||m(b.createdAt,c))continue;let d=a.conversations[p(a,b.conversationId)];d&&(q(a,d,e(d.engine),c)||f.push(b.id))}return f}function t(a,b,c,d={}){let e=k(d),f=r(a,b,e),g=[];for(let d of Object.values(a.conversations))d.engine===b&&d.generations.at(-1)?.accountId===c&&q(a,d,f,e)&&g.push(d.id);return g}},70160:(a,b,c)=>{c.d(b,{ph:()=>an,Ou:()=>ar,rK:()=>aw,fr:()=>L,agentRegistry:()=>br,oP:()=>a3,hM:()=>aM,Vt:()=>z,l5:()=>be,MA:()=>a4});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(57975),k=c(27146),l=c(76385),m=c(57718),n=c(63685),o=c(30033),p=c(53424),q=c(15641),r=c(58577),s=c(82093),t=c(74085),u=c(23953),v=c(65972),w=c(60546),x=c(88623),y=c(93151);function z(a){let b=(b,c={})=>{let d=c.entry??(b.key?a?.entries[(0,x.pp)(b.key)]:void 0);return"structured"===b.transport||null===b.transport&&(!0===c.structured||!!d?.structuredHost||"string"==typeof d?.structuredHostOperationId)},c=(a,c={})=>!b(a,c)||"completed"===a.state,d=new Set;if(a)for(let b of Object.values(a.receipts))!b.artifactPath||c(b)||("resume-successor"!==b.purpose||b.resumeSourcePath!==b.artifactPath)&&d.add(b.artifactPath);return{isStructured:b,allowsReceipt:c,allowsPath:a=>!d.has(a),pathForConversation:b=>{if(!a)return null;let c=new Set,e=b;for(;!c.has(e);){c.add(e);let b=a.conversationAliases[e];if(!b)break;e=b}let f=a.conversations[e];return f?.generations.findLast(a=>!d.has(a.path))?.path??null}}}let A=new Set(["entries","receipts","conversations","lineageEdges"]),B=["entries","receipts","lineageEdges","memberships","conversations","conversationAliases","migrationIntents","heldDeliveries","deliveryOperationOwners","pendingSuccessorCleanups","pendingSupersedence"],C=["importedResumePanes","legacyResumePanes","identityMigrations","conversationRevision","engineRouting","autoBalance","quotaObservations"];function D(a,b,c){if(null===a||"object"!=typeof a)return a;let d=c.get(a);if(d)return d;let e=new Proxy(a,{get:(a,d,e)=>D(Reflect.get(a,d,e),b,c),set:(a,c,d)=>(b(),Reflect.set(a,c,d)),deleteProperty:(a,c)=>(b(),Reflect.deleteProperty(a,c)),defineProperty:(a,c,d)=>(b(),Reflect.defineProperty(a,c,d))});return c.set(a,e),e}class E{markDecided(a){return this.decidedFiles.add(a),a}decideAssembled(a){return(0,u.$q)(a,this.mcpGrantPolicy),this.markDecided(a)}assertDecided(a){if(!this.decidedFiles.has(a))throw Error("agent registry rows cannot be persisted before the MCP grant decision has run (#739)")}constructor(a,b){this.filename=a,this.rowCache=new Map,this.revisionCache=null,this.readOnlyCache=null,this.decidedFiles=new WeakSet,g().mkdirSync(i().dirname(a),{recursive:!0,mode:448});const c=process.getBuiltinModule?.("bun:sqlite");if(!c)throw Error("SQLite registry modes require the Bun runtime");const{Database:d}=c;this.db=new d(a,{create:!0,strict:!0}),this.normalize=b.normalize,this.onWriterWait=b.onWriterWait,this.onSnapshotLoad=b.onSnapshotLoad,this.onRowPayloadRead=b.onRowPayloadRead,this.onRowPayloadParse=b.onRowPayloadParse,this.onRevisionQuery=b.onRevisionQuery,this.mcpGrantPolicy=b.mcpGrantPolicy,this.db.exec("PRAGMA busy_timeout = 5000; PRAGMA journal_mode = WAL; PRAGMA synchronous = FULL; PRAGMA foreign_keys = ON; PRAGMA auto_vacuum = INCREMENTAL;"),this.db.exec(`
|
|
6
6
|
CREATE TABLE IF NOT EXISTS registry_meta (
|
|
7
7
|
key TEXT PRIMARY KEY,
|
|
8
8
|
value TEXT NOT NULL
|
|
@@ -51,5 +51,5 @@ exit 2
|
|
|
51
51
|
`).run(a,b,JSON.stringify(c),a)}persistRowOrder(a,b){for(let[c,d]of b.entries())this.db.query("UPDATE registry_rows SET row_order = ? WHERE collection = ? AND row_key = ? AND row_order != ?").run(c,a,d,c)}meta(a){return this.db.query("SELECT key, value FROM registry_meta WHERE key = ?").get(a)?.value??null}setMeta(a,b){this.db.query(`
|
|
52
52
|
INSERT INTO registry_meta(key, value) VALUES (?, ?)
|
|
53
53
|
ON CONFLICT(key) DO UPDATE SET value = excluded.value
|
|
54
|
-
`).run(a,b)}secureFiles(){for(let a of[this.filename,`${this.filename}-wal`,`${this.filename}-shm`])g().existsSync(a)&&g().chmodSync(a,384)}storageSignature(){return[this.filename,`${this.filename}-wal`].map(a=>{try{let b=g().statSync(a,{bigint:!0});return`${b.dev}:${b.ino}:${b.size}:${b.mtimeNs}:${b.ctimeNs}`}catch(a){if("ENOENT"===a.code)return"missing";throw a}}).join("|")}rememberRevision(a){this.revisionCache={signature:this.storageSignature(),revision:a}}}var F=c(88858),G=c(47473);let H="structured-host:";function I(a){if(!a.startsWith(H))return null;try{let b=JSON.parse(a.slice(H.length));return Number.isInteger(b.pid)&&b.pid>0?{pid:b.pid,startIdentity:"string"==typeof b.startIdentity?b.startIdentity:null,..."string"==typeof b.bootEpoch?{bootEpoch:b.bootEpoch}:{}}:null}catch{return null}}class J extends Error{constructor(a,b){super(`Agent spawn limit reached: caller ${a} already has ${b} live children (cap: ${b}). Wait for a child to finish before spawning another helper.`),this.parentConversationId=a,this.cap=b,this.name="SpawnChildLimitError"}}class K extends Error{constructor(a,b){super(b),this.successorConversationId=a,this.name="SupersedenceConflictError"}}function L(a){return(a.scope??"engine")==="engine"}function M(a,b,c){if(N(a,b,c?.pendingDeliveryConversationIds)||(c?c.uncertainDeliveryConversationIds.has(b.id):Object.values(a.heldDeliveries).some(a=>a.conversationId===b.id&&"delivery-uncertain"===a.state)))return"busy";if(b.migration&&!["committed","rolled-back"].includes(b.migration.phase))return"idle";let d=b.generations.at(-1)?.path;return void 0!==d&&(c?c.activeHostPaths.has(d):Object.values(a.entries).some(a=>a.artifactPath===d&&["starting","live","idle","handoff"].includes(a.status)))||(c?c.pendingDeliveryConversationIds.has(b.id):Object.values(a.heldDeliveries).some(a=>a.conversationId===b.id&&"delivered"!==a.state))?"idle":"deferred"}function N(a,b,c){let d=b.generations.at(-1)?.path,e=c?c.has(b.id):Object.values(a.heldDeliveries).some(a=>a.conversationId===b.id&&"delivered"!==a.state),f="unknown"===b.turn.state&&"empty"===b.turn.source&&!!d&&!g().existsSync(d)&&!e;return"busy"===b.turn.state||"unknown"===b.turn.state&&!f}function O(a){let b=new Set,c=new Set;for(let d of Object.values(a.heldDeliveries))"delivery-uncertain"===d.state&&b.add(d.conversationId),"delivered"!==d.state&&c.add(d.conversationId);return{uncertainDeliveryConversationIds:b,pendingDeliveryConversationIds:c,activeHostPaths:new Set(Object.values(a.entries).filter(a=>["starting","live","idle","handoff"].includes(a.status)).map(a=>a.artifactPath).filter(a=>!!a))}}function P(a){return null===a||"committed"===a.phase||"rolled-back"===a.phase||("waiting-turn"===a.phase||"requested"===a.phase)&&null===a.providerReceipt}function Q(a){return"resume-successor"===a.purpose&&"failed"!==a.state&&("completed"!==a.state||null===a.resumeSourcePath||a.artifactPath===a.resumeSourcePath)}let R={now:()=>Date.now(),wait:async a=>{await new Promise(b=>setTimeout(b,a))}};function S(a,b,c){let d=O(a);return JSON.stringify(Object.values(a.conversations).filter(a=>a.engine===b&&c.has(a.generations.at(-1)?.path??"")).map(b=>[b.id,M(a,b,d)]).sort(([a],[b])=>a.localeCompare(b)))}function T(a,b,c){let d=a.entries[b],e=new Set([d?.artifactPath,c.artifactPath].filter(a=>!!a)),f=new Set(["starting","live","idle","handoff"]),g=(d,e)=>{for(let[g,h]of Object.entries(a.entries)){let a=e&&g===b?c:h;if(a.artifactPath===d&&f.has(a.status))return!0}return e&&!(b in a.entries)&&c.artifactPath===d&&f.has(c.status)};return new Set([...e].filter(a=>g(a,!1)!==g(a,!0)))}function U(a,b,c,d){S(a,b,d)!==c&&(a.conversationRevision[b]+=1,a.engineRouting[b].revision+=1)}function V(a,b,c,d,f){let g=a.migration?.boardProject??null,h=a.migration&&"committed"!==a.migration.phase?a.migration.pendingContinuityPaths:[];return{intentId:c.id,phase:d,targetId:c.targetId,revision:c.revision,error:null,errorCode:null,operationId:e().randomUUID(),sourceGenerationId:b.id,successorLaunchProfile:null,providerReceipt:null,pendingContinuityPaths:h,boardProject:g,boardOperationId:a.migration?.boardOperationId??null,boardPlacementProject:a.migration?.boardPlacementProject??g??a.projectOwnership?.project??b.launchProfile.project,updatedAt:f}}function W(a,b,c,d){if("auto"!==d.origin)return{kind:"accepted"};let e=(0,o.o)(b.projectOwnership,c.launchProfile);try{let c=(0,q.h)({project:e,engine:b.engine,targetId:d.targetId,observations:Object.values(a.quotaObservations[b.engine]),bindings:(0,p.$8)()});return"available"===c.kind?{kind:"accepted"}:{kind:"refused",reason:(0,p.ed)(c,b.engine,e??"")}}catch(a){return{kind:"refused",reason:a instanceof Error?a.message:String(a)}}}function X(a,b,c){let d=b.migration?.phase==="committed"?null:b.migration?.providerReceipt;d&&(a.pendingSuccessorCleanups[d.operationId]??={conversationId:b.id,receipt:d,createdAt:c,lastError:null})}function Y(a,b,c){for(let d of Object.values(a.heldDeliveries))d.conversationId===b.id&&"delivered"!==d.state&&"failed"!==d.state&&Z(a,d,c)}function Z(a,b,c){let d="delivery-uncertain"===b.state,e=d?`${c}; a prior delivery attempt may have been delivered because its journal outcome is unknown`:c;b.state="failed",b.text="",b.generationId=null,b.assignedAt=null,b.deliveredAt=null,b.error=e.slice(0,240),aA(a,b),ax(a,b,d?"unverified":"lost")}function $(a,b,c){if("held"!==b.state)return!1;let d=a.conversations[aP(a,b.conversationId)];if(!d?.supersededBy)return!1;let e=d.generations.at(-1);if(!e)return!1;let f=a.entries[(0,x.pp)({engine:d.engine,sessionId:e.id})];if(!f||f.host)return!1;let g=f.structuredHost?.process??null;if(g&&c(g)||!g&&"dead"!==f.status&&"unhosted"!==f.status)return!1;if(f.claimOwner){let a=I(f.claimOwner);if(!a||c(a))return!1}return!0}function _(a,b,c,d){let e=a.heldDeliveries[b];if(!e||!["held","assigned","delivery-uncertain"].includes(e.state))return null;let f=a.conversations[aP(a,e.conversationId)],g=f?.migration;return g&&"rolled-back"===g.phase&&g.intentId===c&&(0,s.bj)(e,g.updatedAt)?(Z(a,e,d),ai(e)):null}function aa(a){return`reconfigure:${a.operationId}:${a.revision}`}function ab(a,b,c){let d=b.migration;if(!d||["committed","rolled-back","failed-recoverable"].includes(d.phase))return;let e=a.migrationIntents[d.intentId],f=aa(c);if(e?.scope!=="conversation"||!e.requestIds.includes(f))return;let g=aj(),h=new Set([b.generations.at(-1)?.path].filter(a=>!!a)),i=S(a,b.engine,h);"stopped"!==e.state&&(e.state="stopped",e.stoppedAt=g,e.updatedAt=g),X(a,b,g),aK(b),Y(a,b,s.JJ),b.migration={...d,phase:"rolled-back",pendingContinuityPaths:[],error:null,errorCode:null,updatedAt:g},b.updatedAt=g,U(a,b.engine,i,h)}class ac extends Error{constructor(a,b){super("migration preview is stale"),this.expected=a,this.actual=b,this.name="MigrationRevisionError"}}class ad extends Error{constructor(a="client message id is already reserved for another request"){super(a),this.name="DeliveryReservationConflictError"}}let ae="1970-01-01T00:00:00.000Z";function af(a=aj()){return{enabled:!0,revision:0,cooldownUntil:null,departed:{},lastOutcome:null,lastTrigger:null,lastCheckAt:null,sustain:null,restartedAt:a}}let ag={version:2,entries:{},receipts:{},lineageEdges:{},memberships:{},identityMigrations:{},importedResumePanes:!1,legacyResumePanes:{serverPid:null,panes:{}},conversations:{},conversationAliases:{},conversationRevision:{claude:0,codex:0},migrationIntents:{},engineRouting:{claude:{activeAccountId:null,revision:0},codex:{activeAccountId:null,revision:0}},autoBalance:{claude:af(),codex:af()},quotaObservations:{claude:{},codex:{}},heldDeliveries:{},deliveryOperationOwners:{},pendingSuccessorCleanups:{},pendingSupersedence:{}};class ah extends Error{}function ai(a){return JSON.parse(JSON.stringify(a))}function aj(){return new Date().toISOString()}let ak=new Set(["starting","pane-bound","host-verified","prompt-delivered","path-pending"]),al=new Set(["starting","live","idle","handoff"]),am=12e4;function an(a){return i().basename(a).match(/([0-9a-f-]{36})(?:\.jsonl)?$/i)?.[1]??e().randomUUID()}function ao(a){if(!a||"object"!=typeof a||"codex-app-server"!==a.kind&&"claude-broker"!==a.kind)return null;let b=a.eventCursor;if(void 0!==b&&(!Number.isSafeInteger(b)||b<0))throw Error("structured host event cursor is invalid");let c=a.process&&"object"==typeof a.process&&"number"==typeof a.process.pid?{pid:a.process.pid,startIdentity:"string"==typeof a.process.startIdentity?a.process.startIdentity:null,..."string"==typeof a.process.bootEpoch?{bootEpoch:a.process.bootEpoch}:{}}:null;return{kind:a.kind,endpoint:"string"==typeof a.endpoint?a.endpoint:"",process:c,eventCursor:void 0===b?0:b,protocolVersion:"string"==typeof a.protocolVersion?a.protocolVersion:null,writerClaimEpoch:Number.isSafeInteger(a.writerClaimEpoch)&&(a.writerClaimEpoch??-1)>=0?a.writerClaimEpoch:0,activeTurnRef:"string"==typeof a.activeTurnRef?a.activeTurnRef:null,pendingAttention:Array.isArray(a.pendingAttention)?a.pendingAttention.filter(a=>"string"==typeof a):[],activeFlags:Array.isArray(a.activeFlags)?a.activeFlags.filter(a=>"string"==typeof a):[],...Number.isSafeInteger(a.releaseHandoffClaimEpoch)&&(a.releaseHandoffClaimEpoch??-1)>=0?{releaseHandoffClaimEpoch:a.releaseHandoffClaimEpoch}:{}}}function ap(a){let b=af(ae);return a&&"object"==typeof a?{...b,...a,departed:a.departed&&"object"==typeof a.departed?a.departed:{},lastOutcome:a.lastOutcome&&"object"==typeof a.lastOutcome?a.lastOutcome:null,sustain:a.sustain&&"object"==typeof a.sustain?a.sustain:null}:b}function aq(a,b,c,d){c.launchProfile=(0,r.Ui)({...c.launchProfile,...d});let e=a.entries[(0,x.pp)({engine:b.engine,sessionId:c.id})];e&&(e.launchProfile=(0,r.Ui)({...e.launchProfile??c.launchProfile,...d}),e.updatedAt=aj()),b.updatedAt=aj()}function ar(a,b){let c={operationId:a?.operationId||b,kind:a?.kind==="steer"?"steer":"send",policy:a?.policy==="queue"||a?.policy==="steer-if-active"?a.policy:"interrupt-active"};(a?.turnId===null||"string"==typeof a?.turnId)&&(c.turnId=a.turnId);let d=(0,F.n)(a?.origin);return d&&(c.origin=d),c}function as(a,b,c){let d=void 0===c.turnId?["absent"]:["present",c.turnId];return e().createHash("sha256").update(JSON.stringify(["held-delivery-request-v1",a,b,c.kind,c.policy,d])).digest("hex")}let at="held delivery image references are corrupt; send the message again to re-admit its images";function au(a){let b=a.state??"held",c="string"==typeof a.text?a.text:"",d=ar(a.command,a.id),e=c?as(a.conversationId,c,d):null,f=a.payloadKind??"text",g=(0,G.kW)(a.runtimeImages??[],16),h="delivered"!==b&&(null===g||"runtime-images"===f&&(!Array.isArray(a.runtimeImages)||0===g.length));h&&(b="failed");let i=g??[],j="string"==typeof a.contentDigest?a.contentDigest:null;if(!j&&!h&&"delivered"!==b&&("text"===f||"runtime-images"===f))try{j=(0,G.rM)(c,i).contentDigest}catch{}return{...a,runtimeConversationId:"string"==typeof a.runtimeConversationId&&a.runtimeConversationId.startsWith("conversation_")?a.runtimeConversationId:a.conversationId,text:"delivered"===b?"":c,clientMessageId:a.clientMessageId??null,payloadKind:f,runtimeImages:i,contentDigest:j,artifactPaths:Array.isArray(a.artifactPaths)?a.artifactPaths.filter(a=>"string"==typeof a):[],command:d,requestDigest:"string"==typeof a.requestDigest?a.requestDigest:e,recoveryIntent:"reclaimed-host"===a.recoveryIntent?a.recoveryIntent:null,state:b,generationId:h?null:a.generationId??null,attempts:Number.isInteger(a.attempts)?a.attempts:0,assignedAt:h?null:a.assignedAt??null,deliveredAt:a.deliveredAt??null,error:h?at:a.error??null}}function av(a){return a?.state==="delivered"||a?.state==="failed"?a.state:null}function aw(a){return"failed"===a.state&&("delivery-discarded"===a.error||a.error?.startsWith(s.BD)===!0)}function ax(a,b,c){let d=a.deliveryOperationOwners[b.command.operationId];if(d?.deliveryId!==b.id)return;let e=av(b);if(d.terminalState=e,null===e){d.terminalDisposition=null,d.terminalReason=null,d.settledAt=null;return}d.terminalDisposition="delivered"===e?"delivered":c??d.terminalDisposition??null,d.terminalReason=b.error??d.terminalReason??null,d.settledAt=b.deliveredAt??d.settledAt??aj()}function ay(a,b,c){if("delivered"===b.state)return b;if("delivery-uncertain"===b.state&&!c)throw Error("uncertain delivery requires an explicit client retry");if(c&&"delivery-uncertain"!==b.state)throw Error("delivery outcome is already resolved");let d=a.conversations[aP(a,b.conversationId)],e=new Set([d?.generations.at(-1)?.path].filter(a=>!!a)),f=d?S(a,d.engine,e):"";if(d?.migration&&["waiting-turn","requested","preparing","successor-starting","verifying"].includes(d.migration.phase))return b.state="held",b.generationId=null,b.assignedAt=null,b.deliveredAt=null,b.error=null,ax(a,b),U(a,d.engine,f,e),b;let g=d?.generations.at(-1);return g?(b.state="assigned",b.generationId=g.id,b.assignedAt=aj(),b.deliveredAt=null,b.error=null,ax(a,b),U(a,d.engine,f,e)):(b.state="failed",b.deliveredAt=null,b.error="delivery target is unavailable and remains recoverable",ax(a,b),d&&U(a,d.engine,f,e)),b}function az(a,b){let c=b.clientMessageId;if(!c||!c.startsWith("spawn_"))return null;let d=c.slice(6);if(b.command.operationId!==`spawn_message_${d}`)return null;let e=a.receipts[d];return e&&"launch"===e.purpose&&aP(a,e.conversationId)===aP(a,b.conversationId)?e:null}function aA(a,b){if("failed"!==b.state)return;let c=az(a,b);!c||["completed","failed","conflicted"].includes(c.state)||(c.state="failed",c.error=b.error??"initial prompt delivery failed",c.admissionOwner=null)}function aB(a){let b=[];for(let c of Object.values(a.heldDeliveries)){let d=az(a,c);if(!d)continue;if("failed"===c.state&&!["completed","failed","conflicted"].includes(d.state)){let e=d.state;aA(a,c),d.state!==e&&b.push(c.id);continue}let e="failed"===d.state||"conflicted"===d.state,f=0===c.attempts&&("held"===c.state||"assigned"===c.state);e&&f&&(Z(a,c,"spawn failed before its initial message was delivered"),b.push(c.id))}return b}function aC(a,b){return"delivery-uncertain"===b.state||"failed"===b.state&&a.deliveryOperationOwners[b.command.operationId]?.terminalDisposition==="unverified"}function aD(a,b,c,d,e,f){let g=aP(a,b),h=d?Object.values(a.heldDeliveries).find(b=>aP(a,b.conversationId)===g&&b.clientMessageId===d):void 0,i=ar(f,h?.id??"pending-delivery"),j=as(g,c,i),k=function(a,b,c,d){let e=new Set([b]);for(let c of Object.keys(a.conversationAliases))aP(a,c)===b&&e.add(c);return new Set([...e].map(a=>as(a,c,d)))}(a,g,c,i),l=!!(h?.requestDigest&&!k.has(h.requestDigest)||h?.contentDigest&&e&&e!==h.contentDigest),m=null;if(l){if("failed"!==h.state||h.error===at)throw new ad;m=h,h=void 0}let n=null;if(!h&&f.operationId){let b=Object.values(a.heldDeliveries).find(a=>a.command.operationId===i.operationId),c=a.deliveryOperationOwners[i.operationId]??(b?.requestDigest?{conversationId:b.conversationId,runtimeConversationId:b.runtimeConversationId,clientMessageId:b.clientMessageId,deliveryId:b.id,command:b.command,requestDigest:b.requestDigest,contentDigest:b.contentDigest,createdAt:b.createdAt,terminalState:av(b)}:null),f=c&&aP(a,c.conversationId)===g&&c.clientMessageId===d&&k.has(c.requestDigest)&&(!c.contentDigest||!e||c.contentDigest===e);if(c&&!f)throw new ad("operation id is already reserved for another client message");f&&c.terminalState&&(n=ai(c))}return{canonicalId:g,existing:h,requestDigest:j,terminalOperationRetry:n,supersededFailed:m}}function aE(a,b,c,d,e,f){if(a.existing?.state==="delivered"||a.existing?.error===at)return ai(a.existing);let g=a.terminalOperationRetry;return g?.terminalState?{id:g.deliveryId,conversationId:a.canonicalId,runtimeConversationId:g.runtimeConversationId,text:b,createdAt:g.createdAt,clientMessageId:c,payloadKind:d,runtimeImages:e.map(a=>({...a})),contentDigest:f,artifactPaths:[],command:g.command,requestDigest:g.requestDigest,state:g.terminalState,generationId:null,attempts:0,assignedAt:null,deliveredAt:"delivered"===g.terminalState?g.createdAt:null,error:"failed"===g.terminalState?"delivery failed":null}:null}function aF(a,b,c){for(let b of Object.values(a.heldDeliveries))b.requestDigest&&(a.deliveryOperationOwners[b.command.operationId]??={conversationId:b.conversationId,runtimeConversationId:b.runtimeConversationId,clientMessageId:b.clientMessageId,deliveryId:b.id,command:b.command,requestDigest:b.requestDigest,contentDigest:b.contentDigest,createdAt:b.createdAt,retryOfOperationId:null,terminalState:null,terminalDisposition:null,terminalReason:null,settledAt:null},ax(a,b));let d=new Map,e=new Map;for(let c of Object.values(a.heldDeliveries)){let f=aP(a,c.conversationId);if(!b||f===aP(a,b)){if("delivered"===c.state){c.text="";let a=d.get(f)??[];a.push(c),d.set(f,a)}else if("failed"===c.state&&!c.error?.startsWith(s.BD)){let a=e.get(f)??[];a.push(c),e.set(f,a)}}}let f=0;for(let b of[d,e])for(let[d,e]of b){let g=[];for(let b of e)!function(a,b){if(void 0===b)return!1;let c=Date.parse(a.deliveredAt??a.createdAt);return Number.isFinite(c)&&b-c>6048e5}(b,c)?g.push(b):(delete a.heldDeliveries[b.id],f+=1);b.set(d,g)}for(let b of d.values())for(let c of(b.sort((a,b)=>(b.deliveredAt??b.createdAt).localeCompare(a.deliveredAt??a.createdAt)||b.id.localeCompare(a.id)),b.slice(100)))delete a.heldDeliveries[c.id],f+=1;for(let[b,c]of e){let d=Math.max(0,Math.min(50,99-Object.values(a.heldDeliveries).filter(c=>aP(a,c.conversationId)===b&&["held","assigned","delivery-uncertain"].includes(c.state)).length));for(let b of(c.sort((a,b)=>b.createdAt.localeCompare(a.createdAt)||b.id.localeCompare(a.id)),c.slice(d)))delete a.heldDeliveries[b.id],f+=1}let g=new Map;for(let[c,d]of Object.entries(a.deliveryOperationOwners)){if(null===d.terminalState)continue;let e=aP(a,d.conversationId);if(b&&e!==aP(a,b))continue;let f=g.get(e)??[];f.push([c,d]),g.set(e,f)}for(let b of g.values())for(let[c]of(b.sort(([a,b],[c,d])=>Number("unverified"===d.terminalDisposition)-Number("unverified"===b.terminalDisposition)||d.createdAt.localeCompare(b.createdAt)||c.localeCompare(a)),b.slice(200)))delete a.deliveryOperationOwners[c];return f}function aG(a,b){return a.generations.some(a=>a.path===b)||a.continuityPaths.includes(b)}function aH(a,b){a.generations.some(a=>a.path===b)||(a.continuityPaths.includes(b)||a.continuityPaths.push(b),a.migration&&"committed"!==a.migration.phase&&!a.migration.pendingContinuityPaths.includes(b)&&a.migration.pendingContinuityPaths.push(b))}function aI(a,b){!a.generations.some(a=>a.path===b)&&(a.continuityPaths.includes(b)||a.continuityPaths.push(b),a.providerForkPaths.includes(b)||a.providerForkPaths.push(b))}function aJ(a,b,c){let d=Object.values(a.conversations).find(a=>a.id!==b.id&&a.engine===b.engine&&aG(a,c));if(d&&!aY(a,d,b,c))throw Error("migration continuity path has another durable owner")}function aK(a){let b=a.migration?.pendingContinuityPaths??[];0!==b.length&&(a.abandonedContinuityPaths=[...new Set([...a.abandonedContinuityPaths,...b])])}function aL(a,b){let c=a.generations[0];return null===a.migration&&1===a.generations.length&&c?.path===b&&0===a.continuityPaths.length}function aM(a,b){let c=100*(b.generations.length>1||null!==b.migration);for(let d of Object.values(a.receipts))d.conversationId===b.id&&(c+=20),d.parentConversationId===b.id&&(c+=5);for(let d of(a.lineageEdges[b.id]&&(c+=10),Object.values(a.lineageEdges)))d.parentConversationId===b.id&&(c+=5);for(let d of(a.memberships[b.id]?.length&&(c+=10),Object.values(a.heldDeliveries)))d.conversationId===b.id&&(c+=5);for(let d of Object.values(a.deliveryOperationOwners))d.conversationId===b.id&&(c+=5);return c}function aN(a,b){return[...b].sort((b,c)=>aM(a,c)-aM(a,b)||b.createdAt.localeCompare(c.createdAt)||b.id.localeCompare(c.id))[0]??null}function aO(a,b,c,d){let e=b.generations.find(a=>a.path===c)??b.generations.at(-1),f=a.lineageEdges[b.id],g=f?.source==="viewer-spawn"?f.parentConversationId:e?.launchProfile.parentConversationId;if(!e||!g||g===b.id)return;let h=aP(a,g),i=a.conversations[h];if(!i)return;let j=i.generations.at(-1);a.lineageEdges[b.id]={childConversationId:b.id,parentConversationId:h,childSessionKey:(0,x.sz)(b.engine,c),parentSessionKey:j?(0,x.sz)(i.engine,j.path):null,childArtifactPath:c,parentArtifactPath:j?.path??null,kind:f?.kind??"spawn",role:f?.role??null,reviewsConversationId:f?.reviewsConversationId??null,source:f?.source??"engine-native",evidence:f?.evidence??{launchId:null,clientAttemptId:null},createdAt:f?.createdAt??d}}function aP(a,b){let c=new Set,d=b;for(;!c.has(d);){c.add(d);let b=a.conversationAliases[d];if(!b)break;d=b}return d}function aQ(a,b){let c=new Set,d=aP(a,b);for(;c.size<64&&!c.has(d);){c.add(d);let b=a.conversations[d]?.supersededBy?.conversationId;if(!b)break;d=aP(a,b)}return d}function aR(a,b){let c=b.generations.at(-1);if(!c)return!1;let d=a.entries[(0,x.pp)({engine:b.engine,sessionId:c.id})];return!!(d&&d.artifactPath===c.path&&("starting"===d.status||"live"===d.status))}function aS(a,b,c,d){let e=aP(a,c),f=aQ(a,b);if(!a.conversations[aP(a,b)])throw Error("supersedence predecessor is unknown");if(!a.conversations[e])throw Error("supersedence successor is unknown");if(f===e)return a.conversations[f]??null;let g=a.conversations[f];if(!g)throw Error("supersedence predecessor is unknown");if(aQ(a,e)===f)throw Error("supersedence chain would form a cycle");if(aR(a,g))throw new K(f,"supersedence chain already ends at a live conversation");return g.supersededBy={conversationId:e,at:aj(),reason:d},g.updatedAt=g.supersededBy.at,a.conversationRevision[g.engine]+=1,g}function aT(a,b,c,d){try{aS(a,b,c,d),delete a.pendingSupersedence[aP(a,c)]}catch(f){if(!(f instanceof K))return;let e=aP(a,c);a.pendingSupersedence[e]??={predecessorConversationId:aP(a,b),successorConversationId:e,reason:d,stagedAt:aj()}}}function aU(a,b,c,d){if("flow"!==c.kind&&"pipeline"!==c.kind&&"orchestrator"!==c.kind||!c.containerId.trim()||!c.role.trim()||!c.slot.trim())throw Error("durable membership is invalid");let e=aP(a,b),f=c.parentConversationId?aP(a,c.parentConversationId):null,g={conversationId:e,kind:c.kind,containerId:c.containerId,role:c.role,slot:c.slot,stageId:c.stageId??null,stageOrder:Number.isInteger(c.stageOrder)?c.stageOrder:null,round:Number.isInteger(c.round)?c.round:null,parentConversationId:f,runtime:c.runtime?{...c.runtime}:null,createdAt:d},h=a.memberships[e]??[],i=h.find(a=>a.kind===g.kind&&a.containerId===g.containerId&&a.slot===g.slot);if(i){if(JSON.stringify((({createdAt:a,...b})=>b)(i))!==JSON.stringify((({createdAt:a,...b})=>b)(g)))throw Error("durable membership is immutable");return i}return h.push(g),a.memberships[e]=h,g}function aV(a){return aX(a,ai)}function aW(a){return aX(a,a=>a)}function aX(a,b){let c=new Map;for(let b of Object.values(a.conversations)){for(let a of b.generations)c.has(a.path)||c.set(a.path,b);for(let a of b.continuityPaths)c.has(a)||c.set(a,b)}return{conversationForPath(a){let d=c.get(a);return d?b(d):null},canonicalConversationId:b=>aP(a,b),conversation(c){let d=a.conversations[aP(a,c)];return d?b(d):null}}}function aY(a,b,c,d){if(!aL(b,d))return!1;for(let d of(b.migrationOptOut&&(!c.migrationOptOut||b.migrationOptOut.updatedAt>c.migrationOptOut.updatedAt)&&(c.migrationOptOut={...b.migrationOptOut}),c.agentRole??=b.agentRole,c.delegationDepth??=b.delegationDepth,Object.values(a.receipts)))d.conversationId===b.id&&(d.conversationId=c.id),d.parentConversationId===b.id&&(d.parentConversationId=c.id),d.launchProfile.parentConversationId===b.id&&(d.launchProfile={...d.launchProfile,parentConversationId:c.id});let e={};for(let d of Object.values(a.lineageEdges)){let a={...d,childConversationId:d.childConversationId===b.id?c.id:d.childConversationId,parentConversationId:d.parentConversationId===b.id?c.id:d.parentConversationId,reviewsConversationId:d.reviewsConversationId===b.id?c.id:d.reviewsConversationId};a.childConversationId!==a.parentConversationId&&(e[a.childConversationId]&&d.childConversationId!==c.id||(e[a.childConversationId]=a))}a.lineageEdges=e;let f={};for(let[d,e]of Object.entries(a.memberships)){let a=d===b.id?c.id:d,g=e.map(d=>({...d,conversationId:a,parentConversationId:d.parentConversationId===b.id?c.id:d.parentConversationId})),h=f[a]??[];for(let a of g)h.some(b=>b.kind===a.kind&&b.containerId===a.containerId&&b.slot===a.slot)||h.push(a);f[a]=h}for(let d of(a.memberships=f,Object.values(a.heldDeliveries)))d.conversationId===b.id&&(d.conversationId=c.id);for(let d of Object.values(a.deliveryOperationOwners))d.conversationId===b.id&&(d.conversationId=c.id);for(let d of Object.values(a.entries))d.launchProfile?.parentConversationId===b.id&&(d.launchProfile={...d.launchProfile,parentConversationId:c.id});for(let d of Object.values(a.conversations))for(let a of d.generations)a.launchProfile.parentConversationId===b.id&&(a.launchProfile={...a.launchProfile,parentConversationId:c.id});for(let[d,e]of Object.entries(a.conversationAliases))e===b.id&&(a.conversationAliases[d]=c.id);return a.conversationAliases[b.id]=c.id,delete a.conversations[b.id],a.conversationRevision[c.engine]+=1,a.engineRouting[c.engine].revision+=1,!0}function aZ(a,b){if(!a)return!0;let c=Date.parse(a),d=Date.parse(b);return Number.isFinite(c)&&Number.isFinite(d)?d>=c:b>=a}function a$(a,b){if(!a||"object"!=typeof a||Array.isArray(a))return null;let c=a.spec,d="string"==typeof a.retryAt?Date.parse(a.retryAt):NaN,e=(0,G.kW)(a.imageRefs??[],16);if(1!==a.version||!Number.isFinite(d)||"string"!=typeof a.accountId||!a.accountId||"en"!==a.locale&&"uk"!==a.locale||!c||"claude"!==c.engine&&"codex"!==c.engine||"string"!=typeof c.command||"string"!=typeof c.cwd||"string"!=typeof c.windowName||!c.launchProfile||"string"!=typeof a.prompt||!e)return null;try{(0,G.h1)(a.prompt)}catch{return null}return{version:1,retryAt:new Date(d).toISOString(),accountId:a.accountId,locale:a.locale,spec:{command:c.command,cwd:c.cwd,windowName:c.windowName,engine:c.engine,..."string"==typeof c.transcript?{transcript:c.transcript}:{},...!0===c.printMode?{printMode:!0}:{},launchProfile:(0,r.Ui)(c.launchProfile,b)},prompt:a.prompt,imageRefs:e,parentArtifactPath:"string"==typeof a.parentArtifactPath?a.parentArtifactPath:null,pipelineSourceConversationId:"string"==typeof a.pipelineSourceConversationId&&a.pipelineSourceConversationId.startsWith("conversation_")?a.pipelineSourceConversationId:null}}function a_(a){return!a||"object"!=typeof a||Array.isArray(a)?null:"string"==typeof a.project&&a.project&&Number.isInteger(a.seatEpoch)&&!((a.seatEpoch??0)<1)&&"string"==typeof a.conversationId&&a.conversationId.startsWith("conversation_")&&(null===a.predecessorConversationId||"string"==typeof a.predecessorConversationId)&&"string"==typeof a.designatedAt&&(null===a.activatedAt||"string"==typeof a.activatedAt)?{project:a.project,seatEpoch:a.seatEpoch,conversationId:a.conversationId,predecessorConversationId:a.predecessorConversationId??null,designatedAt:a.designatedAt,activatedAt:a.activatedAt??null,path:"string"==typeof a.path?a.path:null}:null}function a0(a,b){let c="completed"===a.state||"failed"===a.state||"pane-bound"===a.state||"host-verified"===a.state||"prompt-delivered"===a.state||"path-pending"===a.state||"conflicted"===a.state?a.state:"starting",d=a.pane&&"object"==typeof a.pane&&"string"==typeof a.pane.paneId&&"string"==typeof a.pane.target?{...a.pane,display:"string"==typeof a.pane.display?a.pane.display:a.pane.target,target:a.pane.paneId}:null;return{...a,clientAttemptId:"string"==typeof a.clientAttemptId?a.clientAttemptId:null,requestDigest:"string"==typeof a.requestDigest?a.requestDigest:null,...!0===a.identityWaveTitleBackfill?{identityWaveTitleBackfill:!0}:{},pendingOrchestratorSeatIdentity:a_(a.pendingOrchestratorSeatIdentity),transport:"tmux"===a.transport||"structured"===a.transport?a.transport:null,admissionOwner:a.admissionOwner&&Number.isInteger(a.admissionOwner.pid)&&a.admissionOwner.pid>0?{pid:a.admissionOwner.pid,startIdentity:"string"==typeof a.admissionOwner.startIdentity?a.admissionOwner.startIdentity:null,..."string"==typeof a.admissionOwner.bootEpoch?{bootEpoch:a.admissionOwner.bootEpoch}:{}}:null,spawnCapabilityDigest:"string"==typeof a.spawnCapabilityDigest&&/^[0-9a-f]{64}$/.test(a.spawnCapabilityDigest)?a.spawnCapabilityDigest:null,conversationId:"string"==typeof a.conversationId&&a.conversationId.startsWith("conversation_")?a.conversationId:`conversation_${e().randomUUID()}`,purpose:"migration-successor"===a.purpose||"resume-successor"===a.purpose?a.purpose:"launch",supersedes:a.supersedes&&"string"==typeof a.supersedes.conversationId&&a.supersedes.conversationId.startsWith("conversation_")?{conversationId:a.supersedes.conversationId,reason:"stage-retry"===a.supersedes.reason||"manual"===a.supersedes.reason?a.supersedes.reason:"recovery-spawn"}:null,resumeSourcePath:"string"==typeof a.resumeSourcePath?a.resumeSourcePath:null,pathCorrelation:a.pathCorrelation&&"string"==typeof a.pathCorrelation.cwd&&"string"==typeof a.pathCorrelation.startedAt?a.pathCorrelation:null,accountId:"string"==typeof a.accountId?a.accountId:null,accountPin:!0===a.accountPin,parentConversationId:"string"==typeof a.parentConversationId&&a.parentConversationId.startsWith("conversation_")?a.parentConversationId:null,parentSource:"explicit"===a.parentSource||"inferred-caller"===a.parentSource?a.parentSource:null,state:c,artifactLifecycle:"materialized"===a.artifactLifecycle?"materialized":"pending",key:a.key&&"object"==typeof a.key&&("claude"===a.key.engine||"codex"===a.key.engine)&&"string"==typeof a.key.sessionId?a.key:null,pane:d,verifiedHost:a.verifiedHost&&"object"==typeof a.verifiedHost&&"tmux"===a.verifiedHost.kind?a.verifiedHost:null,target:d?.paneId??("string"==typeof a.target&&/^%\d+$/.test(a.target)?a.target:null),completionMode:"route-completed"===a.completionMode||"observed-completed"===a.completionMode||"route-recovered"===a.completionMode?a.completionMode:null,agentRole:a2(a.agentRole),delegationDepth:a3(a.delegationDepth),rejection:function(a){if(!a||"object"!=typeof a||"reviewer_origin_spawn"!==a.code&&"nesting_depth_exceeded"!==a.code)return null;let b=a.origin;return b&&("agent"===b.kind||"container"===b.kind)?{code:a.code,origin:{kind:b.kind,conversationId:"string"==typeof b.conversationId&&b.conversationId.startsWith("conversation_")?b.conversationId:null,role:a2(b.role),depth:Number.isInteger(b.depth)&&b.depth>=0?b.depth:0},requestedRole:a2(a.requestedRole),childDepth:Number.isInteger(a.childDepth)&&a.childDepth>=0?a.childDepth:0,maxDepth:Number.isInteger(a.maxDepth)&&a.maxDepth>=1?a.maxDepth:1,guidance:"string"==typeof a.guidance?a.guidance:"",rejectedAt:"string"==typeof a.rejectedAt?a.rejectedAt:aj()}:null}(a.rejection),launchProfile:(0,r.Ui)({...a.launchProfile??{},cwd:a.launchProfile?.cwd??a.cwd},b),explicitProject:(0,r.QK)(a.explicitProject),launchDisplay:a1(a.launchDisplay),queuedPinnedSpawn:a$(a.queuedPinnedSpawn,b),...a.retryClaim&&"string"==typeof a.retryClaim.claimId&&"string"==typeof a.retryClaim.claimedAt?{retryClaim:{claimId:a.retryClaim.claimId,claimedAt:a.retryClaim.claimedAt}}:{}}}function a1(a){if(!a||"object"!=typeof a||"string"!=typeof a.prompt)return null;let b=Number.isInteger(a.images)&&a.images>=0?a.images:0,c="string"==typeof a.echo?a.echo:a.prompt;return a.prompt.trim()||c.trim()||0!==b?{prompt:a.prompt,images:b,echo:c}:null}function a2(a){return"string"==typeof a&&a.trim()?a.trim():null}function a3(a){return Number.isInteger(a)&&a>=0?a:null}function a4(a,b){var c;if(1===a.version&&a.entries&&a.receipts&&"object"==typeof a.entries&&"object"==typeof a.receipts){let c;return(0,u.g8)((c=a.legacyResumePanes,{...ai(ag),autoBalance:{claude:af(ae),codex:af(ae)},entries:a.entries??{},receipts:Object.fromEntries(Object.entries(a.receipts??{}).map(([a,c])=>[a,a0(c,b)])),conversationAliases:{},importedResumePanes:!0===a.importedResumePanes,legacyResumePanes:c&&"object"==typeof c&&"panes"in c?{serverPid:"number"==typeof c.serverPid?c.serverPid:null,panes:c.panes??{}}:{serverPid:null,panes:{}}}),b)}if(2!==a.version||!a.entries||!a.receipts||"object"!=typeof a.entries||"object"!=typeof a.receipts)throw new ah("agent registry schema is unsupported");let d=a.legacyResumePanes,e=a.heldDeliveries&&"object"==typeof a.heldDeliveries?Object.fromEntries(Object.entries(a.heldDeliveries).map(([a,b])=>[a,au(b)])):{};return(0,u.g8)(function(a){for(let b of Object.values(a.receipts)){if("structured"!==b.transport||"completed"!==b.state||"pending"!==b.artifactLifecycle||!b.artifactPath)continue;let c=a.conversations[aP(a,b.conversationId)],d=c?.generations.find(a=>a.path===b.artifactPath),e="observed-completed"===b.completionMode||"route-recovered"===b.completionMode,f="launch"===b.purpose&&c?.generations.length===1&&0===c.continuityPaths.length&&null===c.migration&&null!==c.turn.observedAt&&void 0!==d;c?.engine===b.engine&&d&&(e||f)&&(b.artifactLifecycle="materialized")}return a}({version:2,entries:Object.fromEntries(Object.entries(a.entries).map(([a,c])=>[a,{...c,...c.launchProfile?{launchProfile:(0,r.Ui)(c.launchProfile,b)}:{},host:c.host&&"object"==typeof c.host&&"tmux"===c.host.kind?c.host:null,structuredHost:ao(c.structuredHost)}])),receipts:Object.fromEntries(Object.entries(a.receipts).map(([a,c])=>[a,a0(c,b)])),lineageEdges:a.lineageEdges&&"object"==typeof a.lineageEdges?Object.fromEntries(Object.entries(a.lineageEdges).map(([a,b])=>{let c,d;return[a,(c="string"==typeof b.reviewsConversationId&&b.reviewsConversationId.startsWith("conversation_")?b.reviewsConversationId:null,d="string"==typeof b.role&&b.role.trim()?b.role.trim():null,{...b,kind:"review"===b.kind||c||"reviewer"===d?"review":"spawn",role:d,reviewsConversationId:c})]})):{},memberships:function(a){if(!a||"object"!=typeof a||Array.isArray(a))return{};let b={};for(let[c,d]of Object.entries(a)){if(!c.startsWith("conversation_")||!Array.isArray(d))continue;let a=d.flatMap(a=>{if(!a||"object"!=typeof a||Array.isArray(a)||"flow"!==a.kind&&"pipeline"!==a.kind&&"orchestrator"!==a.kind||"string"!=typeof a.containerId||!a.containerId||"string"!=typeof a.role||!a.role||"string"!=typeof a.slot||!a.slot)return[];let b=a.runtime&&"object"==typeof a.runtime&&("claude"===a.runtime.engine||"codex"===a.runtime.engine)?{engine:a.runtime.engine,model:"string"==typeof a.runtime.model?a.runtime.model:null,effort:"string"==typeof a.runtime.effort?a.runtime.effort:null}:null;return[{conversationId:c,kind:a.kind,containerId:a.containerId,role:a.role,slot:a.slot,stageId:"string"==typeof a.stageId?a.stageId:null,stageOrder:Number.isInteger(a.stageOrder)?a.stageOrder:null,round:Number.isInteger(a.round)?a.round:null,parentConversationId:"string"==typeof a.parentConversationId&&a.parentConversationId.startsWith("conversation_")?a.parentConversationId:null,runtime:b,createdAt:"string"==typeof a.createdAt?a.createdAt:aj()}]});a.length&&(b[c]=a)}return b}(a.memberships),identityMigrations:!(c=a.identityMigrations)||"object"!=typeof c||Array.isArray(c)?{}:Object.fromEntries(Object.entries(c).flatMap(([a,b])=>{if(!b||"object"!=typeof b||Array.isArray(b))return[];let c=b.quarantinedRekeys??0;return"string"!=typeof b.completedAt||!Number.isSafeInteger(b.retitled)||b.retitled<0||!Number.isSafeInteger(b.rekeyed)||b.rekeyed<0||!Number.isSafeInteger(c)||c<0||!Number.isSafeInteger(b.edgesStamped)||b.edgesStamped<0?[]:[[a,{completedAt:b.completedAt,retitled:b.retitled,rekeyed:b.rekeyed,quarantinedRekeys:c,edgesStamped:b.edgesStamped}]]})),importedResumePanes:!0===a.importedResumePanes,legacyResumePanes:d&&"object"==typeof d&&"panes"in d?{serverPid:"number"==typeof d.serverPid?d.serverPid:null,panes:d.panes??{}}:{serverPid:null,panes:{}},conversations:a.conversations&&"object"==typeof a.conversations?Object.fromEntries(Object.entries(a.conversations).map(([a,c])=>{var d;let e,f,g,h,i,j,k,l,m,n,o,p,q,s;return[a,(f=(e=Array.isArray(c.generations)?c.generations.map(a=>({...a,launchProfile:(0,r.Ui)(a.launchProfile??{},b),historyHash:"string"==typeof a.historyHash?a.historyHash:null,host:a.host&&"object"==typeof a.host?a.host:null})):[]).at(-1),g=c.migration?.continuityPaths,h=(d=c.migration?.providerReceipt)&&"object"==typeof d?{...d,continuityPaths:Array.isArray(d.continuityPaths)?d.continuityPaths.filter(a=>"string"==typeof a):[]}:null,i=c.migration?.successorLaunchProfile&&"object"==typeof c.migration.successorLaunchProfile&&!Array.isArray(c.migration.successorLaunchProfile)?(0,r.Ui)(c.migration.successorLaunchProfile,b):null,j=Array.isArray(c.migration?.pendingContinuityPaths)?c.migration.pendingContinuityPaths.filter(a=>"string"==typeof a):c.migration?.phase!=="committed"&&h?[...new Set([...h.continuityPaths,h.path])]:[],k=c.migration&&"object"==typeof c.migration?{...c.migration,errorCode:c.migration.errorCode??null,operationId:c.migration.operationId??`${c.migration.intentId}:${c.id}:${c.migration.revision}`,sourceGenerationId:c.migration.sourceGenerationId??f?.id??"",successorLaunchProfile:i,providerReceipt:h,pendingContinuityPaths:j,boardProject:"string"==typeof c.migration.boardProject?c.migration.boardProject:null,boardOperationId:"string"==typeof c.migration.boardOperationId?c.migration.boardOperationId:null,boardPlacementProject:"string"==typeof c.migration.boardPlacementProject?c.migration.boardPlacementProject:null}:null,l=[...new Set([...Array.isArray(c.continuityPaths)?c.continuityPaths.filter(a=>"string"==typeof a):[],...Array.isArray(g)?g.filter(a=>"string"==typeof a):[],...k?.providerReceipt?.continuityPaths??[]])],m=Array.isArray(c.abandonedContinuityPaths)?[...new Set(c.abandonedContinuityPaths.filter(a=>"string"==typeof a))]:[],n=Array.isArray(c.providerForkPaths)?[...new Set(c.providerForkPaths.filter(a=>"string"==typeof a))].filter(a=>l.includes(a)):[],p=(o=c.migrationOptOut)&&"string"==typeof o.targetId&&"string"==typeof o.updatedAt?{targetId:o.targetId,updatedAt:o.updatedAt}:null,s=(q=c.supersededBy)&&"string"==typeof q.conversationId&&q.conversationId.startsWith("conversation_")&&"string"==typeof q.at?{conversationId:q.conversationId,at:q.at,reason:"stage-retry"===q.reason||"manual"===q.reason?q.reason:"recovery-spawn"}:null,{...c,generations:e,continuityPaths:l,abandonedContinuityPaths:m,providerForkPaths:n,projectOwnership:(0,r.MO)(c.projectOwnership),pinnedAccountId:"string"==typeof c.pinnedAccountId?c.pinnedAccountId:null,reconfigure:function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=a=>!a||"object"!=typeof a||Array.isArray(a)||null!==a.model&&"string"!=typeof a.model||null!==a.effort&&"string"!=typeof a.effort||null!==a.fast&&"boolean"!=typeof a.fast?null:{model:a.model??null,effort:a.effort??null,fast:a.fast??null},c=b(a.profile),d=b(a.previousProfile);return c&&d&&"string"==typeof a.operationId&&a.operationId&&Number.isSafeInteger(a.revision)&&!(a.revision<0)&&("applying"===a.status||"applied"===a.status||"failed"===a.status)?{operationId:a.operationId,revision:a.revision,status:a.status,profile:c,previousProfile:d,accountId:"string"==typeof a.accountId?a.accountId:null,error:"string"==typeof a.error?a.error:null}:null}(c.reconfigure),migration:k,migrationOptOut:p,supersededBy:s,agentRole:a2(c.agentRole),delegationDepth:a3(c.delegationDepth),turn:c.turn&&"object"==typeof c.turn?{state:c.turn.state,source:c.turn.source,terminalAt:c.turn.terminalAt??null,observedAt:c.turn.observedAt??null}:{state:"unknown",source:"empty",terminalAt:null,observedAt:null}})]})):{},conversationAliases:a.conversationAliases&&"object"==typeof a.conversationAliases?Object.fromEntries(Object.entries(a.conversationAliases).filter(([a,b])=>a.startsWith("conversation_")&&"string"==typeof b&&b.startsWith("conversation_"))):{},conversationRevision:a.conversationRevision&&"object"==typeof a.conversationRevision?{...ag.conversationRevision,...a.conversationRevision}:ai(ag.conversationRevision),migrationIntents:a.migrationIntents&&"object"==typeof a.migrationIntents?a.migrationIntents:{},engineRouting:a.engineRouting&&"object"==typeof a.engineRouting?{...ag.engineRouting,...a.engineRouting}:ai(ag.engineRouting),autoBalance:a.autoBalance&&"object"==typeof a.autoBalance?{claude:ap(a.autoBalance.claude),codex:ap(a.autoBalance.codex)}:{claude:af(ae),codex:af(ae)},quotaObservations:a.quotaObservations&&"object"==typeof a.quotaObservations?{...ag.quotaObservations,...a.quotaObservations}:ai(ag.quotaObservations),heldDeliveries:e,deliveryOperationOwners:function(a,b){let c={};if(a&&"object"==typeof a&&!Array.isArray(a))for(let[e,f]of Object.entries(a)){var d;if(!e||!f||"object"!=typeof f||Array.isArray(f)||"string"!=typeof f.conversationId||!f.conversationId.startsWith("conversation_")||null!==f.clientMessageId&&"string"!=typeof f.clientMessageId||"string"!=typeof f.deliveryId||!f.deliveryId||"string"!=typeof f.requestDigest||!f.requestDigest)continue;let a=f.settledDelivery&&"object"==typeof f.settledDelivery?au(f.settledDelivery):null,g=a?.id===f.deliveryId&&a.command.operationId===e&&a.requestDigest===f.requestDigest&&null!==av(a)?a:null,h=b[f.deliveryId],i=h?.command.operationId===e&&h.requestDigest===f.requestDigest?h:null,j=i?av(i):"delivered"===f.terminalState||"failed"===f.terminalState?f.terminalState:av(g);c[e]={conversationId:f.conversationId,runtimeConversationId:"string"==typeof f.runtimeConversationId&&f.runtimeConversationId.startsWith("conversation_")?f.runtimeConversationId:b[f.deliveryId]?.runtimeConversationId??f.conversationId,clientMessageId:f.clientMessageId,deliveryId:f.deliveryId,command:{...ar(f.command,e),operationId:e},requestDigest:f.requestDigest,contentDigest:"string"==typeof f.contentDigest?f.contentDigest:i?.contentDigest??g?.contentDigest??null,createdAt:"string"==typeof f.createdAt?f.createdAt:i?.createdAt??g?.createdAt??ae,retryOfOperationId:"string"==typeof f.retryOfOperationId&&f.retryOfOperationId?f.retryOfOperationId:null,terminalState:j,terminalDisposition:"delivered"===j?"delivered":"delivered"===(d=f.terminalDisposition)||"lost"===d||"unverified"===d?d:null,terminalReason:"string"==typeof f.terminalReason?f.terminalReason:i?.error??g?.error??null,settledAt:"string"==typeof f.settledAt?f.settledAt:i?.deliveredAt??g?.deliveredAt??null}}for(let a of Object.values(b))a.requestDigest&&(c[a.command.operationId]??={conversationId:a.conversationId,runtimeConversationId:a.runtimeConversationId,clientMessageId:a.clientMessageId,deliveryId:a.id,command:a.command,requestDigest:a.requestDigest,contentDigest:a.contentDigest,createdAt:a.createdAt,retryOfOperationId:null,terminalState:av(a),terminalDisposition:"delivered"===av(a)?"delivered":null,terminalReason:a.error,settledAt:a.deliveredAt});return c}(a.deliveryOperationOwners,e),pendingSuccessorCleanups:a.pendingSuccessorCleanups&&"object"==typeof a.pendingSuccessorCleanups?a.pendingSuccessorCleanups:{},pendingSupersedence:function(a){if(!a||"object"!=typeof a)return{};let b={};for(let[c,d]of Object.entries(a))d&&"string"==typeof d.predecessorConversationId&&d.predecessorConversationId.startsWith("conversation_")&&"string"==typeof d.successorConversationId&&d.successorConversationId.startsWith("conversation_")&&"string"==typeof d.stagedAt&&(b[c]={predecessorConversationId:d.predecessorConversationId,successorConversationId:d.successorConversationId,reason:"stage-retry"===d.reason||"manual"===d.reason?d.reason:"recovery-spawn",stagedAt:d.stagedAt});return b}(a.pendingSupersedence)}),b)}function a5(a){let b=a&&"object"==typeof a?a._sqliteRevision:void 0;return Number.isSafeInteger(b)&&Number(b)>=0?Number(b):null}function a6(a,b){try{let c=g().readFileSync(a,"utf8"),d=JSON.parse(c);return{file:(0,u.$q)(a4(d,b),b),payload:c,sqliteRevision:a5(d)}}catch(a){if("ENOENT"===a.code)return{file:ai(ag),payload:null,sqliteRevision:null};if(a instanceof ah)throw a;throw new ah(`agent registry cannot be read: ${a instanceof Error?a.message:String(a)}`)}}function a7(a,b){return a6(a,b).file}function a8(a){try{let b=g().statSync(a,{bigint:!0});return`${b.dev}:${b.ino}:${b.size}:${b.mtimeNs}:${b.ctimeNs}`}catch(a){if("ENOENT"===a.code)return"missing";throw new ah(`agent registry cannot be stated: ${a instanceof Error?a.message:String(a)}`)}}function a9(a){let b={...a};for(let a of Object.keys(b))null===b[a]&&delete b[a];return""===b.cwd&&delete b.cwd,"worker"===b.role&&delete b.role,!1===b.allowSubagents&&delete b.allowSubagents,b.mcpServers?.length===1&&"viewer"===b.mcpServers[0]&&delete b.mcpServers,b.plugins?.length===0&&delete b.plugins,b}function ba(a,b){return JSON.stringify({...a,...void 0===b?{}:{_sqliteRevision:b},entries:Object.fromEntries(Object.entries(a.entries).map(([a,b])=>[a,{...b,...b.launchProfile?{launchProfile:a9(b.launchProfile)}:{}}])),receipts:Object.fromEntries(Object.entries(a.receipts).map(([a,b])=>[a,{...b,launchProfile:a9(b.launchProfile)}])),conversations:Object.fromEntries(Object.entries(a.conversations).map(([a,b])=>[a,{...b,generations:b.generations.map(a=>({...a,launchProfile:a9(a.launchProfile)}))}]))})+"\n"}function bb(a,b,c){g().mkdirSync(i().dirname(a),{recursive:!0,mode:448});let d=`${a}.${process.pid}.${e().randomUUID()}.tmp`,f=null;try{f=g().openSync(d,"w",384),g().writeFileSync(f,b,"utf8"),g().fsyncSync(f),g().closeSync(f),f=null,c?.beforeRename?.(),g().renameSync(d,a),c?.afterRename?.();let e=g().openSync(i().dirname(a),"r");try{g().fsyncSync(e)}finally{g().closeSync(e)}}finally{null!==f&&g().closeSync(f);try{g().unlinkSync(d)}catch{}}}function bc(a,b,c,d){bb(a,ba(b,c),d)}class bd extends Error{constructor(...a){super(...a),this.name="RegistryParityError"}}function be(a){try{return a5(JSON.parse(g().readFileSync(a,"utf8")))}catch(a){if("ENOENT"===a.code)return null;throw a}}class bf{constructor(a=(0,k.BQ)("agent-registry.json"),b=l.$k,c=R,d={}){this.filename=a,this.ownerAlive=b,this.lockTiming=c,this.readOnlyCache=null,this.mirrorRevisionCache=null,this.mirrorCheckpointPending=!1,this.mirrorCheckpointFailures=0,this.lastMirrorAt=null,this.lastMirroredRevision=null,this.mirrorDirty=!1,this.writerWaits=[],this.transactionDurations=[],this.transactionCount=0,this.transactionRateBuckets=new Map;const e=void 0!==d.sqliteMode?{mode:d.sqliteMode,sqliteFilename:null,source:"explicit"}:!0===d.resolveBackendIdentity?(0,y.Ej)(a):{mode:(0,y.KL)(),sqliteFilename:null,source:"unmanaged"};this.sqliteMode=e.mode;const f=d.sqliteFilename??e.sqliteFilename??(0,y.EB)(a);if(this.mcpGrantPolicy=d.mcpGrantPolicy,this.mirrorCheckpointMs=Math.max(0,d.mirrorCheckpointMs??5e3),this.now=d.now??Date.now,this.scheduleMirrorCheckpoint=d.scheduleMirrorCheckpoint??((a,b)=>setTimeout(a,b)),this.afterMirrorWrite=d.afterMirrorWrite,this.mirrorWriteHooks={beforeRename:d.beforeMirrorRename,afterRename:d.afterMirrorRename},this.beforeDualWriteMutationReplace=d.beforeDualWriteMutationReplace,this.sqliteStore="off"===this.sqliteMode?null:new E(f,{initialSnapshot:a7(a,d.mcpGrantPolicy),normalize:a=>a4(a,d.mcpGrantPolicy),mcpGrantPolicy:d.mcpGrantPolicy,onWriterWait:a=>{this.recordMetric(this.writerWaits,a),d.onSqliteWriterWait?.(a)},onSnapshotLoad:d.onSqliteSnapshotLoad,onRowPayloadRead:d.onSqliteRowPayloadRead,onRowPayloadParse:d.onSqliteRowPayloadParse,onRevisionQuery:d.onSqliteRevisionQuery}),"off"===this.sqliteMode&&(this.cleanupStaleTempFiles(),this.compactAtStartup()),"dual-write"===this.sqliteMode&&(this.cleanupStaleTempFiles(),this.synchronizeDualWriteStartup(d.beforeDualWriteStartupReplace)),"read"===this.sqliteMode||"sqlite"===this.sqliteMode){this.cleanupStaleTempFiles();const a=this.sqliteStore.snapshot(),b=be(this.filename);if("read"===this.sqliteMode&&(null===b||b===a.revision)&&this.assertSqliteParity(a),null!==b&&b>a.revision)throw"sqlite"===this.sqliteMode&&this.fenceAheadMirror(b,a.revision),new bd(`agent registry JSON revision ${b} is ahead of SQLite revision ${a.revision}`);this.mirrorSqliteSnapshot(a)}"environment"===e.source&&(0,y.Dc)(a,this.sqliteMode,f)}assertSqliteParity(a=this.sqliteStore.snapshot(),b=a7(this.filename,this.mcpGrantPolicy)){if(!(0,j.isDeepStrictEqual)(a.file,b)){let c=[...new Set([...Object.keys(a.file),...Object.keys(b)])].filter(c=>!(0,j.isDeepStrictEqual)(a.file[c],b[c]));throw new bd(`agent registry JSON and SQLite snapshots differ: ${c.join(", ")}`)}}fenceAheadMirror(a,b){let c=`sqlite-conflict-r${a}-over-r${b}`,d=`${this.filename}.${c}`;try{g().renameSync(this.filename,d)}catch(a){if("ENOENT"===a.code)return;throw a}throw new bd(`agent registry JSON mirror revision ${a} is ahead of authoritative SQLite revision ${b}; conflicting mirror moved beside the registry as ${c} and the next startup will rebuild from SQLite`)}mirrorSqliteSnapshot(a){bc(this.filename,a.file,a.revision,this.mirrorWriteHooks),this.mirrorRevisionCache={signature:a8(this.filename),revision:a.revision},this.afterMirrorWrite?.();let b=this.sqliteStore.revision();this.lastMirrorAt=this.now(),this.lastMirroredRevision=a.revision,this.mirrorDirty=b>a.revision,this.mirrorDirty&&this.scheduleRollbackMirror()}recordMetric(a,b){a.push(b),a.length>512&&a.splice(0,a.length-512)}percentile(a){if(0===a.length)return null;let b=[...a].sort((a,b)=>a-b);return b[Math.min(b.length-1,Math.ceil(.95*b.length)-1)]}currentMirrorRevision(){if("off"===this.sqliteMode)return null;for(let a=0;a<2;a+=1){let a=a8(this.filename);if(this.mirrorRevisionCache?.signature===a)return this.mirrorRevisionCache.revision;let b=be(this.filename),c=a8(this.filename);if(a===c)return this.mirrorRevisionCache={signature:c,revision:b},b}return be(this.filename)}storageDiagnostics(){let a=this.sqliteStore?.revision()??null,b=this.currentMirrorRevision();null!==a&&null!==this.lastMirroredRevision&&a>this.lastMirroredRevision&&(this.mirrorDirty=!0);let c=Math.floor(this.now()/1e3);for(let a of this.transactionRateBuckets.keys())a<=c-60&&this.transactionRateBuckets.delete(a);let d=[...this.transactionRateBuckets.values()].reduce((a,b)=>a+b,0);return{backendMode:this.sqliteMode,revision:a,mirrorRevision:b,transactionCount:this.transactionCount,writerRatePerSecond:d/60,writerWaitP95Ms:this.percentile(this.writerWaits),transactionP95Ms:this.percentile(this.transactionDurations),mirrorCheckpointAtMs:this.lastMirrorAt,mirrorAgeMs:null===this.lastMirrorAt?null:Math.max(0,this.now()-this.lastMirrorAt),mirrorDirty:this.mirrorDirty}}checkpointRollbackMirror(){if(!this.sqliteStore||"dual-write"===this.sqliteMode)return;let a=this.sqliteStore.revision();(this.mirrorDirty||null===this.lastMirroredRevision||!(a<=this.lastMirroredRevision))&&(this.mirrorSqliteSnapshot(this.sqliteStore.snapshot()),this.mirrorCheckpointFailures=0)}checkpointRollbackMirrorForDemotion(a=2){if(this.sqliteStore&&"dual-write"!==this.sqliteMode){for(let b=0;b<a;b+=1)if(this.checkpointRollbackMirror(),!this.storageDiagnostics().mirrorDirty)return;throw Error(`agent registry rollback mirror did not converge after ${a} attempts`)}}scheduleRollbackMirror(a=this.mirrorCheckpointMs){this.mirrorCheckpointPending||(this.mirrorCheckpointPending=!0,this.scheduleMirrorCheckpoint(()=>{this.mirrorCheckpointPending=!1;try{this.checkpointRollbackMirror()}catch(b){console.error("agent registry rollback checkpoint failed",b),this.mirrorCheckpointFailures+=1;let a=Math.min(1e3*2**(this.mirrorCheckpointFailures-1),3e4);this.scheduleRollbackMirror(a)}},a).unref?.())}scheduleRollbackMirrorForCadence(){let a=null===this.lastMirrorAt?this.mirrorCheckpointMs:Math.max(0,this.now()-this.lastMirrorAt);this.scheduleRollbackMirror(Math.max(0,this.mirrorCheckpointMs-a))}cleanupStaleTempFiles(){let a,b=i().dirname(this.filename),c=`${i().basename(this.filename)}.`;try{a=g().readdirSync(b)}catch(a){if("ENOENT"===a.code)return;throw a}for(let d of a){if(!d.startsWith(c)||!d.endsWith(".tmp"))continue;let a=d.slice(c.length,-4).split("."),e=Number(a[0]);if(2===a.length&&Number.isInteger(e)&&!(e<=0)&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(a[1]??"")&&!this.ownerAlive({pid:e,startIdentity:null}))try{g().unlinkSync(i().join(b,d))}catch(a){if("ENOENT"!==a.code)throw a}}}compactAtStartup(){if(!g().existsSync(this.filename))return;let a=`${this.filename}.write-lock`,b=this.acquireLock(a,(0,l.y6)(process.pid));try{this.compactAtStartupLocked()}finally{this.releaseLock(b)}}compactAtStartupLocked(a){let b,c;try{b=g().readFileSync(this.filename,"utf8")}catch(a){if("ENOENT"===a.code)return;throw a}try{c=a7(this.filename,this.mcpGrantPolicy)}catch(a){if(a instanceof ah)return void console.error("agent registry startup compaction skipped:",a);throw a}aF(c,void 0,this.now()),ba(c,a)!==b&&bc(this.filename,c,a)}synchronizeDualWriteStartup(a){let b=`${this.filename}.write-lock`,c=this.acquireLock(b,(0,l.y6)(process.pid));try{let b=this.sqliteStore.snapshot();g().existsSync(this.filename)||bc(this.filename,b.file,b.revision);let c=be(this.filename);if(null!==c&&c!==b.revision)throw new bd(`agent registry backend revisions differ: JSON ${c}, SQLite ${b.revision}`);this.assertSqliteParity(b),this.compactAtStartupLocked(b.revision);let d=a7(this.filename,this.mcpGrantPolicy);a?.();let e=this.sqliteStore.replace(d,b.revision);if(!e.replaced)throw this.mirrorSqliteSnapshot(e),new bd(`agent registry SQLite revision changed during dual-write startup: expected ${b.revision}, current ${e.revision}`);bc(this.filename,e.file,e.revision),this.assertSqliteParity()}finally{this.releaseLock(c)}}sameLock(a,b){try{let c=g().statSync(a);return c.dev===b.dev&&c.ino===b.ino}catch(a){if("ENOENT"===a.code)return!1;throw a}}lockOwnerFile(a){return g().statSync(a).isDirectory()?i().join(a,"owner.json"):a}lockToken(a){try{let b=JSON.parse(g().readFileSync(this.lockOwnerFile(a),"utf8"));return"string"==typeof b.token?b.token:null}catch{return null}}finishRetirement(a,b){try{g().renameSync(a,b)}catch(c){let b=c.code;if("ENOENT"===b)return;if("EEXIST"===b||"ENOTEMPTY"===b)return void g().rmSync(a,{recursive:!0,force:!0});throw c}}restoreRecovery(a,b){for(;;)try{g().renameSync(b,a);return}catch(b){let a=b.code;if("ENOENT"===a)return;if("EEXIST"!==a&&"ENOTEMPTY"!==a)throw b;Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,5)}}resolveInterruptedRelease(a){let b,c=`${a}.releasing`;if(!g().existsSync(c))return;let d=null;try{b=g().statSync(c),d=JSON.parse(g().readFileSync(this.lockOwnerFile(c),"utf8"))}catch(a){a.code;return}Number.isInteger(d.pid)&&d.pid>0&&this.ownerAlive(d)||(!Number.isInteger(d.pid)||d.pid<=0)&&this.lockTiming.now()-b.mtimeMs<1e3||g().rmSync(c,{recursive:!0,force:!0})}retireObservedLock(a,b,c,d){let e=`${a}.recovering`;if(!b.isDirectory){try{g().linkSync(a,e)}catch(b){let a=b.code;if("ENOENT"===a||"EEXIST"===a)return;throw b}return this.sameLock(e,b)&&this.lockToken(e)===c&&this.sameLock(a,b)&&this.lockToken(a)===c?(g().rmSync(a,{force:!0}),void this.finishRetirement(e,`${a}.retired-${d}`)):void g().rmSync(e,{force:!0})}try{g().renameSync(a,e)}catch(b){let a=b.code;if("ENOENT"===a||"EEXIST"===a||"ENOTEMPTY"===a)return;throw b}this.sameLock(e,b)&&this.lockToken(e)===c?this.finishRetirement(e,`${a}.retired-${d}`):this.restoreRecovery(a,e)}resolveInterruptedRecovery(a){let b,c=`${a}.recovering`;if(!g().existsSync(c))return;if(g().existsSync(a)){let b,c=null;try{b=g().statSync(a)}catch(a){if("ENOENT"===a.code)return;throw a}try{c=JSON.parse(g().readFileSync(this.lockOwnerFile(a),"utf8"))}catch{return}if(c&&Number.isInteger(c.pid)&&c.pid>0&&this.ownerAlive(c))return;let d="string"==typeof c?.token?c.token:null,e=d&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(d)?d:`abandoned-${b.dev}-${b.ino}-${b.ctimeMs}`;this.sameLock(a,{dev:b.dev,ino:b.ino})&&this.lockToken(a)===d&&this.finishRetirement(a,`${a}.retired-${e}`)}let d=null;try{b=g().statSync(c),d=JSON.parse(g().readFileSync(this.lockOwnerFile(c),"utf8"))}catch(b){if("ENOENT"===b.code)return;this.finishRetirement(c,`${a}.retired-interrupted-invalid`);return}if(Number.isInteger(d.pid)&&d.pid>0&&this.ownerAlive(d)){if(g().existsSync(a))return;this.restoreRecovery(a,c);return}let e="string"==typeof d.token?d.token:null,f=e&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)?e:`interrupted-${b.dev}-${b.ino}-${b.ctimeMs}`;this.finishRetirement(c,`${a}.retired-${f}`)}recoverContendedLock(a){let b;try{b=g().statSync(a)}catch(a){if("ENOENT"===a.code)return;throw a}let c=null;try{c=JSON.parse(g().readFileSync(this.lockOwnerFile(a),"utf8"))}catch{}if(c&&Number.isInteger(c.pid)&&c.pid>0){if(!this.ownerAlive(c)){let d="string"==typeof c.token&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(c.token)?c.token:`legacy-${b.dev}-${b.ino}-${b.ctimeMs}`;this.retireObservedLock(a,{dev:b.dev,ino:b.ino,isDirectory:b.isDirectory()},"string"==typeof c.token?c.token:null,d)}return}}tryAcquireLock(a,b){if(this.resolveInterruptedRelease(a),g().existsSync(`${a}.releasing`)||(this.resolveInterruptedRecovery(a),g().existsSync(`${a}.recovering`)))return null;let c=e().randomUUID(),d=`${a}.owner.pending-${c}`,f=null,h=null,j=!1;try{g().mkdirSync(d,448),f=g().openSync(i().join(d,"owner.json"),"wx",384),g().writeFileSync(f,JSON.stringify({...b,token:c}),"utf8"),g().fsyncSync(f),g().closeSync(f),f=null;let e=g().openSync(d,"r");try{g().fsyncSync(e);let a=g().fstatSync(e);h={dev:a.dev,ino:a.ino}}finally{g().closeSync(e)}try{g().symlinkSync(i().basename(d),a,"dir")}catch(c){let b=c.code;if("EEXIST"!==b)throw c;return g().rmSync(d,{recursive:!0,force:!0}),this.recoverContendedLock(a),null}j=!0;let k={lock:a,token:c,identity:h,storage:d};if(!this.sameLock(a,k.identity)||this.lockToken(a)!==c)return null;if(g().existsSync(`${a}.recovering`)||g().existsSync(`${a}.releasing`))return this.releaseLock(k),null;return k}catch(b){throw null!==f&&g().closeSync(f),h&&(j?this.releaseLock({lock:a,token:c,identity:h,storage:d}):this.retireObservedLock(a,{...h,isDirectory:!0},null,`failed-${c}`)),j||g().rmSync(d,{recursive:!0,force:!0}),b}}retireClaim(a,b){let c,d=`${b.lock}.releasing`;if(this.resolveInterruptedRelease(b.lock),g().existsSync(d))return!1;try{c=g().statSync(a).isDirectory()}catch(a){if("ENOENT"===a.code)return!1;throw a}if(c){try{g().renameSync(a,d)}catch(b){let a=b.code;if("ENOENT"===a||"EEXIST"===a||"ENOTEMPTY"===a)return!1;throw b}return this.sameLock(d,b.identity)&&this.lockToken(d)===b.token?(g().rmSync(d,{recursive:!0,force:!0}),g().rmSync(b.storage,{recursive:!0,force:!0}),!0):(this.restoreRecovery(a,d),!1)}try{g().linkSync(a,d)}catch(b){let a=b.code;if("ENOENT"===a||"EEXIST"===a)return!1;throw b}return this.sameLock(d,b.identity)&&this.lockToken(d)===b.token?(this.sameLock(a,b.identity)&&this.lockToken(a)===b.token&&g().rmSync(a,{force:!0}),g().rmSync(d,{force:!0}),g().rmSync(b.storage,{recursive:!0,force:!0}),!0):(g().rmSync(d,{force:!0}),!1)}releaseLock(a){for(let b of[a.lock,`${a.lock}.recovering`,a.lock])if(this.sameLock(b,a.identity)&&this.lockToken(b)===a.token&&this.retireClaim(b,a))return}lockBackoff(a,b){return Math.min(Math.min(5*2**Math.floor(a/20),50),b)}acquireLock(a,b){g().mkdirSync(i().dirname(a),{recursive:!0,mode:448});for(let c=0;;c+=1){let d=this.tryAcquireLock(a,b);if(d)return d;Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,this.lockBackoff(c,50))}}async acquireLockAsync(a,b){g().mkdirSync(i().dirname(a),{recursive:!0,mode:448});for(let c=0;;c+=1){let d=this.tryAcquireLock(a,b);if(d)return d;await this.lockTiming.wait(this.lockBackoff(c,50))}}mutate(a){let b=performance.now(),c=this.mutateStorage(a);this.transactionCount+=1,this.recordMetric(this.transactionDurations,performance.now()-b);let d=Math.floor(this.now()/1e3);for(let a of(this.transactionRateBuckets.set(d,(this.transactionRateBuckets.get(d)??0)+1),this.transactionRateBuckets.keys()))a<=d-60&&this.transactionRateBuckets.delete(a);return c}mutateStorage(a){let b=b=>{let c=a(b);for(let[a,c]of Object.entries(b.pendingSupersedence)){let d=aP(b,c.predecessorConversationId),e=aP(b,c.successorConversationId);if(!b.conversations[d]||!b.conversations[e]){delete b.pendingSupersedence[a];continue}try{aS(b,d,e,c.reason),delete b.pendingSupersedence[a]}catch(c){if(c instanceof K)continue;delete b.pendingSupersedence[a]}}return c};if("read"===this.sqliteMode||"sqlite"===this.sqliteMode){let a=this.sqliteStore.mutate(b,!1);return"read"===this.sqliteMode&&(this.mirrorDirty=null===this.lastMirroredRevision||a.revision>this.lastMirroredRevision,this.mirrorDirty&&this.scheduleRollbackMirrorForCadence()),"sqlite"===this.sqliteMode&&(this.mirrorDirty=null===this.lastMirroredRevision||a.revision>this.lastMirroredRevision),a.result}let c=`${this.filename}.write-lock`,d=this.acquireLock(c,(0,l.y6)(process.pid));try{let a="dual-write"===this.sqliteMode?this.sqliteStore.snapshot():null,c=a6(this.filename,this.mcpGrantPolicy);if(a){let b=c.sqliteRevision;if(null!==b&&b!==a.revision)throw new bd(`agent registry backend revisions differ: JSON ${b}, SQLite ${a.revision}`);this.assertSqliteParity(a,c.file)}let d=a&&c.sqliteRevision!==a.revision?ai(c.file):null,e=c.file,f=b(e),g=ba(e,a?.revision),h=c.payload!==g;if(h){let b=a?ba(e,a.revision+1):g;bb(this.filename,b)}if(a&&!h&&this.assertSqliteParity(),a&&h){let b;try{this.beforeDualWriteMutationReplace?.(),b=this.sqliteStore.replace(e,a.revision)}catch(e){let b=this.sqliteStore.snapshot();throw b.revision===a.revision?d?bc(this.filename,d,a.revision):bb(this.filename,c.payload):this.mirrorSqliteSnapshot(b),e}if(!b.replaced)throw this.mirrorSqliteSnapshot(b),new bd(`agent registry SQLite revision changed during dual-write mutation: expected ${a.revision}, current ${b.revision}`);this.assertSqliteParity()}return f}finally{this.releaseLock(d)}}snapshot(){return"read"===this.sqliteMode||"sqlite"===this.sqliteMode?this.sqliteStore.snapshot().file:a7(this.filename,this.mcpGrantPolicy)}readOnlySnapshot(){if("read"===this.sqliteMode||"sqlite"===this.sqliteMode)return this.sqliteStore.readOnlySnapshot().file;for(let a=0;a<2;a+=1){let a=a8(this.filename);if(this.readOnlyCache?.signature===a)return this.readOnlyCache.snapshot;let b=a7(this.filename,this.mcpGrantPolicy),c=a8(this.filename);if(a===c)return this.readOnlyCache={signature:c,snapshot:b},b}return a7(this.filename,this.mcpGrantPolicy)}snapshotSpawns(a){return this.sqliteStore?this.sqliteStore.snapshotSpawns(a):function(a,b){let c={},d=z(a);for(let e of new Set(b)){let b=a.receipts[e];if(!b)continue;let f=new Set,g=b.conversationId;for(let b=0;b<64&&g&&!f.has(g);b+=1){f.add(g);let c=a.conversationAliases[g];if(!c)break;g=b+1===64?null:c}c[e]={launchId:b.launchId,state:b.state,error:b.error,engine:b.engine,cwd:b.cwd,createdAt:b.createdAt,materializedPath:d.allowsReceipt(b)?(g?d.pathForConversation(g):null)??b.artifactPath:null}}return c}(this.readOnlySnapshot(),a)}pageSeatChildren(a,b,c,d){return"sqlite"!==this.sqliteMode&&"read"!==this.sqliteMode?null:this.sqliteStore?.pageSeatChildren(a,b,c,d)??null}seatTickConversation(a){if(this.sqliteStore&&("sqlite"===this.sqliteMode||"read"===this.sqliteMode))return this.sqliteStore.seatTickConversation(a);let b=this.conversation(a);return b?{id:b.id,turn:b.turn}:null}snapshotTitleConversations(a){return this.sqliteStore?.snapshotTitleConversations(a)??[]}spawnReceiptForClientAttempt(a){let b=Object.values(this.readOnlySnapshot().receipts).find(b=>b.clientAttemptId===a);return b?ai(b):null}conversationIdForSpawnCapabilityDigest(a){if(!/^[0-9a-f]{64}$/.test(a))return null;let b=this.readOnlySnapshot(),c=Object.values(b.receipts).find(b=>b.spawnCapabilityDigest===a);return c?aP(b,c.conversationId):null}rotateSpawnCapabilityForReceipt(a){let b=e().randomBytes(32).toString("base64url"),c=e().createHash("sha256").update(b).digest("hex");return this.mutate(d=>{let e=d.receipts[a];if(!e)throw Error("spawn receipt is missing");let f=aP(d,e.conversationId);for(let a of Object.values(d.receipts))aP(d,a.conversationId)===f&&(a.spawnCapabilityDigest=null);return e.spawnCapabilityDigest=c,b})}rotateSpawnCapabilityForPath(a){let b=e().randomBytes(32).toString("base64url"),c=e().createHash("sha256").update(b).digest("hex");return this.mutate(d=>{let e=Object.values(d.conversations).find(b=>aG(b,a));if(!e)return null;let f=Object.values(d.receipts).filter(a=>aP(d,a.conversationId)===e.id).sort((a,b)=>b.createdAt.localeCompare(a.createdAt)),g=f[0];if(!g)return null;for(let a of f)a.spawnCapabilityDigest=null;return g.spawnCapabilityDigest=c,b})}beginSpawnRequest(a){return(0,n.oV)(()=>{if(("claude"===a.engine||"codex"===a.engine)&&a.accountId&&"default"!==a.accountId){let b=(0,k.BQ)(`${a.engine}-accounts.json`);try{let c=JSON.parse(g().readFileSync(b,"utf8"));if(c.retired?.some(b=>b.id===a.accountId))throw Error(`${a.engine} account is retired`)}catch(a){if("ENOENT"!==a.code)throw a}}let b=this.mutate(b=>this.beginSpawnRequestInFile(b,a));if("rejected"===b.kind||"replay"===b.kind&&b.receipt.rejection)throw new w.Jc(b.receipt,b.receipt.rejection);return b})}beginSpawnRequestInFile(a,b){{let c=b.conversationId?aP(a,b.conversationId):null,d=b.parentConversationId?aP(a,b.parentConversationId):null,f=b.reviewsConversationId?aP(a,b.reviewsConversationId):null,h="string"==typeof b.role&&b.role.trim()?b.role.trim():null;if("reviewer"===h&&!f&&b.origin?.kind!=="container")throw Error("reviewer spawn requires reviewsConversationId");if(f&&"reviewer"!==h)throw Error("reviewsConversationId requires reviewer role");let i=null==b.explicitProject?null:(0,r.QK)(b.explicitProject);if(null!=b.explicitProject&&!i)throw Error("explicit project is not a valid project key");let j=b.supersedes?aP(a,b.supersedes):null;if(j){if(!a.conversations[j])throw Error("supersedence predecessor is unknown");if(c===j)throw Error("a conversation cannot supersede itself")}let n=c?a.conversations[c]:null,o=b.launchProfile?.title,p=(0,r.Ui)({cwd:b.cwd,...b.launchProfile??{},title:(0,m.St)(o),...i?{project:i}:{},parentConversationId:d}),q=n?.generations.at(-1)?.launchProfile,s="resume-successor"===b.purpose&&q?{cwd:p.cwd||q.cwd,model:p.model??q.model,effort:p.effort??q.effort,fast:p.fast??q.fast,permissionMode:p.permissionMode??q.permissionMode,readOnly:p.readOnly??q.readOnly,sandbox:p.sandbox??q.sandbox??null,allowSubagents:q.allowSubagents||p.allowSubagents,mcpServers:q.mcpServers,plugins:q.plugins??[],title:(0,m.St)(q.title)??(0,m.St)(p.title),project:p.project??q.project,parentConversationId:p.parentConversationId??q.parentConversationId,role:"root"===q.role||"root"===p.role?"root":"worker",goal:p.goal??q.goal,plan:p.plan??q.plan}:p;if((0,w.n4)(n?.agentRole)&&(s.allowSubagents=!1),(n?.agentRole||d)&&(s.plugins=[]),n&&n.engine!==b.engine)throw Error("spawn conversation ownership is invalid");if("resume-successor"===b.purpose&&n&&!P(n.migration))throw Error("conversation migration prevents resume succession");if(b.clientAttemptId){let c=Object.values(a.receipts).find(a=>a.clientAttemptId===b.clientAttemptId);if(c){let d=(0,m.St)(c.launchProfile.title),e=(0,m.St)(s.title),f=!d||!e||d===e,g=c.requestDigest===(b.requestDigest??null)&&c.engine===b.engine&&c.cwd===b.cwd&&c.transport===(b.transport??null)&&c.accountPin===(!0===b.accountPin)&&c.explicitProject===i&&(c.supersedes?.conversationId??null)===j&&c.launchProfile.permissionMode===s.permissionMode&&f;if(g&&!d&&e){c.launchProfile.title=e;let b=aP(a,c.conversationId),d=a.conversations[b];if(d){let c=new Set(d.generations.map(a=>a.path));for(let a of d.generations)(0,m.St)(a.launchProfile.title)||(a.launchProfile.title=e);for(let b of Object.values(a.entries))c.has(b.artifactPath)&&b.launchProfile&&!(0,m.St)(b.launchProfile.title)&&(b.launchProfile.title=e);for(let c of Object.values(a.receipts))aP(a,c.conversationId)!==b||(0,m.St)(c.launchProfile.title)||(c.launchProfile.title=e);d.updatedAt=aj(),a.conversationRevision[d.engine]+=1}}return{kind:g?"replay":"conflict",receipt:ai(c)}}}if(!(0,m.St)(s.title))throw Error(m.QE);let t=b.purpose??"launch",v="launch"!==t||b.origin?.kind==="successor",y=!v&&b.origin?(0,w.mo)(a,b.origin):null,z=v?n?.delegationDepth??null:y?y.depth+1:0,A=v?n?.agentRole??null:h,B="launch"===t&&b.origin&&"successor"!==b.origin.kind?{kind:b.origin.kind}:void 0;s.mcpServers=(0,u.VW)({origin:B,parentConversationId:d??s.parentConversationId,agentRole:A,delegationDepth:z,requested:s.mcpServers},this.mcpGrantPolicy);let C=null;if(y){let a=function(){let a;try{a=g().readFileSync((0,k.BQ)("spawn-nesting.json"),"utf8")}catch{return{maxAgentNestingDepth:2}}try{var b;let c=JSON.parse(a);if(1===c.schemaVersion&&(b=c.maxAgentNestingDepth,Number.isInteger(b)&&b>=1&&b<=4))return{maxAgentNestingDepth:c.maxAgentNestingDepth}}catch{}return{maxAgentNestingDepth:2}}().maxAgentNestingDepth;(0,w.n4)(y.role)?C={code:"reviewer_origin_spawn",origin:y,requestedRole:h,childDepth:z??0,maxDepth:a,guidance:(0,w.rF)(y.role),rejectedAt:aj()}:null!==z&&z>a&&(C={code:"nesting_depth_exceeded",origin:y,requestedRole:h,childDepth:z,maxDepth:a,guidance:(0,w.MT)(z,a),rejectedAt:aj()})}if(!C&&void 0!==b.liveChildrenCap){if(!Number.isInteger(b.liveChildrenCap)||b.liveChildrenCap<1)throw Error("liveChildrenCap must be a positive integer");if(!d)throw Error("liveChildrenCap requires parentConversationId");if(function(a,b){let c=aP(a,b),d=new Set;for(let b of Object.values(a.lineageEdges)){if("viewer-spawn"!==b.source||aP(a,b.parentConversationId)!==c)continue;let e=aP(a,b.childConversationId),f=b.evidence.launchId?a.receipts[b.evidence.launchId]:null,g=function(a,b,c,d){let e=[d?.key,c.childSessionKey],f=a.conversations[b],g=f?.generations.at(-1);return e.push(g?(0,x.sz)(f.engine,g.path):null),[...new Set(e.filter(a=>!!a).map(x.pp))].flatMap(b=>a.entries[b]?[a.entries[b]]:[])}(a,e,b,f),h=[f?.verifiedHost?.agent,f?.pane?.panePid,...g.flatMap(a=>[a.host?.agent,a.structuredHost?.process])].filter(a=>!!a);if(h.some(a=>(0,l.$k)(a))){d.add(e);continue}if(!(h.length>0)){if(f&&ak.has(f.state)){if("starting"===f.state&&Date.now()-Date.parse(f.createdAt)>am)continue;d.add(e);continue}g.some(a=>al.has(a.status))&&d.add(e)}}return d.size}(a,d)>=b.liveChildrenCap)throw new J(d,b.liveChildrenCap)}if(c&&b.spawnCapabilityDigest)for(let b of Object.values(a.receipts))aP(a,b.conversationId)===c&&(b.spawnCapabilityDigest=null);let D=aj(),E={launchId:e().randomUUID(),clientAttemptId:b.clientAttemptId??null,requestDigest:b.requestDigest??null,pendingOrchestratorSeatIdentity:null,transport:b.transport??null,admissionOwner:"structured"===b.transport||!0===b.ownStartingActuation?(0,l.y6)(process.pid):null,spawnCapabilityDigest:"string"==typeof b.spawnCapabilityDigest&&/^[0-9a-f]{64}$/.test(b.spawnCapabilityDigest)?b.spawnCapabilityDigest:null,conversationId:c??`conversation_${e().randomUUID()}`,purpose:b.purpose??"launch",supersedes:j?{conversationId:j,reason:b.supersedesReason??"recovery-spawn"}:null,resumeSourcePath:"resume-successor"===b.purpose?n?.generations.at(-1)?.path??null:null,pathCorrelation:"codex"===b.engine&&(b.purpose??"launch")==="launch"?{cwd:b.cwd,startedAt:D}:null,engine:b.engine,cwd:b.cwd,accountId:b.accountId??null,accountPin:!0===b.accountPin,parentConversationId:d,parentSource:d&&("explicit"===b.parentSource||"inferred-caller"===b.parentSource)?b.parentSource:null,createdAt:D,state:C?"failed":"starting",artifactPath:C?null:b.expectedArtifactPath??null,artifactLifecycle:"pending",key:null,pane:null,verifiedHost:null,target:null,completionMode:null,error:C?C.guidance:null,agentRole:A,delegationDepth:z,rejection:C,launchProfile:s,explicitProject:i,launchDisplay:a1(b.launchDisplay),queuedPinnedSpawn:null};if(a.receipts[E.launchId]=E,C)return{kind:"rejected",receipt:ai(E)};if(E.parentConversationId&&E.parentConversationId!==E.conversationId){let c="resume-successor"===b.purpose?a.lineageEdges[E.conversationId]:null;if(c&&c.childConversationId===E.conversationId){let b=aP(a,c.parentConversationId);b!==E.conversationId&&(a.lineageEdges[E.conversationId]={...c,childConversationId:E.conversationId,parentConversationId:b,reviewsConversationId:c.reviewsConversationId?aP(a,c.reviewsConversationId):null})}else a.lineageEdges[E.conversationId]={childConversationId:E.conversationId,parentConversationId:E.parentConversationId,childSessionKey:null,parentSessionKey:b.parentSessionKey??null,childArtifactPath:null,parentArtifactPath:b.parentArtifactPath??null,kind:f||"reviewer"===h?"review":"spawn",role:h,reviewsConversationId:f,source:"viewer-spawn",evidence:{launchId:E.launchId,clientAttemptId:E.clientAttemptId,parentSource:E.parentSource},createdAt:E.createdAt}}for(let c of b.memberships??[])aU(a,E.conversationId,c,E.createdAt);return{kind:"created",receipt:ai(E)}}}claimSpawnActuation(a,b){return this.mutate(c=>{let d=c.receipts[a];if(!d)throw Error("unknown spawn receipt");let e="starting"===d.state&&!d.key&&!d.pane,f="tmux"===b&&("pane-bound"===d.state||"host-verified"===d.state)&&!d.key&&!!d.pane;return d.transport!==b||!e&&!f||d.admissionOwner&&this.ownerAlive(d.admissionOwner)?{claimed:!1,receipt:ai(d)}:(d.admissionOwner=(0,l.y6)(process.pid),{claimed:!0,receipt:ai(d)})})}queuePinnedSpawn(a,b,c){return this.mutate(d=>{let e=d.receipts[a];if(!e)throw Error("unknown spawn receipt");let f=a$(b,this.mcpGrantPolicy);if(!f||"structured"!==e.transport&&"tmux"!==e.transport||"starting"!==e.state||e.key||e.pane||!e.accountPin||!e.accountId||f.accountId!==e.accountId||f.spec.engine!==e.engine||f.spec.cwd!==e.cwd)throw Error("queued pinned spawn payload conflicts with its durable receipt");return e.queuedPinnedSpawn=f,e.launchProfile=(0,r.Ui)({...e.launchProfile,title:c},this.mcpGrantPolicy),ai(e)})}claimStartingStructuredSpawn(a){return this.claimSpawnActuation(a,"structured")}claimTmuxSpawnActuation(a){return this.claimSpawnActuation(a,"tmux")}releaseSpawnActuation(a,b){return this.mutate(c=>{let d=c.receipts[a];if(!d)throw Error("unknown spawn receipt");let e="starting"===d.state&&!d.key&&!d.pane,f="tmux"===d.transport&&("pane-bound"===d.state||"host-verified"===d.state)&&!d.key&&!!d.pane;return("structured"===d.transport||"tmux"===d.transport)&&(e||f)&&d.admissionOwner&&(0,l.O1)(d.admissionOwner,b)?(d.admissionOwner=null,{released:!0,receipt:ai(d)}):{released:!1,receipt:ai(d)}})}releaseStartingStructuredSpawn(a,b){return this.mutate(c=>{let d=c.receipts[a];if(!d)throw Error("unknown spawn receipt");return"structured"!==d.transport||"starting"!==d.state||d.key||d.pane||!d.admissionOwner||!(0,l.O1)(d.admissionOwner,b)?{released:!1,receipt:ai(d)}:(d.admissionOwner=null,{released:!0,receipt:ai(d)})})}releaseStructuredSpawnAdmissionOwner(a,b){return this.mutate(c=>{let d=c.receipts[a];if(!d)throw Error("unknown spawn receipt");return"structured"===d.transport&&d.admissionOwner&&(0,l.O1)(d.admissionOwner,b)?(d.admissionOwner=null,{released:!0,receipt:ai(d)}):{released:!1,receipt:ai(d)}})}claimFailedSpawnForRetry(a,b){if(!b.trim())throw Error("spawn retry claim id is required");return this.mutate(c=>{let d=c.receipts[a];if(!d)throw Error("unknown spawn receipt");return d.retryClaim?.claimId===b?{kind:"claimed",receipt:ai(d)}:d.retryClaim?{kind:"conflict",receipt:ai(d)}:"failed"!==d.state?{kind:"settled",receipt:ai(d)}:(d.retryClaim={claimId:b,claimedAt:aj()},{kind:"claimed",receipt:ai(d)})})}rememberMembership(a,b){return this.mutate(c=>ai(aU(c,a,b,aj())))}runIdentityWaveMigration(a){return a.dryRun?(0,t.Oy)(ai(this.readOnlySnapshot()),{...a,dryRun:!0}):(0,n.oV)(()=>this.mutate(b=>(0,t.Oy)(b,a)))}stampOrchestratorSeatIdentity(a){return this.mutate(b=>{let c=(0,t.DD)(b,a,a.activatedAt??a.designatedAt);if(c.changed&&c.engine&&(b.conversationRevision[c.engine]+=1),c.engine)return c.changed;let d=Object.values(b.receipts).find(b=>b.conversationId===a.conversationId);if(!d)return!1;let e=a_(a);return!(!e||(0,j.isDeepStrictEqual)(d.pendingOrchestratorSeatIdentity,e))&&(d.pendingOrchestratorSeatIdentity=e,!0)})}beginSpawn(a,b,c={}){let d=this.beginSpawnRequest({engine:a,cwd:b,launchProfile:c});if("created"!==d.kind)throw Error("could not create spawn receipt");return d.receipt}bindSpawnPane(a,b){return this.mutate(c=>{let d=c.receipts[a];if(!d)throw Error("unknown spawn receipt");return d.pane&&(d.pane.paneId!==b.paneId||d.pane.server.startIdentity!==b.server.startIdentity||d.pane.panePid.startIdentity!==b.panePid.startIdentity)?(d.state="conflicted",d.error="spawn_pane_conflict"):"failed"===d.state||"conflicted"===d.state||(d.pane={...b,display:b.display??b.target,target:b.paneId},d.target=b.paneId,"starting"===d.state&&(d.state="pane-bound")),ai(d)})}markSpawnHostVerified(a,b){return this.mutate(c=>{let d=c.receipts[a];if(!d)throw Error("unknown spawn receipt");return d.pane&&d.pane.paneId===b.paneId&&d.pane.server.pid===b.server.pid&&d.pane.server.startIdentity===b.server.startIdentity&&d.pane.panePid.pid===b.panePid.pid&&d.pane.panePid.startIdentity===b.panePid.startIdentity?"failed"===d.state||"conflicted"===d.state||(d.verifiedHost=b,d.target=b.paneId,("starting"===d.state||"pane-bound"===d.state)&&(d.state="host-verified")):(d.state="conflicted",d.error="spawn_host_identity_conflict"),ai(d)})}markSpawnPromptDelivered(a){return this.mutate(b=>{let c=b.receipts[a];if(!c)throw Error("unknown spawn receipt");return c.verifiedHost&&("host-verified"===c.state||"pane-bound"===c.state||"starting"===c.state)&&(c.state="prompt-delivered","tmux"===c.transport&&c.queuedPinnedSpawn&&(c.launchProfile=(0,r.Ui)(c.queuedPinnedSpawn.spec.launchProfile,this.mcpGrantPolicy),c.queuedPinnedSpawn=null,c.admissionOwner=null)),ai(c)})}markSpawnPathPending(a){return this.mutate(b=>{let c=b.receipts[a];if(!c)throw Error("unknown spawn receipt");return c.verifiedHost&&("prompt-delivered"===c.state||"host-verified"===c.state)&&(c.state="path-pending"),ai(c)})}preserveSpawnArtifactOwnership(a,b){this.mutate(c=>{let d=c.receipts[a];d&&"completed"!==d.state&&"failed"!==d.state&&(d.state="path-pending",d.error=b,d.verifiedHost=null,d.target=null)})}confirmSpawnPaneAliveInFile(a,b,c,d){var e;let f=a.receipts[b];if(!f||"conflicted"!==f.state||!f.pane)return f??null;if(f.engine!==d.engine||f.cwd!==d.cwd||"agent never reached a launch-ready prompt"!==(e=f.error)&&e?.startsWith("agent never reached a launch-ready prompt:")!==!0&&"launch prompt was not accepted by the agent"!==e&&e?.startsWith("launch prompt was not accepted by the agent:")!==!0)return f;let g=f.pane,h=g.server.pid===c.server.pid&&(null===g.server.startIdentity||g.server.startIdentity===c.server.startIdentity),i=g.paneId===c.paneId&&g.panePid.pid===c.panePid.pid&&(null===g.panePid.startIdentity||g.panePid.startIdentity===c.panePid.startIdentity);return h&&i&&(f.state="host-verified",f.error=null,f.verifiedHost=c,f.target=c.paneId),f}confirmSpawnPaneAlive(a,b,c){let d=this.readOnlySnapshot().receipts[a];return d&&"conflicted"===d.state?this.mutate(d=>{let e=this.confirmSpawnPaneAliveInFile(d,a,b,c);return e?ai(e):null}):d?ai(d):null}settleSpawnInFile(a,b,c,d,e=!0){let f=a.receipts[b];if(!f)throw Error("unknown spawn receipt");let g=f.key?a.entries[(0,x.pp)(f.key)]:null,h=a=>("completed"!==f.state&&(f.state="conflicted",f.error=a),{kind:"conflict",receipt:ai(f),code:a});if("observed-completed"===d&&c.host?.kind==="tmux"&&this.confirmSpawnPaneAliveInFile(a,b,c.host,{engine:c.key.engine,cwd:c.cwd}),"failed"===f.state||"conflicted"===f.state)return{kind:"conflict",receipt:ai(f),code:"spawn_artifact_conflict"===f.error||"spawn_pane_conflict"===f.error||"spawn_identity_conflict"===f.error?f.error:"spawn_identity_conflict"};if(f.engine!==c.key.engine||f.cwd!==c.cwd)return h("spawn_identity_conflict");if(f.pane&&c.host?.kind==="tmux"&&(f.pane.paneId!==c.host.paneId||f.pane.server.pid!==c.host.server.pid||null!==f.pane.server.startIdentity&&c.host.server.startIdentity!==f.pane.server.startIdentity||f.pane.panePid.pid>0&&f.pane.panePid.pid!==c.host.panePid.pid||null!==f.pane.panePid.startIdentity&&c.host.panePid.startIdentity!==f.pane.panePid.startIdentity))return h("spawn_pane_conflict");let i=a.conversations[f.conversationId],j=i?.generations.find(a=>a.id===c.key.sessionId),k=i?(0,x.sz)(i.engine,c.artifactPath)?.sessionId??an(c.artifactPath):null,l="completed"===f.state&&"resume-successor"===f.purpose&&null!==f.resumeSourcePath&&f.artifactPath===f.resumeSourcePath&&null!==f.artifactPath&&null!==f.key&&void 0!==i&&aG(i,f.artifactPath)&&aG(i,c.artifactPath)&&(0,x.pp)(f.key)===(0,x.pp)(c.key)&&j?.id===c.key.sessionId&&k===c.key.sessionId;if(f.artifactPath&&f.artifactPath!==c.artifactPath&&!l)return h("spawn_artifact_conflict");if(f.key&&(0,x.pp)(f.key)!==(0,x.pp)(c.key))return h("spawn_identity_conflict");let n=a.entries[(0,x.pp)(c.key)],o=!!n&&!!i&&(i.generations.some(a=>a.path===n.artifactPath)||i.continuityPaths.includes(n.artifactPath)),p="resume-successor"===f.purpose&&o&&j?.id===c.key.sessionId&&k===c.key.sessionId;if(n&&n.artifactPath!==c.artifactPath&&(!g||(0,x.pp)(g.key)!==(0,x.pp)(c.key))&&!p)return h("spawn_artifact_conflict");f.queuedPinnedSpawn&&(f.launchProfile=(0,r.Ui)(f.queuedPinnedSpawn.spec.launchProfile,this.mcpGrantPolicy),f.queuedPinnedSpawn=null);let q=aj(),u=i??{id:f.conversationId,engine:f.engine,generations:[],continuityPaths:[],abandonedContinuityPaths:[],providerForkPaths:[],projectOwnership:null,pinnedAccountId:f.accountPin?f.accountId:null,migration:null,migrationOptOut:null,supersededBy:null,agentRole:null,delegationDepth:null,turn:{state:"unknown",source:"empty",terminalAt:null,observedAt:null},createdAt:q,updatedAt:q};if(u.agentRole??=f.agentRole,u.delegationDepth??=f.delegationDepth,"launch"===f.purpose&&f.accountPin&&f.accountId&&(u.pinnedAccountId=f.accountId),u.engine!==f.engine||"resume-successor"===f.purpose&&!P(u.migration))return h("spawn_identity_conflict");if("migration-successor"===f.purpose){let b=Object.values(a.conversations).find(a=>a.id!==u.id&&a.engine===u.engine&&aG(a,c.artifactPath));if(b&&!aY(a,b,u,c.artifactPath))return h("spawn_artifact_conflict");aH(u,c.artifactPath)}if("launch"===f.purpose){let b=Object.values(a.conversations).find(a=>a.id!==u.id&&a.engine===u.engine&&aG(a,c.artifactPath));if(b&&!aY(a,b,u,c.artifactPath))return h("spawn_artifact_conflict")}if("resume-successor"===f.purpose&&!aG(u,c.artifactPath)){let b=Object.values(a.conversations).find(a=>a.id!==u.id&&a.engine===u.engine&&aG(a,c.artifactPath));if(b&&!aY(a,b,u,c.artifactPath))return h("spawn_artifact_conflict");let d=(0,x.sz)(u.engine,c.artifactPath)?.sessionId??an(c.artifactPath),e=u.generations.find(a=>a.id===d);if(e)u.continuityPaths.includes(e.path)||u.continuityPaths.push(e.path),e.path=c.artifactPath,e.accountId=f.accountId??e.accountId,e.launchProfile={...e.launchProfile,...f.launchProfile};else{let a=u.generations.at(-1);a&&null===a.archivedAt&&(a.archivedAt=q),u.generations.push({id:d,path:c.artifactPath,accountId:f.accountId,launchProfile:f.launchProfile,historyHash:null,host:null,createdAt:q,archivedAt:null})}if(a.conversationRevision[u.engine]+=1,a.engineRouting[u.engine].revision+=1,u.migration&&("waiting-turn"===u.migration.phase||"requested"===u.migration.phase)){let a=u.generations.at(-1);a&&(u.migration={...u.migration,sourceGenerationId:a.id,updatedAt:q})}}f.explicitProject&&!u.projectOwnership&&(u.projectOwnership={project:f.explicitProject,source:"operator",setAt:q,operationId:f.launchId}),"migration-successor"===f.purpose||u.generations.some(a=>a.path===c.artifactPath)||(u.generations.push({id:an(c.artifactPath),path:c.artifactPath,accountId:f.accountId,launchProfile:f.launchProfile,historyHash:null,host:null,createdAt:q,archivedAt:null}),a.conversationRevision[u.engine]+=1,a.engineRouting[u.engine].revision+=1);let v=u.generations.find(a=>a.path===c.artifactPath),w=(0,m.St)(f.launchProfile.title,120);v&&w&&!(0,m.St)(v.launchProfile.title,120)&&(v.launchProfile.title=w,a.conversationRevision[u.engine]+=1,a.engineRouting[u.engine].revision+=1);let y=Object.values(a.migrationIntents).find(b=>b.engine===u.engine&&L(b)&&(0,s.xc)(a,b,Date.parse(q))),z=u.generations.at(-1);y&&!u.pinnedAccountId&&z&&z.accountId!==y.targetId&&!u.migration&&"accepted"===W(a,u,z,y).kind&&(u.migration=V(u,z,y,N(a,u)?"waiting-turn":"requested",q)),u.updatedAt=q,a.conversations[u.id]=u;let A={...c,accountId:f.accountId,launchProfile:f.launchProfile,updatedAt:q};if(a.entries[(0,x.pp)(c.key)]=A,f.key=c.key,f.artifactPath=c.artifactPath,f.pendingOrchestratorSeatIdentity){let b=f.pendingOrchestratorSeatIdentity,c=(0,t.DD)(a,b,b.activatedAt??b.designatedAt);f.pendingOrchestratorSeatIdentity=null,c.changed&&c.engine&&(a.conversationRevision[c.engine]+=1)}let B=a.lineageEdges[f.conversationId];return B&&(B.childSessionKey=c.key,B.childArtifactPath=c.artifactPath),c.host?.kind==="tmux"&&(f.verifiedHost=c.host),null===f.target&&c.host?.kind==="tmux"&&(f.target=c.host.paneId),f.state=e?"completed":"path-pending",f.error=null,e&&(f.completionMode="observed-completed"===f.completionMode&&"route-completed"===d?"route-recovered":f.completionMode??d,f.supersedes&&aT(a,f.supersedes.conversationId,f.conversationId,f.supersedes.reason)),{kind:"settled",receipt:ai(f),entry:ai(A),conversation:ai(u)}}stageStructuredSpawn(a,b){return this.mutate(c=>{let d=new Set([b.artifactPath]),e=S(c,b.key.engine,d),f=this.settleSpawnInFile(c,a,{...b,structuredHostOperationId:a},"route-completed",!1);return U(c,b.key.engine,e,d),f})}finalizeStructuredSpawn(a){return this.mutate(b=>{let c=b.receipts[a];if(!c)throw Error("unknown spawn receipt");if("failed"===c.state||"conflicted"===c.state)return{kind:"conflict",receipt:ai(c),code:"spawn_identity_conflict"};if(!c.key||!c.artifactPath)throw Error("structured spawn identity is incomplete");let d=b.entries[(0,x.pp)(c.key)],e=b.conversations[c.conversationId];if(d&&"string"==typeof d.structuredHostOperationId&&d.structuredHostOperationId!==a)return c.state="conflicted",c.error="spawn_identity_conflict",{kind:"conflict",receipt:ai(c),code:"spawn_identity_conflict"};if(!d||!e||d.artifactPath!==c.artifactPath||!d.structuredHost?.process||!d.claimOwner||"unhosted"===d.status||"dead"===d.status)throw Error("structured spawn durable host setup is incomplete");return d.pendingAction=null,d.updatedAt=aj(),c.state="completed",c.error=null,c.completionMode="route-completed",c.supersedes&&aT(b,c.supersedes.conversationId,c.conversationId,c.supersedes.reason),{kind:"settled",receipt:ai(c),entry:ai(d),conversation:ai(e)}})}recoverDeliveredStructuredSpawn(a){return this.mutate(b=>{let c=b.receipts[a];if(!c)throw Error("unknown spawn receipt");if("failed"===c.state||"conflicted"===c.state)return{kind:"conflict",receipt:ai(c),code:"spawn_identity_conflict"};if("path-pending"!==c.state||!c.key||!c.artifactPath)throw Error("structured spawn recovery identity is incomplete");let d=b.entries[(0,x.pp)(c.key)],e=b.conversations[c.conversationId];if(!d||!e||d.artifactPath!==c.artifactPath)throw Error("structured spawn recovery identity is unavailable");if(d.host||d.structuredHost?.process||d.claimOwner||"dead"!==d.status&&"unhosted"!==d.status)throw Error("structured spawn host loss is unconfirmed");let f={...d,host:null,structuredHost:null,status:"dead",claimOwner:null,pendingAction:null},g=T(b,(0,x.pp)(c.key),f),h=S(b,c.key.engine,g);return Object.assign(d,f,{updatedAt:aj()}),c.state="completed",c.error=null,c.completionMode=c.completionMode??"route-recovered",c.supersedes&&aT(b,c.supersedes.conversationId,c.conversationId,c.supersedes.reason),U(b,c.key.engine,h,g),{kind:"settled",receipt:ai(c),entry:ai(d),conversation:ai(e)}})}recoverStructuredSpawnFromEvidence(a,b){return this.mutate(c=>{let d=c.receipts[a];if(!d)throw Error("unknown spawn receipt");if("conflicted"===d.state||d.retryClaim)return{kind:"conflict",receipt:ai(d),code:"spawn_identity_conflict"};let e=d.key??b?.key,f=e?c.entries[(0,x.pp)(e)]:null,g=null;if(f){let{updatedAt:a,...b}=f;g=b}if(g&&(g.structuredHost?.process||g.claimOwner)&&d.accountId!==g.accountId)return{kind:"conflict",receipt:ai(d),code:"spawn_identity_conflict"};let h=b&&g&&(g.structuredHost?.process||g.claimOwner)?{...b,host:g.host,structuredHost:g.structuredHost,claimEpoch:g.claimEpoch,claimOwner:g.claimOwner,pendingAction:g.pendingAction}:b??g;return!h||d.key&&(0,x.pp)(d.key)!==(0,x.pp)(h.key)||d.artifactPath&&d.artifactPath!==h.artifactPath?{kind:"conflict",receipt:ai(d),code:"spawn_identity_conflict"}:("failed"===d.state&&(d.state=d.key?"path-pending":"starting",d.error=null),this.settleSpawnInFile(c,a,h,"route-recovered"))})}settleSpawn(a,b,c="route-completed"){return this.mutate(d=>{let e=new Set([b.artifactPath]),f=S(d,b.key.engine,e),g=this.settleSpawnInFile(d,a,b,c);return U(d,b.key.engine,f,e),g})}completeSpawn(a,b){let c=this.settleSpawn(a,b);if("conflict"===c.kind)throw Error(c.code);return c.entry}failSpawn(a,b){this.mutate(c=>{let d=c.receipts[a];if(d&&"completed"!==d.state&&"failed"!==d.state&&"conflicted"!==d.state){if("host-verified"===d.state||"prompt-delivered"===d.state){d.error=b;return}d.state=d.pane?"conflicted":"failed",d.error=b,"conflicted"===d.state&&(d.verifiedHost=null),("failed"===d.state||"conflicted"===d.state)&&d.queuedPinnedSpawn&&(d.launchProfile=(0,r.Ui)(d.queuedPinnedSpawn.spec.launchProfile,this.mcpGrantPolicy),d.queuedPinnedSpawn=null),aB(c)}})}terminalizeFailedSpawnDeliveries(){let a=this.readOnlySnapshot();return Object.values(a.heldDeliveries).some(b=>{let c=az(a,b);return!!c&&("failed"===b.state?!["completed","failed","conflicted"].includes(c.state):("failed"===c.state||"conflicted"===c.state)&&0===b.attempts&&("held"===b.state||"assigned"===b.state))})?this.mutate(a=>aB(a)):[]}failStructuredSpawn(a,b,c={}){return this.mutate(d=>{let e=d.receipts[a];if(!e)return{claimed:!1,receipt:null,cleanup:null};if("completed"===e.state||"failed"===e.state||"conflicted"===e.state)return{claimed:!1,receipt:ai(e),cleanup:null};if(e.state="failed",e.error=b,e.queuedPinnedSpawn&&(e.launchProfile=(0,r.Ui)(e.queuedPinnedSpawn.spec.launchProfile,this.mcpGrantPolicy),e.queuedPinnedSpawn=null),aB(d),!e.key||!e.artifactPath)return{claimed:!0,receipt:ai(e),cleanup:null};let f=d.entries[(0,x.pp)(e.key)];if(!f||f.artifactPath!==e.artifactPath||"string"==typeof f.structuredHostOperationId&&f.structuredHostOperationId!==a)return{claimed:!0,receipt:ai(e),cleanup:null};let g=f.structuredHostOperationId===a,h=null==f.structuredHostOperationId&&"spawn"===f.pendingAction;if(!g&&!h)return{claimed:!0,receipt:ai(e),cleanup:null};let i={key:ai(e.key),process:ai(f.structuredHost?.process??null),releaseRegisteredHost:g};if(!0===c.retainRegisteredHost&&g&&f.structuredHost?.process)return f.pendingAction=null,f.updatedAt=aj(),{claimed:!0,receipt:ai(e),cleanup:i};let j="resume-successor"===e.purpose&&e.resumeSourcePath===e.artifactPath&&(f.structuredHost?.eventCursor??0)>0&&f.structuredHost?{...f.structuredHost,endpoint:"stdio:released",process:null,activeTurnRef:null,pendingAttention:[],activeFlags:[]}:null,k=T(d,(0,x.pp)(e.key),{...f,host:null,structuredHost:j,status:"dead",claimOwner:null,pendingAction:null}),l=S(d,e.key.engine,k);return f.host=null,f.structuredHost=j,f.status="dead",f.claimOwner=null,f.pendingAction=null,f.updatedAt=aj(),U(d,e.key.engine,l,k),{claimed:!0,receipt:ai(e),cleanup:i}})}invalidateSpawnHost(a,b){this.mutate(c=>{let d=c.receipts[a];d&&"failed"!==d.state&&"conflicted"!==d.state&&(d.state="conflicted",d.error=b,d.verifiedHost=null)})}upsert(a){return this.mutate(b=>{let c=(0,x.pp)(a.key),d=b.entries[c],e=void 0===a.structuredHost&&d?.structuredHost!==void 0?{...a,structuredHost:d.structuredHost}:a,f=T(b,c,e),g=S(b,a.key.engine,f),h={...e,updatedAt:aj()};return b.entries[c]=h,U(b,a.key.engine,g,f),ai(h)})}setStructuredHost(a,b,c){return this.mutate(d=>{let e=(0,x.pp)(a),f=d.entries[e];if(!f)throw Error("agent registry entry is missing");let g=T(d,e,{...f,structuredHost:b?ao(b):null,status:c??f.status}),h=S(d,a.engine,g);return f.structuredHost=b?ao(b):null,c&&(f.status=c),f.updatedAt=aj(),U(d,a.engine,h,g),ai(f)})}terminateStructuredHost(a,b){return this.mutate(c=>{let d=(0,x.pp)(a),e=c.entries[d];if(!e)return!1;let f=e.structuredHost?.process??null;if(b&&f&&!(0,l.O1)(f,b))return!1;let g={...e,host:null,structuredHost:null,status:"dead",claimOwner:null,pendingAction:null},h=T(c,d,g),i=S(c,a.engine,h);return Object.assign(e,g,{updatedAt:aj()}),U(c,a.engine,i,h),!0})}terminateInactiveStructuredHost(a,b,c){return this.mutate(d=>{let e=d.conversations[a],f=(0,x.pp)(b),g=d.entries[f],h=g?.structuredHost?.process??null,i=null!==h&&!this.ownerAlive(h);if(!e||e.engine!==b.engine||!e.generations.some(a=>a.id===b.sessionId)||!g||c&&(!h||!(0,l.O1)(h,c.process)||g.claimEpoch!==c.claimEpoch||g.structuredHost?.writerClaimEpoch!==c.claimEpoch)||g.host||null!==h&&!i||g.claimOwner&&!i||!i&&"dead"!==g.status&&"unhosted"!==g.status)return!1;let j={...g,host:null,structuredHost:null,status:"dead",claimOwner:null,pendingAction:null},k=T(d,f,j),m=S(d,b.engine,k);return Object.assign(g,j,{updatedAt:aj()}),U(d,b.engine,m,k),e.generations.at(-1)?.id===b.sessionId?"current":"predecessor"})}setStructuredHostClaimed(a,b,c,d,e,f=!1){return this.mutate(g=>{let h=(0,x.pp)(a),i=g.entries[h];if(!i?.structuredHost||i.claimOwner!==d||i.claimEpoch!==e||i.structuredHost.writerClaimEpoch!==e)return null;let k=ao(b),l=i.structuredHost.releaseHandoffClaimEpoch,m="handoff"===i.pendingAction&&!!k?.process&&void 0!==l&&e>l;if(k&&m){let{releaseHandoffClaimEpoch:a,...b}=k;k=b}else k&&"handoff"===i.pendingAction&&void 0!==l&&(k={...k,releaseHandoffClaimEpoch:l});if(!f&&i.status===c&&!m&&(0,j.isDeepStrictEqual)(ao(i.structuredHost),k))return ai(i);let n={...i,structuredHost:k,status:c,...m?{pendingAction:null}:{}},o=T(g,h,n),p=S(g,a.engine,o);return i.structuredHost=n.structuredHost,i.status=c,i.pendingAction=n.pendingAction,f&&(i.claimOwner=null),i.updatedAt=aj(),U(g,a.engine,p,o),ai(i)})}markStructuredHostHandoff(a,b){return this.mutate(c=>{let d=c.entries[(0,x.pp)(a)],e=d?.structuredHost,f=e?.process;if(!d?.claimOwner||!e||!f||null===b.startIdentity||!(0,l.O1)(f,b))return!1;let g={...d,pendingAction:"handoff",structuredHost:{...e,releaseHandoffClaimEpoch:d.claimEpoch}},h=T(c,(0,x.pp)(a),g),i=S(c,a.engine,h);return d.pendingAction=g.pendingAction,d.structuredHost=g.structuredHost,d.updatedAt=aj(),U(c,a.engine,i,h),!0})}ownsStructuredHostClaim(a,b,c){let d=this.readOnlySnapshot().entries[(0,x.pp)(a)];return d?.claimOwner===b&&d.claimEpoch===c&&d.structuredHost?.writerClaimEpoch===c}claimStructuredHost(a,b,c={}){return this.mutate(d=>{let e=d.entries[(0,x.pp)(a)];if(!e?.structuredHost||"unhosted"===e.status&&!0!==c.allowUnhosted)return null;(0,u.k8)(d,a,this.mcpGrantPolicy);let f="unhosted"===e.status||"dead"===e.status,g=e.structuredHost.process;if(!f&&g&&this.ownerAlive(g))return null;let h=`${H}${JSON.stringify(b)}`;if(e.claimOwner){let a=I(e.claimOwner),d=!0===c.reclaimUnverifiedOwner&&null===e.structuredHost.process&&a?.startIdentity===null&&null!==b.startIdentity;if(!a||this.ownerAlive(a)&&!d)return null}return e.claimOwner=h,e.claimEpoch+=1,e.structuredHost.writerClaimEpoch=e.claimEpoch,e.updatedAt=aj(),ai(e)})}markUnhosted(a){this.mutate(b=>{let c=b.entries[(0,x.pp)(a)];if(!c)return;let d=c.structuredHost?.process?c.status:"unhosted",e={...c,host:null,status:d},f=T(b,(0,x.pp)(a),e),g=S(b,a.engine,f);c.host=null,c.status=d,c.updatedAt=aj(),U(b,a.engine,g,f)})}claim(a,b){return this.mutate(c=>{let d=c.entries[(0,x.pp)(a)];if(!d)throw Error("agent registry entry is missing");if(d.claimOwner&&d.claimOwner!==b)throw Error("agent session is claimed by another operation");return d.claimOwner=b,d.claimEpoch+=1,d.updatedAt=aj(),ai(d)})}releaseClaim(a,b){this.mutate(c=>{let d=c.entries[(0,x.pp)(a)];d?.claimOwner===b&&(d.claimOwner=null,d.updatedAt=aj())})}releaseStructuredHostClaim(a,b,c){return this.mutate(d=>{let e=d.entries[(0,x.pp)(a)];return!!e?.structuredHost&&e.claimOwner===b&&e.claimEpoch===c&&e.structuredHost.writerClaimEpoch===c&&(e.claimOwner=null,e.updatedAt=aj(),!0)})}async withOperationLock(a,b,c){let d=`${this.filename}.locks/${encodeURIComponent((0,x.pp)(a))}`,e=await this.acquireLockAsync(d,b);try{return await c()}finally{this.releaseLock(e)}}importResumePanes(a,b){this.mutate(c=>{c.importedResumePanes&&c.legacyResumePanes.serverPid===a||(c.legacyResumePanes={serverPid:a,panes:Object.fromEntries(b)},c.importedResumePanes=!0)})}resumePanes(a){let b=this.readOnlySnapshot().legacyResumePanes;return b.serverPid===a?new Map(Object.entries(b.panes).map(([a,b])=>[a,ai(b)])):new Map}rememberResumePane(a,b,c){this.mutate(d=>{d.legacyResumePanes.serverPid!==a&&(d.legacyResumePanes={serverPid:a,panes:{}}),d.legacyResumePanes.panes[b]=c,d.importedResumePanes=!0})}reconcileSpawnReceipts(a){let b=new Set([...a].map(x.pp));this.mutate(a=>{for(let c of Object.values(a.entries))b.has((0,x.pp)(c.key))&&(c.pendingAction=null);for(let c of Object.values(a.receipts)){if("starting"!==c.state||!c.artifactPath)continue;let d=Object.values(a.entries).find(a=>a.artifactPath===c.artifactPath)?.key;d&&b.has((0,x.pp)(d))&&(c.state="completed")}})}completeObservedSpawn(a,b){return this.settleSpawn(a,b,"observed-completed")}ensureConversation(a,b,c){return this.mutate(d=>{let f=Object.values(d.conversations).find(c=>c.engine===a&&aG(c,b));if(f)return ai(f);let g=aj(),h={id:`conversation_${e().randomUUID()}`,engine:a,generations:[{id:an(b),path:b,accountId:c,launchProfile:(0,r.Ui)(),historyHash:null,host:null,createdAt:g,archivedAt:null}],continuityPaths:[],abandonedContinuityPaths:[],providerForkPaths:[],projectOwnership:null,pinnedAccountId:null,migration:null,migrationOptOut:null,supersededBy:null,agentRole:null,delegationDepth:null,turn:{state:"unknown",source:"empty",terminalAt:null,observedAt:null},createdAt:g,updatedAt:g};return d.conversations[h.id]=h,d.conversationRevision[a]+=1,d.engineRouting[a].revision+=1,ai(h)})}reconcileConversations(a){return this.mutate(b=>{let c=new Set,d=new Map,f=function(a,b){let c=Object.values(a.receipts).flatMap(a=>{if("codex"!==a.engine||"path-pending"!==a.state||null!==a.artifactPath||!a.pathCorrelation)return[];let b=Date.parse(a.pathCorrelation.startedAt);return Number.isFinite(b)?[{launchId:a.launchId,cwd:a.pathCorrelation.cwd,accountId:a.accountId,expectedStart:b}]:[]});if(0===c.length)return new Map;let d=[];for(let c of b){if("codex"!==c.engine||!c.startedAt)continue;let b=Date.parse(c.startedAt);if(!Number.isFinite(b))continue;let e=(0,x.sz)(c.engine,c.path)?.sessionId??null;Object.values(a.conversations).filter(a=>a.engine===c.engine&&(aG(a,c.path)||null!==e&&a.generations.some(a=>a.id===e))).some(a=>!aL(a,c.path))||d.push({path:c.path,cwd:c.launchProfile.cwd,accountId:c.accountId,observedStart:b})}let e=new Map,f=a=>JSON.stringify([a.cwd,a.accountId]),g=new Set([...c.map(f),...d.map(f)]),h=(a,b,c,d)=>{let e=a[b][c];if(!e||d.count>e.count||d.count===e.count&&d.distance<e.distance){a[b][c]={...d,assignments:d.assignments.map(a=>[...a])};return}if(d.count!==e.count||d.distance!==e.distance)return;let f=new Set(e.assignments.map(a=>JSON.stringify(a)));for(let a of d.assignments){let b=JSON.stringify(a);if(!f.has(b)&&(e.assignments.push(a),f.add(b),2===e.assignments.length))break}};for(let a of g){let b=c.filter(b=>f(b)===a).sort((a,b)=>a.expectedStart-b.expectedStart||a.launchId.localeCompare(b.launchId)),g=d.filter(b=>f(b)===a).sort((a,b)=>a.observedStart-b.observedStart||a.path.localeCompare(b.path)),i=(a,b)=>a.observedStart>=b.expectedStart-1e3&&a.observedStart<=b.expectedStart+3e4;if(b.length>1&&g.length>1){let a=g.some(a=>b.filter(b=>i(a,b)).length>1),c=b.some(a=>g.filter(b=>i(b,a)).length>1);if(a||c)continue}let j=Array.from({length:g.length+1},()=>Array(b.length+1));j[0][0]={count:0,distance:0,assignments:[[]]};for(let a=0;a<=g.length;a+=1)for(let c=0;c<=b.length;c+=1){let d=j[a][c];if(!d||(a<g.length&&h(j,a+1,c,d),c<b.length&&h(j,a,c+1,d),a>=g.length||c>=b.length))continue;let e=g[a],f=b[c];i(e,f)&&h(j,a+1,c+1,{count:d.count+1,distance:d.distance+Math.abs(e.observedStart-f.expectedStart),assignments:d.assignments.map(a=>[...a,[e.path,f.launchId]])})}let k=j.at(-1)?.at(-1)?.assignments;if(k?.length===1)for(let[a,b]of k[0])e.set(a,b)}return e}(b,a),h=new Map,i=new Map,j=a=>{for(let b of a.generations){let c=h.get(b.path)??[];c.includes(a)||c.push(a),h.set(b.path,c);let d=i.get(`${a.engine}:${b.id}`)??[];d.includes(a)||d.push(a),i.set(`${a.engine}:${b.id}`,d)}for(let b of a.continuityPaths){let c=h.get(b)??[];c.includes(a)||c.push(a),h.set(b,c)}};for(let a of Object.values(b.conversations))j(a);(function(a,b,c,d){let e=b.filter(a=>"codex"===a.engine&&"string"==typeof a.forkSourceThreadId&&a.forkSourceThreadId.length>0&&(a.forkIntent??"provider-history")==="provider-history");if(0===e.length)return!1;let f=Object.values(a.conversations).filter(a=>"codex"===a.engine),g=new Map,h=new Map;for(let a of f)for(let b of a.generations)h.set(b.id,a),g.set(b.id,a);for(let a of f)for(let b of a.continuityPaths){let c=(0,x.sz)("codex",b)?.sessionId;c&&!g.has(c)&&g.set(c,a)}let i=!1,j=e;for(let b=0;b<e.length&&j.length>0;b+=1){let b=[],e=!1;for(let f of j){let j=(0,x.sz)("codex",f.path)?.sessionId??null,k=g.get(f.forkSourceThreadId);if(!k||a.conversations[k.id]!==k){b.push(f);continue}let l=j?h.get(j):void 0;if(l&&l.id!==k.id&&!aL(l,f.path))continue;let m=(c.get(f.path)??[]).filter(b=>a.conversations[b.id]===b&&"codex"===b.engine&&aG(b,f.path));if(m.some(a=>a.id===k.id)){k.providerForkPaths.includes(f.path)||k.generations.some(a=>a.path===f.path)||(aI(k,f.path),i=!0),j&&g.set(j,k);continue}let n=m.find(a=>aL(a,f.path));(!(m.length>0)||n)&&(!n||aY(a,n,k,f.path))&&(aI(k,f.path),aZ(k.updatedAt,f.observedAt)&&(k.updatedAt=f.observedAt),d(k),j&&g.set(j,k),i=!0,e=!0)}if(!e)break;j=b}return i})(b,a,h,j)&&c.add("codex");let k=new Map,l=()=>{for(let a of(k.clear(),Object.values(b.receipts))){if("resume-successor"!==a.purpose)continue;let c=aP(b,a.conversationId),d=k.get(c)??[];d.push(a),k.set(c,d)}};l();let n=new Map;for(let a of Object.values(b.receipts)){let b=a.artifactPath?`${a.engine}:${a.artifactPath}`:null;b&&"migration-successor"===a.purpose&&"failed"!==a.state&&"conflicted"!==a.state&&!n.has(b)&&n.set(b,a)}let o=new Map;for(let a of Object.values(b.receipts)){if("structured"!==a.transport||"pending"!==a.artifactLifecycle||!a.artifactPath)continue;let b=`${a.engine}:${a.artifactPath}`,c=o.get(b)??[];c.push(a),o.set(b,c)}for(let p of a){for(let a of o.get(`${p.engine}:${p.path}`)??[])a.artifactLifecycle="materialized";let a=(0,x.sz)(p.engine,p.path)?.sessionId??null,q=f.get(p.path);if(a&&q){let d=b.receipts[q],e=d?this.settleSpawnInFile(b,q,{key:{engine:p.engine,sessionId:a},artifactPath:p.path,cwd:d.cwd,accountId:d.accountId,status:"unhosted",host:null,claimEpoch:0,claimOwner:null,pendingAction:null},"observed-completed"):null;if(e?.kind==="settled"){c.add(p.engine),l();let a=b.conversations[aP(b,d.conversationId)];a&&j(a)}}let s=(h.get(p.path)??[]).filter(a=>b.conversations[a.id]===a&&a.engine===p.engine&&aG(a,p.path)),t=aN(b,s);if(t){let a=!1;for(let c of s)c.id!==t.id&&aL(c,p.path)&&(a=aY(b,c,t,p.path)||a);a&&l()}let u=a?`${p.engine}:${a}`:null,v=u?d.get(u):void 0;u&&void 0===v&&d.set(u,p.path);let w=a?aN(b,(i.get(`${p.engine}:${a}`)??[]).filter(c=>b.conversations[c.id]===c&&c.generations.some(b=>b.id===a))):null,y=null!==w&&!P(w.migration)&&(k.get(w.id)??[]).some(Q),z=t??w??null,A=!1;!y&&t&&w&&t.id!==w.id&&aY(b,t,w,p.path)&&(t=w,z=w,A=!0,l());let B=w&&a?w.generations.find(b=>b.id===a):void 0,C=t?.id===w?.id&&void 0!==B&&B.path!==p.path&&!g().existsSync(B.path)&&g().existsSync(p.path);if(!y&&(!t||A||C)&&w&&B&&B.path!==p.path&&(void 0===v||v===p.path?(w.continuityPaths.includes(B.path)||w.continuityPaths.push(B.path),B.path=p.path,w.continuityPaths=w.continuityPaths.filter(a=>a!==B.path),w.abandonedContinuityPaths=w.abandonedContinuityPaths.filter(a=>a!==B.path),w.providerForkPaths=w.providerForkPaths.filter(a=>a!==B.path)):w.continuityPaths.includes(p.path)||w.continuityPaths.push(p.path),w.updatedAt=p.observedAt,j(w),c.add(p.engine)),!z){let a=n.get(`${p.engine}:${p.path}`),d=a?b.conversations[a.conversationId]:null;d&&(aH(z=d,p.path),j(z),z.updatedAt=p.observedAt,c.add(p.engine))}if(!z){let a=p.observedAt;z={id:`conversation_${e().randomUUID()}`,engine:p.engine,generations:[{id:an(p.path),path:p.path,accountId:p.accountId,launchProfile:(0,r.Ui)({...p.launchProfile,title:(0,m.St)(p.launchProfile.title)}),historyHash:null,host:null,createdAt:a,archivedAt:null}],continuityPaths:[],abandonedContinuityPaths:[],providerForkPaths:[],projectOwnership:null,pinnedAccountId:null,migration:null,migrationOptOut:null,supersededBy:null,agentRole:null,delegationDepth:null,turn:{...p.turn,observedAt:p.observedAt},createdAt:a,updatedAt:a},b.conversations[z.id]=z,j(z),aO(b,z,p.path,p.observedAt),c.add(p.engine);continue}let D=z.generations.find(a=>a.path===p.path);if(!D)continue;let E=D.accountId,F=D.launchProfile.role,G=z.turn.state,H=b.lineageEdges[z.id],I=p.launchProfile.parentConversationId;D.accountId=p.accountId??D.accountId,D.launchProfile={...D.launchProfile,...p.launchProfile,cwd:D.launchProfile.cwd||p.launchProfile.cwd,model:D.launchProfile.model??p.launchProfile.model,effort:D.launchProfile.effort??p.launchProfile.effort,fast:D.launchProfile.fast??p.launchProfile.fast,permissionMode:D.launchProfile.permissionMode??p.launchProfile.permissionMode,readOnly:D.launchProfile.readOnly??p.launchProfile.readOnly,sandbox:D.launchProfile.sandbox??p.launchProfile.sandbox??null,mcpServers:D.launchProfile.mcpServers,title:(0,m.St)(D.launchProfile.title)??(0,m.St)(p.launchProfile.title),project:p.launchProfile.project??D.launchProfile.project,parentConversationId:H?.source==="viewer-spawn"?H.parentConversationId:I??D.launchProfile.parentConversationId,role:"root"===D.launchProfile.role||"root"===p.launchProfile.role?"root":"worker",goal:p.launchProfile.goal??D.launchProfile.goal,plan:p.launchProfile.plan??D.launchProfile.plan},aO(b,z,p.path,p.observedAt),(void 0===p.expectedTurnObservedAt||p.expectedTurnObservedAt===z.turn.observedAt)&&aZ(z.turn.observedAt,p.observedAt)&&(z.turn={...p.turn,observedAt:p.observedAt}),aZ(z.updatedAt,p.observedAt)&&(z.updatedAt=p.observedAt),(E!==D.accountId||F!==D.launchProfile.role||G!==z.turn.state)&&c.add(p.engine)}let p=(a,c)=>aN(b,(h.get(a)??[]).filter(d=>b.conversations[d.id]===d&&d.engine===c&&aG(d,a))),q=(a,c)=>{let d=new Set,e=c;for(;e&&!d.has(e);){if(e===a)return!0;d.add(e);let c=b.lineageEdges[e]?.parentConversationId;e=c?aP(b,c):void 0}return!1};for(let d of a){if(!d.parentArtifactPath)continue;let a=p(d.path,d.engine);if(!a||b.lineageEdges[a.id]?.source==="viewer-spawn")continue;let e=p(d.parentArtifactPath,d.engine);if(!e)continue;let f=aP(b,e.id);if(f===a.id||q(a.id,f))continue;let g=a.generations.find(a=>a.path===d.path)??a.generations.at(-1);if(!g)continue;g.launchProfile.parentConversationId!==f&&(g.launchProfile={...g.launchProfile,parentConversationId:f});let h=b.lineageEdges[a.id]?.parentConversationId??null;aO(b,a,d.path,d.observedAt),(b.lineageEdges[a.id]?.parentConversationId??null)!==h&&c.add(d.engine)}for(let a of c)b.conversationRevision[a]+=1,b.engineRouting[a].revision+=1;return ai(b)})}conversationForPath(a){let b=Object.values(this.readOnlySnapshot().conversations).find(b=>aG(b,a));return b?ai(b):null}canonicalConversationId(a){return aP(this.readOnlySnapshot(),a)}recordSupersedence(a,b,c="manual"){return this.mutate(d=>{let e=aP(d,a),f=aP(d,b);if(e===f)throw Error("a conversation cannot supersede itself");let g=aS(d,e,f,c);if(!g)throw Error("supersedence could not be recorded");return ai(g)})}supersedenceChainTail(a){return aQ(this.readOnlySnapshot(),a)}supersedenceConflict(a){let b=this.readOnlySnapshot(),c=aQ(b,a),d=b.conversations[c];return d&&aR(b,d)?c:null}clearSupersedence(a){return this.mutate(b=>{let c=b.conversations[aP(b,a)];if(!c)return null;for(let[a,d]of(c.supersededBy&&(c.supersededBy=null,c.updatedAt=aj(),b.conversationRevision[c.engine]+=1),Object.entries(b.pendingSupersedence)))aQ(b,d.predecessorConversationId)===c.id&&delete b.pendingSupersedence[a];return ai(c)})}conversation(a){let b=this.readOnlySnapshot(),c=b.conversations[aP(b,a)];return c?ai(c):null}launchProfileForPath(a){let b=this.readOnlySnapshot();for(let c of Object.values(b.conversations)){let b=c.generations.find(b=>b.path===a);if(b)return ai(b.launchProfile);if(c.continuityPaths.includes(a)){let a=c.generations.at(-1);if(a)return ai(a.launchProfile)}}let c=Object.values(b.receipts).find(b=>b.artifactPath===a);return c?ai(c.launchProfile):null}transcriptAccountId(a,b){let c=this.readOnlySnapshot();for(let d of Object.values(c.conversations)){if(d.engine!==a)continue;let c=d.generations.find(a=>a.path===b);if(c?.accountId)return c.accountId;if(d.continuityPaths.includes(b)){let a=d.generations.at(-1);if(a?.accountId)return a.accountId}}let d=Object.values(c.receipts).find(c=>c.artifactPath===b&&c.engine===a);return d?.accountId??null}updateConversationLaunchProfile(a,b){return this.mutate(c=>{let d=c.conversations[aP(c,a)],e=d?.generations.at(-1);if(!d||!e)throw Error("viewer conversation is unknown");return aq(c,d,e,b),ai(d)})}claimConversationReconfigure(a,b){if(!b.operationId||!Number.isSafeInteger(b.revision)||b.revision<0)throw Error("conversation reconfigure ownership is invalid");return this.mutate(c=>{let d=c.conversations[aP(c,a)],e=d?.generations.at(-1);if(!d||!e)throw Error("viewer conversation is unknown");let f=d.reconfigure??null;if(f&&(f.revision>b.revision||f.revision===b.revision&&f.operationId!==b.operationId))return{kind:"stale",state:ai(f),conversation:ai(d)};if(f?.operationId===b.operationId&&f.revision===b.revision){if(JSON.stringify(f.profile)!==JSON.stringify(b.profile)||f.accountId!==(b.accountId??null))throw Error("conversation reconfigure replay conflicts with durable ownership");return{kind:"replayed",state:ai(f),conversation:ai(d)}}let g=void 0!==b.accountId&&b.accountId===e.accountId&&d.migration?.targetId!==b.accountId,h=void 0!==b.accountId&&d.migration?.targetId===b.accountId;f?.status==="applying"&&null!==f.accountId&&(h&&!g?function(a,b,c,d){let e=b.migration;if(!e||["committed","rolled-back","failed-recoverable"].includes(e.phase))return;let f=a.migrationIntents[e.intentId];f?.scope==="conversation"&&f.requestIds.includes(aa(c))&&(f.requestIds=[...f.requestIds.filter(a=>!a.startsWith("reconfigure:")),aa(d)],f.updatedAt=aj(),b.updatedAt=f.updatedAt)}(c,d,f,b):ab(c,d,f));let i=f?.status==="applying"?f.previousProfile:b.previousProfile??{model:e.launchProfile.model,effort:e.launchProfile.effort,fast:e.launchProfile.fast},j={operationId:b.operationId,revision:b.revision,status:"applying",profile:ai(b.profile),previousProfile:ai(i),accountId:b.accountId??null,error:null};return aq(c,d,e,j.profile),d.reconfigure=j,{kind:"claimed",state:ai(j),conversation:ai(d)}})}settleConversationReconfigure(a,b,c,d,e=null){return this.mutate(f=>{let g=f.conversations[aP(f,a)],h=g?.generations.at(-1);if(!g||!h)throw Error("viewer conversation is unknown");let i=g.reconfigure??null;return i&&i.operationId===b&&i.revision===c?i.status===d?{kind:"replayed",state:ai(i),conversation:ai(g)}:"applying"!==i.status?{kind:"stale",state:ai(i),conversation:ai(g)}:("failed"===d&&(ab(f,g,i),aq(f,g,h,i.previousProfile)),i.status=d,i.error="failed"===d?e:null,g.updatedAt=aj(),{kind:"settled",state:ai(i),conversation:ai(g)}):{kind:"stale",state:i?ai(i):null,conversation:ai(g)}})}canonicalPath(a){let b=this.conversationForPath(a);return b?.generations.at(-1)?.path??a}setEngineRouting(a,b){return(0,n.oV)(()=>this.mutate(c=>{let d=c.engineRouting[a];return d.activeAccountId=b,d.revision+=1,d.revision}))}engineRouting(a){return ai(this.readOnlySnapshot().engineRouting[a])}migrationScope(a,b){return function(a,b,c){let d={total:0,idle:0,busy:0,deferred:0,alreadyTarget:0},e=O(a);for(let f of Object.values(a.conversations)){if(f.engine!==b||f.pinnedAccountId)continue;let g=f.generations.at(-1);if(g&&null!==g.accountId){if(g.accountId===c){d.alreadyTarget+=1;continue}d.total+=1,d[M(a,f,e)]+=1}}return d}(this.readOnlySnapshot(),a,b)}retireAccount(a,b,c,d={}){(0,n.oV)(()=>this.mutate(e=>{if((0,v.Vm)(e,a,b,d).length>0)throw Error("account has current conversations");let f=aj(),g=e.engineRouting[a];g.activeAccountId===b&&(g.activeAccountId=c,g.revision+=1);let h=new Set;for(let c of Object.values(e.migrationIntents))c.engine===a&&c.targetId===b&&(h.add(c.id),"stopped"!==c.state&&(c.state="stopped",c.revision+=1,c.updatedAt=f,c.stoppedAt=f));if(0!==h.size)for(let a of Object.values(e.conversations))a.migration&&h.has(a.migration.intentId)&&(aK(a),X(e,a,f),Y(e,a,s.JJ),a.migration=null,a.updatedAt=f,e.conversationRevision[a.engine]+=1)}))}commitMigrationIntent(a){let b="auto"===a.origin?(0,p.$8)():null;return(0,n.oV)(()=>this.mutate(c=>{let d=Object.values(c.migrationIntents).find(b=>b.engine===a.engine&&b.requestIds.includes(a.requestId));if(d)return ai(d);let f=c.engineRouting[a.engine];if(f.revision!==a.expectedRevision)throw new ac(a.expectedRevision,f.revision);let g=Object.values(c.migrationIntents).find(b=>b.engine===a.engine&&"draining"===b.state&&L(b));if(g?.origin==="manual"&&"auto"===a.origin)return ai(g);let h=aj();g?(g.requestIds.push(a.requestId),g.targetId=a.targetId,g.origin=a.origin,g.revision+=1,g.evidence=a.evidence??null,g.updatedAt=h):(g={id:e().randomUUID(),engine:a.engine,targetId:a.targetId,origin:a.origin,revision:1,state:"draining",createdAt:h,updatedAt:h,requestIds:[a.requestId],evidence:a.evidence??null,stoppedAt:null},c.migrationIntents[g.id]=g),f.activeAccountId=a.targetId,f.revision+=1;let i=0;for(let d of Object.values(c.conversations)){if(d.engine!==a.engine||d.pinnedAccountId||("manual"===a.origin&&d.migrationOptOut?.targetId===a.targetId&&(d.migrationOptOut=null),"auto"===a.origin&&d.migrationOptOut?.targetId===a.targetId))continue;let e=d.generations.at(-1);if(!e||null===e.accountId||e.accountId===a.targetId){e&&d.migration&&"committed"!==d.migration.phase&&(aK(d),X(c,d,h),Y(c,d,s.JJ),d.migration=null,d.updatedAt=h);continue}if(b&&"available"!==(0,q.h)({project:(0,o.o)(d.projectOwnership,e.launchProfile),engine:a.engine,targetId:a.targetId,observations:Object.values(c.quotaObservations[a.engine]),bindings:b}).kind)continue;let f=M(c,d);((a.scope??"all")!=="active"||"deferred"!==f)&&(i+=1,X(c,d,h),d.migration=V(d,e,g,"busy"===f?"waiting-turn":"requested",h),d.updatedAt=h)}return 0===i&&(g.state="complete"),ai(g)}))}requestConversationMigrationToActiveAccount(a){let b=(0,p.$8)();return this.mutate(c=>{let d=aP(c,a),f=c.conversations[d];if(!f)throw Error("viewer conversation is unknown");if(f.pinnedAccountId)return ai(f);let g=c.engineRouting[f.engine].activeAccountId,h=f.generations.at(-1);if(!g||!h||null===h.accountId||h.accountId===g||f.migrationOptOut?.targetId===g||"available"!==(0,q.h)({project:(0,o.o)(f.projectOwnership,h.launchProfile),engine:f.engine,targetId:g,observations:Object.values(c.quotaObservations[f.engine]),bindings:b}).kind||f.migration?.targetId===g&&!["committed","rolled-back"].includes(f.migration.phase))return ai(f);let i=aj(),j=Object.values(c.migrationIntents).filter(a=>a.engine===f.engine&&a.targetId===g&&"stopped"!==a.state&&L(a)).sort((a,b)=>b.updatedAt.localeCompare(a.updatedAt))[0];j?("draining"!==j.state&&(j.revision+=1),j.state="draining",j.updatedAt=i):(j={id:e().randomUUID(),engine:f.engine,targetId:g,origin:"manual",revision:1,state:"draining",createdAt:i,updatedAt:i,requestIds:[`lazy:${c.engineRouting[f.engine].revision}:${d}`],evidence:null,stoppedAt:null},c.migrationIntents[j.id]=j);let k="busy"===M(c,f)?"waiting-turn":"requested";return X(c,f,i),f.migration=V(f,h,j,k,i),f.updatedAt=i,c.conversationRevision[f.engine]+=1,c.engineRouting[f.engine].revision+=1,ai(f)})}requestConversationReseat(a,b,c){return this.mutate(d=>{let f=aP(d,a),g=d.conversations[f];if(!g)throw Error("viewer conversation is unknown");if(c&&(g.reconfigure?.operationId!==c.operationId||g.reconfigure.revision!==c.revision||"applying"!==g.reconfigure.status))throw Error("conversation reconfigure is superseded");let h=g.generations.at(-1);if(!h||null===h.accountId||h.accountId===b)return ai(g);if(g.migration&&!["committed","rolled-back","failed-recoverable"].includes(g.migration.phase)){if(!c)return ai(g);if(g.migration.targetId===b){let a=d.migrationIntents[g.migration.intentId];if(a?.scope==="conversation"){let b=aa(c);a.requestIds=[...a.requestIds.filter(a=>!a.startsWith("reconfigure:")),b],a.updatedAt=aj(),g.updatedAt=a.updatedAt}return ai(g)}let a=aj(),e=d.migrationIntents[g.migration.intentId];e?.scope==="conversation"&&"stopped"!==e.state&&(e.state="stopped",e.stoppedAt=a,e.updatedAt=a),aK(g),X(d,g,a),g.migration={...g.migration,pendingContinuityPaths:[]}}let i=aj();g.migrationOptOut?.targetId===b&&(g.migrationOptOut=null);let j=c?aa(c):`reseat:${f}:${h.id}`,k=Object.values(d.migrationIntents).filter(a=>"conversation"===a.scope&&a.engine===g.engine&&a.targetId===b&&"stopped"!==a.state&&(c?a.requestIds.includes(j):a.requestIds.some(a=>a.startsWith(`reseat:${f}:`)))).sort((a,b)=>b.updatedAt.localeCompare(a.updatedAt))[0];k?(k.requestIds.includes(j)||k.requestIds.push(j),"draining"!==k.state&&(k.revision+=1),k.state="draining",k.updatedAt=i):(k={id:e().randomUUID(),engine:g.engine,targetId:b,origin:"manual",scope:"conversation",revision:1,state:"draining",createdAt:i,updatedAt:i,requestIds:[j],evidence:null,stoppedAt:null},d.migrationIntents[k.id]=k);let l="busy"===M(d,g)?"waiting-turn":"requested";return X(d,g,i),g.migration=V(g,h,k,l,i),g.updatedAt=i,d.conversationRevision[g.engine]+=1,d.engineRouting[g.engine].revision+=1,ai(g)})}upsertMigrationIntent(a,b,c,d,f=null){return this.mutate(g=>{let h=Object.values(g.migrationIntents).find(b=>b.engine===a&&"draining"===b.state&&L(b));if(h)return"manual"===h.origin&&"auto"===c||(h.requestIds.includes(d)||h.requestIds.push(d),(h.targetId!==b||h.origin!==c)&&(h.targetId=b,h.origin=c,h.revision+=1,h.evidence=f),h.updatedAt=aj()),ai(h);let i=aj(),j={id:e().randomUUID(),engine:a,targetId:b,origin:c,revision:1,state:"draining",createdAt:i,updatedAt:i,requestIds:[d],evidence:f,stoppedAt:null};return g.migrationIntents[j.id]=j,ai(j)})}setConversationMigration(a,b){return this.mutate(c=>{let d=aP(c,a),e=c.conversations[d];if(!e)throw Error("viewer conversation is unknown");let f=e.generations.at(-1);return e.migration=b?{...b,errorCode:b.errorCode??null,operationId:b.operationId??`${b.intentId}:${d}:${b.revision}`,sourceGenerationId:b.sourceGenerationId??f?.id??"",successorLaunchProfile:b.successorLaunchProfile??null,providerReceipt:b.providerReceipt??null,pendingContinuityPaths:b.pendingContinuityPaths??[],boardProject:b.boardProject??null,boardOperationId:b.boardOperationId??null,boardPlacementProject:b.boardPlacementProject??b.boardProject??null}:null,e.updatedAt=aj(),ai(e)})}transitionConversationMigration(a,b,c,d){return this.mutate(e=>{let f=e.conversations[aP(e,a)],g=f?.migration;if(!f||!g)throw Error("conversation has no migration");if(g.revision!==b||!c.includes(g.phase))throw Error("migration transition is stale");return f.migration={...g,...d,updatedAt:aj()},f.updatedAt=aj(),ai(f)})}persistMigrationProviderReceipt(a,b,c,d){return this.mutate(e=>{let f=e.conversations[aP(e,a)],g=f?.migration;if(!f||!g)throw Error("conversation has no migration");if(g.revision!==b||g.operationId!==c)throw Error("migration provider receipt is stale");if("successor-starting"===g.phase){for(let a of[...new Set([...d.continuityPaths,d.path])])aH(f,a);return f.migration={...g,phase:"verifying",providerReceipt:d,updatedAt:aj()},f.updatedAt=aj(),ai(f)}let h=null!==g.providerReceipt&&(0,r.WB)(g.providerReceipt,d);if(("verifying"===g.phase||"committed"===g.phase)&&h)return ai(f);throw Error("migration provider receipt conflicts with durable state")})}recordConversationContinuityPath(a,b){return this.mutate(c=>{let d=aP(c,a),e=c.conversations[d];if(!e)throw Error("viewer conversation is unknown");return aJ(c,e,b),aH(e,b),e.updatedAt=aj(),ai(e)})}recordMigrationContinuityPath(a,b,c){return this.mutate(d=>{let e=aP(d,a),f=d.conversations[e];if(!f)throw Error("viewer conversation is unknown");aJ(d,f,b);let g=f.migration;if(g?.phase==="successor-starting"&&g.operationId===c.operationId&&g.revision===c.revision)aH(f,b);else!f.generations.some(a=>a.path===b)&&(f.continuityPaths.includes(b)||f.continuityPaths.push(b),f.abandonedContinuityPaths.includes(b)||f.abandonedContinuityPaths.push(b));return f.updatedAt=aj(),ai(f)})}markMigrationBoardProjects(a){0!==a.length&&this.mutate(b=>{let c=aj();for(let d of a){let a=b.conversations[aP(b,d.id)],e=a?.migration;a&&e&&"committed"===e.phase&&e.operationId===d.operationId&&(e.boardProject=d.project,e.boardOperationId=d.operationId,e.boardPlacementProject=d.project,e.updatedAt=c,a.updatedAt=c)}})}markMigrationBoardPlacementProjects(a){0!==a.length&&this.mutate(b=>{let c=aj();for(let d of a){let a=b.conversations[aP(b,d.id)],e=a?.migration;a&&e&&"committed"===e.phase&&e.operationId===d.operationId&&(e.boardPlacementProject=d.project,e.updatedAt=c,a.updatedAt=c)}})}retryConversationMigration(a,b){return this.mutate(c=>{let d=c.conversations[aP(c,a)],f=d?.migration;if(!d||!f)throw Error("conversation has no migration");if(void 0!==b&&f.revision!==b)throw Error("migration revision is stale");let g=c.migrationIntents[f.intentId];if(!g||"stopped"===g.state)throw Error("migration intent is inactive");let h=d.generations.at(-1);if(!h)throw Error("conversation has no source generation");let i=W(c,d,h,g);if("refused"===i.kind){let a=aj();return d.migration={...f,error:i.reason,updatedAt:a},d.updatedAt=a,ai(d)}return"complete"===g.state&&"failed-recoverable"===f.phase&&(g.state="draining",g.updatedAt=aj()),d.migration={...f,phase:N(c,d)?"waiting-turn":"requested",targetId:g.targetId,revision:g.revision,operationId:"codex-fork-outcome-unknown"===f.errorCode||f.revision===g.revision?f.operationId:e().randomUUID(),sourceGenerationId:h.id,successorLaunchProfile:f.revision===g.revision?f.successorLaunchProfile??null:null,providerReceipt:null,pendingContinuityPaths:"committed"===f.phase?[]:f.pendingContinuityPaths,boardProject:f.boardProject,boardOperationId:f.boardOperationId,boardPlacementProject:f.boardPlacementProject,error:null,errorCode:null,updatedAt:aj()},d.updatedAt=aj(),ai(d)})}commitSuccessor(a,b,c,d,e){return this.mutate(f=>{let g=f.conversations[aP(f,a)],h=g?.migration,i=e.operationId===d&&e.nativeId===b.id&&e.path===b.path&&(void 0===b.historyHash||e.historyHash===b.historyHash)&&(void 0===b.host||(0,j.isDeepStrictEqual)(e.host,b.host)),k=h?.providerReceipt!==null&&h?.providerReceipt!==void 0&&(0,r.WB)(h.providerReceipt,e);if(!g||!h||h.revision!==c||h.operationId!==d||h.targetId!==b.accountId||!k||!i)throw Error("migration succession ownership is stale");if("committed"===h.phase){let a=g.generations.at(-1);if(a?.id===b.id&&a.path===b.path)return ai(g);throw Error("migration succession is already committed")}if("verifying"!==h.phase)throw Error("migration succession is not ready to commit");let l=g.generations.at(-1);if(!l)throw Error("viewer conversation has no native generation");let m=aj();l.archivedAt=m;let n={...b,launchProfile:(0,r.Ui)(b.launchProfile??l.launchProfile),historyHash:b.historyHash??null,host:b.host??null,createdAt:m,archivedAt:null};g.generations.push(n),g.continuityPaths=g.continuityPaths.filter(a=>a!==n.path);let o=new Set(h.pendingContinuityPaths);return g.abandonedContinuityPaths=g.abandonedContinuityPaths.filter(a=>!o.has(a)),g.migration={...h,phase:"committed",updatedAt:aj()},g.updatedAt=aj(),Y(f,g,s.uK),f.conversationRevision[g.engine]+=1,f.engineRouting[g.engine].revision+=1,ai(g)})}setMigrationIntentState(a,b,c,d=s.JJ){return this.mutate(e=>{let f=e.migrationIntents[a];if(!f)throw Error("migration intent is unknown");if(void 0!==c&&f.revision!==c)throw Error("migration intent revision is stale");let g=new Set(Object.values(e.conversations).filter(a=>a.engine===f.engine).map(a=>a.generations.at(-1)?.path).filter(a=>!!a)),h=S(e,f.engine,g);if(f.state=b,f.stoppedAt="stopped"===b?aj():f.stoppedAt,f.updatedAt=aj(),"stopped"===b)for(let b of Object.values(e.conversations)){if(b.engine!==f.engine)continue;let c=b.generations.at(-1);if(e.engineRouting[b.engine].activeAccountId===f.targetId&&c?.accountId!==f.targetId&&(b.migrationOptOut={targetId:f.targetId,updatedAt:f.updatedAt},b.updatedAt=f.updatedAt),b.migration?.intentId===a&&"committed"!==b.migration.phase){if(X(e,b,f.updatedAt),"rolled-back"===b.migration.phase){for(let c of Object.values(e.heldDeliveries))aP(e,c.conversationId)===b.id&&_(e,c.id,a,d);continue}b.migration={...b.migration,phase:"rolled-back",error:null,errorCode:null,updatedAt:f.updatedAt},Y(e,b,d.slice(0,240))}}return U(e,f.engine,h,g),ai(f)})}autoBalancePolicy(a){return ai(this.readOnlySnapshot().autoBalance[a])}quotaObservations(a){return ai(Object.values(this.readOnlySnapshot().quotaObservations[a]))}recordQuotaObservation(a){this.mutate(b=>{b.quotaObservations[a.engine][a.accountId]=ai(a)})}recordQuotaEvaluation(a){return this.mutate(b=>{for(let c of a.observations)c.engine===a.engine&&(b.quotaObservations[a.engine][c.accountId]=c);let c=b.autoBalance[a.engine];c.lastCheckAt=a.now;let d=!1;if(a.signature)if(c.sustain&&c.sustain.signature===a.signature&&c.sustain.bootId===a.bootId){let b=Date.parse(c.sustain.firstAt);c.sustain.lastAt=a.now,(d=Number.isFinite(b)&&Date.parse(a.now)-b>=a.minimumGapMs)&&(c.sustain=null,c.lastTrigger=a.evidence??null)}else c.sustain={signature:a.signature,firstAt:a.now,lastAt:a.now,bootId:a.bootId};else c.sustain=null;return c.revision+=1,{sustained:d,routeRevision:b.engineRouting[a.engine].revision,policy:ai(c)}})}setAutoBalancePolicy(a,b,c){return this.mutate(d=>{let e=d.autoBalance[a];if(void 0!==c&&e.revision!==c)throw Error("automatic balance policy revision is stale");return e.enabled=b,b||(e.sustain=null),e.revision+=1,ai(e)})}recordAutoBalanceOutcome(a,b,c,d){return this.mutate(e=>{let f=e.autoBalance[a];return f.cooldownUntil=d,f.lastOutcome={at:aj(),kind:"complete"===b?"switched":"failed-partial"===b?"failed":"skipped",fromId:c?.sourceId??null,fromPercent:c?.sourcePercent??null,toId:c?.targetId??null,toPercent:c?.targetPercent??null,window:c?.sourceWindow??null,detail:"failed-partial"===b?"one or more sessions need operator recovery":null},f.lastTrigger=c,c&&(f.departed[c.sourceId]=aj()),f.revision+=1,ai(f)})}holdDelivery(a,b,c=null,d="text",f=[],g=null,h={},i={}){if("text"===d&&!b)throw Error("held delivery must contain at most 32000 characters");if("runtime-images"===d&&0===f.length)throw Error("runtime-images delivery requires image references");(0,G.h1)(b);let j=i.recoveryIntent??null;return this.mutate(i=>{let k=aD(i,a,b,c,g,h),{canonicalId:l,existing:m,requestDigest:n}=k;if(k.supersededFailed){let a=i.heldDeliveries[k.supersededFailed.id];a&&(a.clientMessageId=null)}let o=i.conversations[l],p=new Set([o?.generations.at(-1)?.path].filter(a=>!!a)),q=o?S(i,o.engine,p):"",r=o?.migration&&["waiting-turn","requested","preparing","successor-starting","verifying"].includes(o.migration.phase),s=o?.generations.at(-1),t=a=>("delivered"===a.state||aC(i,a)?ax(i,a):(a.deliveredAt=null,a.error=null,j&&(a.recoveryIntent=j),r?(a.state="held",a.generationId=null,a.assignedAt=null):s?(a.state="assigned",a.generationId=s.id,a.assignedAt=aj()):(a.state="failed",a.generationId=null,a.assignedAt=null,a.error="delivery target is unavailable and remains recoverable"),ax(i,a),o&&U(i,o.engine,q,p)),ai(a));if(m)return m.error===at?ai(m):t(m);let u=aE(k,b,c,d,f,g);if(u)return u;let v=e().randomUUID(),w={id:v,conversationId:l,runtimeConversationId:l,text:b,createdAt:aj(),clientMessageId:c,payloadKind:d,runtimeImages:f.map(a=>({...a})),contentDigest:g,artifactPaths:[],command:ar(h,v),requestDigest:n,recoveryIntent:j,state:"held",generationId:null,attempts:0,assignedAt:null,deliveredAt:null,error:null};if(aF(i,l,this.now()),Object.values(i.heldDeliveries).filter(a=>a.conversationId===l&&["held","assigned","delivery-uncertain"].includes(a.state)).length>=100)throw Error("held delivery limit reached for conversation");return i.heldDeliveries[w.id]=w,i.deliveryOperationOwners[w.command.operationId]??={conversationId:l,runtimeConversationId:w.runtimeConversationId,clientMessageId:c,deliveryId:w.id,command:w.command,requestDigest:w.requestDigest,contentDigest:w.contentDigest,createdAt:w.createdAt,retryOfOperationId:null,terminalState:null,terminalDisposition:null,terminalReason:null,settledAt:null},t(w)})}preflightDeliveryReservation(a,b,c,d,e,f,g={}){return aE(aD(this.readOnlySnapshot(),a,b,c,f,g),b,c,d,e,f)}pendingDeliveries(a){let b=this.readOnlySnapshot(),c=aP(b,a);return ai(Object.values(b.heldDeliveries).filter(a=>a.conversationId===c&&"delivered"!==a.state).sort((a,b)=>a.createdAt.localeCompare(b.createdAt)||a.id.localeCompare(b.id)))}terminalizeHeldDelivery(a,b){return this.mutate(c=>{let d=c.heldDeliveries[a];if(!d)throw Error("held delivery is unknown");return"delivered"!==d.state&&Z(c,d,b),ai(d)})}drainDeadSupersededHeldDeliveries(){let a=this.readOnlySnapshot(),b=Object.values(a.heldDeliveries).filter(b=>$(a,b,this.ownerAlive)).map(a=>a.id);return 0===b.length?[]:this.mutate(a=>b.flatMap(b=>{let c=a.heldDeliveries[b];return c&&$(a,c,this.ownerAlive)?(Z(a,c,"delivery expired because its superseded target session is dead"),aF(a,c.conversationId,this.now()),[b]):[]}))}terminalizeRolledBackMigrationDelivery(a,b,c){return this.mutate(d=>_(d,a,b,c))}compactDeliveryReservations(){return this.mutate(a=>aF(a,void 0,this.now()))}queueSuccessorCleanup(a,b){this.mutate(c=>{let d=c.pendingSuccessorCleanups[b.operationId];c.pendingSuccessorCleanups[b.operationId]=d??{conversationId:aP(c,a),receipt:b,createdAt:aj(),lastError:null}})}recordSuccessorCleanupFailure(a,b){this.mutate(c=>{let d=c.pendingSuccessorCleanups[a];d&&(d.lastError=b.slice(0,240))})}completeSuccessorCleanup(a){this.mutate(b=>{delete b.pendingSuccessorCleanups[a]})}beginDeliveryAttempt(a,b){return this.mutate(c=>{let d=c.heldDeliveries[a];if(!d||"assigned"!==d.state||d.generationId!==b)return null;let e=c.conversations[aP(c,d.conversationId)],f=new Set([e?.generations.at(-1)?.path].filter(a=>!!a)),g=e?S(c,e.engine,f):"";return e?.migration&&["waiting-turn","requested","preparing","successor-starting","verifying"].includes(e.migration.phase)||e?.generations.at(-1)?.id!==b?null:(d.state="delivery-uncertain",d.attempts+=1,d.error="delivery started; recovery requires an explicit outcome",ax(c,d),e&&U(c,e.engine,g,f),ai(d))})}recordDeliveryArtifacts(a,b){return this.mutate(c=>{let d=c.heldDeliveries[a];if(!d)throw Error("held delivery is unknown");if("delivery-uncertain"!==d.state)throw Error("delivery attempt has not started");return d.artifactPaths=[...new Set(b)],ai(d)})}restoreSnapshot(a,b){(0,n.oV)(()=>this.mutate(c=>{Object.assign(c,function a(b,c,d){if(JSON.stringify(c)===JSON.stringify(d))return b;if(JSON.stringify(b)===JSON.stringify(c))return void 0===d?void 0:ai(d);if(b&&c&&d&&"object"==typeof b&&"object"==typeof c&&"object"==typeof d&&!Array.isArray(b)&&!Array.isArray(c)&&!Array.isArray(d)){let e={...b};for(let f of new Set([...Object.keys(c),...Object.keys(d)])){let g=a(b[f],c[f],d[f]);void 0===g?delete e[f]:e[f]=g}return e}return b}(c,a,b))}))}recordDeliveryRetryAttempt(a,b){return!!b&&b!==a&&this.mutate(c=>{if(c.deliveryOperationOwners[b])return!0;let d=c.deliveryOperationOwners[a],e=d?c.heldDeliveries[d.deliveryId]:Object.values(c.heldDeliveries).find(b=>b.command.operationId===a),f=d??(e?{conversationId:e.conversationId,runtimeConversationId:e.runtimeConversationId,clientMessageId:e.clientMessageId,deliveryId:e.id,command:e.command,requestDigest:e.requestDigest??"",contentDigest:e.contentDigest}:null);return!!f?.requestDigest&&(c.deliveryOperationOwners[b]={conversationId:f.conversationId,runtimeConversationId:f.runtimeConversationId,clientMessageId:f.clientMessageId,deliveryId:f.deliveryId,command:{...f.command,operationId:b},requestDigest:f.requestDigest,contentDigest:f.contentDigest,createdAt:aj(),retryOfOperationId:a,terminalState:null,terminalDisposition:null,terminalReason:null,settledAt:null},!0)})}settleDeliveryRetryAttempt(a,b,c=null,d){return this.mutate(e=>{let f=e.deliveryOperationOwners[a];return f?.retryOfOperationId&&null===f.terminalState?(f.terminalState=b,f.terminalDisposition="delivered"===b?"delivered":d??null,f.terminalReason=c?.slice(0,240)??null,f.settledAt=aj(),ai(f)):f?ai(f):null})}recordDeliveryOutcome(a,b,c=null,d){return this.mutate(e=>{let f=e.heldDeliveries[a];if(!f)throw Error("held delivery is unknown");if("delivered"===f.state||aw(f))return ai(f);let g=e.conversations[aP(e,f.conversationId)],h=new Set([g?.generations.at(-1)?.path].filter(a=>!!a)),i=g?S(e,g.engine,h):"";f.state=b,f.deliveredAt="delivered"===b?aj():null,f.error=c?.slice(0,240)??null,"delivered"===b&&(f.text=""),"failed"===b&&aA(e,f),g&&U(e,g.engine,i,h),ax(e,f,d);let j=ai(f);return("delivered"===b||"failed"===b)&&aF(e,f.conversationId,this.now()),j})}recordDeliveryOutcomeForOperation(a,b,c,d=null,e){return this.recordDeliveryOutcomesForOperations([{conversationId:a,operationId:b,state:c,error:d,...e?{disposition:e}:{}}])[0]??null}recordDeliveryOutcomesForOperations(a){return this.mutate(b=>{let c=(a,c)=>`${aP(b,a)}\u0000${c}`,d=new Map;for(let a of Object.values(b.heldDeliveries)){let b=c(a.conversationId,a.command.operationId);d.has(b)||d.set(b,a)}let e=new Set,f=a.map(a=>{let f=aP(b,a.conversationId),g=d.get(c(f,a.operationId));if(!g||"delivered"===g.state)return g?ai(g):null;let h="failed"===g.state&&"delivered"===a.state&&!aw(g);if("delivery-uncertain"!==g.state&&!h)return null;let i=b.conversations[f],j=new Set([i?.generations.at(-1)?.path].filter(a=>!!a)),k=i?S(b,i.engine,j):"";return g.state=a.state,g.deliveredAt="delivered"===a.state?aj():null,g.error=a.error?.slice(0,240)??null,"delivered"===a.state&&(g.text=""),"failed"===a.state&&aA(b,g),i&&U(b,i.engine,k,j),ax(b,g,a.disposition),e.add(g.conversationId),ai(g)});for(let a of e)aF(b,a,this.now());return f})}discardDelivery(a){this.mutate(b=>{let c=b.heldDeliveries[a],d=c?b.conversations[aP(b,c.conversationId)]:void 0,e=new Set([d?.generations.at(-1)?.path].filter(a=>!!a)),f=d?S(b,d.engine,e):"";if(c){let a=b.deliveryOperationOwners[c.command.operationId];0===c.attempts&&a?.deliveryId===c.id&&delete b.deliveryOperationOwners[c.command.operationId]}delete b.heldDeliveries[a],d&&U(b,d.engine,f,e)})}requeueHeldDelivery(a){return this.placeDeliveryForRetry(a,!1)}retryUncertainDelivery(a){return this.placeDeliveryForRetry(a,!0)}retryUncertainDeliveryForOperation(a){return this.mutate(b=>{let c=b.deliveryOperationOwners[a],d=c?b.heldDeliveries[c.deliveryId]:Object.values(b.heldDeliveries).find(b=>b.command.operationId===a);if(!d||d.command.operationId!==a)return null;let e="failed"===d.state&&c?.terminalDisposition==="unverified";return"delivery-uncertain"===d.state||e?(e&&(d.state="delivery-uncertain"),ai(ay(b,d,!0))):ai(d)})}discardDeliveryForOperation(a,b,c,d){return this.mutate(e=>{let f=aP(e,a),g=e.deliveryOperationOwners[b],h=g?e.heldDeliveries[g.deliveryId]:Object.values(e.heldDeliveries).find(a=>a.command.operationId===b&&aP(e,a.conversationId)===f);if(!h||h.command.operationId!==b||aP(e,h.conversationId)!==f)return null;if("delivered"===h.state)return ai(h);if("held"!==h.state&&"assigned"!==h.state&&"delivery-uncertain"!==h.state&&("failed"!==h.state||h.error!==c&&g?.terminalDisposition!=="unverified"))return null;let i=e.conversations[f],j=new Set([i?.generations.at(-1)?.path].filter(a=>!!a)),k=i?S(e,i.engine,j):"";return h.state="failed",h.text="",h.generationId=null,h.assignedAt=null,h.deliveredAt=null,h.error=c.slice(0,240),aA(e,h),ax(e,h,d),i&&U(e,i.engine,k,j),aF(e,h.conversationId,this.now()),ai(h)})}requeueUnactuatedDelivery(a){return this.placeDeliveryForRetry(a,!0)}placeDeliveryForRetry(a,b){return this.mutate(c=>{let d=c.heldDeliveries[a];if(!d)throw Error("held delivery is unknown");return ai(ay(c,d,b))})}rollbackConversationMigration(a,b){return this.mutate(c=>{let d=aP(c,a),e=c.conversations[d];if(!e?.migration)throw Error("conversation has no migration");if(void 0!==b&&e.migration.revision!==b)throw Error("migration revision is stale");let f=new Set([e.generations.at(-1)?.path].filter(a=>!!a)),g=S(c,e.engine,f),h=aj();X(c,e,h),c.engineRouting[e.engine].activeAccountId===e.migration.targetId&&(e.migrationOptOut={targetId:e.migration.targetId,updatedAt:h});let i=e.generations.at(-1);for(let a of Object.values(c.heldDeliveries))if(a.conversationId===e.id&&"delivered"!==a.state&&"failed"!==a.state){if(!i||"delivery-uncertain"===a.state){Z(c,a,s.Mi);continue}a.state="assigned",a.generationId=i.id,a.assignedAt=h,a.deliveredAt=null,a.error=null,ax(c,a)}return e.migration={...e.migration,phase:"rolled-back",error:null,errorCode:null,updatedAt:h},e.updatedAt=h,U(c,e.engine,g,f),ai(e)})}clearRolledBackConversationMigration(a,b){return this.mutate(c=>{let d=c.conversations[aP(c,a)],e=d?.migration;return!(!d||!e||"rolled-back"!==e.phase||e.intentId!==b||Object.values(c.heldDeliveries).some(a=>aP(c,a.conversationId)===d.id&&["held","assigned","delivery-uncertain"].includes(a.state)))&&(d.migration=null,d.updatedAt=aj(),c.conversationRevision[d.engine]+=1,!0)})}}let bg=process;function bh(){return bg.__llvAgentRegistry??=new bf(void 0,void 0,void 0,{resolveBackendIdentity:!0}),bg.__llvAgentRegistry}},74085:(a,b,c)=>{c.d(b,{DD:()=>l,Oy:()=>m});var d=c(88623),e=c(57718);let f="identity-wave-a-d-913";function g(a,b){if(!b.startsWith("conversation_"))return null;let c=b,d=new Set;for(;a.conversationAliases[c]&&!d.has(c);)d.add(c),c=a.conversationAliases[c];return d.has(c)?null:c}function h(a){if("string"!=typeof a)return null;let b=a.split(/\r?\n/).find(a=>a.trim());return(0,e.tU)(b,120)}function i(a){return"string"==typeof a&&null===(0,e.tU)(a)}function j(a){if("failed"===a.kind)throw a.error;return"found"===a.kind?a.value:null}function k(a,b,c){a.path===b&&(a.path=c),a.continuityPaths=[...new Set(a.continuityPaths.map(a=>a===b?c:a))]}function l(a,b,c){let e=b.conversationId?g(a,b.conversationId):null,f=e?a.conversations[e]:null;if(!e||!f)return{changed:!1,engine:null};let h=b.predecessorConversationId?g(a,b.predecessorConversationId):null,i=h&&h!==e?a.conversations[h]:null,j=!!h&&!!i&&function(a,b,c){let d=new Set,e=c;for(;e;){if(e===b||d.has(e))return!0;d.add(e);let c=a.lineageEdges[e]?.parentConversationId;e=c?g(a,c):null}return!1}(a,e,h),k=j?null:h,l=j?null:i,m=a.memberships[e]??=[],n=!1;if(m.some(a=>"orchestrator"===a.kind&&a.containerId===b.project&&a.slot===`seat:${b.seatEpoch}`)||(m.push({conversationId:e,kind:"orchestrator",containerId:b.project,role:"orchestrator",slot:`seat:${b.seatEpoch}`,stageId:null,stageOrder:null,round:null,parentConversationId:l?k:null,runtime:null,createdAt:c}),n=!0),"orchestrator"!==f.agentRole&&(f.agentRole="orchestrator",n=!0),0!==f.delegationDepth&&(f.delegationDepth=0,n=!0),l&&!a.lineageEdges[e]){let b=f.generations.at(-1),g=l.generations.at(-1),h={childConversationId:e,parentConversationId:k,childSessionKey:b?(0,d.sz)(f.engine,b.path):null,parentSessionKey:g?(0,d.sz)(l.engine,g.path):null,childArtifactPath:b?.path??null,parentArtifactPath:g?.path??null,kind:"spawn",role:"orchestrator",reviewsConversationId:null,source:"viewer-spawn",evidence:{launchId:null,clientAttemptId:null,parentSource:null},createdAt:c};a.lineageEdges[e]=h,n=!0}return n&&(f.updatedAt=c),{changed:n,engine:f.engine}}function m(a,b){let c=!0===b.dryRun,d=c?structuredClone(a):a;if(d.identityMigrations[f])return{dryRun:c,alreadyCompleted:!0,retitled:0,rekeyed:0,quarantinedRekeys:0,edgesStamped:0};let m=function(a){let b=new Map;for(let c of Object.values(a.receipts).sort((a,b)=>a.createdAt.localeCompare(b.createdAt)).sort((a,b)=>Number("launch"===b.purpose)-Number("launch"===a.purpose))){let d=g(a,c.conversationId),e=h(c.launchDisplay?.prompt);d&&e&&!b.has(d)&&b.set(d,e)}return b}(d),n=function(a,b){let c=new Map;for(let d of Object.values(a.conversations)){if(!d.generations.at(-1))continue;let f=function(a){for(let b=a.generations.length-1;b>=0;b-=1){let c=(0,e.St)(a.generations[b].launchProfile.title);if(c)return c}return null}(d),h=function(a,b){if(b.generations.some(a=>i(a.launchProfile.title)))return!0;let c=new Set(b.generations.map(a=>a.path));return!!Object.values(a.entries).some(a=>c.has(a.artifactPath)&&i(a.launchProfile?.title))||Object.values(a.receipts).some(c=>g(a,c.conversationId)===b.id&&i(c.launchProfile.title))}(a,d),k=d.generations.flatMap(a=>{let c=j(function(a,b){try{let c=a.sharedPathForLegacy(b);if(!c||c.sharedPath===b)return{kind:"absent"};return{kind:"found",value:c}}catch(a){return{kind:"failed",error:a}}}(b,a.path));return c?[{legacyPath:a.path,...c}]:[]});c.set(d.id,{conversationTitle:f,needsTitleCleanup:h,pathRekeys:k,transcriptTitle:null})}return c}(d,b),o=function(a,b){let c=new Map,d=new Map,e=new Map,f=(a,b,c)=>{let d=a.get(b)??new Set;d.add(c),a.set(b,d)};for(let b of Object.values(a.conversations)){for(let a of b.generations)f(c,a.path,b.id),f(d,a.path,b.id),f(e,`${b.engine}:${a.id}`,b.id);for(let a of b.continuityPaths)f(c,a,b.id)}for(let b of Object.values(a.receipts))b.artifactPath&&f(c,b.artifactPath,g(a,b.conversationId)??`receipt:${b.launchId}`);for(let b of Object.values(a.entries)){let a=e.get(`${b.key.engine}:${b.key.sessionId}`);if(a?.size)for(let d of a)f(c,b.artifactPath,d);else f(c,b.artifactPath,`entry:${b.key.engine}:${b.key.sessionId}`)}let h=new Map,i=[],j=0;for(let[a,e]of b){let b=[];for(let f of e.pathRekeys){if(!f.identityEquivalent){j+=1;continue}let e=c.get(f.sharedPath),g=c.get(f.legacyPath),k=d.get(f.sharedPath),l=h.get(f.sharedPath);if(!g||1!==g.size||!g.has(a)||e&&[...e].some(b=>b!==a)||k&&f.sharedPath!==f.legacyPath||l&&l!==f.legacyPath){j+=1;continue}h.set(f.sharedPath,f.legacyPath),b.push(f),i.push({legacyPath:f.legacyPath,sharedPath:f.sharedPath})}e.pathRekeys=b}return{rekeys:i,quarantined:j}}(d,n);for(let a of Object.values(d.conversations)){let c=a.generations.at(-1),d=n.get(a.id);if(!c||!d?.needsTitleCleanup||null!==d.conversationTitle||m.has(a.id))continue;let e=d.pathRekeys.find(a=>a.legacyPath===c.path)?.sharedPath??c.path;d.transcriptTitle=j(function(a,b,c){try{let d=h(a.transcriptTitle(b,c));return d?{kind:"found",value:d}:{kind:"absent"}}catch(a){return{kind:"failed",error:a}}}(b,e,a.engine))}!c&&o.rekeys.length>0&&b.commitExternalPathRekeys?.(o.rekeys);let p=new Set,q=0,r=0,s=0;for(let a of Object.values(d.conversations)){if(!a.generations.at(-1))continue;let c=!1,e=n.get(a.id),f=e?.pathRekeys??[];if(f.length>0){for(let{legacyPath:b,sharedPath:c}of f){for(let d of(a.continuityPaths.includes(b)||a.continuityPaths.push(b),a.continuityPaths=a.continuityPaths.filter(a=>a!==c),a.generations))d.path===b&&(d.path=c);!function(a,b,c){for(let d of Object.values(a.entries))d.artifactPath===b&&(d.artifactPath=c);for(let d of Object.values(a.receipts))d.artifactPath===b&&(d.artifactPath=c),d.resumeSourcePath===b&&(d.resumeSourcePath=c);for(let d of Object.values(a.lineageEdges))d.childArtifactPath===b&&(d.childArtifactPath=c),d.parentArtifactPath===b&&(d.parentArtifactPath=c);for(let d of Object.values(a.heldDeliveries))d.artifactPaths=[...new Set(d.artifactPaths.map(a=>a===b?c:a))];for(let d of Object.values(a.conversations)){let a=d.migration;a&&(a.providerReceipt&&k(a.providerReceipt,b,c),a.pendingContinuityPaths=[...new Set(a.pendingContinuityPaths.map(a=>a===b?c:a))])}for(let d of Object.values(a.pendingSuccessorCleanups))k(d.receipt,b,c);let d=a.legacyResumePanes.panes[b];d&&(a.legacyResumePanes.panes[c]??=d,delete a.legacyResumePanes.panes[b])}(d,b,c)}r+=1,c=!0}if(e?.needsTitleCleanup){let b=e.conversationTitle??m.get(a.id)??e?.transcriptTitle??null;for(let c of a.generations)i(c.launchProfile.title)&&(c.launchProfile.title=b);let f=new Set(a.generations.map(a=>a.path));for(let a of Object.values(d.entries))f.has(a.artifactPath)&&a.launchProfile&&i(a.launchProfile.title)&&(a.launchProfile.title=b);for(let c of Object.values(d.receipts))g(d,c.conversationId)===a.id&&i(c.launchProfile.title)&&(c.launchProfile.title=b,b&&(c.identityWaveTitleBackfill=!0));b&&(q+=1),c=!0}c&&(a.updatedAt=b.now,p.add(a.engine))}for(let a of b.orchestratorSeats){let c=l(d,a,a.activatedAt??a.designatedAt??b.now),e=c.engine?{changed:!1,engine:null}:function(a,b){let c=b.conversationId?g(a,b.conversationId):null;if(!c||a.conversations[c])return{changed:!1,engine:null};let d=Object.values(a.receipts).find(b=>g(a,b.conversationId)===c);if(!d)return{changed:!1,engine:null};let e={project:b.project,seatEpoch:b.seatEpoch,conversationId:c,predecessorConversationId:b.predecessorConversationId?g(a,b.predecessorConversationId):null,designatedAt:b.designatedAt,activatedAt:b.activatedAt,path:b.path??null};return JSON.stringify(d.pendingOrchestratorSeatIdentity)===JSON.stringify(e)?{changed:!1,engine:d.engine}:(d.pendingOrchestratorSeatIdentity=e,{changed:!0,engine:d.engine})}(d,a),f=c.changed||e.changed,h=c.engine??e.engine;f&&h&&(s+=1,p.add(h))}for(let a of p)d.conversationRevision[a]+=1;return c||(d.identityMigrations[f]={completedAt:b.now,retitled:q,rekeyed:r,quarantinedRekeys:o.quarantined,edgesStamped:s}),{dryRun:c,alreadyCompleted:!1,retitled:q,rekeyed:r,quarantinedRekeys:o.quarantined,edgesStamped:s}}},82093:(a,b,c)=>{c.d(b,{AY:()=>l,BD:()=>e,JJ:()=>f,Mi:()=>g,bj:()=>i,fz:()=>d,uK:()=>h,xc:()=>k});let d=3e5,e="delivery cancelled because",f=`${e} its owning account migration was stopped; send again to authorize a fresh delivery`,g=`${e} its owning account migration was rolled back; send again to authorize a fresh delivery`,h=`${e} its owning account migration committed; send again to authorize a fresh delivery action`;function i(a,b){let c=Date.parse(b),d=Date.parse(a.assignedAt??a.createdAt);return Number.isFinite(c)&&Number.isFinite(d)&&d<c}function j(a){let b=Date.parse(a);return Number.isFinite(b)?b:0}function k(a,b,c){return"draining"===b.state&&a.engineRouting[b.engine].activeAccountId===b.targetId&&!l(a,b,c)}function l(a,b,c){let e=function(a,b){let c=j(b.updatedAt);for(let d of Object.values(a.conversations))d.migration?.intentId===b.id&&"requested"!==d.migration.phase&&"waiting-turn"!==d.migration.phase&&(c=Math.max(c,j(d.migration.updatedAt)));return c}(a,b);return e>c||c-e>=d}},88858:(a,b,c)=>{c.d(b,{S:()=>e,n:()=>f});let d=/^[A-Za-z0-9_.:-]{1,64}$/;function e(a){return"string"==typeof a&&d.test(a)?a:void 0}function f(a){if(!a||"object"!=typeof a||Array.isArray(a)||"operator"!==a.kind&&"agent"!==a.kind)return null;let b="agent"===a.kind?e(a.role):void 0;return{kind:a.kind,...b?{role:b}:{}}}},93151:(a,b,c)=>{c.d(b,{Dc:()=>r,EB:()=>m,Ej:()=>q,KL:()=>o});var d=c(77598),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g);let i="LLV_AGENT_REGISTRY_SQLITE";class j extends Error{constructor(...a){super(...a),this.name="RegistryBackendIdentityError"}}let k={readText(a){try{return f().readFileSync(a,"utf8")}catch(b){if("ENOENT"===b.code)return null;throw new j(`${h().basename(a)} is unreadable: ${b.code??"unknown error"}`)}},exists:a=>f().existsSync(a),writeText(a,b){f().mkdirSync(h().dirname(a),{recursive:!0,mode:448});let c=`${a}.${process.pid}.${(0,d.randomUUID)()}.tmp`,e=f().openSync(c,"wx",384);try{f().writeFileSync(e,b),f().fsyncSync(e)}finally{f().closeSync(e)}f().renameSync(c,a)}};function l(a){let b=h().basename(a).replace(/\.json$/,"");return h().join(h().dirname(a),`${b}.backend.json`)}function m(a){return a.endsWith(".json")?`${a.slice(0,-5)}.sqlite`:`${a}.sqlite`}function n(a){return"off"===a||"dual-write"===a||"read"===a||"sqlite"===a}function o(a=process.env){let b=a[i]??"off";if(n(b))return b;throw Error(`${i} must be off, dual-write, read, or sqlite`)}function p(a,b){let c;try{c=JSON.parse(a)}catch{throw new j(`${b} is not valid JSON`)}if(!c||"object"!=typeof c||Array.isArray(c))throw new j(`${b} is not an object`);let d=c;if(1!==d.schemaVersion)throw new j(`${b} declares schema version ${String(d.schemaVersion)}, but this build understands 1`);if(!n(d.mode))throw new j(`${b} declares an unknown backend mode`);let e=d.sqliteFile;if(null!==e&&"string"!=typeof e)throw new j(`${b} declares an invalid store filename`);if("string"==typeof e&&(""===e||e!==h().basename(e)))throw new j(`${b} must name its store as a bare filename`);if("off"!==d.mode&&null===e)throw new j(`${b} declares the ${d.mode} backend but names no store`);return{schemaVersion:1,mode:d.mode,sqliteFile:e??null,publishedAt:"string"==typeof d.publishedAt?d.publishedAt:""}}function q(a,b=process.env,c=k){if(void 0!==b[i])return{mode:o(b),sqliteFilename:null,source:"environment"};let d=l(a),e=h().basename(d),f=m(a),g=c.readText(d);if(null===g){if(c.exists(f))throw new j(`the agent registry backend identity is unpublished while ${h().basename(f)} exists, so SQLite may be authoritative and the JSON mirror may be stale; start the registry writer with ${i} set so it publishes ${e}`);return{mode:"off",sqliteFilename:null,source:"json-only"}}let n=p(g,e);if("off"===n.mode){if(c.exists(f))throw new j(`${e} claims the JSON backend while ${h().basename(f)} exists; remove the stale store or republish the descriptor from the writer`);return{mode:"off",sqliteFilename:null,source:"descriptor"}}let r=h().join(h().dirname(d),n.sqliteFile);if(!c.exists(r))throw new j(`${e} names the ${n.mode} backend store ${n.sqliteFile}, which is unavailable`);return{mode:n.mode,sqliteFilename:r,source:"descriptor"}}function r(a,b,c,d=k,e=()=>new Date().toISOString()){let f=l(a),g="off"===b?null:h().basename(c),i=d.readText(f);if(null!==i)try{let a=p(i,h().basename(f));if(a.mode===b&&a.sqliteFile===g)return}catch{}let j={schemaVersion:1,mode:b,sqliteFile:g,publishedAt:e()};d.writeText(f,`${JSON.stringify(j)}
|
|
55
|
-
`)}},99391:(a,b,c)=>{c.d(b,{Q:()=>l,g:()=>t});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(27146),k=c(14928);let l=7;function m(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function n(a){return"string"==typeof a&&a.trim()?a:null}function o(a,b){return Array.isArray(a)?[...new Set(a.flatMap(a=>{let c=n(m(a)?.[b]);return c?[c]:[]}))].sort():[]}function p(a){try{return JSON.parse(g().readFileSync(i().join((0,j.Pn)(),a),"utf8"))}catch{return null}}let q=["worktree-map.json","project-aliases.json"],r=null;function s(a,b){try{let c=g().statSync(i().join(a,b),{bigint:!0});return`${b}:${c.mtimeNs}:${c.size}`}catch{return`${b}:missing`}}function t(){let a=(0,j.Pn)(),b=function(a){let b=i().join(a,"state.sqlite"),c=[a],d=(0,k.Gw)(b,["flows","workflows"]);for(let[b,e]of[["flows","flows.json"],["workflows","workflows.json"]]){let f=d.get(b)??null;c.push(null===f?s(a,e):`${b}:sqlite:${f}`)}for(let b of q)c.push(s(a,b));return c.join("|")}(a);if(r?.signature===b)return r.key;let c=function(a){let b,c,d=e().createHash("sha1");d.update(a),d.update(`\0resolver-version\0${l}`);let f=i().join(a,"state.sqlite"),h=(0,k.M)(f,["flows","workflows"]),j=h.get("flows")??null,q=h.get("workflows")??null;d.update("\0flows\0"),d.update(JSON.stringify((b=m(null===j?p("flows.json"):{flows:j}))&&Array.isArray(b.flows)?b.flows.flatMap(a=>{let b=m(a),c=n(b?.project),d=n(b?.cwd);return b&&c&&d?[[c,d,n(b.implementerPath),o(b.rounds,"reviewerPath")]]:[]}):[])),d.update("\0workflows\0"),d.update(JSON.stringify((c=m(null===q?p("workflows.json"):{workflows:q}))&&Array.isArray(c.workflows)?c.workflows.flatMap(a=>{let b=m(a),c=n(b?.project),d=n(b?.repoDir),e=n(b?.worktreeDir);return b&&c&&(d||e)?[[c,d,e,o(b.stageRuns,"agentPath"),n(b.fixerPath)]]:[]}):[])),d.update("\0worktree-map.json\0");try{d.update(g().readFileSync(i().join(a,"worktree-map.json")))}catch{d.update("<missing>")}d.update("\0project-aliases.json\0");try{d.update(g().readFileSync(i().join(a,"project-aliases.json")))}catch{d.update("<missing>")}return d.digest("hex")}(a);return r={signature:b,key:c},c}}};
|
|
54
|
+
`).run(a,b)}secureFiles(){for(let a of[this.filename,`${this.filename}-wal`,`${this.filename}-shm`])g().existsSync(a)&&g().chmodSync(a,384)}storageSignature(){return[this.filename,`${this.filename}-wal`].map(a=>{try{let b=g().statSync(a,{bigint:!0});return`${b.dev}:${b.ino}:${b.size}:${b.mtimeNs}:${b.ctimeNs}`}catch(a){if("ENOENT"===a.code)return"missing";throw a}}).join("|")}rememberRevision(a){this.revisionCache={signature:this.storageSignature(),revision:a}}}var F=c(88858),G=c(47473),H=c(8292);let I="structured-host:";function J(a){if(!a.startsWith(I))return null;try{let b=JSON.parse(a.slice(I.length));return Number.isInteger(b.pid)&&b.pid>0?{pid:b.pid,startIdentity:"string"==typeof b.startIdentity?b.startIdentity:null,..."string"==typeof b.bootEpoch?{bootEpoch:b.bootEpoch}:{}}:null}catch{return null}}function K(a){return null!==a&&Number.isSafeInteger(a.pid)&&a.pid>0&&"string"==typeof a.startIdentity&&a.startIdentity.length>0&&"string"==typeof a.bootEpoch&&a.bootEpoch.length>0}class L extends Error{constructor(a,b){super(`Agent spawn limit reached: caller ${a} already has ${b} live children (cap: ${b}). Wait for a child to finish before spawning another helper.`),this.parentConversationId=a,this.cap=b,this.name="SpawnChildLimitError"}}let M=new Set(["waiting-turn","requested","preparing","successor-starting","verifying"]),N=new Set(["requested","waiting-turn"]);class O extends Error{constructor(a,b){super(b),this.successorConversationId=a,this.name="SupersedenceConflictError"}}function P(a){return(a.scope??"engine")==="engine"}function Q(a,b,c){if(R(a,b,c?.pendingDeliveryConversationIds)||(c?c.uncertainDeliveryConversationIds.has(b.id):Object.values(a.heldDeliveries).some(a=>a.conversationId===b.id&&"delivery-uncertain"===a.state)))return"busy";if(b.migration&&!["committed","rolled-back"].includes(b.migration.phase))return"idle";let d=b.generations.at(-1)?.path;return void 0!==d&&(c?c.activeHostPaths.has(d):Object.values(a.entries).some(a=>a.artifactPath===d&&["starting","live","idle","handoff"].includes(a.status)))||(c?c.pendingDeliveryConversationIds.has(b.id):Object.values(a.heldDeliveries).some(a=>a.conversationId===b.id&&"delivered"!==a.state))?"idle":"deferred"}function R(a,b,c){let d=b.generations.at(-1)?.path,e=c?c.has(b.id):Object.values(a.heldDeliveries).some(a=>a.conversationId===b.id&&"delivered"!==a.state),f="unknown"===b.turn.state&&"empty"===b.turn.source&&!!d&&!g().existsSync(d)&&!e;return"busy"===b.turn.state||"unknown"===b.turn.state&&!f}function S(a){let b=new Set,c=new Set;for(let d of Object.values(a.heldDeliveries))"delivery-uncertain"===d.state&&b.add(d.conversationId),"delivered"!==d.state&&c.add(d.conversationId);return{uncertainDeliveryConversationIds:b,pendingDeliveryConversationIds:c,activeHostPaths:new Set(Object.values(a.entries).filter(a=>["starting","live","idle","handoff"].includes(a.status)).map(a=>a.artifactPath).filter(a=>!!a))}}function T(a){return null===a||"committed"===a.phase||"rolled-back"===a.phase||("waiting-turn"===a.phase||"requested"===a.phase)&&null===a.providerReceipt}function U(a){return"resume-successor"===a.purpose&&"failed"!==a.state&&("completed"!==a.state||null===a.resumeSourcePath||a.artifactPath===a.resumeSourcePath)}let V={now:()=>Date.now(),wait:async a=>{await new Promise(b=>setTimeout(b,a))}};function W(a,b,c){let d=S(a);return JSON.stringify(Object.values(a.conversations).filter(a=>a.engine===b&&c.has(a.generations.at(-1)?.path??"")).map(b=>[b.id,Q(a,b,d)]).sort(([a],[b])=>a.localeCompare(b)))}function X(a,b,c){let d=a.entries[b],e=new Set([d?.artifactPath,c.artifactPath].filter(a=>!!a)),f=new Set(["starting","live","idle","handoff"]),g=(d,e)=>{for(let[g,h]of Object.entries(a.entries)){let a=e&&g===b?c:h;if(a.artifactPath===d&&f.has(a.status))return!0}return e&&!(b in a.entries)&&c.artifactPath===d&&f.has(c.status)};return new Set([...e].filter(a=>g(a,!1)!==g(a,!0)))}function Y(a,b,c,d){W(a,b,d)!==c&&(a.conversationRevision[b]+=1,a.engineRouting[b].revision+=1)}function Z(a,b,c,d,f){let g=a.migration?.boardProject??null,h=a.migration&&"committed"!==a.migration.phase?a.migration.pendingContinuityPaths:[];return{intentId:c.id,phase:d,targetId:c.targetId,revision:c.revision,error:null,errorCode:null,operationId:e().randomUUID(),sourceGenerationId:b.id,successorLaunchProfile:null,providerReceipt:null,pendingContinuityPaths:h,boardProject:g,boardOperationId:a.migration?.boardOperationId??null,boardPlacementProject:a.migration?.boardPlacementProject??g??a.projectOwnership?.project??b.launchProfile.project,updatedAt:f}}function $(a,b,c,d){if("auto"!==d.origin)return{kind:"accepted"};let e=(0,o.o)(b.projectOwnership,c.launchProfile);try{let f=(0,q.h)({project:e,engine:b.engine,targetId:d.targetId,model:c.launchProfile.model,observations:Object.values(a.quotaObservations[b.engine]),bindings:(0,p.$8)()});return"available"===f.kind?{kind:"accepted"}:{kind:"refused",reason:(0,p.ed)(f,b.engine,e??"")}}catch(a){return{kind:"refused",reason:a instanceof Error?a.message:String(a)}}}function _(a,b,c){let d=b.migration?.phase==="committed"?null:b.migration?.providerReceipt;d&&(a.pendingSuccessorCleanups[d.operationId]??={conversationId:b.id,receipt:d,createdAt:c,lastError:null})}function aa(a,b,c){for(let d of Object.values(a.heldDeliveries))d.conversationId===b.id&&"delivered"!==d.state&&"failed"!==d.state&&ab(a,d,c)}function ab(a,b,c){let d="delivery-uncertain"===b.state,e=d?`${c}; a prior delivery attempt may have been delivered because its journal outcome is unknown`:c;b.state="failed",b.text="",b.generationId=null,b.assignedAt=null,b.deliveredAt=null,b.error=e.slice(0,240),aK(a,b),aH(a,b,d?"unverified":"lost")}function ac(a,b,c){if("held"!==b.state)return!1;let d=a.conversations[aZ(a,b.conversationId)];if(!d?.supersededBy)return!1;let e=d.generations.at(-1);if(!e)return!1;let f=a.entries[(0,x.pp)({engine:d.engine,sessionId:e.id})];if(!f||f.host)return!1;let g=f.structuredHost?.process??null;if(g&&c(g)||!g&&"dead"!==f.status&&"unhosted"!==f.status)return!1;if(f.claimOwner){let a=J(f.claimOwner);if(!a||c(a))return!1}return!0}function ad(a,b,c,d){var e,f;let g,h=a.heldDeliveries[b];if(!h||!["held","assigned","delivery-uncertain"].includes(h.state))return null;let i=a.conversations[aZ(a,h.conversationId)],j=i?.migration;return!(!i||!j||"rolled-back"!==j.phase||j.intentId!==c||!af(a,i,h,j)||(e=i,f=h,g=e.reconfigure,"held"===f.state&&g?.status==="applying"&&g.keepsHeldFrom&&f.fencedBy===g.keepsHeldFrom))&&(0,s.bj)(h,j.updatedAt)?(ab(a,h,d),as(h)):null}function ae(a){return`reconfigure:${a.operationId}:${a.revision}`}function af(a,b,c,d){if("held"!==c.state||aZ(a,c.conversationId)!==b.id)return!1;if(c.fencedBy)return c.fencedBy===d.operationId;let e=a.migrationIntents[d.intentId],f=Date.parse(c.createdAt),g=e?Date.parse(e.createdAt):NaN;return e?.scope==="conversation"&&c.conversationId===b.id&&Number.isFinite(f)&&Number.isFinite(g)&&f>g}function ag(a,b,c,d){let e=b.generations.at(-1);if(e)for(let f of Object.values(a.heldDeliveries))(c.migration&&af(a,b,f,c.migration)||c.keptFrom&&"held"===f.state&&f.fencedBy===c.keptFrom&&aZ(a,f.conversationId)===b.id)&&(f.state="assigned",f.fencedBy=null,f.generationId=e.id,f.assignedAt=d,f.deliveredAt=null,f.error=null,aH(a,f))}function ah(a,b,c,d){for(let e of Object.values(a.heldDeliveries))e.fencedBy!==c&&(d.migration&&af(a,b,e,d.migration)||d.keptFrom&&"held"===e.state&&e.fencedBy===d.keptFrom&&aZ(a,e.conversationId)===b.id)&&(e.fencedBy=c)}function ai(a){return a.migration&&M.has(a.migration.phase)?{...a.migration}:null}function aj(a,b,c,d=null){let e=b.migration;e&&M.has(e.phase)&&(ah(a,b,e.operationId,{migration:c,keptFrom:d?.keepsHeldFrom??null}),d&&delete d.keepsHeldFrom)}function ak(a,b,c,d){let e=ai(b);e?ah(a,b,e.operationId,{keptFrom:c}):ag(a,b,{keptFrom:c},d)}function al(a,b,c,d="rearm"){let e=b.migration;if(!e||["committed","rolled-back","failed-recoverable"].includes(e.phase))return null;let f=a.migrationIntents[e.intentId],g=ae(c);if(f?.scope!=="conversation"||!f.requestIds.includes(g))return null;let h=at(),i=new Set([b.generations.at(-1)?.path].filter(a=>!!a)),j=W(a,b.engine,i);return"stopped"!==f.state&&(f.state="stopped",f.stoppedAt=h,f.updatedAt=h),_(a,b,h),aU(b),b.migration={...e,phase:"rolled-back",pendingContinuityPaths:[],error:null,errorCode:null,updatedAt:h},"rearm"===d?ag(a,b,{migration:e},h):ah(a,b,e.operationId,{migration:e}),b.updatedAt=h,Y(a,b.engine,j,i),e}class am extends Error{constructor(a,b){super("migration preview is stale"),this.expected=a,this.actual=b,this.name="MigrationRevisionError"}}class an extends Error{constructor(a="client message id is already reserved for another request"){super(a),this.name="DeliveryReservationConflictError"}}let ao="1970-01-01T00:00:00.000Z";function ap(a=at()){return{enabled:!0,revision:0,cooldownUntil:null,departed:{},lastOutcome:null,lastTrigger:null,lastCheckAt:null,sustain:null,restartedAt:a}}let aq={version:2,entries:{},receipts:{},lineageEdges:{},memberships:{},identityMigrations:{},importedResumePanes:!1,legacyResumePanes:{serverPid:null,panes:{}},conversations:{},conversationAliases:{},conversationRevision:{claude:0,codex:0},migrationIntents:{},engineRouting:{claude:{activeAccountId:null,revision:0},codex:{activeAccountId:null,revision:0}},autoBalance:{claude:ap(),codex:ap()},quotaObservations:{claude:{},codex:{}},heldDeliveries:{},deliveryOperationOwners:{},pendingSuccessorCleanups:{},pendingSupersedence:{}};class ar extends Error{}function as(a){return JSON.parse(JSON.stringify(a))}function at(){return new Date().toISOString()}let au=new Set(["starting","pane-bound","host-verified","prompt-delivered","path-pending"]),av=new Set(["starting","live","idle","handoff"]),aw=12e4;function ax(a){return i().basename(a).match(/([0-9a-f-]{36})(?:\.jsonl)?$/i)?.[1]??e().randomUUID()}function ay(a){if(!a||"object"!=typeof a||"codex-app-server"!==a.kind&&"claude-broker"!==a.kind)return null;let b=a.eventCursor;if(void 0!==b&&(!Number.isSafeInteger(b)||b<0))throw Error("structured host event cursor is invalid");let c=a.process&&"object"==typeof a.process&&"number"==typeof a.process.pid?{pid:a.process.pid,startIdentity:"string"==typeof a.process.startIdentity?a.process.startIdentity:null,..."string"==typeof a.process.bootEpoch?{bootEpoch:a.process.bootEpoch}:{}}:null;return{kind:a.kind,endpoint:"string"==typeof a.endpoint?a.endpoint:"",process:c,eventCursor:void 0===b?0:b,protocolVersion:"string"==typeof a.protocolVersion?a.protocolVersion:null,writerClaimEpoch:Number.isSafeInteger(a.writerClaimEpoch)&&(a.writerClaimEpoch??-1)>=0?a.writerClaimEpoch:0,activeTurnRef:"string"==typeof a.activeTurnRef?a.activeTurnRef:null,pendingAttention:Array.isArray(a.pendingAttention)?a.pendingAttention.filter(a=>"string"==typeof a):[],activeFlags:Array.isArray(a.activeFlags)?a.activeFlags.filter(a=>"string"==typeof a):[],...Number.isSafeInteger(a.releaseHandoffClaimEpoch)&&(a.releaseHandoffClaimEpoch??-1)>=0?{releaseHandoffClaimEpoch:a.releaseHandoffClaimEpoch}:{}}}function az(a){let b=ap(ao);return a&&"object"==typeof a?{...b,...a,departed:a.departed&&"object"==typeof a.departed?a.departed:{},lastOutcome:a.lastOutcome&&"object"==typeof a.lastOutcome?a.lastOutcome:null,sustain:a.sustain&&"object"==typeof a.sustain?a.sustain:null}:b}function aA(a,b,c,d){c.launchProfile=(0,r.Ui)({...c.launchProfile,...d});let e=a.entries[(0,x.pp)({engine:b.engine,sessionId:c.id})];e&&(e.launchProfile=(0,r.Ui)({...e.launchProfile??c.launchProfile,...d}),e.updatedAt=at()),b.updatedAt=at()}function aB(a,b){let c={operationId:a?.operationId||b,kind:a?.kind==="steer"?"steer":a?.kind==="inject"?"inject":"send",policy:a?.policy==="queue"||a?.policy==="steer-if-active"?a.policy:"interrupt-active"};(a?.turnId===null||"string"==typeof a?.turnId)&&(c.turnId=a.turnId);let d=(0,F.n)(a?.origin);return d&&(c.origin=d),c}function aC(a,b,c){let d=void 0===c.turnId?["absent"]:["present",c.turnId];return e().createHash("sha256").update(JSON.stringify(["held-delivery-request-v1",a,b,c.kind,c.policy,d])).digest("hex")}let aD="held delivery image references are corrupt; send the message again to re-admit its images";function aE(a){let b=a.state??"held",c="string"==typeof a.text?a.text:"",d=aB(a.command,a.id),e=c?aC(a.conversationId,c,d):null,f=a.payloadKind??"text",g=(0,G.kW)(a.runtimeImages??[],16),h="delivered"!==b&&(null===g||"runtime-images"===f&&(!Array.isArray(a.runtimeImages)||0===g.length));h&&(b="failed");let i=g??[],j="string"==typeof a.contentDigest?a.contentDigest:null;if(!j&&!h&&"delivered"!==b&&("text"===f||"runtime-images"===f))try{j=(0,G.rM)(c,i).contentDigest}catch{}return{...a,runtimeConversationId:"string"==typeof a.runtimeConversationId&&a.runtimeConversationId.startsWith("conversation_")?a.runtimeConversationId:a.conversationId,text:"delivered"===b?"":c,clientMessageId:a.clientMessageId??null,payloadKind:f,runtimeImages:i,contentDigest:j,artifactPaths:Array.isArray(a.artifactPaths)?a.artifactPaths.filter(a=>"string"==typeof a):[],command:d,requestDigest:"string"==typeof a.requestDigest?a.requestDigest:e,recoveryIntent:"reclaimed-host"===a.recoveryIntent?a.recoveryIntent:null,state:b,fencedBy:"held"===b&&"string"==typeof a.fencedBy?a.fencedBy:null,generationId:h?null:a.generationId??null,attempts:Number.isInteger(a.attempts)?a.attempts:0,assignedAt:h?null:a.assignedAt??null,deliveredAt:a.deliveredAt??null,error:h?aD:a.error??null}}function aF(a){return a?.state==="delivered"||a?.state==="failed"?a.state:null}function aG(a){return"failed"===a.state&&("delivery-discarded"===a.error||a.error?.startsWith(s.BD)===!0)}function aH(a,b,c){let d=a.deliveryOperationOwners[b.command.operationId];if(d?.deliveryId!==b.id)return;let e=aF(b);if(d.terminalState=e,null===e){d.terminalDisposition=null,d.terminalReason=null,d.settledAt=null;return}d.terminalDisposition="delivered"===e?"delivered":c??d.terminalDisposition??null,d.terminalReason=b.error??d.terminalReason??null,d.settledAt=b.deliveredAt??d.settledAt??at()}function aI(a,b,c){if("delivered"===b.state)return b;if("delivery-uncertain"===b.state&&!c)throw Error("uncertain delivery requires an explicit client retry");if(c&&"delivery-uncertain"!==b.state)throw Error("delivery outcome is already resolved");let d=a.conversations[aZ(a,b.conversationId)],e=new Set([d?.generations.at(-1)?.path].filter(a=>!!a)),f=d?W(a,d.engine,e):"";if(d?.migration&&["waiting-turn","requested","preparing","successor-starting","verifying"].includes(d.migration.phase))return b.state="held",b.fencedBy=d.migration.operationId,b.generationId=null,b.assignedAt=null,b.deliveredAt=null,b.error=null,aH(a,b),Y(a,d.engine,f,e),b;let g=d?.generations.at(-1);return g?(b.state="assigned",b.generationId=g.id,b.assignedAt=at(),b.deliveredAt=null,b.error=null,aH(a,b),Y(a,d.engine,f,e)):(b.state="failed",b.deliveredAt=null,b.error="delivery target is unavailable and remains recoverable",aH(a,b),d&&Y(a,d.engine,f,e)),b}function aJ(a,b){let c=b.clientMessageId;if(!c||!c.startsWith("spawn_"))return null;let d=c.slice(6);if(b.command.operationId!==`spawn_message_${d}`)return null;let e=a.receipts[d];return e&&"launch"===e.purpose&&aZ(a,e.conversationId)===aZ(a,b.conversationId)?e:null}function aK(a,b){if("failed"!==b.state)return;let c=aJ(a,b);!c||["completed","failed","conflicted"].includes(c.state)||(c.state="failed",c.error=b.error??"initial prompt delivery failed",c.admissionOwner=null)}function aL(a){let b=[];for(let c of Object.values(a.heldDeliveries)){let d=aJ(a,c);if(!d)continue;if("failed"===c.state&&!["completed","failed","conflicted"].includes(d.state)){let e=d.state;aK(a,c),d.state!==e&&b.push(c.id);continue}let e="failed"===d.state||"conflicted"===d.state,f=0===c.attempts&&("held"===c.state||"assigned"===c.state);e&&f&&(ab(a,c,"spawn failed before its initial message was delivered"),b.push(c.id))}return b}function aM(a,b){return"delivery-uncertain"===b.state||"failed"===b.state&&a.deliveryOperationOwners[b.command.operationId]?.terminalDisposition==="unverified"}function aN(a,b,c,d,e,f){let g=aZ(a,b),h=d?Object.values(a.heldDeliveries).find(b=>aZ(a,b.conversationId)===g&&b.clientMessageId===d):void 0,i=aB(f,h?.id??"pending-delivery"),j=aC(g,c,i),k=function(a,b,c,d){let e=new Set([b]);for(let c of Object.keys(a.conversationAliases))aZ(a,c)===b&&e.add(c);return new Set([...e].map(a=>aC(a,c,d)))}(a,g,c,i),l=!!(h?.requestDigest&&!k.has(h.requestDigest)||h?.contentDigest&&e&&e!==h.contentDigest),m=null;if(l){if("failed"!==h.state||h.error===aD)throw new an;m=h,h=void 0}let n=null;if(!h&&f.operationId){let b=Object.values(a.heldDeliveries).find(a=>a.command.operationId===i.operationId),c=a.deliveryOperationOwners[i.operationId]??(b?.requestDigest?{conversationId:b.conversationId,runtimeConversationId:b.runtimeConversationId,clientMessageId:b.clientMessageId,deliveryId:b.id,command:b.command,requestDigest:b.requestDigest,contentDigest:b.contentDigest,createdAt:b.createdAt,terminalState:aF(b)}:null),f=c&&aZ(a,c.conversationId)===g&&c.clientMessageId===d&&k.has(c.requestDigest)&&(!c.contentDigest||!e||c.contentDigest===e);if(c&&!f)throw new an("operation id is already reserved for another client message");f&&c.terminalState&&(n=as(c))}return{canonicalId:g,existing:h,requestDigest:j,terminalOperationRetry:n,supersededFailed:m}}function aO(a,b,c,d,e,f){if(a.existing?.state==="delivered"||a.existing?.error===aD)return as(a.existing);let g=a.terminalOperationRetry;return g?.terminalState?{id:g.deliveryId,conversationId:a.canonicalId,runtimeConversationId:g.runtimeConversationId,text:b,createdAt:g.createdAt,clientMessageId:c,payloadKind:d,runtimeImages:e.map(a=>({...a})),contentDigest:f,artifactPaths:[],command:g.command,requestDigest:g.requestDigest,state:g.terminalState,generationId:null,attempts:0,assignedAt:null,deliveredAt:"delivered"===g.terminalState?g.createdAt:null,error:"failed"===g.terminalState?"delivery failed":null}:null}function aP(a,b,c){for(let b of Object.values(a.heldDeliveries))b.requestDigest&&(a.deliveryOperationOwners[b.command.operationId]??={conversationId:b.conversationId,runtimeConversationId:b.runtimeConversationId,clientMessageId:b.clientMessageId,deliveryId:b.id,command:b.command,requestDigest:b.requestDigest,contentDigest:b.contentDigest,createdAt:b.createdAt,retryOfOperationId:null,terminalState:null,terminalDisposition:null,terminalReason:null,settledAt:null},aH(a,b));let d=new Map,e=new Map;for(let c of Object.values(a.heldDeliveries)){let f=aZ(a,c.conversationId);if(!b||f===aZ(a,b)){if("delivered"===c.state){c.text="";let a=d.get(f)??[];a.push(c),d.set(f,a)}else if("failed"===c.state&&!c.error?.startsWith(s.BD)){let a=e.get(f)??[];a.push(c),e.set(f,a)}}}let f=0;for(let b of[d,e])for(let[d,e]of b){let g=[];for(let b of e)!function(a,b){if(void 0===b)return!1;let c=Date.parse(a.deliveredAt??a.createdAt);return Number.isFinite(c)&&b-c>6048e5}(b,c)?g.push(b):(delete a.heldDeliveries[b.id],f+=1);b.set(d,g)}for(let b of d.values())for(let c of(b.sort((a,b)=>(b.deliveredAt??b.createdAt).localeCompare(a.deliveredAt??a.createdAt)||b.id.localeCompare(a.id)),b.slice(100)))delete a.heldDeliveries[c.id],f+=1;for(let[b,c]of e){let d=Math.max(0,Math.min(50,99-Object.values(a.heldDeliveries).filter(c=>aZ(a,c.conversationId)===b&&["held","assigned","delivery-uncertain"].includes(c.state)).length));for(let b of(c.sort((a,b)=>b.createdAt.localeCompare(a.createdAt)||b.id.localeCompare(a.id)),c.slice(d)))delete a.heldDeliveries[b.id],f+=1}let g=new Map;for(let[c,d]of Object.entries(a.deliveryOperationOwners)){if(null===d.terminalState)continue;let e=aZ(a,d.conversationId);if(b&&e!==aZ(a,b))continue;let f=g.get(e)??[];f.push([c,d]),g.set(e,f)}for(let b of g.values())for(let[c]of(b.sort(([a,b],[c,d])=>Number("unverified"===d.terminalDisposition)-Number("unverified"===b.terminalDisposition)||d.createdAt.localeCompare(b.createdAt)||c.localeCompare(a)),b.slice(200)))delete a.deliveryOperationOwners[c];return f}function aQ(a,b){return a.generations.some(a=>a.path===b)||a.continuityPaths.includes(b)}function aR(a,b){a.generations.some(a=>a.path===b)||(a.continuityPaths.includes(b)||a.continuityPaths.push(b),a.migration&&"committed"!==a.migration.phase&&!a.migration.pendingContinuityPaths.includes(b)&&a.migration.pendingContinuityPaths.push(b))}function aS(a,b){!a.generations.some(a=>a.path===b)&&(a.continuityPaths.includes(b)||a.continuityPaths.push(b),a.providerForkPaths.includes(b)||a.providerForkPaths.push(b))}function aT(a,b,c){let d=Object.values(a.conversations).find(a=>a.id!==b.id&&a.engine===b.engine&&aQ(a,c));if(d&&!a6(a,d,b,c))throw Error("migration continuity path has another durable owner")}function aU(a){let b=a.migration?.pendingContinuityPaths??[];0!==b.length&&(a.abandonedContinuityPaths=[...new Set([...a.abandonedContinuityPaths,...b])])}function aV(a,b){let c=a.generations[0];return null===a.migration&&1===a.generations.length&&c?.path===b&&0===a.continuityPaths.length}function aW(a,b){let c=100*(b.generations.length>1||null!==b.migration);for(let d of Object.values(a.receipts))d.conversationId===b.id&&(c+=20),d.parentConversationId===b.id&&(c+=5);for(let d of(a.lineageEdges[b.id]&&(c+=10),Object.values(a.lineageEdges)))d.parentConversationId===b.id&&(c+=5);for(let d of(a.memberships[b.id]?.length&&(c+=10),Object.values(a.heldDeliveries)))d.conversationId===b.id&&(c+=5);for(let d of Object.values(a.deliveryOperationOwners))d.conversationId===b.id&&(c+=5);return c}function aX(a,b){return[...b].sort((b,c)=>aW(a,c)-aW(a,b)||b.createdAt.localeCompare(c.createdAt)||b.id.localeCompare(c.id))[0]??null}function aY(a,b,c,d){let e=b.generations.find(a=>a.path===c)??b.generations.at(-1),f=a.lineageEdges[b.id],g=f?.source==="viewer-spawn"?f.parentConversationId:e?.launchProfile.parentConversationId;if(!e||!g||g===b.id)return;let h=aZ(a,g),i=a.conversations[h];if(!i)return;let j=i.generations.at(-1);a.lineageEdges[b.id]={childConversationId:b.id,parentConversationId:h,childSessionKey:(0,x.sz)(b.engine,c),parentSessionKey:j?(0,x.sz)(i.engine,j.path):null,childArtifactPath:c,parentArtifactPath:j?.path??null,kind:f?.kind??"spawn",role:f?.role??null,reviewsConversationId:f?.reviewsConversationId??null,source:f?.source??"engine-native",evidence:f?.evidence??{launchId:null,clientAttemptId:null},createdAt:f?.createdAt??d}}function aZ(a,b){let c=new Set,d=b;for(;!c.has(d);){c.add(d);let b=a.conversationAliases[d];if(!b)break;d=b}return d}function a$(a,b){let c=new Set,d=aZ(a,b);for(;c.size<64&&!c.has(d);){c.add(d);let b=a.conversations[d]?.supersededBy?.conversationId;if(!b)break;d=aZ(a,b)}return d}function a_(a,b){let c=b.generations.at(-1);if(!c)return!1;let d=a.entries[(0,x.pp)({engine:b.engine,sessionId:c.id})];return!!(d&&d.artifactPath===c.path&&("starting"===d.status||"live"===d.status))}function a0(a,b,c,d){let e=aZ(a,c),f=a$(a,b);if(!a.conversations[aZ(a,b)])throw Error("supersedence predecessor is unknown");if(!a.conversations[e])throw Error("supersedence successor is unknown");if(f===e)return a.conversations[f]??null;let g=a.conversations[f];if(!g)throw Error("supersedence predecessor is unknown");if(a$(a,e)===f)throw Error("supersedence chain would form a cycle");if(a_(a,g))throw new O(f,"supersedence chain already ends at a live conversation");return g.supersededBy={conversationId:e,at:at(),reason:d},g.updatedAt=g.supersededBy.at,a.conversationRevision[g.engine]+=1,g}function a1(a,b,c,d){try{a0(a,b,c,d),delete a.pendingSupersedence[aZ(a,c)]}catch(f){if(!(f instanceof O))return;let e=aZ(a,c);a.pendingSupersedence[e]??={predecessorConversationId:aZ(a,b),successorConversationId:e,reason:d,stagedAt:at()}}}function a2(a,b,c,d){if("flow"!==c.kind&&"pipeline"!==c.kind&&"orchestrator"!==c.kind||!c.containerId.trim()||!c.role.trim()||!c.slot.trim())throw Error("durable membership is invalid");let e=aZ(a,b),f=c.parentConversationId?aZ(a,c.parentConversationId):null,g={conversationId:e,kind:c.kind,containerId:c.containerId,role:c.role,slot:c.slot,stageId:c.stageId??null,stageOrder:Number.isInteger(c.stageOrder)?c.stageOrder:null,round:Number.isInteger(c.round)?c.round:null,parentConversationId:f,runtime:c.runtime?{...c.runtime}:null,createdAt:d},h=a.memberships[e]??[],i=h.find(a=>a.kind===g.kind&&a.containerId===g.containerId&&a.slot===g.slot);if(i){if(JSON.stringify((({createdAt:a,...b})=>b)(i))!==JSON.stringify((({createdAt:a,...b})=>b)(g)))throw Error("durable membership is immutable");return i}return h.push(g),a.memberships[e]=h,g}function a3(a){return a5(a,as)}function a4(a){return a5(a,a=>a)}function a5(a,b){let c=new Map;for(let b of Object.values(a.conversations)){for(let a of b.generations)c.has(a.path)||c.set(a.path,b);for(let a of b.continuityPaths)c.has(a)||c.set(a,b)}return{conversationForPath(a){let d=c.get(a);return d?b(d):null},canonicalConversationId:b=>aZ(a,b),conversation(c){let d=a.conversations[aZ(a,c)];return d?b(d):null}}}function a6(a,b,c,d){if(!aV(b,d))return!1;for(let d of(b.migrationOptOut&&(!c.migrationOptOut||b.migrationOptOut.updatedAt>c.migrationOptOut.updatedAt)&&(c.migrationOptOut={...b.migrationOptOut}),c.agentRole??=b.agentRole,c.delegationDepth??=b.delegationDepth,Object.values(a.receipts)))d.conversationId===b.id&&(d.conversationId=c.id),d.parentConversationId===b.id&&(d.parentConversationId=c.id),d.launchProfile.parentConversationId===b.id&&(d.launchProfile={...d.launchProfile,parentConversationId:c.id});let e={};for(let d of Object.values(a.lineageEdges)){let a={...d,childConversationId:d.childConversationId===b.id?c.id:d.childConversationId,parentConversationId:d.parentConversationId===b.id?c.id:d.parentConversationId,reviewsConversationId:d.reviewsConversationId===b.id?c.id:d.reviewsConversationId};a.childConversationId!==a.parentConversationId&&(e[a.childConversationId]&&d.childConversationId!==c.id||(e[a.childConversationId]=a))}a.lineageEdges=e;let f={};for(let[d,e]of Object.entries(a.memberships)){let a=d===b.id?c.id:d,g=e.map(d=>({...d,conversationId:a,parentConversationId:d.parentConversationId===b.id?c.id:d.parentConversationId})),h=f[a]??[];for(let a of g)h.some(b=>b.kind===a.kind&&b.containerId===a.containerId&&b.slot===a.slot)||h.push(a);f[a]=h}for(let d of(a.memberships=f,Object.values(a.heldDeliveries)))d.conversationId===b.id&&(d.conversationId=c.id);for(let d of Object.values(a.deliveryOperationOwners))d.conversationId===b.id&&(d.conversationId=c.id);for(let d of Object.values(a.entries))d.launchProfile?.parentConversationId===b.id&&(d.launchProfile={...d.launchProfile,parentConversationId:c.id});for(let d of Object.values(a.conversations))for(let a of d.generations)a.launchProfile.parentConversationId===b.id&&(a.launchProfile={...a.launchProfile,parentConversationId:c.id});for(let[d,e]of Object.entries(a.conversationAliases))e===b.id&&(a.conversationAliases[d]=c.id);return a.conversationAliases[b.id]=c.id,delete a.conversations[b.id],a.conversationRevision[c.engine]+=1,a.engineRouting[c.engine].revision+=1,!0}function a7(a,b){if(!a)return!0;let c=Date.parse(a),d=Date.parse(b);return Number.isFinite(c)&&Number.isFinite(d)?d>=c:b>=a}function a8(a,b){if(!a||"object"!=typeof a||Array.isArray(a))return null;let c=a.spec,d="string"==typeof a.retryAt?Date.parse(a.retryAt):NaN,e=(0,G.kW)(a.imageRefs??[],16);if(1!==a.version||!Number.isFinite(d)||"string"!=typeof a.accountId||!a.accountId||"en"!==a.locale&&"uk"!==a.locale||!c||"claude"!==c.engine&&"codex"!==c.engine||"string"!=typeof c.command||"string"!=typeof c.cwd||"string"!=typeof c.windowName||!c.launchProfile||"string"!=typeof a.prompt||!e)return null;try{(0,G.h1)(a.prompt)}catch{return null}return{version:1,retryAt:new Date(d).toISOString(),accountId:a.accountId,locale:a.locale,spec:{command:c.command,cwd:c.cwd,windowName:c.windowName,engine:c.engine,..."string"==typeof c.transcript?{transcript:c.transcript}:{},...!0===c.printMode?{printMode:!0}:{},launchProfile:(0,r.Ui)(c.launchProfile,b)},prompt:a.prompt,imageRefs:e,parentArtifactPath:"string"==typeof a.parentArtifactPath?a.parentArtifactPath:null,pipelineSourceConversationId:"string"==typeof a.pipelineSourceConversationId&&a.pipelineSourceConversationId.startsWith("conversation_")?a.pipelineSourceConversationId:null}}function a9(a){return!a||"object"!=typeof a||Array.isArray(a)?null:"string"==typeof a.project&&a.project&&Number.isInteger(a.seatEpoch)&&!((a.seatEpoch??0)<1)&&"string"==typeof a.conversationId&&a.conversationId.startsWith("conversation_")&&(null===a.predecessorConversationId||"string"==typeof a.predecessorConversationId)&&"string"==typeof a.designatedAt&&(null===a.activatedAt||"string"==typeof a.activatedAt)?{project:a.project,seatEpoch:a.seatEpoch,conversationId:a.conversationId,predecessorConversationId:a.predecessorConversationId??null,designatedAt:a.designatedAt,activatedAt:a.activatedAt??null,path:"string"==typeof a.path?a.path:null}:null}function ba(a,b){let c="completed"===a.state||"failed"===a.state||"pane-bound"===a.state||"host-verified"===a.state||"prompt-delivered"===a.state||"path-pending"===a.state||"conflicted"===a.state?a.state:"starting",d=a.pane&&"object"==typeof a.pane&&"string"==typeof a.pane.paneId&&"string"==typeof a.pane.target?{...a.pane,display:"string"==typeof a.pane.display?a.pane.display:a.pane.target,target:a.pane.paneId}:null;return{...a,clientAttemptId:"string"==typeof a.clientAttemptId?a.clientAttemptId:null,requestDigest:"string"==typeof a.requestDigest?a.requestDigest:null,...!0===a.identityWaveTitleBackfill?{identityWaveTitleBackfill:!0}:{},pendingOrchestratorSeatIdentity:a9(a.pendingOrchestratorSeatIdentity),transport:"tmux"===a.transport||"structured"===a.transport?a.transport:null,admissionOwner:a.admissionOwner&&Number.isInteger(a.admissionOwner.pid)&&a.admissionOwner.pid>0?{pid:a.admissionOwner.pid,startIdentity:"string"==typeof a.admissionOwner.startIdentity?a.admissionOwner.startIdentity:null,..."string"==typeof a.admissionOwner.bootEpoch?{bootEpoch:a.admissionOwner.bootEpoch}:{}}:null,spawnCapabilityDigest:"string"==typeof a.spawnCapabilityDigest&&/^[0-9a-f]{64}$/.test(a.spawnCapabilityDigest)?a.spawnCapabilityDigest:null,conversationId:"string"==typeof a.conversationId&&a.conversationId.startsWith("conversation_")?a.conversationId:`conversation_${e().randomUUID()}`,purpose:"migration-successor"===a.purpose||"resume-successor"===a.purpose?a.purpose:"launch",supersedes:a.supersedes&&"string"==typeof a.supersedes.conversationId&&a.supersedes.conversationId.startsWith("conversation_")?{conversationId:a.supersedes.conversationId,reason:"stage-retry"===a.supersedes.reason||"manual"===a.supersedes.reason?a.supersedes.reason:"recovery-spawn"}:null,resumeSourcePath:"string"==typeof a.resumeSourcePath?a.resumeSourcePath:null,pathCorrelation:a.pathCorrelation&&"string"==typeof a.pathCorrelation.cwd&&"string"==typeof a.pathCorrelation.startedAt?a.pathCorrelation:null,accountId:"string"==typeof a.accountId?a.accountId:null,accountPin:!0===a.accountPin,parentConversationId:"string"==typeof a.parentConversationId&&a.parentConversationId.startsWith("conversation_")?a.parentConversationId:null,parentSource:"explicit"===a.parentSource||"inferred-caller"===a.parentSource?a.parentSource:null,state:c,artifactLifecycle:"materialized"===a.artifactLifecycle?"materialized":"pending",key:a.key&&"object"==typeof a.key&&("claude"===a.key.engine||"codex"===a.key.engine)&&"string"==typeof a.key.sessionId?a.key:null,pane:d,verifiedHost:a.verifiedHost&&"object"==typeof a.verifiedHost&&"tmux"===a.verifiedHost.kind?a.verifiedHost:null,target:d?.paneId??("string"==typeof a.target&&/^%\d+$/.test(a.target)?a.target:null),completionMode:"route-completed"===a.completionMode||"observed-completed"===a.completionMode||"route-recovered"===a.completionMode?a.completionMode:null,agentRole:bc(a.agentRole),delegationDepth:bd(a.delegationDepth),rejection:function(a){if(!a||"object"!=typeof a||"reviewer_origin_spawn"!==a.code&&"nesting_depth_exceeded"!==a.code)return null;let b=a.origin;return b&&("agent"===b.kind||"container"===b.kind)?{code:a.code,origin:{kind:b.kind,conversationId:"string"==typeof b.conversationId&&b.conversationId.startsWith("conversation_")?b.conversationId:null,role:bc(b.role),depth:Number.isInteger(b.depth)&&b.depth>=0?b.depth:0},requestedRole:bc(a.requestedRole),childDepth:Number.isInteger(a.childDepth)&&a.childDepth>=0?a.childDepth:0,maxDepth:Number.isInteger(a.maxDepth)&&a.maxDepth>=1?a.maxDepth:1,guidance:"string"==typeof a.guidance?a.guidance:"",rejectedAt:"string"==typeof a.rejectedAt?a.rejectedAt:at()}:null}(a.rejection),launchProfile:(0,r.Ui)({...a.launchProfile??{},cwd:a.launchProfile?.cwd??a.cwd},b),explicitProject:(0,r.QK)(a.explicitProject),launchDisplay:bb(a.launchDisplay),queuedPinnedSpawn:a8(a.queuedPinnedSpawn,b),...a.retryClaim&&"string"==typeof a.retryClaim.claimId&&"string"==typeof a.retryClaim.claimedAt?{retryClaim:{claimId:a.retryClaim.claimId,claimedAt:a.retryClaim.claimedAt}}:{}}}function bb(a){if(!a||"object"!=typeof a||"string"!=typeof a.prompt)return null;let b=Number.isInteger(a.images)&&a.images>=0?a.images:0,c="string"==typeof a.echo?a.echo:a.prompt;return a.prompt.trim()||c.trim()||0!==b?{prompt:a.prompt,images:b,echo:c}:null}function bc(a){return"string"==typeof a&&a.trim()?a.trim():null}function bd(a){return Number.isInteger(a)&&a>=0?a:null}function be(a,b){var c;if(1===a.version&&a.entries&&a.receipts&&"object"==typeof a.entries&&"object"==typeof a.receipts){let c;return(0,u.g8)((c=a.legacyResumePanes,{...as(aq),autoBalance:{claude:ap(ao),codex:ap(ao)},entries:a.entries??{},receipts:Object.fromEntries(Object.entries(a.receipts??{}).map(([a,c])=>[a,ba(c,b)])),conversationAliases:{},importedResumePanes:!0===a.importedResumePanes,legacyResumePanes:c&&"object"==typeof c&&"panes"in c?{serverPid:"number"==typeof c.serverPid?c.serverPid:null,panes:c.panes??{}}:{serverPid:null,panes:{}}}),b)}if(2!==a.version||!a.entries||!a.receipts||"object"!=typeof a.entries||"object"!=typeof a.receipts)throw new ar("agent registry schema is unsupported");let d=a.legacyResumePanes,e=a.heldDeliveries&&"object"==typeof a.heldDeliveries?Object.fromEntries(Object.entries(a.heldDeliveries).map(([a,b])=>[a,aE(b)])):{};return(0,u.g8)(function(a){for(let b of Object.values(a.receipts)){if("structured"!==b.transport||"completed"!==b.state||"pending"!==b.artifactLifecycle||!b.artifactPath)continue;let c=a.conversations[aZ(a,b.conversationId)],d=c?.generations.find(a=>a.path===b.artifactPath),e="observed-completed"===b.completionMode||"route-recovered"===b.completionMode,f="launch"===b.purpose&&c?.generations.length===1&&0===c.continuityPaths.length&&null===c.migration&&null!==c.turn.observedAt&&void 0!==d;c?.engine===b.engine&&d&&(e||f)&&(b.artifactLifecycle="materialized")}return a}({version:2,entries:Object.fromEntries(Object.entries(a.entries).map(([a,c])=>[a,{...c,...c.launchProfile?{launchProfile:(0,r.Ui)(c.launchProfile,b)}:{},host:c.host&&"object"==typeof c.host&&"tmux"===c.host.kind?c.host:null,structuredHost:ay(c.structuredHost)}])),receipts:Object.fromEntries(Object.entries(a.receipts).map(([a,c])=>[a,ba(c,b)])),lineageEdges:a.lineageEdges&&"object"==typeof a.lineageEdges?Object.fromEntries(Object.entries(a.lineageEdges).map(([a,b])=>{let c,d;return[a,(c="string"==typeof b.reviewsConversationId&&b.reviewsConversationId.startsWith("conversation_")?b.reviewsConversationId:null,d="string"==typeof b.role&&b.role.trim()?b.role.trim():null,{...b,kind:"review"===b.kind||c||"reviewer"===d?"review":"spawn",role:d,reviewsConversationId:c})]})):{},memberships:function(a){if(!a||"object"!=typeof a||Array.isArray(a))return{};let b={};for(let[c,d]of Object.entries(a)){if(!c.startsWith("conversation_")||!Array.isArray(d))continue;let a=d.flatMap(a=>{if(!a||"object"!=typeof a||Array.isArray(a)||"flow"!==a.kind&&"pipeline"!==a.kind&&"orchestrator"!==a.kind||"string"!=typeof a.containerId||!a.containerId||"string"!=typeof a.role||!a.role||"string"!=typeof a.slot||!a.slot)return[];let b=a.runtime&&"object"==typeof a.runtime&&("claude"===a.runtime.engine||"codex"===a.runtime.engine)?{engine:a.runtime.engine,model:"string"==typeof a.runtime.model?a.runtime.model:null,effort:"string"==typeof a.runtime.effort?a.runtime.effort:null}:null;return[{conversationId:c,kind:a.kind,containerId:a.containerId,role:a.role,slot:a.slot,stageId:"string"==typeof a.stageId?a.stageId:null,stageOrder:Number.isInteger(a.stageOrder)?a.stageOrder:null,round:Number.isInteger(a.round)?a.round:null,parentConversationId:"string"==typeof a.parentConversationId&&a.parentConversationId.startsWith("conversation_")?a.parentConversationId:null,runtime:b,createdAt:"string"==typeof a.createdAt?a.createdAt:at()}]});a.length&&(b[c]=a)}return b}(a.memberships),identityMigrations:!(c=a.identityMigrations)||"object"!=typeof c||Array.isArray(c)?{}:Object.fromEntries(Object.entries(c).flatMap(([a,b])=>{if(!b||"object"!=typeof b||Array.isArray(b))return[];let c=b.quarantinedRekeys??0;return"string"!=typeof b.completedAt||!Number.isSafeInteger(b.retitled)||b.retitled<0||!Number.isSafeInteger(b.rekeyed)||b.rekeyed<0||!Number.isSafeInteger(c)||c<0||!Number.isSafeInteger(b.edgesStamped)||b.edgesStamped<0?[]:[[a,{completedAt:b.completedAt,retitled:b.retitled,rekeyed:b.rekeyed,quarantinedRekeys:c,edgesStamped:b.edgesStamped}]]})),importedResumePanes:!0===a.importedResumePanes,legacyResumePanes:d&&"object"==typeof d&&"panes"in d?{serverPid:"number"==typeof d.serverPid?d.serverPid:null,panes:d.panes??{}}:{serverPid:null,panes:{}},conversations:a.conversations&&"object"==typeof a.conversations?Object.fromEntries(Object.entries(a.conversations).map(([a,c])=>{var d,e;let f,g,h,i,j,k,l,m,n,o,p,q,s,t;return[a,(g=(f=Array.isArray(c.generations)?c.generations.map(a=>({...a,launchProfile:(0,r.Ui)(a.launchProfile??{},b),historyHash:"string"==typeof a.historyHash?a.historyHash:null,host:a.host&&"object"==typeof a.host?a.host:null})):[]).at(-1),h=c.migration?.continuityPaths,i=(d=c.migration?.providerReceipt)&&"object"==typeof d?{...d,continuityPaths:Array.isArray(d.continuityPaths)?d.continuityPaths.filter(a=>"string"==typeof a):[]}:null,j=c.migration?.successorLaunchProfile&&"object"==typeof c.migration.successorLaunchProfile&&!Array.isArray(c.migration.successorLaunchProfile)?(0,r.Ui)(c.migration.successorLaunchProfile,b):null,k=Array.isArray(c.migration?.pendingContinuityPaths)?c.migration.pendingContinuityPaths.filter(a=>"string"==typeof a):c.migration?.phase!=="committed"&&i?[...new Set([...i.continuityPaths,i.path])]:[],l=c.migration&&"object"==typeof c.migration?{...c.migration,errorCode:c.migration.errorCode??null,operationId:c.migration.operationId??`${c.migration.intentId}:${c.id}:${c.migration.revision}`,sourceGenerationId:c.migration.sourceGenerationId??g?.id??"",successorLaunchProfile:j,providerReceipt:i,pendingContinuityPaths:k,boardProject:"string"==typeof c.migration.boardProject?c.migration.boardProject:null,boardOperationId:"string"==typeof c.migration.boardOperationId?c.migration.boardOperationId:null,boardPlacementProject:"string"==typeof c.migration.boardPlacementProject?c.migration.boardPlacementProject:null}:null,m=[...new Set([...Array.isArray(c.continuityPaths)?c.continuityPaths.filter(a=>"string"==typeof a):[],...Array.isArray(h)?h.filter(a=>"string"==typeof a):[],...l?.providerReceipt?.continuityPaths??[]])],n=Array.isArray(c.abandonedContinuityPaths)?[...new Set(c.abandonedContinuityPaths.filter(a=>"string"==typeof a))]:[],o=Array.isArray(c.providerForkPaths)?[...new Set(c.providerForkPaths.filter(a=>"string"==typeof a))].filter(a=>m.includes(a)):[],q=(p=c.migrationOptOut)&&"string"==typeof p.targetId&&"string"==typeof p.updatedAt?{targetId:p.targetId,updatedAt:p.updatedAt}:null,t=(s=c.supersededBy)&&"string"==typeof s.conversationId&&s.conversationId.startsWith("conversation_")&&"string"==typeof s.at?{conversationId:s.conversationId,at:s.at,reason:"stage-retry"===s.reason||"manual"===s.reason?s.reason:"recovery-spawn"}:null,{...c,generations:f,continuityPaths:m,abandonedContinuityPaths:n,providerForkPaths:o,projectOwnership:(0,r.MO)(c.projectOwnership),pinnedAccountId:"string"==typeof c.pinnedAccountId?c.pinnedAccountId:null,reconfigure:function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=a=>!a||"object"!=typeof a||Array.isArray(a)||null!==a.model&&"string"!=typeof a.model||null!==a.effort&&"string"!=typeof a.effort||null!==a.fast&&"boolean"!=typeof a.fast?null:{model:a.model??null,effort:a.effort??null,fast:a.fast??null},c=b(a.profile),d=b(a.previousProfile);return c&&d&&"string"==typeof a.operationId&&a.operationId&&Number.isSafeInteger(a.revision)&&!(a.revision<0)&&("applying"===a.status||"applied"===a.status||"failed"===a.status||"cancelled"===a.status)?{operationId:a.operationId,revision:a.revision,status:a.status,profile:c,previousProfile:d,accountId:"string"==typeof a.accountId?a.accountId:null,error:"string"==typeof a.error?a.error:null,..."applying"===a.status&&"string"==typeof a.keepsHeldFrom&&a.keepsHeldFrom?{keepsHeldFrom:a.keepsHeldFrom}:{}}:null}(c.reconfigure),reconfigureWithdrawals:Array.isArray(e=c.reconfigureWithdrawals)?e.filter(a=>!!a&&"string"==typeof a.operationId&&a.operationId.length>0&&"string"==typeof a.at).map(a=>({operationId:a.operationId,at:a.at})).slice(-20):[],migration:l,migrationOptOut:q,supersededBy:t,agentRole:bc(c.agentRole),delegationDepth:bd(c.delegationDepth),turn:c.turn&&"object"==typeof c.turn?{state:c.turn.state,source:c.turn.source,terminalAt:c.turn.terminalAt??null,observedAt:c.turn.observedAt??null}:{state:"unknown",source:"empty",terminalAt:null,observedAt:null}})]})):{},conversationAliases:a.conversationAliases&&"object"==typeof a.conversationAliases?Object.fromEntries(Object.entries(a.conversationAliases).filter(([a,b])=>a.startsWith("conversation_")&&"string"==typeof b&&b.startsWith("conversation_"))):{},conversationRevision:a.conversationRevision&&"object"==typeof a.conversationRevision?{...aq.conversationRevision,...a.conversationRevision}:as(aq.conversationRevision),migrationIntents:a.migrationIntents&&"object"==typeof a.migrationIntents?a.migrationIntents:{},engineRouting:a.engineRouting&&"object"==typeof a.engineRouting?{...aq.engineRouting,...a.engineRouting}:as(aq.engineRouting),autoBalance:a.autoBalance&&"object"==typeof a.autoBalance?{claude:az(a.autoBalance.claude),codex:az(a.autoBalance.codex)}:{claude:ap(ao),codex:ap(ao)},quotaObservations:a.quotaObservations&&"object"==typeof a.quotaObservations?{...aq.quotaObservations,...a.quotaObservations}:as(aq.quotaObservations),heldDeliveries:e,deliveryOperationOwners:function(a,b){let c={};if(a&&"object"==typeof a&&!Array.isArray(a))for(let[e,f]of Object.entries(a)){var d;if(!e||!f||"object"!=typeof f||Array.isArray(f)||"string"!=typeof f.conversationId||!f.conversationId.startsWith("conversation_")||null!==f.clientMessageId&&"string"!=typeof f.clientMessageId||"string"!=typeof f.deliveryId||!f.deliveryId||"string"!=typeof f.requestDigest||!f.requestDigest)continue;let a=f.settledDelivery&&"object"==typeof f.settledDelivery?aE(f.settledDelivery):null,g=a?.id===f.deliveryId&&a.command.operationId===e&&a.requestDigest===f.requestDigest&&null!==aF(a)?a:null,h=b[f.deliveryId],i=h?.command.operationId===e&&h.requestDigest===f.requestDigest?h:null,j=i?aF(i):"delivered"===f.terminalState||"failed"===f.terminalState?f.terminalState:aF(g);c[e]={conversationId:f.conversationId,runtimeConversationId:"string"==typeof f.runtimeConversationId&&f.runtimeConversationId.startsWith("conversation_")?f.runtimeConversationId:b[f.deliveryId]?.runtimeConversationId??f.conversationId,clientMessageId:f.clientMessageId,deliveryId:f.deliveryId,command:{...aB(f.command,e),operationId:e},requestDigest:f.requestDigest,contentDigest:"string"==typeof f.contentDigest?f.contentDigest:i?.contentDigest??g?.contentDigest??null,createdAt:"string"==typeof f.createdAt?f.createdAt:i?.createdAt??g?.createdAt??ao,retryOfOperationId:"string"==typeof f.retryOfOperationId&&f.retryOfOperationId?f.retryOfOperationId:null,terminalState:j,terminalDisposition:"delivered"===j?"delivered":"delivered"===(d=f.terminalDisposition)||"lost"===d||"unverified"===d?d:null,terminalReason:"string"==typeof f.terminalReason?f.terminalReason:i?.error??g?.error??null,settledAt:"string"==typeof f.settledAt?f.settledAt:i?.deliveredAt??g?.deliveredAt??null}}for(let a of Object.values(b))a.requestDigest&&(c[a.command.operationId]??={conversationId:a.conversationId,runtimeConversationId:a.runtimeConversationId,clientMessageId:a.clientMessageId,deliveryId:a.id,command:a.command,requestDigest:a.requestDigest,contentDigest:a.contentDigest,createdAt:a.createdAt,retryOfOperationId:null,terminalState:aF(a),terminalDisposition:"delivered"===aF(a)?"delivered":null,terminalReason:a.error,settledAt:a.deliveredAt});return c}(a.deliveryOperationOwners,e),pendingSuccessorCleanups:a.pendingSuccessorCleanups&&"object"==typeof a.pendingSuccessorCleanups?a.pendingSuccessorCleanups:{},pendingSupersedence:function(a){if(!a||"object"!=typeof a)return{};let b={};for(let[c,d]of Object.entries(a))d&&"string"==typeof d.predecessorConversationId&&d.predecessorConversationId.startsWith("conversation_")&&"string"==typeof d.successorConversationId&&d.successorConversationId.startsWith("conversation_")&&"string"==typeof d.stagedAt&&(b[c]={predecessorConversationId:d.predecessorConversationId,successorConversationId:d.successorConversationId,reason:"stage-retry"===d.reason||"manual"===d.reason?d.reason:"recovery-spawn",stagedAt:d.stagedAt});return b}(a.pendingSupersedence)}),b)}function bf(a){let b=a&&"object"==typeof a?a._sqliteRevision:void 0;return Number.isSafeInteger(b)&&Number(b)>=0?Number(b):null}function bg(a,b){try{let c=g().readFileSync(a,"utf8"),d=JSON.parse(c);return{file:(0,u.$q)(be(d,b),b),payload:c,sqliteRevision:bf(d)}}catch(a){if("ENOENT"===a.code)return{file:as(aq),payload:null,sqliteRevision:null};if(a instanceof ar)throw a;throw new ar(`agent registry cannot be read: ${a instanceof Error?a.message:String(a)}`)}}function bh(a,b){return bg(a,b).file}function bi(a){try{let b=g().statSync(a,{bigint:!0});return`${b.dev}:${b.ino}:${b.size}:${b.mtimeNs}:${b.ctimeNs}`}catch(a){if("ENOENT"===a.code)return"missing";throw new ar(`agent registry cannot be stated: ${a instanceof Error?a.message:String(a)}`)}}function bj(a){let b={...a};for(let a of Object.keys(b))null===b[a]&&delete b[a];return""===b.cwd&&delete b.cwd,"worker"===b.role&&delete b.role,!1===b.allowSubagents&&delete b.allowSubagents,b.mcpServers?.length===1&&"viewer"===b.mcpServers[0]&&delete b.mcpServers,b.plugins?.length===0&&delete b.plugins,b}function bk(a,b){return JSON.stringify({...a,...void 0===b?{}:{_sqliteRevision:b},entries:Object.fromEntries(Object.entries(a.entries).map(([a,b])=>[a,{...b,...b.launchProfile?{launchProfile:bj(b.launchProfile)}:{}}])),receipts:Object.fromEntries(Object.entries(a.receipts).map(([a,b])=>[a,{...b,launchProfile:bj(b.launchProfile)}])),conversations:Object.fromEntries(Object.entries(a.conversations).map(([a,b])=>[a,{...b,generations:b.generations.map(a=>({...a,launchProfile:bj(a.launchProfile)}))}]))})+"\n"}function bl(a,b,c){g().mkdirSync(i().dirname(a),{recursive:!0,mode:448});let d=`${a}.${process.pid}.${e().randomUUID()}.tmp`,f=null;try{f=g().openSync(d,"w",384),g().writeFileSync(f,b,"utf8"),g().fsyncSync(f),g().closeSync(f),f=null,c?.beforeRename?.(),g().renameSync(d,a),c?.afterRename?.();let e=g().openSync(i().dirname(a),"r");try{g().fsyncSync(e)}finally{g().closeSync(e)}}finally{null!==f&&g().closeSync(f);try{g().unlinkSync(d)}catch{}}}function bm(a,b,c,d){bl(a,bk(b,c),d)}class bn extends Error{constructor(...a){super(...a),this.name="RegistryParityError"}}function bo(a){try{return bf(JSON.parse(g().readFileSync(a,"utf8")))}catch(a){if("ENOENT"===a.code)return null;throw a}}class bp{constructor(a=(0,k.BQ)("agent-registry.json"),b=l.$k,c=V,d={}){this.filename=a,this.ownerAlive=b,this.lockTiming=c,this.readOnlyCache=null,this.mirrorRevisionCache=null,this.mirrorCheckpointPending=!1,this.mirrorCheckpointFailures=0,this.lastMirrorAt=null,this.lastMirroredRevision=null,this.mirrorDirty=!1,this.writerWaits=[],this.transactionDurations=[],this.transactionCount=0,this.transactionRateBuckets=new Map;const e=void 0!==d.sqliteMode?{mode:d.sqliteMode,sqliteFilename:null,source:"explicit"}:!0===d.resolveBackendIdentity?(0,y.Ej)(a):{mode:(0,y.KL)(),sqliteFilename:null,source:"unmanaged"};this.sqliteMode=e.mode;const f=d.sqliteFilename??e.sqliteFilename??(0,y.EB)(a);if(this.mcpGrantPolicy=d.mcpGrantPolicy,this.mirrorCheckpointMs=Math.max(0,d.mirrorCheckpointMs??5e3),this.now=d.now??Date.now,this.scheduleMirrorCheckpoint=d.scheduleMirrorCheckpoint??((a,b)=>setTimeout(a,b)),this.afterMirrorWrite=d.afterMirrorWrite,this.mirrorWriteHooks={beforeRename:d.beforeMirrorRename,afterRename:d.afterMirrorRename},this.beforeDualWriteMutationReplace=d.beforeDualWriteMutationReplace,this.sqliteStore="off"===this.sqliteMode?null:new E(f,{initialSnapshot:bh(a,d.mcpGrantPolicy),normalize:a=>be(a,d.mcpGrantPolicy),mcpGrantPolicy:d.mcpGrantPolicy,onWriterWait:a=>{this.recordMetric(this.writerWaits,a),d.onSqliteWriterWait?.(a)},onSnapshotLoad:d.onSqliteSnapshotLoad,onRowPayloadRead:d.onSqliteRowPayloadRead,onRowPayloadParse:d.onSqliteRowPayloadParse,onRevisionQuery:d.onSqliteRevisionQuery}),"off"===this.sqliteMode&&(this.cleanupStaleTempFiles(),this.compactAtStartup()),"dual-write"===this.sqliteMode&&(this.cleanupStaleTempFiles(),this.synchronizeDualWriteStartup(d.beforeDualWriteStartupReplace)),"read"===this.sqliteMode||"sqlite"===this.sqliteMode){this.cleanupStaleTempFiles();const a=this.sqliteStore.snapshot(),b=bo(this.filename);if("read"===this.sqliteMode&&(null===b||b===a.revision)&&this.assertSqliteParity(a),null!==b&&b>a.revision)throw"sqlite"===this.sqliteMode&&this.fenceAheadMirror(b,a.revision),new bn(`agent registry JSON revision ${b} is ahead of SQLite revision ${a.revision}`);this.mirrorSqliteSnapshot(a)}"environment"===e.source&&(0,y.Dc)(a,this.sqliteMode,f)}assertSqliteParity(a=this.sqliteStore.snapshot(),b=bh(this.filename,this.mcpGrantPolicy)){if(!(0,j.isDeepStrictEqual)(a.file,b)){let c=[...new Set([...Object.keys(a.file),...Object.keys(b)])].filter(c=>!(0,j.isDeepStrictEqual)(a.file[c],b[c]));throw new bn(`agent registry JSON and SQLite snapshots differ: ${c.join(", ")}`)}}fenceAheadMirror(a,b){let c=`sqlite-conflict-r${a}-over-r${b}`,d=`${this.filename}.${c}`;try{g().renameSync(this.filename,d)}catch(a){if("ENOENT"===a.code)return;throw a}throw new bn(`agent registry JSON mirror revision ${a} is ahead of authoritative SQLite revision ${b}; conflicting mirror moved beside the registry as ${c} and the next startup will rebuild from SQLite`)}mirrorSqliteSnapshot(a){bm(this.filename,a.file,a.revision,this.mirrorWriteHooks),this.mirrorRevisionCache={signature:bi(this.filename),revision:a.revision},this.afterMirrorWrite?.();let b=this.sqliteStore.revision();this.lastMirrorAt=this.now(),this.lastMirroredRevision=a.revision,this.mirrorDirty=b>a.revision,this.mirrorDirty&&this.scheduleRollbackMirror()}recordMetric(a,b){a.push(b),a.length>512&&a.splice(0,a.length-512)}percentile(a){if(0===a.length)return null;let b=[...a].sort((a,b)=>a-b);return b[Math.min(b.length-1,Math.ceil(.95*b.length)-1)]}currentMirrorRevision(){if("off"===this.sqliteMode)return null;for(let a=0;a<2;a+=1){let a=bi(this.filename);if(this.mirrorRevisionCache?.signature===a)return this.mirrorRevisionCache.revision;let b=bo(this.filename),c=bi(this.filename);if(a===c)return this.mirrorRevisionCache={signature:c,revision:b},b}return bo(this.filename)}storageDiagnostics(){let a=this.sqliteStore?.revision()??null,b=this.currentMirrorRevision();null!==a&&null!==this.lastMirroredRevision&&a>this.lastMirroredRevision&&(this.mirrorDirty=!0);let c=Math.floor(this.now()/1e3);for(let a of this.transactionRateBuckets.keys())a<=c-60&&this.transactionRateBuckets.delete(a);let d=[...this.transactionRateBuckets.values()].reduce((a,b)=>a+b,0);return{backendMode:this.sqliteMode,revision:a,mirrorRevision:b,transactionCount:this.transactionCount,writerRatePerSecond:d/60,writerWaitP95Ms:this.percentile(this.writerWaits),transactionP95Ms:this.percentile(this.transactionDurations),mirrorCheckpointAtMs:this.lastMirrorAt,mirrorAgeMs:null===this.lastMirrorAt?null:Math.max(0,this.now()-this.lastMirrorAt),mirrorDirty:this.mirrorDirty}}checkpointRollbackMirror(){if(!this.sqliteStore||"dual-write"===this.sqliteMode)return;let a=this.sqliteStore.revision();(this.mirrorDirty||null===this.lastMirroredRevision||!(a<=this.lastMirroredRevision))&&(this.mirrorSqliteSnapshot(this.sqliteStore.snapshot()),this.mirrorCheckpointFailures=0)}checkpointRollbackMirrorForDemotion(a=2){if(this.sqliteStore&&"dual-write"!==this.sqliteMode){for(let b=0;b<a;b+=1)if(this.checkpointRollbackMirror(),!this.storageDiagnostics().mirrorDirty)return;throw Error(`agent registry rollback mirror did not converge after ${a} attempts`)}}scheduleRollbackMirror(a=this.mirrorCheckpointMs){this.mirrorCheckpointPending||(this.mirrorCheckpointPending=!0,this.scheduleMirrorCheckpoint(()=>{this.mirrorCheckpointPending=!1;try{this.checkpointRollbackMirror()}catch(b){console.error("agent registry rollback checkpoint failed",b),this.mirrorCheckpointFailures+=1;let a=Math.min(1e3*2**(this.mirrorCheckpointFailures-1),3e4);this.scheduleRollbackMirror(a)}},a).unref?.())}scheduleRollbackMirrorForCadence(){let a=null===this.lastMirrorAt?this.mirrorCheckpointMs:Math.max(0,this.now()-this.lastMirrorAt);this.scheduleRollbackMirror(Math.max(0,this.mirrorCheckpointMs-a))}cleanupStaleTempFiles(){let a,b=i().dirname(this.filename),c=`${i().basename(this.filename)}.`;try{a=g().readdirSync(b)}catch(a){if("ENOENT"===a.code)return;throw a}for(let d of a){if(!d.startsWith(c)||!d.endsWith(".tmp"))continue;let a=d.slice(c.length,-4).split("."),e=Number(a[0]);if(2===a.length&&Number.isInteger(e)&&!(e<=0)&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(a[1]??"")&&!this.ownerAlive({pid:e,startIdentity:null}))try{g().unlinkSync(i().join(b,d))}catch(a){if("ENOENT"!==a.code)throw a}}}compactAtStartup(){if(!g().existsSync(this.filename))return;let a=`${this.filename}.write-lock`,b=this.acquireLock(a,(0,l.y6)(process.pid));try{this.compactAtStartupLocked()}finally{this.releaseLock(b)}}compactAtStartupLocked(a){let b,c;try{b=g().readFileSync(this.filename,"utf8")}catch(a){if("ENOENT"===a.code)return;throw a}try{c=bh(this.filename,this.mcpGrantPolicy)}catch(a){if(a instanceof ar)return void console.error("agent registry startup compaction skipped:",a);throw a}aP(c,void 0,this.now()),bk(c,a)!==b&&bm(this.filename,c,a)}synchronizeDualWriteStartup(a){let b=`${this.filename}.write-lock`,c=this.acquireLock(b,(0,l.y6)(process.pid));try{let b=this.sqliteStore.snapshot();g().existsSync(this.filename)||bm(this.filename,b.file,b.revision);let c=bo(this.filename);if(null!==c&&c!==b.revision)throw new bn(`agent registry backend revisions differ: JSON ${c}, SQLite ${b.revision}`);this.assertSqliteParity(b),this.compactAtStartupLocked(b.revision);let d=bh(this.filename,this.mcpGrantPolicy);a?.();let e=this.sqliteStore.replace(d,b.revision);if(!e.replaced)throw this.mirrorSqliteSnapshot(e),new bn(`agent registry SQLite revision changed during dual-write startup: expected ${b.revision}, current ${e.revision}`);bm(this.filename,e.file,e.revision),this.assertSqliteParity()}finally{this.releaseLock(c)}}sameLock(a,b){try{let c=g().statSync(a);return c.dev===b.dev&&c.ino===b.ino}catch(a){if("ENOENT"===a.code)return!1;throw a}}lockOwnerFile(a){return g().statSync(a).isDirectory()?i().join(a,"owner.json"):a}lockToken(a){try{let b=JSON.parse(g().readFileSync(this.lockOwnerFile(a),"utf8"));return"string"==typeof b.token?b.token:null}catch{return null}}finishRetirement(a,b){try{g().renameSync(a,b)}catch(c){let b=c.code;if("ENOENT"===b)return;if("EEXIST"===b||"ENOTEMPTY"===b)return void g().rmSync(a,{recursive:!0,force:!0});throw c}}restoreRecovery(a,b){for(;;)try{g().renameSync(b,a);return}catch(b){let a=b.code;if("ENOENT"===a)return;if("EEXIST"!==a&&"ENOTEMPTY"!==a)throw b;Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,5)}}resolveInterruptedRelease(a){let b,c=`${a}.releasing`;if(!g().existsSync(c))return;let d=null;try{b=g().statSync(c),d=JSON.parse(g().readFileSync(this.lockOwnerFile(c),"utf8"))}catch(a){a.code;return}Number.isInteger(d.pid)&&d.pid>0&&this.ownerAlive(d)||(!Number.isInteger(d.pid)||d.pid<=0)&&this.lockTiming.now()-b.mtimeMs<1e3||g().rmSync(c,{recursive:!0,force:!0})}retireObservedLock(a,b,c,d){let e=`${a}.recovering`;if(!b.isDirectory){try{g().linkSync(a,e)}catch(b){let a=b.code;if("ENOENT"===a||"EEXIST"===a)return;throw b}return this.sameLock(e,b)&&this.lockToken(e)===c&&this.sameLock(a,b)&&this.lockToken(a)===c?(g().rmSync(a,{force:!0}),void this.finishRetirement(e,`${a}.retired-${d}`)):void g().rmSync(e,{force:!0})}try{g().renameSync(a,e)}catch(b){let a=b.code;if("ENOENT"===a||"EEXIST"===a||"ENOTEMPTY"===a)return;throw b}this.sameLock(e,b)&&this.lockToken(e)===c?this.finishRetirement(e,`${a}.retired-${d}`):this.restoreRecovery(a,e)}resolveInterruptedRecovery(a){let b,c=`${a}.recovering`;if(!g().existsSync(c))return;if(g().existsSync(a)){let b,c=null;try{b=g().statSync(a)}catch(a){if("ENOENT"===a.code)return;throw a}try{c=JSON.parse(g().readFileSync(this.lockOwnerFile(a),"utf8"))}catch{return}if(c&&Number.isInteger(c.pid)&&c.pid>0&&this.ownerAlive(c))return;let d="string"==typeof c?.token?c.token:null,e=d&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(d)?d:`abandoned-${b.dev}-${b.ino}-${b.ctimeMs}`;this.sameLock(a,{dev:b.dev,ino:b.ino})&&this.lockToken(a)===d&&this.finishRetirement(a,`${a}.retired-${e}`)}let d=null;try{b=g().statSync(c),d=JSON.parse(g().readFileSync(this.lockOwnerFile(c),"utf8"))}catch(b){if("ENOENT"===b.code)return;this.finishRetirement(c,`${a}.retired-interrupted-invalid`);return}if(Number.isInteger(d.pid)&&d.pid>0&&this.ownerAlive(d)){if(g().existsSync(a))return;this.restoreRecovery(a,c);return}let e="string"==typeof d.token?d.token:null,f=e&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)?e:`interrupted-${b.dev}-${b.ino}-${b.ctimeMs}`;this.finishRetirement(c,`${a}.retired-${f}`)}recoverContendedLock(a){let b;try{b=g().statSync(a)}catch(a){if("ENOENT"===a.code)return;throw a}let c=null;try{c=JSON.parse(g().readFileSync(this.lockOwnerFile(a),"utf8"))}catch{}if(c&&Number.isInteger(c.pid)&&c.pid>0){if(!this.ownerAlive(c)){let d="string"==typeof c.token&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(c.token)?c.token:`legacy-${b.dev}-${b.ino}-${b.ctimeMs}`;this.retireObservedLock(a,{dev:b.dev,ino:b.ino,isDirectory:b.isDirectory()},"string"==typeof c.token?c.token:null,d)}return}}tryAcquireLock(a,b){if(this.resolveInterruptedRelease(a),g().existsSync(`${a}.releasing`)||(this.resolveInterruptedRecovery(a),g().existsSync(`${a}.recovering`)))return null;let c=e().randomUUID(),d=`${a}.owner.pending-${c}`,f=null,h=null,j=!1;try{g().mkdirSync(d,448),f=g().openSync(i().join(d,"owner.json"),"wx",384),g().writeFileSync(f,JSON.stringify({...b,token:c}),"utf8"),g().fsyncSync(f),g().closeSync(f),f=null;let e=g().openSync(d,"r");try{g().fsyncSync(e);let a=g().fstatSync(e);h={dev:a.dev,ino:a.ino}}finally{g().closeSync(e)}try{g().symlinkSync(i().basename(d),a,"dir")}catch(c){let b=c.code;if("EEXIST"!==b)throw c;return g().rmSync(d,{recursive:!0,force:!0}),this.recoverContendedLock(a),null}j=!0;let k={lock:a,token:c,identity:h,storage:d};if(!this.sameLock(a,k.identity)||this.lockToken(a)!==c)return null;if(g().existsSync(`${a}.recovering`)||g().existsSync(`${a}.releasing`))return this.releaseLock(k),null;return k}catch(b){throw null!==f&&g().closeSync(f),h&&(j?this.releaseLock({lock:a,token:c,identity:h,storage:d}):this.retireObservedLock(a,{...h,isDirectory:!0},null,`failed-${c}`)),j||g().rmSync(d,{recursive:!0,force:!0}),b}}retireClaim(a,b){let c,d=`${b.lock}.releasing`;if(this.resolveInterruptedRelease(b.lock),g().existsSync(d))return!1;try{c=g().statSync(a).isDirectory()}catch(a){if("ENOENT"===a.code)return!1;throw a}if(c){try{g().renameSync(a,d)}catch(b){let a=b.code;if("ENOENT"===a||"EEXIST"===a||"ENOTEMPTY"===a)return!1;throw b}return this.sameLock(d,b.identity)&&this.lockToken(d)===b.token?(g().rmSync(d,{recursive:!0,force:!0}),g().rmSync(b.storage,{recursive:!0,force:!0}),!0):(this.restoreRecovery(a,d),!1)}try{g().linkSync(a,d)}catch(b){let a=b.code;if("ENOENT"===a||"EEXIST"===a)return!1;throw b}return this.sameLock(d,b.identity)&&this.lockToken(d)===b.token?(this.sameLock(a,b.identity)&&this.lockToken(a)===b.token&&g().rmSync(a,{force:!0}),g().rmSync(d,{force:!0}),g().rmSync(b.storage,{recursive:!0,force:!0}),!0):(g().rmSync(d,{force:!0}),!1)}releaseLock(a){for(let b of[a.lock,`${a.lock}.recovering`,a.lock])if(this.sameLock(b,a.identity)&&this.lockToken(b)===a.token&&this.retireClaim(b,a))return}lockBackoff(a,b){return Math.min(Math.min(5*2**Math.floor(a/20),50),b)}acquireLock(a,b){g().mkdirSync(i().dirname(a),{recursive:!0,mode:448});for(let c=0;;c+=1){let d=this.tryAcquireLock(a,b);if(d)return d;Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,this.lockBackoff(c,50))}}async acquireLockAsync(a,b){g().mkdirSync(i().dirname(a),{recursive:!0,mode:448});for(let c=0;;c+=1){let d=this.tryAcquireLock(a,b);if(d)return d;await this.lockTiming.wait(this.lockBackoff(c,50))}}mutate(a){let b=performance.now(),c=this.mutateStorage(a);this.transactionCount+=1,this.recordMetric(this.transactionDurations,performance.now()-b);let d=Math.floor(this.now()/1e3);for(let a of(this.transactionRateBuckets.set(d,(this.transactionRateBuckets.get(d)??0)+1),this.transactionRateBuckets.keys()))a<=d-60&&this.transactionRateBuckets.delete(a);return c}mutateStorage(a){let b=b=>{let c=a(b);for(let[a,c]of Object.entries(b.pendingSupersedence)){let d=aZ(b,c.predecessorConversationId),e=aZ(b,c.successorConversationId);if(!b.conversations[d]||!b.conversations[e]){delete b.pendingSupersedence[a];continue}try{a0(b,d,e,c.reason),delete b.pendingSupersedence[a]}catch(c){if(c instanceof O)continue;delete b.pendingSupersedence[a]}}return c};if("read"===this.sqliteMode||"sqlite"===this.sqliteMode){let a=this.sqliteStore.mutate(b,!1);return"read"===this.sqliteMode&&(this.mirrorDirty=null===this.lastMirroredRevision||a.revision>this.lastMirroredRevision,this.mirrorDirty&&this.scheduleRollbackMirrorForCadence()),"sqlite"===this.sqliteMode&&(this.mirrorDirty=null===this.lastMirroredRevision||a.revision>this.lastMirroredRevision),a.result}let c=`${this.filename}.write-lock`,d=this.acquireLock(c,(0,l.y6)(process.pid));try{let a="dual-write"===this.sqliteMode?this.sqliteStore.snapshot():null,c=bg(this.filename,this.mcpGrantPolicy);if(a){let b=c.sqliteRevision;if(null!==b&&b!==a.revision)throw new bn(`agent registry backend revisions differ: JSON ${b}, SQLite ${a.revision}`);this.assertSqliteParity(a,c.file)}let d=a&&c.sqliteRevision!==a.revision?as(c.file):null,e=c.file,f=b(e),g=bk(e,a?.revision),h=c.payload!==g;if(h){let b=a?bk(e,a.revision+1):g;bl(this.filename,b)}if(a&&!h&&this.assertSqliteParity(),a&&h){let b;try{this.beforeDualWriteMutationReplace?.(),b=this.sqliteStore.replace(e,a.revision)}catch(e){let b=this.sqliteStore.snapshot();throw b.revision===a.revision?d?bm(this.filename,d,a.revision):bl(this.filename,c.payload):this.mirrorSqliteSnapshot(b),e}if(!b.replaced)throw this.mirrorSqliteSnapshot(b),new bn(`agent registry SQLite revision changed during dual-write mutation: expected ${a.revision}, current ${b.revision}`);this.assertSqliteParity()}return f}finally{this.releaseLock(d)}}snapshot(){return"read"===this.sqliteMode||"sqlite"===this.sqliteMode?this.sqliteStore.snapshot().file:bh(this.filename,this.mcpGrantPolicy)}readOnlySnapshot(){if("read"===this.sqliteMode||"sqlite"===this.sqliteMode)return this.sqliteStore.readOnlySnapshot().file;for(let a=0;a<2;a+=1){let a=bi(this.filename);if(this.readOnlyCache?.signature===a)return this.readOnlyCache.snapshot;let b=bh(this.filename,this.mcpGrantPolicy),c=bi(this.filename);if(a===c)return this.readOnlyCache={signature:c,snapshot:b},b}return bh(this.filename,this.mcpGrantPolicy)}snapshotSpawns(a){return this.sqliteStore?this.sqliteStore.snapshotSpawns(a):function(a,b){let c={},d=z(a);for(let e of new Set(b)){let b=a.receipts[e];if(!b)continue;let f=new Set,g=b.conversationId;for(let b=0;b<64&&g&&!f.has(g);b+=1){f.add(g);let c=a.conversationAliases[g];if(!c)break;g=b+1===64?null:c}c[e]={launchId:b.launchId,state:b.state,error:b.error,engine:b.engine,cwd:b.cwd,createdAt:b.createdAt,materializedPath:d.allowsReceipt(b)?(g?d.pathForConversation(g):null)??b.artifactPath:null}}return c}(this.readOnlySnapshot(),a)}pageSeatChildren(a,b,c,d){return"sqlite"!==this.sqliteMode&&"read"!==this.sqliteMode?null:this.sqliteStore?.pageSeatChildren(a,b,c,d)??null}seatTickConversation(a){if(this.sqliteStore&&("sqlite"===this.sqliteMode||"read"===this.sqliteMode))return this.sqliteStore.seatTickConversation(a);let b=this.conversation(a);return b?{id:b.id,turn:b.turn}:null}snapshotTitleConversations(a){return this.sqliteStore?.snapshotTitleConversations(a)??[]}spawnReceiptForClientAttempt(a){let b=Object.values(this.readOnlySnapshot().receipts).find(b=>b.clientAttemptId===a);return b?as(b):null}conversationIdForSpawnCapabilityDigest(a){if(!/^[0-9a-f]{64}$/.test(a))return null;let b=this.readOnlySnapshot(),c=Object.values(b.receipts).find(b=>b.spawnCapabilityDigest===a);return c?aZ(b,c.conversationId):null}rotateSpawnCapabilityForReceipt(a){let b=e().randomBytes(32).toString("base64url"),c=e().createHash("sha256").update(b).digest("hex");return this.mutate(d=>{let e=d.receipts[a];if(!e)throw Error("spawn receipt is missing");let f=aZ(d,e.conversationId);for(let a of Object.values(d.receipts))aZ(d,a.conversationId)===f&&(a.spawnCapabilityDigest=null);return e.spawnCapabilityDigest=c,b})}rotateSpawnCapabilityForPath(a){let b=e().randomBytes(32).toString("base64url"),c=e().createHash("sha256").update(b).digest("hex");return this.mutate(d=>{let e=Object.values(d.conversations).find(b=>aQ(b,a));if(!e)return null;let f=Object.values(d.receipts).filter(a=>aZ(d,a.conversationId)===e.id).sort((a,b)=>b.createdAt.localeCompare(a.createdAt)),g=f[0];if(!g)return null;for(let a of f)a.spawnCapabilityDigest=null;return g.spawnCapabilityDigest=c,b})}beginSpawnRequest(a){let b=(0,n.oV)(()=>{if(("claude"===a.engine||"codex"===a.engine)&&a.accountId&&"default"!==a.accountId){let b=(0,k.BQ)(`${a.engine}-accounts.json`);try{let c=JSON.parse(g().readFileSync(b,"utf8"));if(c.retired?.some(b=>b.id===a.accountId))throw Error(`${a.engine} account is retired`)}catch(a){if("ENOENT"!==a.code)throw a}}let b=this.mutate(b=>this.beginSpawnRequestInFile(b,a));if("rejected"===b.kind||"replay"===b.kind&&b.receipt.rejection)throw new w.Jc(b.receipt,b.receipt.rejection);return b});return("created"===b.kind||"replay"===b.kind)&&(0,H.Ng)(a,b.receipt,c=>{"created"===b.kind&&("structured"===a.transport?this.failStructuredSpawn(b.receipt.launchId,c):this.failSpawn(b.receipt.launchId,c))}),b}beginSpawnRequestInFile(a,b){{let c=b.conversationId?aZ(a,b.conversationId):null,d=b.parentConversationId?aZ(a,b.parentConversationId):null,f=b.reviewsConversationId?aZ(a,b.reviewsConversationId):null,h="string"==typeof b.role&&b.role.trim()?b.role.trim():null;if("reviewer"===h&&!f&&b.origin?.kind!=="container")throw Error("reviewer spawn requires reviewsConversationId");if(f&&"reviewer"!==h)throw Error("reviewsConversationId requires reviewer role");let i=null==b.explicitProject?null:(0,r.QK)(b.explicitProject);if(null!=b.explicitProject&&!i)throw Error("explicit project is not a valid project key");let j=b.supersedes?aZ(a,b.supersedes):null;if(j){if(!a.conversations[j])throw Error("supersedence predecessor is unknown");if(c===j)throw Error("a conversation cannot supersede itself")}let n=c?a.conversations[c]:null,o=b.launchProfile?.title,p=(0,r.Ui)({cwd:b.cwd,...b.launchProfile??{},title:(0,m.St)(o),...i?{project:i}:{},parentConversationId:d}),q=n?.generations.at(-1)?.launchProfile,s="resume-successor"===b.purpose&&q?{cwd:p.cwd||q.cwd,model:p.model??q.model,effort:p.effort??q.effort,fast:p.fast??q.fast,permissionMode:p.permissionMode??q.permissionMode,readOnly:p.readOnly??q.readOnly,sandbox:p.sandbox??q.sandbox??null,allowSubagents:q.allowSubagents||p.allowSubagents,mcpServers:q.mcpServers,plugins:q.plugins??[],title:(0,m.St)(q.title)??(0,m.St)(p.title),project:p.project??q.project,parentConversationId:p.parentConversationId??q.parentConversationId,role:"root"===q.role||"root"===p.role?"root":"worker",goal:p.goal??q.goal,plan:p.plan??q.plan}:p;if((0,w.n4)(n?.agentRole)&&(s.allowSubagents=!1),(n?.agentRole||d)&&(s.plugins=[]),n&&n.engine!==b.engine)throw Error("spawn conversation ownership is invalid");if("resume-successor"===b.purpose&&n&&!T(n.migration))throw Error("conversation migration prevents resume succession");if(b.clientAttemptId){let c=Object.values(a.receipts).find(a=>a.clientAttemptId===b.clientAttemptId);if(c){let d=(0,m.St)(c.launchProfile.title),e=(0,m.St)(s.title),f=!d||!e||d===e,g=c.requestDigest===(b.requestDigest??null)&&c.engine===b.engine&&c.cwd===b.cwd&&c.transport===(b.transport??null)&&c.accountPin===(!0===b.accountPin)&&c.explicitProject===i&&(c.supersedes?.conversationId??null)===j&&c.launchProfile.permissionMode===s.permissionMode&&f;if(g&&!d&&e){c.launchProfile.title=e;let b=aZ(a,c.conversationId),d=a.conversations[b];if(d){let c=new Set(d.generations.map(a=>a.path));for(let a of d.generations)(0,m.St)(a.launchProfile.title)||(a.launchProfile.title=e);for(let b of Object.values(a.entries))c.has(b.artifactPath)&&b.launchProfile&&!(0,m.St)(b.launchProfile.title)&&(b.launchProfile.title=e);for(let c of Object.values(a.receipts))aZ(a,c.conversationId)!==b||(0,m.St)(c.launchProfile.title)||(c.launchProfile.title=e);d.updatedAt=at(),a.conversationRevision[d.engine]+=1}}return{kind:g?"replay":"conflict",receipt:as(c)}}}if(!(0,m.St)(s.title))throw Error(m.QE);let t=b.purpose??"launch",v="launch"!==t||b.origin?.kind==="successor",y=!v&&b.origin?(0,w.mo)(a,b.origin):null,z=v?n?.delegationDepth??null:y?y.depth+1:0,A=v?n?.agentRole??null:h,B="launch"===t&&b.origin&&"successor"!==b.origin.kind?{kind:b.origin.kind}:void 0;s.mcpServers=(0,u.VW)({origin:B,parentConversationId:d??s.parentConversationId,agentRole:A,delegationDepth:z,requested:s.mcpServers},this.mcpGrantPolicy);let C=null;if(y){let a=function(){let a;try{a=g().readFileSync((0,k.BQ)("spawn-nesting.json"),"utf8")}catch{return{maxAgentNestingDepth:2}}try{var b;let c=JSON.parse(a);if(1===c.schemaVersion&&(b=c.maxAgentNestingDepth,Number.isInteger(b)&&b>=1&&b<=4))return{maxAgentNestingDepth:c.maxAgentNestingDepth}}catch{}return{maxAgentNestingDepth:2}}().maxAgentNestingDepth;(0,w.n4)(y.role)?C={code:"reviewer_origin_spawn",origin:y,requestedRole:h,childDepth:z??0,maxDepth:a,guidance:(0,w.rF)(y.role),rejectedAt:at()}:null!==z&&z>a&&(C={code:"nesting_depth_exceeded",origin:y,requestedRole:h,childDepth:z,maxDepth:a,guidance:(0,w.MT)(z,a),rejectedAt:at()})}if(!C&&void 0!==b.liveChildrenCap){if(!Number.isInteger(b.liveChildrenCap)||b.liveChildrenCap<1)throw Error("liveChildrenCap must be a positive integer");if(!d)throw Error("liveChildrenCap requires parentConversationId");if(function(a,b){let c=aZ(a,b),d=new Set;for(let b of Object.values(a.lineageEdges)){if("viewer-spawn"!==b.source||aZ(a,b.parentConversationId)!==c)continue;let e=aZ(a,b.childConversationId),f=b.evidence.launchId?a.receipts[b.evidence.launchId]:null,g=function(a,b,c,d){let e=[d?.key,c.childSessionKey],f=a.conversations[b],g=f?.generations.at(-1);return e.push(g?(0,x.sz)(f.engine,g.path):null),[...new Set(e.filter(a=>!!a).map(x.pp))].flatMap(b=>a.entries[b]?[a.entries[b]]:[])}(a,e,b,f),h=[f?.verifiedHost?.agent,f?.pane?.panePid,...g.flatMap(a=>[a.host?.agent,a.structuredHost?.process])].filter(a=>!!a);if(h.some(a=>(0,l.$k)(a))){d.add(e);continue}if(!(h.length>0)){if(f&&au.has(f.state)){if("starting"===f.state&&Date.now()-Date.parse(f.createdAt)>aw)continue;d.add(e);continue}g.some(a=>av.has(a.status))&&d.add(e)}}return d.size}(a,d)>=b.liveChildrenCap)throw new L(d,b.liveChildrenCap)}if(c&&b.spawnCapabilityDigest)for(let b of Object.values(a.receipts))aZ(a,b.conversationId)===c&&(b.spawnCapabilityDigest=null);let D=at(),E={launchId:e().randomUUID(),clientAttemptId:b.clientAttemptId??null,requestDigest:b.requestDigest??null,pendingOrchestratorSeatIdentity:null,transport:b.transport??null,admissionOwner:"structured"===b.transport||!0===b.ownStartingActuation?(0,l.y6)(process.pid):null,spawnCapabilityDigest:"string"==typeof b.spawnCapabilityDigest&&/^[0-9a-f]{64}$/.test(b.spawnCapabilityDigest)?b.spawnCapabilityDigest:null,conversationId:c??`conversation_${e().randomUUID()}`,purpose:b.purpose??"launch",supersedes:j?{conversationId:j,reason:b.supersedesReason??"recovery-spawn"}:null,resumeSourcePath:"resume-successor"===b.purpose?n?.generations.at(-1)?.path??null:null,pathCorrelation:"codex"===b.engine&&(b.purpose??"launch")==="launch"?{cwd:b.cwd,startedAt:D}:null,engine:b.engine,cwd:b.cwd,accountId:b.accountId??null,accountPin:!0===b.accountPin,parentConversationId:d,parentSource:d&&("explicit"===b.parentSource||"inferred-caller"===b.parentSource)?b.parentSource:null,createdAt:D,state:C?"failed":"starting",artifactPath:C?null:b.expectedArtifactPath??null,artifactLifecycle:"pending",key:null,pane:null,verifiedHost:null,target:null,completionMode:null,error:C?C.guidance:null,agentRole:A,delegationDepth:z,rejection:C,launchProfile:s,explicitProject:i,launchDisplay:bb(b.launchDisplay),queuedPinnedSpawn:null};if(a.receipts[E.launchId]=E,C)return{kind:"rejected",receipt:as(E)};if(E.parentConversationId&&E.parentConversationId!==E.conversationId){let c="resume-successor"===b.purpose?a.lineageEdges[E.conversationId]:null;if(c&&c.childConversationId===E.conversationId){let b=aZ(a,c.parentConversationId);b!==E.conversationId&&(a.lineageEdges[E.conversationId]={...c,childConversationId:E.conversationId,parentConversationId:b,reviewsConversationId:c.reviewsConversationId?aZ(a,c.reviewsConversationId):null})}else a.lineageEdges[E.conversationId]={childConversationId:E.conversationId,parentConversationId:E.parentConversationId,childSessionKey:null,parentSessionKey:b.parentSessionKey??null,childArtifactPath:null,parentArtifactPath:b.parentArtifactPath??null,kind:f||"reviewer"===h?"review":"spawn",role:h,reviewsConversationId:f,source:"viewer-spawn",evidence:{launchId:E.launchId,clientAttemptId:E.clientAttemptId,parentSource:E.parentSource},createdAt:E.createdAt}}for(let c of b.memberships??[])a2(a,E.conversationId,c,E.createdAt);return{kind:"created",receipt:as(E)}}}claimSpawnActuation(a,b){return this.mutate(c=>{let d=c.receipts[a];if(!d)throw Error("unknown spawn receipt");let e="starting"===d.state&&!d.key&&!d.pane,f="tmux"===b&&("pane-bound"===d.state||"host-verified"===d.state)&&!d.key&&!!d.pane;return d.transport!==b||!e&&!f||d.admissionOwner&&this.ownerAlive(d.admissionOwner)?{claimed:!1,receipt:as(d)}:(d.admissionOwner=(0,l.y6)(process.pid),{claimed:!0,receipt:as(d)})})}queuePinnedSpawn(a,b,c){return this.mutate(d=>{let e=d.receipts[a];if(!e)throw Error("unknown spawn receipt");let f=a8(b,this.mcpGrantPolicy);if(!f||"structured"!==e.transport&&"tmux"!==e.transport||"starting"!==e.state||e.key||e.pane||!e.accountPin||!e.accountId||f.accountId!==e.accountId||f.spec.engine!==e.engine||f.spec.cwd!==e.cwd)throw Error("queued pinned spawn payload conflicts with its durable receipt");return e.queuedPinnedSpawn=f,e.launchProfile=(0,r.Ui)({...e.launchProfile,title:c},this.mcpGrantPolicy),as(e)})}claimStartingStructuredSpawn(a){return this.claimSpawnActuation(a,"structured")}claimTmuxSpawnActuation(a){return this.claimSpawnActuation(a,"tmux")}releaseSpawnActuation(a,b){return this.mutate(c=>{let d=c.receipts[a];if(!d)throw Error("unknown spawn receipt");let e="starting"===d.state&&!d.key&&!d.pane,f="tmux"===d.transport&&("pane-bound"===d.state||"host-verified"===d.state)&&!d.key&&!!d.pane;return("structured"===d.transport||"tmux"===d.transport)&&(e||f)&&d.admissionOwner&&(0,l.O1)(d.admissionOwner,b)?(d.admissionOwner=null,{released:!0,receipt:as(d)}):{released:!1,receipt:as(d)}})}releaseStartingStructuredSpawn(a,b){return this.mutate(c=>{let d=c.receipts[a];if(!d)throw Error("unknown spawn receipt");return"structured"!==d.transport||"starting"!==d.state||d.key||d.pane||!d.admissionOwner||!(0,l.O1)(d.admissionOwner,b)?{released:!1,receipt:as(d)}:(d.admissionOwner=null,{released:!0,receipt:as(d)})})}releaseStructuredSpawnAdmissionOwner(a,b){return this.mutate(c=>{let d=c.receipts[a];if(!d)throw Error("unknown spawn receipt");return"structured"===d.transport&&d.admissionOwner&&(0,l.O1)(d.admissionOwner,b)?(d.admissionOwner=null,{released:!0,receipt:as(d)}):{released:!1,receipt:as(d)}})}claimFailedSpawnForRetry(a,b){if(!b.trim())throw Error("spawn retry claim id is required");return this.mutate(c=>{let d=c.receipts[a];if(!d)throw Error("unknown spawn receipt");return d.retryClaim?.claimId===b?{kind:"claimed",receipt:as(d)}:d.retryClaim?{kind:"conflict",receipt:as(d)}:"failed"!==d.state?{kind:"settled",receipt:as(d)}:(d.retryClaim={claimId:b,claimedAt:at()},{kind:"claimed",receipt:as(d)})})}rememberMembership(a,b){return this.mutate(c=>as(a2(c,a,b,at())))}runIdentityWaveMigration(a){return a.dryRun?(0,t.Oy)(as(this.readOnlySnapshot()),{...a,dryRun:!0}):(0,n.oV)(()=>this.mutate(b=>(0,t.Oy)(b,a)))}stampOrchestratorSeatIdentity(a){return this.mutate(b=>{let c=(0,t.DD)(b,a,a.activatedAt??a.designatedAt);if(c.changed&&c.engine&&(b.conversationRevision[c.engine]+=1),c.engine)return c.changed;let d=Object.values(b.receipts).find(b=>b.conversationId===a.conversationId);if(!d)return!1;let e=a9(a);return!(!e||(0,j.isDeepStrictEqual)(d.pendingOrchestratorSeatIdentity,e))&&(d.pendingOrchestratorSeatIdentity=e,!0)})}beginSpawn(a,b,c={}){let d=this.beginSpawnRequest({engine:a,cwd:b,launchProfile:c});if("created"!==d.kind)throw Error("could not create spawn receipt");return d.receipt}bindSpawnPane(a,b){return this.mutate(c=>{let d=c.receipts[a];if(!d)throw Error("unknown spawn receipt");return d.pane&&(d.pane.paneId!==b.paneId||d.pane.server.startIdentity!==b.server.startIdentity||d.pane.panePid.startIdentity!==b.panePid.startIdentity)?(d.state="conflicted",d.error="spawn_pane_conflict"):"failed"===d.state||"conflicted"===d.state||(d.pane={...b,display:b.display??b.target,target:b.paneId},d.target=b.paneId,"starting"===d.state&&(d.state="pane-bound")),as(d)})}markSpawnHostVerified(a,b){return this.mutate(c=>{let d=c.receipts[a];if(!d)throw Error("unknown spawn receipt");return d.pane&&d.pane.paneId===b.paneId&&d.pane.server.pid===b.server.pid&&d.pane.server.startIdentity===b.server.startIdentity&&d.pane.panePid.pid===b.panePid.pid&&d.pane.panePid.startIdentity===b.panePid.startIdentity?"failed"===d.state||"conflicted"===d.state||(d.verifiedHost=b,d.target=b.paneId,("starting"===d.state||"pane-bound"===d.state)&&(d.state="host-verified")):(d.state="conflicted",d.error="spawn_host_identity_conflict"),as(d)})}markSpawnPromptDelivered(a){return this.mutate(b=>{let c=b.receipts[a];if(!c)throw Error("unknown spawn receipt");return c.verifiedHost&&("host-verified"===c.state||"pane-bound"===c.state||"starting"===c.state)&&(c.state="prompt-delivered","tmux"===c.transport&&c.queuedPinnedSpawn&&(c.launchProfile=(0,r.Ui)(c.queuedPinnedSpawn.spec.launchProfile,this.mcpGrantPolicy),c.queuedPinnedSpawn=null,c.admissionOwner=null)),as(c)})}markSpawnPathPending(a){return this.mutate(b=>{let c=b.receipts[a];if(!c)throw Error("unknown spawn receipt");return c.verifiedHost&&("prompt-delivered"===c.state||"host-verified"===c.state)&&(c.state="path-pending"),as(c)})}preserveSpawnArtifactOwnership(a,b){this.mutate(c=>{let d=c.receipts[a];d&&"completed"!==d.state&&"failed"!==d.state&&(d.state="path-pending",d.error=b,d.verifiedHost=null,d.target=null)})}confirmSpawnPaneAliveInFile(a,b,c,d){var e;let f=a.receipts[b];if(!f||"conflicted"!==f.state||!f.pane)return f??null;if(f.engine!==d.engine||f.cwd!==d.cwd||"agent never reached a launch-ready prompt"!==(e=f.error)&&e?.startsWith("agent never reached a launch-ready prompt:")!==!0&&"launch prompt was not accepted by the agent"!==e&&e?.startsWith("launch prompt was not accepted by the agent:")!==!0)return f;let g=f.pane,h=g.server.pid===c.server.pid&&(null===g.server.startIdentity||g.server.startIdentity===c.server.startIdentity),i=g.paneId===c.paneId&&g.panePid.pid===c.panePid.pid&&(null===g.panePid.startIdentity||g.panePid.startIdentity===c.panePid.startIdentity);return h&&i&&(f.state="host-verified",f.error=null,f.verifiedHost=c,f.target=c.paneId),f}confirmSpawnPaneAlive(a,b,c){let d=this.readOnlySnapshot().receipts[a];return d&&"conflicted"===d.state?this.mutate(d=>{let e=this.confirmSpawnPaneAliveInFile(d,a,b,c);return e?as(e):null}):d?as(d):null}settleSpawnInFile(a,b,c,d,e=!0){let f=a.receipts[b];if(!f)throw Error("unknown spawn receipt");let g=f.key?a.entries[(0,x.pp)(f.key)]:null,h=a=>("completed"!==f.state&&(f.state="conflicted",f.error=a),{kind:"conflict",receipt:as(f),code:a});if("observed-completed"===d&&c.host?.kind==="tmux"&&this.confirmSpawnPaneAliveInFile(a,b,c.host,{engine:c.key.engine,cwd:c.cwd}),"failed"===f.state||"conflicted"===f.state)return{kind:"conflict",receipt:as(f),code:"spawn_artifact_conflict"===f.error||"spawn_pane_conflict"===f.error||"spawn_identity_conflict"===f.error?f.error:"spawn_identity_conflict"};if(f.engine!==c.key.engine||f.cwd!==c.cwd)return h("spawn_identity_conflict");if(f.pane&&c.host?.kind==="tmux"&&(f.pane.paneId!==c.host.paneId||f.pane.server.pid!==c.host.server.pid||null!==f.pane.server.startIdentity&&c.host.server.startIdentity!==f.pane.server.startIdentity||f.pane.panePid.pid>0&&f.pane.panePid.pid!==c.host.panePid.pid||null!==f.pane.panePid.startIdentity&&c.host.panePid.startIdentity!==f.pane.panePid.startIdentity))return h("spawn_pane_conflict");let i=a.conversations[f.conversationId],j=i?.generations.find(a=>a.id===c.key.sessionId),k=i?(0,x.sz)(i.engine,c.artifactPath)?.sessionId??ax(c.artifactPath):null,l="completed"===f.state&&"resume-successor"===f.purpose&&null!==f.resumeSourcePath&&f.artifactPath===f.resumeSourcePath&&null!==f.artifactPath&&null!==f.key&&void 0!==i&&aQ(i,f.artifactPath)&&aQ(i,c.artifactPath)&&(0,x.pp)(f.key)===(0,x.pp)(c.key)&&j?.id===c.key.sessionId&&k===c.key.sessionId;if(f.artifactPath&&f.artifactPath!==c.artifactPath&&!l)return h("spawn_artifact_conflict");if(f.key&&(0,x.pp)(f.key)!==(0,x.pp)(c.key))return h("spawn_identity_conflict");let n=a.entries[(0,x.pp)(c.key)],o=!!n&&!!i&&(i.generations.some(a=>a.path===n.artifactPath)||i.continuityPaths.includes(n.artifactPath)),p="resume-successor"===f.purpose&&o&&j?.id===c.key.sessionId&&k===c.key.sessionId;if(n&&n.artifactPath!==c.artifactPath&&(!g||(0,x.pp)(g.key)!==(0,x.pp)(c.key))&&!p)return h("spawn_artifact_conflict");f.queuedPinnedSpawn&&(f.launchProfile=(0,r.Ui)(f.queuedPinnedSpawn.spec.launchProfile,this.mcpGrantPolicy),f.queuedPinnedSpawn=null);let q=at(),u=i??{id:f.conversationId,engine:f.engine,generations:[],continuityPaths:[],abandonedContinuityPaths:[],providerForkPaths:[],projectOwnership:null,pinnedAccountId:f.accountPin?f.accountId:null,migration:null,migrationOptOut:null,supersededBy:null,agentRole:null,delegationDepth:null,turn:{state:"unknown",source:"empty",terminalAt:null,observedAt:null},createdAt:q,updatedAt:q};if(u.agentRole??=f.agentRole,u.delegationDepth??=f.delegationDepth,"launch"===f.purpose&&f.accountPin&&f.accountId&&(u.pinnedAccountId=f.accountId),u.engine!==f.engine||"resume-successor"===f.purpose&&!T(u.migration))return h("spawn_identity_conflict");if("migration-successor"===f.purpose){let b=Object.values(a.conversations).find(a=>a.id!==u.id&&a.engine===u.engine&&aQ(a,c.artifactPath));if(b&&!a6(a,b,u,c.artifactPath))return h("spawn_artifact_conflict");aR(u,c.artifactPath)}if("launch"===f.purpose){let b=Object.values(a.conversations).find(a=>a.id!==u.id&&a.engine===u.engine&&aQ(a,c.artifactPath));if(b&&!a6(a,b,u,c.artifactPath))return h("spawn_artifact_conflict")}if("resume-successor"===f.purpose&&!aQ(u,c.artifactPath)){let b=Object.values(a.conversations).find(a=>a.id!==u.id&&a.engine===u.engine&&aQ(a,c.artifactPath));if(b&&!a6(a,b,u,c.artifactPath))return h("spawn_artifact_conflict");let d=(0,x.sz)(u.engine,c.artifactPath)?.sessionId??ax(c.artifactPath),e=u.generations.find(a=>a.id===d);if(e)u.continuityPaths.includes(e.path)||u.continuityPaths.push(e.path),e.path=c.artifactPath,e.accountId=f.accountId??e.accountId,e.launchProfile={...e.launchProfile,...f.launchProfile};else{let a=u.generations.at(-1);a&&null===a.archivedAt&&(a.archivedAt=q),u.generations.push({id:d,path:c.artifactPath,accountId:f.accountId,launchProfile:f.launchProfile,historyHash:null,host:null,createdAt:q,archivedAt:null})}if(a.conversationRevision[u.engine]+=1,a.engineRouting[u.engine].revision+=1,u.migration&&("waiting-turn"===u.migration.phase||"requested"===u.migration.phase)){let a=u.generations.at(-1);a&&(u.migration={...u.migration,sourceGenerationId:a.id,updatedAt:q})}}f.explicitProject&&!u.projectOwnership&&(u.projectOwnership={project:f.explicitProject,source:"operator",setAt:q,operationId:f.launchId}),"migration-successor"===f.purpose||u.generations.some(a=>a.path===c.artifactPath)||(u.generations.push({id:ax(c.artifactPath),path:c.artifactPath,accountId:f.accountId,launchProfile:f.launchProfile,historyHash:null,host:null,createdAt:q,archivedAt:null}),a.conversationRevision[u.engine]+=1,a.engineRouting[u.engine].revision+=1);let v=u.generations.find(a=>a.path===c.artifactPath),w=(0,m.St)(f.launchProfile.title,120);v&&w&&!(0,m.St)(v.launchProfile.title,120)&&(v.launchProfile.title=w,a.conversationRevision[u.engine]+=1,a.engineRouting[u.engine].revision+=1);let y=Object.values(a.migrationIntents).find(b=>b.engine===u.engine&&P(b)&&(0,s.xc)(a,b,Date.parse(q))),z=u.generations.at(-1);y&&!u.pinnedAccountId&&z&&z.accountId!==y.targetId&&!u.migration&&"accepted"===$(a,u,z,y).kind&&(u.migration=Z(u,z,y,R(a,u)?"waiting-turn":"requested",q)),u.updatedAt=q,a.conversations[u.id]=u;let A={...c,accountId:f.accountId,launchProfile:f.launchProfile,updatedAt:q};if(a.entries[(0,x.pp)(c.key)]=A,f.key=c.key,f.artifactPath=c.artifactPath,f.pendingOrchestratorSeatIdentity){let b=f.pendingOrchestratorSeatIdentity,c=(0,t.DD)(a,b,b.activatedAt??b.designatedAt);f.pendingOrchestratorSeatIdentity=null,c.changed&&c.engine&&(a.conversationRevision[c.engine]+=1)}let B=a.lineageEdges[f.conversationId];return B&&(B.childSessionKey=c.key,B.childArtifactPath=c.artifactPath),c.host?.kind==="tmux"&&(f.verifiedHost=c.host),null===f.target&&c.host?.kind==="tmux"&&(f.target=c.host.paneId),f.state=e?"completed":"path-pending",f.error=null,e&&(f.completionMode="observed-completed"===f.completionMode&&"route-completed"===d?"route-recovered":f.completionMode??d,f.supersedes&&a1(a,f.supersedes.conversationId,f.conversationId,f.supersedes.reason)),{kind:"settled",receipt:as(f),entry:as(A),conversation:as(u)}}stageStructuredSpawn(a,b){return this.mutate(c=>{let d=new Set([b.artifactPath]),e=W(c,b.key.engine,d),f=this.settleSpawnInFile(c,a,{...b,structuredHostOperationId:a},"route-completed",!1);return Y(c,b.key.engine,e,d),f})}finalizeStructuredSpawn(a){return this.mutate(b=>{let c=b.receipts[a];if(!c)throw Error("unknown spawn receipt");if("failed"===c.state||"conflicted"===c.state)return{kind:"conflict",receipt:as(c),code:"spawn_identity_conflict"};if(!c.key||!c.artifactPath)throw Error("structured spawn identity is incomplete");let d=b.entries[(0,x.pp)(c.key)],e=b.conversations[c.conversationId];if(d&&"string"==typeof d.structuredHostOperationId&&d.structuredHostOperationId!==a)return c.state="conflicted",c.error="spawn_identity_conflict",{kind:"conflict",receipt:as(c),code:"spawn_identity_conflict"};if(!d||!e||d.artifactPath!==c.artifactPath||!d.structuredHost?.process||!d.claimOwner||"unhosted"===d.status||"dead"===d.status)throw Error("structured spawn durable host setup is incomplete");return d.pendingAction=null,d.updatedAt=at(),c.state="completed",c.error=null,c.completionMode="route-completed",c.supersedes&&a1(b,c.supersedes.conversationId,c.conversationId,c.supersedes.reason),{kind:"settled",receipt:as(c),entry:as(d),conversation:as(e)}})}recoverDeliveredStructuredSpawn(a){return this.mutate(b=>{let c=b.receipts[a];if(!c)throw Error("unknown spawn receipt");if("failed"===c.state||"conflicted"===c.state)return{kind:"conflict",receipt:as(c),code:"spawn_identity_conflict"};if("path-pending"!==c.state||!c.key||!c.artifactPath)throw Error("structured spawn recovery identity is incomplete");let d=b.entries[(0,x.pp)(c.key)],e=b.conversations[c.conversationId];if(!d||!e||d.artifactPath!==c.artifactPath)throw Error("structured spawn recovery identity is unavailable");if(d.host||d.structuredHost?.process||d.claimOwner||"dead"!==d.status&&"unhosted"!==d.status)throw Error("structured spawn host loss is unconfirmed");let f={...d,host:null,structuredHost:null,status:"dead",claimOwner:null,pendingAction:null},g=X(b,(0,x.pp)(c.key),f),h=W(b,c.key.engine,g);return Object.assign(d,f,{updatedAt:at()}),c.state="completed",c.error=null,c.completionMode=c.completionMode??"route-recovered",c.supersedes&&a1(b,c.supersedes.conversationId,c.conversationId,c.supersedes.reason),Y(b,c.key.engine,h,g),{kind:"settled",receipt:as(c),entry:as(d),conversation:as(e)}})}recoverStructuredSpawnFromEvidence(a,b){return this.mutate(c=>{let d=c.receipts[a];if(!d)throw Error("unknown spawn receipt");if("conflicted"===d.state||d.retryClaim)return{kind:"conflict",receipt:as(d),code:"spawn_identity_conflict"};let e=d.key??b?.key,f=e?c.entries[(0,x.pp)(e)]:null,g=null;if(f){let{updatedAt:a,...b}=f;g=b}if(g&&(g.structuredHost?.process||g.claimOwner)&&d.accountId!==g.accountId)return{kind:"conflict",receipt:as(d),code:"spawn_identity_conflict"};let h=b&&g?{...b,...void 0!==g.structuredHostOperationId?{structuredHostOperationId:g.structuredHostOperationId}:{},...g.structuredHost?.process||g.claimOwner?{host:g.host,structuredHost:g.structuredHost,claimEpoch:g.claimEpoch,claimOwner:g.claimOwner,pendingAction:g.pendingAction}:{}}:b??g;if(!h||d.key&&(0,x.pp)(d.key)!==(0,x.pp)(h.key)||d.artifactPath&&d.artifactPath!==h.artifactPath)return{kind:"conflict",receipt:as(d),code:"spawn_identity_conflict"};let i={...h,pendingAction:g?.pendingAction==="handoff"?"handoff":null};return"failed"===d.state&&(d.state=d.key?"path-pending":"starting",d.error=null),this.settleSpawnInFile(c,a,i,"route-recovered")})}settleSpawn(a,b,c="route-completed"){return this.mutate(d=>{let e=new Set([b.artifactPath]),f=W(d,b.key.engine,e),g=this.settleSpawnInFile(d,a,b,c);return Y(d,b.key.engine,f,e),g})}completeSpawn(a,b){let c=this.settleSpawn(a,b);if("conflict"===c.kind)throw Error(c.code);return c.entry}failSpawn(a,b){this.mutate(c=>{let d=c.receipts[a];if(d&&"completed"!==d.state&&"failed"!==d.state&&"conflicted"!==d.state){if("host-verified"===d.state||"prompt-delivered"===d.state){d.error=b;return}d.state=d.pane?"conflicted":"failed",d.error=b,"conflicted"===d.state&&(d.verifiedHost=null),("failed"===d.state||"conflicted"===d.state)&&d.queuedPinnedSpawn&&(d.launchProfile=(0,r.Ui)(d.queuedPinnedSpawn.spec.launchProfile,this.mcpGrantPolicy),d.queuedPinnedSpawn=null),aL(c)}})}terminalizeFailedSpawnDeliveries(){let a=this.readOnlySnapshot();return Object.values(a.heldDeliveries).some(b=>{let c=aJ(a,b);return!!c&&("failed"===b.state?!["completed","failed","conflicted"].includes(c.state):("failed"===c.state||"conflicted"===c.state)&&0===b.attempts&&("held"===b.state||"assigned"===b.state))})?this.mutate(a=>aL(a)):[]}failStructuredSpawn(a,b,c={}){return this.mutate(d=>{let e=d.receipts[a];if(!e)return{claimed:!1,receipt:null,cleanup:null};if("completed"===e.state||"failed"===e.state||"conflicted"===e.state)return{claimed:!1,receipt:as(e),cleanup:null};if(e.state="failed",e.error=b,e.queuedPinnedSpawn&&(e.launchProfile=(0,r.Ui)(e.queuedPinnedSpawn.spec.launchProfile,this.mcpGrantPolicy),e.queuedPinnedSpawn=null),aL(d),!e.key||!e.artifactPath)return{claimed:!0,receipt:as(e),cleanup:null};let f=d.entries[(0,x.pp)(e.key)];if(!f||f.artifactPath!==e.artifactPath||"string"==typeof f.structuredHostOperationId&&f.structuredHostOperationId!==a)return{claimed:!0,receipt:as(e),cleanup:null};let g=f.structuredHostOperationId===a,h=null==f.structuredHostOperationId&&"spawn"===f.pendingAction;if(!g&&!h)return{claimed:!0,receipt:as(e),cleanup:null};let i={key:as(e.key),process:as(f.structuredHost?.process??null),releaseRegisteredHost:g};if(!0===c.retainRegisteredHost&&g&&f.structuredHost?.process)return f.pendingAction=null,f.updatedAt=at(),{claimed:!0,receipt:as(e),cleanup:i};let j="resume-successor"===e.purpose&&e.resumeSourcePath===e.artifactPath&&(f.structuredHost?.eventCursor??0)>0&&f.structuredHost?{...f.structuredHost,endpoint:"stdio:released",process:null,activeTurnRef:null,pendingAttention:[],activeFlags:[]}:null,k=X(d,(0,x.pp)(e.key),{...f,host:null,structuredHost:j,status:"dead",claimOwner:null,pendingAction:null}),l=W(d,e.key.engine,k);return f.host=null,f.structuredHost=j,f.status="dead",f.claimOwner=null,f.pendingAction=null,f.updatedAt=at(),Y(d,e.key.engine,l,k),{claimed:!0,receipt:as(e),cleanup:i}})}invalidateSpawnHost(a,b){this.mutate(c=>{let d=c.receipts[a];d&&"failed"!==d.state&&"conflicted"!==d.state&&(d.state="conflicted",d.error=b,d.verifiedHost=null)})}upsert(a){return this.mutate(b=>{let c=(0,x.pp)(a.key),d=b.entries[c],e=void 0===a.structuredHost&&d?.structuredHost!==void 0?{...a,structuredHost:d.structuredHost}:a,f=X(b,c,e),g=W(b,a.key.engine,f),h={...e,updatedAt:at()};return b.entries[c]=h,Y(b,a.key.engine,g,f),as(h)})}setStructuredHost(a,b,c){return this.mutate(d=>{let e=(0,x.pp)(a),f=d.entries[e];if(!f)throw Error("agent registry entry is missing");let g=X(d,e,{...f,structuredHost:b?ay(b):null,status:c??f.status}),h=W(d,a.engine,g);return f.structuredHost=b?ay(b):null,c&&(f.status=c),f.updatedAt=at(),Y(d,a.engine,h,g),as(f)})}terminateStructuredHost(a,b){return this.mutate(c=>{let d=(0,x.pp)(a),e=c.entries[d];if(!e)return!1;let f=e.structuredHost?.process??null;if(b&&f&&!(0,l.O1)(f,b))return!1;let g={...e,host:null,structuredHost:null,status:"dead",claimOwner:null,pendingAction:null},h=X(c,d,g),i=W(c,a.engine,h);return Object.assign(e,g,{updatedAt:at()}),Y(c,a.engine,i,h),!0})}terminateInactiveStructuredHost(a,b,c){return this.mutate(d=>{let e=d.conversations[a],f=(0,x.pp)(b),g=d.entries[f],h=g?.structuredHost?.process??null,i=null!==h&&!this.ownerAlive(h);if(!e||e.engine!==b.engine||!e.generations.some(a=>a.id===b.sessionId)||!g||c&&(!h||!(0,l.O1)(h,c.process)||g.claimEpoch!==c.claimEpoch||g.structuredHost?.writerClaimEpoch!==c.claimEpoch)||g.host||null!==h&&!i||g.claimOwner&&!i||!i&&"dead"!==g.status&&"unhosted"!==g.status)return!1;let j={...g,host:null,structuredHost:null,status:"dead",claimOwner:null,pendingAction:null},k=X(d,f,j),m=W(d,b.engine,k);return Object.assign(g,j,{updatedAt:at()}),Y(d,b.engine,m,k),e.generations.at(-1)?.id===b.sessionId?"current":"predecessor"})}setStructuredHostClaimed(a,b,c,d,e,f=!1){return this.mutate(g=>{let h=(0,x.pp)(a),i=g.entries[h];if(!i?.structuredHost||i.claimOwner!==d||i.claimEpoch!==e||i.structuredHost.writerClaimEpoch!==e)return null;let k=ay(b),l=i.structuredHost.releaseHandoffClaimEpoch,m="handoff"===i.pendingAction&&!!k?.process&&void 0!==l&&e>l;if(k&&m){let{releaseHandoffClaimEpoch:a,...b}=k;k=b}else k&&"handoff"===i.pendingAction&&void 0!==l&&(k={...k,releaseHandoffClaimEpoch:l});if(!f&&i.status===c&&!m&&(0,j.isDeepStrictEqual)(ay(i.structuredHost),k))return as(i);let n={...i,structuredHost:k,status:c,...m?{pendingAction:null}:{}},o=X(g,h,n),p=W(g,a.engine,o);return i.structuredHost=n.structuredHost,i.status=c,i.pendingAction=n.pendingAction,f&&(i.claimOwner=null),i.updatedAt=at(),Y(g,a.engine,p,o),as(i)})}markStructuredHostHandoff(a,b){return this.mutate(c=>{let d=c.entries[(0,x.pp)(a)],e=d?.structuredHost,f=e?.process;if(!d?.claimOwner||!e||!f||null===b.startIdentity||!(0,l.O1)(f,b))return!1;let g={...d,pendingAction:"handoff",structuredHost:{...e,releaseHandoffClaimEpoch:d.claimEpoch}},h=X(c,(0,x.pp)(a),g),i=W(c,a.engine,h);return d.pendingAction=g.pendingAction,d.structuredHost=g.structuredHost,d.updatedAt=at(),Y(c,a.engine,i,h),!0})}ownsStructuredHostClaim(a,b,c){let d=this.readOnlySnapshot().entries[(0,x.pp)(a)];return d?.claimOwner===b&&d.claimEpoch===c&&d.structuredHost?.writerClaimEpoch===c}claimStructuredHost(a,b,c={}){return this.mutate(d=>{let e=d.entries[(0,x.pp)(a)];if(!e?.structuredHost||"unhosted"===e.status&&!0!==c.allowUnhosted)return null;(0,u.k8)(d,a,this.mcpGrantPolicy);let f="unhosted"===e.status||"dead"===e.status,g=e.structuredHost.process;if(!f&&g&&this.ownerAlive(g))return null;let h=`${I}${JSON.stringify(b)}`;if(e.claimOwner){let a=J(e.claimOwner),d=!0===c.reclaimUnverifiedOwner&&null===e.structuredHost.process&&a?.startIdentity===null&&null!==b.startIdentity;if(!a||this.ownerAlive(a)&&!d)return null}return e.claimOwner=h,e.claimEpoch+=1,e.structuredHost.writerClaimEpoch=e.claimEpoch,e.updatedAt=at(),as(e)})}markUnhosted(a){this.mutate(b=>{let c=b.entries[(0,x.pp)(a)];if(!c)return;let d=c.structuredHost?.process?c.status:"unhosted",e={...c,host:null,status:d},f=X(b,(0,x.pp)(a),e),g=W(b,a.engine,f);c.host=null,c.status=d,c.updatedAt=at(),Y(b,a.engine,g,f)})}claim(a,b){return this.mutate(c=>{let d=c.entries[(0,x.pp)(a)];if(!d)throw Error("agent registry entry is missing");if(d.claimOwner&&d.claimOwner!==b)throw Error("agent session is claimed by another operation");return d.claimOwner=b,d.claimEpoch+=1,d.updatedAt=at(),as(d)})}releaseClaim(a,b){this.mutate(c=>{let d=c.entries[(0,x.pp)(a)];d?.claimOwner===b&&(d.claimOwner=null,d.updatedAt=at())})}releaseStructuredHostClaim(a,b,c){return this.mutate(d=>{let e=d.entries[(0,x.pp)(a)];return!!e?.structuredHost&&e.claimOwner===b&&e.claimEpoch===c&&e.structuredHost.writerClaimEpoch===c&&(e.claimOwner=null,e.updatedAt=at(),!0)})}async withOperationLock(a,b,c){let d=`${this.filename}.locks/${encodeURIComponent((0,x.pp)(a))}`,e=await this.acquireLockAsync(d,b);try{return await c()}finally{this.releaseLock(e)}}importResumePanes(a,b){this.mutate(c=>{c.importedResumePanes&&c.legacyResumePanes.serverPid===a||(c.legacyResumePanes={serverPid:a,panes:Object.fromEntries(b)},c.importedResumePanes=!0)})}resumePanes(a){let b=this.readOnlySnapshot().legacyResumePanes;return b.serverPid===a?new Map(Object.entries(b.panes).map(([a,b])=>[a,as(b)])):new Map}rememberResumePane(a,b,c){this.mutate(d=>{d.legacyResumePanes.serverPid!==a&&(d.legacyResumePanes={serverPid:a,panes:{}}),d.legacyResumePanes.panes[b]=c,d.importedResumePanes=!0})}reconcileSpawnReceipts(a){let b=new Set([...a].map(x.pp));this.mutate(a=>{for(let c of Object.values(a.entries))b.has((0,x.pp)(c.key))&&(c.pendingAction=null);for(let c of Object.values(a.receipts)){if("starting"!==c.state||!c.artifactPath)continue;let d=Object.values(a.entries).find(a=>a.artifactPath===c.artifactPath)?.key;d&&b.has((0,x.pp)(d))&&(c.state="completed")}})}repairCompletedStructuredSpawnMarkers(){let a=(a,b)=>{if("spawn"!==b.pendingAction||null!==b.host||"dead"===b.status||"unhosted"===b.status)return!1;let c=(null==b.structuredHostOperationId?Object.values(a.receipts):[a.receipts[b.structuredHostOperationId]].filter(a=>!!a)).filter(a=>"completed"===a.state&&"structured"===a.transport&&"launch"===a.purpose&&a.engine===b.key.engine&&a.cwd===b.cwd&&a.accountId===b.accountId&&null!==a.key&&(0,x.pp)(a.key)===(0,x.pp)(b.key)&&a.artifactPath===b.artifactPath);if(1!==c.length)return!1;let d=c[0],e=b.structuredHost,f=e?.process??null,g=J(b.claimOwner??"");if(!e||e.writerClaimEpoch!==b.claimEpoch||!f||!g||!K(f)||!K(g))return!1;let h=Object.values(a.conversations).find(a=>a.engine===b.key.engine&&a.generations.at(-1)?.id===b.key.sessionId&&!a.supersededBy);return!!h&&aZ(a,d.conversationId)===h.id&&"alive"===(0,l.Ue)(f)&&"alive"===(0,l.Ue)(g)&&this.ownerAlive(f)&&this.ownerAlive(g)},b=this.readOnlySnapshot();return Object.values(b.entries).some(c=>a(b,c))?this.mutate(b=>{let c=0;for(let d of Object.values(b.entries))a(b,d)&&(d.pendingAction=null,d.updatedAt=at(),c+=1);return c}):0}completeObservedSpawn(a,b){return this.settleSpawn(a,b,"observed-completed")}ensureConversation(a,b,c){return this.mutate(d=>{let f=Object.values(d.conversations).find(c=>c.engine===a&&aQ(c,b));if(f)return as(f);let g=at(),h={id:`conversation_${e().randomUUID()}`,engine:a,generations:[{id:ax(b),path:b,accountId:c,launchProfile:(0,r.Ui)(),historyHash:null,host:null,createdAt:g,archivedAt:null}],continuityPaths:[],abandonedContinuityPaths:[],providerForkPaths:[],projectOwnership:null,pinnedAccountId:null,migration:null,migrationOptOut:null,supersededBy:null,agentRole:null,delegationDepth:null,turn:{state:"unknown",source:"empty",terminalAt:null,observedAt:null},createdAt:g,updatedAt:g};return d.conversations[h.id]=h,d.conversationRevision[a]+=1,d.engineRouting[a].revision+=1,as(h)})}reconcileConversations(a){return this.mutate(b=>{let c=new Set,d=new Map,f=function(a,b){let c=Object.values(a.receipts).flatMap(a=>{if("codex"!==a.engine||"path-pending"!==a.state||null!==a.artifactPath||!a.pathCorrelation)return[];let b=Date.parse(a.pathCorrelation.startedAt);return Number.isFinite(b)?[{launchId:a.launchId,cwd:a.pathCorrelation.cwd,accountId:a.accountId,expectedStart:b}]:[]});if(0===c.length)return new Map;let d=[];for(let c of b){if("codex"!==c.engine||!c.startedAt)continue;let b=Date.parse(c.startedAt);if(!Number.isFinite(b))continue;let e=(0,x.sz)(c.engine,c.path)?.sessionId??null;Object.values(a.conversations).filter(a=>a.engine===c.engine&&(aQ(a,c.path)||null!==e&&a.generations.some(a=>a.id===e))).some(a=>!aV(a,c.path))||d.push({path:c.path,cwd:c.launchProfile.cwd,accountId:c.accountId,observedStart:b})}let e=new Map,f=a=>JSON.stringify([a.cwd,a.accountId]),g=new Set([...c.map(f),...d.map(f)]),h=(a,b,c,d)=>{let e=a[b][c];if(!e||d.count>e.count||d.count===e.count&&d.distance<e.distance){a[b][c]={...d,assignments:d.assignments.map(a=>[...a])};return}if(d.count!==e.count||d.distance!==e.distance)return;let f=new Set(e.assignments.map(a=>JSON.stringify(a)));for(let a of d.assignments){let b=JSON.stringify(a);if(!f.has(b)&&(e.assignments.push(a),f.add(b),2===e.assignments.length))break}};for(let a of g){let b=c.filter(b=>f(b)===a).sort((a,b)=>a.expectedStart-b.expectedStart||a.launchId.localeCompare(b.launchId)),g=d.filter(b=>f(b)===a).sort((a,b)=>a.observedStart-b.observedStart||a.path.localeCompare(b.path)),i=(a,b)=>a.observedStart>=b.expectedStart-1e3&&a.observedStart<=b.expectedStart+3e4;if(b.length>1&&g.length>1){let a=g.some(a=>b.filter(b=>i(a,b)).length>1),c=b.some(a=>g.filter(b=>i(b,a)).length>1);if(a||c)continue}let j=Array.from({length:g.length+1},()=>Array(b.length+1));j[0][0]={count:0,distance:0,assignments:[[]]};for(let a=0;a<=g.length;a+=1)for(let c=0;c<=b.length;c+=1){let d=j[a][c];if(!d||(a<g.length&&h(j,a+1,c,d),c<b.length&&h(j,a,c+1,d),a>=g.length||c>=b.length))continue;let e=g[a],f=b[c];i(e,f)&&h(j,a+1,c+1,{count:d.count+1,distance:d.distance+Math.abs(e.observedStart-f.expectedStart),assignments:d.assignments.map(a=>[...a,[e.path,f.launchId]])})}let k=j.at(-1)?.at(-1)?.assignments;if(k?.length===1)for(let[a,b]of k[0])e.set(a,b)}return e}(b,a),h=new Map,i=new Map,j=a=>{for(let b of a.generations){let c=h.get(b.path)??[];c.includes(a)||c.push(a),h.set(b.path,c);let d=i.get(`${a.engine}:${b.id}`)??[];d.includes(a)||d.push(a),i.set(`${a.engine}:${b.id}`,d)}for(let b of a.continuityPaths){let c=h.get(b)??[];c.includes(a)||c.push(a),h.set(b,c)}};for(let a of Object.values(b.conversations))j(a);(function(a,b,c,d){let e=b.filter(a=>"codex"===a.engine&&"string"==typeof a.forkSourceThreadId&&a.forkSourceThreadId.length>0&&(a.forkIntent??"provider-history")==="provider-history");if(0===e.length)return!1;let f=Object.values(a.conversations).filter(a=>"codex"===a.engine),g=new Map,h=new Map;for(let a of f)for(let b of a.generations)h.set(b.id,a),g.set(b.id,a);for(let a of f)for(let b of a.continuityPaths){let c=(0,x.sz)("codex",b)?.sessionId;c&&!g.has(c)&&g.set(c,a)}let i=!1,j=e;for(let b=0;b<e.length&&j.length>0;b+=1){let b=[],e=!1;for(let f of j){let j=(0,x.sz)("codex",f.path)?.sessionId??null,k=g.get(f.forkSourceThreadId);if(!k||a.conversations[k.id]!==k){b.push(f);continue}let l=j?h.get(j):void 0;if(l&&l.id!==k.id&&!aV(l,f.path))continue;let m=(c.get(f.path)??[]).filter(b=>a.conversations[b.id]===b&&"codex"===b.engine&&aQ(b,f.path));if(m.some(a=>a.id===k.id)){k.providerForkPaths.includes(f.path)||k.generations.some(a=>a.path===f.path)||(aS(k,f.path),i=!0),j&&g.set(j,k);continue}let n=m.find(a=>aV(a,f.path));(!(m.length>0)||n)&&(!n||a6(a,n,k,f.path))&&(aS(k,f.path),a7(k.updatedAt,f.observedAt)&&(k.updatedAt=f.observedAt),d(k),j&&g.set(j,k),i=!0,e=!0)}if(!e)break;j=b}return i})(b,a,h,j)&&c.add("codex");let k=new Map,l=()=>{for(let a of(k.clear(),Object.values(b.receipts))){if("resume-successor"!==a.purpose)continue;let c=aZ(b,a.conversationId),d=k.get(c)??[];d.push(a),k.set(c,d)}};l();let n=new Map;for(let a of Object.values(b.receipts)){let b=a.artifactPath?`${a.engine}:${a.artifactPath}`:null;b&&"migration-successor"===a.purpose&&"failed"!==a.state&&"conflicted"!==a.state&&!n.has(b)&&n.set(b,a)}let o=new Map;for(let a of Object.values(b.receipts)){if("structured"!==a.transport||"pending"!==a.artifactLifecycle||!a.artifactPath)continue;let b=`${a.engine}:${a.artifactPath}`,c=o.get(b)??[];c.push(a),o.set(b,c)}for(let p of a){for(let a of o.get(`${p.engine}:${p.path}`)??[])a.artifactLifecycle="materialized";let a=(0,x.sz)(p.engine,p.path)?.sessionId??null,q=f.get(p.path);if(a&&q){let d=b.receipts[q],e=d?this.settleSpawnInFile(b,q,{key:{engine:p.engine,sessionId:a},artifactPath:p.path,cwd:d.cwd,accountId:d.accountId,status:"unhosted",host:null,claimEpoch:0,claimOwner:null,pendingAction:null},"observed-completed"):null;if(e?.kind==="settled"){c.add(p.engine),l();let a=b.conversations[aZ(b,d.conversationId)];a&&j(a)}}let s=(h.get(p.path)??[]).filter(a=>b.conversations[a.id]===a&&a.engine===p.engine&&aQ(a,p.path)),t=aX(b,s);if(t){let a=!1;for(let c of s)c.id!==t.id&&aV(c,p.path)&&(a=a6(b,c,t,p.path)||a);a&&l()}let u=a?`${p.engine}:${a}`:null,v=u?d.get(u):void 0;u&&void 0===v&&d.set(u,p.path);let w=a?aX(b,(i.get(`${p.engine}:${a}`)??[]).filter(c=>b.conversations[c.id]===c&&c.generations.some(b=>b.id===a))):null,y=null!==w&&!T(w.migration)&&(k.get(w.id)??[]).some(U),z=t??w??null,A=!1;!y&&t&&w&&t.id!==w.id&&a6(b,t,w,p.path)&&(t=w,z=w,A=!0,l());let B=w&&a?w.generations.find(b=>b.id===a):void 0,C=t?.id===w?.id&&void 0!==B&&B.path!==p.path&&!g().existsSync(B.path)&&g().existsSync(p.path);if(!y&&(!t||A||C)&&w&&B&&B.path!==p.path&&(void 0===v||v===p.path?(w.continuityPaths.includes(B.path)||w.continuityPaths.push(B.path),B.path=p.path,w.continuityPaths=w.continuityPaths.filter(a=>a!==B.path),w.abandonedContinuityPaths=w.abandonedContinuityPaths.filter(a=>a!==B.path),w.providerForkPaths=w.providerForkPaths.filter(a=>a!==B.path)):w.continuityPaths.includes(p.path)||w.continuityPaths.push(p.path),w.updatedAt=p.observedAt,j(w),c.add(p.engine)),!z){let a=n.get(`${p.engine}:${p.path}`),d=a?b.conversations[a.conversationId]:null;d&&(aR(z=d,p.path),j(z),z.updatedAt=p.observedAt,c.add(p.engine))}if(!z){let a=p.observedAt;z={id:`conversation_${e().randomUUID()}`,engine:p.engine,generations:[{id:ax(p.path),path:p.path,accountId:p.accountId,launchProfile:(0,r.Ui)({...p.launchProfile,title:(0,m.St)(p.launchProfile.title)}),historyHash:null,host:null,createdAt:a,archivedAt:null}],continuityPaths:[],abandonedContinuityPaths:[],providerForkPaths:[],projectOwnership:null,pinnedAccountId:null,migration:null,migrationOptOut:null,supersededBy:null,agentRole:null,delegationDepth:null,turn:{...p.turn,observedAt:p.observedAt},createdAt:a,updatedAt:a},b.conversations[z.id]=z,j(z),aY(b,z,p.path,p.observedAt),c.add(p.engine);continue}let D=z.generations.find(a=>a.path===p.path);if(!D)continue;let E=D.accountId,F=D.launchProfile.role,G=z.turn.state,H=b.lineageEdges[z.id],I=p.launchProfile.parentConversationId;D.accountId=p.accountId??D.accountId,D.launchProfile={...D.launchProfile,...p.launchProfile,cwd:D.launchProfile.cwd||p.launchProfile.cwd,model:D.launchProfile.model??p.launchProfile.model,effort:D.launchProfile.effort??p.launchProfile.effort,fast:D.launchProfile.fast??p.launchProfile.fast,permissionMode:D.launchProfile.permissionMode??p.launchProfile.permissionMode,readOnly:D.launchProfile.readOnly??p.launchProfile.readOnly,sandbox:D.launchProfile.sandbox??p.launchProfile.sandbox??null,mcpServers:D.launchProfile.mcpServers,title:(0,m.St)(D.launchProfile.title)??(0,m.St)(p.launchProfile.title),project:p.launchProfile.project??D.launchProfile.project,parentConversationId:H?.source==="viewer-spawn"?H.parentConversationId:I??D.launchProfile.parentConversationId,role:"root"===D.launchProfile.role||"root"===p.launchProfile.role?"root":"worker",goal:p.launchProfile.goal??D.launchProfile.goal,plan:p.launchProfile.plan??D.launchProfile.plan},aY(b,z,p.path,p.observedAt),(void 0===p.expectedTurnObservedAt||p.expectedTurnObservedAt===z.turn.observedAt)&&a7(z.turn.observedAt,p.observedAt)&&(z.turn={...p.turn,observedAt:p.observedAt}),a7(z.updatedAt,p.observedAt)&&(z.updatedAt=p.observedAt),(E!==D.accountId||F!==D.launchProfile.role||G!==z.turn.state)&&c.add(p.engine)}let p=(a,c)=>aX(b,(h.get(a)??[]).filter(d=>b.conversations[d.id]===d&&d.engine===c&&aQ(d,a))),q=(a,c)=>{let d=new Set,e=c;for(;e&&!d.has(e);){if(e===a)return!0;d.add(e);let c=b.lineageEdges[e]?.parentConversationId;e=c?aZ(b,c):void 0}return!1};for(let d of a){if(!d.parentArtifactPath)continue;let a=p(d.path,d.engine);if(!a||b.lineageEdges[a.id]?.source==="viewer-spawn")continue;let e=p(d.parentArtifactPath,d.engine);if(!e)continue;let f=aZ(b,e.id);if(f===a.id||q(a.id,f))continue;let g=a.generations.find(a=>a.path===d.path)??a.generations.at(-1);if(!g)continue;g.launchProfile.parentConversationId!==f&&(g.launchProfile={...g.launchProfile,parentConversationId:f});let h=b.lineageEdges[a.id]?.parentConversationId??null;aY(b,a,d.path,d.observedAt),(b.lineageEdges[a.id]?.parentConversationId??null)!==h&&c.add(d.engine)}for(let a of c)b.conversationRevision[a]+=1,b.engineRouting[a].revision+=1;return as(b)})}conversationForPath(a){let b=Object.values(this.readOnlySnapshot().conversations).find(b=>aQ(b,a));return b?as(b):null}canonicalConversationId(a){return aZ(this.readOnlySnapshot(),a)}recordSupersedence(a,b,c="manual"){return this.mutate(d=>{let e=aZ(d,a),f=aZ(d,b);if(e===f)throw Error("a conversation cannot supersede itself");let g=a0(d,e,f,c);if(!g)throw Error("supersedence could not be recorded");return as(g)})}supersedenceChainTail(a){return a$(this.readOnlySnapshot(),a)}supersedenceConflict(a){let b=this.readOnlySnapshot(),c=a$(b,a),d=b.conversations[c];return d&&a_(b,d)?c:null}clearSupersedence(a){return this.mutate(b=>{let c=b.conversations[aZ(b,a)];if(!c)return null;for(let[a,d]of(c.supersededBy&&(c.supersededBy=null,c.updatedAt=at(),b.conversationRevision[c.engine]+=1),Object.entries(b.pendingSupersedence)))a$(b,d.predecessorConversationId)===c.id&&delete b.pendingSupersedence[a];return as(c)})}conversation(a){let b=this.readOnlySnapshot(),c=b.conversations[aZ(b,a)];return c?as(c):null}launchProfileForPath(a){let b=this.readOnlySnapshot();for(let c of Object.values(b.conversations)){let b=c.generations.find(b=>b.path===a);if(b)return as(b.launchProfile);if(c.continuityPaths.includes(a)){let a=c.generations.at(-1);if(a)return as(a.launchProfile)}}let c=Object.values(b.receipts).find(b=>b.artifactPath===a);return c?as(c.launchProfile):null}transcriptAccountId(a,b){let c=this.readOnlySnapshot();for(let d of Object.values(c.conversations)){if(d.engine!==a)continue;let c=d.generations.find(a=>a.path===b);if(c?.accountId)return c.accountId;if(d.continuityPaths.includes(b)){let a=d.generations.at(-1);if(a?.accountId)return a.accountId}}let d=Object.values(c.receipts).find(c=>c.artifactPath===b&&c.engine===a);return d?.accountId??null}updateConversationLaunchProfile(a,b){return this.mutate(c=>{let d=c.conversations[aZ(c,a)],e=d?.generations.at(-1);if(!d||!e)throw Error("viewer conversation is unknown");return aA(c,d,e,b),as(d)})}claimConversationReconfigure(a,b){if(!b.operationId||!Number.isSafeInteger(b.revision)||b.revision<0)throw Error("conversation reconfigure ownership is invalid");return this.mutate(c=>{let d=c.conversations[aZ(c,a)],e=d?.generations.at(-1);if(!d||!e)throw Error("viewer conversation is unknown");let f=d.reconfigure??null;if(d.reconfigureWithdrawals?.some(a=>a.operationId===b.operationId))return{kind:"withdrawn",state:f?as(f):null,conversation:as(d)};if(f&&(f.revision>b.revision||f.revision===b.revision&&f.operationId!==b.operationId))return{kind:"stale",state:as(f),conversation:as(d)};if(f?.operationId===b.operationId&&f.revision===b.revision){if(JSON.stringify(f.profile)!==JSON.stringify(b.profile)||f.accountId!==(b.accountId??null))throw Error("conversation reconfigure replay conflicts with durable ownership");return{kind:"replayed",state:as(f),conversation:as(d)}}let g=void 0!==b.accountId&&b.accountId===e.accountId&&d.migration?.targetId!==b.accountId,h=void 0!==b.accountId&&d.migration?.targetId===b.accountId,i=f?.status==="applying"?f.keepsHeldFrom??null:null;if(f?.status==="applying"&&null!==f.accountId)if(h&&!g)!function(a,b,c,d){let e=b.migration;if(!e||["committed","rolled-back","failed-recoverable"].includes(e.phase))return;let f=a.migrationIntents[e.intentId];f?.scope==="conversation"&&f.requestIds.includes(ae(c))&&(f.requestIds=[...f.requestIds.filter(a=>!a.startsWith("reconfigure:")),ae(d)],f.updatedAt=at(),b.updatedAt=f.updatedAt)}(c,d,f,b);else{let a=void 0!==b.accountId&&b.accountId!==e.accountId,g=al(c,d,f,a?"keep":"rearm");a?g&&(i&&ah(c,d,g.operationId,{keptFrom:i}),i=g.operationId):(i&&ak(c,d,i,at()),i=null)}let j=f?.status==="applying"?f.previousProfile:b.previousProfile??{model:e.launchProfile.model,effort:e.launchProfile.effort,fast:e.launchProfile.fast},k={operationId:b.operationId,revision:b.revision,status:"applying",profile:as(b.profile),previousProfile:as(j),accountId:b.accountId??null,error:null,...i?{keepsHeldFrom:i}:{}};return aA(c,d,e,k.profile),d.reconfigure=k,{kind:"claimed",state:as(k),conversation:as(d)}})}settleConversationReconfigure(a,b,c,d,e=null){return this.mutate(f=>{let g=f.conversations[aZ(f,a)],h=g?.generations.at(-1);if(!g||!h)throw Error("viewer conversation is unknown");let i=g.reconfigure??null;return i&&i.operationId===b&&i.revision===c?i.status===d?{kind:"replayed",state:as(i),conversation:as(g)}:"applying"!==i.status?{kind:"stale",state:as(i),conversation:as(g)}:("failed"===d&&(al(f,g,i),aA(f,g,h,i.previousProfile)),i.status=d,i.error="failed"===d?e:null,g.updatedAt=at(),i.keepsHeldFrom&&(ak(f,g,i.keepsHeldFrom,g.updatedAt),delete i.keepsHeldFrom),{kind:"settled",state:as(i),conversation:as(g)}):{kind:"stale",state:i?as(i):null,conversation:as(g)}})}withdrawConversationReconfigure(a,b){if(!b)throw Error("reconfigure operation id is required");return this.mutate(c=>{let d=c.conversations[aZ(c,a)];if(!d)throw Error("viewer conversation is unknown");let e=d.reconfigure??null;if(e?.operationId===b)return{kind:"applying"===e.status?"claimed":"cancelled"===e.status?"replayed":"settled",conversation:as(d)};let f=d.reconfigureWithdrawals??[];if(f.some(a=>a.operationId===b))return{kind:"replayed",conversation:as(d)};let g=at();return d.reconfigureWithdrawals=[...f,{operationId:b,at:g}].slice(-20),d.updatedAt=g,{kind:"withdrawn",conversation:as(d)}})}reconfigureCancelled(a,b){let c=this.readOnlySnapshot(),d=c.conversations[aZ(c,a)];return!!d&&(d.reconfigure?.operationId===b&&"cancelled"===d.reconfigure.status||!!d.reconfigureWithdrawals?.some(a=>a.operationId===b))}cancelConversationSwitch(a,b){return this.mutate(c=>{let d=c.conversations[aZ(c,a)],e=d?.migration,f=d?.generations.at(-1);if(!d||!e||!f)throw Error("conversation has no migration");if(e.revision!==b)throw Error("migration revision is stale");let g=c.migrationIntents[e.intentId],h=d.reconfigure??null,i=!!(h&&g?.requestIds.includes(ae(h)));if("rolled-back"===e.phase){if(h?.status==="cancelled"&&i)return{kind:"replayed",conversation:as(d)};throw Error("switch is no longer pending")}if(!N.has(e.phase))throw Error("switch has already started");let j=at(),k=new Set([f.path].filter(a=>!!a)),l=W(c,d.engine,k);return _(c,d,j),c.engineRouting[d.engine].activeAccountId===e.targetId&&(d.migrationOptOut={targetId:e.targetId,updatedAt:j}),g?.scope==="conversation"&&"stopped"!==g.state&&(g.state="stopped",g.stoppedAt=j,g.updatedAt=j),h?.status==="applying"&&i&&(h.status="cancelled",h.error=null,aA(c,d,f,h.previousProfile)),d.migration={...e,phase:"rolled-back",error:null,errorCode:null,updatedAt:j},ag(c,d,{migration:e},j),d.updatedAt=j,Y(c,d.engine,l,k),{kind:"cancelled",conversation:as(d)}})}reconfigureOwnedCancellableSwitch(a){let b=this.readOnlySnapshot(),c=b.conversations[aZ(b,a)],d=c?.migration,e=c?.reconfigure;return!!d&&!!e&&"applying"===e.status&&!!N.has(d.phase)&&b.migrationIntents[d.intentId]?.requestIds.includes(ae(e))===!0}canonicalPath(a){let b=this.conversationForPath(a);return b?.generations.at(-1)?.path??a}setEngineRouting(a,b){return(0,n.oV)(()=>this.mutate(c=>{let d=c.engineRouting[a];return d.activeAccountId=b,d.revision+=1,d.revision}))}engineRouting(a){return as(this.readOnlySnapshot().engineRouting[a])}migrationScope(a,b){return function(a,b,c){let d={total:0,idle:0,busy:0,deferred:0,alreadyTarget:0},e=S(a);for(let f of Object.values(a.conversations)){if(f.engine!==b||f.pinnedAccountId)continue;let g=f.generations.at(-1);if(g&&null!==g.accountId){if(g.accountId===c){d.alreadyTarget+=1;continue}d.total+=1,d[Q(a,f,e)]+=1}}return d}(this.readOnlySnapshot(),a,b)}retireAccount(a,b,c,d={}){(0,n.oV)(()=>this.mutate(e=>{if((0,v.Vm)(e,a,b,d).length>0)throw Error("account has current conversations");let f=at(),g=e.engineRouting[a];g.activeAccountId===b&&(g.activeAccountId=c,g.revision+=1);let h=new Set;for(let c of Object.values(e.migrationIntents))c.engine===a&&c.targetId===b&&(h.add(c.id),"stopped"!==c.state&&(c.state="stopped",c.revision+=1,c.updatedAt=f,c.stoppedAt=f));if(0!==h.size)for(let a of Object.values(e.conversations))a.migration&&h.has(a.migration.intentId)&&(aU(a),_(e,a,f),aa(e,a,s.JJ),a.migration=null,a.updatedAt=f,e.conversationRevision[a.engine]+=1)}))}commitMigrationIntent(a){let b="auto"===a.origin?(0,p.$8)():null;return(0,n.oV)(()=>this.mutate(c=>{let d=Object.values(c.migrationIntents).find(b=>b.engine===a.engine&&b.requestIds.includes(a.requestId));if(d)return as(d);let f=c.engineRouting[a.engine];if(f.revision!==a.expectedRevision)throw new am(a.expectedRevision,f.revision);let g=Object.values(c.migrationIntents).find(b=>b.engine===a.engine&&"draining"===b.state&&P(b));if(g?.origin==="manual"&&"auto"===a.origin)return as(g);let h=at();g?(g.requestIds.push(a.requestId),g.targetId=a.targetId,g.origin=a.origin,g.revision+=1,g.evidence=a.evidence??null,g.updatedAt=h):(g={id:e().randomUUID(),engine:a.engine,targetId:a.targetId,origin:a.origin,revision:1,state:"draining",createdAt:h,updatedAt:h,requestIds:[a.requestId],evidence:a.evidence??null,stoppedAt:null},c.migrationIntents[g.id]=g),f.activeAccountId=a.targetId,f.revision+=1;let i=0;for(let d of Object.values(c.conversations)){if(d.engine!==a.engine||d.pinnedAccountId||("manual"===a.origin&&d.migrationOptOut?.targetId===a.targetId&&(d.migrationOptOut=null),"auto"===a.origin&&d.migrationOptOut?.targetId===a.targetId))continue;let e=d.generations.at(-1);if(!e||null===e.accountId||e.accountId===a.targetId){e&&d.migration&&"committed"!==d.migration.phase&&(aU(d),_(c,d,h),aa(c,d,s.JJ),d.migration=null,d.updatedAt=h);continue}if(b&&"available"!==(0,q.h)({project:(0,o.o)(d.projectOwnership,e.launchProfile),engine:a.engine,targetId:a.targetId,model:e.launchProfile.model,observations:Object.values(c.quotaObservations[a.engine]),bindings:b}).kind)continue;let f=Q(c,d);((a.scope??"all")!=="active"||"deferred"!==f)&&(i+=1,_(c,d,h),d.migration=Z(d,e,g,"busy"===f?"waiting-turn":"requested",h),d.updatedAt=h)}return 0===i&&(g.state="complete"),as(g)}))}requestConversationMigrationToActiveAccount(a){let b=(0,p.$8)();return this.mutate(c=>{let d=aZ(c,a),f=c.conversations[d];if(!f)throw Error("viewer conversation is unknown");if(f.pinnedAccountId)return as(f);let g=c.engineRouting[f.engine].activeAccountId,h=f.generations.at(-1);if(!g||!h||null===h.accountId||h.accountId===g||f.migrationOptOut?.targetId===g||"available"!==(0,q.h)({project:(0,o.o)(f.projectOwnership,h.launchProfile),engine:f.engine,targetId:g,model:h.launchProfile.model,observations:Object.values(c.quotaObservations[f.engine]),bindings:b}).kind||f.migration?.targetId===g&&!["committed","rolled-back"].includes(f.migration.phase))return as(f);let i=at(),j=Object.values(c.migrationIntents).filter(a=>a.engine===f.engine&&a.targetId===g&&"stopped"!==a.state&&P(a)).sort((a,b)=>b.updatedAt.localeCompare(a.updatedAt))[0];j?("draining"!==j.state&&(j.revision+=1),j.state="draining",j.updatedAt=i):(j={id:e().randomUUID(),engine:f.engine,targetId:g,origin:"manual",revision:1,state:"draining",createdAt:i,updatedAt:i,requestIds:[`lazy:${c.engineRouting[f.engine].revision}:${d}`],evidence:null,stoppedAt:null},c.migrationIntents[j.id]=j);let k="busy"===Q(c,f)?"waiting-turn":"requested",l=ai(f);return _(c,f,i),f.migration=Z(f,h,j,k,i),aj(c,f,l),f.updatedAt=i,c.conversationRevision[f.engine]+=1,c.engineRouting[f.engine].revision+=1,as(f)})}requestConversationReseat(a,b,c){return this.mutate(d=>{let f=aZ(d,a),g=d.conversations[f];if(!g)throw Error("viewer conversation is unknown");if(c&&(g.reconfigure?.operationId!==c.operationId||g.reconfigure.revision!==c.revision||"applying"!==g.reconfigure.status))throw Error("conversation reconfigure is superseded");let h=g.generations.at(-1);if(!h||null===h.accountId||h.accountId===b)return as(g);let i=ai(g);if(g.migration&&!["committed","rolled-back","failed-recoverable"].includes(g.migration.phase)){if(!c)return as(g);if(g.migration.targetId===b){aj(d,g,null,g.reconfigure);let a=d.migrationIntents[g.migration.intentId];if(a?.scope==="conversation"){let b=ae(c);a.requestIds=[...a.requestIds.filter(a=>!a.startsWith("reconfigure:")),b],a.updatedAt=at(),g.updatedAt=a.updatedAt}return as(g)}let a=at(),e=d.migrationIntents[g.migration.intentId];e?.scope==="conversation"&&"stopped"!==e.state&&(e.state="stopped",e.stoppedAt=a,e.updatedAt=a),aU(g),_(d,g,a),g.migration={...g.migration,pendingContinuityPaths:[]}}let j=at();g.migrationOptOut?.targetId===b&&(g.migrationOptOut=null);let k=c?ae(c):`reseat:${f}:${h.id}`,l=Object.values(d.migrationIntents).filter(a=>"conversation"===a.scope&&a.engine===g.engine&&a.targetId===b&&"stopped"!==a.state&&(c?a.requestIds.includes(k):a.requestIds.some(a=>a.startsWith(`reseat:${f}:`)))).sort((a,b)=>b.updatedAt.localeCompare(a.updatedAt))[0];l?(l.requestIds.includes(k)||l.requestIds.push(k),"draining"!==l.state&&(l.revision+=1),l.state="draining",l.updatedAt=j):(l={id:e().randomUUID(),engine:g.engine,targetId:b,origin:"manual",scope:"conversation",revision:1,state:"draining",createdAt:j,updatedAt:j,requestIds:[k],evidence:null,stoppedAt:null},d.migrationIntents[l.id]=l);let m="busy"===Q(d,g)?"waiting-turn":"requested";return _(d,g,j),g.migration=Z(g,h,l,m,j),aj(d,g,i,c?g.reconfigure??null:null),g.updatedAt=j,d.conversationRevision[g.engine]+=1,d.engineRouting[g.engine].revision+=1,as(g)})}upsertMigrationIntent(a,b,c,d,f=null){return this.mutate(g=>{let h=Object.values(g.migrationIntents).find(b=>b.engine===a&&"draining"===b.state&&P(b));if(h)return"manual"===h.origin&&"auto"===c||(h.requestIds.includes(d)||h.requestIds.push(d),(h.targetId!==b||h.origin!==c)&&(h.targetId=b,h.origin=c,h.revision+=1,h.evidence=f),h.updatedAt=at()),as(h);let i=at(),j={id:e().randomUUID(),engine:a,targetId:b,origin:c,revision:1,state:"draining",createdAt:i,updatedAt:i,requestIds:[d],evidence:f,stoppedAt:null};return g.migrationIntents[j.id]=j,as(j)})}setConversationMigration(a,b){return this.mutate(c=>{let d=aZ(c,a),e=c.conversations[d];if(!e)throw Error("viewer conversation is unknown");let f=e.generations.at(-1);return e.migration=b?{...b,errorCode:b.errorCode??null,operationId:b.operationId??`${b.intentId}:${d}:${b.revision}`,sourceGenerationId:b.sourceGenerationId??f?.id??"",successorLaunchProfile:b.successorLaunchProfile??null,providerReceipt:b.providerReceipt??null,pendingContinuityPaths:b.pendingContinuityPaths??[],boardProject:b.boardProject??null,boardOperationId:b.boardOperationId??null,boardPlacementProject:b.boardPlacementProject??b.boardProject??null}:null,e.updatedAt=at(),as(e)})}transitionConversationMigration(a,b,c,d){return this.mutate(e=>{let f=e.conversations[aZ(e,a)],g=f?.migration;if(!f||!g)throw Error("conversation has no migration");if(g.revision!==b||!c.includes(g.phase))throw Error("migration transition is stale");return f.migration={...g,...d,updatedAt:at()},f.updatedAt=at(),as(f)})}persistMigrationProviderReceipt(a,b,c,d){return this.mutate(e=>{let f=e.conversations[aZ(e,a)],g=f?.migration;if(!f||!g)throw Error("conversation has no migration");if(g.revision!==b||g.operationId!==c)throw Error("migration provider receipt is stale");if("successor-starting"===g.phase){for(let a of[...new Set([...d.continuityPaths,d.path])])aR(f,a);return f.migration={...g,phase:"verifying",providerReceipt:d,updatedAt:at()},f.updatedAt=at(),as(f)}let h=null!==g.providerReceipt&&(0,r.WB)(g.providerReceipt,d);if(("verifying"===g.phase||"committed"===g.phase)&&h)return as(f);throw Error("migration provider receipt conflicts with durable state")})}recordConversationContinuityPath(a,b){return this.mutate(c=>{let d=aZ(c,a),e=c.conversations[d];if(!e)throw Error("viewer conversation is unknown");return aT(c,e,b),aR(e,b),e.updatedAt=at(),as(e)})}recordMigrationContinuityPath(a,b,c){return this.mutate(d=>{let e=aZ(d,a),f=d.conversations[e];if(!f)throw Error("viewer conversation is unknown");aT(d,f,b);let g=f.migration;if(g?.phase==="successor-starting"&&g.operationId===c.operationId&&g.revision===c.revision)aR(f,b);else!f.generations.some(a=>a.path===b)&&(f.continuityPaths.includes(b)||f.continuityPaths.push(b),f.abandonedContinuityPaths.includes(b)||f.abandonedContinuityPaths.push(b));return f.updatedAt=at(),as(f)})}markMigrationBoardProjects(a){0!==a.length&&this.mutate(b=>{let c=at();for(let d of a){let a=b.conversations[aZ(b,d.id)],e=a?.migration;a&&e&&"committed"===e.phase&&e.operationId===d.operationId&&(e.boardProject=d.project,e.boardOperationId=d.operationId,e.boardPlacementProject=d.project,e.updatedAt=c,a.updatedAt=c)}})}markMigrationBoardPlacementProjects(a){0!==a.length&&this.mutate(b=>{let c=at();for(let d of a){let a=b.conversations[aZ(b,d.id)],e=a?.migration;a&&e&&"committed"===e.phase&&e.operationId===d.operationId&&(e.boardPlacementProject=d.project,e.updatedAt=c,a.updatedAt=c)}})}retryConversationMigration(a,b){return this.mutate(c=>{let d=c.conversations[aZ(c,a)],f=d?.migration;if(!d||!f)throw Error("conversation has no migration");if(void 0!==b&&f.revision!==b)throw Error("migration revision is stale");let g=c.migrationIntents[f.intentId];if(!g||"stopped"===g.state)throw Error("migration intent is inactive");let h=d.generations.at(-1);if(!h)throw Error("conversation has no source generation");let i=$(c,d,h,g);if("refused"===i.kind){let a=at();return d.migration={...f,error:i.reason,updatedAt:a},d.updatedAt=a,as(d)}return"complete"===g.state&&"failed-recoverable"===f.phase&&(g.state="draining",g.updatedAt=at()),d.migration={...f,phase:R(c,d)?"waiting-turn":"requested",targetId:g.targetId,revision:g.revision,operationId:"codex-fork-outcome-unknown"===f.errorCode||f.revision===g.revision?f.operationId:e().randomUUID(),sourceGenerationId:h.id,successorLaunchProfile:f.revision===g.revision?f.successorLaunchProfile??null:null,providerReceipt:null,pendingContinuityPaths:"committed"===f.phase?[]:f.pendingContinuityPaths,boardProject:f.boardProject,boardOperationId:f.boardOperationId,boardPlacementProject:f.boardPlacementProject,error:null,errorCode:null,updatedAt:at()},d.migration.operationId!==f.operationId&&ah(c,d,d.migration.operationId,{migration:f}),d.updatedAt=at(),as(d)})}commitSuccessor(a,b,c,d,e){return this.mutate(f=>{let g=f.conversations[aZ(f,a)],h=g?.migration,i=e.operationId===d&&e.nativeId===b.id&&e.path===b.path&&(void 0===b.historyHash||e.historyHash===b.historyHash)&&(void 0===b.host||(0,j.isDeepStrictEqual)(e.host,b.host)),k=h?.providerReceipt!==null&&h?.providerReceipt!==void 0&&(0,r.WB)(h.providerReceipt,e);if(!g||!h||h.revision!==c||h.operationId!==d||h.targetId!==b.accountId||!k||!i)throw Error("migration succession ownership is stale");if("committed"===h.phase){let a=g.generations.at(-1);if(a?.id===b.id&&a.path===b.path)return as(g);throw Error("migration succession is already committed")}if("verifying"!==h.phase)throw Error("migration succession is not ready to commit");let l=g.generations.at(-1);if(!l)throw Error("viewer conversation has no native generation");let m=at();l.archivedAt=m;let n={...b,launchProfile:(0,r.Ui)(b.launchProfile??l.launchProfile),historyHash:b.historyHash??null,host:b.host??null,createdAt:m,archivedAt:null};g.generations.push(n),g.continuityPaths=g.continuityPaths.filter(a=>a!==n.path);let o=new Set(h.pendingContinuityPaths);return g.abandonedContinuityPaths=g.abandonedContinuityPaths.filter(a=>!o.has(a)),g.migration={...h,phase:"committed",updatedAt:at()},g.updatedAt=at(),aa(f,g,s.uK),f.conversationRevision[g.engine]+=1,f.engineRouting[g.engine].revision+=1,as(g)})}setMigrationIntentState(a,b,c,d=s.JJ){return this.mutate(e=>{let f=e.migrationIntents[a];if(!f)throw Error("migration intent is unknown");if(void 0!==c&&f.revision!==c)throw Error("migration intent revision is stale");let g=new Set(Object.values(e.conversations).filter(a=>a.engine===f.engine).map(a=>a.generations.at(-1)?.path).filter(a=>!!a)),h=W(e,f.engine,g);if(f.state=b,f.stoppedAt="stopped"===b?at():f.stoppedAt,f.updatedAt=at(),"stopped"===b)for(let b of Object.values(e.conversations)){if(b.engine!==f.engine)continue;let c=b.generations.at(-1);if(e.engineRouting[b.engine].activeAccountId===f.targetId&&c?.accountId!==f.targetId&&(b.migrationOptOut={targetId:f.targetId,updatedAt:f.updatedAt},b.updatedAt=f.updatedAt),b.migration?.intentId===a&&"committed"!==b.migration.phase){if(_(e,b,f.updatedAt),"rolled-back"===b.migration.phase){for(let c of Object.values(e.heldDeliveries))aZ(e,c.conversationId)===b.id&&ad(e,c.id,a,d);continue}b.migration={...b.migration,phase:"rolled-back",error:null,errorCode:null,updatedAt:f.updatedAt},aa(e,b,d.slice(0,240))}}return Y(e,f.engine,h,g),as(f)})}autoBalancePolicy(a){return as(this.readOnlySnapshot().autoBalance[a])}quotaObservations(a){return as(Object.values(this.readOnlySnapshot().quotaObservations[a]))}recordQuotaObservation(a){this.mutate(b=>{b.quotaObservations[a.engine][a.accountId]=as(a)})}recordQuotaEvaluation(a){return this.mutate(b=>{for(let c of a.observations)c.engine===a.engine&&(b.quotaObservations[a.engine][c.accountId]=c);let c=b.autoBalance[a.engine];c.lastCheckAt=a.now;let d=!1;if(a.signature)if(c.sustain&&c.sustain.signature===a.signature&&c.sustain.bootId===a.bootId){let b=Date.parse(c.sustain.firstAt);c.sustain.lastAt=a.now,(d=Number.isFinite(b)&&Date.parse(a.now)-b>=a.minimumGapMs)&&(c.sustain=null,c.lastTrigger=a.evidence??null)}else c.sustain={signature:a.signature,firstAt:a.now,lastAt:a.now,bootId:a.bootId};else c.sustain=null;return c.revision+=1,{sustained:d,routeRevision:b.engineRouting[a.engine].revision,policy:as(c)}})}setAutoBalancePolicy(a,b,c){return this.mutate(d=>{let e=d.autoBalance[a];if(void 0!==c&&e.revision!==c)throw Error("automatic balance policy revision is stale");return e.enabled=b,b||(e.sustain=null),e.revision+=1,as(e)})}recordAutoBalanceOutcome(a,b,c,d){return this.mutate(e=>{let f=e.autoBalance[a];return f.cooldownUntil=d,f.lastOutcome={at:at(),kind:"complete"===b?"switched":"failed-partial"===b?"failed":"skipped",fromId:c?.sourceId??null,fromPercent:c?.sourcePercent??null,toId:c?.targetId??null,toPercent:c?.targetPercent??null,window:c?.sourceWindow??null,detail:"failed-partial"===b?"one or more sessions need operator recovery":null},f.lastTrigger=c,c&&(f.departed[c.sourceId]=at()),f.revision+=1,as(f)})}holdDelivery(a,b,c=null,d="text",f=[],g=null,h={},i={}){if("text"===d&&!b)throw Error("held delivery must contain at most 32000 characters");if("runtime-images"===d&&0===f.length)throw Error("runtime-images delivery requires image references");(0,G.h1)(b);let j=i.recoveryIntent??null;return this.mutate(i=>{let k=aN(i,a,b,c,g,h),{canonicalId:l,existing:m,requestDigest:n}=k;if(k.supersededFailed){let a=i.heldDeliveries[k.supersededFailed.id];a&&(a.clientMessageId=null)}let o=i.conversations[l],p=new Set([o?.generations.at(-1)?.path].filter(a=>!!a)),q=o?W(i,o.engine,p):"",r=o?.migration&&["waiting-turn","requested","preparing","successor-starting","verifying"].includes(o.migration.phase),s=o?.generations.at(-1),t=a=>("delivered"===a.state||aM(i,a)?aH(i,a):(a.deliveredAt=null,a.error=null,j&&(a.recoveryIntent=j),r?(a.state="held",a.fencedBy=o.migration.operationId,a.generationId=null,a.assignedAt=null):s?(a.state="assigned",a.fencedBy=null,a.generationId=s.id,a.assignedAt=at()):(a.state="failed",a.generationId=null,a.assignedAt=null,a.error="delivery target is unavailable and remains recoverable"),aH(i,a),o&&Y(i,o.engine,q,p)),as(a));if(m)return m.error===aD?as(m):t(m);let u=aO(k,b,c,d,f,g);if(u)return u;let v=e().randomUUID(),w={id:v,conversationId:l,runtimeConversationId:l,text:b,createdAt:at(),clientMessageId:c,payloadKind:d,runtimeImages:f.map(a=>({...a})),contentDigest:g,artifactPaths:[],command:aB(h,v),requestDigest:n,recoveryIntent:j,state:"held",generationId:null,attempts:0,assignedAt:null,deliveredAt:null,error:null};if(aP(i,l,this.now()),Object.values(i.heldDeliveries).filter(a=>a.conversationId===l&&["held","assigned","delivery-uncertain"].includes(a.state)).length>=100)throw Error("held delivery limit reached for conversation");return i.heldDeliveries[w.id]=w,i.deliveryOperationOwners[w.command.operationId]??={conversationId:l,runtimeConversationId:w.runtimeConversationId,clientMessageId:c,deliveryId:w.id,command:w.command,requestDigest:w.requestDigest,contentDigest:w.contentDigest,createdAt:w.createdAt,retryOfOperationId:null,terminalState:null,terminalDisposition:null,terminalReason:null,settledAt:null},t(w)})}preflightDeliveryReservation(a,b,c,d,e,f,g={}){return aO(aN(this.readOnlySnapshot(),a,b,c,f,g),b,c,d,e,f)}pendingDeliveries(a){let b=this.readOnlySnapshot(),c=aZ(b,a);return as(Object.values(b.heldDeliveries).filter(a=>a.conversationId===c&&"delivered"!==a.state).sort((a,b)=>a.createdAt.localeCompare(b.createdAt)||a.id.localeCompare(b.id)))}terminalizeHeldDelivery(a,b){return this.mutate(c=>{let d=c.heldDeliveries[a];if(!d)throw Error("held delivery is unknown");return"delivered"!==d.state&&ab(c,d,b),as(d)})}drainDeadSupersededHeldDeliveries(){let a=this.readOnlySnapshot(),b=Object.values(a.heldDeliveries).filter(b=>ac(a,b,this.ownerAlive)).map(a=>a.id);return 0===b.length?[]:this.mutate(a=>b.flatMap(b=>{let c=a.heldDeliveries[b];return c&&ac(a,c,this.ownerAlive)?(ab(a,c,"delivery expired because its superseded target session is dead"),aP(a,c.conversationId,this.now()),[b]):[]}))}terminalizeRolledBackMigrationDelivery(a,b,c){return this.mutate(d=>ad(d,a,b,c))}compactDeliveryReservations(){return this.mutate(a=>aP(a,void 0,this.now()))}queueSuccessorCleanup(a,b){this.mutate(c=>{let d=c.pendingSuccessorCleanups[b.operationId];c.pendingSuccessorCleanups[b.operationId]=d??{conversationId:aZ(c,a),receipt:b,createdAt:at(),lastError:null}})}recordSuccessorCleanupFailure(a,b){this.mutate(c=>{let d=c.pendingSuccessorCleanups[a];d&&(d.lastError=b.slice(0,240))})}completeSuccessorCleanup(a){this.mutate(b=>{delete b.pendingSuccessorCleanups[a]})}beginDeliveryAttempt(a,b){return this.mutate(c=>{let d=c.heldDeliveries[a];if(!d||"assigned"!==d.state||d.generationId!==b)return null;let e=c.conversations[aZ(c,d.conversationId)],f=new Set([e?.generations.at(-1)?.path].filter(a=>!!a)),g=e?W(c,e.engine,f):"";return e?.migration&&["waiting-turn","requested","preparing","successor-starting","verifying"].includes(e.migration.phase)||e?.generations.at(-1)?.id!==b?null:(d.state="delivery-uncertain",d.attempts+=1,d.error="delivery started; recovery requires an explicit outcome",aH(c,d),e&&Y(c,e.engine,g,f),as(d))})}recordDeliveryArtifacts(a,b){return this.mutate(c=>{let d=c.heldDeliveries[a];if(!d)throw Error("held delivery is unknown");if("delivery-uncertain"!==d.state)throw Error("delivery attempt has not started");return d.artifactPaths=[...new Set(b)],as(d)})}restoreSnapshot(a,b){(0,n.oV)(()=>this.mutate(c=>{Object.assign(c,function a(b,c,d){if(JSON.stringify(c)===JSON.stringify(d))return b;if(JSON.stringify(b)===JSON.stringify(c))return void 0===d?void 0:as(d);if(b&&c&&d&&"object"==typeof b&&"object"==typeof c&&"object"==typeof d&&!Array.isArray(b)&&!Array.isArray(c)&&!Array.isArray(d)){let e={...b};for(let f of new Set([...Object.keys(c),...Object.keys(d)])){let g=a(b[f],c[f],d[f]);void 0===g?delete e[f]:e[f]=g}return e}return b}(c,a,b))}))}recordDeliveryRetryAttempt(a,b){return!!b&&b!==a&&this.mutate(c=>{if(c.deliveryOperationOwners[b])return!0;let d=c.deliveryOperationOwners[a],e=d?c.heldDeliveries[d.deliveryId]:Object.values(c.heldDeliveries).find(b=>b.command.operationId===a),f=d??(e?{conversationId:e.conversationId,runtimeConversationId:e.runtimeConversationId,clientMessageId:e.clientMessageId,deliveryId:e.id,command:e.command,requestDigest:e.requestDigest??"",contentDigest:e.contentDigest}:null);return!!f?.requestDigest&&(c.deliveryOperationOwners[b]={conversationId:f.conversationId,runtimeConversationId:f.runtimeConversationId,clientMessageId:f.clientMessageId,deliveryId:f.deliveryId,command:{...f.command,operationId:b},requestDigest:f.requestDigest,contentDigest:f.contentDigest,createdAt:at(),retryOfOperationId:a,terminalState:null,terminalDisposition:null,terminalReason:null,settledAt:null},!0)})}settleDeliveryRetryAttempt(a,b,c=null,d){return this.mutate(e=>{let f=e.deliveryOperationOwners[a];return f?.retryOfOperationId&&null===f.terminalState?(f.terminalState=b,f.terminalDisposition="delivered"===b?"delivered":d??null,f.terminalReason=c?.slice(0,240)??null,f.settledAt=at(),as(f)):f?as(f):null})}recordDeliveryOutcome(a,b,c=null,d){return this.mutate(e=>{let f=e.heldDeliveries[a];if(!f)throw Error("held delivery is unknown");if("delivered"===f.state||aG(f))return as(f);let g=e.conversations[aZ(e,f.conversationId)],h=new Set([g?.generations.at(-1)?.path].filter(a=>!!a)),i=g?W(e,g.engine,h):"";f.state=b,f.deliveredAt="delivered"===b?at():null,f.error=c?.slice(0,240)??null,"delivered"===b&&(f.text=""),"failed"===b&&aK(e,f),g&&Y(e,g.engine,i,h),aH(e,f,d);let j=as(f);return("delivered"===b||"failed"===b)&&aP(e,f.conversationId,this.now()),j})}recordDeliveryOutcomeForOperation(a,b,c,d=null,e){return this.recordDeliveryOutcomesForOperations([{conversationId:a,operationId:b,state:c,error:d,...e?{disposition:e}:{}}])[0]??null}recordDeliveryOutcomesForOperations(a){return this.mutate(b=>{let c=(a,c)=>`${aZ(b,a)}\u0000${c}`,d=new Map;for(let a of Object.values(b.heldDeliveries)){let b=c(a.conversationId,a.command.operationId);d.has(b)||d.set(b,a)}let e=new Set,f=a.map(a=>{let f=aZ(b,a.conversationId),g=d.get(c(f,a.operationId));if(!g||"delivered"===g.state)return g?as(g):null;let h="failed"===g.state&&"delivered"===a.state&&!aG(g);if("delivery-uncertain"!==g.state&&!h)return null;let i=b.conversations[f],j=new Set([i?.generations.at(-1)?.path].filter(a=>!!a)),k=i?W(b,i.engine,j):"";return g.state=a.state,g.deliveredAt="delivered"===a.state?at():null,g.error=a.error?.slice(0,240)??null,"delivered"===a.state&&(g.text=""),"failed"===a.state&&aK(b,g),i&&Y(b,i.engine,k,j),aH(b,g,a.disposition),e.add(g.conversationId),as(g)});for(let a of e)aP(b,a,this.now());return f})}discardDelivery(a){this.mutate(b=>{let c=b.heldDeliveries[a],d=c?b.conversations[aZ(b,c.conversationId)]:void 0,e=new Set([d?.generations.at(-1)?.path].filter(a=>!!a)),f=d?W(b,d.engine,e):"";if(c){let a=b.deliveryOperationOwners[c.command.operationId];0===c.attempts&&a?.deliveryId===c.id&&delete b.deliveryOperationOwners[c.command.operationId]}delete b.heldDeliveries[a],d&&Y(b,d.engine,f,e)})}requeueHeldDelivery(a){return this.placeDeliveryForRetry(a,!1)}retryUncertainDelivery(a){return this.placeDeliveryForRetry(a,!0)}retryUncertainDeliveryForOperation(a){return this.mutate(b=>{let c=b.deliveryOperationOwners[a],d=c?b.heldDeliveries[c.deliveryId]:Object.values(b.heldDeliveries).find(b=>b.command.operationId===a);if(!d||d.command.operationId!==a)return null;let e="failed"===d.state&&c?.terminalDisposition==="unverified";return"delivery-uncertain"===d.state||e?(e&&(d.state="delivery-uncertain"),as(aI(b,d,!0))):as(d)})}discardDeliveryForOperation(a,b,c,d){return this.mutate(e=>{let f=aZ(e,a),g=e.deliveryOperationOwners[b],h=g?e.heldDeliveries[g.deliveryId]:Object.values(e.heldDeliveries).find(a=>a.command.operationId===b&&aZ(e,a.conversationId)===f);if(!h||h.command.operationId!==b||aZ(e,h.conversationId)!==f)return null;if("delivered"===h.state)return as(h);if("held"!==h.state&&"assigned"!==h.state&&"delivery-uncertain"!==h.state&&("failed"!==h.state||h.error!==c&&g?.terminalDisposition!=="unverified"))return null;let i=e.conversations[f],j=new Set([i?.generations.at(-1)?.path].filter(a=>!!a)),k=i?W(e,i.engine,j):"";return h.state="failed",h.text="",h.generationId=null,h.assignedAt=null,h.deliveredAt=null,h.error=c.slice(0,240),aK(e,h),aH(e,h,d),i&&Y(e,i.engine,k,j),aP(e,h.conversationId,this.now()),as(h)})}requeueUnactuatedDelivery(a){return this.placeDeliveryForRetry(a,!0)}placeDeliveryForRetry(a,b){return this.mutate(c=>{let d=c.heldDeliveries[a];if(!d)throw Error("held delivery is unknown");return as(aI(c,d,b))})}rollbackConversationMigration(a,b){return this.mutate(c=>{let d=aZ(c,a),e=c.conversations[d];if(!e?.migration)throw Error("conversation has no migration");if(void 0!==b&&e.migration.revision!==b)throw Error("migration revision is stale");let f=new Set([e.generations.at(-1)?.path].filter(a=>!!a)),g=W(c,e.engine,f),h=at();_(c,e,h),c.engineRouting[e.engine].activeAccountId===e.migration.targetId&&(e.migrationOptOut={targetId:e.migration.targetId,updatedAt:h});let i=e.generations.at(-1);for(let a of Object.values(c.heldDeliveries))if(a.conversationId===e.id&&"delivered"!==a.state&&"failed"!==a.state){if(!i||"delivery-uncertain"===a.state){ab(c,a,s.Mi);continue}a.state="assigned",a.generationId=i.id,a.assignedAt=h,a.deliveredAt=null,a.error=null,aH(c,a)}return e.migration={...e.migration,phase:"rolled-back",error:null,errorCode:null,updatedAt:h},e.updatedAt=h,Y(c,e.engine,g,f),as(e)})}clearRolledBackConversationMigration(a,b){return this.mutate(c=>{let d=c.conversations[aZ(c,a)],e=d?.migration;return!(!d||!e||"rolled-back"!==e.phase||e.intentId!==b||Object.values(c.heldDeliveries).some(a=>aZ(c,a.conversationId)===d.id&&["held","assigned","delivery-uncertain"].includes(a.state)))&&(d.migration=null,d.updatedAt=at(),c.conversationRevision[d.engine]+=1,!0)})}}let bq=process;function br(){return bq.__llvAgentRegistry??=new bp(void 0,void 0,void 0,{resolveBackendIdentity:!0}),bq.__llvAgentRegistry}},74085:(a,b,c)=>{c.d(b,{DD:()=>l,Oy:()=>m});var d=c(88623),e=c(57718);let f="identity-wave-a-d-913";function g(a,b){if(!b.startsWith("conversation_"))return null;let c=b,d=new Set;for(;a.conversationAliases[c]&&!d.has(c);)d.add(c),c=a.conversationAliases[c];return d.has(c)?null:c}function h(a){if("string"!=typeof a)return null;let b=a.split(/\r?\n/).find(a=>a.trim());return(0,e.tU)(b,120)}function i(a){return"string"==typeof a&&null===(0,e.tU)(a)}function j(a){if("failed"===a.kind)throw a.error;return"found"===a.kind?a.value:null}function k(a,b,c){a.path===b&&(a.path=c),a.continuityPaths=[...new Set(a.continuityPaths.map(a=>a===b?c:a))]}function l(a,b,c){let e=b.conversationId?g(a,b.conversationId):null,f=e?a.conversations[e]:null;if(!e||!f)return{changed:!1,engine:null};let h=b.predecessorConversationId?g(a,b.predecessorConversationId):null,i=h&&h!==e?a.conversations[h]:null,j=!!h&&!!i&&function(a,b,c){let d=new Set,e=c;for(;e;){if(e===b||d.has(e))return!0;d.add(e);let c=a.lineageEdges[e]?.parentConversationId;e=c?g(a,c):null}return!1}(a,e,h),k=j?null:h,l=j?null:i,m=a.memberships[e]??=[],n=!1;if(m.some(a=>"orchestrator"===a.kind&&a.containerId===b.project&&a.slot===`seat:${b.seatEpoch}`)||(m.push({conversationId:e,kind:"orchestrator",containerId:b.project,role:"orchestrator",slot:`seat:${b.seatEpoch}`,stageId:null,stageOrder:null,round:null,parentConversationId:l?k:null,runtime:null,createdAt:c}),n=!0),"orchestrator"!==f.agentRole&&(f.agentRole="orchestrator",n=!0),0!==f.delegationDepth&&(f.delegationDepth=0,n=!0),l&&!a.lineageEdges[e]){let b=f.generations.at(-1),g=l.generations.at(-1),h={childConversationId:e,parentConversationId:k,childSessionKey:b?(0,d.sz)(f.engine,b.path):null,parentSessionKey:g?(0,d.sz)(l.engine,g.path):null,childArtifactPath:b?.path??null,parentArtifactPath:g?.path??null,kind:"spawn",role:"orchestrator",reviewsConversationId:null,source:"viewer-spawn",evidence:{launchId:null,clientAttemptId:null,parentSource:null},createdAt:c};a.lineageEdges[e]=h,n=!0}return n&&(f.updatedAt=c),{changed:n,engine:f.engine}}function m(a,b){let c=!0===b.dryRun,d=c?structuredClone(a):a;if(d.identityMigrations[f])return{dryRun:c,alreadyCompleted:!0,retitled:0,rekeyed:0,quarantinedRekeys:0,edgesStamped:0};let m=function(a){let b=new Map;for(let c of Object.values(a.receipts).sort((a,b)=>a.createdAt.localeCompare(b.createdAt)).sort((a,b)=>Number("launch"===b.purpose)-Number("launch"===a.purpose))){let d=g(a,c.conversationId),e=h(c.launchDisplay?.prompt);d&&e&&!b.has(d)&&b.set(d,e)}return b}(d),n=function(a,b){let c=new Map;for(let d of Object.values(a.conversations)){if(!d.generations.at(-1))continue;let f=function(a){for(let b=a.generations.length-1;b>=0;b-=1){let c=(0,e.St)(a.generations[b].launchProfile.title);if(c)return c}return null}(d),h=function(a,b){if(b.generations.some(a=>i(a.launchProfile.title)))return!0;let c=new Set(b.generations.map(a=>a.path));return!!Object.values(a.entries).some(a=>c.has(a.artifactPath)&&i(a.launchProfile?.title))||Object.values(a.receipts).some(c=>g(a,c.conversationId)===b.id&&i(c.launchProfile.title))}(a,d),k=d.generations.flatMap(a=>{let c=j(function(a,b){try{let c=a.sharedPathForLegacy(b);if(!c||c.sharedPath===b)return{kind:"absent"};return{kind:"found",value:c}}catch(a){return{kind:"failed",error:a}}}(b,a.path));return c?[{legacyPath:a.path,...c}]:[]});c.set(d.id,{conversationTitle:f,needsTitleCleanup:h,pathRekeys:k,transcriptTitle:null})}return c}(d,b),o=function(a,b){let c=new Map,d=new Map,e=new Map,f=(a,b,c)=>{let d=a.get(b)??new Set;d.add(c),a.set(b,d)};for(let b of Object.values(a.conversations)){for(let a of b.generations)f(c,a.path,b.id),f(d,a.path,b.id),f(e,`${b.engine}:${a.id}`,b.id);for(let a of b.continuityPaths)f(c,a,b.id)}for(let b of Object.values(a.receipts))b.artifactPath&&f(c,b.artifactPath,g(a,b.conversationId)??`receipt:${b.launchId}`);for(let b of Object.values(a.entries)){let a=e.get(`${b.key.engine}:${b.key.sessionId}`);if(a?.size)for(let d of a)f(c,b.artifactPath,d);else f(c,b.artifactPath,`entry:${b.key.engine}:${b.key.sessionId}`)}let h=new Map,i=[],j=0;for(let[a,e]of b){let b=[];for(let f of e.pathRekeys){if(!f.identityEquivalent){j+=1;continue}let e=c.get(f.sharedPath),g=c.get(f.legacyPath),k=d.get(f.sharedPath),l=h.get(f.sharedPath);if(!g||1!==g.size||!g.has(a)||e&&[...e].some(b=>b!==a)||k&&f.sharedPath!==f.legacyPath||l&&l!==f.legacyPath){j+=1;continue}h.set(f.sharedPath,f.legacyPath),b.push(f),i.push({legacyPath:f.legacyPath,sharedPath:f.sharedPath})}e.pathRekeys=b}return{rekeys:i,quarantined:j}}(d,n);for(let a of Object.values(d.conversations)){let c=a.generations.at(-1),d=n.get(a.id);if(!c||!d?.needsTitleCleanup||null!==d.conversationTitle||m.has(a.id))continue;let e=d.pathRekeys.find(a=>a.legacyPath===c.path)?.sharedPath??c.path;d.transcriptTitle=j(function(a,b,c){try{let d=h(a.transcriptTitle(b,c));return d?{kind:"found",value:d}:{kind:"absent"}}catch(a){return{kind:"failed",error:a}}}(b,e,a.engine))}!c&&o.rekeys.length>0&&b.commitExternalPathRekeys?.(o.rekeys);let p=new Set,q=0,r=0,s=0;for(let a of Object.values(d.conversations)){if(!a.generations.at(-1))continue;let c=!1,e=n.get(a.id),f=e?.pathRekeys??[];if(f.length>0){for(let{legacyPath:b,sharedPath:c}of f){for(let d of(a.continuityPaths.includes(b)||a.continuityPaths.push(b),a.continuityPaths=a.continuityPaths.filter(a=>a!==c),a.generations))d.path===b&&(d.path=c);!function(a,b,c){for(let d of Object.values(a.entries))d.artifactPath===b&&(d.artifactPath=c);for(let d of Object.values(a.receipts))d.artifactPath===b&&(d.artifactPath=c),d.resumeSourcePath===b&&(d.resumeSourcePath=c);for(let d of Object.values(a.lineageEdges))d.childArtifactPath===b&&(d.childArtifactPath=c),d.parentArtifactPath===b&&(d.parentArtifactPath=c);for(let d of Object.values(a.heldDeliveries))d.artifactPaths=[...new Set(d.artifactPaths.map(a=>a===b?c:a))];for(let d of Object.values(a.conversations)){let a=d.migration;a&&(a.providerReceipt&&k(a.providerReceipt,b,c),a.pendingContinuityPaths=[...new Set(a.pendingContinuityPaths.map(a=>a===b?c:a))])}for(let d of Object.values(a.pendingSuccessorCleanups))k(d.receipt,b,c);let d=a.legacyResumePanes.panes[b];d&&(a.legacyResumePanes.panes[c]??=d,delete a.legacyResumePanes.panes[b])}(d,b,c)}r+=1,c=!0}if(e?.needsTitleCleanup){let b=e.conversationTitle??m.get(a.id)??e?.transcriptTitle??null;for(let c of a.generations)i(c.launchProfile.title)&&(c.launchProfile.title=b);let f=new Set(a.generations.map(a=>a.path));for(let a of Object.values(d.entries))f.has(a.artifactPath)&&a.launchProfile&&i(a.launchProfile.title)&&(a.launchProfile.title=b);for(let c of Object.values(d.receipts))g(d,c.conversationId)===a.id&&i(c.launchProfile.title)&&(c.launchProfile.title=b,b&&(c.identityWaveTitleBackfill=!0));b&&(q+=1),c=!0}c&&(a.updatedAt=b.now,p.add(a.engine))}for(let a of b.orchestratorSeats){let c=l(d,a,a.activatedAt??a.designatedAt??b.now),e=c.engine?{changed:!1,engine:null}:function(a,b){let c=b.conversationId?g(a,b.conversationId):null;if(!c||a.conversations[c])return{changed:!1,engine:null};let d=Object.values(a.receipts).find(b=>g(a,b.conversationId)===c);if(!d)return{changed:!1,engine:null};let e={project:b.project,seatEpoch:b.seatEpoch,conversationId:c,predecessorConversationId:b.predecessorConversationId?g(a,b.predecessorConversationId):null,designatedAt:b.designatedAt,activatedAt:b.activatedAt,path:b.path??null};return JSON.stringify(d.pendingOrchestratorSeatIdentity)===JSON.stringify(e)?{changed:!1,engine:d.engine}:(d.pendingOrchestratorSeatIdentity=e,{changed:!0,engine:d.engine})}(d,a),f=c.changed||e.changed,h=c.engine??e.engine;f&&h&&(s+=1,p.add(h))}for(let a of p)d.conversationRevision[a]+=1;return c||(d.identityMigrations[f]={completedAt:b.now,retitled:q,rekeyed:r,quarantinedRekeys:o.quarantined,edgesStamped:s}),{dryRun:c,alreadyCompleted:!1,retitled:q,rekeyed:r,quarantinedRekeys:o.quarantined,edgesStamped:s}}},82093:(a,b,c)=>{c.d(b,{AY:()=>l,BD:()=>e,JJ:()=>f,Mi:()=>g,bj:()=>i,fz:()=>d,uK:()=>h,xc:()=>k});let d=3e5,e="delivery cancelled because",f=`${e} its owning account migration was stopped; send again to authorize a fresh delivery`,g=`${e} its owning account migration was rolled back; send again to authorize a fresh delivery`,h=`${e} its owning account migration committed; send again to authorize a fresh delivery action`;function i(a,b){let c=Date.parse(b),d=Date.parse(a.assignedAt??a.createdAt);return Number.isFinite(c)&&Number.isFinite(d)&&d<c}function j(a){let b=Date.parse(a);return Number.isFinite(b)?b:0}function k(a,b,c){return"draining"===b.state&&a.engineRouting[b.engine].activeAccountId===b.targetId&&!l(a,b,c)}function l(a,b,c){let e=function(a,b){let c=j(b.updatedAt);for(let d of Object.values(a.conversations))d.migration?.intentId===b.id&&"requested"!==d.migration.phase&&"waiting-turn"!==d.migration.phase&&(c=Math.max(c,j(d.migration.updatedAt)));return c}(a,b);return e>c||c-e>=d}},88858:(a,b,c)=>{c.d(b,{S:()=>e,n:()=>f});let d=/^[A-Za-z0-9_.:-]{1,64}$/;function e(a){return"string"==typeof a&&d.test(a)?a:void 0}function f(a){if(!a||"object"!=typeof a||Array.isArray(a)||"operator"!==a.kind&&"agent"!==a.kind)return null;let b="agent"===a.kind?e(a.role):void 0;return{kind:a.kind,...b?{role:b}:{}}}},93151:(a,b,c)=>{c.d(b,{Dc:()=>r,EB:()=>m,Ej:()=>q,KL:()=>o});var d=c(77598),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g);let i="LLV_AGENT_REGISTRY_SQLITE";class j extends Error{constructor(...a){super(...a),this.name="RegistryBackendIdentityError"}}let k={readText(a){try{return f().readFileSync(a,"utf8")}catch(b){if("ENOENT"===b.code)return null;throw new j(`${h().basename(a)} is unreadable: ${b.code??"unknown error"}`)}},exists:a=>f().existsSync(a),writeText(a,b){f().mkdirSync(h().dirname(a),{recursive:!0,mode:448});let c=`${a}.${process.pid}.${(0,d.randomUUID)()}.tmp`,e=f().openSync(c,"wx",384);try{f().writeFileSync(e,b),f().fsyncSync(e)}finally{f().closeSync(e)}f().renameSync(c,a)}};function l(a){let b=h().basename(a).replace(/\.json$/,"");return h().join(h().dirname(a),`${b}.backend.json`)}function m(a){return a.endsWith(".json")?`${a.slice(0,-5)}.sqlite`:`${a}.sqlite`}function n(a){return"off"===a||"dual-write"===a||"read"===a||"sqlite"===a}function o(a=process.env){let b=a[i]??"off";if(n(b))return b;throw Error(`${i} must be off, dual-write, read, or sqlite`)}function p(a,b){let c;try{c=JSON.parse(a)}catch{throw new j(`${b} is not valid JSON`)}if(!c||"object"!=typeof c||Array.isArray(c))throw new j(`${b} is not an object`);let d=c;if(1!==d.schemaVersion)throw new j(`${b} declares schema version ${String(d.schemaVersion)}, but this build understands 1`);if(!n(d.mode))throw new j(`${b} declares an unknown backend mode`);let e=d.sqliteFile;if(null!==e&&"string"!=typeof e)throw new j(`${b} declares an invalid store filename`);if("string"==typeof e&&(""===e||e!==h().basename(e)))throw new j(`${b} must name its store as a bare filename`);if("off"!==d.mode&&null===e)throw new j(`${b} declares the ${d.mode} backend but names no store`);return{schemaVersion:1,mode:d.mode,sqliteFile:e??null,publishedAt:"string"==typeof d.publishedAt?d.publishedAt:""}}function q(a,b=process.env,c=k){if(void 0!==b[i])return{mode:o(b),sqliteFilename:null,source:"environment"};let d=l(a),e=h().basename(d),f=m(a),g=c.readText(d);if(null===g){if(c.exists(f))throw new j(`the agent registry backend identity is unpublished while ${h().basename(f)} exists, so SQLite may be authoritative and the JSON mirror may be stale; start the registry writer with ${i} set so it publishes ${e}`);return{mode:"off",sqliteFilename:null,source:"json-only"}}let n=p(g,e);if("off"===n.mode){if(c.exists(f))throw new j(`${e} claims the JSON backend while ${h().basename(f)} exists; remove the stale store or republish the descriptor from the writer`);return{mode:"off",sqliteFilename:null,source:"descriptor"}}let r=h().join(h().dirname(d),n.sqliteFile);if(!c.exists(r))throw new j(`${e} names the ${n.mode} backend store ${n.sqliteFile}, which is unavailable`);return{mode:n.mode,sqliteFilename:r,source:"descriptor"}}function r(a,b,c,d=k,e=()=>new Date().toISOString()){let f=l(a),g="off"===b?null:h().basename(c),i=d.readText(f);if(null!==i)try{let a=p(i,h().basename(f));if(a.mode===b&&a.sqliteFile===g)return}catch{}let j={schemaVersion:1,mode:b,sqliteFile:g,publishedAt:e()};d.writeText(f,`${JSON.stringify(j)}
|
|
55
|
+
`)}},96428:(a,b,c)=>{c.d(b,{Ec:()=>d});function d(){return new Date().toISOString()}},99391:(a,b,c)=>{c.d(b,{Q:()=>l,g:()=>t});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(27146),k=c(14928);let l=7;function m(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function n(a){return"string"==typeof a&&a.trim()?a:null}function o(a,b){return Array.isArray(a)?[...new Set(a.flatMap(a=>{let c=n(m(a)?.[b]);return c?[c]:[]}))].sort():[]}function p(a){try{return JSON.parse(g().readFileSync(i().join((0,j.Pn)(),a),"utf8"))}catch{return null}}let q=["worktree-map.json","project-aliases.json"],r=null;function s(a,b){try{let c=g().statSync(i().join(a,b),{bigint:!0});return`${b}:${c.mtimeNs}:${c.size}`}catch{return`${b}:missing`}}function t(){let a=(0,j.Pn)(),b=function(a){let b=i().join(a,"state.sqlite"),c=[a],d=(0,k.Gw)(b,["flows","workflows"]);for(let[b,e]of[["flows","flows.json"],["workflows","workflows.json"]]){let f=d.get(b)??null;c.push(null===f?s(a,e):`${b}:sqlite:${f}`)}for(let b of q)c.push(s(a,b));return c.join("|")}(a);if(r?.signature===b)return r.key;let c=function(a){let b,c,d=e().createHash("sha1");d.update(a),d.update(`\0resolver-version\0${l}`);let f=i().join(a,"state.sqlite"),h=(0,k.M)(f,["flows","workflows"]),j=h.get("flows")??null,q=h.get("workflows")??null;d.update("\0flows\0"),d.update(JSON.stringify((b=m(null===j?p("flows.json"):{flows:j}))&&Array.isArray(b.flows)?b.flows.flatMap(a=>{let b=m(a),c=n(b?.project),d=n(b?.cwd);return b&&c&&d?[[c,d,n(b.implementerPath),o(b.rounds,"reviewerPath")]]:[]}):[])),d.update("\0workflows\0"),d.update(JSON.stringify((c=m(null===q?p("workflows.json"):{workflows:q}))&&Array.isArray(c.workflows)?c.workflows.flatMap(a=>{let b=m(a),c=n(b?.project),d=n(b?.repoDir),e=n(b?.worktreeDir);return b&&c&&(d||e)?[[c,d,e,o(b.stageRuns,"agentPath"),n(b.fixerPath)]]:[]}):[])),d.update("\0worktree-map.json\0");try{d.update(g().readFileSync(i().join(a,"worktree-map.json")))}catch{d.update("<missing>")}d.update("\0project-aliases.json\0");try{d.update(g().readFileSync(i().join(a,"project-aliases.json")))}catch{d.update("<missing>")}return d.digest("hex")}(a);return r={signature:b,key:c},c}}};
|