@mndrk/agx 2.0.26 → 2.0.32
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 +4 -6
- package/cloud-runtime/standalone/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/.next/app-path-routes-manifest.json +6 -0
- package/cloud-runtime/standalone/.next/build-manifest.json +4 -4
- package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
- package/cloud-runtime/standalone/.next/required-server-files.json +4 -4
- package/cloud-runtime/standalone/.next/routes-manifest.json +45 -0
- package/cloud-runtime/standalone/.next/server/app/_global-error/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents/[id]/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents/[id]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/automations/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/automations/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/chat/route.js +7 -4
- package/cloud-runtime/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js +8 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js +7 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js +8 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/file-search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/health/route.js +5 -4
- package/cloud-runtime/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/history/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js +5 -4
- package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/logs/stream/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/memories/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/memories/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/messages/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/migrate/teams-to-projects/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/migrate/teams-to-projects/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/migrate/workspaces-to-projects/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/migrate/workspaces-to-projects/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +5 -4
- package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/participants/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/participants/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js +4 -4
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js +4 -4
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js +4 -4
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/providers/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/queue/route.js +5 -4
- package/cloud-runtime/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/reactions/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/repos/[id]/knowledge/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/repos/[id]/knowledge/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js +5 -4
- package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/status/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/system/db-status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/task-drafts/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +6 -5
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js +6 -5
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js +5 -4
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js +4 -4
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js +5 -5
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js +5 -5
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/pause/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/pause/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js +5 -5
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js +4 -4
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js +5 -5
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js +6 -5
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/heartbeat/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/heartbeat/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js +5 -4
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/stream/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/stream/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js +7 -6
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js +7 -6
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js +6 -5
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js +6 -5
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js +7 -6
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js +8 -6
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js +4 -3
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js +5 -4
- package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js +5 -4
- package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/stream/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/tasks/stream/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js +10 -0
- package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/threads/route.js +5 -2
- package/cloud-runtime/standalone/.next/server/app/api/threads/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js +5 -4
- package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/automations/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/automations.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/board/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/board/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/index.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/build-manifest.json +18 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/next-font-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/react-loadable-manifest.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js +16 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/build-manifest.json +18 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/next-font-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/react-loadable-manifest.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js +16 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/projects/orphans/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/status/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/status/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/thread/[id]/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/thread/[id]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome/page/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app-paths-manifest.json +6 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__017f03c3._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0925dd01._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__10940c29._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__12afd8a3._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__12c7e188._.js +29 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__16dd1fd7._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__17c2d68f._.js +52 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1dd062c1._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__20b3baea._.js +55 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2388b2b3._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__241a8bcf._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__254e942f._.js +20 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__29ce9c60._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2e596cc8._.js +4 -4
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3198c5c8._.js +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__36d9edbd._.js +14 -14
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__399b2ca9._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4761dc17._.js +8 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4b1a512c._.js +52 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4c50f159._.js +4 -4
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4c8624cc._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4d318eb0._.js +146 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__507a4363._.js +4 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__50ddd3ce._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__543ba6c4._.js +5 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__59b5d4e5._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5ca87ba0._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5d359afa._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__666f8712._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6c187704._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6c26221d._.js +7 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6e59b27c._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__74b97f0a._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__75bff965._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7be8f159._.js +8 -8
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__80655727._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__86f7d27b._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__94fa1edc._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__98535eb3._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9dfaaf72._.js +52 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a189593a._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ac3c2f7f._.js +52 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b40c7aab._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b4d05543._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__bfcedb7c._.js +52 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c08bef05._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c5634f17._.js +112 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c5b8ceb7._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ccfcbcd5._.js +42 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ceb02db8._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__da20a0aa._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__dede3dcd._.js +75 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e122cae2._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e1e7dd1e._.js +25 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e446cb39._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e6ad07c3._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f4b70b67._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f5a2358a._.js +7 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f5b93200._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fa0ebee3._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fcd3e3b8._.js +15 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fce2cdce._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ff9c61da._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_05fa3b89._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/_0a767dfe._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_2f3e5ac1._.js +6 -0
- package/cloud-runtime/standalone/.next/server/chunks/_3e0d34cc._.js +97 -0
- package/cloud-runtime/standalone/.next/server/chunks/_4190f170._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a104cda8._.js → _42e9c8d5._.js} +7 -7
- package/cloud-runtime/standalone/.next/server/chunks/_5ca51127._.js +54 -0
- package/cloud-runtime/standalone/.next/server/chunks/_66e1ddec._.js +57 -0
- package/cloud-runtime/standalone/.next/server/chunks/_6bb93816._.js +6 -0
- package/cloud-runtime/standalone/.next/server/chunks/_7011db4f._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_8b9fde82._.js +97 -0
- package/cloud-runtime/standalone/.next/server/chunks/_95ac98db._.js +49 -0
- package/cloud-runtime/standalone/.next/server/chunks/_994414cd._.js +54 -0
- package/cloud-runtime/standalone/.next/server/chunks/_99b78daf._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/_a877d34f._.js +6 -0
- package/cloud-runtime/standalone/.next/server/chunks/_affbdbb0._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/_c31ca6ab._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_d225c04f._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/_ee99a36b._.js +6 -0
- package/cloud-runtime/standalone/.next/server/chunks/_efc73784._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/_fba13a4a._.js +6 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_chat-runs_[id]_route_actions_033ac330.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_chat-runs_[id]_signal_route_actions_4b56f1cd.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_chat-runs_route_actions_0c8cd01c.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_threads_knowledge_route_actions_c139bcf7.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/lib_09aac4e7._.js +57 -0
- package/cloud-runtime/standalone/.next/server/chunks/lib_cli-runner_ts_dfcf3fda._.js +18 -0
- package/cloud-runtime/standalone/.next/server/chunks/lib_db_ts_e06c6085._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/lib_ea45fe73._.js +68 -23
- package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_2e721df2._.js +74 -30
- package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_74d1c060._.js +70 -31
- package/cloud-runtime/standalone/.next/server/chunks/lib_sqlite-query-adapter_ts_3ea4d849._.js +87 -17
- package/cloud-runtime/standalone/.next/server/chunks/lib_sqlite-query-adapter_ts_b0b1a9b2._.js +294 -0
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0f808fa3.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_2bdede98.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_371d0bff.js +50 -43
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_3d31fed0.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_57a073eb.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_69b6b2e1.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_7f8022ab.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_84e28f38.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_8ec90680.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_a590fcd6.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_cc6c687d.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/src_graph_14067235._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/src_graph_api-route-utils_ts_b7225a0e._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/src_graph_b63e2d39._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/src_graph_executor_ts_55c06268._.js +3 -3
- package/cloud-runtime/standalone/.next/server/chunks/src_graph_executor_ts_a8bc8d58._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__1322ced8._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__47caef59._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__6e83bf83._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__783669c3._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__8973b16a._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__9166c1d6._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__a0a1cb74._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__a8a8afdc._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__fca7df40._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_27f9c020._.js → _0061ebd8._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_064370bc._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_0f4e70b1._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_16c45024._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_27cb3359._.js → _5b2b8a85._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_a696e9b3._.js → _68ac991e._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_6de3f1de._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_c838f593._.js → _6fc3736e._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_85ca101b._.js +8 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_a0cc0fe7._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_a10eb951._.js +4 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_cb4d8a23._.js +4 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_6a367524._.js → _ccb409c5._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_cd5e154b._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_d021529a._.js → _fb292eed._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_4b5d7c9b._.js → _ff5799d6._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_next-internal_server_app_projects_[slug]_knowledge_page_actions_1037c40a.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_execution-graph_page_tsx_f854185a._.js +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_graph_[taskId]_page_tsx_d8b1d582._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_knowledge_page_tsx_e2a55cbd._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_welcome_page_tsx_6c79bc59._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/ce889_server_app_projects_[slug]_thread_[threadId]_page_actions_660a8857.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/components_chat-ui_bfeda794._.js +5 -5
- package/cloud-runtime/standalone/.next/server/chunks/ssr/components_thread_WorkspaceSidebar_tsx_e660301b._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_e70f9321._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_678fa868._.js +3 -0
- package/cloud-runtime/standalone/.next/server/functions-config-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/middleware-build-manifest.js +2 -2
- package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
- package/cloud-runtime/standalone/.next/server/next-font-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/next-font-manifest.json +8 -0
- package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
- package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
- package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/{b5bd2eb6e0c7f71a.js → 010aff7b601302de.js} +3 -3
- package/cloud-runtime/standalone/.next/static/chunks/0c467f54bc78a380.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/1f415d0ce7ebbd08.js +8 -0
- package/cloud-runtime/standalone/.next/static/chunks/24a6ee21f430da93.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/27129bea5b512ce8.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{e44264686aa5ecbf.js → 4200b512bdc226bc.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/463edf3533d27a56.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/486bf7ff282b91a6.js +5 -0
- package/cloud-runtime/standalone/.next/static/chunks/{616d66dbec9e4b8b.js → 58025a80caa3629d.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/5cb0c885b085ea6c.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/60c054bb8b2cffa6.css +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{45b4d0ee5c92d45b.js → 6fbe08eab578c7d3.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/7e2edf97bd6c0874.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/8249f202d33d0d95.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{b4e298542d366e31.js → 87f099ea02aa419d.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/8d15ced2dc70090a.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/9f8f719c4aa25e3d.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/a66e1891e808a664.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{3344004561eabdf8.js → bc3cad3c821b169b.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/bc727d3d9993e9be.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/cd308f61797939cd.js +6 -0
- package/cloud-runtime/standalone/.next/static/chunks/d5d6be8239e57c56.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{ee5f1457fbc593e1.js → dfff51033c303fc7.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/e62d5fa120fdf21f.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{turbopack-5b5918f610666d2d.js → turbopack-97e846241a3a64af.js} +1 -1
- package/cloud-runtime/standalone/README.md +3 -3
- package/cloud-runtime/standalone/app/api/chat/route.ts +38 -28
- package/cloud-runtime/standalone/app/api/chat-runs/[id]/route.ts +19 -0
- package/cloud-runtime/standalone/app/api/chat-runs/[id]/signal/route.ts +32 -0
- package/cloud-runtime/standalone/app/api/chat-runs/route.ts +37 -0
- package/cloud-runtime/standalone/app/api/history/route.ts +6 -0
- package/cloud-runtime/standalone/app/api/projects/[id]/memory/route.ts +17 -0
- package/cloud-runtime/standalone/app/api/providers/route.ts +9 -13
- package/cloud-runtime/standalone/app/api/schedules/debug/route.ts +23 -3
- package/cloud-runtime/standalone/app/api/schedules/poll/route.ts +5 -3
- package/cloud-runtime/standalone/app/api/schedules/route.ts +12 -17
- package/cloud-runtime/standalone/app/api/status/route.ts +6 -5
- package/cloud-runtime/standalone/app/api/threads/knowledge/route.ts +91 -0
- package/cloud-runtime/standalone/app/api/threads/route.ts +18 -1
- package/cloud-runtime/standalone/app/globals.css +1 -4
- package/cloud-runtime/standalone/app/projects/[slug]/graph/[taskId]/page.tsx +0 -21
- package/cloud-runtime/standalone/app/projects/[slug]/knowledge/page.tsx +608 -0
- package/cloud-runtime/standalone/app/projects/[slug]/layout.tsx +18 -2
- package/cloud-runtime/standalone/app/projects/[slug]/page.tsx +1 -455
- package/cloud-runtime/standalone/app/projects/[slug]/thread/[threadId]/page.tsx +14 -0
- package/cloud-runtime/standalone/app/welcome/page.tsx +329 -107
- package/cloud-runtime/standalone/components/ActionToolbar.tsx +3 -3
- package/cloud-runtime/standalone/components/ConfirmDialog.tsx +133 -0
- package/cloud-runtime/standalone/components/IconButton.tsx +3 -3
- package/cloud-runtime/standalone/components/ProjectModal.tsx +2 -2
- package/cloud-runtime/standalone/components/chat-ui/ChatContainer.tsx +415 -76
- package/cloud-runtime/standalone/components/chat-ui/Composer.tsx +149 -97
- package/cloud-runtime/standalone/components/chat-ui/ThreadView.tsx +73 -34
- package/cloud-runtime/standalone/components/thread/WorkspaceSidebar.tsx +51 -23
- package/cloud-runtime/standalone/hooks/useComposerHistory.ts +130 -0
- package/cloud-runtime/standalone/hooks/useGroupChat.ts +24 -1
- package/cloud-runtime/standalone/hooks/useProcessPolling.ts +69 -6
- package/cloud-runtime/standalone/lib/history-store.ts +532 -38
- package/cloud-runtime/standalone/lib/knowledge-notes.ts +251 -0
- package/cloud-runtime/standalone/lib/knowledge-store.ts +233 -0
- package/cloud-runtime/standalone/lib/memory-extractor.ts +76 -60
- package/cloud-runtime/standalone/lib/mesh-core/journal.ts +30 -0
- package/cloud-runtime/standalone/lib/mesh-core/self.ts +94 -0
- package/cloud-runtime/standalone/lib/orchestrator/chat-activities.ts +60 -0
- package/cloud-runtime/standalone/lib/orchestrator/chat-processor.ts +168 -0
- package/cloud-runtime/standalone/lib/orchestrator/chat-types.ts +29 -0
- package/cloud-runtime/standalone/lib/orchestrator/runtime.ts +20 -0
- package/cloud-runtime/standalone/lib/provider-clis.ts +63 -0
- package/cloud-runtime/standalone/lib/queue/boss.ts +2 -1
- package/cloud-runtime/standalone/lib/repo-knowledge.ts +19 -2
- package/cloud-runtime/standalone/lib/sqlite-query-adapter.ts +78 -0
- package/cloud-runtime/standalone/lib/stream-multiplexer.ts +101 -14
- package/cloud-runtime/standalone/lib/task-context.ts +7 -4
- package/cloud-runtime/standalone/lib/thread-knowledge-runs.ts +227 -0
- package/cloud-runtime/standalone/lib/thread-knowledge.ts +419 -0
- package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/README.md +2 -2
- package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/lib/glib-2.0/include/glibconfig.h +9 -8
- package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib → sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3} +0 -0
- package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/package.json +11 -5
- package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +46 -0
- package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +221 -0
- package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +1 -0
- package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
- package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +42 -0
- package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +30 -0
- package/cloud-runtime/standalone/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
- package/cloud-runtime/standalone/node_modules/@img/{sharp-darwin-arm64 → sharp-linux-x64}/package.json +13 -7
- package/cloud-runtime/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
- package/cloud-runtime/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +46 -0
- package/cloud-runtime/standalone/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/cloud-runtime/standalone/node_modules/better-sqlite3-90e2652d1716b047/build/Release/better_sqlite3.node +0 -0
- package/cloud-runtime/standalone/package-lock.json +13 -0
- package/cloud-runtime/standalone/package.json +1 -0
- package/cloud-runtime/standalone/server.js +1 -1
- package/cloud-runtime/standalone/src/graph/api-schemas.ts +2 -2
- package/cloud-runtime/standalone/src/graph/executor.ts +9 -7
- package/cloud-runtime/standalone/src/graph/function-executor.ts +4 -1
- package/cloud-runtime/standalone/src/graph/internal-function-dispatcher.ts +174 -0
- package/cloud-runtime/standalone/src/graph/types.ts +3 -3
- package/cloud-runtime/standalone/src/graph/work-dispatcher.ts +5 -1
- package/cloud-runtime/standalone/tsconfig.json +3 -1
- package/cloud-runtime/standalone/worker/index.js +2930 -137
- package/cloud-runtime/standalone/worker/index.ts +8 -1
- package/package.json +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[externals]_child_process_964038fc._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__03a1bf91._.js +0 -6
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__065c5114._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__07dce481._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__09f46c85._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__149bcf6d._.js +0 -115
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__14bad16e._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__14e3bf74._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1632828c._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__24b8ccd3._.js +0 -52
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__284e1cbe._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__28d6e806._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2bcb75a7._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__32e5f341._.js +0 -4
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3b4a126a._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3c7464e8._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3d82dc78._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__406bdd54._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__40d6458a._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__47ca4946._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__49fb4a12._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5327e395._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__55d75c3a._.js +0 -7
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__592e81f9._.js +0 -13
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5a6a194c._.js +0 -52
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5af16b4f._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__60ba5058._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6716441c._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__673aedc6._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6a44c891._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6b680112._.js +0 -55
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7312fad4._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7456196c._.js +0 -52
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__74d26856._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__772c6fae._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__787ba54b._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__79157eef._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__82d76712._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__8311f060._.js +0 -6
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__84e90655._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__90a887dc._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9345d703._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__98294450._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__985f0d9f._.js +0 -51
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9b32295e._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a64d978e._.js +0 -6
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__babcd1af._.js +0 -13
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c16f03fb._.js +0 -13
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c2767ca5._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c72c6d4a._.js +0 -25
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ca851b15._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d25227df._.js +0 -29
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e06820c3._.js +0 -6
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e429a0bc._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e4397d43._.js +0 -7
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ec8735f4._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ef09ab99._.js +0 -13
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f366a937._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fdaa8a27._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fddde532._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ff53f445._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/_1111d342._.js +0 -101
- package/cloud-runtime/standalone/.next/server/chunks/_4b60ba15._.js +0 -49
- package/cloud-runtime/standalone/.next/server/chunks/_54252651._.js +0 -49
- package/cloud-runtime/standalone/.next/server/chunks/_818a89c4._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/_a4a21d4f._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/_a759d52b._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/_e6b28eae._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/_e868e7c1._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/lib_23509137._.js +0 -196
- package/cloud-runtime/standalone/.next/server/chunks/lib_3273d5f9._.js +0 -196
- package/cloud-runtime/standalone/.next/server/chunks/lib_50ba0b4c._.js +0 -63
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_33963d95.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_56c5acb3.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_888b3578.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/src_graph_e3bb4da8._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__113d6767._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__6a9d3855._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__942ca438._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__ce3b51aa._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_1ec61dee._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_27904584._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_43472af3._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_94effa0f._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_d458d1eb._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_fbced30b._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_page_tsx_e0fabf6e._.js +0 -8
- package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_a8f86889._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_play_6595a532.js +0 -3
- package/cloud-runtime/standalone/.next/static/chunks/1184bf1bfdf97666.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/4c01a5f19f9e775e.js +0 -8
- package/cloud-runtime/standalone/.next/static/chunks/5ace4b4f4475962a.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/6509f7fecbf44493.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/661090206d8bae9b.css +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/6dbf5940e30fa9c7.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/7e91f395ace1dd2c.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/7f13efe9329d3f97.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/80219bbddcf65109.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/86ace6febb11ad71.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/b079c677d9b39f98.js +0 -5
- package/cloud-runtime/standalone/.next/static/chunks/b88352740262931f.js +0 -6
- package/cloud-runtime/standalone/.next/static/chunks/c5609fd2abb65850.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/d95cd010361834be.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/f7bbf5cfcfed8ba9.js +0 -1
- package/cloud-runtime/standalone/coverage/clover.xml +0 -1208
- package/cloud-runtime/standalone/coverage/coverage-final.json +0 -29
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/audit/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/audit/route.ts.html +0 -208
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/[...nextauth]/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/[...nextauth]/route.ts.html +0 -166
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/daemon-secret/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/daemon-secret/route.ts.html +0 -532
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/status/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/status/route.ts.html +0 -178
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/learnings/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/learnings/route.ts.html +0 -262
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/logs/stream/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/logs/stream/route.ts.html +0 -448
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/complete/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/complete/route.ts.html +0 -331
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/route.ts.html +0 -505
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/stage-prompts/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/stage-prompts/route.ts.html +0 -412
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/advance/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/advance/route.ts.html +0 -304
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/logs/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/logs/route.ts.html +0 -202
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/route.ts.html +0 -373
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/route.ts.html +0 -499
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/stream/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/stream/route.ts.html +0 -349
- package/cloud-runtime/standalone/coverage/lcov-report/base.css +0 -224
- package/cloud-runtime/standalone/coverage/lcov-report/block-navigation.js +0 -87
- package/cloud-runtime/standalone/coverage/lcov-report/components/AuthProvider.tsx.html +0 -259
- package/cloud-runtime/standalone/coverage/lcov-report/components/ChatInterface.tsx.html +0 -1228
- package/cloud-runtime/standalone/coverage/lcov-report/components/KanbanBoard.tsx.html +0 -1024
- package/cloud-runtime/standalone/coverage/lcov-report/components/Layout.tsx.html +0 -211
- package/cloud-runtime/standalone/coverage/lcov-report/components/LearningsPanel.tsx.html +0 -535
- package/cloud-runtime/standalone/coverage/lcov-report/components/LogTimeline.tsx.html +0 -415
- package/cloud-runtime/standalone/coverage/lcov-report/components/SortableTaskCard.tsx.html +0 -358
- package/cloud-runtime/standalone/coverage/lcov-report/components/StagePills.tsx.html +0 -439
- package/cloud-runtime/standalone/coverage/lcov-report/components/TaskCard.tsx.html +0 -514
- package/cloud-runtime/standalone/coverage/lcov-report/components/TaskCardOverlay.tsx.html +0 -256
- package/cloud-runtime/standalone/coverage/lcov-report/components/TaskDetail.tsx.html +0 -622
- package/cloud-runtime/standalone/coverage/lcov-report/components/TaskList.tsx.html +0 -253
- package/cloud-runtime/standalone/coverage/lcov-report/components/index.html +0 -281
- package/cloud-runtime/standalone/coverage/lcov-report/favicon.png +0 -0
- package/cloud-runtime/standalone/coverage/lcov-report/hooks/index.html +0 -116
- package/cloud-runtime/standalone/coverage/lcov-report/hooks/useTasks.ts.html +0 -1042
- package/cloud-runtime/standalone/coverage/lcov-report/index.html +0 -341
- package/cloud-runtime/standalone/coverage/lcov-report/lib/auth-client.ts.html +0 -202
- package/cloud-runtime/standalone/coverage/lcov-report/lib/auth-server.ts.html +0 -172
- package/cloud-runtime/standalone/coverage/lcov-report/lib/auth.ts.html +0 -265
- package/cloud-runtime/standalone/coverage/lcov-report/lib/db.ts.html +0 -1252
- package/cloud-runtime/standalone/coverage/lcov-report/lib/index.html +0 -131
- package/cloud-runtime/standalone/coverage/lcov-report/lib/orchestrator.ts.html +0 -409
- package/cloud-runtime/standalone/coverage/lcov-report/lib/security.ts.html +0 -1165
- package/cloud-runtime/standalone/coverage/lcov-report/lib/supabase-server.ts.html +0 -175
- package/cloud-runtime/standalone/coverage/lcov-report/lib/supabase.ts.html +0 -157
- package/cloud-runtime/standalone/coverage/lcov-report/prettify.css +0 -1
- package/cloud-runtime/standalone/coverage/lcov-report/prettify.js +0 -2
- package/cloud-runtime/standalone/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/cloud-runtime/standalone/coverage/lcov-report/sorter.js +0 -210
- package/cloud-runtime/standalone/coverage/lcov.info +0 -2386
- package/cloud-runtime/standalone/docs/LIMITS.md +0 -63
- package/cloud-runtime/standalone/docs/architecture/ADR-001-hybrid-to-full-sqlite.md +0 -345
- package/cloud-runtime/standalone/docs/baseline/baseline-report.json +0 -1009
- package/cloud-runtime/standalone/docs/baseline/critical-queries.md +0 -105
- package/cloud-runtime/standalone/docs/baseline/lock-metrics.json +0 -21
- package/cloud-runtime/standalone/docs/baseline/read-latency.json +0 -146
- package/cloud-runtime/standalone/docs/baseline/restore-time.json +0 -10
- package/cloud-runtime/standalone/docs/baseline/write-metrics.json +0 -803
- package/cloud-runtime/standalone/docs/decisions/sqlite-migration-adr.md +0 -327
- package/cloud-runtime/standalone/docs/error-code-mapping.md +0 -74
- package/cloud-runtime/standalone/docs/migration-plan.md +0 -120
- package/cloud-runtime/standalone/docs/migration-spec.md +0 -345
- package/cloud-runtime/standalone/docs/pg-sqlite-compatibility-matrix.md +0 -554
- package/cloud-runtime/standalone/docs/project-agent-migration-status.md +0 -229
- package/cloud-runtime/standalone/docs/runbook-shadow-read.md +0 -66
- package/cloud-runtime/standalone/docs/runbook.md +0 -155
- package/cloud-runtime/standalone/docs/specs/cli-postgres-removal.md +0 -69
- package/cloud-runtime/standalone/docs/specs/thread-mentions.md +0 -53
- package/cloud-runtime/standalone/docs/ux/GlobalChatFlow.storyboard +0 -23
- package/cloud-runtime/standalone/docs/ux/assistant-chat-cli.md +0 -32
- package/cloud-runtime/standalone/mcp/dist/constants.js +0 -66
- package/cloud-runtime/standalone/mcp/dist/db.js +0 -220
- package/cloud-runtime/standalone/mcp/dist/index.js +0 -7
- package/cloud-runtime/standalone/mcp/dist/security.js +0 -18
- package/cloud-runtime/standalone/mcp/dist/server.js +0 -240
- package/cloud-runtime/standalone/mcp/dist/task-context.js +0 -287
- package/cloud-runtime/standalone/mcp/dist/test-client.js +0 -82
- package/cloud-runtime/standalone/mcp/dist/tools/audit.js +0 -69
- package/cloud-runtime/standalone/mcp/dist/tools/learnings.js +0 -88
- package/cloud-runtime/standalone/mcp/dist/tools/queue.js +0 -312
- package/cloud-runtime/standalone/mcp/dist/tools/tasks.js +0 -244
- package/cloud-runtime/standalone/mcp/dist/types.js +0 -74
- package/cloud-runtime/standalone/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
- package/cloud-runtime/standalone/notes/comments-context-demo.md +0 -141
- package/cloud-runtime/standalone/notes/comments-context-plan.md +0 -119
- package/cloud-runtime/standalone/notes/context-audit.md +0 -21
- package/cloud-runtime/standalone/notes/project-layer-plan.md +0 -30
- package/cloud-runtime/standalone/notes/project-layer.md +0 -123
- package/cloud-runtime/standalone/notes/temporal-migration-design.md +0 -199
- package/cloud-runtime/standalone/playwright-report/data/00d55996f37c1506b90144c85493dd85032c13e5.png +0 -0
- package/cloud-runtime/standalone/playwright-report/data/0b9d409e57237ae111d7ba258d3dfe64dc368456.png +0 -0
- package/cloud-runtime/standalone/playwright-report/data/b33d5e80a15bd1deda4415b9d318ef73f581c950.png +0 -0
- package/cloud-runtime/standalone/playwright-report/data/b55684161aa440d0614595e13c91338f0420abbb.md +0 -131
- package/cloud-runtime/standalone/playwright-report/data/b9913957ae07e7565c38ddd71215be79b1ceb017.png +0 -0
- package/cloud-runtime/standalone/playwright-report/data/c3538be8ebbebc9fe4a7df8f12f04483af4a0d91.png +0 -0
- package/cloud-runtime/standalone/playwright-report/data/fe638f64ff5e36f1c30325564565662d3f57da87.md +0 -180
- package/cloud-runtime/standalone/playwright-report/index.html +0 -85
- package/cloud-runtime/standalone/test-results/auth-Authentication-Flow-S-aff25-sion-across-page-navigation-chromium/test-failed-1.png +0 -0
- package/cloud-runtime/standalone/test-results/comments-Task-comments-add-4dc59-nd-persists-it-for-the-task-chromium/error-context.md +0 -131
- package/cloud-runtime/standalone/test-results/comments-Task-comments-add-4dc59-nd-persists-it-for-the-task-chromium/test-failed-1.png +0 -0
- package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage--4082a-er-planning-after-ideation--chromium/error-context.md +0 -180
- package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage--4082a-er-planning-after-ideation--chromium/test-failed-1.png +0 -0
- package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage-Columns-displays-all-9-SDLC-stages-chromium/error-context.md +0 -180
- package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage-Columns-displays-all-9-SDLC-stages-chromium/test-failed-1.png +0 -0
- package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Task-D-b6d98-ys-tasks-in-correct-columns-chromium/error-context.md +0 -180
- package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Task-D-b6d98-ys-tasks-in-correct-columns-chromium/test-failed-1.png +0 -0
- package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Task-Display-shows-task-count-per-column-chromium/test-failed-1.png +0 -0
- package/cloud-runtime/standalone/test-results/kanban-Task-Lifecycle-can-advance-task-through-all-stages-chromium/test-failed-1.png +0 -0
- package/cloud-runtime/standalone/tsconfig.tsbuildinfo +0 -1
- /package/cloud-runtime/standalone/.next/static/{AB08MY3MKLsqeJYL8OZ2g → i_9nSHyb52FGkCbRgv7EJ}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/.next/static/{AB08MY3MKLsqeJYL8OZ2g → i_9nSHyb52FGkCbRgv7EJ}/_clientMiddlewareManifest.json +0 -0
- /package/cloud-runtime/standalone/.next/static/{AB08MY3MKLsqeJYL8OZ2g → i_9nSHyb52FGkCbRgv7EJ}/_ssgManifest.js +0 -0
- /package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/lib/index.js +0 -0
- /package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-darwin-arm64 → sharp-libvips-linux-x64}/versions.json +0 -0
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
# Operational Limits and Non-Goals
|
|
2
|
-
|
|
3
|
-
This document defines hard architectural constraints for agx-cloud. Exceeding these limits requires an architecture review — they are not targets to optimize toward, but ceilings that protect system integrity.
|
|
4
|
-
|
|
5
|
-
## Concurrency Model
|
|
6
|
-
|
|
7
|
-
**Constraint: Single-coordinator, single-writer.**
|
|
8
|
-
|
|
9
|
-
agx-cloud uses SQLite in WAL (Write-Ahead Logging) mode as its primary datastore. SQLite permits concurrent readers but only a single writer at any given moment. The system assumes:
|
|
10
|
-
|
|
11
|
-
- **One coordinator process** owns the database and serializes all writes.
|
|
12
|
-
- Workers (agents) communicate intent through the coordinator; they never write to SQLite directly.
|
|
13
|
-
- There is no multi-master replication, no write sharding, and no distributed consensus.
|
|
14
|
-
|
|
15
|
-
This is a deliberate choice, not a limitation to work around. Single-writer simplifies reasoning about state transitions, eliminates write conflicts, and keeps the operational surface small.
|
|
16
|
-
|
|
17
|
-
## Write QPS Ceiling
|
|
18
|
-
|
|
19
|
-
**Constraint: ~50 writes per second.**
|
|
20
|
-
|
|
21
|
-
SQLite in WAL mode on modern hardware sustains roughly 50–200 write transactions per second depending on disk, transaction size, and fsync policy. agx-cloud targets **~50 write QPS** as its operational ceiling to leave headroom for:
|
|
22
|
-
|
|
23
|
-
- Burst absorption (task creation spikes, bulk status updates)
|
|
24
|
-
- Checkpoint overhead (WAL → main database merges)
|
|
25
|
-
- Co-located read latency (writers block checkpoint, checkpoint blocks readers beyond a threshold)
|
|
26
|
-
|
|
27
|
-
If sustained write load approaches this ceiling, the correct response is to investigate write batching or queue coalescing — not to add more writer processes.
|
|
28
|
-
|
|
29
|
-
## Max Worker Count
|
|
30
|
-
|
|
31
|
-
**Constraint: 10 concurrent workers per coordinator.**
|
|
32
|
-
|
|
33
|
-
Each active worker generates write traffic (status updates, checkpoints, log entries, artifact records). At an estimated 2–5 writes/sec per active worker, 10 workers approach the ~50 QPS ceiling. The recommended cap:
|
|
34
|
-
|
|
35
|
-
| Workers | Est. Write QPS | Headroom |
|
|
36
|
-
|---------|---------------|----------|
|
|
37
|
-
| 5 | 10–25 | Comfortable |
|
|
38
|
-
| 10 | 20–50 | At ceiling |
|
|
39
|
-
| 20+ | 40–100+ | Unsafe — expect SQLITE_BUSY |
|
|
40
|
-
|
|
41
|
-
Beyond 10 concurrent workers, `SQLITE_BUSY` errors and increased retry latency become likely. Do not raise this limit without migrating the write path.
|
|
42
|
-
|
|
43
|
-
## Non-Goals
|
|
44
|
-
|
|
45
|
-
The following are explicitly **not goals** of the current architecture:
|
|
46
|
-
|
|
47
|
-
- **Multi-master / multi-coordinator writes** — No plan to support multiple processes writing to the same database.
|
|
48
|
-
- **Horizontal write scaling** — Write throughput scales vertically (faster disk, batching), not horizontally (more writers).
|
|
49
|
-
- **Sub-millisecond write latency** — SQLite write latency is typically 1–20ms. The system does not optimize for sub-ms writes.
|
|
50
|
-
- **Thousands of concurrent workers** — The coordinator model assumes a small fleet (≤10). Large fan-out requires a different data layer.
|
|
51
|
-
- **Geographic distribution** — Single-node, single-file database. No cross-region replication.
|
|
52
|
-
|
|
53
|
-
## When to Revisit
|
|
54
|
-
|
|
55
|
-
Re-evaluate this architecture if any of the following thresholds are crossed:
|
|
56
|
-
|
|
57
|
-
1. **Sustained write QPS > 40** — Approaching the ceiling; investigate batching first, then consider migration.
|
|
58
|
-
2. **Worker count > 10 needed regularly** — The coordinator bottleneck will surface as increased latency and retries.
|
|
59
|
-
3. **Database file > 1 GB** — Query planning and checkpoint duration may degrade. Consider archival or partitioning.
|
|
60
|
-
4. **Multi-node deployment required** — SQLite is single-node. Any HA or multi-region requirement forces a datastore change (e.g., PostgreSQL, Turso/libSQL).
|
|
61
|
-
5. **Write contention errors (`SQLITE_BUSY`) in production logs** — Immediate signal that the single-writer model is under pressure.
|
|
62
|
-
|
|
63
|
-
Migration path: the most likely evolution is PostgreSQL for the write path, retaining SQLite for local/edge read caches if needed.
|
|
@@ -1,345 +0,0 @@
|
|
|
1
|
-
# ADR-001: Hybrid-to-Full-SQLite Architecture Migration
|
|
2
|
-
|
|
3
|
-
**Status:** Accepted
|
|
4
|
-
**Date:** 2026-02-21
|
|
5
|
-
**Author:** Flint
|
|
6
|
-
**Stakeholders:** Jewel (queue), Cody (queries/validation), Jane (schema), Flint (tests)
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## Context
|
|
11
|
-
|
|
12
|
-
agx-cloud originally ran on **Postgres-only** (via `pg` + `pg-boss` for job queues). As the system evolved toward a single-binary, edge-deployable architecture, the team evaluated whether Postgres remained the right choice.
|
|
13
|
-
|
|
14
|
-
### Original Hybrid Model Rationale
|
|
15
|
-
|
|
16
|
-
The project first moved to a **hybrid Postgres + SQLite** model:
|
|
17
|
-
|
|
18
|
-
- **Postgres** retained for the main 18-table application schema (tasks, projects, graphs, workflows, learnings, etc.) — leveraging `JSONB`, `uuid[]`, triggers, and `gen_random_uuid()`.
|
|
19
|
-
- **SQLite** adopted for ancillary stores (participants, attachments, message history) where embedded, zero-config storage was sufficient.
|
|
20
|
-
- **pg-boss** used for durable job queues on top of Postgres.
|
|
21
|
-
|
|
22
|
-
This hybrid approach let the team start de-risking SQLite adoption incrementally while keeping the battle-tested Postgres schema intact.
|
|
23
|
-
|
|
24
|
-
### Jewel's pg-boss Blocker Analysis
|
|
25
|
-
|
|
26
|
-
Jewel identified **pg-boss as the critical blocker** preventing full Postgres removal:
|
|
27
|
-
|
|
28
|
-
1. **Operational overhead** — pg-boss requires a live Postgres connection, periodic maintenance (`maintenance` cron), and schema migrations on its internal tables.
|
|
29
|
-
2. **Deployment coupling** — Every agx-cloud deployment needed a Postgres instance, even for single-user or edge scenarios where a full RDBMS is unnecessary.
|
|
30
|
-
3. **Transactional semantics mismatch** — pg-boss's internal polling and advisory-lock mechanism added latency and complexity that a simpler embedded queue could avoid.
|
|
31
|
-
4. **Dependency weight** — `pg-boss@12.9.0` + `pg@8.16.3` pulled in connection pooling, type parsing, and protocol handling that the application didn't need if the queue moved to SQLite.
|
|
32
|
-
|
|
33
|
-
The core insight: if the queue layer could run on SQLite, the *only* remaining Postgres dependency would be the application schema — and that could be migrated on a known timeline.
|
|
34
|
-
|
|
35
|
-
## Decision
|
|
36
|
-
|
|
37
|
-
**Fully migrate from Postgres to SQLite** across all data layers, executed in six phases.
|
|
38
|
-
|
|
39
|
-
### How the Blocker Was Resolved: SQLiteQueueAdapter
|
|
40
|
-
|
|
41
|
-
Jewel implemented `lib/queue/sqlite-adapter.ts` — a custom `QueueAdapter` backed by `better-sqlite3`:
|
|
42
|
-
|
|
43
|
-
- **WAL mode** for concurrent reads during writes.
|
|
44
|
-
- **Transactional claim pattern**: find candidate jobs → mark active within a single transaction (no advisory locks needed).
|
|
45
|
-
- **Exponential backoff retry** with configurable `retryLimit`, `retryDelay`, and `retryBackoff`.
|
|
46
|
-
- **Job lifecycle**: `pending → active → completed | failed | retry`.
|
|
47
|
-
- **Index**: `(queue, status, start_after, priority DESC, created_at ASC)` for efficient polling.
|
|
48
|
-
|
|
49
|
-
The temporal service compatibility layer (`lib/temporal/service.ts`) was updated to route through this adapter, preserving API-route compatibility.
|
|
50
|
-
|
|
51
|
-
**Result:** pg-boss fully replaced. The queue entry point (`lib/queue/boss.ts`) now returns `SQLiteQueueAdapter` by default.
|
|
52
|
-
|
|
53
|
-
## Migration Spec
|
|
54
|
-
|
|
55
|
-
Full specification: [`planning/pg-to-sqlite-migration-spec-v2.md`](../../planning/pg-to-sqlite-migration-spec-v2.md)
|
|
56
|
-
Short version: [`docs/migration-spec.md`](../migration-spec.md)
|
|
57
|
-
|
|
58
|
-
### Phases
|
|
59
|
-
|
|
60
|
-
| Phase | Owner | Description | Status |
|
|
61
|
-
|-------|-------|-------------|--------|
|
|
62
|
-
| 0 | Jewel | Queue layer → SQLiteQueueAdapter | **Complete** |
|
|
63
|
-
| 1 | Jewel | DbAdapter interface (pluggable PG/SQLite) | Pending |
|
|
64
|
-
| 2 | Cody | Query compatibility matrix (ILIKE→LIKE, JSONB→json_each, etc.) | Pending |
|
|
65
|
-
| 3 | Jane | Schema & data migration (18 tables → SQLite DDL) | Pending |
|
|
66
|
-
| 4 | Flint | Parity test harness (CRUD, filters, concurrency, edge cases) | Pending |
|
|
67
|
-
| 5 | Cody | Shadow-read validation (48-72h dual-run) | Pending |
|
|
68
|
-
| 6 | All | Cleanup: remove `pg`, `pg-boss`, `@types/pg` after 30-day soak | Pending |
|
|
69
|
-
|
|
70
|
-
### Key Technical Contracts
|
|
71
|
-
|
|
72
|
-
**SQLite Runtime (per connection):**
|
|
73
|
-
```sql
|
|
74
|
-
PRAGMA journal_mode = WAL;
|
|
75
|
-
PRAGMA foreign_keys = ON;
|
|
76
|
-
PRAGMA busy_timeout = 5000;
|
|
77
|
-
PRAGMA synchronous = NORMAL;
|
|
78
|
-
PRAGMA cache_size = -16000;
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
**Type Semantics (PG → SQLite):**
|
|
82
|
-
|
|
83
|
-
| PG Type | SQLite | Encoding |
|
|
84
|
-
|---------|--------|----------|
|
|
85
|
-
| `uuid` | `TEXT` | Lowercase hex with hyphens |
|
|
86
|
-
| `timestamptz` | `TEXT` | ISO 8601 UTC with `Z` suffix |
|
|
87
|
-
| `boolean` | `INTEGER` | `0`/`1` with CHECK constraint |
|
|
88
|
-
| `jsonb` | `TEXT` | `JSON.stringify`, validated with `json_valid()` |
|
|
89
|
-
| `uuid[]` / `text[]` | `TEXT` | JSON array |
|
|
90
|
-
| `numeric(12,6)` | `REAL` | IEEE 754 (acceptable precision loss for costs) |
|
|
91
|
-
|
|
92
|
-
## Consequences
|
|
93
|
-
|
|
94
|
-
**Positive:**
|
|
95
|
-
- Single-binary deployment — no external database process required.
|
|
96
|
-
- Simpler ops — no connection pooling, no Postgres upgrades, no pg-boss maintenance.
|
|
97
|
-
- Edge-deployable — SQLite works anywhere, including resource-constrained environments.
|
|
98
|
-
- Faster local development — `better-sqlite3` is synchronous, no connection setup.
|
|
99
|
-
|
|
100
|
-
**Negative / Risks:**
|
|
101
|
-
- Write concurrency limited to single-writer (mitigated by `busy_timeout` + WAL).
|
|
102
|
-
- JSON query performance may regress vs. native JSONB (mitigated by expression indexes).
|
|
103
|
-
- Loss of Postgres-specific features (advisory locks, `LISTEN/NOTIFY`, full-text with `tsvector`).
|
|
104
|
-
|
|
105
|
-
## Reopen Criteria
|
|
106
|
-
|
|
107
|
-
This decision should be revisited if any of the following occur:
|
|
108
|
-
|
|
109
|
-
1. **Write concurrency** becomes a bottleneck — multiple concurrent writers consistently hit `SQLITE_BUSY` despite `busy_timeout` tuning.
|
|
110
|
-
2. **Data volume** exceeds SQLite practical limits — single-file database approaches multi-GB and query latency degrades.
|
|
111
|
-
3. **Multi-node deployment** is required — SQLite cannot serve as a shared database across multiple application instances without an external replication layer (e.g., LiteFS, Turso).
|
|
112
|
-
4. **Regulatory/compliance** requirements mandate a database with specific audit, encryption-at-rest, or role-based access features beyond SQLite's capabilities.
|
|
113
|
-
5. **Advanced query patterns** are needed — heavy use of CTEs with recursive mutations, window functions over JSONB, or full-text search at scale where Postgres significantly outperforms.
|
|
114
|
-
|
|
115
|
-
## Cody's Revisit Checklist
|
|
116
|
-
|
|
117
|
-
Before re-introducing Postgres (or any external database), the team must complete:
|
|
118
|
-
|
|
119
|
-
- [ ] **Portability audit** — Inventory all SQLite-specific patterns (PRAGMAs, `json_each()`, `RETURNING`, type conventions). Estimate migration effort to target database.
|
|
120
|
-
- [ ] **Transaction semantics test** — Verify the target database handles the application's transaction patterns (single-writer assumption, busy-wait behavior, implicit vs. explicit transactions) without behavioral regressions.
|
|
121
|
-
- [ ] **Migration safety plan** — Define rollback strategy, data verification checksums, dual-write period, and cutover criteria. No data loss is acceptable.
|
|
122
|
-
- [ ] **Reliability SLO proof** — Demonstrate the target database meets or exceeds current SQLite reliability (WAL durability, crash recovery, backup via `.backup()`). Provide 30-day production metrics.
|
|
123
|
-
- [ ] **Security/compliance parity** — Confirm the target database provides equivalent or better security posture: encryption at rest, access control, audit logging. Document any gaps.
|
|
124
|
-
- [ ] **Runbook readiness** — Operational runbooks must exist for: provisioning, backup/restore, monitoring, alerting, scaling, incident response, and version upgrades. No deployment without runbooks.
|
|
125
|
-
|
|
126
|
-
---
|
|
127
|
-
|
|
128
|
-
## Backend and API Layer Changes
|
|
129
|
-
|
|
130
|
-
This section inventories every backend service and API route affected by the migration, documents Postgres-to-SQLite transaction semantics differences, and notes API routes with changed behavior.
|
|
131
|
-
|
|
132
|
-
### Connection Management
|
|
133
|
-
|
|
134
|
-
**Current (Postgres):** `lib/db-adapter.ts` creates a `pg.Pool` with `DATABASE_URL`, connection pooling, and `search_path=agx,public`. Every query goes through `pool.query()`.
|
|
135
|
-
|
|
136
|
-
**Post-migration (SQLite):** Connection pooling is removed entirely. `better-sqlite3` operates synchronously with a single file handle per process. WAL mode allows concurrent reads during a single writer. No connection string, no search path — the database is a local file.
|
|
137
|
-
|
|
138
|
-
| Concern | Postgres (current) | SQLite (target) |
|
|
139
|
-
|---------|-------------------|-----------------|
|
|
140
|
-
| Connection model | Pool of N TCP connections | Single file handle, synchronous |
|
|
141
|
-
| Concurrency | Multiple concurrent writers | Single writer + concurrent readers (WAL) |
|
|
142
|
-
| Schema isolation | `search_path=agx,public` | Not applicable (single namespace) |
|
|
143
|
-
| Parameterization | `$1, $2, …` positional params | `?, ?, …` positional params |
|
|
144
|
-
| Startup cost | TCP handshake + auth per connection | `ffi` open, ~1ms |
|
|
145
|
-
|
|
146
|
-
### Transaction Semantics Differences
|
|
147
|
-
|
|
148
|
-
| Behavior | Postgres | SQLite | Migration Impact |
|
|
149
|
-
|----------|----------|--------|------------------|
|
|
150
|
-
| **Implicit transactions** | Each statement auto-commits; explicit `BEGIN`/`COMMIT` for multi-statement | Same behavior, but `BEGIN` acquires a shared lock; `BEGIN IMMEDIATE` acquires a write lock | Must use `BEGIN IMMEDIATE` for any transaction that will write, to avoid `SQLITE_BUSY` upgrade failures |
|
|
151
|
-
| **Isolation level** | Read Committed (default) | Serializable (only level available) | Stricter — no dirty reads possible, but write contention increases |
|
|
152
|
-
| **Concurrent writes** | Multiple writers, row-level locking | Single writer at a time; others wait up to `busy_timeout` | `busy_timeout = 5000` absorbs typical contention; sustained parallel writes will queue |
|
|
153
|
-
| **Advisory locks** | `pg_advisory_lock()` used by pg-boss | Not available | Replaced by SQLiteQueueAdapter's transactional claim pattern |
|
|
154
|
-
| **RETURNING clause** | Full support on INSERT/UPDATE/DELETE | Supported since SQLite 3.35.0 | No change needed — minimum version enforced at startup |
|
|
155
|
-
| **ON CONFLICT (upsert)** | `ON CONFLICT … DO UPDATE SET` | Same syntax supported | No change needed |
|
|
156
|
-
| **SAVEPOINT / nested tx** | Full support | Supported via `SAVEPOINT`/`RELEASE` | No change needed |
|
|
157
|
-
| **`IS NOT DISTINCT FROM`** | Native operator | Not supported | Must rewrite to `(col = ? OR (col IS NULL AND ? IS NULL))` or use `IS` operator |
|
|
158
|
-
| **`= ANY($1)` (array param)** | Native array parameter | Not supported | Must rewrite to `IN (?, ?, …)` with expanded params or use `json_each()` |
|
|
159
|
-
| **`@>` (array contains)** | Native array containment | Not supported | Must rewrite to subquery against `json_each()` |
|
|
160
|
-
| **`ILIKE`** | Case-insensitive LIKE | Not supported | Must rewrite to `LIKE` with `COLLATE NOCASE` or `lower()` |
|
|
161
|
-
| **`NULLS FIRST/LAST`** | Native in `ORDER BY` | Supported since SQLite 3.30.0 | No change needed |
|
|
162
|
-
|
|
163
|
-
### Affected Backend Services
|
|
164
|
-
|
|
165
|
-
Every service below calls `createAdminDbClient()` from `lib/db-adapter.ts` and will require adapter changes:
|
|
166
|
-
|
|
167
|
-
| Service File | DB Operations | Migration Notes |
|
|
168
|
-
|-------------|---------------|-----------------|
|
|
169
|
-
| `lib/db.ts` | ~40 call sites — CRUD for tasks, projects, learnings, comments, logs, costs, user settings, workflows, graphs, runs | Central data layer; every query pattern must be validated against SQLite compatibility matrix |
|
|
170
|
-
| `lib/db-adapter.ts` | `QueryBuilder` with Postgres-specific SQL generation (`$1` params, `= ANY()`, `@>`, `IS NOT DISTINCT FROM`, `ILIKE`) | **Primary migration target** — must produce SQLite-compatible SQL |
|
|
171
|
-
| `lib/db-server.ts` | Thin wrapper returning `createAdminDbClient()` | Minimal change — swap underlying adapter |
|
|
172
|
-
| `lib/db-client.ts` | Client-side stub (no real DB calls) | No change needed |
|
|
173
|
-
| `lib/task-context.ts` | Task context resolution (3 call sites) | Standard CRUD — no PG-specific patterns |
|
|
174
|
-
| `lib/dependency-manager.ts` | Task dependency graph queries (5 call sites) | Standard CRUD — no PG-specific patterns |
|
|
175
|
-
| `lib/security.ts` | API key management, rate limiting (4 call sites) | Rate limit `rpc` uses `ON CONFLICT … DO UPDATE` — compatible |
|
|
176
|
-
| `lib/device-flow.ts` | OAuth device flow token storage (3 call sites) | Standard CRUD — no PG-specific patterns |
|
|
177
|
-
| `lib/notifications/index.ts` | Notification delivery tracking (5 call sites) | Standard CRUD — no PG-specific patterns |
|
|
178
|
-
| `lib/orchestrator/activities.ts` | Task orchestration state transitions (4 call sites) | Standard CRUD — no PG-specific patterns |
|
|
179
|
-
| `lib/orchestrator/events.ts` | Event emission to DB (1 call site) | Standard CRUD — no PG-specific patterns |
|
|
180
|
-
| `src/graph/task-lifecycle.ts` | Graph execution lifecycle (1 call site) | Standard CRUD — no PG-specific patterns |
|
|
181
|
-
| `src/graph/store.ts` | Graph state persistence | Uses `pool.query` directly — must be routed through adapter |
|
|
182
|
-
|
|
183
|
-
### Affected API Routes
|
|
184
|
-
|
|
185
|
-
All routes below use `createAdminDbClient()` or functions from `lib/db.ts`:
|
|
186
|
-
|
|
187
|
-
| API Route | Operations | Behavior Changes |
|
|
188
|
-
|-----------|-----------|-----------------|
|
|
189
|
-
| `app/api/tasks/route.ts` | List, create, search tasks | Search uses `or()` filter with `ILIKE` — must rewrite to case-insensitive `LIKE` |
|
|
190
|
-
| `app/api/tasks/[id]/route.ts` | Get, update, delete task | Uses `contains()` filter (`@>`) — must rewrite to `json_each()` |
|
|
191
|
-
| `app/api/tasks/[id]/comments/route.ts` | List, add comments | Standard CRUD — no behavior change |
|
|
192
|
-
| `app/api/tasks/[id]/comments/[commentId]/route.ts` | Delete comment | Standard CRUD — no behavior change |
|
|
193
|
-
| `app/api/tasks/[id]/logs/route.ts` | List, add logs | Standard CRUD — no behavior change |
|
|
194
|
-
| `app/api/tasks/[id]/logs/stream/route.ts` | SSE log streaming (polling) | Polls DB — polling interval may need tuning for SQLite read perf |
|
|
195
|
-
| `app/api/tasks/[id]/history/route.ts` | Task run history | Standard CRUD — no behavior change |
|
|
196
|
-
| `app/api/tasks/[id]/heartbeat/route.ts` | Agent heartbeat updates | High-frequency writes — verify `busy_timeout` handles contention |
|
|
197
|
-
| `app/api/tasks/[id]/costs/route.ts` | Cost tracking | Standard CRUD — no behavior change |
|
|
198
|
-
| `app/api/tasks/[id]/graph/start/route.ts` | Start graph execution | Standard CRUD — no behavior change |
|
|
199
|
-
| `app/api/tasks/[id]/graph/pause/route.ts` | Pause graph | Standard CRUD — no behavior change |
|
|
200
|
-
| `app/api/tasks/[id]/graph/resume/route.ts` | Resume graph | Standard CRUD — no behavior change |
|
|
201
|
-
| `app/api/tasks/[id]/graph/stop/route.ts` | Stop graph | Standard CRUD — no behavior change |
|
|
202
|
-
| `app/api/tasks/[id]/graph/restart/route.ts` | Restart graph | Standard CRUD — no behavior change |
|
|
203
|
-
| `app/api/tasks/[id]/nodes/[nodeId]/verify/route.ts` | Node verification | Standard CRUD — no behavior change |
|
|
204
|
-
| `app/api/tasks/[id]/nodes/[nodeId]/start/route.ts` | Start node execution | Standard CRUD — no behavior change |
|
|
205
|
-
| `app/api/tasks/[id]/nodes/[nodeId]/resume/route.ts` | Resume node | Standard CRUD — no behavior change |
|
|
206
|
-
| `app/api/tasks/stream/route.ts` | SSE task list streaming | Polls DB — same tuning note as log streaming |
|
|
207
|
-
| `app/api/tasks/assign-orphans/route.ts` | Orphan task assignment | Standard CRUD — no behavior change |
|
|
208
|
-
| `app/api/queue/route.ts` | Queue dispatch | Already migrated to SQLiteQueueAdapter — no change |
|
|
209
|
-
| `app/api/queue/complete/route.ts` | Queue job completion | Uses `lib/db` functions — standard CRUD |
|
|
210
|
-
| `app/api/projects/route.ts` | List, create projects | Standard CRUD — no behavior change |
|
|
211
|
-
| `app/api/projects/[id]/route.ts` | Get, update, delete project | Standard CRUD — no behavior change |
|
|
212
|
-
| `app/api/projects/[id]/migrate-v1/route.ts` | V1 migration | Standard CRUD — no behavior change |
|
|
213
|
-
| `app/api/projects/[id]/migrate-v2/route.ts` | V2 migration | Standard CRUD — no behavior change |
|
|
214
|
-
| `app/api/learnings/route.ts` | CRUD for learnings | Standard CRUD — no behavior change |
|
|
215
|
-
| `app/api/user-settings/route.ts` | User preferences | Standard CRUD — no behavior change |
|
|
216
|
-
| `app/api/logs/stream/route.ts` | Global log streaming | Polls DB — same tuning note |
|
|
217
|
-
| `app/api/orchestrator/tasks/[taskId]/start/route.ts` | Orchestrator task start | Standard CRUD — no behavior change |
|
|
218
|
-
| `app/api/orchestrator/tasks/[taskId]/cancel/route.ts` | Orchestrator cancel | Standard CRUD — no behavior change |
|
|
219
|
-
| `app/api/orchestrator/tasks/[taskId]/signal/route.ts` | Orchestrator signal | Standard CRUD — no behavior change |
|
|
220
|
-
| `app/api/orchestrator/tasks/[taskId]/status/route.ts` | Orchestrator status | Read-only — no behavior change |
|
|
221
|
-
|
|
222
|
-
### QueryBuilder Postgres-Specific Patterns Requiring Migration
|
|
223
|
-
|
|
224
|
-
The `QueryBuilder` in `lib/db-adapter.ts` uses these Postgres-specific patterns that must change:
|
|
225
|
-
|
|
226
|
-
1. **Parameterized queries**: `$1, $2, …` → `?, ?, …`
|
|
227
|
-
2. **Array containment**: `@> $N` → subquery with `json_each()`
|
|
228
|
-
3. **Array membership**: `= ANY($N)` → `IN (?, ?, …)` with param expansion
|
|
229
|
-
4. **`IS NOT DISTINCT FROM`** → `(col = ? OR (col IS NULL AND ? IS NULL))`
|
|
230
|
-
5. **`ILIKE`** in `or()` filter → `LIKE` with `COLLATE NOCASE`
|
|
231
|
-
6. **JSON column encoding**: `JSON.stringify()` already used — compatible with SQLite `TEXT` + `json_valid()`
|
|
232
|
-
7. **`RETURNING` clause**: Compatible — no change needed (SQLite ≥ 3.35.0)
|
|
233
|
-
8. **`ON CONFLICT … DO UPDATE`**: Compatible — no change needed
|
|
234
|
-
|
|
235
|
-
---
|
|
236
|
-
|
|
237
|
-
## Data Layer Changes
|
|
238
|
-
|
|
239
|
-
### Schema Differences: Postgres → SQLite
|
|
240
|
-
|
|
241
|
-
The Postgres schema (`docker/postgres/init/001_agx_board_schema.sql`) defines 22 tables across the `agx` schema. The SQLite equivalent eliminates schema namespacing (no `agx.` prefix) and replaces Postgres-specific constructs:
|
|
242
|
-
|
|
243
|
-
#### Structural Changes
|
|
244
|
-
|
|
245
|
-
| Postgres Feature | SQLite Equivalent | Tables Affected |
|
|
246
|
-
|-----------------|-------------------|-----------------|
|
|
247
|
-
| `agx.` schema prefix | Flat namespace (no schemas) | All 22 tables |
|
|
248
|
-
| `gen_random_uuid()` default | Application-generated UUIDs (via `crypto.randomUUID()`) | All tables with `id uuid DEFAULT gen_random_uuid()` |
|
|
249
|
-
| `pgcrypto` extension | Not needed — UUIDs generated in application layer | Global |
|
|
250
|
-
| `SERIAL` / `BIGSERIAL` | `INTEGER PRIMARY KEY AUTOINCREMENT` | None currently (all PKs are UUIDs) |
|
|
251
|
-
| `inet` type | `TEXT` | `task_audit_log.ip_address` |
|
|
252
|
-
| `text[]` arrays | `TEXT` (JSON-encoded array) | `stage_prompts.outputs`, `tasks.depends_on` |
|
|
253
|
-
| `uuid[]` arrays | `TEXT` (JSON-encoded array) | `tasks.depends_on` |
|
|
254
|
-
| Partial unique indexes (`WHERE` clause) | Supported since SQLite 3.15.0 | `task_templates` (public/user slug indexes), `tasks` (queue index), `projects` (workflow index) |
|
|
255
|
-
| `GIN` indexes on `jsonb` | Not available — use expression indexes or `json_each()` queries | `tasks.stage_decisions` |
|
|
256
|
-
| `CHECK` constraints with `ANY(ARRAY[...])` | `CHECK(col IN (...))` | 10 tables with enum-like constraints |
|
|
257
|
-
|
|
258
|
-
#### Trigger Migration
|
|
259
|
-
|
|
260
|
-
Postgres uses PL/pgSQL trigger functions; SQLite uses inline trigger bodies:
|
|
261
|
-
|
|
262
|
-
| Postgres Trigger | SQLite Equivalent |
|
|
263
|
-
|-----------------|-------------------|
|
|
264
|
-
| `update_updated_at()` function + per-table triggers | `CREATE TRIGGER <name> BEFORE UPDATE ON <table> FOR EACH ROW BEGIN UPDATE <table> SET updated_at = datetime('now') WHERE rowid = NEW.rowid; END;` |
|
|
265
|
-
| `increment_task_version()` | Inline: `SET version = OLD.version + 1` |
|
|
266
|
-
| `increment_graph_version()` | Inline: `SET graph_version = OLD.graph_version + 1` |
|
|
267
|
-
| `check_rate_limit()` PL/pgSQL function | Rewritten as application-layer logic or inline SQL |
|
|
268
|
-
|
|
269
|
-
#### Foreign Key Cascade Behavior
|
|
270
|
-
|
|
271
|
-
All foreign key relationships (`ON DELETE CASCADE`, `ON DELETE SET NULL`) are preserved identically in SQLite. The `PRAGMA foreign_keys = ON` setting (enforced at connection init) ensures SQLite honors these constraints — they are off by default in SQLite, unlike Postgres.
|
|
272
|
-
|
|
273
|
-
#### Index Translation
|
|
274
|
-
|
|
275
|
-
Most Postgres B-tree indexes translate directly. Notable exceptions:
|
|
276
|
-
|
|
277
|
-
- **GIN index** on `tasks.stage_decisions` → Dropped. Replaced by application-layer filtering or `json_each()` subqueries.
|
|
278
|
-
- **Partial indexes** (e.g., `idx_tasks_queue WHERE status = 'queued'`) → Supported in SQLite; syntax is identical.
|
|
279
|
-
- **Composite primary keys** (e.g., `graph_nodes(graph_id, node_id)`, `graph_edges(graph_id, from_id, to_id, type)`) → Supported; no change needed.
|
|
280
|
-
|
|
281
|
-
### Migration Scripts
|
|
282
|
-
|
|
283
|
-
No standalone migration script directory exists yet. Migration scripts will be created during **Phase 3** (owner: Jane). The planned approach:
|
|
284
|
-
|
|
285
|
-
1. **DDL generation**: Translate `001_agx_board_schema.sql` to SQLite-compatible DDL (removing schema prefixes, PL/pgSQL functions, DO blocks, `pg_constraint` checks).
|
|
286
|
-
2. **Data export**: `COPY` from Postgres tables to CSV/JSON, then `INSERT` into SQLite.
|
|
287
|
-
3. **Verification**: Row-count and checksum comparison between source and target.
|
|
288
|
-
|
|
289
|
-
Reference files for Phase 3:
|
|
290
|
-
- Source schema: `docker/postgres/init/001_agx_board_schema.sql`
|
|
291
|
-
- Type mapping: See "Type Semantics" table in this ADR
|
|
292
|
-
- Runtime contract: `src/db/init.ts` (PRAGMA application), `src/db/checks.ts` (version/extension validation)
|
|
293
|
-
|
|
294
|
-
### SQLite-Specific Constraints
|
|
295
|
-
|
|
296
|
-
1. **Single-writer**: Only one write transaction at a time. Concurrent writers wait up to `busy_timeout` (5000ms). The application's write patterns (task updates, log appends) are sequential per-task, so this is not a practical limitation.
|
|
297
|
-
2. **No concurrent schema changes**: DDL statements (`ALTER TABLE`, `CREATE INDEX`) acquire an exclusive lock. Must be run during maintenance windows.
|
|
298
|
-
3. **No `ALTER TABLE DROP COLUMN`**: Supported only since SQLite 3.35.0 (enforced by startup check).
|
|
299
|
-
4. **JSON not indexed natively**: Unlike Postgres `GIN` on `jsonb`, SQLite requires expression indexes (`CREATE INDEX ... ON table(json_extract(col, '$.key'))`) for indexed JSON access.
|
|
300
|
-
5. **No `LISTEN/NOTIFY`**: SSE streaming routes (`logs/stream`, `tasks/stream`) already use polling; no change needed.
|
|
301
|
-
6. **Max database size**: 281 TB theoretical; practical limit is filesystem-dependent. Current dataset (~84 tasks, ~4k graph nodes) is well within bounds.
|
|
302
|
-
|
|
303
|
-
---
|
|
304
|
-
|
|
305
|
-
## Frontend Impact
|
|
306
|
-
|
|
307
|
-
### No Client-Side Behavioral Changes
|
|
308
|
-
|
|
309
|
-
The frontend is fully decoupled from the database layer. All data access flows through REST API routes (`/api/tasks`, `/api/projects`, `/api/learnings`, etc.) via standard `fetch()` calls in React hooks:
|
|
310
|
-
|
|
311
|
-
- `hooks/useProjects.ts` — CRUD via `/api/projects`
|
|
312
|
-
- `hooks/useProviders.ts` — Read-only via `/api/providers`
|
|
313
|
-
- `lib/storage/` — `LocalThreadAdapter` uses `localStorage` for chat threads (completely independent of the server database)
|
|
314
|
-
|
|
315
|
-
**Key observation:** Frontend hooks consume JSON responses from API routes. The API response shapes are defined by the `DbAdapter` interface (`lib/db-adapter.interface.ts`), which remains stable across the migration. The frontend never constructs SQL, never references database-specific types, and never depends on Postgres or SQLite behavior.
|
|
316
|
-
|
|
317
|
-
### What the Frontend Will NOT Notice
|
|
318
|
-
|
|
319
|
-
- Type changes (`uuid` → `TEXT`, `timestamptz` → `TEXT ISO 8601`) — the API layer already serializes these as strings.
|
|
320
|
-
- `boolean` stored as `INTEGER(0/1)` — the API layer converts to JS `true`/`false`.
|
|
321
|
-
- `jsonb` → `TEXT` — already `JSON.parse()`'d in the adapter before reaching API responses.
|
|
322
|
-
- Array columns (`depends_on`, `outputs`) stored as JSON text — already deserialized by the adapter.
|
|
323
|
-
|
|
324
|
-
### Potential Observability Differences
|
|
325
|
-
|
|
326
|
-
- **SSE polling latency**: Log and task streaming routes poll the database. SQLite read performance under WAL is comparable to Postgres for the current dataset size, but latency characteristics differ (no connection pool overhead, but single-file I/O). Monitor P99 response times during Phase 5 shadow-read validation.
|
|
327
|
-
- **Concurrent request handling**: Under high concurrent load, SQLite's single-writer model may increase response times for write-heavy API routes (e.g., `/api/tasks/[id]/heartbeat`). This is mitigated by `busy_timeout` and is unlikely at current scale.
|
|
328
|
-
|
|
329
|
-
---
|
|
330
|
-
|
|
331
|
-
## References
|
|
332
|
-
|
|
333
|
-
- Migration spec v2: `planning/pg-to-sqlite-migration-spec-v2.md`
|
|
334
|
-
- Migration spec (short): `docs/migration-spec.md`
|
|
335
|
-
- SQLiteQueueAdapter: `lib/queue/sqlite-adapter.ts`
|
|
336
|
-
- Queue adapter interface: `lib/queue/adapter.ts`
|
|
337
|
-
- Queue entry point: `lib/queue/boss.ts`
|
|
338
|
-
- Temporal compat layer: `lib/temporal/service.ts`
|
|
339
|
-
- PG schema: `docker/postgres/init/001_agx_board_schema.sql`
|
|
340
|
-
- Current PG adapter: `lib/db-adapter.ts`
|
|
341
|
-
- DB init / PRAGMAs: `src/db/init.ts`
|
|
342
|
-
- DB validation: `src/db/checks.ts`
|
|
343
|
-
- DB backup/restore: `src/db/backup.ts`
|
|
344
|
-
- Frontend hooks: `hooks/useProjects.ts`, `hooks/useProviders.ts`
|
|
345
|
-
- Thread storage (client-side): `lib/storage/`
|