@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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[55248,e=>{"use strict";var t=e.i(85148),
|
|
1
|
+
module.exports=[55248,e=>{"use strict";var t=e.i(85148),a=e.i(22734),s=e.i(14747),r=e.i(46786);let i=process.env.AGX_GROUP_CHAT_DIR?.trim()||s.default.join(r.default.homedir(),".agx","group-chat"),n=s.default.join(i,"history.sqlite"),d="global",o=new Set(["ack","working","done","clarify","blocked"]),p={ack:new Set(["ack","working"]),working:new Set(["ack","working","done","clarify","blocked"]),done:new Set(["done","ack","working"]),clarify:new Set(["ack","clarify","working"]),blocked:new Set(["ack","blocked","working"])};class _ extends Error{status;constructor(e,t){super(e),this.name="ReactionStoreError",this.status=t}}function E(e,t){return e.prepare(`PRAGMA table_info(${t})`).all().some(e=>"thread_id"===e.name)}function l(e){if(!e)return null;try{let t=JSON.parse(e);return t&&"object"==typeof t&&!Array.isArray(t)?t:null}catch{return null}}function m(e){return{id:e.id,threadId:e.thread_id,rootMessageId:e.root_message_id,userId:e.user_id,projectSlug:e.project_slug,status:e.status,currentStep:e.current_step,maxSteps:e.max_steps,stepsUsed:e.steps_used,lastError:e.last_error,activeParticipantIds:function(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}catch{return[]}}(e.active_participant_ids),payload:l(e.payload_json),result:l(e.result_json),createdAt:e.created_at,updatedAt:e.updated_at,completedAt:e.completed_at}}function c(e){return{id:e.id,chatRunId:e.chat_run_id,stepIndex:e.step_index,kind:e.kind,status:e.status,participantId:e.participant_id,inputPayload:l(e.input_payload_json),outputPayload:l(e.output_payload_json),startedAt:e.started_at,completedAt:e.completed_at}}let u=async e=>{await a.promises.mkdir(i,{recursive:!0});let s=new t.default(n);s.pragma("journal_mode = WAL");try{let t,a;return s.exec(`
|
|
2
2
|
CREATE TABLE IF NOT EXISTS messages (
|
|
3
3
|
thread_id TEXT NOT NULL,
|
|
4
4
|
id TEXT NOT NULL,
|
|
@@ -77,7 +77,7 @@ module.exports=[55248,e=>{"use strict";var t=e.i(85148),s=e.i(22734),a=e.i(14747
|
|
|
77
77
|
started_at INTEGER NOT NULL,
|
|
78
78
|
completed_at INTEGER
|
|
79
79
|
);
|
|
80
|
-
`),E(
|
|
80
|
+
`),E(s,"messages")||s.exec(`
|
|
81
81
|
ALTER TABLE messages RENAME TO messages_legacy;
|
|
82
82
|
CREATE TABLE messages (
|
|
83
83
|
thread_id TEXT NOT NULL,
|
|
@@ -92,7 +92,7 @@ module.exports=[55248,e=>{"use strict";var t=e.i(85148),s=e.i(22734),a=e.i(14747
|
|
|
92
92
|
SELECT '${d}', id, role, participant_id, content, timestamp
|
|
93
93
|
FROM messages_legacy;
|
|
94
94
|
DROP TABLE messages_legacy;
|
|
95
|
-
`),E(
|
|
95
|
+
`),E(s,"message_reactions")||s.exec(`
|
|
96
96
|
ALTER TABLE message_reactions RENAME TO message_reactions_legacy;
|
|
97
97
|
CREATE TABLE message_reactions (
|
|
98
98
|
thread_id TEXT NOT NULL,
|
|
@@ -110,7 +110,7 @@ module.exports=[55248,e=>{"use strict";var t=e.i(85148),s=e.i(22734),a=e.i(14747
|
|
|
110
110
|
SELECT '${d}', message_id, participant_id, type, reason, blocker_code, NULL, updated_at
|
|
111
111
|
FROM message_reactions_legacy;
|
|
112
112
|
DROP TABLE message_reactions_legacy;
|
|
113
|
-
`),new Set(
|
|
113
|
+
`),new Set(s.prepare("PRAGMA table_info(logs)").all().map(e=>e.name)).has("agent_process_id")||s.exec(`
|
|
114
114
|
DROP TABLE IF EXISTS logs;
|
|
115
115
|
CREATE TABLE logs (
|
|
116
116
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
@@ -119,15 +119,15 @@ module.exports=[55248,e=>{"use strict";var t=e.i(85148),s=e.i(22734),a=e.i(14747
|
|
|
119
119
|
line TEXT NOT NULL,
|
|
120
120
|
timestamp INTEGER NOT NULL
|
|
121
121
|
);
|
|
122
|
-
`),new Set(
|
|
122
|
+
`),new Set(s.prepare("PRAGMA table_info(messages)").all().map(e=>e.name)).has("root_message_id")||s.exec(`
|
|
123
123
|
ALTER TABLE messages ADD COLUMN root_message_id TEXT;
|
|
124
124
|
ALTER TABLE messages ADD COLUMN parent_message_id TEXT;
|
|
125
125
|
ALTER TABLE messages ADD COLUMN depth INTEGER NOT NULL DEFAULT 0;
|
|
126
126
|
CREATE INDEX IF NOT EXISTS idx_messages_root ON messages(thread_id, root_message_id);
|
|
127
|
-
`),new Set(
|
|
127
|
+
`),new Set(s.prepare("PRAGMA table_info(messages)").all().map(e=>e.name)).has("thread_status")||s.exec(`
|
|
128
128
|
ALTER TABLE messages ADD COLUMN thread_status TEXT;
|
|
129
129
|
ALTER TABLE messages ADD COLUMN outcome_note TEXT;
|
|
130
|
-
`),(t=new Set(
|
|
130
|
+
`),(t=new Set(s.prepare("PRAGMA table_info(message_reactions)").all().map(e=>e.name))).has("host_pid")||s.exec("ALTER TABLE message_reactions ADD COLUMN host_pid INTEGER"),t.has("response_message_id")||s.exec("ALTER TABLE message_reactions ADD COLUMN response_message_id TEXT"),s.exec("UPDATE messages SET thread_status = 'in-review' WHERE thread_status = 'parked'"),s.exec("UPDATE messages SET thread_status = 'active' WHERE thread_status = 'thinking'"),s.exec("UPDATE messages SET thread_status = 'done' WHERE thread_status = 'resolved'"),s.exec("UPDATE messages SET thread_status = 'active' WHERE thread_status = 'converged'"),a=s.prepare("PRAGMA table_info(agent_processes)").all(),0===a.length||new Set(a.map(e=>e.name)).has("id")||s.exec(`
|
|
131
131
|
DROP TABLE IF EXISTS agent_processes;
|
|
132
132
|
CREATE TABLE agent_processes (
|
|
133
133
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
@@ -163,42 +163,42 @@ module.exports=[55248,e=>{"use strict";var t=e.i(85148),s=e.i(22734),a=e.i(14747
|
|
|
163
163
|
INSERT INTO messages_fts(messages_fts, rowid, content) VALUES('delete', old.rowid, old.content);
|
|
164
164
|
INSERT INTO messages_fts(rowid, content) VALUES (new.rowid, new.content);
|
|
165
165
|
END;
|
|
166
|
-
`),0===e.prepare("SELECT COUNT(*) as count FROM messages").get().count)return;let
|
|
166
|
+
`),0===e.prepare("SELECT COUNT(*) as count FROM messages").get().count)return;let a=e.prepare("SELECT COUNT(*) as count FROM messages_fts").get().count;t&&0!==a||e.exec("INSERT INTO messages_fts(rowid, content) SELECT rowid, content FROM messages;")}(s),s.exec(`
|
|
167
167
|
CREATE INDEX IF NOT EXISTS idx_messages_thread_ts ON messages(thread_id, timestamp ASC);
|
|
168
168
|
CREATE INDEX IF NOT EXISTS idx_reactions_thread_message ON message_reactions(thread_id, message_id, updated_at ASC);
|
|
169
169
|
CREATE INDEX IF NOT EXISTS idx_logs_process_ts ON logs(agent_process_id, timestamp ASC);
|
|
170
170
|
CREATE INDEX IF NOT EXISTS idx_chat_runs_thread_updated ON chat_runs(thread_id, updated_at DESC);
|
|
171
171
|
CREATE INDEX IF NOT EXISTS idx_chat_runs_status_updated ON chat_runs(status, updated_at DESC);
|
|
172
172
|
CREATE INDEX IF NOT EXISTS idx_chat_run_steps_run_step ON chat_run_steps(chat_run_id, step_index ASC);
|
|
173
|
-
`),e(
|
|
173
|
+
`),e(s)}finally{s.close()}};function T(e){let t=new Map;for(let a of e){let e=t.get(a.message_id);e||(e=new Map,t.set(a.message_id,e));let s=e.get(a.type);s||(s={type:a.type,count:0,participantIds:[]},e.set(a.type,s)),s.count+=1,s.participantIds.push(a.participant_id)}let a=new Map;for(let[e,s]of t.entries()){let t=Array.from(s.values()).sort((e,t)=>t.count!==e.count?t.count-e.count:e.type.localeCompare(t.type));a.set(e,t)}return a}function g(e,t,a){if(a&&0===a.length)return new Map;if(a){let s=a.map(()=>"?").join(", ");return T(e.prepare(`SELECT message_id, participant_id, type
|
|
174
174
|
FROM message_reactions
|
|
175
|
-
WHERE thread_id = ? AND message_id IN (${
|
|
176
|
-
ORDER BY updated_at ASC`).all(t,...
|
|
175
|
+
WHERE thread_id = ? AND message_id IN (${s})
|
|
176
|
+
ORDER BY updated_at ASC`).all(t,...a))}return T(e.prepare(`SELECT message_id, participant_id, type
|
|
177
177
|
FROM message_reactions
|
|
178
178
|
WHERE thread_id = ?
|
|
179
|
-
ORDER BY updated_at ASC`).all(t))}function N(e){if("string"!=typeof e)return null;let t=e.trim();return t.length>0?t:null}function
|
|
179
|
+
ORDER BY updated_at ASC`).all(t))}function N(e){if("string"!=typeof e)return null;let t=e.trim();return t.length>0?t:null}function h(e){return"number"!=typeof e||!Number.isInteger(e)||e<=0?null:e}function L(e,t,a=100){return Math.min(Math.max(Math.trunc(Number.isFinite(e)?Number(e):t),1),a)}function R(e){return e.replace(/[\\%_]/g,"\\$&")}function I(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function O(e,t){return{id:e.id,role:e.role,participantId:e.participant_id,content:e.content,timestamp:e.timestamp,reactions:t.get(e.id),rootMessageId:e.root_message_id,parentMessageId:e.parent_message_id,depth:e.depth,...e.thread_status?{threadStatus:e.thread_status}:{},...e.outcome_note?{outcomeNote:e.outcome_note}:{}}}function A(e){return e.replace(/\[agx:spawn\]\s*/g,"").replace(/\s*\[agx:exit:\d+\]\s*/g,"").replace(/^\[SKIP\]\s*$/gm,"").trim()}function S(e){return"working"===e?"running":"done"===e?"done":"blocked"===e||"clarify"===e?"failed":null}async function f(e){let{status:t,limit:a=20,offset:s=0}=e??{};return u(e=>{let r=["m.root_message_id IS NULL","m.depth = 0"],i=[];t&&(r.push("COALESCE(m.thread_status, 'active') = ?"),i.push(t));let n=r.join(" AND "),d=e.prepare(`SELECT COUNT(*) as cnt FROM messages m WHERE ${n}`).get(...(i.length?[i]:[]).flat());return{rows:e.prepare(`SELECT m.thread_id, m.id, m.content, m.timestamp,
|
|
180
180
|
m.thread_status, m.outcome_note,
|
|
181
181
|
(SELECT COUNT(*) FROM messages r WHERE r.root_message_id = m.id AND r.thread_id = m.thread_id) as reply_count,
|
|
182
182
|
COALESCE((SELECT MAX(r.timestamp) FROM messages r WHERE r.root_message_id = m.id AND r.thread_id = m.thread_id), m.timestamp) as last_activity
|
|
183
183
|
FROM messages m
|
|
184
184
|
WHERE ${n}
|
|
185
185
|
ORDER BY last_activity DESC
|
|
186
|
-
LIMIT ? OFFSET ?`).all(...i,s
|
|
186
|
+
LIMIT ? OFFSET ?`).all(...i,a,s),total:d.cnt}})}async function y(t){if(0===t.length)return{};let{getSQLiteDb:a}=await e.A(48207),s=a(),r=t.map(()=>"?").join(", "),i=s.prepare(`SELECT pt.thread_id, p.name FROM project_threads pt
|
|
187
187
|
JOIN projects p ON p.id = pt.project_id
|
|
188
|
-
WHERE pt.thread_id IN (${r})`).all(...t),n={};for(let e of i)n[e.thread_id]||(n[e.thread_id]=e.name);return n}async function
|
|
188
|
+
WHERE pt.thread_id IN (${r})`).all(...t),n={};for(let e of i)n[e.thread_id]||(n[e.thread_id]=e.name);return n}async function D(t){let{getSQLiteDb:a}=await e.A(48207);return a().prepare("SELECT thread_id FROM project_threads WHERE project_id = ? ORDER BY created_at ASC").all(t).map(e=>e.thread_id)}async function C(e,t){let a=e.trim()||d;return u(e=>{let s=null!=t?`SELECT id, role, participant_id, content, timestamp, root_message_id, parent_message_id, depth, thread_status, outcome_note
|
|
189
189
|
FROM messages
|
|
190
190
|
WHERE thread_id = ? AND timestamp > ?
|
|
191
191
|
ORDER BY timestamp ASC`:`SELECT id, role, participant_id, content, timestamp, root_message_id, parent_message_id, depth, thread_status, outcome_note
|
|
192
192
|
FROM messages
|
|
193
193
|
WHERE thread_id = ?
|
|
194
|
-
ORDER BY timestamp ASC`,r=null!=t?e.prepare(
|
|
194
|
+
ORDER BY timestamp ASC`,r=null!=t?e.prepare(s).all(a,t):e.prepare(s).all(a),i=g(e,a,r.map(e=>e.id));return r.map(e=>O(e,i))})}async function M(e){let t=N(e.rootMessageId),a=e.threadId?.trim()||null,s=null!=e.processLimit?L(e.processLimit,10):null;return u(e=>{if(!t&&!a)return{rootMessage:null,processes:[],messages:[],lastUpdatedAt:null};let r=a&&t?e.prepare(`SELECT thread_id, id, role, participant_id, content, timestamp, root_message_id, parent_message_id, depth, thread_status, outcome_note
|
|
195
195
|
FROM messages
|
|
196
196
|
WHERE thread_id = ? AND id = ?
|
|
197
|
-
LIMIT 1`).get(
|
|
197
|
+
LIMIT 1`).get(a,t):a?e.prepare(`SELECT thread_id, id, role, participant_id, content, timestamp, root_message_id, parent_message_id, depth, thread_status, outcome_note
|
|
198
198
|
FROM messages
|
|
199
199
|
WHERE thread_id = ?
|
|
200
200
|
ORDER BY CASE WHEN root_message_id IS NULL THEN 0 ELSE 1 END, timestamp ASC, id ASC
|
|
201
|
-
LIMIT 1`).get(
|
|
201
|
+
LIMIT 1`).get(a):e.prepare(`SELECT thread_id, id, role, participant_id, content, timestamp, root_message_id, parent_message_id, depth, thread_status, outcome_note
|
|
202
202
|
FROM messages
|
|
203
203
|
WHERE id = ?
|
|
204
204
|
ORDER BY timestamp ASC, thread_id ASC
|
|
@@ -225,7 +225,7 @@ module.exports=[55248,e=>{"use strict";var t=e.i(85148),s=e.i(22734),a=e.i(14747
|
|
|
225
225
|
AND r.type IN ('working', 'done', 'clarify', 'blocked')
|
|
226
226
|
AND (m.root_message_id = ? OR m.id = ?)
|
|
227
227
|
ORDER BY r.updated_at DESC
|
|
228
|
-
${null!=
|
|
228
|
+
${null!=s?"LIMIT ?":""}`).all(i,n,n,...null!=s?[s]:[]),_=O(d,o),E=p.map(e=>{let t=S(e.type);return t?{processId:h(e.host_pid),datetime:e.datetime,agent:e.participant_id,responseTo:e.response_to??"",responseToMessageId:e.response_to_message_id??"",responseToSenderName:N(e.response_to_participant_id)??e.response_to_role??"",responseToSenderRole:e.response_to_role??"user",responseMessageId:N(e.response_message_id),responseContent:e.response_content,status:t}:null}).filter(e=>null!==e),l=e.prepare(`SELECT ap.id, ap.agent_id, ap.pid, ap.state, ap.since_message_id, ap.started_at, ap.last_activity,
|
|
229
229
|
m.content as response_to,
|
|
230
230
|
m.role as response_to_role,
|
|
231
231
|
m.participant_id as response_to_participant_id
|
|
@@ -233,7 +233,10 @@ module.exports=[55248,e=>{"use strict";var t=e.i(85148),s=e.i(22734),a=e.i(14747
|
|
|
233
233
|
LEFT JOIN messages m
|
|
234
234
|
ON m.id = ap.since_message_id AND m.thread_id = ap.workspace_id
|
|
235
235
|
WHERE ap.thread_id = ?
|
|
236
|
-
AND ap.state IN ('running', 'spawning')`).all(n),
|
|
236
|
+
AND ap.state IN ('running', 'spawning')`).all(n),m=Date.now(),c=l.filter(e=>!(Math.max(e.last_activity||0,e.started_at||0)>m-6e5)&&!function(e){if(!Number.isFinite(e)||!e||e<=0)return!1;try{return process.kill(e,0),!0}catch{return!1}}(e.pid)).map(e=>e.id),u=new Set(c);if(c.length>0){let t=e.prepare(`UPDATE agent_processes
|
|
237
|
+
SET state = 'error',
|
|
238
|
+
last_activity = ?
|
|
239
|
+
WHERE id = ?`);e.transaction(e=>{for(let a of e)t.run(m,a)})(c)}let T=new Set(E.filter(e=>null!=e.processId).map(e=>e.processId)),L=new Set(E.filter(e=>"running"===e.status).map(e=>e.agent));for(let e of l)!u.has(e.id)&&(T.has(e.pid)||L.has(e.agent_id)||E.push({processId:e.pid||null,datetime:e.started_at,agent:e.agent_id,responseTo:e.response_to??"",responseToMessageId:e.since_message_id??"",responseToSenderName:N(e.response_to_participant_id)??e.response_to_role??"user",responseToSenderRole:e.response_to_role??"user",responseMessageId:null,responseContent:null,status:"running"}));let R=e.prepare(`SELECT m.id, m.role, m.participant_id, m.content, m.timestamp,
|
|
237
240
|
m.parent_message_id,
|
|
238
241
|
r.host_pid, r.type as reaction_type
|
|
239
242
|
FROM messages m
|
|
@@ -244,35 +247,40 @@ module.exports=[55248,e=>{"use strict";var t=e.i(85148),s=e.i(22734),a=e.i(14747
|
|
|
244
247
|
AND r.type IN ('working', 'done', 'clarify', 'blocked')
|
|
245
248
|
WHERE m.thread_id = ?
|
|
246
249
|
AND (m.root_message_id = ? OR m.id = ?)
|
|
247
|
-
ORDER BY m.timestamp ASC`).all(i,n,n).filter(e=>A(e.content).trim().length>0).map(e=>{let t=null;return"assistant"===e.role&&(t=e.reaction_type?S(e.reaction_type):"done"),{id:e.id,role:e.role,participantId:e.participant_id,content:A(e.content),timestamp:e.timestamp,parentMessageId:e.parent_message_id,processId:"assistant"===e.role?
|
|
248
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);e.transaction(e=>{for(let t of e)
|
|
250
|
+
ORDER BY m.timestamp ASC`).all(i,n,n).filter(e=>A(e.content).trim().length>0).map(e=>{let t=null;return"assistant"===e.role&&(t=e.reaction_type?S(e.reaction_type):"done"),{id:e.id,role:e.role,participantId:e.participant_id,content:A(e.content),timestamp:e.timestamp,parentMessageId:e.parent_message_id,processId:"assistant"===e.role?h(e.host_pid):null,status:t}}),I=[];for(let e of(I.push(_.timestamp),E))I.push(e.datetime);for(let e of R)I.push(e.timestamp);return{rootMessage:_,processes:E,messages:R,lastUpdatedAt:I.length>0?Math.max(...I):null}})}async function U(e,t){if(0===t.length)return;let a=e.trim()||d;await u(e=>{let s=e.prepare(`INSERT OR REPLACE INTO messages (thread_id, id, role, participant_id, content, timestamp, root_message_id, parent_message_id, depth, thread_status, outcome_note)
|
|
251
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);e.transaction(e=>{for(let t of e)s.run(a,t.id,t.role,t.participantId,t.content,t.timestamp,t.rootMessageId??null,t.parentMessageId??null,t.depth??0,t.threadStatus??null,t.outcomeNote??null)})(t)})}async function F(e){let t=Date.now();return u(a=>{a.prepare(`INSERT INTO chat_runs (
|
|
249
252
|
id, thread_id, root_message_id, user_id, project_slug, status,
|
|
250
253
|
current_step, max_steps, steps_used, last_error, active_participant_ids,
|
|
251
254
|
payload_json, result_json, created_at, updated_at, completed_at
|
|
252
|
-
) VALUES (?, ?, ?, ?, ?, 'queued', 0, ?, 0, NULL, ?, ?, NULL, ?, ?, NULL)`).run(e.id,e.threadId.trim()||d,N(e.rootMessageId),e.userId,N(e.projectSlug),
|
|
255
|
+
) VALUES (?, ?, ?, ?, ?, 'queued', 0, ?, 0, NULL, ?, ?, NULL, ?, ?, NULL)`).run(e.id,e.threadId.trim()||d,N(e.rootMessageId),e.userId,N(e.projectSlug),L(e.maxSteps,10,50),JSON.stringify(e.activeParticipantIds),e.payload?JSON.stringify(e.payload):null,t,t);let s=a.prepare("SELECT * FROM chat_runs WHERE id = ? LIMIT 1").get(e.id);if(!s)throw Error(`Failed to create chat run ${e.id}`);return m(s)})}async function w(e){let t=N(e?.threadId??null),a=Number.isFinite(e?.olderThanMs)?Math.max(e.olderThanMs,1):6e5,s=Date.now(),r=s-a;return u(e=>{let a=["status = 'running'","updated_at <= ?"],i=[r];return t&&(a.push("thread_id = ?"),i.push(t)),e.prepare(`UPDATE chat_runs
|
|
256
|
+
SET status = 'failed',
|
|
257
|
+
last_error = COALESCE(NULLIF(last_error, ''), 'Worker process died mid-execution'),
|
|
258
|
+
updated_at = ?,
|
|
259
|
+
completed_at = COALESCE(completed_at, ?)
|
|
260
|
+
WHERE ${a.join(" AND ")}`).run(s,s,...i).changes})}async function X(e){return await w(),u(t=>{let a=t.prepare("SELECT * FROM chat_runs WHERE id = ? LIMIT 1").get(e);return a?m(a):null})}async function k(e){await w({threadId:e.threadId});let t=N(e.threadId??null),a=L(e.limit,20,100);return u(s=>{let r=[],i=[];t&&(r.push("thread_id = ?"),i.push(t)),"active"===e.status?r.push("status IN ('queued', 'running')"):e.status&&(r.push("status = ?"),i.push(e.status));let n=r.length>0?`WHERE ${r.join(" AND ")}`:"";return s.prepare(`SELECT * FROM chat_runs ${n} ORDER BY updated_at DESC LIMIT ?`).all(...i,a).map(m)})}async function x(e){return u(t=>{let a=["updated_at = ?"],s=[Date.now()];e.status&&(a.push("status = ?"),s.push(e.status)),"number"==typeof e.currentStep&&(a.push("current_step = ?"),s.push(e.currentStep)),"number"==typeof e.stepsUsed&&(a.push("steps_used = ?"),s.push(e.stepsUsed)),void 0!==e.lastError&&(a.push("last_error = ?"),s.push(N(e.lastError))),void 0!==e.payload&&(a.push("payload_json = ?"),s.push(e.payload?JSON.stringify(e.payload):null)),void 0!==e.result&&(a.push("result_json = ?"),s.push(e.result?JSON.stringify(e.result):null)),void 0!==e.completedAt&&(a.push("completed_at = ?"),s.push(e.completedAt)),s.push(e.id),t.prepare(`UPDATE chat_runs SET ${a.join(", ")} WHERE id = ?`).run(...s);let r=t.prepare("SELECT * FROM chat_runs WHERE id = ? LIMIT 1").get(e.id);return r?m(r):null})}async function W(e){let t=Date.now();return u(a=>{a.prepare(`INSERT INTO chat_run_steps (
|
|
253
261
|
id, chat_run_id, step_index, kind, status, participant_id,
|
|
254
262
|
input_payload_json, output_payload_json, started_at, completed_at
|
|
255
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(e.id,e.chatRunId,e.stepIndex,e.kind,e.status,N(e.participantId),e.inputPayload?JSON.stringify(e.inputPayload):null,e.outputPayload?JSON.stringify(e.outputPayload):null,t,"completed"===e.status||"failed"===e.status?t:null);let a
|
|
263
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(e.id,e.chatRunId,e.stepIndex,e.kind,e.status,N(e.participantId),e.inputPayload?JSON.stringify(e.inputPayload):null,e.outputPayload?JSON.stringify(e.outputPayload):null,t,"completed"===e.status||"failed"===e.status?t:null);let s=a.prepare("SELECT * FROM chat_run_steps WHERE id = ? LIMIT 1").get(e.id);if(!s)throw Error(`Failed to append chat run step ${e.id}`);return c(s)})}async function H(e){return u(t=>{let a=[],s=[];if(e.status&&(a.push("status = ?"),s.push(e.status)),void 0!==e.outputPayload&&(a.push("output_payload_json = ?"),s.push(e.outputPayload?JSON.stringify(e.outputPayload):null)),void 0!==e.completedAt&&(a.push("completed_at = ?"),s.push(e.completedAt)),0===a.length){let a=t.prepare("SELECT * FROM chat_run_steps WHERE id = ? LIMIT 1").get(e.id);return a?c(a):null}s.push(e.id),t.prepare(`UPDATE chat_run_steps SET ${a.join(", ")} WHERE id = ?`).run(...s);let r=t.prepare("SELECT * FROM chat_run_steps WHERE id = ? LIMIT 1").get(e.id);return r?c(r):null})}async function P(e){return u(t=>t.prepare("SELECT * FROM chat_run_steps WHERE chat_run_id = ? ORDER BY step_index ASC, started_at ASC").all(e).map(c))}async function B(e,t,a,s){let r=e.trim()||d;await u(e=>{e.prepare("UPDATE messages SET thread_status = ?, outcome_note = ? WHERE thread_id = ? AND id = ?").run(a,s,r,t)})}async function G(e){return u(t=>{let a=t.prepare("SELECT thread_id FROM messages WHERE id = ?").get(e.trim());return a?{threadId:a.thread_id}:null})}async function b(e){let t=e.trim()||d;await u(e=>{e.transaction(t=>{e.prepare("DELETE FROM message_reactions WHERE thread_id = ?").run(t),e.prepare("DELETE FROM messages WHERE thread_id = ?").run(t)})(t)})}async function j(e,t){let a=e.trim()||d,s=t.trim();s&&await u(e=>{e.transaction((t,a)=>{e.prepare("DELETE FROM message_reactions WHERE thread_id = ? AND message_id = ?").run(t,a),e.prepare("DELETE FROM messages WHERE thread_id = ? AND id = ?").run(t,a)})(a,s)})}async function v(e,t){let a=e.trim()||d,s=t.trim();s&&await u(e=>{e.transaction((t,a)=>{e.prepare(`DELETE FROM message_reactions
|
|
256
264
|
WHERE thread_id = ?
|
|
257
265
|
AND message_id IN (
|
|
258
266
|
SELECT id
|
|
259
267
|
FROM messages
|
|
260
268
|
WHERE thread_id = ?
|
|
261
269
|
AND (id = ? OR root_message_id = ?)
|
|
262
|
-
)`).run(t,t,
|
|
270
|
+
)`).run(t,t,a,a),e.prepare(`DELETE FROM messages
|
|
263
271
|
WHERE thread_id = ?
|
|
264
|
-
AND (id = ? OR root_message_id = ?)`).run(t,
|
|
272
|
+
AND (id = ? OR root_message_id = ?)`).run(t,a,a)})(a,s)})}async function Y(e){let t=e.query.trim();if(!t)return{results:[],total:0};let a="string"==typeof e.threadId&&e.threadId.trim()||null,s=Number.isFinite(e.limit)?Number(e.limit):20,r=Number.isFinite(e.offset)?Number(e.offset):0,i=Math.min(Math.max(Math.trunc(s),1),100),n=Math.max(Math.trunc(r),0),d=function(e){let t=e.toLowerCase().match(/[\p{L}\p{N}]+/gu)??[],a=new Set,s=[];for(let e of t)a.has(e)||(a.add(e),s.push(e));return s}(t),o=d.length>0?d.map(e=>`${e}*`).join(" "):null;return u(e=>{let s=new Map;if(o){let t=["messages_fts MATCH ?"],r=[o];for(let i of(a&&(t.push("m.thread_id = ?"),r.push(a)),e.prepare(`SELECT m.thread_id, m.id, m.role, m.participant_id, m.timestamp, m.root_message_id,
|
|
265
273
|
snippet(messages_fts, 0, '<mark>', '</mark>', '...', 32) AS snippet,
|
|
266
274
|
bm25(messages_fts) as rank
|
|
267
275
|
FROM messages_fts
|
|
268
276
|
JOIN messages m ON messages_fts.rowid = m.rowid
|
|
269
277
|
WHERE ${t.join(" AND ")}
|
|
270
|
-
ORDER BY rank ASC, m.timestamp DESC`).all(...r))){let e=`${i.thread_id}:${i.id}`;
|
|
278
|
+
ORDER BY rank ASC, m.timestamp DESC`).all(...r))){let e=`${i.thread_id}:${i.id}`;s.set(e,{threadId:i.thread_id,messageId:i.id,role:i.role,participantId:i.participant_id,snippet:i.snippet,timestamp:i.timestamp,rootMessageId:i.root_message_id,sortRank:i.rank,matchedByFts:!0})}}let r=[],p=[];if(a&&(r.push("m.thread_id = ?"),p.push(a)),d.length>0)for(let e of d)r.push("LOWER(m.content) LIKE ? ESCAPE '\\'"),p.push(`%${R(e)}%`);else r.push("LOWER(m.content) LIKE ? ESCAPE '\\'"),p.push(`%${R(t.toLowerCase())}%`);for(let t of e.prepare(`SELECT m.thread_id, m.id, m.role, m.participant_id, m.content, m.timestamp, m.root_message_id
|
|
271
279
|
FROM messages m
|
|
272
280
|
WHERE ${r.join(" AND ")}
|
|
273
|
-
ORDER BY m.timestamp DESC`).all(...p)){let e=`${t.thread_id}:${t.id}`;
|
|
281
|
+
ORDER BY m.timestamp DESC`).all(...p)){let e=`${t.thread_id}:${t.id}`;s.has(e)||s.set(e,{threadId:t.thread_id,messageId:t.id,role:t.role,participantId:t.participant_id,snippet:function(e,t){let a=A(e).replace(/\s+/g," ").trim();if(!a)return"";let s=t.filter(Boolean),r=a.toLowerCase(),i=s.reduce((e,t)=>{let a=r.indexOf(t);return -1===a?e:-1===e||a<e?a:e},-1),n=i>=0?Math.max(0,i-48):0,d=i>=0?Math.min(a.length,i+112):Math.min(a.length,160),o=n>0?"...":"",p=d<a.length?"...":"",_=`${o}${a.slice(n,d)}${p}`;if(0===s.length)return _;let E=RegExp(`(${s.map(I).join("|")})`,"giu");return _.replace(E,"<mark>$1</mark>")}(t.content,d),timestamp:t.timestamp,rootMessageId:t.root_message_id,sortRank:1/0,matchedByFts:!1})}return{results:Array.from(s.values()).sort((e,t)=>e.matchedByFts!==t.matchedByFts?e.matchedByFts?-1:1:e.sortRank!==t.sortRank?e.sortRank-t.sortRank:t.timestamp-e.timestamp).slice(n,n+i).map(e=>({threadId:e.threadId,messageId:e.messageId,role:e.role,participantId:e.participantId,snippet:e.snippet,timestamp:e.timestamp,rootMessageId:e.rootMessageId})),total:s.size}})}async function $(e){let t=e.threadId?.trim()||d,a=e.messageId?.trim(),s=e.participantId?.trim(),r=e.type;if(!a)throw new _("messageId is required",400);if(!s)throw new _("participantId is required",400);if(!o.has(r))throw new _(`Invalid reaction type: ${String(r)}`,400);let i=N(e.reason),n=N(e.blockerCode),E=h(e.hostPid),l=N(e.responseMessageId),m="clarify"===r||"blocked"===r;if(m&&!i)throw new _(`"${r}" reactions require a reason`,400);let c=m?i:null,T="blocked"===r?n:null;return u(e=>{var i;if(!e.prepare("SELECT 1 FROM messages WHERE thread_id = ? AND id = ? LIMIT 1").get(t,a))throw new _(`Message not found: ${a}`,404);let n=e.prepare(`SELECT type, reason, blocker_code, host_pid
|
|
274
282
|
FROM message_reactions
|
|
275
|
-
WHERE thread_id = ? AND message_id = ? AND participant_id = ?`).get(t,s
|
|
283
|
+
WHERE thread_id = ? AND message_id = ? AND participant_id = ?`).get(t,a,s);if(i=n?.type??null,!(!i||p[i].has(r)))throw new _(`Cannot transition reaction from "${n.type}" to "${r}"`,409);if(n&&n.type===r&&N(n.reason)===c&&N(n.blocker_code)===T&&h(n.host_pid)===E)return{updated:!1,reactions:g(e,t,[a]).get(a)??[]};let d=Date.now();return e.prepare(`INSERT INTO message_reactions (thread_id, message_id, participant_id, type, reason, blocker_code, host_pid, response_message_id, updated_at)
|
|
276
284
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
277
285
|
ON CONFLICT(thread_id, message_id, participant_id)
|
|
278
286
|
DO UPDATE SET
|
|
@@ -281,31 +289,31 @@ module.exports=[55248,e=>{"use strict";var t=e.i(85148),s=e.i(22734),a=e.i(14747
|
|
|
281
289
|
blocker_code = excluded.blocker_code,
|
|
282
290
|
host_pid = excluded.host_pid,
|
|
283
291
|
response_message_id = COALESCE(excluded.response_message_id, message_reactions.response_message_id),
|
|
284
|
-
updated_at = excluded.updated_at`).run(t,s,
|
|
292
|
+
updated_at = excluded.updated_at`).run(t,a,s,r,c,T,E,l,d),{updated:!0,reactions:g(e,t,[a]).get(a)??[]}})}async function J(e){let t=e.trim()||d;return u(e=>e.prepare(`SELECT root_message_id, COUNT(*) as reply_count, MAX(timestamp) as last_activity
|
|
285
293
|
FROM messages
|
|
286
294
|
WHERE thread_id = ? AND root_message_id IS NOT NULL
|
|
287
295
|
GROUP BY root_message_id
|
|
288
|
-
ORDER BY last_activity DESC`).all(t).map(
|
|
289
|
-
WHERE thread_id = ? AND root_message_id = ? AND participant_id IS NOT NULL`).all(t,
|
|
296
|
+
ORDER BY last_activity DESC`).all(t).map(a=>{let s=e.prepare(`SELECT DISTINCT participant_id FROM messages
|
|
297
|
+
WHERE thread_id = ? AND root_message_id = ? AND participant_id IS NOT NULL`).all(t,a.root_message_id);return{rootMessageId:a.root_message_id,replyCount:a.reply_count,participants:s.map(e=>e.participant_id),lastActivityAt:a.last_activity}}))}async function K(e,t){if(0!==t.length&&e)return u(a=>{let s=a.prepare("INSERT INTO logs (agent_process_id, stream, line, timestamp) VALUES (?, ?, ?, ?)");a.transaction(()=>{for(let a of t)s.run(e,a.stream,a.line,a.timestamp)})()})}async function V(e){let t=e.trim();return t?u(e=>e.prepare(`SELECT l.id, l.agent_process_id, ap.agent_id as participant_id, l.stream, l.line, l.timestamp
|
|
290
298
|
FROM logs l
|
|
291
299
|
JOIN agent_processes ap ON ap.id = l.agent_process_id
|
|
292
300
|
WHERE ap.workspace_id = ?
|
|
293
301
|
ORDER BY l.timestamp DESC, l.id DESC
|
|
294
|
-
LIMIT 100`).all(t).reverse()):[]}async function
|
|
302
|
+
LIMIT 100`).all(t).reverse()):[]}async function q(e){return 0===e.length?[]:u(t=>{let a=e.map(()=>"?").join(", ");return t.prepare(`SELECT ap.pid as process_pid, ap.agent_id as agent, l.stream, l.line, l.timestamp
|
|
295
303
|
FROM logs l
|
|
296
304
|
JOIN agent_processes ap ON ap.id = l.agent_process_id
|
|
297
|
-
WHERE ap.pid IN (${
|
|
305
|
+
WHERE ap.pid IN (${a})
|
|
298
306
|
ORDER BY l.timestamp ASC, l.id ASC
|
|
299
|
-
LIMIT 200`).all(...e).map(e=>({processId:e.process_pid,agent:e.agent,stream:e.stream,line:e.line,timestamp:e.timestamp}))})}async function
|
|
307
|
+
LIMIT 200`).all(...e).map(e=>({processId:e.process_pid,agent:e.agent,stream:e.stream,line:e.line,timestamp:e.timestamp}))})}async function z(e){let t=e.trim();if(t)return u(e=>{e.prepare(`DELETE FROM logs WHERE agent_process_id IN (
|
|
300
308
|
SELECT id FROM agent_processes WHERE workspace_id = ?
|
|
301
|
-
)`).run(t)})}async function
|
|
309
|
+
)`).run(t)})}async function Q(e,t=3e5){let a=e.trim()||d,s=Number.isFinite(t)?Math.max(t,1):3e5,r=Date.now(),i=r-s;return u(e=>({updated:e.prepare(`UPDATE message_reactions
|
|
302
310
|
SET type = 'blocked',
|
|
303
311
|
reason = 'stale_timeout',
|
|
304
312
|
blocker_code = 'stale_timeout',
|
|
305
313
|
updated_at = ?
|
|
306
|
-
WHERE thread_id = ? AND type = 'working' AND updated_at <= ?`).run(r,
|
|
314
|
+
WHERE thread_id = ? AND type = 'working' AND updated_at <= ?`).run(r,a,i).changes}))}async function Z(e,t,a){let s=e.trim()||d;return u(e=>{e.prepare(`INSERT INTO task_drafts (thread_id, message_id, data, updated_at)
|
|
307
315
|
VALUES (?, ?, ?, ?)
|
|
308
316
|
ON CONFLICT(thread_id, message_id)
|
|
309
|
-
DO UPDATE SET data = excluded.data, updated_at = excluded.updated_at`).run(
|
|
317
|
+
DO UPDATE SET data = excluded.data, updated_at = excluded.updated_at`).run(s,t,JSON.stringify(a),Date.now())})}async function ee(e){let t=e.trim()||d;return u(e=>{let a=e.prepare("SELECT message_id, data FROM task_drafts WHERE thread_id = ?").all(t),s={};for(let e of a)s[e.message_id]=JSON.parse(e.data);return s})}async function et(e,t){let a=e.trim()||d;return u(e=>{e.prepare("DELETE FROM task_drafts WHERE thread_id = ? AND message_id = ?").run(a,t)})}e.s(["ReactionStoreError",()=>_,"appendChatRunStep",()=>W,"clearHistory",()=>b,"clearLogs",()=>z,"clearRootThread",()=>v,"createChatRun",()=>F,"deleteMessage",()=>j,"deleteTaskDraft",()=>et,"getChatRun",()=>X,"getMessageThread",()=>G,"getProjectThreadIds",()=>D,"getThreadInfos",()=>J,"getThreadStatusSnapshot",()=>M,"getWorkspaceNames",()=>y,"listChatRunSteps",()=>P,"listChatRuns",()=>k,"listRootMessages",()=>f,"loadHistory",()=>C,"loadLogs",()=>V,"loadLogsByProcessPids",()=>q,"loadTaskDrafts",()=>ee,"saveLogs",()=>K,"saveMessages",()=>U,"saveTaskDraft",()=>Z,"searchMessages",()=>Y,"setReaction",()=>$,"sweepStaleChatRuns",()=>w,"sweepStaleWorkingReactions",()=>Q,"updateChatRun",()=>x,"updateChatRunStep",()=>H,"updateMessageStatus",()=>B])}];
|
|
310
318
|
|
|
311
319
|
//# sourceMappingURL=lib_history-store_ts_74d1c060._.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
module.exports=[61378,e=>{"use strict";var t=e.i(47909),a=e.i(74017),n=e.i(96250),r=e.i(59756),i=e.i(61916),o=e.i(74677),s=e.i(69741),l=e.i(16795),d=e.i(87718),c=e.i(95169),u=e.i(47587),p=e.i(66012),g=e.i(70101),f=e.i(74838),m=e.i(10372),h=e.i(93695);e.i(52474);var y=e.i(220),w=e.i(84776),I=e.i(42639),S=e.i(26617)
|
|
1
|
+
module.exports=[61378,e=>{"use strict";var t=e.i(47909),a=e.i(74017),n=e.i(96250),r=e.i(59756),i=e.i(61916),o=e.i(74677),s=e.i(69741),l=e.i(16795),d=e.i(87718),c=e.i(95169),u=e.i(47587),p=e.i(66012),g=e.i(70101),f=e.i(74838),m=e.i(10372),h=e.i(93695);e.i(52474);var y=e.i(220),w=e.i(84776),I=e.i(42639),S=e.i(26617),v=e.i(60447),$=e.i(90081),b=e.i(62294),k=e.i(33938),R=e.i(77581),E=e.i(49041),C=e.i(97812),x=e.i(68638),A=e.i(4290),_=e.i(42304),j=e.i(57431),T=e.i(12616),D=e.i(91595),P=e.i(12592);async function M(e){let t=(0,j.createAdminDbClient)();await t.from("tasks").update({stage:e.stage,status:"queued",updated_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId)}async function O(e){let t=(0,j.createAdminDbClient)(),{data:a}=await t.from("tasks").select("stage_decisions").eq("id",e.taskId).eq("user_id",e.userId).maybeSingle(),n={...a?.stage_decisions&&"object"==typeof a.stage_decisions?a.stage_decisions:{},[e.stage]:{decision:e.decision.decision,rationale:e.decision.explanation,final_result:e.decision.final_result,decided_at:new Date().toISOString()}},{error:r}=await t.from("tasks").update({stage_decisions:n,updated_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId);if(r&&!function(e){if(!e||"object"!=typeof e)return!1;let t="code"in e?String(e.code):"",a="message"in e?String(e.message).toLowerCase():"";return("PGRST204"===t||"42703"===t)&&a.includes("stage_decisions")}(r))throw r}async function L(e){let t=await $.db.getTask(e.taskId,e.userId);if(!t)throw Error(`Task ${e.taskId} not found`);let a=t.stage||null,n=new Date().toISOString(),r={taskId:e.taskId,userId:e.userId,title:t.title||null,slug:t.slug||null,timestamp:n},{frontmatter:i,body:o}=(0,b.parseFrontmatter)(t.content),s=(0,_.resolveMemoryAgentId)({defaultUserId:e.userId,frontmatter:i});i.stage=e.nextStage,i.status=e.nextStatus,e.error?i.error=e.error:"error"in i&&delete i.error;let l=(0,T.buildMarkdownWithFrontmatter)(i,o);await $.db.updateTask(e.taskId,l,e.userId);let d=(0,j.createAdminDbClient)(),{error:c}=await d.from("tasks").update({stage:e.nextStage,status:e.nextStatus,retry_count:e.retryCount,error:e.error,updated_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId);c?console.error(`[applyStageTransition] direct update failed for ${e.taskId}:`,c):console.log(`[applyStageTransition] set ${e.taskId} to status=${e.nextStatus}, stage=${e.nextStage}`),"completed"===e.nextStatus&&(await d.from("tasks").update({completed_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId),await (0,D.triggerDependentTasks)(e.taskId,e.userId)),("completed"===e.nextStatus||"failed"===e.nextStatus)&&((0,_.extractAndStoreMemories)(e.taskId,s,{goal:String(t.content||t.title||""),status:String(e.nextStatus)}).catch(e=>console.warn("[applyStageTransition] Memory extraction failed:",e)),(0,_.extractAndStoreProjectKnowledge)(e.taskId,t.project_id||t.project,{goal:String(t.content||t.title||""),status:String(e.nextStatus)}).catch(e=>console.warn("[applyStageTransition] Project knowledge extraction failed:",e))),"blocked"!==e.nextStatus&&"failed"!==e.nextStatus&&(0,P.notifyTaskEvent)({...r,eventType:"task.stage_complete",stage:a,previousStage:a,nextStage:e.nextStage,status:e.nextStatus,details:{nextStatus:e.nextStatus}}),"completed"===e.nextStatus&&(0,P.notifyTaskEvent)({...r,eventType:"task.completed",stage:e.nextStage,status:e.nextStatus,details:{previousStage:a,nextStage:e.nextStage}}),"failed"===e.nextStatus&&(0,P.notifyTaskEvent)({...r,eventType:"task.failed",stage:e.nextStage,status:e.nextStatus,error:e.error,details:{previousStage:a}})}async function N(e){await $.db.addTaskLog(e.taskId,e.content,e.logType)}async function U(e){await $.db.addTaskComment(e.taskId,e.content,e.authorType||"agent")}async function q(e){let t=await $.db.getTask(e.taskId,e.userId);if(!t)return;let{frontmatter:a,body:n}=(0,b.parseFrontmatter)(t.content),r=(0,_.resolveMemoryAgentId)({defaultUserId:e.userId,frontmatter:a});a.status="failed",a.error=e.reason||"Cancelled";let i=(0,T.buildMarkdownWithFrontmatter)(a,n);await $.db.updateTask(e.taskId,i,e.userId),await $.db.addTaskLog(e.taskId,e.reason||"Task cancelled","error"),(0,_.extractAndStoreMemories)(e.taskId,r,{goal:String(t.content||t.title||""),status:"failed"}).catch(e=>console.warn("[markCancelled] Memory extraction failed:",e)),(0,_.extractAndStoreProjectKnowledge)(e.taskId,t.project_id||t.project,{goal:String(t.content||t.title||""),status:"failed"}).catch(e=>console.warn("[markCancelled] Project knowledge extraction failed:",e));let o=(0,j.createAdminDbClient)();await o.from("tasks").update({status:"failed",error:e.reason||"Cancelled",updated_at:new Date().toISOString()}).eq("id",e.taskId).eq("user_id",e.userId),(0,P.notifyTaskEvent)({taskId:e.taskId,userId:e.userId,eventType:"task.failed",title:t.title||null,slug:t.slug||null,stage:t.stage||null,status:"failed",error:e.reason||"Cancelled",timestamp:new Date().toISOString(),details:{previousStage:t.stage||null}})}async function z(e){let{taskId:t,userId:a,signal:n,payload:r,ticketType:i="task"}=e.data,o=await $.db.getTask(t,a);if(!o)return void console.log(`[processor] Task ${t} not found, skipping`);if("completed"===o.status||"failed"===o.status)return void console.log(`[processor] Task ${t} is ${o.status}, skipping`);let s=o.stage;switch(n){case"start":await H(t,s,a);break;case"agentResult":await F(t,s,a,r,i,o.retry_count||0,o.workflow_id&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(o.workflow_id)?o.workflow_id:null);break;case"humanInput":await K(t,r);break;case"daemonStep":await J(t,r);break;case"cancel":await W(t,a,r?.reason);break;default:console.warn(`[processor] Unknown signal: ${n}`)}}async function B(e){for(let t of e)try{await z(t)}catch(e){throw console.error(`[processor] Error processing job ${t.id}:`,e),e}}async function H(e,t,a){console.log(`[processor] Starting task ${e} at stage ${t}`),await M({taskId:e,stage:t,userId:a}),await N({taskId:e,content:`Task started at stage: ${t}`,logType:"system"})}async function F(e,t,a,n,r,i,o=null){let s,l,d;console.log(`[processor] Processing agent result for ${e}: ${n.decision}`),await O({taskId:e,stage:t,decision:n,userId:a});let c=Array.isArray(n.comments)?n.comments.map(e=>String(e||"").trim()).filter(Boolean):[],u=String(n.comment||n.log||n.final_result||"").trim();for(let t of c.length>0?c:u.split("\n").map(e=>e.trim()).filter(Boolean))await U({taskId:e,content:t,authorType:"agent"});let p=null,g=null;if(o){let e=await (0,A.resolveWorkflowTransition)({workflowId:o,currentNodeName:t,decision:n.decision,retryCount:i,maxRetries:3});s=e.nextNodeName,l=e.nextStatus,d=e.retryCount,p=e.error,g=e.appendLog,console.log(`[processor] Workflow transition: ${t} -> ${s} (workflow: ${o})`)}else{let e=(0,A.resolveStageTransition)({currentStage:t,decision:n.decision,ticketType:r,retryCount:i,maxRetries:3});s=e.nextStage,l=e.nextStatus,d=e.retryCount,p=e.error,g=e.appendLog}if(await L({taskId:e,nextStage:s,nextStatus:l,retryCount:d,error:p?n.explanation||p:null,userId:a}),g){let t="error"===g.logType&&n.explanation||"system"===g.logType&&n.explanation?n.explanation:g.content;await N({taskId:e,content:t,logType:g.logType})}console.log(`[processor] Task ${e} transitioned: ${t} -> ${s}`)}async function K(e,t){console.log(`[processor] Recording human input for ${e}`),await U({taskId:e,content:t.content,authorType:t.authorType||"user"})}async function J(e,t){let a=t.provider?` provider=${t.provider}`:"",n=t.model?` model=${t.model}`:"",r=t.role?` role=${t.role}`:"",i="number"==typeof t.iteration?` iter=${t.iteration}`:"",o="exit"===t.phase?` exit=${t.exit_code}`:"",s=t.error?` error=${t.error}`:"",l=Array.isArray(t.args)?t.args.join(" "):"",d=t.stdout_tail?`
|
|
2
2
|
stdout_tail:
|
|
3
3
|
${t.stdout_tail}`:"",c=t.stderr_tail?`
|
|
4
4
|
stderr_tail:
|
|
5
5
|
${t.stderr_tail}`:"",u=`[execution/${t.kind||"daemon"}] ${t.phase||"event"} ${t.label||""}${a}${n}${r}${i}${o}${s}`.trim()+(l?`
|
|
6
6
|
args: ${l}`:"")+(t.duration_ms?`
|
|
7
|
-
duration_ms: ${t.duration_ms}`:"")+d+c;await
|
|
7
|
+
duration_ms: ${t.duration_ms}`:"")+d+c;await N({taskId:e,content:u,logType:"system"})}async function W(e,t,a){console.log(`[processor] Cancelling task ${e}: ${a||"No reason"}`),await q({taskId:e,reason:a,userId:t})}var Q=e.i(24868),V=e.i(14350),Y=e.i(87885);let G=new Set(["ack","working","done","clarify","blocked"]),Z=/\[reaction\s+([^\]]+)\]/gi,X=/([a-zA-Z][a-zA-Z0-9_]*)=(?:"((?:[^"\\]|\\.)*)"|'((?:[^'\\]|\\.)*)'|([^\s\]]*?(?=\s|]|[a-zA-Z][a-zA-Z0-9_]*=|$)))/g;var ee=e.i(36528),et=e.i(59448),ea=e.i(41334),en=e.i(22734),er=e.i(14747),ei=e.i(46786),eo=e.i(92134);let es=(0,er.join)((0,ei.homedir)(),".agx","agents");var el=e.i(40813),ed=e.i(54799);let ec=new Map,eu=new Map;function ep(e){return null!==e}function eg(e,t){var a;(0,ea.ensureAgent)(e.id,{voice:`${e.name} style`,seed:(a=e.name,!String(t||"").trim(),`I am ${a}. I evolve through experience and collaboration.`)})}async function ef(e){eg(e);let t=(0,ea.readIdentity)(e.id);if(!t)return;let a=(0,ee.readSelf)(e.id),n=(0,ee.readReflectionState)(e.id),r=(0,et.readJournalSince)(e.id,n?.lastProcessedJournalId).filter(e=>"post"===e.type);if(0===r.length)return;let i=(0,ea.getTeamSelves)(e.id),o=(a?.version??0)+1,s=(0,el.listKnowledgeEntries)({scope:"agent",subjectId:e.id,limit:50}),l=(0,ee.buildStructuredReflectionPrompt)(t,a,r,i,s),d="";await (0,V.runCliResponse)({provider:e.provider,model:e.model,systemContext:"You are performing a self-modeling exercise. Output ONLY raw JSON matching the requested schema. No markdown fences, no commentary.",prompt:l,signal:void 0,onDelta:e=>{d+=e}});let c=d.trim().replace(/^```(?:json)?\s*/i,"").replace(/\s*```\s*$/,"").trim(),u=null;try{u=JSON.parse(c)}catch{u=null}let p=u?.self_model?.trim()||"";if(!p)return;let g=Array.isArray(u?.memories)?u.memories.slice(0,3).map(t=>({scope:"agent",subjectId:e.id,sourceType:"reflection",sourceId:r[r.length-1]?.id||`reflection:${e.id}:${o}`,kind:t.kind,title:String(t.title??"").trim(),body:String(t.body??"").trim(),confidence:t.confidence,durability:t.durability,tags:t.tags,evidence:Array.isArray(t.evidence)?t.evidence.map(e=>{let t=String(e?.note??"").trim(),a="string"==typeof e?.id?e.id.trim():"";return t?a?{id:a,note:t}:{note:t}:null}).filter(ep):[],metadata:{reflection_window_start:r[0]?.id??null,reflection_window_end:r[r.length-1]?.id??null,self_version:o}})).filter(e=>e.title&&e.body):[],f=(0,el.storeKnowledgeEntries)(g);if((0,ee.writeSelf)(e.id,p,o),(0,ee.writeReflectionState)(e.id,{lastProcessedJournalId:r[r.length-1]?.id??n?.lastProcessedJournalId??null,updatedAt:new Date().toISOString()}),f>0){let t=(0,v.getSQLiteDb)().prepare(`INSERT OR IGNORE INTO agent_memory (id, agent_id, task_id, memory_type, content, content_hash, created_at)
|
|
8
8
|
VALUES (?, ?, ?, ?, ?, ?, ?)`),a=`reflection:${e.id}:${r[r.length-1]?.id??o}`,n=Date.now();for(let r of g){let i="decision"===r.kind?"decision":"gotcha"===r.kind||"constraint"===r.kind?"gotcha":"outcome"===r.kind?"outcome":"pattern",o=(0,ed.createHash)("sha256").update(r.body.trim()).digest("hex");t.run((0,ed.randomUUID)(),e.id,a,i,r.body.trim(),o,n)}}(0,et.appendJournal)(e.id,{t:new Date().toISOString(),type:"reflection",observation:"Reflected after 10 messages",judgement:"Updated self-model from incremental journal evidence and deduped agent memories",delta:`self-model updated to v${o}${f>0?`; stored ${f} agent memories`:""}`,threads:[],selfVersion:o,body:p});let m=(0,ea.listAgents)().filter(t=>t!==e.id).flatMap(e=>(0,et.readJournal)(e,3).map(t=>({agentId:e,entry:t})));if(m.length>0){let t=m.map(e=>`${e.entry.id}: ${e.entry.observation.slice(0,200)}`).join("\n"),a="";try{await (0,V.runCliResponse)({provider:e.provider,model:e.model,prompt:`You are ${e.id}. Review these recent entries from other agents and react to any that resonate with you.
|
|
9
9
|
|
|
10
10
|
Entries:
|
|
@@ -15,9 +15,9 @@ REACT <entryId> <type>
|
|
|
15
15
|
|
|
16
16
|
Valid types: agree, disagree, learned-from, builds-on, curious
|
|
17
17
|
|
|
18
|
-
Only react to entries that genuinely resonate. It's fine to react to zero entries. Output nothing else.`,signal:void 0,onDelta:e=>{a+=e}})}catch{}for(let t of a.split("\n")){let a=t.trim().match(/^REACT\s+(\S+)\s+(agree|disagree|learned-from|builds-on|curious)$/);if(a)try{!function(e,t,a){let n;if(!function(e){let[t]=e.split(":");return!!t&&(0,et.readJournal)(t).some(t=>t.id===e)}(t))throw Error(`Target entry ${t} not found`);n=(0,er.join)(es,e),(0,en.existsSync)(n)||(0,en.mkdirSync)(n,{recursive:!0});let r={agent:e,t:new Date().toISOString(),targetEntry:t,type:a};(0,en.appendFileSync)((0,er.join)(es,e,"reactions.jsonl"),JSON.stringify(r)+"\n","utf-8"),(0,eo.logActivity)(e,"mesh-reaction",{meta:{target:t,type:a}})}(e.id,a[1],a[2])}catch{}}}}async function em(e){try{return await (0,Q.readFile)(e,"utf-8")}catch(a){let t=a instanceof Error?a.message:String(a);return`[Error reading ${e}: ${t}]`}}async function eh(e){let t=e.trim();if(!t)return{label:"unknown",content:"[Empty file reference]"};let a=function(e){let t=e.trim();if(!t)return null;let a=t.match(/^attachment:([a-zA-Z0-9-]+)$/);if(a)return a[1];let n=t.match(/\/api\/attachments\/([a-zA-Z0-9-]+)/);return n?n[1]:t.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i)?t:null}(t);if(a){let e=await (0,S.getAttachmentMeta)(a);if(e){let t=await em(e.diskPath);return{label:e.filename,content:t}}}return{label:t,content:await em(t)}}function ey(e,t){let a=new Set(e.toLowerCase().replace(/[^\w\s]/g,"").split(/\s+/).filter(Boolean)),n=new Set(t.toLowerCase().replace(/[^\w\s]/g,"").split(/\s+/).filter(Boolean));if(0===a.size||0===n.size)return 0;let r=0;for(let e of a)n.has(e)&&r++;return r/(a.size+n.size-r)}async function ew(e,t,a,n,r,i,o,s,l,d,c,u,p,g){let f,m,h,y,w,S
|
|
19
|
-
${
|
|
20
|
-
${e.join("\n")}`].filter(Boolean).join("\n\n")}let
|
|
18
|
+
Only react to entries that genuinely resonate. It's fine to react to zero entries. Output nothing else.`,signal:void 0,onDelta:e=>{a+=e}})}catch{}for(let t of a.split("\n")){let a=t.trim().match(/^REACT\s+(\S+)\s+(agree|disagree|learned-from|builds-on|curious)$/);if(a)try{!function(e,t,a){let n;if(!function(e){let[t]=e.split(":");return!!t&&(0,et.readJournal)(t).some(t=>t.id===e)}(t))throw Error(`Target entry ${t} not found`);n=(0,er.join)(es,e),(0,en.existsSync)(n)||(0,en.mkdirSync)(n,{recursive:!0});let r={agent:e,t:new Date().toISOString(),targetEntry:t,type:a};(0,en.appendFileSync)((0,er.join)(es,e,"reactions.jsonl"),JSON.stringify(r)+"\n","utf-8"),(0,eo.logActivity)(e,"mesh-reaction",{meta:{target:t,type:a}})}(e.id,a[1],a[2])}catch{}}}}async function em(e){try{return await (0,Q.readFile)(e,"utf-8")}catch(a){let t=a instanceof Error?a.message:String(a);return`[Error reading ${e}: ${t}]`}}async function eh(e){let t=e.trim();if(!t)return{label:"unknown",content:"[Empty file reference]"};let a=function(e){let t=e.trim();if(!t)return null;let a=t.match(/^attachment:([a-zA-Z0-9-]+)$/);if(a)return a[1];let n=t.match(/\/api\/attachments\/([a-zA-Z0-9-]+)/);return n?n[1]:t.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i)?t:null}(t);if(a){let e=await (0,S.getAttachmentMeta)(a);if(e){let t=await em(e.diskPath);return{label:e.filename,content:t}}}return{label:t,content:await em(t)}}function ey(e,t){let a=new Set(e.toLowerCase().replace(/[^\w\s]/g,"").split(/\s+/).filter(Boolean)),n=new Set(t.toLowerCase().replace(/[^\w\s]/g,"").split(/\s+/).filter(Boolean));if(0===a.size||0===n.size)return 0;let r=0;for(let e of a)n.has(e)&&r++;return r/(a.size+n.size-r)}async function ew(e,t,a,n,r,i,o,s,l,d,c,u,p,g){let f,m,h,y,w,S,$="";u({type:"participant-thinking",participantId:t.id});let b=Object.fromEntries((d?.provenanceByAgentId?.[t.id]?.variables??d?.variables??[]).map(e=>[e.key,e.value])),k=e=>Object.keys(b).length>0?e.replace(/\{\{(\w+)\}\}/g,(e,t)=>b[t]??`{{${t}}}`):e,R=t.identity?k(t.identity):t.identity;eg(t,R);let E=(0,ee.readSelf)(t.id);E?.content&&(y=`[Self-Model]
|
|
19
|
+
${E.content}`);let C=d?.provenanceByAgentId?.[t.id],x=C?.memory??[];if(x.length>0){let e=x.map(e=>`- (${e.source}) ${e.content}`);y=[y,`[Knowledge: Agent Derived]
|
|
20
|
+
${e.join("\n")}`].filter(Boolean).join("\n\n")}let A=function(e,t){let a=t?.provenanceByAgentId?.[e.id]?.skills;if(a&&a.length>0)return a;let n=[],r=new Set;for(let t of e.skills??[]){let e=t.file.split("/").pop()||t.file;r.has(e)||(r.add(e),n.push({file:t.file,condition:t.condition,source:"agent"}))}for(let e of t?.skills??[]){let t=e.file.split("/").pop()||e.file;r.has(t)||(r.add(t),n.push({file:e.file,condition:e.condition,source:"project"}))}return n}(t,d);if(A.length>0){let e=await Promise.all(A.map(async e=>{let t=k(e.file),a=e.condition?k(e.condition):e.condition,n=await eh(t),r=a?`--- ${n.label} [${e.source}] ---
|
|
21
21
|
Use when: ${a}`:`--- ${n.label} [${e.source}] ---`;return`${r}
|
|
22
22
|
${n.content}`}));w=`[Knowledge References]
|
|
23
23
|
${e.join("\n\n")}`}let _=[function(e,t,a,n,r,i,o,s){let l=a.filter(t=>t.id!==e.id).map(e=>e.name).join(", "),d=t.map(e=>e.name).join(", "),c=t.find(t=>t.id!==e.id)?.name||"Name",u=`<role>
|
|
@@ -92,21 +92,21 @@ Resolved skills: ${C.skills.map(e=>`${e.file} (${e.source})`).join(", ")||"none"
|
|
|
92
92
|
Resolved variables: ${C.variables.map(e=>`${e.key} (${e.source})`).join(", ")||"none"}
|
|
93
93
|
Resolved memory entries: ${C.memory.map(e=>`${e.source}${e.id?`:${e.id}`:""}`).join(", ")||"none"}
|
|
94
94
|
</execution-provenance>`:null].filter(Boolean).join("\n\n");u({type:"log",participantId:t.id,stream:"stdout",line:`[DIAGNOSTIC] Model payload for ${t.id}:
|
|
95
|
-
${JSON.stringify({provider:t.provider,model:t.model,promptLength:r.length,identity:R?R.slice(0,200)+"...":void 0,self:y?y.slice(0,200)+"...":void 0,skills:w?w.slice(0,200)+"...":void 0,provenance:C,systemContext:_.slice(0,500)+"..."},null,2)}`});let j=`${t.id}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,T=(0,Y.register)({workspaceId:e,threadId:p||"",agentId:t.id,pid:0,state:"spawning",sinceMessageId:l||"",responseMessageId:j,startedAt:Date.now(),lastActivity:Date.now(),projectSlug:d?.activeProject?.slug||""});g?.(T);let
|
|
95
|
+
${JSON.stringify({provider:t.provider,model:t.model,promptLength:r.length,identity:R?R.slice(0,200)+"...":void 0,self:y?y.slice(0,200)+"...":void 0,skills:w?w.slice(0,200)+"...":void 0,provenance:C,systemContext:_.slice(0,500)+"..."},null,2)}`});let j=`${t.id}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,T=(0,Y.register)({workspaceId:e,threadId:p||"",agentId:t.id,pid:0,state:"spawning",sinceMessageId:l||"",responseMessageId:j,startedAt:Date.now(),lastActivity:Date.now(),projectSlug:d?.activeProject?.slug||""});g?.(T);let D=null;try{await (0,V.runCliResponse)({provider:t.provider,model:t.model,prompt:r,identity:R,self:y,skills:w,systemContext:_,signal:c,onSpawn:a=>{D=a,(0,Y.update)(e,t.id,{pid:a,state:"running",lastActivity:Date.now()})},onLog:(e,a)=>{u({type:"log",participantId:t.id,stream:e,line:a})},onDelta:a=>{$+=a,(0,Y.update)(e,t.id,{lastActivity:Date.now()})}}),(0,Y.update)(e,t.id,{state:"done",lastActivity:Date.now()})}catch(r){let a=r instanceof Error?r.message:String(r),n=c?.aborted;(0,Y.update)(e,t.id,{state:n?"killed":"error",lastActivity:Date.now()}),(0,eo.logActivity)(t.id,"error",{thread:p||e,error:a}),u({type:"participant-error",participantId:t.id,error:a})}finally{}let P=(f=[],m=[],h=$.replace(Z,(e,t)=>{let a=function(e){let t=new Map;for(X.lastIndex=0;;){let a=X.exec(e);if(!a)break;let n=a[1].toLowerCase(),r=a[2],i=a[3],o=a[4],s=(r??i??o??"").replace(/\\(["'\\])/g,"$1").trim();t.set(n,s)}return t}(String(t)),n=(a.get("target")||"").trim(),r=(a.get("type")||"").trim().toLowerCase(),i=(a.get("reason")||"").trim(),o=(a.get("blockercode")||a.get("blocker_code")||"").trim();return n?G.has(r)?"clarify"!==r&&"blocked"!==r||i?f.push({raw:e,target:n,type:r,reason:i||void 0,blockerCode:"blocked"===r&&o||void 0}):m.push({raw:e,error:`"${r}" requires reason`}):m.push({raw:e,error:`Invalid type: ${r||"(empty)"}`}):m.push({raw:e,error:"Missing target"}),""}).replace(/[ \t]+\n/g,"\n").replace(/\n{3,}/g,"\n\n").trim(),{signals:f,invalid:m,cleanedText:h});for(let e of P.invalid)u({type:"log",participantId:t.id,stream:"stderr",line:`[reaction] ignored ${e.raw}: ${e.error}`});for(let a of P.signals)try{let n=await (0,I.setReaction)({threadId:e,messageId:a.target,participantId:t.id,type:a.type,reason:a.reason,blockerCode:a.blockerCode,hostPid:D,responseMessageId:j});u({type:"message-reactions",messageId:a.target,reactions:n.reactions})}catch(n){let e=n instanceof Error?n.message:String(n);u({type:"log",participantId:t.id,stream:"stderr",line:`[reaction] failed ${a.raw}: ${e}`})}let M=P.cleanedText.trim();if("[SKIP]"===M)return(0,eo.logActivity)(t.id,"skip",{thread:p||e}),u({type:"participant-end",participantId:t.id}),{skipped:!0,response:"",mentions:new Set,parallel:!1,parallelIds:new Set,agentProcessId:T};let O=function(e,t){let a=e;for(let e of(a=a.replace(/@@all/gi,"@all"),t))a=(a=a.replace(RegExp(`@@${e.name}`,"gi"),`@${e.name}`)).replace(RegExp(`@@${e.id}`,"gi"),`@${e.id}`);return a}(M,a);if(O)try{await (0,I.saveMessages)(e,[{id:j,role:"assistant",participantId:t.id,content:O,timestamp:Date.now(),rootMessageId:p||null,parentMessageId:p||null,depth:+!!p}]),S=j}catch(a){let e=a instanceof Error?a.message:String(a);u({type:"log",participantId:t.id,stream:"stderr",line:`[history] failed to save assistant message: ${e}`})}if(O&&O.length>20)try{let a,n,r,i,o,s,l,d,c,u,g,f,m,h;eg(t,R);let y=(o=(i=O.trim()).slice(0,120).replace(/\n/g," "),s=/\?/.test(i),l=i.match(/@\w+/g)||[],d=/\b(should|need to|must|plan|steps?|implement|fix|verify|ship|next|start)\b/i.test(i),c=/\b(maybe|might|could|unsure|not sure|unclear)\b/i.test(i),u=/\b(i will|i'll|i can|i'm going to|starting|checking|verified|fixed|done|shipped)\b/i.test(i),g=/```/.test(i)||/\bfunction\b|\bconst\b|\binterface\b/i.test(i),f=/\|.*\|.*\|/.test(i)||/^#{1,3}\s/m.test(i),m=/\b(finding|issue|bug|problem|missing|broken|wrong)\b/i.test(i),a=g&&f?`Observed a structured technical response with code or implementation detail — "${o}..."`:g?`Observed code-centric output — "${o}..."`:f?`Observed structured analysis or specification language — "${o}..."`:m?`Observed review or issue-spotting behavior — "${o}..."`:u?`Observed a concrete commitment to action — "${o}..."`:d?`Observed direction-setting or next-step guidance — "${o}..."`:s?`Observed clarifying or exploratory questioning — "${o}..."`:c?`Observed explicit uncertainty or caveating — "${o}..."`:l.length>0?`Observed coordination with ${l.join(", ")} — "${o}..."`:`Observed a general perspective contribution — "${o}..."`,h=[],(g||f)&&h.push("technical depth"),(d||u)&&h.push("execution bias"),s&&h.push("inquiry instinct"),m&&h.push("critical eye"),l.length>0&&h.push("team coordination"),c&&h.push("intellectual honesty"),n=h.length>0?`Candidate specialization signals: ${h.join(" + ")}. Treat as suggestive evidence, not settled identity.`:"Low-signal contribution for specialization; keep as weak evidence only.",d||u?r="Follow through on the action I just committed to.":m?r="Verify the issues I flagged get addressed.":s&&(r="Wait for the answer before moving forward."),{judgement:a,delta:n,intent:r});(0,et.appendJournal)(t.id,{t:new Date().toISOString(),type:"post",thread:p||e,observation:"Responded to thread",judgement:y.judgement,delta:y.delta,intent:y.intent})}catch{}if(O){let e;eg(t,R);let a=(ec.get(t.id)||0)+1;ec.set(t.id,a),a%10==0&&(e=(eu.get(t.id)??Promise.resolve()).catch(()=>{}).then(()=>ef(t)),eu.set(t.id,e),e.finally(()=>{eu.get(t.id)===e&&eu.delete(t.id)})).catch(()=>{})}let{ids:L,parallel:N}=O?function(e,t){let a=new Set,n=new Set,r=e.toLowerCase(),i=r.includes("@@all");if(r.includes("@all")||i){for(let e of t)a.add(e.id),i&&n.add(e.id);return{ids:a,parallel:n}}try{let e=(0,v.getSQLiteDb)();for(let t of e.prepare("SELECT id, name, slug FROM projects").all()){let i=t.name.toLowerCase(),o=t.slug.toLowerCase(),s=r.includes(`@@${i}`)||r.includes(`@@${o}`),l=r.includes(`@${i}`)||r.includes(`@${o}`);if(s||l)for(let r of e.prepare("SELECT agent_id FROM project_agents WHERE project_id = ? ORDER BY routing_order ASC").all(t.id))a.add(r.agent_id),s&&n.add(r.agent_id)}}catch{}for(let e of t){let t=e.id.toLowerCase(),i=e.name.toLowerCase(),o=r.includes(`@@${t}`),s=r.includes(`@@${i}`),l=r.includes(`@${t}`),d=r.includes(`@${i}`);(o||s||l||d)&&(a.add(e.id),(o||s)&&n.add(e.id))}return{ids:a,parallel:n}}(O,a):{ids:new Set,parallel:new Set};if(L.delete(t.id),N.delete(t.id),O){let a=P.signals.map(e=>e.type);(0,eo.logActivity)(t.id,"message",{thread:p||e,messageId:S,response:O,prompt:r,mentions:L.size>0?[...L]:void 0,reactions:a.length>0?a:void 0})}return(u({type:"participant-end",participantId:t.id,messageId:S,content:O||void 0}),O)?{skipped:!1,response:O,mentions:L,parallel:N.size>0,parallelIds:N,messageId:S,agentProcessId:T}:{skipped:!0,response:"",mentions:new Set,parallel:!1,parallelIds:new Set,agentProcessId:T}}async function eI(e){return(0,I.getChatRun)(e)}async function eS(e){return(0,I.updateChatRun)(e)}async function ev(e){let t=await (0,I.listChatRunSteps)(e.chatRunId);return(0,I.appendChatRunStep)({id:crypto.randomUUID(),chatRunId:e.chatRunId,stepIndex:t.length+1,kind:e.kind,status:e.status,participantId:e.participantId,inputPayload:e.inputPayload,outputPayload:e.outputPayload})}async function e$(e){return(0,I.updateChatRunStep)({id:e.stepId,status:e.status,outputPayload:e.outputPayload,completedAt:Date.now()})}var eb=e.i(37269);async function ek(e){var t;(0,eb.writeDebugLog)("chat-processor.start.received",{jobId:e.id,chatRunId:e.data.chatRunId,signal:e.data.signal});let a=await eI(e.data.chatRunId);if(!a){(0,eb.writeDebugLog)("chat-processor.start.missing",{chatRunId:e.data.chatRunId,jobId:e.id}),console.warn(`[chat-processor] Chat run ${e.data.chatRunId} not found, skipping`);return}if("completed"===a.status||"failed"===a.status||"cancelled"===a.status)return void(0,eb.writeDebugLog)("chat-processor.start.skip_terminal",{chatRunId:a.id,status:a.status});if(!((t=a.payload)&&"object"==typeof t&&"string"==typeof t.threadId&&"string"==typeof t.prompt&&Array.isArray(t.participantIds))){(0,eb.writeDebugLog)("chat-processor.start.invalid_payload",{chatRunId:a.id}),await eS({id:a.id,status:"failed",lastError:"Chat run payload is missing or invalid",completedAt:Date.now()});return}let n=await ev({chatRunId:a.id,kind:"model_turn",status:"running",inputPayload:{participantIds:a.payload.participantIds,rootMessageId:a.payload.rootMessageId,maxRounds:a.payload.maxRounds}});await eS({id:a.id,status:"running",currentStep:n.stepIndex,stepsUsed:n.stepIndex,lastError:null});try{(0,eb.writeDebugLog)("chat-processor.start.running",{chatRunId:a.id,threadId:a.threadId,rootMessageId:a.rootMessageId,participantIds:a.payload.participantIds});let e=await (0,w.loadDbParticipants)(),t=new Set(a.payload.participantIds),r=a.payload.participantIds.map(t=>e.find(e=>e.id===t)).filter(e=>!!e);if(0===r.length)throw(0,eb.writeDebugLog)("chat-processor.start.no_participants_resolved",{chatRunId:a.id,participantIds:a.payload.participantIds}),Error("No participants resolved for chat run");let i=new Set(a.payload.mentionedIds.filter(e=>t.has(e))),o=new Set(a.payload.initialParallelIds.filter(e=>t.has(e))),s=(function({threadId:e,allParticipants:t,mentioned:a,initialParallelIds:n,prompt:r,projectContext:i,signal:o,maxRounds:s,recentHistory:l,currentUserMessageId:d,rootMessageId:c}){let u=new TextEncoder;return new ReadableStream({async start(p){let g=[],f=new Map,m=e=>{try{p.enqueue(u.encode(`data: ${JSON.stringify(e)}
|
|
96
96
|
|
|
97
|
-
`))}catch{}if("log"===e.type){let t=f.get(e.participantId);t&&g.push({agentProcessId:t,stream:e.stream,line:e.line,timestamp:Date.now()})}},h=async()=>{if(0===g.length)return;let e=new Map;for(let t of g){let a=e.get(t.agentProcessId);a||(a=[],e.set(t.agentProcessId,a)),a.push({stream:t.stream,line:t.line,timestamp:t.timestamp})}await Promise.all(Array.from(e.entries()).map(([e,t])=>(0,I.saveLogs)(e,t).catch(()=>{})))},y=[],w=[],S=l?l.map(e=>({name:e.name,content:e.content})):[],$=t[0],v=new Set;if(a.size>0)for(let e of a)v.add(e);else v.add($.id);let k=s??10,b=new Set(v);for(let a=0;a<k&&!o?.aborted;a++){let s=!0,u=t.filter(e=>v.has(e.id)),p=new Set,g=new Set;if(0===a&&n&&n.size>0){let a=u.filter(e=>n.has(e.id)&&b.has(e.id));if(a.length>0){for(let e of a)g.add(e.id);let n=a.map(async a=>{let n=await ew(e,a,t,u,r,y,l||[],w,d||null,i,o,m,c,e=>f.set(a.id,e));return{agent:a,result:n}});for(let e of(await Promise.allSettled(n))){if("fulfilled"!==e.status)continue;let{agent:t,result:a}=e.value;if(!a.skipped)for(let e of(a.response&&a.messageId&&w.push({id:a.messageId,name:t.name,content:a.response}),a.response&&([...S,...y].filter(e=>e.name===t.name).some(e=>ey(e.content,a.response)>.5)||(y.push({name:t.name,content:a.response}),s=!1)),a.mentions))v.add(e),u.findIndex(t=>t.id===e)>=0&&!g.has(e)&&b.has(e)||p.add(e)}}}for(let a=0;a<u.length;a++){let n=u[a];if(o?.aborted)break;if(!b.has(n.id)||g.has(n.id))continue;let h=await ew(e,n,t,u,r,y,l||[],w,d||null,i,o,m,c,e=>f.set(n.id,e));if(h.skipped||(h.response&&h.messageId&&w.push({id:h.messageId,name:n.name,content:h.response}),h.response&&[...S,...y].filter(e=>e.name===n.name).some(e=>ey(e.content,h.response)>.5)))continue;for(let e of(s=!1,h.response&&y.push({name:n.name,content:h.response}),h.mentions))u.findIndex(t=>t.id===e)>a&&b.has(e)||p.add(e);let I=new Set;for(let e of h.mentions)v.has(e)||(v.add(e),I.add(e));let $=new Set([...h.parallelIds].filter(e=>I.has(e)));if($.size>0){let a=t.filter(e=>$.has(e.id)),n=t.filter(e=>v.has(e.id)),s=a.map(async a=>{let s=await ew(e,a,t,n,r,y,l||[],w,d||null,i,o,m,c,e=>f.set(a.id,e));return{agent:a,result:s}});for(let e of(await Promise.allSettled(s))){if("fulfilled"!==e.status)continue;let{agent:t,result:a}=e.value;if(!a.skipped){if(a.response&&a.messageId&&w.push({id:a.messageId,name:t.name,content:a.response}),a.response){if([...S,...y].filter(e=>e.name===t.name).some(e=>ey(e.content,a.response)>.5))continue;y.push({name:t.name,content:a.response})}for(let e of a.mentions)v.add(e),p.add(e)}}}}if(s)break;b=p}await h(),m({type:"done"}),p.close()}})})({threadId:a.payload.threadId,allParticipants:r,mentioned:i,initialParallelIds:o,prompt:a.payload.prompt,projectContext:a.payload.projectContext,maxRounds:a.payload.maxRounds,recentHistory:a.payload.recentHistory,currentUserMessageId:a.payload.currentUserMessageId,rootMessageId:a.payload.rootMessageId}).getReader();for(;;){let{done:e}=await s.read();if(e)break}await ev({stepId:n.id,status:"completed",outputPayload:{completed:!0,participantCount:r.length}}),await eS({id:a.id,status:"completed",completedAt:Date.now(),result:{participantIds:r.map(e=>e.id),rootMessageId:a.payload.rootMessageId}})}catch(t){let e=t instanceof Error?t.message:String(t);await ev({stepId:n.id,status:"failed",outputPayload:{error:e}}),await eS({id:a.id,status:"failed",lastError:e,completedAt:Date.now(),result:{error:e}})}}async function eb(e){let t=await eI(e.data.chatRunId);t&&(t.rootMessageId?(0,Y.killByThread)(t.rootMessageId):(0,Y.killByWorkspace)(t.threadId),await eS({id:t.id,status:"cancelled",lastError:e.data.payload?.reason||"Cancelled",completedAt:Date.now(),result:{cancelled:!0}}))}async function eR(e){switch(e.data.signal){case"start":await ek(e);break;case"cancel":await eb(e);break;default:console.warn(`[chat-processor] Unknown signal: ${e.data.signal}`)}}async function ex(e){for(let t of e)await eR(t)}let eC=null;async function eA(){return eC||(eC=(async()=>{let e=await (0,A.getQueue)();await e.work(A.QUEUE_NAMES.TASK_PROCESS,B,{batchSize:5}),await e.work(A.QUEUE_NAMES.CHAT_RUN_PROCESS,ex,{batchSize:2})})().catch(e=>{throw eC=null,e}))}let eE="<!-- thread-summary -->",e_=/@([A-Za-z0-9_-]+)/g,ej=/@~project:([a-z0-9][a-z0-9-]*)/gi;function eT(e){return e.replace(/\s+/g," ").trim()}function eP(e,t){return"user"===e.role?"User":e.participantId?t[e.participantId]?.name||e.participantId:"Assistant"}function eO(e){return"string"!=typeof e?"":e.trim().toLowerCase()}async function eM(e,t,a=[]){let n,r,i,o,s,l=new Set;for(let a of(e&&l.add(e),t))a&&l.add(a);if(0===l.size)return;let d=await Promise.all(Array.from(l).map(async e=>{try{let t=await v.db.getProjectWithRepos(e,x.LOCAL_USER.id);return[e,t]}catch(t){return console.warn("Failed to load project context",{slug:e,error:t}),[e,null]}})),c=new Map;for(let[e,t]of d)t&&c.set(e,t);let u=e?c.get(e):void 0,p=t.map(e=>c.get(e)).filter(e=>!!e).map(e=>({id:e.id,slug:e.slug,name:e.name,description:e.description??null,ciCdInfo:e.ci_cd_info??null,workflowId:e.workflow_id??null,repos:(e.repos??[]).map(e=>({name:e.name,path:e.path??null,notes:e.notes??null}))}));if(u||0!==p.length){if(u)try{let[e,t,l]=await Promise.all([(0,k.getProjectSkills)(u.id),(0,k.getProjectVariables)(u.id),(0,k.getProjectMemory)(u.id,"human")]),d=(0,R.getKnowledgeNote)("project",u.id);e.length>0&&(n=e.map(e=>({file:e.file,...e.condition?{condition:e.condition}:{}}))),t.length>0&&(r=t.map(e=>({key:e.key,value:e.value}))),l.length>0&&(i=l.map(e=>({content:e.content,...e.source?{source:e.source}:{}}))),d?.content&&(i=[...i??[],{content:d.content,source:"system-note"}]);let c=(0,b.listResolvedRepoKnowledge)(u.repos??[]).map(e=>({repoName:e.repoName,path:e.path??null,content:"system"===e.producer?`[System-generated] ${e.content}`:e.content}));if(c.length>0&&(o=c),a.length>0){let e=(0,$.getSQLiteDb)();for(let t of(s={},a)){let a=e.prepare("SELECT id, content FROM agent_memory WHERE agent_id = ? ORDER BY created_at DESC LIMIT 20").all(t.id);s[t.id]=await (0,k.buildExecutionProvenance)(t.id,u.id,t.skills??[],a)}}}catch(e){console.warn("Failed to load project resources",{projectId:u.id,error:e})}return{activeProject:u?{id:u.id,slug:u.slug,name:u.name}:void 0,mentionedProjects:p.length>0?p:void 0,skills:n,variables:r,memory:i,repoKnowledge:o,provenanceByAgentId:s}}}async function eD(e){let t=await e.json().catch(()=>({})),a="string"==typeof t.prompt?t.prompt.trim():"",n="string"==typeof t.threadId?t.threadId.trim():"",r=eO(t.projectSlug);if(!n)return new Response(JSON.stringify({error:"threadId is required"}),{status:400,headers:{"Content-Type":"application/json"}});if(!a)return new Response(JSON.stringify({error:"No prompt provided"}),{status:400,headers:{"Content-Type":"application/json"}});let i=await (0,w.loadDbParticipants)(),o=Array.isArray(t.activeParticipantIds),s=function(e){if(!Array.isArray(e))return[];let t=new Set,a=[];for(let n of e){if("string"!=typeof n)continue;let e=n.trim();!e||t.has(e)||(t.add(e),a.push(e))}return a}(t.activeParticipantIds),l=o?new Set(s):null,d=null===l?i:i.filter(e=>l.has(e.id)),c=null!==l&&s.length>0&&0===d.length?i:d,{mentioned:u,parallel:p}=function(e,t,a){let n=new Set,r=new Set,i=e.toLowerCase(),o=i.includes("@@all");if(i.includes("@all")||o){for(let e of a??t)n.add(e.id),o&&r.add(e.id);return{mentioned:n,parallel:r}}let{projects:s,agentsByProject:l}=function(){try{let e=(0,$.getSQLiteDb)(),t=e.prepare("SELECT id, name, slug FROM projects").all(),a=e.prepare("SELECT * FROM project_agents ORDER BY routing_order ASC").all(),n={};for(let e of a)(n[e.project_id]??=[]).push(e);return{projects:t,agentsByProject:n}}catch{return{projects:[],agentsByProject:{}}}}();for(let e of s){let t=e.name.toLowerCase(),a=e.slug.toLowerCase(),o=i.includes(`@@${t}`)||i.includes(`@@${a}`),s=i.includes(`@${t}`)||i.includes(`@${a}`);if(o||s)for(let t of l[e.id]??[])n.add(t.agent_id),o&&r.add(t.agent_id)}for(let e of t){let t=e.id.toLowerCase(),a=e.name.toLowerCase(),o=i.includes(`@@${t}`)||i.includes(`@@${a}`),s=i.includes(`@${t}`)||i.includes(`@${a}`);(o||s)&&(n.add(e.id),o&&r.add(e.id))}return{mentioned:n,parallel:r}}(a,i,c),g=new Set(c.map(e=>e.id));for(let e of u)g.add(e);let f=i.filter(e=>g.has(e.id)),m=new Map(s.map((e,t)=>[e,t])),h=f.sort((e,t)=>(m.get(e.id)??Number.MAX_SAFE_INTEGER)-(m.get(t.id)??Number.MAX_SAFE_INTEGER));if(0===h.length)return new Response(JSON.stringify({error:"No active agents configured for this project"}),{status:400,headers:{"Content-Type":"application/json"}});let y=await eM(r,function(e){let t=new Set;for(let a of e.matchAll(ej)){let e=eO(a[1]);e&&t.add(e)}return Array.from(t)}(a),h),v=Date.now(),k=("string"==typeof t.userMessageId?t.userMessageId.trim():"")||crypto.randomUUID(),b="string"==typeof t.rootMessageId&&t.rootMessageId.trim()||null;await (0,I.sweepStaleWorkingReactions)(n);let R=await (0,I.loadHistory)(n),E=Object.fromEntries(i.map(e=>[e.id,{name:e.name}])),_=R.filter(e=>"user"===e.role&&!e.rootMessageId&&e.id!==(b||"")),j=b?function(e,t,a){let n=Array.from(e.matchAll(e_),e=>e[1].toLowerCase());if(0===n.length||0===a.length)return[];let r=function(e){let t=new Set(["all"]);for(let a of e)for(let e of(t.add(a.id.toLowerCase()),eT(a.name).toLowerCase().split(/\s+/).filter(Boolean)))t.add(e);return t}(t),i=new Map;[...a].sort((e,t)=>t.timestamp-e.timestamp).forEach((e,t)=>{i.set(e.id.toLowerCase(),e.id),i.set(`chat${t+1}`,e.id);let a=function(e){let t=eT(e).toLowerCase().replace(/[^a-z0-9\s_-]/g," ").trim();if(!t)return null;let a=t.split(/\s+/).filter(Boolean).slice(0,6);return 0===a.length?null:a.join("-")}(e.content);a&&!i.has(a)&&i.set(a,e.id)});let o=new Set;for(let e of n){if(r.has(e)||e.startsWith("project-"))continue;let t=i.get(e);t&&o.add(t)}return Array.from(o)}(a,i,_):[],T=R.filter(e=>e.id===b||e.rootMessageId===b),P=[function(e,t){let a=[],n=0;for(let r=e.length-1;r>=0;r--){let i=e[r],o=`${eP(i,t)}: ${i.content}`;if(n+o.length>2e5)break;a.unshift(o),n+=o.length}return 0===a.length?"":`Previous conversation (for background context only — do NOT re-discuss or repeat these topics unless the user brings them up again):
|
|
98
|
-
${a.join("\n")}`}(T,
|
|
99
|
-
Root: ${
|
|
97
|
+
`))}catch{}if("log"===e.type){let t=f.get(e.participantId);t&&g.push({agentProcessId:t,stream:e.stream,line:e.line,timestamp:Date.now()})}},h=async()=>{if(0===g.length)return;let e=new Map;for(let t of g){let a=e.get(t.agentProcessId);a||(a=[],e.set(t.agentProcessId,a)),a.push({stream:t.stream,line:t.line,timestamp:t.timestamp})}await Promise.all(Array.from(e.entries()).map(([e,t])=>(0,I.saveLogs)(e,t).catch(()=>{})))},y=[],w=[],S=l?l.map(e=>({name:e.name,content:e.content})):[],v=t[0],$=new Set;if(a.size>0)for(let e of a)$.add(e);else $.add(v.id);let b=s??10,k=new Set($);for(let a=0;a<b&&!o?.aborted;a++){let s=!0,u=t.filter(e=>$.has(e.id)),p=new Set,g=new Set;if(0===a&&n&&n.size>0){let a=u.filter(e=>n.has(e.id)&&k.has(e.id));if(a.length>0){for(let e of a)g.add(e.id);let n=a.map(async a=>{let n=await ew(e,a,t,u,r,y,l||[],w,d||null,i,o,m,c,e=>f.set(a.id,e));return{agent:a,result:n}});for(let e of(await Promise.allSettled(n))){if("fulfilled"!==e.status)continue;let{agent:t,result:a}=e.value;if(!a.skipped)for(let e of(a.response&&a.messageId&&w.push({id:a.messageId,name:t.name,content:a.response}),a.response&&([...S,...y].filter(e=>e.name===t.name).some(e=>ey(e.content,a.response)>.5)||(y.push({name:t.name,content:a.response}),s=!1)),a.mentions))$.add(e),u.findIndex(t=>t.id===e)>=0&&!g.has(e)&&k.has(e)||p.add(e)}}}for(let a=0;a<u.length;a++){let n=u[a];if(o?.aborted)break;if(!k.has(n.id)||g.has(n.id))continue;let h=await ew(e,n,t,u,r,y,l||[],w,d||null,i,o,m,c,e=>f.set(n.id,e));if(h.skipped||(h.response&&h.messageId&&w.push({id:h.messageId,name:n.name,content:h.response}),h.response&&[...S,...y].filter(e=>e.name===n.name).some(e=>ey(e.content,h.response)>.5)))continue;for(let e of(s=!1,h.response&&y.push({name:n.name,content:h.response}),h.mentions))u.findIndex(t=>t.id===e)>a&&k.has(e)||p.add(e);let I=new Set;for(let e of h.mentions)$.has(e)||($.add(e),I.add(e));let v=new Set([...h.parallelIds].filter(e=>I.has(e)));if(v.size>0){let a=t.filter(e=>v.has(e.id)),n=t.filter(e=>$.has(e.id)),s=a.map(async a=>{let s=await ew(e,a,t,n,r,y,l||[],w,d||null,i,o,m,c,e=>f.set(a.id,e));return{agent:a,result:s}});for(let e of(await Promise.allSettled(s))){if("fulfilled"!==e.status)continue;let{agent:t,result:a}=e.value;if(!a.skipped){if(a.response&&a.messageId&&w.push({id:a.messageId,name:t.name,content:a.response}),a.response){if([...S,...y].filter(e=>e.name===t.name).some(e=>ey(e.content,a.response)>.5))continue;y.push({name:t.name,content:a.response})}for(let e of a.mentions)$.add(e),p.add(e)}}}}if(s)break;k=p}await h(),m({type:"done"}),p.close()}})})({threadId:a.payload.threadId,allParticipants:r,mentioned:i,initialParallelIds:o,prompt:a.payload.prompt,projectContext:a.payload.projectContext,maxRounds:a.payload.maxRounds,recentHistory:a.payload.recentHistory,currentUserMessageId:a.payload.currentUserMessageId,rootMessageId:a.payload.rootMessageId}).getReader();for((0,eb.writeDebugLog)("chat-processor.stream.open",{chatRunId:a.id,participantCount:r.length});;){let{done:e}=await s.read();if(e)break}(0,eb.writeDebugLog)("chat-processor.stream.complete",{chatRunId:a.id}),await e$({stepId:n.id,status:"completed",outputPayload:{completed:!0,participantCount:r.length}}),await eS({id:a.id,status:"completed",completedAt:Date.now(),result:{participantIds:r.map(e=>e.id),rootMessageId:a.payload.rootMessageId}}),(0,eb.writeDebugLog)("chat-processor.complete",{chatRunId:a.id,rootMessageId:a.payload.rootMessageId})}catch(t){let e=t instanceof Error?t.message:String(t);(0,eb.writeDebugLog)("chat-processor.error",{chatRunId:a.id,error:t,message:e}),await e$({stepId:n.id,status:"failed",outputPayload:{error:e}}),await eS({id:a.id,status:"failed",lastError:e,completedAt:Date.now(),result:{error:e}})}}async function eR(e){(0,eb.writeDebugLog)("chat-processor.cancel.received",{jobId:e.id,chatRunId:e.data.chatRunId});let t=await eI(e.data.chatRunId);t&&(t.rootMessageId?(0,Y.killByThread)(t.rootMessageId):(0,Y.killByWorkspace)(t.threadId),await eS({id:t.id,status:"cancelled",lastError:e.data.payload?.reason||"Cancelled",completedAt:Date.now(),result:{cancelled:!0}}),(0,eb.writeDebugLog)("chat-processor.cancel.complete",{chatRunId:t.id,threadId:t.threadId}))}async function eE(e){switch(e.data.signal){case"start":await ek(e);break;case"cancel":await eR(e);break;default:console.warn(`[chat-processor] Unknown signal: ${e.data.signal}`)}}async function eC(e){for(let t of e)await eE(t)}let ex=null;async function eA(){return ex||(ex=(async()=>{(0,eb.writeDebugLog)("orchestrator.bootstrap.start");let e=await (0,x.getQueue)();await e.work(x.QUEUE_NAMES.TASK_PROCESS,B,{batchSize:5}),await e.work(x.QUEUE_NAMES.CHAT_RUN_PROCESS,eC,{batchSize:2}),(0,eb.writeDebugLog)("orchestrator.bootstrap.ready",{queues:[x.QUEUE_NAMES.TASK_PROCESS,x.QUEUE_NAMES.CHAT_RUN_PROCESS]})})().catch(e=>{throw(0,eb.writeDebugLog)("orchestrator.bootstrap.error",{error:e}),ex=null,e}))}let e_="<!-- thread-summary -->",ej=/@([A-Za-z0-9_-]+)/g,eT=/@~project:([a-z0-9][a-z0-9-]*)/gi;function eD(e){return e.replace(/\s+/g," ").trim()}function eP(e,t){return"user"===e.role?"User":e.participantId?t[e.participantId]?.name||e.participantId:"Assistant"}function eM(e){return"string"!=typeof e?"":e.trim().toLowerCase()}async function eO(e,t,a=[]){let n,r,i,o,s,l=new Set;for(let a of(e&&l.add(e),t))a&&l.add(a);if(0===l.size)return;let d=await Promise.all(Array.from(l).map(async e=>{try{let t=await $.db.getProjectWithRepos(e,E.LOCAL_USER.id);return[e,t]}catch(t){return console.warn("Failed to load project context",{slug:e,error:t}),[e,null]}})),c=new Map;for(let[e,t]of d)t&&c.set(e,t);let u=e?c.get(e):void 0,p=t.map(e=>c.get(e)).filter(e=>!!e).map(e=>({id:e.id,slug:e.slug,name:e.name,description:e.description??null,ciCdInfo:e.ci_cd_info??null,workflowId:e.workflow_id??null,repos:(e.repos??[]).map(e=>({name:e.name,path:e.path??null,notes:e.notes??null}))}));if(u||0!==p.length){if(u)try{let[e,t,l]=await Promise.all([(0,b.getProjectSkills)(u.id),(0,b.getProjectVariables)(u.id),(0,b.getProjectMemory)(u.id,"human")]),d=(0,R.getKnowledgeNote)("project",u.id);e.length>0&&(n=e.map(e=>({file:e.file,...e.condition?{condition:e.condition}:{}}))),t.length>0&&(r=t.map(e=>({key:e.key,value:e.value}))),l.length>0&&(i=l.map(e=>({content:e.content,...e.source?{source:e.source}:{}}))),d?.content&&(i=[...i??[],{content:d.content,source:"system-note"}]);let c=(0,k.listResolvedRepoKnowledge)(u.repos??[]).map(e=>({repoName:e.repoName,path:e.path??null,content:"system"===e.producer?`[System-generated] ${e.content}`:e.content}));if(c.length>0&&(o=c),a.length>0){let e=(0,v.getSQLiteDb)();for(let t of(s={},a)){let a=e.prepare("SELECT id, content FROM agent_memory WHERE agent_id = ? ORDER BY created_at DESC LIMIT 20").all(t.id);s[t.id]=await (0,b.buildExecutionProvenance)(t.id,u.id,t.skills??[],a)}}}catch(e){console.warn("Failed to load project resources",{projectId:u.id,error:e})}return{activeProject:u?{id:u.id,slug:u.slug,name:u.name}:void 0,mentionedProjects:p.length>0?p:void 0,skills:n,variables:r,memory:i,repoKnowledge:o,provenanceByAgentId:s}}}async function eL(e){let t=await e.json().catch(()=>({})),a="string"==typeof t.prompt?t.prompt.trim():"",n="string"==typeof t.threadId?t.threadId.trim():"",r=eM(t.projectSlug);if(!n)return(0,eb.writeDebugLog)("chat.post.reject",{reason:"missing_thread_id",promptLength:a.length}),new Response(JSON.stringify({error:"threadId is required"}),{status:400,headers:{"Content-Type":"application/json"}});if(!a)return(0,eb.writeDebugLog)("chat.post.reject",{reason:"missing_prompt",threadId:n}),new Response(JSON.stringify({error:"No prompt provided"}),{status:400,headers:{"Content-Type":"application/json"}});let i=await (0,w.loadDbParticipants)(),o=Array.isArray(t.activeParticipantIds),s=function(e){if(!Array.isArray(e))return[];let t=new Set,a=[];for(let n of e){if("string"!=typeof n)continue;let e=n.trim();!e||t.has(e)||(t.add(e),a.push(e))}return a}(t.activeParticipantIds),l=o?new Set(s):null,d=null===l?i:i.filter(e=>l.has(e.id)),c=null!==l&&s.length>0&&0===d.length?i:d,{mentioned:u,parallel:p}=function(e,t,a){let n=new Set,r=new Set,i=e.toLowerCase(),o=i.includes("@@all");if(i.includes("@all")||o){for(let e of a??t)n.add(e.id),o&&r.add(e.id);return{mentioned:n,parallel:r}}let{projects:s,agentsByProject:l}=function(){try{let e=(0,v.getSQLiteDb)(),t=e.prepare("SELECT id, name, slug FROM projects").all(),a=e.prepare("SELECT * FROM project_agents ORDER BY routing_order ASC").all(),n={};for(let e of a)(n[e.project_id]??=[]).push(e);return{projects:t,agentsByProject:n}}catch{return{projects:[],agentsByProject:{}}}}();for(let e of s){let t=e.name.toLowerCase(),a=e.slug.toLowerCase(),o=i.includes(`@@${t}`)||i.includes(`@@${a}`),s=i.includes(`@${t}`)||i.includes(`@${a}`);if(o||s)for(let t of l[e.id]??[])n.add(t.agent_id),o&&r.add(t.agent_id)}for(let e of t){let t=e.id.toLowerCase(),a=e.name.toLowerCase(),o=i.includes(`@@${t}`)||i.includes(`@@${a}`),s=i.includes(`@${t}`)||i.includes(`@${a}`);(o||s)&&(n.add(e.id),o&&r.add(e.id))}return{mentioned:n,parallel:r}}(a,i,c),g=new Set(c.map(e=>e.id));for(let e of u)g.add(e);let f=i.filter(e=>g.has(e.id)),m=new Map(s.map((e,t)=>[e,t])),h=f.sort((e,t)=>(m.get(e.id)??Number.MAX_SAFE_INTEGER)-(m.get(t.id)??Number.MAX_SAFE_INTEGER));if(0===h.length)return(0,eb.writeDebugLog)("chat.post.reject",{reason:"no_participants",threadId:n,requestedActiveIds:s,scopedProjectSlug:r}),new Response(JSON.stringify({error:"No active agents configured for this project"}),{status:400,headers:{"Content-Type":"application/json"}});let y=await eO(r,function(e){let t=new Set;for(let a of e.matchAll(eT)){let e=eM(a[1]);e&&t.add(e)}return Array.from(t)}(a),h),$=Date.now(),b=("string"==typeof t.userMessageId?t.userMessageId.trim():"")||crypto.randomUUID(),k="string"==typeof t.rootMessageId&&t.rootMessageId.trim()||null;await (0,I.sweepStaleWorkingReactions)(n);let R=await (0,I.loadHistory)(n),A=Object.fromEntries(i.map(e=>[e.id,{name:e.name}])),_=R.filter(e=>"user"===e.role&&!e.rootMessageId&&e.id!==(k||"")),j=k?function(e,t,a){let n=Array.from(e.matchAll(ej),e=>e[1].toLowerCase());if(0===n.length||0===a.length)return[];let r=function(e){let t=new Set(["all"]);for(let a of e)for(let e of(t.add(a.id.toLowerCase()),eD(a.name).toLowerCase().split(/\s+/).filter(Boolean)))t.add(e);return t}(t),i=new Map;[...a].sort((e,t)=>t.timestamp-e.timestamp).forEach((e,t)=>{i.set(e.id.toLowerCase(),e.id),i.set(`chat${t+1}`,e.id);let a=function(e){let t=eD(e).toLowerCase().replace(/[^a-z0-9\s_-]/g," ").trim();if(!t)return null;let a=t.split(/\s+/).filter(Boolean).slice(0,6);return 0===a.length?null:a.join("-")}(e.content);a&&!i.has(a)&&i.set(a,e.id)});let o=new Set;for(let e of n){if(r.has(e)||e.startsWith("project-"))continue;let t=i.get(e);t&&o.add(t)}return Array.from(o)}(a,i,_):[],T=R.filter(e=>e.id===k||e.rootMessageId===k),D=[function(e,t){let a=[],n=0;for(let r=e.length-1;r>=0;r--){let i=e[r],o=`${eP(i,t)}: ${i.content}`;if(n+o.length>2e5)break;a.unshift(o),n+=o.length}return 0===a.length?"":`Previous conversation (for background context only — do NOT re-discuss or repeat these topics unless the user brings them up again):
|
|
98
|
+
${a.join("\n")}`}(T,A),function(e,t,a){if(0===a.length)return"";let n=[];for(let r of a){let a=e.find(e=>e.id===r);if(!a)continue;let i=e.filter(e=>e.id===r||e.rootMessageId===r).sort((e,t)=>e.timestamp-t.timestamp);if(0===i.length)continue;let o=i.map(e=>{let a=eP(e,t),n=function(e){var t;return((t=e.content).startsWith(e_)&&eD(t.slice(e_.length))||null)??e.content}(e);return`${a}: ${n}`});n.push(`Referenced chat (${a.id})
|
|
99
|
+
Root: ${eD(a.content)}
|
|
100
100
|
${o.join("\n")}`)}return 0===n.length?"":`Referenced chats (only because the user explicitly @mentioned them):
|
|
101
101
|
|
|
102
|
-
${n.join("\n\n---\n\n")}`}(R,
|
|
102
|
+
${n.join("\n\n---\n\n")}`}(R,A,j)].filter(Boolean).join("\n\n---\n\n"),P="agent"===t.role?"assistant":"user",M="assistant"===P&&"string"==typeof t.agent&&t.agent.trim()||null,O="assistant"===P?M?i.find(e=>e.id===M||e.name.toLowerCase()===M.toLowerCase())?.id??M:h[0]?.id??null:null;if(await (0,I.saveMessages)(n,[{id:b,role:P,participantId:O,content:a,timestamp:$,rootMessageId:k,parentMessageId:k,depth:+!!k}]),k&&"user"===P)try{(0,C.deactivateSchedulesByRootMessageId)(k)}catch(e){console.warn("Failed to deactivate autonomous schedule on user composer message",{rootMessageId:k,error:e})}let L=Array.isArray(t.attachmentIds)?t.attachmentIds.filter(e=>"string"==typeof e):[],N="";if(L.length>0){let e=await (0,S.finalizeAttachments)(b,L);if(e.length>0){let t=e.map(e=>`- ${e.filename} (${e.mimeType}, ${e.size} bytes): ${e.diskPath}`);N=`
|
|
103
103
|
|
|
104
104
|
[Attached files]
|
|
105
105
|
${t.join("\n")}
|
|
106
|
-
`}}let U=b
|
|
106
|
+
`}}let U=k||b,q=Math.min(Math.max(Number(t.maxRounds)||10,1),50),z=D?`${D}
|
|
107
107
|
|
|
108
108
|
---
|
|
109
109
|
Current user message:
|
|
110
|
-
${a}${
|
|
110
|
+
${a}${N}`:`${a}${N}`,B=T.slice(-20).map(e=>({id:e.id,name:"user"===e.role?"User":e.participantId?A[e.participantId]?.name||e.participantId:"Assistant",content:e.content})),H=crypto.randomUUID(),F={threadId:n,prompt:z,projectContext:y,mentionedIds:Array.from(u),initialParallelIds:Array.from(p),maxRounds:q,recentHistory:B,currentUserMessageId:b,rootMessageId:U,participantIds:h.map(e=>e.id)};(0,eb.writeDebugLog)("chat.post.accepted",{threadId:n,chatRunId:H,userMessageId:b,rootMessageId:U,explicitRootMessageId:k,participantIds:h.map(e=>e.id),providerIdsMentioned:Array.from(u),parallelIds:Array.from(p),scopedProjectSlug:r||null,hasProjectContext:!!y,promptLength:a.length,debugLogPath:(0,eb.getDebugLogPath)()}),await (0,I.createChatRun)({id:H,threadId:n,rootMessageId:U,userId:E.LOCAL_USER.id,projectSlug:r||null,maxSteps:q,activeParticipantIds:h.map(e=>e.id),payload:F}),await eA(),(0,eb.writeDebugLog)("chat.runtime.ready",{chatRunId:H,threadId:n});let K=await (0,x.getQueue)();return await K.send(x.QUEUE_NAMES.CHAT_RUN_PROCESS,{chatRunId:H,userId:E.LOCAL_USER.id,signal:"start"}),(0,eb.writeDebugLog)("chat.queue.sent",{chatRunId:H,threadId:n,queue:x.QUEUE_NAMES.CHAT_RUN_PROCESS}),Response.json({ok:!0,userMessageId:b,chatRunId:H},{status:202})}e.s(["POST",()=>eL,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],76021);var eN=e.i(76021);let eU=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/chat/route",pathname:"/api/chat",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/chat/route.ts",nextConfigOutput:"standalone",userland:eN}),{workAsyncStorage:eq,workUnitAsyncStorage:ez,serverHooks:eB}=eU;function eH(){return(0,n.patchFetch)({workAsyncStorage:eq,workUnitAsyncStorage:ez})}async function eF(e,t,n){eU.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/chat/route";w=w.replace(/\/index$/,"")||"/";let I=await eU.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!I)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:S,params:v,nextConfig:$,parsedUrl:b,isDraftMode:k,prerenderManifest:R,routerServerContext:E,isOnDemandRevalidate:C,revalidateOnlyGenerated:x,resolvedPathname:A,clientReferenceManifest:_,serverActionsManifest:j}=I,T=(0,s.normalizeAppPath)(w),D=!!(R.dynamicRoutes[T]||R.routes[A]),P=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,b,!1):t.end("This page could not be found"),null);if(D&&!k){let e=!!R.routes[A],t=R.dynamicRoutes[T];if(t&&!1===t.fallback&&!e){if($.experimental.adapterPath)return await P();throw new h.NoFallbackError}}let M=null;!D||eU.isDev||k||(M="/index"===(M=A)?"/":M);let O=!0===eU.isDev||!D,L=D&&!O;j&&_&&(0,o.setManifestsSingleton)({page:w,clientReferenceManifest:_,serverActionsManifest:j});let N=e.method||"GET",U=(0,i.getTracer)(),q=U.getActiveScopeSpan(),z={params:v,prerenderManifest:R,renderOpts:{experimental:{authInterrupts:!!$.experimental.authInterrupts},cacheComponents:!!$.cacheComponents,supportsDynamicResponse:O,incrementalCache:(0,r.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:$.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,n,r)=>eU.onRequestError(e,t,n,r,E)},sharedContext:{buildId:S}},B=new l.NodeNextRequest(e),H=new l.NodeNextResponse(t),F=d.NextRequestAdapter.fromNodeNextRequest(B,(0,d.signalFromNodeResponse)(t));try{let o=async e=>eU.handle(F,z).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=U.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=a.get("next.route");if(n){let t=`${N} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${N} ${w}`)}),s=!!(0,r.getRequestMeta)(e,"minimalMode"),l=async r=>{var i,l;let d=async({previousCacheEntry:a})=>{try{if(!s&&C&&x&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await o(r);e.fetchMetrics=z.renderOpts.fetchMetrics;let l=z.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let d=z.renderOpts.collectedTags;if(!D)return await (0,p.sendResponse)(B,H,i,z.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(i.headers);d&&(t[m.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,n=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:z.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:n}}}}catch(t){throw(null==a?void 0:a.isStale)&&await eU.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:C})},!1,E),t}},c=await eU.handleResponse({req:e,nextConfig:$,cacheKey:M,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:R,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:x,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:s});if(!D)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",C?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),k&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,g.fromNodeOutgoingHttpHeaders)(c.value.headers);return s&&D||h.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,f.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(B,H,new Response(c.value.body,{headers:h,status:c.value.status||200})),null};q?await l(q):await U.withPropagatedContext(e.headers,()=>U.trace(c.BaseServerSpan.handleRequest,{spanName:`${N} ${w}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":e.url}},l))}catch(t){if(t instanceof h.NoFallbackError||await eU.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:L,isOnDemandRevalidate:C})},!1,E),D)throw t;return await (0,p.sendResponse)(B,H,new Response(null,{status:500})),null}}e.s(["handler",()=>eF,"patchFetch",()=>eH,"routeModule",()=>eU,"serverHooks",()=>eB,"workAsyncStorage",()=>eq,"workUnitAsyncStorage",()=>ez],61378)}];
|
|
111
111
|
|
|
112
112
|
//# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_371d0bff.js.map
|