@mndrk/agx 2.0.46 → 2.0.47
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 +27 -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/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/chat/route.js +2 -2
- 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/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/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 +5 -2
- 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.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/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/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 +1 -1
- 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.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/assign/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/available/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/available/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/history/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/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 +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]/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]/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 +1 -1
- 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 +1 -1
- 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.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/folders/page/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/.next/server/app/folders/page/build-manifest.json +18 -0
- package/cloud-runtime/standalone/.next/server/app/folders/page/next-font-manifest.json +11 -0
- package/cloud-runtime/standalone/.next/server/app/folders/page/react-loadable-manifest.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/folders/page/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/app/folders/page.js +15 -0
- package/cloud-runtime/standalone/.next/server/app/folders/page.js.map +5 -0
- package/cloud-runtime/standalone/.next/server/app/folders/page.js.nft.json +1 -0
- package/cloud-runtime/standalone/.next/server/app/folders/page_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/.next/server/app/folders.html +21 -0
- package/cloud-runtime/standalone/.next/server/app/folders.meta +15 -0
- package/cloud-runtime/standalone/.next/server/app/folders.rsc +24 -0
- package/cloud-runtime/standalone/.next/server/app/folders.segments/_full.segment.rsc +24 -0
- package/cloud-runtime/standalone/.next/server/app/folders.segments/_head.segment.rsc +5 -0
- package/cloud-runtime/standalone/.next/server/app/folders.segments/_index.segment.rsc +10 -0
- package/cloud-runtime/standalone/.next/server/app/folders.segments/_tree.segment.rsc +5 -0
- package/cloud-runtime/standalone/.next/server/app/folders.segments/folders/__PAGE__.segment.rsc +9 -0
- package/cloud-runtime/standalone/.next/server/app/folders.segments/folders.segment.rsc +4 -0
- 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.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.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.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +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.js.nft.json +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 +3 -3
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings/page_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/app-paths-manifest.json +1 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[externals]__31e26905._.js → [externals]__7b4c6b2b._.js} +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[externals]__a21cc96d._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5aaf8c25._.js → [root-of-the-server]__143fdf69._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__74a37ca4._.js → [root-of-the-server]__158df4bf._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c029daab._.js → [root-of-the-server]__179cb224._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__3fd3c5b1._.js → [root-of-the-server]__1a1f66b1._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__20a2cb22._.js +150 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d2ac93f2._.js → [root-of-the-server]__23b075bd._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__3bf516b6._.js → [root-of-the-server]__3170b7bf._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__558389f7._.js → [root-of-the-server]__33865410._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__4c2d07e0._.js → [root-of-the-server]__36d15de5._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3fae531a._.js +89 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__76658fd6._.js → [root-of-the-server]__4cb22e4d._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ebece93b._.js → [root-of-the-server]__4ce74056._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__635fe0f9._.js → [root-of-the-server]__538b0bdd._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__3b1431b6._.js → [root-of-the-server]__5c55f67a._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e20922e8._.js → [root-of-the-server]__69a3c480._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__42804c1d._.js → [root-of-the-server]__6c53437e._.js} +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__8cbd8c56._.js +79 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__92ed2961._.js +48 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__509b1dd2._.js → [root-of-the-server]__94499e9a._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ddb3aa76._.js → [root-of-the-server]__a280fa63._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__8c7d1318._.js → [root-of-the-server]__a2d31df1._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a3955224._.js +150 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__4b0b5fe1._.js → [root-of-the-server]__a7b2350e._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5b13e7a5._.js → [root-of-the-server]__ab655b9f._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ac6326b6._.js +106 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__0284ea89._.js → [root-of-the-server]__b2748382._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e7be56ba._.js → [root-of-the-server]__b627cb83._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__0e98af48._.js → [root-of-the-server]__bab85495._.js} +63 -18
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__dca6026a._.js → [root-of-the-server]__c21747df._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c22dd3a6._.js +179 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c8890cd6._.js +150 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__aad349b4._.js → [root-of-the-server]__ca4987eb._.js} +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__fcdaf6d8._.js → [root-of-the-server]__d16caed5._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__1f53e82e._.js → [root-of-the-server]__d324f8a1._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__6988985c._.js → [root-of-the-server]__da645a5e._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d4f42f49._.js → [root-of-the-server]__e58e9f91._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f4b3df16._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c8195768._.js → [root-of-the-server]__f7f336c7._.js} +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fcfa3690._.js +93 -0
- package/cloud-runtime/standalone/.next/server/chunks/_4d07f8db._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/lib_7f7835f1._.js +66 -21
- package/cloud-runtime/standalone/.next/server/chunks/lib_9f439b27._.js +61 -16
- package/cloud-runtime/standalone/.next/server/chunks/lib_f81d6da9._.js +70 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__4c9d0778._.js → [root-of-the-server]__01e1641e._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__21a9eaef._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__4140bb73._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__ffbc2e98._.js → [root-of-the-server]__5e73414b._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__9ad05ace._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__a42e4555._.js → [root-of-the-server]__d96bb3b5._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__ec81a3d9._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_1d949e96._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_32a156b6._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_43c091dc._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_45175f47._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_4f0c544d._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_97f6a18e._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{_f51a3112._.js → _a511a014._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_b7009996._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_c3a3a829._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_e70d5625._.js +4 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_f53d31e0._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_next-internal_server_app_folders_page_actions_9c8dfb6c.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_linear_page_tsx_971a6ba7._.js +3 -3
- 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/instrumentation.js +1 -1
- package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
- package/cloud-runtime/standalone/.next/server/next-font-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/next-font-manifest.json +4 -0
- package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
- package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
- package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/14fff3c493ea9c54.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/1b808cdaa28a10b4.js +16 -0
- package/cloud-runtime/standalone/.next/static/chunks/{f4360c3e4089263f.js → 31fe4e36a00fd7b5.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/41c518743656a291.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{14922fd23cdc223b.js → 4343e7fe5bf5f34a.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/5405540470146645.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/69f2db4b9996b9c1.js +37 -0
- package/cloud-runtime/standalone/.next/static/chunks/8aeb69ceb497ad85.css +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{1fa91c34c99502bf.js → 97c11137cd6fc860.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/baf5d39d089efb87.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/c78969fde5798275.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/d3dc6fadb96ab3a2.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{b3377e39d47c71cf.js → fdadad2379039dce.js} +1 -1
- package/cloud-runtime/standalone/app/api/linear/issues/route.ts +9 -2
- package/cloud-runtime/standalone/app/api/linear/options/route.ts +16 -4
- package/cloud-runtime/standalone/app/folders/page.tsx +318 -0
- package/cloud-runtime/standalone/components/LinearBoard.tsx +93 -7
- package/cloud-runtime/standalone/components/thread/WorkspaceSidebar.tsx +20 -10
- package/cloud-runtime/standalone/hooks/useLinearIssues.ts +7 -3
- package/cloud-runtime/standalone/instrumentation.ts +3 -0
- package/cloud-runtime/standalone/lib/cli-runner.ts +27 -6
- package/cloud-runtime/standalone/lib/linear-issue-store.ts +33 -5
- package/cloud-runtime/standalone/lib/scheduled-task-skill.ts +119 -0
- package/cloud-runtime/standalone/state/automations/.state/24a6a5db-3b14-49c4-841f-29f10f015fbb.json +3 -3
- package/cloud-runtime/standalone/state/linearBoardFilters.ts +90 -0
- package/cloud-runtime/standalone/worker/index.js +147 -28
- package/package.json +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3b83b657._.js +0 -147
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6921fe3f._.js +0 -44
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__70327010._.js +0 -134
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__748c718f._.js +0 -147
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__79fa35e4._.js +0 -101
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__8d205f82._.js +0 -48
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a7e0ac67._.js +0 -25
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b133856b._.js +0 -61
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ce2a1672._.js +0 -67
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f168c6dc._.js +0 -25
- package/cloud-runtime/standalone/.next/server/chunks/_a93e80e8._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__1c4256ce._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__f59f0dc7._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_1d26be78._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_22e99a52._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_260b10ce._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_32c878b9._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_4bfdfb14._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_52fe115d._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_77e1407a._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_84a166cb._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_ba5903a7._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_ed4fece9._.js +0 -3
- package/cloud-runtime/standalone/.next/static/chunks/2362d5c0dcaa5d64.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/2730394502dd3664.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/34dd491bc4ce9561.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/37f07896b044d69f.css +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/3dc50de1c86e1ce9.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/4ea8f08087116055.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/98c20da4973991f0.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/a72fbac84e32f665.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/b553dba1f51e709b.js +0 -16
- package/cloud-runtime/standalone/.next/static/chunks/c0d17e0c37ba8e7a.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/cca7c8e4ade050f0.js +0 -37
- /package/cloud-runtime/standalone/.next/static/{1Q0q2lXllTpqCvmNQYtpD → lOB5InbmVcurTLQo9J3KK}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/.next/static/{1Q0q2lXllTpqCvmNQYtpD → lOB5InbmVcurTLQo9J3KK}/_clientMiddlewareManifest.json +0 -0
- /package/cloud-runtime/standalone/.next/static/{1Q0q2lXllTpqCvmNQYtpD → lOB5InbmVcurTLQo9J3KK}/_ssgManifest.js +0 -0
|
@@ -5,6 +5,7 @@ import type { ChatProvider } from "./types";
|
|
|
5
5
|
import { createCliChunkSanitizer } from "./sanitize";
|
|
6
6
|
import { writeDebugLog } from "./debug-log";
|
|
7
7
|
import { buildSpawnEnv, commandExists } from "./shell-env";
|
|
8
|
+
import { buildScheduledTaskSkillPromptContext } from "./scheduled-task-skill";
|
|
8
9
|
|
|
9
10
|
const isNonEmptyString = (value: unknown): value is string =>
|
|
10
11
|
typeof value === "string" && value.trim().length > 0;
|
|
@@ -711,12 +712,12 @@ export async function runCliResponse({
|
|
|
711
712
|
if (cleaned) onDelta(cleaned);
|
|
712
713
|
};
|
|
713
714
|
|
|
714
|
-
const
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
715
|
+
const systemPrompt = buildCliSystemPrompt({
|
|
716
|
+
identity,
|
|
717
|
+
self,
|
|
718
|
+
skills,
|
|
719
|
+
systemContext,
|
|
720
|
+
});
|
|
720
721
|
const attempts = buildCliAttempts({
|
|
721
722
|
provider,
|
|
722
723
|
model,
|
|
@@ -789,3 +790,23 @@ export async function runCliResponse({
|
|
|
789
790
|
|
|
790
791
|
throw lastError || new Error("CLI execution failed.");
|
|
791
792
|
}
|
|
793
|
+
|
|
794
|
+
export function buildCliSystemPrompt({
|
|
795
|
+
identity,
|
|
796
|
+
self,
|
|
797
|
+
skills,
|
|
798
|
+
systemContext,
|
|
799
|
+
}: {
|
|
800
|
+
identity?: string;
|
|
801
|
+
self?: string;
|
|
802
|
+
skills?: string;
|
|
803
|
+
systemContext?: string;
|
|
804
|
+
}): string | undefined {
|
|
805
|
+
const systemParts: string[] = [];
|
|
806
|
+
if (systemContext) systemParts.push(systemContext);
|
|
807
|
+
systemParts.push(buildScheduledTaskSkillPromptContext());
|
|
808
|
+
if (identity) systemParts.push(`<identity>\n${identity}\n</identity>`);
|
|
809
|
+
if (self) systemParts.push(`<self>\n${self}\n</self>`);
|
|
810
|
+
if (skills) systemParts.push(`<skills>\n${skills}\n</skills>`);
|
|
811
|
+
return systemParts.length > 0 ? systemParts.join("\n\n") : undefined;
|
|
812
|
+
}
|
|
@@ -87,7 +87,7 @@ export interface LinearIssueSyncState {
|
|
|
87
87
|
|
|
88
88
|
export interface ListCachedLinearIssuesInput {
|
|
89
89
|
search?: string;
|
|
90
|
-
|
|
90
|
+
statuses?: string[];
|
|
91
91
|
assigneeIds?: string[];
|
|
92
92
|
assignedToMe?: boolean;
|
|
93
93
|
teamId?: string;
|
|
@@ -104,6 +104,10 @@ export interface ListCachedLinearIssuesResult {
|
|
|
104
104
|
};
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
+
interface LinearIssueStatusRow {
|
|
108
|
+
status: string;
|
|
109
|
+
}
|
|
110
|
+
|
|
107
111
|
function toOptionalString(value: string | null | undefined): string | null {
|
|
108
112
|
const trimmed = value?.trim();
|
|
109
113
|
return trimmed ? trimmed : null;
|
|
@@ -343,10 +347,17 @@ export async function listCachedLinearIssues(
|
|
|
343
347
|
params.push(pattern, pattern, pattern);
|
|
344
348
|
}
|
|
345
349
|
|
|
346
|
-
const
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
+
const statuses = Array.from(
|
|
351
|
+
new Set(
|
|
352
|
+
(input.statuses ?? [])
|
|
353
|
+
.map((status) => toOptionalString(status))
|
|
354
|
+
.filter((status): status is string => Boolean(status))
|
|
355
|
+
.map((status) => status.toLowerCase())
|
|
356
|
+
)
|
|
357
|
+
);
|
|
358
|
+
if (statuses.length > 0) {
|
|
359
|
+
clauses.push(`LOWER(status) IN (${statuses.map(() => "?").join(", ")})`);
|
|
360
|
+
params.push(...statuses);
|
|
350
361
|
}
|
|
351
362
|
|
|
352
363
|
const assigneeIds = Array.from(
|
|
@@ -402,6 +413,23 @@ export async function listCachedLinearIssues(
|
|
|
402
413
|
});
|
|
403
414
|
}
|
|
404
415
|
|
|
416
|
+
export async function listCachedLinearIssueStatuses(): Promise<string[]> {
|
|
417
|
+
return withLinearIssueDatabase((db) => {
|
|
418
|
+
const rows = db
|
|
419
|
+
.prepare(
|
|
420
|
+
`SELECT DISTINCT status
|
|
421
|
+
FROM linear_issues
|
|
422
|
+
WHERE TRIM(status) <> ''
|
|
423
|
+
ORDER BY LOWER(status) ASC`
|
|
424
|
+
)
|
|
425
|
+
.all() as unknown as LinearIssueStatusRow[];
|
|
426
|
+
|
|
427
|
+
return rows
|
|
428
|
+
.map((row) => row.status.trim())
|
|
429
|
+
.filter(Boolean);
|
|
430
|
+
});
|
|
431
|
+
}
|
|
432
|
+
|
|
405
433
|
export async function getCachedLinearIssueContexts(issueIds: string[]): Promise<CachedLinearIssueRecord[]> {
|
|
406
434
|
const normalizedIds = Array.from(
|
|
407
435
|
new Set(
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import os from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
|
|
5
|
+
const SCHEDULED_TASK_SKILL_ID = "scheduled-task-manager";
|
|
6
|
+
|
|
7
|
+
type ScheduledTaskSkillOptions = {
|
|
8
|
+
agxDataDir?: string;
|
|
9
|
+
workspaceRoot?: string;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
function toDisplayPath(value: string): string {
|
|
13
|
+
return value.replace(/\\/g, "/");
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function resolveAgxDataDir(explicitDir?: string): string {
|
|
17
|
+
const trimmed = explicitDir?.trim();
|
|
18
|
+
if (trimmed) return trimmed;
|
|
19
|
+
const configured = process.env.AGX_DATA_DIR?.trim();
|
|
20
|
+
if (configured) return configured;
|
|
21
|
+
return path.join(os.homedir(), ".agx");
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function resolveWorkspaceRoot(explicitRoot?: string): string {
|
|
25
|
+
const trimmed = explicitRoot?.trim();
|
|
26
|
+
if (trimmed) return trimmed;
|
|
27
|
+
return process.cwd();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function getScheduledTaskSkillPath(options: ScheduledTaskSkillOptions = {}): string {
|
|
31
|
+
return path.join(
|
|
32
|
+
resolveAgxDataDir(options.agxDataDir),
|
|
33
|
+
"skills",
|
|
34
|
+
SCHEDULED_TASK_SKILL_ID,
|
|
35
|
+
"SKILL.md",
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function buildScheduledTaskSkillContent(options: ScheduledTaskSkillOptions = {}): string {
|
|
40
|
+
const workspaceRoot = resolveWorkspaceRoot(options.workspaceRoot);
|
|
41
|
+
const specPath = toDisplayPath(path.join(workspaceRoot, "planning", "automation-frontmatter-migration-spec.md"));
|
|
42
|
+
const automationsDir = toDisplayPath(path.join(workspaceRoot, "src", "automations"));
|
|
43
|
+
const promptSchedulerDir = toDisplayPath(path.join(workspaceRoot, "src", "prompt-scheduler"));
|
|
44
|
+
const graphScheduleRunnerPath = toDisplayPath(path.join(workspaceRoot, "src", "graph", "schedule-runner.ts"));
|
|
45
|
+
const graphStorePath = toDisplayPath(path.join(workspaceRoot, "src", "graph", "store.ts"));
|
|
46
|
+
const automationsRoutePath = toDisplayPath(path.join(workspaceRoot, "app", "api", "automations", "route.ts"));
|
|
47
|
+
const promptJobsRoutePath = toDisplayPath(path.join(workspaceRoot, "app", "api", "prompt-jobs", "route.ts"));
|
|
48
|
+
|
|
49
|
+
return `---
|
|
50
|
+
name: scheduled-task-manager
|
|
51
|
+
description: Use when creating, editing, migrating, debugging, or reviewing AGX scheduled tasks, automations, prompt jobs, execution graph schedules, or frontmatter-backed automation definitions.
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
# Scheduled Task Manager
|
|
55
|
+
|
|
56
|
+
Use this skill whenever the task touches scheduled tasks, automations, prompt jobs, execution graph schedules, or automation frontmatter.
|
|
57
|
+
|
|
58
|
+
## Read First
|
|
59
|
+
|
|
60
|
+
- [automation-frontmatter-migration-spec](${specPath})
|
|
61
|
+
- Shared automation model lives in [src/automations](${automationsDir})
|
|
62
|
+
- Prompt-job scheduling lives in [src/prompt-scheduler](${promptSchedulerDir})
|
|
63
|
+
- Execution-graph scheduling flows through [schedule-runner.ts](${graphScheduleRunnerPath}) and [store.ts](${graphStorePath})
|
|
64
|
+
- API entry points are [app/api/automations/route.ts](${automationsRoutePath}) and [app/api/prompt-jobs/route.ts](${promptJobsRoutePath})
|
|
65
|
+
|
|
66
|
+
## Guardrails
|
|
67
|
+
|
|
68
|
+
- Reject malformed frontmatter. Do not coerce invalid enum values into defaults.
|
|
69
|
+
- Preserve stable automation ids. Renaming a task must not create a new id.
|
|
70
|
+
- Keep runtime state such as last run, next run, and archival flags out of frontmatter unless the spec explicitly says otherwise.
|
|
71
|
+
- Preserve sub-minute scheduled cadences when they are represented as \`intervalMs\`.
|
|
72
|
+
- For \`execution_graph\` targets, keep \`graphId\` and \`taskId\` resolution correct. Do not assume \`definition.id === taskId\`.
|
|
73
|
+
- Updating an automation definition should advance user-visible \`updatedAt\`.
|
|
74
|
+
- Avoid eager file-backed repository initialization on request paths that should stay lazy or rollout-gated.
|
|
75
|
+
- Keep parser and serializer behavior round-trippable unless the spec explicitly requires normalization.
|
|
76
|
+
|
|
77
|
+
## Working Pattern
|
|
78
|
+
|
|
79
|
+
1. Read the migration spec before changing storage, rollout, or validation behavior.
|
|
80
|
+
2. Trace the full path: parser -> validation -> repository -> scheduler -> API.
|
|
81
|
+
3. Add or update regression tests for parsing, serialization, due selection, and the affected API or runtime path.
|
|
82
|
+
4. Prefer small fixes in the shared automation layer over duplicating logic in adapters.
|
|
83
|
+
|
|
84
|
+
## Validation Checklist
|
|
85
|
+
|
|
86
|
+
- Scheduled triggers keep \`cronExpr\`, \`cadence\`, and sub-minute \`intervalMs\` semantics intact.
|
|
87
|
+
- Condition triggers validate required fields and reject unsupported polling intervals.
|
|
88
|
+
- Target-specific required fields are enforced.
|
|
89
|
+
- Invalid definitions fail closed and are excluded instead of silently rewritten.
|
|
90
|
+
- Prompt-job and execution-graph adapters preserve the same runtime meaning before and after frontmatter serialization.
|
|
91
|
+
`;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export function ensureScheduledTaskSkillInstalled(options: ScheduledTaskSkillOptions = {}): string {
|
|
95
|
+
const skillPath = getScheduledTaskSkillPath(options);
|
|
96
|
+
const skillContent = buildScheduledTaskSkillContent(options);
|
|
97
|
+
|
|
98
|
+
try {
|
|
99
|
+
fs.mkdirSync(path.dirname(skillPath), { recursive: true });
|
|
100
|
+
const existing = fs.existsSync(skillPath) ? fs.readFileSync(skillPath, "utf8") : null;
|
|
101
|
+
if (existing !== skillContent) {
|
|
102
|
+
fs.writeFileSync(skillPath, skillContent, "utf8");
|
|
103
|
+
}
|
|
104
|
+
} catch (error) {
|
|
105
|
+
console.warn("[scheduled-task-skill] Failed to install skill:", error);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
return skillPath;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export function buildScheduledTaskSkillPromptContext(options: ScheduledTaskSkillOptions = {}): string {
|
|
112
|
+
const skillPath = ensureScheduledTaskSkillInstalled(options);
|
|
113
|
+
return [
|
|
114
|
+
"<scheduled-task-skill>",
|
|
115
|
+
`Path: ${toDisplayPath(skillPath)}`,
|
|
116
|
+
"Read this skill whenever the task involves scheduled tasks, automations, prompt jobs, execution graph schedules, or frontmatter-backed automation definitions.",
|
|
117
|
+
"</scheduled-task-skill>",
|
|
118
|
+
].join("\n");
|
|
119
|
+
}
|
package/cloud-runtime/standalone/state/automations/.state/24a6a5db-3b14-49c4-841f-29f10f015fbb.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"scheduleHash": "c2ceb4716d31708534c3ced330caffb304cc5e0713572bfdb0893feffd9ddb61",
|
|
3
|
-
"nextRunAt":
|
|
4
|
-
"lastRunAt":
|
|
3
|
+
"nextRunAt": 1775642967540,
|
|
4
|
+
"lastRunAt": 1775639392247,
|
|
5
5
|
"lastOutcome": "success",
|
|
6
6
|
"lastError": null,
|
|
7
|
-
"updatedAt": "2026-04-
|
|
7
|
+
"updatedAt": "2026-04-08T09:09:52.248Z"
|
|
8
8
|
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
const LINEAR_BOARD_FILTERS_STORAGE_PREFIX = "agx-linear:boardFilters";
|
|
2
|
+
|
|
3
|
+
export interface LinearBoardFilters {
|
|
4
|
+
search: string;
|
|
5
|
+
assigneeIds: string[];
|
|
6
|
+
statuses: string[];
|
|
7
|
+
teamId: string;
|
|
8
|
+
cycleId: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const DEFAULT_LINEAR_BOARD_FILTERS: LinearBoardFilters = {
|
|
12
|
+
search: "",
|
|
13
|
+
assigneeIds: [],
|
|
14
|
+
statuses: [],
|
|
15
|
+
teamId: "",
|
|
16
|
+
cycleId: "",
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
function isStorageAvailable(): boolean {
|
|
20
|
+
return typeof window !== "undefined" && typeof window.localStorage !== "undefined";
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function normalizeStringArray(value: unknown): string[] {
|
|
24
|
+
if (!Array.isArray(value)) {
|
|
25
|
+
return [];
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return Array.from(
|
|
29
|
+
new Set(
|
|
30
|
+
value
|
|
31
|
+
.map((entry) => (typeof entry === "string" ? entry.trim() : ""))
|
|
32
|
+
.filter(Boolean)
|
|
33
|
+
)
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function getLinearBoardFiltersStorageKey(projectSlug?: string | null): string {
|
|
38
|
+
const normalizedProjectSlug = String(projectSlug ?? "").trim().toLowerCase();
|
|
39
|
+
return normalizedProjectSlug
|
|
40
|
+
? `${LINEAR_BOARD_FILTERS_STORAGE_PREFIX}:${normalizedProjectSlug}`
|
|
41
|
+
: `${LINEAR_BOARD_FILTERS_STORAGE_PREFIX}:global`;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export function loadLinearBoardFilters(projectSlug?: string | null): LinearBoardFilters {
|
|
45
|
+
if (!isStorageAvailable()) {
|
|
46
|
+
return { ...DEFAULT_LINEAR_BOARD_FILTERS };
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const raw = window.localStorage.getItem(getLinearBoardFiltersStorageKey(projectSlug));
|
|
50
|
+
if (!raw) {
|
|
51
|
+
return { ...DEFAULT_LINEAR_BOARD_FILTERS };
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
try {
|
|
55
|
+
const parsed = JSON.parse(raw) as Partial<LinearBoardFilters>;
|
|
56
|
+
return {
|
|
57
|
+
search: typeof parsed.search === "string" ? parsed.search : DEFAULT_LINEAR_BOARD_FILTERS.search,
|
|
58
|
+
assigneeIds: normalizeStringArray(parsed.assigneeIds),
|
|
59
|
+
statuses: normalizeStringArray(parsed.statuses),
|
|
60
|
+
teamId: typeof parsed.teamId === "string" ? parsed.teamId : DEFAULT_LINEAR_BOARD_FILTERS.teamId,
|
|
61
|
+
cycleId: typeof parsed.cycleId === "string" ? parsed.cycleId : DEFAULT_LINEAR_BOARD_FILTERS.cycleId,
|
|
62
|
+
};
|
|
63
|
+
} catch {
|
|
64
|
+
return { ...DEFAULT_LINEAR_BOARD_FILTERS };
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export function persistLinearBoardFilters(
|
|
69
|
+
projectSlug: string | null | undefined,
|
|
70
|
+
filters: LinearBoardFilters
|
|
71
|
+
): void {
|
|
72
|
+
if (!isStorageAvailable()) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
try {
|
|
77
|
+
window.localStorage.setItem(
|
|
78
|
+
getLinearBoardFiltersStorageKey(projectSlug),
|
|
79
|
+
JSON.stringify({
|
|
80
|
+
search: filters.search,
|
|
81
|
+
assigneeIds: normalizeStringArray(filters.assigneeIds),
|
|
82
|
+
statuses: normalizeStringArray(filters.statuses),
|
|
83
|
+
teamId: String(filters.teamId || ""),
|
|
84
|
+
cycleId: String(filters.cycleId || ""),
|
|
85
|
+
})
|
|
86
|
+
);
|
|
87
|
+
} catch {
|
|
88
|
+
// ignore storage errors
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -287,9 +287,9 @@ function reflectionStatePath(agentId) {
|
|
|
287
287
|
return (0, import_path5.join)(AGENTS_DIR2, agentId, "reflection-state.json");
|
|
288
288
|
}
|
|
289
289
|
function readSelf(agentId) {
|
|
290
|
-
const
|
|
291
|
-
if (!(0, import_fs5.existsSync)(
|
|
292
|
-
const raw = (0, import_fs5.readFileSync)(
|
|
290
|
+
const path13 = selfPath(agentId);
|
|
291
|
+
if (!(0, import_fs5.existsSync)(path13)) return null;
|
|
292
|
+
const raw = (0, import_fs5.readFileSync)(path13, "utf-8");
|
|
293
293
|
if (!raw.trim()) return null;
|
|
294
294
|
const lines = raw.split("\n");
|
|
295
295
|
let version = 0;
|
|
@@ -330,10 +330,10 @@ ${content}
|
|
|
330
330
|
logActivity(agentId, "self-updated", { meta: { version } });
|
|
331
331
|
}
|
|
332
332
|
function readReflectionState(agentId) {
|
|
333
|
-
const
|
|
334
|
-
if (!(0, import_fs5.existsSync)(
|
|
333
|
+
const path13 = reflectionStatePath(agentId);
|
|
334
|
+
if (!(0, import_fs5.existsSync)(path13)) return null;
|
|
335
335
|
try {
|
|
336
|
-
const parsed = JSON.parse((0, import_fs5.readFileSync)(
|
|
336
|
+
const parsed = JSON.parse((0, import_fs5.readFileSync)(path13, "utf-8"));
|
|
337
337
|
const lastProcessedJournalId = typeof parsed?.lastProcessedJournalId === "string" && parsed.lastProcessedJournalId.trim() ? parsed.lastProcessedJournalId.trim() : null;
|
|
338
338
|
const updatedAt = typeof parsed?.updatedAt === "string" && parsed.updatedAt.trim() ? parsed.updatedAt : (/* @__PURE__ */ new Date()).toISOString();
|
|
339
339
|
return { lastProcessedJournalId, updatedAt };
|
|
@@ -451,9 +451,9 @@ function ensureAgentDir(agentId) {
|
|
|
451
451
|
}
|
|
452
452
|
}
|
|
453
453
|
function readJournalLines(agentId) {
|
|
454
|
-
const
|
|
455
|
-
if (!(0, import_fs6.existsSync)(
|
|
456
|
-
return (0, import_fs6.readFileSync)(
|
|
454
|
+
const path13 = journalPath(agentId);
|
|
455
|
+
if (!(0, import_fs6.existsSync)(path13)) return [];
|
|
456
|
+
return (0, import_fs6.readFileSync)(path13, "utf-8").split("\n").filter((l) => l.trim());
|
|
457
457
|
}
|
|
458
458
|
function parseMaxSeq(agentId, lines) {
|
|
459
459
|
let maxSeq = 0;
|
|
@@ -564,10 +564,10 @@ I am ${agentId}. ${seed}
|
|
|
564
564
|
}
|
|
565
565
|
}
|
|
566
566
|
function readIdentity(agentId) {
|
|
567
|
-
const
|
|
568
|
-
if (!(0, import_fs7.existsSync)(
|
|
567
|
+
const path13 = (0, import_path7.join)(AGENTS_DIR4, agentId, "identity.json");
|
|
568
|
+
if (!(0, import_fs7.existsSync)(path13)) return null;
|
|
569
569
|
try {
|
|
570
|
-
return JSON.parse((0, import_fs7.readFileSync)(
|
|
570
|
+
return JSON.parse((0, import_fs7.readFileSync)(path13, "utf-8"));
|
|
571
571
|
} catch {
|
|
572
572
|
return null;
|
|
573
573
|
}
|
|
@@ -8971,6 +8971,111 @@ function commandExists(bin) {
|
|
|
8971
8971
|
}
|
|
8972
8972
|
}
|
|
8973
8973
|
|
|
8974
|
+
// ../agx-cloud/lib/scheduled-task-skill.ts
|
|
8975
|
+
var import_node_fs2 = __toESM(require("node:fs"));
|
|
8976
|
+
var import_node_os2 = __toESM(require("node:os"));
|
|
8977
|
+
var import_node_path2 = __toESM(require("node:path"));
|
|
8978
|
+
var SCHEDULED_TASK_SKILL_ID = "scheduled-task-manager";
|
|
8979
|
+
function toDisplayPath(value) {
|
|
8980
|
+
return value.replace(/\\/g, "/");
|
|
8981
|
+
}
|
|
8982
|
+
function resolveAgxDataDir(explicitDir) {
|
|
8983
|
+
const trimmed = explicitDir?.trim();
|
|
8984
|
+
if (trimmed) return trimmed;
|
|
8985
|
+
const configured = process.env.AGX_DATA_DIR?.trim();
|
|
8986
|
+
if (configured) return configured;
|
|
8987
|
+
return import_node_path2.default.join(import_node_os2.default.homedir(), ".agx");
|
|
8988
|
+
}
|
|
8989
|
+
function resolveWorkspaceRoot(explicitRoot) {
|
|
8990
|
+
const trimmed = explicitRoot?.trim();
|
|
8991
|
+
if (trimmed) return trimmed;
|
|
8992
|
+
return process.cwd();
|
|
8993
|
+
}
|
|
8994
|
+
function getScheduledTaskSkillPath(options = {}) {
|
|
8995
|
+
return import_node_path2.default.join(
|
|
8996
|
+
resolveAgxDataDir(options.agxDataDir),
|
|
8997
|
+
"skills",
|
|
8998
|
+
SCHEDULED_TASK_SKILL_ID,
|
|
8999
|
+
"SKILL.md"
|
|
9000
|
+
);
|
|
9001
|
+
}
|
|
9002
|
+
function buildScheduledTaskSkillContent(options = {}) {
|
|
9003
|
+
const workspaceRoot = resolveWorkspaceRoot(options.workspaceRoot);
|
|
9004
|
+
const specPath = toDisplayPath(import_node_path2.default.join(workspaceRoot, "planning", "automation-frontmatter-migration-spec.md"));
|
|
9005
|
+
const automationsDir = toDisplayPath(import_node_path2.default.join(workspaceRoot, "src", "automations"));
|
|
9006
|
+
const promptSchedulerDir = toDisplayPath(import_node_path2.default.join(workspaceRoot, "src", "prompt-scheduler"));
|
|
9007
|
+
const graphScheduleRunnerPath = toDisplayPath(import_node_path2.default.join(workspaceRoot, "src", "graph", "schedule-runner.ts"));
|
|
9008
|
+
const graphStorePath = toDisplayPath(import_node_path2.default.join(workspaceRoot, "src", "graph", "store.ts"));
|
|
9009
|
+
const automationsRoutePath = toDisplayPath(import_node_path2.default.join(workspaceRoot, "app", "api", "automations", "route.ts"));
|
|
9010
|
+
const promptJobsRoutePath = toDisplayPath(import_node_path2.default.join(workspaceRoot, "app", "api", "prompt-jobs", "route.ts"));
|
|
9011
|
+
return `---
|
|
9012
|
+
name: scheduled-task-manager
|
|
9013
|
+
description: Use when creating, editing, migrating, debugging, or reviewing AGX scheduled tasks, automations, prompt jobs, execution graph schedules, or frontmatter-backed automation definitions.
|
|
9014
|
+
---
|
|
9015
|
+
|
|
9016
|
+
# Scheduled Task Manager
|
|
9017
|
+
|
|
9018
|
+
Use this skill whenever the task touches scheduled tasks, automations, prompt jobs, execution graph schedules, or automation frontmatter.
|
|
9019
|
+
|
|
9020
|
+
## Read First
|
|
9021
|
+
|
|
9022
|
+
- [automation-frontmatter-migration-spec](${specPath})
|
|
9023
|
+
- Shared automation model lives in [src/automations](${automationsDir})
|
|
9024
|
+
- Prompt-job scheduling lives in [src/prompt-scheduler](${promptSchedulerDir})
|
|
9025
|
+
- Execution-graph scheduling flows through [schedule-runner.ts](${graphScheduleRunnerPath}) and [store.ts](${graphStorePath})
|
|
9026
|
+
- API entry points are [app/api/automations/route.ts](${automationsRoutePath}) and [app/api/prompt-jobs/route.ts](${promptJobsRoutePath})
|
|
9027
|
+
|
|
9028
|
+
## Guardrails
|
|
9029
|
+
|
|
9030
|
+
- Reject malformed frontmatter. Do not coerce invalid enum values into defaults.
|
|
9031
|
+
- Preserve stable automation ids. Renaming a task must not create a new id.
|
|
9032
|
+
- Keep runtime state such as last run, next run, and archival flags out of frontmatter unless the spec explicitly says otherwise.
|
|
9033
|
+
- Preserve sub-minute scheduled cadences when they are represented as \`intervalMs\`.
|
|
9034
|
+
- For \`execution_graph\` targets, keep \`graphId\` and \`taskId\` resolution correct. Do not assume \`definition.id === taskId\`.
|
|
9035
|
+
- Updating an automation definition should advance user-visible \`updatedAt\`.
|
|
9036
|
+
- Avoid eager file-backed repository initialization on request paths that should stay lazy or rollout-gated.
|
|
9037
|
+
- Keep parser and serializer behavior round-trippable unless the spec explicitly requires normalization.
|
|
9038
|
+
|
|
9039
|
+
## Working Pattern
|
|
9040
|
+
|
|
9041
|
+
1. Read the migration spec before changing storage, rollout, or validation behavior.
|
|
9042
|
+
2. Trace the full path: parser -> validation -> repository -> scheduler -> API.
|
|
9043
|
+
3. Add or update regression tests for parsing, serialization, due selection, and the affected API or runtime path.
|
|
9044
|
+
4. Prefer small fixes in the shared automation layer over duplicating logic in adapters.
|
|
9045
|
+
|
|
9046
|
+
## Validation Checklist
|
|
9047
|
+
|
|
9048
|
+
- Scheduled triggers keep \`cronExpr\`, \`cadence\`, and sub-minute \`intervalMs\` semantics intact.
|
|
9049
|
+
- Condition triggers validate required fields and reject unsupported polling intervals.
|
|
9050
|
+
- Target-specific required fields are enforced.
|
|
9051
|
+
- Invalid definitions fail closed and are excluded instead of silently rewritten.
|
|
9052
|
+
- Prompt-job and execution-graph adapters preserve the same runtime meaning before and after frontmatter serialization.
|
|
9053
|
+
`;
|
|
9054
|
+
}
|
|
9055
|
+
function ensureScheduledTaskSkillInstalled(options = {}) {
|
|
9056
|
+
const skillPath = getScheduledTaskSkillPath(options);
|
|
9057
|
+
const skillContent = buildScheduledTaskSkillContent(options);
|
|
9058
|
+
try {
|
|
9059
|
+
import_node_fs2.default.mkdirSync(import_node_path2.default.dirname(skillPath), { recursive: true });
|
|
9060
|
+
const existing = import_node_fs2.default.existsSync(skillPath) ? import_node_fs2.default.readFileSync(skillPath, "utf8") : null;
|
|
9061
|
+
if (existing !== skillContent) {
|
|
9062
|
+
import_node_fs2.default.writeFileSync(skillPath, skillContent, "utf8");
|
|
9063
|
+
}
|
|
9064
|
+
} catch (error) {
|
|
9065
|
+
console.warn("[scheduled-task-skill] Failed to install skill:", error);
|
|
9066
|
+
}
|
|
9067
|
+
return skillPath;
|
|
9068
|
+
}
|
|
9069
|
+
function buildScheduledTaskSkillPromptContext(options = {}) {
|
|
9070
|
+
const skillPath = ensureScheduledTaskSkillInstalled(options);
|
|
9071
|
+
return [
|
|
9072
|
+
"<scheduled-task-skill>",
|
|
9073
|
+
`Path: ${toDisplayPath(skillPath)}`,
|
|
9074
|
+
"Read this skill whenever the task involves scheduled tasks, automations, prompt jobs, execution graph schedules, or frontmatter-backed automation definitions.",
|
|
9075
|
+
"</scheduled-task-skill>"
|
|
9076
|
+
].join("\n");
|
|
9077
|
+
}
|
|
9078
|
+
|
|
8974
9079
|
// ../agx-cloud/lib/cli-runner.ts
|
|
8975
9080
|
var isNonEmptyString = (value) => typeof value === "string" && value.trim().length > 0;
|
|
8976
9081
|
var createRawParser = (onDelta) => ({
|
|
@@ -9505,18 +9610,12 @@ async function runCliResponse({
|
|
|
9505
9610
|
const cleaned = sanitize(chunk);
|
|
9506
9611
|
if (cleaned) onDelta(cleaned);
|
|
9507
9612
|
};
|
|
9508
|
-
const
|
|
9509
|
-
|
|
9510
|
-
|
|
9511
|
-
|
|
9512
|
-
|
|
9513
|
-
|
|
9514
|
-
${self}
|
|
9515
|
-
</self>`);
|
|
9516
|
-
if (skills) systemParts.push(`<skills>
|
|
9517
|
-
${skills}
|
|
9518
|
-
</skills>`);
|
|
9519
|
-
const systemPrompt = systemParts.length > 0 ? systemParts.join("\n\n") : void 0;
|
|
9613
|
+
const systemPrompt = buildCliSystemPrompt({
|
|
9614
|
+
identity,
|
|
9615
|
+
self,
|
|
9616
|
+
skills,
|
|
9617
|
+
systemContext
|
|
9618
|
+
});
|
|
9520
9619
|
const attempts = buildCliAttempts({
|
|
9521
9620
|
provider,
|
|
9522
9621
|
model,
|
|
@@ -9576,6 +9675,26 @@ ${skills}
|
|
|
9576
9675
|
}
|
|
9577
9676
|
throw lastError || new Error("CLI execution failed.");
|
|
9578
9677
|
}
|
|
9678
|
+
function buildCliSystemPrompt({
|
|
9679
|
+
identity,
|
|
9680
|
+
self,
|
|
9681
|
+
skills,
|
|
9682
|
+
systemContext
|
|
9683
|
+
}) {
|
|
9684
|
+
const systemParts = [];
|
|
9685
|
+
if (systemContext) systemParts.push(systemContext);
|
|
9686
|
+
systemParts.push(buildScheduledTaskSkillPromptContext());
|
|
9687
|
+
if (identity) systemParts.push(`<identity>
|
|
9688
|
+
${identity}
|
|
9689
|
+
</identity>`);
|
|
9690
|
+
if (self) systemParts.push(`<self>
|
|
9691
|
+
${self}
|
|
9692
|
+
</self>`);
|
|
9693
|
+
if (skills) systemParts.push(`<skills>
|
|
9694
|
+
${skills}
|
|
9695
|
+
</skills>`);
|
|
9696
|
+
return systemParts.length > 0 ? systemParts.join("\n\n") : void 0;
|
|
9697
|
+
}
|
|
9579
9698
|
|
|
9580
9699
|
// ../agx-cloud/lib/memory-extractor.ts
|
|
9581
9700
|
init_sqlite_query_adapter();
|
|
@@ -11325,11 +11444,11 @@ function appendReaction(agentId, targetEntry, type) {
|
|
|
11325
11444
|
init_activity();
|
|
11326
11445
|
|
|
11327
11446
|
// ../agx-cloud/lib/agent-skill-bindings.ts
|
|
11328
|
-
var
|
|
11447
|
+
var import_node_fs3 = __toESM(require("node:fs"));
|
|
11329
11448
|
init_sqlite_query_adapter();
|
|
11330
11449
|
|
|
11331
11450
|
// ../agx-cloud/lib/skills-library.ts
|
|
11332
|
-
var
|
|
11451
|
+
var import_node_path3 = __toESM(require("node:path"));
|
|
11333
11452
|
var import_node_child_process = require("node:child_process");
|
|
11334
11453
|
init_sqlite_query_adapter();
|
|
11335
11454
|
var SKILLS_CACHE_TTL = 60 * 60 * 1e3;
|
|
@@ -11351,7 +11470,7 @@ function skillAgentName(provider) {
|
|
|
11351
11470
|
return null;
|
|
11352
11471
|
}
|
|
11353
11472
|
function installedSkillPath(skillId) {
|
|
11354
|
-
return
|
|
11473
|
+
return import_node_path3.default.join(process.cwd(), ".agents", "skills", skillId, "SKILL.md");
|
|
11355
11474
|
}
|
|
11356
11475
|
function recordSkillHistory(input) {
|
|
11357
11476
|
const db2 = getSQLiteDb();
|
|
@@ -11477,7 +11596,7 @@ function resolveBoundSkillFiles(bindings, prompt, provider) {
|
|
|
11477
11596
|
for (const binding of bindings) {
|
|
11478
11597
|
if (!isBindingRelevant(binding, prompt)) continue;
|
|
11479
11598
|
const file = installedSkillPath(binding.skillId);
|
|
11480
|
-
if (!
|
|
11599
|
+
if (!import_node_fs3.default.existsSync(file)) {
|
|
11481
11600
|
const installResult = installSkill({
|
|
11482
11601
|
repo: binding.repo,
|
|
11483
11602
|
skillId: binding.skillId,
|