@mndrk/agx 2.0.47 → 2.0.49
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/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
- 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/agent-specs/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js.nft.json +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 +13 -7
- package/cloud-runtime/standalone/.next/server/app/api/chat/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.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.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js.nft.json +1 -1
- 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/linear/callback/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/callback/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/cycles/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/cycles/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/issues/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/issues/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/options/route.js +3 -3
- package/cloud-runtime/standalone/.next/server/app/api/linear/options/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/status/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/token/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/token/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/orchestrator/tasks/[taskId]/start/route.js +1 -1
- 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/participants/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/participants/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js +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]/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/prompt-jobs/[id]/cancel/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js +1 -1
- 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 +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js +14 -6
- 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 +13 -5
- 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.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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/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 +3 -4
- 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]/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 +3 -4
- 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 +3 -4
- 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 +3 -4
- 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 +3 -4
- 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 +3 -4
- 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 +4 -5
- 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 +1 -1
- 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 +1 -1
- 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 +2 -2
- 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 +1 -1
- 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 +1 -1
- 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/react-loadable-manifest.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.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/folders/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/folders/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/folders.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/folders.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/folders.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/folders.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/folders.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/folders.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/folders.segments/folders/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/folders.segments/folders.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]/automations/page/react-loadable-manifest.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/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]/linear/page/react-loadable-manifest.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/linear/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/linear/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/skills/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/skills.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/skills.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/skills.segments/skills.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/chunks/[root-of-the-server]__015d40a6._.js +67 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a300f072._.js → [root-of-the-server]__02a4a323._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__05dedbe1._.js +64 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__4ce74056._.js → [root-of-the-server]__05f0bfbf._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c22dd3a6._.js → [root-of-the-server]__08c82fe8._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__3fae531a._.js → [root-of-the-server]__09e37b59._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__1a1f66b1._.js → [root-of-the-server]__0e83aabc._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__27da58f0._.js +67 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__9ffa67b7._.js → [root-of-the-server]__2ae8b938._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2cfd21b8._.js +108 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__37844df7._.js +67 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d9f2041b._.js → [root-of-the-server]__3a93931b._.js} +4 -4
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f9f7f2df._.js → [root-of-the-server]__3c1403f2._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__143fdf69._.js → [root-of-the-server]__40e9e2e8._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__42e602eb._.js +49 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a7b2350e._.js → [root-of-the-server]__456840d0._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5c2848bb._.js +64 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__667c658f._.js +52 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6a92b882._.js +49 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6c9baa7c._.js +64 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c21747df._.js → [root-of-the-server]__719eddc2._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__36d15de5._.js → [root-of-the-server]__7ee3dfe1._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d324f8a1._.js → [root-of-the-server]__80964fad._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__bab85495._.js → [root-of-the-server]__862cf77d._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a280fa63._.js → [root-of-the-server]__8b5b9860._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__3170b7bf._.js → [root-of-the-server]__8d475640._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__958dded3._.js +49 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ab655b9f._.js → [root-of-the-server]__96c424d5._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5c55f67a._.js → [root-of-the-server]__976ebe46._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__179cb224._.js → [root-of-the-server]__a1cab8fe._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__20a2cb22._.js → [root-of-the-server]__a31dd756._.js} +9 -9
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a3955224._.js → [root-of-the-server]__ad53dc3f._.js} +17 -17
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ac6326b6._.js → [root-of-the-server]__b8eeb177._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__fcfa3690._.js → [root-of-the-server]__c10e827d._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e58e9f91._.js → [root-of-the-server]__c11e0040._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c40b6f69._.js +49 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c7d3c7ab._.js +52 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__cdc52544._.js +49 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__8cbd8c56._.js → [root-of-the-server]__d1c698b6._.js} +12 -12
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d9ea98bd._.js +52 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ef27f8cd._.js → [root-of-the-server]__df886e3c._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ca4987eb._.js → [root-of-the-server]__e0b6f424._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c8890cd6._.js → [root-of-the-server]__f43ecbc2._.js} +13 -13
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f51c7b72._.js +5 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f662fd1e._.js +20 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__538b0bdd._.js → [root-of-the-server]__f961230c._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__b627cb83._.js → [root-of-the-server]__feec5b54._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d16caed5._.js → [root-of-the-server]__ff6ce4b1._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ff9ce15e._.js +5 -0
- package/cloud-runtime/standalone/.next/server/chunks/_26ffc857._.js +121 -0
- package/cloud-runtime/standalone/.next/server/chunks/_4d07f8db._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/_66d0cf73._.js +6 -0
- package/cloud-runtime/standalone/.next/server/chunks/_9b10087f._.js +3 -2
- package/cloud-runtime/standalone/.next/server/chunks/_a13c0bef._.js +121 -0
- package/cloud-runtime/standalone/.next/server/chunks/{lib_98ae187c._.js → lib_2cd3429c._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/lib_a2a83df5._.js +55 -0
- package/cloud-runtime/standalone/.next/server/chunks/lib_a658c9ef._.js +34 -0
- package/cloud-runtime/standalone/.next/server/chunks/lib_ba38ea08._.js +55 -0
- package/cloud-runtime/standalone/.next/server/chunks/lib_orchestrator_chat-processor_ts_4c335719._.js +27 -29
- package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_371d0bff.js +6 -102
- package/cloud-runtime/standalone/.next/server/chunks/src_graph_schedule-runner_ts_43a13c69._.js +13 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__0b2a2b86._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__32546242._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__5ff9ead4._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__f2c3b7ab._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__f59f0dc7._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__d96bb3b5._.js → [root-of-the-server]__fbe1ab4a._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_1e9b9b1e._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_24fe6213._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_36a0c486._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_3b21d3b2._.js +95 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_3eeac8f9._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_48db42b7._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_59f30a73._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_7d3b0032._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_916950b3._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_b598ae8a._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_cc8c8302._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_d972a4e1._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_dd7bb6fb._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_dd9880fb._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_f02d786a._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_fd8cafe9._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_linear_page_tsx_971a6ba7._.js +15 -12
- 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_54bf563f._.js +3 -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/04c135686161dbb1.js +40 -0
- package/cloud-runtime/standalone/.next/static/chunks/0d63db0c39c0a3b2.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/136ed07d84b14632.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/18866ed04ed3a063.css +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{ccaf68956da192f8.js → 1bb38e61d891453c.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/2c7c8259c2b56bf5.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/2da1f13d50dc4e54.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/5545da2ad239c0b6.js +3 -0
- package/cloud-runtime/standalone/.next/static/chunks/{41c518743656a291.js → 5f33b52d582b0bb4.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/{97c11137cd6fc860.js → 64c2961edd3a3b13.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/{db131a0b6350e416.js → 692ce04abdbb3970.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/83be8569d298c6b0.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/87b3afe828c8cc52.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{4343e7fe5bf5f34a.js → 9328740727c6456d.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/95d47e285ae9c031.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/b9bf5d3ee92a1313.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/ea35fb870141bcff.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/f59722264449b61c.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/f727d2c8f039511d.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{31fe4e36a00fd7b5.js → f8706212baa8ec67.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/fd823c9d1381335d.js +1 -0
- package/cloud-runtime/standalone/app/api/chat/route.ts +5 -163
- package/cloud-runtime/standalone/app/api/schedules/route.ts +11 -2
- package/cloud-runtime/standalone/app/automations/page.tsx +11 -1
- package/cloud-runtime/standalone/app/projects/[slug]/layout.tsx +11 -1
- package/cloud-runtime/standalone/components/LinearBoard.tsx +118 -21
- package/cloud-runtime/standalone/components/chat-ui/ChatContainer.tsx +10 -13
- package/cloud-runtime/standalone/components/linear/RunScriptManager.tsx +356 -0
- package/cloud-runtime/standalone/components/thread/WorkspaceSidebar.tsx +35 -0
- package/cloud-runtime/standalone/hooks/useLinearRunScripts.ts +115 -0
- package/cloud-runtime/standalone/lib/chat/project-context.ts +169 -0
- package/cloud-runtime/standalone/lib/linear-client.ts +33 -3
- package/cloud-runtime/standalone/lib/linear-execution-prompt.ts +92 -15
- package/cloud-runtime/standalone/lib/orchestrator/runtime.ts +2 -0
- package/cloud-runtime/standalone/lib/orchestrator/schedule-runtime.ts +76 -0
- package/cloud-runtime/standalone/src/graph/internal-function-dispatcher.ts +201 -16
- package/cloud-runtime/standalone/src/graph/work-dispatcher.ts +128 -35
- package/cloud-runtime/standalone/state/automations/.state/c4300b01-1203-40fe-b3a9-b9fb9ec0c5cc.json +8 -0
- package/cloud-runtime/standalone/state/automations/active/c4300b01-1203-40fe-b3a9-b9fb9ec0c5cc.md +15 -0
- package/cloud-runtime/standalone/state/linearRunScripts.test.ts +99 -0
- package/cloud-runtime/standalone/state/linearRunScripts.ts +132 -0
- package/cloud-runtime/standalone/state/windowState.ts +21 -0
- package/cloud-runtime/standalone/tsconfig.tsbuildinfo +1 -1
- package/cloud-runtime/standalone/vault/agx/issues/ESO-327/design-doc.md +202 -0
- package/cloud-runtime/standalone/worker/index.js +34516 -1717
- package/cloud-runtime/standalone/worker/index.ts +3 -0
- package/package.json +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1154e5b3._.js +0 -67
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__152b2000._.js +0 -61
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__33865410._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6c53437e._.js +0 -110
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6dbe939c._.js +0 -49
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7012e83d._.js +0 -66
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__76290829._.js +0 -67
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ad6d6402._.js +0 -67
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__da645a5e._.js +0 -15
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f4b3df16._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/_2a5aeb76._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/_4689976f._.js +0 -6
- package/cloud-runtime/standalone/.next/server/chunks/_682c9d81._.js +0 -6
- package/cloud-runtime/standalone/.next/server/chunks/_6e7f0ae4._.js +0 -6
- package/cloud-runtime/standalone/.next/server/chunks/_a32a5cdd._.js +0 -6
- package/cloud-runtime/standalone/.next/server/chunks/_af7bd752._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/_fe32a267._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/lib_2492d514._.js +0 -55
- package/cloud-runtime/standalone/.next/server/chunks/lib_3c080873._.js +0 -34
- package/cloud-runtime/standalone/.next/server/chunks/lib_9f439b27._.js +0 -70
- package/cloud-runtime/standalone/.next/server/chunks/src_graph_12d46a92._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/src_graph_executor_ts_55c06268._.js +0 -8
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__21a9eaef._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__69887882._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__9ad05ace._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__bb149a22._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_11ce4c04._.js +0 -95
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_1d949e96._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_32a156b6._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_43c091dc._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_45175f47._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_4f0c544d._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_69164b06._.js +0 -95
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_7f7a828a._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_97f6a18e._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_a511a014._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_c3a3a829._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_cee3cf86._.js +0 -95
- package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_e8bdedc5._.js +0 -3
- package/cloud-runtime/standalone/.next/static/chunks/14fff3c493ea9c54.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/2a9c83f8211196e0.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/5405540470146645.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/69f2db4b9996b9c1.js +0 -37
- package/cloud-runtime/standalone/.next/static/chunks/8aeb69ceb497ad85.css +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/a9da98f883ac833b.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/b2127dc67c5ade9f.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/baf5d39d089efb87.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/bf2a2fafb710e63c.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/c78969fde5798275.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/d3dc6fadb96ab3a2.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/fdadad2379039dce.js +0 -3
- package/cloud-runtime/standalone/state/automations/.state/24a6a5db-3b14-49c4-841f-29f10f015fbb.json +0 -8
- package/cloud-runtime/standalone/state/automations/active/24a6a5db-3b14-49c4-841f-29f10f015fbb.md +0 -17
- /package/cloud-runtime/standalone/.next/static/{lOB5InbmVcurTLQo9J3KK → ZkFZnP5h74O7GgdHudXgH}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/.next/static/{lOB5InbmVcurTLQo9J3KK → ZkFZnP5h74O7GgdHudXgH}/_clientMiddlewareManifest.json +0 -0
- /package/cloud-runtime/standalone/.next/static/{lOB5InbmVcurTLQo9J3KK → ZkFZnP5h74O7GgdHudXgH}/_ssgManifest.js +0 -0
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import type { FunctionDispatchResult } from "./function-executor";
|
|
2
2
|
import type { ExecutionGraph, FunctionNode, WorkNode } from "./types";
|
|
3
|
-
import {
|
|
3
|
+
import { LOCAL_USER } from "@/lib/auth-mode";
|
|
4
|
+
import { loadDbParticipants } from "@/lib/agent-participants";
|
|
5
|
+
import { resolveProjectContext } from "@/lib/chat/project-context";
|
|
6
|
+
import { writeDebugLog } from "@/lib/debug-log";
|
|
7
|
+
import { ensureOrchestratorRuntime } from "@/lib/orchestrator/runtime";
|
|
8
|
+
import type { ChatRunJobData, ChatRunPayload } from "@/lib/orchestrator/chat-types";
|
|
9
|
+
import { getQueue, QUEUE_NAMES } from "@/lib/queue/boss";
|
|
10
|
+
import type { GroupMessage } from "@/lib/types";
|
|
11
|
+
|
|
12
|
+
const ACTIVE_PROCESS_STATUSES = new Set(["running", "working"]);
|
|
13
|
+
const RECENT_STEER_HISTORY_LIMIT = 20;
|
|
14
|
+
const STEER_DUPLICATE_WINDOW_MS = 15 * 60 * 1000;
|
|
15
|
+
const SHIP_MODE_MAX_ROUNDS = 10;
|
|
4
16
|
|
|
5
17
|
function getRootMessageId(node: FunctionNode, graph: ExecutionGraph): string {
|
|
6
18
|
const fromArgs = typeof node.args?.rootMessageId === "string" ? node.args.rootMessageId.trim() : "";
|
|
@@ -30,27 +42,86 @@ function getSteerOutput(
|
|
|
30
42
|
};
|
|
31
43
|
}
|
|
32
44
|
|
|
33
|
-
function
|
|
34
|
-
return
|
|
45
|
+
function normalizeSteerText(content: string): string {
|
|
46
|
+
return content.replace(/\s+/g, " ").trim();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function getSpeakerLabel(message: GroupMessage, participantNames: Record<string, string>): string {
|
|
50
|
+
if (message.role === "user") return "User";
|
|
51
|
+
if (!message.participantId) return "Assistant";
|
|
52
|
+
return participantNames[message.participantId] || message.participantId;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function buildRecentHistory(
|
|
56
|
+
history: GroupMessage[],
|
|
57
|
+
rootMessageId: string,
|
|
58
|
+
participantNames: Record<string, string>
|
|
59
|
+
): Array<{ id: string; name: string; content: string }> {
|
|
60
|
+
return history
|
|
61
|
+
.filter((message) => message.id === rootMessageId || message.rootMessageId === rootMessageId)
|
|
62
|
+
.slice(-RECENT_STEER_HISTORY_LIMIT)
|
|
63
|
+
.map((message) => ({
|
|
64
|
+
id: message.id,
|
|
65
|
+
name: getSpeakerLabel(message, participantNames),
|
|
66
|
+
content: message.content,
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function hasRecentDuplicateSteer(
|
|
71
|
+
history: GroupMessage[],
|
|
72
|
+
rootMessageId: string,
|
|
73
|
+
candidate: string,
|
|
74
|
+
participantId: string | null
|
|
75
|
+
): boolean {
|
|
76
|
+
const normalizedCandidate = normalizeSteerText(candidate);
|
|
77
|
+
if (!normalizedCandidate) return false;
|
|
78
|
+
const cutoff = Date.now() - STEER_DUPLICATE_WINDOW_MS;
|
|
79
|
+
|
|
80
|
+
return history
|
|
81
|
+
.filter((message) => message.id === rootMessageId || message.rootMessageId === rootMessageId)
|
|
82
|
+
.some((message) => {
|
|
83
|
+
if (message.role !== "assistant") return false;
|
|
84
|
+
if (message.timestamp < cutoff) return false;
|
|
85
|
+
if (participantId && message.participantId !== participantId) return false;
|
|
86
|
+
return normalizeSteerText(message.content) === normalizedCandidate;
|
|
87
|
+
});
|
|
35
88
|
}
|
|
36
89
|
|
|
37
|
-
async function
|
|
90
|
+
async function getThreadProjectContext(threadId: string): Promise<{
|
|
91
|
+
projectSlug: string | null;
|
|
92
|
+
projectAgentIds: string[];
|
|
93
|
+
}> {
|
|
38
94
|
try {
|
|
39
95
|
const { getSQLiteDb } = await import("@/lib/sqlite-query-adapter");
|
|
40
96
|
const db = getSQLiteDb();
|
|
41
97
|
const projectRow = db
|
|
42
|
-
.prepare(
|
|
43
|
-
|
|
44
|
-
|
|
98
|
+
.prepare(
|
|
99
|
+
`SELECT pt.project_id AS project_id, p.slug AS project_slug
|
|
100
|
+
FROM project_threads pt
|
|
101
|
+
JOIN projects p ON p.id = pt.project_id
|
|
102
|
+
WHERE pt.thread_id = ?
|
|
103
|
+
ORDER BY pt.created_at ASC
|
|
104
|
+
LIMIT 1`
|
|
105
|
+
)
|
|
106
|
+
.get(threadId) as { project_id: string; project_slug: string | null } | undefined;
|
|
107
|
+
if (!projectRow?.project_id) {
|
|
108
|
+
return { projectSlug: null, projectAgentIds: [] };
|
|
109
|
+
}
|
|
45
110
|
|
|
46
|
-
const
|
|
111
|
+
const agentRows = db
|
|
47
112
|
.prepare(
|
|
48
|
-
"SELECT agent_id FROM project_agents WHERE project_id = ? ORDER BY routing_order ASC, created_at ASC
|
|
113
|
+
"SELECT agent_id FROM project_agents WHERE project_id = ? ORDER BY routing_order ASC, created_at ASC",
|
|
49
114
|
)
|
|
50
|
-
.
|
|
51
|
-
|
|
115
|
+
.all(projectRow.project_id) as Array<{ agent_id: string }>;
|
|
116
|
+
|
|
117
|
+
return {
|
|
118
|
+
projectSlug: projectRow.project_slug?.trim() || null,
|
|
119
|
+
projectAgentIds: agentRows
|
|
120
|
+
.map((row) => row.agent_id?.trim())
|
|
121
|
+
.filter((agentId): agentId is string => Boolean(agentId)),
|
|
122
|
+
};
|
|
52
123
|
} catch {
|
|
53
|
-
return null;
|
|
124
|
+
return { projectSlug: null, projectAgentIds: [] };
|
|
54
125
|
}
|
|
55
126
|
}
|
|
56
127
|
|
|
@@ -76,7 +147,7 @@ async function dispatchThreadStatus(node: FunctionNode, graph: ExecutionGraph):
|
|
|
76
147
|
});
|
|
77
148
|
|
|
78
149
|
const activeProcessCount = snapshot.processes.filter(
|
|
79
|
-
(process: { status: string }) => process.status
|
|
150
|
+
(process: { status: string }) => ACTIVE_PROCESS_STATUSES.has(process.status),
|
|
80
151
|
).length;
|
|
81
152
|
|
|
82
153
|
return {
|
|
@@ -101,7 +172,18 @@ async function dispatchShipModeAct(node: FunctionNode, graph: ExecutionGraph): P
|
|
|
101
172
|
return { status: "failure", message: "Unable to read steer node output" };
|
|
102
173
|
}
|
|
103
174
|
|
|
104
|
-
|
|
175
|
+
if (!normalizeSteerText(steer.message)) {
|
|
176
|
+
return { status: "failure", message: "Ship mode produced an empty steer message" };
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
const {
|
|
180
|
+
createChatRun,
|
|
181
|
+
getThreadStatusSnapshot,
|
|
182
|
+
getMessageThread,
|
|
183
|
+
loadHistory,
|
|
184
|
+
saveMessages,
|
|
185
|
+
updateMessageStatus,
|
|
186
|
+
} = await import("@/lib/history-store");
|
|
105
187
|
const { deactivateSchedulesByRootMessageId } = await import("./store");
|
|
106
188
|
const threadRef = await getMessageThread(rootMessageId);
|
|
107
189
|
if (!threadRef) {
|
|
@@ -112,6 +194,23 @@ async function dispatchShipModeAct(node: FunctionNode, graph: ExecutionGraph): P
|
|
|
112
194
|
}
|
|
113
195
|
|
|
114
196
|
if (steer.isDone) {
|
|
197
|
+
const snapshot = await getThreadStatusSnapshot({
|
|
198
|
+
threadId: threadRef.threadId,
|
|
199
|
+
rootMessageId,
|
|
200
|
+
});
|
|
201
|
+
const activeProcessCount = snapshot.processes.filter((process: { status: string }) =>
|
|
202
|
+
ACTIVE_PROCESS_STATUSES.has(process.status)
|
|
203
|
+
).length;
|
|
204
|
+
if (activeProcessCount > 0) {
|
|
205
|
+
return {
|
|
206
|
+
status: "success",
|
|
207
|
+
output: {
|
|
208
|
+
done: false,
|
|
209
|
+
action: "completion_deferred_active_work",
|
|
210
|
+
activeProcessCount,
|
|
211
|
+
},
|
|
212
|
+
};
|
|
213
|
+
}
|
|
115
214
|
deactivateSchedulesByRootMessageId(rootMessageId);
|
|
116
215
|
await updateMessageStatus(threadRef.threadId, rootMessageId, "in-review", null);
|
|
117
216
|
return {
|
|
@@ -120,7 +219,25 @@ async function dispatchShipModeAct(node: FunctionNode, graph: ExecutionGraph): P
|
|
|
120
219
|
};
|
|
121
220
|
}
|
|
122
221
|
|
|
123
|
-
const
|
|
222
|
+
const participantLibrary = await loadDbParticipants();
|
|
223
|
+
const participantNames = Object.fromEntries(
|
|
224
|
+
participantLibrary.map((participant) => [participant.id, participant.name])
|
|
225
|
+
);
|
|
226
|
+
const { projectSlug, projectAgentIds } = await getThreadProjectContext(threadRef.threadId);
|
|
227
|
+
const threadHistory = await loadHistory(threadRef.threadId);
|
|
228
|
+
const defaultAgent = projectAgentIds[0] ?? participantLibrary[0]?.id ?? null;
|
|
229
|
+
|
|
230
|
+
if (hasRecentDuplicateSteer(threadHistory, rootMessageId, steer.message, defaultAgent)) {
|
|
231
|
+
return {
|
|
232
|
+
status: "success",
|
|
233
|
+
output: {
|
|
234
|
+
done: false,
|
|
235
|
+
action: "duplicate_next_steps_skipped",
|
|
236
|
+
sender: defaultAgent,
|
|
237
|
+
},
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
|
|
124
241
|
const messageId = crypto.randomUUID();
|
|
125
242
|
await saveMessages(threadRef.threadId, [
|
|
126
243
|
{
|
|
@@ -135,13 +252,81 @@ async function dispatchShipModeAct(node: FunctionNode, graph: ExecutionGraph): P
|
|
|
135
252
|
},
|
|
136
253
|
]);
|
|
137
254
|
|
|
255
|
+
const orderedParticipantIds = (projectAgentIds.length > 0
|
|
256
|
+
? projectAgentIds
|
|
257
|
+
: participantLibrary.map((participant) => participant.id))
|
|
258
|
+
.filter((participantId, index, allIds) => participantId && allIds.indexOf(participantId) === index);
|
|
259
|
+
const responderIds = orderedParticipantIds.filter((participantId) => participantId !== defaultAgent);
|
|
260
|
+
const runParticipantIds = (responderIds.length > 0 ? responderIds : orderedParticipantIds).filter((participantId) =>
|
|
261
|
+
participantLibrary.some((participant) => participant.id === participantId)
|
|
262
|
+
);
|
|
263
|
+
|
|
264
|
+
if (runParticipantIds.length === 0) {
|
|
265
|
+
return {
|
|
266
|
+
status: "success",
|
|
267
|
+
output: {
|
|
268
|
+
done: false,
|
|
269
|
+
action: "sent_next_steps_only",
|
|
270
|
+
sender: defaultAgent,
|
|
271
|
+
messageId,
|
|
272
|
+
},
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
const runParticipants = participantLibrary.filter((participant) => runParticipantIds.includes(participant.id));
|
|
277
|
+
const projectContext = projectSlug
|
|
278
|
+
? await resolveProjectContext(projectSlug, [], runParticipants)
|
|
279
|
+
: undefined;
|
|
280
|
+
const chatRunId = crypto.randomUUID();
|
|
281
|
+
const chatRunPayload: ChatRunPayload = {
|
|
282
|
+
threadId: threadRef.threadId,
|
|
283
|
+
prompt: steer.message,
|
|
284
|
+
projectContext,
|
|
285
|
+
mentionedIds: [],
|
|
286
|
+
initialParallelIds: [],
|
|
287
|
+
maxRounds: SHIP_MODE_MAX_ROUNDS,
|
|
288
|
+
recentHistory: buildRecentHistory(threadHistory, rootMessageId, participantNames),
|
|
289
|
+
currentUserMessageId: messageId,
|
|
290
|
+
rootMessageId,
|
|
291
|
+
participantIds: runParticipantIds,
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
await createChatRun({
|
|
295
|
+
id: chatRunId,
|
|
296
|
+
threadId: threadRef.threadId,
|
|
297
|
+
rootMessageId,
|
|
298
|
+
userId: LOCAL_USER.id,
|
|
299
|
+
projectSlug: projectSlug ?? null,
|
|
300
|
+
maxSteps: SHIP_MODE_MAX_ROUNDS,
|
|
301
|
+
activeParticipantIds: runParticipantIds,
|
|
302
|
+
payload: chatRunPayload as unknown as Record<string, unknown>,
|
|
303
|
+
});
|
|
304
|
+
|
|
305
|
+
await ensureOrchestratorRuntime();
|
|
306
|
+
const queue = await getQueue();
|
|
307
|
+
await queue.send<ChatRunJobData>(QUEUE_NAMES.CHAT_RUN_PROCESS, {
|
|
308
|
+
chatRunId,
|
|
309
|
+
userId: LOCAL_USER.id,
|
|
310
|
+
signal: "start",
|
|
311
|
+
});
|
|
312
|
+
|
|
313
|
+
writeDebugLog("ship_mode.steer.enqueued", {
|
|
314
|
+
rootMessageId,
|
|
315
|
+
threadId: threadRef.threadId,
|
|
316
|
+
chatRunId,
|
|
317
|
+
authorId: defaultAgent,
|
|
318
|
+
participantIds: runParticipantIds,
|
|
319
|
+
projectSlug: projectSlug ?? null,
|
|
320
|
+
});
|
|
321
|
+
|
|
138
322
|
return {
|
|
139
323
|
status: "success",
|
|
140
324
|
output: {
|
|
141
325
|
done: false,
|
|
142
|
-
action: "
|
|
326
|
+
action: "sent_next_steps_and_started_chat_run",
|
|
143
327
|
sender: defaultAgent,
|
|
144
328
|
messageId,
|
|
329
|
+
chatRunId,
|
|
145
330
|
},
|
|
146
331
|
};
|
|
147
332
|
}
|
|
@@ -15,19 +15,16 @@ import type { WorkNode, ExecutionGraph } from './types';
|
|
|
15
15
|
import type { WorkDispatchResult } from './executor';
|
|
16
16
|
import type { ChatProvider } from '@/lib/types';
|
|
17
17
|
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
You MUST respond with ONLY a JSON object, no markdown fences, no extra text:
|
|
18
|
+
const ACTIVE_PROCESS_STATUSES = new Set(['running', 'working']);
|
|
19
|
+
const DEFAULT_STEER_DIRECTIVE = `Review the thread, assess whether the work is complete enough to move into review, and if not, produce one concise steering message that combines:
|
|
20
|
+
1. what has been accomplished vs. what remains
|
|
21
|
+
2. the concrete next steps needed to move toward shipping`;
|
|
22
|
+
const STEER_OUTPUT_CONTRACT = `You MUST respond with ONLY a JSON object, no markdown fences, no extra text:
|
|
23
23
|
{"isDone": true/false, "message": "your assessment"}
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
If
|
|
27
|
-
|
|
28
|
-
- the concrete next steps for the team
|
|
29
|
-
|
|
30
|
-
Do not produce separate status and instruction messages.`;
|
|
25
|
+
Set isDone=true only when the thread is genuinely ready to stop ship mode and move into review.
|
|
26
|
+
If isDone=false, message must be a single concise steering note with both status and next steps.
|
|
27
|
+
The message must not be empty.`;
|
|
31
28
|
|
|
32
29
|
/**
|
|
33
30
|
* Read agx config to get the default provider name.
|
|
@@ -55,6 +52,59 @@ function resolveProvider(raw: string): ChatProvider {
|
|
|
55
52
|
}
|
|
56
53
|
}
|
|
57
54
|
|
|
55
|
+
async function getSteeringAgentConfig(threadId: string): Promise<{ provider: ChatProvider; model: string | null }> {
|
|
56
|
+
try {
|
|
57
|
+
const [{ getSQLiteDb }, { loadDbParticipants }] = await Promise.all([
|
|
58
|
+
import('@/lib/sqlite-query-adapter'),
|
|
59
|
+
import('@/lib/agent-participants'),
|
|
60
|
+
]);
|
|
61
|
+
const sqlite = getSQLiteDb();
|
|
62
|
+
const projectRow = sqlite
|
|
63
|
+
.prepare(
|
|
64
|
+
`SELECT pt.project_id AS project_id
|
|
65
|
+
FROM project_threads pt
|
|
66
|
+
WHERE pt.thread_id = ?
|
|
67
|
+
ORDER BY pt.created_at ASC
|
|
68
|
+
LIMIT 1`
|
|
69
|
+
)
|
|
70
|
+
.get(threadId) as { project_id: string } | undefined;
|
|
71
|
+
if (!projectRow?.project_id) {
|
|
72
|
+
return { provider: resolveProvider(getDefaultProvider()), model: null };
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const agentRow = sqlite
|
|
76
|
+
.prepare(
|
|
77
|
+
`SELECT agent_id
|
|
78
|
+
FROM project_agents
|
|
79
|
+
WHERE project_id = ?
|
|
80
|
+
ORDER BY routing_order ASC, created_at ASC
|
|
81
|
+
LIMIT 1`
|
|
82
|
+
)
|
|
83
|
+
.get(projectRow.project_id) as { agent_id: string } | undefined;
|
|
84
|
+
if (!agentRow?.agent_id) {
|
|
85
|
+
return { provider: resolveProvider(getDefaultProvider()), model: null };
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const participants = await loadDbParticipants();
|
|
89
|
+
const agent = participants.find((participant) => participant.id === agentRow.agent_id);
|
|
90
|
+
if (!agent) {
|
|
91
|
+
return { provider: resolveProvider(getDefaultProvider()), model: null };
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return {
|
|
95
|
+
provider: resolveProvider(agent.provider),
|
|
96
|
+
model: agent.model,
|
|
97
|
+
};
|
|
98
|
+
} catch {
|
|
99
|
+
return { provider: resolveProvider(getDefaultProvider()), model: null };
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function buildSteerSystemPrompt(node: WorkNode): string {
|
|
104
|
+
const steerDirective = node.description?.trim() || DEFAULT_STEER_DIRECTIVE;
|
|
105
|
+
return `${steerDirective}\n\n${STEER_OUTPUT_CONTRACT}`;
|
|
106
|
+
}
|
|
107
|
+
|
|
58
108
|
/**
|
|
59
109
|
* Create a dispatchWork implementation for schedule-driven graphs.
|
|
60
110
|
*
|
|
@@ -97,15 +147,30 @@ export function createDispatchWork(): (
|
|
|
97
147
|
});
|
|
98
148
|
|
|
99
149
|
const activeProcessCount = snapshot.processes.filter(
|
|
100
|
-
(p: { status: string }) => p.status
|
|
150
|
+
(p: { status: string }) => ACTIVE_PROCESS_STATUSES.has(p.status),
|
|
101
151
|
).length;
|
|
152
|
+
const rootStatus = snapshot.rootMessage?.threadStatus ?? 'active';
|
|
153
|
+
const processSummary = snapshot.processes
|
|
154
|
+
.slice(0, 8)
|
|
155
|
+
.map((process: {
|
|
156
|
+
agent: string;
|
|
157
|
+
status: string;
|
|
158
|
+
responseTo?: string;
|
|
159
|
+
responseContent?: string | null;
|
|
160
|
+
}) => {
|
|
161
|
+
const details = [`${process.agent}: ${process.status}`];
|
|
162
|
+
if (process.responseTo) details.push(`replying to "${process.responseTo.slice(0, 140)}"`);
|
|
163
|
+
if (process.responseContent) details.push(`latest response "${process.responseContent.slice(0, 140)}"`);
|
|
164
|
+
return `- ${details.join(' | ')}`;
|
|
165
|
+
})
|
|
166
|
+
.join('\n');
|
|
102
167
|
|
|
103
168
|
// Build a summary of recent messages for context
|
|
104
169
|
const recentMessages = (snapshot.messages ?? [])
|
|
105
|
-
.slice(-
|
|
170
|
+
.slice(-15)
|
|
106
171
|
.map((m: { role?: string; content?: string; participantId?: string | null }) => {
|
|
107
172
|
const sender = m.participantId ?? m.role ?? '?';
|
|
108
|
-
const text = (m.content ?? '').slice(0,
|
|
173
|
+
const text = (m.content ?? '').slice(0, 600);
|
|
109
174
|
return `[${sender}]: ${text}`;
|
|
110
175
|
})
|
|
111
176
|
.join('\n');
|
|
@@ -115,27 +180,37 @@ export function createDispatchWork(): (
|
|
|
115
180
|
// 2. Build assessment prompt
|
|
116
181
|
const assessPrompt = [
|
|
117
182
|
'--- THREAD STATE ---',
|
|
183
|
+
`Root request: ${snapshot.rootMessage?.content ?? '(missing root message)'}`,
|
|
184
|
+
`Thread status: ${rootStatus}`,
|
|
118
185
|
`Active agents: ${activeProcessCount}`,
|
|
119
186
|
`Total messages: ${snapshot.messages?.length ?? 0}`,
|
|
187
|
+
snapshot.lastUpdatedAt ? `Last updated at: ${new Date(snapshot.lastUpdatedAt).toISOString()}` : null,
|
|
188
|
+
'',
|
|
189
|
+
'Current process state:',
|
|
190
|
+
processSummary || '- none',
|
|
120
191
|
'',
|
|
121
192
|
'Recent messages:',
|
|
122
|
-
recentMessages,
|
|
193
|
+
recentMessages || '- none',
|
|
123
194
|
'--- END THREAD STATE ---',
|
|
124
195
|
'',
|
|
125
196
|
'Assess the progress and respond with the JSON object.',
|
|
126
|
-
]
|
|
197
|
+
]
|
|
198
|
+
.filter(Boolean)
|
|
199
|
+
.join('\n');
|
|
127
200
|
|
|
128
201
|
// 3. Call provider directly via runCliResponse (same path as chat endpoint)
|
|
129
202
|
const { runCliResponse } = await import('@/lib/cli-runner');
|
|
130
|
-
const
|
|
131
|
-
console.log(
|
|
203
|
+
const steeringAgent = await getSteeringAgentConfig(threadRef.threadId);
|
|
204
|
+
console.log(
|
|
205
|
+
`[work-dispatch] Calling ${steeringAgent.provider} via runCliResponse (prompt length: ${assessPrompt.length})...`
|
|
206
|
+
);
|
|
132
207
|
|
|
133
208
|
let fullResponse = '';
|
|
134
209
|
await runCliResponse({
|
|
135
|
-
provider,
|
|
136
|
-
model:
|
|
210
|
+
provider: steeringAgent.provider,
|
|
211
|
+
model: steeringAgent.model,
|
|
137
212
|
prompt: assessPrompt,
|
|
138
|
-
systemContext:
|
|
213
|
+
systemContext: buildSteerSystemPrompt(node),
|
|
139
214
|
onDelta: (chunk: string) => {
|
|
140
215
|
fullResponse += chunk;
|
|
141
216
|
},
|
|
@@ -148,11 +223,18 @@ export function createDispatchWork(): (
|
|
|
148
223
|
|
|
149
224
|
// 4. Parse structured output
|
|
150
225
|
const parsed = parseSteerResponse(fullResponse.trim());
|
|
226
|
+
if (!parsed.ok) {
|
|
227
|
+
return {
|
|
228
|
+
status: 'failure' as const,
|
|
229
|
+
transient: false,
|
|
230
|
+
message: parsed.error,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
151
233
|
console.log(`[work-dispatch] Parsed result:`, parsed);
|
|
152
234
|
|
|
153
235
|
return {
|
|
154
236
|
status: 'success' as const,
|
|
155
|
-
output: parsed,
|
|
237
|
+
output: parsed.value,
|
|
156
238
|
};
|
|
157
239
|
} catch (err) {
|
|
158
240
|
console.error(`[work-dispatch] Steer dispatch failed:`, err);
|
|
@@ -167,26 +249,37 @@ export function createDispatchWork(): (
|
|
|
167
249
|
|
|
168
250
|
/**
|
|
169
251
|
* Parse the steer agent's response into { isDone, message }.
|
|
170
|
-
* Tries JSON parse first, falls back to heuristic detection.
|
|
171
252
|
*/
|
|
172
|
-
function parseSteerResponse(
|
|
173
|
-
|
|
253
|
+
function parseSteerResponse(
|
|
254
|
+
raw: string
|
|
255
|
+
):
|
|
256
|
+
| { ok: true; value: { isDone: boolean; message: string } }
|
|
257
|
+
| { ok: false; error: string } {
|
|
174
258
|
const jsonMatch = raw.match(/\{[\s\S]*?"isDone"\s*:\s*(true|false)[\s\S]*?\}/);
|
|
175
259
|
if (jsonMatch) {
|
|
176
260
|
try {
|
|
177
261
|
const parsed = JSON.parse(jsonMatch[0]);
|
|
262
|
+
const message = String(parsed.message ?? '').trim();
|
|
263
|
+
if (!message) {
|
|
264
|
+
return { ok: false, error: 'Ship mode response JSON did not include a non-empty message.' };
|
|
265
|
+
}
|
|
178
266
|
return {
|
|
179
|
-
|
|
180
|
-
|
|
267
|
+
ok: true,
|
|
268
|
+
value: {
|
|
269
|
+
isDone: Boolean(parsed.isDone),
|
|
270
|
+
message,
|
|
271
|
+
},
|
|
181
272
|
};
|
|
182
|
-
} catch {
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
273
|
+
} catch (error) {
|
|
274
|
+
return {
|
|
275
|
+
ok: false,
|
|
276
|
+
error: error instanceof Error ? error.message : String(error),
|
|
277
|
+
};
|
|
278
|
+
}
|
|
188
279
|
}
|
|
189
280
|
|
|
190
|
-
|
|
191
|
-
|
|
281
|
+
return {
|
|
282
|
+
ok: false,
|
|
283
|
+
error: 'Ship mode response was not valid JSON with isDone/message fields.',
|
|
284
|
+
};
|
|
192
285
|
}
|
package/cloud-runtime/standalone/state/automations/active/c4300b01-1203-40fe-b3a9-b9fb9ec0c5cc.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: c4300b01-1203-40fe-b3a9-b9fb9ec0c5cc
|
|
3
|
+
name: 'Agx Agent: Work On Linear Tickets'
|
|
4
|
+
projectId: f354bbf2-cfed-473f-890c-e592209313da
|
|
5
|
+
state: active
|
|
6
|
+
trigger:
|
|
7
|
+
type: scheduled
|
|
8
|
+
cadence: 15 * * * *
|
|
9
|
+
cronExpr: 15 * * * *
|
|
10
|
+
target:
|
|
11
|
+
type: prompt_job
|
|
12
|
+
provider: claude
|
|
13
|
+
createdAt: '2026-04-08T09:50:53.793Z'
|
|
14
|
+
---
|
|
15
|
+
Execute `/Users/mendrika/Projects/Agents/agx-game-vault/agx-game-vault/scheduled-tasks/work-linear-tickets.md`
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getLinearRunScriptsStorageKey,
|
|
3
|
+
loadLinearRunScripts,
|
|
4
|
+
persistLinearRunScripts,
|
|
5
|
+
} from "./linearRunScripts";
|
|
6
|
+
|
|
7
|
+
type LocalStorageMap = Record<string, string>;
|
|
8
|
+
|
|
9
|
+
function withFakeLocalStorage<T>(callback: (storage: LocalStorageMap) => T): T {
|
|
10
|
+
const originalWindow = globalThis.window;
|
|
11
|
+
const storage: LocalStorageMap = {};
|
|
12
|
+
const fakeLocalStorage = {
|
|
13
|
+
getItem(key: string) {
|
|
14
|
+
return storage[key] ?? null;
|
|
15
|
+
},
|
|
16
|
+
setItem(key: string, value: string) {
|
|
17
|
+
storage[key] = value;
|
|
18
|
+
},
|
|
19
|
+
removeItem(key: string) {
|
|
20
|
+
delete storage[key];
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
globalThis.window = { localStorage: fakeLocalStorage } as unknown as Window;
|
|
24
|
+
|
|
25
|
+
try {
|
|
26
|
+
return callback(storage);
|
|
27
|
+
} finally {
|
|
28
|
+
globalThis.window = originalWindow;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
describe("linearRunScripts", () => {
|
|
33
|
+
test("persists and restores scripts per project slug", () => {
|
|
34
|
+
withFakeLocalStorage((storage) => {
|
|
35
|
+
const key = getLinearRunScriptsStorageKey("agx-cloud");
|
|
36
|
+
expect(loadLinearRunScripts("agx-cloud")).toEqual({
|
|
37
|
+
activeScriptId: null,
|
|
38
|
+
scripts: [],
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
persistLinearRunScripts("agx-cloud", {
|
|
42
|
+
activeScriptId: "script-1",
|
|
43
|
+
scripts: [
|
|
44
|
+
{
|
|
45
|
+
id: "script-1",
|
|
46
|
+
name: "Investigation",
|
|
47
|
+
prompt: "Read {{ticket.identifier}} first.",
|
|
48
|
+
createdAt: "2026-04-08T01:00:00.000Z",
|
|
49
|
+
updatedAt: "2026-04-08T02:00:00.000Z",
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
expect(storage[key]).toContain("Investigation");
|
|
55
|
+
expect(loadLinearRunScripts("agx-cloud")).toEqual({
|
|
56
|
+
activeScriptId: "script-1",
|
|
57
|
+
scripts: [
|
|
58
|
+
{
|
|
59
|
+
id: "script-1",
|
|
60
|
+
name: "Investigation",
|
|
61
|
+
prompt: "Read {{ticket.identifier}} first.",
|
|
62
|
+
createdAt: "2026-04-08T01:00:00.000Z",
|
|
63
|
+
updatedAt: "2026-04-08T02:00:00.000Z",
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
test("clears invalid active script ids while preserving valid scripts", () => {
|
|
71
|
+
withFakeLocalStorage((storage) => {
|
|
72
|
+
storage[getLinearRunScriptsStorageKey("agx-cloud")] = JSON.stringify({
|
|
73
|
+
activeScriptId: "missing-script",
|
|
74
|
+
scripts: [
|
|
75
|
+
{
|
|
76
|
+
id: "script-1",
|
|
77
|
+
name: "Implementation",
|
|
78
|
+
prompt: "Implement carefully.",
|
|
79
|
+
createdAt: "2026-04-08T01:00:00.000Z",
|
|
80
|
+
updatedAt: "2026-04-08T02:00:00.000Z",
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
expect(loadLinearRunScripts("agx-cloud")).toEqual({
|
|
86
|
+
activeScriptId: null,
|
|
87
|
+
scripts: [
|
|
88
|
+
{
|
|
89
|
+
id: "script-1",
|
|
90
|
+
name: "Implementation",
|
|
91
|
+
prompt: "Implement carefully.",
|
|
92
|
+
createdAt: "2026-04-08T01:00:00.000Z",
|
|
93
|
+
updatedAt: "2026-04-08T02:00:00.000Z",
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
});
|