agent-log-viewer 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.mjs +4 -0
- package/bin/server-runtime.test.ts +63 -12
- package/dist/mcp-server.mjs +31365 -26173
- package/dist/runtime-host.mjs +15618 -7081
- package/dist/standalone/.next/BUILD_ID +1 -1
- package/dist/standalone/.next/app-path-routes-manifest.json +21 -16
- package/dist/standalone/.next/build-manifest.json +3 -3
- package/dist/standalone/.next/prerender-manifest.json +4 -4
- package/dist/standalone/.next/react-loadable-manifest.json +1 -1
- package/dist/standalone/.next/required-server-files.json +1 -1
- package/dist/standalone/.next/routes-manifest.json +30 -0
- package/dist/standalone/.next/server/account-migration-controller-worker.js +1 -1
- package/dist/standalone/.next/server/app/_global-error/page.js +2 -2
- package/dist/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/dist/standalone/.next/server/app/_global-error.html +1 -1
- package/dist/standalone/.next/server/app/_global-error.rsc +1 -1
- package/dist/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_not-found/page.js +1 -1
- package/dist/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/standalone/.next/server/app/_not-found.html +1 -1
- package/dist/standalone/.next/server/app/_not-found.rsc +2 -2
- package/dist/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/dist/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/dist/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/dist/standalone/.next/server/app/api/access/route.js +1 -1
- package/dist/standalone/.next/server/app/api/access/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/account-project-bindings/route.js +1 -1
- package/dist/standalone/.next/server/app/api/account-project-bindings/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/limits/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/limits/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/limits/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/limits/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/reset-credits/route.js +2 -2
- package/dist/standalone/.next/server/app/api/accounts/codex/reset-credits/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/agent/route.js +1 -1
- package/dist/standalone/.next/server/app/api/agent/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/agent/snapshot/route.js +1 -1
- package/dist/standalone/.next/server/app/api/agent/snapshot/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/answer/route.js +1 -2
- package/dist/standalone/.next/server/app/api/answer/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/artifact/route.js +1 -1
- package/dist/standalone/.next/server/app/api/artifact/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/attach-command/route.js +1 -1
- package/dist/standalone/.next/server/app/api/attach-command/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/attention/[id]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/attention/[id]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/attention/route.js +1 -1
- package/dist/standalone/.next/server/app/api/attention/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/board/route.js +1 -1
- package/dist/standalone/.next/server/app/api/board/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/bridge/route.js +1 -2
- package/dist/standalone/.next/server/app/api/bridge/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/conversation-host/route.js +1 -1
- package/dist/standalone/.next/server/app/api/conversation-host/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/conversation-host/targets/route.js +1 -1
- package/dist/standalone/.next/server/app/api/conversation-host/targets/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js +1 -1
- package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/conversations/route.js +1 -1
- package/dist/standalone/.next/server/app/api/conversations/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/files/route.js +3 -2
- package/dist/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/flows/[id]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/flows/[id]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/flows/route.js +1 -1
- package/dist/standalone/.next/server/app/api/flows/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/image/route.js +1 -1
- package/dist/standalone/.next/server/app/api/image/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/inbox/route.js +2 -2
- package/dist/standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js +1 -1
- package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/limits/history/route.js +1 -1
- package/dist/standalone/.next/server/app/api/limits/history/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/limits/route.js +1 -1
- package/dist/standalone/.next/server/app/api/limits/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/log/preflight/route.js +1 -1
- package/dist/standalone/.next/server/app/api/log/preflight/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/log/project-delete/route.js +1 -1
- package/dist/standalone/.next/server/app/api/log/project-delete/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/log/provenance/route.js +107 -1
- package/dist/standalone/.next/server/app/api/log/provenance/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/log/route.js +1 -1
- package/dist/standalone/.next/server/app/api/log/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/log/suggestions/route.js +2 -4
- package/dist/standalone/.next/server/app/api/log/suggestions/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/logs/route.js +1 -1
- package/dist/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/logs/stream/route.js +2 -2
- package/dist/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/monitor/runs/route.js +3 -3
- package/dist/standalone/.next/server/app/api/monitor/runs/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/monitor/seat-tick/route.js +25 -0
- package/dist/standalone/.next/server/app/api/monitor/seat-tick/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/monitor/seat-tick/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route.js +2 -0
- package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/monitor/seat-tick/settings/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js +1 -1
- package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js +1 -1
- package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js +2 -2
- package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js +1 -1
- package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/pipelines/route.js +1 -2
- package/dist/standalone/.next/server/app/api/pipelines/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/pipelines/tick/route.js +2 -2
- package/dist/standalone/.next/server/app/api/pipelines/tick/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/proc/route.js +1 -1
- package/dist/standalone/.next/server/app/api/proc/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/projects/create/route.js +2 -2
- package/dist/standalone/.next/server/app/api/projects/create/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/projects/crown/route.js +1 -1
- package/dist/standalone/.next/server/app/api/projects/crown/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/projects/directories/route.js +1 -1
- package/dist/standalone/.next/server/app/api/projects/directories/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/push/route.js +2 -2
- package/dist/standalone/.next/server/app/api/push/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/resources/route.js +1 -1
- package/dist/standalone/.next/server/app/api/resources/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/roles/route.js +2 -2
- package/dist/standalone/.next/server/app/api/roles/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/answer/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/answer/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/deployments/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/deployments/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/hosts/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/hosts/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/inject/route.js +1 -0
- package/dist/standalone/.next/server/app/api/runtime/inject/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/runtime/inject/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/operations/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/operations/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/queue/route.js +1 -0
- package/dist/standalone/.next/server/app/api/runtime/queue/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/runtime/queue/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/runtime/realtime/route.js +1 -2
- package/dist/standalone/.next/server/app/api/runtime/realtime/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/send/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/send/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/spawn/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/spawn/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/steer/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/steer/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/stream/route.js +2 -2
- package/dist/standalone/.next/server/app/api/runtime/stream/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/search/transcripts/route.js +2 -2
- package/dist/standalone/.next/server/app/api/search/transcripts/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/session/route.js +1 -1
- package/dist/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/session/supersedence/route.js +1 -1
- package/dist/standalone/.next/server/app/api/session/supersedence/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/session/title/route.js +1 -1
- package/dist/standalone/.next/server/app/api/session/title/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/spawn/policy/route.js +3 -3
- package/dist/standalone/.next/server/app/api/spawn/policy/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/spawn/route.js +1 -2
- package/dist/standalone/.next/server/app/api/spawn/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/spawn/validate/route.js +1 -0
- package/dist/standalone/.next/server/app/api/spawn/validate/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/spawn/validate/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/staging/route.js +2 -2
- package/dist/standalone/.next/server/app/api/staging/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/task-attachments/route.js +2 -2
- package/dist/standalone/.next/server/app/api/task-attachments/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js +1 -2
- package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js +1 -2
- package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/curator/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tasks/curator/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/telegram/reports/route.js +1 -1
- package/dist/standalone/.next/server/app/api/telegram/reports/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/telegram/route.js +1 -1
- package/dist/standalone/.next/server/app/api/telegram/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/timeline/route.js +1 -1
- package/dist/standalone/.next/server/app/api/timeline/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tmux/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tmux/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tmux/targets/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tmux/targets/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/transcribe/backend/route.js +2 -2
- package/dist/standalone/.next/server/app/api/transcribe/backend/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/transcribe/route.js +2 -2
- package/dist/standalone/.next/server/app/api/transcribe/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/transcribe/token/route.js +2 -2
- package/dist/standalone/.next/server/app/api/transcribe/token/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tts/backend/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tts/backend/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tts/route.js +3 -3
- package/dist/standalone/.next/server/app/api/tts/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/view/presence/route.js +1 -1
- package/dist/standalone/.next/server/app/api/view/presence/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/workflows/[id]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/workflows/[id]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/workflows/route.js +1 -1
- package/dist/standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/favicon.ico/route.js +1 -1
- package/dist/standalone/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/index.html +1 -1
- package/dist/standalone/.next/server/app/index.rsc +3 -3
- package/dist/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/dist/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/dist/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/dist/standalone/.next/server/app/page.js +59 -30
- package/dist/standalone/.next/server/app/page.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/standalone/.next/server/app-paths-manifest.json +21 -16
- package/dist/standalone/.next/server/chunks/107.js +1 -1
- package/dist/standalone/.next/server/chunks/1100.js +29 -10
- package/dist/standalone/.next/server/chunks/1406.js +399 -0
- package/dist/standalone/.next/server/chunks/1585.js +108 -0
- package/dist/standalone/.next/server/chunks/160.js +4 -4
- package/dist/standalone/.next/server/chunks/1617.js +2 -2
- package/dist/standalone/.next/server/chunks/1849.js +1 -0
- package/dist/standalone/.next/server/chunks/1888.js +1 -1
- package/dist/standalone/.next/server/chunks/193.js +1 -0
- package/dist/standalone/.next/server/chunks/1952.js +1 -0
- package/dist/standalone/.next/server/chunks/2549.js +1 -1
- package/dist/standalone/.next/server/chunks/2555.js +1 -0
- package/dist/standalone/.next/server/chunks/2647.js +1 -1
- package/dist/standalone/.next/server/chunks/2857.js +1 -0
- package/dist/standalone/.next/server/chunks/2914.js +24 -0
- package/dist/standalone/.next/server/chunks/3034.js +1 -0
- package/dist/standalone/.next/server/chunks/3086.js +1 -1
- package/dist/standalone/.next/server/chunks/3131.js +1 -0
- package/dist/standalone/.next/server/chunks/3214.js +1 -1
- package/dist/standalone/.next/server/chunks/3302.js +1 -2
- package/dist/standalone/.next/server/chunks/3407.js +1 -0
- package/dist/standalone/.next/server/chunks/3422.js +1 -0
- package/dist/standalone/.next/server/chunks/3558.js +1 -0
- package/dist/standalone/.next/server/chunks/3570.js +81 -0
- package/dist/standalone/.next/server/chunks/3587.js +1 -1
- package/dist/standalone/.next/server/chunks/3743.js +74 -24
- package/dist/standalone/.next/server/chunks/3830.js +1 -1
- package/dist/standalone/.next/server/chunks/3896.js +1 -0
- package/dist/standalone/.next/server/chunks/4127.js +1 -1
- package/dist/standalone/.next/server/chunks/4509.js +1 -1
- package/dist/standalone/.next/server/chunks/4637.js +62 -0
- package/dist/standalone/.next/server/chunks/4651.js +1 -1
- package/dist/standalone/.next/server/chunks/4783.js +1 -0
- package/dist/standalone/.next/server/chunks/480.js +126 -0
- package/dist/standalone/.next/server/chunks/4972.js +3 -3
- package/dist/standalone/.next/server/chunks/{4756.js → 4995.js} +3 -5
- package/dist/standalone/.next/server/chunks/5480.js +1 -1
- package/dist/standalone/.next/server/chunks/5545.js +1 -1
- package/dist/standalone/.next/server/chunks/568.js +1 -2
- package/dist/standalone/.next/server/chunks/5682.js +1 -0
- package/dist/standalone/.next/server/chunks/5771.js +1 -0
- package/dist/standalone/.next/server/chunks/5847.js +1 -0
- package/dist/standalone/.next/server/chunks/6023.js +1 -0
- package/dist/standalone/.next/server/chunks/6277.js +81 -0
- package/dist/standalone/.next/server/chunks/6289.js +2 -0
- package/dist/standalone/.next/server/chunks/644.js +81 -0
- package/dist/standalone/.next/server/chunks/6453.js +1 -0
- package/dist/standalone/.next/server/chunks/6522.js +1 -0
- package/dist/standalone/.next/server/chunks/6665.js +1 -1
- package/dist/standalone/.next/server/chunks/6809.js +3 -0
- package/dist/standalone/.next/server/chunks/6826.js +1 -1
- package/dist/standalone/.next/server/chunks/6926.js +1 -1
- package/dist/standalone/.next/server/chunks/{1920.js → 6942.js} +1 -1
- package/dist/standalone/.next/server/chunks/6978.js +1 -0
- package/dist/standalone/.next/server/chunks/7008.js +114 -9
- package/dist/standalone/.next/server/chunks/7192.js +1 -0
- package/dist/standalone/.next/server/chunks/7238.js +2 -0
- package/dist/standalone/.next/server/chunks/7361.js +22 -0
- package/dist/standalone/.next/server/chunks/7644.js +3 -3
- package/dist/standalone/.next/server/chunks/7722.js +1 -1
- package/dist/standalone/.next/server/chunks/781.js +55 -0
- package/dist/standalone/.next/server/chunks/7826.js +62 -0
- package/dist/standalone/.next/server/chunks/8027.js +11 -1
- package/dist/standalone/.next/server/chunks/8444.js +1 -1
- package/dist/standalone/.next/server/chunks/8512.js +1 -0
- package/dist/standalone/.next/server/chunks/8513.js +2 -0
- package/dist/standalone/.next/server/chunks/8617.js +1 -1
- package/dist/standalone/.next/server/chunks/8817.js +1 -1
- package/dist/standalone/.next/server/chunks/8991.js +1 -1
- package/dist/standalone/.next/server/chunks/8996.js +1 -1
- package/dist/standalone/.next/server/chunks/9296.js +104 -0
- package/dist/standalone/.next/server/chunks/{7139.js → 9298.js} +2 -2
- package/dist/standalone/.next/server/chunks/9307.js +1 -1
- package/dist/standalone/.next/server/chunks/9360.js +197 -0
- package/dist/standalone/.next/server/chunks/9403.js +1 -1
- package/dist/standalone/.next/server/chunks/9517.js +1 -1
- package/dist/standalone/.next/server/chunks/9554.js +47 -0
- package/dist/standalone/.next/server/chunks/9676.js +1 -62
- package/dist/standalone/.next/server/chunks/9822.js +11 -1
- package/dist/standalone/.next/server/chunks/9901.js +1 -62
- package/dist/standalone/.next/server/chunks/9940.js +3 -3
- package/dist/standalone/.next/server/chunks/9998.js +1 -1
- package/dist/standalone/.next/server/file-scanner-worker.js +3 -3
- package/dist/standalone/.next/server/files-response-worker.js +6 -6
- package/dist/standalone/.next/server/functions-config-manifest.json +5 -0
- package/dist/standalone/.next/server/instrumentation.js +1 -1
- package/dist/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/dist/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/dist/standalone/.next/server/middleware.js +4 -4
- package/dist/standalone/.next/server/pages/404.html +1 -1
- package/dist/standalone/.next/server/pages/500.html +1 -1
- package/dist/standalone/.next/server/resource-collector-worker.js +1 -1
- package/dist/standalone/.next/server/server-reference-manifest.json +1 -1
- package/dist/standalone/.next/server/wakatime-sync-worker.js +2 -2
- package/dist/standalone/.next/static/chunks/{3794-d1854fdd0e41dc44.js → 3794-0ef35fddac53cd9a.js} +1 -1
- package/dist/standalone/.next/static/chunks/6976-016b6947195a6ed2.js +1 -0
- package/dist/standalone/.next/static/chunks/app/_global-error/page-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/access/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/account-project-bindings/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/limits/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/limits/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/reset-credits/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/agent/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/answer/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/artifact/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/attach-command/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/attention/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/board/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/bridge/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/conversation-host/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/conversation-host/targets/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/conversations/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/files/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/flows/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/image/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/inbox/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/limits/history/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/limits/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/suggestions/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/logs/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/monitor/seat-tick/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/monitor/seat-tick/settings/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/pipelines/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/proc/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/projects/create/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/projects/directories/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/push/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/resources/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/roles/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/hosts/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/inject/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/queue/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/session/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/session/title/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/spawn/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/spawn/validate/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/staging/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/telegram/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/timeline/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tmux/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/transcribe/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tts/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/view/presence/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/workflows/route-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/app/page-16384e540b4c0a90.js +125 -0
- package/dist/standalone/.next/static/chunks/{main-8691b7dc3557ef3f.js → main-7e65147ff5ce0866.js} +1 -1
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-60a25d1c4cbf0128.js +1 -0
- package/dist/standalone/.next/static/css/496211a19557b7ee.css +1 -0
- package/dist/standalone/.next/static/e4qE_aCE0s0KQnnU6IWRw/_buildManifest.js +1 -0
- package/dist/standalone/AGENTS.md +20 -0
- package/dist/standalone/node_modules/@next/env/package.json +1 -1
- package/dist/standalone/node_modules/next/dist/build/swc/index.js +1 -1
- package/dist/standalone/node_modules/next/dist/build/webpack-config.js +3 -3
- package/dist/standalone/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js +1 -1
- package/dist/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +1 -1
- package/dist/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +1 -1
- package/dist/standalone/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js +1 -1
- package/dist/standalone/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js +1 -1
- package/dist/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +5 -5
- package/dist/standalone/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +5 -5
- package/dist/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
- package/dist/standalone/node_modules/next/dist/server/config.js +1 -1
- package/dist/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
- package/dist/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/dist/standalone/node_modules/next/dist/server/image-optimizer.js +2 -2
- package/dist/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
- package/dist/standalone/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +17 -4
- package/dist/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
- package/dist/standalone/node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js +1 -1
- package/dist/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
- package/dist/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
- package/dist/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
- package/dist/standalone/node_modules/next/package.json +10 -10
- package/dist/standalone/package.json +5 -5
- package/dist/standalone/server.bun.js +1 -1
- package/dist/standalone/src/lib/viewerInstrumentation.ts +809 -0
- package/package.json +5 -5
- package/dist/standalone/.next/server/chunks/112.js +0 -1
- package/dist/standalone/.next/server/chunks/2190.js +0 -1
- package/dist/standalone/.next/server/chunks/2318.js +0 -2
- package/dist/standalone/.next/server/chunks/2371.js +0 -1
- package/dist/standalone/.next/server/chunks/2500.js +0 -55
- package/dist/standalone/.next/server/chunks/2799.js +0 -1
- package/dist/standalone/.next/server/chunks/2870.js +0 -104
- package/dist/standalone/.next/server/chunks/3598.js +0 -81
- package/dist/standalone/.next/server/chunks/3740.js +0 -126
- package/dist/standalone/.next/server/chunks/3953.js +0 -1
- package/dist/standalone/.next/server/chunks/411.js +0 -1
- package/dist/standalone/.next/server/chunks/4191.js +0 -1
- package/dist/standalone/.next/server/chunks/461.js +0 -1
- package/dist/standalone/.next/server/chunks/4968.js +0 -2
- package/dist/standalone/.next/server/chunks/5408.js +0 -1
- package/dist/standalone/.next/server/chunks/6333.js +0 -47
- package/dist/standalone/.next/server/chunks/6839.js +0 -81
- package/dist/standalone/.next/server/chunks/7045.js +0 -319
- package/dist/standalone/.next/server/chunks/7159.js +0 -1
- package/dist/standalone/.next/server/chunks/8176.js +0 -1
- package/dist/standalone/.next/server/chunks/8263.js +0 -81
- package/dist/standalone/.next/server/chunks/8392.js +0 -126
- package/dist/standalone/.next/server/chunks/9120.js +0 -78
- package/dist/standalone/.next/server/chunks/9507.js +0 -1
- package/dist/standalone/.next/static/6jhPk8sOUI3wRf_j1l5vY/_buildManifest.js +0 -1
- package/dist/standalone/.next/static/chunks/3021-9ced2d55bf2cbf77.js +0 -1
- package/dist/standalone/.next/static/chunks/app/_global-error/page-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/access/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/account-project-bindings/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/limits/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/limits/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/reset-credits/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/agent/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/answer/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/artifact/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/attach-command/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/attention/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/board/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/bridge/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/conversation-host/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/conversation-host/targets/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/conversations/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/files/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/flows/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/image/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/inbox/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/limits/history/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/limits/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/log/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/log/suggestions/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/logs/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/pipelines/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/proc/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/projects/create/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/projects/directories/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/push/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/resources/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/roles/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/hosts/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/session/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/session/title/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/spawn/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/staging/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/telegram/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/timeline/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tmux/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/transcribe/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tts/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/view/presence/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/workflows/route-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/page-dbe7cb010b4941d6.js +0 -96
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-3e358516d279299e.js +0 -1
- package/dist/standalone/.next/static/css/282596e2aaee1aa4.css +0 -1
- package/dist/standalone/src/lib/inboxFiles.ts +0 -203
- /package/dist/standalone/.next/static/{6jhPk8sOUI3wRf_j1l5vY → e4qE_aCE0s0KQnnU6IWRw}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=4651,exports.ids=[4651],exports.modules={1553:(a,b,c)=>{c.d(b,{Q:()=>f,Y:()=>e});var d=c(33330);function e(a,b){let c=b.canonicalConversationId??(a=>a),e=(b.ttlSeconds??d.jk)*1e3,f=new Set(a.answeredRefs??[]),g=b.deliveredOperation;if(g)for(let b of a.pendingAnswers??[])g(b.operationId)&&f.add(b.ref);let h=new Map;for(let b of a.reports){if(null!==(0,d.Wf)(b.origin)||!b.project||!b.targetSeatConversationId)continue;let a=h.get(b.project);(!a||b.seq>a.seq)&&h.set(b.project,b)}let i=new Map;for(let a of h.values()){var j;let g=a.targetSeatConversationId;if(!g||!(0,d.FC)(a.class)||f.has(a.seq))continue;let h=Date.parse(a.at);if(!Number.isFinite(h)||b.now.getTime()-h>e)continue;let k=(j=a,j.key?.trim()||null);null!==k&&i.set(c(g),{id:k,at:a.at})}return i}function f(a,b){if(0!==b.size)for(let c of a){if(c.supersededBy||c.migratedTo)continue;let a=c.conversationId?b.get(c.conversationId):void 0;a&&(c.bridgeAsk=a)}}},33017:(a,b,c)=>{c.d(b,{ng:()=>p});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724),k=c(2033);function l(){return(0,j.BQ)("root-lineage.json")}class m extends Error{constructor(a,b){super(a,b),this.name="RootLineageStoreError"}}function n(a){var b;return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.conversationId&&a.conversationId.length>0&&(null===a.path||"string"==typeof a.path)&&"string"==typeof a.startedAt&&(void 0===a.endedAt||"string"==typeof a.endedAt)&&(void 0===a.seededFrom||"string"==typeof a.seededFrom)&&(void 0===a.reason||"crash"===(b=a.reason)||"reboot"===b||"rollover"===b||"fresh"===b)}function o(a=l()){var b;let c,d;try{c=g().readFileSync(a,"utf8")}catch(a){if("ENOENT"===a.code)return null;throw new m("could not read the root lineage",{cause:a})}try{d=JSON.parse(c)}catch(a){throw new m("root lineage contains malformed JSON",{cause:a})}if(!(!(!(b=d)||"object"!=typeof b||Array.isArray(b))&&1===b.schemaVersion&&"string"==typeof b.rootId&&b.rootId.length>0&&Number.isInteger(b.revision)&&b.revision>=0&&"string"==typeof b.updatedAt&&Array.isArray(b.sessions)&&b.sessions.every(n)))throw new m("root lineage is not a valid record");return d}function p(a=l()){let b=o(a);return b?b.rootId:(0,k.Ol)(a,"root lineage is busy",()=>{let b=o(a);if(b)return b.rootId;let c={schemaVersion:1,rootId:`root_${crypto.randomUUID()}`,revision:0,updatedAt:new Date().toISOString(),sessions:[]};g().mkdirSync(i().dirname(a),{recursive:!0});let d=i().join(i().dirname(a),`.${i().basename(a)}.${process.pid}.${e().randomUUID()}.tmp`),f=null;try{f=g().openSync(d,"wx",384),g().writeFileSync(f,JSON.stringify(c,null,2)+"\n","utf8"),g().fsyncSync(f),g().closeSync(f),f=null,g().renameSync(d,a)}finally{null!==f&&g().closeSync(f),g().rmSync(d,{force:!0})}return c.rootId})}},33330:(a,b,c)=>{c.d(b,{$_:()=>e,FC:()=>l,Io:()=>f,J5:()=>k,TI:()=>n,Wf:()=>m,jk:()=>h,np:()=>g,pW:()=>j,pw:()=>d,vb:()=>o});let d=1,e=1,f="orchestrator",g=500,h=7200,i=["status","completed","failed","blocked","review_verdict","question"],j="confirmation_request";function k(a){return"string"==typeof a&&i.includes(a)||a===j}function l(a){return"blocked"===a||"question"===a}function m(a){if(!a||"manager"===a.kind)return null;let b="gateway"===a.kind?"voice gateway":a.role??"agent";return a.conversationId?`${b} ${a.conversationId}`:b}let n=5,o=3e4},54651:(a,b,c)=>{c.d(b,{zl:()=>C,er:()=>G,QF:()=>F,RS:()=>D,Yb:()=>E});var d=c(12500),e=c(33330),f=c(77276);let g=/"report:(\d+)"/g;var h=c(83169),i=c(39849),j=c(33017),k=c(1553),l=c(77598),m=c.n(l),n=c(73024),o=c.n(n),p=c(91724),q=c(65154),r=c(2033);c(56809);let s="bridge channel is busy";function t(a){return m().createHash("sha256").update(`${a.project}\0${a.seatConversationId}`).digest("hex").slice(0,32)}function u(a){return a?(0,p.BQ)("bridge-channels",`${t(a)}.json`):(0,p.BQ)("bridge.json")}class v extends Error{constructor(a,b){super(`the bridge state at ${a} is unreadable (${b}); move it aside to start a new one`),this.name="BridgeStateCorruptError",this.statePath=a}}function w(a){let b;try{b=o().readFileSync(a,"utf8")}catch(b){if("ENOENT"===b.code)return null;throw new v(a,`it could not be read: ${b.message}`)}try{return JSON.parse(b)}catch{throw new v(a,"it is not valid JSON — the last write was truncated")}}function x(){let a=(0,p.BQ)("bridge-reports.json");return function(a,b){if(null===a)return{schemaVersion:e.$_,lastSeq:0,trimmedThroughSeq:0,trimmedThroughByChannel:{},reports:[],retired:[],answeredRefs:[],pendingAnswers:[]};if("object"!=typeof a||Array.isArray(a))throw new v(b,"its contents are not a report log object");if(void 0!==a.reports&&!Array.isArray(a.reports))throw new v(b,"its reports field is not an array");let c=a.reports??[],d=[];for(let[a,f]of c.entries()){let g=function(a){if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.id||!a.id||!Number.isInteger(a.seq)||a.seq<1||"string"!=typeof a.at||!a.at||!(0,e.J5)(a.class))return null;let b=function(a){if(!(!a||"object"!=typeof a||Array.isArray(a))&&("manager"===a.kind||"agent"===a.kind||"gateway"===a.kind||"unidentified"===a.kind))return"unidentified"===a.kind?{kind:"unidentified",conversationId:null,role:null}:{kind:a.kind,conversationId:"string"==typeof a.conversationId?a.conversationId:null,role:"string"==typeof a.role?a.role:null}}(a.origin),c="string"==typeof a.project?a.project:null===a.project?null:void 0,d="string"==typeof a.targetSeatConversationId?a.targetSeatConversationId:null===a.targetSeatConversationId?null:void 0;return{id:a.id,seq:a.seq,at:a.at,class:a.class,..."string"==typeof a.key&&a.key?{key:a.key}:{},body:"string"==typeof a.body?a.body:"",...b?{origin:b}:{},...void 0!==c?{project:c}:{},...void 0!==d?{targetSeatConversationId:d}:{},..."string"==typeof a.correlatesDirective?{correlatesDirective:a.correlatesDirective}:{}}}(f);if(!g)throw new v(b,`recorded report ${a+1} of ${c.length} is malformed`);d.push(g)}d.sort((a,b)=>a.seq-b.seq);let f=d.at(-1)?.seq??0,g=d[0]?.seq??0,h=Number.isInteger(a.trimmedThroughSeq)?a.trimmedThroughSeq:0,i=function(a){if(!Array.isArray(a))return[];let b=new Set;for(let c of a)Number.isInteger(c)&&c>0&&b.add(c);return[...b].sort((a,b)=>a-b).slice(-e.np)}(a.answeredRefs);return{schemaVersion:e.$_,lastSeq:Math.max(Number.isInteger(a.lastSeq)?a.lastSeq:0,f),trimmedThroughSeq:Math.max(h,g>0?g-1:0),trimmedThroughByChannel:a.trimmedThroughByChannel&&"object"==typeof a.trimmedThroughByChannel&&!Array.isArray(a.trimmedThroughByChannel)?Object.fromEntries(Object.entries(a.trimmedThroughByChannel).filter(a=>Number.isInteger(a[1])&&a[1]>0)):{},reports:d,retired:Array.isArray(a.retired)?a.retired.filter(a=>"string"==typeof a):[],answeredRefs:i,pendingAnswers:function(a,b){if(!Array.isArray(a))return[];let c=new Set(b),d=new Map;for(let b of a){if(!(!b||"object"!=typeof b||Array.isArray(b)))Number.isInteger(b.ref)&&!(b.ref<1)&&"string"==typeof b.operationId&&b.operationId&&"string"==typeof b.project&&b.project&&"string"==typeof b.seatConversationId&&b.seatConversationId&&(c.has(b.ref)||d.set(b.ref,{ref:b.ref,operationId:b.operationId,project:b.project,seatConversationId:b.seatConversationId}))}return[...d.values()].sort((a,b)=>a.ref-b.ref).slice(-e.np)}(a.pendingAnswers,i)}}(w(a),a)}function y(a,b,c){if(null===a)return null;if("object"!=typeof a||Array.isArray(a))throw new v(b,"its contents are not a channel object");if("string"!=typeof a.rootId||!a.rootId)return null;if(c&&(a.project!==c.project||a.seatConversationId!==c.seatConversationId))throw new v(b,"its project or seat does not match the scoped channel path");let d=a.outstanding;return{schemaVersion:e.pw,rootId:a.rootId,...c?{project:c.project,seatConversationId:c.seatConversationId}:{..."string"==typeof a.project?{project:a.project}:{},..."string"==typeof a.seatConversationId?{seatConversationId:a.seatConversationId}:{}},managerRecordRef:e.Io,managerReportCursor:Number.isInteger(a.managerReportCursor)&&a.managerReportCursor>0?a.managerReportCursor:0,updatedAt:"string"==typeof a.updatedAt?a.updatedAt:new Date(0).toISOString(),...d&&"object"==typeof d&&"string"==typeof d.token&&Number.isInteger(d.throughSeq)?{outstanding:d}:{}}}function z(a){let b=u(a);return y(w(b),b,a)}function A(a,b=new Date,c){if(!a.trim())throw Error("bridge channel requires a root identity");let d=u(c);return(0,r.Ol)(d,s,()=>{let f=z(c);if(f)return f;let g={schemaVersion:e.pw,rootId:a,...c?{project:c.project,seatConversationId:c.seatConversationId}:{},managerRecordRef:e.Io,managerReportCursor:0,updatedAt:b.toISOString()};return(0,q.f)(d,g),g})}function B(a={}){var b,c;let d=a.scope,f=Math.max(1,Math.min(e.TI,a.limit??e.TI)),g=z(d)?.managerReportCursor??0,h=x(),i=h.reports.filter(a=>a.seq>g&&a.class!==e.pW&&(!d||a.project===d.project&&a.targetSeatConversationId===d.seatConversationId)),j=z()?.managerReportCursor??0,k=d?h.reports.filter(a=>null==a.project&&a.seq>j).length:0,l=d?h.reports.filter(a=>a.project===d.project&&!a.targetSeatConversationId).length:0,m=d?h.trimmedThroughByChannel?.[t(d)]??0:h.trimmedThroughSeq,n=g<m?{resumedAtSeq:m+1,missedThroughSeq:m}:null,o=n?[(b=n.resumedAtSeq,c=n.missedThroughSeq,{id:`rpt_gap_${c}`,seq:c,at:(a.now??new Date).toISOString(),class:"status",body:`The bridge report log was trimmed past this conversation's position: ${c-g} earlier report(s) are no longer available. Resuming at report ${b}.`,synthetic:!0})]:[],p=[...o,...i].slice(0,f),q=p.reduce((a,b)=>Math.max(a,b.seq),g);return{reports:p,throughSeq:q,remaining:o.length+i.length-p.length,gap:n,...d?{unrouted:{count:k+l,legacy:k,forProject:l}}:{}}}function C(a={}){let b=null;try{return(0,k.Y)(x(),{deliveredOperation:a=>(b??=(0,h.PY)(()=>(0,d.agentRegistry)().readOnlySnapshot(),"the durable delivery record is unavailable")).readable&&(0,i.ak)(b.value,a)?.state==="delivered",...a,now:a.now??new Date})}catch{return new Map}}function D(a){return A((a.rootIdentity??j.ng)(),a.now,a.scope),function(a){var b;let{reports:c}=a.batch;if(0===c.length)return{kind:"idle"};if(a.lastBatchAt&&a.now.getTime()-a.lastBatchAt.getTime()<e.vb)return{kind:"hold"};let d=function(a){let b=0;for(let c of(0,f.yK)(a))for(let a of c.matchAll(g)){let c=Number.parseInt(a[1],10);Number.isInteger(c)&&c>b&&(b=c)}return b}(a.acknowledgedDeliveryIds),h=c.filter(a=>a.seq>d);if(0===h.length)return{kind:"already-acknowledged",throughSeq:c.reduce((a,b)=>Math.max(a,b.seq),d)};let i=h.reduce((a,b)=>Math.max(a,b.seq),0),j=`bridge:${i}`,k=[];for(let a of h)k=(0,f._5)(k,j,{responseId:(b=a.seq,`report:${b}`),text:function(a){let b=a.body.trim(),c=(0,e.Wf)(a.origin);return`[${a.class}]${c?` (from ${c} — NOT the manager)`:""}${b?` ${b}`:""}`}(a)});let l=k[0];return l?(0,f.yK)(a.acknowledgedDeliveryIds).includes(l.deliveryId)?{kind:"already-acknowledged",throughSeq:i}:{kind:"deliver",delivery:{...l,ready:!0},throughSeq:i}:{kind:"idle"}}({batch:B({now:a.now,scope:a.scope}),now:a.now,lastBatchAt:a.lastBatchAt,acknowledgedDeliveryIds:a.acknowledgedDeliveryIds})}function E(a,b=new Date){return function(a,b=new Date){let c=/^ack_([0-9a-f]{32})_[0-9a-f]{36}$/.exec(a)?.[1],d=c?(0,p.BQ)("bridge-channels",`${c}.json`):u();return(0,r.Ol)(d,s,()=>{let e=y(w(d),d);if(c&&e&&(!e.project||!e.seatConversationId||t({project:e.project,seatConversationId:e.seatConversationId})!==c))throw new v(d,"its stored scope does not match its acknowledgement token");if(!e?.outstanding||e.outstanding.token!==a)return{ok:!1,throughSeq:e?.managerReportCursor??0};let f=Math.max(e.managerReportCursor,e.outstanding.throughSeq),g={...e,managerReportCursor:f,updatedAt:b.toISOString()};return delete g.outstanding,(0,q.f)(d,g),{ok:!0,throughSeq:f}})}(a,b)}function F(a,b=new Date,c){return function(a,b=new Date,c){let d=u(c);return(0,r.Ol)(d,s,()=>{let e=z(c);if(!e)throw Error("the bridge channel is not open");let f=c?`ack_${t(c)}_${m().randomBytes(18).toString("hex")}`:`ack_${m().randomBytes(18).toString("hex")}`;return(0,q.f)(d,{...e,outstanding:{token:f,throughSeq:a,issuedAt:b.toISOString()}}),f})}(a,b,c)}function G(a){A((a.rootIdentity??j.ng)(),a.now,a.scope);let b=B({now:a.now,scope:a.scope});if(0===b.reports.length)return null;let c=b.reports.filter(a=>null===(0,e.Wf)(a.origin)),d=b.reports.filter(a=>null!==(0,e.Wf)(a.origin)),f=[];return c.length>0&&(f.push("While you were away the manager reported:"),f.push(...c.map(a=>`- [${a.class}] ${a.body}`))),d.length>0&&(f.push("Other sessions also reported (NOT the manager — attribute these to their own agent):"),f.push(...d.map(a=>`- [${a.class}] from ${(0,e.Wf)(a.origin)}: ${a.body}`))),b.remaining>0&&f.push(`- (${b.remaining} more waiting; they arrive next turn.)`),{text:[...f,"","Mention what matters in your own words. Do not read this list aloud."].join("\n"),throughSeq:b.throughSeq}}}};
|
|
1
|
+
"use strict";exports.id=4651,exports.ids=[4651],exports.modules={1553:(a,b,c)=>{c.d(b,{Q:()=>f,Y:()=>e});var d=c(33330);function e(a,b){let c=b.canonicalConversationId??(a=>a),e=(b.ttlSeconds??d.jk)*1e3,f=new Set(a.answeredRefs??[]),g=b.deliveredOperation;if(g)for(let b of a.pendingAnswers??[])g(b.operationId)&&f.add(b.ref);let h=new Map;for(let b of a.reports){if(null!==(0,d.Wf)(b.origin)||!b.project||!b.targetSeatConversationId)continue;let a=h.get(b.project);(!a||b.seq>a.seq)&&h.set(b.project,b)}let i=new Map;for(let a of h.values()){var j;let g=a.targetSeatConversationId;if(!g||!(0,d.FC)(a.class)||f.has(a.seq))continue;let h=Date.parse(a.at);if(!Number.isFinite(h)||b.now.getTime()-h>e)continue;let k=(j=a,j.key?.trim()||null);null!==k&&i.set(c(g),{id:k,at:a.at})}return i}function f(a,b){if(0!==b.size)for(let c of a){if(c.supersededBy||c.migratedTo)continue;let a=c.conversationId?b.get(c.conversationId):void 0;a&&(c.bridgeAsk=a)}}},33017:(a,b,c)=>{c.d(b,{ng:()=>p});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724),k=c(2033);function l(){return(0,j.BQ)("root-lineage.json")}class m extends Error{constructor(a,b){super(a,b),this.name="RootLineageStoreError"}}function n(a){var b;return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.conversationId&&a.conversationId.length>0&&(null===a.path||"string"==typeof a.path)&&"string"==typeof a.startedAt&&(void 0===a.endedAt||"string"==typeof a.endedAt)&&(void 0===a.seededFrom||"string"==typeof a.seededFrom)&&(void 0===a.reason||"crash"===(b=a.reason)||"reboot"===b||"rollover"===b||"fresh"===b)}function o(a=l()){var b;let c,d;try{c=g().readFileSync(a,"utf8")}catch(a){if("ENOENT"===a.code)return null;throw new m("could not read the root lineage",{cause:a})}try{d=JSON.parse(c)}catch(a){throw new m("root lineage contains malformed JSON",{cause:a})}if(!(!(!(b=d)||"object"!=typeof b||Array.isArray(b))&&1===b.schemaVersion&&"string"==typeof b.rootId&&b.rootId.length>0&&Number.isInteger(b.revision)&&b.revision>=0&&"string"==typeof b.updatedAt&&Array.isArray(b.sessions)&&b.sessions.every(n)))throw new m("root lineage is not a valid record");return d}function p(a=l()){let b=o(a);return b?b.rootId:(0,k.Ol)(a,"root lineage is busy",()=>{let b=o(a);if(b)return b.rootId;let c={schemaVersion:1,rootId:`root_${crypto.randomUUID()}`,revision:0,updatedAt:new Date().toISOString(),sessions:[]};g().mkdirSync(i().dirname(a),{recursive:!0});let d=i().join(i().dirname(a),`.${i().basename(a)}.${process.pid}.${e().randomUUID()}.tmp`),f=null;try{f=g().openSync(d,"wx",384),g().writeFileSync(f,JSON.stringify(c,null,2)+"\n","utf8"),g().fsyncSync(f),g().closeSync(f),f=null,g().renameSync(d,a)}finally{null!==f&&g().closeSync(f),g().rmSync(d,{force:!0})}return c.rootId})}},54651:(a,b,c)=>{c.d(b,{zl:()=>C,er:()=>G,QF:()=>F,RS:()=>D,Yb:()=>E});var d=c(10781),e=c(33330),f=c(77276);let g=/"report:(\d+)"/g;var h=c(83169),i=c(56695),j=c(33017),k=c(1553),l=c(77598),m=c.n(l),n=c(73024),o=c.n(n),p=c(91724),q=c(65154),r=c(2033);c(56809);let s="bridge channel is busy";function t(a){return m().createHash("sha256").update(`${a.project}\0${a.seatConversationId}`).digest("hex").slice(0,32)}function u(a){return a?(0,p.BQ)("bridge-channels",`${t(a)}.json`):(0,p.BQ)("bridge.json")}class v extends Error{constructor(a,b){super(`the bridge state at ${a} is unreadable (${b}); move it aside to start a new one`),this.name="BridgeStateCorruptError",this.statePath=a}}function w(a){let b;try{b=o().readFileSync(a,"utf8")}catch(b){if("ENOENT"===b.code)return null;throw new v(a,`it could not be read: ${b.message}`)}try{return JSON.parse(b)}catch{throw new v(a,"it is not valid JSON — the last write was truncated")}}function x(){let a=(0,p.BQ)("bridge-reports.json");return function(a,b){if(null===a)return{schemaVersion:e.$_,lastSeq:0,trimmedThroughSeq:0,trimmedThroughByChannel:{},reports:[],retired:[],answeredRefs:[],pendingAnswers:[]};if("object"!=typeof a||Array.isArray(a))throw new v(b,"its contents are not a report log object");if(void 0!==a.reports&&!Array.isArray(a.reports))throw new v(b,"its reports field is not an array");let c=a.reports??[],d=[];for(let[a,f]of c.entries()){let g=function(a){if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.id||!a.id||!Number.isInteger(a.seq)||a.seq<1||"string"!=typeof a.at||!a.at||!(0,e.J5)(a.class))return null;let b=function(a){if(!(!a||"object"!=typeof a||Array.isArray(a))&&("manager"===a.kind||"agent"===a.kind||"gateway"===a.kind||"unidentified"===a.kind))return"unidentified"===a.kind?{kind:"unidentified",conversationId:null,role:null}:{kind:a.kind,conversationId:"string"==typeof a.conversationId?a.conversationId:null,role:"string"==typeof a.role?a.role:null}}(a.origin),c="string"==typeof a.project?a.project:null===a.project?null:void 0,d="string"==typeof a.targetSeatConversationId?a.targetSeatConversationId:null===a.targetSeatConversationId?null:void 0;return{id:a.id,seq:a.seq,at:a.at,class:a.class,..."string"==typeof a.key&&a.key?{key:a.key}:{},body:"string"==typeof a.body?a.body:"",...b?{origin:b}:{},...void 0!==c?{project:c}:{},...void 0!==d?{targetSeatConversationId:d}:{},..."string"==typeof a.correlatesDirective?{correlatesDirective:a.correlatesDirective}:{}}}(f);if(!g)throw new v(b,`recorded report ${a+1} of ${c.length} is malformed`);d.push(g)}d.sort((a,b)=>a.seq-b.seq);let f=d.at(-1)?.seq??0,g=d[0]?.seq??0,h=Number.isInteger(a.trimmedThroughSeq)?a.trimmedThroughSeq:0,i=function(a){if(!Array.isArray(a))return[];let b=new Set;for(let c of a)Number.isInteger(c)&&c>0&&b.add(c);return[...b].sort((a,b)=>a-b).slice(-e.np)}(a.answeredRefs);return{schemaVersion:e.$_,lastSeq:Math.max(Number.isInteger(a.lastSeq)?a.lastSeq:0,f),trimmedThroughSeq:Math.max(h,g>0?g-1:0),trimmedThroughByChannel:a.trimmedThroughByChannel&&"object"==typeof a.trimmedThroughByChannel&&!Array.isArray(a.trimmedThroughByChannel)?Object.fromEntries(Object.entries(a.trimmedThroughByChannel).filter(a=>Number.isInteger(a[1])&&a[1]>0)):{},reports:d,retired:Array.isArray(a.retired)?a.retired.filter(a=>"string"==typeof a):[],answeredRefs:i,pendingAnswers:function(a,b){if(!Array.isArray(a))return[];let c=new Set(b),d=new Map;for(let b of a){if(!(!b||"object"!=typeof b||Array.isArray(b)))Number.isInteger(b.ref)&&!(b.ref<1)&&"string"==typeof b.operationId&&b.operationId&&"string"==typeof b.project&&b.project&&"string"==typeof b.seatConversationId&&b.seatConversationId&&(c.has(b.ref)||d.set(b.ref,{ref:b.ref,operationId:b.operationId,project:b.project,seatConversationId:b.seatConversationId}))}return[...d.values()].sort((a,b)=>a.ref-b.ref).slice(-e.np)}(a.pendingAnswers,i)}}(w(a),a)}function y(a,b,c){if(null===a)return null;if("object"!=typeof a||Array.isArray(a))throw new v(b,"its contents are not a channel object");if("string"!=typeof a.rootId||!a.rootId)return null;if(c&&(a.project!==c.project||a.seatConversationId!==c.seatConversationId))throw new v(b,"its project or seat does not match the scoped channel path");let d=a.outstanding;return{schemaVersion:e.pw,rootId:a.rootId,...c?{project:c.project,seatConversationId:c.seatConversationId}:{..."string"==typeof a.project?{project:a.project}:{},..."string"==typeof a.seatConversationId?{seatConversationId:a.seatConversationId}:{}},managerRecordRef:e.Io,managerReportCursor:Number.isInteger(a.managerReportCursor)&&a.managerReportCursor>0?a.managerReportCursor:0,updatedAt:"string"==typeof a.updatedAt?a.updatedAt:new Date(0).toISOString(),...d&&"object"==typeof d&&"string"==typeof d.token&&Number.isInteger(d.throughSeq)?{outstanding:d}:{}}}function z(a){let b=u(a);return y(w(b),b,a)}function A(a,b=new Date,c){if(!a.trim())throw Error("bridge channel requires a root identity");let d=u(c);return(0,r.Ol)(d,s,()=>{let f=z(c);if(f)return f;let g={schemaVersion:e.pw,rootId:a,...c?{project:c.project,seatConversationId:c.seatConversationId}:{},managerRecordRef:e.Io,managerReportCursor:0,updatedAt:b.toISOString()};return(0,q.f)(d,g),g})}function B(a={}){var b,c;let d=a.scope,f=Math.max(1,Math.min(e.TI,a.limit??e.TI)),g=z(d)?.managerReportCursor??0,h=x(),i=h.reports.filter(a=>a.seq>g&&a.class!==e.pW&&(!d||a.project===d.project&&a.targetSeatConversationId===d.seatConversationId)),j=z()?.managerReportCursor??0,k=d?h.reports.filter(a=>null==a.project&&a.seq>j).length:0,l=d?h.reports.filter(a=>a.project===d.project&&!a.targetSeatConversationId).length:0,m=d?h.trimmedThroughByChannel?.[t(d)]??0:h.trimmedThroughSeq,n=g<m?{resumedAtSeq:m+1,missedThroughSeq:m}:null,o=n?[(b=n.resumedAtSeq,c=n.missedThroughSeq,{id:`rpt_gap_${c}`,seq:c,at:(a.now??new Date).toISOString(),class:"status",body:`The bridge report log was trimmed past this conversation's position: ${c-g} earlier report(s) are no longer available. Resuming at report ${b}.`,synthetic:!0})]:[],p=[...o,...i].slice(0,f),q=p.reduce((a,b)=>Math.max(a,b.seq),g);return{reports:p,throughSeq:q,remaining:o.length+i.length-p.length,gap:n,...d?{unrouted:{count:k+l,legacy:k,forProject:l}}:{}}}function C(a={}){let b=null;try{return(0,k.Y)(x(),{deliveredOperation:a=>(b??=(0,h.PY)(()=>(0,d.agentRegistry)().readOnlySnapshot(),"the durable delivery record is unavailable")).readable&&(0,i.ak)(b.value,a)?.state==="delivered",...a,now:a.now??new Date})}catch{return new Map}}function D(a){return A((a.rootIdentity??j.ng)(),a.now,a.scope),function(a){var b;let{reports:c}=a.batch;if(0===c.length)return{kind:"idle"};if(a.lastBatchAt&&a.now.getTime()-a.lastBatchAt.getTime()<e.vb)return{kind:"hold"};let d=function(a){let b=0;for(let c of(0,f.yK)(a))for(let a of c.matchAll(g)){let c=Number.parseInt(a[1],10);Number.isInteger(c)&&c>b&&(b=c)}return b}(a.acknowledgedDeliveryIds),h=c.filter(a=>a.seq>d);if(0===h.length)return{kind:"already-acknowledged",throughSeq:c.reduce((a,b)=>Math.max(a,b.seq),d)};let i=h.reduce((a,b)=>Math.max(a,b.seq),0),j=`bridge:${i}`,k=[];for(let a of h)k=(0,f._5)(k,j,{responseId:(b=a.seq,`report:${b}`),text:function(a){let b=a.body.trim(),c=(0,e.Wf)(a.origin);return`[${a.class}]${c?` (from ${c} — NOT the manager)`:""}${b?` ${b}`:""}`}(a)});let l=k[0];return l?(0,f.yK)(a.acknowledgedDeliveryIds).includes(l.deliveryId)?{kind:"already-acknowledged",throughSeq:i}:{kind:"deliver",delivery:{...l,ready:!0},throughSeq:i}:{kind:"idle"}}({batch:B({now:a.now,scope:a.scope}),now:a.now,lastBatchAt:a.lastBatchAt,acknowledgedDeliveryIds:a.acknowledgedDeliveryIds})}function E(a,b=new Date){return function(a,b=new Date){let c=/^ack_([0-9a-f]{32})_[0-9a-f]{36}$/.exec(a)?.[1],d=c?(0,p.BQ)("bridge-channels",`${c}.json`):u();return(0,r.Ol)(d,s,()=>{let e=y(w(d),d);if(c&&e&&(!e.project||!e.seatConversationId||t({project:e.project,seatConversationId:e.seatConversationId})!==c))throw new v(d,"its stored scope does not match its acknowledgement token");if(!e?.outstanding||e.outstanding.token!==a)return{ok:!1,throughSeq:e?.managerReportCursor??0};let f=Math.max(e.managerReportCursor,e.outstanding.throughSeq),g={...e,managerReportCursor:f,updatedAt:b.toISOString()};return delete g.outstanding,(0,q.f)(d,g),{ok:!0,throughSeq:f}})}(a,b)}function F(a,b=new Date,c){return function(a,b=new Date,c){let d=u(c);return(0,r.Ol)(d,s,()=>{let e=z(c);if(!e)throw Error("the bridge channel is not open");let f=c?`ack_${t(c)}_${m().randomBytes(18).toString("hex")}`:`ack_${m().randomBytes(18).toString("hex")}`;return(0,q.f)(d,{...e,outstanding:{token:f,throughSeq:a,issuedAt:b.toISOString()}}),f})}(a,b,c)}function G(a){A((a.rootIdentity??j.ng)(),a.now,a.scope);let b=B({now:a.now,scope:a.scope});if(0===b.reports.length)return null;let c=b.reports.filter(a=>null===(0,e.Wf)(a.origin)),d=b.reports.filter(a=>null!==(0,e.Wf)(a.origin)),f=[];return c.length>0&&(f.push("While you were away the manager reported:"),f.push(...c.map(a=>`- [${a.class}] ${a.body}`))),d.length>0&&(f.push("Other sessions also reported (NOT the manager — attribute these to their own agent):"),f.push(...d.map(a=>`- [${a.class}] from ${(0,e.Wf)(a.origin)}: ${a.body}`))),b.remaining>0&&f.push(`- (${b.remaining} more waiting; they arrive next turn.)`),{text:[...f,"","Mention what matters in your own words. Do not read this list aloud."].join("\n"),throughSeq:b.throughSeq}}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=4783,exports.ids=[4783],exports.modules={4783:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{applyConversationAction:()=>m});var e=c(3199),f=c(12205),g=c(22455),h=c(29966),i=c(73784),j=a([g,i]);[g,i]=j.then?(await j)():j;let n=["interrupt","kill","resume","compact","dialog-key"],o={registry:e.tk,structuredEnabled:()=>(0,h.cM)(),dispatchStructuredControl:i.Z,interruptConversation:g.F5,killConversation:g.yv,resumeConversation:g.X$,compactConversation:g.LJ,answerDialogKey:g.m3};function k(a,b){return{status:b,body:{error:a}}}function l(a){if(a.ok)return{status:200,body:a};let{status:b,...c}=a;return{status:b,body:c}}async function m(a,b=o){if(!n.includes(a.action))return k("unsupported conversation action",400);if(a.conversationId&&!a.conversationId.startsWith("conversation_"))return k("invalid conversation id",400);let c=b.registry(),d=a.conversationId?c.conversation(a.conversationId):null,e=a.transcriptPath?c.conversationForPath(a.transcriptPath):null;if(a.conversationId&&!d)return k("viewer conversation is unknown",404);if(d&&a.transcriptPath&&(!new Set([...d.generations.map(a=>a.path),...d.continuityPaths]).has(a.transcriptPath)||e?.id!==d.id))return k("conversation identity does not own transcript path",409);let g=d??e,h=g?.generations.at(-1)?.path??a.transcriptPath;if("kill"===a.action&&(0,f.TY)(c,g))return{status:409,body:{ok:!1,outcome:"failed",code:f.yD,error:f.xR}};if(b.structuredEnabled()){let c=await b.dispatchStructuredControl({path:h,conversationId:g?.id??a.conversationId,action:a.action,operationId:a.operationId});if(c)return c}if(!h)return k("conversationId or transcriptPath is required",400);if("interrupt"===a.action)return l(await b.interruptConversation(h));if("kill"===a.action){let a=await b.killConversation(h);return a.ok&&!a.target?l({ok:!1,outcome:"failed",error:"kill resolved no registered pane",status:409}):l(a)}return"resume"===a.action?l(await b.resumeConversation(h)):"compact"===a.action?l(await b.compactConversation(h)):l(await b.answerDialogKey(h,a.key??"",a.label,a.question))}d()}catch(a){d(a)}})},12205:(a,b,c)=>{c.d(b,{TY:()=>f,xR:()=>e,yD:()=>d});let d="branch-shares-root-host",e="branch conversations share their root runtime host; dismiss the branch card or terminate the root conversation explicitly";function f(a,b){let c=b?.generations.at(-1)?.launchProfile.parentConversationId??null;if(!b||!c||c===b.id)return!1;let d=a.canonicalConversationId(b.id),e=a.readOnlySnapshot().lineageEdges[d];return e?.source!=="viewer-spawn"}}};
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";exports.id=480,exports.ids=[480,6277],exports.modules={26277:(a,b,c)=>{c.d(b,{Gs:()=>C,Kn:()=>w,gY:()=>x,h3:()=>q,jd:()=>v,kt:()=>E,ue:()=>D,vx:()=>y,w5:()=>z});var d=c(31421);c(77598);var e=c(73024),f=c.n(e),g=c(48161),h=c.n(g),i=c(76760),j=c.n(i),k=c(27146),l=c(89204),m=c(55541),n=c(19777);Object.freeze({repo:"https://github.com/chigwell/telegram-mcp",release:"v3.2.22",commit:"a61294362226bd93052f5a40b4a1b1269a99ce69",license:"Apache-2.0"});let o="127.0.0.1";function p(){let a=Number(process.env.LLV_TELEGRAM_MCP_PORT);return Number.isInteger(a)&&a>0&&a<65536?a:8809}function q(){return`http://${o}:${p()}/mcp`}function r(a,...b){if(a)return a;let c=j().join(process.cwd(),...b);if(f().existsSync(c))return c;let d=j().join(process.cwd(),"..","..",...b);return f().existsSync(d)?d:c}function s(){return r(process.env.LLV_TELEGRAM_VENDOR_DIR,"vendor","telegram-mcp")}function t(){return(0,k.BQ)("telegram","venv")}function u(){return(0,k.BQ)("telegram","vendor-src")}function v(){return process.env.LLV_TELEGRAM_PYTHON||j().join(t(),"bin","python")}function w(){return r(process.env.LLV_TELEGRAM_SERVER_BRIDGE,"bin","telegram-mcp-server.py")}function x(){return r(process.env.LLV_TELEGRAM_SESSION_READER,"bin","telegram-session-reader.mjs")}let y=Object.freeze(["wait_for_settled_message"]);function z(){let a=process.env.LLV_TELEGRAM_API_ID,b=process.env.LLV_TELEGRAM_API_HASH;if(a&&b)return{apiId:a,apiHash:b};try{let a=JSON.parse(f().readFileSync((0,k.ks)("telegram.json"),"utf8"));if("string"==typeof a.apiId&&a.apiId&&"string"==typeof a.apiHash&&a.apiHash)return{apiId:a.apiId,apiHash:a.apiHash}}catch{}return null}function A(){return f().existsSync(j().join(t(),".llv-provisioned"))&&f().existsSync(v())&&f().existsSync(j().join(u(),"pyproject.toml"))}let B=null;function C(){return A()?Promise.resolve(!0):B||(B=(async()=>((0,n._q)(!0),await (0,l.pM)((0,k.BQ)("telegram","connector-provision"),"Telegram connector provisioning is busy",async()=>{var a;return!!A()||await (a={command:process.execPath,args:[r(process.env.LLV_TELEGRAM_PROVISIONER,"bin","provision-telegram-connector.mjs")],cwd:s(),env:{...F(),LLV_STATE_DIR:(0,k.Pn)(),LLV_TELEGRAM_VENDOR_DIR:s(),LLV_TELEGRAM_PYTHON:v()}},new Promise(b=>{let c;try{c=(0,d.spawn)(a.command,a.args,{cwd:a.cwd,env:a.env,stdio:"ignore"})}catch{b(!1);return}c.once("error",()=>b(!1)),c.once("exit",a=>b(0===a))}))&&A()})))().catch(()=>!1).finally(()=>{B=null}))}function D(a){let b=u(),c=(0,m.WG)();return{command:v(),args:[w()],cwd:b,env:{...F(),...c,TELEGRAM_API_ID:a.credentials.apiId,TELEGRAM_API_HASH:a.credentials.apiHash,TELEGRAM_SESSION_STRING:a.sessionString,TELEGRAM_EXPOSED_TOOLS:"read-only",TELEGRAM_EVENT_FEED:"1",TELEGRAM_EVENT_FEED_FILE:(0,n.ZI)(a.credentialRef),LLV_TELEGRAM_EXCLUDED_TOOLS:y.join(","),LLV_TELEGRAM_MCP_TOKEN:a.connectorToken,LLV_TELEGRAM_VENDOR_DIR:b,MCP_TRANSPORT:"http",MCP_HOST:o,MCP_PORT:String(p())}}}function E(a,b){return{command:v(),args:[r(process.env.LLV_TELEGRAM_BRIDGE,"bin","telegram-login-bridge.py"),a],cwd:h().homedir(),env:{...F(),TELEGRAM_API_ID:b.apiId,TELEGRAM_API_HASH:b.apiHash}}}function F(){let a={};for(let b of["PATH","HOME","LANG","LC_ALL","TMPDIR"])void 0!==process.env[b]&&(a[b]=process.env[b]);return a}},52658:(a,b,c)=>{c.r(b),c.d(b,{SEAT_TICK_WAKE_UNRESOLVED_REF:()=>b$,reconcileSeatTick:()=>cj,runSeatTickCheck:()=>ce,seatTickAttemptExits:()=>ca,seatTickWakeUnresolvedRef:()=>b_,startSeatTick:()=>cl,stopSeatTick:()=>cm,wakeReached:()=>b1});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(14928);c(66212);let i=["starting","running","waiting","stalled","completed","failed","blocked","gone"],j=["stage_started","stage_resumed","stage_paused","stage_completed","stage_failed","stage_blocked","review_verdict","repair_ready","deploy_ready","deploy_succeeded","deploy_failed","delivery_held","delivery_delivered","delivery_expired","agent_stalled","agent_gone","agent_resumed"],k={stage_started:"running",stage_resumed:"running",stage_paused:"waiting",stage_completed:"completed",stage_failed:"failed",stage_blocked:"blocked",review_verdict:"completed",repair_ready:"waiting",deploy_ready:"waiting",deploy_succeeded:"completed",deploy_failed:"failed",delivery_held:"waiting",delivery_delivered:"completed",delivery_expired:"failed",agent_stalled:"stalled",agent_gone:"gone",agent_resumed:"running"},l=new Set(["stage_completed","stage_failed","stage_blocked","review_verdict","deploy_succeeded","deploy_failed","delivery_held","delivery_expired"]);var m=c(43318);let n="monitor-ref:",o="orchestrator-unresolved";function p(a){let b=a.match(/^monitor-ref:\s*([A-Za-z0-9_-]{4,64})\s*$/m);return b?b[1]:null}let q=a=>`seat-tick-stuck-${a}`,r="seat-tick-settings",s=a=>`seat-tick-source-${a}`,t=["lane-event","unmerged-pr","stalled","unstarted-task","interval","child-terminal","own-lane-settled"],u=["registry-unreadable","children-unindexed","migration-blocked","migration-pending","discovery-incomplete","ledger-gap","child-departed","child-unplaced","ledger-pending"];function v(){return{seatEpoch:null,lastCheckAt:null,lastWakeAt:null,lastWakeReasons:[],wakesWithoutChange:{},quietSince:null,idleSince:null,lastProposalAt:null,stalledSeen:[],lastWakeFingerprint:null,eventsThrough:null,outstandingWake:null,retiredWakes:[],releasedWake:null,pullRequestGap:null,childrenGap:null,harvestedChildren:[],childrenShown:[],announcedLanes:[]}}let w=3e5,x=24e5,y=864e5,z=5,A=2,B=2592e5;function C(a,b,c){let d=Number(a?.trim());return Number.isFinite(d)&&d>0?d*c:b}function D(a=process.env){let b=a.LLV_SEAT_TICK_CHECK_MINUTES?.trim();return b&&0===Number(b)?null:{checkIntervalMs:C(b,w,6e4),stallAfterMs:C(a.LLV_SEAT_TICK_STALL_MINUTES,x,6e4),proposalIntervalMs:C(a.LLV_SEAT_TICK_PROPOSAL_HOURS,y,36e5),itemsPerWake:Math.floor(C(a.LLV_SEAT_TICK_ITEMS,z,1)),retryGuard:Math.floor(C(a.LLV_SEAT_TICK_RETRY_GUARD,A,1)),backlogAfterMs:C(a.LLV_SEAT_TICK_BACKLOG_DAYS,B,864e5)}}function E(a){return"terminal"!==a.state}function F(a){return"running"===a.status}function G(a){return"terminal"===a.status}function H(a){return`child:${a.conversationId}`}function I(a){var b;return b=a.type,l.has(b)&&!a.pipelineTerminal}function J(a){if("busy"!==a.turn)return!1;let b=a.activity;return!!b&&("waiting"===b.lifecycle?"busy"===b.turnState:"running"===b.lifecycle||"starting"===b.lifecycle)}function K(a){return"unresolvable"!==a.transcript}function L(a){let b=a.terminalAt?Date.parse(a.terminalAt):NaN;return Number.isFinite(b)?b:a.lastRecordAt?Date.parse(a.lastRecordAt):NaN}function M(a,b){let c=null===b?String(L(a)):b.slice(-32);return`${a.conversationId}@${c}`}let N=["unreadable","stale","unchanged"],O=new Set;function P(a,b){let c=0;for(let d of a.values())d===b&&(c+=1);return c}function Q(a,b,c,d){let e=R(a,b);return e||(d.has(M(a,c))?"unchanged":null)}function R(a,b){let c,d;return K(a)&&Number.isFinite(L(a))?(c=L(a),d=b.designatedAt?Date.parse(b.designatedAt):NaN,Number.isFinite(c)&&Number.isFinite(d)&&(c<d-864e5||"number"==typeof a.harvestedEpoch&&a.harvestedEpoch<b.seatEpoch&&c<d))?"stale":null:"unreadable"}function S(a,b){return b?null===R(a,b):K(a)}function T(a){return a.ownLanes.filter(b=>{let c=b.updatedAt?Date.parse(b.updatedAt):NaN;return Number.isFinite(c)&&a.now-c<a.policy.backlogAfterMs})}function U(a,b,c){if(!a)return!0;let d=Date.parse(a);return!Number.isFinite(d)||b-d>=c}function V(a,b,c){if(!a)return!1;let d=Date.parse(a.since);return Number.isFinite(d)&&b-d>=c}function W(a,b,c){if(!a||!V(a,b,c))return!0;let d=Date.parse(a.lastAttemptAt);return!Number.isFinite(d)||b-d>=c}function X(a,b,c){return a?{...a,gap:b,lastAttemptAt:c,attempts:a.attempts+1}:{gap:b,since:c,lastAttemptAt:c,attempts:1,reported:!1}}let Y="unread";function Z(a,b){if(null===a)return!0;let c=$(a),d=$(b);return c&&d?c.board!==d.board||c.pullRequests!==Y&&d.pullRequests!==Y&&c.pullRequests!==d.pullRequests:a!==b}function $(a){let b=a.indexOf(".");return b<=0||b===a.length-1?null:{board:a.slice(0,b),pullRequests:a.slice(b+1)}}function _(a){switch(a){case"registry-unreadable":return"the registry read failed";case"children-unindexed":return"the registry backend has no indexed lineage projection, so children cannot be paged";case"migration-pending":return"the SQLite accounting has not finished importing the legacy tick state";case"migration-blocked":return"the legacy tick state at state/seat-tick.json cannot be imported and blocks every wake until it is fixed or removed";case"discovery-incomplete":return"an owner's lineage page or the seat file's revocations could not be read to the end";case"ledger-gap":return"a child's event ledger was replaced, torn, malformed or skipped a sequence";case"ledger-pending":return"a child left its running state and its ledger has not been read yet";case"child-departed":return"a tracked child no longer projects under this seat and project";case"child-unplaced":return"a child has no conversation record or an unobserved turn with no host behind it"}}function aa(a,b){let c="pull-requests"===b?a.state.pullRequestGap:a.state.childrenGap;if(!("pull-requests"===b?a.pullRequestsUnavailable:a.childrenUnavailable)||!c||c.reported||!V(c,a.now,a.settings.wakeIntervalMs))return null;let d=`${c.since.slice(0,16).replace("T"," ")} UTC (${c.gap}, ${c.attempts} attempt(s))`;return{card:{ref:s(b),kind:"source-unreadable",instance:c.since,detail:"pull-requests"===b?`The open pull requests of this project's finished lanes have not been readable since ${d}`:`The seat's spawned children have not been fully accountable since ${d}: `+_(c.gap)},gap:{...c,reported:!0}}}function ab(a,b){return{...a,quietSince:a.quietSince??b}}function ac(a,b,c){var d,e,f,g,h,i;let j,k,l=new Date(c).toISOString(),m=Math.max(a.eventsThrough??0,b.eventsThrough);if(b.proposal)return{...a,lastWakeAt:l,lastProposalAt:l,lastWakeReasons:[],lastWakeFingerprint:b.fingerprint,quietSince:null,eventsThrough:m,outstandingWake:null,releasedWake:null};let n=b.reasons,o=!Z(a.lastWakeFingerprint,b.fingerprint),p={};for(let b of t)n.includes(b)&&(p[b]=o?(a.wakesWithoutChange[b]??0)+1:0);return{...a,lastWakeAt:l,lastWakeReasons:n,lastWakeFingerprint:b.fingerprint,wakesWithoutChange:p,quietSince:null,idleSince:null,eventsThrough:m,outstandingWake:null,releasedWake:null,harvestedChildren:(d=a.harvestedChildren,e=b.children,[...new Set([...d.filter(a=>!e.includes(a)),...e])]),childrenShown:(f=a.childrenShown??[],g=b.shownChildren??[],j=a=>a.slice(0,a.lastIndexOf("@")),k=new Set(g.map(j)),[...f.filter(a=>!k.has(j(a))),...g].slice(-64)),announcedLanes:(h=a.announcedLanes??[],i=b.announcedLanes??[],[...new Set([...h.filter(a=>!i.includes(a)),...i])].slice(-64))}}let ad=()=>({offset:0,identity:null,seq:0,activeTurn:null,settledThrough:0,atEnd:!1,initialSize:0,gap:null}),ae=Buffer.from('"turn-'),af=new Set(["completed","interrupted","error"]);function ag(a){let b;try{b=JSON.parse(a.toString("utf8"))}catch{return null}if(!b||"object"!=typeof b||Array.isArray(b))return null;let c=b;return"string"!=typeof c.kind||!Number.isSafeInteger(c.seq)||c.seq<=0?null:{kind:c.kind,seq:c.seq,turnId:c.turnId,status:c.status}}let ah="seat-tick-v3",ai=new Map,aj=a=>{let b=g().statSync(a);return`${b.dev}:${b.ino}`},ak=a=>e().createHash("sha256").update(JSON.stringify(a)).digest("hex"),al=(a,b,c="")=>`${a}/${encodeURIComponent(b)}/${encodeURIComponent(c)}`;function am(a){if(!a||"object"!=typeof a)return null;let b=a=>"string"==typeof a&&a.length>0,c=a=>Number.isSafeInteger(a)&&Number(a)>=0,d=a=>null===a||"string"==typeof a,e=a=>a&&b(a.conversationId)&&"string"==typeof a.title&&["running","terminal","unknown"].includes(a.status)&&(null===a.outcome||["finished","failed"].includes(a.outcome));if(1!==a.schemaVersion||!b(a.key)||"string"!=typeof a.project||"string"!=typeof a.kind||!a.key.startsWith(al(a.kind,a.project)))return null;switch(a.kind){case"project":{let e=a.state;if(!c(a.revision)||!c(a.sequence)||!["ready","pending","unknown"].includes(a.migration)||!e||"object"!=typeof e||!d(a.gap)||null!==e.seatEpoch&&!c(e.seatEpoch))return null;for(let a of["lastCheckAt","lastWakeAt","quietSince","idleSince","lastProposalAt"]){let b=e[a];if(null!==b&&("string"!=typeof b||!Number.isFinite(Date.parse(b))))return null}if(null!==e.eventsThrough&&!c(e.eventsThrough)||!Array.isArray(e.harvestedChildren)||0!==e.harvestedChildren.length||!Array.isArray(e.lastWakeReasons)||!Array.isArray(e.stalledSeen)||!e.wakesWithoutChange||"object"!=typeof e.wakesWithoutChange||void 0!==e.childrenShown&&(!Array.isArray(e.childrenShown)||!e.childrenShown.every(b))||void 0!==e.announcedLanes&&(!Array.isArray(e.announcedLanes)||!e.announcedLanes.every(b)))return null;let f=a=>!!a&&!!b(a.clientMessageId)&&!!b(a.conversationId)&&!!c(a.seatEpoch)&&!!d(a.operationId)&&!!a.commit&&"boolean"==typeof a.commit.proposal&&!!b(a.commit.fingerprint)&&!!c(a.commit.eventsThrough)&&!!Array.isArray(a.commit.reasons)&&!!Array.isArray(a.commit.children)&&!!a.commit.children.every(b)&&(void 0===a.commit.shownChildren||!!Array.isArray(a.commit.shownChildren)&&!!a.commit.shownChildren.every(b))&&(void 0===a.commit.announcedLanes||!!Array.isArray(a.commit.announcedLanes)&&!!a.commit.announcedLanes.every(b))&&(void 0===a.preparedAt||!!b(a.preparedAt))&&(void 0===a.dispatch||!!a.dispatch&&b(a.dispatch.token)&&["active","refused","returned"].includes(a.dispatch.state)),g=e.outstandingWake;if(null!==g&&!f(g)||void 0!==a.ownerScan&&(!a.ownerScan||!b(a.ownerScan.identity)||"boolean"!=typeof a.ownerScan.gap))return null;let h=e.retiredWakes;if(void 0===h)return{...a,state:{...e,retiredWakes:[]}};if(!Array.isArray(h))return null;let i=[];for(let a of h){if(!a||"object"!=typeof a||!f(a.wake)||!b(a.retiredAt))return null;let d=a.reason??"seat-superseded";if("seat-superseded"!==d&&"unresolved-age"!==d)return null;let e=a.supersededBy??null;if("seat-superseded"===d&&(!e||!b(e.conversationId)||!c(e.seatEpoch))||"unresolved-age"===d&&null!==e)return null;i.push({...a,supersededBy:e,reason:d})}return{...a,state:{...e,retiredWakes:i}}}case"owner":{if(!b(a.conversationId)||!c(a.epoch))return null;if("string"==typeof a.after&&void 0===a.pollKey)return{...a,after:null,pollKey:""};let d=a=>null===a||!!a&&"object"==typeof a&&Number.isSafeInteger(a.order)&&b(a.key);return"string"==typeof a.pollKey&&d(a.after)&&(void 0===a.bootstrap||a.bootstrap&&d(a.bootstrap.after))?a:null}case"child":return b(a.identity)&&b(a.rowKey)&&b(a.owner)&&b(a.launchId)&&e(a.input)&&c(a.generationIndex)&&d(a.runningKey)&&(void 0===a.pollKey||d(a.pollKey))&&(void 0===a.harvestedEpoch||c(a.harvestedEpoch))?{...a,pollKey:a.pollKey??null}:null;case"source":return b(a.identity)&&b(a.child)&&b(a.engine)&&b(a.generation)&&a.cursor&&c(a.cursor.offset)&&c(a.cursor.seq)&&c(a.cursor.settledThrough)&&c(a.cursor.initialSize)&&d(a.cursor.identity)&&d(a.cursor.activeTurn)&&d(a.cursor.gap)&&"boolean"==typeof a.cursor.atEnd?a:null;case"outcome":return Array.isArray(a.tuple)&&[2,3].includes(a.tuple.length)&&a.tuple.every(b)&&a.identity===ak(a.tuple)&&a.key===al("outcome",a.project,a.identity)&&e(a.input)&&a.input.outcomeId===a.identity&&"terminal"===a.input.status&&["owed","acknowledged"].includes(a.status)&&b(a.child)&&b(a.readyKey)?a:null;case"poll":case"ready":case"owner-poll":case"running":return b(a.target)?a:null;case"legacy":return b(a.conversationId)&&"boolean"==typeof a.reconciled?a:null;default:return null}}function an(a,b){let c;try{c=g().openSync(a,g().constants.O_RDONLY|g().constants.O_NOFOLLOW);let d=g().fstatSync(c);if(!d.isFile())return{kind:"gap",gap:"not-a-file"};if(d.size>b)return{kind:"gap",gap:"oversized"};let e=Buffer.allocUnsafe(d.size),f=0;for(;f<d.size;){let a=g().readSync(c,e,f,d.size-f,f);if(!a)break;f+=a}try{return{kind:"parsed",value:JSON.parse(e.subarray(0,f).toString("utf8"))}}catch{return{kind:"gap",gap:"malformed"}}}catch(a){return"ENOENT"===a.code?{kind:"absent"}:{kind:"gap",gap:"unreadable"}}finally{void 0!==c&&g().closeSync(c)}}class ao{constructor(a,b){this.filename=a,this.project=b;const c=ai.get(a);if(c){if(aj(a)!==c.identity)throw Error("seat accounting database was replaced");this.collection=c.collection;return}(0,h.t0)(a,[{collection:ah,schemaVersion:1,migrationId:"monitor-v3",key:a=>a.key,loadRecords:()=>[]}]),this.collection=new h.UY(a,{collection:ah,schemaVersion:1,busyMessage:"seat outcome accounting is busy",key:a=>a.key,decode:am,clone:structuredClone,strictDecode:!0}),ai.set(a,{identity:aj(a),collection:this.collection})}base(a,b=""){return{key:al(a,this.project,b),project:this.project,schemaVersion:1}}get(a){return this.collection.get(a)}row(){let a=this.get(al("project",this.project));if(a&&"project"!==a.kind)throw Error("invalid project accounting row");return a}page(a,b){let c=al(a,this.project);return this.collection.keyRange(c,`${c}~`,b)}pollPage(a){let b=this.collection.keyRange(`${al("poll",this.project)}0`,`${al("poll",this.project)}~`,8),c=this.page("poll",a),d=new Set(b.map(a=>a.key));return[...b,...c.filter(a=>!d.has(a.key))].slice(0,a)}ticket(a,b,c,d,e="tail"){if(!Number.isSafeInteger(++b.sequence))throw Error("accounting sequence exhausted");let f={...this.base(c,`${"head"===e?"!":""}${String(b.sequence).padStart(16,"0")}`),kind:c,target:d};return a.put(f),f.key}atHead(a,b){return a.startsWith(al(b,this.project,"!"))}trackRunning(a,b,c){"running"===c.input.status?c.runningKey||(c.runningKey=this.ticket(a,b,"running",c.key)):c.runningKey&&(a.delete(c.runningKey),c.runningKey=null)}mutate(a){return this.collection.boundedPatch(4096,b=>{let c=b.get(al("project",this.project));if(!c||"project"!==c.kind)throw Error("accounting migration has not completed");let d=a(b,c);return c.revision++,b.put(c),d})}initialize(a,b){this.collection.boundedPatch(4096,c=>{if(!c.get(al("project",this.project))){for(let b of a.harvestedChildren)c.put({...this.base("legacy",b),kind:"legacy",conversationId:b,reconciled:!1});c.put({...this.base("project"),kind:"project",revision:0,sequence:0,state:{...a,harvestedChildren:[]},migration:b?"unknown":"ready",gap:b})}})}migrateLegacy(a,b){if(this.row()?.migration==="ready")return;this.row()||this.collection.boundedPatch(2,a=>{a.get(al("project",this.project))||a.put({...this.base("project"),kind:"project",revision:0,sequence:0,state:v(),migration:"pending",gap:null})});let c=this.row(),d=an(a,4194304),e=null,f=v(),g=[];if("gap"===d.kind)e="malformed"===d.gap?"legacy-json-malformed":"oversized"===d.gap?"legacy-state-oversized":"legacy-state-unreadable";else if("parsed"===d.kind){let a=d.value,c=a&&"object"==typeof a&&!Array.isArray(a)?a.projects:void 0;if(!c||"object"!=typeof c||Array.isArray(c))e="legacy-projects-unreadable";else{let d="number"==typeof a.version?a.version:null,h=c[this.project];if(void 0!==h){let a=h&&"object"==typeof h&&!Array.isArray(h)?h:{};f=b(a,d);let c=a.harvestedChildren;if(void 0!==c)if(Array.isArray(c))for(let a of c){if("string"!=typeof a||!a||a.length>200){e="legacy-acknowledgments-unreadable";break}g.push(a)}else e="legacy-acknowledgments-unreadable";Object.hasOwn(a,"outstandingWake")&&null!==a.outstandingWake&&!f.outstandingWake&&(e="legacy-outstanding-unreadable")}}}let h=e?[]:[...new Set(g)];for(let a=0;a<h.length;a+=1e3){let b=h.slice(a,a+1e3);this.collection.boundedPatch(1002,a=>{let d=a.get(c.key);if(d&&"project"===d.kind&&d.revision===c.revision)for(let c of b)a.put({...this.base("legacy",c),kind:"legacy",conversationId:c,reconciled:!1})})}this.collection.boundedPatch(2,a=>{let b=a.get(c.key);if(!b||"project"!==b.kind||b.revision!==c.revision)return;let d=e?"unknown":"ready";b.migration===d&&b.gap===e&&e||a.put({...b,revision:b.revision+1,state:e?b.state:{...f,harvestedChildren:[]},migration:d,gap:e})})}readState(){let a=this.row();if(!a)throw Error("missing project accounting");return{...a.state,accounting:{filename:this.filename,revision:a.revision,gap:"ready"===a.migration?a.gap:a.gap??"legacy-migration-pending"}}}writeState(a){this.mutate((b,c)=>{if(a.accounting?.revision!==c.revision)throw Error("stale seat tick state");c.state={...a,accounting:void 0,harvestedChildren:[]}})}owner(a,b){let c=al("owner",this.project,String(b)),d=this.get(c);if(d?.kind==="owner"&&d.conversationId===a&&d.pollKey)return d;this.mutate((d,e)=>{let f=d.get(c);if(f){if("owner"!==f.kind||f.conversationId!==a)throw Error("contradictory seat ownership");f.pollKey||d.put({...f,pollKey:this.ticket(d,e,"owner-poll",c)});return}let g={...this.base("owner",String(b)),kind:"owner",conversationId:a,epoch:b,after:null,pollKey:""};g.pollKey=this.ticket(d,e,"owner-poll",c),d.put(g)});let e=this.get(c);if(!e||"owner"!==e.kind)throw Error("missing owner provenance");return e}discoverRevokedOwners(a,b){let c,d=this.row();try{let b=g().statSync(a);c=`${b.dev}:${b.ino}:${b.size}:${b.mtimeMs}`}catch(a){return"ENOENT"!==a.code}if(d.ownerScan?.identity===c)return d.ownerScan.gap;let e=an(a,0x1000000);if("absent"===e.kind)return!1;let f="gap"===e.kind,h=[];if("parsed"===e.kind){let a=e.value,c=a&&"object"==typeof a&&!Array.isArray(a)&&1===a.schemaVersion&&Array.isArray(a.revocations)?a.revocations:null;if(c)for(let a of c){let c=a??{};"string"==typeof c.project&&b(c.project)&&"string"==typeof c.conversationId&&c.conversationId.startsWith("conversation_")&&Number.isSafeInteger(c.seatEpoch)&&Number(c.seatEpoch)>=1&&"string"==typeof c.revokedAt&&Number.isFinite(Date.parse(c.revokedAt))&&h.push({conversationId:c.conversationId,epoch:Number(c.seatEpoch)})}else f=!0}let i=h.slice(0,200),j=h.length>i.length,k=!1;return this.mutate((a,b)=>{if(b.revision!==d.revision){k=!0;return}for(let c of i){let d=al("owner",this.project,String(c.epoch)),e=a.get(d);if(e){if("owner"!==e.kind||e.conversationId!==c.conversationId)throw Error("contradictory predecessor ownership");continue}let f={...this.base("owner",String(c.epoch)),kind:"owner",conversationId:c.conversationId,epoch:c.epoch,after:null,pollKey:""};f.pollKey=this.ticket(a,b,"owner-poll",d),a.put(f)}j||(b.ownerScan={identity:c,gap:f})}),f||j||k}discovery(a,b){this.mutate((c,d)=>{if(c.get(a.pollKey)){for(let{child:a,position:e}of b){let b=c.get(a.key);if(b){if("child"!==b.kind)throw Error("invalid child provenance");b.pollKey||c.put({...b,pollKey:this.ticket(c,d,"poll",a.key,e)});continue}a.pollKey=this.ticket(c,d,"poll",a.key,e),this.trackRunning(c,d,a),c.put(a)}c.delete(a.pollKey),c.put({...a,pollKey:this.ticket(c,d,"owner-poll",a.key)})}})}adoptPoll(a,b){return a.pollKey?a:(this.mutate(c=>{let d=c.get(a.key),e=c.get(b);d?.kind!=="child"||d.pollKey||e?.kind!=="poll"||e.target!==a.key||c.put({...d,pollKey:b})}),this.get(a.key))}child(a,b,c,d){let e=ak([b,a,c]);return{...this.base("child",e),kind:"child",identity:e,rowKey:a,owner:b,launchId:c,input:d,generationIndex:0,runningKey:null,pollKey:null}}source(a,b,c){let d=ak([b,c]),e=this.get(al("source",this.project,d));if(e){if("source"!==e.kind||e.child!==a.key||e.engine!==b||e.generation!==c)throw Error("source identity collision");return e}return{...this.base("source",d),kind:"source",identity:d,child:a.key,engine:b,generation:c,cursor:ad()}}ingest(a,b,c,d=!1,e="tail"){this.mutate((f,g)=>{a.pollKey&&f.get(a.pollKey)&&(b?.cursor.identity&&b.legacyBoundary?.identity!==b.cursor.identity&&(b.legacyBoundary={identity:b.cursor.identity,bytes:b.cursor.initialSize}),(d?[[a.launchId,"pre-execution-failure"]]:c.map(a=>[b.engine,b.generation,a.turnId])).forEach((e,h)=>{let i=ak(e),j=al("outcome",this.project,i),k=d||"completed"!==c[h].status?"failed":"finished",l=f.get(j);if(l){if("outcome"!==l.kind||JSON.stringify(l.tuple)!==JSON.stringify(e))throw Error("outcome identity collision");l.input.outcome!==k&&f.put({...l,gap:"conflicting-terminal"});return}let m=f.get(al("legacy",this.project,a.input.conversationId)),n={...a.input,status:"terminal",outcome:k,outcomeId:i},o=al("ready",this.project,String(g.sequence+1).padStart(16,"0"));this.ticket(f,g,"ready",j),f.put({...this.base("outcome",i),kind:"outcome",identity:i,child:a.key,tuple:e,input:n,status:"owed",landingKey:null,readyKey:o,gap:m&&(d||!b?.legacyBoundary||c[h].endOffset<=b.legacyBoundary.bytes)?"legacy-delivery-ambiguous":null})}),b&&f.put(b),this.trackRunning(f,g,a),f.delete(a.pollKey),a.pollKey=this.ticket(f,g,"poll",a.key,e),f.put(a))})}promote(a){!a.pollKey||this.atHead(a.pollKey,"poll")||this.mutate((b,c)=>{b.get(a.pollKey)&&(b.delete(a.pollKey),a.pollKey=this.ticket(b,c,"poll",a.key,"head"),b.put(a))})}rotateCold(a){a.length&&this.mutate((b,c)=>{for(let d of a){let a=b.get(d.key);a?.kind==="child"&&d.pollKey&&a.pollKey===d.pollKey&&b.get(d.pollKey)&&(b.delete(d.pollKey),b.put({...a,pollKey:this.ticket(b,c,"poll",d.key)}))}})}drop(a){this.mutate(b=>{b.get(a.key)&&b.delete(a.key)})}rotateRunning(a){0!==a.length&&this.mutate((b,c)=>{for(let d of a){if("running"!==d.kind||!b.get(d.key))continue;b.delete(d.key);let a=b.get(d.target);a&&"child"===a.kind&&a.runningKey===d.key&&(a.runningKey="running"===a.input.status?this.ticket(b,c,"running",a.key):null,b.put(a))}})}ready(a){return this.page("ready",a).flatMap(a=>{if("ready"!==a.kind)throw Error("invalid ready ticket");let b=this.get(a.target);if(!b||"outcome"!==b.kind)throw Error("missing outcome");return"owed"===b.status&&b.gap&&this.defer(b),"owed"!==b.status||b.gap?[]:[b]})}defer(a){this.mutate((b,c)=>{let d=b.get(a.key);d&&"outcome"===d.kind&&"owed"===d.status&&d.readyKey===a.readyKey&&(b.delete(d.readyKey),d.readyKey=al("ready",this.project,String(c.sequence+1).padStart(16,"0")),this.ticket(b,c,"ready",d.key),b.put(d))})}prepare(a,b){return this.collection.boundedPatch(4096,c=>{let d=c.get(al("project",this.project));if(!d||"project"!==d.kind)throw Error("accounting migration has not completed");if(d.revision!==a.accounting?.revision||d.state.outstandingWake||"ready"!==d.migration)return!1;for(let a of b.commit.children){let b=c.get(al("outcome",this.project,a));if(!b||"outcome"!==b.kind||"owed"!==b.status||b.gap)return!1}return d.state={...a,accounting:void 0,harvestedChildren:[],outstandingWake:b},d.revision++,c.put(d),!0})}beginDispatch(a){return this.mutate((b,c)=>{let d=c.state.outstandingWake;if(!d||d.clientMessageId!==a.clientMessageId||d.dispatch&&"refused"!==d.dispatch.state||d.dispatch?.token!==a.dispatch?.token)return null;let f=e().randomUUID();return c.state.outstandingWake={...d,dispatch:{token:f,state:"active"}},f})}returnedDispatch(a,b,c){this.mutate((d,e)=>{let f=e.state.outstandingWake;if(f?.clientMessageId===a&&f.dispatch?.token===b&&"active"===f.dispatch.state){e.state.outstandingWake={...f,dispatch:{token:b,state:c?"refused":"returned"}};return}let g=e.state.retiredWakes??[],h=g.findIndex(c=>c.wake.clientMessageId===a&&c.wake.dispatch?.token===b&&"active"===c.wake.dispatch.state);if(h<0)return;let i=[...g];i[h]={...i[h],wake:{...i[h].wake,dispatch:{token:b,state:c?"refused":"returned"}}},e.state={...e.state,retiredWakes:i}})}cancelUndispatched(a){return this.mutate((b,c)=>{let d=c.state.outstandingWake;return!!d&&d.clientMessageId===a.clientMessageId&&!d.dispatch&&(c.state.outstandingWake=null,!0)})}settleAbsent(a){return this.mutate((b,c)=>{let d=c.state.outstandingWake;return!!d&&d.clientMessageId===a.clientMessageId&&!d.operationId&&!!d.text&&d.dispatch?.state==="refused"&&d.dispatch.token===a.dispatch?.token&&(c.state.outstandingWake=null,!0)})}retire(a,b,c,d){return this.mutate((e,f)=>{let g=f.state.outstandingWake;if(!g||g.clientMessageId!==a.clientMessageId)return{retired:!1,evicted:null};let h=f.state.retiredWakes??[],i=null;if(h.length>=20){let a=h.findIndex(a=>{if(a.wake.dispatch?.state==="active")return!1;let b=Date.parse(a.wake.preparedAt??a.retiredAt);return Number.isFinite(b)&&void 0!==d&&b<=d});if(a<0)return{retired:!1,evicted:null};i=h[a].wake.clientMessageId,h=[...h.slice(0,a),...h.slice(a+1)]}return f.state={...f.state,outstandingWake:null,retiredWakes:[...h,{wake:g,retiredAt:b,supersededBy:c.supersededBy,reason:c.reason}],releasedWake:{clientMessageId:g.clientMessageId,releasedAt:b}},{retired:!0,evicted:i}})}settleRetired(a){return this.mutate((b,c)=>{let d=c.state.retiredWakes??[],e=d.filter(b=>b.wake.clientMessageId!==a);return e.length!==d.length&&(c.state={...c.state,retiredWakes:e},!0)})}settle(a,b,c){return this.mutate((d,e)=>{let f=e.state.outstandingWake;if(!f||f.clientMessageId!==a||"unsent"===c&&f.dispatch?.state==="active")return!1;if("landed"===c)for(let b of f.commit.children){let c=d.get(al("outcome",this.project,b));if(!c){if(!b.startsWith("conversation_"))throw Error("missing frozen outcome");d.put({...this.base("legacy",b),kind:"legacy",conversationId:b,reconciled:!0});continue}if("outcome"!==c.kind)throw Error("invalid frozen outcome");d.put({...c,status:"acknowledged",landingKey:a}),d.delete(c.readyKey);let e=d.get(c.child);e?.kind==="child"&&(e.harvestedEpoch??-1)<f.seatEpoch&&d.put({...e,harvestedEpoch:f.seatEpoch})}let g="landed"===c?ac(e.state,f.commit,Date.parse(b.lastWakeAt)):e.state;return e.state={...g,accounting:void 0,harvestedChildren:[],outstandingWake:null,releasedWake:"landed"===c?null:b.releasedWake??null},!0})}}var ap=c(27146),aq=c(67434),ar=c(29307),as=c(75040),at=c(23509),au=c(10988),av=c(31421);let aw=(0,c(57975).promisify)(av.execFile);function ax(a,b){return async c=>{let{stdout:d}=await aw("gh",c,{cwd:a,timeout:b,maxBuffer:4194304});return d}}async function ay(a){let b,c=a.run??ax(a.cwd,a.timeoutMs??2e4);try{b=await c(["pr","list","--state","open","--limit",String(a.limit??60),"--json","number,title,headRefName,updatedAt"])}catch(a){return{ok:!1,unavailable:a?.killed===!0||a?.code==="ETIMEDOUT"||a?.name==="TimeoutError"?"timed-out":"command-failed"}}let d=function(a){let b;try{b=JSON.parse(a)}catch{return null}if(!Array.isArray(b))return null;let c=[];for(let a of b){if(!a||"object"!=typeof a||Array.isArray(a)||"number"!=typeof a.number||!Number.isSafeInteger(a.number)||"string"!=typeof a.headRefName||!a.headRefName)return null;c.push({number:a.number,title:"string"==typeof a.title?a.title.slice(0,200):"",headRefName:a.headRefName,updatedAt:"string"==typeof a.updatedAt?a.updatedAt:null})}return c}(b);return d?{ok:!0,pullRequests:d}:{ok:!1,unavailable:"malformed-output"}}async function az(a){let b=a.run??ax(a.cwd,a.timeoutMs??2e4);try{let d;var c=await b(["issue","list","--state","open","--limit",String(a.limit??40),"--json","number,title,labels,updatedAt"]);try{d=JSON.parse(c)}catch{return[]}if(!Array.isArray(d))return[];let e=[];for(let a of d)!(!a||"object"!=typeof a||Array.isArray(a))&&"number"==typeof a.number&&Number.isSafeInteger(a.number)&&e.push({number:a.number,title:"string"==typeof a.title?a.title.slice(0,200):"",labels:(Array.isArray(a.labels)?a.labels:[]).flatMap(a=>{let b=a?.name;return"string"==typeof b?[b.slice(0,60)]:[]}),updatedAt:"string"==typeof a.updatedAt?a.updatedAt:null});return e}catch{return[]}}var aA=c(76760),aB=c.n(aA),aC=c(89204);function aD(a,b=process.env.LLV_SEAT_TICK_AUDIT_FILE?.trim()||(0,ap.BQ)(aB().join("seat-tick","runs.ndjson"))){var c;c={filePath:b,retention:500,busyMessage:"the seat tick journal is busy"},g().mkdirSync(aB().dirname(c.filePath),{recursive:!0,mode:448}),(0,aC.Ol)(c.filePath,c.busyMessage,()=>{g().appendFileSync(c.filePath,`${JSON.stringify(a)}
|
|
2
|
+
`,{encoding:"utf8",mode:384}),function(a,b){let c;try{c=g().readFileSync(a,"utf8").split("\n").filter(a=>a.trim())}catch{return}if(c.length<=b)return;let d=`${a}.${process.pid}.${e().randomUUID()}.tmp`;g().writeFileSync(d,`${c.slice(-b).join("\n")}
|
|
3
|
+
`,{encoding:"utf8",mode:384}),g().renameSync(d,a)}(c.filePath,c.retention)})}function aE(a,b){let c=`
|
|
4
|
+
${(0,m.l)(b.join("\n")).trimEnd()}`,d=Math.max(4e3-c.length,1e3),e=(0,m.l)(a.join("\n")).trimStart();return e.length<=d?`${e}${c}`:`${e.slice(0,d-1).trimEnd()}…${c}`}c(40898);let aF=["Handle the listed items first, then make ONE bounded pass over this project's whole board and act on what stands still: list_pipelines for lanes completed, parked or failed to spawn, the open pull requests their finished lanes left, list_flows, agent_activity with liveOnly for live and stalled agents, and open tasks with nothing running.","Record every outcome where it belongs — on the board card or on the pipeline — not only in this conversation.","If an item cannot be done, mark its task blocked with the reason. That is the stop, and it is the only one.","Do not schedule yourself. The Viewer ticks this seat; a self-scheduled monitor is refused practice.","This tick is yours to govern: seat_tick_settings turns it off, changes how often it wakes you, or turns it back on, per project, with a reason that shows on the board.","Do not wait on the operator inside this turn."];function aG(a){return`- [${a.kind}] ${a.id} — ${a.label}`}function aH(a){var b;return a?["","Standing monitor note for this project, in the seat's own words (seat_tick_settings sets, replaces and clears it). It shapes what you look at; the contract below still governs what you do:",(b=a).length<=1e3?b:`${b.slice(0,1e3).trimEnd()}… [preview, ${b.length} chars; seat_tick_settings returns the full note]`]:[]}function aI(a){return Math.max(36e5,Number.isFinite(a)&&a>0?2*a:0)}function aJ(a,b){let c=a?Date.parse(a):NaN;return Number.isFinite(c)?new Date(c+aI(b)).toISOString():null}function aK(a,b,c){let d=a?Date.parse(a):NaN;return!Number.isFinite(d)||b-d<aI(c)}function aL(a,b,c,d,e=!1){return{clientMessageId:b.clientMessageId,conversationId:b.conversationId,seatEpoch:b.seatEpoch,slot:a,since:c,lapsesAt:aJ(c,d),keptPastBound:e}}function aM(a,b,c,d){let e=[],f=a.outstandingWake;for(let c of(f&&e.push(aL("outstanding",f,f.preparedAt??null,d)),a.retiredWakes??[]))b?.conversationId&&c.wake.conversationId===b.conversationId&&e.push(aL("retired",c.wake,c.wake.preparedAt??c.retiredAt,d));let g=e.filter(a=>aK(a.since,c,d));return g.length?g.reduce((a,b)=>a.lapsesAt?b.lapsesAt?b.lapsesAt>a.lapsesAt?b:a:b:a):null}let aN=new Set(["retained","landed","dropped"]);function aO(a){return a?`${a.slice(0,16).replace("T"," ")} UTC`:"an instant the row does not record"}function aP(a){let b=`this tick is fenced by the wake prepared ${aO(a.since)} under key ${a.clientMessageId}, which is unresolved: no replacement wake is sent for this project until it settles`;return a.keptPastBound?`${b}, and its age bound was spent ${a.lapsesAt?`at ${aO(a.lapsesAt)}`:"before now"}: the next check retires it unresolved and may wake this project, unless the layer holding it reports by then that it still has the payload, or a transport call of its own has not returned`:`${b}, and the fence lapses ${a.lapsesAt?`at ${aO(a.lapsesAt)}`:"once a check has an instant to measure its age from"}, after which the attempt is retired unresolved and the next check may wake`}var aQ=c(44405);function aR(){return process.env.LLV_SEAT_TICK_SETTINGS_FILE?.trim()||(0,ap.BQ)("seat-tick-settings.json")}function aS(a){return{project:a,enabled:!0,wakeIntervalMinutes:null,reason:null,monitorPrompt:null,until:null,updatedAt:null,setBy:null}}function aT(a){return a.enabled&&null===a.wakeIntervalMinutes}function aU(a){return"string"==typeof a&&Number.isFinite(Date.parse(a))?a:null}function aV(a){try{let b=JSON.parse(g().readFileSync(a,"utf8"));if(!b||"object"!=typeof b||Array.isArray(b))return{version:1,projects:{}};let c=b.projects??{};return{version:1,projects:Object.fromEntries(Object.entries(c).map(([a,b])=>{var c,d,e;let f;return[a,(c=a,d=b,f=aS(c),!d||"object"!=typeof d||Array.isArray(d)?f:{project:c,enabled:!1!==d.enabled,wakeIntervalMinutes:"number"!=typeof(e=d.wakeIntervalMinutes)||!Number.isFinite(e)||e<=0?null:Math.min(525600,e),reason:"string"==typeof d.reason&&d.reason.trim()?d.reason.slice(0,500):null,monitorPrompt:"string"==typeof d.monitorPrompt&&d.monitorPrompt.trim()?d.monitorPrompt.slice(0,16e3):null,until:aU(d.until),updatedAt:aU(d.updatedAt),setBy:function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=a.kind;return"manager"!==b&&"agent"!==b&&"gateway"!==b&&"unidentified"!==b?null:{kind:b,conversationId:"string"==typeof a.conversationId&&a.conversationId?a.conversationId.slice(0,200):null,project:"string"==typeof a.project&&a.project?a.project.slice(0,200):null,seatEpoch:"number"==typeof a.seatEpoch&&Number.isSafeInteger(a.seatEpoch)?a.seatEpoch:null}}(d.setBy)})]}))}}catch{return{version:1,projects:{}}}}function aW(a,b,c){let d=a.until?Date.parse(a.until):NaN,e=Number.isFinite(d)&&d<=b&&!aT(a),f=null!==a.updatedAt;return e||aT(a)?{enabled:!0,wakeIntervalMs:c,reason:null,monitorPrompt:a.monitorPrompt,until:null,updatedAt:a.updatedAt,isDefault:!0,configured:f,lapsed:e,setBy:e?a.setBy:null}:{enabled:a.enabled,wakeIntervalMs:null===a.wakeIntervalMinutes?c:Math.round(6e4*a.wakeIntervalMinutes),reason:a.reason,monitorPrompt:a.monitorPrompt,until:a.until,updatedAt:a.updatedAt,isDefault:!1,configured:f,lapsed:!1,setBy:a.setBy}}function aX(){return process.env.LLV_SEAT_TICK_STATE_FILE?.trim()||(0,ap.BQ)("seat-tick.json")}function aY(a){return"string"==typeof a&&Number.isFinite(Date.parse(a))?a:null}function aZ(a){return(Array.isArray(a)?a:[]).filter(a=>"string"==typeof a&&a.length>0&&a.length<=200)}function a$(a){var b;if(!a||"object"!=typeof a||Array.isArray(a))return null;let c="string"==typeof a.clientMessageId?a.clientMessageId:"",d="string"==typeof a.conversationId?a.conversationId:"",e=a.seatEpoch,f=!(b=a.commit)||"object"!=typeof b||Array.isArray(b)?null:"string"==typeof b.fingerprint&&b.fingerprint&&"number"==typeof b.eventsThrough&&Number.isInteger(b.eventsThrough)&&!(b.eventsThrough<0)?{proposal:!0===b.proposal,reasons:(Array.isArray(b.reasons)?b.reasons:[]).filter(a=>t.includes(a)),fingerprint:b.fingerprint.slice(0,200),eventsThrough:b.eventsThrough,children:aZ(b.children),shownChildren:aZ(b.shownChildren),announcedLanes:aZ(b.announcedLanes)}:null;return c&&d&&f&&"number"==typeof e&&Number.isSafeInteger(e)?{clientMessageId:c,conversationId:d,seatEpoch:e,operationId:"string"==typeof a.operationId&&a.operationId?a.operationId:null,commit:f,..."string"==typeof a.text?{text:a.text}:{},...aY(a.preparedAt)?{preparedAt:a.preparedAt}:{}}:null}let a_=["timed-out","command-failed","malformed-output","lanes-unreadable"];function a0(a,b){return a.seatEpoch===b?a:{...v(),seatEpoch:b,eventsThrough:a.eventsThrough,lastWakeAt:a.lastWakeAt,lastProposalAt:a.lastProposalAt,outstandingWake:a.outstandingWake,retiredWakes:a.retiredWakes??[],releasedWake:a.releasedWake??null,pullRequestGap:a.pullRequestGap,childrenGap:a.childrenGap,harvestedChildren:a.harvestedChildren,accounting:a.accounting}}function a1(a,b){let c=new ao(b===aX()?aB().join(aB().dirname(b),"state.sqlite"):`${b}.sqlite`,a);return c.migrateLegacy(b,(a,b)=>(function(a,b){var c;let d,e=v();if(!a||"object"!=typeof a||Array.isArray(a))return e;let f={},g=a.wakesWithoutChange??{};for(let a of t){let b=g[a];"number"==typeof b&&Number.isInteger(b)&&b>=0&&(f[a]=b)}return{seatEpoch:"number"==typeof a.seatEpoch&&Number.isSafeInteger(a.seatEpoch)?a.seatEpoch:null,lastCheckAt:aY(a.lastCheckAt),lastWakeAt:aY(a.lastWakeAt),lastWakeReasons:(Array.isArray(a.lastWakeReasons)?a.lastWakeReasons:[]).filter(a=>t.includes(a)),wakesWithoutChange:f,quietSince:aY(a.quietSince),idleSince:aY(a.idleSince),lastProposalAt:aY(a.lastProposalAt),stalledSeen:(Array.isArray(a.stalledSeen)?a.stalledSeen:[]).filter(a=>"string"==typeof a&&a.length>0&&a.length<=100).slice(0,200),lastWakeFingerprint:"string"==typeof a.lastWakeFingerprint?a.lastWakeFingerprint.slice(0,200):null,eventsThrough:"number"!=typeof(d=a.eventsThrough)||!Number.isInteger(d)||d<0||b&&0===d&&!aY(a.lastWakeAt)?null:d,outstandingWake:a$(a.outstandingWake),retiredWakes:(Array.isArray(c=a.retiredWakes)?c:[]).flatMap(a=>{if(!a||"object"!=typeof a||Array.isArray(a))return[];let b=a$(a.wake),c=aY(a.retiredAt);if(!b||!c)return[];let d=void 0===a.reason?"seat-superseded":a.reason;if("seat-superseded"!==d&&"unresolved-age"!==d)return[];if("unresolved-age"===d)return a.supersededBy?[]:[{wake:b,retiredAt:c,supersededBy:null,reason:d}];let e=a.supersededBy;if(!e||"object"!=typeof e)return[];let f="string"==typeof e.conversationId?e.conversationId:"",g=e.seatEpoch;return f&&"number"==typeof g&&Number.isSafeInteger(g)?[{wake:b,retiredAt:c,supersededBy:{conversationId:f,seatEpoch:g},reason:d}]:[]}).slice(0,20),releasedWake:function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b="string"==typeof a.clientMessageId&&a.clientMessageId.length>0&&a.clientMessageId.length<=1e3?a.clientMessageId:null,c=aY(a.releasedAt);return b&&c?{clientMessageId:b,releasedAt:c}:null}(a.releasedWake),pullRequestGap:function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=a_.find(b=>b===a.gap),c=aY(a.since),d=aY(a.lastAttemptAt),e=a.attempts;return b&&c&&d&&"number"==typeof e&&Number.isInteger(e)&&!(e<1)?{gap:b,since:c,lastAttemptAt:d,attempts:e,reported:!0===a.reported}:null}(a.pullRequestGap),childrenGap:null,harvestedChildren:aZ(a.harvestedChildren),childrenShown:aZ(a.childrenShown).slice(-64),announcedLanes:aZ(a.announcedLanes).slice(-64)}})(a,2!==b)),c}function a2(a,b=aX()){return a1(a,b).readState()}function a3(a,b,c=aX()){let d=a1(a,c);d.writeState(b.accounting?b:{...b,accounting:d.readState().accounting})}var a4=c(70160),a5=c(88623);class a6 extends Error{constructor(a,b){super(`the lifecycle journal at ${a} is unreadable (${b}); move it aside to start a new one`),this.name="LifecycleJournalCorruptError",this.journalPath=a}}function a7(){let a,b,c=(0,ap.BQ)("lifecycle-journal.json");try{a=g().readFileSync(c,"utf8")}catch(a){if("ENOENT"===a.code)return{version:1,lastSeq:0,events:[],retired:[]};throw new a6(c,`it could not be read: ${a.message}`)}try{b=JSON.parse(a)}catch{throw new a6(c,"it is not valid JSON — the last write was truncated")}return function(a,b){if(!a||"object"!=typeof a||Array.isArray(a))throw new a6(b,"its contents are not a journal object");if(void 0!==a.events&&!Array.isArray(a.events))throw new a6(b,"its events field is not an array");let c=a.events??[],d=[];for(let[a,e]of c.entries()){let f=function(a){var b,c;if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.id||!a.id||!Number.isInteger(a.seq)||a.seq<1||"string"!=typeof a.at||!a.at||!("string"==typeof(b=a.type)&&j.includes(b)))return null;let d="string"==typeof(c=a.state)&&i.includes(c)?a.state:k[a.type],e=a=>"string"==typeof a?a:null;return{id:a.id,seq:a.seq,at:a.at,type:a.type,state:d,project:e(a.project),pipelineId:e(a.pipelineId),stageId:e(a.stageId),attempt:Number.isInteger(a.attempt)?a.attempt:null,conversationId:e(a.conversationId),role:e(a.role),summary:"string"==typeof a.summary?a.summary:""}}(e);if(!f)throw new a6(b,`recorded event ${a+1} of ${c.length} is malformed`);d.push(f)}d.sort((a,b)=>a.seq-b.seq);let e=Array.isArray(a.retired)?a.retired.filter(a=>"string"==typeof a):[],f=d.at(-1)?.seq??0;return{version:1,lastSeq:Number.isInteger(a.lastSeq)?Math.max(a.lastSeq,f):f,events:d,retired:e}}(b,c)}var a8=c(65972),a9=c(12136),ba=c(57624),bb=c(30816),bc=c(88370),bd=c(58444);function be(a){return a instanceof Error&&"AbortError"===a.name?a:new DOMException("catalog selection cancelled","AbortError")}function bf(a,b){let c=Math.max(0,Math.floor(b.limit)),d=b.query?b.query.toLocaleLowerCase():"",e=[],f=new Set,g=0,h=0;for(let i of a){if("claude"===i.engine||"codex"===i.engine)h+=1,b.hostedPaths?.has(i.path)&&f.add(i.path),(!b.project||i.project===b.project)&&(!b.liveOnly||"live"===i.activity||"stalled"===i.activity||b.hostedPaths?.has(i.path))&&(!d||`${i.title}
|
|
5
|
+
${i.project}
|
|
6
|
+
${i.path}`.toLocaleLowerCase().includes(d))&&(g+=1,e.length<c&&e.push(i))}return{entries:e,matched:g,scanned:h,hostedSeen:f}}async function bg(a,b={completedFileScan:bd.Nm}){let c=performance.now();if(b.signal?.aborted)throw be(b.signal.reason);let d=await b.completedFileScan({signal:b.signal??null});if(b.signal?.aborted)throw be(b.signal.reason);return{...bf(d.snapshot.files,a),generation:d.generation,cacheStatus:d.cacheStatus,freshScan:!1,selectionMs:performance.now()-c}}async function bh(a,b,c,d){let e=d.now??Date.now,f=d.signal??null,g=new Map,h=0,i=0,j="complete";if(f?.aborted)throw be(f.reason);let k=async()=>{for(;;){if(f?.aborted)throw be(f.reason);if("complete"!==j||h>=a.length)return;if(null!==d.deadlineAt&&e()>=d.deadlineAt){j="deadline";return}let k=h,l=a[k],m=Math.max(0,b(l));if(i+m>d.maxBytes){j="byte_budget";return}h=k+1,i+=m,g.set(k,await c(l,f))}},l=(await Promise.allSettled(Array.from({length:Number.isFinite(d.concurrency)?Math.max(1,Math.min(Math.floor(d.concurrency),a.length||1)):1},()=>k()))).find(a=>"rejected"===a.status);if(l?.status==="rejected")throw l.reason;return{results:g,hydrated:g.size,skipped:a.length-g.size,bytes:i,stopped:j}}var bi=c(66812),bj=c(842),bk=c(14310),bl=c(43872);async function bm(a,b){let c=await (0,bj.mR)(b);if("complete"!==c.integrity)return null;let d=(0,bi.j)(c.records,a);return{turn:"terminal"===d.state?"idle":"busy"===d.state?"busy":"unknown",lastRecordTs:function(a){let b=null;for(let c of a){let a=c.timestamp;if("string"!=typeof a)continue;let d=Date.parse(a);Number.isFinite(d)&&(null===b||d>b)&&(b=d)}return b}(c.records)}}async function bn(a){let b,c=function(a){let b=null;for(let[c,d]of(0,bl.s9)())(a===d||a.startsWith(d.endsWith(aB().sep)?d:d+aB().sep))&&(!b||d.length>b[1].length)&&(b=[c,d]);return b}(a);if(!c)return null;try{b=await g().promises.stat(a)}catch{return null}if(!b.isFile())return null;let d=(0,bk.q0)(c[0],c[1],a,b);return{path:a,project:d.project,title:d.title,engine:d.engine,mtimeMs:b.mtimeMs,sizeBytes:b.size,conversationId:null,activity:null,activityReason:null}}function bo(a){return{path:a.path,project:a.project,title:a.title,engine:a.engine,mtimeMs:Number.isFinite(a.mtime)?1e3*a.mtime:NaN,sizeBytes:Number.isFinite(a.size)?a.size:void 0,conversationId:a.conversationId??null,activity:a.activity??null,activityReason:a.activityReason??null}}async function bp(a,b,c,d){let e=[];for(let c of a)b.has(c)||e.push(c);if(0===e.length)return{entries:[],truncated:!1};let f=e.length>64,g=f?e.slice(-64):e;return{entries:(await Promise.all(g.map(async a=>{try{return await d(a)}catch{return null}}))).filter(a=>null!==a&&("claude"===a.engine||"codex"===a.engine)&&(!c||a.project===c)),truncated:f}}function bq(a,b){let c=a=>Number.isFinite(a.mtimeMs)?a.mtimeMs:-1/0;return c(b)-c(a)}function br(a){return a instanceof Error&&"AbortError"===a.name?a:new DOMException("liveness snapshot cancelled","AbortError")}function bs(a){return Math.round(100*Math.max(0,a))/100}async function bt(a,b){let c,d,e=performance.now(),f=b.now(),g=a.signal??null;if(g?.aborted)throw br(g.reason);let h=Number.isFinite(a.stallAfterMs)&&a.stallAfterMs>0?Math.floor(a.stallAfterMs):6e5,i=Math.max(1,Math.min(200,Number.isInteger(a.limit)?a.limit:100)),j=performance.now(),k=b.registrySnapshot(),l=function(a){let b=new Map,c=new Map;for(let d of a)for(let a of d.runs)for(let e of a.attempts){if(e.historical)continue;let f={pipelineId:d.id,stageId:a.stageId,attempt:e.n,reportedState:e.state,reportedPipelineState:d.state,paneId:e.paneId};e.conversationId&&b.set(e.conversationId,f),e.agentPath&&c.set(e.agentPath,f)}return{byConversation:b,byPath:c}}(b.pipelines()),m=function(a){let b=new Set;for(let c of Object.values(a.entries))("starting"===c.status||"live"===c.status||"idle"===c.status||"handoff"===c.status)&&c.artifactPath&&b.add(c.artifactPath);return b}(k),n=performance.now()-j,o=new Set,p=!!(a.transcriptPath||a.conversationId);if(a.transcriptPath&&o.add(a.transcriptPath),a.conversationId){let b=k.conversations[a.conversationId],c=b?.generations.at(-1)?.path;c&&o.add(c)}let q=performance.now();if(p)c=o.size>0?(await Promise.all([...o].slice(0,i).map(a=>b.describeTranscript(a)))).filter(a=>null!==a):[],d={scope:"targeted",scanned:o.size,matched:c.length,selected:c.length,recovered:0,recoveryTruncated:!1,generation:null,cacheStatus:null,freshScan:!1};else{let e,f={project:a.project,liveOnly:a.liveOnly,limit:i,hostedPaths:m};if(b.selectInventory){let h=await b.selectInventory(f,{signal:g});c=h.entries.map(bo),e=h.hostedSeen??new Set(h.entries.map(a=>a.path)),d={scope:a.project?"project":"corpus",scanned:h.scanned,matched:h.matched,selected:h.entries.length,recovered:0,recoveryTruncated:!1,generation:h.generation,cacheStatus:h.cacheStatus,freshScan:h.freshScan}}else if(b.listFiles){let g=bf(await b.listFiles(),f);c=g.entries.map(bo),e=g.hostedSeen,d={scope:a.project?"project":"corpus",scanned:g.scanned,matched:g.matched,selected:g.entries.length,recovered:0,recoveryTruncated:!1,generation:null,cacheStatus:null,freshScan:!0}}else throw Error("liveness needs an inventory source: install selectInventory");let h=await bp(m,e,a.project,b.describeTranscript),j=new Set(c.map(a=>a.path)),k=h.entries.filter(a=>!j.has(a.path));(k.length>0||h.truncated)&&(k.length>0&&(c=[...c,...k].sort(bq).slice(0,i)),d={...d,matched:d.matched+k.length,selected:c.length,recovered:k.length,recoveryTruncated:h.truncated})}let r=performance.now()-q;if(g?.aborted)throw br(g.reason);let s=c.filter(a=>"claude"===a.engine||"codex"===a.engine),t=performance.now(),u=Number.isFinite(a.evidenceDeadlineMs)&&a.evidenceDeadlineMs>0?Math.floor(a.evidenceDeadlineMs):2e3,v=await bh(s,a=>Math.min(Number.isFinite(a.sizeBytes)?a.sizeBytes:131072,131072),async(a,c)=>{try{return await b.transcriptEvidence(a.engine,a.path,{signal:c})}catch(a){if(c?.aborted||(0,a9.zf)(a))throw a;return null}},{concurrency:Number.isFinite(a.evidenceConcurrency)?Math.max(1,Math.floor(a.evidenceConcurrency)):4,maxBytes:Number.isFinite(a.evidenceByteBudget)?Math.max(0,Math.floor(a.evidenceByteBudget)):131072*Math.max(1,i),deadlineAt:b.now()+u,signal:g,now:b.now}),w=performance.now()-t;if(g?.aborted)throw br(g.reason);let x=performance.now(),y=0,z={claude:new Map,codex:new Map},A=s.map((a,c)=>{var d,e;let g,i=v.results.has(c),j=v.results.get(c)??null;i&&null===j&&(y+=1);let m=j?j.turn:"jsonl_turn_open"===a.activityReason?"busy":"jsonl_turn_completed"===a.activityReason?"idle":"unknown",n=j?.lastRecordTs??(Number.isFinite(a.mtimeMs)?a.mtimeMs:null),o=null!==n?Math.max(0,f-n):null,p=function(a,b){for(let c of Object.values(a.entries))if(c.artifactPath===b)return c;return null}(k,a.path),q=function(a,b){if(!a)return{state:"unknown",kind:"none",pid:null};let c="starting"===a.status||"live"===a.status||"idle"===a.status||"handoff"===a.status,d=a.structuredHost?.process??null,e=a.host?{state:(0,a8.eW)(a.host.agent,b)||(0,a8.eW)(a.host.panePid,b)?"alive":"gone",kind:"tmux",pid:a.host.agent.pid}:null,f=d?{state:(0,a8.eW)(d,b)?"alive":"gone",kind:"structured",pid:d.pid}:null;if(!c){let a=e??f;return a?{...a,state:"gone"}:{state:"gone",kind:"none",pid:null}}if(e?.state==="alive")return e;if(f?.state==="alive")return f;if(e)return e;if(f)return f;let g=Date.parse(a.updatedAt);return{state:Number.isFinite(g)&&b.now()-g<3e5?"unknown":"gone",kind:"none",pid:null}}(p,b.probe),r="busy"===m&&"alive"===q.state&&p?.accountId?(d=a.engine,e=p.accountId,(g=z[d]).has(e)||g.set(e,(0,bb.p5)(b.limitsProvenance?.(d,e),f,bb.Lm)),g.get(e)??null):null,s=a.conversationId??function(a,b){for(let c of Object.values(a.conversations))if(c.generations.some(a=>a.path===b)||c.continuityPaths?.includes(b))return c.id;return null}(k,a.path);return{entry:a,conversationId:s,turnState:m,lastRecordMs:n,silentForMs:o,host:q,...function(a){let b=null!==a.silentForMs&&a.silentForMs>=a.stallAfterMs;if("gone"===a.host.state)return"busy"===a.turnState?{lifecycle:"stalled",reason:"host_gone_turn_open"}:{lifecycle:"gone",reason:"host_gone_turn_settled"};if("unknown"===a.host.state){let b=a.startingGraceMs??3e5;return null===a.silentForMs||a.silentForMs<b?{lifecycle:"starting",reason:"launch_unproven"}:"busy"===a.turnState?{lifecycle:"stalled",reason:"launch_unproven_expired"}:{lifecycle:"gone",reason:"launch_unproven_expired"}}return"busy"===a.turnState&&a.providerRetryAt?{lifecycle:"waiting",reason:"provider_throttled",retryAt:a.providerRetryAt}:b?{lifecycle:"stalled",reason:"host_alive_transcript_silent"}:"idle"===a.turnState?{lifecycle:"waiting",reason:"host_alive_turn_idle"}:{lifecycle:"running",reason:"host_alive_turn_active"}}({host:q,turnState:m,silentForMs:o,stallAfterMs:h,providerRetryAt:r}),pipeline:(s?l.byConversation.get(s):void 0)??l.byPath.get(a.path)??null,evidenceSource:i?null!==j?"transcript":"unreadable":"projection"}}),B=n+(performance.now()-x),C=performance.now(),D=A.map(a=>{var b;return{conversationId:a.conversationId,transcriptPath:a.entry.path,project:a.entry.project,engine:a.entry.engine,title:a.entry.title,lastRecordAt:null!==(b=a.lastRecordMs)&&Number.isFinite(b)?new Date(b).toISOString():null,turnState:a.turnState,host:a.host,lifecycle:a.lifecycle,reason:a.reason,retryAt:a.retryAt??null,silentForMs:a.silentForMs,stalledForMs:"stalled"===a.lifecycle||"gone"===a.lifecycle?a.silentForMs:null,pipeline:a.pipeline,evidenceSource:a.evidenceSource}}),E=performance.now()-C;return{observedAt:new Date(f).toISOString(),stallAfterMs:h,count:D.length,stalledCount:D.filter(a=>"stalled"===a.lifecycle).length,stalledConfirmedCount:D.filter(a=>"stalled"===a.lifecycle&&"transcript"===a.evidenceSource).length,conversations:D,selection:{...d,hydrated:v.hydrated,unreadable:y,projected:s.length-v.hydrated,evidenceBytes:v.bytes,budget:v.stopped},timings:{inventorySelectionMs:bs(r),journalProjectionMs:bs(B),evidenceReadMs:bs(w),serializationMs:bs(E),totalMs:bs(performance.now()-e)}}}var bu=c(18027),bv=c(93994);function bw(){return{state:"unreadable",error:"deployment ledger is unreadable"}}let bx=`
|
|
7
|
+
ORDER BY COALESCE(
|
|
8
|
+
julianday(json_extract(state_json, '$.createdAt')),
|
|
9
|
+
julianday(json_extract(state_json, '$.updatedAt'))
|
|
10
|
+
) DESC,
|
|
11
|
+
COALESCE(updated_at, 0) DESC,
|
|
12
|
+
id DESC
|
|
13
|
+
`;function by(a=process.env){let b=function(a=process.env){let b=process.getBuiltinModule?.("bun:sqlite");if(!b)return null;try{return new b.Database(function(a=process.env){return a.LLV_RUNTIME_JOURNAL?.trim()||(0,ap.BQ)("runtime-events.sqlite")}(a),{readonly:!0,create:!1})}catch{return null}}(a);if(!b)return bw();try{let a=b.query(`SELECT id, state_json FROM entities WHERE kind = ?${bx} LIMIT 1`).get("deployment");if(!a)return{state:"ok",value:null};let c=function(a,b){try{let c=JSON.parse(a);if(!c||"object"!=typeof c||Array.isArray(c)||c.deploymentId!==b||"string"!=typeof c.revision||"string"!=typeof c.phase)return null;return c}catch{return null}}(a.state_json,a.id);return c?{state:"ok",value:c}:bw()}catch{return bw()}finally{b.close()}}var bz=c(84201),bA=c(80588);function bB(a,b=200){let c=a.split("\n").find(a=>a.trim())??"";return(0,m.t)(c,b)}function bC(a){let b=new Set;for(let c of a.matchAll(/(?<![\w#])#(\d{1,6})\b/g)){let a=Number(c[1]);Number.isSafeInteger(a)&&a>0&&b.add(a)}return[...b]}let bD=new Set(["pending","queued"]),bE=new Set(["delivering","applying"]),bF=new Set(["delivered","applied","answered"]);async function bG(a,b){let c=await b.operationStatus(a,{currentRetryLeaf:!0});return c?{status:c.receipt.status,reason:c.receipt.reason??null}:null}function bH(a){if(!a)return"unknown";let b=a.status;return bD.has(b)||bE.has(b)?"retained":bF.has(b)?"landed":"failed"===b&&a.reason===bz.WU?"uncertain":"failed"===b||"rejected"===b?"dropped":"uncertain"}async function bI(a,b){let c=async a=>{try{return await b.journal(a)??"no-record"}catch{return"unreachable"}},d=await b.lookup({conversationId:a.conversationId,clientMessageId:a.clientMessageId});if("absent"===d.kind){if(!a.operationId)return{state:"absent",evidence:{operationId:null,record:null,journal:"unasked"}};let b=await c(a.operationId);return{state:"string"==typeof b?"unknown":bH(b),evidence:{operationId:a.operationId,record:null,journal:b}}}if("found"!==d.kind)return{state:"unknown",evidence:{operationId:a.operationId,record:null,journal:"unasked"}};let e=(a,b)=>({operationId:d.operationId,record:{state:a.state,reason:a.reason,resend:a.resend,settledAt:a.settledAt},journal:b});if(!d.current.readable)return{state:"unknown",evidence:e(d.receipt,"unreachable")};let f=d.current.value;if("in-flight"===f.state){if(!b.settle)return{state:"retained",evidence:e(f,"unasked")};let a=await b.settle(d.operationId);if(!a)return{state:"unknown",evidence:e(f,"unasked")};if("in-flight"===a.state)return{state:"retained",evidence:e(a,"unasked")};f=a}if("delivered"===f.state)return{state:"landed",evidence:e(f,"unasked")};if("safe"===f.resend)return{state:"dropped",evidence:e(f,"unasked")};let g=await c(d.operationId);if("string"==typeof g)return{state:"uncertain",evidence:e(f,g)};let h=bH(g);if("landed"!==h&&"dropped"!==h)return{state:"unknown"===h?"uncertain":h,evidence:e(f,g)};if(!b.settleFromJournal)return{state:h,evidence:e(f,g)};let i=await b.settleFromJournal({conversationId:a.conversationId,operationId:d.operationId,deliveryId:d.deliveryId},g);return"landed"===h?{state:"landed",evidence:{...e(i??f,g),...i?.state==="delivered"?{recorded:"delivered"}:{}}}:i?.resend==="safe"?{state:"dropped",evidence:{...e(i,g),recorded:"lost"}}:{state:"dropped",evidence:{...e(i??f,g),recorded:"refused"}}}async function bJ(a,b,c){let d=await c.operationStatus(a,{currentRetryLeaf:!0});if(!d)return"unknown";let e=d.receipt.status;if(bF.has(e)||bE.has(e))return"too-late";if("failed"===e||"rejected"===e)return"withdrawn";if(!bD.has(e))return"unknown";try{let a=await c.transitionOperation(d.operationId,"failed",{reason:b});return"failed"===a.receipt.status?"withdrawn":"too-late"}catch{let a=await c.operationStatus(d.operationId,{currentRetryLeaf:!0});return a&&bF.has(a.receipt.status)?"too-late":"unknown"}}async function bK(a,b,c){let d=(0,bz.nb)(c.status,c.reason);if(!d||"unverified"===d.disposition||"uncertain"===bH(c))return null;try{if("delivered"===d.state)a.recordDeliveryOutcomeForOperation(b.conversationId,b.operationId,"delivered",null,"delivered");else{if(!b.deliveryId)return null;a.recordDeliveryOutcome(b.deliveryId,"failed",c.reason??d.reason,"lost")}}catch{return null}return(0,bz.ak)(a.readOnlySnapshot(),b.operationId)}function bL(){return{seatFor:ar.HS,activeSeats:()=>(0,ar.js)().map(a=>a.project),pipelines:()=>(0,bu.loadPipelinesForList)(),archivedPipelines:()=>(0,bu.loadArchivedPipelines)(),tasks:()=>(0,au.h6)(),registry:()=>(0,a4.agentRegistry)(),liveness:async a=>(await bt({...a.conversationId?{conversationId:a.conversationId}:{},...a.project?{project:a.project,liveOnly:!0}:{},stallAfterMs:a.stallAfterMs,limit:a.limit},function(a={}){let b=a.completedFileScan??bd.Nm;return{now:()=>Date.now(),selectInventory:(a,c)=>bg(a,{completedFileScan:b,signal:c?.signal??null}),describeTranscript:bn,registrySnapshot:()=>(0,a4.agentRegistry)().readOnlySnapshot(),pipelines:()=>(0,bc.Cz)().pipelines,transcriptEvidence:bm,limitsProvenance:ba.io,probe:(0,a8.AM)()}}())).conversations,lifecycleJournal:a7,latestDeployment:by,retirementReport:()=>{try{return JSON.parse(g().readFileSync((0,ap.BQ)("host-retirement-report.json"),"utf8"))}catch{return null}},settings:a=>(function(a,b=aR()){return aV(b).projects[a]??aS(a)})(a),openPullRequests:a=>ay(a),wakeState:async a=>bI(a,{lookup:a=>(0,bz.Mc)(a),settle:a=>(0,bz.V$)(a),settleFromJournal:(a,b)=>bK((0,a4.agentRegistry)(),a,b),journal:async a=>{let b=(0,bv.sS)();if(!b)throw Error("runtime host socket is unavailable");return bG(a,b)}}),originalSend:a=>(0,bz.Mc)(a),withdrawWake:async(a,b)=>{let c;if(a.operationId){let c=(0,bv.sS)();return c?bJ(a.operationId,b,c):"unknown"}let d=(c=Object.values((0,a4.agentRegistry)().readOnlySnapshot().heldDeliveries).find(b=>b.clientMessageId===a.clientMessageId))?{id:c.id,state:c.state}:null;return d?"delivered"===d.state?"too-late":"held"!==d.state?"unknown":((0,a4.agentRegistry)().terminalizeHeldDelivery(d.id,b),"withdrawn"):"unknown"},now:()=>Date.now()}}function bM(a){return!a.closedAt&&!a.hiddenAt&&"completed"!==a.state&&"closed"!==a.state}function bN(a){let b=[a.pausedAt,a.resumedAt,...a.runs.flatMap(a=>a.attempts.flatMap(a=>[a.startedAt,a.completedAt]))].filter(a=>"string"==typeof a&&Number.isFinite(Date.parse(a)));return{id:a.id,task:a.task,project:a.project,state:a.state,createdAt:a.createdAt,closedAt:a.closedAt,...a.spec?{spec:a.spec}:{},activityAt:b}}function bO(a){return{id:a.id,project:a.project,status:a.status,text:a.text,updatedAt:a.updatedAt,assignments:a.assignments?.map(a=>({state:a.state,path:a.path,conversationId:a.conversationId??null}))??[],pipelineIds:a.pipelineIds}}function bP(a){return a?{lifecycle:a.lifecycle,reason:a.reason,turnState:a.turnState}:null}async function bQ(a,b,c){let d,e=new Map;try{d=await c.liveness({project:a,stallAfterMs:b.stallAfterMs,limit:60})}catch{return e}for(let a of d){let b=a.pipeline?.pipelineId;if(!b||e.has(b))continue;let c=bP(a);c&&e.set(b,c)}return e}async function bR(a,b,c){let d=c.seatFor(a).active;if(!d?.conversationId)return null;let e=c.registry().seatTickConversation(d.conversationId),f=e?.turn.state??"unknown",g=null;if("busy"===f)try{let a=await c.liveness({conversationId:d.conversationId,stallAfterMs:b.stallAfterMs,limit:1});g=bP(a[0])}catch{g=null}return{conversationId:d.conversationId,seatEpoch:d.seatEpoch,path:d.path,designatedAt:"string"==typeof d.designatedAt?d.designatedAt:null,turn:f,activity:g}}function bS(a,b,c=[]){let d=(0,ar.ut)(a),e=[...b.pipelines(),...c].filter(a=>a.repoDir&&(0,ar.ut)(a.project)===d).sort((a,b)=>Date.parse(b.createdAt)-Date.parse(a.createdAt));return e[0]?.repoDir??null}function bT(a){return e().createHash("sha256").update(a.join("\n")).digest("hex").slice(0,32)}async function bU(a){let b,c,d={pullRequests:[],unavailable:null,gap:a.gap};if(!a.wakeDue||!a.enabled||!a.seat||J(a.seat))return d;let e=new Date(a.now).toISOString(),f=b=>({pullRequests:[],unavailable:b,gap:X(a.gap,b,e)}),g=a.gap;if(g?.gap==="lanes-unreadable"&&!W(g,a.now,a.wakeIntervalMs))return{pullRequests:[],unavailable:g.gap,gap:g};try{b=a.sources.archivedPipelines()}catch{return f("lanes-unreadable")}let h=[...a.sources.pipelines(),...b].filter(b=>{var c;return(0,ar.ut)(b.project)===a.project&&!(c=b).hiddenAt&&(!!c.closedAt||"completed"===c.state||"closed"===c.state)});if(0===h.length)return d;let i=bS(a.project,a.sources,b);if(!i)return d;if(a.gap&&!W(a.gap,a.now,a.wakeIntervalMs))return{pullRequests:[],unavailable:a.gap.gap,gap:a.gap};try{c=await a.sources.openPullRequests({cwd:i,limit:60})}catch{c={ok:!1,unavailable:"command-failed"}}if(!c.ok)return f(c.unavailable);let j=c.pullRequests,k=new Map;for(let a of h){if(!a.branch)continue;let b=k.get(a.branch);(!b||Date.parse(a.createdAt)>Date.parse(b.createdAt))&&k.set(a.branch,a)}let l=[];for(let a of j){let b=k.get(a.headRefName);b&&l.push({number:a.number,title:(0,m.t)(a.title,120),pipelineId:b.id,pipelineTitle:(0,m.t)(b.task.split("\n")[0]??"",120),updatedAt:a.updatedAt})}return{pullRequests:l.sort((a,b)=>a.number-b.number),unavailable:null,gap:null}}let bV=new Set(["starting","pane-bound","host-verified","prompt-delivered","path-pending"]),bW=new Set(["starting","live","idle","handoff"]),bX=new Set(["pipeline","flow","orchestrator"]);async function bY(a,b,c,d,e){var f;if(!b)return{children:[],unavailable:null};if(!c.accounting)return{children:[],unavailable:"registry-unreadable"};let h=new ao(c.accounting.filename,a),i=e.registry(),j=e.now(),k=new Set,l=null===(f=c.accounting.gap)?null:"legacy-migration-pending"===f?"migration-pending":"migration-blocked";l&&k.add(l);let n=[],o=(0,bl.s9)().map(([,a])=>a),p=(b,c)=>{let d=b.file.lineageEdges[c];return d?function(a,b,c,d,e,f){if("viewer-spawn"!==c.source)return null;let h=b.canonicalConversationId(c.childConversationId);if((a.memberships[h]??[]).some(a=>bX.has(a.kind)))return null;let i=c.evidence.launchId?a.receipts[c.evidence.launchId]??null:null,j=b.conversation(h),k=j?.generations.at(-1)??null,l=j&&k?(0,a5.sz)(j.engine,k.path):null,n=[...new Set([i?.key,c.childSessionKey,l].filter(a=>!!a).map(a5.pp))].flatMap(b=>a.entries[b]?[a.entries[b]]:[]),o=(0,bA.x)({projectOwnership:j?.projectOwnership??null,cwd:i?.cwd??n[0]?.cwd??null,launchProfileProject:i?.launchProfile.project??k?.launchProfile.project??null}).project;if(!o||(0,ar.ut)(o)!==d)return null;let p=(0,m.t)(i?.launchProfile.title??k?.launchProfile.title??c.role??"spawned child",120),q=function(a,b,c){if(b.some(a=>bW.has(a.status)))return!0;if(!a||!bV.has(a.state))return!1;if("starting"!==a.state)return!0;let d=Date.parse(a.createdAt);return Number.isFinite(d)&&c-d<=a4.rK}(i,n,e),r=j?.turn.state??"unknown",s=k?function(a,b){if(!b.some(b=>a===b||a.startsWith(b.endsWith(aB().sep)?b:b+aB().sep)))return null;try{let b=g().statSync(a);return b.isFile()?new Date(b.mtimeMs).toISOString():null}catch{return null}}(k.path,f):null,t=j?.turn.terminalAt??s,u={conversationId:h,title:p,activity:null,lastRecordAt:s,transcript:null===s?"unresolvable":"readable"},v=c.createdAt;return i&&(i.rejection||"failed"===i.state||"conflicted"===i.state)?{input:{...u,transcript:"readable",status:"terminal",outcome:"failed",terminalAt:i.rejection?.rejectedAt??i.createdAt},turn:r,hosted:q,createdAt:v}:j?"terminal"===r?{input:{...u,status:"terminal",outcome:"finished",terminalAt:t},turn:r,hosted:q,createdAt:v}:q?{input:{...u,status:"running",outcome:null,terminalAt:null},turn:r,hosted:q,createdAt:v}:"idle"===r?{input:{...u,status:"terminal",outcome:"finished",terminalAt:t},turn:r,hosted:q,createdAt:v}:"busy"===r?{input:{...u,status:"running",outcome:null,terminalAt:null,activity:{lifecycle:"gone",reason:"host_gone_turn_open",turnState:"busy"}},turn:r,hosted:q,createdAt:v}:{input:{...u,status:"unknown",outcome:null,terminalAt:null},turn:r,hosted:q,createdAt:v}:{input:{...u,status:"unknown",outcome:null,terminalAt:null},turn:r,hosted:q,createdAt:v}}(b.file,(0,a4.MA)(b.file),d,a,j,o):null},q=new Map,r=0,s=(...a)=>{let[b,,c,d]=a,e=d?.length===1?q.get(`${b}/${d[0]}`):null;if(e)return e;if(r+c>60)return k.add("ledger-pending"),null;let f=i.pageSeatChildren(...a);for(let a of(r+=f?.keys.length??0,f?.keys??[]))q.set(`${b}/${a}`,f);return f||(k.add("children-unindexed"),null)},t=0x2000000,v=[],w=a=>{let b=s(a.conversationId,a.after,20);if(!b)return!1;let c=[b],d=a.bootstrap,e=b.after;if(a.after||a.bootstrap||b.complete){if(d&&r<=20){let b=s(a.conversationId,d.after,20);b&&(c.push(b),d=b.complete?void 0:{after:b.after})}}else d={after:b.after},e=b.latest??b.after;let f=[];for(let b of c)for(let c of b.keys){let d=b.file.lineageEdges[c],e=p(b,c);e&&d?.evidence.launchId&&f.push({child:h.child(c,a.conversationId,d.evidence.launchId,e.input),position:"terminal"===e.input.status?"head":"tail"})}return h.discovery({...a,after:b.evidenceGap?a.after:e,bootstrap:d},f),(d||c.some(a=>a.evidenceGap||!a.complete))&&k.add("discovery-incomplete"),!0},x=(a,b,c)=>{let d=a.input,e=a.generationIndex,f=b.file.lineageEdges[a.rowKey];if(!c||!f||f.parentConversationId!==a.owner||f.evidence.launchId!==a.launchId){h.ingest({...a,input:{...a.input,status:"unknown",outcome:null}},null,[]),k.add("child-departed");return}a.input=c.input,"unknown"===a.input.status&&(n.push(a.input),k.add("child-unplaced"));let i=(0,a4.MA)(b.file).conversation(f.childConversationId),j=i?.generations??[],l=j[a.generationIndex%Math.max(1,j.length)],m=b.file.receipts[a.launchId],o=m?.state==="failed"&&null===m.key&&null===m.artifactPath&&0===j.length;if(!l)return void h.ingest(a,null,[],o);let p=h.source(a,i.engine,l.id),q=p.cursor,r=Math.min(t,0x1000000),s=function(a,b,c,d=256){let e;if(!Number.isSafeInteger(c)||c<1||c>0x4000000)throw Error("invalid ledger budget");if(!Number.isSafeInteger(d)||d<1||d>256)throw Error("invalid ledger outcome budget");let f={...b},h=[],i=0,j=0;try{e=g().openSync(a,g().constants.O_RDONLY|g().constants.O_NOFOLLOW);let k=g().fstatSync(e);if(!k.isFile())throw Error("ledger is not a regular file");let l=`${k.dev}:${k.ino}`;(f.identity!==l||k.size<f.offset)&&(f={...ad(),identity:l,initialSize:k.size,gap:b.identity?"ledger-replaced":b.gap}),"ledger-unreadable"===f.gap&&(f.gap=null);let m=Buffer.allocUnsafe(Math.min(262144,Math.max(c,1))),n=[],o=0,p=!1,q=f.offset,r=!1;for(;!r&&q<k.size&&(!(i>=c)||!(j>0)&&(0!==o||p));){let a=g().readSync(e,m,0,m.length,q);if(!a)break;i+=a,q+=a;let b=0;for(;b<a;){let c=m.indexOf(10,b);if(c<0){let c=m.subarray(b,a);p||((o+=c.length)>0x1000000?(p=!0,n=[],o=0):n.push(Buffer.from(c)));break}let e=q-a+c+1;if(p)f.gap="malformed-record",f.resync=!0,p=!1;else{let a=m.subarray(b,c),d=n.length?Buffer.concat([...n,a]):a;d.length>0x1000000?f.gap="malformed-record":function(a,b,c,d){let e;if(b.indexOf(ae)>=0)e=ag(b);else{let a,c,d=(a=b.subarray(Math.max(0,b.length-48)).toString("latin1").trimEnd(),(c=/"seq":(\d{1,15})\}$/.exec(a))?Number(c[1]):null);e=null!==d?{kind:"",seq:d}:ag(b)}if(!e){a.gap="malformed-record",a.resync=!0;return}a.resync?delete a.resync:e.seq!==a.seq+1&&(a.gap="sequence-gap"),a.seq=e.seq,"turn-started"===e.kind?"string"==typeof e.turnId&&e.turnId?a.activeTurn=e.turnId:a.gap="invalid-turn-start":"turn-ended"===e.kind&&("string"==typeof e.turnId&&e.turnId.length>0&&af.has(String(e.status))?((null===a.activeTurn||a.activeTurn===e.turnId)&&(a.activeTurn=null,a.settledThrough=e.seq),d.push({turnId:e.turnId,status:e.status,seq:e.seq,endOffset:c})):a.gap="invalid-terminal")}(f,d,e,h)}if(n=[],o=0,f.offset=e,j++,b=c+1,h.length>=d){r=!0;break}}}f.atEnd=f.offset===k.size}catch(b){let a="ENOENT"===b.code;f.gap=a?f.identity?"ledger-missing":f.gap:"ledger-unreadable",f.atEnd=!1}finally{void 0!==e&&g().closeSync(e)}return{cursor:f,outcomes:h,bytes:i,records:j}}(aB().join((0,ap.BQ)("structured-host-events"),`${encodeURIComponent(l.id)}.jsonl`),p.cursor,r);p.cursor=s.cursor,s.cursor.atEnd&&null===s.cursor.activeTurn&&s.cursor.settledThrough>0&&("idle"===c.turn||"terminal"===c.turn)&&(a.input={...a.input,status:"terminal",outcome:"finished"}),t-=s.bytes,null!==p.cursor.gap&&k.add("ledger-gap"),a.generationIndex=(a.generationIndex+1)%j.length;let u=!s.cursor.atEnd&&(s.bytes>=r||s.outcomes.length>=256);"terminal"===a.input.status&&0===s.bytes&&0===s.outcomes.length&&s.cursor.atEnd&&a.generationIndex===e&&JSON.stringify(q)===JSON.stringify(s.cursor)&&JSON.stringify(d)===JSON.stringify(a.input)?v.push(a):h.ingest(a,p,s.outcomes,!1,u?"head":"tail"),u&&"busy"!==c.turn&&k.add("ledger-pending")};try{let c=h.owner(b.conversationId,b.seatEpoch);if(h.discoverRevokedOwners((0,ap.BQ)("orchestrator-seats.json"),b=>(0,ar.ut)(b)===a)&&k.add("discovery-incomplete"),w(c)){let a=h.page("owner-poll",1)[0];if(r<=20&&a?.kind==="owner-poll"){let b=h.get(a.target);if(!b||"owner"!==b.kind)throw Error("missing owner provenance");let d=b.pollKey?b:h.owner(b.conversationId,b.epoch);d.pollKey!==a.key?h.drop(a):d.key!==c.key&&w(d)}}let f=new Set,g=h.page("running",8);for(let a of g){if("running"!==a.kind)continue;let b=h.get(a.target);if(!b||"child"!==b.kind)throw Error("missing running child");let c=s(b.owner,null,1,[b.rowKey]);if(!c)break;let g=p(c,b.rowKey);if((!g||"running"!==g.input.status||"idle"===g.turn||"terminal"===g.turn)&&(t>0?x(b,c,g):(h.promote(b),k.add("ledger-pending")),!g||"running"!==g.input.status||"running"!==b.input.status))continue;let i=g.input;if("busy"===g.turn&&g.hosted)try{i={...i,activity:bP((await e.liveness({conversationId:i.conversationId,stallAfterMs:d.stallAfterMs,limit:1}))[0])}}catch{i={...i,activity:null}}n.push(i),f.add(b.key)}for(let a of(h.rotateRunning(g.slice(0,4)),h.pollPage(40))){if(t<=0)break;if("poll"!==a.kind)throw Error("invalid poll ticket");let b=h.get(a.target);if(!b||"child"!==b.kind)throw Error("missing child provenance");if((b=h.adoptPoll(b,a.key)).pollKey!==a.key){h.drop(a);continue}if(r>=40&&!q.has(`${b.owner}/${b.rowKey}`))break;let c=s(b.owner,null,1,[b.rowKey]);if(!c)break;let d=p(c,b.rowKey);x(b,c,d),"running"!==b.input.status||f.has(b.key)||(n.push(b.input),f.add(b.key))}for(let a of(h.rotateCold(v),h.ready(20))){let b=h.get(a.child);if(!b||"child"!==b.kind)throw Error("missing ready child");let c=s(b.owner,null,1,[b.rowKey]);if(!c)break;let d=p(c,b.rowKey);if(!d||c.file.lineageEdges[b.rowKey]?.parentConversationId!==b.owner){h.defer(a),k.add("child-departed");continue}let{terminalAt:e,lastRecordAt:f,transcript:g}=d.input;n.push({...a.input,terminalAt:e,lastRecordAt:f,transcript:g,...void 0===b.harvestedEpoch?{}:{harvestedEpoch:b.harvestedEpoch}})}}catch{k.add("registry-unreadable")}return{children:n,unavailable:u.find(a=>k.has(a))??null}}async function bZ(a,b,c,d){var e,f,g,h;let i,j,k,l,n,o,q,r,s,t,u=d.now(),v=(0,ar.ut)(a),w=aW(d.settings(v),u,36e5),x=await bR(v,c,d),y=d.pipelines().filter(a=>bM(a)&&(0,ar.ut)(a.project)===v),z=y.map(bN).map(a=>{var b,c;let d;return{kind:"pipeline",id:a.id,title:bB(`${a.task}
|
|
14
|
+
${a.spec??""}`),project:a.project||null,state:"completed"===(b=a.state)||"closed"===b?"terminal":"needs_decision"===b||"paused"===b||"draft"===b?"inert":"active",owner:`pipeline ${a.id}`,updatedAt:0===(d=[...a.activityAt??[],...(c=a.closedAt)?[c]:[]].filter(a=>Number.isFinite(Date.parse(a)))).length?null:d.reduce((a,b)=>Date.parse(b)>Date.parse(a)?b:a),references:bC(`${a.task} ${a.spec??""}`),monitorRef:null}}),A=y.length>0?await bQ(v,c,d):new Map,B=y.map((a,b)=>({id:a.id,title:z[b].title,state:z[b].state,updatedAt:z[b].updatedAt,stageActivity:A.get(a.id)??null,stageId:a.cursor?.stageId??null})),C=(e=d.tasks(),f=[...d.pipelines()],e.map(a=>({...a,pipelineIds:f.filter(b=>b.taskIds.includes(a.id)).map(a=>a.id)}))).filter(a=>(0,ar.ut)(a.project)===v),D=C.map(bO).map(a=>{var b;let c;return{kind:"task",id:a.id,title:bB(a.text),project:a.project||null,state:"done"===(b=a.status)?"terminal":"blocked"===b?"inert":"active",owner:(c=a.pipelineIds?.[0])?`pipeline ${c}`:a.assignments?.find(a=>"delivered"===a.state||"spawning"===a.state||"handoff"===a.state||"linked"===a.state)?"an assigned agent":null,updatedAt:a.updatedAt||null,references:bC(a.text),monitorRef:p(a.text)}}),E=C.map((a,b)=>({id:a.id,title:D[b].title,status:a.status,owned:null!==D[b].owner,updatedAt:a.updatedAt??null})),F=function(a,b,c,d){if(!b)return[];let e=[];for(let f of d.pipelines()){if((0,ar.ut)(f.project)!==a||f.srcConversationId!==b.conversationId)continue;let d=function(a){if(a.hiddenAt||a.dismissedAt||a.closedAt||"closed"===a.state)return null;let b=a.runs.flatMap(a=>a.attempts);if("completed"===a.state)return"completed";if("needs_decision"===a.state||"needs_decision"===a.pausedState)return 0===b.length?"provisioning-failed":"needs_decision";let c=b.reduce((a,b)=>{let c=Date.parse(b.completedAt??b.startedAt??""),d=a?Date.parse(a.completedAt??a.startedAt??""):-1/0;return Number.isFinite(c)&&c>=d?b:a},null);return c?.state==="failed"?"failed":c?.state==="needs_decision"?"needs_decision":"running"===a.state&&1===b.length?"provisioned":null}(f);d&&!("provisioned"===d&&c.includes(f.id))&&e.push({id:f.id,title:(0,m.t)(f.task.split("\n")[0]??"",120),settled:d,updatedAt:bN(f).activityAt.reduce((a,b)=>!a||Date.parse(b)>Date.parse(a)?b:a,null)??f.createdAt??null,..."provisioning-failed"===d?{detail:(0,m.t)(f.stateDetail??"",160)||null}:{}})}let f=a=>a.updatedAt?Date.parse(a.updatedAt):NaN;return e.sort((a,b)=>(f(b)||0)-(f(a)||0)||a.id.localeCompare(b.id)).slice(0,20)}(v,x,b.announcedLanes??[],d),G=new Set(d.pipelines().filter(bM).map(a=>a.id)),{events:H,cursor:I}=(g=b.eventsThrough,j=Math.max((i=d.lifecycleJournal()).lastSeq,i.events.at(-1)?.seq??0),null===g?{events:[],cursor:j}:{events:(function(a,b={}){let c=Math.max(1,Math.min(200,Number.isInteger(b.limit)?b.limit:50)),d=Number.isInteger(b.afterSeq)?b.afterSeq:0,e=a.events.filter(a=>!(a.seq<=d)&&(!b.project||a.project===b.project)&&(!b.pipelineId||a.pipelineId===b.pipelineId)&&(!b.conversationId||a.conversationId===b.conversationId)&&(!b.stageId||a.stageId===b.stageId)&&(!b.type||a.type===b.type)&&!0),f=e.slice(0,c);return{count:f.length,events:f,cursor:a.lastSeq,remaining:e.length-f.length}})(i,{project:v,afterSeq:g,limit:200}).events.map(a=>({seq:a.seq,at:a.at,type:a.type,summary:a.summary,pipelineId:a.pipelineId,pipelineTerminal:null!==a.pipelineId&&!G.has(a.pipelineId)})),cursor:g}),{children:J,unavailable:K}=await bY(v,x,b,c,d),L=x?K?X(b.childrenGap,K,new Date(u).toISOString()):null:b.childrenGap,M=b.harvestedChildren,{pullRequests:N,unavailable:O,gap:P}=await bU({project:v,seat:x,wakeDue:U(b.lastWakeAt,u,w.wakeIntervalMs),enabled:w.enabled,now:u,wakeIntervalMs:w.wakeIntervalMs,gap:b.pullRequestGap,sources:d});return{project:v,now:u,seat:x,pipelines:B,tasks:E,events:H,pullRequests:N,pullRequestsUnavailable:O,signals:(k=[],(n="ok"===(l=d.latestDeployment()).state?l.value:null)&&n.terminal&&"succeeded"!==n.phase&&k.push({id:"deploy",label:`the last deployment ended ${n.phase}`}),o=d.retirementReport(),q=o?.refused.filter(a=>a.undetermined).length??0,o&&(o.failed.length>0||q>0)&&k.push({id:"host-retirement",label:`host retirement: ${o.failed.length} failed, ${q} undetermined`}),r=x?.activity,x&&"busy"===x.turn&&r&&("gone"===(h=r).lifecycle||"stalled"===h.lifecycle&&"busy"===h.turnState)&&k.push({id:"seat-host",label:`the seat's own turn is ${r.lifecycle} in ${v} (${r.reason})`}),k),ownLanes:F,children:J,childrenUnavailable:K,changeFingerprint:(s=[...B.map(a=>`p:${a.id}:${a.state}:${a.updatedAt??""}`),...E.map(a=>`t:${a.id}:${a.status}:${a.owned}:${a.updatedAt??""}`),...J.map(a=>`c:${a.conversationId}:${a.outcomeId??""}:${a.status}:${a.terminalAt??""}`),...F.map(a=>`o:${a.id}:${a.settled}:${a.updatedAt??""}`)].sort(),t=N.map(a=>`pr:${a.number}:${a.pipelineId}`).sort(),`${bT(s)}.${O?Y:bT(t)}`),state:{...b,eventsThrough:I,pullRequestGap:P,childrenGap:L,harvestedChildren:M,accounting:b.accounting?new ao(b.accounting.filename,v).readState().accounting:void 0},policy:c,settings:w}}let b$="seat-tick-wake-unresolved",b_=a=>`${b$}-${e().createHash("sha256").update(a).digest("hex").slice(0,16)}`;function b0(a,b,c){return(0,au.Pf)(d=>{let e,f=d.tasks.find(c=>(0,ar.ut)(c.project)===a&&"done"!==c.status&&p(c.text)===b.ref);if("resolved"===b.state){if(!f)return{state:void 0,result:!0};let a=(0,at.mQ)(d.tasks,f.id,{status:"done"});return a.ok?{state:{tasks:a.tasks,recentCreates:d.recentCreates},result:!0}:{state:void 0,result:!1}}let g=function(a,b,c){var d,e,f,g,h,i,j,k,l,p;if("no-seat"===b.kind)return d=b.detail,(0,m.t)(`Conversation monitor cannot resolve a live orchestrator
|
|
15
|
+
|
|
16
|
+
The monitor resolves the orchestrator through the durable record, never a transcript path. ${d}.
|
|
17
|
+
Until a live orchestrator is adopted, monitor runs report their findings on the board only — nothing is delivered in chat.
|
|
18
|
+
Observed ${c.slice(0,16).replace("T"," ")} UTC.
|
|
19
|
+
|
|
20
|
+
${n} ${o}`,5e3);if("source-unreadable"===b.kind)return b.ref===s("children")?(e=b.detail,f=b.ref,(0,m.t)(`Seat tick cannot fully account for the seat's spawned children
|
|
21
|
+
|
|
22
|
+
${e}.
|
|
23
|
+
Wakes continue on every reason that does not depend on it, and each one names the missing evidence; a finished worker whose outcome is owed, or a stalled one, is what cannot be named while this stands.
|
|
24
|
+
The tick keeps asking on every check and reports nothing further until every child is accounted for — this card is raised once per outage.
|
|
25
|
+
Project ${a}. Observed ${c.slice(0,16).replace("T"," ")} UTC.
|
|
26
|
+
|
|
27
|
+
${n} ${f}`,5e3)):(g=b.detail,h=b.ref,(0,m.t)(`Seat tick cannot read one of its evidence sources
|
|
28
|
+
|
|
29
|
+
${g}.
|
|
30
|
+
Wakes continue on every reason that does not depend on it, and each one names the missing evidence; an unmerged pull request left by a finished lane is what cannot be seen while this stands.
|
|
31
|
+
The tick keeps asking, at this project's wake interval, and reports nothing further until the source answers — this card is raised once per outage.
|
|
32
|
+
Project ${a}. Observed ${c.slice(0,16).replace("T"," ")} UTC.
|
|
33
|
+
|
|
34
|
+
${n} ${h}`,5e3));if("wake-unresolved"===b.kind)return i=b.detail,j=b.ref,(0,m.t)(`Seat tick wake unresolved under its original key
|
|
35
|
+
|
|
36
|
+
${i}.
|
|
37
|
+
Nothing the wake carried is acknowledged: every outcome and lane event it named stays owed until a wake that lands names it.
|
|
38
|
+
Project ${a}. Observed ${c.slice(0,16).replace("T"," ")} UTC.
|
|
39
|
+
|
|
40
|
+
${n} ${j}`,5e3);if("tick-settings"===b.kind){let c,d;return k={project:a,detail:b.detail,reason:b.settings?.reason??null,until:b.settings?.until??null,setBy:b.settings?.setBy??null,updatedAt:b.settings?.updatedAt??null},c=k.setBy?.project&&k.setBy.project!==k.project,d=k.setBy?`Set by ${"manager"===k.setBy.kind?"the designated seat":"gateway"===k.setBy.kind?"the operator's own session":"agent"===k.setBy.kind?"an agent session":"a caller nothing identified"}${k.setBy.conversationId?` (${k.setBy.conversationId})`:""}${c?`, whose own project is ${k.setBy.project}`:""}.`:"Set by nobody the record names.",(0,m.t)(["This project's seat tick is not on its default settings\n",`${k.detail}.`,`Reason given: ${k.reason??"none recorded"}.`,k.until?`It returns to the default at ${k.until.slice(0,16).replace("T"," ")} UTC.`:"It stands until someone changes it back.",d,`Project ${k.project}. Recorded ${k.updatedAt?`${k.updatedAt.slice(0,16).replace("T"," ")} UTC`:"at an unrecorded time"}.`,"Change it with the seat tick settings tool; this card clears itself once the project is back on the defaults.\n",`${n} ${r}`].join("\n"),5e3)}return l=b.detail,p=b.ref,(0,m.t)(`Seat tick stopped re-sending a wake reason
|
|
41
|
+
|
|
42
|
+
${l}.
|
|
43
|
+
Project ${a}. Observed ${c.slice(0,16).replace("T"," ")} UTC.
|
|
44
|
+
The tick resumes this reason on its own once the board or a pipeline moves.
|
|
45
|
+
|
|
46
|
+
${n} ${p}`,5e3)}(a,b,c);if(f){if("open"!==b.state||f.text===g)return{state:void 0,result:!0};let a=(0,at.mQ)(d.tasks,f.id,{text:g});return a.ok?{state:{tasks:a.tasks,recentCreates:d.recentCreates},result:!0}:{state:void 0,result:!0}}let h=(0,at.UT)(d.tasks,{project:a,text:g,placement:"unplaced",clientRequestId:(e=b.instance?`${b.ref}:${b.instance}`:b.ref,`monitor-741:${e}`)},d.recentCreates);return h.ok?h.replay?{state:void 0,result:!0}:{state:{tasks:h.tasks,recentCreates:h.recentCreates},result:!0}:{state:void 0,result:!1}},(0,ap.BQ)("tasks.json"))}function b1(a){if(!a.ok)return!1;switch(a.outcome){case"held":case"queued":case"delivering":case"pending":return!1;default:return!0}}function b2(a){return a.ok?a.outcome??"delivered":"failed"}function b3(a){return a.ok?null:`the delivery layer would not take the wake: ${(0,m.t)(a.error||"no reason was returned",b6)}`}let b4="the seat tick revoked a wake raised for a seat that has since been replaced";async function b5(a,b){try{let c=await a.wakeState(b);return"string"==typeof c?{observed:c,evidence:null,reason:""}:{observed:c.state,evidence:c.evidence,reason:""}}catch(a){return{observed:"unreadable",evidence:null,reason:(0,m.l)(a instanceof Error?a.message:"unknown error")}}}let b6=200;function b7(a){if(!a)return null;let b=[];if(a.record){let c=a.record,d="delivered"===c.state?"delivered":"in-flight"===c.state?"in flight":"safe"===c.resend?"failed, proven lost":"failed, unverified";b.push(`delivery record: ${d}${c.reason?` — ${(0,m.t)(c.reason,b6)}`:""}`)}else b.push("delivery record: nothing under the key");b.push(a.operationId?`operation ${a.operationId}`:"no operation named");let c=a.journal;return b.push("no-record"===c?"runtime journal holds no record of it":"unreachable"===c?"runtime journal unreachable":"unasked"===c?"runtime journal not asked":`runtime journal: ${c.status}${c.reason?` — ${(0,m.t)(c.reason,b6)}`:""}`),"lost"===a.recorded&&b.push("the delivery record was settled lost on the journal's own verdict"),"delivered"===a.recorded&&b.push("the delivery record was settled delivered on the journal's own verdict"),"refused"===a.recorded&&b.push("the delivery record could not take the journal's verdict and keeps its own answer; the release rests on the journal alone"),b.join("; ")}function b8(a){if("unreadable"===a.observed)return`could not be read${a.reason?` (${a.reason})`:""}`;let b=b7(a.evidence);return`answered "${a.observed}"${b?` (${b})`:""}`}function b9(a,b){let c=b7(b.evidence);return c?`${a}; ${c}`:a}function ca(a,b){let c=["the delivery record or the runtime journal reporting the operation delivered, which credits the plan the wake was raised on","the journal reporting it rejected or failed before actuation, or the record proving it lost, which releases the key and lets the next check raise the wake again","the seat being superseded by a different conversation at a higher epoch, which retires the attempt and lets the successor's own wake go out",`its age bound${b?` at ${b.slice(0,16).replace("T"," ")} UTC`:" — two of this project's wake intervals, and never less than an hour, from when it was prepared"}, which retires it unresolved: it is never re-sent and credits nothing, and the obligations it named are re-derived by the next check, which may wake the seat`];return a?.journal==="no-record"&&a.operationId&&c.push(`the runtime journal holds no record under operation ${a.operationId}, so an operator discard of that operation cannot reach it; supersession and the age bound are the exits left that need no new evidence`),c}function cb(a){return a.supersededBy?"retired to a superseded seat":"retired unresolved on its age bound"}async function cc(a){let b=a.state,c=[...b.retiredWakes];if(!c.length)return b;for(let d of c){let c=d.wake,e=await b5(a.sources,c),f=e.observed,g=null;if("landed"===f)g={verdict:"landed",outcome:"landed",detail:d.supersededBy?"a wake retired to a superseded seat was delivered to it after all; nothing it carried is credited, because the seat that received it no longer holds this project, so every obligation it named is still owed and the successor's own wake carries it":"a wake retired unresolved on its age bound was delivered after all; nothing it carried is credited, because the check that retired it re-derived every obligation it named into a later wake"};else if("dropped"===f)g={verdict:"dropped",outcome:"dropped",detail:`the layer holding a wake ${cb(d)} settled it without delivering it; the obligations it named were never credited and remain owed`};else if("retained"===f){let b;try{b=await a.sources.withdrawWake(c,d.supersededBy?b4:"the seat tick revoked a wake it retired unresolved after its age bound, whose obligations a later wake carries")}catch{b="unknown"}"withdrawn"===b&&(g={verdict:"revoked",outcome:"withdrawn",detail:d.supersededBy?"a wake retired to a superseded seat was taken out of the queue holding it before it could reach that seat":"a wake retired unresolved on its age bound was taken out of the queue holding it, so the wake that replaced it is the only one this seat receives"})}else"absent"!==f||c.operationId||c.dispatch?.state==="active"||(g={verdict:"revoked",outcome:"unsent",detail:`the layer holding a wake ${cb(d)} affirms it holds nothing under its key and no transport call is outstanding: the attempt is released unsent, and it is never re-dispatched because `+(d.supersededBy?"the seat it was prepared for has been replaced":"the check that retired it already re-derived every obligation it named")});if(!g){let b=Date.parse(c.preparedAt??d.retiredAt);if(Number.isFinite(b)&&a.now-b>=a.wakeIntervalMs||"uncertain"===f){let b=`A wake prepared ${(c.preparedAt??d.retiredAt).slice(0,16).replace("T"," ")} UTC for seat epoch ${c.seatEpoch},${d.supersededBy?` which epoch ${d.supersededBy.seatEpoch} has since replaced,`:" retired unresolved on its age bound,"} is still unresolved under its original key; the layer holding it last ${b8(e)}. The attempt is never re-sent and nothing it named is credited, and it no longer holds back this project's wakes. Check the delivery record under its client message id ${c.clientMessageId}`;try{a.ensureCard(a.project,{ref:b_(c.clientMessageId),kind:"wake-unresolved",instance:c.clientMessageId,detail:b},a.at)}catch(a){console.error("[seat tick] card write failed",a instanceof Error?a.name:"unknown")}}continue}if(b.accounting){let d=new ao(b.accounting.filename,a.project);if(!d.settleRetired(c.clientMessageId)){b=d.readState();continue}b=d.readState()}else b={...b,retiredWakes:b.retiredWakes.filter(a=>a.wake.clientMessageId!==c.clientMessageId)},a.writeState(a.project,b);a.appendRecord({schemaVersion:1,at:a.at,project:a.project,seatEpoch:c.seatEpoch,verdict:g.verdict,reasons:[],items:0,deferred:0,eventsThrough:b.eventsThrough??0,delivery:{clientMessageId:c.clientMessageId,outcome:g.outcome},detail:b9(g.detail,e)})}return b}async function cd(a){var b,c,d,e,f,g,h,i,j,k,l,n;let o,p,q,r,s=a.state.outstandingWake;if(!s)return a.state;let t=a.state,u=b=>{if(b.accounting){let c=new ao(b.accounting.filename,a.project);return c.writeState(b),c.readState()}return a.writeState(a.project,b),b};s.preparedAt||(t=u({...t,outstandingWake:{...s,preparedAt:a.at}}));let v=t.outstandingWake,w=Date.parse(v.preparedAt),x=Number.isFinite(w)&&a.now-w>=a.wakeIntervalMs,y=!a.seat||a.seat.conversationId!==v.conversationId||a.seat.seatEpoch!==v.seatEpoch,z=await b5(a.sources,v),A=z.observed,B=z.reason,C=null,D=null,E=null;if("landed"===A)C={verdict:"landed",outcome:"landed",row:"commit",detail:"a wake the delivery layer had kept reached the seat; the wake stamp and the event cursor move now, on the plan the check that raised it wrote down"};else if("dropped"===A)C={verdict:"dropped",outcome:"dropped",row:"clear",detail:"the layer holding the wake settled it without delivering it, so no stamp moves and the next check may raise it again"};else if(y)if("retained"===A){let b;try{b=await a.sources.withdrawWake(v,b4)}catch(a){b="unknown",B=(0,m.l)(a instanceof Error?a.message:"unknown error")}C="withdrawn"===b?{verdict:"revoked",outcome:"withdrawn",row:"clear",detail:"a wake the delivery layer had accepted but not landed was taken out of its queue before it could reach the replaced seat"}:"too-late"===b?{verdict:"revoked",outcome:"too-late",row:"keep",detail:"the wake raised for the replaced seat could not be taken back: the layer holding it had already let it go, so the replaced seat may have received it; the attempt is kept under its original key until the holder settles it"}:{verdict:"revoked",outcome:"unknown",row:"keep",detail:`the wake raised for the replaced seat could not be revoked: the layer holding it did not answer${B?` (${B})`:""}; it is asked again at the next check`}}else if("uncertain"===A)C={verdict:"uncertain",outcome:"uncertain",row:"keep",detail:"the layer holding the wake raised for the replaced seat ended it without proving arrival; the original key and all obligations remain outstanding, and no wake replaces it"};else if("absent"===A&&!v.operationId&&v.text&&v.dispatch?.state==="refused"&&t.accounting){let b=new ao(t.accounting.filename,a.project);if(!b.settleAbsent(v))return b.readState();t=b.readState(),C={verdict:"revoked",outcome:"unsent",row:"clear",detail:"the wake raised for the replaced seat was refused by the delivery layer before it reserved anything, and the record holds nothing under its key and the returned dispatch token was fenced atomically: the attempt is released unsent with nothing it named acknowledged, and the successor's next check raises its own wake"}}else C={verdict:"revoked",outcome:"unknown",row:"keep",detail:`the wake raised for the replaced seat could not be revoked: no holder could account for it${B?` (${B})`:""}; it is asked again at the next check`};else if("uncertain"===A)C={verdict:"uncertain",outcome:"uncertain",row:"keep",detail:"the layer holding the wake ended it without proving arrival; the original key and all obligations remain outstanding, and no wake replaces it"};else if("absent"===A&&!v.operationId&&v.text&&(!v.dispatch||"refused"===v.dispatch.state)&&a.deliver){let b=t.accounting?new ao(t.accounting.filename,a.project).readState():t,c=a.sources.seatFor(a.project).active;if(b.outstandingWake?.clientMessageId!==v.clientMessageId)return b;if(!c||c.conversationId!==v.conversationId||c.seatEpoch!==v.seatEpoch)return t;let d=t.accounting?new ao(t.accounting.filename,a.project):null;if(!d)return t;let e=d.beginDispatch(v);if(t=d.readState(),!e)return t;v=t.outstandingWake;let f=null;try{f=await a.deliver({pid:null,path:c.path??a.seat?.path??"",conversationId:v.conversationId,clientMessageId:v.clientMessageId,text:v.text,images:[],origin:{kind:"agent",role:"seat-tick"}}),D=b2(f),E=b3(f)}catch(a){D="unreturned",E=`the transport call did not return: ${(0,m.t)(a instanceof Error?a.message:"unknown error",b6)}`}if(f){if(d.returnedDispatch(v.clientMessageId,e,!f.ok&&!f.operationId&&"started"!==f.actuation&&"verify-first"!==f.resend),t=d.readState(),t.outstandingWake?.clientMessageId!==v.clientMessageId)return t;v=t.outstandingWake}f&&b1(f)?C={verdict:"landed",outcome:"landed",row:"commit",detail:"a wake the delivery layer had refused without keeping a record was re-dispatched under its original key and reached the seat; the wake stamp and the event cursor move now, on the plan the check that raised it wrote down"}:f?.operationId&&(v=(t=u({...t,outstandingWake:{...v,operationId:f.operationId}})).outstandingWake)}C?.row==="clear"&&v.dispatch?.state==="active"&&(C={...C,row:"keep",outcome:"unknown",detail:"the delivery record was fenced, but its admitted transport call has not returned; the original attempt remains outstanding until that call is accounted for"});let F=!C||"keep"===C.row,G=F?(o=(c=(b={seat:a.seat,wake:v,observed:A,now:a.now,wakeIntervalMs:a.wakeIntervalMs}).seat,d=b.wake,!c?.conversationId||c.seatEpoch<=d.seatEpoch||c.conversationId===d.conversationId?null:{conversationId:c.conversationId,seatEpoch:c.seatEpoch}))?{reason:"seat-superseded",supersededBy:o}:(e=b.wake,f=b.observed,g=b.now,h=b.wakeIntervalMs,null!==f&&aN.has(f)||e.dispatch?.state==="active"||aK(e.preparedAt??null,g,h))?null:{reason:"unresolved-age",supersededBy:null}:null,H=!1,I=null;if(G)if(t.accounting){let b=new ao(t.accounting.filename,a.project),c=b.retire(v,a.at,G,a.now-aI(a.wakeIntervalMs));H=c.retired,I=c.evicted,t=b.readState()}else t.retiredWakes.length<20&&(t=u({...t,outstandingWake:null,retiredWakes:[...t.retiredWakes,{wake:v,retiredAt:a.at,...G}],releasedWake:{clientMessageId:v.clientMessageId,releasedAt:a.at}}),H=!0);let J=aJ(v.preparedAt??null,a.wakeIntervalMs);if(F&&(x||"uncertain"===A)){let b=`A wake prepared ${v.preparedAt.slice(0,16).replace("T"," ")} UTC for ${y?"a seat that has since been replaced":"this seat"} is still unresolved under its original key; the layer holding it last ${b8(z)}${D?`, and a re-dispatch under the same key answered "${D}"${E?` — ${E}`:""}`:""}.`+(H?"seat-superseded"===G.reason?" The attempt is kept under that seat, never re-sent and crediting nothing, and it no longer holds back this project's wakes.":" The attempt is retired unresolved on its age bound, never re-sent and crediting nothing: it no longer holds back this project's wakes, and the next check re-derives everything it named.":" The tick keeps the attempt and dispatches no replacement wake for this project until it lands or the delivery record proves it never actuated."+(i=z.evidence,` What ends it: ${ca(i,J).join("; ")}.`))+` Check the seat's conversation for the wake and the delivery record under its client message id ${v.clientMessageId}`;try{a.ensureCard(a.project,{ref:b_(v.clientMessageId),kind:"wake-unresolved",instance:v.clientMessageId,detail:b},a.at)}catch(a){console.error("[seat tick] card write failed",a instanceof Error?a.name:"unknown")}}if(!C&&!H)return t;let K=C?.row==="commit"?ac(t,v.commit,a.now):C?.row==="clear"?{...t,outstandingWake:null,releasedWake:{clientMessageId:v.clientMessageId,releasedAt:a.at}}:t;if(a.appendRecord({schemaVersion:1,at:a.at,project:a.project,seatEpoch:v.seatEpoch,verdict:H?"retired":C.verdict,reasons:[],items:0,deferred:0,eventsThrough:K.eventsThrough??0,delivery:{clientMessageId:v.clientMessageId,outcome:C?.outcome??A},detail:b9(H?(j=C?.detail??null,k=G,l=v,n=I,p="seat-superseded"===k.reason?`the attempt is retired to seat epoch ${l.seatEpoch}, which epoch ${k.supersededBy.seatEpoch} has replaced`:`the attempt is retired unresolved on its age bound: it has been fenced since ${(l.preparedAt??"").slice(0,16).replace("T"," ")} UTC with nothing proving its delivery either way`,q="unresolved-age"===k.reason?"; every obligation it named is still owed and the next check derives its own wake from them":"",r=n?`; the retained-attempt bound was full, so the entry fenced longest ago, under key ${n}, was dropped from the row — it credited nothing and fenced nothing, and its own retirement stands in this journal`:"",`${j?`${j}; `:""}${p}: it keeps its original key, is never re-sent, credits nothing whatever becomes of it, and no longer withholds this project's wakes${q}${r}`):C.detail,z)}),H)return t;if("keep"===C.row)return K;if(t.accounting){let b=new ao(t.accounting.filename,a.project);return b.settle(v.clientMessageId,K,"commit"===C.row?"landed":"unsent"),b.readState()}return a.writeState(a.project,K),K}async function ce(a,b={}){let c=void 0===b.policy?D():b.policy;if(!c)return null;let d=b.appendRecord??aD,e=(0,ar.ut)(a);try{return await cf(e,c,b,d)}catch(b){let a={schemaVersion:1,at:new Date().toISOString(),project:e,seatEpoch:null,verdict:"error",reasons:[],items:0,deferred:0,eventsThrough:0,delivery:null,detail:`the check failed: ${(0,m.l)(b instanceof Error?b.message:"unknown error")}`};return d(a),a}}async function cf(a,b,c,d){var f,g,h,i,j,k,l,p,t,u,v,w,x,y,z;let A,B=c.sources??bL(),C=c.readState??a2,D=c.writeState??a3,K=c.deliver??aq.Ku,L=c.ensureCard??b0,R=await cg(a,c),V=B.now(),W=B.seatFor(a).active??null,X=function(a,b,c){try{return aW(c.settings(a),b,36e5).wakeIntervalMs}catch{return 36e5}}(a,V,B),Y=await cc({project:a,state:a0(C(a),W?.seatEpoch??null),sources:B,appendRecord:d,writeState:D,ensureCard:L,at:new Date(V).toISOString(),now:V,wakeIntervalMs:X}),$=await cd({project:a,state:Y,seat:W,sources:B,appendRecord:d,writeState:D,ensureCard:L,deliver:K,at:new Date(V).toISOString(),now:V,wakeIntervalMs:X}),ad=await bZ(a,$,b,B),ae=new Date(ad.now).toISOString(),af={...ad,state:a0(ad.state,ad.seat?.seatEpoch??null)},ag={...A=function(a){var b,c,d,e;let f,g,h=new Date(a.now).toISOString(),i={...a.state,lastCheckAt:h};if(!a.seat)return{verdict:{kind:"no-seat",detail:"the project has open work and no active orchestrator seat"},state:{...i,seatEpoch:null},cards:[{ref:o,kind:"no-seat",detail:"No active orchestrator seat holds this project, so the tick has nothing to wake"}]};if(J(a.seat))return{verdict:{kind:"skipped",reason:"seat-busy"},state:i,cards:[]};let j={...i,seatEpoch:a.seat.seatEpoch,eventsThrough:function(a,b){let c=b;for(let b of a){if(I(b))break;c=Math.max(c??b.seq,b.seq)}return c}(a.events,i.eventsThrough)},k=function(a){let b={now:new Date(a.now),stallAfterMs:null},c=[];for(let d of a.pipelines){if(!E(d))continue;let a=function(a,b){if("terminal"===a.state)return null;if("inert"===a.state)return`${a.kind} ${a.id} is parked`;if(null===b.stallAfterMs)return null;let c=b.stallAfterMs??1728e5,d=a.updatedAt?Date.parse(a.updatedAt):NaN;return Number.isFinite(d)&&b.now.getTime()-d>c?`${a.kind} ${a.id} is live but shows no movement past the stall threshold`:null}({kind:"pipeline",id:d.id,state:d.state,updatedAt:d.updatedAt},b);if(a){c.push({pipeline:d,reason:a});continue}let e=d.stageActivity;if(e&&("stalled"===e.lifecycle||"gone"===e.lifecycle)){let a=d.stageId?` stage ${d.stageId}`:"";c.push({pipeline:d,reason:`pipeline ${d.id}${a} runs a turn the registry reports ${e.lifecycle} (${e.reason})`})}}return c}(a),l=function(a){let b=[];for(let c of a.children){if(!F(c))continue;let a=c.activity;a&&("stalled"===a.lifecycle||"gone"===a.lifecycle)&&b.push({child:c,reason:`child ${c.conversationId} runs a turn the registry reports ${a.lifecycle} (${a.reason})`})}return b}(a),m=[...k.map(a=>a.pipeline.id),...l.map(a=>H(a.child))],n=T(a),p=new Map,r=(a,b)=>{let c=p.get(a.conversationId);(!c||N.indexOf(b)<N.indexOf(c))&&p.set(a.conversationId,b)},s=a.children.filter(G).sort((a,b)=>{let c=a=>{let b=a.terminalAt?Date.parse(a.terminalAt):NaN;return Number.isFinite(b)?b:1/0};return c(a)-c(b)||a.conversationId.localeCompare(b.conversationId)}).filter(b=>{let c=Q(b,a.seat,b.outcomeId??null,O);return c&&r(b,c),null===c}),t=new Set(a.state.childrenShown??[]),u=(function(a){let b=[],c=new Map;for(let d of a){let a=c.get(d.conversationId);if(!a){b.push(d.conversationId),c.set(d.conversationId,{child:d,outcomeIds:d.outcomeId?[d.outcomeId]:[]});continue}a.child=d,d.outcomeId&&a.outcomeIds.push(d.outcomeId)}return b.map(a=>c.get(a))})(s).filter(b=>{let c=Q(b.child,a.seat,b.child.outcomeId??null,t);return c&&r(b.child,c),null===c}),v=l.filter(b=>{let c=Q(b.child,a.seat,null,t);return c&&r(b.child,c),null===c}),w=a.children.filter(F).filter(b=>{let c=Q(b,a.seat,null,O);return c&&r(b,c),null===c});for(let a of[...u.map(a=>a.child),...v.map(a=>a.child),...w])p.delete(a.conversationId);let x={stale:P(p,"stale"),unreadable:P(p,"unreadable"),unchanged:P(p,"unchanged")},y=k.filter(b=>a.state.stalledSeen.includes(b.pipeline.id)),z=v.filter(b=>a.state.stalledSeen.includes(H(b.child))),A=a.children.filter(a=>"unknown"===a.status).length,B=a.tasks.filter(b=>(function(a,b,c){if("assigned"!==a.status||a.owned)return!1;let d=a.updatedAt?Date.parse(a.updatedAt):NaN;return Number.isFinite(d)&&b-d<c})(b,a.now,a.policy.backlogAfterMs)),C=a.tasks.filter(a=>"assigned"===a.status&&!a.owned).length-B.length,D=a.pipelines.some(E)||a.tasks.some(a=>"inbox"===a.status||"assigned"===a.status)||a.pullRequests.length>0||T(a).length>0||a.children.some(b=>F(b)&&S(b,a.seat))||a.children.some(b=>G(b)&&S(b,a.seat)),K=(b=a.state.lastWakeAt,U(b,a.now,a.settings.wakeIntervalMs)),L={...j,stalledSeen:m};if(!a.settings.enabled)return{verdict:{kind:"quiet",detail:a.settings.reason?`ticking is off for this project: ${a.settings.reason}`:"ticking is off for this project"},state:ab(L,h),cards:[]};let R=a.events.filter(I),V=[];if(K){if(n.length>0){let a=n[0],b=n.length>1?` and ${n.length-1} more`:"";V.push({kind:"own-lane-settled",detail:`a lane you launched is ${a.settled}${b}`})}if(R.length>0){let a=R[0],b=R.length>1?` and ${R.length-1} more`:"";V.push({kind:"lane-event",detail:`${a.type} since the last delivered wake${b}`})}if(u.length>0){let a=u[0],b=u.length>1?` and ${u.length-1} more`:"";V.push({kind:"child-terminal",detail:`a spawned child ${a.child.outcome??"finished"} and its outcome is unharvested${b}`})}if(a.pullRequests.length>0){let b=a.pullRequests[0],c=a.pullRequests.length>1?` and ${a.pullRequests.length-1} more`:"";V.push({kind:"unmerged-pr",detail:`pull request #${b.number}${c} left open by a lane that finished`})}if((y.length>0||z.length>0)&&V.push({kind:"stalled",detail:(y[0]??z[0]).reason}),B.length>0){let a=C>0?`, and ${C} older than the backlog bound the wake no longer names`:"";V.push({kind:"unstarted-task",detail:`${B.length} assigned board task(s) nothing has started${a}`})}let b=a.pipelines.some(E)||w.length>0||a.signals.length>0;D&&b&&0===V.length&&V.push({kind:"interval",detail:"the wake interval elapsed while work is open"})}let W=[],X=[],Y=0;for(let b of V){if(c=a.state,d=b.kind,e=a.changeFingerprint,(Z(c.lastWakeFingerprint,e)?0:c.wakesWithoutChange[d]??0)>=a.policy.retryGuard){Y+=1,W.push({ref:q(b.kind),kind:"retry-guard",detail:`Wakes for "${b.kind}" stopped producing any board or pipeline change; the tick has stopped re-sending it until state moves`});continue}X.push(b)}let $=(f=[],(g=a.pullRequestsUnavailable)&&f.push({source:"pull-requests",gap:g,detail:`the open pull requests of this project's finished lanes could not be read (${g}), so a pull request a finished lane left unmerged cannot be named in this wake`}),a.childrenUnavailable&&f.push({source:"children",gap:a.childrenUnavailable,detail:`the seat's spawned children could not be read (${a.childrenUnavailable}): ${_(a.childrenUnavailable)}, so a running or finished worker cannot be named in this wake`}),f),ac=aa(a,"pull-requests");ac&&W.push(ac.card);let ad=aa(a,"children");ad&&W.push(ad.card);let ae=ac?.gap??null,af=ad?.gap??null;if(X.length>0){let b=function(a){let{input:b}=a,c=[];for(let a of b.pullRequests)c.push({kind:"pull-request",id:`#${a.number}`,label:`${a.title} — open pull request from ${a.pipelineTitle}, unmerged since that lane finished`});let d=new Set(b.pullRequests.map(a=>a.pipelineId));for(let b of a.ownLanes)d.has(b.id)||c.push({kind:"provisioned"===b.settled?"provisioning":"pipeline",id:b.id,label:function(a){if("provisioned"===a.settled)return`${a.title} — lane you launched: provisioned, first stage running`;if("provisioning-failed"===a.settled)return`${a.title} — lane you launched: provisioning failed, it never ran a stage: ${a.detail||"no reason recorded"}`;let b="completed"===a.settled?"completed, and nobody has closed it out":"failed"===a.settled?"a stage failed":"parked on a decision";return`${a.title} — lane you launched: ${b}`}(b)});for(let b of a.laneEvents)c.push({kind:"event",id:b.pipelineId??b.type,label:`${b.type}: ${b.summary}`});for(let b of a.harvest)c.push({kind:"child",id:b.child.conversationId,outcomeId:b.child.outcomeId,outcomeIds:b.outcomeIds,stateTokens:[M(b.child,b.child.outcomeId??null),M(b.child,null)],label:`${b.child.title} — spawned child ${b.child.outcome??"finished"}, outcome unharvested`});let e=new Set(a.ownLanes.map(a=>a.id));for(let b of a.stalled)e.has(b.pipeline.id)||c.push({kind:"pipeline",id:b.pipeline.id,label:`${b.pipeline.title} — ${b.reason}`});for(let b of a.stalledChildren)c.some(a=>"child"===a.kind&&a.id===b.child.conversationId)||c.push({kind:"child",id:b.child.conversationId,stateTokens:[M(b.child,null)],label:`${b.child.title} — ${b.reason}`});for(let b of a.unstarted)c.push({kind:"task",id:b.id,label:`${b.title} — assigned, nothing started it`});for(let a of b.pipelines)E(a)&&(c.some(b=>b.id===a.id)||c.push({kind:"pipeline",id:a.id,label:`${a.title} — open`}));for(let b of a.runningChildren)c.some(a=>a.id===b.conversationId)||c.push({kind:"child",id:b.outcomeId??b.conversationId,label:`${b.title} — spawned child running`});for(let a of b.signals)c.push({kind:"signal",id:a.id,label:a.label});return c}({input:a,ownLanes:n,stalled:y,stalledChildren:z,harvest:u,runningChildren:w,laneEvents:R,unstarted:B});return{verdict:{kind:"wake",reasons:X,items:b.slice(0,a.policy.itemsPerWake),deferred:Math.max(0,b.length-a.policy.itemsPerWake),skippedChildren:x,gaps:$},state:L,cards:W,reportedSourceGap:ae,reportedChildrenGap:af}}if($.length>0){let a=$[0],b="children"===a.source?"the seat's spawned children":"the open pull requests of this project's finished lanes",c="children"===a.source?`: ${_(a.gap)}`:"";return{verdict:{kind:"error",detail:`${b} could not be read (${a.gap})${c}, so nothing owed is not established`},state:L,cards:W,reportedSourceGap:ae,reportedChildrenGap:af}}if(Y>0)return{verdict:{kind:"quiet",detail:"every wake reason is held by the retry guard"},state:ab(L,h),cards:W};let ag=A>0?`; ${A} spawned child(ren) in an unknown state`:"";if(!D){let b={...ab(L,h),idleSince:a.state.idleSince??h};return K&&U(a.state.lastProposalAt,a.now,a.policy.proposalIntervalMs)?{verdict:{kind:"proactive",detail:`no open lane, no unblocked task, and the proposal slot is due${ag}`},state:b,cards:[]}:{verdict:{kind:"quiet",detail:`the board is done and the proposal slot is not due${ag}`},state:b,cards:[]}}return{verdict:{kind:"quiet",detail:`nothing owed${ag}`},state:{...ab(L,h),idleSince:null},cards:[]}}(af),cards:[...A.cards,...function(a){var b;let c=a.settings;if(!c.configured)return[];let d={reason:c.reason,until:c.until,setBy:c.setBy,updatedAt:c.updatedAt};return[{ref:r,kind:"tick-settings",state:c.isDefault?"resolved":"open",settings:d,detail:(b=c).isDefault?b.lapsed?"the recorded tick setting reached its expiry, so this project is back on the default wake interval":"this project is on the default tick settings":b.enabled?`wakes for this project are set to one every ${Math.round(b.wakeIntervalMs/6e4)} minute(s)`:"ticking is off for this project: no wake will be sent until it is turned back on"}]}(af)]};if(af.settings.lapsed)try{let a;(c.writeSettings??function(a,b,c=aR()){(0,aC.Ol)(c,"seat tick settings are busy",()=>{let d=aV(c);(0,aQ.f)(c,{version:1,projects:{...d.projects,[a]:{...b,project:a}}})})})(af.project,(f=af.project,g=af.settings,a=aS(f),g.monitorPrompt?{...a,monitorPrompt:g.monitorPrompt,updatedAt:g.updatedAt,setBy:g.setBy}:a))}catch(a){console.error("[seat tick] lapsed settings could not be persisted",a instanceof Error?a.name:"unknown")}let ah=ag.state;for(let a of ag.cards){let b=!1;try{b=L(af.project,a,ae)}catch(a){console.error("[seat tick] card write failed",a instanceof Error?a.name:"unknown")}b&&"source-unreadable"===a.kind&&(a.ref===s("pull-requests")&&ag.reportedSourceGap&&(ah={...ah,pullRequestGap:ag.reportedSourceGap}),a.ref===s("children")&&ag.reportedChildrenGap&&(ah={...ah,childrenGap:ag.reportedChildrenGap}))}let ai=null,aj=null,ak=null,al=ag.verdict,am=af.children.filter(a=>"terminal"===a.status).map(a=>a.outcomeId??a.conversationId);if(("wake"===al.kind||"proactive"===al.kind)&&af.seat){let a,f,g,o,q=(h=af.project,i=af.seat.seatEpoch,j={fingerprint:af.changeFingerprint,lastWakeAt:af.state.lastWakeAt,releasedWake:af.state.releasedWake??null,monitorPrompt:af.settings.monitorPrompt},a="wake"===al.kind?al.reasons.map(a=>a.kind).sort().join(","):"proposal",function(a,b,c){if((0,as.sS)(a))return a;let d=`:${c}:digest-${e().createHash("sha256").update(a).digest("hex").slice(0,32)}`,f=`seat-tick:${b}`;return`${f.slice(0,Math.max(0,as.b9-d.length))}${d}`}(`seat-tick:${h}:${i}:${j.lastWakeAt??"first"}:${a}:${j.fingerprint}`+((v=j.monitorPrompt)?`:prompt-${e().createHash("sha256").update(v).digest("hex").slice(0,16)}`:"")+((w=j.releasedWake??null)?`:after-${e().createHash("sha256").update(w.clientMessageId).digest("hex").slice(0,16)}`:""),h,i)),r="wake"===al.kind?(k={project:af.project,reasons:al.reasons,items:al.items,deferred:al.deferred,skippedChildren:al.skippedChildren,signals:af.signals,gaps:al.gaps,monitorPrompt:af.settings.monitorPrompt},f=[`Seat tick — ${k.project}.`,"","Why you were woken:",...k.reasons.map(a=>`- ${a.kind}: ${a.detail}`)],k.gaps&&k.gaps.length>0&&f.push("","Evidence unavailable:",...k.gaps.map(a=>`- ${a.source}: ${a.detail}.`)),f.push("","Items:",...k.items.map(aG)),k.deferred>0&&f.push(`(${k.deferred} more item(s) held back for the next wake.)`),k.skippedChildren&&k.skippedChildren.stale>0&&f.push(`(${k.skippedChildren.stale} spawned child(ren) not listed: their last activity predates this seat's designation, or an earlier seat epoch already harvested them.)`),k.skippedChildren&&k.skippedChildren.unreadable>0&&f.push(`(${k.skippedChildren.unreadable} spawned child(ren) not listed: the Viewer cannot resolve their transcript, so no seat can read them.)`),k.skippedChildren&&k.skippedChildren.unchanged>0&&f.push(`(${k.skippedChildren.unchanged} spawned child(ren) not listed: nothing has changed about them since the wake that showed them.)`),k.signals.length>0&&f.push("","Signals:",...k.signals.map(a=>`- ${a.label}`)),aE(f,[...aH(k.monitorPrompt),"","Contract:",...aF.map(a=>`- ${a}`)])):(l={project:af.project,issues:await (c.proposalIssues??ch)(af.project,B),signals:af.signals,items:b.itemsPerWake,slot:String(Math.floor(af.now/b.proposalIntervalMs)),monitorPrompt:af.settings.monitorPrompt},g=[`Seat tick — ${l.project}. No lane is open and no board task is waiting, and the proposal slot is due.`,"","Open issues:",...l.issues.length>0?l.issues.map(a=>`- #${a.number} ${a.title}${a.labels.length>0?` [${a.labels.join(", ")}]`:""}`):["- (none readable; rank from the board and the signals below)"]],l.signals.length>0&&g.push("","Signals:",...l.signals.map(a=>`- ${a.label}`)),aE(g,["",`Produce ONE ranked list of at most ${l.items} actions, each with the evidence behind it, and post it as a single board card in inbox for this project.`,"Rank by what actually matters now: what is blocking, what is cheap and finishes something, what has been waiting longest.",`Put this exact line at the foot of the card so the next tick recognizes it: ${n} ${(o=l.slot,`seat-tick-proposal-${o}`)}`,"Open no GitHub issue and start no pipeline from this — the operator moves a card to assigned when they want it, and the next tick starts it.",...aH(l.monitorPrompt),"","Contract:",...aF.map(a=>`- ${a}`)])),s=B.seatFor(af.project).active,A=!s||s.seatEpoch!==af.seat.seatEpoch||s.conversationId!==af.seat.conversationId,C=aM(ah,{conversationId:af.seat.conversationId},af.now,af.settings.wakeIntervalMs),E=null!==C,F=function(a,b){let{fingerprint:c,eventsThrough:d}=b;if("proactive"===a.kind)return{proposal:!0,reasons:[],fingerprint:c,eventsThrough:d,children:[],announcedLanes:[],shownChildren:[]};if("wake"!==a.kind)return null;let e=new Set(b.terminalChildren??[]),f=[...new Set(a.items.flatMap(a=>a.stateTokens??[]))],g=a.items.filter(a=>"child"===a.kind).flatMap(a=>a.outcomeIds?.length?a.outcomeIds:[a.outcomeId??a.id]).filter(a=>e.has(a)),h=a.items.filter(a=>"provisioning"===a.kind).map(a=>a.id);return{proposal:!1,reasons:a.reasons.map(a=>a.kind),fingerprint:c,eventsThrough:d,children:g,announcedLanes:h,shownChildren:f}}(al,{fingerprint:af.changeFingerprint,eventsThrough:af.events.at(-1)?.seq??ah.eventsThrough??0,terminalChildren:am});if(A)ai={clientMessageId:q,outcome:"seat-rotated"};else if(E)ai={clientMessageId:q,outcome:"deferred-outstanding"},aj=aP(C);else if(F){let a={clientMessageId:q,conversationId:af.seat.conversationId,seatEpoch:af.seat.seatEpoch,operationId:null,commit:F,text:r,preparedAt:ae},b=ah.accounting?new ao(ah.accounting.filename,af.project):null;if(b?b.prepare(ah,a):!ah.outstandingWake){ah=b?b.readState():{...ah,outstandingWake:a},b||D(af.project,ah);let c=B.seatFor(af.project).active;if(c&&c.seatEpoch===a.seatEpoch&&c.conversationId===a.conversationId){let e=b?.beginDispatch(a);b&&(ah=b.readState());let f=null;try{if(b&&!e)throw Error("wake dispatch already claimed");f=await K({pid:null,path:c.path??af.seat.path??"",conversationId:c.conversationId,clientMessageId:q,text:r,images:[],origin:{kind:"agent",role:"seat-tick"}}),ai={clientMessageId:q,outcome:b2(f)},ak=b3(f)}catch(a){ai={clientMessageId:q,outcome:"unreturned"},ak=`the transport call for the wake did not return: ${(0,m.t)(a instanceof Error?a.message:"unknown error",b6)}`}if(b&&e&&f&&(b.returnedDispatch(q,e,!f.ok&&!f.operationId&&"started"!==f.actuation&&"verify-first"!==f.resend),ah=b.readState()),f&&b1(f)){let a=ac(ah,F,af.now);b?(b.settle(q,a,"landed"),ah=b.readState()):ah=a}else f?.operationId&&ah.outstandingWake&&(ah={...ah,outstandingWake:{...ah.outstandingWake,operationId:f.operationId}},b?(b.writeState(ah),ah=b.readState()):D(af.project,ah)),ah=await cd({project:af.project,state:ah,seat:B.seatFor(af.project).active??null,sources:B,appendRecord:d,writeState:D,ensureCard:L,at:ae,now:af.now,wakeIntervalMs:af.settings.wakeIntervalMs})}else ai={clientMessageId:q,outcome:"seat-rotated"},b?(b.cancelUndispatched(a),ah=b.readState()):ah={...ah,outstandingWake:null}}else{let a,c=b?b.readState():ah;c.accounting?.revision!==ah.accounting?.revision&&(ah=c),ai={clientMessageId:q,outcome:c.accounting?.gap?"accounting-blocked":"deferred-outstanding"};let d=c.accounting?.gap?null:(p={conversationId:af.seat.conversationId},aM(c,p,t=af.now,u=af.settings.wakeIntervalMs)??(c.outstandingWake?(x=c.outstandingWake,y=t,z=u,a=x.preparedAt??null,aL("outstanding",x,a,z,!aK(a,y,z))):null));d&&(aj=aP(d))}}}D(af.project,ah);let an={schemaVersion:1,at:ae,project:af.project,seatEpoch:af.seat?.seatEpoch??null,verdict:al.kind,reasons:"wake"===al.kind?al.reasons.map(a=>a.kind):[],items:"wake"===al.kind?al.items.length:0,deferred:"wake"===al.kind?al.deferred:0,eventsThrough:ah.eventsThrough??0,delivery:ai,detail:[R,"skipped"===al.kind?"the seat's turn is progressing; the tick is dropped, never queued":"wake"===al.kind?[...al.reasons.map(a=>a.detail),...al.gaps.map(a=>a.detail)].join("; "):al.detail,aj,ak].filter(a=>!!a).join("; ")||null};return d(an),an}async function cg(a,b){try{let d=b.reconcileSeat??(async a=>{let{reconcileActiveOrchestratorSeat:b}=await c.e(1585).then(c.bind(c,1585));return b(a)}),e=await d(a);if(!e)return null;let f=e.restored;return`the seat this check opened on was stillborn and has been rolled back: ${(0,m.l)(e.terminalized.seat.intent.error??"no reason was recorded")}; ${f?.conversationId?`the project is designated on ${f.conversationId} again at epoch ${f.seatEpoch}`:"the project is left undesignated, which is what create_orchestrator answers"}`}catch(a){return console.error("[seat tick] the active seat could not be reconciled",a instanceof Error?a.name:"unknown"),null}}async function ch(a,b){let c=bS(a,b);return c?az({cwd:c}):[]}async function ci(){try{let{viewerReleaseOwnsTraffic:a}=await Promise.resolve().then(c.bind(c,94972));return a()}catch(a){return console.error("[seat tick] traffic authority is unreadable",a instanceof Error?a.name:"unknown"),!0}}async function cj(a={}){let b=a.sources??bL(),c=a.appendRecord??aD;if(!await (a.ownsTraffic??ci)()){let a="this release no longer owns viewer traffic, so the seats belong to the promoted one";console.error(`[seat tick] refused: ${a}`);try{c({schemaVersion:1,at:new Date().toISOString(),project:"",seatEpoch:null,verdict:"refused",reasons:[],items:0,deferred:0,eventsThrough:0,delivery:null,detail:`the seat tick sweep was refused and this process's clock stopped: ${a}`})}catch{}return cm(),[]}let d=[];for(let c of function(a){let b=new Set(a.activeSeats().map(ar.ut));for(let c of a.pipelines())bM(c)&&c.project&&b.add((0,ar.ut)(c.project));for(let c of a.tasks())("inbox"===c.status||"assigned"===c.status)&&c.project&&b.add((0,ar.ut)(c.project));return[...b].sort()}(b))try{let e=await ce(c,{...a,sources:b});e&&d.push(e)}catch(a){console.error("[seat tick] check could not be journaled",a instanceof Error?a.name:"unknown")}return d}let ck=globalThis;function cl(a={}){let b=a.log??(a=>console.error(a));if(ck.__llvSeatTickTimer){let c="this process already holds the seat tick — exactly one ticker per seat";b(`[seat tick] refused: ${c}`);try{(a.appendRecord??aD)({schemaVersion:1,at:new Date().toISOString(),project:"",seatEpoch:null,verdict:"refused",reasons:[],items:0,deferred:0,eventsThrough:0,delivery:null,detail:`a second seat tick start was refused: ${c}`})}catch{}return!1}let c=void 0===a.policy?D():a.policy;if(!c)return b("[seat tick] not started: LLV_SEAT_TICK_CHECK_MINUTES=0 turns the tick off"),!1;let d=a.scheduleInterval??((a,b)=>setInterval(a,b)),e=a.sweep??(()=>cj()),f=d(()=>{ck.__llvSeatTickRunning||(ck.__llvSeatTickRunning=!0,Promise.resolve(e()).catch(a=>console.error("[seat tick] sweep failed",a instanceof Error?a.name:"unknown")).finally(()=>{ck.__llvSeatTickRunning=!1}))},c.checkIntervalMs);return f.unref?.(),ck.__llvSeatTickTimer=f,!0}function cm(){let a=ck.__llvSeatTickTimer;a&&clearInterval(a),ck.__llvSeatTickTimer=void 0,ck.__llvSeatTickRunning=!1}},55541:(a,b,c)=>{c.d(b,{WG:()=>o,cO:()=>n,yb:()=>l});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(27146),k=c(19777);let l=262144,m=String.raw`import fcntl
|
|
47
|
+
import io
|
|
48
|
+
import os
|
|
49
|
+
import stat
|
|
50
|
+
import sys
|
|
51
|
+
import threading
|
|
52
|
+
|
|
53
|
+
try:
|
|
54
|
+
_path = os.environ["LLV_TELEGRAM_CONNECTOR_LOG"]
|
|
55
|
+
_limit = int(os.environ["LLV_TELEGRAM_CONNECTOR_LOG_MAX_BYTES"])
|
|
56
|
+
if _limit <= 0:
|
|
57
|
+
raise ValueError("invalid log limit")
|
|
58
|
+
_flags = os.O_RDWR | os.O_CREAT | os.O_APPEND
|
|
59
|
+
if hasattr(os, "O_NOFOLLOW"):
|
|
60
|
+
_flags |= os.O_NOFOLLOW
|
|
61
|
+
_fd = os.open(_path, _flags, 0o600)
|
|
62
|
+
_info = os.fstat(_fd)
|
|
63
|
+
if not stat.S_ISREG(_info.st_mode) or (_info.st_mode & 0o077):
|
|
64
|
+
raise PermissionError("unsafe connector log")
|
|
65
|
+
if hasattr(os, "getuid") and _info.st_uid != os.getuid():
|
|
66
|
+
raise PermissionError("connector log owner mismatch")
|
|
67
|
+
except Exception as _error:
|
|
68
|
+
raise SystemExit("connector log sink unavailable") from _error
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
def _write_all(data):
|
|
72
|
+
view = memoryview(data)
|
|
73
|
+
while view:
|
|
74
|
+
written = os.write(_fd, view)
|
|
75
|
+
view = view[written:]
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
class _BoundedConnectorLog(io.TextIOBase):
|
|
79
|
+
encoding = "utf-8"
|
|
80
|
+
errors = "backslashreplace"
|
|
81
|
+
|
|
82
|
+
def __init__(self):
|
|
83
|
+
self._lock = threading.Lock()
|
|
84
|
+
|
|
85
|
+
def writable(self):
|
|
86
|
+
return True
|
|
87
|
+
|
|
88
|
+
def isatty(self):
|
|
89
|
+
return False
|
|
90
|
+
|
|
91
|
+
def fileno(self):
|
|
92
|
+
return _fd
|
|
93
|
+
|
|
94
|
+
def flush(self):
|
|
95
|
+
return None
|
|
96
|
+
|
|
97
|
+
def write(self, value):
|
|
98
|
+
if not isinstance(value, str):
|
|
99
|
+
value = str(value)
|
|
100
|
+
data = value.encode(self.encoding, self.errors)
|
|
101
|
+
if not data:
|
|
102
|
+
return len(value)
|
|
103
|
+
with self._lock:
|
|
104
|
+
fcntl.flock(_fd, fcntl.LOCK_EX)
|
|
105
|
+
try:
|
|
106
|
+
size = os.fstat(_fd).st_size
|
|
107
|
+
if len(data) >= _limit:
|
|
108
|
+
tail = data[-_limit:]
|
|
109
|
+
os.ftruncate(_fd, 0)
|
|
110
|
+
_write_all(tail)
|
|
111
|
+
elif size + len(data) > _limit:
|
|
112
|
+
keep = _limit - len(data)
|
|
113
|
+
prior = os.pread(_fd, keep, max(0, size - keep))
|
|
114
|
+
os.ftruncate(_fd, 0)
|
|
115
|
+
_write_all(prior[-keep:] + data)
|
|
116
|
+
else:
|
|
117
|
+
_write_all(data)
|
|
118
|
+
finally:
|
|
119
|
+
fcntl.flock(_fd, fcntl.LOCK_UN)
|
|
120
|
+
return len(value)
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
_sink = _BoundedConnectorLog()
|
|
124
|
+
sys.stdout = _sink
|
|
125
|
+
sys.stderr = _sink
|
|
126
|
+
`;function n(){return(0,j.BQ)("telegram","connector.log")}function o(){(0,k._q)(!0);let a=(0,j.BQ)("telegram","connector-log-sink");g().mkdirSync(a,{recursive:!0,mode:448});let b=g().lstatSync(a);if(!b.isDirectory()||b.isSymbolicLink()||(63&b.mode)!=0||"function"==typeof process.getuid&&b.uid!==process.getuid())throw Error("unsafe connector log sink directory");let c=i().join(a,"sitecustomize.py"),d=`${c}.${process.pid}.${e().randomUUID()}.tmp`;try{g().writeFileSync(d,m,{flag:"wx",mode:384}),g().renameSync(d,c),g().chmodSync(c,384)}finally{g().rmSync(d,{force:!0})}return!function(){let a="O_NOFOLLOW"in g().constants?g().constants.O_NOFOLLOW:0,b=g().openSync(n(),g().constants.O_RDWR|g().constants.O_CREAT|a,384);try{let a=g().fstatSync(b);if(!a.isFile()||(63&a.mode)!=0||"function"==typeof process.getuid&&a.uid!==process.getuid())throw Error("unsafe connector log");if(a.size<=l)return;let c=Buffer.alloc(l);g().readSync(b,c,0,c.length,a.size-c.length),g().ftruncateSync(b,0),g().writeSync(b,c,0,c.length,0)}finally{g().closeSync(b)}}(),{PYTHONPATH:a,LLV_TELEGRAM_CONNECTOR_LOG:n(),LLV_TELEGRAM_CONNECTOR_LOG_MAX_BYTES:String(l)}}}};
|