@mndrk/agx 2.0.0 → 2.0.2
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 +22 -32
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/app-path-routes-manifest.json +1 -9
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/build-manifest.json +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/prerender-manifest.json +3 -27
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/routes-manifest.json +0 -57
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error/page.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error.html +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found/page.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.html +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/attachments/[id]/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/attachments/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/chat/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/file-search/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/file-search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/health/route.js +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/health/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/history/route.js +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/learnings/route.js +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/learnings/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/logs/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/logs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/logs/stream/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/memories/route.js +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/memories/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/participants/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/participants/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/[id]/migrate-v1/route.js +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/[id]/migrate-v2/route.js +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/[id]/route.js +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/route.js +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/queue/complete/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/queue/route.js +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/queue/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/reactions/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/reactions/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/search/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/summarize/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/summarize/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/system/db-status/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/system/db-status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/task-drafts/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/task-drafts/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/comments/route.js +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/costs/route.js +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/dependencies/route.js +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/events/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/history/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/metrics/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/pause/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/pause/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/replan/route.js +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/restart/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/resume/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/rollback/route.js +4 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/route.js +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/start/route.js +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/stop/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/heartbeat/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/heartbeat/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/history/route.js +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/logs/route.js +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/logs/stream/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/logs/stream/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/route.js +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/assign-orphans/route.js +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/extract/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/route.js +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/stream/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/tasks/stream/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/upload/[id]/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/upload/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/upload/route.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/upload/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/user-settings/route.js +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/user-settings/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board/page.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.html +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/board.segments/board.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph/page.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.html +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.rsc +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.html +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.rsc +4 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/index.segments/_tree.segment.rsc +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/page.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/graph/[taskId]/page.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/page.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans/page.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.html +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.rsc +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/page.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.html +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.rsc +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/projects.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings/page.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.html +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.rsc +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status/page.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.html +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.rsc +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/status.segments/status.segment.rsc +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app-paths-manifest.json +1 -9
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/Projects_Agents_agx-cloud_0b687838._.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/Projects_Agents_agx-cloud_d237c059._.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/Projects_Agents_agx-cloud_ef3cf579._.js +8 -8
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/Projects_Agents_agx-cloud_lib_6041e016._.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/Projects_Agents_agx-cloud_lib_6a5d1c80._.js +12 -12
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/Projects_Agents_agx-cloud_lib_7eefb426._.js +10 -10
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/Projects_Agents_agx-cloud_lib_8c82981b._.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/Projects_Agents_agx-cloud_lib_db_ts_b66fa05f._.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/Projects_Agents_agx-cloud_src_graph_4b26122b._.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__02ca2128._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__a2575ddb._.js → [root-of-the-server]__0469e3c4._.js} +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__086fd26c._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__97b329ba._.js → [root-of-the-server]__094cda80._.js} +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__10254e41._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__9020726e._.js → [root-of-the-server]__23d4344c._.js} +9 -9
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__29975f5f._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__33b4886e._.js +18 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__26bfcde9._.js → [root-of-the-server]__384eb9c5._.js} +8 -8
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__342419c6._.js → [root-of-the-server]__3dfd0006._.js} +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__45d4a92e._.js +52 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__8f9b0934._.js → [root-of-the-server]__4dc3c88e._.js} +15 -15
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__5231c027._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__5d4e1eab._.js +52 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__ce5907bd._.js → [root-of-the-server]__5e048929._.js} +10 -10
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__68eac206._.js +13 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__6a0855b9._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__6a99c121._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__6d540484._.js +6 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__ec8bbb77._.js → [root-of-the-server]__754f11c3._.js} +4 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__35d38935._.js → [root-of-the-server]__7fae991f._.js} +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__84058042._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__19a23827._.js → [root-of-the-server]__843bda67._.js} +4 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__a17a4c27._.js → [root-of-the-server]__8c40bccb._.js} +10 -10
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__8d27656d._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__8f70f57a._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__9a8408c2._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__9d711adb._.js +4 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__9db4ed07._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__a085810b._.js +13 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__9d703c3e._.js → [root-of-the-server]__a5ebf587._.js} +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__a798a81b._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__ab726f81._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__4c2e5ddc._.js → [root-of-the-server]__b3d06607._.js} +5 -5
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__b478bb36._.js +6 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__ba50bf22._.js +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__bbf5f222._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__bca6e014._.js +52 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__bea8711d._.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__bf0cbc6e._.js +13 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__c0525aa9._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__c24f04db._.js +18 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__c6a83450._.js +31 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__a7a82510._.js → [root-of-the-server]__cac59af9._.js} +16 -16
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__ccb0a291._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__05b8cda8._.js → [root-of-the-server]__d5556385._.js} +4 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__9b8efd58._.js → [root-of-the-server]__e5230b89._.js} +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/{[root-of-the-server]__ea6b46b2._.js → [root-of-the-server]__e6839bac._.js} +10 -10
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__f8f5dd3f._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ae43b_next_dist_esm_build_templates_app-route_122e31fe.js +25 -28
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_039c43e5._.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_1e1c23f7._.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_215731e9._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_37dc866e._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_502ede06._.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_68972519._.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_8feb2597._.js +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_a0e26bca._.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_a2a39dbe._.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_a7533794._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_b2707e4d._.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_d2d4c5b2._.js +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_e1b68242._.js +8 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/{Projects_Agents_agx-cloud_dc82c7bf._.js → Projects_Agents_agx-cloud_e7635878._.js} +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_ef6ea3fc._.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_ff11dd7c._.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__0d6259d5._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__13df20fe._.js +95 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__1e273070._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/{[root-of-the-server]__d78dfcf2._.js → [root-of-the-server]__5dace3c6._.js} +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/{[root-of-the-server]__99fa92e8._.js → [root-of-the-server]__657b446b._.js} +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/{[root-of-the-server]__00507cd5._.js → [root-of-the-server]__9d72d782._.js} +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__c76acf29._.js +4 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/ae43b_db3f38e3._.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/ae43b_lucide-react_dist_esm_6c755856._.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/ae43b_lucide-react_dist_esm_icons_search_04b9412a.js +3 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/ae43b_next_dist_2cd20dd7._.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/ae43b_next_dist_832595f2._.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/ae43b_next_dist_esm_build_templates_app-page_e4003e94.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/functions-config-manifest.json +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/middleware-manifest.json +5 -5
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/next-font-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/next-font-manifest.json +0 -12
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/pages/404.html +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/pages/500.html +2 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/server-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/server-reference-manifest.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/09c6c56e4afc8647.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/{5ff122f46494124f.js → 0a0d449e527ef5e2.js} +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/0d58db99a936501d.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/{101223594db179e0.js → 1e899e8bb554fde8.js} +3 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/3791d58026009409.js +6 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/4256a16941bc22fb.js +18 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/4926ceb649af0e91.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/{8dad5ee086c3d46d.js → 49b2630db3ff37fe.js} +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/652b21250c785942.css +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/cc995b38ae16ee12.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/dc534541f2bd6342.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/e479bda541d8b5c4.css +2 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/e4e1f0e19efe31cb.js +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/fb502daefdaec131.js +93 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/README.md +4 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/chat/route.ts +7 -9
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/participants/route.ts +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/system/db-status/route.ts +16 -24
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/projects/[slug]/layout.tsx +106 -30
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/projects/[slug]/page.tsx +3 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/DiscordButton.tsx +20 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/KanbanBoard.tsx +4 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/Layout.tsx +23 -12
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/chat-ui/ChatContainer.tsx +124 -181
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/chat-ui/MessageBubble.tsx +6 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/chat-ui/MessageList.tsx +19 -5
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/chat-ui/ParticipantBar.tsx +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/chat-ui/ThreadView.tsx +6 -6
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/chat-ui/TypingIndicator.tsx +4 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/thread/ThreadItem.tsx +9 -9
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/thread/ThreadList.tsx +15 -15
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/thread/ThreadSidebar.tsx +101 -39
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/db/sqlite/001_agx_board_schema.sql +0 -52
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/hooks/useThreadState.ts +85 -85
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/attachment-store.ts +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/chat-utils.ts +15 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/cli-runner.ts +1 -6
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/dependency-helpers.ts +2 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/dependency-manager.ts +2 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/history-store.ts +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/participants-store.ts +1 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/queue/sqlite-adapter.ts +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/sqlite-query-adapter.ts +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/sqlite_writer.ts +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/startup.ts +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/storage/index.ts +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/storage/local-thread-adapter.ts +27 -27
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/storage/thread-adapter.ts +31 -31
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/stream-multiplexer.ts +7 -38
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/types.ts +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/migrations/sqlite_schema.sql +0 -45
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/next.config.ts +1 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/bindings/bindings.js +221 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/bindings/package.json +28 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/file-uri-to-path/index.js +66 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/file-uri-to-path/package.json +32 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/participants.json +16 -0
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/services/threadService.ts +32 -32
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/src/db/backup.ts +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/src/db/checks.ts +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/src/db/init.ts +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/src/graph/read-path.ts +15 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/src/graph/store.ts +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/state/threadSelection.test.ts +30 -30
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/state/threadSelection.ts +21 -21
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/state/uiSettings.ts +11 -14
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/styles/threadSidebar.css +1 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/tsconfig.tsbuildinfo +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/types/userPreferences.ts +8 -12
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/worker/index.js +782 -56
- package/package.json +1 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/daemon/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/daemon/route/build-manifest.json +0 -11
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/daemon/route/server-reference-manifest.json +0 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/daemon/route.js +0 -7
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/daemon/route.js.map +0 -5
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/daemon/route.js.nft.json +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/daemon/route_client-reference-manifest.js +0 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notification-outbox/[id]/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notification-outbox/[id]/route/build-manifest.json +0 -11
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notification-outbox/[id]/route/server-reference-manifest.json +0 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notification-outbox/[id]/route.js +0 -8
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notification-outbox/[id]/route.js.map +0 -5
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notification-outbox/[id]/route.js.nft.json +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notification-outbox/[id]/route_client-reference-manifest.js +0 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/[id]/read/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/[id]/read/route/build-manifest.json +0 -11
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/[id]/read/route/server-reference-manifest.json +0 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/[id]/read/route.js +0 -8
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/[id]/read/route.js.map +0 -5
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/[id]/read/route.js.nft.json +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/[id]/read/route_client-reference-manifest.js +0 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/route/build-manifest.json +0 -11
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/route/server-reference-manifest.json +0 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/route.js +0 -8
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/route.js.map +0 -5
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/route.js.nft.json +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/route_client-reference-manifest.js +0 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/unread-count/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/unread-count/route/build-manifest.json +0 -11
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/unread-count/route/server-reference-manifest.json +0 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/unread-count/route.js +0 -8
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/unread-count/route.js.map +0 -5
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/unread-count/route.js.nft.json +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +0 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/[threadId]/page/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/[threadId]/page/build-manifest.json +0 -18
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/[threadId]/page/next-font-manifest.json +0 -11
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/[threadId]/page/react-loadable-manifest.json +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/[threadId]/page/server-reference-manifest.json +0 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/[threadId]/page.js +0 -16
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/[threadId]/page.js.map +0 -5
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/[threadId]/page.js.nft.json +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/[threadId]/page_client-reference-manifest.js +0 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/page/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/page/build-manifest.json +0 -18
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/page/next-font-manifest.json +0 -11
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/page/react-loadable-manifest.json +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/page/server-reference-manifest.json +0 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/page.js +0 -16
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/page.js.map +0 -5
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/page.js.nft.json +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/w/[workspaceId]/page_client-reference-manifest.js +0 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome/page/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome/page/build-manifest.json +0 -18
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome/page/next-font-manifest.json +0 -11
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome/page/react-loadable-manifest.json +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome/page/server-reference-manifest.json +0 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome/page.js +0 -15
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome/page.js.map +0 -5
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome/page.js.nft.json +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome/page_client-reference-manifest.js +0 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.html +0 -9
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.meta +0 -15
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.rsc +0 -23
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.segments/_full.segment.rsc +0 -23
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.segments/_head.segment.rsc +0 -5
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.segments/_index.segment.rsc +0 -9
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.segments/_tree.segment.rsc +0 -5
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +0 -9
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/app/welcome.segments/welcome.segment.rsc +0 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/7e210_Agents_agx-cloud__next-internal_server_app_api_daemon_route_actions_460dc557.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__0270c773._.js +0 -52
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__051e7a84._.js +0 -31
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__0c5adfdf._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__0dcaa575._.js +0 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__171e4570._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__183b6768._.js +0 -52
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__18c12dc5._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__1b1fcfbb._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__1b639210._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__1d2e1572._.js +0 -52
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__1f176ebf._.js +0 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__22d0d2cc._.js +0 -10
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__24ce66ea._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__255ff287._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__27e9e463._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__299302d8._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__2ed85740._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__302dca07._.js +0 -6
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__33e7bfc0._.js +0 -5
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__3c16a1e6._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__577586cd._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__5b4f5584._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__6e6ba574._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__78f22013._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__90896e19._.js +0 -18
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__9554684b._.js +0 -13
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__9e3a95c9._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__a6778887._.js +0 -13
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__af7fd229._.js +0 -18
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__bc444d71._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__bf160a21._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__e0c2c1e9._.js +0 -6
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__f1e631d2._.js +0 -13
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__f44d398c._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/[root-of-the-server]__ff7b2c7c._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/a2576__next-internal_server_app_api_notification-outbox_[id]_route_actions_c429c549.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/a2576__next-internal_server_app_api_notifications_[id]_read_route_actions_615ae13d.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/a2576__next-internal_server_app_api_notifications_unread-count_route_actions_b61a9301.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ad555_agx-cloud__next-internal_server_app_api_notifications_route_actions_06dbcdc4.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/7e210_Agents_agx-cloud__next-internal_server_app_welcome_page_actions_5176f4d4.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_033373a0._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_0562c9cd._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_0cf15b7b._.js +0 -8
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_0d91718c._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_69570e90._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_6cbdc6fd._.js +0 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_82783170._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_aaa774d8._.js +0 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_afe007c2._.js +0 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/Projects_Agents_agx-cloud_components_chat-ui_f59beea5._.js +0 -95
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__24a978df._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__523e8b0b._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__546c34e3._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__807e5ecc._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__9668fae0._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__97870484._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__a4a5c57b._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__b549e8c2._.js +0 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/[root-of-the-server]__e915acb2._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/a2576__next-internal_server_app_w_[workspaceId]_[threadId]_page_actions_f668795b.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/ad555_agx-cloud__next-internal_server_app_w_[workspaceId]_page_actions_8ade5a6c.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/ae43b_@dnd-kit_core_dist_core_esm_e4fe20d7.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/server/chunks/ssr/ae43b_lucide-react_dist_esm_63b016a6._.js +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/0804e1cf36ac4c40.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/245ea04687930f1c.css +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/2f63efec13a9346a.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/54fbb309ba7c2b4b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/55f8c843a8037ac8.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/5eda5cd286808293.js +0 -93
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/6bfec2ea0d682ffc.js +0 -18
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/7d2c10033c8a8554.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/822bd641355a9397.js +0 -6
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/c22c688047ed9e40.css +0 -2
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/c6ed4939c63ba444.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/e4b656247e95267b.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/chunks/ef426b92c6ce58a5.js +0 -1
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/daemon/route.ts +0 -55
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/notification-outbox/[id]/route.ts +0 -42
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/notifications/[id]/read/route.ts +0 -43
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/notifications/route.ts +0 -46
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/api/notifications/unread-count/route.ts +0 -24
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/w/[workspaceId]/[threadId]/page.tsx +0 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/w/[workspaceId]/layout.tsx +0 -7
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/w/[workspaceId]/page.tsx +0 -4
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/app/welcome/page.tsx +0 -117
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/Notifications/NotificationBell.tsx +0 -62
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/Notifications/NotificationItem.tsx +0 -96
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/Notifications/NotificationsPanel.tsx +0 -127
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/Notifications/index.ts +0 -3
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/WorkspaceNav.tsx +0 -67
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/components/chat-ui/ChatPreview.tsx +0 -85
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/hooks/useNotifications.ts +0 -115
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/db/cursors.js +0 -75
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/db/notifications.js +0 -70
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/db/preferences.js +0 -110
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/demo-threads.ts +0 -76
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/jobs/pruneNotifications.js +0 -87
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/projectors/notificationProjector.js +0 -351
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/lib/sqlite.ts +0 -61
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/LICENSE +0 -21
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/README.md +0 -99
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/binding.gyp +0 -38
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/deps/common.gypi +0 -68
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/deps/copy.js +0 -31
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/deps/defines.gypi +0 -41
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/deps/download.sh +0 -122
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/deps/patches/1208.patch +0 -15
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +0 -265969
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +0 -13968
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +0 -730
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/deps/sqlite3.gyp +0 -80
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/deps/test_extension.c +0 -21
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/src/addon.cpp +0 -47
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/src/better_sqlite3.cpp +0 -74
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/src/objects/backup.cpp +0 -120
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/src/objects/backup.hpp +0 -36
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/src/objects/database.cpp +0 -417
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/src/objects/database.hpp +0 -103
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/src/objects/statement-iterator.cpp +0 -113
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/src/objects/statement-iterator.hpp +0 -50
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/src/objects/statement.cpp +0 -383
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/src/objects/statement.hpp +0 -58
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/src/util/bind-map.cpp +0 -73
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/src/util/binder.cpp +0 -193
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/src/util/constants.cpp +0 -172
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/src/util/custom-aggregate.cpp +0 -121
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/src/util/custom-function.cpp +0 -59
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/src/util/custom-table.cpp +0 -409
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/src/util/data-converter.cpp +0 -17
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/src/util/data.cpp +0 -194
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/src/util/helpers.cpp +0 -109
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/src/util/macros.cpp +0 -70
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/src/util/query-macros.cpp +0 -71
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/node_modules/better-sqlite3/src/util/row-builder.cpp +0 -49
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/script.txt +0 -111
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/tests/projector/_helpers.js +0 -68
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/tests/projector/crash.test.js +0 -139
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/tests/projector/duplicate.test.js +0 -111
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/tests/projector/flood.test.js +0 -162
- package/cloud-runtime/standalone/Projects/Agents/agx-cloud/tests/projector/replay.test.js +0 -107
- /package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/{UBZZwc9vLlz1xCm5PYCTc → Bhse4ZIyeG-RAxhOSkjdu}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/{UBZZwc9vLlz1xCm5PYCTc → Bhse4ZIyeG-RAxhOSkjdu}/_clientMiddlewareManifest.json +0 -0
- /package/cloud-runtime/standalone/Projects/Agents/agx-cloud/.next/static/{UBZZwc9vLlz1xCm5PYCTc → Bhse4ZIyeG-RAxhOSkjdu}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[36420,e=>{"use strict";e.i(22734);var t=e.i(46786),r=e.i(14747);let s="3.35.0",i=["json1"],n=["fts5"],l=["nfs","smb","cifs","efs","fuse.sshfs"];function o(e,t){try{if("json1"===t)return e.prepare("SELECT json('{}')").get(),!0;if("fts5"===t)return e.exec("CREATE VIRTUAL TABLE IF NOT EXISTS _fts5_check USING fts5(x)"),e.exec("DROP TABLE IF EXISTS _fts5_check"),!0;return!1}catch{return!1}}function a(a,u){let p=[],h=a.prepare("SELECT sqlite_version() as v").get();for(let e of(0>function(e,t){let r=e.split(".").map(Number),s=t.split(".").map(Number);for(let e=0;e<3;e++){let t=(r[e]||0)-(s[e]||0);if(0!==t)return t}return 0}(h.v,s)&&p.push({kind:"version_mismatch",message:`SQLite version ${h.v} is below minimum ${s}`,found:h.v,required:`>= ${s}`,fix:"darwin"===t.default.platform()?"brew install sqlite3 && npm rebuild better-sqlite3":"TURBOPACK unreachable"}),i))o(a,e)||p.push({kind:"missing_extension",message:`Required SQLite extension '${e}' is not available`,required:e,fix:`Rebuild SQLite with -DSQLITE_ENABLE_${e.toUpperCase()}=1, or use a system SQLite that includes it`});for(let e of n)o(a,e)||console.warn(`[startup] Recommended SQLite extension '${e}' is not available. Full-text search will be disabled.`);let c=function(s){"linux"!==t.default.platform()&&t.default.platform();try{let i=r.default.resolve(s),{execSync:n}=e.r(33405);if("darwin"===t.default.platform()){let e=n(`df -T "${i}" 2>/dev/null || df "${i}"`,{encoding:"utf-8",timeout:3e3}).trim().split("\n");if(e.length>=2){let t=e[1].split(/\s+/),r=t[0]?.toLowerCase()||"";if(r.includes("://")||r.includes("nfs")||r.includes("smb"))return r}}}catch{}return null}(u);c&&l.some(e=>c.toLowerCase().includes(e))&&p.push({kind:"filesystem_error",message:`Database path '${u}' is on a network filesystem (${c})`,path:u,found:c,fix:"Move the database file to a local SSD. WAL mode requires local filesystem with reliable fsync."});try{a.pragma("journal_mode = wal"),a.pragma("foreign_keys = 1"),a.pragma("busy_timeout = 5000"),a.pragma("synchronous = 1"),a.pragma("cache_size = -64000");let e=a.pragma("journal_mode",{simple:!0});"wal"!==e.toLowerCase()&&p.push({kind:"pragma_error",message:`Failed to set journal_mode=WAL (got '${e}')`,found:e,required:"wal",fix:"Ensure the database file is on a local filesystem and no other process holds an exclusive lock."})}catch(e){p.push({kind:"pragma_error",message:`Failed to apply required PRAGMAs: ${e.message}`,fix:"Check file permissions and ensure the database is not read-only."})}return p}e.s(["validateSQLiteEnvironment",()=>a])},62367,e=>{"use strict";let t={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["LOCAL_USER",0,t])},74949,e=>{"use strict";var t=e.i(
|
|
1
|
+
module.exports=[36420,e=>{"use strict";e.i(22734);var t=e.i(46786),r=e.i(14747);let s="3.35.0",i=["json1"],n=["fts5"],l=["nfs","smb","cifs","efs","fuse.sshfs"];function o(e,t){try{if("json1"===t)return e.prepare("SELECT json('{}')").get(),!0;if("fts5"===t)return e.exec("CREATE VIRTUAL TABLE IF NOT EXISTS _fts5_check USING fts5(x)"),e.exec("DROP TABLE IF EXISTS _fts5_check"),!0;return!1}catch{return!1}}function a(a,u){let p=[],h=a.prepare("SELECT sqlite_version() as v").get();for(let e of(0>function(e,t){let r=e.split(".").map(Number),s=t.split(".").map(Number);for(let e=0;e<3;e++){let t=(r[e]||0)-(s[e]||0);if(0!==t)return t}return 0}(h.v,s)&&p.push({kind:"version_mismatch",message:`SQLite version ${h.v} is below minimum ${s}`,found:h.v,required:`>= ${s}`,fix:"darwin"===t.default.platform()?"brew install sqlite3 && npm rebuild better-sqlite3":"TURBOPACK unreachable"}),i))o(a,e)||p.push({kind:"missing_extension",message:`Required SQLite extension '${e}' is not available`,required:e,fix:`Rebuild SQLite with -DSQLITE_ENABLE_${e.toUpperCase()}=1, or use a system SQLite that includes it`});for(let e of n)o(a,e)||console.warn(`[startup] Recommended SQLite extension '${e}' is not available. Full-text search will be disabled.`);let c=function(s){"linux"!==t.default.platform()&&t.default.platform();try{let i=r.default.resolve(s),{execSync:n}=e.r(33405);if("darwin"===t.default.platform()){let e=n(`df -T "${i}" 2>/dev/null || df "${i}"`,{encoding:"utf-8",timeout:3e3}).trim().split("\n");if(e.length>=2){let t=e[1].split(/\s+/),r=t[0]?.toLowerCase()||"";if(r.includes("://")||r.includes("nfs")||r.includes("smb"))return r}}}catch{}return null}(u);c&&l.some(e=>c.toLowerCase().includes(e))&&p.push({kind:"filesystem_error",message:`Database path '${u}' is on a network filesystem (${c})`,path:u,found:c,fix:"Move the database file to a local SSD. WAL mode requires local filesystem with reliable fsync."});try{a.pragma("journal_mode = wal"),a.pragma("foreign_keys = 1"),a.pragma("busy_timeout = 5000"),a.pragma("synchronous = 1"),a.pragma("cache_size = -64000");let e=a.pragma("journal_mode",{simple:!0});"wal"!==e.toLowerCase()&&p.push({kind:"pragma_error",message:`Failed to set journal_mode=WAL (got '${e}')`,found:e,required:"wal",fix:"Ensure the database file is on a local filesystem and no other process holds an exclusive lock."})}catch(e){p.push({kind:"pragma_error",message:`Failed to apply required PRAGMAs: ${e.message}`,fix:"Check file permissions and ensure the database is not read-only."})}return p}e.s(["validateSQLiteEnvironment",()=>a])},62367,e=>{"use strict";let t={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["LOCAL_USER",0,t])},74949,e=>{"use strict";var t=e.i(17920),r=e.i(22734),s=e.i(14747),i=e.i(62367),n=e.i(36420);class l{expr;constructor(e){this.expr=e}}function o(e){return new l(e)}let a=null;function u(){if(a)return a;let e=process.env.SQLITE_DB_PATH||s.default.join(process.cwd(),"agx-board.db");r.default.existsSync(e),a=new t.default(e);let i=(0,n.validateSQLiteEnvironment)(a,e);if(i.length>0){let e=i.map(e=>` - ${e.message}${e.fix?` (fix: ${e.fix})`:""}`);throw Error(`SQLite startup validation failed:
|
|
2
2
|
${e.join("\n")}`)}return function(e){let t=s.default.join(process.cwd(),"db","sqlite","001_agx_board_schema.sql");if(!r.default.existsSync(t))return console.warn(`[sqlite] DDL not found at ${t}, skipping schema init`);let i=r.default.readFileSync(t,"utf-8");e.exec(i)}(a),a}let p=new Set(["definition","depends_on","input","metadata","models","open_blockers","output","payload","run_index","stage_decisions","swarm_models"]);function h(e){return void 0===e?null:e instanceof Date?e.toISOString():e&&"object"==typeof e?JSON.stringify(e):e}function c(e,t){return null==t?null:t instanceof Date?t.toISOString():p.has(e)?JSON.stringify(t):h(t)}function d(e){let t=(e||"*").trim();if(!t||"*"===t)return{columns:["*"],includeProjectRepos:!1};let r=t.includes("project_repos(*)"),s=t.replace(/project_repos\(\*\)/g,"").split(",").map(e=>e.trim()).filter(Boolean);return 0===s.length?{columns:["*"],includeProjectRepos:r}:{columns:s,includeProjectRepos:r}}class f{table;operation="select";filters=[];orderSpecs=[];limitValue=null;selectColumns="*";returningColumns=null;singleMode="none";payload=null;upsertOptions=null;constructor(e){this.table=e}select(e="*"){return"select"===this.operation?this.selectColumns=e:this.returningColumns=e||"*",this}insert(e){return this.operation="insert",this.payload=e,this}update(e){return this.operation="update",this.payload=e,this}delete(){return this.operation="delete",this}upsert(e,t){return this.operation="upsert",this.payload=e,this.upsertOptions=t||{},this}eq(e,t){return this.filters.push({op:"eq",column:e,value:t}),this}neq(e,t){return this.filters.push({op:"neq",column:e,value:t}),this}gt(e,t){return this.filters.push({op:"gt",column:e,value:t}),this}gte(e,t){return this.filters.push({op:"gte",column:e,value:t}),this}lt(e,t){return this.filters.push({op:"lt",column:e,value:t}),this}lte(e,t){return this.filters.push({op:"lte",column:e,value:t}),this}is(e,t){return this.filters.push({op:"is",column:e,value:t}),this}in(e,t){return this.filters.push({op:"in",column:e,value:t||[]}),this}contains(e,t){return this.filters.push({op:"contains",column:e,value:t}),this}or(e){return this.filters.push({op:"or",expression:e}),this}order(e,t){return this.orderSpecs.push({column:e,...t||{}}),this}limit(e){return this.limitValue=e,this}single(){return this.singleMode="single",this.execute()}maybeSingle(){return this.singleMode="maybeSingle",this.execute()}then(e,t){return this.execute().then(e,t)}buildWhere(e,t){for(let r of this.filters){if("or"===r.op){let s=r.expression.split(",").map(e=>e.trim()).filter(Boolean).map(e=>{var r;let[s,i,...n]=e.split("."),l="true"===(r=n.join("."))||"false"!==r&&("null"===r?null:r);return"eq"===i?(t.push(h(l)),`${s} = ?`):"neq"===i?(t.push(h(l)),`${s} <> ?`):"is"===i?null===l?`${s} IS NULL`:(t.push(h(l)),`${s} IS ?`):"ilike"===i||"like"===i?(t.push(h(l)),`${s} LIKE ?`):"1=1"});s.length>0&&e.push(`(${s.join(" OR ")})`);continue}if("eq"===r.op)t.push(h(r.value)),e.push(`${r.column} = ?`);else if("neq"===r.op)t.push(h(r.value)),e.push(`${r.column} <> ?`);else if("gt"===r.op)t.push(h(r.value)),e.push(`${r.column} > ?`);else if("gte"===r.op)t.push(h(r.value)),e.push(`${r.column} >= ?`);else if("lt"===r.op)t.push(h(r.value)),e.push(`${r.column} < ?`);else if("lte"===r.op)t.push(h(r.value)),e.push(`${r.column} <= ?`);else if("is"===r.op)null===r.value?e.push(`${r.column} IS NULL`):(t.push(h(r.value)),e.push(`${r.column} IS ?`));else if("contains"===r.op){let s=(r.value||[]).map(h);if(0===s.length)e.push("1=1");else{let i=s.map(()=>"?").join(", ");t.push(...s),e.push(`(SELECT COUNT(*) FROM json_each(${r.column}) WHERE json_each.value IN (${i})) = ${s.length}`)}}else if("in"===r.op)if(r.value&&0!==r.value.length){let s=(r.value||[]).map(h),i=s.map(()=>"?").join(", ");t.push(...s),e.push(`${r.column} IN (${i})`)}else e.push("1=0")}}executeSelect(){try{let e=u(),{columns:t,includeProjectRepos:r}=d(this.selectColumns),s=[],i=[];this.buildWhere(i,s);let n=`SELECT ${t.join(", ")} FROM ${this.table}`;if(i.length>0&&(n+=` WHERE ${i.join(" AND ")}`),this.orderSpecs.length>0){let e=this.orderSpecs.map(e=>{let t=!1===e.ascending?"DESC":"ASC";return!0===e.nullsFirst?`CASE WHEN ${e.column} IS NULL THEN 0 ELSE 1 END, ${e.column} ${t}`:!1===e.nullsFirst?`CASE WHEN ${e.column} IS NULL THEN 1 ELSE 0 END, ${e.column} ${t}`:`${e.column} ${t}`}).join(", ");n+=` ORDER BY ${e}`}"number"==typeof this.limitValue&&(s.push(this.limitValue),n+=" LIMIT ?");let l=e.prepare(n).all(...s);if(l=l.map(g),r&&"projects"===this.table&&l.length>0){let t=l.map(e=>e.id).filter(Boolean);if(t.length>0){let r=t.map(()=>"?").join(", "),s=e.prepare(`SELECT * FROM project_repos WHERE project_id IN (${r})`).all(...t),i=new Map;for(let e of s){let t=i.get(e.project_id)||[];t.push(e),i.set(e.project_id,t)}l=l.map(e=>({...e,project_repos:i.get(e.id)||[]}))}}if("single"===this.singleMode){if(0===l.length)return{data:null,error:{message:"No rows",code:"PGRST116"}};return{data:l[0],error:null}}if("maybeSingle"===this.singleMode)return{data:l[0]||null,error:null};return{data:l,error:null}}catch(e){return{data:null,error:e}}}executeInsertOrUpsert(){try{let e,t=u(),r=Array.isArray(this.payload)?this.payload:[this.payload];if(!r.length)return{data:[],error:null};let s=Array.from(r.reduce((e,t)=>{for(let r of Object.keys(t||{}))e.add(r);return e},new Set)),i=[],n=r.map(e=>{let t=s.map(t=>(i.push(c(t,e[t])),"?"));return`(${t.join(", ")})`}),l=`INSERT INTO ${this.table} (${s.join(", ")}) VALUES ${n.join(", ")}`;if("upsert"===this.operation){let e=this.upsertOptions?.onConflict||"",t=String(e).split(",").map(e=>e.trim()).filter(Boolean);if(t.length>0)if(this.upsertOptions?.ignoreDuplicates)l+=` ON CONFLICT (${t.join(", ")}) DO NOTHING`;else{let e=s.filter(e=>!t.includes(e)).map(e=>`${e} = EXCLUDED.${e}`);e.length>0?l+=` ON CONFLICT (${t.join(", ")}) DO UPDATE SET ${e.join(", ")}`:l+=` ON CONFLICT (${t.join(", ")}) DO NOTHING`}}if(this.returningColumns){let{columns:e}=d(this.returningColumns);l+=` RETURNING ${e.join(", ")}`}this.returningColumns?e=(e=t.prepare(l).all(...i)).map(g):(t.prepare(l).run(...i),e=[]);let o=this.returningColumns?e:null;if("single"===this.singleMode||"maybeSingle"===this.singleMode)return{data:o&&o[0]||null,error:null};return{data:o,error:null}}catch(e){return{data:null,error:e}}}executeUpdateOrDelete(){try{let e,t=u(),r=[],s=[],i=[];this.buildWhere(i,s);let n="";if("update"===this.operation){let e=Object.keys(this.payload||{}).map(e=>{let t=this.payload[e];return t instanceof l?`${e} = ${t.expr}`:(r.push(c(e,t)),`${e} = ?`)});n=`UPDATE ${this.table} SET ${e.join(", ")}`}else n=`DELETE FROM ${this.table}`;i.length>0&&(n+=` WHERE ${i.join(" AND ")}`);let o=[...r,...s];if(this.returningColumns){let{columns:e}=d(this.returningColumns);n+=` RETURNING ${e.join(", ")}`}this.returningColumns?e=(e=t.prepare(n).all(...o)).map(g):(t.prepare(n).run(...o),e=[]);let a=this.returningColumns?e:null;if("single"===this.singleMode){if(!a||0===a.length)return{data:null,error:{message:"No rows",code:"PGRST116"}};return{data:a[0],error:null}}if("maybeSingle"===this.singleMode)return{data:a?.[0]||null,error:null};return{data:a,error:null}}catch(e){return{data:null,error:e}}}async execute(){return"select"===this.operation?this.executeSelect():"insert"===this.operation||"upsert"===this.operation?this.executeInsertOrUpsert():this.executeUpdateOrDelete()}}let m=new Set([...p,"depends_on","open_blockers","swarm_models","run_index","stage_decisions","definition","metadata","models","config","policy","done_criteria","outputs","task_snapshot","data_mapping"]);function g(e){if(!e||"object"!=typeof e)return e;let t={...e};for(let e of Object.keys(t)){if(m.has(e)&&"string"==typeof t[e])try{t[e]=JSON.parse(t[e])}catch{}("swarm"===e||"is_default"===e||"is_public"===e||"had_graph_before"===e)&&(0===t[e]?t[e]=!1:1===t[e]&&(t[e]=!0))}return t}function S(){return{from:e=>new f(e),auth:{getUser:async()=>({data:{user:{id:i.LOCAL_USER.id,email:i.LOCAL_USER.email,user_metadata:{name:i.LOCAL_USER.name,full_name:i.LOCAL_USER.name}}},error:null}),exchangeCodeForSession:async()=>({error:null}),refreshSession:async()=>({data:{session:{access_token:"local-token",refresh_token:"local-refresh",expires_in:3600},user:{id:i.LOCAL_USER.id,email:i.LOCAL_USER.email}},error:null})},async rpc(e,t){if("check_rate_limit"!==e)return{data:null,error:{message:`Unsupported rpc: ${e}`}};let r=u(),s=t.p_user_id,i=t.p_endpoint,n=Number(t.p_limit||60),l=Number(t.p_window_seconds||60),o=new Date(Math.floor(new Date().getTime()/(1e3*l))*l*1e3);try{let e=`
|
|
3
3
|
INSERT INTO rate_limits (user_id, endpoint, window_start, request_count)
|
|
4
4
|
VALUES (?, ?, ?, 1)
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
module.exports=[41381,41754,e=>{"use strict";let t={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["LOCAL_USER",0,t],41381);var r=e.i(
|
|
1
|
+
module.exports=[41381,41754,e=>{"use strict";let t={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["LOCAL_USER",0,t],41381);var r=e.i(17920),n=e.i(22734),o=e.i(14747),i=e.i(24246);class a{expr;constructor(e){this.expr=e}}function s(e){return new a(e)}let l=null;function d(){if(l)return l;let e=process.env.SQLITE_DB_PATH||o.default.join(process.cwd(),"agx-board.db");n.default.existsSync(e),l=new r.default(e);let t=(0,i.validateSQLiteEnvironment)(l,e);if(t.length>0){let e=t.map(e=>` - ${e.message}${e.fix?` (fix: ${e.fix})`:""}`);throw Error(`SQLite startup validation failed:
|
|
2
2
|
${e.join("\n")}`)}return function(e){let t=o.default.join(process.cwd(),"db","sqlite","001_agx_board_schema.sql");if(!n.default.existsSync(t))return console.warn(`[sqlite] DDL not found at ${t}, skipping schema init`);let r=n.default.readFileSync(t,"utf-8");e.exec(r)}(l),l}let u=new Set(["definition","depends_on","input","metadata","models","open_blockers","output","payload","run_index","stage_decisions","swarm_models"]);function c(e){return void 0===e?null:e instanceof Date?e.toISOString():e&&"object"==typeof e?JSON.stringify(e):e}function p(e,t){return null==t?null:t instanceof Date?t.toISOString():u.has(e)?JSON.stringify(t):c(t)}function f(e){let t=(e||"*").trim();if(!t||"*"===t)return{columns:["*"],includeProjectRepos:!1};let r=t.includes("project_repos(*)"),n=t.replace(/project_repos\(\*\)/g,"").split(",").map(e=>e.trim()).filter(Boolean);return 0===n.length?{columns:["*"],includeProjectRepos:r}:{columns:n,includeProjectRepos:r}}class g{table;operation="select";filters=[];orderSpecs=[];limitValue=null;selectColumns="*";returningColumns=null;singleMode="none";payload=null;upsertOptions=null;constructor(e){this.table=e}select(e="*"){return"select"===this.operation?this.selectColumns=e:this.returningColumns=e||"*",this}insert(e){return this.operation="insert",this.payload=e,this}update(e){return this.operation="update",this.payload=e,this}delete(){return this.operation="delete",this}upsert(e,t){return this.operation="upsert",this.payload=e,this.upsertOptions=t||{},this}eq(e,t){return this.filters.push({op:"eq",column:e,value:t}),this}neq(e,t){return this.filters.push({op:"neq",column:e,value:t}),this}gt(e,t){return this.filters.push({op:"gt",column:e,value:t}),this}gte(e,t){return this.filters.push({op:"gte",column:e,value:t}),this}lt(e,t){return this.filters.push({op:"lt",column:e,value:t}),this}lte(e,t){return this.filters.push({op:"lte",column:e,value:t}),this}is(e,t){return this.filters.push({op:"is",column:e,value:t}),this}in(e,t){return this.filters.push({op:"in",column:e,value:t||[]}),this}contains(e,t){return this.filters.push({op:"contains",column:e,value:t}),this}or(e){return this.filters.push({op:"or",expression:e}),this}order(e,t){return this.orderSpecs.push({column:e,...t||{}}),this}limit(e){return this.limitValue=e,this}single(){return this.singleMode="single",this.execute()}maybeSingle(){return this.singleMode="maybeSingle",this.execute()}then(e,t){return this.execute().then(e,t)}buildWhere(e,t){for(let r of this.filters){if("or"===r.op){let n=r.expression.split(",").map(e=>e.trim()).filter(Boolean).map(e=>{var r;let[n,o,...i]=e.split("."),a="true"===(r=i.join("."))||"false"!==r&&("null"===r?null:r);return"eq"===o?(t.push(c(a)),`${n} = ?`):"neq"===o?(t.push(c(a)),`${n} <> ?`):"is"===o?null===a?`${n} IS NULL`:(t.push(c(a)),`${n} IS ?`):"ilike"===o||"like"===o?(t.push(c(a)),`${n} LIKE ?`):"1=1"});n.length>0&&e.push(`(${n.join(" OR ")})`);continue}if("eq"===r.op)t.push(c(r.value)),e.push(`${r.column} = ?`);else if("neq"===r.op)t.push(c(r.value)),e.push(`${r.column} <> ?`);else if("gt"===r.op)t.push(c(r.value)),e.push(`${r.column} > ?`);else if("gte"===r.op)t.push(c(r.value)),e.push(`${r.column} >= ?`);else if("lt"===r.op)t.push(c(r.value)),e.push(`${r.column} < ?`);else if("lte"===r.op)t.push(c(r.value)),e.push(`${r.column} <= ?`);else if("is"===r.op)null===r.value?e.push(`${r.column} IS NULL`):(t.push(c(r.value)),e.push(`${r.column} IS ?`));else if("contains"===r.op){let n=(r.value||[]).map(c);if(0===n.length)e.push("1=1");else{let o=n.map(()=>"?").join(", ");t.push(...n),e.push(`(SELECT COUNT(*) FROM json_each(${r.column}) WHERE json_each.value IN (${o})) = ${n.length}`)}}else if("in"===r.op)if(r.value&&0!==r.value.length){let n=(r.value||[]).map(c),o=n.map(()=>"?").join(", ");t.push(...n),e.push(`${r.column} IN (${o})`)}else e.push("1=0")}}executeSelect(){try{let e=d(),{columns:t,includeProjectRepos:r}=f(this.selectColumns),n=[],o=[];this.buildWhere(o,n);let i=`SELECT ${t.join(", ")} FROM ${this.table}`;if(o.length>0&&(i+=` WHERE ${o.join(" AND ")}`),this.orderSpecs.length>0){let e=this.orderSpecs.map(e=>{let t=!1===e.ascending?"DESC":"ASC";return!0===e.nullsFirst?`CASE WHEN ${e.column} IS NULL THEN 0 ELSE 1 END, ${e.column} ${t}`:!1===e.nullsFirst?`CASE WHEN ${e.column} IS NULL THEN 1 ELSE 0 END, ${e.column} ${t}`:`${e.column} ${t}`}).join(", ");i+=` ORDER BY ${e}`}"number"==typeof this.limitValue&&(n.push(this.limitValue),i+=" LIMIT ?");let a=e.prepare(i).all(...n);if(a=a.map(w),r&&"projects"===this.table&&a.length>0){let t=a.map(e=>e.id).filter(Boolean);if(t.length>0){let r=t.map(()=>"?").join(", "),n=e.prepare(`SELECT * FROM project_repos WHERE project_id IN (${r})`).all(...t),o=new Map;for(let e of n){let t=o.get(e.project_id)||[];t.push(e),o.set(e.project_id,t)}a=a.map(e=>({...e,project_repos:o.get(e.id)||[]}))}}if("single"===this.singleMode){if(0===a.length)return{data:null,error:{message:"No rows",code:"PGRST116"}};return{data:a[0],error:null}}if("maybeSingle"===this.singleMode)return{data:a[0]||null,error:null};return{data:a,error:null}}catch(e){return{data:null,error:e}}}executeInsertOrUpsert(){try{let e,t=d(),r=Array.isArray(this.payload)?this.payload:[this.payload];if(!r.length)return{data:[],error:null};let n=Array.from(r.reduce((e,t)=>{for(let r of Object.keys(t||{}))e.add(r);return e},new Set)),o=[],i=r.map(e=>{let t=n.map(t=>(o.push(p(t,e[t])),"?"));return`(${t.join(", ")})`}),a=`INSERT INTO ${this.table} (${n.join(", ")}) VALUES ${i.join(", ")}`;if("upsert"===this.operation){let e=this.upsertOptions?.onConflict||"",t=String(e).split(",").map(e=>e.trim()).filter(Boolean);if(t.length>0)if(this.upsertOptions?.ignoreDuplicates)a+=` ON CONFLICT (${t.join(", ")}) DO NOTHING`;else{let e=n.filter(e=>!t.includes(e)).map(e=>`${e} = EXCLUDED.${e}`);e.length>0?a+=` ON CONFLICT (${t.join(", ")}) DO UPDATE SET ${e.join(", ")}`:a+=` ON CONFLICT (${t.join(", ")}) DO NOTHING`}}if(this.returningColumns){let{columns:e}=f(this.returningColumns);a+=` RETURNING ${e.join(", ")}`}this.returningColumns?e=(e=t.prepare(a).all(...o)).map(w):(t.prepare(a).run(...o),e=[]);let s=this.returningColumns?e:null;if("single"===this.singleMode||"maybeSingle"===this.singleMode)return{data:s&&s[0]||null,error:null};return{data:s,error:null}}catch(e){return{data:null,error:e}}}executeUpdateOrDelete(){try{let e,t=d(),r=[],n=[],o=[];this.buildWhere(o,n);let i="";if("update"===this.operation){let e=Object.keys(this.payload||{}).map(e=>{let t=this.payload[e];return t instanceof a?`${e} = ${t.expr}`:(r.push(p(e,t)),`${e} = ?`)});i=`UPDATE ${this.table} SET ${e.join(", ")}`}else i=`DELETE FROM ${this.table}`;o.length>0&&(i+=` WHERE ${o.join(" AND ")}`);let s=[...r,...n];if(this.returningColumns){let{columns:e}=f(this.returningColumns);i+=` RETURNING ${e.join(", ")}`}this.returningColumns?e=(e=t.prepare(i).all(...s)).map(w):(t.prepare(i).run(...s),e=[]);let l=this.returningColumns?e:null;if("single"===this.singleMode){if(!l||0===l.length)return{data:null,error:{message:"No rows",code:"PGRST116"}};return{data:l[0],error:null}}if("maybeSingle"===this.singleMode)return{data:l?.[0]||null,error:null};return{data:l,error:null}}catch(e){return{data:null,error:e}}}async execute(){return"select"===this.operation?this.executeSelect():"insert"===this.operation||"upsert"===this.operation?this.executeInsertOrUpsert():this.executeUpdateOrDelete()}}let m=new Set([...u,"depends_on","open_blockers","swarm_models","run_index","stage_decisions","definition","metadata","models","config","policy","done_criteria","outputs","task_snapshot","data_mapping"]);function w(e){if(!e||"object"!=typeof e)return e;let t={...e};for(let e of Object.keys(t)){if(m.has(e)&&"string"==typeof t[e])try{t[e]=JSON.parse(t[e])}catch{}("swarm"===e||"is_default"===e||"is_public"===e||"had_graph_before"===e)&&(0===t[e]?t[e]=!1:1===t[e]&&(t[e]=!0))}return t}function h(){return{from:e=>new g(e),auth:{getUser:async()=>({data:{user:{id:t.id,email:t.email,user_metadata:{name:t.name,full_name:t.name}}},error:null}),exchangeCodeForSession:async()=>({error:null}),refreshSession:async()=>({data:{session:{access_token:"local-token",refresh_token:"local-refresh",expires_in:3600},user:{id:t.id,email:t.email}},error:null})},async rpc(e,t){if("check_rate_limit"!==e)return{data:null,error:{message:`Unsupported rpc: ${e}`}};let r=d(),n=t.p_user_id,o=t.p_endpoint,i=Number(t.p_limit||60),a=Number(t.p_window_seconds||60),s=new Date(Math.floor(new Date().getTime()/(1e3*a))*a*1e3);try{let e=`
|
|
3
3
|
INSERT INTO rate_limits (user_id, endpoint, window_start, request_count)
|
|
4
4
|
VALUES (?, ?, ?, 1)
|
|
5
5
|
ON CONFLICT (user_id, endpoint, window_start)
|
|
6
6
|
DO UPDATE SET request_count = rate_limits.request_count + 1
|
|
7
7
|
RETURNING request_count
|
|
8
|
-
`,t=r.prepare(e).get(n,o,s.toISOString());return{data:Number(t?.request_count||0)<=i,error:null}}catch(e){return{data:!1,error:e}}},channel:()=>({on(){return this},subscribe(e){return e&&e("SUBSCRIBED"),this}}),removeChannel(){}}}e.s(["SqlExpression",()=>a,"createAdminDbClientSQLite",()=>h,"getSQLiteDb",()=>d,"sqlExpr",()=>s],41754)},8112,14927,14688,e=>{"use strict";function t(){let{createAdminDbClientSQLite:t}=e.r(41754);return t()}e.i(41381),e.s(["createAdminDbClient",()=>t],14927);let r="Waiting on dependencies",n=[{value:"task.created",label:"Task created",description:"Fires immediately when a new task is added to the queue."},{value:"task.stage_complete",label:"Stage completed",description:"Emitted whenever a stage finishes and the task advances."},{value:"task.completed",label:"Task completed",description:"When the task reaches a completed status (done)."},{value:"task.failed",label:"Task failed",description:"When the task may have errored, including cancellations."},{value:"task.blocked",label:"Task blocked",description:"When the agent raises the task as blocked awaiting manual input."}].map(e=>e.value);class o extends Error{}function i(e){let t=Array.isArray(e.events)?e.events.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>n.includes(e)):[];return{id:String(e.id),user_id:String(e.user_id),url:String(e.url),name:null!=e.name?String(e.name):null,events:t,enabled:!1!==e.enabled,created_at:String(e.created_at),updated_at:String(e.updated_at)}}async function a(e,t){if(function(e,t){if(!e||"object"!=typeof e)return!1;let r=e.code,n="string"==typeof e.message?e.message:"";return"42P01"===r||"PGRST205"===r||n.includes(`relation "${t}" does not exist`)||n.includes(`Could not find the table 'agx.${t}'`)||n.includes(`Could not find the table 'public.${t}'`)}(t,e))throw new o(`Missing relation: ${e}`);throw t}async function s(e){let r=t(),{data:n,error:o}=await r.from("notification_webhooks").select("*").eq("user_id",e).order("created_at",{ascending:!1});return(o&&await a("notification_webhooks",o),n)?(Array.isArray(n)?n:[n]).map(i):[]}async function l(e){if(!e.userId)return;let t=[];try{t=await s(e.userId)}catch(e){if(e instanceof o)return void console.debug("[notifications] notification_webhooks schema not ready, skipping");console.error("[notifications] failed to load webhooks",e);return}let r=t.filter(t=>t.enabled&&t.events.includes(e.eventType));if(!r.length)return;let n=e.timestamp||new Date().toISOString(),i={eventType:e.eventType,taskId:e.taskId,userId:e.userId,title:e.title||null,slug:e.slug||null,stage:e.stage||null,previousStage:e.previousStage||null,nextStage:e.nextStage||null,status:e.status||null,error:e.error||null,timestamp:n,details:e.details||{}};await Promise.all(r.map(async e=>{try{let t=await fetch(e.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});t.ok||console.error(`[notifications] webhook ${e.url} responded with ${t.status}`)}catch(t){console.error(`[notifications] failed to send to ${e.url}`,t)}}))}e.s(["notifyTaskEvent",()=>l],14688);var d=e.i(54799);function u(e,t){if(!e)return!1;let r="string"==typeof e.message?e.message:"";return"42P01"===e.code||"PGRST205"===e.code||r.includes(`relation "${t}" does not exist`)||r.includes(`Could not find the table 'agx.${t}'`)||r.includes(`Could not find the table 'public.${t}'`)}async function c(e){let r=t(),{data:n,error:o}=await r.from("user_settings").select("*").eq("user_id",e).maybeSingle();if(o){if(u(o,"user_settings"))return null;throw o}return n||null}async function p(e,r,n){let o=n?.onlyIfNewer!==!1,i=function(e){if("string"==typeof e){let t=Date.parse(e);if(Number.isFinite(t))return new Date(t).toISOString()}return new Date().toISOString()}(r.changed_at),a=await c(e);if(o&&a?.changed_at){let e=Date.parse(a.changed_at),t=Date.parse(i);if(Number.isFinite(e)&&Number.isFinite(t)&&t<=e)return{settings:a,updated:!1}}let s={user_id:e,default_provider:r.default_provider??a?.default_provider??null,models:r.models??a?.models??{},provenance:r.provenance,changed_at:i},l=t(),{error:d}=await l.from("user_settings").upsert(s,{onConflict:"user_id"});if(d)throw d;let u=await c(e);if(!u)throw Error("Failed to load user_settings after upsert");return{settings:u,updated:!0}}function f(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"task"}async function g(e,t){let r=f(e);for(let n=0;n<5;n++){let{data:n,error:o}=await t.from("tasks").select("id").eq("slug",r).limit(1);if(o)throw o;if(!n||0===n.length)return r;let i=Math.random().toString(36).slice(2,6);r=`${f(e)}-${i}`.slice(0,48)}return`${f(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}async function m(e,t,r,n){let o=f(e);for(let i=0;i<5;i++){let i=r.from("projects").select("id").eq("slug",o).eq("user_id",t);n&&(i=i.neq("id",n));let{data:a,error:s}=await i.limit(1);if(s)throw s;if(!a||0===a.length)return o;let l=Math.random().toString(36).slice(2,6);o=`${f(e)}-${l}`.slice(0,48)}return`${f(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}function w(e){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return e.map(e=>String(e||"").trim()).filter(Boolean)}catch{}return t.split(",").map(e=>e.trim()).filter(Boolean)}function h(e){let t;if(!e)return[];if(Array.isArray(e))t=e.map(e=>"string"==typeof e?e:null==e?"":String(e)).filter(Boolean);else{if("string"!=typeof e)return[];t=w(e)}return Array.from(new Set(t.map(e=>e.trim()).filter(Boolean)))}function y(e){let t=e.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!t)return{frontmatter:{},body:e};let r={};for(let e of t[1].split("\n")){let t=e.indexOf(":");if(t>0){let n=e.slice(0,t).trim(),o=e.slice(t+1).trim();if("depends_on"===n){r[n]=w(o);continue}"true"===o?r[n]=!0:"false"===o?r[n]=!1:/^\d+$/.test(o)?r[n]=parseInt(o):r[n]=o}}return{frontmatter:r,body:t[2]}}async function k(e,r,n){if(!e||!r?.length)return;let o=n??t(),i=new Set,a=[...r];for(;a.length;){let t=a.pop();if(!t)continue;if(t===e)throw Error("Circular dependency detected");if(i.has(t))continue;i.add(t);let{data:r,error:n}=await o.from("tasks").select("depends_on").eq("id",t).maybeSingle();if(n){if("PGRST116"===n.code||"42703"===n.code)continue;throw n}if(r)for(let e of Array.isArray(r.depends_on)?r.depends_on:[])e&&!i.has(e)&&a.push(e)}}function _(e){let{body:t}=y(e),r=t.match(/^#\s+(.+)$/m);return r?r[1]:void 0}function S(e){return String(e||"").replace(/^#\s+.+(\r?\n|$)/,"").trim()}async function T(e,n){var o;let i=Array.isArray(e.depends_on)?e.depends_on:[];if(!i.length)return;let a=t(),{data:s,error:l}=await a.from("tasks").select("id, title, slug, status, stage").in("id",i);if(l)return;let d=(Array.isArray(s)?s:[]).filter(e=>"completed"!==(e?.status||""));if(d.length){let t=function(e){if(!e||0===e.length)return"";let t=e.slice(0,3).map(e=>`${e.title?e.title:e.slug?e.slug:e.id?e.id:"(unknown)"}${(e.status?` (${e.status})`:null)??""}`),n=`${r}: ${t.join(", ")}`;return e.length>3&&(n+=` +${e.length-3} more`),n}(d),o=a.from("tasks").update({status:"blocked",blocked_reason:t}).eq("id",e.id);n&&(o=o.eq("user_id",n));let{error:i}=await o;if(i&&"42703"!==i.code)throw i;return}if("blocked"===e.status&&"string"==typeof(o=e.blocked_reason)&&o.startsWith(r)){let t=a.from("tasks").update({status:"queued",blocked_reason:null}).eq("id",e.id);n&&(t=t.eq("user_id",n));let{error:r}=await t;if(r&&"42703"!==r.code)throw r}}async function $(e,r){console.log("getTasks called with userId:",e);let n=t().from("tasks").select("*").order("priority",{ascending:!0,nullsFirst:!1}).order("created_at",{ascending:!1});if(e&&(n=n.eq("user_id",e)),r?.project&&(n=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(r.project)?n.eq("project_id",r.project):n.eq("project",r.project)),r?.orphan&&(n=n.is("project_id",null)),r?.status&&(n=n.eq("status",r.status)),r?.search){let e=r.search;n=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)?n.or(`id.eq.${e},slug.ilike.%${e}%,title.ilike.%${e}%`):n.or(`id.ilike.%${e}%,slug.ilike.%${e}%,title.ilike.%${e}%`)}let{data:o,error:i}=await n;if(i)throw i;let a=o||[];return r?.orphan?a.filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t}):a}async function b(e,r){let n=t().from("tasks").select("*").eq("id",e);r&&(n=n.eq("user_id",r));let{data:o,error:i}=await n.single();if(i){if("PGRST116"===i.code)return null;throw i}return o}async function x(e,r){let n=t().from("tasks").select("*").eq("slug",e);r&&(n=n.eq("user_id",r));let{data:o,error:i}=await n.single();if(i){if("PGRST116"===i.code)return null;throw i}return o}async function v(e,r,n){let o=t(),{frontmatter:i,body:a}=y(e),s="boolean"==typeof i.swarm?i.swarm:void 0,u=n?.title||_(e),c=String(i.slug||u||"task"),p=await g(c,o),f=n?.projectId||("string"==typeof i.project_id?i.project_id:void 0),m="string"==typeof i.workflow_id?i.workflow_id:void 0,w="string"==typeof i.project?i.project:void 0;if(!w&&f){let{data:e}=await o.from("projects").select("slug").eq("id",f).single();e?.slug&&(w=e.slug)}/^---\n/.test(e);let $="string"==typeof i.provider?i.provider:null,x="string"==typeof i.model?i.model:null,v="string"==typeof i.engine?i.engine:null,I="ai"===i.created_by?"ai":"user",E=h(i.depends_on),j=h(n?.dependsOn),q=j.length>0?j:E,C={id:(0,d.randomUUID)(),content:e,description:S(a),title:u,slug:p,status:i.status||"queued",stage:i.stage||"intake",project:w||null,...void 0!==f?{project_id:f}:{},...void 0!==m?{workflow_id:m}:{},priority:i.priority,engine:v,provider:$,model:x,swarm:s,swarm_models:n?.swarmModels??null,depends_on:q.length?q:null,created_by:I,user_id:r,current_plan:n?.currentPlan||null,open_blockers:n?.openBlockers||[],next_action:n?.nextAction||null,version:1};await k(C.id,q,o);let{data:N,error:O}=await o.from("tasks").insert(C).select().single();if(O&&"42703"===O.code){let{swarm_models:e,swarm:t,workflow_id:r,current_plan:n,open_blockers:i,next_action:a,version:s,depends_on:l,...d}=C;({data:N,error:O}=await o.from("tasks").insert(d).select().single())}if(O)throw O;if(!N)throw Error("Failed to create task");await T(N,r);let A=await b(N.id,r)||N,L=r||A.user_id;if(L){let e=A.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(A.depends_on)?A.depends_on:[],project:A.project||null,projectId:A.project_id||null,workflowId:A.workflow_id||null,createdBy:A.created_by||null};l({taskId:A.id,userId:L,eventType:"task.created",title:A.title||null,slug:A.slug||null,stage:A.stage||null,status:A.status||null,timestamp:e,details:t})}return A}async function I(e,r,n,o){let i=t(),{frontmatter:a,body:s}=y(r),d="boolean"==typeof a.swarm?a.swarm:void 0,u=_(r),c="string"==typeof a.project_id?a.project_id:void 0,p=Object.prototype.hasOwnProperty.call(a,"provider"),f=Object.prototype.hasOwnProperty.call(a,"model"),g=Object.prototype.hasOwnProperty.call(a,"workflow_id"),m=Object.prototype.hasOwnProperty.call(a,"depends_on"),w=h(a.depends_on),$=h(o?.dependsOn),x=o?.dependsOn!==void 0||m,v=o?.dependsOn!==void 0?$:w,I={content:r,description:S(s),title:u,status:a.status,stage:a.stage,project:a.project,...void 0!==c?{project_id:c}:{},workflow_id:g?a.workflow_id:void 0,priority:a.priority,engine:a.engine,provider:p?a.provider:null,model:f?a.model:null,swarm:d,swarm_models:o?.swarmModels??void 0,...x?{depends_on:v.length?v:null}:{},updated_at:new Date().toISOString(),current_plan:o?.currentPlan??void 0,open_blockers:o?.openBlockers??void 0,next_action:o?.nextAction??void 0};Object.keys(I).forEach(e=>{void 0===I[e]&&delete I[e]}),x&&await k(e,v,i);let E=i.from("tasks").update({...I,version:i.rpc("increment_version")}).eq("id",e);n&&(E=E.eq("user_id",n)),o?.expectedVersion!==void 0&&(E=E.eq("version",o.expectedVersion));let{data:j,error:q}=await i.from("tasks").update({...I}).eq("id",e).select().maybeSingle();if(q&&console.error(`[db.updateTask] error updating task ${e}:`,q),j||q||console.warn(`[db.updateTask] UPDATE returned 0 rows for task ${e}, payload keys:`,Object.keys(I)),q&&"42703"===q.code){let{swarm_models:t,swarm:r,workflow_id:o,current_plan:a,open_blockers:s,next_action:l,version:d,depends_on:u,...c}=I,p=i.from("tasks").update(c).eq("id",e);n&&(p=p.eq("user_id",n)),{data:j,error:q}=await p.select().maybeSingle()}if(q)throw q;if(!j){let t=await b(e,n);if(!t)throw Error(`Task ${e} not found`);return t}await T(j,n);let C=await b(j.id,n)||j,N=n||C.user_id;if(N){let e=C.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(C.depends_on)?C.depends_on:[],project:C.project||null,projectId:C.project_id||null,workflowId:C.workflow_id||null,createdBy:C.created_by||null};l({taskId:C.id,userId:N,eventType:"task.created",title:C.title||null,slug:C.slug||null,stage:C.stage||null,status:C.status||null,timestamp:e,details:t})}return C}async function E(e,r,n=25){let o=t(),{data:i,error:a}=await o.from("tasks").select("run_index").eq("id",e).single();if(a){if(a?.code==="42703")return;throw a}let s=[r,...Array.isArray(i.run_index)?i.run_index:[]].slice(0,n),{error:l}=await o.from("tasks").update({run_index:s}).eq("id",e);if(l){if(l?.code==="42703")return;throw l}}async function j(e,r){let n=t().from("tasks").delete().eq("id",e);r&&(n=n.eq("user_id",r));let{error:o}=await n;if(o)throw o}async function q(e){let r=t().from("tasks").select("*").eq("status","queued").order("priority",{ascending:!0,nullsFirst:!1}).order("created_at",{ascending:!0}).limit(1);e&&(r=r.eq("engine",e));let{data:n,error:o}=await r.single();if(o){if("PGRST116"===o.code)return null;throw o}return n}async function C(e){let r=t().from("projects").select("*, project_repos(*)");e&&(r=r.eq("user_id",e));let{data:n,error:o}=await r;if(o){if(u(o,"projects"))return[];throw o}return(n||[]).map(e=>({...e,repos:e.project_repos??[]}))}async function N(e,r){let n=t().from("projects").select("*").eq("slug",e);r&&(n=n.eq("user_id",r));let{data:o,error:i}=await n.maybeSingle();if(i){if(u(i,"projects"))return null;throw i}return o||null}async function O(e){let r=t(),{data:n,error:o}=await r.from("project_repos").select("*").eq("project_id",e);if(o){if(u(o,"project_repos"))return[];throw o}return n||[]}let A=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function L(e,r){let n=t(),o=A.test(e),i=n.from("projects").select("*");i=o?i.eq("id",e):i.eq("slug",e),r&&(i=i.eq("user_id",r));let a=await i.maybeSingle();if(a.error){if(u(a.error,"projects"))return null;throw a.error}let s=a.data;if(!s)return null;let l=await O(s.id);return{...s,repos:l}}async function D(e,t,r){if(!t.length)return[];let n=t.map(t=>({project_id:e,name:t.name,path:t.path??null,notes:t.notes??null})),{data:o,error:i}=await r.from("project_repos").insert(n).select("*");if(i){if(u(i,"project_repos"))return[];throw i}return o||[]}async function R(e,r,n){if(!r.name?.trim())throw Error("Project name is required");let o=n??t(),i=r.name.trim()||"project",a=await m(i,e,o),s={user_id:e,name:r.name.trim(),slug:a,description:r.description??null,workflow_id:r.workflow_id??null},{data:l,error:d}=await o.from("projects").insert(s).select("*").single();if(d)throw d;let u=await D(l.id,r.repos??[],o);return{...l,repos:u}}async function P(e,r,n,o){let i=o??t(),a=A.test(e),s=e;if(!a){let t=await N(e,r);if(!t)return null;s=t.id}let l={};if(void 0!==n.name){let e=n.name?.trim();if(!e)throw Error("Project name cannot be empty");l.name=e}if(void 0!==n.slug){let e=n.slug?.trim();e&&(l.slug=e)}if(void 0!==n.description&&(l.description=n.description),void 0!==n.metadata&&(l.metadata=n.metadata),void 0!==n.ci_cd_info&&(l.ci_cd_info=n.ci_cd_info),void 0!==n.workflow_id&&(l.workflow_id=n.workflow_id),Object.keys(l).length){let{error:e}=await i.from("projects").update(l).eq("id",s).eq("user_id",r);if(e)throw e}if(n.repos){let{error:e}=await i.from("project_repos").delete().eq("project_id",s);if(e&&!u(e,"project_repos"))throw e;await D(s,n.repos,i)}return L(s,r)}async function W(e,r,n){let o=n??t(),{error:i}=await o.from("projects").delete().eq("id",e).eq("user_id",r);if(i)throw i}async function U(e,r,n){let o=n??t(),{data:i,error:a}=await o.from("projects").select("id, slug").eq("id",e).eq("user_id",r).maybeSingle();if(a)throw a;if(!i)throw Error("Project not found");let{data:s,error:l}=await o.from("tasks").select("id, project").eq("user_id",r).is("project_id",null);if(l)throw l;let d=String(i.slug||"").trim().toLowerCase(),u=(s||[]).filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t||t===d}).map(e=>e.id);if(!u.length)return{updatedCount:0,taskIds:[]};let{error:c}=await o.from("tasks").update({project:i.slug,project_id:i.id,updated_at:new Date().toISOString()}).eq("user_id",r).is("project_id",null).in("id",u);if(c)throw c;return{updatedCount:u.length,taskIds:u}}let M="00000000-0000-0000-0000-000000000001",B=[{id:"00000000-0000-0000-0001-000000000001",name:"INTAKE",label:"Intake",prompt:"New task. Triage, scope, and prepare for work.",position:0,node_type:"step"},{id:"00000000-0000-0000-0001-000000000002",name:"PROGRESS",label:"Progress",prompt:"Task is actively being worked on.",position:1,node_type:"step"},{id:"00000000-0000-0000-0001-000000000003",name:"DONE",label:"Done",prompt:"Task completed.",position:2,node_type:"terminal"}],F=new Map(B.map(e=>[e.id,e]));async function G(e){let r=t(),{error:n}=await r.from("workflows").upsert({id:M,user_id:e||"00000000-0000-0000-0000-000000000000",name:"Default Workflow",definition:{}},{onConflict:"id"});if(n)throw n;let{error:o}=await r.from("workflow_nodes").upsert(B.map(e=>({...e,workflow_id:M,metadata:{}})),{onConflict:"id"});if(o)throw o;let{error:i}=await r.from("workflow_transitions").upsert([{workflow_id:M,from_node_id:"00000000-0000-0000-0001-000000000001",to_node_id:"00000000-0000-0000-0001-000000000002",condition:"done",priority:0,metadata:{}},{workflow_id:M,from_node_id:"00000000-0000-0000-0001-000000000002",to_node_id:"00000000-0000-0000-0001-000000000003",condition:"done",priority:0,metadata:{}}],{onConflict:"workflow_id,from_node_id,condition"});if(i)throw i}async function Q(e){let r=t(),{data:n,error:o}=await r.from("workflows").select("*").or(`user_id.eq.${e},user_id.eq.00000000-0000-0000-0000-000000000000`).order("created_at",{ascending:!1});if(o){if(u(o,"workflows"))return[];throw o}return n||[]}async function H(e,r){let n=t().from("workflows").select("*").eq("id",e),{data:o,error:i}=await n.maybeSingle();if(i){if(u(i,"workflows"))return null;throw i}return o}async function V(e,r,n){let o=t(),i={updated_at:new Date().toISOString()};void 0!==n.definition&&(i.definition=n.definition),void 0!==n.name&&(i.name=n.name),void 0!==n.description&&(i.description=n.description);let{data:a,error:s}=await o.from("workflows").update(i).eq("id",e).select().single();if(s)throw s;return a}async function J(e){let r=t(),{data:n,error:o}=await r.from("workflow_nodes").select("*").eq("workflow_id",e).order("position",{ascending:!0});if(o){if(u(o,"workflow_nodes"))return[];throw o}return n||[]}async function Y(e,r,n){let o=t();if(e===M&&await G(r),!await H(e,r))throw Error("Workflow not found");if(e===M){let t=n.map(t=>{let r=F.get(t.id);return r?{id:t.id,workflow_id:e,name:r.name,label:r.label,position:r.position,node_type:r.node_type,prompt:t.prompt??r.prompt,provider:t.provider??null,model:t.model??null,metadata:t.metadata??{}}:null}).filter(e=>!!e);if(t.length>0){let{error:e}=await o.from("workflow_nodes").upsert(t,{onConflict:"id"});if(e)throw e}return J(e)}return await Promise.all(n.map(async t=>{let r={};if(void 0!==t.prompt&&(r.prompt=t.prompt),void 0!==t.provider&&(r.provider=t.provider),void 0!==t.model&&(r.model=t.model),void 0!==t.metadata&&(r.metadata=t.metadata),0===Object.keys(r).length)return;let{error:n}=await o.from("workflow_nodes").update(r).eq("workflow_id",e).eq("id",t.id);if(n)throw n})),J(e)}async function K(e,r){let n=t(),{data:o,error:i}=await n.from("workflow_nodes").select("*").eq("workflow_id",e).eq("name",r).maybeSingle();if(i){if(u(i,"workflow_nodes"))return null;throw i}return o}async function z(e){let r=t(),{data:n,error:o}=await r.from("workflow_transitions").select("*").eq("workflow_id",e).order("priority",{ascending:!0});if(o){if(u(o,"workflow_transitions"))return[];throw o}return n||[]}async function X(e,r){let n=t(),{data:o,error:i}=await n.from("workflow_transitions").select("*").eq("workflow_id",e).eq("from_node_id",r).order("priority",{ascending:!0});if(i){if(u(i,"workflow_transitions"))return[];throw i}return o||[]}async function Z(e,t){let r=await H(e,t);if(!r)return null;let[n,o]=await Promise.all([J(e),z(e)]);return{...r,nodes:n,transitions:o}}async function ee(e,r={}){let n=t(),o=Math.max(1,Math.min(2e3,Number(r.limit??r.tail??500))),i="string"==typeof r.after&&r.after.trim()?r.after.trim():null,a=i?null:void 0===r.tail?o:Number(r.tail),s=null!==a&&Number.isFinite(a)&&a>0,l=n.from("task_logs").select("*").eq("task_id",e);r.nodeId&&(l=l.eq("node_id",r.nodeId)),l=i?l.gt("created_at",i).order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(o):s?l.order("created_at",{ascending:!1}).order("id",{ascending:!1}).limit(o):l.order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(o);let{data:d,error:u}=await l;if(u)throw u;let c=d||[];return i?c:s?c.slice().reverse():c}async function et(e,r,n,o){let i=t(),{data:a,error:s}=await i.from("task_logs").insert({task_id:e,content:r,log_type:n,...o?{node_id:o}:{}}).select().single();if(s)throw s;return a}function er(e){let t=Number(e??0);return Number.isFinite(t)?Math.max(0,Math.round(t)):0}function en(e){let t=Number(e??0);return Number.isFinite(t)?Math.max(0,t):0}async function eo(e){let r=t(),n={task_id:e.taskId,stage:e.stage,provider:e.provider??null,model:e.model??null,input_tokens:er(e.inputTokens),output_tokens:er(e.outputTokens),estimated_cost:en(e.estimatedCost)},{data:o,error:i}=await r.from("task_costs").insert(n).select().single();if(i)throw i;return o}async function ei(e){let r=t(),{data:n,error:o}=await r.from("task_costs").select("*").eq("task_id",e).order("created_at",{ascending:!0});if(o)throw o;return n||[]}async function ea(e){return function(e){let t={},r=0,n=0,o=0;for(let i of e){let e=i.stage||"unknown",a=er(i.input_tokens),s=er(i.output_tokens),l=en(i.estimated_cost??0);r+=a,n+=s,o+=l;let d=t[e]||{stage:e,input_tokens:0,output_tokens:0,estimated_cost:0,entries:0};d.input_tokens+=a,d.output_tokens+=s,d.estimated_cost+=l,d.entries+=1,t[e]=d}return{total_input_tokens:r,total_output_tokens:n,total_cost:o,per_stage:Object.values(t).sort((e,t)=>e.stage.localeCompare(t.stage))}}(await ei(e))}async function es(e){let r=t(),{data:n,error:o}=await r.from("task_comments").select("*").eq("task_id",e).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(o)throw o;return n||[]}async function el(e,r,n,o){let i=t(),{data:a,error:s}=await i.from("task_comments").insert({task_id:e,content:r,author_type:n,author_id:o??null}).select().single();if(s)throw s;return a}async function ed(e,r){let n=t(),{data:o,error:i}=await n.from("task_comments").select("author_id, author_type").eq("id",e).single();if(i)throw i;if(!o)throw Error("Comment not found");if("user"!==o.author_type||o.author_id!==r)throw Error("Unauthorized");let{error:a}=await n.from("task_comments").update({deleted_at:new Date().toISOString()}).eq("id",e).is("deleted_at",null);if(a)throw a}async function eu(e,r,n){let o=t().from("learnings").select("*").eq("scope",e).order("created_at",{ascending:!1});r&&(o=o.eq("scope_id",r)),n&&(o=o.eq("user_id",n));let{data:i,error:a}=await o;if(a)throw a;return i||[]}async function ec(e,r,n,o){let i=t(),{data:a,error:s}=await i.from("learnings").insert({scope:e,scope_id:n,content:r,user_id:o}).select().single();if(s)throw s;return a}async function ep(e,r){let n=t().from("learnings").delete().eq("id",e);r&&(n=n.eq("user_id",r));let{error:o}=await n;if(o)throw o}async function ef(e,r){let n=t().from("stage_prompts").select("*").eq("workflow_id",r).order("stage",{ascending:!0});n=e?n.or(`user_id.eq.${e},is_default.eq.true`):n.eq("is_default",!0);let{data:o,error:i}=await n;if(i)throw i;return o||[]}async function eg(e,r,n){let o=t();if(r){let{data:t}=await o.from("stage_prompts").select("*").eq("workflow_id",n).eq("stage",e).eq("user_id",r).single();if(t)return t}let{data:i}=await o.from("stage_prompts").select("*").eq("workflow_id",n).eq("stage",e).eq("is_default",!0).single();return i||null}async function em(e,r,n=[],o,i,a){let s=t(),l={stage:e,prompt:r,outputs:n,user_id:o,is_default:!o,workflow_id:a};i&&(void 0!==i.swarm&&(l.swarm=i.swarm),void 0!==i.provider&&(l.provider=i.provider),void 0!==i.model&&(l.model=i.model),void 0!==i.swarm_models&&(l.swarm_models=i.swarm_models));let{data:d,error:u}=await s.from("stage_prompts").upsert(l,{onConflict:o?"workflow_id,stage,user_id":"workflow_id,stage,is_default"}).select().single();if(u)throw u;return d}async function ew(e,r){let n=t().from("stage_prompts").delete().eq("id",e);r&&(n=n.eq("user_id",r));let{error:o}=await n;if(o)throw o}async function eh(e){let r=t(),{data:n,error:o}=await r.from("agents").select("*").eq("user_id",e).order("created_at",{ascending:!1});if(o){if(u(o,"agents"))return[];throw o}return n||[]}async function ey(e,r){let n=t(),{data:o,error:i}=await n.from("agents").select("*").eq("id",e).eq("user_id",r).maybeSingle();if(i){if("PGRST116"===i.code||u(i,"agents"))return null;throw i}return o}async function ek(e,r){let n=t(),o={user_id:e,name:r.name,style:r.style,description:r.description??null,config:r.config??{}},{data:i,error:a}=await n.from("agents").insert(o).select().single();if(a){if(u(a,"agents"))throw Error("Agents table does not exist");throw a}return i}async function e_(e,r,n){let o=t(),i={updated_at:new Date().toISOString()};if(void 0!==n.name&&(i.name=n.name),void 0!==n.style&&(i.style=n.style),void 0!==n.description&&(i.description=n.description),void 0!==n.config&&(i.config=n.config),1===Object.keys(i).length)return ey(e,r);let{data:a,error:s}=await o.from("agents").update(i).eq("id",e).eq("user_id",r).select().single();if(s){if("PGRST116"===s.code||u(s,"agents"))return null;throw s}return a}async function eS(e,r){let n=t(),{error:o}=await n.from("agents").delete().eq("id",e).eq("user_id",r);if(o&&!u(o,"agents"))throw o}e.s(["addLearning",()=>ec,"addTaskComment",()=>el,"addTaskCostEntry",()=>eo,"addTaskLog",()=>et,"appendRunToIndex",()=>E,"assignOrphanTasksToProject",()=>U,"createAgent",()=>ek,"createProject",()=>R,"createTask",()=>v,"deleteAgent",()=>eS,"deleteLearning",()=>ep,"deleteProject",()=>W,"deleteStagePrompt",()=>ew,"deleteTask",()=>j,"deleteTaskComment",()=>ed,"ensureNoCircularDependency",()=>k,"getAgent",()=>ey,"getAgents",()=>eh,"getLearnings",()=>eu,"getNextQueuedTask",()=>q,"getProjectBySlug",()=>N,"getProjectRepos",()=>O,"getProjectWithRepos",()=>L,"getProjects",()=>C,"getStagePrompt",()=>eg,"getStagePrompts",()=>ef,"getTask",()=>b,"getTaskBySlug",()=>x,"getTaskComments",()=>es,"getTaskCostEntries",()=>ei,"getTaskCostSummary",()=>ea,"getTaskLogs",()=>ee,"getTasks",()=>$,"getUserSettings",()=>c,"getWorkflow",()=>H,"getWorkflowNodeByName",()=>K,"getWorkflowNodes",()=>J,"getWorkflowTransitions",()=>z,"getWorkflowTransitionsFromNode",()=>X,"getWorkflowWithGraph",()=>Z,"getWorkflows",()=>Q,"parseFrontmatter",()=>y,"updateAgent",()=>e_,"updateProject",()=>P,"updateTask",()=>I,"updateWorkflow",()=>V,"updateWorkflowNodes",()=>Y,"upsertStagePrompt",()=>em,"upsertUserSettings",()=>p],8112)},29012,e=>{"use strict";var t=e.i(8112),r=e.i(41754);class n extends Error{constraint;detail;constructor(e,t){super(e),this.name="ConflictError",this.constraint=t?.constraint,this.detail=t?.detail}}class o extends Error{code;constructor(e,t){super(e),this.name="RetryableError",this.code=t}}class i extends Error{expectedVersion;actualVersion;entityId;entityType;constructor(e,t,r,n){super(void 0!==n?`Concurrent modification on ${e} ${t}: expected version ${r}, found ${n}`:`Concurrent modification on ${e} ${t}: expected version ${r}, row not updated`),this.name="ConcurrentModificationError",this.entityType=e,this.entityId=t,this.expectedVersion=r,this.actualVersion=n}}function a(e){if(!(e instanceof Error))throw e;let t=e.code??"",r=e.message??"";if("SQLITE_CONSTRAINT_UNIQUE"===t||"SQLITE_CONSTRAINT_PRIMARYKEY"===t||"SQLITE_CONSTRAINT"===t&&(r.includes("UNIQUE")||r.includes("PRIMARY KEY"))||r.includes("UNIQUE constraint failed")||r.includes("PRIMARY KEY constraint failed")){let e=r.match(/(?:UNIQUE|PRIMARY KEY) constraint failed: (.+)/);throw new n(r,{constraint:e?.[1],detail:r})}if("SQLITE_BUSY"===t||"SQLITE_LOCKED"===t||r.includes("database is locked"))throw new o(r,t||"SQLITE_BUSY");throw e}async function s(e){try{return await e()}catch(e){if(e instanceof n||e instanceof o||e instanceof i)throw e;a(e)}}class l{async transaction(e){let t=(0,r.getSQLiteDb)();t.exec("BEGIN IMMEDIATE");try{let r=await e(t);return t.exec("COMMIT"),r}catch(e){try{t.exec("ROLLBACK")}catch{}if(e instanceof n||e instanceof o||e instanceof i)throw e;a(e)}}getTasks(e,r){return t.getTasks(e,r)}getTask(e,r){return t.getTask(e,r)}getTaskBySlug(e,r){return t.getTaskBySlug(e,r)}createTask(e,r,n){return s(()=>t.createTask(e,r,n))}async updateTask(e,n,o,a){let l=a?.expectedVersion;if(void 0!==l){let d=(0,r.getSQLiteDb)();if(0===d.prepare("UPDATE tasks SET version = version + 1 WHERE id = ? AND version = ?").run(e,l).changes){let t=d.prepare("SELECT version FROM tasks WHERE id = ?").get(e);throw new i("task",e,l,t?.version)}let{expectedVersion:u,...c}=a??{};return s(()=>t.updateTask(e,n,o,c))}return(0,r.getSQLiteDb)().prepare("UPDATE tasks SET version = version + 1 WHERE id = ?").run(e),s(()=>t.updateTask(e,n,o,a))}appendRunToIndex(e,r,n){return t.appendRunToIndex(e,r,n)}deleteTask(e,r){return s(()=>t.deleteTask(e,r))}getNextQueuedTask(e){return t.getNextQueuedTask(e)}ensureNoCircularDependency(e,r,n){return t.ensureNoCircularDependency(e,r,n)}getProjects(e){return t.getProjects(e)}getProjectBySlug(e,r){return t.getProjectBySlug(e,r)}getProjectRepos(e){return t.getProjectRepos(e)}getProjectWithRepos(e,r){return t.getProjectWithRepos(e,r)}createProject(e,r,n){return s(()=>t.createProject(e,r,n))}updateProject(e,r,n,o){return t.updateProject(e,r,n,o)}deleteProject(e,r,n){return s(()=>t.deleteProject(e,r,n))}assignOrphanTasksToProject(e,r,n){return t.assignOrphanTasksToProject(e,r,n)}getWorkflows(e){return t.getWorkflows(e)}getWorkflow(e,r){return t.getWorkflow(e,r)}updateWorkflow(e,r,n){return t.updateWorkflow(e,r,n)}getWorkflowNodes(e){return t.getWorkflowNodes(e)}updateWorkflowNodes(e,r,n){return t.updateWorkflowNodes(e,r,n)}getWorkflowNodeByName(e,r){return t.getWorkflowNodeByName(e,r)}getWorkflowTransitions(e){return t.getWorkflowTransitions(e)}getWorkflowTransitionsFromNode(e,r){return t.getWorkflowTransitionsFromNode(e,r)}getWorkflowWithGraph(e,r){return t.getWorkflowWithGraph(e,r)}getTaskLogs(e,r){return t.getTaskLogs(e,r)}addTaskLog(e,r,n,o){return s(()=>t.addTaskLog(e,r,n,o))}addTaskCostEntry(e){return s(()=>t.addTaskCostEntry(e))}getTaskCostEntries(e){return t.getTaskCostEntries(e)}getTaskCostSummary(e){return t.getTaskCostSummary(e)}getTaskComments(e){return t.getTaskComments(e)}addTaskComment(e,r,n,o){return s(()=>t.addTaskComment(e,r,n,o))}deleteTaskComment(e,r){return s(()=>t.deleteTaskComment(e,r))}getLearnings(e,r,n){return t.getLearnings(e,r,n)}addLearning(e,r,n,o){return s(()=>t.addLearning(e,r,n,o))}deleteLearning(e,r){return s(()=>t.deleteLearning(e,r))}getStagePrompts(e,r){return t.getStagePrompts(e,r)}getStagePrompt(e,r,n){return t.getStagePrompt(e,r,n)}upsertStagePrompt(e,r,n,o,i,a){return s(()=>t.upsertStagePrompt(e,r,n,o,i,a))}deleteStagePrompt(e,r){return t.deleteStagePrompt(e,r)}getAgents(e){return t.getAgents(e)}getAgent(e,r){return t.getAgent(e,r)}createAgent(e,r){return s(()=>t.createAgent(e,r))}updateAgent(e,r,n){return t.updateAgent(e,r,n)}deleteAgent(e,r){return t.deleteAgent(e,r)}getUserSettings(e){return t.getUserSettings(e)}upsertUserSettings(e,r,n){return s(()=>t.upsertUserSettings(e,r,n))}async healthCheck(){let e=performance.now();try{return(0,r.getSQLiteDb)().prepare("SELECT 1").get(),{adapter:"sqlite",connected:!0,latencyMs:Math.round(performance.now()-e)}}catch{return{adapter:"sqlite",connected:!1,latencyMs:Math.round(performance.now()-e)}}}}e.s(["SQLiteAdapter",()=>l],29012)},27743,e=>{"use strict";let t=function(){let{SQLiteAdapter:t}=e.r(29012);return new t}();var r=e.i(8112);let n=[["INTAKE","PROGRESS","DONE"]];async function o({workflowId:e,currentNodeName:t,decision:n,retryCount:o,maxRetries:i=3}){if("done"===String(t).trim().toLowerCase())return{nextNodeName:"done",nextStatus:"completed",retryCount:0,error:null,appendLog:{content:"Task completed at done",logType:"checkpoint"},nodeConfig:null};let a=await (0,r.getWorkflowNodeByName)(e,t);if(!a)return{nextNodeName:t,nextStatus:"blocked",retryCount:o,error:`Node '${t}' not found in workflow`,appendLog:{content:`Workflow error: node '${t}' not found`,logType:"error"},nodeConfig:null};if("terminal"===a.node_type)return{nextNodeName:t,nextStatus:"completed",retryCount:0,error:null,appendLog:{content:`Task completed at ${a.label||t}`,logType:"checkpoint"},nodeConfig:a};if("blocked"===n)return{nextNodeName:t,nextStatus:"blocked",retryCount:o,error:null,appendLog:{content:"Blocked: additional input required.",logType:"system"},nodeConfig:a};let s=await (0,r.getWorkflowTransitionsFromNode)(e,a.id),l=function(e){switch(e){case"done":default:return"done";case"blocked":return"blocked";case"failed":case"not_done":return"failed"}}(n),d=s.find(e=>e.condition===l);if(d){let o=(await (0,r.getWorkflowNodes)(e)).find(e=>e.id===d.to_node_id);if(o){let e="terminal"===o.node_type;return{nextNodeName:o.name,nextStatus:e?"completed":"queued",retryCount:0,error:null,appendLog:{content:"done"===n?`Stage completed: ${a.label||t}`:`Transition to ${o.label||o.name}`,logType:"done"===n?"checkpoint":"system"},nodeConfig:o}}}if("done"===n)return{nextNodeName:t,nextStatus:"completed",retryCount:0,error:null,appendLog:{content:`Task completed at ${a.label||t}`,logType:"checkpoint"},nodeConfig:a};let u=o+1;return u<=i?{nextNodeName:t,nextStatus:"queued",retryCount:u,error:null,appendLog:{content:`Retrying (${u}/${i}) for ${a.label||t}`,logType:"system"},nodeConfig:a}:{nextNodeName:t,nextStatus:"failed",retryCount:u,error:"Task failed after max retries.",appendLog:{content:"Task failed after max retries.",logType:"error"},nodeConfig:a}}var i=e.i(54799),a=e.i(33405);let s=e=>"string"==typeof e&&e.trim().length>0,l=/\[agx:(?:spawn|exit:\d+)\]\n?/g,d=e=>({push:t=>{let r=t.replace(l,"");r&&e(r)},flush:()=>{}}),u=e=>{let t="",r=0,n=!1,o=t=>{let o=t.trim();if(o)try{let t=JSON.parse(o);n=!0;let i=(e=>{if(!e||"object"!=typeof e)return"";if("assistant"===e.type)return(Array.isArray(e?.message?.content)?e.message.content:[]).flatMap(e=>e?.type==="text"&&s(e.text)?[e.text]:[]).join("");let t=e?.event;return"stream_event"===e.type&&t?.type==="content_block_delta"&&t?.delta?.type==="text_delta"&&s(t?.delta?.text)?t.delta.text:""})(t);if(!i||t?.type==="assistant"&&r>0)return;r+=i.length,e(i)}catch{n||e(`${t}
|
|
9
|
-
`)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;o(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&o(t),t=""}}},
|
|
10
|
-
`)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;o(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&o(t),t=""}}},
|
|
11
|
-
`)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;o(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&o(t),t=""}}},
|
|
12
|
-
`);let d=(0,a.spawn)(e,t,{stdio:["ignore","pipe","pipe"],env:{...process.env,CLAUDECODE:void 0}}),u=!1,c="",p=!1,f=e=>{u||(u=!0,clearTimeout(m),n&&n.removeEventListener("abort",g),e?l(e):s())},g=()=>{d.kill("SIGTERM"),f(Error("Chat request aborted."))};n&&n.addEventListener("abort",g,{once:!0});let m=setTimeout(()=>{p=!0,d.kill("SIGKILL"),f(Error(`CLI request timed out after ${r}ms.`))},r);d.stdout.on("data",e=>{let t=e.toString();c+=t,o(t),i&&i("stdout",t)}),d.stderr.on("data",e=>{let t=e.toString();c+=t,i&&i("stderr",t)}),d.on("error",e=>f(e)),d.on("close",(e,t)=>{if(!u&&!p){if(0===e)return void f();f(Error(`CLI command failed (exit=${e??"unknown"} signal=${t??"none"}).${c.trim()?` ${c.trim()}`:""}`))}})})}async function
|
|
8
|
+
`,t=r.prepare(e).get(n,o,s.toISOString());return{data:Number(t?.request_count||0)<=i,error:null}}catch(e){return{data:!1,error:e}}},channel:()=>({on(){return this},subscribe(e){return e&&e("SUBSCRIBED"),this}}),removeChannel(){}}}e.s(["SqlExpression",()=>a,"createAdminDbClientSQLite",()=>h,"getSQLiteDb",()=>d,"sqlExpr",()=>s],41754)},8112,14927,14688,e=>{"use strict";function t(){let{createAdminDbClientSQLite:t}=e.r(41754);return t()}e.i(41381),e.s(["createAdminDbClient",()=>t],14927);let r="Waiting on dependencies",n=[{value:"task.created",label:"Task created",description:"Fires immediately when a new task is added to the queue."},{value:"task.stage_complete",label:"Stage completed",description:"Emitted whenever a stage finishes and the task advances."},{value:"task.completed",label:"Task completed",description:"When the task reaches a completed status (done)."},{value:"task.failed",label:"Task failed",description:"When the task may have errored, including cancellations."},{value:"task.blocked",label:"Task blocked",description:"When the agent raises the task as blocked awaiting manual input."}].map(e=>e.value);class o extends Error{}function i(e){let t=Array.isArray(e.events)?e.events.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>n.includes(e)):[];return{id:String(e.id),user_id:String(e.user_id),url:String(e.url),name:null!=e.name?String(e.name):null,events:t,enabled:!1!==e.enabled,created_at:String(e.created_at),updated_at:String(e.updated_at)}}async function a(e,t){if(function(e,t){if(!e||"object"!=typeof e)return!1;let r=e.code,n="string"==typeof e.message?e.message:"";return"42P01"===r||"PGRST205"===r||n.includes(`relation "${t}" does not exist`)||n.includes(`Could not find the table 'agx.${t}'`)||n.includes(`Could not find the table 'public.${t}'`)}(t,e))throw new o(`Missing relation: ${e}`);throw t}async function s(e){let r=t(),{data:n,error:o}=await r.from("notification_webhooks").select("*").eq("user_id",e).order("created_at",{ascending:!1});return(o&&await a("notification_webhooks",o),n)?(Array.isArray(n)?n:[n]).map(i):[]}async function l(e){if(!e.userId)return;let t=[];try{t=await s(e.userId)}catch(e){if(e instanceof o)return void console.debug("[notifications] notification_webhooks schema not ready, skipping");console.error("[notifications] failed to load webhooks",e);return}let r=t.filter(t=>t.enabled&&t.events.includes(e.eventType));if(!r.length)return;let n=e.timestamp||new Date().toISOString(),i={eventType:e.eventType,taskId:e.taskId,userId:e.userId,title:e.title||null,slug:e.slug||null,stage:e.stage||null,previousStage:e.previousStage||null,nextStage:e.nextStage||null,status:e.status||null,error:e.error||null,timestamp:n,details:e.details||{}};await Promise.all(r.map(async e=>{try{let t=await fetch(e.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});t.ok||console.error(`[notifications] webhook ${e.url} responded with ${t.status}`)}catch(t){console.error(`[notifications] failed to send to ${e.url}`,t)}}))}e.s(["notifyTaskEvent",()=>l],14688);var d=e.i(54799);function u(e,t){if(!e)return!1;let r="string"==typeof e.message?e.message:"";return"42P01"===e.code||"PGRST205"===e.code||r.includes(`relation "${t}" does not exist`)||r.includes(`Could not find the table 'agx.${t}'`)||r.includes(`Could not find the table 'public.${t}'`)}async function c(e){let r=t(),{data:n,error:o}=await r.from("user_settings").select("*").eq("user_id",e).maybeSingle();if(o){if(u(o,"user_settings"))return null;throw o}return n||null}async function p(e,r,n){let o=n?.onlyIfNewer!==!1,i=function(e){if("string"==typeof e){let t=Date.parse(e);if(Number.isFinite(t))return new Date(t).toISOString()}return new Date().toISOString()}(r.changed_at),a=await c(e);if(o&&a?.changed_at){let e=Date.parse(a.changed_at),t=Date.parse(i);if(Number.isFinite(e)&&Number.isFinite(t)&&t<=e)return{settings:a,updated:!1}}let s={user_id:e,default_provider:r.default_provider??a?.default_provider??null,models:r.models??a?.models??{},provenance:r.provenance,changed_at:i},l=t(),{error:d}=await l.from("user_settings").upsert(s,{onConflict:"user_id"});if(d)throw d;let u=await c(e);if(!u)throw Error("Failed to load user_settings after upsert");return{settings:u,updated:!0}}function f(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"task"}async function g(e,t){let r=f(e);for(let n=0;n<5;n++){let{data:n,error:o}=await t.from("tasks").select("id").eq("slug",r).limit(1);if(o)throw o;if(!n||0===n.length)return r;let i=Math.random().toString(36).slice(2,6);r=`${f(e)}-${i}`.slice(0,48)}return`${f(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}async function m(e,t,r,n){let o=f(e);for(let i=0;i<5;i++){let i=r.from("projects").select("id").eq("slug",o).eq("user_id",t);n&&(i=i.neq("id",n));let{data:a,error:s}=await i.limit(1);if(s)throw s;if(!a||0===a.length)return o;let l=Math.random().toString(36).slice(2,6);o=`${f(e)}-${l}`.slice(0,48)}return`${f(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}function w(e){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return e.map(e=>String(e||"").trim()).filter(Boolean)}catch{}return t.split(",").map(e=>e.trim()).filter(Boolean)}function h(e){let t;if(!e)return[];if(Array.isArray(e))t=e.map(e=>"string"==typeof e?e:null==e?"":String(e)).filter(Boolean);else{if("string"!=typeof e)return[];t=w(e)}return Array.from(new Set(t.map(e=>e.trim()).filter(Boolean)))}function y(e){let t=e.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);if(!t)return{frontmatter:{},body:e};let r={};for(let e of t[1].split("\n")){let t=e.indexOf(":");if(t>0){let n=e.slice(0,t).trim(),o=e.slice(t+1).trim();if("depends_on"===n){r[n]=w(o);continue}"true"===o?r[n]=!0:"false"===o?r[n]=!1:/^\d+$/.test(o)?r[n]=parseInt(o):r[n]=o}}return{frontmatter:r,body:t[2]}}async function k(e,r,n){if(!e||!r?.length)return;let o=n??t(),i=new Set,a=[...r];for(;a.length;){let t=a.pop();if(!t)continue;if(t===e)throw Error("Circular dependency detected");if(i.has(t))continue;i.add(t);let{data:r,error:n}=await o.from("tasks").select("depends_on").eq("id",t).maybeSingle();if(n){if("PGRST116"===n.code||"42703"===n.code)continue;throw n}if(r)for(let e of Array.isArray(r.depends_on)?r.depends_on:[])e&&!i.has(e)&&a.push(e)}}function _(e){let{body:t}=y(e),r=t.match(/^#\s+(.+)$/m);return r?r[1]:void 0}function S(e){return String(e||"").replace(/^#\s+.+(\r?\n|$)/,"").trim()}async function T(e,n){var o;let i=Array.isArray(e.depends_on)?e.depends_on:[];if(!i.length)return;let a=t(),{data:s,error:l}=await a.from("tasks").select("id, title, slug, status, stage").in("id",i);if(l)return;let d=(Array.isArray(s)?s:[]).filter(e=>"completed"!==(e?.status||""));if(d.length){let t=function(e){if(!e||0===e.length)return"";let t=e.slice(0,3).map(e=>`${e.title?e.title:e.slug?e.slug:e.id?e.id:"(unknown)"}${(e.stage?.toLowerCase()==="intake"?" (awaiting approval)":e.status?` (${e.status})`:null)??""}`),n=`${r}: ${t.join(", ")}`;return e.length>3&&(n+=` +${e.length-3} more`),n}(d),o=a.from("tasks").update({status:"blocked",blocked_reason:t}).eq("id",e.id);n&&(o=o.eq("user_id",n));let{error:i}=await o;if(i&&"42703"!==i.code)throw i;return}if("blocked"===e.status&&"string"==typeof(o=e.blocked_reason)&&o.startsWith(r)){let t=a.from("tasks").update({status:"queued",blocked_reason:null}).eq("id",e.id);n&&(t=t.eq("user_id",n));let{error:r}=await t;if(r&&"42703"!==r.code)throw r}}async function $(e,r){console.log("getTasks called with userId:",e);let n=t().from("tasks").select("*").order("priority",{ascending:!0,nullsFirst:!1}).order("created_at",{ascending:!1});if(e&&(n=n.eq("user_id",e)),r?.project&&(n=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(r.project)?n.eq("project_id",r.project):n.eq("project",r.project)),r?.orphan&&(n=n.is("project_id",null)),r?.status&&(n=n.eq("status",r.status)),r?.search){let e=r.search;n=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)?n.or(`id.eq.${e},slug.ilike.%${e}%,title.ilike.%${e}%`):n.or(`id.ilike.%${e}%,slug.ilike.%${e}%,title.ilike.%${e}%`)}let{data:o,error:i}=await n;if(i)throw i;let a=o||[];return r?.orphan?a.filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t}):a}async function b(e,r){let n=t().from("tasks").select("*").eq("id",e);r&&(n=n.eq("user_id",r));let{data:o,error:i}=await n.single();if(i){if("PGRST116"===i.code)return null;throw i}return o}async function x(e,r){let n=t().from("tasks").select("*").eq("slug",e);r&&(n=n.eq("user_id",r));let{data:o,error:i}=await n.single();if(i){if("PGRST116"===i.code)return null;throw i}return o}async function v(e,r,n){let o=t(),{frontmatter:i,body:a}=y(e),s="boolean"==typeof i.swarm?i.swarm:void 0,u=n?.title||_(e),c=String(i.slug||u||"task"),p=await g(c,o),f=n?.projectId||("string"==typeof i.project_id?i.project_id:void 0),m="string"==typeof i.workflow_id?i.workflow_id:void 0,w="string"==typeof i.project?i.project:void 0;if(!w&&f){let{data:e}=await o.from("projects").select("slug").eq("id",f).single();e?.slug&&(w=e.slug)}/^---\n/.test(e);let $="string"==typeof i.provider?i.provider:null,x="string"==typeof i.model?i.model:null,v="string"==typeof i.engine?i.engine:null,I="ai"===i.created_by?"ai":"user",E=h(i.depends_on),j=h(n?.dependsOn),q=j.length>0?j:E,C={id:(0,d.randomUUID)(),content:e,description:S(a),title:u,slug:p,status:i.status||"queued",stage:i.stage||"intake",project:w||null,...void 0!==f?{project_id:f}:{},...void 0!==m?{workflow_id:m}:{},priority:i.priority,engine:v,provider:$,model:x,swarm:s,swarm_models:n?.swarmModels??null,depends_on:q.length?q:null,created_by:I,user_id:r,current_plan:n?.currentPlan||null,open_blockers:n?.openBlockers||[],next_action:n?.nextAction||null,version:1};await k(C.id,q,o);let{data:N,error:O}=await o.from("tasks").insert(C).select().single();if(O&&"42703"===O.code){let{swarm_models:e,swarm:t,workflow_id:r,current_plan:n,open_blockers:i,next_action:a,version:s,depends_on:l,...d}=C;({data:N,error:O}=await o.from("tasks").insert(d).select().single())}if(O)throw O;if(!N)throw Error("Failed to create task");await T(N,r);let A=await b(N.id,r)||N,L=r||A.user_id;if(L){let e=A.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(A.depends_on)?A.depends_on:[],project:A.project||null,projectId:A.project_id||null,workflowId:A.workflow_id||null,createdBy:A.created_by||null};l({taskId:A.id,userId:L,eventType:"task.created",title:A.title||null,slug:A.slug||null,stage:A.stage||null,status:A.status||null,timestamp:e,details:t})}return A}async function I(e,r,n,o){let i=t(),{frontmatter:a,body:s}=y(r),d="boolean"==typeof a.swarm?a.swarm:void 0,u=_(r),c="string"==typeof a.project_id?a.project_id:void 0,p=Object.prototype.hasOwnProperty.call(a,"provider"),f=Object.prototype.hasOwnProperty.call(a,"model"),g=Object.prototype.hasOwnProperty.call(a,"workflow_id"),m=Object.prototype.hasOwnProperty.call(a,"depends_on"),w=h(a.depends_on),$=h(o?.dependsOn),x=o?.dependsOn!==void 0||m,v=o?.dependsOn!==void 0?$:w,I={content:r,description:S(s),title:u,status:a.status,stage:a.stage,project:a.project,...void 0!==c?{project_id:c}:{},workflow_id:g?a.workflow_id:void 0,priority:a.priority,engine:a.engine,provider:p?a.provider:null,model:f?a.model:null,swarm:d,swarm_models:o?.swarmModels??void 0,...x?{depends_on:v.length?v:null}:{},updated_at:new Date().toISOString(),current_plan:o?.currentPlan??void 0,open_blockers:o?.openBlockers??void 0,next_action:o?.nextAction??void 0};Object.keys(I).forEach(e=>{void 0===I[e]&&delete I[e]}),x&&await k(e,v,i);let E=i.from("tasks").update({...I,version:i.rpc("increment_version")}).eq("id",e);n&&(E=E.eq("user_id",n)),o?.expectedVersion!==void 0&&(E=E.eq("version",o.expectedVersion));let{data:j,error:q}=await i.from("tasks").update({...I}).eq("id",e).select().maybeSingle();if(q&&console.error(`[db.updateTask] error updating task ${e}:`,q),j||q||console.warn(`[db.updateTask] UPDATE returned 0 rows for task ${e}, payload keys:`,Object.keys(I)),q&&"42703"===q.code){let{swarm_models:t,swarm:r,workflow_id:o,current_plan:a,open_blockers:s,next_action:l,version:d,depends_on:u,...c}=I,p=i.from("tasks").update(c).eq("id",e);n&&(p=p.eq("user_id",n)),{data:j,error:q}=await p.select().maybeSingle()}if(q)throw q;if(!j){let t=await b(e,n);if(!t)throw Error(`Task ${e} not found`);return t}await T(j,n);let C=await b(j.id,n)||j,N=n||C.user_id;if(N){let e=C.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(C.depends_on)?C.depends_on:[],project:C.project||null,projectId:C.project_id||null,workflowId:C.workflow_id||null,createdBy:C.created_by||null};l({taskId:C.id,userId:N,eventType:"task.created",title:C.title||null,slug:C.slug||null,stage:C.stage||null,status:C.status||null,timestamp:e,details:t})}return C}async function E(e,r,n=25){let o=t(),{data:i,error:a}=await o.from("tasks").select("run_index").eq("id",e).single();if(a){if(a?.code==="42703")return;throw a}let s=[r,...Array.isArray(i.run_index)?i.run_index:[]].slice(0,n),{error:l}=await o.from("tasks").update({run_index:s}).eq("id",e);if(l){if(l?.code==="42703")return;throw l}}async function j(e,r){let n=t().from("tasks").delete().eq("id",e);r&&(n=n.eq("user_id",r));let{error:o}=await n;if(o)throw o}async function q(e){let r=t().from("tasks").select("*").eq("status","queued").order("priority",{ascending:!0,nullsFirst:!1}).order("created_at",{ascending:!0}).limit(1);e&&(r=r.eq("engine",e));let{data:n,error:o}=await r.single();if(o){if("PGRST116"===o.code)return null;throw o}return n}async function C(e){let r=t().from("projects").select("*, project_repos(*)");e&&(r=r.eq("user_id",e));let{data:n,error:o}=await r;if(o){if(u(o,"projects"))return[];throw o}return(n||[]).map(e=>({...e,repos:e.project_repos??[]}))}async function N(e,r){let n=t().from("projects").select("*").eq("slug",e);r&&(n=n.eq("user_id",r));let{data:o,error:i}=await n.maybeSingle();if(i){if(u(i,"projects"))return null;throw i}return o||null}async function O(e){let r=t(),{data:n,error:o}=await r.from("project_repos").select("*").eq("project_id",e);if(o){if(u(o,"project_repos"))return[];throw o}return n||[]}let A=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function L(e,r){let n=t(),o=A.test(e),i=n.from("projects").select("*");i=o?i.eq("id",e):i.eq("slug",e),r&&(i=i.eq("user_id",r));let a=await i.maybeSingle();if(a.error){if(u(a.error,"projects"))return null;throw a.error}let s=a.data;if(!s)return null;let l=await O(s.id);return{...s,repos:l}}async function D(e,t,r){if(!t.length)return[];let n=t.map(t=>({project_id:e,name:t.name,path:t.path??null,notes:t.notes??null})),{data:o,error:i}=await r.from("project_repos").insert(n).select("*");if(i){if(u(i,"project_repos"))return[];throw i}return o||[]}async function R(e,r,n){if(!r.name?.trim())throw Error("Project name is required");let o=n??t(),i=r.name.trim()||"project",a=await m(i,e,o),s={user_id:e,name:r.name.trim(),slug:a,description:r.description??null,workflow_id:r.workflow_id??null},{data:l,error:d}=await o.from("projects").insert(s).select("*").single();if(d)throw d;let u=await D(l.id,r.repos??[],o);return{...l,repos:u}}async function P(e,r,n,o){let i=o??t(),a=A.test(e),s=e;if(!a){let t=await N(e,r);if(!t)return null;s=t.id}let l={};if(void 0!==n.name){let e=n.name?.trim();if(!e)throw Error("Project name cannot be empty");l.name=e}if(void 0!==n.slug){let e=n.slug?.trim();e&&(l.slug=e)}if(void 0!==n.description&&(l.description=n.description),void 0!==n.metadata&&(l.metadata=n.metadata),void 0!==n.ci_cd_info&&(l.ci_cd_info=n.ci_cd_info),void 0!==n.workflow_id&&(l.workflow_id=n.workflow_id),Object.keys(l).length){let{error:e}=await i.from("projects").update(l).eq("id",s).eq("user_id",r);if(e)throw e}if(n.repos){let{error:e}=await i.from("project_repos").delete().eq("project_id",s);if(e&&!u(e,"project_repos"))throw e;await D(s,n.repos,i)}return L(s,r)}async function W(e,r,n){let o=n??t(),{error:i}=await o.from("projects").delete().eq("id",e).eq("user_id",r);if(i)throw i}async function U(e,r,n){let o=n??t(),{data:i,error:a}=await o.from("projects").select("id, slug").eq("id",e).eq("user_id",r).maybeSingle();if(a)throw a;if(!i)throw Error("Project not found");let{data:s,error:l}=await o.from("tasks").select("id, project").eq("user_id",r).is("project_id",null);if(l)throw l;let d=String(i.slug||"").trim().toLowerCase(),u=(s||[]).filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t||t===d}).map(e=>e.id);if(!u.length)return{updatedCount:0,taskIds:[]};let{error:c}=await o.from("tasks").update({project:i.slug,project_id:i.id,updated_at:new Date().toISOString()}).eq("user_id",r).is("project_id",null).in("id",u);if(c)throw c;return{updatedCount:u.length,taskIds:u}}let M="00000000-0000-0000-0000-000000000001",B=[{id:"00000000-0000-0000-0001-000000000001",name:"INTAKE",label:"Intake",prompt:"New task. Triage, scope, and prepare for work.",position:0,node_type:"step"},{id:"00000000-0000-0000-0001-000000000002",name:"PROGRESS",label:"Progress",prompt:"Task is actively being worked on.",position:1,node_type:"step"},{id:"00000000-0000-0000-0001-000000000003",name:"DONE",label:"Done",prompt:"Task completed.",position:2,node_type:"terminal"}],F=new Map(B.map(e=>[e.id,e]));async function G(e){let r=t(),{error:n}=await r.from("workflows").upsert({id:M,user_id:e||"00000000-0000-0000-0000-000000000000",name:"Default Workflow",definition:{}},{onConflict:"id"});if(n)throw n;let{error:o}=await r.from("workflow_nodes").upsert(B.map(e=>({...e,workflow_id:M,metadata:{}})),{onConflict:"id"});if(o)throw o;let{error:i}=await r.from("workflow_transitions").upsert([{workflow_id:M,from_node_id:"00000000-0000-0000-0001-000000000001",to_node_id:"00000000-0000-0000-0001-000000000002",condition:"done",priority:0,metadata:{}},{workflow_id:M,from_node_id:"00000000-0000-0000-0001-000000000002",to_node_id:"00000000-0000-0000-0001-000000000003",condition:"done",priority:0,metadata:{}}],{onConflict:"workflow_id,from_node_id,condition"});if(i)throw i}async function Q(e){let r=t(),{data:n,error:o}=await r.from("workflows").select("*").or(`user_id.eq.${e},user_id.eq.00000000-0000-0000-0000-000000000000`).order("created_at",{ascending:!1});if(o){if(u(o,"workflows"))return[];throw o}return n||[]}async function H(e,r){let n=t().from("workflows").select("*").eq("id",e),{data:o,error:i}=await n.maybeSingle();if(i){if(u(i,"workflows"))return null;throw i}return o}async function V(e,r,n){let o=t(),i={updated_at:new Date().toISOString()};void 0!==n.definition&&(i.definition=n.definition),void 0!==n.name&&(i.name=n.name),void 0!==n.description&&(i.description=n.description);let{data:a,error:s}=await o.from("workflows").update(i).eq("id",e).select().single();if(s)throw s;return a}async function J(e){let r=t(),{data:n,error:o}=await r.from("workflow_nodes").select("*").eq("workflow_id",e).order("position",{ascending:!0});if(o){if(u(o,"workflow_nodes"))return[];throw o}return n||[]}async function K(e,r,n){let o=t();if(e===M&&await G(r),!await H(e,r))throw Error("Workflow not found");if(e===M){let t=n.map(t=>{let r=F.get(t.id);return r?{id:t.id,workflow_id:e,name:r.name,label:r.label,position:r.position,node_type:r.node_type,prompt:t.prompt??r.prompt,provider:t.provider??null,model:t.model??null,metadata:t.metadata??{}}:null}).filter(e=>!!e);if(t.length>0){let{error:e}=await o.from("workflow_nodes").upsert(t,{onConflict:"id"});if(e)throw e}return J(e)}return await Promise.all(n.map(async t=>{let r={};if(void 0!==t.prompt&&(r.prompt=t.prompt),void 0!==t.provider&&(r.provider=t.provider),void 0!==t.model&&(r.model=t.model),void 0!==t.metadata&&(r.metadata=t.metadata),0===Object.keys(r).length)return;let{error:n}=await o.from("workflow_nodes").update(r).eq("workflow_id",e).eq("id",t.id);if(n)throw n})),J(e)}async function Y(e,r){let n=t(),{data:o,error:i}=await n.from("workflow_nodes").select("*").eq("workflow_id",e).eq("name",r).maybeSingle();if(i){if(u(i,"workflow_nodes"))return null;throw i}return o}async function z(e){let r=t(),{data:n,error:o}=await r.from("workflow_transitions").select("*").eq("workflow_id",e).order("priority",{ascending:!0});if(o){if(u(o,"workflow_transitions"))return[];throw o}return n||[]}async function X(e,r){let n=t(),{data:o,error:i}=await n.from("workflow_transitions").select("*").eq("workflow_id",e).eq("from_node_id",r).order("priority",{ascending:!0});if(i){if(u(i,"workflow_transitions"))return[];throw i}return o||[]}async function Z(e,t){let r=await H(e,t);if(!r)return null;let[n,o]=await Promise.all([J(e),z(e)]);return{...r,nodes:n,transitions:o}}async function ee(e,r={}){let n=t(),o=Math.max(1,Math.min(2e3,Number(r.limit??r.tail??500))),i="string"==typeof r.after&&r.after.trim()?r.after.trim():null,a=i?null:void 0===r.tail?o:Number(r.tail),s=null!==a&&Number.isFinite(a)&&a>0,l=n.from("task_logs").select("*").eq("task_id",e);r.nodeId&&(l=l.eq("node_id",r.nodeId)),l=i?l.gt("created_at",i).order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(o):s?l.order("created_at",{ascending:!1}).order("id",{ascending:!1}).limit(o):l.order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(o);let{data:d,error:u}=await l;if(u)throw u;let c=d||[];return i?c:s?c.slice().reverse():c}async function et(e,r,n,o){let i=t(),{data:a,error:s}=await i.from("task_logs").insert({task_id:e,content:r,log_type:n,...o?{node_id:o}:{}}).select().single();if(s)throw s;return a}function er(e){let t=Number(e??0);return Number.isFinite(t)?Math.max(0,Math.round(t)):0}function en(e){let t=Number(e??0);return Number.isFinite(t)?Math.max(0,t):0}async function eo(e){let r=t(),n={task_id:e.taskId,stage:e.stage,provider:e.provider??null,model:e.model??null,input_tokens:er(e.inputTokens),output_tokens:er(e.outputTokens),estimated_cost:en(e.estimatedCost)},{data:o,error:i}=await r.from("task_costs").insert(n).select().single();if(i)throw i;return o}async function ei(e){let r=t(),{data:n,error:o}=await r.from("task_costs").select("*").eq("task_id",e).order("created_at",{ascending:!0});if(o)throw o;return n||[]}async function ea(e){return function(e){let t={},r=0,n=0,o=0;for(let i of e){let e=i.stage||"unknown",a=er(i.input_tokens),s=er(i.output_tokens),l=en(i.estimated_cost??0);r+=a,n+=s,o+=l;let d=t[e]||{stage:e,input_tokens:0,output_tokens:0,estimated_cost:0,entries:0};d.input_tokens+=a,d.output_tokens+=s,d.estimated_cost+=l,d.entries+=1,t[e]=d}return{total_input_tokens:r,total_output_tokens:n,total_cost:o,per_stage:Object.values(t).sort((e,t)=>e.stage.localeCompare(t.stage))}}(await ei(e))}async function es(e){let r=t(),{data:n,error:o}=await r.from("task_comments").select("*").eq("task_id",e).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(o)throw o;return n||[]}async function el(e,r,n,o){let i=t(),{data:a,error:s}=await i.from("task_comments").insert({task_id:e,content:r,author_type:n,author_id:o??null}).select().single();if(s)throw s;return a}async function ed(e,r){let n=t(),{data:o,error:i}=await n.from("task_comments").select("author_id, author_type").eq("id",e).single();if(i)throw i;if(!o)throw Error("Comment not found");if("user"!==o.author_type||o.author_id!==r)throw Error("Unauthorized");let{error:a}=await n.from("task_comments").update({deleted_at:new Date().toISOString()}).eq("id",e).is("deleted_at",null);if(a)throw a}async function eu(e,r,n){let o=t().from("learnings").select("*").eq("scope",e).order("created_at",{ascending:!1});r&&(o=o.eq("scope_id",r)),n&&(o=o.eq("user_id",n));let{data:i,error:a}=await o;if(a)throw a;return i||[]}async function ec(e,r,n,o){let i=t(),{data:a,error:s}=await i.from("learnings").insert({scope:e,scope_id:n,content:r,user_id:o}).select().single();if(s)throw s;return a}async function ep(e,r){let n=t().from("learnings").delete().eq("id",e);r&&(n=n.eq("user_id",r));let{error:o}=await n;if(o)throw o}async function ef(e,r){let n=t().from("stage_prompts").select("*").eq("workflow_id",r).order("stage",{ascending:!0});n=e?n.or(`user_id.eq.${e},is_default.eq.true`):n.eq("is_default",!0);let{data:o,error:i}=await n;if(i)throw i;return o||[]}async function eg(e,r,n){let o=t();if(r){let{data:t}=await o.from("stage_prompts").select("*").eq("workflow_id",n).eq("stage",e).eq("user_id",r).single();if(t)return t}let{data:i}=await o.from("stage_prompts").select("*").eq("workflow_id",n).eq("stage",e).eq("is_default",!0).single();return i||null}async function em(e,r,n=[],o,i,a){let s=t(),l={stage:e,prompt:r,outputs:n,user_id:o,is_default:!o,workflow_id:a};i&&(void 0!==i.swarm&&(l.swarm=i.swarm),void 0!==i.provider&&(l.provider=i.provider),void 0!==i.model&&(l.model=i.model),void 0!==i.swarm_models&&(l.swarm_models=i.swarm_models));let{data:d,error:u}=await s.from("stage_prompts").upsert(l,{onConflict:o?"workflow_id,stage,user_id":"workflow_id,stage,is_default"}).select().single();if(u)throw u;return d}async function ew(e,r){let n=t().from("stage_prompts").delete().eq("id",e);r&&(n=n.eq("user_id",r));let{error:o}=await n;if(o)throw o}async function eh(e){let r=t(),{data:n,error:o}=await r.from("agents").select("*").eq("user_id",e).order("created_at",{ascending:!1});if(o){if(u(o,"agents"))return[];throw o}return n||[]}async function ey(e,r){let n=t(),{data:o,error:i}=await n.from("agents").select("*").eq("id",e).eq("user_id",r).maybeSingle();if(i){if("PGRST116"===i.code||u(i,"agents"))return null;throw i}return o}async function ek(e,r){let n=t(),o={user_id:e,name:r.name,style:r.style,description:r.description??null,config:r.config??{}},{data:i,error:a}=await n.from("agents").insert(o).select().single();if(a){if(u(a,"agents"))throw Error("Agents table does not exist");throw a}return i}async function e_(e,r,n){let o=t(),i={updated_at:new Date().toISOString()};if(void 0!==n.name&&(i.name=n.name),void 0!==n.style&&(i.style=n.style),void 0!==n.description&&(i.description=n.description),void 0!==n.config&&(i.config=n.config),1===Object.keys(i).length)return ey(e,r);let{data:a,error:s}=await o.from("agents").update(i).eq("id",e).eq("user_id",r).select().single();if(s){if("PGRST116"===s.code||u(s,"agents"))return null;throw s}return a}async function eS(e,r){let n=t(),{error:o}=await n.from("agents").delete().eq("id",e).eq("user_id",r);if(o&&!u(o,"agents"))throw o}e.s(["addLearning",()=>ec,"addTaskComment",()=>el,"addTaskCostEntry",()=>eo,"addTaskLog",()=>et,"appendRunToIndex",()=>E,"assignOrphanTasksToProject",()=>U,"createAgent",()=>ek,"createProject",()=>R,"createTask",()=>v,"deleteAgent",()=>eS,"deleteLearning",()=>ep,"deleteProject",()=>W,"deleteStagePrompt",()=>ew,"deleteTask",()=>j,"deleteTaskComment",()=>ed,"ensureNoCircularDependency",()=>k,"getAgent",()=>ey,"getAgents",()=>eh,"getLearnings",()=>eu,"getNextQueuedTask",()=>q,"getProjectBySlug",()=>N,"getProjectRepos",()=>O,"getProjectWithRepos",()=>L,"getProjects",()=>C,"getStagePrompt",()=>eg,"getStagePrompts",()=>ef,"getTask",()=>b,"getTaskBySlug",()=>x,"getTaskComments",()=>es,"getTaskCostEntries",()=>ei,"getTaskCostSummary",()=>ea,"getTaskLogs",()=>ee,"getTasks",()=>$,"getUserSettings",()=>c,"getWorkflow",()=>H,"getWorkflowNodeByName",()=>Y,"getWorkflowNodes",()=>J,"getWorkflowTransitions",()=>z,"getWorkflowTransitionsFromNode",()=>X,"getWorkflowWithGraph",()=>Z,"getWorkflows",()=>Q,"parseFrontmatter",()=>y,"updateAgent",()=>e_,"updateProject",()=>P,"updateTask",()=>I,"updateWorkflow",()=>V,"updateWorkflowNodes",()=>K,"upsertStagePrompt",()=>em,"upsertUserSettings",()=>p],8112)},29012,e=>{"use strict";var t=e.i(8112),r=e.i(41754);class n extends Error{constraint;detail;constructor(e,t){super(e),this.name="ConflictError",this.constraint=t?.constraint,this.detail=t?.detail}}class o extends Error{code;constructor(e,t){super(e),this.name="RetryableError",this.code=t}}class i extends Error{expectedVersion;actualVersion;entityId;entityType;constructor(e,t,r,n){super(void 0!==n?`Concurrent modification on ${e} ${t}: expected version ${r}, found ${n}`:`Concurrent modification on ${e} ${t}: expected version ${r}, row not updated`),this.name="ConcurrentModificationError",this.entityType=e,this.entityId=t,this.expectedVersion=r,this.actualVersion=n}}function a(e){if(!(e instanceof Error))throw e;let t=e.code??"",r=e.message??"";if("SQLITE_CONSTRAINT_UNIQUE"===t||"SQLITE_CONSTRAINT_PRIMARYKEY"===t||"SQLITE_CONSTRAINT"===t&&(r.includes("UNIQUE")||r.includes("PRIMARY KEY"))||r.includes("UNIQUE constraint failed")||r.includes("PRIMARY KEY constraint failed")){let e=r.match(/(?:UNIQUE|PRIMARY KEY) constraint failed: (.+)/);throw new n(r,{constraint:e?.[1],detail:r})}if("SQLITE_BUSY"===t||"SQLITE_LOCKED"===t||r.includes("database is locked"))throw new o(r,t||"SQLITE_BUSY");throw e}async function s(e){try{return await e()}catch(e){if(e instanceof n||e instanceof o||e instanceof i)throw e;a(e)}}class l{async transaction(e){let t=(0,r.getSQLiteDb)();t.exec("BEGIN IMMEDIATE");try{let r=await e(t);return t.exec("COMMIT"),r}catch(e){try{t.exec("ROLLBACK")}catch{}if(e instanceof n||e instanceof o||e instanceof i)throw e;a(e)}}getTasks(e,r){return t.getTasks(e,r)}getTask(e,r){return t.getTask(e,r)}getTaskBySlug(e,r){return t.getTaskBySlug(e,r)}createTask(e,r,n){return s(()=>t.createTask(e,r,n))}async updateTask(e,n,o,a){let l=a?.expectedVersion;if(void 0!==l){let d=(0,r.getSQLiteDb)();if(0===d.prepare("UPDATE tasks SET version = version + 1 WHERE id = ? AND version = ?").run(e,l).changes){let t=d.prepare("SELECT version FROM tasks WHERE id = ?").get(e);throw new i("task",e,l,t?.version)}let{expectedVersion:u,...c}=a??{};return s(()=>t.updateTask(e,n,o,c))}return(0,r.getSQLiteDb)().prepare("UPDATE tasks SET version = version + 1 WHERE id = ?").run(e),s(()=>t.updateTask(e,n,o,a))}appendRunToIndex(e,r,n){return t.appendRunToIndex(e,r,n)}deleteTask(e,r){return s(()=>t.deleteTask(e,r))}getNextQueuedTask(e){return t.getNextQueuedTask(e)}ensureNoCircularDependency(e,r,n){return t.ensureNoCircularDependency(e,r,n)}getProjects(e){return t.getProjects(e)}getProjectBySlug(e,r){return t.getProjectBySlug(e,r)}getProjectRepos(e){return t.getProjectRepos(e)}getProjectWithRepos(e,r){return t.getProjectWithRepos(e,r)}createProject(e,r,n){return s(()=>t.createProject(e,r,n))}updateProject(e,r,n,o){return t.updateProject(e,r,n,o)}deleteProject(e,r,n){return s(()=>t.deleteProject(e,r,n))}assignOrphanTasksToProject(e,r,n){return t.assignOrphanTasksToProject(e,r,n)}getWorkflows(e){return t.getWorkflows(e)}getWorkflow(e,r){return t.getWorkflow(e,r)}updateWorkflow(e,r,n){return t.updateWorkflow(e,r,n)}getWorkflowNodes(e){return t.getWorkflowNodes(e)}updateWorkflowNodes(e,r,n){return t.updateWorkflowNodes(e,r,n)}getWorkflowNodeByName(e,r){return t.getWorkflowNodeByName(e,r)}getWorkflowTransitions(e){return t.getWorkflowTransitions(e)}getWorkflowTransitionsFromNode(e,r){return t.getWorkflowTransitionsFromNode(e,r)}getWorkflowWithGraph(e,r){return t.getWorkflowWithGraph(e,r)}getTaskLogs(e,r){return t.getTaskLogs(e,r)}addTaskLog(e,r,n,o){return s(()=>t.addTaskLog(e,r,n,o))}addTaskCostEntry(e){return s(()=>t.addTaskCostEntry(e))}getTaskCostEntries(e){return t.getTaskCostEntries(e)}getTaskCostSummary(e){return t.getTaskCostSummary(e)}getTaskComments(e){return t.getTaskComments(e)}addTaskComment(e,r,n,o){return s(()=>t.addTaskComment(e,r,n,o))}deleteTaskComment(e,r){return s(()=>t.deleteTaskComment(e,r))}getLearnings(e,r,n){return t.getLearnings(e,r,n)}addLearning(e,r,n,o){return s(()=>t.addLearning(e,r,n,o))}deleteLearning(e,r){return s(()=>t.deleteLearning(e,r))}getStagePrompts(e,r){return t.getStagePrompts(e,r)}getStagePrompt(e,r,n){return t.getStagePrompt(e,r,n)}upsertStagePrompt(e,r,n,o,i,a){return s(()=>t.upsertStagePrompt(e,r,n,o,i,a))}deleteStagePrompt(e,r){return t.deleteStagePrompt(e,r)}getAgents(e){return t.getAgents(e)}getAgent(e,r){return t.getAgent(e,r)}createAgent(e,r){return s(()=>t.createAgent(e,r))}updateAgent(e,r,n){return t.updateAgent(e,r,n)}deleteAgent(e,r){return t.deleteAgent(e,r)}getUserSettings(e){return t.getUserSettings(e)}upsertUserSettings(e,r,n){return s(()=>t.upsertUserSettings(e,r,n))}async healthCheck(){let e=performance.now();try{return(0,r.getSQLiteDb)().prepare("SELECT 1").get(),{adapter:"sqlite",connected:!0,latencyMs:Math.round(performance.now()-e)}}catch{return{adapter:"sqlite",connected:!1,latencyMs:Math.round(performance.now()-e)}}}}e.s(["SQLiteAdapter",()=>l],29012)},27743,e=>{"use strict";let t=function(){let{SQLiteAdapter:t}=e.r(29012);return new t}();var r=e.i(8112);let n=[["INTAKE","PROGRESS","DONE"]];async function o({workflowId:e,currentNodeName:t,decision:n,retryCount:o,maxRetries:i=3}){if("done"===String(t).trim().toLowerCase())return{nextNodeName:"done",nextStatus:"completed",retryCount:0,error:null,appendLog:{content:"Task completed at done",logType:"checkpoint"},nodeConfig:null};let a=await (0,r.getWorkflowNodeByName)(e,t);if(!a)return{nextNodeName:t,nextStatus:"blocked",retryCount:o,error:`Node '${t}' not found in workflow`,appendLog:{content:`Workflow error: node '${t}' not found`,logType:"error"},nodeConfig:null};if("terminal"===a.node_type)return{nextNodeName:t,nextStatus:"completed",retryCount:0,error:null,appendLog:{content:`Task completed at ${a.label||t}`,logType:"checkpoint"},nodeConfig:a};if("blocked"===n)return{nextNodeName:t,nextStatus:"blocked",retryCount:o,error:null,appendLog:{content:"Blocked: additional input required.",logType:"system"},nodeConfig:a};let s=await (0,r.getWorkflowTransitionsFromNode)(e,a.id),l=function(e){switch(e){case"done":default:return"done";case"blocked":return"blocked";case"failed":case"not_done":return"failed"}}(n),d=s.find(e=>e.condition===l);if(d){let o=(await (0,r.getWorkflowNodes)(e)).find(e=>e.id===d.to_node_id);if(o){let e="terminal"===o.node_type;return{nextNodeName:o.name,nextStatus:e?"completed":"queued",retryCount:0,error:null,appendLog:{content:"done"===n?`Stage completed: ${a.label||t}`:`Transition to ${o.label||o.name}`,logType:"done"===n?"checkpoint":"system"},nodeConfig:o}}}if("done"===n)return{nextNodeName:t,nextStatus:"completed",retryCount:0,error:null,appendLog:{content:`Task completed at ${a.label||t}`,logType:"checkpoint"},nodeConfig:a};let u=o+1;return u<=i?{nextNodeName:t,nextStatus:"queued",retryCount:u,error:null,appendLog:{content:`Retrying (${u}/${i}) for ${a.label||t}`,logType:"system"},nodeConfig:a}:{nextNodeName:t,nextStatus:"failed",retryCount:u,error:"Task failed after max retries.",appendLog:{content:"Task failed after max retries.",logType:"error"},nodeConfig:a}}var i=e.i(54799),a=e.i(33405);let s=e=>"string"==typeof e&&e.trim().length>0,l=e=>({push:e,flush:()=>{}}),d=e=>{let t="",r=0,n=!1,o=t=>{let o=t.trim();if(o)try{let t=JSON.parse(o);n=!0;let i=(e=>{if(!e||"object"!=typeof e)return"";if("assistant"===e.type)return(Array.isArray(e?.message?.content)?e.message.content:[]).flatMap(e=>e?.type==="text"&&s(e.text)?[e.text]:[]).join("");let t=e?.event;return"stream_event"===e.type&&t?.type==="content_block_delta"&&t?.delta?.type==="text_delta"&&s(t?.delta?.text)?t.delta.text:""})(t);if(!i||t?.type==="assistant"&&r>0)return;r+=i.length,e(i)}catch{n||e(`${t}
|
|
9
|
+
`)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;o(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&o(t),t=""}}},u=e=>{let t="",r=!1,n="",o=t=>{let o=t.trim();if(o)try{let t=JSON.parse(o);r=!0,t?.type==="message"&&t?.role==="assistant"&&s(t?.content)&&((t,r)=>{if(t){if(r){if(n&&t.startsWith(n)){let r=t.slice(n.length);r&&e(r),n=t;return}e(t),n+=t;return}if(n&&t.startsWith(n)){let r=t.slice(n.length);r&&e(r),n=t;return}n||(e(t),n=t)}})(t.content,t?.delta===!0)}catch{r||e(`${t}
|
|
10
|
+
`)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;o(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&o(t),t=""}}},c=e=>{let t="",r=!1,n=new Set,o=t=>{let o=t.trim();if(o)try{let t=JSON.parse(o);if(r=!0,t?.type==="item.completed"&&s(t?.item?.id)){if(n.has(t.item.id))return;n.add(t.item.id)}let i=t&&"object"==typeof t?"item.completed"===t.type&&t.item?.type==="agent_message"&&s(t.item?.text)?t.item.text:"item.delta"===t.type&&t.item?.type==="agent_message"&&s(t.delta?.text)?t.delta.text:"":"";i&&e(i)}catch{r||e(`${t}
|
|
11
|
+
`)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;o(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&o(t),t=""}}},p=e=>{let t="",r=!1,n=[/^Thinking\.\.\./,/^<think>/i],o=[/\.\.\.done thinking\.?\s*/,/<\/think>/i];return{push:i=>{t+=i,(()=>{for(;t.length>0;){if(r){let e=-1,n=0;for(let r of o){let o=t.match(r);o&&void 0!==o.index&&(o.index,o[0].length,(-1===e||o.index<e)&&(e=o.index,n=o[0].length))}if(-1!==e){t=t.slice(e+n),r=!1,t=t.replace(/^\s*\n*/,"");continue}return}for(let o of n){let n=t.match(o);if(n&&void 0!==n.index){let o=t.slice(0,n.index);o&&e.push(o),t=t.slice(n.index+n[0].length),r=!0;break}}if(r)continue;let i=Math.max(0,t.length-30);i>0&&(e.push(t.slice(0,i)),t=t.slice(i));return}})()},flush:()=>{!r&&t&&e.push(t),t="",e.flush()}}};async function f({command:e,args:t,timeoutMs:r,signal:n,onDelta:o,onLog:i}){await new Promise((s,l)=>{i&&i("stderr",`$ ${e} ${t.map(e=>e.length>80?e.slice(0,80)+"…":e).join(" ")}
|
|
12
|
+
`);let d=(0,a.spawn)(e,t,{stdio:["ignore","pipe","pipe"],env:{...process.env,CLAUDECODE:void 0}}),u=!1,c="",p=!1,f=e=>{u||(u=!0,clearTimeout(m),n&&n.removeEventListener("abort",g),e?l(e):s())},g=()=>{d.kill("SIGTERM"),f(Error("Chat request aborted."))};n&&n.addEventListener("abort",g,{once:!0});let m=setTimeout(()=>{p=!0,d.kill("SIGKILL"),f(Error(`CLI request timed out after ${r}ms.`))},r);d.stdout.on("data",e=>{let t=e.toString();c+=t,o(t),i&&i("stdout",t)}),d.stderr.on("data",e=>{let t=e.toString();c+=t,i&&i("stderr",t)}),d.on("error",e=>f(e)),d.on("close",(e,t)=>{if(!u&&!p){if(0===e)return void f();f(Error(`CLI command failed (exit=${e??"unknown"} signal=${t??"none"}).${c.trim()?` ${c.trim()}`:""}`))}})})}async function g({provider:e,model:t,prompt:r,identity:n,self:o,skills:i,systemContext:s,signal:g,onDelta:m,onLog:w}){let h,y,k,_,S=(h=!1,y=!1,k="",_=/^(?:```|~~~|#{1,6}\s|>\s|[-*+]\s|\d+\.\s)/,e=>{let t=e.replace(/\u001B\[[0-9;]*[A-Za-z]/g,"").replace(/\r\n/g,"\n").replace(/\r/g,"\n").replace(/[ \t]+\n/g,"\n").replace(/\n{3,}/g,"\n\n");if(!t.trim())return t.includes("\n")&&!h?(h=!0,"\n"):"";let r=h?t.replace(/^\n+/,"\n"):t,n=r.trimStart(),o=_.test(n),i=y&&o&&!h,a=y&&!h&&!i&&!/^\s/.test(r)&&/[.!?)]/.test(k)&&/^[A-Z0-9`(]/.test(r),s=i?`
|
|
13
13
|
|
|
14
14
|
${r}`:a?`
|
|
15
15
|
${r}`:r;h=s.endsWith("\n"),y=y||s.trim().length>0;let l=s.replace(/\s+$/g,"");return l.length>0&&(k=l[l.length-1]??k),s}),T=e=>{let t=S(e);t&&m(t)},$=[],b=[];s&&b.push(s),n&&b.push(`<identity>
|
|
@@ -20,7 +20,7 @@ ${o}
|
|
|
20
20
|
${i}
|
|
21
21
|
</skills>`);let x=b.length>0?b.join("\n\n"):void 0;if((e=>{try{return 0===(0,a.spawnSync)("bash",["-lc","command -v agx >/dev/null 2>&1"],{encoding:"utf8"}).status}catch{return!1}})(0)){let n=x?`${x}
|
|
22
22
|
|
|
23
|
-
${r}`:r;$.push(function({provider:e,model:t,prompt:r}){let n=[e,"-y","--print","--prompt",r];return t&&n.push("--model",t),{command:"agx",args:n,parser:"raw"}}({provider:e,model:t,prompt:n}))}if(0===$.length)throw Error(`No CLI runner available for provider "${e}". Install agx or provider CLI.`);let v=null;for(let e of $){let t="claude-stream-json"===e.parser?
|
|
23
|
+
${r}`:r;$.push(function({provider:e,model:t,prompt:r}){let n=[e,"-y","--print","--prompt",r];return t&&n.push("--model",t),{command:"agx",args:n,parser:"raw"}}({provider:e,model:t,prompt:n}))}if(0===$.length)throw Error(`No CLI runner available for provider "${e}". Install agx or provider CLI.`);let v=null;for(let e of $){let t="claude-stream-json"===e.parser?d(T):"codex-json"===e.parser?c(T):"gemini-stream-json"===e.parser?u(T):l(T),r=e.filterThoughts?p(t):t;try{await f({command:e.command,args:e.args,timeoutMs:6e5,signal:g,onDelta:r.push,onLog:w}),r.flush();return}catch(e){v=e instanceof Error?e:Error(String(e))}}throw v||Error("CLI execution failed.")}var m=e.i(41754);let w=new Set(["outcome","decision","pattern","gotcha"]),h=`You are a memory extractor for a task execution system.
|
|
24
24
|
Given a completed task, extract 0-3 memories worth remembering for future tasks.
|
|
25
25
|
|
|
26
26
|
Each memory must be:
|
|
@@ -32,19 +32,19 @@ Each memory must be:
|
|
|
32
32
|
- gotcha: a surprising pitfall or edge case encountered
|
|
33
33
|
|
|
34
34
|
Return ONLY a JSON array. Return [] if nothing worth remembering.
|
|
35
|
-
Do not wrap in markdown code blocks. Just raw JSON.`;async function
|
|
35
|
+
Do not wrap in markdown code blocks. Just raw JSON.`;async function y(e){let t=[`Goal: ${e.goal}`,`Status: ${e.status}`,e.nodeOutputs?`Node outputs: ${JSON.stringify(e.nodeOutputs).slice(0,2e3)}`:null].filter(Boolean).join("\n"),r=`${h}
|
|
36
36
|
|
|
37
37
|
Task:
|
|
38
|
-
${t}`,n="";try{await
|
|
39
|
-
VALUES (?, ?, ?, ?, ?, ?, ?)`),o=0,a=Date.now();for(let s of r){if(!
|
|
38
|
+
${t}`,n="";try{await g({provider:"claude",model:"claude-haiku-4-5-20251001",prompt:r,onDelta:e=>{n+=e}})}catch(e){return console.warn("[memory-extractor] LLM call failed:",e),[]}var o=n;let i=o.trim().replace(/^```(?:json)?\s*/i,"").replace(/\s*```\s*$/,"").trim();try{let e=JSON.parse(i);if(!Array.isArray(e))return[];return e.filter(e=>"object"==typeof e&&null!==e&&w.has(e.memory_type)&&"string"==typeof e.content&&e.content.trim().length>0).slice(0,3)}catch{return console.warn("[memory-extractor] Failed to parse LLM response:",i.slice(0,200)),[]}}let k=new Set(["outcome","decision","pattern","gotcha"]),_=["agent_id","agentId","agent","participant_id","participantId","assigned_agent","assignedAgent"];function S(e){return"string"!=typeof e?null:e.trim()||null}function T(e){let t=S(e.explicitAgentId);if(t)return t;let r=e.frontmatter||{};for(let e of _){let t=S(r[e]);if(t)return t}return S(e.defaultUserId)||"system"}async function $(e,t,r){let n=(0,m.getSQLiteDb)().prepare(`INSERT OR IGNORE INTO agent_memory (id, agent_id, task_id, memory_type, content, content_hash, created_at)
|
|
39
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)`),o=0,a=Date.now();for(let s of r){if(!k.has(s.memory_type)||!s.content?.trim())continue;let r=(0,i.createHash)("sha256").update(s.content.trim()).digest("hex");n.run((0,i.randomUUID)(),t,e,s.memory_type,s.content.trim(),r,a).changes>0&&o++}return o}async function b(e,t,r){let n=await y(r);if(0===n.length)return;let o=await $(e,t,n);o>0&&console.log(`[memory-extractor] Stored ${o} memories for task ${e}`)}var x=e.i(14927);function v(e,t){return`---
|
|
40
40
|
${Object.entries(e).map(([e,t])=>`${e}: ${null==t?"":String(t)}`).join("\n")}
|
|
41
41
|
---
|
|
42
|
-
${t}`}var E=e.i(10165),j=e.i(41381);function q(e){if(!e)return[];if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)));if("string"==typeof e){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)))}catch{}return Array.from(new Set(t.split(",").map(e=>e.trim()).filter(Boolean)))}return[]}function C(e){if(!e)return[];let t=q(e.depends_on);if(t.length)return t;if("string"==typeof e.content){let{frontmatter:t}=(0,r.parseFrontmatter)(e.content||"");return q(t.depends_on)}return[]}async function N(e,t){if(!e.length)return[];let r=(0,v.createAdminDbClient)().from("tasks").select("id, title, slug, status, stage").in("id",e);t&&(r=r.eq("user_id",t));let{data:n}=await r,o=new Map;if(Array.isArray(n))for(let e of n){var i;e&&e.id&&o.set(e.id,(i=e.id,e?{id:e.id||i||"",title:e.title||void 0,slug:e.slug||void 0,status:e.status,stage:e.stage}:{id:i||""}))}return e.map(e=>o.get(e)).filter(e=>!!e)}async function O(e,t){let r=C(e);return r.length?(await N(r,t)).filter(e=>"completed"!==(e.status||"")):[]}async function A(e,n,o){let i=n||j.LOCAL_USER.id,a=await t.getTask(e,i);if(!a)throw Error(`Task not found: ${e}`);let s=await O(a,i);if(s.length){let t=function(e){if(!e.length)return"";let t=e.slice(0,3).map(e=>{let t=e.title||e.slug||e.id||"(unknown)",r=e.status?` (${e.status})`:"";return`${t}${r}`}),r=`Waiting on dependencies: ${t.join(", ")}`;return e.length>3&&(r+=` +${e.length-3} more`),r}(s),r=(0,v.createAdminDbClient)(),{error:n}=await r.from("tasks").update({status:"blocked",blocked_reason:t,updated_at:new Date().toISOString()}).eq("id",e);if(n&&"42703"!==n.code)throw n;return{started:!1,missingDependencies:s,blockedReason:t}}if(!o?.force&&"queued"===a.status&&!a.blocked_reason)return{started:!1,missingDependencies:[],alreadyQueued:!0};let{frontmatter:l,body:d}=(0,r.parseFrontmatter)(a.content||""),u=o?.ticketType??function(e,t){for(let t of["ticket_type","type","issue_type","kind"])if("spike"===function(e){if("string"!=typeof e)return"task";let t=e.trim().toLowerCase();return"spike"===t||"spikes"===t?"spike":"task"}(e[t]))return"spike";let r=t.match(/^#\s+(.+)$/m),n=r?.[1]?.trim().toLowerCase()||"";return n.startsWith("spike:")||n.startsWith("[spike]")?"spike":"task"}(l,d),c=await (0,E.getQueue)(),p=await c.send(E.QUEUE_NAMES.TASK_PROCESS,{taskId:e,userId:i,signal:"start",ticketType:u}),f=(0,v.createAdminDbClient)(),{error:g}=await f.from("tasks").update({status:"queued",blocked_reason:null,updated_at:new Date().toISOString()}).eq("id",e);if(g&&"42703"!==g.code)throw g;return{started:!!p,jobId:p,missingDependencies:[],ticketType:u}}async function L(e,t){let r=t||j.LOCAL_USER.id,n=(0,v.createAdminDbClient)(),o=n.from("tasks").select("id").contains("depends_on",[e]);t&&(o=o.eq("user_id",t));let{data:i,error:a}=await o,s=Array.isArray(i)?i.map(e=>e?.id).filter(Boolean):[];if(a&&"42703"===a.code){let r=n.from("tasks").select("id, content");t&&(r=r.eq("user_id",t));let{data:o}=await r;s=(Array.isArray(o)?o:[]).filter(t=>C(t).includes(e)).map(e=>e?.id).filter(Boolean)}s.length&&await Promise.all(s.map(e=>A(e,r)))}var D=e.i(14688);async function R(e){let t=(0,v.createAdminDbClient)();await t.from("tasks").update({stage:e.stage,status:"queued",updated_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId)}async function P(e){let t=(0,v.createAdminDbClient)(),{data:r}=await t.from("tasks").select("stage_decisions").eq("id",e.taskId).eq("user_id",e.userId).maybeSingle(),n={...r?.stage_decisions&&"object"==typeof r.stage_decisions?r.stage_decisions:{},[e.stage]:{decision:e.decision.decision,rationale:e.decision.explanation,final_result:e.decision.final_result,decided_at:new Date().toISOString()}},{error:o}=await t.from("tasks").update({stage_decisions:n,updated_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId);if(o&&!function(e){if(!e||"object"!=typeof e)return!1;let t="code"in e?String(e.code):"",r="message"in e?String(e.message).toLowerCase():"";return("PGRST204"===t||"42703"===t)&&r.includes("stage_decisions")}(o))throw o}async function W(e){let n=await t.getTask(e.taskId,e.userId);if(!n)throw Error(`Task ${e.taskId} not found`);let o=n.stage||null,i=new Date().toISOString(),a={taskId:e.taskId,userId:e.userId,title:n.title||null,slug:n.slug||null,timestamp:i},{frontmatter:s,body:l}=(0,r.parseFrontmatter)(n.content),d=$({defaultUserId:e.userId,frontmatter:s});s.stage=e.nextStage,s.status=e.nextStatus,e.error?s.error=e.error:"error"in s&&delete s.error;let u=I(s,l);await t.updateTask(e.taskId,u,e.userId);let c=(0,v.createAdminDbClient)(),{error:p}=await c.from("tasks").update({stage:e.nextStage,status:e.nextStatus,retry_count:e.retryCount,error:e.error,updated_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId);p?console.error(`[applyStageTransition] direct update failed for ${e.taskId}:`,p):console.log(`[applyStageTransition] set ${e.taskId} to status=${e.nextStatus}, stage=${e.nextStage}`),"completed"===e.nextStatus&&(await c.from("tasks").update({completed_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId),await L(e.taskId,e.userId)),("completed"===e.nextStatus||"failed"===e.nextStatus)&&x(e.taskId,d,{goal:String(n.content||n.title||""),status:String(e.nextStatus)}).catch(e=>console.warn("[applyStageTransition] Memory extraction failed:",e)),"blocked"!==e.nextStatus&&"failed"!==e.nextStatus&&(0,D.notifyTaskEvent)({...a,eventType:"task.stage_complete",stage:o,previousStage:o,nextStage:e.nextStage,status:e.nextStatus,details:{nextStatus:e.nextStatus}}),"completed"===e.nextStatus&&(0,D.notifyTaskEvent)({...a,eventType:"task.completed",stage:e.nextStage,status:e.nextStatus,details:{previousStage:o,nextStage:e.nextStage}}),"failed"===e.nextStatus&&(0,D.notifyTaskEvent)({...a,eventType:"task.failed",stage:e.nextStage,status:e.nextStatus,error:e.error,details:{previousStage:o}})}async function U(e){await t.addTaskLog(e.taskId,e.content,e.logType)}async function M(e){await t.addTaskComment(e.taskId,e.content,e.authorType||"agent")}async function B(e){let n=await t.getTask(e.taskId,e.userId);if(!n)return;let{frontmatter:o,body:i}=(0,r.parseFrontmatter)(n.content),a=$({defaultUserId:e.userId,frontmatter:o});o.status="failed",o.error=e.reason||"Cancelled";let s=I(o,i);await t.updateTask(e.taskId,s,e.userId),await t.addTaskLog(e.taskId,e.reason||"Task cancelled","error"),x(e.taskId,a,{goal:String(n.content||n.title||""),status:"failed"}).catch(e=>console.warn("[markCancelled] Memory extraction failed:",e));let l=(0,v.createAdminDbClient)();await l.from("tasks").update({status:"failed",error:e.reason||"Cancelled",updated_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId),(0,D.notifyTaskEvent)({taskId:e.taskId,userId:e.userId,eventType:"task.failed",title:n.title||null,slug:n.slug||null,stage:n.stage||null,status:"failed",error:e.reason||"Cancelled",timestamp:new Date().toISOString(),details:{previousStage:n.stage||null}})}async function F(e){let{taskId:r,userId:n,signal:o,payload:i,ticketType:a="task"}=e.data,s=await t.getTask(r,n);if(!s)return void console.log(`[processor] Task ${r} not found, skipping`);if("completed"===s.status||"failed"===s.status)return void console.log(`[processor] Task ${r} is ${s.status}, skipping`);let l=s.stage;switch(o){case"start":await Q(r,l,n);break;case"agentResult":await H(r,l,n,i,a,s.retry_count||0,s.workflow_id&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(s.workflow_id)?s.workflow_id:null);break;case"humanInput":await V(r,i);break;case"daemonStep":await J(r,i);break;case"cancel":await Y(r,n,i?.reason);break;default:console.warn(`[processor] Unknown signal: ${o}`)}}async function G(e){for(let t of e)try{await F(t)}catch(e){throw console.error(`[processor] Error processing job ${t.id}:`,e),e}}async function Q(e,t,r){console.log(`[processor] Starting task ${e} at stage ${t}`),await R({taskId:e,stage:t,userId:r}),await U({taskId:e,content:`Task started at stage: ${t}`,logType:"system"})}async function H(e,t,r,i,a,s,l=null){let d,u,c;console.log(`[processor] Processing agent result for ${e}: ${i.decision}`),await P({taskId:e,stage:t,decision:i,userId:r});let p=Array.isArray(i.comments)?i.comments.map(e=>String(e||"").trim()).filter(Boolean):[],f=String(i.comment||i.log||i.final_result||"").trim();for(let t of p.length>0?p:f.split("\n").map(e=>e.trim()).filter(Boolean))await M({taskId:e,content:t,authorType:"agent"});let g=null,m=null;if(l){let e=await o({workflowId:l,currentNodeName:t,decision:i.decision,retryCount:s,maxRetries:3});d=e.nextNodeName,u=e.nextStatus,c=e.retryCount,g=e.error,m=e.appendLog,console.log(`[processor] Workflow transition: ${t} -> ${d} (workflow: ${l})`)}else{let e=function({currentStage:e,decision:t,ticketType:r,retryCount:o,maxRetries:i=3}){let a=function(e,t){if("spike"===t)return"INTAKE"===e?"PROGRESS":"DONE"===e?null:"DONE";for(let t of n){let r=t.indexOf(e);if(-1!==r){if(r>=t.length-1)return null;return t[r+1]}}return null}(e,r);if("done"===t)return a?{nextStage:a,nextStatus:"queued",retryCount:0,error:null,appendLog:{content:`Stage completed: ${e}`,logType:"checkpoint"}}:{nextStage:"DONE",nextStatus:"completed",retryCount:0,error:null,appendLog:{content:`Task completed at stage ${e}.`,logType:"checkpoint"}};if("blocked"===t)return{nextStage:e,nextStatus:"blocked",retryCount:o,error:null,appendLog:{content:"Blocked: additional input required.",logType:"system"}};if("PROGRESS"===e)return{nextStage:"PROGRESS",nextStatus:"queued",retryCount:0,error:null,appendLog:{content:"Stage not done. Retrying in PROGRESS.",logType:"system"}};let s=o+1;return s<=i?{nextStage:e,nextStatus:"queued",retryCount:s,error:null,appendLog:{content:`Retrying (${s}/${i}) for stage ${e}.`,logType:"system"}}:{nextStage:e,nextStatus:"failed",retryCount:s,error:"Task failed.",appendLog:{content:"Task failed.",logType:"error"}}}({currentStage:t,decision:i.decision,ticketType:a,retryCount:s,maxRetries:3});d=e.nextStage,u=e.nextStatus,c=e.retryCount,g=e.error,m=e.appendLog}if(await W({taskId:e,nextStage:d,nextStatus:u,retryCount:c,error:g?i.explanation||g:null,userId:r}),m){let t="error"===m.logType&&i.explanation||"system"===m.logType&&i.explanation?i.explanation:m.content;await U({taskId:e,content:t,logType:m.logType})}console.log(`[processor] Task ${e} transitioned: ${t} -> ${d}`)}async function V(e,t){console.log(`[processor] Recording human input for ${e}`),await M({taskId:e,content:t.content,authorType:t.authorType||"user"})}async function J(e,t){let r=t.provider?` provider=${t.provider}`:"",n=t.model?` model=${t.model}`:"",o=t.role?` role=${t.role}`:"",i="number"==typeof t.iteration?` iter=${t.iteration}`:"",a="exit"===t.phase?` exit=${t.exit_code}`:"",s=t.error?` error=${t.error}`:"",l=Array.isArray(t.args)?t.args.join(" "):"",d=t.stdout_tail?`
|
|
42
|
+
${t}`}var I=e.i(10165),E=e.i(41381);function j(e){if(!e)return[];if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)));if("string"==typeof e){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)))}catch{}return Array.from(new Set(t.split(",").map(e=>e.trim()).filter(Boolean)))}return[]}function q(e){if(!e)return[];let t=j(e.depends_on);if(t.length)return t;if("string"==typeof e.content){let{frontmatter:t}=(0,r.parseFrontmatter)(e.content||"");return j(t.depends_on)}return[]}async function C(e,t){if(!e.length)return[];let r=(0,x.createAdminDbClient)().from("tasks").select("id, title, slug, status, stage").in("id",e);t&&(r=r.eq("user_id",t));let{data:n}=await r,o=new Map;if(Array.isArray(n))for(let e of n){var i;e&&e.id&&o.set(e.id,(i=e.id,e?{id:e.id||i||"",title:e.title||void 0,slug:e.slug||void 0,status:e.status,stage:e.stage}:{id:i||""}))}return e.map(e=>o.get(e)).filter(e=>!!e)}async function N(e,t){let r=q(e);return r.length?(await C(r,t)).filter(e=>"completed"!==(e.status||"")):[]}async function O(e,n,o){let i=n||E.LOCAL_USER.id,a=await t.getTask(e,i);if(!a)throw Error(`Task not found: ${e}`);let s=await N(a,i);if(s.length){let t=function(e){if(!e.length)return"";let t=e.slice(0,3).map(e=>{let t=e.title||e.slug||e.id||"(unknown)",r="INTAKE"===e.stage?"awaiting approval":e.status||"",n=r?` (${r})`:"";return`${t}${n}`}),r=`Waiting on dependencies: ${t.join(", ")}`;return e.length>3&&(r+=` +${e.length-3} more`),r}(s),r=(0,x.createAdminDbClient)(),{error:n}=await r.from("tasks").update({status:"blocked",blocked_reason:t,updated_at:new Date().toISOString()}).eq("id",e);if(n&&"42703"!==n.code)throw n;return{started:!1,missingDependencies:s,blockedReason:t}}if(!o?.force&&"queued"===a.status&&!a.blocked_reason)return{started:!1,missingDependencies:[],alreadyQueued:!0};let{frontmatter:l,body:d}=(0,r.parseFrontmatter)(a.content||""),u=o?.ticketType??function(e,t){for(let t of["ticket_type","type","issue_type","kind"])if("spike"===function(e){if("string"!=typeof e)return"task";let t=e.trim().toLowerCase();return"spike"===t||"spikes"===t?"spike":"task"}(e[t]))return"spike";let r=t.match(/^#\s+(.+)$/m),n=r?.[1]?.trim().toLowerCase()||"";return n.startsWith("spike:")||n.startsWith("[spike]")?"spike":"task"}(l,d),c=await (0,I.getQueue)(),p=await c.send(I.QUEUE_NAMES.TASK_PROCESS,{taskId:e,userId:i,signal:"start",ticketType:u}),f=(0,x.createAdminDbClient)(),{error:g}=await f.from("tasks").update({status:"queued",blocked_reason:null,updated_at:new Date().toISOString()}).eq("id",e);if(g&&"42703"!==g.code)throw g;return{started:!!p,jobId:p,missingDependencies:[],ticketType:u}}async function A(e,t){let r=t||E.LOCAL_USER.id,n=(0,x.createAdminDbClient)(),o=n.from("tasks").select("id").contains("depends_on",[e]);t&&(o=o.eq("user_id",t));let{data:i,error:a}=await o,s=Array.isArray(i)?i.map(e=>e?.id).filter(Boolean):[];if(a&&"42703"===a.code){let r=n.from("tasks").select("id, content");t&&(r=r.eq("user_id",t));let{data:o}=await r;s=(Array.isArray(o)?o:[]).filter(t=>q(t).includes(e)).map(e=>e?.id).filter(Boolean)}s.length&&await Promise.all(s.map(e=>O(e,r)))}var L=e.i(14688);async function D(e){let t=(0,x.createAdminDbClient)();await t.from("tasks").update({stage:e.stage,status:"queued",updated_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId)}async function R(e){let t=(0,x.createAdminDbClient)(),{data:r}=await t.from("tasks").select("stage_decisions").eq("id",e.taskId).eq("user_id",e.userId).maybeSingle(),n={...r?.stage_decisions&&"object"==typeof r.stage_decisions?r.stage_decisions:{},[e.stage]:{decision:e.decision.decision,rationale:e.decision.explanation,final_result:e.decision.final_result,decided_at:new Date().toISOString()}},{error:o}=await t.from("tasks").update({stage_decisions:n,updated_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId);if(o&&!function(e){if(!e||"object"!=typeof e)return!1;let t="code"in e?String(e.code):"",r="message"in e?String(e.message).toLowerCase():"";return("PGRST204"===t||"42703"===t)&&r.includes("stage_decisions")}(o))throw o}async function P(e){let n=await t.getTask(e.taskId,e.userId);if(!n)throw Error(`Task ${e.taskId} not found`);let o=n.stage||null,i=new Date().toISOString(),a={taskId:e.taskId,userId:e.userId,title:n.title||null,slug:n.slug||null,timestamp:i},{frontmatter:s,body:l}=(0,r.parseFrontmatter)(n.content),d=T({defaultUserId:e.userId,frontmatter:s});s.stage=e.nextStage,s.status=e.nextStatus,e.error?s.error=e.error:"error"in s&&delete s.error;let u=v(s,l);await t.updateTask(e.taskId,u,e.userId);let c=(0,x.createAdminDbClient)(),{error:p}=await c.from("tasks").update({stage:e.nextStage,status:e.nextStatus,retry_count:e.retryCount,error:e.error,updated_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId);p?console.error(`[applyStageTransition] direct update failed for ${e.taskId}:`,p):console.log(`[applyStageTransition] set ${e.taskId} to status=${e.nextStatus}, stage=${e.nextStage}`),"completed"===e.nextStatus&&(await c.from("tasks").update({completed_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId),await A(e.taskId,e.userId)),("completed"===e.nextStatus||"failed"===e.nextStatus)&&b(e.taskId,d,{goal:String(n.content||n.title||""),status:String(e.nextStatus)}).catch(e=>console.warn("[applyStageTransition] Memory extraction failed:",e)),"blocked"!==e.nextStatus&&"failed"!==e.nextStatus&&(0,L.notifyTaskEvent)({...a,eventType:"task.stage_complete",stage:o,previousStage:o,nextStage:e.nextStage,status:e.nextStatus,details:{nextStatus:e.nextStatus}}),"completed"===e.nextStatus&&(0,L.notifyTaskEvent)({...a,eventType:"task.completed",stage:e.nextStage,status:e.nextStatus,details:{previousStage:o,nextStage:e.nextStage}}),"failed"===e.nextStatus&&(0,L.notifyTaskEvent)({...a,eventType:"task.failed",stage:e.nextStage,status:e.nextStatus,error:e.error,details:{previousStage:o}})}async function W(e){await t.addTaskLog(e.taskId,e.content,e.logType)}async function U(e){await t.addTaskComment(e.taskId,e.content,e.authorType||"agent")}async function M(e){let n=await t.getTask(e.taskId,e.userId);if(!n)return;let{frontmatter:o,body:i}=(0,r.parseFrontmatter)(n.content),a=T({defaultUserId:e.userId,frontmatter:o});o.status="failed",o.error=e.reason||"Cancelled";let s=v(o,i);await t.updateTask(e.taskId,s,e.userId),await t.addTaskLog(e.taskId,e.reason||"Task cancelled","error"),b(e.taskId,a,{goal:String(n.content||n.title||""),status:"failed"}).catch(e=>console.warn("[markCancelled] Memory extraction failed:",e));let l=(0,x.createAdminDbClient)();await l.from("tasks").update({status:"failed",error:e.reason||"Cancelled",updated_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId),(0,L.notifyTaskEvent)({taskId:e.taskId,userId:e.userId,eventType:"task.failed",title:n.title||null,slug:n.slug||null,stage:n.stage||null,status:"failed",error:e.reason||"Cancelled",timestamp:new Date().toISOString(),details:{previousStage:n.stage||null}})}async function B(e){let{taskId:r,userId:n,signal:o,payload:i,ticketType:a="task"}=e.data,s=await t.getTask(r,n);if(!s)return void console.log(`[processor] Task ${r} not found, skipping`);if("completed"===s.status||"failed"===s.status)return void console.log(`[processor] Task ${r} is ${s.status}, skipping`);let l=s.stage;switch(o){case"start":await G(r,l,n);break;case"agentResult":await Q(r,l,n,i,a,s.retry_count||0,s.workflow_id&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(s.workflow_id)?s.workflow_id:null);break;case"humanInput":await H(r,i);break;case"daemonStep":await V(r,i);break;case"cancel":await J(r,n,i?.reason);break;default:console.warn(`[processor] Unknown signal: ${o}`)}}async function F(e){for(let t of e)try{await B(t)}catch(e){throw console.error(`[processor] Error processing job ${t.id}:`,e),e}}async function G(e,t,r){console.log(`[processor] Starting task ${e} at stage ${t}`),await D({taskId:e,stage:t,userId:r}),await W({taskId:e,content:`Task started at stage: ${t}`,logType:"system"})}async function Q(e,t,r,i,a,s,l=null){let d,u,c;console.log(`[processor] Processing agent result for ${e}: ${i.decision}`),await R({taskId:e,stage:t,decision:i,userId:r});let p=Array.isArray(i.comments)?i.comments.map(e=>String(e||"").trim()).filter(Boolean):[],f=String(i.comment||i.log||i.final_result||"").trim();for(let t of p.length>0?p:f.split("\n").map(e=>e.trim()).filter(Boolean))await U({taskId:e,content:t,authorType:"agent"});let g=null,m=null;if(l){let e=await o({workflowId:l,currentNodeName:t,decision:i.decision,retryCount:s,maxRetries:3});d=e.nextNodeName,u=e.nextStatus,c=e.retryCount,g=e.error,m=e.appendLog,console.log(`[processor] Workflow transition: ${t} -> ${d} (workflow: ${l})`)}else{let e=function({currentStage:e,decision:t,ticketType:r,retryCount:o,maxRetries:i=3}){let a=function(e,t){if("spike"===t)return"INTAKE"===e?"PROGRESS":"DONE"===e?null:"DONE";for(let t of n){let r=t.indexOf(e);if(-1!==r){if(r>=t.length-1)return null;return t[r+1]}}return null}(e,r);if("done"===t)return a?{nextStage:a,nextStatus:"queued",retryCount:0,error:null,appendLog:{content:`Stage completed: ${e}`,logType:"checkpoint"}}:{nextStage:"DONE",nextStatus:"completed",retryCount:0,error:null,appendLog:{content:`Task completed at stage ${e}.`,logType:"checkpoint"}};if("blocked"===t)return{nextStage:e,nextStatus:"blocked",retryCount:o,error:null,appendLog:{content:"Blocked: additional input required.",logType:"system"}};if("PROGRESS"===e)return{nextStage:"PROGRESS",nextStatus:"queued",retryCount:0,error:null,appendLog:{content:"Stage not done. Retrying in PROGRESS.",logType:"system"}};let s=o+1;return s<=i?{nextStage:e,nextStatus:"queued",retryCount:s,error:null,appendLog:{content:`Retrying (${s}/${i}) for stage ${e}.`,logType:"system"}}:{nextStage:e,nextStatus:"failed",retryCount:s,error:"Task failed.",appendLog:{content:"Task failed.",logType:"error"}}}({currentStage:t,decision:i.decision,ticketType:a,retryCount:s,maxRetries:3});d=e.nextStage,u=e.nextStatus,c=e.retryCount,g=e.error,m=e.appendLog}if(await P({taskId:e,nextStage:d,nextStatus:u,retryCount:c,error:g?i.explanation||g:null,userId:r}),m){let t="error"===m.logType&&i.explanation||"system"===m.logType&&i.explanation?i.explanation:m.content;await W({taskId:e,content:t,logType:m.logType})}console.log(`[processor] Task ${e} transitioned: ${t} -> ${d}`)}async function H(e,t){console.log(`[processor] Recording human input for ${e}`),await U({taskId:e,content:t.content,authorType:t.authorType||"user"})}async function V(e,t){let r=t.provider?` provider=${t.provider}`:"",n=t.model?` model=${t.model}`:"",o=t.role?` role=${t.role}`:"",i="number"==typeof t.iteration?` iter=${t.iteration}`:"",a="exit"===t.phase?` exit=${t.exit_code}`:"",s=t.error?` error=${t.error}`:"",l=Array.isArray(t.args)?t.args.join(" "):"",d=t.stdout_tail?`
|
|
43
43
|
stdout_tail:
|
|
44
44
|
${t.stdout_tail}`:"",u=t.stderr_tail?`
|
|
45
45
|
stderr_tail:
|
|
46
46
|
${t.stderr_tail}`:"",c=`[execution/${t.kind||"daemon"}] ${t.phase||"event"} ${t.label||""}${r}${n}${o}${i}${a}${s}`.trim()+(l?`
|
|
47
47
|
args: ${l}`:"")+(t.duration_ms?`
|
|
48
|
-
duration_ms: ${t.duration_ms}`:"")+d+u;await
|
|
48
|
+
duration_ms: ${t.duration_ms}`:"")+d+u;await W({taskId:e,content:c,logType:"system"})}async function J(e,t,r){console.log(`[processor] Cancelling task ${e}: ${r||"No reason"}`),await M({taskId:e,reason:r,userId:t})}e.s(["taskProcessor",()=>F],27743)}];
|
|
49
49
|
|
|
50
50
|
//# sourceMappingURL=Projects_Agents_agx-cloud_lib_6a5d1c80._.js.map
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
module.exports=[14189,e=>{"use strict";var t=e.i(33405);let r=e=>"string"==typeof e&&e.trim().length>0,n
|
|
2
|
-
`)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;a(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&a(t),t=""}}},
|
|
3
|
-
`)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;a(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&a(t),t=""}}},
|
|
4
|
-
`)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;a(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&a(t),t=""}}},
|
|
5
|
-
`);let d=(0,t.spawn)(e,r,{stdio:["ignore","pipe","pipe"],env:{...process.env,CLAUDECODE:void 0}}),c=!1,m="",
|
|
1
|
+
module.exports=[14189,e=>{"use strict";var t=e.i(33405);let r=e=>"string"==typeof e&&e.trim().length>0,n=e=>({push:e,flush:()=>{}}),o=e=>{let t="",n=0,o=!1,a=t=>{let a=t.trim();if(a)try{let t=JSON.parse(a);o=!0;let i=(e=>{if(!e||"object"!=typeof e)return"";if("assistant"===e.type)return(Array.isArray(e?.message?.content)?e.message.content:[]).flatMap(e=>e?.type==="text"&&r(e.text)?[e.text]:[]).join("");let t=e?.event;return"stream_event"===e.type&&t?.type==="content_block_delta"&&t?.delta?.type==="text_delta"&&r(t?.delta?.text)?t.delta.text:""})(t);if(!i||t?.type==="assistant"&&n>0)return;n+=i.length,e(i)}catch{o||e(`${t}
|
|
2
|
+
`)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;a(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&a(t),t=""}}},a=e=>{let t="",n=!1,o="",a=t=>{let a=t.trim();if(a)try{let t=JSON.parse(a);n=!0,t?.type==="message"&&t?.role==="assistant"&&r(t?.content)&&((t,r)=>{if(t){if(r){if(o&&t.startsWith(o)){let r=t.slice(o.length);r&&e(r),o=t;return}e(t),o+=t;return}if(o&&t.startsWith(o)){let r=t.slice(o.length);r&&e(r),o=t;return}o||(e(t),o=t)}})(t.content,t?.delta===!0)}catch{n||e(`${t}
|
|
3
|
+
`)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;a(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&a(t),t=""}}},i=e=>{let t="",n=!1,o=new Set,a=t=>{let a=t.trim();if(a)try{let t=JSON.parse(a);if(n=!0,t?.type==="item.completed"&&r(t?.item?.id)){if(o.has(t.item.id))return;o.add(t.item.id)}let i=t&&"object"==typeof t?"item.completed"===t.type&&t.item?.type==="agent_message"&&r(t.item?.text)?t.item.text:"item.delta"===t.type&&t.item?.type==="agent_message"&&r(t.delta?.text)?t.delta.text:"":"";i&&e(i)}catch{n||e(`${t}
|
|
4
|
+
`)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;a(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&a(t),t=""}}},s=e=>{let t="",r=!1,n=[/^Thinking\.\.\./,/^<think>/i],o=[/\.\.\.done thinking\.?\s*/,/<\/think>/i];return{push:a=>{t+=a,(()=>{for(;t.length>0;){if(r){let e=-1,n=0;for(let r of o){let o=t.match(r);o&&void 0!==o.index&&(o.index,o[0].length,(-1===e||o.index<e)&&(e=o.index,n=o[0].length))}if(-1!==e){t=t.slice(e+n),r=!1,t=t.replace(/^\s*\n*/,"");continue}return}for(let o of n){let n=t.match(o);if(n&&void 0!==n.index){let o=t.slice(0,n.index);o&&e.push(o),t=t.slice(n.index+n[0].length),r=!0;break}}if(r)continue;let a=Math.max(0,t.length-30);a>0&&(e.push(t.slice(0,a)),t=t.slice(a));return}})()},flush:()=>{!r&&t&&e.push(t),t="",e.flush()}}};async function l({command:e,args:r,timeoutMs:n,signal:o,onDelta:a,onLog:i}){await new Promise((s,l)=>{i&&i("stderr",`$ ${e} ${r.map(e=>e.length>80?e.slice(0,80)+"…":e).join(" ")}
|
|
5
|
+
`);let d=(0,t.spawn)(e,r,{stdio:["ignore","pipe","pipe"],env:{...process.env,CLAUDECODE:void 0}}),c=!1,m="",u=!1,p=e=>{c||(c=!0,clearTimeout(g),o&&o.removeEventListener("abort",f),e?l(e):s())},f=()=>{d.kill("SIGTERM"),p(Error("Chat request aborted."))};o&&o.addEventListener("abort",f,{once:!0});let g=setTimeout(()=>{u=!0,d.kill("SIGKILL"),p(Error(`CLI request timed out after ${n}ms.`))},n);d.stdout.on("data",e=>{let t=e.toString();m+=t,a(t),i&&i("stdout",t)}),d.stderr.on("data",e=>{let t=e.toString();m+=t,i&&i("stderr",t)}),d.on("error",e=>p(e)),d.on("close",(e,t)=>{if(!c&&!u){if(0===e)return void p();p(Error(`CLI command failed (exit=${e??"unknown"} signal=${t??"none"}).${m.trim()?` ${m.trim()}`:""}`))}})})}async function d({provider:e,model:r,prompt:d,identity:c,self:m,skills:u,systemContext:p,signal:f,onDelta:g,onLog:h}){let y,_,w,v,k=(y=!1,_=!1,w="",v=/^(?:```|~~~|#{1,6}\s|>\s|[-*+]\s|\d+\.\s)/,e=>{let t=e.replace(/\u001B\[[0-9;]*[A-Za-z]/g,"").replace(/\r\n/g,"\n").replace(/\r/g,"\n").replace(/[ \t]+\n/g,"\n").replace(/\n{3,}/g,"\n\n");if(!t.trim())return t.includes("\n")&&!y?(y=!0,"\n"):"";let r=y?t.replace(/^\n+/,"\n"):t,n=r.trimStart(),o=v.test(n),a=_&&o&&!y,i=_&&!y&&!a&&!/^\s/.test(r)&&/[.!?)]/.test(w)&&/^[A-Z0-9`(]/.test(r),s=a?`
|
|
6
6
|
|
|
7
7
|
${r}`:i?`
|
|
8
|
-
${r}`:r;y=s.endsWith("\n"),_=_||s.trim().length>0;let l=s.replace(/\s+$/g,"");return l.length>0&&(w=l[l.length-1]??w),s}),
|
|
8
|
+
${r}`:r;y=s.endsWith("\n"),_=_||s.trim().length>0;let l=s.replace(/\s+$/g,"");return l.length>0&&(w=l[l.length-1]??w),s}),x=e=>{let t=k(e);t&&g(t)},b=[],S=[];p&&S.push(p),c&&S.push(`<identity>
|
|
9
9
|
${c}
|
|
10
10
|
</identity>`),m&&S.push(`<self>
|
|
11
11
|
${m}
|
|
12
|
-
</self>`),
|
|
13
|
-
${
|
|
12
|
+
</self>`),u&&S.push(`<skills>
|
|
13
|
+
${u}
|
|
14
14
|
</skills>`);let j=S.length>0?S.join("\n\n"):void 0;if((e=>{try{return 0===(0,t.spawnSync)("bash",["-lc","command -v agx >/dev/null 2>&1"],{encoding:"utf8"}).status}catch{return!1}})(0)){let t=j?`${j}
|
|
15
15
|
|
|
16
|
-
${
|
|
16
|
+
${d}`:d;b.push(function({provider:e,model:t,prompt:r}){let n=[e,"-y","--print","--prompt",r];return t&&n.push("--model",t),{command:"agx",args:n,parser:"raw"}}({provider:e,model:r,prompt:t}))}if(0===b.length)throw Error(`No CLI runner available for provider "${e}". Install agx or provider CLI.`);let $=null;for(let e of b){let t="claude-stream-json"===e.parser?o(x):"codex-json"===e.parser?i(x):"gemini-stream-json"===e.parser?a(x):n(x),r=e.filterThoughts?s(t):t;try{await l({command:e.command,args:e.args,timeoutMs:6e5,signal:f,onDelta:r.push,onLog:h}),r.flush();return}catch(e){$=e instanceof Error?e:Error(String(e))}}throw $||Error("CLI execution failed.")}e.s(["runCliResponse",()=>d],14189)},46850,e=>{"use strict";var t=e.i(54799),r=e.i(14189),n=e.i(74949);let o=new Set(["outcome","decision","pattern","gotcha"]),a=`You are a memory extractor for a task execution system.
|
|
17
17
|
Given a completed task, extract 0-3 memories worth remembering for future tasks.
|
|
18
18
|
|
|
19
19
|
Each memory must be:
|
|
@@ -29,6 +29,6 @@ Do not wrap in markdown code blocks. Just raw JSON.`;async function i(e){let t=[
|
|
|
29
29
|
|
|
30
30
|
Task:
|
|
31
31
|
${t}`,i="";try{await (0,r.runCliResponse)({provider:"claude",model:"claude-haiku-4-5-20251001",prompt:n,onDelta:e=>{i+=e}})}catch(e){return console.warn("[memory-extractor] LLM call failed:",e),[]}var s=i;let l=s.trim().replace(/^```(?:json)?\s*/i,"").replace(/\s*```\s*$/,"").trim();try{let e=JSON.parse(l);if(!Array.isArray(e))return[];return e.filter(e=>"object"==typeof e&&null!==e&&o.has(e.memory_type)&&"string"==typeof e.content&&e.content.trim().length>0).slice(0,3)}catch{return console.warn("[memory-extractor] Failed to parse LLM response:",l.slice(0,200)),[]}}let s=new Set(["outcome","decision","pattern","gotcha"]),l=["agent_id","agentId","agent","participant_id","participantId","assigned_agent","assignedAgent"];function d(e){return"string"!=typeof e?null:e.trim()||null}function c(e){let t=d(e.explicitAgentId);if(t)return t;let r=e.frontmatter||{};for(let e of l){let t=d(r[e]);if(t)return t}return d(e.defaultUserId)||"system"}async function m(e,r,o){let a=(0,n.getSQLiteDb)().prepare(`INSERT OR IGNORE INTO agent_memory (id, agent_id, task_id, memory_type, content, content_hash, created_at)
|
|
32
|
-
VALUES (?, ?, ?, ?, ?, ?, ?)`),i=0,l=Date.now();for(let n of o){if(!s.has(n.memory_type)||!n.content?.trim())continue;let o=(0,t.createHash)("sha256").update(n.content.trim()).digest("hex");a.run((0,t.randomUUID)(),r,e,n.memory_type,n.content.trim(),o,l).changes>0&&i++}return i}async function
|
|
32
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)`),i=0,l=Date.now();for(let n of o){if(!s.has(n.memory_type)||!n.content?.trim())continue;let o=(0,t.createHash)("sha256").update(n.content.trim()).digest("hex");a.run((0,t.randomUUID)(),r,e,n.memory_type,n.content.trim(),o,l).changes>0&&i++}return i}async function u(e,t,r){let n=await i(r);if(0===n.length)return;let o=await m(e,t,n);o>0&&console.log(`[memory-extractor] Stored ${o} memories for task ${e}`)}e.s(["extractAndStoreMemories",()=>u,"resolveMemoryAgentId",()=>c])},19130,e=>{"use strict";var t=e.i(54799),r=e.i(89970),n=e.i(74949),o=e.i(46850),a=e.i(62636);async function i(e){let t=(0,r.createAdminDbClient)(),{data:n,error:o}=await t.from("task_comments").select("*").eq("task_id",e).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(o){let e="string"==typeof o.message?o.message:"";if("42P01"===o.code||"PGRST205"===o.code||e.includes('relation "task_comments" does not exist')||e.includes("Could not find the table 'agx.task_comments'")||e.includes("Could not find the table 'public.task_comments'"))return[];throw o}return n||[]}async function s(e){let t=(0,r.createAdminDbClient)(),n=e.user_id,o=t.from("learnings").select("*").eq("scope","task").eq("scope_id",e.id);n&&o.eq("user_id",n);let i=new Set;if(e.project_id&&i.add(e.project_id),e.project&&i.add(e.project),!e.project_id&&e.project){let t=await (0,a.getProjectBySlug)(e.project,n);t?.id&&i.add(t.id)}let s=Array.from(i),l=s.length?t.from("learnings").select("*").eq("scope","project").in("scope_id",s):null;l&&n&&l.eq("user_id",n);let d=t.from("learnings").select("*").eq("scope","global");n&&d.eq("user_id",n);let[{data:c,error:m},{data:u,error:p},f]=await Promise.all([o,d,l??Promise.resolve({data:[],error:null})]);if(m)throw m;if(p)throw p;if(f?.error)throw f.error;return{task:c||[],project:f?.data||[],global:u||[]}}async function l(e){let t,n=e.stage;if(!n)return{prompt:null};let o=(0,r.createAdminDbClient)(),i=(t=e.workflow_id)&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)?e.workflow_id:"";if(!i&&e.project_id)try{let t=await (0,a.getProjectWithRepos)(e.project_id,e.user_id);t?.workflow_id&&(i=t.workflow_id)}catch{}i||(i=a.DEFAULT_WORKFLOW_ID);try{let{data:e,error:t}=await o.from("workflow_nodes").select("*").eq("workflow_id",i).eq("name",n).maybeSingle();if(!t&&e){let t=e.metadata&&"object"==typeof e.metadata?e.metadata:{},r="boolean"==typeof t.swarm&&t.swarm,n=Array.isArray(t.swarm_models)?t.swarm_models:void 0;if(e.prompt)return{prompt:e.prompt,swarm:r,provider:e.provider||void 0,model:e.model||void 0,swarm_models:n};return{prompt:null,swarm:r,provider:e.provider||void 0,model:e.model||void 0,swarm_models:n}}}catch{}try{let t=[];t.push(o.from("stage_prompts").select("*").eq("stage",n).eq("is_default",!0).eq("workflow_id",i).maybeSingle()),e.user_id&&t.push(o.from("stage_prompts").select("*").eq("stage",n).eq("user_id",e.user_id).eq("workflow_id",i).maybeSingle());let r=await Promise.all(t),a=r[0]?.data||null,s=e.user_id?r[1]?.data:null,l=s?.prompt||a?.prompt||null;if(l)return{prompt:l,swarm:s?.swarm??a?.swarm??!1,provider:s?.provider||a?.provider,model:s?.model||a?.model,swarm_models:s?.swarm_models||a?.swarm_models}}catch{}let s=a.defaultStagePrompts[n];return s?.prompt?{prompt:s.prompt,swarm:s.swarm??!1,provider:s.provider,model:s.model,swarm_models:s.swarm_models}:{prompt:null}}async function d(e,t){let r=e.project_id,n=e.project||void 0,o=null;if(r&&(o=await (0,a.getProjectWithRepos)(r,e.user_id)),!o&&n){let t=await (0,a.getProjectBySlug)(n,e.user_id);if(t){let e=await (0,a.getProjectRepos)(t.id);o={...t,repos:e}}}return o?{project:o,repos:o.repos??[],learnings:t.map(e=>e.content)}:null}async function c(e){let r,[c,m,u,p]=await Promise.all([i(e.id),s(e),l(e),e.user_id?(0,a.getUserSettings)(e.user_id):Promise.resolve(null)]),f=await d(e,m.project),{frontmatter:g}=(0,a.parseFrontmatter)(e.content),h=(0,o.resolveMemoryAgentId)({defaultUserId:e.user_id||"system",frontmatter:g}),y=g.no_memory?[]:function(e,t=5){try{return(0,n.getSQLiteDb)().prepare("SELECT content FROM agent_memory WHERE agent_id = ? ORDER BY created_at DESC LIMIT ?").all(e,t).map(e=>e.content)}catch{return[]}}(h),_=(r=JSON.stringify(c.map(e=>({id:e.id,task_id:e.task_id,author_type:e.author_type||null,author_id:e.author_id||null,content:e.content||"",created_at:e.created_at||null}))),(0,t.createHash)("sha256").update(r).digest("hex")),w="string"==typeof e.stage&&e.stage.trim()?e.stage.trim():"",v=u.prompt??null,k={};if(v&&w){k[w]=v;let e=w.toLowerCase();k[e]||(k[e]=v)}let x=v&&w?[{stage:w,prompt:v}]:[];return{comments:c,learnings:m,agent_memories:y,stage_config:u,stage_prompt:v,stage_prompts:k,stage_objective:v,stageObjective:v,stagePrompts:x,project_context:f,comments_digest:_,user_settings:p}}e.s(["buildTaskContext",()=>c])}];
|
|
33
33
|
|
|
34
34
|
//# sourceMappingURL=Projects_Agents_agx-cloud_lib_7eefb426._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[62367,e=>{"use strict";let t={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["LOCAL_USER",0,t])},36420,e=>{"use strict";e.i(22734);var t=e.i(46786),r=e.i(14747);let s="3.35.0",i=["json1"],n=["fts5"],l=["nfs","smb","cifs","efs","fuse.sshfs"];function o(e,t){try{if("json1"===t)return e.prepare("SELECT json('{}')").get(),!0;if("fts5"===t)return e.exec("CREATE VIRTUAL TABLE IF NOT EXISTS _fts5_check USING fts5(x)"),e.exec("DROP TABLE IF EXISTS _fts5_check"),!0;return!1}catch{return!1}}function a(a,u){let p=[],h=a.prepare("SELECT sqlite_version() as v").get();for(let e of(0>function(e,t){let r=e.split(".").map(Number),s=t.split(".").map(Number);for(let e=0;e<3;e++){let t=(r[e]||0)-(s[e]||0);if(0!==t)return t}return 0}(h.v,s)&&p.push({kind:"version_mismatch",message:`SQLite version ${h.v} is below minimum ${s}`,found:h.v,required:`>= ${s}`,fix:"darwin"===t.default.platform()?"brew install sqlite3 && npm rebuild better-sqlite3":"TURBOPACK unreachable"}),i))o(a,e)||p.push({kind:"missing_extension",message:`Required SQLite extension '${e}' is not available`,required:e,fix:`Rebuild SQLite with -DSQLITE_ENABLE_${e.toUpperCase()}=1, or use a system SQLite that includes it`});for(let e of n)o(a,e)||console.warn(`[startup] Recommended SQLite extension '${e}' is not available. Full-text search will be disabled.`);let c=function(s){"linux"!==t.default.platform()&&t.default.platform();try{let i=r.default.resolve(s),{execSync:n}=e.r(33405);if("darwin"===t.default.platform()){let e=n(`df -T "${i}" 2>/dev/null || df "${i}"`,{encoding:"utf-8",timeout:3e3}).trim().split("\n");if(e.length>=2){let t=e[1].split(/\s+/),r=t[0]?.toLowerCase()||"";if(r.includes("://")||r.includes("nfs")||r.includes("smb"))return r}}}catch{}return null}(u);c&&l.some(e=>c.toLowerCase().includes(e))&&p.push({kind:"filesystem_error",message:`Database path '${u}' is on a network filesystem (${c})`,path:u,found:c,fix:"Move the database file to a local SSD. WAL mode requires local filesystem with reliable fsync."});try{a.pragma("journal_mode = wal"),a.pragma("foreign_keys = 1"),a.pragma("busy_timeout = 5000"),a.pragma("synchronous = 1"),a.pragma("cache_size = -64000");let e=a.pragma("journal_mode",{simple:!0});"wal"!==e.toLowerCase()&&p.push({kind:"pragma_error",message:`Failed to set journal_mode=WAL (got '${e}')`,found:e,required:"wal",fix:"Ensure the database file is on a local filesystem and no other process holds an exclusive lock."})}catch(e){p.push({kind:"pragma_error",message:`Failed to apply required PRAGMAs: ${e.message}`,fix:"Check file permissions and ensure the database is not read-only."})}return p}e.s(["validateSQLiteEnvironment",()=>a])},74949,e=>{"use strict";var t=e.i(
|
|
1
|
+
module.exports=[62367,e=>{"use strict";let t={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["LOCAL_USER",0,t])},36420,e=>{"use strict";e.i(22734);var t=e.i(46786),r=e.i(14747);let s="3.35.0",i=["json1"],n=["fts5"],l=["nfs","smb","cifs","efs","fuse.sshfs"];function o(e,t){try{if("json1"===t)return e.prepare("SELECT json('{}')").get(),!0;if("fts5"===t)return e.exec("CREATE VIRTUAL TABLE IF NOT EXISTS _fts5_check USING fts5(x)"),e.exec("DROP TABLE IF EXISTS _fts5_check"),!0;return!1}catch{return!1}}function a(a,u){let p=[],h=a.prepare("SELECT sqlite_version() as v").get();for(let e of(0>function(e,t){let r=e.split(".").map(Number),s=t.split(".").map(Number);for(let e=0;e<3;e++){let t=(r[e]||0)-(s[e]||0);if(0!==t)return t}return 0}(h.v,s)&&p.push({kind:"version_mismatch",message:`SQLite version ${h.v} is below minimum ${s}`,found:h.v,required:`>= ${s}`,fix:"darwin"===t.default.platform()?"brew install sqlite3 && npm rebuild better-sqlite3":"TURBOPACK unreachable"}),i))o(a,e)||p.push({kind:"missing_extension",message:`Required SQLite extension '${e}' is not available`,required:e,fix:`Rebuild SQLite with -DSQLITE_ENABLE_${e.toUpperCase()}=1, or use a system SQLite that includes it`});for(let e of n)o(a,e)||console.warn(`[startup] Recommended SQLite extension '${e}' is not available. Full-text search will be disabled.`);let c=function(s){"linux"!==t.default.platform()&&t.default.platform();try{let i=r.default.resolve(s),{execSync:n}=e.r(33405);if("darwin"===t.default.platform()){let e=n(`df -T "${i}" 2>/dev/null || df "${i}"`,{encoding:"utf-8",timeout:3e3}).trim().split("\n");if(e.length>=2){let t=e[1].split(/\s+/),r=t[0]?.toLowerCase()||"";if(r.includes("://")||r.includes("nfs")||r.includes("smb"))return r}}}catch{}return null}(u);c&&l.some(e=>c.toLowerCase().includes(e))&&p.push({kind:"filesystem_error",message:`Database path '${u}' is on a network filesystem (${c})`,path:u,found:c,fix:"Move the database file to a local SSD. WAL mode requires local filesystem with reliable fsync."});try{a.pragma("journal_mode = wal"),a.pragma("foreign_keys = 1"),a.pragma("busy_timeout = 5000"),a.pragma("synchronous = 1"),a.pragma("cache_size = -64000");let e=a.pragma("journal_mode",{simple:!0});"wal"!==e.toLowerCase()&&p.push({kind:"pragma_error",message:`Failed to set journal_mode=WAL (got '${e}')`,found:e,required:"wal",fix:"Ensure the database file is on a local filesystem and no other process holds an exclusive lock."})}catch(e){p.push({kind:"pragma_error",message:`Failed to apply required PRAGMAs: ${e.message}`,fix:"Check file permissions and ensure the database is not read-only."})}return p}e.s(["validateSQLiteEnvironment",()=>a])},74949,e=>{"use strict";var t=e.i(17920),r=e.i(22734),s=e.i(14747),i=e.i(62367),n=e.i(36420);class l{expr;constructor(e){this.expr=e}}function o(e){return new l(e)}let a=null;function u(){if(a)return a;let e=process.env.SQLITE_DB_PATH||s.default.join(process.cwd(),"agx-board.db");r.default.existsSync(e),a=new t.default(e);let i=(0,n.validateSQLiteEnvironment)(a,e);if(i.length>0){let e=i.map(e=>` - ${e.message}${e.fix?` (fix: ${e.fix})`:""}`);throw Error(`SQLite startup validation failed:
|
|
2
2
|
${e.join("\n")}`)}return function(e){let t=s.default.join(process.cwd(),"db","sqlite","001_agx_board_schema.sql");if(!r.default.existsSync(t))return console.warn(`[sqlite] DDL not found at ${t}, skipping schema init`);let i=r.default.readFileSync(t,"utf-8");e.exec(i)}(a),a}let p=new Set(["definition","depends_on","input","metadata","models","open_blockers","output","payload","run_index","stage_decisions","swarm_models"]);function h(e){return void 0===e?null:e instanceof Date?e.toISOString():e&&"object"==typeof e?JSON.stringify(e):e}function c(e,t){return null==t?null:t instanceof Date?t.toISOString():p.has(e)?JSON.stringify(t):h(t)}function d(e){let t=(e||"*").trim();if(!t||"*"===t)return{columns:["*"],includeProjectRepos:!1};let r=t.includes("project_repos(*)"),s=t.replace(/project_repos\(\*\)/g,"").split(",").map(e=>e.trim()).filter(Boolean);return 0===s.length?{columns:["*"],includeProjectRepos:r}:{columns:s,includeProjectRepos:r}}class f{table;operation="select";filters=[];orderSpecs=[];limitValue=null;selectColumns="*";returningColumns=null;singleMode="none";payload=null;upsertOptions=null;constructor(e){this.table=e}select(e="*"){return"select"===this.operation?this.selectColumns=e:this.returningColumns=e||"*",this}insert(e){return this.operation="insert",this.payload=e,this}update(e){return this.operation="update",this.payload=e,this}delete(){return this.operation="delete",this}upsert(e,t){return this.operation="upsert",this.payload=e,this.upsertOptions=t||{},this}eq(e,t){return this.filters.push({op:"eq",column:e,value:t}),this}neq(e,t){return this.filters.push({op:"neq",column:e,value:t}),this}gt(e,t){return this.filters.push({op:"gt",column:e,value:t}),this}gte(e,t){return this.filters.push({op:"gte",column:e,value:t}),this}lt(e,t){return this.filters.push({op:"lt",column:e,value:t}),this}lte(e,t){return this.filters.push({op:"lte",column:e,value:t}),this}is(e,t){return this.filters.push({op:"is",column:e,value:t}),this}in(e,t){return this.filters.push({op:"in",column:e,value:t||[]}),this}contains(e,t){return this.filters.push({op:"contains",column:e,value:t}),this}or(e){return this.filters.push({op:"or",expression:e}),this}order(e,t){return this.orderSpecs.push({column:e,...t||{}}),this}limit(e){return this.limitValue=e,this}single(){return this.singleMode="single",this.execute()}maybeSingle(){return this.singleMode="maybeSingle",this.execute()}then(e,t){return this.execute().then(e,t)}buildWhere(e,t){for(let r of this.filters){if("or"===r.op){let s=r.expression.split(",").map(e=>e.trim()).filter(Boolean).map(e=>{var r;let[s,i,...n]=e.split("."),l="true"===(r=n.join("."))||"false"!==r&&("null"===r?null:r);return"eq"===i?(t.push(h(l)),`${s} = ?`):"neq"===i?(t.push(h(l)),`${s} <> ?`):"is"===i?null===l?`${s} IS NULL`:(t.push(h(l)),`${s} IS ?`):"ilike"===i||"like"===i?(t.push(h(l)),`${s} LIKE ?`):"1=1"});s.length>0&&e.push(`(${s.join(" OR ")})`);continue}if("eq"===r.op)t.push(h(r.value)),e.push(`${r.column} = ?`);else if("neq"===r.op)t.push(h(r.value)),e.push(`${r.column} <> ?`);else if("gt"===r.op)t.push(h(r.value)),e.push(`${r.column} > ?`);else if("gte"===r.op)t.push(h(r.value)),e.push(`${r.column} >= ?`);else if("lt"===r.op)t.push(h(r.value)),e.push(`${r.column} < ?`);else if("lte"===r.op)t.push(h(r.value)),e.push(`${r.column} <= ?`);else if("is"===r.op)null===r.value?e.push(`${r.column} IS NULL`):(t.push(h(r.value)),e.push(`${r.column} IS ?`));else if("contains"===r.op){let s=(r.value||[]).map(h);if(0===s.length)e.push("1=1");else{let i=s.map(()=>"?").join(", ");t.push(...s),e.push(`(SELECT COUNT(*) FROM json_each(${r.column}) WHERE json_each.value IN (${i})) = ${s.length}`)}}else if("in"===r.op)if(r.value&&0!==r.value.length){let s=(r.value||[]).map(h),i=s.map(()=>"?").join(", ");t.push(...s),e.push(`${r.column} IN (${i})`)}else e.push("1=0")}}executeSelect(){try{let e=u(),{columns:t,includeProjectRepos:r}=d(this.selectColumns),s=[],i=[];this.buildWhere(i,s);let n=`SELECT ${t.join(", ")} FROM ${this.table}`;if(i.length>0&&(n+=` WHERE ${i.join(" AND ")}`),this.orderSpecs.length>0){let e=this.orderSpecs.map(e=>{let t=!1===e.ascending?"DESC":"ASC";return!0===e.nullsFirst?`CASE WHEN ${e.column} IS NULL THEN 0 ELSE 1 END, ${e.column} ${t}`:!1===e.nullsFirst?`CASE WHEN ${e.column} IS NULL THEN 1 ELSE 0 END, ${e.column} ${t}`:`${e.column} ${t}`}).join(", ");n+=` ORDER BY ${e}`}"number"==typeof this.limitValue&&(s.push(this.limitValue),n+=" LIMIT ?");let l=e.prepare(n).all(...s);if(l=l.map(g),r&&"projects"===this.table&&l.length>0){let t=l.map(e=>e.id).filter(Boolean);if(t.length>0){let r=t.map(()=>"?").join(", "),s=e.prepare(`SELECT * FROM project_repos WHERE project_id IN (${r})`).all(...t),i=new Map;for(let e of s){let t=i.get(e.project_id)||[];t.push(e),i.set(e.project_id,t)}l=l.map(e=>({...e,project_repos:i.get(e.id)||[]}))}}if("single"===this.singleMode){if(0===l.length)return{data:null,error:{message:"No rows",code:"PGRST116"}};return{data:l[0],error:null}}if("maybeSingle"===this.singleMode)return{data:l[0]||null,error:null};return{data:l,error:null}}catch(e){return{data:null,error:e}}}executeInsertOrUpsert(){try{let e,t=u(),r=Array.isArray(this.payload)?this.payload:[this.payload];if(!r.length)return{data:[],error:null};let s=Array.from(r.reduce((e,t)=>{for(let r of Object.keys(t||{}))e.add(r);return e},new Set)),i=[],n=r.map(e=>{let t=s.map(t=>(i.push(c(t,e[t])),"?"));return`(${t.join(", ")})`}),l=`INSERT INTO ${this.table} (${s.join(", ")}) VALUES ${n.join(", ")}`;if("upsert"===this.operation){let e=this.upsertOptions?.onConflict||"",t=String(e).split(",").map(e=>e.trim()).filter(Boolean);if(t.length>0)if(this.upsertOptions?.ignoreDuplicates)l+=` ON CONFLICT (${t.join(", ")}) DO NOTHING`;else{let e=s.filter(e=>!t.includes(e)).map(e=>`${e} = EXCLUDED.${e}`);e.length>0?l+=` ON CONFLICT (${t.join(", ")}) DO UPDATE SET ${e.join(", ")}`:l+=` ON CONFLICT (${t.join(", ")}) DO NOTHING`}}if(this.returningColumns){let{columns:e}=d(this.returningColumns);l+=` RETURNING ${e.join(", ")}`}this.returningColumns?e=(e=t.prepare(l).all(...i)).map(g):(t.prepare(l).run(...i),e=[]);let o=this.returningColumns?e:null;if("single"===this.singleMode||"maybeSingle"===this.singleMode)return{data:o&&o[0]||null,error:null};return{data:o,error:null}}catch(e){return{data:null,error:e}}}executeUpdateOrDelete(){try{let e,t=u(),r=[],s=[],i=[];this.buildWhere(i,s);let n="";if("update"===this.operation){let e=Object.keys(this.payload||{}).map(e=>{let t=this.payload[e];return t instanceof l?`${e} = ${t.expr}`:(r.push(c(e,t)),`${e} = ?`)});n=`UPDATE ${this.table} SET ${e.join(", ")}`}else n=`DELETE FROM ${this.table}`;i.length>0&&(n+=` WHERE ${i.join(" AND ")}`);let o=[...r,...s];if(this.returningColumns){let{columns:e}=d(this.returningColumns);n+=` RETURNING ${e.join(", ")}`}this.returningColumns?e=(e=t.prepare(n).all(...o)).map(g):(t.prepare(n).run(...o),e=[]);let a=this.returningColumns?e:null;if("single"===this.singleMode){if(!a||0===a.length)return{data:null,error:{message:"No rows",code:"PGRST116"}};return{data:a[0],error:null}}if("maybeSingle"===this.singleMode)return{data:a?.[0]||null,error:null};return{data:a,error:null}}catch(e){return{data:null,error:e}}}async execute(){return"select"===this.operation?this.executeSelect():"insert"===this.operation||"upsert"===this.operation?this.executeInsertOrUpsert():this.executeUpdateOrDelete()}}let m=new Set([...p,"depends_on","open_blockers","swarm_models","run_index","stage_decisions","definition","metadata","models","config","policy","done_criteria","outputs","task_snapshot","data_mapping"]);function g(e){if(!e||"object"!=typeof e)return e;let t={...e};for(let e of Object.keys(t)){if(m.has(e)&&"string"==typeof t[e])try{t[e]=JSON.parse(t[e])}catch{}("swarm"===e||"is_default"===e||"is_public"===e||"had_graph_before"===e)&&(0===t[e]?t[e]=!1:1===t[e]&&(t[e]=!0))}return t}function S(){return{from:e=>new f(e),auth:{getUser:async()=>({data:{user:{id:i.LOCAL_USER.id,email:i.LOCAL_USER.email,user_metadata:{name:i.LOCAL_USER.name,full_name:i.LOCAL_USER.name}}},error:null}),exchangeCodeForSession:async()=>({error:null}),refreshSession:async()=>({data:{session:{access_token:"local-token",refresh_token:"local-refresh",expires_in:3600},user:{id:i.LOCAL_USER.id,email:i.LOCAL_USER.email}},error:null})},async rpc(e,t){if("check_rate_limit"!==e)return{data:null,error:{message:`Unsupported rpc: ${e}`}};let r=u(),s=t.p_user_id,i=t.p_endpoint,n=Number(t.p_limit||60),l=Number(t.p_window_seconds||60),o=new Date(Math.floor(new Date().getTime()/(1e3*l))*l*1e3);try{let e=`
|
|
3
3
|
INSERT INTO rate_limits (user_id, endpoint, window_start, request_count)
|
|
4
4
|
VALUES (?, ?, ?, 1)
|