agent-log-viewer 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -21
- package/bin/cli.mjs +28 -4
- package/bin/mcp-server.mjs +7 -0
- package/bin/mcp-server.test.ts +2 -0
- package/bin/provision-telegram-connector.mjs +193 -0
- package/bin/server-runtime.mjs +4 -8
- package/bin/server-runtime.test.ts +46 -7
- package/bin/telegram-login-bridge.py +253 -0
- package/bin/telegram-mcp-server.py +106 -0
- package/bin/telegram-session-reader.mjs +6 -0
- package/bin/telegram-session-validator.mjs +71 -0
- package/dist/mcp-server.mjs +31771 -25627
- package/dist/standalone/.next/BUILD_ID +1 -1
- package/dist/standalone/.next/app-path-routes-manifest.json +22 -15
- package/dist/standalone/.next/build-manifest.json +3 -3
- package/dist/standalone/.next/prerender-manifest.json +3 -3
- package/dist/standalone/.next/react-loadable-manifest.json +19 -0
- package/dist/standalone/.next/required-server-files.json +4 -1
- package/dist/standalone/.next/routes-manifest.json +48 -6
- package/dist/standalone/.next/server/account-migration-controller-worker.js +1 -0
- package/dist/standalone/.next/server/app/_global-error/page.js +3 -3
- package/dist/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/dist/standalone/.next/server/app/_global-error.html +1 -1
- package/dist/standalone/.next/server/app/_global-error.rsc +1 -1
- package/dist/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_not-found/page.js +2 -2
- package/dist/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/standalone/.next/server/app/_not-found.html +1 -1
- package/dist/standalone/.next/server/app/_not-found.rsc +2 -2
- package/dist/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/dist/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/dist/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/dist/standalone/.next/server/app/api/access/route.js +1 -1
- package/dist/standalone/.next/server/app/api/access/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/account-migrations/[intentId]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js +4 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/[id]/status/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/active/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js +4 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/input/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js +4 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/login/[operationId]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/policy/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js +4 -1
- package/dist/standalone/.next/server/app/api/accounts/claude/terminal/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/active/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/policy/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js +4 -1
- package/dist/standalone/.next/server/app/api/accounts/codex/terminal/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/accounts/route.js +1 -1
- package/dist/standalone/.next/server/app/api/accounts/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/agent/route.js +1 -1
- package/dist/standalone/.next/server/app/api/agent/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/agent/snapshot/route.js +1 -1
- package/dist/standalone/.next/server/app/api/agent/snapshot/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/answer/route.js +1 -1
- package/dist/standalone/.next/server/app/api/answer/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/artifact/route.js +1 -0
- package/dist/standalone/.next/server/app/api/{orchestrator → artifact}/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/artifact/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/attach-command/route.js +1 -1
- package/dist/standalone/.next/server/app/api/attach-command/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/attention/[id]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/attention/[id]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/attention/route.js +1 -1
- package/dist/standalone/.next/server/app/api/attention/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/board/route.js +1 -1
- package/dist/standalone/.next/server/app/api/board/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/bridge/route.js +2 -2
- package/dist/standalone/.next/server/app/api/bridge/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js +1 -1
- package/dist/standalone/.next/server/app/api/conversations/[conversationId]/migration/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/conversations/route.js +1 -1
- package/dist/standalone/.next/server/app/api/conversations/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/files/route.js +2 -2
- package/dist/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/flows/[id]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/flows/[id]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/flows/route.js +1 -1
- package/dist/standalone/.next/server/app/api/flows/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/image/route.js +1 -1
- package/dist/standalone/.next/server/app/api/image/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/inbox/route.js +2 -2
- package/dist/standalone/.next/server/app/api/inbox/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js +1 -1
- package/dist/standalone/.next/server/app/api/lifecycle/reaper/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/limits/history/route.js +4 -1
- package/dist/standalone/.next/server/app/api/limits/history/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/limits/route.js +4 -1
- package/dist/standalone/.next/server/app/api/limits/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/log/preflight/route.js +1 -1
- package/dist/standalone/.next/server/app/api/log/preflight/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/log/project-delete/route.js +1 -1
- package/dist/standalone/.next/server/app/api/log/project-delete/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/log/provenance/route.js +1 -0
- package/dist/standalone/.next/server/app/api/log/provenance/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/log/provenance/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/log/route.js +1 -1
- package/dist/standalone/.next/server/app/api/log/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/logs/route.js +1 -1
- package/dist/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/logs/stream/route.js +2 -2
- package/dist/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/monitor/lock/route.js +2 -2
- package/dist/standalone/.next/server/app/api/monitor/lock/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/monitor/runs/route.js +1 -1
- package/dist/standalone/.next/server/app/api/monitor/runs/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js +1 -1
- package/dist/standalone/.next/server/app/api/orchestrator/rotate/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js +1 -1
- package/dist/standalone/.next/server/app/api/orchestrator/seat/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js +3 -0
- package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/orchestrator/seat/status/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/pipelines/[id]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js +1 -1
- package/dist/standalone/.next/server/app/api/pipelines/preflight/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/pipelines/route.js +2 -2
- package/dist/standalone/.next/server/app/api/pipelines/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/pipelines/tick/route.js +2 -2
- package/dist/standalone/.next/server/app/api/pipelines/tick/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/proc/route.js +1 -1
- package/dist/standalone/.next/server/app/api/proc/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/projects/create/route.js +3 -0
- package/dist/standalone/.next/server/app/api/projects/create/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/projects/create/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/projects/crown/route.js +1 -0
- package/dist/standalone/.next/server/app/api/projects/crown/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/projects/crown/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/push/route.js +2 -2
- package/dist/standalone/.next/server/app/api/push/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/resources/route.js +1 -1
- package/dist/standalone/.next/server/app/api/resources/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/roles/route.js +2 -2
- package/dist/standalone/.next/server/app/api/roles/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/answer/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/answer/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/deployments/[deploymentId]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/deployments/capabilities/v1/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/deployments/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/deployments/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/interrupt/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/operations/[operationId]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/operations/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/operations/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/realtime/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/realtime/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/send/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/send/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/snapshot/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/spawn/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/spawn/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/steer/route.js +1 -1
- package/dist/standalone/.next/server/app/api/runtime/steer/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/runtime/stream/route.js +2 -2
- package/dist/standalone/.next/server/app/api/runtime/stream/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/search/transcripts/route.js +2 -0
- package/dist/standalone/.next/server/app/api/search/transcripts/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/search/transcripts/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/session/route.js +1 -1
- package/dist/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/session/supersedence/route.js +1 -1
- package/dist/standalone/.next/server/app/api/session/supersedence/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/session/title/route.js +1 -1
- package/dist/standalone/.next/server/app/api/session/title/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/spawn/policy/route.js +6 -3
- package/dist/standalone/.next/server/app/api/spawn/policy/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/spawn/route.js +2 -2
- package/dist/standalone/.next/server/app/api/spawn/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/staging/route.js +2 -2
- package/dist/standalone/.next/server/app/api/staging/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/task-attachments/route.js +2 -2
- package/dist/standalone/.next/server/app/api/task-attachments/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/assignment/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/send/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tasks/[id]/spawn/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/curator/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tasks/curator/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tasks/route.js +2 -2
- package/dist/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/telegram/reports/route.js +1 -0
- package/dist/standalone/.next/server/app/api/telegram/reports/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/telegram/reports/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/telegram/route.js +1 -0
- package/dist/standalone/.next/server/app/api/telegram/route.js.nft.json +1 -0
- package/dist/standalone/.next/server/app/api/telegram/route_client-reference-manifest.js +1 -0
- package/dist/standalone/.next/server/app/api/timeline/route.js +1 -1
- package/dist/standalone/.next/server/app/api/timeline/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tmux/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tmux/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tmux/targets/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tmux/targets/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/transcribe/backend/route.js +2 -2
- package/dist/standalone/.next/server/app/api/transcribe/backend/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/transcribe/route.js +2 -2
- package/dist/standalone/.next/server/app/api/transcribe/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/transcribe/token/route.js +2 -2
- package/dist/standalone/.next/server/app/api/transcribe/token/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tts/backend/route.js +1 -1
- package/dist/standalone/.next/server/app/api/tts/backend/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/tts/route.js +3 -3
- package/dist/standalone/.next/server/app/api/tts/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/view/presence/route.js +1 -2
- package/dist/standalone/.next/server/app/api/view/presence/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/workflows/[id]/route.js +1 -1
- package/dist/standalone/.next/server/app/api/workflows/[id]/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/api/workflows/route.js +1 -1
- package/dist/standalone/.next/server/app/api/workflows/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/favicon.ico/route.js +1 -1
- package/dist/standalone/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/index.html +1 -1
- package/dist/standalone/.next/server/app/index.rsc +3 -3
- package/dist/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/dist/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/dist/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/dist/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/dist/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/dist/standalone/.next/server/app/page.js +41 -24
- package/dist/standalone/.next/server/app/page.js.nft.json +1 -1
- package/dist/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/standalone/.next/server/app-paths-manifest.json +22 -15
- package/dist/standalone/.next/server/chunks/156.js +2 -2
- package/dist/standalone/.next/server/chunks/1617.js +2 -0
- package/dist/standalone/.next/server/chunks/1858.js +91 -0
- package/dist/standalone/.next/server/chunks/1888.js +1 -0
- package/dist/standalone/.next/server/chunks/1920.js +1 -1
- package/dist/standalone/.next/server/chunks/2190.js +1 -1
- package/dist/standalone/.next/server/chunks/230.js +1 -0
- package/dist/standalone/.next/server/chunks/2318.js +2 -0
- package/dist/standalone/.next/server/chunks/2324.js +1 -0
- package/dist/standalone/.next/server/chunks/2338.js +9 -0
- package/dist/standalone/.next/server/chunks/2904.js +42 -0
- package/dist/standalone/.next/server/chunks/2923.js +1 -0
- package/dist/standalone/.next/server/chunks/2962.js +1 -0
- package/dist/standalone/.next/server/chunks/2977.js +1 -1
- package/dist/standalone/.next/server/chunks/306.js +3 -3
- package/dist/standalone/.next/server/chunks/3086.js +1 -0
- package/dist/standalone/.next/server/chunks/3139.js +10 -0
- package/dist/standalone/.next/server/chunks/3214.js +82 -0
- package/dist/standalone/.next/server/chunks/3336.js +1 -1
- package/dist/standalone/.next/server/chunks/3558.js +1 -1
- package/dist/standalone/.next/server/chunks/3587.js +1 -1
- package/dist/standalone/.next/server/chunks/3598.js +81 -0
- package/dist/standalone/.next/server/chunks/3740.js +126 -0
- package/dist/standalone/.next/server/chunks/3793.js +6 -0
- package/dist/standalone/.next/server/chunks/3916.js +1 -0
- package/dist/standalone/.next/server/chunks/3953.js +1 -0
- package/dist/standalone/.next/server/chunks/4012.js +2 -2
- package/dist/standalone/.next/server/chunks/4191.js +1 -1
- package/dist/standalone/.next/server/chunks/4260.js +2 -2
- package/dist/standalone/.next/server/chunks/4509.js +1 -1
- package/dist/standalone/.next/server/chunks/4968.js +1 -1
- package/dist/standalone/.next/server/chunks/4972.js +130 -2
- package/dist/standalone/.next/server/chunks/5689.js +11 -0
- package/dist/standalone/.next/server/chunks/6333.js +47 -0
- package/dist/standalone/.next/server/chunks/6796.js +1 -0
- package/dist/standalone/.next/server/chunks/6826.js +2 -2
- package/dist/standalone/.next/server/chunks/6850.js +1 -1
- package/dist/standalone/.next/server/chunks/6909.js +1 -0
- package/dist/standalone/.next/server/chunks/6977.js +1 -0
- package/dist/standalone/.next/server/chunks/7126.js +1 -0
- package/dist/standalone/.next/server/chunks/7159.js +1 -0
- package/dist/standalone/.next/server/chunks/7270.js +45 -0
- package/dist/standalone/.next/server/chunks/7295.js +10 -0
- package/dist/standalone/.next/server/chunks/7471.js +16 -14
- package/dist/standalone/.next/server/chunks/7563.js +1 -1
- package/dist/standalone/.next/server/chunks/7644.js +13 -0
- package/dist/standalone/.next/server/chunks/7722.js +1 -1
- package/dist/standalone/.next/server/chunks/7733.js +4 -0
- package/dist/standalone/.next/server/chunks/7868.js +1 -0
- package/dist/standalone/.next/server/chunks/8026.js +1 -0
- package/dist/standalone/.next/server/chunks/8176.js +1 -1
- package/dist/standalone/.next/server/chunks/8444.js +1 -1
- package/dist/standalone/.next/server/chunks/8465.js +2 -0
- package/dist/standalone/.next/server/chunks/849.js +6 -0
- package/dist/standalone/.next/server/chunks/8600.js +12 -0
- package/dist/standalone/.next/server/chunks/8617.js +2 -0
- package/dist/standalone/.next/server/chunks/8797.js +1 -1
- package/dist/standalone/.next/server/chunks/8817.js +5 -0
- package/dist/standalone/.next/server/chunks/8966.js +2 -2
- package/dist/standalone/.next/server/chunks/8996.js +1 -0
- package/dist/standalone/.next/server/chunks/9246.js +47 -0
- package/dist/standalone/.next/server/chunks/9364.js +310 -0
- package/dist/standalone/.next/server/chunks/9411.js +3 -3
- package/dist/standalone/.next/server/chunks/9434.js +13 -0
- package/dist/standalone/.next/server/chunks/9507.js +1 -0
- package/dist/standalone/.next/server/chunks/9676.js +62 -0
- package/dist/standalone/.next/server/chunks/9733.js +6 -3
- package/dist/standalone/.next/server/chunks/9901.js +62 -0
- package/dist/standalone/.next/server/chunks/9937.js +2 -0
- package/dist/standalone/.next/server/chunks/9940.js +128 -0
- package/dist/standalone/.next/server/chunks/static/media/pdf.worker.min.65fe1ff1.mjs +6 -0
- package/dist/standalone/.next/server/file-scanner-worker.js +2 -2
- package/dist/standalone/.next/server/files-response-worker.js +5 -5
- package/dist/standalone/.next/server/functions-config-manifest.json +8 -1
- package/dist/standalone/.next/server/instrumentation.js +1 -1
- package/dist/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/dist/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/dist/standalone/.next/server/pages/404.html +1 -1
- package/dist/standalone/.next/server/pages/500.html +1 -1
- package/dist/standalone/.next/server/resource-collector-worker.js +1 -1
- package/dist/standalone/.next/server/server-reference-manifest.json +1 -1
- package/dist/standalone/.next/server/wakatime-sync-worker.js +2 -0
- package/dist/standalone/.next/server/webpack-runtime.js +1 -1
- package/dist/standalone/.next/static/chunks/2619.fd64e7a5bd9005d5.js +1 -0
- package/dist/standalone/.next/static/chunks/8293.5545fdbde0213c98.js +1 -0
- package/dist/standalone/.next/static/chunks/9178-e32f088e89b55503.js +1 -0
- package/dist/standalone/.next/static/chunks/9b0008ae.eb7a9c4c1c92a63b.js +45 -0
- package/dist/standalone/.next/static/chunks/app/_global-error/page-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/access/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/accounts/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/agent/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/answer/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/artifact/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/attach-command/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/attention/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/board/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/bridge/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/conversations/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/files/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/flows/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/image/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/inbox/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/limits/history/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/limits/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/provenance/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/log/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/logs/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/monitor/lock/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/status/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/pipelines/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/proc/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/projects/create/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/projects/crown/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/push/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/resources/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/roles/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/search/transcripts/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/session/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/session/title/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/spawn/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/staging/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tasks/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/telegram/reports/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/telegram/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/timeline/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tmux/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/transcribe/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/tts/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/view/presence/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/api/workflows/route-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/app/page-ac9463b910bf83fe.js +77 -0
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-c132c5ba005ff29e.js +1 -0
- package/dist/standalone/.next/static/chunks/webpack-1637988d4c7cf23c.js +1 -0
- package/dist/standalone/.next/static/css/498f12ddef7ecb0e.css +1 -0
- package/dist/standalone/.next/static/kt9OPe8iwfpNcdOX9ygvb/_buildManifest.js +1 -0
- package/dist/standalone/.next/static/media/pdf.worker.min.e890bf87.mjs +6 -0
- package/dist/standalone/package.json +9 -5
- package/dist/standalone/server.bun.js +38 -0
- package/dist/standalone/server.js +18 -37
- package/package.json +9 -5
- package/vendor/telegram-mcp/.python-version +1 -0
- package/vendor/telegram-mcp/LICENSE +201 -0
- package/vendor/telegram-mcp/PROVENANCE.md +70 -0
- package/vendor/telegram-mcp/SHA256SUMS +24 -0
- package/vendor/telegram-mcp/main.py +67 -0
- package/vendor/telegram-mcp/pyproject.toml +100 -0
- package/vendor/telegram-mcp/requirements.txt +7 -0
- package/vendor/telegram-mcp/sanitize.py +143 -0
- package/vendor/telegram-mcp/session_string_generator.py +259 -0
- package/vendor/telegram-mcp/telegram_mcp/__init__.py +15 -0
- package/vendor/telegram-mcp/telegram_mcp/client_identity.py +31 -0
- package/vendor/telegram-mcp/telegram_mcp/install_guard.py +209 -0
- package/vendor/telegram-mcp/telegram_mcp/runner.py +198 -0
- package/vendor/telegram-mcp/telegram_mcp/runtime.py +1812 -0
- package/vendor/telegram-mcp/telegram_mcp/singleton.py +143 -0
- package/vendor/telegram-mcp/telegram_mcp/tools/__init__.py +13 -0
- package/vendor/telegram-mcp/telegram_mcp/tools/accounts.py +31 -0
- package/vendor/telegram-mcp/telegram_mcp/tools/chats.py +1163 -0
- package/vendor/telegram-mcp/telegram_mcp/tools/contacts.py +802 -0
- package/vendor/telegram-mcp/telegram_mcp/tools/events.py +485 -0
- package/vendor/telegram-mcp/telegram_mcp/tools/folders.py +600 -0
- package/vendor/telegram-mcp/telegram_mcp/tools/groups.py +1286 -0
- package/vendor/telegram-mcp/telegram_mcp/tools/media.py +470 -0
- package/vendor/telegram-mcp/telegram_mcp/tools/messages.py +2041 -0
- package/vendor/telegram-mcp/telegram_mcp/tools/profile.py +449 -0
- package/vendor/telegram-mcp/uv.lock +1693 -0
- package/dist/standalone/.next/server/app/api/orchestrator/route.js +0 -1
- package/dist/standalone/.next/server/app/api/orchestrator/route_client-reference-manifest.js +0 -1
- package/dist/standalone/.next/server/chunks/1699.js +0 -1
- package/dist/standalone/.next/server/chunks/2596.js +0 -1
- package/dist/standalone/.next/server/chunks/3886.js +0 -1
- package/dist/standalone/.next/server/chunks/4792.js +0 -101
- package/dist/standalone/.next/server/chunks/5622.js +0 -2
- package/dist/standalone/.next/server/chunks/616.js +0 -42
- package/dist/standalone/.next/server/chunks/620.js +0 -1
- package/dist/standalone/.next/server/chunks/6299.js +0 -4
- package/dist/standalone/.next/server/chunks/9598.js +0 -1
- package/dist/standalone/.next/server/chunks/9936.js +0 -6
- package/dist/standalone/.next/static/5aZdjqUDNxpxX8nVsuO2S/_buildManifest.js +0 -1
- package/dist/standalone/.next/static/chunks/9260-0e7e550c65609f11.js +0 -1
- package/dist/standalone/.next/static/chunks/app/_global-error/page-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/access/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/account-migrations/[intentId]/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/[id]/status/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/active/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/input/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/login/[operationId]/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/policy/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/claude/terminal/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/active/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/policy/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/codex/terminal/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/accounts/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/agent/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/agent/snapshot/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/answer/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/attach-command/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/attention/[id]/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/attention/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/board/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/bridge/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/conversations/[conversationId]/migration/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/conversations/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/files/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/flows/[id]/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/flows/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/image/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/inbox/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/lifecycle/reaper/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/limits/history/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/limits/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/log/preflight/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/log/project-delete/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/log/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/logs/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/logs/stream/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/monitor/lock/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/monitor/runs/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/rotate/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/orchestrator/seat/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/pipelines/[id]/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/pipelines/preflight/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/pipelines/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/pipelines/tick/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/proc/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/push/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/resources/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/roles/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/answer/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/[deploymentId]/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/capabilities/v1/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/deployments/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/interrupt/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/operations/[operationId]/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/operations/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/realtime/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/send/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/snapshot/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/spawn/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/steer/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/runtime/stream/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/session/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/session/supersedence/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/session/title/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/spawn/policy/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/spawn/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/staging/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/task-attachments/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/assignment/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/send/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/[id]/spawn/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/curator/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tasks/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/timeline/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tmux/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tmux/targets/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/transcribe/backend/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/transcribe/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/transcribe/token/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tts/backend/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/tts/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/view/presence/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/workflows/[id]/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/api/workflows/route-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/app/page-45fd788b5dbb86eb.js +0 -57
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/app-error-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/forbidden-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/not-found-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/next/dist/client/components/builtin/unauthorized-483eb859fba02a43.js +0 -1
- package/dist/standalone/.next/static/chunks/webpack-46c1a0323c2ca312.js +0 -1
- package/dist/standalone/.next/static/css/b5b2fbc52caf460a.css +0 -1
- /package/dist/standalone/.next/static/{5aZdjqUDNxpxX8nVsuO2S → kt9OPe8iwfpNcdOX9ygvb}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
exports.id=306,exports.ids=[306],exports.modules={14904:(a,b,c)=>{"use strict";c.d(b,{CN:()=>q,F3:()=>r,NW:()=>p,Q2:()=>n,yI:()=>o});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(43312),k=c(91724),l=c(24546);let m=["local","chatgpt","elevenlabs"];function n(a){return"string"==typeof a&&m.includes(a)}function o(){let a=process.env.LLV_TRANSCRIBE_BACKEND?.trim().toLowerCase();if(n(a))return a;try{let a=e().readFileSync((0,k.ks)("transcribe-backend"),"utf8").trim().toLowerCase();if(n(a))return a}catch{}return"local"}function p(a){let b=(0,k.ks)("transcribe-backend");e().mkdirSync(i().dirname(b),{recursive:!0}),e().writeFileSync(b,a+"\n")}function q(){let a=process.env.LLV_TRANSCRIBE_BACKEND?.trim().toLowerCase();return{backend:o(),lockedByEnv:n(a),options:[{id:"local",available:(0,l.Zm)(),keyPath:(0,l.cX)()},{id:"chatgpt",available:null!==(0,j.g)(),keyPath:i().join(g().homedir(),".codex","auth.json")},{id:"elevenlabs",available:null!==r(),keyPath:(0,k.ks)("elevenlabs-api-key")}]}}function r(){let a=process.env.ELEVENLABS_API_KEY?.trim();if(a)return a;try{return e().readFileSync((0,k.ks)("elevenlabs-api-key"),"utf8").trim()||null}catch{return null}}},24546:(a,b,c)=>{"use strict";c.d(b,{Tc:()=>o,Zm:()=>n,cX:()=>m});var d=c(31421),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(91724);let j=process.env.LLV_WHISPER_MODEL||"small",k=process.env.LLV_WHISPER_DEVICE||"cpu";function l(){return process.env.LLV_WHISPER_VENV||(0,i.UT)("whisper-venv")}function m(){return h().join(l(),"bin","python")}function n(){return f().existsSync(m())}function o(a,b){let c=h().join(l(),"bin","python"),e=h().join(process.cwd(),"scripts","whisper_transcribe.py");return new Promise((f,g)=>{(0,d.execFile)(c,[e,a,j,k,b],{maxBuffer:4194304,timeout:12e4},(a,b)=>{if(a&&!b){let b="ENOENT"===a.code?" (run scripts/setup-whisper.sh)":"";g(Error(a.message+b));return}try{let a=JSON.parse(b.trim().split("\n").at(-1)??"{}");if("string"==typeof a.error)return void g(Error(a.error));f({text:"string"==typeof a.text?a.text:""})}catch{g(Error("local STT returned invalid output"))}})})}},31592:(a,b,c)=>{"use strict";c.d(b,{He:()=>e,KT:()=>g,pS:()=>f,vI:()=>d});let d="state-staging",e="staging-release.json";function f(a=process.env){return"1"===a.LLV_STAGING}function g(a){let b;if(!a||"object"!=typeof a||Array.isArray(a))throw Error("staging release record is invalid");let c=a.containers;if("string"!=typeof a.revision||!/^[0-9a-f]{40}$/.test(a.revision)||"string"!=typeof a.image||!a.image||"string"!=typeof a.deployedAt||Number.isNaN(Date.parse(a.deployedAt))||!c||"object"!=typeof c||Array.isArray(c)||"string"!=typeof a.endpoint)throw Error("staging release record is invalid");try{b=new URL(a.endpoint)}catch{throw Error("staging release endpoint is invalid")}if("http:"!==b.protocol||!b.port)throw Error("staging release endpoint is invalid");if("string"!=typeof c.viewer||!c.viewer||"string"!=typeof c.runtimeHost||!c.runtimeHost)throw Error("staging release containers are invalid");return{revision:a.revision,image:a.image,endpoint:a.endpoint,containers:{viewer:c.viewer,runtimeHost:c.runtimeHost},deployedAt:a.deployedAt}}},35961:(a,b,c)=>{"use strict";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})}},43312:(a,b,c)=>{"use strict";c.d(b,{g:()=>j});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h);function j(){try{let a=JSON.parse(e().readFileSync(i().join(g().homedir(),".codex","auth.json"),"utf8")),b="string"==typeof a.tokens?.access_token?a.tokens.access_token:"",c="string"==typeof a.tokens?.account_id?a.tokens.account_id:"";return b&&c?{accessToken:b,accountId:c}:null}catch{return null}}},78335:()=>{},91724:(a,b,c)=>{"use strict";c.d(b,{BQ:()=>u,Pn:()=>t,UT:()=>o,ks:()=>n,oy:()=>v});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(31592);let k="agent-log-viewer",l="live-log-viewer";function m(){return process.env.XDG_CONFIG_HOME||i().join(g().homedir(),".config")}function n(a){return p(m(),a)}function o(a){return p(process.env.XDG_CACHE_HOME||i().join(g().homedir(),".cache"),a)}function p(a,b){let c=i().join(a,k,b);if(e().existsSync(c))return c;let d=i().join(a,l,b);return e().existsSync(d)?d:c}let q=new Set,r=".migrated-from-legacy";function s(a,b){if("1"===process.env.LLV_RESOURCE_OBSERVATION_WORKER||q.has(a))return;let c=i().join(a,r),d=()=>`${new Date().toISOString()} ${b}
|
|
2
|
-
`;try{if(e().existsSync(c))return void q.add(a);if(!e().existsSync(b)){e().mkdirSync(a,{recursive:!0}),e().writeFileSync(c,d()),q.add(a);return}if(!e().existsSync(a)){e().mkdirSync(i().dirname(a),{recursive:!0});let c=`${a}.migrating.${process.pid}`;e().rmSync(c,{recursive:!0,force:!0});try{e().cpSync(b,c,{recursive:!0}),e().writeFileSync(i().join(c,r),d()),e().renameSync(c,a)}catch(a){throw e().rmSync(c,{recursive:!0,force:!0}),a}q.add(a);return}e().cpSync(b,a,{recursive:!0,force:!1,errorOnExist:!1}),e().writeFileSync(c,d()),q.add(a)}catch(c){console.error(`viewer state migration ${b} -> ${a} failed; will retry:`,c)}}function t(){let a=process.env.LLV_STATE_DIR;if((0,j.pS)()){var b=a;let c=b||i().join(m(),k,j.vI),d=i().resolve(c);if([i().join(m(),k,"state"),i().join(m(),l,"state"),i().join(g().homedir(),".claude","viewer-state")].some(a=>i().resolve(a)===d))throw Error(`staging mode refuses the production state dir ${d}; set LLV_STATE_DIR to a staging-only dir`);return c}if(a)return a;let c=i().join(m(),k,"state");return s(c,i().join(g().homedir(),".claude","viewer-state")),c}function u(...a){return i().join(t(),...a)}function v(){if((0,j.pS)())return u("inbox");let a=i().join(m(),k,"inbox");return s(a,i().join(g().homedir(),".claude","viewer-inbox")),a}},95998:(a,b,c)=>{"use strict";c.d(b,{UE:()=>k,Yb:()=>m,en:()=>p,hb:()=>n,hi:()=>q,sz:()=>o});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(91724),i=c(14904);let j=["openai","elevenlabs"];function k(a){return"string"==typeof a&&j.includes(a)}function l(a){try{return e().readFileSync((0,h.ks)(a),"utf8").trim()||null}catch{return null}}function m(){let a=process.env.LLV_TTS_BACKEND?.trim().toLowerCase();if(k(a))return a;let b=l("tts-backend")?.toLowerCase();return k(b)?b:"openai"}function n(a){let b=(0,h.ks)("tts-backend");e().mkdirSync(g().dirname(b),{recursive:!0}),e().writeFileSync(b,`${a}
|
|
3
|
-
`)}function o(){return process.env.OPENAI_API_KEY?.trim()||l("openai-api-key")}function p(){let a=process.env.LLV_TTS_BACKEND?.trim().toLowerCase();return{backend:m(),lockedByEnv:k(a),options:[{id:"openai",available:null!==o(),keyPath:(0,h.ks)("openai-api-key"),model:process.env.LLV_TTS_OPENAI_MODEL?.trim()||l("tts-model-openai")||"gpt-4o-mini-tts",voice:process.env.LLV_TTS_OPENAI_VOICE?.trim()||l("tts-voice-openai")||"alloy",cap:4e3},{id:"elevenlabs",available:null!==(0,i.F3)(),keyPath:(0,h.ks)("elevenlabs-api-key"),model:process.env.LLV_TTS_ELEVENLABS_MODEL?.trim()||l("tts-model-elevenlabs")||"eleven_multilingual_v2",voice:process.env.LLV_TTS_ELEVENLABS_VOICE?.trim()||l("tts-voice-elevenlabs")||"21m00Tcm4TlvDq8ikWAM",cap:4e3}]}}function q(){let a=p();return a.options.find(b=>b.id===a.backend)}},96487:()=>{}};
|
|
1
|
+
exports.id=306,exports.ids=[306],exports.modules={14904:(a,b,c)=>{"use strict";c.d(b,{CN:()=>q,F3:()=>r,NW:()=>p,Q2:()=>n,Wn:()=>s,_P:()=>m,yI:()=>o});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(43312),k=c(91724),l=c(24546);let m=["local","chatgpt","elevenlabs","soniox"];function n(a){return"string"==typeof a&&m.includes(a)}function o(){let a=process.env.LLV_TRANSCRIBE_BACKEND?.trim().toLowerCase();if(n(a))return a;try{let a=e().readFileSync((0,k.ks)("transcribe-backend"),"utf8").trim().toLowerCase();if(n(a))return a}catch{}return"local"}function p(a){let b=(0,k.ks)("transcribe-backend");e().mkdirSync(i().dirname(b),{recursive:!0}),e().writeFileSync(b,a+"\n")}function q(){let a=process.env.LLV_TRANSCRIBE_BACKEND?.trim().toLowerCase();return{backend:o(),lockedByEnv:n(a),options:[{id:"local",available:(0,l.Zm)(),keyPath:(0,l.cX)()},{id:"chatgpt",available:null!==(0,j.g)(),keyPath:i().join(g().homedir(),".codex","auth.json")},{id:"elevenlabs",available:null!==r(),keyPath:(0,k.ks)("elevenlabs-api-key")},{id:"soniox",available:null!==s(),keyPath:(0,k.ks)("soniox-api-key")}]}}function r(){let a=process.env.ELEVENLABS_API_KEY?.trim();if(a)return a;try{return e().readFileSync((0,k.ks)("elevenlabs-api-key"),"utf8").trim()||null}catch{return null}}function s(){let a=process.env.SONIOX_API_KEY?.trim();if(a)return a;try{return e().readFileSync((0,k.ks)("soniox-api-key"),"utf8").trim()||null}catch{return null}}},24546:(a,b,c)=>{"use strict";c.d(b,{Tc:()=>o,Zm:()=>n,cX:()=>m});var d=c(31421),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(91724);let j=process.env.LLV_WHISPER_MODEL||"small",k=process.env.LLV_WHISPER_DEVICE||"cpu";function l(){return process.env.LLV_WHISPER_VENV||(0,i.UT)("whisper-venv")}function m(){return h().join(l(),"bin","python")}function n(){return f().existsSync(m())}function o(a,b){let c=h().join(l(),"bin","python"),e=h().join(process.cwd(),"scripts","whisper_transcribe.py");return new Promise((f,g)=>{(0,d.execFile)(c,[e,a,j,k,b],{maxBuffer:4194304,timeout:12e4},(a,b)=>{if(a&&!b){let b="ENOENT"===a.code?" (run scripts/setup-whisper.sh)":"";g(Error(a.message+b));return}try{let a=JSON.parse(b.trim().split("\n").at(-1)??"{}");if("string"==typeof a.error)return void g(Error(a.error));f({text:"string"==typeof a.text?a.text:""})}catch{g(Error("local STT returned invalid output"))}})})}},31592:(a,b,c)=>{"use strict";c.d(b,{He:()=>e,KT:()=>g,pS:()=>f,vI:()=>d});let d="state-staging",e="staging-release.json";function f(a=process.env){return"1"===a.LLV_STAGING}function g(a){let b;if(!a||"object"!=typeof a||Array.isArray(a))throw Error("staging release record is invalid");let c=a.containers;if("string"!=typeof a.revision||!/^[0-9a-f]{40}$/.test(a.revision)||"string"!=typeof a.image||!a.image||"string"!=typeof a.deployedAt||Number.isNaN(Date.parse(a.deployedAt))||!c||"object"!=typeof c||Array.isArray(c)||"string"!=typeof a.endpoint)throw Error("staging release record is invalid");try{b=new URL(a.endpoint)}catch{throw Error("staging release endpoint is invalid")}if("http:"!==b.protocol||!b.port)throw Error("staging release endpoint is invalid");if("string"!=typeof c.viewer||!c.viewer||"string"!=typeof c.runtimeHost||!c.runtimeHost)throw Error("staging release containers are invalid");return{revision:a.revision,image:a.image,endpoint:a.endpoint,containers:{viewer:c.viewer,runtimeHost:c.runtimeHost},deployedAt:a.deployedAt}}},35961:(a,b,c)=>{"use strict";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})}},43312:(a,b,c)=>{"use strict";c.d(b,{g:()=>j});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h);function j(){try{let a=JSON.parse(e().readFileSync(i().join(g().homedir(),".codex","auth.json"),"utf8")),b="string"==typeof a.tokens?.access_token?a.tokens.access_token:"",c="string"==typeof a.tokens?.account_id?a.tokens.account_id:"";return b&&c?{accessToken:b,accountId:c}:null}catch{return null}}},78335:()=>{},91724:(a,b,c)=>{"use strict";c.d(b,{BQ:()=>u,Pn:()=>t,UT:()=>o,ks:()=>n,oy:()=>v});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(31592);let k="agent-log-viewer",l="live-log-viewer";function m(){return process.env.XDG_CONFIG_HOME||i().join(g().homedir(),".config")}function n(a){return p(m(),a)}function o(a){return p(process.env.XDG_CACHE_HOME||i().join(g().homedir(),".cache"),a)}function p(a,b){let c=i().join(a,k,b);if(e().existsSync(c))return c;let d=i().join(a,l,b);return e().existsSync(d)?d:c}let q=new Set,r=".migrated-from-legacy";function s(a,b){if("1"===process.env.LLV_RESOURCE_OBSERVATION_WORKER||q.has(a))return;let c=i().join(a,r),d=()=>`${new Date().toISOString()} ${b}
|
|
2
|
+
`;try{if(e().existsSync(c))return void q.add(a);if(!e().existsSync(b)){e().mkdirSync(a,{recursive:!0}),e().writeFileSync(c,d()),q.add(a);return}if(!e().existsSync(a)){e().mkdirSync(i().dirname(a),{recursive:!0});let c=`${a}.migrating.${process.pid}`;e().rmSync(c,{recursive:!0,force:!0});try{e().cpSync(b,c,{recursive:!0}),e().writeFileSync(i().join(c,r),d()),e().renameSync(c,a)}catch(a){throw e().rmSync(c,{recursive:!0,force:!0}),a}q.add(a);return}e().cpSync(b,a,{recursive:!0,force:!1,errorOnExist:!1}),e().writeFileSync(c,d()),q.add(a)}catch(c){console.error(`viewer state migration ${b} -> ${a} failed; will retry:`,c)}}function t(){let a=process.env.LLV_STATE_DIR;if((0,j.pS)()){var b=a;let c=b||i().join(m(),k,j.vI),d=i().resolve(c);if([i().join(m(),k,"state"),i().join(m(),l,"state"),i().join(g().homedir(),".claude","viewer-state")].some(a=>i().resolve(a)===d))throw Error(`staging mode refuses the production state dir ${d}; set LLV_STATE_DIR to a staging-only dir`);return c}if(a)return a;let c=i().join(m(),k,"state");return s(c,i().join(g().homedir(),".claude","viewer-state")),c}function u(...a){return i().join(t(),...a)}function v(){if((0,j.pS)())return u("inbox");let a=i().join(m(),k,"inbox");return s(a,i().join(g().homedir(),".claude","viewer-inbox")),a}},95998:(a,b,c)=>{"use strict";c.d(b,{A6:()=>j,UE:()=>k,Yb:()=>m,en:()=>p,hb:()=>n,hi:()=>q,sz:()=>o});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(91724),i=c(14904);let j=["openai","elevenlabs","soniox"];function k(a){return"string"==typeof a&&j.includes(a)}function l(a){try{return e().readFileSync((0,h.ks)(a),"utf8").trim()||null}catch{return null}}function m(){let a=process.env.LLV_TTS_BACKEND?.trim().toLowerCase();if(k(a))return a;let b=l("tts-backend")?.toLowerCase();return k(b)?b:"openai"}function n(a){let b=(0,h.ks)("tts-backend");e().mkdirSync(g().dirname(b),{recursive:!0}),e().writeFileSync(b,`${a}
|
|
3
|
+
`)}function o(){return process.env.OPENAI_API_KEY?.trim()||l("openai-api-key")}function p(){let a=process.env.LLV_TTS_BACKEND?.trim().toLowerCase();return{backend:m(),lockedByEnv:k(a),options:[{id:"openai",available:null!==o(),keyPath:(0,h.ks)("openai-api-key"),model:process.env.LLV_TTS_OPENAI_MODEL?.trim()||l("tts-model-openai")||"gpt-4o-mini-tts",voice:process.env.LLV_TTS_OPENAI_VOICE?.trim()||l("tts-voice-openai")||"alloy",cap:4e3},{id:"elevenlabs",available:null!==(0,i.F3)(),keyPath:(0,h.ks)("elevenlabs-api-key"),model:process.env.LLV_TTS_ELEVENLABS_MODEL?.trim()||l("tts-model-elevenlabs")||"eleven_multilingual_v2",voice:process.env.LLV_TTS_ELEVENLABS_VOICE?.trim()||l("tts-voice-elevenlabs")||"21m00Tcm4TlvDq8ikWAM",cap:4e3},{id:"soniox",available:null!==(0,i.Wn)(),keyPath:(0,h.ks)("soniox-api-key"),model:process.env.LLV_TTS_SONIOX_MODEL?.trim()||l("tts-model-soniox")||"tts-rt-v2",voice:process.env.LLV_TTS_SONIOX_VOICE?.trim()||l("tts-voice-soniox")||"Adrian",language:process.env.LLV_TTS_SONIOX_LANGUAGE?.trim()||l("tts-language-soniox")||"en",cap:4e3}]}}function q(){let a=p();return a.options.find(b=>b.id===a.backend)}},96487:()=>{}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=3086,exports.ids=[3086],exports.modules={23086:(a,b,c)=>{c.d(b,{Ll:()=>P,Nm:()=>O,TF:()=>v,vx:()=>Q});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(50920),k=c(7058),l=c(94284),m=c(7343),n=c(78598),o=c(36552);let p="files-scan-snapshot.json",q=-1/0,r=globalThis;function s(a){return"object"==typeof a&&null!==a}function t(a){if(!s(a)||!0!==a.complete||!Array.isArray(a.files)||!Array.isArray(a.projectCatalog))return!1;let b=a.files.every(a=>{var b;return!!s(a)&&"string"==typeof a.path&&("codex-sessions"===a.root||"claude-projects"===a.root||"claude-tasks"===a.root)&&"string"==typeof a.name&&"string"==typeof a.project&&"string"==typeof a.title&&("codex"===a.engine||"claude"===a.engine||"shell"===a.engine)&&"string"==typeof a.kind&&("codex"===a.fmt||"claude"===a.fmt||"plain"===a.fmt)&&(null===a.parent||"string"==typeof a.parent)&&"number"==typeof a.mtime&&Number.isFinite(a.mtime)&&"number"==typeof a.size&&Number.isFinite(a.size)&&(void 0===a.sessionStartedAt||null===a.sessionStartedAt||"string"==typeof a.sessionStartedAt)&&(void 0===a.nativeParentThreadId||null===a.nativeParentThreadId||"string"==typeof a.nativeParentThreadId)&&(void 0===a.nativeForkSourceThreadId||null===a.nativeForkSourceThreadId||"string"==typeof a.nativeForkSourceThreadId)&&("live"===a.activity||"recent"===a.activity||"stalled"===a.activity||"idle"===a.activity)&&(void 0===a.authoritativeTurn||!!s(b=a.authoritativeTurn)&&("busy"===b.state||"terminal"===b.state||"idle"===b.state||"unknown"===b.state)&&("lifecycle"===b.source||"tool"===b.source||"assistant"===b.source||"empty"===b.source)&&(null===b.terminalAt||"string"==typeof b.terminalAt))&&(null===a.proc||"running"===a.proc||"done"===a.proc||"killed"===a.proc)&&(null===a.pid||"number"==typeof a.pid)&&(null===a.model||"string"==typeof a.model)&&(null===a.pendingQuestion||s(a.pendingQuestion))&&(null===a.waitingInput||s(a.waitingInput))}),c=a.projectCatalog.every(a=>s(a)&&"string"==typeof a.project&&"number"==typeof a.smt&&Number.isFinite(a.smt)&&"number"==typeof a.conversations&&Number.isSafeInteger(a.conversations)&&(void 0===a.projectRoot||"string"==typeof a.projectRoot));return b&&c}function u(){try{let a=JSON.parse(g().readFileSync((0,j.BQ)(p),"utf8"));if(!s(a)||1!==a.version||9!==a.schemaVersion||!t(a.snapshot))return;return a.snapshot}catch{return}}function v(){return u()}function w(a){let b,c="create state directory",d=(0,j.BQ)(p);try{let f=(0,j.BQ)(p);d=f,g().mkdirSync(i().dirname(f),{recursive:!0,mode:448}),b=i().join(i().dirname(f),`.${i().basename(f)}.${process.pid}.${e().randomUUID()}.tmp`),c="write temporary snapshot",d=b,g().writeFileSync(b,JSON.stringify({version:1,schemaVersion:9,snapshot:a})+"\n",{encoding:"utf8",mode:384}),c="rename temporary snapshot",d=f,g().renameSync(b,f)}catch(e){if(void 0!==b)try{g().unlinkSync(b)}catch{}let a=Date.now();if(a-q>=6e4){q=a;let b=e instanceof Error?`${e.message}${"code"in e&&e.code?` (${String(e.code)})`:""}`:String(e);console.error(`[files scan cache] ${c} failed for ${d}: ${b}; a later refresh will retry`)}}}function x(a){return s(a)&&"promise"in a?x(a.promise):s(a)&&"function"==typeof a.then?Promise.resolve(a):void 0}function y(a,b,c,d=c,e=new AbortController){let f={generation:b,promise:c,resourcePromise:d,controller:e,subscribers:0,settled:!1};a.refresh=f;let g=()=>{f.settled=!0,a.refresh===f&&(a.refresh=void 0)};return c.then(g,g),f}function z(a){return a instanceof Error&&"AbortError"===a.name?a:new DOMException("file scan cancelled","AbortError")}function A(a,b){return b?.aborted?Promise.reject(z(b.reason)):(a.subscribers+=1,new Promise((c,d)=>{let e=!0,f=()=>{e&&(e=!1,b?.removeEventListener("abort",g),a.subscribers-=1,0!==a.subscribers||a.settled||a.controller.abort(z()))},g=()=>{f(),d(z(b?.reason))};b?.addEventListener("abort",g,{once:!0}),a.promise.then(a=>{e&&(f(),c(a))},a=>{e&&(f(),d(a))})}))}async function B(a,b,c,d){let e=performance.now();try{let f=await d();return a.lastScan={generation:b,reason:c,status:"complete",durationMs:performance.now()-e},f}catch(d){throw a.lastScan={generation:b,reason:c,status:"failed",durationMs:performance.now()-e},d}}function C(a,b,c,d,e){let f=void 0!==a.freshObservationGeneration&&b>=a.freshObservationGeneration,g="ordinary"===c||"cold"===c;return B(a,b,c,async()=>{let c=await (0,o.uh)({fresh:f,join:g,signal:e},(b,c)=>(0,o.KZ)(b,{persistIndex:"1"!==process.env.LLV_RESOURCE_OBSERVATION_WORKER,...d?{onResourceSnapshot:d,resourceBaseline:a.snapshot}:{}},c));if(!c.complete)throw Error("filesystem scan incomplete");return"1"!==process.env.LLV_RESOURCE_OBSERVATION_WORKER&&w(c),a.snapshot=c,a.snapshotGeneration=Math.max(a.snapshotGeneration,b),a.refreshedAt=Date.now(),a.completedAt=a.refreshedAt,f&&void 0!==a.freshObservationGeneration&&b>=a.freshObservationGeneration&&(a.freshObservationGeneration=void 0),c})}function D(a,b,c){let d=new AbortController,e=C(a,b,c,void 0,d.signal);return y(a,b,e,e,d)}function E(a,b,c){var d;let e,f,g,h,i,j,k;return d=(d,e)=>C(a,b,c,d,e),g=new AbortController,h=!1,(i=new Promise((a,b)=>{e=a,f=b})).catch(()=>{}),(k=d(j=a=>{h||(h=!0,e(a))},g.signal)).then(j,a=>{h||f(a)}),y(a,b,k,i,g)}function F(a,b){let c=!1,d=!1,e=new AbortController,f=new Promise(a=>setImmediate(a)).then(()=>{if(c=!0,e.signal.aborted)throw z(e.signal.reason);if(d){if(!a.snapshot)throw Error("deferred file scan canceled without a completed snapshot");return a.snapshot}return C(a,b,"ordinary",void 0,e.signal)}),g=y(a,b,f,f,e);return g.cancelBeforeStart=()=>!c&&(d=!0,!0),g}async function G(a,b,c,d="generation",e){for(;!a.snapshot||a.snapshotGeneration<b||void 0!==c&&(a.pinnedSnapshots?.get(c)?.generation??-1)<b;){let f=a.refresh??(c?function(a,b,c,d){let e=new AbortController,f=void 0!==a.freshObservationGeneration&&b>=a.freshObservationGeneration,g=B(a,b,d,async()=>{let d=await (0,o.uh)({fresh:f,join:!1,exclusive:!0,signal:e.signal},(a,b)=>(0,o.KZ)(a,{persistIndex:"1"!==process.env.LLV_RESOURCE_OBSERVATION_WORKER,pin:c},b));if(!d.complete)throw Error("filesystem scan incomplete");let g=d.pinOverlayPaths??[],h=new Set(g),i={files:d.files.filter(a=>!h.has(a.path)),projectCatalog:d.projectCatalog,complete:!0};for(a.pinnedSnapshots??=new Map,a.pinnedSnapshots.delete(c),a.pinnedSnapshots.set(c,{snapshot:{...i,files:d.files},...g.length?{pinOverlayPaths:g}:{},generation:b,refreshedAt:Date.now()});a.pinnedSnapshots.size>8;){let b=a.pinnedSnapshots.keys().next().value;if(void 0===b)break;a.pinnedSnapshots.delete(b),a.pinnedGenerations?.delete(b)}return"1"!==process.env.LLV_RESOURCE_OBSERVATION_WORKER&&w(i),a.snapshot=i,a.snapshotGeneration=Math.max(a.snapshotGeneration,b),a.refreshedAt=Date.now(),a.completedAt=a.refreshedAt,f&&void 0!==a.freshObservationGeneration&&b>=a.freshObservationGeneration&&(a.freshObservationGeneration=void 0),i});return y(a,b,g,g,e)}(a,b,c,d):D(a,b,d));await A(f,e)}return a.snapshot}function H(a,b){let c=a.pinnedSnapshots?.get(b);if(c)return a.pinnedSnapshots.delete(b),a.pinnedSnapshots.set(b,c),c}function I(a,b,c,d){let e=performance.now(),f=b?H(a,b):void 0;if(f){let b=structuredClone({snapshot:f.snapshot,pinOverlayPaths:f.pinOverlayPaths,generation:f.generation,targetGeneration:c});return{...b,cacheStatus:d??(b.generation<c?"stale":"hit"),requestCount:a.requestCount??0,cloneDurationMs:performance.now()-e,refreshedAt:f.refreshedAt,...a.lastScan?{lastScan:{...a.lastScan}}:{}}}return{snapshot:structuredClone(a.snapshot),generation:a.snapshotGeneration,targetGeneration:c,cacheStatus:d??(a.snapshotGeneration<c?"stale":"hit"),requestCount:a.requestCount??0,cloneDurationMs:performance.now()-e,refreshedAt:a.completedAt??a.refreshedAt,...a.lastScan?{lastScan:{...a.lastScan}}:{}}}function J(a){return a.requestedGeneration+=1,a.requestedGeneration}function K(a){a.catch(()=>void 0)}function L(a,b,c){a.pinnedGenerations??=new Map;let d=Math.max(a.pinnedGenerations.get(b)??-1,c);for(a.pinnedGenerations.delete(b),a.pinnedGenerations.set(b,d);a.pinnedGenerations.size>8;){let b=a.pinnedGenerations.keys().next().value;if(void 0===b)break;a.pinnedGenerations.delete(b)}return d}function M(){let a=(r.__llvFilesRouteScans??=new Map,r.__llvFilesRouteScans),b=a.get("");if(void 0===b){let b=u();b&&function(a){for(let b of((0,m.X)(a.files),a.files)){let a;if(!0!==b.derivationComplete)continue;try{a=g().statSync(b.path)}catch{continue}if(a.size!==b.size||a.mtimeMs/1e3!==b.mtime)continue;let c=1e3*b.mtime,d=function(a){if("jsonl_turn_open"===a.activityReason||"jsonl_turn_stalled"===a.activityReason||"pane_at_composer"===a.activityReason)return{state:"busy",source:"lifecycle",terminalAt:null};if("jsonl_turn_completed"===a.activityReason){let b=a.lastTurn?.endedAt;return{state:"terminal",source:"lifecycle",terminalAt:"number"==typeof b&&Number.isFinite(b)?new Date(b).toISOString():null}}if("mtime_fresh"===a.activityReason||"mtime_recent"===a.activityReason||"mtime_old"===a.activityReason)return{state:"unknown",source:"empty",terminalAt:null}}(b);void 0!==d&&b.path.endsWith(".jsonl")&&("claude"===b.engine||"codex"===b.engine)&&((0,k.Ul)(b.path,b.size,c,"codex"===b.engine,d,{authoritative:!1,composerReleased:"pane_at_composer"===b.activityReason}),b.authoritativeTurn?(0,k.Ul)(b.path,b.size,c,"codex"===b.engine,b.authoritativeTurn,{composerReleased:"pane_at_composer"===b.activityReason}):("codex"===b.engine||"terminal"!==d.state)&&(0,k.Ul)(b.path,b.size,c,"codex"===b.engine,d,{composerReleased:"pane_at_composer"===b.activityReason})),"claude-projects"===b.root&&b.path.includes(`${i().sep}subagents${i().sep}`)||(0,l.E)("model").set(b.path,[b.size,c,{display:b.model,launch:b.launchModel??null}]),Object.hasOwn(b,"effort")&&("claude"!==b.engine||"running"!==b.proc)&&(0,l.E)("effort").set(b.path,[b.size,c,b.effort??null]),Object.hasOwn(b,"plan")&&(0,l.E)("plan-v2").set(b.path,[b.size,c,b.plan]),Object.hasOwn(b,"goal")&&(0,l.E)("goal-v2").set(b.path,[b.size,c,b.goal]),Object.hasOwn(b,"ctx")&&(0,l.E)("ctx-v2").set(b.path,[b.size,c,b.ctx]),Object.hasOwn(b,"lastTurn")&&(0,l.E)("last-turn-v5").set(b.path,[b.size,c,b.lastTurn]),Object.hasOwn(b,"pendingWakeup")&&(0,l.E)("wakeup-v2").set(b.path,[b.size,c,b.pendingWakeup]),"claude-projects"===b.root&&b.path.endsWith(".jsonl")&&(0,l.E)(n.oS).set(b.path,[b.size,c,function(a){if(!a.pendingQuestion)return null;let{pid:b,paneTarget:c,...d}=a.pendingQuestion;return d}(b)])}}(b);let c={schemaVersion:9,snapshot:b,snapshotGeneration:0,requestedGeneration:0,refreshedAt:0,completedAt:b?function(){try{return g().statSync((0,j.BQ)(p)).mtimeMs}catch{return 0}}():0};return a.set("",c),c}let c=function(a){if(s(a)&&9===a.schemaVersion&&Number.isSafeInteger(a.snapshotGeneration)&&Number.isSafeInteger(a.requestedGeneration)){let b=x(a.refresh);return!b||a.refresh?.controller&&Number.isSafeInteger(a.refresh.subscribers)||y(a,a.refresh?.generation??0,b),a}let b=s(a)?a:{},c={schemaVersion:9,snapshot:t(b.snapshot)?b.snapshot:void 0,snapshotGeneration:0,requestedGeneration:0,refreshedAt:"number"==typeof b.refreshedAt&&Number.isFinite(b.refreshedAt)?b.refreshedAt:0,completedAt:"number"==typeof b.completedAt&&Number.isFinite(b.completedAt)?b.completedAt:"number"==typeof b.refreshedAt&&Number.isFinite(b.refreshedAt)?b.refreshedAt:0},d=x(b.refresh);if(d){let a=d.then(a=>{if(!a.complete)throw Error("filesystem scan incomplete");return c.snapshot=a,c.refreshedAt=Date.now(),c.completedAt=c.refreshedAt,a});y(c,0,a)}return c}(b);return a.delete(""),a.set("",c),c}async function N(a,b,c=Date.now(),d,e){let f=M();f.requestCount=(f.requestCount??0)+1;let g=b&&!f.snapshot?.files.some(a=>a.path===b)?b:void 0,h=g?f.pinnedSnapshots?.get(g):void 0,i=void 0===g||void 0!==h,j=h?.refreshedAt??f.refreshedAt;if(void 0!==d&&f.snapshot&&i&&(void 0!==f.refresh&&f.refresh.generation>(h?.generation??f.snapshotGeneration)||f.lastScan?.reason==="revision"&&c-j<3e5)){let a=h?.generation??f.snapshotGeneration;return I(f,g,a,f.refresh?"stale":"hit")}let k=void 0!==e&&e<=f.requestedGeneration?e:void 0;if(void 0!==k)g&&(k=L(f,g,k));else if(void 0!==d){let a;f.forcedRevision===d&&void 0!==f.forcedGeneration?a=f.forcedGeneration:(a=J(f),f.forcedRevision=d,f.forcedGeneration=a),k=a,g&&(k=L(f,g,a));let b=G(f,k,g,"revision"),c=()=>{f.forcedGeneration===a&&(f.forcedRevision=void 0,f.forcedGeneration=void 0)};if(!f.snapshot)try{return await b,I(f,g,k,"miss")}finally{c()}b.then(c,c)}if(void 0!==k){let a=G(f,k,g,"generation"),b=!f.snapshot;return b?await a:K(a),I(f,g,k,b?"miss":void 0)}if(g){let a,b;f.pinnedSnapshots??=new Map;let d=H(f,g);if(d&&c-d.refreshedAt<1e3)return I(f,g,d.generation);a=f.pinnedGenerations?.get(g),b=f.pinnedSnapshots?.get(g)?.generation??-1;let e=G(f,k=void 0!==a&&a>b?a:L(f,g,J(f)),g,"pinned"),h=!f.snapshot;return h?await e:K(e),I(f,g,k,h?"miss":void 0)}if(!f.snapshot){k=f.refresh?.generation??J(f);let a=f.refresh??D(f,k,"cold");return await A(a),I(f,void 0,k,"miss")}return f.refresh?k=f.refresh.generation:c-Math.max(f.refreshedAt,f.ordinaryRefreshRequestedAt??0)>=3e5?(k=J(f),f.ordinaryRefreshRequestedAt=c,F(f,k)):k=f.snapshotGeneration,I(f,void 0,k)}async function O({revalidate:a=!0,signal:b}={}){let c=M();if(c.requestCount=(c.requestCount??0)+1,c.snapshot){let b=Date.now();if(a&&!c.refresh&&b-Math.max(c.refreshedAt,c.ordinaryRefreshRequestedAt??0)>=3e5){let a=J(c);c.ordinaryRefreshRequestedAt=b,F(c,a)}return I(c,void 0,c.snapshotGeneration)}let d=c.refresh?.generation??J(c),e=c.refresh??D(c,d,"cold");return await A(e,b),I(c,void 0,d,"miss")}async function P({fresh:a=!1,now:b=Date.now()}={}){if(a){let a=M(),b=a.freshObservationGeneration??J(a);return a.freshObservationGeneration=b,await G(a,b,void 0,"fresh"),I(a,void 0,b)}let c=await N(void 0,void 0,b);if(c.generation>=c.targetGeneration)return c;let d=M();return await G(d,c.targetGeneration,void 0,"current"),I(d,void 0,c.targetGeneration)}async function Q(){let a,b=M();b.requestCount=(b.requestCount??0)+1;let c=b.freshObservationGeneration;if(void 0===c){let d=b.refresh;d?.cancelBeforeStart?.()?(c=J(b),b.freshObservationGeneration=c,a=E(b,c,"fresh")):d?c=d.generation:(c=J(b),b.freshObservationGeneration=c)}for(;;){let d=a??b.refresh??E(b,c,"fresh");a=void 0;let e=await d.resourcePromise;if(d.generation>=c)return{snapshot:e,generation:d.generation,targetGeneration:c,cacheStatus:"miss",requestCount:b.requestCount??0,cloneDurationMs:0,refreshedAt:Date.now(),...b.lastScan?{lastScan:{...b.lastScan}}:{}};await A(d)}}},36552:(a,b,c)=>{c.d(b,{wj:()=>v,uh:()=>u,KZ:()=>q});var d=c(59376),e=c(31421),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h);let j={setTimeout:(a,b)=>setTimeout(a,b),clearTimeout:a=>{clearTimeout(a)}};var k=c(54132),l=c(65377),m=c(20707);function n(){return new DOMException("file scan cancelled","AbortError")}function o(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}let p=globalThis;function q(a,b={},c=new AbortController().signal){let f={...b,persist:a.persist,...a.fresh?{fresh:!0}:{}};if(c.aborted)return Promise.reject(s(c.reason));if(!function(a=process.env){return"test"!==a.NODE_ENV&&"1"!==a.LLV_FILE_SCANNER_WORKER&&"1"!==a.LLV_FILE_SCANNER_WORKER_DISABLED}())return(0,d.SW)(void 0,{...f,signal:c}).then(a=>{if(c.aborted)throw s(c.reason);return a});let{onResourceSnapshot:h,...p}=f;return function(a,b,c={}){if(c.signal?.aborted)return Promise.reject(n());let d=(0,m.FX)(!1),f=c.launch??function(a=process.cwd()){let b=i().join(a,"src/lib/fileScanner.worker.ts"),c=i().join(a,".next/server/file-scanner-worker.js");return g().existsSync(b)&&g().existsSync("/usr/local/bin/bun-container")?{executable:"/usr/local/bin/bun-container",workerPath:b}:g().existsSync(c)?{executable:process.versions.bun?process.execPath:process.env.LLV_BUN_EXECUTABLE||"bun",workerPath:c}:{executable:process.execPath,workerPath:b}}(c.cwd),h=void 0===c.launch&&g().existsSync("/usr/bin/nice"),p=(0,e.spawn)(h?"/usr/bin/nice":f.executable,[...h?["-n","10",f.executable]:[],f.workerPath],{cwd:c.cwd??process.cwd(),stdio:["pipe","pipe","pipe"],env:{...(0,l.Fd)(c.env??process.env),LLV_FILE_SCANNER_WORKER:"1"}});return new Promise((e,f)=>{let g,h,i=c.scheduler??j,l=!1,q=!1,r="",s="",t=0,u=null,v=null,w=(a,b)=>{l||(l=!0,void 0!==h&&(i.clearTimeout(h),h=void 0),q&&(c.signal?.removeEventListener("abort",z),q=!1),a?f(a):e(b))},x=a=>{if(!l&&!v){v=a;try{p.kill("SIGKILL")}catch{}(null!==p.exitCode||null!==p.signalCode)&&w(a)}},y=a=>{x(Error(a))},z=()=>x(n()),A=()=>{for(;;){let a,c=r.indexOf("\n");if(c<0)return;let d=r.slice(0,c);if(r=r.slice(c+1),!d)continue;try{a=JSON.parse(d)}catch{y("file scanner worker emitted invalid JSON");return}let e=function(a){var b;return o(a)&&("resource"===a.type||"complete"===a.type)&&o(b=a.snapshot)&&Array.isArray(b.files)&&Array.isArray(b.projectCatalog)&&"boolean"==typeof b.complete&&(void 0===b.conversationCatalog||Array.isArray(b.conversationCatalog))&&(void 0===b.pinOverlayPaths||Array.isArray(b.pinOverlayPaths))?a:null}(a);if(!e)return void y("file scanner worker emitted an invalid message");if("resource"===e.type)b?.(e.snapshot);else{let{conversationCatalog:a,...b}=e.snapshot;g=a,u=b}}};h=i.setTimeout(()=>{h=void 0,y("file scanner worker timed out")},c.timeoutMs??3e5),p.once("error",a=>w(a)),p.stdout.setEncoding("utf8"),p.stdout.on("data",a=>{(t+=Buffer.byteLength(a))>0x2000000?y("file scanner worker exceeded output limit"):(r+=a,A())}),p.stderr.setEncoding("utf8"),p.stderr.on("data",a=>{s=`${s}${a}`,Buffer.byteLength(s)>4096&&(s=Buffer.from(s).subarray(-4096).toString("utf8"))}),p.once("close",(a,b)=>{if(!l){if(v)return void w(v);if(A(),0!==a||!u){let c=s.trim();w(Error(`file scanner worker exited before completion (${b??a??"unknown"})${c?`: ${c}`:""}`));return}if(g){let a=(0,m.pu)(d);(0,m.OQ)(g,d,u.complete),a&&(c.transcriptIndexScheduler??k.O)({complete:u.complete,sources:g.map(a=>({path:a.path,project:a.project,engine:a.engine,size:a.size,mtimeMs:1e3*a.mtime}))})}w(void 0,u)}}),p.stdin.once("error",a=>{v||w(a)}),c.signal&&(c.signal.addEventListener("abort",z,{once:!0}),q=!0,c.signal.aborted&&z()),p.stdin.end(JSON.stringify({type:"scan",options:a}))})}(p,h,{signal:c})}let r=(a,b)=>q(a,{},b);function s(a){return a instanceof Error&&"AbortError"===a.name?a:new DOMException("file scan cancelled","AbortError")}function t(a,b){if(b.settled||b.subscribers>0||(b.controller.abort(s()),b.started))return;let c=a.queue.indexOf(b);c>=0&&a.queue.splice(c,1),b.settled=!0,b.reject(s())}async function u(a={},b=r){var c,d;let e=p.__llvFileScanCoordinator??={generation:0,queue:[],startScheduled:!1};if(a.signal?.aborted)throw s(a.signal.reason);let f={persist:!0===a.persist,fresh:!0===a.fresh},g=!0===a.exclusive,h=e.inflight,i=g||!h||h.controller.signal.aborted||h.exclusive||!1===a.join||(c=h.intent,!c.persist&&f.persist||!c.fresh&&f.fresh)?function(a,b,c,d){let e,f,g;if(!d){let c=a.queue.find(a=>!a.exclusive);if(c)return c.intent={persist:c.intent.persist||b.persist,fresh:c.intent.fresh||b.fresh},c}let h=((g=new Promise((a,b)=>{e=a,f=b})).catch(()=>void 0),{generation:0,intent:b,runner:c,exclusive:d,controller:new AbortController,subscribers:0,started:!1,settled:!1,promise:g,resolve:e,reject:f});return a.queue.push(h),function a(b){b.startScheduled||(b.startScheduled=!0,queueMicrotask(()=>{if(b.startScheduled=!1,b.inflight)return;let c=b.queue.shift();c&&function(b,c){let d;b.generation+=1,c.generation=b.generation,c.started=!0,b.inflight=c;try{d=Promise.resolve(c.runner(c.intent,c.controller.signal))}catch(a){d=Promise.reject(a)}d.then(a=>{c.settled=!0,c.resolve(a)},a=>{c.settled=!0,c.reject(a)}).finally(()=>{b.inflight===c&&(b.inflight=void 0),a(b)})}(b,c)}))}(a),h}(e,f,b,g):h;return d=a.signal,d?.aborted?(t(e,i),Promise.reject(s(d.reason))):(i.subscribers+=1,new Promise((a,b)=>{let c=!0,f=()=>{c&&(c=!1,d?.removeEventListener("abort",g),i.subscribers-=1,t(e,i))},g=()=>{f(),b(s(d?.reason))};d?.addEventListener("abort",g,{once:!0}),i.promise.then(b=>{c&&(f(),a(structuredClone(b)))},a=>{c&&(f(),b(a))})}))}function v(){return u({persist:!0})}}};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";exports.id=3139,exports.ids=[3139],exports.modules={83139:(a,b,c)=>{let d;function e(a){return a?a instanceof Headers?Object.fromEntries(a.entries()):Array.isArray(a)?Object.fromEntries(a):{...a}:{}}c.d(b,{StreamableHTTPClientTransport:()=>as});var f,g=c(9676);async function h(a){return(await d).getRandomValues(new Uint8Array(a))}async function i(a){let b="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~",c=256-256%b.length,d="";for(;d.length<a;)for(let e of(await h(a-d.length)))e<c&&(d+=b[e%b.length]);return d}async function j(a){return await i(a)}async function k(a){return btoa(String.fromCharCode(...new Uint8Array(await (await d).subtle.digest("SHA-256",new TextEncoder().encode(a))))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function l(a){if(a||(a=43),a<43||a>128)throw`Expected a length between 43 and 128. Received ${a}.`;let b=await j(a),c=await k(b);return{code_verifier:b,code_challenge:c}}d=globalThis.crypto?.webcrypto??globalThis.crypto??Promise.resolve().then(c.t.bind(c,77598,19)).then(a=>a.webcrypto);var m=c(45218);f||(f={});var n=c(46462),o=c(99449);let p=m.OZ().superRefine((a,b)=>{if(!URL.canParse(a))return b.addIssue({code:"custom",message:"URL must be parseable",fatal:!0}),n.tm}).refine(a=>{let b=new URL(a);return"javascript:"!==b.protocol&&"data:"!==b.protocol&&"vbscript:"!==b.protocol},{message:"URL cannot use javascript:, data:, or vbscript: scheme"}),q=m._H({resource:m.Yj().url(),authorization_servers:m.YO(p).optional(),jwks_uri:m.Yj().url().optional(),scopes_supported:m.YO(m.Yj()).optional(),bearer_methods_supported:m.YO(m.Yj()).optional(),resource_signing_alg_values_supported:m.YO(m.Yj()).optional(),resource_name:m.Yj().optional(),resource_documentation:m.Yj().optional(),resource_policy_uri:m.Yj().url().optional(),resource_tos_uri:m.Yj().url().optional(),tls_client_certificate_bound_access_tokens:m.zM().optional(),authorization_details_types_supported:m.YO(m.Yj()).optional(),dpop_signing_alg_values_supported:m.YO(m.Yj()).optional(),dpop_bound_access_tokens_required:m.zM().optional()}),r=m._H({issuer:m.Yj(),authorization_endpoint:p,token_endpoint:p,registration_endpoint:p.optional(),scopes_supported:m.YO(m.Yj()).optional(),response_types_supported:m.YO(m.Yj()),response_modes_supported:m.YO(m.Yj()).optional(),grant_types_supported:m.YO(m.Yj()).optional(),token_endpoint_auth_methods_supported:m.YO(m.Yj()).optional(),token_endpoint_auth_signing_alg_values_supported:m.YO(m.Yj()).optional(),service_documentation:p.optional(),revocation_endpoint:p.optional(),revocation_endpoint_auth_methods_supported:m.YO(m.Yj()).optional(),revocation_endpoint_auth_signing_alg_values_supported:m.YO(m.Yj()).optional(),introspection_endpoint:m.Yj().optional(),introspection_endpoint_auth_methods_supported:m.YO(m.Yj()).optional(),introspection_endpoint_auth_signing_alg_values_supported:m.YO(m.Yj()).optional(),code_challenge_methods_supported:m.YO(m.Yj()).optional(),client_id_metadata_document_supported:m.zM().optional()}),s=m._H({issuer:m.Yj(),authorization_endpoint:p,token_endpoint:p,userinfo_endpoint:p.optional(),jwks_uri:p,registration_endpoint:p.optional(),scopes_supported:m.YO(m.Yj()).optional(),response_types_supported:m.YO(m.Yj()),response_modes_supported:m.YO(m.Yj()).optional(),grant_types_supported:m.YO(m.Yj()).optional(),acr_values_supported:m.YO(m.Yj()).optional(),subject_types_supported:m.YO(m.Yj()),id_token_signing_alg_values_supported:m.YO(m.Yj()),id_token_encryption_alg_values_supported:m.YO(m.Yj()).optional(),id_token_encryption_enc_values_supported:m.YO(m.Yj()).optional(),userinfo_signing_alg_values_supported:m.YO(m.Yj()).optional(),userinfo_encryption_alg_values_supported:m.YO(m.Yj()).optional(),userinfo_encryption_enc_values_supported:m.YO(m.Yj()).optional(),request_object_signing_alg_values_supported:m.YO(m.Yj()).optional(),request_object_encryption_alg_values_supported:m.YO(m.Yj()).optional(),request_object_encryption_enc_values_supported:m.YO(m.Yj()).optional(),token_endpoint_auth_methods_supported:m.YO(m.Yj()).optional(),token_endpoint_auth_signing_alg_values_supported:m.YO(m.Yj()).optional(),display_values_supported:m.YO(m.Yj()).optional(),claim_types_supported:m.YO(m.Yj()).optional(),claims_supported:m.YO(m.Yj()).optional(),service_documentation:m.Yj().optional(),claims_locales_supported:m.YO(m.Yj()).optional(),ui_locales_supported:m.YO(m.Yj()).optional(),claims_parameter_supported:m.zM().optional(),request_parameter_supported:m.zM().optional(),request_uri_parameter_supported:m.zM().optional(),require_request_uri_registration:m.zM().optional(),op_policy_uri:p.optional(),op_tos_uri:p.optional(),client_id_metadata_document_supported:m.zM().optional()}),t=m.Ik({...s.shape,...r.pick({code_challenge_methods_supported:!0}).shape}),u=m.Ik({access_token:m.Yj(),id_token:m.Yj().optional(),token_type:m.Yj(),expires_in:o.qG(m.rS,void 0).optional(),scope:m.Yj().optional(),refresh_token:m.Yj().optional()}).strip(),v=m.Ik({error:m.Yj(),error_description:m.Yj().optional(),error_uri:m.Yj().optional()}),w=p.optional().or(m.eu("").transform(()=>void 0)),x=m.Ik({redirect_uris:m.YO(p),token_endpoint_auth_method:m.Yj().optional(),grant_types:m.YO(m.Yj()).optional(),response_types:m.YO(m.Yj()).optional(),client_name:m.Yj().optional(),client_uri:p.optional(),logo_uri:w,scope:m.Yj().optional(),contacts:m.YO(m.Yj()).optional(),tos_uri:w,policy_uri:m.Yj().optional(),jwks_uri:p.optional(),jwks:m.bz().optional(),software_id:m.Yj().optional(),software_version:m.Yj().optional(),software_statement:m.Yj().optional()}).strip(),y=m.Ik({client_id:m.Yj(),client_secret:m.Yj().optional(),client_id_issued_at:m.ai().optional(),client_secret_expires_at:m.ai().optional()}).strip(),z=x.merge(y);m.Ik({error:m.Yj(),error_description:m.Yj().optional()}).strip(),m.Ik({token:m.Yj(),token_type_hint:m.Yj().optional()}).strip();class A extends Error{constructor(a,b){super(a),this.errorUri=b,this.name=this.constructor.name}toResponseObject(){let a={error:this.errorCode,error_description:this.message};return this.errorUri&&(a.error_uri=this.errorUri),a}get errorCode(){return this.constructor.errorCode}}class B extends A{}B.errorCode="invalid_request";class C extends A{}C.errorCode="invalid_client";class D extends A{}D.errorCode="invalid_grant";class E extends A{}E.errorCode="unauthorized_client";class F extends A{}F.errorCode="unsupported_grant_type";class G extends A{}G.errorCode="invalid_scope";class H extends A{}H.errorCode="access_denied";class I extends A{}I.errorCode="server_error";class J extends A{}J.errorCode="temporarily_unavailable";class K extends A{}K.errorCode="unsupported_response_type";class L extends A{}L.errorCode="unsupported_token_type";class M extends A{}M.errorCode="invalid_token";class N extends A{}N.errorCode="method_not_allowed";class O extends A{}O.errorCode="too_many_requests";class P extends A{}P.errorCode="invalid_client_metadata";class Q extends A{}Q.errorCode="insufficient_scope";class R extends A{}R.errorCode="invalid_target";let S={[B.errorCode]:B,[C.errorCode]:C,[D.errorCode]:D,[E.errorCode]:E,[F.errorCode]:F,[G.errorCode]:G,[H.errorCode]:H,[I.errorCode]:I,[J.errorCode]:J,[K.errorCode]:K,[L.errorCode]:L,[M.errorCode]:M,[N.errorCode]:N,[O.errorCode]:O,[P.errorCode]:P,[Q.errorCode]:Q,[R.errorCode]:R};class T extends Error{constructor(a){super(a??"Unauthorized")}}let U="code",V="S256";async function W(a){let b=a instanceof Response?a.status:void 0,c=a instanceof Response?await a.text():a;try{let{error:a,error_description:b,error_uri:d}=v.parse(JSON.parse(c));return new(S[a]||I)(b||"",d)}catch(a){return new I(`${b?`HTTP ${b}: `:""}Invalid OAuth error response: ${a}. Raw body: ${c}`)}}async function X(a,b){try{return await Y(a,b)}catch(c){if(c instanceof C||c instanceof E)return await a.invalidateCredentials?.("all"),await Y(a,b);if(c instanceof D)return await a.invalidateCredentials?.("tokens"),await Y(a,b);throw c}}async function Y(a,{serverUrl:b,authorizationCode:c,scope:d,resourceMetadataUrl:e,fetchFn:f}){let g,h,i,j=await a.discoveryState?.(),k=e;if(!k&&j?.resourceMetadataUrl&&(k=new URL(j.resourceMetadataUrl)),j?.authorizationServerUrl){if(h=j.authorizationServerUrl,g=j.resourceMetadata,i=j.authorizationServerMetadata??await ae(h,{fetchFn:f}),!g)try{g=await aa(b,{resourceMetadataUrl:k},f)}catch{}(i!==j.authorizationServerMetadata||g!==j.resourceMetadata)&&await a.saveDiscoveryState?.({authorizationServerUrl:String(h),resourceMetadataUrl:k?.toString(),resourceMetadata:g,authorizationServerMetadata:i})}else{let c=await af(b,{resourceMetadataUrl:k,fetchFn:f});h=c.authorizationServerUrl,i=c.authorizationServerMetadata,g=c.resourceMetadata,await a.saveDiscoveryState?.({authorizationServerUrl:String(h),resourceMetadataUrl:k?.toString(),resourceMetadata:g,authorizationServerMetadata:i})}let l=await Z(b,a,g),m=d||g?.scopes_supported?.join(" ")||a.clientMetadata.scope,n=await Promise.resolve(a.clientInformation());if(!n){if(void 0!==c)throw Error("Existing OAuth client information is required when exchanging an authorization code");let b=i?.client_id_metadata_document_supported===!0,d=a.clientMetadataUrl;if(d&&!function(a){if(!a)return!1;try{let b=new URL(a);return"https:"===b.protocol&&"/"!==b.pathname}catch{return!1}}(d))throw new P(`clientMetadataUrl must be a valid HTTPS URL with a non-root pathname, got: ${d}`);if(b&&d)n={client_id:d},await a.saveClientInformation?.(n);else{if(!a.saveClientInformation)throw Error("OAuth client information must be saveable for dynamic registration");let b=await ak(h,{metadata:i,clientMetadata:a.clientMetadata,scope:m,fetchFn:f});await a.saveClientInformation(b),n=b}}let o=!a.redirectUrl;if(void 0!==c||o){let b=await aj(a,h,{metadata:i,resource:l,authorizationCode:c,fetchFn:f});return await a.saveTokens(b),"AUTHORIZED"}let p=await a.tokens();if(p?.refresh_token)try{let b=await ai(h,{metadata:i,clientInformation:n,refreshToken:p.refresh_token,resource:l,addClientAuthentication:a.addClientAuthentication,fetchFn:f});return await a.saveTokens(b),"AUTHORIZED"}catch(a){if(!(a instanceof A)||a instanceof I);else throw a}let q=a.state?await a.state():void 0,{authorizationUrl:r,codeVerifier:s}=await ag(h,{metadata:i,clientInformation:n,state:q,redirectUrl:a.redirectUrl,scope:m,resource:l});return await a.saveCodeVerifier(s),await a.redirectToAuthorization(r),"REDIRECT"}async function Z(a,b,c){let d,e=((d=new URL("string"==typeof a?a:a.href)).hash="",d);if(b.validateResourceURL)return await b.validateResourceURL(e,c?.resource);if(c){if(!function({requestedResource:a,configuredResource:b}){let c=new URL("string"==typeof a?a:a.href),d=new URL("string"==typeof b?b:b.href);if(c.origin!==d.origin||c.pathname.length<d.pathname.length)return!1;let e=c.pathname.endsWith("/")?c.pathname:c.pathname+"/",f=d.pathname.endsWith("/")?d.pathname:d.pathname+"/";return e.startsWith(f)}({requestedResource:e,configuredResource:c.resource}))throw Error(`Protected resource ${c.resource} does not match expected ${e} (or origin)`);return new URL(c.resource)}}function $(a){let b,c=a.headers.get("WWW-Authenticate");if(!c)return{};let[d,e]=c.split(" ");if("bearer"!==d.toLowerCase()||!e)return{};let f=_(a,"resource_metadata")||void 0;if(f)try{b=new URL(f)}catch{}return{resourceMetadataUrl:b,scope:_(a,"scope")||void 0,error:_(a,"error")||void 0}}function _(a,b){let c=a.headers.get("WWW-Authenticate");if(!c)return null;let d=RegExp(`${b}=(?:"([^"]+)"|([^\\s,]+))`),e=c.match(d);return e?e[1]||e[2]:null}async function aa(a,b,c=fetch){let d=await ad(a,"oauth-protected-resource",c,{protocolVersion:b?.protocolVersion,metadataUrl:b?.resourceMetadataUrl});if(!d||404===d.status)throw await d?.body?.cancel(),Error("Resource server does not implement OAuth 2.0 Protected Resource Metadata.");if(!d.ok)throw await d.body?.cancel(),Error(`HTTP ${d.status} trying to load well-known OAuth protected resource metadata.`);return q.parse(await d.json())}async function ab(a,b,c=fetch){try{return await c(a,{headers:b})}catch(d){if(d instanceof TypeError)if(b)return ab(a,void 0,c);else return;throw d}}async function ac(a,b,c=fetch){return await ab(a,{"MCP-Protocol-Version":b},c)}async function ad(a,b,c,d){var e,f;let h,i=new URL(a),j=d?.protocolVersion??g.aE;d?.metadataUrl?h=new URL(d.metadataUrl):(h=new URL(function(a,b="",c={}){return b.endsWith("/")&&(b=b.slice(0,-1)),c.prependPathname?`${b}/.well-known/${a}`:`/.well-known/${a}${b}`}(b,i.pathname),d?.metadataServerUrl??i)).search=i.search;let k=await ac(h,j,c);if(!d?.metadataUrl&&(e=k,f=i.pathname,!e||e.status>=400&&e.status<500&&"/"!==f)){let a=new URL(`/.well-known/${b}`,i);k=await ac(a,j,c)}return k}async function ae(a,{fetchFn:b=fetch,protocolVersion:c=g.aE}={}){let d={"MCP-Protocol-Version":c,Accept:"application/json"};for(let{url:c,type:e}of function(a){let b="string"==typeof a?new URL(a):a,c="/"!==b.pathname,d=[];if(!c)return d.push({url:new URL("/.well-known/oauth-authorization-server",b.origin),type:"oauth"}),d.push({url:new URL("/.well-known/openid-configuration",b.origin),type:"oidc"}),d;let e=b.pathname;return e.endsWith("/")&&(e=e.slice(0,-1)),d.push({url:new URL(`/.well-known/oauth-authorization-server${e}`,b.origin),type:"oauth"}),d.push({url:new URL(`/.well-known/openid-configuration${e}`,b.origin),type:"oidc"}),d.push({url:new URL(`${e}/.well-known/openid-configuration`,b.origin),type:"oidc"}),d}(a)){let a=await ab(c,d,b);if(a){if(!a.ok){if(await a.body?.cancel(),a.status>=400&&a.status<500)continue;throw Error(`HTTP ${a.status} trying to load ${"oauth"===e?"OAuth":"OpenID provider"} metadata from ${c}`)}if("oauth"===e)return r.parse(await a.json());return t.parse(await a.json())}}}async function af(a,b){let c,d;try{(c=await aa(a,{resourceMetadataUrl:b?.resourceMetadataUrl},b?.fetchFn)).authorization_servers&&c.authorization_servers.length>0&&(d=c.authorization_servers[0])}catch{}d||(d=String(new URL("/",a)));let e=await ae(d,{fetchFn:b?.fetchFn});return{authorizationServerUrl:d,authorizationServerMetadata:e,resourceMetadata:c}}async function ag(a,{metadata:b,clientInformation:c,redirectUrl:d,scope:e,state:f,resource:g}){let h;if(b){if(h=new URL(b.authorization_endpoint),!b.response_types_supported.includes(U))throw Error(`Incompatible auth server: does not support response type ${U}`);if(b.code_challenge_methods_supported&&!b.code_challenge_methods_supported.includes(V))throw Error(`Incompatible auth server: does not support code challenge method ${V}`)}else h=new URL("/authorize",a);let i=await l(),j=i.code_verifier,k=i.code_challenge;return h.searchParams.set("response_type",U),h.searchParams.set("client_id",c.client_id),h.searchParams.set("code_challenge",k),h.searchParams.set("code_challenge_method",V),h.searchParams.set("redirect_uri",String(d)),f&&h.searchParams.set("state",f),e&&h.searchParams.set("scope",e),e?.includes("offline_access")&&h.searchParams.append("prompt","consent"),g&&h.searchParams.set("resource",g.href),{authorizationUrl:h,codeVerifier:j}}async function ah(a,{metadata:b,tokenRequestParams:c,clientInformation:d,addClientAuthentication:e,resource:f,fetchFn:g}){var h,i;let j,k=b?.token_endpoint?new URL(b.token_endpoint):new URL("/token",a),l=new Headers({"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"});f&&c.set("resource",f.href),e?await e(l,c,k,b):d&&function(a,b,c,d){let{client_id:e,client_secret:f}=b;switch(a){case"client_secret_basic":var g,h,i,j,k=e,l=f,m=c;if(!l)throw Error("client_secret_basic authentication requires a client_secret");let n=btoa(`${k}:${l}`);m.set("Authorization",`Basic ${n}`);return;case"client_secret_post":g=e,h=f,(i=d).set("client_id",g),h&&i.set("client_secret",h);return;case"none":j=e,d.set("client_id",j);return;default:throw Error(`Unsupported client authentication method: ${a}`)}}((h=d,i=b?.token_endpoint_auth_methods_supported??[],j=void 0!==h.client_secret,"token_endpoint_auth_method"in h&&h.token_endpoint_auth_method&&["client_secret_basic","client_secret_post","none"].includes(h.token_endpoint_auth_method)&&(0===i.length||i.includes(h.token_endpoint_auth_method))?h.token_endpoint_auth_method:0===i.length?j?"client_secret_basic":"none":j&&i.includes("client_secret_basic")?"client_secret_basic":j&&i.includes("client_secret_post")?"client_secret_post":i.includes("none")?"none":j?"client_secret_post":"none"),d,l,c);let m=await (g??fetch)(k,{method:"POST",headers:l,body:c});if(!m.ok)throw await W(m);return u.parse(await m.json())}async function ai(a,{metadata:b,clientInformation:c,refreshToken:d,resource:e,addClientAuthentication:f,fetchFn:g}){let h=new URLSearchParams({grant_type:"refresh_token",refresh_token:d});return{refresh_token:d,...await ah(a,{metadata:b,tokenRequestParams:h,clientInformation:c,addClientAuthentication:f,resource:e,fetchFn:g})}}async function aj(a,b,{metadata:c,resource:d,authorizationCode:e,fetchFn:f}={}){let g,h=a.clientMetadata.scope;if(a.prepareTokenRequest&&(g=await a.prepareTokenRequest(h)),!g){if(!e)throw Error("Either provider.prepareTokenRequest() or authorizationCode is required");if(!a.redirectUrl)throw Error("redirectUrl is required for authorization_code flow");g=new URLSearchParams({grant_type:"authorization_code",code:e,code_verifier:await a.codeVerifier(),redirect_uri:String(a.redirectUrl)})}return ah(b,{metadata:c,tokenRequestParams:g,clientInformation:await a.clientInformation()??void 0,addClientAuthentication:a.addClientAuthentication,resource:d,fetchFn:f})}async function ak(a,{metadata:b,clientMetadata:c,scope:d,fetchFn:e}){let f;if(b){if(!b.registration_endpoint)throw Error("Incompatible auth server: does not support dynamic client registration");f=new URL(b.registration_endpoint)}else f=new URL("/register",a);let g=await (e??fetch)(f,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...c,...void 0!==d?{scope:d}:{}})});if(!g.ok)throw await W(g);return z.parse(await g.json())}class al extends Error{constructor(a,b){super(a),this.name="ParseError",this.type=b.type,this.field=b.field,this.value=b.value,this.line=b.line}}function am(a){}function an(a,b,c){return 100===c&&97===a.charCodeAt(b+1)&&116===a.charCodeAt(b+2)&&97===a.charCodeAt(b+3)&&58===a.charCodeAt(b+4)}function ao(a,b,c){return 101===c&&118===a.charCodeAt(b+1)&&101===a.charCodeAt(b+2)&&110===a.charCodeAt(b+3)&&116===a.charCodeAt(b+4)&&58===a.charCodeAt(b+5)}class ap extends TransformStream{constructor({onError:a,onRetry:b,onComment:c,maxBufferSize:d}={}){let e;super({start(f){e=function(a){if("function"==typeof a)throw TypeError("`config` must be an object, got a function instead. Did you mean `createParser({onEvent: fn})`?");let{onEvent:b=am,onError:c=am,onRetry:d=am,onComment:e,maxBufferSize:f}=a,g=[],h=0,i=!0,j,k="",l=0,m,n=!1;function o(){void 0!==f&&(h+k.length<=f||(n=!0,g.length=0,h=0,j=void 0,k="",l=0,m=void 0,c(new al(`Buffered data exceeded max buffer size of ${f} characters`,{type:"max-buffer-size-exceeded"}))))}function p(a){let c=0;if(-1===a.indexOf("\r")){let d=a.indexOf(`
|
|
2
|
+
`,c);for(;-1!==d;){if(c===d){l>0&&b({id:j,event:m,data:k}),j=void 0,k="",l=0,m=void 0,c=d+1,d=a.indexOf(`
|
|
3
|
+
`,c);continue}let e=a.charCodeAt(c);if(an(a,c,e)){let e=32===a.charCodeAt(c+5)?c+6:c+5,f=a.slice(e,d);if(0===l&&10===a.charCodeAt(d+1)){b({id:j,event:m,data:f}),j=void 0,k="",m=void 0,c=d+2,d=a.indexOf(`
|
|
4
|
+
`,c);continue}k=0===l?f:`${k}
|
|
5
|
+
${f}`,l++}else ao(a,c,e)?m=a.slice(32===a.charCodeAt(c+6)?c+7:c+6,d)||void 0:q(a,c,d);c=d+1,d=a.indexOf(`
|
|
6
|
+
`,c)}return a.slice(c)}for(;c<a.length;){let b=a.indexOf("\r",c),d=a.indexOf(`
|
|
7
|
+
`,c),e=-1;if(-1!==b&&-1!==d?e=b<d?b:d:-1!==b?e=b===a.length-1?-1:b:-1!==d&&(e=d),-1===e)break;q(a,c,e),c=e+1,13===a.charCodeAt(c-1)&&10===a.charCodeAt(c)&&c++}return a.slice(c)}function q(a,c,d){if(c===d)return void(l>0&&b({id:j,event:m,data:k}),j=void 0,k="",l=0,m=void 0);let f=a.charCodeAt(c);if(an(a,c,f)){let b=32===a.charCodeAt(c+5)?c+6:c+5,e=a.slice(b,d);k=0===l?e:`${k}
|
|
8
|
+
${e}`,l++;return}if(ao(a,c,f)){m=a.slice(32===a.charCodeAt(c+6)?c+7:c+6,d)||void 0;return}if(105===f&&100===a.charCodeAt(c+1)&&58===a.charCodeAt(c+2)){let b=a.slice(32===a.charCodeAt(c+3)?c+4:c+3,d);j=b.includes("\0")?void 0:b;return}if(58===f){e&&e(a.slice(c,d).slice(32===a.charCodeAt(c+1)?2:1));return}let g=a.slice(c,d),h=g.indexOf(":");if(-1===h)return void r(g,"",g);let i=g.slice(0,h),n=32===g.charCodeAt(h+1)?2:1;r(i,g.slice(h+n),g)}function r(a,b,e){switch(a){case"event":m=b||void 0;break;case"data":k=0===l?b:`${k}
|
|
9
|
+
${b}`,l++;break;case"id":j=b.includes("\0")?void 0:b;break;case"retry":/^\d+$/.test(b)?d(parseInt(b,10)):c(new al(`Invalid \`retry\` value: "${b}"`,{type:"invalid-retry",value:b,line:e}));break;default:c(new al(`Unknown field "${a.length>20?`${a.slice(0,20)}\u2026`:a}"`,{type:"unknown-field",field:a,value:b,line:e}))}}return{feed:function(a){if(n)throw Error("Cannot feed parser: it was terminated after exceeding the configured max buffer size. Call `reset()` to resume parsing.");if(i&&(i=!1,239===a.charCodeAt(0)&&187===a.charCodeAt(1)&&191===a.charCodeAt(2)&&(a=a.slice(3))),0===g.length){let b=p(a);""!==b&&(g.push(b),h=b.length),o();return}if(-1===a.indexOf(`
|
|
10
|
+
`)&&-1===a.indexOf("\r")){g.push(a),h+=a.length,o();return}g.push(a);let b=g.join("");g.length=0,h=0;let c=p(b);""!==c&&(g.push(c),h=c.length),o()},reset:function(a={}){if(a.consume&&g.length>0){let a=g.join("");q(a,0,a.length)}i=!0,j=void 0,k="",l=0,m=void 0,g.length=0,h=0,n=!1}}}({onEvent:a=>{f.enqueue(a)},onError(b){"function"==typeof a&&a(b),("terminate"===a||"max-buffer-size-exceeded"===b.type)&&f.error(b)},onRetry:b,onComment:c,maxBufferSize:d})},transform(a){e.feed(a)}})}}let aq={initialReconnectionDelay:1e3,maxReconnectionDelay:3e4,reconnectionDelayGrowFactor:1.5,maxRetries:2};class ar extends Error{constructor(a,b){super(`Streamable HTTP error: ${b}`),this.code=a}}class as{constructor(a,b){this._hasCompletedAuthFlow=!1,this._url=a,this._resourceMetadataUrl=void 0,this._scope=void 0,this._requestInit=b?.requestInit,this._authProvider=b?.authProvider,this._fetch=b?.fetch,this._fetchWithInit=function(a=fetch,b){return b?async(c,d)=>a(c,{...b,...d,headers:d?.headers?{...e(b.headers),...e(d.headers)}:b.headers}):a}(b?.fetch,b?.requestInit),this._sessionId=b?.sessionId,this._reconnectionOptions=b?.reconnectionOptions??aq}async _authThenStart(){let a;if(!this._authProvider)throw new T("No auth provider");try{a=await X(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(a){throw this.onerror?.(a),a}if("AUTHORIZED"!==a)throw new T;return await this._startOrAuthSse({resumptionToken:void 0})}async _commonHeaders(){let a={};if(this._authProvider){let b=await this._authProvider.tokens();b&&(a.Authorization=`Bearer ${b.access_token}`)}this._sessionId&&(a["mcp-session-id"]=this._sessionId),this._protocolVersion&&(a["mcp-protocol-version"]=this._protocolVersion);let b=e(this._requestInit?.headers);return new Headers({...a,...b})}async _startOrAuthSse(a){let{resumptionToken:b}=a;try{let c=await this._commonHeaders();c.set("Accept","text/event-stream"),b&&c.set("last-event-id",b);let d=await (this._fetch??fetch)(this._url,{method:"GET",headers:c,signal:this._abortController?.signal});if(!d.ok){if(await d.body?.cancel(),401===d.status&&this._authProvider)return await this._authThenStart();if(405===d.status)return;throw new ar(d.status,`Failed to open SSE stream: ${d.statusText}`)}this._handleSseStream(d.body,a,!0)}catch(a){throw this.onerror?.(a),a}}_getNextReconnectionDelay(a){return void 0!==this._serverRetryMs?this._serverRetryMs:Math.min(this._reconnectionOptions.initialReconnectionDelay*Math.pow(this._reconnectionOptions.reconnectionDelayGrowFactor,a),this._reconnectionOptions.maxReconnectionDelay)}_scheduleReconnection(a,b=0){let c=this._reconnectionOptions.maxRetries;if(b>=c)return void this.onerror?.(Error(`Maximum reconnection attempts (${c}) exceeded.`));let d=this._getNextReconnectionDelay(b);this._reconnectionTimeout=setTimeout(()=>{this._startOrAuthSse(a).catch(c=>{this.onerror?.(Error(`Failed to reconnect SSE stream: ${c instanceof Error?c.message:String(c)}`)),this._scheduleReconnection(a,b+1)})},d)}_handleSseStream(a,b,c){let d;if(!a)return;let{onresumptiontoken:e,replayMessageId:f}=b,h=!1,i=!1;(async()=>{try{let b=a.pipeThrough(new TextDecoderStream).pipeThrough(new ap({onRetry:a=>{this._serverRetryMs=a}})).getReader();for(;;){let{value:a,done:c}=await b.read();if(c)break;if((a.id&&(d=a.id,h=!0,e?.(a.id)),a.data)&&(!a.event||"message"===a.event))try{let b=g.OR.parse(JSON.parse(a.data));(0,g.ig)(b)&&(i=!0,void 0!==f&&(b.id=f)),this.onmessage?.(b)}catch(a){this.onerror?.(a)}}(c||h)&&!i&&this._abortController&&!this._abortController.signal.aborted&&this._scheduleReconnection({resumptionToken:d,onresumptiontoken:e,replayMessageId:f},0)}catch(a){if(this.onerror?.(Error(`SSE stream disconnected: ${a}`)),(c||h)&&!i&&this._abortController&&!this._abortController.signal.aborted)try{this._scheduleReconnection({resumptionToken:d,onresumptiontoken:e,replayMessageId:f},0)}catch(a){this.onerror?.(Error(`Failed to reconnect: ${a instanceof Error?a.message:String(a)}`))}}})()}async start(){if(this._abortController)throw Error("StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.");this._abortController=new AbortController}async finishAuth(a){if(!this._authProvider)throw new T("No auth provider");if("AUTHORIZED"!==await X(this._authProvider,{serverUrl:this._url,authorizationCode:a,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit}))throw new T("Failed to authorize")}async close(){this._reconnectionTimeout&&(clearTimeout(this._reconnectionTimeout),this._reconnectionTimeout=void 0),this._abortController?.abort(),this.onclose?.()}async send(a,b){try{let{resumptionToken:c,onresumptiontoken:d}=b||{};if(c)return void this._startOrAuthSse({resumptionToken:c,replayMessageId:(0,g.vo)(a)?a.id:void 0}).catch(a=>this.onerror?.(a));let e=await this._commonHeaders();e.set("content-type","application/json"),e.set("accept","application/json, text/event-stream");let f={...this._requestInit,method:"POST",headers:e,body:JSON.stringify(a),signal:this._abortController?.signal},h=await (this._fetch??fetch)(this._url,f),i=h.headers.get("mcp-session-id");if(i&&(this._sessionId=i),!h.ok){let b=await h.text().catch(()=>null);if(401===h.status&&this._authProvider){if(this._hasCompletedAuthFlow)throw new ar(401,"Server returned 401 after successful authentication");let{resourceMetadataUrl:b,scope:c}=$(h);this._resourceMetadataUrl=b,this._scope=c;let d=await X(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit});if("AUTHORIZED"!==d)throw new T;return this._hasCompletedAuthFlow=!0,this.send(a)}if(403===h.status&&this._authProvider){let{resourceMetadataUrl:b,scope:c,error:d}=$(h);if("insufficient_scope"===d){let d=h.headers.get("WWW-Authenticate");if(this._lastUpscopingHeader===d)throw new ar(403,"Server returned 403 after trying upscoping");c&&(this._scope=c),b&&(this._resourceMetadataUrl=b),this._lastUpscopingHeader=d??void 0;let e=await X(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetch});if("AUTHORIZED"!==e)throw new T;return this.send(a)}}throw new ar(h.status,`Error POSTing to endpoint: ${b}`)}if(this._hasCompletedAuthFlow=!1,this._lastUpscopingHeader=void 0,202===h.status){await h.body?.cancel(),(0,g.wU)(a)&&this._startOrAuthSse({resumptionToken:void 0}).catch(a=>this.onerror?.(a));return}let j=(Array.isArray(a)?a:[a]).filter(a=>"method"in a&&"id"in a&&void 0!==a.id).length>0,k=h.headers.get("content-type");if(j)if(k?.includes("text/event-stream"))this._handleSseStream(h.body,{onresumptiontoken:d},!1);else if(k?.includes("application/json")){let a=await h.json();for(let b of Array.isArray(a)?a.map(a=>g.OR.parse(a)):[g.OR.parse(a)])this.onmessage?.(b)}else throw await h.body?.cancel(),new ar(-1,`Unexpected content type: ${k}`);else await h.body?.cancel()}catch(a){throw this.onerror?.(a),a}}get sessionId(){return this._sessionId}async terminateSession(){if(this._sessionId)try{let a=await this._commonHeaders(),b={...this._requestInit,method:"DELETE",headers:a,signal:this._abortController?.signal},c=await (this._fetch??fetch)(this._url,b);if(await c.body?.cancel(),!c.ok&&405!==c.status)throw new ar(c.status,`Failed to terminate session: ${c.statusText}`);this._sessionId=void 0}catch(a){throw this.onerror?.(a),a}}setProtocolVersion(a){this._protocolVersion=a}get protocolVersion(){return this._protocolVersion}async resumeStream(a,b){await this._startOrAuthSse({resumptionToken:a,onresumptiontoken:b?.onresumptiontoken})}}}};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";exports.id=3214,exports.ids=[3214],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)}}},4837:(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}}},21962:(a,b,c)=>{c.d(b,{S:()=>d});function d(a){if("number"==typeof a)return Number.isSafeInteger(a)&&a>0?String(a):null;if("string"!=typeof a)return null;let b=a.trim();return/^[1-9]\d{0,18}$/.test(b)?b:null}},24962:(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(91724),k=c(68032);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)}}},68032:(a,b,c)=>{c.d(b,{mq:()=>n,cg:()=>o,xh:()=>x,L8:()=>G,_q:()=>u,ck:()=>y,Cx:()=>A,L0:()=>z,Kd:()=>I,w0:()=>F,at:()=>C,vh:()=>E,ZI:()=>w,h2:()=>q,RV:()=>J});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h);function j(a){let b,c,e,g,i,j="function"==typeof process.getuid?process.getuid():null;try{b=f.lstatSync(a)}catch(a){if(a?.code==="ENOENT")return{status:"missing"};return{status:"unsafe",detail:"cannot inspect telegram directory"}}if(b.isSymbolicLink()||!b.isDirectory())return{status:"unsafe",detail:"telegram directory is unsafe"};if((63&b.mode)!=0||null!==j&&b.uid!==j)return{status:"unsafe",detail:"telegram directory ownership or permissions are unsafe"};let k=h.join(a,"session.json"),l=h.join(a,"connector-token");try{c=f.lstatSync(k)}catch(a){if(a?.code==="ENOENT")return{status:"missing"};return{status:"unsafe",detail:"cannot inspect session file"}}if(c.isSymbolicLink()||!c.isFile()||(63&c.mode)!=0||null!==j&&c.uid!==j)return{status:"unsafe",detail:"session file ownership or permissions are unsafe"};try{e=JSON.parse(f.readFileSync(k,"utf8"))}catch{return{status:"unsafe",detail:"session data is unreadable"}}if(!e||"object"!=typeof e||1!==e.version||"string"!=typeof e.credentialRef||"string"!=typeof e.sessionString||!e.sessionString||"string"!=typeof e.savedAt||"string"!=typeof e.connectorTokenSha256)return{status:"unsafe",detail:"session data is invalid"};try{g=f.lstatSync(l)}catch{return{status:"unsafe",detail:"connector token is missing or unreadable"}}if(g.isSymbolicLink()||!g.isFile()||(63&g.mode)!=0||null!==j&&g.uid!==j)return{status:"unsafe",detail:"connector token ownership or permissions are unsafe"};try{i=f.readFileSync(l,"utf8").trim()}catch{return{status:"unsafe",detail:"connector token is unreadable"}}let m=d.createHash("sha256").update(i).digest("hex");return/^[A-Za-z0-9_-]{43}$/.test(i)&&m===e.connectorTokenSha256?{status:"valid",sessionFile:e,connectorToken:i}:{status:"unsafe",detail:"connector token is invalid"}}var k=c(91724),l=c(21962);let m="telegram",n="LLV_TELEGRAM_MCP_TOKEN";class o extends Error{constructor(a){super(`Telegram session storage is unsafe: ${a}`),this.name="UnsafeTelegramSessionError"}}function p(){return(0,k.BQ)(m)}function q(){return i().join(p(),"session.json")}function r(){return i().join(p(),"connection.json")}function s(){return i().join(p(),"connector-token")}function t(a){let b=g().lstatSync(a);if(b.isSymbolicLink())throw new o("symlink");if(!b.isFile())throw new o("not a regular file");if((63&b.mode)!=0)throw new o("permissions are wider than owner-only");if("function"==typeof process.getuid&&b.uid!==process.getuid())throw new o("not owned by this user")}function u(a=!0){let b,c=(0,k.BQ)(m);try{b=g().lstatSync(c)}catch(d){if("ENOENT"!==d.code)throw d;if(!a)return null;g().mkdirSync(c,{recursive:!0,mode:448}),b=g().lstatSync(c)}if(b.isSymbolicLink())throw new o("telegram directory is a symlink");if(!b.isDirectory())throw new o("telegram directory is not a directory");if("function"==typeof process.getuid&&b.uid!==process.getuid())throw new o("telegram directory is not owned by this user");if((63&b.mode)!=0)throw new o("telegram directory permissions are wider than owner-only");return c}let v=RegExp("^incoming_feed(-[0-9a-f]{16})?\\.jsonl$");function w(a){let b=e().createHash("sha256").update(a).digest("hex").slice(0,16);return(0,k.BQ)(m,`incoming_feed-${b}.jsonl`)}function x(a,b){u(!0);try{t(a)}catch(a){if(a instanceof o||"ENOENT"!==a.code)throw a}let c=i().join(i().dirname(a),`.${i().basename(a)}.${process.pid}.${e().randomUUID()}.tmp`);try{g().writeFileSync(c,b,{mode:384});let d=g().openSync(c,"r");try{g().fsyncSync(d)}finally{g().closeSync(d)}g().renameSync(c,a)}finally{g().rmSync(c,{force:!0})}}function y(a,b=!1){if(null===u(!1))return null;try{t(a)}catch(a){if(a instanceof o)throw a;if("ENOENT"===a.code)return null;throw a}try{return JSON.parse(g().readFileSync(a,"utf8"))}catch{if(b)throw new o(`cannot read ${i().basename(a)}`);return null}}function z(a){if(null===u(!1))return null;try{t(a)}catch(a){if(a instanceof o)throw a;if("ENOENT"===a.code)return null;throw a}return g().readFileSync(a,"utf8")}function A(a,b,c){if(null===u(!1))return null;try{t(a)}catch(a){if(a instanceof o)throw a;if("ENOENT"===a.code)return null;throw a}let d=Math.max(1,Math.trunc(b.chunkBytes)),e=Math.max(0,Math.trunc(b.maxBytes)),f=g().openSync(a,"r");try{let a=g().fstatSync(f).size,b=[],h=a,i=0,j=!1;for(;h>0&&i<e;){let a=Math.min(d,h,e-i),k=Buffer.alloc(a);if(g().readSync(f,k,0,a,h-a),b.unshift(k),h-=a,i+=a,0===h)break;let l=k.toString("utf8"),m=l.indexOf("\n");if(-1!==m&&c(l.slice(m+1))){j=!0;break}}let k=Buffer.concat(b).toString("utf8");if(0===h)return{text:k,complete:!0};let l=k.indexOf("\n");return{text:-1===l?"":k.slice(l+1),complete:j}}finally{g().closeSync(f)}}function B(a){try{return t(a),!0}catch(a){if(a instanceof o)throw a;if("ENOENT"===a.code)return!1;throw a}}function C(a){null!==u(!1)&&B(a)&&g().rmSync(a)}function D(a){try{t(a)}catch(a){if(a instanceof o)throw a;if("ENOENT"===a.code)return null;throw a}return g().readFileSync(a,"utf8")}function E(a){if(!a)throw Error("Telegram session string is empty");u(!0);let b=D(q()),c=D(s());if(null!==b||null!==c){let a=j(p());if("valid"!==a.status)throw new o("unsafe"===a.status?a.detail:"existing session pair is incomplete")}let d=e().randomBytes(32).toString("base64url"),f={version:1,credentialRef:e().randomUUID(),connectorToken:d,sessionString:a,savedAt:new Date().toISOString()},g={version:f.version,credentialRef:f.credentialRef,sessionString:f.sessionString,savedAt:f.savedAt,connectorTokenSha256:e().createHash("sha256").update(d).digest("hex")};x(s(),d+"\n");try{x(q(),JSON.stringify(g))}catch(a){try{null===c?C(s()):x(s(),c)}catch{}throw a}return f}function F(){try{let a=j(p());if("missing"===a.status)return null;if("unsafe"===a.status)throw new o(a.detail);let b=a.sessionFile;return{version:1,credentialRef:b.credentialRef,connectorToken:a.connectorToken,sessionString:b.sessionString,savedAt:b.savedAt}}catch(a){if(a instanceof o)throw a;throw new o("cannot read session storage")}}function G(){if(null!==u(!1))for(let a of(!function(){let a,b=u(!1);if(null!==b){try{a=g().readdirSync(b,{withFileTypes:!0})}catch{return}for(let c of a)if(c.isFile()&&v.test(c.name))try{g().rmSync(i().join(b,c.name),{force:!0})}catch{}}}(),[q(),s()].filter(a=>B(a))))g().rmSync(a)}let H={version:1,status:"disconnected",credentialRef:null,identity:null,lastHealthCheckAt:null,errorCode:null,identityIdUpgradedAt:null};function I(){var a;let b=y(r());return b&&"object"==typeof b&&1===b.version&&"string"==typeof b.status?{version:1,status:b.status,credentialRef:"string"==typeof b.credentialRef?b.credentialRef:null,identity:(a=b.identity)&&"object"==typeof a?"string"!=typeof a.name?null:{name:a.name,username:"string"==typeof a.username?a.username:null,id:(0,l.S)(a.id)}:null,lastHealthCheckAt:"string"==typeof b.lastHealthCheckAt?b.lastHealthCheckAt:null,errorCode:"string"==typeof b.errorCode?b.errorCode:null,identityIdUpgradedAt:"string"==typeof b.identityIdUpgradedAt?b.identityIdUpgradedAt:null}:{...H}}function J(a){x(r(),JSON.stringify(a))}},88714:(a,b,c)=>{c.d(b,{Gs:()=>I,Kn:()=>y,Nq:()=>F,aO:()=>E,gY:()=>z,h3:()=>s,jd:()=>x,kt:()=>K,ue:()=>J,vx:()=>A,w5:()=>B});var d=c(31421),e=c(77598),f=c.n(e),g=c(73024),h=c.n(g),i=c(48161),j=c.n(i),k=c(76760),l=c.n(k),m=c(91724),n=c(2033),o=c(24962),p=c(68032);Object.freeze({repo:"https://github.com/chigwell/telegram-mcp",release:"v3.2.22",commit:"a61294362226bd93052f5a40b4a1b1269a99ce69",license:"Apache-2.0"});let q="127.0.0.1";function r(){let a=Number(process.env.LLV_TELEGRAM_MCP_PORT);return Number.isInteger(a)&&a>0&&a<65536?a:8809}function s(){return`http://${q}:${r()}/mcp`}function t(a,...b){if(a)return a;let c=l().join(process.cwd(),...b);if(h().existsSync(c))return c;let d=l().join(process.cwd(),"..","..",...b);return h().existsSync(d)?d:c}function u(){return t(process.env.LLV_TELEGRAM_VENDOR_DIR,"vendor","telegram-mcp")}function v(){return(0,m.BQ)("telegram","venv")}function w(){return(0,m.BQ)("telegram","vendor-src")}function x(){return process.env.LLV_TELEGRAM_PYTHON||l().join(v(),"bin","python")}function y(){return t(process.env.LLV_TELEGRAM_SERVER_BRIDGE,"bin","telegram-mcp-server.py")}function z(){return t(process.env.LLV_TELEGRAM_SESSION_READER,"bin","telegram-session-reader.mjs")}let A=Object.freeze(["wait_for_settled_message"]);function B(){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(h().readFileSync((0,m.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}let C=/^\d{1,12}$/,D=/^[0-9a-f]{32}$/i;function E(a,b){return"string"==typeof a&&C.test(a)&&"string"==typeof b&&D.test(b)}function F(a,b){if(!E(a,b))throw Error("Telegram API credentials are invalid");let c=(0,m.ks)("telegram.json");h().mkdirSync(l().dirname(c),{recursive:!0});let d=l().join(l().dirname(c),`.${l().basename(c)}.${process.pid}.${f().randomUUID()}.tmp`);try{h().writeFileSync(d,`${JSON.stringify({apiId:a,apiHash:b},null,2)}
|
|
82
|
+
`,{mode:384,flag:"wx"}),h().renameSync(d,c),h().chmodSync(c,384)}finally{h().rmSync(d,{force:!0})}}function G(){return h().existsSync(l().join(v(),".llv-provisioned"))&&h().existsSync(x())&&h().existsSync(l().join(w(),"pyproject.toml"))}let H=null;function I(){return G()?Promise.resolve(!0):H||(H=(async()=>((0,p._q)(!0),await (0,n.pM)((0,m.BQ)("telegram","connector-provision"),"Telegram connector provisioning is busy",async()=>{var a;return!!G()||await (a={command:process.execPath,args:[t(process.env.LLV_TELEGRAM_PROVISIONER,"bin","provision-telegram-connector.mjs")],cwd:u(),env:{...L(),LLV_STATE_DIR:(0,m.Pn)(),LLV_TELEGRAM_VENDOR_DIR:u(),LLV_TELEGRAM_PYTHON:x()}},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))}))&&G()})))().catch(()=>!1).finally(()=>{H=null}))}function J(a){let b=w(),c=(0,o.WG)();return{command:x(),args:[y()],cwd:b,env:{...L(),...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,p.ZI)(a.credentialRef),LLV_TELEGRAM_EXCLUDED_TOOLS:A.join(","),LLV_TELEGRAM_MCP_TOKEN:a.connectorToken,LLV_TELEGRAM_VENDOR_DIR:b,MCP_TRANSPORT:"http",MCP_HOST:q,MCP_PORT:String(r())}}}function K(a,b){return{command:x(),args:[t(process.env.LLV_TELEGRAM_BRIDGE,"bin","telegram-login-bridge.py"),a],cwd:j().homedir(),env:{...L(),TELEGRAM_API_ID:b.apiId,TELEGRAM_API_HASH:b.apiHash}}}function L(){let a={};for(let b of["PATH","HOME","LANG","LC_ALL","TMPDIR"])void 0!==process.env[b]&&(a[b]=process.env[b]);return a}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=3336,exports.ids=[3336],exports.modules={13336:(a,b,c)=>{c.d(b,{applyConversationAction:()=>
|
|
1
|
+
"use strict";exports.id=3336,exports.ids=[3336],exports.modules={13336:(a,b,c)=>{c.d(b,{applyConversationAction:()=>w});var d=c(12904),e=c(25052),f=c(16196),g=c(22619),h=c(51888),i=c(68465),j=c(82940),k=c(88623),l=c(93994),m=c(75040),n=c(96755),o=c(5242),p=c(15615);let q=new Set(["interrupt","kill","reconfigure","compact"]);async function r(a,b={}){if(!a.action||!(b.enabled??(()=>(0,f.cM)()))())return null;let c=b.registry??(0,d.agentRegistry)(),e=a.path?c.conversationForPath(a.path):a.conversationId.startsWith("conversation_")?c.conversation(a.conversationId):null,s=e?.generations.at(-1);if(!e||!s)return null;let t=c.readOnlySnapshot(),u=t.entries[(0,k.pp)({engine:e.engine,sessionId:s.id})];if(!u)return null;let v="kill"===a.action&&!u.host,w="reconfigure"===a.action&&!u.host&&Object.values(t.receipts).some(a=>"structured"===a.transport&&"completed"===a.state&&c.canonicalConversationId(a.conversationId)===e.id),x="reconfigure"===a.action&&!u.host&&(e.reconfigure?.status==="applying"||w);if(!u.structuredHost&&!v&&!x)return null;if(!q.has(a.action)){if("resume"===a.action){if("dead"===u.status||"unhosted"===u.status)return null;try{if((b.hostProcessAlive??p.structuredHostProcessAlive)(u.structuredHost?.process??null)){if(!await (b.republish??n.A)({engine:e.engine,sessionId:s.id}))return{status:503,body:{error:"structured recovery ownership is unavailable"}};return{status:200,body:{ok:!0,structured:!0,target:e.id,outcome:"resumed",spawned:!1}}}let d=await (b.recover??p.recoverDeadStructuredConversation)({path:a.path||s.path,conversationId:e.id},{registry:c});if(!d)return{status:503,body:{error:"structured recovery ownership is unavailable"}};return{status:200,body:{ok:!0,structured:!0,target:e.id,outcome:"resumed",spawned:d.spawned}}}catch(a){return{status:503,body:{error:a instanceof Error?a.message:String(a)}}}}let d=["dialog-key","kill","reconfigure"].includes(a.action)?a.action:"requested";return{status:409,body:{error:`structured host does not support the ${d} control`}}}if("compact"===a.action){let a=(0,m.s_)(e.engine);if(!a.supported||u.structuredHost?.kind!=="codex-app-server")return{status:409,body:{error:a.reason??`the ${e.engine} structured host does not expose a compact control`,code:"unsupported-capability",capability:a}}}if(v&&!u.structuredHost?.process&&("dead"===u.status||"unhosted"===u.status))return{status:200,body:{ok:!0,structured:!0,target:e.id,outcome:"delivered"}};let y=void 0===b.client?(0,l.sS)():b.client;if(!y)return{status:503,body:{error:"structured runtime host is unavailable"}};let z=a.operationId??(b.operationId??m.Lu)();try{let c="reconfigure"===a.action?function(a,b){let c="string"==typeof b.model?b.model.trim():"",d="claude"===a?(0,h.OV)(c):(0,h.g9)(c)?c:null,e=h.cC[a].some(a=>a.id===d);if(!d||!e)return{error:`model is not supported by ${a}`};let f="string"==typeof b.effort?b.effort.trim():"";if(!(0,g.ve)(a,d)?.includes(f))return{error:`effort is not supported by ${a} model ${d}`};if("claude"===a&&void 0!==b.fast&&null!==b.fast)return{error:"speed is only supported by codex"};if("codex"===a&&"boolean"!=typeof b.fast)return{error:"speed must be selected for codex"};let i=void 0===b.accountId||null===b.accountId||""===b.accountId?void 0:"string"==typeof b.accountId?b.accountId.trim():"";return void 0===i||/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/.test(i)?{value:{model:d,effort:f,fast:"codex"===a?b.fast:null,...i?{accountId:i}:{}}}:{error:"account is invalid"}}(e.engine,a.reconfiguration??{}):null;if(c&&!c.value)return{status:400,body:{error:c.error??"invalid configuration"}};if(c?.value?.accountId&&!(b.accountExists??((a,b)=>("claude"===a?(0,i.Fn)():(0,j.Sq)()).some(a=>a.id===b)))(e.engine,c.value.accountId))return{status:400,body:{error:`account is not available for ${e.engine}`}};let d={engine:e.engine,sessionId:s.id},f="kill"===a.action?{kind:"kill",operationId:z,idempotencyKey:z,conversationId:e.id,sessionKey:d}:"compact"===a.action?{kind:"compact",operationId:z,idempotencyKey:z,conversationId:e.id,sessionKey:d}:"reconfigure"===a.action?{kind:"reconfigure",operationId:z,idempotencyKey:z,conversationId:e.id,sessionKey:d,...c.value,previousProfile:{model:s.launchProfile.model,effort:s.launchProfile.effort,fast:s.launchProfile.fast}}:{kind:"interrupt",operationId:z,idempotencyKey:z,conversationId:e.id,turnId:u.structuredHost?.activeTurnRef??null},k=await y.command(f);return(b.kick??o.l)(),{status:"delivered"===k.receipt.status?200:202,body:{ok:!0,structured:!0,target:e.id,operationId:z,receipt:k.receipt}}}catch(c){if(("kill"===a.action||"reconfigure"===a.action||"compact"===a.action)&&(0,l.o7)(c)){let a=await y.operationStatus(z).catch(()=>null);if(a)return(b.kick??o.l)(),{status:"delivered"===a.receipt.status?200:202,body:{ok:!0,structured:!0,target:e.id,operationId:a.operationId,receipt:a.receipt}}}return{status:503,body:{error:c instanceof Error?c.message:String(c)}}}}let s=["interrupt","kill","resume","compact","dialog-key"],t={registry:d.agentRegistry,structuredEnabled:()=>(0,f.cM)(),dispatchStructuredControl:r,interruptConversation:e.F5,killConversation:e.yv,resumeConversation:e.X$,compactConversation:e.LJ,answerDialogKey:e.m3};function u(a,b){return{status:b,body:{error:a}}}function v(a){if(a.ok)return{status:200,body:a};let{status:b,...c}=a;return{status:b,body:c}}async function w(a,b=t){if(!s.includes(a.action))return u("unsupported conversation action",400);if(a.conversationId&&!a.conversationId.startsWith("conversation_"))return u("invalid conversation id",400);let c=b.registry(),d=a.conversationId?c.conversation(a.conversationId):null,e=a.transcriptPath?c.conversationForPath(a.transcriptPath):null;if(a.conversationId&&!d)return u("viewer conversation is unknown",404);if(d&&a.transcriptPath&&(!new Set([...d.generations.map(a=>a.path),...d.continuityPaths]).has(a.transcriptPath)||e?.id!==d.id))return u("conversation identity does not own transcript path",409);let f=d??e,g=d?.generations.at(-1)?.path??a.transcriptPath;if(b.structuredEnabled()){let c=await b.dispatchStructuredControl({path:g,conversationId:f?.id??a.conversationId,action:a.action,operationId:a.operationId});if(c)return c}if(!g)return u("conversationId or transcriptPath is required",400);if("interrupt"===a.action)return v(await b.interruptConversation(g));if("kill"===a.action){let a=await b.killConversation(g);return a.ok&&!a.target?v({ok:!1,outcome:"failed",error:"kill resolved no registered pane",status:409}):v(a)}return"resume"===a.action?v(await b.resumeConversation(g)):"compact"===a.action?v(await b.compactConversation(g)):v(await b.answerDialogKey(g,a.key??"",a.label,a.question))}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=3558,exports.ids=[3558],exports.modules={9848:(a,b,c)=>{c.d(b,{y:()=>f});var d=c(58152),e=c(4837);function f(a,b){let c="string"==typeof b.model?b.model.trim():"",f="claude"===a?(0,e.OV)(c):(0,e.g9)(c)?c:null,g=e.cC[a].some(a=>a.id===f);if(!f||!g)return{error:`model is not supported by ${a}`};let h="string"==typeof b.effort?b.effort.trim():"";if(!(0,d.ve)(a,f)?.includes(h))return{error:`effort is not supported by ${a} model ${f}`};if("claude"===a&&void 0!==b.fast&&null!==b.fast)return{error:"speed is only supported by codex"};if("codex"===a&&"boolean"!=typeof b.fast)return{error:"speed must be selected for codex"};let i=void 0===b.accountId||null===b.accountId||""===b.accountId?void 0:"string"==typeof b.accountId?b.accountId.trim():"";return void 0===i||/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/.test(i)?{value:{model:f,effort:h,fast:"codex"===a?b.fast:null,...i?{accountId:i}:{}}}:{error:"account is invalid"}}},53558:(a,b,c)=>{c.d(b,{W:()=>h,applyConversationAction:()=>l});var d=c(29733),e=c(
|
|
1
|
+
"use strict";exports.id=3558,exports.ids=[3558],exports.modules={9848:(a,b,c)=>{c.d(b,{y:()=>f});var d=c(58152),e=c(4837);function f(a,b){let c="string"==typeof b.model?b.model.trim():"",f="claude"===a?(0,e.OV)(c):(0,e.g9)(c)?c:null,g=e.cC[a].some(a=>a.id===f);if(!f||!g)return{error:`model is not supported by ${a}`};let h="string"==typeof b.effort?b.effort.trim():"";if(!(0,d.ve)(a,f)?.includes(h))return{error:`effort is not supported by ${a} model ${f}`};if("claude"===a&&void 0!==b.fast&&null!==b.fast)return{error:"speed is only supported by codex"};if("codex"===a&&"boolean"!=typeof b.fast)return{error:"speed must be selected for codex"};let i=void 0===b.accountId||null===b.accountId||""===b.accountId?void 0:"string"==typeof b.accountId?b.accountId.trim():"";return void 0===i||/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/.test(i)?{value:{model:f,effort:h,fast:"codex"===a?b.fast:null,...i?{accountId:i}:{}}}:{error:"account is invalid"}}},53558:(a,b,c)=>{c.d(b,{W:()=>h,applyConversationAction:()=>l});var d=c(29733),e=c(10167),f=c(50201),g=c(78181);let h=["interrupt","kill","resume","compact","dialog-key"],i={registry:d.agentRegistry,structuredEnabled:()=>(0,f.cM)(),dispatchStructuredControl:g.Z,interruptConversation:e.F5,killConversation:e.yv,resumeConversation:e.X$,compactConversation:e.LJ,answerDialogKey:e.m3};function j(a,b){return{status:b,body:{error:a}}}function k(a){if(a.ok)return{status:200,body:a};let{status:b,...c}=a;return{status:b,body:c}}async function l(a,b=i){if(!h.includes(a.action))return j("unsupported conversation action",400);if(a.conversationId&&!a.conversationId.startsWith("conversation_"))return j("invalid conversation id",400);let c=b.registry(),d=a.conversationId?c.conversation(a.conversationId):null,e=a.transcriptPath?c.conversationForPath(a.transcriptPath):null;if(a.conversationId&&!d)return j("viewer conversation is unknown",404);if(d&&a.transcriptPath&&(!new Set([...d.generations.map(a=>a.path),...d.continuityPaths]).has(a.transcriptPath)||e?.id!==d.id))return j("conversation identity does not own transcript path",409);let f=d??e,g=d?.generations.at(-1)?.path??a.transcriptPath;if(b.structuredEnabled()){let c=await b.dispatchStructuredControl({path:g,conversationId:f?.id??a.conversationId,action:a.action,operationId:a.operationId});if(c)return c}if(!g)return j("conversationId or transcriptPath is required",400);if("interrupt"===a.action)return k(await b.interruptConversation(g));if("kill"===a.action){let a=await b.killConversation(g);return a.ok&&!a.target?k({ok:!1,outcome:"failed",error:"kill resolved no registered pane",status:409}):k(a)}return"resume"===a.action?k(await b.resumeConversation(g)):"compact"===a.action?k(await b.compactConversation(g)):k(await b.answerDialogKey(g,a.key??"",a.label,a.question))}},78181:(a,b,c)=>{c.d(b,{Z:()=>p});var d=c(50201),e=c(29733),f=c(9848),g=c(78966),h=c(41617),i=c(48892),j=c(3127),k=c(63629),l=c(73789),m=c(38855),n=c(94292);let o=new Set(["interrupt","kill","reconfigure","compact"]);async function p(a,b={}){if(!a.action||!(b.enabled??(()=>(0,d.cM)()))())return null;let c=b.registry??(0,e.agentRegistry)(),q=a.path?c.conversationForPath(a.path):a.conversationId.startsWith("conversation_")?c.conversation(a.conversationId):null,r=q?.generations.at(-1);if(!q||!r)return null;let s=c.readOnlySnapshot(),t=s.entries[(0,i.pp)({engine:q.engine,sessionId:r.id})];if(!t)return null;let u="kill"===a.action&&!t.host,v="reconfigure"===a.action&&!t.host&&Object.values(s.receipts).some(a=>"structured"===a.transport&&"completed"===a.state&&c.canonicalConversationId(a.conversationId)===q.id),w="reconfigure"===a.action&&!t.host&&(q.reconfigure?.status==="applying"||v);if(!t.structuredHost&&!u&&!w)return null;if(!o.has(a.action)){if("resume"===a.action){if("dead"===t.status||"unhosted"===t.status)return null;try{if((b.hostProcessAlive??n.structuredHostProcessAlive)(t.structuredHost?.process??null)){if(!await (b.republish??l.A)({engine:q.engine,sessionId:r.id}))return{status:503,body:{error:"structured recovery ownership is unavailable"}};return{status:200,body:{ok:!0,structured:!0,target:q.id,outcome:"resumed",spawned:!1}}}let d=await (b.recover??n.recoverDeadStructuredConversation)({path:a.path||r.path,conversationId:q.id},{registry:c});if(!d)return{status:503,body:{error:"structured recovery ownership is unavailable"}};return{status:200,body:{ok:!0,structured:!0,target:q.id,outcome:"resumed",spawned:d.spawned}}}catch(a){return{status:503,body:{error:a instanceof Error?a.message:String(a)}}}}let d=["dialog-key","kill","reconfigure"].includes(a.action)?a.action:"requested";return{status:409,body:{error:`structured host does not support the ${d} control`}}}if("compact"===a.action){let a=(0,k.s_)(q.engine);if(!a.supported||t.structuredHost?.kind!=="codex-app-server")return{status:409,body:{error:a.reason??`the ${q.engine} structured host does not expose a compact control`,code:"unsupported-capability",capability:a}}}if(u&&!t.structuredHost?.process&&("dead"===t.status||"unhosted"===t.status))return{status:200,body:{ok:!0,structured:!0,target:q.id,outcome:"delivered"}};let x=void 0===b.client?(0,j.sS)():b.client;if(!x)return{status:503,body:{error:"structured runtime host is unavailable"}};let y=a.operationId??(b.operationId??k.Lu)();try{let c="reconfigure"===a.action?(0,f.y)(q.engine,a.reconfiguration??{}):null;if(c&&!c.value)return{status:400,body:{error:c.error??"invalid configuration"}};if(c?.value?.accountId&&!(b.accountExists??((a,b)=>("claude"===a?(0,g.Fn)():(0,h.Sq)()).some(a=>a.id===b)))(q.engine,c.value.accountId))return{status:400,body:{error:`account is not available for ${q.engine}`}};let d={engine:q.engine,sessionId:r.id},e="kill"===a.action?{kind:"kill",operationId:y,idempotencyKey:y,conversationId:q.id,sessionKey:d}:"compact"===a.action?{kind:"compact",operationId:y,idempotencyKey:y,conversationId:q.id,sessionKey:d}:"reconfigure"===a.action?{kind:"reconfigure",operationId:y,idempotencyKey:y,conversationId:q.id,sessionKey:d,...c.value,previousProfile:{model:r.launchProfile.model,effort:r.launchProfile.effort,fast:r.launchProfile.fast}}:{kind:"interrupt",operationId:y,idempotencyKey:y,conversationId:q.id,turnId:t.structuredHost?.activeTurnRef??null},i=await x.command(e);return(b.kick??m.l)(),{status:"delivered"===i.receipt.status?200:202,body:{ok:!0,structured:!0,target:q.id,operationId:y,receipt:i.receipt}}}catch(c){if(("kill"===a.action||"reconfigure"===a.action||"compact"===a.action)&&(0,j.o7)(c)){let a=await x.operationStatus(y).catch(()=>null);if(a)return(b.kick??m.l)(),{status:"delivered"===a.receipt.status?200:202,body:{ok:!0,structured:!0,target:q.id,operationId:a.operationId,receipt:a.receipt}}}return{status:503,body:{error:c instanceof Error?c.message:String(c)}}}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=3587,exports.ids=[3587],exports.modules={3587:(a,b,c)=>{c.d(b,{WH:()=>F,C9:()=>Q,aM:()=>X,pA:()=>U,jk:()=>T,cw:()=>V,L5:()=>W});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724),k=c(59683),l=c(89940);let m="viewMode",n="taskPanelOpen",o="path:",p=a=>`${o}${a}`,q=a=>`favorite:${a}`,r=a=>`fold:${a}`,s=a=>`tray:${a}`;function t(a,b){let c=new Set,d=a;for(;void 0!==b[d]&&!c.has(d);)c.add(d),d=b[d];return d}function u(a,b){return a.startsWith(o)?p(t(a.slice(o.length),b)):a}let v={absent:0,manual:1,pinned:2,expanded:3,hidden:4};function w(a,b){let c=new Map,d=(a,d)=>{let e=t(a,b),f=c.get(e);(void 0===f||(v[d]??0)>(v[f]??0))&&c.set(e,d)};for(let b of a.prefs.hidden)d(b,"hidden");for(let b of a.prefs.expanded)d(b,"expanded");for(let b of a.prefs.manual)d(b,(a.explicitManual??[]).includes(b)?"pinned":"manual");return c}function x(a,b){let c=new Set(a??[]),d=new Set(b??[]);return[...new Set([...c,...d])].filter(a=>c.has(a)!==d.has(a))}function y(a){return[...new Set(a)]}function z(a){return a.pathAliases??{}}function A(a,b){let c=new Set,d=a;for(;void 0!==b[d];){if(c.has(d))throw Error("board path alias cycle");c.add(d),d=b[d]}return d}function B(a,b=z(a)){let c=function(a){let b={};for(let c of Object.keys(a)){let d=A(c,a);c!==d&&(b[c]=d)}return b}(b),d=y(a.prefs.hidden.map(a=>A(a,c))),e=new Set(d),f=a=>y(a.map(a=>A(a,c)).filter(a=>!e.has(a))),g=f(a.prefs.manual),h=new Set(g);return{...a,pathAliases:c,explicitManual:f(a.explicitManual??[]).filter(a=>h.has(a)),prefs:{...a.prefs,manual:g,hidden:d,expanded:f(a.prefs.expanded),favorites:y(a.prefs.favorites??[]),foldedEngineChildIds:y(a.prefs.foldedEngineChildIds??[]),expandedEngineTrayParentIds:y(a.prefs.expandedEngineTrayParentIds??[])}}}function C(a,b){let c=B(a);for(let a of b){if("remap-paths"===a.kind){c=function(a,b,c=!1){let d=z(a),e=b.filter(({from:a,to:b})=>A(a,d)!==A(b,d));if(0===e.length)return B(a);let f=new Set(b.map(({from:a})=>A(a,d))),g=new Set(e.map(({to:a})=>A(a,d))),h=a=>{if(c)return!0;let b=A(a,d);return!g.has(b)||f.has(b)},i=a.prefs.manual.filter(h),j=(a.explicitManual??[]).filter(h),k={...d};for(let{from:a,to:b}of e)k[a]=b;return B({...a,explicitManual:j,prefs:{...a.prefs,manual:i}},k)}(c,a.pairs,a.targetPlacementAuthoritative);continue}if("reconcile-roots"===a.kind){c=function(a,b,c){let d=z(a),e=new Set(c.map(a=>A(a,d))),f=a.prefs.manual.filter(a=>!e.has(a)),g=(a.explicitManual??[]).filter(a=>!e.has(a)),h=new Set([...f,...a.prefs.hidden,...Object.values(d).map(a=>A(a,d))]);for(let a of b.map(a=>A(a,d)))h.has(a)||(f.push(a),h.add(a));return B({...a,explicitManual:g,prefs:{...a.prefs,manual:f}})}(c,a.roots,a.removeManual);continue}if("restore"===a.kind){c=function(a,b,c){let d={...a.prefs,hidden:a.prefs.hidden.filter(a=>a!==b)},e=(a.explicitManual??[]).filter(a=>a!==b);if("auto"===c)return B({...a,explicitManual:e,prefs:d});let f={...d,manual:d.manual.filter(a=>a!==b),expanded:d.expanded.filter(a=>a!==b)};return B({...a,explicitManual:"manual"===c?[...e,b]:e,prefs:"manual"===c?{...f,manual:[...f.manual,b]}:{...f,expanded:[...f.expanded,b]}})}(c,A(a.path,z(c)),a.placement);continue}if("set-favorite"===a.kind){let b=a.favorite?y([...c.prefs.favorites,a.id]):c.prefs.favorites.filter(b=>b!==a.id);c=B({...c,prefs:{...c.prefs,favorites:b}});continue}if("set-engine-child-fold"===a.kind){let b=c.prefs.foldedEngineChildIds??[],d=a.folded?y([...b,a.id]):b.filter(b=>b!==a.id),e=A(a.path,z(c));c=B({...c,explicitManual:a.folded?(c.explicitManual??[]).filter(a=>a!==e):c.explicitManual,prefs:{...c.prefs,foldedEngineChildIds:d,manual:a.folded?c.prefs.manual.filter(a=>a!==e):c.prefs.manual,expanded:a.folded?c.prefs.expanded.filter(a=>a!==e):c.prefs.expanded}});continue}if("set-engine-tray-expanded"===a.kind){let b=c.prefs.expandedEngineTrayParentIds??[],d=a.expanded?y([...b,a.parentId]):b.filter(b=>b!==a.parentId);c=B({...c,prefs:{...c.prefs,expandedEngineTrayParentIds:d}});continue}if("set-presentation"===a.kind){c=B({...c,prefs:{...c.prefs,...void 0===a.viewMode?{}:{viewMode:a.viewMode},...void 0===a.taskPanelOpen?{}:{taskPanelOpen:a.taskPanelOpen}}});continue}let b=A(a.path,z(c));c=B({...c,explicitManual:(c.explicitManual??[]).filter(a=>a!==b),prefs:{...c.prefs,manual:c.prefs.manual.filter(a=>a!==b),expanded:c.prefs.expanded.filter(a=>a!==b),hidden:y([...c.prefs.hidden,b])}})}return c}let D=(0,j.BQ)("board.json"),E={manual:[],hidden:[],expanded:[],favorites:[],foldedEngineChildIds:[],expandedEngineTrayParentIds:[],viewMode:null,taskPanelOpen:!1};class F extends Error{constructor(a="board state unavailable"){super(a)}}function G(a){return Array.isArray(a)&&a.every(a=>"string"==typeof a)}function H(a){var b,c;if(!a||"object"!=typeof a||Array.isArray(a))return!1;let d=a.prefs;return 1===a.schemaVersion&&Number.isInteger(a.revision)&&a.revision>=0&&"string"==typeof a.updatedAt&&!!d&&G(d.manual)&&G(d.hidden)&&G(d.expanded)&&(void 0===d.favorites||G(d.favorites))&&(void 0===d.foldedEngineChildIds||G(d.foldedEngineChildIds))&&(void 0===d.expandedEngineTrayParentIds||G(d.expandedEngineTrayParentIds))&&(void 0===a.explicitManual||G(a.explicitManual))&&(void 0===a.pathAliases||!(!(b=a.pathAliases)||"object"!=typeof b||Array.isArray(b))&&Object.values(b).every(a=>"string"==typeof a))&&(void 0===a.keyRevisions||!(!(c=a.keyRevisions)||"object"!=typeof c||Array.isArray(c))&&Object.values(c).every(a=>Number.isInteger(a)&&a>=0))&&(void 0===a.keyRevisionFloor||Number.isInteger(a.keyRevisionFloor)&&a.keyRevisionFloor>=0)&&(null===d.viewMode||"scheme"===d.viewMode||"list"===d.viewMode)&&"boolean"==typeof d.taskPanelOpen}function I(){return{schemaVersion:1,revision:0,updatedAt:new Date(0).toISOString(),pathAliases:{},explicitManual:[],keyRevisions:{},keyRevisionFloor:0,prefs:{...E,manual:[],hidden:[],expanded:[]}}}function J(a,b,c,d=[]){return{...b,schemaVersion:1,revision:c,updatedAt:new Date().toISOString(),pathAliases:b.pathAliases??{},...function(a,b,c,d=[]){let e=b.pathAliases??{},f={};for(let b of[a,...d])for(let[a,c]of Object.entries(b.keyRevisions??{})){let b=u(a,e);f[b]=Math.max(f[b]??0,c)}for(let d of function(a,b){let c=new Set,d=b.pathAliases??{},e=w(a,d),f=w(b,d);for(let a of new Set([...e.keys(),...f.keys()]))(e.get(a)??"absent")!==(f.get(a)??"absent")&&c.add(p(a));for(let d of x(a.prefs.favorites,b.prefs.favorites))c.add(q(d));for(let d of x(a.prefs.foldedEngineChildIds,b.prefs.foldedEngineChildIds))c.add(r(d));for(let d of x(a.prefs.expandedEngineTrayParentIds,b.prefs.expandedEngineTrayParentIds))c.add(s(d));return a.prefs.viewMode!==b.prefs.viewMode&&c.add(m),a.prefs.taskPanelOpen!==b.prefs.taskPanelOpen&&c.add(n),c}(a,b))f[d]=c;let g=function(a){let b=a.pathAliases??{},c=new Set([m,n]);for(let d of w(a,b).keys())c.add(p(d));for(let b of a.prefs.favorites??[])c.add(q(b));for(let b of a.prefs.foldedEngineChildIds??[])c.add(r(b));for(let b of a.prefs.expandedEngineTrayParentIds??[])c.add(s(b));return c}(b),h={},i=[];for(let[a,b]of Object.entries(f))g.has(a)?h[a]=b:i.push([a,b]);i.sort((a,b)=>b[1]-a[1]||a[0].localeCompare(b[0]));let j=Math.max(a.keyRevisionFloor??0,...d.map(a=>a.keyRevisionFloor??0));for(let[a,b]of i.slice(0,512))h[a]=b;for(let[,a]of i.slice(512))j=Math.max(j,a);for(let[a,b]of Object.entries(h))!g.has(a)&&b<=j&&delete h[a];return{keyRevisions:h,keyRevisionFloor:j}}(a,b,c,d)}}function K(a){try{let b=JSON.parse(g().readFileSync(a,"utf8"));if(!b||"object"!=typeof b.projects||null===b.projects||Array.isArray(b.projects))throw new F("invalid board state");if(!Object.values(b.projects).every(H))throw new F("invalid board project state");return{projects:Object.fromEntries(Object.entries(b.projects).map(([a,b])=>[a,{...b,pathAliases:b.pathAliases??{},explicitManual:b.explicitManual??b.prefs.manual,keyRevisions:function(a,b){let c={};for(let[d,e]of Object.entries(a)){let a=u(d,b);c[a]=Math.max(c[a]??0,e)}return c}(b.keyRevisions??{},b.pathAliases??{}),keyRevisionFloor:b.keyRevisionFloor??0,prefs:{...b.prefs,favorites:b.prefs.favorites??[],foldedEngineChildIds:b.prefs.foldedEngineChildIds??[],expandedEngineTrayParentIds:b.prefs.expandedEngineTrayParentIds??[]}}]))}}catch(a){if("ENOENT"===a.code)return{projects:{}};if(a instanceof F)throw a;throw new F}}function L(a,b){g().mkdirSync(i().dirname(b),{recursive:!0});let c=i().join(i().dirname(b),`.${i().basename(b)}.${process.pid}.${e().randomUUID()}.tmp`),d=null;try{d=g().openSync(c,"wx",384),g().writeFileSync(d,JSON.stringify(a,null,2)+"\n","utf8"),g().fsyncSync(d),g().closeSync(d),d=null,g().renameSync(c,b);let e=g().openSync(i().dirname(b),"r");try{g().fsyncSync(e)}finally{g().closeSync(e)}}finally{null!==d&&g().closeSync(d),g().rmSync(c,{force:!0})}}function M(a){Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,a)}function N(a){try{let b=JSON.parse(g().readFileSync(a,"utf8"));if("number"==typeof b.pid&&Number.isInteger(b.pid)&&b.pid>0){let c,d="string"==typeof b.startIdentity?b.startIdentity:null;return!k.B.pidAlive(b.pid)||(null!==d?(c=k.B.processIdentity(b.pid),null!==c&&c!==d):Date.now()-g().statSync(a).mtimeMs>3e4)}return Date.now()-g().statSync(a).mtimeMs>3e4}catch{try{return Date.now()-g().statSync(a).mtimeMs>3e4}catch{return!1}}}function O(a,b){try{JSON.parse(g().readFileSync(a,"utf8")).token===b&&g().rmSync(a,{force:!0})}catch{}}function P(a,b){let c=`${a}.write-lock`,d=`${a}.write-locks`;g().mkdirSync(d,{recursive:!0,mode:448});let f={pid:process.pid,startIdentity:k.B.processIdentity(process.pid),token:e().randomUUID()},h=i().join(d,`${String(Date.now()).padStart(16,"0")}-${process.pid}-${e().randomUUID()}.json`);g().writeFileSync(h,JSON.stringify(f),{encoding:"utf8",flag:"wx",mode:384});try{for(let a=0;a<1e3;a+=1){let a,e=[];for(let a of g().readdirSync(d).filter(a=>a.endsWith(".json")).sort()){let b=i().join(d,a);if(N(b)){g().rmSync(b,{force:!0});continue}g().existsSync(b)&&e.push(b)}if(e[0]!==h){M(5);continue}try{a=g().openSync(c,"wx",384)}catch(a){if("EEXIST"!==a.code)throw a;N(c)&&g().rmSync(c,{force:!0}),M(5);continue}try{return g().writeFileSync(a,JSON.stringify(f),"utf8"),g().fsyncSync(a),b()}finally{g().closeSync(a),O(c,f.token)}}throw new F("board state is busy")}finally{O(h,f.token)}}function Q(a,b=D){return K(b).projects[(0,l.G$)(a)]??I()}function R(a,b){return JSON.stringify({prefs:a.prefs,pathAliases:a.pathAliases??{},explicitManual:a.explicitManual??[]})===JSON.stringify({prefs:b.prefs,pathAliases:b.pathAliases??{},explicitManual:b.explicitManual??[]})}function S(a,b,c,d){return P(d,()=>{let e=K(d),f=e.projects[a]??I(),g=c(f);if(R(f,g))return{ok:!0,applied:!1,board:f};if(f.revision!==b)return{ok:!1,board:f};let h=J(f,g,f.revision+1);return e.projects[a]=h,L(e,d),{ok:!0,applied:!0,board:h}})}function T(a,b,c,d=D){return S((0,l.G$)(a),b,a=>{let b;return b=void 0===c.hidden?a.prefs.hidden:[...new Set([...a.prefs.hidden,...c.hidden])],C({...a,explicitManual:void 0===c.manual?a.explicitManual:c.manual,prefs:{...a.prefs,...c,hidden:b}},[])},d)}function U(a,b,c,d=D){return S((0,l.G$)(a),b,a=>C(a,c),d)}function V(a,b,c={}){var d,e;let f=c.filePath??null??D;return d=(0,l.G$)(a),e=a=>{if(0===b.length||b.every(({from:b,to:c})=>a.pathAliases?.[b]===c))return a;let d=c.provisionalManual?.filter(b=>a.pathAliases?.[b]===void 0&&a.prefs.manual.includes(b))??[],e=[];return d.length&&e.push({kind:"reconcile-roots",roots:[],removeManual:d}),e.push({kind:"remap-paths",pairs:b,targetPlacementAuthoritative:c.targetPlacementAuthoritative}),C(a,e)},P(f,()=>{let a=K(f),b=a.projects[d]??I(),c=e(b);if(R(b,c))return b;let g=J(b,c,b.revision+1);return a.projects[d]=g,L(a,f),g})}function W(a,b=D){0!==a.length&&P(b,()=>{let c=K(b),d=!1;for(let b of a){if(b.fromProject===b.toProject)continue;let a=c.projects[b.fromProject];if(!a)continue;let e=C(a,[]),f=C(c.projects[b.toProject]??I(),[]);for(let a of[...new Set(b.paths)]){let b=Object.entries(e.pathAliases??{}).filter(([,b])=>b===a);if(b.length>0&&(f=C({...f,pathAliases:{...f.pathAliases??{},...Object.fromEntries(b)}},[])),!(e.prefs.hidden.includes(a)||e.prefs.expanded.includes(a)||e.prefs.manual.includes(a))&&0===b.length)continue;let c=e.prefs.hidden.includes(a)?"hidden":e.prefs.expanded.includes(a)?"expanded":e.prefs.manual.includes(a)?"manual":"auto",d=f.prefs.hidden.includes(a)?"hidden":f.prefs.expanded.includes(a)?"expanded":f.prefs.manual.includes(a)?"manual":"auto",g="hidden"===c||"hidden"===d?"hidden":"auto"!==d?d:c,h=(e.explicitManual??[]).includes(a)||(f.explicitManual??[]).includes(a);e={...e,explicitManual:(e.explicitManual??[]).filter(b=>b!==a),pathAliases:Object.fromEntries(Object.entries(e.pathAliases??{}).filter(([,b])=>b!==a)),prefs:{...e.prefs,manual:e.prefs.manual.filter(b=>b!==a),hidden:e.prefs.hidden.filter(b=>b!==a),expanded:e.prefs.expanded.filter(b=>b!==a)}};let i={...f.prefs,manual:f.prefs.manual.filter(b=>b!==a),hidden:f.prefs.hidden.filter(b=>b!==a),expanded:f.prefs.expanded.filter(b=>b!==a)};f={...f,explicitManual:"manual"===g&&h?[...(f.explicitManual??[]).filter(b=>b!==a),a]:(f.explicitManual??[]).filter(b=>b!==a),prefs:"hidden"===g?{...i,hidden:[...i.hidden,a]}:"expanded"===g?{...i,expanded:[...i.expanded,a]}:"manual"===g?{...i,manual:[...i.manual,a]}:i}}R(a,e)||(c.projects[b.fromProject]=J(a,e,a.revision+1),d=!0);let g=c.projects[b.toProject]??I();R(g,f)||(c.projects[b.toProject]=J(g,f,g.revision+1),d=!0)}d&&L(c,b)})}function X(a,b=(0,j.BQ)("board.json")){return 0===a.size||P(b,()=>{let c=K(b),d=!1,e=!0,f=new Map;for(let[b,c]of a)b!==c&&f.set(c,[...f.get(c)??[],b]);for(let[a,b]of f){let f=b.flatMap(a=>c.projects[a]?[c.projects[a]]:[]);if(0===f.length)continue;let g=c.projects[a];if(!g&&1===f.length){for(let d of(c.projects[a]=f[0],b))delete c.projects[d];d=!0;continue}try{let e=g?[g,...f]:f,h=function(a){let b=a.map((a,b)=>({state:a,index:b,timestamp:Date.parse(a.updatedAt)})).sort((a,b)=>(Number.isFinite(a.timestamp)?a.timestamp:0)-(Number.isFinite(b.timestamp)?b.timestamp:0)||a.index-b.index).map(({state:a})=>a),c=b.reduce((a,b)=>({...a,...b.pathAliases??{}}),{}),d=new Map,e=null,f=!1,g=c;for(let a of b){let b=C({...a,pathAliases:c},[]);for(let a of(g=b.pathAliases??{},["manual","hidden","expanded"]))for(let c of b.prefs[a])d.delete(c),d.set(c,a);e=b.prefs.viewMode,f=b.prefs.taskPanelOpen}let h={manual:[],hidden:[],expanded:[],favorites:[...new Set(b.flatMap(a=>a.prefs.favorites??[]))],foldedEngineChildIds:[...new Set(b.flatMap(a=>a.prefs.foldedEngineChildIds??[]))],expandedEngineTrayParentIds:[...new Set(b.flatMap(a=>a.prefs.expandedEngineTrayParentIds??[]))],viewMode:e,taskPanelOpen:f};for(let[a,b]of d)h[b].push(a);let i=new Set(h.manual),j=[...new Set(b.flatMap(a=>a.explicitManual??[]))].map(a=>g[a]??a).filter(a=>i.has(a));return{...b.at(-1),pathAliases:g,explicitManual:j,prefs:h}}(e),i=J(g??I(),h,Math.max(...e.map(a=>a.revision))+1,f);for(let d of(c.projects[a]=g&&R(g,i)&&JSON.stringify({keys:g.keyRevisions??{},floor:g.keyRevisionFloor??0})===JSON.stringify({keys:i.keyRevisions??{},floor:i.keyRevisionFloor??0})?g:i,b))delete c.projects[d];d=!0}catch{e=!1;continue}}return d&&L(c,b),e})}},27832:(a,b,c)=>{c.d(b,{MO:()=>k,Mv:()=>j,V5:()=>n,im:()=>o,rj:()=>l});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h);let j="project_unresolved",k="Unresolved project";function l(a){return a===j?k:a}function m(a){let b=i().join(a,".git");try{let c=g().lstatSync(b);if(c.isDirectory())return b;if(!c.isFile())return null;let d=g().readFileSync(b,"utf8").slice(0,4096),e=/^gitdir:\s*(.+?)\s*$/im.exec(d)?.[1];return e?i().resolve(a,e):null}catch{return null}}function n(a){let b=i().resolve(a);for(;;){if(m(b))return b;let a=i().dirname(b);if(a===b)return null;b=a}}function o(a){let b,c=m(a);if(!c)return null;try{b=g().readFileSync(i().join(function(a){try{let b=g().readFileSync(i().join(a,"commondir"),"utf8").trim();return b?i().resolve(a,b):a}catch{return a}}(c),"config"),"utf8")}catch{return null}let d=function(a){let b=!1;for(let c of a.split(/\r?\n/)){let a=/^\s*\[\s*remote\s+"([^"]+)"\s*\]\s*$/i.exec(c);if(a){b="origin"===a[1];continue}if(/^\s*\[/.test(c)){b=!1;continue}if(!b)continue;let d=/^\s*url\s*=\s*(.*?)\s*$/i.exec(c)?.[1],e=d?.replace(/\s+[;#].*$/,"").trim();if(e)return e}return null}(b),f=(()=>{try{return g().realpathSync.native(a)}catch{return i().resolve(a)}})(),h=d?function(a,b){let c=/^[a-z][a-z0-9+.-]*:\/\//i.test(a)?null:/^(?:[^@\s]+@)?([^:/\s]+):(.+)$/.exec(a);if(c){let a=c[1].toLowerCase(),b=c[2].replace(/^\/+|\/+$/g,"").replace(/\.git$/i,"");return b?`${a}/${b}`:null}try{let b=new URL(a);if("file:"===b.protocol){let a=i().resolve(b.pathname).replace(/\.git$/i,"");return`file:${a}`}let c=b.hostname.toLowerCase(),d=b.port?`:${b.port}`:"",e=b.pathname.replace(/^\/+|\/+$/g,"").replace(/\.git$/i,"");return c&&e?`${c}${d}/${e}`:null}catch{let c=i().resolve(b,a).replace(/\.git$/i,"");return`file:${c}`}}(d,a):`local:${f}`,j=h&&h.replace(/^file:/,"").split("/").filter(Boolean).at(-1)?.trim()||null;if(!h||!j)return null;let k=e().createHash("sha256").update(h).digest("hex").slice(0,32);return{project:`repo-${k}`,displayName:j,canonicalRemote:h}}},89940:(a,b,c)=>{c.d(b,{E2:()=>r,G$:()=>q,JC:()=>u,YX:()=>w,oh:()=>x});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(27832);let l=null;function m(){return(0,j.BQ)("project-aliases.json")}function n(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=Object.entries(a);return b.every(([a,b])=>!!a.trim()&&"string"==typeof b&&!!b.trim())?Object.fromEntries(b):null}function o(){let a,b=m();try{a=g().statSync(b)}catch{return(l={file:b,mtimeMs:-1,size:-1,snapshot:{aliases:{},displayNames:{}}}).snapshot}if(l&&l.file===b&&l.mtimeMs===a.mtimeMs&&l.size===a.size)return l.snapshot;try{let c=JSON.parse(g().readFileSync(b,"utf8")),d=1===c.schemaVersion?n(c.aliases):null,e=1===c.schemaVersion?n(c.displayNames):null,f=d&&e?{aliases:d,displayNames:e}:{aliases:{},displayNames:{}};return l={file:b,mtimeMs:a.mtimeMs,size:a.size,snapshot:f},f}catch{let c={aliases:{},displayNames:{}};return l={file:b,mtimeMs:a.mtimeMs,size:a.size,snapshot:c},c}}function p(a,b){let c=a,d=new Set;for(;b[c]&&!d.has(c);)d.add(c),c=b[c];return d.has(c)?a:c}function q(a){return p(a,o().aliases)}function r(){let a=o();return{aliases:{...a.aliases},displayNames:{...a.displayNames}}}function s(a){try{let b=JSON.parse(g().readFileSync((0,j.BQ)(a),"utf8"));return b&&"object"==typeof b&&!Array.isArray(b)?b:null}catch{return null}}function t(a,b,c){let d=s(a)?.[b];if(!Array.isArray(d))return[];let e=[];for(let a of d)!(!a||"object"!=typeof a||Array.isArray(a))&&"string"==typeof a.project&&a.project.trim()&&"string"==typeof a[c]&&a[c].trim()&&e.push([a.project,a[c]]);return e}function u(){let a=function(){let a=s("worktree-map.json");if(!a)return new Map;let b=new Map;for(let[c,d]of Object.entries(a)){if(!d||"object"!=typeof d||Array.isArray(d))continue;let a=d.repo;"string"==typeof a&&a.trim()&&b.set(c,a)}return b}(),b=[...t("flows.json","flows","cwd"),...t("pipelines.json","pipelines","repoDir"),...t("workflows.json","workflows","repoDir")],c=new Map;for(let[d,e]of b){let b=(0,k.V5)(e)??a.get(e),f=b?(0,k.im)(b):null;if(!f)continue;let g=c.get(d)??new Map,h=g.get(f.project)??{registration:{source:d,target:f.project,displayName:f.displayName},records:0};h.records+=1,g.set(f.project,h),c.set(d,g)}let d=[],e=[];for(let[a,b]of c){if(b.has(a)){b.size>1&&e.push(a);continue}let c=[...b.values()].sort((a,b)=>b.records-a.records),f=c.reduce((a,b)=>a+b.records,0),g=c[0];2*g.records>f?d.push(g.registration):e.push(a)}let f=function(a){let b=new Map(a.map(a=>[a.source,a.target])),c=new Set,d=new Set;for(let[a,e]of[["tasks.json","tasks"],["flows.json","flows"],["pipelines.json","pipelines"],["workflows.json","workflows"]]){let f=new Map;for(let g of function(a,b){let c=s(a)?.[b];return Array.isArray(c)?c.filter(a=>!!a&&"object"==typeof a&&!Array.isArray(a)):[]}(a,e)){if("string"!=typeof g.id||!g.id.trim()||"string"!=typeof g.project||!g.project.trim())continue;let a=q(g.project),h=b.get(a)??a,i=`${h}\0${g.id}`,j=f.get(i);j&&j!==a?(c.add(`${e} id collision`),b.has(j)&&d.add(j),b.has(a)&&d.add(a)):f.set(i,a)}}return{labels:[...c],sources:d}}(d);return e.push(...f.labels),{registrations:d.filter(a=>!f.sources.has(a.source)),conflicts:e}}function v(a){let b=o(),c={...b.aliases},d={...b.displayNames};for(let b of a){let a=b.source.trim(),e=p(b.target.trim(),c),f=b.displayName.trim();if(!a||!e||!f)return null;let g=c[a]?p(c[a],c):null;if(g&&g!==e)return null;a!==e&&(c[a]=e),d[e]=f}return{aliases:c,displayNames:d}}function w(a){return null!==v(a)}function x(a){if(0===a.length)return!0;let b=v(a);if(!b)return!1;let c=m(),d=i().join(i().dirname(c),`.${i().basename(c)}.${process.pid}.${e().randomUUID()}.tmp`);try{return g().mkdirSync(i().dirname(c),{recursive:!0,mode:448}),g().writeFileSync(d,JSON.stringify({schemaVersion:1,...b},null,2)+"\n",{encoding:"utf8",mode:384}),g().renameSync(d,c),l=null,o(),!0}catch{try{g().rmSync(d,{force:!0})}catch{}return!1}}}};
|
|
1
|
+
"use strict";exports.id=3587,exports.ids=[3587],exports.modules={3587:(a,b,c)=>{c.d(b,{WH:()=>F,C9:()=>Q,aM:()=>X,pA:()=>U,jk:()=>T,cw:()=>V,L5:()=>W});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(91724),k=c(59683),l=c(89940);let m="viewMode",n="taskPanelOpen",o="path:",p=a=>`${o}${a}`,q=a=>`favorite:${a}`,r=a=>`fold:${a}`,s=a=>`tray:${a}`;function t(a,b){let c=new Set,d=a;for(;void 0!==b[d]&&!c.has(d);)c.add(d),d=b[d];return d}function u(a,b){return a.startsWith(o)?p(t(a.slice(o.length),b)):a}let v={absent:0,manual:1,pinned:2,expanded:3,hidden:4};function w(a,b){let c=new Map,d=(a,d)=>{let e=t(a,b),f=c.get(e);(void 0===f||(v[d]??0)>(v[f]??0))&&c.set(e,d)};for(let b of a.prefs.hidden)d(b,"hidden");for(let b of a.prefs.expanded)d(b,"expanded");for(let b of a.prefs.manual)d(b,(a.explicitManual??[]).includes(b)?"pinned":"manual");return c}function x(a,b){let c=new Set(a??[]),d=new Set(b??[]);return[...new Set([...c,...d])].filter(a=>c.has(a)!==d.has(a))}function y(a){return[...new Set(a)]}function z(a){return a.pathAliases??{}}function A(a,b){let c=new Set,d=a;for(;void 0!==b[d];){if(c.has(d))throw Error("board path alias cycle");c.add(d),d=b[d]}return d}function B(a,b=z(a)){let c=function(a){let b={};for(let c of Object.keys(a)){let d=A(c,a);c!==d&&(b[c]=d)}return b}(b),d=y(a.prefs.hidden.map(a=>A(a,c))),e=new Set(d),f=a=>y(a.map(a=>A(a,c)).filter(a=>!e.has(a))),g=f(a.prefs.manual),h=new Set(g);return{...a,pathAliases:c,explicitManual:f(a.explicitManual??[]).filter(a=>h.has(a)),prefs:{...a.prefs,manual:g,hidden:d,expanded:f(a.prefs.expanded),favorites:y(a.prefs.favorites??[]),foldedEngineChildIds:y(a.prefs.foldedEngineChildIds??[]),expandedEngineTrayParentIds:y(a.prefs.expandedEngineTrayParentIds??[])}}}function C(a,b){var c;let d,e,f,g=B(a);for(let a of b){if("remap-paths"===a.kind){g=function(a,b,c=!1){let d=z(a),e=b.filter(({from:a,to:b})=>A(a,d)!==A(b,d));if(0===e.length)return B(a);let f=new Set(b.map(({from:a})=>A(a,d))),g=new Set(e.map(({to:a})=>A(a,d))),h=a=>{if(c)return!0;let b=A(a,d);return!g.has(b)||f.has(b)},i=a.prefs.manual.filter(h),j=(a.explicitManual??[]).filter(h),k={...d};for(let{from:a,to:b}of e)k[a]=b;return B({...a,explicitManual:j,prefs:{...a.prefs,manual:i}},k)}(g,a.pairs,a.targetPlacementAuthoritative);continue}if("reconcile-roots"===a.kind){g=function(a,b,c){let d=z(a),e=new Set(c.map(a=>A(a,d))),f=a.prefs.manual.filter(a=>!e.has(a)),g=(a.explicitManual??[]).filter(a=>!e.has(a)),h=new Set([...f,...a.prefs.hidden,...Object.values(d).map(a=>A(a,d))]);for(let a of b.map(a=>A(a,d)))h.has(a)||(f.push(a),h.add(a));return B({...a,explicitManual:g,prefs:{...a.prefs,manual:f}})}(g,a.roots,a.removeManual);continue}if("restore"===a.kind){g=function(a,b,c){let d={...a.prefs,hidden:a.prefs.hidden.filter(a=>a!==b)},e=(a.explicitManual??[]).filter(a=>a!==b);if("auto"===c)return B({...a,explicitManual:e,prefs:d});let f={...d,manual:d.manual.filter(a=>a!==b),expanded:d.expanded.filter(a=>a!==b)};return B({...a,explicitManual:"manual"===c?[...e,b]:e,prefs:"manual"===c?{...f,manual:[...f.manual,b]}:{...f,expanded:[...f.expanded,b]}})}(g,A(a.path,z(g)),a.placement);continue}if("set-favorite"===a.kind){let b=a.favorite?y([...g.prefs.favorites,a.id]):g.prefs.favorites.filter(b=>b!==a.id);g=B({...g,prefs:{...g.prefs,favorites:b}});continue}if("set-engine-child-fold"===a.kind){let b=g.prefs.foldedEngineChildIds??[],c=a.folded?y([...b,a.id]):b.filter(b=>b!==a.id),d=A(a.path,z(g));g=B({...g,explicitManual:a.folded?(g.explicitManual??[]).filter(a=>a!==d):g.explicitManual,prefs:{...g.prefs,foldedEngineChildIds:c,manual:a.folded?g.prefs.manual.filter(a=>a!==d):g.prefs.manual,expanded:a.folded?g.prefs.expanded.filter(a=>a!==d):g.prefs.expanded}});continue}if("set-engine-tray-expanded"===a.kind){let b=g.prefs.expandedEngineTrayParentIds??[],c=a.expanded?y([...b,a.parentId]):b.filter(b=>b!==a.parentId);g=B({...g,prefs:{...g.prefs,expandedEngineTrayParentIds:c}});continue}if("set-presentation"===a.kind){g=B({...g,prefs:{...g.prefs,...void 0===a.viewMode?{}:{viewMode:a.viewMode},...void 0===a.taskPanelOpen?{}:{taskPanelOpen:a.taskPanelOpen}}});continue}let b=A(a.path,z(g));g=B({...g,explicitManual:(g.explicitManual??[]).filter(a=>a!==b),prefs:{...g.prefs,manual:g.prefs.manual.filter(a=>a!==b),expanded:g.prefs.expanded.filter(a=>a!==b),hidden:y([...g.prefs.hidden,b])}})}return d=z(c=g),e=new Set(c.prefs.hidden.map(a=>A(a,d))),f=a.prefs.hidden.filter(a=>e.has(A(a,d))),{...c,prefs:{...c.prefs,hidden:y([...f,...c.prefs.hidden])}}}let D=(0,j.BQ)("board.json"),E={manual:[],hidden:[],expanded:[],favorites:[],foldedEngineChildIds:[],expandedEngineTrayParentIds:[],viewMode:null,taskPanelOpen:!1};class F extends Error{constructor(a="board state unavailable"){super(a)}}function G(a){return Array.isArray(a)&&a.every(a=>"string"==typeof a)}function H(a){var b,c;if(!a||"object"!=typeof a||Array.isArray(a))return!1;let d=a.prefs;return 1===a.schemaVersion&&Number.isInteger(a.revision)&&a.revision>=0&&"string"==typeof a.updatedAt&&!!d&&G(d.manual)&&G(d.hidden)&&G(d.expanded)&&(void 0===d.favorites||G(d.favorites))&&(void 0===d.foldedEngineChildIds||G(d.foldedEngineChildIds))&&(void 0===d.expandedEngineTrayParentIds||G(d.expandedEngineTrayParentIds))&&(void 0===a.explicitManual||G(a.explicitManual))&&(void 0===a.pathAliases||!(!(b=a.pathAliases)||"object"!=typeof b||Array.isArray(b))&&Object.values(b).every(a=>"string"==typeof a))&&(void 0===a.keyRevisions||!(!(c=a.keyRevisions)||"object"!=typeof c||Array.isArray(c))&&Object.values(c).every(a=>Number.isInteger(a)&&a>=0))&&(void 0===a.keyRevisionFloor||Number.isInteger(a.keyRevisionFloor)&&a.keyRevisionFloor>=0)&&(null===d.viewMode||"scheme"===d.viewMode||"list"===d.viewMode)&&"boolean"==typeof d.taskPanelOpen}function I(){return{schemaVersion:1,revision:0,updatedAt:new Date(0).toISOString(),pathAliases:{},explicitManual:[],keyRevisions:{},keyRevisionFloor:0,prefs:{...E,manual:[],hidden:[],expanded:[]}}}function J(a,b,c,d=[]){return{...b,schemaVersion:1,revision:c,updatedAt:new Date().toISOString(),pathAliases:b.pathAliases??{},...function(a,b,c,d=[]){let e=b.pathAliases??{},f={};for(let b of[a,...d])for(let[a,c]of Object.entries(b.keyRevisions??{})){let b=u(a,e);f[b]=Math.max(f[b]??0,c)}for(let d of function(a,b){let c=new Set,d=b.pathAliases??{},e=w(a,d),f=w(b,d);for(let a of new Set([...e.keys(),...f.keys()]))(e.get(a)??"absent")!==(f.get(a)??"absent")&&c.add(p(a));for(let d of x(a.prefs.favorites,b.prefs.favorites))c.add(q(d));for(let d of x(a.prefs.foldedEngineChildIds,b.prefs.foldedEngineChildIds))c.add(r(d));for(let d of x(a.prefs.expandedEngineTrayParentIds,b.prefs.expandedEngineTrayParentIds))c.add(s(d));return a.prefs.viewMode!==b.prefs.viewMode&&c.add(m),a.prefs.taskPanelOpen!==b.prefs.taskPanelOpen&&c.add(n),c}(a,b))f[d]=c;let g=function(a){let b=a.pathAliases??{},c=new Set([m,n]);for(let d of w(a,b).keys())c.add(p(d));for(let b of a.prefs.favorites??[])c.add(q(b));for(let b of a.prefs.foldedEngineChildIds??[])c.add(r(b));for(let b of a.prefs.expandedEngineTrayParentIds??[])c.add(s(b));return c}(b),h={},i=[];for(let[a,b]of Object.entries(f))g.has(a)?h[a]=b:i.push([a,b]);i.sort((a,b)=>b[1]-a[1]||a[0].localeCompare(b[0]));let j=Math.max(a.keyRevisionFloor??0,...d.map(a=>a.keyRevisionFloor??0));for(let[a,b]of i.slice(0,512))h[a]=b;for(let[,a]of i.slice(512))j=Math.max(j,a);for(let[a,b]of Object.entries(h))!g.has(a)&&b<=j&&delete h[a];return{keyRevisions:h,keyRevisionFloor:j}}(a,b,c,d)}}function K(a){try{let b=JSON.parse(g().readFileSync(a,"utf8"));if(!b||"object"!=typeof b.projects||null===b.projects||Array.isArray(b.projects))throw new F("invalid board state");if(!Object.values(b.projects).every(H))throw new F("invalid board project state");return{projects:Object.fromEntries(Object.entries(b.projects).map(([a,b])=>[a,{...b,pathAliases:b.pathAliases??{},explicitManual:b.explicitManual??b.prefs.manual,keyRevisions:function(a,b){let c={};for(let[d,e]of Object.entries(a)){let a=u(d,b);c[a]=Math.max(c[a]??0,e)}return c}(b.keyRevisions??{},b.pathAliases??{}),keyRevisionFloor:b.keyRevisionFloor??0,prefs:{...b.prefs,favorites:b.prefs.favorites??[],foldedEngineChildIds:b.prefs.foldedEngineChildIds??[],expandedEngineTrayParentIds:b.prefs.expandedEngineTrayParentIds??[]}}]))}}catch(a){if("ENOENT"===a.code)return{projects:{}};if(a instanceof F)throw a;throw new F}}function L(a,b){g().mkdirSync(i().dirname(b),{recursive:!0});let c=i().join(i().dirname(b),`.${i().basename(b)}.${process.pid}.${e().randomUUID()}.tmp`),d=null;try{d=g().openSync(c,"wx",384),g().writeFileSync(d,JSON.stringify(a,null,2)+"\n","utf8"),g().fsyncSync(d),g().closeSync(d),d=null,g().renameSync(c,b);let e=g().openSync(i().dirname(b),"r");try{g().fsyncSync(e)}finally{g().closeSync(e)}}finally{null!==d&&g().closeSync(d),g().rmSync(c,{force:!0})}}function M(a){Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,a)}function N(a){try{let b=JSON.parse(g().readFileSync(a,"utf8"));if("number"==typeof b.pid&&Number.isInteger(b.pid)&&b.pid>0){let c,d="string"==typeof b.startIdentity?b.startIdentity:null;return!k.B.pidAlive(b.pid)||(null!==d?(c=k.B.processIdentity(b.pid),null!==c&&c!==d):Date.now()-g().statSync(a).mtimeMs>3e4)}return Date.now()-g().statSync(a).mtimeMs>3e4}catch{try{return Date.now()-g().statSync(a).mtimeMs>3e4}catch{return!1}}}function O(a,b){try{JSON.parse(g().readFileSync(a,"utf8")).token===b&&g().rmSync(a,{force:!0})}catch{}}function P(a,b){let c=`${a}.write-lock`,d=`${a}.write-locks`;g().mkdirSync(d,{recursive:!0,mode:448});let f={pid:process.pid,startIdentity:k.B.processIdentity(process.pid),token:e().randomUUID()},h=i().join(d,`${String(Date.now()).padStart(16,"0")}-${process.pid}-${e().randomUUID()}.json`);g().writeFileSync(h,JSON.stringify(f),{encoding:"utf8",flag:"wx",mode:384});try{for(let a=0;a<1e3;a+=1){let a,e=[];for(let a of g().readdirSync(d).filter(a=>a.endsWith(".json")).sort()){let b=i().join(d,a);if(N(b)){g().rmSync(b,{force:!0});continue}g().existsSync(b)&&e.push(b)}if(e[0]!==h){M(5);continue}try{a=g().openSync(c,"wx",384)}catch(a){if("EEXIST"!==a.code)throw a;N(c)&&g().rmSync(c,{force:!0}),M(5);continue}try{return g().writeFileSync(a,JSON.stringify(f),"utf8"),g().fsyncSync(a),b()}finally{g().closeSync(a),O(c,f.token)}}throw new F("board state is busy")}finally{O(h,f.token)}}function Q(a,b=D){return K(b).projects[(0,l.G$)(a)]??I()}function R(a,b){return JSON.stringify({prefs:a.prefs,pathAliases:a.pathAliases??{},explicitManual:a.explicitManual??[]})===JSON.stringify({prefs:b.prefs,pathAliases:b.pathAliases??{},explicitManual:b.explicitManual??[]})}function S(a,b,c,d){return P(d,()=>{let e=K(d),f=e.projects[a]??I(),g=c(f);if(R(f,g))return{ok:!0,applied:!1,board:f};if(f.revision!==b)return{ok:!1,board:f};let h=J(f,g,f.revision+1);return e.projects[a]=h,L(e,d),{ok:!0,applied:!0,board:h}})}function T(a,b,c,d=D){return S((0,l.G$)(a),b,a=>{let b;return b=void 0===c.hidden?a.prefs.hidden:[...new Set([...a.prefs.hidden,...c.hidden])],C({...a,explicitManual:void 0===c.manual?a.explicitManual:c.manual,prefs:{...a.prefs,...c,hidden:b}},[])},d)}function U(a,b,c,d=D){return S((0,l.G$)(a),b,a=>C(a,c),d)}function V(a,b,c={}){var d,e;let f=c.filePath??null??D;return d=(0,l.G$)(a),e=a=>{if(0===b.length||b.every(({from:b,to:c})=>a.pathAliases?.[b]===c))return a;let d=c.provisionalManual?.filter(b=>a.pathAliases?.[b]===void 0&&a.prefs.manual.includes(b))??[],e=[];return d.length&&e.push({kind:"reconcile-roots",roots:[],removeManual:d}),e.push({kind:"remap-paths",pairs:b,targetPlacementAuthoritative:c.targetPlacementAuthoritative}),C(a,e)},P(f,()=>{let a=K(f),b=a.projects[d]??I(),c=e(b);if(R(b,c))return b;let g=J(b,c,b.revision+1);return a.projects[d]=g,L(a,f),g})}function W(a,b=D){0!==a.length&&P(b,()=>{let c=K(b),d=!1;for(let b of a){if(b.fromProject===b.toProject)continue;let a=c.projects[b.fromProject];if(!a)continue;let e=C(a,[]),f=C(c.projects[b.toProject]??I(),[]);for(let a of[...new Set(b.paths)]){let b=Object.entries(e.pathAliases??{}).filter(([,b])=>b===a);if(b.length>0&&(f=C({...f,pathAliases:{...f.pathAliases??{},...Object.fromEntries(b)}},[])),!(e.prefs.hidden.includes(a)||e.prefs.expanded.includes(a)||e.prefs.manual.includes(a))&&0===b.length)continue;let c=e.prefs.hidden.includes(a)?"hidden":e.prefs.expanded.includes(a)?"expanded":e.prefs.manual.includes(a)?"manual":"auto",d=f.prefs.hidden.includes(a)?"hidden":f.prefs.expanded.includes(a)?"expanded":f.prefs.manual.includes(a)?"manual":"auto",g="hidden"===c||"hidden"===d?"hidden":"auto"!==d?d:c,h=(e.explicitManual??[]).includes(a)||(f.explicitManual??[]).includes(a);e={...e,explicitManual:(e.explicitManual??[]).filter(b=>b!==a),pathAliases:Object.fromEntries(Object.entries(e.pathAliases??{}).filter(([,b])=>b!==a)),prefs:{...e.prefs,manual:e.prefs.manual.filter(b=>b!==a),hidden:e.prefs.hidden.filter(b=>b!==a),expanded:e.prefs.expanded.filter(b=>b!==a)}};let i={...f.prefs,manual:f.prefs.manual.filter(b=>b!==a),hidden:f.prefs.hidden.filter(b=>b!==a),expanded:f.prefs.expanded.filter(b=>b!==a)};f={...f,explicitManual:"manual"===g&&h?[...(f.explicitManual??[]).filter(b=>b!==a),a]:(f.explicitManual??[]).filter(b=>b!==a),prefs:"hidden"===g?{...i,hidden:[...i.hidden,a]}:"expanded"===g?{...i,expanded:[...i.expanded,a]}:"manual"===g?{...i,manual:[...i.manual,a]}:i}}R(a,e)||(c.projects[b.fromProject]=J(a,e,a.revision+1),d=!0);let g=c.projects[b.toProject]??I();R(g,f)||(c.projects[b.toProject]=J(g,f,g.revision+1),d=!0)}d&&L(c,b)})}function X(a,b=(0,j.BQ)("board.json")){return 0===a.size||P(b,()=>{let c=K(b),d=!1,e=!0,f=new Map;for(let[b,c]of a)b!==c&&f.set(c,[...f.get(c)??[],b]);for(let[a,b]of f){let f=b.flatMap(a=>c.projects[a]?[c.projects[a]]:[]);if(0===f.length)continue;let g=c.projects[a];if(!g&&1===f.length){for(let d of(c.projects[a]=f[0],b))delete c.projects[d];d=!0;continue}try{let e=g?[g,...f]:f,h=function(a){let b=a.map((a,b)=>({state:a,index:b,timestamp:Date.parse(a.updatedAt)})).sort((a,b)=>(Number.isFinite(a.timestamp)?a.timestamp:0)-(Number.isFinite(b.timestamp)?b.timestamp:0)||a.index-b.index).map(({state:a})=>a),c=b.reduce((a,b)=>({...a,...b.pathAliases??{}}),{}),d=new Map,e=null,f=!1,g=c;for(let a of b){let b=C({...a,pathAliases:c},[]);for(let a of(g=b.pathAliases??{},["manual","hidden","expanded"]))for(let c of b.prefs[a])d.delete(c),d.set(c,a);e=b.prefs.viewMode,f=b.prefs.taskPanelOpen}let h={manual:[],hidden:[],expanded:[],favorites:[...new Set(b.flatMap(a=>a.prefs.favorites??[]))],foldedEngineChildIds:[...new Set(b.flatMap(a=>a.prefs.foldedEngineChildIds??[]))],expandedEngineTrayParentIds:[...new Set(b.flatMap(a=>a.prefs.expandedEngineTrayParentIds??[]))],viewMode:e,taskPanelOpen:f};for(let[a,b]of d)h[b].push(a);let i=new Set(h.manual),j=[...new Set(b.flatMap(a=>a.explicitManual??[]))].map(a=>g[a]??a).filter(a=>i.has(a));return{...b.at(-1),pathAliases:g,explicitManual:j,prefs:h}}(e),i=J(g??I(),h,Math.max(...e.map(a=>a.revision))+1,f);for(let d of(c.projects[a]=g&&R(g,i)&&JSON.stringify({keys:g.keyRevisions??{},floor:g.keyRevisionFloor??0})===JSON.stringify({keys:i.keyRevisions??{},floor:i.keyRevisionFloor??0})?g:i,b))delete c.projects[d];d=!0}catch{e=!1;continue}}return d&&L(c,b),e})}}};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";exports.id=3598,exports.ids=[1888,3598,7126,9507],exports.modules={19777:(a,b,c)=>{c.d(b,{mq:()=>n,cg:()=>o,xh:()=>x,L8:()=>F,_q:()=>u,ck:()=>y,Cx:()=>z,Kd:()=>H,w0:()=>E,at:()=>B,vh:()=>D,ZI:()=>w,h2:()=>q,RV:()=>I});var d=c(77598),e=c.n(d),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h);function j(a){let b,c,e,g,i,j="function"==typeof process.getuid?process.getuid():null;try{b=f.lstatSync(a)}catch(a){if(a?.code==="ENOENT")return{status:"missing"};return{status:"unsafe",detail:"cannot inspect telegram directory"}}if(b.isSymbolicLink()||!b.isDirectory())return{status:"unsafe",detail:"telegram directory is unsafe"};if((63&b.mode)!=0||null!==j&&b.uid!==j)return{status:"unsafe",detail:"telegram directory ownership or permissions are unsafe"};let k=h.join(a,"session.json"),l=h.join(a,"connector-token");try{c=f.lstatSync(k)}catch(a){if(a?.code==="ENOENT")return{status:"missing"};return{status:"unsafe",detail:"cannot inspect session file"}}if(c.isSymbolicLink()||!c.isFile()||(63&c.mode)!=0||null!==j&&c.uid!==j)return{status:"unsafe",detail:"session file ownership or permissions are unsafe"};try{e=JSON.parse(f.readFileSync(k,"utf8"))}catch{return{status:"unsafe",detail:"session data is unreadable"}}if(!e||"object"!=typeof e||1!==e.version||"string"!=typeof e.credentialRef||"string"!=typeof e.sessionString||!e.sessionString||"string"!=typeof e.savedAt||"string"!=typeof e.connectorTokenSha256)return{status:"unsafe",detail:"session data is invalid"};try{g=f.lstatSync(l)}catch{return{status:"unsafe",detail:"connector token is missing or unreadable"}}if(g.isSymbolicLink()||!g.isFile()||(63&g.mode)!=0||null!==j&&g.uid!==j)return{status:"unsafe",detail:"connector token ownership or permissions are unsafe"};try{i=f.readFileSync(l,"utf8").trim()}catch{return{status:"unsafe",detail:"connector token is unreadable"}}let m=d.createHash("sha256").update(i).digest("hex");return/^[A-Za-z0-9_-]{43}$/.test(i)&&m===e.connectorTokenSha256?{status:"valid",sessionFile:e,connectorToken:i}:{status:"unsafe",detail:"connector token is invalid"}}var k=c(27146),l=c(81389);let m="telegram",n="LLV_TELEGRAM_MCP_TOKEN";class o extends Error{constructor(a){super(`Telegram session storage is unsafe: ${a}`),this.name="UnsafeTelegramSessionError"}}function p(){return(0,k.BQ)(m)}function q(){return i().join(p(),"session.json")}function r(){return i().join(p(),"connection.json")}function s(){return i().join(p(),"connector-token")}function t(a){let b=g().lstatSync(a);if(b.isSymbolicLink())throw new o("symlink");if(!b.isFile())throw new o("not a regular file");if((63&b.mode)!=0)throw new o("permissions are wider than owner-only");if("function"==typeof process.getuid&&b.uid!==process.getuid())throw new o("not owned by this user")}function u(a=!0){let b,c=(0,k.BQ)(m);try{b=g().lstatSync(c)}catch(d){if("ENOENT"!==d.code)throw d;if(!a)return null;g().mkdirSync(c,{recursive:!0,mode:448}),b=g().lstatSync(c)}if(b.isSymbolicLink())throw new o("telegram directory is a symlink");if(!b.isDirectory())throw new o("telegram directory is not a directory");if("function"==typeof process.getuid&&b.uid!==process.getuid())throw new o("telegram directory is not owned by this user");if((63&b.mode)!=0)throw new o("telegram directory permissions are wider than owner-only");return c}let v=RegExp("^incoming_feed(-[0-9a-f]{16})?\\.jsonl$");function w(a){let b=e().createHash("sha256").update(a).digest("hex").slice(0,16);return(0,k.BQ)(m,`incoming_feed-${b}.jsonl`)}function x(a,b){u(!0);try{t(a)}catch(a){if(a instanceof o||"ENOENT"!==a.code)throw a}let c=i().join(i().dirname(a),`.${i().basename(a)}.${process.pid}.${e().randomUUID()}.tmp`);try{g().writeFileSync(c,b,{mode:384});let d=g().openSync(c,"r");try{g().fsyncSync(d)}finally{g().closeSync(d)}g().renameSync(c,a)}finally{g().rmSync(c,{force:!0})}}function y(a,b=!1){if(null===u(!1))return null;try{t(a)}catch(a){if(a instanceof o)throw a;if("ENOENT"===a.code)return null;throw a}try{return JSON.parse(g().readFileSync(a,"utf8"))}catch{if(b)throw new o(`cannot read ${i().basename(a)}`);return null}}function z(a,b,c){if(null===u(!1))return null;try{t(a)}catch(a){if(a instanceof o)throw a;if("ENOENT"===a.code)return null;throw a}let d=Math.max(1,Math.trunc(b.chunkBytes)),e=Math.max(0,Math.trunc(b.maxBytes)),f=g().openSync(a,"r");try{let a=g().fstatSync(f).size,b=[],h=a,i=0,j=!1;for(;h>0&&i<e;){let a=Math.min(d,h,e-i),k=Buffer.alloc(a);if(g().readSync(f,k,0,a,h-a),b.unshift(k),h-=a,i+=a,0===h)break;let l=k.toString("utf8"),m=l.indexOf("\n");if(-1!==m&&c(l.slice(m+1))){j=!0;break}}let k=Buffer.concat(b).toString("utf8");if(0===h)return{text:k,complete:!0};let l=k.indexOf("\n");return{text:-1===l?"":k.slice(l+1),complete:j}}finally{g().closeSync(f)}}function A(a){try{return t(a),!0}catch(a){if(a instanceof o)throw a;if("ENOENT"===a.code)return!1;throw a}}function B(a){null!==u(!1)&&A(a)&&g().rmSync(a)}function C(a){try{t(a)}catch(a){if(a instanceof o)throw a;if("ENOENT"===a.code)return null;throw a}return g().readFileSync(a,"utf8")}function D(a){if(!a)throw Error("Telegram session string is empty");u(!0);let b=C(q()),c=C(s());if(null!==b||null!==c){let a=j(p());if("valid"!==a.status)throw new o("unsafe"===a.status?a.detail:"existing session pair is incomplete")}let d=e().randomBytes(32).toString("base64url"),f={version:1,credentialRef:e().randomUUID(),connectorToken:d,sessionString:a,savedAt:new Date().toISOString()},g={version:f.version,credentialRef:f.credentialRef,sessionString:f.sessionString,savedAt:f.savedAt,connectorTokenSha256:e().createHash("sha256").update(d).digest("hex")};x(s(),d+"\n");try{x(q(),JSON.stringify(g))}catch(a){try{null===c?B(s()):x(s(),c)}catch{}throw a}return f}function E(){try{let a=j(p());if("missing"===a.status)return null;if("unsafe"===a.status)throw new o(a.detail);let b=a.sessionFile;return{version:1,credentialRef:b.credentialRef,connectorToken:a.connectorToken,sessionString:b.sessionString,savedAt:b.savedAt}}catch(a){if(a instanceof o)throw a;throw new o("cannot read session storage")}}function F(){if(null!==u(!1))for(let a of(!function(){let a,b=u(!1);if(null!==b){try{a=g().readdirSync(b,{withFileTypes:!0})}catch{return}for(let c of a)if(c.isFile()&&v.test(c.name))try{g().rmSync(i().join(b,c.name),{force:!0})}catch{}}}(),[q(),s()].filter(a=>A(a))))g().rmSync(a)}let G={version:1,status:"disconnected",credentialRef:null,identity:null,lastHealthCheckAt:null,errorCode:null,identityIdUpgradedAt:null};function H(){var a;let b=y(r());return b&&"object"==typeof b&&1===b.version&&"string"==typeof b.status?{version:1,status:b.status,credentialRef:"string"==typeof b.credentialRef?b.credentialRef:null,identity:(a=b.identity)&&"object"==typeof a?"string"!=typeof a.name?null:{name:a.name,username:"string"==typeof a.username?a.username:null,id:(0,l.S)(a.id)}:null,lastHealthCheckAt:"string"==typeof b.lastHealthCheckAt?b.lastHealthCheckAt:null,errorCode:"string"==typeof b.errorCode?b.errorCode:null,identityIdUpgradedAt:"string"==typeof b.identityIdUpgradedAt?b.identityIdUpgradedAt:null}:{...G}}function I(a){x(r(),JSON.stringify(a))}},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
|
|
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)}}},81389:(a,b,c)=>{c.d(b,{S:()=>d});function d(a){if("number"==typeof a)return Number.isSafeInteger(a)&&a>0?String(a):null;if("string"!=typeof a)return null;let b=a.trim();return/^[1-9]\d{0,18}$/.test(b)?b:null}}};
|