@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,6 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,827430,715908,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(810605),s=e.i(770703),n=e.i(245900),d=e.i(794731),o=e.i(929870),l=e.i(797167),i=e.i(580873),c=e.i(558201),u=e.i(203096),x=e.i(498027),m=e.i(248004),p=e.i(640481),f=e.i(169610),h=e.i(519132),v=e.i(66386);function g(e,t={}){let[a,s]=(0,r.useState)([]),[n,d]=(0,r.useState)(!0),[o,l]=(0,r.useState)(null),i=(0,r.useRef)(!1),c=t.requireProjectId??!1,u=t.includeObjectiveJobs??!1,x=t.objectiveId?.trim()||null,m=(0,r.useCallback)(async()=>{if(c&&!e){s([]),l(null),d(!1),i.current=!0;return}try{i.current||d(!0);let t=new URLSearchParams;e&&t.set("projectId",e),x&&t.set("objectiveId",x),u&&t.set("includeObjectiveJobs","true");let r=t.toString(),a=await fetch(`/api/prompt-jobs${r?`?${r}`:""}`);if(!a.ok)throw Error(`Failed to fetch: ${a.status}`);let n=await a.json();s(n.jobs??[]),l(null)}catch(e){l(e instanceof Error?e.message:String(e))}finally{d(!1),i.current=!0}},[u,x,e,c]);(0,r.useEffect)(()=>{i.current=!1,m();let e=setInterval(m,1e4);return()=>clearInterval(e)},[m]);let p=(0,r.useCallback)(async e=>{let t=await fetch("/api/prompt-jobs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});return t.ok&&await m(),t.ok},[m]),f=(0,r.useCallback)(async(e,t)=>{let r=await fetch(`/api/prompt-jobs/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});return r.ok&&await m(),r.ok},[m]),h=(0,r.useCallback)(async e=>{let t=await fetch(`/api/prompt-jobs/${e}`,{method:"DELETE"});return t.ok&&await m(),t.ok},[m]),v=(0,r.useCallback)(async e=>{let t="active"===e.state?"paused":"active",r=await fetch(`/api/prompt-jobs/${e.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({state:t})});return r.ok&&await m(),r.ok},[m]),b=(0,r.useCallback)(async e=>{let t=await fetch("/api/prompt-jobs/poll",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jobId:e})});return t.ok&&await m(),t.ok},[m]),j=(0,r.useCallback)(async e=>{let t=await fetch(`/api/prompt-jobs/${e}/cancel`,{method:"POST"});return t.ok&&await m(),t.ok},[m]);return{jobs:a,loading:n,error:o,refresh:m,createJob:p,updateJob:f,deleteJob:h,toggleJob:v,runNow:b,cancelRun:j,fetchRuns:(0,r.useCallback)(async e=>{let t=await fetch(`/api/prompt-jobs/${e}/runs`);return t.ok?(await t.json()).runs??[]:[]},[])}}e.s(["usePromptJobs",0,g],715908);var b=e.i(945028),j=e.i(490011),N=e.i(208343),w=e.i(423709),y=e.i(990933),k=e.i(553069),S=e.i(667480),C=e.i(154248);let I=[{value:"prompt",label:"Prompt",description:"Run a prompt on a schedule"},{value:"linear_worker",label:"Linear Worker",description:"Observe Linear workspace and decide what to work on"}],R=(0,s.default)(()=>e.A(501223).then(e=>e.Composer),{loadableGenerated:{modules:[844118]},ssr:!1}),$=(0,s.default)(()=>e.A(469612),{loadableGenerated:{modules:[668610]},ssr:!1});function P(e){return"active"===e.state&&(null!==e.nextRunAt&&e.nextRunAt-Date.now()<0?!e.lastRunAt||!(e.lastRunAt>=e.nextRunAt):!!e.prevScheduledAt&&!!e.lastRunAt&&e.lastRunAt>e.prevScheduledAt+3e5)}function A(e,t){if("paused"===t)return"Paused";if("stopped"===t)return"Stopped";if(null===e)return"Pending...";let r=e-Date.now();return r<0?"Overdue":r<6e4?`in ${Math.round(r/1e3)}s`:r<36e5?`in ${Math.round(r/6e4)}m`:r<864e5?`in ${Math.round(r/36e5)}h`:`in ${Math.round(r/864e5)}d`}function T(e){if(!e)return"—";let t=new Date(e);return t.toLocaleDateString("en-US",{month:"short",day:"numeric"})+", "+t.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit"})}function z({children:e}){return(0,t.jsx)("div",{className:"text-[10px] font-bold uppercase tracking-[0.12em] text-[var(--muted-foreground)]",children:e})}function E({children:e}){return(0,t.jsx)("label",{className:"block text-[10px] font-semibold text-[var(--muted-foreground)] uppercase tracking-widest mb-2",children:e})}function M(e,t,r=24){let a=t?t.replace("#",""):"e2e8f0";return`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${encodeURIComponent(e)}&size=${r}&backgroundColor=${a}`}function _({agents:e,value:a,onChange:s}){let[n,d]=(0,r.useState)(!1),o=e.find(e=>e.id===a);return(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(E,{children:"Agent"}),(0,t.jsxs)("button",{type:"button",onClick:()=>d(!n),className:"w-full flex items-center gap-2.5 px-3 py-2.5 rounded-lg border border-[var(--card-border)] bg-[var(--muted)] text-left transition-colors hover:border-[var(--muted-foreground)]",children:[o?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("img",{src:M(o.id,o.color),alt:"",className:"size-6 rounded-full shrink-0"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"text-xs font-medium text-[var(--foreground)] truncate",children:o.name}),(0,t.jsxs)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:[o.provider,o.model?` / ${o.model}`:""]})]})]}):(0,t.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"Select an agent..."}),(0,t.jsx)(x.ChevronDown,{size:14,className:`ml-auto text-[var(--muted-foreground)] transition-transform ${n?"rotate-180":""}`})]}),n&&(0,t.jsx)("div",{className:"absolute z-20 mt-1 w-full rounded-lg border border-[var(--card-border)] bg-[var(--card-bg)] shadow-lg max-h-[280px] overflow-y-auto",children:e.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>{s(e.id),d(!1)},className:`w-full flex items-center gap-2.5 px-3 py-2.5 text-left transition-colors hover:bg-[var(--muted)] ${a===e.id?"bg-[var(--muted)]":""}`,children:[(0,t.jsx)("img",{src:M(e.id,e.color),alt:"",className:"size-6 rounded-full shrink-0"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"text-xs font-medium text-[var(--foreground)] truncate",children:e.name}),(0,t.jsxs)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:[e.provider,e.model?` / ${e.model}`:""]})]}),a===e.id&&(0,t.jsx)("span",{className:"text-xs text-[var(--foreground)]",children:"✓"})]},e.id))})]})}function O({onClose:e,onSubmit:a,editingJob:s,createDefaults:n,contextLabel:d}){let[o,i]=(0,r.useState)([]),[c,u]=(0,r.useState)(s?.executionMode??n?.executionMode??"prompt"),[p,f]=(0,r.useState)(s?.name??n?.name??""),[h,v]=(0,r.useState)(s?.prompt??n?.prompt??""),[g,b]=(0,r.useState)(s?.agentId??n?.agentId??""),[j,N]=(0,r.useState)(s?.provider??n?.provider??"claude"),[w,y]=(0,r.useState)(s?.model??n?.model??"");(0,r.useEffect)(()=>{fetch("/api/prompt-jobs/agents").then(e=>e.json()).then(e=>i(e.agents??[])).catch(e=>console.warn("[PromptJobBoard] fetch agents failed:",e))},[]);let[k,R]=(0,r.useState)(s?.cliArgs??n?.cliArgs??""),[P,A]=(0,r.useState)(s?.cronExpr||s?.cadence||n?.cadence||""),[T,z]=(0,r.useState)(s?.condition??n?.condition??""),[M,U]=(0,r.useState)(!!(s?.cronExpr||s?.cadence||n?.cadence)),[L,J]=(0,r.useState)(s?.catchUpPolicy??n?.catchUpPolicy??"fire_once"),[D,F]=(0,r.useState)(!!s?.cliArgs||!!n?.cliArgs||s?.catchUpPolicy!=null&&"fire_once"!==s.catchUpPolicy||n?.catchUpPolicy!=null&&"fire_once"!==n.catchUpPolicy),[B,H]=(0,r.useState)(!1),q=async t=>{t.preventDefault(),p.trim()&&h.trim()&&P.trim()&&M&&(H(!0),await a({name:p.trim(),prompt:h.trim(),agentId:g,provider:j,model:w.trim(),cliArgs:k.trim(),catchUpPolicy:L,cadence:P.trim(),condition:T.trim(),executionMode:c}),H(!1),e())};return(0,t.jsxs)("div",{className:"h-full flex flex-col text-[var(--foreground)]",children:[(0,t.jsxs)("div",{className:"h-14 shrink-0 border-b border-[var(--card-border)] flex items-center justify-between px-6",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("button",{onClick:e,className:"p-1.5 rounded-md text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)] transition-colors",children:(0,t.jsx)(l.X,{size:18})}),(0,t.jsx)("h2",{className:"text-sm font-semibold",children:s?"Edit Scheduled Task":"New Scheduled Task"}),d?(0,t.jsx)("span",{className:"rounded-full border border-sky-500/25 bg-sky-500/10 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-[0.16em] text-sky-100",children:d}):null]}),(0,t.jsx)("button",{onClick:q,disabled:B||!p.trim()||!h.trim()||!P.trim()||!M,className:"px-5 py-2 rounded-lg text-sm font-medium bg-[var(--foreground)] text-[var(--background)] hover:opacity-90 disabled:opacity-40 transition-opacity",children:B?"Saving...":s?"Save Changes":"Create Task"})]}),(0,t.jsxs)("div",{className:"flex flex-1 min-h-0 overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex-1 border-r border-[var(--card-border)] flex flex-col min-w-0",children:[(0,t.jsx)("div",{className:"px-8 pt-8 pb-4",children:(0,t.jsx)("input",{type:"text",value:p,onChange:e=>f(e.target.value),placeholder:"Untitled job",className:"w-full text-2xl font-bold bg-transparent border-none outline-none placeholder:text-[var(--muted-foreground)]/40 text-[var(--foreground)]",autoFocus:!0})}),(0,t.jsxs)("div",{className:"flex-1 px-8 pb-8 overflow-y-auto",children:[(0,t.jsx)(E,{children:"Instructions"}),(0,t.jsx)("div",{className:"bg-[var(--card-bg)] border border-[var(--card-border)] rounded-xl overflow-hidden min-h-[300px]",children:(0,t.jsx)($,{content:h,onChange:e=>v(e),placeholder:"Describe what this prompt should do..."})})]})]}),(0,t.jsxs)("div",{className:"w-[380px] shrink-0 overflow-y-auto p-6 space-y-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(E,{children:"Type"}),(0,t.jsx)("div",{className:"space-y-1.5",children:I.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>{u(e.value),"linear_worker"===e.value&&(p.trim()||f(C.LINEAR_WORKER_JOB_NAME),h.trim()||v(C.LINEAR_WORKER_DEFAULT_PROMPT))},className:`w-full text-left px-3 py-2 rounded-lg border transition-all ${c===e.value?"border-[var(--foreground)] bg-[var(--foreground)]/5":"border-[var(--card-border)] bg-[var(--muted)] hover:border-[var(--muted-foreground)]"}`,children:[(0,t.jsx)("div",{className:"text-xs font-medium text-[var(--foreground)]",children:e.label}),(0,t.jsx)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:e.description})]},e.value))})]}),(0,t.jsx)(_,{agents:o,value:g,onChange:e=>{b(e);let t=o.find(t=>t.id===e);t?(N(t.provider),y(t.model??"")):(N("claude"),y(""))}}),(0,t.jsx)(S.ScheduleConditionPicker,{value:{cadence:P,condition:T},onChange:(e,t)=>{A(e.cadence),z(e.condition),U(t.isScheduleValid)},scheduleLabel:"Schedule",conditionLabel:"Condition",conditionHelpText:"Scheduled runs and Run now will check this condition before executing."}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("button",{type:"button",onClick:()=>F(!D),className:"flex items-center gap-1.5 text-[11px] text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:[(0,t.jsx)(m.Settings2,{size:12})," ",D?"Hide":"Show"," advanced",(0,t.jsx)(x.ChevronDown,{size:12,className:`transition-transform ${D?"rotate-180":""}`})]}),D&&(0,t.jsxs)("div",{className:"mt-3 space-y-3 pt-3 border-t border-[var(--card-border)]",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(E,{children:"CLI Arguments"}),(0,t.jsx)("input",{type:"text",value:k,onChange:e=>R(e.target.value),placeholder:"--dangerously-skip-permissions",className:"w-full bg-[var(--muted)] border border-[var(--card-border)] rounded-lg px-3 py-2 text-sm text-[var(--foreground)] placeholder:text-[var(--muted-foreground)] focus:outline-none focus:border-[var(--foreground)] transition-colors"}),(0,t.jsx)("p",{className:"text-[10px] text-[var(--muted-foreground)] mt-1",children:"Extra flags passed to the CLI command."})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(E,{children:"When missed"}),(0,t.jsx)("div",{className:"space-y-1.5",children:[{id:"fire_once",label:"Run once on recovery",desc:"Execute a single run regardless of how many were missed"},{id:"replay_all",label:"Run all missed",desc:"Queue one run per missed occurrence (use with caution)"},{id:"skip",label:"Skip and wait for next",desc:"Discard missed runs, wait for the next scheduled time"}].map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>J(e.id),className:`w-full text-left px-3 py-2 rounded-lg border transition-all ${L===e.id?"border-[var(--foreground)] bg-[var(--foreground)]/5":"border-[var(--card-border)] bg-[var(--muted)] hover:border-[var(--muted-foreground)]"}`,children:[(0,t.jsx)("div",{className:"text-xs font-medium text-[var(--foreground)]",children:e.label}),(0,t.jsx)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:e.desc})]},e.id))})]})]})]})]})]})]})}function U({run:e,job:a,agentMap:s}){let n=`prompt-run:${e.id}`,d=a.agentId&&s[a.agentId]?s[a.agentId].name:null,o=a.agentId?s[a.agentId]:null,[l,i]=(0,r.useState)(new Set);(0,r.useEffect)(()=>{a.projectId&&fetch(`/api/projects/${encodeURIComponent(a.projectId)}/agents`).then(e=>e.json()).then(e=>{i(new Set((e.agents??[]).map(e=>e.agent_id)))}).catch(e=>console.warn("[PromptJobBoard] fetch project agents failed:",e))},[a.projectId]);let u=(0,r.useMemo)(()=>Object.values(s).filter(e=>l.has(e.id)).map(e=>({id:e.id,name:e.name,title:e.title??void 0,provider:e.provider??"claude",model:e.model,color:e.color})),[s,l]),x=(0,r.useMemo)(()=>`run-root:${e.id}`,[e.id]),{messages:m,setMessages:p,sendMessage:v,loadHistory:g,chatRuns:k,stop:S}=(0,b.useGroupChat)(n),{processes:C,streaming:I,chatRuns:$}=(0,j.useProcessPolling)({workspaceId:n,threadId:x},{messages:m,setMessages:p}),P=(0,r.useMemo)(()=>{let e=[...k];for(let t of $)e.some(e=>e.chatRunId===t.chatRunId)||e.push(t);return e},[k,$]),A=P.some(e=>"queued"===e.status||"running"===e.status)||C.some(e=>"spawning"===e.state||"running"===e.state),T=A?P.some(e=>"queued"===e.status)?"queued":"working":"ready",z=(0,r.useRef)(!1);(0,r.useEffect)(()=>{g().then(()=>{if(!z.current){z.current=!0;let t=e.output?`[Automation run output]
|
|
2
|
+
|
|
3
|
+
${e.output}${e.error?`
|
|
4
|
+
|
|
5
|
+
[Error]
|
|
6
|
+
${e.error}`:""}`:"[Automation run — no output]";fetch("/api/history",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:n,messages:[{id:x,role:"assistant",participantId:a.agentId||null,content:t,timestamp:new Date(e.startedAt??e.createdAt).getTime(),rootMessageId:null,parentMessageId:null,depth:0}]})}).catch(e=>console.warn("[PromptJobBoard] save root message failed:",e))}})},[g,n,x,e,a.agentId]);let E=(0,r.useRef)(null),_=(0,r.useRef)(null),O=(0,r.useRef)(m.length);(0,r.useEffect)(()=>{m.length>O.current&&_.current?.scrollIntoView({behavior:"smooth"}),O.current=m.length},[m.length]);let L=(0,r.useCallback)((e,t,r,a,s,n,d)=>{let o=(0,y.orderParticipantIds)(Array.from(l),s);v(e,t,void 0,x,r,void 0,o.length>0?o:void 0,void 0,n,d)},[v,l,x]);return(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col overflow-hidden",children:[(0,t.jsx)("div",{className:"flex items-center justify-between border-b border-[var(--card-border)] px-4 py-2",children:(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"text-[12px] font-semibold text-[var(--foreground)] truncate",children:["Run ",e.id.slice(0,8)]}),(0,t.jsxs)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:[e.status," ",null!=e.durationMs&&`\xb7 ${(e.durationMs/1e3).toFixed(1)}s`]})]})}),(0,t.jsx)("div",{ref:E,className:"min-h-0 flex-1 overflow-y-auto px-4 py-3",children:(0,t.jsxs)("div",{className:"space-y-4 max-w-none",children:[e.output&&(0,t.jsxs)("div",{className:"flex gap-2.5",children:[(0,t.jsx)("div",{className:"shrink-0 mt-0.5",children:o?(0,t.jsx)("img",{src:M(a.agentId,o.color,28),alt:"",className:"size-7 rounded-full"}):(0,t.jsx)("div",{className:"flex size-7 items-center justify-center rounded-full bg-[var(--muted)] text-[10px] text-[var(--muted-foreground)]",children:(0,t.jsx)(c.Terminal,{size:12})})}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"mb-1 flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] font-semibold text-[var(--foreground)]",children:d??a.provider}),(0,t.jsx)("span",{className:"text-[9px] px-1.5 py-0.5 rounded bg-[var(--muted)] text-[var(--muted-foreground)] font-medium uppercase tracking-wider",children:"Run output"})]}),(0,t.jsx)("div",{className:"rounded-lg px-3 py-2 text-[12px] leading-[1.55] bg-[var(--muted)] text-[var(--foreground)]",children:(0,t.jsx)(N.Markdown,{content:e.output})})]})]}),e.error&&(0,t.jsxs)("div",{className:"flex gap-2.5",children:[(0,t.jsx)("div",{className:"shrink-0 mt-0.5",children:(0,t.jsx)("div",{className:"flex size-7 items-center justify-center rounded-full bg-red-500/10 text-[10px] text-red-400",children:"!"})}),(0,t.jsx)("div",{className:"min-w-0 flex-1",children:(0,t.jsx)("div",{className:"rounded-lg px-3 py-2 text-[12px] leading-[1.55] bg-red-500/10 text-red-400",children:(0,t.jsx)("div",{className:"whitespace-pre-wrap break-words",children:e.error})})})]}),!e.output&&!e.error&&(0,t.jsx)("div",{className:"text-center py-12 text-[var(--muted-foreground)] text-sm",children:"queued"===e.status?"Waiting to start...":"running"===e.status?"Running...":"No output captured"}),m.filter(e=>e.id!==x).map(e=>{let r="user"===e.role,n=e.participantId?s[e.participantId]:null,l=n?.name??d??a.provider;return(0,t.jsxs)("div",{className:"flex gap-2.5",children:[(0,t.jsx)("div",{className:"shrink-0 mt-0.5",children:r?(0,t.jsx)("div",{className:"flex size-7 items-center justify-center rounded-full bg-[var(--muted)] text-[var(--muted-foreground)]",children:(0,t.jsx)(f.User,{size:12})}):n?(0,t.jsx)("img",{src:M(n.id,n.color,28),alt:"",className:"size-7 rounded-full"}):o?(0,t.jsx)("img",{src:M(a.agentId,o.color,28),alt:"",className:"size-7 rounded-full"}):(0,t.jsx)("div",{className:"flex size-7 items-center justify-center rounded-full bg-[var(--muted)] text-[10px] text-[var(--muted-foreground)]",children:(0,t.jsx)(c.Terminal,{size:12})})}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"mb-1",children:(0,t.jsx)("span",{className:"text-[11px] font-semibold text-[var(--foreground)]",children:r?"You":l})}),(0,t.jsx)("div",{className:`rounded-lg px-3 py-2 text-[12px] leading-[1.55] ${r?"bg-blue-500/10 text-[var(--foreground)]":"bg-[var(--muted)] text-[var(--foreground)]"}`,children:(0,t.jsx)(N.Markdown,{content:(0,w.stripMarkers)(e.content),isUser:r})})]})]},e.id)}),Object.entries(I).filter(([,e])=>e.rootMessageId===x).map(([e])=>{let r=s[e]??o;return(0,t.jsxs)("div",{className:"flex gap-2.5 animate-in fade-in duration-300",children:[(0,t.jsx)("div",{className:"shrink-0 mt-0.5",children:r?(0,t.jsx)("img",{src:M(r.id,r.color,28),alt:"",className:"size-7 rounded-full"}):(0,t.jsx)("div",{className:"flex size-7 items-center justify-center rounded-full bg-[var(--muted)] text-[10px] text-[var(--muted-foreground)]",children:(0,t.jsx)(h.Sparkles,{size:12})})}),(0,t.jsx)("div",{className:"min-w-0 flex-1",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 py-1",children:[(0,t.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)]",children:r?.name??"Thinking"}),(0,t.jsxs)("span",{className:"inline-flex items-center gap-[3px]",children:[(0,t.jsx)("span",{className:"w-1 h-1 rounded-full bg-[var(--muted-foreground)]/50 animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,t.jsx)("span",{className:"w-1 h-1 rounded-full bg-[var(--muted-foreground)]/50 animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,t.jsx)("span",{className:"w-1 h-1 rounded-full bg-[var(--muted-foreground)]/50 animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})]})})]},`streaming-${e}`)}),(0,t.jsx)("div",{ref:_})]})}),(0,t.jsx)("div",{className:"px-3 py-2",children:(0,t.jsx)(R,{onSend:L,onStop:S,loading:A,activityStatus:T,participants:u,commands:[],placeholder:"Follow up on this run...",initialPinnedParticipantId:a.agentId||void 0})})]})}function L({job:e,agentMap:s,onEdit:o,onToggle:l,onDelete:u,onRunNow:x,onCancelRun:m,fetchRuns:f}){let h,[g,b]=(0,r.useState)([]),[j,N]=(0,r.useState)(!1),{getSelection:w,pushSelection:y,replaceSelection:S}=(0,v.useUrlSelection)(),C=w("run"),R=e.agentId&&s[e.agentId]?s[e.agentId].name:null,$=(0,r.useCallback)(async()=>{N(!1),b(await f(e.id)),N(!0)},[f,e.id]);(0,r.useEffect)(()=>{$()},[$]),(0,r.useEffect)(()=>{let e=setInterval($,a.UI_POLL_PROMPT_RUNS_MS);return()=>clearInterval(e)},[$]),(0,r.useEffect)(()=>{C&&j&&(g.some(e=>e.id===C)||S({run:null}))},[S,g,j,C]);let E=g.find(e=>e.id===C)??null,_="running"===e.lastOutcome,O=e.cronExpr&&(0,k.cronToHuman)(e.cronExpr)||e.cadence||e.cronExpr,J=(h=e.prompt.split("\n").map(e=>e.trim()).find(Boolean))?h.replace(/^execute\s+/i,""):"No target",D=e.agentId?s[e.agentId]:null;return(0,t.jsx)("div",{className:"h-full flex flex-col text-[var(--foreground)]",children:(0,t.jsxs)("div",{className:"flex min-h-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex w-[420px] shrink-0 flex-col border-r border-[var(--card-border)] overflow-hidden",children:[(0,t.jsx)("div",{className:"border-b border-[var(--card-border)] px-6 py-5",children:(0,t.jsxs)("div",{className:"flex items-start gap-4",children:[(0,t.jsx)("div",{className:"min-w-0 flex-1",children:(0,t.jsx)("h2",{className:"truncate text-[18px] font-semibold text-[var(--foreground)]",children:e.name})}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("button",{onClick:l,type:"button",role:"switch","aria-checked":"active"===e.state,title:"active"===e.state?"Pause":"Resume",className:`relative inline-flex h-[18px] w-[32px] shrink-0 cursor-pointer rounded-full border transition-colors ${"active"===e.state?"border-emerald-400/30 bg-emerald-500/40":"border-[var(--card-border)] bg-[var(--muted)]"}`,children:(0,t.jsx)("span",{className:`pointer-events-none absolute top-[2px] size-[12px] rounded-full bg-white/90 shadow-sm transition-transform ${"active"===e.state?"translate-x-[16px]":"translate-x-[2px]"}`})}),(0,t.jsx)("button",{onClick:x,disabled:_,title:"Run now",className:"rounded-md border border-[var(--card-border)] p-1.5 text-[var(--muted-foreground)] transition-colors hover:border-[var(--foreground)] hover:text-[var(--foreground)] disabled:opacity-50",children:(0,t.jsx)(n.Play,{size:12,className:"fill-current"})}),(0,t.jsx)("button",{onClick:o,title:"Edit",className:"p-1.5 rounded-md border border-[var(--card-border)] text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:border-[var(--foreground)] transition-colors",children:(0,t.jsx)(p.Pencil,{size:12})}),(0,t.jsx)("button",{onClick:u,title:"Delete",className:"p-1.5 rounded-md border border-[var(--card-border)] text-[var(--muted-foreground)] hover:text-red-400 hover:border-red-400/30 transition-colors",children:(0,t.jsx)(d.Trash2,{size:12})})]})]})}),(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:(0,t.jsxs)("div",{className:"space-y-0",children:[(0,t.jsx)("div",{className:"px-6 py-5",children:(0,t.jsx)("div",{className:"rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] px-5 py-4",children:(0,t.jsxs)("div",{className:"grid grid-cols-[96px,minmax(0,1fr)] items-center gap-x-4 gap-y-4",children:[e.executionMode&&"prompt"!==e.executionMode&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"text-[11px] uppercase tracking-[0.12em] text-[var(--muted-foreground)]",children:"Type"}),(0,t.jsx)("div",{className:"min-w-0",children:(0,t.jsx)("span",{className:"rounded-md border border-violet-400/20 bg-violet-500/10 px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wider text-violet-400",children:I.find(t=>t.value===e.executionMode)?.label??e.executionMode})})]}),(0,t.jsx)("div",{className:"text-[11px] uppercase tracking-[0.12em] text-[var(--muted-foreground)]",children:"Agent"}),(0,t.jsx)("div",{className:"min-w-0 flex items-center justify-between gap-3",children:(0,t.jsxs)("div",{className:"min-w-0 flex items-center gap-2.5",children:[D?(0,t.jsx)("img",{src:M(D.id,D.color,20),alt:"",className:"size-5 rounded-full shrink-0"}):(0,t.jsx)(c.Terminal,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsxs)("div",{className:"truncate text-[13px] font-medium text-[var(--foreground)]",children:[R??e.provider,e.model?` (${e.provider} / ${e.model})`:""]})]})}),(0,t.jsx)("div",{className:"text-[11px] uppercase tracking-[0.12em] text-[var(--muted-foreground)]",children:"Schedule"}),(0,t.jsx)("div",{className:"truncate text-[13px] font-medium text-[var(--foreground)]",children:O||"—"}),(0,t.jsx)("div",{className:"text-[11px] uppercase tracking-[0.12em] text-[var(--muted-foreground)]",children:"Target"}),(0,t.jsx)("div",{className:"truncate font-mono text-[13px] text-[var(--foreground)]",title:J,children:J})]})})}),(0,t.jsxs)("div",{className:"border-t border-[var(--card-border)]",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-6 py-4",children:[(0,t.jsx)(z,{children:"Recent Runs"}),(0,t.jsxs)("span",{className:"text-sm text-[var(--muted-foreground)]",children:[g.length," total"]})]}),(0,t.jsx)("div",{children:0===g.length?(0,t.jsx)("div",{className:"px-6 py-10 text-center text-[11px] text-[var(--muted-foreground)]",children:"No runs yet"}):g.map(e=>{let r=C===e.id,a="success"===e.status;return(0,t.jsxs)("button",{type:"button",onClick:()=>y({run:e.id}),className:`flex w-full items-center gap-4 border-t border-[var(--card-border)]/50 px-6 py-5 text-left transition-colors ${r?"border-l-2 border-l-emerald-400 bg-emerald-500/5":"hover:bg-[var(--muted)]/20"}`,children:[(0,t.jsx)("span",{className:`flex size-6 shrink-0 items-center justify-center rounded-full border text-[11px] ${a?"border-emerald-400 text-emerald-400":"failed"===e.status?"border-red-400 text-red-400":"running"===e.status?"border-sky-400 text-sky-400":"border-[var(--card-border)] text-[var(--muted-foreground)]"}`,children:a?"✓":"failed"===e.status?"!":"•"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"text-[13px] font-medium text-[var(--foreground)]",children:T(e.startedAt??e.createdAt)}),(0,t.jsx)("div",{className:"mt-1 text-[12px] text-[var(--muted-foreground)]",children:null!=e.durationMs?`${(e.durationMs/1e3).toFixed(1)}s`:"running"===e.status?"Running...":e.status.charAt(0).toUpperCase()+e.status.slice(1)})]}),r?(0,t.jsx)("span",{className:"rounded-md bg-[var(--muted)] px-2.5 py-1 text-[10px] font-semibold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Viewing"}):null]},e.id)})})]}),(0,t.jsxs)("div",{className:"border-t border-[var(--card-border)] px-6 py-4",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[_?(0,t.jsx)("button",{onClick:m,className:"inline-flex items-center gap-1.5 rounded-md border border-red-400/30 px-2.5 py-1 text-[10px] font-bold uppercase tracking-[0.05em] text-red-400 transition-colors hover:bg-red-500/10",children:"Cancel run"}):null,e.condition?(0,t.jsx)("span",{className:"rounded-md border border-blue-400/20 bg-blue-500/10 px-2 py-1 text-[10px] font-semibold uppercase tracking-wider text-blue-400",children:"gated"}):null,P(e)&&(0,t.jsxs)("span",{className:"rounded-md border border-amber-500/20 bg-amber-500/10 px-2 py-1 text-[10px] font-semibold uppercase tracking-wider text-amber-400 inline-flex items-center gap-1",children:[(0,t.jsx)(i.Clock,{size:10}),"overdue"]}),(0,t.jsxs)("span",{className:`text-[11px] ${P(e)?"text-amber-400 font-medium":"text-[var(--muted-foreground)]"}`,children:["Next run ",A(e.nextRunAt,e.state)]}),(0,t.jsxs)("span",{className:"text-[11px] text-[var(--muted-foreground)]",children:["Last ",e.lastRunAt?T(new Date(e.lastRunAt).toISOString()):"Never"]}),(e.cliArgs||"skip"!==e.overlapPolicy)&&(0,t.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)]",children:e.cliArgs?"Custom CLI args":`Overlap ${e.overlapPolicy}`})]}),e.condition?(0,t.jsx)("div",{className:"mt-3 text-[11px] leading-[1.5] text-[var(--muted-foreground)]",children:e.condition}):null]})]})})]}),E?(0,t.jsx)(U,{run:E,job:e,agentMap:s},E.id):(0,t.jsx)("div",{className:"flex min-w-0 flex-1 items-center justify-center text-[var(--muted-foreground)] text-sm",children:0===g.length?'No runs yet. Click "Run now" to trigger one.':"Select a run to view its output"})]})})}e.s(["CreateJobModal",0,O,"default",0,function({projectId:e,requireProjectId:a=!1,includeObjectiveJobs:s=!1,visibleJobIds:n,contextLabel:d,createDefaults:l,onCreateJob:x}={}){let{jobs:m,loading:p,refresh:f,createJob:h,updateJob:b,deleteJob:j,toggleJob:N,runNow:w,cancelRun:y,fetchRuns:S}=g(e,{requireProjectId:a,includeObjectiveJobs:s}),[C,I]=(0,r.useState)("all"),[R,$]=(0,r.useState)(null),[T,z]=(0,r.useState)(!1),[E,_]=(0,r.useState)(null),[U,J]=(0,r.useState)({}),[D,F]=(0,r.useState)(null),[B,H]=(0,r.useState)({}),{getSelection:q,pushSelection:W,replaceSelection:K}=(0,v.useUrlSelection)(),G=q("job"),V=q("run"),Q=(0,r.useMemo)(()=>n?new Set(n):null,[n]);(0,r.useEffect)(()=>{fetch("/api/prompt-jobs/agents").then(e=>e.json()).then(e=>{let t={};for(let r of e.agents??[])t[r.id]=r;H(t)}).catch(e=>console.warn("[PromptJobBoard] fetch agent map failed:",e))},[]);let X=e=>{F(e),setTimeout(()=>F(null),2500)},Y=(0,r.useMemo)(()=>Q?m.filter(e=>Q.has(e.id)):m,[m,Q]),Z=Y.filter(e=>"all"===C||e.state===C),ee=G?Y.find(e=>e.id===G)??null:null,et=ee??(R?.id===G&&(!Q||Q.has(R.id))?R:null);Y.length,Y.filter(e=>"active"===e.state).length,Y.filter(e=>"paused"===e.state).length,Y.filter(e=>"stopped"===e.state).length;let er=async e=>{await N(e)&&X(`${e.name} ${"active"===e.state?"paused":"resumed"}`)},ea=async(e,t)=>{if(t?.stopPropagation(),U[e])return;J(t=>({...t,[e]:!0}));let r=await w(e);J(t=>{let r={...t};return delete r[e],r}),r&&X("Run triggered")},es=async e=>{await j(e)&&(G===e&&W({job:null,run:null}),X("Job deleted"))},en=async e=>{await y(e)&&X("Run cancelled")},ed=async t=>{E?await b(E.id,t)&&X(`Task "${t.name}" updated`):(x?await x(t):await h({...t,projectId:e??""}))&&(await f(),X(`Task "${t.name}" created`))};(0,r.useEffect)(()=>{if(!G){$(null),V&&K({run:null});return}if(Q&&!Q.has(G)){$(null),K({job:null,run:null});return}if(ee)return void $(e=>e?.id===G?ee:null);let e=!1;return(async()=>{try{let t=await fetch(`/api/prompt-jobs/${encodeURIComponent(G)}`);if(e)return;if(404===t.status)return void K({job:null,run:null});if(!t.ok)throw Error(`Failed to fetch selected scheduled task: ${t.status}`);let r=await t.json().catch(()=>({}));if(!r.job?.id||!s&&r.job.objectiveId)return void K({job:null,run:null});$(r.job)}catch(t){e||console.error("Failed to hydrate selected prompt job",t)}})(),()=>{e=!0}},[s,K,ee,G,V,Q]);let eo=D&&(0,t.jsx)("div",{className:"fixed bottom-8 left-1/2 -translate-x-1/2 z-50 animate-in fade-in slide-in-from-bottom-2 duration-200",children:(0,t.jsx)("div",{className:"bg-[var(--card-bg)] border border-[var(--card-border)] px-4 py-2.5 rounded-xl shadow-lg flex items-center gap-2.5 text-sm font-medium",children:D})});return T?(0,t.jsxs)(t.Fragment,{children:[eo,(0,t.jsx)(O,{onClose:()=>{z(!1),_(null)},onSubmit:ed,editingJob:E,createDefaults:l,contextLabel:d})]}):(0,t.jsxs)("div",{className:"flex h-full min-h-0 flex-col text-[var(--foreground)] lg:flex-row",children:[eo,(0,t.jsxs)("div",{className:"flex w-full shrink-0 flex-col border-b border-[var(--card-border)] lg:w-[390px] lg:border-b-0 lg:border-r",children:[(0,t.jsx)("div",{className:"px-6 pb-0 pt-6",children:(0,t.jsx)("div",{className:"border-b border-[var(--card-border)]",children:(0,t.jsxs)("div",{className:"flex items-end justify-between gap-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsx)("div",{className:"flex items-end gap-10",children:["all","active","paused"].map(e=>{let r=C===e;return(0,t.jsxs)("button",{onClick:()=>I(e),className:`relative pb-4 text-[18px] font-semibold capitalize transition-colors ${r?"text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`,children:[e,r?(0,t.jsx)("span",{className:"absolute bottom-[6px] left-0 h-[4px] w-8 rounded-full bg-[var(--foreground)]"}):null]},e)})}),d?(0,t.jsx)("span",{className:"mb-3 rounded-full border border-sky-500/25 bg-sky-500/10 px-2 py-1 text-[10px] font-semibold uppercase tracking-[0.16em] text-sky-100",children:d}):null]}),(0,t.jsxs)("div",{className:"flex items-center gap-5 pb-4 text-[var(--muted-foreground)]",children:[(0,t.jsx)("button",{onClick:()=>f(),className:"transition-colors hover:text-[var(--foreground)]",title:"Refresh",children:(0,t.jsx)(u.RefreshCw,{size:18})}),(0,t.jsx)("button",{onClick:()=>{_(null),z(!0)},className:"transition-colors hover:text-[var(--foreground)]",title:"New Job",children:(0,t.jsx)(o.Plus,{size:20})})]})]})})}),(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto pb-5",children:p&&0===Y.length?(0,t.jsx)("div",{className:"py-12 text-center text-sm text-[var(--muted-foreground)]",children:"Loading scheduled tasks..."}):(0,t.jsxs)("div",{className:"overflow-hidden",children:[Z.map(e=>{let r=G===e.id,a=e.cronExpr&&(0,k.cronToHuman)(e.cronExpr)||e.cadence||e.cronExpr;return(0,t.jsx)("div",{onClick:()=>W({job:e.id,run:null}),className:`cursor-pointer border-b border-[var(--card-border)]/50 px-6 py-4 transition-colors ${r?"bg-[var(--card-bg)]":"hover:bg-[var(--muted)]/10"}`,children:(0,t.jsxs)("div",{className:"flex items-start gap-4",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"truncate text-[15px] font-medium text-[var(--foreground)]",children:e.name}),(0,t.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-x-4 gap-y-1 text-[12px] text-[var(--muted-foreground)]",children:[(0,t.jsx)("span",{className:"min-w-0 flex items-center gap-1.5 truncate",children:e.agentId&&B[e.agentId]?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("img",{src:M(e.agentId,B[e.agentId].color,16),alt:"",className:"size-4 rounded-full"}),B[e.agentId].name]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(c.Terminal,{size:11}),e.provider]})}),(0,t.jsxs)("span",{className:`flex items-center gap-1 ${P(e)?"text-amber-400 font-medium":""}`,children:[(0,t.jsx)(i.Clock,{size:11}),A(e.nextRunAt,e.state)]}),(0,t.jsx)("span",{className:"truncate font-mono text-[11px]",title:a,children:a}),"linear_worker"===e.executionMode?(0,t.jsx)("span",{className:"rounded-md border border-violet-400/20 bg-violet-500/10 px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wider text-violet-400",children:"linear"}):null,e.condition?(0,t.jsx)("span",{className:"rounded-md border border-blue-400/20 bg-blue-500/10 px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wider text-blue-400",children:"gated"}):null]})]}),(0,t.jsx)("button",{onClick:t=>{t.stopPropagation(),er(e)},type:"button",role:"switch","aria-checked":"active"===e.state,title:"active"===e.state?"Pause":"Resume",className:`relative inline-flex h-[18px] w-[32px] shrink-0 cursor-pointer rounded-full border transition-colors ${"active"===e.state?"border-emerald-400/30 bg-emerald-500/40":"border-[var(--card-border)] bg-[var(--muted)]"}`,children:(0,t.jsx)("span",{className:`pointer-events-none absolute top-[2px] size-[12px] rounded-full bg-white/90 shadow-sm transition-transform ${"active"===e.state?"translate-x-[16px]":"translate-x-[2px]"}`})})]})},e.id)}),0===Z.length&&(0,t.jsx)("div",{className:"rounded-xl border border-dashed border-[var(--card-border)] py-12 text-center text-sm text-[var(--muted-foreground)]",children:0===Y.length?"No scheduled tasks yet. Create one to get started.":"No scheduled tasks match the selected filter."})]})})]}),(0,t.jsx)("div",{className:"min-h-0 min-w-0 flex-1",children:et?(0,t.jsx)(L,{job:et,agentMap:B,onEdit:()=>{_(et),z(!0)},onToggle:()=>er(et),onDelete:()=>es(et.id),onRunNow:()=>ea(et.id),onCancelRun:()=>en(et.id),fetchRuns:S},et.id):(0,t.jsx)("div",{className:"flex h-full items-center justify-center border-t border-[var(--card-border)] lg:border-l-0 lg:border-t-0",children:(0,t.jsxs)("div",{className:"rounded-2xl border border-dashed border-[var(--card-border)] bg-[var(--card-bg)]/60 px-8 py-10 text-center",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-[var(--foreground)]",children:"Select a scheduled task"}),(0,t.jsx)("p",{className:"mt-2 text-sm text-[var(--muted-foreground)]",children:"The selected job will open here with its runs and chat output."})]})})})]})}],827430)}]);
|
|
@@ -77,6 +77,13 @@ interface AgentProfile {
|
|
|
77
77
|
source: string;
|
|
78
78
|
form: string;
|
|
79
79
|
}>;
|
|
80
|
+
skillBindings: Array<{
|
|
81
|
+
repo: string;
|
|
82
|
+
skillId: string;
|
|
83
|
+
condition: string;
|
|
84
|
+
source: string;
|
|
85
|
+
form: string;
|
|
86
|
+
}>;
|
|
80
87
|
learnedMemories: Array<{
|
|
81
88
|
id: string;
|
|
82
89
|
taskId: string;
|
|
@@ -194,6 +201,7 @@ export default function AgentProfilePage() {
|
|
|
194
201
|
const reflections = journal.filter((e) => e.type === "reflection");
|
|
195
202
|
const inspectability = profile?.inspectability;
|
|
196
203
|
const portableKnowledge = inspectability?.knowledge.agent.portableSkills ?? [];
|
|
204
|
+
const boundSkills = inspectability?.knowledge.agent.skillBindings ?? [];
|
|
197
205
|
const learnedKnowledge = inspectability?.knowledge.agent.learnedMemories ?? [];
|
|
198
206
|
const evidenceSummary = inspectability?.evidence;
|
|
199
207
|
|
|
@@ -417,14 +425,14 @@ export default function AgentProfilePage() {
|
|
|
417
425
|
</div>
|
|
418
426
|
)}
|
|
419
427
|
|
|
420
|
-
{agent.skills && agent.skills.length > 0 && (
|
|
428
|
+
{((agent.skills && agent.skills.length > 0) || (agent.skillBindings && agent.skillBindings.length > 0)) && (
|
|
421
429
|
<div className="bg-[var(--card-bg)] rounded-2xl border border-[var(--border)] p-5">
|
|
422
430
|
<h3 className="text-[11px] font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] mb-4 flex items-center gap-2">
|
|
423
431
|
<BrainCircuit className="w-3.5 h-3.5" /> Portable Knowledge
|
|
424
432
|
</h3>
|
|
425
433
|
<div className="flex flex-col gap-2">
|
|
426
|
-
{agent.skills
|
|
427
|
-
<div key={i} className="flex items-center gap-2 text-xs p-2 hover:bg-[var(--app-shell-subtle)] rounded-lg transition-colors">
|
|
434
|
+
{agent.skills?.map((s, i) => (
|
|
435
|
+
<div key={`skill-${i}`} className="flex items-center gap-2 text-xs p-2 hover:bg-[var(--app-shell-subtle)] rounded-lg transition-colors">
|
|
428
436
|
<Zap size={10} className="text-blue-500 shrink-0" />
|
|
429
437
|
<span className="text-blue-600 font-mono truncate" title={s.file}>
|
|
430
438
|
{s.file.split("/").pop()}
|
|
@@ -436,6 +444,19 @@ export default function AgentProfilePage() {
|
|
|
436
444
|
)}
|
|
437
445
|
</div>
|
|
438
446
|
))}
|
|
447
|
+
{agent.skillBindings?.map((b, i) => (
|
|
448
|
+
<div key={`binding-${i}`} className="flex items-center gap-2 text-xs p-2 hover:bg-[var(--app-shell-subtle)] rounded-lg transition-colors">
|
|
449
|
+
<BookOpen size={10} className="text-emerald-500 shrink-0" />
|
|
450
|
+
<span className="text-emerald-600 font-mono truncate" title={`${b.repo}/${b.skillId}`}>
|
|
451
|
+
{b.skillId}
|
|
452
|
+
</span>
|
|
453
|
+
{b.condition && (
|
|
454
|
+
<span className="text-[var(--muted-foreground)] text-[10px] ml-auto shrink-0">
|
|
455
|
+
{b.condition}
|
|
456
|
+
</span>
|
|
457
|
+
)}
|
|
458
|
+
</div>
|
|
459
|
+
))}
|
|
439
460
|
</div>
|
|
440
461
|
</div>
|
|
441
462
|
)}
|
|
@@ -617,7 +638,7 @@ export default function AgentProfilePage() {
|
|
|
617
638
|
<BrainCircuit className="w-4 h-4" /> Agent Knowledge
|
|
618
639
|
</h2>
|
|
619
640
|
<span className="text-xs text-[var(--muted-foreground)]">
|
|
620
|
-
{portableKnowledge.length + learnedKnowledge.length} items
|
|
641
|
+
{portableKnowledge.length + boundSkills.length + learnedKnowledge.length} items
|
|
621
642
|
</span>
|
|
622
643
|
</div>
|
|
623
644
|
<div className="grid grid-cols-1 xl:grid-cols-2 gap-6">
|
|
@@ -626,7 +647,7 @@ export default function AgentProfilePage() {
|
|
|
626
647
|
<div className="text-[10px] font-black uppercase tracking-wider text-[var(--muted-foreground)]">Portable Knowledge</div>
|
|
627
648
|
<span className="text-[10px] text-[var(--muted-foreground)]">Human-authored</span>
|
|
628
649
|
</div>
|
|
629
|
-
{portableKnowledge.length === 0 ? (
|
|
650
|
+
{portableKnowledge.length === 0 && boundSkills.length === 0 ? (
|
|
630
651
|
<p className="text-sm text-[var(--muted-foreground)]">No portable knowledge attached.</p>
|
|
631
652
|
) : (
|
|
632
653
|
<div className="space-y-2">
|
|
@@ -643,6 +664,20 @@ export default function AgentProfilePage() {
|
|
|
643
664
|
) : null}
|
|
644
665
|
</div>
|
|
645
666
|
))}
|
|
667
|
+
{boundSkills.map((item) => (
|
|
668
|
+
<div key={`${item.repo}:${item.skillId}`} className="rounded-2xl border border-[var(--border)] bg-[var(--app-shell-subtle)] p-3">
|
|
669
|
+
<div className="flex items-center justify-between gap-3">
|
|
670
|
+
<span className="font-mono text-xs text-[var(--foreground)] truncate" title={`${item.repo}/${item.skillId}`}>
|
|
671
|
+
{item.skillId}
|
|
672
|
+
</span>
|
|
673
|
+
<span className="text-[10px] font-medium text-[var(--muted-foreground)] shrink-0">{item.form}</span>
|
|
674
|
+
</div>
|
|
675
|
+
<p className="mt-1 text-[10px] text-[var(--muted-foreground)] font-mono truncate" title={item.repo}>{item.repo}</p>
|
|
676
|
+
{item.condition ? (
|
|
677
|
+
<p className="mt-1 text-xs text-[var(--muted-foreground)]">Use when: {item.condition}</p>
|
|
678
|
+
) : null}
|
|
679
|
+
</div>
|
|
680
|
+
))}
|
|
646
681
|
</div>
|
|
647
682
|
)}
|
|
648
683
|
</div>
|
|
@@ -3,6 +3,7 @@ import { readFileSync, existsSync } from "fs";
|
|
|
3
3
|
import { join } from "path";
|
|
4
4
|
import { homedir } from "os";
|
|
5
5
|
import { getAgent, getAgentSkills } from "@/lib/db";
|
|
6
|
+
import { getAgentSkillBindings } from "@/lib/agent-skill-bindings";
|
|
6
7
|
import { LOCAL_USER } from "@/lib/auth-mode";
|
|
7
8
|
import { getSQLiteDb } from "@/lib/sqlite-query-adapter";
|
|
8
9
|
|
|
@@ -78,6 +79,7 @@ export async function GET(
|
|
|
78
79
|
const reactionCount = readJsonl(join(agentDir, "reactions.jsonl")).length;
|
|
79
80
|
const commentCount = readJsonl(join(agentDir, "comments.jsonl")).length;
|
|
80
81
|
const portableSkills = dbAgent ? await getAgentSkills(dbAgent.id) : [];
|
|
82
|
+
const skillBindings = dbAgent ? await getAgentSkillBindings(dbAgent.id) : [];
|
|
81
83
|
const sqlite = getSQLiteDb();
|
|
82
84
|
const memories = dbAgent
|
|
83
85
|
? (sqlite
|
|
@@ -121,6 +123,7 @@ export async function GET(
|
|
|
121
123
|
file: skill.file,
|
|
122
124
|
condition: skill.condition ?? "",
|
|
123
125
|
})),
|
|
126
|
+
skillBindings,
|
|
124
127
|
}
|
|
125
128
|
: {}),
|
|
126
129
|
},
|
|
@@ -146,6 +149,13 @@ export async function GET(
|
|
|
146
149
|
source: "human-authored",
|
|
147
150
|
form: "file-backed",
|
|
148
151
|
})),
|
|
152
|
+
skillBindings: skillBindings.map((binding) => ({
|
|
153
|
+
repo: binding.repo,
|
|
154
|
+
skillId: binding.skillId,
|
|
155
|
+
condition: binding.condition ?? "",
|
|
156
|
+
source: "catalog-bound",
|
|
157
|
+
form: "repo-backed",
|
|
158
|
+
})),
|
|
149
159
|
learnedMemories: memories.map((memory) => ({
|
|
150
160
|
id: memory.id,
|
|
151
161
|
taskId: memory.task_id,
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { NextRequest, NextResponse } from 'next/server';
|
|
2
|
+
import { getPromptJobStore } from '@/src/prompt-scheduler/get-store';
|
|
3
|
+
import {
|
|
4
|
+
LINEAR_WORKER_JOB_NAME,
|
|
5
|
+
LINEAR_WORKER_DEFAULT_PROMPT,
|
|
6
|
+
LINEAR_WORKER_DEFAULT_CADENCE,
|
|
7
|
+
findLinearWorkerJob,
|
|
8
|
+
} from '@/src/prompt-scheduler/linear-worker-job';
|
|
9
|
+
import {
|
|
10
|
+
computeNextRun,
|
|
11
|
+
computePrevRun,
|
|
12
|
+
parseCadence,
|
|
13
|
+
} from '@/src/prompt-scheduler/cron';
|
|
14
|
+
|
|
15
|
+
export const runtime = 'nodejs';
|
|
16
|
+
export const dynamic = 'force-dynamic';
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* GET /api/linear/worker
|
|
20
|
+
* Return the current linear worker config (the prompt job with executionMode === 'linear_worker').
|
|
21
|
+
*/
|
|
22
|
+
export async function GET(req: NextRequest) {
|
|
23
|
+
try {
|
|
24
|
+
const projectId = req.nextUrl.searchParams.get('projectId') ?? undefined;
|
|
25
|
+
const job = findLinearWorkerJob(projectId);
|
|
26
|
+
|
|
27
|
+
if (!job) {
|
|
28
|
+
return NextResponse.json({ job: null });
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const cronExpr = job.cronExpr || job.cadence;
|
|
32
|
+
const prevScheduledAt = cronExpr ? computePrevRun(cronExpr) : null;
|
|
33
|
+
|
|
34
|
+
return NextResponse.json({ job: { ...job, prevScheduledAt } });
|
|
35
|
+
} catch (error) {
|
|
36
|
+
console.error('Failed to get linear worker:', error);
|
|
37
|
+
return NextResponse.json(
|
|
38
|
+
{ error: 'Failed to get linear worker', message: error instanceof Error ? error.message : String(error) },
|
|
39
|
+
{ status: 500 },
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* POST /api/linear/worker
|
|
46
|
+
* Create or update the linear worker prompt job.
|
|
47
|
+
*/
|
|
48
|
+
export async function POST(req: NextRequest) {
|
|
49
|
+
try {
|
|
50
|
+
const body = await req.json();
|
|
51
|
+
const {
|
|
52
|
+
projectId,
|
|
53
|
+
prompt,
|
|
54
|
+
scriptPrompt,
|
|
55
|
+
cadence,
|
|
56
|
+
agentId,
|
|
57
|
+
provider,
|
|
58
|
+
model,
|
|
59
|
+
state,
|
|
60
|
+
teamId,
|
|
61
|
+
} = body;
|
|
62
|
+
|
|
63
|
+
const store = getPromptJobStore();
|
|
64
|
+
const existing = findLinearWorkerJob(projectId);
|
|
65
|
+
|
|
66
|
+
if (existing) {
|
|
67
|
+
// Update existing
|
|
68
|
+
const updates: Record<string, unknown> = {};
|
|
69
|
+
if (typeof prompt === 'string') updates.prompt = prompt;
|
|
70
|
+
if (typeof scriptPrompt === 'string') updates.scriptPrompt = scriptPrompt;
|
|
71
|
+
if (typeof teamId === 'string') updates.teamId = teamId;
|
|
72
|
+
if (typeof agentId === 'string') updates.agentId = agentId;
|
|
73
|
+
if (typeof provider === 'string') updates.provider = provider;
|
|
74
|
+
if (typeof model === 'string') updates.model = model;
|
|
75
|
+
if (typeof state === 'string') updates.state = state;
|
|
76
|
+
|
|
77
|
+
if (typeof cadence === 'string' && cadence.trim()) {
|
|
78
|
+
const parsed = parseCadence(cadence.trim());
|
|
79
|
+
if (parsed) {
|
|
80
|
+
updates.cadence = parsed.cadence;
|
|
81
|
+
updates.cronExpr = parsed.cronExpr;
|
|
82
|
+
} else {
|
|
83
|
+
return NextResponse.json(
|
|
84
|
+
{ error: `Could not parse cadence: "${cadence}"` },
|
|
85
|
+
{ status: 400 },
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const job = store.updateJob(existing.id, updates);
|
|
91
|
+
return NextResponse.json({ job });
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Create new
|
|
95
|
+
const resolvedPrompt = typeof prompt === 'string' && prompt.trim()
|
|
96
|
+
? prompt
|
|
97
|
+
: LINEAR_WORKER_DEFAULT_PROMPT;
|
|
98
|
+
|
|
99
|
+
const resolvedCadence = typeof cadence === 'string' && cadence.trim()
|
|
100
|
+
? cadence
|
|
101
|
+
: LINEAR_WORKER_DEFAULT_CADENCE;
|
|
102
|
+
|
|
103
|
+
const job = store.createJob({
|
|
104
|
+
name: LINEAR_WORKER_JOB_NAME,
|
|
105
|
+
prompt: resolvedPrompt,
|
|
106
|
+
scriptPrompt: typeof scriptPrompt === 'string' ? scriptPrompt : undefined,
|
|
107
|
+
teamId: typeof teamId === 'string' ? teamId : undefined,
|
|
108
|
+
executionMode: 'linear_worker',
|
|
109
|
+
projectId: projectId || undefined,
|
|
110
|
+
builtIn: true,
|
|
111
|
+
cadence: resolvedCadence,
|
|
112
|
+
provider: provider ?? 'claude',
|
|
113
|
+
model,
|
|
114
|
+
agentId,
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
return NextResponse.json({ job }, { status: 201 });
|
|
118
|
+
} catch (error) {
|
|
119
|
+
console.error('Failed to create/update linear worker:', error);
|
|
120
|
+
return NextResponse.json(
|
|
121
|
+
{ error: 'Failed to create/update linear worker', message: error instanceof Error ? error.message : String(error) },
|
|
122
|
+
{ status: 500 },
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* DELETE /api/linear/worker
|
|
129
|
+
* Remove/disable the linear worker.
|
|
130
|
+
*/
|
|
131
|
+
export async function DELETE(req: NextRequest) {
|
|
132
|
+
try {
|
|
133
|
+
const projectId = req.nextUrl.searchParams.get('projectId') ?? undefined;
|
|
134
|
+
const store = getPromptJobStore();
|
|
135
|
+
const existing = findLinearWorkerJob(projectId);
|
|
136
|
+
|
|
137
|
+
if (!existing) {
|
|
138
|
+
return NextResponse.json({ error: 'Linear worker not found' }, { status: 404 });
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// Pause instead of deleting since it's a built-in job
|
|
142
|
+
const job = store.updateJob(existing.id, { state: 'paused' });
|
|
143
|
+
return NextResponse.json({ success: true, job });
|
|
144
|
+
} catch (error) {
|
|
145
|
+
console.error('Failed to disable linear worker:', error);
|
|
146
|
+
return NextResponse.json(
|
|
147
|
+
{ error: 'Failed to disable linear worker', message: error instanceof Error ? error.message : String(error) },
|
|
148
|
+
{ status: 500 },
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
}
|
package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/route.ts
CHANGED
|
@@ -176,14 +176,6 @@ export async function PATCH(request: NextRequest, context: RouteContext) {
|
|
|
176
176
|
chatSessionVersion: chatSessionVersion ?? objective.chatSessionVersion,
|
|
177
177
|
scheduledTaskIds: scheduledTaskIds ?? objective.scheduledTaskIds,
|
|
178
178
|
summary: summaryValue,
|
|
179
|
-
cadence:
|
|
180
|
-
body.cadence !== undefined
|
|
181
|
-
? readNullableString(body.cadence) ?? ""
|
|
182
|
-
: objective.cadence,
|
|
183
|
-
condition:
|
|
184
|
-
body.condition !== undefined
|
|
185
|
-
? readNullableString(body.condition) ?? ""
|
|
186
|
-
: objective.condition,
|
|
187
179
|
updatedAt: new Date().toISOString(),
|
|
188
180
|
};
|
|
189
181
|
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
import { NextRequest, NextResponse } from "next/server";
|
|
2
2
|
import { getPromptJobStore } from "@/src/prompt-scheduler/get-store";
|
|
3
3
|
import { upsertProjectObjective } from "@/lib/project-objectives";
|
|
4
|
-
import {
|
|
5
|
-
DEFAULT_OBJECTIVE_LINEAR_WORKER_NAME,
|
|
6
|
-
DEFAULT_OBJECTIVE_LINEAR_WORKER_PROMPT,
|
|
7
|
-
type PromptJobExecutionMode,
|
|
8
|
-
} from "@/src/prompt-scheduler/types";
|
|
4
|
+
import type { PromptJobExecutionMode } from "@/src/prompt-scheduler/types";
|
|
9
5
|
import {
|
|
10
6
|
loadProjectObjectiveContext,
|
|
11
7
|
persistProjectObjectiveWorkspace,
|
|
12
|
-
readNullableString,
|
|
13
8
|
readOptionalString,
|
|
14
9
|
} from "../../_shared";
|
|
15
10
|
import { requestPromptJobPump } from "@/src/prompt-scheduler/processor";
|
|
@@ -87,22 +82,12 @@ export async function POST(request: NextRequest, context: RouteContext) {
|
|
|
87
82
|
}
|
|
88
83
|
|
|
89
84
|
const body = rawBody as Record<string, unknown>;
|
|
90
|
-
const executionMode: PromptJobExecutionMode =
|
|
91
|
-
body.executionMode === "objective_linear_ticket" ? "objective_linear_ticket" : "prompt";
|
|
85
|
+
const executionMode: PromptJobExecutionMode = "prompt";
|
|
92
86
|
const title =
|
|
93
|
-
readOptionalString(body.name) ??
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
const prompt =
|
|
98
|
-
readOptionalString(body.prompt) ??
|
|
99
|
-
(executionMode === "objective_linear_ticket"
|
|
100
|
-
? DEFAULT_OBJECTIVE_LINEAR_WORKER_PROMPT
|
|
101
|
-
: undefined);
|
|
102
|
-
const cadence =
|
|
103
|
-
readOptionalString(body.cadence) ?? objectiveContext.objective.cadence.trim();
|
|
104
|
-
const condition =
|
|
105
|
-
readOptionalString(body.condition) ?? objectiveContext.objective.condition.trim();
|
|
87
|
+
readOptionalString(body.name) ?? `Work on ${objectiveContext.objective.title}`;
|
|
88
|
+
const prompt = readOptionalString(body.prompt);
|
|
89
|
+
const cadence = readOptionalString(body.cadence) ?? '';
|
|
90
|
+
const condition = readOptionalString(body.condition) ?? '';
|
|
106
91
|
|
|
107
92
|
if (!prompt) {
|
|
108
93
|
return NextResponse.json(
|
|
@@ -163,14 +148,8 @@ export async function POST(request: NextRequest, context: RouteContext) {
|
|
|
163
148
|
condition: condition || undefined,
|
|
164
149
|
});
|
|
165
150
|
|
|
166
|
-
const syncObjectiveSchedule = body.syncObjectiveSchedule !== false;
|
|
167
151
|
const nextObjective = {
|
|
168
152
|
...objectiveContext.objective,
|
|
169
|
-
cadence: syncObjectiveSchedule ? cadence : objectiveContext.objective.cadence,
|
|
170
|
-
condition:
|
|
171
|
-
syncObjectiveSchedule && body.condition !== undefined
|
|
172
|
-
? readNullableString(body.condition) ?? ""
|
|
173
|
-
: objectiveContext.objective.condition,
|
|
174
153
|
updatedAt: new Date().toISOString(),
|
|
175
154
|
};
|
|
176
155
|
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { NextRequest, NextResponse } from "next/server";
|
|
2
|
+
import { loadProjectObjectiveContext } from "../../_shared";
|
|
3
|
+
import { ensureObjectiveWorkerJob } from "@/src/prompt-scheduler/objective-worker-job";
|
|
4
|
+
import { getPromptJobStore } from "@/src/prompt-scheduler/get-store";
|
|
5
|
+
import { requestPromptJobPump } from "@/src/prompt-scheduler/processor";
|
|
6
|
+
|
|
7
|
+
export const runtime = "nodejs";
|
|
8
|
+
export const dynamic = "force-dynamic";
|
|
9
|
+
|
|
10
|
+
type RouteContext = { params: Promise<{ id: string; objectiveId: string }> };
|
|
11
|
+
|
|
12
|
+
async function resolveParams(params: RouteContext["params"]) {
|
|
13
|
+
const resolved = await params;
|
|
14
|
+
const projectId = typeof resolved?.id === "string" ? resolved.id.trim() : "";
|
|
15
|
+
const objectiveId =
|
|
16
|
+
typeof resolved?.objectiveId === "string" ? resolved.objectiveId.trim() : "";
|
|
17
|
+
if (!projectId || !objectiveId) return null;
|
|
18
|
+
return { projectId, objectiveId };
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/** POST: Ensure the built-in worker job exists for this objective */
|
|
22
|
+
export async function POST(_request: NextRequest, context: RouteContext) {
|
|
23
|
+
try {
|
|
24
|
+
const resolved = await resolveParams(context.params);
|
|
25
|
+
if (!resolved) {
|
|
26
|
+
return NextResponse.json({ error: "Not found" }, { status: 404 });
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const objectiveContext = await loadProjectObjectiveContext(
|
|
30
|
+
resolved.projectId,
|
|
31
|
+
resolved.objectiveId,
|
|
32
|
+
);
|
|
33
|
+
if (!objectiveContext) {
|
|
34
|
+
return NextResponse.json({ error: "Objective not found" }, { status: 404 });
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const job = ensureObjectiveWorkerJob({
|
|
38
|
+
projectId: resolved.projectId,
|
|
39
|
+
objectiveId: objectiveContext.objective.id,
|
|
40
|
+
objectiveKey: objectiveContext.objective.key,
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
return NextResponse.json({ job });
|
|
44
|
+
} catch (error) {
|
|
45
|
+
console.error("Failed to ensure objective worker job:", error);
|
|
46
|
+
return NextResponse.json(
|
|
47
|
+
{ error: error instanceof Error ? error.message : "Failed to ensure worker job" },
|
|
48
|
+
{ status: 500 },
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/** PUT: Trigger an immediate run of the objective worker ("Work on objective") */
|
|
54
|
+
export async function PUT(_request: NextRequest, context: RouteContext) {
|
|
55
|
+
try {
|
|
56
|
+
const resolved = await resolveParams(context.params);
|
|
57
|
+
if (!resolved) {
|
|
58
|
+
return NextResponse.json({ error: "Not found" }, { status: 404 });
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const objectiveContext = await loadProjectObjectiveContext(
|
|
62
|
+
resolved.projectId,
|
|
63
|
+
resolved.objectiveId,
|
|
64
|
+
);
|
|
65
|
+
if (!objectiveContext) {
|
|
66
|
+
return NextResponse.json({ error: "Objective not found" }, { status: 404 });
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Ensure the worker job exists (lazy creation)
|
|
70
|
+
const job = ensureObjectiveWorkerJob({
|
|
71
|
+
projectId: resolved.projectId,
|
|
72
|
+
objectiveId: objectiveContext.objective.id,
|
|
73
|
+
objectiveKey: objectiveContext.objective.key,
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
// Create an immediate run
|
|
77
|
+
const store = getPromptJobStore();
|
|
78
|
+
const run = store.createRun(job.id);
|
|
79
|
+
requestPromptJobPump();
|
|
80
|
+
|
|
81
|
+
return NextResponse.json({ job, run });
|
|
82
|
+
} catch (error) {
|
|
83
|
+
console.error("Failed to trigger objective worker:", error);
|
|
84
|
+
return NextResponse.json(
|
|
85
|
+
{ error: error instanceof Error ? error.message : "Failed to trigger worker" },
|
|
86
|
+
{ status: 500 },
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -4,6 +4,7 @@ import { buildProjectUpdatePayload } from "../payload";
|
|
|
4
4
|
import { LOCAL_USER } from "@/lib/auth-mode";
|
|
5
5
|
import { PROJECT_OBJECTIVES_METADATA_KEY, readProjectObjectivesWorkspace } from "@/lib/project-objectives";
|
|
6
6
|
import { getObjectiveRepository } from "@/src/objectives/repository";
|
|
7
|
+
import { ensureObjectiveWorkerJob } from "@/src/prompt-scheduler/objective-worker-job";
|
|
7
8
|
import { hydrateProjectObjectiveMetadata } from "../objective-metadata";
|
|
8
9
|
|
|
9
10
|
type ParamsArg = Promise<{ id: string }>;
|
|
@@ -77,6 +78,18 @@ export async function PATCH(request: NextRequest, { params }: { params: ParamsAr
|
|
|
77
78
|
const repo = getObjectiveRepository(slug);
|
|
78
79
|
const workspace = readProjectObjectivesWorkspace(updates.metadata);
|
|
79
80
|
repo.writeWorkspace(workspace);
|
|
81
|
+
|
|
82
|
+
for (const objective of workspace.objectives) {
|
|
83
|
+
try {
|
|
84
|
+
ensureObjectiveWorkerJob({
|
|
85
|
+
projectId,
|
|
86
|
+
objectiveId: objective.id,
|
|
87
|
+
objectiveKey: objective.key,
|
|
88
|
+
});
|
|
89
|
+
} catch {
|
|
90
|
+
// Worker job creation is best-effort
|
|
91
|
+
}
|
|
92
|
+
}
|
|
80
93
|
} catch (error) {
|
|
81
94
|
console.error("[objectives] failed to sync to files:", error);
|
|
82
95
|
}
|
|
@@ -194,12 +194,12 @@ export async function GET(request: NextRequest, context: RouteContext) {
|
|
|
194
194
|
|
|
195
195
|
const objectives = readProjectObjectivesWorkspace(project.metadata).objectives
|
|
196
196
|
.filter((objective) =>
|
|
197
|
-
matchesQuery(query, objective.title, objective.summary,
|
|
197
|
+
matchesQuery(query, objective.title, objective.summary, teamNameById.get(objective.teamId))
|
|
198
198
|
)
|
|
199
199
|
.sort(
|
|
200
200
|
(left, right) =>
|
|
201
|
-
scoreQueryMatch(query, left.title, left.summary
|
|
202
|
-
scoreQueryMatch(query, right.title, right.summary
|
|
201
|
+
scoreQueryMatch(query, left.title, left.summary) -
|
|
202
|
+
scoreQueryMatch(query, right.title, right.summary),
|
|
203
203
|
)
|
|
204
204
|
.slice(0, 10)
|
|
205
205
|
.map<ProjectSearchResult>((objective) => ({
|
|
@@ -208,7 +208,7 @@ export async function GET(request: NextRequest, context: RouteContext) {
|
|
|
208
208
|
label: "Objective",
|
|
209
209
|
title: objective.title,
|
|
210
210
|
context: teamNameById.get(objective.teamId) ?? undefined,
|
|
211
|
-
description: shorten(cleanText(objective.summary
|
|
211
|
+
description: shorten(cleanText(objective.summary), 120) || undefined,
|
|
212
212
|
href: `/projects/${project.slug}/objectives/${encodeURIComponent(objective.id)}`,
|
|
213
213
|
}));
|
|
214
214
|
|
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
getTeamAgents,
|
|
5
5
|
createTeam,
|
|
6
6
|
addTeamAgent,
|
|
7
|
+
addProjectAgent,
|
|
7
8
|
createAgent,
|
|
8
9
|
setAgentSkills,
|
|
9
10
|
} from "@/lib/db";
|
|
@@ -137,7 +138,7 @@ function resolveRequestedAgents(value: unknown): { agents?: RequestedAgent[]; er
|
|
|
137
138
|
return { agents: resolved };
|
|
138
139
|
}
|
|
139
140
|
|
|
140
|
-
async function provisionAgent(requested: RequestedAgent, teamId: string, order: number) {
|
|
141
|
+
async function provisionAgent(requested: RequestedAgent, projectId: string, teamId: string, order: number) {
|
|
141
142
|
const { preset } = requested;
|
|
142
143
|
const identity = requested.identity ?? preset.identity;
|
|
143
144
|
const agent = await createAgent(LOCAL_USER.id, {
|
|
@@ -161,6 +162,7 @@ async function provisionAgent(requested: RequestedAgent, teamId: string, order:
|
|
|
161
162
|
await setAgentSkillBindings(agent.id, requested.skillBindings ?? defaultBindings);
|
|
162
163
|
|
|
163
164
|
await addTeamAgent(teamId, agent.id, preset.id, order);
|
|
165
|
+
await addProjectAgent(projectId, agent.id, order);
|
|
164
166
|
return agent;
|
|
165
167
|
}
|
|
166
168
|
|
|
@@ -227,7 +229,7 @@ export async function POST(request: NextRequest, context: RouteContext) {
|
|
|
227
229
|
const team = await createTeam(projectId, teamName, templateId, metadata);
|
|
228
230
|
|
|
229
231
|
for (let i = 0; i < agentsToProvision.length; i++) {
|
|
230
|
-
await provisionAgent(agentsToProvision[i], team.id, i);
|
|
232
|
+
await provisionAgent(agentsToProvision[i], projectId, team.id, i);
|
|
231
233
|
}
|
|
232
234
|
|
|
233
235
|
const agents = await getTeamAgents(team.id);
|
|
@@ -242,7 +244,7 @@ export async function POST(request: NextRequest, context: RouteContext) {
|
|
|
242
244
|
const team = await createTeam(projectId, name);
|
|
243
245
|
if (requestedAgents.agents && requestedAgents.agents.length > 0) {
|
|
244
246
|
for (let i = 0; i < requestedAgents.agents.length; i++) {
|
|
245
|
-
await provisionAgent(requestedAgents.agents[i], team.id, i);
|
|
247
|
+
await provisionAgent(requestedAgents.agents[i], projectId, team.id, i);
|
|
246
248
|
}
|
|
247
249
|
}
|
|
248
250
|
|