@mndrk/agx 2.1.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -105
- package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/context/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/options/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/scripted/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page/react-loadable-manifest.json +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.rsc +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_full.segment.rsc +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_tree.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page/react-loadable-manifest.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page/react-loadable-manifest.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +4 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +4 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +3 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +3 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0-zk9w8._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0.01bfe._.js +13 -8
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__00c~p6z._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__019dflu._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__02t.3rm._.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__06zr0ph._.js +6 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__07d._0s._.js +15 -10
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08xj~a3._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0a0cq38._.js +34 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0asvfdo._.js +35 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0bt7ejs._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0f.~98d._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g-~-.q._.js +6 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g7p6pw._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0gj~dap._.js +40 -9
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hkcw03._.js +8 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hyu3en._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0i5aw03._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ke4z91._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0l53ok5._.js +41 -10
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ll-~cx._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0mh6p.0._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0nc-lbr._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0p9rl6.._.js +8 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0q~pnp0._.js +6 -6
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ue0bu5._.js +6 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0unwwyx._.js +12 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0vtkl3q._.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0x6w64i._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0z82z0-._.js +6 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0zrv3p3._.js +16 -11
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0~iknwz._.js +12 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10d.dhd._.js +46 -15
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10sw5ia._.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__11yx.ud._.js +33 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__13-nlgu._.js +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__13960a8._.js +14 -9
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_06qet8g._.js +14 -9
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0_0m2ly._.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0a15wtk._.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0fr1qq6._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0g.q2r6._.js +6 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0i7fs.i._.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_01pvj2g._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_agent-participants_ts_0cq15u5._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_db_ts_0twf-w5._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_orchestrator_chat-processor_ts_0c2l_oh._.js +43 -12
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_0l95hik._.js +15 -15
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_0s5xprd._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_082u-ls._.js +19 -14
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_schedule-runner_ts_07-ozf_._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0_l0fpi.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0gips_c.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0rszt9p.js +10 -6
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0u_5kfo.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_06fnblz._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__039h7r.._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0lno3km._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__0fl7_-o._.js → [root-of-the-server]__0nqqk26._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__0j9m72.._.js → [root-of-the-server]__0tqn-o5._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0~nm7b6._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0140-84._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_03fckp4._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_064h43p._.js → _05xj_bp._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_0tcjapj._.js → _0ip6k6n._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0jensz1._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0t0p8q5._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yeuuy1._.js +1 -23
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_03z24q2._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_0nvzo3y._.js → apps_local_04dh2yh._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0_ac-.f._.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0a-8i4p._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0k4~c1x._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0ld1uug._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0ms1d6i._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0p_v0ri._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0x.xj52._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0~g2ijr._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_11k_-8~._.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_[id]_page_tsx_06n47n~._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_page_tsx_078reb_._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_layout_tsx_0aaa3~t._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_linear_page_tsx_0a~n5y8._.js +25 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_0kcaeqi._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_[teamId]_agents_[agentId]_page_tsx_0wm~_~t._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_[teamId]_page_tsx_0iyozfl._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_new_page_tsx_0yqd0a5._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_terminal_page_tsx_01n9qk.._.js +1 -20
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_setup_page_tsx_0ql2qmr._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_PromptJobBoard_tsx_06zob36._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_chat-ui_ChatContainer_tsx_0c9fjtl._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_0k4tfip._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_terminal_TerminalPane_tsx_0l17vs_._.js +22 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_thread_WorkspaceSidebar_tsx_0unv2xp._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/middleware-build-manifest.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0e307b-0c2jbx.js → 0-cets4_axpvm.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1011~1x9nj4ny.js → 0-k2m1ncx7hwx.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0dnw31436wd~..js → 0-pkmgle2s8u8.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/064jfmraty.9h.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/06kru5m9q~r.j.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/06kyg1q0bcz6p.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{119v0-idpg-cv.js → 08bdyjcnamzep.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-olq~7zw3wjy.js → 08xq~uyr6.eqw.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0gj98094p~zn4.js → 0cku81z~3oe6..js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0e7jhy0-52_4k.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0wh6p5~ft5rma.js → 0htc.sqrk_0.c.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ju4xmxwqddw6.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0kn66yvx08813.css +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{07646a0h94826.js → 0l89kxqcf86on.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0mm978wb-ueg-.js +6 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0musu8f.4wvxz.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0bchtyu6m.2yv.js → 0muti0yiyhu0t.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0rhps884e-bzu.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0rr3fvwc5ind~.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sbkkjowkksa6.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sjz0.o9_33qy.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0srzmg8ivve1g.css +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0fonouj2i9qnb.js → 0swo3_e8.4s7j.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sysrf3~l~r35.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0t69h-kc701fn.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0v67lnh..wj4z.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{013gtut17~fne.js → 0wb45ol1xrqe~.js} +1 -23
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{00po4v2x~0x_z.js → 0wiw2v8gm-k_-.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0tt1oh112yv-l.js → 0wopevh0s7.8c.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xm2~gxlt1npd.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1503vb7lb6.g1.js → 0ya124ushze_f.js} +4 -4
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0zt2o58c5gytn.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0~idsggr8vqf5.js +59 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0stvi5btlxl4m.js → 0~mcfx41q4znh.js} +3 -3
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/116j4mjz~y42t.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-vo_x2cxmjm3.js → 12b62py0mq1gm.js} +4 -4
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/12y5i0lh6s73o.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/148.mt80civoz.js +20 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/14m5d270euu_s.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-_ukhpeg429c.js → 16h9208kl5~xa.js} +1 -1
- package/cloud-runtime/standalone/apps/local/app/agents/[id]/page.tsx +6 -3
- package/cloud-runtime/standalone/apps/local/app/agents/page.tsx +3 -3
- package/cloud-runtime/standalone/apps/local/app/api/chat/route.ts +7 -1
- package/cloud-runtime/standalone/apps/local/app/api/participants/route.ts +9 -9
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/search/route.ts +6 -6
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/route.ts +3 -3
- package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/agents/route.ts +1 -1
- package/cloud-runtime/standalone/apps/local/app/api/schedules/poll/route.ts +11 -2
- package/cloud-runtime/standalone/apps/local/app/page.tsx +72 -14
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/layout.tsx +1 -1
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/page.tsx +34 -1
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.tsx +6 -3
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/page.tsx +6 -3
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/new/page.tsx +8 -17
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/replace/page.tsx +1 -1
- package/cloud-runtime/standalone/apps/local/app/projects/page.tsx +7 -0
- package/cloud-runtime/standalone/apps/local/app/setup/page.tsx +1 -38
- package/cloud-runtime/standalone/apps/local/components/AutomationsBoard.tsx +8 -4
- package/cloud-runtime/standalone/apps/local/components/EmptyStateCard.tsx +37 -0
- package/cloud-runtime/standalone/apps/local/components/LinearBoard.tsx +103 -770
- package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +8 -39
- package/cloud-runtime/standalone/apps/local/components/TeamPickerModal.tsx +3 -3
- package/cloud-runtime/standalone/apps/local/components/chat-ui/Composer.tsx +28 -32
- package/cloud-runtime/standalone/apps/local/components/chat-ui/ParticipantBar.tsx +24 -39
- package/cloud-runtime/standalone/apps/local/components/linear/LinearBoardFilters.tsx +343 -0
- package/cloud-runtime/standalone/apps/local/components/linear/LinearSettingsModal.tsx +9 -3
- package/cloud-runtime/standalone/apps/local/components/linear/LinearWorkerConfig.tsx +65 -30
- package/cloud-runtime/standalone/apps/local/components/linear/LinearWorkerRunLog.tsx +190 -0
- package/cloud-runtime/standalone/apps/local/components/linear/TicketRow.tsx +158 -0
- package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveHealthTrend.tsx +45 -61
- package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +38 -34
- package/cloud-runtime/standalone/apps/local/components/projects/RecentlyCompletedCard.tsx +0 -16
- package/cloud-runtime/standalone/apps/local/components/projects/ReplaceAgentsModal.tsx +2 -2
- package/cloud-runtime/standalone/apps/local/components/setup/McpSetupStep.tsx +155 -120
- package/cloud-runtime/standalone/apps/local/components/setup/ProviderStep.tsx +85 -88
- package/cloud-runtime/standalone/apps/local/components/setup/SetupLayout.tsx +6 -4
- package/cloud-runtime/standalone/apps/local/components/terminal/ProjectTerminal.tsx +18 -193
- package/cloud-runtime/standalone/apps/local/components/terminal/TerminalPane.tsx +40 -4
- package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +121 -20
- package/cloud-runtime/standalone/apps/local/components/ui/ResizeHandle.tsx +52 -0
- package/cloud-runtime/standalone/apps/local/hooks/useAutomations.ts +8 -3
- package/cloud-runtime/standalone/apps/local/hooks/useLinearActiveAgents.ts +38 -0
- package/cloud-runtime/standalone/apps/local/hooks/useLinearParticipants.ts +118 -0
- package/cloud-runtime/standalone/apps/local/hooks/usePromptJobs.ts +5 -3
- package/cloud-runtime/standalone/apps/local/hooks/useSetupFlow.ts +6 -81
- package/cloud-runtime/standalone/apps/local/lib/agent-participants.ts +1 -1
- package/cloud-runtime/standalone/apps/local/lib/agent-process-registry.ts +34 -0
- package/cloud-runtime/standalone/apps/local/lib/db.ts +5 -5
- package/cloud-runtime/standalone/apps/local/lib/linear-board-utils.ts +9 -0
- package/cloud-runtime/standalone/apps/local/lib/linear-run-status.ts +88 -0
- package/cloud-runtime/standalone/apps/local/lib/linear-run-store.ts +4 -4
- package/cloud-runtime/standalone/apps/local/lib/sqlite-query-adapter.ts +5 -1
- package/cloud-runtime/standalone/apps/local/lib/team-catalog.ts +60 -60
- package/cloud-runtime/standalone/apps/local/lib/types.ts +1 -1
- package/cloud-runtime/standalone/apps/local/migrations/sqlite_schema.sql +1 -1
- package/cloud-runtime/standalone/apps/local/skills-lock.json +5 -0
- package/cloud-runtime/standalone/apps/local/src/graph/schedule-runner.ts +26 -1
- package/cloud-runtime/standalone/apps/local/src/graph/store.ts +13 -0
- package/cloud-runtime/standalone/apps/local/state/linearBoardPins.ts +45 -0
- package/cloud-runtime/standalone/apps/local/styles/workspaceSidebar.css +71 -2
- package/cloud-runtime/standalone/apps/local/worker/index.js +56 -4
- package/lib/cli/onboarding.js +8 -5
- package/package.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_0tvwux2._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__006vr7.._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0d18x53._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0z7nw_r._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_00trrg8._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ejzn1e._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0sjchy6._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0w4gpvr._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0x6hh0t._.js +0 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0t6p.qm._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/014z_yruiincl.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/041-dhls9zkl1.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/04yoml2rqnuot.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/069yt_7prdxsp.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0_mrpyqcoyb_5.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0edewt9l~cs~k.css +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0f7i3ae1ynhf3.css +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0j-nhn61e~nnj.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jrkacz_dyem6.js +0 -37
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0l3v45kd.9is_.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p-rdas54yo~w.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0pdrpsy-zdxp0.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p~l5ap6qqx2o.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0r0c9y6.8.m5p.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0tm20~ec~occu.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0uve8xrt~0a2e.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0w94x-v00osq0.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xwny92a.ad_i.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0zw85-xl9ysjs.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/11l2tww5f0hsk.js +0 -20
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/12qohmk-~yrtg.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/14v~9vx3tdv85.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/16d~es6h6k~rj.js +0 -6
- package/cloud-runtime/standalone/apps/local/components/setup/ProjectStep.tsx +0 -189
- package/cloud-runtime/standalone/apps/local/components/setup/TeamsStep.tsx +0 -500
- /package/cloud-runtime/standalone/apps/local/.next/static/{RnYHmEXBwXJjVrVVx2CuP → ROMPfjQqFXqGHmbybq1eC}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{RnYHmEXBwXJjVrVVx2CuP → ROMPfjQqFXqGHmbybq1eC}/_clientMiddlewareManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{RnYHmEXBwXJjVrVVx2CuP → ROMPfjQqFXqGHmbybq1eC}/_ssgManifest.js +0 -0
|
@@ -29,6 +29,6 @@ ${n}`:n,{note:d}=this.upsertKnowledgeNote({scope:i,subjectId:o,content:s,changeS
|
|
|
29
29
|
`);for(let e of f.filter(e=>e.project_id===r.id))y(i.default.join(this.projectVariablesDir(r.slug),`${l(e.key,"var")}.md`),{id:`project-variable:${r.id}:${e.key}`,type:"project-variable",project_id:r.id,title:e.key,key:e.key,value:e.value,created_at:t,updated_at:t},"");for(let e of(y(this.projectAgentsIndexPath(r.slug),{id:`project-agents:${r.id}`,type:"project-agents",project_id:r.id,title:"Project Agents",created_at:r.created_at,updated_at:r.updated_at,agents:c.filter(e=>e.project_id===r.id).sort((e,t)=>e.routing_order-t.routing_order)},"# Project Agents\n"),g.filter(e=>e.project_id===r.id)))y(i.default.join(this.projectThreadsDir(r.slug),`${encodeURIComponent(e.thread_id)}.md`),{id:`project-thread:${r.id}:${e.thread_id}`,type:"project-thread",project_id:r.id,thread_id:e.thread_id,title:e.thread_id,created_at:e.created_at||t,updated_at:e.created_at||t},`# Thread ${e.thread_id}
|
|
30
30
|
`)}for(let e of w)y(this.nextKnowledgeEntryPath(e.scope,e.subject_id,e.title||e.id),{id:e.id,type:"knowledge-evidence",scope:e.scope,subject_id:e.subject_id,source_type:e.source_type,source_id:e.source_id,kind:e.kind,title:e.title,confidence:e.confidence,durability:e.durability,tags:e.tags?JSON.parse(e.tags):[],evidence:e.evidence?JSON.parse(e.evidence):[],metadata:e.metadata?JSON.parse(e.metadata):{},content_hash:e.content_hash||b(e.scope,e.subject_id,e.body),created_at:e.created_at||t,updated_at:e.updated_at||e.created_at||t},e.body),A+=1;return{projects:a.length,repos:s.length,agents:k.length,importedArtifacts:D,evidenceFiles:A}}composeAgentNoteBody(e,t,r){let i=[`# ${e}`];return t?.trim()&&i.push(`## Identity
|
|
31
31
|
${t.trim()}`),r.trim()&&i.push(`## Portable Knowledge
|
|
32
|
-
${r.trim()}`),i.join("\n\n")}synthesizeProjectNote(e,t,r){return Array.from(new Set([...t.filter(t=>t.project_id===e&&"system"===t.producer).map(e=>e.content.trim()),...r.filter(t=>"project"===t.scope&&t.subject_id===e).map(e=>e.body.trim())].filter(Boolean))).map(e=>`- ${e.replace(/^\-\s*/,"")}`).join("\n")}synthesizeRepoNote(e,t,r){return Array.from(new Set([...t.filter(t=>t.repo_id===e&&"system"===t.producer).map(e=>e.content.trim()),...r.filter(t=>"repo"===t.scope&&t.subject_id===e).map(e=>e.body.trim())].filter(Boolean))).map(e=>`- ${e.replace(/^\-\s*/,"")}`).join("\n")}synthesizeAgentNote(e,t,r){return Array.from(new Set([...t.filter(t=>t.agent_id===e).map(e=>e.content.trim()),...r.filter(t=>"agent"===t.scope&&t.subject_id===e).map(e=>e.body.trim())].filter(Boolean))).map(e=>`- ${e.replace(/^\-\s*/,"")}`).join("\n")}};e.s(["vaultStore",0,P])},623775,209120,930430,e=>{"use strict";function t(){let{createAdminDbClientSQLite:t}=e.r(633211);return t()}e.s(["createAdminDbClient",0,t],209120);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 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=>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 n(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 o(`Missing relation: ${e}`);throw t}async function s(e){let r=t(),{data:i,error:o}=await r.from("notification_webhooks").select("*").eq("user_id",e).order("created_at",{ascending:!1});return(o&&await n("notification_webhooks",o),i)?(Array.isArray(i)?i:[i]).map(a):[]}async function d(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 i=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: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(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",0,d],930430);var l=e.i(254799),c=e.i(341902);function u(e,t){if(!e)return!1;let r="string"==typeof e.message?e.message:"";return"42P01"===e.code||"PGRST205"===e.code||r.includes(`relation "${t}" does not exist`)||r.includes(`Could not find the table 'agx.${t}'`)||r.includes(`Could not find the table 'public.${t}'`)}async function p(e){let r=t(),{data:i,error:o}=await r.from("user_settings").select("*").eq("user_id",e).maybeSingle();if(o){if(u(o,"user_settings"))return null;throw o}return i||null}async function f(e,r,i){let o=i?.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),n=await p(e);if(o&&n?.changed_at){let e=Date.parse(n.changed_at),t=Date.parse(a);if(Number.isFinite(e)&&Number.isFinite(t)&&t<=e)return{settings:n,updated:!1}}let s={user_id:e,default_provider:r.default_provider??n?.default_provider??null,models:r.models??n?.models??{},provenance:r.provenance,changed_at:a},d=t(),{error:l}=await d.from("user_settings").upsert(s,{onConflict:"user_id"});if(l)throw l;let c=await p(e);if(!c)throw Error("Failed to load user_settings after upsert");return{settings:c,updated:!0}}function g(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"task"}async function m(e,t){let r=g(e);for(let i=0;i<5;i++){let{data:i,error:o}=await t.from("tasks").select("id").eq("slug",r).limit(1);if(o)throw o;if(!i||0===i.length)return r;let a=Math.random().toString(36).slice(2,6);r=`${g(e)}-${a}`.slice(0,48)}return`${g(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}async function _(e,t,r,i){let o=g(e);for(let a=0;a<5;a++){let a=r.from("projects").select("id").eq("slug",o).eq("user_id",t);i&&(a=a.neq("id",i));let{data:n,error:s}=await a.limit(1);if(s)throw s;if(!n||0===n.length)return o;let d=Math.random().toString(36).slice(2,6);o=`${g(e)}-${d}`.slice(0,48)}return`${g(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}function h(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=h(e)}return Array.from(new Set(t.map(e=>e.trim()).filter(Boolean)))}function w(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(),o=e.slice(t+1).trim();if("depends_on"===i){r[i]=h(o);continue}"true"===o?r[i]=!0:"false"===o?r[i]=!1:/^\d+$/.test(o)?r[i]=parseInt(o):r[i]=o}}return{frontmatter:r,body:t[2]}}async function j(e,r,i){if(!e||!r?.length)return;let o=i??t(),a=new Set,n=[...r];for(;n.length;){let t=n.pop();if(!t)continue;if(t===e)throw Error("Circular dependency detected");if(a.has(t))continue;a.add(t);let{data:r,error:i}=await o.from("tasks").select("depends_on").eq("id",t).maybeSingle();if(i){if("PGRST116"===i.code||"42703"===i.code)continue;throw i}if(r)for(let e of Array.isArray(r.depends_on)?r.depends_on:[])e&&!a.has(e)&&n.push(e)}}function k(e){let{body:t}=w(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 b(e,i){var o;let a=Array.isArray(e.depends_on)?e.depends_on:[];if(!a.length)return;let n=t(),{data:s,error:d}=await n.from("tasks").select("id, title, slug, status, stage").in("id",a);if(d)return;let l=(Array.isArray(s)?s:[]).filter(e=>"completed"!==(e?.status||""));if(l.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}(l),o=n.from("tasks").update({status:"blocked",blocked_reason:t}).eq("id",e.id);i&&(o=o.eq("user_id",i));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=n.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 S(e,r){let i=t().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:o,error:a}=await i;if(a)throw a;let n=o||[];return r?.orphan?n.filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t}):n}async function P(e,r){let i=t().from("tasks").select("*").eq("id",e);r&&(i=i.eq("user_id",r));let{data:o,error:a}=await i.single();if(a){if("PGRST116"===a.code)return null;throw a}return o}async function D(e,r){let i=t().from("tasks").select("*").eq("slug",e);r&&(i=i.eq("user_id",r));let{data:o,error:a}=await i.single();if(a){if("PGRST116"===a.code)return null;throw a}return o}async function A(e,r,i){let o=t(),{frontmatter:a,body:n}=w(e),s="boolean"==typeof a.swarm?a.swarm:void 0,c=i?.title||k(e),u=String(a.slug||c||"task"),p=await m(u,o),f=i?.projectId||("string"==typeof a.project_id?a.project_id:void 0),g="string"==typeof a.workflow_id?a.workflow_id:void 0,_="string"==typeof a.project?a.project:void 0;if(!_&&f){let e=await O(f);e?.slug&&(_=e.slug)}/^---\n/.test(e);let h="string"==typeof a.provider?a.provider:null,S="string"==typeof a.model?a.model:null,D="string"==typeof a.engine?a.engine:null,A="ai"===a.created_by?"ai":"user",q=y(a.depends_on),I=y(i?.dependsOn),R=I.length>0?I:q,$={id:(0,l.randomUUID)(),content:e,description:v(n),title:c,slug:p,status:a.status||"queued",stage:a.stage||"intake",project:_||null,...void 0!==f?{project_id:f}:{},...void 0!==g?{workflow_id:g}:{},priority:a.priority,engine:D,provider:h,model:S,swarm:s,swarm_models:i?.swarmModels??null,depends_on:R.length?R:null,created_by:A,user_id:r,current_plan:i?.currentPlan||null,open_blockers:i?.openBlockers||[],next_action:i?.nextAction||null,version:1};await j($.id,R,o);let{data:E,error:T}=await o.from("tasks").insert($).select().single();if(T&&"42703"===T.code){let{swarm_models:e,swarm:t,workflow_id:r,current_plan:i,open_blockers:a,next_action:n,version:s,depends_on:d,...l}=$;({data:E,error:T}=await o.from("tasks").insert(l).select().single())}if(T)throw T;if(!E)throw Error("Failed to create task");await b(E,r);let x=await P(E.id,r)||E,N=r||x.user_id;if(N){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};d({taskId:x.id,userId:N,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 q(e,r,i,o){let a=t(),{frontmatter:n,body:s}=w(r),l="boolean"==typeof n.swarm?n.swarm:void 0,c=k(r),u="string"==typeof n.project_id?n.project_id:void 0,p=Object.prototype.hasOwnProperty.call(n,"provider"),f=Object.prototype.hasOwnProperty.call(n,"model"),g=Object.prototype.hasOwnProperty.call(n,"workflow_id"),m=Object.prototype.hasOwnProperty.call(n,"depends_on"),_=y(n.depends_on),h=y(o?.dependsOn),S=o?.dependsOn!==void 0||m,D=o?.dependsOn!==void 0?h:_,A={content:r,description:v(s),title:c,status:n.status,stage:n.stage,project:n.project,...void 0!==u?{project_id:u}:{},workflow_id:g?n.workflow_id:void 0,priority:n.priority,engine:n.engine,provider:p?n.provider:null,model:f?n.model:null,swarm:l,swarm_models:o?.swarmModels??void 0,...S?{depends_on:D.length?D: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(A).forEach(e=>{void 0===A[e]&&delete A[e]}),S&&await j(e,D,a);let q=a.from("tasks").update({...A,version:a.rpc("increment_version")}).eq("id",e);i&&(q=q.eq("user_id",i)),o?.expectedVersion!==void 0&&(q=q.eq("version",o.expectedVersion));let{data:I,error:R}=await a.from("tasks").update({...A}).eq("id",e).select().maybeSingle();if(R&&console.error(`[db.updateTask] error updating task ${e}:`,R),I||R||console.warn(`[db.updateTask] UPDATE returned 0 rows for task ${e}, payload keys:`,Object.keys(A)),R&&"42703"===R.code){let{swarm_models:t,swarm:r,workflow_id:o,current_plan:n,open_blockers:s,next_action:d,version:l,depends_on:c,...u}=A,p=a.from("tasks").update(u).eq("id",e);i&&(p=p.eq("user_id",i)),{data:I,error:R}=await p.select().maybeSingle()}if(R)throw R;if(!I){let t=await P(e,i);if(!t)throw Error(`Task ${e} not found`);return t}await b(I,i);let $=await P(I.id,i)||I,E=i||$.user_id;if(E){let e=$.created_at||new Date().toISOString(),t={dependsOn:Array.isArray($.depends_on)?$.depends_on:[],project:$.project||null,projectId:$.project_id||null,workflowId:$.workflow_id||null,createdBy:$.created_by||null};d({taskId:$.id,userId:E,eventType:"task.created",title:$.title||null,slug:$.slug||null,stage:$.stage||null,status:$.status||null,timestamp:e,details:t})}return $}async function I(e,r,i=25){let o=t(),{data:a,error:n}=await o.from("tasks").select("run_index").eq("id",e).single();if(n){if(n?.code==="42703")return;throw n}let s=[r,...Array.isArray(a.run_index)?a.run_index:[]].slice(0,i),{error:d}=await o.from("tasks").update({run_index:s}).eq("id",e);if(d){if(d?.code==="42703")return;throw d}}async function R(e,r){let i=t().from("tasks").delete().eq("id",e);r&&(i=i.eq("user_id",r));let{error:o}=await i;if(o)throw o}async function $(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:i,error:o}=await r.single();if(o){if("PGRST116"===o.code)return null;throw o}return i}async function E(e,r=!1){let i=t().from("projects").select("*, project_repos(*)");e&&(i=i.eq("user_id",e)),r||(i=i.is("archived_at",null));let{data:o,error:a}=await i;if(a){if(u(a,"projects"))return[];throw a}return(o||[]).map(e=>({...e,repos:e.project_repos??[]}))}async function T(e,r){let i=t().from("projects").select("*").eq("slug",e);r&&(i=i.eq("user_id",r));let{data:o,error:a}=await i.maybeSingle();if(a){if(u(a,"projects"))return null;throw a}return o||null}async function x(e){let r=t(),{data:i,error:o}=await r.from("project_repos").select("*").eq("project_id",e);if(o){if(u(o,"project_repos"))return[];throw o}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 O(e,r){let i=t(),o=N.test(e),a=i.from("projects").select("*");a=o?a.eq("id",e):a.eq("slug",e),r&&(a=a.eq("user_id",r));let n=await a.maybeSingle();if(n.error){if(u(n.error,"projects"))return null;throw n.error}let s=n.data;if(!s)return null;let d=await x(s.id);return{...s,repos:d}}async function C(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:o,error:a}=await r.from("project_repos").insert(i).select("*");if(a){if(u(a,"project_repos"))return[];throw a}return o||[]}async function M(e,r,i){if(!r.name?.trim())throw Error("Project name is required");let o=i??t(),a=r.name.trim()||"project",n=await _(a,e,o),s={user_id:e,name:r.name.trim(),slug:n,description:r.description??null,workflow_id:r.workflow_id??null},{data:d,error:l}=await o.from("projects").insert(s).select("*").single();if(l)throw l;let c=await C(d.id,r.repos??[],o);return{...d,repos:c}}async function K(e,r,i,o){let a=o??t(),n=N.test(e),s=e;if(!n){let t=await T(e,r);if(!t)return null;s=t.id}let d={};if(void 0!==i.name){let e=i.name?.trim();if(!e)throw Error("Project name cannot be empty");d.name=e}if(void 0!==i.slug){let e=i.slug?.trim();e&&(d.slug=e)}if(void 0!==i.description&&(d.description=i.description),void 0!==i.metadata&&(d.metadata=i.metadata),void 0!==i.ci_cd_info&&(d.ci_cd_info=i.ci_cd_info),void 0!==i.workflow_id&&(d.workflow_id=i.workflow_id),Object.keys(d).length){let{error:e}=await a.from("projects").update(d).eq("id",s).eq("user_id",r);if(e)throw e}if(i.repos){let{data:e,error:t}=await a.from("project_repos").select("*").eq("project_id",s);if(t&&!u(t,"project_repos"))throw t;let r=e||[],o=new Set(r.map(e=>e.id)),n=new Set(i.repos.map(e=>e.id).filter(e=>!!e));for(let e of r){if(n.has(e.id))continue;let{error:t}=await a.from("project_repos").delete().eq("id",e.id).eq("project_id",s);if(t&&!u(t,"project_repos"))throw t}for(let e of i.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&&!u(r,"project_repos"))throw r;continue}let{error:r}=await a.from("project_repos").insert({...e.id?{id:e.id}:{},...t});if(r&&!u(r,"project_repos"))throw r}}return O(s,r)}async function F(e,r,i){let o=i??t(),{error:a}=await o.from("projects").update({archived_at:new Date().toISOString()}).eq("id",e).eq("user_id",r);if(a)throw a}async function L(e,r,i){let o=i??t(),a=await O(e,r);if(!a)throw Error("Project not found");let{data:n,error:s}=await o.from("tasks").select("id, project").eq("user_id",r).is("project_id",null);if(s)throw s;let d=String(a.slug||"").trim().toLowerCase(),l=(n||[]).filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t||t===d}).map(e=>e.id);if(!l.length)return{updatedCount:0,taskIds:[]};let{error:c}=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",l);if(c)throw c;return{updatedCount:l.length,taskIds:l}}let B="00000000-0000-0000-0000-000000000001",W=[{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"}],U=new Map(W.map(e=>[e.id,e]));async function J(e){let r=t(),{error:i}=await r.from("workflows").upsert({id:B,user_id:e||"00000000-0000-0000-0000-000000000000",name:"Default Workflow",definition:{}},{onConflict:"id"});if(i)throw i;let{error:o}=await r.from("workflow_nodes").upsert(W.map(e=>({...e,workflow_id:B,metadata:{}})),{onConflict:"id"});if(o)throw o;let{error:a}=await r.from("workflow_transitions").upsert([{workflow_id:B,from_node_id:"00000000-0000-0000-0001-000000000001",to_node_id:"00000000-0000-0000-0001-000000000002",condition:"done",priority:0,metadata:{}},{workflow_id:B,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 V(e){let r=t(),{data:i,error:o}=await r.from("workflows").select("*").or(`user_id.eq.${e},user_id.eq.00000000-0000-0000-0000-000000000000`).order("created_at",{ascending:!1});if(o){if(u(o,"workflows"))return[];throw o}return i||[]}async function G(e,r){let i=t().from("workflows").select("*").eq("id",e),{data:o,error:a}=await i.maybeSingle();if(a){if(u(a,"workflows"))return null;throw a}return o}async function z(e,r,i){let o=t(),a={updated_at:new Date().toISOString()};void 0!==i.definition&&(a.definition=i.definition),void 0!==i.name&&(a.name=i.name),void 0!==i.description&&(a.description=i.description);let{data:n,error:s}=await o.from("workflows").update(a).eq("id",e).select().single();if(s)throw s;return n}async function H(e){let r=t(),{data:i,error:o}=await r.from("workflow_nodes").select("*").eq("workflow_id",e).order("position",{ascending:!0});if(o){if(u(o,"workflow_nodes"))return[];throw o}return i||[]}async function Q(e,r,i){let o=t();if(e===B&&await J(r),!await G(e,r))throw Error("Workflow not found");if(e===B){let t=i.map(t=>{let r=U.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 H(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 o.from("workflow_nodes").update(r).eq("workflow_id",e).eq("id",t.id);if(i)throw i})),H(e)}async function X(e,r){let i=t(),{data:o,error:a}=await i.from("workflow_nodes").select("*").eq("workflow_id",e).eq("name",r).maybeSingle();if(a){if(u(a,"workflow_nodes"))return null;throw a}return o}async function Y(e){let r=t(),{data:i,error:o}=await r.from("workflow_transitions").select("*").eq("workflow_id",e).order("priority",{ascending:!0});if(o){if(u(o,"workflow_transitions"))return[];throw o}return i||[]}async function Z(e,r){let i=t(),{data:o,error:a}=await i.from("workflow_transitions").select("*").eq("workflow_id",e).eq("from_node_id",r).order("priority",{ascending:!0});if(a){if(u(a,"workflow_transitions"))return[];throw a}return o||[]}async function ee(e,t){let r=await G(e,t);if(!r)return null;let[i,o]=await Promise.all([H(e),Y(e)]);return{...r,nodes:i,transitions:o}}async function et(e,r={}){let i=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,n=a?null:void 0===r.tail?o:Number(r.tail),s=null!==n&&Number.isFinite(n)&&n>0,d=i.from("task_logs").select("*").eq("task_id",e);r.nodeId&&(d=d.eq("node_id",r.nodeId)),d=a?d.gt("created_at",a).order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(o):s?d.order("created_at",{ascending:!1}).order("id",{ascending:!1}).limit(o):d.order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(o);let{data:l,error:c}=await d;if(c)throw c;let u=l||[];return a?u:s?u.slice().reverse():u}async function er(e,r,i,o){let a=t(),{data:n,error:s}=await a.from("task_logs").insert({task_id:e,content:r,log_type:i,...o?{node_id:o}:{}}).select().single();if(s)throw s;return n}function ei(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=t(),i={task_id:e.taskId,stage:e.stage,provider:e.provider??null,model:e.model??null,input_tokens:ei(e.inputTokens),output_tokens:ei(e.outputTokens),estimated_cost:eo(e.estimatedCost)},{data:o,error:a}=await r.from("task_costs").insert(i).select().single();if(a)throw a;return o}async function en(e){let r=t(),{data:i,error:o}=await r.from("task_costs").select("*").eq("task_id",e).order("created_at",{ascending:!0});if(o)throw o;return i||[]}function es(e){let t={},r=0,i=0,o=0;for(let a of e){let e=a.stage||"unknown",n=ei(a.input_tokens),s=ei(a.output_tokens),d=eo(a.estimated_cost??0);r+=n,i+=s,o+=d;let l=t[e]||{stage:e,input_tokens:0,output_tokens:0,estimated_cost:0,entries:0};l.input_tokens+=n,l.output_tokens+=s,l.estimated_cost+=d,l.entries+=1,t[e]=l}return{total_input_tokens:r,total_output_tokens:i,total_cost:o,per_stage:Object.values(t).sort((e,t)=>e.stage.localeCompare(t.stage))}}async function ed(e){return es(await en(e))}async function el(e){let r=t(),{data:i,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 i||[]}async function ec(e,r,i,o){let a=t(),{data:n,error:s}=await a.from("task_comments").insert({task_id:e,content:r,author_type:i,author_id:o??null}).select().single();if(s)throw s;return n}async function eu(e,r){let i=t(),{data:o,error:a}=await i.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:n}=await i.from("task_comments").update({deleted_at:new Date().toISOString()}).eq("id",e).is("deleted_at",null);if(n)throw n}async function ep(e,r,i){if("task"!==e)return c.vaultStore.getLearnings(e,r);let o=t().from("learnings").select("*").eq("scope",e).order("created_at",{ascending:!1});r&&(o=o.eq("scope_id",r)),i&&(o=o.eq("user_id",i));let{data:a,error:n}=await o;if(n)throw n;return a||[]}async function ef(e,r,i,o){if("task"!==e)return c.vaultStore.addLearning(e,r,i);let a=t(),{data:n,error:s}=await a.from("learnings").insert({scope:e,scope_id:i,content:r,user_id:o}).select().single();if(s)throw s;return n}async function eg(e,r){if("global-playbook"===e)return void c.vaultStore.deleteLearning(e,"global");let i=await O(e,r);if(i)return void c.vaultStore.deleteLearning(e,"project",i.id);let o=t().from("learnings").delete().eq("id",e);r&&(o=o.eq("user_id",r));let{error:a}=await o;if(a)throw a}async function em(e,r){let i=t().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:o,error:a}=await i;if(a)throw a;return o||[]}async function e_(e,r,i){let o=t();if(r){let{data:t}=await o.from("stage_prompts").select("*").eq("workflow_id",i).eq("stage",e).eq("user_id",r).single();if(t)return t}let{data:a}=await o.from("stage_prompts").select("*").eq("workflow_id",i).eq("stage",e).eq("is_default",!0).single();return a||null}async function eh(e,r,i=[],o,a,n){let s=t(),d={stage:e,prompt:r,outputs:i,user_id:o,is_default:!o,workflow_id:n};a&&(void 0!==a.swarm&&(d.swarm=a.swarm),void 0!==a.provider&&(d.provider=a.provider),void 0!==a.model&&(d.model=a.model),void 0!==a.swarm_models&&(d.swarm_models=a.swarm_models));let{data:l,error:c}=await s.from("stage_prompts").upsert(d,{onConflict:o?"workflow_id,stage,user_id":"workflow_id,stage,is_default"}).select().single();if(c)throw c;return l}async function ey(e,r){let i=t().from("stage_prompts").delete().eq("id",e);r&&(i=i.eq("user_id",r));let{error:o}=await i;if(o)throw o}async function ew(e){let r=t(),{data:i,error:o}=await r.from("agents").select("*").eq("user_id",e).order("created_at",{ascending:!1});if(o){if(u(o,"agents"))return[];throw o}return i||[]}async function ej(e,r){let i=t(),{data:o,error:a}=await i.from("agents").select("*").eq("id",e).eq("user_id",r).maybeSingle();if(a){if("PGRST116"===a.code||u(a,"agents"))return null;throw a}return o}async function ek(e){let r=t(),{data:i,error:o}=await r.from("agent_skills").select("*").eq("agent_id",e).order("created_at",{ascending:!0});if(o){if(u(o,"agent_skills"))return[];throw o}return i||[]}async function ev(e,r){let i=t(),o=new Map;for(let t of r){let r=t.file.trim();r&&o.set(r,{agent_id:e,file:r,condition:t.condition?.trim()||null})}let a=await ek(e);for(let t of a)if(!o.has(t.file)){let{error:r}=await i.from("agent_skills").delete().eq("agent_id",e).eq("file",t.file);if(r&&!u(r,"agent_skills"))throw r}for(let t of o.values()){let r=a.find(e=>e.file===t.file);if(!r){let{error:e}=await i.from("agent_skills").insert(t);if(e&&!u(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&&!u(r,"agent_skills"))throw r}}return ek(e)}async function eb(e,r){let i=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:n}=await i.from("agents").insert(o).select().single();if(n){if(u(n,"agents"))throw Error("Agents table does not exist");throw n}return a}async function eS(e,r,i){let o=t(),a={updated_at:new Date().toISOString()};if(void 0!==i.name&&(a.name=i.name),void 0!==i.title&&(a.title=i.title),void 0!==i.style&&(a.style=i.style),void 0!==i.description&&(a.description=i.description),void 0!==i.voice&&(a.voice=i.voice),void 0!==i.seed&&(a.seed=i.seed),void 0!==i.model&&(a.model=i.model),void 0!==i.provider&&(a.provider=i.provider),void 0!==i.color&&(a.color=i.color),1===Object.keys(a).length)return ej(e,r);let{data:n,error:s}=await o.from("agents").update(a).eq("id",e).eq("user_id",r).select().single();if(s){if("PGRST116"===s.code||u(s,"agents"))return null;throw s}return n}async function eP(e,r){let i=t(),{error:o}=await i.from("agents").delete().eq("id",e).eq("user_id",r);if(o&&!u(o,"agents"))throw o}async function eD(e){let r=t(),{data:i,error:o}=await r.from("project_agents").select("*").eq("project_id",e).order("routing_order",{ascending:!0});if(o){if(u(o,"project_agents"))return[];throw o}return i||[]}async function eA(e,r,i){let o=t();if(void 0===i){let{data:t}=await o.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:a,error:n}=await o.from("project_agents").upsert({project_id:e,agent_id:r,routing_order:i}).select().single();if(n)throw n;return a}async function eq(e,r){let i=t(),{error:o}=await i.from("project_agents").delete().eq("project_id",e).eq("agent_id",r);if(o)throw o}async function eI(e,r){let i=t();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 eD(e)}async function eR(e){let r=t(),{data:i,error:o}=await r.from("teams").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(o){if(u(o,"teams"))return[];throw o}return(i||[]).map(e=>({...e,metadata:"string"==typeof e.metadata?JSON.parse(e.metadata):e.metadata||{}}))}async function e$(e){let r=t(),{data:i,error:o}=await r.from("teams").select("*").eq("id",e).limit(1).single();if(o){if("PGRST116"===o.code||u(o,"teams"))return null;throw o}return i?{...i,metadata:"string"==typeof i.metadata?JSON.parse(i.metadata):i.metadata||{}}:null}async function eE(e,r,i,o){let a=t(),n=(0,l.randomUUID)(),s=new Date().toISOString(),{data:d,error:c}=await a.from("teams").insert({id:n,project_id:e,name:r,template_id:i||null,metadata:JSON.stringify(o||{}),created_at:s,updated_at:s}).select().single();if(c)throw c;return{...d,metadata:"string"==typeof d.metadata?JSON.parse(d.metadata):d.metadata||{}}}async function eT(e,r){let i=t(),o={};void 0!==r.name&&(o.name=r.name),void 0!==r.metadata&&(o.metadata=JSON.stringify(r.metadata));let{data:a,error:n}=await i.from("teams").update(o).eq("id",e).select().single();if(n){if("PGRST116"===n.code)return null;throw n}return{...a,metadata:"string"==typeof a.metadata?JSON.parse(a.metadata):a.metadata||{}}}async function ex(e){let r=t(),{error:i}=await r.from("teams").delete().eq("id",e);if(i)throw i}async function eN(e){let r=t(),{data:i,error:o}=await r.from("team_agents").select("*").eq("team_id",e).order("routing_order",{ascending:!0});if(o){if(u(o,"team_agents"))return[];throw o}return i||[]}async function eO(e,r,i,o){let a=t();if(void 0===o){let{data:t}=await a.from("team_agents").select("routing_order").eq("team_id",e).order("routing_order",{ascending:!1}).limit(1);o=(t?.[0]?.routing_order??-1)+1}let{data:n,error:s}=await a.from("team_agents").upsert({team_id:e,agent_id:r,role_key:i,routing_order:o}).select().single();if(s)throw s;return n}async function eC(e,r){let i=t(),{error:o}=await i.from("team_agents").delete().eq("team_id",e).eq("agent_id",r);if(o)throw o}async function eM(e){let r=t(),{data:i,error:o}=await r.from("project_skills").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(o){if(u(o,"project_skills"))return[];throw o}return i||[]}async function eK(e,r,i){let o=t(),{data:a,error:n}=await o.from("project_skills").insert({project_id:e,file:r,condition:i??null}).select().single();if(n)throw n;return a}async function eF(e){let r=t(),{error:i}=await r.from("project_skills").delete().eq("id",e);if(i)throw i}async function eL(e){let r=t(),{data:i,error:o}=await r.from("project_variables").select("*").eq("project_id",e);if(o){if(u(o,"project_variables"))return[];throw o}return i||[]}async function eB(e,r,i){let o=t(),{data:a,error:n}=await o.from("project_variables").upsert({project_id:e,key:r,value:i}).select().single();if(n)throw n;return a}async function eW(e,r){let i=t(),{error:o}=await i.from("project_variables").delete().eq("project_id",e).eq("key",r);if(o)throw o}async function eU(e,t){return c.vaultStore.getProjectMemory(e)}async function eJ(e,t,r,i="human"){return c.vaultStore.addProjectMemory(e,t,r,i)}async function eV(e){c.vaultStore.deleteProjectMemory(e)}async function eG(e){let r=t(),{data:i,error:o}=await r.from("project_threads").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(o){if(u(o,"project_threads"))return[];throw o}return i||[]}async function ez(e,r){let i=t(),{error:o}=await i.from("project_threads").upsert({project_id:e,thread_id:r},{onConflict:"project_id,thread_id",ignoreDuplicates:!0});if(o)throw o;let{data:a,error:n}=await i.from("project_threads").select("*").eq("project_id",e).eq("thread_id",r).single();if(n)throw n;return a}async function eH(e,r){let i=t(),{error:o}=await i.from("project_threads").delete().eq("project_id",e).eq("thread_id",r);if(o)throw o}async function eQ(e){let r=t(),{data:i,error:o}=await r.from("project_threads").select("project_id").eq("thread_id",e).maybeSingle();return o?(u(o,"project_threads"),null):i?.project_id??null}function eX(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}function eY(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}async function eZ(e){return(await eL(e)).map(e=>({key:e.key,value:e.value,source:"project"}))}async function e0(e,t,r,i){let o=await eM(t),a=await eU(t),n=await eZ(t);return{skills:eX(r,o),memory:eY(i,a),variables:n}}e.s(["DEFAULT_WORKFLOW_ID",0,"00000000-0000-0000-0000-000000000001","addLearning",0,ef,"addProjectAgent",0,eA,"addProjectMemory",0,eJ,"addProjectSkill",0,eK,"addProjectThread",0,ez,"addTaskComment",0,ec,"addTaskCostEntry",0,ea,"addTaskLog",0,er,"addTeamAgent",0,eO,"appendRunToIndex",0,I,"assignOrphanTasksToProject",0,L,"buildExecutionProvenance",0,e0,"createAgent",0,eb,"createProject",0,M,"createTask",0,A,"createTeam",0,eE,"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",0,eP,"deleteLearning",0,eg,"deleteProject",0,F,"deleteProjectMemory",0,eV,"deleteProjectVariable",0,eW,"deleteStagePrompt",0,ey,"deleteTask",0,R,"deleteTaskComment",0,eu,"deleteTeam",0,ex,"ensureNoCircularDependency",0,j,"extractTitle",0,k,"getAgent",0,ej,"getAgentSkills",0,ek,"getAgents",0,ew,"getDefaultWorkflowId",0,function(){return B},"getLearnings",0,ep,"getNextQueuedTask",0,$,"getProjectAgents",0,eD,"getProjectBySlug",0,T,"getProjectForThread",0,eQ,"getProjectMemory",0,eU,"getProjectRepos",0,x,"getProjectSkills",0,eM,"getProjectThreads",0,eG,"getProjectVariables",0,eL,"getProjectWithRepos",0,O,"getProjects",0,E,"getStagePrompt",0,e_,"getStagePrompts",0,em,"getTask",0,P,"getTaskBySlug",0,D,"getTaskComments",0,el,"getTaskCostEntries",0,en,"getTaskCostSummary",0,ed,"getTaskLogs",0,et,"getTasks",0,S,"getTeam",0,e$,"getTeamAgents",0,eN,"getTeams",0,eR,"getUserSettings",0,p,"getWorkflow",0,G,"getWorkflowNodeByName",0,X,"getWorkflowNodes",0,H,"getWorkflowTransitions",0,Y,"getWorkflowTransitionsFromNode",0,Z,"getWorkflowWithGraph",0,ee,"getWorkflows",0,V,"parseFrontmatter",0,w,"removeProjectAgent",0,eq,"removeProjectSkill",0,eF,"removeProjectThread",0,eH,"removeTeamAgent",0,eC,"reorderProjectAgents",0,eI,"resolveMemory",0,eY,"resolveSkills",0,eX,"resolveTaskConfig",0,function(t,r,i){let o=e=>"string"!=typeof e?null:e.trim()||null,a=null;try{let t=e.r(522734),r=e.r(814747).join(process.env.HOME||"",".agx","config.json"),i=JSON.parse(t.readFileSync(r,"utf-8"));a=o(i?.defaultProvider)||null}catch{}let n=o(i?.default_provider)||a||"claude",s=o(t.provider)||o(r?.provider)||n,d=o(i?.models?.[s])||null,l=o(t.model)||o(r?.model)||d||null;return{provider:s,model:l,swarm:t.swarm??r?.swarm??!1,swarm_models:t.swarm_models?.length?t.swarm_models:r?.swarm_models||[]}},"resolveVariables",0,eZ,"setAgentSkills",0,ev,"setProjectVariable",0,eB,"summarizeTaskCosts",0,es,"updateAgent",0,eS,"updateProject",0,K,"updateTask",0,q,"updateTeam",0,eT,"updateWorkflow",0,z,"updateWorkflowNodes",0,Q,"upsertStagePrompt",0,eh,"upsertUserSettings",0,f],623775)}];
|
|
32
|
+
${r.trim()}`),i.join("\n\n")}synthesizeProjectNote(e,t,r){return Array.from(new Set([...t.filter(t=>t.project_id===e&&"system"===t.producer).map(e=>e.content.trim()),...r.filter(t=>"project"===t.scope&&t.subject_id===e).map(e=>e.body.trim())].filter(Boolean))).map(e=>`- ${e.replace(/^\-\s*/,"")}`).join("\n")}synthesizeRepoNote(e,t,r){return Array.from(new Set([...t.filter(t=>t.repo_id===e&&"system"===t.producer).map(e=>e.content.trim()),...r.filter(t=>"repo"===t.scope&&t.subject_id===e).map(e=>e.body.trim())].filter(Boolean))).map(e=>`- ${e.replace(/^\-\s*/,"")}`).join("\n")}synthesizeAgentNote(e,t,r){return Array.from(new Set([...t.filter(t=>t.agent_id===e).map(e=>e.content.trim()),...r.filter(t=>"agent"===t.scope&&t.subject_id===e).map(e=>e.body.trim())].filter(Boolean))).map(e=>`- ${e.replace(/^\-\s*/,"")}`).join("\n")}};e.s(["vaultStore",0,P])},623775,209120,930430,e=>{"use strict";function t(){let{createAdminDbClientSQLite:t}=e.r(633211);return t()}e.s(["createAdminDbClient",0,t],209120);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 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=>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 n(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 o(`Missing relation: ${e}`);throw t}async function s(e){let r=t(),{data:i,error:o}=await r.from("notification_webhooks").select("*").eq("user_id",e).order("created_at",{ascending:!1});return(o&&await n("notification_webhooks",o),i)?(Array.isArray(i)?i:[i]).map(a):[]}async function d(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 i=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: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(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",0,d],930430);var l=e.i(254799),c=e.i(341902);function u(e,t){if(!e)return!1;let r="string"==typeof e.message?e.message:"";return"42P01"===e.code||"PGRST205"===e.code||r.includes(`relation "${t}" does not exist`)||r.includes(`Could not find the table 'agx.${t}'`)||r.includes(`Could not find the table 'public.${t}'`)}async function p(e){let r=t(),{data:i,error:o}=await r.from("user_settings").select("*").eq("user_id",e).maybeSingle();if(o){if(u(o,"user_settings"))return null;throw o}return i||null}async function f(e,r,i){let o=i?.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),n=await p(e);if(o&&n?.changed_at){let e=Date.parse(n.changed_at),t=Date.parse(a);if(Number.isFinite(e)&&Number.isFinite(t)&&t<=e)return{settings:n,updated:!1}}let s={user_id:e,default_provider:r.default_provider??n?.default_provider??null,models:r.models??n?.models??{},provenance:r.provenance,changed_at:a},d=t(),{error:l}=await d.from("user_settings").upsert(s,{onConflict:"user_id"});if(l)throw l;let c=await p(e);if(!c)throw Error("Failed to load user_settings after upsert");return{settings:c,updated:!0}}function g(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"task"}async function m(e,t){let r=g(e);for(let i=0;i<5;i++){let{data:i,error:o}=await t.from("tasks").select("id").eq("slug",r).limit(1);if(o)throw o;if(!i||0===i.length)return r;let a=Math.random().toString(36).slice(2,6);r=`${g(e)}-${a}`.slice(0,48)}return`${g(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}async function _(e,t,r,i){let o=g(e);for(let a=0;a<5;a++){let a=r.from("projects").select("id").eq("slug",o).eq("user_id",t);i&&(a=a.neq("id",i));let{data:n,error:s}=await a.limit(1);if(s)throw s;if(!n||0===n.length)return o;let d=Math.random().toString(36).slice(2,6);o=`${g(e)}-${d}`.slice(0,48)}return`${g(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}function h(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=h(e)}return Array.from(new Set(t.map(e=>e.trim()).filter(Boolean)))}function w(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(),o=e.slice(t+1).trim();if("depends_on"===i){r[i]=h(o);continue}"true"===o?r[i]=!0:"false"===o?r[i]=!1:/^\d+$/.test(o)?r[i]=parseInt(o):r[i]=o}}return{frontmatter:r,body:t[2]}}async function j(e,r,i){if(!e||!r?.length)return;let o=i??t(),a=new Set,n=[...r];for(;n.length;){let t=n.pop();if(!t)continue;if(t===e)throw Error("Circular dependency detected");if(a.has(t))continue;a.add(t);let{data:r,error:i}=await o.from("tasks").select("depends_on").eq("id",t).maybeSingle();if(i){if("PGRST116"===i.code||"42703"===i.code)continue;throw i}if(r)for(let e of Array.isArray(r.depends_on)?r.depends_on:[])e&&!a.has(e)&&n.push(e)}}function k(e){let{body:t}=w(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 b(e,i){var o;let a=Array.isArray(e.depends_on)?e.depends_on:[];if(!a.length)return;let n=t(),{data:s,error:d}=await n.from("tasks").select("id, title, slug, status, stage").in("id",a);if(d)return;let l=(Array.isArray(s)?s:[]).filter(e=>"completed"!==(e?.status||""));if(l.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}(l),o=n.from("tasks").update({status:"blocked",blocked_reason:t}).eq("id",e.id);i&&(o=o.eq("user_id",i));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=n.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 S(e,r){let i=t().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:o,error:a}=await i;if(a)throw a;let n=o||[];return r?.orphan?n.filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t}):n}async function P(e,r){let i=t().from("tasks").select("*").eq("id",e);r&&(i=i.eq("user_id",r));let{data:o,error:a}=await i.single();if(a){if("PGRST116"===a.code)return null;throw a}return o}async function D(e,r){let i=t().from("tasks").select("*").eq("slug",e);r&&(i=i.eq("user_id",r));let{data:o,error:a}=await i.single();if(a){if("PGRST116"===a.code)return null;throw a}return o}async function A(e,r,i){let o=t(),{frontmatter:a,body:n}=w(e),s="boolean"==typeof a.swarm?a.swarm:void 0,c=i?.title||k(e),u=String(a.slug||c||"task"),p=await m(u,o),f=i?.projectId||("string"==typeof a.project_id?a.project_id:void 0),g="string"==typeof a.workflow_id?a.workflow_id:void 0,_="string"==typeof a.project?a.project:void 0;if(!_&&f){let e=await O(f);e?.slug&&(_=e.slug)}/^---\n/.test(e);let h="string"==typeof a.provider?a.provider:null,S="string"==typeof a.model?a.model:null,D="string"==typeof a.engine?a.engine:null,A="ai"===a.created_by?"ai":"user",q=y(a.depends_on),I=y(i?.dependsOn),R=I.length>0?I:q,$={id:(0,l.randomUUID)(),content:e,description:v(n),title:c,slug:p,status:a.status||"queued",stage:a.stage||"intake",project:_||null,...void 0!==f?{project_id:f}:{},...void 0!==g?{workflow_id:g}:{},priority:a.priority,engine:D,provider:h,model:S,swarm:s,swarm_models:i?.swarmModels??null,depends_on:R.length?R:null,created_by:A,user_id:r,current_plan:i?.currentPlan||null,open_blockers:i?.openBlockers||[],next_action:i?.nextAction||null,version:1};await j($.id,R,o);let{data:E,error:T}=await o.from("tasks").insert($).select().single();if(T&&"42703"===T.code){let{swarm_models:e,swarm:t,workflow_id:r,current_plan:i,open_blockers:a,next_action:n,version:s,depends_on:d,...l}=$;({data:E,error:T}=await o.from("tasks").insert(l).select().single())}if(T)throw T;if(!E)throw Error("Failed to create task");await b(E,r);let x=await P(E.id,r)||E,N=r||x.user_id;if(N){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};d({taskId:x.id,userId:N,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 q(e,r,i,o){let a=t(),{frontmatter:n,body:s}=w(r),l="boolean"==typeof n.swarm?n.swarm:void 0,c=k(r),u="string"==typeof n.project_id?n.project_id:void 0,p=Object.prototype.hasOwnProperty.call(n,"provider"),f=Object.prototype.hasOwnProperty.call(n,"model"),g=Object.prototype.hasOwnProperty.call(n,"workflow_id"),m=Object.prototype.hasOwnProperty.call(n,"depends_on"),_=y(n.depends_on),h=y(o?.dependsOn),S=o?.dependsOn!==void 0||m,D=o?.dependsOn!==void 0?h:_,A={content:r,description:v(s),title:c,status:n.status,stage:n.stage,project:n.project,...void 0!==u?{project_id:u}:{},workflow_id:g?n.workflow_id:void 0,priority:n.priority,engine:n.engine,provider:p?n.provider:null,model:f?n.model:null,swarm:l,swarm_models:o?.swarmModels??void 0,...S?{depends_on:D.length?D: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(A).forEach(e=>{void 0===A[e]&&delete A[e]}),S&&await j(e,D,a);let q=a.from("tasks").update({...A,version:a.rpc("increment_version")}).eq("id",e);i&&(q=q.eq("user_id",i)),o?.expectedVersion!==void 0&&(q=q.eq("version",o.expectedVersion));let{data:I,error:R}=await a.from("tasks").update({...A}).eq("id",e).select().maybeSingle();if(R&&console.error(`[db.updateTask] error updating task ${e}:`,R),I||R||console.warn(`[db.updateTask] UPDATE returned 0 rows for task ${e}, payload keys:`,Object.keys(A)),R&&"42703"===R.code){let{swarm_models:t,swarm:r,workflow_id:o,current_plan:n,open_blockers:s,next_action:d,version:l,depends_on:c,...u}=A,p=a.from("tasks").update(u).eq("id",e);i&&(p=p.eq("user_id",i)),{data:I,error:R}=await p.select().maybeSingle()}if(R)throw R;if(!I){let t=await P(e,i);if(!t)throw Error(`Task ${e} not found`);return t}await b(I,i);let $=await P(I.id,i)||I,E=i||$.user_id;if(E){let e=$.created_at||new Date().toISOString(),t={dependsOn:Array.isArray($.depends_on)?$.depends_on:[],project:$.project||null,projectId:$.project_id||null,workflowId:$.workflow_id||null,createdBy:$.created_by||null};d({taskId:$.id,userId:E,eventType:"task.created",title:$.title||null,slug:$.slug||null,stage:$.stage||null,status:$.status||null,timestamp:e,details:t})}return $}async function I(e,r,i=25){let o=t(),{data:a,error:n}=await o.from("tasks").select("run_index").eq("id",e).single();if(n){if(n?.code==="42703")return;throw n}let s=[r,...Array.isArray(a.run_index)?a.run_index:[]].slice(0,i),{error:d}=await o.from("tasks").update({run_index:s}).eq("id",e);if(d){if(d?.code==="42703")return;throw d}}async function R(e,r){let i=t().from("tasks").delete().eq("id",e);r&&(i=i.eq("user_id",r));let{error:o}=await i;if(o)throw o}async function $(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:i,error:o}=await r.single();if(o){if("PGRST116"===o.code)return null;throw o}return i}async function E(e,r=!1){let i=t().from("projects").select("*, project_repos(*)");e&&(i=i.eq("user_id",e)),r||(i=i.is("archived_at",null));let{data:o,error:a}=await i;if(a){if(u(a,"projects"))return[];throw a}return(o||[]).map(e=>({...e,repos:e.project_repos??[]}))}async function T(e,r){let i=t().from("projects").select("*").eq("slug",e);r&&(i=i.eq("user_id",r));let{data:o,error:a}=await i.maybeSingle();if(a){if(u(a,"projects"))return null;throw a}return o||null}async function x(e){let r=t(),{data:i,error:o}=await r.from("project_repos").select("*").eq("project_id",e);if(o){if(u(o,"project_repos"))return[];throw o}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 O(e,r){let i=t(),o=N.test(e),a=i.from("projects").select("*");a=o?a.eq("id",e):a.eq("slug",e),r&&(a=a.eq("user_id",r));let n=await a.maybeSingle();if(n.error){if(u(n.error,"projects"))return null;throw n.error}let s=n.data;if(!s)return null;let d=await x(s.id);return{...s,repos:d}}async function C(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:o,error:a}=await r.from("project_repos").insert(i).select("*");if(a){if(u(a,"project_repos"))return[];throw a}return o||[]}async function M(e,r,i){if(!r.name?.trim())throw Error("Project name is required");let o=i??t(),a=r.name.trim()||"project",n=await _(a,e,o),s={user_id:e,name:r.name.trim(),slug:n,description:r.description??null,workflow_id:r.workflow_id??null},{data:d,error:l}=await o.from("projects").insert(s).select("*").single();if(l)throw l;let c=await C(d.id,r.repos??[],o);return{...d,repos:c}}async function K(e,r,i,o){let a=o??t(),n=N.test(e),s=e;if(!n){let t=await T(e,r);if(!t)return null;s=t.id}let d={};if(void 0!==i.name){let e=i.name?.trim();if(!e)throw Error("Project name cannot be empty");d.name=e}if(void 0!==i.slug){let e=i.slug?.trim();e&&(d.slug=e)}if(void 0!==i.description&&(d.description=i.description),void 0!==i.metadata&&(d.metadata=i.metadata),void 0!==i.ci_cd_info&&(d.ci_cd_info=i.ci_cd_info),void 0!==i.workflow_id&&(d.workflow_id=i.workflow_id),Object.keys(d).length){let{error:e}=await a.from("projects").update(d).eq("id",s).eq("user_id",r);if(e)throw e}if(i.repos){let{data:e,error:t}=await a.from("project_repos").select("*").eq("project_id",s);if(t&&!u(t,"project_repos"))throw t;let r=e||[],o=new Set(r.map(e=>e.id)),n=new Set(i.repos.map(e=>e.id).filter(e=>!!e));for(let e of r){if(n.has(e.id))continue;let{error:t}=await a.from("project_repos").delete().eq("id",e.id).eq("project_id",s);if(t&&!u(t,"project_repos"))throw t}for(let e of i.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&&!u(r,"project_repos"))throw r;continue}let{error:r}=await a.from("project_repos").insert({...e.id?{id:e.id}:{},...t});if(r&&!u(r,"project_repos"))throw r}}return O(s,r)}async function F(e,r,i){let o=i??t(),{error:a}=await o.from("projects").update({archived_at:new Date().toISOString()}).eq("id",e).eq("user_id",r);if(a)throw a}async function L(e,r,i){let o=i??t(),a=await O(e,r);if(!a)throw Error("Project not found");let{data:n,error:s}=await o.from("tasks").select("id, project").eq("user_id",r).is("project_id",null);if(s)throw s;let d=String(a.slug||"").trim().toLowerCase(),l=(n||[]).filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t||t===d}).map(e=>e.id);if(!l.length)return{updatedCount:0,taskIds:[]};let{error:c}=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",l);if(c)throw c;return{updatedCount:l.length,taskIds:l}}let B="00000000-0000-0000-0000-000000000001",W=[{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"}],U=new Map(W.map(e=>[e.id,e]));async function J(e){let r=t(),{error:i}=await r.from("workflows").upsert({id:B,user_id:e||"00000000-0000-0000-0000-000000000000",name:"Default Workflow",definition:{}},{onConflict:"id"});if(i)throw i;let{error:o}=await r.from("workflow_nodes").upsert(W.map(e=>({...e,workflow_id:B,metadata:{}})),{onConflict:"id"});if(o)throw o;let{error:a}=await r.from("workflow_transitions").upsert([{workflow_id:B,from_node_id:"00000000-0000-0000-0001-000000000001",to_node_id:"00000000-0000-0000-0001-000000000002",condition:"done",priority:0,metadata:{}},{workflow_id:B,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 V(e){let r=t(),{data:i,error:o}=await r.from("workflows").select("*").or(`user_id.eq.${e},user_id.eq.00000000-0000-0000-0000-000000000000`).order("created_at",{ascending:!1});if(o){if(u(o,"workflows"))return[];throw o}return i||[]}async function G(e,r){let i=t().from("workflows").select("*").eq("id",e),{data:o,error:a}=await i.maybeSingle();if(a){if(u(a,"workflows"))return null;throw a}return o}async function z(e,r,i){let o=t(),a={updated_at:new Date().toISOString()};void 0!==i.definition&&(a.definition=i.definition),void 0!==i.name&&(a.name=i.name),void 0!==i.description&&(a.description=i.description);let{data:n,error:s}=await o.from("workflows").update(a).eq("id",e).select().single();if(s)throw s;return n}async function H(e){let r=t(),{data:i,error:o}=await r.from("workflow_nodes").select("*").eq("workflow_id",e).order("position",{ascending:!0});if(o){if(u(o,"workflow_nodes"))return[];throw o}return i||[]}async function Q(e,r,i){let o=t();if(e===B&&await J(r),!await G(e,r))throw Error("Workflow not found");if(e===B){let t=i.map(t=>{let r=U.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 H(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 o.from("workflow_nodes").update(r).eq("workflow_id",e).eq("id",t.id);if(i)throw i})),H(e)}async function X(e,r){let i=t(),{data:o,error:a}=await i.from("workflow_nodes").select("*").eq("workflow_id",e).eq("name",r).maybeSingle();if(a){if(u(a,"workflow_nodes"))return null;throw a}return o}async function Y(e){let r=t(),{data:i,error:o}=await r.from("workflow_transitions").select("*").eq("workflow_id",e).order("priority",{ascending:!0});if(o){if(u(o,"workflow_transitions"))return[];throw o}return i||[]}async function Z(e,r){let i=t(),{data:o,error:a}=await i.from("workflow_transitions").select("*").eq("workflow_id",e).eq("from_node_id",r).order("priority",{ascending:!0});if(a){if(u(a,"workflow_transitions"))return[];throw a}return o||[]}async function ee(e,t){let r=await G(e,t);if(!r)return null;let[i,o]=await Promise.all([H(e),Y(e)]);return{...r,nodes:i,transitions:o}}async function et(e,r={}){let i=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,n=a?null:void 0===r.tail?o:Number(r.tail),s=null!==n&&Number.isFinite(n)&&n>0,d=i.from("task_logs").select("*").eq("task_id",e);r.nodeId&&(d=d.eq("node_id",r.nodeId)),d=a?d.gt("created_at",a).order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(o):s?d.order("created_at",{ascending:!1}).order("id",{ascending:!1}).limit(o):d.order("created_at",{ascending:!0}).order("id",{ascending:!0}).limit(o);let{data:l,error:c}=await d;if(c)throw c;let u=l||[];return a?u:s?u.slice().reverse():u}async function er(e,r,i,o){let a=t(),{data:n,error:s}=await a.from("task_logs").insert({task_id:e,content:r,log_type:i,...o?{node_id:o}:{}}).select().single();if(s)throw s;return n}function ei(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=t(),i={task_id:e.taskId,stage:e.stage,provider:e.provider??null,model:e.model??null,input_tokens:ei(e.inputTokens),output_tokens:ei(e.outputTokens),estimated_cost:eo(e.estimatedCost)},{data:o,error:a}=await r.from("task_costs").insert(i).select().single();if(a)throw a;return o}async function en(e){let r=t(),{data:i,error:o}=await r.from("task_costs").select("*").eq("task_id",e).order("created_at",{ascending:!0});if(o)throw o;return i||[]}function es(e){let t={},r=0,i=0,o=0;for(let a of e){let e=a.stage||"unknown",n=ei(a.input_tokens),s=ei(a.output_tokens),d=eo(a.estimated_cost??0);r+=n,i+=s,o+=d;let l=t[e]||{stage:e,input_tokens:0,output_tokens:0,estimated_cost:0,entries:0};l.input_tokens+=n,l.output_tokens+=s,l.estimated_cost+=d,l.entries+=1,t[e]=l}return{total_input_tokens:r,total_output_tokens:i,total_cost:o,per_stage:Object.values(t).sort((e,t)=>e.stage.localeCompare(t.stage))}}async function ed(e){return es(await en(e))}async function el(e){let r=t(),{data:i,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 i||[]}async function ec(e,r,i,o){let a=t(),{data:n,error:s}=await a.from("task_comments").insert({task_id:e,content:r,author_type:i,author_id:o??null}).select().single();if(s)throw s;return n}async function eu(e,r){let i=t(),{data:o,error:a}=await i.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:n}=await i.from("task_comments").update({deleted_at:new Date().toISOString()}).eq("id",e).is("deleted_at",null);if(n)throw n}async function ep(e,r,i){if("task"!==e)return c.vaultStore.getLearnings(e,r);let o=t().from("learnings").select("*").eq("scope",e).order("created_at",{ascending:!1});r&&(o=o.eq("scope_id",r)),i&&(o=o.eq("user_id",i));let{data:a,error:n}=await o;if(n)throw n;return a||[]}async function ef(e,r,i,o){if("task"!==e)return c.vaultStore.addLearning(e,r,i);let a=t(),{data:n,error:s}=await a.from("learnings").insert({scope:e,scope_id:i,content:r,user_id:o}).select().single();if(s)throw s;return n}async function eg(e,r){if("global-playbook"===e)return void c.vaultStore.deleteLearning(e,"global");let i=await O(e,r);if(i)return void c.vaultStore.deleteLearning(e,"project",i.id);let o=t().from("learnings").delete().eq("id",e);r&&(o=o.eq("user_id",r));let{error:a}=await o;if(a)throw a}async function em(e,r){let i=t().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:o,error:a}=await i;if(a)throw a;return o||[]}async function e_(e,r,i){let o=t();if(r){let{data:t}=await o.from("stage_prompts").select("*").eq("workflow_id",i).eq("stage",e).eq("user_id",r).single();if(t)return t}let{data:a}=await o.from("stage_prompts").select("*").eq("workflow_id",i).eq("stage",e).eq("is_default",!0).single();return a||null}async function eh(e,r,i=[],o,a,n){let s=t(),d={stage:e,prompt:r,outputs:i,user_id:o,is_default:!o,workflow_id:n};a&&(void 0!==a.swarm&&(d.swarm=a.swarm),void 0!==a.provider&&(d.provider=a.provider),void 0!==a.model&&(d.model=a.model),void 0!==a.swarm_models&&(d.swarm_models=a.swarm_models));let{data:l,error:c}=await s.from("stage_prompts").upsert(d,{onConflict:o?"workflow_id,stage,user_id":"workflow_id,stage,is_default"}).select().single();if(c)throw c;return l}async function ey(e,r){let i=t().from("stage_prompts").delete().eq("id",e);r&&(i=i.eq("user_id",r));let{error:o}=await i;if(o)throw o}async function ew(e){let r=t(),{data:i,error:o}=await r.from("agents").select("*").eq("user_id",e).order("created_at",{ascending:!1});if(o){if(u(o,"agents"))return[];throw o}return i||[]}async function ej(e,r){let i=t(),{data:o,error:a}=await i.from("agents").select("*").eq("id",e).eq("user_id",r).maybeSingle();if(a){if("PGRST116"===a.code||u(a,"agents"))return null;throw a}return o}async function ek(e){let r=t(),{data:i,error:o}=await r.from("agent_skills").select("*").eq("agent_id",e).order("created_at",{ascending:!0});if(o){if(u(o,"agent_skills"))return[];throw o}return i||[]}async function ev(e,r){let i=t(),o=new Map;for(let t of r){let r=t.file.trim();r&&o.set(r,{agent_id:e,file:r,condition:t.condition?.trim()||null})}let a=await ek(e);for(let t of a)if(!o.has(t.file)){let{error:r}=await i.from("agent_skills").delete().eq("agent_id",e).eq("file",t.file);if(r&&!u(r,"agent_skills"))throw r}for(let t of o.values()){let r=a.find(e=>e.file===t.file);if(!r){let{error:e}=await i.from("agent_skills").insert(t);if(e&&!u(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&&!u(r,"agent_skills"))throw r}}return ek(e)}async function eb(e,r){let i=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.role&&(o.role=r.role),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:n}=await i.from("agents").insert(o).select().single();if(n){if(u(n,"agents"))throw Error("Agents table does not exist");throw n}return a}async function eS(e,r,i){let o=t(),a={updated_at:new Date().toISOString()};if(void 0!==i.name&&(a.name=i.name),void 0!==i.role&&(a.role=i.role),void 0!==i.style&&(a.style=i.style),void 0!==i.description&&(a.description=i.description),void 0!==i.voice&&(a.voice=i.voice),void 0!==i.seed&&(a.seed=i.seed),void 0!==i.model&&(a.model=i.model),void 0!==i.provider&&(a.provider=i.provider),void 0!==i.color&&(a.color=i.color),1===Object.keys(a).length)return ej(e,r);let{data:n,error:s}=await o.from("agents").update(a).eq("id",e).eq("user_id",r).select().single();if(s){if("PGRST116"===s.code||u(s,"agents"))return null;throw s}return n}async function eP(e,r){let i=t(),{error:o}=await i.from("agents").delete().eq("id",e).eq("user_id",r);if(o&&!u(o,"agents"))throw o}async function eD(e){let r=t(),{data:i,error:o}=await r.from("project_agents").select("*").eq("project_id",e).order("routing_order",{ascending:!0});if(o){if(u(o,"project_agents"))return[];throw o}return i||[]}async function eA(e,r,i){let o=t();if(void 0===i){let{data:t}=await o.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:a,error:n}=await o.from("project_agents").upsert({project_id:e,agent_id:r,routing_order:i}).select().single();if(n)throw n;return a}async function eq(e,r){let i=t(),{error:o}=await i.from("project_agents").delete().eq("project_id",e).eq("agent_id",r);if(o)throw o}async function eI(e,r){let i=t();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 eD(e)}async function eR(e){let r=t(),{data:i,error:o}=await r.from("teams").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(o){if(u(o,"teams"))return[];throw o}return(i||[]).map(e=>({...e,metadata:"string"==typeof e.metadata?JSON.parse(e.metadata):e.metadata||{}}))}async function e$(e){let r=t(),{data:i,error:o}=await r.from("teams").select("*").eq("id",e).limit(1).single();if(o){if("PGRST116"===o.code||u(o,"teams"))return null;throw o}return i?{...i,metadata:"string"==typeof i.metadata?JSON.parse(i.metadata):i.metadata||{}}:null}async function eE(e,r,i,o){let a=t(),n=(0,l.randomUUID)(),s=new Date().toISOString(),{data:d,error:c}=await a.from("teams").insert({id:n,project_id:e,name:r,template_id:i||null,metadata:JSON.stringify(o||{}),created_at:s,updated_at:s}).select().single();if(c)throw c;return{...d,metadata:"string"==typeof d.metadata?JSON.parse(d.metadata):d.metadata||{}}}async function eT(e,r){let i=t(),o={};void 0!==r.name&&(o.name=r.name),void 0!==r.metadata&&(o.metadata=JSON.stringify(r.metadata));let{data:a,error:n}=await i.from("teams").update(o).eq("id",e).select().single();if(n){if("PGRST116"===n.code)return null;throw n}return{...a,metadata:"string"==typeof a.metadata?JSON.parse(a.metadata):a.metadata||{}}}async function ex(e){let r=t(),{error:i}=await r.from("teams").delete().eq("id",e);if(i)throw i}async function eN(e){let r=t(),{data:i,error:o}=await r.from("team_agents").select("*").eq("team_id",e).order("routing_order",{ascending:!0});if(o){if(u(o,"team_agents"))return[];throw o}return i||[]}async function eO(e,r,i,o){let a=t();if(void 0===o){let{data:t}=await a.from("team_agents").select("routing_order").eq("team_id",e).order("routing_order",{ascending:!1}).limit(1);o=(t?.[0]?.routing_order??-1)+1}let{data:n,error:s}=await a.from("team_agents").upsert({team_id:e,agent_id:r,role_key:i,routing_order:o}).select().single();if(s)throw s;return n}async function eC(e,r){let i=t(),{error:o}=await i.from("team_agents").delete().eq("team_id",e).eq("agent_id",r);if(o)throw o}async function eM(e){let r=t(),{data:i,error:o}=await r.from("project_skills").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(o){if(u(o,"project_skills"))return[];throw o}return i||[]}async function eK(e,r,i){let o=t(),{data:a,error:n}=await o.from("project_skills").insert({project_id:e,file:r,condition:i??null}).select().single();if(n)throw n;return a}async function eF(e){let r=t(),{error:i}=await r.from("project_skills").delete().eq("id",e);if(i)throw i}async function eL(e){let r=t(),{data:i,error:o}=await r.from("project_variables").select("*").eq("project_id",e);if(o){if(u(o,"project_variables"))return[];throw o}return i||[]}async function eB(e,r,i){let o=t(),{data:a,error:n}=await o.from("project_variables").upsert({project_id:e,key:r,value:i}).select().single();if(n)throw n;return a}async function eW(e,r){let i=t(),{error:o}=await i.from("project_variables").delete().eq("project_id",e).eq("key",r);if(o)throw o}async function eU(e,t){return c.vaultStore.getProjectMemory(e)}async function eJ(e,t,r,i="human"){return c.vaultStore.addProjectMemory(e,t,r,i)}async function eV(e){c.vaultStore.deleteProjectMemory(e)}async function eG(e){let r=t(),{data:i,error:o}=await r.from("project_threads").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(o){if(u(o,"project_threads"))return[];throw o}return i||[]}async function ez(e,r){let i=t(),{error:o}=await i.from("project_threads").upsert({project_id:e,thread_id:r},{onConflict:"project_id,thread_id",ignoreDuplicates:!0});if(o)throw o;let{data:a,error:n}=await i.from("project_threads").select("*").eq("project_id",e).eq("thread_id",r).single();if(n)throw n;return a}async function eH(e,r){let i=t(),{error:o}=await i.from("project_threads").delete().eq("project_id",e).eq("thread_id",r);if(o)throw o}async function eQ(e){let r=t(),{data:i,error:o}=await r.from("project_threads").select("project_id").eq("thread_id",e).maybeSingle();return o?(u(o,"project_threads"),null):i?.project_id??null}function eX(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}function eY(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}async function eZ(e){return(await eL(e)).map(e=>({key:e.key,value:e.value,source:"project"}))}async function e0(e,t,r,i){let o=await eM(t),a=await eU(t),n=await eZ(t);return{skills:eX(r,o),memory:eY(i,a),variables:n}}e.s(["DEFAULT_WORKFLOW_ID",0,"00000000-0000-0000-0000-000000000001","addLearning",0,ef,"addProjectAgent",0,eA,"addProjectMemory",0,eJ,"addProjectSkill",0,eK,"addProjectThread",0,ez,"addTaskComment",0,ec,"addTaskCostEntry",0,ea,"addTaskLog",0,er,"addTeamAgent",0,eO,"appendRunToIndex",0,I,"assignOrphanTasksToProject",0,L,"buildExecutionProvenance",0,e0,"createAgent",0,eb,"createProject",0,M,"createTask",0,A,"createTeam",0,eE,"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",0,eP,"deleteLearning",0,eg,"deleteProject",0,F,"deleteProjectMemory",0,eV,"deleteProjectVariable",0,eW,"deleteStagePrompt",0,ey,"deleteTask",0,R,"deleteTaskComment",0,eu,"deleteTeam",0,ex,"ensureNoCircularDependency",0,j,"extractTitle",0,k,"getAgent",0,ej,"getAgentSkills",0,ek,"getAgents",0,ew,"getDefaultWorkflowId",0,function(){return B},"getLearnings",0,ep,"getNextQueuedTask",0,$,"getProjectAgents",0,eD,"getProjectBySlug",0,T,"getProjectForThread",0,eQ,"getProjectMemory",0,eU,"getProjectRepos",0,x,"getProjectSkills",0,eM,"getProjectThreads",0,eG,"getProjectVariables",0,eL,"getProjectWithRepos",0,O,"getProjects",0,E,"getStagePrompt",0,e_,"getStagePrompts",0,em,"getTask",0,P,"getTaskBySlug",0,D,"getTaskComments",0,el,"getTaskCostEntries",0,en,"getTaskCostSummary",0,ed,"getTaskLogs",0,et,"getTasks",0,S,"getTeam",0,e$,"getTeamAgents",0,eN,"getTeams",0,eR,"getUserSettings",0,p,"getWorkflow",0,G,"getWorkflowNodeByName",0,X,"getWorkflowNodes",0,H,"getWorkflowTransitions",0,Y,"getWorkflowTransitionsFromNode",0,Z,"getWorkflowWithGraph",0,ee,"getWorkflows",0,V,"parseFrontmatter",0,w,"removeProjectAgent",0,eq,"removeProjectSkill",0,eF,"removeProjectThread",0,eH,"removeTeamAgent",0,eC,"reorderProjectAgents",0,eI,"resolveMemory",0,eY,"resolveSkills",0,eX,"resolveTaskConfig",0,function(t,r,i){let o=e=>"string"!=typeof e?null:e.trim()||null,a=null;try{let t=e.r(522734),r=e.r(814747).join(process.env.HOME||"",".agx","config.json"),i=JSON.parse(t.readFileSync(r,"utf-8"));a=o(i?.defaultProvider)||null}catch{}let n=o(i?.default_provider)||a||"claude",s=o(t.provider)||o(r?.provider)||n,d=o(i?.models?.[s])||null,l=o(t.model)||o(r?.model)||d||null;return{provider:s,model:l,swarm:t.swarm??r?.swarm??!1,swarm_models:t.swarm_models?.length?t.swarm_models:r?.swarm_models||[]}},"resolveVariables",0,eZ,"setAgentSkills",0,ev,"setProjectVariable",0,eB,"summarizeTaskCosts",0,es,"updateAgent",0,eS,"updateProject",0,K,"updateTask",0,q,"updateTeam",0,eT,"updateWorkflow",0,z,"updateWorkflowNodes",0,Q,"upsertStagePrompt",0,eh,"upsertUserSettings",0,f],623775)}];
|
|
33
33
|
|
|
34
34
|
//# sourceMappingURL=apps_local_lib_01pvj2g._.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
module.exports=[133439,121239,e=>{"use strict";var t=e.i(623775),r=e.i(902157),l=e.i(633211),i=e.i(660526),n=e.i(750227),o=e.i(874533),a=e.i(796283);a.SKILLS_CACHE_TTL_MS,a.SKILL_DETAIL_CACHE_TTL_MS;let s=[{rank:0,name:"Research",skillId:"research",repo:"mvanhorn/last30days-skill",installs:0,catalogSource:"github",github:{owner:"mvanhorn",repo:"last30days-skill",ref:"main",path:"."},detail:{title:"Research",description:"Multi-source recent research across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, and the web.",whenToUse:["Use when you need recency-heavy research instead of evergreen web answers.","Use when you want to compare what different communities are saying across multiple platforms.","Use when you need a reusable research workflow with citations, summaries, and source planning.","Expect additional setup for keys and platform access, especially for ScrapeCreators-backed sources."],weeklyInstalls:"",firstSeen:"",installCommand:"GitHub import: mvanhorn/last30days-skill -> .agents/skills/research"}}];function d(e,t){return`${e.trim().toLowerCase()}::${t.trim().toLowerCase()}`}function c(e,t){let r=d(e,t);return s.find(e=>d(e.repo,e.skillId)===r)??null}function u(e){return e.replace(/\s+/g," ").trim()}function p(e){return"claude"===e?"claude-code":"codex"===e?"codex":"gemini"===e?"gemini-cli":"zai"===e?"claude-code":null}function m(e){return n.default.join(process.cwd(),".agents","skills",e,"SKILL.md")}function f(e){(0,l.getSQLiteDb)().prepare(`INSERT INTO skill_learning_history
|
|
2
2
|
(provider, repo, skill_id, skill_label, status, command, error, run_started_at, run_completed_at, created_at, updated_at)
|
|
3
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(e.provider,e.repo,e.skill_id,e.skill_label,e.status,e.command,e.error,e.run_started_at,e.run_completed_at,e.created_at,e.updated_at)}function k(e){let t=Date.now(),r=[];for(let l of e.providers){let i=p(l)??"unknown";r.push({provider:l,ok:e.ok,agent:i}),f({provider:l,repo:e.repo,skill_id:e.skillId,skill_label:e.skillLabel,status:e.ok?"succeeded":"failed",command:e.command,error:e.error,run_started_at:e.startedAt,run_completed_at:t,created_at:e.startedAt,updated_at:t})}return r}async function g(e){return(0,l.getSQLiteDb)().prepare("SELECT agent_id, repo, skill_id, condition, created_at FROM agent_skill_bindings WHERE agent_id = ? ORDER BY created_at ASC").all(e).map(e=>({repo:e.repo,skillId:e.skill_id,...e.condition?{condition:e.condition}:{}}))}function _(e){return e.toLowerCase().replace(/[^a-z0-9]+/g," ").replace(/\s+/g," ").trim()}function h(e){let t=new Set,r=[];for(let l of _(e).split(" "))l.length<4||t.has(l)||(t.add(l),r.push(l));return r}e.s(["getAgentSkillBindings",0,g,"resolveBoundSkillFiles",0,function(e,t,l){let s=[];for(let d of e){if(!function(e,t){let r=_(t);if(!r)return!1;if((e.condition?e.condition.split(/\n|,|;|\|/g).map(e=>_(e)).filter(e=>e.length>=4):[]).some(e=>r.includes(e)))return!0;let l=e.repo.split("/").filter(Boolean).pop()??e.repo;return[...h(e.skillId),...h(l)].some(e=>r.includes(e))}(d,t))continue;let e=m(d.skillId);(r.default.existsSync(e)||function(e){let t=Array.from(new Set(e.providers.map(e=>"claude"===e||"codex"===e||"gemini"===e||"zai"===e?e:null).filter(Boolean)));if(0===t.length)return{ok:!1,command:"",stdout:"",stderr:"",results:[],error:"No supported providers selected"};let l=c(e.repo,e.skillId);if(l)return function(e,t){let l=Date.now(),s=`https://github.com/${e.github.owner}/${e.github.repo}.git`,d=`git clone --depth 1 --branch ${e.github.ref} ${s} <tmp>/repo`,c="",p="",f="";try{let g=n.default.dirname(m(e.skillId));if(r.default.existsSync(g)){let r=`Destination already exists: ${g}`,i=k({providers:t,repo:e.repo,skillId:e.skillId,skillLabel:e.name,ok:!1,command:d,error:r,startedAt:l});return{ok:!1,command:d,stdout:c,stderr:p,results:i,error:r}}f=r.default.mkdtempSync(n.default.join(i.default.tmpdir(),"agx-skill-"));let _=n.default.join(f,"repo"),h=(0,o.spawnSync)("git",["clone","--depth","1","--branch",e.github.ref,s,_],{cwd:process.cwd(),encoding:"utf8",timeout:a.SKILL_FETCH_TIMEOUT_MS,env:{...process.env,FORCE_COLOR:"0"}});if(c=String(h.stdout??""),p=String(h.stderr??""),0!==h.status){let r=u(p||c)||"Git clone failed",i=k({providers:t,repo:e.repo,skillId:e.skillId,skillLabel:e.name,ok:!1,command:d,error:r,startedAt:l});return{ok:!1,command:d,stdout:c,stderr:p,results:i,error:r}}let S=n.default.resolve(_),I=n.default.resolve(_,e.github.path||".");if(I!==S&&!I.startsWith(`${S}${n.default.sep}`)){let r="GitHub skill path resolved outside the cloned repository",i=k({providers:t,repo:e.repo,skillId:e.skillId,skillLabel:e.name,ok:!1,command:d,error:r,startedAt:l});return{ok:!1,command:d,stdout:c,stderr:p,results:i,error:r}}if(!r.default.existsSync(I)||!r.default.statSync(I).isDirectory()){let r=`Skill directory not found in repository: ${e.github.path||"."}`,i=k({providers:t,repo:e.repo,skillId:e.skillId,skillLabel:e.name,ok:!1,command:d,error:r,startedAt:l});return{ok:!1,command:d,stdout:c,stderr:p,results:i,error:r}}if(!r.default.existsSync(n.default.join(I,"SKILL.md"))){let r=`SKILL.md not found in repository path: ${e.github.path||"."}`,i=k({providers:t,repo:e.repo,skillId:e.skillId,skillLabel:e.name,ok:!1,command:d,error:r,startedAt:l});return{ok:!1,command:d,stdout:c,stderr:p,results:i,error:r}}r.default.mkdirSync(n.default.dirname(g),{recursive:!0}),r.default.cpSync(I,g,{recursive:!0,force:!1,errorOnExist:!0,filter:e=>".git"!==n.default.basename(e)});let w=k({providers:t,repo:e.repo,skillId:e.skillId,skillLabel:e.name,ok:!0,command:d,error:null,startedAt:l});return{ok:!0,command:d,stdout:c||`Installed ${e.name} from ${s}`,stderr:p,results:w}}catch(n){let r=u(n instanceof Error?n.message:String(n))||"Installation failed",i=k({providers:t,repo:e.repo,skillId:e.skillId,skillLabel:e.name,ok:!1,command:d,error:r,startedAt:l});return{ok:!1,command:d,stdout:c,stderr:p,results:i,error:r}}finally{f&&r.default.existsSync(f)&&r.default.rmSync(f,{recursive:!0,force:!0})}}(l,t);let s=Date.now(),d=[],g="",_="",h="",S=c(e.repo,e.skillId)?.name??e.skillId,I=new Map;for(let e of t){let t=p(e);if(!t)continue;let r=I.get(t)??[];r.push(e),I.set(t,r)}for(let[t,r]of I.entries()){let l=["--yes","skills@latest","add",e.repo,"--skill",e.skillId,"--agent",t,"--yes"];h=`npx ${l.join(" ")}`;let i=(0,o.spawnSync)("npx",l,{cwd:process.cwd(),encoding:"utf8",timeout:a.SKILL_FETCH_TIMEOUT_MS,env:{...process.env,FORCE_COLOR:"0"}});g=String(i.stdout??""),_=String(i.stderr??"");let n=0===i.status;for(let l of r)d.push({provider:l,ok:n,agent:t}),f({provider:l,repo:e.repo,skill_id:e.skillId,skill_label:S,status:n?"succeeded":"failed",command:h,error:n?null:u(_||g).slice(0,1e3),run_started_at:s,run_completed_at:Date.now(),created_at:s,updated_at:Date.now()});if(!n)return{ok:!1,command:h,stdout:g,stderr:_,results:d,error:u(_||g)||"Installation failed"}}return{ok:!0,command:h,stdout:g,stderr:_,results:d}}({repo:d.repo,skillId:d.skillId,providers:[l]}).ok)&&s.push({file:e,...d.condition?{condition:d.condition}:{}})}return s}],121239);var S=e.i(864075);async function I(){let e=await (0,t.getAgents)(S.LOCAL_USER.id),r=new Map,l=new Map;return await Promise.all(e.map(async e=>{r.set(e.id,await (0,t.getAgentSkills)(e.id)),l.set(e.id,await g(e.id))})),e.map(e=>({id:e.id,name:e.name,...e.
|
|
3
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(e.provider,e.repo,e.skill_id,e.skill_label,e.status,e.command,e.error,e.run_started_at,e.run_completed_at,e.created_at,e.updated_at)}function k(e){let t=Date.now(),r=[];for(let l of e.providers){let i=p(l)??"unknown";r.push({provider:l,ok:e.ok,agent:i}),f({provider:l,repo:e.repo,skill_id:e.skillId,skill_label:e.skillLabel,status:e.ok?"succeeded":"failed",command:e.command,error:e.error,run_started_at:e.startedAt,run_completed_at:t,created_at:e.startedAt,updated_at:t})}return r}async function g(e){return(0,l.getSQLiteDb)().prepare("SELECT agent_id, repo, skill_id, condition, created_at FROM agent_skill_bindings WHERE agent_id = ? ORDER BY created_at ASC").all(e).map(e=>({repo:e.repo,skillId:e.skill_id,...e.condition?{condition:e.condition}:{}}))}function _(e){return e.toLowerCase().replace(/[^a-z0-9]+/g," ").replace(/\s+/g," ").trim()}function h(e){let t=new Set,r=[];for(let l of _(e).split(" "))l.length<4||t.has(l)||(t.add(l),r.push(l));return r}e.s(["getAgentSkillBindings",0,g,"resolveBoundSkillFiles",0,function(e,t,l){let s=[];for(let d of e){if(!function(e,t){let r=_(t);if(!r)return!1;if((e.condition?e.condition.split(/\n|,|;|\|/g).map(e=>_(e)).filter(e=>e.length>=4):[]).some(e=>r.includes(e)))return!0;let l=e.repo.split("/").filter(Boolean).pop()??e.repo;return[...h(e.skillId),...h(l)].some(e=>r.includes(e))}(d,t))continue;let e=m(d.skillId);(r.default.existsSync(e)||function(e){let t=Array.from(new Set(e.providers.map(e=>"claude"===e||"codex"===e||"gemini"===e||"zai"===e?e:null).filter(Boolean)));if(0===t.length)return{ok:!1,command:"",stdout:"",stderr:"",results:[],error:"No supported providers selected"};let l=c(e.repo,e.skillId);if(l)return function(e,t){let l=Date.now(),s=`https://github.com/${e.github.owner}/${e.github.repo}.git`,d=`git clone --depth 1 --branch ${e.github.ref} ${s} <tmp>/repo`,c="",p="",f="";try{let g=n.default.dirname(m(e.skillId));if(r.default.existsSync(g)){let r=`Destination already exists: ${g}`,i=k({providers:t,repo:e.repo,skillId:e.skillId,skillLabel:e.name,ok:!1,command:d,error:r,startedAt:l});return{ok:!1,command:d,stdout:c,stderr:p,results:i,error:r}}f=r.default.mkdtempSync(n.default.join(i.default.tmpdir(),"agx-skill-"));let _=n.default.join(f,"repo"),h=(0,o.spawnSync)("git",["clone","--depth","1","--branch",e.github.ref,s,_],{cwd:process.cwd(),encoding:"utf8",timeout:a.SKILL_FETCH_TIMEOUT_MS,env:{...process.env,FORCE_COLOR:"0"}});if(c=String(h.stdout??""),p=String(h.stderr??""),0!==h.status){let r=u(p||c)||"Git clone failed",i=k({providers:t,repo:e.repo,skillId:e.skillId,skillLabel:e.name,ok:!1,command:d,error:r,startedAt:l});return{ok:!1,command:d,stdout:c,stderr:p,results:i,error:r}}let S=n.default.resolve(_),I=n.default.resolve(_,e.github.path||".");if(I!==S&&!I.startsWith(`${S}${n.default.sep}`)){let r="GitHub skill path resolved outside the cloned repository",i=k({providers:t,repo:e.repo,skillId:e.skillId,skillLabel:e.name,ok:!1,command:d,error:r,startedAt:l});return{ok:!1,command:d,stdout:c,stderr:p,results:i,error:r}}if(!r.default.existsSync(I)||!r.default.statSync(I).isDirectory()){let r=`Skill directory not found in repository: ${e.github.path||"."}`,i=k({providers:t,repo:e.repo,skillId:e.skillId,skillLabel:e.name,ok:!1,command:d,error:r,startedAt:l});return{ok:!1,command:d,stdout:c,stderr:p,results:i,error:r}}if(!r.default.existsSync(n.default.join(I,"SKILL.md"))){let r=`SKILL.md not found in repository path: ${e.github.path||"."}`,i=k({providers:t,repo:e.repo,skillId:e.skillId,skillLabel:e.name,ok:!1,command:d,error:r,startedAt:l});return{ok:!1,command:d,stdout:c,stderr:p,results:i,error:r}}r.default.mkdirSync(n.default.dirname(g),{recursive:!0}),r.default.cpSync(I,g,{recursive:!0,force:!1,errorOnExist:!0,filter:e=>".git"!==n.default.basename(e)});let w=k({providers:t,repo:e.repo,skillId:e.skillId,skillLabel:e.name,ok:!0,command:d,error:null,startedAt:l});return{ok:!0,command:d,stdout:c||`Installed ${e.name} from ${s}`,stderr:p,results:w}}catch(n){let r=u(n instanceof Error?n.message:String(n))||"Installation failed",i=k({providers:t,repo:e.repo,skillId:e.skillId,skillLabel:e.name,ok:!1,command:d,error:r,startedAt:l});return{ok:!1,command:d,stdout:c,stderr:p,results:i,error:r}}finally{f&&r.default.existsSync(f)&&r.default.rmSync(f,{recursive:!0,force:!0})}}(l,t);let s=Date.now(),d=[],g="",_="",h="",S=c(e.repo,e.skillId)?.name??e.skillId,I=new Map;for(let e of t){let t=p(e);if(!t)continue;let r=I.get(t)??[];r.push(e),I.set(t,r)}for(let[t,r]of I.entries()){let l=["--yes","skills@latest","add",e.repo,"--skill",e.skillId,"--agent",t,"--yes"];h=`npx ${l.join(" ")}`;let i=(0,o.spawnSync)("npx",l,{cwd:process.cwd(),encoding:"utf8",timeout:a.SKILL_FETCH_TIMEOUT_MS,env:{...process.env,FORCE_COLOR:"0"}});g=String(i.stdout??""),_=String(i.stderr??"");let n=0===i.status;for(let l of r)d.push({provider:l,ok:n,agent:t}),f({provider:l,repo:e.repo,skill_id:e.skillId,skill_label:S,status:n?"succeeded":"failed",command:h,error:n?null:u(_||g).slice(0,1e3),run_started_at:s,run_completed_at:Date.now(),created_at:s,updated_at:Date.now()});if(!n)return{ok:!1,command:h,stdout:g,stderr:_,results:d,error:u(_||g)||"Installation failed"}}return{ok:!0,command:h,stdout:g,stderr:_,results:d}}({repo:d.repo,skillId:d.skillId,providers:[l]}).ok)&&s.push({file:e,...d.condition?{condition:d.condition}:{}})}return s}],121239);var S=e.i(864075);async function I(){let e=await (0,t.getAgents)(S.LOCAL_USER.id),r=new Map,l=new Map;return await Promise.all(e.map(async e=>{r.set(e.id,await (0,t.getAgentSkills)(e.id)),l.set(e.id,await g(e.id))})),e.map(e=>({id:e.id,name:e.name,...e.role?{role:e.role}:{},provider:e.provider||"claude",model:e.model||null,color:e.color||"#6B7280",...e.description?{identity:e.description}:{},...e.voice?{voice:e.voice}:{},...e.seed?{seed:e.seed}:{},...r.get(e.id)?.length?{skills:r.get(e.id).map(e=>({file:e.file,condition:e.condition??""}))}:{},...l.get(e.id)?.length?{skillBindings:l.get(e.id)}:{}}))}e.s(["filterActiveParticipants",0,function(e,t){if(!Array.isArray(t))return e;let r=new Set,l=[];for(let e of t){if("string"!=typeof e)continue;let t=e.trim();!t||r.has(t)||(r.add(t),l.push(t))}let i=new Set(l),n=e.filter(e=>i.has(e.id));if(l.length>0&&0===n.length)return e;let o=new Map(l.map((e,t)=>[e,t]));return n.sort((e,t)=>(o.get(e.id)??Number.MAX_SAFE_INTEGER)-(o.get(t.id)??Number.MAX_SAFE_INTEGER))},"loadDbParticipants",0,I],133439)}];
|
|
4
4
|
|
|
5
5
|
//# sourceMappingURL=apps_local_lib_agent-participants_ts_0cq15u5._.js.map
|
package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_db_ts_0twf-w5._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[846888,108088,e=>{"use strict";var t=e.i(173426);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",0,s],108088);var d=e.i(254799),c=e.i(488877);function u(e,t){if(!e)return!1;let r="string"==typeof e.message?e.message:"";return"42P01"===e.code||"PGRST205"===e.code||r.includes(`relation "${t}" does not exist`)||r.includes(`Could not find the table 'agx.${t}'`)||r.includes(`Could not find the table 'public.${t}'`)}async function f(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("user_settings").select("*").eq("user_id",e).maybeSingle();if(n){if(u(n,"user_settings"))return null;throw n}return i||null}async function m(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 f(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 f(e);if(!c)throw Error("Failed to load user_settings after upsert");return{settings:c,updated:!0}}function p(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"task"}async function w(e,t){let r=p(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=`${p(e)}-${o}`.slice(0,48)}return`${p(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}async function g(e,t,r,i){let n=p(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=`${p(e)}-${s}`.slice(0,48)}return`${p(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}function _(e){return e??(0,t.createAdminDbClient)()}function y(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 k(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=y(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]=y(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=_(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){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 S(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 C(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),m=i?.projectId||("string"==typeof o.project_id?o.project_id:void 0),p="string"==typeof o.workflow_id?o.workflow_id:void 0,g="string"==typeof o.project?o.project:void 0;if(!g&&m){let e=await W(m);e?.slug&&(g=e.slug)}/^---\n/.test(e);let _="string"==typeof o.provider?o.provider:null,y="string"==typeof o.model?o.model:null,A="string"==typeof o.engine?o.engine:null,C="ai"===o.created_by?"ai":"user",D=k(o.depends_on),T=k(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:g||null,...void 0!==m?{project_id:m}:{},...void 0!==p?{workflow_id:p}:{},priority:o.priority,engine:A,provider:_,model:y,swarm:l,swarm_models:i?.swarmModels??null,depends_on:P.length?P:null,created_by:C,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 N=await S($.id,r)||$,x=r||N.user_id;if(x){let e=N.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(N.depends_on)?N.depends_on:[],project:N.project||null,projectId:N.project_id||null,workflowId:N.workflow_id||null,createdBy:N.created_by||null};s({taskId:N.id,userId:x,eventType:"task.created",title:N.title||null,slug:N.slug||null,stage:N.stage||null,status:N.status||null,timestamp:e,details:t})}return N}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"),m=Object.prototype.hasOwnProperty.call(a,"model"),p=Object.prototype.hasOwnProperty.call(a,"workflow_id"),w=Object.prototype.hasOwnProperty.call(a,"depends_on"),g=k(a.depends_on),_=k(n?.dependsOn),y=n?.dependsOn!==void 0||w,A=n?.dependsOn!==void 0?_:g,C={content:r,description:v(l),title:c,status:a.status,stage:a.stage,project:a.project,...void 0!==u?{project_id:u}:{},workflow_id:p?a.workflow_id:void 0,priority:a.priority,engine:a.engine,provider:f?a.provider:null,model:m?a.model:null,swarm:d,swarm_models:n?.swarmModels??void 0,...y?{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(C).forEach(e=>{void 0===C[e]&&delete C[e]}),y&&await b(e,A,o);let D=o.from("tasks").update({...C,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({...C}).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(C)),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}=C,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 S(e,i);if(!t)throw Error(`Task ${e} not found`);return t}await q(T,i);let O=await S(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,r=!1){let i=(0,t.createAdminDbClient)().from("projects").select("*, project_repos(*)");e&&(i=i.eq("user_id",e)),r||(i=i.is("archived_at",null));let{data:n,error:o}=await i;if(o){if(u(o,"projects"))return[];throw o}return(n||[]).map(e=>({...e,repos:e.project_repos??[]}))}async function N(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(u(o,"projects"))return null;throw o}return n||null}async function x(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_repos").select("*").eq("project_id",e);if(n){if(u(n,"project_repos"))return[];throw n}return i||[]}let E=/^[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=E.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(u(a.error,"projects"))return null;throw a.error}let l=a.data;if(!l)return null;let s=await x(l.id);return{...l,repos:s}}async function M(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(u(o,"project_repos"))return[];throw o}return n||[]}async function R(e,t,r){if(!t.name?.trim())throw Error("Project name is required");let i=_(r),n=t.name.trim()||"project",o=await g(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 M(l.id,t.repos??[],i);return{...l,repos:d}}async function F(e,t,r,i){let n=_(i),o=E.test(e),a=e;if(!o){let r=await N(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&&!u(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&&!u(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&&!u(r,"project_repos"))throw r;continue}let{error:r}=await n.from("project_repos").insert({...e.id?{id:e.id}:{},...t});if(r&&!u(r,"project_repos"))throw r}}return W(a,t)}async function L(e,t,r){let i=_(r),{error:n}=await i.from("projects").update({archived_at:new Date().toISOString()}).eq("id",e).eq("user_id",t);if(n)throw n}async function G(e,t,r){let i=_(r),n=await W(e,t);if(!n)throw Error("Project not found");let{data:o,error:a}=await i.from("tasks").select("id, project").eq("user_id",t).is("project_id",null);if(a)throw a;let l=String(n.slug||"").trim().toLowerCase(),s=(o||[]).filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t||t===l}).map(e=>e.id);if(!s.length)return{updatedCount:0,taskIds:[]};let{error:d}=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",s);if(d)throw d;return{updatedCount:s.length,taskIds:s}}let B="00000000-0000-0000-0000-000000000001",J=[{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"}],U=new Map(J.map(e=>[e.id,e]));async function V(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("workflows").upsert({id:B,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(J.map(e=>({...e,workflow_id:B,metadata:{}})),{onConflict:"id"});if(n)throw n;let{error:o}=await r.from("workflow_transitions").upsert([{workflow_id:B,from_node_id:"00000000-0000-0000-0001-000000000001",to_node_id:"00000000-0000-0000-0001-000000000002",condition:"done",priority:0,metadata:{}},{workflow_id:B,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 z(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(u(n,"workflows"))return[];throw n}return i||[]}async function K(e,r){let i=(0,t.createAdminDbClient)().from("workflows").select("*").eq("id",e),{data:n,error:o}=await i.maybeSingle();if(o){if(u(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(u(n,"workflow_nodes"))return[];throw n}return i||[]}async function X(e,r,i){let n=(0,t.createAdminDbClient)();if(e===B&&await V(r),!await K(e,r))throw Error("Workflow not found");if(e===B){let t=i.map(t=>{let r=U.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(u(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(u(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(u(o,"workflow_transitions"))return[];throw o}return n||[]}async function et(e,t){let r=await K(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||[]}function es(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))}}async function ed(e){return es(await el(e))}async function ec(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 eu(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 ef(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 em(e,r,i){if("task"!==e)return c.vaultStore.getLearnings(e,r);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){if("task"!==e)return c.vaultStore.addLearning(e,r,i);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 ew(e,r){if("global-playbook"===e)return void c.vaultStore.deleteLearning(e,"global");let i=await W(e,r);if(i)return void c.vaultStore.deleteLearning(e,"project",i.id);let n=(0,t.createAdminDbClient)().from("learnings").delete().eq("id",e);r&&(n=n.eq("user_id",r));let{error:o}=await n;if(o)throw o}async function eg(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 ey(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 eh(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(u(n,"agents"))return[];throw n}return i||[]}async function eb(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||u(o,"agents"))return null;throw o}return n}async function ej(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(u(n,"agent_skills"))return[];throw n}return i||[]}async function ev(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 ej(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&&!u(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&&!u(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&&!u(r,"agent_skills"))throw r}}return ej(e)}async function eq(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(u(a,"agents"))throw Error("Agents table does not exist");throw a}return o}async function eA(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 eb(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||u(l,"agents"))return null;throw l}return a}async function eS(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("agents").delete().eq("id",e).eq("user_id",r);if(n&&!u(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(u(n,"project_agents"))return[];throw n}return i||[]}async function eD(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 eT(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 eP(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 eO(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("teams").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(n){if(u(n,"teams"))return[];throw n}return(i||[]).map(e=>({...e,metadata:"string"==typeof e.metadata?JSON.parse(e.metadata):e.metadata||{}}))}async function e$(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("teams").select("*").eq("id",e).limit(1).single();if(n){if("PGRST116"===n.code||u(n,"teams"))return null;throw n}return i?{...i,metadata:"string"==typeof i.metadata?JSON.parse(i.metadata):i.metadata||{}}:null}async function eI(e,r,i,n){let o=(0,t.createAdminDbClient)(),a=(0,d.randomUUID)(),l=new Date().toISOString(),{data:s,error:c}=await o.from("teams").insert({id:a,project_id:e,name:r,template_id:i||null,metadata:JSON.stringify(n||{}),created_at:l,updated_at:l}).select().single();if(c)throw c;return{...s,metadata:"string"==typeof s.metadata?JSON.parse(s.metadata):s.metadata||{}}}async function eN(e,r){let i=(0,t.createAdminDbClient)(),n={};void 0!==r.name&&(n.name=r.name),void 0!==r.metadata&&(n.metadata=JSON.stringify(r.metadata));let{data:o,error:a}=await i.from("teams").update(n).eq("id",e).select().single();if(a){if("PGRST116"===a.code)return null;throw a}return{...o,metadata:"string"==typeof o.metadata?JSON.parse(o.metadata):o.metadata||{}}}async function ex(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("teams").delete().eq("id",e);if(i)throw i}async function eE(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("team_agents").select("*").eq("team_id",e).order("routing_order",{ascending:!0});if(n){if(u(n,"team_agents"))return[];throw n}return i||[]}async function eW(e,r,i,n){let o=(0,t.createAdminDbClient)();if(void 0===n){let{data:t}=await o.from("team_agents").select("routing_order").eq("team_id",e).order("routing_order",{ascending:!1}).limit(1);n=(t?.[0]?.routing_order??-1)+1}let{data:a,error:l}=await o.from("team_agents").upsert({team_id:e,agent_id:r,role_key:i,routing_order:n}).select().single();if(l)throw l;return a}async function eM(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("team_agents").delete().eq("team_id",e).eq("agent_id",r);if(n)throw n}async function eR(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(u(n,"project_skills"))return[];throw n}return i||[]}async function eF(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 eL(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("project_skills").delete().eq("id",e);if(i)throw i}async function eG(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_variables").select("*").eq("project_id",e);if(n){if(u(n,"project_variables"))return[];throw n}return i||[]}async function eB(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 eJ(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 eU(e,t){return c.vaultStore.getProjectMemory(e)}async function eV(e,t,r,i="human"){return c.vaultStore.addProjectMemory(e,t,r,i)}async function ez(e){c.vaultStore.deleteProjectMemory(e)}async function eK(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(u(n,"project_threads"))return[];throw n}return i||[]}async function eH(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("project_threads").upsert({project_id:e,thread_id:r},{onConflict:"project_id,thread_id",ignoreDuplicates:!0});if(n)throw n;let{data:o,error:a}=await i.from("project_threads").select("*").eq("project_id",e).eq("thread_id",r).single();if(a)throw a;return o}async function eQ(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 eX(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?(u(n,"project_threads"),null):i?.project_id??null}function eY(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}function eZ(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}async function e0(e){return(await eG(e)).map(e=>({key:e.key,value:e.value,source:"project"}))}async function e1(e,t,r,i){let n=await eR(t),o=await eU(t),a=await e0(t);return{skills:eY(r,n),memory:eZ(i,o),variables:a}}e.s(["DEFAULT_WORKFLOW_ID",0,"00000000-0000-0000-0000-000000000001","addLearning",0,ep,"addProjectAgent",0,eD,"addProjectMemory",0,eV,"addProjectSkill",0,eF,"addProjectThread",0,eH,"addTaskComment",0,eu,"addTaskCostEntry",0,ea,"addTaskLog",0,ei,"addTeamAgent",0,eW,"appendRunToIndex",0,P,"assignOrphanTasksToProject",0,G,"buildExecutionProvenance",0,e1,"createAgent",0,eq,"createProject",0,R,"createTask",0,D,"createTeam",0,eI,"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",0,eS,"deleteLearning",0,ew,"deleteProject",0,L,"deleteProjectMemory",0,ez,"deleteProjectVariable",0,eJ,"deleteStagePrompt",0,ek,"deleteTask",0,O,"deleteTaskComment",0,ef,"deleteTeam",0,ex,"ensureNoCircularDependency",0,b,"extractTitle",0,j,"getAgent",0,eb,"getAgentSkills",0,ej,"getAgents",0,eh,"getDefaultWorkflowId",0,function(){return B},"getLearnings",0,em,"getNextQueuedTask",0,$,"getProjectAgents",0,eC,"getProjectBySlug",0,N,"getProjectForThread",0,eX,"getProjectMemory",0,eU,"getProjectRepos",0,x,"getProjectSkills",0,eR,"getProjectThreads",0,eK,"getProjectVariables",0,eG,"getProjectWithRepos",0,W,"getProjects",0,I,"getStagePrompt",0,e_,"getStagePrompts",0,eg,"getTask",0,S,"getTaskBySlug",0,C,"getTaskComments",0,ec,"getTaskCostEntries",0,el,"getTaskCostSummary",0,ed,"getTaskLogs",0,er,"getTasks",0,A,"getTeam",0,e$,"getTeamAgents",0,eE,"getTeams",0,eO,"getUserSettings",0,f,"getWorkflow",0,K,"getWorkflowNodeByName",0,Y,"getWorkflowNodes",0,Q,"getWorkflowTransitions",0,Z,"getWorkflowTransitionsFromNode",0,ee,"getWorkflowWithGraph",0,et,"getWorkflows",0,z,"parseFrontmatter",0,h,"removeProjectAgent",0,eT,"removeProjectSkill",0,eL,"removeProjectThread",0,eQ,"removeTeamAgent",0,eM,"reorderProjectAgents",0,eP,"resolveMemory",0,eZ,"resolveSkills",0,eY,"resolveTaskConfig",0,function(t,r,i){let n=e=>"string"!=typeof e?null:e.trim()||null,o=null;try{let t=e.r(522734),r=e.r(814747).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||[]}},"resolveVariables",0,e0,"setAgentSkills",0,ev,"setProjectVariable",0,eB,"summarizeTaskCosts",0,es,"updateAgent",0,eA,"updateProject",0,F,"updateTask",0,T,"updateTeam",0,eN,"updateWorkflow",0,H,"updateWorkflowNodes",0,X,"upsertStagePrompt",0,ey,"upsertUserSettings",0,m],846888)}];
|
|
1
|
+
module.exports=[846888,108088,e=>{"use strict";var t=e.i(173426);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",0,s],108088);var d=e.i(254799),c=e.i(488877);function u(e,t){if(!e)return!1;let r="string"==typeof e.message?e.message:"";return"42P01"===e.code||"PGRST205"===e.code||r.includes(`relation "${t}" does not exist`)||r.includes(`Could not find the table 'agx.${t}'`)||r.includes(`Could not find the table 'public.${t}'`)}async function f(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("user_settings").select("*").eq("user_id",e).maybeSingle();if(n){if(u(n,"user_settings"))return null;throw n}return i||null}async function m(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 f(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 f(e);if(!c)throw Error("Failed to load user_settings after upsert");return{settings:c,updated:!0}}function p(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40)||"task"}async function w(e,t){let r=p(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=`${p(e)}-${o}`.slice(0,48)}return`${p(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}async function g(e,t,r,i){let n=p(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=`${p(e)}-${s}`.slice(0,48)}return`${p(e)}-${Date.now().toString(36).slice(-4)}`.slice(0,48)}function _(e){return e??(0,t.createAdminDbClient)()}function y(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 k(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=y(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]=y(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=_(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){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 S(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 C(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),m=i?.projectId||("string"==typeof o.project_id?o.project_id:void 0),p="string"==typeof o.workflow_id?o.workflow_id:void 0,g="string"==typeof o.project?o.project:void 0;if(!g&&m){let e=await W(m);e?.slug&&(g=e.slug)}/^---\n/.test(e);let _="string"==typeof o.provider?o.provider:null,y="string"==typeof o.model?o.model:null,A="string"==typeof o.engine?o.engine:null,C="ai"===o.created_by?"ai":"user",D=k(o.depends_on),T=k(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:g||null,...void 0!==m?{project_id:m}:{},...void 0!==p?{workflow_id:p}:{},priority:o.priority,engine:A,provider:_,model:y,swarm:l,swarm_models:i?.swarmModels??null,depends_on:P.length?P:null,created_by:C,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 N=await S($.id,r)||$,x=r||N.user_id;if(x){let e=N.created_at||new Date().toISOString(),t={dependsOn:Array.isArray(N.depends_on)?N.depends_on:[],project:N.project||null,projectId:N.project_id||null,workflowId:N.workflow_id||null,createdBy:N.created_by||null};s({taskId:N.id,userId:x,eventType:"task.created",title:N.title||null,slug:N.slug||null,stage:N.stage||null,status:N.status||null,timestamp:e,details:t})}return N}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"),m=Object.prototype.hasOwnProperty.call(a,"model"),p=Object.prototype.hasOwnProperty.call(a,"workflow_id"),w=Object.prototype.hasOwnProperty.call(a,"depends_on"),g=k(a.depends_on),_=k(n?.dependsOn),y=n?.dependsOn!==void 0||w,A=n?.dependsOn!==void 0?_:g,C={content:r,description:v(l),title:c,status:a.status,stage:a.stage,project:a.project,...void 0!==u?{project_id:u}:{},workflow_id:p?a.workflow_id:void 0,priority:a.priority,engine:a.engine,provider:f?a.provider:null,model:m?a.model:null,swarm:d,swarm_models:n?.swarmModels??void 0,...y?{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(C).forEach(e=>{void 0===C[e]&&delete C[e]}),y&&await b(e,A,o);let D=o.from("tasks").update({...C,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({...C}).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(C)),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}=C,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 S(e,i);if(!t)throw Error(`Task ${e} not found`);return t}await q(T,i);let O=await S(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,r=!1){let i=(0,t.createAdminDbClient)().from("projects").select("*, project_repos(*)");e&&(i=i.eq("user_id",e)),r||(i=i.is("archived_at",null));let{data:n,error:o}=await i;if(o){if(u(o,"projects"))return[];throw o}return(n||[]).map(e=>({...e,repos:e.project_repos??[]}))}async function N(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(u(o,"projects"))return null;throw o}return n||null}async function x(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_repos").select("*").eq("project_id",e);if(n){if(u(n,"project_repos"))return[];throw n}return i||[]}let E=/^[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=E.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(u(a.error,"projects"))return null;throw a.error}let l=a.data;if(!l)return null;let s=await x(l.id);return{...l,repos:s}}async function M(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(u(o,"project_repos"))return[];throw o}return n||[]}async function R(e,t,r){if(!t.name?.trim())throw Error("Project name is required");let i=_(r),n=t.name.trim()||"project",o=await g(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 M(l.id,t.repos??[],i);return{...l,repos:d}}async function F(e,t,r,i){let n=_(i),o=E.test(e),a=e;if(!o){let r=await N(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&&!u(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&&!u(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&&!u(r,"project_repos"))throw r;continue}let{error:r}=await n.from("project_repos").insert({...e.id?{id:e.id}:{},...t});if(r&&!u(r,"project_repos"))throw r}}return W(a,t)}async function L(e,t,r){let i=_(r),{error:n}=await i.from("projects").update({archived_at:new Date().toISOString()}).eq("id",e).eq("user_id",t);if(n)throw n}async function G(e,t,r){let i=_(r),n=await W(e,t);if(!n)throw Error("Project not found");let{data:o,error:a}=await i.from("tasks").select("id, project").eq("user_id",t).is("project_id",null);if(a)throw a;let l=String(n.slug||"").trim().toLowerCase(),s=(o||[]).filter(e=>{let t=String(e.project||"").trim().toLowerCase();return!t||"none"===t||t===l}).map(e=>e.id);if(!s.length)return{updatedCount:0,taskIds:[]};let{error:d}=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",s);if(d)throw d;return{updatedCount:s.length,taskIds:s}}let B="00000000-0000-0000-0000-000000000001",J=[{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"}],U=new Map(J.map(e=>[e.id,e]));async function V(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("workflows").upsert({id:B,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(J.map(e=>({...e,workflow_id:B,metadata:{}})),{onConflict:"id"});if(n)throw n;let{error:o}=await r.from("workflow_transitions").upsert([{workflow_id:B,from_node_id:"00000000-0000-0000-0001-000000000001",to_node_id:"00000000-0000-0000-0001-000000000002",condition:"done",priority:0,metadata:{}},{workflow_id:B,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 z(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(u(n,"workflows"))return[];throw n}return i||[]}async function K(e,r){let i=(0,t.createAdminDbClient)().from("workflows").select("*").eq("id",e),{data:n,error:o}=await i.maybeSingle();if(o){if(u(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(u(n,"workflow_nodes"))return[];throw n}return i||[]}async function X(e,r,i){let n=(0,t.createAdminDbClient)();if(e===B&&await V(r),!await K(e,r))throw Error("Workflow not found");if(e===B){let t=i.map(t=>{let r=U.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(u(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(u(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(u(o,"workflow_transitions"))return[];throw o}return n||[]}async function et(e,t){let r=await K(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||[]}function es(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))}}async function ed(e){return es(await el(e))}async function ec(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 eu(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 ef(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 em(e,r,i){if("task"!==e)return c.vaultStore.getLearnings(e,r);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){if("task"!==e)return c.vaultStore.addLearning(e,r,i);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 ew(e,r){if("global-playbook"===e)return void c.vaultStore.deleteLearning(e,"global");let i=await W(e,r);if(i)return void c.vaultStore.deleteLearning(e,"project",i.id);let n=(0,t.createAdminDbClient)().from("learnings").delete().eq("id",e);r&&(n=n.eq("user_id",r));let{error:o}=await n;if(o)throw o}async function eg(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 ey(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 eh(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(u(n,"agents"))return[];throw n}return i||[]}async function eb(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||u(o,"agents"))return null;throw o}return n}async function ej(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(u(n,"agent_skills"))return[];throw n}return i||[]}async function ev(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 ej(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&&!u(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&&!u(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&&!u(r,"agent_skills"))throw r}}return ej(e)}async function eq(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.role&&(n.role=r.role),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(u(a,"agents"))throw Error("Agents table does not exist");throw a}return o}async function eA(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.role&&(o.role=i.role),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 eb(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||u(l,"agents"))return null;throw l}return a}async function eS(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("agents").delete().eq("id",e).eq("user_id",r);if(n&&!u(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(u(n,"project_agents"))return[];throw n}return i||[]}async function eD(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 eT(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 eP(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 eO(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("teams").select("*").eq("project_id",e).order("created_at",{ascending:!0});if(n){if(u(n,"teams"))return[];throw n}return(i||[]).map(e=>({...e,metadata:"string"==typeof e.metadata?JSON.parse(e.metadata):e.metadata||{}}))}async function e$(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("teams").select("*").eq("id",e).limit(1).single();if(n){if("PGRST116"===n.code||u(n,"teams"))return null;throw n}return i?{...i,metadata:"string"==typeof i.metadata?JSON.parse(i.metadata):i.metadata||{}}:null}async function eI(e,r,i,n){let o=(0,t.createAdminDbClient)(),a=(0,d.randomUUID)(),l=new Date().toISOString(),{data:s,error:c}=await o.from("teams").insert({id:a,project_id:e,name:r,template_id:i||null,metadata:JSON.stringify(n||{}),created_at:l,updated_at:l}).select().single();if(c)throw c;return{...s,metadata:"string"==typeof s.metadata?JSON.parse(s.metadata):s.metadata||{}}}async function eN(e,r){let i=(0,t.createAdminDbClient)(),n={};void 0!==r.name&&(n.name=r.name),void 0!==r.metadata&&(n.metadata=JSON.stringify(r.metadata));let{data:o,error:a}=await i.from("teams").update(n).eq("id",e).select().single();if(a){if("PGRST116"===a.code)return null;throw a}return{...o,metadata:"string"==typeof o.metadata?JSON.parse(o.metadata):o.metadata||{}}}async function ex(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("teams").delete().eq("id",e);if(i)throw i}async function eE(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("team_agents").select("*").eq("team_id",e).order("routing_order",{ascending:!0});if(n){if(u(n,"team_agents"))return[];throw n}return i||[]}async function eW(e,r,i,n){let o=(0,t.createAdminDbClient)();if(void 0===n){let{data:t}=await o.from("team_agents").select("routing_order").eq("team_id",e).order("routing_order",{ascending:!1}).limit(1);n=(t?.[0]?.routing_order??-1)+1}let{data:a,error:l}=await o.from("team_agents").upsert({team_id:e,agent_id:r,role_key:i,routing_order:n}).select().single();if(l)throw l;return a}async function eM(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("team_agents").delete().eq("team_id",e).eq("agent_id",r);if(n)throw n}async function eR(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(u(n,"project_skills"))return[];throw n}return i||[]}async function eF(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 eL(e){let r=(0,t.createAdminDbClient)(),{error:i}=await r.from("project_skills").delete().eq("id",e);if(i)throw i}async function eG(e){let r=(0,t.createAdminDbClient)(),{data:i,error:n}=await r.from("project_variables").select("*").eq("project_id",e);if(n){if(u(n,"project_variables"))return[];throw n}return i||[]}async function eB(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 eJ(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 eU(e,t){return c.vaultStore.getProjectMemory(e)}async function eV(e,t,r,i="human"){return c.vaultStore.addProjectMemory(e,t,r,i)}async function ez(e){c.vaultStore.deleteProjectMemory(e)}async function eK(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(u(n,"project_threads"))return[];throw n}return i||[]}async function eH(e,r){let i=(0,t.createAdminDbClient)(),{error:n}=await i.from("project_threads").upsert({project_id:e,thread_id:r},{onConflict:"project_id,thread_id",ignoreDuplicates:!0});if(n)throw n;let{data:o,error:a}=await i.from("project_threads").select("*").eq("project_id",e).eq("thread_id",r).single();if(a)throw a;return o}async function eQ(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 eX(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?(u(n,"project_threads"),null):i?.project_id??null}function eY(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}function eZ(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}async function e0(e){return(await eG(e)).map(e=>({key:e.key,value:e.value,source:"project"}))}async function e1(e,t,r,i){let n=await eR(t),o=await eU(t),a=await e0(t);return{skills:eY(r,n),memory:eZ(i,o),variables:a}}e.s(["DEFAULT_WORKFLOW_ID",0,"00000000-0000-0000-0000-000000000001","addLearning",0,ep,"addProjectAgent",0,eD,"addProjectMemory",0,eV,"addProjectSkill",0,eF,"addProjectThread",0,eH,"addTaskComment",0,eu,"addTaskCostEntry",0,ea,"addTaskLog",0,ei,"addTeamAgent",0,eW,"appendRunToIndex",0,P,"assignOrphanTasksToProject",0,G,"buildExecutionProvenance",0,e1,"createAgent",0,eq,"createProject",0,R,"createTask",0,D,"createTeam",0,eI,"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",0,eS,"deleteLearning",0,ew,"deleteProject",0,L,"deleteProjectMemory",0,ez,"deleteProjectVariable",0,eJ,"deleteStagePrompt",0,ek,"deleteTask",0,O,"deleteTaskComment",0,ef,"deleteTeam",0,ex,"ensureNoCircularDependency",0,b,"extractTitle",0,j,"getAgent",0,eb,"getAgentSkills",0,ej,"getAgents",0,eh,"getDefaultWorkflowId",0,function(){return B},"getLearnings",0,em,"getNextQueuedTask",0,$,"getProjectAgents",0,eC,"getProjectBySlug",0,N,"getProjectForThread",0,eX,"getProjectMemory",0,eU,"getProjectRepos",0,x,"getProjectSkills",0,eR,"getProjectThreads",0,eK,"getProjectVariables",0,eG,"getProjectWithRepos",0,W,"getProjects",0,I,"getStagePrompt",0,e_,"getStagePrompts",0,eg,"getTask",0,S,"getTaskBySlug",0,C,"getTaskComments",0,ec,"getTaskCostEntries",0,el,"getTaskCostSummary",0,ed,"getTaskLogs",0,er,"getTasks",0,A,"getTeam",0,e$,"getTeamAgents",0,eE,"getTeams",0,eO,"getUserSettings",0,f,"getWorkflow",0,K,"getWorkflowNodeByName",0,Y,"getWorkflowNodes",0,Q,"getWorkflowTransitions",0,Z,"getWorkflowTransitionsFromNode",0,ee,"getWorkflowWithGraph",0,et,"getWorkflows",0,z,"parseFrontmatter",0,h,"removeProjectAgent",0,eT,"removeProjectSkill",0,eL,"removeProjectThread",0,eQ,"removeTeamAgent",0,eM,"reorderProjectAgents",0,eP,"resolveMemory",0,eZ,"resolveSkills",0,eY,"resolveTaskConfig",0,function(t,r,i){let n=e=>"string"!=typeof e?null:e.trim()||null,o=null;try{let t=e.r(522734),r=e.r(814747).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||[]}},"resolveVariables",0,e0,"setAgentSkills",0,ev,"setProjectVariable",0,eB,"summarizeTaskCosts",0,es,"updateAgent",0,eA,"updateProject",0,F,"updateTask",0,T,"updateTeam",0,eN,"updateWorkflow",0,H,"updateWorkflowNodes",0,X,"upsertStagePrompt",0,ey,"upsertUserSettings",0,m],846888)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=apps_local_lib_db_ts_0twf-w5._.js.map
|