agent-log-viewer 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -0
- package/dist/mcp-server.mjs +2458 -392
- package/dist/runtime-host.mjs +1613 -244
- package/dist/standalone/.next/BUILD_ID +1 -1
- package/dist/standalone/.next/app-path-routes-manifest.json +28 -25
- package/dist/standalone/.next/build-manifest.json +2 -2
- package/dist/standalone/.next/prerender-manifest.json +3 -3
- package/dist/standalone/.next/routes-manifest.json +18 -0
- package/dist/standalone/.next/server/account-migration-controller-worker.js +1 -1
- package/dist/standalone/.next/server/app/_global-error/page.js +3 -3
- package/dist/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/dist/standalone/.next/server/app/_global-error.html +1 -1
- package/dist/standalone/.next/server/app/_global-error.rsc +1 -1
- package/dist/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_not-found/page.js +2 -2
- package/dist/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/standalone/.next/server/app/_not-found.html +1 -1
- package/dist/standalone/.next/server/app/_not-found.rsc +2 -2
- package/dist/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/dist/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/dist/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/dist/standalone/.next/server/app/api/access/route.js +1 -1
- package/dist/standalone/.next/server/app/api/access/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js +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/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/policy/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js +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 +2 -1
- package/dist/standalone/.next/server/app/api/answer/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/artifact/route.js +1 -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 +2 -2
- package/dist/standalone/.next/server/app/api/bridge/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js +1 -1
- package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/conversations/route.js +1 -1
- package/dist/standalone/.next/server/app/api/conversations/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/files/route.js +2 -2
- package/dist/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/flows/[id]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/flows/[id]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/flows/route.js +1 -1
- package/dist/standalone/.next/server/app/api/flows/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/image/route.js +1 -1
- package/dist/standalone/.next/server/app/api/image/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/inbox/route.js +2 -2
- package/dist/standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js +1 -1
- package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/limits/history/route.js +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 +67 -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 +3 -0
- package/dist/standalone/.next/server/app/api/log/suggestions/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/log/suggestions/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/logs/route.js +1 -1
- package/dist/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/logs/stream/route.js +2 -2
- package/dist/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/monitor/lock/route.js +1 -3
- package/dist/standalone/.next/server/app/api/monitor/lock/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/monitor/runs/route.js +1 -3
- package/dist/standalone/.next/server/app/api/monitor/runs/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js +1 -1
- package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js +1 -1
- package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js +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 +2 -2
- package/dist/standalone/.next/server/app/api/pipelines/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/pipelines/tick/route.js +2 -2
- package/dist/standalone/.next/server/app/api/pipelines/tick/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/proc/route.js +1 -1
- package/dist/standalone/.next/server/app/api/proc/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/projects/create/route.js +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 -0
- package/dist/standalone/.next/server/app/api/projects/directories/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/projects/directories/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/push/route.js +2 -2
- package/dist/standalone/.next/server/app/api/push/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/resources/route.js +1 -1
- package/dist/standalone/.next/server/app/api/resources/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/roles/route.js +2 -2
- package/dist/standalone/.next/server/app/api/roles/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/answer/route.js +2 -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 -0
- package/dist/standalone/.next/server/app/api/runtime/hosts/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/runtime/hosts/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js +2 -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 +2 -1
- package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/operations/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/operations/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/realtime/route.js +2 -1
- package/dist/standalone/.next/server/app/api/runtime/realtime/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/send/route.js +2 -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 +2 -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 +2 -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 +2 -2
- package/dist/standalone/.next/server/app/api/spawn/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/staging/route.js +2 -2
- package/dist/standalone/.next/server/app/api/staging/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/task-attachments/route.js +2 -2
- package/dist/standalone/.next/server/app/api/task-attachments/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js +2 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js +2 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/curator/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tasks/curator/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/route.js +2 -2
- package/dist/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/telegram/reports/route.js +1 -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 +2 -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 +1 -1
- 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 +2 -2
- package/dist/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/dist/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/dist/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/dist/standalone/.next/server/app/page.js +17 -13
- 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 +28 -25
- package/dist/standalone/.next/server/chunks/107.js +1 -0
- package/dist/standalone/.next/server/chunks/{1858.js → 1100.js} +2 -2
- package/dist/standalone/.next/server/chunks/1872.js +42 -0
- package/dist/standalone/.next/server/chunks/1952.js +3 -0
- package/dist/standalone/.next/server/chunks/2243.js +1 -0
- package/dist/standalone/.next/server/chunks/2260.js +104 -0
- package/dist/standalone/.next/server/chunks/2318.js +2 -2
- package/dist/standalone/.next/server/chunks/2324.js +1 -1
- package/dist/standalone/.next/server/chunks/2549.js +81 -0
- package/dist/standalone/.next/server/chunks/2682.js +85 -0
- package/dist/standalone/.next/server/chunks/3086.js +1 -1
- package/dist/standalone/.next/server/chunks/3214.js +1 -1
- package/dist/standalone/.next/server/chunks/3302.js +2 -0
- package/dist/standalone/.next/server/chunks/3336.js +1 -1
- package/dist/standalone/.next/server/chunks/3386.js +2 -0
- package/dist/standalone/.next/server/chunks/3558.js +1 -1
- package/dist/standalone/.next/server/chunks/3587.js +1 -1
- package/dist/standalone/.next/server/chunks/3740.js +20 -20
- package/dist/standalone/.next/server/chunks/3830.js +1 -0
- package/dist/standalone/.next/server/chunks/4191.js +1 -1
- package/dist/standalone/.next/server/chunks/4310.js +1 -0
- package/dist/standalone/.next/server/chunks/4509.js +1 -1
- package/dist/standalone/.next/server/chunks/4565.js +1 -0
- package/dist/standalone/.next/server/chunks/4651.js +2 -0
- package/dist/standalone/.next/server/chunks/4756.js +13 -0
- package/dist/standalone/.next/server/chunks/4972.js +1 -1
- package/dist/standalone/.next/server/chunks/5103.js +10 -0
- package/dist/standalone/.next/server/chunks/5408.js +1 -0
- package/dist/standalone/.next/server/chunks/5545.js +1 -0
- package/dist/standalone/.next/server/chunks/5689.js +1 -1
- package/dist/standalone/.next/server/chunks/6333.js +3 -3
- package/dist/standalone/.next/server/chunks/6487.js +10 -0
- package/dist/standalone/.next/server/chunks/6796.js +1 -1
- package/dist/standalone/.next/server/chunks/6820.js +99 -0
- package/dist/standalone/.next/server/chunks/6826.js +1 -1
- package/dist/standalone/.next/server/chunks/6839.js +81 -0
- package/dist/standalone/.next/server/chunks/6850.js +1 -1
- package/dist/standalone/.next/server/chunks/6909.js +1 -1
- package/dist/standalone/.next/server/chunks/6942.js +27 -0
- package/dist/standalone/.next/server/chunks/7139.js +82 -0
- package/dist/standalone/.next/server/chunks/7471.js +13 -13
- package/dist/standalone/.next/server/chunks/7644.js +2 -2
- package/dist/standalone/.next/server/chunks/7722.js +1 -1
- package/dist/standalone/.next/server/chunks/773.js +47 -0
- package/dist/standalone/.next/server/chunks/8263.js +81 -0
- package/dist/standalone/.next/server/chunks/8326.js +1 -0
- package/dist/standalone/.next/server/chunks/8444.js +1 -1
- 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/8996.js +1 -1
- package/dist/standalone/.next/server/chunks/9307.js +1 -0
- package/dist/standalone/.next/server/chunks/9364.js +58 -58
- package/dist/standalone/.next/server/chunks/9381.js +42 -0
- package/dist/standalone/.next/server/chunks/9403.js +1 -0
- package/dist/standalone/.next/server/chunks/9434.js +3 -3
- package/dist/standalone/.next/server/chunks/9488.js +1 -0
- package/dist/standalone/.next/server/chunks/9750.js +1 -0
- package/dist/standalone/.next/server/chunks/9777.js +1 -0
- package/dist/standalone/.next/server/chunks/9937.js +1 -1
- package/dist/standalone/.next/server/chunks/9940.js +1 -1
- package/dist/standalone/.next/server/chunks/9998.js +1 -1
- package/dist/standalone/.next/server/files-response-worker.js +3 -3
- package/dist/standalone/.next/server/functions-config-manifest.json +3 -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/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/94yAMfjyhUPRgarycP9y4/_buildManifest.js +1 -0
- package/dist/standalone/.next/static/chunks/app/_global-error/page-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/access/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/agent/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/answer/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/artifact/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/attach-command/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/attention/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/board/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/bridge/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/conversations/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/files/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/flows/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/image/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/inbox/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/limits/history/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/limits/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/suggestions/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/logs/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/monitor/lock/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/pipelines/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/proc/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/projects/create/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/projects/directories/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/push/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/resources/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/roles/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/hosts/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/session/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/session/title/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/spawn/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/staging/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/telegram/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/timeline/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tmux/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/transcribe/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tts/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/view/presence/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/workflows/route-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/app/page-1a141ae4aa9d31a9.js +85 -0
- package/dist/standalone/.next/static/chunks/{framework-d1de002210ddaaef.js → framework-04bc8c1a646a0097.js} +1 -1
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-ae02882983617748.js +1 -0
- package/dist/standalone/.next/static/css/dc96fb2edbd8742e.css +1 -0
- package/dist/standalone/node_modules/{nanoid → next/node_modules/postcss/node_modules/nanoid}/non-secure/index.cjs +2 -2
- package/dist/standalone/node_modules/{nanoid → next/node_modules/postcss/node_modules/nanoid}/package.json +1 -1
- package/dist/standalone/node_modules/react/cjs/react.development.js +1 -1
- package/dist/standalone/node_modules/react/cjs/react.production.js +1 -1
- package/dist/standalone/node_modules/react/package.json +3 -3
- package/dist/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +1 -1
- package/dist/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js +1 -1
- package/dist/standalone/node_modules/react-dom/cjs/react-dom-server.browser.production.js +3 -3
- package/dist/standalone/node_modules/react-dom/cjs/react-dom-server.edge.production.js +3 -3
- package/dist/standalone/node_modules/react-dom/cjs/react-dom-server.node.production.js +3 -3
- package/dist/standalone/node_modules/react-dom/cjs/react-dom.production.js +1 -1
- package/dist/standalone/node_modules/react-dom/package.json +4 -4
- package/dist/standalone/package.json +9 -8
- package/dist/standalone/src/lib/inboxFiles.ts +203 -0
- package/package.json +9 -8
- package/dist/standalone/.next/server/chunks/156.js +0 -2
- package/dist/standalone/.next/server/chunks/1920.js +0 -27
- package/dist/standalone/.next/server/chunks/2338.js +0 -12
- package/dist/standalone/.next/server/chunks/2904.js +0 -42
- package/dist/standalone/.next/server/chunks/2977.js +0 -1
- package/dist/standalone/.next/server/chunks/3139.js +0 -10
- package/dist/standalone/.next/server/chunks/3598.js +0 -81
- package/dist/standalone/.next/server/chunks/4968.js +0 -1
- package/dist/standalone/.next/server/chunks/6977.js +0 -1
- package/dist/standalone/.next/server/chunks/7295.js +0 -10
- package/dist/standalone/.next/server/chunks/7868.js +0 -1
- package/dist/standalone/.next/server/chunks/8026.js +0 -1
- package/dist/standalone/.next/server/chunks/8600.js +0 -12
- package/dist/standalone/.next/server/chunks/9246.js +0 -47
- package/dist/standalone/.next/server/chunks/9733.js +0 -42
- package/dist/standalone/.next/static/2ybXlxpylgBaGz43zp2fM/_buildManifest.js +0 -1
- package/dist/standalone/.next/static/chunks/app/_global-error/page-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/access/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/agent/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/answer/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/artifact/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/attach-command/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/attention/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/board/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/bridge/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/conversations/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/files/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/flows/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/image/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/inbox/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/limits/history/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/limits/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/log/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/logs/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/monitor/lock/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/pipelines/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/proc/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/projects/create/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/push/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/resources/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/roles/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/session/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/session/title/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/spawn/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/staging/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/telegram/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/timeline/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tmux/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/transcribe/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tts/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/view/presence/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/workflows/route-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/app/page-7ba2538fa87e3d62.js +0 -80
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-c132c5ba005ff29e.js +0 -1
- package/dist/standalone/.next/static/css/498f12ddef7ecb0e.css +0 -1
- /package/dist/standalone/.next/static/{2ybXlxpylgBaGz43zp2fM → 94yAMfjyhUPRgarycP9y4}/_ssgManifest.js +0 -0
- /package/dist/standalone/node_modules/{nanoid → next/node_modules/postcss/node_modules/nanoid}/non-secure/package.json +0 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";exports.id=2260,exports.ids=[1888,2260,7126,9507],exports.modules={24487:(a,b,c)=>{c.r(b),c.d(b,{STRUCTURED_HOST_RETIREMENT_CLAUSES:()=>G,STRUCTURED_HOST_RETIREMENT_INTERVAL_MS:()=>B,reconcileStructuredHostRetirement:()=>Z,runStructuredHostRetirementSweep:()=>Y,startStructuredHostRetirement:()=>_,stopStructuredHostRetirement:()=>aa,structuredHostRetirementBatch:()=>C,structuredHostRetirementGraceMs:()=>N,structuredHostRetirementIdleMs:()=>M,structuredHostRetirementJournalRecord:()=>S,structuredHostRetirementVerdict:()=>L});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(29381),i=c(88623),j=c(27146),k=c(29307),l=c(52e3),m=c(1198),n=c(39584),o=c(89317),p=c(26296);function q(a){return[...a].sort((a,b)=>a.seq-b.seq)}function r(a,b){return[...new Set(a.filter(a=>a.conversationId===b).flatMap(a=>a.replayedDeliveryIds))]}class s{constructor(a,b=()=>new Date().toISOString()){this.store=a,this.clock=b}loadState(){return{rows:this.store.load(),history:this.store.loadHistory?.()??[],drainingGenerations:this.store.loadDrainingGenerations?.()??[]}}mutate(a){let b=b=>{let c=new Map(b.rows.map(a=>[a.operationId,a])),d=a(c,b);return b.rows.splice(0,b.rows.length,...c.values()),d};if(this.store.transaction)return this.store.transaction(b);let c=this.loadState(),d=b(c);return this.store.save(c.rows),this.store.saveHistory?.(c.history),this.store.saveDrainingGenerations?.(c.drainingGenerations),d}rows(){return this.store.load().map(a=>structuredClone(a))}history(){return(this.store.loadHistory?.()??[]).map(a=>structuredClone(a))}row(a){let b=this.loadState(),c=[...b.rows,...b.history].find(b=>b.operationId===a);return c?structuredClone(c):null}enqueue(a){let b=this.clock();this.mutate((c,d)=>{for(let e of a){if(c.has(e.operationId)||d.history.some(a=>a.operationId===e.operationId))continue;let a=[...c.values()].find(a=>a.conversationId===e.conversationId);if(a){if("pending"===a.status||"draining"===a.status)continue;c.delete(a.operationId),d.history.push(structuredClone(a))}c.set(e.operationId,{...e,pendingDeliveries:a?function(a,b){let c=new Set(a.replayedDeliveryIds),d=q(b).filter(a=>!c.has(a.deliveryId)),e=new Set(d.map(a=>a.deliveryId));return[...q(a.pendingDeliveries).filter(a=>!c.has(a.deliveryId)).filter(a=>!e.has(a.deliveryId)),...d].map((a,b)=>({...a,seq:b+1}))}(a,e.pendingDeliveries):q(e.pendingDeliveries),status:"pending",predecessorGeneration:null,successorGeneration:null,replayedDeliveryIds:r(d.history,e.conversationId),interruptionOutcome:null,lastError:null,enqueuedAt:b,updatedAt:b})}})}beginDrain(a){let b=this.clock();this.mutate((c,d)=>{for(let e of(d.drainingGenerations.includes(a)||d.drainingGenerations.push(a),c.values()))e.hostGeneration===a&&("pending"===e.status||"claimed"===e.status)&&(e.status="draining",e.updatedAt=b)})}isAdmittingNewHosts(a){return!this.loadState().drainingGenerations.includes(a)}admitMessage(a,b){return this.mutate(c=>{let d=c.get(a);return!!d&&"terminal"!==d.status&&(!!d.pendingDeliveries.some(a=>a.deliveryId===b.deliveryId)||(d.pendingDeliveries=q([...d.pendingDeliveries,b]),d.updatedAt=this.clock(),!0))})}refreshTurnState(a,b,c){return this.mutate(d=>{let e=d.get(a);return!!e&&e.hostGeneration===b&&("pending"===e.status||"draining"===e.status)&&("terminal"!==e.turnState||"terminal"===c)&&(e.turnState=c,e.updatedAt=this.clock(),!0)})}claim(a,b){return this.mutate(c=>{var d;let e=c.get(a);if(!e)return{ok:!1,row:null,replay:[],reason:"not-found"};let f=q(e.pendingDeliveries).filter(a=>!e.replayedDeliveryIds.includes(a.deliveryId));return e.successorGeneration===b.toGeneration&&("claimed"===e.status||"terminal"===e.status)?{ok:!0,row:structuredClone(e),replay:f}:e.hostGeneration!==b.fromGeneration?{ok:!1,row:structuredClone(e),replay:[],reason:"generation-fence"}:(e.predecessorGeneration=b.fromGeneration,e.successorGeneration=b.toGeneration,e.hostGeneration=b.toGeneration,e.status="terminal"===e.turnState?"terminal":"claimed",e.interruptionOutcome="terminal"===(d=e.turnState)?"completed":"busy"===d?"interrupted":null,e.updatedAt=this.clock(),{ok:!0,row:structuredClone(e),replay:f})})}acknowledgeReplay(a,b,c){return this.mutate(d=>{let e=d.get(a);if(!e||e.successorGeneration!==b||"claimed"!==e.status&&"terminal"!==e.status)return!1;let f=new Set(e.pendingDeliveries.map(a=>a.deliveryId));return!c.some(a=>!f.has(a))&&(e.replayedDeliveryIds=[...new Set([...e.replayedDeliveryIds,...c])],e.updatedAt=this.clock(),!0)})}failCandidate(a){let b=this.clock();this.mutate((c,d)=>{let e=new Set(d.drainingGenerations);for(let f of c.values()){if(f.successorGeneration!==a)continue;let c=f.predecessorGeneration;f.hostGeneration=c??f.hostGeneration,f.status=c&&e.has(c)?"draining":"pending",f.predecessorGeneration=null,f.successorGeneration=null,f.replayedDeliveryIds=r(d.history,f.conversationId),f.interruptionOutcome=null,f.updatedAt=b}})}markRetryableFailure(a,b){this.mutate(c=>{let d=c.get(a);d&&(d.status="failed",d.lastError=b,d.updatedAt=this.clock())})}retirable(a){for(let b of this.store.load())if(b.hostGeneration===a&&("pending"===b.status||"draining"===b.status))return!1;return!0}}class t{constructor(a){this.filename=a,e().mkdirSync(g().dirname(a),{recursive:!0,mode:448});const b=process.getBuiltinModule?.("bun:sqlite");if(!b)throw Error("SQLite handoff queue requires the Bun runtime");this.db=new b.Database(a,{create:!0,strict:!0}),this.db.exec("PRAGMA busy_timeout = 5000; PRAGMA journal_mode = WAL; PRAGMA synchronous = FULL;"),this.db.exec(`
|
|
2
|
+
CREATE TABLE IF NOT EXISTS handoff_rows (
|
|
3
|
+
operation_id TEXT PRIMARY KEY,
|
|
4
|
+
conversation_id TEXT,
|
|
5
|
+
row_order INTEGER NOT NULL,
|
|
6
|
+
value_json TEXT NOT NULL
|
|
7
|
+
);
|
|
8
|
+
CREATE TABLE IF NOT EXISTS handoff_history (
|
|
9
|
+
operation_id TEXT PRIMARY KEY,
|
|
10
|
+
conversation_id TEXT NOT NULL,
|
|
11
|
+
row_order INTEGER NOT NULL,
|
|
12
|
+
value_json TEXT NOT NULL
|
|
13
|
+
);
|
|
14
|
+
CREATE TABLE IF NOT EXISTS handoff_draining_generations (
|
|
15
|
+
generation TEXT PRIMARY KEY,
|
|
16
|
+
row_order INTEGER NOT NULL
|
|
17
|
+
);
|
|
18
|
+
`),this.db.exec("BEGIN IMMEDIATE");try{this.db.query("PRAGMA table_info(handoff_rows)").all().some(a=>"conversation_id"===a.name)||this.db.exec("ALTER TABLE handoff_rows ADD COLUMN conversation_id TEXT"),this.db.exec("COMMIT")}catch(a){throw this.db.exec("ROLLBACK"),a}this.migrateActiveRows(),this.db.exec(`
|
|
19
|
+
CREATE UNIQUE INDEX IF NOT EXISTS handoff_one_active_conversation
|
|
20
|
+
ON handoff_rows(conversation_id)
|
|
21
|
+
WHERE conversation_id IS NOT NULL;
|
|
22
|
+
`);try{e().chmodSync(a,384)}catch{}}load(){return this.db.query("SELECT value_json FROM handoff_rows ORDER BY row_order ASC").all().map(a=>JSON.parse(a.value_json))}loadHistory(){return this.db.query("SELECT value_json FROM handoff_history ORDER BY row_order ASC").all().map(a=>JSON.parse(a.value_json))}loadDrainingGenerations(){return this.db.query("SELECT generation FROM handoff_draining_generations ORDER BY row_order ASC").all().map(a=>a.generation)}writeRows(a){let b=this.db.query("INSERT INTO handoff_rows(operation_id, conversation_id, row_order, value_json) VALUES (?, ?, ?, ?)");this.db.exec("DELETE FROM handoff_rows"),a.forEach((a,c)=>b.run(a.operationId,a.conversationId,c,JSON.stringify(a)))}writeHistory(a){let b=this.db.query("INSERT INTO handoff_history(operation_id, conversation_id, row_order, value_json) VALUES (?, ?, ?, ?)");this.db.exec("DELETE FROM handoff_history"),a.forEach((a,c)=>b.run(a.operationId,a.conversationId,c,JSON.stringify(a)))}writeDrainingGenerations(a){let b=this.db.query("INSERT INTO handoff_draining_generations(generation, row_order) VALUES (?, ?)");this.db.exec("DELETE FROM handoff_draining_generations"),[...new Set(a)].forEach((a,c)=>b.run(a,c))}migrateActiveRows(){this.db.exec("BEGIN IMMEDIATE");try{let a=new Map,b=this.loadHistory(),c=new Map(b.map(a=>[a.operationId,a])),d=new Set(this.loadDrainingGenerations()),e=this.load();for(let a of[...b,...e])"draining"===a.status&&d.add(a.hostGeneration);for(let b of e){let d=a.get(b.conversationId);d&&c.set(d.operationId,d),a.set(b.conversationId,b)}this.writeRows([...a.values()]),this.writeHistory([...c.values()]),this.writeDrainingGenerations([...d]),this.db.exec("COMMIT")}catch(a){throw this.db.exec("ROLLBACK"),a}}save(a){this.db.exec("BEGIN IMMEDIATE");try{this.writeRows(a),this.db.exec("COMMIT")}catch(a){throw this.db.exec("ROLLBACK"),a}}saveHistory(a){this.db.exec("BEGIN IMMEDIATE");try{this.writeHistory(a),this.db.exec("COMMIT")}catch(a){throw this.db.exec("ROLLBACK"),a}}saveDrainingGenerations(a){this.db.exec("BEGIN IMMEDIATE");try{this.writeDrainingGenerations(a),this.db.exec("COMMIT")}catch(a){throw this.db.exec("ROLLBACK"),a}}transaction(a){this.db.exec("BEGIN IMMEDIATE");try{let b={rows:this.load(),history:this.loadHistory(),drainingGenerations:this.loadDrainingGenerations()},c=a(b);return this.writeRows(b.rows),this.writeHistory(b.history),this.writeDrainingGenerations(b.drainingGenerations),this.db.exec("COMMIT"),c}catch(a){throw this.db.exec("ROLLBACK"),a}}}let u=null;var v=c(41687),w=c(96755);function x(a){if("linux"!==l.B.name)return null;try{let b=e().readFileSync(`/proc/${a}/stat`,"utf8"),c=b.lastIndexOf(")");if(c<0)return null;let d=Number(b.slice(c+2).trim().split(/\s+/)[2]);return Number.isInteger(d)&&d>0?d:null}catch{return null}}async function y(a,b={}){let c=b.processIdentity??(a=>l.B.processIdentity(a)),d=b.pidAlive??(a=>l.B.pidAlive(a)),e=b.ppidMap??(()=>l.B.ppidMap()),f=b.processGroupId??x,g=b.signal??((a,b)=>{process.kill(a,b)}),i=b.retireRegistryEntry??((a,b)=>{(0,h.agentRegistry)().terminateStructuredHost(a,b)}),j=b.terminateOwnedHost??w.lm,k=b.sleep??(a=>new Promise(b=>setTimeout(b,a))),n=b.graceMs??400,o=b.deadlineMs??3e3,{pid:p}=a;if(!Number.isSafeInteger(p)||p<=1)return{ok:!1,status:409,error:"host pid is invalid",remaining:[]};if("string"!=typeof a.startIdentity||0===a.startIdentity.length)return{ok:!1,status:409,error:"host process identity is unknown — refresh the resource list",remaining:[]};if((b.protectedPids??function(){let a=new Set([process.pid]),b=process.pid;for(let c=0;c<32&&null!==b;c+=1)null!==(b=l.B.readPpid(b))&&a.add(b);return a})().has(p))return{ok:!1,status:403,error:"this pid belongs to the viewer's own process chain",remaining:[]};let q=a.sessionId?{engine:a.engine,sessionId:a.sessionId}:null,r={pid:p,startIdentity:a.startIdentity},s=c(p);if(null===s&&!d(p))return q&&i(q,r),{ok:!0,via:"already-exited",pids:[]};if(s!==a.startIdentity)return{ok:!1,status:409,error:"host has changed — refresh the resource list",remaining:[],stale:!0};let t=e(),u=(0,m.mO)(p,t),v=f(p)===p?p:null;if(null!==v){let a=new Set(u);for(let b of t.keys())a.has(b)||f(b)!==v||(a.add(b),u.push(b))}let z=new Map;for(let b of u){let e=c(b);if(null!==e){if(b===p&&e!==a.startIdentity)return{ok:!1,status:409,error:"host process identity changed before signalling — refresh the resource list",remaining:[p],stale:!0};z.set(b,e);continue}if(d(b))return{ok:!1,status:409,error:`process ${b} identity is unknown — refresh the resource list`,remaining:[b]}}let A=()=>{for(let[a,b]of z){let e=c(a);if(e!==b&&(null!==e||d(a)))return{ok:!1,status:409,error:a===p?"host process identity changed before signalling — refresh the resource list":`process ${a} identity changed before signalling — refresh the resource list`,remaining:[a],...a===p?{stale:!0}:{}}}return null},B="process-group",C=!1;if(q)try{await j(q,r)&&(B="runtime")}catch{C=!0;let a=A();if(a)return a}let D=A();if(D)return D;let E=()=>u.filter(a=>d(a)),F=[],G=(a,b)=>{try{g(a,b)}catch(e){let c,d="string"==typeof(c=e?.code)?c:null;"ESRCH"!==d&&F.push(`${b} on ${a<0?`group ${-a}`:a}: ${d??"failed"}`)}},H=a=>{let b=A();if(b)return b;let c=E();for(let b of(null!==v&&c.some(a=>f(a)===v)&&G(-v,a),c))(null===v||f(b)!==v)&&G(b,a);return null},I=H("SIGTERM");if(I)return I;let J=Date.now(),K=!1;for(;E().length>0;){let a=Date.now()-J;if(a>=o)break;if(!K&&a>=n){K=!0;let a=H("SIGKILL");if(a)return a}await k(25)}let L=A();if(L)return L;let M=E();if(M.length>0||F.length>0)return{ok:!1,status:500,error:C?"the runtime host termination failed and the process tree survived":F.length>0?`the kill was refused (${F[0]})`:`${M.length} process${1===M.length?"":"es"} outlived the kill`,remaining:M};return q&&"runtime"!==B&&i(q,r),{ok:!0,via:B,pids:u}}let z=globalThis,A=z.__llvVoiceViewBindings??=new Map,B=3e5;function C(a,b=B){return Math.max(1,Math.min(8,Math.floor(.5*b/Math.max(1,a+1e4))))}let D=new Set(["completed","failed","conflicted"]),E=new Set(["held","assigned","delivery-uncertain"]),F=new Set(["idle","dead"]),G=["seat-free","turn-settled","attention-settled","host-idle-or-dead","no-active-flags","handoff-queue-drained","no-open-operation","events-flushed","no-realtime-binding","resumable","transcript-idle","process-identity"],H=(0,o.yV)(null),I=a=>(0,o.yV)(a);function J(a){return null===a.process.startIdentity?(0,o.nZ)(`the registry stored no kernel identity for pid ${a.process.pid}`):(0,o.yV)(a.process.startIdentity)}let K={"seat-free":a=>(0,o.Le)(a.seat,a=>a?"the host holds a live orchestrator seat":null),"turn-settled":a=>null!==a.activeTurnRef?I(`turn ${a.activeTurnRef} is in flight`):(0,o.Le)(a.turnBusy,a=>a?"the conversation turn has not settled":null),"attention-settled":a=>a.pendingAttention.length>0?I(`${a.pendingAttention.length} question(s) await an operator answer`):H,"host-idle-or-dead":a=>F.has(a.status)?H:I(`the host status is ${a.status}`),"no-active-flags":a=>{let b=(0,v.S0)(a.activeFlags);return b.length>0?I(`the host is flagged ${b.join(", ")}`):H},"handoff-queue-drained":a=>(0,o.Le)(a.undeliveredHandoffEntries,a=>a>0?`${a} undelivered handoff entr(ies) name this key`:null),"no-open-operation":a=>null!==a.pendingAction?I(`a ${a.pendingAction} action is pending`):null!==a.structuredHostOperationId?I("a structured host operation is still in flight"):a.openOperations>0?I(`${a.openOperations} spawn receipt(s) are pending or non-terminal`):H,"events-flushed":a=>(0,o.Le)(a.durableEventTail,b=>a.eventCursor<b?`the flushed cursor ${a.eventCursor} is behind the session's ${b}`:null),"no-realtime-binding":a=>(0,o.Le)(a.realtimeBound,a=>a?"a realtime session is bound to this conversation":null),resumable:a=>""===a.transcriptPath?I("the host names no transcript to resume from"):(0,o.Le)(a.transcriptFile,a=>null===a?"the transcript is not present on disk":null),"transcript-idle":(a,b)=>(0,o.Le)(a.transcriptFile,a=>{if(null===a)return"the transcript is not present on disk";let c=b.now-a.mtimeMs;return c<b.idleMs?`the transcript was written ${Math.max(0,Math.round(c/1e3))}s ago`:null}),"process-identity":a=>{let b=J(a);return b.determined?(0,o.Le)(a.observedStartIdentity,c=>c===b.value?null:`pid ${a.process.pid} is no longer the recorded host`):b}};function L(a,b){let c=[];for(let d of G){let e=K[d](a,b);if(!e.determined)return{retire:!1,clause:d,reason:e.why,undetermined:!0};if(null!==e.value)return{retire:!1,clause:d,reason:e.value};c.push(d)}let d=J(a);return d.determined?{retire:!0,passed:c,startIdentity:d.value}:{retire:!1,clause:"process-identity",reason:d.why,undetermined:!0}}function M(a=process.env){let b=a.LLV_HOST_RETIREMENT_IDLE_HOURS;if(void 0===b||""===b.trim())return 216e5;let c=Number(b);return!Number.isFinite(c)||c<0?(console.warn("[host retirement] LLV_HOST_RETIREMENT_IDLE_HOURS is not a duration; using 6h"),216e5):0===c?null:36e5*c}function N(a=process.env){let b=a.LLV_HOST_RETIREMENT_GRACE_MS;if(void 0===b||""===b.trim())return 5e3;let c=Number(b);return!Number.isFinite(c)||c<0?5e3:Math.min(c,6e4)}function O(a){try{let b=e().statSync(a);return(0,o.yV)(b.isFile()?{mtimeMs:b.mtimeMs}:null)}catch(b){let a=b.code;return"ENOENT"===a||"ENOTDIR"===a?(0,o.yV)(null):(0,o.nZ)(`the transcript could not be read (${a??"unknown"})`)}}function P(a){try{if(new Set(A.keys()).has(a))return(0,o.yV)(!0);let b=(0,w.Aj)(a);return(0,o.yV)("function"==typeof b?.currentRealtimeSessionId&&null!==b.currentRealtimeSessionId())}catch(a){return(0,o.nZ)(`the realtime binding could not be read: ${R(a)}`)}}function Q(){let a;try{a=(0,k.uC)()}catch(a){return(0,o.nZ)(`the orchestrator seat store could not be read: ${R(a)}`)}if(null===a)return(0,o.nZ)("the orchestrator seat store could not be established");let b=new Set;for(let c of a)c.conversationId&&b.add(c.conversationId);return(0,o.yV)(b)}function R(a){return a instanceof Error?a.message:String(a)}function S(a){let{refused:b,...c}=a,d={},e={};for(let a of b)d[a.clause]=(d[a.clause]??0)+1,a.undetermined&&(e[a.clause]=(e[a.clause]??0)+1);return{...c,refusedByClause:d,undeterminedByClause:e}}function T(a){try{var b;let c;b=(0,j.BQ)("host-retirement-report.json"),e().mkdirSync(g().dirname(b),{recursive:!0,mode:448}),c=`${b}.${process.pid}.tmp`,e().writeFileSync(c,`${JSON.stringify(a,null,2)}
|
|
23
|
+
`,{encoding:"utf8",mode:384}),e().renameSync(c,b)}catch(a){console.error("[host retirement] report could not be written",a)}try{let b=(0,j.BQ)("host-retirement-journal.ndjson");e().mkdirSync(g().dirname(b),{recursive:!0,mode:448});try{e().statSync(b).size>4194304&&e().renameSync(b,`${b}.1`)}catch{}e().appendFileSync(b,`${JSON.stringify(S(a))}
|
|
24
|
+
`,{encoding:"utf8",mode:384})}catch(a){console.error("[host retirement] journal could not be appended",a)}for(let b of a.retired)console.warn(`[host retirement] retired ${b.key} (${b.role??"no role"}, idle ${Math.round(b.idleMs/6e4)}m) via ${b.via}: ${b.reclaimed.processes} process(es), ${Math.round(b.reclaimed.rssBytes/1048576)} MiB resident + ${Math.round(b.reclaimed.swapBytes/1048576)} MiB swapped reclaimed`);for(let b of a.failed)console.warn(`[host retirement] left ${b.key} intact: ${b.error}`);let c=Object.entries(S(a).undeterminedByClause);if(c.length>0){let b=c.map(([a,b])=>`${a} (${b})`).join(", "),d=a.refused.find(a=>a.undetermined)?.reason??"";console.warn(`[host retirement] kept hosts whose clauses could not be determined: ${b} — ${d}`)}}class U{add(a){null!==a&&this.counts.set(a,(this.counts.get(a)??0)+1)}addKey(a){this.add(`key:${a}`)}addConversation(a){this.add(null===a?null:`conv:${a}`)}count(a,b){return(this.counts.get(`key:${a}`)??0)+(null===b?0:this.counts.get(`conv:${b}`)??0)}constructor(){this.counts=new Map}}function V(a){var b;let c=a.snapshot(),d=new Map;for(let a of Object.values(c.conversations))for(let b of a.generations)d.set(b.id,a);return{file:c,conversationsBySession:d,undelivered:(b=a.handoffRows(),(0,o.Le)(b,a=>{let b=new U;for(let c of a){let a=new Set(c.replayedDeliveryIds??[]);(c.pendingDeliveries??[]).some(b=>!a.has(b.deliveryId))&&("claude"===c.engine||"codex"===c.engine?b.addKey(`${c.engine}:${c.engineSessionId}`):b.addConversation(c.conversationId))}for(let a of Object.values(c.heldDeliveries??{}))E.has(a.state)&&b.addConversation(a.conversationId);return b})),openOperations:function(a){let b=new U;for(let c of Object.values(a.receipts??{}))D.has(c.state)||(null!==c.key?b.addKey((0,i.pp)(c.key)):b.addConversation(c.conversationId));return b}(c),seatConversations:a.seatConversations()}}function W(a,b,c){var d,e;let f=a.structuredHost,g=f.process,h=a.key,j=(0,i.pp)(h),k=b.conversationsBySession.get(h.sessionId)??null,l=k?.id??null,m=k?b.file.memberships[k.id]??[]:[],n=m.find(a=>"pipeline"===a.kind)??null,p=k?.generations.find(a=>a.id===h.sessionId)??null;return{key:h,keyId:j,conversationId:l,title:p?.launchProfile.title??null,role:k?.agentRole??n?.role??p?.launchProfile.role??null,stage:n?.stageId??n?.slot??null,cwd:a.cwd||p?.launchProfile.cwd||"",transcriptPath:a.artifactPath||"",process:g,status:a.status,activeTurnRef:f.activeTurnRef,turnBusy:null===k?(0,o.nZ)("no conversation record establishes this host's turn state"):"unknown"===k.turn.state?(0,o.nZ)("the conversation's turn state is unknown"):(0,o.yV)("busy"===k.turn.state),pendingAttention:f.pendingAttention,activeFlags:f.activeFlags,pendingAction:a.pendingAction,structuredHostOperationId:a.structuredHostOperationId??null,undeliveredHandoffEntries:(0,o.Le)(b.undelivered,a=>a.count(j,l)),openOperations:b.openOperations.count(j,l),eventCursor:f.eventCursor,durableEventTail:c.durableEventTail(h.sessionId),realtimeBound:null===l?(0,o.nZ)("the host names no conversation, so no realtime binding can be looked up"):c.realtimeBound(l),seat:null===k?(0,o.nZ)("no conversation record establishes whether this host holds a seat"):(d=k.id,e=b.seatConversations,m.some(a=>"orchestrator"===a.kind)?(0,o.yV)(!0):(0,o.Le)(e,a=>a.has(d))),transcriptFile:a.artifactPath?c.transcriptStat(a.artifactPath):(0,o.yV)(null),observedStartIdentity:c.processIdentity(g.pid)}}function X(a){return a.determined?a.value:null}async function Y(a={}){let b=a.now??Date.now,c=b(),d=a.idleMs??M()??216e5,e=a.graceMs??N(),f=a.batch??C(e),g={snapshot:a.snapshot??(()=>(0,h.agentRegistry)().readOnlySnapshot()),handoffRows:a.handoffRows??(()=>{try{return(0,o.yV)((u??=new s(new t((0,j.BQ)("handoff-queue.sqlite")))).rows())}catch(a){return(0,o.nZ)(`the handoff queue could not be read: ${R(a)}`)}}),seatConversations:a.orchestratorSeatConversations??Q},i={durableEventTail:a.durableEventTail??(a=>(0,p.t2)(a)),realtimeBound:a.realtimeBound??P,transcriptStat:a.transcriptStat??O,processIdentity:a.processIdentity??(a=>{let b=l.B.processIdentity(a);return null===b?(0,o.nZ)(`no kernel identity can be observed for pid ${a}`):(0,o.yV)(b)})},k=a.processMemory??(a=>l.B.processMemory(a)),q=a.ppidMap??(()=>l.B.ppidMap()),r=a.owned??w.sy,v=a.terminate??(a=>y(a,{graceMs:e,deadlineMs:e+1e4})),x=a.record??T,z=a.publicationState??w.du,A={version:1,startedAt:new Date(c).toISOString(),finishedAt:"",idleHours:d/36e5,evaluated:0,deferred:0,standDown:null,retired:[],refused:[],failed:[],reclaimed:{rssBytes:0,swapBytes:0,processes:0}},B=z();if("ready"!==B)return A.standDown=B,A.finishedAt=new Date(b()).toISOString(),x(A),A;let D=V(g),E=Object.values(D.file.entries).filter(a=>!!a.structuredHost?.process&&("claude"===a.key.engine||"codex"===a.key.engine)&&null===a.host).slice(0,n.sb);A.evaluated=E.length;let F=[];for(let a of E){let b=W(a,D,i),e=L(b,{now:c,idleMs:d});if(!e.retire){A.refused.push({key:b.keyId,conversationId:b.conversationId,clause:e.clause,reason:e.reason,...e.undetermined?{undetermined:!0}:{}});continue}if(F.length>=f){A.deferred+=1;continue}F.push(b)}let G=null;for(let a of F){let e,f=V(g),h=f.file.entries[a.keyId]??null;if(null===h||!h.structuredHost?.process){A.refused.push({key:a.keyId,conversationId:a.conversationId,clause:"process-identity",reason:"the registry no longer records this host",changed:!0});continue}let j=W(h,f,i),l=L(j,{now:b(),idleMs:d});if(!l.retire){A.refused.push({key:j.keyId,conversationId:j.conversationId,clause:l.clause,reason:l.reason,...l.undetermined?{undetermined:!0}:{},changed:!0});continue}let n=j.process,o=j.transcriptFile.determined?j.transcriptFile.value?.mtimeMs??null:null;G??=q();let p=k((0,m.mO)(n.pid,G)),s={rssBytes:0,swapBytes:0,processes:p.size};for(let a of p.values())s.rssBytes+=a.rssBytes,s.swapBytes+=a.swapBytes;let t={kind:"structured",pid:n.pid,startIdentity:l.startIdentity,engine:j.key.engine,sessionId:j.key.sessionId,conversationId:j.conversationId,seat:X(j.seat),turnBusy:X(j.turnBusy),owned:r(j.key),lastActiveAt:null===o?null:new Date(o).toISOString()};try{e=await v(t)}catch(a){A.failed.push({key:j.keyId,conversationId:j.conversationId,error:String(a),remaining:[]});continue}if(!e.ok){A.failed.push({key:j.keyId,conversationId:j.conversationId,error:e.error,remaining:e.remaining});continue}A.retired.push({key:j.keyId,engine:j.key.engine,sessionId:j.key.sessionId,conversationId:j.conversationId,title:j.title,role:j.role,stage:j.stage,cwd:j.cwd,idleMs:null===o?0:c-o,passed:l.passed,via:e.via,pids:e.pids,reclaimed:s}),A.reclaimed.rssBytes+=s.rssBytes,A.reclaimed.swapBytes+=s.swapBytes,A.reclaimed.processes+=s.processes,G=null}return A.finishedAt=new Date(b()).toISOString(),x(A),A}async function Z(a={}){let b=M(a.env??process.env);if(null===b)return null;let c=a.sweep??(a=>Y({idleMs:a}));try{return await c(b)}catch(a){return console.error("[host retirement] sweep failed",a),null}}let $=globalThis;function _(a={}){if($.__llvStructuredHostRetirementTimer)return;let b=a.scheduleInterval??((a,b)=>setInterval(a,b)),c=a.sweep??(()=>Z()),d=b(()=>{c()},a.intervalMs??B);d.unref?.(),$.__llvStructuredHostRetirementTimer=d}function aa(){let a=$.__llvStructuredHostRetirementTimer;a&&clearInterval(a),$.__llvStructuredHostRetirementTimer=void 0}},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}},51888:(a,b,c)=>{c.d(b,{JL:()=>h,OV:()=>l,RC:()=>j,cC:()=>i,fC:()=>e,g9:()=>m,je:()=>d,wi:()=>n});let d="gpt-5.6-sol",e="gpt-5.6-terra",f="gpt-5.6-luna",g=new Set([d,e,f,"gpt-5.5","gpt-5.4","gpt-5.4-mini"]);function h(a){return!a?.trim()||g.has(a.trim())}let i={claude:[{id:"opus",label:"Opus 5",shortLabel:"Opus 5",use:"review"},{id:"fable",label:"Fable",shortLabel:"Fable",use:"general"},{id:"sonnet",label:"Sonnet",shortLabel:"Sonnet",use:"implement"},{id:"haiku",label:"Haiku",shortLabel:"Haiku",use:"general"}],codex:[{id:d,label:"GPT-5.6-Sol",shortLabel:"5.6-Sol",use:"review"},{id:e,label:"GPT-5.6-Terra",shortLabel:"5.6-Terra",use:"implement"},{id:f,label:"GPT-5.6-Luna",shortLabel:"5.6-Luna",use:"general"}]};function j(a,b){let c=b.trim(),d=i[a].map(a=>a.id);return d.includes(c)?{model:c}:{error:`invalid ${a} model id ${JSON.stringify(c)}; valid ${a} model ids: ${d.join(", ")}`}}let k=["fable","opus","sonnet","haiku"];function l(a){if("string"!=typeof a)return null;let b=a.trim().toLowerCase();if(!b||b.length>128||/[\u0000-\u001f\u007f]/.test(b))return null;for(let a of k)if(b===a||RegExp(`(?:^|[-_.])${a}(?:[-_.]|$)`).test(b))return a;return null}function m(a){if("string"!=typeof a)return!1;let b=a.trim();return b.startsWith("gpt-")&&b.length<=128&&!/[\u0000-\u001f\u007f]/.test(b)}function n(a){if(void 0===a.model||null===a.model||""===a.model)return{model:null};if("string"!=typeof a.model)return{model:null,error:"model must be a string"};let b=a.model.trim();return b?b.length>128||/[\u0000-\u001f\u007f]/.test(b)?{model:null,error:"model must be a printable id up to 128 characters"}:{model:b}:{model:null}}},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
|
|
25
|
+
import io
|
|
26
|
+
import os
|
|
27
|
+
import stat
|
|
28
|
+
import sys
|
|
29
|
+
import threading
|
|
30
|
+
|
|
31
|
+
try:
|
|
32
|
+
_path = os.environ["LLV_TELEGRAM_CONNECTOR_LOG"]
|
|
33
|
+
_limit = int(os.environ["LLV_TELEGRAM_CONNECTOR_LOG_MAX_BYTES"])
|
|
34
|
+
if _limit <= 0:
|
|
35
|
+
raise ValueError("invalid log limit")
|
|
36
|
+
_flags = os.O_RDWR | os.O_CREAT | os.O_APPEND
|
|
37
|
+
if hasattr(os, "O_NOFOLLOW"):
|
|
38
|
+
_flags |= os.O_NOFOLLOW
|
|
39
|
+
_fd = os.open(_path, _flags, 0o600)
|
|
40
|
+
_info = os.fstat(_fd)
|
|
41
|
+
if not stat.S_ISREG(_info.st_mode) or (_info.st_mode & 0o077):
|
|
42
|
+
raise PermissionError("unsafe connector log")
|
|
43
|
+
if hasattr(os, "getuid") and _info.st_uid != os.getuid():
|
|
44
|
+
raise PermissionError("connector log owner mismatch")
|
|
45
|
+
except Exception as _error:
|
|
46
|
+
raise SystemExit("connector log sink unavailable") from _error
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def _write_all(data):
|
|
50
|
+
view = memoryview(data)
|
|
51
|
+
while view:
|
|
52
|
+
written = os.write(_fd, view)
|
|
53
|
+
view = view[written:]
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class _BoundedConnectorLog(io.TextIOBase):
|
|
57
|
+
encoding = "utf-8"
|
|
58
|
+
errors = "backslashreplace"
|
|
59
|
+
|
|
60
|
+
def __init__(self):
|
|
61
|
+
self._lock = threading.Lock()
|
|
62
|
+
|
|
63
|
+
def writable(self):
|
|
64
|
+
return True
|
|
65
|
+
|
|
66
|
+
def isatty(self):
|
|
67
|
+
return False
|
|
68
|
+
|
|
69
|
+
def fileno(self):
|
|
70
|
+
return _fd
|
|
71
|
+
|
|
72
|
+
def flush(self):
|
|
73
|
+
return None
|
|
74
|
+
|
|
75
|
+
def write(self, value):
|
|
76
|
+
if not isinstance(value, str):
|
|
77
|
+
value = str(value)
|
|
78
|
+
data = value.encode(self.encoding, self.errors)
|
|
79
|
+
if not data:
|
|
80
|
+
return len(value)
|
|
81
|
+
with self._lock:
|
|
82
|
+
fcntl.flock(_fd, fcntl.LOCK_EX)
|
|
83
|
+
try:
|
|
84
|
+
size = os.fstat(_fd).st_size
|
|
85
|
+
if len(data) >= _limit:
|
|
86
|
+
tail = data[-_limit:]
|
|
87
|
+
os.ftruncate(_fd, 0)
|
|
88
|
+
_write_all(tail)
|
|
89
|
+
elif size + len(data) > _limit:
|
|
90
|
+
keep = _limit - len(data)
|
|
91
|
+
prior = os.pread(_fd, keep, max(0, size - keep))
|
|
92
|
+
os.ftruncate(_fd, 0)
|
|
93
|
+
_write_all(prior[-keep:] + data)
|
|
94
|
+
else:
|
|
95
|
+
_write_all(data)
|
|
96
|
+
finally:
|
|
97
|
+
fcntl.flock(_fd, fcntl.LOCK_UN)
|
|
98
|
+
return len(value)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
_sink = _BoundedConnectorLog()
|
|
102
|
+
sys.stdout = _sink
|
|
103
|
+
sys.stderr = _sink
|
|
104
|
+
`;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)}}}};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";exports.id=2318,exports.ids=[2318
|
|
2
|
-
`,{encoding:"utf8",
|
|
1
|
+
"use strict";exports.id=2318,exports.ids=[2318],exports.modules={62318:(a,b,c)=>{c.d(b,{d:()=>u});var d=c(77598),e=c.n(d),f=c(21872),g=c(27832),h=c(40713);function i(a=process.env){return"1"===a.LLV_WAKATIME_ENABLED}var j=c(73024),k=c.n(j),l=c(76760),m=c.n(l),n=c(91724);c(24191),c(74833);var o=c(2033);function p(a,b,c="activity"){return function(...a){return e().createHash("sha256").update(a.join("\0")).digest("hex")}("activity"===c?"llv-wakatime-heartbeat-v1":"llv-wakatime-boundary-v1",a,b)}function q(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function r(a){return"number"==typeof a&&Number.isFinite(a)}function s(a){return Number.isSafeInteger(a)&&a>=0}function t(a,b=(0,n.BQ)("wakatime-state.json"),c=i){if(c()){if(!/^[a-f0-9]{64}$/.test(a.key)||"claude"!==a.engine&&"codex"!==a.engine||!a.project.trim()||a.project.trim()===g.Mv||!Number.isSafeInteger(a.atMs)||a.atMs<=0)throw Error("direct operator heartbeat is invalid");(0,o.Ol)(b,"WakaTime state is busy",()=>{let c=function(a){if(!q(a)||1!==a.version||!r(a.enabledAtMs)||!q(a.streams)||!Array.isArray(a.pending)||!q(a.retry)||!q(a.counters))return null;let b=a.credentialGeneration??null;if(!(null===b||"string"==typeof b&&/^[a-f0-9]{64}$/.test(b)))return null;let c={};for(let[b,d]of Object.entries(a.streams)){if(!/^[a-f0-9]{64}$/.test(b)||!q(d)||"string"!=typeof d.entity||"claude"!==d.engine&&"codex"!==d.engine||"string"!=typeof d.project||0===d.project.length||!r(d.startedAtMs)||!(null===d.endedAtMs||r(d.endedAtMs))||!r(d.lastMaterializedAtMs)||!r(d.lastObservedAtMs)||!(void 0===d.boundaryFinalizedAtMs||null===d.boundaryFinalizedAtMs||r(d.boundaryFinalizedAtMs))||null!==d.endedAtMs&&d.endedAtMs<=d.startedAtMs||d.lastMaterializedAtMs<d.startedAtMs-1)return null;c[b]={entity:d.entity,engine:d.engine,project:d.project,startedAtMs:d.startedAtMs,endedAtMs:d.endedAtMs,lastMaterializedAtMs:d.lastMaterializedAtMs,lastObservedAtMs:d.lastObservedAtMs,boundaryFinalizedAtMs:d.boundaryFinalizedAtMs??null}}let d={},e=a.retiredStreams??{};if(!q(e))return null;for(let[a,b]of Object.entries(e)){if(!/^[a-f0-9]{64}$/.test(a)||!q(b)||!r(b.lastMaterializedAtMs)||!r(b.lastObservedAtMs)||!(null===b.boundaryFinalizedAtMs||r(b.boundaryFinalizedAtMs))||!r(b.expiresAtMs))return null;d[a]={lastMaterializedAtMs:b.lastMaterializedAtMs,lastObservedAtMs:b.lastObservedAtMs,boundaryFinalizedAtMs:b.boundaryFinalizedAtMs,expiresAtMs:b.expiresAtMs}}let f=[],g=new Set;for(let b of a.pending){var h;if(!q(b)||"string"!=typeof b.key||!/^[a-f0-9]{64}$/.test(b.key)||"string"!=typeof b.stream||!r(b.createdAtMs))return null;let a=q(h=b.heartbeat)&&"string"==typeof h.entity&&0!==h.entity.length&&"app"===h.type&&"string"==typeof h.project&&0!==h.project.length&&"ai coding"===h.category&&r(h.time)&&"string"==typeof h.ai_session&&64===h.ai_session.length?{entity:h.entity,type:"app",project:h.project,category:"ai coding",time:h.time,ai_session:h.ai_session}:null;if(!a)return null;let d=void 0===b.kind?"activity":b.kind;if("activity"!==d&&"boundary"!==d)return null;let e=c[b.stream],i=1e3*a.time;if(!e||!Number.isSafeInteger(i)||a.ai_session!==b.stream||a.entity!==("boundary"===d?`agent-log-viewer/boundary/${b.stream.slice(0,16)}`:e.entity)||a.project!==("boundary"===d?"agent-log-viewer-boundary":e.project)||b.key!==p(b.stream,i,d))return null;g.has(b.key)||(f.push({key:b.key,stream:b.stream,kind:d,createdAtMs:b.createdAtMs,heartbeat:a}),g.add(b.key))}let i=a.retry,j=i.reason;if(!s(i.failures)||!r(i.retryAtMs)||null!==j&&"network"!==j&&"timeout"!==j&&"rate_limit"!==j&&"server"!==j&&"auth"!==j)return null;let k=a.counters;return s(k.accepted)&&s(k.permanentlyRejected)&&s(k.compacted)&&s(k.dropped)&&s(k.historyGaps)?{version:1,enabledAtMs:a.enabledAtMs,credentialGeneration:b,streams:c,pending:f,retry:{failures:i.failures,retryAtMs:i.retryAtMs,reason:j},counters:{accepted:k.accepted,permanentlyRejected:k.permanentlyRejected,compacted:k.compacted,dropped:k.dropped,historyGaps:k.historyGaps},retiredStreams:d}:null}(function(a=(0,n.BQ)("wakatime-state.json")){try{return JSON.parse(k().readFileSync(a,"utf8"))}catch(a){if("ENOENT"===a.code)return null;throw a}}(b))??{version:1,enabledAtMs:a.atMs,credentialGeneration:null,streams:{},retiredStreams:{},pending:[],retry:{failures:0,retryAtMs:0,reason:null},counters:{accepted:0,permanentlyRejected:0,compacted:0,dropped:0,historyGaps:0}};!function(a,b,c,d){if(a.streams[b.key]||a.retiredStreams?.[b.key])return;let e=`agent-log-viewer/operator/${b.engine}/${b.key.slice(0,16)}`;a.streams[b.key]={entity:e,engine:b.engine,project:b.project,startedAtMs:b.atMs,endedAtMs:b.atMs+1,lastMaterializedAtMs:b.atMs+1,lastObservedAtMs:b.atMs,boundaryFinalizedAtMs:b.atMs+1};let f=p(b.key,b.atMs);d.has(f)||(a.pending.push({key:f,stream:b.key,kind:"activity",createdAtMs:c,heartbeat:{entity:e,type:"app",project:b.project,category:"ai coding",time:b.atMs/1e3,ai_session:b.key}}),d.add(f))}(c,{...a,project:a.project.trim()},a.atMs,new Set(c.pending.map(a=>a.key)));k().mkdirSync(m().dirname(b),{recursive:!0,mode:448});let d=m().join(m().dirname(b),`.${m().basename(b)}.${process.pid}.${e().randomUUID()}.tmp`);try{k().writeFileSync(d,`${JSON.stringify(c,null,2)}
|
|
2
|
+
`,{encoding:"utf8",mode:384}),k().renameSync(d,b)}finally{try{k().unlinkSync(d)}catch{}}})}}function u(a,b={}){let c={enabled:b.enabled??i,now:b.now??Date.now,registrySnapshot:b.registrySnapshot??(()=>(0,f.agentRegistry)().readOnlySnapshot()),enqueue:b.enqueue??t};if(!c.enabled())return null;let d=a.idempotencyKey?.trim()??"",j=a.resolvedAttribution;if(j&&("claude"!==j.engine&&"codex"!==j.engine||!j.project.trim()||j.project===g.Mv))throw Error("direct operator activity attribution is invalid");let k=j?null:(0,f.MA)(c.registrySnapshot()),l=a.conversationId?.trim()??"",m=a.path?.trim()??"",n=l.startsWith("conversation_")?k?.conversation(l)??null:null,o=m?k?.conversationForPath(m)??null:null,p=n?new Set([...n.generations.map(a=>a.path),...n.continuityPaths,...n.abandonedContinuityPaths]):null;if(n&&o&&n.id!==o.id||n&&m&&!p?.has(m))throw Error("direct operator activity has conflicting target evidence");let q=n??o,r=a.fallbackEntry,s=j?.engine??q?.engine??(r?.engine==="claude"||r?.engine==="codex"?r.engine:null);if(!s)throw Error("direct operator activity target is unavailable");let v=q?.generations.at(-1),w=j?.project.trim()??(0,h.x)({projectOwnership:q?.projectOwnership,cwd:v?.launchProfile.cwd||r?.cwd,launchProfileProject:v?.launchProfile.project,fallbackProject:r?.project}).project;if(!w||w===g.Mv)throw Error("direct operator activity project is unavailable");let x=c.now();if(!Number.isSafeInteger(x)||x<=0)throw Error("direct operator activity time is invalid");let y={key:d?function(...a){return e().createHash("sha256").update(a.join("\0")).digest("hex")}("llv-wakatime-direct-operator-v1",d):e().randomBytes(32).toString("hex"),engine:s,project:w,atMs:x};return c.enqueue(y),y}c(59683)}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=2324,exports.ids=[2324,2962],exports.modules={2033:(a,b,c)=>{c.d(b,{Ol:()=>r,Qm:()=>l,pM:()=>s});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(59683);let k=new Int32Array(new SharedArrayBuffer(4));class l extends Error{constructor(a){super(a),this.name="FileTransactionBusyError"}}function m(a){try{let b=JSON.parse(g().readFileSync(a,"utf8"));if("number"==typeof b.pid&&Number.isInteger(b.pid)&&b.pid>0){let a="string"==typeof b.startIdentity?b.startIdentity:null;if(!j.B.pidAlive(b.pid))return!0;if(null!==a){let c=j.B.processIdentity(b.pid);return null!==c&&c!==a}return!1}return Date.now()-g().statSync(a).mtimeMs>3e4}catch{try{return Date.now()-g().statSync(a).mtimeMs>3e4}catch{return!1}}}function n(a,b){try{JSON.parse(g().readFileSync(a,"utf8")).token===b&&g().rmSync(a,{force:!0})}catch{}}function o(a){let b=`${a}.write-lock`,c=`${a}.write-locks`;g().mkdirSync(c,{recursive:!0,mode:448});let d={pid:process.pid,startIdentity:j.B.processIdentity(process.pid),token:e().randomUUID()},f=i().join(c,`${String(Date.now()).padStart(16,"0")}-${process.pid}-${e().randomUUID()}.json`);return g().writeFileSync(f,JSON.stringify(d),{encoding:"utf8",flag:"wx",mode:384}),{lockPath:b,queuePath:c,owner:d,ticketPath:f}}function p(a){let b;if(function(a){let b=[];for(let c of g().readdirSync(a.queuePath).filter(a=>a.endsWith(".json")).sort()){let d=i().join(a.queuePath,c);if(m(d)){g().rmSync(d,{force:!0});continue}g().existsSync(d)&&b.push(d)}return b[0]??null}(a)!==a.ticketPath)return null;try{b=g().openSync(a.lockPath,"wx",384)}catch(b){if("EEXIST"!==b.code)throw b;return m(a.lockPath)&&g().rmSync(a.lockPath,{force:!0}),null}try{return g().writeFileSync(b,JSON.stringify(a.owner),"utf8"),g().fsyncSync(b),b}catch(c){throw g().closeSync(b),g().rmSync(a.lockPath,{force:!0}),c}}function q(a,b){g().closeSync(b),n(a.lockPath,a.owner.token)}function r(a,b,c){let d=o(a);try{for(let a=0;a<6e3;a+=1){let a=p(d);if(null===a){Atomics.wait(k,0,0,5);continue}try{return c()}finally{q(d,a)}}throw new l(b)}finally{n(d.ticketPath,d.owner.token)}}async function s(a,b,c){let d=o(a);try{for(let a=0;a<6e3;a+=1){let a=p(d);if(null===a){await new Promise(a=>setTimeout(a,5));continue}try{return await c()}finally{q(d,a)}}throw new l(b)}finally{n(d.ticketPath,d.owner.token)}}},17918:(a,b,c)=>{c.d(b,{$D:()=>j,Fl:()=>f,Ow:()=>q,RM:()=>d,SY:()=>k,TY:()=>e,WX:()=>n,We:()=>g,YA:()=>s,ZJ:()=>m,bz:()=>h,c7:()=>l,j7:()=>t,lx:()=>p,nB:()=>i,nQ:()=>u,up:()=>o,ym:()=>r});let d=1,e=32768,f=128,g=64,h=16,i=98304,j=32768,k=["schemaVersion","view","scope","text","caller"],l=["id","deviceId","resolution"],m=["kind","paths"],n=["include","lastMessages","maxCharsPerConversation"],o=["pid","transcriptPath"],p=["focused","selected","visible","focused-selected","paths"],q=["latest-interaction","require-explicit"],r=20,s=4e3,t=1,u=4096},22962:(a,b,c)=>{c.d(b,{Cu:()=>E,gB:()=>p,oV:()=>D});var d=c(16698),e=c(77598),f=c.n(e),g=c(73024),h=c.n(g),i=c(76760),j=c.n(i),k=c(91724),l=c(59683);let m=globalThis.__llvAccountMutationRuntime??={transactionContext:new d.AsyncLocalStorage,localWaiters:[],localHeld:!1},n=m.transactionContext,o=m.localWaiters;class p extends Error{constructor(a="account mutation is busy; retry shortly"){super(a),this.name="AccountMutationBusyError"}}function q(){let a=o.shift();a?a():m.localHeld=!1}async function r(){return m.localHeld?await new Promise(a=>o.push(a)):m.localHeld=!0,q}let s=function(){try{return h().readlinkSync("/proc/self/ns/pid")}catch{return null}}();function t(a,b){try{return Date.now()-h().statSync(a).mtimeMs>b}catch{return!1}}function u(a,b=null){if(null!==b&&t(a,b))return!0;try{let b=JSON.parse(h().readFileSync(a,"utf8"));if("number"==typeof b.pid&&Number.isInteger(b.pid)&&b.pid>0){if(("string"==typeof b.ns?b.ns:null)!==s)return t(a,3e4);if(!l.B.pidAlive(b.pid))return!0;if("string"!=typeof b.startIdentity)return!1;let c=l.B.processIdentity(b.pid);return null!==c&&c!==b.startIdentity}return t(a,3e4)}catch{return t(a,3e4)}}function v(a,b){try{JSON.parse(h().readFileSync(a,"utf8")).token===b&&h().rmSync(a,{force:!0})}catch{}}function w(){try{let a=JSON.parse(h().readFileSync((0,k.BQ)("account-mutation-revision.json"),"utf8"));return 1===a.version&&Number.isSafeInteger(a.revision)&&a.revision>=0?a.revision:0}catch{return 0}}function x(){let a=(0,k.BQ)("account-selection.lock"),b=`${a}.queue`;h().mkdirSync(b,{recursive:!0,mode:448});let c={pid:process.pid,startIdentity:l.B.processIdentity(process.pid),ns:s,token:f().randomUUID()},d=j().join(b,`${String(Date.now()).padStart(16,"0")}-${process.pid}-${f().randomUUID()}.json`);return h().writeFileSync(d,JSON.stringify(c),{encoding:"utf8",flag:"wx",mode:384}),{lock:a,queue:b,owner:c,ticket:d}}function y(a){let b=new Date;try{return h().utimesSync(a,b,b),!0}catch{return!1}}function z(a){let b,c=[];for(let b of h().readdirSync(a.queue).filter(a=>a.endsWith(".json")).sort()){let d=j().join(a.queue,b);if(d!==a.ticket&&u(d,6e5)){h().rmSync(d,{force:!0});continue}h().existsSync(d)&&c.push(d)}if(c[0]!==a.ticket)return null;try{b=h().openSync(a.lock,"wx",384)}catch(b){if("EEXIST"!==b.code)throw b;return u(a.lock)&&h().rmSync(a.lock,{force:!0}),null}try{h().writeFileSync(b,JSON.stringify(a.owner),"utf8"),h().fsyncSync(b)}catch(c){throw h().closeSync(b),h().rmSync(a.lock,{force:!0}),c}let d={active:!0,revision:w()},e=setInterval(()=>y(a.lock),1e4);return e.unref?.(),{context:d,release(){clearInterval(e),d.active=!1,h().closeSync(b),v(a.lock,a.owner.token),v(a.ticket,a.owner.token)}}}function A(a,b){return{context:a.context,release(){try{a.release()}finally{b()}}}}async function B(){let a=await r(),b=null;try{b=x();let d=Date.now();for(let e=0;e<2e3;e+=1){let e=z(b);if(e)return A(e,a);if(Date.now()-d>=1e4){d=Date.now();var c=b;if(!y(c.ticket))try{h().writeFileSync(c.ticket,JSON.stringify(c.owner),{encoding:"utf8",mode:384})}catch{}}await new Promise(a=>setTimeout(a,5))}throw Error("account mutation is busy; retry shortly")}catch(c){throw b&&v(b.ticket,b.owner.token),a(),c}}function C(a){!function(a){let b=(0,k.BQ)("account-mutation-revision.json");if(w()!==a)throw Error("account mutation revision fence changed while locked");let c=`${b}.${process.pid}.${f().randomUUID()}.tmp`;h().mkdirSync(j().dirname(b),{recursive:!0,mode:448});try{h().writeFileSync(c,JSON.stringify({version:1,revision:a+1})+"\n",{mode:384});let d=h().openSync(c,"r");try{h().fsyncSync(d)}finally{h().closeSync(d)}h().renameSync(c,b)}finally{h().rmSync(c,{force:!0})}}(a.revision),a.revision+=1}function D(a){let b=n.getStore();if(b?.active)return a();let c=function(){let a=function(){if(m.localHeld)throw new p("account mutation is busy in this process; retry shortly");return m.localHeld=!0,q}(),b=null;try{b=x();for(let c=0;c<2;c+=1){let c=z(b);if(c)return A(c,a)}throw new p}catch(c){throw b&&v(b.ticket,b.owner.token),a(),c}}();try{return C(c.context),n.run(c.context,a)}finally{c.release()}}async function E(a){let b=n.getStore();if(b?.active)return a();let c=await B();try{return C(c.context),await n.run(c.context,a)}finally{c.release()}}},29621:(a,b,c)=>{c.d(b,{L4:()=>l,P1:()=>m,g5:()=>g,yi:()=>f});var d=c(40370),e=c(37073);class f extends Error{constructor(a,b,c=400){super(b),this.code=a,this.status=c,this.name="AttentionRequestError"}}async function g(a){let b=await a.text();if(b.length>16384)throw new f("PAYLOAD_TOO_LARGE","request body is too large",413);try{return JSON.parse(b)}catch{throw new f("INVALID_REQUEST","request body is not JSON")}}function h(a,b){if(!a||"object"!=typeof a||Array.isArray(a))throw new f("INVALID_REQUEST",`invalid ${b}`);return a}function i(a,b,c=4096){if("string"!=typeof a||0===a.length||a.length>c)throw new f("INVALID_REQUEST",`invalid ${b}`);return a}function j(a,b){if("number"!=typeof a||!Number.isFinite(a))throw new f("INVALID_REQUEST",`invalid ${b}`);return a}let k=["overview","scheme","list","mobile-focus","mobile-map"];function l(a){let b,c,g=h(a,"request"),k=g.origin;if("root-agent"!==k&&"operator"!==k)throw new f("INVALID_REQUEST","invalid origin");let l=g.intent;if("show"!==l&&"open"!==l)throw new f("INVALID_REQUEST","invalid intent");if(!(0,d.Cj)(g.target))throw new f("INVALID_TARGET","invalid focus target");if(void 0!==g.zoom&&"inspect"!==g.zoom&&"situate"!==g.zoom)throw new f("INVALID_REQUEST","invalid zoom");let m=void 0===g.candidates?void 0:(()=>{if(!Array.isArray(g.candidates)||g.candidates.length>e.oT)throw new f("INVALID_REQUEST","invalid candidates");return g.candidates.map(a=>{let b=h(a,"candidate");return{eventId:i(b.eventId,"candidate.eventId",256),...void 0===b.kind?{}:{kind:i(b.kind,"candidate.kind",64)}}})})();return{origin:k,intent:l,target:g.target,frameAtCreation:(b=h(g.frameAtCreation,"frameAtCreation"),c=h(b.rect,"frameAtCreation.rect"),{project:i(b.project,"frameAtCreation.project",256),rect:{x:j(c.x,"frameAtCreation.rect.x"),y:j(c.y,"frameAtCreation.rect.y"),w:j(c.w,"frameAtCreation.rect.w"),h:j(c.h,"frameAtCreation.rect.h")},boardRevision:null===b.boardRevision||void 0===b.boardRevision?null:j(b.boardRevision,"frameAtCreation.boardRevision")}),reason:i(g.reason,"reason",4096),...void 0===g.zoom?{}:{zoom:g.zoom},...void 0===g.contextLabel?{}:{contextLabel:i(g.contextLabel,"contextLabel",512)},...void 0===m?{}:{candidates:m},...void 0===g.offeredTo?{}:{offeredTo:(Array.isArray(g.offeredTo)?g.offeredTo:[]).map(a=>i(a,"offeredTo",256))}}}function m(a){let b=h(a,"event");switch(b.kind){case"offer":case"preview":case"decline":case"dismiss":case"abandon":return{kind:b.kind,deviceId:i(b.deviceId,"deviceId",256)};case"accept":{let a=b.via;if(void 0!==a&&"operator"!==a&&"auto-follow"!==a)throw new f("INVALID_REQUEST","invalid via");return{kind:"accept",deviceId:i(b.deviceId,"deviceId",256),...void 0===a?{}:{via:a}}}case"arrive":{let a=b.resolution;if("exact"!==a&&"approximate"!==a&&"lost"!==a)throw new f("INVALID_REQUEST","invalid resolution");return{kind:"arrive",deviceId:i(b.deviceId,"deviceId",256),returnPoint:function(a){let b=h(a,"returnPoint"),c=b.mode;if("string"!=typeof c||!k.includes(c))throw new f("INVALID_REQUEST","invalid returnPoint.mode");let d=null===b.camera||void 0===b.camera?null:h(b.camera,"returnPoint.camera");return{deviceId:i(b.deviceId,"returnPoint.deviceId",256),mode:c,camera:null===d?null:{x:j(d.x,"returnPoint.camera.x"),y:j(d.y,"returnPoint.camera.y"),zoom:j(d.zoom,"returnPoint.camera.zoom")},focusedPath:null===b.focusedPath||void 0===b.focusedPath?null:i(b.focusedPath,"returnPoint.focusedPath"),capturedAt:i(b.capturedAt,"returnPoint.capturedAt",64)}}(b.returnPoint),resolution:a}}case"return":{let a=b.via;if("control"!==a&&"manual-move"!==a)throw new f("INVALID_REQUEST","invalid via");return{kind:"return",deviceId:i(b.deviceId,"deviceId",256),via:a}}default:throw new f("INVALID_REQUEST","unsupported event")}}},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})}},35961:(a,b,c)=>{c.d(b,{W:()=>g});var d=c(23211);let e=["localhost","127.0.0.1","::1"];function f(a){if(a.startsWith("[")){let b=a.indexOf("]");return -1===b?a:a.slice(1,b)}let b=a.lastIndexOf(":");return -1===b?a:a.slice(0,b)}function g(a){let b=new Set(e),c=process.env.LLV_TS_HOST;c&&b.add(f(c));let d=a.headers.get("host");if(null===d||!b.has(f(d)))return h();let g=a.headers.get("origin");if(null!==g){let a;try{a=new URL(g).host}catch{a=null}if(null===a||!b.has(f(a)))return h()}let i=a.headers.get("sec-fetch-site");return null!==i&&"same-origin"!==i&&"none"!==i?h():null}function h(){return d.NextResponse.json({error:"forbidden: cross-origin request"},{status:403})}},37073:(a,b,c)=>{c.d(b,{M1:()=>g,Nh:()=>e,PB:()=>h,Q0:()=>n,RY:()=>f,Vw:()=>k,hl:()=>j,jC:()=>i,oT:()=>l,yH:()=>d});let d=1,e=6e5,f=6e4,g=6e4,h=6e5,i=3,j=240,k=120,l=8,m=["returned","declined","expired","superseded"];function n(a){return m.includes(a)}},40370:(a,b,c)=>{function d(a,b){return"open"===b?"inspect":"situate"}function e(a){return"number"==typeof a&&Number.isFinite(a)}function f(a){return"string"==typeof a&&a.length>0&&a.length<=4096}function g(a){if(!a||"object"!=typeof a||Array.isArray(a))return!1;switch(a.kind){case"conversation":return f(a.path);case"pipeline":return f(a.pipelineId);case"stage":return f(a.pipelineId)&&f(a.stageId);case"flowRound":return f(a.flowId)&&Number.isInteger(a.round)&&a.round>=0;case"task":return f(a.taskId);case"draft":return f(a.draftId);case"region":var b;return f(a.project)&&!(!(b=a.rect)||"object"!=typeof b||Array.isArray(b))&&e(b.x)&&e(b.y)&&e(b.w)&&e(b.h)&&b.w>=0&&b.h>=0;case"point":return f(a.project)&&e(a.x)&&e(a.y)&&(void 0===a.zoom||e(a.zoom)&&a.zoom>0);default:return!1}}function h(a,b){return"show"===b||"region"!==a.kind&&"point"!==a.kind}c.d(b,{Cj:()=>g,Rh:()=>h,xt:()=>d}),[{kind:"conversation",fields:'conversationId (the durable "conversation_…" id, resolved to its current transcript) or path (that transcript\'s .jsonl path) — at least one',example:'{"kind":"conversation","conversationId":"conversation_9f2c"}'},{kind:"pipeline",fields:"pipelineId (non-empty string)",example:'{"kind":"pipeline","pipelineId":"pipeline_9f2c"}'},{kind:"stage",fields:"pipelineId and stageId (non-empty strings)",example:'{"kind":"stage","pipelineId":"pipeline_9f2c","stageId":"review"}'},{kind:"flowRound",fields:"flowId (non-empty string) and round (integer, 0 or more)",example:'{"kind":"flowRound","flowId":"flow_9f2c","round":2}'},{kind:"task",fields:"taskId (non-empty string)",example:'{"kind":"task","taskId":"task_9f2c"}'},{kind:"draft",fields:"draftId (non-empty string), and a top-level project alongside target — a draft exists only on the operator's canvas, so the server cannot attribute it",example:'{"kind":"draft","draftId":"draft_9f2c"}'},{kind:"region",fields:"project (non-empty string) and rect {x, y, w, h} (finite numbers; w and h 0 or more)",example:'{"kind":"region","project":"live-log-viewer-next","rect":{"x":0,"y":0,"w":800,"h":600}}'},{kind:"point",fields:"project (non-empty string), x and y (finite numbers), and an optional zoom (greater than 0)",example:'{"kind":"point","project":"live-log-viewer-next","x":1200,"y":480}'}].map(a=>a.kind)},42713:(a,b,c)=>{c.d(b,{I9:()=>z,ZW:()=>B,n0:()=>A,uA:()=>C});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(89940),l=c(17918);let m=globalThis;function n(){return m.__llvViewPresence??=new Map}function o(){return(0,j.BQ)("view-presence.json")}let p=new Set(["desktop","tablet","mobile"]),q=new Set(["chrome","firefox","safari","other"]),r=new Set(["overview","scheme","list","mobile-focus","mobile-map"]),s=new Set(["current","pending","stale","unavailable"]);function t(a){return"number"==typeof a&&Number.isFinite(a)}function u(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function v(a){return null===a||"string"==typeof a}function w(a){return Array.isArray(a)&&a.every(a=>"string"==typeof a)}function x(a){return null===a||t(a)}function y(a){let b=n();for(let[a,c]of b){let d=c.project?(0,k.G$)(c.project):null;d!==c.project&&b.set(a,{...c,project:d})}for(let c of function(a){let b;try{b=g().readFileSync(o(),"utf8")}catch{return[]}try{let c=JSON.parse(b);if(1!==c.schemaVersion||!Array.isArray(c.sessions))return[];return c.sessions.filter(b=>{var c,d;let e,f,g,h;return c=b,d=a,!!(h=u(c))&&h.schemaVersion===l.RM&&"string"==typeof h.viewSessionId&&0!==h.viewSessionId.length&&"string"==typeof h.deviceId&&0!==h.deviceId.length&&("visible"===h.visibility||"hidden"===h.visibility)&&"string"==typeof h.mode&&!!r.has(h.mode)&&!!v(h.project)&&!!v(h.focusedPath)&&!!w(h.selectedPaths)&&!!w(h.visiblePaths)&&(e=u(h.device),!!(null!==e&&"string"==typeof e.kind&&p.has(e.kind)&&"string"==typeof e.browser&&q.has(e.browser)))&&(f=u(h.viewport),!!(null!==f&&t(f.width)&&t(f.height)&&t(f.dpr))&&!!function(a){if(null===a)return!0;let b=u(a);if(!b)return!1;let c=u(b.worldRect);return t(b.x)&&t(b.y)&&t(b.zoom)&&null!==c&&t(c.x)&&t(c.y)&&t(c.width)&&t(c.height)}(h.camera))&&(g=u(h.board),!!(null!==g&&x(g.renderedRevision)&&x(g.durableRevision)&&"string"==typeof g.sync&&s.has(g.sync))&&!!t(h.sequence)&&!!t(h.inputSequence)&&!!t(h.lastSeenAt)&&!!t(h.lastInteractionAt)&&!(h.lastSeenAt<=0)&&!(h.lastInteractionAt<=0)&&!(h.lastSeenAt>d+5e3)&&!(h.lastInteractionAt>d+5e3)&&!0)}).map(a=>({...a,project:a.project?(0,k.G$)(a.project):null}))}catch{return[]}}(a)){let a=b.get(c.viewSessionId);(!a||c.sequence>a.sequence)&&b.set(c.viewSessionId,c)}return function(a,b=n()){for(let[c,d]of b)a-d.lastSeenAt>12e4&&b.delete(c)}(a,b),b}function z(a,b=Date.now()){let c=Math.max(0,b-a.lastSeenAt);return"visible"===a.visibility?c<25e3?"active":"stale":c<=12e4?"background":"stale"}function A(a,b=Date.now()){let c=y(b),d=c.get(a.viewSessionId);if(d&&a.sequence<=d.sequence)return{accepted:!1,session:d};d||function(a){for(;a.size>=32;){let b=[...a.values()].sort((a,b)=>a.lastSeenAt-b.lastSeenAt)[0];if(!b)break;a.delete(b.viewSessionId)}}(c);let f=!d||a.inputSequence>d.inputSequence,h={...a,project:a.project?(0,k.G$)(a.project):null,inputSequence:Math.max(d?.inputSequence??0,a.inputSequence),lastSeenAt:b,lastInteractionAt:f?b:d?.lastInteractionAt??b};return c.set(a.viewSessionId,h),!function(a,b){let c={schemaVersion:1,updatedAt:new Date(b).toISOString(),sessions:[...a]},d=o(),f=i().join(i().dirname(d),`.${i().basename(d)}.${process.pid}.${e().randomUUID()}.tmp`);try{g().mkdirSync(i().dirname(d),{recursive:!0}),g().writeFileSync(f,JSON.stringify(c,null,2)+"\n",{encoding:"utf8",mode:384}),g().renameSync(f,d)}catch{g().rmSync(f,{force:!0})}}(c.values(),b),{accepted:!0,session:h}}function B(a,b=Date.now()){return{viewSessionId:a.viewSessionId,deviceId:a.deviceId,device:a.device,visibility:a.visibility,freshness:z(a,b),presenceAgeMs:Math.max(0,b-a.lastSeenAt),lastSeenAt:new Date(a.lastSeenAt).toISOString(),lastInteractionAt:new Date(a.lastInteractionAt).toISOString(),project:a.project,mode:a.mode}}function C(a=Date.now()){return[...y(a).values()].sort((a,b)=>b.lastInteractionAt-a.lastInteractionAt||b.lastSeenAt-a.lastSeenAt||a.viewSessionId.localeCompare(b.viewSessionId))}},42829:(a,b,c)=>{c.d(b,{T:()=>i});var d=c(23211),e=c(59117),f=c(29621),g=c(2033);let h={"Cache-Control":"no-store"};function i(a){return a instanceof f.yi?d.NextResponse.json({error:a.code,message:a.message},{status:a.status,headers:h}):a instanceof e.Kg?d.NextResponse.json({error:a.code,message:a.message},{status:400,headers:h}):a instanceof g.Qm?d.NextResponse.json({error:"ATTENTION_STATE_BUSY",message:a.message},{status:503,headers:{...h,"Retry-After":"1"}}):a instanceof e.SG?d.NextResponse.json({error:"ATTENTION_STATE_UNAVAILABLE",message:a.message},{status:503,headers:h}):d.NextResponse.json({error:"INVALID_REQUEST",message:"invalid request"},{status:400,headers:h})}},53315:(a,b,c)=>{c.d(b,{ao:()=>m,S5:()=>k,wd:()=>l});var d=c(29733),e=c(33017),f=c(42713);let g=new Set(["overview","scheme","mobile-focus","mobile-map"]);var h=c(54873),i=c(59117);function j(a,b){return Date.parse(a.createdAt)-Date.parse(b.createdAt)||a.id.localeCompare(b.id)}function k(a,b={}){let c=b.now??new Date,d=(0,i.m9)({filePath:b.filePath,now:c}),f=(0,i.$C)(b.filePath,c),g=(0,i.D3)(f).sort(j).map(b=>({request:b,status:(0,h.kt)(b,a),returnAvailable:(0,h.Qo)(b,a,c)})),l=g.filter(a=>"actionable"===a.status||"following"===a.status),m=l.find(a=>(0,h.H2)(a.request,c))??l[0]??null;return{rootId:(0,e.ng)(),offer:m,live:g,expired:d}}function l(a,b={}){return(0,i.eL)({...a,offeredTo:a.offeredTo??("root-agent"===a.origin&&void 0===a.directedAt?function(a=new Date){return(function(a=new Date){let b=a.getTime(),c=[];for(let a of(0,f.uA)(b)){var d;"mobile"!==(d={...a,freshness:(0,f.I9)(a,b)}).device.kind&&g.has(d.mode)&&"visible"===d.visibility&&"active"===d.freshness&&d.viewport.width>=768&&(c.some(b=>b.deviceId===a.deviceId)||c.push(a))}return c})(a).map(a=>a.deviceId)}(b.now):void 0),target:function(a,b){if("conversation"!==a.kind)return a;let c=b??(0,d.agentRegistry)(),e=c.conversationForPath(a.path)?.generations.at(-1);return e&&e.path!==a.path?{kind:"conversation",path:e.path}:a}(a.target,b.conversations),rootId:(0,e.ng)()},b)}function m(a,b,c={}){return(0,i.d4)(a,b,c)}},54873:(a,b,c)=>{c.d(b,{H2:()=>k,KN:()=>m,Qo:()=>j,kt:()=>l,qH:()=>h,tE:()=>n});var d=c(37073);let e=["pending","offered","previewing"];function f(a,b){return{ok:!1,reason:b,state:a.state}}function g(a,b,c,d={}){return{ok:!0,changed:!0,request:{...a,...d,state:b,stateChangedAt:c.toISOString(),revision:a.revision+1}}}function h(a,b){return e.includes(a.state)?Date.parse(a.expiresAt)<=b.getTime()?"ttl":null:"accepted"===a.state?b.getTime()-Date.parse(a.stateChangedAt)>=d.M1?"lost":null:"following"===a.state&&b.getTime()-Date.parse(a.stateChangedAt)>=d.PB?"follow-elapsed":null}function i(a,b){return"following"===a.state&&b.getTime()-Date.parse(a.stateChangedAt)<d.RY}function j(a,b,c){if("following"!==a.state||a.acknowledgedBy!==b)return!1;let e=a.returnPoints.find(a=>a.deviceId===b);return void 0!==e&&c.getTime()-Date.parse(e.capturedAt)<d.RY}function k(a,b){return"following"!==a.state||i(a,b)}function l(a,b){return(0,d.Q0)(a.state)?"closed":"accepted"===a.state||"following"===a.state?a.acknowledgedBy===b?"following":"withdrawn":"pending"===a.state?"none":a.offeredTo.includes(b)?"actionable":"none"}function m(a){return new Date(a.getTime()+d.Nh).toISOString()}function n(a,b,c={}){let h=c.now??new Date;if(void 0!==c.expectedRevision&&c.expectedRevision!==a.revision)return f(a,"stale-revision");if((0,d.Q0)(a.state))return f(a,"invalid-transition");switch(b.kind){case"offer":{if("pending"!==a.state&&"offered"!==a.state)return f(a,"invalid-transition");if("offered"===a.state&&a.offeredTo.includes(b.deviceId))return{ok:!0,request:a,changed:!1};let c=a.offeredTo.includes(b.deviceId)?a.offeredTo:[...a.offeredTo,b.deviceId];return g(a,"offered",h,{offeredTo:c})}case"preview":if("offered"!==a.state)return f(a,"invalid-transition");if(!a.offeredTo.includes(b.deviceId))return f(a,"not-offered");return g(a,"previewing",h);case"accept":if("offered"!==a.state&&"previewing"!==a.state)return f(a,"invalid-transition");if(!a.offeredTo.includes(b.deviceId))return f(a,"not-offered");return g(a,"accepted",h,{acknowledgedBy:b.deviceId,acceptedVia:b.via??"operator"});case"arrive":{if("accepted"!==a.state)return f(a,"invalid-transition");if(a.acknowledgedBy!==b.deviceId)return f(a,"not-acknowledger");if("lost"===b.resolution)return f(a,"lost-target");let c=[...a.returnPoints.filter(a=>a.deviceId!==b.deviceId),b.returnPoint];return g(a,"following",h,{returnPoints:c,resolution:b.resolution})}case"abandon":if("accepted"!==a.state)return f(a,"invalid-transition");if(a.acknowledgedBy!==b.deviceId)return f(a,"not-acknowledger");return g(a,"expired",h,{expiredCause:"lost"});case"decline":if("offered"!==a.state)return f(a,"invalid-transition");if(!a.offeredTo.includes(b.deviceId))return f(a,"not-offered");return g(a,"declined",h);case"dismiss":if("previewing"!==a.state)return f(a,"invalid-transition");if(!a.offeredTo.includes(b.deviceId))return f(a,"not-offered");return g(a,"declined",h);case"return":if("following"!==a.state)return f(a,"invalid-transition");if(a.acknowledgedBy!==b.deviceId)return f(a,"not-acknowledger");return g(a,"returned",h,{returnedVia:b.via});case"expire":{let c="accepted"===a.state&&"lost"===b.cause,d="following"===a.state&&"follow-elapsed"===b.cause;if(!e.includes(a.state)&&!c&&!d)return f(a,"invalid-transition");return g(a,"expired",h,{expiredCause:b.cause})}case"supersede":if(e.includes(a.state)||"following"===a.state&&!i(a,h))return g(a,"superseded",h,{supersededBy:b.by});return f(a,"invalid-transition")}}},59117:(a,b,c)=>{c.d(b,{$C:()=>t,D3:()=>v,Kg:()=>r,SG:()=>q,d4:()=>x,eL:()=>w,m9:()=>y});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724),k=c(2033),l=c(54873),m=c(40370),n=c(37073);let o=["pending","offered","previewing"];function p(){return(0,j.BQ)("attention.json")}class q extends Error{constructor(a,b){super(a,b),this.name="AttentionStoreError"}}class r extends Error{constructor(a,b){super(b),this.code=a,this.name="AttentionValidationError"}}function s(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.id&&a.id.length>0&&"string"==typeof a.createdAt&&!!a.requestedBy&&"string"==typeof a.requestedBy.rootId&&a.requestedBy.rootId.length>0&&("root-agent"===a.origin||"operator"===a.origin)&&(0,m.Cj)(a.target)&&"string"==typeof a.state&&"string"==typeof a.stateChangedAt&&"string"==typeof a.expiresAt&&Array.isArray(a.offeredTo)&&a.offeredTo.every(a=>"string"==typeof a)&&Array.isArray(a.returnPoints)&&Number.isInteger(a.revision)&&a.revision>=0}function t(a=p(),b=new Date){let c,d;try{c=g().readFileSync(a,"utf8")}catch(a){if("ENOENT"===a.code)return{schemaVersion:n.yH,revision:0,updatedAt:b.toISOString(),requests:[]};throw new q("could not read attention state",{cause:a})}try{d=JSON.parse(c)}catch(a){throw new q("attention state contains malformed JSON",{cause:a})}if(d.schemaVersion!==n.yH)throw new q(`unsupported attention schema: ${String(d.schemaVersion)}`);if(!Number.isInteger(d.revision)||!Array.isArray(d.requests))throw new q("attention state is not a valid record");if(!d.requests.every(s))throw new q("attention state holds an invalid request");return{schemaVersion:n.yH,revision:d.revision,updatedAt:"string"==typeof d.updatedAt?d.updatedAt:b.toISOString(),requests:d.requests}}function u(a,b={}){let c=b.filePath??p(),d=b.now??new Date;return(0,k.Ol)(c,"attention state is busy",()=>{var b;let f,h,j,k=t(c,d),l=a(k);return l.requests&&function(a,b){g().mkdirSync(i().dirname(a),{recursive:!0});let c=i().join(i().dirname(a),`.${i().basename(a)}.${process.pid}.${e().randomUUID()}.tmp`),d=null;try{d=g().openSync(c,"wx",384),g().writeFileSync(d,JSON.stringify(b,null,2)+"\n","utf8"),g().fsyncSync(d),g().closeSync(d),d=null,g().renameSync(c,a)}finally{null!==d&&g().closeSync(d),g().rmSync(c,{force:!0})}}(c,{schemaVersion:n.yH,revision:k.revision+1,updatedAt:d.toISOString(),requests:(f=(b=l.requests).filter(a=>!(0,n.Q0)(a.state)),j=(h=b.filter(a=>(0,n.Q0)(a.state))).length>50?h.slice(h.length-50):h,b.filter(a=>f.includes(a)||j.includes(a)))}),l.result})}function v(a){return a.requests.filter(a=>!(0,n.Q0)(a.state))}function w(a,b={}){if("string"!=typeof a.rootId||0===a.rootId.length)throw new r("INVALID_ROOT","a request must name the root agent by its stable identity");if(!(0,m.Cj)(a.target))throw new r("INVALID_TARGET","invalid focus target");if("show"!==a.intent&&"open"!==a.intent)throw new r("INVALID_INTENT","intent must be show or open");if(!(0,m.Rh)(a.target,a.intent))throw new r("INTENT_NOT_AVAILABLE","a geometric target can only be shown, not opened");if("string"!=typeof a.reason||0===a.reason.trim().length||a.reason.length>n.hl)throw new r("INVALID_REASON",`a request needs one operator-safe sentence of at most ${n.hl} characters`);if(void 0!==a.contextLabel&&("string"!=typeof a.contextLabel||a.contextLabel.length>n.Vw))throw new r("INVALID_CONTEXT_LABEL","invalid context label");if(void 0!==a.candidates&&(!Array.isArray(a.candidates)||a.candidates.length>n.oT))throw new r("INVALID_CANDIDATES","too many journal candidates");if(!a.frameAtCreation||"string"!=typeof a.frameAtCreation.project||0===a.frameAtCreation.project.length)throw new r("INVALID_FRAME","a request must record the frame it was created against");if(void 0!==a.directedAt&&("string"!=typeof a.directedAt||0===a.directedAt.length))throw new r("INVALID_DIRECTED_AT","a directed handoff must name the device it moves");if(void 0!==a.directedAtSession&&("string"!=typeof a.directedAtSession||0===a.directedAtSession.length||void 0===a.directedAt))throw new r("INVALID_DIRECTED_SESSION","a directed session must be a browser session id on a directed handoff");if(void 0!==a.operationKey&&("string"!=typeof a.operationKey||0===a.operationKey.length))throw new r("INVALID_OPERATION_KEY","an operation key must be a non-empty identity");let c=b.now??new Date;return u(d=>{if(void 0!==a.operationKey){let b=d.requests.find(b=>b.operationKey===a.operationKey);if(b)return{requests:void 0,result:{request:b,superseded:[],dropped:[],adopted:!0}}}let f=b.id??`attention_${e().randomUUID()}`,g={id:f,createdAt:c.toISOString(),requestedBy:{rootId:a.rootId},origin:a.origin,...void 0!==a.raisedBy?{raisedBy:a.raisedBy}:{},target:a.target,frameAtCreation:a.frameAtCreation,intent:a.intent,zoom:a.zoom??(0,m.xt)(a.target,a.intent),reason:a.reason.trim(),...void 0!==a.contextLabel?{contextLabel:a.contextLabel}:{},...void 0!==a.candidates?{candidates:a.candidates}:{},state:"operator"===a.origin||void 0!==a.directedAt?"accepted":"pending",stateChangedAt:c.toISOString(),expiresAt:(0,l.KN)(c),offeredTo:void 0!==a.directedAt?[a.directedAt]:a.offeredTo??[],...void 0!==a.directedAt?{acknowledgedBy:a.directedAt,acceptedVia:"operator"===a.origin?"operator":"auto-follow"}:"operator"===a.origin&&a.offeredTo?.length?{acknowledgedBy:a.offeredTo[0],acceptedVia:"operator"}:{},...void 0!==a.directedAtSession?{directedSessionId:a.directedAtSession}:{},...void 0!==a.operationKey?{operationKey:a.operationKey}:{},returnPoints:[],...void 0!==a.desktopTarget?{desktopTarget:a.desktopTarget}:{},revision:0},h=[],i=[],j=d.requests.map(b=>{if("root-agent"!==a.origin||b.requestedBy.rootId!==a.rootId)return b;let d=(0,l.tE)(b,{kind:"supersede",by:f},{now:c});return d.ok?(h.push(b.id),d.request):b}),k=()=>j.filter(a=>o.includes(a.state)&&a.id!==f);for(;k().length>=n.jC;){let a=k(),b=a.find(a=>"root-agent"===a.origin)??a[0];if(!b)break;let d=(0,l.tE)(b,{kind:"expire",cause:"queue-evicted"},{now:c});if(!d.ok)break;i.push(b.id),j=j.map(a=>a.id===b.id?d.request:a)}return{requests:[...j,g],result:{request:g,superseded:h,dropped:i,adopted:!1}}},{filePath:b.filePath,now:c})}function x(a,b,c={}){let d=c.now??new Date;return u(e=>{let f=e.requests.find(b=>b.id===a);if(!f)return{requests:void 0,result:{ok:!1,reason:"not-found"}};let g=(0,l.tE)(f,b,{now:d,expectedRevision:c.expectedRevision});return g.ok&&g.changed?{requests:e.requests.map(b=>b.id===a?g.request:b),result:g}:{requests:void 0,result:g}},{filePath:c.filePath,now:d})}function y(a={}){let b=a.now??new Date;return u(a=>{let c=[],d=a.requests.map(a=>{let d=(0,l.qH)(a,b);if(!d)return a;let e=(0,l.tE)(a,{kind:"expire",cause:d},{now:b});return e.ok?(c.push(a.id),e.request):a});return{requests:c.length?d:void 0,result:c}},{filePath:a.filePath,now:b})}}};
|
|
1
|
+
"use strict";exports.id=2324,exports.ids=[2324,2962],exports.modules={2033:(a,b,c)=>{c.d(b,{Ol:()=>r,Qm:()=>l,pM:()=>s});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(59683);let k=new Int32Array(new SharedArrayBuffer(4));class l extends Error{constructor(a){super(a),this.name="FileTransactionBusyError"}}function m(a){try{let b=JSON.parse(g().readFileSync(a,"utf8"));if("number"==typeof b.pid&&Number.isInteger(b.pid)&&b.pid>0){let a="string"==typeof b.startIdentity?b.startIdentity:null;if(!j.B.pidAlive(b.pid))return!0;if(null!==a){let c=j.B.processIdentity(b.pid);return null!==c&&c!==a}return!1}return Date.now()-g().statSync(a).mtimeMs>3e4}catch{try{return Date.now()-g().statSync(a).mtimeMs>3e4}catch{return!1}}}function n(a,b){try{JSON.parse(g().readFileSync(a,"utf8")).token===b&&g().rmSync(a,{force:!0})}catch{}}function o(a){let b=`${a}.write-lock`,c=`${a}.write-locks`;g().mkdirSync(c,{recursive:!0,mode:448});let d={pid:process.pid,startIdentity:j.B.processIdentity(process.pid),token:e().randomUUID()},f=i().join(c,`${String(Date.now()).padStart(16,"0")}-${process.pid}-${e().randomUUID()}.json`);return g().writeFileSync(f,JSON.stringify(d),{encoding:"utf8",flag:"wx",mode:384}),{lockPath:b,queuePath:c,owner:d,ticketPath:f}}function p(a){let b;if(function(a){let b=[];for(let c of g().readdirSync(a.queuePath).filter(a=>a.endsWith(".json")).sort()){let d=i().join(a.queuePath,c);if(m(d)){g().rmSync(d,{force:!0});continue}g().existsSync(d)&&b.push(d)}return b[0]??null}(a)!==a.ticketPath)return null;try{b=g().openSync(a.lockPath,"wx",384)}catch(b){if("EEXIST"!==b.code)throw b;return m(a.lockPath)&&g().rmSync(a.lockPath,{force:!0}),null}try{return g().writeFileSync(b,JSON.stringify(a.owner),"utf8"),g().fsyncSync(b),b}catch(c){throw g().closeSync(b),g().rmSync(a.lockPath,{force:!0}),c}}function q(a,b){g().closeSync(b),n(a.lockPath,a.owner.token)}function r(a,b,c){let d=o(a);try{for(let a=0;a<6e3;a+=1){let a=p(d);if(null===a){Atomics.wait(k,0,0,5);continue}try{return c()}finally{q(d,a)}}throw new l(b)}finally{n(d.ticketPath,d.owner.token)}}async function s(a,b,c){let d=o(a);try{for(let a=0;a<6e3;a+=1){let a=p(d);if(null===a){await new Promise(a=>setTimeout(a,5));continue}try{return await c()}finally{q(d,a)}}throw new l(b)}finally{n(d.ticketPath,d.owner.token)}}},17918:(a,b,c)=>{c.d(b,{$D:()=>j,Fl:()=>f,Ow:()=>q,RM:()=>d,SY:()=>k,TY:()=>e,WX:()=>n,We:()=>g,YA:()=>s,ZJ:()=>m,bz:()=>h,c7:()=>l,j7:()=>t,lx:()=>p,nB:()=>i,nQ:()=>u,up:()=>o,ym:()=>r});let d=1,e=32768,f=128,g=64,h=16,i=98304,j=32768,k=["schemaVersion","view","scope","text","caller"],l=["id","deviceId","resolution"],m=["kind","paths"],n=["include","lastMessages","maxCharsPerConversation"],o=["pid","transcriptPath"],p=["focused","selected","visible","focused-selected","paths"],q=["latest-interaction","require-explicit"],r=20,s=4e3,t=1,u=4096},22962:(a,b,c)=>{c.d(b,{Cu:()=>E,gB:()=>p,oV:()=>D});var d=c(16698),e=c(77598),f=c.n(e),g=c(73024),h=c.n(g),i=c(76760),j=c.n(i),k=c(91724),l=c(59683);let m=globalThis.__llvAccountMutationRuntime??={transactionContext:new d.AsyncLocalStorage,localWaiters:[],localHeld:!1},n=m.transactionContext,o=m.localWaiters;class p extends Error{constructor(a="account mutation is busy; retry shortly"){super(a),this.name="AccountMutationBusyError"}}function q(){let a=o.shift();a?a():m.localHeld=!1}async function r(){return m.localHeld?await new Promise(a=>o.push(a)):m.localHeld=!0,q}let s=function(){try{return h().readlinkSync("/proc/self/ns/pid")}catch{return null}}();function t(a,b){try{return Date.now()-h().statSync(a).mtimeMs>b}catch{return!1}}function u(a,b=null){if(null!==b&&t(a,b))return!0;try{let b=JSON.parse(h().readFileSync(a,"utf8"));if("number"==typeof b.pid&&Number.isInteger(b.pid)&&b.pid>0){if(("string"==typeof b.ns?b.ns:null)!==s)return t(a,3e4);if(!l.B.pidAlive(b.pid))return!0;if("string"!=typeof b.startIdentity)return!1;let c=l.B.processIdentity(b.pid);return null!==c&&c!==b.startIdentity}return t(a,3e4)}catch{return t(a,3e4)}}function v(a,b){try{JSON.parse(h().readFileSync(a,"utf8")).token===b&&h().rmSync(a,{force:!0})}catch{}}function w(){try{let a=JSON.parse(h().readFileSync((0,k.BQ)("account-mutation-revision.json"),"utf8"));return 1===a.version&&Number.isSafeInteger(a.revision)&&a.revision>=0?a.revision:0}catch{return 0}}function x(){let a=(0,k.BQ)("account-selection.lock"),b=`${a}.queue`;h().mkdirSync(b,{recursive:!0,mode:448});let c={pid:process.pid,startIdentity:l.B.processIdentity(process.pid),ns:s,token:f().randomUUID()},d=j().join(b,`${String(Date.now()).padStart(16,"0")}-${process.pid}-${f().randomUUID()}.json`);return h().writeFileSync(d,JSON.stringify(c),{encoding:"utf8",flag:"wx",mode:384}),{lock:a,queue:b,owner:c,ticket:d}}function y(a){let b=new Date;try{return h().utimesSync(a,b,b),!0}catch{return!1}}function z(a){let b,c=[];for(let b of h().readdirSync(a.queue).filter(a=>a.endsWith(".json")).sort()){let d=j().join(a.queue,b);if(d!==a.ticket&&u(d,6e5)){h().rmSync(d,{force:!0});continue}h().existsSync(d)&&c.push(d)}if(c[0]!==a.ticket)return null;try{b=h().openSync(a.lock,"wx",384)}catch(b){if("EEXIST"!==b.code)throw b;return u(a.lock)&&h().rmSync(a.lock,{force:!0}),null}try{h().writeFileSync(b,JSON.stringify(a.owner),"utf8"),h().fsyncSync(b)}catch(c){throw h().closeSync(b),h().rmSync(a.lock,{force:!0}),c}let d={active:!0,revision:w()},e=setInterval(()=>y(a.lock),1e4);return e.unref?.(),{context:d,release(){clearInterval(e),d.active=!1,h().closeSync(b),v(a.lock,a.owner.token),v(a.ticket,a.owner.token)}}}function A(a,b){return{context:a.context,release(){try{a.release()}finally{b()}}}}async function B(){let a=await r(),b=null;try{b=x();let d=Date.now();for(let e=0;e<2e3;e+=1){let e=z(b);if(e)return A(e,a);if(Date.now()-d>=1e4){d=Date.now();var c=b;if(!y(c.ticket))try{h().writeFileSync(c.ticket,JSON.stringify(c.owner),{encoding:"utf8",mode:384})}catch{}}await new Promise(a=>setTimeout(a,5))}throw Error("account mutation is busy; retry shortly")}catch(c){throw b&&v(b.ticket,b.owner.token),a(),c}}function C(a){!function(a){let b=(0,k.BQ)("account-mutation-revision.json");if(w()!==a)throw Error("account mutation revision fence changed while locked");let c=`${b}.${process.pid}.${f().randomUUID()}.tmp`;h().mkdirSync(j().dirname(b),{recursive:!0,mode:448});try{h().writeFileSync(c,JSON.stringify({version:1,revision:a+1})+"\n",{mode:384});let d=h().openSync(c,"r");try{h().fsyncSync(d)}finally{h().closeSync(d)}h().renameSync(c,b)}finally{h().rmSync(c,{force:!0})}}(a.revision),a.revision+=1}function D(a){let b=n.getStore();if(b?.active)return a();let c=function(){let a=function(){if(m.localHeld)throw new p("account mutation is busy in this process; retry shortly");return m.localHeld=!0,q}(),b=null;try{b=x();for(let c=0;c<2;c+=1){let c=z(b);if(c)return A(c,a)}throw new p}catch(c){throw b&&v(b.ticket,b.owner.token),a(),c}}();try{return C(c.context),n.run(c.context,a)}finally{c.release()}}async function E(a){let b=n.getStore();if(b?.active)return a();let c=await B();try{return C(c.context),await n.run(c.context,a)}finally{c.release()}}},29621:(a,b,c)=>{c.d(b,{L4:()=>l,P1:()=>m,g5:()=>g,yi:()=>f});var d=c(40370),e=c(37073);class f extends Error{constructor(a,b,c=400){super(b),this.code=a,this.status=c,this.name="AttentionRequestError"}}async function g(a){let b=await a.text();if(b.length>16384)throw new f("PAYLOAD_TOO_LARGE","request body is too large",413);try{return JSON.parse(b)}catch{throw new f("INVALID_REQUEST","request body is not JSON")}}function h(a,b){if(!a||"object"!=typeof a||Array.isArray(a))throw new f("INVALID_REQUEST",`invalid ${b}`);return a}function i(a,b,c=4096){if("string"!=typeof a||0===a.length||a.length>c)throw new f("INVALID_REQUEST",`invalid ${b}`);return a}function j(a,b){if("number"!=typeof a||!Number.isFinite(a))throw new f("INVALID_REQUEST",`invalid ${b}`);return a}let k=["overview","scheme","list","mobile-focus","mobile-map"];function l(a){let b,c,g=h(a,"request"),k=g.origin;if("root-agent"!==k&&"operator"!==k)throw new f("INVALID_REQUEST","invalid origin");let l=g.intent;if("show"!==l&&"open"!==l)throw new f("INVALID_REQUEST","invalid intent");if(!(0,d.Cj)(g.target))throw new f("INVALID_TARGET","invalid focus target");if(void 0!==g.zoom&&"inspect"!==g.zoom&&"situate"!==g.zoom)throw new f("INVALID_REQUEST","invalid zoom");let m=void 0===g.candidates?void 0:(()=>{if(!Array.isArray(g.candidates)||g.candidates.length>e.oT)throw new f("INVALID_REQUEST","invalid candidates");return g.candidates.map(a=>{let b=h(a,"candidate");return{eventId:i(b.eventId,"candidate.eventId",256),...void 0===b.kind?{}:{kind:i(b.kind,"candidate.kind",64)}}})})();return{origin:k,intent:l,target:g.target,frameAtCreation:(b=h(g.frameAtCreation,"frameAtCreation"),c=h(b.rect,"frameAtCreation.rect"),{project:i(b.project,"frameAtCreation.project",256),rect:{x:j(c.x,"frameAtCreation.rect.x"),y:j(c.y,"frameAtCreation.rect.y"),w:j(c.w,"frameAtCreation.rect.w"),h:j(c.h,"frameAtCreation.rect.h")},boardRevision:null===b.boardRevision||void 0===b.boardRevision?null:j(b.boardRevision,"frameAtCreation.boardRevision")}),reason:i(g.reason,"reason",4096),...void 0===g.zoom?{}:{zoom:g.zoom},...void 0===g.contextLabel?{}:{contextLabel:i(g.contextLabel,"contextLabel",512)},...void 0===m?{}:{candidates:m},...void 0===g.offeredTo?{}:{offeredTo:(Array.isArray(g.offeredTo)?g.offeredTo:[]).map(a=>i(a,"offeredTo",256))}}}function m(a){let b=h(a,"event");switch(b.kind){case"offer":case"preview":case"decline":case"dismiss":case"abandon":return{kind:b.kind,deviceId:i(b.deviceId,"deviceId",256)};case"accept":{let a=b.via;if(void 0!==a&&"operator"!==a&&"auto-follow"!==a)throw new f("INVALID_REQUEST","invalid via");return{kind:"accept",deviceId:i(b.deviceId,"deviceId",256),...void 0===a?{}:{via:a}}}case"arrive":{let a=b.resolution;if("exact"!==a&&"approximate"!==a&&"lost"!==a)throw new f("INVALID_REQUEST","invalid resolution");return{kind:"arrive",deviceId:i(b.deviceId,"deviceId",256),returnPoint:function(a){let b=h(a,"returnPoint"),c=b.mode;if("string"!=typeof c||!k.includes(c))throw new f("INVALID_REQUEST","invalid returnPoint.mode");let d=null===b.camera||void 0===b.camera?null:h(b.camera,"returnPoint.camera");return{deviceId:i(b.deviceId,"returnPoint.deviceId",256),mode:c,camera:null===d?null:{x:j(d.x,"returnPoint.camera.x"),y:j(d.y,"returnPoint.camera.y"),zoom:j(d.zoom,"returnPoint.camera.zoom")},focusedPath:null===b.focusedPath||void 0===b.focusedPath?null:i(b.focusedPath,"returnPoint.focusedPath"),capturedAt:i(b.capturedAt,"returnPoint.capturedAt",64)}}(b.returnPoint),resolution:a}}case"return":{let a=b.via;if("control"!==a&&"manual-move"!==a)throw new f("INVALID_REQUEST","invalid via");return{kind:"return",deviceId:i(b.deviceId,"deviceId",256),via:a}}default:throw new f("INVALID_REQUEST","unsupported event")}}},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})}},35961:(a,b,c)=>{c.d(b,{W:()=>g});var d=c(23211);let e=["localhost","127.0.0.1","::1"];function f(a){if(a.startsWith("[")){let b=a.indexOf("]");return -1===b?a:a.slice(1,b)}let b=a.lastIndexOf(":");return -1===b?a:a.slice(0,b)}function g(a){let b=new Set(e),c=process.env.LLV_TS_HOST;c&&b.add(f(c));let d=a.headers.get("host");if(null===d||!b.has(f(d)))return h();let g=a.headers.get("origin");if(null!==g){let a;try{a=new URL(g).host}catch{a=null}if(null===a||!b.has(f(a)))return h()}let i=a.headers.get("sec-fetch-site");return null!==i&&"same-origin"!==i&&"none"!==i?h():null}function h(){return d.NextResponse.json({error:"forbidden: cross-origin request"},{status:403})}},37073:(a,b,c)=>{c.d(b,{M1:()=>g,Nh:()=>e,PB:()=>h,Q0:()=>n,RY:()=>f,Vw:()=>k,hl:()=>j,jC:()=>i,oT:()=>l,yH:()=>d});let d=1,e=6e5,f=6e4,g=6e4,h=6e5,i=3,j=240,k=120,l=8,m=["returned","declined","expired","superseded"];function n(a){return m.includes(a)}},40370:(a,b,c)=>{function d(a,b){return"open"===b?"inspect":"situate"}function e(a){return"number"==typeof a&&Number.isFinite(a)}function f(a){return"string"==typeof a&&a.length>0&&a.length<=4096}function g(a){if(!a||"object"!=typeof a||Array.isArray(a))return!1;switch(a.kind){case"conversation":return f(a.path);case"pipeline":return f(a.pipelineId);case"stage":return f(a.pipelineId)&&f(a.stageId);case"flowRound":return f(a.flowId)&&Number.isInteger(a.round)&&a.round>=0;case"task":return f(a.taskId);case"draft":return f(a.draftId);case"region":var b;return f(a.project)&&!(!(b=a.rect)||"object"!=typeof b||Array.isArray(b))&&e(b.x)&&e(b.y)&&e(b.w)&&e(b.h)&&b.w>=0&&b.h>=0;case"point":return f(a.project)&&e(a.x)&&e(a.y)&&(void 0===a.zoom||e(a.zoom)&&a.zoom>0);default:return!1}}function h(a,b){return"show"===b||"region"!==a.kind&&"point"!==a.kind}c.d(b,{Cj:()=>g,Rh:()=>h,xt:()=>d}),[{kind:"conversation",fields:'conversationId (the durable "conversation_…" id, resolved to its current transcript) or path (that transcript\'s .jsonl path) — at least one',example:'{"kind":"conversation","conversationId":"conversation_9f2c"}'},{kind:"pipeline",fields:"pipelineId (non-empty string)",example:'{"kind":"pipeline","pipelineId":"pipeline_9f2c"}'},{kind:"stage",fields:"pipelineId and stageId (non-empty strings)",example:'{"kind":"stage","pipelineId":"pipeline_9f2c","stageId":"review"}'},{kind:"flowRound",fields:"flowId (non-empty string) and round (integer, 0 or more)",example:'{"kind":"flowRound","flowId":"flow_9f2c","round":2}'},{kind:"task",fields:"taskId (non-empty string)",example:'{"kind":"task","taskId":"task_9f2c"}'},{kind:"draft",fields:"draftId (non-empty string), and a top-level project alongside target — a draft exists only on the operator's canvas, so the server cannot attribute it",example:'{"kind":"draft","draftId":"draft_9f2c"}'},{kind:"region",fields:"project (non-empty string) and rect {x, y, w, h} (finite numbers; w and h 0 or more)",example:'{"kind":"region","project":"live-log-viewer-next","rect":{"x":0,"y":0,"w":800,"h":600}}'},{kind:"point",fields:"project (non-empty string), x and y (finite numbers), and an optional zoom (greater than 0)",example:'{"kind":"point","project":"live-log-viewer-next","x":1200,"y":480}'}].map(a=>a.kind)},42713:(a,b,c)=>{c.d(b,{I9:()=>z,ZW:()=>B,n0:()=>A,uA:()=>C});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(89940),l=c(17918);let m=globalThis;function n(){return m.__llvViewPresence??=new Map}function o(){return(0,j.BQ)("view-presence.json")}let p=new Set(["desktop","tablet","mobile"]),q=new Set(["chrome","firefox","safari","other"]),r=new Set(["overview","scheme","list","mobile-focus","mobile-map"]),s=new Set(["current","pending","stale","unavailable"]);function t(a){return"number"==typeof a&&Number.isFinite(a)}function u(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:null}function v(a){return null===a||"string"==typeof a}function w(a){return Array.isArray(a)&&a.every(a=>"string"==typeof a)}function x(a){return null===a||t(a)}function y(a){let b=n();for(let[a,c]of b){let d=c.project?(0,k.G$)(c.project):null;d!==c.project&&b.set(a,{...c,project:d})}for(let c of function(a){let b;try{b=g().readFileSync(o(),"utf8")}catch{return[]}try{let c=JSON.parse(b);if(1!==c.schemaVersion||!Array.isArray(c.sessions))return[];return c.sessions.filter(b=>{var c,d;let e,f,g,h;return c=b,d=a,!!(h=u(c))&&h.schemaVersion===l.RM&&"string"==typeof h.viewSessionId&&0!==h.viewSessionId.length&&"string"==typeof h.deviceId&&0!==h.deviceId.length&&("visible"===h.visibility||"hidden"===h.visibility)&&"string"==typeof h.mode&&!!r.has(h.mode)&&!!v(h.project)&&!!v(h.focusedPath)&&!!w(h.selectedPaths)&&!!w(h.visiblePaths)&&(e=u(h.device),!!(null!==e&&"string"==typeof e.kind&&p.has(e.kind)&&"string"==typeof e.browser&&q.has(e.browser)))&&(f=u(h.viewport),!!(null!==f&&t(f.width)&&t(f.height)&&t(f.dpr))&&!!function(a){if(null===a)return!0;let b=u(a);if(!b)return!1;let c=u(b.worldRect);return t(b.x)&&t(b.y)&&t(b.zoom)&&null!==c&&t(c.x)&&t(c.y)&&t(c.width)&&t(c.height)}(h.camera))&&(g=u(h.board),!!(null!==g&&x(g.renderedRevision)&&x(g.durableRevision)&&"string"==typeof g.sync&&s.has(g.sync))&&!!t(h.sequence)&&!!t(h.inputSequence)&&!!t(h.lastSeenAt)&&!!t(h.lastInteractionAt)&&!(h.lastSeenAt<=0)&&!(h.lastInteractionAt<=0)&&!(h.lastSeenAt>d+5e3)&&!(h.lastInteractionAt>d+5e3)&&!0)}).map(a=>({...a,project:a.project?(0,k.G$)(a.project):null}))}catch{return[]}}(a)){let a=b.get(c.viewSessionId);(!a||c.sequence>a.sequence)&&b.set(c.viewSessionId,c)}return function(a,b=n()){for(let[c,d]of b)a-d.lastSeenAt>12e4&&b.delete(c)}(a,b),b}function z(a,b=Date.now()){let c=Math.max(0,b-a.lastSeenAt);return"visible"===a.visibility?c<25e3?"active":"stale":c<=12e4?"background":"stale"}function A(a,b=Date.now()){let c=y(b),d=c.get(a.viewSessionId);if(d&&a.sequence<=d.sequence)return{accepted:!1,session:d};d||function(a){for(;a.size>=32;){let b=[...a.values()].sort((a,b)=>a.lastSeenAt-b.lastSeenAt)[0];if(!b)break;a.delete(b.viewSessionId)}}(c);let f=!d||a.inputSequence>d.inputSequence,h={...a,project:a.project?(0,k.G$)(a.project):null,inputSequence:Math.max(d?.inputSequence??0,a.inputSequence),lastSeenAt:b,lastInteractionAt:f?b:d?.lastInteractionAt??b};return c.set(a.viewSessionId,h),!function(a,b){let c={schemaVersion:1,updatedAt:new Date(b).toISOString(),sessions:[...a]},d=o(),f=i().join(i().dirname(d),`.${i().basename(d)}.${process.pid}.${e().randomUUID()}.tmp`);try{g().mkdirSync(i().dirname(d),{recursive:!0}),g().writeFileSync(f,JSON.stringify(c,null,2)+"\n",{encoding:"utf8",mode:384}),g().renameSync(f,d)}catch{g().rmSync(f,{force:!0})}}(c.values(),b),{accepted:!0,session:h}}function B(a,b=Date.now()){return{viewSessionId:a.viewSessionId,deviceId:a.deviceId,device:a.device,visibility:a.visibility,freshness:z(a,b),presenceAgeMs:Math.max(0,b-a.lastSeenAt),lastSeenAt:new Date(a.lastSeenAt).toISOString(),lastInteractionAt:new Date(a.lastInteractionAt).toISOString(),project:a.project,mode:a.mode}}function C(a=Date.now()){return[...y(a).values()].sort((a,b)=>b.lastInteractionAt-a.lastInteractionAt||b.lastSeenAt-a.lastSeenAt||a.viewSessionId.localeCompare(b.viewSessionId))}},42829:(a,b,c)=>{c.d(b,{T:()=>i});var d=c(23211),e=c(59117),f=c(29621),g=c(2033);let h={"Cache-Control":"no-store"};function i(a){return a instanceof f.yi?d.NextResponse.json({error:a.code,message:a.message},{status:a.status,headers:h}):a instanceof e.Kg?d.NextResponse.json({error:a.code,message:a.message},{status:400,headers:h}):a instanceof g.Qm?d.NextResponse.json({error:"ATTENTION_STATE_BUSY",message:a.message},{status:503,headers:{...h,"Retry-After":"1"}}):a instanceof e.SG?d.NextResponse.json({error:"ATTENTION_STATE_UNAVAILABLE",message:a.message},{status:503,headers:h}):d.NextResponse.json({error:"INVALID_REQUEST",message:"invalid request"},{status:400,headers:h})}},53315:(a,b,c)=>{c.d(b,{ao:()=>m,S5:()=>k,wd:()=>l});var d=c(21872),e=c(33017),f=c(42713);let g=new Set(["overview","scheme","mobile-focus","mobile-map"]);var h=c(54873),i=c(59117);function j(a,b){return Date.parse(a.createdAt)-Date.parse(b.createdAt)||a.id.localeCompare(b.id)}function k(a,b={}){let c=b.now??new Date,d=(0,i.m9)({filePath:b.filePath,now:c}),f=(0,i.$C)(b.filePath,c),g=(0,i.D3)(f).sort(j).map(b=>({request:b,status:(0,h.kt)(b,a),returnAvailable:(0,h.Qo)(b,a,c)})),l=g.filter(a=>"actionable"===a.status||"following"===a.status),m=l.find(a=>(0,h.H2)(a.request,c))??l[0]??null;return{rootId:(0,e.ng)(),offer:m,live:g,expired:d}}function l(a,b={}){return(0,i.eL)({...a,offeredTo:a.offeredTo??("root-agent"===a.origin&&void 0===a.directedAt?function(a=new Date){return(function(a=new Date){let b=a.getTime(),c=[];for(let a of(0,f.uA)(b)){var d;"mobile"!==(d={...a,freshness:(0,f.I9)(a,b)}).device.kind&&g.has(d.mode)&&"visible"===d.visibility&&"active"===d.freshness&&d.viewport.width>=768&&(c.some(b=>b.deviceId===a.deviceId)||c.push(a))}return c})(a).map(a=>a.deviceId)}(b.now):void 0),target:function(a,b){if("conversation"!==a.kind)return a;let c=b??(0,d.agentRegistry)(),e=c.conversationForPath(a.path)?.generations.at(-1);return e&&e.path!==a.path?{kind:"conversation",path:e.path}:a}(a.target,b.conversations),rootId:(0,e.ng)()},b)}function m(a,b,c={}){return(0,i.d4)(a,b,c)}},54873:(a,b,c)=>{c.d(b,{H2:()=>k,KN:()=>m,Qo:()=>j,kt:()=>l,qH:()=>h,tE:()=>n});var d=c(37073);let e=["pending","offered","previewing"];function f(a,b){return{ok:!1,reason:b,state:a.state}}function g(a,b,c,d={}){return{ok:!0,changed:!0,request:{...a,...d,state:b,stateChangedAt:c.toISOString(),revision:a.revision+1}}}function h(a,b){return e.includes(a.state)?Date.parse(a.expiresAt)<=b.getTime()?"ttl":null:"accepted"===a.state?b.getTime()-Date.parse(a.stateChangedAt)>=d.M1?"lost":null:"following"===a.state&&b.getTime()-Date.parse(a.stateChangedAt)>=d.PB?"follow-elapsed":null}function i(a,b){return"following"===a.state&&b.getTime()-Date.parse(a.stateChangedAt)<d.RY}function j(a,b,c){if("following"!==a.state||a.acknowledgedBy!==b)return!1;let e=a.returnPoints.find(a=>a.deviceId===b);return void 0!==e&&c.getTime()-Date.parse(e.capturedAt)<d.RY}function k(a,b){return"following"!==a.state||i(a,b)}function l(a,b){return(0,d.Q0)(a.state)?"closed":"accepted"===a.state||"following"===a.state?a.acknowledgedBy===b?"following":"withdrawn":"pending"===a.state?"none":a.offeredTo.includes(b)?"actionable":"none"}function m(a){return new Date(a.getTime()+d.Nh).toISOString()}function n(a,b,c={}){let h=c.now??new Date;if(void 0!==c.expectedRevision&&c.expectedRevision!==a.revision)return f(a,"stale-revision");if((0,d.Q0)(a.state))return f(a,"invalid-transition");switch(b.kind){case"offer":{if("pending"!==a.state&&"offered"!==a.state)return f(a,"invalid-transition");if("offered"===a.state&&a.offeredTo.includes(b.deviceId))return{ok:!0,request:a,changed:!1};let c=a.offeredTo.includes(b.deviceId)?a.offeredTo:[...a.offeredTo,b.deviceId];return g(a,"offered",h,{offeredTo:c})}case"preview":if("offered"!==a.state)return f(a,"invalid-transition");if(!a.offeredTo.includes(b.deviceId))return f(a,"not-offered");return g(a,"previewing",h);case"accept":if("offered"!==a.state&&"previewing"!==a.state)return f(a,"invalid-transition");if(!a.offeredTo.includes(b.deviceId))return f(a,"not-offered");return g(a,"accepted",h,{acknowledgedBy:b.deviceId,acceptedVia:b.via??"operator"});case"arrive":{if("accepted"!==a.state)return f(a,"invalid-transition");if(a.acknowledgedBy!==b.deviceId)return f(a,"not-acknowledger");if("lost"===b.resolution)return f(a,"lost-target");let c=[...a.returnPoints.filter(a=>a.deviceId!==b.deviceId),b.returnPoint];return g(a,"following",h,{returnPoints:c,resolution:b.resolution})}case"abandon":if("accepted"!==a.state)return f(a,"invalid-transition");if(a.acknowledgedBy!==b.deviceId)return f(a,"not-acknowledger");return g(a,"expired",h,{expiredCause:"lost"});case"decline":if("offered"!==a.state)return f(a,"invalid-transition");if(!a.offeredTo.includes(b.deviceId))return f(a,"not-offered");return g(a,"declined",h);case"dismiss":if("previewing"!==a.state)return f(a,"invalid-transition");if(!a.offeredTo.includes(b.deviceId))return f(a,"not-offered");return g(a,"declined",h);case"return":if("following"!==a.state)return f(a,"invalid-transition");if(a.acknowledgedBy!==b.deviceId)return f(a,"not-acknowledger");return g(a,"returned",h,{returnedVia:b.via});case"expire":{let c="accepted"===a.state&&"lost"===b.cause,d="following"===a.state&&"follow-elapsed"===b.cause;if(!e.includes(a.state)&&!c&&!d)return f(a,"invalid-transition");return g(a,"expired",h,{expiredCause:b.cause})}case"supersede":if(e.includes(a.state)||"following"===a.state&&!i(a,h))return g(a,"superseded",h,{supersededBy:b.by});return f(a,"invalid-transition")}}},59117:(a,b,c)=>{c.d(b,{$C:()=>t,D3:()=>v,Kg:()=>r,SG:()=>q,d4:()=>x,eL:()=>w,m9:()=>y});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724),k=c(2033),l=c(54873),m=c(40370),n=c(37073);let o=["pending","offered","previewing"];function p(){return(0,j.BQ)("attention.json")}class q extends Error{constructor(a,b){super(a,b),this.name="AttentionStoreError"}}class r extends Error{constructor(a,b){super(b),this.code=a,this.name="AttentionValidationError"}}function s(a){return!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.id&&a.id.length>0&&"string"==typeof a.createdAt&&!!a.requestedBy&&"string"==typeof a.requestedBy.rootId&&a.requestedBy.rootId.length>0&&("root-agent"===a.origin||"operator"===a.origin)&&(0,m.Cj)(a.target)&&"string"==typeof a.state&&"string"==typeof a.stateChangedAt&&"string"==typeof a.expiresAt&&Array.isArray(a.offeredTo)&&a.offeredTo.every(a=>"string"==typeof a)&&Array.isArray(a.returnPoints)&&Number.isInteger(a.revision)&&a.revision>=0}function t(a=p(),b=new Date){let c,d;try{c=g().readFileSync(a,"utf8")}catch(a){if("ENOENT"===a.code)return{schemaVersion:n.yH,revision:0,updatedAt:b.toISOString(),requests:[]};throw new q("could not read attention state",{cause:a})}try{d=JSON.parse(c)}catch(a){throw new q("attention state contains malformed JSON",{cause:a})}if(d.schemaVersion!==n.yH)throw new q(`unsupported attention schema: ${String(d.schemaVersion)}`);if(!Number.isInteger(d.revision)||!Array.isArray(d.requests))throw new q("attention state is not a valid record");if(!d.requests.every(s))throw new q("attention state holds an invalid request");return{schemaVersion:n.yH,revision:d.revision,updatedAt:"string"==typeof d.updatedAt?d.updatedAt:b.toISOString(),requests:d.requests}}function u(a,b={}){let c=b.filePath??p(),d=b.now??new Date;return(0,k.Ol)(c,"attention state is busy",()=>{var b;let f,h,j,k=t(c,d),l=a(k);return l.requests&&function(a,b){g().mkdirSync(i().dirname(a),{recursive:!0});let c=i().join(i().dirname(a),`.${i().basename(a)}.${process.pid}.${e().randomUUID()}.tmp`),d=null;try{d=g().openSync(c,"wx",384),g().writeFileSync(d,JSON.stringify(b,null,2)+"\n","utf8"),g().fsyncSync(d),g().closeSync(d),d=null,g().renameSync(c,a)}finally{null!==d&&g().closeSync(d),g().rmSync(c,{force:!0})}}(c,{schemaVersion:n.yH,revision:k.revision+1,updatedAt:d.toISOString(),requests:(f=(b=l.requests).filter(a=>!(0,n.Q0)(a.state)),j=(h=b.filter(a=>(0,n.Q0)(a.state))).length>50?h.slice(h.length-50):h,b.filter(a=>f.includes(a)||j.includes(a)))}),l.result})}function v(a){return a.requests.filter(a=>!(0,n.Q0)(a.state))}function w(a,b={}){if("string"!=typeof a.rootId||0===a.rootId.length)throw new r("INVALID_ROOT","a request must name the root agent by its stable identity");if(!(0,m.Cj)(a.target))throw new r("INVALID_TARGET","invalid focus target");if("show"!==a.intent&&"open"!==a.intent)throw new r("INVALID_INTENT","intent must be show or open");if(!(0,m.Rh)(a.target,a.intent))throw new r("INTENT_NOT_AVAILABLE","a geometric target can only be shown, not opened");if("string"!=typeof a.reason||0===a.reason.trim().length||a.reason.length>n.hl)throw new r("INVALID_REASON",`a request needs one operator-safe sentence of at most ${n.hl} characters`);if(void 0!==a.contextLabel&&("string"!=typeof a.contextLabel||a.contextLabel.length>n.Vw))throw new r("INVALID_CONTEXT_LABEL","invalid context label");if(void 0!==a.candidates&&(!Array.isArray(a.candidates)||a.candidates.length>n.oT))throw new r("INVALID_CANDIDATES","too many journal candidates");if(!a.frameAtCreation||"string"!=typeof a.frameAtCreation.project||0===a.frameAtCreation.project.length)throw new r("INVALID_FRAME","a request must record the frame it was created against");if(void 0!==a.directedAt&&("string"!=typeof a.directedAt||0===a.directedAt.length))throw new r("INVALID_DIRECTED_AT","a directed handoff must name the device it moves");if(void 0!==a.directedAtSession&&("string"!=typeof a.directedAtSession||0===a.directedAtSession.length||void 0===a.directedAt))throw new r("INVALID_DIRECTED_SESSION","a directed session must be a browser session id on a directed handoff");if(void 0!==a.operationKey&&("string"!=typeof a.operationKey||0===a.operationKey.length))throw new r("INVALID_OPERATION_KEY","an operation key must be a non-empty identity");let c=b.now??new Date;return u(d=>{if(void 0!==a.operationKey){let b=d.requests.find(b=>b.operationKey===a.operationKey);if(b)return{requests:void 0,result:{request:b,superseded:[],dropped:[],adopted:!0}}}let f=b.id??`attention_${e().randomUUID()}`,g={id:f,createdAt:c.toISOString(),requestedBy:{rootId:a.rootId},origin:a.origin,...void 0!==a.raisedBy?{raisedBy:a.raisedBy}:{},target:a.target,frameAtCreation:a.frameAtCreation,intent:a.intent,zoom:a.zoom??(0,m.xt)(a.target,a.intent),reason:a.reason.trim(),...void 0!==a.contextLabel?{contextLabel:a.contextLabel}:{},...void 0!==a.candidates?{candidates:a.candidates}:{},state:"operator"===a.origin||void 0!==a.directedAt?"accepted":"pending",stateChangedAt:c.toISOString(),expiresAt:(0,l.KN)(c),offeredTo:void 0!==a.directedAt?[a.directedAt]:a.offeredTo??[],...void 0!==a.directedAt?{acknowledgedBy:a.directedAt,acceptedVia:"operator"===a.origin?"operator":"auto-follow"}:"operator"===a.origin&&a.offeredTo?.length?{acknowledgedBy:a.offeredTo[0],acceptedVia:"operator"}:{},...void 0!==a.directedAtSession?{directedSessionId:a.directedAtSession}:{},...void 0!==a.operationKey?{operationKey:a.operationKey}:{},returnPoints:[],...void 0!==a.desktopTarget?{desktopTarget:a.desktopTarget}:{},revision:0},h=[],i=[],j=d.requests.map(b=>{if("root-agent"!==a.origin||b.requestedBy.rootId!==a.rootId)return b;let d=(0,l.tE)(b,{kind:"supersede",by:f},{now:c});return d.ok?(h.push(b.id),d.request):b}),k=()=>j.filter(a=>o.includes(a.state)&&a.id!==f);for(;k().length>=n.jC;){let a=k(),b=a.find(a=>"root-agent"===a.origin)??a[0];if(!b)break;let d=(0,l.tE)(b,{kind:"expire",cause:"queue-evicted"},{now:c});if(!d.ok)break;i.push(b.id),j=j.map(a=>a.id===b.id?d.request:a)}return{requests:[...j,g],result:{request:g,superseded:h,dropped:i,adopted:!1}}},{filePath:b.filePath,now:c})}function x(a,b,c={}){let d=c.now??new Date;return u(e=>{let f=e.requests.find(b=>b.id===a);if(!f)return{requests:void 0,result:{ok:!1,reason:"not-found"}};let g=(0,l.tE)(f,b,{now:d,expectedRevision:c.expectedRevision});return g.ok&&g.changed?{requests:e.requests.map(b=>b.id===a?g.request:b),result:g}:{requests:void 0,result:g}},{filePath:c.filePath,now:d})}function y(a={}){let b=a.now??new Date;return u(a=>{let c=[],d=a.requests.map(a=>{let d=(0,l.qH)(a,b);if(!d)return a;let e=(0,l.tE)(a,{kind:"expire",cause:d},{now:b});return e.ok?(c.push(a.id),e.request):a});return{requests:c.length?d:void 0,result:c}},{filePath:a.filePath,now:b})}}};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";exports.id=2549,exports.ids=[2549],exports.modules={4885:(a,b,c)=>{c.d(b,{TT:()=>I,UF:()=>J,X8:()=>H,Yb:()=>x,e4:()=>z});var d=c(31421),e=c(77598),f=c.n(e),g=c(73024),h=c.n(g),i=c(27146),j=c(52e3),k=c(89204),l=c(55541),m=c(26277),n=c(19777);let o=new Set([...new Set(["export_contacts","get_admins","get_banned_users","get_blocked_users","get_bot_info","get_chat","get_chats","get_common_chats","get_contact_chats","get_contact_ids","get_direct_chat_by_contact","get_drafts","get_folder","get_full_chat","get_full_user","get_gif_search","get_history","get_last_interaction","get_me","get_media_info","get_message_context","get_message_link","get_message_reactions","get_message_read_by","get_messages","get_participants","get_pinned_messages","get_privacy_settings","get_recent_actions","get_scheduled_messages","get_sticker_sets","get_user_photos","get_user_status","incoming_feed_status","list_accounts","list_chats","list_contact_aliases","list_contacts","list_folders","list_inline_buttons","list_messages","list_topics","resolve_username","search_contacts","search_global","search_messages","search_public_chats","wait_for_new_message","wait_for_settled_message"])].filter(a=>!m.vx.includes(a)));async function p(a,b,c){let d=f().randomBytes(32).toString("base64url"),e=new URL(a);e.pathname="/llv-telegram-proof",e.search="";try{let a=await fetch(e,{headers:{"x-llv-telegram-nonce":d},signal:c});if(!a.ok)return!1;let g=Buffer.from((await a.text()).trim(),"hex"),h=Buffer.from(f().createHmac("sha256",b).update(d).digest("hex"),"hex");return g.length===h.length&&f().timingSafeEqual(g,h)}catch{return!1}}let q={spawn(a){try{let b=(0,d.spawn)(a.command,a.args,{cwd:a.cwd,env:a.env,stdio:"ignore",detached:!0});return b.unref(),b}catch{return null}},probe:async function(a,b,d){try{if(!await p(a,b,d))return{ok:!1};let{Client:e}=await Promise.all([c.e(9676),c.e(7644)]).then(c.bind(c,7644)),{StreamableHTTPClientTransport:f}=await Promise.all([c.e(9676),c.e(6487)]).then(c.bind(c,56487)),g=new e({name:"agent-log-viewer",version:"1.0.0"}),h=new f(new URL(a),{requestInit:{headers:{Authorization:`Bearer ${b}`},signal:d}});try{await g.connect(h);let a=await g.listTools();return{ok:!0,serverName:g.getServerVersion()?.name??"",tools:a.tools.map(a=>({name:a.name,readOnly:a.annotations?.readOnlyHint===!0}))}}finally{await g.close().catch(()=>void 0)}}catch{return{ok:!1}}},sleep:a=>new Promise(b=>setTimeout(b,a)),now:()=>Date.now(),ownsProcess:y,recordProcess:B,stop:E,beginOperation:function(){let a=++t;return()=>a===t}};function r(){return(0,i.BQ)("telegram","connector.json")}let s=null,t=0;function u(a){return f().createHash("sha256").update(a).digest("hex")}function v(){try{if(null===(0,n._q)(!1))return null;let a=h().lstatSync(r());if(a.isSymbolicLink()||!a.isFile()||(63&a.mode)!=0||"function"==typeof process.getuid&&a.uid!==process.getuid())return null;let b=JSON.parse(h().readFileSync(r(),"utf8"));if(1!==b.version||"number"!=typeof b.pid||!Number.isInteger(b.pid)||b.pid<=1||"string"!=typeof b.identity||"string"!=typeof b.credentialRef||"string"!=typeof b.connectorTokenSha256||"string"!=typeof b.command||"string"!=typeof b.entrypoint||void 0!==b.feedFile&&"string"!=typeof b.feedFile||void 0!==b.feedSince&&"string"!=typeof b.feedSince||void 0!==b.logSinkVersion&&1!==b.logSinkVersion)return null;return b}catch{return null}}function w(a){let b=j.B.readArgv(a.pid);return b[0]===a.command&&b[1]===a.entrypoint&&a.command===(0,m.jd)()&&a.entrypoint===(0,m.Kn)()}function x(a){let b=v();if(!b||b.feedFile!==(0,n.ZI)(a)||!b.feedSince)return null;let c=Date.parse(b.feedSince);return Number.isFinite(c)?c:null}function y(a){let b=v();return!!(b&&b.credentialRef===a.credentialRef&&b.connectorTokenSha256===u(a.connectorToken)&&j.B.processIdentity(b.pid)===b.identity&&w(b))}function z(a){return y(a)}function A(a){try{a.kill("SIGKILL")}catch{}}function B(a,b,c){let d=a.pid,e=d?j.B.processIdentity(d):null;if(!d||!e||!b.args[0])return A(a),!1;s={child:a,pid:d,identity:e};let f={version:1,pid:d,identity:e,credentialRef:c.credentialRef,connectorTokenSha256:u(c.connectorToken),command:b.command,entrypoint:b.args[0],...b.env?.TELEGRAM_EVENT_FEED_FILE?{feedFile:b.env.TELEGRAM_EVENT_FEED_FILE,feedSince:new Date().toISOString()}:{},...b.env?.LLV_TELEGRAM_CONNECTOR_LOG===(0,l.cO)()&&b.env.LLV_TELEGRAM_CONNECTOR_LOG_MAX_BYTES===String(l.yb)?{logSinkVersion:1}:{}},g=`${r()}.${process.pid}.tmp`;try{let a=(0,n._q)(!0);h().writeFileSync(g,JSON.stringify(f),{mode:384});let b=h().openSync(g,"r");try{h().fsyncSync(b)}finally{h().closeSync(b)}h().renameSync(g,r());let c=h().openSync(a,"r");try{h().fsyncSync(c)}finally{h().closeSync(c)}let d=h().lstatSync(r());if(!d.isFile()||d.isSymbolicLink()||(63&d.mode)!=0)throw Error("unsafe connector record");return!0}catch{h().rmSync(g,{force:!0});try{h().rmSync(r(),{force:!0})}catch{}return s=null,A(a),!1}}function C(a){return j.B.processIdentity(a.pid)===a.identity}async function D(a,b){let c=Date.now()+b;for(;a.some(C)&&Date.now()<c;)await new Promise(a=>setTimeout(a,25));return a.every(a=>!C(a))}async function E(){t+=1;let a=new Map,b=s;b&&C(b)&&a.set(b.pid,{pid:b.pid,identity:b.identity,term:()=>{try{b.child.kill("SIGTERM")}catch{}},kill:()=>A(b.child)});let c=v(),d=!1;c&&C(c)&&!a.has(c.pid)&&(w(c)?a.set(c.pid,{pid:c.pid,identity:c.identity,term:()=>{try{process.kill(c.pid,"SIGTERM")}catch{}},kill:()=>{try{process.kill(c.pid,"SIGKILL")}catch{}}}):d=!0);let e=[...a.values()];for(let a of e)a.term();if(!await D(e,2e3)){for(let a of e.filter(C))a.kill();if(!await D(e,2e3))throw Error("Telegram connector did not terminate")}if(d)throw Error("Telegram connector ownership could not be verified");s=null;try{null!==(0,n._q)(!1)&&h().rmSync(r(),{force:!0})}catch{}}async function F(a){return(0,n._q)(!0),await (0,k.pM)((0,i.BQ)("telegram","connector-supervisor"),"Telegram connector supervisor is busy",a)}async function G(a,b,c,d=1/0){let e=new AbortController,g=Math.max(1,Math.min(c.probeTimeoutMs??5e3,d)),h=c.probe(a,b,e.signal).catch(()=>({ok:!1})),i=null,j=new Promise(a=>{i=setTimeout(()=>{e.abort(),a("timeout")},g),i.unref?.()}),k=await Promise.race([h,j]);return(i&&clearTimeout(i),"timeout"===k)?"timeout":(e.abort(),k.ok)?k.serverName!==`telegram-${f().createHash("sha256").update(b).digest("hex")}`?{ok:!1,code:"connector_failed"}:function(a,b=o){let c=a.filter(a=>!a.readOnly||!b.has(a.name)).map(a=>a.name);return{ok:a.length>0&&0===c.length,offending:c}}(k.tools).ok?{ok:!0,url:a}:{ok:!1,code:"not_read_only"}:null}async function H(a,b=q){let c=(0,m.h3)(),d={credentialRef:a.credentialRef,connectorToken:a.connectorToken},e=b.stop??E,f=b.ownsProcess??y,g=b.beginOperation?.()??(()=>!0),h=await F(async()=>{let h;if(f(d)){let d=await G(c,a.connectorToken,b);if(!g())return{ok:!1,code:"connector_failed"};if(d&&"timeout"!==d)return d.ok||await e(),d}await e(),g=b.beginOperation?.()??(()=>!0);let i=(0,m.w5)();if(!i)return{ok:!1,code:"credentials_missing"};try{h=(0,m.ue)({credentialRef:a.credentialRef,sessionString:a.sessionString,connectorToken:a.connectorToken,credentials:i})}catch{return{ok:!1,code:"connector_failed"}}if(!g())return{ok:!1,code:"connector_failed"};let j=b.spawn(h);return j?(b.recordProcess??B)(j,h,d)?"spawned":(A(j),{ok:!1,code:"connector_failed"}):{ok:!1,code:"connector_failed"}});if("spawned"!==h)return h;let i=async()=>{await F(async()=>{f(d)&&await e()})},j=b.now()+3e4;for(;b.now()<j;){let d=await G(c,a.connectorToken,b,j-b.now());if(!g())return{ok:!1,code:"connector_failed"};if("timeout"===d)break;if(d)return d.ok||await i(),d;await b.sleep(500)}return await i(),{ok:!1,code:"connector_failed"}}async function I(){await F(E)}async function J(a,b={}){let c=b.ownsProcess??y,d=b.stop??E;return await F(async()=>!!c(a)&&(await d(),!0))}},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}},52549:(a,b,c)=>{c.d(b,{wZ:()=>q,tx:()=>r,Cl:()=>j});var d=c(19777),e=c(4885),f=c(26277),g=c(81389);function h(a){return"number"!=typeof a||!Number.isFinite(a)||a<=0?null:Math.round(1e3*a)}async function i(a){let b=await a.listChats({kind:"user",limit:100}),c=new Set,d=[],e=!1;for(let a of b)!c.has(a.id)&&(c.add(a.id),(a.username??"").toLowerCase().endsWith("bot")||d.push({id:a.id,title:a.title}));for(let b=1;b<=3;b+=1){let g=await a.pageChats({page:b,pageSize:100});if(0===g.length)break;for(let a of g){var f;!c.has(a.id)&&(f=a.id,/^\d+$/.test(f))&&(c.add(a.id),d.push(a))}if(g.length<100)break;3===b&&(e=!0)}return{candidates:d,truncated:e}}async function j(a,b){let c=Date.parse(b.windowStart),d=await a.feedDialogs({sinceMs:c}),e=[],f=new Set;for(let a of d.dialogs)f.has(a.id)||(f.add(a.id),e.push({id:a.id,title:a.title,lastMessageAt:a.lastMessageAt}));let g=await i(a),h=g.candidates.filter(a=>!f.has(a.id)),j=null!==d.coveredSinceMs&&d.coveredSinceMs<=c?300:150,k=0;for(let b of h){if(k>=j)break;let d=await a.lastMessageAt(b.id);k+=1;let f=d?Date.parse(d):NaN;Number.isFinite(f)&&!(f<c)&&e.push({id:b.id,title:b.title,lastMessageAt:new Date(f).toISOString()})}e.sort((a,b)=>Date.parse(b.lastMessageAt)-Date.parse(a.lastMessageAt));let l=k>=j&&h.length>k;if(l||g.truncated)throw Error("Telegram report sources cannot cover this window");return{version:1,promptVersion:b.promptVersion,windowStart:b.windowStart,windowEnd:b.windowEnd,privateDialogs:e.slice(0,25),groups:b.groups.map(a=>({...a})),probes:k,feedDialogs:f.size,truncated:e.length>25,probeBudgetExhausted:l}}function k(a){return(a?.content??[]).filter(a=>a?.type==="text").map(a=>a.text??"").join("\n")}function l(a){try{let b=JSON.parse(k(a));return Array.isArray(b?.results)?b.results:[]}catch{return[]}}async function m(a,b,d){let{Client:e}=await Promise.all([c.e(9676),c.e(7644)]).then(c.bind(c,7644)),{StreamableHTTPClientTransport:g}=await Promise.all([c.e(9676),c.e(6487)]).then(c.bind(c,56487)),h=new e({name:"agent-log-viewer",version:"1.0.0"}),i=new g(new URL((0,f.h3)()),{requestInit:{headers:{Authorization:`Bearer ${a.connectorToken}`}}});try{return await h.connect(i),await h.callTool({name:b,arguments:d})}finally{await h.close().catch(()=>void 0)}}let n={readSession:d.w0,callTool:m,ensureConnector:a=>(0,e.X8)(a),sleep:a=>new Promise(b=>setTimeout(b,a)),now:Date.now};function o(a,b){let c=b.readSession();if(!c)throw Error("Telegram is not connected");if(c.credentialRef!==a)throw Error("Telegram credential generation changed");return c}async function p(a,b,c,d=n){try{return await d.callTool(a,b,c)}catch{}let e=Math.max(1,d.readinessTimeoutMs??3e4),f=d.now()+e,g=250;for(;d.now()<f;){let e,h=o(a.credentialRef,d);try{e=await d.ensureConnector(h)}catch{e={ok:!1,code:"connector_failed"}}if(e.ok){let e=o(a.credentialRef,d);try{return await d.callTool(e,b,c)}catch{}}else if("connector_failed"!==e.code)break;let i=f-d.now();if(i<=0)break;await d.sleep(Math.min(g,i)),g=Math.min(2*g,2e3)}throw Error("Telegram connector is unavailable")}async function q(a,b=n){let c=Math.max(1,b.readinessTimeoutMs??9e4),d=b.now()+c,e=250;for(;b.now()<d;){let c,f;try{c=o(a,b)}catch{return{ready:!1,reason:"refused"}}try{f=await b.ensureConnector(c)}catch{f={ok:!1,code:"connector_failed"}}if(f.ok)return{ready:!0};if("connector_failed"!==f.code)return{ready:!1,reason:"refused"};let g=d-b.now();if(g<=0)break;await b.sleep(Math.min(e,g)),e=Math.min(2*e,2e3)}return{ready:!1,reason:"unavailable"}}function r(a=null,b=n){let c=a,f=async(a,d)=>{let e=b.readSession();if(!e)throw Error("Telegram is not connected");if(c??=e.credentialRef,e.credentialRef!==c)throw Error("Telegram credential generation changed");return await p(e,a,d,b)};return{async getMe(){let a=JSON.parse(k(await f("get_me",{}))),b="string"==typeof a?.name?a.name.trim():"",c=(0,g.S)(a?.id);return b||c?{name:b,username:"string"==typeof a.username&&a.username?a.username:null,id:c}:null},async feedDialogs(a){let b=null;try{let a=k(await f("incoming_feed_status",{}));b=function(a,b){if(!b)return null;let c=function(a){let b;try{b=JSON.parse(a)}catch{return null}let c=b?.enabled===!0||b?.autostart_pending===!0,d="string"==typeof b?.feed_file?b.feed_file.trim():"";return c&&d?d:null}(a);return null!==c&&c===(0,d.ZI)(b)?c:null}(a,c)}catch{}if(!b)throw Error("Telegram incoming feed is unavailable");return{dialogs:function(a,b){if(!a)return[];let c=(0,d.Cx)(a,{chunkBytes:524288,maxBytes:8388608},a=>(function(a,b){for(let c of a.split("\n")){let a;if(!c.trim())continue;try{a=JSON.parse(c)}catch{continue}let d=h(a.ts);if(null!==d&&d<b)return!0}return!1})(a,b));if(null===c)return[];if(!c.complete)throw Error("Telegram incoming feed is larger than one report read");return function(a,b){let c=new Map,d=new Map;for(let f of a.split("\n")){var e;let a;if(!f.trim())continue;try{a=JSON.parse(f)}catch{continue}let g="number"==typeof(e=a.chat_id)?Number.isSafeInteger(e)&&e>0?String(e):null:"string"!=typeof e?null:/^[1-9]\d{0,18}$/.test(e.trim())?e.trim():null;if(!g||"string"==typeof a.username&&a.username.toLowerCase().endsWith("bot"))continue;let i=h(a.ts);if(null===i||i<b)continue;let j=c.get(g);void 0!==j&&j>=i||(c.set(g,i),d.set(g,"string"==typeof a.name&&a.name?a.name.slice(0,120):g))}return[...c.entries()].sort((a,b)=>b[1]-a[1]).map(([a,b])=>({id:a,title:d.get(a)??a,lastMessageAt:new Date(b).toISOString()}))}(c.text,b)}(b,a.sinceMs),coveredSinceMs:null===c?null:(0,e.Yb)(c)}},listChats:async a=>l(await f("list_chats",{chat_type:a.kind,limit:Math.min(a.limit,100)})).map(b=>(function(a,b){let c=a.chat_id;if("number"!=typeof c&&"string"!=typeof c)return null;let d="string"==typeof a.title?a.title:"string"==typeof a.name?a.name:String(c);return{id:String(c),kind:b,title:d,username:"string"==typeof a.username?a.username:null,unread:"number"==typeof a.unread?a.unread:0}})(b,a.kind)).filter(a=>null!==a),pageChats:async a=>l(await f("get_chats",{page:a.page,page_size:Math.min(a.pageSize,100)})).map(a=>{let b=a.chat_id;return"number"!=typeof b&&"string"!=typeof b?null:{id:String(b),title:"string"==typeof a.title?a.title:String(b)}}).filter(a=>null!==a),async lastMessageAt(a){let b=l(await f("list_messages",{chat_id:Number(a),limit:1}))[0],c=b?.date;if("string"!=typeof c)return null;let d=Date.parse(c);return Number.isFinite(d)?new Date(d).toISOString():null}}}},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
|
|
2
|
+
import io
|
|
3
|
+
import os
|
|
4
|
+
import stat
|
|
5
|
+
import sys
|
|
6
|
+
import threading
|
|
7
|
+
|
|
8
|
+
try:
|
|
9
|
+
_path = os.environ["LLV_TELEGRAM_CONNECTOR_LOG"]
|
|
10
|
+
_limit = int(os.environ["LLV_TELEGRAM_CONNECTOR_LOG_MAX_BYTES"])
|
|
11
|
+
if _limit <= 0:
|
|
12
|
+
raise ValueError("invalid log limit")
|
|
13
|
+
_flags = os.O_RDWR | os.O_CREAT | os.O_APPEND
|
|
14
|
+
if hasattr(os, "O_NOFOLLOW"):
|
|
15
|
+
_flags |= os.O_NOFOLLOW
|
|
16
|
+
_fd = os.open(_path, _flags, 0o600)
|
|
17
|
+
_info = os.fstat(_fd)
|
|
18
|
+
if not stat.S_ISREG(_info.st_mode) or (_info.st_mode & 0o077):
|
|
19
|
+
raise PermissionError("unsafe connector log")
|
|
20
|
+
if hasattr(os, "getuid") and _info.st_uid != os.getuid():
|
|
21
|
+
raise PermissionError("connector log owner mismatch")
|
|
22
|
+
except Exception as _error:
|
|
23
|
+
raise SystemExit("connector log sink unavailable") from _error
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def _write_all(data):
|
|
27
|
+
view = memoryview(data)
|
|
28
|
+
while view:
|
|
29
|
+
written = os.write(_fd, view)
|
|
30
|
+
view = view[written:]
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class _BoundedConnectorLog(io.TextIOBase):
|
|
34
|
+
encoding = "utf-8"
|
|
35
|
+
errors = "backslashreplace"
|
|
36
|
+
|
|
37
|
+
def __init__(self):
|
|
38
|
+
self._lock = threading.Lock()
|
|
39
|
+
|
|
40
|
+
def writable(self):
|
|
41
|
+
return True
|
|
42
|
+
|
|
43
|
+
def isatty(self):
|
|
44
|
+
return False
|
|
45
|
+
|
|
46
|
+
def fileno(self):
|
|
47
|
+
return _fd
|
|
48
|
+
|
|
49
|
+
def flush(self):
|
|
50
|
+
return None
|
|
51
|
+
|
|
52
|
+
def write(self, value):
|
|
53
|
+
if not isinstance(value, str):
|
|
54
|
+
value = str(value)
|
|
55
|
+
data = value.encode(self.encoding, self.errors)
|
|
56
|
+
if not data:
|
|
57
|
+
return len(value)
|
|
58
|
+
with self._lock:
|
|
59
|
+
fcntl.flock(_fd, fcntl.LOCK_EX)
|
|
60
|
+
try:
|
|
61
|
+
size = os.fstat(_fd).st_size
|
|
62
|
+
if len(data) >= _limit:
|
|
63
|
+
tail = data[-_limit:]
|
|
64
|
+
os.ftruncate(_fd, 0)
|
|
65
|
+
_write_all(tail)
|
|
66
|
+
elif size + len(data) > _limit:
|
|
67
|
+
keep = _limit - len(data)
|
|
68
|
+
prior = os.pread(_fd, keep, max(0, size - keep))
|
|
69
|
+
os.ftruncate(_fd, 0)
|
|
70
|
+
_write_all(prior[-keep:] + data)
|
|
71
|
+
else:
|
|
72
|
+
_write_all(data)
|
|
73
|
+
finally:
|
|
74
|
+
fcntl.flock(_fd, fcntl.LOCK_UN)
|
|
75
|
+
return len(value)
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
_sink = _BoundedConnectorLog()
|
|
79
|
+
sys.stdout = _sink
|
|
80
|
+
sys.stderr = _sink
|
|
81
|
+
`;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)}}}};
|