@mndrk/agx 2.4.3 → 2.4.5
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 +5 -4
- 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 +5 -4
- 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 +5 -4
- 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 +5 -4
- 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 +6 -4
- 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 +6 -5
- 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 +5 -4
- 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 +5 -4
- 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 +6 -5
- 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 +5 -4
- 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 +8 -2
- 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 +2 -2
- 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]__7fcbb0c2._.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} +5 -5
- 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]__ba72d342._.js +5 -5
- 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} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_1a4cb196._.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} +2 -2
- 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} +2 -2
- 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 +29 -25
- 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]__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]__7e3c2ea1._.js +7 -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]__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]__dbda910b._.js +7 -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/_347d036d._.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/_917d90b4._.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_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_a2835b49._.js +3 -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_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 +4 -4
- 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/55a31773f8c2833f.js +20 -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/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/7c8515a24aeea102.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/7ff071e8a33d2fd8.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/80446e085a3aad56.css +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/8966871bc99cb968.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/8b5d6f5bade8c4ea.js +6 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/93b2b6aa0c9593f6.js +1 -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/9c29ef447bef1576.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/a9111ccc979d4933.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{8bd9cddc3e268c43.js → aa3029ae0b62f930.js} +1 -1
- 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/d2b34ade19d9d8da.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 +57 -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]/tracking/[tracker]/page.tsx +17 -1
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/tracking/connect/page.tsx +61 -26
- package/cloud-runtime/standalone/apps/local/components/GraphDetailSidebar.tsx +1 -1
- package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +21 -8
- 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 +23 -20
- package/cloud-runtime/standalone/apps/local/components/projects/ProjectObjectivesWorkspace.tsx +301 -113
- 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 +36 -12
- 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/useTrackerConnections.ts +29 -1
- package/cloud-runtime/standalone/apps/local/hooks/useTrackerItems.ts +48 -3
- package/cloud-runtime/standalone/apps/local/lib/agent-process-registry.ts +8 -2
- 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/connections.ts +46 -15
- 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/objective-worker.ts +7 -0
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/store.ts +18 -1
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/task-worker.ts +7 -0
- package/cloud-runtime/standalone/apps/local/state/trackerItemsCache.ts +79 -0
- package/cloud-runtime/standalone/apps/local/worker/index.js +1321 -876
- 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]__2ab23e45._.js +0 -70
- 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]__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]__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]__847236fb._.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_80b34b78._.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/6c278ae4535b6d5c.js +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/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/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/cecf3e8c47c785f5.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/e72724fd8225ec39.js +0 -20
- 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/chunks/f6d31036588ddfe4.css +0 -1
- /package/cloud-runtime/standalone/apps/local/.next/static/{4MnUE2NHztybGBWFbcBo5 → C3-tP4djbU34_g7VoIFac}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{4MnUE2NHztybGBWFbcBo5 → C3-tP4djbU34_g7VoIFac}/_clientMiddlewareManifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{4MnUE2NHztybGBWFbcBo5 → C3-tP4djbU34_g7VoIFac}/_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 {
|
|
@@ -2633,10 +2712,215 @@ function createAdminDbClient() {
|
|
|
2633
2712
|
}
|
|
2634
2713
|
var init_db_adapter = __esm({
|
|
2635
2714
|
"apps/local/lib/db-adapter.ts"() {
|
|
2715
|
+
"use strict";
|
|
2636
2716
|
init_auth_mode();
|
|
2637
2717
|
}
|
|
2638
2718
|
});
|
|
2639
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
|
+
|
|
2640
2924
|
// apps/local/lib/dependency-helpers.ts
|
|
2641
2925
|
function describeDependency(entry) {
|
|
2642
2926
|
if (entry.title) return entry.title;
|
|
@@ -2665,11 +2949,82 @@ function isDependencyBlockedReason(reason) {
|
|
|
2665
2949
|
var DEPENDENCY_BLOCKED_REASON_PREFIX, MAX_DISPLAYED_DEPENDENCIES;
|
|
2666
2950
|
var init_dependency_helpers = __esm({
|
|
2667
2951
|
"apps/local/lib/dependency-helpers.ts"() {
|
|
2952
|
+
"use strict";
|
|
2668
2953
|
DEPENDENCY_BLOCKED_REASON_PREFIX = "Waiting on dependencies";
|
|
2669
2954
|
MAX_DISPLAYED_DEPENDENCIES = 3;
|
|
2670
2955
|
}
|
|
2671
2956
|
});
|
|
2672
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
|
+
|
|
2673
3028
|
// apps/local/lib/notifications/constants.ts
|
|
2674
3029
|
var NOTIFICATION_EVENT_OPTIONS, NOTIFICATION_EVENT_VALUES;
|
|
2675
3030
|
var init_constants = __esm({
|
|
@@ -2707,7 +3062,7 @@ var init_constants = __esm({
|
|
|
2707
3062
|
});
|
|
2708
3063
|
|
|
2709
3064
|
// apps/local/lib/notifications/index.ts
|
|
2710
|
-
function
|
|
3065
|
+
function isMissingRelationError2(error, relation) {
|
|
2711
3066
|
if (!error || typeof error !== "object") return false;
|
|
2712
3067
|
const code = error.code;
|
|
2713
3068
|
const message = typeof error.message === "string" ? error.message : "";
|
|
@@ -2729,7 +3084,7 @@ function mapWebhookRecord(raw) {
|
|
|
2729
3084
|
};
|
|
2730
3085
|
}
|
|
2731
3086
|
async function handleRelationError(relation, error) {
|
|
2732
|
-
if (
|
|
3087
|
+
if (isMissingRelationError2(error, relation)) {
|
|
2733
3088
|
throw new SchemaNotReadyError(`Missing relation: ${relation}`);
|
|
2734
3089
|
}
|
|
2735
3090
|
throw error;
|
|
@@ -2753,7 +3108,7 @@ async function notifyTaskEvent(payload) {
|
|
|
2753
3108
|
console.debug("[notifications] notification_webhooks schema not ready, skipping");
|
|
2754
3109
|
return;
|
|
2755
3110
|
}
|
|
2756
|
-
|
|
3111
|
+
logger.error("[notifications] failed to load webhooks", logger.formatError(error));
|
|
2757
3112
|
return;
|
|
2758
3113
|
}
|
|
2759
3114
|
const targets = endpoints.filter(
|
|
@@ -2777,28 +3132,36 @@ async function notifyTaskEvent(payload) {
|
|
|
2777
3132
|
};
|
|
2778
3133
|
await Promise.all(
|
|
2779
3134
|
targets.map(async (endpoint) => {
|
|
3135
|
+
const controller = new AbortController();
|
|
3136
|
+
const timeout = setTimeout(() => controller.abort(), WEBHOOK_DELIVERY_TIMEOUT_MS);
|
|
2780
3137
|
try {
|
|
2781
3138
|
const response = await fetch(endpoint.url, {
|
|
2782
3139
|
method: "POST",
|
|
2783
3140
|
headers: { "Content-Type": "application/json" },
|
|
2784
|
-
body: JSON.stringify(body)
|
|
3141
|
+
body: JSON.stringify(body),
|
|
3142
|
+
signal: controller.signal
|
|
2785
3143
|
});
|
|
2786
3144
|
if (!response.ok) {
|
|
2787
|
-
|
|
3145
|
+
logger.error(
|
|
2788
3146
|
`[notifications] webhook ${endpoint.url} responded with ${response.status}`
|
|
2789
3147
|
);
|
|
2790
3148
|
}
|
|
2791
3149
|
} catch (error) {
|
|
2792
|
-
|
|
3150
|
+
logger.error(`[notifications] failed to send to ${endpoint.url}`, logger.formatError(error));
|
|
3151
|
+
} finally {
|
|
3152
|
+
clearTimeout(timeout);
|
|
2793
3153
|
}
|
|
2794
3154
|
})
|
|
2795
3155
|
);
|
|
2796
3156
|
}
|
|
2797
|
-
var SchemaNotReadyError;
|
|
3157
|
+
var WEBHOOK_DELIVERY_TIMEOUT_MS, SchemaNotReadyError;
|
|
2798
3158
|
var init_notifications = __esm({
|
|
2799
3159
|
"apps/local/lib/notifications/index.ts"() {
|
|
3160
|
+
"use strict";
|
|
2800
3161
|
init_db_adapter();
|
|
3162
|
+
init_logger2();
|
|
2801
3163
|
init_constants();
|
|
3164
|
+
WEBHOOK_DELIVERY_TIMEOUT_MS = 1e4;
|
|
2802
3165
|
SchemaNotReadyError = class extends Error {
|
|
2803
3166
|
};
|
|
2804
3167
|
}
|
|
@@ -2884,9 +3247,9 @@ var require_mark = __commonJS({
|
|
|
2884
3247
|
"node_modules/js-yaml/lib/js-yaml/mark.js"(exports2, module2) {
|
|
2885
3248
|
"use strict";
|
|
2886
3249
|
var common = require_common();
|
|
2887
|
-
function Mark(name,
|
|
3250
|
+
function Mark(name, buffer2, position, line, column) {
|
|
2888
3251
|
this.name = name;
|
|
2889
|
-
this.buffer =
|
|
3252
|
+
this.buffer = buffer2;
|
|
2890
3253
|
this.position = position;
|
|
2891
3254
|
this.line = line;
|
|
2892
3255
|
this.column = column;
|
|
@@ -5631,7 +5994,7 @@ var require_js_yaml2 = __commonJS({
|
|
|
5631
5994
|
function nowIso() {
|
|
5632
5995
|
return (/* @__PURE__ */ new Date()).toISOString();
|
|
5633
5996
|
}
|
|
5634
|
-
function
|
|
5997
|
+
function slugify3(value, fallback = "item") {
|
|
5635
5998
|
const slug = String(value || "").toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
5636
5999
|
return slug || fallback;
|
|
5637
6000
|
}
|
|
@@ -5901,7 +6264,7 @@ var init_vault_store = __esm({
|
|
|
5901
6264
|
}
|
|
5902
6265
|
nextProjectSlug(base, excludeProjectId) {
|
|
5903
6266
|
const registry = this.readRegistry();
|
|
5904
|
-
const baseSlug =
|
|
6267
|
+
const baseSlug = slugify3(base, "project");
|
|
5905
6268
|
let candidate = baseSlug;
|
|
5906
6269
|
let index = 1;
|
|
5907
6270
|
while (registry.projects.some((project) => project.slug === candidate && project.id !== excludeProjectId)) {
|
|
@@ -5912,7 +6275,7 @@ var init_vault_store = __esm({
|
|
|
5912
6275
|
}
|
|
5913
6276
|
nextRepoSlug(projectSlug, base, excludeRepoId) {
|
|
5914
6277
|
const manifest = this.readManifest(projectSlug);
|
|
5915
|
-
const baseSlug =
|
|
6278
|
+
const baseSlug = slugify3(base, "repo");
|
|
5916
6279
|
let candidate = baseSlug;
|
|
5917
6280
|
let index = 1;
|
|
5918
6281
|
while (manifest?.repos.some((repo) => repo.slug === candidate && repo.id !== excludeRepoId)) {
|
|
@@ -6061,7 +6424,7 @@ ${project.description?.trim() || ""}
|
|
|
6061
6424
|
const registry = this.readRegistry();
|
|
6062
6425
|
const existing = registry.agents.find((agent) => agent.id === agentId);
|
|
6063
6426
|
if (existing) return existing;
|
|
6064
|
-
const slug =
|
|
6427
|
+
const slug = slugify3(name || agentId, "agent");
|
|
6065
6428
|
const createdAt = nowIso();
|
|
6066
6429
|
const entry = {
|
|
6067
6430
|
id: agentId,
|
|
@@ -6355,7 +6718,7 @@ ${project.description?.trim() || ""}
|
|
|
6355
6718
|
if (!project) throw new Error("Project not found");
|
|
6356
6719
|
const timestamp = nowIso();
|
|
6357
6720
|
const id = (0, import_node_crypto3.randomUUID)();
|
|
6358
|
-
const fileSlug =
|
|
6721
|
+
const fileSlug = slugify3(import_node_path.default.basename(file) || id, "skill");
|
|
6359
6722
|
writeMarkdownFile(
|
|
6360
6723
|
import_node_path.default.join(this.projectSkillsDir(project.slug), `${fileSlug}-${id.slice(0, 8)}.md`),
|
|
6361
6724
|
{
|
|
@@ -6407,7 +6770,7 @@ ${project.description?.trim() || ""}
|
|
|
6407
6770
|
setProjectVariable(projectId, key, value) {
|
|
6408
6771
|
const project = this.findProjectRegistryEntryById(projectId);
|
|
6409
6772
|
if (!project) throw new Error("Project not found");
|
|
6410
|
-
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`);
|
|
6411
6774
|
const existing = readMarkdownFile(existingPath);
|
|
6412
6775
|
const timestamp = nowIso();
|
|
6413
6776
|
writeMarkdownFile(
|
|
@@ -6429,7 +6792,7 @@ ${project.description?.trim() || ""}
|
|
|
6429
6792
|
deleteProjectVariable(projectId, key) {
|
|
6430
6793
|
const project = this.findProjectRegistryEntryById(projectId);
|
|
6431
6794
|
if (!project) return;
|
|
6432
|
-
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`);
|
|
6433
6796
|
if (import_node_fs.default.existsSync(filePath)) {
|
|
6434
6797
|
import_node_fs.default.unlinkSync(filePath);
|
|
6435
6798
|
}
|
|
@@ -6750,7 +7113,7 @@ ${project.description?.trim() || ""}
|
|
|
6750
7113
|
}
|
|
6751
7114
|
nextKnowledgeEntryPath(scope, subjectId, title) {
|
|
6752
7115
|
const id = (0, import_node_crypto3.randomUUID)();
|
|
6753
|
-
const fileName = `${
|
|
7116
|
+
const fileName = `${slugify3(title, "entry")}-${id.slice(0, 8)}.md`;
|
|
6754
7117
|
if (scope === "global") {
|
|
6755
7118
|
return import_node_path.default.join(this.globalEvidenceDir("global"), fileName);
|
|
6756
7119
|
}
|
|
@@ -6878,7 +7241,7 @@ ${addition}` : addition;
|
|
|
6878
7241
|
let evidenceFiles = 0;
|
|
6879
7242
|
for (const learning of globalLearnings) {
|
|
6880
7243
|
writeMarkdownFile(
|
|
6881
|
-
import_node_path.default.join(this.globalImportedLearningsDir(), `${
|
|
7244
|
+
import_node_path.default.join(this.globalImportedLearningsDir(), `${slugify3(learning.id, "learning")}.md`),
|
|
6882
7245
|
{
|
|
6883
7246
|
id: learning.id,
|
|
6884
7247
|
type: "imported-artifact",
|
|
@@ -6978,7 +7341,7 @@ ${addition}` : addition;
|
|
|
6978
7341
|
const projectLearningRows = learnings.filter((learning) => learning.scope === "project" && learning.scope_id === project.id);
|
|
6979
7342
|
for (const learning of projectLearningRows) {
|
|
6980
7343
|
writeMarkdownFile(
|
|
6981
|
-
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`),
|
|
6982
7345
|
{
|
|
6983
7346
|
id: learning.id,
|
|
6984
7347
|
type: "imported-artifact",
|
|
@@ -6995,7 +7358,7 @@ ${addition}` : addition;
|
|
|
6995
7358
|
}
|
|
6996
7359
|
for (const memoryRow of projectMemoryRows.filter((row) => row.project_id === project.id)) {
|
|
6997
7360
|
writeMarkdownFile(
|
|
6998
|
-
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`),
|
|
6999
7362
|
{
|
|
7000
7363
|
id: memoryRow.id,
|
|
7001
7364
|
type: "imported-artifact",
|
|
@@ -7037,7 +7400,7 @@ ${addition}` : addition;
|
|
|
7037
7400
|
);
|
|
7038
7401
|
if (repo.notes?.trim()) {
|
|
7039
7402
|
writeMarkdownFile(
|
|
7040
|
-
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`),
|
|
7041
7404
|
{
|
|
7042
7405
|
id: `${repo.id}:project_repos.notes`,
|
|
7043
7406
|
type: "imported-artifact",
|
|
@@ -7054,7 +7417,7 @@ ${addition}` : addition;
|
|
|
7054
7417
|
}
|
|
7055
7418
|
for (const row of repoKnowledgeRows.filter((entry) => entry.repo_id === repo.id)) {
|
|
7056
7419
|
writeMarkdownFile(
|
|
7057
|
-
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`),
|
|
7058
7421
|
{
|
|
7059
7422
|
id: row.id,
|
|
7060
7423
|
type: "imported-artifact",
|
|
@@ -7073,7 +7436,7 @@ ${addition}` : addition;
|
|
|
7073
7436
|
}
|
|
7074
7437
|
for (const skill of projectSkills.filter((entry) => entry.project_id === project.id)) {
|
|
7075
7438
|
writeMarkdownFile(
|
|
7076
|
-
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`),
|
|
7077
7440
|
{
|
|
7078
7441
|
id: skill.id,
|
|
7079
7442
|
type: "project-skill",
|
|
@@ -7090,7 +7453,7 @@ ${addition}` : addition;
|
|
|
7090
7453
|
}
|
|
7091
7454
|
for (const variable of projectVariables.filter((entry) => entry.project_id === project.id)) {
|
|
7092
7455
|
writeMarkdownFile(
|
|
7093
|
-
import_node_path.default.join(this.projectVariablesDir(project.slug), `${
|
|
7456
|
+
import_node_path.default.join(this.projectVariablesDir(project.slug), `${slugify3(variable.key, "var")}.md`),
|
|
7094
7457
|
{
|
|
7095
7458
|
id: `project-variable:${project.id}:${variable.key}`,
|
|
7096
7459
|
type: "project-variable",
|
|
@@ -7206,283 +7569,418 @@ ${portableKnowledge.trim()}`);
|
|
|
7206
7569
|
}
|
|
7207
7570
|
});
|
|
7208
7571
|
|
|
7209
|
-
// apps/local/lib/db.ts
|
|
7210
|
-
|
|
7211
|
-
|
|
7212
|
-
|
|
7213
|
-
|
|
7214
|
-
|
|
7215
|
-
|
|
7216
|
-
|
|
7217
|
-
|
|
7218
|
-
|
|
7219
|
-
|
|
7220
|
-
|
|
7221
|
-
|
|
7222
|
-
|
|
7223
|
-
|
|
7224
|
-
|
|
7225
|
-
|
|
7226
|
-
|
|
7227
|
-
|
|
7228
|
-
|
|
7229
|
-
|
|
7230
|
-
deleteAgent: () => deleteAgent,
|
|
7231
|
-
deleteLearning: () => deleteLearning,
|
|
7232
|
-
deleteProject: () => deleteProject,
|
|
7233
|
-
deleteProjectMemory: () => deleteProjectMemory,
|
|
7234
|
-
deleteProjectVariable: () => deleteProjectVariable,
|
|
7235
|
-
deleteStagePrompt: () => deleteStagePrompt,
|
|
7236
|
-
deleteTask: () => deleteTask,
|
|
7237
|
-
deleteTaskComment: () => deleteTaskComment,
|
|
7238
|
-
deleteTeam: () => deleteTeam,
|
|
7239
|
-
ensureNoCircularDependency: () => ensureNoCircularDependency,
|
|
7240
|
-
extractTitle: () => extractTitle,
|
|
7241
|
-
getAgent: () => getAgent,
|
|
7242
|
-
getAgentSkills: () => getAgentSkills,
|
|
7243
|
-
getAgents: () => getAgents,
|
|
7244
|
-
getDefaultWorkflowId: () => getDefaultWorkflowId,
|
|
7245
|
-
getLearnings: () => getLearnings,
|
|
7246
|
-
getNextQueuedTask: () => getNextQueuedTask,
|
|
7247
|
-
getProjectAgents: () => getProjectAgents,
|
|
7248
|
-
getProjectBySlug: () => getProjectBySlug,
|
|
7249
|
-
getProjectForThread: () => getProjectForThread,
|
|
7250
|
-
getProjectMemory: () => getProjectMemory,
|
|
7251
|
-
getProjectRepos: () => getProjectRepos,
|
|
7252
|
-
getProjectSkills: () => getProjectSkills,
|
|
7253
|
-
getProjectThreads: () => getProjectThreads,
|
|
7254
|
-
getProjectVariables: () => getProjectVariables,
|
|
7255
|
-
getProjectWithRepos: () => getProjectWithRepos,
|
|
7256
|
-
getProjects: () => getProjects,
|
|
7257
|
-
getStagePrompt: () => getStagePrompt,
|
|
7258
|
-
getStagePrompts: () => getStagePrompts,
|
|
7259
|
-
getTask: () => getTask,
|
|
7260
|
-
getTaskBySlug: () => getTaskBySlug,
|
|
7261
|
-
getTaskComments: () => getTaskComments,
|
|
7262
|
-
getTaskCostEntries: () => getTaskCostEntries,
|
|
7263
|
-
getTaskCostSummary: () => getTaskCostSummary,
|
|
7264
|
-
getTaskLogs: () => getTaskLogs,
|
|
7265
|
-
getTasks: () => getTasks,
|
|
7266
|
-
getTeam: () => getTeam,
|
|
7267
|
-
getTeamAgents: () => getTeamAgents,
|
|
7268
|
-
getTeams: () => getTeams,
|
|
7269
|
-
getUserSettings: () => getUserSettings,
|
|
7270
|
-
getWorkflow: () => getWorkflow,
|
|
7271
|
-
getWorkflowNodeByName: () => getWorkflowNodeByName,
|
|
7272
|
-
getWorkflowNodes: () => getWorkflowNodes,
|
|
7273
|
-
getWorkflowTransitions: () => getWorkflowTransitions,
|
|
7274
|
-
getWorkflowTransitionsFromNode: () => getWorkflowTransitionsFromNode,
|
|
7275
|
-
getWorkflowWithGraph: () => getWorkflowWithGraph,
|
|
7276
|
-
getWorkflows: () => getWorkflows,
|
|
7277
|
-
parseFrontmatter: () => parseFrontmatter,
|
|
7278
|
-
removeProjectAgent: () => removeProjectAgent,
|
|
7279
|
-
removeProjectSkill: () => removeProjectSkill,
|
|
7280
|
-
removeProjectThread: () => removeProjectThread,
|
|
7281
|
-
removeTeamAgent: () => removeTeamAgent,
|
|
7282
|
-
reorderProjectAgents: () => reorderProjectAgents,
|
|
7283
|
-
resolveMemory: () => resolveMemory,
|
|
7284
|
-
resolveSkills: () => resolveSkills,
|
|
7285
|
-
resolveTaskConfig: () => resolveTaskConfig,
|
|
7286
|
-
resolveVariables: () => resolveVariables,
|
|
7287
|
-
setAgentSkills: () => setAgentSkills,
|
|
7288
|
-
setProjectVariable: () => setProjectVariable,
|
|
7289
|
-
summarizeTaskCosts: () => summarizeTaskCosts,
|
|
7290
|
-
updateAgent: () => updateAgent,
|
|
7291
|
-
updateProject: () => updateProject,
|
|
7292
|
-
updateTask: () => updateTask,
|
|
7293
|
-
updateTeam: () => updateTeam,
|
|
7294
|
-
updateWorkflow: () => updateWorkflow,
|
|
7295
|
-
updateWorkflowNodes: () => updateWorkflowNodes,
|
|
7296
|
-
upsertStagePrompt: () => upsertStagePrompt,
|
|
7297
|
-
upsertUserSettings: () => upsertUserSettings
|
|
7298
|
-
});
|
|
7299
|
-
function isMissingRelationError2(error, relation) {
|
|
7300
|
-
if (!error) return false;
|
|
7301
|
-
const message = typeof error.message === "string" ? error.message : "";
|
|
7302
|
-
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 || [];
|
|
7303
7593
|
}
|
|
7304
|
-
function
|
|
7305
|
-
|
|
7306
|
-
|
|
7307
|
-
|
|
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;
|
|
7308
7605
|
}
|
|
7309
|
-
|
|
7606
|
+
const projects = data || [];
|
|
7607
|
+
return projects.map((project) => ({
|
|
7608
|
+
...project,
|
|
7609
|
+
repos: project.project_repos ?? []
|
|
7610
|
+
}));
|
|
7310
7611
|
}
|
|
7311
|
-
async function
|
|
7612
|
+
async function getProjectBySlug(slug, userId) {
|
|
7312
7613
|
const db2 = createAdminDbClient();
|
|
7313
|
-
|
|
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();
|
|
7617
|
+
if (error) {
|
|
7618
|
+
if (isMissingRelationError(error, "projects")) {
|
|
7619
|
+
return null;
|
|
7620
|
+
}
|
|
7621
|
+
throw error;
|
|
7622
|
+
}
|
|
7623
|
+
return data || null;
|
|
7624
|
+
}
|
|
7625
|
+
async function getProjectRepos(projectId) {
|
|
7626
|
+
const db2 = createAdminDbClient();
|
|
7627
|
+
const { data, error } = await db2.from("project_repos").select("*").eq("project_id", projectId);
|
|
7314
7628
|
if (error) {
|
|
7315
|
-
if (
|
|
7629
|
+
if (isMissingRelationError(error, "project_repos")) {
|
|
7630
|
+
return [];
|
|
7631
|
+
}
|
|
7316
7632
|
throw error;
|
|
7317
7633
|
}
|
|
7318
|
-
|
|
7319
|
-
return data;
|
|
7634
|
+
return data || [];
|
|
7320
7635
|
}
|
|
7321
|
-
async function
|
|
7322
|
-
const
|
|
7323
|
-
const
|
|
7324
|
-
|
|
7325
|
-
if (
|
|
7326
|
-
|
|
7327
|
-
|
|
7328
|
-
|
|
7329
|
-
|
|
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;
|
|
7330
7650
|
}
|
|
7651
|
+
throw projectResult.error;
|
|
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");
|
|
7331
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);
|
|
7332
7666
|
const payload = {
|
|
7333
7667
|
user_id: userId,
|
|
7334
|
-
|
|
7335
|
-
|
|
7336
|
-
|
|
7337
|
-
|
|
7668
|
+
name: input.name.trim(),
|
|
7669
|
+
slug,
|
|
7670
|
+
description: input.description ?? null,
|
|
7671
|
+
workflow_id: input.workflow_id ?? null
|
|
7338
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) {
|
|
7339
7792
|
const db2 = createAdminDbClient();
|
|
7340
|
-
const { error
|
|
7341
|
-
if (
|
|
7342
|
-
|
|
7343
|
-
|
|
7344
|
-
|
|
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 || [];
|
|
7345
7799
|
}
|
|
7346
|
-
function
|
|
7347
|
-
const
|
|
7348
|
-
|
|
7349
|
-
const
|
|
7350
|
-
|
|
7351
|
-
};
|
|
7352
|
-
let cliDefaultProvider = null;
|
|
7353
|
-
try {
|
|
7354
|
-
const fs12 = require("fs");
|
|
7355
|
-
const path15 = require("path");
|
|
7356
|
-
const configPath = path15.join(process.env.HOME || "", ".agx", "config.json");
|
|
7357
|
-
const cliConfig = JSON.parse(fs12.readFileSync(configPath, "utf-8"));
|
|
7358
|
-
cliDefaultProvider = clean(cliConfig?.defaultProvider) || null;
|
|
7359
|
-
} 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;
|
|
7360
7805
|
}
|
|
7361
|
-
const
|
|
7362
|
-
|
|
7363
|
-
|
|
7364
|
-
const model = clean(task.model) || clean(stageConfig?.model) || globalDefaultModel || null;
|
|
7365
|
-
const swarm = task.swarm ?? stageConfig?.swarm ?? false;
|
|
7366
|
-
const swarm_models = task.swarm_models?.length ? task.swarm_models : stageConfig?.swarm_models || [];
|
|
7367
|
-
return {
|
|
7368
|
-
provider,
|
|
7369
|
-
model,
|
|
7370
|
-
swarm,
|
|
7371
|
-
swarm_models
|
|
7372
|
-
};
|
|
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;
|
|
7373
7809
|
}
|
|
7374
|
-
function
|
|
7375
|
-
|
|
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;
|
|
7376
7814
|
}
|
|
7377
|
-
async function
|
|
7378
|
-
|
|
7379
|
-
for (let i = 0; i <
|
|
7380
|
-
|
|
7381
|
-
if (error) throw error;
|
|
7382
|
-
if (!data || data.length === 0) return slug;
|
|
7383
|
-
const suffix = Math.random().toString(36).slice(2, 6);
|
|
7384
|
-
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]);
|
|
7385
7819
|
}
|
|
7386
|
-
return
|
|
7820
|
+
return getProjectAgents(projectId);
|
|
7387
7821
|
}
|
|
7388
|
-
async function
|
|
7389
|
-
|
|
7390
|
-
|
|
7391
|
-
|
|
7392
|
-
if (
|
|
7393
|
-
|
|
7394
|
-
}
|
|
7395
|
-
const { data, error } = await query.limit(1);
|
|
7396
|
-
if (error) throw error;
|
|
7397
|
-
if (!data || data.length === 0) return slug;
|
|
7398
|
-
const suffix = Math.random().toString(36).slice(2, 6);
|
|
7399
|
-
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;
|
|
7400
7828
|
}
|
|
7401
|
-
return
|
|
7829
|
+
return data || [];
|
|
7402
7830
|
}
|
|
7403
|
-
function
|
|
7404
|
-
|
|
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;
|
|
7405
7836
|
}
|
|
7406
|
-
function
|
|
7407
|
-
const
|
|
7408
|
-
|
|
7409
|
-
|
|
7410
|
-
|
|
7411
|
-
|
|
7412
|
-
|
|
7413
|
-
|
|
7414
|
-
|
|
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;
|
|
7415
7848
|
}
|
|
7416
|
-
return
|
|
7849
|
+
return data || [];
|
|
7417
7850
|
}
|
|
7418
|
-
function
|
|
7419
|
-
|
|
7420
|
-
|
|
7421
|
-
if (
|
|
7422
|
-
|
|
7423
|
-
|
|
7424
|
-
|
|
7425
|
-
|
|
7426
|
-
|
|
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;
|
|
7427
7878
|
}
|
|
7428
|
-
return
|
|
7879
|
+
return data || [];
|
|
7429
7880
|
}
|
|
7430
|
-
function
|
|
7431
|
-
const
|
|
7432
|
-
|
|
7433
|
-
|
|
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;
|
|
7434
7903
|
}
|
|
7435
|
-
|
|
7436
|
-
|
|
7437
|
-
|
|
7438
|
-
|
|
7439
|
-
|
|
7440
|
-
|
|
7441
|
-
|
|
7442
|
-
|
|
7443
|
-
frontmatter[key] = parseDependsOnValue(value);
|
|
7444
|
-
continue;
|
|
7445
|
-
}
|
|
7446
|
-
if (value === "true") frontmatter[key] = true;
|
|
7447
|
-
else if (value === "false") frontmatter[key] = false;
|
|
7448
|
-
else if (/^\d+$/.test(value)) frontmatter[key] = parseInt(value);
|
|
7449
|
-
else frontmatter[key] = value;
|
|
7450
|
-
}
|
|
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;
|
|
7451
7912
|
}
|
|
7452
|
-
|
|
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
|
+
}, {});
|
|
7453
7919
|
}
|
|
7454
|
-
async function
|
|
7455
|
-
|
|
7456
|
-
const
|
|
7457
|
-
const
|
|
7458
|
-
const
|
|
7459
|
-
|
|
7460
|
-
|
|
7461
|
-
|
|
7462
|
-
|
|
7463
|
-
|
|
7464
|
-
|
|
7465
|
-
|
|
7466
|
-
|
|
7467
|
-
|
|
7468
|
-
|
|
7469
|
-
|
|
7470
|
-
|
|
7471
|
-
|
|
7472
|
-
|
|
7473
|
-
|
|
7474
|
-
|
|
7475
|
-
|
|
7476
|
-
|
|
7477
|
-
|
|
7478
|
-
|
|
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;
|
|
7479
7949
|
}
|
|
7950
|
+
return data;
|
|
7480
7951
|
}
|
|
7481
|
-
function
|
|
7482
|
-
const
|
|
7483
|
-
const
|
|
7484
|
-
|
|
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;
|
|
7485
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
|
|
7486
7984
|
function normalizeDescriptionBody(markdownBody) {
|
|
7487
7985
|
return String(markdownBody || "").replace(/^#\s+.+(\r?\n|$)/, "").trim();
|
|
7488
7986
|
}
|
|
@@ -7580,7 +8078,6 @@ async function createTask(content, userId, options) {
|
|
|
7580
8078
|
const project = await getProjectWithRepos(projectId);
|
|
7581
8079
|
if (project?.slug) projectSlug = project.slug;
|
|
7582
8080
|
}
|
|
7583
|
-
const hadFrontmatter = /^---\n/.test(content);
|
|
7584
8081
|
const provider = typeof frontmatter.provider === "string" ? frontmatter.provider : null;
|
|
7585
8082
|
const model = typeof frontmatter.model === "string" ? frontmatter.model : null;
|
|
7586
8083
|
const engine = typeof frontmatter.engine === "string" ? frontmatter.engine : null;
|
|
@@ -7588,8 +8085,21 @@ async function createTask(content, userId, options) {
|
|
|
7588
8085
|
const frontmatterDepends = normalizeDependsOnInput(frontmatter.depends_on);
|
|
7589
8086
|
const optionDepends = normalizeDependsOnInput(options?.dependsOn);
|
|
7590
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
|
+
}
|
|
7591
8101
|
const insertPayload = {
|
|
7592
|
-
id: (0,
|
|
8102
|
+
id: (0, import_crypto2.randomUUID)(),
|
|
7593
8103
|
content,
|
|
7594
8104
|
description: normalizeDescriptionBody(body),
|
|
7595
8105
|
title,
|
|
@@ -7599,6 +8109,7 @@ async function createTask(content, userId, options) {
|
|
|
7599
8109
|
project: projectSlug || null,
|
|
7600
8110
|
...projectId !== void 0 ? { project_id: projectId } : {},
|
|
7601
8111
|
...workflowId !== void 0 ? { workflow_id: workflowId } : {},
|
|
8112
|
+
...identifier !== null ? { identifier } : {},
|
|
7602
8113
|
priority: frontmatter.priority,
|
|
7603
8114
|
engine,
|
|
7604
8115
|
provider,
|
|
@@ -7608,7 +8119,6 @@ async function createTask(content, userId, options) {
|
|
|
7608
8119
|
depends_on: dependsOn.length ? dependsOn : null,
|
|
7609
8120
|
created_by: createdBy,
|
|
7610
8121
|
user_id: userId,
|
|
7611
|
-
// Working set fields
|
|
7612
8122
|
current_plan: options?.currentPlan || null,
|
|
7613
8123
|
open_blockers: options?.openBlockers || [],
|
|
7614
8124
|
next_action: options?.nextAction || null,
|
|
@@ -7626,6 +8136,7 @@ async function createTask(content, userId, options) {
|
|
|
7626
8136
|
next_action,
|
|
7627
8137
|
version,
|
|
7628
8138
|
depends_on,
|
|
8139
|
+
identifier: _identifier,
|
|
7629
8140
|
...fallbackPayload
|
|
7630
8141
|
} = insertPayload;
|
|
7631
8142
|
({ data, error } = await db2.from("tasks").insert(fallbackPayload).select().single());
|
|
@@ -7692,7 +8203,6 @@ async function updateTask(id, content, userId, options) {
|
|
|
7692
8203
|
swarm_models: options?.swarmModels ?? void 0,
|
|
7693
8204
|
...shouldUpdateDepends ? { depends_on: dependsOnForUpdate.length ? dependsOnForUpdate : null } : {},
|
|
7694
8205
|
updated_at: (/* @__PURE__ */ new Date()).toISOString(),
|
|
7695
|
-
// Working set fields
|
|
7696
8206
|
current_plan: options?.currentPlan ?? void 0,
|
|
7697
8207
|
open_blockers: options?.openBlockers ?? void 0,
|
|
7698
8208
|
next_action: options?.nextAction ?? void 0
|
|
@@ -7705,14 +8215,8 @@ async function updateTask(id, content, userId, options) {
|
|
|
7705
8215
|
if (shouldUpdateDepends) {
|
|
7706
8216
|
await ensureNoCircularDependency(id, dependsOnForUpdate, db2);
|
|
7707
8217
|
}
|
|
7708
|
-
let query = db2.from("tasks").update({
|
|
7709
|
-
...updatePayload,
|
|
7710
|
-
version: db2.rpc("increment_version")
|
|
7711
|
-
// This will be used in the actual SQL via RPC or raw query if possible
|
|
7712
|
-
}).eq("id", id);
|
|
7713
|
-
if (userId) query = query.eq("user_id", userId);
|
|
7714
8218
|
if (options?.expectedVersion !== void 0) {
|
|
7715
|
-
|
|
8219
|
+
void options.expectedVersion;
|
|
7716
8220
|
}
|
|
7717
8221
|
let { data, error } = await db2.from("tasks").update({
|
|
7718
8222
|
...updatePayload
|
|
@@ -7805,213 +8309,20 @@ async function getNextQueuedTask(engine) {
|
|
|
7805
8309
|
}
|
|
7806
8310
|
return data;
|
|
7807
8311
|
}
|
|
7808
|
-
|
|
7809
|
-
|
|
7810
|
-
|
|
7811
|
-
|
|
7812
|
-
|
|
7813
|
-
|
|
7814
|
-
|
|
7815
|
-
|
|
7816
|
-
|
|
7817
|
-
|
|
7818
|
-
throw error;
|
|
7819
|
-
}
|
|
7820
|
-
const projects = data || [];
|
|
7821
|
-
return projects.map((project) => ({
|
|
7822
|
-
...project,
|
|
7823
|
-
repos: project.project_repos ?? []
|
|
7824
|
-
}));
|
|
7825
|
-
}
|
|
7826
|
-
async function getProjectBySlug(slug, userId) {
|
|
7827
|
-
const db2 = createAdminDbClient();
|
|
7828
|
-
let query = db2.from("projects").select("*").eq("slug", slug);
|
|
7829
|
-
if (userId) query = query.eq("user_id", userId);
|
|
7830
|
-
const { data, error } = await query.maybeSingle();
|
|
7831
|
-
if (error) {
|
|
7832
|
-
if (isMissingRelationError2(error, "projects")) {
|
|
7833
|
-
return null;
|
|
7834
|
-
}
|
|
7835
|
-
throw error;
|
|
7836
|
-
}
|
|
7837
|
-
return data || null;
|
|
7838
|
-
}
|
|
7839
|
-
async function getProjectRepos(projectId) {
|
|
7840
|
-
const db2 = createAdminDbClient();
|
|
7841
|
-
const { data, error } = await db2.from("project_repos").select("*").eq("project_id", projectId);
|
|
7842
|
-
if (error) {
|
|
7843
|
-
if (isMissingRelationError2(error, "project_repos")) {
|
|
7844
|
-
return [];
|
|
7845
|
-
}
|
|
7846
|
-
throw error;
|
|
7847
|
-
}
|
|
7848
|
-
return data || [];
|
|
7849
|
-
}
|
|
7850
|
-
async function getProjectWithRepos(projectIdOrSlug, userId) {
|
|
7851
|
-
const db2 = createAdminDbClient();
|
|
7852
|
-
const isUuid = UUID_REGEX.test(projectIdOrSlug);
|
|
7853
|
-
let projectQuery = db2.from("projects").select("*");
|
|
7854
|
-
if (isUuid) {
|
|
7855
|
-
projectQuery = projectQuery.eq("id", projectIdOrSlug);
|
|
7856
|
-
} else {
|
|
7857
|
-
projectQuery = projectQuery.eq("slug", projectIdOrSlug);
|
|
7858
|
-
}
|
|
7859
|
-
if (userId) projectQuery = projectQuery.eq("user_id", userId);
|
|
7860
|
-
const projectResult = await projectQuery.maybeSingle();
|
|
7861
|
-
if (projectResult.error) {
|
|
7862
|
-
if (isMissingRelationError2(projectResult.error, "projects")) {
|
|
7863
|
-
return null;
|
|
7864
|
-
}
|
|
7865
|
-
throw projectResult.error;
|
|
7866
|
-
}
|
|
7867
|
-
const project = projectResult.data;
|
|
7868
|
-
if (!project) return null;
|
|
7869
|
-
const repos = await getProjectRepos(project.id);
|
|
7870
|
-
return { ...project, repos };
|
|
7871
|
-
}
|
|
7872
|
-
async function insertProjectRepos(projectId, repos, db2) {
|
|
7873
|
-
if (!repos.length) {
|
|
7874
|
-
return [];
|
|
7875
|
-
}
|
|
7876
|
-
const payload = repos.map((repo) => ({
|
|
7877
|
-
...repo.id ? { id: repo.id } : {},
|
|
7878
|
-
project_id: projectId,
|
|
7879
|
-
name: repo.name,
|
|
7880
|
-
path: repo.path ?? null,
|
|
7881
|
-
git_url: repo.git_url ?? null,
|
|
7882
|
-
notes: repo.notes ?? null
|
|
7883
|
-
}));
|
|
7884
|
-
const { data, error } = await db2.from("project_repos").insert(payload).select("*");
|
|
7885
|
-
if (error) {
|
|
7886
|
-
if (isMissingRelationError2(error, "project_repos")) {
|
|
7887
|
-
return [];
|
|
7888
|
-
}
|
|
7889
|
-
throw error;
|
|
7890
|
-
}
|
|
7891
|
-
return data || [];
|
|
7892
|
-
}
|
|
7893
|
-
async function createProject(userId, input, dbClient) {
|
|
7894
|
-
if (!input.name?.trim()) {
|
|
7895
|
-
throw new Error("Project name is required");
|
|
7896
|
-
}
|
|
7897
|
-
const db2 = getDbClient(dbClient);
|
|
7898
|
-
const baseSlug = input.name.trim() || "project";
|
|
7899
|
-
const slug = await generateUniqueProjectSlug(baseSlug, userId, db2);
|
|
7900
|
-
const payload = {
|
|
7901
|
-
user_id: userId,
|
|
7902
|
-
name: input.name.trim(),
|
|
7903
|
-
slug,
|
|
7904
|
-
description: input.description ?? null,
|
|
7905
|
-
workflow_id: input.workflow_id ?? null
|
|
7906
|
-
};
|
|
7907
|
-
const { data: project, error } = await db2.from("projects").insert(payload).select("*").single();
|
|
7908
|
-
if (error) throw error;
|
|
7909
|
-
const repos = await insertProjectRepos(project.id, input.repos ?? [], db2);
|
|
7910
|
-
return { ...project, repos };
|
|
7911
|
-
}
|
|
7912
|
-
async function updateProject(projectIdOrSlug, userId, updates, dbClient) {
|
|
7913
|
-
const db2 = getDbClient(dbClient);
|
|
7914
|
-
const isUuid = UUID_REGEX.test(projectIdOrSlug);
|
|
7915
|
-
let projectId = projectIdOrSlug;
|
|
7916
|
-
if (!isUuid) {
|
|
7917
|
-
const project = await getProjectBySlug(projectIdOrSlug, userId);
|
|
7918
|
-
if (!project) return null;
|
|
7919
|
-
projectId = project.id;
|
|
7920
|
-
}
|
|
7921
|
-
const updatePayload = {};
|
|
7922
|
-
if (typeof updates.name !== "undefined") {
|
|
7923
|
-
const trimmedName = updates.name?.trim();
|
|
7924
|
-
if (!trimmedName) {
|
|
7925
|
-
throw new Error("Project name cannot be empty");
|
|
7926
|
-
}
|
|
7927
|
-
updatePayload.name = trimmedName;
|
|
7928
|
-
}
|
|
7929
|
-
if (typeof updates.slug !== "undefined") {
|
|
7930
|
-
const trimmedSlug = updates.slug?.trim();
|
|
7931
|
-
if (trimmedSlug) {
|
|
7932
|
-
updatePayload.slug = trimmedSlug;
|
|
7933
|
-
}
|
|
7934
|
-
}
|
|
7935
|
-
if (typeof updates.description !== "undefined") updatePayload.description = updates.description;
|
|
7936
|
-
if (typeof updates.metadata !== "undefined") updatePayload.metadata = updates.metadata;
|
|
7937
|
-
if (typeof updates.ci_cd_info !== "undefined") updatePayload.ci_cd_info = updates.ci_cd_info;
|
|
7938
|
-
if (typeof updates.workflow_id !== "undefined") updatePayload.workflow_id = updates.workflow_id;
|
|
7939
|
-
if (Object.keys(updatePayload).length) {
|
|
7940
|
-
const { error } = await db2.from("projects").update(updatePayload).eq("id", projectId).eq("user_id", userId);
|
|
7941
|
-
if (error) throw error;
|
|
7942
|
-
}
|
|
7943
|
-
if (updates.repos) {
|
|
7944
|
-
const { data: existingRepos, error: existingReposError } = await db2.from("project_repos").select("*").eq("project_id", projectId);
|
|
7945
|
-
if (existingReposError && !isMissingRelationError2(existingReposError, "project_repos")) {
|
|
7946
|
-
throw existingReposError;
|
|
7947
|
-
}
|
|
7948
|
-
const existingRepoList = existingRepos || [];
|
|
7949
|
-
const existingRepoIds = new Set(existingRepoList.map((repo) => repo.id));
|
|
7950
|
-
const nextRepoIds = new Set(
|
|
7951
|
-
updates.repos.map((repo) => repo.id).filter((repoId) => Boolean(repoId))
|
|
7952
|
-
);
|
|
7953
|
-
for (const existingRepo of existingRepoList) {
|
|
7954
|
-
if (nextRepoIds.has(existingRepo.id)) continue;
|
|
7955
|
-
const { error: deleteError } = await db2.from("project_repos").delete().eq("id", existingRepo.id).eq("project_id", projectId);
|
|
7956
|
-
if (deleteError && !isMissingRelationError2(deleteError, "project_repos")) {
|
|
7957
|
-
throw deleteError;
|
|
7958
|
-
}
|
|
7959
|
-
}
|
|
7960
|
-
for (const repo of updates.repos) {
|
|
7961
|
-
const payload = {
|
|
7962
|
-
name: repo.name,
|
|
7963
|
-
path: repo.path ?? null,
|
|
7964
|
-
git_url: repo.git_url ?? null,
|
|
7965
|
-
notes: repo.notes ?? null,
|
|
7966
|
-
project_id: projectId
|
|
7967
|
-
};
|
|
7968
|
-
if (repo.id && existingRepoIds.has(repo.id)) {
|
|
7969
|
-
const { error: repoUpdateError } = await db2.from("project_repos").update(payload).eq("id", repo.id).eq("project_id", projectId);
|
|
7970
|
-
if (repoUpdateError && !isMissingRelationError2(repoUpdateError, "project_repos")) {
|
|
7971
|
-
throw repoUpdateError;
|
|
7972
|
-
}
|
|
7973
|
-
continue;
|
|
7974
|
-
}
|
|
7975
|
-
const { error: repoInsertError } = await db2.from("project_repos").insert({
|
|
7976
|
-
...repo.id ? { id: repo.id } : {},
|
|
7977
|
-
...payload
|
|
7978
|
-
});
|
|
7979
|
-
if (repoInsertError && !isMissingRelationError2(repoInsertError, "project_repos")) {
|
|
7980
|
-
throw repoInsertError;
|
|
7981
|
-
}
|
|
7982
|
-
}
|
|
7983
|
-
}
|
|
7984
|
-
return getProjectWithRepos(projectId, userId);
|
|
7985
|
-
}
|
|
7986
|
-
async function deleteProject(projectId, userId, dbClient) {
|
|
7987
|
-
const db2 = getDbClient(dbClient);
|
|
7988
|
-
const { error } = await db2.from("projects").update({ archived_at: (/* @__PURE__ */ new Date()).toISOString() }).eq("id", projectId).eq("user_id", userId);
|
|
7989
|
-
if (error) throw error;
|
|
7990
|
-
}
|
|
7991
|
-
async function assignOrphanTasksToProject(projectId, userId, dbClient) {
|
|
7992
|
-
const db2 = getDbClient(dbClient);
|
|
7993
|
-
const project = await getProjectWithRepos(projectId, userId);
|
|
7994
|
-
if (!project) {
|
|
7995
|
-
throw new Error("Project not found");
|
|
7996
|
-
}
|
|
7997
|
-
const { data: tasks, error: tasksError } = await db2.from("tasks").select("id, project").eq("user_id", userId).is("project_id", null);
|
|
7998
|
-
if (tasksError) throw tasksError;
|
|
7999
|
-
const slug = String(project.slug || "").trim().toLowerCase();
|
|
8000
|
-
const orphanTaskIds = (tasks || []).filter((task) => {
|
|
8001
|
-
const projectValue = String(task.project || "").trim().toLowerCase();
|
|
8002
|
-
return !projectValue || projectValue === "none" || projectValue === slug;
|
|
8003
|
-
}).map((task) => task.id);
|
|
8004
|
-
if (!orphanTaskIds.length) {
|
|
8005
|
-
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();
|
|
8006
8322
|
}
|
|
8007
|
-
|
|
8008
|
-
|
|
8009
|
-
|
|
8010
|
-
updated_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
8011
|
-
}).eq("user_id", userId).is("project_id", null).in("id", orphanTaskIds);
|
|
8012
|
-
if (updateError) throw updateError;
|
|
8013
|
-
return { updatedCount: orphanTaskIds.length, taskIds: orphanTaskIds };
|
|
8014
|
-
}
|
|
8323
|
+
});
|
|
8324
|
+
|
|
8325
|
+
// apps/local/lib/db/workflows.ts
|
|
8015
8326
|
async function ensureDefaultWorkflowGraphExists(userId) {
|
|
8016
8327
|
const db2 = createAdminDbClient();
|
|
8017
8328
|
const ownerId = userId || DEFAULT_SYSTEM_USER_ID;
|
|
@@ -8039,9 +8350,7 @@ async function ensureDefaultWorkflowGraphExists(userId) {
|
|
|
8039
8350
|
{
|
|
8040
8351
|
workflow_id: DEFAULT_SDLC_WORKFLOW_ID,
|
|
8041
8352
|
from_node_id: "00000000-0000-0000-0001-000000000001",
|
|
8042
|
-
// INTAKE
|
|
8043
8353
|
to_node_id: "00000000-0000-0000-0001-000000000002",
|
|
8044
|
-
// PROGRESS
|
|
8045
8354
|
condition: "done",
|
|
8046
8355
|
priority: 0,
|
|
8047
8356
|
metadata: {}
|
|
@@ -8049,9 +8358,7 @@ async function ensureDefaultWorkflowGraphExists(userId) {
|
|
|
8049
8358
|
{
|
|
8050
8359
|
workflow_id: DEFAULT_SDLC_WORKFLOW_ID,
|
|
8051
8360
|
from_node_id: "00000000-0000-0000-0001-000000000002",
|
|
8052
|
-
// PROGRESS
|
|
8053
8361
|
to_node_id: "00000000-0000-0000-0001-000000000003",
|
|
8054
|
-
// DONE
|
|
8055
8362
|
condition: "done",
|
|
8056
8363
|
priority: 0,
|
|
8057
8364
|
metadata: {}
|
|
@@ -8065,7 +8372,7 @@ async function getWorkflows(userId) {
|
|
|
8065
8372
|
const db2 = createAdminDbClient();
|
|
8066
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 });
|
|
8067
8374
|
if (error) {
|
|
8068
|
-
if (
|
|
8375
|
+
if (isMissingRelationError(error, "workflows")) return [];
|
|
8069
8376
|
throw error;
|
|
8070
8377
|
}
|
|
8071
8378
|
return data || [];
|
|
@@ -8073,17 +8380,17 @@ async function getWorkflows(userId) {
|
|
|
8073
8380
|
async function getWorkflow(id, userId) {
|
|
8074
8381
|
const db2 = createAdminDbClient();
|
|
8075
8382
|
let query = db2.from("workflows").select("*").eq("id", id);
|
|
8076
|
-
|
|
8077
|
-
}
|
|
8383
|
+
void userId;
|
|
8078
8384
|
const { data, error } = await query.maybeSingle();
|
|
8079
8385
|
if (error) {
|
|
8080
|
-
if (
|
|
8386
|
+
if (isMissingRelationError(error, "workflows")) return null;
|
|
8081
8387
|
throw error;
|
|
8082
8388
|
}
|
|
8083
8389
|
return data;
|
|
8084
8390
|
}
|
|
8085
8391
|
async function updateWorkflow(id, userId, updates) {
|
|
8086
8392
|
const db2 = createAdminDbClient();
|
|
8393
|
+
void userId;
|
|
8087
8394
|
const payload = { updated_at: (/* @__PURE__ */ new Date()).toISOString() };
|
|
8088
8395
|
if (updates.definition !== void 0) payload.definition = updates.definition;
|
|
8089
8396
|
if (updates.name !== void 0) payload.name = updates.name;
|
|
@@ -8096,7 +8403,7 @@ async function getWorkflowNodes(workflowId) {
|
|
|
8096
8403
|
const db2 = createAdminDbClient();
|
|
8097
8404
|
const { data, error } = await db2.from("workflow_nodes").select("*").eq("workflow_id", workflowId).order("position", { ascending: true });
|
|
8098
8405
|
if (error) {
|
|
8099
|
-
if (
|
|
8406
|
+
if (isMissingRelationError(error, "workflow_nodes")) return [];
|
|
8100
8407
|
throw error;
|
|
8101
8408
|
}
|
|
8102
8409
|
return data || [];
|
|
@@ -8149,7 +8456,7 @@ async function getWorkflowNodeByName(workflowId, name) {
|
|
|
8149
8456
|
const db2 = createAdminDbClient();
|
|
8150
8457
|
const { data, error } = await db2.from("workflow_nodes").select("*").eq("workflow_id", workflowId).eq("name", name).maybeSingle();
|
|
8151
8458
|
if (error) {
|
|
8152
|
-
if (
|
|
8459
|
+
if (isMissingRelationError(error, "workflow_nodes")) return null;
|
|
8153
8460
|
throw error;
|
|
8154
8461
|
}
|
|
8155
8462
|
return data;
|
|
@@ -8158,7 +8465,7 @@ async function getWorkflowTransitions(workflowId) {
|
|
|
8158
8465
|
const db2 = createAdminDbClient();
|
|
8159
8466
|
const { data, error } = await db2.from("workflow_transitions").select("*").eq("workflow_id", workflowId).order("priority", { ascending: true });
|
|
8160
8467
|
if (error) {
|
|
8161
|
-
if (
|
|
8468
|
+
if (isMissingRelationError(error, "workflow_transitions")) return [];
|
|
8162
8469
|
throw error;
|
|
8163
8470
|
}
|
|
8164
8471
|
return data || [];
|
|
@@ -8167,7 +8474,7 @@ async function getWorkflowTransitionsFromNode(workflowId, fromNodeId) {
|
|
|
8167
8474
|
const db2 = createAdminDbClient();
|
|
8168
8475
|
const { data, error } = await db2.from("workflow_transitions").select("*").eq("workflow_id", workflowId).eq("from_node_id", fromNodeId).order("priority", { ascending: true });
|
|
8169
8476
|
if (error) {
|
|
8170
|
-
if (
|
|
8477
|
+
if (isMissingRelationError(error, "workflow_transitions")) return [];
|
|
8171
8478
|
throw error;
|
|
8172
8479
|
}
|
|
8173
8480
|
return data || [];
|
|
@@ -8184,6 +8491,115 @@ async function getWorkflowWithGraph(id, userId) {
|
|
|
8184
8491
|
function getDefaultWorkflowId() {
|
|
8185
8492
|
return DEFAULT_SDLC_WORKFLOW_ID;
|
|
8186
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
|
|
8187
8603
|
async function getTaskLogs(taskId, options = {}) {
|
|
8188
8604
|
const db2 = createAdminDbClient();
|
|
8189
8605
|
const limit = Math.max(1, Math.min(2e3, Number(options.limit ?? options.tail ?? 500)));
|
|
@@ -8214,6 +8630,14 @@ async function addTaskLog(taskId, content, logType, nodeId) {
|
|
|
8214
8630
|
if (error) throw error;
|
|
8215
8631
|
return data;
|
|
8216
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
|
|
8217
8641
|
function normalizeTokenCount(value) {
|
|
8218
8642
|
const parsed = Number(value ?? 0);
|
|
8219
8643
|
if (!Number.isFinite(parsed)) return 0;
|
|
@@ -8283,6 +8707,14 @@ async function getTaskCostSummary(taskId) {
|
|
|
8283
8707
|
const entries = await getTaskCostEntries(taskId);
|
|
8284
8708
|
return summarizeTaskCosts(entries);
|
|
8285
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
|
|
8286
8718
|
async function getTaskComments(taskId) {
|
|
8287
8719
|
const db2 = createAdminDbClient();
|
|
8288
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 });
|
|
@@ -8306,6 +8738,14 @@ async function deleteTaskComment(commentId, userId) {
|
|
|
8306
8738
|
const { error } = await db2.from("task_comments").update({ deleted_at: (/* @__PURE__ */ new Date()).toISOString() }).eq("id", commentId).is("deleted_at", null);
|
|
8307
8739
|
if (error) throw error;
|
|
8308
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
|
|
8309
8749
|
async function getLearnings(scope, scopeId, userId) {
|
|
8310
8750
|
if (scope !== "task") {
|
|
8311
8751
|
return vaultStore.getLearnings(scope, scopeId);
|
|
@@ -8343,61 +8783,21 @@ async function deleteLearning(id, userId) {
|
|
|
8343
8783
|
const { error } = await query;
|
|
8344
8784
|
if (error) throw error;
|
|
8345
8785
|
}
|
|
8346
|
-
|
|
8347
|
-
|
|
8348
|
-
|
|
8349
|
-
|
|
8350
|
-
|
|
8351
|
-
|
|
8352
|
-
query = query.eq("is_default", true);
|
|
8353
|
-
}
|
|
8354
|
-
const { data, error } = await query;
|
|
8355
|
-
if (error) throw error;
|
|
8356
|
-
return data || [];
|
|
8357
|
-
}
|
|
8358
|
-
async function getStagePrompt(stage, userId, workflowId) {
|
|
8359
|
-
const db2 = createAdminDbClient();
|
|
8360
|
-
if (userId) {
|
|
8361
|
-
const { data: userPrompt } = await db2.from("stage_prompts").select("*").eq("workflow_id", workflowId).eq("stage", stage).eq("user_id", userId).single();
|
|
8362
|
-
if (userPrompt) return userPrompt;
|
|
8363
|
-
}
|
|
8364
|
-
const { data: defaultPrompt } = await db2.from("stage_prompts").select("*").eq("workflow_id", workflowId).eq("stage", stage).eq("is_default", true).single();
|
|
8365
|
-
return defaultPrompt || null;
|
|
8366
|
-
}
|
|
8367
|
-
async function upsertStagePrompt(stage, prompt, outputs = [], userId, modelConfig, workflowId) {
|
|
8368
|
-
const db2 = createAdminDbClient();
|
|
8369
|
-
const payload = {
|
|
8370
|
-
stage,
|
|
8371
|
-
prompt,
|
|
8372
|
-
outputs,
|
|
8373
|
-
user_id: userId,
|
|
8374
|
-
is_default: !userId,
|
|
8375
|
-
workflow_id: workflowId
|
|
8376
|
-
};
|
|
8377
|
-
if (modelConfig) {
|
|
8378
|
-
if (modelConfig.swarm !== void 0) payload.swarm = modelConfig.swarm;
|
|
8379
|
-
if (modelConfig.provider !== void 0) payload.provider = modelConfig.provider;
|
|
8380
|
-
if (modelConfig.model !== void 0) payload.model = modelConfig.model;
|
|
8381
|
-
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();
|
|
8382
8792
|
}
|
|
8383
|
-
|
|
8384
|
-
|
|
8385
|
-
|
|
8386
|
-
if (error) throw error;
|
|
8387
|
-
return data;
|
|
8388
|
-
}
|
|
8389
|
-
async function deleteStagePrompt(id, userId) {
|
|
8390
|
-
const db2 = createAdminDbClient();
|
|
8391
|
-
let query = db2.from("stage_prompts").delete().eq("id", id);
|
|
8392
|
-
if (userId) query = query.eq("user_id", userId);
|
|
8393
|
-
const { error } = await query;
|
|
8394
|
-
if (error) throw error;
|
|
8395
|
-
}
|
|
8793
|
+
});
|
|
8794
|
+
|
|
8795
|
+
// apps/local/lib/db/agents.ts
|
|
8396
8796
|
async function getAgents(userId) {
|
|
8397
8797
|
const db2 = createAdminDbClient();
|
|
8398
8798
|
const { data, error } = await db2.from("agents").select("*").eq("user_id", userId).order("created_at", { ascending: false });
|
|
8399
8799
|
if (error) {
|
|
8400
|
-
if (
|
|
8800
|
+
if (isMissingRelationError(error, "agents")) return [];
|
|
8401
8801
|
throw error;
|
|
8402
8802
|
}
|
|
8403
8803
|
return data || [];
|
|
@@ -8406,7 +8806,7 @@ async function getAgent(id, userId) {
|
|
|
8406
8806
|
const db2 = createAdminDbClient();
|
|
8407
8807
|
const { data, error } = await db2.from("agents").select("*").eq("id", id).eq("user_id", userId).maybeSingle();
|
|
8408
8808
|
if (error) {
|
|
8409
|
-
if (error.code === "PGRST116" ||
|
|
8809
|
+
if (error.code === "PGRST116" || isMissingRelationError(error, "agents")) return null;
|
|
8410
8810
|
throw error;
|
|
8411
8811
|
}
|
|
8412
8812
|
return data;
|
|
@@ -8415,7 +8815,7 @@ async function getAgentSkills(agentId) {
|
|
|
8415
8815
|
const db2 = createAdminDbClient();
|
|
8416
8816
|
const { data, error } = await db2.from("agent_skills").select("*").eq("agent_id", agentId).order("created_at", { ascending: true });
|
|
8417
8817
|
if (error) {
|
|
8418
|
-
if (
|
|
8818
|
+
if (isMissingRelationError(error, "agent_skills")) return [];
|
|
8419
8819
|
throw error;
|
|
8420
8820
|
}
|
|
8421
8821
|
return data || [];
|
|
@@ -8436,19 +8836,19 @@ async function setAgentSkills(agentId, skills) {
|
|
|
8436
8836
|
for (const skill of existing) {
|
|
8437
8837
|
if (!normalized.has(skill.file)) {
|
|
8438
8838
|
const { error } = await db2.from("agent_skills").delete().eq("agent_id", agentId).eq("file", skill.file);
|
|
8439
|
-
if (error && !
|
|
8839
|
+
if (error && !isMissingRelationError(error, "agent_skills")) throw error;
|
|
8440
8840
|
}
|
|
8441
8841
|
}
|
|
8442
8842
|
for (const entry of normalized.values()) {
|
|
8443
8843
|
const existingSkill = existing.find((skill) => skill.file === entry.file);
|
|
8444
8844
|
if (!existingSkill) {
|
|
8445
8845
|
const { error } = await db2.from("agent_skills").insert(entry);
|
|
8446
|
-
if (error && !
|
|
8846
|
+
if (error && !isMissingRelationError(error, "agent_skills")) throw error;
|
|
8447
8847
|
continue;
|
|
8448
8848
|
}
|
|
8449
8849
|
if ((existingSkill.condition ?? null) !== entry.condition) {
|
|
8450
8850
|
const { error } = await db2.from("agent_skills").update({ condition: entry.condition }).eq("agent_id", agentId).eq("file", entry.file);
|
|
8451
|
-
if (error && !
|
|
8851
|
+
if (error && !isMissingRelationError(error, "agent_skills")) throw error;
|
|
8452
8852
|
}
|
|
8453
8853
|
}
|
|
8454
8854
|
return getAgentSkills(agentId);
|
|
@@ -8470,7 +8870,7 @@ async function createAgent(userId, input) {
|
|
|
8470
8870
|
if (input.color !== void 0) payload.color = input.color;
|
|
8471
8871
|
const { data, error } = await db2.from("agents").insert(payload).select().single();
|
|
8472
8872
|
if (error) {
|
|
8473
|
-
if (
|
|
8873
|
+
if (isMissingRelationError(error, "agents")) {
|
|
8474
8874
|
throw new Error("Agents table does not exist");
|
|
8475
8875
|
}
|
|
8476
8876
|
throw error;
|
|
@@ -8494,7 +8894,7 @@ async function updateAgent(id, userId, input) {
|
|
|
8494
8894
|
}
|
|
8495
8895
|
const { data, error } = await db2.from("agents").update(updatePayload).eq("id", id).eq("user_id", userId).select().single();
|
|
8496
8896
|
if (error) {
|
|
8497
|
-
if (error.code === "PGRST116" ||
|
|
8897
|
+
if (error.code === "PGRST116" || isMissingRelationError(error, "agents")) return null;
|
|
8498
8898
|
throw error;
|
|
8499
8899
|
}
|
|
8500
8900
|
return data;
|
|
@@ -8503,47 +8903,25 @@ async function deleteAgent(id, userId) {
|
|
|
8503
8903
|
const db2 = createAdminDbClient();
|
|
8504
8904
|
const { error } = await db2.from("agents").delete().eq("id", id).eq("user_id", userId);
|
|
8505
8905
|
if (error) {
|
|
8506
|
-
if (!
|
|
8906
|
+
if (!isMissingRelationError(error, "agents")) {
|
|
8507
8907
|
throw error;
|
|
8508
8908
|
}
|
|
8509
8909
|
}
|
|
8510
8910
|
}
|
|
8511
|
-
|
|
8512
|
-
|
|
8513
|
-
|
|
8514
|
-
|
|
8515
|
-
|
|
8516
|
-
throw error;
|
|
8517
|
-
}
|
|
8518
|
-
return data || [];
|
|
8519
|
-
}
|
|
8520
|
-
async function addProjectAgent(projectId, agentId, routingOrder) {
|
|
8521
|
-
const db2 = createAdminDbClient();
|
|
8522
|
-
if (routingOrder === void 0) {
|
|
8523
|
-
const { data: existing } = await db2.from("project_agents").select("routing_order").eq("project_id", projectId).order("routing_order", { ascending: false }).limit(1);
|
|
8524
|
-
routingOrder = (existing?.[0]?.routing_order ?? -1) + 1;
|
|
8525
|
-
}
|
|
8526
|
-
const { data, error } = await db2.from("project_agents").upsert({ project_id: projectId, agent_id: agentId, routing_order: routingOrder }).select().single();
|
|
8527
|
-
if (error) throw error;
|
|
8528
|
-
return data;
|
|
8529
|
-
}
|
|
8530
|
-
async function removeProjectAgent(projectId, agentId) {
|
|
8531
|
-
const db2 = createAdminDbClient();
|
|
8532
|
-
const { error } = await db2.from("project_agents").delete().eq("project_id", projectId).eq("agent_id", agentId);
|
|
8533
|
-
if (error) throw error;
|
|
8534
|
-
}
|
|
8535
|
-
async function reorderProjectAgents(projectId, orderedAgentIds) {
|
|
8536
|
-
const db2 = createAdminDbClient();
|
|
8537
|
-
for (let i = 0; i < orderedAgentIds.length; i++) {
|
|
8538
|
-
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();
|
|
8539
8916
|
}
|
|
8540
|
-
|
|
8541
|
-
|
|
8917
|
+
});
|
|
8918
|
+
|
|
8919
|
+
// apps/local/lib/db/teams.ts
|
|
8542
8920
|
async function getTeams(projectId) {
|
|
8543
8921
|
const db2 = createAdminDbClient();
|
|
8544
8922
|
const { data, error } = await db2.from("teams").select("*").eq("project_id", projectId).order("created_at", { ascending: true });
|
|
8545
8923
|
if (error) {
|
|
8546
|
-
if (
|
|
8924
|
+
if (isMissingRelationError(error, "teams")) return [];
|
|
8547
8925
|
throw error;
|
|
8548
8926
|
}
|
|
8549
8927
|
return (data || []).map((row) => ({
|
|
@@ -8555,7 +8933,7 @@ async function getTeam(teamId) {
|
|
|
8555
8933
|
const db2 = createAdminDbClient();
|
|
8556
8934
|
const { data, error } = await db2.from("teams").select("*").eq("id", teamId).limit(1).single();
|
|
8557
8935
|
if (error) {
|
|
8558
|
-
if (error.code === "PGRST116" ||
|
|
8936
|
+
if (error.code === "PGRST116" || isMissingRelationError(error, "teams")) return null;
|
|
8559
8937
|
throw error;
|
|
8560
8938
|
}
|
|
8561
8939
|
if (!data) return null;
|
|
@@ -8566,7 +8944,7 @@ async function getTeam(teamId) {
|
|
|
8566
8944
|
}
|
|
8567
8945
|
async function createTeam(projectId, name, templateId, metadata) {
|
|
8568
8946
|
const db2 = createAdminDbClient();
|
|
8569
|
-
const id = (0,
|
|
8947
|
+
const id = (0, import_crypto3.randomUUID)();
|
|
8570
8948
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
8571
8949
|
const { data, error } = await db2.from("teams").insert({
|
|
8572
8950
|
id,
|
|
@@ -8607,7 +8985,7 @@ async function getTeamAgents(teamId) {
|
|
|
8607
8985
|
const db2 = createAdminDbClient();
|
|
8608
8986
|
const { data, error } = await db2.from("team_agents").select("*").eq("team_id", teamId).order("routing_order", { ascending: true });
|
|
8609
8987
|
if (error) {
|
|
8610
|
-
if (
|
|
8988
|
+
if (isMissingRelationError(error, "team_agents")) return [];
|
|
8611
8989
|
throw error;
|
|
8612
8990
|
}
|
|
8613
8991
|
return data || [];
|
|
@@ -8627,90 +9005,17 @@ async function removeTeamAgent(teamId, agentId) {
|
|
|
8627
9005
|
const { error } = await db2.from("team_agents").delete().eq("team_id", teamId).eq("agent_id", agentId);
|
|
8628
9006
|
if (error) throw error;
|
|
8629
9007
|
}
|
|
8630
|
-
|
|
8631
|
-
|
|
8632
|
-
|
|
8633
|
-
|
|
8634
|
-
|
|
8635
|
-
|
|
8636
|
-
|
|
8637
|
-
return data || [];
|
|
8638
|
-
}
|
|
8639
|
-
async function addProjectSkill(projectId, file, condition) {
|
|
8640
|
-
const db2 = createAdminDbClient();
|
|
8641
|
-
const { data, error } = await db2.from("project_skills").insert({ project_id: projectId, file, condition: condition ?? null }).select().single();
|
|
8642
|
-
if (error) throw error;
|
|
8643
|
-
return data;
|
|
8644
|
-
}
|
|
8645
|
-
async function removeProjectSkill(skillId) {
|
|
8646
|
-
const db2 = createAdminDbClient();
|
|
8647
|
-
const { error } = await db2.from("project_skills").delete().eq("id", skillId);
|
|
8648
|
-
if (error) throw error;
|
|
8649
|
-
}
|
|
8650
|
-
async function getProjectVariables(projectId) {
|
|
8651
|
-
const db2 = createAdminDbClient();
|
|
8652
|
-
const { data, error } = await db2.from("project_variables").select("*").eq("project_id", projectId);
|
|
8653
|
-
if (error) {
|
|
8654
|
-
if (isMissingRelationError2(error, "project_variables")) return [];
|
|
8655
|
-
throw error;
|
|
8656
|
-
}
|
|
8657
|
-
return data || [];
|
|
8658
|
-
}
|
|
8659
|
-
async function setProjectVariable(projectId, key, value) {
|
|
8660
|
-
const db2 = createAdminDbClient();
|
|
8661
|
-
const { data, error } = await db2.from("project_variables").upsert({ project_id: projectId, key, value }).select().single();
|
|
8662
|
-
if (error) throw error;
|
|
8663
|
-
return data;
|
|
8664
|
-
}
|
|
8665
|
-
async function deleteProjectVariable(projectId, key) {
|
|
8666
|
-
const db2 = createAdminDbClient();
|
|
8667
|
-
const { error } = await db2.from("project_variables").delete().eq("project_id", projectId).eq("key", key);
|
|
8668
|
-
if (error) throw error;
|
|
8669
|
-
}
|
|
8670
|
-
async function getProjectMemory(projectId, producer) {
|
|
8671
|
-
void producer;
|
|
8672
|
-
return vaultStore.getProjectMemory(projectId);
|
|
8673
|
-
}
|
|
8674
|
-
async function addProjectMemory(projectId, content, source, producer = "human") {
|
|
8675
|
-
return vaultStore.addProjectMemory(projectId, content, source, producer);
|
|
8676
|
-
}
|
|
8677
|
-
async function deleteProjectMemory(memoryId) {
|
|
8678
|
-
vaultStore.deleteProjectMemory(memoryId);
|
|
8679
|
-
}
|
|
8680
|
-
async function getProjectThreads(projectId) {
|
|
8681
|
-
const db2 = createAdminDbClient();
|
|
8682
|
-
const { data, error } = await db2.from("project_threads").select("*").eq("project_id", projectId).order("created_at", { ascending: true });
|
|
8683
|
-
if (error) {
|
|
8684
|
-
if (isMissingRelationError2(error, "project_threads")) return [];
|
|
8685
|
-
throw error;
|
|
8686
|
-
}
|
|
8687
|
-
return data || [];
|
|
8688
|
-
}
|
|
8689
|
-
async function addProjectThread(projectId, threadId) {
|
|
8690
|
-
const db2 = createAdminDbClient();
|
|
8691
|
-
const { error } = await db2.from("project_threads").upsert(
|
|
8692
|
-
{ project_id: projectId, thread_id: threadId },
|
|
8693
|
-
{ onConflict: "project_id,thread_id", ignoreDuplicates: true }
|
|
8694
|
-
);
|
|
8695
|
-
if (error) throw error;
|
|
8696
|
-
const { data, error: fetchError } = await db2.from("project_threads").select("*").eq("project_id", projectId).eq("thread_id", threadId).single();
|
|
8697
|
-
if (fetchError) throw fetchError;
|
|
8698
|
-
return data;
|
|
8699
|
-
}
|
|
8700
|
-
async function removeProjectThread(projectId, threadId) {
|
|
8701
|
-
const db2 = createAdminDbClient();
|
|
8702
|
-
const { error } = await db2.from("project_threads").delete().eq("project_id", projectId).eq("thread_id", threadId);
|
|
8703
|
-
if (error) throw error;
|
|
8704
|
-
}
|
|
8705
|
-
async function getProjectForThread(threadId) {
|
|
8706
|
-
const db2 = createAdminDbClient();
|
|
8707
|
-
const { data, error } = await db2.from("project_threads").select("project_id").eq("thread_id", threadId).maybeSingle();
|
|
8708
|
-
if (error) {
|
|
8709
|
-
if (isMissingRelationError2(error, "project_threads")) return null;
|
|
8710
|
-
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();
|
|
8711
9015
|
}
|
|
8712
|
-
|
|
8713
|
-
|
|
9016
|
+
});
|
|
9017
|
+
|
|
9018
|
+
// apps/local/lib/db/resolution.ts
|
|
8714
9019
|
function resolveSkills(agentSkills, projectSkills) {
|
|
8715
9020
|
const result = [];
|
|
8716
9021
|
const agentFileNames = /* @__PURE__ */ new Set();
|
|
@@ -8742,6 +9047,7 @@ async function resolveVariables(projectId) {
|
|
|
8742
9047
|
return vars.map((v) => ({ key: v.key, value: v.value, source: "project" }));
|
|
8743
9048
|
}
|
|
8744
9049
|
async function buildExecutionProvenance(agentId, projectId, agentSkills, agentMemoryEntries) {
|
|
9050
|
+
void agentId;
|
|
8745
9051
|
const projectSkills = await getProjectSkills(projectId);
|
|
8746
9052
|
const projectMem = await getProjectMemory(projectId);
|
|
8747
9053
|
const variables = await resolveVariables(projectId);
|
|
@@ -8751,65 +9057,141 @@ async function buildExecutionProvenance(agentId, projectId, agentSkills, agentMe
|
|
|
8751
9057
|
variables
|
|
8752
9058
|
};
|
|
8753
9059
|
}
|
|
8754
|
-
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
|
|
8755
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({
|
|
8756
9192
|
"apps/local/lib/db.ts"() {
|
|
8757
9193
|
"use strict";
|
|
8758
|
-
|
|
8759
|
-
init_dependency_helpers();
|
|
8760
|
-
init_notifications();
|
|
8761
|
-
import_crypto = require("crypto");
|
|
8762
|
-
init_vault_store();
|
|
8763
|
-
UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
8764
|
-
DEFAULT_SDLC_WORKFLOW_ID = "00000000-0000-0000-0000-000000000001";
|
|
8765
|
-
DEFAULT_SYSTEM_USER_ID = "00000000-0000-0000-0000-000000000000";
|
|
8766
|
-
DEFAULT_WORKFLOW_NODE_SEED = [
|
|
8767
|
-
{
|
|
8768
|
-
id: "00000000-0000-0000-0001-000000000001",
|
|
8769
|
-
name: "INTAKE",
|
|
8770
|
-
label: "Intake",
|
|
8771
|
-
prompt: "New task. Triage, scope, and prepare for work.",
|
|
8772
|
-
position: 0,
|
|
8773
|
-
node_type: "step"
|
|
8774
|
-
},
|
|
8775
|
-
{
|
|
8776
|
-
id: "00000000-0000-0000-0001-000000000002",
|
|
8777
|
-
name: "PROGRESS",
|
|
8778
|
-
label: "Progress",
|
|
8779
|
-
prompt: "Task is actively being worked on.",
|
|
8780
|
-
position: 1,
|
|
8781
|
-
node_type: "step"
|
|
8782
|
-
},
|
|
8783
|
-
{
|
|
8784
|
-
id: "00000000-0000-0000-0001-000000000003",
|
|
8785
|
-
name: "DONE",
|
|
8786
|
-
label: "Done",
|
|
8787
|
-
prompt: "Task completed.",
|
|
8788
|
-
position: 2,
|
|
8789
|
-
node_type: "terminal"
|
|
8790
|
-
}
|
|
8791
|
-
];
|
|
8792
|
-
DEFAULT_WORKFLOW_NODE_SEED_BY_ID = new Map(
|
|
8793
|
-
DEFAULT_WORKFLOW_NODE_SEED.map((node) => [node.id, node])
|
|
8794
|
-
);
|
|
8795
|
-
defaultStagePrompts = {
|
|
8796
|
-
INTAKE: {
|
|
8797
|
-
prompt: "New task. Triage, scope, and prepare for work.",
|
|
8798
|
-
outputs: [],
|
|
8799
|
-
swarm: false
|
|
8800
|
-
},
|
|
8801
|
-
PROGRESS: {
|
|
8802
|
-
prompt: "Task is actively being worked on.",
|
|
8803
|
-
outputs: [],
|
|
8804
|
-
swarm: false
|
|
8805
|
-
},
|
|
8806
|
-
DONE: {
|
|
8807
|
-
prompt: "Task completed.",
|
|
8808
|
-
outputs: [],
|
|
8809
|
-
swarm: false
|
|
8810
|
-
}
|
|
8811
|
-
};
|
|
8812
|
-
DEFAULT_WORKFLOW_ID = "00000000-0000-0000-0000-000000000001";
|
|
9194
|
+
init_db();
|
|
8813
9195
|
}
|
|
8814
9196
|
});
|
|
8815
9197
|
|
|
@@ -8883,7 +9265,7 @@ var SQLiteAdapter;
|
|
|
8883
9265
|
var init_sqlite_adapter2 = __esm({
|
|
8884
9266
|
"apps/local/lib/adapters/sqlite-adapter.ts"() {
|
|
8885
9267
|
"use strict";
|
|
8886
|
-
|
|
9268
|
+
init_db2();
|
|
8887
9269
|
init_sqlite_query_adapter();
|
|
8888
9270
|
init_errors();
|
|
8889
9271
|
SQLiteAdapter = class {
|
|
@@ -9407,7 +9789,7 @@ async function resolveWorkflowTransition({
|
|
|
9407
9789
|
var DEFAULT_STAGE_SEQUENCE, STANDARD_STAGE_SEQUENCES;
|
|
9408
9790
|
var init_stage_machine = __esm({
|
|
9409
9791
|
"apps/local/lib/orchestration/stage-machine.ts"() {
|
|
9410
|
-
|
|
9792
|
+
init_db2();
|
|
9411
9793
|
DEFAULT_STAGE_SEQUENCE = [
|
|
9412
9794
|
"INTAKE",
|
|
9413
9795
|
"PROGRESS",
|
|
@@ -9647,11 +10029,15 @@ function providerNativeCommand({
|
|
|
9647
10029
|
prompt,
|
|
9648
10030
|
systemPrompt
|
|
9649
10031
|
}) {
|
|
10032
|
+
const homeDir = import_os10.default.homedir();
|
|
9650
10033
|
switch (provider) {
|
|
9651
10034
|
case "claude": {
|
|
9652
10035
|
const args = [
|
|
9653
10036
|
"-p",
|
|
9654
10037
|
prompt,
|
|
10038
|
+
"--dangerously-skip-permissions",
|
|
10039
|
+
"--add-dir",
|
|
10040
|
+
homeDir,
|
|
9655
10041
|
"--verbose",
|
|
9656
10042
|
"--output-format",
|
|
9657
10043
|
"stream-json",
|
|
@@ -9664,9 +10050,17 @@ function providerNativeCommand({
|
|
|
9664
10050
|
case "gemini":
|
|
9665
10051
|
return {
|
|
9666
10052
|
command: "gemini",
|
|
9667
|
-
args: [
|
|
9668
|
-
|
|
9669
|
-
|
|
10053
|
+
args: [
|
|
10054
|
+
"--yolo",
|
|
10055
|
+
"--include-directories",
|
|
10056
|
+
homeDir,
|
|
10057
|
+
"-p",
|
|
10058
|
+
systemPrompt ? `${systemPrompt}
|
|
10059
|
+
|
|
10060
|
+
${prompt}` : prompt,
|
|
10061
|
+
"-o",
|
|
10062
|
+
"stream-json"
|
|
10063
|
+
],
|
|
9670
10064
|
parser: "gemini-stream-json"
|
|
9671
10065
|
};
|
|
9672
10066
|
case "ollama":
|
|
@@ -9678,7 +10072,13 @@ ${prompt}` : prompt],
|
|
|
9678
10072
|
parser: "raw"
|
|
9679
10073
|
};
|
|
9680
10074
|
case "codex": {
|
|
9681
|
-
const codexArgs = [
|
|
10075
|
+
const codexArgs = [
|
|
10076
|
+
"exec",
|
|
10077
|
+
"--json",
|
|
10078
|
+
"--dangerously-bypass-approvals-and-sandbox",
|
|
10079
|
+
"--add-dir",
|
|
10080
|
+
homeDir
|
|
10081
|
+
];
|
|
9682
10082
|
if (model) codexArgs.push("--model", model);
|
|
9683
10083
|
codexArgs.push(systemPrompt ? `${systemPrompt}
|
|
9684
10084
|
|
|
@@ -9694,6 +10094,9 @@ ${prompt}` : prompt);
|
|
|
9694
10094
|
const zaiArgs = [
|
|
9695
10095
|
"-p",
|
|
9696
10096
|
prompt,
|
|
10097
|
+
"--dangerously-skip-permissions",
|
|
10098
|
+
"--add-dir",
|
|
10099
|
+
homeDir,
|
|
9697
10100
|
"--verbose",
|
|
9698
10101
|
"--output-format",
|
|
9699
10102
|
"stream-json",
|
|
@@ -9715,10 +10118,26 @@ ${prompt}` : prompt);
|
|
|
9715
10118
|
return null;
|
|
9716
10119
|
}
|
|
9717
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
|
+
}
|
|
9718
10134
|
function agxStreamingPassthrough(provider) {
|
|
9719
10135
|
switch (provider) {
|
|
9720
10136
|
case "claude":
|
|
9721
|
-
return {
|
|
10137
|
+
return {
|
|
10138
|
+
args: ["--verbose", "--output-format", "stream-json", "--include-partial-messages"],
|
|
10139
|
+
parser: "claude-stream-json"
|
|
10140
|
+
};
|
|
9722
10141
|
case "gemini":
|
|
9723
10142
|
return { args: ["-o", "stream-json"], parser: "gemini-stream-json" };
|
|
9724
10143
|
case "codex":
|
|
@@ -9736,7 +10155,7 @@ function agxCommandForProvider({
|
|
|
9736
10155
|
const args = [provider, "-y", "--print", "--prompt", prompt];
|
|
9737
10156
|
if (model) args.push("--model", model);
|
|
9738
10157
|
const streaming = agxStreamingPassthrough(provider);
|
|
9739
|
-
const allPassthrough = [...passthroughArgs || [], ...streaming.args];
|
|
10158
|
+
const allPassthrough = [...providerAccessPassthrough(provider), ...passthroughArgs || [], ...streaming.args];
|
|
9740
10159
|
if (allPassthrough.length > 0) {
|
|
9741
10160
|
args.push("--", ...allPassthrough);
|
|
9742
10161
|
}
|
|
@@ -9825,7 +10244,7 @@ function bundledAgxCommandForProvider({
|
|
|
9825
10244
|
const args = [resolvedCliPath, provider, "-y", "--print", "--prompt", prompt];
|
|
9826
10245
|
if (model) args.push("--model", model);
|
|
9827
10246
|
const streaming = agxStreamingPassthrough(provider);
|
|
9828
|
-
const allPassthrough = [...passthroughArgs || [], ...streaming.args];
|
|
10247
|
+
const allPassthrough = [...providerAccessPassthrough(provider), ...passthroughArgs || [], ...streaming.args];
|
|
9829
10248
|
if (allPassthrough.length > 0) {
|
|
9830
10249
|
args.push("--", ...allPassthrough);
|
|
9831
10250
|
}
|
|
@@ -10052,12 +10471,12 @@ ${skills}
|
|
|
10052
10471
|
</skills>`);
|
|
10053
10472
|
return systemParts.length > 0 ? systemParts.join("\n\n") : void 0;
|
|
10054
10473
|
}
|
|
10055
|
-
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;
|
|
10056
10475
|
var init_cli_runner = __esm({
|
|
10057
10476
|
"apps/local/lib/cli-runner.ts"() {
|
|
10058
|
-
"use strict";
|
|
10059
10477
|
import_child_process2 = require("child_process");
|
|
10060
10478
|
import_fs10 = __toESM(require("fs"));
|
|
10479
|
+
import_os10 = __toESM(require("os"));
|
|
10061
10480
|
import_path10 = __toESM(require("path"));
|
|
10062
10481
|
init_sanitize();
|
|
10063
10482
|
init_debug_log();
|
|
@@ -10065,6 +10484,8 @@ var init_cli_runner = __esm({
|
|
|
10065
10484
|
init_scheduled_task_skill();
|
|
10066
10485
|
isNonEmptyString = (value) => typeof value === "string" && value.trim().length > 0;
|
|
10067
10486
|
CliRunError = class extends Error {
|
|
10487
|
+
exitCode;
|
|
10488
|
+
logs;
|
|
10068
10489
|
constructor(message, exitCode, logs) {
|
|
10069
10490
|
super(message);
|
|
10070
10491
|
this.name = "CliRunError";
|
|
@@ -10092,7 +10513,7 @@ var init_cli_runner = __esm({
|
|
|
10092
10513
|
return "";
|
|
10093
10514
|
};
|
|
10094
10515
|
createClaudeStreamJsonParser = (onDelta) => {
|
|
10095
|
-
let
|
|
10516
|
+
let buffer2 = "";
|
|
10096
10517
|
let emittedCharacters = 0;
|
|
10097
10518
|
let sawJson = false;
|
|
10098
10519
|
const processLine = (line) => {
|
|
@@ -10113,22 +10534,22 @@ var init_cli_runner = __esm({
|
|
|
10113
10534
|
};
|
|
10114
10535
|
return {
|
|
10115
10536
|
push: (chunk) => {
|
|
10116
|
-
|
|
10537
|
+
buffer2 += chunk;
|
|
10117
10538
|
while (true) {
|
|
10118
|
-
const i =
|
|
10539
|
+
const i = buffer2.indexOf("\n");
|
|
10119
10540
|
if (i === -1) break;
|
|
10120
|
-
processLine(
|
|
10121
|
-
|
|
10541
|
+
processLine(buffer2.slice(0, i));
|
|
10542
|
+
buffer2 = buffer2.slice(i + 1);
|
|
10122
10543
|
}
|
|
10123
10544
|
},
|
|
10124
10545
|
flush: () => {
|
|
10125
|
-
if (
|
|
10126
|
-
|
|
10546
|
+
if (buffer2.trim()) processLine(buffer2);
|
|
10547
|
+
buffer2 = "";
|
|
10127
10548
|
}
|
|
10128
10549
|
};
|
|
10129
10550
|
};
|
|
10130
10551
|
createGeminiStreamJsonParser = (onDelta) => {
|
|
10131
|
-
let
|
|
10552
|
+
let buffer2 = "";
|
|
10132
10553
|
let sawJson = false;
|
|
10133
10554
|
let accumulatedAssistantText = "";
|
|
10134
10555
|
const emitGeminiText = (text, isDelta) => {
|
|
@@ -10171,17 +10592,17 @@ var init_cli_runner = __esm({
|
|
|
10171
10592
|
};
|
|
10172
10593
|
return {
|
|
10173
10594
|
push: (chunk) => {
|
|
10174
|
-
|
|
10595
|
+
buffer2 += chunk;
|
|
10175
10596
|
while (true) {
|
|
10176
|
-
const i =
|
|
10597
|
+
const i = buffer2.indexOf("\n");
|
|
10177
10598
|
if (i === -1) break;
|
|
10178
|
-
processLine(
|
|
10179
|
-
|
|
10599
|
+
processLine(buffer2.slice(0, i));
|
|
10600
|
+
buffer2 = buffer2.slice(i + 1);
|
|
10180
10601
|
}
|
|
10181
10602
|
},
|
|
10182
10603
|
flush: () => {
|
|
10183
|
-
if (
|
|
10184
|
-
|
|
10604
|
+
if (buffer2.trim()) processLine(buffer2);
|
|
10605
|
+
buffer2 = "";
|
|
10185
10606
|
}
|
|
10186
10607
|
};
|
|
10187
10608
|
};
|
|
@@ -10196,7 +10617,7 @@ var init_cli_runner = __esm({
|
|
|
10196
10617
|
return "";
|
|
10197
10618
|
};
|
|
10198
10619
|
createCodexJsonParser = (onDelta) => {
|
|
10199
|
-
let
|
|
10620
|
+
let buffer2 = "";
|
|
10200
10621
|
let sawJson = false;
|
|
10201
10622
|
const completedItems = /* @__PURE__ */ new Set();
|
|
10202
10623
|
const processLine = (line) => {
|
|
@@ -10218,22 +10639,22 @@ var init_cli_runner = __esm({
|
|
|
10218
10639
|
};
|
|
10219
10640
|
return {
|
|
10220
10641
|
push: (chunk) => {
|
|
10221
|
-
|
|
10642
|
+
buffer2 += chunk;
|
|
10222
10643
|
while (true) {
|
|
10223
|
-
const i =
|
|
10644
|
+
const i = buffer2.indexOf("\n");
|
|
10224
10645
|
if (i === -1) break;
|
|
10225
|
-
processLine(
|
|
10226
|
-
|
|
10646
|
+
processLine(buffer2.slice(0, i));
|
|
10647
|
+
buffer2 = buffer2.slice(i + 1);
|
|
10227
10648
|
}
|
|
10228
10649
|
},
|
|
10229
10650
|
flush: () => {
|
|
10230
|
-
if (
|
|
10231
|
-
|
|
10651
|
+
if (buffer2.trim()) processLine(buffer2);
|
|
10652
|
+
buffer2 = "";
|
|
10232
10653
|
}
|
|
10233
10654
|
};
|
|
10234
10655
|
};
|
|
10235
10656
|
createThoughtFilterParser = (inner, onThought) => {
|
|
10236
|
-
let
|
|
10657
|
+
let buffer2 = "";
|
|
10237
10658
|
let inThought = false;
|
|
10238
10659
|
let thoughtStarted = false;
|
|
10239
10660
|
let thoughtContent = "";
|
|
@@ -10246,12 +10667,12 @@ var init_cli_runner = __esm({
|
|
|
10246
10667
|
/<\/think>/i
|
|
10247
10668
|
];
|
|
10248
10669
|
const processBuffer = () => {
|
|
10249
|
-
while (
|
|
10670
|
+
while (buffer2.length > 0) {
|
|
10250
10671
|
if (inThought) {
|
|
10251
10672
|
let endIdx = -1;
|
|
10252
10673
|
let endLen = 0;
|
|
10253
10674
|
for (const pat of THINK_END_PATTERNS) {
|
|
10254
|
-
const match =
|
|
10675
|
+
const match = buffer2.match(pat);
|
|
10255
10676
|
if (match && match.index !== void 0) {
|
|
10256
10677
|
const candidate = match.index + match[0].length;
|
|
10257
10678
|
if (endIdx === -1 || match.index < endIdx) {
|
|
@@ -10261,26 +10682,26 @@ var init_cli_runner = __esm({
|
|
|
10261
10682
|
}
|
|
10262
10683
|
}
|
|
10263
10684
|
if (endIdx !== -1) {
|
|
10264
|
-
thoughtContent +=
|
|
10685
|
+
thoughtContent += buffer2.slice(0, endIdx);
|
|
10265
10686
|
if (onThought && thoughtContent.trim()) {
|
|
10266
10687
|
onThought(thoughtContent.trim());
|
|
10267
10688
|
}
|
|
10268
10689
|
thoughtContent = "";
|
|
10269
|
-
|
|
10690
|
+
buffer2 = buffer2.slice(endIdx + endLen);
|
|
10270
10691
|
inThought = false;
|
|
10271
|
-
|
|
10692
|
+
buffer2 = buffer2.replace(/^\s*\n*/, "");
|
|
10272
10693
|
continue;
|
|
10273
10694
|
}
|
|
10274
|
-
thoughtContent +=
|
|
10275
|
-
|
|
10695
|
+
thoughtContent += buffer2;
|
|
10696
|
+
buffer2 = "";
|
|
10276
10697
|
return;
|
|
10277
10698
|
}
|
|
10278
10699
|
for (const pat of THINK_START_PATTERNS) {
|
|
10279
|
-
const match =
|
|
10700
|
+
const match = buffer2.match(pat);
|
|
10280
10701
|
if (match && match.index !== void 0) {
|
|
10281
|
-
const before =
|
|
10702
|
+
const before = buffer2.slice(0, match.index);
|
|
10282
10703
|
if (before) inner.push(before);
|
|
10283
|
-
|
|
10704
|
+
buffer2 = buffer2.slice(match.index + match[0].length);
|
|
10284
10705
|
inThought = true;
|
|
10285
10706
|
thoughtStarted = true;
|
|
10286
10707
|
thoughtContent = "";
|
|
@@ -10288,24 +10709,24 @@ var init_cli_runner = __esm({
|
|
|
10288
10709
|
}
|
|
10289
10710
|
}
|
|
10290
10711
|
if (inThought) continue;
|
|
10291
|
-
const safeLen = Math.max(0,
|
|
10712
|
+
const safeLen = Math.max(0, buffer2.length - 30);
|
|
10292
10713
|
if (safeLen > 0) {
|
|
10293
|
-
inner.push(
|
|
10294
|
-
|
|
10714
|
+
inner.push(buffer2.slice(0, safeLen));
|
|
10715
|
+
buffer2 = buffer2.slice(safeLen);
|
|
10295
10716
|
}
|
|
10296
10717
|
return;
|
|
10297
10718
|
}
|
|
10298
10719
|
};
|
|
10299
10720
|
return {
|
|
10300
10721
|
push: (chunk) => {
|
|
10301
|
-
|
|
10722
|
+
buffer2 += chunk;
|
|
10302
10723
|
processBuffer();
|
|
10303
10724
|
},
|
|
10304
10725
|
flush: () => {
|
|
10305
|
-
if (!inThought &&
|
|
10306
|
-
inner.push(
|
|
10726
|
+
if (!inThought && buffer2) {
|
|
10727
|
+
inner.push(buffer2);
|
|
10307
10728
|
}
|
|
10308
|
-
|
|
10729
|
+
buffer2 = "";
|
|
10309
10730
|
inner.flush();
|
|
10310
10731
|
}
|
|
10311
10732
|
};
|
|
@@ -10433,8 +10854,8 @@ async function storeMemories(taskId, agentId, memories) {
|
|
|
10433
10854
|
const now = Date.now();
|
|
10434
10855
|
for (const mem of memories) {
|
|
10435
10856
|
if (!VALID_TYPES_SET.has(mem.memory_type) || !mem.content?.trim()) continue;
|
|
10436
|
-
const contentHash2 = (0,
|
|
10437
|
-
const result = stmt.run((0,
|
|
10857
|
+
const contentHash2 = (0, import_crypto4.createHash)("sha256").update(mem.content.trim()).digest("hex");
|
|
10858
|
+
const result = stmt.run((0, import_crypto4.randomUUID)(), agentId, taskId, mem.memory_type, mem.content.trim(), contentHash2, now);
|
|
10438
10859
|
if (result.changes > 0) inserted++;
|
|
10439
10860
|
}
|
|
10440
10861
|
if (inserted > 0) {
|
|
@@ -10527,10 +10948,10 @@ async function extractAndStoreProjectKnowledge(taskId, projectIdOrSlug, ctx) {
|
|
|
10527
10948
|
console.log(`[project-knowledge] Stored ${inserted} project knowledge entries for task ${taskId}`);
|
|
10528
10949
|
}
|
|
10529
10950
|
}
|
|
10530
|
-
var
|
|
10951
|
+
var import_crypto4, VALID_TYPES, EXTRACTION_PROMPT, PROJECT_KNOWLEDGE_PROMPT, VALID_TYPES_SET, MEMORY_AGENT_KEYS;
|
|
10531
10952
|
var init_memory_extractor = __esm({
|
|
10532
10953
|
"apps/local/lib/memory-extractor.ts"() {
|
|
10533
|
-
|
|
10954
|
+
import_crypto4 = require("crypto");
|
|
10534
10955
|
init_cli_runner();
|
|
10535
10956
|
init_sqlite_query_adapter();
|
|
10536
10957
|
init_knowledge_store();
|
|
@@ -10768,7 +11189,7 @@ var init_dependency_manager = __esm({
|
|
|
10768
11189
|
init_stage_machine();
|
|
10769
11190
|
init_db_adapter();
|
|
10770
11191
|
init_auth_mode();
|
|
10771
|
-
|
|
11192
|
+
init_db2();
|
|
10772
11193
|
init_db_instance();
|
|
10773
11194
|
READY_STATUS = "completed";
|
|
10774
11195
|
}
|
|
@@ -10960,7 +11381,7 @@ async function markCancelledActivity(input) {
|
|
|
10960
11381
|
}
|
|
10961
11382
|
var init_activities = __esm({
|
|
10962
11383
|
"apps/local/lib/orchestrator/activities.ts"() {
|
|
10963
|
-
|
|
11384
|
+
init_db2();
|
|
10964
11385
|
init_memory_extractor();
|
|
10965
11386
|
init_db_instance();
|
|
10966
11387
|
init_db_adapter();
|
|
@@ -11198,8 +11619,13 @@ function getDb2() {
|
|
|
11198
11619
|
const hasOldTable = db2.prepare(
|
|
11199
11620
|
"SELECT name FROM sqlite_master WHERE type='table' AND name='linear_runs'"
|
|
11200
11621
|
).get();
|
|
11201
|
-
|
|
11622
|
+
const hasNewTable = db2.prepare(
|
|
11623
|
+
"SELECT name FROM sqlite_master WHERE type='table' AND name='tracker_runs'"
|
|
11624
|
+
).get();
|
|
11625
|
+
if (hasOldTable && !hasNewTable) {
|
|
11202
11626
|
db2.exec("ALTER TABLE linear_runs RENAME TO tracker_runs");
|
|
11627
|
+
} else if (hasOldTable && hasNewTable) {
|
|
11628
|
+
db2.exec("DROP TABLE linear_runs");
|
|
11203
11629
|
}
|
|
11204
11630
|
db2.exec(`
|
|
11205
11631
|
CREATE TABLE IF NOT EXISTS tracker_runs (
|
|
@@ -11351,15 +11777,15 @@ function killByWorkspace(workspaceId) {
|
|
|
11351
11777
|
}
|
|
11352
11778
|
return killed;
|
|
11353
11779
|
}
|
|
11354
|
-
var import_path11,
|
|
11780
|
+
var import_path11, import_os11, import_fs11, DatabaseSyncCtor4, HISTORY_DIR, DB_PATH2;
|
|
11355
11781
|
var init_agent_process_registry = __esm({
|
|
11356
11782
|
"apps/local/lib/agent-process-registry.ts"() {
|
|
11357
11783
|
init_sqlite_compat();
|
|
11358
11784
|
import_path11 = __toESM(require("path"));
|
|
11359
|
-
|
|
11785
|
+
import_os11 = __toESM(require("os"));
|
|
11360
11786
|
import_fs11 = require("fs");
|
|
11361
11787
|
({ DatabaseSync: DatabaseSyncCtor4 } = process.getBuiltinModule("node:sqlite"));
|
|
11362
|
-
HISTORY_DIR = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path11.default.join(
|
|
11788
|
+
HISTORY_DIR = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path11.default.join(import_os11.default.homedir(), ".agx", "group-chat");
|
|
11363
11789
|
DB_PATH2 = import_path11.default.join(HISTORY_DIR, "history.sqlite");
|
|
11364
11790
|
}
|
|
11365
11791
|
});
|
|
@@ -12604,16 +13030,15 @@ async function saveThreadRepoSelections(rootMessageId, repoIds) {
|
|
|
12604
13030
|
}
|
|
12605
13031
|
});
|
|
12606
13032
|
}
|
|
12607
|
-
var import_fs12, import_path12,
|
|
13033
|
+
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;
|
|
12608
13034
|
var init_history_store = __esm({
|
|
12609
13035
|
"apps/local/lib/history-store.ts"() {
|
|
12610
|
-
"use strict";
|
|
12611
13036
|
init_sqlite_compat();
|
|
12612
13037
|
import_fs12 = require("fs");
|
|
12613
13038
|
import_path12 = __toESM(require("path"));
|
|
12614
|
-
|
|
13039
|
+
import_os12 = __toESM(require("os"));
|
|
12615
13040
|
({ DatabaseSync: DatabaseSyncCtor5 } = process.getBuiltinModule("node:sqlite"));
|
|
12616
|
-
HISTORY_DIR2 = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path12.default.join(
|
|
13041
|
+
HISTORY_DIR2 = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path12.default.join(import_os12.default.homedir(), ".agx", "group-chat");
|
|
12617
13042
|
DB_PATH3 = import_path12.default.join(HISTORY_DIR2, "history.sqlite");
|
|
12618
13043
|
LEGACY_THREAD_ID = "global";
|
|
12619
13044
|
REACTION_TYPES = /* @__PURE__ */ new Set([
|
|
@@ -12633,6 +13058,7 @@ var init_history_store = __esm({
|
|
|
12633
13058
|
blocked: /* @__PURE__ */ new Set(["ack", "blocked", "working"])
|
|
12634
13059
|
};
|
|
12635
13060
|
ReactionStoreError = class extends Error {
|
|
13061
|
+
status;
|
|
12636
13062
|
constructor(message, status) {
|
|
12637
13063
|
super(message);
|
|
12638
13064
|
this.name = "ReactionStoreError";
|
|
@@ -12861,15 +13287,15 @@ async function getAttachmentMeta(id) {
|
|
|
12861
13287
|
db2.close();
|
|
12862
13288
|
}
|
|
12863
13289
|
}
|
|
12864
|
-
var import_path13,
|
|
13290
|
+
var import_path13, import_os13, DatabaseSyncCtor6, HISTORY_DIR3, DB_PATH4, UPLOADS_DIR;
|
|
12865
13291
|
var init_attachment_store = __esm({
|
|
12866
13292
|
"apps/local/lib/attachment-store.ts"() {
|
|
12867
13293
|
"use strict";
|
|
12868
13294
|
init_sqlite_compat();
|
|
12869
13295
|
import_path13 = __toESM(require("path"));
|
|
12870
|
-
|
|
13296
|
+
import_os13 = __toESM(require("os"));
|
|
12871
13297
|
({ DatabaseSync: DatabaseSyncCtor6 } = process.getBuiltinModule("node:sqlite"));
|
|
12872
|
-
HISTORY_DIR3 = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path13.default.join(
|
|
13298
|
+
HISTORY_DIR3 = process.env.AGX_GROUP_CHAT_DIR?.trim() || import_path13.default.join(import_os13.default.homedir(), ".agx", "group-chat");
|
|
12873
13299
|
DB_PATH4 = import_path13.default.join(HISTORY_DIR3, "history.sqlite");
|
|
12874
13300
|
UPLOADS_DIR = import_path13.default.join(HISTORY_DIR3, "uploads");
|
|
12875
13301
|
}
|
|
@@ -12903,16 +13329,16 @@ function appendReaction(agentId, targetEntry, type3) {
|
|
|
12903
13329
|
(0, import_fs13.appendFileSync)(reactionsPath(agentId), JSON.stringify(reaction) + "\n", "utf-8");
|
|
12904
13330
|
logActivity(agentId, "mesh-reaction", { meta: { target: targetEntry, type: type3 } });
|
|
12905
13331
|
}
|
|
12906
|
-
var import_fs13, import_path14,
|
|
13332
|
+
var import_fs13, import_path14, import_os14, AGENTS_DIR6;
|
|
12907
13333
|
var init_reactions = __esm({
|
|
12908
13334
|
"apps/local/lib/mesh-core/reactions.ts"() {
|
|
12909
13335
|
"use strict";
|
|
12910
13336
|
import_fs13 = require("fs");
|
|
12911
13337
|
import_path14 = require("path");
|
|
12912
|
-
|
|
13338
|
+
import_os14 = require("os");
|
|
12913
13339
|
init_journal();
|
|
12914
13340
|
init_activity();
|
|
12915
|
-
AGENTS_DIR6 = (0, import_path14.join)((0,
|
|
13341
|
+
AGENTS_DIR6 = (0, import_path14.join)((0, import_os14.homedir)(), ".agx", "agents");
|
|
12916
13342
|
}
|
|
12917
13343
|
});
|
|
12918
13344
|
|
|
@@ -13287,7 +13713,6 @@ function resolveBoundSkillFiles(bindings, prompt, provider) {
|
|
|
13287
13713
|
var import_node_fs4;
|
|
13288
13714
|
var init_agent_skill_bindings = __esm({
|
|
13289
13715
|
"apps/local/lib/agent-skill-bindings.ts"() {
|
|
13290
|
-
"use strict";
|
|
13291
13716
|
import_node_fs4 = __toESM(require("node:fs"));
|
|
13292
13717
|
init_sqlite_query_adapter();
|
|
13293
13718
|
init_skills_library();
|
|
@@ -13298,6 +13723,22 @@ var init_agent_skill_bindings = __esm({
|
|
|
13298
13723
|
function isKnowledgeEvidence(value) {
|
|
13299
13724
|
return value !== null;
|
|
13300
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
|
+
}
|
|
13301
13742
|
function normalizeRuntimeSeedText(raw, name) {
|
|
13302
13743
|
const collapsed = raw.replace(/\s+/g, " ").trim();
|
|
13303
13744
|
if (!collapsed) return `I am ${name}. ${DEFAULT_RUNTIME_SEED}`;
|
|
@@ -13474,8 +13915,8 @@ async function runReflection(p) {
|
|
|
13474
13915
|
const now = Date.now();
|
|
13475
13916
|
for (const memory of memoryDrafts) {
|
|
13476
13917
|
const memoryType = memory.kind === "decision" ? "decision" : memory.kind === "gotcha" || memory.kind === "constraint" ? "gotcha" : memory.kind === "outcome" ? "outcome" : "pattern";
|
|
13477
|
-
const contentHash2 = (0,
|
|
13478
|
-
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);
|
|
13479
13920
|
}
|
|
13480
13921
|
}
|
|
13481
13922
|
appendJournal(p.id, {
|
|
@@ -13859,6 +14300,7 @@ ${parts.join("\n\n")}`;
|
|
|
13859
14300
|
);
|
|
13860
14301
|
const systemContext = [
|
|
13861
14302
|
baseSystemContext,
|
|
14303
|
+
buildFilesystemAccessContext(p),
|
|
13862
14304
|
executionProvenance ? `<execution-provenance>
|
|
13863
14305
|
Resolved skills: ${executionProvenance.skills.map((skill) => `${skill.file} (${skill.source})`).join(", ") || "none"}
|
|
13864
14306
|
Resolved memory entries: ${executionProvenance.memory.map((entry) => `${entry.source}${entry.id ? `:${entry.id}` : ""}`).join(", ") || "none"}
|
|
@@ -14312,10 +14754,11 @@ function createMultiplexedStream({
|
|
|
14312
14754
|
}
|
|
14313
14755
|
});
|
|
14314
14756
|
}
|
|
14315
|
-
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;
|
|
14316
14758
|
var init_stream_multiplexer = __esm({
|
|
14317
14759
|
"apps/local/lib/stream-multiplexer.ts"() {
|
|
14318
14760
|
import_promises = require("fs/promises");
|
|
14761
|
+
import_os15 = __toESM(require("os"));
|
|
14319
14762
|
init_cli_runner();
|
|
14320
14763
|
init_agent_process_registry();
|
|
14321
14764
|
init_history_store();
|
|
@@ -14329,7 +14772,7 @@ var init_stream_multiplexer = __esm({
|
|
|
14329
14772
|
init_activity();
|
|
14330
14773
|
init_knowledge_store();
|
|
14331
14774
|
init_agent_skill_bindings();
|
|
14332
|
-
|
|
14775
|
+
import_crypto5 = require("crypto");
|
|
14333
14776
|
agentMessageCounts = /* @__PURE__ */ new Map();
|
|
14334
14777
|
reflectionQueues = /* @__PURE__ */ new Map();
|
|
14335
14778
|
REFLECTION_CADENCE = 10;
|
|
@@ -14400,7 +14843,7 @@ function filterActiveParticipants(participants, activeParticipantIds) {
|
|
|
14400
14843
|
}
|
|
14401
14844
|
var init_agent_participants = __esm({
|
|
14402
14845
|
"apps/local/lib/agent-participants.ts"() {
|
|
14403
|
-
|
|
14846
|
+
init_db2();
|
|
14404
14847
|
init_agent_skill_bindings();
|
|
14405
14848
|
init_auth_mode();
|
|
14406
14849
|
}
|
|
@@ -14890,7 +15333,7 @@ var init_project_context = __esm({
|
|
|
14890
15333
|
"apps/local/lib/chat/project-context.ts"() {
|
|
14891
15334
|
init_sqlite_query_adapter();
|
|
14892
15335
|
init_db_instance();
|
|
14893
|
-
|
|
15336
|
+
init_db2();
|
|
14894
15337
|
init_repo_knowledge();
|
|
14895
15338
|
init_knowledge_notes();
|
|
14896
15339
|
init_auth_mode();
|
|
@@ -14930,7 +15373,7 @@ var init_runtime = __esm({
|
|
|
14930
15373
|
|
|
14931
15374
|
// apps/local/src/automations/types.ts
|
|
14932
15375
|
var DEFAULT_OVERLAP_POLICY, DEFAULT_CATCH_UP_POLICY, DEFAULT_CANCEL_CHECK_SEC, DEFAULT_CONDITION_CHECK_EVERY_MS, DEFAULT_GRAPH_INTERVAL_MS;
|
|
14933
|
-
var
|
|
15376
|
+
var init_types2 = __esm({
|
|
14934
15377
|
"apps/local/src/automations/types.ts"() {
|
|
14935
15378
|
"use strict";
|
|
14936
15379
|
DEFAULT_OVERLAP_POLICY = "skip";
|
|
@@ -24120,7 +24563,6 @@ function parseNaturalSchedule(input) {
|
|
|
24120
24563
|
var PATTERNS;
|
|
24121
24564
|
var init_nl_schedule = __esm({
|
|
24122
24565
|
"apps/local/src/graph/nl-schedule.ts"() {
|
|
24123
|
-
"use strict";
|
|
24124
24566
|
PATTERNS = [
|
|
24125
24567
|
// "every N seconds" → intervalMs only (sub-minute)
|
|
24126
24568
|
{
|
|
@@ -24534,7 +24976,7 @@ var init_validation = __esm({
|
|
|
24534
24976
|
"use strict";
|
|
24535
24977
|
import_cron_parser = __toESM(require_dist());
|
|
24536
24978
|
init_nl_schedule();
|
|
24537
|
-
|
|
24979
|
+
init_types2();
|
|
24538
24980
|
}
|
|
24539
24981
|
});
|
|
24540
24982
|
|
|
@@ -24635,7 +25077,7 @@ var init_serializer = __esm({
|
|
|
24635
25077
|
"apps/local/src/automations/serializer.ts"() {
|
|
24636
25078
|
"use strict";
|
|
24637
25079
|
import_js_yaml3 = __toESM(require_js_yaml2());
|
|
24638
|
-
|
|
25080
|
+
init_types2();
|
|
24639
25081
|
init_validation();
|
|
24640
25082
|
}
|
|
24641
25083
|
});
|
|
@@ -24646,7 +25088,7 @@ function resolveAgxDataDir2() {
|
|
|
24646
25088
|
if (configured) {
|
|
24647
25089
|
return import_path15.default.resolve(configured);
|
|
24648
25090
|
}
|
|
24649
|
-
return import_path15.default.join((0,
|
|
25091
|
+
return import_path15.default.join((0, import_os16.homedir)(), ".agx");
|
|
24650
25092
|
}
|
|
24651
25093
|
function stableCopy(value) {
|
|
24652
25094
|
if (Array.isArray(value)) {
|
|
@@ -24678,7 +25120,7 @@ function getDefaultAutomationsDir() {
|
|
|
24678
25120
|
}
|
|
24679
25121
|
if (process.env.NODE_ENV === "test") {
|
|
24680
25122
|
if (!cachedTestAutomationsDir) {
|
|
24681
|
-
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-"));
|
|
24682
25124
|
}
|
|
24683
25125
|
return cachedTestAutomationsDir;
|
|
24684
25126
|
}
|
|
@@ -24702,7 +25144,7 @@ function computeScheduleHash(definition) {
|
|
|
24702
25144
|
activeUntil: definition.execution?.activeUntil
|
|
24703
25145
|
}
|
|
24704
25146
|
});
|
|
24705
|
-
return (0,
|
|
25147
|
+
return (0, import_crypto6.createHash)("sha256").update(JSON.stringify(payload)).digest("hex");
|
|
24706
25148
|
}
|
|
24707
25149
|
function computeNextRunAt(definition, nowMs2 = Date.now()) {
|
|
24708
25150
|
if (definition.state !== "active") {
|
|
@@ -24761,16 +25203,16 @@ function isAutomationDue(definition, runtimeState, nowMs2 = Date.now()) {
|
|
|
24761
25203
|
}
|
|
24762
25204
|
return runtimeState.nextRunAt <= nowMs2;
|
|
24763
25205
|
}
|
|
24764
|
-
var
|
|
25206
|
+
var import_crypto6, import_fs14, import_os16, import_path15, import_cron_parser2, cachedTestAutomationsDir;
|
|
24765
25207
|
var init_state = __esm({
|
|
24766
25208
|
"apps/local/src/automations/state.ts"() {
|
|
24767
25209
|
"use strict";
|
|
24768
|
-
|
|
25210
|
+
import_crypto6 = require("crypto");
|
|
24769
25211
|
import_fs14 = require("fs");
|
|
24770
|
-
|
|
25212
|
+
import_os16 = require("os");
|
|
24771
25213
|
import_path15 = __toESM(require("path"));
|
|
24772
25214
|
import_cron_parser2 = __toESM(require_dist());
|
|
24773
|
-
|
|
25215
|
+
init_types2();
|
|
24774
25216
|
cachedTestAutomationsDir = null;
|
|
24775
25217
|
}
|
|
24776
25218
|
});
|
|
@@ -24816,13 +25258,14 @@ function getAutomationRepository() {
|
|
|
24816
25258
|
}
|
|
24817
25259
|
return cachedRepository;
|
|
24818
25260
|
}
|
|
24819
|
-
var import_fs15, import_path16,
|
|
25261
|
+
var import_fs15, import_path16, import_crypto7, AutomationRepository, cachedRepository, cachedRootDir;
|
|
24820
25262
|
var init_repository = __esm({
|
|
24821
25263
|
"apps/local/src/automations/repository.ts"() {
|
|
24822
25264
|
"use strict";
|
|
24823
25265
|
import_fs15 = __toESM(require("fs"));
|
|
24824
25266
|
import_path16 = __toESM(require("path"));
|
|
24825
|
-
|
|
25267
|
+
import_crypto7 = require("crypto");
|
|
25268
|
+
init_logger2();
|
|
24826
25269
|
init_parser();
|
|
24827
25270
|
init_serializer();
|
|
24828
25271
|
init_state();
|
|
@@ -24851,7 +25294,7 @@ var init_repository = __esm({
|
|
|
24851
25294
|
continue;
|
|
24852
25295
|
}
|
|
24853
25296
|
if (recordsById.has(record.definition.id)) {
|
|
24854
|
-
|
|
25297
|
+
logger.error(`[automations] duplicate automation id detected: ${record.definition.id}`);
|
|
24855
25298
|
continue;
|
|
24856
25299
|
}
|
|
24857
25300
|
recordsById.set(record.definition.id, record);
|
|
@@ -24971,7 +25414,7 @@ var init_repository = __esm({
|
|
|
24971
25414
|
if (!current) {
|
|
24972
25415
|
return null;
|
|
24973
25416
|
}
|
|
24974
|
-
const duplicateId = `${current.definition.id}-copy-${(0,
|
|
25417
|
+
const duplicateId = `${current.definition.id}-copy-${(0, import_crypto7.randomUUID)().slice(0, 8)}`;
|
|
24975
25418
|
return this.createAutomation({
|
|
24976
25419
|
...cloneDefinition(current.definition),
|
|
24977
25420
|
id: duplicateId,
|
|
@@ -25011,7 +25454,7 @@ var init_repository = __esm({
|
|
|
25011
25454
|
copiedEntries += this.copyDirContents(legacyArchivedDir, this.archivedDir);
|
|
25012
25455
|
copiedEntries += this.copyDirContents(legacyStateDir, this.stateDir);
|
|
25013
25456
|
if (copiedEntries > 0) {
|
|
25014
|
-
|
|
25457
|
+
logger.info(
|
|
25015
25458
|
`[automations] migrated ${copiedEntries} legacy file(s) from ${legacyRootDir} to ${this.rootDir}`
|
|
25016
25459
|
);
|
|
25017
25460
|
}
|
|
@@ -25068,7 +25511,7 @@ var init_repository = __esm({
|
|
|
25068
25511
|
archived
|
|
25069
25512
|
};
|
|
25070
25513
|
} catch (error) {
|
|
25071
|
-
|
|
25514
|
+
logger.error(`[automations] failed to read ${filePath}`, logger.formatError(error));
|
|
25072
25515
|
return null;
|
|
25073
25516
|
}
|
|
25074
25517
|
}
|
|
@@ -25079,7 +25522,7 @@ var init_repository = __esm({
|
|
|
25079
25522
|
try {
|
|
25080
25523
|
existing = JSON.parse(import_fs15.default.readFileSync(statePath, "utf8"));
|
|
25081
25524
|
} catch (error) {
|
|
25082
|
-
|
|
25525
|
+
logger.error(`[automations] failed to parse state for ${definition.id}`, logger.formatError(error));
|
|
25083
25526
|
}
|
|
25084
25527
|
}
|
|
25085
25528
|
const nextState = initializeAutomationRuntimeState(definition, existing);
|
|
@@ -25161,7 +25604,7 @@ var init_repository = __esm({
|
|
|
25161
25604
|
});
|
|
25162
25605
|
|
|
25163
25606
|
// apps/local/src/prompt-scheduler/types.ts
|
|
25164
|
-
var
|
|
25607
|
+
var init_types3 = __esm({
|
|
25165
25608
|
"apps/local/src/prompt-scheduler/types.ts"() {
|
|
25166
25609
|
}
|
|
25167
25610
|
});
|
|
@@ -25258,9 +25701,9 @@ function graphAutomationToDefinition(row) {
|
|
|
25258
25701
|
var init_adapters = __esm({
|
|
25259
25702
|
"apps/local/src/automations/adapters.ts"() {
|
|
25260
25703
|
"use strict";
|
|
25261
|
-
|
|
25704
|
+
init_types3();
|
|
25262
25705
|
init_cron();
|
|
25263
|
-
|
|
25706
|
+
init_types2();
|
|
25264
25707
|
init_state();
|
|
25265
25708
|
init_validation();
|
|
25266
25709
|
}
|
|
@@ -25269,7 +25712,7 @@ var init_adapters = __esm({
|
|
|
25269
25712
|
// apps/local/src/automations/index.ts
|
|
25270
25713
|
var init_automations = __esm({
|
|
25271
25714
|
"apps/local/src/automations/index.ts"() {
|
|
25272
|
-
|
|
25715
|
+
init_types2();
|
|
25273
25716
|
init_validation();
|
|
25274
25717
|
init_parser();
|
|
25275
25718
|
init_serializer();
|
|
@@ -26044,7 +26487,7 @@ async function getThreadProjectContext(threadId, taskId) {
|
|
|
26044
26487
|
function resolveTeamAgentsFromTask(db2, projectId, taskId) {
|
|
26045
26488
|
if (!taskId) return null;
|
|
26046
26489
|
try {
|
|
26047
|
-
const { parseFrontmatter: parseFrontmatter2 } = (
|
|
26490
|
+
const { parseFrontmatter: parseFrontmatter2 } = (init_db2(), __toCommonJS(db_exports));
|
|
26048
26491
|
const taskRow = db2.prepare("SELECT content FROM tasks WHERE id = ? LIMIT 1").get(taskId);
|
|
26049
26492
|
if (!taskRow?.content) return null;
|
|
26050
26493
|
const { frontmatter } = parseFrontmatter2(taskRow.content);
|
|
@@ -28460,12 +28903,12 @@ var init_baseAssignIn = __esm({
|
|
|
28460
28903
|
});
|
|
28461
28904
|
|
|
28462
28905
|
// node_modules/lodash-es/_cloneBuffer.js
|
|
28463
|
-
function cloneBuffer(
|
|
28906
|
+
function cloneBuffer(buffer2, isDeep) {
|
|
28464
28907
|
if (isDeep) {
|
|
28465
|
-
return
|
|
28908
|
+
return buffer2.slice();
|
|
28466
28909
|
}
|
|
28467
|
-
var length =
|
|
28468
|
-
|
|
28910
|
+
var length = buffer2.length, result = allocUnsafe ? allocUnsafe(length) : new buffer2.constructor(length);
|
|
28911
|
+
buffer2.copy(result);
|
|
28469
28912
|
return result;
|
|
28470
28913
|
}
|
|
28471
28914
|
var freeExports3, freeModule3, moduleExports3, Buffer3, allocUnsafe, cloneBuffer_default;
|
|
@@ -28745,8 +29188,8 @@ var init_cloneArrayBuffer = __esm({
|
|
|
28745
29188
|
|
|
28746
29189
|
// node_modules/lodash-es/_cloneDataView.js
|
|
28747
29190
|
function cloneDataView(dataView, isDeep) {
|
|
28748
|
-
var
|
|
28749
|
-
return new dataView.constructor(
|
|
29191
|
+
var buffer2 = isDeep ? cloneArrayBuffer_default(dataView.buffer) : dataView.buffer;
|
|
29192
|
+
return new dataView.constructor(buffer2, dataView.byteOffset, dataView.byteLength);
|
|
28750
29193
|
}
|
|
28751
29194
|
var cloneDataView_default;
|
|
28752
29195
|
var init_cloneDataView = __esm({
|
|
@@ -28786,8 +29229,8 @@ var init_cloneSymbol = __esm({
|
|
|
28786
29229
|
|
|
28787
29230
|
// node_modules/lodash-es/_cloneTypedArray.js
|
|
28788
29231
|
function cloneTypedArray(typedArray, isDeep) {
|
|
28789
|
-
var
|
|
28790
|
-
return new typedArray.constructor(
|
|
29232
|
+
var buffer2 = isDeep ? cloneArrayBuffer_default(typedArray.buffer) : typedArray.buffer;
|
|
29233
|
+
return new typedArray.constructor(buffer2, typedArray.byteOffset, typedArray.length);
|
|
28791
29234
|
}
|
|
28792
29235
|
var cloneTypedArray_default;
|
|
28793
29236
|
var init_cloneTypedArray = __esm({
|
|
@@ -39619,7 +40062,7 @@ function createSystem(rootActor, options) {
|
|
|
39619
40062
|
const timerMap = {};
|
|
39620
40063
|
const {
|
|
39621
40064
|
clock,
|
|
39622
|
-
logger
|
|
40065
|
+
logger: logger2
|
|
39623
40066
|
} = options;
|
|
39624
40067
|
const scheduler = {
|
|
39625
40068
|
schedule: (source, target, event, delay, id = Math.random().toString(36).slice(2)) => {
|
|
@@ -39741,7 +40184,7 @@ function createSystem(rootActor, options) {
|
|
|
39741
40184
|
}
|
|
39742
40185
|
},
|
|
39743
40186
|
_clock: clock,
|
|
39744
|
-
_logger:
|
|
40187
|
+
_logger: logger2
|
|
39745
40188
|
};
|
|
39746
40189
|
return system;
|
|
39747
40190
|
}
|
|
@@ -41127,7 +41570,7 @@ var init_raise_b47daa89_esm = __esm({
|
|
|
41127
41570
|
};
|
|
41128
41571
|
const {
|
|
41129
41572
|
clock,
|
|
41130
|
-
logger,
|
|
41573
|
+
logger: logger2,
|
|
41131
41574
|
parent,
|
|
41132
41575
|
syncSnapshot,
|
|
41133
41576
|
id,
|
|
@@ -41136,7 +41579,7 @@ var init_raise_b47daa89_esm = __esm({
|
|
|
41136
41579
|
} = resolvedOptions;
|
|
41137
41580
|
this.system = parent ? parent.system : createSystem(this, {
|
|
41138
41581
|
clock,
|
|
41139
|
-
logger
|
|
41582
|
+
logger: logger2
|
|
41140
41583
|
});
|
|
41141
41584
|
if (inspect && !parent) {
|
|
41142
41585
|
this.system.inspect(toObserver(inspect));
|
|
@@ -42427,37 +42870,37 @@ function resolveEnqueueActions(actorScope, snapshot, args, actionParams, {
|
|
|
42427
42870
|
collect
|
|
42428
42871
|
}) {
|
|
42429
42872
|
const actions = [];
|
|
42430
|
-
const
|
|
42873
|
+
const enqueue2 = function enqueue3(action) {
|
|
42431
42874
|
actions.push(action);
|
|
42432
42875
|
};
|
|
42433
|
-
|
|
42876
|
+
enqueue2.assign = (...args2) => {
|
|
42434
42877
|
actions.push(assign2(...args2));
|
|
42435
42878
|
};
|
|
42436
|
-
|
|
42879
|
+
enqueue2.cancel = (...args2) => {
|
|
42437
42880
|
actions.push(cancel(...args2));
|
|
42438
42881
|
};
|
|
42439
|
-
|
|
42882
|
+
enqueue2.raise = (...args2) => {
|
|
42440
42883
|
actions.push(raise(...args2));
|
|
42441
42884
|
};
|
|
42442
|
-
|
|
42885
|
+
enqueue2.sendTo = (...args2) => {
|
|
42443
42886
|
actions.push(sendTo(...args2));
|
|
42444
42887
|
};
|
|
42445
|
-
|
|
42888
|
+
enqueue2.sendParent = (...args2) => {
|
|
42446
42889
|
actions.push(sendParent(...args2));
|
|
42447
42890
|
};
|
|
42448
|
-
|
|
42891
|
+
enqueue2.spawnChild = (...args2) => {
|
|
42449
42892
|
actions.push(spawnChild(...args2));
|
|
42450
42893
|
};
|
|
42451
|
-
|
|
42894
|
+
enqueue2.stopChild = (...args2) => {
|
|
42452
42895
|
actions.push(stopChild(...args2));
|
|
42453
42896
|
};
|
|
42454
|
-
|
|
42897
|
+
enqueue2.emit = (...args2) => {
|
|
42455
42898
|
actions.push(emit(...args2));
|
|
42456
42899
|
};
|
|
42457
42900
|
collect({
|
|
42458
42901
|
context: args.context,
|
|
42459
42902
|
event: args.event,
|
|
42460
|
-
enqueue,
|
|
42903
|
+
enqueue: enqueue2,
|
|
42461
42904
|
check: (guard) => evaluateGuard(guard, snapshot.context, args.event, snapshot),
|
|
42462
42905
|
self: actorScope.self,
|
|
42463
42906
|
system: actorScope.system
|
|
@@ -42482,15 +42925,15 @@ function resolveLog(_, snapshot, actionArgs, actionParams, {
|
|
|
42482
42925
|
}, void 0];
|
|
42483
42926
|
}
|
|
42484
42927
|
function executeLog({
|
|
42485
|
-
logger
|
|
42928
|
+
logger: logger2
|
|
42486
42929
|
}, {
|
|
42487
42930
|
value,
|
|
42488
42931
|
label
|
|
42489
42932
|
}) {
|
|
42490
42933
|
if (label) {
|
|
42491
|
-
|
|
42934
|
+
logger2(label, value);
|
|
42492
42935
|
} else {
|
|
42493
|
-
|
|
42936
|
+
logger2(value);
|
|
42494
42937
|
}
|
|
42495
42938
|
}
|
|
42496
42939
|
function log(value = ({
|
|
@@ -46255,7 +46698,7 @@ async function pollSchedules(context = {}) {
|
|
|
46255
46698
|
pendingWork: []
|
|
46256
46699
|
};
|
|
46257
46700
|
const activeSchedules = getGraphsWithActiveSchedules();
|
|
46258
|
-
|
|
46701
|
+
logger.info(`[schedules:poll] found ${activeSchedules.length} active schedule(s)`);
|
|
46259
46702
|
for (const { taskId } of activeSchedules) {
|
|
46260
46703
|
try {
|
|
46261
46704
|
const graph = store.getGraph(taskId);
|
|
@@ -46265,29 +46708,29 @@ async function pollSchedules(context = {}) {
|
|
|
46265
46708
|
}
|
|
46266
46709
|
const tickResult = scheduleTickIfDue(graph);
|
|
46267
46710
|
if (!tickResult.tickFired) {
|
|
46268
|
-
|
|
46711
|
+
logger.info(`[schedules:poll] ${taskId} skipped (${tickResult.skipReason ?? "unknown"})`);
|
|
46269
46712
|
result.skippedGraphIds.push(taskId);
|
|
46270
46713
|
continue;
|
|
46271
46714
|
}
|
|
46272
|
-
|
|
46715
|
+
logger.info(`[schedules:poll] ${taskId} tick fired \u2014 resetting nodes`);
|
|
46273
46716
|
store.updateGraphStructure(tickResult.graph.id, {
|
|
46274
46717
|
nodes: tickResult.graph.nodes,
|
|
46275
46718
|
schedule: tickResult.graph.schedule
|
|
46276
46719
|
});
|
|
46277
46720
|
const schedulerResult = schedulerTick(tickResult.graph, context);
|
|
46278
|
-
|
|
46721
|
+
logger.info(`[schedules:poll] ${taskId} scheduler: fn=${schedulerResult.functionToRun.length} work=${schedulerResult.workToRun.length}`);
|
|
46279
46722
|
let currentGraph = schedulerResult.graph;
|
|
46280
46723
|
for (const nodeId of schedulerResult.functionToRun) {
|
|
46281
46724
|
const node = currentGraph.nodes[nodeId];
|
|
46282
46725
|
if (!node || node.type !== "function") continue;
|
|
46283
46726
|
try {
|
|
46284
|
-
|
|
46727
|
+
logger.info(`[schedules:poll] ${taskId} executing function node "${nodeId}"`);
|
|
46285
46728
|
const execResult = await executeNode(currentGraph, nodeId, context);
|
|
46286
46729
|
const resultNode = execResult.graph.nodes[nodeId];
|
|
46287
|
-
|
|
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);
|
|
46288
46731
|
currentGraph = execResult.graph;
|
|
46289
46732
|
} catch (err) {
|
|
46290
|
-
|
|
46733
|
+
logger.error(`[schedules:poll] ${taskId} function "${nodeId}" error`, logger.formatError(err));
|
|
46291
46734
|
result.errors.push({
|
|
46292
46735
|
graphId: taskId,
|
|
46293
46736
|
error: err instanceof Error ? err : new Error(String(err))
|
|
@@ -46298,7 +46741,7 @@ async function pollSchedules(context = {}) {
|
|
|
46298
46741
|
nodes: currentGraph.nodes
|
|
46299
46742
|
});
|
|
46300
46743
|
const postFunctionResult = schedulerTick(currentGraph, context);
|
|
46301
|
-
|
|
46744
|
+
logger.info(`[schedules:poll] ${taskId} post-fn scheduler: cond=${postFunctionResult.control.conditionalNodeIds.length} work=${postFunctionResult.workToRun.length}`);
|
|
46302
46745
|
currentGraph = postFunctionResult.graph;
|
|
46303
46746
|
for (const nodeId of postFunctionResult.workToRun) {
|
|
46304
46747
|
const node = currentGraph.nodes[nodeId];
|
|
@@ -46323,17 +46766,17 @@ async function pollSchedules(context = {}) {
|
|
|
46323
46766
|
nodes: currentGraph.nodes
|
|
46324
46767
|
});
|
|
46325
46768
|
const postWorkResult = schedulerTick(currentGraph, context);
|
|
46326
|
-
|
|
46769
|
+
logger.info(`[schedules:poll] ${taskId} post-work scheduler: fn=${postWorkResult.functionToRun.length} cond=${postWorkResult.control.conditionalNodeIds.length}`);
|
|
46327
46770
|
currentGraph = postWorkResult.graph;
|
|
46328
46771
|
for (const nodeId of postWorkResult.functionToRun) {
|
|
46329
46772
|
const node = currentGraph.nodes[nodeId];
|
|
46330
46773
|
if (!node || node.type !== "function") continue;
|
|
46331
46774
|
try {
|
|
46332
|
-
|
|
46775
|
+
logger.info(`[schedules:poll] ${taskId} executing post-work function "${nodeId}"`);
|
|
46333
46776
|
const execResult = await executeNode(currentGraph, nodeId, context);
|
|
46334
46777
|
currentGraph = execResult.graph;
|
|
46335
46778
|
} catch (err) {
|
|
46336
|
-
|
|
46779
|
+
logger.error(`[schedules:poll] ${taskId} post-work function "${nodeId}" error`, logger.formatError(err));
|
|
46337
46780
|
result.errors.push({
|
|
46338
46781
|
graphId: taskId,
|
|
46339
46782
|
error: err instanceof Error ? err : new Error(String(err))
|
|
@@ -46345,9 +46788,9 @@ async function pollSchedules(context = {}) {
|
|
|
46345
46788
|
nodes: currentGraph.nodes
|
|
46346
46789
|
});
|
|
46347
46790
|
const nodeStates = Object.entries(currentGraph.nodes).map(([id, n]) => `${id}:${n.status}`).join(", ");
|
|
46348
|
-
|
|
46791
|
+
logger.info(`[schedules:poll] ${taskId} node states: ${nodeStates}`);
|
|
46349
46792
|
const tickComplete = isScheduleTickComplete(currentGraph);
|
|
46350
|
-
|
|
46793
|
+
logger.info(`[schedules:poll] ${taskId} tick complete? ${tickComplete}`);
|
|
46351
46794
|
if (tickComplete) {
|
|
46352
46795
|
const completed = completeScheduleTick(currentGraph);
|
|
46353
46796
|
const hasFailedNode = completed.schedule?.resetNodeIds.some(
|
|
@@ -46370,7 +46813,7 @@ async function pollSchedules(context = {}) {
|
|
|
46370
46813
|
}
|
|
46371
46814
|
const dbGraph = store.getGraph(taskId);
|
|
46372
46815
|
if (dbGraph?.schedule?.state === "stopped") {
|
|
46373
|
-
|
|
46816
|
+
logger.info(`[schedules:poll] ${taskId} schedule was stopped mid-tick, preserving stopped state`);
|
|
46374
46817
|
completed.schedule = {
|
|
46375
46818
|
...completed.schedule,
|
|
46376
46819
|
state: "stopped"
|
|
@@ -46384,14 +46827,14 @@ async function pollSchedules(context = {}) {
|
|
|
46384
46827
|
}
|
|
46385
46828
|
result.tickedGraphIds.push(taskId);
|
|
46386
46829
|
} catch (err) {
|
|
46387
|
-
|
|
46830
|
+
logger.error(`[schedules:poll] ${taskId} caught error`, logger.formatError(err));
|
|
46388
46831
|
result.errors.push({
|
|
46389
46832
|
graphId: taskId,
|
|
46390
46833
|
error: err instanceof Error ? err : new Error(String(err))
|
|
46391
46834
|
});
|
|
46392
46835
|
try {
|
|
46393
46836
|
store.releaseScheduleTick(taskId);
|
|
46394
|
-
|
|
46837
|
+
logger.info(`[schedules:poll] ${taskId} released concurrency slot after error`);
|
|
46395
46838
|
} catch {
|
|
46396
46839
|
}
|
|
46397
46840
|
}
|
|
@@ -46400,6 +46843,7 @@ async function pollSchedules(context = {}) {
|
|
|
46400
46843
|
}
|
|
46401
46844
|
var init_schedule_runner = __esm({
|
|
46402
46845
|
"apps/local/src/graph/schedule-runner.ts"() {
|
|
46846
|
+
init_logger2();
|
|
46403
46847
|
init_sqlite_query_adapter();
|
|
46404
46848
|
init_automations();
|
|
46405
46849
|
init_schedule();
|
|
@@ -46434,7 +46878,7 @@ function resolveProvider(raw) {
|
|
|
46434
46878
|
function resolveTeamAgent(sqlite, projectId, taskId) {
|
|
46435
46879
|
if (!taskId) return null;
|
|
46436
46880
|
try {
|
|
46437
|
-
const { parseFrontmatter: parseFrontmatter2 } = (
|
|
46881
|
+
const { parseFrontmatter: parseFrontmatter2 } = (init_db2(), __toCommonJS(db_exports));
|
|
46438
46882
|
const taskRow = sqlite.prepare("SELECT content FROM tasks WHERE id = ? LIMIT 1").get(taskId);
|
|
46439
46883
|
if (!taskRow?.content) return null;
|
|
46440
46884
|
const { frontmatter } = parseFrontmatter2(taskRow.content);
|
|
@@ -46504,7 +46948,7 @@ function createDispatchWork() {
|
|
|
46504
46948
|
message: "No rootMessageId on graph schedule"
|
|
46505
46949
|
};
|
|
46506
46950
|
}
|
|
46507
|
-
|
|
46951
|
+
logger.info(
|
|
46508
46952
|
`[work-dispatch] Dispatching steer node "${node.title}" for graph ${graph.id} (root: ${rootMessageId})`
|
|
46509
46953
|
);
|
|
46510
46954
|
try {
|
|
@@ -46536,7 +46980,7 @@ function createDispatchWork() {
|
|
|
46536
46980
|
const text = (m.content ?? "").slice(0, 600);
|
|
46537
46981
|
return `[${sender}]: ${text}`;
|
|
46538
46982
|
}).join("\n");
|
|
46539
|
-
|
|
46983
|
+
logger.info(`[work-dispatch] Thread: active=${activeProcessCount}, msgs=${snapshot.messages?.length ?? 0}`);
|
|
46540
46984
|
const assessPrompt = [
|
|
46541
46985
|
"--- THREAD STATE ---",
|
|
46542
46986
|
`Root request: ${snapshot.rootMessage?.content ?? "(missing root message)"}`,
|
|
@@ -46556,7 +47000,7 @@ function createDispatchWork() {
|
|
|
46556
47000
|
].filter(Boolean).join("\n");
|
|
46557
47001
|
const { runCliResponse: runCliResponse2 } = await Promise.resolve().then(() => (init_cli_runner(), cli_runner_exports));
|
|
46558
47002
|
const steeringAgent = await getSteeringAgentConfig(threadRef.threadId, graph.taskId);
|
|
46559
|
-
|
|
47003
|
+
logger.info(
|
|
46560
47004
|
`[work-dispatch] Calling ${steeringAgent.provider} via runCliResponse (prompt length: ${assessPrompt.length})...`
|
|
46561
47005
|
);
|
|
46562
47006
|
let fullResponse = "";
|
|
@@ -46569,10 +47013,10 @@ function createDispatchWork() {
|
|
|
46569
47013
|
fullResponse += chunk;
|
|
46570
47014
|
},
|
|
46571
47015
|
onLog: (stream, line) => {
|
|
46572
|
-
|
|
47016
|
+
logger.info(`[work-dispatch] [${stream}] ${line}`);
|
|
46573
47017
|
}
|
|
46574
47018
|
});
|
|
46575
|
-
|
|
47019
|
+
logger.info(`[work-dispatch] Raw response: ${fullResponse.slice(0, 500)}`);
|
|
46576
47020
|
const parsed = parseSteerResponse(fullResponse.trim());
|
|
46577
47021
|
if (!parsed.ok) {
|
|
46578
47022
|
return {
|
|
@@ -46581,7 +47025,7 @@ function createDispatchWork() {
|
|
|
46581
47025
|
message: parsed.error
|
|
46582
47026
|
};
|
|
46583
47027
|
}
|
|
46584
|
-
|
|
47028
|
+
logger.info(`[work-dispatch] Parsed result: ${JSON.stringify(parsed)}`);
|
|
46585
47029
|
return {
|
|
46586
47030
|
status: "success",
|
|
46587
47031
|
output: parsed.value
|
|
@@ -46627,6 +47071,7 @@ function parseSteerResponse(raw) {
|
|
|
46627
47071
|
var import_node_fs5, import_node_path4, import_node_os4, ACTIVE_PROCESS_STATUSES2, DEFAULT_STEER_DIRECTIVE, STEER_OUTPUT_CONTRACT;
|
|
46628
47072
|
var init_work_dispatcher = __esm({
|
|
46629
47073
|
"apps/local/src/graph/work-dispatcher.ts"() {
|
|
47074
|
+
init_logger2();
|
|
46630
47075
|
import_node_fs5 = require("node:fs");
|
|
46631
47076
|
import_node_path4 = require("node:path");
|
|
46632
47077
|
import_node_os4 = require("node:os");
|