@mndrk/agx 2.0.33 → 2.0.34
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/cloud-runtime/standalone/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/.next/app-path-routes-manifest.json +17 -0
- package/cloud-runtime/standalone/.next/build-manifest.json +6 -6
- package/cloud-runtime/standalone/.next/prerender-manifest.json +27 -3
- package/cloud-runtime/standalone/.next/routes-manifest.json +110 -0
- package/cloud-runtime/standalone/.next/server/app/_global-error/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents/[id]/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/agents/[id]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/agents/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/chat/route.js +5 -5
- package/cloud-runtime/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/file-search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/filesystem/pick-folder/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/filesystem/pick-folder/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/filesystem/pick-folder/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/filesystem/pick-folder/route.js +7 -0
- package/cloud-runtime/standalone/.next/server/app/api/filesystem/pick-folder/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/filesystem/pick-folder/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/filesystem/pick-folder/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/health/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/participants/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/participants/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route.js +10 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route.js +10 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route.js +10 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js +9 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js +12 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route.js +10 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/queue/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js +4 -4
- package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/assign/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/assign/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/assign/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/assign/route.js +8 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/assign/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/assign/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/assign/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/available/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/available/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/available/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/available/route.js +8 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/available/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/available/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/available/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route.js +8 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/history/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/history/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/history/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/history/route.js +8 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/history/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/history/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/history/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route.js +8 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/route.js +8 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/route.js +8 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/thread-repos/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/thread-repos/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/thread-repos/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/thread-repos/route.js +7 -0
- package/cloud-runtime/standalone/.next/server/app/api/thread-repos/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/thread-repos/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/thread-repos/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/threads/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/threads/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/automations/page/react-loadable-manifest.json +8 -1
- package/cloud-runtime/standalone/.next/server/app/automations/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/automations.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/board/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/board/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/board/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/execution-graph/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/index.rsc +5 -5
- package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +5 -5
- package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +4 -4
- package/cloud-runtime/standalone/.next/server/app/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page/build-manifest.json +18 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page/next-font-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page/react-loadable-manifest.json +8 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page.js +16 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/projects/orphans/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/projects/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/skills/page/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/skills/page/build-manifest.json +18 -0
- package/cloud-runtime/standalone/.next/server/app/skills/page/next-font-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/skills/page/react-loadable-manifest.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/skills/page/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/skills/page.js +15 -0
- package/cloud-runtime/standalone/.next/server/app/skills/page.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/skills/page.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/skills/page_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/skills.html +21 -0
- package/cloud-runtime/standalone/.next/server/app/skills.meta +15 -0
- package/cloud-runtime/standalone/.next/server/app/skills.rsc +23 -0
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_full.segment.rsc +23 -0
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_head.segment.rsc +5 -0
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_index.segment.rsc +9 -0
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_tree.segment.rsc +5 -0
- package/cloud-runtime/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +9 -0
- package/cloud-runtime/standalone/.next/server/app/skills.segments/skills.segment.rsc +4 -0
- package/cloud-runtime/standalone/.next/server/app/status/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/status/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/thread/[id]/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/thread/[id]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/server/app/welcome/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app-paths-manifest.json +17 -0
- package/cloud-runtime/standalone/.next/server/chunks/[externals]__cf9f18a6._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__875279cb._.js → [root-of-the-server]__005b3c82._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__4837d72a._.js → [root-of-the-server]__056d94e4._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__068b4f08._.js +15 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__b3ed0a00._.js → [root-of-the-server]__0bb52353._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0f580808._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__6c26221d._.js → [root-of-the-server]__1a8e0957._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__6acb940d._.js → [root-of-the-server]__23ad03bf._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__7ffcc20c._.js → [root-of-the-server]__2948f712._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__18423486._.js → [root-of-the-server]__32ef6623._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__1c18c0d1._.js → [root-of-the-server]__34cb1b98._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4d865017._.js +48 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5031f8d4._.js +30 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5a348fba._.js → [root-of-the-server]__596d0e81._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__64712846._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__707c32af._.js +15 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7370bb86._.js +8 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__749af50f._.js +8 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ffffceac._.js → [root-of-the-server]__75cedecf._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__19520d85._.js → [root-of-the-server]__7ee9b7b6._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__4d8c6e3d._.js → [root-of-the-server]__8ac0286e._.js} +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__927cfc20._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__96ae701e._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__b63cb741._.js → [root-of-the-server]__981d92dd._.js} +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__98b352f7._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a44db634._.js +8 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a55c16a5._.js +158 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ab2bf82d._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__32b13ba9._.js → [root-of-the-server]__b4931ee1._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e122cae2._.js → [root-of-the-server]__b500f1bf._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c480c9c2._.js → [root-of-the-server]__b707e701._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__bf5803eb._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ccd4846e._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d4126e05._.js +15 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d908c9ea._.js +8 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__b9b3fde6._.js → [root-of-the-server]__dcdeee3d._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e3a4fd97._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e4a87984._.js +15 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ee6511a0._.js +44 -0
- package/cloud-runtime/standalone/.next/server/chunks/_d225c04f._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_filesystem_pick-folder_route_actions_162664ff.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_prompt-jobs_[id]_cancel_route_actions_fbd5be89.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_prompt-jobs_[id]_route_actions_774a2e21.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_prompt-jobs_[id]_runs_route_actions_6e59ee83.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_prompt-jobs_agents_route_actions_399e1f19.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_prompt-jobs_poll_route_actions_23fbbfa1.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_prompt-jobs_route_actions_acf03860.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_skills_assign_route_actions_15267be8.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_skills_available_route_actions_24023111.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_skills_detail_route_actions_1148baef.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_skills_history_route_actions_5e5c4757.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_skills_learn_route_actions_d3a37d25.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_skills_route_actions_780e175f.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_skills_unlearn_route_actions_3dfee433.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_thread-repos_route_actions_e95d24ee.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/{lib_7cad5c77._.js → lib_a5adca60._.js} +25 -25
- package/cloud-runtime/standalone/.next/server/chunks/lib_db_ts_e06c6085._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/lib_ea45fe73._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_2e721df2._.js +28 -23
- package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_74d1c060._.js +28 -23
- package/cloud-runtime/standalone/.next/server/chunks/lib_sqlite-query-adapter_ts_3ea4d849._.js +38 -11
- package/cloud-runtime/standalone/.next/server/chunks/lib_sqlite-query-adapter_ts_b0b1a9b2._.js +43 -16
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_371d0bff.js +19 -19
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_def8bfbe.js +10 -0
- package/cloud-runtime/standalone/.next/server/chunks/src_graph_executor_ts_55c06268._.js +4 -3
- package/cloud-runtime/standalone/.next/server/chunks/src_graph_executor_ts_a8bc8d58._.js +4 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__096c39a3._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__226f8a19._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__47caef59._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__67d5f883._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__8b4e7816._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__8fe8b9dd._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__a37fb1c3._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__a456581d._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__d74022f1._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__fcbe03e6._.js → [root-of-the-server]__e0c64529._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__ea035cd9._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__ffbc2e98._.js +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_05c8a494._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_0c5c111f._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_0ffd2660._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_23656a95._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_23f5fddc._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_24feb541._.js +4 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_27a789b3._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_508cd32f._.js → _314f4c49._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_36b413cc._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_43472af3._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_46e00a9b._.js +95 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_478f4991._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_4bfdfb14._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_52fe115d._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_547b6462._.js +4 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_547f19ec._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_85ca101b._.js +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_93914ecd._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_9e07dcac._.js +95 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_a1b966f7._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_a68d8f62._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_a80e12c8._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_b1e1ef71._.js +95 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_e1349560._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_next-internal_server_app_projects_[slug]_automations_page_actions_9371bc66.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_next-internal_server_app_skills_page_actions_4ac82b1e.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_agents_[id]_page_tsx_9c49d8c8._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_agents_page_tsx_f5f08ed8._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_execution-graph_page_tsx_f854185a._.js +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/components_chat-ui_bfeda794._.js +4 -5
- package/cloud-runtime/standalone/.next/server/chunks/ssr/components_thread_WorkspaceSidebar_tsx_e660301b._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{node_modules_lucide-react_dist_esm_e70f9321._.js → node_modules_lucide-react_dist_esm_b82e03da._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_next_dist_61a87db9._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{node_modules_next_920e7746._.js → node_modules_next_f2865b38._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/functions-config-manifest.json +14 -0
- package/cloud-runtime/standalone/.next/server/middleware-build-manifest.js +4 -4
- package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
- package/cloud-runtime/standalone/.next/server/next-font-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/next-font-manifest.json +8 -0
- package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
- package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
- package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/01428247f94115a6.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/06cf0ed16bf8aa70.js +28 -0
- package/cloud-runtime/standalone/.next/static/chunks/19dd745b663fdffa.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/1a3298f21d1040e9.js +4 -0
- package/cloud-runtime/standalone/.next/static/chunks/1c8583feefee0765.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/1e3dede69b464364.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/238a28856e739dc9.js +2 -0
- package/cloud-runtime/standalone/.next/static/chunks/24772e179852c73e.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/2d1d138d8ea3234c.css +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/2e011469003993e9.js +28 -0
- package/cloud-runtime/standalone/.next/static/chunks/31a4164e40ca71e5.js +6 -0
- package/cloud-runtime/standalone/.next/static/chunks/3c202e89da05d9b9.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/3c72becf6dff5597.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/44dafb5e85578e12.js +16 -0
- package/cloud-runtime/standalone/.next/static/chunks/47f22a56011af8d3.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/48e332ac3e9ed56c.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/5b567b289ca2273e.css +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/5d52c79d9812d06e.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/617db51b7444f818.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/673bb6094cea9ded.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/787436fad75f5bc6.js +5 -0
- package/cloud-runtime/standalone/.next/static/chunks/8304e8487aa74059.css +2 -0
- package/cloud-runtime/standalone/.next/static/chunks/8a4684388ca0f6de.js +7 -0
- package/cloud-runtime/standalone/.next/static/chunks/9f236cc9572783b9.js +93 -0
- package/cloud-runtime/standalone/.next/static/chunks/a9aaec85125f69b1.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/b4c29a62f9255268.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/bf2bb1662353aff5.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/c1fb885eed94aa8c.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/c653186036e56204.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/cb5581d868e78205.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/cbdeb17a36b99000.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/d5cc62984dc4205c.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/d73f1cc3ebc9993b.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{8d15ced2dc70090a.js → da2b00558cf32f37.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/{turbopack-97e846241a3a64af.js → turbopack-22475f0dd0c18f92.js} +1 -1
- package/cloud-runtime/standalone/app/agents/[id]/page.tsx +4 -1
- package/cloud-runtime/standalone/app/agents/page.tsx +22 -2
- package/cloud-runtime/standalone/app/api/agent-specs/route.ts +4 -0
- package/cloud-runtime/standalone/app/api/agents/export/route.ts +4 -0
- package/cloud-runtime/standalone/app/api/chat/route.ts +8 -2
- package/cloud-runtime/standalone/app/api/filesystem/pick-folder/route.ts +56 -0
- package/cloud-runtime/standalone/app/api/participants/route.ts +50 -1
- package/cloud-runtime/standalone/app/api/prompt-jobs/[id]/cancel/route.ts +44 -0
- package/cloud-runtime/standalone/app/api/prompt-jobs/[id]/route.ts +94 -0
- package/cloud-runtime/standalone/app/api/prompt-jobs/[id]/runs/route.ts +30 -0
- package/cloud-runtime/standalone/app/api/prompt-jobs/agents/route.ts +25 -0
- package/cloud-runtime/standalone/app/api/prompt-jobs/poll/route.ts +232 -0
- package/cloud-runtime/standalone/app/api/prompt-jobs/route.ts +125 -0
- package/cloud-runtime/standalone/app/api/skills/assign/route.ts +30 -0
- package/cloud-runtime/standalone/app/api/skills/available/route.ts +20 -0
- package/cloud-runtime/standalone/app/api/skills/detail/route.ts +23 -0
- package/cloud-runtime/standalone/app/api/skills/history/route.ts +18 -0
- package/cloud-runtime/standalone/app/api/skills/learn/route.ts +31 -0
- package/cloud-runtime/standalone/app/api/skills/route.ts +19 -0
- package/cloud-runtime/standalone/app/api/skills/unlearn/route.ts +30 -0
- package/cloud-runtime/standalone/app/api/thread-repos/route.ts +30 -0
- package/cloud-runtime/standalone/app/automations/page.tsx +15 -3
- package/cloud-runtime/standalone/app/execution-graph/page.tsx +2 -2
- package/cloud-runtime/standalone/app/globals.css +2 -0
- package/cloud-runtime/standalone/app/layout.tsx +1 -1
- package/cloud-runtime/standalone/app/projects/[slug]/automations/page.tsx +17 -0
- package/cloud-runtime/standalone/app/projects/[slug]/layout.tsx +3 -2
- package/cloud-runtime/standalone/app/projects/[slug]/page.tsx +401 -86
- package/cloud-runtime/standalone/app/projects/orphans/page.tsx +1 -0
- package/cloud-runtime/standalone/app/projects/page.tsx +3 -3
- package/cloud-runtime/standalone/app/skills/page.tsx +399 -0
- package/cloud-runtime/standalone/components/FloatingPanel.tsx +200 -0
- package/cloud-runtime/standalone/components/Layout.tsx +7 -1
- package/cloud-runtime/standalone/components/NowRunningPanel.tsx +86 -76
- package/cloud-runtime/standalone/components/ProjectModal.tsx +29 -12
- package/cloud-runtime/standalone/components/PromptJobBoard.tsx +1434 -0
- package/cloud-runtime/standalone/components/chat-ui/ChatContainer.tsx +86 -17
- package/cloud-runtime/standalone/components/chat-ui/Composer.tsx +215 -19
- package/cloud-runtime/standalone/components/chat-ui/ParticipantBar.tsx +233 -213
- package/cloud-runtime/standalone/components/thread/WorkspaceSidebar.tsx +99 -41
- package/cloud-runtime/standalone/db/sqlite/001_agx_board_schema.sql +28 -0
- package/cloud-runtime/standalone/db/sqlite/002_prompt_scheduler_schema.sql +45 -0
- package/cloud-runtime/standalone/db/sqlite/003_prompt_scheduler_v2.sql +13 -0
- package/cloud-runtime/standalone/hooks/useAttachments.ts +2 -1
- package/cloud-runtime/standalone/hooks/useGroupChat.ts +4 -1
- package/cloud-runtime/standalone/hooks/usePromptJobs.ts +111 -0
- package/cloud-runtime/standalone/lib/agent-participants.ts +7 -0
- package/cloud-runtime/standalone/lib/agent-skill-bindings.ts +118 -0
- package/cloud-runtime/standalone/lib/chat/paste-attachments.ts +152 -0
- package/cloud-runtime/standalone/lib/db.ts +5 -0
- package/cloud-runtime/standalone/lib/history-store.ts +38 -0
- package/cloud-runtime/standalone/lib/skills-library.ts +450 -0
- package/cloud-runtime/standalone/lib/sqlite-query-adapter.ts +32 -0
- package/cloud-runtime/standalone/lib/stream-multiplexer.ts +59 -11
- package/cloud-runtime/standalone/lib/types.ts +10 -0
- package/cloud-runtime/standalone/migrations/sqlite_schema.sql +28 -0
- package/cloud-runtime/standalone/src/graph/llm-review.ts +19 -2
- package/cloud-runtime/standalone/src/prompt-scheduler/cron.ts +46 -0
- package/cloud-runtime/standalone/src/prompt-scheduler/engine.ts +87 -0
- package/cloud-runtime/standalone/src/prompt-scheduler/get-store.ts +36 -0
- package/cloud-runtime/standalone/src/prompt-scheduler/runner.ts +144 -0
- package/cloud-runtime/standalone/src/prompt-scheduler/store.ts +327 -0
- package/cloud-runtime/standalone/src/prompt-scheduler/types.ts +82 -0
- package/cloud-runtime/standalone/state/floatingPanels.ts +47 -0
- package/cloud-runtime/standalone/styles/composer-pills.css +156 -2
- package/cloud-runtime/standalone/styles/workspaceSidebar.css +5 -3
- package/cloud-runtime/standalone/test/adapters/sqlite.ts +1 -0
- package/cloud-runtime/standalone/update_officeapp.js +36 -0
- package/cloud-runtime/standalone/update_store.js +47 -0
- package/cloud-runtime/standalone/worker/index.js +292 -45
- package/package.json +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[externals]__1f4b15dd._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4c8624cc._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__666f8712._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a189593a._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d6e1ee6e._.js +0 -32
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f1b7932f._.js +0 -36
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f701b208._.js +0 -146
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__04d1aa70._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__2d80540b._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__8973b16a._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__a416df95._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__c108f06c._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_0061ebd8._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_064370bc._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_41f60c52._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_54af99c5._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_6b14826d._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_84879a01._.js +0 -95
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_9eeb2fa0._.js +0 -95
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_a0cc0fe7._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_a1d30b20._.js +0 -95
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_c87c359c._.js +0 -95
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_ccb409c5._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_cd5e154b._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_dd31b6e0._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_f0ce6183._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_automations_page_tsx_3d732184._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_bf855424._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_next_dist_852965c2._.js +0 -3
- package/cloud-runtime/standalone/.next/static/chunks/010aff7b601302de.js +0 -16
- package/cloud-runtime/standalone/.next/static/chunks/012e3e9699415997.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/031d99fbe758545a.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/09f9eeea393db0fd.js +0 -4
- package/cloud-runtime/standalone/.next/static/chunks/0c467f54bc78a380.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/10b0642440302e99.css +0 -2
- package/cloud-runtime/standalone/.next/static/chunks/116985039c24f1f8.js +0 -93
- package/cloud-runtime/standalone/.next/static/chunks/2ee8d24314eec47c.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/3e4e8857f875c964.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/43f6157bc3db9c52.js +0 -6
- package/cloud-runtime/standalone/.next/static/chunks/486bf7ff282b91a6.js +0 -5
- package/cloud-runtime/standalone/.next/static/chunks/56a01238098d495d.js +0 -93
- package/cloud-runtime/standalone/.next/static/chunks/601996727991149e.js +0 -93
- package/cloud-runtime/standalone/.next/static/chunks/651c7c97d3bd77e0.js +0 -28
- package/cloud-runtime/standalone/.next/static/chunks/7d4c1d97169c8522.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/851b1d97179bd39b.css +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/9048e44ed538b21a.js +0 -2
- package/cloud-runtime/standalone/.next/static/chunks/90b581e9631d8cea.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/99174504a201d23e.js +0 -28
- package/cloud-runtime/standalone/.next/static/chunks/a8e8ef440c4daa5a.css +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/b22947e6df238fd5.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/b2dcd19ebe3af3f6.js +0 -93
- package/cloud-runtime/standalone/.next/static/chunks/bc06988336ffd261.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/c93b9643c81c134e.js +0 -8
- package/cloud-runtime/standalone/.next/static/chunks/d5d6be8239e57c56.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/ebaf4e8f04bae7b6.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/f4909e7ae8229b1c.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/fd221a50082e5128.js +0 -1
- package/cloud-runtime/standalone/agx-board.json +0 -264
- package/cloud-runtime/standalone/agx-cli.json +0 -2195
- package/cloud-runtime/standalone/fix-primary.js +0 -30
- package/cloud-runtime/standalone/fix-theme.js +0 -78
- package/cloud-runtime/standalone/test-file +0 -0
- package/cloud-runtime/standalone/testfile +0 -0
- package/cloud-runtime/standalone/transcri +0 -0
- /package/cloud-runtime/standalone/.next/static/{68nLQxEpwR_feFvB8T4tR → G0Hrt7JKBM1EtMPT0lUIr}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/.next/static/{68nLQxEpwR_feFvB8T4tR → G0Hrt7JKBM1EtMPT0lUIr}/_clientMiddlewareManifest.json +0 -0
- /package/cloud-runtime/standalone/.next/static/{68nLQxEpwR_feFvB8T4tR → G0Hrt7JKBM1EtMPT0lUIr}/_ssgManifest.js +0 -0
package/cloud-runtime/standalone/.next/server/chunks/{lib_7cad5c77._.js → lib_a5adca60._.js}
RENAMED
|
@@ -1,4 +1,26 @@
|
|
|
1
|
-
module.exports=[
|
|
1
|
+
module.exports=[37269,e=>{"use strict";var t=e.i(22734),r=e.i(46786),n=e.i(14747);let i=process.env.AGX_DATA_DIR||n.default.join(r.default.homedir(),".agx"),a=process.env.AGX_DEBUG_LOG_PATH||n.default.join(i,"logs","desktop-chat-debug.log");function s(e,t){return t instanceof Error?{name:t.name,message:t.message,stack:t.stack}:"string"==typeof t&&t.length>2e3?`${t.slice(0,2e3)}...<truncated>`:t}function o(){return a}function l(e,r){try{t.default.mkdirSync(n.default.dirname(a),{recursive:!0});let i=JSON.stringify({ts:new Date().toISOString(),pid:process.pid,event:e,...r?{payload:r}:{}},s);t.default.appendFileSync(a,`${i}
|
|
2
|
+
`,"utf8")}catch{}}e.s(["getDebugLogPath",()=>o,"writeDebugLog",()=>l])},14350,e=>{"use strict";var t=e.i(33405),r=e.i(22734),n=e.i(14747),i=e.i(37269);let a=e=>"string"==typeof e&&e.trim().length>0,s=e=>{try{return 0===(0,t.spawnSync)("bash",["-lc",`command -v ${e} >/dev/null 2>&1`],{encoding:"utf8"}).status}catch{return!1}},o=e=>({push:e,flush:()=>{}}),l=e=>{let t="",r=0,n=!1,i=t=>{let i=t.trim();if(i)try{let t=JSON.parse(i);n=!0;let s=(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"&&a(e.text)?[e.text]:[]).join("");let t=e?.event;return"stream_event"===e.type&&t?.type==="content_block_delta"&&t?.delta?.type==="text_delta"&&a(t?.delta?.text)?t.delta.text:""})(t);if(!s||t?.type==="assistant"&&r>0)return;r+=s.length,e(s)}catch{n||e(`${t}
|
|
3
|
+
`)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;i(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&i(t),t=""}}},c=e=>{let t="",r=!1,n="",i=t=>{let i=t.trim();if(i)try{let t=JSON.parse(i);r=!0,t?.type==="message"&&t?.role==="assistant"&&a(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}
|
|
4
|
+
`)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;i(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&i(t),t=""}}},d=e=>{let t="",r=!1,n=new Set,i=t=>{let i=t.trim();if(i)try{let t=JSON.parse(i);if(r=!0,t?.type==="item.completed"&&a(t?.item?.id)){if(n.has(t.item.id))return;n.add(t.item.id)}let s=t&&"object"==typeof t?"item.completed"===t.type&&t.item?.type==="agent_message"&&a(t.item?.text)?t.item.text:"item.delta"===t.type&&t.item?.type==="agent_message"&&a(t.delta?.text)?t.delta.text:"":"";s&&e(s)}catch{r||e(`${t}
|
|
5
|
+
`)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;i(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&i(t),t=""}}},u=e=>{let t="",r=!1,n=[/^Thinking\.\.\./,/^<think>/i],i=[/\.\.\.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 i){let i=t.match(r);i&&void 0!==i.index&&(i.index,i[0].length,(-1===e||i.index<e)&&(e=i.index,n=i[0].length))}if(-1!==e){t=t.slice(e+n),r=!1,t=t.replace(/^\s*\n*/,"");continue}return}for(let i of n){let n=t.match(i);if(n&&void 0!==n.index){let i=t.slice(0,n.index);i&&e.push(i),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()}}},p=new Set(["claude","gemini","ollama","codex"]);function m(){let e=process.env.AGX_CLI_PATH?.trim();if(e&&r.default.existsSync(e))return e;for(let e of[n.default.resolve(process.cwd(),"..","cli","index.js"),n.default.resolve("/ROOT/lib","..","cli","index.js"),n.default.resolve(process.execPath,"..","..","Resources","cli","index.js")])if(r.default.existsSync(e))return e;return null}function g({provider:e,model:t,prompt:r,systemPrompt:n,passthroughArgs:i},a={}){let o=a.commandExists??s,l=void 0===a.bundledCliPath?m():a.bundledCliPath,c=[],d=n?`${n}
|
|
6
|
+
|
|
7
|
+
${r}`:r;if(p.has(e)){let r=function({provider:e,model:t,prompt:r,cliPath:n,passthroughArgs:i}){let a=void 0===n?m():n;if(!a)return null;let s=[a,e,"-y","--print","--prompt",r];return t&&s.push("--model",t),i&&i.length>0&&s.push("--",...i),{command:process.execPath,args:s,parser:"raw"}}({provider:e,model:t,prompt:d,cliPath:l,passthroughArgs:i});return r&&c.push(r),o("agx")&&c.push(function({provider:e,model:t,prompt:r,passthroughArgs:n}){let i=[e,"-y","--print","--prompt",r];return t&&i.push("--model",t),n&&n.length>0&&i.push("--",...n),{command:"agx",args:i,parser:"raw"}}({provider:e,model:t,prompt:d,passthroughArgs:i})),c}let u=function({provider:e,model:t,prompt:r,systemPrompt:n}){switch(e){case"claude":{let e=["-p","--verbose","--output-format","stream-json","--include-partial-messages"];return t&&e.push("--model",t),n&&e.push("--system-prompt",n),e.push(r),{command:"claude",args:e,parser:"claude-stream-json"}}case"gemini":return{command:"gemini",args:["--yolo","-p",n?`${n}
|
|
8
|
+
|
|
9
|
+
${r}`:r,"-o","stream-json"],parser:"gemini-stream-json"};case"ollama":return{command:"ollama",args:["run",t||"llama3.2",n?`${n}
|
|
10
|
+
|
|
11
|
+
${r}`:r],parser:"raw"};case"codex":{let e=["exec","--json"];return t&&e.push("--model",t),e.push(n?`${n}
|
|
12
|
+
|
|
13
|
+
${r}`:r),{command:"codex",args:e,parser:"codex-json"}}case"zai":{let e=process.env.ZAI_API_KEY?.trim(),i=["-p","--verbose","--output-format","stream-json","--include-partial-messages"];return t&&i.push("--model",t),n&&i.push("--system-prompt",n),i.push(r),{command:"claude",args:i,parser:"claude-stream-json",env:{ANTHROPIC_BASE_URL:"https://api.z.ai/api/anthropic",...e?{ANTHROPIC_AUTH_TOKEN:e}:{}}}}default:return null}}({provider:e,model:t,prompt:r,systemPrompt:n});return u&&o(u.command)&&c.push(u),c}async function f({command:e,args:r,timeoutMs:n,signal:a,onDelta:s,onLog:o,onSpawn:l,env:c}){await new Promise((d,u)=>{(0,i.writeDebugLog)("cli-runner.spawn",{command:e,args:r,timeoutMs:n,bundledCliPath:m(),isElectron:process.env.AGX_ELECTRON||null}),o&&o("stderr",`$ ${e} ${r.map(e=>e.length>80?e.slice(0,80)+"…":e).join(" ")}
|
|
14
|
+
`);let p=(0,t.spawn)(e,r,{stdio:["ignore","pipe","pipe"],env:{...process.env,CLAUDECODE:void 0,...c}}),g=!1,f="",h=!1,y=e=>{g||(g=!0,clearTimeout(E),a&&a.removeEventListener("abort",_),e?u(e):d())},_=()=>{(0,i.writeDebugLog)("cli-runner.abort",{command:e,args:r,pid:p.pid??null}),p.kill("SIGTERM"),y(Error("Chat request aborted."))};a&&a.addEventListener("abort",_,{once:!0}),l&&p.pid&&l(p.pid),(0,i.writeDebugLog)("cli-runner.spawned",{command:e,args:r,pid:p.pid??null});let E=setTimeout(()=>{h=!0,(0,i.writeDebugLog)("cli-runner.timeout",{command:e,args:r,pid:p.pid??null,timeoutMs:n}),p.kill("SIGKILL"),y(Error(`CLI request timed out after ${n}ms.`))},n);p.stdout.on("data",e=>{let t=e.toString();f+=t,s(t),o&&o("stdout",t)}),p.stderr.on("data",e=>{let t=e.toString();f+=t,o&&o("stderr",t)}),p.on("error",t=>{(0,i.writeDebugLog)("cli-runner.process_error",{command:e,args:r,pid:p.pid??null,error:t}),y(t)}),p.on("close",(t,n)=>{if(!g&&!h){if((0,i.writeDebugLog)("cli-runner.close",{command:e,args:r,pid:p.pid??null,code:t??null,signal:n??null}),0===t)return void y();y(Error(`CLI command failed (exit=${t??"unknown"} signal=${n??"none"}).${f.trim()?` ${f.trim()}`:""}`))}})})}async function h({provider:e,model:t,prompt:r,identity:n,self:a,skills:s,systemContext:p,passthroughArgs:h,signal:y,onDelta:_,onLog:E,onSpawn:b}){let S,I,w,v,L=(S=!1,I=!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")&&!S?(S=!0,"\n"):"";let r=S?t.replace(/^\n+/,"\n"):t,n=r.trimStart(),i=v.test(n),a=I&&i&&!S,s=I&&!S&&!a&&!/^\s/.test(r)&&/[.!?)]/.test(w)&&/^[A-Z0-9`(]/.test(r),o=a?`
|
|
15
|
+
|
|
16
|
+
${r}`:s?`
|
|
17
|
+
${r}`:r;S=o.endsWith("\n"),I=I||o.trim().length>0;let l=o.replace(/\s+$/g,"");return l.length>0&&(w=l[l.length-1]??w),o}),A=e=>{let t=L(e);t&&_(t)},D=[];p&&D.push(p),n&&D.push(`<identity>
|
|
18
|
+
${n}
|
|
19
|
+
</identity>`),a&&D.push(`<self>
|
|
20
|
+
${a}
|
|
21
|
+
</self>`),s&&D.push(`<skills>
|
|
22
|
+
${s}
|
|
23
|
+
</skills>`);let x=g({provider:e,model:t,prompt:r,systemPrompt:D.length>0?D.join("\n\n"):void 0,passthroughArgs:h});if(0===x.length)throw(0,i.writeDebugLog)("cli-runner.no_attempts",{provider:e,model:t,bundledCliPath:m(),isElectron:process.env.AGX_ELECTRON||null}),Error(`No CLI runner available for provider "${e}". Install agx or provider CLI.`);let T=null;for(let r of x){(0,i.writeDebugLog)("cli-runner.attempt",{provider:e,model:t,command:r.command,args:r.args,parser:r.parser});let n="claude-stream-json"===r.parser?l(A):"codex-json"===r.parser?d(A):"gemini-stream-json"===r.parser?c(A):o(A),a=r.filterThoughts?u(n):n;try{await f({command:r.command,args:r.args,timeoutMs:6e5,signal:y,onDelta:a.push,onLog:E,onSpawn:b,env:r.env}),a.flush(),(0,i.writeDebugLog)("cli-runner.success",{provider:e,model:t,command:r.command});return}catch(n){T=n instanceof Error?n:Error(String(n)),(0,i.writeDebugLog)("cli-runner.failure",{provider:e,model:t,command:r.command,error:T})}}throw T||Error("CLI execution failed.")}e.s(["buildCliAttempts",()=>g,"runCliResponse",()=>h],14350)},77581,40813,e=>{"use strict";var t=e.i(54799),r=e.i(60447);function n(e){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.min(1,e)):null}function i(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function a(e){return{id:e.id,scope:e.scope,subjectId:e.subject_id,sourceType:e.source_type,sourceId:e.source_id,kind:e.kind,title:e.title,body:e.body,confidence:n(e.confidence),durability:n(e.durability),tags:i(e.tags),evidence:i(e.evidence),metadata:function(e){if(!e)return{};try{let t=JSON.parse(e);return t&&"object"==typeof t&&!Array.isArray(t)?t:{}}catch{return{}}}(e.metadata),createdAt:e.created_at,updatedAt:e.updated_at}}function s(e){return(0,r.getSQLiteDb)().prepare(`SELECT id, scope, subject_id, source_type, source_id, kind, title, body,
|
|
2
24
|
confidence, durability, tags, evidence, metadata, created_at, updated_at
|
|
3
25
|
FROM knowledge_entries
|
|
4
26
|
WHERE scope = ? AND subject_id = ?
|
|
@@ -37,28 +59,6 @@ ${c}`).digest("hex");s.get(r.scope,e,u)||(o.run((0,t.randomUUID)(),r.scope,e,r.s
|
|
|
37
59
|
SET content = ?, change_summary = ?, source_type = ?, source_id = ?, metadata = ?, version = ?, updated_at = ?
|
|
38
60
|
WHERE id = ?`).run(s,o,e.sourceType,a,m,g,d,c.id),n.prepare(`INSERT INTO knowledge_note_versions (
|
|
39
61
|
id, note_id, version, content, change_summary, source_type, source_id, metadata, created_at
|
|
40
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run((0,t.randomUUID)(),c.id,g,s,o,e.sourceType,a,m,d);let f=p(e.scope,i);if(!f)throw Error("Failed to read updated knowledge note");return{note:f,changed:!0}}e.s(["listKnowledgeEntries",()=>s,"storeKnowledgeEntries",()=>o],40813),e.s(["getKnowledgeNote",()=>p,"upsertKnowledgeNote",()=>m],77581)}
|
|
41
|
-
`,"utf8")}catch{}}e.s(["getDebugLogPath",()=>o,"writeDebugLog",()=>l])},14350,e=>{"use strict";var t=e.i(33405),r=e.i(22734),n=e.i(14747),i=e.i(37269);let a=e=>"string"==typeof e&&e.trim().length>0,s=e=>{try{return 0===(0,t.spawnSync)("bash",["-lc",`command -v ${e} >/dev/null 2>&1`],{encoding:"utf8"}).status}catch{return!1}},o=e=>({push:e,flush:()=>{}}),l=e=>{let t="",r=0,n=!1,i=t=>{let i=t.trim();if(i)try{let t=JSON.parse(i);n=!0;let s=(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"&&a(e.text)?[e.text]:[]).join("");let t=e?.event;return"stream_event"===e.type&&t?.type==="content_block_delta"&&t?.delta?.type==="text_delta"&&a(t?.delta?.text)?t.delta.text:""})(t);if(!s||t?.type==="assistant"&&r>0)return;r+=s.length,e(s)}catch{n||e(`${t}
|
|
42
|
-
`)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;i(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&i(t),t=""}}},c=e=>{let t="",r=!1,n="",i=t=>{let i=t.trim();if(i)try{let t=JSON.parse(i);r=!0,t?.type==="message"&&t?.role==="assistant"&&a(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}
|
|
43
|
-
`)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;i(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&i(t),t=""}}},d=e=>{let t="",r=!1,n=new Set,i=t=>{let i=t.trim();if(i)try{let t=JSON.parse(i);if(r=!0,t?.type==="item.completed"&&a(t?.item?.id)){if(n.has(t.item.id))return;n.add(t.item.id)}let s=t&&"object"==typeof t?"item.completed"===t.type&&t.item?.type==="agent_message"&&a(t.item?.text)?t.item.text:"item.delta"===t.type&&t.item?.type==="agent_message"&&a(t.delta?.text)?t.delta.text:"":"";s&&e(s)}catch{r||e(`${t}
|
|
44
|
-
`)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;i(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&i(t),t=""}}},u=e=>{let t="",r=!1,n=[/^Thinking\.\.\./,/^<think>/i],i=[/\.\.\.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 i){let i=t.match(r);i&&void 0!==i.index&&(i.index,i[0].length,(-1===e||i.index<e)&&(e=i.index,n=i[0].length))}if(-1!==e){t=t.slice(e+n),r=!1,t=t.replace(/^\s*\n*/,"");continue}return}for(let i of n){let n=t.match(i);if(n&&void 0!==n.index){let i=t.slice(0,n.index);i&&e.push(i),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()}}},p=new Set(["claude","gemini","ollama","codex"]);function m(){let e=process.env.AGX_CLI_PATH?.trim();if(e&&r.default.existsSync(e))return e;for(let e of[n.default.resolve(process.cwd(),"..","cli","index.js"),n.default.resolve("/ROOT/lib","..","cli","index.js"),n.default.resolve(process.execPath,"..","..","Resources","cli","index.js")])if(r.default.existsSync(e))return e;return null}function g({provider:e,model:t,prompt:r,systemPrompt:n,passthroughArgs:i},a={}){let o=a.commandExists??s,l=void 0===a.bundledCliPath?m():a.bundledCliPath,c=[],d=n?`${n}
|
|
45
|
-
|
|
46
|
-
${r}`:r;if(p.has(e)){let r=function({provider:e,model:t,prompt:r,cliPath:n,passthroughArgs:i}){let a=void 0===n?m():n;if(!a)return null;let s=[a,e,"-y","--print","--prompt",r];return t&&s.push("--model",t),i&&i.length>0&&s.push("--",...i),{command:process.execPath,args:s,parser:"raw"}}({provider:e,model:t,prompt:d,cliPath:l,passthroughArgs:i});return r&&c.push(r),o("agx")&&c.push(function({provider:e,model:t,prompt:r,passthroughArgs:n}){let i=[e,"-y","--print","--prompt",r];return t&&i.push("--model",t),n&&n.length>0&&i.push("--",...n),{command:"agx",args:i,parser:"raw"}}({provider:e,model:t,prompt:d,passthroughArgs:i})),c}let u=function({provider:e,model:t,prompt:r,systemPrompt:n}){switch(e){case"claude":{let e=["-p","--verbose","--output-format","stream-json","--include-partial-messages"];return t&&e.push("--model",t),n&&e.push("--system-prompt",n),e.push(r),{command:"claude",args:e,parser:"claude-stream-json"}}case"gemini":return{command:"gemini",args:["--yolo","-p",n?`${n}
|
|
47
|
-
|
|
48
|
-
${r}`:r,"-o","stream-json"],parser:"gemini-stream-json"};case"ollama":return{command:"ollama",args:["run",t||"llama3.2",n?`${n}
|
|
49
|
-
|
|
50
|
-
${r}`:r],parser:"raw"};case"codex":{let e=["exec","--json"];return t&&e.push("--model",t),e.push(n?`${n}
|
|
51
|
-
|
|
52
|
-
${r}`:r),{command:"codex",args:e,parser:"codex-json"}}case"zai":{let e=process.env.ZAI_API_KEY?.trim(),i=["-p","--verbose","--output-format","stream-json","--include-partial-messages"];return t&&i.push("--model",t),n&&i.push("--system-prompt",n),i.push(r),{command:"claude",args:i,parser:"claude-stream-json",env:{ANTHROPIC_BASE_URL:"https://api.z.ai/api/anthropic",...e?{ANTHROPIC_AUTH_TOKEN:e}:{}}}}default:return null}}({provider:e,model:t,prompt:r,systemPrompt:n});return u&&o(u.command)&&c.push(u),c}async function f({command:e,args:r,timeoutMs:n,signal:a,onDelta:s,onLog:o,onSpawn:l,env:c}){await new Promise((d,u)=>{(0,i.writeDebugLog)("cli-runner.spawn",{command:e,args:r,timeoutMs:n,bundledCliPath:m(),isElectron:process.env.AGX_ELECTRON||null}),o&&o("stderr",`$ ${e} ${r.map(e=>e.length>80?e.slice(0,80)+"…":e).join(" ")}
|
|
53
|
-
`);let p=(0,t.spawn)(e,r,{stdio:["ignore","pipe","pipe"],env:{...process.env,CLAUDECODE:void 0,...c}}),g=!1,f="",h=!1,y=e=>{g||(g=!0,clearTimeout(E),a&&a.removeEventListener("abort",_),e?u(e):d())},_=()=>{(0,i.writeDebugLog)("cli-runner.abort",{command:e,args:r,pid:p.pid??null}),p.kill("SIGTERM"),y(Error("Chat request aborted."))};a&&a.addEventListener("abort",_,{once:!0}),l&&p.pid&&l(p.pid),(0,i.writeDebugLog)("cli-runner.spawned",{command:e,args:r,pid:p.pid??null});let E=setTimeout(()=>{h=!0,(0,i.writeDebugLog)("cli-runner.timeout",{command:e,args:r,pid:p.pid??null,timeoutMs:n}),p.kill("SIGKILL"),y(Error(`CLI request timed out after ${n}ms.`))},n);p.stdout.on("data",e=>{let t=e.toString();f+=t,s(t),o&&o("stdout",t)}),p.stderr.on("data",e=>{let t=e.toString();f+=t,o&&o("stderr",t)}),p.on("error",t=>{(0,i.writeDebugLog)("cli-runner.process_error",{command:e,args:r,pid:p.pid??null,error:t}),y(t)}),p.on("close",(t,n)=>{if(!g&&!h){if((0,i.writeDebugLog)("cli-runner.close",{command:e,args:r,pid:p.pid??null,code:t??null,signal:n??null}),0===t)return void y();y(Error(`CLI command failed (exit=${t??"unknown"} signal=${n??"none"}).${f.trim()?` ${f.trim()}`:""}`))}})})}async function h({provider:e,model:t,prompt:r,identity:n,self:a,skills:s,systemContext:p,passthroughArgs:h,signal:y,onDelta:_,onLog:E,onSpawn:b}){let S,I,w,v,L=(S=!1,I=!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")&&!S?(S=!0,"\n"):"";let r=S?t.replace(/^\n+/,"\n"):t,n=r.trimStart(),i=v.test(n),a=I&&i&&!S,s=I&&!S&&!a&&!/^\s/.test(r)&&/[.!?)]/.test(w)&&/^[A-Z0-9`(]/.test(r),o=a?`
|
|
54
|
-
|
|
55
|
-
${r}`:s?`
|
|
56
|
-
${r}`:r;S=o.endsWith("\n"),I=I||o.trim().length>0;let l=o.replace(/\s+$/g,"");return l.length>0&&(w=l[l.length-1]??w),o}),A=e=>{let t=L(e);t&&_(t)},D=[];p&&D.push(p),n&&D.push(`<identity>
|
|
57
|
-
${n}
|
|
58
|
-
</identity>`),a&&D.push(`<self>
|
|
59
|
-
${a}
|
|
60
|
-
</self>`),s&&D.push(`<skills>
|
|
61
|
-
${s}
|
|
62
|
-
</skills>`);let x=g({provider:e,model:t,prompt:r,systemPrompt:D.length>0?D.join("\n\n"):void 0,passthroughArgs:h});if(0===x.length)throw(0,i.writeDebugLog)("cli-runner.no_attempts",{provider:e,model:t,bundledCliPath:m(),isElectron:process.env.AGX_ELECTRON||null}),Error(`No CLI runner available for provider "${e}". Install agx or provider CLI.`);let T=null;for(let r of x){(0,i.writeDebugLog)("cli-runner.attempt",{provider:e,model:t,command:r.command,args:r.args,parser:r.parser});let n="claude-stream-json"===r.parser?l(A):"codex-json"===r.parser?d(A):"gemini-stream-json"===r.parser?c(A):o(A),a=r.filterThoughts?u(n):n;try{await f({command:r.command,args:r.args,timeoutMs:6e5,signal:y,onDelta:a.push,onLog:E,onSpawn:b,env:r.env}),a.flush(),(0,i.writeDebugLog)("cli-runner.success",{provider:e,model:t,command:r.command});return}catch(n){T=n instanceof Error?n:Error(String(n)),(0,i.writeDebugLog)("cli-runner.failure",{provider:e,model:t,command:r.command,error:T})}}throw T||Error("CLI execution failed.")}e.s(["buildCliAttempts",()=>g,"runCliResponse",()=>h],14350)}];
|
|
62
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run((0,t.randomUUID)(),c.id,g,s,o,e.sourceType,a,m,d);let f=p(e.scope,i);if(!f)throw Error("Failed to read updated knowledge note");return{note:f,changed:!0}}e.s(["listKnowledgeEntries",()=>s,"storeKnowledgeEntries",()=>o],40813),e.s(["getKnowledgeNote",()=>p,"upsertKnowledgeNote",()=>m],77581)}];
|
|
63
63
|
|
|
64
|
-
//# sourceMappingURL=
|
|
64
|
+
//# sourceMappingURL=lib_a5adca60._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[62294,12592,e=>{"use strict";var t=e.i(57431);let r="Waiting on dependencies",i=[{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 n extends Error{}function o(e){let t=Array.isArray(e.events)?e.events.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>i.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,i="string"==typeof e.message?e.message:"";return"42P01"===r||"PGRST205"===r||i.includes(`relation "${t}" does not exist`)||i.includes(`Could not find the table 'agx.${t}'`)||i.includes(`Could not find the table 'public.${t}'`)}(t,e))throw new n(`Missing relation: ${e}`);throw t}async function l(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("notification_webhooks").select("*").eq("user_id",e).order("created_at",{ascending:!1});return(n&&await a("notification_webhooks",n),i)?(Array.isArray(i)?i:[i]).map(o):[]}async function s(e){if(!e.userId)return;let t=[];try{t=await l(e.userId)}catch(e){if(e instanceof n)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 i=e.timestamp||new Date().toISOString(),o={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:i,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(o)});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",()=>s],12592);var d=e.i(54799);function c(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 u(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("user_settings").select("*").eq("user_id",e).maybeSingle();if(n){if(c(n,"user_settings"))return null;throw n}return i||null}async function f(e,r,i){let n=i?.onlyIfNewer!==!1,o=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 u(e);if(n&&a?.changed_at){let e=Date.parse(a.changed_at),t=Date.parse(o);if(Number.isFinite(e)&&Number.isFinite(t)&&t<=e)return{settings:a,updated:!1}}let l={user_id:e,default_provider:r.default_provider??a?.default_provider??null,models:r.models??a?.models??{},provenance:r.provenance,changed_at:o},s=(0,t.createAdminDbClient)(),{error:d}=await s.from("user_settings").upsert(l,{onConflict:"user_id"});if(d)throw d;let c=await u(e);if(!c)throw Error("Failed to load user_settings after upsert");return{settings:c,updated:!0}}function p(t,r,i){let n=e=>"string"!=typeof e?null:e.trim()||null,o=null;try{let t=e.r(22734),r=e.r(14747).join(process.env.HOME||"",".agx","config.json"),i=JSON.parse(t.readFileSync(r,"utf-8"));o=n(i?.defaultProvider)||null}catch{}let a=n(i?.default_provider)||o||"claude",l=n(t.provider)||n(r?.provider)||a,s=n(i?.models?.[l])||null,d=n(t.model)||n(r?.model)||s||null;return{provider:l,model:d,swarm:t.swarm??r?.swarm??!1,swarm_models:t.swarm_models?.length?t.swarm_models:r?.swarm_models||[]}}function m(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"task"}async function w(e,t){let r=m(e);for(let i=0;i<5;i++){let{data:i,error:n}=await t.from("tasks").select("id").eq("slug",r).limit(1);if(n)throw n;if(!i||0===i.length)return r;let o=Math.random().toString(36).slice(2,6);r=`${m(e)}-${o}`.slice(0,48)}return`${m(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}async function _(e,t,r,i){let n=m(e);for(let o=0;o<5;o++){let o=r.from("projects").select("id").eq("slug",n).eq("user_id",t);i&&(o=o.neq("id",i));let{data:a,error:l}=await o.limit(1);if(l)throw l;if(!a||0===a.length)return n;let s=Math.random().toString(36).slice(2,6);n=`${m(e)}-${s}`.slice(0,48)}return`${m(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}function g(e){return e??(0,t.createAdminDbClient)()}function k(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 y(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=k(e)}return Array.from(new Set(t.map(e=>e.trim()).filter(Boolean)))}function h(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 i=e.slice(0,t).trim(),n=e.slice(t+1).trim();if("depends_on"===i){r[i]=k(n);continue}"true"===n?r[i]=!0:"false"===n?r[i]=!1:/^\d+$/.test(n)?r[i]=parseInt(n):r[i]=n}}return{frontmatter:r,body:t[2]}}async function b(e,t,r){if(!e||!t?.length)return;let i=g(r),n=new Set,o=[...t];for(;o.length;){let t=o.pop();if(!t)continue;if(t===e)throw Error("Circular dependency detected");if(n.has(t))continue;n.add(t);let{data:r,error:a}=await i.from("tasks").select("depends_on").eq("id",t).maybeSingle();if(a){if("PGRST116"===a.code||"42703"===a.code)continue;throw a}if(r)for(let e of Array.isArray(r.depends_on)?r.depends_on:[])e&&!n.has(e)&&o.push(e)}}function j(e){let{body:t}=h(e),r=t.match(/^#\s+(.+)$/m);return r?r[1]:void 0}function v(e){return String(e||"").replace(/^#\s+.+(\r?\n|$)/,"").trim()}async function q(e,i){var n;let o=Array.isArray(e.depends_on)?e.depends_on:[];if(!o.length)return;let a=(0,t.createAdminDbClient)(),{data:l,error:s}=await a.from("tasks").select("id, title, slug, status, stage").in("id",o);if(s)return;let d=(Array.isArray(l)?l:[]).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)??""}`),i=`${r}: ${t.join(", ")}`;return e.length>3&&(i+=` +${e.length-3} more`),i}(d),n=a.from("tasks").update({status:"blocked",blocked_reason:t}).eq("id",e.id);i&&(n=n.eq("user_id",i));let{error:o}=await n;if(o&&"42703"!==o.code)throw o;return}if("blocked"===e.status&&"string"==typeof(n=e.blocked_reason)&&n.startsWith(r)){let t=a.from("tasks").update({status:"queued",blocked_reason:null}).eq("id",e.id);i&&(t=t.eq("user_id",i));let{error:r}=await t;if(r&&"42703"!==r.code)throw r}}async function A(e,r){console.log("getTasks called with userId:",e);let i=(0,t.createAdminDbClient)().from("tasks").select("*").order("priority",{ascending:!0,nullsFirst:!1}).order("created_at",{ascending:!1});if(e&&(i=i.eq("user_id",e)),r?.project&&(i=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(r.project)?i.eq("project_id",r.project):i.eq("project",r.project)),r?.orphan&&(i=i.is("project_id",null)),r?.status&&(i=i.eq("status",r.status)),r?.search){let e=r.search;i=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)?i.or(`id.eq.${e},slug.ilike.%${e}%,title.ilike.%${e}%`):i.or(`id.ilike.%${e}%,slug.ilike.%${e}%,title.ilike.%${e}%`)}let{data:n,error:o}=await i;if(o)throw o;let a=n||[];return r?.orphan?a.filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t}):a}async function C(e,r){let i=(0,t.createAdminDbClient)().from("tasks").select("*").eq("id",e);r&&(i=i.eq("user_id",r));let{data:n,error:o}=await i.single();if(o){if("PGRST116"===o.code)return null;throw o}return n}async function S(e,r){let i=(0,t.createAdminDbClient)().from("tasks").select("*").eq("slug",e);r&&(i=i.eq("user_id",r));let{data:n,error:o}=await i.single();if(o){if("PGRST116"===o.code)return null;throw o}return n}async function D(e,r,i){let n=(0,t.createAdminDbClient)(),{frontmatter:o,body:a}=h(e),l="boolean"==typeof o.swarm?o.swarm:void 0,c=i?.title||j(e),u=String(o.slug||c||"task"),f=await w(u,n),p=i?.projectId||("string"==typeof o.project_id?o.project_id:void 0),m="string"==typeof o.workflow_id?o.workflow_id:void 0,_="string"==typeof o.project?o.project:void 0;if(!_&&p){let{data:e}=await n.from("projects").select("slug").eq("id",p).single();e?.slug&&(_=e.slug)}/^---\n/.test(e);let g="string"==typeof o.provider?o.provider:null,k="string"==typeof o.model?o.model:null,A="string"==typeof o.engine?o.engine:null,S="ai"===o.created_by?"ai":"user",D=y(o.depends_on),T=y(i?.dependsOn),P=T.length>0?T:D,O={id:(0,d.randomUUID)(),content:e,description:v(a),title:c,slug:f,status:o.status||"queued",stage:o.stage||"intake",project:_||null,...void 0!==p?{project_id:p}:{},...void 0!==m?{workflow_id:m}:{},priority:o.priority,engine:A,provider:g,model:k,swarm:l,swarm_models:i?.swarmModels??null,depends_on:P.length?P:null,created_by:S,user_id:r,current_plan:i?.currentPlan||null,open_blockers:i?.openBlockers||[],next_action:i?.nextAction||null,version:1};await b(O.id,P,n);let{data:$,error:I}=await n.from("tasks").insert(O).select().single();if(I&&"42703"===I.code){let{swarm_models:e,swarm:t,workflow_id:r,current_plan:i,open_blockers:o,next_action:a,version:l,depends_on:s,...d}=O;({data:$,error:I}=await n.from("tasks").insert(d).select().single())}if(I)throw I;if(!$)throw Error("Failed to create task");await q($,r);let x=await C($.id,r)||$,E=r||x.user_id;if(E){let e=x.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(x.depends_on)?x.depends_on:[],project:x.project||null,projectId:x.project_id||null,workflowId:x.workflow_id||null,createdBy:x.created_by||null};s({taskId:x.id,userId:E,eventType:"task.created",title:x.title||null,slug:x.slug||null,stage:x.stage||null,status:x.status||null,timestamp:e,details:t})}return x}async function T(e,r,i,n){let o=(0,t.createAdminDbClient)(),{frontmatter:a,body:l}=h(r),d="boolean"==typeof a.swarm?a.swarm:void 0,c=j(r),u="string"==typeof a.project_id?a.project_id:void 0,f=Object.prototype.hasOwnProperty.call(a,"provider"),p=Object.prototype.hasOwnProperty.call(a,"model"),m=Object.prototype.hasOwnProperty.call(a,"workflow_id"),w=Object.prototype.hasOwnProperty.call(a,"depends_on"),_=y(a.depends_on),g=y(n?.dependsOn),k=n?.dependsOn!==void 0||w,A=n?.dependsOn!==void 0?g:_,S={content:r,description:v(l),title:c,status:a.status,stage:a.stage,project:a.project,...void 0!==u?{project_id:u}:{},workflow_id:m?a.workflow_id:void 0,priority:a.priority,engine:a.engine,provider:f?a.provider:null,model:p?a.model:null,swarm:d,swarm_models:n?.swarmModels??void 0,...k?{depends_on:A.length?A:null}:{},updated_at:new Date().toISOString(),current_plan:n?.currentPlan??void 0,open_blockers:n?.openBlockers??void 0,next_action:n?.nextAction??void 0};Object.keys(S).forEach(e=>{void 0===S[e]&&delete S[e]}),k&&await b(e,A,o);let D=o.from("tasks").update({...S,version:o.rpc("increment_version")}).eq("id",e);i&&(D=D.eq("user_id",i)),n?.expectedVersion!==void 0&&(D=D.eq("version",n.expectedVersion));let{data:T,error:P}=await o.from("tasks").update({...S}).eq("id",e).select().maybeSingle();if(P&&console.error(`[db.updateTask] error updating task ${e}:`,P),T||P||console.warn(`[db.updateTask] UPDATE returned 0 rows for task ${e}, payload keys:`,Object.keys(S)),P&&"42703"===P.code){let{swarm_models:t,swarm:r,workflow_id:n,current_plan:a,open_blockers:l,next_action:s,version:d,depends_on:c,...u}=S,f=o.from("tasks").update(u).eq("id",e);i&&(f=f.eq("user_id",i)),{data:T,error:P}=await f.select().maybeSingle()}if(P)throw P;if(!T){let t=await C(e,i);if(!t)throw Error(`Task ${e} not found`);return t}await q(T,i);let O=await C(T.id,i)||T,$=i||O.user_id;if($){let e=O.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(O.depends_on)?O.depends_on:[],project:O.project||null,projectId:O.project_id||null,workflowId:O.workflow_id||null,createdBy:O.created_by||null};s({taskId:O.id,userId:$,eventType:"task.created",title:O.title||null,slug:O.slug||null,stage:O.stage||null,status:O.status||null,timestamp:e,details:t})}return O}async function P(e,r,i=25){let n=(0,t.createAdminDbClient)(),{data:o,error:a}=await n.from("tasks").select("run_index").eq("id",e).single();if(a){if(a?.code==="42703")return;throw a}let l=[r,...Array.isArray(o.run_index)?o.run_index:[]].slice(0,i),{error:s}=await n.from("tasks").update({run_index:l}).eq("id",e);if(s){if(s?.code==="42703")return;throw s}}async function O(e,r){let i=(0,t.createAdminDbClient)().from("tasks").delete().eq("id",e);r&&(i=i.eq("user_id",r));let{error:n}=await i;if(n)throw n}async function $(e){let r=(0,t.createAdminDbClient)().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:i,error:n}=await r.single();if(n){if("PGRST116"===n.code)return null;throw n}return i}async function I(e){let r=(0,t.createAdminDbClient)().from("projects").select("*, project_repos(*)");e&&(r=r.eq("user_id",e));let{data:i,error:n}=await r;if(n){if(c(n,"projects"))return[];throw n}return(i||[]).map(e=>({...e,repos:e.project_repos??[]}))}async function x(e,r){let i=(0,t.createAdminDbClient)().from("projects").select("*").eq("slug",e);r&&(i=i.eq("user_id",r));let{data:n,error:o}=await i.maybeSingle();if(o){if(c(o,"projects"))return null;throw o}return n||null}async function E(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_repos").select("*").eq("project_id",e);if(n){if(c(n,"project_repos"))return[];throw n}return i||[]}let N=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function W(e,r){let i=(0,t.createAdminDbClient)(),n=N.test(e),o=i.from("projects").select("*");o=n?o.eq("id",e):o.eq("slug",e),r&&(o=o.eq("user_id",r));let a=await o.maybeSingle();if(a.error){if(c(a.error,"projects"))return null;throw a.error}let l=a.data;if(!l)return null;let s=await E(l.id);return{...l,repos:s}}async function F(e,t,r){if(!t.length)return[];let i=t.map(t=>({...t.id?{id:t.id}:{},project_id:e,name:t.name,path:t.path??null,git_url:t.git_url??null,notes:t.notes??null})),{data:n,error:o}=await r.from("project_repos").insert(i).select("*");if(o){if(c(o,"project_repos"))return[];throw o}return n||[]}async function M(e,t,r){if(!t.name?.trim())throw Error("Project name is required");let i=g(r),n=t.name.trim()||"project",o=await _(n,e,i),a={user_id:e,name:t.name.trim(),slug:o,description:t.description??null,workflow_id:t.workflow_id??null},{data:l,error:s}=await i.from("projects").insert(a).select("*").single();if(s)throw s;let d=await F(l.id,t.repos??[],i);return{...l,repos:d}}async function R(e,t,r,i){let n=g(i),o=N.test(e),a=e;if(!o){let r=await x(e,t);if(!r)return null;a=r.id}let l={};if(void 0!==r.name){let e=r.name?.trim();if(!e)throw Error("Project name cannot be empty");l.name=e}if(void 0!==r.slug){let e=r.slug?.trim();e&&(l.slug=e)}if(void 0!==r.description&&(l.description=r.description),void 0!==r.metadata&&(l.metadata=r.metadata),void 0!==r.ci_cd_info&&(l.ci_cd_info=r.ci_cd_info),void 0!==r.workflow_id&&(l.workflow_id=r.workflow_id),Object.keys(l).length){let{error:e}=await n.from("projects").update(l).eq("id",a).eq("user_id",t);if(e)throw e}if(r.repos){let{data:e,error:t}=await n.from("project_repos").select("*").eq("project_id",a);if(t&&!c(t,"project_repos"))throw t;let i=e||[],o=new Set(i.map(e=>e.id)),l=new Set(r.repos.map(e=>e.id).filter(e=>!!e));for(let e of i){if(l.has(e.id))continue;let{error:t}=await n.from("project_repos").delete().eq("id",e.id).eq("project_id",a);if(t&&!c(t,"project_repos"))throw t}for(let e of r.repos){let t={name:e.name,path:e.path??null,git_url:e.git_url??null,notes:e.notes??null,project_id:a};if(e.id&&o.has(e.id)){let{error:r}=await n.from("project_repos").update(t).eq("id",e.id).eq("project_id",a);if(r&&!c(r,"project_repos"))throw r;continue}let{error:r}=await n.from("project_repos").insert({...e.id?{id:e.id}:{},...t});if(r&&!c(r,"project_repos"))throw r}}return W(a,t)}async function L(e,t,r){let i=g(r),{error:n}=await i.from("projects").delete().eq("id",e).eq("user_id",t);if(n)throw n}async function B(e,t,r){let i=g(r),{data:n,error:o}=await i.from("projects").select("id, slug").eq("id",e).eq("user_id",t).maybeSingle();if(o)throw o;if(!n)throw Error("Project not found");let{data:a,error:l}=await i.from("tasks").select("id, project").eq("user_id",t).is("project_id",null);if(l)throw l;let s=String(n.slug||"").trim().toLowerCase(),d=(a||[]).filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t||t===s}).map(e=>e.id);if(!d.length)return{updatedCount:0,taskIds:[]};let{error:c}=await i.from("tasks").update({project:n.slug,project_id:n.id,updated_at:new Date().toISOString()}).eq("user_id",t).is("project_id",null).in("id",d);if(c)throw c;return{updatedCount:d.length,taskIds:d}}let G="00000000-0000-0000-0000-000000000001",U=[{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"}],V=new Map(U.map(e=>[e.id,e]));async function J(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("workflows").upsert({id:G,user_id:e||"00000000-0000-0000-0000-000000000000",name:"Default Workflow",definition:{}},{onConflict:"id"});if(i)throw i;let{error:n}=await r.from("workflow_nodes").upsert(U.map(e=>({...e,workflow_id:G,metadata:{}})),{onConflict:"id"});if(n)throw n;let{error:o}=await r.from("workflow_transitions").upsert([{workflow_id:G,from_node_id:"00000000-0000-0000-0001-000000000001",to_node_id:"00000000-0000-0000-0001-000000000002",condition:"done",priority:0,metadata:{}},{workflow_id:G,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(o)throw o}async function K(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("workflows").select("*").or(`user_id.eq.${e},user_id.eq.00000000-0000-0000-0000-000000000000`).order("created_at",{ascending:!1});if(n){if(c(n,"workflows"))return[];throw n}return i||[]}async function z(e,r){let i=(0,t.createAdminDbClient)().from("workflows").select("*").eq("id",e),{data:n,error:o}=await i.maybeSingle();if(o){if(c(o,"workflows"))return null;throw o}return n}async function H(e,r,i){let n=(0,t.createAdminDbClient)(),o={updated_at:new Date().toISOString()};void 0!==i.definition&&(o.definition=i.definition),void 0!==i.name&&(o.name=i.name),void 0!==i.description&&(o.description=i.description);let{data:a,error:l}=await n.from("workflows").update(o).eq("id",e).select().single();if(l)throw l;return a}async function Q(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("workflow_nodes").select("*").eq("workflow_id",e).order("position",{ascending:!0});if(n){if(c(n,"workflow_nodes"))return[];throw n}return i||[]}async function X(e,r,i){let n=(0,t.createAdminDbClient)();if(e===G&&await J(r),!await z(e,r))throw Error("Workflow not found");if(e===G){let t=i.map(t=>{let r=V.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 n.from("workflow_nodes").upsert(t,{onConflict:"id"});if(e)throw e}return Q(e)}return await Promise.all(i.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:i}=await n.from("workflow_nodes").update(r).eq("workflow_id",e).eq("id",t.id);if(i)throw i})),Q(e)}async function Y(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("workflow_nodes").select("*").eq("workflow_id",e).eq("name",r).maybeSingle();if(o){if(c(o,"workflow_nodes"))return null;throw o}return n}async function Z(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("workflow_transitions").select("*").eq("workflow_id",e).order("priority",{ascending:!0});if(n){if(c(n,"workflow_transitions"))return[];throw n}return i||[]}async function ee(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("workflow_transitions").select("*").eq("workflow_id",e).eq("from_node_id",r).order("priority",{ascending:!0});if(o){if(c(o,"workflow_transitions"))return[];throw o}return n||[]}async function et(e,t){let r=await z(e,t);if(!r)return null;let[i,n]=await Promise.all([Q(e),Z(e)]);return{...r,nodes:i,transitions:n}}async function er(e,r={}){let i=(0,t.createAdminDbClient)(),n=Math.max(1,Math.min(2e3,Number(r.limit??r.tail??500))),o="string"==typeof r.after&&r.after.trim()?r.after.trim():null,a=o?null:void 0===r.tail?n:Number(r.tail),l=null!==a&&Number.isFinite(a)&&a>0,s=i.from("task_logs").select("*").eq("task_id",e);r.nodeId&&(s=s.eq("node_id",r.nodeId)),s=o?s.gt("created_at",o).order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(n):l?s.order("created_at",{ascending:!1}).order("id",{ascending:!1}).limit(n):s.order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(n);let{data:d,error:c}=await s;if(c)throw c;let u=d||[];return o?u:l?u.slice().reverse():u}async function ei(e,r,i,n){let o=(0,t.createAdminDbClient)(),{data:a,error:l}=await o.from("task_logs").insert({task_id:e,content:r,log_type:i,...n?{node_id:n}:{}}).select().single();if(l)throw l;return a}function en(e){let t=Number(e??0);return Number.isFinite(t)?Math.max(0,Math.round(t)):0}function eo(e){let t=Number(e??0);return Number.isFinite(t)?Math.max(0,t):0}async function ea(e){let r=(0,t.createAdminDbClient)(),i={task_id:e.taskId,stage:e.stage,provider:e.provider??null,model:e.model??null,input_tokens:en(e.inputTokens),output_tokens:en(e.outputTokens),estimated_cost:eo(e.estimatedCost)},{data:n,error:o}=await r.from("task_costs").insert(i).select().single();if(o)throw o;return n}async function el(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("task_costs").select("*").eq("task_id",e).order("created_at",{ascending:!0});if(n)throw n;return i||[]}async function es(e){return function(e){let t={},r=0,i=0,n=0;for(let o of e){let e=o.stage||"unknown",a=en(o.input_tokens),l=en(o.output_tokens),s=eo(o.estimated_cost??0);r+=a,i+=l,n+=s;let d=t[e]||{stage:e,input_tokens:0,output_tokens:0,estimated_cost:0,entries:0};d.input_tokens+=a,d.output_tokens+=l,d.estimated_cost+=s,d.entries+=1,t[e]=d}return{total_input_tokens:r,total_output_tokens:i,total_cost:n,per_stage:Object.values(t).sort((e,t)=>e.stage.localeCompare(t.stage))}}(await el(e))}async function ed(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("task_comments").select("*").eq("task_id",e).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(n)throw n;return i||[]}async function ec(e,r,i,n){let o=(0,t.createAdminDbClient)(),{data:a,error:l}=await o.from("task_comments").insert({task_id:e,content:r,author_type:i,author_id:n??null}).select().single();if(l)throw l;return a}async function eu(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("task_comments").select("author_id, author_type").eq("id",e).single();if(o)throw o;if(!n)throw Error("Comment not found");if("user"!==n.author_type||n.author_id!==r)throw Error("Unauthorized");let{error:a}=await i.from("task_comments").update({deleted_at:new Date().toISOString()}).eq("id",e).is("deleted_at",null);if(a)throw a}async function ef(e,r,i){let n=(0,t.createAdminDbClient)().from("learnings").select("*").eq("scope",e).order("created_at",{ascending:!1});r&&(n=n.eq("scope_id",r)),i&&(n=n.eq("user_id",i));let{data:o,error:a}=await n;if(a)throw a;return o||[]}async function ep(e,r,i,n){let o=(0,t.createAdminDbClient)(),{data:a,error:l}=await o.from("learnings").insert({scope:e,scope_id:i,content:r,user_id:n}).select().single();if(l)throw l;return a}async function em(e,r){let i=(0,t.createAdminDbClient)().from("learnings").delete().eq("id",e);r&&(i=i.eq("user_id",r));let{error:n}=await i;if(n)throw n}async function ew(e,r){let i=(0,t.createAdminDbClient)().from("stage_prompts").select("*").eq("workflow_id",r).order("stage",{ascending:!0});i=e?i.or(`user_id.eq.${e},is_default.eq.true`):i.eq("is_default",!0);let{data:n,error:o}=await i;if(o)throw o;return n||[]}async function e_(e,r,i){let n=(0,t.createAdminDbClient)();if(r){let{data:t}=await n.from("stage_prompts").select("*").eq("workflow_id",i).eq("stage",e).eq("user_id",r).single();if(t)return t}let{data:o}=await n.from("stage_prompts").select("*").eq("workflow_id",i).eq("stage",e).eq("is_default",!0).single();return o||null}async function eg(e,r,i=[],n,o,a){let l=(0,t.createAdminDbClient)(),s={stage:e,prompt:r,outputs:i,user_id:n,is_default:!n,workflow_id:a};o&&(void 0!==o.swarm&&(s.swarm=o.swarm),void 0!==o.provider&&(s.provider=o.provider),void 0!==o.model&&(s.model=o.model),void 0!==o.swarm_models&&(s.swarm_models=o.swarm_models));let{data:d,error:c}=await l.from("stage_prompts").upsert(s,{onConflict:n?"workflow_id,stage,user_id":"workflow_id,stage,is_default"}).select().single();if(c)throw c;return d}async function ek(e,r){let i=(0,t.createAdminDbClient)().from("stage_prompts").delete().eq("id",e);r&&(i=i.eq("user_id",r));let{error:n}=await i;if(n)throw n}async function ey(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("agents").select("*").eq("user_id",e).order("created_at",{ascending:!1});if(n){if(c(n,"agents"))return[];throw n}return i||[]}async function eh(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("agents").select("*").eq("id",e).eq("user_id",r).maybeSingle();if(o){if("PGRST116"===o.code||c(o,"agents"))return null;throw o}return n}async function eb(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("agent_skills").select("*").eq("agent_id",e).order("created_at",{ascending:!0});if(n){if(c(n,"agent_skills"))return[];throw n}return i||[]}async function ej(e,r){let i=(0,t.createAdminDbClient)(),n=new Map;for(let t of r){let r=t.file.trim();r&&n.set(r,{agent_id:e,file:r,condition:t.condition?.trim()||null})}let o=await eb(e);for(let t of o)if(!n.has(t.file)){let{error:r}=await i.from("agent_skills").delete().eq("agent_id",e).eq("file",t.file);if(r&&!c(r,"agent_skills"))throw r}for(let t of n.values()){let r=o.find(e=>e.file===t.file);if(!r){let{error:e}=await i.from("agent_skills").insert(t);if(e&&!c(e,"agent_skills"))throw e;continue}if((r.condition??null)!==t.condition){let{error:r}=await i.from("agent_skills").update({condition:t.condition}).eq("agent_id",e).eq("file",t.file);if(r&&!c(r,"agent_skills"))throw r}}return eb(e)}async function ev(e,r){let i=(0,t.createAdminDbClient)(),n={user_id:e,name:r.name,style:r.style,description:r.description??null};void 0!==r.id&&(n.id=r.id),void 0!==r.voice&&(n.voice=r.voice),void 0!==r.seed&&(n.seed=r.seed),void 0!==r.model&&(n.model=r.model),void 0!==r.provider&&(n.provider=r.provider),void 0!==r.color&&(n.color=r.color);let{data:o,error:a}=await i.from("agents").insert(n).select().single();if(a){if(c(a,"agents"))throw Error("Agents table does not exist");throw a}return o}async function eq(e,r,i){let n=(0,t.createAdminDbClient)(),o={updated_at:new Date().toISOString()};if(void 0!==i.name&&(o.name=i.name),void 0!==i.style&&(o.style=i.style),void 0!==i.description&&(o.description=i.description),void 0!==i.voice&&(o.voice=i.voice),void 0!==i.seed&&(o.seed=i.seed),void 0!==i.model&&(o.model=i.model),void 0!==i.provider&&(o.provider=i.provider),void 0!==i.color&&(o.color=i.color),1===Object.keys(o).length)return eh(e,r);let{data:a,error:l}=await n.from("agents").update(o).eq("id",e).eq("user_id",r).select().single();if(l){if("PGRST116"===l.code||c(l,"agents"))return null;throw l}return a}async function eA(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("agents").delete().eq("id",e).eq("user_id",r);if(n&&!c(n,"agents"))throw n}async function eC(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_agents").select("*").eq("project_id",e).order("routing_order",{ascending:!0});if(n){if(c(n,"project_agents"))return[];throw n}return i||[]}async function eS(e,r,i){let n=(0,t.createAdminDbClient)();if(void 0===i){let{data:t}=await n.from("project_agents").select("routing_order").eq("project_id",e).order("routing_order",{ascending:!1}).limit(1);i=(t?.[0]?.routing_order??-1)+1}let{data:o,error:a}=await n.from("project_agents").upsert({project_id:e,agent_id:r,routing_order:i}).select().single();if(a)throw a;return o}async function eD(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("project_agents").delete().eq("project_id",e).eq("agent_id",r);if(n)throw n}async function eT(e,r){let i=(0,t.createAdminDbClient)();for(let t=0;t<r.length;t++)await i.from("project_agents").update({routing_order:t}).eq("project_id",e).eq("agent_id",r[t]);return eC(e)}async function eP(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_skills").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(n){if(c(n,"project_skills"))return[];throw n}return i||[]}async function eO(e,r,i){let n=(0,t.createAdminDbClient)(),{data:o,error:a}=await n.from("project_skills").insert({project_id:e,file:r,condition:i??null}).select().single();if(a)throw a;return o}async function e$(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("project_skills").delete().eq("id",e);if(i)throw i}async function eI(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_variables").select("*").eq("project_id",e);if(n){if(c(n,"project_variables"))return[];throw n}return i||[]}async function ex(e,r,i){let n=(0,t.createAdminDbClient)(),{data:o,error:a}=await n.from("project_variables").upsert({project_id:e,key:r,value:i}).select().single();if(a)throw a;return o}async function eE(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("project_variables").delete().eq("project_id",e).eq("key",r);if(n)throw n}async function eN(e,r){let i=(0,t.createAdminDbClient)().from("project_memory").select("*").eq("project_id",e).order("created_at",{ascending:!1});r&&(i=i.eq("producer",r));let{data:n,error:o}=await i;if(o){if(c(o,"project_memory"))return[];throw o}return n||[]}async function eW(e,r,i,n="human"){let o=(0,t.createAdminDbClient)(),{data:a,error:l}=await o.from("project_memory").insert({project_id:e,content:r,source:i??null,producer:n}).select().single();if(l)throw l;return a}async function eF(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("project_memory").delete().eq("id",e);if(i)throw i}async function eM(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_threads").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(n){if(c(n,"project_threads"))return[];throw n}return i||[]}async function eR(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("project_threads").insert({project_id:e,thread_id:r}).select().single();if(o)throw o;return n}async function eL(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("project_threads").delete().eq("project_id",e).eq("thread_id",r);if(n)throw n}async function eB(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_threads").select("project_id").eq("thread_id",e).maybeSingle();return n?(c(n,"project_threads"),null):i?.project_id??null}async function eG(e){return(await eI(e)).map(e=>({key:e.key,value:e.value,source:"project"}))}async function eU(e,t,r,i){let n=await eP(t),o=await eN(t),a=await eG(t);return{skills:function(e,t){let r=[],i=new Set;for(let t of e){let e=t.file.split("/").pop()||t.file;i.add(e),r.push({file:t.file,condition:t.condition,source:"agent"})}for(let e of t){let t=e.file.split("/").pop()||e.file;i.has(t)||r.push({file:e.file,condition:e.condition??void 0,source:"project"})}return r}(r,n),memory:function(e,t){let r=[];for(let e of t)r.push({content:e.content,source:"project",id:e.id});for(let t of e)r.push({content:t.content,source:"agent",id:t.id});return r}(i,o),variables:a}}e.s(["DEFAULT_WORKFLOW_ID",0,"00000000-0000-0000-0000-000000000001","addLearning",()=>ep,"addProjectAgent",()=>eS,"addProjectMemory",()=>eW,"addProjectSkill",()=>eO,"addProjectThread",()=>eR,"addTaskComment",()=>ec,"addTaskCostEntry",()=>ea,"addTaskLog",()=>ei,"appendRunToIndex",()=>P,"assignOrphanTasksToProject",()=>B,"buildExecutionProvenance",()=>eU,"createAgent",()=>ev,"createProject",()=>M,"createTask",()=>D,"defaultStagePrompts",0,{INTAKE:{prompt:"New task. Triage, scope, and prepare for work.",outputs:[],swarm:!1},PROGRESS:{prompt:"Task is actively being worked on.",outputs:[],swarm:!1},DONE:{prompt:"Task completed.",outputs:[],swarm:!1}},"deleteAgent",()=>eA,"deleteLearning",()=>em,"deleteProject",()=>L,"deleteProjectMemory",()=>eF,"deleteProjectVariable",()=>eE,"deleteStagePrompt",()=>ek,"deleteTask",()=>O,"deleteTaskComment",()=>eu,"ensureNoCircularDependency",()=>b,"getAgent",()=>eh,"getAgentSkills",()=>eb,"getAgents",()=>ey,"getLearnings",()=>ef,"getNextQueuedTask",()=>$,"getProjectAgents",()=>eC,"getProjectBySlug",()=>x,"getProjectForThread",()=>eB,"getProjectMemory",()=>eN,"getProjectRepos",()=>E,"getProjectSkills",()=>eP,"getProjectThreads",()=>eM,"getProjectVariables",()=>eI,"getProjectWithRepos",()=>W,"getProjects",()=>I,"getStagePrompt",()=>e_,"getStagePrompts",()=>ew,"getTask",()=>C,"getTaskBySlug",()=>S,"getTaskComments",()=>ed,"getTaskCostEntries",()=>el,"getTaskCostSummary",()=>es,"getTaskLogs",()=>er,"getTasks",()=>A,"getUserSettings",()=>u,"getWorkflow",()=>z,"getWorkflowNodeByName",()=>Y,"getWorkflowNodes",()=>Q,"getWorkflowTransitions",()=>Z,"getWorkflowTransitionsFromNode",()=>ee,"getWorkflowWithGraph",()=>et,"getWorkflows",()=>K,"parseFrontmatter",()=>h,"removeProjectAgent",()=>eD,"removeProjectSkill",()=>e$,"removeProjectThread",()=>eL,"reorderProjectAgents",()=>eT,"resolveTaskConfig",()=>p,"setAgentSkills",()=>ej,"setProjectVariable",()=>ex,"updateAgent",()=>eq,"updateProject",()=>R,"updateTask",()=>T,"updateWorkflow",()=>H,"updateWorkflowNodes",()=>X,"upsertStagePrompt",()=>eg,"upsertUserSettings",()=>f],62294)}];
|
|
1
|
+
module.exports=[62294,12592,e=>{"use strict";var t=e.i(57431);let r="Waiting on dependencies",i=[{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 n extends Error{}function o(e){let t=Array.isArray(e.events)?e.events.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>i.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,i="string"==typeof e.message?e.message:"";return"42P01"===r||"PGRST205"===r||i.includes(`relation "${t}" does not exist`)||i.includes(`Could not find the table 'agx.${t}'`)||i.includes(`Could not find the table 'public.${t}'`)}(t,e))throw new n(`Missing relation: ${e}`);throw t}async function l(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("notification_webhooks").select("*").eq("user_id",e).order("created_at",{ascending:!1});return(n&&await a("notification_webhooks",n),i)?(Array.isArray(i)?i:[i]).map(o):[]}async function s(e){if(!e.userId)return;let t=[];try{t=await l(e.userId)}catch(e){if(e instanceof n)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 i=e.timestamp||new Date().toISOString(),o={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:i,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(o)});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",()=>s],12592);var d=e.i(54799);function c(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 u(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("user_settings").select("*").eq("user_id",e).maybeSingle();if(n){if(c(n,"user_settings"))return null;throw n}return i||null}async function f(e,r,i){let n=i?.onlyIfNewer!==!1,o=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 u(e);if(n&&a?.changed_at){let e=Date.parse(a.changed_at),t=Date.parse(o);if(Number.isFinite(e)&&Number.isFinite(t)&&t<=e)return{settings:a,updated:!1}}let l={user_id:e,default_provider:r.default_provider??a?.default_provider??null,models:r.models??a?.models??{},provenance:r.provenance,changed_at:o},s=(0,t.createAdminDbClient)(),{error:d}=await s.from("user_settings").upsert(l,{onConflict:"user_id"});if(d)throw d;let c=await u(e);if(!c)throw Error("Failed to load user_settings after upsert");return{settings:c,updated:!0}}function p(t,r,i){let n=e=>"string"!=typeof e?null:e.trim()||null,o=null;try{let t=e.r(22734),r=e.r(14747).join(process.env.HOME||"",".agx","config.json"),i=JSON.parse(t.readFileSync(r,"utf-8"));o=n(i?.defaultProvider)||null}catch{}let a=n(i?.default_provider)||o||"claude",l=n(t.provider)||n(r?.provider)||a,s=n(i?.models?.[l])||null,d=n(t.model)||n(r?.model)||s||null;return{provider:l,model:d,swarm:t.swarm??r?.swarm??!1,swarm_models:t.swarm_models?.length?t.swarm_models:r?.swarm_models||[]}}function m(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"task"}async function w(e,t){let r=m(e);for(let i=0;i<5;i++){let{data:i,error:n}=await t.from("tasks").select("id").eq("slug",r).limit(1);if(n)throw n;if(!i||0===i.length)return r;let o=Math.random().toString(36).slice(2,6);r=`${m(e)}-${o}`.slice(0,48)}return`${m(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}async function _(e,t,r,i){let n=m(e);for(let o=0;o<5;o++){let o=r.from("projects").select("id").eq("slug",n).eq("user_id",t);i&&(o=o.neq("id",i));let{data:a,error:l}=await o.limit(1);if(l)throw l;if(!a||0===a.length)return n;let s=Math.random().toString(36).slice(2,6);n=`${m(e)}-${s}`.slice(0,48)}return`${m(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}function g(e){return e??(0,t.createAdminDbClient)()}function k(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 y(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=k(e)}return Array.from(new Set(t.map(e=>e.trim()).filter(Boolean)))}function h(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 i=e.slice(0,t).trim(),n=e.slice(t+1).trim();if("depends_on"===i){r[i]=k(n);continue}"true"===n?r[i]=!0:"false"===n?r[i]=!1:/^\d+$/.test(n)?r[i]=parseInt(n):r[i]=n}}return{frontmatter:r,body:t[2]}}async function b(e,t,r){if(!e||!t?.length)return;let i=g(r),n=new Set,o=[...t];for(;o.length;){let t=o.pop();if(!t)continue;if(t===e)throw Error("Circular dependency detected");if(n.has(t))continue;n.add(t);let{data:r,error:a}=await i.from("tasks").select("depends_on").eq("id",t).maybeSingle();if(a){if("PGRST116"===a.code||"42703"===a.code)continue;throw a}if(r)for(let e of Array.isArray(r.depends_on)?r.depends_on:[])e&&!n.has(e)&&o.push(e)}}function j(e){let{body:t}=h(e),r=t.match(/^#\s+(.+)$/m);return r?r[1]:void 0}function v(e){return String(e||"").replace(/^#\s+.+(\r?\n|$)/,"").trim()}async function q(e,i){var n;let o=Array.isArray(e.depends_on)?e.depends_on:[];if(!o.length)return;let a=(0,t.createAdminDbClient)(),{data:l,error:s}=await a.from("tasks").select("id, title, slug, status, stage").in("id",o);if(s)return;let d=(Array.isArray(l)?l:[]).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)??""}`),i=`${r}: ${t.join(", ")}`;return e.length>3&&(i+=` +${e.length-3} more`),i}(d),n=a.from("tasks").update({status:"blocked",blocked_reason:t}).eq("id",e.id);i&&(n=n.eq("user_id",i));let{error:o}=await n;if(o&&"42703"!==o.code)throw o;return}if("blocked"===e.status&&"string"==typeof(n=e.blocked_reason)&&n.startsWith(r)){let t=a.from("tasks").update({status:"queued",blocked_reason:null}).eq("id",e.id);i&&(t=t.eq("user_id",i));let{error:r}=await t;if(r&&"42703"!==r.code)throw r}}async function A(e,r){console.log("getTasks called with userId:",e);let i=(0,t.createAdminDbClient)().from("tasks").select("*").order("priority",{ascending:!0,nullsFirst:!1}).order("created_at",{ascending:!1});if(e&&(i=i.eq("user_id",e)),r?.project&&(i=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(r.project)?i.eq("project_id",r.project):i.eq("project",r.project)),r?.orphan&&(i=i.is("project_id",null)),r?.status&&(i=i.eq("status",r.status)),r?.search){let e=r.search;i=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)?i.or(`id.eq.${e},slug.ilike.%${e}%,title.ilike.%${e}%`):i.or(`id.ilike.%${e}%,slug.ilike.%${e}%,title.ilike.%${e}%`)}let{data:n,error:o}=await i;if(o)throw o;let a=n||[];return r?.orphan?a.filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t}):a}async function C(e,r){let i=(0,t.createAdminDbClient)().from("tasks").select("*").eq("id",e);r&&(i=i.eq("user_id",r));let{data:n,error:o}=await i.single();if(o){if("PGRST116"===o.code)return null;throw o}return n}async function S(e,r){let i=(0,t.createAdminDbClient)().from("tasks").select("*").eq("slug",e);r&&(i=i.eq("user_id",r));let{data:n,error:o}=await i.single();if(o){if("PGRST116"===o.code)return null;throw o}return n}async function D(e,r,i){let n=(0,t.createAdminDbClient)(),{frontmatter:o,body:a}=h(e),l="boolean"==typeof o.swarm?o.swarm:void 0,c=i?.title||j(e),u=String(o.slug||c||"task"),f=await w(u,n),p=i?.projectId||("string"==typeof o.project_id?o.project_id:void 0),m="string"==typeof o.workflow_id?o.workflow_id:void 0,_="string"==typeof o.project?o.project:void 0;if(!_&&p){let{data:e}=await n.from("projects").select("slug").eq("id",p).single();e?.slug&&(_=e.slug)}/^---\n/.test(e);let g="string"==typeof o.provider?o.provider:null,k="string"==typeof o.model?o.model:null,A="string"==typeof o.engine?o.engine:null,S="ai"===o.created_by?"ai":"user",D=y(o.depends_on),T=y(i?.dependsOn),P=T.length>0?T:D,O={id:(0,d.randomUUID)(),content:e,description:v(a),title:c,slug:f,status:o.status||"queued",stage:o.stage||"intake",project:_||null,...void 0!==p?{project_id:p}:{},...void 0!==m?{workflow_id:m}:{},priority:o.priority,engine:A,provider:g,model:k,swarm:l,swarm_models:i?.swarmModels??null,depends_on:P.length?P:null,created_by:S,user_id:r,current_plan:i?.currentPlan||null,open_blockers:i?.openBlockers||[],next_action:i?.nextAction||null,version:1};await b(O.id,P,n);let{data:$,error:I}=await n.from("tasks").insert(O).select().single();if(I&&"42703"===I.code){let{swarm_models:e,swarm:t,workflow_id:r,current_plan:i,open_blockers:o,next_action:a,version:l,depends_on:s,...d}=O;({data:$,error:I}=await n.from("tasks").insert(d).select().single())}if(I)throw I;if(!$)throw Error("Failed to create task");await q($,r);let x=await C($.id,r)||$,E=r||x.user_id;if(E){let e=x.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(x.depends_on)?x.depends_on:[],project:x.project||null,projectId:x.project_id||null,workflowId:x.workflow_id||null,createdBy:x.created_by||null};s({taskId:x.id,userId:E,eventType:"task.created",title:x.title||null,slug:x.slug||null,stage:x.stage||null,status:x.status||null,timestamp:e,details:t})}return x}async function T(e,r,i,n){let o=(0,t.createAdminDbClient)(),{frontmatter:a,body:l}=h(r),d="boolean"==typeof a.swarm?a.swarm:void 0,c=j(r),u="string"==typeof a.project_id?a.project_id:void 0,f=Object.prototype.hasOwnProperty.call(a,"provider"),p=Object.prototype.hasOwnProperty.call(a,"model"),m=Object.prototype.hasOwnProperty.call(a,"workflow_id"),w=Object.prototype.hasOwnProperty.call(a,"depends_on"),_=y(a.depends_on),g=y(n?.dependsOn),k=n?.dependsOn!==void 0||w,A=n?.dependsOn!==void 0?g:_,S={content:r,description:v(l),title:c,status:a.status,stage:a.stage,project:a.project,...void 0!==u?{project_id:u}:{},workflow_id:m?a.workflow_id:void 0,priority:a.priority,engine:a.engine,provider:f?a.provider:null,model:p?a.model:null,swarm:d,swarm_models:n?.swarmModels??void 0,...k?{depends_on:A.length?A:null}:{},updated_at:new Date().toISOString(),current_plan:n?.currentPlan??void 0,open_blockers:n?.openBlockers??void 0,next_action:n?.nextAction??void 0};Object.keys(S).forEach(e=>{void 0===S[e]&&delete S[e]}),k&&await b(e,A,o);let D=o.from("tasks").update({...S,version:o.rpc("increment_version")}).eq("id",e);i&&(D=D.eq("user_id",i)),n?.expectedVersion!==void 0&&(D=D.eq("version",n.expectedVersion));let{data:T,error:P}=await o.from("tasks").update({...S}).eq("id",e).select().maybeSingle();if(P&&console.error(`[db.updateTask] error updating task ${e}:`,P),T||P||console.warn(`[db.updateTask] UPDATE returned 0 rows for task ${e}, payload keys:`,Object.keys(S)),P&&"42703"===P.code){let{swarm_models:t,swarm:r,workflow_id:n,current_plan:a,open_blockers:l,next_action:s,version:d,depends_on:c,...u}=S,f=o.from("tasks").update(u).eq("id",e);i&&(f=f.eq("user_id",i)),{data:T,error:P}=await f.select().maybeSingle()}if(P)throw P;if(!T){let t=await C(e,i);if(!t)throw Error(`Task ${e} not found`);return t}await q(T,i);let O=await C(T.id,i)||T,$=i||O.user_id;if($){let e=O.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(O.depends_on)?O.depends_on:[],project:O.project||null,projectId:O.project_id||null,workflowId:O.workflow_id||null,createdBy:O.created_by||null};s({taskId:O.id,userId:$,eventType:"task.created",title:O.title||null,slug:O.slug||null,stage:O.stage||null,status:O.status||null,timestamp:e,details:t})}return O}async function P(e,r,i=25){let n=(0,t.createAdminDbClient)(),{data:o,error:a}=await n.from("tasks").select("run_index").eq("id",e).single();if(a){if(a?.code==="42703")return;throw a}let l=[r,...Array.isArray(o.run_index)?o.run_index:[]].slice(0,i),{error:s}=await n.from("tasks").update({run_index:l}).eq("id",e);if(s){if(s?.code==="42703")return;throw s}}async function O(e,r){let i=(0,t.createAdminDbClient)().from("tasks").delete().eq("id",e);r&&(i=i.eq("user_id",r));let{error:n}=await i;if(n)throw n}async function $(e){let r=(0,t.createAdminDbClient)().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:i,error:n}=await r.single();if(n){if("PGRST116"===n.code)return null;throw n}return i}async function I(e){let r=(0,t.createAdminDbClient)().from("projects").select("*, project_repos(*)");e&&(r=r.eq("user_id",e));let{data:i,error:n}=await r;if(n){if(c(n,"projects"))return[];throw n}return(i||[]).map(e=>({...e,repos:e.project_repos??[]}))}async function x(e,r){let i=(0,t.createAdminDbClient)().from("projects").select("*").eq("slug",e);r&&(i=i.eq("user_id",r));let{data:n,error:o}=await i.maybeSingle();if(o){if(c(o,"projects"))return null;throw o}return n||null}async function E(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_repos").select("*").eq("project_id",e);if(n){if(c(n,"project_repos"))return[];throw n}return i||[]}let N=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function W(e,r){let i=(0,t.createAdminDbClient)(),n=N.test(e),o=i.from("projects").select("*");o=n?o.eq("id",e):o.eq("slug",e),r&&(o=o.eq("user_id",r));let a=await o.maybeSingle();if(a.error){if(c(a.error,"projects"))return null;throw a.error}let l=a.data;if(!l)return null;let s=await E(l.id);return{...l,repos:s}}async function F(e,t,r){if(!t.length)return[];let i=t.map(t=>({...t.id?{id:t.id}:{},project_id:e,name:t.name,path:t.path??null,git_url:t.git_url??null,notes:t.notes??null})),{data:n,error:o}=await r.from("project_repos").insert(i).select("*");if(o){if(c(o,"project_repos"))return[];throw o}return n||[]}async function M(e,t,r){if(!t.name?.trim())throw Error("Project name is required");let i=g(r),n=t.name.trim()||"project",o=await _(n,e,i),a={user_id:e,name:t.name.trim(),slug:o,description:t.description??null,workflow_id:t.workflow_id??null},{data:l,error:s}=await i.from("projects").insert(a).select("*").single();if(s)throw s;let d=await F(l.id,t.repos??[],i);return{...l,repos:d}}async function R(e,t,r,i){let n=g(i),o=N.test(e),a=e;if(!o){let r=await x(e,t);if(!r)return null;a=r.id}let l={};if(void 0!==r.name){let e=r.name?.trim();if(!e)throw Error("Project name cannot be empty");l.name=e}if(void 0!==r.slug){let e=r.slug?.trim();e&&(l.slug=e)}if(void 0!==r.description&&(l.description=r.description),void 0!==r.metadata&&(l.metadata=r.metadata),void 0!==r.ci_cd_info&&(l.ci_cd_info=r.ci_cd_info),void 0!==r.workflow_id&&(l.workflow_id=r.workflow_id),Object.keys(l).length){let{error:e}=await n.from("projects").update(l).eq("id",a).eq("user_id",t);if(e)throw e}if(r.repos){let{data:e,error:t}=await n.from("project_repos").select("*").eq("project_id",a);if(t&&!c(t,"project_repos"))throw t;let i=e||[],o=new Set(i.map(e=>e.id)),l=new Set(r.repos.map(e=>e.id).filter(e=>!!e));for(let e of i){if(l.has(e.id))continue;let{error:t}=await n.from("project_repos").delete().eq("id",e.id).eq("project_id",a);if(t&&!c(t,"project_repos"))throw t}for(let e of r.repos){let t={name:e.name,path:e.path??null,git_url:e.git_url??null,notes:e.notes??null,project_id:a};if(e.id&&o.has(e.id)){let{error:r}=await n.from("project_repos").update(t).eq("id",e.id).eq("project_id",a);if(r&&!c(r,"project_repos"))throw r;continue}let{error:r}=await n.from("project_repos").insert({...e.id?{id:e.id}:{},...t});if(r&&!c(r,"project_repos"))throw r}}return W(a,t)}async function L(e,t,r){let i=g(r),{error:n}=await i.from("projects").delete().eq("id",e).eq("user_id",t);if(n)throw n}async function B(e,t,r){let i=g(r),{data:n,error:o}=await i.from("projects").select("id, slug").eq("id",e).eq("user_id",t).maybeSingle();if(o)throw o;if(!n)throw Error("Project not found");let{data:a,error:l}=await i.from("tasks").select("id, project").eq("user_id",t).is("project_id",null);if(l)throw l;let s=String(n.slug||"").trim().toLowerCase(),d=(a||[]).filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t||t===s}).map(e=>e.id);if(!d.length)return{updatedCount:0,taskIds:[]};let{error:c}=await i.from("tasks").update({project:n.slug,project_id:n.id,updated_at:new Date().toISOString()}).eq("user_id",t).is("project_id",null).in("id",d);if(c)throw c;return{updatedCount:d.length,taskIds:d}}let G="00000000-0000-0000-0000-000000000001",U=[{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"}],V=new Map(U.map(e=>[e.id,e]));async function J(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("workflows").upsert({id:G,user_id:e||"00000000-0000-0000-0000-000000000000",name:"Default Workflow",definition:{}},{onConflict:"id"});if(i)throw i;let{error:n}=await r.from("workflow_nodes").upsert(U.map(e=>({...e,workflow_id:G,metadata:{}})),{onConflict:"id"});if(n)throw n;let{error:o}=await r.from("workflow_transitions").upsert([{workflow_id:G,from_node_id:"00000000-0000-0000-0001-000000000001",to_node_id:"00000000-0000-0000-0001-000000000002",condition:"done",priority:0,metadata:{}},{workflow_id:G,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(o)throw o}async function K(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("workflows").select("*").or(`user_id.eq.${e},user_id.eq.00000000-0000-0000-0000-000000000000`).order("created_at",{ascending:!1});if(n){if(c(n,"workflows"))return[];throw n}return i||[]}async function z(e,r){let i=(0,t.createAdminDbClient)().from("workflows").select("*").eq("id",e),{data:n,error:o}=await i.maybeSingle();if(o){if(c(o,"workflows"))return null;throw o}return n}async function H(e,r,i){let n=(0,t.createAdminDbClient)(),o={updated_at:new Date().toISOString()};void 0!==i.definition&&(o.definition=i.definition),void 0!==i.name&&(o.name=i.name),void 0!==i.description&&(o.description=i.description);let{data:a,error:l}=await n.from("workflows").update(o).eq("id",e).select().single();if(l)throw l;return a}async function Q(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("workflow_nodes").select("*").eq("workflow_id",e).order("position",{ascending:!0});if(n){if(c(n,"workflow_nodes"))return[];throw n}return i||[]}async function X(e,r,i){let n=(0,t.createAdminDbClient)();if(e===G&&await J(r),!await z(e,r))throw Error("Workflow not found");if(e===G){let t=i.map(t=>{let r=V.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 n.from("workflow_nodes").upsert(t,{onConflict:"id"});if(e)throw e}return Q(e)}return await Promise.all(i.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:i}=await n.from("workflow_nodes").update(r).eq("workflow_id",e).eq("id",t.id);if(i)throw i})),Q(e)}async function Y(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("workflow_nodes").select("*").eq("workflow_id",e).eq("name",r).maybeSingle();if(o){if(c(o,"workflow_nodes"))return null;throw o}return n}async function Z(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("workflow_transitions").select("*").eq("workflow_id",e).order("priority",{ascending:!0});if(n){if(c(n,"workflow_transitions"))return[];throw n}return i||[]}async function ee(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("workflow_transitions").select("*").eq("workflow_id",e).eq("from_node_id",r).order("priority",{ascending:!0});if(o){if(c(o,"workflow_transitions"))return[];throw o}return n||[]}async function et(e,t){let r=await z(e,t);if(!r)return null;let[i,n]=await Promise.all([Q(e),Z(e)]);return{...r,nodes:i,transitions:n}}async function er(e,r={}){let i=(0,t.createAdminDbClient)(),n=Math.max(1,Math.min(2e3,Number(r.limit??r.tail??500))),o="string"==typeof r.after&&r.after.trim()?r.after.trim():null,a=o?null:void 0===r.tail?n:Number(r.tail),l=null!==a&&Number.isFinite(a)&&a>0,s=i.from("task_logs").select("*").eq("task_id",e);r.nodeId&&(s=s.eq("node_id",r.nodeId)),s=o?s.gt("created_at",o).order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(n):l?s.order("created_at",{ascending:!1}).order("id",{ascending:!1}).limit(n):s.order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(n);let{data:d,error:c}=await s;if(c)throw c;let u=d||[];return o?u:l?u.slice().reverse():u}async function ei(e,r,i,n){let o=(0,t.createAdminDbClient)(),{data:a,error:l}=await o.from("task_logs").insert({task_id:e,content:r,log_type:i,...n?{node_id:n}:{}}).select().single();if(l)throw l;return a}function en(e){let t=Number(e??0);return Number.isFinite(t)?Math.max(0,Math.round(t)):0}function eo(e){let t=Number(e??0);return Number.isFinite(t)?Math.max(0,t):0}async function ea(e){let r=(0,t.createAdminDbClient)(),i={task_id:e.taskId,stage:e.stage,provider:e.provider??null,model:e.model??null,input_tokens:en(e.inputTokens),output_tokens:en(e.outputTokens),estimated_cost:eo(e.estimatedCost)},{data:n,error:o}=await r.from("task_costs").insert(i).select().single();if(o)throw o;return n}async function el(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("task_costs").select("*").eq("task_id",e).order("created_at",{ascending:!0});if(n)throw n;return i||[]}async function es(e){return function(e){let t={},r=0,i=0,n=0;for(let o of e){let e=o.stage||"unknown",a=en(o.input_tokens),l=en(o.output_tokens),s=eo(o.estimated_cost??0);r+=a,i+=l,n+=s;let d=t[e]||{stage:e,input_tokens:0,output_tokens:0,estimated_cost:0,entries:0};d.input_tokens+=a,d.output_tokens+=l,d.estimated_cost+=s,d.entries+=1,t[e]=d}return{total_input_tokens:r,total_output_tokens:i,total_cost:n,per_stage:Object.values(t).sort((e,t)=>e.stage.localeCompare(t.stage))}}(await el(e))}async function ed(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("task_comments").select("*").eq("task_id",e).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(n)throw n;return i||[]}async function ec(e,r,i,n){let o=(0,t.createAdminDbClient)(),{data:a,error:l}=await o.from("task_comments").insert({task_id:e,content:r,author_type:i,author_id:n??null}).select().single();if(l)throw l;return a}async function eu(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("task_comments").select("author_id, author_type").eq("id",e).single();if(o)throw o;if(!n)throw Error("Comment not found");if("user"!==n.author_type||n.author_id!==r)throw Error("Unauthorized");let{error:a}=await i.from("task_comments").update({deleted_at:new Date().toISOString()}).eq("id",e).is("deleted_at",null);if(a)throw a}async function ef(e,r,i){let n=(0,t.createAdminDbClient)().from("learnings").select("*").eq("scope",e).order("created_at",{ascending:!1});r&&(n=n.eq("scope_id",r)),i&&(n=n.eq("user_id",i));let{data:o,error:a}=await n;if(a)throw a;return o||[]}async function ep(e,r,i,n){let o=(0,t.createAdminDbClient)(),{data:a,error:l}=await o.from("learnings").insert({scope:e,scope_id:i,content:r,user_id:n}).select().single();if(l)throw l;return a}async function em(e,r){let i=(0,t.createAdminDbClient)().from("learnings").delete().eq("id",e);r&&(i=i.eq("user_id",r));let{error:n}=await i;if(n)throw n}async function ew(e,r){let i=(0,t.createAdminDbClient)().from("stage_prompts").select("*").eq("workflow_id",r).order("stage",{ascending:!0});i=e?i.or(`user_id.eq.${e},is_default.eq.true`):i.eq("is_default",!0);let{data:n,error:o}=await i;if(o)throw o;return n||[]}async function e_(e,r,i){let n=(0,t.createAdminDbClient)();if(r){let{data:t}=await n.from("stage_prompts").select("*").eq("workflow_id",i).eq("stage",e).eq("user_id",r).single();if(t)return t}let{data:o}=await n.from("stage_prompts").select("*").eq("workflow_id",i).eq("stage",e).eq("is_default",!0).single();return o||null}async function eg(e,r,i=[],n,o,a){let l=(0,t.createAdminDbClient)(),s={stage:e,prompt:r,outputs:i,user_id:n,is_default:!n,workflow_id:a};o&&(void 0!==o.swarm&&(s.swarm=o.swarm),void 0!==o.provider&&(s.provider=o.provider),void 0!==o.model&&(s.model=o.model),void 0!==o.swarm_models&&(s.swarm_models=o.swarm_models));let{data:d,error:c}=await l.from("stage_prompts").upsert(s,{onConflict:n?"workflow_id,stage,user_id":"workflow_id,stage,is_default"}).select().single();if(c)throw c;return d}async function ek(e,r){let i=(0,t.createAdminDbClient)().from("stage_prompts").delete().eq("id",e);r&&(i=i.eq("user_id",r));let{error:n}=await i;if(n)throw n}async function ey(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("agents").select("*").eq("user_id",e).order("created_at",{ascending:!1});if(n){if(c(n,"agents"))return[];throw n}return i||[]}async function eh(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("agents").select("*").eq("id",e).eq("user_id",r).maybeSingle();if(o){if("PGRST116"===o.code||c(o,"agents"))return null;throw o}return n}async function eb(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("agent_skills").select("*").eq("agent_id",e).order("created_at",{ascending:!0});if(n){if(c(n,"agent_skills"))return[];throw n}return i||[]}async function ej(e,r){let i=(0,t.createAdminDbClient)(),n=new Map;for(let t of r){let r=t.file.trim();r&&n.set(r,{agent_id:e,file:r,condition:t.condition?.trim()||null})}let o=await eb(e);for(let t of o)if(!n.has(t.file)){let{error:r}=await i.from("agent_skills").delete().eq("agent_id",e).eq("file",t.file);if(r&&!c(r,"agent_skills"))throw r}for(let t of n.values()){let r=o.find(e=>e.file===t.file);if(!r){let{error:e}=await i.from("agent_skills").insert(t);if(e&&!c(e,"agent_skills"))throw e;continue}if((r.condition??null)!==t.condition){let{error:r}=await i.from("agent_skills").update({condition:t.condition}).eq("agent_id",e).eq("file",t.file);if(r&&!c(r,"agent_skills"))throw r}}return eb(e)}async function ev(e,r){let i=(0,t.createAdminDbClient)(),n={user_id:e,name:r.name,style:r.style,description:r.description??null};void 0!==r.id&&(n.id=r.id),void 0!==r.title&&(n.title=r.title),void 0!==r.voice&&(n.voice=r.voice),void 0!==r.seed&&(n.seed=r.seed),void 0!==r.model&&(n.model=r.model),void 0!==r.provider&&(n.provider=r.provider),void 0!==r.color&&(n.color=r.color);let{data:o,error:a}=await i.from("agents").insert(n).select().single();if(a){if(c(a,"agents"))throw Error("Agents table does not exist");throw a}return o}async function eq(e,r,i){let n=(0,t.createAdminDbClient)(),o={updated_at:new Date().toISOString()};if(void 0!==i.name&&(o.name=i.name),void 0!==i.title&&(o.title=i.title),void 0!==i.style&&(o.style=i.style),void 0!==i.description&&(o.description=i.description),void 0!==i.voice&&(o.voice=i.voice),void 0!==i.seed&&(o.seed=i.seed),void 0!==i.model&&(o.model=i.model),void 0!==i.provider&&(o.provider=i.provider),void 0!==i.color&&(o.color=i.color),1===Object.keys(o).length)return eh(e,r);let{data:a,error:l}=await n.from("agents").update(o).eq("id",e).eq("user_id",r).select().single();if(l){if("PGRST116"===l.code||c(l,"agents"))return null;throw l}return a}async function eA(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("agents").delete().eq("id",e).eq("user_id",r);if(n&&!c(n,"agents"))throw n}async function eC(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_agents").select("*").eq("project_id",e).order("routing_order",{ascending:!0});if(n){if(c(n,"project_agents"))return[];throw n}return i||[]}async function eS(e,r,i){let n=(0,t.createAdminDbClient)();if(void 0===i){let{data:t}=await n.from("project_agents").select("routing_order").eq("project_id",e).order("routing_order",{ascending:!1}).limit(1);i=(t?.[0]?.routing_order??-1)+1}let{data:o,error:a}=await n.from("project_agents").upsert({project_id:e,agent_id:r,routing_order:i}).select().single();if(a)throw a;return o}async function eD(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("project_agents").delete().eq("project_id",e).eq("agent_id",r);if(n)throw n}async function eT(e,r){let i=(0,t.createAdminDbClient)();for(let t=0;t<r.length;t++)await i.from("project_agents").update({routing_order:t}).eq("project_id",e).eq("agent_id",r[t]);return eC(e)}async function eP(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_skills").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(n){if(c(n,"project_skills"))return[];throw n}return i||[]}async function eO(e,r,i){let n=(0,t.createAdminDbClient)(),{data:o,error:a}=await n.from("project_skills").insert({project_id:e,file:r,condition:i??null}).select().single();if(a)throw a;return o}async function e$(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("project_skills").delete().eq("id",e);if(i)throw i}async function eI(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_variables").select("*").eq("project_id",e);if(n){if(c(n,"project_variables"))return[];throw n}return i||[]}async function ex(e,r,i){let n=(0,t.createAdminDbClient)(),{data:o,error:a}=await n.from("project_variables").upsert({project_id:e,key:r,value:i}).select().single();if(a)throw a;return o}async function eE(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("project_variables").delete().eq("project_id",e).eq("key",r);if(n)throw n}async function eN(e,r){let i=(0,t.createAdminDbClient)().from("project_memory").select("*").eq("project_id",e).order("created_at",{ascending:!1});r&&(i=i.eq("producer",r));let{data:n,error:o}=await i;if(o){if(c(o,"project_memory"))return[];throw o}return n||[]}async function eW(e,r,i,n="human"){let o=(0,t.createAdminDbClient)(),{data:a,error:l}=await o.from("project_memory").insert({project_id:e,content:r,source:i??null,producer:n}).select().single();if(l)throw l;return a}async function eF(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("project_memory").delete().eq("id",e);if(i)throw i}async function eM(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_threads").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(n){if(c(n,"project_threads"))return[];throw n}return i||[]}async function eR(e,r){let i=(0,t.createAdminDbClient)(),{data:n,error:o}=await i.from("project_threads").insert({project_id:e,thread_id:r}).select().single();if(o)throw o;return n}async function eL(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("project_threads").delete().eq("project_id",e).eq("thread_id",r);if(n)throw n}async function eB(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_threads").select("project_id").eq("thread_id",e).maybeSingle();return n?(c(n,"project_threads"),null):i?.project_id??null}async function eG(e){return(await eI(e)).map(e=>({key:e.key,value:e.value,source:"project"}))}async function eU(e,t,r,i){let n=await eP(t),o=await eN(t),a=await eG(t);return{skills:function(e,t){let r=[],i=new Set;for(let t of e){let e=t.file.split("/").pop()||t.file;i.add(e),r.push({file:t.file,condition:t.condition,source:"agent"})}for(let e of t){let t=e.file.split("/").pop()||e.file;i.has(t)||r.push({file:e.file,condition:e.condition??void 0,source:"project"})}return r}(r,n),memory:function(e,t){let r=[];for(let e of t)r.push({content:e.content,source:"project",id:e.id});for(let t of e)r.push({content:t.content,source:"agent",id:t.id});return r}(i,o),variables:a}}e.s(["DEFAULT_WORKFLOW_ID",0,"00000000-0000-0000-0000-000000000001","addLearning",()=>ep,"addProjectAgent",()=>eS,"addProjectMemory",()=>eW,"addProjectSkill",()=>eO,"addProjectThread",()=>eR,"addTaskComment",()=>ec,"addTaskCostEntry",()=>ea,"addTaskLog",()=>ei,"appendRunToIndex",()=>P,"assignOrphanTasksToProject",()=>B,"buildExecutionProvenance",()=>eU,"createAgent",()=>ev,"createProject",()=>M,"createTask",()=>D,"defaultStagePrompts",0,{INTAKE:{prompt:"New task. Triage, scope, and prepare for work.",outputs:[],swarm:!1},PROGRESS:{prompt:"Task is actively being worked on.",outputs:[],swarm:!1},DONE:{prompt:"Task completed.",outputs:[],swarm:!1}},"deleteAgent",()=>eA,"deleteLearning",()=>em,"deleteProject",()=>L,"deleteProjectMemory",()=>eF,"deleteProjectVariable",()=>eE,"deleteStagePrompt",()=>ek,"deleteTask",()=>O,"deleteTaskComment",()=>eu,"ensureNoCircularDependency",()=>b,"getAgent",()=>eh,"getAgentSkills",()=>eb,"getAgents",()=>ey,"getLearnings",()=>ef,"getNextQueuedTask",()=>$,"getProjectAgents",()=>eC,"getProjectBySlug",()=>x,"getProjectForThread",()=>eB,"getProjectMemory",()=>eN,"getProjectRepos",()=>E,"getProjectSkills",()=>eP,"getProjectThreads",()=>eM,"getProjectVariables",()=>eI,"getProjectWithRepos",()=>W,"getProjects",()=>I,"getStagePrompt",()=>e_,"getStagePrompts",()=>ew,"getTask",()=>C,"getTaskBySlug",()=>S,"getTaskComments",()=>ed,"getTaskCostEntries",()=>el,"getTaskCostSummary",()=>es,"getTaskLogs",()=>er,"getTasks",()=>A,"getUserSettings",()=>u,"getWorkflow",()=>z,"getWorkflowNodeByName",()=>Y,"getWorkflowNodes",()=>Q,"getWorkflowTransitions",()=>Z,"getWorkflowTransitionsFromNode",()=>ee,"getWorkflowWithGraph",()=>et,"getWorkflows",()=>K,"parseFrontmatter",()=>h,"removeProjectAgent",()=>eD,"removeProjectSkill",()=>e$,"removeProjectThread",()=>eL,"reorderProjectAgents",()=>eT,"resolveTaskConfig",()=>p,"setAgentSkills",()=>ej,"setProjectVariable",()=>ex,"updateAgent",()=>eq,"updateProject",()=>R,"updateTask",()=>T,"updateWorkflow",()=>H,"updateWorkflowNodes",()=>X,"upsertStagePrompt",()=>eg,"upsertUserSettings",()=>f],62294)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=lib_db_ts_e06c6085._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[99904,45491,29264,e=>{"use strict";function t(){let{createAdminDbClientSQLite:t}=e.r(65196);return t()}e.i(86213),e.s(["createAdminDbClient",()=>t],45491);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 a(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 i(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 i("notification_webhooks",o),n)?(Array.isArray(n)?n:[n]).map(a):[]}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(),a={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(a)});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],29264);var d=e.i(54799);function c(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 u(e){let r=t(),{data:n,error:o}=await r.from("user_settings").select("*").eq("user_id",e).maybeSingle();if(o){if(c(o,"user_settings"))return null;throw o}return n||null}async function p(e,r,n){let o=n?.onlyIfNewer!==!1,a=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),i=await u(e);if(o&&i?.changed_at){let e=Date.parse(i.changed_at),t=Date.parse(a);if(Number.isFinite(e)&&Number.isFinite(t)&&t<=e)return{settings:i,updated:!1}}let s={user_id:e,default_provider:r.default_provider??i?.default_provider??null,models:r.models??i?.models??{},provenance:r.provenance,changed_at:a},l=t(),{error:d}=await l.from("user_settings").upsert(s,{onConflict:"user_id"});if(d)throw d;let c=await u(e);if(!c)throw Error("Failed to load user_settings after upsert");return{settings:c,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 a=Math.random().toString(36).slice(2,6);r=`${f(e)}-${a}`.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 a=0;a<5;a++){let a=r.from("projects").select("id").eq("slug",o).eq("user_id",t);n&&(a=a.neq("id",n));let{data:i,error:s}=await a.limit(1);if(s)throw s;if(!i||0===i.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 _(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(),a=new Set,i=[...r];for(;i.length;){let t=i.pop();if(!t)continue;if(t===e)throw Error("Circular dependency detected");if(a.has(t))continue;a.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&&!a.has(e)&&i.push(e)}}function h(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 j(e,n){var o;let a=Array.isArray(e.depends_on)?e.depends_on:[];if(!a.length)return;let i=t(),{data:s,error:l}=await i.from("tasks").select("id, title, slug, status, stage").in("id",a);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=i.from("tasks").update({status:"blocked",blocked_reason:t}).eq("id",e.id);n&&(o=o.eq("user_id",n));let{error:a}=await o;if(a&&"42703"!==a.code)throw a;return}if("blocked"===e.status&&"string"==typeof(o=e.blocked_reason)&&o.startsWith(r)){let t=i.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 T(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:a}=await n;if(a)throw a;let i=o||[];return r?.orphan?i.filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t}):i}async function v(e,r){let n=t().from("tasks").select("*").eq("id",e);r&&(n=n.eq("user_id",r));let{data:o,error:a}=await n.single();if(a){if("PGRST116"===a.code)return null;throw a}return o}async function b(e,r){let n=t().from("tasks").select("*").eq("slug",e);r&&(n=n.eq("user_id",r));let{data:o,error:a}=await n.single();if(a){if("PGRST116"===a.code)return null;throw a}return o}async function I(e,r,n){let o=t(),{frontmatter:a,body:i}=y(e),s="boolean"==typeof a.swarm?a.swarm:void 0,c=n?.title||h(e),u=String(a.slug||c||"task"),p=await g(u,o),f=n?.projectId||("string"==typeof a.project_id?a.project_id:void 0),m="string"==typeof a.workflow_id?a.workflow_id:void 0,w="string"==typeof a.project?a.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 T="string"==typeof a.provider?a.provider:null,b="string"==typeof a.model?a.model:null,I="string"==typeof a.engine?a.engine:null,q="ai"===a.created_by?"ai":"user",E=_(a.depends_on),$=_(n?.dependsOn),A=$.length>0?$:E,P={id:(0,d.randomUUID)(),content:e,description:S(i),title:c,slug:p,status:a.status||"queued",stage:a.stage||"intake",project:w||null,...void 0!==f?{project_id:f}:{},...void 0!==m?{workflow_id:m}:{},priority:a.priority,engine:I,provider:T,model:b,swarm:s,swarm_models:n?.swarmModels??null,depends_on:A.length?A:null,created_by:q,user_id:r,current_plan:n?.currentPlan||null,open_blockers:n?.openBlockers||[],next_action:n?.nextAction||null,version:1};await k(P.id,A,o);let{data:x,error:N}=await o.from("tasks").insert(P).select().single();if(N&&"42703"===N.code){let{swarm_models:e,swarm:t,workflow_id:r,current_plan:n,open_blockers:a,next_action:i,version:s,depends_on:l,...d}=P;({data:x,error:N}=await o.from("tasks").insert(d).select().single())}if(N)throw N;if(!x)throw Error("Failed to create task");await j(x,r);let C=await v(x.id,r)||x,O=r||C.user_id;if(O){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:O,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 q(e,r,n,o){let a=t(),{frontmatter:i,body:s}=y(r),d="boolean"==typeof i.swarm?i.swarm:void 0,c=h(r),u="string"==typeof i.project_id?i.project_id:void 0,p=Object.prototype.hasOwnProperty.call(i,"provider"),f=Object.prototype.hasOwnProperty.call(i,"model"),g=Object.prototype.hasOwnProperty.call(i,"workflow_id"),m=Object.prototype.hasOwnProperty.call(i,"depends_on"),w=_(i.depends_on),T=_(o?.dependsOn),b=o?.dependsOn!==void 0||m,I=o?.dependsOn!==void 0?T:w,q={content:r,description:S(s),title:c,status:i.status,stage:i.stage,project:i.project,...void 0!==u?{project_id:u}:{},workflow_id:g?i.workflow_id:void 0,priority:i.priority,engine:i.engine,provider:p?i.provider:null,model:f?i.model:null,swarm:d,swarm_models:o?.swarmModels??void 0,...b?{depends_on:I.length?I: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(q).forEach(e=>{void 0===q[e]&&delete q[e]}),b&&await k(e,I,a);let E=a.from("tasks").update({...q,version:a.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:$,error:A}=await a.from("tasks").update({...q}).eq("id",e).select().maybeSingle();if(A&&console.error(`[db.updateTask] error updating task ${e}:`,A),$||A||console.warn(`[db.updateTask] UPDATE returned 0 rows for task ${e}, payload keys:`,Object.keys(q)),A&&"42703"===A.code){let{swarm_models:t,swarm:r,workflow_id:o,current_plan:i,open_blockers:s,next_action:l,version:d,depends_on:c,...u}=q,p=a.from("tasks").update(u).eq("id",e);n&&(p=p.eq("user_id",n)),{data:$,error:A}=await p.select().maybeSingle()}if(A)throw A;if(!$){let t=await v(e,n);if(!t)throw Error(`Task ${e} not found`);return t}await j($,n);let P=await v($.id,n)||$,x=n||P.user_id;if(x){let e=P.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(P.depends_on)?P.depends_on:[],project:P.project||null,projectId:P.project_id||null,workflowId:P.workflow_id||null,createdBy:P.created_by||null};l({taskId:P.id,userId:x,eventType:"task.created",title:P.title||null,slug:P.slug||null,stage:P.stage||null,status:P.status||null,timestamp:e,details:t})}return P}async function E(e,r,n=25){let o=t(),{data:a,error:i}=await o.from("tasks").select("run_index").eq("id",e).single();if(i){if(i?.code==="42703")return;throw i}let s=[r,...Array.isArray(a.run_index)?a.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 $(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 A(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 P(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(c(o,"projects"))return[];throw o}return(n||[]).map(e=>({...e,repos:e.project_repos??[]}))}async function x(e,r){let n=t().from("projects").select("*").eq("slug",e);r&&(n=n.eq("user_id",r));let{data:o,error:a}=await n.maybeSingle();if(a){if(c(a,"projects"))return null;throw a}return o||null}async function N(e){let r=t(),{data:n,error:o}=await r.from("project_repos").select("*").eq("project_id",e);if(o){if(c(o,"project_repos"))return[];throw o}return n||[]}let C=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function O(e,r){let n=t(),o=C.test(e),a=n.from("projects").select("*");a=o?a.eq("id",e):a.eq("slug",e),r&&(a=a.eq("user_id",r));let i=await a.maybeSingle();if(i.error){if(c(i.error,"projects"))return null;throw i.error}let s=i.data;if(!s)return null;let l=await N(s.id);return{...s,repos:l}}async function L(e,t,r){if(!t.length)return[];let n=t.map(t=>({...t.id?{id:t.id}:{},project_id:e,name:t.name,path:t.path??null,git_url:t.git_url??null,notes:t.notes??null})),{data:o,error:a}=await r.from("project_repos").insert(n).select("*");if(a){if(c(a,"project_repos"))return[];throw a}return o||[]}async function R(e,r,n){if(!r.name?.trim())throw Error("Project name is required");let o=n??t(),a=r.name.trim()||"project",i=await m(a,e,o),s={user_id:e,name:r.name.trim(),slug:i,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 c=await L(l.id,r.repos??[],o);return{...l,repos:c}}async function D(e,r,n,o){let a=o??t(),i=C.test(e),s=e;if(!i){let t=await x(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 a.from("projects").update(l).eq("id",s).eq("user_id",r);if(e)throw e}if(n.repos){let{data:e,error:t}=await a.from("project_repos").select("*").eq("project_id",s);if(t&&!c(t,"project_repos"))throw t;let r=e||[],o=new Set(r.map(e=>e.id)),i=new Set(n.repos.map(e=>e.id).filter(e=>!!e));for(let e of r){if(i.has(e.id))continue;let{error:t}=await a.from("project_repos").delete().eq("id",e.id).eq("project_id",s);if(t&&!c(t,"project_repos"))throw t}for(let e of n.repos){let t={name:e.name,path:e.path??null,git_url:e.git_url??null,notes:e.notes??null,project_id:s};if(e.id&&o.has(e.id)){let{error:r}=await a.from("project_repos").update(t).eq("id",e.id).eq("project_id",s);if(r&&!c(r,"project_repos"))throw r;continue}let{error:r}=await a.from("project_repos").insert({...e.id?{id:e.id}:{},...t});if(r&&!c(r,"project_repos"))throw r}}return O(s,r)}async function W(e,r,n){let o=n??t(),{error:a}=await o.from("projects").delete().eq("id",e).eq("user_id",r);if(a)throw a}async function M(e,r,n){let o=n??t(),{data:a,error:i}=await o.from("projects").select("id, slug").eq("id",e).eq("user_id",r).maybeSingle();if(i)throw i;if(!a)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(a.slug||"").trim().toLowerCase(),c=(s||[]).filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t||t===d}).map(e=>e.id);if(!c.length)return{updatedCount:0,taskIds:[]};let{error:u}=await o.from("tasks").update({project:a.slug,project_id:a.id,updated_at:new Date().toISOString()}).eq("user_id",r).is("project_id",null).in("id",c);if(u)throw u;return{updatedCount:c.length,taskIds:c}}let U="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 Q(e){let r=t(),{error:n}=await r.from("workflows").upsert({id:U,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:U,metadata:{}})),{onConflict:"id"});if(o)throw o;let{error:a}=await r.from("workflow_transitions").upsert([{workflow_id:U,from_node_id:"00000000-0000-0000-0001-000000000001",to_node_id:"00000000-0000-0000-0001-000000000002",condition:"done",priority:0,metadata:{}},{workflow_id:U,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(a)throw a}async function G(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(c(o,"workflows"))return[];throw o}return n||[]}async function V(e,r){let n=t().from("workflows").select("*").eq("id",e),{data:o,error:a}=await n.maybeSingle();if(a){if(c(a,"workflows"))return null;throw a}return o}async function J(e,r,n){let o=t(),a={updated_at:new Date().toISOString()};void 0!==n.definition&&(a.definition=n.definition),void 0!==n.name&&(a.name=n.name),void 0!==n.description&&(a.description=n.description);let{data:i,error:s}=await o.from("workflows").update(a).eq("id",e).select().single();if(s)throw s;return i}async function Y(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(c(o,"workflow_nodes"))return[];throw o}return n||[]}async function H(e,r,n){let o=t();if(e===U&&await Q(r),!await V(e,r))throw Error("Workflow not found");if(e===U){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 Y(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})),Y(e)}async function K(e,r){let n=t(),{data:o,error:a}=await n.from("workflow_nodes").select("*").eq("workflow_id",e).eq("name",r).maybeSingle();if(a){if(c(a,"workflow_nodes"))return null;throw a}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(c(o,"workflow_transitions"))return[];throw o}return n||[]}async function X(e,r){let n=t(),{data:o,error:a}=await n.from("workflow_transitions").select("*").eq("workflow_id",e).eq("from_node_id",r).order("priority",{ascending:!0});if(a){if(c(a,"workflow_transitions"))return[];throw a}return o||[]}async function Z(e,t){let r=await V(e,t);if(!r)return null;let[n,o]=await Promise.all([Y(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))),a="string"==typeof r.after&&r.after.trim()?r.after.trim():null,i=a?null:void 0===r.tail?o:Number(r.tail),s=null!==i&&Number.isFinite(i)&&i>0,l=n.from("task_logs").select("*").eq("task_id",e);r.nodeId&&(l=l.eq("node_id",r.nodeId)),l=a?l.gt("created_at",a).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:c}=await l;if(c)throw c;let u=d||[];return a?u:s?u.slice().reverse():u}async function et(e,r,n,o){let a=t(),{data:i,error:s}=await a.from("task_logs").insert({task_id:e,content:r,log_type:n,...o?{node_id:o}:{}}).select().single();if(s)throw s;return i}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:a}=await r.from("task_costs").insert(n).select().single();if(a)throw a;return o}async function ea(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 ei(e){return function(e){let t={},r=0,n=0,o=0;for(let a of e){let e=a.stage||"unknown",i=er(a.input_tokens),s=er(a.output_tokens),l=en(a.estimated_cost??0);r+=i,n+=s,o+=l;let d=t[e]||{stage:e,input_tokens:0,output_tokens:0,estimated_cost:0,entries:0};d.input_tokens+=i,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 ea(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 a=t(),{data:i,error:s}=await a.from("task_comments").insert({task_id:e,content:r,author_type:n,author_id:o??null}).select().single();if(s)throw s;return i}async function ed(e,r){let n=t(),{data:o,error:a}=await n.from("task_comments").select("author_id, author_type").eq("id",e).single();if(a)throw a;if(!o)throw Error("Comment not found");if("user"!==o.author_type||o.author_id!==r)throw Error("Unauthorized");let{error:i}=await n.from("task_comments").update({deleted_at:new Date().toISOString()}).eq("id",e).is("deleted_at",null);if(i)throw i}async function ec(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:a,error:i}=await o;if(i)throw i;return a||[]}async function eu(e,r,n,o){let a=t(),{data:i,error:s}=await a.from("learnings").insert({scope:e,scope_id:n,content:r,user_id:o}).select().single();if(s)throw s;return i}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:a}=await n;if(a)throw a;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:a}=await o.from("stage_prompts").select("*").eq("workflow_id",n).eq("stage",e).eq("is_default",!0).single();return a||null}async function em(e,r,n=[],o,a,i){let s=t(),l={stage:e,prompt:r,outputs:n,user_id:o,is_default:!o,workflow_id:i};a&&(void 0!==a.swarm&&(l.swarm=a.swarm),void 0!==a.provider&&(l.provider=a.provider),void 0!==a.model&&(l.model=a.model),void 0!==a.swarm_models&&(l.swarm_models=a.swarm_models));let{data:d,error:c}=await s.from("stage_prompts").upsert(l,{onConflict:o?"workflow_id,stage,user_id":"workflow_id,stage,is_default"}).select().single();if(c)throw c;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 e_(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(c(o,"agents"))return[];throw o}return n||[]}async function ey(e,r){let n=t(),{data:o,error:a}=await n.from("agents").select("*").eq("id",e).eq("user_id",r).maybeSingle();if(a){if("PGRST116"===a.code||c(a,"agents"))return null;throw a}return o}async function ek(e,r){let n=t(),o={user_id:e,name:r.name,style:r.style,description:r.description??null};void 0!==r.id&&(o.id=r.id),void 0!==r.voice&&(o.voice=r.voice),void 0!==r.seed&&(o.seed=r.seed),void 0!==r.model&&(o.model=r.model),void 0!==r.provider&&(o.provider=r.provider),void 0!==r.color&&(o.color=r.color);let{data:a,error:i}=await n.from("agents").insert(o).select().single();if(i){if(c(i,"agents"))throw Error("Agents table does not exist");throw i}return a}async function eh(e,r,n){let o=t(),a={updated_at:new Date().toISOString()};if(void 0!==n.name&&(a.name=n.name),void 0!==n.style&&(a.style=n.style),void 0!==n.description&&(a.description=n.description),void 0!==n.voice&&(a.voice=n.voice),void 0!==n.seed&&(a.seed=n.seed),void 0!==n.model&&(a.model=n.model),void 0!==n.provider&&(a.provider=n.provider),void 0!==n.color&&(a.color=n.color),1===Object.keys(a).length)return ey(e,r);let{data:i,error:s}=await o.from("agents").update(a).eq("id",e).eq("user_id",r).select().single();if(s){if("PGRST116"===s.code||c(s,"agents"))return null;throw s}return i}async function eS(e,r){let n=t(),{error:o}=await n.from("agents").delete().eq("id",e).eq("user_id",r);if(o&&!c(o,"agents"))throw o}async function ej(e){let r=t(),{data:n,error:o}=await r.from("project_agents").select("*").eq("project_id",e).order("routing_order",{ascending:!0});if(o){if(c(o,"project_agents"))return[];throw o}return n||[]}async function eT(e,r,n){let o=t();if(void 0===n){let{data:t}=await o.from("project_agents").select("routing_order").eq("project_id",e).order("routing_order",{ascending:!1}).limit(1);n=(t?.[0]?.routing_order??-1)+1}let{data:a,error:i}=await o.from("project_agents").upsert({project_id:e,agent_id:r,routing_order:n}).select().single();if(i)throw i;return a}async function ev(e,r){let n=t(),{error:o}=await n.from("project_agents").delete().eq("project_id",e).eq("agent_id",r);if(o)throw o}async function eb(e,r){let n=t();for(let t=0;t<r.length;t++)await n.from("project_agents").update({routing_order:t}).eq("project_id",e).eq("agent_id",r[t]);return ej(e)}async function eI(e){let r=t(),{data:n,error:o}=await r.from("project_skills").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(o){if(c(o,"project_skills"))return[];throw o}return n||[]}async function eq(e,r,n){let o=t(),{data:a,error:i}=await o.from("project_skills").insert({project_id:e,file:r,condition:n??null}).select().single();if(i)throw i;return a}async function eE(e){let r=t(),{error:n}=await r.from("project_skills").delete().eq("id",e);if(n)throw n}async function e$(e){let r=t(),{data:n,error:o}=await r.from("project_variables").select("*").eq("project_id",e);if(o){if(c(o,"project_variables"))return[];throw o}return n||[]}async function eA(e,r,n){let o=t(),{data:a,error:i}=await o.from("project_variables").upsert({project_id:e,key:r,value:n}).select().single();if(i)throw i;return a}async function eP(e,r){let n=t(),{error:o}=await n.from("project_variables").delete().eq("project_id",e).eq("key",r);if(o)throw o}async function ex(e,r){let n=t().from("project_memory").select("*").eq("project_id",e).order("created_at",{ascending:!1});r&&(n=n.eq("producer",r));let{data:o,error:a}=await n;if(a){if(c(a,"project_memory"))return[];throw a}return o||[]}async function eN(e,r,n,o="human"){let a=t(),{data:i,error:s}=await a.from("project_memory").insert({project_id:e,content:r,source:n??null,producer:o}).select().single();if(s)throw s;return i}async function eC(e){let r=t(),{error:n}=await r.from("project_memory").delete().eq("id",e);if(n)throw n}async function eO(e){let r=t(),{data:n,error:o}=await r.from("project_threads").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(o){if(c(o,"project_threads"))return[];throw o}return n||[]}async function eL(e,r){let n=t(),{data:o,error:a}=await n.from("project_threads").insert({project_id:e,thread_id:r}).select().single();if(a)throw a;return o}async function eR(e,r){let n=t(),{error:o}=await n.from("project_threads").delete().eq("project_id",e).eq("thread_id",r);if(o)throw o}async function eD(e){let r=t(),{data:n,error:o}=await r.from("project_threads").select("project_id").eq("thread_id",e).maybeSingle();return o?(c(o,"project_threads"),null):n?.project_id??null}e.s(["addLearning",()=>eu,"addProjectAgent",()=>eT,"addProjectMemory",()=>eN,"addProjectSkill",()=>eq,"addProjectThread",()=>eL,"addTaskComment",()=>el,"addTaskCostEntry",()=>eo,"addTaskLog",()=>et,"appendRunToIndex",()=>E,"assignOrphanTasksToProject",()=>M,"createAgent",()=>ek,"createProject",()=>R,"createTask",()=>I,"deleteAgent",()=>eS,"deleteLearning",()=>ep,"deleteProject",()=>W,"deleteProjectMemory",()=>eC,"deleteProjectVariable",()=>eP,"deleteStagePrompt",()=>ew,"deleteTask",()=>$,"deleteTaskComment",()=>ed,"ensureNoCircularDependency",()=>k,"getAgent",()=>ey,"getAgents",()=>e_,"getLearnings",()=>ec,"getNextQueuedTask",()=>A,"getProjectAgents",()=>ej,"getProjectBySlug",()=>x,"getProjectForThread",()=>eD,"getProjectMemory",()=>ex,"getProjectRepos",()=>N,"getProjectSkills",()=>eI,"getProjectThreads",()=>eO,"getProjectVariables",()=>e$,"getProjectWithRepos",()=>O,"getProjects",()=>P,"getStagePrompt",()=>eg,"getStagePrompts",()=>ef,"getTask",()=>v,"getTaskBySlug",()=>b,"getTaskComments",()=>es,"getTaskCostEntries",()=>ea,"getTaskCostSummary",()=>ei,"getTaskLogs",()=>ee,"getTasks",()=>T,"getUserSettings",()=>u,"getWorkflow",()=>V,"getWorkflowNodeByName",()=>K,"getWorkflowNodes",()=>Y,"getWorkflowTransitions",()=>z,"getWorkflowTransitionsFromNode",()=>X,"getWorkflowWithGraph",()=>Z,"getWorkflows",()=>G,"parseFrontmatter",()=>y,"removeProjectAgent",()=>ev,"removeProjectSkill",()=>eE,"removeProjectThread",()=>eR,"reorderProjectAgents",()=>eb,"setProjectVariable",()=>eA,"updateAgent",()=>eh,"updateProject",()=>D,"updateTask",()=>q,"updateWorkflow",()=>J,"updateWorkflowNodes",()=>H,"upsertStagePrompt",()=>em,"upsertUserSettings",()=>p],99904)},87575,e=>{"use strict";var t=e.i(99904),r=e.i(65196);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 a 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 i(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 a)throw e;i(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 a)throw e;i(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,i){let l=i?.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 a("task",e,l,t?.version)}let{expectedVersion:c,...u}=i??{};return s(()=>t.updateTask(e,n,o,u))}return(0,r.getSQLiteDb)().prepare("UPDATE tasks SET version = version + 1 WHERE id = ?").run(e),s(()=>t.updateTask(e,n,o,i))}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,a,i){return s(()=>t.upsertStagePrompt(e,r,n,o,a,i))}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)}getProjectAgents(e){return t.getProjectAgents(e)}addProjectAgent(e,r,n){return s(()=>t.addProjectAgent(e,r,n))}removeProjectAgent(e,r){return t.removeProjectAgent(e,r)}reorderProjectAgents(e,r){return t.reorderProjectAgents(e,r)}getProjectSkills(e){return t.getProjectSkills(e)}addProjectSkill(e,r,n){return s(()=>t.addProjectSkill(e,r,n))}removeProjectSkill(e){return t.removeProjectSkill(e)}getProjectVariables(e){return t.getProjectVariables(e)}setProjectVariable(e,r,n){return s(()=>t.setProjectVariable(e,r,n))}deleteProjectVariable(e,r){return t.deleteProjectVariable(e,r)}getProjectMemory(e,r){return t.getProjectMemory(e,r)}addProjectMemory(e,r,n,o){return s(()=>t.addProjectMemory(e,r,n,o))}deleteProjectMemory(e){return t.deleteProjectMemory(e)}getProjectThreads(e){return t.getProjectThreads(e)}addProjectThread(e,r){return s(()=>t.addProjectThread(e,r))}removeProjectThread(e,r){return t.removeProjectThread(e,r)}getProjectForThread(e){return t.getProjectForThread(e)}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],87575)},69324,e=>{"use strict";let t=function(){let{SQLiteAdapter:t}=e.r(87575);return new t}();var r=e.i(99904);let n=[["INTAKE","PROGRESS","DONE"]];async function o({workflowId:e,currentNodeName:t,decision:n,retryCount:o,maxRetries:a=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 i=await (0,r.getWorkflowNodeByName)(e,t);if(!i)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"===i.node_type)return{nextNodeName:t,nextStatus:"completed",retryCount:0,error:null,appendLog:{content:`Task completed at ${i.label||t}`,logType:"checkpoint"},nodeConfig:i};if("blocked"===n)return{nextNodeName:t,nextStatus:"blocked",retryCount:o,error:null,appendLog:{content:"Blocked: additional input required.",logType:"system"},nodeConfig:i};let s=await (0,r.getWorkflowTransitionsFromNode)(e,i.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: ${i.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 ${i.label||t}`,logType:"checkpoint"},nodeConfig:i};let c=o+1;return c<=a?{nextNodeName:t,nextStatus:"queued",retryCount:c,error:null,appendLog:{content:`Retrying (${c}/${a}) for ${i.label||t}`,logType:"system"},nodeConfig:i}:{nextNodeName:t,nextStatus:"failed",retryCount:c,error:"Task failed after max retries.",appendLog:{content:"Task failed after max retries.",logType:"error"},nodeConfig:i}}var a=e.i(54799),i=e.i(90107),s=e.i(65196);function l(e){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.min(1,e)):null}function d(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function c(e){return{id:e.id,scope:e.scope,subjectId:e.subject_id,sourceType:e.source_type,sourceId:e.source_id,kind:e.kind,title:e.title,body:e.body,confidence:l(e.confidence),durability:l(e.durability),tags:d(e.tags),evidence:d(e.evidence),metadata:function(e){if(!e)return{};try{let t=JSON.parse(e);return t&&"object"==typeof t&&!Array.isArray(t)?t:{}}catch{return{}}}(e.metadata),createdAt:e.created_at,updatedAt:e.updated_at}}function u(e){return(0,s.getSQLiteDb)().prepare(`SELECT id, scope, subject_id, source_type, source_id, kind, title, body,
|
|
1
|
+
module.exports=[99904,45491,29264,e=>{"use strict";function t(){let{createAdminDbClientSQLite:t}=e.r(65196);return t()}e.i(86213),e.s(["createAdminDbClient",()=>t],45491);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 a(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 i(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 i("notification_webhooks",o),n)?(Array.isArray(n)?n:[n]).map(a):[]}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(),a={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(a)});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],29264);var d=e.i(54799);function c(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 u(e){let r=t(),{data:n,error:o}=await r.from("user_settings").select("*").eq("user_id",e).maybeSingle();if(o){if(c(o,"user_settings"))return null;throw o}return n||null}async function p(e,r,n){let o=n?.onlyIfNewer!==!1,a=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),i=await u(e);if(o&&i?.changed_at){let e=Date.parse(i.changed_at),t=Date.parse(a);if(Number.isFinite(e)&&Number.isFinite(t)&&t<=e)return{settings:i,updated:!1}}let s={user_id:e,default_provider:r.default_provider??i?.default_provider??null,models:r.models??i?.models??{},provenance:r.provenance,changed_at:a},l=t(),{error:d}=await l.from("user_settings").upsert(s,{onConflict:"user_id"});if(d)throw d;let c=await u(e);if(!c)throw Error("Failed to load user_settings after upsert");return{settings:c,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 a=Math.random().toString(36).slice(2,6);r=`${f(e)}-${a}`.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 a=0;a<5;a++){let a=r.from("projects").select("id").eq("slug",o).eq("user_id",t);n&&(a=a.neq("id",n));let{data:i,error:s}=await a.limit(1);if(s)throw s;if(!i||0===i.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 _(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(),a=new Set,i=[...r];for(;i.length;){let t=i.pop();if(!t)continue;if(t===e)throw Error("Circular dependency detected");if(a.has(t))continue;a.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&&!a.has(e)&&i.push(e)}}function h(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 j(e,n){var o;let a=Array.isArray(e.depends_on)?e.depends_on:[];if(!a.length)return;let i=t(),{data:s,error:l}=await i.from("tasks").select("id, title, slug, status, stage").in("id",a);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=i.from("tasks").update({status:"blocked",blocked_reason:t}).eq("id",e.id);n&&(o=o.eq("user_id",n));let{error:a}=await o;if(a&&"42703"!==a.code)throw a;return}if("blocked"===e.status&&"string"==typeof(o=e.blocked_reason)&&o.startsWith(r)){let t=i.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 T(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:a}=await n;if(a)throw a;let i=o||[];return r?.orphan?i.filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t}):i}async function v(e,r){let n=t().from("tasks").select("*").eq("id",e);r&&(n=n.eq("user_id",r));let{data:o,error:a}=await n.single();if(a){if("PGRST116"===a.code)return null;throw a}return o}async function b(e,r){let n=t().from("tasks").select("*").eq("slug",e);r&&(n=n.eq("user_id",r));let{data:o,error:a}=await n.single();if(a){if("PGRST116"===a.code)return null;throw a}return o}async function I(e,r,n){let o=t(),{frontmatter:a,body:i}=y(e),s="boolean"==typeof a.swarm?a.swarm:void 0,c=n?.title||h(e),u=String(a.slug||c||"task"),p=await g(u,o),f=n?.projectId||("string"==typeof a.project_id?a.project_id:void 0),m="string"==typeof a.workflow_id?a.workflow_id:void 0,w="string"==typeof a.project?a.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 T="string"==typeof a.provider?a.provider:null,b="string"==typeof a.model?a.model:null,I="string"==typeof a.engine?a.engine:null,q="ai"===a.created_by?"ai":"user",E=_(a.depends_on),$=_(n?.dependsOn),A=$.length>0?$:E,P={id:(0,d.randomUUID)(),content:e,description:S(i),title:c,slug:p,status:a.status||"queued",stage:a.stage||"intake",project:w||null,...void 0!==f?{project_id:f}:{},...void 0!==m?{workflow_id:m}:{},priority:a.priority,engine:I,provider:T,model:b,swarm:s,swarm_models:n?.swarmModels??null,depends_on:A.length?A:null,created_by:q,user_id:r,current_plan:n?.currentPlan||null,open_blockers:n?.openBlockers||[],next_action:n?.nextAction||null,version:1};await k(P.id,A,o);let{data:x,error:N}=await o.from("tasks").insert(P).select().single();if(N&&"42703"===N.code){let{swarm_models:e,swarm:t,workflow_id:r,current_plan:n,open_blockers:a,next_action:i,version:s,depends_on:l,...d}=P;({data:x,error:N}=await o.from("tasks").insert(d).select().single())}if(N)throw N;if(!x)throw Error("Failed to create task");await j(x,r);let C=await v(x.id,r)||x,O=r||C.user_id;if(O){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:O,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 q(e,r,n,o){let a=t(),{frontmatter:i,body:s}=y(r),d="boolean"==typeof i.swarm?i.swarm:void 0,c=h(r),u="string"==typeof i.project_id?i.project_id:void 0,p=Object.prototype.hasOwnProperty.call(i,"provider"),f=Object.prototype.hasOwnProperty.call(i,"model"),g=Object.prototype.hasOwnProperty.call(i,"workflow_id"),m=Object.prototype.hasOwnProperty.call(i,"depends_on"),w=_(i.depends_on),T=_(o?.dependsOn),b=o?.dependsOn!==void 0||m,I=o?.dependsOn!==void 0?T:w,q={content:r,description:S(s),title:c,status:i.status,stage:i.stage,project:i.project,...void 0!==u?{project_id:u}:{},workflow_id:g?i.workflow_id:void 0,priority:i.priority,engine:i.engine,provider:p?i.provider:null,model:f?i.model:null,swarm:d,swarm_models:o?.swarmModels??void 0,...b?{depends_on:I.length?I: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(q).forEach(e=>{void 0===q[e]&&delete q[e]}),b&&await k(e,I,a);let E=a.from("tasks").update({...q,version:a.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:$,error:A}=await a.from("tasks").update({...q}).eq("id",e).select().maybeSingle();if(A&&console.error(`[db.updateTask] error updating task ${e}:`,A),$||A||console.warn(`[db.updateTask] UPDATE returned 0 rows for task ${e}, payload keys:`,Object.keys(q)),A&&"42703"===A.code){let{swarm_models:t,swarm:r,workflow_id:o,current_plan:i,open_blockers:s,next_action:l,version:d,depends_on:c,...u}=q,p=a.from("tasks").update(u).eq("id",e);n&&(p=p.eq("user_id",n)),{data:$,error:A}=await p.select().maybeSingle()}if(A)throw A;if(!$){let t=await v(e,n);if(!t)throw Error(`Task ${e} not found`);return t}await j($,n);let P=await v($.id,n)||$,x=n||P.user_id;if(x){let e=P.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(P.depends_on)?P.depends_on:[],project:P.project||null,projectId:P.project_id||null,workflowId:P.workflow_id||null,createdBy:P.created_by||null};l({taskId:P.id,userId:x,eventType:"task.created",title:P.title||null,slug:P.slug||null,stage:P.stage||null,status:P.status||null,timestamp:e,details:t})}return P}async function E(e,r,n=25){let o=t(),{data:a,error:i}=await o.from("tasks").select("run_index").eq("id",e).single();if(i){if(i?.code==="42703")return;throw i}let s=[r,...Array.isArray(a.run_index)?a.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 $(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 A(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 P(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(c(o,"projects"))return[];throw o}return(n||[]).map(e=>({...e,repos:e.project_repos??[]}))}async function x(e,r){let n=t().from("projects").select("*").eq("slug",e);r&&(n=n.eq("user_id",r));let{data:o,error:a}=await n.maybeSingle();if(a){if(c(a,"projects"))return null;throw a}return o||null}async function N(e){let r=t(),{data:n,error:o}=await r.from("project_repos").select("*").eq("project_id",e);if(o){if(c(o,"project_repos"))return[];throw o}return n||[]}let C=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function O(e,r){let n=t(),o=C.test(e),a=n.from("projects").select("*");a=o?a.eq("id",e):a.eq("slug",e),r&&(a=a.eq("user_id",r));let i=await a.maybeSingle();if(i.error){if(c(i.error,"projects"))return null;throw i.error}let s=i.data;if(!s)return null;let l=await N(s.id);return{...s,repos:l}}async function L(e,t,r){if(!t.length)return[];let n=t.map(t=>({...t.id?{id:t.id}:{},project_id:e,name:t.name,path:t.path??null,git_url:t.git_url??null,notes:t.notes??null})),{data:o,error:a}=await r.from("project_repos").insert(n).select("*");if(a){if(c(a,"project_repos"))return[];throw a}return o||[]}async function R(e,r,n){if(!r.name?.trim())throw Error("Project name is required");let o=n??t(),a=r.name.trim()||"project",i=await m(a,e,o),s={user_id:e,name:r.name.trim(),slug:i,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 c=await L(l.id,r.repos??[],o);return{...l,repos:c}}async function D(e,r,n,o){let a=o??t(),i=C.test(e),s=e;if(!i){let t=await x(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 a.from("projects").update(l).eq("id",s).eq("user_id",r);if(e)throw e}if(n.repos){let{data:e,error:t}=await a.from("project_repos").select("*").eq("project_id",s);if(t&&!c(t,"project_repos"))throw t;let r=e||[],o=new Set(r.map(e=>e.id)),i=new Set(n.repos.map(e=>e.id).filter(e=>!!e));for(let e of r){if(i.has(e.id))continue;let{error:t}=await a.from("project_repos").delete().eq("id",e.id).eq("project_id",s);if(t&&!c(t,"project_repos"))throw t}for(let e of n.repos){let t={name:e.name,path:e.path??null,git_url:e.git_url??null,notes:e.notes??null,project_id:s};if(e.id&&o.has(e.id)){let{error:r}=await a.from("project_repos").update(t).eq("id",e.id).eq("project_id",s);if(r&&!c(r,"project_repos"))throw r;continue}let{error:r}=await a.from("project_repos").insert({...e.id?{id:e.id}:{},...t});if(r&&!c(r,"project_repos"))throw r}}return O(s,r)}async function W(e,r,n){let o=n??t(),{error:a}=await o.from("projects").delete().eq("id",e).eq("user_id",r);if(a)throw a}async function M(e,r,n){let o=n??t(),{data:a,error:i}=await o.from("projects").select("id, slug").eq("id",e).eq("user_id",r).maybeSingle();if(i)throw i;if(!a)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(a.slug||"").trim().toLowerCase(),c=(s||[]).filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t||t===d}).map(e=>e.id);if(!c.length)return{updatedCount:0,taskIds:[]};let{error:u}=await o.from("tasks").update({project:a.slug,project_id:a.id,updated_at:new Date().toISOString()}).eq("user_id",r).is("project_id",null).in("id",c);if(u)throw u;return{updatedCount:c.length,taskIds:c}}let U="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 Q(e){let r=t(),{error:n}=await r.from("workflows").upsert({id:U,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:U,metadata:{}})),{onConflict:"id"});if(o)throw o;let{error:a}=await r.from("workflow_transitions").upsert([{workflow_id:U,from_node_id:"00000000-0000-0000-0001-000000000001",to_node_id:"00000000-0000-0000-0001-000000000002",condition:"done",priority:0,metadata:{}},{workflow_id:U,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(a)throw a}async function G(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(c(o,"workflows"))return[];throw o}return n||[]}async function V(e,r){let n=t().from("workflows").select("*").eq("id",e),{data:o,error:a}=await n.maybeSingle();if(a){if(c(a,"workflows"))return null;throw a}return o}async function J(e,r,n){let o=t(),a={updated_at:new Date().toISOString()};void 0!==n.definition&&(a.definition=n.definition),void 0!==n.name&&(a.name=n.name),void 0!==n.description&&(a.description=n.description);let{data:i,error:s}=await o.from("workflows").update(a).eq("id",e).select().single();if(s)throw s;return i}async function Y(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(c(o,"workflow_nodes"))return[];throw o}return n||[]}async function H(e,r,n){let o=t();if(e===U&&await Q(r),!await V(e,r))throw Error("Workflow not found");if(e===U){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 Y(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})),Y(e)}async function K(e,r){let n=t(),{data:o,error:a}=await n.from("workflow_nodes").select("*").eq("workflow_id",e).eq("name",r).maybeSingle();if(a){if(c(a,"workflow_nodes"))return null;throw a}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(c(o,"workflow_transitions"))return[];throw o}return n||[]}async function X(e,r){let n=t(),{data:o,error:a}=await n.from("workflow_transitions").select("*").eq("workflow_id",e).eq("from_node_id",r).order("priority",{ascending:!0});if(a){if(c(a,"workflow_transitions"))return[];throw a}return o||[]}async function Z(e,t){let r=await V(e,t);if(!r)return null;let[n,o]=await Promise.all([Y(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))),a="string"==typeof r.after&&r.after.trim()?r.after.trim():null,i=a?null:void 0===r.tail?o:Number(r.tail),s=null!==i&&Number.isFinite(i)&&i>0,l=n.from("task_logs").select("*").eq("task_id",e);r.nodeId&&(l=l.eq("node_id",r.nodeId)),l=a?l.gt("created_at",a).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:c}=await l;if(c)throw c;let u=d||[];return a?u:s?u.slice().reverse():u}async function et(e,r,n,o){let a=t(),{data:i,error:s}=await a.from("task_logs").insert({task_id:e,content:r,log_type:n,...o?{node_id:o}:{}}).select().single();if(s)throw s;return i}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:a}=await r.from("task_costs").insert(n).select().single();if(a)throw a;return o}async function ea(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 ei(e){return function(e){let t={},r=0,n=0,o=0;for(let a of e){let e=a.stage||"unknown",i=er(a.input_tokens),s=er(a.output_tokens),l=en(a.estimated_cost??0);r+=i,n+=s,o+=l;let d=t[e]||{stage:e,input_tokens:0,output_tokens:0,estimated_cost:0,entries:0};d.input_tokens+=i,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 ea(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 a=t(),{data:i,error:s}=await a.from("task_comments").insert({task_id:e,content:r,author_type:n,author_id:o??null}).select().single();if(s)throw s;return i}async function ed(e,r){let n=t(),{data:o,error:a}=await n.from("task_comments").select("author_id, author_type").eq("id",e).single();if(a)throw a;if(!o)throw Error("Comment not found");if("user"!==o.author_type||o.author_id!==r)throw Error("Unauthorized");let{error:i}=await n.from("task_comments").update({deleted_at:new Date().toISOString()}).eq("id",e).is("deleted_at",null);if(i)throw i}async function ec(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:a,error:i}=await o;if(i)throw i;return a||[]}async function eu(e,r,n,o){let a=t(),{data:i,error:s}=await a.from("learnings").insert({scope:e,scope_id:n,content:r,user_id:o}).select().single();if(s)throw s;return i}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:a}=await n;if(a)throw a;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:a}=await o.from("stage_prompts").select("*").eq("workflow_id",n).eq("stage",e).eq("is_default",!0).single();return a||null}async function em(e,r,n=[],o,a,i){let s=t(),l={stage:e,prompt:r,outputs:n,user_id:o,is_default:!o,workflow_id:i};a&&(void 0!==a.swarm&&(l.swarm=a.swarm),void 0!==a.provider&&(l.provider=a.provider),void 0!==a.model&&(l.model=a.model),void 0!==a.swarm_models&&(l.swarm_models=a.swarm_models));let{data:d,error:c}=await s.from("stage_prompts").upsert(l,{onConflict:o?"workflow_id,stage,user_id":"workflow_id,stage,is_default"}).select().single();if(c)throw c;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 e_(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(c(o,"agents"))return[];throw o}return n||[]}async function ey(e,r){let n=t(),{data:o,error:a}=await n.from("agents").select("*").eq("id",e).eq("user_id",r).maybeSingle();if(a){if("PGRST116"===a.code||c(a,"agents"))return null;throw a}return o}async function ek(e,r){let n=t(),o={user_id:e,name:r.name,style:r.style,description:r.description??null};void 0!==r.id&&(o.id=r.id),void 0!==r.title&&(o.title=r.title),void 0!==r.voice&&(o.voice=r.voice),void 0!==r.seed&&(o.seed=r.seed),void 0!==r.model&&(o.model=r.model),void 0!==r.provider&&(o.provider=r.provider),void 0!==r.color&&(o.color=r.color);let{data:a,error:i}=await n.from("agents").insert(o).select().single();if(i){if(c(i,"agents"))throw Error("Agents table does not exist");throw i}return a}async function eh(e,r,n){let o=t(),a={updated_at:new Date().toISOString()};if(void 0!==n.name&&(a.name=n.name),void 0!==n.title&&(a.title=n.title),void 0!==n.style&&(a.style=n.style),void 0!==n.description&&(a.description=n.description),void 0!==n.voice&&(a.voice=n.voice),void 0!==n.seed&&(a.seed=n.seed),void 0!==n.model&&(a.model=n.model),void 0!==n.provider&&(a.provider=n.provider),void 0!==n.color&&(a.color=n.color),1===Object.keys(a).length)return ey(e,r);let{data:i,error:s}=await o.from("agents").update(a).eq("id",e).eq("user_id",r).select().single();if(s){if("PGRST116"===s.code||c(s,"agents"))return null;throw s}return i}async function eS(e,r){let n=t(),{error:o}=await n.from("agents").delete().eq("id",e).eq("user_id",r);if(o&&!c(o,"agents"))throw o}async function ej(e){let r=t(),{data:n,error:o}=await r.from("project_agents").select("*").eq("project_id",e).order("routing_order",{ascending:!0});if(o){if(c(o,"project_agents"))return[];throw o}return n||[]}async function eT(e,r,n){let o=t();if(void 0===n){let{data:t}=await o.from("project_agents").select("routing_order").eq("project_id",e).order("routing_order",{ascending:!1}).limit(1);n=(t?.[0]?.routing_order??-1)+1}let{data:a,error:i}=await o.from("project_agents").upsert({project_id:e,agent_id:r,routing_order:n}).select().single();if(i)throw i;return a}async function ev(e,r){let n=t(),{error:o}=await n.from("project_agents").delete().eq("project_id",e).eq("agent_id",r);if(o)throw o}async function eb(e,r){let n=t();for(let t=0;t<r.length;t++)await n.from("project_agents").update({routing_order:t}).eq("project_id",e).eq("agent_id",r[t]);return ej(e)}async function eI(e){let r=t(),{data:n,error:o}=await r.from("project_skills").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(o){if(c(o,"project_skills"))return[];throw o}return n||[]}async function eq(e,r,n){let o=t(),{data:a,error:i}=await o.from("project_skills").insert({project_id:e,file:r,condition:n??null}).select().single();if(i)throw i;return a}async function eE(e){let r=t(),{error:n}=await r.from("project_skills").delete().eq("id",e);if(n)throw n}async function e$(e){let r=t(),{data:n,error:o}=await r.from("project_variables").select("*").eq("project_id",e);if(o){if(c(o,"project_variables"))return[];throw o}return n||[]}async function eA(e,r,n){let o=t(),{data:a,error:i}=await o.from("project_variables").upsert({project_id:e,key:r,value:n}).select().single();if(i)throw i;return a}async function eP(e,r){let n=t(),{error:o}=await n.from("project_variables").delete().eq("project_id",e).eq("key",r);if(o)throw o}async function ex(e,r){let n=t().from("project_memory").select("*").eq("project_id",e).order("created_at",{ascending:!1});r&&(n=n.eq("producer",r));let{data:o,error:a}=await n;if(a){if(c(a,"project_memory"))return[];throw a}return o||[]}async function eN(e,r,n,o="human"){let a=t(),{data:i,error:s}=await a.from("project_memory").insert({project_id:e,content:r,source:n??null,producer:o}).select().single();if(s)throw s;return i}async function eC(e){let r=t(),{error:n}=await r.from("project_memory").delete().eq("id",e);if(n)throw n}async function eO(e){let r=t(),{data:n,error:o}=await r.from("project_threads").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(o){if(c(o,"project_threads"))return[];throw o}return n||[]}async function eL(e,r){let n=t(),{data:o,error:a}=await n.from("project_threads").insert({project_id:e,thread_id:r}).select().single();if(a)throw a;return o}async function eR(e,r){let n=t(),{error:o}=await n.from("project_threads").delete().eq("project_id",e).eq("thread_id",r);if(o)throw o}async function eD(e){let r=t(),{data:n,error:o}=await r.from("project_threads").select("project_id").eq("thread_id",e).maybeSingle();return o?(c(o,"project_threads"),null):n?.project_id??null}e.s(["addLearning",()=>eu,"addProjectAgent",()=>eT,"addProjectMemory",()=>eN,"addProjectSkill",()=>eq,"addProjectThread",()=>eL,"addTaskComment",()=>el,"addTaskCostEntry",()=>eo,"addTaskLog",()=>et,"appendRunToIndex",()=>E,"assignOrphanTasksToProject",()=>M,"createAgent",()=>ek,"createProject",()=>R,"createTask",()=>I,"deleteAgent",()=>eS,"deleteLearning",()=>ep,"deleteProject",()=>W,"deleteProjectMemory",()=>eC,"deleteProjectVariable",()=>eP,"deleteStagePrompt",()=>ew,"deleteTask",()=>$,"deleteTaskComment",()=>ed,"ensureNoCircularDependency",()=>k,"getAgent",()=>ey,"getAgents",()=>e_,"getLearnings",()=>ec,"getNextQueuedTask",()=>A,"getProjectAgents",()=>ej,"getProjectBySlug",()=>x,"getProjectForThread",()=>eD,"getProjectMemory",()=>ex,"getProjectRepos",()=>N,"getProjectSkills",()=>eI,"getProjectThreads",()=>eO,"getProjectVariables",()=>e$,"getProjectWithRepos",()=>O,"getProjects",()=>P,"getStagePrompt",()=>eg,"getStagePrompts",()=>ef,"getTask",()=>v,"getTaskBySlug",()=>b,"getTaskComments",()=>es,"getTaskCostEntries",()=>ea,"getTaskCostSummary",()=>ei,"getTaskLogs",()=>ee,"getTasks",()=>T,"getUserSettings",()=>u,"getWorkflow",()=>V,"getWorkflowNodeByName",()=>K,"getWorkflowNodes",()=>Y,"getWorkflowTransitions",()=>z,"getWorkflowTransitionsFromNode",()=>X,"getWorkflowWithGraph",()=>Z,"getWorkflows",()=>G,"parseFrontmatter",()=>y,"removeProjectAgent",()=>ev,"removeProjectSkill",()=>eE,"removeProjectThread",()=>eR,"reorderProjectAgents",()=>eb,"setProjectVariable",()=>eA,"updateAgent",()=>eh,"updateProject",()=>D,"updateTask",()=>q,"updateWorkflow",()=>J,"updateWorkflowNodes",()=>H,"upsertStagePrompt",()=>em,"upsertUserSettings",()=>p],99904)},87575,e=>{"use strict";var t=e.i(99904),r=e.i(65196);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 a 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 i(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 a)throw e;i(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 a)throw e;i(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,i){let l=i?.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 a("task",e,l,t?.version)}let{expectedVersion:c,...u}=i??{};return s(()=>t.updateTask(e,n,o,u))}return(0,r.getSQLiteDb)().prepare("UPDATE tasks SET version = version + 1 WHERE id = ?").run(e),s(()=>t.updateTask(e,n,o,i))}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,a,i){return s(()=>t.upsertStagePrompt(e,r,n,o,a,i))}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)}getProjectAgents(e){return t.getProjectAgents(e)}addProjectAgent(e,r,n){return s(()=>t.addProjectAgent(e,r,n))}removeProjectAgent(e,r){return t.removeProjectAgent(e,r)}reorderProjectAgents(e,r){return t.reorderProjectAgents(e,r)}getProjectSkills(e){return t.getProjectSkills(e)}addProjectSkill(e,r,n){return s(()=>t.addProjectSkill(e,r,n))}removeProjectSkill(e){return t.removeProjectSkill(e)}getProjectVariables(e){return t.getProjectVariables(e)}setProjectVariable(e,r,n){return s(()=>t.setProjectVariable(e,r,n))}deleteProjectVariable(e,r){return t.deleteProjectVariable(e,r)}getProjectMemory(e,r){return t.getProjectMemory(e,r)}addProjectMemory(e,r,n,o){return s(()=>t.addProjectMemory(e,r,n,o))}deleteProjectMemory(e){return t.deleteProjectMemory(e)}getProjectThreads(e){return t.getProjectThreads(e)}addProjectThread(e,r){return s(()=>t.addProjectThread(e,r))}removeProjectThread(e,r){return t.removeProjectThread(e,r)}getProjectForThread(e){return t.getProjectForThread(e)}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],87575)},69324,e=>{"use strict";let t=function(){let{SQLiteAdapter:t}=e.r(87575);return new t}();var r=e.i(99904);let n=[["INTAKE","PROGRESS","DONE"]];async function o({workflowId:e,currentNodeName:t,decision:n,retryCount:o,maxRetries:a=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 i=await (0,r.getWorkflowNodeByName)(e,t);if(!i)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"===i.node_type)return{nextNodeName:t,nextStatus:"completed",retryCount:0,error:null,appendLog:{content:`Task completed at ${i.label||t}`,logType:"checkpoint"},nodeConfig:i};if("blocked"===n)return{nextNodeName:t,nextStatus:"blocked",retryCount:o,error:null,appendLog:{content:"Blocked: additional input required.",logType:"system"},nodeConfig:i};let s=await (0,r.getWorkflowTransitionsFromNode)(e,i.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: ${i.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 ${i.label||t}`,logType:"checkpoint"},nodeConfig:i};let c=o+1;return c<=a?{nextNodeName:t,nextStatus:"queued",retryCount:c,error:null,appendLog:{content:`Retrying (${c}/${a}) for ${i.label||t}`,logType:"system"},nodeConfig:i}:{nextNodeName:t,nextStatus:"failed",retryCount:c,error:"Task failed after max retries.",appendLog:{content:"Task failed after max retries.",logType:"error"},nodeConfig:i}}var a=e.i(54799),i=e.i(90107),s=e.i(65196);function l(e){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.min(1,e)):null}function d(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function c(e){return{id:e.id,scope:e.scope,subjectId:e.subject_id,sourceType:e.source_type,sourceId:e.source_id,kind:e.kind,title:e.title,body:e.body,confidence:l(e.confidence),durability:l(e.durability),tags:d(e.tags),evidence:d(e.evidence),metadata:function(e){if(!e)return{};try{let t=JSON.parse(e);return t&&"object"==typeof t&&!Array.isArray(t)?t:{}}catch{return{}}}(e.metadata),createdAt:e.created_at,updatedAt:e.updated_at}}function u(e){return(0,s.getSQLiteDb)().prepare(`SELECT id, scope, subject_id, source_type, source_id, kind, title, body,
|
|
2
2
|
confidence, durability, tags, evidence, metadata, created_at, updated_at
|
|
3
3
|
FROM knowledge_entries
|
|
4
4
|
WHERE scope = ? AND subject_id = ?
|