@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,16 +1,16 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,618566,(e,t,r)=>{t.exports=e.r(976562)},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,o]=(0,t.useState)(null),l=(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??[]),o(null)}catch(e){o(e instanceof Error?e:Error("Unknown error"))}finally{s(!1)}},[]);(0,t.useEffect)(()=>{l()},[l]);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:l,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 o=(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(),o=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...a,name:s,slug:n})});if(!o.ok)return null;let{project:l}=await o.json(),i=Array.isArray(t)?t:t?[t]:[];for(let e of i)await fetch(`/api/projects/${l.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={...l,repos:l.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}},[]),l=(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:o,updateProject:d,renameProject:l,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}}])},186710,e=>{"use strict";var t=e.i(843476),r=e.i(522016),a=e.i(271645),s=e.i(810605);function n(){let[e,r]=(0,a.useState)(null),[n,o]=(0,a.useState)("loading");(0,a.useEffect)(()=>{let e=!0;async function t(){try{let t=await fetch("/api/health");if(!e)return;if(!t.ok)return void o("error");let a=await t.json();r(a),o(a.connected?"connected":"disconnected")}catch{e&&o("error")}}t();let a=setInterval(t,s.UI_POLL_DB_HEALTH_MS);return()=>{e=!1,clearInterval(a)}},[]);let l={loading:"Checking database…",connected:`${e?.adapter??"db"} connected (${e?.latencyMs??"?"}ms)`,disconnected:`${e?.adapter??"db"} disconnected`,error:"Database unreachable"};return(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--muted-foreground)]",role:"status","aria-label":l[n],children:[(0,t.jsx)("span",{className:`w-2 h-2 rounded-full ${{loading:"bg-yellow-400",connected:"bg-green-500",disconnected:"bg-red-500",error:"bg-red-500"}[n]}`}),(0,t.jsx)("span",{className:"hidden sm:inline",children:l[n]})]})}function o({children:e,fullWidth:a=!1,noFooter:s=!1}){return(0,t.jsxs)("div",{className:"h-screen flex flex-col overflow-hidden",children:[(0,t.jsx)("nav",{className:"desktop-titlebar flex-shrink-0 border-b border-[var(--card-border)] bg-[var(--card-bg)]/80 backdrop-blur-lg z-30",children:(0,t.jsx)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:(0,t.jsxs)("div",{className:"flex items-center justify-between h-16",children:[(0,t.jsx)("div",{className:"flex items-center gap-8",children:(0,t.jsx)(r.default,{href:"/",className:"flex items-center gap-3 group",children:(0,t.jsxs)("svg",{width:"52",height:"31",viewBox:"0 0 64 38",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"transition-transform group-hover:scale-105",children:[(0,t.jsx)("rect",{width:"64",height:"38",rx:"8",fill:"black"}),(0,t.jsxs)("g",{stroke:"white",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M 14 27 C 17 16 19 10 20 8 C 21 12 23 20 25 27"}),(0,t.jsx)("path",{d:"M 16 20 C 19 19 21 21 23 20"}),(0,t.jsx)("path",{d:"M 40 13 C 35 10 30 13 30 19 C 30 25 34 28 38 27 C 40 26 40 22 40 20 L 36 20"}),(0,t.jsx)("path",{d:"M 46 11 C 48 16 51 22 54 27"}),(0,t.jsx)("path",{d:"M 54 11 C 52 16 49 22 46 27"})]})]})})}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(r.default,{href:"/",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Open Chat"}),(0,t.jsx)(r.default,{href:"/automations",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Automations"}),(0,t.jsx)(r.default,{href:"/skills",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Skills"}),(0,t.jsx)(r.default,{href:"/settings",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Settings"})]})]})})}),(0,t.jsx)("main",{className:`flex-1 min-h-0 flex flex-col ${a?"p-0":"p-4 sm:p-6 lg:p-8 overflow-y-auto"}`,children:e}),!s&&(0,t.jsx)("footer",{className:"flex-shrink-0 border-t border-[var(--card-border)] bg-[var(--card-bg)]/50 py-4",children:(0,t.jsxs)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 flex items-center justify-between text-xs text-[var(--muted-foreground)]",children:[(0,t.jsx)("span",{children:"AGX Board • Autonomous Agent Orchestration"}),(0,t.jsxs)("span",{className:"hidden sm:inline-flex items-center gap-3",children:[(0,t.jsx)(n,{}),(0,t.jsx)("span",{children:"Built with Next.js + Db"})]})]})})]})}e.s(["default",0,function(e){return(0,t.jsx)(a.Suspense,{fallback:(0,t.jsx)("div",{className:"h-screen flex items-center justify-center bg-[var(--background)]",children:(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"})}),children:(0,t.jsx)(o,{...e})})}],186710)},195057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={formatUrl:function(){return l},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)),o=/https?|ftp|gopher|file/;function l(e){let{auth:t,hostname:r}=e,a=e.protocol||"",s=e.pathname||"",l=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||o.test(a))&&!1!==d?(d="//"+(d||""),s&&"/"!==s[0]&&(s="/"+s)):d||(d=""),l&&"#"!==l[0]&&(l="#"+l),c&&"?"!==c[0]&&(c="?"+c),s=s.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${a}${d}${s}${c}${l}`}let i=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function d(e){return l(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 v}};for(var s in a)Object.defineProperty(r,s,{enumerable:!0,get:a[s]});let n=e.r(190809),o=e.r(843476),l=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 m=e.r(388540),f=e.r(91949),h=e.r(573668),x=e.r(509396);function g(t){var r,a;let s,n,g,[v,j]=(0,l.useOptimistic)(f.IDLE_LINK_STATUS),y=(0,l.useRef)(null),{href:k,as:w,children:N,prefetch:C=null,passHref:_,replace:S,shallow:E,scroll:T,onClick:P,onMouseEnter:O,onTouchStart:L,legacyBehavior:A=!1,onNavigate:$,transitionTypes:R,ref:M,unstable_dynamicOnHover:I,...U}=t;s=N,A&&("string"==typeof s||"number"==typeof s)&&(s=(0,o.jsx)("a",{children:s}));let D=l.default.useContext(d.AppRouterContext),F=!1!==C,B=!1!==C?null===(a=C)||"auto"===a?x.FetchStrategy.PPR:x.FetchStrategy.Full:x.FetchStrategy.PPR,q="string"==typeof(r=w||k)?r:(0,i.formatUrl)(r);if(A){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=l.default.Children.only(s)}let J=A?n&&"object"==typeof n&&n.ref:M,K=l.default.useCallback(e=>(null!==D&&(y.current=(0,f.mountLinkInstance)(e,q,D,B,F,j)),()=>{y.current&&((0,f.unmountLinkForCurrentNavigation)(y.current),y.current=null),(0,f.unmountPrefetchableInstance)(e)}),[F,q,D,B,j]),H={ref:(0,c.useMergedRef)(K,J),onClick(t){A||"function"!=typeof P||P(t),A&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(t),!D||t.defaultPrevented||function(t,r,a,s,n,o,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(),o){let e=!1;if(o({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:u}=e.r(699781);l.default.startTransition(()=>{u(r,s?"replace":"push",!1===n?m.ScrollBehavior.NoScroll:m.ScrollBehavior.Default,a.current,i)})}}(t,q,y,S,T,$,R)},onMouseEnter(e){A||"function"!=typeof O||O(e),A&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),D&&F&&(0,f.onNavigationIntent)(e.currentTarget,!0===I)},onTouchStart:function(e){A||"function"!=typeof L||L(e),A&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),D&&F&&(0,f.onNavigationIntent)(e.currentTarget,!0===I)}};return(0,u.isAbsoluteUrl)(q)?H.href=q:A&&!_&&("a"!==n.type||"href"in n.props)||(H.href=(0,p.addBasePath)(q)),g=A?l.default.cloneElement(n,H):(0,o.jsx)("a",{...U,...H,children:s}),(0,o.jsx)(b.Provider,{value:v,children:g})}e.r(284508);let b=(0,l.createContext)(f.IDLE_LINK_STATUS),v=()=>(0,l.useContext)(b);("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])},494999,e=>{"use strict";var t=e.i(843476),r=e.i(271645);e.s(["default",0,function({initialPath:e,onSelect:a,onCancel:s}){let[n,o]=(0,r.useState)(e||""),[l,i]=(0,r.useState)(null),[d,c]=(0,r.useState)(!1),[u,p]=(0,r.useState)(null),m=(0,r.useRef)(null),f=(0,r.useCallback)(async e=>{c(!0),p(null);try{let t=e?`?path=${encodeURIComponent(e)}`:"",r=await fetch(`/api/filesystem/browse${t}`),a=await r.json();if(!r.ok)return void p(a.error||"Failed to browse");i(a),o(a.current),m.current?.scrollTo(0,0)}catch{p("Failed to connect")}finally{c(!1)}},[]);return(0,r.useEffect)(()=>{f(e||"")},[]),(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] overflow-hidden shadow-lg",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-[var(--card-border)] bg-[var(--muted)]/30",children:[(0,t.jsx)("input",{value:n,onChange:e=>o(e.target.value),onKeyDown:e=>{"Enter"===e.key&&f(n)},className:"input text-xs flex-1 py-1",placeholder:"Enter path..."}),(0,t.jsx)("button",{type:"button",onClick:()=>f(n),className:"text-[10px] font-bold uppercase tracking-wider text-[var(--primary)] hover:underline px-2 py-1 shrink-0",children:"Go"})]}),(0,t.jsxs)("div",{ref:m,className:"max-h-48 overflow-y-auto",children:[d&&(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)] text-center",children:"Loading..."}),u&&(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--destructive)] text-center",children:u}),!d&&l&&(0,t.jsxs)("div",{className:"py-1",children:[l.parent&&(0,t.jsxs)("button",{type:"button",onClick:()=>f(l.parent),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-[var(--muted)]/50 transition-colors flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"↑"}),(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:".."})]}),0===l.dirs.length&&!l.parent&&(0,t.jsx)("div",{className:"px-3 py-3 text-xs text-[var(--muted-foreground)] text-center",children:"No subdirectories"}),l.dirs.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>f(e.path),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-[var(--muted)]/50 transition-colors flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"📁"}),(0,t.jsx)("span",{className:"truncate",children:e.name})]},e.path))]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-t border-[var(--card-border)] bg-[var(--muted)]/30",children:[(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)] truncate max-w-[60%]",children:l?.current||n}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:s,className:"text-xs font-medium text-[var(--muted-foreground)] hover:underline px-2 py-1",children:"Cancel"}),(0,t.jsx)("button",{type:"button",onClick:()=>a(l?.current||n),className:"text-xs font-bold text-[var(--primary)] hover:underline px-2 py-1",children:"Select"})]})]})]})}])},535208,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(494999);let s={name:"",description:""},n={name:"",path:"",notes:""};function o({form:e,repos:s,isEditingProject:n,isSubmitting:l,onFieldChange:i,onRepoChange:d,onAddRepo:c,onRemoveRepo:u}){let[p,m]=(0,r.useState)([]),[f,h]=(0,r.useState)(null),x=(0,r.useRef)(0);(0,r.useEffect)(()=>{n?m([]):m(s.map((e,t)=>t)),x.current=s.length},[n,s.length]),(0,r.useEffect)(()=>{if(!n){x.current=s.length;return}let e=x.current;m(t=>{let r=t.filter(e=>e<s.length);return s.length>e&&r.push(...Array.from({length:s.length-e},(t,r)=>e+r)),r}),x.current=s.length},[n,s.length]);let g=(0,r.useCallback)(e=>{m(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),b=(0,r.useCallback)(e=>!n||p.includes(e),[p,n]);return(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)("div",{className:"grid gap-4",children:(0,t.jsxs)("label",{className:"space-y-1.5 block",children:[(0,t.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Project Name"}),(0,t.jsx)("input",{value:e.name,onChange:e=>i("name",e.target.value),className:"input w-full",placeholder:"e.g. AGX Cloud",disabled:l})]})}),(0,t.jsxs)("label",{className:"space-y-1.5 block",children:[(0,t.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Description"}),(0,t.jsx)("textarea",{value:e.description,onChange:e=>i("description",e.target.value),className:"input w-full h-24 resize-none",placeholder:"What is this project about?",disabled:l})]}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-[var(--card-border)] pb-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-sm font-bold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Folders"}),(0,t.jsx)("p",{className:"text-[11px] text-[var(--muted-foreground)] mt-0.5",children:"Code repos, doc folders, design assets, config directories — any path your team needs access to."})]}),(0,t.jsx)("button",{type:"button",onClick:c,className:"text-xs font-semibold text-[var(--primary)] hover:underline flex-shrink-0",disabled:l,children:"+ Add Folder"})]}),(0,t.jsx)("div",{className:"space-y-4",children:s.map((e,r)=>(0,t.jsxs)("div",{className:"p-4 rounded-2xl border border-[var(--card-border)] bg-[var(--muted)]/20 space-y-3 relative group",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"text-xs font-bold text-[var(--foreground)] uppercase",children:["Folder #",r+1]}),n&&!b(r)?(0,t.jsxs)("div",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:[(0,t.jsx)("div",{children:e.name||"Unnamed folder"}),(0,t.jsx)("div",{className:"truncate",children:e.path||"No local path set"})]}):null]}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[n&&(0,t.jsx)("button",{type:"button",onClick:()=>g(r),className:"text-xs font-semibold text-[var(--primary)] hover:underline",disabled:l,children:b(r)?"Done":"Edit"}),s.length>1&&(0,t.jsx)("button",{type:"button",onClick:()=>u(r),className:"text-xs font-semibold text-[var(--destructive)] hover:underline",disabled:l,children:"Remove"})]})]}),b(r)?(0,t.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,t.jsx)("input",{value:e.name,onChange:e=>d(r,"name",e.target.value),placeholder:"Name (e.g. Frontend, API Docs, Design System)",className:"input text-sm",disabled:l}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{value:e.path,onChange:e=>d(r,"path",e.target.value),placeholder:"Local path to folder",className:"input text-sm flex-1",disabled:l}),(0,t.jsx)("button",{type:"button",onClick:async()=>{try{let e=await fetch("/api/filesystem/pick-folder",{method:"POST"}),t=await e.json();t.path&&d(r,"path",t.path)}catch{h(f===r?null:r)}},className:"px-3 py-2 rounded-xl border border-[var(--card-border)] bg-[var(--muted)]/30 hover:bg-[var(--muted)]/60 transition-colors text-xs font-semibold text-[var(--muted-foreground)] whitespace-nowrap",disabled:l,children:"Browse"})]}),f===r&&(0,t.jsx)("div",{className:"md:col-span-2",children:(0,t.jsx)(a.default,{initialPath:e.path||"",onSelect:e=>{d(r,"path",e),h(null)},onCancel:()=>h(null)})}),(0,t.jsx)("div",{className:"md:col-span-2",children:(0,t.jsx)("textarea",{value:e.notes,onChange:e=>d(r,"notes",e.target.value),placeholder:"Notes for this folder — e.g. coding conventions, deploy steps, ownership, doc standards...",className:"input text-sm w-full min-h-24 resize-y",disabled:l})})]}):null]},r))})]})]})}e.s(["createProjectPayload",0,function(e,t){let r=t.filter(e=>e.name.trim()&&e.path.trim()).map(e=>({...e.id?{id:e.id}:{},name:e.name.trim(),path:e.path.trim(),...e.git_url?.trim()?{git_url:e.git_url.trim()}:{},notes:e.notes.trim()||void 0}));return{name:e.name.trim(),description:e.description.trim()||void 0,repos:r.length?r:void 0}},"default",0,function({isOpen:e,onClose:a,onSubmit:s,editingProject:n,form:l,repos:i,isSubmitting:d,formError:c,onFieldChange:u,onRepoChange:p,onAddRepo:m,onRemoveRepo:f}){let[h,x]=(0,r.useState)([]);return((0,r.useEffect)(()=>{let e=!1;return async function(){if(!n)return x([]);try{let t=await fetch(`/api/knowledge-notes?scope=project&subjectId=${encodeURIComponent(n.id)}`),r=(t.ok?await t.json():{note:null}).note;e||x(r?.content?[{id:r.id,content:r.content,created_at:r.updatedAt??r.createdAt,source:r.sourceType}]:[])}catch{e||x([])}}(),()=>{e=!0}},[n]),e)?(0,t.jsx)("div",{className:"modal-backdrop p-2 sm:p-4 z-50 overflow-y-auto flex items-center justify-center",onClick:e=>e.target===e.currentTarget&&a(),children:(0,t.jsxs)("div",{className:"modal-content w-full max-w-4xl mx-2 sm:mx-auto bg-[var(--card-bg)] rounded-3xl border border-[var(--card-border)] shadow-2xl animate-scale-in flex flex-col max-h-[90vh]",children:[(0,t.jsxs)("div",{className:"px-4 py-4 sm:px-8 sm:py-6 border-b border-[var(--card-border)] flex items-center justify-between flex-shrink-0",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-xl font-bold",children:n?"Edit Project":"Create New Project"}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5",children:n?"Update your project settings and folders.":"Define a new project and connect folders."})]}),(0,t.jsx)("button",{onClick:a,className:"p-2 rounded-xl hover:bg-[var(--muted)]/50 transition-colors",children:(0,t.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto p-4 sm:p-8",children:[n&&(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsxs)("div",{className:"rounded-2xl border border-[var(--card-border)] bg-[var(--muted)]/20 p-4",children:[(0,t.jsx)("h3",{className:"text-sm font-bold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Living Project Note"}),h.length>0?(0,t.jsx)("div",{className:"mt-3 space-y-2",children:h.slice(0,5).map(e=>(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] px-3 py-2 text-sm text-[var(--foreground)]",children:[(0,t.jsx)("div",{children:e.content}),e.created_at?(0,t.jsx)("div",{className:"mt-1 text-[11px] text-[var(--muted-foreground)]",children:new Date(e.created_at).toLocaleString()}):null]},e.id))}):(0,t.jsx)("p",{className:"mt-2 text-sm text-[var(--muted-foreground)]",children:"No project note yet."})]})}),(0,t.jsx)(o,{form:l,repos:i,isEditingProject:!!n,isSubmitting:d,onFieldChange:u,onRepoChange:p,onAddRepo:m,onRemoveRepo:f}),c&&(0,t.jsx)("div",{className:"mt-6 p-4 rounded-xl bg-[var(--destructive-muted)] border border-[var(--destructive)]/20 text-sm text-[var(--destructive)]",children:c})]}),(0,t.jsxs)("div",{className:"px-4 py-4 sm:px-8 sm:py-6 border-t border-[var(--card-border)] flex items-center justify-end gap-3 flex-shrink-0",children:[(0,t.jsx)("button",{onClick:a,className:"px-6 py-2 rounded-xl border border-[var(--card-border)] hover:bg-[var(--muted)]/50 transition-colors text-sm font-medium",children:"Cancel"}),(0,t.jsx)("button",{onClick:s,disabled:d,className:"btn-primary px-8 py-2 shadow-lg shadow-[var(--primary)]/20 min-w-[120px]",children:d?(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"spinner w-3 h-3 border-2 border-white/20 border-t-white"}),"Saving..."]}):n?"Save Changes":"Create Project"})]})]})}):null},"useProjectFormState",0,function(){let[e,t]=(0,r.useState)(s),[a,o]=(0,r.useState)([n]),[l,i]=(0,r.useState)(!1),[d,c]=(0,r.useState)(null),u=(0,r.useCallback)((e,t,r)=>{o(a=>a.map((a,s)=>s===e?{...a,[t]:r}:a))},[]),p=(0,r.useCallback)(()=>{o(e=>[...e,{...n}])},[]),m=(0,r.useCallback)(e=>{o(t=>t.filter((t,r)=>r!==e))},[]),f=(0,r.useCallback)(()=>{t(s),o([n]),c(null)},[]),h=(0,r.useCallback)(e=>{t({name:e.name||"",description:e.description||""}),e.repos&&e.repos.length>0?o(e.repos.map(e=>({id:e.id,name:e.name||"",path:e.path||"",git_url:e.git_url||"",notes:e.notes||""}))):o([n]),c(null)},[]);return{form:e,setForm:t,repos:a,handleRepoChange:u,addRepo:p,removeRepo:m,resetForm:f,hydrateFromProject:h,isSubmitting:l,setIsSubmitting:i,formError:d,setFormError:c}}])},353662,e=>{"use strict";var t=e.i(810605);t.NODE_TIMEOUT_DEFAULT_MS,t.GRAPH_TIMEOUT_DEFAULT_MS;let r=new Set(["done","passed"]),a=new Set(["pending","running","awaiting_human","blocked"]);function s(e,t){return"root"===t.type?t.title?.trim()||"Task Objective":"work"===t.type||"function"===t.type?t.title?.trim()||e:"gate"===t.type?t.gateType.replace(/_gate$/u,"").replace(/_/gu," ").replace(/\b\w/gu,e=>e.toUpperCase()):"fork"===t.type?"Fork":"join"===t.type?`Join (${t.joinStrategy})`:"Conditional"}function n(e){for(let[t,r]of Object.entries(e.nodes))if("root"===r.type)return{id:t,node:r};return null}e.s(["buildGraphSummary",0,function(e){let t,o=n(e);return{mode:e.mode,graphVersion:e.graphVersion,nodeCount:Object.keys(e.nodes).length,progress:0===(t=Object.values(e.nodes).filter(e=>"skipped"!==e.status)).length?100:Math.round(t.filter(e=>r.has(e.status)).length/t.length*100),currentBlocker:function(e){let t=function(e){let t=Object.entries(e.nodes),r=t.filter(([,e])=>"gate"===e.type&&e.required),a=r.find(([,e])=>"failed"===e.status);if(a)return a[0];let s=r.find(([,e])=>"awaiting_human"===e.status);if(s)return s[0];let n=r.find(([,e])=>"pending"===e.status||"running"===e.status);if(n)return n[0];let o=t.find(([,e])=>"work"===e.type&&"blocked"===e.status);return o?.[0]??null}(e);if(!t)return null;let r=e.nodes[t];return r?{nodeId:t,label:s(t,r),status:r.status,required:"gate"===r.type&&r.required}:null}(e),derivedStatus:function(e){let t=Object.keys(e.nodes).length;if(0===t)return"INTAKE";if(1===t){let t=Object.values(e.nodes)[0];if("root"===t.type&&!t.graphCreated)return"INTAKE"}return Object.values(e.nodes).some(e=>a.has(e.status))?"PROGRESS":"DONE"}(e),hasRootNode:null!==o,rootNodeId:o?.id??null}},"findRootNode",0,n,"formatNodeStatusLabel",0,function(e){return e.replace(/_/gu," ")},"getNodeLabel",0,s,"toNodeStatusClass",0,function(e){return`node--${e}`}],353662)},865260,745649,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(174080);let s=[{value:"queued",label:"Queued",color:"var(--status-queued)",icon:"○"},{value:"in_progress",label:"In Progress",color:"var(--status-in-progress)",icon:"◑"},{value:"blocked",label:"Blocked",color:"var(--status-blocked)",icon:"⊘"},{value:"completed",label:"Done",color:"var(--status-completed)",icon:"●"},{value:"failed",label:"Failed",color:"var(--status-failed)",icon:"✕"}];function n({status:e,onStatusChange:o}){let[l,i]=(0,r.useState)(!1),[d,c]=(0,r.useState)(null),u=(0,r.useRef)(null),p=(0,r.useRef)(null),m=(0,r.useCallback)(()=>{if(!u.current)return;let e=u.current.getBoundingClientRect();c({top:e.bottom+4,left:e.left})},[]);(0,r.useEffect)(()=>{if(!l)return;m();let e=e=>{u.current&&!u.current.contains(e.target)&&p.current&&!p.current.contains(e.target)&&i(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[l,m]),(0,r.useEffect)(()=>{i(!1)},[e]);let f=s.find(t=>t.value===e)||s[0],h="completed"===e,x="in_progress"===e;return(0,t.jsxs)("div",{className:"relative flex-shrink-0",ref:u,children:[(0,t.jsxs)("button",{type:"button",onClick:e=>{e.stopPropagation(),o&&i(!l)},className:`w-4 h-4 rounded-full border-[1.5px] flex items-center justify-center transition-all
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,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,o]=(0,t.useState)(null),l=(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??[]),o(null)}catch(e){o(e instanceof Error?e:Error("Unknown error"))}finally{s(!1)}},[]);(0,t.useEffect)(()=>{l()},[l]);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:l,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 o=(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(),o=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...a,name:s,slug:n})});if(!o.ok)return null;let{project:l}=await o.json(),i=Array.isArray(t)?t:t?[t]:[];for(let e of i)await fetch(`/api/projects/${l.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={...l,repos:l.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}},[]),l=(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:o,updateProject:d,renameProject:l,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}}])},618566,(e,t,r)=>{t.exports=e.r(976562)},186710,e=>{"use strict";var t=e.i(843476),r=e.i(522016),a=e.i(271645),s=e.i(810605);function n(){let[e,r]=(0,a.useState)(null),[n,o]=(0,a.useState)("loading");(0,a.useEffect)(()=>{let e=!0;async function t(){try{let t=await fetch("/api/health");if(!e)return;if(!t.ok)return void o("error");let a=await t.json();r(a),o(a.connected?"connected":"disconnected")}catch{e&&o("error")}}t();let a=setInterval(t,s.UI_POLL_DB_HEALTH_MS);return()=>{e=!1,clearInterval(a)}},[]);let l={loading:"Checking database…",connected:`${e?.adapter??"db"} connected (${e?.latencyMs??"?"}ms)`,disconnected:`${e?.adapter??"db"} disconnected`,error:"Database unreachable"};return(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--muted-foreground)]",role:"status","aria-label":l[n],children:[(0,t.jsx)("span",{className:`w-2 h-2 rounded-full ${{loading:"bg-yellow-400",connected:"bg-green-500",disconnected:"bg-red-500",error:"bg-red-500"}[n]}`}),(0,t.jsx)("span",{className:"hidden sm:inline",children:l[n]})]})}function o({children:e,fullWidth:a=!1,noFooter:s=!1}){return(0,t.jsxs)("div",{className:"h-screen flex flex-col overflow-hidden",children:[(0,t.jsx)("nav",{className:"desktop-titlebar flex-shrink-0 border-b border-[var(--card-border)] bg-[var(--card-bg)]/80 backdrop-blur-lg z-30",children:(0,t.jsx)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:(0,t.jsxs)("div",{className:"flex items-center justify-between h-16",children:[(0,t.jsx)("div",{className:"flex items-center gap-8",children:(0,t.jsx)(r.default,{href:"/",className:"flex items-center gap-3 group",children:(0,t.jsxs)("svg",{width:"52",height:"31",viewBox:"0 0 64 38",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"transition-transform group-hover:scale-105",children:[(0,t.jsx)("rect",{width:"64",height:"38",rx:"8",fill:"black"}),(0,t.jsxs)("g",{stroke:"white",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M 14 27 C 17 16 19 10 20 8 C 21 12 23 20 25 27"}),(0,t.jsx)("path",{d:"M 16 20 C 19 19 21 21 23 20"}),(0,t.jsx)("path",{d:"M 40 13 C 35 10 30 13 30 19 C 30 25 34 28 38 27 C 40 26 40 22 40 20 L 36 20"}),(0,t.jsx)("path",{d:"M 46 11 C 48 16 51 22 54 27"}),(0,t.jsx)("path",{d:"M 54 11 C 52 16 49 22 46 27"})]})]})})}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(r.default,{href:"/",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Open Chat"}),(0,t.jsx)(r.default,{href:"/automations",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Automations"}),(0,t.jsx)(r.default,{href:"/skills",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Skills"}),(0,t.jsx)(r.default,{href:"/settings",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Settings"})]})]})})}),(0,t.jsx)("main",{className:`flex-1 min-h-0 flex flex-col ${a?"p-0":"p-4 sm:p-6 lg:p-8 overflow-y-auto"}`,children:e}),!s&&(0,t.jsx)("footer",{className:"flex-shrink-0 border-t border-[var(--card-border)] bg-[var(--card-bg)]/50 py-4",children:(0,t.jsxs)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 flex items-center justify-between text-xs text-[var(--muted-foreground)]",children:[(0,t.jsx)("span",{children:"AGX Board • Autonomous Agent Orchestration"}),(0,t.jsxs)("span",{className:"hidden sm:inline-flex items-center gap-3",children:[(0,t.jsx)(n,{}),(0,t.jsx)("span",{children:"Built with Next.js + Db"})]})]})})]})}e.s(["default",0,function(e){return(0,t.jsx)(a.Suspense,{fallback:(0,t.jsx)("div",{className:"h-screen flex items-center justify-center bg-[var(--background)]",children:(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"})}),children:(0,t.jsx)(o,{...e})})}],186710)},195057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={formatUrl:function(){return l},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)),o=/https?|ftp|gopher|file/;function l(e){let{auth:t,hostname:r}=e,a=e.protocol||"",s=e.pathname||"",l=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||o.test(a))&&!1!==d?(d="//"+(d||""),s&&"/"!==s[0]&&(s="/"+s)):d||(d=""),l&&"#"!==l[0]&&(l="#"+l),c&&"?"!==c[0]&&(c="?"+c),s=s.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${a}${d}${s}${c}${l}`}let i=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function d(e){return l(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 v}};for(var s in a)Object.defineProperty(r,s,{enumerable:!0,get:a[s]});let n=e.r(190809),o=e.r(843476),l=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 m=e.r(388540),f=e.r(91949),h=e.r(573668),x=e.r(509396);function g(t){var r,a;let s,n,g,[v,j]=(0,l.useOptimistic)(f.IDLE_LINK_STATUS),y=(0,l.useRef)(null),{href:k,as:N,children:w,prefetch:C=null,passHref:_,replace:S,shallow:E,scroll:T,onClick:P,onMouseEnter:O,onTouchStart:L,legacyBehavior:A=!1,onNavigate:$,transitionTypes:M,ref:R,unstable_dynamicOnHover:I,...U}=t;s=w,A&&("string"==typeof s||"number"==typeof s)&&(s=(0,o.jsx)("a",{children:s}));let D=l.default.useContext(d.AppRouterContext),F=!1!==C,B=!1!==C?null===(a=C)||"auto"===a?x.FetchStrategy.PPR:x.FetchStrategy.Full:x.FetchStrategy.PPR,q="string"==typeof(r=N||k)?r:(0,i.formatUrl)(r);if(A){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=l.default.Children.only(s)}let J=A?n&&"object"==typeof n&&n.ref:R,K=l.default.useCallback(e=>(null!==D&&(y.current=(0,f.mountLinkInstance)(e,q,D,B,F,j)),()=>{y.current&&((0,f.unmountLinkForCurrentNavigation)(y.current),y.current=null),(0,f.unmountPrefetchableInstance)(e)}),[F,q,D,B,j]),H={ref:(0,c.useMergedRef)(K,J),onClick(t){A||"function"!=typeof P||P(t),A&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(t),!D||t.defaultPrevented||function(t,r,a,s,n,o,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(),o){let e=!1;if(o({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:u}=e.r(699781);l.default.startTransition(()=>{u(r,s?"replace":"push",!1===n?m.ScrollBehavior.NoScroll:m.ScrollBehavior.Default,a.current,i)})}}(t,q,y,S,T,$,M)},onMouseEnter(e){A||"function"!=typeof O||O(e),A&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),D&&F&&(0,f.onNavigationIntent)(e.currentTarget,!0===I)},onTouchStart:function(e){A||"function"!=typeof L||L(e),A&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),D&&F&&(0,f.onNavigationIntent)(e.currentTarget,!0===I)}};return(0,u.isAbsoluteUrl)(q)?H.href=q:A&&!_&&("a"!==n.type||"href"in n.props)||(H.href=(0,p.addBasePath)(q)),g=A?l.default.cloneElement(n,H):(0,o.jsx)("a",{...U,...H,children:s}),(0,o.jsx)(b.Provider,{value:v,children:g})}e.r(284508);let b=(0,l.createContext)(f.IDLE_LINK_STATUS),v=()=>(0,l.useContext)(b);("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])},494999,e=>{"use strict";var t=e.i(843476),r=e.i(271645);e.s(["default",0,function({initialPath:e,onSelect:a,onCancel:s}){let[n,o]=(0,r.useState)(e||""),[l,i]=(0,r.useState)(null),[d,c]=(0,r.useState)(!1),[u,p]=(0,r.useState)(null),m=(0,r.useRef)(null),f=(0,r.useCallback)(async e=>{c(!0),p(null);try{let t=e?`?path=${encodeURIComponent(e)}`:"",r=await fetch(`/api/filesystem/browse${t}`),a=await r.json();if(!r.ok)return void p(a.error||"Failed to browse");i(a),o(a.current),m.current?.scrollTo(0,0)}catch{p("Failed to connect")}finally{c(!1)}},[]);return(0,r.useEffect)(()=>{f(e||"")},[]),(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] overflow-hidden shadow-lg",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-[var(--card-border)] bg-[var(--muted)]/30",children:[(0,t.jsx)("input",{value:n,onChange:e=>o(e.target.value),onKeyDown:e=>{"Enter"===e.key&&f(n)},className:"input text-xs flex-1 py-1",placeholder:"Enter path..."}),(0,t.jsx)("button",{type:"button",onClick:()=>f(n),className:"text-[10px] font-bold uppercase tracking-wider text-[var(--primary)] hover:underline px-2 py-1 shrink-0",children:"Go"})]}),(0,t.jsxs)("div",{ref:m,className:"max-h-48 overflow-y-auto",children:[d&&(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)] text-center",children:"Loading..."}),u&&(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--destructive)] text-center",children:u}),!d&&l&&(0,t.jsxs)("div",{className:"py-1",children:[l.parent&&(0,t.jsxs)("button",{type:"button",onClick:()=>f(l.parent),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-[var(--muted)]/50 transition-colors flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"↑"}),(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:".."})]}),0===l.dirs.length&&!l.parent&&(0,t.jsx)("div",{className:"px-3 py-3 text-xs text-[var(--muted-foreground)] text-center",children:"No subdirectories"}),l.dirs.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>f(e.path),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-[var(--muted)]/50 transition-colors flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"📁"}),(0,t.jsx)("span",{className:"truncate",children:e.name})]},e.path))]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-t border-[var(--card-border)] bg-[var(--muted)]/30",children:[(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)] truncate max-w-[60%]",children:l?.current||n}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:s,className:"text-xs font-medium text-[var(--muted-foreground)] hover:underline px-2 py-1",children:"Cancel"}),(0,t.jsx)("button",{type:"button",onClick:()=>a(l?.current||n),className:"text-xs font-bold text-[var(--primary)] hover:underline px-2 py-1",children:"Select"})]})]})]})}])},535208,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(494999);let s={name:"",description:""},n={name:"",path:"",notes:""};function o({form:e,repos:s,isEditingProject:n,isSubmitting:l,onFieldChange:i,onRepoChange:d,onAddRepo:c,onRemoveRepo:u}){let[p,m]=(0,r.useState)([]),[f,h]=(0,r.useState)(null),x=(0,r.useRef)(0);(0,r.useEffect)(()=>{n?m([]):m(s.map((e,t)=>t)),x.current=s.length},[n,s.length]),(0,r.useEffect)(()=>{if(!n){x.current=s.length;return}let e=x.current;m(t=>{let r=t.filter(e=>e<s.length);return s.length>e&&r.push(...Array.from({length:s.length-e},(t,r)=>e+r)),r}),x.current=s.length},[n,s.length]);let g=(0,r.useCallback)(e=>{m(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),b=(0,r.useCallback)(e=>!n||p.includes(e),[p,n]);return(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)("div",{className:"grid gap-4",children:(0,t.jsxs)("label",{className:"space-y-1.5 block",children:[(0,t.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Project Name"}),(0,t.jsx)("input",{value:e.name,onChange:e=>i("name",e.target.value),className:"input w-full",placeholder:"e.g. AGX Cloud",disabled:l})]})}),(0,t.jsxs)("label",{className:"space-y-1.5 block",children:[(0,t.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Description"}),(0,t.jsx)("textarea",{value:e.description,onChange:e=>i("description",e.target.value),className:"input w-full h-24 resize-none",placeholder:"What is this project about?",disabled:l})]}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-[var(--card-border)] pb-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-sm font-bold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Folders"}),(0,t.jsx)("p",{className:"text-[11px] text-[var(--muted-foreground)] mt-0.5",children:"Code repos, doc folders, design assets, config directories — any path your team needs access to."})]}),(0,t.jsx)("button",{type:"button",onClick:c,className:"text-xs font-semibold text-[var(--primary)] hover:underline flex-shrink-0",disabled:l,children:"+ Add Folder"})]}),(0,t.jsx)("div",{className:"space-y-4",children:s.map((e,r)=>(0,t.jsxs)("div",{className:"p-4 rounded-2xl border border-[var(--card-border)] bg-[var(--muted)]/20 space-y-3 relative group",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"text-xs font-bold text-[var(--foreground)] uppercase",children:["Folder #",r+1]}),n&&!b(r)?(0,t.jsxs)("div",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:[(0,t.jsx)("div",{children:e.name||"Unnamed folder"}),(0,t.jsx)("div",{className:"truncate",children:e.path||"No local path set"})]}):null]}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[n&&(0,t.jsx)("button",{type:"button",onClick:()=>g(r),className:"text-xs font-semibold text-[var(--primary)] hover:underline",disabled:l,children:b(r)?"Done":"Edit"}),s.length>1&&(0,t.jsx)("button",{type:"button",onClick:()=>u(r),className:"text-xs font-semibold text-[var(--destructive)] hover:underline",disabled:l,children:"Remove"})]})]}),b(r)?(0,t.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,t.jsx)("input",{value:e.name,onChange:e=>d(r,"name",e.target.value),placeholder:"Name (e.g. Frontend, API Docs, Design System)",className:"input text-sm",disabled:l}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{value:e.path,onChange:e=>d(r,"path",e.target.value),placeholder:"Local path to folder",className:"input text-sm flex-1",disabled:l}),(0,t.jsx)("button",{type:"button",onClick:async()=>{try{let e=await fetch("/api/filesystem/pick-folder",{method:"POST"}),t=await e.json();t.path&&d(r,"path",t.path)}catch{h(f===r?null:r)}},className:"px-3 py-2 rounded-xl border border-[var(--card-border)] bg-[var(--muted)]/30 hover:bg-[var(--muted)]/60 transition-colors text-xs font-semibold text-[var(--muted-foreground)] whitespace-nowrap",disabled:l,children:"Browse"})]}),f===r&&(0,t.jsx)("div",{className:"md:col-span-2",children:(0,t.jsx)(a.default,{initialPath:e.path||"",onSelect:e=>{d(r,"path",e),h(null)},onCancel:()=>h(null)})}),(0,t.jsx)("div",{className:"md:col-span-2",children:(0,t.jsx)("textarea",{value:e.notes,onChange:e=>d(r,"notes",e.target.value),placeholder:"Notes for this folder — e.g. coding conventions, deploy steps, ownership, doc standards...",className:"input text-sm w-full min-h-24 resize-y",disabled:l})})]}):null]},r))})]})]})}e.s(["createProjectPayload",0,function(e,t){let r=t.filter(e=>e.name.trim()&&e.path.trim()).map(e=>({...e.id?{id:e.id}:{},name:e.name.trim(),path:e.path.trim(),...e.git_url?.trim()?{git_url:e.git_url.trim()}:{},notes:e.notes.trim()||void 0}));return{name:e.name.trim(),description:e.description.trim()||void 0,repos:r.length?r:void 0}},"default",0,function({isOpen:e,onClose:a,onSubmit:s,editingProject:n,form:l,repos:i,isSubmitting:d,formError:c,onFieldChange:u,onRepoChange:p,onAddRepo:m,onRemoveRepo:f}){let[h,x]=(0,r.useState)([]);return((0,r.useEffect)(()=>{let e=!1;return async function(){if(!n)return x([]);try{let t=await fetch(`/api/knowledge-notes?scope=project&subjectId=${encodeURIComponent(n.id)}`),r=(t.ok?await t.json():{note:null}).note;e||x(r?.content?[{id:r.id,content:r.content,created_at:r.updatedAt??r.createdAt,source:r.sourceType}]:[])}catch{e||x([])}}(),()=>{e=!0}},[n]),e)?(0,t.jsx)("div",{className:"modal-backdrop p-2 sm:p-4 z-50 overflow-y-auto flex items-center justify-center",onClick:e=>e.target===e.currentTarget&&a(),children:(0,t.jsxs)("div",{className:"modal-content w-full max-w-4xl mx-2 sm:mx-auto bg-[var(--card-bg)] rounded-3xl border border-[var(--card-border)] shadow-2xl animate-scale-in flex flex-col max-h-[90vh]",children:[(0,t.jsxs)("div",{className:"px-4 py-4 sm:px-8 sm:py-6 border-b border-[var(--card-border)] flex items-center justify-between flex-shrink-0",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-xl font-bold",children:n?"Edit Project":"Create New Project"}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5",children:n?"Update your project settings and folders.":"Define a new project and connect folders."})]}),(0,t.jsx)("button",{onClick:a,className:"p-2 rounded-xl hover:bg-[var(--muted)]/50 transition-colors",children:(0,t.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto p-4 sm:p-8",children:[n&&(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsxs)("div",{className:"rounded-2xl border border-[var(--card-border)] bg-[var(--muted)]/20 p-4",children:[(0,t.jsx)("h3",{className:"text-sm font-bold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Living Project Note"}),h.length>0?(0,t.jsx)("div",{className:"mt-3 space-y-2",children:h.slice(0,5).map(e=>(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] px-3 py-2 text-sm text-[var(--foreground)]",children:[(0,t.jsx)("div",{children:e.content}),e.created_at?(0,t.jsx)("div",{className:"mt-1 text-[11px] text-[var(--muted-foreground)]",children:new Date(e.created_at).toLocaleString()}):null]},e.id))}):(0,t.jsx)("p",{className:"mt-2 text-sm text-[var(--muted-foreground)]",children:"No project note yet."})]})}),(0,t.jsx)(o,{form:l,repos:i,isEditingProject:!!n,isSubmitting:d,onFieldChange:u,onRepoChange:p,onAddRepo:m,onRemoveRepo:f}),c&&(0,t.jsx)("div",{className:"mt-6 p-4 rounded-xl bg-[var(--destructive-muted)] border border-[var(--destructive)]/20 text-sm text-[var(--destructive)]",children:c})]}),(0,t.jsxs)("div",{className:"px-4 py-4 sm:px-8 sm:py-6 border-t border-[var(--card-border)] flex items-center justify-end gap-3 flex-shrink-0",children:[(0,t.jsx)("button",{onClick:a,className:"px-6 py-2 rounded-xl border border-[var(--card-border)] hover:bg-[var(--muted)]/50 transition-colors text-sm font-medium",children:"Cancel"}),(0,t.jsx)("button",{onClick:s,disabled:d,className:"btn-primary px-8 py-2 shadow-lg shadow-[var(--primary)]/20 min-w-[120px]",children:d?(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"spinner w-3 h-3 border-2 border-white/20 border-t-white"}),"Saving..."]}):n?"Save Changes":"Create Project"})]})]})}):null},"useProjectFormState",0,function(){let[e,t]=(0,r.useState)(s),[a,o]=(0,r.useState)([n]),[l,i]=(0,r.useState)(!1),[d,c]=(0,r.useState)(null),u=(0,r.useCallback)((e,t,r)=>{o(a=>a.map((a,s)=>s===e?{...a,[t]:r}:a))},[]),p=(0,r.useCallback)(()=>{o(e=>[...e,{...n}])},[]),m=(0,r.useCallback)(e=>{o(t=>t.filter((t,r)=>r!==e))},[]),f=(0,r.useCallback)(()=>{t(s),o([n]),c(null)},[]),h=(0,r.useCallback)(e=>{t({name:e.name||"",description:e.description||""}),e.repos&&e.repos.length>0?o(e.repos.map(e=>({id:e.id,name:e.name||"",path:e.path||"",git_url:e.git_url||"",notes:e.notes||""}))):o([n]),c(null)},[]);return{form:e,setForm:t,repos:a,handleRepoChange:u,addRepo:p,removeRepo:m,resetForm:f,hydrateFromProject:h,isSubmitting:l,setIsSubmitting:i,formError:d,setFormError:c}}])},353662,e=>{"use strict";var t=e.i(810605);t.NODE_TIMEOUT_DEFAULT_MS,t.GRAPH_TIMEOUT_DEFAULT_MS;let r=new Set(["done","passed"]),a=new Set(["pending","running","awaiting_human","blocked"]);function s(e,t){return"root"===t.type?t.title?.trim()||"Task Objective":"work"===t.type||"function"===t.type?t.title?.trim()||e:"gate"===t.type?t.gateType.replace(/_gate$/u,"").replace(/_/gu," ").replace(/\b\w/gu,e=>e.toUpperCase()):"fork"===t.type?"Fork":"join"===t.type?`Join (${t.joinStrategy})`:"Conditional"}function n(e){for(let[t,r]of Object.entries(e.nodes))if("root"===r.type)return{id:t,node:r};return null}e.s(["buildGraphSummary",0,function(e){let t,o=n(e);return{mode:e.mode,graphVersion:e.graphVersion,nodeCount:Object.keys(e.nodes).length,progress:0===(t=Object.values(e.nodes).filter(e=>"skipped"!==e.status)).length?100:Math.round(t.filter(e=>r.has(e.status)).length/t.length*100),currentBlocker:function(e){let t=function(e){let t=Object.entries(e.nodes),r=t.filter(([,e])=>"gate"===e.type&&e.required),a=r.find(([,e])=>"failed"===e.status);if(a)return a[0];let s=r.find(([,e])=>"awaiting_human"===e.status);if(s)return s[0];let n=r.find(([,e])=>"pending"===e.status||"running"===e.status);if(n)return n[0];let o=t.find(([,e])=>"work"===e.type&&"blocked"===e.status);return o?.[0]??null}(e);if(!t)return null;let r=e.nodes[t];return r?{nodeId:t,label:s(t,r),status:r.status,required:"gate"===r.type&&r.required}:null}(e),derivedStatus:function(e){let t=Object.keys(e.nodes).length;if(0===t)return"INTAKE";if(1===t){let t=Object.values(e.nodes)[0];if("root"===t.type&&!t.graphCreated)return"INTAKE"}return Object.values(e.nodes).some(e=>a.has(e.status))?"PROGRESS":"DONE"}(e),hasRootNode:null!==o,rootNodeId:o?.id??null}},"findRootNode",0,n,"formatNodeStatusLabel",0,function(e){return e.replace(/_/gu," ")},"getNodeLabel",0,s,"toNodeStatusClass",0,function(e){return`node--${e}`}],353662)},865260,745649,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(174080);let s=[{value:"queued",label:"Queued",color:"var(--status-queued)",icon:"○"},{value:"in_progress",label:"In Progress",color:"var(--status-in-progress)",icon:"◑"},{value:"blocked",label:"Blocked",color:"var(--status-blocked)",icon:"⊘"},{value:"completed",label:"Done",color:"var(--status-completed)",icon:"●"},{value:"failed",label:"Failed",color:"var(--status-failed)",icon:"✕"}];function n({status:e,onStatusChange:o}){let[l,i]=(0,r.useState)(!1),[d,c]=(0,r.useState)(null),u=(0,r.useRef)(null),p=(0,r.useRef)(null),m=(0,r.useCallback)(()=>{if(!u.current)return;let e=u.current.getBoundingClientRect();c({top:e.bottom+4,left:e.left})},[]);(0,r.useEffect)(()=>{if(!l)return;m();let e=e=>{u.current&&!u.current.contains(e.target)&&p.current&&!p.current.contains(e.target)&&i(!1)};return document.addEventListener("pointerdown",e),()=>document.removeEventListener("pointerdown",e)},[l,m]),(0,r.useEffect)(()=>{i(!1)},[e]);let f=s.find(t=>t.value===e)||s[0],h="completed"===e,x="in_progress"===e;return(0,t.jsxs)("div",{className:"relative flex-shrink-0",ref:u,children:[(0,t.jsxs)("button",{type:"button",onClick:e=>{e.stopPropagation(),o&&i(!l)},className:`w-4 h-4 rounded-full border-[1.5px] flex items-center justify-center transition-all
|
|
2
2
|
hover:scale-110 focus-visible:outline-2 focus-visible:outline-[var(--ring)]
|
|
3
3
|
${o?"cursor-pointer":"cursor-default"}
|
|
4
4
|
${x?"animate-pulse":""}
|
|
5
5
|
`,style:{borderColor:f.color,backgroundColor:h?f.color:"transparent"},title:f.label,children:[h&&(0,t.jsx)("svg",{className:"w-2.5 h-2.5 text-white",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"failed"===e&&(0,t.jsx)("svg",{className:"w-2 h-2",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M3 3L9 9M9 3L3 9",stroke:f.color,strokeWidth:"1.5",strokeLinecap:"round"})}),x&&(0,t.jsx)("div",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:f.color}})]}),l&&d&&(0,a.createPortal)((0,t.jsx)("div",{ref:p,className:"fixed z-[9999] py-1 rounded-lg border shadow-lg min-w-[140px]",style:{top:d.top,left:d.left,backgroundColor:"var(--card-bg)",borderColor:"var(--card-border)"},children:s.map(r=>{let a=r.value===e;return(0,t.jsxs)("button",{type:"button",className:`w-full flex items-center gap-2 px-3 py-1.5 text-xs text-left transition-colors
|
|
6
6
|
hover:bg-[var(--item-hover-bg)]
|
|
7
7
|
${a?"font-semibold bg-[var(--item-hover-bg)]":""}
|
|
8
|
-
`,onClick:e=>{e.stopPropagation(),o?.(r.value),i(!1)},children:[(0,t.jsxs)("span",{className:"w-3 h-3 rounded-full border-[1.5px] flex items-center justify-center",style:{borderColor:r.color,backgroundColor:"completed"===r.value?r.color:"transparent"},children:["completed"===r.value&&(0,t.jsx)("svg",{className:"w-2 h-2 text-white",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"failed"===r.value&&(0,t.jsx)("svg",{className:"w-1.5 h-1.5",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M3 3L9 9M9 3L3 9",stroke:r.color,strokeWidth:"1.5",strokeLinecap:"round"})}),"in_progress"===r.value&&(0,t.jsx)("div",{className:"w-1 h-1 rounded-full",style:{backgroundColor:r.color}})]}),(0,t.jsx)("span",{style:{color:a?r.color:void 0},children:r.label}),a&&(0,t.jsx)("svg",{className:"w-3 h-3 ml-auto",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M2 6L5 9L10 3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]},r.value)})}),document.body)]})}var o=e.i(353662);let l=new Map,i=new Map;async function d(e){let t=l.get(e);if(void 0!==t)return t;let r=i.get(e);if(r)return r;let a=(async()=>{let t=await fetch(`/api/tasks/${e}/graph`,{method:"GET",cache:"no-store"});if(404===t.status)return l.set(e,null),null;let r=await t.json().catch(()=>({}));if(!t.ok)throw Error(r?.error||`Failed to fetch graph summary (${t.status})`);let a=r?.graph??null,s=a?(0,o.buildGraphSummary)(a):null;return l.set(e,s),s})();i.set(e,a);try{return await a}finally{i.delete(e)}}let c={queued:{className:"badge-status-queued",label:"Queued",dotColor:"bg-[var(--status-queued)]"},in_progress:{className:"badge-status-in_progress",label:"In Progress",dotColor:"bg-[var(--status-in-progress)]"},blocked:{className:"badge-status-blocked",label:"Blocked",dotColor:"bg-[var(--status-blocked)]"},completed:{className:"badge-status-completed",label:"Completed",dotColor:"bg-[var(--status-completed)]"},failed:{className:"badge-status-failed",label:"Failed",dotColor:"bg-[var(--status-failed)]"}},u={INTAKE:{icon:"📥",label:"Intake"},PROGRESS:{icon:"🔄",label:"Progress"},DONE:{icon:"✅",label:"Done"}};e.s(["default",0,function({task:e,onClick:a,compact:s=!1,onStatusChange:o,onApprovalModeChange:i,
|
|
8
|
+
`,onClick:e=>{e.stopPropagation(),o?.(r.value),i(!1)},children:[(0,t.jsxs)("span",{className:"w-3 h-3 rounded-full border-[1.5px] flex items-center justify-center",style:{borderColor:r.color,backgroundColor:"completed"===r.value?r.color:"transparent"},children:["completed"===r.value&&(0,t.jsx)("svg",{className:"w-2 h-2 text-white",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"failed"===r.value&&(0,t.jsx)("svg",{className:"w-1.5 h-1.5",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M3 3L9 9M9 3L3 9",stroke:r.color,strokeWidth:"1.5",strokeLinecap:"round"})}),"in_progress"===r.value&&(0,t.jsx)("div",{className:"w-1 h-1 rounded-full",style:{backgroundColor:r.color}})]}),(0,t.jsx)("span",{style:{color:a?r.color:void 0},children:r.label}),a&&(0,t.jsx)("svg",{className:"w-3 h-3 ml-auto",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M2 6L5 9L10 3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]},r.value)})}),document.body)]})}var o=e.i(353662);let l=new Map,i=new Map;async function d(e){let t=l.get(e);if(void 0!==t)return t;let r=i.get(e);if(r)return r;let a=(async()=>{let t=await fetch(`/api/tasks/${e}/graph`,{method:"GET",cache:"no-store"});if(404===t.status)return l.set(e,null),null;let r=await t.json().catch(()=>({}));if(!t.ok)throw Error(r?.error||`Failed to fetch graph summary (${t.status})`);let a=r?.graph??null,s=a?(0,o.buildGraphSummary)(a):null;return l.set(e,s),s})();i.set(e,a);try{return await a}finally{i.delete(e)}}let c={queued:{className:"badge-status-queued",label:"Queued",dotColor:"bg-[var(--status-queued)]"},in_progress:{className:"badge-status-in_progress",label:"In Progress",dotColor:"bg-[var(--status-in-progress)]"},blocked:{className:"badge-status-blocked",label:"Blocked",dotColor:"bg-[var(--status-blocked)]"},completed:{className:"badge-status-completed",label:"Completed",dotColor:"bg-[var(--status-completed)]"},failed:{className:"badge-status-failed",label:"Failed",dotColor:"bg-[var(--status-failed)]"}},u={INTAKE:{icon:"📥",label:"Intake"},PROGRESS:{icon:"🔄",label:"Progress"},DONE:{icon:"✅",label:"Done"}};e.s(["default",0,function({task:e,onClick:a,compact:s=!1,onStatusChange:o,onApprovalModeChange:i,onStageChange:p,stageOptions:m,currentStage:f,allTasks:h,relationship:x="none"}){c[e.status||"queued"],e.stage&&u[e.stage];let{summary:g,isLoading:b}=function(e){let t=(0,r.useMemo)(()=>e?l.get(e)??null:null,[e]),[a,s]=(0,r.useState)(t),[n,o]=(0,r.useState)(!!e&&null===t),[i,c]=(0,r.useState)(null),u=(0,r.useCallback)(async()=>{if(!e){s(null),c(null),o(!1);return}o(!0),c(null);try{let t=await d(e);s(t)}catch(e){c(e instanceof Error?e.message:"Failed to fetch graph summary"),s(null)}finally{o(!1)}},[e]);return(0,r.useEffect)(()=>{u()},[u]),{summary:a,isLoading:n,error:i,refresh:u}}("draft"!==e.id?e.id:null),v=f??e.stage,j=v&&m?m.indexOf(v):-1,y=j>0&&m?m[j-1]:null,k=j>=0&&m&&j<m.length-1?m[j+1]:null,N=e.depends_on?.length?e.depends_on.map(e=>{let t=h?.find(t=>t.id===e);return{id:e,title:t?.title||e.slice(0,8),done:t?.status==="completed"}}):null;return N&&N.every(e=>e.done),(0,t.jsxs)("div",{onClick:a,role:"button",tabIndex:0,onKeyDown:e=>"Enter"===e.key&&a?.(),className:`group relative flex flex-col gap-1.5 sm:gap-2 p-2 sm:p-3 surface-card cursor-grab active:cursor-grabbing
|
|
9
9
|
focus-visible:outline-2 focus-visible:outline-[var(--ring)] focus-visible:outline-offset-2
|
|
10
|
-
${"active"===
|
|
11
|
-
${"failed"===e.status&&"none"===
|
|
12
|
-
${"completed"===e.status&&"none"===
|
|
10
|
+
${"active"===x?"border-primary ring-2 ring-primary/20 z-40":"blocking"===x?"border-[var(--status-blocked)] bg-rose-50/30 dark:bg-rose-950/20 z-20":"dependent"===x?"border-[var(--status-in-progress)] bg-blue-50/30 dark:bg-blue-950/20 z-20":"dimmed"===x?"opacity-40 grayscale scale-[0.98]":""}
|
|
11
|
+
${"failed"===e.status&&"none"===x?"border-red-200 bg-red-50/30 dark:bg-red-950/20":""}
|
|
12
|
+
${"completed"===e.status&&"none"===x?"opacity-75 bg-[var(--secondary)]":""}
|
|
13
13
|
`,children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,t.jsx)("h3",{className:`text-sm font-medium text-[var(--foreground)] leading-snug line-clamp-2 sm:line-clamp-3
|
|
14
14
|
${"completed"===e.status?"text-[var(--muted-foreground)] line-through":""}
|
|
15
|
-
`,children:e.title||"Untitled Task"}),(0,t.jsx)("div",{className:"shrink-0 mt-0.5",children:(0,t.jsx)(n,{status:e.status||"queued",onStatusChange:o})})]}),(0,t.jsx)("div",{className:"flex items-center justify-between min-h-[16px]",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-[var(--muted-foreground)] flex-wrap",children:[void 0!==e.priority&&e.priority>0&&(0,t.jsxs)("span",{className:`px-1.5 py-0.5 rounded font-semibold bg-[var(--secondary)] ${0===e.priority?"text-[var(--primary)]":""}`,children:["P",e.priority]}),i&&("auto"===e.approval_mode?(0,t.jsx)("span",{className:"px-1.5 py-0.5 rounded font-semibold bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400 cursor-pointer select-none",title:"Auto-approve enabled. Click to switch to manual.",onClick:e=>{e.stopPropagation(),i("manual")},children:"AUTO"}):(0,t.jsx)("span",{className:"px-1.5 py-0.5 rounded font-semibold bg-gray-100 text-gray-400 dark:bg-gray-800 dark:text-gray-500 cursor-pointer select-none opacity-0 group-hover:opacity-100 transition-opacity",title:"Manual approval. Click to enable auto-approve.",onClick:e=>{e.stopPropagation(),i("auto")},children:"AUTO"})),"draft"!==e.id&&(0,t.jsx)("span",{className:"opacity-0 group-hover:opacity-100 transition-opacity font-mono text-[9px]",children:e.id.slice(0,5)})]})})]})}],865260);var p=e.i(247167);let m={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:p.default.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:p.default.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["useTasks",0,function(e={}){let t="1"===p.default.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH,a=e.project,s=e.status,n=e.orphan,o=e.realtime,[l,i]=(0,r.useState)([]),[d,c]=(0,r.useState)(!0),[u,f]=(0,r.useState)(null),[h,x]=(0,r.useState)(null),[g,b]=(0,r.useState)(null),v=(0,r.useCallback)(e=>{if(!e)return[];if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)));if("string"==typeof e){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)))}catch{}return Array.from(new Set(t.split(",").map(e=>e.trim()).filter(Boolean)))}return[]},[]),j=(0,r.useCallback)(e=>{let t=String(e||"").match(/^---\n([\s\S]*?)\n---\n?/);if(!t)return[];let r=t[1].split("\n").find(e=>e.trim().toLowerCase().startsWith("depends_on:"));return r?v(r.slice(r.indexOf(":")+1).trim()):[]},[v]),y=(0,r.useCallback)((e,t)=>{let r=v(e.depends_on);if(r.length>0)return{...e,depends_on:r};let a="string"==typeof e?.content?j(e.content):[];if(a.length>0)return{...e,depends_on:a};let s=v(t?.depends_on);return s.length>0?{...e,depends_on:s}:e},[j,v]),k=(0,r.useCallback)(async()=>{try{let e=new URLSearchParams;a&&e.set("project",a),s&&e.set("status",s),n&&e.set("orphan","1");let t=await fetch(`/api/tasks?${e.toString()}`);if(!t.ok)throw Error("Failed to fetch tasks");let r=await t.json(),o=Array.isArray(r.tasks)?r.tasks.map(e=>y(e)):[];i(o),f(null)}catch(e){f(e instanceof Error?e:Error("Unknown error"))}finally{c(!1)}},[a,s,n]);(0,r.useEffect)(()=>{k()},[k]),(0,r.useEffect)(()=>{if(!t||!o)return;let e=setInterval(k,3e3);return()=>clearInterval(e)},[t,o,k]),(0,r.useEffect)(()=>{if(t||!o)return;let e={auth:{getSession:async()=>({data:{session:{access_token:"local-token",refresh_token:"local-refresh",expires_in:3600,user:{id:m.id,email:m.email,user_metadata:{name:m.name,full_name:m.name}}}},error:null}),signInWithOAuth:async()=>({error:Error("Auth disabled in AGX Board local mode")}),signOut:async()=>({error:null}),onAuthStateChange:()=>({data:{subscription:{unsubscribe(){}}}})},channel:()=>({on(){return this},subscribe(){return this}}),removeChannel(){}},r=e.channel("tasks-changes").on("postgres_changes",{event:"*",schema:"public",table:"tasks"},e=>{"INSERT"===e.eventType?i(t=>{let r=y(e.new);return t.some(e=>e.id===r.id)?t:[r,...t]}):"UPDATE"===e.eventType?i(t=>t.map(t=>t.id===e.new.id?y(e.new,t):t)):"DELETE"===e.eventType&&i(t=>t.filter(t=>t.id!==e.old.id))}).subscribe();return()=>{e.removeChannel(r)}},[o,t]),(0,r.useEffect)(()=>{if(t||!o)return;let e=setInterval(k,3e3);return()=>clearInterval(e)},[o,t,k]);let
|
|
16
|
-
${s?"cursor-pointer hover:border-gray-300 dark:hover:border-gray-700 hover:shadow-md active:scale-[0.99]":""}`,children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-lg font-semibold",children:e.name}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] tracking-wide uppercase",children:e.slug})]}),(0,t.jsxs)("div",{className:"flex flex-col items-end gap-2",children:[(0,t.jsxs)("span",{className:"text-[11px] font-semibold text-[var(--muted-foreground)]",children:["Updated ",new Date(e.updated_at).toLocaleDateString()]}),(r||a||n)&&(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[n&&(0,t.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),n(e)},className:"text-[11px] font-semibold px-2 py-1 rounded-full border border-[var(--card-border)] bg-[var(--background)] hover:border-[var(--primary)] hover:text-[var(--primary)] transition-all",children:"Tasks"}),r&&(0,t.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),r(e)},className:"text-[11px] font-semibold px-2 py-1 rounded-full border border-[var(--card-border)] hover:border-[var(--primary)] hover:text-[var(--primary)] transition-all bg-[var(--background)]",children:"Edit"}),a&&(0,t.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),a(e)},className:"text-[11px] font-semibold px-2 py-1 rounded-full border border-[var(--card-border)] text-[var(--destructive)] hover:border-[var(--destructive)] transition-all bg-[var(--background)]",children:"Delete"})]})]})]}),e.description&&(0,t.jsx)("p",{className:"text-sm text-[var(--foreground)] line-clamp-2",children:e.description}),e.ci_cd_info&&(0,t.jsxs)("div",{className:"text-sm",children:[(0,t.jsx)("p",{className:"text-[var(--muted-foreground)] text-[12px] uppercase tracking-wide",children:"CI / CD"}),(0,t.jsx)("p",{className:"text-[14px] text-[var(--accent)] font-medium truncate",children:e.ci_cd_info})]}),e.metadata&&Object.keys(e.metadata).length>0&&(0,t.jsxs)("div",{className:"p-3 rounded-lg bg-[var(--muted)]/20 border border-dashed border-[var(--card-border)] space-y-1",children:[(0,t.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)]",children:"Metadata"}),(0,t.jsx)("div",{className:"space-y-1",children:Object.entries(e.metadata??{}).filter(([e])=>"undefined"!==e&&""!==e).map(([e,r])=>(0,t.jsxs)("div",{className:"text-[12px] text-[var(--muted-foreground)] flex justify-between",children:[(0,t.jsx)("span",{className:"font-semibold",children:e}),(0,t.jsx)("span",{className:"truncate text-right",children:"string"==typeof r?r:JSON.stringify(r)})]},e))})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-[12px] uppercase tracking-wider text-[var(--muted-foreground)]",children:"Folders"}),(0,t.jsx)("span",{className:"text-[12px] text-[var(--muted-foreground)]",children:l?`${e.repos.length} connected`:"Unlinked"})]}),l?(0,t.jsxs)("div",{className:"mt-3 space-y-2",children:[e.repos.slice(0,2).map(e=>(0,t.jsxs)("div",{className:"p-2 rounded-lg border border-[var(--card-border)] bg-[var(--background)] text-[11px]",children:[(0,t.jsx)("div",{className:"font-semibold truncate",children:e.name}),e.path&&(0,t.jsx)("p",{className:"text-[10px] text-[var(--muted-foreground)] truncate",children:e.path})]},e.id)),e.repos.length>2&&(0,t.jsxs)("p",{className:"text-[10px] text-center text-[var(--muted-foreground)]",children:["+ ",e.repos.length-2," more"]})]}):(0,t.jsx)("p",{className:"mt-3 text-[12px] text-[var(--muted-foreground)]",children:"No folders added yet."})]})]})}var l=e.i(535208),i=e.i(865260);let d={in_progress:{title:"In Progress",icon:"🔄",color:"var(--status-in-progress)",description:"Currently being worked on by the daemon"},blocked:{title:"Blocked",icon:"🚧",color:"var(--status-blocked)",description:"Waiting for input or resolution"},queued:{title:"Queued",icon:"📋",color:"var(--status-queued)",description:"Ready to be picked up"},completed:{title:"Completed",icon:"✅",color:"var(--status-completed)",description:"Successfully finished"}};function c({tasks:e,onSelectTask:r,onStatusChange:a}){if(0===e.length)return(0,t.jsxs)("div",{className:"text-center py-20 animate-fade-in",children:[(0,t.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-2xl bg-[var(--card-bg)] border border-[var(--card-border)] mb-4",children:(0,t.jsx)("span",{className:"text-3xl",children:"📋"})}),(0,t.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"No tasks yet"}),(0,t.jsx)("p",{className:"text-[var(--muted-foreground)] text-sm max-w-md mx-auto",children:"Create your first task to get started. Tasks will appear here organized by status."})]});let s=e.filter(e=>"in_progress"===e.status),n=e.filter(e=>"queued"===e.status),o=e.filter(e=>"blocked"===e.status),l=e.filter(e=>"completed"===e.status||"failed"===e.status),u=(e,s)=>{if(0===s.length)return null;let n=d[e];return(0,t.jsxs)("section",{className:"mb-8 animate-fade-in-up",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg",style:{backgroundColor:`color-mix(in srgb, ${n.color} 10%, transparent)`},children:[(0,t.jsx)("span",{className:"text-lg",children:n.icon}),(0,t.jsx)("h3",{className:"text-sm font-semibold",style:{color:n.color},children:n.title}),(0,t.jsx)("span",{className:"px-2 py-0.5 rounded-full text-xs font-medium",style:{backgroundColor:`color-mix(in srgb, ${n.color} 15%, transparent)`,color:n.color},children:s.length})]}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] hidden sm:block",children:n.description})]}),(0,t.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:s.map((e,s)=>(0,t.jsx)("div",{className:"animate-fade-in-up",style:{animationDelay:`${50*s}ms`},children:(0,t.jsx)(i.default,{task:e,onClick:()=>r?.(e),onStatusChange:a?t=>a(e.id,t):void 0})},e.id))})]})};return(0,t.jsxs)("div",{children:[u("in_progress",s),u("blocked",o),u("queued",n),u("completed",l)]})}var u=e.i(745649),p=e.i(524123);function m({project:e,onClose:r}){let{tasks:a,isLoading:s}=(0,u.useTasks)({project:e.slug});return(0,t.jsx)("div",{className:"modal-backdrop p-2 sm:p-4 z-50 overflow-y-auto flex items-center justify-center",onClick:e=>e.target===e.currentTarget&&r(),children:(0,t.jsxs)("div",{className:"modal-content w-full max-w-5xl mx-2 sm:mx-auto bg-[var(--card-bg)] rounded-3xl border border-[var(--card-border)] shadow-2xl animate-scale-in flex flex-col max-h-[90vh]",children:[(0,t.jsxs)("div",{className:"px-4 py-4 sm:px-8 sm:py-6 border-b border-[var(--card-border)] flex items-center justify-between flex-shrink-0",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("h2",{className:"text-xl font-bold",children:["Tasks for ",e.name]}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5",children:"Viewing all tasks associated with this project."})]}),(0,t.jsx)("button",{onClick:r,className:"p-2 rounded-xl hover:bg-[var(--muted)]/50 transition-colors",children:(0,t.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto p-8",children:s?(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center py-20",children:[(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full mb-4"}),(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading project tasks..."})]}):(0,t.jsx)(c,{tasks:a})}),(0,t.jsx)("div",{className:"px-8 py-6 border-t border-[var(--card-border)] flex justify-end flex-shrink-0",children:(0,t.jsx)("button",{onClick:r,className:"px-6 py-2 rounded-xl border border-[var(--card-border)] hover:bg-[var(--muted)]/50 transition-colors text-sm font-medium",children:"Close"})})]})})}e.s(["default",0,function(){let e=(0,s.useRouter)(),i=(0,s.useSearchParams)(),{projects:d,isLoading:c,error:u,refetch:f,createProject:h,updateProject:x,deleteProject:g}=(0,p.useProjects)(),b=(0,l.useProjectFormState)(),[v,j]=(0,r.useState)(null),[y,k]=(0,r.useState)(!1),[w,N]=(0,r.useState)(null),{form:C,repos:_,handleRepoChange:S,addRepo:E,removeRepo:T,resetForm:P,hydrateFromProject:O,isSubmitting:L,setIsSubmitting:A,formError:$,setFormError:R,setForm:M}=b,I=()=>{j(null),P(),k(!0)},U=e=>{j(e),O(e),k(!0)};(0,r.useEffect)(()=>{let e=i.get("edit");if(!e||0===d.length||y)return;let t=d.find(t=>t.id===e);t&&U(t)},[i,d,y]);let D=(0,r.useCallback)(t=>{t.slug&&e.push(`/projects/${t.slug}`)},[e]),F=(0,r.useCallback)(e=>{N(e)},[]),B=(0,r.useCallback)(()=>{N(null)},[]),q=()=>{P(),k(!1),j(null),i.get("edit")&&e.replace("/projects")},J=async()=>{if(!C.name.trim())return void R("Project name is required");let e=_.find(e=>e.name.trim()&&!e.path.trim());if(e)return void R(`Local path is required for folder "${e.name}"`);R(null),A(!0);let t=(0,l.createProjectPayload)(C,_);try{v?await x(v.id,t):await h(t),q()}catch(e){R(e instanceof Error?e.message:"Failed to save project")}finally{A(!1)}},K=async e=>{if(window.confirm(`Delete project "${e.name}"? This cannot be undone.`))try{await g(e.id)}catch(e){alert(e instanceof Error?e.message:"Failed to delete project")}};return(0,t.jsx)(n.default,{children:(0,t.jsxs)("div",{className:"max-w-7xl mx-auto w-full flex flex-col min-h-full",children:[(0,t.jsxs)("header",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4 py-8",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-3xl font-bold tracking-tight",children:"Projects"}),(0,t.jsx)("p",{className:"text-[var(--muted-foreground)] mt-1",children:"Manage your projects and their folder contexts."})]}),(0,t.jsxs)("div",{className:"flex gap-3",children:[(0,t.jsx)("button",{onClick:f,className:"px-4 py-2 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] hover:border-[var(--primary)] transition-all text-sm font-medium",children:"Refresh"}),(0,t.jsx)("button",{onClick:I,className:"btn-primary px-6 py-2 shadow-lg shadow-[var(--primary)]/20",children:"+ New Project"})]})]}),c?(0,t.jsx)("div",{className:"flex-1 flex items-center justify-center py-20",children:(0,t.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"}),(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)] animate-pulse",children:"Loading projects..."})]})}):0===d.length?(0,t.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center py-20 animate-fade-in",children:[(0,t.jsx)("div",{className:"w-24 h-24 rounded-3xl bg-[var(--card-bg)] border border-[var(--card-border)] flex items-center justify-center text-4xl mb-6 shadow-xl",children:"📂"}),(0,t.jsx)("h2",{className:"text-2xl font-bold mb-2",children:"You have no projects"}),(0,t.jsx)("p",{className:"text-[var(--muted-foreground)] text-center max-w-sm mb-8 leading-relaxed",children:"Create your first project to start organizing your tasks and connecting your folders."}),(0,t.jsx)("button",{onClick:I,className:"btn-primary px-8 py-3 text-lg shadow-xl shadow-[var(--primary)]/20",children:"Create a Project"})]}):(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 pb-20",children:[(0,t.jsxs)(a.default,{href:"/projects/orphans",className:"p-5 rounded-2xl border border-dashed border-[var(--card-border)] bg-[var(--card-bg)] shadow-sm space-y-4 transition-all hover:border-[var(--primary)] hover:shadow-md",children:[(0,t.jsx)("div",{className:"flex items-start justify-between gap-4",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-lg font-semibold",children:"Orphan Tasks"}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] tracking-wide uppercase",children:"Unassigned"})]})}),(0,t.jsx)("p",{className:"text-sm text-[var(--foreground)]",children:"Review tasks with empty project assignment and move them into the correct project."})]}),d.map(e=>(0,t.jsx)(o,{project:e,onEdit:U,onDelete:K,onManageTasks:F,onClick:D},e.id))]}),(0,t.jsx)(l.default,{isOpen:y,onClose:q,onSubmit:J,editingProject:v,form:C,repos:_,isSubmitting:L,formError:$,onFieldChange:(e,t)=>M(r=>({...r,[e]:t})),onRepoChange:S,onAddRepo:E,onRemoveRepo:T}),w&&(0,t.jsx)(m,{project:w,onClose:B})]})})}],936381)}]);
|
|
15
|
+
`,children:e.title||"Untitled Task"}),(0,t.jsx)("div",{className:"shrink-0 mt-0.5",children:(0,t.jsx)(n,{status:e.status||"queued",onStatusChange:o})})]}),(0,t.jsx)("div",{className:"flex items-center justify-between min-h-[16px]",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-[var(--muted-foreground)] flex-wrap",children:[void 0!==e.priority&&e.priority>0&&(0,t.jsxs)("span",{className:`px-1.5 py-0.5 rounded font-semibold bg-[var(--secondary)] ${0===e.priority?"text-[var(--primary)]":""}`,children:["P",e.priority]}),i&&("auto"===e.approval_mode?(0,t.jsx)("span",{className:"px-1.5 py-0.5 rounded font-semibold bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400 cursor-pointer select-none",title:"Auto-approve enabled. Click to switch to manual.",onClick:e=>{e.stopPropagation(),i("manual")},children:"AUTO"}):(0,t.jsx)("span",{className:"px-1.5 py-0.5 rounded font-semibold bg-gray-100 text-gray-400 dark:bg-gray-800 dark:text-gray-500 cursor-pointer select-none opacity-0 group-hover:opacity-100 transition-opacity",title:"Manual approval. Click to enable auto-approve.",onClick:e=>{e.stopPropagation(),i("auto")},children:"AUTO"})),"draft"!==e.id&&(0,t.jsx)("span",{className:"opacity-0 group-hover:opacity-100 transition-opacity font-mono text-[9px]",children:e.id.slice(0,5)})]})}),p&&v&&(y||k)?(0,t.jsxs)("div",{className:"flex items-center gap-2 pt-1",children:[y?(0,t.jsxs)("button",{type:"button",className:"rounded-full border border-[var(--border)] px-2.5 py-1 text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",onClick:e=>{e.stopPropagation(),p(y)},children:["Back to ",y]}):null,k?(0,t.jsxs)("button",{type:"button",className:"rounded-full border border-[var(--border)] px-2.5 py-1 text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",onClick:e=>{e.stopPropagation(),p(k)},children:["Move to ",k]}):null]}):null]})}],865260);var p=e.i(247167);let m={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:p.default.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:p.default.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["useTasks",0,function(e={}){let t="1"===p.default.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH,a=e.project,s=e.status,n=e.orphan,o=e.realtime,[l,i]=(0,r.useState)([]),[d,c]=(0,r.useState)(!0),[u,f]=(0,r.useState)(null),[h,x]=(0,r.useState)(null),[g,b]=(0,r.useState)(null),v=(0,r.useCallback)(e=>{if(!e)return[];if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)));if("string"==typeof e){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)))}catch{}return Array.from(new Set(t.split(",").map(e=>e.trim()).filter(Boolean)))}return[]},[]),j=(0,r.useCallback)(e=>{let t=String(e||"").match(/^---\n([\s\S]*?)\n---\n?/);if(!t)return[];let r=t[1].split("\n").find(e=>e.trim().toLowerCase().startsWith("depends_on:"));return r?v(r.slice(r.indexOf(":")+1).trim()):[]},[v]),y=(0,r.useCallback)((e,t)=>{let r=v(e.depends_on);if(r.length>0)return{...e,depends_on:r};let a="string"==typeof e?.content?j(e.content):[];if(a.length>0)return{...e,depends_on:a};let s=v(t?.depends_on);return s.length>0?{...e,depends_on:s}:e},[j,v]),k=(0,r.useCallback)(async()=>{try{let e=new URLSearchParams;a&&e.set("project",a),s&&e.set("status",s),n&&e.set("orphan","1");let t=await fetch(`/api/tasks?${e.toString()}`);if(!t.ok)throw Error("Failed to fetch tasks");let r=await t.json(),o=Array.isArray(r.tasks)?r.tasks.map(e=>y(e)):[];i(o),f(null)}catch(e){f(e instanceof Error?e:Error("Unknown error"))}finally{c(!1)}},[a,s,n]);(0,r.useEffect)(()=>{k()},[k]),(0,r.useEffect)(()=>{if(!t||!o)return;let e=setInterval(k,3e3);return()=>clearInterval(e)},[t,o,k]),(0,r.useEffect)(()=>{if(t||!o)return;let e={auth:{getSession:async()=>({data:{session:{access_token:"local-token",refresh_token:"local-refresh",expires_in:3600,user:{id:m.id,email:m.email,user_metadata:{name:m.name,full_name:m.name}}}},error:null}),signInWithOAuth:async()=>({error:Error("Auth disabled in AGX Board local mode")}),signOut:async()=>({error:null}),onAuthStateChange:()=>({data:{subscription:{unsubscribe(){}}}})},channel:()=>({on(){return this},subscribe(){return this}}),removeChannel(){}},r=e.channel("tasks-changes").on("postgres_changes",{event:"*",schema:"public",table:"tasks"},e=>{"INSERT"===e.eventType?i(t=>{let r=y(e.new);return t.some(e=>e.id===r.id)?t:[r,...t]}):"UPDATE"===e.eventType?i(t=>t.map(t=>t.id===e.new.id?y(e.new,t):t)):"DELETE"===e.eventType&&i(t=>t.filter(t=>t.id!==e.old.id))}).subscribe();return()=>{e.removeChannel(r)}},[o,t]),(0,r.useEffect)(()=>{if(t||!o)return;let e=setInterval(k,3e3);return()=>clearInterval(e)},[o,t,k]);let N=(0,r.useCallback)(async(e,t)=>{let r=await fetch("/api/tasks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:e,swarm_models:t})});if(!r.ok)throw Error((await r.json()).error||"Failed to create task");let{task:a}=await r.json(),s=y(a);return i(e=>e.some(e=>e.id===s.id)?e:[s,...e]),s},[e.realtime,y]),w=(0,r.useCallback)(async(e,t)=>{let r=await fetch(`/api/tasks/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok){let e=null;throw"function"==typeof r.json&&(e=await r.json().catch(e=>(console.warn("[useTasks] failed to parse response:",e),null))),Error(e?.error||e?.details||`Failed to update task (${r.status} ${r.statusText||"Error"})`)}let{task:a}=await r.json();return i(t=>t.map(t=>t.id===e?y({...t,...a},t):t)),y(a)},[e.realtime,y]),C=(0,r.useCallback)(async e=>{if(!(await fetch(`/api/tasks/${e}`,{method:"DELETE"})).ok)throw Error("Failed to delete task");i(t=>t.filter(t=>t.id!==e))},[e.realtime]),_=(0,r.useCallback)(async e=>{let t=await fetch("/api/queue/complete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to complete task stage");let{task:r}=await t.json();return i(t=>t.map(t=>t.id===e.taskId?y({...t,...r},t):t)),y(r)},[e.realtime,y]),S=(0,r.useCallback)(async e=>{x(e.taskId),b(null);try{let t=await fetch(`/api/orchestrator/tasks/${e.taskId}/cancel`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e.reason?{reason:e.reason}:{})});if(!t.ok){let e=await t.json().catch(()=>({})),r=e?.error||"Failed to cancel workflow";throw Error(r)}return t.json()}catch(t){let e=t instanceof Error?t:Error("Failed to cancel workflow");throw b(e),e}finally{x(null)}},[]),E=(0,r.useCallback)(async e=>{let t=await fetch(`/api/tasks/${e}`),r=await t.json().catch(e=>(console.warn("[useTasks] failed to parse response:",e),null));if(!t.ok)throw Error(r?.error||"Failed to fetch task details");return y(r?.task)},[y]),T=(0,r.useCallback)(async e=>{let t=await fetch("/api/tasks/assign-orphans",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({project_id:e})}),r=await t.json().catch(()=>({}));if(!t.ok)throw Error(r?.error||"Failed to assign orphan tasks");return await k(),{updatedCount:Number(r?.updatedCount||0),taskIds:Array.isArray(r?.taskIds)?r.taskIds:[]}},[k]);return{tasks:l,isLoading:d,error:u,cancellingTaskId:h,isCancelling:!!h,cancelError:g,refetch:k,createTask:N,updateTask:w,deleteTask:C,completeTaskStage:_,cancelWorkflow:S,fetchTask:E,assignOrphanTasksToProject:T}}],745649)},936381,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(522016),s=e.i(618566),n=e.i(186710);function o({project:e,onEdit:r,onDelete:a,onClick:s,onManageTasks:n}){let l=e.repos&&e.repos.length>0;return(0,t.jsxs)("div",{onClick:()=>s?.(e),className:`p-5 surface-card space-y-4
|
|
16
|
+
${s?"cursor-pointer hover:border-gray-300 dark:hover:border-gray-700 hover:shadow-md active:scale-[0.99]":""}`,children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-lg font-semibold",children:e.name}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] tracking-wide uppercase",children:e.slug})]}),(0,t.jsxs)("div",{className:"flex flex-col items-end gap-2",children:[(0,t.jsxs)("span",{className:"text-[11px] font-semibold text-[var(--muted-foreground)]",children:["Updated ",new Date(e.updated_at).toLocaleDateString()]}),(r||a||n)&&(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[n&&(0,t.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),n(e)},className:"text-[11px] font-semibold px-2 py-1 rounded-full border border-[var(--card-border)] bg-[var(--background)] hover:border-[var(--primary)] hover:text-[var(--primary)] transition-all",children:"Tasks"}),r&&(0,t.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),r(e)},className:"text-[11px] font-semibold px-2 py-1 rounded-full border border-[var(--card-border)] hover:border-[var(--primary)] hover:text-[var(--primary)] transition-all bg-[var(--background)]",children:"Edit"}),a&&(0,t.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),a(e)},className:"text-[11px] font-semibold px-2 py-1 rounded-full border border-[var(--card-border)] text-[var(--destructive)] hover:border-[var(--destructive)] transition-all bg-[var(--background)]",children:"Delete"})]})]})]}),e.description&&(0,t.jsx)("p",{className:"text-sm text-[var(--foreground)] line-clamp-2",children:e.description}),e.ci_cd_info&&(0,t.jsxs)("div",{className:"text-sm",children:[(0,t.jsx)("p",{className:"text-[var(--muted-foreground)] text-[12px] uppercase tracking-wide",children:"CI / CD"}),(0,t.jsx)("p",{className:"text-[14px] text-[var(--accent)] font-medium truncate",children:e.ci_cd_info})]}),e.metadata&&Object.keys(e.metadata).length>0&&(0,t.jsxs)("div",{className:"p-3 rounded-lg bg-[var(--muted)]/20 border border-dashed border-[var(--card-border)] space-y-1",children:[(0,t.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)]",children:"Metadata"}),(0,t.jsx)("div",{className:"space-y-1",children:Object.entries(e.metadata??{}).filter(([e])=>"undefined"!==e&&""!==e).map(([e,r])=>(0,t.jsxs)("div",{className:"text-[12px] text-[var(--muted-foreground)] flex justify-between",children:[(0,t.jsx)("span",{className:"font-semibold",children:e}),(0,t.jsx)("span",{className:"truncate text-right",children:"string"==typeof r?r:JSON.stringify(r)})]},e))})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-[12px] uppercase tracking-wider text-[var(--muted-foreground)]",children:"Folders"}),(0,t.jsx)("span",{className:"text-[12px] text-[var(--muted-foreground)]",children:l?`${e.repos.length} connected`:"Unlinked"})]}),l?(0,t.jsxs)("div",{className:"mt-3 space-y-2",children:[e.repos.slice(0,2).map(e=>(0,t.jsxs)("div",{className:"p-2 rounded-lg border border-[var(--card-border)] bg-[var(--background)] text-[11px]",children:[(0,t.jsx)("div",{className:"font-semibold truncate",children:e.name}),e.path&&(0,t.jsx)("p",{className:"text-[10px] text-[var(--muted-foreground)] truncate",children:e.path})]},e.id)),e.repos.length>2&&(0,t.jsxs)("p",{className:"text-[10px] text-center text-[var(--muted-foreground)]",children:["+ ",e.repos.length-2," more"]})]}):(0,t.jsx)("p",{className:"mt-3 text-[12px] text-[var(--muted-foreground)]",children:"No folders added yet."})]})]})}var l=e.i(535208),i=e.i(865260);let d={in_progress:{title:"In Progress",icon:"🔄",color:"var(--status-in-progress)",description:"Currently being worked on by the daemon"},blocked:{title:"Blocked",icon:"🚧",color:"var(--status-blocked)",description:"Waiting for input or resolution"},queued:{title:"Queued",icon:"📋",color:"var(--status-queued)",description:"Ready to be picked up"},completed:{title:"Completed",icon:"✅",color:"var(--status-completed)",description:"Successfully finished"}};function c({tasks:e,onSelectTask:r,onStatusChange:a}){if(0===e.length)return(0,t.jsxs)("div",{className:"text-center py-20 animate-fade-in",children:[(0,t.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-2xl bg-[var(--card-bg)] border border-[var(--card-border)] mb-4",children:(0,t.jsx)("span",{className:"text-3xl",children:"📋"})}),(0,t.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"No tasks yet"}),(0,t.jsx)("p",{className:"text-[var(--muted-foreground)] text-sm max-w-md mx-auto",children:"Create your first task to get started. Tasks will appear here organized by status."})]});let s=e.filter(e=>"in_progress"===e.status),n=e.filter(e=>"queued"===e.status),o=e.filter(e=>"blocked"===e.status),l=e.filter(e=>"completed"===e.status||"failed"===e.status),u=(e,s)=>{if(0===s.length)return null;let n=d[e];return(0,t.jsxs)("section",{className:"mb-8 animate-fade-in-up",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg",style:{backgroundColor:`color-mix(in srgb, ${n.color} 10%, transparent)`},children:[(0,t.jsx)("span",{className:"text-lg",children:n.icon}),(0,t.jsx)("h3",{className:"text-sm font-semibold",style:{color:n.color},children:n.title}),(0,t.jsx)("span",{className:"px-2 py-0.5 rounded-full text-xs font-medium",style:{backgroundColor:`color-mix(in srgb, ${n.color} 15%, transparent)`,color:n.color},children:s.length})]}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] hidden sm:block",children:n.description})]}),(0,t.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:s.map((e,s)=>(0,t.jsx)("div",{className:"animate-fade-in-up",style:{animationDelay:`${50*s}ms`},children:(0,t.jsx)(i.default,{task:e,onClick:()=>r?.(e),onStatusChange:a?t=>a(e.id,t):void 0})},e.id))})]})};return(0,t.jsxs)("div",{children:[u("in_progress",s),u("blocked",o),u("queued",n),u("completed",l)]})}var u=e.i(745649),p=e.i(524123);function m({project:e,onClose:r}){let{tasks:a,isLoading:s}=(0,u.useTasks)({project:e.slug});return(0,t.jsx)("div",{className:"modal-backdrop p-2 sm:p-4 z-50 overflow-y-auto flex items-center justify-center",onClick:e=>e.target===e.currentTarget&&r(),children:(0,t.jsxs)("div",{className:"modal-content w-full max-w-5xl mx-2 sm:mx-auto bg-[var(--card-bg)] rounded-3xl border border-[var(--card-border)] shadow-2xl animate-scale-in flex flex-col max-h-[90vh]",children:[(0,t.jsxs)("div",{className:"px-4 py-4 sm:px-8 sm:py-6 border-b border-[var(--card-border)] flex items-center justify-between flex-shrink-0",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("h2",{className:"text-xl font-bold",children:["Tasks for ",e.name]}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5",children:"Viewing all tasks associated with this project."})]}),(0,t.jsx)("button",{onClick:r,className:"p-2 rounded-xl hover:bg-[var(--muted)]/50 transition-colors",children:(0,t.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto p-8",children:s?(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center py-20",children:[(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full mb-4"}),(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading project tasks..."})]}):(0,t.jsx)(c,{tasks:a})}),(0,t.jsx)("div",{className:"px-8 py-6 border-t border-[var(--card-border)] flex justify-end flex-shrink-0",children:(0,t.jsx)("button",{onClick:r,className:"px-6 py-2 rounded-xl border border-[var(--card-border)] hover:bg-[var(--muted)]/50 transition-colors text-sm font-medium",children:"Close"})})]})})}e.s(["default",0,function(){let e=(0,s.useRouter)(),i=(0,s.useSearchParams)(),{projects:d,isLoading:c,error:u,refetch:f,createProject:h,updateProject:x,deleteProject:g}=(0,p.useProjects)(),b=(0,l.useProjectFormState)(),[v,j]=(0,r.useState)(null),[y,k]=(0,r.useState)(!1),[N,w]=(0,r.useState)(null),{form:C,repos:_,handleRepoChange:S,addRepo:E,removeRepo:T,resetForm:P,hydrateFromProject:O,isSubmitting:L,setIsSubmitting:A,formError:$,setFormError:M,setForm:R}=b,I=()=>{j(null),P(),k(!0)},U=e=>{j(e),O(e),k(!0)};(0,r.useEffect)(()=>{let e=i.get("edit");if(!e||0===d.length||y)return;let t=d.find(t=>t.id===e);t&&U(t)},[i,d,y]);let D=(0,r.useCallback)(t=>{t.slug&&e.push(`/projects/${t.slug}`)},[e]),F=(0,r.useCallback)(e=>{w(e)},[]),B=(0,r.useCallback)(()=>{w(null)},[]),q=()=>{P(),k(!1),j(null),i.get("edit")&&e.replace("/projects")},J=async()=>{if(!C.name.trim())return void M("Project name is required");let e=_.find(e=>e.name.trim()&&!e.path.trim());if(e)return void M(`Local path is required for folder "${e.name}"`);M(null),A(!0);let t=(0,l.createProjectPayload)(C,_);try{v?await x(v.id,t):await h(t),q()}catch(e){M(e instanceof Error?e.message:"Failed to save project")}finally{A(!1)}},K=async e=>{if(window.confirm(`Delete project "${e.name}"? This cannot be undone.`))try{await g(e.id)}catch(e){alert(e instanceof Error?e.message:"Failed to delete project")}};return(0,t.jsx)(n.default,{children:(0,t.jsxs)("div",{className:"max-w-7xl mx-auto w-full flex flex-col min-h-full",children:[(0,t.jsxs)("header",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4 py-8",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-3xl font-bold tracking-tight",children:"Projects"}),(0,t.jsx)("p",{className:"text-[var(--muted-foreground)] mt-1",children:"Manage your projects and their folder contexts."})]}),(0,t.jsxs)("div",{className:"flex gap-3",children:[(0,t.jsx)("button",{onClick:f,className:"px-4 py-2 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] hover:border-[var(--primary)] transition-all text-sm font-medium",children:"Refresh"}),(0,t.jsx)("button",{onClick:I,className:"btn-primary px-6 py-2 shadow-lg shadow-[var(--primary)]/20",children:"+ New Project"})]})]}),c?(0,t.jsx)("div",{className:"flex-1 flex items-center justify-center py-20",children:(0,t.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"}),(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)] animate-pulse",children:"Loading projects..."})]})}):0===d.length?(0,t.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center py-20 animate-fade-in",children:[(0,t.jsx)("div",{className:"w-24 h-24 rounded-3xl bg-[var(--card-bg)] border border-[var(--card-border)] flex items-center justify-center text-4xl mb-6 shadow-xl",children:"📂"}),(0,t.jsx)("h2",{className:"text-2xl font-bold mb-2",children:"You have no projects"}),(0,t.jsx)("p",{className:"text-[var(--muted-foreground)] text-center max-w-sm mb-8 leading-relaxed",children:"Create your first project to start organizing your tasks and connecting your folders."}),(0,t.jsx)("button",{onClick:I,className:"btn-primary px-8 py-3 text-lg shadow-xl shadow-[var(--primary)]/20",children:"Create a Project"})]}):(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 pb-20",children:[(0,t.jsxs)(a.default,{href:"/projects/orphans",className:"p-5 rounded-2xl border border-dashed border-[var(--card-border)] bg-[var(--card-bg)] shadow-sm space-y-4 transition-all hover:border-[var(--primary)] hover:shadow-md",children:[(0,t.jsx)("div",{className:"flex items-start justify-between gap-4",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-lg font-semibold",children:"Orphan Tasks"}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] tracking-wide uppercase",children:"Unassigned"})]})}),(0,t.jsx)("p",{className:"text-sm text-[var(--foreground)]",children:"Review tasks with empty project assignment and move them into the correct project."})]}),d.map(e=>(0,t.jsx)(o,{project:e,onEdit:U,onDelete:K,onManageTasks:F,onClick:D},e.id))]}),(0,t.jsx)(l.default,{isOpen:y,onClose:q,onSubmit:J,editingProject:v,form:C,repos:_,isSubmitting:L,formError:$,onFieldChange:(e,t)=>R(r=>({...r,[e]:t})),onRepoChange:S,onAddRepo:E,onRemoveRepo:T}),N&&(0,t.jsx)(m,{project:N,onClose:B})]})})}],936381)}]);
|
|
@@ -0,0 +1,5 @@
|
|
|
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),i=e.i(8707),n=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)(""),m=(0,r.useRef)(null),y=(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]),b=(0,r.useMemo)(()=>e.find(e=>e.id===s),[e,s]),j=(0,r.useCallback)(e=>{m.current&&!m.current.contains(e.target)&&f(!1)},[]);return(0,r.useEffect)(()=>(document.addEventListener("pointerdown",j),()=>document.removeEventListener("pointerdown",j)),[j]),(0,t.jsxs)("div",{ref:m,className:"relative",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>{u||(f(!d),h(""),setTimeout(()=>y.current?.focus(),0))},disabled:u,className:"input w-full flex items-center justify-between gap-2 text-left cursor-pointer",children:[b?(0,t.jsx)("span",{className:"truncate",children:b.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)(i.Search,{className:"w-4 h-4 text-[var(--muted-foreground)] flex-shrink-0"}),(0,t.jsx)("input",{ref:y,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)(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)})]})]})]})}])},44054,e=>{"use strict";var t=e.i(271645);let r="(pointer: coarse)",a="(hover: hover)",i="(max-width: 767px)",n="(min-width: 768px)";function o(){if("function"!=typeof window.matchMedia)return{isCoarsePointer:!1,canHover:!0,isPhone:!1,isTablet:!1,isTouchLayout:!1};let e=window.matchMedia(r).matches,t=window.matchMedia(a).matches,o=window.matchMedia(i).matches,s=!o&&window.matchMedia(n).matches,c=e||!t;return{isCoarsePointer:e,canHover:t,isPhone:c&&o,isTablet:c&&s,isTouchLayout:c}}e.s(["useInputCapabilities",0,function(){let[e,s]=(0,t.useState)(o);return(0,t.useEffect)(()=>{if("function"!=typeof window.matchMedia)return;let e=[window.matchMedia(r),window.matchMedia(a),window.matchMedia(i),window.matchMedia(n)],t=()=>{s(o())};return e.forEach(e=>e.addEventListener("change",t)),window.addEventListener("resize",t),t(),()=>{e.forEach(e=>e.removeEventListener("change",t)),window.removeEventListener("resize",t)}},[]),e}])},755838,(e,t,r)=>{"use strict";var a=e.r(271645),i="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,o=a.useEffect,s=a.useLayoutEffect,c=a.useDebugValue;function l(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!i(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=n({inst:{value:r,getSnapshot:t}}),i=a[0].inst,u=a[1];return s(function(){i.value=r,i.getSnapshot=t,l(i)&&u({inst:i})},[e,r,t]),o(function(){return l(i)&&u({inst:i}),e(function(){l(i)&&u({inst:i})})},[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),i=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},o=i.useSyncExternalStore,s=a.useRef,c=a.useEffect,l=a.useMemo,u=a.useDebugValue;r.useSyncExternalStoreWithSelector=function(e,t,r,a,i){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!==i&&f.hasValue){var t=f.value;if(i(t,e))return s=t}return s=e}if(t=s,n(o,e))return t;var r=a(e);return void 0!==i&&i(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,i]))[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)},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)},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 i={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:o,className:s="",children:c,iconNode:l,...u},d)=>(0,t.createElement)("svg",{ref:d,...i,width:a,height:a,stroke:e,strokeWidth:o?24*Number(n)/Number(a):n,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,i)=>{let o=(0,t.forwardRef)(({className:o,...s},c)=>(0,t.createElement)(n,{ref:c,iconNode:i,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)},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)},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,i]=(0,t.useState)(!1),[n,o]=(0,t.useState)(null),s=(0,t.useCallback)(async()=>{i(!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{i(!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:n,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 i=(await a.json()).project;return r(t=>t.map(t=>t.id===e?i:t)),i},[]),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,i]=(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,i]=await Promise.all([fetch(`/api/projects/${e.id}/agents`),fetch(`/api/projects/${e.id}/threads`)]);a.ok&&(t=(await a.json()).agents??[]),i.ok&&(r=((await i.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{i(!1)}},[]);(0,t.useEffect)(()=>{n()},[n]);let o=(0,t.useCallback)(async(e,t)=>{try{let a="string"==typeof e?{name:e}:e,i=a.name.trim(),n=(a.slug||i.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:i,slug:n})});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 i=(await a.json()).project;return r(t=>t.map(t=>t.id===e?{...t,...i,repos:i.repos??t.repos}:t)),i}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 i=((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:i}: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 i=((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:i}: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 i=((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:i}: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)},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 i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let n=e.r(190809)._(e.r(998183)),o=/https?|ftp|gopher|file/;function s(e){let{auth:t,hostname:r}=e,a=e.protocol||"",i=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(n.urlQueryToSearchParams(c)));let u=e.search||c&&`?${c}`||"";return a&&!a.endsWith(":")&&(a+=":"),e.slashes||(!a||o.test(a))&&!1!==l?(l="//"+(l||""),i&&"/"!==i[0]&&(i="/"+i)):l||(l=""),s&&"#"!==s[0]&&(s="#"+s),u&&"?"!==u[0]&&(u="?"+u),i=i.replace(/[?#]/g,encodeURIComponent),u=u.replace("#","%23"),`${a}${l}${i}${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 i}});let a=e.r(271645);function i(e,t){let r=(0,a.useRef)(null),i=(0,a.useRef)(null);return(0,a.useCallback)(a=>{if(null===a){let e=r.current;e&&(r.current=null,e());let t=i.current;t&&(i.current=null,t())}else e&&(r.current=n(e,a)),t&&(i.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),i=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,i.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 j}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let n=e.r(190809),o=e.r(843476),s=n._(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),m=e.r(573668),y=e.r(509396);function v(t){var r,a;let i,n,v,[j,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:P,scroll:O,onClick:A,onMouseEnter:E,onTouchStart:L,legacyBehavior:M=!1,onNavigate:I,transitionTypes:N,ref:$,unstable_dynamicOnHover:U,...W}=t;i=x,M&&("string"==typeof i||"number"==typeof i)&&(i=(0,o.jsx)("a",{children:i}));let R=s.default.useContext(l.AppRouterContext),D=!1!==S,H=!1!==S?null===(a=S)||"auto"===a?y.FetchStrategy.PPR:y.FetchStrategy.Full:y.FetchStrategy.PPR,V="string"==typeof(r=_||k)?r:(0,c.formatUrl)(r);if(M){if(i?.$$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=s.default.Children.only(i)}let F=M?n&&"object"==typeof n&&n.ref:$,B=s.default.useCallback(e=>(null!==R&&(w.current=(0,h.mountLinkInstance)(e,V,R,H,D,g)),()=>{w.current&&((0,h.unmountLinkForCurrentNavigation)(w.current),w.current=null),(0,h.unmountPrefetchableInstance)(e)}),[D,V,R,H,g]),J={ref:(0,u.useMergedRef)(B,F),onClick(t){M||"function"!=typeof A||A(t),M&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(t),!R||t.defaultPrevented||function(t,r,a,i,n,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,m.isLocalURL)(r)){i&&(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,i?"replace":"push",!1===n?p.ScrollBehavior.NoScroll:p.ScrollBehavior.Default,a.current,c)})}}(t,V,w,T,O,I,N)},onMouseEnter(e){M||"function"!=typeof E||E(e),M&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),R&&D&&(0,h.onNavigationIntent)(e.currentTarget,!0===U)},onTouchStart:function(e){M||"function"!=typeof L||L(e),M&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),R&&D&&(0,h.onNavigationIntent)(e.currentTarget,!0===U)}};return(0,d.isAbsoluteUrl)(V)?J.href=V:M&&!C&&("a"!==n.type||"href"in n.props)||(J.href=(0,f.addBasePath)(V)),v=M?s.default.cloneElement(n,J):(0,o.jsx)("a",{...W,...J,children:i}),(0,o.jsx)(b.Provider,{value:j,children:v})}e.r(284508);let b=(0,s.createContext)(h.IDLE_LINK_STATUS),j=()=>(0,s.useContext)(b);("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)},169433,e=>{"use strict";let t="agx:windowState",r={workspaceWidth:260,logPanelHeight:200,workspaceVisible:!0,logPanelVisible:!1,linearTicketPanelWidth:576,linearRunsPanelWidth:224,objectiveChatPanelWidth:440,objectiveListPanelWidth:320},a={lastThreadId:null,lastWorkspaceId:null},i={bounds:null,sidebar:r,scroll:a};function n(){return void 0!==window.localStorage}function o(){if(!n())return{...i};let e=window.localStorage.getItem(t);if(!e)return{...i};try{let t=JSON.parse(e);return{bounds:t.bounds||null,sidebar:{...r,...t.sidebar||{}},scroll:{...a,...t.scroll||{}}}}catch{return{...i}}}function s(){return o().sidebar}function c(e){let r=o();r.sidebar={...r.sidebar,...e};if(n())try{window.localStorage.setItem(t,JSON.stringify(r))}catch{}}e.s(["loadLinearRunsPanelWidth",0,function(){return s().linearRunsPanelWidth},"loadLinearTicketPanelWidth",0,function(){return s().linearTicketPanelWidth},"loadObjectiveChatPanelWidth",0,function(){return s().objectiveChatPanelWidth},"loadObjectiveListPanelWidth",0,function(){return s().objectiveListPanelWidth},"loadWorkspaceWidth",0,function(){return s().workspaceWidth},"persistLinearRunsPanelWidth",0,function(e){c({linearRunsPanelWidth:e})},"persistLinearTicketPanelWidth",0,function(e){c({linearTicketPanelWidth:e})},"persistObjectiveChatPanelWidth",0,function(e){c({objectiveChatPanelWidth:e})},"persistObjectiveListPanelWidth",0,function(e){c({objectiveListPanelWidth:e})},"persistWorkspaceWidth",0,function(e){c({workspaceWidth:e})}])},902572,e=>{"use strict";let t="project_objectives_workspace",r="project_goals_workspace",a=new Set(["on_track","at_risk","off_track","done"]);function i(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function n(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 m(e,t,r="objective"){let a=h(r),i=h(e,a),n=i,o=2;for(;t.has(n);){let e=`-${o}`,t=Math.max(1,32-e.length);n=`${i.slice(0,t)}${e}`,o+=1}return t.add(n),n}function y(e){var t;if(!i(e))return null;let r=d(e.updatedAt??e.createdAt),o=d(e.createdAt,r);return{id:l(e.id,n("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),progress:f(e.progress),status:"string"==typeof(t=e.status)&&a.has(t)?t:"on_track",createdAt:o,updatedAt:r}}function v(e){if(!i(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,n("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 b(e){if(!i(e))return null;let t=l(e.activityId);return t?{id:l(e.id,n("objective_thread_message")),activityId:t,author:l(e.author,"You"),body:l(e.body),createdAt:d(e.createdAt)}:null}function j(){return{objectives:[],activities:[],activityThreads:{}}}function g(e){let t;if(!i(e))return j();let r=Array.isArray(e.objectives)?e.objectives.map(e=>y(e)).filter(e=>null!==e):[],a=Array.isArray(e.activities)?e.activities.map(e=>v(e)).filter(e=>null!==e):[],n=i(e.activityThreads)?Object.fromEntries(Object.entries(e.activityThreads).map(([e,t])=>[e,s(Array.isArray(t)?t.map(e=>b(e)).filter(e=>null!==e):[])])):{};return{objectives:o((t=new Set,r.map(e=>{let r=m(e.key||e.title||e.id,t,e.id||e.title||"objective");return e.key===r?e:{...e,key:r}}))),activities:c(a),activityThreads:n}}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??n("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()??"",progress:f(e.progress??0),status:e.status??"on_track",createdAt:e.now,updatedAt:e.now}},"generateProjectObjectiveKey",0,function(e,t,r){return m(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(!i(e))return j();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 n=e[r];if(void 0!==n){if(!i(n))return j();let e=Array.isArray(n.goals)?n.goals.map(e=>(function(e){if(!i(e))return null;let t=l(e.target),r=[l(e.summary),t?`Measure: ${t}`:""].filter(Boolean).join("\n\n");return y({...e,summary:r})})(e)).filter(e=>null!==e):[],t=Array.isArray(n.manualActivities)?n.manualActivities.map(e=>v({...e,sourceLabel:"Update"})).filter(e=>null!==e):[],r=i(n.activityThreads)?Object.fromEntries(Object.entries(n.activityThreads).map(([e,t])=>[e,s(Array.isArray(t)?t.map(t=>b({...t,activityId:e})).filter(e=>null!==e):[])])):{};return{objectives:o(e),activities:c(t),activityThreads:r}}return j()},"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 i={...e};return delete i[r],i[t]=g(a),i}])},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"})})}])}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,906724,595807,e=>{"use strict";let t=(0,e.i(363732).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["default",0,t],595807),e.s(["Loader2",0,t],906724)},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)},575479,e=>{"use strict";let t=(0,e.i(363732).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);e.s(["FileText",0,t],575479)},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 l(e){return{...e,messages:e.messages.map(e=>({...e})),metadata:e.metadata?{...e.metadata}:void 0}}let n=new class{async saveThread(e){let t=Date.now(),r=a(),n=r.threads[e.id],d=n?.createdAt??e.createdAt??t,i=e.updatedAt??t,o={id:e.id,title:e.title,messages:e.messages.map(e=>({...e})),metadata:e.metadata,createdAt:d,updatedAt:i,status:e.status,outcomeNote:e.outcomeNote,projectId:e.projectId??e.teamId};return r.threads[e.id]=o,s(r),l(o)}async loadThread(e){let t=a().threads[e];return t?l(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),n=Math.max(0,e?.offset??0),d=e?.limit,i="number"==typeof d&&d>=0?s.slice(n,n+d):s.slice(n);return{total:t.length,threads:i.map(l)}}async deleteThread(e){let t=a();t.threads[e]&&(delete t.threads[e],s(t))}};e.s(["threadService",0,{listThreads:async()=>[...(await n.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 n.loadThread(t);if(r){let t={...r.metadata??{},...e?.metadata??{},archived:!1,archivedAt:null};return n.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 n.saveThread(r)},async deleteThread(e){let t=e.trim();if(!t)return;let r=await n.loadThread(t);if(!r)return;let a={...r.metadata??{},archived:!0,archivedAt:Date.now()};await n.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 n.loadThread(r);return s?(s.title?.trim()??"")===a?s:n.saveThread({id:s.id,title:a,messages:s.messages,metadata:s.metadata,createdAt:s.createdAt}):null},async updateThreadStatus(e,t){let r=await n.loadThread(e);return r?r.status===t?r:n.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 n.loadThread(e);return r?r.outcomeNote===t?r:n.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 n.loadThread(e);if(!a)return null;let s=a.messages.map(e=>e.id===t?{...e,threadStatus:r}:e);return n.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 n.loadThread(e);if(!a)return null;let s=a.messages.map(e=>e.id===t?{...e,outcomeNote:r}:e);return n.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 n.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:n.saveThread({id:r.id,title:a,messages:t,metadata:r.metadata,createdAt:r.createdAt})}}],434405)},997626,e=>{"use strict";let t=(0,e.i(363732).default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);e.s(["Zap",0,t],997626)},938201,e=>{"use strict";let t=(0,e.i(363732).default)("target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);e.s(["Target",0,t],938201)},99296,846279,e=>{"use strict";let t=(0,e.i(363732).default)("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]);e.s(["default",0,t],846279),e.s(["TerminalSquare",0,t],99296)},494999,e=>{"use strict";var t=e.i(843476),r=e.i(271645);e.s(["default",0,function({initialPath:e,onSelect:a,onCancel:s}){let[l,n]=(0,r.useState)(e||""),[d,i]=(0,r.useState)(null),[o,c]=(0,r.useState)(!1),[u,h]=(0,r.useState)(null),m=(0,r.useRef)(null),p=(0,r.useCallback)(async e=>{c(!0),h(null);try{let t=e?`?path=${encodeURIComponent(e)}`:"",r=await fetch(`/api/filesystem/browse${t}`),a=await r.json();if(!r.ok)return void h(a.error||"Failed to browse");i(a),n(a.current),m.current?.scrollTo(0,0)}catch{h("Failed to connect")}finally{c(!1)}},[]);return(0,r.useEffect)(()=>{p(e||"")},[]),(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] overflow-hidden shadow-lg",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-[var(--card-border)] bg-[var(--muted)]/30",children:[(0,t.jsx)("input",{value:l,onChange:e=>n(e.target.value),onKeyDown:e=>{"Enter"===e.key&&p(l)},className:"input text-xs flex-1 py-1",placeholder:"Enter path..."}),(0,t.jsx)("button",{type:"button",onClick:()=>p(l),className:"text-[10px] font-bold uppercase tracking-wider text-[var(--primary)] hover:underline px-2 py-1 shrink-0",children:"Go"})]}),(0,t.jsxs)("div",{ref:m,className:"max-h-48 overflow-y-auto",children:[o&&(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)] text-center",children:"Loading..."}),u&&(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--destructive)] text-center",children:u}),!o&&d&&(0,t.jsxs)("div",{className:"py-1",children:[d.parent&&(0,t.jsxs)("button",{type:"button",onClick:()=>p(d.parent),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-[var(--muted)]/50 transition-colors flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"↑"}),(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:".."})]}),0===d.dirs.length&&!d.parent&&(0,t.jsx)("div",{className:"px-3 py-3 text-xs text-[var(--muted-foreground)] text-center",children:"No subdirectories"}),d.dirs.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>p(e.path),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-[var(--muted)]/50 transition-colors flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"📁"}),(0,t.jsx)("span",{className:"truncate",children:e.name})]},e.path))]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-t border-[var(--card-border)] bg-[var(--muted)]/30",children:[(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)] truncate max-w-[60%]",children:d?.current||l}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:s,className:"text-xs font-medium text-[var(--muted-foreground)] hover:underline px-2 py-1",children:"Cancel"}),(0,t.jsx)("button",{type:"button",onClick:()=>a(d?.current||l),className:"text-xs font-bold text-[var(--primary)] hover:underline px-2 py-1",children:"Select"})]})]})]})}])},535208,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(494999);let s={name:"",description:""},l={name:"",path:"",notes:""};function n({form:e,repos:s,isEditingProject:l,isSubmitting:d,onFieldChange:i,onRepoChange:o,onAddRepo:c,onRemoveRepo:u}){let[h,m]=(0,r.useState)([]),[p,x]=(0,r.useState)(null),f=(0,r.useRef)(0);(0,r.useEffect)(()=>{l?m([]):m(s.map((e,t)=>t)),f.current=s.length},[l,s.length]),(0,r.useEffect)(()=>{if(!l){f.current=s.length;return}let e=f.current;m(t=>{let r=t.filter(e=>e<s.length);return s.length>e&&r.push(...Array.from({length:s.length-e},(t,r)=>e+r)),r}),f.current=s.length},[l,s.length]);let v=(0,r.useCallback)(e=>{m(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),g=(0,r.useCallback)(e=>!l||h.includes(e),[h,l]);return(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)("div",{className:"grid gap-4",children:(0,t.jsxs)("label",{className:"space-y-1.5 block",children:[(0,t.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Project Name"}),(0,t.jsx)("input",{value:e.name,onChange:e=>i("name",e.target.value),className:"input w-full",placeholder:"e.g. AGX Cloud",disabled:d})]})}),(0,t.jsxs)("label",{className:"space-y-1.5 block",children:[(0,t.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Description"}),(0,t.jsx)("textarea",{value:e.description,onChange:e=>i("description",e.target.value),className:"input w-full h-24 resize-none",placeholder:"What is this project about?",disabled:d})]}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-[var(--card-border)] pb-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-sm font-bold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Folders"}),(0,t.jsx)("p",{className:"text-[11px] text-[var(--muted-foreground)] mt-0.5",children:"Code repos, doc folders, design assets, config directories — any path your team needs access to."})]}),(0,t.jsx)("button",{type:"button",onClick:c,className:"text-xs font-semibold text-[var(--primary)] hover:underline flex-shrink-0",disabled:d,children:"+ Add Folder"})]}),(0,t.jsx)("div",{className:"space-y-4",children:s.map((e,r)=>(0,t.jsxs)("div",{className:"p-4 rounded-2xl border border-[var(--card-border)] bg-[var(--muted)]/20 space-y-3 relative group",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"text-xs font-bold text-[var(--foreground)] uppercase",children:["Folder #",r+1]}),l&&!g(r)?(0,t.jsxs)("div",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:[(0,t.jsx)("div",{children:e.name||"Unnamed folder"}),(0,t.jsx)("div",{className:"truncate",children:e.path||"No local path set"})]}):null]}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[l&&(0,t.jsx)("button",{type:"button",onClick:()=>v(r),className:"text-xs font-semibold text-[var(--primary)] hover:underline",disabled:d,children:g(r)?"Done":"Edit"}),s.length>1&&(0,t.jsx)("button",{type:"button",onClick:()=>u(r),className:"text-xs font-semibold text-[var(--destructive)] hover:underline",disabled:d,children:"Remove"})]})]}),g(r)?(0,t.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,t.jsx)("input",{value:e.name,onChange:e=>o(r,"name",e.target.value),placeholder:"Name (e.g. Frontend, API Docs, Design System)",className:"input text-sm",disabled:d}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{value:e.path,onChange:e=>o(r,"path",e.target.value),placeholder:"Local path to folder",className:"input text-sm flex-1",disabled:d}),(0,t.jsx)("button",{type:"button",onClick:async()=>{try{let e=await fetch("/api/filesystem/pick-folder",{method:"POST"}),t=await e.json();t.path&&o(r,"path",t.path)}catch{x(p===r?null:r)}},className:"px-3 py-2 rounded-xl border border-[var(--card-border)] bg-[var(--muted)]/30 hover:bg-[var(--muted)]/60 transition-colors text-xs font-semibold text-[var(--muted-foreground)] whitespace-nowrap",disabled:d,children:"Browse"})]}),p===r&&(0,t.jsx)("div",{className:"md:col-span-2",children:(0,t.jsx)(a.default,{initialPath:e.path||"",onSelect:e=>{o(r,"path",e),x(null)},onCancel:()=>x(null)})}),(0,t.jsx)("div",{className:"md:col-span-2",children:(0,t.jsx)("textarea",{value:e.notes,onChange:e=>o(r,"notes",e.target.value),placeholder:"Notes for this folder — e.g. coding conventions, deploy steps, ownership, doc standards...",className:"input text-sm w-full min-h-24 resize-y",disabled:d})})]}):null]},r))})]})]})}e.s(["createProjectPayload",0,function(e,t){let r=t.filter(e=>e.name.trim()&&e.path.trim()).map(e=>({...e.id?{id:e.id}:{},name:e.name.trim(),path:e.path.trim(),...e.git_url?.trim()?{git_url:e.git_url.trim()}:{},notes:e.notes.trim()||void 0}));return{name:e.name.trim(),description:e.description.trim()||void 0,repos:r.length?r:void 0}},"default",0,function({isOpen:e,onClose:a,onSubmit:s,editingProject:l,form:d,repos:i,isSubmitting:o,formError:c,onFieldChange:u,onRepoChange:h,onAddRepo:m,onRemoveRepo:p}){let[x,f]=(0,r.useState)([]);return((0,r.useEffect)(()=>{let e=!1;return async function(){if(!l)return f([]);try{let t=await fetch(`/api/knowledge-notes?scope=project&subjectId=${encodeURIComponent(l.id)}`),r=(t.ok?await t.json():{note:null}).note;e||f(r?.content?[{id:r.id,content:r.content,created_at:r.updatedAt??r.createdAt,source:r.sourceType}]:[])}catch{e||f([])}}(),()=>{e=!0}},[l]),e)?(0,t.jsx)("div",{className:"modal-backdrop p-2 sm:p-4 z-50 overflow-y-auto flex items-center justify-center",onClick:e=>e.target===e.currentTarget&&a(),children:(0,t.jsxs)("div",{className:"modal-content w-full max-w-4xl mx-2 sm:mx-auto bg-[var(--card-bg)] rounded-3xl border border-[var(--card-border)] shadow-2xl animate-scale-in flex flex-col max-h-[90vh]",children:[(0,t.jsxs)("div",{className:"px-4 py-4 sm:px-8 sm:py-6 border-b border-[var(--card-border)] flex items-center justify-between flex-shrink-0",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-xl font-bold",children:l?"Edit Project":"Create New Project"}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5",children:l?"Update your project settings and folders.":"Define a new project and connect folders."})]}),(0,t.jsx)("button",{onClick:a,className:"p-2 rounded-xl hover:bg-[var(--muted)]/50 transition-colors",children:(0,t.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto p-4 sm:p-8",children:[l&&(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsxs)("div",{className:"rounded-2xl border border-[var(--card-border)] bg-[var(--muted)]/20 p-4",children:[(0,t.jsx)("h3",{className:"text-sm font-bold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Living Project Note"}),x.length>0?(0,t.jsx)("div",{className:"mt-3 space-y-2",children:x.slice(0,5).map(e=>(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] px-3 py-2 text-sm text-[var(--foreground)]",children:[(0,t.jsx)("div",{children:e.content}),e.created_at?(0,t.jsx)("div",{className:"mt-1 text-[11px] text-[var(--muted-foreground)]",children:new Date(e.created_at).toLocaleString()}):null]},e.id))}):(0,t.jsx)("p",{className:"mt-2 text-sm text-[var(--muted-foreground)]",children:"No project note yet."})]})}),(0,t.jsx)(n,{form:d,repos:i,isEditingProject:!!l,isSubmitting:o,onFieldChange:u,onRepoChange:h,onAddRepo:m,onRemoveRepo:p}),c&&(0,t.jsx)("div",{className:"mt-6 p-4 rounded-xl bg-[var(--destructive-muted)] border border-[var(--destructive)]/20 text-sm text-[var(--destructive)]",children:c})]}),(0,t.jsxs)("div",{className:"px-4 py-4 sm:px-8 sm:py-6 border-t border-[var(--card-border)] flex items-center justify-end gap-3 flex-shrink-0",children:[(0,t.jsx)("button",{onClick:a,className:"px-6 py-2 rounded-xl border border-[var(--card-border)] hover:bg-[var(--muted)]/50 transition-colors text-sm font-medium",children:"Cancel"}),(0,t.jsx)("button",{onClick:s,disabled:o,className:"btn-primary px-8 py-2 shadow-lg shadow-[var(--primary)]/20 min-w-[120px]",children:o?(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"spinner w-3 h-3 border-2 border-white/20 border-t-white"}),"Saving..."]}):l?"Save Changes":"Create Project"})]})]})}):null},"useProjectFormState",0,function(){let[e,t]=(0,r.useState)(s),[a,n]=(0,r.useState)([l]),[d,i]=(0,r.useState)(!1),[o,c]=(0,r.useState)(null),u=(0,r.useCallback)((e,t,r)=>{n(a=>a.map((a,s)=>s===e?{...a,[t]:r}:a))},[]),h=(0,r.useCallback)(()=>{n(e=>[...e,{...l}])},[]),m=(0,r.useCallback)(e=>{n(t=>t.filter((t,r)=>r!==e))},[]),p=(0,r.useCallback)(()=>{t(s),n([l]),c(null)},[]),x=(0,r.useCallback)(e=>{t({name:e.name||"",description:e.description||""}),e.repos&&e.repos.length>0?n(e.repos.map(e=>({id:e.id,name:e.name||"",path:e.path||"",git_url:e.git_url||"",notes:e.notes||""}))):n([l]),c(null)},[]);return{form:e,setForm:t,repos:a,handleRepoChange:u,addRepo:h,removeRepo:m,resetForm:p,hydrateFromProject:x,isSubmitting:d,setIsSubmitting:i,formError:o,setFormError:c}}])},257587,e=>{"use strict";let t=(0,e.i(363732).default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Settings",0,t],257587)},51297,e=>{"use strict";let t=(0,e.i(363732).default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);e.s(["Bot",0,t],51297)},169729,e=>{"use strict";let t=(0,e.i(363732).default)("panel-left-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]]);e.s(["PanelLeftOpen",0,t],169729)},468947,e=>{"use strict";let t=(0,e.i(363732).default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);e.s(["Sun",0,t],468947)},721571,e=>{"use strict";let t=(0,e.i(363732).default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]);e.s(["Moon",0,t],721571)},524780,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(522016),s=e.i(810605);e.s(["StatusIndicator",0,function(){let[e,l]=(0,r.useState)("unknown"),[n,d]=(0,r.useState)([]),[i,o]=(0,r.useState)(""),[c,u]=(0,r.useState)(!1),h=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/status");if(!e.ok)return void l("unknown");let t=await e.json();l("ok"===t.status?"ok":"degraded");let r=t.services.filter(e=>"agx-chat"===e.name||"agx-cloud"===e.name);d(r),o(new Date().toLocaleTimeString())}catch{l("unknown"),d([])}},[]);return(0,r.useEffect)(()=>{h();let e=setInterval(h,s.UI_POLL_SYSTEM_STATUS_MS);return()=>clearInterval(e)},[h]),(0,t.jsxs)("div",{className:"relative",onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),children:[(0,t.jsx)(a.default,{href:"/status",className:"inline-flex h-8 w-8 items-center justify-center rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] transition-all hover:bg-[var(--app-shell-subtle)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)]",title:"System status",children:(0,t.jsx)("span",{className:`h-2.5 w-2.5 rounded-full ${"ok"===e?"bg-emerald-400":"degraded"===e?"bg-amber-400":"bg-[var(--app-shell-muted)]"} ${"degraded"===e?"animate-pulse":""}`})}),c&&(0,t.jsxs)("div",{className:"absolute top-full right-0 z-50 mt-1.5 w-52 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] p-3 text-xs shadow-lg",children:[n.length>0?(0,t.jsx)("ul",{className:"space-y-1.5",children:n.map(e=>(0,t.jsxs)("li",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:e.name}),(0,t.jsx)("span",{className:"ok"===e.status?"text-emerald-600":"error"===e.status?"text-red-500":"text-[var(--muted-foreground)]",children:"ok"===e.status?"Healthy":"error"===e.status?e.detail||"Error":"Unavailable"})]},e.name))}):(0,t.jsx)("p",{className:"text-[var(--app-shell-soft-text)]",children:"Checking..."}),i&&(0,t.jsxs)("p",{className:"mt-2 border-t border-[var(--app-shell-border)] pt-1.5 text-[var(--app-shell-soft-text)]",children:["Last check: ",i]})]})]})}])},969039,e=>{"use strict";var t=e.i(271645),r=e.i(618566),a=e.i(434405);let s="agx-chat:last-thread";function l(){return void 0!==window.localStorage}function n(){if(l())try{window.localStorage.removeItem(s)}catch{}}let d=e=>[...e].sort((e,t)=>t.createdAt-e.createdAt);e.s(["useThreadState",0,function(e){let i=(0,r.useSearchParams)(),o=(e||i.get("thread")||"").trim()||null,c=(0,t.useRef)(!0),[u,h]=(0,t.useState)([]),[m,p]=(0,t.useState)(null),[x,f]=(0,t.useState)(!0),[v,g]=(0,t.useState)(!0),[b,y]=(0,t.useState)(!1),[j,w]=(0,t.useState)(null),[k,N]=(0,t.useState)(null),S=(0,t.useRef)(!1),C=(0,t.useCallback)(e=>{p(e)},[]);(0,t.useEffect)(()=>(c.current=!0,()=>{c.current=!1}),[]),(0,t.useEffect)(()=>{let e=!1;return(async()=>{try{var t;let r,i=await a.threadService.listThreads();if(o&&!i.some(e=>e.id===o)){let e=await a.threadService.createThread({id:o});i=d([...i.filter(t=>t.id!==e.id),e])}if(e||!c.current)return;h(i);let u=o||function(){if(!l())return null;try{return window.localStorage.getItem(s)}catch{return null}}(),{threadId:m,shouldClearSavedId:x,restoredFromStorage:f}=(t=i,r=t[0]?.id??null,u?t.some(e=>e.id===u)?{threadId:u,shouldClearSavedId:!1,restoredFromStorage:!0}:{threadId:r,shouldClearSavedId:!0,restoredFromStorage:!1}:{threadId:r,shouldClearSavedId:!1,restoredFromStorage:!1});x&&n(),S.current||(S.current=!0),f&&m?C(m):m?p(e=>e??m):p(null)}catch(e){console.error("Failed to load threads",e)}finally{c.current&&(f(!1),g(!1))}})(),()=>{e=!0}},[o,C]),(0,t.useEffect)(()=>{if(S.current)if(m){if(l())try{window.localStorage.setItem(s,m)}catch{}}else n()},[m]);let T=(0,t.useCallback)(async e=>{y(!0);try{let t=await a.threadService.createThread(e);if(!c.current)return t;return h(e=>d([...e.filter(e=>e.id!==t.id),t])),p(t.id),t}catch(e){throw console.error("Failed to create thread",e),e}finally{c.current&&y(!1)}},[]),A=(0,t.useCallback)(async e=>{if(e){w(e);try{if(await a.threadService.deleteThread(e),!c.current)return;let t=[];h(r=>t=d(r.filter(t=>t.id!==e))),p(r=>r===e?t[0]?.id??null:r)}catch(e){throw console.error("Failed to delete thread",e),e}finally{c.current&&w(null)}}},[]),M=(0,t.useCallback)(async(e,t)=>{let r=e.trim(),s=t.trim();if(r&&s){N(r);try{let e=await a.threadService.renameThread(r,s);if(!e||!c.current)return;h(t=>d(t.map(t=>t.id===e.id?e:t)))}catch(e){throw console.error("Failed to rename thread",e),e}finally{c.current&&N(e=>e===r?null:e)}}},[]),I=(0,t.useCallback)(async(e,t)=>{if(e)try{let r=await a.threadService.saveThreadMessages(e,t);if(!r||!c.current)return;h(e=>d(e.map(e=>e.id===r.id?r:e)))}catch(e){console.error("Failed to update thread messages",e)}},[]),E=(0,t.useCallback)(async(e,t)=>{if(e)try{let r=await a.threadService.updateThreadStatus(e,t);if(!r||!c.current)return;h(e=>d(e.map(e=>e.id===r.id?r:e)))}catch(e){console.error("Failed to update thread status",e)}},[]),P=(0,t.useCallback)(async(e,t)=>{if(e)try{let r=await a.threadService.updateThreadOutcomeNote(e,t);if(!r||!c.current)return;h(e=>d(e.map(e=>e.id===r.id?r:e)))}catch(e){console.error("Failed to update thread outcome note",e)}},[]),L=(0,t.useCallback)(async(e,t,r)=>{if(e&&t)try{let s=await a.threadService.updateMessageThreadStatus(e,t,r);if(!s||!c.current)return;h(e=>d(e.map(e=>e.id===s.id?s:e)))}catch(e){console.error("Failed to update message thread status",e)}},[]),F=(0,t.useCallback)(async(e,t,r)=>{if(e&&t)try{let s=await a.threadService.updateMessageOutcomeNote(e,t,r);if(!s||!c.current)return;h(e=>d(e.map(e=>e.id===s.id?s:e)))}catch(e){console.error("Failed to update message outcome note",e)}},[]),D=null!==m&&j===m;return{threads:u,activeThreadId:m,selectThread:C,createThread:T,deleteThread:A,isLoading:x,isRestoringActiveThread:v,isCreating:b,deletingThreadId:j,renamingThreadId:k,isDeletingActiveThread:D,updateThreadMessages:I,renameThread:M,updateThreadStatus:E,updateThreadOutcomeNote:P,updateMessageThreadStatus:L,updateMessageOutcomeNote:F}}],969039)},563975,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(618566),s=e.i(429056),l=e.i(169729),n=e.i(468947),d=e.i(721571),i=e.i(524780),o=e.i(51297);let c=(0,e.i(363732).default)("clock-3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6h4",key:"135r8i"}]]);var u=e.i(575479),h=e.i(906724),m=e.i(597628),p=e.i(8707),x=e.i(938201),f=e.i(572665),v=e.i(797167),g=e.i(44054);function b({projectId:e}){let{isTouchLayout:s}=(0,g.useInputCapabilities)(),l=(0,a.useRouter)(),n=(0,a.usePathname)(),d=(0,r.useRef)(null),i=(0,r.useRef)(null),[y,j]=(0,r.useState)(""),[w,k]=(0,r.useState)([]),[N,S]=(0,r.useState)(0),[C,T]=(0,r.useState)(!1),[A,M]=(0,r.useState)(null),[I,E]=(0,r.useState)(!1),[P,L]=(0,r.useState)(0),[F,D]=(0,r.useState)(new Set),R=y.trim(),$=(0,r.useMemo)(()=>w.map(e=>({...e,visibleResults:F.has(e.id)?e.results:e.results.slice(0,3),hiddenCount:Math.max(0,e.results.length-3)})),[F,w]),U=(0,r.useMemo)(()=>$.flatMap(e=>e.visibleResults),[$]),_=(0,r.useMemo)(()=>U.map(e=>`${e.kind}:${e.id}`),[U]),z=(0,r.useCallback)(()=>{j(""),k([]),S(0),M(null),T(!1),L(0)},[]),O=(0,r.useCallback)(e=>{z(),E(!1),l.push(e.href)},[z,l]);(0,r.useEffect)(()=>{z(),E(!1),D(new Set)},[z,n]),(0,r.useEffect)(()=>{let e=e=>{d.current?.contains(e.target)||E(!1)};return window.addEventListener("pointerdown",e),()=>window.removeEventListener("pointerdown",e)},[]),(0,r.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&"k"===e.key.toLowerCase()&&(e.preventDefault(),i.current?.focus(),i.current?.select())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),(0,r.useEffect)(()=>{I&&L(0)},[I,w]),(0,r.useEffect)(()=>{if(!R||R.length<2){k([]),S(0),M(null),T(!1),D(new Set);return}let t=!1;T(!0);let r=window.setTimeout(()=>{(async()=>{try{let r=new URLSearchParams({q:R}),a=await fetch(`/api/projects/${encodeURIComponent(e)}/search?${r.toString()}`,{cache:"no-store"}),s=await a.json().catch(()=>null);if(t)return;if(!a.ok){let e=s&&"object"==typeof s&&"error"in s?String(s.error):"Search failed";k([]),S(0),M(e);return}k(Array.isArray(s.sections)?s.sections:[]),S("number"==typeof s.total?s.total:0),M(null),D(new Set)}catch(e){if(t)return;console.error("Project search failed",e),k([]),S(0),M("Search failed")}finally{t||T(!1)}})()},220);return()=>{t=!0,window.clearTimeout(r)}},[R,e]);let W=I&&(R.length>0||C||null!==A),q=U.length>0?U[Math.max(0,Math.min(P,U.length-1))]:null,K=(0,r.useCallback)(e=>{D(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},[]);return(0,t.jsxs)("div",{ref:d,className:"relative w-full max-w-xl",children:[(0,t.jsxs)("div",{className:"group/search relative",children:[(0,t.jsx)(p.Search,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--app-shell-soft-text)] transition-colors group-focus-within/search:text-[var(--primary)]",strokeWidth:1.8}),(0,t.jsx)("input",{ref:i,type:"text",value:y,onFocus:()=>E(!0),onChange:e=>{j(e.target.value),E(!0)},onKeyDown:e=>{if("ArrowDown"===e.key&&U.length>0){e.preventDefault(),L(e=>(e+1)%U.length);return}if("ArrowUp"===e.key&&U.length>0){e.preventDefault(),L(e=>(e-1+U.length)%U.length);return}if("Enter"===e.key&&q){e.preventDefault(),O(q);return}"Escape"===e.key&&(R?z():(E(!1),i.current?.blur()))},placeholder:"Search objectives, tickets, tasks, teams, agents, and chat…",className:"h-8 w-full rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] pl-9 pr-16 text-xs font-medium text-[var(--foreground)] outline-none placeholder:text-[var(--app-shell-soft-text)] transition-all hover:border-[var(--app-shell-border-strong)] focus:border-[var(--primary)] focus:ring-2 focus:ring-[var(--ring)]"}),R?(0,t.jsxs)("div",{className:"absolute right-2 top-1/2 flex -translate-y-1/2 items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:C?"…":N}),(0,t.jsx)("button",{type:"button",onClick:()=>{z(),i.current?.focus()},className:"inline-flex h-5 w-5 items-center justify-center rounded-md text-[var(--app-shell-soft-text)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]","aria-label":"Clear search",children:(0,t.jsx)(v.X,{className:"h-3.5 w-3.5"})})]}):s?null:(0,t.jsx)("kbd",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-1.5 py-0.5 font-sans text-[10px] font-bold text-[var(--app-shell-soft-text)]",children:"⌘K"})]}),W?(0,t.jsx)("div",{className:"absolute left-0 right-0 top-[calc(100%+0.5rem)] z-50 overflow-hidden rounded-2xl border border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] shadow-2xl shadow-black/20",children:(0,t.jsxs)("div",{className:"max-h-[28rem] overflow-y-auto p-2",children:[R.length<2?(0,t.jsx)("div",{className:"rounded-xl px-3 py-4 text-sm text-[var(--muted-foreground)]",children:"Keep typing to search across project entities."}):null,C?(0,t.jsxs)("div",{className:"flex items-center gap-2 rounded-xl px-3 py-4 text-sm text-[var(--muted-foreground)]",children:[(0,t.jsx)(h.Loader2,{className:"h-4 w-4 animate-spin"}),"Searching this project…"]}):null,!C&&A?(0,t.jsx)("div",{className:"rounded-xl px-3 py-4 text-sm text-rose-500",children:A}):null,C||A||!(R.length>=2)||0!==w.length?null:(0,t.jsx)("div",{className:"rounded-xl px-3 py-4 text-sm text-[var(--muted-foreground)]",children:"No matches in this project."}),!C&&!A&&$.map(e=>(0,t.jsxs)("div",{className:"mb-2 last:mb-0",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3 px-3 pb-1 pt-2",children:[(0,t.jsxs)("div",{className:"text-[10px] font-semibold uppercase tracking-[0.16em] text-[var(--app-shell-soft-text)]",children:[e.label,(0,t.jsx)("span",{className:"ml-1.5 text-[9px] text-[var(--muted-foreground)]",children:e.results.length})]}),e.results.length>3?(0,t.jsx)("button",{type:"button",onMouseDown:e=>e.preventDefault(),onClick:()=>K(e.id),className:"text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:F.has(e.id)?"Collapse":`Show ${e.hiddenCount} more`}):null]}),(0,t.jsx)("div",{className:"space-y-1",children:e.visibleResults.map(e=>{let r,a,s=`${e.kind}:${e.id}`,l=_.findIndex(e=>e===s),n=l===P,d=function(e){switch(e){case"objective":return x.Target;case"linear_issue":return u.FileText;case"scheduled_task":return c;case"team":return f.Users;case"agent":return o.Bot;case"chat_thread":case"chat_message":return m.MessageSquare;default:return p.Search}}(e.kind);return(0,t.jsxs)("button",{type:"button",onMouseDown:e=>e.preventDefault(),onMouseEnter:()=>L(l),onClick:()=>O(e),className:`flex w-full items-start gap-3 rounded-xl px-3 py-2.5 text-left transition-colors ${n?"bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,t.jsx)("span",{className:"mt-0.5 inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)]",children:(0,t.jsx)(d,{className:"h-3.5 w-3.5",strokeWidth:1.75})}),(0,t.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,t.jsx)("span",{className:"truncate text-sm font-medium",children:e.title}),(0,t.jsx)("span",{className:"shrink-0 rounded-full bg-[var(--app-shell-subtle)] px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-[var(--app-shell-soft-text)]",children:e.label})]}),e.context?(0,t.jsx)("span",{className:"mt-0.5 block truncate text-xs text-[var(--muted-foreground)]",children:e.context}):null,e.description?(0,t.jsx)("span",{className:"mt-1 block text-xs leading-5 text-[var(--muted-foreground)]",children:(r=e.description.split(/(<\/?mark>)/g),a=!1,r.map((e,r)=>"<mark>"===e?(a=!0,null):"</mark>"===e?(a=!1,null):e?a?(0,t.jsx)("mark",{className:"rounded bg-amber-200/80 px-0.5 text-inherit",children:e},`mark-${r}`):(0,t.jsx)("span",{children:e},`text-${r}`):null))}):null]})]},s)})})]},e.id))]})}):null]})}var y=e.i(749410),j=e.i(524123),w=e.i(969039),k=e.i(481248),N=e.i(169433);let S="agx-theme";function C({children:e,params:o}){let{slug:c}=(0,r.use)(o),{isTouchLayout:u}=(0,g.useInputCapabilities)(),h=(0,a.useRouter)(),m=(0,a.usePathname)(),{projects:p,isLoading:x,createProject:f,updateProject:v,deleteProject:T,addAgent:A,removeAgent:M}=(0,j.useProjectsWithAgents)(),{threads:I,isLoading:E,isCreating:P,deletingThreadId:L,renamingThreadId:F,isRestoringActiveThread:D,createThread:R,renameThread:$,deleteThread:U}=(0,w.useThreadState)(),[_,z]=(0,r.useState)([]),[O,W]=(0,r.useState)(!1),[q,K]=(0,r.useState)(368),[B,H]=(0,r.useState)(()=>{let e=window.localStorage.getItem(S);return"dark"===e||"light"===e?e:document.documentElement.classList.contains("dark")?"dark":"light"});(0,r.useEffect)(()=>{W((0,k.loadWorkspaceSidebarVisible)()),K((0,N.loadWorkspaceWidth)()||368)},[]),(0,r.useEffect)(()=>{let e="dark"===B;document.documentElement.classList.toggle("dark",e),document.documentElement.style.colorScheme=B,window.localStorage.setItem(S,B)},[B]),(0,r.useEffect)(()=>{fetch("/api/participants").then(e=>e.json()).then(e=>z(Array.isArray(e)?e:[])).catch(()=>z([]))},[]);let V=(0,r.useMemo)(()=>p.find(e=>e.slug===c)??null,[p,c]),J=(0,r.useMemo)(()=>{let e=m.match(/\/projects\/[^/]+\/thread\/([^/]+)/);return e?.[1]?decodeURIComponent(e[1]):V?.thread_ids[0]??null},[V?.thread_ids,m]),G=(0,r.useMemo)(()=>m.includes("/linear")?"linear":m.includes("/automations")?"automations":m.includes("/thread/")?"thread":m.includes("/knowledge")?"knowledge":m.includes("/objectives")?"objectives":m.includes("/teams")?"teams":m.includes("/folders")?"folders":m.includes("/env-vars")?"env-vars":m.includes("/terminal")?"terminal":m.includes("/settings")?"settings":"home",[m]),X=()=>{let e=!O;W(e),(0,k.persistWorkspaceSidebarVisible)(e)},Y=(0,r.useCallback)(e=>{K(e),(0,N.persistWorkspaceWidth)(e)},[]);return x?(0,t.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"})}):V?(0,t.jsxs)("div",{className:"flex h-dvh min-h-0 overflow-hidden bg-[var(--background)]",children:[(0,t.jsx)(y.WorkspaceSidebar,{threads:I,participants:_,activeThreadId:J,isLoading:E,isRestoringActiveThread:D,isCreating:P,deletingThreadId:L,renamingThreadId:F,onSelectThread:e=>h.push(`/projects/${c}/thread/${encodeURIComponent(e)}`),onCreateThread:R,onRenameThread:$,onDeleteThread:U,visible:O,onToggle:X,width:q,onWidthChange:Y,projects:p,onCreateProject:f,onUpdateProject:v,onDeleteProject:T,onAddAgentToProject:A,onRemoveAgentFromProject:M,activeProjectId:V.id,activeProjectView:G,onUpdateParticipant:async e=>{let t=await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error("Failed to update agent");let r=await t.json();z(e=>e.map(e=>e.id===r.id?r:e))},onSelectProject:e=>{let t=p.find(t=>t.id===e);t&&h.push(`/projects/${t.slug}`)}}),(0,t.jsxs)("div",{className:"flex-1 min-h-0 flex flex-col min-w-0 h-full overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center px-4 py-2 border-b border-[var(--app-shell-border)] bg-[var(--background)] shrink-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0 flex-shrink-0",children:[!O&&(0,t.jsx)("button",{type:"button",onClick:X,className:"inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--muted-foreground)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",title:"Show sidebar","aria-label":"Show sidebar",children:(0,t.jsx)(l.PanelLeftOpen,{className:"h-4 w-4"})}),m!==`/projects/${c}`&&(0,t.jsx)("button",{type:"button",onClick:()=>h.back(),className:"p-1 -ml-1 rounded-lg text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] transition-colors",children:(0,t.jsx)(s.ArrowLeft,{className:"w-4 h-4"})}),(0,t.jsx)("button",{type:"button",onClick:()=>h.push(`/projects/${c}`),className:`text-xs transition-colors ${"home"===G?"text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`,children:V.name}),"home"!==G&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"\\"}),(0,t.jsx)("button",{type:"button",onClick:()=>h.push(`/projects/${c}/${"thread"===G?"":G}`),className:"text-xs text-[var(--foreground)] hover:text-[var(--muted-foreground)] transition-colors",children:{objectives:"Objectives",teams:"Teams",folders:"Folders","env-vars":"Environment Variables",linear:"Linear",automations:"Scheduled Tasks",thread:"Chat",knowledge:"Knowledge",terminal:"Terminal",settings:"Settings"}[G]??G}),(0,t.jsx)("span",{id:"topbar-breadcrumb",className:"contents"})]})]}),(0,t.jsx)("div",{className:"flex-1 flex justify-center min-w-0 px-4",children:(0,t.jsx)(b,{projectId:V.id})}),(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[(0,t.jsx)(i.StatusIndicator,{}),(0,t.jsx)("button",{type:"button",onClick:()=>H(e=>"dark"===e?"light":"dark"),"aria-label":"dark"===B?"Switch to light theme":"Switch to dark theme",title:"dark"===B?"Switch to light theme":"Switch to dark theme",className:`inline-flex items-center justify-center rounded-lg text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] ${u?"h-9 w-9":"h-7 w-7"}`,children:"dark"===B?(0,t.jsx)(n.Sun,{className:u?"h-4 w-4":"h-3.5 w-3.5"}):(0,t.jsx)(d.Moon,{className:u?"h-4 w-4":"h-3.5 w-3.5"})})]})]}),e]})]}):(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center h-full",children:[(0,t.jsx)("h2",{className:"text-xl font-bold mb-2",children:"Project Not Found"}),(0,t.jsxs)("p",{className:"text-[var(--muted-foreground)] mb-4",children:["The project “",c,"” does not exist or you do not have access to it."]}),(0,t.jsx)("button",{onClick:()=>h.push("/projects"),className:"px-4 py-2 bg-[var(--primary)] text-white rounded-lg hover:bg-[var(--primary-dark)] transition-colors",children:"Back to Projects"})]})}e.s(["default",0,function({children:e,params:a}){return(0,t.jsx)(r.Suspense,{fallback:(0,t.jsx)("div",{className:"flex h-full items-center justify-center text-sm text-[var(--muted-foreground)]",children:"Loading project…"}),children:(0,t.jsx)(C,{params:a,children:e})})}],563975)}]);
|