@mndrk/agx 2.0.56 → 2.1.0
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/apps/local/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/apps/local/.next/app-path-routes-manifest.json +2 -0
- package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/routes-manifest.json +15 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js +4 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/create/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/create/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/daemon/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/daemon/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/analyze/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/analyze/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js +2 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/context/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/options/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/scripted/route.js +5 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/scripted/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route/build-manifest.json +9 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route.js +13 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route_client-reference-manifest.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/[noteId]/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/[noteId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/route.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js +14 -13
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/validate/route.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/validate/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route/build-manifest.json +9 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js +28 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route_client-reference-manifest.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/route.js +9 -5
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/cancel/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/cancel/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/runs/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/runs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js +16 -15
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/route.js +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/pause/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js +5 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/terminal/sessions/[id]/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/terminal/sessions/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.rsc +14 -14
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_full.segment.rsc +14 -14
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page/react-loadable-manifest.json +6 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app-paths-manifest.json +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/0jps_app_api_projects_[id]_objectives_[objectiveId]_worker_route_actions_0v8q3zz.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[externals]__0_au5u1._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[externals]__13x93ar._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0_10qfd._.js → [root-of-the-server]__0.6yz1u._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__01lsgl~._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0205scg._.js → [root-of-the-server]__03.9arn._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__03h0gqp._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08jo91s._.js +9 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0o315az._.js → [root-of-the-server]__09j9jpf._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0-nye63._.js → [root-of-the-server]__09jghbu._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0_7hiof._.js +43 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0.jam.l._.js → [root-of-the-server]__0a0cq38._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0asvfdo._.js +54 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0c86535._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0cj1krd._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0aa-88e._.js → [root-of-the-server]__0dy3h2i._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0touqng._.js → [root-of-the-server]__0e8-2k_._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0enhv5p._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0f9byr.._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0t2jk2r._.js → [root-of-the-server]__0g7hc1-._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g7p6pw._.js +55 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__019q25b._.js → [root-of-the-server]__0gj~dap._.js} +7 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0e6cj2y._.js → [root-of-the-server]__0hc45jw._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hkcw03._.js +49 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hmw36u._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0l53ok5._.js +54 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0n.momw._.js +8 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0tjo9we._.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0-~t2br._.js → [root-of-the-server]__0v7jjvl._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0x6w64i._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__11nke7t._.js → [root-of-the-server]__0y3qxv1._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__10z8f9h._.js → [root-of-the-server]__0ygidxe._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0z82z0-._.js +49 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0zsv-tb._.js +8 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0~nnfjr._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0~x4jbk._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10d.dhd._.js +229 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__12qy318._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_039.xxy._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_06oeti1._.js +49 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0dyy7h.._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0gi7c9x._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0gr.psg._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0sd8z0i._.js +21 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0y42h_~._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0~ah49q._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_01kqgle._.js +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_06qet8g._.js +36 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0_0m2ly._.js +397 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0_a~bj0._.js +25 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0a15wtk._.js +397 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0bjdpen._.js +29 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0fr1qq6._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0g.q2r6._.js +41 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0h7wd0e._.js +29 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0i7fs.i._.js +397 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0ipg-p6._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0npxy21._.js +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0uhfa93._.js +21 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_12wpldq._.js +25 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_linear_worker_route_actions_116303i.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_01hd2_5._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_01pvj2g._.js +34 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0ik933l._.js +55 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0o1v.j4._.js +79 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0pxj122._.js +55 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_automations_index_ts_0_8ch28._.js +10 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_082u-ls._.js +41 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_0.xgxyl._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_0yu3--n._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_0ze8hzc._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_get-store_ts_0p0aod1._.js +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_linear-worker_ts_0ycjwem._.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0gips_c.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0u_5kfo.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_0tvwux2._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_icons_0hvpc.y._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__006vr7.._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0d18x53._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0j9m72.._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__02.r909._.js → [root-of-the-server]__0n5g8ml._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0w.zmt6._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0w1mm2j._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0z7nw_r._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__10h_7t0._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__13h-0om._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_00trrg8._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ejzn1e._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0wk3skw._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yeuuy1._.js +25 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_075cq2j._.js → apps_local_0k4~c1x._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0t6p.qm._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_0_4hk8x._.js → apps_local_0v~bvwg._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_[id]_page_tsx_06n47n~._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_graph_[taskId]_page_tsx_0bctfd-._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_linear_page_tsx_0a~n5y8._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_0kcaeqi._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_new_page_tsx_0yqd0a5._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_page_tsx_06czvz-._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_terminal_page_tsx_01n9qk.._.js +12 -12
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_orphans_page_tsx_0sdv.11._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_setup_page_tsx_0ql2qmr._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_PromptJobBoard_tsx_06zob36._.js +8 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_0k4tfip._.js +6 -6
- package/cloud-runtime/standalone/apps/local/.next/server/functions-config-manifest.json +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/middleware-build-manifest.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/003q-y3exxalk.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/00po4v2x~0x_z.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/013gtut17~fne.js +23 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/014z_yruiincl.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/041-dhls9zkl1.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/04yoml2rqnuot.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0_mrpyqcoyb_5.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{11-u35xqxu~i-.js → 0aewbg0i704w7.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{08~pgzjb13k_v.js → 0dnw31436wd~..js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0jonp-o8lh-4j.js → 0e307b-0c2jbx.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0edewt9l~cs~k.css +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0o9cxba_5mv2c.js → 0fonouj2i9qnb.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0gj98094p~zn4.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jrkacz_dyem6.js +37 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{02zcxdul-1jaf.js → 0mig99af4~uos.js} +3 -3
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0pdrpsy-zdxp0.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p~l5ap6qqx2o.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0stvi5btlxl4m.js +20 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0rey9zfvm3yhd.js → 0tt1oh112yv-l.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0w94x-v00osq0.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0mvqoz13v0o2a.js → 0wh6p5~ft5rma.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0zw85-xl9ysjs.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{00lise4d-u8d1.js → 1011~1x9nj4ny.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/119v0-idpg-cv.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/11l2tww5f0hsk.js +20 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/16d~es6h6k~rj.js +6 -0
- package/cloud-runtime/standalone/apps/local/app/agents/[id]/page.tsx +40 -5
- package/cloud-runtime/standalone/apps/local/app/api/agents/[id]/profile/route.ts +10 -0
- package/cloud-runtime/standalone/apps/local/app/api/linear/worker/route.ts +151 -0
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/route.ts +0 -8
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.ts +6 -27
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/worker/route.ts +89 -0
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/route.ts +13 -0
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/search/route.ts +4 -4
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/route.ts +5 -3
- package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/route.ts +7 -4
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/new/page.tsx +236 -10
- package/cloud-runtime/standalone/apps/local/app/setup/page.tsx +9 -1
- package/cloud-runtime/standalone/apps/local/components/FloatingPanel.tsx +36 -8
- package/cloud-runtime/standalone/apps/local/components/LinearBoard.tsx +53 -24
- package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +73 -0
- package/cloud-runtime/standalone/apps/local/components/graph/NodeDetailPanel.tsx +17 -12
- package/cloud-runtime/standalone/apps/local/components/linear/LinearSettingsModal.tsx +105 -0
- package/cloud-runtime/standalone/apps/local/components/linear/LinearWorkerConfig.tsx +367 -0
- package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveHealthTrend.tsx +215 -0
- package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +170 -46
- package/cloud-runtime/standalone/apps/local/components/projects/ProjectHome.tsx +8 -2
- package/cloud-runtime/standalone/apps/local/components/projects/ProjectObjectivesWorkspace.tsx +211 -368
- package/cloud-runtime/standalone/apps/local/components/projects/RecentlyCompletedCard.tsx +213 -0
- package/cloud-runtime/standalone/apps/local/components/projects/TeamsView.tsx +121 -6
- package/cloud-runtime/standalone/apps/local/components/scheduling/ScheduleConditionPicker.tsx +1 -1
- package/cloud-runtime/standalone/apps/local/components/setup/McpSetupStep.tsx +242 -0
- package/cloud-runtime/standalone/apps/local/components/setup/ProjectStep.tsx +2 -2
- package/cloud-runtime/standalone/apps/local/components/setup/ProviderStep.tsx +1 -1
- package/cloud-runtime/standalone/apps/local/components/setup/TeamsStep.tsx +288 -15
- package/cloud-runtime/standalone/apps/local/components/terminal/ProjectTerminal.tsx +24 -14
- package/cloud-runtime/standalone/apps/local/hooks/useSetupFlow.ts +16 -2
- package/cloud-runtime/standalone/apps/local/lib/objective-health-history.ts +198 -0
- package/cloud-runtime/standalone/apps/local/lib/project-objective-context.ts +10 -0
- package/cloud-runtime/standalone/apps/local/lib/project-objectives.ts +0 -9
- package/cloud-runtime/standalone/apps/local/skills-lock.json +20 -0
- package/cloud-runtime/standalone/apps/local/src/automations/adapters.ts +5 -0
- package/cloud-runtime/standalone/apps/local/src/automations/types.ts +5 -0
- package/cloud-runtime/standalone/apps/local/src/automations/validation.ts +12 -5
- package/cloud-runtime/standalone/apps/local/src/objectives/parser.ts +0 -2
- package/cloud-runtime/standalone/apps/local/src/objectives/serializer.ts +0 -2
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/linear-worker-constants.ts +38 -0
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/linear-worker-job.ts +47 -0
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/linear-worker.ts +482 -0
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/objective-worker-job.ts +47 -0
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/objective-worker.ts +511 -0
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/processor.ts +51 -417
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/store.ts +19 -4
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/types.ts +12 -8
- package/cloud-runtime/standalone/apps/local/state/terminalTabs.ts +182 -106
- package/cloud-runtime/standalone/apps/local/worker/index.js +12 -13
- package/package.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0-0479y._.js +0 -54
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08oj_ky._.js +0 -49
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08y2lkj._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__09joc_o._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g50c6p._.js +0 -237
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0gtv0rq._.js +0 -8
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ksbs9p._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0pz~m67._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0q93mk3._.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0tdixb0._.js +0 -49
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0vhcrdv._.js +0 -229
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0xdp_8-._.js +0 -237
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__11s20j6._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__12xhcor._.js +0 -54
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_01rag2f._.js +0 -49
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_03y4xss._.js +0 -21
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0cm4i3i._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0ijzgnb._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0~fjhfa._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_12yasaj._.js +0 -9
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_03q7_.q._.js +0 -21
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0m3e2d~._.js +0 -30
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0r-oiga._.js +0 -30
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_00cwfvi._.js +0 -34
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0hx7xyz._.js +0 -34
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0rqcat4._.js +0 -55
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0sc_lek._.js +0 -79
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_135ddsu._.js +0 -55
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_store_ts_0h.2qy9._.js +0 -43
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_processor_ts_022nz2u._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_processor_ts_0i1av_r._.js +0 -475
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0yvelwy.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_0qzjdog._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_icons_0a-mbbj._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__07johgg._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0bf346q._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0r3w68h._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0x7k~pk._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0y8j6el._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0yme9fy._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0~7q5sw._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__13eqcxp._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_09~glsn._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0n80y4_._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ndrb_0._.js +0 -8
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ut3k~7._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0vibfch._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yffwm4._.js +0 -8
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_04hvzn_._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0.4d8rshxivwh.js +0 -20
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/02p3n7faotpr9.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/051-7k0nnm-vm.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/055bzj5jfgzr0.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/05c-~4v_jrblf.css +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/09wzd7y~tk-3~.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0brmd4~76pthy.js +0 -20
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0hudzktaaxr4g.js +0 -6
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0hzq698w6f4m6.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0i.su2yr26wb6.js +0 -37
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jsbvcyub73d9.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0l2pt2td_87wr.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p7s38p3bcffh.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0q2dgbluvgxf2.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ucg8e2wkd8gf.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/104xjvrf6y-zq.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/15jlly_p-g4c8.js +0 -6
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/16nozeadjid9-.js +0 -5
- /package/cloud-runtime/standalone/apps/local/.next/static/{fPVnk_kTRzrxXr7U3TRFW → RnYHmEXBwXJjVrVVx2CuP}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{fPVnk_kTRzrxXr7U3TRFW → RnYHmEXBwXJjVrVVx2CuP}/_clientMiddlewareManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{fPVnk_kTRzrxXr7U3TRFW → RnYHmEXBwXJjVrVVx2CuP}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
module.exports=[309113,e=>{"use strict";var t=e.i(902157),r=e.i(750227),s=e.i(660526);let n=new Set(["running","working"]),a=`Review the thread, assess whether the work is complete enough to move into review, and if not, produce one concise steering message that combines:
|
|
2
|
+
1. what has been accomplished vs. what remains
|
|
3
|
+
2. the concrete next steps needed to move toward shipping`,o=`You MUST respond with ONLY a JSON object, no markdown fences, no extra text:
|
|
4
|
+
{"isDone": true/false, "message": "your assessment"}
|
|
5
|
+
|
|
6
|
+
Set isDone=true only when the thread is genuinely ready to stop ship mode and move into review.
|
|
7
|
+
If isDone=false, message must be a single concise steering note with both status and next steps.
|
|
8
|
+
The message must not be empty.`;function i(){try{let e=(0,r.join)((0,s.homedir)(),".agx","config.json");return JSON.parse((0,t.readFileSync)(e,"utf8")).defaultProvider??"claude"}catch{return"claude"}}function u(e){switch(e){case"claude":case"gemini":case"ollama":case"codex":case"zai":return e;default:return"claude"}}async function d(t,r){try{let[{getSQLiteDb:s},{loadDbParticipants:n}]=await Promise.all([e.A(729130),e.A(292939)]),a=s(),o=a.prepare(`SELECT pt.project_id AS project_id
|
|
9
|
+
FROM project_threads pt
|
|
10
|
+
WHERE pt.thread_id = ?
|
|
11
|
+
ORDER BY pt.created_at ASC
|
|
12
|
+
LIMIT 1`).get(t);if(!o?.project_id)return{provider:u(i()),model:null};let d=function(t,r,s){if(!s)return null;try{let{parseFrontmatter:n}=e.r(623775),a=t.prepare("SELECT content FROM tasks WHERE id = ? LIMIT 1").get(s);if(!a?.content)return null;let{frontmatter:o}=n(a.content),i="string"==typeof o.team?o.team.trim():"";if(!i)return null;let u=t.prepare("SELECT id FROM teams WHERE project_id = ? AND name = ? LIMIT 1").get(r,i);if(!u?.id)return null;let d=t.prepare("SELECT agent_id FROM team_agents WHERE team_id = ? ORDER BY routing_order ASC LIMIT 1").get(u.id);return d?.agent_id??null}catch{return null}}(a,o.project_id,r)??a.prepare(`SELECT agent_id
|
|
13
|
+
FROM project_agents
|
|
14
|
+
WHERE project_id = ?
|
|
15
|
+
ORDER BY routing_order ASC, created_at ASC
|
|
16
|
+
LIMIT 1`).get(o.project_id)?.agent_id;if(!d)return{provider:u(i()),model:null};let l=(await n()).find(e=>e.id===d);if(!l)return{provider:u(i()),model:null};return{provider:u(l.provider),model:l.model}}catch{return{provider:u(i()),model:null}}}e.s(["createDispatchWork",0,function(){return async(t,r)=>{let s=r.schedule?.rootMessageId;if(!s)return{status:"failure",message:"No rootMessageId on graph schedule"};console.log(`[work-dispatch] Dispatching steer node "${t.title}" for graph ${r.id} (root: ${s})`);try{let i,{getMessageThread:u,getThreadStatusSnapshot:l,sweepStaleWorkingReactions:c}=await e.A(891284),p=await u(s);if(!p)return{status:"failure",message:`Thread not found for rootMessageId: ${s}`};await c(p.threadId);let m=await l({threadId:p.threadId,rootMessageId:s}),g=m.processes.filter(e=>n.has(e.status)).length,h=m.rootMessage?.threadStatus??"active",f=m.processes.slice(0,8).map(e=>{let t=[`${e.agent}: ${e.status}`];return e.responseTo&&t.push(`replying to "${e.responseTo.slice(0,140)}"`),e.responseContent&&t.push(`latest response "${e.responseContent.slice(0,140)}"`),`- ${t.join(" | ")}`}).join("\n"),S=(m.messages??[]).slice(-15).map(e=>{let t=e.participantId??e.role??"?",r=(e.content??"").slice(0,600);return`[${t}]: ${r}`}).join("\n");console.log(`[work-dispatch] Thread: active=${g}, msgs=${m.messages?.length??0}`);let _=["--- THREAD STATE ---",`Root request: ${m.rootMessage?.content??"(missing root message)"}`,`Thread status: ${h}`,`Active agents: ${g}`,`Total messages: ${m.messages?.length??0}`,m.lastUpdatedAt?`Last updated at: ${new Date(m.lastUpdatedAt).toISOString()}`:null,"","Current process state:",f||"- none","","Recent messages:",S||"- none","--- END THREAD STATE ---","","Assess the progress and respond with the JSON object."].filter(Boolean).join("\n"),{runCliResponse:w}=await e.A(224472),E=await d(p.threadId,r.taskId);console.log(`[work-dispatch] Calling ${E.provider} via runCliResponse (prompt length: ${_.length})...`);let I="";await w({provider:E.provider,model:E.model,prompt:_,systemContext:(i=t.description?.trim()||a,`${i}
|
|
17
|
+
|
|
18
|
+
${o}`),onDelta:e=>{I+=e},onLog:(e,t)=>{console.log(`[work-dispatch] [${e}] ${t}`)}}),console.log(`[work-dispatch] Raw response: ${I.slice(0,500)}`);let R=function(e){let t=e.match(/\{[\s\S]*?"isDone"\s*:\s*(true|false)[\s\S]*?\}/);if(t)try{let e=JSON.parse(t[0]),r=String(e.message??"").trim();if(!r)return{ok:!1,error:"Ship mode response JSON did not include a non-empty message."};return{ok:!0,value:{isDone:!!e.isDone,message:r}}}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}return{ok:!1,error:"Ship mode response was not valid JSON with isDone/message fields."}}(I.trim());if(!R.ok)return{status:"failure",transient:!1,message:R.error};return console.log("[work-dispatch] Parsed result:",R),{status:"success",output:R.value}}catch(e){return console.error("[work-dispatch] Steer dispatch failed:",e),{status:"failure",message:e instanceof Error?e.message:String(e),error:e}}}}])},251642,e=>{"use strict";var t=e.i(633211),r=e.i(929160),s=e.i(623775),n=e.i(341902),a=e.i(733545),o=e.i(864075);async function i(e,u,d=[]){let l,c,p,m,g=new Set;for(let t of(e&&g.add(e),u))t&&g.add(t);if(0===g.size)return;let h=await Promise.all(Array.from(g).map(async e=>{try{let t=await r.db.getProjectWithRepos(e,o.LOCAL_USER.id);return[e,t]}catch(t){return console.warn("Failed to load project context",{slug:e,error:t}),[e,null]}})),f=new Map;for(let[e,t]of h)t&&f.set(e,t);let S=e?f.get(e):void 0,_=u.map(e=>f.get(e)).filter(e=>!!e).map(e=>({id:e.id,slug:e.slug,name:e.name,description:e.description??null,ciCdInfo:e.ci_cd_info??null,workflowId:e.workflow_id??null,repos:(e.repos??[]).map(e=>({name:e.name,path:e.path??null,notes:e.notes??null}))}));if(S||0!==_.length){if(S)try{let[e,r]=await Promise.all([(0,s.getProjectSkills)(S.id),(0,s.getProjectMemory)(S.id,"human")]),o=(0,a.getKnowledgeNote)("project",S.id);e.length>0&&(l=e.map(e=>({file:e.file,...e.condition?{condition:e.condition}:{}}))),r.length>0&&(c=r.map(e=>({content:e.content,...e.source?{source:e.source}:{}}))),o?.content&&(c=[...c??[],{content:o.content,source:"system-note"}]);let i=(function(e){let t=[];for(let r of e){if(!r.id){let e=String(r.notes??"").trim();if(!e)continue;t.push({repoId:"",repoName:r.name,path:r.path??null,content:e,producer:"human"});continue}let e=n.vaultStore.getKnowledgeNote("repo",r.id),s=e?.content.trim()||String(r.notes??"").trim();s&&t.push({repoId:r.id,repoName:r.name,path:r.path??null,content:s,producer:"human"})}return t})(S.repos??[]).map(e=>({repoName:e.repoName,path:e.path??null,content:"system"===e.producer?`[System-generated] ${e.content}`:e.content}));if(i.length>0&&(p=i),d.length>0){let e=(0,t.getSQLiteDb)();for(let t of(m={},d)){let r=e.prepare("SELECT id, content FROM agent_memory WHERE agent_id = ? ORDER BY created_at DESC LIMIT 20").all(t.id);m[t.id]=await (0,s.buildExecutionProvenance)(t.id,S.id,t.skills??[],r)}}}catch(e){console.warn("Failed to load project resources",{projectId:S.id,error:e})}return{activeProject:S?{id:S.id,slug:S.slug,name:S.name}:void 0,mentionedProjects:_.length>0?_:void 0,skills:l,memory:c,repoKnowledge:p,provenanceByAgentId:m}}}e.s(["normalizeProjectSlug",0,function(e){return"string"!=typeof e?"":e.trim().toLowerCase()},"resolveProjectContext",0,i],251642)},462919,e=>{"use strict";e.s(["createDispatchFunction",()=>S],462919);var t=e.i(233405),r=e.i(864075),s=e.i(133439),n=e.i(251642),a=e.i(47973),o=e.i(202322),i=e.i(295851),u=e.i(796283);let d=new Set(["running","working"]);function l(e,t){let r="string"==typeof e.args?.rootMessageId?e.args.rootMessageId.trim():"";return r||(t.schedule?.rootMessageId?.trim()??"")}function c(e){return e.replace(/\s+/g," ").trim()}async function p(t,r){try{let{getSQLiteDb:s}=await e.A(729130),n=s(),a=n.prepare(`SELECT pt.project_id AS project_id, p.slug AS project_slug
|
|
19
|
+
FROM project_threads pt
|
|
20
|
+
JOIN projects p ON p.id = pt.project_id
|
|
21
|
+
WHERE pt.thread_id = ?
|
|
22
|
+
ORDER BY pt.created_at ASC
|
|
23
|
+
LIMIT 1`).get(t);if(!a?.project_id)return{projectSlug:null,projectAgentIds:[]};let o=function(t,r,s){if(!s)return null;try{let{parseFrontmatter:n}=e.r(623775),a=t.prepare("SELECT content FROM tasks WHERE id = ? LIMIT 1").get(s);if(!a?.content)return null;let{frontmatter:o}=n(a.content),i="string"==typeof o.team?o.team.trim():"";if(!i)return null;let u=t.prepare("SELECT id FROM teams WHERE project_id = ? AND name = ? LIMIT 1").get(r,i);if(!u?.id)return null;let d=t.prepare("SELECT agent_id FROM team_agents WHERE team_id = ? ORDER BY routing_order ASC").all(u.id);if(0===d.length)return null;return d.map(e=>e.agent_id?.trim()).filter(e=>!!e)}catch{return null}}(n,a.project_id,r)??n.prepare("SELECT agent_id FROM project_agents WHERE project_id = ? ORDER BY routing_order ASC, created_at ASC").all(a.project_id).map(e=>e.agent_id?.trim()).filter(e=>!!e);return{projectSlug:a.project_slug?.trim()||null,projectAgentIds:o}}catch{return{projectSlug:null,projectAgentIds:[]}}}async function m(t,r){let s=l(t,r);if(!s)return{status:"failure",message:"thread-status requires rootMessageId"};let{getMessageThread:n,getThreadStatusSnapshot:a,sweepStaleWorkingReactions:o}=await e.A(891284),i=await n(s);if(!i)return{status:"failure",message:`Thread not found for rootMessageId: ${s}`};await o(i.threadId);let u=await a({threadId:i.threadId,rootMessageId:s});return{status:"success",output:{activeProcessCount:u.processes.filter(e=>d.has(e.status)).length,messageCount:u.messages?.length??0,threadId:i.threadId,lastUpdatedAt:u.lastUpdatedAt}}}async function g(t,m){let g=l(t,m);if(!g)return{status:"failure",message:"ship-mode-act requires rootMessageId"};let h=function(e,t){let r="string"==typeof e.args?.steerNodeId&&e.args.steerNodeId.trim()?e.args.steerNodeId.trim():"steer",s=t.nodes[r];if(!s||"work"!==s.type)return null;let n=s.output;return n&&"object"==typeof n?{isDone:!!n.isDone,message:"string"==typeof n.message?n.message:""}:null}(t,m);if(!h)return{status:"failure",message:"Unable to read steer node output"};if(!c(h.message))return{status:"failure",message:"Ship mode produced an empty steer message"};let{createChatRun:f,getThreadStatusSnapshot:S,getMessageThread:_,loadHistory:w,saveMessages:E,updateMessageStatus:I}=await e.A(891284),{deactivateSchedulesByRootMessageId:R}=await e.A(653952),y=await _(g);if(!y)return{status:"failure",message:`Thread not found for rootMessageId: ${g}`};if(h.isDone){let e=(await S({threadId:y.threadId,rootMessageId:g})).processes.filter(e=>d.has(e.status)).length;return e>0?{status:"success",output:{done:!1,action:"completion_deferred_active_work",activeProcessCount:e}}:(R(g),await I(y.threadId,g,"in-review",null),{status:"success",output:{done:!0,action:"stopped_and_in_review"}})}let A=await (0,s.loadDbParticipants)(),M=Object.fromEntries(A.map(e=>[e.id,e.name])),{projectSlug:T,projectAgentIds:j}=await p(y.threadId,m.taskId),L=await w(y.threadId),C=j[0]??A[0]?.id??null;if(function(e,t,r,s){let n=c(r);if(!n)return!1;let a=Date.now()-u.STEER_DUPLICATE_WINDOW_MS;return e.filter(e=>e.id===t||e.rootMessageId===t).some(e=>"assistant"===e.role&&!(e.timestamp<a)&&(!s||e.participantId===s)&&c(e.content)===n)}(L,g,h.message,C))return{status:"success",output:{done:!1,action:"duplicate_next_steps_skipped",sender:C}};let v=crypto.randomUUID();await E(y.threadId,[{id:v,role:"assistant",participantId:C,content:h.message,timestamp:Date.now(),rootMessageId:g,parentMessageId:g,depth:1}]);let D=(j.length>0?j:A.map(e=>e.id)).filter((e,t,r)=>e&&r.indexOf(e)===t),O=D.filter(e=>e!==C),k=(O.length>0?O:D).filter(e=>A.some(t=>t.id===e));if(0===k.length)return{status:"success",output:{done:!1,action:"sent_next_steps_only",sender:C,messageId:v}};let N=A.filter(e=>k.includes(e.id)),U=T?await (0,n.resolveProjectContext)(T,[],N):void 0,$=crypto.randomUUID(),b={threadId:y.threadId,prompt:h.message,projectContext:U,mentionedIds:[],initialParallelIds:[],maxRounds:10,recentHistory:L.filter(e=>e.id===g||e.rootMessageId===g).slice(-20).map(e=>({id:e.id,name:"user"===e.role?"User":e.participantId?M[e.participantId]||e.participantId:"Assistant",content:e.content})),currentUserMessageId:v,rootMessageId:g,participantIds:k};await f({id:$,threadId:y.threadId,rootMessageId:g,userId:r.LOCAL_USER.id,projectSlug:T??null,maxSteps:10,activeParticipantIds:k,payload:b}),await (0,o.ensureOrchestratorRuntime)();let P=await (0,i.getQueue)();return await P.send(i.QUEUE_NAMES.CHAT_RUN_PROCESS,{chatRunId:$,userId:r.LOCAL_USER.id,signal:"start"}),(0,a.writeDebugLog)("ship_mode.steer.enqueued",{rootMessageId:g,threadId:y.threadId,chatRunId:$,authorId:C,participantIds:k,projectSlug:T??null}),{status:"success",output:{done:!1,action:"sent_next_steps_and_started_chat_run",sender:C,messageId:v,chatRunId:$}}}async function h(e,t){if("internal"!==e.kind)return{status:"failure",message:`Unsupported function node kind: ${e.kind}`};switch(e.command){case"thread-status":return m(e,t);case"ship-mode-act":return g(e,t);default:return{status:"failure",message:`Unsupported internal function command: ${e.command}`}}}async function f(e,r){if("bash"!==e.kind)return{status:"failure",message:`Unsupported function node kind: ${e.kind}`};let s=e.command;if(!s||""===s.trim())return{status:"failure",message:"Empty command"};let n=e.timeoutMs??u.BASH_FUNCTION_TIMEOUT_MS;return new Promise(e=>{let r="",a="",o=0,i=!1,u=!1,d=(0,t.spawn)(s,[],{shell:!0,timeout:n,killSignal:"SIGTERM"}),l=setTimeout(()=>{u=!0,d.kill("SIGTERM")},n);d.stdout.on("data",e=>{if(i)return;let t=Buffer.byteLength(e.toString(),"utf8");if(o+t>65536){i=!0;return}r+=e.toString(),o+=t}),d.stderr.on("data",e=>{a+=e.toString()}),d.on("error",t=>{clearTimeout(l),e({status:"failure",message:`Failed to spawn command: ${t.message}`,error:t})}),d.on("close",t=>{if(clearTimeout(l),u)return void e({status:"failure",message:`Command timed out after ${n}ms`});if(i)return void e({status:"failure",message:"Stdout exceeded 65536 bytes limit"});if(0!==t)return void e({status:"failure",message:`Command exited with code ${t}: ${a||"(no stderr)"}`});let s=r.trim();if(""===s)return void e({status:"success",output:{}});try{let t=JSON.parse(s);e({status:"success",output:t})}catch{e({status:"success",output:{raw:s}})}})})}function S(){return async(e,t)=>{switch(e.kind){case"bash":return f(e,t);case"internal":return h(e,t);default:return{status:"failure",message:`Unsupported function node kind: ${e.kind}`}}}}},202322,e=>{"use strict";e.s(["ensureOrchestratorRuntime",()=>h],202322);var t=e.i(295851),r=e.i(389344),s=e.i(329893),n=e.i(47973),a=e.i(796283),o=e.i(462919),i=e.i(71966),u=e.i(309113);let d=a.SCHEDULE_POLL_INTERVAL_MS,l=null,c=null;async function p(){return c||(c=(async()=>{let e=await (0,i.pollSchedules)({dispatchFunction:(0,o.createDispatchFunction)(),dispatchWork:(0,u.createDispatchWork)()});e.errors.length>0&&(0,n.writeDebugLog)("schedule_runtime.poll.error",{errorCount:e.errors.length,graphIds:e.errors.map(e=>e.graphId)})})().catch(e=>{(0,n.writeDebugLog)("schedule_runtime.poll.exception",{error:e}),console.error("[schedule-runtime] Poll failed:",e)}).finally(()=>{c=null}))}async function m(){let e;if("1"===process.env.AGX_DISABLE_SCHEDULE_POLLING||l)return;let t=Number.isFinite(e=Number(process.env.AGX_SCHEDULE_POLL_INTERVAL_MS))?Math.max(1e3,e):d;(0,n.writeDebugLog)("schedule_runtime.start",{intervalMs:t}),"function"==typeof(l=setInterval(()=>{p()},t)).unref&&l.unref(),await p()}let g=null;async function h(){return g||(g=(async()=>{(0,n.writeDebugLog)("orchestrator.bootstrap.start");let e=await (0,t.getQueue)();await e.work(t.QUEUE_NAMES.TASK_PROCESS,r.taskProcessor,{batchSize:5}),await e.work(t.QUEUE_NAMES.CHAT_RUN_PROCESS,s.chatProcessor,{batchSize:2}),await m(),(0,n.writeDebugLog)("orchestrator.bootstrap.ready",{queues:[t.QUEUE_NAMES.TASK_PROCESS,t.QUEUE_NAMES.CHAT_RUN_PROCESS]})})().catch(e=>{throw(0,n.writeDebugLog)("orchestrator.bootstrap.error",{error:e}),g=null,e}))}}];
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=apps_local_0_a~bj0._.js.map
|
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
module.exports=[577820,e=>{"use strict";var t=e.i(254799),i=e.i(233405),r=e.i(814747),a=e.i(224361),s=e.i(796283);e.i(219233);var n=e.i(862411),o=e.i(356942),d=e.i(774553),l=e.i(923715),u=e.i(214870),c=e.i(821083);let p=(0,a.promisify)(i.execFile);function m(e){let t=e.trim().split(/\s+/)[0]??"";return(0,r.basename)(t)}async function _(e){let t=new Set;if(0===e.length)return t;let i=e.filter(({pid:e})=>{try{return process.kill(e,0),!0}catch{return!1}});if(0===i.length)return t;let r=i.map(e=>e.pid).join(",");try{let{stdout:e}=await p("ps",["-p",r,"-o","pid=,command="],{timeout:s.PS_COMMAND_TIMEOUT_MS}),a=new Map;for(let t of e.split("\n")){let e=t.trim();if(!e)continue;let i=e.match(/^(\d+)\s+(.+)$/);i&&a.set(Number(i[1]),m(i[2]))}for(let{pid:e,expectedCommand:r}of i){let i=a.get(e);i&&i===m(r)&&t.add(e)}}catch{}return t}function E(e){let t="objective_linear_ticket"===e.execution_mode||"objective_worker"===e.execution_mode?"objective_worker":"linear_worker"===e.execution_mode?"linear_worker":c.DEFAULT_PROMPT_JOB_EXECUTION_MODE;return{id:e.id,name:e.name,prompt:e.prompt,agentId:e.agent_id||"",projectId:e.project_id||"",objectiveId:e.objective_id||null,objectiveKey:e.objective_key||null,provider:e.provider||e.cli||"claude",model:e.model||"",cliArgs:e.cli_args||"",cronExpr:e.cron_expr,cadence:e.cadence||e.cron_expr||"",state:e.state,overlapPolicy:e.overlap_policy,catchUpPolicy:e.catch_up_policy||"fire_once",cancelCheckSec:e.cancel_check_sec,executionMode:t,scriptPrompt:"",teamId:"",builtIn:"objective_worker"===t||"linear_worker"===t,condition:e.condition||"",nextRunAt:e.next_run_at,lastRunAt:e.last_run_at,lastOutcome:e.last_outcome,createdAt:e.created_at,updatedAt:e.updated_at}}function g(e){return{id:e.id,jobId:e.job_id,status:e.status,output:e.output,error:e.error,durationMs:e.duration_ms,startedAt:e.started_at,finishedAt:e.finished_at,cancelledAt:e.cancelled_at,hostPid:e.host_pid,hostCommand:e.host_command,createdAt:e.created_at}}function h(e){return Object.values(e).some(e=>void 0!==e)}function f(e){let t=e.cadence?.trim(),i=e.cronExpr?.trim();if(t){if(i)return{cadence:t,cronExpr:i,legacyIntervalMs:e.checkEveryMs??n.DEFAULT_CONDITION_CHECK_EVERY_MS};let r=(0,u.parseCadence)(t);return r?{cadence:r.cadence,cronExpr:r.cronExpr,legacyIntervalMs:e.checkEveryMs??n.DEFAULT_CONDITION_CHECK_EVERY_MS}:null}if("condition"===e.triggerType){let t=(0,u.normalizeLegacyConditionSchedule)(e.checkEveryMs??n.DEFAULT_CONDITION_CHECK_EVERY_MS);return{cadence:t.cadence,cronExpr:t.cronExpr,legacyIntervalMs:t.intervalMs}}return null}class T{db;automationRepository;constructor(e,t){this.db=e,this.automationRepository=t}getAutomationRepo(){return this.automationRepository??=(0,d.getAutomationRepository)(),this.automationRepository}createJob(e){let i=f(e);if(!i)throw Error("Prompt jobs require a valid cadence or convertible legacy condition interval.");if(!(0,d.isAutomationFrontmatterEnabled)())return this.createLegacyJob(e,i);let r=(0,t.randomUUID)(),a=new Date().toISOString(),s=this.getAutomationRepo().createAutomation({id:r,name:e.name,...e.projectId?{projectId:e.projectId}:{},state:"active",trigger:{type:"scheduled",cadence:i.cadence,cronExpr:i.cronExpr},execution:{overlapPolicy:e.overlapPolicy,catchUpPolicy:e.catchUpPolicy,cancelCheckSec:e.cancelCheckSec,...e.condition?.trim()?{condition:e.condition.trim()}:{}},target:{type:"prompt_job",...e.builtIn?{builtIn:!0}:{},...e.agentId?{agentId:e.agentId}:{},...e.objectiveId?{objectiveId:e.objectiveId}:{},...e.objectiveKey?{objectiveKey:e.objectiveKey}:{},...e.executionMode&&e.executionMode!==c.DEFAULT_PROMPT_JOB_EXECUTION_MODE?{executionMode:e.executionMode}:{},...e.provider?{provider:e.provider}:{},...e.model?{model:e.model}:{},...void 0!==e.cliArgs?{cliArgs:e.cliArgs}:{},...e.scriptPrompt?{scriptPrompt:e.scriptPrompt}:{},...e.teamId?{teamId:e.teamId}:{}},createdAt:a,body:e.prompt}),n=(0,o.automationRecordToPromptJob)(s);return this.upsertLegacyJobRow(n),n}getJob(e){if(!(0,d.isAutomationFrontmatterEnabled)())return this.getLegacyJob(e);let t=this.getPromptJobRecord(e,!1);if(t?.archived)return null;if(t?.definition.target.type==="prompt_job"){let e=(0,o.automationRecordToPromptJob)(t);return this.ensureLegacyJobRow(e),e}return(0,d.isAutomationDualReadEnabled)()?this.getLegacyJob(e):null}listJobs(e){if(!(0,d.isAutomationFrontmatterEnabled)())return this.listLegacyJobs(e);let t=new Map;for(let i of this.getAutomationRepo().listVisibleAutomations({targetType:"prompt_job",...e?.state?{state:e.state}:{},...e?.projectId?{projectId:e.projectId}:{}})){let r=this.normalizePromptJobRecord(i);if(!r)continue;let a=(0,o.automationRecordToPromptJob)(r);e?.objectiveId&&a.objectiveId!==e.objectiveId||(e?.includeObjectiveJobs!==!1||e.objectiveId||!a.objectiveId)&&(t.set(a.id,a),this.ensureLegacyJobRow(a))}if((0,d.isAutomationDualReadEnabled)())for(let i of this.listLegacyJobs(e))t.has(i.id)||t.set(i.id,i);return[...t.values()].sort((e,t)=>{let i=Date.parse(e.createdAt);return Date.parse(t.createdAt)-i})}updateJob(e,t){if(!(0,d.isAutomationFrontmatterEnabled)())return this.updateLegacyJob(e,t);let i=this.getPromptJobRecord(e,!1);if(!i)return(0,d.isAutomationDualReadEnabled)()?this.updateLegacyJob(e,t):null;if("prompt_job"!==i.definition.target.type)return null;let r=i,a=this.buildDefinitionPatch(r,t);if(h(a)){let t=this.getAutomationRepo().updateAutomation(e,a);if(!t)return null;r=t}let s=this.buildStatePatch(t);if(h(s)){let t=this.getAutomationRepo().updateAutomationState(e,s);if(!t)return null;r=t}let n=(0,o.automationRecordToPromptJob)(r);return this.upsertLegacyJobRow(n),n}deleteJob(e){let t=this.getJob(e);if(t?.builtIn)throw Error("Cannot delete built-in job. Use pause instead.");(0,d.isAutomationFrontmatterEnabled)()&&(this.getAutomationRepo().archiveAutomation(e)||this.getAutomationRepo().deleteAutomation(e)),this.db.prepare("DELETE FROM prompt_jobs WHERE id = ?").run(e)}getDueJobs(e=Date.now()){if(!(0,d.isAutomationFrontmatterEnabled)())return this.getLegacyDueJobs(e);let t=new Map;for(let i of this.getAutomationRepo().listVisibleAutomations({targetType:"prompt_job",state:"active"})){let r=this.normalizePromptJobRecord(i);if(!r)continue;let a=(0,o.automationRecordToPromptJob)(r);null===a.nextRunAt||a.nextRunAt>e||(t.set(a.id,a),this.ensureLegacyJobRow(a))}if((0,d.isAutomationDualReadEnabled)())for(let i of this.getLegacyDueJobs(e))t.has(i.id)||t.set(i.id,i);return[...t.values()].sort((e,t)=>(e.nextRunAt??Number.MAX_SAFE_INTEGER)-(t.nextRunAt??Number.MAX_SAFE_INTEGER))}createRun(e){this.ensureLegacyJobRowById(e);let i=(0,t.randomUUID)();return this.db.prepare("INSERT INTO prompt_runs (id, job_id) VALUES (?, ?)").run(i,e),this.getRun(i)}getRun(e){let t=this.db.prepare("SELECT * FROM prompt_runs WHERE id = ?").get(e);return t?g(t):null}listRuns(e,t=50){return this.db.prepare("SELECT * FROM prompt_runs WHERE job_id = ? ORDER BY created_at DESC LIMIT ?").all(e,t).map(g)}listQueuedRuns(e=50){return this.db.prepare("SELECT * FROM prompt_runs WHERE status = 'queued' ORDER BY created_at ASC LIMIT ?").all(e).map(g)}updateRun(e,t){let i={status:"status",output:"output",error:"error",durationMs:"duration_ms",startedAt:"started_at",finishedAt:"finished_at",cancelledAt:"cancelled_at",hostPid:"host_pid",hostCommand:"host_command"},r=[],a=[];for(let[e,s]of Object.entries(t)){let t=i[e];t&&(r.push(`${t} = ?`),a.push(s??null))}return 0===r.length||(a.push(e),this.db.prepare(`UPDATE prompt_runs SET ${r.join(", ")} WHERE id = ?`).run(...a.map(e=>e))),this.getRun(e)}hasRunningRun(e){return void 0!==this.db.prepare("SELECT id FROM prompt_runs WHERE job_id = ? AND status IN ('queued', 'running') LIMIT 1").get(e)}async reapStaleRuns(e=18e5){let t=this.db.prepare(`SELECT id, job_id, host_pid, host_command, started_at, created_at
|
|
2
|
+
FROM prompt_runs
|
|
3
|
+
WHERE status = 'running'`).all(),i=Date.now(),r=t.filter(e=>null!=e.host_pid&&null!=e.host_command).map(e=>({pid:e.host_pid,expectedCommand:e.host_command})),a=await _(r),s=0;for(let r of t){var n;let t,o=(n=r.started_at||r.created_at)?/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(n)?Date.parse(n.replace(" ","T")+"Z"):Date.parse(n):NaN,d=Number.isFinite(o)?i-o:0,l=!1;null!=r.host_pid&&r.host_command?!a.has(r.host_pid)&&d>e?(l=!0,t=`Host process (pid ${r.host_pid}) is no longer running`):t="":d>e?(l=!0,t=`No host PID recorded; stuck for ${Math.round(d/6e4)} minutes`):t="",l&&(this.db.prepare(`UPDATE prompt_runs
|
|
4
|
+
SET status = 'failed',
|
|
5
|
+
error = ?,
|
|
6
|
+
duration_ms = ?,
|
|
7
|
+
finished_at = ?
|
|
8
|
+
WHERE id = ?`).run(`Reaped: ${t}`,d,new Date().toISOString(),r.id),s++)}return s}isRunCancelled(e){let t=this.db.prepare("SELECT status FROM prompt_runs WHERE id = ?").get(e);return t?.status==="cancelled"}normalizePromptJobRecord(e){if("prompt_job"!==e.definition.target.type||"condition"!==e.definition.trigger.type)return e;let t=(0,u.normalizeLegacyConditionSchedule)(e.definition.trigger.checkEveryMs);return this.getAutomationRepo().updateAutomation(e.definition.id,{trigger:{type:"scheduled",cadence:t.cadence,cronExpr:t.cronExpr},execution:{...e.definition.execution??{},condition:e.definition.execution?.condition??e.definition.trigger.condition}})}getPromptJobRecord(e,t){let i=this.getAutomationRepo().getAutomation(e),r=i?this.normalizePromptJobRecord(i):null;if(r?.definition.target.type==="prompt_job")return r;if(!t||!(0,d.isAutomationDualReadEnabled)())return null;let a=this.getLegacyJob(e);return a?this.materializeLegacyJob(a):null}materializeLegacyJob(e){let t=(0,o.promptJobToAutomationDefinition)(e),i=(0,o.promptJobToAutomationRuntimeState)(e),r=this.getAutomationRepo().upsertAutomation(t);return this.getAutomationRepo().updateAutomationState(e.id,{nextRunAt:i.nextRunAt,lastRunAt:i.lastRunAt,lastOutcome:i.lastOutcome,lastError:i.lastError,updatedAt:i.updatedAt})??r}buildDefinitionPatch(e,t){let i={},r={},a={},s={};void 0!==t.name&&(i.name=t.name),void 0!==t.projectId&&(i.projectId=t.projectId||null),void 0!==t.state&&(i.state=t.state),void 0!==t.prompt&&(i.body=t.prompt);let n=f(t);if(n)r.type="scheduled",r.cadence=n.cadence,r.cronExpr=n.cronExpr,r.intervalMs="scheduled"===e.definition.trigger.type?e.definition.trigger.intervalMs:void 0;else if(""===t.cadence)r.type="scheduled",r.cadence="scheduled"===e.definition.trigger.type?e.definition.trigger.cadence:void 0,r.cronExpr="scheduled"===e.definition.trigger.type?e.definition.trigger.cronExpr:void 0,r.intervalMs="scheduled"===e.definition.trigger.type?e.definition.trigger.intervalMs:void 0;else if(void 0!==t.cronExpr||void 0!==t.cadence){let i=e.definition.trigger;r.type="scheduled",r.cadence=t.cadence??("scheduled"===i.type?i.cadence:void 0),r.cronExpr=t.cronExpr??("scheduled"===i.type?i.cronExpr:void 0),r.intervalMs="scheduled"===i.type?i.intervalMs:void 0}return void 0!==t.overlapPolicy&&(a.overlapPolicy=t.overlapPolicy),void 0!==t.catchUpPolicy&&(a.catchUpPolicy=t.catchUpPolicy),void 0!==t.cancelCheckSec&&(a.cancelCheckSec=t.cancelCheckSec),void 0!==t.condition&&(a.condition=t.condition||void 0),void 0!==t.agentId&&(s.agentId=t.agentId||void 0),void 0!==t.objectiveId&&(s.objectiveId=t.objectiveId||void 0),void 0!==t.objectiveKey&&(s.objectiveKey=t.objectiveKey||void 0),void 0!==t.executionMode&&(s.executionMode=t.executionMode===c.DEFAULT_PROMPT_JOB_EXECUTION_MODE?void 0:t.executionMode),void 0!==t.provider&&(s.provider=t.provider||void 0),void 0!==t.model&&(s.model=t.model||void 0),void 0!==t.cliArgs&&(s.cliArgs=t.cliArgs),void 0!==t.scriptPrompt&&(s.scriptPrompt=t.scriptPrompt||void 0),void 0!==t.teamId&&(s.teamId=t.teamId||void 0),{...Object.keys(i).length>0?i:{},...Object.keys(r).length>0?{trigger:r}:{},...Object.keys(a).length>0?{execution:a}:{},...Object.keys(s).length>0?{target:s}:{}}}buildStatePatch(e){let t={};return void 0!==e.nextRunAt&&(t.nextRunAt=e.nextRunAt),void 0!==e.lastRunAt&&(t.lastRunAt=e.lastRunAt),void 0!==e.lastOutcome&&(t.lastOutcome=e.lastOutcome),t}ensureLegacyJobRowById(e){if(this.legacyJobRowExists(e))return;let t=this.getJob(e);t&&this.upsertLegacyJobRow(t)}ensureLegacyJobRow(e){this.legacyJobRowExists(e.id)||this.upsertLegacyJobRow(e)}legacyJobRowExists(e){return void 0!==this.db.prepare("SELECT 1 FROM prompt_jobs WHERE id = ?").get(e)}upsertLegacyJobRow(e){this.db.prepare(`INSERT INTO prompt_jobs (
|
|
9
|
+
id, name, prompt, cli, agent_id, project_id, objective_id, objective_key, provider, model, cli_args,
|
|
10
|
+
execution_mode,
|
|
11
|
+
cron_expr, cadence, state, overlap_policy, catch_up_policy, cancel_check_sec,
|
|
12
|
+
trigger_type, condition, check_every_ms, next_run_at, last_run_at, last_outcome,
|
|
13
|
+
created_at, updated_at
|
|
14
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
15
|
+
ON CONFLICT (id) DO UPDATE SET
|
|
16
|
+
name = excluded.name,
|
|
17
|
+
prompt = excluded.prompt,
|
|
18
|
+
cli = excluded.cli,
|
|
19
|
+
agent_id = excluded.agent_id,
|
|
20
|
+
project_id = excluded.project_id,
|
|
21
|
+
objective_id = excluded.objective_id,
|
|
22
|
+
objective_key = excluded.objective_key,
|
|
23
|
+
provider = excluded.provider,
|
|
24
|
+
model = excluded.model,
|
|
25
|
+
cli_args = excluded.cli_args,
|
|
26
|
+
execution_mode = excluded.execution_mode,
|
|
27
|
+
cron_expr = excluded.cron_expr,
|
|
28
|
+
cadence = excluded.cadence,
|
|
29
|
+
state = excluded.state,
|
|
30
|
+
overlap_policy = excluded.overlap_policy,
|
|
31
|
+
catch_up_policy = excluded.catch_up_policy,
|
|
32
|
+
cancel_check_sec = excluded.cancel_check_sec,
|
|
33
|
+
trigger_type = excluded.trigger_type,
|
|
34
|
+
condition = excluded.condition,
|
|
35
|
+
check_every_ms = excluded.check_every_ms,
|
|
36
|
+
next_run_at = excluded.next_run_at,
|
|
37
|
+
last_run_at = excluded.last_run_at,
|
|
38
|
+
last_outcome = excluded.last_outcome,
|
|
39
|
+
created_at = excluded.created_at,
|
|
40
|
+
updated_at = excluded.updated_at`).run(e.id,e.name,e.prompt,e.provider||"claude",e.agentId||null,e.projectId||null,e.objectiveId||null,e.objectiveKey||null,e.provider||"claude",e.model||"",e.cliArgs||"",e.executionMode||c.DEFAULT_PROMPT_JOB_EXECUTION_MODE,e.cronExpr||"",e.cadence||"",e.state,e.overlapPolicy,e.catchUpPolicy,e.cancelCheckSec,"scheduled",e.condition||"",n.DEFAULT_CONDITION_CHECK_EVERY_MS,e.nextRunAt??null,e.lastRunAt??null,e.lastOutcome??null,e.createdAt,e.updatedAt)}createLegacyJob(e,i){let r=(0,t.randomUUID)(),a=e.provider??"claude",s=(0,l.computeNextTickFromCron)(i.cronExpr)??null;return this.db.prepare(`INSERT INTO prompt_jobs (
|
|
41
|
+
id, name, prompt, cli, agent_id, project_id, objective_id, objective_key, provider, model, cli_args,
|
|
42
|
+
execution_mode,
|
|
43
|
+
cron_expr, cadence, overlap_policy, catch_up_policy, cancel_check_sec,
|
|
44
|
+
trigger_type, condition, check_every_ms, next_run_at
|
|
45
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(r,e.name,e.prompt,a,e.agentId||null,e.projectId||null,e.objectiveId||null,e.objectiveKey||null,a,e.model??"",e.cliArgs??"",e.executionMode??c.DEFAULT_PROMPT_JOB_EXECUTION_MODE,i.cronExpr,i.cadence,e.overlapPolicy??"skip",e.catchUpPolicy??"fire_once",e.cancelCheckSec??5,"scheduled",e.condition??"",i.legacyIntervalMs,s),this.getLegacyJob(r)}normalizeLegacyJobRow(e){if("condition"!==(e.trigger_type||"scheduled"))return e;let t=(0,u.normalizeLegacyConditionSchedule)(e.check_every_ms||n.DEFAULT_CONDITION_CHECK_EVERY_MS),i=(0,l.computeNextTickFromCron)(t.cronExpr)??null;return this.db.prepare(`UPDATE prompt_jobs
|
|
46
|
+
SET trigger_type = 'scheduled',
|
|
47
|
+
cadence = ?,
|
|
48
|
+
cron_expr = ?,
|
|
49
|
+
next_run_at = ?,
|
|
50
|
+
updated_at = datetime('now')
|
|
51
|
+
WHERE id = ?`).run(t.cadence,t.cronExpr,i,e.id),{...e,trigger_type:"scheduled",cadence:t.cadence,cron_expr:t.cronExpr,next_run_at:i}}getLegacyJob(e){let t=this.db.prepare("SELECT * FROM prompt_jobs WHERE id = ?").get(e);return t?E(this.normalizeLegacyJobRow(t)):null}listLegacyJobs(e){let t="SELECT * FROM prompt_jobs",i=[],r=[];return e?.state&&(i.push("state = ?"),r.push(e.state)),e?.projectId&&(i.push("project_id = ?"),r.push(e.projectId)),e?.objectiveId?(i.push("objective_id = ?"),r.push(e.objectiveId)):e?.includeObjectiveJobs===!1&&i.push("(objective_id IS NULL OR objective_id = '')"),i.length>0&&(t+=` WHERE ${i.join(" AND ")}`),t+=" ORDER BY created_at DESC",this.db.prepare(t).all(...r).map(e=>E(this.normalizeLegacyJobRow(e)))}updateLegacyJob(e,t){let i={name:"name",prompt:"prompt",cli:"cli",agentId:"agent_id",projectId:"project_id",objectiveId:"objective_id",objectiveKey:"objective_key",executionMode:"execution_mode",provider:"provider",cronExpr:"cron_expr",model:"model",cliArgs:"cli_args",cadence:"cadence",state:"state",overlapPolicy:"overlap_policy",catchUpPolicy:"catch_up_policy",cancelCheckSec:"cancel_check_sec",condition:"condition",nextRunAt:"next_run_at",lastRunAt:"last_run_at",lastOutcome:"last_outcome"},r=[],a=[],s=f(t);for(let[e,n]of Object.entries(t)){if(s&&("cadence"===e||"cronExpr"===e||"triggerType"===e||"checkEveryMs"===e))continue;let t=i[e];t&&void 0!==n&&(r.push(`${t} = ?`),a.push(n))}if(s)r.push("cadence = ?"),a.push(s.cadence),r.push("cron_expr = ?"),a.push(s.cronExpr),r.push("trigger_type = ?"),a.push("scheduled"),r.push("check_every_ms = ?"),a.push(s.legacyIntervalMs),void 0===t.nextRunAt&&(r.push("next_run_at = ?"),a.push((0,l.computeNextTickFromCron)(s.cronExpr)??null));else if(""===t.cadence)return this.getLegacyJob(e);return 0===r.length||(r.push("updated_at = datetime('now')"),a.push(e),this.db.prepare(`UPDATE prompt_jobs SET ${r.join(", ")} WHERE id = ?`).run(...a.map(e=>e))),this.getLegacyJob(e)}getLegacyDueJobs(e){return this.db.prepare(`SELECT * FROM prompt_jobs
|
|
52
|
+
WHERE state = 'active'
|
|
53
|
+
AND next_run_at IS NOT NULL
|
|
54
|
+
AND next_run_at <= ?
|
|
55
|
+
ORDER BY next_run_at ASC`).all(e).map(e=>E(this.normalizeLegacyJobRow(e))).filter(t=>null!==t.nextRunAt&&t.nextRunAt<=e)}}var y=e.i(522734),b=e.i(633211);let I=null;function L(e){return e.replace(/^\s*--.*$/gm,"").split(";").map(e=>e.trim()).filter(Boolean)}e.s(["getPromptJobStore",0,function(){if(!I){let e=(0,b.getSQLiteDb)();if(e.prepare("SELECT 1 FROM sqlite_master WHERE type='table' AND name='prompt_jobs'").get()){if(!e.prepare("SELECT 1 FROM pragma_table_info('prompt_jobs') WHERE name='catch_up_policy'").get())for(let t of L((0,y.readFileSync)(r.default.join(process.cwd(),"db/sqlite/003_prompt_scheduler_v2.sql"),"utf-8")))try{e.exec(t)}catch(e){if(!e.message?.includes("duplicate column"))throw e}}else{let t=(0,y.readFileSync)(r.default.join(process.cwd(),"db/sqlite/002_prompt_scheduler_schema.sql"),"utf-8");e.exec(t)}if(!e.prepare("SELECT 1 FROM pragma_table_info('prompt_runs') WHERE name='host_pid'").get())for(let t of L((0,y.readFileSync)(r.default.join(process.cwd(),"db/sqlite/004_prompt_runs_host_pid.sql"),"utf-8")))try{e.exec(t)}catch(e){if(!e.message?.includes("duplicate column"))throw e}if(!e.prepare("SELECT 1 FROM pragma_table_info('prompt_jobs') WHERE name='objective_id'").get())for(let t of L((0,y.readFileSync)(r.default.join(process.cwd(),"db/sqlite/005_prompt_jobs_objectives.sql"),"utf-8")))try{e.exec(t)}catch(e){if(!e.message?.includes("duplicate column"))throw e}if(!e.prepare("SELECT 1 FROM pragma_table_info('prompt_jobs') WHERE name='execution_mode'").get())for(let t of L((0,y.readFileSync)(r.default.join(process.cwd(),"db/sqlite/006_prompt_jobs_execution_mode.sql"),"utf-8")))try{e.exec(t)}catch(e){if(!e.message?.includes("duplicate column"))throw e}I=new T(e)}return I}],577820)},214348,e=>{"use strict";var t=e.x("node:sqlite",()=>require("node:sqlite"),!0),i=e.i(522734),r=e.i(446786),a=e.i(814747),s=e.i(801243);let n=process.env.AGX_GROUP_CHAT_DIR?.trim()||a.default.join(r.default.homedir(),".agx","group-chat"),o=a.default.join(n,"history.sqlite");function d(e){return e?.trim()||null}function l(e){return"scripted"===e?"scripted":"chat"}function u(e){let t,i=e.chat_created_at??e.created_at,r=e.chat_completed_at??null,a=function(e,t){switch(e){case"queued":return"queued";case"running":case"awaiting_user":case"blocked":return"running";case"completed":return"success";case"failed":return"failed";case"cancelled":return"cancelled";default:return t}}(e.chat_status,e.status);return{id:e.id,projectId:e.project_id,projectSlug:e.project_slug,issueId:e.issue_id,issueIdentifier:e.issue_identifier,issueTitle:e.issue_title,issueStatus:e.issue_status,issueAssignee:e.issue_assignee,threadId:e.thread_id,rootMessageId:e.root_message_id,chatRunId:e.chat_run_id,agentId:e.agent_id,agentName:e.agent_name,mode:l(e.mode),sessionTitle:"chat"===l(e.mode)&&(t=String(e.root_content??"").replace(/\[reaction\s+[^\]]*\]/gi,"").replace(/\[agx:[^\]]*\]/g,"").replace(/\[checkpoint\]/g,"").replace(/\[criteria:\s*[^\]]*\]/g,"").replace(/\[done\]/g,"").replace(/\[blocked[^\]]*\]/g,"").replace(/^\[SKIP\]$/gm,"").replace(/\s+/g," ").trim())?t.length>72?`${t.slice(0,69).trimEnd()}...`:t:null,status:a,durationMs:null!=r?Math.max(r-i,0):null,lastError:e.chat_last_error??e.error,startedAt:new Date(i).toISOString(),updatedAt:new Date((e.chat_updated_at??e.updated_at)||e.updated_at).toISOString(),completedAt:"number"==typeof r?new Date(r).toISOString():null}}async function c(e){await i.promises.mkdir(n,{recursive:!0});let r=new t.DatabaseSync(o);(0,s.pragmaSet)(r,"journal_mode = WAL");try{return r.exec(`
|
|
56
|
+
CREATE TABLE IF NOT EXISTS chat_runs (
|
|
57
|
+
id TEXT PRIMARY KEY,
|
|
58
|
+
thread_id TEXT NOT NULL,
|
|
59
|
+
root_message_id TEXT,
|
|
60
|
+
user_id TEXT NOT NULL,
|
|
61
|
+
project_slug TEXT,
|
|
62
|
+
status TEXT NOT NULL,
|
|
63
|
+
current_step INTEGER NOT NULL DEFAULT 0,
|
|
64
|
+
max_steps INTEGER NOT NULL DEFAULT 10,
|
|
65
|
+
steps_used INTEGER NOT NULL DEFAULT 0,
|
|
66
|
+
last_error TEXT,
|
|
67
|
+
active_participant_ids TEXT NOT NULL DEFAULT '[]',
|
|
68
|
+
payload_json TEXT,
|
|
69
|
+
result_json TEXT,
|
|
70
|
+
created_at INTEGER NOT NULL,
|
|
71
|
+
updated_at INTEGER NOT NULL,
|
|
72
|
+
completed_at INTEGER
|
|
73
|
+
);
|
|
74
|
+
CREATE TABLE IF NOT EXISTS messages (
|
|
75
|
+
thread_id TEXT NOT NULL,
|
|
76
|
+
id TEXT NOT NULL,
|
|
77
|
+
role TEXT NOT NULL,
|
|
78
|
+
participant_id TEXT,
|
|
79
|
+
content TEXT NOT NULL,
|
|
80
|
+
timestamp INTEGER NOT NULL,
|
|
81
|
+
root_message_id TEXT,
|
|
82
|
+
parent_message_id TEXT,
|
|
83
|
+
depth INTEGER NOT NULL DEFAULT 0,
|
|
84
|
+
thread_status TEXT,
|
|
85
|
+
outcome_note TEXT,
|
|
86
|
+
PRIMARY KEY (thread_id, id)
|
|
87
|
+
);
|
|
88
|
+
CREATE TABLE IF NOT EXISTS linear_runs (
|
|
89
|
+
id TEXT PRIMARY KEY,
|
|
90
|
+
project_id TEXT,
|
|
91
|
+
project_slug TEXT,
|
|
92
|
+
issue_id TEXT NOT NULL,
|
|
93
|
+
issue_identifier TEXT NOT NULL,
|
|
94
|
+
issue_title TEXT NOT NULL,
|
|
95
|
+
issue_status TEXT NOT NULL,
|
|
96
|
+
issue_assignee TEXT,
|
|
97
|
+
thread_id TEXT NOT NULL,
|
|
98
|
+
root_message_id TEXT,
|
|
99
|
+
chat_run_id TEXT,
|
|
100
|
+
agent_id TEXT NOT NULL,
|
|
101
|
+
agent_name TEXT NOT NULL,
|
|
102
|
+
mode TEXT NOT NULL DEFAULT 'chat',
|
|
103
|
+
status TEXT NOT NULL DEFAULT 'queued',
|
|
104
|
+
error TEXT,
|
|
105
|
+
created_at INTEGER NOT NULL,
|
|
106
|
+
updated_at INTEGER NOT NULL
|
|
107
|
+
);
|
|
108
|
+
CREATE INDEX IF NOT EXISTS idx_linear_runs_issue_created
|
|
109
|
+
ON linear_runs (issue_id, created_at DESC);
|
|
110
|
+
CREATE INDEX IF NOT EXISTS idx_linear_runs_project_issue_created
|
|
111
|
+
ON linear_runs (project_id, issue_id, created_at DESC);
|
|
112
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_linear_runs_chat_run_id
|
|
113
|
+
ON linear_runs (chat_run_id)
|
|
114
|
+
WHERE chat_run_id IS NOT NULL;
|
|
115
|
+
`),r.prepare("PRAGMA table_info(linear_runs)").all().some(e=>"mode"===e.name)||r.exec("ALTER TABLE linear_runs ADD COLUMN mode TEXT NOT NULL DEFAULT 'chat';"),e(r)}finally{r.close()}}async function p(e){let t=Date.now(),i=d(e.id)??crypto.randomUUID(),r=d(e.threadId)??`linear-run:${i}`,a=l(e.mode);return c(s=>{s.prepare(`INSERT INTO linear_runs (
|
|
116
|
+
id, project_id, project_slug, issue_id, issue_identifier, issue_title,
|
|
117
|
+
issue_status, issue_assignee, thread_id, root_message_id, chat_run_id,
|
|
118
|
+
agent_id, agent_name, mode, status, error, created_at, updated_at
|
|
119
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, NULL, NULL, ?, ?, ?, 'queued', NULL, ?, ?)`).run(i,d(e.projectId??null),d(e.projectSlug??null),e.issueId.trim(),e.issueIdentifier.trim(),e.issueTitle.trim(),e.issueStatus.trim(),d(e.issueAssignee??null),r,e.agentId.trim(),e.agentName.trim(),a,t,t);let n=s.prepare(`SELECT
|
|
120
|
+
lr.*,
|
|
121
|
+
cr.status AS chat_status,
|
|
122
|
+
cr.last_error AS chat_last_error,
|
|
123
|
+
cr.created_at AS chat_created_at,
|
|
124
|
+
cr.updated_at AS chat_updated_at,
|
|
125
|
+
cr.completed_at AS chat_completed_at,
|
|
126
|
+
msg.content AS root_content
|
|
127
|
+
FROM linear_runs lr
|
|
128
|
+
LEFT JOIN chat_runs cr ON cr.id = (
|
|
129
|
+
SELECT id FROM chat_runs WHERE thread_id = lr.thread_id ORDER BY updated_at DESC LIMIT 1
|
|
130
|
+
)
|
|
131
|
+
LEFT JOIN messages msg ON msg.thread_id = lr.thread_id AND msg.id = lr.root_message_id
|
|
132
|
+
WHERE lr.id = ?
|
|
133
|
+
LIMIT 1`).get(i);if(!n)throw Error(`Failed to create Linear run ${i}`);return u(n)})}async function m(e){return c(t=>{let i=["updated_at = ?"],r=[Date.now()];void 0!==e.rootMessageId&&(i.push("root_message_id = ?"),r.push(d(e.rootMessageId))),void 0!==e.chatRunId&&(i.push("chat_run_id = ?"),r.push(d(e.chatRunId))),void 0!==e.status&&(i.push("status = ?"),r.push(e.status)),void 0!==e.error&&(i.push("error = ?"),r.push(d(e.error))),r.push(e.id.trim()),t.prepare(`UPDATE linear_runs SET ${i.join(", ")} WHERE id = ?`).run(...r);let a=t.prepare(`SELECT
|
|
134
|
+
lr.*,
|
|
135
|
+
cr.status AS chat_status,
|
|
136
|
+
cr.last_error AS chat_last_error,
|
|
137
|
+
cr.created_at AS chat_created_at,
|
|
138
|
+
cr.updated_at AS chat_updated_at,
|
|
139
|
+
cr.completed_at AS chat_completed_at,
|
|
140
|
+
msg.content AS root_content
|
|
141
|
+
FROM linear_runs lr
|
|
142
|
+
LEFT JOIN chat_runs cr ON cr.id = (
|
|
143
|
+
SELECT id FROM chat_runs WHERE thread_id = lr.thread_id ORDER BY updated_at DESC LIMIT 1
|
|
144
|
+
)
|
|
145
|
+
LEFT JOIN messages msg ON msg.thread_id = lr.thread_id AND msg.id = lr.root_message_id
|
|
146
|
+
WHERE lr.id = ?
|
|
147
|
+
LIMIT 1`).get(e.id.trim());return a?u(a):null})}async function _(e){return c(t=>{let i=e?.trim(),r=i?`SELECT DISTINCT lr.issue_id, lr.agent_id, lr.agent_name
|
|
148
|
+
FROM linear_runs lr
|
|
149
|
+
LEFT JOIN chat_runs cr ON cr.id = (
|
|
150
|
+
SELECT id FROM chat_runs WHERE thread_id = lr.thread_id ORDER BY updated_at DESC LIMIT 1
|
|
151
|
+
)
|
|
152
|
+
WHERE (lr.status IN ('queued', 'running') OR cr.status IN ('queued', 'running'))
|
|
153
|
+
AND lr.project_id = ?`:`SELECT DISTINCT lr.issue_id, lr.agent_id, lr.agent_name
|
|
154
|
+
FROM linear_runs lr
|
|
155
|
+
LEFT JOIN chat_runs cr ON cr.id = (
|
|
156
|
+
SELECT id FROM chat_runs WHERE thread_id = lr.thread_id ORDER BY updated_at DESC LIMIT 1
|
|
157
|
+
)
|
|
158
|
+
WHERE (lr.status IN ('queued', 'running') OR cr.status IN ('queued', 'running'))`;return(i?t.prepare(r).all(e.trim()):t.prepare(r).all()).map(e=>({issueId:e.issue_id,agentId:e.agent_id,agentName:e.agent_name}))})}e.s(["createLinearRun",0,p,"getIssueActiveAgents",0,_,"updateLinearRun",0,m])},716657,e=>{"use strict";var t=e.i(902157),i=e.i(750227),r=e.i(180228),a=e.i(660526);let s=i.default.join((0,a.homedir)(),".agx");function n(){return i.default.join(s,"linear-token.json")}function o(e){if(null===e)return"null";if(Array.isArray(e))return`[${e.map(o).join(", ")}]`;if("string"==typeof e)return JSON.stringify(e);if("number"==typeof e||"boolean"==typeof e)return String(e);if("object"==typeof e){let t=Object.entries(e).filter(([,e])=>void 0!==e);return`{ ${t.map(([e,t])=>`${e}: ${o(t)}`).join(", ")} }`}throw Error(`Unsupported GraphQL value: ${typeof e}`)}class d{accessToken;constructor(e){this.accessToken=e}get viewer(){return this.request("query { viewer { id name email } }").then(e=>e.viewer)}async users(){return(await this.request(`query {
|
|
159
|
+
users(first: 100) {
|
|
160
|
+
nodes {
|
|
161
|
+
id
|
|
162
|
+
name
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}`)).users.nodes.filter(e=>e.name.trim().length>0).map(e=>({id:e.id,name:e.name})).sort((e,t)=>e.name.localeCompare(t.name))}async teams(){return(await this.request(`query {
|
|
166
|
+
teams(first: 50) {
|
|
167
|
+
nodes {
|
|
168
|
+
id
|
|
169
|
+
name
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}`)).teams.nodes.filter(e=>e.name.trim().length>0).map(e=>({id:e.id,name:e.name})).sort((e,t)=>e.name.localeCompare(t.name))}async issueLabels(){return(await this.request(`query {
|
|
173
|
+
issueLabels(first: 250, includeArchived: false) {
|
|
174
|
+
nodes {
|
|
175
|
+
id
|
|
176
|
+
name
|
|
177
|
+
color
|
|
178
|
+
team {
|
|
179
|
+
id
|
|
180
|
+
name
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}`)).issueLabels.nodes.filter(e=>e.name.trim().length>0).map(e=>({id:e.id,name:e.name.trim(),color:e.color,teamId:e.team?.id??null,teamName:e.team?.name??null})).sort((e,t)=>e.name.localeCompare(t.name))}async createIssueLabel(e){let t=e.name.trim();if(!t)throw Error("Linear label name is required");let i={name:t,...e.description?.trim()?{description:e.description.trim()}:{},...e.color?.trim()?{color:e.color.trim()}:{},...e.teamId?.trim()?{teamId:e.teamId.trim()}:{}},r=await this.request(`mutation {
|
|
185
|
+
issueLabelCreate(input: ${o(i)}) {
|
|
186
|
+
success
|
|
187
|
+
issueLabel {
|
|
188
|
+
id
|
|
189
|
+
name
|
|
190
|
+
color
|
|
191
|
+
team {
|
|
192
|
+
id
|
|
193
|
+
name
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}`).then(e=>e.issueLabelCreate);if(!r.success)throw Error(`Linear rejected the label creation for "${t}"`);return{id:r.issueLabel.id,name:r.issueLabel.name.trim(),color:r.issueLabel.color,teamId:r.issueLabel.team?.id??null,teamName:r.issueLabel.team?.name??null}}async issues(e){let t,i=(t=[`first: ${e.first}`],e.after&&t.push(`after: ${JSON.stringify(e.after)}`),e.orderBy&&t.push(`orderBy: ${e.orderBy}`),e.filter&&Object.keys(e.filter).length>0&&t.push(`filter: ${o(e.filter)}`),t.join(", ")),r=await this.request(`query {
|
|
198
|
+
issues(${i}) {
|
|
199
|
+
nodes {
|
|
200
|
+
id
|
|
201
|
+
identifier
|
|
202
|
+
title
|
|
203
|
+
description
|
|
204
|
+
url
|
|
205
|
+
updatedAt
|
|
206
|
+
state { name }
|
|
207
|
+
assignee { id name email }
|
|
208
|
+
team { id name key }
|
|
209
|
+
cycle { id number name }
|
|
210
|
+
labels(first: 20) {
|
|
211
|
+
nodes {
|
|
212
|
+
name
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
pageInfo {
|
|
217
|
+
hasNextPage
|
|
218
|
+
endCursor
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}`);return{nodes:r.issues.nodes.map(e=>({id:e.id,identifier:e.identifier,title:e.title,description:e.description,url:e.url,updatedAt:e.updatedAt,state:Promise.resolve(e.state),assignee:Promise.resolve(e.assignee),team:Promise.resolve(e.team),cycle:Promise.resolve(e.cycle),labels:Promise.resolve((e.labels?.nodes??[]).map(e=>e.name.trim()).filter(Boolean))})),pageInfo:r.issues.pageInfo}}async createIssue(e){let t=e.title.trim(),i=e.teamId.trim();if(!t)throw Error("Linear issue title is required");if(!i)throw Error("Linear issue team is required");let r={title:t,teamId:i,...e.description?.trim()?{description:e.description.trim()}:{},...e.assigneeId?.trim()?{assigneeId:e.assigneeId.trim()}:{},...e.cycleId?.trim()?{cycleId:e.cycleId.trim()}:{},...e.projectId?.trim()?{projectId:e.projectId.trim()}:{},...e.stateId?.trim()?{stateId:e.stateId.trim()}:{},..."number"==typeof e.priority&&Number.isFinite(e.priority)?{priority:Math.trunc(e.priority)}:{},...e.labelIds?.length?{labelIds:Array.from(new Set(e.labelIds.map(e=>e.trim()).filter(Boolean)))}:{}},a=await this.request(`mutation {
|
|
222
|
+
issueCreate(input: ${o(r)}) {
|
|
223
|
+
success
|
|
224
|
+
issue {
|
|
225
|
+
id
|
|
226
|
+
identifier
|
|
227
|
+
title
|
|
228
|
+
description
|
|
229
|
+
url
|
|
230
|
+
updatedAt
|
|
231
|
+
state { name }
|
|
232
|
+
assignee { id name email }
|
|
233
|
+
team { id name key }
|
|
234
|
+
cycle { id number name }
|
|
235
|
+
labels(first: 20) {
|
|
236
|
+
nodes {
|
|
237
|
+
name
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}`).then(e=>e.issueCreate);if(!a.success||!a.issue)throw Error(`Linear rejected the issue creation for "${t}"`);return{id:a.issue.id,identifier:a.issue.identifier,title:a.issue.title,description:a.issue.description,url:a.issue.url,updatedAt:a.issue.updatedAt,status:a.issue.state?.name??null,assignee:a.issue.assignee?.name??null,teamId:a.issue.team?.id??null,teamName:a.issue.team?.name??null,teamKey:a.issue.team?.key??null,labels:(a.issue.labels?.nodes??[]).map(e=>e.name.trim()).filter(Boolean)}}async cycles(){let e=await this.request(`query {
|
|
243
|
+
teams(first: 50) {
|
|
244
|
+
nodes {
|
|
245
|
+
id
|
|
246
|
+
name
|
|
247
|
+
activeCycle {
|
|
248
|
+
id
|
|
249
|
+
number
|
|
250
|
+
name
|
|
251
|
+
startsAt
|
|
252
|
+
endsAt
|
|
253
|
+
team {
|
|
254
|
+
id
|
|
255
|
+
name
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
cycles(first: 20) {
|
|
259
|
+
nodes {
|
|
260
|
+
id
|
|
261
|
+
number
|
|
262
|
+
name
|
|
263
|
+
startsAt
|
|
264
|
+
endsAt
|
|
265
|
+
team {
|
|
266
|
+
id
|
|
267
|
+
name
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}`),t=new Map;for(let i of e.teams.nodes)for(let e of[...i.activeCycle?[i.activeCycle]:[],...i.cycles.nodes])t.has(e.id)||t.set(e.id,{id:e.id,number:e.number,name:e.name,startsAt:e.startsAt,endsAt:e.endsAt,teamId:e.team?.id??i.id,teamName:e.team?.name??i.name});return[...t.values()].sort((e,t)=>new Date(t.startsAt).getTime()-new Date(e.startsAt).getTime())}async updateIssueStatus(e,t){let i=e.trim(),r=t.trim();if(!i)throw Error("Issue id is required");if(!r)throw Error("Status name is required");let a=await this.request(`query {
|
|
274
|
+
issue(id: ${JSON.stringify(i)}) {
|
|
275
|
+
id
|
|
276
|
+
team { id }
|
|
277
|
+
state { id name }
|
|
278
|
+
}
|
|
279
|
+
}`).then(e=>e.issue?{id:e.issue.id,teamId:e.issue.team?.id??null,currentStateId:e.issue.state?.id??null,currentStatus:e.issue.state?.name??null}:null);if(!a)throw Error(`Issue "${i}" not found in Linear`);if(!a.teamId)throw Error(`Issue "${i}" is missing a team in Linear`);if(a.currentStatus?.trim().toLowerCase()===r.toLowerCase()){let e=a.currentStatus.trim();return await this.request(`query {
|
|
280
|
+
issue(id: ${JSON.stringify(i)}) {
|
|
281
|
+
id
|
|
282
|
+
identifier
|
|
283
|
+
title
|
|
284
|
+
url
|
|
285
|
+
updatedAt
|
|
286
|
+
state { name }
|
|
287
|
+
assignee { name }
|
|
288
|
+
}
|
|
289
|
+
}`).then(t=>{if(!t.issue)throw Error(`Issue "${i}" not found in Linear`);return{id:t.issue.id,identifier:t.issue.identifier,title:t.issue.title,url:t.issue.url,updatedAt:t.issue.updatedAt,status:t.issue.state?.name??e,assignee:t.issue.assignee?.name??null}})}let s=(await this.request(`query {
|
|
290
|
+
team(id: ${JSON.stringify(a.teamId)}) {
|
|
291
|
+
states {
|
|
292
|
+
nodes {
|
|
293
|
+
id
|
|
294
|
+
name
|
|
295
|
+
position
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}`).then(e=>e.team?.states?.nodes??[])).slice().sort((e,t)=>e.position-t.position).find(e=>e.name.trim().toLowerCase()===r.toLowerCase());if(!s)throw Error(`Linear status "${r}" was not found for this issue's team`);let n=await this.request(`mutation {
|
|
300
|
+
issueUpdate(
|
|
301
|
+
id: ${JSON.stringify(i)},
|
|
302
|
+
input: { stateId: ${JSON.stringify(s.id)} }
|
|
303
|
+
) {
|
|
304
|
+
success
|
|
305
|
+
issue {
|
|
306
|
+
id
|
|
307
|
+
identifier
|
|
308
|
+
title
|
|
309
|
+
url
|
|
310
|
+
updatedAt
|
|
311
|
+
state { name }
|
|
312
|
+
assignee { name }
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}`).then(e=>e.issueUpdate);if(!n.success||!n.issue)throw Error(`Linear rejected the status update for "${i}"`);return{id:n.issue.id,identifier:n.issue.identifier,title:n.issue.title,url:n.issue.url,updatedAt:n.issue.updatedAt,status:n.issue.state?.name??r,assignee:n.issue.assignee?.name??null}}async request(e){let t=await fetch("https://api.linear.app/graphql",{method:"POST",headers:{"Content-Type":"application/json",Authorization:this.accessToken},body:JSON.stringify({query:e}),cache:"no-store"}),i=await t.json();if(!t.ok||i.errors?.length)throw Error(i.errors?.map(e=>e.message).find(Boolean)??`Linear request failed with status ${t.status}`);if(!i.data)throw Error("Linear response did not include data");return i.data}}function l(){let e=function(){try{let e=(0,t.readFileSync)(n(),"utf8");return JSON.parse(e)}catch{}try{var e;let r=i.default.join(process.cwd(),".linear-token.json"),a=(0,t.readFileSync)(r,"utf8"),o=JSON.parse(a);e=o,(0,t.existsSync)(s)||(0,t.mkdirSync)(s,{recursive:!0}),(0,t.writeFileSync)(n(),JSON.stringify(e,null,2));try{(0,t.unlinkSync)(r)}catch{}return o}catch{return null}}();return e?new d(e.accessToken):null}var u=e.x("node:sqlite",()=>require("node:sqlite"),!0),c=e.i(801243);let p=process.env.AGX_LINEAR_DIR?.trim()||i.default.join(process.env.AGX_DATA_DIR||i.default.join(a.default.homedir(),".agx"),"linear"),m=i.default.join(p,"issues.sqlite");function _(e){return e?.trim()||null}function E(e){return Array.isArray(e)?Array.from(new Set(e.map(e=>"string"==typeof e?e.trim():"").filter(Boolean))):[]}function g(e){return new Date(e).toISOString()}function h(e){return{id:e.issue_id,identifier:e.identifier,title:e.title,description:e.description,labels:function(e){if(!e)return[];try{return E(JSON.parse(e))}catch{return[]}}(e.labels_json),url:e.url,status:e.status,assigneeId:e.assignee_id,assignee:e.assignee_name,assigneeEmail:e.assignee_email,isAssignedToMe:1===e.is_assigned_to_me,teamId:e.team_id,teamName:e.team_name,teamKey:e.team_key,cycleId:e.cycle_id,cycleName:e.cycle_name,cycleNumber:e.cycle_number,updatedAt:e.updated_at,pulledAt:g(e.pulled_at)}}async function f(e){await t.promises.mkdir(p,{recursive:!0});let i=new u.DatabaseSync(m);(0,c.pragmaSet)(i,"journal_mode = WAL");try{var r;return i.exec(`
|
|
316
|
+
CREATE TABLE IF NOT EXISTS linear_issues (
|
|
317
|
+
issue_id TEXT PRIMARY KEY,
|
|
318
|
+
identifier TEXT NOT NULL,
|
|
319
|
+
title TEXT NOT NULL,
|
|
320
|
+
description TEXT,
|
|
321
|
+
labels_json TEXT NOT NULL DEFAULT '[]',
|
|
322
|
+
url TEXT,
|
|
323
|
+
status TEXT NOT NULL,
|
|
324
|
+
assignee_id TEXT,
|
|
325
|
+
assignee_name TEXT,
|
|
326
|
+
assignee_email TEXT,
|
|
327
|
+
is_assigned_to_me INTEGER NOT NULL DEFAULT 0,
|
|
328
|
+
team_id TEXT,
|
|
329
|
+
team_name TEXT,
|
|
330
|
+
team_key TEXT,
|
|
331
|
+
cycle_id TEXT,
|
|
332
|
+
cycle_name TEXT,
|
|
333
|
+
cycle_number INTEGER,
|
|
334
|
+
updated_at TEXT NOT NULL,
|
|
335
|
+
pulled_at INTEGER NOT NULL
|
|
336
|
+
);
|
|
337
|
+
CREATE INDEX IF NOT EXISTS idx_linear_issues_updated
|
|
338
|
+
ON linear_issues (updated_at DESC, identifier ASC);
|
|
339
|
+
CREATE INDEX IF NOT EXISTS idx_linear_issues_cycle
|
|
340
|
+
ON linear_issues (cycle_id, updated_at DESC);
|
|
341
|
+
CREATE INDEX IF NOT EXISTS idx_linear_issues_assignee_me
|
|
342
|
+
ON linear_issues (is_assigned_to_me, updated_at DESC);
|
|
343
|
+
CREATE TABLE IF NOT EXISTS linear_issue_sync_state (
|
|
344
|
+
scope_key TEXT PRIMARY KEY,
|
|
345
|
+
last_pulled_at INTEGER NOT NULL,
|
|
346
|
+
issue_count INTEGER NOT NULL
|
|
347
|
+
);
|
|
348
|
+
`),r="linear_issues",i.prepare(`PRAGMA table_info(${r})`).all().some(e=>"labels_json"===e.name)||i.exec(`ALTER TABLE ${r} ADD COLUMN labels_json TEXT NOT NULL DEFAULT '[]'`),e(i)}finally{i.close()}}async function T(e){let t=e.pulledAtMs??Date.now();return f(i=>{i.exec("BEGIN");try{let s=i.prepare(`
|
|
349
|
+
INSERT INTO linear_issues (
|
|
350
|
+
issue_id, identifier, title, description, labels_json, url, status,
|
|
351
|
+
assignee_id, assignee_name, assignee_email, is_assigned_to_me,
|
|
352
|
+
team_id, team_name, team_key, cycle_id, cycle_name, cycle_number,
|
|
353
|
+
updated_at, pulled_at
|
|
354
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
355
|
+
ON CONFLICT(issue_id) DO UPDATE SET
|
|
356
|
+
identifier = excluded.identifier,
|
|
357
|
+
title = excluded.title,
|
|
358
|
+
description = excluded.description,
|
|
359
|
+
labels_json = excluded.labels_json,
|
|
360
|
+
url = excluded.url,
|
|
361
|
+
status = excluded.status,
|
|
362
|
+
assignee_id = excluded.assignee_id,
|
|
363
|
+
assignee_name = excluded.assignee_name,
|
|
364
|
+
assignee_email = excluded.assignee_email,
|
|
365
|
+
is_assigned_to_me = excluded.is_assigned_to_me,
|
|
366
|
+
team_id = excluded.team_id,
|
|
367
|
+
team_name = excluded.team_name,
|
|
368
|
+
team_key = excluded.team_key,
|
|
369
|
+
cycle_id = excluded.cycle_id,
|
|
370
|
+
cycle_name = excluded.cycle_name,
|
|
371
|
+
cycle_number = excluded.cycle_number,
|
|
372
|
+
updated_at = excluded.updated_at,
|
|
373
|
+
pulled_at = excluded.pulled_at
|
|
374
|
+
`);for(let i of e.issues){var r,a;s.run(i.id.trim(),i.identifier.trim(),i.title.trim(),_(i.description??null),(r=i.labels,JSON.stringify(E(r??[]))),_(i.url??null),i.status.trim(),_(i.assigneeId??null),_(i.assignee??null),_(i.assigneeEmail??null),+!!i.isAssignedToMe,_(i.teamId??null),_(i.teamName??null),_(i.teamKey??null),_(i.cycleId??null),_(i.cycleName??null),(a=i.cycleNumber??null,"number"==typeof a&&Number.isFinite(a)?a:null),i.updatedAt.trim(),t)}if(e.complete)if(0===e.issues.length)i.exec("DELETE FROM linear_issues");else{let t=e.issues.map(()=>"?").join(", ");i.prepare(`DELETE FROM linear_issues WHERE issue_id NOT IN (${t})`).run(...e.issues.map(e=>e.id.trim()))}i.exec("COMMIT")}catch(e){throw i.exec("ROLLBACK"),e}})}async function y(e,t,i=Date.now()){let r=e.trim()||"global";return f(e=>{e.prepare(`
|
|
375
|
+
INSERT INTO linear_issue_sync_state (scope_key, last_pulled_at, issue_count)
|
|
376
|
+
VALUES (?, ?, ?)
|
|
377
|
+
ON CONFLICT(scope_key) DO UPDATE SET
|
|
378
|
+
last_pulled_at = excluded.last_pulled_at,
|
|
379
|
+
issue_count = excluded.issue_count
|
|
380
|
+
`).run(r,i,t)})}async function b(e="global"){let t=e.trim()||"global";return f(e=>{let i=e.prepare(`SELECT scope_key, last_pulled_at, issue_count
|
|
381
|
+
FROM linear_issue_sync_state
|
|
382
|
+
WHERE scope_key = ?
|
|
383
|
+
LIMIT 1`).get(t);return i?{scopeKey:i.scope_key,lastPulledAt:g(i.last_pulled_at),issueCount:i.issue_count}:null})}async function I(){return f(e=>{let t=e.prepare("SELECT COUNT(*) AS count FROM linear_issues").get();return t?.count??0})}async function L(e={}){let t=Number.isFinite(e.limit)?Math.min(Math.max(Number(e.limit),1),500):50,i=Number.isFinite(Number(e.cursor))?Math.max(Number(e.cursor),0):0;return f(r=>{let a,s=[],n=[],o=_(e.search??null);if(o){let e=`%${o.toLowerCase().replace(/[\\%_]/g,"\\$&")}%`;s.push("(LOWER(identifier) LIKE ? ESCAPE '\\' OR LOWER(title) LIKE ? ESCAPE '\\' OR LOWER(COALESCE(description, '')) LIKE ? ESCAPE '\\')"),n.push(e,e,e)}let d=Array.from(new Set((e.statuses??[]).map(e=>_(e)).filter(e=>!!e).map(e=>e.toLowerCase())));d.length>0&&(s.push(`LOWER(status) IN (${d.map(()=>"?").join(", ")})`),n.push(...d));let l=Array.from(new Set((e.assigneeIds??[]).map(e=>_(e)).filter(e=>!!e)));l.length>0&&(s.push(`assignee_id IN (${l.map(()=>"?").join(", ")})`),n.push(...l)),e.assignedToMe&&s.push("is_assigned_to_me = 1");let u=_(e.teamId??null);u&&(s.push("team_id = ?"),n.push(u));let c=_(e.cycleId??null);if(c&&(s.push("cycle_id = ?"),n.push(c)),e.hasActivity&&e.activityMap){let t=Array.from(e.activityMap.keys());if(0===t.length)return{issues:[],pageInfo:{hasNextPage:!1,endCursor:null}};s.push(`issue_id IN (${t.map(()=>"?").join(", ")})`),n.push(...t)}let p=s.length>0?`WHERE ${s.join(" AND ")}`:"",m=e.sortBy??"activity",E=e.sortDir??"desc",g="asc"===E?"ASC":"DESC";if("activity"===m&&e.activityMap&&e.activityMap.size>0){let a=Array.from(e.activityMap.keys()),s=a.map(()=>"?").join(", "),o=p?`${p} AND issue_id IN (${s})`:`WHERE issue_id IN (${s})`,d=r.prepare(`SELECT * FROM linear_issues ${o} ORDER BY updated_at DESC, identifier ASC`).all(...n,...a),l=e.activityMap;d.sort((e,t)=>{let i=l.get(e.issue_id)??"",r=l.get(t.issue_id)??"";return"desc"===E?r.localeCompare(i):i.localeCompare(r)});let u=[];if(!e.hasActivity){let e=p?`${p} AND issue_id NOT IN (${s})`:`WHERE issue_id NOT IN (${s})`;u=r.prepare(`SELECT * FROM linear_issues ${e} ORDER BY updated_at DESC, identifier ASC`).all(...n,...a)}let c=[...d,...u].slice(i,i+t+1),m=c.length>t,_=m?c.slice(0,t):c,g=m?String(i+t):null;return{issues:_.map(h),pageInfo:{hasNextPage:m,endCursor:g}}}switch(m){case"identifier":a=`ORDER BY identifier ${g}`;break;case"status":a=`ORDER BY LOWER(status) ${g}, identifier ASC`;break;case"created":a=`ORDER BY pulled_at ${g}, identifier ASC`;break;default:a=`ORDER BY updated_at ${g}, identifier ASC`}let f=r.prepare(`SELECT *
|
|
384
|
+
FROM linear_issues
|
|
385
|
+
${p}
|
|
386
|
+
${a}
|
|
387
|
+
LIMIT ? OFFSET ?`).all(...n,t+1,i),T=f.length>t,y=T?f.slice(0,t):f,b=T?String(i+t):null;return{issues:y.map(h),pageInfo:{hasNextPage:T,endCursor:b}}})}var A=e.i(341902);let R="global";function N(e){let t=String(e??"").trim().toLowerCase();return t?`project:${t}`:R}function S(e){t.default.mkdirSync(e,{recursive:!0})}function O(e,r){S(i.default.dirname(e));let a=`${e}.tmp-${process.pid}-${Date.now()}`;t.default.writeFileSync(a,r,"utf8"),t.default.renameSync(a,e)}function v(e){return{id:e.id,identifier:e.identifier,title:e.title,url:e.url,status:e.status,assignee:e.assignee,updatedAt:e.updatedAt,labels:e.labels??[]}}function j(e,t){return e.trim().replace(/[\\/]/g,"-")||t}async function x(e={}){let t,a=l();if(!a)throw Error("Not connected");let s=await a.viewer,n=Date.now(),o=new Date(n).toISOString(),d=0,u=!0,c=[];for(;d<500;){let e=500-d,i=await a.issues({first:Math.min(100,e),after:t,orderBy:"updatedAt"}),r=await Promise.all(i.nodes.map(async e=>{let[t,i,r,a,n]=await Promise.all([e.labels,e.state,e.assignee,e.team,e.cycle]);return{id:e.id,identifier:e.identifier,title:e.title,description:e.description??null,labels:t,url:e.url,status:i?.name??"Unknown",assigneeId:r?.id??null,assignee:r?.name??null,assigneeEmail:r?.email??null,isAssignedToMe:!!(r?.id&&r.id===s.id),teamId:a?.id??null,teamName:a?.name??null,teamKey:a?.key??null,cycleId:n?.id??null,cycleName:n?.name??null,cycleNumber:n?.number??null,updatedAt:e.updatedAt}}));if(c.push(...r),d+=r.length,!i.pageInfo.hasNextPage||!i.pageInfo.endCursor)break;if(d>=500){u=!1;break}t=i.pageInfo.endCursor}await T({issues:c,complete:u,pulledAtMs:n}),await y(R,c.length,n);let p=N(e.projectSlug);return p!==R&&await y(p,c.length,n),!function(e,t,a){let s=function(e){let t=A.vaultStore.getRootDir(),r=String(e??"").trim();if(r){let e=A.vaultStore.getProjectWithRepos(r),a=e?.slug??r;return i.default.join(t,a,"issues")}return i.default.join(t,"_global","Linear","issues")}(a);S(s);let n=["# Linear Issues","",`Last pulled: ${t}`,""];for(let a of e){let e=i.default.join(s,j(a.identifier,a.id));!function(e,t,i){let a=(0,r.dump)(t,{lineWidth:120,noRefs:!0,sortKeys:!0}).trimEnd(),s=String(i||"").replace(/\r\n/g,"\n").split("\n").map(e=>e.replace(/\s+$/g,"")).join("\n").trim();O(e,s?`---
|
|
388
|
+
${a}
|
|
389
|
+
---
|
|
390
|
+
${s}
|
|
391
|
+
`:`---
|
|
392
|
+
${a}
|
|
393
|
+
---
|
|
394
|
+
`)}(i.default.join(e,"README.md"),{type:"linear-issue",issue_id:a.id,identifier:a.identifier,title:a.title,status:a.status,assignee_id:a.assigneeId??null,assignee_name:a.assignee??null,assignee_email:a.assigneeEmail??null,team_id:a.teamId??null,team_name:a.teamName??null,team_key:a.teamKey??null,cycle_id:a.cycleId??null,cycle_name:a.cycleName??null,cycle_number:a.cycleNumber??null,url:a.url??null,updated_at:a.updatedAt,pulled_at:t},[`# ${a.identifier}: ${a.title}`,"",`- Status: ${a.status}`,`- Assignee: ${a.assignee??"Unassigned"}`,a.teamName?`- Team: ${a.teamName}`:null,a.cycleName||null!=a.cycleNumber?`- Cycle: ${a.cycleName??`Cycle ${a.cycleNumber}`}`:null,a.labels?.length?`- Labels: ${a.labels.join(", ")}`:null,`- Updated in Linear: ${a.updatedAt}`,`- Pulled locally: ${t}`,a.url?`- URL: ${a.url}`:null,"","## Description","",a.description?.trim()||"_No description provided._"].filter(e=>null!==e).join("\n")),n.push(`- [${a.identifier}](${encodeURIComponent(j(a.identifier,a.id))}/README.md) - ${a.title} (${a.status})`)}O(i.default.join(s,"_index.md"),`${n.join("\n")}
|
|
395
|
+
`)}(c,o,e.projectSlug),{issueCount:c.length,complete:u,pulledAt:o}}async function C(e={}){let t=!!e.refresh,i=N(e.projectSlug);if(!t){let[e,t]=await Promise.all([I(),b(i)]);if(e>0&&t)return null}return l()?x({projectSlug:e.projectSlug}):null}async function D(e={}){let[t,i]=await Promise.all([L(e),b(R)]);return{issues:t.issues.map(v),pageInfo:t.pageInfo,syncState:{lastPulledAt:i?.lastPulledAt??null}}}e.s(["ensureLinearIssueCache",0,C,"listLinearIssueSummaries",0,D],716657)},221834,e=>{"use strict";var t=e.i(716657);let i=new Set(["done","cancelled","canceled","duplicate"]);function r(e){return i.has(String(e??"").trim().toLowerCase())}async function a(e){let i=await (0,t.ensureLinearIssueCache)({refresh:e.refresh,projectSlug:e.projectSlug}),{issues:r}=await (0,t.listLinearIssueSummaries)({limit:e.limit??500});return{issues:r.filter(t=>(t.labels??[]).some(t=>{var i;return i=e.objectiveKey,t.trim().toLowerCase()===i.trim().toLowerCase()})),refreshedAt:i?.pulledAt??null}}e.s(["filterObjectiveLinearIssuesForAction",0,function(e,t=[]){let i=new Set(Array.from(t,e=>e.trim()).filter(Boolean));return e.filter(e=>!r(e.status)&&!i.has(e.id))},"isObjectiveLinearTerminalStatus",0,r,"listObjectiveLinearIssues",0,a])}];
|
|
396
|
+
|
|
397
|
+
//# sourceMappingURL=apps_local_0a15wtk._.js.map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module.exports=[577251,e=>{"use strict";var t=e.i(522734),r=e.i(814747),i=e.i(446786),a=e.i(180228);let o=/^---\s*\n([\s\S]*?)\n---\s*(?:\n([\s\S]*))?$/,n=new Set(["metric-check","status-update","milestone","note"]);function s(e,t=""){return"string"==typeof e?e:t}class l{rootDir;constructor(e){this.rootDir=r.default.resolve(e)}ensureDir(){t.default.mkdirSync(this.rootDir,{recursive:!0})}readAll(){if(!t.default.existsSync(this.rootDir))return[];let e=t.default.readdirSync(this.rootDir).filter(e=>e.endsWith(".md")),i=[];for(let l of e){let e=r.default.join(this.rootDir,l);try{let r=t.default.readFileSync(e,"utf8");i.push(function(e,t={}){var r;let i=e.match(o);if(!i)throw Error(`Activity file is missing YAML frontmatter${t.filePath?` (${t.filePath})`:""}.`);let[,l,d=""]=i,c=(0,a.load)(l,{...t.filePath?{filename:t.filePath}:{}}),u=c&&"object"==typeof c&&!Array.isArray(c)?c:{};return{id:s(u.id),source:s(u.source,"manual"),objectiveLabel:s(u.objectiveLabel),createdAt:function(e,t="1970-01-01T00:00:00.000Z"){if("string"!=typeof e)return t;let r=Date.parse(e);return Number.isNaN(r)?t:new Date(r).toISOString()}(u.createdAt),type:"string"==typeof(r=u.type)&&n.has(r)?r:"note",body:d.trim()}}(r,{filePath:e}))}catch(t){console.error(`[activities] failed to read ${e}:`,t)}}return i.sort((e,t)=>Date.parse(t.createdAt)-Date.parse(e.createdAt))}list(e={}){let t=this.readAll();if(e.type&&(t=t.filter(t=>t.type===e.type)),e.source&&(t=t.filter(t=>t.source===e.source)),e.from){let r=Date.parse(e.from);Number.isNaN(r)||(t=t.filter(e=>Date.parse(e.createdAt)>=r))}if(e.to){let r=Date.parse(e.to);Number.isNaN(r)||(t=t.filter(e=>Date.parse(e.createdAt)<=r))}let r=t.length,i=Math.max(1,e.page??1),a=Math.min(100,Math.max(1,e.limit??25)),o=(i-1)*a;return{activities:t.slice(o,o+a),total:r,page:i,limit:a,hasMore:o+a<r}}append(e){var i;let o,n,s,l,d;this.ensureDir();let c=(l=(i=e).createdAt.replace(/[:.]/g,"-").replace("T","-").replace("Z",""),d=i.type.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48),`${l}-${d}.md`),u=r.default.join(this.rootDir,c),f=(o={id:e.id,source:e.source,objectiveLabel:e.objectiveLabel,createdAt:e.createdAt,type:e.type},n=(0,a.dump)(o,{lineWidth:120,noRefs:!0,sortKeys:!1}).trimEnd(),(s=e.body.trim())?`---
|
|
2
|
+
${n}
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
${s}
|
|
6
|
+
`:`---
|
|
7
|
+
${n}
|
|
8
|
+
---
|
|
9
|
+
`);return t.default.writeFileSync(u,f,"utf8"),u}}let d=new Map;e.s(["getActivityRepository",0,function(e,t){let a,o=r.default.join((a=process.env.AGX_DATA_DIR?.trim())?r.default.resolve(a):r.default.join((0,i.homedir)(),".agx"),"projects",e,"objectives",t,"activities"),n=d.get(o);return n||(n=new l(o),d.set(o,n)),n}],577251)},533111,782557,e=>{"use strict";var t=e.i(180228);let r=/^---\s*\n([\s\S]*?)\n---\s*(?:\n([\s\S]*))?$/;function i(e,t=""){return"string"==typeof e?e:t}function a(e,t="1970-01-01T00:00:00.000Z"){if("string"!=typeof e)return t;let r=Date.parse(e);return Number.isNaN(r)?t:new Date(r).toISOString()}function o(e,n={}){let s=e.match(r);if(!s)throw Error(`Note file is missing YAML frontmatter${n.filePath?` (${n.filePath})`:""}.`);let[,l,d=""]=s,c=(0,t.load)(l,{...n.filePath?{filename:n.filePath}:{}}),u=c&&"object"==typeof c&&!Array.isArray(c)?c:{},f=a(u.createdAt),h=a(u.updatedAt,f);return{id:i(u.id),title:i(u.title,"Untitled"),objectiveId:i(u.objectiveId),createdAt:f,updatedAt:h,body:d.trim()}}function n(e){let r={id:e.id,title:e.title,objectiveId:e.objectiveId,createdAt:e.createdAt,updatedAt:e.updatedAt},i=(0,t.dump)(r,{lineWidth:120,noRefs:!0,sortKeys:!1}).trimEnd(),a=e.body.trim();return a?`---
|
|
10
|
+
${i}
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
${a}
|
|
14
|
+
`:`---
|
|
15
|
+
${i}
|
|
16
|
+
---
|
|
17
|
+
`}var s=e.i(522734),l=e.i(814747),d=e.i(446786);function c(e){let t=e.createdAt.replace(/[:.]/g,"-").replace("T","-").replace("Z",""),r=e.title.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48);return`${t}-${r}.md`}class u{rootDir;constructor(e){this.rootDir=l.default.resolve(e)}ensureDir(){s.default.mkdirSync(this.rootDir,{recursive:!0})}readAll(){if(!s.default.existsSync(this.rootDir))return[];let e=s.default.readdirSync(this.rootDir).filter(e=>e.endsWith(".md")),t=[];for(let r of e){let e=l.default.join(this.rootDir,r);try{let r=s.default.readFileSync(e,"utf8");t.push(o(r,{filePath:e}))}catch(t){console.error(`[notes] failed to read ${e}:`,t)}}return t.sort((e,t)=>Date.parse(t.createdAt)-Date.parse(e.createdAt))}list(e={}){let t=this.readAll(),r=t.length,i=Math.max(1,e.page??1),a=Math.min(100,Math.max(1,e.limit??25)),o=(i-1)*a;return{notes:t.slice(o,o+a),total:r,page:i,limit:a,hasMore:o+a<r}}append(e){this.ensureDir();let t=c(e),r=l.default.join(this.rootDir,t),i=n(e);return s.default.writeFileSync(r,i,"utf8"),r}findById(e){return this.readAll().find(t=>t.id===e)??null}update(e,t){if(!s.default.existsSync(this.rootDir))return null;for(let r of s.default.readdirSync(this.rootDir).filter(e=>e.endsWith(".md"))){let i,a,d=l.default.join(this.rootDir,r);try{i=s.default.readFileSync(d,"utf8")}catch{continue}try{a=o(i,{filePath:d})}catch{continue}if(a.id!==e)continue;let u={...a,title:t.title??a.title,body:t.body??a.body,updatedAt:new Date().toISOString()},f=c(u),h=l.default.join(this.rootDir,f);return s.default.writeFileSync(h,n(u),"utf8"),h!==d&&s.default.unlinkSync(d),u}return null}delete(e){if(!s.default.existsSync(this.rootDir))return!1;for(let t of s.default.readdirSync(this.rootDir).filter(e=>e.endsWith(".md"))){let r,i,a=l.default.join(this.rootDir,t);try{r=s.default.readFileSync(a,"utf8")}catch{continue}try{i=o(r,{filePath:a})}catch{continue}if(i.id===e)return s.default.unlinkSync(a),!0}return!1}}let f=new Map;e.s(["NoteRepository",0,u,"getNoteRepository",0,function(e,t){let r,i=l.default.join((r=process.env.AGX_DATA_DIR?.trim())?l.default.resolve(r):l.default.join((0,d.homedir)(),".agx"),"projects",e,"objectives",t,"notes"),a=f.get(i);return a||(a=new u(i),f.set(i,a)),a}],782557),e.s([],533111)},994281,803087,137199,e=>{"use strict";let t="project_objectives_workspace",r="project_goals_workspace",i="project_health_snapshot",a=new Set(["on_track","at_risk","off_track","done"]);function o(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function n(e){return`${e}_${Math.random().toString(36).slice(2,10)}`}function s(e){return[...e].sort((e,t)=>Date.parse(t.updatedAt)-Date.parse(e.updatedAt))}function l(e){return[...e].sort((e,t)=>Date.parse(e.createdAt)-Date.parse(t.createdAt))}function d(e){return[...e].sort((e,t)=>Date.parse(t.createdAt)-Date.parse(e.createdAt))}function c(e,t=""){return"string"==typeof e?e:t}function u(e,t="1970-01-01T00:00:00.000Z"){if("string"!=typeof e)return t;let r=Date.parse(e);return Number.isNaN(r)?t:new Date(r).toISOString()}function f(e){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function h(e){return"string"==typeof e&&a.has(e)?e:"on_track"}function p(e,t="objective"){let r=e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/-{2,}/g,"-").slice(0,32);return r||t.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"objective"}function y(e){var t;if(!o(e))return null;let r=u(e.updatedAt??e.createdAt),i=u(e.createdAt,r);return{id:c(e.id,n("objective")),title:c(e.title,"Untitled objective"),teamId:c(e.teamId??e.team_id??e.ownerTeamId),key:p(c(e.key??e.slug??e.label),c(e.title??e.id,"objective")),threadId:c(e.threadId)||null,chatSessionVersion:function(e,t=0){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.floor(e)):t}(e.chatSessionVersion,0),scheduledTaskIds:Array.isArray(t=e.scheduledTaskIds??e.promptJobIds)?Array.from(new Set(t.map(e=>"string"==typeof e?e.trim():"").filter(Boolean))):[],summary:c(e.summary),progress:f(e.progress),status:h(e.status),createdAt:i,updatedAt:r}}function m(e){if(!o(e))return null;let t=u(e.updatedAt??e.createdAt),r=u(e.createdAt,t),i=c(e.objectiveId??e.goalId);return i?{id:c(e.id,n("objective_activity")),objectiveId:i,sourceType:"note",sourceLabel:c(e.sourceLabel,"Update"),title:c(e.title,"Untitled activity"),body:c(e.body),createdAt:r,updatedAt:t,relatedTaskId:c(e.relatedTaskId)||null}:null}function v(e){if(!o(e))return null;let t=c(e.activityId);return t?{id:c(e.id,n("objective_thread_message")),activityId:t,author:c(e.author,"You"),body:c(e.body),createdAt:u(e.createdAt)}:null}function j(){return{objectives:[],activities:[],activityThreads:{}}}function b(e){let t;if(!o(e))return j();let r=Array.isArray(e.objectives)?e.objectives.map(e=>y(e)).filter(e=>null!==e):[],i=Array.isArray(e.activities)?e.activities.map(e=>m(e)).filter(e=>null!==e):[],a=o(e.activityThreads)?Object.fromEntries(Object.entries(e.activityThreads).map(([e,t])=>[e,l(Array.isArray(t)?t.map(e=>v(e)).filter(e=>null!==e):[])])):{};return{objectives:s((t=new Set,r.map(e=>{let r=function(e,t,r="objective"){let i=p(r),a=p(e,i),o=a,n=2;for(;t.has(o);){let e=`-${n}`,t=Math.max(1,32-e.length);o=`${a.slice(0,t)}${e}`,n+=1}return t.add(o),o}(e.key||e.title||e.id,t,e.id||e.title||"objective");return e.key===r?e:{...e,key:r}}))),activities:d(i),activityThreads:a}}e.s(["normalizeProjectHealthProgress",0,function(e){return f(e)},"normalizeProjectHealthStatus",0,function(e){return h(e)},"readProjectObjectivesWorkspace",0,function(e){if(!o(e))return j();let i=e[t];if(void 0!==i){let e=b(i);if(e.objectives.length>0||e.activities.length>0||Object.keys(e.activityThreads).length>0)return e}let a=e[r];if(void 0!==a){if(!o(a))return j();let e=Array.isArray(a.goals)?a.goals.map(e=>(function(e){if(!o(e))return null;let t=c(e.target),r=[c(e.summary),t?`Measure: ${t}`:""].filter(Boolean).join("\n\n");return y({...e,summary:r})})(e)).filter(e=>null!==e):[],t=Array.isArray(a.manualActivities)?a.manualActivities.map(e=>m({...e,sourceLabel:"Update"})).filter(e=>null!==e):[],r=o(a.activityThreads)?Object.fromEntries(Object.entries(a.activityThreads).map(([e,t])=>[e,l(Array.isArray(t)?t.map(t=>v({...t,activityId:e})).filter(e=>null!==e):[])])):{};return{objectives:s(e),activities:d(t),activityThreads:r}}return j()},"upsertProjectObjective",0,function(e,t){let r=e.objectives.findIndex(e=>e.id===t.id)>=0?e.objectives.map(e=>e.id===t.id?t:e):[t,...e.objectives];return{...e,objectives:s(r)}},"writeProjectHealthSnapshot",0,function(e,t){let r={...e};return t?r[i]={progress:f(t.progress),status:h(t.status),updatedAt:u(t.updatedAt),...t.source?{source:t.source.trim()}:{},...t.objectiveId?{objectiveId:t.objectiveId}:{},...t.objectiveKey?{objectiveKey:t.objectiveKey}:{},...t.note?{note:t.note.trim()}:{}}:delete r[i],r},"writeProjectObjectivesWorkspace",0,function(e,i){let a={...e};return delete a[r],a[t]=b(i),a}],994281);var A=e.i(180228);let S=/^---\s*\n([\s\S]*?)\n---\s*(?:\n([\s\S]*))?$/;function g(e,t=""){return"string"==typeof e?e:t}function D(e,t="1970-01-01T00:00:00.000Z"){if("string"!=typeof e)return t;let r=Date.parse(e);return Number.isNaN(r)?t:new Date(r).toISOString()}let k=new Set(["on_track","at_risk","off_track","done"]);e.s(["parseObjectiveMarkdown",0,function(e,t={}){var r,i,a,o;let n,s,l=e.match(S);if(!l)throw Error(`Objective file is missing YAML frontmatter${t.filePath?` (${t.filePath})`:""}.`);let[,d,c=""]=l,u=!(r=(0,A.load)(d,{...t.filePath?{filename:t.filePath}:{}}))||"object"!=typeof r||Array.isArray(r)?{}:r,{summary:f,activities:h,activityThreads:p}=function(e,t){let r=e.split(/(?=^## )/m),i="",a=[],o={};for(let e of r){let r=e.trim();if(r){if(r.startsWith("## Notes")){i=r.replace(/^## Notes\s*/,"").trim();continue}if(r.startsWith("## Activities")){for(let e of r.split(/(?=^### )/m).slice(1)){let r=function(e,t){let r=e.split("\n"),i=r[0];if(!i)return null;let a=i.replace(/^###\s+/,"").trim();if(!a)return null;let o="",n="Update",s="",l="",d=null,c=[],u=!1;for(let e=1;e<r.length;e++){let t=r[e];if(t.startsWith("#### Replies")){u=!0;continue}if(u){let e=t.match(/^- \*\*(.+?)\*\*\s+\((\d{4}-\S+)\):\s*(.+)$/);if(e){let[,t,r,i]=e;c.push({id:`reply_${Math.random().toString(36).slice(2,10)}`,activityId:o,author:t,body:i,createdAt:D(r)})}continue}let i=t.match(/^- \*\*(\w+):\*\*\s*(.+)$/);if(i){let[,e,t]=i;switch(e){case"id":o=t.trim();break;case"source":n=t.trim();break;case"created":s=D(t.trim());break;case"body":l=t.trim();break;case"relatedTaskId":d=t.trim()||null}continue}}for(let e of(o||(o=`objective_activity_${Math.random().toString(36).slice(2,10)}`),s||(s=new Date().toISOString()),c))e.activityId=o;return{activity:{id:o,objectiveId:t,sourceType:"note",sourceLabel:n,title:a,body:l,createdAt:s,updatedAt:s,relatedTaskId:d},replies:c}}(e.trim(),t);r&&(a.push(r.activity),r.replies.length>0&&(o[r.activity.id]=r.replies))}continue}r.startsWith("## ")||(i=r)}}return{summary:i,activities:a,activityThreads:o}}(c,g(u.id));return{objective:(n=D(u.updatedAt??u.createdAt),s=D(u.createdAt,n),{id:g(u.id),title:g(u.title,"Untitled objective"),teamId:g(u.teamId),key:g(u.key),threadId:g(u.threadId)||null,chatSessionVersion:function(e,t=0){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.floor(e)):t}(u.chatSessionVersion,0),scheduledTaskIds:Array.isArray(i=u.scheduledTaskIds)?i.map(e=>"string"==typeof e?e.trim():"").filter(Boolean):[],summary:f,progress:"number"==typeof(a=u.progress)&&Number.isFinite(a)?Math.max(0,Math.min(100,Math.round(a))):0,status:"string"==typeof(o=u.status)&&k.has(o)?o:"on_track",createdAt:s,updatedAt:n}),activities:h,activityThreads:p}}],803087),e.s(["serializeObjectiveFile",0,function(e,t,r){let i,a=(i=function(e){let t={};for(let[r,i]of Object.entries(e))null!=i&&""!==i&&(Array.isArray(i)&&0===i.length||(t[r]=i));return t}({id:e.id,title:e.title,teamId:e.teamId,key:e.key,status:e.status,progress:e.progress||void 0,threadId:e.threadId,chatSessionVersion:e.chatSessionVersion||void 0,scheduledTaskIds:e.scheduledTaskIds.length>0?e.scheduledTaskIds:void 0,createdAt:e.createdAt,updatedAt:e.updatedAt}),(0,A.dump)(i,{lineWidth:120,noRefs:!0,sortKeys:!1}).trimEnd()),o=[],n=t.filter(t=>t.objectiveId===e.id).sort((e,t)=>Date.parse(t.createdAt)-Date.parse(e.createdAt));if(n.length>0){let e=["## Activities"];for(let t of n){let i=function(e){let t=[];return t.push(`### ${e.title}`),t.push(`- **id:** ${e.id}`),t.push(`- **source:** ${e.sourceLabel}`),t.push(`- **created:** ${e.createdAt}`),e.body&&t.push(`- **body:** ${e.body}`),e.relatedTaskId&&t.push(`- **relatedTaskId:** ${e.relatedTaskId}`),t.join("\n")}(t),a=function(e){if(0===e.length)return"";let t=["#### Replies"];for(let r of e)t.push(`- **${r.author}** (${r.createdAt}): ${r.body}`);return t.join("\n")}(r[t.id]??[]);e.push(a?`${i}
|
|
18
|
+
|
|
19
|
+
${a}`:i)}o.push(e.join("\n\n"))}let s=o.join("\n\n");return s.length>0?`---
|
|
20
|
+
${a}
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
${s}
|
|
24
|
+
`:`---
|
|
25
|
+
${a}
|
|
26
|
+
---
|
|
27
|
+
`}],137199)},700014,e=>{"use strict";var t=e.i(929160),r=e.i(864075),i=e.i(994281),a=e.i(522734),o=e.i(814747),n=e.i(446786),s=e.i(803087),l=e.i(137199);e.i(533111);var d=e.i(782557);class c{rootDir;constructor(e){this.rootDir=o.default.resolve(e)}ensureDir(){a.default.mkdirSync(this.rootDir,{recursive:!0})}readWorkspace(){if(!a.default.existsSync(this.rootDir))return{objectives:[],activities:[],activityThreads:{}};let e=a.default.readdirSync(this.rootDir).filter(e=>e.endsWith(".md")),t=[],r=[],i={};for(let n of e){let e=o.default.join(this.rootDir,n);try{let n=a.default.readFileSync(e,"utf8"),l=(0,s.parseObjectiveMarkdown)(n,{filePath:e}),c=l.objective,u=new d.NoteRepository(o.default.join(this.rootDir,c.key,"notes")),f=u.readAll();if(0===f.length&&c.summary.trim()){let e=new Date().toISOString(),t={id:`note_${Math.random().toString(36).slice(2,10)}`,title:"Notes",objectiveId:c.id,createdAt:e,updatedAt:e,body:c.summary};u.append(t),f=[t]}c.notes=f,f.length>0&&(c.summary=f[0].body),t.push(c),r.push(...l.activities),Object.assign(i,l.activityThreads)}catch(t){console.error(`[objectives] failed to read ${e}:`,t)}}return{objectives:t,activities:r,activityThreads:i}}writeWorkspace(e){this.ensureDir();let t=a.default.existsSync(this.rootDir)?new Set(a.default.readdirSync(this.rootDir).filter(e=>e.endsWith(".md"))):new Set,r=new Set;for(let t of e.objectives){let i=`${t.key}.md`,n=o.default.join(this.rootDir,i),s=(0,l.serializeObjectiveFile)(t,e.activities,e.activityThreads);a.default.writeFileSync(n,s,"utf8"),r.add(i)}for(let i of t)if(!r.has(i)){let t=o.default.join(this.rootDir,i);try{let r=a.default.readFileSync(t,"utf8"),n=(0,s.parseObjectiveMarkdown)(r,{filePath:t}),l=i.replace(/\.md$/,""),d=e.objectives.find(e=>e.id===n.objective.id);if(d&&d.key!==l){let e=o.default.join(this.rootDir,l),t=o.default.join(this.rootDir,d.key);a.default.existsSync(e)&&a.default.renameSync(e,t)}a.default.rmSync(t,{force:!0})}catch{a.default.rmSync(t,{force:!0})}}}findObjectiveByKey(e){let t=o.default.join(this.rootDir,`${e}.md`);if(!a.default.existsSync(t))return null;try{let e=a.default.readFileSync(t,"utf8");return(0,s.parseObjectiveMarkdown)(e,{filePath:t}).objective}catch{return null}}findObjectiveById(e){if(!a.default.existsSync(this.rootDir))return null;for(let t of a.default.readdirSync(this.rootDir).filter(e=>e.endsWith(".md"))){let r=o.default.join(this.rootDir,t);try{let t=a.default.readFileSync(r,"utf8"),i=(0,s.parseObjectiveMarkdown)(t,{filePath:r});if(i.objective.id===e)return i.objective}catch{continue}}return null}deleteObjective(e){let t=o.default.join(this.rootDir,`${e}.md`);return!!a.default.existsSync(t)&&(a.default.rmSync(t,{force:!0}),!0)}hasFiles(){return!!a.default.existsSync(this.rootDir)&&a.default.readdirSync(this.rootDir).some(e=>e.endsWith(".md"))}}let u=new Map;function f(e){let t,r=o.default.join((t=process.env.AGX_DATA_DIR?.trim())?o.default.resolve(t):o.default.join((0,n.homedir)(),".agx"),"projects",e,"objectives"),i=u.get(r);return i||(i=new c(r),u.set(r,i)),i}async function h(e,a){var o;let n,s=await t.db.getProjectWithRepos(e,r.LOCAL_USER.id);if(!s)return null;let l=(n=f((o=s).slug??o.id)).hasFiles()?n.readWorkspace():(0,i.readProjectObjectivesWorkspace)(o.metadata),d=l.objectives.find(e=>e.id===a)??null;return d?{project:s,workspace:l,objective:d}:null}async function p(e){let a=await t.db.getProjectWithRepos(e.projectId,r.LOCAL_USER.id);f(a?.slug??e.projectId).writeWorkspace(e.workspace);let o=(0,i.writeProjectObjectivesWorkspace)(e.currentMetadata??{},e.workspace),n=e.transformMetadata?e.transformMetadata(o):o;return t.db.updateProject(e.projectId,r.LOCAL_USER.id,{metadata:n})}async function y(e){return t.db.updateProject(e.projectId,r.LOCAL_USER.id,{metadata:e.transformMetadata(e.currentMetadata??{})})}e.s(["loadProjectObjectiveContext",0,h,"persistProjectObjectiveMetadata",0,y,"persistProjectObjectiveWorkspace",0,p],700014)}];
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=apps_local_0bjdpen._.js.map
|