agent-log-viewer 1.0.0 → 1.0.1
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/README.md +12 -21
- package/bin/cli.mjs +28 -4
- package/bin/mcp-server.mjs +7 -0
- package/bin/mcp-server.test.ts +2 -0
- package/bin/provision-telegram-connector.mjs +193 -0
- package/bin/server-runtime.mjs +4 -8
- package/bin/server-runtime.test.ts +46 -7
- package/bin/telegram-login-bridge.py +253 -0
- package/bin/telegram-mcp-server.py +106 -0
- package/bin/telegram-session-reader.mjs +6 -0
- package/bin/telegram-session-validator.mjs +71 -0
- package/dist/mcp-server.mjs +31771 -25627
- package/dist/standalone/.next/BUILD_ID +1 -1
- package/dist/standalone/.next/app-path-routes-manifest.json +22 -15
- package/dist/standalone/.next/build-manifest.json +3 -3
- package/dist/standalone/.next/prerender-manifest.json +3 -3
- package/dist/standalone/.next/react-loadable-manifest.json +19 -0
- package/dist/standalone/.next/required-server-files.json +4 -1
- package/dist/standalone/.next/routes-manifest.json +48 -6
- package/dist/standalone/.next/server/account-migration-controller-worker.js +1 -0
- package/dist/standalone/.next/server/app/_global-error/page.js +3 -3
- 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/_global-error.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_global-error.segments/_index.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 +2 -2
- 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/_head.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/dist/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- 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/accounts/claude/[id]/status/route.js +4 -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/login/[operationId]/input/route.js +4 -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 +4 -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 +4 -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/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/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 +4 -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 -1
- 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 -0
- package/dist/standalone/.next/server/app/api/{orchestrator → artifact}/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/artifact/route_client-reference-manifest.js +1 -0
- 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 +2 -2
- package/dist/standalone/.next/server/app/api/bridge/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 +2 -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 +4 -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 +4 -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 +1 -0
- package/dist/standalone/.next/server/app/api/log/provenance/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/log/provenance/route_client-reference-manifest.js +1 -0
- 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/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/lock/route.js +2 -2
- package/dist/standalone/.next/server/app/api/monitor/lock/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/monitor/runs/route.js +1 -1
- package/dist/standalone/.next/server/app/api/monitor/runs/route.js.nft.json +1 -1
- 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 +3 -0
- package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route_client-reference-manifest.js +1 -0
- 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 +2 -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 +3 -0
- package/dist/standalone/.next/server/app/api/projects/create/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/projects/create/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/projects/crown/route.js +1 -0
- package/dist/standalone/.next/server/app/api/projects/crown/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/projects/crown/route_client-reference-manifest.js +1 -0
- 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/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/realtime/route.js +1 -1
- 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 -0
- package/dist/standalone/.next/server/app/api/search/transcripts/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/search/transcripts/route_client-reference-manifest.js +1 -0
- 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 +6 -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 +2 -2
- package/dist/standalone/.next/server/app/api/spawn/route.js.nft.json +1 -1
- 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 -1
- 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 -1
- 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 +2 -2
- 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 -0
- package/dist/standalone/.next/server/app/api/telegram/reports/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/telegram/reports/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/telegram/route.js +1 -0
- package/dist/standalone/.next/server/app/api/telegram/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/telegram/route_client-reference-manifest.js +1 -0
- 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 -2
- 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 +2 -2
- package/dist/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/dist/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/dist/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/dist/standalone/.next/server/app/page.js +41 -24
- 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 +22 -15
- package/dist/standalone/.next/server/chunks/156.js +2 -2
- package/dist/standalone/.next/server/chunks/1617.js +2 -0
- package/dist/standalone/.next/server/chunks/1858.js +91 -0
- package/dist/standalone/.next/server/chunks/1888.js +1 -0
- package/dist/standalone/.next/server/chunks/1920.js +1 -1
- package/dist/standalone/.next/server/chunks/2190.js +1 -1
- package/dist/standalone/.next/server/chunks/230.js +1 -0
- package/dist/standalone/.next/server/chunks/2318.js +2 -0
- package/dist/standalone/.next/server/chunks/2324.js +1 -0
- package/dist/standalone/.next/server/chunks/2338.js +9 -0
- package/dist/standalone/.next/server/chunks/2904.js +42 -0
- package/dist/standalone/.next/server/chunks/2923.js +1 -0
- package/dist/standalone/.next/server/chunks/2962.js +1 -0
- package/dist/standalone/.next/server/chunks/2977.js +1 -1
- package/dist/standalone/.next/server/chunks/306.js +3 -3
- package/dist/standalone/.next/server/chunks/3086.js +1 -0
- package/dist/standalone/.next/server/chunks/3139.js +10 -0
- package/dist/standalone/.next/server/chunks/3214.js +82 -0
- package/dist/standalone/.next/server/chunks/3336.js +1 -1
- package/dist/standalone/.next/server/chunks/3558.js +1 -1
- package/dist/standalone/.next/server/chunks/3587.js +1 -1
- package/dist/standalone/.next/server/chunks/3598.js +81 -0
- package/dist/standalone/.next/server/chunks/3740.js +126 -0
- package/dist/standalone/.next/server/chunks/3793.js +6 -0
- package/dist/standalone/.next/server/chunks/3916.js +1 -0
- package/dist/standalone/.next/server/chunks/3953.js +1 -0
- package/dist/standalone/.next/server/chunks/4012.js +2 -2
- package/dist/standalone/.next/server/chunks/4191.js +1 -1
- package/dist/standalone/.next/server/chunks/4260.js +2 -2
- package/dist/standalone/.next/server/chunks/4509.js +1 -1
- package/dist/standalone/.next/server/chunks/4968.js +1 -1
- package/dist/standalone/.next/server/chunks/4972.js +130 -2
- package/dist/standalone/.next/server/chunks/5689.js +11 -0
- package/dist/standalone/.next/server/chunks/6333.js +47 -0
- package/dist/standalone/.next/server/chunks/6796.js +1 -0
- package/dist/standalone/.next/server/chunks/6826.js +2 -2
- package/dist/standalone/.next/server/chunks/6850.js +1 -1
- package/dist/standalone/.next/server/chunks/6909.js +1 -0
- package/dist/standalone/.next/server/chunks/6977.js +1 -0
- package/dist/standalone/.next/server/chunks/7126.js +1 -0
- package/dist/standalone/.next/server/chunks/7159.js +1 -0
- package/dist/standalone/.next/server/chunks/7270.js +45 -0
- package/dist/standalone/.next/server/chunks/7295.js +10 -0
- package/dist/standalone/.next/server/chunks/7471.js +16 -14
- package/dist/standalone/.next/server/chunks/7563.js +1 -1
- package/dist/standalone/.next/server/chunks/7644.js +13 -0
- package/dist/standalone/.next/server/chunks/7722.js +1 -1
- package/dist/standalone/.next/server/chunks/7733.js +4 -0
- package/dist/standalone/.next/server/chunks/7868.js +1 -0
- package/dist/standalone/.next/server/chunks/8026.js +1 -0
- package/dist/standalone/.next/server/chunks/8176.js +1 -1
- package/dist/standalone/.next/server/chunks/8444.js +1 -1
- package/dist/standalone/.next/server/chunks/8465.js +2 -0
- package/dist/standalone/.next/server/chunks/849.js +6 -0
- package/dist/standalone/.next/server/chunks/8600.js +12 -0
- package/dist/standalone/.next/server/chunks/8617.js +2 -0
- package/dist/standalone/.next/server/chunks/8797.js +1 -1
- package/dist/standalone/.next/server/chunks/8817.js +5 -0
- package/dist/standalone/.next/server/chunks/8966.js +2 -2
- package/dist/standalone/.next/server/chunks/8996.js +1 -0
- package/dist/standalone/.next/server/chunks/9246.js +47 -0
- package/dist/standalone/.next/server/chunks/9364.js +310 -0
- package/dist/standalone/.next/server/chunks/9411.js +3 -3
- package/dist/standalone/.next/server/chunks/9434.js +13 -0
- package/dist/standalone/.next/server/chunks/9507.js +1 -0
- package/dist/standalone/.next/server/chunks/9676.js +62 -0
- package/dist/standalone/.next/server/chunks/9733.js +6 -3
- package/dist/standalone/.next/server/chunks/9901.js +62 -0
- package/dist/standalone/.next/server/chunks/9937.js +2 -0
- package/dist/standalone/.next/server/chunks/9940.js +128 -0
- package/dist/standalone/.next/server/chunks/static/media/pdf.worker.min.65fe1ff1.mjs +6 -0
- package/dist/standalone/.next/server/file-scanner-worker.js +2 -2
- package/dist/standalone/.next/server/files-response-worker.js +5 -5
- package/dist/standalone/.next/server/functions-config-manifest.json +8 -1
- 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/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 -0
- package/dist/standalone/.next/server/webpack-runtime.js +1 -1
- package/dist/standalone/.next/static/chunks/2619.fd64e7a5bd9005d5.js +1 -0
- package/dist/standalone/.next/static/chunks/8293.5545fdbde0213c98.js +1 -0
- package/dist/standalone/.next/static/chunks/9178-e32f088e89b55503.js +1 -0
- package/dist/standalone/.next/static/chunks/9b0008ae.eb7a9c4c1c92a63b.js +45 -0
- package/dist/standalone/.next/static/chunks/app/_global-error/page-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/access/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/agent/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/answer/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/artifact/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/attach-command/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/attention/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/board/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/bridge/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/conversations/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/files/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/flows/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/image/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/inbox/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/limits/history/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/limits/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/logs/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/monitor/lock/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/pipelines/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/proc/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/projects/create/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/push/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/resources/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/roles/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/session/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/session/title/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/spawn/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/staging/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/telegram/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/timeline/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tmux/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/transcribe/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tts/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/view/presence/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/workflows/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/page-ac9463b910bf83fe.js +77 -0
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/webpack-1637988d4c7cf23c.js +1 -0
- package/dist/standalone/.next/static/css/498f12ddef7ecb0e.css +1 -0
- package/dist/standalone/.next/static/kt9OPe8iwfpNcdOX9ygvb/_buildManifest.js +1 -0
- package/dist/standalone/.next/static/media/pdf.worker.min.e890bf87.mjs +6 -0
- package/dist/standalone/package.json +9 -5
- package/dist/standalone/server.bun.js +38 -0
- package/dist/standalone/server.js +18 -37
- package/package.json +9 -5
- package/vendor/telegram-mcp/.python-version +1 -0
- package/vendor/telegram-mcp/LICENSE +201 -0
- package/vendor/telegram-mcp/PROVENANCE.md +70 -0
- package/vendor/telegram-mcp/SHA256SUMS +24 -0
- package/vendor/telegram-mcp/main.py +67 -0
- package/vendor/telegram-mcp/pyproject.toml +100 -0
- package/vendor/telegram-mcp/requirements.txt +7 -0
- package/vendor/telegram-mcp/sanitize.py +143 -0
- package/vendor/telegram-mcp/session_string_generator.py +259 -0
- package/vendor/telegram-mcp/telegram_mcp/__init__.py +15 -0
- package/vendor/telegram-mcp/telegram_mcp/client_identity.py +31 -0
- package/vendor/telegram-mcp/telegram_mcp/install_guard.py +209 -0
- package/vendor/telegram-mcp/telegram_mcp/runner.py +198 -0
- package/vendor/telegram-mcp/telegram_mcp/runtime.py +1812 -0
- package/vendor/telegram-mcp/telegram_mcp/singleton.py +143 -0
- package/vendor/telegram-mcp/telegram_mcp/tools/__init__.py +13 -0
- package/vendor/telegram-mcp/telegram_mcp/tools/accounts.py +31 -0
- package/vendor/telegram-mcp/telegram_mcp/tools/chats.py +1163 -0
- package/vendor/telegram-mcp/telegram_mcp/tools/contacts.py +802 -0
- package/vendor/telegram-mcp/telegram_mcp/tools/events.py +485 -0
- package/vendor/telegram-mcp/telegram_mcp/tools/folders.py +600 -0
- package/vendor/telegram-mcp/telegram_mcp/tools/groups.py +1286 -0
- package/vendor/telegram-mcp/telegram_mcp/tools/media.py +470 -0
- package/vendor/telegram-mcp/telegram_mcp/tools/messages.py +2041 -0
- package/vendor/telegram-mcp/telegram_mcp/tools/profile.py +449 -0
- package/vendor/telegram-mcp/uv.lock +1693 -0
- package/dist/standalone/.next/server/app/api/orchestrator/route.js +0 -1
- package/dist/standalone/.next/server/app/api/orchestrator/route_client-reference-manifest.js +0 -1
- package/dist/standalone/.next/server/chunks/1699.js +0 -1
- package/dist/standalone/.next/server/chunks/2596.js +0 -1
- package/dist/standalone/.next/server/chunks/3886.js +0 -1
- package/dist/standalone/.next/server/chunks/4792.js +0 -101
- package/dist/standalone/.next/server/chunks/5622.js +0 -2
- package/dist/standalone/.next/server/chunks/616.js +0 -42
- package/dist/standalone/.next/server/chunks/620.js +0 -1
- package/dist/standalone/.next/server/chunks/6299.js +0 -4
- package/dist/standalone/.next/server/chunks/9598.js +0 -1
- package/dist/standalone/.next/server/chunks/9936.js +0 -6
- package/dist/standalone/.next/static/5aZdjqUDNxpxX8nVsuO2S/_buildManifest.js +0 -1
- package/dist/standalone/.next/static/chunks/9260-0e7e550c65609f11.js +0 -1
- package/dist/standalone/.next/static/chunks/app/_global-error/page-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/access/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/agent/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/answer/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/attach-command/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/attention/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/board/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/bridge/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/conversations/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/files/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/flows/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/image/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/inbox/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/limits/history/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/limits/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/log/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/logs/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/monitor/lock/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/pipelines/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/proc/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/push/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/resources/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/roles/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/session/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/session/title/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/spawn/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/staging/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/timeline/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tmux/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/transcribe/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tts/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/view/presence/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/workflows/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/page-45fd788b5dbb86eb.js +0 -57
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/webpack-46c1a0323c2ca312.js +0 -1
- package/dist/standalone/.next/static/css/b5b2fbc52caf460a.css +0 -1
- /package/dist/standalone/.next/static/{5aZdjqUDNxpxX8nVsuO2S → kt9OPe8iwfpNcdOX9ygvb}/_ssgManifest.js +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=5622,exports.ids=[5622],exports.modules={22962:(a,b,c)=>{c.d(b,{Cu:()=>B,gB:()=>p,oV:()=>A});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(91724),l=c(59683);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}function s(a){try{let b=JSON.parse(h().readFileSync(a,"utf8"));if("number"==typeof b.pid&&Number.isInteger(b.pid)&&b.pid>0){if(!l.B.pidAlive(b.pid))return!0;if("string"!=typeof b.startIdentity)return!1;let a=l.B.processIdentity(b.pid);return null!==a&&a!==b.startIdentity}return Date.now()-h().statSync(a).mtimeMs>3e4}catch{try{return Date.now()-h().statSync(a).mtimeMs>3e4}catch{return!1}}}function t(a,b){try{JSON.parse(h().readFileSync(a,"utf8")).token===b&&h().rmSync(a,{force:!0})}catch{}}function u(){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 v(){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),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 w(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(s(d)){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 s(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:u()};return{context:d,release(){d.active=!1,h().closeSync(b),t(a.lock,a.owner.token),t(a.ticket,a.owner.token)}}}function x(a,b){return{context:a.context,release(){try{a.release()}finally{b()}}}}async function y(){let a=await r(),b=null;try{b=v();for(let c=0;c<2e3;c+=1){let c=w(b);if(c)return x(c,a);await new Promise(a=>setTimeout(a,5))}throw Error("account mutation is busy; retry shortly")}catch(c){throw b&&t(b.ticket,b.owner.token),a(),c}}function z(a){!function(a){let b=(0,k.BQ)("account-mutation-revision.json");if(u()!==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 A(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=v();for(let c=0;c<2;c+=1){let c=w(b);if(c)return x(c,a)}throw new p}catch(c){throw b&&t(b.ticket,b.owner.token),a(),c}}();try{return z(c.context),n.run(c.context,a)}finally{c.release()}}async function B(a){let b=n.getStore();if(b?.active)return a();let c=await y();try{return z(c.context),await n.run(c.context,a)}finally{c.release()}}},27359:(a,b,c)=>{c.d(b,{EB:()=>e,NU:()=>p,OK:()=>C,WM:()=>D,ZW:()=>B,_1:()=>o,cZ:()=>x,d3:()=>E,dC:()=>m,fm:()=>w,g2:()=>l,ye:()=>n});let d=/^\s*[❯›]/,e=/\? for shortcuts|bypass permissions on|Press up to edit|⏎ send|Context \d+% used/,f=/Resume from summary/,g=/Do you trust|trust this folder|trust the contents of this directory/i,h=/Enter to confirm|Press enter to continue/i,i=/Allow command\?|Do you want to proceed\?|Press enter to approve|approve this (command|action)|\(y\/n\)|Yes, (allow|proceed|run)/i,j=/You(?:'ve| have) (?:hit|reached) (?:your|the) .{0,24}limit|(?:usage|rate).?limit (?:reached|hit|exceeded)|out of (?:quota|credits)|\d+.hour limit reached|limit resets/i,k=new Set(["zsh","bash","fish","sh","dash"]);function l(a){return null!==a&&k.has(a)}function m(a){let b=a.split("\n");for(let a=b.length-1;a>=0;a-=1){let c=b[a]??"";if(d.test(c))return c}return""}function n(a){return f.test(a)?"resume_picker":g.test(a)?"trust_prompt":h.test(a)?"startup_gate":null}function o(a){let b=a.split("\n"),c=-1;for(let a=b.length-1;a>=0;a-=1)if(d.test(b[a]??"")){c=a;break}if(-1!==c){let a=b.slice(c+1).join("\n");if(e.test(a)&&!i.test(a)&&!j.test(a))return null}let f=b.slice(-14).join("\n");return i.test(f)?"approval_prompt":j.test(f)?"rate_limit":null}function p(a,b=Date.now()/1e3){return"rate_limit"!==o(a)?null:{resetAt:function(a,b){let c=/(?:try again|resets?)(?:\s+\w+){0,4}\s+(?:at\s+)?(\d{1,2})(?::(\d{2}))?\s*([ap])\.?m\.?/i.exec(a);if(!c)return null;let d=Number(c[1]),e=Number(c[2]??"0");if(d<1||d>12)return null;let f=d%12+12*(c[3]?.toLowerCase()==="p");if(!Number.isFinite(b)||f<0||f>23||e<0||e>59)return null;let g=new Date(1e3*b),h=new Date(g);return h.setHours(f,e,0,0),h.getTime()<=g.getTime()&&h.setDate(h.getDate()+1),Math.floor(h.getTime()/1e3)}(a.split("\n").slice(-14).join("\n"),b)}}let q=/^\s*❯?\s*\d+\.\s+\S/m,r=/Enter to (select|confirm|submit)/,s=/^\s*[─━—]{6,}\s*$/,t=/[☐☑✔☒]/,u=/^\s*(❯\s*)?(\d{1,2})\.\s+(\S.*)$/,v=/\s*\(Recommended\)\s*$/i;function w(a){let b=a.split("\n").map(a=>a.replace(/\s+$/,"")),c=-1;for(let a=b.length-1;a>=0;a-=1)if(r.test(b[a]??"")){c=a;break}if(-1===c)return null;let d=-1;for(let a=c-1;a>=Math.max(0,c-40);a-=1){let c=u.exec(b[a]??"");if(c&&1===Number(c[2])){d=a;break}}if(-1===d)return null;let e=[];for(let a=d;a<c;a+=1){let c=b[a]??"";if(!c.trim()||s.test(c))continue;let d=u.exec(c);if(d){let a=d[3].trim(),b=a.replace(v,"").trim();e.push({value:Number(d[2]),label:b||a,description:"",recommended:v.test(a)});continue}let f=e[e.length-1];f&&/^\s{2,}\S/.test(c)&&(f.description=f.description?`${f.description} ${c.trim()}`:c.trim())}if(e.length<2||e.some((a,b)=>a.value!==b+1))return null;let f=[],g=d-1;for(;g>=0&&!(b[g]??"").trim();)g-=1;for(let a=g;a>=0&&f.length<8;a-=1){let c=b[a]??"";if(!c.trim()||s.test(c)||t.test(c)||u.test(c))break;f.unshift(c.trim())}let h=f.join(" ").trim();if(!h)return null;let i=[],j=g-f.length;for(;j>=0&&!(b[j]??"").trim();)j-=1;let k=j>=0?b[j]??"":"";if(t.test(k))for(let a of k.replace(/[←→]/g," ").split(/\s{2,}/)){let b=a.replace(/[☐☑✔☒]/g,"").trim();b&&i.push({label:b,done:/[☑✔]/.test(a)})}return{question:h,tabs:i,options:e}}function x(a){if(null!==o(a)||g.test(a))return!0;let b=a.split("\n").slice(-14).join("\n");return q.test(b)&&!e.test(b)}let y=/esc to interrupt|ctrl\+c to (?:stop|cancel)|Interrupting/i,z=/Select login method|Choose (?:a|your) login method|Log in to (?:Claude|continue)|Sign in to (?:Claude|continue)/i,A=/Bypass Permissions mode[\s\S]*(?:accept all responsibility|No, exit)/i;function B(a,b){if("claude"!==a||y.test(b)||D(b))return null;let c=b.split("\n").slice(-20).join("\n");return z.test(c)?{code:"authentication_required",message:"Claude needs account re-login. Open Accounts, sign in, and retry the launch."}:A.test(c)?{code:"bypass_acceptance_required",message:"Claude bypass-permissions acceptance was not prepared. Retry the launch after refreshing the account."}:null}function C(a,b,c){if(B(a,b))return!1;let d=c.split("\n").map(a=>a.trim()).find(Boolean)?.slice(0,32)??"";if(!d)return D(b);if(y.test(b))return!0;let f=m(b);return!(f.includes(d)||f.includes("[Pasted text"))&&""!==f&&e.test(b)}function D(a){if(x(a))return!1;let b=a.split("\n"),c=-1;for(let a=b.length-1;a>=0;a-=1)if(d.test(b[a]??"")){c=a;break}if(-1===c)return!1;let f=b.slice(c+1).join("\n");return e.test(f)&&!y.test(f)}function E(a){return a.split("\n").filter(a=>a.trim()).slice(-3).join(" | ").slice(0,300)}},41617:(a,b,c)=>{c.d(b,{J0:()=>E,Kc:()=>R,NE:()=>s,O:()=>J,O$:()=>K,Sq:()=>I,Ut:()=>P,Zi:()=>t,b0:()=>M,js:()=>r,lS:()=>S,m1:()=>q,vD:()=>N,yG:()=>T,yN:()=>O,yX:()=>L});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724);c(27359);var k=c(22962);let l=/^[a-z0-9][a-z0-9-]{0,31}$/,m="default",n=["skills","prompts","config.toml","AGENTS.md","memories","rules"],o=null,p=new Set;class q extends Error{constructor(a){super(`unknown Codex account: ${a}`),this.name="UnknownAccountError"}}class r extends Error{constructor(){super("account label must contain visible text and be at most 80 characters"),this.name="InvalidAccountLabelError"}}class s extends Error{constructor(){super("Codex account registry is corrupt; repair or remove it before changing accounts"),this.name="CorruptCodexAccountsError"}}class t extends Error{constructor(){super("managed Codex home failed safety checks"),this.name="UnsafeCodexHomeError"}}function u(){return i().resolve(process.env.LLV_CODEX_HOME||i().join(g().homedir(),".codex"))}function v(){return i().join(i().dirname((0,j.Pn)()),"accounts","codex")}function w(){return(0,j.BQ)("codex-accounts.json")}function x(){return{version:1,active:m,accounts:[],retired:[]}}function y(a,b){p.has(a)||(p.add(a),console.error(`[codex accounts] ${b}`))}function z(a){return i().join(v(),a)}function A(a,b=!1){if(!l.test(a)||a===m)return!1;let c=i().resolve(v()),d=i().resolve(z(a));if(i().dirname(d)!==c)return!1;try{let a=e().lstatSync(c),b=e().lstatSync(d);if(!a.isDirectory()||a.isSymbolicLink()||!b.isDirectory()||b.isSymbolicLink()||(63&b.mode)!=0)return!1;let f=e().realpathSync(c);return i().dirname(e().realpathSync(d))===f}catch{return!b}}function B(){let a,b=w(),c=`${b}:${function(a){try{let b=e().statSync(a);return`${b.mtimeMs}:${b.size}`}catch{return"missing"}}(b)}`;if(o?.key===c)return o.loaded;try{a=e().existsSync(b)?function(a,b){if(!a||"object"!=typeof a)return y(b,"registry is invalid; serving the default account"),{registry:x(),corrupt:!0};if(1!==a.version||"string"!=typeof a.active||!Array.isArray(a.accounts)||void 0!==a.retired&&!Array.isArray(a.retired))return y(b,"registry has an unsupported shape; serving the default account"),{registry:x(),corrupt:!0};let c=new Set,d=[],e=!1;for(let f of a.accounts){if(!(f&&"object"==typeof f&&"string"==typeof f.id&&"string"==typeof f.label&&"managed"===f.kind&&"number"==typeof f.createdAt&&(void 0===f.loginPane||null===f.loginPane||"object"==typeof f.loginPane&&"string"==typeof f.loginPane.paneId&&"string"==typeof f.loginPane.windowName&&(void 0===f.loginPane.startedAt||"number"==typeof f.loginPane.startedAt)))||c.has(f.id)||!A(f.id)){y(`${b}:${"object"==typeof f&&f?"invalid-account":"invalid-entry"}`,"ignored an invalid managed account record"),e=!0;continue}c.add(f.id),d.push({id:f.id,label:f.label,kind:"managed",createdAt:f.createdAt,loginPane:f.loginPane?{...f.loginPane,startedAt:f.loginPane.startedAt??0}:null})}let f=[];for(let d of a.retired??[]){if(!(d&&"object"==typeof d&&"string"==typeof d.id&&"string"==typeof d.label&&"number"==typeof d.retiredAt)||c.has(d.id)||!A(d.id)){y(`${b}:invalid-retired`,"ignored an invalid retired account record"),e=!0;continue}c.add(d.id),f.push({id:d.id,label:d.label,retiredAt:d.retiredAt})}return{registry:{version:1,active:a.active,accounts:d,retired:f},corrupt:e}}(JSON.parse(e().readFileSync(b,"utf8")),c):{registry:x(),corrupt:!1}}catch{y(c,"registry cannot be read; serving the default account"),a={registry:x(),corrupt:!0}}return o={key:c,loaded:a},a}function C(){let a=B();if(a.corrupt)throw new s;return a.registry}function D(a){return(0,k.oV)(()=>{let b=`${w()}.lock`,c=Date.now();for(e().mkdirSync(i().dirname(b),{recursive:!0,mode:448});;){let d;try{d=e().openSync(b,"wx",384)}catch(a){if("EEXIST"!==a.code)throw a;try{if(Date.now()-e().statSync(b).mtimeMs>3e4){e().rmSync(b,{force:!0});continue}}catch{continue}if(Date.now()-c>=5e3)throw Error("Codex account registry is busy; retry shortly");Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,10);continue}try{return e().writeFileSync(d,`${process.pid}
|
|
2
|
-
`,"utf8"),a()}finally{e().closeSync(d),e().rmSync(b,{force:!0})}}})}function E(){return B().corrupt}function F(a){let b=w();e().mkdirSync(i().dirname(b),{recursive:!0,mode:448});let c=i().join(i().dirname(b),`.${i().basename(b)}.${process.pid}.${Date.now()}.tmp`);try{e().writeFileSync(c,JSON.stringify(a,null,2)+"\n",{encoding:"utf8",mode:384}),e().renameSync(c,b),o=null}finally{e().rmSync(c,{force:!0})}}function G(a){try{return e().statSync(i().join(a,"auth.json")).isFile()}catch{return!1}}function H(a){let b=z(a.id);return{id:a.id,label:a.label,kind:"managed",home:b,sessionsDir:i().join(b,"sessions"),authPresent:G(b),loginPane:a.loginPane??null,createdAt:a.createdAt}}function I(){let a;return[{id:m,label:"Main",kind:"legacy",home:a=u(),sessionsDir:i().join(a,"sessions"),authPresent:G(a),loginPane:null,createdAt:0},...B().registry.accounts.map(H)]}function J(){let a=B().registry.active;return I().some(b=>b.id===a)?a:m}function K(a){let b=a??J(),c=I().find(a=>a.id===b);if(!c)throw new q(b);return{id:c.id,kind:c.kind,home:c.home,sessionsDir:c.sessionsDir}}function L(a){return I().some(b=>"managed"===b.kind&&b.home===a)}function M(a){D(()=>{o=null;let b=C();if(!I().some(b=>b.id===a))throw new q(a);F({...b,active:a})})}function N(){return[...new Set([...I().map(a=>a.sessionsDir),...B().registry.retired.map(a=>i().join(z(a.id),"sessions"))])]}function O(a){let b;try{b=e().realpathSync(a)}catch{return null}for(let a of I())try{let c=e().realpathSync(a.sessionsDir);if(b.startsWith(c+i().sep))return a.home}catch{continue}return null}function P(a){let b=a.trim();if(!b||b.length>80||/[\u0000-\u001f\u007f]/.test(b))throw new r;return D(()=>{o=null;let a=C(),c=function(a,b){let c=a.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,32)||"account";for(let a=0;;a+=1){let d=0===a?c:`${c.slice(0,32-String(a).length-1)}-${a}`;if(l.test(d)&&d!==m&&!b.has(d)&&!e().existsSync(z(d)))return d}}(b,new Set([...I().map(a=>a.id),...a.retired.map(a=>a.id)])),d=z(c),f=!1;try{for(let a of(e().mkdirSync(i().dirname(d),{recursive:!0,mode:448}),e().mkdirSync(d,{recursive:!1,mode:448}),f=!0,e().chmodSync(d,448),n))e().symlinkSync(i().join(u(),a),i().join(d,a));e().mkdirSync(i().join(d,"plugins"),{mode:448}),e().symlinkSync(i().join(u(),"plugins","cache"),i().join(d,"plugins","cache"));let g={id:c,label:b,kind:"managed",createdAt:Date.now(),loginPane:null};return F({...a,accounts:[...a.accounts,g]}),H(g)}catch(a){throw f&&e().rmSync(d,{recursive:!0,force:!0}),a}})}function Q(a){let b;try{b=e().readdirSync(a,{withFileTypes:!0})}catch{return{stripped:[],complete:!1}}let c=[],d=!0;for(let f of b)if("sessions"!==f.name)try{e().rmSync(i().join(a,f.name),{recursive:!0,force:!0}),c.push(f.name)}catch{d=!1}return{stripped:c,complete:d}}function R(a){return D(()=>{o=null;let b=C(),c=b.accounts.find(b=>b.id===a);if(!c)throw new q(a);let d=z(a),f=e().existsSync(d);if(f&&!A(a,!0))throw new t;let g=f&&function(a){try{return e().readdirSync(i().join(a,"sessions")).length>0}catch{return!1}}(d),h=b.retired.filter(b=>b.id!==a);if(F({...b,active:b.active===a?m:b.active,accounts:b.accounts.filter(b=>b.id!==a),retired:g?[...h,{id:a,label:c.label,retiredAt:Date.now()}]:h}),!f)return{cleanupPending:!1};if(g)return{cleanupPending:!Q(d).complete};try{e().rmSync(d,{recursive:!0,force:!0})}catch{return{cleanupPending:!0}}return{cleanupPending:!1}})}function S(){return D(()=>{let a;o=null;let b=C(),c=new Set(b.accounts.map(a=>a.id)),d=new Set(b.retired.map(a=>a.id));try{a=e().readdirSync(v(),{withFileTypes:!0})}catch(a){if("ENOENT"===a.code)return{removed:[],unresolved:[]};throw a}let f=[],g=[];for(let b of a)if(!c.has(b.name)){if(!b.isDirectory()||!A(b.name,!0)){g.push(b.name);continue}if(d.has(b.name)){let a=Q(z(b.name));a.complete?a.stripped.length>0&&f.push(b.name):g.push(b.name);continue}try{e().rmSync(z(b.name),{recursive:!0,force:!0}),f.push(b.name)}catch{g.push(b.name)}}return{removed:f.sort(),unresolved:g.sort()}})}function T(a,b){D(()=>{o=null;let c=C(),d=c.accounts.findIndex(b=>b.id===a);if(d<0)throw new q(a);let e=[...c.accounts];e[d]={...e[d],loginPane:b},F({...c,accounts:e})})}},92806:(a,b,c)=>{c.d(b,{Cy:()=>d,Fd:()=>e});let d="WAKATIME_API_KEY";function e(a){let b={};for(let c of Object.keys(a))c!==d&&(b[c]=a[c]);return b}}};
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=616,exports.ids=[616],exports.modules={1198:(a,b,c)=>{function d(a,b){let c=RegExp(`^${b}:\\s+(\\d+)\\s*kB`,"m").exec(a);if(!c)return null;let d=Number(c[1]);return Number.isFinite(d)?1024*d:null}function e(a){let b=d(a,"MemTotal"),c=d(a,"MemAvailable");if(null===b||null===c||b<=0)return null;let e=d(a,"SwapTotal")??0,f=d(a,"SwapFree")??e;return{ramTotal:b,ramAvailable:c,swapTotal:e,swapUsed:Math.max(0,e-f)}}function f(a){return{rssBytes:d(a,"VmRSS")??0,swapBytes:d(a,"VmSwap")??0}}function g(a){let b=Number(/page size of (\d+) bytes/.exec(a)?.[1]);if(!Number.isFinite(b)||b<=0)return null;let c=b=>{let c=RegExp(`^${b}:\\s+(\\d+)\\.?`,"m").exec(a);return c?Number(c[1]):null},d=c("Pages free"),e=c("Pages inactive");return null===d||null===e?null:(d+e+(c("Pages purgeable")??0))*b}c.d(b,{CT:()=>k,Lc:()=>g,NW:()=>e,mO:()=>l,sW:()=>f,yh:()=>j});let h=/([\d.]+)\s*([KMGT])/;function i(a){let b=h.exec(a);if(!b)return null;let c=Number(b[1]);return Number.isFinite(c)?Math.round(c*({K:1024,M:1048576,G:0x40000000,T:0x10000000000})[b[2]]):null}function j(a){let b=/total\s*=\s*(\S+)/.exec(a)?.[1],c=/used\s*=\s*(\S+)/.exec(a)?.[1];if(!b||!c)return null;let d=i(b),e=i(c);return null===d||null===e?null:{swapTotal:d,swapUsed:e}}function k(a){let b=new Map;for(let c of a.split("\n")){let a=/^\s*(\d+)\s+(\d+)\s*$/.exec(c);a&&b.set(Number(a[1]),1024*Number(a[2]))}return b}function l(a,b){let c=new Map;for(let[a,d]of b){if(a===d)continue;let b=c.get(d);b?b.push(a):c.set(d,[a])}let d=new Set([a]),e=[],f=[a];for(;f.length;){let a=f.pop();for(let b of(e.push(a),c.get(a)??[]))d.has(b)||(d.add(b),f.push(b))}return e}},7733:(a,b,c)=>{c.d(b,{Jj:()=>u,q5:()=>n,gY:()=>q,nP:()=>p,UI:()=>D,GG:()=>v,Vw:()=>E,DV:()=>C});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="LLV_MANAGED_NATIVE_SUBAGENT_DENY=1 ",l=".llv",m=["enableAllProjectMcpServers","enabledMcpjsonServers","disabledMcpjsonServers"],n=Object.freeze(["Task","Agent","Workflow","TeamCreate","TeamDelete","SendMessage"]),o=n.join("|"),p="http://127.0.0.1:8898/api/spawn",q="LLV_SPAWN_CAPABILITY",r=`Send header x-llv-spawn-capability: $${q}.`,s=`Sub-agents are disabled on this surface. Spawn через POST ${p} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?} and ${r} The worker then appears on the board with correct lineage.`,t=`Viewer spawn policy: avoid native sub-agent, collaboration, and background-agent features. Spawn every helper through POST ${p} with {engine, model, cwd, prompt, src: <your transcript path>, role, reviews?}. ${r} The worker appears on the board with correct lineage.`,u={plugins:!1,apps:!1,multi_agent:!1};function v(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,l,"hooks","deny-native-subagents.sh");return{settingsPath:g().join(a,l,"spawn-settings",`${b}.json`),mcpConfigPath:g().join(a,l,"spawn-mcp",`${b}.json`),hookPath:c,command:`${k}${x(c)}`}}function w(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function x(a){return"'"+a.replace(/'/g,"'\\''")+"'"}function y(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 z(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=w(b);if(!c)throw Error(`Claude settings must contain a JSON object: ${a}`);return c}function A(a){return Array.isArray(a)?a.filter(a=>"string"==typeof a):[]}function B(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)?w(z(d).mcpServers)??{}:{}}function C(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=w(a);if(!b)throw Error(`Claude state must contain a JSON object: ${c}`);d=b}let f=void 0===d.projects?{}:w(d.projects);if(!f)throw Error(`Claude state projects must contain a JSON object: ${c}`);let h=void 0===f[b]?{}:w(f[b]);if(!h)throw Error(`Claude project state must contain a JSON object: ${b}`);y(c,JSON.stringify({...d,hasCompletedOnboarding:!0,bypassPermissionsModeAccepted:!0,projects:{...f,[b]:{...h,hasTrustDialogAccepted:!0,hasCompletedProjectOnboarding:!0}}},null,2)+"\n",384)}function D(a,b={}){let c=g().join(a,"settings.json"),d=v(a,b.profileId??i().randomUUID()),f=e().existsSync(c),h=f?z(c):b.baseSettingsPath?z(b.baseSettingsPath):{},l=f?{}:h;if(!b.allowSubagents&&!0===h.disableAllHooks)throw Error("Claude settings disableAllHooks prevents the Viewer spawn policy from enforcing native sub-agent denial");if(!b.allowSubagents&&!0===h.allowManagedHooksOnly)throw Error("Claude settings allowManagedHooksOnly prevents the Viewer spawn policy from enforcing native sub-agent denial");let n=void 0===h.hooks?{}:w(h.hooks);if(!n)throw Error("Claude settings hooks must contain a JSON object");let p=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=w(a);if(!b||!Array.isArray(b.hooks))return[a];let c=b.hooks.filter(a=>{var b;return!("string"==typeof(b=w(a)?.command)&&b.startsWith(k))});return c.length?[{...b,hooks:c}]:[]})}(n.PreToolUse);if(!b.allowSubagents){let a=`#!/bin/sh
|
|
2
|
-
printf '%s\\n' ${x(s)} >&2
|
|
3
|
-
exit 2
|
|
4
|
-
`;y(d.hookPath,a,448),p.push({matcher:o,hooks:[{type:"command",command:d.command}]})}let q=b.allowSubagents?l:{...l,disableAllHooks:!1,allowManagedHooksOnly:!1},r=function(a,b,c){if(!e().existsSync(a))return{};let d=z(a),f=w(d.mcpServers)??{},g=w(d.projects),h=b&&g?w(g[b]):null,i=B(b),k=w(h?.mcpServers)??{},l={...f,...i,...k};return Object.fromEntries((0,j.c1)(c).flatMap(a=>{let b=w(l[a]);return b?[[a,b]]:[]}))}(b.mcpStatePath??g().join(a,".claude.json"),b.cwd,b.mcpServers),t=new Set(Object.keys(r)),u=Object.keys(B(b.cwd)).filter(a=>!t.has(a)),C=Object.fromEntries(Object.entries(q).filter(([a])=>"mcpServers"!==a)),E=Object.fromEntries(m.flatMap(a=>void 0===h[a]?[]:[[a,h[a]]]));void 0!==h.enabledMcpjsonServers&&(E.enabledMcpjsonServers=A(h.enabledMcpjsonServers).filter(a=>t.has(a)));let F=[...new Set([...A(h.disabledMcpjsonServers),...u])];return F.length>0&&(E.disabledMcpjsonServers=F),y(d.settingsPath,JSON.stringify({...C,...E,hooks:{...n,PreToolUse:p}},null,2)+"\n",384),y(d.mcpConfigPath,JSON.stringify({mcpServers:r},null,2)+"\n",384),d}function E(a,b){return"codex"!==a?b:[b.trim(),t].filter(Boolean).join("\n\n")}},20616:(a,b,c)=>{c.d(b,{ph:()=>ad,Ou:()=>ah,agentRegistry:()=>a7,oP:()=>aR});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(52e3),m=c(63685),n=c(58577),o=c(82093),p=c(23953),q=c(65972),r=c(7733);let s=Object.freeze(["reviewer","verifier"]);function t(a){return"string"==typeof a&&s.includes(a)}class u extends Error{constructor(a,b){super(b.guidance),this.receipt=a,this.rejection=b,this.name="SpawnAdmissionError"}}function v(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}var w=c(88623);let x="LLV_AGENT_REGISTRY_SQLITE";class y extends Error{constructor(...a){super(...a),this.name="RegistryBackendIdentityError"}}let z={readText(a){try{return g().readFileSync(a,"utf8")}catch(b){if("ENOENT"===b.code)return null;throw new y(`${i().basename(a)} is unreadable: ${b.code??"unknown error"}`)}},exists:a=>g().existsSync(a),writeText(a,b){g().mkdirSync(i().dirname(a),{recursive:!0,mode:448});let c=`${a}.${process.pid}.${(0,d.randomUUID)()}.tmp`,e=g().openSync(c,"wx",384);try{g().writeFileSync(e,b),g().fsyncSync(e)}finally{g().closeSync(e)}g().renameSync(c,a)}};function A(a){let b=i().basename(a).replace(/\.json$/,"");return i().join(i().dirname(a),`${b}.backend.json`)}function B(a){return a.endsWith(".json")?`${a.slice(0,-5)}.sqlite`:`${a}.sqlite`}function C(a){return"off"===a||"dual-write"===a||"read"===a||"sqlite"===a}function D(a=process.env){let b=a[x]??"off";if(C(b))return b;throw Error(`${x} must be off, dual-write, read, or sqlite`)}function E(a,b){let c;try{c=JSON.parse(a)}catch{throw new y(`${b} is not valid JSON`)}if(!c||"object"!=typeof c||Array.isArray(c))throw new y(`${b} is not an object`);let d=c;if(1!==d.schemaVersion)throw new y(`${b} declares schema version ${String(d.schemaVersion)}, but this build understands 1`);if(!C(d.mode))throw new y(`${b} declares an unknown backend mode`);let e=d.sqliteFile;if(null!==e&&"string"!=typeof e)throw new y(`${b} declares an invalid store filename`);if("string"==typeof e&&(""===e||e!==i().basename(e)))throw new y(`${b} must name its store as a bare filename`);if("off"!==d.mode&&null===e)throw new y(`${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:""}}let F=new Set(["entries","receipts","conversations","lineageEdges"]),G=["entries","receipts","lineageEdges","memberships","conversations","conversationAliases","migrationIntents","heldDeliveries","deliveryOperationOwners","pendingSuccessorCleanups","pendingSupersedence"],H=["importedResumePanes","legacyResumePanes","conversationRevision","engineRouting","autoBalance","quotaObservations"];function I(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)=>I(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 J{markDecided(a){return this.decidedFiles.add(a),a}decideAssembled(a){return(0,p.$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(`
|
|
5
|
-
CREATE TABLE IF NOT EXISTS registry_meta (
|
|
6
|
-
key TEXT PRIMARY KEY,
|
|
7
|
-
value TEXT NOT NULL
|
|
8
|
-
);
|
|
9
|
-
CREATE TABLE IF NOT EXISTS registry_rows (
|
|
10
|
-
collection TEXT NOT NULL,
|
|
11
|
-
row_key TEXT NOT NULL,
|
|
12
|
-
value_json TEXT NOT NULL,
|
|
13
|
-
row_order INTEGER NOT NULL,
|
|
14
|
-
PRIMARY KEY(collection, row_key)
|
|
15
|
-
);
|
|
16
|
-
`),this.db.query("PRAGMA table_info(registry_rows)").all().some(a=>"row_order"===a.name)||this.db.exec(`
|
|
17
|
-
BEGIN IMMEDIATE;
|
|
18
|
-
ALTER TABLE registry_rows ADD COLUMN row_order INTEGER NOT NULL DEFAULT 0;
|
|
19
|
-
WITH ordered AS (
|
|
20
|
-
SELECT rowid, ROW_NUMBER() OVER (PARTITION BY collection ORDER BY rowid) - 1 AS position
|
|
21
|
-
FROM registry_rows
|
|
22
|
-
)
|
|
23
|
-
UPDATE registry_rows
|
|
24
|
-
SET row_order = (SELECT position FROM ordered WHERE ordered.rowid = registry_rows.rowid);
|
|
25
|
-
INSERT INTO registry_meta(key, value) VALUES ('schema_version', '2')
|
|
26
|
-
ON CONFLICT(key) DO UPDATE SET value = excluded.value;
|
|
27
|
-
COMMIT;
|
|
28
|
-
`),this.db.exec(`
|
|
29
|
-
CREATE INDEX IF NOT EXISTS registry_rows_collection_order
|
|
30
|
-
ON registry_rows(collection, row_order);
|
|
31
|
-
`),this.secureFiles(),this.importFirstBoot(b.initialSnapshot)}snapshot(){return this.loadSnapshot(!1)}loadSnapshot(a){this.onSnapshotLoad?.(),this.db.exec("BEGIN");try{let b=this.loadInTransaction(a);return this.db.exec("COMMIT"),b}catch(a){try{this.db.exec("ROLLBACK")}catch{}throw a}}revision(){for(let a=0;a<2;a+=1){let a=this.storageSignature();if(this.revisionCache?.signature===a)return this.revisionCache.revision;this.onRevisionQuery?.();let b=Number(this.meta("revision")??0),c=this.storageSignature();if(a===c)return this.revisionCache={signature:c,revision:b},b}this.onRevisionQuery?.();let a=Number(this.meta("revision")??0);return this.rememberRevision(a),a}readOnlySnapshot(){let a=this.revision();return this.readOnlyCache?.revision===a||(this.readOnlyCache=this.loadSnapshot(!0)),this.readOnlyCache}snapshotSpawns(a){this.db.exec("BEGIN");try{let b=(a,b)=>{let c=this.db.query("SELECT value_json FROM registry_rows WHERE collection = ? AND row_key = ?").get(a,b);return this.onRowPayloadRead?.(a,+!!c),c?this.parseRow(a,b,c.value_json,!0):void 0},c=(a,b,c)=>{let d={version:2,entries:{},receipts:{}};return d[a]={[b]:c},this.normalize(d)[a][b]},d={};for(let e of new Set(a)){let a=b("receipts",e);if(void 0===a)continue;let f=c("receipts",e,a);if(!f)continue;let g=new Set,h=f.conversationId,i=!1;for(;!g.has(h)&&g.size<64;){g.add(h);let a=b("conversationAliases",h);if("string"!=typeof a||!a.startsWith("conversation_"))break;h=a,i=64===g.size}let j=i?void 0:b("conversations",h),k=void 0===j?void 0:c("conversations",h,j);d[e]={launchId:f.launchId,state:f.state,error:f.error,engine:f.engine,cwd:f.cwd,createdAt:f.createdAt,materializedPath:k?.generations.at(-1)?.path??f.artifactPath}}return this.db.exec("COMMIT"),d}catch(a){try{this.db.exec("ROLLBACK")}catch{}throw a}}snapshotTitleConversations(a){this.db.exec("BEGIN");try{let b=(a,b)=>{let c=this.db.query("SELECT value_json FROM registry_rows WHERE collection = ? AND row_key = ?").get(a,b);return this.onRowPayloadRead?.(a,+!!c),c?this.parseRow(a,b,c.value_json,!0):void 0},c=(a,b)=>this.normalize({version:2,entries:{},receipts:{},conversations:{[a]:b}}).conversations[a],d=new Map;for(let e of[...new Set(a)].slice(0,2e3)){if(!e.startsWith("conversation_"))continue;let a=new Set,f=e,g=!1;for(;f;){if(a.has(f)){f=null;break}if(a.size>=64){g=!0;break}a.add(f);let c=b("conversationAliases",f);if("string"!=typeof c||!c.startsWith("conversation_"))break;f=c}if(!f||g)continue;let h=d.get(f),i=h?void 0:b("conversations",f),j=h?.conversation??(void 0===i?void 0:c(f,i));if(!j)continue;let k=h??{aliases:new Set,conversation:j};for(let b of a)b!==f&&k.aliases.add(b);d.set(f,k)}let e=[...d.values()].map(({aliases:a,conversation:b})=>({conversationId:b.id,aliases:[...a],ownedPaths:[...new Set([...[...b.generations].reverse().map(a=>a.path),...[...b.continuityPaths].reverse()])].slice(0,128)}));return this.db.exec("COMMIT"),e}catch(a){try{this.db.exec("ROLLBACK")}catch{}throw a}}mutate(a,b=!0){for(;;){let c,d,e,f;this.db.exec("BEGIN");try{c=this.loadLazyInTransaction(),e=a(c.file),d=c.changes(),this.db.exec("COMMIT")}catch(a){try{this.db.exec("ROLLBACK")}catch{}throw a}let g=performance.now();this.db.exec("BEGIN IMMEDIATE");let h=d.rows.size>0||d.meta.size>0||d.order.size>0;try{if(this.onWriterWait?.(performance.now()-g),Number(this.meta("revision")??0)!==c.revision){this.db.exec("ROLLBACK");continue}f=h?c.revision+1:c.revision,h&&this.persistChanges(c.file,d,f),this.db.exec("COMMIT")}catch(a){try{this.db.exec("ROLLBACK")}catch{}throw a}if(h&&(this.secureFiles(),this.updateCachesAfterCommit(c.file,d,f),this.rememberRevision(f)),b){let a=this.snapshot();return{result:e,file:a.file,revision:a.revision}}return{result:e,file:null,revision:f}}}replace(a,b){let c=this.decideAssembled(a);this.db.exec("BEGIN IMMEDIATE");try{let d=this.loadInTransaction();if(void 0!==b&&d.revision!==b)return this.db.exec("ROLLBACK"),{...d,replaced:!1};let e=d.revision+1;return this.persistDiff(d.file,c,e),this.db.exec("COMMIT"),this.secureFiles(),this.rowCache.clear(),this.readOnlyCache=null,this.rememberRevision(e),{file:a,revision:e,replaced:!0}}catch(a){try{this.db.exec("ROLLBACK")}catch{}throw a}}importFirstBoot(a){this.db.exec("BEGIN IMMEDIATE");try{let b=this.meta("migration_complete");"1"!==b&&(this.persistAll(this.decideAssembled(a),1),this.setMeta("schema_version","2"),this.setMeta("migration_complete","1")),this.db.exec("COMMIT"),this.secureFiles()}catch(a){try{this.db.exec("ROLLBACK")}catch{}throw a}}loadInTransaction(a=!1){let b=this.loadLazyInTransaction(!1,a);for(let a of G)b.file[a];for(let a of H)b.file[a];return b}loadLazyInTransaction(a=!0,b=a){let c=this.markDecided(this.normalize({version:2,entries:{},receipts:{}})),d=!1,e=!1,f=()=>{if(!d&&!e){e=!0;try{(0,p.$q)(c,this.mcpGrantPolicy),d=!0}finally{e=!1}}},g=(a,b)=>(F.has(a)&&(0,p.oN)(b)&&f(),b),h=new Map,i=new Map,k=new Map,l=new Set;for(let d of G){let e=!1,j=c[d],m=()=>{},n=()=>{if(e)return;let f=new Set,l=new Map;if(a&&"deliveryOperationOwners"!==d){let a={},c=new Set,e=null,h=null,i=!1,k=null,n=new Map,o=this.db.query("SELECT value_json FROM registry_rows WHERE collection = ? AND row_key = ?"),p=this.db.query("SELECT row_key, value_json FROM registry_rows WHERE collection = ? ORDER BY row_order"),q=()=>{if(k)return k;for(let a of(k=p.all(d),this.onRowPayloadRead?.(d,k.length),h=new Set(e=k.map(a=>a.row_key)),k))l.set(a.row_key,a.value_json);return k};m=()=>{q()};let r=a=>{if(l.has(a))return l.get(a);let b=o.get(d,a)?.value_json??null;return this.onRowPayloadRead?.(d,+(null!==b)),l.set(a,b),b},s=e=>{if(!Object.hasOwn(a,e)){if(c.has(e))return;let f=r(e);if(null===f)return;let g={version:2,entries:{},receipts:{}};g[d]={[e]:structuredClone(this.parseRow(d,e,f,b))};let h=this.normalize(g)[d];if(!Object.hasOwn(h,e))return;a[e]=h[e]}return g(d,a[e])},t=()=>{if(i)return;let e=q(),f={};for(let g of e)Object.hasOwn(a,g.row_key)||c.has(g.row_key)||(f[g.row_key]=structuredClone(this.parseRow(d,g.row_key,g.value_json,b)));let g={version:2,entries:{},receipts:{}};for(let[b,c]of(g[d]=f,Object.entries(this.normalize(g)[d])))a[b]=c;i=!0},u=()=>(t(),[...e.filter(a=>!c.has(a)),...Object.keys(a).filter(a=>!h.has(a))]);j=new Proxy(a,{get:(a,b,c)=>{if("string"!=typeof b)return Reflect.get(a,b,c);let d=s(b);if(void 0===d)return;let e=n.get(b);return e||(e=new WeakMap,n.set(b,e)),I(d,()=>f.add(b),e)},set:(a,b,d)=>("string"==typeof b&&(r(b),f.add(b),c.delete(b),n.delete(b)),Reflect.set(a,b,d)),deleteProperty:(a,b)=>("string"==typeof b&&(r(b),f.add(b),c.add(b),n.delete(b)),Reflect.deleteProperty(a,b)),defineProperty:(a,b,d)=>("string"==typeof b&&(r(b),f.add(b),c.delete(b),n.delete(b)),Reflect.defineProperty(a,b,d)),has:(b,c)=>"string"==typeof c?void 0!==s(c):Reflect.has(a,c),ownKeys:()=>u(),getOwnPropertyDescriptor:(a,b)=>{if("string"!=typeof b)return;let c=s(b);if(void 0!==c)return{configurable:!0,enumerable:!0,writable:!0,value:c}}})}else{let e={},g=this.db.query("SELECT collection, row_key, value_json, row_order FROM registry_rows WHERE collection = ? ORDER BY row_order").all(d);for(let c of(this.onRowPayloadRead?.(d,g.length),g)){let f=this.parseRow(d,c.row_key,c.value_json,b);e[c.row_key]=a?structuredClone(f):f,l.set(c.row_key,c.value_json)}let h={version:2,entries:{},receipts:{}};if(h[d]=e,"deliveryOperationOwners"===d&&(h.heldDeliveries=c.heldDeliveries),j=this.normalize(h)[d],a){let a=new Map;j=new Proxy(j,{get:(b,c,d)=>{let e=Reflect.get(b,c,d);if("string"!=typeof c||!Object.hasOwn(b,c))return e;let g=a.get(c);return g||(g=new WeakMap,a.set(c,g)),I(e,()=>f.add(c),g)},set:(a,b,c)=>("string"==typeof b&&f.add(b),Reflect.set(a,b,c)),deleteProperty:(a,b)=>("string"==typeof b&&f.add(b),Reflect.deleteProperty(a,b)),defineProperty:(a,b,c)=>("string"==typeof b&&f.add(b),Reflect.defineProperty(a,b,c))})}m=()=>{}}e=!0,h.set(d,j),i.set(d,l),k.set(d,f)};Object.defineProperty(c,d,{configurable:!0,enumerable:!0,get:()=>(n(),!a&&F.has(d)&&f(),j),set:a=>{n(),m(),j=a,h.set(d,j),l.add(d)}})}let m=new Map,n=new Map;for(let a of H){let b=!1,d=c[a],e=()=>{if(b)return;let c=this.meta(a);null!==c&&(d=JSON.parse(c)),b=!0,m.set(a,d),n.set(a,structuredClone(d))};Object.defineProperty(c,a,{configurable:!0,enumerable:!0,get:()=>(e(),d),set:b=>{e(),d=b,m.set(a,d)}})}return{file:c,revision:Number(this.meta("revision")??0),changes:()=>{let a={rows:new Map,meta:new Set,order:new Set};for(let[b,c]of h){let d=i.get(b),e=c,f=new Set([...l.has(b)?new Set([...d.keys(),...Object.keys(e)]):k.get(b)].filter(a=>{if(!Object.hasOwn(e,a))return d.has(a);let b=d.get(a);return void 0===b||JSON.stringify(e[a])!==b}));f.size>0&&a.rows.set(b,f),l.has(b)&&(a.rows.set(b,new Set([...Object.keys(d),...Object.keys(e)])),a.order.add(b))}for(let[b,c]of m)(0,j.isDeepStrictEqual)(n.get(b),c)||a.meta.add(b);return a}}}parseRow(a,b,c,d){if(!d)return this.onRowPayloadParse?.(a,1),JSON.parse(c);let e=this.rowCache.get(a);e||(e=new Map,this.rowCache.set(a,e));let f=e.get(b);if(f?.valueJson===c)return f.parsed;let g=JSON.parse(c);return this.onRowPayloadParse?.(a,1),e.set(b,{valueJson:c,parsed:g}),g}updateCachesAfterCommit(a,b,c){let d=this.readOnlyCache?.revision===c-1?this.readOnlyCache:null,e=d?{...d.file}:null;for(let[c,f]of b.rows){let g=a[c],h=this.rowCache.get(c);h||(h=new Map,this.rowCache.set(c,h));let i=e?{...d.file[c]}:null;for(let a of f){if(!Object.hasOwn(g,a)){h.delete(a),i&&delete i[a];continue}let b=JSON.stringify(g[a]),c=JSON.parse(b);h.set(a,{valueJson:b,parsed:c}),i&&(i[a]=c)}if(e&&i)if(b.order.has(c)){let a={};for(let b of Object.keys(g))Object.hasOwn(i,b)&&(a[b]=i[b]);e[c]=a}else e[c]=i}if(e){for(let c of b.meta)e[c]=structuredClone(a[c]);this.readOnlyCache={file:e,revision:c}}else this.readOnlyCache=null}persistAll(a,b){for(let b of(this.assertDecided(a),this.db.exec("DELETE FROM registry_rows"),G))for(let[c,[d,e]]of Object.entries(a[b]).entries())this.upsertRow(b,d,e,c);for(let b of H)this.setMeta(b,JSON.stringify(a[b]));this.setMeta("revision",String(b))}persistDiff(a,b,c){for(let c of(this.assertDecided(b),G)){let d=a[c],e=b[c];for(let a of new Set([...Object.keys(d),...Object.keys(e)])){if(!(a in e)){this.db.query("DELETE FROM registry_rows WHERE collection = ? AND row_key = ?").run(c,a);continue}a in d&&(0,j.isDeepStrictEqual)(d[a],e[a])||this.upsertRow(c,a,e[a])}this.persistRowOrder(c,Object.keys(e))}for(let c of H)(0,j.isDeepStrictEqual)(a[c],b[c])||this.setMeta(c,JSON.stringify(b[c]));this.setMeta("revision",String(c))}persistChanges(a,b,c){for(let[c,d]of(this.assertDecided(a),b.rows)){let b=a[c];for(let a of d)a in b?this.upsertRow(c,a,b[a]):this.db.query("DELETE FROM registry_rows WHERE collection = ? AND row_key = ?").run(c,a)}for(let c of b.order)this.persistRowOrder(c,Object.keys(a[c]));for(let c of b.meta)this.setMeta(c,JSON.stringify(a[c]));this.setMeta("revision",String(c))}upsertRow(a,b,c,d){void 0!==d?this.db.query(`
|
|
32
|
-
INSERT INTO registry_rows(collection, row_key, value_json, row_order) VALUES (?, ?, ?, ?)
|
|
33
|
-
ON CONFLICT(collection, row_key) DO UPDATE SET value_json = excluded.value_json, row_order = excluded.row_order
|
|
34
|
-
`).run(a,b,JSON.stringify(c),d):this.db.query(`
|
|
35
|
-
INSERT INTO registry_rows(collection, row_key, value_json, row_order)
|
|
36
|
-
SELECT ?, ?, ?, COALESCE(MAX(row_order) + 1, 0) FROM registry_rows WHERE collection = ?
|
|
37
|
-
ON CONFLICT(collection, row_key) DO UPDATE SET value_json = excluded.value_json
|
|
38
|
-
`).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 = ?").run(c,a,d)}meta(a){return this.db.query("SELECT key, value FROM registry_meta WHERE key = ?").get(a)?.value??null}setMeta(a,b){this.db.query(`
|
|
39
|
-
INSERT INTO registry_meta(key, value) VALUES (?, ?)
|
|
40
|
-
ON CONFLICT(key) DO UPDATE SET value = excluded.value
|
|
41
|
-
`).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 K=c(47473);let L="structured-host:";class M 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 N extends Error{constructor(a,b){super(b),this.successorConversationId=a,this.name="SupersedenceConflictError"}}function O(a){return(a.scope??"engine")==="engine"}function P(a,b,c){if(Q(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 Q(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 R(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 S(a){return null===a||"committed"===a.phase||"rolled-back"===a.phase||("waiting-turn"===a.phase||"requested"===a.phase)&&null===a.providerReceipt}function T(a){return"resume-successor"===a.purpose&&"failed"!==a.state&&("completed"!==a.state||null===a.resumeSourcePath||a.artifactPath===a.resumeSourcePath)}let U={now:()=>Date.now(),wait:async a=>{await new Promise(b=>setTimeout(b,a))}};function V(a,b,c){let d=R(a);return JSON.stringify(Object.values(a.conversations).filter(a=>a.engine===b&&c.has(a.generations.at(-1)?.path??"")).map(b=>[b.id,P(a,b,d)]).sort(([a],[b])=>a.localeCompare(b)))}function W(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 X(a,b,c,d){V(a,b,d)!==c&&(a.conversationRevision[b]+=1,a.engineRouting[b].revision+=1)}function Y(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,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 Z(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 $(a,b,c){for(let d of Object.values(a.heldDeliveries))d.conversationId===b.id&&"delivered"!==d.state&&"failed"!==d.state&&_(a,d,c)}function _(a,b,c){let d="delivery-uncertain"===b.state?`${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=d.slice(0,240),aw(a,b)}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=V(a,b.engine,h);"stopped"!==e.state&&(e.state="stopped",e.stoppedAt=g,e.updatedAt=g),Z(a,b,g),aG(b),$(a,b,o.JJ),b.migration={...d,phase:"rolled-back",pendingContinuityPaths:[],error:null,errorCode:null,updatedAt:g},b.updatedAt=g,X(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:{},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"]);function am(a){return l.B.pidAlive(a.pid)&&(null===a.startIdentity||l.B.processIdentity(a.pid)===a.startIdentity)}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}: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):[]}}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,n.Ui)({...c.launchProfile,...d});let e=a.entries[(0,w.pp)({engine:b.engine,sessionId:c.id})];e&&(e.launchProfile=(0,n.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"};return(a?.turnId===null||"string"==typeof a?.turnId)&&(c.turnId=a.turnId),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,K.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,K.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,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,b){let c=a.deliveryOperationOwners[b.command.operationId];c?.deliveryId===b.id&&(c.terminalState=av(b))}function ax(a,b){let c=b.clientMessageId;if(!c||!c.startsWith("spawn_"))return null;let d=c.slice(6),e=a.receipts[d];return e&&"launch"===e.purpose&&"failed"===e.state?d:null}function ay(a){let b=[];for(let c of Object.values(a.heldDeliveries))"held"===c.state&&ax(a,c)&&(c.state="failed",c.generationId=null,c.assignedAt=null,c.deliveredAt=null,c.error="spawn failed before its initial message was delivered",aw(a,c),b.push(c.id));return b}function az(a,b,c,d,e,f){let g=aL(a,b),h=d?Object.values(a.heldDeliveries).find(b=>aL(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))aL(a,c)===b&&e.add(c);return new Set([...e].map(a=>as(a,c,d)))}(a,g,c,i);if(h?.requestDigest&&!k.has(h.requestDigest)||h?.contentDigest&&e&&e!==h.contentDigest)throw new ad;let l=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&&aL(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&&(l=ai(c))}return{canonicalId:g,existing:h,requestDigest:j,terminalOperationRetry:l}}function aA(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 aB(a,b){for(let b of Object.values(a.heldDeliveries))b.command.operationId!==b.id&&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,terminalState:null},aw(a,b));let c=new Map,d=new Map;for(let e of Object.values(a.heldDeliveries)){let f=aL(a,e.conversationId);if(!b||f===aL(a,b)){if("delivered"===e.state){e.text="";let a=c.get(f)??[];a.push(e),c.set(f,a)}else if("failed"===e.state&&!e.error?.startsWith(o.BD)){let a=d.get(f)??[];a.push(e),d.set(f,a)}}}let e=0;for(let b of c.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],e+=1;for(let[b,c]of d){let d=Math.max(0,Math.min(50,99-Object.values(a.heldDeliveries).filter(c=>aL(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],e+=1}let f=new Map;for(let[c,d]of Object.entries(a.deliveryOperationOwners)){if(null===d.terminalState)continue;let e=aL(a,d.conversationId);if(b&&e!==aL(a,b))continue;let g=f.get(e)??[];g.push([c,d]),f.set(e,g)}for(let b of f.values())for(let[c]of(b.sort(([a,b],[c,d])=>d.createdAt.localeCompare(b.createdAt)||c.localeCompare(a)),b.slice(200)))delete a.deliveryOperationOwners[c];return e}function aC(a,b){return a.generations.some(a=>a.path===b)||a.continuityPaths.includes(b)}function aD(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 aE(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 aF(a,b,c){let d=Object.values(a.conversations).find(a=>a.id!==b.id&&a.engine===b.engine&&aC(a,c));if(d&&!aS(a,d,b,c))throw Error("migration continuity path has another durable owner")}function aG(a){let b=a.migration?.pendingContinuityPaths??[];0!==b.length&&(a.abandonedContinuityPaths=[...new Set([...a.abandonedContinuityPaths,...b])])}function aH(a,b){let c=a.generations[0];return null===a.migration&&1===a.generations.length&&c?.path===b&&0===a.continuityPaths.length}function aI(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 aJ(a,b){return[...b].sort((b,c)=>aI(a,c)-aI(a,b)||b.createdAt.localeCompare(c.createdAt)||b.id.localeCompare(c.id))[0]??null}function aK(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=aL(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,w.sz)(b.engine,c),parentSessionKey:j?(0,w.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 aL(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 aM(a,b){let c=new Set,d=aL(a,b);for(;c.size<64&&!c.has(d);){c.add(d);let b=a.conversations[d]?.supersededBy?.conversationId;if(!b)break;d=aL(a,b)}return d}function aN(a,b){let c=b.generations.at(-1);if(!c)return!1;let d=a.entries[(0,w.pp)({engine:b.engine,sessionId:c.id})];return!!(d&&d.artifactPath===c.path&&("starting"===d.status||"live"===d.status))}function aO(a,b,c,d){let e=aL(a,c),f=aM(a,b);if(!a.conversations[aL(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(aM(a,e)===f)throw Error("supersedence chain would form a cycle");if(aN(a,g))throw new N(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 aP(a,b,c,d){try{aO(a,b,c,d),delete a.pendingSupersedence[aL(a,c)]}catch(f){if(!(f instanceof N))return;let e=aL(a,c);a.pendingSupersedence[e]??={predecessorConversationId:aL(a,b),successorConversationId:e,reason:d,stagedAt:aj()}}}function aQ(a,b,c,d){if("flow"!==c.kind&&"pipeline"!==c.kind||!c.containerId.trim()||!c.role.trim()||!c.slot.trim())throw Error("durable membership is invalid");let e=aL(a,b),f=c.parentConversationId?aL(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 aR(a){var b=a,c=ai;let d=new Map;for(let a of Object.values(b.conversations)){for(let b of a.generations)d.has(b.path)||d.set(b.path,a);for(let b of a.continuityPaths)d.has(b)||d.set(b,a)}return{conversationForPath(a){let b=d.get(a);return b?c(b):null},canonicalConversationId:a=>aL(b,a),conversation(a){let d=b.conversations[aL(b,a)];return d?c(d):null}}}function aS(a,b,c,d){if(!aH(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 aT(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 aU(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,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}: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,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:aW(a.agentRole),delegationDepth:aX(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:aW(b.role),depth:Number.isInteger(b.depth)&&b.depth>=0?b.depth:0},requestedRole:aW(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,n.Ui)({...a.launchProfile??{},cwd:a.launchProfile?.cwd??a.cwd},b),explicitProject:(0,n.QK)(a.explicitProject),launchDisplay:aV(a.launchDisplay),...a.retryClaim&&"string"==typeof a.retryClaim.claimId&&"string"==typeof a.retryClaim.claimedAt?{retryClaim:{claimId:a.retryClaim.claimId,claimedAt:a.retryClaim.claimedAt}}:{}}}function aV(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 aW(a){return"string"==typeof a&&a.trim()?a.trim():null}function aX(a){return Number.isInteger(a)&&a>=0?a:null}function aY(a,b){if(1===a.version&&a.entries&&a.receipts&&"object"==typeof a.entries&&"object"==typeof a.receipts){let c;return(0,p.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,aU(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 c=a.legacyResumePanes,d=a.heldDeliveries&&"object"==typeof a.heldDeliveries?Object.fromEntries(Object.entries(a.heldDeliveries).map(([a,b])=>[a,au(b)])):{};return(0,p.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[aL(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,n.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,aU(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||"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),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:{}},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,o,p,q,r;return[a,(f=(e=Array.isArray(c.generations)?c.generations.map(a=>({...a,launchProfile:(0,n.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=Array.isArray(c.migration?.pendingContinuityPaths)?c.migration.pendingContinuityPaths.filter(a=>"string"==typeof a):c.migration?.phase!=="committed"&&h?[...new Set([...h.continuityPaths,h.path])]:[],j=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??"",providerReceipt:h,pendingContinuityPaths:i,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,k=[...new Set([...Array.isArray(c.continuityPaths)?c.continuityPaths.filter(a=>"string"==typeof a):[],...Array.isArray(g)?g.filter(a=>"string"==typeof a):[],...j?.providerReceipt?.continuityPaths??[]])],l=Array.isArray(c.abandonedContinuityPaths)?[...new Set(c.abandonedContinuityPaths.filter(a=>"string"==typeof a))]:[],m=Array.isArray(c.providerForkPaths)?[...new Set(c.providerForkPaths.filter(a=>"string"==typeof a))].filter(a=>k.includes(a)):[],p=(o=c.migrationOptOut)&&"string"==typeof o.targetId&&"string"==typeof o.updatedAt?{targetId:o.targetId,updatedAt:o.updatedAt}:null,r=(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:k,abandonedContinuityPaths:l,providerForkPaths:m,projectOwnership:(0,n.MO)(c.projectOwnership),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:j,migrationOptOut:p,supersededBy:r,agentRole:aW(c.agentRole),delegationDepth:aX(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:d,deliveryOperationOwners:function(a,b){let c={};if(a&&"object"==typeof a&&!Array.isArray(a))for(let[d,e]of Object.entries(a)){if(!d||!e||"object"!=typeof e||Array.isArray(e)||"string"!=typeof e.conversationId||!e.conversationId.startsWith("conversation_")||null!==e.clientMessageId&&"string"!=typeof e.clientMessageId||"string"!=typeof e.deliveryId||!e.deliveryId||"string"!=typeof e.requestDigest||!e.requestDigest)continue;let a=e.settledDelivery&&"object"==typeof e.settledDelivery?au(e.settledDelivery):null,f=a?.id===e.deliveryId&&a.command.operationId===d&&a.requestDigest===e.requestDigest&&null!==av(a)?a:null,g=b[e.deliveryId],h=g?.command.operationId===d&&g.requestDigest===e.requestDigest?g:null,i=h?av(h):"delivered"===e.terminalState||"failed"===e.terminalState?e.terminalState:av(f);c[d]={conversationId:e.conversationId,runtimeConversationId:"string"==typeof e.runtimeConversationId&&e.runtimeConversationId.startsWith("conversation_")?e.runtimeConversationId:b[e.deliveryId]?.runtimeConversationId??e.conversationId,clientMessageId:e.clientMessageId,deliveryId:e.deliveryId,command:{...ar(e.command,d),operationId:d},requestDigest:e.requestDigest,contentDigest:"string"==typeof e.contentDigest?e.contentDigest:h?.contentDigest??f?.contentDigest??null,createdAt:"string"==typeof e.createdAt?e.createdAt:h?.createdAt??f?.createdAt??ae,terminalState:i}}for(let a of Object.values(b))a.command.operationId!==a.id&&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,terminalState:av(a)});return c}(a.deliveryOperationOwners,d),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 aZ(a,b){try{let c=g().readFileSync(a,"utf8");return{file:(0,p.$q)(aY(JSON.parse(c),b),b),payload:c}}catch(a){if("ENOENT"===a.code)return{file:ai(ag),payload:null};if(a instanceof ah)throw a;throw new ah(`agent registry cannot be read: ${a instanceof Error?a.message:String(a)}`)}}function a$(a,b){return aZ(a,b).file}function a_(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 a0(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 a1(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:a0(b.launchProfile)}:{}}])),receipts:Object.fromEntries(Object.entries(a.receipts).map(([a,b])=>[a,{...b,launchProfile:a0(b.launchProfile)}])),conversations:Object.fromEntries(Object.entries(a.conversations).map(([a,b])=>[a,{...b,generations:b.generations.map(a=>({...a,launchProfile:a0(a.launchProfile)}))}]))})+"\n"}function a2(a,b){g().mkdirSync(i().dirname(a),{recursive:!0,mode:448});let c=`${a}.${process.pid}.${e().randomUUID()}.tmp`,d=null;try{d=g().openSync(c,"w",384),g().writeFileSync(d,b,"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);try{g().unlinkSync(c)}catch{}}}class a3 extends Error{constructor(...a){super(...a),this.name="RegistryParityError"}}function a4(a){try{let b=JSON.parse(g().readFileSync(a,"utf8"))._sqliteRevision;return Number.isInteger(b)&&Number(b)>=0?Number(b):null}catch(a){if("ENOENT"===a.code)return null;throw a}}class a5{constructor(a=(0,k.BQ)("agent-registry.json"),b=a=>l.B.pidAlive(a.pid)&&(null===a.startIdentity||l.B.processIdentity(a.pid)===a.startIdentity),c=U,d={}){this.filename=a,this.ownerAlive=b,this.lockTiming=c,this.readOnlyCache=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?function(a,b=process.env,c=z){if(void 0!==b[x])return{mode:D(b),sqliteFilename:null,source:"environment"};let d=A(a),e=i().basename(d),f=B(a),g=c.readText(d);if(null===g){if(c.exists(f))throw new y(`the agent registry backend identity is unpublished while ${i().basename(f)} exists, so SQLite may be authoritative and the JSON mirror may be stale; start the registry writer with ${x} set so it publishes ${e}`);return{mode:"off",sqliteFilename:null,source:"json-only"}}let h=E(g,e);if("off"===h.mode){if(c.exists(f))throw new y(`${e} claims the JSON backend while ${i().basename(f)} exists; remove the stale store or republish the descriptor from the writer`);return{mode:"off",sqliteFilename:null,source:"descriptor"}}let j=i().join(i().dirname(d),h.sqliteFile);if(!c.exists(j))throw new y(`${e} names the ${h.mode} backend store ${h.sqliteFile}, which is unavailable`);return{mode:h.mode,sqliteFilename:j,source:"descriptor"}}(a):{mode:D(),sqliteFilename:null,source:"unmanaged"};this.sqliteMode=e.mode;const f=d.sqliteFilename??e.sqliteFilename??B(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.beforeDualWriteMutationReplace=d.beforeDualWriteMutationReplace,this.sqliteStore="off"===this.sqliteMode?null:new J(f,{initialSnapshot:a$(a,d.mcpGrantPolicy),normalize:a=>aY(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){const a=this.sqliteStore.snapshot(),b=a4(this.filename);if("read"===this.sqliteMode&&(null===b||b===a.revision)&&this.assertSqliteParity(a),null!==b&&b>a.revision)throw new a3("agent registry JSON mirror revision is ahead of SQLite");this.mirrorSqliteSnapshot(a)}"environment"===e.source&&function(a,b,c,d=z,e=()=>new Date().toISOString()){let f=A(a),g="off"===b?null:i().basename(c),h=d.readText(f);if(null!==h)try{let a=E(h,i().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)}
|
|
42
|
-
`)}(a,this.sqliteMode,f)}assertSqliteParity(a=this.sqliteStore.snapshot()){let b=a$(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 a3(`agent registry JSON and SQLite snapshots differ: ${c.join(", ")}`)}}mirrorSqliteSnapshot(a){var b;b=this.filename,a2(b,a1(a.file,a.revision)),this.afterMirrorWrite?.();let c=this.sqliteStore.revision();this.lastMirrorAt=this.now(),this.lastMirroredRevision=a.revision,this.mirrorDirty=c>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)]}storageDiagnostics(){let a=this.sqliteStore?.revision()??null;null!==a&&null!==this.lastMirroredRevision&&a>this.lastMirroredRevision&&(this.mirrorDirty=!0);let b=Math.floor(this.now()/1e3);for(let a of this.transactionRateBuckets.keys())a<=b-60&&this.transactionRateBuckets.delete(a);let c=[...this.transactionRateBuckets.values()].reduce((a,b)=>a+b,0);return{backendMode:this.sqliteMode,revision:a,transactionCount:this.transactionCount,writerRatePerSecond:c/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,{pid:process.pid,startIdentity:l.B.processIdentity(process.pid)});try{this.compactAtStartupLocked()}finally{this.releaseLock(b)}}compactAtStartupLocked(){let a,b;try{a=g().readFileSync(this.filename,"utf8")}catch(a){if("ENOENT"===a.code)return;throw a}try{b=a$(this.filename,this.mcpGrantPolicy)}catch(a){if(a instanceof ah)return void console.error("agent registry startup compaction skipped:",a);throw a}aB(b),a1(b)!==a&&a2(this.filename,a1(b,void 0))}synchronizeDualWriteStartup(a){let b=`${this.filename}.write-lock`,c=this.acquireLock(b,{pid:process.pid,startIdentity:l.B.processIdentity(process.pid)});try{var d,e;let b=this.sqliteStore.snapshot();g().existsSync(this.filename)||(d=this.filename,e=b.file,a2(d,a1(e,void 0)));let c=a4(this.filename);if(null!==c&&c!==b.revision)throw new a3(`agent registry backend revisions differ: JSON ${c}, SQLite ${b.revision}`);this.assertSqliteParity(b),this.compactAtStartupLocked();let f=a$(this.filename,this.mcpGrantPolicy);a?.();let h=this.sqliteStore.replace(f,b.revision);if(!h.replaced)throw this.mirrorSqliteSnapshot(h),new a3(`agent registry SQLite revision changed during dual-write startup: expected ${b.revision}, current ${h.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=aL(b,c.predecessorConversationId),e=aL(b,c.successorConversationId);if(!b.conversations[d]||!b.conversations[e]){delete b.pendingSupersedence[a];continue}try{aO(b,d,e,c.reason),delete b.pendingSupersedence[a]}catch(c){if(c instanceof N)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,{pid:process.pid,startIdentity:l.B.processIdentity(process.pid)});try{let a="dual-write"===this.sqliteMode?this.sqliteStore.snapshot():null;if(a){let b=a4(this.filename);if(null!==b&&b!==a.revision)throw new a3(`agent registry backend revisions differ: JSON ${b}, SQLite ${a.revision}`);this.assertSqliteParity(a)}let c=aZ(this.filename,this.mcpGrantPolicy),d=c.file,e=b(d),f=a1(d),g=c.payload!==f;if(g&&a2(this.filename,f),a&&!g&&this.assertSqliteParity(),a&&g){this.beforeDualWriteMutationReplace?.();let b=this.sqliteStore.replace(d,a.revision);if(!b.replaced)throw this.mirrorSqliteSnapshot(b),new a3(`agent registry SQLite revision changed during dual-write mutation: expected ${a.revision}, current ${b.revision}`);this.assertSqliteParity()}return e}finally{this.releaseLock(d)}}snapshot(){return"read"===this.sqliteMode||"sqlite"===this.sqliteMode?this.sqliteStore.snapshot().file:a$(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=a_(this.filename);if(this.readOnlyCache?.signature===a)return this.readOnlyCache.snapshot;let b=a$(this.filename,this.mcpGrantPolicy),c=a_(this.filename);if(a===c)return this.readOnlyCache={signature:c,snapshot:b},b}return a$(this.filename,this.mcpGrantPolicy)}snapshotSpawns(a){return this.sqliteStore?this.sqliteStore.snapshotSpawns(a):function(a,b){let c={};for(let d of new Set(b)){let b=a.receipts[d];if(!b)continue;let e=new Set,f=b.conversationId;for(let b=0;b<64&&f&&!e.has(f);b+=1){e.add(f);let c=a.conversationAliases[f];if(!c)break;f=b+1===64?null:c}c[d]={launchId:b.launchId,state:b.state,error:b.error,engine:b.engine,cwd:b.cwd,createdAt:b.createdAt,materializedPath:(f?a.conversations[f]:void 0)?.generations.at(-1)?.path??b.artifactPath}}return c}(this.readOnlySnapshot(),a)}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?aL(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=aL(d,e.conversationId);for(let a of Object.values(d.receipts))aL(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=>aC(b,a));if(!e)return null;let f=Object.values(d.receipts).filter(a=>aL(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=this.mutate(b=>this.beginSpawnRequestInFile(b,a));if("rejected"===b.kind||"replay"===b.kind&&b.receipt.rejection)throw new u(b.receipt,b.receipt.rejection);return b}beginSpawnRequestInFile(a,b){{var c;let d=b.conversationId?aL(a,b.conversationId):null,f=b.parentConversationId?aL(a,b.parentConversationId):null,h=b.reviewsConversationId?aL(a,b.reviewsConversationId):null,i="string"==typeof b.role&&b.role.trim()?b.role.trim():null;if("reviewer"===i&&!h&&b.origin?.kind!=="container")throw Error("reviewer spawn requires reviewsConversationId");if(h&&"reviewer"!==i)throw Error("reviewsConversationId requires reviewer role");let j=null==b.explicitProject?null:(0,n.QK)(b.explicitProject);if(null!=b.explicitProject&&!j)throw Error("explicit project is not a valid project key");let m=b.supersedes?aL(a,b.supersedes):null;if(m){if(!a.conversations[m])throw Error("supersedence predecessor is unknown");if(d===m)throw Error("a conversation cannot supersede itself")}let o=d?a.conversations[d]:null,q=(0,n.Ui)({cwd:b.cwd,...b.launchProfile??{},...j?{project:j}:{},parentConversationId:f}),s=o?.generations.at(-1)?.launchProfile,u="resume-successor"===b.purpose&&s?{cwd:q.cwd||s.cwd,model:q.model??s.model,effort:q.effort??s.effort,fast:q.fast??s.fast,permissionMode:q.permissionMode??s.permissionMode,readOnly:q.readOnly??s.readOnly,allowSubagents:s.allowSubagents||q.allowSubagents,mcpServers:s.mcpServers,plugins:s.plugins??[],title:q.title??s.title,project:q.project??s.project,parentConversationId:q.parentConversationId??s.parentConversationId,role:"root"===s.role||"root"===q.role?"root":"worker",goal:q.goal??s.goal,plan:q.plan??s.plan}:q;if(t(o?.agentRole)&&(u.allowSubagents=!1),(o?.agentRole||f)&&(u.plugins=[]),o&&o.engine!==b.engine)throw Error("spawn conversation ownership is invalid");if("resume-successor"===b.purpose&&o&&!S(o.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)return{kind:c.requestDigest===(b.requestDigest??null)&&c.engine===b.engine&&c.cwd===b.cwd&&c.transport===(b.transport??null)&&c.explicitProject===j&&(c.supersedes?.conversationId??null)===m&&c.launchProfile.permissionMode===u.permissionMode?"replay":"conflict",receipt:ai(c)}}let x=b.purpose??"launch",y="launch"!==x||b.origin?.kind==="successor",z=!y&&b.origin?function(a,b){if("agent"!==b.kind&&"container"!==b.kind)return null;let c="agent"===b.kind?b.conversationId:b.creatorConversationId,d=c?v(a,c):null;return{kind:b.kind,conversationId:d,role:d?function(a,b){let c=v(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=v(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=v(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}}(a,b.origin):null,A=y?o?.delegationDepth??null:z?z.depth+1:0,B=y?o?.agentRole??null:i,C="launch"===x&&b.origin&&"successor"!==b.origin.kind?{kind:b.origin.kind}:void 0;u.mcpServers=(0,p.VW)({origin:C,parentConversationId:f??u.parentConversationId,agentRole:B,delegationDepth:A,requested:u.mcpServers},this.mcpGrantPolicy);let D=null;if(z){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;t(z.role)?D={code:"reviewer_origin_spawn",origin:z,requestedRole:i,childDepth:A??0,maxDepth:a,guidance:(c=z.role,`${"verifier"===c?"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 ${r.nP}).`),rejectedAt:aj()}:null!==A&&A>a&&(D={code:"nesting_depth_exceeded",origin:z,requestedRole:i,childDepth:A,maxDepth:a,guidance:`Agent nesting is capped at depth ${a} 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).`,rejectedAt:aj()})}if(!D&&void 0!==b.liveChildrenCap){if(!Number.isInteger(b.liveChildrenCap)||b.liveChildrenCap<1)throw Error("liveChildrenCap must be a positive integer");if(!f)throw Error("liveChildrenCap requires parentConversationId");if(function(a,b){let c=aL(a,b),d=new Set;for(let b of Object.values(a.lineageEdges)){if("viewer-spawn"!==b.source||aL(a,b.parentConversationId)!==c)continue;let e=aL(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,w.sz)(f.engine,g.path):null),[...new Set(e.filter(a=>!!a).map(w.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(am)){d.add(e);continue}if(!(h.length>0)){if(f&&ak.has(f.state)){if("starting"===f.state&&Date.now()-Date.parse(f.createdAt)>12e4)continue;d.add(e);continue}g.some(a=>al.has(a.status))&&d.add(e)}}return d.size}(a,f)>=b.liveChildrenCap)throw new M(f,b.liveChildrenCap)}if(d&&b.spawnCapabilityDigest)for(let b of Object.values(a.receipts))aL(a,b.conversationId)===d&&(b.spawnCapabilityDigest=null);let E=aj(),F={launchId:e().randomUUID(),clientAttemptId:b.clientAttemptId??null,requestDigest:b.requestDigest??null,transport:b.transport??null,admissionOwner:"structured"===b.transport||!0===b.ownStartingActuation?{pid:process.pid,startIdentity:l.B.processIdentity(process.pid)}:null,spawnCapabilityDigest:"string"==typeof b.spawnCapabilityDigest&&/^[0-9a-f]{64}$/.test(b.spawnCapabilityDigest)?b.spawnCapabilityDigest:null,conversationId:d??`conversation_${e().randomUUID()}`,purpose:b.purpose??"launch",supersedes:m?{conversationId:m,reason:b.supersedesReason??"recovery-spawn"}:null,resumeSourcePath:"resume-successor"===b.purpose?o?.generations.at(-1)?.path??null:null,pathCorrelation:"codex"===b.engine&&(b.purpose??"launch")==="launch"?{cwd:b.cwd,startedAt:E}:null,engine:b.engine,cwd:b.cwd,accountId:b.accountId??null,parentConversationId:f,parentSource:f&&("explicit"===b.parentSource||"inferred-caller"===b.parentSource)?b.parentSource:null,createdAt:E,state:D?"failed":"starting",artifactPath:D?null:b.expectedArtifactPath??null,artifactLifecycle:"pending",key:null,pane:null,verifiedHost:null,target:null,completionMode:null,error:D?D.guidance:null,agentRole:B,delegationDepth:A,rejection:D,launchProfile:u,explicitProject:j,launchDisplay:aV(b.launchDisplay)};if(a.receipts[F.launchId]=F,D)return{kind:"rejected",receipt:ai(F)};if(F.parentConversationId&&F.parentConversationId!==F.conversationId){let c="resume-successor"===b.purpose?a.lineageEdges[F.conversationId]:null;if(c&&c.childConversationId===F.conversationId){let b=aL(a,c.parentConversationId);b!==F.conversationId&&(a.lineageEdges[F.conversationId]={...c,childConversationId:F.conversationId,parentConversationId:b,reviewsConversationId:c.reviewsConversationId?aL(a,c.reviewsConversationId):null})}else a.lineageEdges[F.conversationId]={childConversationId:F.conversationId,parentConversationId:F.parentConversationId,childSessionKey:null,parentSessionKey:b.parentSessionKey??null,childArtifactPath:null,parentArtifactPath:b.parentArtifactPath??null,kind:h||"reviewer"===i?"review":"spawn",role:i,reviewsConversationId:h,source:"viewer-spawn",evidence:{launchId:F.launchId,clientAttemptId:F.clientAttemptId,parentSource:F.parentSource},createdAt:F.createdAt}}for(let c of b.memberships??[])aQ(a,F.conversationId,c,F.createdAt);return{kind:"created",receipt:ai(F)}}}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={pid:process.pid,startIdentity:l.B.processIdentity(process.pid)},{claimed:!0,receipt:ai(d)})})}claimStartingStructuredSpawn(a){return this.claimSpawnActuation(a,"structured")}claimTmuxSpawnActuation(a){return this.claimSpawnActuation(a,"tmux")}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||d.admissionOwner.pid!==b.pid||d.admissionOwner.startIdentity!==b.startIdentity?{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&&d.admissionOwner.pid===b.pid&&d.admissionOwner.startIdentity===b.startIdentity?(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(aQ(c,a,b,aj())))}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"),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,f=!0){let g=a.receipts[b];if(!g)throw Error("unknown spawn receipt");let h=g.key?a.entries[(0,w.pp)(g.key)]:null,i=a=>("completed"!==g.state&&(g.state="conflicted",g.error=a),{kind:"conflict",receipt:ai(g),code:a});if("observed-completed"===d&&c.host?.kind==="tmux"&&this.confirmSpawnPaneAliveInFile(a,b,c.host,{engine:c.key.engine,cwd:c.cwd}),"failed"===g.state||"conflicted"===g.state)return{kind:"conflict",receipt:ai(g),code:"spawn_artifact_conflict"===g.error||"spawn_pane_conflict"===g.error||"spawn_identity_conflict"===g.error?g.error:"spawn_identity_conflict"};if(g.engine!==c.key.engine||g.cwd!==c.cwd)return i("spawn_identity_conflict");if(g.pane&&c.host?.kind==="tmux"&&(g.pane.paneId!==c.host.paneId||g.pane.server.pid!==c.host.server.pid||null!==g.pane.server.startIdentity&&c.host.server.startIdentity!==g.pane.server.startIdentity||g.pane.panePid.pid>0&&g.pane.panePid.pid!==c.host.panePid.pid||null!==g.pane.panePid.startIdentity&&c.host.panePid.startIdentity!==g.pane.panePid.startIdentity))return i("spawn_pane_conflict");let j=a.conversations[g.conversationId],k=j?.generations.find(a=>a.id===c.key.sessionId),l=j?(0,w.sz)(j.engine,c.artifactPath)?.sessionId??an(c.artifactPath):null,m="completed"===g.state&&"resume-successor"===g.purpose&&null!==g.resumeSourcePath&&g.artifactPath===g.resumeSourcePath&&null!==g.artifactPath&&null!==g.key&&void 0!==j&&aC(j,g.artifactPath)&&aC(j,c.artifactPath)&&(0,w.pp)(g.key)===(0,w.pp)(c.key)&&k?.id===c.key.sessionId&&l===c.key.sessionId;if(g.artifactPath&&g.artifactPath!==c.artifactPath&&!m)return i("spawn_artifact_conflict");if(g.key&&(0,w.pp)(g.key)!==(0,w.pp)(c.key))return i("spawn_identity_conflict");let n=a.entries[(0,w.pp)(c.key)],p=!!n&&!!j&&(j.generations.some(a=>a.path===n.artifactPath)||j.continuityPaths.includes(n.artifactPath)),q="resume-successor"===g.purpose&&p&&k?.id===c.key.sessionId&&l===c.key.sessionId;if(n&&n.artifactPath!==c.artifactPath&&(!h||(0,w.pp)(h.key)!==(0,w.pp)(c.key))&&!q)return i("spawn_artifact_conflict");let r=aj(),s=j??{id:g.conversationId,engine:g.engine,generations:[],continuityPaths:[],abandonedContinuityPaths:[],providerForkPaths:[],projectOwnership:null,migration:null,migrationOptOut:null,supersededBy:null,agentRole:null,delegationDepth:null,turn:{state:"unknown",source:"empty",terminalAt:null,observedAt:null},createdAt:r,updatedAt:r};if(s.agentRole??=g.agentRole,s.delegationDepth??=g.delegationDepth,s.engine!==g.engine||"resume-successor"===g.purpose&&!S(s.migration))return i("spawn_identity_conflict");if("migration-successor"===g.purpose){let b=Object.values(a.conversations).find(a=>a.id!==s.id&&a.engine===s.engine&&aC(a,c.artifactPath));if(b&&!aS(a,b,s,c.artifactPath))return i("spawn_artifact_conflict");aD(s,c.artifactPath)}if("launch"===g.purpose){let b=Object.values(a.conversations).find(a=>a.id!==s.id&&a.engine===s.engine&&aC(a,c.artifactPath));if(b&&!aS(a,b,s,c.artifactPath))return i("spawn_artifact_conflict")}if("resume-successor"===g.purpose&&!aC(s,c.artifactPath)){let b=Object.values(a.conversations).find(a=>a.id!==s.id&&a.engine===s.engine&&aC(a,c.artifactPath));if(b&&!aS(a,b,s,c.artifactPath))return i("spawn_artifact_conflict");let d=(0,w.sz)(s.engine,c.artifactPath)?.sessionId??an(c.artifactPath),e=s.generations.find(a=>a.id===d);if(e)s.continuityPaths.includes(e.path)||s.continuityPaths.push(e.path),e.path=c.artifactPath,e.accountId=g.accountId??e.accountId,e.launchProfile={...e.launchProfile,...g.launchProfile};else{let a=s.generations.at(-1);a&&null===a.archivedAt&&(a.archivedAt=r),s.generations.push({id:d,path:c.artifactPath,accountId:g.accountId,launchProfile:g.launchProfile,historyHash:null,host:null,createdAt:r,archivedAt:null})}if(a.conversationRevision[s.engine]+=1,a.engineRouting[s.engine].revision+=1,s.migration&&("waiting-turn"===s.migration.phase||"requested"===s.migration.phase)){let a=s.generations.at(-1);a&&(s.migration={...s.migration,sourceGenerationId:a.id,updatedAt:r})}}g.explicitProject&&!s.projectOwnership&&(s.projectOwnership={project:g.explicitProject,source:"operator",setAt:r,operationId:g.launchId}),"migration-successor"===g.purpose||s.generations.some(a=>a.path===c.artifactPath)||(s.generations.push({id:an(c.artifactPath),path:c.artifactPath,accountId:g.accountId,launchProfile:g.launchProfile,historyHash:null,host:null,createdAt:r,archivedAt:null}),a.conversationRevision[s.engine]+=1,a.engineRouting[s.engine].revision+=1);let t=Object.values(a.migrationIntents).find(b=>b.engine===s.engine&&O(b)&&(0,o.xc)(a,b,Date.parse(r))),u=s.generations.at(-1);t&&u&&u.accountId!==t.targetId&&!s.migration&&(s.migration={intentId:t.id,phase:Q(a,s)?"waiting-turn":"requested",targetId:t.targetId,revision:t.revision,error:null,errorCode:null,operationId:e().randomUUID(),sourceGenerationId:u.id,providerReceipt:null,pendingContinuityPaths:[],boardProject:null,boardOperationId:null,boardPlacementProject:s.projectOwnership?.project??u.launchProfile.project,updatedAt:r}),s.updatedAt=r,a.conversations[s.id]=s;let v={...c,accountId:g.accountId,launchProfile:g.launchProfile,updatedAt:r};a.entries[(0,w.pp)(c.key)]=v,g.key=c.key,g.artifactPath=c.artifactPath;let x=a.lineageEdges[g.conversationId];return x&&(x.childSessionKey=c.key,x.childArtifactPath=c.artifactPath),c.host?.kind==="tmux"&&(g.verifiedHost=c.host),null===g.target&&c.host?.kind==="tmux"&&(g.target=c.host.paneId),g.state=f?"completed":"path-pending",g.error=null,f&&(g.completionMode="observed-completed"===g.completionMode&&"route-completed"===d?"route-recovered":g.completionMode??d,g.supersedes&&aP(a,g.supersedes.conversationId,g.conversationId,g.supersedes.reason)),{kind:"settled",receipt:ai(g),entry:ai(v),conversation:ai(s)}}stageStructuredSpawn(a,b){return this.mutate(c=>{let d=new Set([b.artifactPath]),e=V(c,b.key.engine,d),f=this.settleSpawnInFile(c,a,{...b,structuredHostOperationId:a},"route-completed",!1);return X(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,w.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&&aP(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,w.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=W(b,(0,w.pp)(c.key),f),h=V(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&&aP(b,c.supersedes.conversationId,c.conversationId,c.supersedes.reason),X(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?c.entries[(0,w.pp)(d.key)]:null,f=null;if(e){let{updatedAt:a,...b}=e;f=b}let g=b&&f&&(f.structuredHost?.process||f.claimOwner)?{...b,host:f.host,structuredHost:f.structuredHost,claimEpoch:f.claimEpoch,claimOwner:f.claimOwner,pendingAction:f.pendingAction}:b??f;return!g||d.key&&(0,w.pp)(d.key)!==(0,w.pp)(g.key)||d.artifactPath&&d.artifactPath!==g.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,g,"route-recovered"))})}settleSpawn(a,b,c="route-completed"){return this.mutate(d=>{let e=new Set([b.artifactPath]),f=V(d,b.key.engine,e),g=this.settleSpawnInFile(d,a,b,c);return X(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)}})}terminalizeFailedSpawnDeliveries(){let a=this.readOnlySnapshot();return Object.values(a.heldDeliveries).some(b=>"held"===b.state&&ax(a,b))?this.mutate(a=>ay(a)):[]}failStructuredSpawn(a,b){this.mutate(c=>{let d=c.receipts[a];if(!d||"completed"===d.state||"failed"===d.state||"conflicted"===d.state||(d.state="failed",d.error=b,ay(c),!d.key||!d.artifactPath))return;let e=c.entries[(0,w.pp)(d.key)];if(!e||e.artifactPath!==d.artifactPath||"string"==typeof e.structuredHostOperationId&&e.structuredHostOperationId!==a)return;let f="resume-successor"===d.purpose&&d.resumeSourcePath===d.artifactPath&&(e.structuredHost?.eventCursor??0)>0&&e.structuredHost?{...e.structuredHost,endpoint:"stdio:released",process:null,activeTurnRef:null,pendingAttention:[],activeFlags:[]}:null,g=W(c,(0,w.pp)(d.key),{...e,host:null,structuredHost:f,status:"dead",claimOwner:null,pendingAction:null}),h=V(c,d.key.engine,g);e.host=null,e.structuredHost=f,e.status="dead",e.claimOwner=null,e.pendingAction=null,e.updatedAt=aj(),X(c,d.key.engine,h,g)})}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,w.pp)(a.key),d=b.entries[c],e=void 0===a.structuredHost&&d?.structuredHost!==void 0?{...a,structuredHost:d.structuredHost}:a,f=W(b,c,e),g=V(b,a.key.engine,f),h={...e,updatedAt:aj()};return b.entries[c]=h,X(b,a.key.engine,g,f),ai(h)})}setStructuredHost(a,b,c){return this.mutate(d=>{let e=(0,w.pp)(a),f=d.entries[e];if(!f)throw Error("agent registry entry is missing");let g=W(d,e,{...f,structuredHost:b?ao(b):null,status:c??f.status}),h=V(d,a.engine,g);return f.structuredHost=b?ao(b):null,c&&(f.status=c),f.updatedAt=aj(),X(d,a.engine,h,g),ai(f)})}terminateStructuredHost(a){return this.mutate(b=>{let c=(0,w.pp)(a),d=b.entries[c];if(!d)return!1;let e={...d,host:null,structuredHost:null,status:"dead",claimOwner:null,pendingAction:null},f=W(b,c,e),g=V(b,a.engine,f);return Object.assign(d,e,{updatedAt:aj()}),X(b,a.engine,g,f),!0})}terminateInactiveStructuredHost(a,b){return this.mutate(c=>{let d=c.conversations[a],e=(0,w.pp)(b),f=c.entries[e],g=f?.structuredHost?.process??null,h=null!==g&&!this.ownerAlive(g);if(!d||d.engine!==b.engine||!d.generations.some(a=>a.id===b.sessionId)||!f||f.host||null!==g&&!h||f.claimOwner&&!h||!h&&"dead"!==f.status&&"unhosted"!==f.status)return!1;let i={...f,host:null,structuredHost:null,status:"dead",claimOwner:null,pendingAction:null},j=W(c,e,i),k=V(c,b.engine,j);return Object.assign(f,i,{updatedAt:aj()}),X(c,b.engine,k,j),d.generations.at(-1)?.id===b.sessionId?"current":"predecessor"})}setStructuredHostClaimed(a,b,c,d,e,f=!1){return this.mutate(g=>{let h=(0,w.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);if(!f&&i.status===c&&(0,j.isDeepStrictEqual)(ao(i.structuredHost),k))return ai(i);let l={...i,structuredHost:k,status:c},m=W(g,h,l),n=V(g,a.engine,m);return i.structuredHost=l.structuredHost,i.status=c,f&&(i.claimOwner=null),i.updatedAt=aj(),X(g,a.engine,n,m),ai(i)})}ownsStructuredHostClaim(a,b,c){let d=this.readOnlySnapshot().entries[(0,w.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,w.pp)(a)];if(!e?.structuredHost||"unhosted"===e.status&&!0!==c.allowUnhosted)return null;(0,p.k8)(d,a,this.mcpGrantPolicy);let f=e.structuredHost.process;if(f&&this.ownerAlive(f))return null;let g=`${L}${JSON.stringify(b)}`;if(e.claimOwner){let a=function(a){if(!a.startsWith(L))return null;try{let b=JSON.parse(a.slice(L.length));return Number.isInteger(b.pid)&&b.pid>0?{pid:b.pid,startIdentity:"string"==typeof b.startIdentity?b.startIdentity:null}:null}catch{return null}}(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=g,e.claimEpoch+=1,e.structuredHost.writerClaimEpoch=e.claimEpoch,e.updatedAt=aj(),ai(e)})}markUnhosted(a){this.mutate(b=>{let c=b.entries[(0,w.pp)(a)];if(!c)return;let d=c.structuredHost?.process?c.status:"unhosted",e={...c,host:null,status:d},f=W(b,(0,w.pp)(a),e),g=V(b,a.engine,f);c.host=null,c.status=d,c.updatedAt=aj(),X(b,a.engine,g,f)})}claim(a,b){return this.mutate(c=>{let d=c.entries[(0,w.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,w.pp)(a)];d?.claimOwner===b&&(d.claimOwner=null,d.updatedAt=aj())})}releaseStructuredHostClaim(a,b,c){return this.mutate(d=>{let e=d.entries[(0,w.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,w.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(w.pp));this.mutate(a=>{for(let c of Object.values(a.entries))b.has((0,w.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,w.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&&aC(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,n.Ui)(),historyHash:null,host:null,createdAt:g,archivedAt:null}],continuityPaths:[],abandonedContinuityPaths:[],providerForkPaths:[],projectOwnership: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,w.sz)(c.engine,c.path)?.sessionId??null;Object.values(a.conversations).filter(a=>a.engine===c.engine&&(aC(a,c.path)||null!==e&&a.generations.some(a=>a.id===e))).some(a=>!aH(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),g=new Map,h=new Map,i=a=>{for(let b of a.generations){let c=g.get(b.path)??[];c.includes(a)||c.push(a),g.set(b.path,c);let d=h.get(`${a.engine}:${b.id}`)??[];d.includes(a)||d.push(a),h.set(`${a.engine}:${b.id}`,d)}for(let b of a.continuityPaths){let c=g.get(b)??[];c.includes(a)||c.push(a),g.set(b,c)}};for(let a of Object.values(b.conversations))i(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,w.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,w.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&&!aH(l,f.path))continue;let m=(c.get(f.path)??[]).filter(b=>a.conversations[b.id]===b&&"codex"===b.engine&&aC(b,f.path));if(m.some(a=>a.id===k.id)){k.providerForkPaths.includes(f.path)||k.generations.some(a=>a.path===f.path)||(aE(k,f.path),i=!0),j&&g.set(j,k);continue}let n=m.find(a=>aH(a,f.path));(!(m.length>0)||n)&&(!n||aS(a,n,k,f.path))&&(aE(k,f.path),aT(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,g,i)&&c.add("codex");let j=new Map,k=()=>{for(let a of(j.clear(),Object.values(b.receipts))){if("resume-successor"!==a.purpose)continue;let c=aL(b,a.conversationId),d=j.get(c)??[];d.push(a),j.set(c,d)}};k();let l=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&&!l.has(b)&&l.set(b,a)}let m=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=m.get(b)??[];c.push(a),m.set(b,c)}for(let o of a){for(let a of m.get(`${o.engine}:${o.path}`)??[])a.artifactLifecycle="materialized";let a=(0,w.sz)(o.engine,o.path)?.sessionId??null,p=f.get(o.path);if(a&&p){let d=b.receipts[p],e=d?this.settleSpawnInFile(b,p,{key:{engine:o.engine,sessionId:a},artifactPath:o.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(o.engine),k();let a=b.conversations[aL(b,d.conversationId)];a&&i(a)}}let q=(g.get(o.path)??[]).filter(a=>b.conversations[a.id]===a&&a.engine===o.engine&&aC(a,o.path)),r=aJ(b,q);if(r){let a=!1;for(let c of q)c.id!==r.id&&aH(c,o.path)&&(a=aS(b,c,r,o.path)||a);a&&k()}let s=a?`${o.engine}:${a}`:null,t=s?d.get(s):void 0;s&&void 0===t&&d.set(s,o.path);let u=a?aJ(b,(h.get(`${o.engine}:${a}`)??[]).filter(c=>b.conversations[c.id]===c&&c.generations.some(b=>b.id===a))):null,v=null!==u&&!S(u.migration)&&(j.get(u.id)??[]).some(T),x=r??u??null,y=!1;if(!v&&r&&u&&r.id!==u.id&&aS(b,r,u,o.path)&&(r=u,x=u,y=!0,k()),!v&&(!r||y)&&u&&a){let b=u.generations.find(b=>b.id===a);b&&b.path!==o.path&&(void 0===t||t===o.path?(u.continuityPaths.includes(b.path)||u.continuityPaths.push(b.path),b.path=o.path):u.continuityPaths.includes(o.path)||u.continuityPaths.push(o.path),u.updatedAt=o.observedAt,i(u),c.add(o.engine))}if(!x){let a=l.get(`${o.engine}:${o.path}`),d=a?b.conversations[a.conversationId]:null;d&&(aD(x=d,o.path),i(x),x.updatedAt=o.observedAt,c.add(o.engine))}if(!x){let a=o.observedAt;x={id:`conversation_${e().randomUUID()}`,engine:o.engine,generations:[{id:an(o.path),path:o.path,accountId:o.accountId,launchProfile:(0,n.Ui)(o.launchProfile),historyHash:null,host:null,createdAt:a,archivedAt:null}],continuityPaths:[],abandonedContinuityPaths:[],providerForkPaths:[],projectOwnership:null,migration:null,migrationOptOut:null,supersededBy:null,agentRole:null,delegationDepth:null,turn:{...o.turn,observedAt:o.observedAt},createdAt:a,updatedAt:a},b.conversations[x.id]=x,i(x),aK(b,x,o.path,o.observedAt),c.add(o.engine);continue}let z=x.generations.find(a=>a.path===o.path);if(!z)continue;let A=z.accountId,B=z.launchProfile.role,C=x.turn.state,D=b.lineageEdges[x.id],E=o.launchProfile.parentConversationId;z.accountId=o.accountId??z.accountId,z.launchProfile={...z.launchProfile,...o.launchProfile,cwd:z.launchProfile.cwd||o.launchProfile.cwd,model:z.launchProfile.model??o.launchProfile.model,effort:z.launchProfile.effort??o.launchProfile.effort,fast:z.launchProfile.fast??o.launchProfile.fast,permissionMode:z.launchProfile.permissionMode??o.launchProfile.permissionMode,readOnly:z.launchProfile.readOnly??o.launchProfile.readOnly,mcpServers:z.launchProfile.mcpServers,title:z.launchProfile.title??o.launchProfile.title,project:o.launchProfile.project??z.launchProfile.project,parentConversationId:D?.source==="viewer-spawn"?D.parentConversationId:E??z.launchProfile.parentConversationId,role:"root"===z.launchProfile.role||"root"===o.launchProfile.role?"root":"worker",goal:o.launchProfile.goal??z.launchProfile.goal,plan:o.launchProfile.plan??z.launchProfile.plan},aK(b,x,o.path,o.observedAt),(void 0===o.expectedTurnObservedAt||o.expectedTurnObservedAt===x.turn.observedAt)&&aT(x.turn.observedAt,o.observedAt)&&(x.turn={...o.turn,observedAt:o.observedAt}),aT(x.updatedAt,o.observedAt)&&(x.updatedAt=o.observedAt),(A!==z.accountId||B!==z.launchProfile.role||C!==x.turn.state)&&c.add(o.engine)}let o=(a,c)=>aJ(b,(g.get(a)??[]).filter(d=>b.conversations[d.id]===d&&d.engine===c&&aC(d,a))),p=(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?aL(b,c):void 0}return!1};for(let d of a){if(!d.parentArtifactPath)continue;let a=o(d.path,d.engine);if(!a||b.lineageEdges[a.id]?.source==="viewer-spawn")continue;let e=o(d.parentArtifactPath,d.engine);if(!e)continue;let f=aL(b,e.id);if(f===a.id||p(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;aK(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=>aC(b,a));return b?ai(b):null}canonicalConversationId(a){return aL(this.readOnlySnapshot(),a)}recordSupersedence(a,b,c="manual"){return this.mutate(d=>{let e=aL(d,a),f=aL(d,b);if(e===f)throw Error("a conversation cannot supersede itself");let g=aO(d,e,f,c);if(!g)throw Error("supersedence could not be recorded");return ai(g)})}supersedenceChainTail(a){return aM(this.readOnlySnapshot(),a)}supersedenceConflict(a){let b=this.readOnlySnapshot(),c=aM(b,a),d=b.conversations[c];return d&&aN(b,d)?c:null}clearSupersedence(a){return this.mutate(b=>{let c=b.conversations[aL(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)))aM(b,d.predecessorConversationId)===c.id&&delete b.pendingSupersedence[a];return ai(c)})}conversation(a){let b=this.readOnlySnapshot(),c=b.conversations[aL(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}updateConversationLaunchProfile(a,b){return this.mutate(c=>{let d=c.conversations[aL(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[aL(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[aL(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,m.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=R(a);for(let f of Object.values(a.conversations)){if(f.engine!==b)continue;let g=f.generations.at(-1);if(g&&null!==g.accountId){if(g.accountId===c){d.alreadyTarget+=1;continue}d.total+=1,d[P(a,f,e)]+=1}}return d}(this.readOnlySnapshot(),a,b)}retireAccount(a,b,c,d={}){(0,m.oV)(()=>this.mutate(e=>{if((0,q.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)&&(aG(a),Z(e,a,f),$(e,a,o.JJ),a.migration=null,a.updatedAt=f,e.conversationRevision[a.engine]+=1)}))}commitMigrationIntent(a){return(0,m.oV)(()=>this.mutate(b=>{let c=Object.values(b.migrationIntents).find(b=>b.engine===a.engine&&b.requestIds.includes(a.requestId));if(c)return ai(c);let d=b.engineRouting[a.engine];if(d.revision!==a.expectedRevision)throw new ac(a.expectedRevision,d.revision);let f=Object.values(b.migrationIntents).find(b=>b.engine===a.engine&&"draining"===b.state&&O(b));if(f?.origin==="manual"&&"auto"===a.origin)return ai(f);let g=aj();f?(f.requestIds.push(a.requestId),f.targetId=a.targetId,f.origin=a.origin,f.revision+=1,f.evidence=a.evidence??null,f.updatedAt=g):(f={id:e().randomUUID(),engine:a.engine,targetId:a.targetId,origin:a.origin,revision:1,state:"draining",createdAt:g,updatedAt:g,requestIds:[a.requestId],evidence:a.evidence??null,stoppedAt:null},b.migrationIntents[f.id]=f),d.activeAccountId=a.targetId,d.revision+=1;let h=0;for(let c of Object.values(b.conversations)){if(c.engine!==a.engine||("manual"===a.origin&&c.migrationOptOut?.targetId===a.targetId&&(c.migrationOptOut=null),"auto"===a.origin&&c.migrationOptOut?.targetId===a.targetId))continue;let d=c.generations.at(-1);if(!d||null===d.accountId||d.accountId===a.targetId){d&&c.migration&&"committed"!==c.migration.phase&&(aG(c),Z(b,c,g),$(b,c,o.JJ),c.migration=null,c.updatedAt=g);continue}let e=P(b,c);((a.scope??"all")!=="active"||"deferred"!==e)&&(h+=1,Z(b,c,g),c.migration=Y(c,d,f,"busy"===e?"waiting-turn":"requested",g),c.updatedAt=g)}return 0===h&&(f.state="complete"),ai(f)}))}requestConversationMigrationToActiveAccount(a){return this.mutate(b=>{let c=aL(b,a),d=b.conversations[c];if(!d)throw Error("viewer conversation is unknown");let f=b.engineRouting[d.engine].activeAccountId,g=d.generations.at(-1);if(!f||!g||null===g.accountId||g.accountId===f||d.migrationOptOut?.targetId===f||d.migration?.targetId===f&&!["committed","rolled-back"].includes(d.migration.phase))return ai(d);let h=aj(),i=Object.values(b.migrationIntents).filter(a=>a.engine===d.engine&&a.targetId===f&&"stopped"!==a.state&&O(a)).sort((a,b)=>b.updatedAt.localeCompare(a.updatedAt))[0];i?("draining"!==i.state&&(i.revision+=1),i.state="draining",i.updatedAt=h):(i={id:e().randomUUID(),engine:d.engine,targetId:f,origin:"manual",revision:1,state:"draining",createdAt:h,updatedAt:h,requestIds:[`lazy:${b.engineRouting[d.engine].revision}:${c}`],evidence:null,stoppedAt:null},b.migrationIntents[i.id]=i);let j="busy"===P(b,d)?"waiting-turn":"requested";return Z(b,d,h),d.migration=Y(d,g,i,j,h),d.updatedAt=h,b.conversationRevision[d.engine]+=1,b.engineRouting[d.engine].revision+=1,ai(d)})}requestConversationReseat(a,b,c){return this.mutate(d=>{let f=aL(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),aG(g),Z(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"===P(d,g)?"waiting-turn":"requested";return Z(d,g,i),g.migration=Y(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&&O(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=aL(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??"",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[aL(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[aL(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])])aD(f,a);return f.migration={...g,phase:"verifying",providerReceipt:d,updatedAt:aj()},f.updatedAt=aj(),ai(f)}let h=null!==g.providerReceipt&&(0,n.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=aL(c,a),e=c.conversations[d];if(!e)throw Error("viewer conversation is unknown");return aF(c,e,b),aD(e,b),e.updatedAt=aj(),ai(e)})}recordMigrationContinuityPath(a,b,c){return this.mutate(d=>{let e=aL(d,a),f=d.conversations[e];if(!f)throw Error("viewer conversation is unknown");aF(d,f,b);let g=f.migration;if(g?.phase==="successor-starting"&&g.operationId===c.operationId&&g.revision===c.revision)aD(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[aL(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[aL(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[aL(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");"complete"===g.state&&"failed-recoverable"===f.phase&&(g.state="draining",g.updatedAt=aj());let h=d.generations.at(-1);if(!h)throw Error("conversation has no source generation");return d.migration={...f,phase:Q(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,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[aL(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,n.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 p={...b,launchProfile:(0,n.Ui)(b.launchProfile??l.launchProfile),historyHash:b.historyHash??null,host:b.host??null,createdAt:m,archivedAt:null};g.generations.push(p),g.continuityPaths=g.continuityPaths.filter(a=>a!==p.path);let q=new Set(h.pendingContinuityPaths);return g.abandonedContinuityPaths=g.abandonedContinuityPaths.filter(a=>!q.has(a)),g.migration={...h,phase:"committed",updatedAt:aj()},g.updatedAt=aj(),$(f,g,o.uK),f.conversationRevision[g.engine]+=1,f.engineRouting[g.engine].revision+=1,ai(g)})}setMigrationIntentState(a,b,c,d=o.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=V(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);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&&(Z(e,b,f.updatedAt),b.migration={...b.migration,phase:"rolled-back",error:null,errorCode:null,updatedAt:f.updatedAt},$(e,b,d.slice(0,240)))}return X(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]))}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={}){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");return(0,K.h1)(b),this.mutate(i=>{let j=az(i,a,b,c,g,h),{canonicalId:k,existing:l,requestDigest:m}=j,n=i.conversations[k],o=new Set([n?.generations.at(-1)?.path].filter(a=>!!a)),p=n?V(i,n.engine,o):"",q=n?.migration&&["waiting-turn","requested","preparing","successor-starting","verifying"].includes(n.migration.phase),r=n?.generations.at(-1),s=a=>("delivered"===a.state||"delivery-uncertain"===a.state?aw(i,a):(a.deliveredAt=null,a.error=null,q?(a.state="held",a.generationId=null,a.assignedAt=null):r?(a.state="assigned",a.generationId=r.id,a.assignedAt=aj()):(a.state="failed",a.generationId=null,a.assignedAt=null,a.error="delivery target is unavailable and remains recoverable"),aw(i,a),n&&X(i,n.engine,p,o)),ai(a));if(l)return l.error===at?ai(l):s(l);let t=aA(j,b,c,d,f,g);if(t)return t;let u=e().randomUUID(),v={id:u,conversationId:k,runtimeConversationId:k,text:b,createdAt:aj(),clientMessageId:c,payloadKind:d,runtimeImages:f.map(a=>({...a})),contentDigest:g,artifactPaths:[],command:ar(h,u),requestDigest:m,state:"held",generationId:null,attempts:0,assignedAt:null,deliveredAt:null,error:null};if(aB(i,k),Object.values(i.heldDeliveries).filter(a=>a.conversationId===k&&["held","assigned","delivery-uncertain"].includes(a.state)).length>=100)throw Error("held delivery limit reached for conversation");return i.heldDeliveries[v.id]=v,h.operationId&&(i.deliveryOperationOwners[v.command.operationId]??={conversationId:k,runtimeConversationId:v.runtimeConversationId,clientMessageId:c,deliveryId:v.id,command:v.command,requestDigest:v.requestDigest,contentDigest:v.contentDigest,createdAt:v.createdAt,terminalState:null}),s(v)})}preflightDeliveryReservation(a,b,c,d,e,f,g={}){return aA(az(this.readOnlySnapshot(),a,b,c,f,g),b,c,d,e,f)}pendingDeliveries(a){let b=this.readOnlySnapshot(),c=aL(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&&_(c,d,b),ai(d)})}compactDeliveryReservations(){return this.mutate(a=>aB(a))}queueSuccessorCleanup(a,b){this.mutate(c=>{let d=c.pendingSuccessorCleanups[b.operationId];c.pendingSuccessorCleanups[b.operationId]=d??{conversationId:aL(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[aL(c,d.conversationId)],f=new Set([e?.generations.at(-1)?.path].filter(a=>!!a)),g=e?V(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",aw(c,d),e&&X(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,m.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))}))}recordDeliveryOutcome(a,b,c=null){return this.mutate(d=>{let e=d.heldDeliveries[a];if(!e)throw Error("held delivery is unknown");if("delivered"===e.state)return ai(e);let f=d.conversations[aL(d,e.conversationId)],g=new Set([f?.generations.at(-1)?.path].filter(a=>!!a)),h=f?V(d,f.engine,g):"";e.state=b,e.deliveredAt="delivered"===b?aj():null,e.error=c?.slice(0,240)??null,"delivered"===b&&(e.text=""),f&&X(d,f.engine,h,g);let i=ai(e);return("delivered"===b||"failed"===b)&&aB(d,e.conversationId),i})}recordDeliveryOutcomeForOperation(a,b,c,d=null){return this.recordDeliveryOutcomesForOperations([{conversationId:a,operationId:b,state:c,error:d}])[0]??null}recordDeliveryOutcomesForOperations(a){return this.mutate(b=>{let c=(a,c)=>`${aL(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=aL(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;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?V(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=""),i&&X(b,i.engine,k,j),e.add(g.conversationId),ai(g)});for(let a of e)aB(b,a);return f})}discardDelivery(a){this.mutate(b=>{let c=b.heldDeliveries[a],d=c?b.conversations[aL(b,c.conversationId)]:void 0,e=new Set([d?.generations.at(-1)?.path].filter(a=>!!a)),f=d?V(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&&X(b,d.engine,f,e)})}requeueHeldDelivery(a){return this.placeDeliveryForRetry(a,!1)}retryUncertainDelivery(a){return this.placeDeliveryForRetry(a,!0)}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");if("delivered"===d.state)return ai(d);if("delivery-uncertain"===d.state&&!b)throw Error("uncertain delivery requires an explicit client retry");if(b&&"delivery-uncertain"!==d.state)throw Error("delivery outcome is already resolved");let e=c.conversations[aL(c,d.conversationId)],f=new Set([e?.generations.at(-1)?.path].filter(a=>!!a)),g=e?V(c,e.engine,f):"";if(e?.migration&&["waiting-turn","requested","preparing","successor-starting","verifying"].includes(e.migration.phase))return d.state="held",d.generationId=null,d.assignedAt=null,d.deliveredAt=null,d.error=null,aw(c,d),e&&X(c,e.engine,g,f),ai(d);let h=e?.generations.at(-1);return h?(d.state="assigned",d.generationId=h.id,d.assignedAt=aj(),d.deliveredAt=null,d.error=null):(d.state="failed",d.deliveredAt=null,d.error="delivery target is unavailable and remains recoverable"),aw(c,d),e&&X(c,e.engine,g,f),ai(d)})}rollbackConversationMigration(a,b){return this.mutate(c=>{let d=aL(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=V(c,e.engine,f),h=aj();return Z(c,e,h),c.engineRouting[e.engine].activeAccountId===e.migration.targetId&&(e.migrationOptOut={targetId:e.migration.targetId,updatedAt:h}),$(c,e,o.Mi),e.migration={...e.migration,phase:"rolled-back",error:null,errorCode:null,updatedAt:h},e.updatedAt=h,X(c,e.engine,g,f),ai(e)})}}let a6=process;function a7(){return a6.__llvAgentRegistry??=new a5(void 0,void 0,void 0,{resolveBackendIdentity:!0}),a6.__llvAgentRegistry}},23953:(a,b,c)=>{c.d(b,{$q:()=>v,VW:()=>m,c1:()=>n,g8:()=>u,k8:()=>w,oN:()=>p});var d=c(72294),e=c(88623);let f=Object.freeze(["viewer"]),g=Object.freeze(["viewer"]),h=Object.freeze([...g]),i=Object.freeze({grantable:g,operatorRoot:h,delegated:Object.freeze([...f])});function j(a){return["viewer",...new Set(a.filter(a=>"viewer"!==a))]}function k(a,b=i){let c=function(a,b=i){return"operator-root"===a?b.operatorRoot:b.delegated}(a.origin,b);return j((null==a.requested?c:c.filter(b=>a.requested.includes(b))).filter(a=>b.grantable.includes(a)))}function l(a){return"delegated"===(0,d.GU)(a)?"delegated":a.origin?.kind==="operator"||0===a.delegationDepth?"operator-root":"delegated"}function m(a,b=i){return k({origin:l(a),requested:a.requested},b)}function n(a,b=i){return Array.isArray(a)?j(a.filter(a=>"string"==typeof a&&b.grantable.includes(a))):[...f]}function o(a){return 1===a.length&&"viewer"===a[0]}function p(a){let b=a=>Array.isArray(a)&&!o(a);return!!a&&"object"==typeof a&&(!!b(a.launchProfile?.mcpServers)||!!Array.isArray(a.generations)&&a.generations.some(a=>{let c=a?.launchProfile;return b(c?.mcpServers)}))}function q(a,b){return a.length===b.length&&a.every((a,c)=>a===b[c])}function r(a,b,c){let d=new Map,g=new Map,h=new Map,i=new Map;for(let[m,n]of Object.entries(a.conversations)){let p=a.lineageEdges?.[m],r=!!(p?.parentConversationId&&p.parentConversationId!==m);for(let a of(i.set(m,l({parentConversationId:n.generations.at(-1)?.launchProfile.parentConversationId??null,agentRole:n.agentRole,delegationDepth:n.delegationDepth})),n.generations)){var j;let i=(j=n.engine,(0,e.pp)({engine:j,sessionId:a.id})),m=function(a,b,c,d){let e=b.launchProfile.mcpServers;if(o(e))return e;let g=l({parentConversationId:b.launchProfile.parentConversationId,agentRole:a.agentRole,delegationDepth:a.delegationDepth});return d&&"delegated"!==g?[...f]:k({origin:g,requested:e},c)}(n,a,b,r);c&&!q(a.launchProfile.mcpServers,m)&&(a.launchProfile.mcpServers=m);let p=r?"delegated":l({parentConversationId:a.launchProfile.parentConversationId,agentRole:n.agentRole,delegationDepth:n.delegationDepth});if(h.has(i)?h.get(i)!==p&&h.set(i,null):h.set(i,p),d.has(i)){let a=d.get(i);null!==a&&q(a,m)||d.set(i,null)}else d.set(i,m);let s=a.path;s&&(g.has(s)?g.get(s)!==i&&g.set(s,null):g.set(s,i))}}return{grants:d,pathOwner:g,origins:h,conversationOrigins:i}}function s(a,b,c){if(b.key&&(0,e.pp)({engine:b.key.engine,sessionId:b.key.sessionId})!==a)return null;if(b.artifactPath){let d=c.pathOwner.get(b.artifactPath);if(void 0!==d&&d!==a)return null}if(c.grants.has(a))return c.grants.get(a)}function t(a,b,c){let d=r(a,b,!0);for(let[b,e]of Object.entries(a.entries)){let a=e.launchProfile?.mcpServers;if(!a||o(a))continue;let g=s(b,e,d);if(void 0===g&&!c)continue;let h=g??f;q(a,h)||(e.launchProfile.mcpServers=[...h])}let g=function(a,b){let c=new Map,d=(a,b)=>{let d=c.get(a)??new Set;d.add(b),c.set(a,d)};for(let[b,c]of Object.entries(a.lineageEdges??{})){if(!c.parentConversationId||c.parentConversationId===b)continue;let a=c.evidence?.launchId;"string"==typeof a&&a&&d(a,"delegated")}for(let[c,f]of Object.entries(a.receipts??{})){let g=f.conversationId;if(g){let e=a.lineageEdges?.[g];e?.parentConversationId&&e.parentConversationId!==g&&d(c,"delegated");let f=b.conversationOrigins.get(g);f&&d(c,f)}if(!f.key)continue;let h=(0,e.pp)({engine:f.key.engine,sessionId:f.key.sessionId});if(!b.origins.has(h))continue;let i=b.origins.get(h);if(i)d(c,i);else for(let a of["operator-root","delegated"])d(c,a)}return c}(a,d);for(let[c,d]of Object.entries(a.receipts??{})){let a=d.launchProfile?.mcpServers;if(!a||o(a))continue;let e=function(a,b,c,d){let e=l({agentRole:c.agentRole,delegationDepth:c.delegationDepth,parentConversationId:c.parentConversationId}),f=a.get(b);return f&&(f.size>1||!f.has(e))?null:k({origin:e,requested:c.launchProfile.mcpServers},d)}(g,c,d,b)??f;q(a,e)||(d.launchProfile.mcpServers=[...e])}return a}function u(a,b=i){return t(a,b,!1)}function v(a,b=i){return t(a,b,!0)}function w(a,b,c=i){let d=(0,e.pp)({engine:b.engine,sessionId:b.sessionId}),g=a.entries[d],h=g?.launchProfile?.mcpServers;if(!g||!h||o(h))return;let j=s(d,g,r(a,c,!1))??f;q(h,j)||(g.launchProfile.mcpServers=[...j])}},47473:(a,b,c)=>{c.d(b,{CC:()=>l,Hy:()=>j,Zx:()=>g,gy:()=>i,h1:()=>k,in:()=>f,kW:()=>n,rM:()=>o,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,b){let c,d={text:a,images:b.map(a=>({...a}))};if(!d.text.trim()&&0===d.images.length)throw Error("message content is required");return{content:d,contentDigest:(c=JSON.stringify({text:d.text,images:d.images.map(({sha256:a,mime:b,bytes:c})=>({sha256:a,mime:b,bytes:c}))}),e().createHash("sha256").update(c).digest("hex"))}}},52e3:(a,b,c)=>{let d;c.d(b,{B:()=>C});var e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(1198);let j="/proc";function k(a){try{return f().readFileSync(h().join(j,String(a),"cmdline"),"utf8").split("\0").filter(Boolean)}catch{return[]}}function l(a){try{return f().readlinkSync(h().join(j,String(a),"cwd"))}catch{return null}}function m(a){let b;try{b=f().readFileSync(h().join(j,String(a),"stat"),"utf8")}catch{return null}return b.slice(b.lastIndexOf(")")+2).trim().split(/\s+/)}function n(a){try{return(128&f().lstatSync(a).mode)!=0}catch{return!1}}function o(a){let b;try{b=f().readdirSync(j,{withFileTypes:!0})}catch{return}for(let c of b){let b;if(!c.isDirectory()||!/^\d+$/.test(c.name))continue;let d=Number(c.name),e=h().join(j,c.name,"fd");try{b=f().readdirSync(e,{withFileTypes:!0})}catch{continue}for(let c of b){let b,g=h().join(e,c.name);try{b=f().readlinkSync(g)}catch{continue}a(b,d,()=>n(g))}}}let p={name:"linux",pidAlive:function(a){return Number.isInteger(a)&&a>0&&f().existsSync(h().join(j,String(a)))},readArgv:k,readCwd:l,readPpid:function(a){let b=m(a),c=b?Number(b[1]):NaN;return Number.isInteger(c)&&c>1?c:null},processIdentity:function(a){let b=m(a),c=b?.[19];return c?`${a}:${c}`:null},readEnvVar:function(a,b){let c;try{c=f().readFileSync(h().join(j,String(a),"environ"),"utf8")}catch{return null}let d=b+"=",e=null;for(let a of c.split("\0"))a.startsWith(d)&&(e=a.slice(d.length));return e},listProcesses:function(){let a,b=[];try{a=f().readdirSync(j,{withFileTypes:!0})}catch{return b}for(let c of a){if(!c.isDirectory()||!/^\d+$/.test(c.name))continue;let a=Number(c.name);b.push({pid:a,argv:k(a),cwd:l(a),tty:function(a){let b=m(a),c=b?Number(b[4]):NaN;return Number.isInteger(c)&&c>0?c:0}(a)})}return b},systemMemory:function(){try{return(0,i.NW)(f().readFileSync(h().join(j,"meminfo"),"utf8"))}catch{return null}},processMemory:function(a){let b=new Map;for(let c of a)if(Number.isInteger(c)&&!(c<=0))try{b.set(c,(0,i.sW)(f().readFileSync(h().join(j,String(c),"status"),"utf8")))}catch{}return b},ppidMap:function(){let a,b=new Map;try{a=f().readdirSync(j,{withFileTypes:!0})}catch{return b}for(let c of a){if(!c.isDirectory()||!/^\d+$/.test(c.name))continue;let a=Number(c.name),d=m(a),e=d?Number(d[1]):NaN;Number.isInteger(e)&&e>0&&b.set(a,e)}return b},scanFdTargetsUnder:function(a,b){o(b)},scanFdTargetsFor:function(a,b){o(b)},pidWritesPath:function(a,b){let c,d;try{c=f().realpathSync(b)}catch{c=null}let e=h().join(j,String(a),"fd");try{d=f().readdirSync(e,{withFileTypes:!0})}catch{return!1}for(let a of d){let d,g=h().join(e,a.name);try{d=f().readlinkSync(g)}catch{continue}if((d===b||d===c)&&n(g))return!0}return!1},pidHoldsPath:function(a,b){let c;try{c=f().readdirSync(h().join(j,String(a),"fd"),{withFileTypes:!0})}catch{return!1}for(let d of c)try{if(f().readlinkSync(h().join(j,String(a),"fd",d.name))===b)return!0}catch{continue}return!1}};var q=c(31421),r=c(48161),s=c.n(r),t=c(21420);function u(a,b){let c=(0,q.spawnSync)(a,b,{encoding:"utf8",maxBuffer:0x1000000,timeout:1e4});return c.error||"string"!=typeof c.stdout?"":c.stdout}let v=new Map,w=1,x=/^\s*(\d+)\s+(\d+)\s+(\S+)\s+(.*)$/;function y(a,b){let c=0,d="";for(let e of a.split("\n")){if(!e)continue;let a=e[0],f=e.slice(1);if("p"===a)c=Number(f),d="";else if("f"===a)d="";else if("a"===a)d=f;else if("n"===a&&c>0&&f){let a="w"===d||"u"===d;b(f,c,()=>a)}}}let z=null;function A(){let a=Date.now();if(z&&a-z.at<5e3)return z.byPid;let b=function(a){let b=new Map;for(let c of a.split("\n")){let a=x.exec(c);if(!a)continue;let d=Number(a[1]),e=Number(a[2]),f=(a[4]??"").trim().split(/\s+/).filter(Boolean);b.set(d,{ppid:Number.isInteger(e)&&e>1?e:null,tty:function(a){if(!a||"?"===a||"??"===a||"-"===a)return 0;let b=v.get(a);return void 0===b&&(b=w,w+=1,v.set(a,b)),b}(a[3]??""),argv:f})}return b}(u("ps",["-axo","pid=,ppid=,tty=,args="])),c=function(a){let b=new Map,c=0;for(let d of a.split("\n")){if(!d)continue;let a=d[0],e=d.slice(1);"p"===a?c=Number(e):"n"===a&&c>0&&b.set(c,e)}return b}(u("lsof",["-w","-d","cwd","-Fpn"])),d=new Map;for(let[a,e]of b)d.set(a,{argv:e.argv,ppid:e.ppid,tty:e.tty,cwd:c.get(a)??null});return z={at:a,byPid:d},d}let B={name:"portable",pidAlive:function(a){if(!Number.isInteger(a)||a<=0)return!1;try{return process.kill(a,0),!0}catch(a){return"EPERM"===a.code}},readArgv:function(a){return A().get(a)?.argv??[]},readCwd:function(a){return A().get(a)?.cwd??null},readPpid:function(a){return A().get(a)?.ppid??null},processIdentity:function(a){return!Number.isInteger(a)||a<=0?null:"darwin"===process.platform?(0,t.P3)(a):null},readEnvVar:function(){return null},listProcesses:function(){let a=[];for(let[b,c]of A())a.push({pid:b,argv:c.argv,cwd:c.cwd,tty:c.tty});return a},systemMemory:function(){let a=s().totalmem(),b=(0,i.Lc)(u("vm_stat",[]));if(!a||null===b)return null;let c=(0,i.yh)(u("sysctl",["-n","vm.swapusage"]));return{ramTotal:a,ramAvailable:Math.min(b,a),swapTotal:c?.swapTotal??0,swapUsed:c?.swapUsed??0}},processMemory:function(a){let b=new Set;for(let c of a)Number.isInteger(c)&&c>0&&b.add(c);let c=new Map;if(0===b.size)return c;for(let[a,d]of(0,i.CT)(u("ps",["-axo","pid=,rss="])))b.has(a)&&c.set(a,{rssBytes:d,swapBytes:0});return c},ppidMap:function(){let a=new Map;for(let[b,c]of A())null!==c.ppid&&a.set(b,c.ppid);return a},scanFdTargetsUnder:function(a,b){a&&f().existsSync(a)&&y(u("lsof",["-w","+D",a,"-Fpfan"]),b)},scanFdTargetsFor:function(a,b){let c=[...new Set(a.filter(Boolean))];0!==c.length&&y(u("lsof",["-w","-Fpfan","--",...c]),b)},pidWritesPath:function(a,b){let c=!1;return y(u("lsof",["-w","-a","-p",String(a),"-Fpfan","--",b]),(a,b,d)=>{d()&&(c=!0)}),c},pidHoldsPath:function(a,b){let c=!1;return y(u("lsof",["-w","-a","-p",String(a),"-Fpfan","--",b]),()=>{c=!0}),c}},C="portable"===(d=process.env.VIEWER_PROC_BACKEND)?B:"linux"===d||"linux"===process.platform?p:B},58577:(a,b,c)=>{c.d(b,{MO:()=>h,QK:()=>g,Qq:()=>k,Ui:()=>i,WB:()=>l});var d=c(23953),e=c(72294);let f=/^-?[A-Za-z0-9][A-Za-z0-9._-]{0,126}$/;function g(a){if("string"!=typeof a)return null;let b=a.trim();return f.test(b)?b:null}function h(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=g(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 i(a={},b){return{cwd:"",model:null,effort:null,fast:null,permissionMode:null,readOnly: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 j(a,b){return a.pid===b.pid&&a.startIdentity===b.startIdentity}function k(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&&j(c.server,d.server)&&c.paneId===d.paneId&&j(c.panePid,d.panePid)&&c.windowName===d.windowName&&j(c.agent,d.agent)&&c.argv.length===d.argv.length&&c.argv.every((a,b)=>a===d.argv[b]):c===d}function l(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])&&k(a.host,b.host)}},63685:(a,b,c)=>{c.d(b,{Cu:()=>B,gB:()=>p,oV:()=>A});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(52e3);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}function s(a){try{let b=JSON.parse(h().readFileSync(a,"utf8"));if("number"==typeof b.pid&&Number.isInteger(b.pid)&&b.pid>0){if(!l.B.pidAlive(b.pid))return!0;if("string"!=typeof b.startIdentity)return!1;let a=l.B.processIdentity(b.pid);return null!==a&&a!==b.startIdentity}return Date.now()-h().statSync(a).mtimeMs>3e4}catch{try{return Date.now()-h().statSync(a).mtimeMs>3e4}catch{return!1}}}function t(a,b){try{JSON.parse(h().readFileSync(a,"utf8")).token===b&&h().rmSync(a,{force:!0})}catch{}}function u(){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 v(){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),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 w(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(s(d)){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 s(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:u()};return{context:d,release(){d.active=!1,h().closeSync(b),t(a.lock,a.owner.token),t(a.ticket,a.owner.token)}}}function x(a,b){return{context:a.context,release(){try{a.release()}finally{b()}}}}async function y(){let a=await r(),b=null;try{b=v();for(let c=0;c<2e3;c+=1){let c=w(b);if(c)return x(c,a);await new Promise(a=>setTimeout(a,5))}throw Error("account mutation is busy; retry shortly")}catch(c){throw b&&t(b.ticket,b.owner.token),a(),c}}function z(a){!function(a){let b=(0,k.BQ)("account-mutation-revision.json");if(u()!==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 A(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=v();for(let c=0;c<2;c+=1){let c=w(b);if(c)return x(c,a)}throw new p}catch(c){throw b&&t(b.ticket,b.owner.token),a(),c}}();try{return z(c.context),n.run(c.context,a)}finally{c.release()}}async function B(a){let b=n.getStore();if(b?.active)return a();let c=await y();try{return z(c.context),await n.run(c.context,a)}finally{c.release()}}},65972:(a,b,c)=>{c.d(b,{AM:()=>j,LB:()=>n,Vm:()=>s,dw:()=>m,eW:()=>k,vZ:()=>r});var d=c(52e3),e=c(88623);let f=new Set(["starting","live","idle","handoff"]),g=new Set(["starting","pane-bound","host-verified","prompt-delivered","path-pending"]),h=new Set(["committed","rolled-back"]),i=new Set(["held","assigned","delivery-uncertain"]);function j(a={}){return{now:a.now??(()=>Date.now()),pidAlive:a.pidAlive??(a=>d.B.pidAlive(a)),processIdentity:a.processIdentity??(a=>d.B.processIdentity(a))}}function k(a,b){return!!a&&!!Number.isInteger(a.pid)&&!(a.pid<=0)&&!!b.pidAlive(a.pid)&&(null===a.startIdentity||b.processIdentity(a.pid)===a.startIdentity)}function l(a,b){let c=a?Date.parse(a):NaN;return!!Number.isFinite(c)&&b.now()-c<3e5}function m(a,b){return!!f.has(a.status)&&(!!(k(a.host?.agent,b)||k(a.host?.panePid,b)||k(a.structuredHost?.process??null,b))||l(a.updatedAt,b))}function n(a,b,c){if(!g.has(b.state))return!1;if(k(b.admissionOwner,c)||k(b.verifiedHost?.agent,c)||k(b.pane?.panePid,c))return!0;let d=b.key?a.entries[(0,e.pp)(b.key)]:void 0;return!!(d&&m(d,c))||l(b.createdAt,c)}function o(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 p(a,b,c,d){let e=b.generations.at(-1);if(e&&k(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&&!h.has(b.migration.phase))return!0;let f=c=>o(a,c)===b.id;for(let b of Object.values(a.heldDeliveries))if(i.has(b.state)&&(f(b.conversationId)||f(b.runtimeConversationId))&&("delivery-uncertain"!==b.state||l(b.createdAt,d)))return!0;for(let b of Object.values(a.receipts))if(f(b.conversationId)&&n(a,b,d))return!0;return!1}function q(a,b,c){let d=new Set;for(let e of Object.values(a.entries))e.key.engine===b&&m(e,c)&&d.add(e.artifactPath);return d}function r(a,b={}){let c=j(b),d=new Map,e=b=>{let e=d.get(b);return e||(e=q(a,b,c),d.set(b,e)),e},f=[];for(let b of Object.values(a.heldDeliveries)){if("delivery-uncertain"!==b.state||l(b.createdAt,c))continue;let d=a.conversations[o(a,b.conversationId)];d&&(p(a,d,e(d.engine),c)||f.push(b.id))}return f}function s(a,b,c,d={}){let e=j(d),f=q(a,b,e),g=[];for(let d of Object.values(a.conversations))d.engine===b&&d.generations.at(-1)?.accountId===c&&p(a,d,f,e)&&g.push(d.id);return g}},72294:(a,b,c)=>{c.d(b,{GU:()=>f,QN:()=>h,sJ:()=>g});let d=Object.freeze(["computer-use"]);Object.freeze(["computer-use"]),Object.freeze([]);let e=Object.freeze({"computer-use":Object.freeze(["computer-use"])});function f(a){let b=a.origin?.kind;if(void 0!==b&&"operator"!==b||a.parentConversationId||a.agentRole)return"delegated";let c=a.delegationDepth;return"number"==typeof c&&0!==c?"delegated":"operator-root"}function g(a){return Array.isArray(a)?[...new Set(a.filter(a=>d.includes(a)))]:[]}function h(a){return[...new Set(a.flatMap(a=>e[a]??[]))]}},82093:(a,b,c)=>{c.d(b,{AY:()=>k,BD:()=>e,JJ:()=>f,Mi:()=>g,fz:()=>d,uK:()=>h,xc:()=>j});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){let b=Date.parse(a);return Number.isFinite(b)?b:0}function j(a,b,c){return"draining"===b.state&&a.engineRouting[b.engine].activeAccountId===b.targetId&&!k(a,b,c)}function k(a,b,c){let e=function(a,b){let c=i(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,i(d.migration.updatedAt)));return c}(a,b);return e>c||c-e>=d}},88623:(a,b,c)=>{c.d(b,{ce:()=>g,pp:()=>h,sz:()=>i});var d=c(76760),e=c.n(d);let f=/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i;function g(a,b){let c,d=(c=b.match(f)?.[0])&&c.length===b.length?c.toLowerCase():null;return d?{engine:a,sessionId:d}:null}function h(a){return`${a.engine}:${a.sessionId}`}function i(a,b){let c=e().basename(b).match(f);return c?g(a,c[0]):null}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=620,exports.ids=[620],exports.modules={620:(a,b,c)=>{c.d(b,{nn:()=>I,Ke:()=>R,BU:()=>H});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(41617),i=c(78966),j=c(68797),k=c(3253),l=c(91724);let m={session:18e3,weekly:604800};function n(a){return Math.max(0,Math.min(100,a))}function o(a,b){return null==a.windowMinutes&&null!==b&&null!=a.resetsAt&&a.resetsAt-b>19800}function p(a,b,c=null){let d={session:null,weekly:null},e=[];for(let[c,g]of[["session",a],["weekly",b]]){var f;if(!g)continue;let a="number"!=typeof(f=g.windowMinutes)||!Number.isFinite(f)||f<=0?null:f<=1440?"session":"weekly";a&&!d[a]?d[a]=g:e.push({slot:c,window:g})}for(let{slot:a,window:b}of e){let e="session"===a&&o(b,c)?"weekly":a;d[e]||(d[e]=b)}return d}function q(a){return a?.session&&!a.weekly&&o(a.session,a.capturedAt)?{...a,session:null,weekly:a.session}:a}let r=["session","weekly"];function s(){return(0,l.BQ)("limits-history.json")}function t(a,b,c){return`${a}|${b}|${c}`}function u(){return{version:1,since:null,series:{}}}function v(a){return!!a&&"object"==typeof a&&"number"==typeof a.t&&Number.isFinite(a.t)&&"number"==typeof a.remaining&&Number.isFinite(a.remaining)}function w(){try{let a=JSON.parse(e().readFileSync(s(),"utf8"));if(1!==a.version||!a.series||"object"!=typeof a.series)return u();let b={};for(let[c,d]of Object.entries(a.series))Array.isArray(d)&&(b[c]=d.filter(v));return{version:1,since:"string"==typeof a.since?a.since:null,series:b}}catch{return u()}}var x=c(30096);function y(){return(0,l.BQ)("limits-cache.json")}let z="app-server-initialize-timeout",A=globalThis;function B(){return{version:2,engines:{claude:{},codex:{}}}}function C(){return A.__llvLimitsCache||(A.__llvLimitsCache=function(){try{let a=JSON.parse(e().readFileSync(y(),"utf8"));if(2===a.version&&a.engines&&"object"==typeof a.engines){let b=B();for(let c of["claude","codex"]){let d=a.engines[c];if(d&&"object"==typeof d)for(let[a,e]of Object.entries(d)){let d=function(a){if(!a||"object"!=typeof a||"number"!=typeof a.at||void 0===a.data||!a.provenance)return null;let b=a.provenance;return"live"!==b.source&&"transcript"!==b.source&&"cache"!==b.source&&"unavailable"!==b.source||"string"!=typeof b.reason&&null!==b.reason||"string"!=typeof b.staleSince&&null!==b.staleSince||void 0!==b.retryAt&&"string"!=typeof b.retryAt&&null!==b.retryAt||void 0!==a.retryAt&&null!==a.retryAt&&"number"!=typeof a.retryAt||void 0!==a.consecutive429s&&(!Number.isInteger(a.consecutive429s)||a.consecutive429s<0)||void 0!==a.consecutiveInitializeTimeouts&&(!Number.isInteger(a.consecutiveInitializeTimeouts)||a.consecutiveInitializeTimeouts<0)?null:a}(e);d&&(b.engines[c][a]="codex"===c?{...d,data:q(d.data)}:d)}}return b}if("number"==typeof a.at&&"string"==typeof a.accountId&&a.data?.codex){let b=!function(a){if(!a||"object"!=typeof a)return!1;let b=a=>!!a&&("live"===a.source||"transcript"===a.source||"cache"===a.source||"unavailable"===a.source)&&("string"==typeof a.reason||null===a.reason)&&("string"==typeof a.staleSince||null===a.staleSince)&&(void 0===a.retryAt||"string"==typeof a.retryAt||null===a.retryAt);return b(a.claude)&&b(a.codex)}(a.data.provenance)?{source:"cache",reason:"legacy cache provenance unavailable",staleSince:a.data.staleSince??null}:a.data.provenance.codex;return{version:2,engines:{claude:{},codex:{[a.accountId]:{at:a.at,data:q(a.data.codex),provenance:b}}}}}}catch{}return B()}()),A.__llvLimitsCache}function D(a,b){return C().engines[a][b]??null}function E(a){return{data:a.data,meta:a.provenance,retryAt:a.retryAt??null,consecutive429s:a.consecutive429s??0,consecutiveInitializeTimeouts:a.consecutiveInitializeTimeouts??0}}function F(a,b){return!!a&&(a.retryAt?b<a.retryAt:b-a.at<3e4)}function G(a,b,c,d,f){let h=D(a,b);if(F(h,c))return Promise.resolve(E(h));let i=`${a}:${b}`,j=(A.__llvLimitsInflight||(A.__llvLimitsInflight=new Map),A.__llvLimitsInflight),l=j.get(i);if(l)return l;let m=(async()=>{var h;let i=D(a,b);if(F(i,c))return E(i);let j=await f(),l=d(),m=function(a,b,c,d){let e=a.backoffReason===z||a.reason===z,f=e?(b?.consecutiveInitializeTimeouts??0)+1:0,g=Math.min(6e4*2**Math.max(0,f-1),9e5);if(a.data){let b=e?d+g:null;return{data:a.data,meta:{source:a.source,reason:a.reason,staleSince:a.reason?c:null,retryAt:b?new Date(b).toISOString():null},retryAt:b,consecutive429s:0,consecutiveInitializeTimeouts:f}}let h=a.reason===x.u1?(b?.consecutive429s??0)+1:0,i=Math.max(d+(f>0?g:h>0?Math.min(6e4*2**(h-1),9e5):6e4),a.retryAt??0),j={source:b?.data?"cache":"unavailable",reason:a.reason,staleSince:b?.provenance.staleSince??c,retryAt:new Date(i).toISOString()};return{data:b?.data??null,meta:j,retryAt:i,consecutive429s:h,consecutiveInitializeTimeouts:f}}(j,i,new Date(l).toISOString(),l);for(let[b,c]of[[a,m.meta]])c.reason&&console.warn(`[limits] ${b} fallback: ${(h=c.reason,(0,k.XR)(h))}`);if(C().engines[a][b]={at:c,data:m.data,provenance:m.meta,retryAt:m.retryAt,consecutive429s:m.consecutive429s,consecutiveInitializeTimeouts:m.consecutiveInitializeTimeouts},!function(a){try{e().mkdirSync(g().dirname(y()),{recursive:!0});let b=b=>Object.entries(a.engines[b]).sort(([,a],[,b])=>b.at-a.at)[0]??null,c=b("claude"),d=b("codex"),f=d?{at:d[1].at,accountId:d[0],data:{claude:c?.[1].data??null,codex:d[1].data,claudeAccountId:c?.[0]??null,codexAccountId:d[0],provenance:{claude:c?.[1].provenance??{source:"unavailable",reason:"no cached Claude limits",staleSince:null},codex:d[1].provenance},staleSince:c?.[1].provenance.staleSince??d[1].provenance.staleSince}}:{};e().writeFileSync(y(),JSON.stringify({...a,...f},null,2)+"\n","utf8")}catch(a){console.warn("[limits] failed to persist cache",a)}}(C()),m.data&&("live"===m.meta.source||"transcript"===m.meta.source))try{!function(a,b,c,d=Date.now()){let f=Math.round(d/1e3),h=w(),i=!1;for(let d of r){let e=c[d];if(!e||"number"!=typeof e.usedPercent)continue;let g=t(a,b,d),j=h.series[g]??(h.series[g]=[]),k=j[j.length-1];if(k&&f-k.t<300)continue;j.push({t:f,remaining:n(100-e.usedPercent)});let l=f-691200,m=j.filter(a=>a.t>=l);m.length>4e3&&(m=m.slice(m.length-4e3)),h.series[g]=m,i=!0}if(i){h.since||(h.since=new Date(d).toISOString());try{e().mkdirSync(g().dirname(s()),{recursive:!0}),e().writeFileSync(s(),JSON.stringify(h,null,2)+"\n","utf8")}catch(a){console.warn("[limits] failed to persist history",a)}}}(a,b,m.data)}catch(a){console.warn("[limits] failed to record burndown sample",a)}return m})();j.set(i,m);let o=()=>{j.get(i)===m&&j.delete(i)};return m.then(o,o),m}async function H(a={}){let b=a.now??Date.now,c=b(),d=(0,i.ob)(),e=(0,h.O$)(),[f,j]=await Promise.all([G("claude",d.id,c,b,()=>I(g().join(d.home,".credentials.json"),b)),G("codex",e.id,c,b,()=>K({account:e,liveReader:a.codexLiveReader}))]);return{claude:f.data,codex:j.data,claudeAccountId:d.id,codexAccountId:e.id,provenance:{claude:f.meta,codex:j.meta},staleSince:f.meta.staleSince??j.meta.staleSince}}async function I(a,b=Date.now,c=8e3){let d="",f=null;try{let b=JSON.parse(e().readFileSync(a,"utf8"));"string"==typeof b.claudeAiOauth?.accessToken&&(d=b.claudeAiOauth.accessToken),"string"==typeof b.claudeAiOauth?.subscriptionType&&(f=b.claudeAiOauth.subscriptionType)}catch(a){return{data:null,reason:`credentials unreadable: ${a instanceof Error?a.message:String(a)}`,source:"unavailable"}}if(!d)return{data:null,reason:"credentials missing access token",source:"unavailable"};try{let a=await fetch("https://api.anthropic.com/api/oauth/usage",{headers:{authorization:"Bearer "+d,"anthropic-beta":"oauth-2025-04-20"},signal:AbortSignal.timeout(c)});if(429===a.status)return{data:null,reason:x.u1,source:"unavailable",retryAt:function(a,b){if(!a)return;let c=Number(a);if(Number.isFinite(c)&&c>=0)return b+1e3*c;let d=Date.parse(a);if(Number.isFinite(d))return Math.max(b,d)}(a.headers.get("retry-after"),b())};if(401===a.status)return{data:null,reason:x.e4,source:"unavailable"};if(!a.ok)return{data:null,reason:`oauth usage status ${a.status}`,source:"unavailable"};let e=await a.json(),g={session:J(e.five_hour,300),weekly:J(e.seven_day,10080),plan:f,capturedAt:null};if(!g.session&&!g.weekly)return{data:null,reason:"oauth usage response had no windows",source:"unavailable"};return{data:g,reason:null,source:"live"}}catch(a){return{data:null,reason:`oauth usage fetch failed: ${a instanceof Error?a.message:String(a)}`,source:"unavailable"}}}function J(a,b){if(!a||"number"!=typeof a.utilization)return null;let c="string"==typeof a.resets_at?Date.parse(a.resets_at):NaN;return{usedPercent:a.utilization,resetsAt:Number.isFinite(c)?Math.round(c/1e3):null,windowMinutes:b}}async function K(a={}){let b=a.account??(0,h.O$)();try{let c=await (a.liveReader??(a=>(0,j.VD)().readRateLimits(a)))(b);return{data:function(a,b=Math.round(Date.now()/1e3)){let c=a=>a?{usedPercent:a.usedPercent,resetsAt:a.resetsAt,windowMinutes:a.windowDurationMins}:null,d=p(c(a.primary),c(a.secondary),b);return{session:d.session,weekly:d.weekly,plan:a.planType,capturedAt:b}}(c),reason:null,source:"live"}}catch(e){let a=(0,k.XR)(e instanceof Error?e.message:String(e)),c=/request timed out:\s*initialize\b/i.test(a);console.warn(`[limits] Codex app-server probe for ${b.id} failed: ${a}`);let d=function(a=(0,h.O$)().sessionsDir){let b=0;for(let c of function*(a){for(let b of M(a,12))yield b.p}(a)){b+=1;let a=function(a){let b=N(a,196608);if(!b)return null;let c=b.split("\n");for(let a=c.length-1;a>=0;a--){let b=c[a];if(b.includes('"rate_limits"'))try{let a=JSON.parse(b),c=a.payload?.rate_limits;if(!c)continue;let d="string"==typeof a.timestamp?Date.parse(a.timestamp):NaN,e=Number.isFinite(d)?Math.round(d/1e3):null,f=p(O(c.primary,e),O(c.secondary,e),e);if(!f.session&&!f.weekly)continue;return{session:f.session,weekly:f.weekly,plan:"string"==typeof c.plan_type?c.plan_type:null,capturedAt:e}}catch{}}return null}(c);if(a)return{data:a,reason:null,source:"transcript"}}return{data:null,reason:0===b?"no codex session files":`no rate_limits event in newest ${b} session files`,source:"unavailable"}}(b.sessionsDir);if(d.data)return{data:d.data,reason:"transcript-fallback",source:"transcript",...c?{backoffReason:z}:{}};return{data:null,reason:c?z:"app-server-unavailable",source:"unavailable"}}}function L(a){try{return e().readdirSync(a).sort().reverse()}catch{return[]}}function*M(a,b){let c=0;for(let d of L(a))for(let f of L(g().join(a,d)))for(let h of L(g().join(a,d,f))){let i=g().join(a,d,f,h),j=[];for(let a of L(i)){if(!a.endsWith(".jsonl"))continue;let b=g().join(i,a);try{j.push({p:b,m:e().statSync(b).mtimeMs})}catch{}}for(let a of(j.sort((a,b)=>b.m-a.m),j))if(yield a,++c>=b)return}}function N(a,b){let c;try{c=e().openSync(a,"r")}catch{return null}try{let a=e().fstatSync(c).size,d=Math.min(a,b),f=Buffer.alloc(d);return e().readSync(c,f,0,d,a-d),f.toString("utf8")}catch{return null}finally{e().closeSync(c)}}function O(a,b){if(!a||"number"!=typeof a.used_percent)return null;let c=null;return"number"==typeof a.resets_at?c=a.resets_at:"number"==typeof a.resets_in_seconds&&null!==b&&(c=b+a.resets_in_seconds),{usedPercent:a.used_percent,resetsAt:c,windowMinutes:"number"==typeof a.window_minutes?a.window_minutes:null}}function P(a){return a&&"number"==typeof a.windowMinutes&&a.windowMinutes>0?Math.round(60*a.windowMinutes):null}function Q(a,b,c,d,e){let f=!!(c?.session||c?.weekly),g=(e,g,h,i)=>{var j;let k,l,o,p,q=c?.[e]??null,r=P(q)??h??m[e];return f&&!q&&0===g.length?{windowStart:null,resetsAt:null,windowSeconds:r,samples:[],windowUnreported:!0}:(j=function(a,b,c,d=Math.round(Date.now()/1e3)){let e=w().series[t(a,b,c)]??[],f=d-691200;return e.filter(a=>a.t>=f)}(a,b,e,d),l=null!==(k=q?.resetsAt??i??null)?k-r:null,o=function(...a){let b=new Map;for(let c of a)for(let a of c)Number.isFinite(a.t)&&Number.isFinite(a.remaining)&&b.set(a.t,n(a.remaining));return[...b.entries()].map(([a,b])=>({t:a,remaining:b})).sort((a,b)=>a.t-b.t)}(j,g,q&&"number"==typeof q.usedPercent?[{t:d,remaining:n(100-q.usedPercent)}]:[]),p=null!==l?o.filter(a=>a.t>=l):o,{windowStart:l,resetsAt:k,windowSeconds:r,samples:p})};return{session:g("session",e?.session??[],e?.sessionWindowSeconds??null,e?.sessionResetsAt??null),weekly:g("weekly",e?.weekly??[],e?.weeklyWindowSeconds??null,e?.weeklyResetsAt??null)}}async function R(a={}){let b=await H(a),c=Math.round(Date.now()/1e3),d=b.claudeAccountId?Q("claude",b.claudeAccountId,b.claude,c,null):null,f=null;if(b.codexAccountId){let a=function(a,b){let c=[],d=[],f=new Set,g=-1/0,h=null,i=null,j=null,k=null;for(let{p:l,m}of M(a,400)){if(m/1e3<b)continue;let a=function(a){try{if(e().statSync(a).size>8388608)return N(a,8388608);return e().readFileSync(a,"utf8")}catch{return N(a,8388608)}}(l);if(a){for(let e of a.split("\n"))if(e.includes('"rate_limits"'))try{let a=JSON.parse(e),l=a.payload?.rate_limits;if(!l)continue;let m="string"==typeof a.timestamp?Date.parse(a.timestamp):NaN;if(!Number.isFinite(m))continue;let o=Math.round(m/1e3);if(o<b||f.has(o))continue;let q=p(O(l.primary,o),O(l.secondary,o),o);if(!q.session&&!q.weekly)continue;f.add(o),q.session&&c.push({t:o,remaining:n(100-q.session.usedPercent)}),q.weekly&&d.push({t:o,remaining:n(100-q.weekly.usedPercent)}),o>g&&(g=o,q.session&&(j=q.session.resetsAt,h=P(q.session)),q.weekly&&(k=q.weekly.resetsAt,i=P(q.weekly)))}catch{}}}return c.sort((a,b)=>a.t-b.t),d.sort((a,b)=>a.t-b.t),{session:c,weekly:d,sessionWindowSeconds:h,weeklyWindowSeconds:i,sessionResetsAt:j,weeklyResetsAt:k}}((0,h.O$)().sessionsDir,c-691200);f=Q("codex",b.codexAccountId,b.codex,c,a)}return{claude:d,codex:f,claudeAccountId:b.claudeAccountId,codexAccountId:b.codexAccountId,historySince:w().since}}},30096:(a,b,c)=>{c.d(b,{e4:()=>e,u1:()=>d});let d="oauth-rate-limited",e="oauth-reauthentication-required"}};
|