@mndrk/agx 2.2.0 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +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 +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_full.segment.rsc +4 -4
- 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 +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
- 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_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_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/_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/{_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_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]_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_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/{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/{0_cjth28_11b2.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/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/{0jq0t4zip38wt.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/{00e1ihnb6ap3t.js → 0zt2o58c5gytn.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0~idsggr8vqf5.js +59 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0xu_doej_wc-3.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/16h9208kl5~xa.js +16 -0
- 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]/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 +5 -37
- 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/TicketRow.tsx +158 -0
- package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveHealthTrend.tsx +45 -61
- 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 +4 -4
- 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/worker/index.js +56 -5
- 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_067eb..._.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/0-wlbe.ripd2w.css +0 -1
- 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/069yt_7prdxsp.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0e6rxcxy.l5c8.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ime4btrg-g4l.js +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/0jglardpw~5uc.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/0ng6wy4ak35jg.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0n~jhoq~op4e5.js +0 -16
- 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/0tm20~ec~occu.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/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/16fyhcmwlw3th.js +0 -6
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/18e8w~~mvoh5o.js +0 -1
- 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/{qPuactsz6OYimwT6dSdHn → 438GF86gZtccU2fS12URB}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{qPuactsz6OYimwT6dSdHn → 438GF86gZtccU2fS12URB}/_clientMiddlewareManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{qPuactsz6OYimwT6dSdHn → 438GF86gZtccU2fS12URB}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[633211,864075,888652,855532,329905,224316,e=>{"use strict";var t=e.x("node:sqlite",()=>require("node:sqlite"),!0),r=e.i(801243),n=e.i(522734),i=e.i(814747),a=e.i(446786);let o={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["LOCAL_USER",0,o],864075);let s=(0,i.join)((0,a.homedir)(),".agx","agents");function l(e,t,r){try{let a;a=(0,i.join)(s,e),(0,n.existsSync)(a)||(0,n.mkdirSync)(a,{recursive:!0});let o={t:new Date().toISOString(),agent:e,action:t,...r};(0,n.appendFileSync)((0,i.join)(s,e,"activity.jsonl"),JSON.stringify(o)+"\n","utf-8")}catch{}}e.s(["logActivity",0,l],888652);let d=(0,i.join)((0,a.homedir)(),".agx","agents");function E(e){return(0,i.join)(d,e,"self.md")}function c(e){return(0,i.join)(d,e,"reflection-state.json")}function
|
|
1
|
+
module.exports=[633211,864075,888652,855532,329905,224316,e=>{"use strict";var t=e.x("node:sqlite",()=>require("node:sqlite"),!0),r=e.i(801243),n=e.i(522734),i=e.i(814747),a=e.i(446786);let o={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["LOCAL_USER",0,o],864075);let s=(0,i.join)((0,a.homedir)(),".agx","agents");function l(e,t,r){try{let a;a=(0,i.join)(s,e),(0,n.existsSync)(a)||(0,n.mkdirSync)(a,{recursive:!0});let o={t:new Date().toISOString(),agent:e,action:t,...r};(0,n.appendFileSync)((0,i.join)(s,e,"activity.jsonl"),JSON.stringify(o)+"\n","utf-8")}catch{}}e.s(["logActivity",0,l],888652);let d=(0,i.join)((0,a.homedir)(),".agx","agents");function E(e){return(0,i.join)(d,e,"self.md")}function c(e){return(0,i.join)(d,e,"reflection-state.json")}function T(e){let t=E(e);if(!(0,n.existsSync)(t))return null;let r=(0,n.readFileSync)(t,"utf-8");if(!r.trim())return null;let i=r.split("\n"),a=0,o=new Date().toISOString(),s=0;if("---"===i[0])for(let e=1;e<i.length;e++){if("---"===i[e]){s=e+1;break}let[t,...r]=i[e].split(": "),n=r.join(": ");"version"===t&&(a=parseInt(n,10)||0),"derivedAt"===t&&(o=n)}return{agentId:e,content:i.slice(s).join("\n").trim(),version:a,derivedAt:o}}e.s(["buildStructuredReflectionPrompt",0,function(e,t,r,n,i){let a,o,s,l=(a=t?.content||`I am ${e.name}. ${e.seed}`,o=r.map(e=>{let t=[`- [${e.t}] ${e.observation}`];return e.judgement&&t.push(` Judgement: ${e.judgement}`),e.comparison&&t.push(` Comparison: ${e.comparison}`),e.delta&&t.push(` Delta: ${e.delta}`),e.intent&&t.push(` Intent: ${e.intent}`),t.join("\n")}).join("\n"),s=n.filter(t=>t.agentId!==e.name).map(e=>`### ${e.agentId}
|
|
2
2
|
${e.content}`).join("\n\n"),`You are ${e.name}. Voice: ${e.voice}.
|
|
3
3
|
|
|
4
4
|
## Canonical Identity
|
|
@@ -54,17 +54,17 @@ Rules:
|
|
|
54
54
|
- Do not include task-specific technical facts unless they clearly generalize into agent behavior.
|
|
55
55
|
- Do not restate memories already covered in Existing Agent Memories.
|
|
56
56
|
- If nothing genuinely new was learned, return an empty memories array.
|
|
57
|
-
- Do not wrap the JSON in markdown fences.`},"readReflectionState",0,function(e){let t=c(e);if(!(0,n.existsSync)(t))return null;try{let e=JSON.parse((0,n.readFileSync)(t,"utf-8")),r="string"==typeof e?.lastProcessedJournalId&&e.lastProcessedJournalId.trim()?e.lastProcessedJournalId.trim():null,i="string"==typeof e?.updatedAt&&e.updatedAt.trim()?e.updatedAt:new Date().toISOString();return{lastProcessedJournalId:r,updatedAt:i}}catch{return null}},"readSelf",0,
|
|
57
|
+
- Do not wrap the JSON in markdown fences.`},"readReflectionState",0,function(e){let t=c(e);if(!(0,n.existsSync)(t))return null;try{let e=JSON.parse((0,n.readFileSync)(t,"utf-8")),r="string"==typeof e?.lastProcessedJournalId&&e.lastProcessedJournalId.trim()?e.lastProcessedJournalId.trim():null,i="string"==typeof e?.updatedAt&&e.updatedAt.trim()?e.updatedAt:new Date().toISOString();return{lastProcessedJournalId:r,updatedAt:i}}catch{return null}},"readSelf",0,T,"writeReflectionState",0,function(e,t){let r=(0,i.join)(d,e);(0,n.existsSync)(r)||(0,n.mkdirSync)(r,{recursive:!0});let a=c(e)+".tmp";(0,n.writeFileSync)(a,JSON.stringify(t,null,2),"utf-8"),(0,n.renameSync)(a,c(e))},"writeSelf",0,function(e,t,r){let a=(0,i.join)(d,e);(0,n.existsSync)(a)||(0,n.mkdirSync)(a,{recursive:!0});let o=new Date().toISOString(),s=`---
|
|
58
58
|
version: ${r}
|
|
59
59
|
derivedAt: ${o}
|
|
60
60
|
---
|
|
61
61
|
${t}
|
|
62
|
-
`,c=E(e)+".tmp";(0,n.writeFileSync)(c,s,"utf-8"),(0,n.renameSync)(c,E(e)),l(e,"self-updated",{meta:{version:r}})}],855532);let
|
|
62
|
+
`,c=E(e)+".tmp";(0,n.writeFileSync)(c,s,"utf-8"),(0,n.renameSync)(c,E(e)),l(e,"self-updated",{meta:{version:r}})}],855532);let p=(0,i.join)((0,a.homedir)(),".agx","agents");function u(e){return(0,i.join)(p,e)}function N(e){return(0,i.join)(u(e),"journal.jsonl")}function m(e){let t=N(e);return(0,n.existsSync)(t)?(0,n.readFileSync)(t,"utf-8").split("\n").filter(e=>e.trim()):[]}function _(e,t){let[r,n]=String(t||"").split(":");if(r!==e)return 0;let i=parseInt(n||"0",10);return Number.isFinite(i)?i:0}e.s(["appendJournal",0,function(e,t){let r;r=u(e),(0,n.existsSync)(r)||(0,n.mkdirSync)(r,{recursive:!0});let i=m(e),a=function(e,t){let r=0;for(let n of t)try{let t=JSON.parse(n),[i,a]=String(t.id||"").split(":");if(i!==e)continue;let o=parseInt(a||"0",10);Number.isFinite(o)&&o>r&&(r=o)}catch{}return r}(e,i),o=`${e}:${a+1}`,s={...t,id:t.id?.trim()||o},d=JSON.stringify(s)+"\n";return(0,n.appendFileSync)(N(e),d,"utf-8"),l(e,"reflection"===t.type?"reflection":"journal-post",{thread:s.thread,meta:{entryId:s.id}}),s},"readJournal",0,function(e,t){let r=m(e),n=[];for(let e of r)try{n.push(JSON.parse(e))}catch{}return n.reverse(),t?n.slice(0,t):n},"readJournalSince",0,function(e,t){let r=m(e),n=_(e,t),i=[];for(let t of r)try{let r=JSON.parse(t);_(e,r.id)>n&&i.push(r)}catch{}return i}],329905);let L=(0,i.join)((0,a.homedir)(),".agx","agents");function g(e,t){let r=(0,i.join)(L,e);(0,n.existsSync)(r)||(0,n.mkdirSync)(r,{recursive:!0});let a=t?.voice?.trim()||"conversational, concise, practical",o=t?.seed?.trim()||"I evolve through experience and collaboration.",s=(0,i.join)(r,"identity.json");(0,n.existsSync)(s)||(0,n.writeFileSync)(s,JSON.stringify({name:e,voice:a,seed:o},null,2)+"\n","utf-8");let l=(0,i.join)(r,"journal.jsonl"),d=(0,i.join)(r,"reactions.jsonl"),E=(0,i.join)(r,"comments.jsonl"),c=(0,i.join)(r,"activity.jsonl"),T=(0,i.join)(r,"self.md");(0,n.existsSync)(l)||(0,n.writeFileSync)(l,"","utf-8"),(0,n.existsSync)(d)||(0,n.writeFileSync)(d,"","utf-8"),(0,n.existsSync)(E)||(0,n.writeFileSync)(E,"","utf-8"),(0,n.existsSync)(c)||(0,n.writeFileSync)(c,"","utf-8"),(0,n.existsSync)(T)||(0,n.writeFileSync)(T,`---
|
|
63
63
|
version: 0
|
|
64
64
|
derivedAt: ${new Date().toISOString()}
|
|
65
65
|
---
|
|
66
66
|
I am ${e}. ${o}
|
|
67
|
-
`,"utf-8")}function f(e){let t=(0,i.join)(L,e,"identity.json");if(!(0,n.existsSync)(t))return null;try{return JSON.parse((0,n.readFileSync)(t,"utf-8"))}catch{return null}}function h(){return(0,n.existsSync)(L)?(0,n.readdirSync)(L,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name):[]}e.s(["ensureAgent",0,g,"getTeamSelves",0,function(e){return h().filter(t=>t!==e).map(e=>
|
|
67
|
+
`,"utf-8")}function f(e){let t=(0,i.join)(L,e,"identity.json");if(!(0,n.existsSync)(t))return null;try{return JSON.parse((0,n.readFileSync)(t,"utf-8"))}catch{return null}}function h(){return(0,n.existsSync)(L)?(0,n.readdirSync)(L,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name):[]}e.s(["ensureAgent",0,g,"getTeamSelves",0,function(e){return h().filter(t=>t!==e).map(e=>T(e)).filter(e=>null!==e)},"listAgents",0,h,"readIdentity",0,f],224316);var O=e.x("node:sqlite",()=>require("node:sqlite"),!0);let S=process.env.AGX_GROUP_CHAT_DIR?.trim()||i.default.join(a.default.homedir(),".agx","group-chat"),A=i.default.join(S,"history.sqlite"),I=process.env.AGX_AGENTS_DIR?.trim()||i.default.join(a.default.homedir(),".agx","agents");function R(){let e,t,a=((0,n.mkdirSync)(S,{recursive:!0}),e=new O.DatabaseSync(A),(0,r.pragmaSet)(e,"journal_mode = WAL"),e.exec(`
|
|
68
68
|
CREATE TABLE IF NOT EXISTS participants (
|
|
69
69
|
id TEXT PRIMARY KEY,
|
|
70
70
|
name TEXT NOT NULL,
|
|
@@ -76,15 +76,15 @@ I am ${e}. ${o}
|
|
|
76
76
|
color TEXT NOT NULL,
|
|
77
77
|
sort_order INTEGER NOT NULL DEFAULT 0
|
|
78
78
|
);
|
|
79
|
-
`),(t=(0,r.pragmaAll)(e,"table_info(participants)")).some(e=>"persona"===e.name)&&(e.exec("ALTER TABLE participants RENAME COLUMN persona TO identity"),e.exec("ALTER TABLE participants RENAME COLUMN persona_file TO identity_file")),t.some(e=>"identity_file"===e.name)||t.some(e=>"persona_file"===e.name)||e.exec("ALTER TABLE participants ADD COLUMN identity_file TEXT"),t.some(e=>"skills_json"===e.name)||e.exec("ALTER TABLE participants ADD COLUMN skills_json TEXT"),t.some(e=>"variables_json"===e.name)||e.exec("ALTER TABLE participants ADD COLUMN variables_json TEXT"),t.some(e=>"sort_order"===e.name)||(e.exec("ALTER TABLE participants ADD COLUMN sort_order INTEGER NOT NULL DEFAULT 0"),e.exec("UPDATE participants SET sort_order = rowid")),!function(e){let t=e.prepare("SELECT id, name, provider FROM participants").all();if(0===t.length)return;let a=new Set(t.map(e=>e.id)),o=new Map(t.map(e=>[e.id,e.id])),s=[];for(let e of t){let t=(e.name||"").trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/--+/g,"-");if(!t||e.id===t||e.id!==e.provider)continue;a.delete(e.id);let r=function(e,t){if(!t.has(e))return e;let r=2,n=`${e}-${r}`;for(;t.has(n);)r+=1,n=`${e}-${r}`;return n}(t,a);a.add(r),o.set(e.id,r),s.push({from:e.id,to:r,name:e.name})}let l=t.map(e=>({id:o.get(e.id)||e.id,provider:e.provider})),d=new Set(l.map(e=>e.id)),E=new Map;for(let e of l){let t=e.provider.trim();if(!t)continue;let r=E.get(t)||new Set;r.add(e.id),E.set(t,r)}let c=[];for(let[e,t]of E){if(1!==t.size)continue;let[r]=Array.from(t);r&&e!==r&&(d.has(e)||c.push({from:e,to:r}))}if(0===s.length&&0===c.length)return;let
|
|
80
|
-
`,"utf8")}catch{}}(t.from,t.to,t.name)}(e),e);try{return a.prepare("SELECT id, name, provider, model, identity, identity_file, skills_json, variables_json, color, sort_order FROM participants ORDER BY sort_order ASC, rowid ASC").all().map(e=>({id:e.id,name:e.name,provider:e.provider,model:e.model,color:e.color,...e.identity?{identity:e.identity}:{},...e.identity_file?{identityFile:e.identity_file}:{},...e.variables_json?(()=>{try{let t=JSON.parse(e.variables_json);if(t&&"object"==typeof t&&!Array.isArray(t))return{variables:t};return{}}catch{return{}}})():{},...e.skills_json?{skills:(()=>{try{let t=JSON.parse(e.skills_json);if(!Array.isArray(t))return[];return t.map(e=>"string"==typeof e?{file:e,condition:""}:e)}catch{return[]}})()}:{}}))}finally{a.close()}}var
|
|
79
|
+
`),(t=(0,r.pragmaAll)(e,"table_info(participants)")).some(e=>"persona"===e.name)&&(e.exec("ALTER TABLE participants RENAME COLUMN persona TO identity"),e.exec("ALTER TABLE participants RENAME COLUMN persona_file TO identity_file")),t.some(e=>"identity_file"===e.name)||t.some(e=>"persona_file"===e.name)||e.exec("ALTER TABLE participants ADD COLUMN identity_file TEXT"),t.some(e=>"skills_json"===e.name)||e.exec("ALTER TABLE participants ADD COLUMN skills_json TEXT"),t.some(e=>"variables_json"===e.name)||e.exec("ALTER TABLE participants ADD COLUMN variables_json TEXT"),t.some(e=>"sort_order"===e.name)||(e.exec("ALTER TABLE participants ADD COLUMN sort_order INTEGER NOT NULL DEFAULT 0"),e.exec("UPDATE participants SET sort_order = rowid")),!function(e){let t=e.prepare("SELECT id, name, provider FROM participants").all();if(0===t.length)return;let a=new Set(t.map(e=>e.id)),o=new Map(t.map(e=>[e.id,e.id])),s=[];for(let e of t){let t=(e.name||"").trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/--+/g,"-");if(!t||e.id===t||e.id!==e.provider)continue;a.delete(e.id);let r=function(e,t){if(!t.has(e))return e;let r=2,n=`${e}-${r}`;for(;t.has(n);)r+=1,n=`${e}-${r}`;return n}(t,a);a.add(r),o.set(e.id,r),s.push({from:e.id,to:r,name:e.name})}let l=t.map(e=>({id:o.get(e.id)||e.id,provider:e.provider})),d=new Set(l.map(e=>e.id)),E=new Map;for(let e of l){let t=e.provider.trim();if(!t)continue;let r=E.get(t)||new Set;r.add(e.id),E.set(t,r)}let c=[];for(let[e,t]of E){if(1!==t.size)continue;let[r]=Array.from(t);r&&e!==r&&(d.has(e)||c.push({from:e,to:r}))}if(0===s.length&&0===c.length)return;let T=new Map;for(let e of s)T.set(e.from,e.to);for(let e of c)T.set(e.from,e.to);let p=Array.from(T.entries()).map(([e,t])=>({from:e,to:t})),u=new Set(e.prepare("SELECT name FROM sqlite_master WHERE type = 'table'").all().map(e=>e.name));for(let t of((0,r.transactionFn)(e,(t,r)=>{let n=e.prepare("UPDATE participants SET id = ? WHERE id = ?"),i=u.has("messages")?e.prepare("UPDATE messages SET participant_id = ? WHERE participant_id = ?"):null,a=u.has("agent_processes")?e.prepare("UPDATE agent_processes SET agent_id = ? WHERE agent_id = ?"):null,o=u.has("message_reactions")?e.prepare("UPDATE message_reactions SET participant_id = ? WHERE participant_id = ?"):null;for(let e of t)n.run(e.to,e.from);for(let e of r)i?.run(e.to,e.from),a?.run(e.to,e.from),o?.run(e.to,e.from)})(s.map(e=>({from:e.from,to:e.to})),p),s))!function(e,t,r){if(!e||!t||e===t)return;let a=i.default.join(I,e),o=i.default.join(I,t);if(!(0,n.existsSync)(a)||(0,n.existsSync)(o))return;(0,n.mkdirSync)(I,{recursive:!0}),(0,n.renameSync)(a,o);let s=i.default.join(o,"identity.json");if((0,n.existsSync)(s))try{let e={...JSON.parse((0,n.readFileSync)(s,"utf8")),name:"string"==typeof r&&r.trim()?r.trim():t};(0,n.writeFileSync)(s,`${JSON.stringify(e,null,2)}
|
|
80
|
+
`,"utf8")}catch{}}(t.from,t.to,t.name)}(e),e);try{return a.prepare("SELECT id, name, provider, model, identity, identity_file, skills_json, variables_json, color, sort_order FROM participants ORDER BY sort_order ASC, rowid ASC").all().map(e=>({id:e.id,name:e.name,provider:e.provider,model:e.model,color:e.color,...e.identity?{identity:e.identity}:{},...e.identity_file?{identityFile:e.identity_file}:{},...e.variables_json?(()=>{try{let t=JSON.parse(e.variables_json);if(t&&"object"==typeof t&&!Array.isArray(t))return{variables:t};return{}}catch{return{}}})():{},...e.skills_json?{skills:(()=>{try{let t=JSON.parse(e.skills_json);if(!Array.isArray(t))return[];return t.map(e=>"string"==typeof e?{file:e,condition:""}:e)}catch{return[]}})()}:{}}))}finally{a.close()}}var C=e.i(610613);let y="legacy_workspaces_to_projects_v1";function U(e,t){return!!e.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = ? LIMIT 1").get(t)}function j(e,t){return U(e,t)?new Set((0,r.pragmaAll)(e,`table_info(${t})`).map(e=>e.name)):new Set}function D(e){if(!e)throw Error("getWorkspaceTeamTableState requires an explicit database handle");let t=j(e,"teams"),r=j(e,"team_agents"),n=U(e,"team_workspaces"),i=t.has("project_id")&&t.has("template_id")&&t.has("metadata")&&!t.has("user_id"),a=t.has("user_id")&&t.has("is_default")&&!t.has("project_id"),o=r.has("team_id")&&r.has("agent_id")&&r.has("role_key");return{legacyTeams:a,legacyTeamAgents:r.has("team_id")&&r.has("agent_id")&&r.has("routing_order")&&!r.has("role_key"),legacyTeamWorkspaces:n,projectScopedTeams:i,projectScopedTeamAgents:o}}function X(e){let t=D(e);return t.legacyTeams||t.legacyTeamAgents||t.legacyTeamWorkspaces}function b(e){return e.legacyTeams&&e.legacyTeamAgents&&e.legacyTeamWorkspaces}function F(e){e.exec(`
|
|
81
81
|
CREATE TABLE IF NOT EXISTS app_migrations (
|
|
82
82
|
key TEXT PRIMARY KEY,
|
|
83
83
|
applied_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
|
|
84
84
|
metadata JSON
|
|
85
85
|
);
|
|
86
|
-
`)}let x=process.env.AGX_DATA_DIR||i.default.join(a.default.homedir(),".agx");class w{expr;constructor(e){this.expr=e}}let k=null;function
|
|
87
|
-
${e.join("\n")}`)}(function(e){let t=i.default.join(process.cwd(),"db","sqlite","001_agx_board_schema.sql");if(!n.default.existsSync(t))return console.warn(`[sqlite] DDL not found at ${t}, skipping schema init`);let r=n.default.readFileSync(t,"utf-8");e.exec(r)})(k),function(e){if(e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='execution_graphs'").all().length>0&&((0,r.pragmaAll)(e,"table_info(execution_graphs)").some(e=>"schedule"===e.name)||e.exec("ALTER TABLE execution_graphs ADD COLUMN schedule JSON")),e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='projects'").all().length>0&&((0,r.pragmaAll)(e,"table_info(projects)").some(e=>"archived_at"===e.name)||e.exec("ALTER TABLE projects ADD COLUMN archived_at TEXT DEFAULT NULL")),e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='project_memory'").all().length>0&&((0,r.pragmaAll)(e,"table_info(project_memory)").some(e=>"producer"===e.name)||e.exec("ALTER TABLE project_memory ADD COLUMN producer TEXT NOT NULL DEFAULT 'human' CHECK(producer IN ('human', 'system'))"),e.exec("CREATE INDEX IF NOT EXISTS idx_project_memory_producer ON project_memory (producer)")),e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='agents'").all().length>0){let t=new Set((0,r.pragmaAll)(e,"table_info(agents)").map(e=>e.name));t.has("voice")||e.exec("ALTER TABLE agents ADD COLUMN voice TEXT"),t.has("seed")||e.exec("ALTER TABLE agents ADD COLUMN seed TEXT"),t.has("model")||e.exec("ALTER TABLE agents ADD COLUMN model TEXT"),t.has("provider")||e.exec("ALTER TABLE agents ADD COLUMN provider TEXT"),t.has("color")||e.exec("ALTER TABLE agents ADD COLUMN color TEXT"),t.has("title")||e.exec("ALTER TABLE agents ADD COLUMN
|
|
86
|
+
`)}let x=process.env.AGX_DATA_DIR||i.default.join(a.default.homedir(),".agx");class w{expr;constructor(e){this.expr=e}}let k=null;function M(){if(k)return k;let e=process.env.SQLITE_DB_PATH||i.default.join(x,"agx-board.db");k=new t.DatabaseSync(e);let a=(0,C.validateSQLiteEnvironment)(k,e);if(a.length>0){let e=a.map(e=>` - ${e.message}${e.fix?` (fix: ${e.fix})`:""}`);throw Error(`SQLite startup validation failed:
|
|
87
|
+
${e.join("\n")}`)}(function(e){let t=i.default.join(process.cwd(),"db","sqlite","001_agx_board_schema.sql");if(!n.default.existsSync(t))return console.warn(`[sqlite] DDL not found at ${t}, skipping schema init`);let r=n.default.readFileSync(t,"utf-8");e.exec(r)})(k),function(e){if(e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='execution_graphs'").all().length>0&&((0,r.pragmaAll)(e,"table_info(execution_graphs)").some(e=>"schedule"===e.name)||e.exec("ALTER TABLE execution_graphs ADD COLUMN schedule JSON")),e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='projects'").all().length>0&&((0,r.pragmaAll)(e,"table_info(projects)").some(e=>"archived_at"===e.name)||e.exec("ALTER TABLE projects ADD COLUMN archived_at TEXT DEFAULT NULL")),e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='project_memory'").all().length>0&&((0,r.pragmaAll)(e,"table_info(project_memory)").some(e=>"producer"===e.name)||e.exec("ALTER TABLE project_memory ADD COLUMN producer TEXT NOT NULL DEFAULT 'human' CHECK(producer IN ('human', 'system'))"),e.exec("CREATE INDEX IF NOT EXISTS idx_project_memory_producer ON project_memory (producer)")),e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='agents'").all().length>0){let t=new Set((0,r.pragmaAll)(e,"table_info(agents)").map(e=>e.name));t.has("voice")||e.exec("ALTER TABLE agents ADD COLUMN voice TEXT"),t.has("seed")||e.exec("ALTER TABLE agents ADD COLUMN seed TEXT"),t.has("model")||e.exec("ALTER TABLE agents ADD COLUMN model TEXT"),t.has("provider")||e.exec("ALTER TABLE agents ADD COLUMN provider TEXT"),t.has("color")||e.exec("ALTER TABLE agents ADD COLUMN color TEXT"),t.has("title")&&!t.has("role")?e.exec("ALTER TABLE agents RENAME COLUMN title TO role"):t.has("role")||e.exec("ALTER TABLE agents ADD COLUMN role TEXT")}e.exec(`
|
|
88
88
|
CREATE TABLE IF NOT EXISTS agent_skills (
|
|
89
89
|
agent_id TEXT NOT NULL REFERENCES agents(id) ON DELETE CASCADE,
|
|
90
90
|
file TEXT NOT NULL,
|
|
@@ -120,7 +120,7 @@ ${e.join("\n")}`)}(function(e){let t=i.default.join(process.cwd(),"db","sqlite",
|
|
|
120
120
|
PRIMARY KEY (agent_id, repo, skill_id)
|
|
121
121
|
);
|
|
122
122
|
CREATE INDEX IF NOT EXISTS idx_agent_skill_bindings_agent ON agent_skill_bindings (agent_id, created_at);
|
|
123
|
-
`),
|
|
123
|
+
`),v(e),e.exec(`
|
|
124
124
|
CREATE TABLE IF NOT EXISTS project_agents (
|
|
125
125
|
project_id TEXT NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
|
|
126
126
|
agent_id TEXT NOT NULL REFERENCES agents(id) ON DELETE CASCADE,
|
|
@@ -299,7 +299,7 @@ ${e.join("\n")}`)}(function(e){let t=i.default.join(process.cwd(),"db","sqlite",
|
|
|
299
299
|
END`);for(let e of h()){let r=f(e);t.run(e,o.id,r?.name?.trim()||e,r?.voice?.trim()||null,r?.seed?.trim()||null)}})(e),function(e){let t=R(),r=new Set(e.prepare("SELECT id FROM agents").all().map(e=>e.id)),n=e.prepare(`INSERT INTO agent_skills (agent_id, file, condition)
|
|
300
300
|
VALUES (?, ?, ?)
|
|
301
301
|
ON CONFLICT(agent_id, file) DO UPDATE SET
|
|
302
|
-
condition = excluded.condition`);for(let e of t)if(r.has(e.id))for(let t of e.skills??[]){let r=t.file?.trim();r&&n.run(e.id,r,t.condition?.trim()||null)}}(e),function(e){for(let t of e.prepare("SELECT id, voice, seed FROM agents").all())g(t.id,{voice:t.voice??void 0,seed:t.seed??void 0})}(e)}(k);let s=function(e){var t;if(!e)throw Error("autoMigrateLegacyWorkspacesToProjects requires an explicit database handle");let n=D(e);if(!X(e)||!b(n)||(F(e),e.prepare("SELECT 1 FROM app_migrations WHERE key = ? LIMIT 1").get(
|
|
302
|
+
condition = excluded.condition`);for(let e of t)if(r.has(e.id))for(let t of e.skills??[]){let r=t.file?.trim();r&&n.run(e.id,r,t.condition?.trim()||null)}}(e),function(e){for(let t of e.prepare("SELECT id, voice, seed FROM agents").all())g(t.id,{voice:t.voice??void 0,seed:t.seed??void 0})}(e)}(k);let s=function(e){var t;if(!e)throw Error("autoMigrateLegacyWorkspacesToProjects requires an explicit database handle");let n=D(e);if(!X(e)||!b(n)||(F(e),e.prepare("SELECT 1 FROM app_migrations WHERE key = ? LIMIT 1").get(y)))return null;let i=function(e){let t;if(!e)throw Error("migrateLegacyWorkspacesToProjects requires an explicit database handle");let n={usersProcessed:0,agentsImported:0,agentSkillsMigrated:0,projectsCreated:0,projectsMatched:0,projectAgentsLinked:0,projectThreadsLinked:0,projectVariablesMigrated:0,remappedThreadLinks:0,warnings:[],projectMappings:[]},i=D(e);if(!X(e))return n.warnings.push("No legacy workspace/team tables found."),n;if(!b(i))return n.warnings.push("Legacy workspace/team schema is incomplete; refusing to auto-migrate partial tables."),n;let a=R(),s=new Map(a.map(e=>[e.id,e])),{teams:l,teamAgents:d,teamWorkspaces:E}=(t=e.prepare("SELECT id, name, user_id, COALESCE(is_default, 0) AS is_default FROM teams ORDER BY name ASC").all(),{teams:t,teamAgents:e.prepare("SELECT team_id, agent_id, routing_order FROM team_agents ORDER BY team_id, routing_order ASC").all(),teamWorkspaces:e.prepare("SELECT team_id, thread_id FROM team_workspaces ORDER BY team_id, thread_id ASC").all()}),c=new Map;for(let e of l){let t=c.get(e.user_id)??[];t.push(e),c.set(e.user_id,t)}let T=new Map;for(let e of d){let t=T.get(e.team_id)??[];t.push(e),T.set(e.team_id,t)}let p=new Map;for(let e of E){let t=p.get(e.team_id)??[];t.push(e.thread_id),p.set(e.team_id,t)}return(0,r.transaction)(e,()=>{for(let[t,r]of c.entries()){n.usersProcessed++;let i=t||o.id;!function(e,t,r,n){let i=e.prepare(`INSERT INTO agents (id, user_id, name, style, description, model, provider, color, voice, seed)
|
|
303
303
|
VALUES (?, ?, ?, 'balanced', ?, ?, ?, ?, NULL, NULL)
|
|
304
304
|
ON CONFLICT(id) DO UPDATE SET
|
|
305
305
|
user_id = excluded.user_id,
|
|
@@ -311,9 +311,9 @@ ${e.join("\n")}`)}(function(e){let t=i.default.join(process.cwd(),"db","sqlite",
|
|
|
311
311
|
updated_at = strftime('%Y-%m-%dT%H:%M:%fZ','now')`),a=e.prepare("SELECT 1 FROM agents WHERE id = ?");for(let e of r){let r=!!a.get(e.id);i.run(e.id,t,e.name,e.identity??null,e.model??null,e.provider??"claude",e.color??"#6B7280"),!r&&n.agentsImported++}}(e,i,a,n),function(e,t,r){let n=e.prepare(`INSERT INTO agent_skills (agent_id, file, condition)
|
|
312
312
|
VALUES (?, ?, ?)
|
|
313
313
|
ON CONFLICT(agent_id, file) DO UPDATE SET
|
|
314
|
-
condition = excluded.condition`);for(let i of t)for(let t of i.skills??[]){let a=t.file?.trim();if(!a)continue;let o=e.prepare("SELECT condition FROM agent_skills WHERE agent_id = ? AND file = ?").get(i.id,a),s=t.condition||null;n.run(i.id,a,s),(!o||o.condition!==s)&&r.agentSkillsMigrated++}}(e,a,n);let l=new Map,d=new Map;for(let t of r){let r=
|
|
314
|
+
condition = excluded.condition`);for(let i of t)for(let t of i.skills??[]){let a=t.file?.trim();if(!a)continue;let o=e.prepare("SELECT condition FROM agent_skills WHERE agent_id = ? AND file = ?").get(i.id,a),s=t.condition||null;n.run(i.id,a,s),(!o||o.condition!==s)&&r.agentSkillsMigrated++}}(e,a,n);let l=new Map,d=new Map;for(let t of r){let r=p.get(t.id)??[],a=function(e,t,r,n){var i;let a,o=r.is_default?"default":r.name.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/--+/g,"-"),s=e.prepare("SELECT id, name FROM projects WHERE user_id = ? AND slug = ? LIMIT 1").get(t,o);if(s)return n.projectsMatched++,s;let l=r.is_default?"Default Project":(a=(i=r.name).trim())?a.split(/\s+/).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "):i,d=e.prepare(`INSERT INTO projects (user_id, name, slug, description)
|
|
315
315
|
VALUES (?, ?, ?, ?)
|
|
316
|
-
RETURNING id, name`).get(t,l,o||`project-${r.id.slice(0,8)}`,"Migrated from legacy workspace/team structure");return n.projectsCreated++,d}(e,i,t,n),o=
|
|
316
|
+
RETURNING id, name`).get(t,l,o||`project-${r.id.slice(0,8)}`,"Migrated from legacy workspace/team structure");return n.projectsCreated++,d}(e,i,t,n),o=T.get(t.id)??[];l.set(a.id,o),d.set(a.id,r),n.projectMappings.push({teamId:t.id,teamName:t.name,projectId:a.id,projectName:a.name,threadIds:r})}let E=e.prepare(`INSERT INTO project_agents (project_id, agent_id, routing_order)
|
|
317
317
|
VALUES (?, ?, ?)
|
|
318
318
|
ON CONFLICT(project_id, agent_id) DO UPDATE SET
|
|
319
319
|
routing_order = excluded.routing_order`),c=e.prepare("DELETE FROM project_threads WHERE thread_id = ? AND project_id <> ?"),u=e.prepare(`INSERT OR IGNORE INTO project_threads (project_id, thread_id)
|
|
@@ -323,7 +323,7 @@ ${e.join("\n")}`)}(function(e){let t=i.default.join(process.cwd(),"db","sqlite",
|
|
|
323
323
|
VALUES (?, json(?))
|
|
324
324
|
ON CONFLICT(key) DO UPDATE SET
|
|
325
325
|
applied_at = strftime('%Y-%m-%dT%H:%M:%fZ','now'),
|
|
326
|
-
metadata = excluded.metadata`).run(
|
|
326
|
+
metadata = excluded.metadata`).run(y,JSON.stringify(t)),i}(k);return s&&console.log(`[sqlite] auto-migrated legacy workspaces to projects: ${JSON.stringify({usersProcessed:s.usersProcessed,projectsCreated:s.projectsCreated,projectsMatched:s.projectsMatched,projectAgentsLinked:s.projectAgentsLinked,projectThreadsLinked:s.projectThreadsLinked})}`),function(e){if(!e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='app_migrations'").get()||!e.prepare("SELECT 1 FROM app_migrations WHERE key = 'legacy_workspaces_to_projects_v1' LIMIT 1").get())return;let t=D(e),r=[];t.legacyTeamWorkspaces&&r.push("team_workspaces"),t.legacyTeamAgents&&r.push("team_agents"),t.legacyTeams&&r.push("teams"),0!==r.length&&(e.exec(r.map(e=>`DROP TABLE IF EXISTS ${e};`).join("\n")),console.log(`[sqlite] dropped legacy team tables: ${r.join(", ")}`))}(k),v(k),k}function v(e){e.exec(`
|
|
327
327
|
CREATE TABLE IF NOT EXISTS teams (
|
|
328
328
|
id TEXT NOT NULL PRIMARY KEY,
|
|
329
329
|
project_id TEXT NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
|
|
@@ -350,12 +350,12 @@ ${e.join("\n")}`)}(function(e){let t=i.default.join(process.cwd(),"db","sqlite",
|
|
|
350
350
|
BEGIN
|
|
351
351
|
UPDATE teams SET updated_at = strftime('%Y-%m-%dT%H:%M:%fZ','now') WHERE rowid = NEW.rowid;
|
|
352
352
|
END;
|
|
353
|
-
`)}let $=new Set(["definition","depends_on","input","metadata","models","open_blockers","output","payload","run_index","stage_decisions","swarm_models"]);function H(e){return void 0===e?null:e instanceof Date?e.toISOString():e&&"object"==typeof e?JSON.stringify(e):e}function Y(e,t){return null==t?null:t instanceof Date?t.toISOString():$.has(e)?JSON.stringify(t):H(t)}function B(e){let t=(e||"*").trim();if(!t||"*"===t)return{columns:["*"],includeProjectRepos:!1};let r=t.includes("project_repos(*)"),n=t.replace(/project_repos\(\*\)/g,"").split(",").map(e=>e.trim()).filter(Boolean);return 0===n.length?{columns:["*"],includeProjectRepos:r}:{columns:n,includeProjectRepos:r}}class P{table;operation="select";filters=[];orderSpecs=[];limitValue=null;selectColumns="*";returningColumns=null;singleMode="none";payload=null;upsertOptions=null;constructor(e){this.table=e}select(e="*"){return"select"===this.operation?this.selectColumns=e:this.returningColumns=e||"*",this}insert(e){return this.operation="insert",this.payload=e,this}update(e){return this.operation="update",this.payload=e,this}delete(){return this.operation="delete",this}upsert(e,t){return this.operation="upsert",this.payload=e,this.upsertOptions=t||{},this}eq(e,t){return this.filters.push({op:"eq",column:e,value:t}),this}neq(e,t){return this.filters.push({op:"neq",column:e,value:t}),this}gt(e,t){return this.filters.push({op:"gt",column:e,value:t}),this}gte(e,t){return this.filters.push({op:"gte",column:e,value:t}),this}lt(e,t){return this.filters.push({op:"lt",column:e,value:t}),this}lte(e,t){return this.filters.push({op:"lte",column:e,value:t}),this}is(e,t){return this.filters.push({op:"is",column:e,value:t}),this}in(e,t){return this.filters.push({op:"in",column:e,value:t||[]}),this}contains(e,t){return this.filters.push({op:"contains",column:e,value:t}),this}or(e){return this.filters.push({op:"or",expression:e}),this}order(e,t){return this.orderSpecs.push({column:e,...t||{}}),this}limit(e){return this.limitValue=e,this}single(){return this.singleMode="single",this.execute()}maybeSingle(){return this.singleMode="maybeSingle",this.execute()}then(e,t){return this.execute().then(e,t)}buildWhere(e,t){for(let r of this.filters){if("or"===r.op){let n=r.expression.split(",").map(e=>e.trim()).filter(Boolean).map(e=>{var r;let[n,i,...a]=e.split("."),o="true"===(r=a.join("."))||"false"!==r&&("null"===r?null:r);return"eq"===i?(t.push(H(o)),`${n} = ?`):"neq"===i?(t.push(H(o)),`${n} <> ?`):"is"===i?null===o?`${n} IS NULL`:(t.push(H(o)),`${n} IS ?`):"ilike"===i||"like"===i?(t.push(H(o)),`${n} LIKE ?`):"1=1"});n.length>0&&e.push(`(${n.join(" OR ")})`);continue}if("eq"===r.op)t.push(H(r.value)),e.push(`${r.column} = ?`);else if("neq"===r.op)t.push(H(r.value)),e.push(`${r.column} <> ?`);else if("gt"===r.op)t.push(H(r.value)),e.push(`${r.column} > ?`);else if("gte"===r.op)t.push(H(r.value)),e.push(`${r.column} >= ?`);else if("lt"===r.op)t.push(H(r.value)),e.push(`${r.column} < ?`);else if("lte"===r.op)t.push(H(r.value)),e.push(`${r.column} <= ?`);else if("is"===r.op)null===r.value?e.push(`${r.column} IS NULL`):(t.push(H(r.value)),e.push(`${r.column} IS ?`));else if("contains"===r.op){let n=(r.value||[]).map(H);if(0===n.length)e.push("1=1");else{let i=n.map(()=>"?").join(", ");t.push(...n),e.push(`(SELECT COUNT(*) FROM json_each(${r.column}) WHERE json_each.value IN (${i})) = ${n.length}`)}}else if("in"===r.op)if(r.value&&0!==r.value.length){let n=(r.value||[]).map(H),i=n.map(()=>"?").join(", ");t.push(...n),e.push(`${r.column} IN (${i})`)}else e.push("1=0")}}executeSelect(){try{let e=
|
|
353
|
+
`)}let $=new Set(["definition","depends_on","input","metadata","models","open_blockers","output","payload","run_index","stage_decisions","swarm_models"]);function H(e){return void 0===e?null:e instanceof Date?e.toISOString():e&&"object"==typeof e?JSON.stringify(e):e}function Y(e,t){return null==t?null:t instanceof Date?t.toISOString():$.has(e)?JSON.stringify(t):H(t)}function B(e){let t=(e||"*").trim();if(!t||"*"===t)return{columns:["*"],includeProjectRepos:!1};let r=t.includes("project_repos(*)"),n=t.replace(/project_repos\(\*\)/g,"").split(",").map(e=>e.trim()).filter(Boolean);return 0===n.length?{columns:["*"],includeProjectRepos:r}:{columns:n,includeProjectRepos:r}}class P{table;operation="select";filters=[];orderSpecs=[];limitValue=null;selectColumns="*";returningColumns=null;singleMode="none";payload=null;upsertOptions=null;constructor(e){this.table=e}select(e="*"){return"select"===this.operation?this.selectColumns=e:this.returningColumns=e||"*",this}insert(e){return this.operation="insert",this.payload=e,this}update(e){return this.operation="update",this.payload=e,this}delete(){return this.operation="delete",this}upsert(e,t){return this.operation="upsert",this.payload=e,this.upsertOptions=t||{},this}eq(e,t){return this.filters.push({op:"eq",column:e,value:t}),this}neq(e,t){return this.filters.push({op:"neq",column:e,value:t}),this}gt(e,t){return this.filters.push({op:"gt",column:e,value:t}),this}gte(e,t){return this.filters.push({op:"gte",column:e,value:t}),this}lt(e,t){return this.filters.push({op:"lt",column:e,value:t}),this}lte(e,t){return this.filters.push({op:"lte",column:e,value:t}),this}is(e,t){return this.filters.push({op:"is",column:e,value:t}),this}in(e,t){return this.filters.push({op:"in",column:e,value:t||[]}),this}contains(e,t){return this.filters.push({op:"contains",column:e,value:t}),this}or(e){return this.filters.push({op:"or",expression:e}),this}order(e,t){return this.orderSpecs.push({column:e,...t||{}}),this}limit(e){return this.limitValue=e,this}single(){return this.singleMode="single",this.execute()}maybeSingle(){return this.singleMode="maybeSingle",this.execute()}then(e,t){return this.execute().then(e,t)}buildWhere(e,t){for(let r of this.filters){if("or"===r.op){let n=r.expression.split(",").map(e=>e.trim()).filter(Boolean).map(e=>{var r;let[n,i,...a]=e.split("."),o="true"===(r=a.join("."))||"false"!==r&&("null"===r?null:r);return"eq"===i?(t.push(H(o)),`${n} = ?`):"neq"===i?(t.push(H(o)),`${n} <> ?`):"is"===i?null===o?`${n} IS NULL`:(t.push(H(o)),`${n} IS ?`):"ilike"===i||"like"===i?(t.push(H(o)),`${n} LIKE ?`):"1=1"});n.length>0&&e.push(`(${n.join(" OR ")})`);continue}if("eq"===r.op)t.push(H(r.value)),e.push(`${r.column} = ?`);else if("neq"===r.op)t.push(H(r.value)),e.push(`${r.column} <> ?`);else if("gt"===r.op)t.push(H(r.value)),e.push(`${r.column} > ?`);else if("gte"===r.op)t.push(H(r.value)),e.push(`${r.column} >= ?`);else if("lt"===r.op)t.push(H(r.value)),e.push(`${r.column} < ?`);else if("lte"===r.op)t.push(H(r.value)),e.push(`${r.column} <= ?`);else if("is"===r.op)null===r.value?e.push(`${r.column} IS NULL`):(t.push(H(r.value)),e.push(`${r.column} IS ?`));else if("contains"===r.op){let n=(r.value||[]).map(H);if(0===n.length)e.push("1=1");else{let i=n.map(()=>"?").join(", ");t.push(...n),e.push(`(SELECT COUNT(*) FROM json_each(${r.column}) WHERE json_each.value IN (${i})) = ${n.length}`)}}else if("in"===r.op)if(r.value&&0!==r.value.length){let n=(r.value||[]).map(H),i=n.map(()=>"?").join(", ");t.push(...n),e.push(`${r.column} IN (${i})`)}else e.push("1=0")}}executeSelect(){try{let e=M(),{columns:t,includeProjectRepos:r}=B(this.selectColumns),n=[],i=[];this.buildWhere(i,n);let a=`SELECT ${t.join(", ")} FROM ${this.table}`;if(i.length>0&&(a+=` WHERE ${i.join(" AND ")}`),this.orderSpecs.length>0){let e=this.orderSpecs.map(e=>{let t=!1===e.ascending?"DESC":"ASC";return!0===e.nullsFirst?`CASE WHEN ${e.column} IS NULL THEN 0 ELSE 1 END, ${e.column} ${t}`:!1===e.nullsFirst?`CASE WHEN ${e.column} IS NULL THEN 1 ELSE 0 END, ${e.column} ${t}`:`${e.column} ${t}`}).join(", ");a+=` ORDER BY ${e}`}"number"==typeof this.limitValue&&(n.push(this.limitValue),a+=" LIMIT ?");let o=e.prepare(a).all(...n);if(o=o.map(q),r&&"projects"===this.table&&o.length>0){let t=o.map(e=>e.id).filter(Boolean);if(t.length>0){let r=t.map(()=>"?").join(", "),n=e.prepare(`SELECT * FROM project_repos WHERE project_id IN (${r})`).all(...t),i=new Map;for(let e of n){let t=i.get(e.project_id)||[];t.push(e),i.set(e.project_id,t)}o=o.map(e=>({...e,project_repos:i.get(e.id)||[]}))}}if("single"===this.singleMode){if(0===o.length)return{data:null,error:{message:"No rows",code:"PGRST116"}};return{data:o[0],error:null}}if("maybeSingle"===this.singleMode)return{data:o[0]||null,error:null};return{data:o,error:null}}catch(e){return{data:null,error:e}}}executeInsertOrUpsert(){try{let e,t=M(),r=Array.isArray(this.payload)?this.payload:[this.payload];if(!r.length)return{data:[],error:null};let n=Array.from(r.reduce((e,t)=>{for(let r of Object.keys(t||{}))e.add(r);return e},new Set)),i=[],a=r.map(e=>{let t=n.map(t=>(i.push(Y(t,e[t])),"?"));return`(${t.join(", ")})`}),o=`INSERT INTO ${this.table} (${n.join(", ")}) VALUES ${a.join(", ")}`;if("upsert"===this.operation){let e=this.upsertOptions?.onConflict||"",t=String(e).split(",").map(e=>e.trim()).filter(Boolean);if(t.length>0)if(this.upsertOptions?.ignoreDuplicates)o+=` ON CONFLICT (${t.join(", ")}) DO NOTHING`;else{let e=n.filter(e=>!t.includes(e)).map(e=>`${e} = EXCLUDED.${e}`);e.length>0?o+=` ON CONFLICT (${t.join(", ")}) DO UPDATE SET ${e.join(", ")}`:o+=` ON CONFLICT (${t.join(", ")}) DO NOTHING`}}if(this.returningColumns){let{columns:e}=B(this.returningColumns);o+=` RETURNING ${e.join(", ")}`}this.returningColumns?e=(e=t.prepare(o).all(...i)).map(q):(t.prepare(o).run(...i),e=[]);let s=this.returningColumns?e:null;if("single"===this.singleMode||"maybeSingle"===this.singleMode)return{data:s&&s[0]||null,error:null};return{data:s,error:null}}catch(e){return{data:null,error:e}}}executeUpdateOrDelete(){try{let e,t=M(),r=[],n=[],i=[];this.buildWhere(i,n);let a="";if("update"===this.operation){let e=Object.keys(this.payload||{}).map(e=>{let t=this.payload[e];return t instanceof w?`${e} = ${t.expr}`:(r.push(Y(e,t)),`${e} = ?`)});a=`UPDATE ${this.table} SET ${e.join(", ")}`}else a=`DELETE FROM ${this.table}`;i.length>0&&(a+=` WHERE ${i.join(" AND ")}`);let o=[...r,...n];if(this.returningColumns){let{columns:e}=B(this.returningColumns);a+=` RETURNING ${e.join(", ")}`}this.returningColumns?e=(e=t.prepare(a).all(...o)).map(q):(t.prepare(a).run(...o),e=[]);let s=this.returningColumns?e:null;if("single"===this.singleMode){if(!s||0===s.length)return{data:null,error:{message:"No rows",code:"PGRST116"}};return{data:s[0],error:null}}if("maybeSingle"===this.singleMode)return{data:s?.[0]||null,error:null};return{data:s,error:null}}catch(e){return{data:null,error:e}}}async execute(){return"select"===this.operation?this.executeSelect():"insert"===this.operation||"upsert"===this.operation?this.executeInsertOrUpsert():this.executeUpdateOrDelete()}}let W=new Set([...$,"depends_on","open_blockers","swarm_models","run_index","stage_decisions","definition","metadata","models","config","policy","done_criteria","outputs","task_snapshot","data_mapping"]);function q(e){if(!e||"object"!=typeof e)return e;let t={...e};for(let e of Object.keys(t)){if(W.has(e)&&"string"==typeof t[e])try{t[e]=JSON.parse(t[e])}catch{}("swarm"===e||"is_default"===e||"is_public"===e||"had_graph_before"===e)&&(0===t[e]?t[e]=!1:1===t[e]&&(t[e]=!0))}return t}e.s(["SqlExpression",0,w,"createAdminDbClientSQLite",0,function(){return{from:e=>new P(e),auth:{getUser:async()=>({data:{user:{id:o.id,email:o.email,user_metadata:{name:o.name,full_name:o.name}}},error:null}),exchangeCodeForSession:async()=>({error:null}),refreshSession:async()=>({data:{session:{access_token:"local-token",refresh_token:"local-refresh",expires_in:3600},user:{id:o.id,email:o.email}},error:null})},async rpc(e,t){if("check_rate_limit"!==e)return{data:null,error:{message:`Unsupported rpc: ${e}`}};let r=M(),n=t.p_user_id,i=t.p_endpoint,a=Number(t.p_limit||60),o=Number(t.p_window_seconds||60),s=new Date(Math.floor(new Date().getTime()/(1e3*o))*o*1e3);try{let e=`
|
|
354
354
|
INSERT INTO rate_limits (user_id, endpoint, window_start, request_count)
|
|
355
355
|
VALUES (?, ?, ?, 1)
|
|
356
356
|
ON CONFLICT (user_id, endpoint, window_start)
|
|
357
357
|
DO UPDATE SET request_count = rate_limits.request_count + 1
|
|
358
358
|
RETURNING request_count
|
|
359
|
-
`,t=r.prepare(e).get(n,i,s.toISOString());return{data:Number(t?.request_count||0)<=a,error:null}}catch(e){return{data:!1,error:e}}},channel:()=>({on(){return this},subscribe(e){return e&&e("SUBSCRIBED"),this}}),removeChannel(){}}},"getSQLiteDb",0,
|
|
359
|
+
`,t=r.prepare(e).get(n,i,s.toISOString());return{data:Number(t?.request_count||0)<=a,error:null}}catch(e){return{data:!1,error:e}}},channel:()=>({on(){return this},subscribe(e){return e&&e("SUBSCRIBED"),this}}),removeChannel(){}}},"getSQLiteDb",0,M,"sqlExpr",0,function(e){return new w(e)}],633211)}];
|
|
360
360
|
|
|
361
361
|
//# sourceMappingURL=apps_local_lib_sqlite-query-adapter_ts_0l95hik._.js.map
|
|
@@ -108,7 +108,7 @@ I am ${e}. ${o}
|
|
|
108
108
|
ON CONFLICT(key) DO UPDATE SET
|
|
109
109
|
applied_at = strftime('%Y-%m-%dT%H:%M:%fZ','now'),
|
|
110
110
|
metadata = excluded.metadata`).run(y,JSON.stringify(t)),n}e.s(["autoMigrateLegacyWorkspacesToProjects",0,w,"getLegacyWorkspaceMigrationStatus",0,function(e){if(!e)throw Error("getLegacyWorkspaceMigrationStatus requires an explicit database handle");x(e);let t=e.prepare("SELECT applied_at, metadata FROM app_migrations WHERE key = ? LIMIT 1").get(y);if(!t)return{applied:!1,appliedAt:null,metadata:null};let r=null;if(t.metadata)try{r=JSON.parse(t.metadata)}catch{r=null}return{applied:!0,appliedAt:t.applied_at,metadata:r}},"getLegacyWorkspaceSourceCounts",0,function(e){if(!e)throw Error("getLegacyWorkspaceSourceCounts requires an explicit database handle");let t=X(e);return{teams:t.legacyTeams?D(e,"teams"):0,teamAgents:t.legacyTeamAgents?D(e,"team_agents"):0,teamWorkspaces:t.legacyTeamWorkspaces?D(e,"team_workspaces"):0}},"getWorkspaceTeamTableState",0,X,"migrateLegacyWorkspacesToProjects",0,k],449748);let M=process.env.AGX_DATA_DIR||i.default.join(a.default.homedir(),".agx");class v{expr;constructor(e){this.expr=e}}let $=null;function H(){if($)return $;let e=process.env.SQLITE_DB_PATH||i.default.join(M,"agx-board.db");$=new t.DatabaseSync(e);let a=(0,C.validateSQLiteEnvironment)($,e);if(a.length>0){let e=a.map(e=>` - ${e.message}${e.fix?` (fix: ${e.fix})`:""}`);throw Error(`SQLite startup validation failed:
|
|
111
|
-
${e.join("\n")}`)}(function(e){let t=i.default.join(process.cwd(),"db","sqlite","001_agx_board_schema.sql");if(!n.default.existsSync(t))return console.warn(`[sqlite] DDL not found at ${t}, skipping schema init`);let r=n.default.readFileSync(t,"utf-8");e.exec(r)})($),function(e){if(e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='execution_graphs'").all().length>0&&((0,r.pragmaAll)(e,"table_info(execution_graphs)").some(e=>"schedule"===e.name)||e.exec("ALTER TABLE execution_graphs ADD COLUMN schedule JSON")),e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='projects'").all().length>0&&((0,r.pragmaAll)(e,"table_info(projects)").some(e=>"archived_at"===e.name)||e.exec("ALTER TABLE projects ADD COLUMN archived_at TEXT DEFAULT NULL")),e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='project_memory'").all().length>0&&((0,r.pragmaAll)(e,"table_info(project_memory)").some(e=>"producer"===e.name)||e.exec("ALTER TABLE project_memory ADD COLUMN producer TEXT NOT NULL DEFAULT 'human' CHECK(producer IN ('human', 'system'))"),e.exec("CREATE INDEX IF NOT EXISTS idx_project_memory_producer ON project_memory (producer)")),e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='agents'").all().length>0){let t=new Set((0,r.pragmaAll)(e,"table_info(agents)").map(e=>e.name));t.has("voice")||e.exec("ALTER TABLE agents ADD COLUMN voice TEXT"),t.has("seed")||e.exec("ALTER TABLE agents ADD COLUMN seed TEXT"),t.has("model")||e.exec("ALTER TABLE agents ADD COLUMN model TEXT"),t.has("provider")||e.exec("ALTER TABLE agents ADD COLUMN provider TEXT"),t.has("color")||e.exec("ALTER TABLE agents ADD COLUMN color TEXT"),t.has("title")||e.exec("ALTER TABLE agents ADD COLUMN
|
|
111
|
+
${e.join("\n")}`)}(function(e){let t=i.default.join(process.cwd(),"db","sqlite","001_agx_board_schema.sql");if(!n.default.existsSync(t))return console.warn(`[sqlite] DDL not found at ${t}, skipping schema init`);let r=n.default.readFileSync(t,"utf-8");e.exec(r)})($),function(e){if(e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='execution_graphs'").all().length>0&&((0,r.pragmaAll)(e,"table_info(execution_graphs)").some(e=>"schedule"===e.name)||e.exec("ALTER TABLE execution_graphs ADD COLUMN schedule JSON")),e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='projects'").all().length>0&&((0,r.pragmaAll)(e,"table_info(projects)").some(e=>"archived_at"===e.name)||e.exec("ALTER TABLE projects ADD COLUMN archived_at TEXT DEFAULT NULL")),e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='project_memory'").all().length>0&&((0,r.pragmaAll)(e,"table_info(project_memory)").some(e=>"producer"===e.name)||e.exec("ALTER TABLE project_memory ADD COLUMN producer TEXT NOT NULL DEFAULT 'human' CHECK(producer IN ('human', 'system'))"),e.exec("CREATE INDEX IF NOT EXISTS idx_project_memory_producer ON project_memory (producer)")),e.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='agents'").all().length>0){let t=new Set((0,r.pragmaAll)(e,"table_info(agents)").map(e=>e.name));t.has("voice")||e.exec("ALTER TABLE agents ADD COLUMN voice TEXT"),t.has("seed")||e.exec("ALTER TABLE agents ADD COLUMN seed TEXT"),t.has("model")||e.exec("ALTER TABLE agents ADD COLUMN model TEXT"),t.has("provider")||e.exec("ALTER TABLE agents ADD COLUMN provider TEXT"),t.has("color")||e.exec("ALTER TABLE agents ADD COLUMN color TEXT"),t.has("title")&&!t.has("role")?e.exec("ALTER TABLE agents RENAME COLUMN title TO role"):t.has("role")||e.exec("ALTER TABLE agents ADD COLUMN role TEXT")}e.exec(`
|
|
112
112
|
CREATE TABLE IF NOT EXISTS agent_skills (
|
|
113
113
|
agent_id TEXT NOT NULL REFERENCES agents(id) ON DELETE CASCADE,
|
|
114
114
|
file TEXT NOT NULL,
|
package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_082u-ls._.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[83997,e=>{"use strict";var t=e.i(633211),r=e.i(801243);e.i(219233);var o=e.i(356942),
|
|
1
|
+
module.exports=[83997,e=>{"use strict";var t=e.i(633211),r=e.i(801243);e.i(219233);var o=e.i(356942),s=e.i(774553);let i=new Set(["replan","rollback"]);class n extends Error{constructor(e){super(`Execution graph not found: ${e}`),this.name="GraphNotFoundError"}}class d extends Error{nodeIds;constructor(e,t){super(`Execution graph ${e} is missing node(s): ${t.join(", ")}`),this.name="GraphNodeNotFoundError",this.nodeIds=t}}class a extends Error{taskId;existingGraphId;constructor(e,t){super(`Task ${e} is already bound to execution graph ${t}.`),this.name="GraphTaskAlreadyBoundError",this.taskId=e,this.existingGraphId=t}}function u(e){return null==e?null:JSON.stringify(e)}function c(e){if(null==e)return null;if("string"==typeof e)try{return JSON.parse(e)}catch{}return e}function l(e){let t=Date.parse(e);return Number.isNaN(t)?e:new Date(t).toISOString()}function p(e){return!e||"object"!=typeof e||Array.isArray(e)?{}:e}function h(e){if(!(0,s.isAutomationFrontmatterEnabled)()||!e.schedule)return;let t=(0,s.getAutomationRepository)(),r=(0,o.graphAutomationToDefinition)({graphId:e.id,taskId:e.taskId,schedule:e.schedule,createdAt:e.createdAt,updatedAt:e.updatedAt,executionState:e.executionState});t.upsertAutomation(r),t.updateAutomationState(e.id,{nextRunAt:e.schedule.nextTickAt,lastRunAt:e.schedule.lastTickAt,updatedAt:e.updatedAt,runCount:e.schedule.runCount,consecutiveFailures:e.schedule.consecutiveFailures,tickInProgress:e.schedule.tickInProgress})}function g(e){let{type:t,status:r,metrics:o,output:s,...i}=e;return{type:t,status:r,config:i,output:s??null,metrics:o??null}}function f(e){return{query(t,r){let o=e.prepare(t);return/^\s*(INSERT|UPDATE|DELETE)/i.test(t)&&!/RETURNING/i.test(t)?(o.run(...(r??[]).map(e=>e)),{rows:[]}):{rows:o.all(...(r??[]).map(e=>e))}}}}class _{getDb(){return(0,t.getSQLiteDb)()}createGraph(e,t){let o=this.getDb(),s=f(o);t?.skipTaskBinding&&(0,r.pragmaSet)(o,"foreign_keys = OFF");try{return(0,r.transaction)(o,()=>{let r=s.query("SELECT id FROM execution_graphs WHERE task_id = ? LIMIT 1",[e.taskId]).rows[0];if(r&&r.id!==e.id)throw new a(e.taskId,r.id);for(let[t,r]of(s.query(`INSERT INTO execution_graphs
|
|
2
2
|
(id, task_id, graph_version, mode, policy, done_criteria, schedule, created_at, updated_at)
|
|
3
3
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
4
4
|
ON CONFLICT (id) DO UPDATE SET
|
|
@@ -9,33 +9,38 @@ module.exports=[83997,e=>{"use strict";var t=e.i(633211),r=e.i(801243);e.i(21923
|
|
|
9
9
|
done_criteria = excluded.done_criteria,
|
|
10
10
|
schedule = excluded.schedule,
|
|
11
11
|
created_at = excluded.created_at,
|
|
12
|
-
updated_at = excluded.updated_at`,[e.id,e.taskId,e.graphVersion,e.mode,u(e.policy),u(e.doneCriteria),u(e.schedule??null),e.createdAt,e.updatedAt]),
|
|
13
|
-
VALUES (?, ?, ?, ?, ?, ?, ?)`,[e.id,t,o.type,o.status,u(o.config),u(o.output),u(o.metrics)])}for(let t of e.edges)
|
|
14
|
-
VALUES (?, ?, ?, ?, ?, ?)`,[e.id,t.from,t.to,t.type,t.condition??null,u(t.dataMapping??null)]);for(let t of e.versionHistory)this.appendEventInternal(
|
|
15
|
-
FROM graph_nodes WHERE graph_id = ? AND node_id IN (${o})`,[e,...r]),a=new Map;for(let e of
|
|
16
|
-
WHERE graph_id = ? AND node_id = ?`,[r.status??
|
|
17
|
-
VALUES (?, ?, ?, ?, ?, ?, ?)`,[e,r,t.type,t.status,u(t.config),u(t.output),u(t.metrics)])}if(t.edges)for(let r of(
|
|
18
|
-
VALUES (?, ?, ?, ?, ?, ?)`,[e,r.from,r.to,r.type,r.condition??null,u(r.dataMapping??null)]);let o=
|
|
12
|
+
updated_at = excluded.updated_at`,[e.id,e.taskId,e.graphVersion,e.mode,u(e.policy),u(e.doneCriteria),u(e.schedule??null),e.createdAt,e.updatedAt]),s.query("DELETE FROM graph_nodes WHERE graph_id = ?",[e.id]),s.query("DELETE FROM graph_edges WHERE graph_id = ?",[e.id]),Object.entries(e.nodes))){let o=g(r);s.query(`INSERT INTO graph_nodes (graph_id, node_id, type, status, config, output, metrics)
|
|
13
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)`,[e.id,t,o.type,o.status,u(o.config),u(o.output),u(o.metrics)])}for(let t of e.edges)s.query(`INSERT INTO graph_edges (graph_id, from_id, to_id, type, condition, data_mapping)
|
|
14
|
+
VALUES (?, ?, ?, ?, ?, ?)`,[e.id,t.from,t.to,t.type,t.condition??null,u(t.dataMapping??null)]);for(let t of e.versionHistory)this.appendEventInternal(s,e.id,t);for(let t of e.runtimeEvents??[])this.appendEventInternal(s,e.id,t);t?.skipTaskBinding||s.query("UPDATE tasks SET graph_id = ? WHERE id = ?",[e.id,e.taskId]);let o=this.getGraphForTask(s,e.taskId);if(!o)throw new n(e.id);return h(o),o})}finally{t?.skipTaskBinding&&(0,r.pragmaSet)(o,"foreign_keys = ON")}}getGraph(e){let t=this.getDb();return this.getGraphForTask(f(t),e)}updateNodeRuntime(e,t,o){let s=this.getDb(),i=f(s);return(0,r.transaction)(s,()=>{if(!i.query("SELECT id, graph_version FROM execution_graphs WHERE id = ?",[e]).rows[0])throw new n(e);let r=Object.keys(t);if(0===r.length){let t=i.query("SELECT graph_version, updated_at FROM execution_graphs WHERE id = ?",[e]);return{graphVersion:t.rows[0].graph_version,updatedAt:l(t.rows[0].updated_at)}}let o=r.map(()=>"?").join(", "),s=i.query(`SELECT node_id, type, status, config, output, metrics
|
|
15
|
+
FROM graph_nodes WHERE graph_id = ? AND node_id IN (${o})`,[e,...r]),a=new Map;for(let e of s.rows)a.set(e.node_id,e);let h=r.filter(e=>!a.has(e));if(h.length>0)throw new d(e,h);for(let o of r){let r=t[o],s=a.get(o);if(!s||!r)continue;let n={...p(c(s.config)),...p(r.configPatch)};void 0!==r.startedAt&&(n.startedAt=r.startedAt),void 0!==r.completedAt&&(n.completedAt=r.completedAt),void 0!==r.actualMinutes&&(n.actualMinutes=r.actualMinutes),i.query(`UPDATE graph_nodes SET status = ?, metrics = ?, output = ?, config = ?
|
|
16
|
+
WHERE graph_id = ? AND node_id = ?`,[r.status??s.status,u(r.metrics??c(s.metrics)),u(r.output??c(s.output)),u(n),e,o])}let g=i.query("UPDATE execution_graphs SET updated_at = datetime('now') WHERE id = ? RETURNING graph_version, updated_at",[e]);return{graphVersion:g.rows[0].graph_version,updatedAt:l(g.rows[0].updated_at)}})}updateGraphStructure(e,t,o){let s=this.getDb(),i=f(s);return(0,r.transaction)(s,()=>{let r=i.query("SELECT id, task_id, graph_version, mode, policy, done_criteria, schedule FROM execution_graphs WHERE id = ?",[e]).rows[0];if(!r)throw new n(e);if(t.nodes)for(let[r,o]of(i.query("DELETE FROM graph_nodes WHERE graph_id = ?",[e]),Object.entries(t.nodes))){let t=g(o);i.query(`INSERT INTO graph_nodes (graph_id, node_id, type, status, config, output, metrics)
|
|
17
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)`,[e,r,t.type,t.status,u(t.config),u(t.output),u(t.metrics)])}if(t.edges)for(let r of(i.query("DELETE FROM graph_edges WHERE graph_id = ?",[e]),t.edges))i.query(`INSERT INTO graph_edges (graph_id, from_id, to_id, type, condition, data_mapping)
|
|
18
|
+
VALUES (?, ?, ?, ?, ?, ?)`,[e,r.from,r.to,r.type,r.condition??null,u(r.dataMapping??null)]);let o=i.query(`UPDATE execution_graphs
|
|
19
19
|
SET mode = ?, policy = ?, done_criteria = ?, schedule = ?, updated_at = datetime('now')
|
|
20
20
|
WHERE id = ?
|
|
21
|
-
RETURNING graph_version, updated_at`,[t.mode??r.mode,u(t.policy??
|
|
21
|
+
RETURNING graph_version, updated_at`,[t.mode??r.mode,u(t.policy??c(r.policy)??{}),u(t.doneCriteria??c(r.done_criteria)??{}),u(t.schedule??c(r.schedule)??null),e]);if(void 0!==t.schedule){let e=this.getGraphForTask(i,r.task_id);e?.schedule&&h(e)}return{graphVersion:o.rows[0].graph_version,updatedAt:l(o.rows[0].updated_at)}})}appendEvent(e,t){let r=this.getDb();this.appendEventInternal(f(r),e,t)}getGraphForTask(e,t){let r=e.query(`SELECT id, task_id, graph_version, mode, execution_state, policy, done_criteria, schedule, created_at, updated_at
|
|
22
22
|
FROM execution_graphs WHERE task_id = ? ORDER BY updated_at DESC LIMIT 1`,[t]).rows[0];if(!r)return null;let n=e.query(`SELECT node_id, type, status, config, output, metrics
|
|
23
23
|
FROM graph_nodes WHERE graph_id = ? ORDER BY node_id ASC`,[r.id]),d=e.query(`SELECT from_id, to_id, type, condition, data_mapping
|
|
24
24
|
FROM graph_edges WHERE graph_id = ? ORDER BY from_id ASC, to_id ASC`,[r.id]),a=e.query(`SELECT event_type, payload, timestamp
|
|
25
|
-
FROM graph_events WHERE graph_id = ? ORDER BY timestamp ASC, event_type ASC`,[r.id]),u={};for(let e of n.rows)u[e.node_id]=function(e){let t={...p(
|
|
26
|
-
VALUES (?, ?, ?, ?)`,[t,r.eventType,u(r),r.timestamp])}
|
|
25
|
+
FROM graph_events WHERE graph_id = ? ORDER BY timestamp ASC, event_type ASC`,[r.id]),u={};for(let e of n.rows)u[e.node_id]=function(e){let t={...p(c(e.config)),type:e.type,status:e.status},r=c(e.metrics);null!==r&&(t.metrics=r);let o=c(e.output);return null!==o&&(t.output=o),t}(e);let h=d.rows.map(e=>({from:e.from_id,to:e.to_id,type:e.type,...e.condition?{condition:c(e.condition)}:{},...e.data_mapping?{dataMapping:c(e.data_mapping)}:{}})),g=[],f=[];for(let e of a.rows){let t=function(e){let t={...p(c(e.payload))};return"eventType"in t||(t.eventType=e.event_type),"timestamp"in t||(t.timestamp=l(e.timestamp)),t}(e);i.has(t.eventType)?g.push(t):f.push(t)}var _={id:r.id,taskId:r.task_id,graphVersion:r.graph_version,mode:r.mode,executionState:r.execution_state??void 0,nodes:u,edges:h,policy:c(r.policy)??{},doneCriteria:c(r.done_criteria)??{},schedule:c(r.schedule)??void 0,versionHistory:g,runtimeEvents:f,createdAt:l(r.created_at),updatedAt:l(r.updated_at)};if(!(0,s.isAutomationFrontmatterEnabled)())return _;let E=(0,s.getAutomationRepository)().getAutomation(_.id);return E&&"execution_graph"===E.definition.target.type?{..._,schedule:(0,o.automationRecordToGraphSchedule)(E,_.schedule)}:_}appendEventInternal(e,t,r){e.query(`INSERT INTO graph_events (graph_id, event_type, payload, timestamp)
|
|
26
|
+
VALUES (?, ?, ?, ?)`,[t,r.eventType,u(r),r.timestamp])}claimScheduleTick(e){return(this.getDb().prepare(`UPDATE execution_graphs
|
|
27
|
+
SET schedule = json_set(schedule, '$.tickInProgress', json('true')),
|
|
28
|
+
updated_at = strftime('%Y-%m-%dT%H:%M:%fZ','now')
|
|
29
|
+
WHERE task_id = ?
|
|
30
|
+
AND json_extract(schedule, '$.tickInProgress') = 0
|
|
31
|
+
AND json_extract(schedule, '$.state') = 'active'`).run(e).changes??0)>0}}let E=new _;e.s(["GraphStore",0,_,"deactivateSchedulesByRootMessageId",0,function(e){let r=e.trim();if(!r)return 0;let o=0;if((0,s.isAutomationFrontmatterEnabled)()){for(let e of(0,s.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active",rootMessageId:r})){if("execution_graph"!==e.definition.target.type)continue;let r=e.definition.target.graphId??e.definition.id,s=e.definition.target.taskId??function(e){let r=e.trim();if(!r)return null;let o=(0,t.getSQLiteDb)().prepare(`SELECT task_id AS taskId
|
|
27
32
|
FROM execution_graphs
|
|
28
33
|
WHERE id = ?
|
|
29
|
-
LIMIT 1`).get(r);return o?.taskId??null}(r);if(!
|
|
34
|
+
LIMIT 1`).get(r);return o?.taskId??null}(r);if(!s)continue;let i=E.getGraph(s);i?.schedule&&(E.updateGraphStructure(i.id,{mode:i.mode,nodes:i.nodes,edges:i.edges,policy:i.policy,doneCriteria:i.doneCriteria,schedule:{...i.schedule,state:"stopped",tickInProgress:!1}},i.graphVersion),o+=1)}if(o>0||!(0,s.isAutomationDualReadEnabled)())return o}return Number((0,t.getSQLiteDb)().prepare(`UPDATE execution_graphs
|
|
30
35
|
SET schedule = json_set(schedule, '$.state', 'stopped', '$.tickInProgress', json('false')),
|
|
31
36
|
updated_at = strftime('%Y-%m-%dT%H:%M:%fZ','now')
|
|
32
37
|
WHERE schedule IS NOT NULL
|
|
33
38
|
AND json_extract(schedule, '$.rootMessageId') = ?
|
|
34
|
-
AND json_extract(schedule, '$.state') = 'active'`).run(r).changes??0)}])},932177,e=>{"use strict";var t=e.i(923715);e.s(["completeScheduleTick",0,function(e){if(!e.schedule||!e.schedule.tickInProgress)return e;let r=e.schedule,o=r.nextTickAt;return r.cronExpr&&(o=(0,t.computeNextTickFromCron)(r.cronExpr)),{...e,schedule:{...r,tickInProgress:!1,nextTickAt:o}}},"isScheduleTickComplete",0,function(e){if(!e.schedule)return!0;let t=new Set(["done","passed","failed","skipped"]);for(let r of e.schedule.resetNodeIds){let o=e.nodes[r];if(o&&!t.has(o.status))return!1}return!0},"scheduleTickIfDue",0,function(e,t=Date.now()){let r=t=>({graph:e,tickFired:!1,resetNodeIds:[],skipReason:t});if(!e.schedule)return r("no_schedule");let o=e.schedule;if("active"!==o.state)return r("not_active");if(o.tickInProgress)return r("tick_in_progress");if(null!=o.maxRuns&&o.runCount>=o.maxRuns)return r("max_runs_reached");if(o.cronExpr&&"number"==typeof o.nextTickAt){if(t<o.nextTickAt)return r("not_due")}else if(t-(o.lastTickAt??0)<o.intervalMs)return r("not_due");let
|
|
39
|
+
AND json_extract(schedule, '$.state') = 'active'`).run(r).changes??0)}])},932177,e=>{"use strict";var t=e.i(923715);e.s(["completeScheduleTick",0,function(e){if(!e.schedule||!e.schedule.tickInProgress)return e;let r=e.schedule,o=r.nextTickAt;return r.cronExpr&&(o=(0,t.computeNextTickFromCron)(r.cronExpr)),{...e,schedule:{...r,tickInProgress:!1,nextTickAt:o}}},"isScheduleTickComplete",0,function(e){if(!e.schedule)return!0;let t=new Set(["done","passed","failed","skipped"]);for(let r of e.schedule.resetNodeIds){let o=e.nodes[r];if(o&&!t.has(o.status))return!1}return!0},"scheduleTickIfDue",0,function(e,t=Date.now()){let r=t=>({graph:e,tickFired:!1,resetNodeIds:[],skipReason:t});if(!e.schedule)return r("no_schedule");let o=e.schedule;if("active"!==o.state)return r("not_active");if(o.tickInProgress)return r("tick_in_progress");if(null!=o.maxRuns&&o.runCount>=o.maxRuns)return r("max_runs_reached");if(o.cronExpr&&"number"==typeof o.nextTickAt){if(t<o.nextTickAt)return r("not_due")}else if(t-(o.lastTickAt??0)<o.intervalMs)return r("not_due");let s=JSON.parse(JSON.stringify(e)),i=[];for(let e of o.resetNodeIds){let t=s.nodes[e];t&&("done"===t.status||"passed"===t.status||"failed"===t.status||"skipped"===t.status)&&(s.nodes[e]={...t,status:"pending",startedAt:void 0,completedAt:void 0,metrics:void 0,..."function"===t.type?{output:void 0}:{},..."conditional"===t.type?{evaluatedTo:void 0}:{}},i.push(e))}return s.schedule={...o,tickInProgress:!0,lastTickAt:t,runCount:o.runCount+1},{graph:s,tickFired:!0,resetNodeIds:i}}])},71966,e=>{"use strict";var t=e.i(633211);e.i(219233);var r=e.i(356942),o=e.i(774553),s=e.i(932177),i=e.i(923715),n=e.i(64985),d=e.i(83997);async function a(e={}){let u=new d.GraphStore,c={tickedGraphIds:[],skippedGraphIds:[],errors:[],pendingWork:[]},l=function(){let e=new Map,s=(0,t.getSQLiteDb)().prepare(`
|
|
35
40
|
SELECT task_id, id, schedule
|
|
36
41
|
FROM execution_graphs
|
|
37
42
|
WHERE schedule IS NOT NULL
|
|
38
43
|
AND json_extract(schedule, '$.state') = 'active'
|
|
39
|
-
`).all(),
|
|
44
|
+
`).all(),i=new Map(s.map(e=>[e.id,e]));if((0,o.isAutomationFrontmatterEnabled)()){for(let t of(0,o.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active"})){if("execution_graph"!==t.definition.target.type)continue;let o=t.definition.target.graphId??t.definition.id,s=t.definition.target.taskId??i.get(o)?.task_id??o;e.set(o,{taskId:s,graphId:o,schedule:(0,r.automationRecordToGraphSchedule)(t,i.get(o)?JSON.parse(i.get(o).schedule):void 0)})}if(!(0,o.isAutomationDualReadEnabled)())return[...e.values()]}for(let t of s)e.has(t.id)||e.set(t.id,{taskId:t.task_id,graphId:t.id,schedule:JSON.parse(t.schedule)});return[...e.values()]}();for(let{taskId:t}of(console.log(`[schedules:poll] found ${l.length} active schedule(s)`),l))try{let r=u.getGraph(t);if(!r){c.errors.push({graphId:t,error:Error("Graph not found")});continue}let o=(0,s.scheduleTickIfDue)(r);if(!o.tickFired){console.log(`[schedules:poll] ${t} skipped (${o.skipReason??"unknown"})`),c.skippedGraphIds.push(t);continue}console.log(`[schedules:poll] ${t} tick fired — resetting nodes`),u.updateGraphStructure(o.graph.id,{nodes:o.graph.nodes,schedule:o.graph.schedule});let d=(0,i.schedulerTick)(o.graph,e);console.log(`[schedules:poll] ${t} scheduler: fn=${d.functionToRun.length} work=${d.workToRun.length}`);let a=d.graph;for(let r of d.functionToRun){let o=a.nodes[r];if(o&&"function"===o.type)try{console.log(`[schedules:poll] ${t} executing function node "${r}"`);let o=await (0,n.executeNode)(a,r,e),s=o.graph.nodes[r];console.log(`[schedules:poll] ${t} function "${r}" → ${s?.status}`,s&&"output"in s?JSON.stringify(s.output)?.slice(0,200):""),a=o.graph}catch(e){console.error(`[schedules:poll] ${t} function "${r}" error:`,e),c.errors.push({graphId:t,error:e instanceof Error?e:Error(String(e))})}}u.updateGraphStructure(a.id,{nodes:a.nodes});let l=(0,i.schedulerTick)(a,e);for(let r of(console.log(`[schedules:poll] ${t} post-fn scheduler: cond=${l.control.conditionalNodeIds.length} work=${l.workToRun.length}`),a=l.graph,l.workToRun)){let o=a.nodes[r];if(o&&"work"===o.type)try{a=(await (0,n.executeNode)(a,r,e)).graph}catch(e){c.errors.push({graphId:t,error:e instanceof Error?e:Error(String(e))})}}if(l.workToRun.length>0){c.pendingWork.push({taskId:t,nodeIds:l.workToRun,graph:a}),u.updateGraphStructure(a.id,{nodes:a.nodes});let r=(0,i.schedulerTick)(a,e);for(let o of(console.log(`[schedules:poll] ${t} post-work scheduler: fn=${r.functionToRun.length} cond=${r.control.conditionalNodeIds.length}`),a=r.graph,r.functionToRun)){let r=a.nodes[o];if(r&&"function"===r.type)try{console.log(`[schedules:poll] ${t} executing post-work function "${o}"`),a=(await (0,n.executeNode)(a,o,e)).graph}catch(e){console.error(`[schedules:poll] ${t} post-work function "${o}" error:`,e),c.errors.push({graphId:t,error:e instanceof Error?e:Error(String(e))})}}}u.updateGraphStructure(a.id,{nodes:a.nodes});let p=Object.entries(a.nodes).map(([e,t])=>`${e}:${t.status}`).join(", ");console.log(`[schedules:poll] ${t} node states: ${p}`);let h=(0,s.isScheduleTickComplete)(a);if(console.log(`[schedules:poll] ${t} tick complete? ${h}`),h){let e=(0,s.completeScheduleTick)(a),r=e.schedule?.resetNodeIds.some(t=>e.nodes[t]?.status==="failed");if(e.schedule){let t=e.schedule.consecutiveFailures??0,o=r?t+1:0;e.schedule={...e.schedule,consecutiveFailures:o};let s=e.schedule.maxConsecutiveFailures;null!=s&&o>=s&&(e.schedule={...e.schedule,state:"paused"})}let o=u.getGraph(t);o?.schedule?.state==="stopped"&&(console.log(`[schedules:poll] ${t} schedule was stopped mid-tick, preserving stopped state`),e.schedule={...e.schedule,state:"stopped"}),u.updateGraphStructure(e.id,{nodes:e.nodes,schedule:e.schedule})}c.tickedGraphIds.push(t)}catch(e){console.error(`[schedules:poll] ${t} caught error:`,e),c.errors.push({graphId:t,error:e instanceof Error?e:Error(String(e))});try{let e=u.getGraph(t);if(e?.schedule?.tickInProgress){let r=(0,s.completeScheduleTick)(e);u.updateGraphStructure(r.id,{nodes:r.nodes,schedule:r.schedule}),console.log(`[schedules:poll] ${t} force-completed stuck tick`)}}catch{}}return c}e.s(["pollSchedules",0,a])}];
|
|
40
45
|
|
|
41
46
|
//# sourceMappingURL=apps_local_src_graph_082u-ls._.js.map
|
|
@@ -2,12 +2,12 @@ module.exports=[94042,41434,e=>{"use strict";var t,n=e.i(779429);e.i(508241);var
|
|
|
2
2
|
|
|
3
3
|
Acceptance Criteria:
|
|
4
4
|
${d.criteria.map((e,t)=>`${t+1}. ${e}`).join("\n")}`:"",s=u.length>3e4?u.slice(0,3e4)+"\n\n... (diff truncated)":u,a=[o?.name?.trim()?`Reviewer: ${o.name.trim()}`:null,o?.voice?.trim()?`Voice: ${o.voice.trim()}`:null,o?.seed?.trim()?`Core orientation: ${o.seed.trim()}`:null].filter(Boolean),{type:"work",status:"pending",workType:"spike",title:`Quality gate review: ${d.title}`,description:["You are reviewing this change against the task objective.",a.length>0?`Preserve the reviewer's distinct perspective instead of flattening into generic review language.
|
|
5
|
-
${a.join("\n")}`:"Preserve your configured reviewer voice and perspective. Do not flatten into generic review language.","\n## Task Objective",d.objective,i,"\n## Code Changes (git diff)\n```diff",s,'```\n\nRespond with your decision:\n- If the changes satisfy the objective, mark this task as done with output: {"passed": true, "reasoning": "..."}\n- If the changes do NOT satisfy the objective, mark this task as failed with output: {"passed": false, "reasoning": "..."}\n\nBe pragmatic: if the changes clearly address the objective, pass it. Only fail if the changes are clearly incomplete, wrong, or unrelated.'].join("\n"),acceptanceCriteria:d.criteria,deps:[],attempts:0,maxAttempts:1,retryPolicy:{backoffMs:0,onExhaust:"fail"},stage:"review",planNodeKey:`${t}:llm-review`}),c=await n(l,e);if("success"===c.status){let e=c.output,t=e?.passed!==!1;return{check:"llm_review",passed:t,message:e?.reasoning??"Review completed by agent",details:e?{agentOutput:e}:void 0,required:!0,command:"daemon:llm_review",timeoutMs:12e4,timedOut:!1,exitCode:+!t}}return{check:"llm_review",passed:!1,message:"failure"===c.status?`Agent review failed: ${c.message??"unknown error"}`:`Agent review blocked: ${c.message??"unknown reason"}`,required:!0,command:"daemon:llm_review",timeoutMs:12e4,timedOut:!1,exitCode:1}}function A(e){return{check:"llm_review",passed:!0,message:e,required:!0,command:"daemon:llm_review",timeoutMs:0,timedOut:!1,exitCode:0}}var I=e.i(883643);let C={progress:{defaultChecks:[],humanRequirement:"never"},quality_gate:{defaultChecks:["tests_pass","lint_clean","coverage_threshold"],humanRequirement:"optional"},design_gate:{defaultChecks:["build_success","types_valid"],humanRequirement:"often"},handoff_gate:{defaultChecks:["tests_pass","lint_clean","coverage_threshold","build_success","types_valid"],humanRequirement:"always"},approval_gate:{defaultChecks:[],humanRequirement:"always"}};class x extends Error{constructor(e){super(e),this.name="GateVerificationError"}}function M(e,t){return{...e,verificationResult:t}}function O(e,t){return{eventType:"gate_verification",nodeId:e,timestamp:t.verifiedAt,result:t}}function b(e,t,n){let r=Math.max(0,e.verifyBudgetRemaining-1);return{policy:{...e,verifyBudgetRemaining:r},exhausted:0===r,event:{eventType:"budget_consumed",budgetType:"verify",remaining:r,timestamp:n,triggerNodeId:t}}}function
|
|
5
|
+
${a.join("\n")}`:"Preserve your configured reviewer voice and perspective. Do not flatten into generic review language.","\n## Task Objective",d.objective,i,"\n## Code Changes (git diff)\n```diff",s,'```\n\nRespond with your decision:\n- If the changes satisfy the objective, mark this task as done with output: {"passed": true, "reasoning": "..."}\n- If the changes do NOT satisfy the objective, mark this task as failed with output: {"passed": false, "reasoning": "..."}\n\nBe pragmatic: if the changes clearly address the objective, pass it. Only fail if the changes are clearly incomplete, wrong, or unrelated.'].join("\n"),acceptanceCriteria:d.criteria,deps:[],attempts:0,maxAttempts:1,retryPolicy:{backoffMs:0,onExhaust:"fail"},stage:"review",planNodeKey:`${t}:llm-review`}),c=await n(l,e);if("success"===c.status){let e=c.output,t=e?.passed!==!1;return{check:"llm_review",passed:t,message:e?.reasoning??"Review completed by agent",details:e?{agentOutput:e}:void 0,required:!0,command:"daemon:llm_review",timeoutMs:12e4,timedOut:!1,exitCode:+!t}}return{check:"llm_review",passed:!1,message:"failure"===c.status?`Agent review failed: ${c.message??"unknown error"}`:`Agent review blocked: ${c.message??"unknown reason"}`,required:!0,command:"daemon:llm_review",timeoutMs:12e4,timedOut:!1,exitCode:1}}function A(e){return{check:"llm_review",passed:!0,message:e,required:!0,command:"daemon:llm_review",timeoutMs:0,timedOut:!1,exitCode:0}}var I=e.i(883643);let C={progress:{defaultChecks:[],humanRequirement:"never"},quality_gate:{defaultChecks:["tests_pass","lint_clean","coverage_threshold"],humanRequirement:"optional"},design_gate:{defaultChecks:["build_success","types_valid"],humanRequirement:"often"},handoff_gate:{defaultChecks:["tests_pass","lint_clean","coverage_threshold","build_success","types_valid"],humanRequirement:"always"},approval_gate:{defaultChecks:[],humanRequirement:"always"}};class x extends Error{constructor(e){super(e),this.name="GateVerificationError"}}function M(e,t){return{...e,verificationResult:t}}function O(e,t){return{eventType:"gate_verification",nodeId:e,timestamp:t.verifiedAt,result:t}}function b(e,t,n){let r=Math.max(0,e.verifyBudgetRemaining-1);return{policy:{...e,verifyBudgetRemaining:r},exhausted:0===r,event:{eventType:"budget_consumed",budgetType:"verify",remaining:r,timestamp:n,triggerNodeId:t}}}function G(e,t,n,r){return{passed:e,checks:n,verifiedAt:r,verifiedBy:t}}async function F(e){let{gateId:t}=e,n=e.now??new Date().toISOString(),r=e.depsSatisfied??!0,o=(a=e.gate,"pending"===a.status?(0,I.transitionGateNode)(a,{type:"START",depsSatisfied:r}):a),i={...e.policy},s=[];var a,d,u,l,c,p,f=o.status;if("passed"===f||"failed"===f||"skipped"===f)throw new x(`Cannot verify gate from terminal status '${f}'`);if("progress"===o.gateType&&"running"===o.status)return o=M((0,I.transitionGateNode)(o,{type:"AUTO_PASS",humanRequired:!1}),G(!0,"agent",[],n)),s.push(O(t,o.verificationResult)),{gate:o,policy:i,autoCheckResults:[],awaitingHuman:!1,escalated:!1,events:s};let g=[];if("running"===o.status){let r,a="progress"===(d=o).gateType||"approval_gate"===d.gateType?[]:d.verificationStrategy.checks&&d.verificationStrategy.checks.length>0?[...d.verificationStrategy.checks]:[...C[d.gateType].defaultChecks];if(!(g=await h(a,e)).every(e=>!e.required||e.passed)){let e,r;return u=o,l=i,c=g,e=M((0,I.transitionGateNode)(u,{type:"AUTO_FAIL"}),G(!1,"agent",c,n)),{gate:e,policy:(r=b(l,t,n)).policy,autoCheckResults:c,awaitingHuman:!1,escalated:r.exhausted,escalationReason:r.exhausted?"verify_budget_exhausted":void 0,events:[O(t,e.verificationResult),r.event]}}if("quality_gate"===o.gateType&&e.graph&&e.dispatchReview){let r=await N(e.graph,t,e.dispatchReview,e.cwd);if(g.push(r),!r.passed){let e=M((0,I.transitionGateNode)(o,{type:"AUTO_FAIL"}),G(!1,"agent",g,n));return s.push(O(t,e.verificationResult)),{gate:e,policy:i,autoCheckResults:g,awaitingHuman:!1,escalated:!1,events:s,llmReviewFailed:!0,llmReviewFeedback:r.message??"LLM review failed"}}}let f="never"!==(r=C[(p=o).gateType]).humanRequirement&&("always"===r.humanRequirement||("optional"===r.humanRequirement?"human"===p.verificationStrategy.type||"hybrid"===p.verificationStrategy.type:"auto"!==p.verificationStrategy.type));if(o=M(o=(0,I.transitionGateNode)(o,{type:"AUTO_PASS",humanRequired:f}),G(!0,"agent",g,n)),s.push(O(t,o.verificationResult)),!f)return{gate:o,policy:i,autoCheckResults:g,awaitingHuman:!1,escalated:!1,events:s}}if("awaiting_human"!==o.status)throw new x(`Unexpected gate status '${o.status}' after verification flow`);if(void 0===e.humanDecision)return{gate:o,policy:i,autoCheckResults:g,awaitingHuman:!0,escalated:!1,events:s};if("approve"===e.humanDecision)return o=M(o=(0,I.transitionGateNode)(o,{type:"HUMAN_APPROVE"}),G(!0,"human",o.verificationResult?.checks??g,n)),s.push(O(t,o.verificationResult)),{gate:o,policy:i,autoCheckResults:g,awaitingHuman:!1,escalated:!1,events:s};o=M(o=(0,I.transitionGateNode)(o,{type:"HUMAN_REJECT"}),G(!1,"human",o.verificationResult?.checks??g,n));let m=b(i,t,n);return i=m.policy,s.push(O(t,o.verificationResult)),s.push(m.event),{gate:o,policy:i,autoCheckResults:g,awaitingHuman:!1,escalated:m.exhausted,escalationReason:m.exhausted?"verify_budget_exhausted":void 0,events:s}}class j extends Error{timeoutMs;constructor(e){super(`Graph execution exceeded timeout (${e}ms).`),this.name="GraphExecutionTimeoutError",this.timeoutMs=e}}class q extends Error{nodeId;timeoutMs;constructor(e,t){super(`Node "${e}" execution exceeded timeout (${t}ms).`),this.name="NodeExecutionTimeoutError",this.nodeId=e,this.timeoutMs=t}}let U=async()=>void 0,P=(0,d.promisify)(a.execFile);function L(e){return e.nowMs?.()??Date.now()}function D(e){return new Date(L(e)).toISOString()}function H(e,t){return"gate"===t.type&&"number"==typeof t.verificationStrategy.timeout&&t.verificationStrategy.timeout>0?t.verificationStrategy.timeout:Math.max(1,e.policy.nodeTimeoutMs)}async function B(e,t){let n=Math.max(1,e.timeoutMs??t.policy.nodeTimeoutMs);try{let{stdout:t}=await P("bash",["-lc",e.command],{timeout:n,maxBuffer:65536,env:process.env,windowsHide:!0});return{status:"success",output:function(e,t){let n,r=e.trim();if(!r)throw Error(`Function node "${t}" produced empty stdout.`);try{n=JSON.parse(r)}catch(n){let e=n instanceof Error?n.message:String(n);throw Error(`Function node "${t}" stdout is not valid JSON: ${e}`)}if(!n||"object"!=typeof n||Array.isArray(n))throw Error(`Function node "${t}" stdout JSON must be an object.`);return n}(t,e.command)}}catch(e){return{status:"failure",message:function(e){if(e&&"object"==typeof e){if("ERR_CHILD_PROCESS_STDIO_MAXBUFFER"===e.code)return"Function stdout exceeded 65536 bytes.";if(e.killed&&e.signal)return`Function command timed out and was terminated (${e.signal}).`;let t=e.stderr?.trim();if(t)return t;if(e.message)return e.message}return"string"==typeof e?e:"Unknown function execution error."}(e),error:e}}}async function K(e,t,n){let r;try{return await Promise.race([e,new Promise((e,o)=>{r=setTimeout(()=>o(n()),t)})])}finally{r&&clearTimeout(r)}}function W(e,t){let n=e.metrics??{tokensUsed:0,latencyMs:0,retryCount:"work"===e.type?e.attempts:0};return{...e,metrics:{...n,errorMessages:[...n.errorMessages??[],t],retryCount:"work"===e.type?e.attempts:n.retryCount}}}function V(e,t,n,r){let o=e.metrics??{tokensUsed:0,latencyMs:0,retryCount:"work"===e.type?e.attempts:0},i="done"===e.status||"passed"===e.status||"failed"===e.status||"skipped"===e.status?D(n):e.completedAt;return{...e,completedAt:i,metrics:{...o,tokensUsed:o.tokensUsed+(r??0),latencyMs:Math.max(0,L(n)-t),retryCount:"work"===e.type?e.attempts:o.retryCount}}}async function J(e,t,n,r,o,i){let s=(0,I.transitionWorkNode)(n,{type:"FAIL",transient:i});if("pending"===s.status){let e=r.sleep??U;await e(Math.max(0,n.retryPolicy.backoffMs))}else"blocked"===s.status&&"escalate"===n.retryPolicy.onExhaust&&await r.onEscalateWorkFailure?.(s,o,e);return W(s,o.message)}async function Q(e,t,n,r){let o=n;"pending"===o.status&&(o=(0,I.transitionWorkNode)(o,{type:"START",depsSatisfied:!0})),o.startedAt||(o={...o,startedAt:D(r)});let i=L(r),s=H(e,o),a=!1;try{let n=r.dispatchWork??(async()=>({status:"success"})),d=await K(n(o,e),s,()=>new q(t,s));if("success"===d.status){let e=(0,I.transitionWorkNode)(o,{type:"COMPLETE"});return{node:V({...e,output:d.output??e.output},i,r,d.tokensUsed),timedOut:a}}if("blocked"===d.status){let e=(0,I.transitionWorkNode)(o,{type:"BLOCK"}),t=d.message?W(e,d.message):e;return{node:V(t,i,r),timedOut:a}}let u=Error(d.message??"Work node failed."),l=await J(e,t,o,r,u,d.transient??!0);return{node:V(l,i,r),timedOut:a}}catch(s){let n=s instanceof Error?s:Error("string"==typeof s?s:"Unknown work execution error");return a=n instanceof q,{node:V(await J(e,t,o,r,n,!0),i,r),timedOut:a}}}async function X(e,t,n){let r=e.nodes[t];if(!r||"gate"!==r.type)throw Error(`Node "${t}" is not a gate node.`);let o=L(n),i=H(e,r),s=!1,a=e,d=!1;try{let e=await K(F({gateId:t,gate:r,policy:a.policy,now:D(n),humanDecision:n.humanDecisionsByGateId?.[t],cwd:n.checkCwd,env:n.checkEnv,executor:n.checkExecutor,graph:a,dispatchReview:n.dispatchWork}),i,()=>new q(t,i)),u=V(e.gate,o,n);if(a.nodes[t]=u,a.policy=e.policy,e.llmReviewFailed){let r=e.llmReviewFeedback??"Quality gate review failed",o=n.makeReplanFromReviewFeedback??(async(e,t,n)=>{let r,o,i,s,a;return r=R(e),o=e.graphVersion,i=`fix-from-review-v${o}`,s=`quality-gate-v${o+1}`,a={type:"work",status:"pending",workType:"implementation",title:`Fix issues from quality review (v${o})`,description:["The quality gate review found issues with the current changes.\n\n## Review Feedback",n,"",r?`## Original Objective
|
|
6
6
|
${r.objective}`:"","\nAddress the feedback above and fix the issues identified by the reviewer."].join("\n"),acceptanceCriteria:["Address all issues raised in the review feedback"],deps:[],attempts:0,maxAttempts:3,retryPolicy:{backoffMs:1e3,onExhaust:"fail"},stage:"fix"},{trigger:m.GATE_FAILURE,triggeredAtNodeId:t,reason:`Quality gate LLM review failed: ${n.slice(0,200)}`,triggeredBy:"agent",addNodes:{[i]:a,[s]:{type:"gate",status:"pending",gateType:"quality_gate",required:!0,verificationStrategy:{type:"auto",checks:[],timeout:3e5},deps:[i]}},addEdges:[{from:t,to:i,type:"hard",condition:"on_failure"}]}}),i=await o(a,t,r);i&&(a=(n.replan??$)(a,i),d=!0)}else if(e.escalated&&n.makeReplanRequest){let r=n.makeReplanRequest(a,t,e);r&&(a=(n.replan??$)(a,r),d=!0)}return{graph:a,node:a.nodes[t],events:e.events,replanApplied:d,timedOut:s}}catch(u){let e=u instanceof Error?u:Error("string"==typeof u?u:"Unknown gate execution error");s=e instanceof q;let i=r;"pending"===i.status&&(i=(0,I.transitionGateNode)(i,{type:"START",depsSatisfied:!0})),"running"===i.status?i=(0,I.transitionGateNode)(i,{type:"AUTO_FAIL"}):"awaiting_human"===i.status&&(i=(0,I.transitionGateNode)(i,{type:"HUMAN_REJECT"}));let d=W(i,e.message);return a.nodes[t]=V(d,o,n),{graph:a,node:a.nodes[t],events:[],replanApplied:!1,timedOut:s}}}async function Y(t,n,r,o){let i=r;"pending"===i.status&&(i=(0,I.transitionFunctionNode)(i,{type:"START",depsSatisfied:!0})),i.startedAt||(i={...i,startedAt:D(o)});let s=L(o),a=i.timeoutMs??t.policy.nodeTimeoutMs,d=!1;try{let r=o.dispatchFunction??(async(t,n)=>{if("bash"===t.kind)return B(t,n);let{createDispatchFunction:r}=await e.A(11400);return r()(t,n)}),u=await K(r(i,t),a,()=>new q(n,a));if("success"===u.status){let e=(0,I.transitionFunctionNode)(i,{type:"COMPLETE"});return{node:V({...e,output:u.output??e.output},s,o),timedOut:d}}let l=(0,I.transitionFunctionNode)(i,{type:"FAIL"}),c=u.message?W(l,u.message):l;return u.message?.toLowerCase().includes("timed out")&&(d=!0),{node:V(c,s,o),timedOut:d}}catch(t){let e=t instanceof Error?t:Error("string"==typeof t?t:"Unknown function execution error");return d=e instanceof q,{node:V(W((0,I.transitionFunctionNode)(i,{type:"FAIL"}),e.message),s,o),timedOut:d}}}async function z(e,t,n={}){!function(e,t){if(!e.policy.graphTimeoutMs)return;let n=function(e,t){if(void 0!==t.graphStartedAtMs)return t.graphStartedAtMs;let n=Date.parse(e.createdAt);return Number.isNaN(n)?L(t):n}(e,t);if(L(t)-n>e.policy.graphTimeoutMs)throw new j(e.policy.graphTimeoutMs)}(e,n);let r=structuredClone(e),o=r.nodes[t];if(!o)throw Error(`Unknown node "${t}".`);if("function"===o.type){let e=await Y(r,t,o,n);return r.nodes[t]=e.node,{graph:r,nodeId:t,node:r.nodes[t],events:[],replanApplied:!1,timedOut:e.timedOut}}if("work"===o.type){let e=await Q(r,t,o,n);return r.nodes[t]=e.node,{graph:r,nodeId:t,node:r.nodes[t],events:[],replanApplied:!1,timedOut:e.timedOut}}if("gate"===o.type){let e=await X(r,t,n);return{graph:e.graph,nodeId:t,node:e.graph.nodes[t],events:e.events,replanApplied:e.replanApplied,timedOut:e.timedOut}}if("fork"===o.type){let e=function(e,t){let n=e.nodes[t];if(!n||"fork"!==n.type)throw Error(`Node "${t}" is not a fork node.`);if("pending"!==n.status||!n.deps.every(n=>(0,s.isDepSatisfied)(e,n,t)))return n;let r=(0,I.transitionForkNode)(n,{type:"ACTIVATE",depsSatisfied:!0});return e.nodes[t]=r,r}(r,t);return{graph:r,nodeId:t,node:e,events:[],replanApplied:!1,timedOut:!1}}if("join"===o.type){let e=function(e,t){let n=e.nodes[t];if(!n||"join"!==n.type)throw Error(`Node "${t}" is not a join node.`);if("pending"!==n.status&&"running"!==n.status)return n;let r=n.deps.map(n=>({nodeId:n,status:e.nodes[n]?.status??"failed",edgeType:e.edges.find(e=>e.from===n&&e.to===t)?.type??"hard"})),o=(0,I.transitionJoinNode)(n,{type:"EVALUATE",dependencies:r});return e.nodes[t]=o,o}(r,t);return{graph:r,nodeId:t,node:e,events:[],replanApplied:!1,timedOut:!1}}let i=function(e,t,n){let r=e.nodes[t];if(!r||"conditional"!==r.type)throw Error(`Node "${t}" is not a conditional node.`);if("pending"!==r.status||!r.deps.every(n=>(0,s.isDepSatisfied)(e,n,t)))return r;let o=(0,I.transitionConditionalNode)(r,{type:"START",depsSatisfied:!0}).node;try{var i;let s=function(e,t,n){let r=e.nodes[t];if(!r||"conditional"!==r.type)return{graph:e,nodeId:t,ctx:{graph:e,nodeId:t}};let o=e.nodes[r.condition.inputFrom],i=o&&"output"in o?o.output??null:null;return{graph:e,nodeId:t,inputFrom:r.condition.inputFrom,input:i,ctx:{graph:e,nodeId:t,inputFrom:r.condition.inputFrom,input:i},...n[t]??{}}}(e,t,n.conditionContextByNodeId??{}),a=!!((i=s.input)&&"object"==typeof i&&!Array.isArray(i))&&(0,u.evaluateCondition)(r.condition.expression,s),d=(0,I.transitionConditionalNode)(o,{type:a?"CONDITION_TRUE":"CONDITION_FALSE"});for(let n of(e.nodes[t]=d.node,d.skippedBranchNodeIds)){let t=e.nodes[n];t&&"pending"===t.status&&("work"===t.type?e.nodes[n]=(0,I.transitionWorkNode)(t,{type:"SKIP"}):"function"===t.type?e.nodes[n]=(0,I.transitionFunctionNode)(t,{type:"SKIP"}):"gate"===t.type?e.nodes[n]=(0,I.transitionGateNode)(t,{type:"SKIP"}):"fork"===t.type?e.nodes[n]=(0,I.transitionForkNode)(t,{type:"SKIP"}):"join"===t.type?e.nodes[n]=(0,I.transitionJoinNode)(t,{type:"SKIP"}):"conditional"===t.type&&(e.nodes[n]=(0,I.transitionConditionalNode)(t,{type:"SKIP"}).node))}return d.node}catch(i){let n=(0,I.transitionConditionalNode)(o,{type:"CONDITION_ERROR"}).node,r=i instanceof Error?i:Error("string"==typeof i?i:"Condition evaluation failed.");return e.nodes[t]=W(n,r.message),e.nodes[t]}}(r,t,n);return{graph:r,nodeId:t,node:i,events:[],replanApplied:!1,timedOut:!1}}e.s(["executeNode",0,z],41434);var Z=e.i(951336);function ee(){let e=new Map,t=(0,n.getSQLiteDb)().prepare(`
|
|
7
7
|
SELECT task_id, id, schedule
|
|
8
8
|
FROM execution_graphs
|
|
9
9
|
WHERE schedule IS NOT NULL
|
|
10
10
|
AND json_extract(schedule, '$.state') = 'active'
|
|
11
|
-
`).all(),i=new Map(t.map(e=>[e.id,e]));if((0,o.isAutomationFrontmatterEnabled)()){for(let t of(0,o.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active"})){if("execution_graph"!==t.definition.target.type)continue;let n=t.definition.target.graphId??t.definition.id,o=t.definition.target.taskId??i.get(n)?.task_id??n;e.set(n,{taskId:o,graphId:n,schedule:(0,r.automationRecordToGraphSchedule)(t,i.get(n)?JSON.parse(i.get(n).schedule):void 0)})}if(!(0,o.isAutomationDualReadEnabled)())return[...e.values()]}for(let n of t)e.has(n.id)||e.set(n.id,{taskId:n.task_id,graphId:n.id,schedule:JSON.parse(n.schedule)});return[...e.values()]}async function et(e={}){let t=new Z.GraphStore,n={tickedGraphIds:[],skippedGraphIds:[],errors:[],pendingWork:[]},r=ee();for(let{taskId:o}of(console.log(`[schedules:poll] found ${r.length} active schedule(s)`),r))try{let r=t.getGraph(o);if(!r){n.errors.push({graphId:o,error:Error("Graph not found")});continue}let a=(0,i.scheduleTickIfDue)(r);if(!a.tickFired){console.log(`[schedules:poll] ${o} skipped (${a.skipReason??"unknown"})`),n.skippedGraphIds.push(o);continue}console.log(`[schedules:poll] ${o} tick fired — resetting nodes`),t.updateGraphStructure(a.graph.id,{nodes:a.graph.nodes,schedule:a.graph.schedule});let d=(0,s.schedulerTick)(a.graph,e);console.log(`[schedules:poll] ${o} scheduler: fn=${d.functionToRun.length} work=${d.workToRun.length}`);let u=d.graph;for(let t of d.functionToRun){let r=u.nodes[t];if(r&&"function"===r.type)try{console.log(`[schedules:poll] ${o} executing function node "${t}"`);let n=await z(u,t,e),r=n.graph.nodes[t];console.log(`[schedules:poll] ${o} function "${t}" → ${r?.status}`,r&&"output"in r?JSON.stringify(r.output)?.slice(0,200):""),u=n.graph}catch(e){console.error(`[schedules:poll] ${o} function "${t}" error:`,e),n.errors.push({graphId:o,error:e instanceof Error?e:Error(String(e))})}}t.updateGraphStructure(u.id,{nodes:u.nodes});let l=(0,s.schedulerTick)(u,e);for(let t of(console.log(`[schedules:poll] ${o} post-fn scheduler: cond=${l.control.conditionalNodeIds.length} work=${l.workToRun.length}`),u=l.graph,l.workToRun)){let r=u.nodes[t];if(r&&"work"===r.type)try{u=(await z(u,t,e)).graph}catch(e){n.errors.push({graphId:o,error:e instanceof Error?e:Error(String(e))})}}if(l.workToRun.length>0){n.pendingWork.push({taskId:o,nodeIds:l.workToRun,graph:u}),t.updateGraphStructure(u.id,{nodes:u.nodes});let r=(0,s.schedulerTick)(u,e);for(let t of(console.log(`[schedules:poll] ${o} post-work scheduler: fn=${r.functionToRun.length} cond=${r.control.conditionalNodeIds.length}`),u=r.graph,r.functionToRun)){let r=u.nodes[t];if(r&&"function"===r.type)try{console.log(`[schedules:poll] ${o} executing post-work function "${t}"`),u=(await z(u,t,e)).graph}catch(e){console.error(`[schedules:poll] ${o} post-work function "${t}" error:`,e),n.errors.push({graphId:o,error:e instanceof Error?e:Error(String(e))})}}}t.updateGraphStructure(u.id,{nodes:u.nodes});let c=Object.entries(u.nodes).map(([e,t])=>`${e}:${t.status}`).join(", ");console.log(`[schedules:poll] ${o} node states: ${c}`);let p=(0,i.isScheduleTickComplete)(u);if(console.log(`[schedules:poll] ${o} tick complete? ${p}`),p){let e=(0,i.completeScheduleTick)(u),n=e.schedule?.resetNodeIds.some(t=>e.nodes[t]?.status==="failed");if(e.schedule){let t=e.schedule.consecutiveFailures??0,r=n?t+1:0;e.schedule={...e.schedule,consecutiveFailures:r};let o=e.schedule.maxConsecutiveFailures;null!=o&&r>=o&&(e.schedule={...e.schedule,state:"paused"})}let r=t.getGraph(o);r?.schedule?.state==="stopped"&&(console.log(`[schedules:poll] ${o} schedule was stopped mid-tick, preserving stopped state`),e.schedule={...e.schedule,state:"stopped"}),t.updateGraphStructure(e.id,{nodes:e.nodes,schedule:e.schedule})}n.tickedGraphIds.push(o)}catch(e){console.error(`[schedules:poll] ${o} caught error:`,e),n.errors.push({graphId:o,error:e instanceof Error?e:Error(String(e))});try{let e=t.getGraph(o);if(e?.schedule?.tickInProgress){let n=(0,i.completeScheduleTick)(e);t.updateGraphStructure(n.id,{nodes:n.nodes,schedule:n.schedule}),console.log(`[schedules:poll] ${o} force-completed stuck tick`)}}catch{}}return n}async function en(e,t={}){let n=new Z.GraphStore,r=n.getGraph(e);if(!r)return{fired:!1,graph:null,error:Error("Graph not found")};if(!r.schedule)return{fired:!1,graph:r,error:Error("No schedule on graph")};let o=(0,i.scheduleTickIfDue)(
|
|
11
|
+
`).all(),i=new Map(t.map(e=>[e.id,e]));if((0,o.isAutomationFrontmatterEnabled)()){for(let t of(0,o.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active"})){if("execution_graph"!==t.definition.target.type)continue;let n=t.definition.target.graphId??t.definition.id,o=t.definition.target.taskId??i.get(n)?.task_id??n;e.set(n,{taskId:o,graphId:n,schedule:(0,r.automationRecordToGraphSchedule)(t,i.get(n)?JSON.parse(i.get(n).schedule):void 0)})}if(!(0,o.isAutomationDualReadEnabled)())return[...e.values()]}for(let n of t)e.has(n.id)||e.set(n.id,{taskId:n.task_id,graphId:n.id,schedule:JSON.parse(n.schedule)});return[...e.values()]}async function et(e={}){let t=new Z.GraphStore,n={tickedGraphIds:[],skippedGraphIds:[],errors:[],pendingWork:[]},r=ee();for(let{taskId:o}of(console.log(`[schedules:poll] found ${r.length} active schedule(s)`),r))try{let r=t.getGraph(o);if(!r){n.errors.push({graphId:o,error:Error("Graph not found")});continue}let a=(0,i.scheduleTickIfDue)(r);if(!a.tickFired){console.log(`[schedules:poll] ${o} skipped (${a.skipReason??"unknown"})`),n.skippedGraphIds.push(o);continue}console.log(`[schedules:poll] ${o} tick fired — resetting nodes`),t.updateGraphStructure(a.graph.id,{nodes:a.graph.nodes,schedule:a.graph.schedule});let d=(0,s.schedulerTick)(a.graph,e);console.log(`[schedules:poll] ${o} scheduler: fn=${d.functionToRun.length} work=${d.workToRun.length}`);let u=d.graph;for(let t of d.functionToRun){let r=u.nodes[t];if(r&&"function"===r.type)try{console.log(`[schedules:poll] ${o} executing function node "${t}"`);let n=await z(u,t,e),r=n.graph.nodes[t];console.log(`[schedules:poll] ${o} function "${t}" → ${r?.status}`,r&&"output"in r?JSON.stringify(r.output)?.slice(0,200):""),u=n.graph}catch(e){console.error(`[schedules:poll] ${o} function "${t}" error:`,e),n.errors.push({graphId:o,error:e instanceof Error?e:Error(String(e))})}}t.updateGraphStructure(u.id,{nodes:u.nodes});let l=(0,s.schedulerTick)(u,e);for(let t of(console.log(`[schedules:poll] ${o} post-fn scheduler: cond=${l.control.conditionalNodeIds.length} work=${l.workToRun.length}`),u=l.graph,l.workToRun)){let r=u.nodes[t];if(r&&"work"===r.type)try{u=(await z(u,t,e)).graph}catch(e){n.errors.push({graphId:o,error:e instanceof Error?e:Error(String(e))})}}if(l.workToRun.length>0){n.pendingWork.push({taskId:o,nodeIds:l.workToRun,graph:u}),t.updateGraphStructure(u.id,{nodes:u.nodes});let r=(0,s.schedulerTick)(u,e);for(let t of(console.log(`[schedules:poll] ${o} post-work scheduler: fn=${r.functionToRun.length} cond=${r.control.conditionalNodeIds.length}`),u=r.graph,r.functionToRun)){let r=u.nodes[t];if(r&&"function"===r.type)try{console.log(`[schedules:poll] ${o} executing post-work function "${t}"`),u=(await z(u,t,e)).graph}catch(e){console.error(`[schedules:poll] ${o} post-work function "${t}" error:`,e),n.errors.push({graphId:o,error:e instanceof Error?e:Error(String(e))})}}}t.updateGraphStructure(u.id,{nodes:u.nodes});let c=Object.entries(u.nodes).map(([e,t])=>`${e}:${t.status}`).join(", ");console.log(`[schedules:poll] ${o} node states: ${c}`);let p=(0,i.isScheduleTickComplete)(u);if(console.log(`[schedules:poll] ${o} tick complete? ${p}`),p){let e=(0,i.completeScheduleTick)(u),n=e.schedule?.resetNodeIds.some(t=>e.nodes[t]?.status==="failed");if(e.schedule){let t=e.schedule.consecutiveFailures??0,r=n?t+1:0;e.schedule={...e.schedule,consecutiveFailures:r};let o=e.schedule.maxConsecutiveFailures;null!=o&&r>=o&&(e.schedule={...e.schedule,state:"paused"})}let r=t.getGraph(o);r?.schedule?.state==="stopped"&&(console.log(`[schedules:poll] ${o} schedule was stopped mid-tick, preserving stopped state`),e.schedule={...e.schedule,state:"stopped"}),t.updateGraphStructure(e.id,{nodes:e.nodes,schedule:e.schedule})}n.tickedGraphIds.push(o)}catch(e){console.error(`[schedules:poll] ${o} caught error:`,e),n.errors.push({graphId:o,error:e instanceof Error?e:Error(String(e))});try{let e=t.getGraph(o);if(e?.schedule?.tickInProgress){let n=(0,i.completeScheduleTick)(e);t.updateGraphStructure(n.id,{nodes:n.nodes,schedule:n.schedule}),console.log(`[schedules:poll] ${o} force-completed stuck tick`)}}catch{}}return n}async function en(e,t={}){let n=new Z.GraphStore,r=n.getGraph(e);if(!r)return{fired:!1,graph:null,error:Error("Graph not found")};if(!r.schedule)return{fired:!1,graph:r,error:Error("No schedule on graph")};if(!n.claimScheduleTick(e))return{fired:!1,graph:r,error:Error("Tick already in progress")};let o=n.getGraph(e)??r,a=(0,i.scheduleTickIfDue)(o);if(!a.tickFired){let e=(0,i.completeScheduleTick)(o);return n.updateGraphStructure(e.id,{nodes:e.nodes,schedule:e.schedule}),{fired:!1,graph:a.graph}}n.updateGraphStructure(a.graph.id,{nodes:a.graph.nodes,schedule:a.graph.schedule});let d=a.graph,u=0;try{for(;;){u++;let e=Object.entries(d.nodes).map(([e,t])=>`${e}:${t.status}`).join(", ");console.log(`[schedules:tick] loop ${u} nodes before: ${e}`);let n=(0,s.schedulerTick)(d,t);for(let e of(console.log(`[schedules:tick] loop ${u} fn=${n.functionToRun.length} work=${n.workToRun.length} cond=${n.control.conditionalNodeIds.length}`),n.functionToRun)){let n=d.nodes[e];n&&"function"===n.type&&(d=(await z(d,e,t)).graph,console.log(`[schedules:tick] fn "${e}" → ${d.nodes[e]?.status}`))}for(let e of(n.control.conditionalNodeIds.length>0&&(d=n.graph,console.log(`[schedules:tick] applied conditional results: ${n.control.conditionalNodeIds.join(", ")}`)),n.workToRun))d=(await z(d,e,t)).graph;let r=Object.entries(d.nodes).map(([e,t])=>`${e}:${t.status}`).join(", ");if(console.log(`[schedules:tick] loop ${u} nodes after: ${r}`),(0,i.isScheduleTickComplete)(d)){console.log(`[schedules:tick] tick complete after loop ${u}`);break}if(n.complete||!(n.workToRun.length>0||n.functionToRun.length>0))break}let e=(0,i.completeScheduleTick)(d);return n.updateGraphStructure(e.id,{nodes:e.nodes,schedule:e.schedule}),{fired:!0,graph:e}}catch(t){let e=(0,i.completeScheduleTick)(d);throw n.updateGraphStructure(e.id,{nodes:e.nodes,schedule:e.schedule}),t}}e.s(["executeScheduleTick",0,en,"getGraphsWithActiveSchedules",0,ee,"pollSchedules",0,et],94042)}];
|
|
12
12
|
|
|
13
13
|
//# sourceMappingURL=apps_local_src_graph_schedule-runner_ts_07-ozf_._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[87198,e=>{"use strict";var t=e.i(747909),i=e.i(174017),r=e.i(996250),n=e.i(759756),o=e.i(561916),a=e.i(174677),s=e.i(869741),l=e.i(316795),d=e.i(487718),c=e.i(995169),u=e.i(47587),p=e.i(666012),g=e.i(570101),v=e.i(626937),h=e.i(10372),f=e.i(193695);e.i(52474);var R=e.i(600220),m=e.i(846888),y=e.i(566453),A=e.i(779429),E=e.i(744071),w=e.i(391310),C=e.i(579582);async function S(){return Response.json(await (0,w.loadDbParticipants)())}function k(e){return"string"==typeof e&&e.trim()?e.trim():void 0}function b(e,t){let i,r=k(e.name),n=k(e.provider),o=k(e.model),a=k(e.id)??t;if(!a||!r||!n||!o)return null;let s=k(e.title),l=k(e.identity),d=k(e.identityFile),c=function(e){if(!Array.isArray(e))return;let t=e.map(e=>"string"==typeof e?{file:e.trim(),condition:""}:e&&"object"==typeof e&&"file"in e?{file:String(e.file??"").trim(),condition:String(e.condition??"").trim()}:null).filter(e=>null!==e&&e.file.length>0);return t.length>0?t:void 0}(e.skills),u=function(e){if(!Array.isArray(e))return;let t=e.map(e=>{if(!e||"object"!=typeof e||Array.isArray(e))return null;let t=String(e.repo??"").trim(),i=String(e.skillId??e.skill_id??"").trim();if(!t||!i)return null;let r=String(e.condition??"").trim();return{repo:t,skillId:i,...r?{condition:r}:{}}}).filter(e=>!!e);return t.length>0?t:void 0}(e.skillBindings),p=k(e.color)??"#6B7280";if(e.variables&&"object"==typeof e.variables&&!Array.isArray(e.variables)){let t=e.variables,r={};for(let[e,i]of Object.entries(t))"string"==typeof i&&(r[e]=i);Object.keys(r).length>0&&(i=r)}return{id:a,name:r,provider:n,model:o,color:p,...s?{title:s}:{},...l?{identity:l}:{},...k(e.voice)?{voice:k(e.voice)}:{},...k(e.seed)?{seed:k(e.seed)}:{},...d?{identityFile:d}:{},...c?{skills:c}:{},...u?{skillBindings:u}:{},...i?{variables:i}:{}}}async function j(e){let t,i=await e.json().catch(()=>({})),r=k(i.name),n=b(i,r?r.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/--+/g,"-"):void 0);if(!n)return Response.json({error:"name, provider, and model required"},{status:400});try{t=await (0,m.createAgent)(E.LOCAL_USER.id,{id:n.id,name:n.name,title:n.title,style:"balanced",description:n.identity,model:n.model??void 0,provider:n.provider,color:n.color,voice:k(i.voice),seed:k(i.seed)}),await (0,m.setAgentSkills)(t.id,n.skills??[]),await (0,y.setAgentSkillBindings)(t.id,n.skillBindings??[]),(0,C.ensureAgent)(t.id,{voice:k(i.voice),seed:k(i.seed)})}catch(e){return console.error("Failed to create agent in DB:",e),Response.json({error:"Failed to create agent"},{status:500})}let o={id:t.id,name:t.name,...t.title||n.title?{title:t.title||n.title}:{},provider:t.provider||n.provider||"claude",model:t.model||n.model||null,color:t.color||n.color||"#6B7280",...t.description||n.identity?{identity:t.description||n.identity}:{},...t.voice||n.voice?{voice:t.voice||n.voice}:{},...t.seed||n.seed?{seed:t.seed||n.seed}:{},...n.skills?.length?{skills:n.skills}:{},...n.skillBindings?.length?{skillBindings:n.skillBindings}:{}},a=k(i.projectId)??k(i.teamId);if(a)try{(0,A.getSQLiteDb)().prepare("INSERT OR IGNORE INTO project_agents (project_id, agent_id, routing_order) VALUES (?, ?, (SELECT COALESCE(MAX(routing_order), -1) + 1 FROM project_agents WHERE project_id = ?))").run(a,o.id,a)}catch(e){console.error("Failed to assign agent to project:",e)}return Response.json(o,{status:201})}async function T(e){let t,i=await e.json().catch(()=>({})),r=b(i);if(!r)return Response.json({error:"id, name, provider, and model required"},{status:400});try{t=await (0,m.updateAgent)(r.id,E.LOCAL_USER.id,{name:r.name,title:r.title,description:r.identity,model:r.model??void 0,provider:r.provider,color:r.color,voice:k(i.voice),seed:k(i.seed)}),await (0,m.setAgentSkills)(r.id,r.skills??[]),await (0,y.setAgentSkillBindings)(r.id,r.skillBindings??[]),(0,C.ensureAgent)(r.id,{voice:k(i.voice),seed:k(i.seed)})}catch(e){return console.error("Failed to update agent in DB:",e),Response.json({error:"Failed to update agent"},{status:500})}if(!t)return Response.json({error:"Agent not found"},{status:404});let n={id:t.id,name:t.name,...t.title||r.title?{title:t.title||r.title}:{},provider:t.provider||r.provider||"claude",model:t.model||r.model||null,color:t.color||r.color||"#6B7280",...t.description||r.identity?{identity:t.description||r.identity}:{},...t.voice||r.voice?{voice:t.voice||r.voice}:{},...t.seed||r.seed?{seed:t.seed||r.seed}:{},...r.skills?.length?{skills:r.skills}:{},...r.skillBindings?.length?{skillBindings:r.skillBindings}:{}};return Response.json(n)}async function _(e){let t=await e.json().catch(()=>({}));if(!Array.isArray(t.orderedIds)||t.orderedIds.some(e=>"string"!=typeof e))return Response.json({error:"orderedIds must be a string array"},{status:400});let i=await (0,w.loadDbParticipants)(),r=new Map(t.orderedIds.map((e,t)=>[e,t]));return i.sort((e,t)=>(r.get(e.id)??999)-(r.get(t.id)??999)),Response.json(i)}async function O(e){let{searchParams:t}=new URL(e.url),i=t.get("id");if(!i)return Response.json({error:"id required"},{status:400});try{await (0,m.deleteAgent)(i,E.LOCAL_USER.id)}catch(e){console.error("Failed to delete agent from DB:",e)}return Response.json({ok:!0})}e.s(["DELETE",0,O,"GET",0,S,"PATCH",0,T,"POST",0,j,"PUT",0,_,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],674618);var x=e.i(674618);let P=new t.AppRouteRouteModule({definition:{kind:i.RouteKind.APP_ROUTE,page:"/api/participants/route",pathname:"/api/participants",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/local/app/api/participants/route.ts",nextConfigOutput:"standalone",userland:x,...{}}),{workAsyncStorage:N,workUnitAsyncStorage:I,serverHooks:B}=P;async function U(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),P.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/participants/route";m=m.replace(/\/index$/,"")||"/";let y=await P.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:A,params:E,nextConfig:w,parsedUrl:C,isDraftMode:S,prerenderManifest:k,routerServerContext:b,isOnDemandRevalidate:j,revalidateOnlyGenerated:T,resolvedPathname:_,clientReferenceManifest:O,serverActionsManifest:x}=y,N=(0,s.normalizeAppPath)(m),I=!!(k.dynamicRoutes[N]||k.routes[_]),B=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,C,!1):t.end("This page could not be found"),null);if(I&&!S){let e=!!k.routes[_],t=k.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(w.adapterPath)return await B();throw new f.NoFallbackError}}let U=null;!I||P.isDev||S||(U="/index"===(U=_)?"/":U);let q=!0===P.isDev||!I,D=I&&!q;x&&O&&(0,a.setManifestsSingleton)({page:m,clientReferenceManifest:O,serverActionsManifest:x});let H=e.method||"GET",L=(0,o.getTracer)(),M=L.getActiveScopeSpan(),F=!!(null==b?void 0:b.isWrappedByNextServer),$=!!(0,n.getRequestMeta)(e,"minimalMode"),K=(0,n.getRequestMeta)(e,"incrementalCache")||await P.getIncrementalCache(e,w,k,$);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let G={params:E,previewProps:k.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:q,incrementalCache:K,cacheLifeProfiles:w.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,i,r,n)=>P.onRequestError(e,t,r,n,b)},sharedContext:{buildId:A}},V=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),X=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let n,a=async e=>P.handle(X,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let i=L.getRootSpanAttributes();if(!i)return;if(i.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${i.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=i.get("next.route");if(r){let t=`${H} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",r),n.updateName(t))}else e.updateName(`${H} ${m}`)}),s=async n=>{var o,s;let l=async({previousCacheEntry:i})=>{try{if(!$&&j&&T&&!i)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await a(n);e.fetchMetrics=G.renderOpts.fetchMetrics;let s=G.renderOpts.pendingWaitUntil;s&&r.waitUntil&&(r.waitUntil(s),s=void 0);let l=G.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(V,W,o,G.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[h.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let i=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,r=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:i,expire:r}}}}catch(t){throw(null==i?void 0:i.isStale)&&await P.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,b),t}},d=await P.handleResponse({req:e,nextConfig:w,cacheKey:U,routeKind:i.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:j,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:$});if(!I)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(s=d.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});$||t.setHeader("x-nextjs-cache",j?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,g.fromNodeOutgoingHttpHeaders)(d.value.headers);return $&&I||c.delete(h.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,v.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(V,W,new Response(d.value.body,{headers:c,status:d.value.status||200})),null};F&&M?await s(M):(n=L.getActiveScopeSpan(),await L.withPropagatedContext(e.headers,()=>L.trace(c.BaseServerSpan.handleRequest,{spanName:`${H} ${m}`,kind:o.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},s),void 0,!F))}catch(t){if(t instanceof f.NoFallbackError||await P.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,b),I)throw t;return await (0,p.sendResponse)(V,W,new Response(null,{status:500})),null}}e.s(["handler",0,U,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:I})},"routeModule",0,P,"serverHooks",0,B,"workAsyncStorage",0,N,"workUnitAsyncStorage",0,I],87198)}];
|
|
1
|
+
module.exports=[87198,e=>{"use strict";var t=e.i(747909),r=e.i(174017),i=e.i(996250),n=e.i(759756),o=e.i(561916),a=e.i(174677),s=e.i(869741),l=e.i(316795),d=e.i(487718),c=e.i(995169),u=e.i(47587),p=e.i(666012),g=e.i(570101),v=e.i(626937),h=e.i(10372),f=e.i(193695);e.i(52474);var R=e.i(600220),m=e.i(846888),y=e.i(566453),A=e.i(779429),E=e.i(744071),w=e.i(391310),C=e.i(579582);async function S(){return Response.json(await (0,w.loadDbParticipants)())}function k(e){return"string"==typeof e&&e.trim()?e.trim():void 0}function b(e,t){let r,i=k(e.name),n=k(e.provider),o=k(e.model),a=k(e.id)??t;if(!a||!i||!n||!o)return null;let s=k(e.role),l=k(e.identity),d=k(e.identityFile),c=function(e){if(!Array.isArray(e))return;let t=e.map(e=>"string"==typeof e?{file:e.trim(),condition:""}:e&&"object"==typeof e&&"file"in e?{file:String(e.file??"").trim(),condition:String(e.condition??"").trim()}:null).filter(e=>null!==e&&e.file.length>0);return t.length>0?t:void 0}(e.skills),u=function(e){if(!Array.isArray(e))return;let t=e.map(e=>{if(!e||"object"!=typeof e||Array.isArray(e))return null;let t=String(e.repo??"").trim(),r=String(e.skillId??e.skill_id??"").trim();if(!t||!r)return null;let i=String(e.condition??"").trim();return{repo:t,skillId:r,...i?{condition:i}:{}}}).filter(e=>!!e);return t.length>0?t:void 0}(e.skillBindings),p=k(e.color)??"#6B7280";if(e.variables&&"object"==typeof e.variables&&!Array.isArray(e.variables)){let t=e.variables,i={};for(let[e,r]of Object.entries(t))"string"==typeof r&&(i[e]=r);Object.keys(i).length>0&&(r=i)}return{id:a,name:i,provider:n,model:o,color:p,...s?{role:s}:{},...l?{identity:l}:{},...k(e.voice)?{voice:k(e.voice)}:{},...k(e.seed)?{seed:k(e.seed)}:{},...d?{identityFile:d}:{},...c?{skills:c}:{},...u?{skillBindings:u}:{},...r?{variables:r}:{}}}async function j(e){let t,r=await e.json().catch(()=>({})),i=k(r.name),n=b(r,i?i.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/--+/g,"-"):void 0);if(!n)return Response.json({error:"name, provider, and model required"},{status:400});try{t=await (0,m.createAgent)(E.LOCAL_USER.id,{id:n.id,name:n.name,role:n.role,style:"balanced",description:n.identity,model:n.model??void 0,provider:n.provider,color:n.color,voice:k(r.voice),seed:k(r.seed)}),await (0,m.setAgentSkills)(t.id,n.skills??[]),await (0,y.setAgentSkillBindings)(t.id,n.skillBindings??[]),(0,C.ensureAgent)(t.id,{voice:k(r.voice),seed:k(r.seed)})}catch(e){return console.error("Failed to create agent in DB:",e),Response.json({error:"Failed to create agent"},{status:500})}let o={id:t.id,name:t.name,...t.role||n.role?{role:t.role||n.role}:{},provider:t.provider||n.provider||"claude",model:t.model||n.model||null,color:t.color||n.color||"#6B7280",...t.description||n.identity?{identity:t.description||n.identity}:{},...t.voice||n.voice?{voice:t.voice||n.voice}:{},...t.seed||n.seed?{seed:t.seed||n.seed}:{},...n.skills?.length?{skills:n.skills}:{},...n.skillBindings?.length?{skillBindings:n.skillBindings}:{}},a=k(r.projectId)??k(r.teamId);if(a)try{(0,A.getSQLiteDb)().prepare("INSERT OR IGNORE INTO project_agents (project_id, agent_id, routing_order) VALUES (?, ?, (SELECT COALESCE(MAX(routing_order), -1) + 1 FROM project_agents WHERE project_id = ?))").run(a,o.id,a)}catch(e){console.error("Failed to assign agent to project:",e)}return Response.json(o,{status:201})}async function T(e){let t,r=await e.json().catch(()=>({})),i=b(r);if(!i)return Response.json({error:"id, name, provider, and model required"},{status:400});try{t=await (0,m.updateAgent)(i.id,E.LOCAL_USER.id,{name:i.name,role:i.role,description:i.identity,model:i.model??void 0,provider:i.provider,color:i.color,voice:k(r.voice),seed:k(r.seed)}),await (0,m.setAgentSkills)(i.id,i.skills??[]),await (0,y.setAgentSkillBindings)(i.id,i.skillBindings??[]),(0,C.ensureAgent)(i.id,{voice:k(r.voice),seed:k(r.seed)})}catch(e){return console.error("Failed to update agent in DB:",e),Response.json({error:"Failed to update agent"},{status:500})}if(!t)return Response.json({error:"Agent not found"},{status:404});let n={id:t.id,name:t.name,...t.role||i.role?{role:t.role||i.role}:{},provider:t.provider||i.provider||"claude",model:t.model||i.model||null,color:t.color||i.color||"#6B7280",...t.description||i.identity?{identity:t.description||i.identity}:{},...t.voice||i.voice?{voice:t.voice||i.voice}:{},...t.seed||i.seed?{seed:t.seed||i.seed}:{},...i.skills?.length?{skills:i.skills}:{},...i.skillBindings?.length?{skillBindings:i.skillBindings}:{}};return Response.json(n)}async function _(e){let t=await e.json().catch(()=>({}));if(!Array.isArray(t.orderedIds)||t.orderedIds.some(e=>"string"!=typeof e))return Response.json({error:"orderedIds must be a string array"},{status:400});let r=await (0,w.loadDbParticipants)(),i=new Map(t.orderedIds.map((e,t)=>[e,t]));return r.sort((e,t)=>(i.get(e.id)??999)-(i.get(t.id)??999)),Response.json(r)}async function O(e){let{searchParams:t}=new URL(e.url),r=t.get("id");if(!r)return Response.json({error:"id required"},{status:400});try{await (0,m.deleteAgent)(r,E.LOCAL_USER.id)}catch(e){console.error("Failed to delete agent from DB:",e)}return Response.json({ok:!0})}e.s(["DELETE",0,O,"GET",0,S,"PATCH",0,T,"POST",0,j,"PUT",0,_,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],674618);var x=e.i(674618);let P=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/participants/route",pathname:"/api/participants",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/local/app/api/participants/route.ts",nextConfigOutput:"standalone",userland:x,...{}}),{workAsyncStorage:N,workUnitAsyncStorage:I,serverHooks:B}=P;async function U(e,t,i){i.requestMeta&&(0,n.setRequestMeta)(e,i.requestMeta),P.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/participants/route";m=m.replace(/\/index$/,"")||"/";let y=await P.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==i.waitUntil||i.waitUntil.call(i,Promise.resolve()),null;let{buildId:A,params:E,nextConfig:w,parsedUrl:C,isDraftMode:S,prerenderManifest:k,routerServerContext:b,isOnDemandRevalidate:j,revalidateOnlyGenerated:T,resolvedPathname:_,clientReferenceManifest:O,serverActionsManifest:x}=y,N=(0,s.normalizeAppPath)(m),I=!!(k.dynamicRoutes[N]||k.routes[_]),B=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,C,!1):t.end("This page could not be found"),null);if(I&&!S){let e=!!k.routes[_],t=k.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(w.adapterPath)return await B();throw new f.NoFallbackError}}let U=null;!I||P.isDev||S||(U="/index"===(U=_)?"/":U);let q=!0===P.isDev||!I,D=I&&!q;x&&O&&(0,a.setManifestsSingleton)({page:m,clientReferenceManifest:O,serverActionsManifest:x});let H=e.method||"GET",L=(0,o.getTracer)(),M=L.getActiveScopeSpan(),F=!!(null==b?void 0:b.isWrappedByNextServer),$=!!(0,n.getRequestMeta)(e,"minimalMode"),K=(0,n.getRequestMeta)(e,"incrementalCache")||await P.getIncrementalCache(e,w,k,$);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let G={params:E,previewProps:k.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:q,incrementalCache:K,cacheLifeProfiles:w.cacheLife,waitUntil:i.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,i,n)=>P.onRequestError(e,t,i,n,b)},sharedContext:{buildId:A}},V=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),X=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let n,a=async e=>P.handle(X,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=L.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=r.get("next.route");if(i){let t=`${H} ${i}`;e.setAttributes({"next.route":i,"http.route":i,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",i),n.updateName(t))}else e.updateName(`${H} ${m}`)}),s=async n=>{var o,s;let l=async({previousCacheEntry:r})=>{try{if(!$&&j&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await a(n);e.fetchMetrics=G.renderOpts.fetchMetrics;let s=G.renderOpts.pendingWaitUntil;s&&i.waitUntil&&(i.waitUntil(s),s=void 0);let l=G.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(V,W,o,G.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[h.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,i=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:i}}}}catch(t){throw(null==r?void 0:r.isStale)&&await P.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,b),t}},d=await P.handleResponse({req:e,nextConfig:w,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:j,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:i.waitUntil,isMinimalMode:$});if(!I)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(s=d.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});$||t.setHeader("x-nextjs-cache",j?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,g.fromNodeOutgoingHttpHeaders)(d.value.headers);return $&&I||c.delete(h.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,v.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(V,W,new Response(d.value.body,{headers:c,status:d.value.status||200})),null};F&&M?await s(M):(n=L.getActiveScopeSpan(),await L.withPropagatedContext(e.headers,()=>L.trace(c.BaseServerSpan.handleRequest,{spanName:`${H} ${m}`,kind:o.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},s),void 0,!F))}catch(t){if(t instanceof f.NoFallbackError||await P.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,b),I)throw t;return await (0,p.sendResponse)(V,W,new Response(null,{status:500})),null}}e.s(["handler",0,U,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:I})},"routeModule",0,P,"serverHooks",0,B,"workAsyncStorage",0,N,"workUnitAsyncStorage",0,I],87198)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_0_l0fpi.js.map
|