@mndrk/agx 2.0.55 → 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/README.md +5 -0
- package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/apps/local/.next/app-path-routes-manifest.json +3 -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/required-server-files.json +5 -0
- package/cloud-runtime/standalone/apps/local/.next/routes-manifest.json +23 -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 +1 -1
- 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 +2 -2
- 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 +1 -1
- 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 +19 -8
- 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 +2 -2
- 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 +1 -1
- 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 +9 -8
- 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/react-loadable-manifest.json +2 -2
- 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 +15 -15
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_full.segment.rsc +15 -15
- 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 +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +3 -3
- 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 +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_full.segment.rsc +3 -3
- 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 +2 -2
- 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/react-loadable-manifest.json +2 -2
- 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/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/build-manifest.json +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/next-font-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/react-loadable-manifest.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js +14 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +3 -0
- 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 +8 -2
- 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 +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +3 -3
- 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 +2 -2
- 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 +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +3 -3
- 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 +2 -2
- 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 +3 -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]__01ol22y._.js → [root-of-the-server]__03h0gqp._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__094z9yf._.js → [root-of-the-server]__08jo91s._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__09j9jpf._.js +3 -0
- 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]__0g7hc1-._.js +18 -0
- 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]__0avz575._.js → [root-of-the-server]__0hkcw03._.js} +2 -2
- 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/02dz_local__next-internal_server_app_projects_[slug]_folders_page_actions_03fg4j9.js +3 -0
- 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_0e2_v_.._.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/0rhn_lucide-react_dist_esm_icons_0w3hl3p._.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]__08d5c~o._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0_n~ybp._.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]__0fl7_-o._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0h~rb5r._.js +3 -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]__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/_00trrg8._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_0s~0ump._.js → _064h43p._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0742x_.._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ejzn1e._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0fwy5tm._.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0sjchy6._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ufdu.z._.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0wk3skw._.js +3 -0
- 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_03z24q2._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0_ac-.f._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0a-8i4p._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0h3mfm7._.js +3 -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/{_0n80y4_._.js → apps_local_0nvzo3y._.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_0v~bvwg._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_11k_-8~._.js +1 -1
- 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_execution-graph_page_tsx_0tn2sx9._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_folders_page_tsx_0ju618z._.js +3 -0
- 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]_layout_tsx_0aaa3~t._.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 +3 -0
- 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 +4 -4
- 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_TaskCard_tsx_0e35_z5._.js +6 -6
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_chat-ui_ChatContainer_tsx_0c9fjtl._.js +3 -3
- 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/chunks/ssr/apps_local_components_thread_WorkspaceSidebar_tsx_0unv2xp._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mk0s0o.js +4 -0
- 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/next-font-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.json +4 -0
- 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/0-_ukhpeg429c.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0-olq~7zw3wjy.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0142ce0jj3j7r.js → 0-vo_x2cxmjm3.js} +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/07646a0h94826.js +3 -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/{0rm7v.1y6qcni.js → 0aewbg0i704w7.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0px65ynyk3t1d.js → 0bchtyu6m.2yv.js} +7 -7
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0dnw31436wd~..js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0e307b-0c2jbx.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0edewt9l~cs~k.css +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0f7i3ae1ynhf3.css +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0fonouj2i9qnb.js +5 -0
- 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/0l3v45kd.9is_.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0lgb.0~i1xvv-.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0lkal3uvr6_~2.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0mig99af4~uos.js +28 -0
- 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/0r0c9y6.8.m5p.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/{0h_bwlg~kk8lz.js → 0tt1oh112yv-l.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0uve8xrt~0a2e.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0w94x-v00osq0.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0wh6p5~ft5rma.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0x_pewz9npq~q.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xwny92a.ad_i.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0zw85-xl9ysjs.js +1 -0
- 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/14v~9vx3tdv85.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0826uh6nmsi5l.js → 1503vb7lb6.g1.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/16d~es6h6k~rj.js +6 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/177-q0wwdi0qe.js +1 -0
- package/cloud-runtime/standalone/apps/local/agx-server.js +4055 -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/automations/route.ts +10 -2
- 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 +22 -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 +15 -5
- package/cloud-runtime/standalone/apps/local/app/globals.css +67 -5
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/folders/page.tsx +25 -0
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/layout.tsx +19 -5
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/objectives/[objectiveId]/page.tsx +7 -2
- 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/bundled-server.ts +45 -0
- package/cloud-runtime/standalone/apps/local/components/ActionToolbar.tsx +5 -2
- package/cloud-runtime/standalone/apps/local/components/AutomationsBoard.tsx +35 -3
- package/cloud-runtime/standalone/apps/local/components/ContextMenu.tsx +2 -2
- package/cloud-runtime/standalone/apps/local/components/FloatingPanel.tsx +70 -20
- package/cloud-runtime/standalone/apps/local/components/IconButton.tsx +10 -2
- package/cloud-runtime/standalone/apps/local/components/KanbanBoard.tsx +84 -3
- package/cloud-runtime/standalone/apps/local/components/LinearBoard.tsx +434 -36
- package/cloud-runtime/standalone/apps/local/components/LogTimeline.tsx +4 -1
- package/cloud-runtime/standalone/apps/local/components/NowRunningPanel.tsx +3 -1
- package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +119 -6
- package/cloud-runtime/standalone/apps/local/components/SearchCombo.tsx +3 -3
- package/cloud-runtime/standalone/apps/local/components/SortableTaskCard.tsx +21 -3
- package/cloud-runtime/standalone/apps/local/components/StatusCircle.tsx +3 -3
- package/cloud-runtime/standalone/apps/local/components/TaskCard.tsx +51 -1
- package/cloud-runtime/standalone/apps/local/components/chat-ui/ChatContainer.tsx +15 -2
- package/cloud-runtime/standalone/apps/local/components/chat-ui/Composer.tsx +3 -3
- package/cloud-runtime/standalone/apps/local/components/chat-ui/ParticipantBar.tsx +76 -9
- package/cloud-runtime/standalone/apps/local/components/graph/ExecutionGraphPanel.tsx +4 -1
- package/cloud-runtime/standalone/apps/local/components/graph/GraphFirstView.tsx +6 -2
- package/cloud-runtime/standalone/apps/local/components/graph/NodeDetailPanel.tsx +45 -25
- package/cloud-runtime/standalone/apps/local/components/graph/NodeInspector.tsx +9 -6
- 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/FoldersSummaryCard.tsx +16 -16
- package/cloud-runtime/standalone/apps/local/components/projects/FoldersView.tsx +856 -0
- package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveActivityTimeline.tsx +40 -32
- package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveHealthTrend.tsx +215 -0
- package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +338 -91
- package/cloud-runtime/standalone/apps/local/components/projects/ProjectHome.tsx +12 -6
- package/cloud-runtime/standalone/apps/local/components/projects/ProjectObjectivesWorkspace.tsx +489 -467
- package/cloud-runtime/standalone/apps/local/components/projects/ProjectSearchBar.tsx +4 -2
- package/cloud-runtime/standalone/apps/local/components/projects/RecentlyCompletedCard.tsx +213 -0
- package/cloud-runtime/standalone/apps/local/components/projects/ScheduledTasksSummaryCard.tsx +19 -19
- package/cloud-runtime/standalone/apps/local/components/projects/TeamsSummaryCard.tsx +10 -10
- package/cloud-runtime/standalone/apps/local/components/projects/TeamsView.tsx +171 -56
- package/cloud-runtime/standalone/apps/local/components/projects/WorkingNowCard.tsx +12 -12
- package/cloud-runtime/standalone/apps/local/components/projects/home/ObjectiveCard.tsx +13 -10
- package/cloud-runtime/standalone/apps/local/components/projects/home/ObjectivesSection.tsx +7 -7
- package/cloud-runtime/standalone/apps/local/components/projects/home/ToolPathCard.tsx +2 -2
- package/cloud-runtime/standalone/apps/local/components/projects/home/ToolPathsSection.tsx +9 -9
- package/cloud-runtime/standalone/apps/local/components/scheduling/ScheduleConditionPicker.tsx +4 -4
- 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 +233 -89
- package/cloud-runtime/standalone/apps/local/components/terminal/TerminalSessionList.tsx +3 -1
- package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +72 -21
- package/cloud-runtime/standalone/apps/local/hooks/useInputCapabilities.ts +74 -0
- package/cloud-runtime/standalone/apps/local/hooks/useSetupFlow.ts +16 -2
- package/cloud-runtime/standalone/apps/local/lib/app-config.ts +35 -0
- 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/lib/pty-manager.ts +5 -1
- package/cloud-runtime/standalone/apps/local/lib/terminal-server.ts +182 -0
- package/cloud-runtime/standalone/apps/local/next.config.ts +2 -1
- package/cloud-runtime/standalone/apps/local/package.json +2 -2
- package/cloud-runtime/standalone/apps/local/playwright.config.ts +8 -0
- package/cloud-runtime/standalone/apps/local/server.js +1 -1
- package/cloud-runtime/standalone/apps/local/server.ts +14 -158
- 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/graph/types.ts +2 -0
- 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/cron.ts +11 -0
- 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 +239 -368
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/store.ts +19 -4
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/types.ts +32 -8
- package/cloud-runtime/standalone/apps/local/state/terminalTabs.ts +182 -106
- package/cloud-runtime/standalone/apps/local/state/windowState.ts +11 -0
- package/cloud-runtime/standalone/apps/local/styles/workspaceSidebar.css +65 -0
- package/cloud-runtime/standalone/apps/local/worker/index.js +9 -14
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/darwin-arm64/pty.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/darwin-arm64/spawn-helper +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/darwin-x64/pty.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/darwin-x64/spawn-helper +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty/OpenConsole.exe +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty/conpty.dll +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/pty.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/pty.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/winpty-agent.exe +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/winpty-agent.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/winpty.dll +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/winpty.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty/OpenConsole.exe +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty/conpty.dll +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/pty.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/pty.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/winpty-agent.exe +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/winpty-agent.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/winpty.dll +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/winpty.pdb +0 -0
- package/lib/cli/daemon.js +13 -2
- package/lib/cli/onboarding.js +5 -6
- package/lib/cli/runCli.js +1 -1
- package/lib/cloud/client.js +1 -1
- package/lib/commands/chat.js +37 -11
- package/lib/commands/daemonBoard.js +19 -13
- package/lib/config/cloudConfig.js +1 -1
- package/lib/orchestrator/httpClient.js +1 -1
- package/lib/prompts/templates.js +8 -9
- 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]__088h0r2._.js +0 -3
- 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]__0gtv0rq._.js +0 -8
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0gvjvx7._.js +0 -237
- 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]__0o315az._.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]__0t2jk2r._.js +0 -18
- 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]__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/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_0i1av_r._.js +0 -474
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0xxf2a0.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_0xd_mxu._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__044xm0q._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__066ay_e._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__09smg3p._.js +0 -18
- 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]__0hd2vo4._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0iix1sf._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0r54zr9._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0s8z2_c._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0wq3ukc._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_03-mlx0._.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_03rf_sb._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_09b42z9._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ag3.tl._.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0dh_hx0._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0h8cbsi._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0i1ffhz._.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/_0nlki7b._.js +0 -3
- 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_0_q01av._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0eh.4j7._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0qaowqy._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0s0iy2_._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0zr-_na._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_10qsqky._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0.a4-dh~x9sa3.js +0 -6
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0.bv3h68wo33z.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/016.x9zt9~rsh.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/027-6dwgpb0cy.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/031720jijg_th.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/03m1xs0rztynh.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/07o~9mm~xds_b.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/08zgoptetnxjj.css +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/09-_2lcshmjl5.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/09_yj-9nfh48m.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/09c7ssmgohk7l.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0awbe2r3qazge.css +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0dro-bz6f72z0.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0gbunx8z.~i4x.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ge81r~ap.u7n.js +0 -28
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ghg5160qeazw.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0gl_8hdxl5qnd.js +0 -37
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0g~v8p6_pc46-.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jb4f8425s.-2.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0kukkarp4un0o.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0m.2b-cekea8b.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0o0hwfzwwty4b.js +0 -6
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ov5lu0tz2o2e.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0pt8_y9asrg~7.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0wyg4lymaq0hg.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xl~1ux2f~rcu.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0y7-eze-w7~b4.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0y8e--tok1214.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0yy~0bgsz~o6-.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0~apd0q5_i88z.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/100xrwo-45nrg.js +0 -20
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/14h3qxwuo~1q9.js +0 -20
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/17oesq5eds3xi.js +0 -1
- /package/cloud-runtime/standalone/apps/local/.next/static/{z8XjY2Aj-ox_Dro192i4I → RnYHmEXBwXJjVrVVx2CuP}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{z8XjY2Aj-ox_Dro192i4I → RnYHmEXBwXJjVrVVx2CuP}/_clientMiddlewareManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{z8XjY2Aj-ox_Dro192i4I → RnYHmEXBwXJjVrVVx2CuP}/_ssgManifest.js +0 -0
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,640481,e=>{"use strict";let t=(0,e.i(363732).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,t],640481)},429056,e=>{"use strict";let t=(0,e.i(363732).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,t],429056)},434405,e=>{"use strict";let t="agx-chat:threads";function r(){let e=globalThis.localStorage;if(!e)throw Error("LocalThreadAdapter requires a browser-like environment with `localStorage`.");return e}function a(){let e=r().getItem(t);if(!e)return{threads:{}};try{let t=JSON.parse(e);if(t&&"object"==typeof t&&t.threads&&"object"==typeof t.threads)return{threads:Object.fromEntries(Object.entries(t.threads).map(([e,t])=>{var r,a;return[e,(r=e,a=t,{id:r,title:a?.title,messages:Array.isArray(a?.messages)?[...a.messages]:[],createdAt:"number"==typeof a?.createdAt?a.createdAt:Date.now(),updatedAt:"number"==typeof a?.updatedAt?a.updatedAt:Date.now(),metadata:a?.metadata,status:a?.status,outcomeNote:a?.outcomeNote,projectId:"string"==typeof a?.projectId?a.projectId:"string"==typeof a?.teamId?a.teamId:a?.projectId===null||a?.teamId===null?null:void 0})]}))}}catch{}return{threads:{}}}function s(e){r().setItem(t,JSON.stringify(e))}function n(e){return{...e,messages:e.messages.map(e=>({...e})),metadata:e.metadata?{...e.metadata}:void 0}}let l=new class{async saveThread(e){let t=Date.now(),r=a(),l=r.threads[e.id],o=l?.createdAt??e.createdAt??t,i=e.updatedAt??t,d={id:e.id,title:e.title,messages:e.messages.map(e=>({...e})),metadata:e.metadata,createdAt:o,updatedAt:i,status:e.status,outcomeNote:e.outcomeNote,projectId:e.projectId??e.teamId};return r.threads[e.id]=d,s(r),n(d)}async loadThread(e){let t=a().threads[e];return t?n(t):null}async listThreads(e){let t=Object.values(a().threads),r=e?.order??"desc",s=[...t].sort((e,t)=>"asc"===r?e.updatedAt-t.updatedAt:t.updatedAt-e.updatedAt),l=Math.max(0,e?.offset??0),o=e?.limit,i="number"==typeof o&&o>=0?s.slice(l,l+o):s.slice(l);return{total:t.length,threads:i.map(n)}}async deleteThread(e){let t=a();t.threads[e]&&(delete t.threads[e],s(t))}};e.s(["threadService",0,{listThreads:async()=>[...(await l.listThreads({order:"desc"})).threads.filter(e=>!0!==e.metadata?.archived)].sort((e,t)=>t.updatedAt-e.updatedAt),async createThread(e){let t="string"==typeof e?.id?e.id.trim():"";if(t){let r=await l.loadThread(t);if(r){let t={...r.metadata??{},...e?.metadata??{},archived:!1,archivedAt:null};return l.saveThread({id:r.id,title:e?.title??r.title,messages:e?.messages?.length?e.messages:r.messages,metadata:t,createdAt:r.createdAt})}}let r={id:t||("u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`thread-${Date.now()}-${Math.random().toString(16).slice(2)}`),messages:e?.messages?.length?e.messages:[],title:e?.title,metadata:e?.metadata};return l.saveThread(r)},async deleteThread(e){let t=e.trim();if(!t)return;let r=await l.loadThread(t);if(!r)return;let a={...r.metadata??{},archived:!0,archivedAt:Date.now()};await l.saveThread({id:r.id,title:r.title,messages:r.messages,metadata:a,createdAt:r.createdAt})},async renameThread(e,t){let r=e.trim(),a=t.trim();if(!r||!a)return null;let s=await l.loadThread(r);return s?(s.title?.trim()??"")===a?s:l.saveThread({id:s.id,title:a,messages:s.messages,metadata:s.metadata,createdAt:s.createdAt}):null},async updateThreadStatus(e,t){let r=await l.loadThread(e);return r?r.status===t?r:l.saveThread({id:r.id,title:r.title,messages:r.messages,metadata:r.metadata,createdAt:r.createdAt,status:t,outcomeNote:r.outcomeNote}):null},async updateThreadOutcomeNote(e,t){let r=await l.loadThread(e);return r?r.outcomeNote===t?r:l.saveThread({id:r.id,title:r.title,messages:r.messages,metadata:r.metadata,createdAt:r.createdAt,status:r.status,outcomeNote:t}):null},async updateMessageThreadStatus(e,t,r){let a=await l.loadThread(e);if(!a)return null;let s=a.messages.map(e=>e.id===t?{...e,threadStatus:r}:e);return l.saveThread({id:a.id,title:a.title,messages:s,metadata:a.metadata,createdAt:a.createdAt,status:a.status,outcomeNote:a.outcomeNote})},async updateMessageOutcomeNote(e,t,r){let a=await l.loadThread(e);if(!a)return null;let s=a.messages.map(e=>e.id===t?{...e,outcomeNote:r}:e);return l.saveThread({id:a.id,title:a.title,messages:s,metadata:a.metadata,createdAt:a.createdAt,status:a.status,outcomeNote:a.outcomeNote})},async saveThreadMessages(e,t){let r=await l.loadThread(e);if(!r)return null;let a=r.title?.trim()||function(e){let t=e.find(e=>"user"===e.role)?.content?.trim();if(!t)return;let r=t.replace(/\s+/g," ");return r.length>60?`${r.slice(0,60).trim()}…`:r}(t);return function(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r+=1){let a=e[r],s=t[r];if(a.id!==s.id||a.role!==s.role||a.participantId!==s.participantId||a.content!==s.content||a.timestamp!==s.timestamp)return!1}return!0}(r.messages,t)&&(r.title?.trim()||void 0)===a?r:l.saveThread({id:r.id,title:a,messages:t,metadata:r.metadata,createdAt:r.createdAt})}}],434405)},367859,e=>{"use strict";let t=(0,e.i(363732).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",0,t],367859)},195057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={formatUrl:function(){return o},formatWithValidation:function(){return d},urlObjectKeys:function(){return i}};for(var s in a)Object.defineProperty(r,s,{enumerable:!0,get:a[s]});let n=e.r(190809)._(e.r(998183)),l=/https?|ftp|gopher|file/;function o(e){let{auth:t,hostname:r}=e,a=e.protocol||"",s=e.pathname||"",o=e.hash||"",i=e.query||"",d=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?d=t+e.host:r&&(d=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(d+=":"+e.port)),i&&"object"==typeof i&&(i=String(n.urlQueryToSearchParams(i)));let c=e.search||i&&`?${i}`||"";return a&&!a.endsWith(":")&&(a+=":"),e.slashes||(!a||l.test(a))&&!1!==d?(d="//"+(d||""),s&&"/"!==s[0]&&(s="/"+s)):d||(d=""),o&&"#"!==o[0]&&(o="#"+o),c&&"?"!==c[0]&&(c="?"+c),s=s.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${a}${d}${s}${c}${o}`}let i=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function d(e){return o(e)}},818581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return s}});let a=e.r(271645);function s(e,t){let r=(0,a.useRef)(null),s=(0,a.useRef)(null);return(0,a.useCallback)(a=>{if(null===a){let e=r.current;e&&(r.current=null,e());let t=s.current;t&&(s.current=null,t())}else e&&(r.current=n(e,a)),t&&(s.current=n(t,a))},[e,t])}function n(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},573668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return n}});let a=e.r(718967),s=e.r(652817);function n(e){if(!(0,a.isAbsoluteUrl)(e))return!0;try{let t=(0,a.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,s.hasBasePath)(r.pathname)}catch(e){return!1}}},284508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},522016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={default:function(){return g},useLinkStatus:function(){return y}};for(var s in a)Object.defineProperty(r,s,{enumerable:!0,get:a[s]});let n=e.r(190809),l=e.r(843476),o=n._(e.r(271645)),i=e.r(195057),d=e.r(8372),c=e.r(818581),u=e.r(718967),p=e.r(405550);e.r(233525);let x=e.r(388540),m=e.r(91949),h=e.r(573668),f=e.r(509396);function g(t){var r,a;let s,n,g,[y,b]=(0,o.useOptimistic)(m.IDLE_LINK_STATUS),j=(0,o.useRef)(null),{href:w,as:N,children:k,prefetch:S=null,passHref:C,replace:A,shallow:T,scroll:_,onClick:E,onMouseEnter:O,onTouchStart:z,legacyBehavior:P=!1,onNavigate:$,transitionTypes:I,ref:L,unstable_dynamicOnHover:M,...U}=t;s=k,P&&("string"==typeof s||"number"==typeof s)&&(s=(0,l.jsx)("a",{children:s}));let D=o.default.useContext(d.AppRouterContext),R=!1!==S,F=!1!==S?null===(a=S)||"auto"===a?f.FetchStrategy.PPR:f.FetchStrategy.Full:f.FetchStrategy.PPR,B="string"==typeof(r=N||w)?r:(0,i.formatUrl)(r);if(P){if(s?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});n=o.default.Children.only(s)}let J=P?n&&"object"==typeof n&&n.ref:L,H=o.default.useCallback(e=>(null!==D&&(j.current=(0,m.mountLinkInstance)(e,B,D,F,R,b)),()=>{j.current&&((0,m.unmountLinkForCurrentNavigation)(j.current),j.current=null),(0,m.unmountPrefetchableInstance)(e)}),[R,B,D,F,b]),K={ref:(0,c.useMergedRef)(H,J),onClick(t){P||"function"!=typeof E||E(t),P&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(t),!D||t.defaultPrevented||function(t,r,a,s,n,l,i){if("u">typeof window){let d,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((d=t.currentTarget.getAttribute("target"))&&"_self"!==d||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,h.isLocalURL)(r)){s&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),l){let e=!1;if(l({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:u}=e.r(699781);o.default.startTransition(()=>{u(r,s?"replace":"push",!1===n?x.ScrollBehavior.NoScroll:x.ScrollBehavior.Default,a.current,i)})}}(t,B,j,A,_,$,I)},onMouseEnter(e){P||"function"!=typeof O||O(e),P&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),D&&R&&(0,m.onNavigationIntent)(e.currentTarget,!0===M)},onTouchStart:function(e){P||"function"!=typeof z||z(e),P&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),D&&R&&(0,m.onNavigationIntent)(e.currentTarget,!0===M)}};return(0,u.isAbsoluteUrl)(B)?K.href=B:P&&!C&&("a"!==n.type||"href"in n.props)||(K.href=(0,p.addBasePath)(B)),g=P?o.default.cloneElement(n,K):(0,l.jsx)("a",{...U,...K,children:s}),(0,l.jsx)(v.Provider,{value:y,children:g})}e.r(284508);let v=(0,o.createContext)(m.IDLE_LINK_STATUS),y=()=>(0,o.useContext)(v);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},8707,e=>{"use strict";let t=(0,e.i(363732).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["Search",0,t],8707)},498027,e=>{"use strict";let t=(0,e.i(363732).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",0,t],498027)},529471,e=>{"use strict";let t=(0,e.i(363732).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],529471)},378764,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(498027),s=e.i(8707),n=e.i(529471),l=e.i(797167);e.s(["default",0,function({options:e,value:o,onChange:i,placeholder:d,disabled:c}){let[u,p]=(0,r.useState)(!1),[x,m]=(0,r.useState)(""),h=(0,r.useRef)(null),f=(0,r.useRef)(null),g=(0,r.useMemo)(()=>{if(!x)return e;let t=x.toLowerCase();return e.filter(e=>e.label.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t)||e.meta?.toLowerCase().includes(t))},[e,x]),v=(0,r.useMemo)(()=>e.find(e=>e.id===o),[e,o]),y=(0,r.useCallback)(e=>{h.current&&!h.current.contains(e.target)&&p(!1)},[]);return(0,r.useEffect)(()=>(document.addEventListener("mousedown",y),()=>document.removeEventListener("mousedown",y)),[y]),(0,t.jsxs)("div",{ref:h,className:"relative",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>{c||(p(!u),m(""),setTimeout(()=>f.current?.focus(),0))},disabled:c,className:"input w-full flex items-center justify-between gap-2 text-left cursor-pointer",children:[v?(0,t.jsx)("span",{className:"truncate",children:v.label}):(0,t.jsx)("span",{className:"text-[var(--muted-foreground)] truncate",children:d}),(0,t.jsx)(a.ChevronDown,{className:`w-4 h-4 text-[var(--muted-foreground)] flex-shrink-0 transition-transform ${u?"rotate-180":""}`})]}),u&&(0,t.jsxs)("div",{className:"absolute z-50 mt-2 min-w-full w-max max-w-[28rem] rounded-2xl overflow-hidden right-0",style:{background:"var(--card-bg)",border:"1px solid var(--border)",boxShadow:"0 8px 30px rgba(0,0,0,0.35), 0 0 0 1px rgba(255,255,255,0.05)"},children:[(0,t.jsxs)("div",{className:"flex items-center gap-2.5 px-3.5 py-3 border-b",style:{borderColor:"var(--border)"},children:[(0,t.jsx)(s.Search,{className:"w-4 h-4 text-[var(--muted-foreground)] flex-shrink-0"}),(0,t.jsx)("input",{ref:f,value:x,onChange:e=>m(e.target.value),placeholder:"Search...",className:"flex-1 bg-transparent text-sm outline-none placeholder:text-[var(--muted-foreground)]"}),x&&(0,t.jsx)("button",{onClick:()=>m(""),className:"text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:(0,t.jsx)(l.X,{className:"w-3.5 h-3.5"})})]}),(0,t.jsxs)("div",{className:"max-h-72 overflow-y-auto py-1",children:[0===g.length&&(0,t.jsx)("div",{className:"px-4 py-6 text-xs text-[var(--muted-foreground)] text-center",children:"No matches"}),g.map(e=>{let r=e.id===o;return(0,t.jsxs)("button",{onClick:()=>{e.disabled||(i(e.id),p(!1),m(""))},disabled:e.disabled,className:`
|
|
2
|
-
w-full text-left px-3.5 py-2.5 flex items-center gap-3 transition-colors
|
|
3
|
-
${e.disabled?"opacity-35 cursor-not-allowed":""}
|
|
4
|
-
${r?"bg-[var(--primary)]/10":"hover:bg-[var(--muted)]/40"}
|
|
5
|
-
`,children:[(0,t.jsx)("div",{className:`w-5 h-5 rounded-md flex items-center justify-center flex-shrink-0 border ${r?"bg-[var(--primary)] border-[var(--primary)]":"border-[var(--border)]"}`,children:r&&(0,t.jsx)(n.Check,{className:"w-3 h-3 text-white"})}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium",children:e.label}),e.meta&&(0,t.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full bg-[var(--muted)]/50 text-[var(--muted-foreground)]",children:e.meta})]}),e.description&&(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5 line-clamp-1",children:e.description})]})]},e.id)})]})]})]})}])},797167,e=>{"use strict";let t=(0,e.i(363732).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["X",0,t],797167)},363732,e=>{"use strict";var t=e.i(271645);let r=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim(),a=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var s={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let n=(0,t.forwardRef)(({color:e="currentColor",size:a=24,strokeWidth:n=2,absoluteStrokeWidth:l,className:o="",children:i,iconNode:d,...c},u)=>(0,t.createElement)("svg",{ref:u,...s,width:a,height:a,stroke:e,strokeWidth:l?24*Number(n)/Number(a):n,className:r("lucide",o),...!i&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(c)&&{"aria-hidden":"true"},...c},[...d.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(i)?i:[i]]));e.s(["default",0,(e,s)=>{let l=(0,t.forwardRef)(({className:l,...o},i)=>(0,t.createElement)(n,{ref:i,iconNode:s,className:r(`lucide-${a(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,l),...o}));return l.displayName=a(e),l}],363732)},929870,e=>{"use strict";let t=(0,e.i(363732).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],929870)},524123,e=>{"use strict";var t=e.i(271645);e.s(["useProjects",0,function(){let[e,r]=(0,t.useState)([]),[a,s]=(0,t.useState)(!1),[n,l]=(0,t.useState)(null),o=(0,t.useCallback)(async()=>{s(!0);try{let e=await fetch("/api/projects");if(!e.ok)throw Error("Failed to fetch projects");let t=await e.json();r(t.projects??[]),l(null)}catch(e){l(e instanceof Error?e:Error("Unknown error"))}finally{s(!1)}},[]);(0,t.useEffect)(()=>{o()},[o]);let i=(0,t.useCallback)(async e=>{let t=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to create project");let a=(await t.json()).project;return r(e=>[a,...e]),a},[]);return{projects:e,isLoading:a,error:n,refetch:o,createProject:i,updateProject:(0,t.useCallback)(async(e,t)=>{let a=await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok)throw Error((await a.json().catch(()=>({}))).error||"Failed to update project");let s=(await a.json()).project;return r(t=>t.map(t=>t.id===e?s:t)),s},[]),deleteProject:(0,t.useCallback)(async e=>{let t=await fetch(`/api/projects/${e}`,{method:"DELETE"});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to delete project");r(t=>t.filter(t=>t.id!==e))},[])}},"useProjectsWithAgents",0,function(){let[e,r]=(0,t.useState)([]),[a,s]=(0,t.useState)(!0),n=(0,t.useCallback)(async()=>{try{let e=await fetch("/api/projects");if(!e.ok)return;let{projects:t}=await e.json(),a=await Promise.all((t??[]).map(async e=>{let t=[],r=[];try{let[a,s]=await Promise.all([fetch(`/api/projects/${e.id}/agents`),fetch(`/api/projects/${e.id}/threads`)]);a.ok&&(t=(await a.json()).agents??[]),s.ok&&(r=((await s.json()).threads??[]).map(e=>e.thread_id))}catch{}return{...e,repos:e.repos??[],agents:t.map(t=>({project_id:e.id,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at})),thread_ids:r,workspace_ids:r}}));r(a)}catch{}finally{s(!1)}},[]);(0,t.useEffect)(()=>{n()},[n]);let l=(0,t.useCallback)(async(e,t)=>{try{let a="string"==typeof e?{name:e}:e,s=a.name.trim(),n=(a.slug||s.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")).trim(),l=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...a,name:s,slug:n})});if(!l.ok)return null;let{project:o}=await l.json(),i=Array.isArray(t)?t:t?[t]:[];for(let e of i)await fetch(`/api/projects/${o.id}/threads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:e})}).catch(e=>console.warn("[useProjects] link thread failed:",e));let d={...o,repos:o.repos??[],agents:[],thread_ids:i,workspace_ids:i};return r(e=>[...e,d].sort((e,t)=>e.name.localeCompare(t.name))),d}catch{return null}},[]),o=(0,t.useCallback)(async(e,t)=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})})).ok)return;r(r=>r.map(r=>r.id===e?{...r,name:t}:r).sort((e,t)=>e.name.localeCompare(t.name)))}catch{}},[]),i=(0,t.useCallback)(async e=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"DELETE"})).ok)return;r(t=>t.filter(t=>t.id!==e))}catch{}},[]),d=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok){let e=await a.json().catch(()=>({}));throw Error(e.error||"Failed to update project")}let s=(await a.json()).project;return r(t=>t.map(t=>t.id===e?{...t,...s,repos:s.repos??t.repos}:t)),s}catch{return null}},[]),c=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:t})});if(!a.ok)return;let s=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:s}:t))}catch{}},[]),u=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents?agentId=${t}`,{method:"DELETE"});if(!a.ok)return;let s=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:s}:t))}catch{}},[]);return{projects:e,isLoading:a,createProject:l,updateProject:d,renameProject:o,deleteProject:i,addAgent:c,removeAgent:u,reorderAgents:(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({orderedAgentIds:t})});if(!a.ok)return;let s=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:s}:t))}catch{}},[]),moveAgent:(0,t.useCallback)(async(e,t,r)=>{try{await fetch(`/api/projects/${t}/agents?agentId=${e}`,{method:"DELETE"}),await fetch(`/api/projects/${r}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:e})}),await n()}catch{}},[n]),refresh:n}}])},169610,e=>{"use strict";let t=(0,e.i(363732).default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);e.s(["User",0,t],169610)},519132,e=>{"use strict";let t=(0,e.i(363732).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);e.s(["Sparkles",0,t],519132)},572665,e=>{"use strict";let t=(0,e.i(363732).default)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);e.s(["Users",0,t],572665)},19035,e=>{"use strict";let t=(0,e.i(363732).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",0,t],19035)},755838,(e,t,r)=>{"use strict";var a=e.r(271645),s="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},n=a.useState,l=a.useEffect,o=a.useLayoutEffect,i=a.useDebugValue;function d(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!s(e,r)}catch(e){return!0}}var c="u"<typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),a=n({inst:{value:r,getSnapshot:t}}),s=a[0].inst,c=a[1];return o(function(){s.value=r,s.getSnapshot=t,d(s)&&c({inst:s})},[e,r,t]),l(function(){return d(s)&&c({inst:s}),e(function(){d(s)&&c({inst:s})})},[e]),i(r),r};r.useSyncExternalStore=void 0!==a.useSyncExternalStore?a.useSyncExternalStore:c},802239,(e,t,r)=>{"use strict";t.exports=e.r(755838)},752822,(e,t,r)=>{"use strict";var a=e.r(271645),s=e.r(802239),n="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},l=s.useSyncExternalStore,o=a.useRef,i=a.useEffect,d=a.useMemo,c=a.useDebugValue;r.useSyncExternalStoreWithSelector=function(e,t,r,a,s){var u=o(null);if(null===u.current){var p={hasValue:!1,value:null};u.current=p}else p=u.current;var x=l(e,(u=d(function(){function e(e){if(!i){if(i=!0,l=e,e=a(e),void 0!==s&&p.hasValue){var t=p.value;if(s(t,e))return o=t}return o=e}if(t=o,n(l,e))return t;var r=a(e);return void 0!==s&&s(t,r)?(l=e,t):(l=e,o=r)}var l,o,i=!1,d=void 0===r?null:r;return[function(){return e(t())},null===d?void 0:function(){return e(d())}]},[t,r,a,s]))[0],u[1]);return i(function(){p.hasValue=!0,p.value=x},[x]),c(x),x}},430224,(e,t,r)=>{"use strict";t.exports=e.r(752822)},538292,e=>{"use strict";let t=(0,e.i(363732).default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",0,t],538292)},80673,e=>{"use strict";let t=(0,e.i(363732).default)("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]);e.s(["Download",0,t],80673)},629155,e=>{"use strict";let t=(0,e.i(363732).default)("hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]);e.s(["Hash",0,t],629155)},666946,e=>{"use strict";let t=(0,e.i(363732).default)("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]);e.s(["Upload",0,t],666946)},118311,e=>{"use strict";let t=(0,e.i(363732).default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Eye",0,t],118311)},884196,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(522016),s=e.i(429056),n=e.i(498027),l=e.i(367859),o=e.i(19035),i=e.i(529471),d=e.i(80673),c=e.i(118311),u=e.i(629155),p=e.i(640481),x=e.i(929870);let m=(0,e.i(363732).default)("share-2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]);var h=e.i(666946),f=e.i(572665),g=e.i(797167),v=e.i(524123),y=e.i(884564),b=e.i(434405);function j(e){return e?e.projects??[]:[]}let w=["Ada","Kai","Sage","Nova","Cleo","Milo","Iris","Juno","Remy","Zara","Arlo","Luna","Ezra","Wren","Nico","Thea","Fern","Orla","Kira","Dax","Lyra","Soren","Vera","Elio"];e.s(["default",0,function(){let[e,N]=(0,r.useState)([]),[k,S]=(0,r.useState)([]),{projects:C,createProject:A,addAgent:T,removeAgent:_,refresh:E}=(0,v.useProjectsWithAgents)(),[O,z]=(0,r.useState)(new Set),[P,$]=(0,r.useState)(null),[I,L]=(0,r.useState)(new Set),[M,U]=(0,r.useState)(!1),[D,R]=(0,r.useState)(null),[F,B]=(0,r.useState)(!1),[J,H]=(0,r.useState)(new Set),[K,V]=(0,r.useState)(!0),[W,q]=(0,r.useState)(!1),[X,Z]=(0,r.useState)(null),[Q,G]=(0,r.useState)(null),[Y,ee]=(0,r.useState)(!1),[et,er]=(0,r.useState)(!1),[ea,es]=(0,r.useState)("choice"),[en,el]=(0,r.useState)(""),[eo,ei]=(0,r.useState)(!1),[ed,ec]=(0,r.useState)(null),[eu,ep]=(0,r.useState)(new Set),[ex,em]=(0,r.useState)(new Set),[eh,ef]=(0,r.useState)(!1),[eg,ev]=(0,r.useState)(null),ey=(0,r.useRef)(null),[eb,ej]=(0,r.useState)(new Set),ew=()=>{fetch("/api/participants").then(e=>e.json()).then(e=>N(Array.isArray(e)?e:[]))},eN=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/processes");if(!e.ok)return;let t=await e.json();ej(new Set(t.filter(e=>"spawning"===e.state||"running"===e.state).map(e=>e.agentId)))}catch{}},[]);(0,r.useEffect)(()=>{ew(),b.threadService.listThreads().then(S),eN();let e=setInterval(eN,3e3);return()=>clearInterval(e)},[eN]);let ek=new Map(k.map(e=>[e.id,e])),eS=C.filter(e=>!e.is_default),eC=async()=>{if(0!==J.size){q(!0);try{let e=await fetch("/api/agent-specs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentIds:Array.from(J),includeSelf:K})});if(!e.ok)throw Error("Share failed");let t=await e.json();Z(t.code),G(t.expires_at)}catch(e){console.error("Share error:",e)}finally{q(!1)}}},eA=async()=>{if(0!==J.size){q(!0);try{let e=Array.from(J),t=await fetch("/api/agents/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentIds:e})});if(!t.ok)throw Error("Export failed");let r=(await t.json()).agents.map(e=>({...e,self:K?e.self:null})),a={version:1,exportedAt:new Date().toISOString(),agents:r,projects:[]},s=new Blob([JSON.stringify(a,null,2)],{type:"application/json"}),n=URL.createObjectURL(s),l=document.createElement("a");l.href=n,l.download=1===r.length?`${r[0].name.toLowerCase().replace(/\s+/g,"-")}.agent.json`:"agents.bundle.json",l.click(),URL.revokeObjectURL(n),B(!1)}catch(e){console.error("Export error:",e)}finally{q(!1)}}},eT=async()=>{if(0!==en.trim().length){ei(!0),ev(null),ec(null);try{let e=await fetch(`/api/agent-specs/pull?code=${encodeURIComponent(en.trim())}`);if(!e.ok){let t=await e.json().catch(()=>({error:"Failed to pull"}));ev(t.error||"Code not found or expired");return}let t=(await e.json()).bundle;ec(t),ep(new Set(t.agents.map(e=>e.id))),em(new Set(j(t).map(e=>e.name)))}catch{ev("Failed to connect. Is agx-api running?")}finally{ei(!1)}}},e_=async()=>{if(ed){ef(!0);try{let t=new Set(e.map(e=>e.id));for(let e of ed.agents){if(!eu.has(e.id))continue;let r={name:e.name,provider:e.provider,model:e.model,color:e.color,identity:e.identity||void 0,voice:e.voice||void 0,seed:e.seed||void 0,identityFile:e.identityFile||void 0,skills:e.skills||[],variables:e.variables||{}};t.has(e.id)?(r.id=e.id,await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)})):await fetch("/api/participants",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)})}for(let e of j(ed)){if(!ex.has(e.name))continue;let t=await A(e.name);if(t)for(let r of e.agentIds)eu.has(r)&&await T(t.id,r)}ew(),await E(),er(!1),ec(null)}catch(e){console.error("Import error:",e),ev("Import failed. Check console for details.")}finally{ef(!1)}}},eE=P?C.find(e=>e.id===P.projectId):null,eO=new Set(eE?.agents.map(e=>e.agent_id)??[]),ez=P?e.filter(e=>!eO.has(e.id)):[],eP=({checked:e})=>(0,t.jsx)("div",{className:`w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center ${e?"bg-[var(--foreground)] border-[var(--foreground)]":"border-[var(--app-shell-soft-text)]"}`,children:e&&(0,t.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,t.jsx)("path",{d:"M2 5l2 2 4-4",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})});return(0,t.jsxs)("div",{className:"min-h-screen bg-[var(--secondary)] p-6",children:[(0,t.jsxs)("div",{className:"max-w-6xl mx-auto",children:[(0,t.jsxs)("div",{className:"desktop-titlebar sticky top-0 z-20 -mx-6 mb-6 flex items-center gap-3 border-b border-[var(--border)] bg-[var(--secondary)]/92 px-6 py-4 backdrop-blur-md",children:[(0,t.jsxs)(a.default,{href:"/",className:"inline-flex items-center gap-1 text-sm text-[var(--muted-foreground)] hover:text-[var(--secondary-foreground)] transition-colors",children:[(0,t.jsx)(s.ArrowLeft,{size:16}),"Back"]}),(0,t.jsx)("h1",{className:"text-2xl font-semibold text-[var(--foreground)]",children:"Manage Agents"}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,t.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-[var(--foreground)] rounded-lg hover:opacity-90 transition-colors",onClick:()=>U(!0),children:[(0,t.jsx)(x.Plus,{size:13}),"New Agent"]}),(0,t.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-violet-600 rounded-lg hover:bg-violet-700 transition-colors",onClick:()=>{H(new Set(e.map(e=>e.id))),V(!0),Z(null),G(null),ee(!1),B(!0)},disabled:0===e.length,children:[(0,t.jsx)(m,{size:13}),"Share"]}),(0,t.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-violet-600 bg-violet-50 border border-violet-200 rounded-lg hover:bg-violet-100 transition-colors",onClick:()=>{es("choice"),el(""),ec(null),ep(new Set),em(new Set),ev(null),er(!0)},children:[(0,t.jsx)(d.Download,{size:13}),"Import"]}),(0,t.jsx)("input",{ref:ey,type:"file",accept:".json",className:"hidden",onChange:e=>{let t=e.target.files?.[0];if(!t)return;ev(null);let r=new FileReader;r.onload=()=>{try{let e=JSON.parse(r.result);if(!e.version||!Array.isArray(e.agents))throw Error("Invalid bundle format");ec(e),ep(new Set(e.agents.map(e=>e.id))),em(new Set(j(e).map(e=>e.name)))}catch{ev("Invalid file. Expected an .agent.json bundle.")}},r.readAsText(t),e.target.value=""}})]})]}),eg&&!et&&(0,t.jsxs)("div",{className:"mb-4 px-4 py-3 rounded-lg bg-red-50 border border-red-200 text-sm text-red-700 flex items-center justify-between",children:[(0,t.jsx)("span",{children:eg}),(0,t.jsx)("button",{type:"button",onClick:()=>ev(null),className:"text-red-400 hover:text-red-600",children:(0,t.jsx)(g.X,{size:14})})]}),0===e.length?(0,t.jsx)("p",{className:"text-[var(--muted-foreground)] text-sm",children:"No agents configured yet."}):(0,t.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:e.map(e=>(0,t.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl border border-[var(--border)] p-4 hover:shadow-md transition-shadow text-left group",children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 mb-3",children:[(0,t.jsx)("img",{src:(0,y.agentAvatarUrl)(e.id,48,e.color),alt:e.name,className:"w-12 h-12 rounded-full bg-[var(--secondary)]"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("h3",{className:"font-medium text-[var(--foreground)] truncate",children:e.name}),(0,t.jsx)("p",{className:"text-xs text-[var(--app-shell-soft-text)] truncate mt-0.5",children:e.model}),eb.has(e.id)&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 mt-1 text-[10px] font-medium text-emerald-600",children:[(0,t.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-emerald-500 animate-pulse"}),"Working"]})]})]}),e.skills&&e.skills.length>0&&(0,t.jsxs)("div",{className:"flex flex-wrap gap-1 mb-3",children:[e.skills.slice(0,3).map((e,r)=>(0,t.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-blue-50 text-blue-600 truncate max-w-[120px]",children:e.file.split("/").pop()},r)),e.skills.length>3&&(0,t.jsxs)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-[var(--secondary)] text-[var(--app-shell-soft-text)]",children:["+",e.skills.length-3]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between pt-2 border-t border-[var(--border)]",children:[(0,t.jsx)("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full bg-[var(--secondary)] text-[var(--muted-foreground)] uppercase tracking-wide",children:e.provider}),(0,t.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,t.jsx)("button",{type:"button",title:"Edit",onClick:()=>R(e),className:"p-1.5 text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)] rounded hover:bg-[var(--item-hover-bg)] transition-colors",children:(0,t.jsx)(p.Pencil,{size:13})}),(0,t.jsx)(a.default,{href:`/agents/${e.id}`,title:"View profile",className:"p-1.5 text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)] rounded hover:bg-[var(--item-hover-bg)] transition-colors",children:(0,t.jsx)(c.Eye,{size:13})})]})]})]},e.id))}),(0,t.jsxs)("div",{className:"mt-10",children:[(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)("h2",{className:"text-lg font-semibold text-[var(--foreground)]",children:"Project assignments"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[var(--app-shell-soft-text)]",children:"Assign agents to existing projects."})]}),0===eS.length?(0,t.jsx)("p",{className:"text-sm text-[var(--app-shell-soft-text)]",children:"No projects available for assignment."}):(0,t.jsx)("div",{className:"bg-[var(--card-bg)] rounded-xl border border-[var(--border)] divide-y divide-[var(--border)]",children:eS.map(r=>{let a=O.has(r.id),s=(r.thread_ids??[]).map(e=>ek.get(e)?.title?.trim()||"Untitled").filter(Boolean);return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 px-5 py-3.5 group",children:[(0,t.jsxs)("button",{type:"button",className:"flex items-center gap-3 flex-1 min-w-0 text-left",onClick:()=>{var e;return e=r.id,void z(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},children:[a?(0,t.jsx)(n.ChevronDown,{size:16,className:"text-[var(--app-shell-soft-text)] flex-shrink-0"}):(0,t.jsx)(l.ChevronRight,{size:16,className:"text-[var(--app-shell-soft-text)] flex-shrink-0"}),(0,t.jsx)(f.Users,{size:16,className:"text-[var(--app-shell-soft-text)] flex-shrink-0"}),(0,t.jsx)("span",{className:"font-medium text-[var(--foreground)] text-sm",children:r.name}),(0,t.jsxs)("span",{className:"text-xs text-[var(--app-shell-soft-text)]",children:[r.agents.length," ",1===r.agents.length?"agent":"agents",s.length>0&&` \xb7 ${s.length} ${1===s.length?"thread":"threads"}`]})]}),(0,t.jsx)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:(0,t.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg border border-[var(--border)] px-2.5 py-1.5 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--item-hover-bg)] hover:text-[var(--foreground)]",title:"Add agents",onClick:()=>{L(new Set),$({projectId:r.id})},children:[(0,t.jsx)(x.Plus,{size:14}),"Add agents"]})})]}),a&&(0,t.jsxs)("div",{className:"px-5 pb-4 pt-1 ml-9 flex flex-col gap-1",children:[0===r.agents.length&&(0,t.jsx)("p",{className:"text-xs text-[var(--app-shell-soft-text)] py-1",children:"No agents in this project."}),r.agents.map(a=>{let s=e.find(e=>e.id===a.agent_id);return(0,t.jsxs)("div",{className:"flex items-center gap-2.5 py-1.5 group/agent",children:[(0,t.jsx)("img",{src:(0,y.agentAvatarUrl)(a.agent_id,24,s?.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,t.jsx)("span",{className:"text-sm text-[var(--secondary-foreground)] truncate flex-1",children:s?.name??a.agent_id}),(0,t.jsx)("span",{className:"text-[10px] text-[var(--app-shell-soft-text)]",children:s?.model}),(0,t.jsx)("button",{type:"button",className:"opacity-0 group-hover/agent:opacity-100 text-[var(--app-shell-soft-text)] hover:text-red-500 transition-opacity",onClick:()=>void _(r.id,a.agent_id),title:"Remove from project",children:(0,t.jsx)(g.X,{size:14})})]},a.agent_id)}),(0,t.jsxs)("button",{type:"button",className:"mt-2 inline-flex items-center gap-1.5 self-start rounded-lg border border-[var(--border)] px-2.5 py-1.5 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--item-hover-bg)] hover:text-[var(--foreground)]",onClick:()=>{L(new Set),$({projectId:r.id})},children:[(0,t.jsx)(x.Plus,{size:12}),"Add agents"]}),s.length>0&&(0,t.jsxs)("div",{className:"mt-2 pt-2 border-t border-[var(--border)]",children:[(0,t.jsx)("p",{className:"text-[10px] font-medium text-[var(--app-shell-soft-text)] uppercase tracking-wide mb-1",children:"Threads"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:s.map((e,r)=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs px-2 py-1 rounded-md bg-indigo-50 text-indigo-600",children:[(0,t.jsx)(u.Hash,{size:11}),e]},r))})]})]})]},r.id)})})]})]}),F&&(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>B(!1),children:(0,t.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-[440px] max-h-[80vh] flex flex-col",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-5 py-3.5 border-b border-[var(--border)]",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:"Share Agents"}),(0,t.jsx)("button",{type:"button",className:"text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]",onClick:()=>B(!1),children:(0,t.jsx)(g.X,{size:16})})]}),X?(0,t.jsxs)("div",{className:"px-5 py-6 flex flex-col items-center gap-4",children:[(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)] mb-3",children:"Share this code with the recipient:"}),(0,t.jsxs)("div",{className:"flex items-center justify-center gap-3",children:[(0,t.jsx)("span",{className:"text-3xl font-mono font-bold tracking-[0.3em] text-[var(--foreground)]",children:X}),(0,t.jsx)("button",{type:"button",className:"p-2 text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)] transition-colors",onClick:()=>{X&&(navigator.clipboard.writeText(X),ee(!0),setTimeout(()=>ee(!1),2e3))},children:Y?(0,t.jsx)(i.Check,{size:18,className:"text-green-500"}):(0,t.jsx)(o.Copy,{size:18})})]})]}),Q&&(0,t.jsxs)("p",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:["Expires ",new Date(Q).toLocaleTimeString()]}),(0,t.jsx)("button",{type:"button",className:"px-4 py-2 text-xs font-medium text-[var(--muted-foreground)] bg-[var(--secondary)] rounded-lg hover:bg-[var(--item-hover-bg)] transition-colors",onClick:()=>B(!1),children:"Done"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"overflow-y-auto flex-1",children:[eS.length>0&&(0,t.jsxs)("div",{className:"border-b border-[var(--border)] px-5 py-3",children:[(0,t.jsx)("p",{className:"text-[11px] font-medium text-[var(--app-shell-soft-text)] uppercase tracking-wide mb-2",children:"Select by project"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:eS.map(r=>{let a=r.agents.map(e=>e.agent_id),s=a.length>0&&a.every(e=>J.has(e)),n=a.some(e=>J.has(e));return(0,t.jsxs)("button",{type:"button",className:`inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-[11px] font-medium transition-colors ${s?"bg-[var(--foreground)] text-white":n?"bg-[var(--app-shell-soft-text)] text-[var(--secondary-foreground)]":"bg-[var(--secondary)] text-[var(--muted-foreground)] hover:bg-[var(--item-hover-bg)]"}`,onClick:()=>{H(e=>{let t=new Set(e);return s?a.forEach(e=>t.delete(e)):a.forEach(e=>t.add(e)),t})},title:a.map(t=>e.find(e=>e.id===t)?.name??t).join(", "),children:[(0,t.jsx)(f.Users,{size:10}),r.name,(0,t.jsx)("span",{className:"text-[10px] text-[var(--app-shell-soft-text)]",children:r.agents.length})]},r.id)})})]}),(0,t.jsxs)("div",{className:"border-b border-[var(--border)]",children:[(0,t.jsxs)("div",{className:"px-5 pt-3 pb-1 flex items-center justify-between",children:[(0,t.jsx)("p",{className:"text-[11px] font-medium text-[var(--app-shell-soft-text)] uppercase tracking-wide",children:"Agents"}),(0,t.jsx)("button",{type:"button",className:"text-[11px] text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]",onClick:()=>{J.size===e.length?H(new Set):H(new Set(e.map(e=>e.id)))},children:J.size===e.length?"Deselect all":"Select all"})]}),e.map(e=>{let r=J.has(e.id);return(0,t.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-5 py-2 text-sm transition-colors ${r?"bg-[var(--secondary)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--item-hover-bg)]"}`,onClick:()=>{H(t=>{let r=new Set(t);return r.has(e.id)?r.delete(e.id):r.add(e.id),r})},children:[(0,t.jsx)(eP,{checked:r}),(0,t.jsx)("img",{src:(0,y.agentAvatarUrl)(e.id,24,e.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,t.jsx)("span",{className:"truncate text-xs font-medium flex-1",children:e.name}),(0,t.jsx)("span",{className:"text-[10px] text-[var(--app-shell-soft-text)]",children:e.provider})]},e.id)})]}),(0,t.jsx)("div",{className:"px-5 py-3",children:(0,t.jsxs)("button",{type:"button",className:`flex items-center gap-3 w-full px-3 py-2 rounded-lg text-sm transition-colors ${K?"bg-[var(--secondary)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--item-hover-bg)]"}`,onClick:()=>V(!K),children:[(0,t.jsx)(eP,{checked:K}),(0,t.jsx)("span",{className:"text-xs font-medium",children:"Include self.md (agent bio)"})]})})]}),(0,t.jsxs)("div",{className:"px-5 py-3 border-t border-[var(--border)] flex items-center justify-between",children:[(0,t.jsxs)("span",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:[J.size," ",1===J.size?"agent":"agents"]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsxs)("button",{type:"button",disabled:0===J.size||W,className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-[var(--muted-foreground)] bg-[var(--card-bg)] border border-[var(--border)] rounded-lg hover:bg-[var(--item-hover-bg)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>void eA(),children:[(0,t.jsx)(d.Download,{size:12}),W?"Exporting...":"Export to File"]}),(0,t.jsxs)("button",{type:"button",disabled:0===J.size||W,className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-violet-600 rounded-lg hover:bg-violet-700 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>void eC(),children:[(0,t.jsx)(m,{size:12}),W?"Pushing...":"Push to Hub"]}),(0,t.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--secondary-foreground)] transition-colors",onClick:()=>B(!1),children:"Cancel"})]})]})]})]})}),P&&!M&&(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>$(null),children:(0,t.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 max-h-[70vh] flex flex-col",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,t.jsxs)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:["Add to ",eE?.name??"project"]}),(0,t.jsx)("button",{type:"button",className:"text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]",onClick:()=>$(null),children:(0,t.jsx)(g.X,{size:16})})]}),(0,t.jsxs)("div",{className:"overflow-y-auto py-1 flex-1",children:[(0,t.jsxs)("button",{type:"button",className:"w-full flex items-center gap-3 px-4 py-2.5 text-sm text-[var(--secondary-foreground)] hover:bg-[var(--item-hover-bg)] transition-colors border-b border-[var(--border)]",onClick:()=>U(!0),children:[(0,t.jsx)(x.Plus,{size:14,className:"text-[var(--app-shell-soft-text)]"}),(0,t.jsx)("span",{className:"text-xs font-medium",children:"Create new agent"})]}),0===ez.length?(0,t.jsx)("p",{className:"px-4 py-6 text-xs text-[var(--app-shell-soft-text)] text-center",children:"All agents are already in this project"}):ez.map(e=>{let r=I.has(e.id);return(0,t.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-4 py-2.5 text-sm transition-colors ${r?"bg-[var(--secondary)] text-[var(--foreground)]":"text-[var(--secondary-foreground)] hover:bg-[var(--item-hover-bg)]"}`,onClick:()=>{L(t=>{let r=new Set(t);return r.has(e.id)?r.delete(e.id):r.add(e.id),r})},children:[(0,t.jsx)(eP,{checked:r}),(0,t.jsx)("img",{src:(0,y.agentAvatarUrl)(e.id,24,e.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,t.jsx)("div",{className:"min-w-0 flex-1 text-left",children:(0,t.jsx)("div",{className:"truncate font-medium text-xs",children:e.name})})]},e.id)})]}),ez.length>0&&(0,t.jsxs)("div",{className:"px-4 py-3 border-t border-[var(--border)] flex justify-end gap-2",children:[(0,t.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--secondary-foreground)] transition-colors",onClick:()=>$(null),children:"Cancel"}),(0,t.jsxs)("button",{type:"button",disabled:0===I.size,className:"px-3 py-1.5 text-xs font-medium text-white bg-[var(--foreground)] rounded-lg hover:opacity-90 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>{for(let e of I)T(P.projectId,e);$(null)},children:["Add ",I.size>0?`(${I.size})`:""]})]})]})}),M&&(0,t.jsx)(y.AgentForm,{title:"Create new agent",initial:{name:w[Math.floor(Math.random()*w.length)],provider:"claude",model:"",identity:"",skills:[],skillBindings:[]},submitLabel:"Create",projects:eS.map(e=>{let t=(e.thread_ids??[]).map(e=>ek.get(e)?.title?.trim()).filter(Boolean).join(", ")||"No thread";return{id:e.id,name:e.name,label:`${t} › ${e.name}`}}),initialProjectIds:P?[P.projectId]:[],onSubmit:async(t,r)=>{let a=["#D97706","#2563EB","#059669","#DC2626","#7C3AED","#DB2777","#0891B2"],s=a[e.length%a.length],n=t.name.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),l=r?.[0],o=await fetch("/api/participants",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:n,name:t.name,provider:t.provider,model:t.model,color:t.color??s,...t.title?{title:t.title}:{},...t.identity?{identity:t.identity}:{},skills:t.skills??[],skillBindings:t.skillBindings??[],...l?{projectId:l}:{}})});if(o.ok){let e=await o.json().catch(()=>({})),t="string"==typeof e?.id&&e.id.trim()?e.id.trim():n;for(let e of(r??[]).slice(1))await T(e,t);U(!1),$(null),ew(),E()}},onCancel:()=>{U(!1)}}),D&&(0,t.jsx)(y.AgentForm,{title:"Edit agent",initial:{name:D.name,title:D.title||"",provider:D.provider,model:D.model||"",identity:D.identity||"",color:D.color,skills:D.skills||[],skillBindings:D.skillBindings||[]},agentId:D.id,submitLabel:"Save",projectMemberships:{current:C.filter(e=>e.agents.some(e=>e.agent_id===D.id)).map(e=>({id:e.id,name:e.name,is_default:!!e.is_default})),available:C.filter(e=>!e.agents.some(e=>e.agent_id===D.id)).map(e=>({id:e.id,name:e.name}))},onAddToProject:e=>T(e,D.id),onRemoveFromProject:e=>_(e,D.id),onSubmit:async e=>{await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:D.id,name:e.name,title:e.title||null,provider:e.provider,model:e.model,color:e.color,...e.identity?{identity:e.identity}:{},skills:e.skills??[],skillBindings:e.skillBindings??[]})}),R(null),ew()},onCancel:()=>R(null)}),et&&(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>er(!1),children:(0,t.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-[440px] max-h-[80vh] flex flex-col",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-5 py-3.5 border-b border-[var(--border)]",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:"Import Agents"}),(0,t.jsx)("button",{type:"button",className:"text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]",onClick:()=>er(!1),children:(0,t.jsx)(g.X,{size:16})})]}),"choice"===ea&&!ed&&(0,t.jsxs)("div",{className:"px-5 py-6 flex flex-col gap-3",children:[(0,t.jsxs)("button",{type:"button",className:"flex items-center gap-3 px-4 py-3.5 rounded-lg border border-[var(--border)] hover:border-violet-300 hover:bg-violet-50 transition-colors text-left",onClick:()=>es("pull"),children:[(0,t.jsx)("div",{className:"w-9 h-9 rounded-lg bg-violet-100 flex items-center justify-center flex-shrink-0",children:(0,t.jsx)(d.Download,{size:16,className:"text-violet-600"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm font-medium text-[var(--foreground)]",children:"Pull from Hub"}),(0,t.jsx)("p",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:"Enter a share code to import agents"})]})]}),(0,t.jsxs)("button",{type:"button",className:"flex items-center gap-3 px-4 py-3.5 rounded-lg border border-[var(--border)] hover:border-[var(--border)] hover:bg-[var(--item-hover-bg)] transition-colors text-left",onClick:()=>{es("file"),setTimeout(()=>ey.current?.click(),100)},children:[(0,t.jsx)("div",{className:"w-9 h-9 rounded-lg bg-[var(--secondary)] flex items-center justify-center flex-shrink-0",children:(0,t.jsx)(h.Upload,{size:16,className:"text-[var(--muted-foreground)]"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm font-medium text-[var(--foreground)]",children:"Upload File"}),(0,t.jsx)("p",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:"Import from a .agent.json bundle"})]})]})]}),"pull"===ea&&!ed&&(0,t.jsxs)("div",{className:"px-5 py-5 flex flex-col gap-3",children:[(0,t.jsx)("label",{className:"text-sm text-[var(--muted-foreground)]",children:"Enter share code:"}),(0,t.jsx)("input",{autoFocus:!0,type:"text",value:en,onChange:e=>el(e.target.value.toUpperCase()),placeholder:"e.g. A3X9K2",maxLength:6,className:"w-full px-3 py-2.5 text-center text-2xl font-mono font-bold tracking-[0.3em] border border-[var(--border)] rounded-lg outline-none focus:border-violet-400 focus:ring-1 focus:ring-violet-200 transition-all bg-[var(--card-bg)] text-[var(--foreground)]",onKeyDown:e=>{"Enter"===e.key&&eT()}}),eg&&(0,t.jsx)("p",{className:"text-xs text-red-500",children:eg}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 mt-1",children:[(0,t.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--secondary-foreground)] transition-colors",onClick:()=>{es("choice"),ev(null)},children:"Back"}),(0,t.jsx)("button",{type:"button",disabled:0===en.trim().length||eo,className:"px-4 py-1.5 text-xs font-medium text-white bg-violet-600 rounded-lg hover:bg-violet-700 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>void eT(),children:eo?"Fetching...":"Fetch"})]})]}),"file"===ea&&!ed&&(0,t.jsxs)("div",{className:"px-5 py-6 flex flex-col items-center gap-3",children:[(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Select a .agent.json file to import"}),(0,t.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 px-4 py-2 text-xs font-medium text-[var(--muted-foreground)] bg-[var(--secondary)] rounded-lg hover:bg-[var(--item-hover-bg)] transition-colors",onClick:()=>ey.current?.click(),children:[(0,t.jsx)(h.Upload,{size:13}),"Choose File"]}),eg&&(0,t.jsx)("p",{className:"text-xs text-red-500",children:eg}),(0,t.jsx)("button",{type:"button",className:"text-xs text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)] mt-1",onClick:()=>{es("choice"),ev(null)},children:"Back"})]}),ed&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"overflow-y-auto flex-1",children:[ed.exportedAt&&(0,t.jsx)("div",{className:"px-5 py-3 border-b border-[var(--border)] bg-[var(--secondary)]",children:(0,t.jsxs)("p",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:["Exported ",new Date(ed.exportedAt).toLocaleDateString()," · ",ed.agents.length," agents",j(ed).length>0?`, ${j(ed).length} projects`:""]})}),(0,t.jsxs)("div",{className:"border-b border-[var(--border)]",children:[(0,t.jsxs)("div",{className:"px-5 pt-3 pb-1 flex items-center justify-between",children:[(0,t.jsxs)("p",{className:"text-[11px] font-medium text-[var(--app-shell-soft-text)] uppercase tracking-wide",children:[ed.agents.length," agent",1===ed.agents.length?"":"s"," found"]}),(0,t.jsx)("button",{type:"button",className:"text-[11px] text-[var(--app-shell-soft-text)] hover:text-[var(--muted-foreground)]",onClick:()=>{eu.size===ed.agents.length?ep(new Set):ep(new Set(ed.agents.map(e=>e.id)))},children:eu.size===ed.agents.length?"Deselect all":"Select all"})]}),ed.agents.map(r=>{let a=eu.has(r.id),s=e.find(e=>e.id===r.id);return(0,t.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-5 py-2.5 text-sm transition-colors ${a?"bg-[var(--secondary)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--item-hover-bg)]"}`,onClick:()=>{ep(e=>{let t=new Set(e);return t.has(r.id)?t.delete(r.id):t.add(r.id),t})},children:[(0,t.jsx)(eP,{checked:a}),(0,t.jsx)("img",{src:(0,y.agentAvatarUrl)(r.id,24,r.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1 text-left",children:[(0,t.jsx)("div",{className:"truncate text-xs font-medium",children:r.name}),(0,t.jsxs)("div",{className:"truncate text-[10px] text-[var(--app-shell-soft-text)]",children:[r.provider,r.model?` \xb7 ${r.model}`:""]})]}),s&&(0,t.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-amber-50 text-amber-600 flex-shrink-0",children:"update"}),!s&&(0,t.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded bg-green-50 text-green-600 flex-shrink-0",children:"new"}),r.self&&(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)] flex-shrink-0",children:"+ self.md"})]},r.id)})]}),j(ed).length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"px-5 pt-3 pb-1",children:(0,t.jsx)("p",{className:"text-[11px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Projects"})}),j(ed).map(e=>{let r=ex.has(e.name);return(0,t.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-5 py-2 text-sm transition-colors ${r?"bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:()=>{em(t=>{let r=new Set(t);return r.has(e.name)?r.delete(e.name):r.add(e.name),r})},children:[(0,t.jsx)(eP,{checked:r}),(0,t.jsx)(f.Users,{size:14,className:"text-[var(--muted-foreground)] flex-shrink-0"}),(0,t.jsx)("span",{className:"truncate text-xs font-medium flex-1",children:e.name}),(0,t.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:[e.agentIds.length," agents"]})]},e.name)})]})]}),eg&&(0,t.jsx)("div",{className:"px-5 py-2",children:(0,t.jsx)("p",{className:"text-xs text-red-500",children:eg})}),(0,t.jsxs)("div",{className:"px-5 py-3 border-t border-[var(--border)] flex items-center justify-between",children:[(0,t.jsxs)("span",{className:"text-[11px] text-[var(--muted-foreground)]",children:[eu.size," ",1===eu.size?"agent":"agents",ex.size>0?`, ${ex.size} ${1===ex.size?"project":"projects"}`:""]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>{ec(null),ep(new Set),em(new Set)},children:"Back"}),(0,t.jsxs)("button",{type:"button",disabled:0===eu.size||eh,className:"inline-flex items-center gap-1.5 px-4 py-1.5 text-xs font-medium text-white bg-violet-600 rounded-lg hover:bg-violet-700 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>void e_(),children:[(0,t.jsx)(h.Upload,{size:12}),eh?"Importing...":`Import ${eu.size} agent${1===eu.size?"":"s"}`]})]})]})]})]})})]})}],884196)}]);
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,597628,e=>{"use strict";let t=(0,e.i(363732).default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);e.s(["MessageSquare",0,t],597628)},618566,(e,t,r)=>{t.exports=e.r(976562)},572665,e=>{"use strict";let t=(0,e.i(363732).default)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);e.s(["Users",0,t],572665)},8707,e=>{"use strict";let t=(0,e.i(363732).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["Search",0,t],8707)},498027,e=>{"use strict";let t=(0,e.i(363732).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",0,t],498027)},529471,e=>{"use strict";let t=(0,e.i(363732).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],529471)},378764,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(498027),n=e.i(8707),i=e.i(529471),o=e.i(797167);e.s(["default",0,function({options:e,value:s,onChange:c,placeholder:l,disabled:u}){let[d,f]=(0,r.useState)(!1),[p,h]=(0,r.useState)(""),y=(0,r.useRef)(null),m=(0,r.useRef)(null),v=(0,r.useMemo)(()=>{if(!p)return e;let t=p.toLowerCase();return e.filter(e=>e.label.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t)||e.meta?.toLowerCase().includes(t))},[e,p]),j=(0,r.useMemo)(()=>e.find(e=>e.id===s),[e,s]),b=(0,r.useCallback)(e=>{y.current&&!y.current.contains(e.target)&&f(!1)},[]);return(0,r.useEffect)(()=>(document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)),[b]),(0,t.jsxs)("div",{ref:y,className:"relative",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>{u||(f(!d),h(""),setTimeout(()=>m.current?.focus(),0))},disabled:u,className:"input w-full flex items-center justify-between gap-2 text-left cursor-pointer",children:[j?(0,t.jsx)("span",{className:"truncate",children:j.label}):(0,t.jsx)("span",{className:"text-[var(--muted-foreground)] truncate",children:l}),(0,t.jsx)(a.ChevronDown,{className:`w-4 h-4 text-[var(--muted-foreground)] flex-shrink-0 transition-transform ${d?"rotate-180":""}`})]}),d&&(0,t.jsxs)("div",{className:"absolute z-50 mt-2 min-w-full w-max max-w-[28rem] rounded-2xl overflow-hidden right-0",style:{background:"var(--card-bg)",border:"1px solid var(--border)",boxShadow:"0 8px 30px rgba(0,0,0,0.35), 0 0 0 1px rgba(255,255,255,0.05)"},children:[(0,t.jsxs)("div",{className:"flex items-center gap-2.5 px-3.5 py-3 border-b",style:{borderColor:"var(--border)"},children:[(0,t.jsx)(n.Search,{className:"w-4 h-4 text-[var(--muted-foreground)] flex-shrink-0"}),(0,t.jsx)("input",{ref:m,value:p,onChange:e=>h(e.target.value),placeholder:"Search...",className:"flex-1 bg-transparent text-sm outline-none placeholder:text-[var(--muted-foreground)]"}),p&&(0,t.jsx)("button",{onClick:()=>h(""),className:"text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:(0,t.jsx)(o.X,{className:"w-3.5 h-3.5"})})]}),(0,t.jsxs)("div",{className:"max-h-72 overflow-y-auto py-1",children:[0===v.length&&(0,t.jsx)("div",{className:"px-4 py-6 text-xs text-[var(--muted-foreground)] text-center",children:"No matches"}),v.map(e=>{let r=e.id===s;return(0,t.jsxs)("button",{onClick:()=>{e.disabled||(c(e.id),f(!1),h(""))},disabled:e.disabled,className:`
|
|
2
|
-
w-full text-left px-3.5 py-2.5 flex items-center gap-3 transition-colors
|
|
3
|
-
${e.disabled?"opacity-35 cursor-not-allowed":""}
|
|
4
|
-
${r?"bg-[var(--primary)]/10":"hover:bg-[var(--muted)]/40"}
|
|
5
|
-
`,children:[(0,t.jsx)("div",{className:`w-5 h-5 rounded-md flex items-center justify-center flex-shrink-0 border ${r?"bg-[var(--primary)] border-[var(--primary)]":"border-[var(--border)]"}`,children:r&&(0,t.jsx)(i.Check,{className:"w-3 h-3 text-white"})}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium",children:e.label}),e.meta&&(0,t.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full bg-[var(--muted)]/50 text-[var(--muted-foreground)]",children:e.meta})]}),e.description&&(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5 line-clamp-1",children:e.description})]})]},e.id)})]})]})]})}])},797167,e=>{"use strict";let t=(0,e.i(363732).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["X",0,t],797167)},363732,e=>{"use strict";var t=e.i(271645);let r=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim(),a=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var n={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let i=(0,t.forwardRef)(({color:e="currentColor",size:a=24,strokeWidth:i=2,absoluteStrokeWidth:o,className:s="",children:c,iconNode:l,...u},d)=>(0,t.createElement)("svg",{ref:d,...n,width:a,height:a,stroke:e,strokeWidth:o?24*Number(i)/Number(a):i,className:r("lucide",s),...!c&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(u)&&{"aria-hidden":"true"},...u},[...l.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(c)?c:[c]]));e.s(["default",0,(e,n)=>{let o=(0,t.forwardRef)(({className:o,...s},c)=>(0,t.createElement)(i,{ref:c,iconNode:n,className:r(`lucide-${a(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,o),...s}));return o.displayName=a(e),o}],363732)},929870,e=>{"use strict";let t=(0,e.i(363732).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],929870)},524123,e=>{"use strict";var t=e.i(271645);e.s(["useProjects",0,function(){let[e,r]=(0,t.useState)([]),[a,n]=(0,t.useState)(!1),[i,o]=(0,t.useState)(null),s=(0,t.useCallback)(async()=>{n(!0);try{let e=await fetch("/api/projects");if(!e.ok)throw Error("Failed to fetch projects");let t=await e.json();r(t.projects??[]),o(null)}catch(e){o(e instanceof Error?e:Error("Unknown error"))}finally{n(!1)}},[]);(0,t.useEffect)(()=>{s()},[s]);let c=(0,t.useCallback)(async e=>{let t=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to create project");let a=(await t.json()).project;return r(e=>[a,...e]),a},[]);return{projects:e,isLoading:a,error:i,refetch:s,createProject:c,updateProject:(0,t.useCallback)(async(e,t)=>{let a=await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok)throw Error((await a.json().catch(()=>({}))).error||"Failed to update project");let n=(await a.json()).project;return r(t=>t.map(t=>t.id===e?n:t)),n},[]),deleteProject:(0,t.useCallback)(async e=>{let t=await fetch(`/api/projects/${e}`,{method:"DELETE"});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to delete project");r(t=>t.filter(t=>t.id!==e))},[])}},"useProjectsWithAgents",0,function(){let[e,r]=(0,t.useState)([]),[a,n]=(0,t.useState)(!0),i=(0,t.useCallback)(async()=>{try{let e=await fetch("/api/projects");if(!e.ok)return;let{projects:t}=await e.json(),a=await Promise.all((t??[]).map(async e=>{let t=[],r=[];try{let[a,n]=await Promise.all([fetch(`/api/projects/${e.id}/agents`),fetch(`/api/projects/${e.id}/threads`)]);a.ok&&(t=(await a.json()).agents??[]),n.ok&&(r=((await n.json()).threads??[]).map(e=>e.thread_id))}catch{}return{...e,repos:e.repos??[],agents:t.map(t=>({project_id:e.id,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at})),thread_ids:r,workspace_ids:r}}));r(a)}catch{}finally{n(!1)}},[]);(0,t.useEffect)(()=>{i()},[i]);let o=(0,t.useCallback)(async(e,t)=>{try{let a="string"==typeof e?{name:e}:e,n=a.name.trim(),i=(a.slug||n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")).trim(),o=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...a,name:n,slug:i})});if(!o.ok)return null;let{project:s}=await o.json(),c=Array.isArray(t)?t:t?[t]:[];for(let e of c)await fetch(`/api/projects/${s.id}/threads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:e})}).catch(e=>console.warn("[useProjects] link thread failed:",e));let l={...s,repos:s.repos??[],agents:[],thread_ids:c,workspace_ids:c};return r(e=>[...e,l].sort((e,t)=>e.name.localeCompare(t.name))),l}catch{return null}},[]),s=(0,t.useCallback)(async(e,t)=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})})).ok)return;r(r=>r.map(r=>r.id===e?{...r,name:t}:r).sort((e,t)=>e.name.localeCompare(t.name)))}catch{}},[]),c=(0,t.useCallback)(async e=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"DELETE"})).ok)return;r(t=>t.filter(t=>t.id!==e))}catch{}},[]),l=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok){let e=await a.json().catch(()=>({}));throw Error(e.error||"Failed to update project")}let n=(await a.json()).project;return r(t=>t.map(t=>t.id===e?{...t,...n,repos:n.repos??t.repos}:t)),n}catch{return null}},[]),u=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:t})});if(!a.ok)return;let n=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:n}:t))}catch{}},[]),d=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents?agentId=${t}`,{method:"DELETE"});if(!a.ok)return;let n=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:n}:t))}catch{}},[]);return{projects:e,isLoading:a,createProject:o,updateProject:l,renameProject:s,deleteProject:c,addAgent:u,removeAgent:d,reorderAgents:(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({orderedAgentIds:t})});if(!a.ok)return;let n=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:n}:t))}catch{}},[]),moveAgent:(0,t.useCallback)(async(e,t,r)=>{try{await fetch(`/api/projects/${t}/agents?agentId=${e}`,{method:"DELETE"}),await fetch(`/api/projects/${r}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:e})}),await i()}catch{}},[i]),refresh:i}}])},169610,e=>{"use strict";let t=(0,e.i(363732).default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);e.s(["User",0,t],169610)},519132,e=>{"use strict";let t=(0,e.i(363732).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);e.s(["Sparkles",0,t],519132)},19035,e=>{"use strict";let t=(0,e.i(363732).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",0,t],19035)},755838,(e,t,r)=>{"use strict";var a=e.r(271645),n="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},i=a.useState,o=a.useEffect,s=a.useLayoutEffect,c=a.useDebugValue;function l(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!n(e,r)}catch(e){return!0}}var u="u"<typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),a=i({inst:{value:r,getSnapshot:t}}),n=a[0].inst,u=a[1];return s(function(){n.value=r,n.getSnapshot=t,l(n)&&u({inst:n})},[e,r,t]),o(function(){return l(n)&&u({inst:n}),e(function(){l(n)&&u({inst:n})})},[e]),c(r),r};r.useSyncExternalStore=void 0!==a.useSyncExternalStore?a.useSyncExternalStore:u},802239,(e,t,r)=>{"use strict";t.exports=e.r(755838)},752822,(e,t,r)=>{"use strict";var a=e.r(271645),n=e.r(802239),i="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=n.useSyncExternalStore,s=a.useRef,c=a.useEffect,l=a.useMemo,u=a.useDebugValue;r.useSyncExternalStoreWithSelector=function(e,t,r,a,n){var d=s(null);if(null===d.current){var f={hasValue:!1,value:null};d.current=f}else f=d.current;var p=o(e,(d=l(function(){function e(e){if(!c){if(c=!0,o=e,e=a(e),void 0!==n&&f.hasValue){var t=f.value;if(n(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var r=a(e);return void 0!==n&&n(t,r)?(o=e,t):(o=e,s=r)}var o,s,c=!1,l=void 0===r?null:r;return[function(){return e(t())},null===l?void 0:function(){return e(l())}]},[t,r,a,n]))[0],d[1]);return c(function(){f.hasValue=!0,f.value=p},[p]),u(p),p}},430224,(e,t,r)=>{"use strict";t.exports=e.r(752822)},538292,e=>{"use strict";let t=(0,e.i(363732).default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",0,t],538292)},902572,e=>{"use strict";let t="project_objectives_workspace",r="project_goals_workspace",a=new Set(["on_track","at_risk","off_track","done"]);function n(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function i(e){return`${e}_${Math.random().toString(36).slice(2,10)}`}function o(e){return[...e].sort((e,t)=>Date.parse(t.updatedAt)-Date.parse(e.updatedAt))}function s(e){return[...e].sort((e,t)=>Date.parse(e.createdAt)-Date.parse(t.createdAt))}function c(e){return[...e].sort((e,t)=>Date.parse(t.createdAt)-Date.parse(e.createdAt))}function l(e,t=""){return"string"==typeof e?e:t}function u(e){return Array.isArray(e)?Array.from(new Set(e.map(e=>"string"==typeof e?e.trim():"").filter(Boolean))):[]}function d(e,t="1970-01-01T00:00:00.000Z"){if("string"!=typeof e)return t;let r=Date.parse(e);return Number.isNaN(r)?t:new Date(r).toISOString()}function f(e){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function p(e,t=0){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.floor(e)):t}function h(e,t="objective"){let r=e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/-{2,}/g,"-").slice(0,32);return r||t.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"objective"}function y(e,t,r="objective"){let a=h(r),n=h(e,a),i=n,o=2;for(;t.has(i);){let e=`-${o}`,t=Math.max(1,32-e.length);i=`${n.slice(0,t)}${e}`,o+=1}return t.add(i),i}function m(e){var t;if(!n(e))return null;let r=d(e.updatedAt??e.createdAt),o=d(e.createdAt,r);return{id:l(e.id,i("objective")),title:l(e.title,"Untitled objective"),teamId:l(e.teamId??e.team_id??e.ownerTeamId),key:h(l(e.key??e.slug??e.label),l(e.title??e.id,"objective")),threadId:l(e.threadId)||null,chatSessionVersion:p(e.chatSessionVersion,0),scheduledTaskIds:u(e.scheduledTaskIds??e.promptJobIds),summary:l(e.summary),cadence:l(e.cadence),condition:l(e.condition),progress:f(e.progress),status:"string"==typeof(t=e.status)&&a.has(t)?t:"on_track",createdAt:o,updatedAt:r}}function v(e){if(!n(e))return null;let t=d(e.updatedAt??e.createdAt),r=d(e.createdAt,t),a=l(e.objectiveId??e.goalId);return a?{id:l(e.id,i("objective_activity")),objectiveId:a,sourceType:"note",sourceLabel:l(e.sourceLabel,"Update"),title:l(e.title,"Untitled activity"),body:l(e.body),createdAt:r,updatedAt:t,relatedTaskId:l(e.relatedTaskId)||null}:null}function j(e){if(!n(e))return null;let t=l(e.activityId);return t?{id:l(e.id,i("objective_thread_message")),activityId:t,author:l(e.author,"You"),body:l(e.body),createdAt:d(e.createdAt)}:null}function b(){return{objectives:[],activities:[],activityThreads:{}}}function g(e){let t;if(!n(e))return b();let r=Array.isArray(e.objectives)?e.objectives.map(e=>m(e)).filter(e=>null!==e):[],a=Array.isArray(e.activities)?e.activities.map(e=>v(e)).filter(e=>null!==e):[],i=n(e.activityThreads)?Object.fromEntries(Object.entries(e.activityThreads).map(([e,t])=>[e,s(Array.isArray(t)?t.map(e=>j(e)).filter(e=>null!==e):[])])):{};return{objectives:o((t=new Set,r.map(e=>{let r=y(e.key||e.title||e.id,t,e.id||e.title||"objective");return e.key===r?e:{...e,key:r}}))),activities:c(a),activityThreads:i}}e.s(["CURRENT_OBJECTIVE_CHAT_SESSION_VERSION",0,2,"buildObjectiveTimelineActivities",0,function({objective:e,workspace:t}){return t.activities.filter(t=>t.objectiveId===e.id).map(e=>({...e,threadCount:t.activityThreads[e.id]?.length??0})).sort((e,t)=>Date.parse(t.createdAt)-Date.parse(e.createdAt))},"createProjectObjective",0,function(e){return{id:e.id??i("objective"),title:e.title.trim(),teamId:e.teamId.trim(),key:h(e.key?.trim()??e.title.trim(),e.id??e.title),threadId:"string"==typeof e.threadId&&e.threadId.trim()?e.threadId.trim():null,chatSessionVersion:p(e.chatSessionVersion??2,2),scheduledTaskIds:u(e.scheduledTaskIds??[]),summary:e.summary?.trim()??"",cadence:e.cadence?.trim()??"",condition:e.condition?.trim()??"",progress:f(e.progress??0),status:e.status??"on_track",createdAt:e.now,updatedAt:e.now}},"generateProjectObjectiveKey",0,function(e,t,r){return y(e,new Set(t.filter(e=>e.id!==r).map(e=>h(e.key||e.title||e.id))),r??e)},"readProjectObjectivesWorkspace",0,function(e){if(!n(e))return b();let a=e[t];if(void 0!==a){let e=g(a);if(e.objectives.length>0||e.activities.length>0||Object.keys(e.activityThreads).length>0)return e}let i=e[r];if(void 0!==i){if(!n(i))return b();let e=Array.isArray(i.goals)?i.goals.map(e=>(function(e){if(!n(e))return null;let t=l(e.target),r=[l(e.summary),t?`Measure: ${t}`:""].filter(Boolean).join("\n\n");return m({...e,summary:r,cadence:""})})(e)).filter(e=>null!==e):[],t=Array.isArray(i.manualActivities)?i.manualActivities.map(e=>v({...e,sourceLabel:"Update"})).filter(e=>null!==e):[],r=n(i.activityThreads)?Object.fromEntries(Object.entries(i.activityThreads).map(([e,t])=>[e,s(Array.isArray(t)?t.map(t=>j({...t,activityId:e})).filter(e=>null!==e):[])])):{};return{objectives:o(e),activities:c(t),activityThreads:r}}return b()},"removeProjectObjective",0,function(e,t){let r=new Set(e.activities.filter(e=>e.objectiveId===t).map(e=>e.id)),a=Object.fromEntries(Object.entries(e.activityThreads).filter(([e])=>!r.has(e)));return{objectives:e.objectives.filter(e=>e.id!==t),activities:e.activities.filter(e=>e.objectiveId!==t),activityThreads:a}},"upsertProjectObjective",0,function(e,t){let r=e.objectives.findIndex(e=>e.id===t.id)>=0?e.objectives.map(e=>e.id===t.id?t:e):[t,...e.objectives];return{...e,objectives:o(r)}},"writeProjectObjectivesWorkspace",0,function(e,a){let n={...e};return delete n[r],n[t]=g(a),n}])},644660,e=>{"use strict";var t=e.i(843476);e.s(["LinearIcon",0,function({size:e=16,...r}){return(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:"0 0 100 100",fill:"currentColor",...r,children:(0,t.jsx)("path",{d:"M1.22541 61.5228c-.2225-.9485.90748-1.5459 1.59638-.857L39.3342 97.1782c.6889.6889.0915 1.8189-.857 1.5964C20.0515 94.4522 5.54779 79.9485 1.22541 61.5228ZM.00189135 46.8891c-.01764375.2833.08887215.5599.28957165.7606L52.3503 99.7085c.2007.2007.4773.3075.7606.2896 2.3692-.1476 4.6938-.46 6.9624-.9259.7645-.157 1.0301-1.0963.4782-1.6481L2.57595 39.4485c-.55186-.5519-1.49117-.2863-1.648174.4782-.465915 2.2686-.77832 4.5932-.92588465 6.9624ZM4.21093 29.7054c-.16649.3738-.08169.8106.20765 1.1l64.77602 64.776c.2894.2894.7262.3742 1.1.2077 1.7861-.7956 3.5171-1.6927 5.1855-2.684.5521-.328.6373-1.0867.1832-1.5407L8.43566 24.3367c-.45409-.4541-1.21271-.3689-1.54074.1832-.99132 1.6684-1.88843 3.3994-2.68399 5.1855ZM12.6587 18.074c-.3701-.3701-.393-.9637-.0443-1.3541C21.7795 6.45931 35.1114 0 49.9519 0 77.5927 0 100 22.4073 100 50.0481c0 14.8405-6.4593 28.1724-16.7199 37.3375-.3903.3487-.984.3258-1.3542-.0443L12.6587 18.074Z"})})}])},195057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={formatUrl:function(){return s},formatWithValidation:function(){return l},urlObjectKeys:function(){return c}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let i=e.r(190809)._(e.r(998183)),o=/https?|ftp|gopher|file/;function s(e){let{auth:t,hostname:r}=e,a=e.protocol||"",n=e.pathname||"",s=e.hash||"",c=e.query||"",l=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?l=t+e.host:r&&(l=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(l+=":"+e.port)),c&&"object"==typeof c&&(c=String(i.urlQueryToSearchParams(c)));let u=e.search||c&&`?${c}`||"";return a&&!a.endsWith(":")&&(a+=":"),e.slashes||(!a||o.test(a))&&!1!==l?(l="//"+(l||""),n&&"/"!==n[0]&&(n="/"+n)):l||(l=""),s&&"#"!==s[0]&&(s="#"+s),u&&"?"!==u[0]&&(u="?"+u),n=n.replace(/[?#]/g,encodeURIComponent),u=u.replace("#","%23"),`${a}${l}${n}${u}${s}`}let c=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function l(e){return s(e)}},818581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return n}});let a=e.r(271645);function n(e,t){let r=(0,a.useRef)(null),n=(0,a.useRef)(null);return(0,a.useCallback)(a=>{if(null===a){let e=r.current;e&&(r.current=null,e());let t=n.current;t&&(n.current=null,t())}else e&&(r.current=i(e,a)),t&&(n.current=i(t,a))},[e,t])}function i(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},573668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return i}});let a=e.r(718967),n=e.r(652817);function i(e){if(!(0,a.isAbsoluteUrl)(e))return!0;try{let t=(0,a.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,n.hasBasePath)(r.pathname)}catch(e){return!1}}},284508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},522016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={default:function(){return v},useLinkStatus:function(){return b}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let i=e.r(190809),o=e.r(843476),s=i._(e.r(271645)),c=e.r(195057),l=e.r(8372),u=e.r(818581),d=e.r(718967),f=e.r(405550);e.r(233525);let p=e.r(388540),h=e.r(91949),y=e.r(573668),m=e.r(509396);function v(t){var r,a;let n,i,v,[b,g]=(0,s.useOptimistic)(h.IDLE_LINK_STATUS),w=(0,s.useRef)(null),{href:k,as:_,children:x,prefetch:S=null,passHref:C,replace:T,shallow:A,scroll:O,onClick:E,onMouseEnter:L,onTouchStart:M,legacyBehavior:P=!1,onNavigate:N,transitionTypes:I,ref:$,unstable_dynamicOnHover:U,...R}=t;n=x,P&&("string"==typeof n||"number"==typeof n)&&(n=(0,o.jsx)("a",{children:n}));let D=s.default.useContext(l.AppRouterContext),H=!1!==S,F=!1!==S?null===(a=S)||"auto"===a?m.FetchStrategy.PPR:m.FetchStrategy.Full:m.FetchStrategy.PPR,V="string"==typeof(r=_||k)?r:(0,c.formatUrl)(r);if(P){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});i=s.default.Children.only(n)}let B=P?i&&"object"==typeof i&&i.ref:$,J=s.default.useCallback(e=>(null!==D&&(w.current=(0,h.mountLinkInstance)(e,V,D,F,H,g)),()=>{w.current&&((0,h.unmountLinkForCurrentNavigation)(w.current),w.current=null),(0,h.unmountPrefetchableInstance)(e)}),[H,V,D,F,g]),K={ref:(0,u.useMergedRef)(J,B),onClick(t){P||"function"!=typeof E||E(t),P&&i.props&&"function"==typeof i.props.onClick&&i.props.onClick(t),!D||t.defaultPrevented||function(t,r,a,n,i,o,c){if("u">typeof window){let l,{nodeName:u}=t.currentTarget;if("A"===u.toUpperCase()&&((l=t.currentTarget.getAttribute("target"))&&"_self"!==l||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,y.isLocalURL)(r)){n&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),o){let e=!1;if(o({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:d}=e.r(699781);s.default.startTransition(()=>{d(r,n?"replace":"push",!1===i?p.ScrollBehavior.NoScroll:p.ScrollBehavior.Default,a.current,c)})}}(t,V,w,T,O,N,I)},onMouseEnter(e){P||"function"!=typeof L||L(e),P&&i.props&&"function"==typeof i.props.onMouseEnter&&i.props.onMouseEnter(e),D&&H&&(0,h.onNavigationIntent)(e.currentTarget,!0===U)},onTouchStart:function(e){P||"function"!=typeof M||M(e),P&&i.props&&"function"==typeof i.props.onTouchStart&&i.props.onTouchStart(e),D&&H&&(0,h.onNavigationIntent)(e.currentTarget,!0===U)}};return(0,d.isAbsoluteUrl)(V)?K.href=V:P&&!C&&("a"!==i.type||"href"in i.props)||(K.href=(0,f.addBasePath)(V)),v=P?s.default.cloneElement(i,K):(0,o.jsx)("a",{...R,...K,children:n}),(0,o.jsx)(j.Provider,{value:b,children:v})}e.r(284508);let j=(0,s.createContext)(h.IDLE_LINK_STATUS),b=()=>(0,s.useContext)(j);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},810605,e=>{"use strict";e.s(["GRAPH_TIMEOUT_DEFAULT_MS",0,864e5,"NODE_TIMEOUT_DEFAULT_MS",0,18e5,"UI_POLL_CHAT_ALT_MS",0,15e3,"UI_POLL_CHAT_CHECK_MS",0,1e4,"UI_POLL_DB_HEALTH_MS",0,3e4,"UI_POLL_PROMPT_RUNS_MS",0,5e3,"UI_POLL_SYSTEM_STATUS_MS",0,3e4,"UI_POLL_TASK_DURATION_MS",0,6e4])},55236,e=>{"use strict";let t=(0,e.i(363732).default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);e.s(["Folder",0,t],55236)}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,794731,e=>{"use strict";let r=(0,e.i(363732).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",0,r],794731)},196630,e=>{"use strict";let r=(0,e.i(363732).default)("folder-git-2",[["path",{d:"M18 19a5 5 0 0 1-5-5v8",key:"sz5oeg"}],["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]);e.s(["FolderGit2",0,r],196630)},564957,e=>{"use strict";let r=(0,e.i(363732).default)("brain-circuit",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M9 13a4.5 4.5 0 0 0 3-4",key:"10igwf"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M12 13h4",key:"1ku699"}],["path",{d:"M12 18h6a2 2 0 0 1 2 2v1",key:"105ag5"}],["path",{d:"M12 8h8",key:"1lhi5i"}],["path",{d:"M16 8V5a2 2 0 0 1 2-2",key:"u6izg6"}],["circle",{cx:"16",cy:"13",r:".5",key:"ry7gng"}],["circle",{cx:"18",cy:"3",r:".5",key:"1aiba7"}],["circle",{cx:"20",cy:"21",r:".5",key:"yhc1fs"}],["circle",{cx:"20",cy:"8",r:".5",key:"1e43v0"}]]);e.s(["BrainCircuit",0,r],564957)},109851,e=>{"use strict";var r=e.i(843476),t=e.i(271645),a=e.i(208343),s=e.i(564957),o=e.i(575479),l=e.i(196630),n=e.i(929870),d=e.i(8707);let i=(0,e.i(363732).default)("square-pen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]);var c=e.i(794731),x=e.i(797167),u=e.i(524123);function m(e){return e?{id:e.id,content:e.content,created_at:e.createdAt,updated_at:e.updatedAt,source:e.sourceType}:null}function p({active:e,onClick:t,icon:a,label:s}){return(0,r.jsxs)("button",{onClick:t,className:`flex items-center gap-2 rounded-lg px-4 py-1.5 text-xs font-semibold transition-all ${e?"bg-[var(--card-bg)] text-[var(--foreground)] shadow-[var(--shadow-sm)] ring-1 ring-[var(--border)]":"text-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`,children:[a,s]})}function v({label:e,value:t,sub:a}){return(0,r.jsxs)("div",{className:"flex flex-col rounded-xl border border-[var(--border)] bg-[var(--secondary)] p-4",children:[(0,r.jsx)("span",{className:"text-[10px] font-black uppercase tracking-[0.2em] text-[var(--app-shell-soft-text)]",children:e}),(0,r.jsx)("span",{className:"mt-1 text-2xl font-bold text-[var(--foreground)]",children:t}),(0,r.jsx)("span",{className:"mt-1 text-[10px] text-[var(--app-shell-soft-text)]",children:a})]})}function g({note:e,emptyLabel:s,scope:o,subjectId:l,onSaved:n}){let[d,c]=(0,t.useState)(!1),[u,p]=(0,t.useState)(e?.content??""),[v,h]=(0,t.useState)(!1),[b,f]=(0,t.useState)(null);(0,t.useEffect)(()=>{p(e?.content??"")},[e?.id,e?.content]);let j=!!e?.content.trim(),y=e?.updated_at??e?.created_at,N=e?.source;async function w(){if(l){h(!0),f(null);try{let e=await fetch("/api/knowledge-notes",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({scope:o,subjectId:l,content:u})}),r=await e.json().catch(()=>({}));if(!e.ok)throw Error(r.error||"Failed to save knowledge note");let t=m(r.note);n(t),p(t?.content??""),c(!1)}catch(e){f(e instanceof Error?e.message:"Failed to save knowledge note")}finally{h(!1)}}}return j?(0,r.jsxs)("div",{className:"rounded-xl border border-[var(--border)] bg-[var(--secondary)] p-4",children:[(0,r.jsxs)("div",{className:"mb-3 flex items-start justify-between gap-3",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-[11px] text-[var(--app-shell-soft-text)]",children:[y?(0,r.jsxs)("span",{children:["Updated ",new Date(y).toLocaleString()]}):null,N?(0,r.jsx)("span",{children:N}):null]}),d?null:(0,r.jsxs)("button",{type:"button",onClick:()=>{p(e?.content??""),f(null),c(!0)},className:"inline-flex items-center gap-1.5 rounded-lg border border-[var(--border)] bg-[var(--card-bg)] px-3 py-1.5 text-xs font-medium text-[var(--foreground)]",children:[(0,r.jsx)(i,{className:"h-3.5 w-3.5"}),"Edit"]})]}),d?(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)("textarea",{value:u,onChange:e=>p(e.target.value),rows:12,className:"w-full resize-y rounded-xl border border-[var(--border)] bg-[var(--card-bg)] px-4 py-3 text-sm text-[var(--foreground)] focus:border-[var(--primary)] focus:outline-none focus:ring-2 focus:ring-[var(--ring)]",placeholder:"Write the living knowledge note in markdown..."}),b?(0,r.jsx)("p",{className:"text-xs text-red-500",children:b}):null,(0,r.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>{p(e?.content??""),f(null),c(!1)},className:"inline-flex items-center gap-1.5 rounded-lg px-3 py-1.5 text-xs font-medium text-[var(--muted-foreground)]",disabled:v,children:[(0,r.jsx)(x.X,{className:"h-3.5 w-3.5"}),"Cancel"]}),(0,r.jsx)("button",{type:"button",onClick:()=>void w(),disabled:v,className:"inline-flex items-center gap-1.5 rounded-lg bg-[var(--primary)] px-3 py-1.5 text-xs font-medium text-[var(--primary-foreground)] disabled:opacity-60",children:v?"Saving...":"Save"})]})]}):(0,r.jsx)("div",{className:"text-sm leading-relaxed text-[var(--secondary-foreground)]",children:(0,r.jsx)(a.Markdown,{content:e?.content??""})})]}):(0,r.jsxs)("div",{className:"rounded-xl border border-dashed border-[var(--border)] px-4 py-6 text-sm text-[var(--muted-foreground)]",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,r.jsx)("span",{children:s}),(0,r.jsxs)("button",{type:"button",onClick:()=>{p(e?.content??""),f(null),c(!0)},className:"inline-flex items-center gap-1.5 rounded-lg border border-[var(--border)] bg-[var(--secondary)] px-3 py-1.5 text-xs font-medium text-[var(--foreground)]",children:[(0,r.jsx)(i,{className:"h-3.5 w-3.5"}),"Edit"]})]}),d?(0,r.jsxs)("div",{className:"mt-4 space-y-3",children:[(0,r.jsx)("textarea",{value:u,onChange:e=>p(e.target.value),rows:10,className:"w-full resize-y rounded-xl border border-[var(--border)] bg-[var(--secondary)] px-4 py-3 text-sm text-[var(--foreground)] focus:border-[var(--primary)] focus:outline-none focus:ring-2 focus:ring-[var(--ring)]",placeholder:"Write the living knowledge note in markdown..."}),b?(0,r.jsx)("p",{className:"text-xs text-red-500",children:b}):null,(0,r.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>{p(e?.content??""),f(null),c(!1)},className:"inline-flex items-center gap-1.5 rounded-lg px-3 py-1.5 text-xs font-medium text-[var(--muted-foreground)]",disabled:v,children:[(0,r.jsx)(x.X,{className:"h-3.5 w-3.5"}),"Cancel"]}),(0,r.jsx)("button",{type:"button",onClick:()=>void w(),disabled:v,className:"inline-flex items-center gap-1.5 rounded-lg bg-[var(--primary)] px-3 py-1.5 text-xs font-medium text-[var(--primary-foreground)] disabled:opacity-60",children:v?"Saving...":"Save"})]})]}):null]})}function h({repo:e,systemNote:t,systemNoteMatches:a,onSystemNoteSaved:s}){return(0,r.jsxs)("div",{className:"group flex flex-col rounded-2xl border border-[var(--border)] bg-[var(--card-bg)] p-5 shadow-[var(--shadow-sm)] transition-colors hover:border-[var(--card-hover-border)]",children:[(0,r.jsx)("div",{className:"mb-3 flex items-start justify-between",children:(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"flex h-9 w-9 items-center justify-center rounded-xl bg-[var(--secondary)] text-[var(--muted-foreground)]",children:(0,r.jsx)(l.FolderGit2,{size:20})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{className:"text-sm font-semibold text-[var(--foreground)]",children:e.name}),(0,r.jsx)("p",{className:"text-[11px] text-[var(--muted-foreground)]",children:e.path||"No path set"})]})]})}),(0,r.jsxs)("div",{className:"mb-3",children:[(0,r.jsx)("p",{className:"mb-2 text-[10px] font-black uppercase tracking-[0.16em] text-[var(--app-shell-soft-text)]",children:"Living Repo Note"}),(0,r.jsx)(g,{note:a?t:t?.content?{...t,content:""}:null,emptyLabel:"No repo note yet.",scope:"repo",subjectId:e.id,onSaved:s})]})]})}e.s(["default",0,function({params:e}){let{slug:a}=(0,t.use)(e),{projects:x,updateProject:b}=(0,u.useProjects)(),f=x.find(e=>e.slug===a),j=f?.id??null,{skills:y,addSkill:N,removeSkill:w}=function(e){let[r,a]=(0,t.useState)([]),[s,o]=(0,t.useState)(!0),l=(0,t.useCallback)(async()=>{if(!e){a([]),o(!1);return}try{let r=await fetch(`/api/projects/${e}/skills`);if(!r.ok)return;let t=await r.json();a(t.skills??[])}catch{}finally{o(!1)}},[e]);return(0,t.useEffect)(()=>{l()},[l]),{skills:r,isLoading:s,addSkill:(0,t.useCallback)(async(r,t)=>{if(e)try{(await fetch(`/api/projects/${e}/skills`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({file:r,condition:t})})).ok&&await l()}catch{}},[e,l]),removeSkill:(0,t.useCallback)(async r=>{if(e)try{(await fetch(`/api/projects/${e}/skills?skillId=${r}`,{method:"DELETE"})).ok&&a(e=>e.filter(e=>e.id!==r))}catch{}},[e]),refresh:l}}(j),[k,C]=(0,t.useState)("project"),[S,F]=(0,t.useState)(""),[L,M]=(0,t.useState)(!1),[T,z]=(0,t.useState)(""),[E,A]=(0,t.useState)(""),[P,R]=(0,t.useState)(null),[$,I]=(0,t.useState)({}),[O,_]=(0,t.useState)(!1),[U,B]=(0,t.useState)(""),[G,H]=(0,t.useState)(""),[V,q]=(0,t.useState)(null),[D,K]=(0,t.useState)(""),[J,W]=(0,t.useState)(""),[X,Z]=(0,t.useState)(null);(0,t.useEffect)(()=>{let e=!1;return async function(){if(!j)return R(null);try{let r=await fetch(`/api/knowledge-notes?scope=project&subjectId=${encodeURIComponent(j)}`),t=r.ok?await r.json():{note:null};e||R(m(t.note))}catch{e||R(null)}}(),()=>{e=!0}},[j]),(0,t.useEffect)(()=>{let e=!1;return async function(){let r=f?.repos??[];if(0===r.length)return I({});try{let t=await Promise.all(r.map(async e=>{let r=await fetch(`/api/knowledge-notes?scope=repo&subjectId=${encodeURIComponent(e.id)}`),t=r.ok?await r.json():{note:null};return[e.id,m(t.note)]}));e||I(Object.fromEntries(t))}catch{e||I({})}}(),()=>{e=!0}},[f?.repos]);let Q=y.filter(e=>!S||e.file.toLowerCase().includes(S.toLowerCase())||(e.condition??"").toLowerCase().includes(S.toLowerCase())),Y=!S||P?.content.toLowerCase().includes(S.toLowerCase()),ee=(f?.repos??[]).filter(e=>{if(!S)return!0;let r=S.toLowerCase(),t=($[e.id]?.content??"").toLowerCase();return e.name.toLowerCase().includes(r)||(e.path??"").toLowerCase().includes(r)||t.includes(r)}),er=e=>{Z(e),window.setTimeout(()=>Z(null),2500)},et=()=>(f?.repos??[]).map(e=>({id:e.id,name:e.name,path:e.path,git_url:e.git_url,notes:e.notes})),ea=async()=>{let e=U.trim(),r=G.trim();if(f&&e&&r)try{await b(f.id,{repos:[...et(),{name:e,path:r}]}),_(!1),B(""),H(""),er("Folder added")}catch{er("Failed to add folder")}},es=async e=>{if(f)try{await b(f.id,{repos:et().filter(r=>r.id!==e)}),V===e&&(q(null),K(""),W("")),er("Folder deleted")}catch{er("Failed to delete folder")}},eo=async e=>{let r=D.trim(),t=J.trim();if(f&&r&&t)try{await b(f.id,{repos:et().map(a=>a.id===e?{...a,name:r,path:t}:a)}),q(null),K(""),W(""),er("Folder updated")}catch{er("Failed to update folder")}};return f?(0,r.jsxs)("div",{className:"flex h-full flex-col overflow-hidden",children:[(0,r.jsx)("div",{className:"flex-shrink-0 border-b border-[var(--border)] bg-[var(--card-bg)] px-3 py-2 backdrop-blur-md sm:h-14 sm:px-6 sm:py-0",children:(0,r.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between sm:gap-4",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,r.jsx)("span",{className:"font-semibold text-[var(--foreground)]",children:f.name}),(0,r.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"/"}),(0,r.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"Knowledge"})]}),(0,r.jsxs)("div",{className:"relative w-full sm:max-w-xs",children:[(0,r.jsx)(d.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 text-[var(--app-shell-soft-text)]",size:14}),(0,r.jsx)("input",{type:"text",placeholder:"Search notes...",value:S,onChange:e=>F(e.target.value),className:"w-full rounded-full border border-[var(--border)] bg-[var(--secondary)] py-1.5 pl-9 pr-4 text-xs focus:outline-none focus:ring-2 focus:ring-[var(--ring)] focus:border-[var(--primary)]"})]})]})}),(0,r.jsx)("div",{className:"flex-shrink-0 px-3 pb-2 pt-4 sm:px-6",children:(0,r.jsxs)("div",{className:"flex w-fit gap-1 rounded-xl border border-[var(--border)] bg-[var(--secondary)] p-1",children:[(0,r.jsx)(p,{active:"project"===k,onClick:()=>C("project"),icon:(0,r.jsx)(s.BrainCircuit,{size:14}),label:"Project"}),(0,r.jsx)(p,{active:"repos"===k,onClick:()=>C("repos"),icon:(0,r.jsx)(l.FolderGit2,{size:14}),label:"Folders"})]})}),(0,r.jsx)("div",{className:"flex-1 overflow-y-auto px-3 pb-8 sm:px-6",children:"project"===k?(0,r.jsxs)("div",{className:"mt-2 grid grid-cols-12 gap-4 sm:gap-6",children:[(0,r.jsxs)("div",{className:"col-span-12 lg:col-span-4 space-y-4",children:[(0,r.jsxs)("div",{className:"rounded-2xl border border-[var(--border)] bg-[var(--card-bg)] p-5 shadow-[var(--shadow-sm)]",children:[(0,r.jsx)("h3",{className:"mb-4 text-[10px] font-black uppercase tracking-[0.2em] text-[var(--app-shell-soft-text)]",children:"Overview"}),(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,r.jsx)(v,{label:"References",value:Q.length,sub:"File-backed"}),(0,r.jsx)(v,{label:"Folders",value:f.repos.length,sub:"Attached folders"})]}),(0,r.jsx)("div",{className:"mt-3",children:(0,r.jsx)(v,{label:"System Note",value:+!!P?.content,sub:"Living doc"})})]}),(0,r.jsxs)("section",{className:"rounded-2xl border border-[var(--border)] bg-[var(--card-bg)] p-5 shadow-[var(--shadow-sm)]",children:[(0,r.jsxs)("div",{className:"mb-4 flex items-start justify-between gap-3",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("h2",{className:"flex items-center gap-2 text-sm font-semibold text-[var(--foreground)]",children:[(0,r.jsx)(l.FolderGit2,{size:16,className:"text-[var(--primary)]"}),"Folders"]}),(0,r.jsx)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:"Add, edit, or remove project folders from home."})]}),(0,r.jsxs)("button",{type:"button",onClick:()=>{_(e=>!e),q(null)},className:"inline-flex items-center gap-1 rounded-lg border border-[var(--border)] px-2.5 py-1.5 text-xs font-medium text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:[(0,r.jsx)(n.Plus,{className:"h-3.5 w-3.5"}),"Add"]})]}),X?(0,r.jsx)("p",{className:"mb-3 text-xs text-[var(--muted-foreground)]",children:X}):null,O?(0,r.jsxs)("div",{className:"mb-3 rounded-xl border border-[var(--border)] bg-[var(--secondary)] p-3",children:[(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("input",{type:"text",value:U,onChange:e=>B(e.target.value),className:"w-full rounded-lg border border-[var(--border)] bg-[var(--card-bg)] px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-[var(--ring)]",placeholder:"Folder name"}),(0,r.jsx)("input",{type:"text",value:G,onChange:e=>H(e.target.value),className:"w-full rounded-lg border border-[var(--border)] bg-[var(--card-bg)] px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-[var(--ring)]",placeholder:"Local path"})]}),(0,r.jsxs)("div",{className:"mt-3 flex items-center gap-2",children:[(0,r.jsx)("button",{type:"button",onClick:()=>void ea(),disabled:!U.trim()||!G.trim(),className:"rounded-lg bg-[var(--primary)] px-3 py-1.5 text-xs font-semibold text-[var(--primary-foreground)] disabled:cursor-not-allowed disabled:opacity-50",children:"Save"}),(0,r.jsx)("button",{type:"button",onClick:()=>{_(!1),B(""),H("")},className:"rounded-lg px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:bg-[var(--secondary)]",children:"Cancel"})]})]}):null,0===(f.repos??[]).length?(0,r.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No folders linked yet."}):(0,r.jsx)("div",{className:"space-y-2",children:f.repos.map(e=>{let t=V===e.id;return(0,r.jsx)("div",{className:"rounded-xl border border-[var(--border)] bg-[var(--secondary)] p-3",children:t?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("input",{type:"text",value:D,onChange:e=>K(e.target.value),className:"w-full rounded-lg border border-[var(--border)] bg-[var(--card-bg)] px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-[var(--ring)]",placeholder:"Folder name"}),(0,r.jsx)("input",{type:"text",value:J,onChange:e=>W(e.target.value),className:"w-full rounded-lg border border-[var(--border)] bg-[var(--card-bg)] px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-[var(--ring)]",placeholder:"Local path"})]}),(0,r.jsxs)("div",{className:"mt-3 flex items-center gap-2",children:[(0,r.jsx)("button",{type:"button",onClick:()=>void eo(e.id),disabled:!D.trim()||!J.trim(),className:"rounded-lg bg-[var(--primary)] px-3 py-1.5 text-xs font-semibold text-[var(--primary-foreground)] disabled:cursor-not-allowed disabled:opacity-50",children:"Save"}),(0,r.jsx)("button",{type:"button",onClick:()=>{q(null),K(""),W("")},className:"rounded-lg px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]",children:"Cancel"})]})]}):(0,r.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("p",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:e.name}),(0,r.jsx)("p",{className:"truncate text-xs text-[var(--muted-foreground)]",children:e.path||e.git_url||"No path set"})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)("button",{type:"button",onClick:()=>{q(e.id),K(e.name),W(e.path??"")},className:"rounded-lg p-1.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]","aria-label":`Edit ${e.name}`,children:(0,r.jsx)(i,{className:"h-3.5 w-3.5"})}),(0,r.jsx)("button",{type:"button",onClick:()=>void es(e.id),className:"rounded-lg p-1.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-red-500","aria-label":`Delete ${e.name}`,children:(0,r.jsx)(c.Trash2,{className:"h-3.5 w-3.5"})})]})]})},e.id)})})]})]}),(0,r.jsxs)("div",{className:"col-span-12 lg:col-span-8 space-y-4",children:[(0,r.jsxs)("section",{className:"rounded-2xl border border-[var(--border)] bg-[var(--card-bg)] p-5 shadow-[var(--shadow-sm)]",children:[(0,r.jsxs)("div",{className:"mb-4",children:[(0,r.jsxs)("h2",{className:"flex items-center gap-2 text-sm font-semibold text-[var(--foreground)]",children:[(0,r.jsx)(s.BrainCircuit,{size:16,className:"text-[var(--primary)]"}),"Living Project Note"]}),(0,r.jsx)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:"Auto-maintained project knowledge. It updates in place instead of creating review candidates."})]}),(0,r.jsx)(g,{note:Y?P:P?.content?{...P,content:""}:null,emptyLabel:S?"No matching project note content.":"No project note yet.",scope:"project",subjectId:j??"",onSaved:R})]}),(0,r.jsxs)("section",{className:"rounded-2xl border border-[var(--border)] bg-[var(--card-bg)] p-5 shadow-[var(--shadow-sm)]",children:[(0,r.jsxs)("div",{className:"mb-4",children:[(0,r.jsxs)("h2",{className:"flex items-center gap-2 text-sm font-semibold text-[var(--foreground)]",children:[(0,r.jsx)(o.FileText,{size:16,className:"text-[var(--primary)]"}),"Project References"]}),(0,r.jsx)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:"File-backed project knowledge for project-specific instructions."})]}),Q.length>0&&(0,r.jsx)("div",{className:"mb-4 grid grid-cols-1 gap-2 md:grid-cols-2",children:Q.map(e=>(0,r.jsxs)("div",{className:"group flex items-start gap-3 rounded-xl border border-[var(--border)] bg-[var(--secondary)] p-3",children:[(0,r.jsx)("div",{className:"flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg bg-[var(--primary-muted)]",children:(0,r.jsx)(o.FileText,{size:14,className:"text-[var(--primary)]"})}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"truncate break-all font-mono text-xs text-[var(--secondary-foreground)]",children:e.file}),e.condition&&(0,r.jsx)("div",{className:"mt-0.5 text-[11px] text-[var(--muted-foreground)]",children:e.condition})]}),(0,r.jsx)("button",{type:"button",onClick:()=>void w(e.id),className:"rounded-lg p-1.5 text-[var(--app-shell-soft-text)] opacity-0 transition-all group-hover:opacity-100 hover:bg-[var(--card-bg)] hover:text-red-500","aria-label":"Remove reference",children:(0,r.jsx)(c.Trash2,{className:"h-3.5 w-3.5"})})]},e.id))}),L?(0,r.jsxs)("div",{className:"space-y-2 rounded-xl border border-[var(--border)] bg-[var(--secondary)] p-3",children:[(0,r.jsx)("input",{type:"text",value:T,onChange:e=>z(e.target.value),placeholder:"path/to/project-knowledge.md",className:"w-full rounded-lg border border-[var(--border)] bg-[var(--card-bg)] px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-[var(--ring)] focus:border-[var(--primary)]",autoFocus:!0}),(0,r.jsx)("input",{type:"text",value:E,onChange:e=>A(e.target.value),placeholder:"Optional condition",className:"w-full rounded-lg border border-[var(--border)] bg-[var(--card-bg)] px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-[var(--ring)] focus:border-[var(--primary)]"}),(0,r.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,r.jsx)("button",{type:"button",onClick:()=>{M(!1),z(""),A("")},className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)]",children:"Cancel"}),(0,r.jsxs)("button",{type:"button",onClick:async()=>{let e=T.trim();e&&(await N(e,E.trim()||void 0),z(""),A(""),M(!1))},className:"inline-flex items-center gap-1.5 rounded-lg bg-[var(--primary)] px-3 py-1.5 text-xs font-medium text-[var(--primary-foreground)]",children:[(0,r.jsx)(n.Plus,{className:"h-3.5 w-3.5"}),"Add"]})]})]}):(0,r.jsxs)("button",{type:"button",onClick:()=>M(!0),className:"group flex w-full items-center justify-center gap-2 rounded-xl border-2 border-dashed border-[var(--border)] py-3 text-sm text-[var(--muted-foreground)] transition-all hover:bg-[var(--secondary)] hover:text-[var(--foreground)]",children:[(0,r.jsx)(n.Plus,{size:16,className:"transition-transform group-hover:scale-110"}),"Add Reference"]})]})]})]}):(0,r.jsx)("div",{className:"mt-2 space-y-4",children:0===ee.length?(0,r.jsxs)("div",{className:"rounded-2xl border border-dashed border-[var(--border)] px-6 py-12 text-center",children:[(0,r.jsx)(l.FolderGit2,{size:32,className:"mx-auto mb-3 text-[var(--app-shell-soft-text)]"}),(0,r.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:0===f.repos.length?"This project has no folders attached yet.":"No matching folders."})]}):(0,r.jsx)("div",{className:"grid grid-cols-1 gap-4 xl:grid-cols-2",children:ee.map(e=>(0,r.jsx)(h,{repo:e,systemNote:$[e.id]??null,systemNoteMatches:!S||($[e.id]?.content??"").toLowerCase().includes(S.toLowerCase()),onSystemNoteSaved:r=>I(t=>({...t,[e.id]:r}))},e.id))})})})]}):(0,r.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,r.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading..."})})}],109851)}]);
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,794731,e=>{"use strict";let t=(0,e.i(363732).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",0,t],794731)},580873,e=>{"use strict";let t=(0,e.i(363732).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);e.s(["Clock",0,t],580873)},203096,e=>{"use strict";let t=(0,e.i(363732).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",0,t],203096)},423709,e=>{"use strict";e.s(["stripMarkers",0,function(e){return e.replace(/\[reaction\s+[^\]]*\]/gi,"").replace(/\[agx:[^\]]*\]/g,"").replace(/\[checkpoint\]/g,"").replace(/\[criteria:\s*[^\]]*\]/g,"").replace(/\[done\]/g,"").replace(/\[blocked[^\]]*\]/g,"").replace(/^\[SKIP\]$/gm,"").trim()}])},990933,e=>{"use strict";function t(e){if("string"==typeof e)return e.trim()||void 0}e.s(["extractComposerRouting",0,function(e,r){let a=new Set,n=new Set;!function e(t,r){if(t)for(let a of t)r(a),e(a.content,r)}(e.content,e=>{if("participantMention"!==e.type)return;let t=e.attrs??{},r="string"==typeof t.id?t.id.trim():"",s="string"==typeof t.kind?t.kind:"agent";r&&"agent"===s&&(a.add(r),"parallel"===t.mode&&n.add(r))});let s=t(r);return{...s?{pinnedParticipantId:s}:{},mentionedParticipantIds:Array.from(a),parallelParticipantIds:Array.from(n)}},"orderParticipantIds",0,function(e,r){let a=function(e){if(!Array.isArray(e))return[];let t=new Set,r=[];for(let a of e){if("string"!=typeof a)continue;let e=a.trim();!e||t.has(e)||(t.add(e),r.push(e))}return r}(e),n=t(r);return n&&a.includes(n)?[n,...a.filter(e=>e!==n)]:a}])},66386,e=>{"use strict";var t=e.i(271645),r=e.i(618566);function a(e){return"string"!=typeof e?null:e.trim()||null}function n(e,t){return(e.get(t)?.trim()??"")||null}e.s(["useUrlSelection",0,function(){let e=(0,r.useRouter)(),s=(0,r.usePathname)(),l=(0,r.useSearchParams)(),i=(0,t.useCallback)(e=>n(l,e),[l]),o=(0,t.useCallback)((e,t)=>(function(e,t,r){let s=function(e,t){let r={...t},s=e=>Object.prototype.hasOwnProperty.call(t,e);if(s("issue")&&!s("run")){let s=n(e,"issue");a(t.issue)!==s&&(r.run=null)}if(s("job")&&!s("run")){let s=n(e,"job");a(t.job)!==s&&(r.run=null)}if(s("open")&&!s("message")){let s=n(e,"open");a(t.open)!==s&&(r.message=null)}return r}(t,r),l=new URLSearchParams(t.toString());for(let[e,t]of Object.entries(s)){let r=a(t);r?l.set(e,r):l.delete(e)}let i=l.toString();return i?`${e}?${i}`:e})(t??s,l,e),[s,l]),c=(0,t.useCallback)((t,r)=>{e.push(o(t,r))},[o,e]),u=(0,t.useCallback)((t,r)=>{e.replace(o(t,r))},[o,e]);return{pathname:s,searchParams:l,getSelection:i,buildHref:o,pushSelection:c,replaceSelection:u}}])},945028,490011,e=>{"use strict";var t=e.i(271645);function r(e){return`threadId=${encodeURIComponent(e)}`}function a(e){return`workspaceId=${encodeURIComponent(e)}`}e.s(["useGroupChat",0,function(e){let[n,s]=(0,t.useState)([]),[l,i]=(0,t.useState)([]),[o,c]=(0,t.useState)([]),u=(0,t.useRef)(e),d=(0,t.useRef)(e);u.current=e,d.current!==e&&(d.current=e,s([]),i([]),c([]));let f=(0,t.useCallback)(async e=>{let t=e?.trim()||u.current?.trim();if(!t){s([]),i([]);return}let n=r(t);try{let[e,r]=await Promise.all([fetch(`/api/history?${n}`),fetch(`/api/logs?${a(t)}`)]);if(u.current!==t)return;e.ok&&s(await e.json()),r.ok&&i(await r.json())}catch{}},[]),p=(0,t.useCallback)(async e=>{let t=e?.trim()||u.current?.trim();if(!t){s([]),i([]);return}let n=r(t);await Promise.all([fetch(`/api/history?${n}`,{method:"DELETE"}),fetch(`/api/logs?${a(t)}`,{method:"DELETE"})]),u.current===t&&(s([]),i([]))},[]),m=(0,t.useCallback)(async(e,t=10,r,a,n,l,i,o,d,f)=>{let p=r?.trim()||u.current?.trim();if(!p)return;let m=Date.now(),h=crypto.randomUUID(),y={id:h,role:"user",participantId:null,content:e,timestamp:m,rootMessageId:a||null,parentMessageId:a||null,depth:+!!a,...l&&l.length>0?{attachments:l}:{}};s(e=>[...e,y]);try{let r=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:p,prompt:e,promptPrefix:d||void 0,maxRounds:t,userMessageId:h,rootMessageId:a||void 0,attachmentIds:n?.length?n:void 0,activeParticipantIds:Array.isArray(i)?i:void 0,projectSlug:o?.trim()||void 0,routing:f})}),l=await r.json().catch(e=>(console.warn("[useGroupChat] failed to parse run response:",e),null));r.ok&&l?.chatRunId?c(e=>[{chatRunId:l.chatRunId,threadId:p,rootMessageId:a||h,status:"queued",optimistic:!0,enqueuedAt:Date.now()},...e.filter(e=>e.chatRunId!==l.chatRunId)]):r.ok||(console.error(`[useGroupChat] POST /api/chat failed (${r.status}):`,l?.error||r.statusText),s(e=>e.map(e=>e.id===h?{...e,sendFailed:!0}:e)))}catch(e){console.error("[useGroupChat] network error sending message:",e),s(e=>e.map(e=>e.id===h?{...e,sendFailed:!0}:e))}return h},[]),h=(0,t.useCallback)(async()=>{let e=u.current?.trim();if(e)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]),y=(0,t.useCallback)(async e=>{let t=u.current?.trim();if(t)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(t)}&threadId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]);return{messages:n,setMessages:s,logs:l,sendMessage:m,loadHistory:f,clearHistory:p,clearLogs:(0,t.useCallback)(async e=>{let t=e?.trim()||u.current?.trim();t?(await fetch(`/api/logs?${a(t)}`,{method:"DELETE"}).catch(e=>console.warn("[useGroupChat] delete logs failed:",e)),u.current===t&&i([])):i([])},[]),chatRuns:o,setChatRuns:c,stop:h,stopThread:y}}],945028);let n=new Set(["spawning","running"]);e.s(["useProcessPolling",0,function(e,r){let a=r?.intervalMs??1500,s=r?.idleIntervalMs??1e4,[l,i]=(0,t.useState)(new Set),[o,c]=(0,t.useState)([]),[u,d]=(0,t.useState)({}),[f,p]=(0,t.useState)([]),m=(0,t.useRef)(e);m.current=e;let h=(0,t.useRef)(r?.messages??[]);h.current=r?.messages??[];let y=(0,t.useRef)(r?.setMessages);y.current=r?.setMessages;let g=(0,t.useRef)(0);(0,t.useEffect)(()=>{let e=r?.messages??[];if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>g.current&&(g.current=t)}},[r?.messages]);let k=(0,t.useCallback)(async()=>{let e=m.current;if(!e){i(new Set),c([]),d({}),p([]);return}let t=null;if(e.threadId?t=`/api/processes?threadId=${encodeURIComponent(e.threadId)}`:e.workspaceId&&(t=`/api/processes?workspaceId=${encodeURIComponent(e.workspaceId)}`),!t){i(new Set),c([]),d({}),p([]);return}try{let a=e.workspaceId||e.threadId,s=a?`/api/history?threadId=${encodeURIComponent(a)}&since=${g.current}`:null,l=a?`/api/chat-runs?threadId=${encodeURIComponent(a)}&limit=20`:null,o=[fetch(t)];s&&o.push(fetch(s)),l&&o.push(fetch(l));let[u,f,k]=await Promise.all(o),b=m.current;if(b?.threadId!==e.threadId||b?.workspaceId!==e.workspaceId)return;if(u.ok){let e=await u.json();c(e);let t=new Set(e.filter(e=>n.has(e.state)).map(e=>e.agentId));i(t);let r={};for(let t of e){if(!n.has(t.state))continue;let e=h.current.find(e=>e.id===t.sinceMessageId),a=e?.rootMessageId??t.sinceMessageId;r[t.agentId]={content:"",rootMessageId:a}}d(r)}if(k?.ok){var r;let e=(r=await k.json(),Array.isArray(r)?r.map(e=>{if(!e||"object"!=typeof e)return null;let t="string"==typeof e.chatRunId?e.chatRunId:"string"==typeof e.id?e.id:null,r="string"==typeof e.threadId?e.threadId:null,a="string"==typeof e.status?e.status:null,n="string"==typeof e.rootMessageId?e.rootMessageId:(e.rootMessageId,null);return t&&r&&a&&("queued"===a||"running"===a||"awaiting_user"===a||"blocked"===a||"completed"===a||"failed"===a||"cancelled"===a)?{chatRunId:t,threadId:r,rootMessageId:n,status:a,optimistic:!1}:null}).filter(e=>!!e):[]);p(e)}if(f?.ok&&y.current){let e=await f.json();if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>g.current&&(g.current=t),y.current(t=>{let r=new Set(t.map(e=>e.id)),a=e.filter(e=>!r.has(e.id)),n=t.map(t=>e.find(e=>e.id===t.id)??t);return 0===a.length?n:[...n,...a].sort((e,t)=>e.timestamp-t.timestamp)})}}}catch{}},[]),b=e?.threadId||e?.workspaceId||null,w=f.some(e=>"queued"===e.status||"running"===e.status),x=o.some(e=>n.has(e.state)),v=w||x?a:s;return(0,t.useEffect)(()=>{if(!b){i(new Set),c([]),d({}),p([]);return}k();let e=setInterval(k,v);return()=>clearInterval(e)},[b,v,k]),{activeAgents:l,processes:o,streaming:u,chatRuns:f,poll:k}}],490011)},245900,e=>{"use strict";let t=(0,e.i(363732).default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);e.s(["Play",0,t],245900)},667585,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"BailoutToCSR",{enumerable:!0,get:function(){return n}});let a=e.r(132061);function n({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new a.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},309885,(e,t,r)=>{"use strict";function a(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"encodeURIPath",{enumerable:!0,get:function(){return a}})},652157,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"PreloadChunks",{enumerable:!0,get:function(){return o}});let a=e.r(843476),n=e.r(174080),s=e.r(563599),l=e.r(309885),i=e.r(543369);function o({moduleIds:e}){if("u">typeof window)return null;let t=s.workAsyncStorage.getStore();if(void 0===t)return null;let r=[];if(t.reactLoadableManifest&&e){let a=t.reactLoadableManifest;for(let t of e){if(!a[t])continue;let e=a[t].files;r.push(...e)}}if(0===r.length)return null;let c=(0,i.getAssetTokenQuery)();return(0,a.jsx)(a.Fragment,{children:r.map(e=>{let r=`${t.assetPrefix}/_next/${(0,l.encodeURIPath)(e)}${c}`;return e.endsWith(".css")?(0,a.jsx)("link",{precedence:"dynamic",href:r,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,n.preload)(r,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},869093,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return c}});let a=e.r(843476),n=e.r(271645),s=e.r(667585),l=e.r(652157);function i(e){return{default:e&&"default"in e?e.default:e}}let o={loader:()=>Promise.resolve(i(()=>null)),loading:null,ssr:!0},c=function(e){let t={...o,...e},r=(0,n.lazy)(()=>t.loader().then(i)),c=t.loading;function u(e){let i=c?(0,a.jsx)(c,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,u=o?n.Suspense:n.Fragment,d=t.ssr?(0,a.jsxs)(a.Fragment,{children:["u"<typeof window?(0,a.jsx)(l.PreloadChunks,{moduleIds:t.modules}):null,(0,a.jsx)(r,{...e})]}):(0,a.jsx)(s.BailoutToCSR,{reason:"next/dynamic",children:(0,a.jsx)(r,{...e})});return(0,a.jsx)(u,{...o?{fallback:i}:{},children:d})}return u.displayName="LoadableComponent",u}},770703,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return n}});let a=e.r(555682)._(e.r(869093));function n(e,t){let r={};"function"==typeof e&&(r.loader=e);let n={...r,...t};return(0,a.default)({...n,modules:n.loadableGenerated?.modules})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},352687,e=>{"use strict";var t=e.i(843476),r=e.i(271645);e.s(["default",0,function({isOpen:e,title:a,message:n,preview:s,confirmLabel:l="Confirm",cancelLabel:i="Cancel",variant:o="default",onConfirm:c,onCancel:u}){let d=(0,r.useRef)(null),f=(0,r.useRef)(null);(0,r.useEffect)(()=>{if(e){let e=setTimeout(()=>d.current?.focus(),50);return()=>clearTimeout(e)}},[e]);let p=(0,r.useCallback)(e=>{"Escape"===e.key&&u()},[u]);if(!e)return null;let m="danger"===o;return(0,t.jsxs)("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/50 backdrop-blur-md",style:{animation:"confirm-overlay-in 200ms ease-out"},onClick:e=>e.target===e.currentTarget&&u(),onKeyDown:p,children:[(0,t.jsxs)("div",{ref:f,className:"w-full max-w-md mx-4 bg-[var(--card-bg)] rounded-2xl border border-[var(--card-border)] shadow-2xl overflow-hidden",style:{animation:"confirm-dialog-in 250ms cubic-bezier(0.34, 1.56, 0.64, 1)"},children:[(0,t.jsx)("div",{className:"px-6 pt-6 pb-3",children:(0,t.jsxs)("div",{className:"flex items-start gap-4",children:[m&&(0,t.jsx)("div",{className:"flex-shrink-0 w-11 h-11 rounded-full bg-red-500/10 border border-red-500/20 flex items-center justify-center",children:(0,t.jsx)("svg",{className:"w-5 h-5 text-red-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0"})})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("h3",{className:"text-[15px] font-semibold text-[var(--foreground)]",children:a}),(0,t.jsx)("p",{className:"mt-1 text-[13px] text-[var(--muted-foreground)] leading-relaxed",children:n})]})]})}),s&&(0,t.jsx)("div",{className:"mx-6 mb-3 px-3 py-2.5 rounded-lg bg-[var(--muted)]/40 border border-[var(--card-border)]",children:(0,t.jsxs)("p",{className:"text-[12px] text-[var(--muted-foreground)] line-clamp-3 leading-relaxed italic",children:["“",s,"”"]})}),(0,t.jsx)("div",{className:"mx-6 border-t border-[var(--card-border)]"}),(0,t.jsxs)("div",{className:"px-6 py-4 flex items-center justify-end gap-2.5",children:[(0,t.jsx)("button",{onClick:u,className:"px-4 py-2 rounded-lg text-[13px] font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)]/60 transition-all duration-150",children:i}),(0,t.jsx)("button",{ref:d,onClick:c,className:`px-4 py-2 rounded-lg text-[13px] font-medium transition-all duration-150 ${m?"bg-red-500 text-white hover:bg-red-600 active:scale-[0.97]":"btn-primary active:scale-[0.97]"}`,children:l})]})]}),(0,t.jsx)("style",{children:`
|
|
2
|
-
@keyframes confirm-overlay-in {
|
|
3
|
-
from { opacity: 0; }
|
|
4
|
-
to { opacity: 1; }
|
|
5
|
-
}
|
|
6
|
-
@keyframes confirm-dialog-in {
|
|
7
|
-
from {
|
|
8
|
-
opacity: 0;
|
|
9
|
-
transform: scale(0.9) translateY(10px);
|
|
10
|
-
}
|
|
11
|
-
to {
|
|
12
|
-
opacity: 1;
|
|
13
|
-
transform: scale(1) translateY(0);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
`})]})}])},245110,e=>{"use strict";let t=(0,e.i(363732).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",0,t],245110)},33887,e=>{"use strict";var t=e.i(271645);e.s(["useLinearConnection",0,function(){let[e,r]=(0,t.useState)(!1),[a,n]=(0,t.useState)(!0),[s,l]=(0,t.useState)(null),[i,o]=(0,t.useState)({claude:!1,codex:!1,gemini:!1}),[c,u]=(0,t.useState)({}),d=(0,t.useRef)(null),f=(0,t.useCallback)(async()=>{try{let e=await fetch("/api/linear/mcp-setup"),t=await e.json();u(t.configured??{})}catch{}},[]),p=(0,t.useCallback)(async()=>{try{let[e,t]=await Promise.all([fetch("/api/linear/status"),fetch("/api/linear/mcp-setup")]),a=await e.json(),n=await t.json();return r(a.connected),l(a.user??null),o(a.clis??{claude:!1,codex:!1,gemini:!1}),u(n.configured??{}),a.connected}catch{return r(!1),!1}finally{n(!1)}},[]);(0,t.useEffect)(()=>(p(),()=>{d.current&&clearInterval(d.current)}),[p]);let m=(0,t.useCallback)(()=>{window.open("/api/linear/auth","_blank","noopener"),d.current&&clearInterval(d.current),d.current=setInterval(async()=>{await p()&&d.current&&(clearInterval(d.current),d.current=null)},2e3)},[p]),h=(0,t.useCallback)(async e=>{try{let t=await fetch("/api/linear/token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({accessToken:e})});if(!t.ok){let e=await t.json().catch(()=>({}));return{ok:!1,error:e.error||"Failed to save token"}}return await p(),{ok:!0}}catch{return{ok:!1,error:"Failed to connect"}}},[p]);return{connected:e,loading:a,user:s,clis:i,mcpConfigured:c,connect:m,connectWithKey:h,disconnect:(0,t.useCallback)(async()=>{await fetch("/api/linear/status",{method:"DELETE"}),r(!1),l(null)},[]),configureMcp:(0,t.useCallback)(async e=>{try{let t=await fetch("/api/linear/mcp-setup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cli:e})});if(!t.ok){let e=await t.json().catch(()=>({}));return{ok:!1,error:e.error||"Failed to configure MCP"}}return await f(),{ok:!0}}catch{return{ok:!1,error:"Failed to configure MCP"}}},[f]),refresh:p}}])},501223,e=>{e.v(t=>Promise.all(["static/chunks/027-6dwgpb0cy.js","static/chunks/0826uh6nmsi5l.js","static/chunks/02tungbq2jlgh.css"].map(t=>e.l(t))).then(()=>t(844118)))}]);
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,568656,e=>{"use strict";var t=e.i(843476),s=e.i(522016),r=e.i(618566),a=e.i(271645),i=e.i(958164),n=e.i(429056),o=e.i(417442),l=e.i(363732);let d=(0,l.default)("calendar-clock",[["path",{d:"M16 14v2.2l1.6 1",key:"fo4ql5"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5",key:"1osxxc"}],["path",{d:"M3 10h5",key:"r794hk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]]);var c=e.i(529471),u=e.i(580873),m=e.i(575479),x=e.i(640481),p=e.i(929870),h=e.i(794731),b=e.i(169610),f=e.i(572665),v=e.i(797167),g=e.i(524123),j=e.i(945028),y=e.i(490011),w=e.i(984242),N=e.i(208343),k=e.i(884564),z=e.i(40527),S=e.i(378764),C=e.i(667480),I=e.i(519132),$=e.i(715908),E=e.i(553069),O=e.i(827430);function T(e){let t=e.cadence||e.cronExpr;return t?(0,E.cronToHuman)(e.cronExpr||t)??t:"No frequency"}function A(e,t){if("paused"===t)return"Paused";if("stopped"===t)return"Stopped";if(null===e)return"Pending";let s=e-Date.now();return s<0?"Overdue":s<6e4?`in ${Math.round(s/1e3)}s`:s<36e5?`in ${Math.round(s/6e4)}m`:s<864e5?`in ${Math.round(s/36e5)}h`:`in ${Math.round(s/864e5)}d`}function M({job:e,onClose:s,onHide:r,hiding:a}){return(0,t.jsx)("div",{className:"fixed inset-0 z-40 flex items-center justify-center bg-black/50 px-4 py-6",children:(0,t.jsxs)("div",{className:"w-full max-w-2xl rounded-[28px] border border-[var(--border)] bg-[var(--card-bg)] shadow-2xl",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4 border-b border-[var(--border)] px-6 py-5",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2.5",children:[(0,t.jsx)("p",{className:"truncate text-lg font-semibold text-[var(--foreground)]",children:e.name}),(0,t.jsx)("span",{className:`rounded-full border px-2 py-0.5 text-[10px] font-semibold uppercase tracking-[0.16em] ${L(e.state)}`,children:P(e.state)}),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.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-3 text-xs text-[var(--muted-foreground)]",children:[(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,t.jsx)(u.Clock,{className:"h-3.5 w-3.5"}),T(e)]}),(0,t.jsxs)("span",{children:["Next run ",A(e.nextRunAt,e.state)]}),(0,t.jsxs)("span",{children:["Updated ",new Date(e.updatedAt).toLocaleString(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})]})]})]}),(0,t.jsx)("button",{type:"button",onClick:s,className:"rounded-lg border border-[var(--border)] p-2 text-[var(--muted-foreground)] transition-colors hover:border-[var(--card-hover-border)] hover:text-[var(--foreground)]","aria-label":"Close scheduled task details",children:(0,t.jsx)(v.X,{className:"h-4 w-4"})})]}),(0,t.jsxs)("div",{className:"space-y-5 px-6 py-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-2 text-xs font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Instructions"}),(0,t.jsx)("div",{className:"rounded-2xl border border-[var(--border)] bg-[rgba(15,23,42,0.28)] px-4 py-4 text-sm leading-6 text-[var(--foreground)] whitespace-pre-wrap",children:e.prompt||"No instructions yet"})]}),e.condition?(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-2 text-xs font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Condition"}),(0,t.jsx)("div",{className:"rounded-2xl border border-[var(--border)] bg-[rgba(15,23,42,0.28)] px-4 py-4 text-sm leading-6 text-[var(--foreground)]",children:e.condition})]}):null,(0,t.jsxs)("div",{className:"flex items-center justify-end gap-3 border-t border-[var(--border)] pt-5",children:[(0,t.jsx)("button",{type:"button",onClick:s,className:"rounded-xl border border-[var(--border)] px-4 py-2.5 text-sm text-[var(--foreground)] transition-colors hover:border-[var(--card-hover-border)]",children:"Close"}),(0,t.jsxs)("button",{type:"button",onClick:()=>void r(),disabled:a,className:"inline-flex items-center gap-2 rounded-xl border border-rose-500/20 px-4 py-2.5 text-sm text-rose-100 transition-colors hover:bg-rose-500/10 disabled:cursor-not-allowed disabled:opacity-50",children:[(0,t.jsx)(h.Trash2,{className:"h-4 w-4"}),a?"Hiding...":"Hide task"]})]})]})]})})}function P(e){return"active"===e?"Active":"paused"===e?"Paused":"Stopped"}function L(e){return"active"===e?"border-emerald-500/20 bg-emerald-500/10 text-emerald-300":"paused"===e?"border-amber-500/20 bg-amber-500/10 text-amber-300":"border-zinc-700 bg-zinc-800/80 text-zinc-300"}function R({projectId:e,objectiveId:s,objectiveKey:r,createDefaults:i,onCreateTask:n,onCreateObjectiveLinearWorker:o}){let{jobs:l,loading:d,refresh:c,deleteJob:m}=(0,$.usePromptJobs)(e,{requireProjectId:!0,includeObjectiveJobs:!0,objectiveId:s}),[x,b]=(0,a.useState)(!1),[f,v]=(0,a.useState)(!1),[g,j]=(0,a.useState)(null),[y,w]=(0,a.useState)(null),[N,k]=(0,a.useState)(null),z=(0,a.useMemo)(()=>l.filter(e=>e.objectiveId===s),[l,s]),S=(0,a.useMemo)(()=>z.find(e=>e.id===N)??null,[N,z]),C=async e=>{j(e.id),w(null);let t=await m(e.id);(j(null),t)?(N===e.id&&k(null),await c()):w(`Failed to hide "${e.name}".`)},E=async e=>{w(null);let t=await n(e);return t&&await c(),t},F=async()=>{v(!0),w(null);let e=await o();(v(!1),e)?await c():w("Failed to create the objective Linear worker.")};return(0,t.jsxs)(t.Fragment,{children:[x?(0,t.jsx)(O.CreateJobModal,{onClose:()=>b(!1),onSubmit:async e=>{await E(e)},createDefaults:i,contextLabel:r}):null,S?(0,t.jsx)(M,{job:S,onClose:()=>k(null),onHide:async()=>{await C(S)},hiding:g===S.id}):null,(0,t.jsxs)("div",{className:"px-1",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Scheduled Tasks"}),(0,t.jsxs)("p",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:["Shared scheduled-task list filtered to objective label"," ",(0,t.jsx)("span",{className:"font-mono text-[var(--foreground)]",children:r}),"."]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>void F(),disabled:f,className:"inline-flex items-center gap-2 rounded-xl border border-emerald-500/20 bg-emerald-500/10 px-3 py-2 text-sm text-emerald-100 transition-colors hover:bg-emerald-500/15 disabled:cursor-not-allowed disabled:opacity-50",children:[(0,t.jsx)(I.Sparkles,{className:"h-4 w-4"}),f?"Creating...":"Work Linear tickets"]}),(0,t.jsxs)("button",{type:"button",onClick:()=>b(!0),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--border)] px-3 py-2 text-sm text-[var(--foreground)] transition-colors hover:border-[var(--card-hover-border)]",children:[(0,t.jsx)(p.Plus,{className:"h-4 w-4"}),"New task"]})]})]}),y?(0,t.jsx)("p",{className:"mt-4 text-sm text-red-300",children:y}):null,(0,t.jsx)("div",{className:"mt-5 space-y-3",children:d&&0===z.length?(0,t.jsx)("div",{className:"rounded-2xl border border-dashed border-[var(--border)] px-4 py-8 text-sm text-[var(--muted-foreground)]",children:"Loading scheduled tasks..."}):0===z.length?(0,t.jsx)("div",{className:"rounded-2xl border border-dashed border-[var(--border)] px-4 py-8 text-sm text-[var(--muted-foreground)]",children:"No scheduled tasks for this objective yet."}):z.map(e=>(0,t.jsx)("div",{onClick:()=>k(e.id),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),k(e.id))},role:"button",tabIndex:0,className:"block w-full rounded-2xl border border-[var(--border)] bg-[rgba(15,23,42,0.28)] px-4 py-4 text-left transition-colors hover:border-[var(--card-hover-border)] focus:outline-none focus:ring-2 focus:ring-[var(--card-hover-border)]",children:(0,t.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2.5",children:[(0,t.jsx)("span",{className:`inline-block size-2 shrink-0 rounded-full ${"active"===e.state?"bg-emerald-400":"paused"===e.state?"bg-amber-400":"bg-zinc-500"}`}),(0,t.jsx)("p",{className:"truncate text-sm font-semibold text-[var(--foreground)]",children:e.name}),(0,t.jsx)("span",{className:`rounded-full border px-2 py-0.5 text-[10px] font-semibold uppercase tracking-[0.16em] ${L(e.state)}`,children:P(e.state)})]}),(0,t.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-3 text-xs text-[var(--muted-foreground)]",children:[(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,t.jsx)(u.Clock,{className:"h-3.5 w-3.5"}),"Next run ",A(e.nextRunAt,e.state)]}),(0,t.jsx)("span",{className:"inline-flex items-center gap-1.5",children:T(e)}),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)("p",{className:"mt-3 line-clamp-2 text-sm leading-6 text-[var(--muted-foreground)]",children:e.prompt.split("\n").map(e=>e.trim()).find(Boolean)||"No instructions yet"}),e.condition?(0,t.jsxs)("p",{className:"mt-2 text-xs text-[var(--muted-foreground)]",children:["Condition: ",e.condition]}):null]}),(0,t.jsxs)("button",{type:"button",onClick:t=>{t.stopPropagation(),C(e)},disabled:g===e.id,className:"inline-flex items-center gap-1.5 rounded-lg border border-[var(--border)] px-3 py-2 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:border-red-400/40 hover:text-red-300 disabled:cursor-not-allowed disabled:opacity-50",children:[(0,t.jsx)(h.Trash2,{className:"h-3.5 w-3.5"}),g===e.id?"Hiding...":"Hide"]})]})},e.id))})]})]})}var F=e.i(498027),D=e.i(367859);let _=(0,l.default)("funnel",[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]]),U={"metric-check":{label:"Metric",className:"bg-blue-500/15 text-blue-400 border-blue-500/30"},"status-update":{label:"Status",className:"bg-emerald-500/15 text-emerald-400 border-emerald-500/30"},milestone:{label:"Milestone",className:"bg-amber-500/15 text-amber-400 border-amber-500/30"},note:{label:"Note",className:"bg-zinc-500/15 text-zinc-400 border-zinc-500/30"}},q=["metric-check","status-update","milestone","note"];function J({activity:e}){let[s,r]=(0,a.useState)(!1),i=U[e.type]??U.note,n=e.body.length>200?`${e.body.slice(0,200).trim()}…`:e.body,o=e.body.length>200;return(0,t.jsxs)("div",{className:"relative pl-6 pb-6 last:pb-0",children:[(0,t.jsx)("div",{className:"absolute left-0 top-1.5 w-3 h-3 rounded-full border-2 border-zinc-600 bg-[#131315]"}),(0,t.jsx)("div",{className:"absolute left-[5px] top-4 bottom-0 w-px bg-zinc-800 last:hidden"}),(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-1.5",children:[(0,t.jsx)("span",{className:`rounded-full border px-2 py-0.5 text-[10px] font-semibold uppercase tracking-[0.14em] ${i.className}`,children:i.label}),(0,t.jsx)("span",{className:"text-[11px] text-zinc-500",children:function(e){let t=Date.now(),s=Date.parse(e);if(Number.isNaN(s))return e;let r=Math.floor((t-s)/6e4);if(r<1)return"just now";if(r<60)return`${r}m ago`;let a=Math.floor(r/60);if(a<24)return`${a}h ago`;let i=Math.floor(a/24);return i<30?`${i}d ago`:new Date(s).toLocaleDateString("en-US",{month:"short",day:"numeric",year:i>365?"numeric":void 0})}(e.createdAt)}),"manual"!==e.source&&(0,t.jsx)("span",{className:"text-[11px] text-zinc-600 font-mono truncate max-w-[180px]",children:e.source})]}),s?(0,t.jsx)("div",{className:"text-sm text-zinc-300 prose prose-invert prose-sm max-w-none",children:(0,t.jsx)(N.Markdown,{content:e.body})}):(0,t.jsx)("p",{className:"text-sm text-zinc-400 leading-relaxed",children:n}),o&&(0,t.jsxs)("button",{type:"button",onClick:()=>r(!s),className:"mt-1.5 flex items-center gap-1 text-xs text-zinc-500 hover:text-zinc-300 transition-colors",children:[s?(0,t.jsx)(F.ChevronDown,{size:12}):(0,t.jsx)(D.ChevronRight,{size:12}),s?"Show less":"Show more"]})]})}function H({projectId:e,objectiveId:s,onCreated:r,onCancel:i}){let[n,o]=(0,a.useState)("note"),[l,d]=(0,a.useState)(""),[c,u]=(0,a.useState)(!1),m=(0,a.useRef)(null);(0,a.useEffect)(()=>{m.current?.focus()},[]);let x=async()=>{let t=l.trim();if(t&&!c){u(!0);try{let a=await fetch(`/api/projects/${e}/objectives/${s}/activities`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:n,body:t})});if(!a.ok)throw Error("Failed to create activity");let i=await a.json();r(i)}catch(e){console.error("Failed to create activity:",e)}finally{u(!1)}}};return(0,t.jsxs)("div",{className:"rounded-lg border border-zinc-700/60 bg-zinc-900/50 p-3 mb-4",children:[(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5 mb-3",children:q.map(e=>{let s=U[e],r=n===e;return(0,t.jsx)("button",{type:"button",onClick:()=>o(e),className:`rounded-full border px-2.5 py-0.5 text-[10px] font-semibold uppercase tracking-[0.14em] transition-colors ${r?"bg-zinc-200 text-zinc-900 border-zinc-200":`${s.className} hover:opacity-80`}`,children:s.label},e)})}),(0,t.jsx)("textarea",{ref:m,value:l,onChange:e=>d(e.target.value),placeholder:"What did you do?",rows:3,className:"w-full rounded-md border border-zinc-700/60 bg-zinc-800/50 px-3 py-2 text-sm text-zinc-200 placeholder:text-zinc-600 focus:outline-none focus:border-zinc-500 resize-none"}),(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2 mt-2",children:[(0,t.jsx)("button",{type:"button",onClick:i,className:"px-3 py-1.5 text-xs text-zinc-400 hover:text-zinc-200 transition-colors",children:"Cancel"}),(0,t.jsx)("button",{type:"button",onClick:x,disabled:!l.trim()||c,className:"px-3 py-1.5 text-xs font-medium rounded-md bg-sky-600 text-white hover:bg-sky-500 transition-colors disabled:opacity-40 disabled:cursor-not-allowed",children:c?"Saving...":"Log activity"})]})]})}function W({projectId:e,objectiveId:s,onTotalChange:r}){let[i,n]=(0,a.useState)([]),[o,l]=(0,a.useState)(0),[d,c]=(0,a.useState)(!1),[u,m]=(0,a.useState)(1),[x,h]=(0,a.useState)(!0),[b,f]=(0,a.useState)("all"),[g,j]=(0,a.useState)(!1),[y,w]=(0,a.useState)(!1),N=(0,a.useCallback)(async(t,a,i)=>{h(!0);try{let o=new URLSearchParams({page:String(t),limit:"25"});"all"!==a&&o.set("type",a);let d=await fetch(`/api/projects/${e}/objectives/${s}/activities?${o}`);if(!d.ok)throw Error("Failed to load activities");let u=await d.json();n(e=>i?[...e,...u.activities]:u.activities),l(u.total),r?.(u.total),c(u.hasMore)}catch(e){console.error("Failed to fetch activities:",e)}finally{h(!1)}},[e,s]);return(0,a.useEffect)(()=>{m(1),N(1,b,!1)},[N,b]),(0,t.jsxs)("section",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsx)("p",{className:"text-sm text-zinc-500",children:"Time-ordered log of outputs from scheduled tasks and manual entries."}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>w(!y),className:`flex items-center gap-1 px-2.5 py-1 rounded-md text-xs font-medium transition-colors ${y?"text-sky-400 bg-sky-500/10":"text-zinc-400 hover:text-zinc-200 hover:bg-zinc-800/50"}`,children:[y?(0,t.jsx)(v.X,{size:12}):(0,t.jsx)(p.Plus,{size:12}),"Log activity"]}),(0,t.jsx)("button",{type:"button",onClick:()=>j(!g),className:`p-1.5 rounded-md transition-colors ${g||"all"!==b?"text-sky-400 bg-sky-500/10":"text-zinc-500 hover:text-zinc-300 hover:bg-zinc-800/50"}`,"aria-label":"Filter activities",children:(0,t.jsx)(_,{size:14})})]})]}),g&&(0,t.jsxs)("div",{className:"flex flex-wrap gap-1.5 mb-4",children:[(0,t.jsx)("button",{type:"button",onClick:()=>f("all"),className:`rounded-full border px-2.5 py-0.5 text-[10px] font-semibold uppercase tracking-[0.14em] transition-colors ${"all"===b?"bg-zinc-200 text-zinc-900 border-zinc-200":"bg-zinc-800/50 text-zinc-400 border-zinc-700 hover:border-zinc-500"}`,children:"All"}),q.map(e=>{let s=U[e],r=b===e;return(0,t.jsx)("button",{type:"button",onClick:()=>f(e),className:`rounded-full border px-2.5 py-0.5 text-[10px] font-semibold uppercase tracking-[0.14em] transition-colors ${r?"bg-zinc-200 text-zinc-900 border-zinc-200":`${s.className} hover:opacity-80`}`,children:s.label},e)})]}),y&&(0,t.jsx)(H,{projectId:e,objectiveId:s,onCreated:e=>{n(t=>[e,...t]),l(e=>{let t=e+1;return r?.(t),t}),w(!1)},onCancel:()=>w(!1)}),x&&0===i.length?(0,t.jsx)("div",{className:"text-sm text-zinc-500 py-6 text-center",children:"Loading activities..."}):0===i.length?(0,t.jsxs)("div",{className:"rounded-xl border border-dashed border-zinc-700/60 bg-zinc-900/30 p-6 text-center",children:[(0,t.jsx)("p",{className:"text-sm text-zinc-500",children:"No activities yet."}),(0,t.jsx)("p",{className:"text-xs text-zinc-600 mt-1",children:"Activities are created by scheduled tasks and agent actions."})]}):(0,t.jsxs)("div",{children:[i.map(e=>(0,t.jsx)(J,{activity:e},e.id)),d&&(0,t.jsx)("div",{className:"pt-2 pl-6",children:(0,t.jsx)("button",{type:"button",onClick:()=>{let e=u+1;m(e),N(e,b,!0)},disabled:x,className:"text-xs text-sky-400 hover:text-sky-300 transition-colors disabled:opacity-50",children:x?"Loading...":"Load more"})})]})]})}var V=e.i(644660),B=e.i(434405),K=e.i(169433),G=e.i(902572);let X={on_track:{label:"On track",chipClass:"border-emerald-500/20 bg-emerald-500/10 text-emerald-200",toneClass:"text-emerald-300"},at_risk:{label:"At risk",chipClass:"border-amber-500/20 bg-amber-500/10 text-amber-100",toneClass:"text-amber-300"},off_track:{label:"Off track",chipClass:"border-rose-500/20 bg-rose-500/10 text-rose-100",toneClass:"text-rose-300"},done:{label:"Done",chipClass:"border-sky-500/20 bg-sky-500/10 text-sky-100",toneClass:"text-sky-300"}};function Y({onResize:e}){let s=(0,a.useRef)(!1),r=(0,a.useRef)(0);return(0,a.useEffect)(()=>{if(!s.current)return;let t=t=>{let s=r.current-t.clientX;r.current=t.clientX,e(s)},a=()=>{s.current=!1,document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("mousemove",t),window.removeEventListener("mouseup",a)};return window.addEventListener("mousemove",t),window.addEventListener("mouseup",a),()=>{window.removeEventListener("mousemove",t),window.removeEventListener("mouseup",a)}}),(0,t.jsx)("div",{role:"separator","aria-orientation":"vertical","aria-label":"Resize objective chat panel",className:"group relative z-10 hidden w-0 shrink-0 cursor-col-resize xl:block",onMouseDown:e=>{e.preventDefault(),s.current=!0,r.current=e.clientX,document.body.style.cursor="col-resize",document.body.style.userSelect="none"},children:(0,t.jsx)("div",{className:"absolute inset-y-0 -left-0.5 w-1 transition-colors group-hover:bg-[var(--primary)]/40"})})}function Q(e){return new Date(e).toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}function Z(e){return{id:e.id,title:e.title,teamId:e.teamId,summary:e.summary,cadence:e.cadence,condition:e.condition}}function ee(e,t){return`/projects/${e}/objectives/${encodeURIComponent(t)}`}function et(e,t,s){return t?e.objectives.find(e=>e.teamId===t&&e.id!==s)??null:null}function es(e,t,s){return e.filter(e=>!et(t,e.id,s))}function er(e){let t=e.trim();return t?(0,E.cronToHuman)(t)??t:"Not set yet"}function ea(e){let{projects:t,isLoading:s,refetch:r,updateProject:i}=(0,g.useProjects)(),[n,o]=(0,a.useState)([]),l=(0,a.useMemo)(()=>t.find(t=>t.slug===e)??null,[e,t]),d=(0,a.useMemo)(()=>(0,G.readProjectObjectivesWorkspace)(l?.metadata),[l?.metadata]),c=(0,a.useCallback)(async e=>{if(!l)throw Error("Project not found.");await i(l.id,{metadata:(0,G.writeProjectObjectivesWorkspace)(l.metadata??{},e)})},[l,i]);return(0,a.useEffect)(()=>{let e=!0;return async function(){if(!l?.id)return o([]);try{let t=await fetch(`/api/projects/${l.id}/teams`);if(!t.ok)throw Error("Failed to fetch teams");let s=await t.json();if(!e)return;o((s.teams??[]).map(e=>({id:"string"==typeof e.id?e.id:"",name:"string"==typeof e.name?e.name:"Untitled team"})).filter(e=>e.id))}catch{if(!e)return;o([])}}(),()=>{e=!1}},[l?.id]),{isLoading:s,project:l,workspace:d,teams:n,persistWorkspace:c,refetchProject:r}}function ei(e){return"user"===e.role&&!e.rootMessageId}function en({projectId:e,projectSlug:s,objective:r,teamName:i,onThreadLinked:l,onObjectiveUpdated:d}){let[c,u]=(0,a.useState)(()=>(0,K.loadObjectiveChatPanelWidth)()||800),[m,x]=(0,a.useState)(r.threadId??(r.id?`objective-chat:${r.id}`:null)),[p,h]=(0,a.useState)("list"),[f,v]=(0,a.useState)(null),[g,z]=(0,a.useState)(!1),[S,C]=(0,a.useState)(r.chatSessionVersion),[I,$]=(0,a.useState)([]),[E,O]=(0,a.useState)(null),T=(0,a.useRef)(!1),A=(0,a.useRef)(!1),M=window.location?.origin?window.location.origin:null,{messages:P,setMessages:L,sendMessage:R,loadHistory:F,setChatRuns:D,stop:_,chatRuns:U}=(0,j.useGroupChat)(m),{processes:q,streaming:J,chatRuns:H,poll:W}=(0,y.useProcessPolling)(m?{workspaceId:m}:null,{messages:P,setMessages:L});(0,a.useEffect)(()=>{r.threadId&&r.threadId!==m&&x(r.threadId)},[r.threadId,m]),(0,a.useEffect)(()=>{h("list"),v(null),z(!1),A.current=!1},[r.id]),(0,a.useEffect)(()=>{C(r.chatSessionVersion),r.chatSessionVersion>=G.CURRENT_OBJECTIVE_CHAT_SESSION_VERSION&&(A.current=!0)},[r.chatSessionVersion]);let V=(0,a.useCallback)(async t=>{let s=t.trim();if(s&&!(await fetch(`/api/projects/${e}/threads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:s})})).ok)throw Error("Failed to link objective chat to the project.")},[e]);(0,a.useEffect)(()=>{let e=!1;return m?(z(!1),(async()=>{await F(m),e||z(!0)})(),()=>{e=!0}):void z(!0)},[F,m]),(0,a.useEffect)(()=>{let t=!1;return async function(){try{let[s,r]=await Promise.all([fetch("/api/participants"),fetch(`/api/projects/${e}/agents`)]),a=s.ok?await s.json():[],i=Array.isArray(a)?a:[],n=r.ok?await r.json():{agents:[]};if(t)return;let o=((n&&"object"==typeof n?n:{agents:[]}).agents??[]).slice().sort((e,t)=>e.routing_order-t.routing_order).map(e=>e.agent_id);if(0===o.length)return void $(i);let l=new Map(i.map(e=>[e.id,e]));$(o.map(e=>l.get(e)).filter(e=>!!e))}catch(e){if(t)return;console.error("Failed to load objective chat participants",e),$([])}}(),()=>{t=!0}},[e]),(0,a.useEffect)(()=>{r.threadId&&V(r.threadId).catch(e=>{console.warn("Failed to re-link objective chat thread to project",e)})},[V,r.threadId]),(0,a.useEffect)(()=>{if(!r.threadId||!m||!g||S>=G.CURRENT_OBJECTIVE_CHAT_SESSION_VERSION||A.current)return;A.current=!0;let t=function(e){let t=e.filter(ei).sort((e,t)=>e.timestamp-t.timestamp);if(t.length<=1)return null;let s=t[0]?.id;if(!s)return null;let r=t.slice(1).map(e=>e.id),a=new Set(r);return{messages:[...e].map(e=>{let t=a.has(e.id)&&ei(e),r="string"==typeof e.rootMessageId&&a.has(e.rootMessageId);return t||r?{...e,rootMessageId:s,parentMessageId:s,depth:1}:e}).sort((e,t)=>e.timestamp-t.timestamp),primaryRootMessageId:s,mergedRootMessageIds:r}}(P),s=!1;return(async()=>{O(null);try{if(t){if(!(await fetch("/api/history",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:m,messages:t.messages})})).ok)throw Error("Failed to migrate the objective chat history.");if(s)return;L(t.messages),v(e=>e&&t.mergedRootMessageIds.includes(e)?t.primaryRootMessageId:e)}if(!(await fetch(`/api/projects/${e}/objectives/${r.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({chatSessionVersion:G.CURRENT_OBJECTIVE_CHAT_SESSION_VERSION})})).ok)throw Error("Failed to update the objective chat session version.");if(s)return;C(G.CURRENT_OBJECTIVE_CHAT_SESSION_VERSION),d().catch(e=>{console.warn("Failed to refresh objective after objective chat migration",e)})}catch(e){if(s)return;console.warn("Failed to migrate legacy objective chat sessions",e),O(e instanceof Error?e.message:"Failed to migrate the objective chat history.")}})(),()=>{s=!0}},[S,g,P,r.id,r.threadId,d,e,L,m]);let X=(0,a.useCallback)(async()=>{if(r.threadId)return r.threadId;let t=m??(r.id?`objective-chat:${r.id}`:null);if(!t)return null;O(null);try{let a=await B.threadService.createThread({id:t,title:r.title,metadata:{scope:"objective",objectiveId:r.id,projectId:e,projectSlug:s}});return x(a.id),await V(a.id),await l(a.id),a.id}catch(e){return O(e instanceof Error?e.message:"Failed to create the objective chat."),null}},[V,r.id,r.threadId,r.title,l,e,s,m]),Z=(0,a.useMemo)(()=>new Map(I.map(e=>[e.id,e])),[I]);(0,a.useEffect)(()=>{D(e=>{let t=Date.now(),s=new Map(e.filter(e=>"string"==typeof e.chatRunId&&e.chatRunId.length>0).map(e=>[e.chatRunId,e]));for(let e of H)e?.chatRunId&&s.set(e.chatRunId,e);return Array.from(s.values()).filter(e=>!!(!e.optimistic||H.some(t=>t.chatRunId===e.chatRunId))||t-(e.enqueuedAt??0)<=5e3).sort((e,t)=>String(e.chatRunId||"").localeCompare(String(t.chatRunId||"")))})},[H,D]);let ee=(0,a.useMemo)(()=>{let e=Date.now(),t=new Map(H.map(e=>[e.chatRunId,e]));for(let s of U)!(!s.optimistic||t.has(s.chatRunId))&&(e-(s.enqueuedAt??0)>5e3||t.set(s.chatRunId,s));return Array.from(t.values()).filter(e=>"queued"===e.status||"running"===e.status||"awaiting_user"===e.status||"blocked"===e.status)},[U,H]),et=(0,a.useMemo)(()=>P.filter(ei).sort((e,t)=>t.timestamp-e.timestamp).map(e=>{let t,s=P.filter(t=>t.rootMessageId===e.id).sort((e,t)=>e.timestamp-t.timestamp),r=[e,...s],a=r[r.length-1]??e;return{rootMessageId:e.id,title:(t=e.content.replace(/\s+/g," ").trim())?t.length>56?`${t.slice(0,56).trim()}...`:t:"Untitled session",updatedAt:a.timestamp,messageCount:r.length,messages:r}}),[P]),es=(0,a.useMemo)(()=>f?et.find(e=>e.rootMessageId===f)??null:null,[f,et]),ea="detail"===p&&!!f,eo=new Set(["queued","running","awaiting_user","blocked"]),ed=ee.length>0||q.some(e=>"spawning"===e.state||"running"===e.state),ec=(0,a.useMemo)(()=>{let e=new Map;for(let t of ee){if(!t.rootMessageId||!eo.has(t.status))continue;let s="queued"===t.status?"queued":"working";"working"!==e.get(t.rootMessageId)&&e.set(t.rootMessageId,s)}for(let t of q)t.threadId&&("spawning"===t.state||"running"===t.state)&&e.set(t.threadId,"working");return e},[ee,q]),eu=(0,a.useMemo)(()=>q.some(e=>"spawning"===e.state||"running"===e.state)||ee.some(e=>eo.has(e.status)&&"queued"!==e.status)?"working":ee.some(e=>"queued"===e.status)?"queued":"ready",[ee,eo,q]);(0,a.useEffect)(()=>{T.current&&!ed&&d().catch(e=>{console.warn("Failed to refresh objective after objective chat activity",e)}),T.current=ed},[ed,d]);let em=(0,a.useCallback)(async e=>{await fetch(`/api/chat-runs/${encodeURIComponent(e)}/signal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({signal:"cancel",reason:"Interrupted by a new objective chat message"})}).catch(e=>{console.warn("Failed to cancel objective chat run",e)})},[]),ex=(0,a.useCallback)(async()=>{let e=Array.from(new Set(ee.map(e=>e.chatRunId).filter(e=>!!e)));await Promise.all(e.map(e=>em(e))),await _(),await W()},[ee,em,W,_]),ep=(0,a.useCallback)(async(t,a,n,o,l,d,c)=>{let u,m,x,p,b,g,j,y,w;ed&&await ex(),O(null);let N=await X();if(!N)return;let k=I.map(e=>e.id),z=ea?f:null,S=[(u=`/api/projects/${e}/objectives/${r.id}`,m=M?`${M}${u}`:u,x=`${m}/scheduled-tasks`,p=`${m}/linear-issues`,b=`${m}/notes`,g=`~/.agx/projects/${s}/objectives/${r.key}.md`,j=`~/.agx/projects/${s}/objectives/${r.key}/notes/`,y=`${m}/validate`,w=r.notes?.length?r.notes.map(e=>`- **${e.title}**: ${e.body.slice(0,120)}${e.body.length>120?"...":""}`).join("\n"):null,["You are working inside a strategy session for this project objective.",`Project slug: ${s}`,`Objective: ${r.title}`,`Objective label: ${r.key}`,i?`Owning team: ${i}`:"",w?`Current notes:
|
|
2
|
-
${w}`:"Current notes: none yet.",r.cadence?`Wake schedule: ${er(r.cadence)}`:"Wake schedule: not set yet.",r.condition?`Wake condition: ${r.condition}`:"",`## Objective file (source of truth)
|
|
3
|
-
|
|
4
|
-
This objective is stored as a frontmatter markdown file at:
|
|
5
|
-
\`${g}\`
|
|
6
|
-
|
|
7
|
-
File format:
|
|
8
|
-
- YAML frontmatter between \`---\` delimiters contains all metadata (title, teamId, key, status, progress, cadence, condition, scheduledTaskIds, threadId, chatSessionVersion, createdAt, updatedAt).
|
|
9
|
-
- \`## Activities\` section contains the activity timeline; each activity is a \`### Title\` block with metadata lines (\`- **id:**\`, \`- **source:**\`, \`- **created:**\`, \`- **body:**\`) and optional \`#### Replies\` sub-section.
|
|
10
|
-
|
|
11
|
-
Notes are stored as separate files in \`${j}\`. Each note is a markdown file with YAML frontmatter (id, title, objectiveId, createdAt, updatedAt) and a markdown body.
|
|
12
|
-
|
|
13
|
-
When updating the objective, you can edit this file directly. Rules:
|
|
14
|
-
- NEVER remove or break the \`---\` frontmatter delimiters.
|
|
15
|
-
- NEVER change the \`id\` or \`createdAt\` fields.
|
|
16
|
-
- Always update \`updatedAt\` to the current ISO timestamp when making changes.
|
|
17
|
-
- After any edit, call \`GET ${y}\` to verify the file is still valid.
|
|
18
|
-
- If validation fails, fix the errors immediately before doing anything else.`,"Scheduled tasks live in the shared scheduled-task list and are filtered by this objective label.","Your job is to help the team develop the strategy needed to reach the goal, including the right combination of objective notes, wake cadence/condition, scheduled tasks, and Linear tickets.","Use the current session history to build on prior reasoning. Only reset and start from scratch when the user explicitly starts a new session.","Use this thread to pressure-test strategy, suggest better tactics, rewrite the objective when asked, propose the right operational cadence, and take concrete follow-up actions when the user wants them applied.","When suggesting edits, prefer editing the frontmatter file directly or using the notes API. When the user asks you to make a change, edit the file, validate, then confirm.","Local objective APIs:",`- PATCH ${m} with JSON fields such as {"title","cadence","condition","teamId","key"} to update the objective itself.`,`- GET ${b} to list all notes for this objective. Returns {"notes":[...],"total","page","limit","hasMore"}.`,`- POST ${b} with {"title","body"} to create a new note.`,`- GET ${b}/{noteId} to read a single note.`,`- PATCH ${b}/{noteId} with {"title","body"} to update a note.`,`- DELETE ${b}/{noteId} to delete a note.`,`- GET ${x} to inspect the scheduled tasks already tracked for this objective.`,`- POST ${x} with {"name","prompt","cadence","condition","agentId","syncObjectiveSchedule":true} to create a scheduled task for this objective.`,`- GET ${p} to inspect Linear tickets carrying the objective label "${r.key}".`,`- POST ${p} with {"title","description","teamId","assigneeId","cycleId","stateId","priority"} to create a Linear ticket labeled "${r.key}".`,`- GET ${y} to validate the objective file on disk. Returns {"valid":true} or {"valid":false,"errors":[...]}.`].filter(Boolean).join("\n\n")),d].filter(Boolean).join("\n\n"),C=await R(t,a,N,z,n,o,l?[l]:k,s,S,c);!z&&C&&(v(C),h("detail"))},[M,X,ed,ex,ea,r,I,e,s,f,R,i]),eh=(0,a.useMemo)(()=>ea?es?.messages??[]:[],[ea,es]),eb=(0,a.useMemo)(()=>ea&&f?Object.entries(J).filter(([,e])=>e.rootMessageId===f):[],[ea,f,J]),ef=(0,a.useCallback)(e=>{u(t=>{let s=Math.max(320,Math.min(1200,t+e));return(0,K.persistObjectiveChatPanelWidth)(s),s})},[]);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(Y,{onResize:ef}),(0,t.jsxs)("aside",{className:"relative flex h-full min-h-[420px] w-full flex-col overflow-hidden border-t border-[var(--border)] bg-[rgba(8,12,18,0.72)] xl:min-h-0 xl:w-[var(--objective-chat-panel-width)] xl:shrink-0 xl:self-stretch xl:border-l xl:border-t-0",style:{"--objective-chat-panel-width":`${c}px`},children:[(0,t.jsx)(el,{message:E}),ea?(0,t.jsx)("div",{className:"border-b border-[var(--border)] px-4 py-4",children:(0,t.jsxs)("button",{type:"button",onClick:()=>h("list"),"aria-label":"Back to sessions",className:"inline-flex min-w-0 items-center gap-2 text-left text-sm font-medium text-[var(--foreground)] transition-colors hover:text-sky-100",children:[(0,t.jsx)(n.ArrowLeft,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{className:"truncate",children:es?.title??"Loading session..."})]})}):(0,t.jsx)("div",{className:"border-b border-[var(--border)] px-4 py-4",children:(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("p",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Strategy Sessions"}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)]",children:"Start a new strategy conversation below, or open an earlier session to keep building on it."})]})}),(0,t.jsx)("div",{className:`min-h-0 flex-1 overflow-y-auto pb-[calc(15rem+env(safe-area-inset-bottom))] ${ea?"px-4 py-4":"px-0 py-0"}`,children:ea?0===eh.length?(0,t.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 px-4 text-center text-[var(--muted-foreground)]",children:[(0,t.jsx)("p",{className:"text-sm font-medium text-[var(--foreground)]",children:"Loading strategy session"}),(0,t.jsx)("p",{className:"max-w-sm text-xs",children:"The conversation will appear here once the session history is ready."})]}):(0,t.jsxs)("div",{className:"space-y-5",children:[eh.map(e=>{let s=e.participantId?Z.get(e.participantId):null;return(0,t.jsxs)("div",{className:"flex gap-3",children:["user"===e.role?(0,t.jsx)("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[rgba(15,23,42,0.55)] text-[var(--muted-foreground)]",children:(0,t.jsx)(b.User,{className:"h-4 w-4"})}):(0,t.jsx)("img",{src:(0,k.agentAvatarUrl)(e.participantId??"assistant",32,s?.color),alt:s?.name??"Agent",className:"h-8 w-8 shrink-0 rounded-full border border-[var(--border)] object-cover"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-[var(--foreground)]",children:"user"===e.role?"You":s?.name??"Agent"}),(0,t.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)]",children:new Date(e.timestamp).toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})})]}),(0,t.jsx)("div",{className:"mt-2 rounded-2xl border border-[var(--border)] bg-[rgba(15,23,42,0.32)] px-4 py-3 text-sm text-[var(--foreground)]",children:(0,t.jsx)(N.Markdown,{content:e.content,isUser:"user"===e.role})})]})]},e.id)}),eb.map(([e])=>{let s=Z.get(e);return(0,t.jsxs)("div",{className:"flex items-center gap-3 text-sm text-[var(--muted-foreground)]",children:[(0,t.jsx)("img",{src:(0,k.agentAvatarUrl)(e,32,s?.color),alt:s?.name??"Agent",className:"h-8 w-8 shrink-0 rounded-full border border-[var(--border)] object-cover"}),(0,t.jsxs)("span",{children:[s?.name??"Agent"," is thinking..."]})]},`stream-${e}`)})]}):0===et.length?(0,t.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 px-4 text-center text-[var(--muted-foreground)]",children:[(0,t.jsx)("p",{className:"text-sm font-medium text-[var(--foreground)]",children:"No strategy sessions yet"}),(0,t.jsx)("p",{className:"max-w-sm text-xs",children:"Use the composer below to start the first conversation about how this objective should be reached."})]}):(0,t.jsx)("div",{className:"divide-y divide-[var(--border)]",children:et.map(e=>{var s;let r=ec.get(e.rootMessageId)??null;return(0,t.jsxs)("button",{type:"button",onClick:()=>{v(e.rootMessageId),h("detail")},className:"flex w-full items-start justify-between gap-3 px-4 py-3 text-left transition-colors hover:bg-white/[0.02]",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("p",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:e.title}),(0,t.jsxs)("p",{className:"mt-1 text-[11px] text-[var(--muted-foreground)]",children:[1===(s=e.messageCount)?"1 message":`${s} messages`," · Last"," ",Q(e.updatedAt)]})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[r?(0,t.jsx)("span",{className:"rounded-full border border-sky-400/30 bg-sky-400/10 px-2 py-1 text-[10px] font-semibold uppercase tracking-[0.18em] text-sky-100",children:"queued"===r?"Queued":"Working"}):null,(0,t.jsx)(o.ArrowRight,{className:"mt-0.5 h-4 w-4 text-[var(--muted-foreground)]"})]})]},e.rootMessageId)})})}),(0,t.jsx)("div",{className:"absolute bottom-0 left-0 right-0 p-3 pb-[calc(0.75rem+env(safe-area-inset-bottom))] bg-[rgba(8,12,18,0.72)]",children:(0,t.jsx)(w.Composer,{onSend:ep,onStop:ex,participants:I,commands:[],projectSlug:s,loading:"ready"!==eu,activityStatus:eu,sendInterruptsBusy:!0,placeholder:ea?`Continue strategy for "${r.title}"...`:`Start a new strategy session for "${r.title}"...`,initialPinnedParticipantId:I[0]?.id})})]})]})}function eo({label:e}){return(0,t.jsx)("div",{className:"flex h-full items-center justify-center text-sm text-[var(--muted-foreground)]",children:e})}function el({message:e}){return e?(0,t.jsxs)("div",{className:"mt-3 flex items-center gap-2 rounded-2xl border border-rose-500/20 bg-rose-500/10 px-3 py-2 text-sm text-rose-100",children:[(0,t.jsx)(i.AlertTriangle,{className:"h-4 w-4"}),(0,t.jsx)("span",{children:e})]}):null}function ed({content:e,editable:s=!1,onChange:r,placeholder:a}){let i=e.trim().length>0;return s||i?(0,t.jsx)("div",{className:"overflow-hidden border-l-2 border-zinc-700/60 pl-4 transition-all focus-within:border-indigo-500/60",children:s||i?(0,t.jsx)(z.default,{content:e,editable:s,onChange:r,placeholder:a}):null}):null}function ec({projectSlug:e,objective:r,activityCount:a,lastActivityAt:i,activeAgentIds:n,participants:l}){let d,c=(d=1===a?"1 activity":`${a} activities`,i?`${d} \xb7 Last ${Q(i)}`:`${d} \xb7 No activity yet`);return(0,t.jsx)("article",{className:"px-2",children:(0,t.jsxs)(s.default,{href:ee(e,r.id),"aria-label":`Open details for ${r.title}`,className:"group flex items-center gap-3 rounded-2xl py-2 transition-colors hover:bg-white/[0.02] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-sky-400/40",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1 px-1 py-1.5",children:[(0,t.jsx)("div",{className:"flex min-w-0 items-center gap-3",children:(0,t.jsx)("span",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:r.title})}),(0,t.jsx)("div",{className:"mt-1 text-xs text-[var(--muted-foreground)] sm:hidden",children:c})]}),(0,t.jsx)("div",{className:"hidden shrink-0 text-right text-xs text-[var(--muted-foreground)] sm:block",children:(0,t.jsx)("div",{children:c})}),n&&n.length>0&&(0,t.jsx)("span",{className:"inline-flex items-center -space-x-1 shrink-0",children:n.slice(0,3).map(e=>{let s=l?.find(t=>t.id===e);return(0,t.jsxs)("span",{className:"relative inline-block",title:s?.name??e,children:[(0,t.jsx)("img",{src:(0,k.agentAvatarUrl)(e,16,s?.color??void 0),alt:s?.name??e,className:"h-3 w-3 rounded-full ring-[1.5px] ring-[var(--background)]"}),(0,t.jsx)("span",{className:"absolute -bottom-px -right-px h-1.5 w-1.5 rounded-full bg-green-500 ring-[1px] ring-[var(--background)]"})]},e)})}),(0,t.jsx)("span",{className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-[var(--muted-foreground)] transition-colors group-hover:bg-white/5 group-hover:text-[var(--foreground)] group-focus-visible:bg-white/5 group-focus-visible:text-[var(--foreground)]",children:(0,t.jsx)(o.ArrowRight,{className:"h-4 w-4"})})]})})}function eu({label:e}){return(0,t.jsx)("div",{className:"border border-dashed border-zinc-700/80 rounded-xl p-6 flex items-center bg-[#151517]",children:(0,t.jsx)("p",{className:"text-sm text-zinc-500",children:e})})}function em({mode:e,draft:s,teams:r=[],isSaving:a,onChange:i,onClose:n,onSave:o}){return(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/45 p-4",children:(0,t.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":"edit"===e?"Edit objective":"New objective",className:"w-full max-w-3xl overflow-hidden rounded-[32px] border border-[var(--border)] bg-[rgba(6,10,16,0.96)] shadow-2xl",children:[(0,t.jsxs)("div",{className:"border-b border-[var(--border)] px-5 py-4",children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--foreground)]",children:"edit"===e?"Edit objective":"New objective"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:"edit"===e?"Update the tracking details for this objective.":"Keep the statement measurable and use notes only for context that matters."})]}),(0,t.jsxs)("div",{className:"space-y-4 px-5 py-5",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(ep,{label:"Objective statement"}),(0,t.jsx)("input",{value:s.title,onChange:e=>i({...s,title:e.target.value}),className:"w-full rounded-2xl border border-[var(--border)] bg-[rgba(15,23,42,0.55)] px-4 py-3 text-sm text-[var(--foreground)] outline-none transition-colors focus:border-sky-500/50",placeholder:"Get 50 qualified visitors daily"})]}),"create"===e?(0,t.jsxs)("div",{children:[(0,t.jsx)(ep,{label:"Team"}),(0,t.jsxs)("select",{value:s.teamId,onChange:e=>i({...s,teamId:e.target.value}),className:"w-full rounded-2xl border border-[var(--border)] bg-[rgba(15,23,42,0.55)] px-3 py-3 text-sm text-[var(--foreground)] outline-none transition-colors focus:border-sky-500/50",children:[(0,t.jsx)("option",{value:"",children:"Select a team"}),r.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))]}),(0,t.jsx)("p",{className:"mt-2 text-xs text-[var(--muted-foreground)]",children:"Teams can only own one objective at a time."})]}):null]}),(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2 border-t border-[var(--border)] px-5 py-4",children:[(0,t.jsx)("button",{type:"button",onClick:n,className:"rounded-xl border border-[var(--border)] px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:"Cancel"}),(0,t.jsx)("button",{type:"button",onClick:o,disabled:a,className:"rounded-xl border border-sky-500/30 bg-sky-500/10 px-3 py-2 text-sm font-medium text-sky-100 transition-colors hover:bg-sky-500/20 disabled:cursor-not-allowed disabled:opacity-50",children:a?"Saving...":"edit"===e?"Save objective":"Create objective"})]})]})})}function ex({draft:e,isSaving:s,onChange:r,onClose:a,onSave:i}){return(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/45 p-4",children:(0,t.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":"Edit wake schedule",className:"w-full max-w-2xl overflow-hidden rounded-[32px] border border-[var(--border)] bg-[rgba(6,10,16,0.96)] shadow-2xl",children:[(0,t.jsxs)("div",{className:"border-b border-[var(--border)] px-5 py-4",children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--foreground)]",children:"Edit wake schedule"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:"Control when agents should wake up and whether they should gate execution on a condition."})]}),(0,t.jsx)("div",{className:"px-5 py-5",children:(0,t.jsx)(C.ScheduleConditionPicker,{value:{cadence:e.cadence,condition:e.condition},onChange:t=>r({...e,cadence:t.cadence,condition:t.condition}),allowEmptySchedule:!0,scheduleLabel:"Schedule",conditionLabel:"Condition",conditionHelpText:"Use a condition when agents should only work on this objective in specific circumstances."})}),(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2 border-t border-[var(--border)] px-5 py-4",children:[(0,t.jsx)("button",{type:"button",onClick:a,className:"rounded-xl border border-[var(--border)] px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:"Cancel"}),(0,t.jsx)("button",{type:"button",onClick:i,disabled:s,className:"rounded-xl border border-sky-500/30 bg-sky-500/10 px-3 py-2 text-sm font-medium text-sky-100 transition-colors hover:bg-sky-500/20 disabled:cursor-not-allowed disabled:opacity-50",children:s?"Saving...":"Save schedule"})]})]})})}function ep({label:e}){return(0,t.jsx)("label",{className:"mb-2 block text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:e})}e.s(["ProjectObjectiveDetail",0,function({projectSlug:e,objectiveId:i}){var n;let o,l,b,g,j=(0,r.useRouter)(),{isLoading:y,project:w,workspace:k,teams:z,persistWorkspace:C,refetchProject:I}=ea(e),E=(0,a.useMemo)(()=>k.objectives.find(e=>e.id===i)??null,[i,k.objectives]),O=(0,a.useMemo)(()=>es(z,k,i),[i,z,k]),T=E?(n=E.teamId,z.find(e=>e.id===n)?.name??null):null,[A,M]=(0,a.useState)(null),[P,L]=(0,a.useState)(null),[F,D]=(0,a.useState)(null),[_,U]=(0,a.useState)("activity"),[q,J]=(0,a.useState)(0),[H,B]=(0,a.useState)(!1),[K,Y]=(0,a.useState)(null),[ee,ei]=(0,a.useState)([]),[ec,em]=(0,a.useState)(!1),[ep,eh]=(0,a.useState)(null),[eb,ef]=(0,a.useState)({}),[ev,eg]=(0,a.useState)({}),[ej,ey]=(0,a.useState)(new Set),[ew,eN]=(0,a.useState)(""),[ek,ez]=(0,a.useState)(!1),[eS,eC]=(0,a.useState)([]),[eI,e$]=(0,a.useState)(!0),{jobs:eE}=(0,$.usePromptJobs)(w?.id??null,{requireProjectId:!0,includeObjectiveJobs:!0,objectiveId:i}),eO=(0,a.useMemo)(()=>eE.filter(e=>e.objectiveId===i).length,[eE,i]),eT=async e=>{B(!0),Y(null);try{await C(e)}catch(e){throw Y(e instanceof Error?e.message:"Failed to save objective updates."),e}finally{B(!1)}},eA=async()=>{if(!A||!E)return;let e=A.title.trim();if(!e)return void Y("Objective statement is required.");let t={...E,title:e,updatedAt:new Date().toISOString()};await eT((0,G.upsertProjectObjective)(k,t)),M(null)},eM=(0,a.useCallback)(async()=>{if(w?.id&&E?.id){em(!0);try{let e=await fetch(`/api/projects/${w.id}/objectives/${E.id}/notes?limit=100`);if(e.ok){let t=await e.json();ei(t.notes??[])}}catch{}finally{em(!1)}}},[w?.id,E?.id]);(0,a.useEffect)(()=>{eM()},[eM]),(0,a.useEffect)(()=>{"notes"===_&&eM()},[_,eM]),(0,a.useEffect)(()=>{if(!w?.id||!E?.id)return;let e=new Set;for(let[t,s]of Object.entries(eb)){let r=ee.find(e=>e.id===t);r&&r.body!==s&&e.add(t)}for(let[t,s]of Object.entries(ev)){let r=ee.find(e=>e.id===t);r&&r.title!==s&&e.add(t)}if(0===e.size)return;let t=[];for(let s of e){let e={},r=eb[s],a=ev[s],i=ee.find(e=>e.id===s);if(!i||(void 0!==r&&r!==i.body&&(e.body=r),void 0!==a&&a!==i.title&&a.trim()&&(e.title=a.trim()),0===Object.keys(e).length))continue;let n=window.setTimeout(async()=>{ey(e=>new Set(e).add(s));try{let t=await fetch(`/api/projects/${w.id}/objectives/${E.id}/notes/${s}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(t.ok){let e=await t.json();ei(t=>t.map(t=>t.id===s?e.note:t))}}catch{Y("Failed to save note.")}finally{ey(e=>{let t=new Set(e);return t.delete(s),t})}},700);t.push(n)}return()=>{for(let e of t)window.clearTimeout(e)}},[eb,ev,ee,w?.id,E?.id]);let eP=async()=>{if(!w?.id||!E?.id)return;let e=ew.trim()||"Untitled";ez(!0);try{let t=await fetch(`/api/projects/${w.id}/objectives/${E.id}/notes`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:e,body:""})});if(t.ok){let e=await t.json();ei(t=>[e.note,...t]),eh(e.note.id),eN("")}}catch{Y("Failed to create note.")}finally{ez(!1)}},eL=async e=>{if(w?.id&&E?.id)try{let t=await fetch(`/api/projects/${w.id}/objectives/${E.id}/notes/${e}`,{method:"DELETE"});(t.ok||204===t.status)&&(ei(t=>t.filter(t=>t.id!==e)),ep===e&&eh(null))}catch{Y("Failed to delete note.")}},eR=async()=>{if(!F||!E)return;let e={...E,cadence:F.cadence.trim(),condition:F.condition.trim(),updatedAt:new Date().toISOString()};await eT((0,G.upsertProjectObjective)(k,e)),D(null)},eF=async()=>{!E||window.confirm(`Delete "${E.title}"?`)&&(await eT((0,G.removeProjectObjective)(k,E.id)),j.push(`/projects/${e}`))},eD=(0,a.useCallback)(async e=>{E&&E.threadId!==e&&await eT((0,G.upsertProjectObjective)(k,{...E,threadId:e,updatedAt:new Date().toISOString()}))},[E,eT,k]),e_=(0,a.useCallback)(async e=>{if(!w?.id||!E?.id)return Y("Objective not found."),!1;Y(null);try{let t=await fetch(`/api/projects/${w.id}/objectives/${E.id}/scheduled-tasks`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,prompt:"objective_linear_ticket"===e.executionMode?e.prompt:function(e,t){let s=t.trim();if(!s)return s;let r=`Objective label: ${e.key}`;return s.toLowerCase().includes(r.toLowerCase())?s:[r,`Write your output as an activity file at ~/.agx/projects/<project>/objectives/${e.key}/activities/<timestamp>-<slug>.md
|
|
19
|
-
The file must have YAML frontmatter with: id (unique), source (your task ID), objectiveLabel: "${e.key}", createdAt (ISO), type (one of: metric-check, status-update, milestone, note).
|
|
20
|
-
The markdown body below the frontmatter contains your output.`,s].join("\n\n")}(E,e.prompt)})}),s=await t.json().catch(()=>({}));if(!t.ok)throw Error(s.error||"Failed to create scheduled task.");return await I(),!0}catch(e){return Y(e instanceof Error?e.message:"Failed to create scheduled task."),!1}},[E,w?.id,I]),eU=(0,a.useCallback)(async()=>{if(!w?.id||!E?.id)return Y("Objective not found."),!1;Y(null);try{let e=await fetch(`/api/projects/${w.id}/objectives/${E.id}/scheduled-tasks`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:"Work objective Linear tickets",executionMode:"objective_linear_ticket"})}),t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t.error||"Failed to create objective Linear worker.");return await I(),!0}catch(e){return Y(e instanceof Error?e.message:"Failed to create objective Linear worker."),!1}},[E,w?.id,I]);return((0,a.useEffect)(()=>{if(!w?.id||!E?.id){eC([]),e$(!0);return}let e=w.id,t=E.id,s=!1;return async function(){try{let r=await fetch(`/api/projects/${e}/objectives/${t}/linear-issues`),a=401===r.status?{connected:!1,issues:[]}:r.ok?await r.json():{connected:!0,issues:[]};if(s)return;eC(Array.isArray(a.issues)?a.issues:[]),e$(!1!==a.connected)}catch(e){if(s)return;console.warn("Failed to load objective resources",e),eC([]),e$(!0)}}(),()=>{s=!0}},[E?.id,E?.key,w?.id]),y&&!w)?(0,t.jsx)(eo,{label:"Loading objective..."}):w?E?(0,t.jsxs)("div",{className:"flex h-full min-h-0 flex-col bg-[#131315] text-zinc-200",children:[(0,t.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:(0,t.jsxs)("div",{className:"flex h-full min-h-0 flex-col xl:flex-row",children:[(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:(0,t.jsxs)("div",{className:"max-w-5xl mx-auto pt-16 px-8 pb-20",children:[(0,t.jsx)(el,{message:K}),(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,t.jsx)("span",{className:"px-2.5 py-0.5 rounded-full text-[10px] font-mono tracking-wider bg-zinc-800/60 text-zinc-400 border border-zinc-700 uppercase",children:E.key}),(0,t.jsx)("span",{className:`rounded-full border px-2.5 py-0.5 text-[10px] font-semibold uppercase tracking-[0.18em] ${X[E.status].chipClass}`,children:X[E.status].label})]}),(0,t.jsx)("div",{className:"mb-6",children:A?(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{autoFocus:!0,value:A.title,onChange:e=>M({...A,title:e.target.value}),onKeyDown:e=>{"Enter"===e.key&&eA(),"Escape"===e.key&&M(null)},className:"flex-1 text-[28px] leading-tight font-semibold text-zinc-100 bg-transparent border-b-2 border-sky-500/50 outline-none px-0 py-1",placeholder:"Objective statement"}),(0,t.jsx)("button",{type:"button",onClick:()=>void eA(),disabled:H,className:"p-1.5 rounded-md text-sky-400 hover:bg-sky-500/10 transition-colors","aria-label":"Save objective",children:(0,t.jsx)(c.Check,{size:18})}),(0,t.jsx)("button",{type:"button",onClick:()=>M(null),className:"p-1.5 rounded-md text-zinc-400 hover:bg-zinc-800/50 transition-colors","aria-label":"Cancel editing",children:(0,t.jsx)(v.X,{size:18})})]}):(0,t.jsxs)("div",{className:"flex items-center gap-3 group cursor-pointer",onClick:()=>M(Z(E)),children:[(0,t.jsx)("h1",{className:"text-[28px] leading-tight font-semibold text-zinc-100",children:E.title}),(0,t.jsx)(x.Pencil,{size:16,className:"text-zinc-500 opacity-0 group-hover:opacity-100 transition-opacity shrink-0"})]})}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-x-6 gap-y-3 mb-10",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"text-xs font-semibold text-zinc-500 uppercase tracking-wider flex items-center gap-1.5",children:[(0,t.jsx)(f.Users,{size:12})," Team"]}),(0,t.jsx)("span",{className:"text-zinc-600",children:"·"}),P?(0,t.jsx)("div",{className:"min-w-[180px]",children:(0,t.jsx)(S.default,{options:O.map(e=>({id:e.id,label:e.name})),value:P.teamId,onChange:e=>{L({teamId:e});let t=e.trim();if(!t||!E)return;let s=et(k,t,E.id);s?Y(`Team is already assigned to "${s.title}".`):(eT((0,G.upsertProjectObjective)(k,{...E,teamId:t,updatedAt:new Date().toISOString()})),L(null))},placeholder:"Select a team…"})}):(0,t.jsxs)("button",{type:"button",onClick:()=>L({teamId:E.teamId}),className:"flex items-center gap-2 group rounded px-1.5 py-0.5 -mx-1.5 -my-0.5 hover:bg-zinc-800 transition-colors",children:[(0,t.jsx)("div",{className:"w-5 h-5 rounded-full bg-blue-500/20 text-blue-400 flex items-center justify-center text-[10px] font-bold border border-blue-500/30",children:(T??"?").charAt(0).toUpperCase()}),(0,t.jsx)("span",{className:"text-sm text-zinc-200 group-hover:text-zinc-50 transition-colors",children:T??"Not assigned"})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"text-xs font-semibold text-zinc-500 uppercase tracking-wider flex items-center gap-1.5",children:[(0,t.jsx)(u.Clock,{size:12})," Check-in"]}),(0,t.jsx)("span",{className:"text-zinc-600",children:"·"}),(0,t.jsx)("button",{type:"button",onClick:()=>D(Z(E)),className:"text-sm text-zinc-200 hover:text-zinc-50 rounded px-1.5 py-0.5 -my-0.5 hover:bg-zinc-800 transition-colors",children:er(E.cadence)}),E.condition?(0,t.jsxs)("span",{className:"text-xs text-zinc-500 truncate max-w-[200px]",children:["· ",E.condition]}):null]})]}),(0,t.jsx)("div",{className:"border-b border-zinc-800/80 mb-8",children:(0,t.jsx)("nav",{className:"flex gap-1 -mb-px","aria-label":"Objective sections",children:[{id:"activity",label:"Activity",icon:u.Clock},{id:"notes",label:"Notes",icon:m.FileText},{id:"linear",label:"Linear",icon:V.LinearIcon},{id:"scheduled-tasks",label:"Scheduled Tasks",icon:d}].map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>U(e.id),className:`flex items-center gap-2 px-3 py-2.5 text-sm font-medium border-b-2 transition-colors ${_===e.id?"border-sky-500 text-zinc-100":"border-transparent text-zinc-500 hover:text-zinc-300 hover:border-zinc-700"}`,children:[(0,t.jsx)(e.icon,{size:14}),e.label,"activity"===e.id&&q>0&&(0,t.jsx)("span",{className:"text-[10px] bg-zinc-800 text-zinc-400 rounded-full px-1.5 py-0.5 font-mono",children:q}),"notes"===e.id&&ee.length>0&&(0,t.jsx)("span",{className:"text-[10px] bg-zinc-800 text-zinc-400 rounded-full px-1.5 py-0.5 font-mono",children:ee.length}),"linear"===e.id&&eS.length>0&&(0,t.jsx)("span",{className:"text-[10px] bg-zinc-800 text-zinc-400 rounded-full px-1.5 py-0.5 font-mono",children:eS.length}),"scheduled-tasks"===e.id&&eO>0&&(0,t.jsx)("span",{className:"text-[10px] bg-zinc-800 text-zinc-400 rounded-full px-1.5 py-0.5 font-mono",children:eO})]},e.id))})}),(0,t.jsxs)("div",{className:"space-y-10",children:["notes"===_&&(0,t.jsxs)("section",{className:"space-y-4",children:[(0,t.jsx)("div",{className:"flex justify-between items-end",children:(0,t.jsx)("p",{className:"text-sm text-zinc-500",children:"Capture the strategy, constraints, and what better looks like."})}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("input",{type:"text",value:ew,onChange:e=>eN(e.target.value),onKeyDown:e=>{"Enter"===e.key&&eP()},placeholder:"New note title...",className:"flex-1 bg-zinc-900 border border-zinc-800 rounded-md px-3 py-1.5 text-sm text-zinc-200 placeholder:text-zinc-600 focus:outline-none focus:border-zinc-600"}),(0,t.jsxs)("button",{type:"button",onClick:eP,disabled:ek,className:"flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium text-zinc-200 bg-zinc-800 hover:bg-zinc-700 rounded-md transition-colors disabled:opacity-50",children:[(0,t.jsx)(p.Plus,{size:14}),"Add"]})]}),ec?(0,t.jsx)("p",{className:"text-sm text-zinc-500 py-4",children:"Loading notes..."}):0===ee.length?(0,t.jsx)("p",{className:"text-sm text-zinc-600 py-4",children:"No notes yet. Add one above."}):(0,t.jsx)("div",{className:"space-y-3",children:ee.map(e=>{let s=ep===e.id,r=ej.has(e.id),a=eb[e.id]??e.body,i=ev[e.id]??e.title;return(0,t.jsxs)("div",{className:"border border-zinc-800/80 rounded-lg overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-2.5 bg-zinc-900/50",children:[s?(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-1 mr-2",children:[(0,t.jsx)(m.FileText,{size:14,className:"text-zinc-500 shrink-0"}),(0,t.jsx)("input",{type:"text",value:i,onChange:t=>eg(s=>({...s,[e.id]:t.target.value})),className:"flex-1 bg-transparent border-b border-zinc-700 text-sm font-medium text-zinc-200 focus:outline-none focus:border-zinc-400 py-0.5"})]}):(0,t.jsxs)("button",{type:"button",onClick:()=>eh(e.id),className:"flex items-center gap-2 text-sm font-medium text-zinc-200 hover:text-zinc-50 transition-colors",children:[(0,t.jsx)(m.FileText,{size:14,className:"text-zinc-500"}),e.title]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] text-zinc-600",children:r?"Saving...":new Date(e.updatedAt).toLocaleDateString()}),(0,t.jsx)("button",{type:"button",onClick:()=>eh(s?null:e.id),className:"p-1 text-zinc-500 hover:text-zinc-300 transition-colors",children:(0,t.jsx)(x.Pencil,{size:12})}),(0,t.jsx)("button",{type:"button",onClick:()=>eL(e.id),className:"p-1 text-zinc-500 hover:text-red-400 transition-colors",children:(0,t.jsx)(h.Trash2,{size:12})})]})]}),s?(0,t.jsx)("div",{className:"px-4 py-3",children:(0,t.jsx)(ed,{content:a,editable:!0,onChange:t=>ef(s=>({...s,[e.id]:t})),placeholder:"Write your note..."})}):e.body.trim()?(0,t.jsx)("div",{className:"px-4 py-3 text-sm text-zinc-400 cursor-pointer hover:bg-zinc-900/30 transition-colors",onClick:()=>eh(e.id),children:(0,t.jsx)("div",{className:"line-clamp-3",children:(0,t.jsx)(N.Markdown,{content:e.body})})}):(0,t.jsx)("div",{className:"px-4 py-3 text-sm text-zinc-600 italic cursor-pointer hover:bg-zinc-900/30 transition-colors",onClick:()=>eh(e.id),children:"Empty note — click to edit"})]},e.id)})})]}),"activity"===_&&w.id&&E.id&&(0,t.jsx)(W,{projectId:w.id,objectiveId:E.id,onTotalChange:J}),"linear"===_&&(o=eS.filter((e,t,s)=>s.findIndex(t=>t.id===e.id)===t),l=["done","canceled","cancelled","completed","duplicate"],b=o.filter(e=>!l.includes(e.status.toLowerCase())),g=o.filter(e=>l.includes(e.status.toLowerCase())).slice(-5),(0,t.jsxs)("section",{children:[(0,t.jsxs)("p",{className:"text-sm text-zinc-500 mb-4",children:["Tickets tracked by the objective label"," ",(0,t.jsx)("code",{className:"font-mono text-[11px] bg-zinc-800/80 px-1.5 py-0.5 rounded text-zinc-300",children:E.key}),"."]}),eI?0===o.length?(0,t.jsx)(eu,{label:`No Linear tickets with label ${E.key} yet.`}):(0,t.jsxs)(t.Fragment,{children:[b.length>0&&(0,t.jsx)("div",{className:"space-y-3",children:b.map(e=>(0,t.jsxs)("div",{className:"bg-[#1c212b] border border-[#2d3748] rounded-xl p-4",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-zinc-500",children:e.identifier}),e.url?(0,t.jsx)("a",{href:e.url,target:"_blank",rel:"noreferrer",className:"mt-1 block text-sm font-medium text-zinc-200 transition-colors hover:text-sky-200",children:e.title}):(0,t.jsx)("p",{className:"mt-1 text-sm font-medium text-zinc-200",children:e.title})]}),(0,t.jsx)("span",{className:"rounded-full border border-zinc-700 px-2 py-1 text-[10px] font-semibold uppercase tracking-[0.18em] text-zinc-500",children:e.status})]}),(0,t.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2 text-[11px] text-zinc-500",children:[(0,t.jsxs)("span",{children:["Updated ",Q(e.updatedAt)]}),(0,t.jsx)("span",{children:e.assignee?`Assigned to ${e.assignee}`:"Unassigned"})]})]},e.id))}),g.length>0&&(0,t.jsxs)("div",{className:b.length>0?"mt-6":"",children:[(0,t.jsx)("p",{className:"text-[11px] font-medium uppercase tracking-[0.18em] text-zinc-600 mb-2",children:"Completed"}),(0,t.jsx)("div",{className:"space-y-0.5",children:g.map(e=>(0,t.jsxs)("a",{href:e.url??"#",target:"_blank",rel:"noreferrer",className:"flex items-center gap-3 py-1.5 px-2 rounded-md text-zinc-500 hover:text-zinc-400 hover:bg-zinc-800/40 transition-colors group",children:[(0,t.jsx)("span",{className:"text-[11px] font-mono shrink-0",children:e.identifier}),(0,t.jsx)("span",{className:"text-[12px] truncate",children:e.title}),(0,t.jsx)("span",{className:"ml-auto text-[10px] shrink-0 text-zinc-600 group-hover:text-zinc-500",children:e.status})]},e.id))})]})]}):(0,t.jsx)(eu,{label:"Connect Linear to create and track tickets for this objective."})]})),"scheduled-tasks"===_&&(0,t.jsx)("section",{children:(0,t.jsx)(R,{projectId:w.id,objectiveId:E.id,objectiveKey:E.key,createDefaults:{name:`Work on ${E.title}`,cadence:E.cadence,condition:E.condition},onCreateTask:e_,onCreateObjectiveLinearWorker:eU})}),(0,t.jsxs)("section",{className:"pt-10",children:[(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsx)("h2",{className:"text-sm font-semibold text-red-400",children:"Danger Zone"})}),(0,t.jsxs)("div",{className:"border border-red-900/30 rounded-xl p-5 flex items-center justify-between bg-red-950/5",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-zinc-200",children:"Delete Objective"}),(0,t.jsx)("p",{className:"text-sm text-zinc-500 mt-1",children:"Once you delete an objective, there is no going back."})]}),(0,t.jsxs)("button",{type:"button",onClick:()=>void eF(),"aria-label":`Delete objective ${E.title}`,className:"flex items-center gap-2 px-3 py-1.5 rounded-md border border-red-900/40 text-red-400 text-sm font-medium hover:bg-red-950/40 transition-colors bg-red-950/20 whitespace-nowrap",children:[(0,t.jsx)(h.Trash2,{size:14})," Delete"]})]})]})]})]})}),(0,t.jsx)(en,{projectId:w.id,projectSlug:e,objective:E,teamName:T,onThreadLinked:eD,onObjectiveUpdated:I})]})}),F?(0,t.jsx)(ex,{draft:F,isSaving:H,onChange:D,onClose:()=>D(null),onSave:()=>void eR()}):null]}):(0,t.jsx)("div",{className:"flex h-full items-center justify-center px-4 bg-[#131315]",children:(0,t.jsxs)("div",{className:"rounded-xl border border-zinc-700/80 bg-[#18181b] p-8 text-center",children:[(0,t.jsx)("p",{className:"text-lg font-semibold text-zinc-100",children:"Objective not found"}),(0,t.jsx)("p",{className:"mt-2 text-sm text-zinc-500",children:"It may have been deleted or the link is stale."}),(0,t.jsx)(s.default,{href:`/projects/${e}`,className:"mt-4 inline-flex items-center gap-2 rounded-md border border-zinc-700/80 px-3 py-1.5 text-sm text-zinc-300 transition-colors hover:bg-zinc-800/50 bg-[#1a1a1c]",children:"Back to objectives"})]})}):(0,t.jsx)(eo,{label:"Project not found."})},"ProjectObjectivesOverview",0,function({projectSlug:e}){let s=(0,r.useRouter)(),{isLoading:i,project:n,workspace:o,teams:l,persistWorkspace:d}=ea(e),c=o.objectives,u=(0,a.useMemo)(()=>es(l,o),[l,o]),[m,x]=(0,a.useState)(null),[h,b]=(0,a.useState)(!1),[f,v]=(0,a.useState)(null),[g,j]=(0,a.useState)(new Map),[y,w]=(0,a.useState)([]);(0,a.useEffect)(()=>{let e=!1;return async function(){try{let t=await fetch("/api/participants");t.ok&&!e&&w(await t.json())}catch{}}(),()=>{e=!0}},[]),(0,a.useEffect)(()=>{let e=new Map;for(let t of c)t.threadId&&e.set(t.threadId,t.id);if(0===e.size)return;let t=!1;async function s(){try{let s=Array.from(e.keys()).join(","),r=await fetch(`/api/chat-runs/active-agents?threadIds=${encodeURIComponent(s)}`);if(!r.ok||t)return;let a=await r.json(),i=new Map;for(let[t,s]of Object.entries(a.activeAgents??{})){let r=e.get(t);r&&Array.isArray(s)&&s.length>0&&i.set(r,s)}t||j(i)}catch{}}s();let r=setInterval(()=>void s(),5e3);return()=>{t=!0,clearInterval(r)}},[c]);let N=async()=>{if(!m)return;let t=m.title.trim();if(!t)return void v("Objective statement is required.");let r=m.teamId.trim();if(!r)return void v("Team is required.");let a=et(o,r);if(a)return void v(`Team is already assigned to "${a.title}".`);let i=new Date().toISOString(),n=(0,G.createProjectObjective)({title:t,teamId:r,key:(0,G.generateProjectObjectiveKey)(t,o.objectives),summary:m.summary,cadence:m.cadence,condition:m.condition,now:i});b(!0),v(null);try{await d((0,G.upsertProjectObjective)(o,n)),x(null),s.push(ee(e,n.id))}catch(e){v(e instanceof Error?e.message:"Failed to save objective updates.")}finally{b(!1)}};return i&&!n?(0,t.jsx)(eo,{label:"Loading objectives..."}):n?(0,t.jsxs)("div",{className:"flex h-full min-h-0 flex-col bg-[radial-gradient(circle_at_top_left,rgba(59,130,246,0.14),transparent_28%),var(--background)] text-[var(--foreground)]",children:[(0,t.jsxs)("div",{className:"border-b border-[var(--border)] bg-[rgba(10,14,20,0.7)] px-4 py-5 backdrop-blur md:px-6",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-4 md:flex-row md:items-end md:justify-between",children:[(0,t.jsx)("div",{className:"space-y-2",children:(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:0===c.length?"Add an objective to start tracking work in this project.":"Click an objective to open its detail view."})}),(0,t.jsxs)("button",{type:"button",onClick:()=>x({title:"",teamId:"",summary:"",cadence:"",condition:""}),className:"inline-flex items-center gap-2 self-start rounded-xl border border-emerald-500/30 bg-emerald-500/10 px-3 py-2 text-sm font-medium text-emerald-100 transition-colors hover:bg-emerald-500/20",children:[(0,t.jsx)(p.Plus,{className:"h-4 w-4"}),"New objective"]})]}),(0,t.jsx)(el,{message:f})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto px-4 py-5 md:px-6 md:py-6",children:0===c.length?(0,t.jsxs)("div",{className:"mx-auto max-w-3xl rounded-[32px] border border-dashed border-[var(--border)] bg-[var(--card-bg)] p-8 text-center",children:[(0,t.jsx)("p",{className:"text-lg font-semibold text-[var(--foreground)]",children:"No objectives yet"}),(0,t.jsx)("p",{className:"mt-2 text-sm text-[var(--muted-foreground)]",children:"Keep the root view simple: objective list first, detail after click-through."})]}):(0,t.jsx)("div",{className:"mx-auto max-w-4xl divide-y divide-[var(--border)] overflow-hidden rounded-[24px] border border-[var(--border)] bg-[rgba(8,12,18,0.58)]",children:c.map(s=>{let r=(0,G.buildObjectiveTimelineActivities)({objective:s,workspace:o});return(0,t.jsx)(ec,{projectSlug:e,objective:s,activityCount:r.length,lastActivityAt:r[0]?.createdAt??null,activeAgentIds:g.get(s.id),participants:y},s.id)})})}),m?(0,t.jsx)(em,{mode:"create",draft:m,teams:u,isSaving:h,onChange:x,onClose:()=>x(null),onSave:()=>void N()}):null]}):(0,t.jsx)(eo,{label:"Project not found."})}],568656)}]);
|