@mndrk/agx 2.0.32 → 2.0.33
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/cloud-runtime/standalone/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/.next/app-path-routes-manifest.json +1 -0
- package/cloud-runtime/standalone/.next/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
- package/cloud-runtime/standalone/.next/routes-manifest.json +6 -0
- 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_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.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.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/automations/create/route.js +3 -4
- 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 +1 -1
- 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 +3 -3
- 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.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/daemon/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/daemon/route.js.nft.json +1 -1
- 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 +1 -1
- 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 +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js +8 -0
- package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/memories/route.js +1 -1
- 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 +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 +1 -1
- 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 +1 -1
- 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 +2 -2
- 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 +1 -1
- 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 +3 -2
- 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 +1 -1
- 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/processes/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/processes/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js +4 -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 +6 -6
- package/cloud-runtime/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/repos/[id]/knowledge/route.js +1 -1
- 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 +2 -3
- 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 +2 -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 +3 -4
- package/cloud-runtime/standalone/.next/server/app/api/schedules/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/tasks/[id]/comments/[commentId]/route.js +4 -4
- 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 +2 -2
- 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 +1 -1
- 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 +5 -5
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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]/nodes/[nodeId]/comments/route.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +6 -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 -4
- 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 +1 -1
- 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 +6 -6
- package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/threads/route.js +3 -3
- 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 +1 -1
- 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.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_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_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 +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +2 -2
- 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 +1 -1
- 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.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.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.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
- 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.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +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 +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +2 -2
- 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 +1 -1
- 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_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 +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +2 -2
- 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 +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
- 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_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 +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +2 -2
- 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 +1 -1
- package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
- 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.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 +1 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__06634853._.js +80 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0b3b6a47._.js +51 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__86f7d27b._.js → [root-of-the-server]__18423486._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__dede3dcd._.js → [root-of-the-server]__19520d85._.js} +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__399b2ca9._.js → [root-of-the-server]__1c18c0d1._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1cc2fe7f._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__29419d66._.js +42 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__6e59b27c._.js → [root-of-the-server]__32b13ba9._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__1dd062c1._.js → [root-of-the-server]__3c1567b6._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__29ce9c60._.js → [root-of-the-server]__3c37453e._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__507a4363._.js → [root-of-the-server]__3faa64cd._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__42497c7b._.js +80 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e446cb39._.js → [root-of-the-server]__4837d72a._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__10940c29._.js → [root-of-the-server]__49c03d66._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__b40c7aab._.js → [root-of-the-server]__4a8d14c1._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__75bff965._.js → [root-of-the-server]__4c861686._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4d8c6e3d._.js +58 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__543ba6c4._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__94fa1edc._.js → [root-of-the-server]__588b6ab0._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ccfcbcd5._.js → [root-of-the-server]__5a348fba._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__9dfaaf72._.js → [root-of-the-server]__61c99680._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c08bef05._.js → [root-of-the-server]__6acb940d._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__98535eb3._.js → [root-of-the-server]__7e79d86a._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__6c187704._.js → [root-of-the-server]__7ffcc20c._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c5634f17._.js → [root-of-the-server]__875279cb._.js} +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__13677d96._.js → [root-of-the-server]__8b0ab82f._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f5b93200._.js → [root-of-the-server]__8b461158._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__918f0106._.js +80 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__922eb7cd._.js +80 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e6ad07c3._.js → [root-of-the-server]__a67cd108._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d8cedc8a._.js → [root-of-the-server]__abb032c1._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b3ed0a00._.js +46 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b63cb741._.js +63 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__2388b2b3._.js → [root-of-the-server]__b9b3fde6._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f4b70b67._.js → [root-of-the-server]__be4ad4b5._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c0a18648._.js +80 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5ca87ba0._.js → [root-of-the-server]__c480c9c2._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c8b49077._.js +79 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c99509c2._.js +101 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ceb02db8._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d6e1ee6e._.js +32 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__80655727._.js → [root-of-the-server]__e069c0a3._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f5a2358a._.js → [root-of-the-server]__e1e51c02._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__12afd8a3._.js → [root-of-the-server]__ef82dda1._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f168c6dc._.js +25 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f1b7932f._.js +36 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__4d318eb0._.js → [root-of-the-server]__f701b208._.js} +24 -24
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__2e596cc8._.js → [root-of-the-server]__fee58db1._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ffffceac._.js +6 -0
- package/cloud-runtime/standalone/.next/server/chunks/_5462a047._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_5fd6af5d._.js +57 -0
- package/cloud-runtime/standalone/.next/server/chunks/_c965f7b3._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/_d225c04f._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/{_3e0d34cc._.js → _d22934ab._.js} +24 -24
- package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_knowledge-notes_route_actions_0ddf6109.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/lib_7cad5c77._.js +64 -0
- package/cloud-runtime/standalone/.next/server/chunks/lib_87c06aeb._.js +25 -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 +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_2e721df2._.js +45 -37
- package/cloud-runtime/standalone/.next/server/chunks/lib_history-store_ts_74d1c060._.js +45 -37
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_371d0bff.js +12 -12
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__a8a8afdc._.js → [root-of-the-server]__04d1aa70._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__9166c1d6._.js → [root-of-the-server]__2d80540b._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__5ffa2883._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__8973b16a._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1322ced8._.js → [root-of-the-server]__a416df95._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__783669c3._.js → [root-of-the-server]__c108f06c._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_064370bc._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_0f4e70b1._.js → _41f60c52._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_6b14826d._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_6fc3736e._.js → _84879a01._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_85ca101b._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_ff5799d6._.js → _9eeb2fa0._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_68ac991e._.js → _a1d30b20._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_5b2b8a85._.js → _c87c359c._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_fb292eed._.js → _dd31b6e0._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_6de3f1de._.js → _f0ce6183._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_knowledge_page_tsx_e2a55cbd._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/components_chat-ui_bfeda794._.js +1 -1
- 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_icons_bf855424._.js +3 -0
- package/cloud-runtime/standalone/.next/server/functions-config-manifest.json +1 -0
- package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
- 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/{a66e1891e808a664.js → 012e3e9699415997.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/031d99fbe758545a.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{87f099ea02aa419d.js → 116985039c24f1f8.js} +9 -9
- package/cloud-runtime/standalone/.next/static/chunks/2ee8d24314eec47c.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/3a55441b018d52e4.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{cd308f61797939cd.js → 43f6157bc3db9c52.js} +2 -2
- package/cloud-runtime/standalone/.next/static/chunks/{58025a80caa3629d.js → 56a01238098d495d.js} +9 -9
- package/cloud-runtime/standalone/.next/static/chunks/{6fbe08eab578c7d3.js → 601996727991149e.js} +9 -9
- package/cloud-runtime/standalone/.next/static/chunks/851b1d97179bd39b.css +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/90b581e9631d8cea.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/b22947e6df238fd5.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{4200b512bdc226bc.js → b2dcd19ebe3af3f6.js} +9 -9
- package/cloud-runtime/standalone/.next/static/chunks/{e62d5fa120fdf21f.js → bc06988336ffd261.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/{1f415d0ce7ebbd08.js → c93b9643c81c134e.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/{88e24940a5d5d386.js → d78cc7d749043fef.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/ebaf4e8f04bae7b6.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/f4909e7ae8229b1c.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/fd221a50082e5128.js +1 -0
- package/cloud-runtime/standalone/app/api/chat/route.ts +36 -0
- package/cloud-runtime/standalone/app/api/knowledge-notes/route.ts +53 -0
- package/cloud-runtime/standalone/app/projects/[slug]/knowledge/page.tsx +210 -26
- package/cloud-runtime/standalone/components/chat-ui/ChatContainer.tsx +62 -41
- package/cloud-runtime/standalone/components/chat-ui/Markdown.tsx +19 -9
- package/cloud-runtime/standalone/components/thread/WorkspaceSidebar.tsx +33 -28
- package/cloud-runtime/standalone/hooks/useGroupChat.ts +4 -0
- package/cloud-runtime/standalone/hooks/useProcessPolling.ts +4 -3
- package/cloud-runtime/standalone/hooks/useThreadState.ts +10 -2
- package/cloud-runtime/standalone/lib/cli-runner.ts +212 -14
- package/cloud-runtime/standalone/lib/db.ts +1 -1
- package/cloud-runtime/standalone/lib/debug-log.ts +48 -0
- package/cloud-runtime/standalone/lib/history-store.ts +78 -2
- package/cloud-runtime/standalone/lib/orchestrator/chat-processor.ts +51 -0
- package/cloud-runtime/standalone/lib/orchestrator/runtime.ts +6 -0
- package/cloud-runtime/standalone/lib/queue/sqlite-adapter.ts +117 -2
- package/cloud-runtime/standalone/transcri +0 -0
- package/cloud-runtime/standalone/worker/index.js +604 -165
- package/lib/cli/runCli.js +0 -97
- package/lib/commands/update.js +159 -17
- package/package.json +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0925dd01._.js +0 -46
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__12c7e188._.js +0 -29
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__17c2d68f._.js +0 -52
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__20b3baea._.js +0 -55
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__254e942f._.js +0 -20
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3198c5c8._.js +0 -52
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__36d9edbd._.js +0 -67
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4761dc17._.js +0 -8
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4b1a512c._.js +0 -52
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4dc25d71._.js +0 -18
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7be8f159._.js +0 -52
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ac3c2f7f._.js +0 -52
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__bfcedb7c._.js +0 -52
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e1e7dd1e._.js +0 -25
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__e45a2a1d._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fcd3e3b8._.js +0 -15
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ff9c61da._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/_66e1ddec._.js +0 -57
- package/cloud-runtime/standalone/.next/server/chunks/lib_09aac4e7._.js +0 -57
- package/cloud-runtime/standalone/.next/server/chunks/lib_cli-runner_ts_dfcf3fda._.js +0 -18
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_69b6b2e1.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_16c45024._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_678fa868._.js +0 -3
- package/cloud-runtime/standalone/.next/static/chunks/24a6ee21f430da93.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/27129bea5b512ce8.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/463edf3533d27a56.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/5cb0c885b085ea6c.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/60c054bb8b2cffa6.css +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/7e2edf97bd6c0874.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/8249f202d33d0d95.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/9f8f719c4aa25e3d.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/bc727d3d9993e9be.js +0 -1
- /package/cloud-runtime/standalone/.next/static/{i_9nSHyb52FGkCbRgv7EJ → 68nLQxEpwR_feFvB8T4tR}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/.next/static/{i_9nSHyb52FGkCbRgv7EJ → 68nLQxEpwR_feFvB8T4tR}/_clientMiddlewareManifest.json +0 -0
- /package/cloud-runtime/standalone/.next/static/{i_9nSHyb52FGkCbRgv7EJ → 68nLQxEpwR_feFvB8T4tR}/_ssgManifest.js +0 -0
|
@@ -22,6 +22,8 @@ const REACTION_TYPES = new Set<ReactionType>([
|
|
|
22
22
|
"clarify",
|
|
23
23
|
"blocked",
|
|
24
24
|
]);
|
|
25
|
+
const ACTIVE_AGENT_PROCESS_STALE_MS = 10 * 60 * 1000;
|
|
26
|
+
const ACTIVE_CHAT_RUN_STALE_MS = 10 * 60 * 1000;
|
|
25
27
|
const ALLOWED_TRANSITIONS: Record<ReactionType, Set<ReactionType>> = {
|
|
26
28
|
ack: new Set<ReactionType>(["ack", "working"]),
|
|
27
29
|
working: new Set<ReactionType>(["ack", "working", "done", "clarify", "blocked"]),
|
|
@@ -223,6 +225,16 @@ function hasSqliteObject(db: Database.Database, type: "table" | "trigger", name:
|
|
|
223
225
|
return Boolean(row);
|
|
224
226
|
}
|
|
225
227
|
|
|
228
|
+
function isPidAlive(pid: number | null | undefined): boolean {
|
|
229
|
+
if (!Number.isFinite(pid) || !pid || pid <= 0) return false;
|
|
230
|
+
try {
|
|
231
|
+
process.kill(pid, 0);
|
|
232
|
+
return true;
|
|
233
|
+
} catch {
|
|
234
|
+
return false;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
226
238
|
function initializeMessageSearch(db: Database.Database): void {
|
|
227
239
|
const hasFtsTable = hasSqliteObject(db, "table", "messages_fts");
|
|
228
240
|
db.exec(`
|
|
@@ -804,7 +816,7 @@ export async function getProjectThreadIds(projectId: string): Promise<string[]>
|
|
|
804
816
|
const { getSQLiteDb } = await import("@/lib/sqlite-query-adapter");
|
|
805
817
|
const db = getSQLiteDb();
|
|
806
818
|
const rows = db
|
|
807
|
-
.prepare("SELECT thread_id FROM project_threads WHERE project_id = ?")
|
|
819
|
+
.prepare("SELECT thread_id FROM project_threads WHERE project_id = ? ORDER BY created_at ASC")
|
|
808
820
|
.all(projectId) as { thread_id: string }[];
|
|
809
821
|
return rows.map((r) => r.thread_id);
|
|
810
822
|
}
|
|
@@ -979,7 +991,7 @@ export async function getThreadStatusSnapshot(
|
|
|
979
991
|
// These may not have an assistant message yet, so the primary query misses them.
|
|
980
992
|
const activeProcessRows = db
|
|
981
993
|
.prepare(
|
|
982
|
-
`SELECT ap.agent_id, ap.pid, ap.state, ap.since_message_id, ap.started_at, ap.last_activity,
|
|
994
|
+
`SELECT ap.id, ap.agent_id, ap.pid, ap.state, ap.since_message_id, ap.started_at, ap.last_activity,
|
|
983
995
|
m.content as response_to,
|
|
984
996
|
m.role as response_to_role,
|
|
985
997
|
m.participant_id as response_to_participant_id
|
|
@@ -990,6 +1002,7 @@ export async function getThreadStatusSnapshot(
|
|
|
990
1002
|
AND ap.state IN ('running', 'spawning')`
|
|
991
1003
|
)
|
|
992
1004
|
.all(scopedRootMessageId) as Array<{
|
|
1005
|
+
id: number;
|
|
993
1006
|
agent_id: string;
|
|
994
1007
|
pid: number;
|
|
995
1008
|
state: string;
|
|
@@ -1001,10 +1014,36 @@ export async function getThreadStatusSnapshot(
|
|
|
1001
1014
|
response_to_participant_id: string | null;
|
|
1002
1015
|
}>;
|
|
1003
1016
|
|
|
1017
|
+
const now = Date.now();
|
|
1018
|
+
const staleActiveProcessIds = activeProcessRows
|
|
1019
|
+
.filter((ap) => {
|
|
1020
|
+
const lastSeenAt = Math.max(ap.last_activity || 0, ap.started_at || 0);
|
|
1021
|
+
if (lastSeenAt > now - ACTIVE_AGENT_PROCESS_STALE_MS) return false;
|
|
1022
|
+
return !isPidAlive(ap.pid);
|
|
1023
|
+
})
|
|
1024
|
+
.map((ap) => ap.id);
|
|
1025
|
+
const staleActiveProcessIdSet = new Set(staleActiveProcessIds);
|
|
1026
|
+
|
|
1027
|
+
if (staleActiveProcessIds.length > 0) {
|
|
1028
|
+
const markStale = db.prepare(
|
|
1029
|
+
`UPDATE agent_processes
|
|
1030
|
+
SET state = 'error',
|
|
1031
|
+
last_activity = ?
|
|
1032
|
+
WHERE id = ?`
|
|
1033
|
+
);
|
|
1034
|
+
const markManyStale = db.transaction((ids: number[]) => {
|
|
1035
|
+
for (const id of ids) {
|
|
1036
|
+
markStale.run(now, id);
|
|
1037
|
+
}
|
|
1038
|
+
});
|
|
1039
|
+
markManyStale(staleActiveProcessIds);
|
|
1040
|
+
}
|
|
1041
|
+
|
|
1004
1042
|
// Merge: only add active processes not already represented
|
|
1005
1043
|
const existingPids = new Set(processes.filter(p => p.processId != null).map(p => p.processId));
|
|
1006
1044
|
const existingAgents = new Set(processes.filter(p => p.status === "running").map(p => p.agent));
|
|
1007
1045
|
for (const ap of activeProcessRows) {
|
|
1046
|
+
if (staleActiveProcessIdSet.has(ap.id)) continue;
|
|
1008
1047
|
if (existingPids.has(ap.pid) || existingAgents.has(ap.agent_id)) continue;
|
|
1009
1048
|
processes.push({
|
|
1010
1049
|
processId: ap.pid || null,
|
|
@@ -1146,7 +1185,43 @@ export async function createChatRun(input: {
|
|
|
1146
1185
|
});
|
|
1147
1186
|
}
|
|
1148
1187
|
|
|
1188
|
+
export async function sweepStaleChatRuns(input?: {
|
|
1189
|
+
threadId?: string | null;
|
|
1190
|
+
olderThanMs?: number;
|
|
1191
|
+
}): Promise<number> {
|
|
1192
|
+
const normalizedThreadId = normalizeOptionalText(input?.threadId ?? null);
|
|
1193
|
+
const thresholdMs = Number.isFinite(input?.olderThanMs)
|
|
1194
|
+
? Math.max(input!.olderThanMs!, 1)
|
|
1195
|
+
: ACTIVE_CHAT_RUN_STALE_MS;
|
|
1196
|
+
const now = Date.now();
|
|
1197
|
+
const cutoff = now - thresholdMs;
|
|
1198
|
+
|
|
1199
|
+
return withDatabase((db) => {
|
|
1200
|
+
const clauses = ["status = 'running'", "updated_at <= ?"];
|
|
1201
|
+
const params: Array<string | number> = [cutoff];
|
|
1202
|
+
|
|
1203
|
+
if (normalizedThreadId) {
|
|
1204
|
+
clauses.push("thread_id = ?");
|
|
1205
|
+
params.push(normalizedThreadId);
|
|
1206
|
+
}
|
|
1207
|
+
|
|
1208
|
+
const result = db
|
|
1209
|
+
.prepare(
|
|
1210
|
+
`UPDATE chat_runs
|
|
1211
|
+
SET status = 'failed',
|
|
1212
|
+
last_error = COALESCE(NULLIF(last_error, ''), 'Worker process died mid-execution'),
|
|
1213
|
+
updated_at = ?,
|
|
1214
|
+
completed_at = COALESCE(completed_at, ?)
|
|
1215
|
+
WHERE ${clauses.join(" AND ")}`
|
|
1216
|
+
)
|
|
1217
|
+
.run(now, now, ...params);
|
|
1218
|
+
|
|
1219
|
+
return result.changes;
|
|
1220
|
+
});
|
|
1221
|
+
}
|
|
1222
|
+
|
|
1149
1223
|
export async function getChatRun(chatRunId: string): Promise<ChatRunRecord | null> {
|
|
1224
|
+
await sweepStaleChatRuns();
|
|
1150
1225
|
return withDatabase((db) => {
|
|
1151
1226
|
const row = db.prepare("SELECT * FROM chat_runs WHERE id = ? LIMIT 1").get(chatRunId) as ChatRunRow | undefined;
|
|
1152
1227
|
return row ? toChatRunRecord(row) : null;
|
|
@@ -1158,6 +1233,7 @@ export async function listChatRuns(input: {
|
|
|
1158
1233
|
status?: ChatRunStatus | "active";
|
|
1159
1234
|
limit?: number;
|
|
1160
1235
|
}): Promise<ChatRunRecord[]> {
|
|
1236
|
+
await sweepStaleChatRuns({ threadId: input.threadId });
|
|
1161
1237
|
const normalizedThreadId = normalizeOptionalText(input.threadId ?? null);
|
|
1162
1238
|
const limit = clampPositiveInt(input.limit, 20, 100);
|
|
1163
1239
|
return withDatabase((db) => {
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
loadChatRunActivity,
|
|
10
10
|
updateChatRunActivity,
|
|
11
11
|
} from "@/lib/orchestrator/chat-activities";
|
|
12
|
+
import { writeDebugLog } from "@/lib/debug-log";
|
|
12
13
|
|
|
13
14
|
function isChatRunPayload(value: unknown): value is ChatRunPayload {
|
|
14
15
|
if (!value || typeof value !== "object") return false;
|
|
@@ -21,15 +22,31 @@ function isChatRunPayload(value: unknown): value is ChatRunPayload {
|
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
async function handleStart(job: Job<ChatRunJobData>): Promise<void> {
|
|
25
|
+
writeDebugLog("chat-processor.start.received", {
|
|
26
|
+
jobId: job.id,
|
|
27
|
+
chatRunId: job.data.chatRunId,
|
|
28
|
+
signal: job.data.signal,
|
|
29
|
+
});
|
|
24
30
|
const chatRun = await loadChatRunActivity(job.data.chatRunId);
|
|
25
31
|
if (!chatRun) {
|
|
32
|
+
writeDebugLog("chat-processor.start.missing", {
|
|
33
|
+
chatRunId: job.data.chatRunId,
|
|
34
|
+
jobId: job.id,
|
|
35
|
+
});
|
|
26
36
|
console.warn(`[chat-processor] Chat run ${job.data.chatRunId} not found, skipping`);
|
|
27
37
|
return;
|
|
28
38
|
}
|
|
29
39
|
if (chatRun.status === "completed" || chatRun.status === "failed" || chatRun.status === "cancelled") {
|
|
40
|
+
writeDebugLog("chat-processor.start.skip_terminal", {
|
|
41
|
+
chatRunId: chatRun.id,
|
|
42
|
+
status: chatRun.status,
|
|
43
|
+
});
|
|
30
44
|
return;
|
|
31
45
|
}
|
|
32
46
|
if (!isChatRunPayload(chatRun.payload)) {
|
|
47
|
+
writeDebugLog("chat-processor.start.invalid_payload", {
|
|
48
|
+
chatRunId: chatRun.id,
|
|
49
|
+
});
|
|
33
50
|
await updateChatRunActivity({
|
|
34
51
|
id: chatRun.id,
|
|
35
52
|
status: "failed",
|
|
@@ -59,6 +76,12 @@ async function handleStart(job: Job<ChatRunJobData>): Promise<void> {
|
|
|
59
76
|
});
|
|
60
77
|
|
|
61
78
|
try {
|
|
79
|
+
writeDebugLog("chat-processor.start.running", {
|
|
80
|
+
chatRunId: chatRun.id,
|
|
81
|
+
threadId: chatRun.threadId,
|
|
82
|
+
rootMessageId: chatRun.rootMessageId,
|
|
83
|
+
participantIds: chatRun.payload.participantIds,
|
|
84
|
+
});
|
|
62
85
|
const library = await loadDbParticipants();
|
|
63
86
|
const participantIdSet = new Set(chatRun.payload.participantIds);
|
|
64
87
|
const participants = chatRun.payload.participantIds
|
|
@@ -66,6 +89,10 @@ async function handleStart(job: Job<ChatRunJobData>): Promise<void> {
|
|
|
66
89
|
.filter((participant): participant is NonNullable<typeof participant> => Boolean(participant));
|
|
67
90
|
|
|
68
91
|
if (participants.length === 0) {
|
|
92
|
+
writeDebugLog("chat-processor.start.no_participants_resolved", {
|
|
93
|
+
chatRunId: chatRun.id,
|
|
94
|
+
participantIds: chatRun.payload.participantIds,
|
|
95
|
+
});
|
|
69
96
|
throw new Error("No participants resolved for chat run");
|
|
70
97
|
}
|
|
71
98
|
|
|
@@ -90,10 +117,17 @@ async function handleStart(job: Job<ChatRunJobData>): Promise<void> {
|
|
|
90
117
|
});
|
|
91
118
|
|
|
92
119
|
const reader = stream.getReader();
|
|
120
|
+
writeDebugLog("chat-processor.stream.open", {
|
|
121
|
+
chatRunId: chatRun.id,
|
|
122
|
+
participantCount: participants.length,
|
|
123
|
+
});
|
|
93
124
|
while (true) {
|
|
94
125
|
const { done } = await reader.read();
|
|
95
126
|
if (done) break;
|
|
96
127
|
}
|
|
128
|
+
writeDebugLog("chat-processor.stream.complete", {
|
|
129
|
+
chatRunId: chatRun.id,
|
|
130
|
+
});
|
|
97
131
|
|
|
98
132
|
await completeChatRunStepActivity({
|
|
99
133
|
stepId: step.id,
|
|
@@ -112,8 +146,17 @@ async function handleStart(job: Job<ChatRunJobData>): Promise<void> {
|
|
|
112
146
|
rootMessageId: chatRun.payload.rootMessageId,
|
|
113
147
|
},
|
|
114
148
|
});
|
|
149
|
+
writeDebugLog("chat-processor.complete", {
|
|
150
|
+
chatRunId: chatRun.id,
|
|
151
|
+
rootMessageId: chatRun.payload.rootMessageId,
|
|
152
|
+
});
|
|
115
153
|
} catch (error) {
|
|
116
154
|
const message = error instanceof Error ? error.message : String(error);
|
|
155
|
+
writeDebugLog("chat-processor.error", {
|
|
156
|
+
chatRunId: chatRun.id,
|
|
157
|
+
error,
|
|
158
|
+
message,
|
|
159
|
+
});
|
|
117
160
|
await completeChatRunStepActivity({
|
|
118
161
|
stepId: step.id,
|
|
119
162
|
status: "failed",
|
|
@@ -130,6 +173,10 @@ async function handleStart(job: Job<ChatRunJobData>): Promise<void> {
|
|
|
130
173
|
}
|
|
131
174
|
|
|
132
175
|
async function handleCancel(job: Job<ChatRunJobData>): Promise<void> {
|
|
176
|
+
writeDebugLog("chat-processor.cancel.received", {
|
|
177
|
+
jobId: job.id,
|
|
178
|
+
chatRunId: job.data.chatRunId,
|
|
179
|
+
});
|
|
133
180
|
const chatRun = await loadChatRunActivity(job.data.chatRunId);
|
|
134
181
|
if (!chatRun) return;
|
|
135
182
|
|
|
@@ -146,6 +193,10 @@ async function handleCancel(job: Job<ChatRunJobData>): Promise<void> {
|
|
|
146
193
|
completedAt: Date.now(),
|
|
147
194
|
result: { cancelled: true },
|
|
148
195
|
});
|
|
196
|
+
writeDebugLog("chat-processor.cancel.complete", {
|
|
197
|
+
chatRunId: chatRun.id,
|
|
198
|
+
threadId: chatRun.threadId,
|
|
199
|
+
});
|
|
149
200
|
}
|
|
150
201
|
|
|
151
202
|
async function processSingleJob(job: Job<ChatRunJobData>): Promise<void> {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getQueue, QUEUE_NAMES } from "@/lib/queue/boss";
|
|
2
2
|
import { taskProcessor } from "@/lib/orchestrator/processor";
|
|
3
3
|
import { chatProcessor } from "@/lib/orchestrator/chat-processor";
|
|
4
|
+
import { writeDebugLog } from "@/lib/debug-log";
|
|
4
5
|
|
|
5
6
|
let bootstrapPromise: Promise<void> | null = null;
|
|
6
7
|
|
|
@@ -8,10 +9,15 @@ export async function ensureOrchestratorRuntime(): Promise<void> {
|
|
|
8
9
|
if (bootstrapPromise) return bootstrapPromise;
|
|
9
10
|
|
|
10
11
|
bootstrapPromise = (async () => {
|
|
12
|
+
writeDebugLog("orchestrator.bootstrap.start");
|
|
11
13
|
const queue = await getQueue();
|
|
12
14
|
await queue.work(QUEUE_NAMES.TASK_PROCESS, taskProcessor, { batchSize: 5 });
|
|
13
15
|
await queue.work(QUEUE_NAMES.CHAT_RUN_PROCESS, chatProcessor, { batchSize: 2 });
|
|
16
|
+
writeDebugLog("orchestrator.bootstrap.ready", {
|
|
17
|
+
queues: [QUEUE_NAMES.TASK_PROCESS, QUEUE_NAMES.CHAT_RUN_PROCESS],
|
|
18
|
+
});
|
|
14
19
|
})().catch((error) => {
|
|
20
|
+
writeDebugLog("orchestrator.bootstrap.error", { error });
|
|
15
21
|
bootstrapPromise = null;
|
|
16
22
|
throw error;
|
|
17
23
|
});
|
|
@@ -6,8 +6,15 @@ import os from "os";
|
|
|
6
6
|
import { QueueAdapter, QueueOptions, WorkerOptions, Job } from "./adapter";
|
|
7
7
|
import { validateSQLiteEnvironment, REQUIRED_PRAGMAS } from "../startup";
|
|
8
8
|
import { WriteRateMonitor, WRITE_RATE_SAMPLE_WINDOW_MS } from "../limits";
|
|
9
|
+
import { writeDebugLog } from "../debug-log";
|
|
9
10
|
|
|
10
11
|
const AGX_DATA_DIR = process.env.AGX_DATA_DIR || path.join(os.homedir(), ".agx");
|
|
12
|
+
const DEFAULT_STALE_JOB_TIMEOUT_MS = 10 * 60 * 1000;
|
|
13
|
+
|
|
14
|
+
function getStaleJobTimeoutMs(): number {
|
|
15
|
+
const raw = Number(process.env.AGX_QUEUE_STALE_MS);
|
|
16
|
+
return Number.isFinite(raw) && raw > 0 ? raw : DEFAULT_STALE_JOB_TIMEOUT_MS;
|
|
17
|
+
}
|
|
11
18
|
|
|
12
19
|
interface SQLiteJobRow {
|
|
13
20
|
id: string;
|
|
@@ -120,6 +127,14 @@ export class SQLiteQueueAdapter implements QueueAdapter {
|
|
|
120
127
|
);
|
|
121
128
|
|
|
122
129
|
this.writeMonitor.record();
|
|
130
|
+
writeDebugLog("queue.send", {
|
|
131
|
+
queue,
|
|
132
|
+
jobId: id,
|
|
133
|
+
startAfter,
|
|
134
|
+
retryLimit: options?.retryLimit ?? 3,
|
|
135
|
+
priority: options?.priority ?? 0,
|
|
136
|
+
data,
|
|
137
|
+
});
|
|
123
138
|
return id;
|
|
124
139
|
}
|
|
125
140
|
|
|
@@ -128,6 +143,12 @@ export class SQLiteQueueAdapter implements QueueAdapter {
|
|
|
128
143
|
handler: (jobs: Job<T>[]) => Promise<void>,
|
|
129
144
|
options?: WorkerOptions
|
|
130
145
|
): Promise<void> {
|
|
146
|
+
writeDebugLog("queue.worker.register", {
|
|
147
|
+
queue,
|
|
148
|
+
batchSize: options?.batchSize ?? 1,
|
|
149
|
+
pollInterval: options?.pollInterval ?? null,
|
|
150
|
+
workerId: this.workerId,
|
|
151
|
+
});
|
|
131
152
|
this.workers.set(queue, {
|
|
132
153
|
handler,
|
|
133
154
|
options: options || {},
|
|
@@ -163,9 +184,20 @@ export class SQLiteQueueAdapter implements QueueAdapter {
|
|
|
163
184
|
private processQueue(queue: string, worker: { handler: Function; options: WorkerOptions }) {
|
|
164
185
|
const batchSize = worker.options.batchSize || 1;
|
|
165
186
|
const now = Date.now();
|
|
187
|
+
const staleBefore = now - getStaleJobTimeoutMs();
|
|
166
188
|
|
|
167
189
|
// Transactional claim
|
|
168
190
|
const jobs = this.db.transaction(() => {
|
|
191
|
+
const reapedJobs = this.reapStaleJobs(queue, now, staleBefore);
|
|
192
|
+
if (reapedJobs.length > 0) {
|
|
193
|
+
writeDebugLog("queue.reap_stale", {
|
|
194
|
+
queue,
|
|
195
|
+
workerId: this.workerId,
|
|
196
|
+
staleBefore,
|
|
197
|
+
jobs: reapedJobs,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
|
|
169
201
|
// 1. Find candidates
|
|
170
202
|
const candidates = this.db.prepare(`
|
|
171
203
|
SELECT id, data FROM agx_jobs
|
|
@@ -198,6 +230,11 @@ export class SQLiteQueueAdapter implements QueueAdapter {
|
|
|
198
230
|
})();
|
|
199
231
|
|
|
200
232
|
if (jobs.length > 0) {
|
|
233
|
+
writeDebugLog("queue.claim", {
|
|
234
|
+
queue,
|
|
235
|
+
workerId: this.workerId,
|
|
236
|
+
jobIds: jobs.map((job) => job.id),
|
|
237
|
+
});
|
|
201
238
|
// Execute handler
|
|
202
239
|
// Note: We don't await here to avoid blocking the poll loop,
|
|
203
240
|
// but in single-threaded Node, we are effectively blocking if the handler is sync-heavy.
|
|
@@ -214,9 +251,16 @@ export class SQLiteQueueAdapter implements QueueAdapter {
|
|
|
214
251
|
await handler(jobs);
|
|
215
252
|
// Success
|
|
216
253
|
this.completeJobs(jobs.map(j => j.id));
|
|
254
|
+
writeDebugLog("queue.complete", {
|
|
255
|
+
jobIds: jobs.map((job) => job.id),
|
|
256
|
+
});
|
|
217
257
|
} catch (err: any) {
|
|
218
258
|
// Failure (batch failure — all jobs in the batch fail together)
|
|
219
259
|
this.failJobs(jobs.map(j => j.id), err.message || String(err));
|
|
260
|
+
writeDebugLog("queue.fail", {
|
|
261
|
+
jobIds: jobs.map((job) => job.id),
|
|
262
|
+
error: err,
|
|
263
|
+
});
|
|
220
264
|
}
|
|
221
265
|
}
|
|
222
266
|
|
|
@@ -224,7 +268,7 @@ export class SQLiteQueueAdapter implements QueueAdapter {
|
|
|
224
268
|
const now = Date.now();
|
|
225
269
|
const stmt = this.db.prepare(`
|
|
226
270
|
UPDATE agx_jobs
|
|
227
|
-
SET status = 'completed', completed_at =
|
|
271
|
+
SET status = 'completed', completed_at = ?, worker_id = NULL
|
|
228
272
|
WHERE id = ?
|
|
229
273
|
`);
|
|
230
274
|
this.db.transaction(() => {
|
|
@@ -243,13 +287,15 @@ export class SQLiteQueueAdapter implements QueueAdapter {
|
|
|
243
287
|
UPDATE agx_jobs
|
|
244
288
|
SET status = 'retry', retry_count = retry_count + 1,
|
|
245
289
|
start_after = ? + (retry_count * 1000 * 2), -- Exponential backoff (kinda)
|
|
290
|
+
started_at = NULL,
|
|
291
|
+
worker_id = NULL,
|
|
246
292
|
error = ?
|
|
247
293
|
WHERE id = ?
|
|
248
294
|
`);
|
|
249
295
|
|
|
250
296
|
const updateFailed = this.db.prepare(`
|
|
251
297
|
UPDATE agx_jobs
|
|
252
|
-
SET status = 'failed', failed_at = ?, error = ?
|
|
298
|
+
SET status = 'failed', failed_at = ?, started_at = NULL, worker_id = NULL, error = ?
|
|
253
299
|
WHERE id = ?
|
|
254
300
|
`);
|
|
255
301
|
|
|
@@ -268,4 +314,73 @@ export class SQLiteQueueAdapter implements QueueAdapter {
|
|
|
268
314
|
}
|
|
269
315
|
})();
|
|
270
316
|
}
|
|
317
|
+
|
|
318
|
+
private reapStaleJobs(queue: string, now: number, staleBefore: number): Array<{
|
|
319
|
+
id: string;
|
|
320
|
+
fromStatus: "active";
|
|
321
|
+
toStatus: "retry" | "failed";
|
|
322
|
+
retryCount: number;
|
|
323
|
+
}> {
|
|
324
|
+
const staleJobs = this.db.prepare(`
|
|
325
|
+
SELECT id, retry_count, retry_limit
|
|
326
|
+
FROM agx_jobs
|
|
327
|
+
WHERE queue = ?
|
|
328
|
+
AND status = 'active'
|
|
329
|
+
AND started_at IS NOT NULL
|
|
330
|
+
AND started_at <= ?
|
|
331
|
+
ORDER BY started_at ASC
|
|
332
|
+
`).all(queue, staleBefore) as Array<Pick<SQLiteJobRow, "id" | "retry_count" | "retry_limit">>;
|
|
333
|
+
|
|
334
|
+
if (staleJobs.length === 0) return [];
|
|
335
|
+
|
|
336
|
+
const updateRetry = this.db.prepare(`
|
|
337
|
+
UPDATE agx_jobs
|
|
338
|
+
SET status = 'retry',
|
|
339
|
+
retry_count = retry_count + 1,
|
|
340
|
+
start_after = ?,
|
|
341
|
+
started_at = NULL,
|
|
342
|
+
worker_id = NULL,
|
|
343
|
+
error = ?
|
|
344
|
+
WHERE id = ?
|
|
345
|
+
`);
|
|
346
|
+
const updateFailed = this.db.prepare(`
|
|
347
|
+
UPDATE agx_jobs
|
|
348
|
+
SET status = 'failed',
|
|
349
|
+
failed_at = ?,
|
|
350
|
+
started_at = NULL,
|
|
351
|
+
worker_id = NULL,
|
|
352
|
+
error = ?
|
|
353
|
+
WHERE id = ?
|
|
354
|
+
`);
|
|
355
|
+
|
|
356
|
+
const reaped: Array<{
|
|
357
|
+
id: string;
|
|
358
|
+
fromStatus: "active";
|
|
359
|
+
toStatus: "retry" | "failed";
|
|
360
|
+
retryCount: number;
|
|
361
|
+
}> = [];
|
|
362
|
+
|
|
363
|
+
for (const job of staleJobs) {
|
|
364
|
+
const error = `Job exceeded active timeout of ${getStaleJobTimeoutMs()}ms`;
|
|
365
|
+
if (job.retry_count < job.retry_limit) {
|
|
366
|
+
updateRetry.run(now, error, job.id);
|
|
367
|
+
reaped.push({
|
|
368
|
+
id: job.id,
|
|
369
|
+
fromStatus: "active",
|
|
370
|
+
toStatus: "retry",
|
|
371
|
+
retryCount: job.retry_count + 1,
|
|
372
|
+
});
|
|
373
|
+
} else {
|
|
374
|
+
updateFailed.run(now, error, job.id);
|
|
375
|
+
reaped.push({
|
|
376
|
+
id: job.id,
|
|
377
|
+
fromStatus: "active",
|
|
378
|
+
toStatus: "failed",
|
|
379
|
+
retryCount: job.retry_count,
|
|
380
|
+
});
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
return reaped;
|
|
385
|
+
}
|
|
271
386
|
}
|
|
File without changes
|