@mndrk/agx 2.4.4 → 2.4.6
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 +14 -17
- package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/apps/local/.next/app-path-routes-manifest.json +17 -0
- package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +6 -6
- package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +27 -3
- package/cloud-runtime/standalone/apps/local/.next/routes-manifest.json +114 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +2 -2
- 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/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page.js.nft.json +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/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js.nft.json +1 -1
- 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/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.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/pull/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/pull/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js +3 -3
- 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 +3 -3
- 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/[id]/skills/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/skills/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js +5 -4
- 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/audit/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/audit/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/create/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/create/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js +12 -11
- 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/chat-runs/[id]/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/[id]/signal/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/[id]/signal/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/active-agents/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/active-agents/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/daemon/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/daemon/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/domains/[id]/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/domains/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/domains/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/domains/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/filesystem/analyze/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/analyze/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/browse/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/browse/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/pick-folder/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/pick-folder/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/issues/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/issues/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/issues/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/issues/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/issues/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/issues/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/issues/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/context/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/context/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/context/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/context/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/context/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/context/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/context/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/for-target/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/for-target/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/for-target/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/for-target/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/for-target/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/for-target/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/for-target/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/link/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/link/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/link/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/link/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/link/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/link/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/link/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/seed/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/seed/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/seed/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/seed/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/seed/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/seed/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/seed/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/sync/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/sync/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/sync/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/sync/route.js +9 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/sync/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/sync/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/sync/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/user-repos/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/user-repos/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/user-repos/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/user-repos/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/user-repos/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/user-repos/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/user-repos/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/health/route.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/health/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/history/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/knowledge-notes/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/knowledge-notes/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/learnings/route.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/learnings/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/memories/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/memories/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/messages/[id]/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/messages/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/migrate/teams-to-projects/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/migrate/teams-to-projects/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/migrate/workspaces-to-projects/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/migrate/workspaces-to-projects/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js +6 -4
- 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/processes/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/processes/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/agents/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/agents/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/agents/unassigned/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/agents/unassigned/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/migrate-v1/route.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/migrate-v2/route.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/[noteId]/route.js +6 -6
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/[noteId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/route.js +6 -6
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/route.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js +12 -12
- 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]/validate/route.js +6 -6
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/validate/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js +13 -13
- 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]/route.js +8 -8
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js +8 -8
- 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]/skills/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/skills/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/[teamId]/agents/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/[teamId]/agents/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/[teamId]/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/[teamId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/export/route.js +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/export/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/import/route.js +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/import/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js +3 -4
- 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/projects/[id]/threads/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/threads/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/variables/[key]/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/variables/[key]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/variables/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/variables/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/[entryId]/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/[entryId]/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/[entryId]/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/[entryId]/route.js +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/[entryId]/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/[entryId]/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/[entryId]/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/route.js +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/cancel/route.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/cancel/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/route.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/runs/route.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/runs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/agents/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/agents/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js +13 -13
- 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/prompt-jobs/route.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js +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 +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/complete/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js +5 -5
- 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/reactions/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/reactions/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js +11 -11
- 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 +9 -9
- 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/schedules/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/search/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js +2 -2
- 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 +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 +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 +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 +2 -2
- 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 +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 +2 -2
- 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 +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 +3 -3
- 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/system/db-status/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/system/db-status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/task-groups/[id]/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/task-groups/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/task-groups/[id]/tasks/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/task-groups/[id]/tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/task-groups/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/task-groups/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +3 -3
- 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 +4 -4
- 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]/costs/route.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/dependencies/route.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/events/route.js +7 -7
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/history/route.js +7 -7
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/metrics/route.js +7 -7
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/pause/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/pause/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/replan/route.js +7 -7
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/restart/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/resume/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/rollback/route.js +7 -7
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/route.js +8 -8
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/schedule/route.js +7 -7
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/start/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/stop/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/heartbeat/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/heartbeat/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/history/route.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/logs/route.js +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js +7 -7
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js +7 -7
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js +7 -7
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js +8 -8
- 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 +3 -3
- 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/assign-orphans/route.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js +6 -6
- 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/teams/templates/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/teams/templates/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/teams/templates/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/teams/templates/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/teams/templates/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/teams/templates/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/teams/templates/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/thread-export/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/thread-export/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/thread-repos/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/thread-repos/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js +3 -3
- 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 +3 -3
- 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/api/trackers/[tracker]/active-agents/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/active-agents/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/auth/route.js +4 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/auth/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/callback/route.js +4 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/callback/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/groups/route.js +4 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/groups/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/activity/route.js +4 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/activity/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/recap/route.js +7 -5
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/recap/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/route.js +5 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/route.js +4 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/[id]/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/mcp-setup/route.js +7 -6
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/mcp-setup/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/bulk/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/bulk/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/options/route.js +4 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/options/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/[id]/route.js +4 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/route.js +5 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/scripted/route.js +4 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/scripted/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/status/route.js +4 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token/route.js +6 -5
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token-receive/route.js +4 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token-receive/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/worker/route.js +8 -7
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/worker/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/connections/route.js +6 -5
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/connections/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/upload/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/upload/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/user-settings/route.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/user-settings/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/userPreferences/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/userPreferences/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/[id]/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/[id]/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/[id]/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/[id]/route.js +8 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/[id]/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/[id]/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/route.js +8 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/webhooks/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +2 -2
- 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/integrations/github/select-repos/page/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page/build-manifest.json +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page/next-font-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page/react-loadable-manifest.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page.js +15 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.html +13 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.meta +17 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.rsc +24 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_full.segment.rsc +24 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_head.segment.rsc +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_index.segment.rsc +10 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_tree.segment.rsc +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github/select-repos/__PAGE__.segment.rsc +9 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github/select-repos.segment.rsc +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github.segment.rsc +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations.segment.rsc +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/page.js +1 -1
- 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/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js +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/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.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/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.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/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.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]/notifications/page/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page/build-manifest.json +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page/next-font-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page/react-loadable-manifest.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.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/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.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/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.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]/prs/page/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page/build-manifest.json +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page/next-font-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page/react-loadable-manifest.json +10 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.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/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.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/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.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/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.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/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.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/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.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/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.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/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.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/[slug]/tracking/[tracker]/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js +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/setup/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js +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 +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +1 -1
- 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/status/page/build-manifest.json +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +2 -2
- 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 +1 -1
- 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-paths-manifest.json +17 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/0da96_local__next-internal_server_app_api_github_prs_context_route_actions_e8dab062.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/0da96_local__next-internal_server_app_api_github_repos_sync_route_actions_bdb9499c.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/0da96_local__next-internal_server_app_api_github_user-repos_route_actions_47aff2d8.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/30bdd_server_app_api_projects_[id]_workspace_[entryId]_route_actions_3bb3b213.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_0b17e5ca.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_10446672.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_11b3f4a4.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_31b5cff3.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_33c05c6b.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_590e0ad5.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_5e83e3ee.js +7 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_8401c4c5.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_952a9017.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_a36acede.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_ba77f4ed.js +9 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_ffc6e69f.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__004cdace._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__01811d0e._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__03585144._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__06575fba._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__07bee638._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__09088e21._.js +70 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__66e15f88._.js → [root-of-the-server]__0affc5ad._.js} +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0fbbaf2d._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0fd3df61._.js +80 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10aebc68._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10f1a668._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__73f80c8c._.js → [root-of-the-server]__1186e538._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__5da8d281._.js → [root-of-the-server]__1321970e._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1563ebff._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__15a6925d._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__15ec4cf6._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__18232fa9._.js +13 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1cd900f2._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1e1f2b15._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__23655e4b._.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__25d281e7._.js +70 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2b07507a._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2c148e2b._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2c2680ad._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__302a3088._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__31e86466._.js +150 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__33c6152d._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__34f3f619._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__38191a64._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__2ff70366._.js → [root-of-the-server]__3a8de8a3._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__3db8e17d._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__3ef7d945._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__3fdd57cb._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4206f32c._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__45af4365._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__460ae7b6._.js +136 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4848a602._.js +80 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4adce5ec._.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4b01d4cf._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__461c7102._.js → [root-of-the-server]__4ea9a658._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__b91700c0._.js → [root-of-the-server]__4ee88c24._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4fb1d912._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__520d4a7f._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__39baf5f6._.js → [root-of-the-server]__550f4c1c._.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__21721841._.js → [root-of-the-server]__56c4dfbd._.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__59a87972._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__c07d22ff._.js → [root-of-the-server]__5b22f93a._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__5d5c71d1._.js +13 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6003d4d7._.js +140 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__60e89305._.js +129 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6163ad51._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__ee43b5b0._.js → [root-of-the-server]__61c40dc9._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__e237981c._.js → [root-of-the-server]__6465e9c6._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__6edb829d._.js → [root-of-the-server]__66437bd3._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__c3d88cac._.js → [root-of-the-server]__665fff24._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__66def702._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__683b7ad7._.js +8 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__694817d0._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6d4e08bb._.js +6 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6d6da42e._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__c3408141._.js → [root-of-the-server]__6dd68c9c._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6ee2d998._.js +136 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__7d6e19c2._.js → [root-of-the-server]__71fc195c._.js} +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__736d5859._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__77c3dc54._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__7dabddde._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__7e56de3d._.js +70 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__caa79472._.js → [root-of-the-server]__7f6e383e._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__7fe442b7._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__97b5dbf7._.js → [root-of-the-server]__807a1638._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__82b9b3ca._.js +140 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8680c9de._.js +9 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__8cb4fb94._.js → [root-of-the-server]__870fac73._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__87c2a907._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8917bc4c._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8caf9c04._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__f9eff837._.js → [root-of-the-server]__8ddbf4ca._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__9079a20c._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__69a60d71._.js → [root-of-the-server]__92d34a52._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__94f42197._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__967a2388._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__96a659e4._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__9cadc914._.js +70 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__3b27260f._.js → [root-of-the-server]__9cb1dc55._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__9e1746b9._.js +129 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__a1dca50c._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__a53b564a._.js +70 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ab150f86._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__abf61695._.js +13 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__3a038592._.js → [root-of-the-server]__af70f062._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b00a5099._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b1488939._.js +156 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b630ee50._.js +70 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b9538dea._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__bc26758f._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__2d6f22a3._.js → [root-of-the-server]__bdc396a9._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__bed6045c._.js +13 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__befbac3e._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c0703065._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c077a33b._.js +121 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c1581152._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__240d98b0._.js → [root-of-the-server]__c26548ed._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c3188470._.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__f598d976._.js → [root-of-the-server]__c4855d04._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c5f7b34e._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c7e936d4._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c936d679._.js +6 -6
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__5af898cb._.js → [root-of-the-server]__ce65d2ba._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__cf474787._.js +76 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__cf7c65b9._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d020d321._.js +69 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__fb694089._.js → [root-of-the-server]__d4a50292._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d54c8dfb._.js +13 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d870d17d._.js +113 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__dacdd4c9._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ded6736b._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e1dcbfd8._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e267d8be._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e4633ba9._.js +8 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e4afa482._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e71a8a43._.js +13 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__eb3872bd._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__eb77f5f8._.js +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__eb7e055a._.js +113 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__eb9921fb._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__eca53a52._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f107289b._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f158717d._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f1a754d0._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__9e9149cd._.js → [root-of-the-server]__f48224f7._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f6074a7f._.js +70 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f6e2a463._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f7a74c7d._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__8269cb17._.js → [root-of-the-server]__f7e2f962._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f9d933dc._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fce2c984._.js +13 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fd504704._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fdc68a08._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fe3fc98e._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fe4b2e4e._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ffc62f70._.js +70 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_16bb55a0._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_603ba418._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_79080c47._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{node_modules_d2858615._.js → _9c1d28d4._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_eb019230._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{apps_local_5e5f36c4._.js → apps_local_09d85861._.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_1d99e7a5._.js +20 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_202a2565._.js +262 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_2124f905._.js +6 -6
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_22ab9b7c._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_25136564._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_29919ba4._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_29a06140._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{apps_local_f8b3abae._.js → apps_local_2caf4398._.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_2e6439a2._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{apps_local_e1f4d9ad._.js → apps_local_31ca7a35._.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_4c70e287._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_4dec65a2._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_50e3a6e3._.js +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_520e6344._.js +7 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_56a2544c._.js +122 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_5843a1a1._.js +122 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_5b3f1f41._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_65843354._.js +14 -14
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_6c0de567._.js +8 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_9168ed82._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_9726bdb7._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_9e2c9766._.js +8 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_github_issues_route_actions_21cb97ab.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_github_prs_link_route_actions_8ac048a5.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_github_prs_route_actions_20244d74.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_github_prs_seed_route_actions_7154cd78.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_github_repos_route_actions_73786015.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_teams_templates_route_actions_13f2c3d6.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_webhooks_[id]_route_actions_1c0129f8.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_webhooks_route_actions_a60f4dfd.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_a15e73a6._.js +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_bd72806a._.js +122 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_c101ba9e._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_c47f30a7._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_c9c6ee26._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_d256aa32._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{apps_local_bb07a2e3._.js → apps_local_e27f666b._.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_e55f28ef._.js +18 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_ee8ff181._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0857971b._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_3e2ced95._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_5ab8f104._.js +34 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_6bb79a1d._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_6bd3d8a2._.js +10 -10
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_8bf5d476._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_929fd1a3._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_9663f7e9._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_agent-participants_ts_49a308c0._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_cli-runner_ts_ead5489c._.js +17 -17
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_d268503a._.js +10 -10
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_db_ts_77c23d6c._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_ee6eaa28._.js +152 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_orchestrator_chat-processor_ts_46384f36._.js +26 -22
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{apps_local_lib_sqlite-query-adapter_ts_7ee03cea._.js → apps_local_lib_sqlite-query-adapter_ts_5b6033d8._.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_7b90c71f._.js +42 -21
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_a3d4d8f4._.js +37 -16
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_automations_index_ts_d2c1c6c8._.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_api-route-utils_ts_b3e10657._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_ca6c3a8b._.js +14 -14
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_schedule-runner_ts_2e38589d._.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_get-store_ts_918ec858._.js +7 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_github_prs_for-target_route_actions_9d302c68.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_projects_[id]_workspace_route_actions_6556c571.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/083c9_next-internal_server_app_integrations_github_select-repos_page_actions_fc7f5a52.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/9fb8c_lucide-react_dist_esm_icons_8c8ee1bc._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/9fb8c_lucide-react_dist_esm_icons_circle-check_eafd6d92.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{9fb8c_next_f7451f50._.js → 9fb8c_next_b797d184._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__23838f87._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__263b7091._.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__3b4708d5._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__49cbf624._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__49cdd178._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__4bf7d5b9._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__55ed4ff9._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__7752d2d2._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__9193284e._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__95ce39fc._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__a61463b8._.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__bb42490f._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__ca35cea0._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__e8c6a1f1._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__b165b26a._.js → [root-of-the-server]__ebe36ac5._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__ee9351f9._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__f66530a0._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__f81509ea._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ecd68e8._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_347d036d._.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_5c140c38._.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_7863b9d3._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_e120fc49._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_f99c22fd._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_093aa68d._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_28a1430e._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_30d021de._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_3b90cb76._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_41ca745c._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_620cb123._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_7d1abfbf._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_8969d6a5._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_988d29c0._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_9f36c765._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local__next-internal_server_app_projects_[slug]_prs_page_actions_f636afc6.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_a0dd6e69._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_layout_tsx_3bb31889._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_76330306._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_[teamId]_page_tsx_6dcfdd52._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_page_tsx_24cd120e._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_terminal_page_tsx_0933eeaf._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_thread_[threadId]_page_tsx_2a1d1d5e._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_page_tsx_b5cec607._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_b4faeb00._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_PromptJobBoard_tsx_281b2873._.js +8 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_TrackerBoard_tsx_98970bab._.js +18 -16
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_chat-ui_75dee220._.js +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_components_chat-ui_f0554cb4._.js → apps_local_components_chat-ui_d4c3d021._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_751ab3d3._.js +6 -6
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_e322e178._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_eec36ab6._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_fed01721._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_ffd2e9b4._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/ebff2__next-internal_server_app_projects_[slug]_notifications_page_actions_899b4c4c.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/edge/chunks/[root-of-the-server]__cc2760a4._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/functions-config-manifest.json +12 -0
- package/cloud-runtime/standalone/apps/local/.next/server/middleware-build-manifest.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.json +12 -0
- package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +2 -2
- 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/1600dd6ff8607d8f.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/1d8b2726979134e5.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/1fbcd40dccee738f.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/34483580b9496b00.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/37879a60d670876c.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/48feca51cf97c8a7.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/52a7b1805199c6fb.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/5b919825bc31a59e.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/62385f0f137d16a0.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/692103d55fcd0328.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/6952b44e247d594a.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/6bfdc40a24e65ca2.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/6ffcd12eabd7c65e.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/72b4109642bf21f4.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/74e3a3e93be78db8.js +48 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/7ff071e8a33d2fd8.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/8966871bc99cb968.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/8d8fe711583a59f0.js +6 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/92467c495ad08a85.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/941f7f3626ec442c.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{d5c307b52fd87861.js → 94a66d2d19268d25.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{8bd9cddc3e268c43.js → aa3029ae0b62f930.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/add53c2fe147af75.css +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/b35865f64b56d6f4.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/c00eea0c6533548d.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/d662272e49df1950.js +20 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/e0d68c6af17c8c87.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/e6d4118b7c32d11c.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/edb0e1ed5398cec6.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/f154e2ed7753f8ee.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{turbopack-5fc3e551c6965dd2.js → turbopack-87f23485587f08c3.js} +2 -2
- package/cloud-runtime/standalone/apps/local/app/api/agent-specs/pull/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/agent-specs/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/agents/[id]/profile/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/agents/[id]/skills/route.ts +7 -3
- package/cloud-runtime/standalone/apps/local/app/api/agents/export/route.ts +6 -2
- package/cloud-runtime/standalone/apps/local/app/api/automations/create/route.ts +6 -2
- package/cloud-runtime/standalone/apps/local/app/api/automations/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/chat/route.ts +17 -1
- package/cloud-runtime/standalone/apps/local/app/api/chat-runs/[id]/signal/route.ts +4 -1
- package/cloud-runtime/standalone/apps/local/app/api/domains/[id]/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/domains/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/filesystem/analyze/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/github/issues/route.ts +30 -0
- package/cloud-runtime/standalone/apps/local/app/api/github/prs/context/route.ts +46 -0
- package/cloud-runtime/standalone/apps/local/app/api/github/prs/for-target/route.ts +41 -0
- package/cloud-runtime/standalone/apps/local/app/api/github/prs/link/route.ts +144 -0
- package/cloud-runtime/standalone/apps/local/app/api/github/prs/route.ts +42 -0
- package/cloud-runtime/standalone/apps/local/app/api/github/prs/seed/route.ts +254 -0
- package/cloud-runtime/standalone/apps/local/app/api/github/repos/route.ts +69 -0
- package/cloud-runtime/standalone/apps/local/app/api/github/repos/sync/route.ts +56 -0
- package/cloud-runtime/standalone/apps/local/app/api/github/user-repos/route.ts +72 -0
- package/cloud-runtime/standalone/apps/local/app/api/history/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/knowledge-notes/route.ts +7 -3
- package/cloud-runtime/standalone/apps/local/app/api/learnings/route.ts +4 -3
- package/cloud-runtime/standalone/apps/local/app/api/memories/route.ts +3 -2
- package/cloud-runtime/standalone/apps/local/app/api/migrate/workspaces-to-projects/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/orchestrator/tasks/[taskId]/cancel/route.ts +6 -2
- package/cloud-runtime/standalone/apps/local/app/api/orchestrator/tasks/[taskId]/signal/route.ts +6 -2
- package/cloud-runtime/standalone/apps/local/app/api/orchestrator/tasks/[taskId]/start/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/orchestrator/tasks/[taskId]/status/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/participants/route.ts +15 -7
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/agents/route.ts +12 -6
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/agents/unassigned/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/migrate-v2/route.ts +4 -1
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/activities/route.ts +3 -2
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/notes/[noteId]/route.ts +4 -3
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/notes/route.ts +3 -2
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/route.ts +3 -2
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.ts +3 -2
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/worker/route.ts +3 -2
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/route.ts +5 -4
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/skills/route.ts +8 -4
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/[teamId]/agents/route.ts +8 -4
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/[teamId]/route.ts +8 -4
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/export/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/import/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/route.ts +7 -3
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/threads/route.ts +8 -4
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/variables/[key]/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/variables/route.ts +8 -4
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/workspace/[entryId]/route.ts +67 -0
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/workspace/route.ts +75 -0
- package/cloud-runtime/standalone/apps/local/app/api/projects/objective-metadata.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/projects/payload.ts +23 -1
- package/cloud-runtime/standalone/apps/local/app/api/projects/route.ts +3 -2
- package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/[id]/cancel/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/[id]/route.ts +9 -3
- package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/[id]/runs/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/agents/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/poll/route.ts +5 -4
- package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/route.ts +3 -2
- package/cloud-runtime/standalone/apps/local/app/api/queue/complete/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/queue/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/reactions/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/schedules/poll/route.ts +7 -3
- package/cloud-runtime/standalone/apps/local/app/api/schedules/route.ts +6 -2
- package/cloud-runtime/standalone/apps/local/app/api/search/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/skills/assign/route.ts +6 -2
- package/cloud-runtime/standalone/apps/local/app/api/skills/available/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/skills/detail/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/skills/history/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/skills/learn/route.ts +6 -2
- package/cloud-runtime/standalone/apps/local/app/api/skills/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/skills/unlearn/route.ts +6 -2
- package/cloud-runtime/standalone/apps/local/app/api/summarize/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/task-groups/[id]/route.ts +3 -2
- package/cloud-runtime/standalone/apps/local/app/api/task-groups/[id]/tasks/route.ts +3 -2
- package/cloud-runtime/standalone/apps/local/app/api/task-groups/route.ts +3 -2
- package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/comments/[commentId]/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/comments/route.ts +3 -2
- package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/costs/route.ts +3 -2
- package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/dependencies/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/pause/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/replan/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/restart/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/resume/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/rollback/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/route.ts +9 -5
- package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/start/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/graph/stop/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/heartbeat/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/history/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/logs/route.ts +3 -2
- package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/nodes/[nodeId]/resume/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/nodes/[nodeId]/start/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/nodes/[nodeId]/verify/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/tasks/[id]/route.ts +5 -4
- package/cloud-runtime/standalone/apps/local/app/api/tasks/assign-orphans/route.ts +3 -2
- package/cloud-runtime/standalone/apps/local/app/api/tasks/route.ts +4 -3
- package/cloud-runtime/standalone/apps/local/app/api/teams/templates/route.ts +11 -0
- package/cloud-runtime/standalone/apps/local/app/api/thread-export/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/thread-repos/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/threads/knowledge/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/threads/route.ts +3 -2
- package/cloud-runtime/standalone/apps/local/app/api/tracker/notes/route.ts +16 -3
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/items/[id]/recap/route.ts +75 -30
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/items/[id]/route.ts +5 -2
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/labels/[id]/route.ts +2 -2
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/labels/route.ts +18 -7
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/metadata/bulk/route.ts +19 -8
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/metadata/route.ts +16 -5
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/runs/[id]/route.ts +7 -3
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/runs/route.ts +7 -3
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/runs/scripted/route.ts +6 -2
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/token/route.ts +5 -2
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/worker/route.ts +4 -3
- package/cloud-runtime/standalone/apps/local/app/api/trackers/connections/route.ts +13 -6
- package/cloud-runtime/standalone/apps/local/app/api/upload/route.ts +3 -2
- package/cloud-runtime/standalone/apps/local/app/api/user-settings/route.ts +4 -3
- package/cloud-runtime/standalone/apps/local/app/api/userPreferences/route.ts +2 -1
- package/cloud-runtime/standalone/apps/local/app/api/webhooks/[id]/route.ts +77 -0
- package/cloud-runtime/standalone/apps/local/app/api/webhooks/route.ts +39 -0
- package/cloud-runtime/standalone/apps/local/app/api/webhooks/shared.ts +159 -0
- package/cloud-runtime/standalone/apps/local/app/integrations/github/select-repos/page.tsx +382 -0
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/layout.tsx +5 -2
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/notifications/page.tsx +509 -0
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/prs/page.tsx +299 -0
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/page.tsx +58 -2
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/tracking/[tracker]/page.tsx +17 -1
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/tracking/connect/page.tsx +23 -18
- package/cloud-runtime/standalone/apps/local/components/GraphDetailSidebar.tsx +1 -1
- package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +94 -41
- package/cloud-runtime/standalone/apps/local/components/TaskCard.tsx +7 -1
- package/cloud-runtime/standalone/apps/local/components/TrackerBoard.tsx +194 -43
- package/cloud-runtime/standalone/apps/local/components/activity/ActivityStreamButton.tsx +40 -0
- package/cloud-runtime/standalone/apps/local/components/activity/ActivityStreamPopover.tsx +141 -0
- package/cloud-runtime/standalone/apps/local/components/chat-ui/JumpToLatestButton.tsx +30 -0
- package/cloud-runtime/standalone/apps/local/components/chat-ui/LogPanel.tsx +22 -1
- package/cloud-runtime/standalone/apps/local/components/chat-ui/MessageList.tsx +27 -0
- package/cloud-runtime/standalone/apps/local/components/chat-ui/ThreadView.tsx +15 -1
- package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +87 -245
- package/cloud-runtime/standalone/apps/local/components/projects/ProjectObjectivesWorkspace.tsx +99 -66
- package/cloud-runtime/standalone/apps/local/components/projects/RecentlyCompletedCard.tsx +52 -7
- package/cloud-runtime/standalone/apps/local/components/projects/TeamsView.tsx +59 -14
- package/cloud-runtime/standalone/apps/local/components/projects/WorkingNowCard.tsx +56 -7
- package/cloud-runtime/standalone/apps/local/components/projects/home/ToolPathsSection.tsx +60 -2
- package/cloud-runtime/standalone/apps/local/components/prs/PrComposerPanel.tsx +219 -0
- package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +38 -14
- package/cloud-runtime/standalone/apps/local/components/tracker/FolderRow.tsx +7 -4
- package/cloud-runtime/standalone/apps/local/components/tracker/LinkedPrsSection.tsx +251 -0
- package/cloud-runtime/standalone/apps/local/components/tracker/NoteSticker.tsx +9 -0
- package/cloud-runtime/standalone/apps/local/components/tracker/RowActionsMenu.tsx +228 -0
- package/cloud-runtime/standalone/apps/local/components/tracker/SelectionBar.tsx +11 -24
- package/cloud-runtime/standalone/apps/local/components/tracker/TicketPanel.tsx +43 -9
- package/cloud-runtime/standalone/apps/local/components/tracker/TicketRecapSection.tsx +13 -3
- package/cloud-runtime/standalone/apps/local/components/tracker/TicketRow.tsx +63 -5
- package/cloud-runtime/standalone/apps/local/components/tracking/GithubRepoManager.tsx +518 -0
- package/cloud-runtime/standalone/apps/local/components/tracking/TaskIdentifierPrefix.tsx +174 -0
- package/cloud-runtime/standalone/apps/local/components/tracking/TaskTrackingNav.tsx +73 -11
- package/cloud-runtime/standalone/apps/local/components/tracking/TrackerIcon.tsx +2 -0
- package/cloud-runtime/standalone/apps/local/components/tracking/TrackerSetup.tsx +39 -12
- package/cloud-runtime/standalone/apps/local/components/ui/ResizeHandle.tsx +8 -1
- package/cloud-runtime/standalone/apps/local/db/sqlite/001_agx_board_schema.sql +28 -1
- package/cloud-runtime/standalone/apps/local/hooks/useActivityStream.ts +170 -0
- package/cloud-runtime/standalone/apps/local/hooks/useProjects.ts +3 -0
- package/cloud-runtime/standalone/apps/local/hooks/usePromptJobs.ts +16 -3
- package/cloud-runtime/standalone/apps/local/hooks/useSidebarStage.ts +2 -0
- package/cloud-runtime/standalone/apps/local/hooks/useTrackerConnection.ts +6 -1
- package/cloud-runtime/standalone/apps/local/hooks/useTrackerItems.ts +48 -3
- package/cloud-runtime/standalone/apps/local/lib/cli-runner.ts +44 -5
- package/cloud-runtime/standalone/apps/local/lib/db/agents.ts +205 -0
- package/cloud-runtime/standalone/apps/local/lib/db/index.ts +14 -0
- package/cloud-runtime/standalone/apps/local/lib/db/learnings.ts +67 -0
- package/cloud-runtime/standalone/apps/local/lib/db/projects.ts +692 -0
- package/cloud-runtime/standalone/apps/local/lib/db/resolution.ts +74 -0
- package/cloud-runtime/standalone/apps/local/lib/db/shared.ts +222 -0
- package/cloud-runtime/standalone/apps/local/lib/db/task-comments.ts +61 -0
- package/cloud-runtime/standalone/apps/local/lib/db/task-costs.ts +131 -0
- package/cloud-runtime/standalone/apps/local/lib/db/task-logs.ts +62 -0
- package/cloud-runtime/standalone/apps/local/lib/db/tasks.ts +477 -0
- package/cloud-runtime/standalone/apps/local/lib/db/teams.ts +161 -0
- package/cloud-runtime/standalone/apps/local/lib/db/types.ts +359 -0
- package/cloud-runtime/standalone/apps/local/lib/db/user-settings.ts +69 -0
- package/cloud-runtime/standalone/apps/local/lib/db/workflows.ts +439 -0
- package/cloud-runtime/standalone/apps/local/lib/db.ts +1 -2931
- package/cloud-runtime/standalone/apps/local/lib/device-flow.ts +5 -4
- package/cloud-runtime/standalone/apps/local/lib/github-client.ts +382 -0
- package/cloud-runtime/standalone/apps/local/lib/github-db.ts +143 -0
- package/cloud-runtime/standalone/apps/local/lib/github-issue-store.ts +101 -0
- package/cloud-runtime/standalone/apps/local/lib/github-link-resolver.ts +65 -0
- package/cloud-runtime/standalone/apps/local/lib/github-oauth-sessions.ts +55 -0
- package/cloud-runtime/standalone/apps/local/lib/github-pr-context.ts +125 -0
- package/cloud-runtime/standalone/apps/local/lib/github-pr-files-store.ts +59 -0
- package/cloud-runtime/standalone/apps/local/lib/github-pr-store.ts +250 -0
- package/cloud-runtime/standalone/apps/local/lib/github-prs.ts +67 -0
- package/cloud-runtime/standalone/apps/local/lib/github-repo-store.ts +63 -0
- package/cloud-runtime/standalone/apps/local/lib/github-resolvers.ts +41 -0
- package/cloud-runtime/standalone/apps/local/lib/github-token-store.ts +41 -0
- package/cloud-runtime/standalone/apps/local/lib/github-types.ts +116 -0
- package/cloud-runtime/standalone/apps/local/lib/logger.ts +1 -0
- package/cloud-runtime/standalone/apps/local/lib/migrations/task-identifier-migration.ts +39 -0
- package/cloud-runtime/standalone/apps/local/lib/notifications/index.ts +36 -12
- package/cloud-runtime/standalone/apps/local/lib/parse-body.ts +23 -0
- package/cloud-runtime/standalone/apps/local/lib/security.ts +4 -3
- package/cloud-runtime/standalone/apps/local/lib/sqlite-query-adapter.ts +31 -0
- package/cloud-runtime/standalone/apps/local/lib/stream-multiplexer.ts +19 -0
- package/cloud-runtime/standalone/apps/local/lib/task-identifier-store.ts +32 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/github/adapter.tsx +242 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/github/github-icon.tsx +18 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/github/index.ts +1 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/index.ts +4 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/recap.ts +71 -3
- package/cloud-runtime/standalone/apps/local/lib/tracker/tracker-item-metadata-store.ts +116 -56
- package/cloud-runtime/standalone/apps/local/lib/tracker/tracker-item-store.ts +16 -5
- package/cloud-runtime/standalone/apps/local/lib/tracker/types.ts +2 -0
- package/cloud-runtime/standalone/apps/local/lib/workspace-categories.ts +44 -0
- package/cloud-runtime/standalone/apps/local/middleware.ts +1 -1
- package/cloud-runtime/standalone/apps/local/migrations/sqlite_schema.sql +4 -0
- package/cloud-runtime/standalone/apps/local/next.config.ts +1 -1
- package/cloud-runtime/standalone/apps/local/public/agx_icon.png +0 -0
- package/cloud-runtime/standalone/apps/local/public/logo_dark.png +0 -0
- package/cloud-runtime/standalone/apps/local/public/logo_light.png +0 -0
- package/cloud-runtime/standalone/apps/local/src/automations/repository.ts +5 -4
- package/cloud-runtime/standalone/apps/local/src/graph/api-route-utils.ts +13 -1
- package/cloud-runtime/standalone/apps/local/src/graph/schedule-runner.ts +23 -22
- package/cloud-runtime/standalone/apps/local/src/graph/work-dispatcher.ts +7 -6
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/engine.ts +2 -1
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/store.ts +18 -1
- package/cloud-runtime/standalone/apps/local/state/trackerItemsCache.ts +79 -0
- package/cloud-runtime/standalone/apps/local/worker/index.js +1312 -872
- package/lib/cli/onboarding.js +22 -1
- package/lib/cli/providers.js +46 -2
- package/lib/cli/runCli.js +94 -4
- package/lib/commands/board.js +155 -0
- package/lib/commands/daemonBoard.js +23 -9
- package/lib/commands/narratePrs.js +384 -0
- package/lib/commands/teams.js +320 -0
- package/lib/commands/workspace.js +300 -0
- package/package.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_e2187c53.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__04ee9637._.js +0 -80
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__06d2e9cc._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__079c42ac._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08a40fc7._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0a528fae._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0b317b6d._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0e04eca4._.js +0 -40
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0e30f17d._.js +0 -13
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__101fe653._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10a90219._.js +0 -69
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10bfac8f._.js +0 -76
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__121d8e45._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1629da24._.js +0 -9
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__18ec311a._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__19d0fac1._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1d970ad0._.js +0 -40
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__20391b07._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__229b2432._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2bb933c7._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2d916976._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2eb13697._.js +0 -70
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__368f5ffd._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__37fe207d._.js +0 -13
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__41534d9e._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4641ba3f._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__498d8b2d._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4b167927._.js +0 -113
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4b9d4f5c._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4ddaa4bd._.js +0 -70
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4e296e1f._.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4fbf7baa._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__5184da61._.js +0 -20
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__51eaac77._.js +0 -13
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__580ddcca._.js +0 -40
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__5859156d._.js +0 -8
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6062bf0a._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__67ee45bc._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__68b692c4._.js +0 -131
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6e0ef488._.js +0 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6e73b6e1._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6ead08b8._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6f6afa0f._.js +0 -70
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__76030d44._.js +0 -40
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__7cd28ae0._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__7db7c421._.js +0 -134
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__80aea589._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__847ab7ae._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8a8d1048._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8b130db5._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8dd3b8c5._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8e91653e._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__905a5b44._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__90dd5edd._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__938c45c2._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__97e51964._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__9ad5f462._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__9e4c0741._.js +0 -8
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__a74338e8._.js +0 -6
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__aa4e5942._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ab2d839c._.js +0 -70
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ab9b38d8._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ac854687._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ae54e5ab._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b1357960._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b70ca903._.js +0 -13
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b810670d._.js +0 -80
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__bb757af8._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c2e55fb5._.js +0 -13
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c4a986f6._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c614c26c._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c9444a83._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__cbd45246._.js +0 -11
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d402ed75._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d8cc43c7._.js +0 -129
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d8efbb6c._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__dd538d32._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__df0f00fd._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e583235c._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e86865ef._.js +0 -13
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__eb0fd512._.js +0 -13
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ece576c1._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ef1c393e._.js +0 -70
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f21be9eb._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f6e4b64e._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f7a936d9._.js +0 -129
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fb5944d3._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fbe43c0a._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ff552f94._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_21812330._.js +0 -118
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_9f0fd451._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_b8cc7add._.js +0 -118
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_d3245de4._.js +0 -25
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_e12b284f._.js +0 -118
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_f938bff7._.js +0 -25
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0992c0e3._.js +0 -34
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_db_ts_ad844f74._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/9fb8c_lucide-react_dist_esm_icons_5e38c2ed._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/9fb8c_lucide-react_dist_esm_icons_a528155c._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__2af44092._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__452cb0f0._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__489568b4._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__4ebb738f._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__4ec098a0._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__53bd50df._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__7774a40c._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__b8484b0e._.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__bc60b3cf._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__bd05ee09._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__c2c07c79._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__fdfb2d96._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_18162573._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_8c4beba9._.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_ba2abc47._.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_e00b6c25._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_e485f527._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_064c7b93._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_1e4a0236._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_1faefdc2._.js +0 -8
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_3e5712aa._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_4259062a._.js +0 -8
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_5d6a3ce2._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_5eebb5cb._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_7395ab20._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_86f59be8._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_bbb7b83b._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_c5e75cc1._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_f67bb291._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/00d8a91bcae5edc5.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0243e7d015db440d.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/1533a70763aff97d.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/1fef9364e8667e88.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/27c70630ae583211.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/4eaf7bca1be5edfa.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/5d047fc7267a8f53.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/69008b684b4d5abd.js +0 -6
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/7148feb61274d431.css +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/716e1716d526ded9.js +0 -46
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/7353a3a1fcd5825c.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/85b0b6ed57b5df52.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/8a9626e4d7c259ee.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/8b91e7692a899f00.js +0 -20
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/938097967e2c1676.js +0 -6
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/9acdd370e9daca0d.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/9df45611d6c84e02.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/9e2208153f276f8c.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/a084c6475513e6fe.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/aa6db7c91c1ccd5f.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/cbb4dbdc63177701.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/d590384ce3045a12.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/dc1b3f7fdc1eaf5c.js +0 -4
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/f3c1b6295b9442c6.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/f4acf76cb6c82c73.js +0 -16
- /package/cloud-runtime/standalone/apps/local/.next/static/{3-6VaSnGGXdV-2eV44RDK → fipnHmd6JPn9sTuFdYS0y}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{3-6VaSnGGXdV-2eV44RDK → fipnHmd6JPn9sTuFdYS0y}/_clientMiddlewareManifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{3-6VaSnGGXdV-2eV44RDK → fipnHmd6JPn9sTuFdYS0y}/_ssgManifest.js +0 -0
|
@@ -762,6 +762,28 @@ var init_boss = __esm({
|
|
|
762
762
|
}
|
|
763
763
|
});
|
|
764
764
|
|
|
765
|
+
// apps/local/lib/db/types.ts
|
|
766
|
+
function validateIdentifierPrefix(prefix) {
|
|
767
|
+
if (prefix === null || prefix === void 0 || prefix === "") return null;
|
|
768
|
+
if (typeof prefix !== "string") {
|
|
769
|
+
throw new Error("identifier_prefix must be a string");
|
|
770
|
+
}
|
|
771
|
+
const trimmed = prefix.trim().toUpperCase();
|
|
772
|
+
if (!IDENTIFIER_PREFIX_REGEX.test(trimmed)) {
|
|
773
|
+
throw new Error(
|
|
774
|
+
"identifier_prefix must be 2-10 uppercase ASCII letters (e.g. 'TSK', 'AGX')"
|
|
775
|
+
);
|
|
776
|
+
}
|
|
777
|
+
return trimmed;
|
|
778
|
+
}
|
|
779
|
+
var IDENTIFIER_PREFIX_REGEX;
|
|
780
|
+
var init_types = __esm({
|
|
781
|
+
"apps/local/lib/db/types.ts"() {
|
|
782
|
+
"use strict";
|
|
783
|
+
IDENTIFIER_PREFIX_REGEX = /^[A-Z]{2,10}$/;
|
|
784
|
+
}
|
|
785
|
+
});
|
|
786
|
+
|
|
765
787
|
// apps/local/lib/auth-mode.ts
|
|
766
788
|
var LOCAL_USER;
|
|
767
789
|
var init_auth_mode = __esm({
|
|
@@ -1644,6 +1666,35 @@ var init_workspaces_to_projects_migration = __esm({
|
|
|
1644
1666
|
}
|
|
1645
1667
|
});
|
|
1646
1668
|
|
|
1669
|
+
// apps/local/lib/migrations/task-identifier-migration.ts
|
|
1670
|
+
function runTaskIdentifierMigration(db2) {
|
|
1671
|
+
try {
|
|
1672
|
+
db2.exec("ALTER TABLE projects ADD COLUMN identifier_prefix TEXT");
|
|
1673
|
+
} catch {
|
|
1674
|
+
}
|
|
1675
|
+
try {
|
|
1676
|
+
db2.exec(
|
|
1677
|
+
"ALTER TABLE projects ADD COLUMN next_identifier INTEGER NOT NULL DEFAULT 1"
|
|
1678
|
+
);
|
|
1679
|
+
} catch {
|
|
1680
|
+
}
|
|
1681
|
+
try {
|
|
1682
|
+
db2.exec("ALTER TABLE tasks ADD COLUMN identifier TEXT");
|
|
1683
|
+
} catch {
|
|
1684
|
+
}
|
|
1685
|
+
try {
|
|
1686
|
+
db2.exec(
|
|
1687
|
+
"CREATE UNIQUE INDEX IF NOT EXISTS idx_tasks_identifier ON tasks (project_id, identifier) WHERE identifier IS NOT NULL"
|
|
1688
|
+
);
|
|
1689
|
+
} catch {
|
|
1690
|
+
}
|
|
1691
|
+
}
|
|
1692
|
+
var init_task_identifier_migration = __esm({
|
|
1693
|
+
"apps/local/lib/migrations/task-identifier-migration.ts"() {
|
|
1694
|
+
"use strict";
|
|
1695
|
+
}
|
|
1696
|
+
});
|
|
1697
|
+
|
|
1647
1698
|
// apps/local/lib/sqlite-query-adapter.ts
|
|
1648
1699
|
var sqlite_query_adapter_exports = {};
|
|
1649
1700
|
__export(sqlite_query_adapter_exports, {
|
|
@@ -1681,6 +1732,7 @@ ${msgs.join("\n")}`);
|
|
|
1681
1732
|
}
|
|
1682
1733
|
dropLegacyTeamsTables(_db);
|
|
1683
1734
|
ensureProjectScopedTeamTables(_db);
|
|
1735
|
+
ensureWorkspaceEntriesTable(_db);
|
|
1684
1736
|
return _db;
|
|
1685
1737
|
}
|
|
1686
1738
|
function initSQLiteSchema(db2) {
|
|
@@ -1736,6 +1788,30 @@ function ensureProjectScopedTeamTables(db2) {
|
|
|
1736
1788
|
END;
|
|
1737
1789
|
`);
|
|
1738
1790
|
}
|
|
1791
|
+
function ensureWorkspaceEntriesTable(db2) {
|
|
1792
|
+
db2.exec(`
|
|
1793
|
+
CREATE TABLE IF NOT EXISTS workspace_entries (
|
|
1794
|
+
id TEXT NOT NULL PRIMARY KEY,
|
|
1795
|
+
project_id TEXT NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
|
|
1796
|
+
category TEXT NOT NULL,
|
|
1797
|
+
name TEXT NOT NULL,
|
|
1798
|
+
path TEXT DEFAULT NULL,
|
|
1799
|
+
purpose TEXT,
|
|
1800
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
1801
|
+
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
|
|
1802
|
+
updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
|
|
1803
|
+
UNIQUE(project_id, category, name)
|
|
1804
|
+
);
|
|
1805
|
+
CREATE INDEX IF NOT EXISTS idx_workspace_entries_project_id ON workspace_entries(project_id);
|
|
1806
|
+
|
|
1807
|
+
CREATE TRIGGER IF NOT EXISTS workspace_entries_updated_at
|
|
1808
|
+
AFTER UPDATE ON workspace_entries
|
|
1809
|
+
FOR EACH ROW
|
|
1810
|
+
BEGIN
|
|
1811
|
+
UPDATE workspace_entries SET updated_at = strftime('%Y-%m-%dT%H:%M:%fZ','now') WHERE rowid = NEW.rowid;
|
|
1812
|
+
END;
|
|
1813
|
+
`);
|
|
1814
|
+
}
|
|
1739
1815
|
function runMigrations(db2) {
|
|
1740
1816
|
const graphTables = db2.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='execution_graphs'").all();
|
|
1741
1817
|
if (graphTables.length > 0) {
|
|
@@ -1744,6 +1820,7 @@ function runMigrations(db2) {
|
|
|
1744
1820
|
db2.exec("ALTER TABLE execution_graphs ADD COLUMN schedule JSON");
|
|
1745
1821
|
}
|
|
1746
1822
|
}
|
|
1823
|
+
runTaskIdentifierMigration(db2);
|
|
1747
1824
|
const projectTables = db2.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='projects'").all();
|
|
1748
1825
|
if (projectTables.length > 0) {
|
|
1749
1826
|
const projectCols = pragmaAll(db2, "table_info(projects)");
|
|
@@ -1814,6 +1891,7 @@ function runMigrations(db2) {
|
|
|
1814
1891
|
CREATE INDEX IF NOT EXISTS idx_agent_skill_bindings_agent ON agent_skill_bindings (agent_id, created_at);
|
|
1815
1892
|
`);
|
|
1816
1893
|
ensureProjectScopedTeamTables(db2);
|
|
1894
|
+
ensureWorkspaceEntriesTable(db2);
|
|
1817
1895
|
db2.exec(`
|
|
1818
1896
|
CREATE TABLE IF NOT EXISTS project_agents (
|
|
1819
1897
|
project_id TEXT NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
|
|
@@ -2227,6 +2305,7 @@ var init_sqlite_query_adapter = __esm({
|
|
|
2227
2305
|
init_participants_store();
|
|
2228
2306
|
init_startup();
|
|
2229
2307
|
init_workspaces_to_projects_migration();
|
|
2308
|
+
init_task_identifier_migration();
|
|
2230
2309
|
({ DatabaseSync: DatabaseSyncCtor3 } = process.getBuiltinModule("node:sqlite"));
|
|
2231
2310
|
AGX_DATA_DIR3 = process.env.AGX_DATA_DIR || import_path9.default.join(import_os9.default.homedir(), ".agx");
|
|
2232
2311
|
SqlExpression = class {
|
|
@@ -2638,6 +2717,210 @@ var init_db_adapter = __esm({
|
|
|
2638
2717
|
}
|
|
2639
2718
|
});
|
|
2640
2719
|
|
|
2720
|
+
// apps/local/lib/db/shared.ts
|
|
2721
|
+
function isMissingRelationError(error, relation) {
|
|
2722
|
+
if (!error) return false;
|
|
2723
|
+
const message = typeof error.message === "string" ? error.message : "";
|
|
2724
|
+
return error.code === "42P01" || error.code === "PGRST205" || message.includes(`relation "${relation}" does not exist`) || message.includes(`Could not find the table 'agx.${relation}'`) || message.includes(`Could not find the table 'public.${relation}'`);
|
|
2725
|
+
}
|
|
2726
|
+
function resolveTaskConfig(task, stageConfig, userSettings) {
|
|
2727
|
+
const clean = (v) => {
|
|
2728
|
+
if (typeof v !== "string") return null;
|
|
2729
|
+
const t = v.trim();
|
|
2730
|
+
return t ? t : null;
|
|
2731
|
+
};
|
|
2732
|
+
let cliDefaultProvider = null;
|
|
2733
|
+
try {
|
|
2734
|
+
const fs12 = require("fs");
|
|
2735
|
+
const path15 = require("path");
|
|
2736
|
+
const configPath = path15.join(process.env.HOME || "", ".agx", "config.json");
|
|
2737
|
+
const cliConfig = JSON.parse(fs12.readFileSync(configPath, "utf-8"));
|
|
2738
|
+
cliDefaultProvider = clean(cliConfig?.defaultProvider) || null;
|
|
2739
|
+
} catch {
|
|
2740
|
+
}
|
|
2741
|
+
const globalDefaultProvider = clean(userSettings?.default_provider) || cliDefaultProvider || "claude";
|
|
2742
|
+
const provider = clean(task.provider) || clean(stageConfig?.provider) || globalDefaultProvider;
|
|
2743
|
+
const globalDefaultModel = clean(userSettings?.models?.[provider]) || null;
|
|
2744
|
+
const model = clean(task.model) || clean(stageConfig?.model) || globalDefaultModel || null;
|
|
2745
|
+
const swarm = task.swarm ?? stageConfig?.swarm ?? false;
|
|
2746
|
+
const swarm_models = task.swarm_models?.length ? task.swarm_models : stageConfig?.swarm_models || [];
|
|
2747
|
+
return {
|
|
2748
|
+
provider,
|
|
2749
|
+
model,
|
|
2750
|
+
swarm,
|
|
2751
|
+
swarm_models
|
|
2752
|
+
};
|
|
2753
|
+
}
|
|
2754
|
+
function slugify2(input) {
|
|
2755
|
+
return input.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 40) || "task";
|
|
2756
|
+
}
|
|
2757
|
+
async function generateUniqueSlug(base, db2) {
|
|
2758
|
+
let slug = slugify2(base);
|
|
2759
|
+
for (let i = 0; i < 5; i++) {
|
|
2760
|
+
const { data, error } = await db2.from("tasks").select("id").eq("slug", slug).limit(1);
|
|
2761
|
+
if (error) throw error;
|
|
2762
|
+
if (!data || data.length === 0) return slug;
|
|
2763
|
+
const suffix = Math.random().toString(36).slice(2, 6);
|
|
2764
|
+
slug = `${slugify2(base)}-${suffix}`.slice(0, 48);
|
|
2765
|
+
}
|
|
2766
|
+
return `${slugify2(base)}-${Date.now().toString(36).slice(-4)}`.slice(0, 48);
|
|
2767
|
+
}
|
|
2768
|
+
async function generateUniqueProjectSlug(base, userId, db2, excludeProjectId) {
|
|
2769
|
+
let slug = slugify2(base);
|
|
2770
|
+
for (let i = 0; i < 5; i++) {
|
|
2771
|
+
let query = db2.from("projects").select("id").eq("slug", slug).eq("user_id", userId);
|
|
2772
|
+
if (excludeProjectId) {
|
|
2773
|
+
query = query.neq("id", excludeProjectId);
|
|
2774
|
+
}
|
|
2775
|
+
const { data, error } = await query.limit(1);
|
|
2776
|
+
if (error) throw error;
|
|
2777
|
+
if (!data || data.length === 0) return slug;
|
|
2778
|
+
const suffix = Math.random().toString(36).slice(2, 6);
|
|
2779
|
+
slug = `${slugify2(base)}-${suffix}`.slice(0, 48);
|
|
2780
|
+
}
|
|
2781
|
+
return `${slugify2(base)}-${Date.now().toString(36).slice(-4)}`.slice(0, 48);
|
|
2782
|
+
}
|
|
2783
|
+
function getDbClient(client) {
|
|
2784
|
+
return client ?? createAdminDbClient();
|
|
2785
|
+
}
|
|
2786
|
+
function parseDependsOnValue(value) {
|
|
2787
|
+
const trimmed = value.trim();
|
|
2788
|
+
if (!trimmed) return [];
|
|
2789
|
+
try {
|
|
2790
|
+
const parsed = JSON.parse(trimmed);
|
|
2791
|
+
if (Array.isArray(parsed)) {
|
|
2792
|
+
return parsed.map((item) => String(item || "").trim()).filter(Boolean);
|
|
2793
|
+
}
|
|
2794
|
+
} catch {
|
|
2795
|
+
}
|
|
2796
|
+
return trimmed.split(",").map((item) => item.trim()).filter(Boolean);
|
|
2797
|
+
}
|
|
2798
|
+
function normalizeDependsOnInput(input) {
|
|
2799
|
+
if (!input) return [];
|
|
2800
|
+
let candidates;
|
|
2801
|
+
if (Array.isArray(input)) {
|
|
2802
|
+
candidates = input.map((item) => typeof item === "string" ? item : item === null || item === void 0 ? "" : String(item)).filter(Boolean);
|
|
2803
|
+
} else if (typeof input === "string") {
|
|
2804
|
+
candidates = parseDependsOnValue(input);
|
|
2805
|
+
} else {
|
|
2806
|
+
return [];
|
|
2807
|
+
}
|
|
2808
|
+
return Array.from(new Set(candidates.map((id) => id.trim()).filter(Boolean)));
|
|
2809
|
+
}
|
|
2810
|
+
function parseFrontmatter(markdown) {
|
|
2811
|
+
const match = markdown.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
|
|
2812
|
+
if (!match) {
|
|
2813
|
+
return { frontmatter: {}, body: markdown };
|
|
2814
|
+
}
|
|
2815
|
+
const frontmatter = {};
|
|
2816
|
+
const lines = match[1].split("\n");
|
|
2817
|
+
for (const line of lines) {
|
|
2818
|
+
const colonIndex = line.indexOf(":");
|
|
2819
|
+
if (colonIndex > 0) {
|
|
2820
|
+
const key = line.slice(0, colonIndex).trim();
|
|
2821
|
+
const value = line.slice(colonIndex + 1).trim();
|
|
2822
|
+
if (key === "depends_on") {
|
|
2823
|
+
frontmatter[key] = parseDependsOnValue(value);
|
|
2824
|
+
continue;
|
|
2825
|
+
}
|
|
2826
|
+
if (value === "true") frontmatter[key] = true;
|
|
2827
|
+
else if (value === "false") frontmatter[key] = false;
|
|
2828
|
+
else if (/^\d+$/.test(value)) frontmatter[key] = parseInt(value, 10);
|
|
2829
|
+
else frontmatter[key] = value;
|
|
2830
|
+
}
|
|
2831
|
+
}
|
|
2832
|
+
return { frontmatter, body: match[2] };
|
|
2833
|
+
}
|
|
2834
|
+
async function ensureNoCircularDependency(taskId, dependsOn, client) {
|
|
2835
|
+
if (!taskId || !dependsOn?.length) return;
|
|
2836
|
+
const db2 = getDbClient(client);
|
|
2837
|
+
const visited = /* @__PURE__ */ new Set();
|
|
2838
|
+
const stack = [...dependsOn];
|
|
2839
|
+
while (stack.length) {
|
|
2840
|
+
const candidate = stack.pop();
|
|
2841
|
+
if (!candidate) continue;
|
|
2842
|
+
if (candidate === taskId) {
|
|
2843
|
+
throw new Error("Circular dependency detected");
|
|
2844
|
+
}
|
|
2845
|
+
if (visited.has(candidate)) continue;
|
|
2846
|
+
visited.add(candidate);
|
|
2847
|
+
const { data, error } = await db2.from("tasks").select("depends_on").eq("id", candidate).maybeSingle();
|
|
2848
|
+
if (error) {
|
|
2849
|
+
if (error.code === "PGRST116" || error.code === "42703") continue;
|
|
2850
|
+
throw error;
|
|
2851
|
+
}
|
|
2852
|
+
if (!data) continue;
|
|
2853
|
+
const childDeps = Array.isArray(data.depends_on) ? data.depends_on : [];
|
|
2854
|
+
for (const next of childDeps) {
|
|
2855
|
+
if (next && !visited.has(next)) {
|
|
2856
|
+
stack.push(next);
|
|
2857
|
+
}
|
|
2858
|
+
}
|
|
2859
|
+
}
|
|
2860
|
+
}
|
|
2861
|
+
function extractTitle(markdown) {
|
|
2862
|
+
const { body } = parseFrontmatter(markdown);
|
|
2863
|
+
const match = body.match(/^#\s+(.+)$/m);
|
|
2864
|
+
return match ? match[1] : void 0;
|
|
2865
|
+
}
|
|
2866
|
+
var init_shared = __esm({
|
|
2867
|
+
"apps/local/lib/db/shared.ts"() {
|
|
2868
|
+
"use strict";
|
|
2869
|
+
init_db_adapter();
|
|
2870
|
+
}
|
|
2871
|
+
});
|
|
2872
|
+
|
|
2873
|
+
// apps/local/lib/db/user-settings.ts
|
|
2874
|
+
function normalizeChangedAt(value) {
|
|
2875
|
+
if (typeof value === "string") {
|
|
2876
|
+
const t = Date.parse(value);
|
|
2877
|
+
if (Number.isFinite(t)) return new Date(t).toISOString();
|
|
2878
|
+
}
|
|
2879
|
+
return (/* @__PURE__ */ new Date()).toISOString();
|
|
2880
|
+
}
|
|
2881
|
+
async function getUserSettings(userId) {
|
|
2882
|
+
const db2 = createAdminDbClient();
|
|
2883
|
+
const { data, error } = await db2.from("user_settings").select("*").eq("user_id", userId).maybeSingle();
|
|
2884
|
+
if (error) {
|
|
2885
|
+
if (isMissingRelationError(error, "user_settings")) return null;
|
|
2886
|
+
throw error;
|
|
2887
|
+
}
|
|
2888
|
+
if (!data) return null;
|
|
2889
|
+
return data;
|
|
2890
|
+
}
|
|
2891
|
+
async function upsertUserSettings(userId, input, options) {
|
|
2892
|
+
const onlyIfNewer = options?.onlyIfNewer !== false;
|
|
2893
|
+
const incomingChangedAt = normalizeChangedAt(input.changed_at);
|
|
2894
|
+
const existing = await getUserSettings(userId);
|
|
2895
|
+
if (onlyIfNewer && existing?.changed_at) {
|
|
2896
|
+
const existingTs = Date.parse(existing.changed_at);
|
|
2897
|
+
const incomingTs = Date.parse(incomingChangedAt);
|
|
2898
|
+
if (Number.isFinite(existingTs) && Number.isFinite(incomingTs) && incomingTs <= existingTs) {
|
|
2899
|
+
return { settings: existing, updated: false };
|
|
2900
|
+
}
|
|
2901
|
+
}
|
|
2902
|
+
const payload = {
|
|
2903
|
+
user_id: userId,
|
|
2904
|
+
default_provider: input.default_provider ?? existing?.default_provider ?? null,
|
|
2905
|
+
models: input.models ?? existing?.models ?? {},
|
|
2906
|
+
provenance: input.provenance,
|
|
2907
|
+
changed_at: incomingChangedAt
|
|
2908
|
+
};
|
|
2909
|
+
const db2 = createAdminDbClient();
|
|
2910
|
+
const { error: upsertError } = await db2.from("user_settings").upsert(payload, { onConflict: "user_id" });
|
|
2911
|
+
if (upsertError) throw upsertError;
|
|
2912
|
+
const after = await getUserSettings(userId);
|
|
2913
|
+
if (!after) throw new Error("Failed to load user_settings after upsert");
|
|
2914
|
+
return { settings: after, updated: true };
|
|
2915
|
+
}
|
|
2916
|
+
var init_user_settings = __esm({
|
|
2917
|
+
"apps/local/lib/db/user-settings.ts"() {
|
|
2918
|
+
"use strict";
|
|
2919
|
+
init_db_adapter();
|
|
2920
|
+
init_shared();
|
|
2921
|
+
}
|
|
2922
|
+
});
|
|
2923
|
+
|
|
2641
2924
|
// apps/local/lib/dependency-helpers.ts
|
|
2642
2925
|
function describeDependency(entry) {
|
|
2643
2926
|
if (entry.title) return entry.title;
|
|
@@ -2666,11 +2949,82 @@ function isDependencyBlockedReason(reason) {
|
|
|
2666
2949
|
var DEPENDENCY_BLOCKED_REASON_PREFIX, MAX_DISPLAYED_DEPENDENCIES;
|
|
2667
2950
|
var init_dependency_helpers = __esm({
|
|
2668
2951
|
"apps/local/lib/dependency-helpers.ts"() {
|
|
2952
|
+
"use strict";
|
|
2669
2953
|
DEPENDENCY_BLOCKED_REASON_PREFIX = "Waiting on dependencies";
|
|
2670
2954
|
MAX_DISPLAYED_DEPENDENCIES = 3;
|
|
2671
2955
|
}
|
|
2672
2956
|
});
|
|
2673
2957
|
|
|
2958
|
+
// lib/logger.ts
|
|
2959
|
+
function scheduleFlush() {
|
|
2960
|
+
if (flushTimer) return;
|
|
2961
|
+
flushTimer = setTimeout(() => {
|
|
2962
|
+
flushTimer = null;
|
|
2963
|
+
flush();
|
|
2964
|
+
}, FLUSH_INTERVAL_MS);
|
|
2965
|
+
}
|
|
2966
|
+
function enqueue(entry) {
|
|
2967
|
+
if (!LOG_ENABLED) return;
|
|
2968
|
+
buffer.push(entry);
|
|
2969
|
+
if (buffer.length >= MAX_BUFFER_SIZE) {
|
|
2970
|
+
flush();
|
|
2971
|
+
} else {
|
|
2972
|
+
scheduleFlush();
|
|
2973
|
+
}
|
|
2974
|
+
}
|
|
2975
|
+
function formatError(error) {
|
|
2976
|
+
if (error instanceof Error) {
|
|
2977
|
+
return { name: error.name, message: error.message, stack: error.stack };
|
|
2978
|
+
}
|
|
2979
|
+
return { message: String(error) };
|
|
2980
|
+
}
|
|
2981
|
+
async function flush() {
|
|
2982
|
+
if (buffer.length === 0) return;
|
|
2983
|
+
const entries = buffer.splice(0);
|
|
2984
|
+
try {
|
|
2985
|
+
await fetch(LOG_ENDPOINT, {
|
|
2986
|
+
method: "POST",
|
|
2987
|
+
headers: { "Content-Type": "application/json" },
|
|
2988
|
+
body: JSON.stringify(entries)
|
|
2989
|
+
});
|
|
2990
|
+
} catch {
|
|
2991
|
+
}
|
|
2992
|
+
}
|
|
2993
|
+
var LOG_ENDPOINT, LOG_ENABLED, buffer, flushTimer, FLUSH_INTERVAL_MS, MAX_BUFFER_SIZE, logger;
|
|
2994
|
+
var init_logger = __esm({
|
|
2995
|
+
"lib/logger.ts"() {
|
|
2996
|
+
"use strict";
|
|
2997
|
+
LOG_ENDPOINT = process.env.AGX_LOG_ENDPOINT || "https://www.runagx.com/api/logs/ingest";
|
|
2998
|
+
LOG_ENABLED = process.env.AGX_DISABLE_REMOTE_LOGGING !== "1";
|
|
2999
|
+
buffer = [];
|
|
3000
|
+
flushTimer = null;
|
|
3001
|
+
FLUSH_INTERVAL_MS = 5e3;
|
|
3002
|
+
MAX_BUFFER_SIZE = 50;
|
|
3003
|
+
logger = {
|
|
3004
|
+
error(message, context) {
|
|
3005
|
+
console.error(message, context ?? "");
|
|
3006
|
+
enqueue({ level: "error", message, context });
|
|
3007
|
+
},
|
|
3008
|
+
warn(message, context) {
|
|
3009
|
+
console.warn(message, context ?? "");
|
|
3010
|
+
enqueue({ level: "warn", message, context });
|
|
3011
|
+
},
|
|
3012
|
+
info(message, context) {
|
|
3013
|
+
console.log(message, context ?? "");
|
|
3014
|
+
enqueue({ level: "info", message, context });
|
|
3015
|
+
},
|
|
3016
|
+
formatError
|
|
3017
|
+
};
|
|
3018
|
+
}
|
|
3019
|
+
});
|
|
3020
|
+
|
|
3021
|
+
// apps/local/lib/logger.ts
|
|
3022
|
+
var init_logger2 = __esm({
|
|
3023
|
+
"apps/local/lib/logger.ts"() {
|
|
3024
|
+
init_logger();
|
|
3025
|
+
}
|
|
3026
|
+
});
|
|
3027
|
+
|
|
2674
3028
|
// apps/local/lib/notifications/constants.ts
|
|
2675
3029
|
var NOTIFICATION_EVENT_OPTIONS, NOTIFICATION_EVENT_VALUES;
|
|
2676
3030
|
var init_constants = __esm({
|
|
@@ -2708,7 +3062,7 @@ var init_constants = __esm({
|
|
|
2708
3062
|
});
|
|
2709
3063
|
|
|
2710
3064
|
// apps/local/lib/notifications/index.ts
|
|
2711
|
-
function
|
|
3065
|
+
function isMissingRelationError2(error, relation) {
|
|
2712
3066
|
if (!error || typeof error !== "object") return false;
|
|
2713
3067
|
const code = error.code;
|
|
2714
3068
|
const message = typeof error.message === "string" ? error.message : "";
|
|
@@ -2730,7 +3084,7 @@ function mapWebhookRecord(raw) {
|
|
|
2730
3084
|
};
|
|
2731
3085
|
}
|
|
2732
3086
|
async function handleRelationError(relation, error) {
|
|
2733
|
-
if (
|
|
3087
|
+
if (isMissingRelationError2(error, relation)) {
|
|
2734
3088
|
throw new SchemaNotReadyError(`Missing relation: ${relation}`);
|
|
2735
3089
|
}
|
|
2736
3090
|
throw error;
|
|
@@ -2754,7 +3108,7 @@ async function notifyTaskEvent(payload) {
|
|
|
2754
3108
|
console.debug("[notifications] notification_webhooks schema not ready, skipping");
|
|
2755
3109
|
return;
|
|
2756
3110
|
}
|
|
2757
|
-
|
|
3111
|
+
logger.error("[notifications] failed to load webhooks", logger.formatError(error));
|
|
2758
3112
|
return;
|
|
2759
3113
|
}
|
|
2760
3114
|
const targets = endpoints.filter(
|
|
@@ -2778,28 +3132,36 @@ async function notifyTaskEvent(payload) {
|
|
|
2778
3132
|
};
|
|
2779
3133
|
await Promise.all(
|
|
2780
3134
|
targets.map(async (endpoint) => {
|
|
3135
|
+
const controller = new AbortController();
|
|
3136
|
+
const timeout = setTimeout(() => controller.abort(), WEBHOOK_DELIVERY_TIMEOUT_MS);
|
|
2781
3137
|
try {
|
|
2782
3138
|
const response = await fetch(endpoint.url, {
|
|
2783
3139
|
method: "POST",
|
|
2784
3140
|
headers: { "Content-Type": "application/json" },
|
|
2785
|
-
body: JSON.stringify(body)
|
|
3141
|
+
body: JSON.stringify(body),
|
|
3142
|
+
signal: controller.signal
|
|
2786
3143
|
});
|
|
2787
3144
|
if (!response.ok) {
|
|
2788
|
-
|
|
3145
|
+
logger.error(
|
|
2789
3146
|
`[notifications] webhook ${endpoint.url} responded with ${response.status}`
|
|
2790
3147
|
);
|
|
2791
3148
|
}
|
|
2792
3149
|
} catch (error) {
|
|
2793
|
-
|
|
3150
|
+
logger.error(`[notifications] failed to send to ${endpoint.url}`, logger.formatError(error));
|
|
3151
|
+
} finally {
|
|
3152
|
+
clearTimeout(timeout);
|
|
2794
3153
|
}
|
|
2795
3154
|
})
|
|
2796
3155
|
);
|
|
2797
3156
|
}
|
|
2798
|
-
var SchemaNotReadyError;
|
|
3157
|
+
var WEBHOOK_DELIVERY_TIMEOUT_MS, SchemaNotReadyError;
|
|
2799
3158
|
var init_notifications = __esm({
|
|
2800
3159
|
"apps/local/lib/notifications/index.ts"() {
|
|
3160
|
+
"use strict";
|
|
2801
3161
|
init_db_adapter();
|
|
3162
|
+
init_logger2();
|
|
2802
3163
|
init_constants();
|
|
3164
|
+
WEBHOOK_DELIVERY_TIMEOUT_MS = 1e4;
|
|
2803
3165
|
SchemaNotReadyError = class extends Error {
|
|
2804
3166
|
};
|
|
2805
3167
|
}
|
|
@@ -2885,9 +3247,9 @@ var require_mark = __commonJS({
|
|
|
2885
3247
|
"node_modules/js-yaml/lib/js-yaml/mark.js"(exports2, module2) {
|
|
2886
3248
|
"use strict";
|
|
2887
3249
|
var common = require_common();
|
|
2888
|
-
function Mark(name,
|
|
3250
|
+
function Mark(name, buffer2, position, line, column) {
|
|
2889
3251
|
this.name = name;
|
|
2890
|
-
this.buffer =
|
|
3252
|
+
this.buffer = buffer2;
|
|
2891
3253
|
this.position = position;
|
|
2892
3254
|
this.line = line;
|
|
2893
3255
|
this.column = column;
|
|
@@ -5632,7 +5994,7 @@ var require_js_yaml2 = __commonJS({
|
|
|
5632
5994
|
function nowIso() {
|
|
5633
5995
|
return (/* @__PURE__ */ new Date()).toISOString();
|
|
5634
5996
|
}
|
|
5635
|
-
function
|
|
5997
|
+
function slugify3(value, fallback = "item") {
|
|
5636
5998
|
const slug = String(value || "").toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
5637
5999
|
return slug || fallback;
|
|
5638
6000
|
}
|
|
@@ -5902,7 +6264,7 @@ var init_vault_store = __esm({
|
|
|
5902
6264
|
}
|
|
5903
6265
|
nextProjectSlug(base, excludeProjectId) {
|
|
5904
6266
|
const registry = this.readRegistry();
|
|
5905
|
-
const baseSlug =
|
|
6267
|
+
const baseSlug = slugify3(base, "project");
|
|
5906
6268
|
let candidate = baseSlug;
|
|
5907
6269
|
let index = 1;
|
|
5908
6270
|
while (registry.projects.some((project) => project.slug === candidate && project.id !== excludeProjectId)) {
|
|
@@ -5913,7 +6275,7 @@ var init_vault_store = __esm({
|
|
|
5913
6275
|
}
|
|
5914
6276
|
nextRepoSlug(projectSlug, base, excludeRepoId) {
|
|
5915
6277
|
const manifest = this.readManifest(projectSlug);
|
|
5916
|
-
const baseSlug =
|
|
6278
|
+
const baseSlug = slugify3(base, "repo");
|
|
5917
6279
|
let candidate = baseSlug;
|
|
5918
6280
|
let index = 1;
|
|
5919
6281
|
while (manifest?.repos.some((repo) => repo.slug === candidate && repo.id !== excludeRepoId)) {
|
|
@@ -6062,7 +6424,7 @@ ${project.description?.trim() || ""}
|
|
|
6062
6424
|
const registry = this.readRegistry();
|
|
6063
6425
|
const existing = registry.agents.find((agent) => agent.id === agentId);
|
|
6064
6426
|
if (existing) return existing;
|
|
6065
|
-
const slug =
|
|
6427
|
+
const slug = slugify3(name || agentId, "agent");
|
|
6066
6428
|
const createdAt = nowIso();
|
|
6067
6429
|
const entry = {
|
|
6068
6430
|
id: agentId,
|
|
@@ -6356,7 +6718,7 @@ ${project.description?.trim() || ""}
|
|
|
6356
6718
|
if (!project) throw new Error("Project not found");
|
|
6357
6719
|
const timestamp = nowIso();
|
|
6358
6720
|
const id = (0, import_node_crypto3.randomUUID)();
|
|
6359
|
-
const fileSlug =
|
|
6721
|
+
const fileSlug = slugify3(import_node_path.default.basename(file) || id, "skill");
|
|
6360
6722
|
writeMarkdownFile(
|
|
6361
6723
|
import_node_path.default.join(this.projectSkillsDir(project.slug), `${fileSlug}-${id.slice(0, 8)}.md`),
|
|
6362
6724
|
{
|
|
@@ -6408,7 +6770,7 @@ ${project.description?.trim() || ""}
|
|
|
6408
6770
|
setProjectVariable(projectId, key, value) {
|
|
6409
6771
|
const project = this.findProjectRegistryEntryById(projectId);
|
|
6410
6772
|
if (!project) throw new Error("Project not found");
|
|
6411
|
-
const existingPath = import_node_path.default.join(this.projectVariablesDir(project.slug), `${
|
|
6773
|
+
const existingPath = import_node_path.default.join(this.projectVariablesDir(project.slug), `${slugify3(key, "var")}.md`);
|
|
6412
6774
|
const existing = readMarkdownFile(existingPath);
|
|
6413
6775
|
const timestamp = nowIso();
|
|
6414
6776
|
writeMarkdownFile(
|
|
@@ -6430,7 +6792,7 @@ ${project.description?.trim() || ""}
|
|
|
6430
6792
|
deleteProjectVariable(projectId, key) {
|
|
6431
6793
|
const project = this.findProjectRegistryEntryById(projectId);
|
|
6432
6794
|
if (!project) return;
|
|
6433
|
-
const filePath = import_node_path.default.join(this.projectVariablesDir(project.slug), `${
|
|
6795
|
+
const filePath = import_node_path.default.join(this.projectVariablesDir(project.slug), `${slugify3(key, "var")}.md`);
|
|
6434
6796
|
if (import_node_fs.default.existsSync(filePath)) {
|
|
6435
6797
|
import_node_fs.default.unlinkSync(filePath);
|
|
6436
6798
|
}
|
|
@@ -6751,7 +7113,7 @@ ${project.description?.trim() || ""}
|
|
|
6751
7113
|
}
|
|
6752
7114
|
nextKnowledgeEntryPath(scope, subjectId, title) {
|
|
6753
7115
|
const id = (0, import_node_crypto3.randomUUID)();
|
|
6754
|
-
const fileName = `${
|
|
7116
|
+
const fileName = `${slugify3(title, "entry")}-${id.slice(0, 8)}.md`;
|
|
6755
7117
|
if (scope === "global") {
|
|
6756
7118
|
return import_node_path.default.join(this.globalEvidenceDir("global"), fileName);
|
|
6757
7119
|
}
|
|
@@ -6879,7 +7241,7 @@ ${addition}` : addition;
|
|
|
6879
7241
|
let evidenceFiles = 0;
|
|
6880
7242
|
for (const learning of globalLearnings) {
|
|
6881
7243
|
writeMarkdownFile(
|
|
6882
|
-
import_node_path.default.join(this.globalImportedLearningsDir(), `${
|
|
7244
|
+
import_node_path.default.join(this.globalImportedLearningsDir(), `${slugify3(learning.id, "learning")}.md`),
|
|
6883
7245
|
{
|
|
6884
7246
|
id: learning.id,
|
|
6885
7247
|
type: "imported-artifact",
|
|
@@ -6979,7 +7341,7 @@ ${addition}` : addition;
|
|
|
6979
7341
|
const projectLearningRows = learnings.filter((learning) => learning.scope === "project" && learning.scope_id === project.id);
|
|
6980
7342
|
for (const learning of projectLearningRows) {
|
|
6981
7343
|
writeMarkdownFile(
|
|
6982
|
-
import_node_path.default.join(this.projectImportedDir(project.slug, "learnings"), `${
|
|
7344
|
+
import_node_path.default.join(this.projectImportedDir(project.slug, "learnings"), `${slugify3(learning.id, "learning")}.md`),
|
|
6983
7345
|
{
|
|
6984
7346
|
id: learning.id,
|
|
6985
7347
|
type: "imported-artifact",
|
|
@@ -6996,7 +7358,7 @@ ${addition}` : addition;
|
|
|
6996
7358
|
}
|
|
6997
7359
|
for (const memoryRow of projectMemoryRows.filter((row) => row.project_id === project.id)) {
|
|
6998
7360
|
writeMarkdownFile(
|
|
6999
|
-
import_node_path.default.join(this.projectImportedDir(project.slug, "project-memory"), `${
|
|
7361
|
+
import_node_path.default.join(this.projectImportedDir(project.slug, "project-memory"), `${slugify3(memoryRow.id, "memory")}.md`),
|
|
7000
7362
|
{
|
|
7001
7363
|
id: memoryRow.id,
|
|
7002
7364
|
type: "imported-artifact",
|
|
@@ -7038,7 +7400,7 @@ ${addition}` : addition;
|
|
|
7038
7400
|
);
|
|
7039
7401
|
if (repo.notes?.trim()) {
|
|
7040
7402
|
writeMarkdownFile(
|
|
7041
|
-
import_node_path.default.join(this.projectImportedDir(project.slug, import_node_path.default.join("repo-knowledge", repo.slug)), `${
|
|
7403
|
+
import_node_path.default.join(this.projectImportedDir(project.slug, import_node_path.default.join("repo-knowledge", repo.slug)), `${slugify3(repo.id, "repo-notes")}-project-repos-notes.md`),
|
|
7042
7404
|
{
|
|
7043
7405
|
id: `${repo.id}:project_repos.notes`,
|
|
7044
7406
|
type: "imported-artifact",
|
|
@@ -7055,7 +7417,7 @@ ${addition}` : addition;
|
|
|
7055
7417
|
}
|
|
7056
7418
|
for (const row of repoKnowledgeRows.filter((entry) => entry.repo_id === repo.id)) {
|
|
7057
7419
|
writeMarkdownFile(
|
|
7058
|
-
import_node_path.default.join(this.projectImportedDir(project.slug, import_node_path.default.join("repo-knowledge", repo.slug)), `${
|
|
7420
|
+
import_node_path.default.join(this.projectImportedDir(project.slug, import_node_path.default.join("repo-knowledge", repo.slug)), `${slugify3(row.id, "repo-knowledge")}.md`),
|
|
7059
7421
|
{
|
|
7060
7422
|
id: row.id,
|
|
7061
7423
|
type: "imported-artifact",
|
|
@@ -7074,7 +7436,7 @@ ${addition}` : addition;
|
|
|
7074
7436
|
}
|
|
7075
7437
|
for (const skill of projectSkills.filter((entry) => entry.project_id === project.id)) {
|
|
7076
7438
|
writeMarkdownFile(
|
|
7077
|
-
import_node_path.default.join(this.projectSkillsDir(project.slug), `${
|
|
7439
|
+
import_node_path.default.join(this.projectSkillsDir(project.slug), `${slugify3(import_node_path.default.basename(skill.file) || skill.id, "skill")}-${skill.id.slice(0, 8)}.md`),
|
|
7078
7440
|
{
|
|
7079
7441
|
id: skill.id,
|
|
7080
7442
|
type: "project-skill",
|
|
@@ -7091,7 +7453,7 @@ ${addition}` : addition;
|
|
|
7091
7453
|
}
|
|
7092
7454
|
for (const variable of projectVariables.filter((entry) => entry.project_id === project.id)) {
|
|
7093
7455
|
writeMarkdownFile(
|
|
7094
|
-
import_node_path.default.join(this.projectVariablesDir(project.slug), `${
|
|
7456
|
+
import_node_path.default.join(this.projectVariablesDir(project.slug), `${slugify3(variable.key, "var")}.md`),
|
|
7095
7457
|
{
|
|
7096
7458
|
id: `project-variable:${project.id}:${variable.key}`,
|
|
7097
7459
|
type: "project-variable",
|
|
@@ -7207,283 +7569,418 @@ ${portableKnowledge.trim()}`);
|
|
|
7207
7569
|
}
|
|
7208
7570
|
});
|
|
7209
7571
|
|
|
7210
|
-
// apps/local/lib/db.ts
|
|
7211
|
-
|
|
7212
|
-
|
|
7213
|
-
|
|
7214
|
-
|
|
7215
|
-
|
|
7216
|
-
|
|
7217
|
-
|
|
7218
|
-
|
|
7219
|
-
|
|
7220
|
-
|
|
7221
|
-
|
|
7222
|
-
|
|
7223
|
-
|
|
7224
|
-
|
|
7225
|
-
|
|
7226
|
-
|
|
7227
|
-
|
|
7228
|
-
|
|
7229
|
-
|
|
7230
|
-
|
|
7231
|
-
deleteAgent: () => deleteAgent,
|
|
7232
|
-
deleteLearning: () => deleteLearning,
|
|
7233
|
-
deleteProject: () => deleteProject,
|
|
7234
|
-
deleteProjectMemory: () => deleteProjectMemory,
|
|
7235
|
-
deleteProjectVariable: () => deleteProjectVariable,
|
|
7236
|
-
deleteStagePrompt: () => deleteStagePrompt,
|
|
7237
|
-
deleteTask: () => deleteTask,
|
|
7238
|
-
deleteTaskComment: () => deleteTaskComment,
|
|
7239
|
-
deleteTeam: () => deleteTeam,
|
|
7240
|
-
ensureNoCircularDependency: () => ensureNoCircularDependency,
|
|
7241
|
-
extractTitle: () => extractTitle,
|
|
7242
|
-
getAgent: () => getAgent,
|
|
7243
|
-
getAgentSkills: () => getAgentSkills,
|
|
7244
|
-
getAgents: () => getAgents,
|
|
7245
|
-
getDefaultWorkflowId: () => getDefaultWorkflowId,
|
|
7246
|
-
getLearnings: () => getLearnings,
|
|
7247
|
-
getNextQueuedTask: () => getNextQueuedTask,
|
|
7248
|
-
getProjectAgents: () => getProjectAgents,
|
|
7249
|
-
getProjectBySlug: () => getProjectBySlug,
|
|
7250
|
-
getProjectForThread: () => getProjectForThread,
|
|
7251
|
-
getProjectMemory: () => getProjectMemory,
|
|
7252
|
-
getProjectRepos: () => getProjectRepos,
|
|
7253
|
-
getProjectSkills: () => getProjectSkills,
|
|
7254
|
-
getProjectThreads: () => getProjectThreads,
|
|
7255
|
-
getProjectVariables: () => getProjectVariables,
|
|
7256
|
-
getProjectWithRepos: () => getProjectWithRepos,
|
|
7257
|
-
getProjects: () => getProjects,
|
|
7258
|
-
getStagePrompt: () => getStagePrompt,
|
|
7259
|
-
getStagePrompts: () => getStagePrompts,
|
|
7260
|
-
getTask: () => getTask,
|
|
7261
|
-
getTaskBySlug: () => getTaskBySlug,
|
|
7262
|
-
getTaskComments: () => getTaskComments,
|
|
7263
|
-
getTaskCostEntries: () => getTaskCostEntries,
|
|
7264
|
-
getTaskCostSummary: () => getTaskCostSummary,
|
|
7265
|
-
getTaskLogs: () => getTaskLogs,
|
|
7266
|
-
getTasks: () => getTasks,
|
|
7267
|
-
getTeam: () => getTeam,
|
|
7268
|
-
getTeamAgents: () => getTeamAgents,
|
|
7269
|
-
getTeams: () => getTeams,
|
|
7270
|
-
getUserSettings: () => getUserSettings,
|
|
7271
|
-
getWorkflow: () => getWorkflow,
|
|
7272
|
-
getWorkflowNodeByName: () => getWorkflowNodeByName,
|
|
7273
|
-
getWorkflowNodes: () => getWorkflowNodes,
|
|
7274
|
-
getWorkflowTransitions: () => getWorkflowTransitions,
|
|
7275
|
-
getWorkflowTransitionsFromNode: () => getWorkflowTransitionsFromNode,
|
|
7276
|
-
getWorkflowWithGraph: () => getWorkflowWithGraph,
|
|
7277
|
-
getWorkflows: () => getWorkflows,
|
|
7278
|
-
parseFrontmatter: () => parseFrontmatter,
|
|
7279
|
-
removeProjectAgent: () => removeProjectAgent,
|
|
7280
|
-
removeProjectSkill: () => removeProjectSkill,
|
|
7281
|
-
removeProjectThread: () => removeProjectThread,
|
|
7282
|
-
removeTeamAgent: () => removeTeamAgent,
|
|
7283
|
-
reorderProjectAgents: () => reorderProjectAgents,
|
|
7284
|
-
resolveMemory: () => resolveMemory,
|
|
7285
|
-
resolveSkills: () => resolveSkills,
|
|
7286
|
-
resolveTaskConfig: () => resolveTaskConfig,
|
|
7287
|
-
resolveVariables: () => resolveVariables,
|
|
7288
|
-
setAgentSkills: () => setAgentSkills,
|
|
7289
|
-
setProjectVariable: () => setProjectVariable,
|
|
7290
|
-
summarizeTaskCosts: () => summarizeTaskCosts,
|
|
7291
|
-
updateAgent: () => updateAgent,
|
|
7292
|
-
updateProject: () => updateProject,
|
|
7293
|
-
updateTask: () => updateTask,
|
|
7294
|
-
updateTeam: () => updateTeam,
|
|
7295
|
-
updateWorkflow: () => updateWorkflow,
|
|
7296
|
-
updateWorkflowNodes: () => updateWorkflowNodes,
|
|
7297
|
-
upsertStagePrompt: () => upsertStagePrompt,
|
|
7298
|
-
upsertUserSettings: () => upsertUserSettings
|
|
7299
|
-
});
|
|
7300
|
-
function isMissingRelationError2(error, relation) {
|
|
7301
|
-
if (!error) return false;
|
|
7302
|
-
const message = typeof error.message === "string" ? error.message : "";
|
|
7303
|
-
return error.code === "42P01" || error.code === "PGRST205" || message.includes(`relation "${relation}" does not exist`) || message.includes(`Could not find the table 'agx.${relation}'`) || message.includes(`Could not find the table 'public.${relation}'`);
|
|
7572
|
+
// apps/local/lib/db/projects.ts
|
|
7573
|
+
async function insertProjectRepos(projectId, repos, db2) {
|
|
7574
|
+
if (!repos.length) {
|
|
7575
|
+
return [];
|
|
7576
|
+
}
|
|
7577
|
+
const payload = repos.map((repo) => ({
|
|
7578
|
+
...repo.id ? { id: repo.id } : {},
|
|
7579
|
+
project_id: projectId,
|
|
7580
|
+
name: repo.name,
|
|
7581
|
+
path: repo.path ?? null,
|
|
7582
|
+
git_url: repo.git_url ?? null,
|
|
7583
|
+
notes: repo.notes ?? null
|
|
7584
|
+
}));
|
|
7585
|
+
const { data, error } = await db2.from("project_repos").insert(payload).select("*");
|
|
7586
|
+
if (error) {
|
|
7587
|
+
if (isMissingRelationError(error, "project_repos")) {
|
|
7588
|
+
return [];
|
|
7589
|
+
}
|
|
7590
|
+
throw error;
|
|
7591
|
+
}
|
|
7592
|
+
return data || [];
|
|
7304
7593
|
}
|
|
7305
|
-
function
|
|
7306
|
-
|
|
7307
|
-
|
|
7308
|
-
|
|
7594
|
+
async function getProjects(userId, includeArchived = false) {
|
|
7595
|
+
const db2 = createAdminDbClient();
|
|
7596
|
+
let query = db2.from("projects").select("*, project_repos(*)");
|
|
7597
|
+
if (userId) query = query.eq("user_id", userId);
|
|
7598
|
+
if (!includeArchived) query = query.is("archived_at", null);
|
|
7599
|
+
const { data, error } = await query;
|
|
7600
|
+
if (error) {
|
|
7601
|
+
if (isMissingRelationError(error, "projects")) {
|
|
7602
|
+
return [];
|
|
7603
|
+
}
|
|
7604
|
+
throw error;
|
|
7309
7605
|
}
|
|
7310
|
-
|
|
7606
|
+
const projects = data || [];
|
|
7607
|
+
return projects.map((project) => ({
|
|
7608
|
+
...project,
|
|
7609
|
+
repos: project.project_repos ?? []
|
|
7610
|
+
}));
|
|
7311
7611
|
}
|
|
7312
|
-
async function
|
|
7612
|
+
async function getProjectBySlug(slug, userId) {
|
|
7313
7613
|
const db2 = createAdminDbClient();
|
|
7314
|
-
|
|
7614
|
+
let query = db2.from("projects").select("*").eq("slug", slug);
|
|
7615
|
+
if (userId) query = query.eq("user_id", userId);
|
|
7616
|
+
const { data, error } = await query.maybeSingle();
|
|
7315
7617
|
if (error) {
|
|
7316
|
-
if (
|
|
7618
|
+
if (isMissingRelationError(error, "projects")) {
|
|
7619
|
+
return null;
|
|
7620
|
+
}
|
|
7317
7621
|
throw error;
|
|
7318
7622
|
}
|
|
7319
|
-
|
|
7320
|
-
return data;
|
|
7623
|
+
return data || null;
|
|
7321
7624
|
}
|
|
7322
|
-
async function
|
|
7323
|
-
const
|
|
7324
|
-
const
|
|
7325
|
-
|
|
7326
|
-
|
|
7327
|
-
|
|
7328
|
-
|
|
7329
|
-
|
|
7330
|
-
|
|
7625
|
+
async function getProjectRepos(projectId) {
|
|
7626
|
+
const db2 = createAdminDbClient();
|
|
7627
|
+
const { data, error } = await db2.from("project_repos").select("*").eq("project_id", projectId);
|
|
7628
|
+
if (error) {
|
|
7629
|
+
if (isMissingRelationError(error, "project_repos")) {
|
|
7630
|
+
return [];
|
|
7631
|
+
}
|
|
7632
|
+
throw error;
|
|
7633
|
+
}
|
|
7634
|
+
return data || [];
|
|
7635
|
+
}
|
|
7636
|
+
async function getProjectWithRepos(projectIdOrSlug, userId) {
|
|
7637
|
+
const db2 = createAdminDbClient();
|
|
7638
|
+
const isUuid = UUID_REGEX.test(projectIdOrSlug);
|
|
7639
|
+
let projectQuery = db2.from("projects").select("*");
|
|
7640
|
+
if (isUuid) {
|
|
7641
|
+
projectQuery = projectQuery.eq("id", projectIdOrSlug);
|
|
7642
|
+
} else {
|
|
7643
|
+
projectQuery = projectQuery.eq("slug", projectIdOrSlug);
|
|
7644
|
+
}
|
|
7645
|
+
if (userId) projectQuery = projectQuery.eq("user_id", userId);
|
|
7646
|
+
const projectResult = await projectQuery.maybeSingle();
|
|
7647
|
+
if (projectResult.error) {
|
|
7648
|
+
if (isMissingRelationError(projectResult.error, "projects")) {
|
|
7649
|
+
return null;
|
|
7331
7650
|
}
|
|
7651
|
+
throw projectResult.error;
|
|
7332
7652
|
}
|
|
7653
|
+
const project = projectResult.data;
|
|
7654
|
+
if (!project) return null;
|
|
7655
|
+
const repos = await getProjectRepos(project.id);
|
|
7656
|
+
return { ...project, repos };
|
|
7657
|
+
}
|
|
7658
|
+
async function createProject(userId, input, dbClient) {
|
|
7659
|
+
if (!input.name?.trim()) {
|
|
7660
|
+
throw new Error("Project name is required");
|
|
7661
|
+
}
|
|
7662
|
+
const db2 = getDbClient(dbClient);
|
|
7663
|
+
const baseSlug = input.name.trim() || "project";
|
|
7664
|
+
const slug = await generateUniqueProjectSlug(baseSlug, userId, db2);
|
|
7665
|
+
const identifierPrefix = validateIdentifierPrefix(input.identifier_prefix);
|
|
7333
7666
|
const payload = {
|
|
7334
7667
|
user_id: userId,
|
|
7335
|
-
|
|
7336
|
-
|
|
7337
|
-
|
|
7338
|
-
|
|
7668
|
+
name: input.name.trim(),
|
|
7669
|
+
slug,
|
|
7670
|
+
description: input.description ?? null,
|
|
7671
|
+
workflow_id: input.workflow_id ?? null
|
|
7339
7672
|
};
|
|
7673
|
+
if (identifierPrefix !== null) {
|
|
7674
|
+
payload.identifier_prefix = identifierPrefix;
|
|
7675
|
+
}
|
|
7676
|
+
let { data: project, error } = await db2.from("projects").insert(payload).select("*").single();
|
|
7677
|
+
if (error && error.code === "42703") {
|
|
7678
|
+
const { identifier_prefix: _ignored, ...fallback } = payload;
|
|
7679
|
+
({ data: project, error } = await db2.from("projects").insert(fallback).select("*").single());
|
|
7680
|
+
}
|
|
7681
|
+
if (error) throw error;
|
|
7682
|
+
const repos = await insertProjectRepos(project.id, input.repos ?? [], db2);
|
|
7683
|
+
return { ...project, repos };
|
|
7684
|
+
}
|
|
7685
|
+
async function updateProject(projectIdOrSlug, userId, updates, dbClient) {
|
|
7686
|
+
const db2 = getDbClient(dbClient);
|
|
7687
|
+
const isUuid = UUID_REGEX.test(projectIdOrSlug);
|
|
7688
|
+
let projectId = projectIdOrSlug;
|
|
7689
|
+
if (!isUuid) {
|
|
7690
|
+
const project = await getProjectBySlug(projectIdOrSlug, userId);
|
|
7691
|
+
if (!project) return null;
|
|
7692
|
+
projectId = project.id;
|
|
7693
|
+
}
|
|
7694
|
+
const updatePayload = {};
|
|
7695
|
+
if (typeof updates.name !== "undefined") {
|
|
7696
|
+
const trimmedName = updates.name?.trim();
|
|
7697
|
+
if (!trimmedName) {
|
|
7698
|
+
throw new Error("Project name cannot be empty");
|
|
7699
|
+
}
|
|
7700
|
+
updatePayload.name = trimmedName;
|
|
7701
|
+
}
|
|
7702
|
+
if (typeof updates.slug !== "undefined") {
|
|
7703
|
+
const trimmedSlug = updates.slug?.trim();
|
|
7704
|
+
if (trimmedSlug) {
|
|
7705
|
+
updatePayload.slug = trimmedSlug;
|
|
7706
|
+
}
|
|
7707
|
+
}
|
|
7708
|
+
if (typeof updates.description !== "undefined") updatePayload.description = updates.description;
|
|
7709
|
+
if (typeof updates.metadata !== "undefined") updatePayload.metadata = updates.metadata;
|
|
7710
|
+
if (typeof updates.ci_cd_info !== "undefined") updatePayload.ci_cd_info = updates.ci_cd_info;
|
|
7711
|
+
if (typeof updates.workflow_id !== "undefined") updatePayload.workflow_id = updates.workflow_id;
|
|
7712
|
+
if (typeof updates.identifier_prefix !== "undefined") {
|
|
7713
|
+
updatePayload.identifier_prefix = validateIdentifierPrefix(updates.identifier_prefix);
|
|
7714
|
+
}
|
|
7715
|
+
if (Object.keys(updatePayload).length) {
|
|
7716
|
+
const { error } = await db2.from("projects").update(updatePayload).eq("id", projectId).eq("user_id", userId);
|
|
7717
|
+
if (error) throw error;
|
|
7718
|
+
}
|
|
7719
|
+
if (updates.repos) {
|
|
7720
|
+
const { data: existingRepos, error: existingReposError } = await db2.from("project_repos").select("*").eq("project_id", projectId);
|
|
7721
|
+
if (existingReposError && !isMissingRelationError(existingReposError, "project_repos")) {
|
|
7722
|
+
throw existingReposError;
|
|
7723
|
+
}
|
|
7724
|
+
const existingRepoList = existingRepos || [];
|
|
7725
|
+
const existingRepoIds = new Set(existingRepoList.map((repo) => repo.id));
|
|
7726
|
+
const nextRepoIds = new Set(
|
|
7727
|
+
updates.repos.map((repo) => repo.id).filter((repoId) => Boolean(repoId))
|
|
7728
|
+
);
|
|
7729
|
+
for (const existingRepo of existingRepoList) {
|
|
7730
|
+
if (nextRepoIds.has(existingRepo.id)) continue;
|
|
7731
|
+
const { error: deleteError } = await db2.from("project_repos").delete().eq("id", existingRepo.id).eq("project_id", projectId);
|
|
7732
|
+
if (deleteError && !isMissingRelationError(deleteError, "project_repos")) {
|
|
7733
|
+
throw deleteError;
|
|
7734
|
+
}
|
|
7735
|
+
}
|
|
7736
|
+
for (const repo of updates.repos) {
|
|
7737
|
+
const payload = {
|
|
7738
|
+
name: repo.name,
|
|
7739
|
+
path: repo.path ?? null,
|
|
7740
|
+
git_url: repo.git_url ?? null,
|
|
7741
|
+
notes: repo.notes ?? null,
|
|
7742
|
+
project_id: projectId
|
|
7743
|
+
};
|
|
7744
|
+
if (repo.id && existingRepoIds.has(repo.id)) {
|
|
7745
|
+
const { error: repoUpdateError } = await db2.from("project_repos").update(payload).eq("id", repo.id).eq("project_id", projectId);
|
|
7746
|
+
if (repoUpdateError && !isMissingRelationError(repoUpdateError, "project_repos")) {
|
|
7747
|
+
throw repoUpdateError;
|
|
7748
|
+
}
|
|
7749
|
+
continue;
|
|
7750
|
+
}
|
|
7751
|
+
const { error: repoInsertError } = await db2.from("project_repos").insert({
|
|
7752
|
+
...repo.id ? { id: repo.id } : {},
|
|
7753
|
+
...payload
|
|
7754
|
+
});
|
|
7755
|
+
if (repoInsertError && !isMissingRelationError(repoInsertError, "project_repos")) {
|
|
7756
|
+
throw repoInsertError;
|
|
7757
|
+
}
|
|
7758
|
+
}
|
|
7759
|
+
}
|
|
7760
|
+
return getProjectWithRepos(projectId, userId);
|
|
7761
|
+
}
|
|
7762
|
+
async function deleteProject(projectId, userId, dbClient) {
|
|
7763
|
+
const db2 = getDbClient(dbClient);
|
|
7764
|
+
const { error } = await db2.from("projects").update({ archived_at: (/* @__PURE__ */ new Date()).toISOString() }).eq("id", projectId).eq("user_id", userId);
|
|
7765
|
+
if (error) throw error;
|
|
7766
|
+
}
|
|
7767
|
+
async function assignOrphanTasksToProject(projectId, userId, dbClient) {
|
|
7768
|
+
const db2 = getDbClient(dbClient);
|
|
7769
|
+
const project = await getProjectWithRepos(projectId, userId);
|
|
7770
|
+
if (!project) {
|
|
7771
|
+
throw new Error("Project not found");
|
|
7772
|
+
}
|
|
7773
|
+
const { data: tasks, error: tasksError } = await db2.from("tasks").select("id, project").eq("user_id", userId).is("project_id", null);
|
|
7774
|
+
if (tasksError) throw tasksError;
|
|
7775
|
+
const slug = String(project.slug || "").trim().toLowerCase();
|
|
7776
|
+
const orphanTaskIds = (tasks || []).filter((task) => {
|
|
7777
|
+
const projectValue = String(task.project || "").trim().toLowerCase();
|
|
7778
|
+
return !projectValue || projectValue === "none" || projectValue === slug;
|
|
7779
|
+
}).map((task) => task.id);
|
|
7780
|
+
if (!orphanTaskIds.length) {
|
|
7781
|
+
return { updatedCount: 0, taskIds: [] };
|
|
7782
|
+
}
|
|
7783
|
+
const { error: updateError } = await db2.from("tasks").update({
|
|
7784
|
+
project: project.slug,
|
|
7785
|
+
project_id: project.id,
|
|
7786
|
+
updated_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
7787
|
+
}).eq("user_id", userId).is("project_id", null).in("id", orphanTaskIds);
|
|
7788
|
+
if (updateError) throw updateError;
|
|
7789
|
+
return { updatedCount: orphanTaskIds.length, taskIds: orphanTaskIds };
|
|
7790
|
+
}
|
|
7791
|
+
async function getProjectAgents(projectId) {
|
|
7340
7792
|
const db2 = createAdminDbClient();
|
|
7341
|
-
const { error
|
|
7342
|
-
if (
|
|
7343
|
-
|
|
7344
|
-
|
|
7345
|
-
|
|
7793
|
+
const { data, error } = await db2.from("project_agents").select("*").eq("project_id", projectId).order("routing_order", { ascending: true });
|
|
7794
|
+
if (error) {
|
|
7795
|
+
if (isMissingRelationError(error, "project_agents")) return [];
|
|
7796
|
+
throw error;
|
|
7797
|
+
}
|
|
7798
|
+
return data || [];
|
|
7346
7799
|
}
|
|
7347
|
-
function
|
|
7348
|
-
const
|
|
7349
|
-
|
|
7350
|
-
const
|
|
7351
|
-
|
|
7352
|
-
};
|
|
7353
|
-
let cliDefaultProvider = null;
|
|
7354
|
-
try {
|
|
7355
|
-
const fs12 = require("fs");
|
|
7356
|
-
const path15 = require("path");
|
|
7357
|
-
const configPath = path15.join(process.env.HOME || "", ".agx", "config.json");
|
|
7358
|
-
const cliConfig = JSON.parse(fs12.readFileSync(configPath, "utf-8"));
|
|
7359
|
-
cliDefaultProvider = clean(cliConfig?.defaultProvider) || null;
|
|
7360
|
-
} catch {
|
|
7800
|
+
async function addProjectAgent(projectId, agentId, routingOrder) {
|
|
7801
|
+
const db2 = createAdminDbClient();
|
|
7802
|
+
if (routingOrder === void 0) {
|
|
7803
|
+
const { data: existing } = await db2.from("project_agents").select("routing_order").eq("project_id", projectId).order("routing_order", { ascending: false }).limit(1);
|
|
7804
|
+
routingOrder = (existing?.[0]?.routing_order ?? -1) + 1;
|
|
7361
7805
|
}
|
|
7362
|
-
const
|
|
7363
|
-
|
|
7364
|
-
|
|
7365
|
-
const model = clean(task.model) || clean(stageConfig?.model) || globalDefaultModel || null;
|
|
7366
|
-
const swarm = task.swarm ?? stageConfig?.swarm ?? false;
|
|
7367
|
-
const swarm_models = task.swarm_models?.length ? task.swarm_models : stageConfig?.swarm_models || [];
|
|
7368
|
-
return {
|
|
7369
|
-
provider,
|
|
7370
|
-
model,
|
|
7371
|
-
swarm,
|
|
7372
|
-
swarm_models
|
|
7373
|
-
};
|
|
7806
|
+
const { data, error } = await db2.from("project_agents").upsert({ project_id: projectId, agent_id: agentId, routing_order: routingOrder }).select().single();
|
|
7807
|
+
if (error) throw error;
|
|
7808
|
+
return data;
|
|
7374
7809
|
}
|
|
7375
|
-
function
|
|
7376
|
-
|
|
7810
|
+
async function removeProjectAgent(projectId, agentId) {
|
|
7811
|
+
const db2 = createAdminDbClient();
|
|
7812
|
+
const { error } = await db2.from("project_agents").delete().eq("project_id", projectId).eq("agent_id", agentId);
|
|
7813
|
+
if (error) throw error;
|
|
7377
7814
|
}
|
|
7378
|
-
async function
|
|
7379
|
-
|
|
7380
|
-
for (let i = 0; i <
|
|
7381
|
-
|
|
7382
|
-
if (error) throw error;
|
|
7383
|
-
if (!data || data.length === 0) return slug;
|
|
7384
|
-
const suffix = Math.random().toString(36).slice(2, 6);
|
|
7385
|
-
slug = `${slugify3(base)}-${suffix}`.slice(0, 48);
|
|
7815
|
+
async function reorderProjectAgents(projectId, orderedAgentIds) {
|
|
7816
|
+
const db2 = createAdminDbClient();
|
|
7817
|
+
for (let i = 0; i < orderedAgentIds.length; i++) {
|
|
7818
|
+
await db2.from("project_agents").update({ routing_order: i }).eq("project_id", projectId).eq("agent_id", orderedAgentIds[i]);
|
|
7386
7819
|
}
|
|
7387
|
-
return
|
|
7820
|
+
return getProjectAgents(projectId);
|
|
7388
7821
|
}
|
|
7389
|
-
async function
|
|
7390
|
-
|
|
7391
|
-
|
|
7392
|
-
|
|
7393
|
-
if (
|
|
7394
|
-
|
|
7395
|
-
}
|
|
7396
|
-
const { data, error } = await query.limit(1);
|
|
7397
|
-
if (error) throw error;
|
|
7398
|
-
if (!data || data.length === 0) return slug;
|
|
7399
|
-
const suffix = Math.random().toString(36).slice(2, 6);
|
|
7400
|
-
slug = `${slugify3(base)}-${suffix}`.slice(0, 48);
|
|
7822
|
+
async function getProjectSkills(projectId) {
|
|
7823
|
+
const db2 = createAdminDbClient();
|
|
7824
|
+
const { data, error } = await db2.from("project_skills").select("*").eq("project_id", projectId).order("created_at", { ascending: true });
|
|
7825
|
+
if (error) {
|
|
7826
|
+
if (isMissingRelationError(error, "project_skills")) return [];
|
|
7827
|
+
throw error;
|
|
7401
7828
|
}
|
|
7402
|
-
return
|
|
7829
|
+
return data || [];
|
|
7403
7830
|
}
|
|
7404
|
-
function
|
|
7405
|
-
|
|
7831
|
+
async function addProjectSkill(projectId, file, condition) {
|
|
7832
|
+
const db2 = createAdminDbClient();
|
|
7833
|
+
const { data, error } = await db2.from("project_skills").insert({ project_id: projectId, file, condition: condition ?? null }).select().single();
|
|
7834
|
+
if (error) throw error;
|
|
7835
|
+
return data;
|
|
7406
7836
|
}
|
|
7407
|
-
function
|
|
7408
|
-
const
|
|
7409
|
-
|
|
7410
|
-
|
|
7411
|
-
|
|
7412
|
-
|
|
7413
|
-
|
|
7414
|
-
|
|
7415
|
-
|
|
7837
|
+
async function removeProjectSkill(skillId) {
|
|
7838
|
+
const db2 = createAdminDbClient();
|
|
7839
|
+
const { error } = await db2.from("project_skills").delete().eq("id", skillId);
|
|
7840
|
+
if (error) throw error;
|
|
7841
|
+
}
|
|
7842
|
+
async function getProjectVariables(projectId) {
|
|
7843
|
+
const db2 = createAdminDbClient();
|
|
7844
|
+
const { data, error } = await db2.from("project_variables").select("*").eq("project_id", projectId);
|
|
7845
|
+
if (error) {
|
|
7846
|
+
if (isMissingRelationError(error, "project_variables")) return [];
|
|
7847
|
+
throw error;
|
|
7416
7848
|
}
|
|
7417
|
-
return
|
|
7849
|
+
return data || [];
|
|
7418
7850
|
}
|
|
7419
|
-
function
|
|
7420
|
-
|
|
7421
|
-
|
|
7422
|
-
if (
|
|
7423
|
-
|
|
7424
|
-
|
|
7425
|
-
|
|
7426
|
-
|
|
7427
|
-
|
|
7851
|
+
async function setProjectVariable(projectId, key, value) {
|
|
7852
|
+
const db2 = createAdminDbClient();
|
|
7853
|
+
const { data, error } = await db2.from("project_variables").upsert({ project_id: projectId, key, value }, { onConflict: "project_id,key" }).select().single();
|
|
7854
|
+
if (error) throw error;
|
|
7855
|
+
return data;
|
|
7856
|
+
}
|
|
7857
|
+
async function deleteProjectVariable(projectId, key) {
|
|
7858
|
+
const db2 = createAdminDbClient();
|
|
7859
|
+
const { error } = await db2.from("project_variables").delete().eq("project_id", projectId).eq("key", key);
|
|
7860
|
+
if (error) throw error;
|
|
7861
|
+
}
|
|
7862
|
+
async function getProjectMemory(projectId, producer) {
|
|
7863
|
+
void producer;
|
|
7864
|
+
return vaultStore.getProjectMemory(projectId);
|
|
7865
|
+
}
|
|
7866
|
+
async function addProjectMemory(projectId, content, source, producer = "human") {
|
|
7867
|
+
return vaultStore.addProjectMemory(projectId, content, source, producer);
|
|
7868
|
+
}
|
|
7869
|
+
async function deleteProjectMemory(memoryId) {
|
|
7870
|
+
vaultStore.deleteProjectMemory(memoryId);
|
|
7871
|
+
}
|
|
7872
|
+
async function getProjectThreads(projectId) {
|
|
7873
|
+
const db2 = createAdminDbClient();
|
|
7874
|
+
const { data, error } = await db2.from("project_threads").select("*").eq("project_id", projectId).order("created_at", { ascending: true });
|
|
7875
|
+
if (error) {
|
|
7876
|
+
if (isMissingRelationError(error, "project_threads")) return [];
|
|
7877
|
+
throw error;
|
|
7428
7878
|
}
|
|
7429
|
-
return
|
|
7879
|
+
return data || [];
|
|
7430
7880
|
}
|
|
7431
|
-
function
|
|
7432
|
-
const
|
|
7433
|
-
|
|
7434
|
-
|
|
7881
|
+
async function addProjectThread(projectId, threadId) {
|
|
7882
|
+
const db2 = createAdminDbClient();
|
|
7883
|
+
const { error } = await db2.from("project_threads").upsert(
|
|
7884
|
+
{ project_id: projectId, thread_id: threadId },
|
|
7885
|
+
{ onConflict: "project_id,thread_id", ignoreDuplicates: true }
|
|
7886
|
+
);
|
|
7887
|
+
if (error) throw error;
|
|
7888
|
+
const { data, error: fetchError } = await db2.from("project_threads").select("*").eq("project_id", projectId).eq("thread_id", threadId).single();
|
|
7889
|
+
if (fetchError) throw fetchError;
|
|
7890
|
+
return data;
|
|
7891
|
+
}
|
|
7892
|
+
async function removeProjectThread(projectId, threadId) {
|
|
7893
|
+
const db2 = createAdminDbClient();
|
|
7894
|
+
const { error } = await db2.from("project_threads").delete().eq("project_id", projectId).eq("thread_id", threadId);
|
|
7895
|
+
if (error) throw error;
|
|
7896
|
+
}
|
|
7897
|
+
async function getProjectForThread(threadId) {
|
|
7898
|
+
const db2 = createAdminDbClient();
|
|
7899
|
+
const { data, error } = await db2.from("project_threads").select("project_id").eq("thread_id", threadId).maybeSingle();
|
|
7900
|
+
if (error) {
|
|
7901
|
+
if (isMissingRelationError(error, "project_threads")) return null;
|
|
7902
|
+
return null;
|
|
7435
7903
|
}
|
|
7436
|
-
|
|
7437
|
-
|
|
7438
|
-
|
|
7439
|
-
|
|
7440
|
-
|
|
7441
|
-
|
|
7442
|
-
|
|
7443
|
-
|
|
7444
|
-
frontmatter[key] = parseDependsOnValue(value);
|
|
7445
|
-
continue;
|
|
7446
|
-
}
|
|
7447
|
-
if (value === "true") frontmatter[key] = true;
|
|
7448
|
-
else if (value === "false") frontmatter[key] = false;
|
|
7449
|
-
else if (/^\d+$/.test(value)) frontmatter[key] = parseInt(value);
|
|
7450
|
-
else frontmatter[key] = value;
|
|
7451
|
-
}
|
|
7904
|
+
return data?.project_id ?? null;
|
|
7905
|
+
}
|
|
7906
|
+
async function getProjectWorkspace(projectId) {
|
|
7907
|
+
const db2 = createAdminDbClient();
|
|
7908
|
+
const { data, error } = await db2.from("workspace_entries").select("*").eq("project_id", projectId).order("category", { ascending: true }).order("sort_order", { ascending: true }).order("name", { ascending: true });
|
|
7909
|
+
if (error) {
|
|
7910
|
+
if (isMissingRelationError(error, "workspace_entries")) return {};
|
|
7911
|
+
throw error;
|
|
7452
7912
|
}
|
|
7453
|
-
|
|
7913
|
+
const entries = data || [];
|
|
7914
|
+
return entries.reduce((acc, entry) => {
|
|
7915
|
+
if (!acc[entry.category]) acc[entry.category] = [];
|
|
7916
|
+
acc[entry.category].push(entry);
|
|
7917
|
+
return acc;
|
|
7918
|
+
}, {});
|
|
7454
7919
|
}
|
|
7455
|
-
async function
|
|
7456
|
-
|
|
7457
|
-
const
|
|
7458
|
-
const
|
|
7459
|
-
const
|
|
7460
|
-
|
|
7461
|
-
|
|
7462
|
-
|
|
7463
|
-
|
|
7464
|
-
|
|
7465
|
-
|
|
7466
|
-
|
|
7467
|
-
|
|
7468
|
-
|
|
7469
|
-
|
|
7470
|
-
|
|
7471
|
-
|
|
7472
|
-
|
|
7473
|
-
|
|
7474
|
-
|
|
7475
|
-
|
|
7476
|
-
|
|
7477
|
-
|
|
7478
|
-
|
|
7479
|
-
|
|
7920
|
+
async function createWorkspaceEntry(projectId, entry) {
|
|
7921
|
+
const db2 = createAdminDbClient();
|
|
7922
|
+
const id = (0, import_crypto.randomUUID)();
|
|
7923
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
7924
|
+
const { data, error } = await db2.from("workspace_entries").insert({
|
|
7925
|
+
id,
|
|
7926
|
+
project_id: projectId,
|
|
7927
|
+
category: entry.category,
|
|
7928
|
+
name: entry.name,
|
|
7929
|
+
path: entry.path || null,
|
|
7930
|
+
purpose: entry.purpose || null,
|
|
7931
|
+
sort_order: 0,
|
|
7932
|
+
created_at: now,
|
|
7933
|
+
updated_at: now
|
|
7934
|
+
}).select().single();
|
|
7935
|
+
if (error) throw error;
|
|
7936
|
+
return data;
|
|
7937
|
+
}
|
|
7938
|
+
async function updateWorkspaceEntry(projectId, entryId, updates) {
|
|
7939
|
+
const db2 = createAdminDbClient();
|
|
7940
|
+
const payload = {};
|
|
7941
|
+
if (updates.name !== void 0) payload.name = updates.name;
|
|
7942
|
+
if (updates.path !== void 0) payload.path = updates.path;
|
|
7943
|
+
if (updates.purpose !== void 0) payload.purpose = updates.purpose;
|
|
7944
|
+
if (updates.sort_order !== void 0) payload.sort_order = updates.sort_order;
|
|
7945
|
+
const { data, error } = await db2.from("workspace_entries").update(payload).eq("id", entryId).eq("project_id", projectId).select().single();
|
|
7946
|
+
if (error) {
|
|
7947
|
+
if (error.code === "PGRST116") return null;
|
|
7948
|
+
throw error;
|
|
7480
7949
|
}
|
|
7950
|
+
return data;
|
|
7481
7951
|
}
|
|
7482
|
-
function
|
|
7483
|
-
const
|
|
7484
|
-
const
|
|
7485
|
-
|
|
7952
|
+
async function deleteWorkspaceEntry(projectId, entryId) {
|
|
7953
|
+
const db2 = createAdminDbClient();
|
|
7954
|
+
const { error } = await db2.from("workspace_entries").delete().eq("id", entryId).eq("project_id", projectId);
|
|
7955
|
+
if (error) throw error;
|
|
7486
7956
|
}
|
|
7957
|
+
async function getWorkspaceMapForContext(projectId) {
|
|
7958
|
+
const db2 = createAdminDbClient();
|
|
7959
|
+
const { data, error } = await db2.from("workspace_entries").select("category, name, path, purpose").eq("project_id", projectId).order("category", { ascending: true }).order("sort_order", { ascending: true }).order("name", { ascending: true });
|
|
7960
|
+
if (error) {
|
|
7961
|
+
if (isMissingRelationError(error, "workspace_entries")) return [];
|
|
7962
|
+
throw error;
|
|
7963
|
+
}
|
|
7964
|
+
return (data || []).map((row) => ({
|
|
7965
|
+
location: `${row.category}/${row.name}`,
|
|
7966
|
+
path: row.path || null,
|
|
7967
|
+
purpose: row.purpose || null
|
|
7968
|
+
}));
|
|
7969
|
+
}
|
|
7970
|
+
var import_crypto, UUID_REGEX;
|
|
7971
|
+
var init_projects = __esm({
|
|
7972
|
+
"apps/local/lib/db/projects.ts"() {
|
|
7973
|
+
"use strict";
|
|
7974
|
+
import_crypto = require("crypto");
|
|
7975
|
+
init_db_adapter();
|
|
7976
|
+
init_vault_store();
|
|
7977
|
+
init_shared();
|
|
7978
|
+
init_types();
|
|
7979
|
+
UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
7980
|
+
}
|
|
7981
|
+
});
|
|
7982
|
+
|
|
7983
|
+
// apps/local/lib/db/tasks.ts
|
|
7487
7984
|
function normalizeDescriptionBody(markdownBody) {
|
|
7488
7985
|
return String(markdownBody || "").replace(/^#\s+.+(\r?\n|$)/, "").trim();
|
|
7489
7986
|
}
|
|
@@ -7581,7 +8078,6 @@ async function createTask(content, userId, options) {
|
|
|
7581
8078
|
const project = await getProjectWithRepos(projectId);
|
|
7582
8079
|
if (project?.slug) projectSlug = project.slug;
|
|
7583
8080
|
}
|
|
7584
|
-
const hadFrontmatter = /^---\n/.test(content);
|
|
7585
8081
|
const provider = typeof frontmatter.provider === "string" ? frontmatter.provider : null;
|
|
7586
8082
|
const model = typeof frontmatter.model === "string" ? frontmatter.model : null;
|
|
7587
8083
|
const engine = typeof frontmatter.engine === "string" ? frontmatter.engine : null;
|
|
@@ -7589,8 +8085,21 @@ async function createTask(content, userId, options) {
|
|
|
7589
8085
|
const frontmatterDepends = normalizeDependsOnInput(frontmatter.depends_on);
|
|
7590
8086
|
const optionDepends = normalizeDependsOnInput(options?.dependsOn);
|
|
7591
8087
|
const dependsOn = optionDepends.length > 0 ? optionDepends : frontmatterDepends;
|
|
8088
|
+
let identifier = null;
|
|
8089
|
+
if (projectId) {
|
|
8090
|
+
try {
|
|
8091
|
+
const { data: projectRow } = await db2.from("projects").select("identifier_prefix, next_identifier").eq("id", projectId).single();
|
|
8092
|
+
if (projectRow && typeof projectRow.identifier_prefix === "string" && projectRow.identifier_prefix) {
|
|
8093
|
+
const n = typeof projectRow.next_identifier === "number" ? projectRow.next_identifier : 1;
|
|
8094
|
+
identifier = `${projectRow.identifier_prefix}-${n}`;
|
|
8095
|
+
await db2.from("projects").update({ next_identifier: n + 1 }).eq("id", projectId);
|
|
8096
|
+
}
|
|
8097
|
+
} catch {
|
|
8098
|
+
identifier = null;
|
|
8099
|
+
}
|
|
8100
|
+
}
|
|
7592
8101
|
const insertPayload = {
|
|
7593
|
-
id: (0,
|
|
8102
|
+
id: (0, import_crypto2.randomUUID)(),
|
|
7594
8103
|
content,
|
|
7595
8104
|
description: normalizeDescriptionBody(body),
|
|
7596
8105
|
title,
|
|
@@ -7600,6 +8109,7 @@ async function createTask(content, userId, options) {
|
|
|
7600
8109
|
project: projectSlug || null,
|
|
7601
8110
|
...projectId !== void 0 ? { project_id: projectId } : {},
|
|
7602
8111
|
...workflowId !== void 0 ? { workflow_id: workflowId } : {},
|
|
8112
|
+
...identifier !== null ? { identifier } : {},
|
|
7603
8113
|
priority: frontmatter.priority,
|
|
7604
8114
|
engine,
|
|
7605
8115
|
provider,
|
|
@@ -7609,7 +8119,6 @@ async function createTask(content, userId, options) {
|
|
|
7609
8119
|
depends_on: dependsOn.length ? dependsOn : null,
|
|
7610
8120
|
created_by: createdBy,
|
|
7611
8121
|
user_id: userId,
|
|
7612
|
-
// Working set fields
|
|
7613
8122
|
current_plan: options?.currentPlan || null,
|
|
7614
8123
|
open_blockers: options?.openBlockers || [],
|
|
7615
8124
|
next_action: options?.nextAction || null,
|
|
@@ -7627,6 +8136,7 @@ async function createTask(content, userId, options) {
|
|
|
7627
8136
|
next_action,
|
|
7628
8137
|
version,
|
|
7629
8138
|
depends_on,
|
|
8139
|
+
identifier: _identifier,
|
|
7630
8140
|
...fallbackPayload
|
|
7631
8141
|
} = insertPayload;
|
|
7632
8142
|
({ data, error } = await db2.from("tasks").insert(fallbackPayload).select().single());
|
|
@@ -7693,7 +8203,6 @@ async function updateTask(id, content, userId, options) {
|
|
|
7693
8203
|
swarm_models: options?.swarmModels ?? void 0,
|
|
7694
8204
|
...shouldUpdateDepends ? { depends_on: dependsOnForUpdate.length ? dependsOnForUpdate : null } : {},
|
|
7695
8205
|
updated_at: (/* @__PURE__ */ new Date()).toISOString(),
|
|
7696
|
-
// Working set fields
|
|
7697
8206
|
current_plan: options?.currentPlan ?? void 0,
|
|
7698
8207
|
open_blockers: options?.openBlockers ?? void 0,
|
|
7699
8208
|
next_action: options?.nextAction ?? void 0
|
|
@@ -7706,14 +8215,8 @@ async function updateTask(id, content, userId, options) {
|
|
|
7706
8215
|
if (shouldUpdateDepends) {
|
|
7707
8216
|
await ensureNoCircularDependency(id, dependsOnForUpdate, db2);
|
|
7708
8217
|
}
|
|
7709
|
-
let query = db2.from("tasks").update({
|
|
7710
|
-
...updatePayload,
|
|
7711
|
-
version: db2.rpc("increment_version")
|
|
7712
|
-
// This will be used in the actual SQL via RPC or raw query if possible
|
|
7713
|
-
}).eq("id", id);
|
|
7714
|
-
if (userId) query = query.eq("user_id", userId);
|
|
7715
8218
|
if (options?.expectedVersion !== void 0) {
|
|
7716
|
-
|
|
8219
|
+
void options.expectedVersion;
|
|
7717
8220
|
}
|
|
7718
8221
|
let { data, error } = await db2.from("tasks").update({
|
|
7719
8222
|
...updatePayload
|
|
@@ -7806,213 +8309,20 @@ async function getNextQueuedTask(engine) {
|
|
|
7806
8309
|
}
|
|
7807
8310
|
return data;
|
|
7808
8311
|
}
|
|
7809
|
-
|
|
7810
|
-
|
|
7811
|
-
|
|
7812
|
-
|
|
7813
|
-
|
|
7814
|
-
|
|
7815
|
-
|
|
7816
|
-
|
|
7817
|
-
|
|
7818
|
-
|
|
7819
|
-
throw error;
|
|
7820
|
-
}
|
|
7821
|
-
const projects = data || [];
|
|
7822
|
-
return projects.map((project) => ({
|
|
7823
|
-
...project,
|
|
7824
|
-
repos: project.project_repos ?? []
|
|
7825
|
-
}));
|
|
7826
|
-
}
|
|
7827
|
-
async function getProjectBySlug(slug, userId) {
|
|
7828
|
-
const db2 = createAdminDbClient();
|
|
7829
|
-
let query = db2.from("projects").select("*").eq("slug", slug);
|
|
7830
|
-
if (userId) query = query.eq("user_id", userId);
|
|
7831
|
-
const { data, error } = await query.maybeSingle();
|
|
7832
|
-
if (error) {
|
|
7833
|
-
if (isMissingRelationError2(error, "projects")) {
|
|
7834
|
-
return null;
|
|
7835
|
-
}
|
|
7836
|
-
throw error;
|
|
7837
|
-
}
|
|
7838
|
-
return data || null;
|
|
7839
|
-
}
|
|
7840
|
-
async function getProjectRepos(projectId) {
|
|
7841
|
-
const db2 = createAdminDbClient();
|
|
7842
|
-
const { data, error } = await db2.from("project_repos").select("*").eq("project_id", projectId);
|
|
7843
|
-
if (error) {
|
|
7844
|
-
if (isMissingRelationError2(error, "project_repos")) {
|
|
7845
|
-
return [];
|
|
7846
|
-
}
|
|
7847
|
-
throw error;
|
|
7848
|
-
}
|
|
7849
|
-
return data || [];
|
|
7850
|
-
}
|
|
7851
|
-
async function getProjectWithRepos(projectIdOrSlug, userId) {
|
|
7852
|
-
const db2 = createAdminDbClient();
|
|
7853
|
-
const isUuid = UUID_REGEX.test(projectIdOrSlug);
|
|
7854
|
-
let projectQuery = db2.from("projects").select("*");
|
|
7855
|
-
if (isUuid) {
|
|
7856
|
-
projectQuery = projectQuery.eq("id", projectIdOrSlug);
|
|
7857
|
-
} else {
|
|
7858
|
-
projectQuery = projectQuery.eq("slug", projectIdOrSlug);
|
|
7859
|
-
}
|
|
7860
|
-
if (userId) projectQuery = projectQuery.eq("user_id", userId);
|
|
7861
|
-
const projectResult = await projectQuery.maybeSingle();
|
|
7862
|
-
if (projectResult.error) {
|
|
7863
|
-
if (isMissingRelationError2(projectResult.error, "projects")) {
|
|
7864
|
-
return null;
|
|
7865
|
-
}
|
|
7866
|
-
throw projectResult.error;
|
|
7867
|
-
}
|
|
7868
|
-
const project = projectResult.data;
|
|
7869
|
-
if (!project) return null;
|
|
7870
|
-
const repos = await getProjectRepos(project.id);
|
|
7871
|
-
return { ...project, repos };
|
|
7872
|
-
}
|
|
7873
|
-
async function insertProjectRepos(projectId, repos, db2) {
|
|
7874
|
-
if (!repos.length) {
|
|
7875
|
-
return [];
|
|
7876
|
-
}
|
|
7877
|
-
const payload = repos.map((repo) => ({
|
|
7878
|
-
...repo.id ? { id: repo.id } : {},
|
|
7879
|
-
project_id: projectId,
|
|
7880
|
-
name: repo.name,
|
|
7881
|
-
path: repo.path ?? null,
|
|
7882
|
-
git_url: repo.git_url ?? null,
|
|
7883
|
-
notes: repo.notes ?? null
|
|
7884
|
-
}));
|
|
7885
|
-
const { data, error } = await db2.from("project_repos").insert(payload).select("*");
|
|
7886
|
-
if (error) {
|
|
7887
|
-
if (isMissingRelationError2(error, "project_repos")) {
|
|
7888
|
-
return [];
|
|
7889
|
-
}
|
|
7890
|
-
throw error;
|
|
7891
|
-
}
|
|
7892
|
-
return data || [];
|
|
7893
|
-
}
|
|
7894
|
-
async function createProject(userId, input, dbClient) {
|
|
7895
|
-
if (!input.name?.trim()) {
|
|
7896
|
-
throw new Error("Project name is required");
|
|
7897
|
-
}
|
|
7898
|
-
const db2 = getDbClient(dbClient);
|
|
7899
|
-
const baseSlug = input.name.trim() || "project";
|
|
7900
|
-
const slug = await generateUniqueProjectSlug(baseSlug, userId, db2);
|
|
7901
|
-
const payload = {
|
|
7902
|
-
user_id: userId,
|
|
7903
|
-
name: input.name.trim(),
|
|
7904
|
-
slug,
|
|
7905
|
-
description: input.description ?? null,
|
|
7906
|
-
workflow_id: input.workflow_id ?? null
|
|
7907
|
-
};
|
|
7908
|
-
const { data: project, error } = await db2.from("projects").insert(payload).select("*").single();
|
|
7909
|
-
if (error) throw error;
|
|
7910
|
-
const repos = await insertProjectRepos(project.id, input.repos ?? [], db2);
|
|
7911
|
-
return { ...project, repos };
|
|
7912
|
-
}
|
|
7913
|
-
async function updateProject(projectIdOrSlug, userId, updates, dbClient) {
|
|
7914
|
-
const db2 = getDbClient(dbClient);
|
|
7915
|
-
const isUuid = UUID_REGEX.test(projectIdOrSlug);
|
|
7916
|
-
let projectId = projectIdOrSlug;
|
|
7917
|
-
if (!isUuid) {
|
|
7918
|
-
const project = await getProjectBySlug(projectIdOrSlug, userId);
|
|
7919
|
-
if (!project) return null;
|
|
7920
|
-
projectId = project.id;
|
|
7921
|
-
}
|
|
7922
|
-
const updatePayload = {};
|
|
7923
|
-
if (typeof updates.name !== "undefined") {
|
|
7924
|
-
const trimmedName = updates.name?.trim();
|
|
7925
|
-
if (!trimmedName) {
|
|
7926
|
-
throw new Error("Project name cannot be empty");
|
|
7927
|
-
}
|
|
7928
|
-
updatePayload.name = trimmedName;
|
|
7929
|
-
}
|
|
7930
|
-
if (typeof updates.slug !== "undefined") {
|
|
7931
|
-
const trimmedSlug = updates.slug?.trim();
|
|
7932
|
-
if (trimmedSlug) {
|
|
7933
|
-
updatePayload.slug = trimmedSlug;
|
|
7934
|
-
}
|
|
7935
|
-
}
|
|
7936
|
-
if (typeof updates.description !== "undefined") updatePayload.description = updates.description;
|
|
7937
|
-
if (typeof updates.metadata !== "undefined") updatePayload.metadata = updates.metadata;
|
|
7938
|
-
if (typeof updates.ci_cd_info !== "undefined") updatePayload.ci_cd_info = updates.ci_cd_info;
|
|
7939
|
-
if (typeof updates.workflow_id !== "undefined") updatePayload.workflow_id = updates.workflow_id;
|
|
7940
|
-
if (Object.keys(updatePayload).length) {
|
|
7941
|
-
const { error } = await db2.from("projects").update(updatePayload).eq("id", projectId).eq("user_id", userId);
|
|
7942
|
-
if (error) throw error;
|
|
7943
|
-
}
|
|
7944
|
-
if (updates.repos) {
|
|
7945
|
-
const { data: existingRepos, error: existingReposError } = await db2.from("project_repos").select("*").eq("project_id", projectId);
|
|
7946
|
-
if (existingReposError && !isMissingRelationError2(existingReposError, "project_repos")) {
|
|
7947
|
-
throw existingReposError;
|
|
7948
|
-
}
|
|
7949
|
-
const existingRepoList = existingRepos || [];
|
|
7950
|
-
const existingRepoIds = new Set(existingRepoList.map((repo) => repo.id));
|
|
7951
|
-
const nextRepoIds = new Set(
|
|
7952
|
-
updates.repos.map((repo) => repo.id).filter((repoId) => Boolean(repoId))
|
|
7953
|
-
);
|
|
7954
|
-
for (const existingRepo of existingRepoList) {
|
|
7955
|
-
if (nextRepoIds.has(existingRepo.id)) continue;
|
|
7956
|
-
const { error: deleteError } = await db2.from("project_repos").delete().eq("id", existingRepo.id).eq("project_id", projectId);
|
|
7957
|
-
if (deleteError && !isMissingRelationError2(deleteError, "project_repos")) {
|
|
7958
|
-
throw deleteError;
|
|
7959
|
-
}
|
|
7960
|
-
}
|
|
7961
|
-
for (const repo of updates.repos) {
|
|
7962
|
-
const payload = {
|
|
7963
|
-
name: repo.name,
|
|
7964
|
-
path: repo.path ?? null,
|
|
7965
|
-
git_url: repo.git_url ?? null,
|
|
7966
|
-
notes: repo.notes ?? null,
|
|
7967
|
-
project_id: projectId
|
|
7968
|
-
};
|
|
7969
|
-
if (repo.id && existingRepoIds.has(repo.id)) {
|
|
7970
|
-
const { error: repoUpdateError } = await db2.from("project_repos").update(payload).eq("id", repo.id).eq("project_id", projectId);
|
|
7971
|
-
if (repoUpdateError && !isMissingRelationError2(repoUpdateError, "project_repos")) {
|
|
7972
|
-
throw repoUpdateError;
|
|
7973
|
-
}
|
|
7974
|
-
continue;
|
|
7975
|
-
}
|
|
7976
|
-
const { error: repoInsertError } = await db2.from("project_repos").insert({
|
|
7977
|
-
...repo.id ? { id: repo.id } : {},
|
|
7978
|
-
...payload
|
|
7979
|
-
});
|
|
7980
|
-
if (repoInsertError && !isMissingRelationError2(repoInsertError, "project_repos")) {
|
|
7981
|
-
throw repoInsertError;
|
|
7982
|
-
}
|
|
7983
|
-
}
|
|
7984
|
-
}
|
|
7985
|
-
return getProjectWithRepos(projectId, userId);
|
|
7986
|
-
}
|
|
7987
|
-
async function deleteProject(projectId, userId, dbClient) {
|
|
7988
|
-
const db2 = getDbClient(dbClient);
|
|
7989
|
-
const { error } = await db2.from("projects").update({ archived_at: (/* @__PURE__ */ new Date()).toISOString() }).eq("id", projectId).eq("user_id", userId);
|
|
7990
|
-
if (error) throw error;
|
|
7991
|
-
}
|
|
7992
|
-
async function assignOrphanTasksToProject(projectId, userId, dbClient) {
|
|
7993
|
-
const db2 = getDbClient(dbClient);
|
|
7994
|
-
const project = await getProjectWithRepos(projectId, userId);
|
|
7995
|
-
if (!project) {
|
|
7996
|
-
throw new Error("Project not found");
|
|
7997
|
-
}
|
|
7998
|
-
const { data: tasks, error: tasksError } = await db2.from("tasks").select("id, project").eq("user_id", userId).is("project_id", null);
|
|
7999
|
-
if (tasksError) throw tasksError;
|
|
8000
|
-
const slug = String(project.slug || "").trim().toLowerCase();
|
|
8001
|
-
const orphanTaskIds = (tasks || []).filter((task) => {
|
|
8002
|
-
const projectValue = String(task.project || "").trim().toLowerCase();
|
|
8003
|
-
return !projectValue || projectValue === "none" || projectValue === slug;
|
|
8004
|
-
}).map((task) => task.id);
|
|
8005
|
-
if (!orphanTaskIds.length) {
|
|
8006
|
-
return { updatedCount: 0, taskIds: [] };
|
|
8312
|
+
var import_crypto2;
|
|
8313
|
+
var init_tasks = __esm({
|
|
8314
|
+
"apps/local/lib/db/tasks.ts"() {
|
|
8315
|
+
"use strict";
|
|
8316
|
+
import_crypto2 = require("crypto");
|
|
8317
|
+
init_db_adapter();
|
|
8318
|
+
init_dependency_helpers();
|
|
8319
|
+
init_notifications();
|
|
8320
|
+
init_projects();
|
|
8321
|
+
init_shared();
|
|
8007
8322
|
}
|
|
8008
|
-
|
|
8009
|
-
|
|
8010
|
-
|
|
8011
|
-
updated_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
8012
|
-
}).eq("user_id", userId).is("project_id", null).in("id", orphanTaskIds);
|
|
8013
|
-
if (updateError) throw updateError;
|
|
8014
|
-
return { updatedCount: orphanTaskIds.length, taskIds: orphanTaskIds };
|
|
8015
|
-
}
|
|
8323
|
+
});
|
|
8324
|
+
|
|
8325
|
+
// apps/local/lib/db/workflows.ts
|
|
8016
8326
|
async function ensureDefaultWorkflowGraphExists(userId) {
|
|
8017
8327
|
const db2 = createAdminDbClient();
|
|
8018
8328
|
const ownerId = userId || DEFAULT_SYSTEM_USER_ID;
|
|
@@ -8040,9 +8350,7 @@ async function ensureDefaultWorkflowGraphExists(userId) {
|
|
|
8040
8350
|
{
|
|
8041
8351
|
workflow_id: DEFAULT_SDLC_WORKFLOW_ID,
|
|
8042
8352
|
from_node_id: "00000000-0000-0000-0001-000000000001",
|
|
8043
|
-
// INTAKE
|
|
8044
8353
|
to_node_id: "00000000-0000-0000-0001-000000000002",
|
|
8045
|
-
// PROGRESS
|
|
8046
8354
|
condition: "done",
|
|
8047
8355
|
priority: 0,
|
|
8048
8356
|
metadata: {}
|
|
@@ -8050,9 +8358,7 @@ async function ensureDefaultWorkflowGraphExists(userId) {
|
|
|
8050
8358
|
{
|
|
8051
8359
|
workflow_id: DEFAULT_SDLC_WORKFLOW_ID,
|
|
8052
8360
|
from_node_id: "00000000-0000-0000-0001-000000000002",
|
|
8053
|
-
// PROGRESS
|
|
8054
8361
|
to_node_id: "00000000-0000-0000-0001-000000000003",
|
|
8055
|
-
// DONE
|
|
8056
8362
|
condition: "done",
|
|
8057
8363
|
priority: 0,
|
|
8058
8364
|
metadata: {}
|
|
@@ -8066,7 +8372,7 @@ async function getWorkflows(userId) {
|
|
|
8066
8372
|
const db2 = createAdminDbClient();
|
|
8067
8373
|
const { data, error } = await db2.from("workflows").select("*").or(`user_id.eq.${userId},user_id.eq.00000000-0000-0000-0000-000000000000`).order("created_at", { ascending: false });
|
|
8068
8374
|
if (error) {
|
|
8069
|
-
if (
|
|
8375
|
+
if (isMissingRelationError(error, "workflows")) return [];
|
|
8070
8376
|
throw error;
|
|
8071
8377
|
}
|
|
8072
8378
|
return data || [];
|
|
@@ -8074,17 +8380,17 @@ async function getWorkflows(userId) {
|
|
|
8074
8380
|
async function getWorkflow(id, userId) {
|
|
8075
8381
|
const db2 = createAdminDbClient();
|
|
8076
8382
|
let query = db2.from("workflows").select("*").eq("id", id);
|
|
8077
|
-
|
|
8078
|
-
}
|
|
8383
|
+
void userId;
|
|
8079
8384
|
const { data, error } = await query.maybeSingle();
|
|
8080
8385
|
if (error) {
|
|
8081
|
-
if (
|
|
8386
|
+
if (isMissingRelationError(error, "workflows")) return null;
|
|
8082
8387
|
throw error;
|
|
8083
8388
|
}
|
|
8084
8389
|
return data;
|
|
8085
8390
|
}
|
|
8086
8391
|
async function updateWorkflow(id, userId, updates) {
|
|
8087
8392
|
const db2 = createAdminDbClient();
|
|
8393
|
+
void userId;
|
|
8088
8394
|
const payload = { updated_at: (/* @__PURE__ */ new Date()).toISOString() };
|
|
8089
8395
|
if (updates.definition !== void 0) payload.definition = updates.definition;
|
|
8090
8396
|
if (updates.name !== void 0) payload.name = updates.name;
|
|
@@ -8097,7 +8403,7 @@ async function getWorkflowNodes(workflowId) {
|
|
|
8097
8403
|
const db2 = createAdminDbClient();
|
|
8098
8404
|
const { data, error } = await db2.from("workflow_nodes").select("*").eq("workflow_id", workflowId).order("position", { ascending: true });
|
|
8099
8405
|
if (error) {
|
|
8100
|
-
if (
|
|
8406
|
+
if (isMissingRelationError(error, "workflow_nodes")) return [];
|
|
8101
8407
|
throw error;
|
|
8102
8408
|
}
|
|
8103
8409
|
return data || [];
|
|
@@ -8150,7 +8456,7 @@ async function getWorkflowNodeByName(workflowId, name) {
|
|
|
8150
8456
|
const db2 = createAdminDbClient();
|
|
8151
8457
|
const { data, error } = await db2.from("workflow_nodes").select("*").eq("workflow_id", workflowId).eq("name", name).maybeSingle();
|
|
8152
8458
|
if (error) {
|
|
8153
|
-
if (
|
|
8459
|
+
if (isMissingRelationError(error, "workflow_nodes")) return null;
|
|
8154
8460
|
throw error;
|
|
8155
8461
|
}
|
|
8156
8462
|
return data;
|
|
@@ -8159,7 +8465,7 @@ async function getWorkflowTransitions(workflowId) {
|
|
|
8159
8465
|
const db2 = createAdminDbClient();
|
|
8160
8466
|
const { data, error } = await db2.from("workflow_transitions").select("*").eq("workflow_id", workflowId).order("priority", { ascending: true });
|
|
8161
8467
|
if (error) {
|
|
8162
|
-
if (
|
|
8468
|
+
if (isMissingRelationError(error, "workflow_transitions")) return [];
|
|
8163
8469
|
throw error;
|
|
8164
8470
|
}
|
|
8165
8471
|
return data || [];
|
|
@@ -8168,7 +8474,7 @@ async function getWorkflowTransitionsFromNode(workflowId, fromNodeId) {
|
|
|
8168
8474
|
const db2 = createAdminDbClient();
|
|
8169
8475
|
const { data, error } = await db2.from("workflow_transitions").select("*").eq("workflow_id", workflowId).eq("from_node_id", fromNodeId).order("priority", { ascending: true });
|
|
8170
8476
|
if (error) {
|
|
8171
|
-
if (
|
|
8477
|
+
if (isMissingRelationError(error, "workflow_transitions")) return [];
|
|
8172
8478
|
throw error;
|
|
8173
8479
|
}
|
|
8174
8480
|
return data || [];
|
|
@@ -8185,6 +8491,115 @@ async function getWorkflowWithGraph(id, userId) {
|
|
|
8185
8491
|
function getDefaultWorkflowId() {
|
|
8186
8492
|
return DEFAULT_SDLC_WORKFLOW_ID;
|
|
8187
8493
|
}
|
|
8494
|
+
async function getStagePrompts(userId, workflowId) {
|
|
8495
|
+
const db2 = createAdminDbClient();
|
|
8496
|
+
let query = db2.from("stage_prompts").select("*").eq("workflow_id", workflowId).order("stage", { ascending: true });
|
|
8497
|
+
if (userId) {
|
|
8498
|
+
query = query.or(`user_id.eq.${userId},is_default.eq.true`);
|
|
8499
|
+
} else {
|
|
8500
|
+
query = query.eq("is_default", true);
|
|
8501
|
+
}
|
|
8502
|
+
const { data, error } = await query;
|
|
8503
|
+
if (error) throw error;
|
|
8504
|
+
return data || [];
|
|
8505
|
+
}
|
|
8506
|
+
async function getStagePrompt(stage, userId, workflowId) {
|
|
8507
|
+
const db2 = createAdminDbClient();
|
|
8508
|
+
if (userId) {
|
|
8509
|
+
const { data: userPrompt } = await db2.from("stage_prompts").select("*").eq("workflow_id", workflowId).eq("stage", stage).eq("user_id", userId).single();
|
|
8510
|
+
if (userPrompt) return userPrompt;
|
|
8511
|
+
}
|
|
8512
|
+
const { data: defaultPrompt } = await db2.from("stage_prompts").select("*").eq("workflow_id", workflowId).eq("stage", stage).eq("is_default", true).single();
|
|
8513
|
+
return defaultPrompt || null;
|
|
8514
|
+
}
|
|
8515
|
+
async function upsertStagePrompt(stage, prompt, outputs = [], userId, modelConfig, workflowId) {
|
|
8516
|
+
const db2 = createAdminDbClient();
|
|
8517
|
+
const payload = {
|
|
8518
|
+
stage,
|
|
8519
|
+
prompt,
|
|
8520
|
+
outputs,
|
|
8521
|
+
user_id: userId,
|
|
8522
|
+
is_default: !userId,
|
|
8523
|
+
workflow_id: workflowId
|
|
8524
|
+
};
|
|
8525
|
+
if (modelConfig) {
|
|
8526
|
+
if (modelConfig.swarm !== void 0) payload.swarm = modelConfig.swarm;
|
|
8527
|
+
if (modelConfig.provider !== void 0) payload.provider = modelConfig.provider;
|
|
8528
|
+
if (modelConfig.model !== void 0) payload.model = modelConfig.model;
|
|
8529
|
+
if (modelConfig.swarm_models !== void 0) payload.swarm_models = modelConfig.swarm_models;
|
|
8530
|
+
}
|
|
8531
|
+
const { data, error } = await db2.from("stage_prompts").upsert(payload, {
|
|
8532
|
+
onConflict: userId ? "workflow_id,stage,user_id" : "workflow_id,stage,is_default"
|
|
8533
|
+
}).select().single();
|
|
8534
|
+
if (error) throw error;
|
|
8535
|
+
return data;
|
|
8536
|
+
}
|
|
8537
|
+
async function deleteStagePrompt(id, userId) {
|
|
8538
|
+
const db2 = createAdminDbClient();
|
|
8539
|
+
let query = db2.from("stage_prompts").delete().eq("id", id);
|
|
8540
|
+
if (userId) query = query.eq("user_id", userId);
|
|
8541
|
+
const { error } = await query;
|
|
8542
|
+
if (error) throw error;
|
|
8543
|
+
}
|
|
8544
|
+
var DEFAULT_SDLC_WORKFLOW_ID, DEFAULT_SYSTEM_USER_ID, DEFAULT_WORKFLOW_NODE_SEED, DEFAULT_WORKFLOW_NODE_SEED_BY_ID, defaultStagePrompts, DEFAULT_WORKFLOW_ID;
|
|
8545
|
+
var init_workflows = __esm({
|
|
8546
|
+
"apps/local/lib/db/workflows.ts"() {
|
|
8547
|
+
"use strict";
|
|
8548
|
+
init_db_adapter();
|
|
8549
|
+
init_shared();
|
|
8550
|
+
DEFAULT_SDLC_WORKFLOW_ID = "00000000-0000-0000-0000-000000000001";
|
|
8551
|
+
DEFAULT_SYSTEM_USER_ID = "00000000-0000-0000-0000-000000000000";
|
|
8552
|
+
DEFAULT_WORKFLOW_NODE_SEED = [
|
|
8553
|
+
{
|
|
8554
|
+
id: "00000000-0000-0000-0001-000000000001",
|
|
8555
|
+
name: "INTAKE",
|
|
8556
|
+
label: "Intake",
|
|
8557
|
+
prompt: "New task. Triage, scope, and prepare for work.",
|
|
8558
|
+
position: 0,
|
|
8559
|
+
node_type: "step"
|
|
8560
|
+
},
|
|
8561
|
+
{
|
|
8562
|
+
id: "00000000-0000-0000-0001-000000000002",
|
|
8563
|
+
name: "PROGRESS",
|
|
8564
|
+
label: "Progress",
|
|
8565
|
+
prompt: "Task is actively being worked on.",
|
|
8566
|
+
position: 1,
|
|
8567
|
+
node_type: "step"
|
|
8568
|
+
},
|
|
8569
|
+
{
|
|
8570
|
+
id: "00000000-0000-0000-0001-000000000003",
|
|
8571
|
+
name: "DONE",
|
|
8572
|
+
label: "Done",
|
|
8573
|
+
prompt: "Task completed.",
|
|
8574
|
+
position: 2,
|
|
8575
|
+
node_type: "terminal"
|
|
8576
|
+
}
|
|
8577
|
+
];
|
|
8578
|
+
DEFAULT_WORKFLOW_NODE_SEED_BY_ID = new Map(
|
|
8579
|
+
DEFAULT_WORKFLOW_NODE_SEED.map((node) => [node.id, node])
|
|
8580
|
+
);
|
|
8581
|
+
defaultStagePrompts = {
|
|
8582
|
+
INTAKE: {
|
|
8583
|
+
prompt: "New task. Triage, scope, and prepare for work.",
|
|
8584
|
+
outputs: [],
|
|
8585
|
+
swarm: false
|
|
8586
|
+
},
|
|
8587
|
+
PROGRESS: {
|
|
8588
|
+
prompt: "Task is actively being worked on.",
|
|
8589
|
+
outputs: [],
|
|
8590
|
+
swarm: false
|
|
8591
|
+
},
|
|
8592
|
+
DONE: {
|
|
8593
|
+
prompt: "Task completed.",
|
|
8594
|
+
outputs: [],
|
|
8595
|
+
swarm: false
|
|
8596
|
+
}
|
|
8597
|
+
};
|
|
8598
|
+
DEFAULT_WORKFLOW_ID = "00000000-0000-0000-0000-000000000001";
|
|
8599
|
+
}
|
|
8600
|
+
});
|
|
8601
|
+
|
|
8602
|
+
// apps/local/lib/db/task-logs.ts
|
|
8188
8603
|
async function getTaskLogs(taskId, options = {}) {
|
|
8189
8604
|
const db2 = createAdminDbClient();
|
|
8190
8605
|
const limit = Math.max(1, Math.min(2e3, Number(options.limit ?? options.tail ?? 500)));
|
|
@@ -8215,6 +8630,14 @@ async function addTaskLog(taskId, content, logType, nodeId) {
|
|
|
8215
8630
|
if (error) throw error;
|
|
8216
8631
|
return data;
|
|
8217
8632
|
}
|
|
8633
|
+
var init_task_logs = __esm({
|
|
8634
|
+
"apps/local/lib/db/task-logs.ts"() {
|
|
8635
|
+
"use strict";
|
|
8636
|
+
init_db_adapter();
|
|
8637
|
+
}
|
|
8638
|
+
});
|
|
8639
|
+
|
|
8640
|
+
// apps/local/lib/db/task-costs.ts
|
|
8218
8641
|
function normalizeTokenCount(value) {
|
|
8219
8642
|
const parsed = Number(value ?? 0);
|
|
8220
8643
|
if (!Number.isFinite(parsed)) return 0;
|
|
@@ -8284,6 +8707,14 @@ async function getTaskCostSummary(taskId) {
|
|
|
8284
8707
|
const entries = await getTaskCostEntries(taskId);
|
|
8285
8708
|
return summarizeTaskCosts(entries);
|
|
8286
8709
|
}
|
|
8710
|
+
var init_task_costs = __esm({
|
|
8711
|
+
"apps/local/lib/db/task-costs.ts"() {
|
|
8712
|
+
"use strict";
|
|
8713
|
+
init_db_adapter();
|
|
8714
|
+
}
|
|
8715
|
+
});
|
|
8716
|
+
|
|
8717
|
+
// apps/local/lib/db/task-comments.ts
|
|
8287
8718
|
async function getTaskComments(taskId) {
|
|
8288
8719
|
const db2 = createAdminDbClient();
|
|
8289
8720
|
const { data, error } = await db2.from("task_comments").select("*").eq("task_id", taskId).is("deleted_at", null).order("created_at", { ascending: true }).order("id", { ascending: true });
|
|
@@ -8307,6 +8738,14 @@ async function deleteTaskComment(commentId, userId) {
|
|
|
8307
8738
|
const { error } = await db2.from("task_comments").update({ deleted_at: (/* @__PURE__ */ new Date()).toISOString() }).eq("id", commentId).is("deleted_at", null);
|
|
8308
8739
|
if (error) throw error;
|
|
8309
8740
|
}
|
|
8741
|
+
var init_task_comments = __esm({
|
|
8742
|
+
"apps/local/lib/db/task-comments.ts"() {
|
|
8743
|
+
"use strict";
|
|
8744
|
+
init_db_adapter();
|
|
8745
|
+
}
|
|
8746
|
+
});
|
|
8747
|
+
|
|
8748
|
+
// apps/local/lib/db/learnings.ts
|
|
8310
8749
|
async function getLearnings(scope, scopeId, userId) {
|
|
8311
8750
|
if (scope !== "task") {
|
|
8312
8751
|
return vaultStore.getLearnings(scope, scopeId);
|
|
@@ -8344,61 +8783,21 @@ async function deleteLearning(id, userId) {
|
|
|
8344
8783
|
const { error } = await query;
|
|
8345
8784
|
if (error) throw error;
|
|
8346
8785
|
}
|
|
8347
|
-
|
|
8348
|
-
|
|
8349
|
-
|
|
8350
|
-
|
|
8351
|
-
|
|
8352
|
-
|
|
8353
|
-
query = query.eq("is_default", true);
|
|
8354
|
-
}
|
|
8355
|
-
const { data, error } = await query;
|
|
8356
|
-
if (error) throw error;
|
|
8357
|
-
return data || [];
|
|
8358
|
-
}
|
|
8359
|
-
async function getStagePrompt(stage, userId, workflowId) {
|
|
8360
|
-
const db2 = createAdminDbClient();
|
|
8361
|
-
if (userId) {
|
|
8362
|
-
const { data: userPrompt } = await db2.from("stage_prompts").select("*").eq("workflow_id", workflowId).eq("stage", stage).eq("user_id", userId).single();
|
|
8363
|
-
if (userPrompt) return userPrompt;
|
|
8364
|
-
}
|
|
8365
|
-
const { data: defaultPrompt } = await db2.from("stage_prompts").select("*").eq("workflow_id", workflowId).eq("stage", stage).eq("is_default", true).single();
|
|
8366
|
-
return defaultPrompt || null;
|
|
8367
|
-
}
|
|
8368
|
-
async function upsertStagePrompt(stage, prompt, outputs = [], userId, modelConfig, workflowId) {
|
|
8369
|
-
const db2 = createAdminDbClient();
|
|
8370
|
-
const payload = {
|
|
8371
|
-
stage,
|
|
8372
|
-
prompt,
|
|
8373
|
-
outputs,
|
|
8374
|
-
user_id: userId,
|
|
8375
|
-
is_default: !userId,
|
|
8376
|
-
workflow_id: workflowId
|
|
8377
|
-
};
|
|
8378
|
-
if (modelConfig) {
|
|
8379
|
-
if (modelConfig.swarm !== void 0) payload.swarm = modelConfig.swarm;
|
|
8380
|
-
if (modelConfig.provider !== void 0) payload.provider = modelConfig.provider;
|
|
8381
|
-
if (modelConfig.model !== void 0) payload.model = modelConfig.model;
|
|
8382
|
-
if (modelConfig.swarm_models !== void 0) payload.swarm_models = modelConfig.swarm_models;
|
|
8786
|
+
var init_learnings = __esm({
|
|
8787
|
+
"apps/local/lib/db/learnings.ts"() {
|
|
8788
|
+
"use strict";
|
|
8789
|
+
init_db_adapter();
|
|
8790
|
+
init_vault_store();
|
|
8791
|
+
init_projects();
|
|
8383
8792
|
}
|
|
8384
|
-
|
|
8385
|
-
|
|
8386
|
-
|
|
8387
|
-
if (error) throw error;
|
|
8388
|
-
return data;
|
|
8389
|
-
}
|
|
8390
|
-
async function deleteStagePrompt(id, userId) {
|
|
8391
|
-
const db2 = createAdminDbClient();
|
|
8392
|
-
let query = db2.from("stage_prompts").delete().eq("id", id);
|
|
8393
|
-
if (userId) query = query.eq("user_id", userId);
|
|
8394
|
-
const { error } = await query;
|
|
8395
|
-
if (error) throw error;
|
|
8396
|
-
}
|
|
8793
|
+
});
|
|
8794
|
+
|
|
8795
|
+
// apps/local/lib/db/agents.ts
|
|
8397
8796
|
async function getAgents(userId) {
|
|
8398
8797
|
const db2 = createAdminDbClient();
|
|
8399
8798
|
const { data, error } = await db2.from("agents").select("*").eq("user_id", userId).order("created_at", { ascending: false });
|
|
8400
8799
|
if (error) {
|
|
8401
|
-
if (
|
|
8800
|
+
if (isMissingRelationError(error, "agents")) return [];
|
|
8402
8801
|
throw error;
|
|
8403
8802
|
}
|
|
8404
8803
|
return data || [];
|
|
@@ -8407,7 +8806,7 @@ async function getAgent(id, userId) {
|
|
|
8407
8806
|
const db2 = createAdminDbClient();
|
|
8408
8807
|
const { data, error } = await db2.from("agents").select("*").eq("id", id).eq("user_id", userId).maybeSingle();
|
|
8409
8808
|
if (error) {
|
|
8410
|
-
if (error.code === "PGRST116" ||
|
|
8809
|
+
if (error.code === "PGRST116" || isMissingRelationError(error, "agents")) return null;
|
|
8411
8810
|
throw error;
|
|
8412
8811
|
}
|
|
8413
8812
|
return data;
|
|
@@ -8416,7 +8815,7 @@ async function getAgentSkills(agentId) {
|
|
|
8416
8815
|
const db2 = createAdminDbClient();
|
|
8417
8816
|
const { data, error } = await db2.from("agent_skills").select("*").eq("agent_id", agentId).order("created_at", { ascending: true });
|
|
8418
8817
|
if (error) {
|
|
8419
|
-
if (
|
|
8818
|
+
if (isMissingRelationError(error, "agent_skills")) return [];
|
|
8420
8819
|
throw error;
|
|
8421
8820
|
}
|
|
8422
8821
|
return data || [];
|
|
@@ -8437,19 +8836,19 @@ async function setAgentSkills(agentId, skills) {
|
|
|
8437
8836
|
for (const skill of existing) {
|
|
8438
8837
|
if (!normalized.has(skill.file)) {
|
|
8439
8838
|
const { error } = await db2.from("agent_skills").delete().eq("agent_id", agentId).eq("file", skill.file);
|
|
8440
|
-
if (error && !
|
|
8839
|
+
if (error && !isMissingRelationError(error, "agent_skills")) throw error;
|
|
8441
8840
|
}
|
|
8442
8841
|
}
|
|
8443
8842
|
for (const entry of normalized.values()) {
|
|
8444
8843
|
const existingSkill = existing.find((skill) => skill.file === entry.file);
|
|
8445
8844
|
if (!existingSkill) {
|
|
8446
8845
|
const { error } = await db2.from("agent_skills").insert(entry);
|
|
8447
|
-
if (error && !
|
|
8846
|
+
if (error && !isMissingRelationError(error, "agent_skills")) throw error;
|
|
8448
8847
|
continue;
|
|
8449
8848
|
}
|
|
8450
8849
|
if ((existingSkill.condition ?? null) !== entry.condition) {
|
|
8451
8850
|
const { error } = await db2.from("agent_skills").update({ condition: entry.condition }).eq("agent_id", agentId).eq("file", entry.file);
|
|
8452
|
-
if (error && !
|
|
8851
|
+
if (error && !isMissingRelationError(error, "agent_skills")) throw error;
|
|
8453
8852
|
}
|
|
8454
8853
|
}
|
|
8455
8854
|
return getAgentSkills(agentId);
|
|
@@ -8471,7 +8870,7 @@ async function createAgent(userId, input) {
|
|
|
8471
8870
|
if (input.color !== void 0) payload.color = input.color;
|
|
8472
8871
|
const { data, error } = await db2.from("agents").insert(payload).select().single();
|
|
8473
8872
|
if (error) {
|
|
8474
|
-
if (
|
|
8873
|
+
if (isMissingRelationError(error, "agents")) {
|
|
8475
8874
|
throw new Error("Agents table does not exist");
|
|
8476
8875
|
}
|
|
8477
8876
|
throw error;
|
|
@@ -8495,7 +8894,7 @@ async function updateAgent(id, userId, input) {
|
|
|
8495
8894
|
}
|
|
8496
8895
|
const { data, error } = await db2.from("agents").update(updatePayload).eq("id", id).eq("user_id", userId).select().single();
|
|
8497
8896
|
if (error) {
|
|
8498
|
-
if (error.code === "PGRST116" ||
|
|
8897
|
+
if (error.code === "PGRST116" || isMissingRelationError(error, "agents")) return null;
|
|
8499
8898
|
throw error;
|
|
8500
8899
|
}
|
|
8501
8900
|
return data;
|
|
@@ -8504,47 +8903,25 @@ async function deleteAgent(id, userId) {
|
|
|
8504
8903
|
const db2 = createAdminDbClient();
|
|
8505
8904
|
const { error } = await db2.from("agents").delete().eq("id", id).eq("user_id", userId);
|
|
8506
8905
|
if (error) {
|
|
8507
|
-
if (!
|
|
8906
|
+
if (!isMissingRelationError(error, "agents")) {
|
|
8508
8907
|
throw error;
|
|
8509
8908
|
}
|
|
8510
8909
|
}
|
|
8511
8910
|
}
|
|
8512
|
-
|
|
8513
|
-
|
|
8514
|
-
|
|
8515
|
-
|
|
8516
|
-
|
|
8517
|
-
throw error;
|
|
8518
|
-
}
|
|
8519
|
-
return data || [];
|
|
8520
|
-
}
|
|
8521
|
-
async function addProjectAgent(projectId, agentId, routingOrder) {
|
|
8522
|
-
const db2 = createAdminDbClient();
|
|
8523
|
-
if (routingOrder === void 0) {
|
|
8524
|
-
const { data: existing } = await db2.from("project_agents").select("routing_order").eq("project_id", projectId).order("routing_order", { ascending: false }).limit(1);
|
|
8525
|
-
routingOrder = (existing?.[0]?.routing_order ?? -1) + 1;
|
|
8526
|
-
}
|
|
8527
|
-
const { data, error } = await db2.from("project_agents").upsert({ project_id: projectId, agent_id: agentId, routing_order: routingOrder }).select().single();
|
|
8528
|
-
if (error) throw error;
|
|
8529
|
-
return data;
|
|
8530
|
-
}
|
|
8531
|
-
async function removeProjectAgent(projectId, agentId) {
|
|
8532
|
-
const db2 = createAdminDbClient();
|
|
8533
|
-
const { error } = await db2.from("project_agents").delete().eq("project_id", projectId).eq("agent_id", agentId);
|
|
8534
|
-
if (error) throw error;
|
|
8535
|
-
}
|
|
8536
|
-
async function reorderProjectAgents(projectId, orderedAgentIds) {
|
|
8537
|
-
const db2 = createAdminDbClient();
|
|
8538
|
-
for (let i = 0; i < orderedAgentIds.length; i++) {
|
|
8539
|
-
await db2.from("project_agents").update({ routing_order: i }).eq("project_id", projectId).eq("agent_id", orderedAgentIds[i]);
|
|
8911
|
+
var init_agents = __esm({
|
|
8912
|
+
"apps/local/lib/db/agents.ts"() {
|
|
8913
|
+
"use strict";
|
|
8914
|
+
init_db_adapter();
|
|
8915
|
+
init_shared();
|
|
8540
8916
|
}
|
|
8541
|
-
|
|
8542
|
-
|
|
8917
|
+
});
|
|
8918
|
+
|
|
8919
|
+
// apps/local/lib/db/teams.ts
|
|
8543
8920
|
async function getTeams(projectId) {
|
|
8544
8921
|
const db2 = createAdminDbClient();
|
|
8545
8922
|
const { data, error } = await db2.from("teams").select("*").eq("project_id", projectId).order("created_at", { ascending: true });
|
|
8546
8923
|
if (error) {
|
|
8547
|
-
if (
|
|
8924
|
+
if (isMissingRelationError(error, "teams")) return [];
|
|
8548
8925
|
throw error;
|
|
8549
8926
|
}
|
|
8550
8927
|
return (data || []).map((row) => ({
|
|
@@ -8556,7 +8933,7 @@ async function getTeam(teamId) {
|
|
|
8556
8933
|
const db2 = createAdminDbClient();
|
|
8557
8934
|
const { data, error } = await db2.from("teams").select("*").eq("id", teamId).limit(1).single();
|
|
8558
8935
|
if (error) {
|
|
8559
|
-
if (error.code === "PGRST116" ||
|
|
8936
|
+
if (error.code === "PGRST116" || isMissingRelationError(error, "teams")) return null;
|
|
8560
8937
|
throw error;
|
|
8561
8938
|
}
|
|
8562
8939
|
if (!data) return null;
|
|
@@ -8567,7 +8944,7 @@ async function getTeam(teamId) {
|
|
|
8567
8944
|
}
|
|
8568
8945
|
async function createTeam(projectId, name, templateId, metadata) {
|
|
8569
8946
|
const db2 = createAdminDbClient();
|
|
8570
|
-
const id = (0,
|
|
8947
|
+
const id = (0, import_crypto3.randomUUID)();
|
|
8571
8948
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
8572
8949
|
const { data, error } = await db2.from("teams").insert({
|
|
8573
8950
|
id,
|
|
@@ -8608,7 +8985,7 @@ async function getTeamAgents(teamId) {
|
|
|
8608
8985
|
const db2 = createAdminDbClient();
|
|
8609
8986
|
const { data, error } = await db2.from("team_agents").select("*").eq("team_id", teamId).order("routing_order", { ascending: true });
|
|
8610
8987
|
if (error) {
|
|
8611
|
-
if (
|
|
8988
|
+
if (isMissingRelationError(error, "team_agents")) return [];
|
|
8612
8989
|
throw error;
|
|
8613
8990
|
}
|
|
8614
8991
|
return data || [];
|
|
@@ -8628,90 +9005,17 @@ async function removeTeamAgent(teamId, agentId) {
|
|
|
8628
9005
|
const { error } = await db2.from("team_agents").delete().eq("team_id", teamId).eq("agent_id", agentId);
|
|
8629
9006
|
if (error) throw error;
|
|
8630
9007
|
}
|
|
8631
|
-
|
|
8632
|
-
|
|
8633
|
-
|
|
8634
|
-
|
|
8635
|
-
|
|
8636
|
-
|
|
8637
|
-
|
|
8638
|
-
return data || [];
|
|
8639
|
-
}
|
|
8640
|
-
async function addProjectSkill(projectId, file, condition) {
|
|
8641
|
-
const db2 = createAdminDbClient();
|
|
8642
|
-
const { data, error } = await db2.from("project_skills").insert({ project_id: projectId, file, condition: condition ?? null }).select().single();
|
|
8643
|
-
if (error) throw error;
|
|
8644
|
-
return data;
|
|
8645
|
-
}
|
|
8646
|
-
async function removeProjectSkill(skillId) {
|
|
8647
|
-
const db2 = createAdminDbClient();
|
|
8648
|
-
const { error } = await db2.from("project_skills").delete().eq("id", skillId);
|
|
8649
|
-
if (error) throw error;
|
|
8650
|
-
}
|
|
8651
|
-
async function getProjectVariables(projectId) {
|
|
8652
|
-
const db2 = createAdminDbClient();
|
|
8653
|
-
const { data, error } = await db2.from("project_variables").select("*").eq("project_id", projectId);
|
|
8654
|
-
if (error) {
|
|
8655
|
-
if (isMissingRelationError2(error, "project_variables")) return [];
|
|
8656
|
-
throw error;
|
|
8657
|
-
}
|
|
8658
|
-
return data || [];
|
|
8659
|
-
}
|
|
8660
|
-
async function setProjectVariable(projectId, key, value) {
|
|
8661
|
-
const db2 = createAdminDbClient();
|
|
8662
|
-
const { data, error } = await db2.from("project_variables").upsert({ project_id: projectId, key, value }).select().single();
|
|
8663
|
-
if (error) throw error;
|
|
8664
|
-
return data;
|
|
8665
|
-
}
|
|
8666
|
-
async function deleteProjectVariable(projectId, key) {
|
|
8667
|
-
const db2 = createAdminDbClient();
|
|
8668
|
-
const { error } = await db2.from("project_variables").delete().eq("project_id", projectId).eq("key", key);
|
|
8669
|
-
if (error) throw error;
|
|
8670
|
-
}
|
|
8671
|
-
async function getProjectMemory(projectId, producer) {
|
|
8672
|
-
void producer;
|
|
8673
|
-
return vaultStore.getProjectMemory(projectId);
|
|
8674
|
-
}
|
|
8675
|
-
async function addProjectMemory(projectId, content, source, producer = "human") {
|
|
8676
|
-
return vaultStore.addProjectMemory(projectId, content, source, producer);
|
|
8677
|
-
}
|
|
8678
|
-
async function deleteProjectMemory(memoryId) {
|
|
8679
|
-
vaultStore.deleteProjectMemory(memoryId);
|
|
8680
|
-
}
|
|
8681
|
-
async function getProjectThreads(projectId) {
|
|
8682
|
-
const db2 = createAdminDbClient();
|
|
8683
|
-
const { data, error } = await db2.from("project_threads").select("*").eq("project_id", projectId).order("created_at", { ascending: true });
|
|
8684
|
-
if (error) {
|
|
8685
|
-
if (isMissingRelationError2(error, "project_threads")) return [];
|
|
8686
|
-
throw error;
|
|
8687
|
-
}
|
|
8688
|
-
return data || [];
|
|
8689
|
-
}
|
|
8690
|
-
async function addProjectThread(projectId, threadId) {
|
|
8691
|
-
const db2 = createAdminDbClient();
|
|
8692
|
-
const { error } = await db2.from("project_threads").upsert(
|
|
8693
|
-
{ project_id: projectId, thread_id: threadId },
|
|
8694
|
-
{ onConflict: "project_id,thread_id", ignoreDuplicates: true }
|
|
8695
|
-
);
|
|
8696
|
-
if (error) throw error;
|
|
8697
|
-
const { data, error: fetchError } = await db2.from("project_threads").select("*").eq("project_id", projectId).eq("thread_id", threadId).single();
|
|
8698
|
-
if (fetchError) throw fetchError;
|
|
8699
|
-
return data;
|
|
8700
|
-
}
|
|
8701
|
-
async function removeProjectThread(projectId, threadId) {
|
|
8702
|
-
const db2 = createAdminDbClient();
|
|
8703
|
-
const { error } = await db2.from("project_threads").delete().eq("project_id", projectId).eq("thread_id", threadId);
|
|
8704
|
-
if (error) throw error;
|
|
8705
|
-
}
|
|
8706
|
-
async function getProjectForThread(threadId) {
|
|
8707
|
-
const db2 = createAdminDbClient();
|
|
8708
|
-
const { data, error } = await db2.from("project_threads").select("project_id").eq("thread_id", threadId).maybeSingle();
|
|
8709
|
-
if (error) {
|
|
8710
|
-
if (isMissingRelationError2(error, "project_threads")) return null;
|
|
8711
|
-
return null;
|
|
9008
|
+
var import_crypto3;
|
|
9009
|
+
var init_teams = __esm({
|
|
9010
|
+
"apps/local/lib/db/teams.ts"() {
|
|
9011
|
+
"use strict";
|
|
9012
|
+
import_crypto3 = require("crypto");
|
|
9013
|
+
init_db_adapter();
|
|
9014
|
+
init_shared();
|
|
8712
9015
|
}
|
|
8713
|
-
|
|
8714
|
-
|
|
9016
|
+
});
|
|
9017
|
+
|
|
9018
|
+
// apps/local/lib/db/resolution.ts
|
|
8715
9019
|
function resolveSkills(agentSkills, projectSkills) {
|
|
8716
9020
|
const result = [];
|
|
8717
9021
|
const agentFileNames = /* @__PURE__ */ new Set();
|
|
@@ -8743,6 +9047,7 @@ async function resolveVariables(projectId) {
|
|
|
8743
9047
|
return vars.map((v) => ({ key: v.key, value: v.value, source: "project" }));
|
|
8744
9048
|
}
|
|
8745
9049
|
async function buildExecutionProvenance(agentId, projectId, agentSkills, agentMemoryEntries) {
|
|
9050
|
+
void agentId;
|
|
8746
9051
|
const projectSkills = await getProjectSkills(projectId);
|
|
8747
9052
|
const projectMem = await getProjectMemory(projectId);
|
|
8748
9053
|
const variables = await resolveVariables(projectId);
|
|
@@ -8752,65 +9057,141 @@ async function buildExecutionProvenance(agentId, projectId, agentSkills, agentMe
|
|
|
8752
9057
|
variables
|
|
8753
9058
|
};
|
|
8754
9059
|
}
|
|
8755
|
-
var
|
|
9060
|
+
var init_resolution = __esm({
|
|
9061
|
+
"apps/local/lib/db/resolution.ts"() {
|
|
9062
|
+
"use strict";
|
|
9063
|
+
init_projects();
|
|
9064
|
+
}
|
|
9065
|
+
});
|
|
9066
|
+
|
|
9067
|
+
// apps/local/lib/db/index.ts
|
|
8756
9068
|
var init_db = __esm({
|
|
9069
|
+
"apps/local/lib/db/index.ts"() {
|
|
9070
|
+
"use strict";
|
|
9071
|
+
init_types();
|
|
9072
|
+
init_shared();
|
|
9073
|
+
init_user_settings();
|
|
9074
|
+
init_tasks();
|
|
9075
|
+
init_projects();
|
|
9076
|
+
init_workflows();
|
|
9077
|
+
init_task_logs();
|
|
9078
|
+
init_task_costs();
|
|
9079
|
+
init_task_comments();
|
|
9080
|
+
init_learnings();
|
|
9081
|
+
init_agents();
|
|
9082
|
+
init_teams();
|
|
9083
|
+
init_resolution();
|
|
9084
|
+
}
|
|
9085
|
+
});
|
|
9086
|
+
|
|
9087
|
+
// apps/local/lib/db.ts
|
|
9088
|
+
var db_exports = {};
|
|
9089
|
+
__export(db_exports, {
|
|
9090
|
+
DEFAULT_WORKFLOW_ID: () => DEFAULT_WORKFLOW_ID,
|
|
9091
|
+
IDENTIFIER_PREFIX_REGEX: () => IDENTIFIER_PREFIX_REGEX,
|
|
9092
|
+
addLearning: () => addLearning,
|
|
9093
|
+
addProjectAgent: () => addProjectAgent,
|
|
9094
|
+
addProjectMemory: () => addProjectMemory,
|
|
9095
|
+
addProjectSkill: () => addProjectSkill,
|
|
9096
|
+
addProjectThread: () => addProjectThread,
|
|
9097
|
+
addTaskComment: () => addTaskComment,
|
|
9098
|
+
addTaskCostEntry: () => addTaskCostEntry,
|
|
9099
|
+
addTaskLog: () => addTaskLog,
|
|
9100
|
+
addTeamAgent: () => addTeamAgent,
|
|
9101
|
+
appendRunToIndex: () => appendRunToIndex,
|
|
9102
|
+
assignOrphanTasksToProject: () => assignOrphanTasksToProject,
|
|
9103
|
+
buildExecutionProvenance: () => buildExecutionProvenance,
|
|
9104
|
+
createAgent: () => createAgent,
|
|
9105
|
+
createProject: () => createProject,
|
|
9106
|
+
createTask: () => createTask,
|
|
9107
|
+
createTeam: () => createTeam,
|
|
9108
|
+
createWorkspaceEntry: () => createWorkspaceEntry,
|
|
9109
|
+
defaultStagePrompts: () => defaultStagePrompts,
|
|
9110
|
+
deleteAgent: () => deleteAgent,
|
|
9111
|
+
deleteLearning: () => deleteLearning,
|
|
9112
|
+
deleteProject: () => deleteProject,
|
|
9113
|
+
deleteProjectMemory: () => deleteProjectMemory,
|
|
9114
|
+
deleteProjectVariable: () => deleteProjectVariable,
|
|
9115
|
+
deleteStagePrompt: () => deleteStagePrompt,
|
|
9116
|
+
deleteTask: () => deleteTask,
|
|
9117
|
+
deleteTaskComment: () => deleteTaskComment,
|
|
9118
|
+
deleteTeam: () => deleteTeam,
|
|
9119
|
+
deleteWorkspaceEntry: () => deleteWorkspaceEntry,
|
|
9120
|
+
ensureNoCircularDependency: () => ensureNoCircularDependency,
|
|
9121
|
+
extractTitle: () => extractTitle,
|
|
9122
|
+
generateUniqueProjectSlug: () => generateUniqueProjectSlug,
|
|
9123
|
+
generateUniqueSlug: () => generateUniqueSlug,
|
|
9124
|
+
getAgent: () => getAgent,
|
|
9125
|
+
getAgentSkills: () => getAgentSkills,
|
|
9126
|
+
getAgents: () => getAgents,
|
|
9127
|
+
getDbClient: () => getDbClient,
|
|
9128
|
+
getDefaultWorkflowId: () => getDefaultWorkflowId,
|
|
9129
|
+
getLearnings: () => getLearnings,
|
|
9130
|
+
getNextQueuedTask: () => getNextQueuedTask,
|
|
9131
|
+
getProjectAgents: () => getProjectAgents,
|
|
9132
|
+
getProjectBySlug: () => getProjectBySlug,
|
|
9133
|
+
getProjectForThread: () => getProjectForThread,
|
|
9134
|
+
getProjectMemory: () => getProjectMemory,
|
|
9135
|
+
getProjectRepos: () => getProjectRepos,
|
|
9136
|
+
getProjectSkills: () => getProjectSkills,
|
|
9137
|
+
getProjectThreads: () => getProjectThreads,
|
|
9138
|
+
getProjectVariables: () => getProjectVariables,
|
|
9139
|
+
getProjectWithRepos: () => getProjectWithRepos,
|
|
9140
|
+
getProjectWorkspace: () => getProjectWorkspace,
|
|
9141
|
+
getProjects: () => getProjects,
|
|
9142
|
+
getStagePrompt: () => getStagePrompt,
|
|
9143
|
+
getStagePrompts: () => getStagePrompts,
|
|
9144
|
+
getTask: () => getTask,
|
|
9145
|
+
getTaskBySlug: () => getTaskBySlug,
|
|
9146
|
+
getTaskComments: () => getTaskComments,
|
|
9147
|
+
getTaskCostEntries: () => getTaskCostEntries,
|
|
9148
|
+
getTaskCostSummary: () => getTaskCostSummary,
|
|
9149
|
+
getTaskLogs: () => getTaskLogs,
|
|
9150
|
+
getTasks: () => getTasks,
|
|
9151
|
+
getTeam: () => getTeam,
|
|
9152
|
+
getTeamAgents: () => getTeamAgents,
|
|
9153
|
+
getTeams: () => getTeams,
|
|
9154
|
+
getUserSettings: () => getUserSettings,
|
|
9155
|
+
getWorkflow: () => getWorkflow,
|
|
9156
|
+
getWorkflowNodeByName: () => getWorkflowNodeByName,
|
|
9157
|
+
getWorkflowNodes: () => getWorkflowNodes,
|
|
9158
|
+
getWorkflowTransitions: () => getWorkflowTransitions,
|
|
9159
|
+
getWorkflowTransitionsFromNode: () => getWorkflowTransitionsFromNode,
|
|
9160
|
+
getWorkflowWithGraph: () => getWorkflowWithGraph,
|
|
9161
|
+
getWorkflows: () => getWorkflows,
|
|
9162
|
+
getWorkspaceMapForContext: () => getWorkspaceMapForContext,
|
|
9163
|
+
isMissingRelationError: () => isMissingRelationError,
|
|
9164
|
+
normalizeDependsOnInput: () => normalizeDependsOnInput,
|
|
9165
|
+
parseDependsOnValue: () => parseDependsOnValue,
|
|
9166
|
+
parseFrontmatter: () => parseFrontmatter,
|
|
9167
|
+
removeProjectAgent: () => removeProjectAgent,
|
|
9168
|
+
removeProjectSkill: () => removeProjectSkill,
|
|
9169
|
+
removeProjectThread: () => removeProjectThread,
|
|
9170
|
+
removeTeamAgent: () => removeTeamAgent,
|
|
9171
|
+
reorderProjectAgents: () => reorderProjectAgents,
|
|
9172
|
+
resolveMemory: () => resolveMemory,
|
|
9173
|
+
resolveSkills: () => resolveSkills,
|
|
9174
|
+
resolveTaskConfig: () => resolveTaskConfig,
|
|
9175
|
+
resolveVariables: () => resolveVariables,
|
|
9176
|
+
setAgentSkills: () => setAgentSkills,
|
|
9177
|
+
setProjectVariable: () => setProjectVariable,
|
|
9178
|
+
slugify: () => slugify2,
|
|
9179
|
+
summarizeTaskCosts: () => summarizeTaskCosts,
|
|
9180
|
+
updateAgent: () => updateAgent,
|
|
9181
|
+
updateProject: () => updateProject,
|
|
9182
|
+
updateTask: () => updateTask,
|
|
9183
|
+
updateTeam: () => updateTeam,
|
|
9184
|
+
updateWorkflow: () => updateWorkflow,
|
|
9185
|
+
updateWorkflowNodes: () => updateWorkflowNodes,
|
|
9186
|
+
updateWorkspaceEntry: () => updateWorkspaceEntry,
|
|
9187
|
+
upsertStagePrompt: () => upsertStagePrompt,
|
|
9188
|
+
upsertUserSettings: () => upsertUserSettings,
|
|
9189
|
+
validateIdentifierPrefix: () => validateIdentifierPrefix
|
|
9190
|
+
});
|
|
9191
|
+
var init_db2 = __esm({
|
|
8757
9192
|
"apps/local/lib/db.ts"() {
|
|
8758
9193
|
"use strict";
|
|
8759
|
-
|
|
8760
|
-
init_dependency_helpers();
|
|
8761
|
-
init_notifications();
|
|
8762
|
-
import_crypto = require("crypto");
|
|
8763
|
-
init_vault_store();
|
|
8764
|
-
UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
8765
|
-
DEFAULT_SDLC_WORKFLOW_ID = "00000000-0000-0000-0000-000000000001";
|
|
8766
|
-
DEFAULT_SYSTEM_USER_ID = "00000000-0000-0000-0000-000000000000";
|
|
8767
|
-
DEFAULT_WORKFLOW_NODE_SEED = [
|
|
8768
|
-
{
|
|
8769
|
-
id: "00000000-0000-0000-0001-000000000001",
|
|
8770
|
-
name: "INTAKE",
|
|
8771
|
-
label: "Intake",
|
|
8772
|
-
prompt: "New task. Triage, scope, and prepare for work.",
|
|
8773
|
-
position: 0,
|
|
8774
|
-
node_type: "step"
|
|
8775
|
-
},
|
|
8776
|
-
{
|
|
8777
|
-
id: "00000000-0000-0000-0001-000000000002",
|
|
8778
|
-
name: "PROGRESS",
|
|
8779
|
-
label: "Progress",
|
|
8780
|
-
prompt: "Task is actively being worked on.",
|
|
8781
|
-
position: 1,
|
|
8782
|
-
node_type: "step"
|
|
8783
|
-
},
|
|
8784
|
-
{
|
|
8785
|
-
id: "00000000-0000-0000-0001-000000000003",
|
|
8786
|
-
name: "DONE",
|
|
8787
|
-
label: "Done",
|
|
8788
|
-
prompt: "Task completed.",
|
|
8789
|
-
position: 2,
|
|
8790
|
-
node_type: "terminal"
|
|
8791
|
-
}
|
|
8792
|
-
];
|
|
8793
|
-
DEFAULT_WORKFLOW_NODE_SEED_BY_ID = new Map(
|
|
8794
|
-
DEFAULT_WORKFLOW_NODE_SEED.map((node) => [node.id, node])
|
|
8795
|
-
);
|
|
8796
|
-
defaultStagePrompts = {
|
|
8797
|
-
INTAKE: {
|
|
8798
|
-
prompt: "New task. Triage, scope, and prepare for work.",
|
|
8799
|
-
outputs: [],
|
|
8800
|
-
swarm: false
|
|
8801
|
-
},
|
|
8802
|
-
PROGRESS: {
|
|
8803
|
-
prompt: "Task is actively being worked on.",
|
|
8804
|
-
outputs: [],
|
|
8805
|
-
swarm: false
|
|
8806
|
-
},
|
|
8807
|
-
DONE: {
|
|
8808
|
-
prompt: "Task completed.",
|
|
8809
|
-
outputs: [],
|
|
8810
|
-
swarm: false
|
|
8811
|
-
}
|
|
8812
|
-
};
|
|
8813
|
-
DEFAULT_WORKFLOW_ID = "00000000-0000-0000-0000-000000000001";
|
|
9194
|
+
init_db();
|
|
8814
9195
|
}
|
|
8815
9196
|
});
|
|
8816
9197
|
|
|
@@ -8884,7 +9265,7 @@ var SQLiteAdapter;
|
|
|
8884
9265
|
var init_sqlite_adapter2 = __esm({
|
|
8885
9266
|
"apps/local/lib/adapters/sqlite-adapter.ts"() {
|
|
8886
9267
|
"use strict";
|
|
8887
|
-
|
|
9268
|
+
init_db2();
|
|
8888
9269
|
init_sqlite_query_adapter();
|
|
8889
9270
|
init_errors();
|
|
8890
9271
|
SQLiteAdapter = class {
|
|
@@ -9408,7 +9789,7 @@ async function resolveWorkflowTransition({
|
|
|
9408
9789
|
var DEFAULT_STAGE_SEQUENCE, STANDARD_STAGE_SEQUENCES;
|
|
9409
9790
|
var init_stage_machine = __esm({
|
|
9410
9791
|
"apps/local/lib/orchestration/stage-machine.ts"() {
|
|
9411
|
-
|
|
9792
|
+
init_db2();
|
|
9412
9793
|
DEFAULT_STAGE_SEQUENCE = [
|
|
9413
9794
|
"INTAKE",
|
|
9414
9795
|
"PROGRESS",
|
|
@@ -9648,11 +10029,15 @@ function providerNativeCommand({
|
|
|
9648
10029
|
prompt,
|
|
9649
10030
|
systemPrompt
|
|
9650
10031
|
}) {
|
|
10032
|
+
const homeDir = import_os10.default.homedir();
|
|
9651
10033
|
switch (provider) {
|
|
9652
10034
|
case "claude": {
|
|
9653
10035
|
const args = [
|
|
9654
10036
|
"-p",
|
|
9655
10037
|
prompt,
|
|
10038
|
+
"--dangerously-skip-permissions",
|
|
10039
|
+
"--add-dir",
|
|
10040
|
+
homeDir,
|
|
9656
10041
|
"--verbose",
|
|
9657
10042
|
"--output-format",
|
|
9658
10043
|
"stream-json",
|
|
@@ -9665,9 +10050,17 @@ function providerNativeCommand({
|
|
|
9665
10050
|
case "gemini":
|
|
9666
10051
|
return {
|
|
9667
10052
|
command: "gemini",
|
|
9668
|
-
args: [
|
|
9669
|
-
|
|
9670
|
-
|
|
10053
|
+
args: [
|
|
10054
|
+
"--yolo",
|
|
10055
|
+
"--include-directories",
|
|
10056
|
+
homeDir,
|
|
10057
|
+
"-p",
|
|
10058
|
+
systemPrompt ? `${systemPrompt}
|
|
10059
|
+
|
|
10060
|
+
${prompt}` : prompt,
|
|
10061
|
+
"-o",
|
|
10062
|
+
"stream-json"
|
|
10063
|
+
],
|
|
9671
10064
|
parser: "gemini-stream-json"
|
|
9672
10065
|
};
|
|
9673
10066
|
case "ollama":
|
|
@@ -9679,7 +10072,13 @@ ${prompt}` : prompt],
|
|
|
9679
10072
|
parser: "raw"
|
|
9680
10073
|
};
|
|
9681
10074
|
case "codex": {
|
|
9682
|
-
const codexArgs = [
|
|
10075
|
+
const codexArgs = [
|
|
10076
|
+
"exec",
|
|
10077
|
+
"--json",
|
|
10078
|
+
"--dangerously-bypass-approvals-and-sandbox",
|
|
10079
|
+
"--add-dir",
|
|
10080
|
+
homeDir
|
|
10081
|
+
];
|
|
9683
10082
|
if (model) codexArgs.push("--model", model);
|
|
9684
10083
|
codexArgs.push(systemPrompt ? `${systemPrompt}
|
|
9685
10084
|
|
|
@@ -9695,6 +10094,9 @@ ${prompt}` : prompt);
|
|
|
9695
10094
|
const zaiArgs = [
|
|
9696
10095
|
"-p",
|
|
9697
10096
|
prompt,
|
|
10097
|
+
"--dangerously-skip-permissions",
|
|
10098
|
+
"--add-dir",
|
|
10099
|
+
homeDir,
|
|
9698
10100
|
"--verbose",
|
|
9699
10101
|
"--output-format",
|
|
9700
10102
|
"stream-json",
|
|
@@ -9716,10 +10118,26 @@ ${prompt}` : prompt);
|
|
|
9716
10118
|
return null;
|
|
9717
10119
|
}
|
|
9718
10120
|
}
|
|
10121
|
+
function providerAccessPassthrough(provider) {
|
|
10122
|
+
const homeDir = import_os10.default.homedir();
|
|
10123
|
+
switch (provider) {
|
|
10124
|
+
case "claude":
|
|
10125
|
+
case "zai":
|
|
10126
|
+
case "codex":
|
|
10127
|
+
return ["--add-dir", homeDir];
|
|
10128
|
+
case "gemini":
|
|
10129
|
+
return ["--include-directories", homeDir];
|
|
10130
|
+
default:
|
|
10131
|
+
return [];
|
|
10132
|
+
}
|
|
10133
|
+
}
|
|
9719
10134
|
function agxStreamingPassthrough(provider) {
|
|
9720
10135
|
switch (provider) {
|
|
9721
10136
|
case "claude":
|
|
9722
|
-
return {
|
|
10137
|
+
return {
|
|
10138
|
+
args: ["--verbose", "--output-format", "stream-json", "--include-partial-messages"],
|
|
10139
|
+
parser: "claude-stream-json"
|
|
10140
|
+
};
|
|
9723
10141
|
case "gemini":
|
|
9724
10142
|
return { args: ["-o", "stream-json"], parser: "gemini-stream-json" };
|
|
9725
10143
|
case "codex":
|
|
@@ -9737,7 +10155,7 @@ function agxCommandForProvider({
|
|
|
9737
10155
|
const args = [provider, "-y", "--print", "--prompt", prompt];
|
|
9738
10156
|
if (model) args.push("--model", model);
|
|
9739
10157
|
const streaming = agxStreamingPassthrough(provider);
|
|
9740
|
-
const allPassthrough = [...passthroughArgs || [], ...streaming.args];
|
|
10158
|
+
const allPassthrough = [...providerAccessPassthrough(provider), ...passthroughArgs || [], ...streaming.args];
|
|
9741
10159
|
if (allPassthrough.length > 0) {
|
|
9742
10160
|
args.push("--", ...allPassthrough);
|
|
9743
10161
|
}
|
|
@@ -9826,7 +10244,7 @@ function bundledAgxCommandForProvider({
|
|
|
9826
10244
|
const args = [resolvedCliPath, provider, "-y", "--print", "--prompt", prompt];
|
|
9827
10245
|
if (model) args.push("--model", model);
|
|
9828
10246
|
const streaming = agxStreamingPassthrough(provider);
|
|
9829
|
-
const allPassthrough = [...passthroughArgs || [], ...streaming.args];
|
|
10247
|
+
const allPassthrough = [...providerAccessPassthrough(provider), ...passthroughArgs || [], ...streaming.args];
|
|
9830
10248
|
if (allPassthrough.length > 0) {
|
|
9831
10249
|
args.push("--", ...allPassthrough);
|
|
9832
10250
|
}
|
|
@@ -10053,12 +10471,13 @@ ${skills}
|
|
|
10053
10471
|
</skills>`);
|
|
10054
10472
|
return systemParts.length > 0 ? systemParts.join("\n\n") : void 0;
|
|
10055
10473
|
}
|
|
10056
|
-
var import_child_process2, import_fs10, import_path10, isNonEmptyString, CliRunError, createRawParser, extractClaudeAssistantText, createClaudeStreamJsonParser, createGeminiStreamJsonParser, extractCodexAssistantText, createCodexJsonParser, createThoughtFilterParser, AGX_WRAPPED_PROVIDERS;
|
|
10474
|
+
var import_child_process2, import_fs10, import_os10, import_path10, isNonEmptyString, CliRunError, createRawParser, extractClaudeAssistantText, createClaudeStreamJsonParser, createGeminiStreamJsonParser, extractCodexAssistantText, createCodexJsonParser, createThoughtFilterParser, AGX_WRAPPED_PROVIDERS;
|
|
10057
10475
|
var init_cli_runner = __esm({
|
|
10058
10476
|
"apps/local/lib/cli-runner.ts"() {
|
|
10059
10477
|
"use strict";
|
|
10060
10478
|
import_child_process2 = require("child_process");
|
|
10061
10479
|
import_fs10 = __toESM(require("fs"));
|
|
10480
|
+
import_os10 = __toESM(require("os"));
|
|
10062
10481
|
import_path10 = __toESM(require("path"));
|
|
10063
10482
|
init_sanitize();
|
|
10064
10483
|
init_debug_log();
|
|
@@ -10093,7 +10512,7 @@ var init_cli_runner = __esm({
|
|
|
10093
10512
|
return "";
|
|
10094
10513
|
};
|
|
10095
10514
|
createClaudeStreamJsonParser = (onDelta) => {
|
|
10096
|
-
let
|
|
10515
|
+
let buffer2 = "";
|
|
10097
10516
|
let emittedCharacters = 0;
|
|
10098
10517
|
let sawJson = false;
|
|
10099
10518
|
const processLine = (line) => {
|
|
@@ -10114,22 +10533,22 @@ var init_cli_runner = __esm({
|
|
|
10114
10533
|
};
|
|
10115
10534
|
return {
|
|
10116
10535
|
push: (chunk) => {
|
|
10117
|
-
|
|
10536
|
+
buffer2 += chunk;
|
|
10118
10537
|
while (true) {
|
|
10119
|
-
const i =
|
|
10538
|
+
const i = buffer2.indexOf("\n");
|
|
10120
10539
|
if (i === -1) break;
|
|
10121
|
-
processLine(
|
|
10122
|
-
|
|
10540
|
+
processLine(buffer2.slice(0, i));
|
|
10541
|
+
buffer2 = buffer2.slice(i + 1);
|
|
10123
10542
|
}
|
|
10124
10543
|
},
|
|
10125
10544
|
flush: () => {
|
|
10126
|
-
if (
|
|
10127
|
-
|
|
10545
|
+
if (buffer2.trim()) processLine(buffer2);
|
|
10546
|
+
buffer2 = "";
|
|
10128
10547
|
}
|
|
10129
10548
|
};
|
|
10130
10549
|
};
|
|
10131
10550
|
createGeminiStreamJsonParser = (onDelta) => {
|
|
10132
|
-
let
|
|
10551
|
+
let buffer2 = "";
|
|
10133
10552
|
let sawJson = false;
|
|
10134
10553
|
let accumulatedAssistantText = "";
|
|
10135
10554
|
const emitGeminiText = (text, isDelta) => {
|
|
@@ -10172,17 +10591,17 @@ var init_cli_runner = __esm({
|
|
|
10172
10591
|
};
|
|
10173
10592
|
return {
|
|
10174
10593
|
push: (chunk) => {
|
|
10175
|
-
|
|
10594
|
+
buffer2 += chunk;
|
|
10176
10595
|
while (true) {
|
|
10177
|
-
const i =
|
|
10596
|
+
const i = buffer2.indexOf("\n");
|
|
10178
10597
|
if (i === -1) break;
|
|
10179
|
-
processLine(
|
|
10180
|
-
|
|
10598
|
+
processLine(buffer2.slice(0, i));
|
|
10599
|
+
buffer2 = buffer2.slice(i + 1);
|
|
10181
10600
|
}
|
|
10182
10601
|
},
|
|
10183
10602
|
flush: () => {
|
|
10184
|
-
if (
|
|
10185
|
-
|
|
10603
|
+
if (buffer2.trim()) processLine(buffer2);
|
|
10604
|
+
buffer2 = "";
|
|
10186
10605
|
}
|
|
10187
10606
|
};
|
|
10188
10607
|
};
|
|
@@ -10197,7 +10616,7 @@ var init_cli_runner = __esm({
|
|
|
10197
10616
|
return "";
|
|
10198
10617
|
};
|
|
10199
10618
|
createCodexJsonParser = (onDelta) => {
|
|
10200
|
-
let
|
|
10619
|
+
let buffer2 = "";
|
|
10201
10620
|
let sawJson = false;
|
|
10202
10621
|
const completedItems = /* @__PURE__ */ new Set();
|
|
10203
10622
|
const processLine = (line) => {
|
|
@@ -10219,22 +10638,22 @@ var init_cli_runner = __esm({
|
|
|
10219
10638
|
};
|
|
10220
10639
|
return {
|
|
10221
10640
|
push: (chunk) => {
|
|
10222
|
-
|
|
10641
|
+
buffer2 += chunk;
|
|
10223
10642
|
while (true) {
|
|
10224
|
-
const i =
|
|
10643
|
+
const i = buffer2.indexOf("\n");
|
|
10225
10644
|
if (i === -1) break;
|
|
10226
|
-
processLine(
|
|
10227
|
-
|
|
10645
|
+
processLine(buffer2.slice(0, i));
|
|
10646
|
+
buffer2 = buffer2.slice(i + 1);
|
|
10228
10647
|
}
|
|
10229
10648
|
},
|
|
10230
10649
|
flush: () => {
|
|
10231
|
-
if (
|
|
10232
|
-
|
|
10650
|
+
if (buffer2.trim()) processLine(buffer2);
|
|
10651
|
+
buffer2 = "";
|
|
10233
10652
|
}
|
|
10234
10653
|
};
|
|
10235
10654
|
};
|
|
10236
10655
|
createThoughtFilterParser = (inner, onThought) => {
|
|
10237
|
-
let
|
|
10656
|
+
let buffer2 = "";
|
|
10238
10657
|
let inThought = false;
|
|
10239
10658
|
let thoughtStarted = false;
|
|
10240
10659
|
let thoughtContent = "";
|
|
@@ -10247,12 +10666,12 @@ var init_cli_runner = __esm({
|
|
|
10247
10666
|
/<\/think>/i
|
|
10248
10667
|
];
|
|
10249
10668
|
const processBuffer = () => {
|
|
10250
|
-
while (
|
|
10669
|
+
while (buffer2.length > 0) {
|
|
10251
10670
|
if (inThought) {
|
|
10252
10671
|
let endIdx = -1;
|
|
10253
10672
|
let endLen = 0;
|
|
10254
10673
|
for (const pat of THINK_END_PATTERNS) {
|
|
10255
|
-
const match =
|
|
10674
|
+
const match = buffer2.match(pat);
|
|
10256
10675
|
if (match && match.index !== void 0) {
|
|
10257
10676
|
const candidate = match.index + match[0].length;
|
|
10258
10677
|
if (endIdx === -1 || match.index < endIdx) {
|
|
@@ -10262,26 +10681,26 @@ var init_cli_runner = __esm({
|
|
|
10262
10681
|
}
|
|
10263
10682
|
}
|
|
10264
10683
|
if (endIdx !== -1) {
|
|
10265
|
-
thoughtContent +=
|
|
10684
|
+
thoughtContent += buffer2.slice(0, endIdx);
|
|
10266
10685
|
if (onThought && thoughtContent.trim()) {
|
|
10267
10686
|
onThought(thoughtContent.trim());
|
|
10268
10687
|
}
|
|
10269
10688
|
thoughtContent = "";
|
|
10270
|
-
|
|
10689
|
+
buffer2 = buffer2.slice(endIdx + endLen);
|
|
10271
10690
|
inThought = false;
|
|
10272
|
-
|
|
10691
|
+
buffer2 = buffer2.replace(/^\s*\n*/, "");
|
|
10273
10692
|
continue;
|
|
10274
10693
|
}
|
|
10275
|
-
thoughtContent +=
|
|
10276
|
-
|
|
10694
|
+
thoughtContent += buffer2;
|
|
10695
|
+
buffer2 = "";
|
|
10277
10696
|
return;
|
|
10278
10697
|
}
|
|
10279
10698
|
for (const pat of THINK_START_PATTERNS) {
|
|
10280
|
-
const match =
|
|
10699
|
+
const match = buffer2.match(pat);
|
|
10281
10700
|
if (match && match.index !== void 0) {
|
|
10282
|
-
const before =
|
|
10701
|
+
const before = buffer2.slice(0, match.index);
|
|
10283
10702
|
if (before) inner.push(before);
|
|
10284
|
-
|
|
10703
|
+
buffer2 = buffer2.slice(match.index + match[0].length);
|
|
10285
10704
|
inThought = true;
|
|
10286
10705
|
thoughtStarted = true;
|
|
10287
10706
|
thoughtContent = "";
|
|
@@ -10289,24 +10708,24 @@ var init_cli_runner = __esm({
|
|
|
10289
10708
|
}
|
|
10290
10709
|
}
|
|
10291
10710
|
if (inThought) continue;
|
|
10292
|
-
const safeLen = Math.max(0,
|
|
10711
|
+
const safeLen = Math.max(0, buffer2.length - 30);
|
|
10293
10712
|
if (safeLen > 0) {
|
|
10294
|
-
inner.push(
|
|
10295
|
-
|
|
10713
|
+
inner.push(buffer2.slice(0, safeLen));
|
|
10714
|
+
buffer2 = buffer2.slice(safeLen);
|
|
10296
10715
|
}
|
|
10297
10716
|
return;
|
|
10298
10717
|
}
|
|
10299
10718
|
};
|
|
10300
10719
|
return {
|
|
10301
10720
|
push: (chunk) => {
|
|
10302
|
-
|
|
10721
|
+
buffer2 += chunk;
|
|
10303
10722
|
processBuffer();
|
|
10304
10723
|
},
|
|
10305
10724
|
flush: () => {
|
|
10306
|
-
if (!inThought &&
|
|
10307
|
-
inner.push(
|
|
10725
|
+
if (!inThought && buffer2) {
|
|
10726
|
+
inner.push(buffer2);
|
|
10308
10727
|
}
|
|
10309
|
-
|
|
10728
|
+
buffer2 = "";
|
|
10310
10729
|
inner.flush();
|
|
10311
10730
|
}
|
|
10312
10731
|
};
|
|
@@ -10434,8 +10853,8 @@ async function storeMemories(taskId, agentId, memories) {
|
|
|
10434
10853
|
const now = Date.now();
|
|
10435
10854
|
for (const mem of memories) {
|
|
10436
10855
|
if (!VALID_TYPES_SET.has(mem.memory_type) || !mem.content?.trim()) continue;
|
|
10437
|
-
const contentHash2 = (0,
|
|
10438
|
-
const result = stmt.run((0,
|
|
10856
|
+
const contentHash2 = (0, import_crypto4.createHash)("sha256").update(mem.content.trim()).digest("hex");
|
|
10857
|
+
const result = stmt.run((0, import_crypto4.randomUUID)(), agentId, taskId, mem.memory_type, mem.content.trim(), contentHash2, now);
|
|
10439
10858
|
if (result.changes > 0) inserted++;
|
|
10440
10859
|
}
|
|
10441
10860
|
if (inserted > 0) {
|
|
@@ -10528,10 +10947,10 @@ async function extractAndStoreProjectKnowledge(taskId, projectIdOrSlug, ctx) {
|
|
|
10528
10947
|
console.log(`[project-knowledge] Stored ${inserted} project knowledge entries for task ${taskId}`);
|
|
10529
10948
|
}
|
|
10530
10949
|
}
|
|
10531
|
-
var
|
|
10950
|
+
var import_crypto4, VALID_TYPES, EXTRACTION_PROMPT, PROJECT_KNOWLEDGE_PROMPT, VALID_TYPES_SET, MEMORY_AGENT_KEYS;
|
|
10532
10951
|
var init_memory_extractor = __esm({
|
|
10533
10952
|
"apps/local/lib/memory-extractor.ts"() {
|
|
10534
|
-
|
|
10953
|
+
import_crypto4 = require("crypto");
|
|
10535
10954
|
init_cli_runner();
|
|
10536
10955
|
init_sqlite_query_adapter();
|
|
10537
10956
|
init_knowledge_store();
|
|
@@ -10769,7 +11188,7 @@ var init_dependency_manager = __esm({
|
|
|
10769
11188
|
init_stage_machine();
|
|
10770
11189
|
init_db_adapter();
|
|
10771
11190
|
init_auth_mode();
|
|
10772
|
-
|
|
11191
|
+
init_db2();
|
|
10773
11192
|
init_db_instance();
|
|
10774
11193
|
READY_STATUS = "completed";
|
|
10775
11194
|
}
|
|
@@ -10961,7 +11380,7 @@ async function markCancelledActivity(input) {
|
|
|
10961
11380
|
}
|
|
10962
11381
|
var init_activities = __esm({
|
|
10963
11382
|
"apps/local/lib/orchestrator/activities.ts"() {
|
|
10964
|
-
|
|
11383
|
+
init_db2();
|
|
10965
11384
|
init_memory_extractor();
|
|
10966
11385
|
init_db_instance();
|
|
10967
11386
|
init_db_adapter();
|
|
@@ -11357,15 +11776,15 @@ function killByWorkspace(workspaceId) {
|
|
|
11357
11776
|
}
|
|
11358
11777
|
return killed;
|
|
11359
11778
|
}
|
|
11360
|
-
var import_path11,
|
|
11779
|
+
var import_path11, import_os11, import_fs11, DatabaseSyncCtor4, HISTORY_DIR, DB_PATH2;
|
|
11361
11780
|
var init_agent_process_registry = __esm({
|
|
11362
11781
|
"apps/local/lib/agent-process-registry.ts"() {
|
|
11363
11782
|
init_sqlite_compat();
|
|
11364
11783
|
import_path11 = __toESM(require("path"));
|
|
11365
|
-
|
|
11784
|
+
import_os11 = __toESM(require("os"));
|
|
11366
11785
|
import_fs11 = require("fs");
|
|
11367
11786
|
({ DatabaseSync: DatabaseSyncCtor4 } = process.getBuiltinModule("node:sqlite"));
|
|
11368
|
-
HISTORY_DIR = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path11.default.join(
|
|
11787
|
+
HISTORY_DIR = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path11.default.join(import_os11.default.homedir(), ".agx", "group-chat");
|
|
11369
11788
|
DB_PATH2 = import_path11.default.join(HISTORY_DIR, "history.sqlite");
|
|
11370
11789
|
}
|
|
11371
11790
|
});
|
|
@@ -12610,16 +13029,15 @@ async function saveThreadRepoSelections(rootMessageId, repoIds) {
|
|
|
12610
13029
|
}
|
|
12611
13030
|
});
|
|
12612
13031
|
}
|
|
12613
|
-
var import_fs12, import_path12,
|
|
13032
|
+
var import_fs12, import_path12, import_os12, DatabaseSyncCtor5, HISTORY_DIR2, DB_PATH3, LEGACY_THREAD_ID, REACTION_TYPES, ACTIVE_AGENT_PROCESS_STALE_MS, ACTIVE_CHAT_RUN_STALE_MS, ALLOWED_TRANSITIONS, ReactionStoreError, withDatabase;
|
|
12614
13033
|
var init_history_store = __esm({
|
|
12615
13034
|
"apps/local/lib/history-store.ts"() {
|
|
12616
|
-
"use strict";
|
|
12617
13035
|
init_sqlite_compat();
|
|
12618
13036
|
import_fs12 = require("fs");
|
|
12619
13037
|
import_path12 = __toESM(require("path"));
|
|
12620
|
-
|
|
13038
|
+
import_os12 = __toESM(require("os"));
|
|
12621
13039
|
({ DatabaseSync: DatabaseSyncCtor5 } = process.getBuiltinModule("node:sqlite"));
|
|
12622
|
-
HISTORY_DIR2 = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path12.default.join(
|
|
13040
|
+
HISTORY_DIR2 = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path12.default.join(import_os12.default.homedir(), ".agx", "group-chat");
|
|
12623
13041
|
DB_PATH3 = import_path12.default.join(HISTORY_DIR2, "history.sqlite");
|
|
12624
13042
|
LEGACY_THREAD_ID = "global";
|
|
12625
13043
|
REACTION_TYPES = /* @__PURE__ */ new Set([
|
|
@@ -12639,6 +13057,7 @@ var init_history_store = __esm({
|
|
|
12639
13057
|
blocked: /* @__PURE__ */ new Set(["ack", "blocked", "working"])
|
|
12640
13058
|
};
|
|
12641
13059
|
ReactionStoreError = class extends Error {
|
|
13060
|
+
status;
|
|
12642
13061
|
constructor(message, status) {
|
|
12643
13062
|
super(message);
|
|
12644
13063
|
this.name = "ReactionStoreError";
|
|
@@ -12867,15 +13286,15 @@ async function getAttachmentMeta(id) {
|
|
|
12867
13286
|
db2.close();
|
|
12868
13287
|
}
|
|
12869
13288
|
}
|
|
12870
|
-
var import_path13,
|
|
13289
|
+
var import_path13, import_os13, DatabaseSyncCtor6, HISTORY_DIR3, DB_PATH4, UPLOADS_DIR;
|
|
12871
13290
|
var init_attachment_store = __esm({
|
|
12872
13291
|
"apps/local/lib/attachment-store.ts"() {
|
|
12873
13292
|
"use strict";
|
|
12874
13293
|
init_sqlite_compat();
|
|
12875
13294
|
import_path13 = __toESM(require("path"));
|
|
12876
|
-
|
|
13295
|
+
import_os13 = __toESM(require("os"));
|
|
12877
13296
|
({ DatabaseSync: DatabaseSyncCtor6 } = process.getBuiltinModule("node:sqlite"));
|
|
12878
|
-
HISTORY_DIR3 = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path13.default.join(
|
|
13297
|
+
HISTORY_DIR3 = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path13.default.join(import_os13.default.homedir(), ".agx", "group-chat");
|
|
12879
13298
|
DB_PATH4 = import_path13.default.join(HISTORY_DIR3, "history.sqlite");
|
|
12880
13299
|
UPLOADS_DIR = import_path13.default.join(HISTORY_DIR3, "uploads");
|
|
12881
13300
|
}
|
|
@@ -12909,16 +13328,16 @@ function appendReaction(agentId, targetEntry, type3) {
|
|
|
12909
13328
|
(0, import_fs13.appendFileSync)(reactionsPath(agentId), JSON.stringify(reaction) + "\n", "utf-8");
|
|
12910
13329
|
logActivity(agentId, "mesh-reaction", { meta: { target: targetEntry, type: type3 } });
|
|
12911
13330
|
}
|
|
12912
|
-
var import_fs13, import_path14,
|
|
13331
|
+
var import_fs13, import_path14, import_os14, AGENTS_DIR6;
|
|
12913
13332
|
var init_reactions = __esm({
|
|
12914
13333
|
"apps/local/lib/mesh-core/reactions.ts"() {
|
|
12915
13334
|
"use strict";
|
|
12916
13335
|
import_fs13 = require("fs");
|
|
12917
13336
|
import_path14 = require("path");
|
|
12918
|
-
|
|
13337
|
+
import_os14 = require("os");
|
|
12919
13338
|
init_journal();
|
|
12920
13339
|
init_activity();
|
|
12921
|
-
AGENTS_DIR6 = (0, import_path14.join)((0,
|
|
13340
|
+
AGENTS_DIR6 = (0, import_path14.join)((0, import_os14.homedir)(), ".agx", "agents");
|
|
12922
13341
|
}
|
|
12923
13342
|
});
|
|
12924
13343
|
|
|
@@ -13304,6 +13723,22 @@ var init_agent_skill_bindings = __esm({
|
|
|
13304
13723
|
function isKnowledgeEvidence(value) {
|
|
13305
13724
|
return value !== null;
|
|
13306
13725
|
}
|
|
13726
|
+
function buildFilesystemAccessContext(p) {
|
|
13727
|
+
const homeDir = import_os15.default.homedir();
|
|
13728
|
+
switch (p.provider) {
|
|
13729
|
+
case "claude":
|
|
13730
|
+
case "codex":
|
|
13731
|
+
case "gemini":
|
|
13732
|
+
case "zai":
|
|
13733
|
+
return `<filesystem-access>
|
|
13734
|
+
Current CLI access includes the project working directory and ${homeDir}.
|
|
13735
|
+
Treat ~/.agx as accessible from this chat because it lives under ${homeDir}.
|
|
13736
|
+
Do not claim that ~/.agx is unavailable unless a tool call in this run actually fails with an access error.
|
|
13737
|
+
</filesystem-access>`;
|
|
13738
|
+
default:
|
|
13739
|
+
return null;
|
|
13740
|
+
}
|
|
13741
|
+
}
|
|
13307
13742
|
function normalizeRuntimeSeedText(raw, name) {
|
|
13308
13743
|
const collapsed = raw.replace(/\s+/g, " ").trim();
|
|
13309
13744
|
if (!collapsed) return `I am ${name}. ${DEFAULT_RUNTIME_SEED}`;
|
|
@@ -13480,8 +13915,8 @@ async function runReflection(p) {
|
|
|
13480
13915
|
const now = Date.now();
|
|
13481
13916
|
for (const memory of memoryDrafts) {
|
|
13482
13917
|
const memoryType = memory.kind === "decision" ? "decision" : memory.kind === "gotcha" || memory.kind === "constraint" ? "gotcha" : memory.kind === "outcome" ? "outcome" : "pattern";
|
|
13483
|
-
const contentHash2 = (0,
|
|
13484
|
-
stmt.run((0,
|
|
13918
|
+
const contentHash2 = (0, import_crypto5.createHash)("sha256").update(memory.body.trim()).digest("hex");
|
|
13919
|
+
stmt.run((0, import_crypto5.randomUUID)(), p.id, reflectionTaskId, memoryType, memory.body.trim(), contentHash2, now);
|
|
13485
13920
|
}
|
|
13486
13921
|
}
|
|
13487
13922
|
appendJournal(p.id, {
|
|
@@ -13865,6 +14300,7 @@ ${parts.join("\n\n")}`;
|
|
|
13865
14300
|
);
|
|
13866
14301
|
const systemContext = [
|
|
13867
14302
|
baseSystemContext,
|
|
14303
|
+
buildFilesystemAccessContext(p),
|
|
13868
14304
|
executionProvenance ? `<execution-provenance>
|
|
13869
14305
|
Resolved skills: ${executionProvenance.skills.map((skill) => `${skill.file} (${skill.source})`).join(", ") || "none"}
|
|
13870
14306
|
Resolved memory entries: ${executionProvenance.memory.map((entry) => `${entry.source}${entry.id ? `:${entry.id}` : ""}`).join(", ") || "none"}
|
|
@@ -14318,10 +14754,11 @@ function createMultiplexedStream({
|
|
|
14318
14754
|
}
|
|
14319
14755
|
});
|
|
14320
14756
|
}
|
|
14321
|
-
var import_promises,
|
|
14757
|
+
var import_promises, import_os15, import_crypto5, agentMessageCounts, reflectionQueues, REFLECTION_CADENCE, DEFAULT_RUNTIME_SEED, SKIP_SIGNAL, DEFAULT_MAX_ROUNDS, SIMILARITY_THRESHOLD;
|
|
14322
14758
|
var init_stream_multiplexer = __esm({
|
|
14323
14759
|
"apps/local/lib/stream-multiplexer.ts"() {
|
|
14324
14760
|
import_promises = require("fs/promises");
|
|
14761
|
+
import_os15 = __toESM(require("os"));
|
|
14325
14762
|
init_cli_runner();
|
|
14326
14763
|
init_agent_process_registry();
|
|
14327
14764
|
init_history_store();
|
|
@@ -14335,7 +14772,7 @@ var init_stream_multiplexer = __esm({
|
|
|
14335
14772
|
init_activity();
|
|
14336
14773
|
init_knowledge_store();
|
|
14337
14774
|
init_agent_skill_bindings();
|
|
14338
|
-
|
|
14775
|
+
import_crypto5 = require("crypto");
|
|
14339
14776
|
agentMessageCounts = /* @__PURE__ */ new Map();
|
|
14340
14777
|
reflectionQueues = /* @__PURE__ */ new Map();
|
|
14341
14778
|
REFLECTION_CADENCE = 10;
|
|
@@ -14406,7 +14843,7 @@ function filterActiveParticipants(participants, activeParticipantIds) {
|
|
|
14406
14843
|
}
|
|
14407
14844
|
var init_agent_participants = __esm({
|
|
14408
14845
|
"apps/local/lib/agent-participants.ts"() {
|
|
14409
|
-
|
|
14846
|
+
init_db2();
|
|
14410
14847
|
init_agent_skill_bindings();
|
|
14411
14848
|
init_auth_mode();
|
|
14412
14849
|
}
|
|
@@ -14896,7 +15333,7 @@ var init_project_context = __esm({
|
|
|
14896
15333
|
"apps/local/lib/chat/project-context.ts"() {
|
|
14897
15334
|
init_sqlite_query_adapter();
|
|
14898
15335
|
init_db_instance();
|
|
14899
|
-
|
|
15336
|
+
init_db2();
|
|
14900
15337
|
init_repo_knowledge();
|
|
14901
15338
|
init_knowledge_notes();
|
|
14902
15339
|
init_auth_mode();
|
|
@@ -14936,7 +15373,7 @@ var init_runtime = __esm({
|
|
|
14936
15373
|
|
|
14937
15374
|
// apps/local/src/automations/types.ts
|
|
14938
15375
|
var DEFAULT_OVERLAP_POLICY, DEFAULT_CATCH_UP_POLICY, DEFAULT_CANCEL_CHECK_SEC, DEFAULT_CONDITION_CHECK_EVERY_MS, DEFAULT_GRAPH_INTERVAL_MS;
|
|
14939
|
-
var
|
|
15376
|
+
var init_types2 = __esm({
|
|
14940
15377
|
"apps/local/src/automations/types.ts"() {
|
|
14941
15378
|
"use strict";
|
|
14942
15379
|
DEFAULT_OVERLAP_POLICY = "skip";
|
|
@@ -24539,7 +24976,7 @@ var init_validation = __esm({
|
|
|
24539
24976
|
"use strict";
|
|
24540
24977
|
import_cron_parser = __toESM(require_dist());
|
|
24541
24978
|
init_nl_schedule();
|
|
24542
|
-
|
|
24979
|
+
init_types2();
|
|
24543
24980
|
}
|
|
24544
24981
|
});
|
|
24545
24982
|
|
|
@@ -24640,7 +25077,7 @@ var init_serializer = __esm({
|
|
|
24640
25077
|
"apps/local/src/automations/serializer.ts"() {
|
|
24641
25078
|
"use strict";
|
|
24642
25079
|
import_js_yaml3 = __toESM(require_js_yaml2());
|
|
24643
|
-
|
|
25080
|
+
init_types2();
|
|
24644
25081
|
init_validation();
|
|
24645
25082
|
}
|
|
24646
25083
|
});
|
|
@@ -24651,7 +25088,7 @@ function resolveAgxDataDir2() {
|
|
|
24651
25088
|
if (configured) {
|
|
24652
25089
|
return import_path15.default.resolve(configured);
|
|
24653
25090
|
}
|
|
24654
|
-
return import_path15.default.join((0,
|
|
25091
|
+
return import_path15.default.join((0, import_os16.homedir)(), ".agx");
|
|
24655
25092
|
}
|
|
24656
25093
|
function stableCopy(value) {
|
|
24657
25094
|
if (Array.isArray(value)) {
|
|
@@ -24683,7 +25120,7 @@ function getDefaultAutomationsDir() {
|
|
|
24683
25120
|
}
|
|
24684
25121
|
if (process.env.NODE_ENV === "test") {
|
|
24685
25122
|
if (!cachedTestAutomationsDir) {
|
|
24686
|
-
cachedTestAutomationsDir = (0, import_fs14.mkdtempSync)(import_path15.default.join((0,
|
|
25123
|
+
cachedTestAutomationsDir = (0, import_fs14.mkdtempSync)(import_path15.default.join((0, import_os16.tmpdir)(), "agx-cloud-automations-"));
|
|
24687
25124
|
}
|
|
24688
25125
|
return cachedTestAutomationsDir;
|
|
24689
25126
|
}
|
|
@@ -24707,7 +25144,7 @@ function computeScheduleHash(definition) {
|
|
|
24707
25144
|
activeUntil: definition.execution?.activeUntil
|
|
24708
25145
|
}
|
|
24709
25146
|
});
|
|
24710
|
-
return (0,
|
|
25147
|
+
return (0, import_crypto6.createHash)("sha256").update(JSON.stringify(payload)).digest("hex");
|
|
24711
25148
|
}
|
|
24712
25149
|
function computeNextRunAt(definition, nowMs2 = Date.now()) {
|
|
24713
25150
|
if (definition.state !== "active") {
|
|
@@ -24766,16 +25203,16 @@ function isAutomationDue(definition, runtimeState, nowMs2 = Date.now()) {
|
|
|
24766
25203
|
}
|
|
24767
25204
|
return runtimeState.nextRunAt <= nowMs2;
|
|
24768
25205
|
}
|
|
24769
|
-
var
|
|
25206
|
+
var import_crypto6, import_fs14, import_os16, import_path15, import_cron_parser2, cachedTestAutomationsDir;
|
|
24770
25207
|
var init_state = __esm({
|
|
24771
25208
|
"apps/local/src/automations/state.ts"() {
|
|
24772
25209
|
"use strict";
|
|
24773
|
-
|
|
25210
|
+
import_crypto6 = require("crypto");
|
|
24774
25211
|
import_fs14 = require("fs");
|
|
24775
|
-
|
|
25212
|
+
import_os16 = require("os");
|
|
24776
25213
|
import_path15 = __toESM(require("path"));
|
|
24777
25214
|
import_cron_parser2 = __toESM(require_dist());
|
|
24778
|
-
|
|
25215
|
+
init_types2();
|
|
24779
25216
|
cachedTestAutomationsDir = null;
|
|
24780
25217
|
}
|
|
24781
25218
|
});
|
|
@@ -24821,13 +25258,14 @@ function getAutomationRepository() {
|
|
|
24821
25258
|
}
|
|
24822
25259
|
return cachedRepository;
|
|
24823
25260
|
}
|
|
24824
|
-
var import_fs15, import_path16,
|
|
25261
|
+
var import_fs15, import_path16, import_crypto7, AutomationRepository, cachedRepository, cachedRootDir;
|
|
24825
25262
|
var init_repository = __esm({
|
|
24826
25263
|
"apps/local/src/automations/repository.ts"() {
|
|
24827
25264
|
"use strict";
|
|
24828
25265
|
import_fs15 = __toESM(require("fs"));
|
|
24829
25266
|
import_path16 = __toESM(require("path"));
|
|
24830
|
-
|
|
25267
|
+
import_crypto7 = require("crypto");
|
|
25268
|
+
init_logger2();
|
|
24831
25269
|
init_parser();
|
|
24832
25270
|
init_serializer();
|
|
24833
25271
|
init_state();
|
|
@@ -24856,7 +25294,7 @@ var init_repository = __esm({
|
|
|
24856
25294
|
continue;
|
|
24857
25295
|
}
|
|
24858
25296
|
if (recordsById.has(record.definition.id)) {
|
|
24859
|
-
|
|
25297
|
+
logger.error(`[automations] duplicate automation id detected: ${record.definition.id}`);
|
|
24860
25298
|
continue;
|
|
24861
25299
|
}
|
|
24862
25300
|
recordsById.set(record.definition.id, record);
|
|
@@ -24976,7 +25414,7 @@ var init_repository = __esm({
|
|
|
24976
25414
|
if (!current) {
|
|
24977
25415
|
return null;
|
|
24978
25416
|
}
|
|
24979
|
-
const duplicateId = `${current.definition.id}-copy-${(0,
|
|
25417
|
+
const duplicateId = `${current.definition.id}-copy-${(0, import_crypto7.randomUUID)().slice(0, 8)}`;
|
|
24980
25418
|
return this.createAutomation({
|
|
24981
25419
|
...cloneDefinition(current.definition),
|
|
24982
25420
|
id: duplicateId,
|
|
@@ -25016,7 +25454,7 @@ var init_repository = __esm({
|
|
|
25016
25454
|
copiedEntries += this.copyDirContents(legacyArchivedDir, this.archivedDir);
|
|
25017
25455
|
copiedEntries += this.copyDirContents(legacyStateDir, this.stateDir);
|
|
25018
25456
|
if (copiedEntries > 0) {
|
|
25019
|
-
|
|
25457
|
+
logger.info(
|
|
25020
25458
|
`[automations] migrated ${copiedEntries} legacy file(s) from ${legacyRootDir} to ${this.rootDir}`
|
|
25021
25459
|
);
|
|
25022
25460
|
}
|
|
@@ -25073,7 +25511,7 @@ var init_repository = __esm({
|
|
|
25073
25511
|
archived
|
|
25074
25512
|
};
|
|
25075
25513
|
} catch (error) {
|
|
25076
|
-
|
|
25514
|
+
logger.error(`[automations] failed to read ${filePath}`, logger.formatError(error));
|
|
25077
25515
|
return null;
|
|
25078
25516
|
}
|
|
25079
25517
|
}
|
|
@@ -25084,7 +25522,7 @@ var init_repository = __esm({
|
|
|
25084
25522
|
try {
|
|
25085
25523
|
existing = JSON.parse(import_fs15.default.readFileSync(statePath, "utf8"));
|
|
25086
25524
|
} catch (error) {
|
|
25087
|
-
|
|
25525
|
+
logger.error(`[automations] failed to parse state for ${definition.id}`, logger.formatError(error));
|
|
25088
25526
|
}
|
|
25089
25527
|
}
|
|
25090
25528
|
const nextState = initializeAutomationRuntimeState(definition, existing);
|
|
@@ -25166,7 +25604,7 @@ var init_repository = __esm({
|
|
|
25166
25604
|
});
|
|
25167
25605
|
|
|
25168
25606
|
// apps/local/src/prompt-scheduler/types.ts
|
|
25169
|
-
var
|
|
25607
|
+
var init_types3 = __esm({
|
|
25170
25608
|
"apps/local/src/prompt-scheduler/types.ts"() {
|
|
25171
25609
|
}
|
|
25172
25610
|
});
|
|
@@ -25263,9 +25701,9 @@ function graphAutomationToDefinition(row) {
|
|
|
25263
25701
|
var init_adapters = __esm({
|
|
25264
25702
|
"apps/local/src/automations/adapters.ts"() {
|
|
25265
25703
|
"use strict";
|
|
25266
|
-
|
|
25704
|
+
init_types3();
|
|
25267
25705
|
init_cron();
|
|
25268
|
-
|
|
25706
|
+
init_types2();
|
|
25269
25707
|
init_state();
|
|
25270
25708
|
init_validation();
|
|
25271
25709
|
}
|
|
@@ -25274,7 +25712,7 @@ var init_adapters = __esm({
|
|
|
25274
25712
|
// apps/local/src/automations/index.ts
|
|
25275
25713
|
var init_automations = __esm({
|
|
25276
25714
|
"apps/local/src/automations/index.ts"() {
|
|
25277
|
-
|
|
25715
|
+
init_types2();
|
|
25278
25716
|
init_validation();
|
|
25279
25717
|
init_parser();
|
|
25280
25718
|
init_serializer();
|
|
@@ -26049,7 +26487,7 @@ async function getThreadProjectContext(threadId, taskId) {
|
|
|
26049
26487
|
function resolveTeamAgentsFromTask(db2, projectId, taskId) {
|
|
26050
26488
|
if (!taskId) return null;
|
|
26051
26489
|
try {
|
|
26052
|
-
const { parseFrontmatter: parseFrontmatter2 } = (
|
|
26490
|
+
const { parseFrontmatter: parseFrontmatter2 } = (init_db2(), __toCommonJS(db_exports));
|
|
26053
26491
|
const taskRow = db2.prepare("SELECT content FROM tasks WHERE id = ? LIMIT 1").get(taskId);
|
|
26054
26492
|
if (!taskRow?.content) return null;
|
|
26055
26493
|
const { frontmatter } = parseFrontmatter2(taskRow.content);
|
|
@@ -28465,12 +28903,12 @@ var init_baseAssignIn = __esm({
|
|
|
28465
28903
|
});
|
|
28466
28904
|
|
|
28467
28905
|
// node_modules/lodash-es/_cloneBuffer.js
|
|
28468
|
-
function cloneBuffer(
|
|
28906
|
+
function cloneBuffer(buffer2, isDeep) {
|
|
28469
28907
|
if (isDeep) {
|
|
28470
|
-
return
|
|
28908
|
+
return buffer2.slice();
|
|
28471
28909
|
}
|
|
28472
|
-
var length =
|
|
28473
|
-
|
|
28910
|
+
var length = buffer2.length, result = allocUnsafe ? allocUnsafe(length) : new buffer2.constructor(length);
|
|
28911
|
+
buffer2.copy(result);
|
|
28474
28912
|
return result;
|
|
28475
28913
|
}
|
|
28476
28914
|
var freeExports3, freeModule3, moduleExports3, Buffer3, allocUnsafe, cloneBuffer_default;
|
|
@@ -28750,8 +29188,8 @@ var init_cloneArrayBuffer = __esm({
|
|
|
28750
29188
|
|
|
28751
29189
|
// node_modules/lodash-es/_cloneDataView.js
|
|
28752
29190
|
function cloneDataView(dataView, isDeep) {
|
|
28753
|
-
var
|
|
28754
|
-
return new dataView.constructor(
|
|
29191
|
+
var buffer2 = isDeep ? cloneArrayBuffer_default(dataView.buffer) : dataView.buffer;
|
|
29192
|
+
return new dataView.constructor(buffer2, dataView.byteOffset, dataView.byteLength);
|
|
28755
29193
|
}
|
|
28756
29194
|
var cloneDataView_default;
|
|
28757
29195
|
var init_cloneDataView = __esm({
|
|
@@ -28791,8 +29229,8 @@ var init_cloneSymbol = __esm({
|
|
|
28791
29229
|
|
|
28792
29230
|
// node_modules/lodash-es/_cloneTypedArray.js
|
|
28793
29231
|
function cloneTypedArray(typedArray, isDeep) {
|
|
28794
|
-
var
|
|
28795
|
-
return new typedArray.constructor(
|
|
29232
|
+
var buffer2 = isDeep ? cloneArrayBuffer_default(typedArray.buffer) : typedArray.buffer;
|
|
29233
|
+
return new typedArray.constructor(buffer2, typedArray.byteOffset, typedArray.length);
|
|
28796
29234
|
}
|
|
28797
29235
|
var cloneTypedArray_default;
|
|
28798
29236
|
var init_cloneTypedArray = __esm({
|
|
@@ -39624,7 +40062,7 @@ function createSystem(rootActor, options) {
|
|
|
39624
40062
|
const timerMap = {};
|
|
39625
40063
|
const {
|
|
39626
40064
|
clock,
|
|
39627
|
-
logger
|
|
40065
|
+
logger: logger2
|
|
39628
40066
|
} = options;
|
|
39629
40067
|
const scheduler = {
|
|
39630
40068
|
schedule: (source, target, event, delay, id = Math.random().toString(36).slice(2)) => {
|
|
@@ -39746,7 +40184,7 @@ function createSystem(rootActor, options) {
|
|
|
39746
40184
|
}
|
|
39747
40185
|
},
|
|
39748
40186
|
_clock: clock,
|
|
39749
|
-
_logger:
|
|
40187
|
+
_logger: logger2
|
|
39750
40188
|
};
|
|
39751
40189
|
return system;
|
|
39752
40190
|
}
|
|
@@ -41132,7 +41570,7 @@ var init_raise_b47daa89_esm = __esm({
|
|
|
41132
41570
|
};
|
|
41133
41571
|
const {
|
|
41134
41572
|
clock,
|
|
41135
|
-
logger,
|
|
41573
|
+
logger: logger2,
|
|
41136
41574
|
parent,
|
|
41137
41575
|
syncSnapshot,
|
|
41138
41576
|
id,
|
|
@@ -41141,7 +41579,7 @@ var init_raise_b47daa89_esm = __esm({
|
|
|
41141
41579
|
} = resolvedOptions;
|
|
41142
41580
|
this.system = parent ? parent.system : createSystem(this, {
|
|
41143
41581
|
clock,
|
|
41144
|
-
logger
|
|
41582
|
+
logger: logger2
|
|
41145
41583
|
});
|
|
41146
41584
|
if (inspect && !parent) {
|
|
41147
41585
|
this.system.inspect(toObserver(inspect));
|
|
@@ -42432,37 +42870,37 @@ function resolveEnqueueActions(actorScope, snapshot, args, actionParams, {
|
|
|
42432
42870
|
collect
|
|
42433
42871
|
}) {
|
|
42434
42872
|
const actions = [];
|
|
42435
|
-
const
|
|
42873
|
+
const enqueue2 = function enqueue3(action) {
|
|
42436
42874
|
actions.push(action);
|
|
42437
42875
|
};
|
|
42438
|
-
|
|
42876
|
+
enqueue2.assign = (...args2) => {
|
|
42439
42877
|
actions.push(assign2(...args2));
|
|
42440
42878
|
};
|
|
42441
|
-
|
|
42879
|
+
enqueue2.cancel = (...args2) => {
|
|
42442
42880
|
actions.push(cancel(...args2));
|
|
42443
42881
|
};
|
|
42444
|
-
|
|
42882
|
+
enqueue2.raise = (...args2) => {
|
|
42445
42883
|
actions.push(raise(...args2));
|
|
42446
42884
|
};
|
|
42447
|
-
|
|
42885
|
+
enqueue2.sendTo = (...args2) => {
|
|
42448
42886
|
actions.push(sendTo(...args2));
|
|
42449
42887
|
};
|
|
42450
|
-
|
|
42888
|
+
enqueue2.sendParent = (...args2) => {
|
|
42451
42889
|
actions.push(sendParent(...args2));
|
|
42452
42890
|
};
|
|
42453
|
-
|
|
42891
|
+
enqueue2.spawnChild = (...args2) => {
|
|
42454
42892
|
actions.push(spawnChild(...args2));
|
|
42455
42893
|
};
|
|
42456
|
-
|
|
42894
|
+
enqueue2.stopChild = (...args2) => {
|
|
42457
42895
|
actions.push(stopChild(...args2));
|
|
42458
42896
|
};
|
|
42459
|
-
|
|
42897
|
+
enqueue2.emit = (...args2) => {
|
|
42460
42898
|
actions.push(emit(...args2));
|
|
42461
42899
|
};
|
|
42462
42900
|
collect({
|
|
42463
42901
|
context: args.context,
|
|
42464
42902
|
event: args.event,
|
|
42465
|
-
enqueue,
|
|
42903
|
+
enqueue: enqueue2,
|
|
42466
42904
|
check: (guard) => evaluateGuard(guard, snapshot.context, args.event, snapshot),
|
|
42467
42905
|
self: actorScope.self,
|
|
42468
42906
|
system: actorScope.system
|
|
@@ -42487,15 +42925,15 @@ function resolveLog(_, snapshot, actionArgs, actionParams, {
|
|
|
42487
42925
|
}, void 0];
|
|
42488
42926
|
}
|
|
42489
42927
|
function executeLog({
|
|
42490
|
-
logger
|
|
42928
|
+
logger: logger2
|
|
42491
42929
|
}, {
|
|
42492
42930
|
value,
|
|
42493
42931
|
label
|
|
42494
42932
|
}) {
|
|
42495
42933
|
if (label) {
|
|
42496
|
-
|
|
42934
|
+
logger2(label, value);
|
|
42497
42935
|
} else {
|
|
42498
|
-
|
|
42936
|
+
logger2(value);
|
|
42499
42937
|
}
|
|
42500
42938
|
}
|
|
42501
42939
|
function log(value = ({
|
|
@@ -46260,7 +46698,7 @@ async function pollSchedules(context = {}) {
|
|
|
46260
46698
|
pendingWork: []
|
|
46261
46699
|
};
|
|
46262
46700
|
const activeSchedules = getGraphsWithActiveSchedules();
|
|
46263
|
-
|
|
46701
|
+
logger.info(`[schedules:poll] found ${activeSchedules.length} active schedule(s)`);
|
|
46264
46702
|
for (const { taskId } of activeSchedules) {
|
|
46265
46703
|
try {
|
|
46266
46704
|
const graph = store.getGraph(taskId);
|
|
@@ -46270,29 +46708,29 @@ async function pollSchedules(context = {}) {
|
|
|
46270
46708
|
}
|
|
46271
46709
|
const tickResult = scheduleTickIfDue(graph);
|
|
46272
46710
|
if (!tickResult.tickFired) {
|
|
46273
|
-
|
|
46711
|
+
logger.info(`[schedules:poll] ${taskId} skipped (${tickResult.skipReason ?? "unknown"})`);
|
|
46274
46712
|
result.skippedGraphIds.push(taskId);
|
|
46275
46713
|
continue;
|
|
46276
46714
|
}
|
|
46277
|
-
|
|
46715
|
+
logger.info(`[schedules:poll] ${taskId} tick fired \u2014 resetting nodes`);
|
|
46278
46716
|
store.updateGraphStructure(tickResult.graph.id, {
|
|
46279
46717
|
nodes: tickResult.graph.nodes,
|
|
46280
46718
|
schedule: tickResult.graph.schedule
|
|
46281
46719
|
});
|
|
46282
46720
|
const schedulerResult = schedulerTick(tickResult.graph, context);
|
|
46283
|
-
|
|
46721
|
+
logger.info(`[schedules:poll] ${taskId} scheduler: fn=${schedulerResult.functionToRun.length} work=${schedulerResult.workToRun.length}`);
|
|
46284
46722
|
let currentGraph = schedulerResult.graph;
|
|
46285
46723
|
for (const nodeId of schedulerResult.functionToRun) {
|
|
46286
46724
|
const node = currentGraph.nodes[nodeId];
|
|
46287
46725
|
if (!node || node.type !== "function") continue;
|
|
46288
46726
|
try {
|
|
46289
|
-
|
|
46727
|
+
logger.info(`[schedules:poll] ${taskId} executing function node "${nodeId}"`);
|
|
46290
46728
|
const execResult = await executeNode(currentGraph, nodeId, context);
|
|
46291
46729
|
const resultNode = execResult.graph.nodes[nodeId];
|
|
46292
|
-
|
|
46730
|
+
logger.info(`[schedules:poll] ${taskId} function "${nodeId}" \u2192 ${resultNode?.status}`, resultNode && "output" in resultNode ? { output: JSON.stringify(resultNode.output)?.slice(0, 200) } : void 0);
|
|
46293
46731
|
currentGraph = execResult.graph;
|
|
46294
46732
|
} catch (err) {
|
|
46295
|
-
|
|
46733
|
+
logger.error(`[schedules:poll] ${taskId} function "${nodeId}" error`, logger.formatError(err));
|
|
46296
46734
|
result.errors.push({
|
|
46297
46735
|
graphId: taskId,
|
|
46298
46736
|
error: err instanceof Error ? err : new Error(String(err))
|
|
@@ -46303,7 +46741,7 @@ async function pollSchedules(context = {}) {
|
|
|
46303
46741
|
nodes: currentGraph.nodes
|
|
46304
46742
|
});
|
|
46305
46743
|
const postFunctionResult = schedulerTick(currentGraph, context);
|
|
46306
|
-
|
|
46744
|
+
logger.info(`[schedules:poll] ${taskId} post-fn scheduler: cond=${postFunctionResult.control.conditionalNodeIds.length} work=${postFunctionResult.workToRun.length}`);
|
|
46307
46745
|
currentGraph = postFunctionResult.graph;
|
|
46308
46746
|
for (const nodeId of postFunctionResult.workToRun) {
|
|
46309
46747
|
const node = currentGraph.nodes[nodeId];
|
|
@@ -46328,17 +46766,17 @@ async function pollSchedules(context = {}) {
|
|
|
46328
46766
|
nodes: currentGraph.nodes
|
|
46329
46767
|
});
|
|
46330
46768
|
const postWorkResult = schedulerTick(currentGraph, context);
|
|
46331
|
-
|
|
46769
|
+
logger.info(`[schedules:poll] ${taskId} post-work scheduler: fn=${postWorkResult.functionToRun.length} cond=${postWorkResult.control.conditionalNodeIds.length}`);
|
|
46332
46770
|
currentGraph = postWorkResult.graph;
|
|
46333
46771
|
for (const nodeId of postWorkResult.functionToRun) {
|
|
46334
46772
|
const node = currentGraph.nodes[nodeId];
|
|
46335
46773
|
if (!node || node.type !== "function") continue;
|
|
46336
46774
|
try {
|
|
46337
|
-
|
|
46775
|
+
logger.info(`[schedules:poll] ${taskId} executing post-work function "${nodeId}"`);
|
|
46338
46776
|
const execResult = await executeNode(currentGraph, nodeId, context);
|
|
46339
46777
|
currentGraph = execResult.graph;
|
|
46340
46778
|
} catch (err) {
|
|
46341
|
-
|
|
46779
|
+
logger.error(`[schedules:poll] ${taskId} post-work function "${nodeId}" error`, logger.formatError(err));
|
|
46342
46780
|
result.errors.push({
|
|
46343
46781
|
graphId: taskId,
|
|
46344
46782
|
error: err instanceof Error ? err : new Error(String(err))
|
|
@@ -46350,9 +46788,9 @@ async function pollSchedules(context = {}) {
|
|
|
46350
46788
|
nodes: currentGraph.nodes
|
|
46351
46789
|
});
|
|
46352
46790
|
const nodeStates = Object.entries(currentGraph.nodes).map(([id, n]) => `${id}:${n.status}`).join(", ");
|
|
46353
|
-
|
|
46791
|
+
logger.info(`[schedules:poll] ${taskId} node states: ${nodeStates}`);
|
|
46354
46792
|
const tickComplete = isScheduleTickComplete(currentGraph);
|
|
46355
|
-
|
|
46793
|
+
logger.info(`[schedules:poll] ${taskId} tick complete? ${tickComplete}`);
|
|
46356
46794
|
if (tickComplete) {
|
|
46357
46795
|
const completed = completeScheduleTick(currentGraph);
|
|
46358
46796
|
const hasFailedNode = completed.schedule?.resetNodeIds.some(
|
|
@@ -46375,7 +46813,7 @@ async function pollSchedules(context = {}) {
|
|
|
46375
46813
|
}
|
|
46376
46814
|
const dbGraph = store.getGraph(taskId);
|
|
46377
46815
|
if (dbGraph?.schedule?.state === "stopped") {
|
|
46378
|
-
|
|
46816
|
+
logger.info(`[schedules:poll] ${taskId} schedule was stopped mid-tick, preserving stopped state`);
|
|
46379
46817
|
completed.schedule = {
|
|
46380
46818
|
...completed.schedule,
|
|
46381
46819
|
state: "stopped"
|
|
@@ -46389,14 +46827,14 @@ async function pollSchedules(context = {}) {
|
|
|
46389
46827
|
}
|
|
46390
46828
|
result.tickedGraphIds.push(taskId);
|
|
46391
46829
|
} catch (err) {
|
|
46392
|
-
|
|
46830
|
+
logger.error(`[schedules:poll] ${taskId} caught error`, logger.formatError(err));
|
|
46393
46831
|
result.errors.push({
|
|
46394
46832
|
graphId: taskId,
|
|
46395
46833
|
error: err instanceof Error ? err : new Error(String(err))
|
|
46396
46834
|
});
|
|
46397
46835
|
try {
|
|
46398
46836
|
store.releaseScheduleTick(taskId);
|
|
46399
|
-
|
|
46837
|
+
logger.info(`[schedules:poll] ${taskId} released concurrency slot after error`);
|
|
46400
46838
|
} catch {
|
|
46401
46839
|
}
|
|
46402
46840
|
}
|
|
@@ -46405,6 +46843,7 @@ async function pollSchedules(context = {}) {
|
|
|
46405
46843
|
}
|
|
46406
46844
|
var init_schedule_runner = __esm({
|
|
46407
46845
|
"apps/local/src/graph/schedule-runner.ts"() {
|
|
46846
|
+
init_logger2();
|
|
46408
46847
|
init_sqlite_query_adapter();
|
|
46409
46848
|
init_automations();
|
|
46410
46849
|
init_schedule();
|
|
@@ -46439,7 +46878,7 @@ function resolveProvider(raw) {
|
|
|
46439
46878
|
function resolveTeamAgent(sqlite, projectId, taskId) {
|
|
46440
46879
|
if (!taskId) return null;
|
|
46441
46880
|
try {
|
|
46442
|
-
const { parseFrontmatter: parseFrontmatter2 } = (
|
|
46881
|
+
const { parseFrontmatter: parseFrontmatter2 } = (init_db2(), __toCommonJS(db_exports));
|
|
46443
46882
|
const taskRow = sqlite.prepare("SELECT content FROM tasks WHERE id = ? LIMIT 1").get(taskId);
|
|
46444
46883
|
if (!taskRow?.content) return null;
|
|
46445
46884
|
const { frontmatter } = parseFrontmatter2(taskRow.content);
|
|
@@ -46509,7 +46948,7 @@ function createDispatchWork() {
|
|
|
46509
46948
|
message: "No rootMessageId on graph schedule"
|
|
46510
46949
|
};
|
|
46511
46950
|
}
|
|
46512
|
-
|
|
46951
|
+
logger.info(
|
|
46513
46952
|
`[work-dispatch] Dispatching steer node "${node.title}" for graph ${graph.id} (root: ${rootMessageId})`
|
|
46514
46953
|
);
|
|
46515
46954
|
try {
|
|
@@ -46541,7 +46980,7 @@ function createDispatchWork() {
|
|
|
46541
46980
|
const text = (m.content ?? "").slice(0, 600);
|
|
46542
46981
|
return `[${sender}]: ${text}`;
|
|
46543
46982
|
}).join("\n");
|
|
46544
|
-
|
|
46983
|
+
logger.info(`[work-dispatch] Thread: active=${activeProcessCount}, msgs=${snapshot.messages?.length ?? 0}`);
|
|
46545
46984
|
const assessPrompt = [
|
|
46546
46985
|
"--- THREAD STATE ---",
|
|
46547
46986
|
`Root request: ${snapshot.rootMessage?.content ?? "(missing root message)"}`,
|
|
@@ -46561,7 +47000,7 @@ function createDispatchWork() {
|
|
|
46561
47000
|
].filter(Boolean).join("\n");
|
|
46562
47001
|
const { runCliResponse: runCliResponse2 } = await Promise.resolve().then(() => (init_cli_runner(), cli_runner_exports));
|
|
46563
47002
|
const steeringAgent = await getSteeringAgentConfig(threadRef.threadId, graph.taskId);
|
|
46564
|
-
|
|
47003
|
+
logger.info(
|
|
46565
47004
|
`[work-dispatch] Calling ${steeringAgent.provider} via runCliResponse (prompt length: ${assessPrompt.length})...`
|
|
46566
47005
|
);
|
|
46567
47006
|
let fullResponse = "";
|
|
@@ -46574,10 +47013,10 @@ function createDispatchWork() {
|
|
|
46574
47013
|
fullResponse += chunk;
|
|
46575
47014
|
},
|
|
46576
47015
|
onLog: (stream, line) => {
|
|
46577
|
-
|
|
47016
|
+
logger.info(`[work-dispatch] [${stream}] ${line}`);
|
|
46578
47017
|
}
|
|
46579
47018
|
});
|
|
46580
|
-
|
|
47019
|
+
logger.info(`[work-dispatch] Raw response: ${fullResponse.slice(0, 500)}`);
|
|
46581
47020
|
const parsed = parseSteerResponse(fullResponse.trim());
|
|
46582
47021
|
if (!parsed.ok) {
|
|
46583
47022
|
return {
|
|
@@ -46586,7 +47025,7 @@ function createDispatchWork() {
|
|
|
46586
47025
|
message: parsed.error
|
|
46587
47026
|
};
|
|
46588
47027
|
}
|
|
46589
|
-
|
|
47028
|
+
logger.info(`[work-dispatch] Parsed result: ${JSON.stringify(parsed)}`);
|
|
46590
47029
|
return {
|
|
46591
47030
|
status: "success",
|
|
46592
47031
|
output: parsed.value
|
|
@@ -46632,6 +47071,7 @@ function parseSteerResponse(raw) {
|
|
|
46632
47071
|
var import_node_fs5, import_node_path4, import_node_os4, ACTIVE_PROCESS_STATUSES2, DEFAULT_STEER_DIRECTIVE, STEER_OUTPUT_CONTRACT;
|
|
46633
47072
|
var init_work_dispatcher = __esm({
|
|
46634
47073
|
"apps/local/src/graph/work-dispatcher.ts"() {
|
|
47074
|
+
init_logger2();
|
|
46635
47075
|
import_node_fs5 = require("node:fs");
|
|
46636
47076
|
import_node_path4 = require("node:path");
|
|
46637
47077
|
import_node_os4 = require("node:os");
|