@mndrk/agx 2.0.55 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/apps/local/.next/app-path-routes-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/required-server-files.json +5 -0
- package/cloud-runtime/standalone/apps/local/.next/routes-manifest.json +23 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js +4 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/create/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/create/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/daemon/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/daemon/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/analyze/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/analyze/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/context/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/options/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/scripted/route.js +5 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/scripted/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route/build-manifest.json +9 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route.js +13 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route_client-reference-manifest.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/[noteId]/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/[noteId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/route.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js +19 -8
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/validate/route.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/validate/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route/build-manifest.json +9 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js +28 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route_client-reference-manifest.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/route.js +9 -5
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/cancel/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/cancel/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/runs/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/runs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js +16 -15
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/route.js +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/pause/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js +9 -8
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/terminal/sessions/[id]/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/terminal/sessions/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page/react-loadable-manifest.json +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.rsc +15 -15
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_full.segment.rsc +15 -15
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_tree.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page/react-loadable-manifest.json +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/build-manifest.json +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/next-font-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/react-loadable-manifest.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js +14 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page/react-loadable-manifest.json +8 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/0jps_app_api_projects_[id]_objectives_[objectiveId]_worker_route_actions_0v8q3zz.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[externals]__0_au5u1._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[externals]__13x93ar._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0_10qfd._.js → [root-of-the-server]__0.6yz1u._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__01lsgl~._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0205scg._.js → [root-of-the-server]__03.9arn._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__01ol22y._.js → [root-of-the-server]__03h0gqp._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__094z9yf._.js → [root-of-the-server]__08jo91s._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__09j9jpf._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0-nye63._.js → [root-of-the-server]__09jghbu._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0_7hiof._.js +43 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0.jam.l._.js → [root-of-the-server]__0a0cq38._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0asvfdo._.js +54 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0c86535._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0cj1krd._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0aa-88e._.js → [root-of-the-server]__0dy3h2i._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0touqng._.js → [root-of-the-server]__0e8-2k_._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0enhv5p._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0f9byr.._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g7hc1-._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g7p6pw._.js +55 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__019q25b._.js → [root-of-the-server]__0gj~dap._.js} +7 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0e6cj2y._.js → [root-of-the-server]__0hc45jw._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0avz575._.js → [root-of-the-server]__0hkcw03._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hmw36u._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0l53ok5._.js +54 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0n.momw._.js +8 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0tjo9we._.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0-~t2br._.js → [root-of-the-server]__0v7jjvl._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0x6w64i._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__11nke7t._.js → [root-of-the-server]__0y3qxv1._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__10z8f9h._.js → [root-of-the-server]__0ygidxe._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0z82z0-._.js +49 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0zsv-tb._.js +8 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0~nnfjr._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0~x4jbk._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10d.dhd._.js +229 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__12qy318._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_039.xxy._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_06oeti1._.js +49 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0dyy7h.._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0gi7c9x._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0gr.psg._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0sd8z0i._.js +21 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0y42h_~._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0~ah49q._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_01kqgle._.js +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_06qet8g._.js +36 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0_0m2ly._.js +397 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0_a~bj0._.js +25 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0a15wtk._.js +397 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0bjdpen._.js +29 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0fr1qq6._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0g.q2r6._.js +41 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0h7wd0e._.js +29 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0i7fs.i._.js +397 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0ipg-p6._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0npxy21._.js +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0uhfa93._.js +21 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_12wpldq._.js +25 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_linear_worker_route_actions_116303i.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_01hd2_5._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_01pvj2g._.js +34 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0ik933l._.js +55 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0o1v.j4._.js +79 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0pxj122._.js +55 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_automations_index_ts_0_8ch28._.js +10 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_082u-ls._.js +41 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_0.xgxyl._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_0yu3--n._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_0ze8hzc._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_get-store_ts_0p0aod1._.js +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_linear-worker_ts_0ycjwem._.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0gips_c.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0u_5kfo.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/02dz_local__next-internal_server_app_projects_[slug]_folders_page_actions_03fg4j9.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_0tvwux2._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_icons_0e2_v_.._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_icons_0hvpc.y._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_icons_0w3hl3p._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__006vr7.._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__08d5c~o._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0_n~ybp._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0d18x53._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0fl7_-o._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0h~rb5r._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0j9m72.._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__02.r909._.js → [root-of-the-server]__0n5g8ml._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0w.zmt6._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0z7nw_r._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__10h_7t0._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_00trrg8._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_0s~0ump._.js → _064h43p._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0742x_.._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ejzn1e._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0fwy5tm._.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0sjchy6._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ufdu.z._.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0wk3skw._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yeuuy1._.js +25 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_03z24q2._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0_ac-.f._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0a-8i4p._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0h3mfm7._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_075cq2j._.js → apps_local_0k4~c1x._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_0n80y4_._.js → apps_local_0nvzo3y._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0t6p.qm._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0v~bvwg._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_11k_-8~._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_[id]_page_tsx_06n47n~._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_execution-graph_page_tsx_0tn2sx9._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_folders_page_tsx_0ju618z._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_graph_[taskId]_page_tsx_0bctfd-._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_layout_tsx_0aaa3~t._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_linear_page_tsx_0a~n5y8._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_0kcaeqi._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_new_page_tsx_0yqd0a5._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_page_tsx_06czvz-._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_terminal_page_tsx_01n9qk.._.js +12 -12
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_orphans_page_tsx_0sdv.11._.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_setup_page_tsx_0ql2qmr._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_PromptJobBoard_tsx_06zob36._.js +8 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_TaskCard_tsx_0e35_z5._.js +6 -6
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_chat-ui_ChatContainer_tsx_0c9fjtl._.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_0k4tfip._.js +6 -6
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_thread_WorkspaceSidebar_tsx_0unv2xp._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mk0s0o.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/functions-config-manifest.json +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/middleware-build-manifest.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0-_ukhpeg429c.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0-olq~7zw3wjy.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0142ce0jj3j7r.js → 0-vo_x2cxmjm3.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/003q-y3exxalk.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/00po4v2x~0x_z.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/013gtut17~fne.js +23 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/014z_yruiincl.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/041-dhls9zkl1.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/04yoml2rqnuot.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/07646a0h94826.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0_mrpyqcoyb_5.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0rm7v.1y6qcni.js → 0aewbg0i704w7.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0px65ynyk3t1d.js → 0bchtyu6m.2yv.js} +7 -7
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0dnw31436wd~..js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0e307b-0c2jbx.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0edewt9l~cs~k.css +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0f7i3ae1ynhf3.css +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0fonouj2i9qnb.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0gj98094p~zn4.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jrkacz_dyem6.js +37 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0l3v45kd.9is_.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0lgb.0~i1xvv-.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0lkal3uvr6_~2.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0mig99af4~uos.js +28 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0pdrpsy-zdxp0.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p~l5ap6qqx2o.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0r0c9y6.8.m5p.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0stvi5btlxl4m.js +20 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0h_bwlg~kk8lz.js → 0tt1oh112yv-l.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0uve8xrt~0a2e.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0w94x-v00osq0.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0wh6p5~ft5rma.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0x_pewz9npq~q.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xwny92a.ad_i.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0zw85-xl9ysjs.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/119v0-idpg-cv.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/11l2tww5f0hsk.js +20 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/14v~9vx3tdv85.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0826uh6nmsi5l.js → 1503vb7lb6.g1.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/16d~es6h6k~rj.js +6 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/177-q0wwdi0qe.js +1 -0
- package/cloud-runtime/standalone/apps/local/agx-server.js +4055 -0
- package/cloud-runtime/standalone/apps/local/app/agents/[id]/page.tsx +40 -5
- package/cloud-runtime/standalone/apps/local/app/api/agents/[id]/profile/route.ts +10 -0
- package/cloud-runtime/standalone/apps/local/app/api/automations/route.ts +10 -2
- package/cloud-runtime/standalone/apps/local/app/api/linear/worker/route.ts +151 -0
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/route.ts +0 -8
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.ts +22 -27
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/worker/route.ts +89 -0
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/route.ts +13 -0
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/search/route.ts +4 -4
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/route.ts +5 -3
- package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/route.ts +15 -5
- package/cloud-runtime/standalone/apps/local/app/globals.css +67 -5
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/folders/page.tsx +25 -0
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/layout.tsx +19 -5
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/objectives/[objectiveId]/page.tsx +7 -2
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/new/page.tsx +236 -10
- package/cloud-runtime/standalone/apps/local/app/setup/page.tsx +9 -1
- package/cloud-runtime/standalone/apps/local/bundled-server.ts +45 -0
- package/cloud-runtime/standalone/apps/local/components/ActionToolbar.tsx +5 -2
- package/cloud-runtime/standalone/apps/local/components/AutomationsBoard.tsx +35 -3
- package/cloud-runtime/standalone/apps/local/components/ContextMenu.tsx +2 -2
- package/cloud-runtime/standalone/apps/local/components/FloatingPanel.tsx +70 -20
- package/cloud-runtime/standalone/apps/local/components/IconButton.tsx +10 -2
- package/cloud-runtime/standalone/apps/local/components/KanbanBoard.tsx +84 -3
- package/cloud-runtime/standalone/apps/local/components/LinearBoard.tsx +434 -36
- package/cloud-runtime/standalone/apps/local/components/LogTimeline.tsx +4 -1
- package/cloud-runtime/standalone/apps/local/components/NowRunningPanel.tsx +3 -1
- package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +119 -6
- package/cloud-runtime/standalone/apps/local/components/SearchCombo.tsx +3 -3
- package/cloud-runtime/standalone/apps/local/components/SortableTaskCard.tsx +21 -3
- package/cloud-runtime/standalone/apps/local/components/StatusCircle.tsx +3 -3
- package/cloud-runtime/standalone/apps/local/components/TaskCard.tsx +51 -1
- package/cloud-runtime/standalone/apps/local/components/chat-ui/ChatContainer.tsx +15 -2
- package/cloud-runtime/standalone/apps/local/components/chat-ui/Composer.tsx +3 -3
- package/cloud-runtime/standalone/apps/local/components/chat-ui/ParticipantBar.tsx +76 -9
- package/cloud-runtime/standalone/apps/local/components/graph/ExecutionGraphPanel.tsx +4 -1
- package/cloud-runtime/standalone/apps/local/components/graph/GraphFirstView.tsx +6 -2
- package/cloud-runtime/standalone/apps/local/components/graph/NodeDetailPanel.tsx +45 -25
- package/cloud-runtime/standalone/apps/local/components/graph/NodeInspector.tsx +9 -6
- package/cloud-runtime/standalone/apps/local/components/linear/LinearSettingsModal.tsx +105 -0
- package/cloud-runtime/standalone/apps/local/components/linear/LinearWorkerConfig.tsx +367 -0
- package/cloud-runtime/standalone/apps/local/components/projects/FoldersSummaryCard.tsx +16 -16
- package/cloud-runtime/standalone/apps/local/components/projects/FoldersView.tsx +856 -0
- package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveActivityTimeline.tsx +40 -32
- package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveHealthTrend.tsx +215 -0
- package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +338 -91
- package/cloud-runtime/standalone/apps/local/components/projects/ProjectHome.tsx +12 -6
- package/cloud-runtime/standalone/apps/local/components/projects/ProjectObjectivesWorkspace.tsx +489 -467
- package/cloud-runtime/standalone/apps/local/components/projects/ProjectSearchBar.tsx +4 -2
- package/cloud-runtime/standalone/apps/local/components/projects/RecentlyCompletedCard.tsx +213 -0
- package/cloud-runtime/standalone/apps/local/components/projects/ScheduledTasksSummaryCard.tsx +19 -19
- package/cloud-runtime/standalone/apps/local/components/projects/TeamsSummaryCard.tsx +10 -10
- package/cloud-runtime/standalone/apps/local/components/projects/TeamsView.tsx +171 -56
- package/cloud-runtime/standalone/apps/local/components/projects/WorkingNowCard.tsx +12 -12
- package/cloud-runtime/standalone/apps/local/components/projects/home/ObjectiveCard.tsx +13 -10
- package/cloud-runtime/standalone/apps/local/components/projects/home/ObjectivesSection.tsx +7 -7
- package/cloud-runtime/standalone/apps/local/components/projects/home/ToolPathCard.tsx +2 -2
- package/cloud-runtime/standalone/apps/local/components/projects/home/ToolPathsSection.tsx +9 -9
- package/cloud-runtime/standalone/apps/local/components/scheduling/ScheduleConditionPicker.tsx +4 -4
- package/cloud-runtime/standalone/apps/local/components/setup/McpSetupStep.tsx +242 -0
- package/cloud-runtime/standalone/apps/local/components/setup/ProjectStep.tsx +2 -2
- package/cloud-runtime/standalone/apps/local/components/setup/ProviderStep.tsx +1 -1
- package/cloud-runtime/standalone/apps/local/components/setup/TeamsStep.tsx +288 -15
- package/cloud-runtime/standalone/apps/local/components/terminal/ProjectTerminal.tsx +233 -89
- package/cloud-runtime/standalone/apps/local/components/terminal/TerminalSessionList.tsx +3 -1
- package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +72 -21
- package/cloud-runtime/standalone/apps/local/hooks/useInputCapabilities.ts +74 -0
- package/cloud-runtime/standalone/apps/local/hooks/useSetupFlow.ts +16 -2
- package/cloud-runtime/standalone/apps/local/lib/app-config.ts +35 -0
- package/cloud-runtime/standalone/apps/local/lib/objective-health-history.ts +198 -0
- package/cloud-runtime/standalone/apps/local/lib/project-objective-context.ts +10 -0
- package/cloud-runtime/standalone/apps/local/lib/project-objectives.ts +0 -9
- package/cloud-runtime/standalone/apps/local/lib/pty-manager.ts +5 -1
- package/cloud-runtime/standalone/apps/local/lib/terminal-server.ts +182 -0
- package/cloud-runtime/standalone/apps/local/next.config.ts +2 -1
- package/cloud-runtime/standalone/apps/local/package.json +2 -2
- package/cloud-runtime/standalone/apps/local/playwright.config.ts +8 -0
- package/cloud-runtime/standalone/apps/local/server.js +1 -1
- package/cloud-runtime/standalone/apps/local/server.ts +14 -158
- package/cloud-runtime/standalone/apps/local/skills-lock.json +20 -0
- package/cloud-runtime/standalone/apps/local/src/automations/adapters.ts +5 -0
- package/cloud-runtime/standalone/apps/local/src/automations/types.ts +5 -0
- package/cloud-runtime/standalone/apps/local/src/automations/validation.ts +12 -5
- package/cloud-runtime/standalone/apps/local/src/graph/types.ts +2 -0
- package/cloud-runtime/standalone/apps/local/src/objectives/parser.ts +0 -2
- package/cloud-runtime/standalone/apps/local/src/objectives/serializer.ts +0 -2
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/cron.ts +11 -0
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/linear-worker-constants.ts +38 -0
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/linear-worker-job.ts +47 -0
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/linear-worker.ts +482 -0
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/objective-worker-job.ts +47 -0
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/objective-worker.ts +511 -0
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/processor.ts +239 -368
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/store.ts +19 -4
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/types.ts +32 -8
- package/cloud-runtime/standalone/apps/local/state/terminalTabs.ts +182 -106
- package/cloud-runtime/standalone/apps/local/state/windowState.ts +11 -0
- package/cloud-runtime/standalone/apps/local/styles/workspaceSidebar.css +65 -0
- package/cloud-runtime/standalone/apps/local/worker/index.js +9 -14
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/darwin-arm64/pty.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/darwin-arm64/spawn-helper +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/darwin-x64/pty.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/darwin-x64/spawn-helper +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty/OpenConsole.exe +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty/conpty.dll +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/pty.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/pty.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/winpty-agent.exe +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/winpty-agent.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/winpty.dll +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/winpty.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty/OpenConsole.exe +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty/conpty.dll +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/pty.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/pty.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/winpty-agent.exe +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/winpty-agent.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/winpty.dll +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/winpty.pdb +0 -0
- package/lib/cli/daemon.js +13 -2
- package/lib/cli/onboarding.js +5 -6
- package/lib/cli/runCli.js +1 -1
- package/lib/cloud/client.js +1 -1
- package/lib/commands/chat.js +37 -11
- package/lib/commands/daemonBoard.js +19 -13
- package/lib/config/cloudConfig.js +1 -1
- package/lib/orchestrator/httpClient.js +1 -1
- package/lib/prompts/templates.js +8 -9
- package/package.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0-0479y._.js +0 -54
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__088h0r2._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08oj_ky._.js +0 -49
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08y2lkj._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__09joc_o._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0gtv0rq._.js +0 -8
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0gvjvx7._.js +0 -237
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ksbs9p._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0o315az._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0pz~m67._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0q93mk3._.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0t2jk2r._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0vhcrdv._.js +0 -229
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__11s20j6._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__12xhcor._.js +0 -54
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_01rag2f._.js +0 -49
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_03y4xss._.js +0 -21
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0cm4i3i._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0ijzgnb._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_03q7_.q._.js +0 -21
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0m3e2d~._.js +0 -30
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0r-oiga._.js +0 -30
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_00cwfvi._.js +0 -34
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0hx7xyz._.js +0 -34
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0rqcat4._.js +0 -55
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0sc_lek._.js +0 -79
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_135ddsu._.js +0 -55
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_store_ts_0h.2qy9._.js +0 -43
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_processor_ts_0i1av_r._.js +0 -474
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0xxf2a0.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_0xd_mxu._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__044xm0q._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__066ay_e._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__09smg3p._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0bf346q._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0hd2vo4._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0iix1sf._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0r54zr9._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0s8z2_c._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0wq3ukc._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_03-mlx0._.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_03rf_sb._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_09b42z9._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ag3.tl._.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0dh_hx0._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0h8cbsi._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0i1ffhz._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ndrb_0._.js +0 -8
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0nlki7b._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ut3k~7._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0vibfch._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yffwm4._.js +0 -8
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0_q01av._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0eh.4j7._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0qaowqy._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0s0iy2_._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0zr-_na._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_10qsqky._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0.a4-dh~x9sa3.js +0 -6
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0.bv3h68wo33z.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/016.x9zt9~rsh.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/027-6dwgpb0cy.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/031720jijg_th.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/03m1xs0rztynh.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/051-7k0nnm-vm.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/07o~9mm~xds_b.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/08zgoptetnxjj.css +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/09-_2lcshmjl5.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/09_yj-9nfh48m.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/09c7ssmgohk7l.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0awbe2r3qazge.css +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0dro-bz6f72z0.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0gbunx8z.~i4x.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ge81r~ap.u7n.js +0 -28
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ghg5160qeazw.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0gl_8hdxl5qnd.js +0 -37
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0g~v8p6_pc46-.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jb4f8425s.-2.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0kukkarp4un0o.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0m.2b-cekea8b.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0o0hwfzwwty4b.js +0 -6
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ov5lu0tz2o2e.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0pt8_y9asrg~7.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0wyg4lymaq0hg.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xl~1ux2f~rcu.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0y7-eze-w7~b4.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0y8e--tok1214.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0yy~0bgsz~o6-.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0~apd0q5_i88z.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/100xrwo-45nrg.js +0 -20
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/14h3qxwuo~1q9.js +0 -20
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/17oesq5eds3xi.js +0 -1
- /package/cloud-runtime/standalone/apps/local/.next/static/{z8XjY2Aj-ox_Dro192i4I → RnYHmEXBwXJjVrVVx2CuP}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{z8XjY2Aj-ox_Dro192i4I → RnYHmEXBwXJjVrVVx2CuP}/_clientMiddlewareManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{z8XjY2Aj-ox_Dro192i4I → RnYHmEXBwXJjVrVVx2CuP}/_ssgManifest.js +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
module.exports=[398066,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(639211),e=a.i(520612),f=a.i(155829),g=a.i(496368),h=a.i(111013),i=a.i(550158),j=a.i(238246),k=a.i(86007),l=a.i(8e4),m=a.i(475632);function n(){return(0,b.jsxs)("span",{className:"inline-flex items-center gap-[3px] ml-1",children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--muted-foreground)] animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--muted-foreground)] animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--muted-foreground)] animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})}function o({participantId:a,participantName:c,participantColor:d,content:e}){let f=(0,m.stripMarkers)(e),g=f.length>0;return(0,b.jsxs)("div",{className:"flex gap-4 py-4 group transition-colors animate-in fade-in slide-in-from-bottom-2 duration-300",children:[(0,b.jsx)(j.default,{href:`/agents/${a}`,className:"w-9 h-9 rounded-full bg-[var(--muted)] overflow-hidden shrink-0 shadow-sm border border-[var(--border)] hover:ring-2 hover:ring-blue-300 transition-shadow",children:(0,b.jsx)("img",{src:(0,l.agentAvatarUrl)(a,36,d),alt:"",className:"w-full h-full object-cover"})}),(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-baseline gap-2 mb-1",children:[(0,b.jsx)(j.default,{href:`/agents/${a}`,className:"font-bold text-[15px] hover:underline",style:{color:d},children:c}),(0,b.jsx)("span",{className:"text-[10px] uppercase tracking-wider text-[var(--muted-foreground)] font-bold opacity-0 group-hover:opacity-100 transition-opacity",children:"Streaming"})]}),(0,b.jsx)("div",{className:"text-[15px] text-[var(--foreground)] leading-relaxed min-h-[1.5rem] flex items-center",children:g?(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsx)(k.Markdown,{content:f}),(0,b.jsx)("span",{className:"inline-flex items-baseline ml-0.5",children:(0,b.jsx)("span",{className:"w-1 h-1 rounded-full bg-indigo-400 animate-[pulse-dot_1.4s_ease-in-out_infinite]"})})]}):(0,b.jsxs)("div",{className:"flex items-center gap-2 text-[var(--muted-foreground)] italic",children:[(0,b.jsx)("span",{className:"text-sm font-medium",children:"working"}),(0,b.jsx)(n,{})]})})]})]})}var p=a.i(552605),q=a.i(340492);function r({attachments:a,compact:c=!1}){if(0===a.length)return null;let d=a.filter(a=>a.mimeType.startsWith("image/")),e=a.filter(a=>!a.mimeType.startsWith("image/")),f=c?"max-w-[120px]":"max-w-[240px]",g=c?"max-h-[90px]":"max-h-[180px]";return(0,b.jsxs)("div",{className:"mt-2 space-y-2",children:[d.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:d.map(a=>(0,b.jsx)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"block rounded-lg overflow-hidden border border-[var(--border)] hover:border-[var(--border)] transition-colors",children:(0,b.jsx)("img",{src:a.url,alt:a.filename,className:`${f} ${g} object-cover`,loading:"lazy"})},a.id))}),e.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:e.map(a=>{var d;return(0,b.jsxs)("a",{href:a.url,download:a.filename,className:`inline-flex items-center gap-1.5 rounded-md border border-[var(--border)] bg-[var(--app-shell-subtle)] text-[var(--muted-foreground)] hover:bg-[var(--muted)] hover:border-[var(--border)] transition-colors ${c?"px-2 py-0.5 text-[11px]":"px-2.5 py-1 text-xs"}`,children:[(0,b.jsx)(p.FileText,{className:`text-[var(--muted-foreground)] shrink-0 ${c?"w-3 h-3":"w-3.5 h-3.5"}`}),(0,b.jsx)("span",{className:`truncate ${c?"max-w-[100px]":"max-w-[150px]"}`,children:a.filename}),(0,b.jsx)("span",{className:"text-[var(--muted-foreground)] shrink-0",children:(d=a.size)<1024?`${d}B`:d<1048576?`${(d/1024).toFixed(0)}KB`:`${(d/1048576).toFixed(1)}MB`}),(0,b.jsx)(q.Download,{className:`text-[var(--muted-foreground)] shrink-0 ${c?"w-2.5 h-2.5":"w-3 h-3"}`})]},a.id)})})]})}var s=a.i(66456),t=a.i(831709);let u=(0,t.default)("grip-vertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);var v=a.i(811760),w=a.i(756490),x=a.i(353532),y=a.i(824179);let z=(0,t.default)("arrow-up-right",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);var A=a.i(804632),B=a.i(627421);let C=process.env.NEXT_PUBLIC_AGX_BOARD_URL||"http://localhost:41741";async function D(){let a=await fetch(`${C}/api/projects`);if(!a.ok){if(503===a.status)throw Error("SCHEMA_NOT_READY");throw Error(`Failed to list projects: ${a.status}`)}let b=await a.json();return b.projects??b}async function E(a,b){let c=await fetch(`${C}/api/projects`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:a,description:b})});if(!c.ok)throw Error(`Failed to create project: ${c.status}`);return c.json()}async function F(a,b){let c=await fetch(`${C}/api/tasks`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:a,...b})});if(!c.ok)throw Error(`Failed to create task: ${c.status}`);let d=await c.json(),e=d.task??d;return d.id&&!e.id&&(e.id=d.id),e}async function G(a){let b=await fetch(`${C}/api/tasks/${a}`);if(!b.ok)return null;let c=await b.json();return c.task??c}async function H(a,b,c,d){let e=[],f={...d},g=new Map((function(a){let b=new Set(a.map(a=>a.id)),c=new Map;for(let d of a)c.set(d.id,(d.dependsOn||[]).filter(a=>b.has(a)));let d=[],e=new Set,f=new Set;for(let b of a)!function b(g){if(!e.has(g)&&!f.has(g)){for(let a of(f.add(g),c.get(g)||[]))b(a);f.delete(g),e.add(g),d.push(a.find(a=>a.id===g))}}(b.id);return d})(a).map(a=>[a.id,a]));for(;g.size>0;){let a=[];for(let b of g.values())(b.dependsOn||[]).every(a=>!g.has(a)||f[a])&&a.push(b);0===a.length&&a.push(...g.values());let c=await Promise.allSettled(a.map(async a=>{let c=f[a.id];if(c&&await G(c))return{task:a,remoteId:c};let d=(a.dependsOn||[]).map(a=>f[a]).filter(Boolean),e=await F(a.description,{title:a.title,project_id:b,depends_on:d.length>0?d:void 0});return{task:a,remoteId:e.id}}));for(let b of c)if("fulfilled"===b.status){let{task:a,remoteId:c}=b.value;f[a.id]=c,e.push({clientTaskId:a.id,remoteTaskId:c,status:"created"}),g.delete(a.id)}else{let d=a[c.indexOf(b)];e.push({clientTaskId:d.id,status:"failed",error:b.reason instanceof Error?b.reason.message:"Unknown error"}),g.delete(d.id)}}return{buildId:c,projectId:b,results:e}}var I=a.i(349692),J=a.i(89613),K=a.i(599086);function L({onSelect:a,onClose:d}){let[e,f]=(0,c.useState)([]),[g,h]=(0,c.useState)(!0),[i,j]=(0,c.useState)(null),[k,l]=(0,c.useState)(!1),[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(!1);(0,c.useEffect)(()=>{(async()=>{try{let a=await D();f(a)}catch(a){a instanceof Error&&"SCHEMA_NOT_READY"===a.message?j("agx-cloud database not ready. Run migrations first."):j("Failed to load projects. Is agx-cloud running?")}finally{h(!1)}})()},[]);let q=(0,c.useCallback)(async()=>{let b=m.trim();if(b){l(!0);try{let c=await E(b);a(c.id,c.name)}catch(a){j("Failed to create project")}finally{l(!1)}}},[m,a]);return(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/20 backdrop-blur-sm",children:(0,b.jsxs)("div",{className:"bg-[var(--app-shell-elevated)] rounded-2xl shadow-xl border border-[var(--app-shell-border)] w-full max-w-sm mx-4 overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b border-[var(--app-shell-border)]",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(J.FolderOpen,{className:"w-4 h-4 text-[var(--app-shell-muted)]"}),(0,b.jsx)("h3",{className:"text-sm font-bold text-[var(--foreground)]",children:"Select Project"})]}),(0,b.jsx)("button",{type:"button",onClick:d,className:"p-1 text-[var(--app-shell-muted)] hover:text-[var(--foreground)] rounded-md hover:bg-[var(--app-shell-subtle)]",children:(0,b.jsx)(y.X,{className:"w-4 h-4"})})]}),(0,b.jsxs)("div",{className:"p-4 max-h-64 overflow-y-auto",children:[g&&(0,b.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,b.jsx)(I.Loader2,{className:"w-5 h-5 text-[var(--app-shell-muted)] animate-spin"})}),i&&(0,b.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-amber-50 rounded-lg text-amber-700 text-xs font-medium",children:[(0,b.jsx)(K.AlertTriangle,{className:"w-4 h-4 shrink-0"}),i]}),!g&&!i&&0===e.length&&(0,b.jsx)("p",{className:"text-xs text-[var(--app-shell-muted)] text-center py-4",children:"No projects found. Create one below."}),!g&&e.map(c=>(0,b.jsxs)("button",{type:"button",onClick:()=>a(c.id,c.name),className:"w-full text-left px-3 py-2.5 rounded-lg hover:bg-[var(--app-shell-subtle)] transition-colors flex items-center gap-3 group",children:[(0,b.jsx)("div",{className:"w-8 h-8 rounded-lg bg-[var(--app-shell-subtle)] flex items-center justify-center shrink-0",children:(0,b.jsx)(J.FolderOpen,{className:"w-4 h-4 text-[var(--app-shell-muted)] group-hover:text-[var(--foreground)]"})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-sm font-semibold text-[var(--foreground)] truncate",children:c.name}),c.description&&(0,b.jsx)("div",{className:"text-[11px] text-[var(--app-shell-muted)] truncate",children:c.description})]})]},c.id))]}),(0,b.jsx)("div",{className:"px-4 pb-4 pt-2 border-t border-[var(--app-shell-border)]",children:o?(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"text",value:m,onChange:a=>n(a.target.value),onKeyDown:a=>"Enter"===a.key&&q(),placeholder:"Project name",autoFocus:!0,className:"flex-1 h-8 px-3 text-sm bg-[var(--input)] border border-[var(--app-shell-border)] rounded-lg outline-none focus:ring-1 focus:ring-[var(--ring)] text-[var(--foreground)]"}),(0,b.jsx)("button",{type:"button",onClick:q,disabled:k||!m.trim(),className:"h-8 px-3 text-xs font-bold text-[var(--primary-foreground)] bg-[var(--primary)] hover:bg-[var(--primary-hover)] rounded-lg disabled:opacity-40",children:k?"…":"Create"}),(0,b.jsx)("button",{type:"button",onClick:()=>p(!1),className:"h-8 px-2 text-[var(--app-shell-muted)] hover:text-[var(--foreground)]",children:(0,b.jsx)(y.X,{className:"w-3.5 h-3.5"})})]}):(0,b.jsxs)("button",{type:"button",onClick:()=>p(!0),className:"flex items-center gap-1.5 text-xs font-bold text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:[(0,b.jsx)(x.Plus,{className:"w-3.5 h-3.5"}),"Create new project"]})})]})})}function M({draft:a,onUpdate:d,onBuild:e,building:f}){let[g,h]=(0,c.useState)(null),[i,j]=(0,c.useState)(!1),[k,l]=(0,c.useState)(!1),m=(0,c.useCallback)(()=>{let b=a.tasks.map((a,b)=>{let c=`${b+1}. **${a.title}**`;return a.description&&"Add description..."!==a.description&&(c+=`
|
|
2
|
-
${a.description.replace(/\n/g,"\n ")}`),c}).join("\n");navigator.clipboard.writeText(b).then(()=>{l(!0),setTimeout(()=>l(!1),1500)})},[a.tasks]),n=(0,c.useCallback)((b,c)=>{let e=a.tasks.map(a=>a.id===b?{...a,...c}:a);d({...a,tasks:e,revision:a.revision+1})},[a,d]),o=(0,c.useCallback)(b=>{let c=a.tasks.filter(a=>a.id!==b);d({...a,tasks:c,revision:a.revision+1})},[a,d]),p=(0,c.useCallback)(()=>{let b={id:crypto.randomUUID(),title:"New task",description:"Add description..."};d({...a,tasks:[...a.tasks,b],revision:a.revision+1})},[a,d]),q=(0,c.useCallback)(()=>{j(!0)},[]),r=(0,c.useCallback)((b,c)=>{j(!1),e(a,b,c)},[a,e]),
|
|
3
|
-
${a.description.replace(/\n/g,"\n ")}`:""}`).join("\n");navigator.clipboard.writeText(b).then(()=>{i(!0),setTimeout(()=>i(!1),1500)})},[a.tasks]),{tasks:k,error:l}=function({projectId:a,enabled:b,interval:d=3e4}){let[e,f]=(0,c.useState)([]),[g,h]=(0,c.useState)(null),i=(0,c.useRef)(0),j=(0,c.useRef)([]),k=(0,c.useCallback)(async()=>{if(a&&"undefined"!==a)try{let b=process.env.NEXT_PUBLIC_AGX_BOARD_URL||"http://localhost:41741",c=await fetch(`${b}/api/tasks?project=${a}`);if(!c.ok)throw Error(`Poll failed: ${c.status}`);let d=await c.json(),e=d.tasks??d;j.current=e,f(e),h(null)}catch(a){h(a instanceof Error?a.message:"Poll failed")}},[a]);return(0,c.useEffect)(()=>{if(!b||!a)return;i.current=Date.now(),k();let c=setInterval(()=>{Date.now()-i.current>18e5||j.current.length>0&&j.current.every(a=>N.has(a.status))?clearInterval(c):k()},d);return()=>clearInterval(c)},[b,a,d,k]),{tasks:e,error:g,refetch:k}}({projectId:a.projectId??null,enabled:!!a.projectId&&"done"===a.buildStatus}),m=new Map;if(a.builtTaskIds)for(let[b,c]of Object.entries(a.builtTaskIds)){let a=k.find(a=>a.id===c);a&&m.set(b,a)}let n=a.tasks.filter(a=>{let b=m.get(a.id);return b&&("completed"===b.status||"done"===b.status)}).length,o=a.tasks.length>0?n/a.tasks.length:0,p=(0,c.useCallback)(()=>{a.projectId&&a.projectName?d?.(a,a.projectId,a.projectName):g(!0)},[a,d]),q=(0,c.useCallback)((b,c)=>{g(!1),d?.(a,b,c)},[a,d]);a.tasks.some(b=>!a.builtTaskIds?.[b.id]);let r=a.tasks.some(a=>{let b=m.get(a.id);return b&&"queued"!==b.status&&"pending"!==b.status});return(0,b.jsxs)("div",{className:"mt-6 p-4 bg-[var(--app-shell-subtle)]/80 rounded-2xl border border-[var(--border)] shadow-sm",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(s.Zap,{className:"w-3.5 h-3.5 text-amber-500 fill-amber-500"}),(0,b.jsx)("span",{className:"text-[10px] font-extrabold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Tasks"}),a.projectName&&(0,b.jsxs)("span",{className:"text-[10px] font-semibold text-[var(--muted-foreground)]",children:["· ",a.projectName]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:[n,"/",a.tasks.length," Complete"]}),a.tasks.length>0&&(0,b.jsx)("button",{type:"button",onClick:j,className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)] transition-colors",title:"Copy as markdown",children:h?(0,b.jsx)(B.Check,{className:"w-3.5 h-3.5 text-emerald-500"}):(0,b.jsx)(A.Copy,{className:"w-3.5 h-3.5"})})]})]}),(0,b.jsx)("div",{className:"space-y-3 mb-4",children:a.tasks.map(a=>{let c=m.get(a.id),d=c?.status||"queued",e=S[d]||S.queued;return(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[e,(0,b.jsx)("span",{className:"text-xs font-semibold text-[var(--muted-foreground)]",children:a.title})]},a.id)})}),(0,b.jsx)("div",{className:"h-1.5 w-full bg-[var(--muted)] rounded-full overflow-hidden",children:(0,b.jsx)("div",{className:"h-full bg-emerald-500 rounded-full shadow-[0_0_8px_rgba(16,185,129,0.4)] transition-all duration-500",style:{width:`${Math.round(100*o)}%`}})}),d&&!r&&(0,b.jsxs)("div",{className:"mt-3 flex items-center gap-3",children:["partial_failure"===a.buildStatus&&(0,b.jsx)("span",{className:"text-[11px] text-amber-600 font-semibold",children:"Some tasks failed to push."}),(0,b.jsx)("div",{className:"flex-1"}),(0,b.jsxs)("button",{type:"button",onClick:p,disabled:e,className:"flex items-center gap-1.5 px-4 py-1.5 text-xs font-bold text-[var(--primary-foreground)] bg-[var(--primary)] hover:bg-[var(--primary-hover)] rounded-full shadow-sm transition-all disabled:opacity-40 disabled:cursor-not-allowed",children:[(0,b.jsx)(z,{className:"w-3 h-3"}),e?"Pushing…":"Push to agx"]})]}),l&&(0,b.jsxs)("div",{className:"mt-2 text-[11px] text-amber-600 font-medium",children:["Status polling error: ",l]}),f&&(0,b.jsx)(L,{onSelect:q,onClose:()=>g(!1)})]})}let U=(0,c.forwardRef)(({children:a,className:c="",...d},e)=>{let f=`absolute top-4 right-4 flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity duration-200 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] shadow-md rounded-lg p-1 z-10 backdrop-blur-sm ${c}`.trim();return(0,b.jsx)("div",{ref:e,className:f,...d,children:a})});U.displayName="ActionToolbar";let V=()=>(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)] mx-1"}),W=(0,c.forwardRef)(({className:a="",variant:c="neutral",size:d="md",children:e,...f},g)=>{let h=`inline-flex items-center justify-center rounded-md transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:opacity-50 disabled:pointer-events-none ${({sm:"p-1 w-6 h-6",md:"p-1.5 w-8 h-8",lg:"p-2 w-10 h-10"})[d]} ${({neutral:"text-[var(--app-shell-muted)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]",ghost:"text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)]",primary:"text-[var(--primary)] hover:text-[var(--primary-foreground)] hover:bg-[var(--primary-hover)]",destructive:"text-[var(--app-shell-muted)] hover:text-[var(--destructive)] hover:bg-[var(--destructive-muted)]"})[c]} ${a}`.trim();return(0,b.jsx)("button",{ref:g,className:h,...f,children:e})});W.displayName="IconButton";var X=a.i(737313),Y=a.i(316099),Z=a.i(697183),$=a.i(252197),_=a.i(820859);let aa=(0,t.default)("list-todo",[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["rect",{x:"3",y:"4",width:"6",height:"6",rx:"1",key:"cif1o7"}]]),ab=(0,t.default)("link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]),ac=(0,t.default)("at-sign",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",key:"7n84p3"}]]);var ad=a.i(915534);let ae=[{value:"active",label:"Active",color:"#f59e0b"},{value:"paused",label:"Paused",color:"#f97316"},{value:"in-review",label:"In Review",color:"#6b7280"},{value:"done",label:"Done",color:"#3b82f6"},{value:"archived",label:"Archived",color:"#9ca3af"}],af=new Set(["done","in-review","archived"]),ag="<!-- thread-summary -->";function ah({messages:a,streaming:d,participants:e,onOpenThread:f,onCopyThread:g,onAddToChat:h,onDeleteThreadRoot:i,onSummarize:n,onCreateTasks:p,onUpdateTaskDraft:q,onBuildTasks:s,summarizingThreads:t,extractingTasks:u,buildingDrafts:v,taskDrafts:w,deletingThreadRootId:x,highlightedMessageId:y,onUpdateMessageThreadStatus:z,onUpdateMessageOutcomeNote:B,shipModeThreads:C}){let D=(0,c.useRef)(new Map),[E,F]=(0,c.useState)(null),[G,H]=(0,c.useState)("active"),J=Object.fromEntries(e.map(a=>[a.id,a])),K=(0,c.useMemo)(()=>[...a.filter(a=>!a.rootMessageId)].reverse(),[a]),L={active:new Set(["active"]),paused:new Set(["paused"]),"in-review":new Set(["in-review"]),done:new Set(["done"]),archived:new Set(["archived"])},N=(0,c.useMemo)(()=>K.filter(a=>L[G].has(a.threadStatus??"active")),[K,G]),O=(0,c.useMemo)(()=>({active:K.filter(a=>L.active.has(a.threadStatus??"active")).length,paused:K.filter(a=>L.paused.has(a.threadStatus??"active")).length,"in-review":K.filter(a=>L["in-review"].has(a.threadStatus??"active")).length,done:K.filter(a=>L.done.has(a.threadStatus??"active")).length,archived:K.filter(a=>L.archived.has(a.threadStatus??"active")).length}),[K]),P=(0,c.useMemo)(()=>(function(a){let b=new Map;for(let c of a){let a=c.rootMessageId;if(!a)continue;let d=b.get(a);d||(d={rootMessageId:a,replyCount:0,participants:[],lastActivityAt:0,allReplies:[]},b.set(a,d)),d.replyCount++,d.lastActivityAt=Math.max(d.lastActivityAt,c.timestamp),d.lastReply=c,d.allReplies.push(c),c.participantId&&!d.participants.includes(c.participantId)?d.participants.push(c.participantId):c.participantId||d.participants.includes("user")||d.participants.push("user")}for(let a of b.values())a.allReplies.sort((a,b)=>a.timestamp-b.timestamp);return b})(a),[a]),Q=(0,c.useCallback)((a,b)=>{b?D.current.set(a,b):D.current.delete(a)},[]),R=(0,c.useRef)(null);return(0,c.useEffect)(()=>{if(!y){R.current=null;return}if(y===R.current)return;R.current=y;let a=D.current.get(y);a&&a.scrollIntoView({behavior:"smooth",block:"center"})},[y,a]),(0,b.jsx)("div",{className:"chat-scrollbar flex-1 overflow-y-auto p-4",children:(0,b.jsxs)("div",{className:"max-w-3xl mx-auto",children:[K.length>0&&(0,b.jsx)("div",{className:"flex items-center justify-center gap-1 p-1 rounded-lg w-fit mx-auto border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] mb-4",children:[{key:"active",label:"Active"},{key:"paused",label:"Paused"},{key:"in-review",label:"In Review"},{key:"done",label:"Done"},{key:"archived",label:"Archived"}].map(a=>{let c=O[a.key],d=G===a.key;return(0,b.jsxs)("button",{type:"button",onClick:()=>H(a.key),className:`px-3 py-1.5 text-xs font-bold rounded-md transition-all ${d?"bg-[var(--app-shell-surface)] text-[var(--foreground)] shadow-sm":"text-[var(--app-shell-muted)] hover:text-[var(--foreground)]"}`,children:[a.label,c>0&&(0,b.jsx)("span",{className:`ml-1.5 text-[10px] ${d?"opacity-60":"opacity-50"}`,children:c})]},a.key)})}),0===K.length&&0===Object.keys(d).length&&(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center text-[var(--app-shell-muted)] mt-32 space-y-3",children:[(0,b.jsx)(X.MessageSquare,{className:"h-6 w-6",strokeWidth:1.5}),(0,b.jsx)("span",{className:"text-sm font-medium tracking-wide",children:"Start a thread"})]}),K.length>0&&0===N.length&&(0,b.jsx)("div",{className:"flex flex-col items-center justify-center text-[var(--app-shell-muted)] mt-16 space-y-2",children:(0,b.jsxs)("span",{className:"text-sm font-medium",children:["No ",G," threads"]})}),N.map(a=>{let c,e=a.participantId?J[a.participantId]:null,y=P.get(a.id),B=x===a.id,D=y?.allReplies.find(a=>a.content.startsWith(ag)),G=D?D.content.slice(ag.length).trim():null,H=a.threadStatus??"active",K=af.has(H),L=ae.find(a=>a.value===H)??ae[0],N=Object.values(d).some(b=>b.rootMessageId===a.id);if(K){let c;return(0,b.jsx)("div",{ref:b=>Q(a.id,b),"data-message-id":a.id,className:`max-w-2xl mx-auto bg-[var(--app-shell-subtle)] rounded-xl border border-[var(--app-shell-border)] mb-3 group transition-all hover:border-[var(--app-shell-border-strong)] relative cursor-pointer ${E===a.id?"z-50":""}`,onClick:()=>f?.(a.id),children:(0,b.jsxs)("div",{className:"px-4 py-2.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)(Y.Hash,{className:"w-3.5 h-3.5 text-[var(--app-shell-muted)] shrink-0"}),(0,b.jsx)("span",{className:"text-sm font-medium text-[var(--app-shell-muted)] truncate flex-1",children:(0,m.stripMarkers)(a.content.split("\n")[0])}),C?.has(a.id)&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-indigo-500 font-medium shrink-0",title:"Ship Mode active",children:[(0,b.jsx)(ad.Rocket,{size:11,style:{animation:"shipPulse 2s ease-in-out infinite"}}),"Ship"]}),N&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-green-600 font-medium shrink-0",children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-green-400 animate-pulse"}),"Working"]}),a.outcomeNote&&(0,b.jsx)("span",{className:"text-[11px] text-[var(--app-shell-soft-text)] truncate max-w-[200px]",children:a.outcomeNote}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--app-shell-soft-text)] shrink-0",children:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(a.timestamp)}),z&&(c=E===a.id,(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("button",{type:"button",onClick:b=>{b.stopPropagation(),F(c?null:a.id)},className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border transition-colors hover:bg-[var(--app-shell-elevated)]",style:{borderColor:L.color+"40",color:L.color},children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:L.color}}),L.label]}),c&&(0,b.jsx)("div",{className:"absolute top-full right-0 mt-1 z-50 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] rounded-lg shadow-lg p-1 min-w-[8.5rem]",onClick:a=>a.stopPropagation(),children:ae.map(c=>(0,b.jsxs)("button",{type:"button",className:`flex items-center gap-2 w-full px-2 py-1.5 rounded-md text-xs font-medium transition-colors ${c.value===H?"bg-[var(--primary-muted)] text-[var(--primary)]":"text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:b=>{b.stopPropagation(),z(a.id,c.value),F(null)},children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:c.color}}),c.label]},c.value))})]})),y&&y.replyCount>0&&(0,b.jsxs)("span",{className:"text-[10px] text-[var(--app-shell-muted)] shrink-0",children:[y.replyCount," replies"]})]}),(G||w?.[a.id])&&(0,b.jsxs)("div",{className:"mt-1.5 pl-6 flex flex-col gap-1",children:[G&&(0,b.jsx)("div",{className:"text-sm text-[var(--muted-foreground)] leading-relaxed prose prose-sm prose-neutralmax-w-none",children:(0,b.jsx)(k.Markdown,{content:G,isUser:!1})}),w?.[a.id]&&w[a.id].tasks.length>0&&(0,b.jsxs)("span",{className:"text-[10px] text-[var(--app-shell-muted)] flex items-center gap-1",children:[(0,b.jsx)(aa,{className:"w-3 h-3"}),w[a.id].tasks.length," ",1===w[a.id].tasks.length?"task":"tasks"]})]})]})},a.id)}return(0,b.jsxs)("div",{className:`max-w-2xl mx-auto surface-card mb-6 group relative ${E===a.id?"z-50":""}`,children:[(g||h||i)&&(0,b.jsxs)(U,{className:"z-10",children:[h&&(0,b.jsx)(W,{type:"button",variant:"primary",size:"sm",onClick:()=>h(a.id),title:"Mention in chat",children:(0,b.jsx)(ac,{className:"w-3.5 h-3.5"})}),(0,b.jsx)(W,{type:"button",variant:"neutral",size:"sm",onClick:()=>{navigator.clipboard.writeText(a.id)},title:"Copy message ID",children:(0,b.jsx)(ab,{className:"w-3.5 h-3.5"})}),g&&(0,b.jsx)(W,{type:"button",variant:"neutral",size:"sm",onClick:()=>g(a.id),title:"Copy thread as markdown",children:(0,b.jsx)(A.Copy,{className:"w-3.5 h-3.5"})}),i&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(V,{}),(0,b.jsx)(W,{type:"button",variant:"destructive",size:"sm",onClick:()=>i(a.id),disabled:B,title:"Delete this thread",children:B?(0,b.jsx)(I.Loader2,{className:"w-3.5 h-3.5 animate-spin"}):(0,b.jsx)(Z.Trash2,{className:"w-3.5 h-3.5"})})]})]}),(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("div",{className:"p-5",children:(0,b.jsxs)("div",{ref:b=>Q(a.id,b),"data-message-id":a.id,className:"flex flex-col",children:[(0,b.jsxs)("div",{className:"flex gap-3 mb-4",children:["user"!==a.role&&(0,b.jsx)(j.default,{href:`/agents/${e?.id||a.participantId||"assistant"}`,className:"w-10 h-10 rounded-full bg-[var(--app-shell-subtle)] overflow-hidden border border-[var(--app-shell-border)] shadow-sm flex items-center justify-center shrink-0 hover:ring-2 hover:ring-[var(--ring)] transition-shadow",children:e?(0,b.jsx)("img",{src:(0,l.agentAvatarUrl)(e.id,40,e.color),alt:e.name,className:"w-full h-full object-cover"}):(0,b.jsx)("img",{src:(0,l.agentAvatarUrl)(a.participantId||"assistant",40),alt:a.participantId||"Assistant",className:"w-full h-full object-cover"})}),(0,b.jsxs)("div",{className:"flex-1 min-w-0 pt-0.5",children:["user"!==a.role&&(0,b.jsx)("div",{className:"flex items-center gap-2 mb-0.5",children:(0,b.jsx)(j.default,{href:`/agents/${e?.id||a.participantId||"assistant"}`,className:"font-bold text-sm text-[var(--foreground)] hover:underline",children:e?.name||a.participantId||"Assistant"})}),(0,b.jsxs)("div",{className:"cursor-pointer group/msg-title mb-1",onClick:()=>f?.(a.id),children:[(0,b.jsx)("h3",{className:"text-lg font-bold text-[var(--foreground)] leading-tight group-hover/msg-title:text-[var(--primary)] transition-colors line-clamp-1",children:(0,m.stripMarkers)(a.content.split("\n")[0])}),(0,b.jsxs)("div",{className:"mt-1 flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[11px] font-medium text-[var(--app-shell-soft-text)]",children:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(a.timestamp)}),z&&(c=E===a.id,(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("button",{type:"button",onClick:b=>{b.stopPropagation(),F(c?null:a.id)},className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border transition-colors hover:bg-[var(--app-shell-subtle)]",style:{borderColor:L.color+"40",color:L.color},children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:L.color}}),L.label]}),c&&(0,b.jsx)("div",{className:"absolute top-full left-0 mt-1 z-50 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] rounded-lg shadow-lg p-1 min-w-[8.5rem]",onClick:a=>a.stopPropagation(),children:ae.map(c=>(0,b.jsxs)("button",{type:"button",className:`flex items-center gap-2 w-full px-2 py-1.5 rounded-md text-xs font-medium transition-colors ${c.value===H?"bg-[var(--primary-muted)] text-[var(--primary)]":"text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:b=>{b.stopPropagation(),z(a.id,c.value),F(null)},children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:c.color}}),c.label]},c.value))})]})),C?.has(a.id)&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-indigo-500 font-medium",title:"Ship Mode active",children:[(0,b.jsx)(ad.Rocket,{size:11,style:{animation:"shipPulse 2s ease-in-out infinite"}}),"Ship"]}),N&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-green-600 font-medium",children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-green-400 animate-pulse"}),"Working"]})]}),(a.content.length>80||a.content.includes("\n"))&&(0,b.jsx)("div",{className:"mt-2 text-[15px] text-[var(--muted-foreground)] leading-relaxed line-clamp-3",children:(0,b.jsx)(k.Markdown,{content:(0,m.stripMarkers)(a.content.split("\n").slice(1).join("\n").trimStart()),isUser:"user"===a.role})})]})]})]}),a.attachments&&a.attachments.length>0&&(0,b.jsx)("div",{className:`mb-4 ${"user"!==a.role?"ml-[52px]":""}`,children:(0,b.jsx)(r,{attachments:a.attachments,compact:!0})}),G&&(0,b.jsx)("div",{className:"mb-4 text-sm text-[var(--muted-foreground)] leading-relaxed",children:(0,b.jsx)(k.Markdown,{content:G,isUser:!1})}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 pt-2 mt-2 border-t border-[var(--card-border)]",children:[n&&y&&y.replyCount>0&&(0,b.jsxs)("button",{type:"button",onClick:()=>n(a.id),disabled:t?.has(a.id),className:"flex items-center gap-1.5 px-3 py-1.5 bg-[var(--app-shell-subtle)] hover:bg-[var(--item-hover-bg)] text-[var(--foreground)] border border-[var(--card-border)] text-xs font-medium rounded-lg transition-colors disabled:opacity-50",children:[t?.has(a.id)?(0,b.jsx)(I.Loader2,{className:"w-3.5 h-3.5 animate-spin text-[var(--muted-foreground)]"}):(0,b.jsx)(_.Clock,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)]"}),t?.has(a.id)?"Summarizing…":"Summarize"]}),p&&y&&y.replyCount>0&&(0,b.jsxs)("button",{type:"button",onClick:()=>p(a.id),disabled:u?.has(a.id),className:"flex items-center gap-1.5 px-3 py-1.5 bg-[var(--app-shell-subtle)] hover:bg-[var(--item-hover-bg)] text-[var(--foreground)] border border-[var(--card-border)] text-xs font-medium rounded-lg transition-colors disabled:opacity-50",children:[u?.has(a.id)?(0,b.jsx)(I.Loader2,{className:"w-3.5 h-3.5 animate-spin text-[var(--muted-foreground)]"}):(0,b.jsx)(aa,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)]"}),u?.has(a.id)?"Extracting…":w?.[a.id]?"Re-extract tasks":"Create tasks"]}),y&&y.replyCount>0&&f&&(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2 cursor-pointer hover:opacity-80 transition-opacity",onClick:()=>f(a.id),children:[(0,b.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)] font-medium",children:[y.replyCount," replies"]}),(0,b.jsx)("div",{className:"flex -space-x-2",children:y.participants.slice(0,3).map(a=>{if("user"===a)return(0,b.jsx)("div",{className:"w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--card-bg)] flex items-center justify-center z-10",children:(0,b.jsx)($.User,{className:"w-3 h-3 text-[var(--muted-foreground)]"})},"user");let c=J[a];return c?(0,b.jsx)("img",{src:(0,l.agentAvatarUrl)(a,24,c.color),alt:c.name,className:"w-6 h-6 rounded-full border-2 border-[var(--card-bg)] object-cover z-10"},a):(0,b.jsx)("div",{className:"w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--card-bg)] z-10"},a)})})]})]}),w?.[a.id]&&(w[a.id].builtTaskIds&&Object.keys(w[a.id].builtTaskIds).length>0?(0,b.jsx)(T,{draft:w[a.id],onPush:(b,c,d)=>s?.(a.id,b,c,d),pushing:v?.has(w[a.id].draftId)}):(0,b.jsx)(M,{draft:w[a.id],onUpdate:b=>q?.(a.id,b),onBuild:(b,c,d)=>s?.(a.id,b,c,d),building:v?.has(w[a.id].draftId)})),u?.has(a.id)&&(0,b.jsxs)("div",{className:"mt-4 flex items-center gap-2 text-xs text-[var(--app-shell-muted)]",children:[(0,b.jsx)(I.Loader2,{className:"w-3.5 h-3.5 animate-spin"}),(0,b.jsx)("span",{children:"Extracting tasks…"})]})]})}),Object.entries(d).filter(([,b])=>b.rootMessageId===a.id).map(([a,c])=>{let d=J[a];return(0,b.jsx)("div",{className:"px-6 pb-4",children:(0,b.jsx)(o,{participantId:a,participantName:d?.name||a,participantColor:d?.color||"#888",content:c.content})},`streaming-${a}`)})]})]},a.id)})]})})}let ai=(0,t.default)("message-square-text",[["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"}],["path",{d:"M7 11h10",key:"1twpyw"}],["path",{d:"M7 15h6",key:"d9of3u"}],["path",{d:"M7 7h8",key:"af5zfr"}]]);var aj=a.i(724938);let ak={ack:{symbol:"👍",label:"Acknowledged"},working:{symbol:"🔄",label:"Working"},done:{symbol:"✅",label:"Done"},clarify:{symbol:"❓",label:"Needs clarification"},blocked:{symbol:"⛔",label:"Blocked"}};function al({type:a,count:c,participantIds:d}){let e=ak[a],f=d.join(", "),g=f?`${e.label}: ${f}`:e.label;return(0,b.jsxs)("span",{title:g,className:"inline-flex items-center gap-1 rounded-full border border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-2 py-0.5 text-xs text-[var(--foreground)]",children:[(0,b.jsx)("span",{"aria-hidden":!0,children:e.symbol}),(0,b.jsx)("span",{className:"tabular-nums",children:c})]})}function am({reactions:a}){if(!a||0===a.length)return null;let c=[...a].sort((a,b)=>b.count!==a.count?b.count-a.count:a.type.localeCompare(b.type));return(0,b.jsx)("div",{className:"mt-1 flex flex-wrap items-center gap-1",children:c.map(a=>(0,b.jsx)(al,{type:a.type,count:a.count,participantIds:a.participantIds},a.type))})}function an({messages:a,streaming:d,participants:e,rootMessageId:f,queued:g=!1,onClose:h,onCopyThread:i,onAddToChat:n,onDeleteThreadRoot:o,onDeleteMessage:p,highlightedMessageId:q,renderReplyComposer:s,activeProcesses:t=[]}){let u=(0,c.useRef)(null),v=(0,c.useRef)(new Map),w=Object.fromEntries(e.map(a=>[a.id,a])),x=(0,c.useMemo)(()=>{let b=a.find(a=>a.id===f),c=a.filter(a=>a.rootMessageId===f).sort((a,b)=>a.timestamp-b.timestamp);return b?[b,...c]:c},[a,f]),y=(0,c.useRef)(null),z=(0,c.useRef)(!1),B=(0,c.useRef)(null);return(0,c.useEffect)(()=>{let a=y.current;if(!a)return;let b=()=>{let{scrollTop:b,scrollHeight:c,clientHeight:d}=a;z.current=c-b-d>80};return a.addEventListener("scroll",b,{passive:!0}),()=>a.removeEventListener("scroll",b)},[]),(0,c.useEffect)(()=>{if(q&&q!==B.current){B.current=q;let a=v.current.get(q);a&&a.scrollIntoView({behavior:"smooth",block:"center"})}else q||z.current||(B.current=null,u.current?.scrollIntoView({behavior:"smooth"}))},[q,x,d]),(0,b.jsxs)("div",{className:"flex flex-col h-full overflow-hidden bg-[var(--app-shell-bg)] transition-colors",children:[t.length>0&&(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 px-4 py-2 border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] backdrop-blur-md transition-colors",children:[(0,b.jsxs)("div",{className:"inline-flex items-center gap-2 text-[11px] font-medium text-[var(--app-shell-muted)]",children:[(0,b.jsx)(aj.Sparkles,{className:"h-3.5 w-3.5 text-indigo-500",strokeWidth:1.75}),(0,b.jsx)("span",{className:"uppercase tracking-[0.16em]",children:"Working"})]}),(0,b.jsx)("div",{className:"flex items-center -space-x-1.5",children:t.map(a=>{let c=w[a.agentId];return(0,b.jsxs)("div",{className:"relative",title:`${c?.name||a.agentId} — ${a.state}`,children:[(0,b.jsx)("img",{src:(0,l.agentAvatarUrl)(a.agentId,24,c?.color),alt:c?.name||a.agentId,className:"w-6 h-6 rounded-full border-2 border-[var(--app-shell-surface)] shadow-sm"}),(0,b.jsx)("span",{className:"absolute -bottom-0.5 -right-0.5 w-2.5 h-2.5 bg-green-400 rounded-full border-2 border-[var(--app-shell-surface)] animate-pulse"})]},a.agentId)})})]}),(0,b.jsx)("div",{ref:y,className:"flex-1 overflow-y-auto p-4 md:p-8 space-y-6 chat-scrollbar",children:(0,b.jsxs)("div",{className:"max-w-2xl mx-auto space-y-8 pb-4",children:[x.map(a=>{let c,d="user"===a.role,e=a.participantId?w[a.participantId]:null;return(0,b.jsxs)("div",{ref:b=>{var c;return c=a.id,void(b?v.current.set(c,b):v.current.delete(c))},"data-message-id":a.id,className:"group relative flex gap-4 ",children:[(0,b.jsx)("div",{className:"flex-shrink-0 mt-1",children:d?(0,b.jsx)("div",{className:"w-9 h-9 bg-[var(--app-shell-subtle)] rounded-full flex items-center justify-center text-[var(--app-shell-muted)] shadow-sm",children:(0,b.jsx)($.User,{className:"w-5 h-5"})}):(0,b.jsx)(j.default,{href:`/agents/${e?.id||a.participantId||"assistant"}`,className:"hover:ring-2 hover:ring-[var(--ring)] rounded-full transition-shadow",children:(0,b.jsx)("img",{src:e?(0,l.agentAvatarUrl)(e.id,36,e.color):(0,l.agentAvatarUrl)(a.participantId||"assistant",36),alt:e?.name||a.participantId||"Assistant",className:"w-9 h-9 rounded-full shadow-sm border border-[var(--app-shell-border)] object-cover bg-[var(--app-shell-subtle)]"})})}),(0,b.jsxs)("div",{className:"flex-1 space-y-1.5 max-w-full overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[d?(0,b.jsx)("span",{className:"font-bold text-sm text-[var(--foreground)]",children:"You"}):(0,b.jsx)(j.default,{href:`/agents/${e?.id||a.participantId||"assistant"}`,className:"font-bold text-sm text-[var(--foreground)] hover:underline",style:e?.color?{color:e.color}:void 0,children:e?.name||a.participantId||"Assistant"}),void 0===a.rootMessageId&&a.id===f&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] rounded font-mono uppercase",children:"ROOT"}),(0,b.jsx)("span",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:(c=a.timestamp,new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(c))})]}),(0,b.jsxs)("div",{className:`surface-card rounded-2xl p-5 text-[15px] leading-relaxed ${a.id===q?"ring-2 ring-[var(--ring)]":""}`,children:[(0,b.jsx)(k.Markdown,{content:(0,m.stripMarkers)(a.content),isUser:d}),a.attachments&&a.attachments.length>0&&(0,b.jsx)(r,{attachments:a.attachments}),a.reactions&&a.reactions.length>0&&(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)(am,{reactions:a.reactions})})]}),(0,b.jsxs)(U,{children:[a.id===f&&(0,b.jsx)(W,{variant:"primary",size:"sm",onClick:()=>navigator.clipboard.writeText(a.id),title:"Copy message ID",children:(0,b.jsx)(ab,{className:"w-3.5 h-3.5"})}),a.id===f&&i&&(0,b.jsx)(W,{variant:"neutral",size:"sm",onClick:()=>i(a.id),title:"Copy Thread",children:(0,b.jsx)(ai,{className:"w-3.5 h-3.5"})}),(0,b.jsx)(W,{variant:"neutral",size:"sm",onClick:()=>navigator.clipboard.writeText(a.content),title:"Copy as Markdown",children:(0,b.jsx)(A.Copy,{className:"w-3.5 h-3.5"})}),a.id===f&&o&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(V,{}),(0,b.jsx)(W,{variant:"destructive",size:"sm",onClick:()=>o(a.id),title:"Delete Thread",children:(0,b.jsx)(Z.Trash2,{className:"w-3.5 h-3.5"})})]}),a.id!==f&&p&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(V,{}),(0,b.jsx)(W,{variant:"destructive",size:"sm",onClick:()=>p(a.id),title:"Delete Message",children:(0,b.jsx)(Z.Trash2,{className:"w-3.5 h-3.5"})})]})]})]})]},a.id)}),g&&0===t.length&&(0,b.jsxs)("div",{className:"flex gap-3 group relative opacity-80 animate-in fade-in slide-in-from-bottom-1 duration-300",children:[(0,b.jsx)("div",{className:"flex-shrink-0 mt-0.5",children:(0,b.jsx)("div",{className:"w-7 h-7 rounded-full border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] flex items-center justify-center",children:(0,b.jsx)(aj.Sparkles,{className:"w-3.5 h-3.5 text-[var(--app-shell-soft-text)]",strokeWidth:1.5})})}),(0,b.jsx)("div",{className:"flex-1 max-w-full overflow-hidden",children:(0,b.jsxs)("div",{className:"flex items-center gap-2 py-1",children:[(0,b.jsx)("span",{className:"text-xs tracking-wide text-[var(--app-shell-soft-text)]",children:"Processing"}),(0,b.jsxs)("span",{className:"inline-flex items-center gap-[3px]",children:[(0,b.jsx)("span",{className:"w-1 h-1 rounded-full bg-[var(--app-shell-soft-text)]/50 animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,b.jsx)("span",{className:"w-1 h-1 rounded-full bg-[var(--app-shell-soft-text)]/50 animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,b.jsx)("span",{className:"w-1 h-1 rounded-full bg-[var(--app-shell-soft-text)]/50 animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})]})})]}),Object.entries(d).filter(([,a])=>a.rootMessageId===f).map(([a,c])=>{let d=w[a],e=c.content.trim().length>0;return(0,b.jsxs)("div",{className:"flex gap-4 group relative animate-in fade-in slide-in-from-bottom-2 duration-300",children:[(0,b.jsx)("div",{className:"flex-shrink-0 mt-1",children:(0,b.jsx)(j.default,{href:`/agents/${d?.id||a}`,className:"hover:ring-2 hover:ring-[var(--ring)] rounded-full transition-shadow",children:(0,b.jsx)("img",{src:d?(0,l.agentAvatarUrl)(d.id,36,d.color):(0,l.agentAvatarUrl)(a,36),alt:d?.name||a,className:"w-9 h-9 rounded-full shadow-sm border border-[var(--app-shell-border)] object-cover bg-[var(--app-shell-subtle)]"})})}),(0,b.jsxs)("div",{className:"flex-1 space-y-1.5 max-w-full overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(j.default,{href:`/agents/${d?.id||a}`,className:"font-bold text-sm text-[var(--foreground)] hover:underline",style:d?.color?{color:d.color}:void 0,children:d?.name||a}),!e&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-[3px]",children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})]}),e&&(0,b.jsx)("div",{className:"surface-card rounded-2xl p-5 text-[15px] leading-relaxed",children:(0,b.jsx)(k.Markdown,{content:(0,m.stripMarkers)(c.content),isUser:!1})})]})]},`streaming-${a}`)}),(0,b.jsx)("div",{ref:u,className:"h-4"})]})}),(0,b.jsx)("div",{className:"z-20 transition-colors duration-200",children:s(f)})]})}var ao=a.i(971382);let ap=(0,t.default)("search-x",[["path",{d:"m13.5 8.5-5 5",key:"1cs55j"}],["path",{d:"m8.5 8.5 5 5",key:"a8mexj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);function aq({query:a,results:c,total:d,participants:e,threadTitleById:f,isLoading:g,error:h,onSelectResult:i,headerSlot:k}){let m=Object.fromEntries(e.map(a=>[a.id,a]));return(0,b.jsx)("div",{className:"chat-scrollbar flex-1 overflow-y-auto p-4",children:(0,b.jsxs)("div",{className:"max-w-3xl mx-auto",children:[k?(0,b.jsx)("div",{className:"sticky top-0 z-20 bg-[var(--app-shell-subtle)]/70 backdrop-blur-md pt-4 pb-6 px-4 -mx-4 border-b border-transparent transition-colors",children:(0,b.jsx)("div",{className:"max-w-2xl mx-auto",children:k})}):null,(0,b.jsxs)("div",{className:"mb-4 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] px-4 py-3",children:[(0,b.jsx)("div",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Search results"}),(0,b.jsx)("div",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:g?"Searching…":`${d} result${1===d?"":"s"} for "${a}"`}),h?(0,b.jsx)("div",{className:"mt-2 text-sm text-rose-600",children:h}):null]}),g||h||0!==c.length?null:(0,b.jsxs)("div",{className:"mt-20 flex flex-col items-center justify-center space-y-2 text-[var(--app-shell-muted)]",children:[(0,b.jsx)(ap,{className:"h-6 w-6",strokeWidth:1.5}),(0,b.jsx)("p",{className:"text-sm font-medium",children:"No matching messages"})]}),(0,b.jsx)("div",{className:"space-y-3 pb-6",children:c.map(a=>{var c;let d=a.participantId?m[a.participantId]:null,e=f[a.threadId]||"Untitled thread",g="user"===a.role?"You":d?.name||a.participantId||"Assistant";return(0,b.jsxs)("button",{type:"button",onClick:()=>i(a),className:"w-full rounded-xl border border-[var(--border)] bg-[var(--card-bg)] p-4 text-left transition hover:border-[var(--border)] hover:shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-slate-400",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)("div",{className:"flex h-8 w-8 items-center justify-center overflow-hidden rounded-full bg-[var(--muted)]",children:"user"===a.role?(0,b.jsx)($.User,{className:"h-4 w-4 text-[var(--foreground)]"}):d?(0,b.jsx)(j.default,{href:`/agents/${d.id}`,onClick:a=>a.stopPropagation(),className:"h-full w-full hover:ring-2 hover:ring-blue-300 rounded-full transition-shadow",children:(0,b.jsx)("img",{src:(0,l.agentAvatarUrl)(d.id,32,d.color),alt:"",className:"h-full w-full object-cover"})}):(0,b.jsx)(ao.Bot,{className:"h-4 w-4 text-[var(--foreground)]"})}),(0,b.jsxs)("div",{className:"min-w-0",children:["user"!==a.role&&d?(0,b.jsx)(j.default,{href:`/agents/${d.id}`,onClick:a=>a.stopPropagation(),className:"truncate text-sm font-semibold text-[var(--foreground)] hover:underline block",children:g}):(0,b.jsx)("p",{className:"truncate text-sm font-semibold text-[var(--foreground)]",children:g}),(0,b.jsx)("p",{className:"truncate text-xs text-[var(--muted-foreground)]",children:e})]})]}),(0,b.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:(c=a.timestamp,new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}).format(c))})]}),(0,b.jsx)("p",{className:"text-sm leading-relaxed text-[var(--foreground)]",children:function(a){let c=a.split(/(<\/?mark>)/g),d=!1,e=[];for(let[a,f]of c.entries()){if("<mark>"===f){d=!0;continue}if("</mark>"===f){d=!1;continue}f&&e.push(d?(0,b.jsx)("mark",{className:"rounded bg-amber-200/80 px-0.5",children:f},`${a}-mark`):(0,b.jsx)("span",{children:f},`${a}-text`))}return e}(a.snippet)})]},`${a.threadId}-${a.messageId}`)})})]})})}var ar=a.i(689882),as=a.i(455106),at=a.i(427411);let au={activeParticipantIdsByThread:{}};function av(a,b){let c=a.trim();c&&(({...au}).activeParticipantIdsByThread[c]=function(a){if(!Array.isArray(a))return[];let b=new Set,c=[];for(let d of a){if("string"!=typeof d)continue;let a=d.trim();!a||b.has(a)||(b.add(a),c.push(a))}return c}(b))}let aw={threadSidebarVisible:!1,workspaceRoots:[],homeSearchConsent:!1,fileIgnorePatterns:[]};function ax(a){return a&&"object"==typeof a?{threadSidebarVisible:"boolean"==typeof a.threadSidebarVisible?a.threadSidebarVisible:aw.threadSidebarVisible,workspaceRoots:Array.isArray(a.workspaceRoots)?a.workspaceRoots.filter(a=>"string"==typeof a):aw.workspaceRoots,homeSearchConsent:"boolean"==typeof a.homeSearchConsent?a.homeSearchConsent:aw.homeSearchConsent,fileIgnorePatterns:Array.isArray(a.fileIgnorePatterns)?a.fileIgnorePatterns.filter(a=>"string"==typeof a):aw.fileIgnorePatterns}:aw}let ay="/api/userPreferences";function az(a){return a.json().then(a=>a&&"object"==typeof a?ax(a.preferences??a):ax(a)).catch(()=>ax(null))}function aA(a){return a.statusText||`Failed to reach ${ay} (${a.status})`}async function aB(){let a=await fetch(ay,{cache:"no-store"});if(!a.ok)throw Error(aA(a));return az(a)}async function aC(a){let b=await fetch(ay,{method:"POST",headers:{"Content-Type":"application/json"},cache:"no-store",body:JSON.stringify({preferences:a})});if(!b.ok)throw Error(aA(b));return az(b)}var aD=a.i(785061),aE=a.i(734709),aF=a.i(830284),aG=a.i(542341),aH=a.i(754812),aI=a.i(962684),aI=aI;let aJ=(0,t.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"}]]);var aK=a.i(523321),aL=a.i(508869),aM=a.i(328400),aN=a.i(372871),aN=aN;function aO({logs:a,participants:d,onClear:e,open:f,onToggle:g}){let[h,i]=(0,c.useState)(420),[j,k]=(0,c.useState)(null),l=(0,c.useRef)(null),m=(0,c.useRef)(!1),n=(0,c.useRef)(0),o=(0,c.useRef)(0),p=Object.fromEntries(d.map(a=>[a.id,a]));(0,c.useEffect)(()=>{f&&l.current?.scrollIntoView({behavior:"smooth"})},[a.length,f]);let q=(0,c.useCallback)(a=>{a.preventDefault(),m.current=!0,n.current=a.clientX,o.current=h,a.target.setPointerCapture(a.pointerId)},[h]),r=(0,c.useCallback)(a=>{if(!m.current)return;let b=n.current-a.clientX;i(Math.max(280,Math.min(o.current+b,.6*window.innerWidth)))},[]),s=(0,c.useCallback)(()=>{m.current=!1},[]);if(!f)return null;let t=j?a.filter(a=>a.participantId===j):a;return(0,b.jsxs)("div",{className:"flex h-full shrink-0",children:[(0,b.jsx)("div",{onPointerDown:q,onPointerMove:r,onPointerUp:s,className:"w-1.5 cursor-col-resize bg-zinc-800 hover:bg-zinc-600 transition-colors flex items-center justify-center shrink-0",children:(0,b.jsx)("div",{className:"h-8 w-0.5 rounded-full bg-zinc-500"})}),(0,b.jsxs)("div",{className:"flex flex-col bg-zinc-950 h-full",style:{width:h},children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 border-b border-zinc-800 shrink-0",children:[(0,b.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)] font-mono",children:"Logs"}),(0,b.jsxs)("select",{value:j||"",onChange:a=>k(a.target.value||null),className:"bg-zinc-800 text-zinc-300 text-[11px] rounded px-1.5 py-0.5 outline-none",children:[(0,b.jsx)("option",{value:"",children:"All"}),d.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,b.jsx)("button",{onClick:e,className:"text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300",children:"Clear"}),(0,b.jsx)("button",{onClick:g,className:"text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300",children:"✕"})]})]}),(0,b.jsxs)("div",{className:"flex-1 overflow-y-auto font-mono text-[11px] leading-4 px-3 py-2",children:[t.map((a,c)=>{let d=p[a.participantId]?.name||a.participantId,e=p[a.participantId]?.color||"#888",f="stderr"===a.stream;return(0,b.jsxs)("div",{className:"flex gap-2 whitespace-pre-wrap break-all",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)] shrink-0 select-none",children:new Date(a.timestamp).toLocaleTimeString([],{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}),(0,b.jsx)("span",{className:"shrink-0",style:{color:e},children:d}),(0,b.jsx)("span",{className:f?"text-red-400":"text-[var(--muted-foreground)]",children:a.line})]},c)}),(0,b.jsx)("div",{ref:l})]})]})]})}var aP=a.i(166621);function aQ(a,b=!1){return(b?a.replace(/(?:^|\n)Thinking\.\.\.[\s\S]*?\.\.\.done thinking\.?\s*/g,"\n").trim():a).replaceAll("<!-- thread-summary -->","").replaceAll("<!-- task-draft -->","").trim().replace(/\r\n/g,"\n").replace(/\n{3,}/g,"\n\n").trim()}async function aR(a){let b=await fetch(`/api/threads/knowledge?rootMessageId=${encodeURIComponent(a)}`,{cache:"no-store"});if(!b.ok)throw Error("Failed to load thread knowledge run");let c=await b.json().catch(a=>(console.warn("[ChatContainer] failed to parse thread knowledge response:",a),null));return c?.run??null}function aS(a,b,c){let d=new Set(a.map(a=>a.id)),e=c?b.find(a=>a.thread_ids?.includes(c)):b[0],f=e?e.agents.map(a=>a.agent_id).filter(a=>d.has(a)):[];return e?f:0===f.length?a.map(a=>a.id):f}function aT(a,b,c){let d=Object.fromEntries(b.map(a=>[a.id,a])),e=[];for(let b of a){let a="user"===b.role?"You":b.participantId?d[b.participantId]?.name||b.participantId:"Assistant",c=aQ(b.content,"user"!==b.role);c&&(e.push(`**${a}:**`),e.push(""),e.push(c),e.push(""))}if(c){let a=function(a){if(0===a.tasks.length)return"";let b=new Map(a.tasks.map(a=>[a.id,a.title.trim()])),c=["## Draft Tasks",""];return a.projectName&&c.push(`Project: ${a.projectName}`),a.buildStatus&&c.push(`Build status: ${a.buildStatus.replaceAll("_"," ")}`),(a.projectName||a.buildStatus)&&c.push(""),a.tasks.forEach((d,e)=>{let f=aQ(d.title)||`Task ${e+1}`,g=aQ(d.description),h=(d.dependsOn||[]).map(a=>b.get(a)?.trim()).filter(a=>!!a),i=a.builtTaskIds?.[d.id];c.push(`${e+1}. [ ] **${f}**`),g&&c.push(g),h.length>0&&c.push(`Depends on: ${h.join(", ")}`),i&&c.push(`agx task id: \`${i}\``),c.push("")}),c.join("\n").trim()}(c);a&&e.push(a)}return e.join("\n").trim()}a.s(["ChatContainer",0,function({projectSlug:a,initialThreadId:j,initialRootMessageId:k,showSidebar:l=!0}={}){let{getSelection:m,pushSelection:n,replaceSelection:o}=(0,e.useUrlSelection)(),{threads:p,activeThreadId:q,selectThread:r,createThread:s,deleteThread:t,updateThreadMessages:u,isCreating:v,deletingThreadId:w,renamingThreadId:x,isLoading:y,isRestoringActiveThread:z,renameThread:A,updateThreadStatus:B,updateThreadOutcomeNote:C,updateMessageThreadStatus:D,updateMessageOutcomeNote:E}=(0,h.useThreadState)(j),{messages:F,setMessages:G,logs:I,sendMessage:J,loadHistory:K,clearLogs:L,chatRuns:M,setChatRuns:N,stop:O,stopThread:P}=(0,f.useGroupChat)(q),{activeAgents:Q,processes:R,streaming:S,chatRuns:T,poll:U}=(0,g.useProcessPolling)(q?{workspaceId:q}:null,{messages:F,setMessages:G}),V=(0,c.useMemo)(()=>{let a=Date.now(),b=new Map(T.map(a=>[a.chatRunId,a]));for(let c of M)!(!c.optimistic||b.has(c.chatRunId))&&(a-(c.enqueuedAt??0)>5e3||b.set(c.chatRunId,c));return Array.from(b.values()).filter(a=>"queued"===a.status||"running"===a.status)},[M,T]),W=Q.size>0||V.some(a=>"running"===a.status)?"working":V.some(a=>"queued"===a.status)?"queued":"ready";(0,c.useEffect)(()=>{N(a=>{let b=Date.now(),c=new Map(a.filter(a=>"string"==typeof a.chatRunId&&a.chatRunId.length>0).map(a=>[a.chatRunId,a]));for(let a of T)a?.chatRunId&&c.set(a.chatRunId,a);return Array.from(c.values()).filter(a=>!!(!a.optimistic||T.some(b=>b.chatRunId===a.chatRunId))||b-(a.enqueuedAt??0)<=5e3).sort((a,b)=>String(a.chatRunId||"").localeCompare(String(b.chatRunId||"")))})},[T,N]);let X=(0,c.useCallback)(async a=>{await fetch(`/api/chat-runs/${encodeURIComponent(a)}/signal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({signal:"cancel",reason:"Stopped from chat UI"})}).catch(a=>console.warn("[ChatContainer] cancel chat run failed:",a))},[]),Y=(0,c.useCallback)(async()=>{let a=V[0];a?.chatRunId&&await X(a.chatRunId),await O(),await U()},[V,X,O,U]),Z=(0,c.useCallback)(async a=>{let b=V.find(b=>b.rootMessageId===a);b?.chatRunId&&await X(b.chatRunId),await P(a),await U()},[V,X,P,U]),$=(0,c.useRef)(Y);(0,c.useEffect)(()=>{$.current=Y},[Y]);let{projects:_,createProject:aa,deleteProject:ab,addAgent:ac,removeAgent:ad,reorderAgents:ae}=(0,aF.useProjectsWithAgents)(),{projects:af,updateProject:ag}=(0,aF.useProjects)(),ai=(0,c.useMemo)(()=>q?_.filter(a=>a.thread_ids?.includes(q)):_,[_,q]),aj=(0,c.useMemo)(()=>a||ai[0]?.slug||void 0,[a,ai]),[ak,al]=(0,c.useState)([]),[am,ao]=(0,c.useState)(!1),[ap,aw]=(0,c.useState)([]),[ax,ay]=(0,c.useState)(!1),[az,aA]=(0,c.useState)(()=>"light"),[aQ,aU]=(0,c.useState)(!1),[aV,aW]=(0,c.useState)(368),aX=(0,c.useRef)(!1);(0,c.useEffect)(()=>{let a=(0,as.loadWorkspaceSidebarVisible)();aX.current=!0,aU(a),aW((0,at.loadWorkspaceWidth)()||368)},[]),(0,c.useEffect)(()=>{},[az]);let[aY,aZ]=(0,c.useState)(!1),[a$,a_]=(0,c.useState)(new Set),[a0,a1]=(0,c.useState)(!1),[a2,a3]=(0,c.useState)(!1),[a4,a5]=(0,c.useState)(null),a6=m("open"),a7=m("message"),a8=a?a6??k??null:k??null,a9=a8?a$.has(a8):a0;(0,c.useEffect)(()=>{if(!a8)return;let a=!1,b=()=>{fetch(`/api/schedules?rootMessageId=${encodeURIComponent(a8)}`).then(a=>a.json()).then(b=>{a||a_(a=>{let c=a.has(a8);if(b.active&&!c){let b=new Set(a);return b.add(a8),b}if(!b.active&&c){let b=new Set(a);return b.delete(a8),b}return a})}).catch(a=>console.warn("[ChatContainer] check auto-mode status failed:",a))};b();let c=setInterval(b,d.UI_POLL_CHAT_CHECK_MS);return()=>{a=!0,clearInterval(c)}},[a8]),(0,c.useEffect)(()=>{let a=!1,b=()=>{fetch("/api/schedules").then(a=>a.json()).then(b=>{!a&&b.activeRootMessageIds&&a_(a=>{let c=new Set(b.activeRootMessageIds);return c.size===a.size&&[...c].every(b=>a.has(b))?a:c})}).catch(a=>console.warn("[ChatContainer] fetch schedules failed:",a))};b();let c=setInterval(b,d.UI_POLL_CHAT_ALT_MS);return()=>{a=!0,clearInterval(c)}},[]);let ba=(0,c.useCallback)((b,c={})=>{let d=c.replace?o:n;if(a){let e=c.threadId??q??j??null;if(!e)return;d({open:b,message:c.messageId??null},`/projects/${a}/thread/${encodeURIComponent(e)}`);return}b?d({message:c.messageId??null},`/thread/${encodeURIComponent(b)}`):d({message:null},"/")},[q,j,a,n,o]);(0,c.useEffect)(()=>{k&&(async()=>{try{let a=await fetch(`/api/messages/${k}`);if(!a.ok)return;let{threadId:b}=await a.json();b&&r(b)}catch{}})()},[k,r]);let[bb,bc]=(0,c.useState)(""),[bd,be]=(0,c.useState)([]),[bf,bg]=(0,c.useState)(0),[bh,bi]=(0,c.useState)(!1),[bj,bk]=(0,c.useState)(null),[bl,bm]=(0,c.useState)(new Set),[bn,bo]=(0,c.useState)(null),[bp,bq]=(0,c.useState)(null),[br,bs]=(0,c.useState)({}),bt=(0,c.useCallback)(a=>{bs(b=>{let c="function"==typeof a?a(b):a;if(q)for(let[a,d]of Object.entries(c))b[a]!==d&&fetch("/api/task-drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:q,messageId:a,draft:d})}).catch(a=>console.warn("[ChatContainer] persist task draft failed:",a));return c})},[q]),[bu,bv]=(0,c.useState)(new Set),[bw,bx]=(0,c.useState)(new Set),by=(0,c.useRef)(null),bz=(0,c.useRef)(""),bA=(0,c.useCallback)(async(a=!1)=>{try{let a=await fetch("/api/participants");if(!a.ok)return;let b=await a.json();if(!Array.isArray(b))return;al(b)}finally{a&&ao(!0)}},[]),bB=(0,c.useCallback)(async a=>{try{await aC({threadSidebarVisible:a})}catch(a){console.error("Unable to persist thread sidebar preference",a)}},[aC]),bC=(0,c.useCallback)(a=>{(0,as.persistWorkspaceSidebarVisible)(a),bB(a)},[bB]),bD=bb.trim(),bE=bD.length>0,bF=(0,c.useMemo)(()=>Object.fromEntries(p.map(a=>[a.id,a.title?.trim()||"Untitled thread"])),[p]),bG=(0,c.useMemo)(()=>{if(!a8)return[];let a=new Set([F.find(a=>a.id===a8),...F.filter(a=>a.rootMessageId===a8)].filter(Boolean).map(a=>a.participantId).filter(Boolean));return Object.keys(S).forEach(b=>{S[b].rootMessageId===a8&&a.add(b)}),ak.filter(b=>a.has(b.id))},[a8,F,S,ak]),bH=(0,c.useMemo)(()=>{let a=new Map(ak.map(a=>[a.id,a]));return ap.map(b=>a.get(b)).filter(Boolean)},[ak,ap]),bI=(0,c.useMemo)(()=>af.map(a=>({id:a.id,name:a.name,slug:a.slug})),[af]),bJ=(0,c.useMemo)(()=>{if(!a8)return 0;let a=[F.find(a=>a.id===a8),...F.filter(a=>a.rootMessageId===a8)].filter(Boolean);return 0===a.length?0:Math.max(...a.map(a=>a.timestamp))},[a8,F]),bK=(0,c.useMemo)(()=>{if(!a8)return"";let a=F.find(a=>a.id===a8);if(!a)return"Discussion";let b=a.content.trim();return b.length>60?b.slice(0,60)+"...":b},[a8,F]),bL=(0,c.useMemo)(()=>{if(!a8)return null;let a=F.find(a=>a.id===a8),b=a?.threadStatus??"active";return{value:b,...{active:{label:"Active",color:"#f59e0b"},paused:{label:"Paused",color:"#f97316"},"in-review":{label:"In Review",color:"#6b7280"},done:{label:"Done",color:"#3b82f6"},archived:{label:"Archived",color:"#9ca3af"}}[b]}},[a8,F]);(0,c.useEffect)(()=>{if(!a7)return;let a=F.find(a=>a.id===a7)??null;if(a){let b=a.rootMessageId||a.id;b!==a8&&ba(b,{messageId:a7,replace:!0});return}!a8||[F.find(a=>a.id===a8),...F.filter(a=>a.rootMessageId===a8)].filter(Boolean).length>0&&o({message:null})},[F,ba,a8,o,a7]);let bM=(0,c.useCallback)(()=>{bc(""),be([]),bg(0),bk(null),bi(!1)},[]);(0,c.useCallback)(()=>{let a=aT(F,ak);navigator.clipboard.writeText(a).then(()=>{ay(!0),setTimeout(()=>ay(!1),2e3)})},[F,ak]);let[bN,bO]=(0,c.useState)(null),bP=(0,c.useCallback)(a=>{let b=F.find(b=>b.id===a);if(!b)return;let c=[b,...F.filter(b=>b.rootMessageId===a).sort((a,b)=>a.timestamp-b.timestamp)];bO({title:b.content.slice(0,60).replace(/\n/g," ").trim()||"Untitled",threadId:a,messages:c})},[F]),bQ=(0,c.useCallback)(a=>{let b=aT([F.find(b=>b.id===a),...F.filter(b=>b.rootMessageId===a).sort((a,b)=>a.timestamp-b.timestamp)].filter(Boolean),ak,br[a]);navigator.clipboard.writeText(b).catch(a=>console.error("Failed to copy thread",a))},[F,ak,br]),bR=(0,c.useCallback)(async()=>{if(a8){a3(!0);try{let a=["repo"];aj&&a.push("project");let b=await fetch("/api/threads/knowledge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:a8,scopes:a})}),c=await b.json().catch(a=>(console.warn("[ChatContainer] failed to parse knowledge extraction response:",a),null));if(!b.ok)throw Error("string"==typeof c?.error?c.error:"Request failed");a5(c?.run??null)}catch(b){let a=b instanceof Error?b.message:"Request failed";window.alert(`Failed to extract knowledge: ${a}`)}finally{a3(!1)}}},[a8,aj]);(0,c.useEffect)(()=>{if(!a8){a5(null),a3(!1);return}let a=!1;return(async()=>{try{let b=await aR(a8);if(a)return;a5(b)}catch{a||a5(null)}})(),()=>{a=!0}},[a8]),(0,c.useEffect)(()=>{if(!a8||a4?.status!=="running")return;let a=!1,b=async()=>{try{let b=await aR(a8);if(a)return;a5(b)}catch{}};b();let c=window.setInterval(()=>{b()},2e3);return()=>{a=!0,window.clearInterval(c)}},[a8,a4?.status]);let bS=a4?.status==="running",bT=a2||bS,bU=(a4?.repoInsertedCount??0)+(a4?.projectInsertedCount??0),bV=(0,c.useMemo)(()=>{if(!a4)return null;if("running"===a4.status)return"Learning in progress";if("failed"===a4.status)return"Last learning run failed";if(bU>0){let a=1===bU?"insight":"insights";return`Learned ${bU} ${a}`}return"No new learnings"},[bU,a4]);(0,c.useEffect)(()=>{bA(!0)},[bA]);let bW=(0,c.useMemo)(()=>{if(!am)return[];let a=new Set(ak.map(a=>a.id)),b=new Set;for(let c of F)"assistant"===c.role&&c.participantId&&(a.has(c.participantId)||b.add(c.participantId));for(let c of Object.keys(S))a.has(c)||b.add(c);return Array.from(b).sort()},[F,ak,am,S]);(0,c.useEffect)(()=>{if(!am)return;let a=bW.join("|");if(!a){bz.current="";return}bz.current!==a&&(bz.current=a,bA(!1))},[am,bA,bW]),(0,c.useEffect)(()=>{if(!am)return;let a=aS(ak,_,q);if(!q)return void aw(a);let b=function(a){let b=a.trim();if(!b)return null;let c={...au};return b in c.activeParticipantIdsByThread?[...c.activeParticipantIdsByThread[b]]:null}(q);if(null===b)return void aw(a);let c=function(a,b){if(null===b)return a;let c=new Set(b);return a.filter(a=>c.has(a))}(a,b),d=c.length>0?c:a;(d.length!==b.length||d.some((a,c)=>b[c]!==a))&&av(q,d),aw(d)},[q,ak,am,_]),(0,c.useEffect)(()=>{let a=!1;return(async()=>{try{let b=await aB();if(a)return;aU(a=>a===b.threadSidebarVisible?a:aX.current?(bB(a),a):((0,as.persistWorkspaceSidebarVisible)(b.threadSidebarVisible),b.threadSidebarVisible))}catch(a){console.error("Failed to load user preferences",a)}})(),()=>{a=!0}},[bB]),(0,c.useEffect)(()=>{y||v||0!==p.length||s({id:"global",title:"General"})},[y,v,p.length,s]),(0,c.useEffect)(()=>{if(a)return;let b=a=>{if((a.metaKey||a.ctrlKey)&&"k"===a.key.toLowerCase()){a.preventDefault(),by.current?.focus(),by.current?.select();return}"Escape"===a.key&&bD&&bM()};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[bM,bD,a]),(0,c.useEffect)(()=>{if(!bD){be([]),bg(0),bk(null),bi(!1);return}let a=!1;bi(!0);let b=window.setTimeout(()=>{(async()=>{try{let b=new URLSearchParams({q:bD,limit:"20",offset:"0"}),c=await fetch(`/api/search?${b.toString()}`),d=await c.json().catch(a=>(console.warn("[ChatContainer] failed to parse search response:",a),null));if(a)return;if(!c.ok){let a=d&&"object"==typeof d&&"error"in d?String(d.error):"Search failed";be([]),bg(0),bk(a);return}be(Array.isArray(d.results)?d.results:[]),bg("number"==typeof d.total?d.total:0),bk(null)}catch(b){if(a)return;console.error("Search request failed",b),be([]),bg(0),bk("Search failed")}finally{a||bi(!1)}})()},300);return()=>{a=!0,window.clearTimeout(b)}},[bD]);let bX=(0,c.useRef)(null);(0,c.useEffect)(()=>{null!==bX.current&&bX.current!==q&&$.current(),bX.current=q,q&&(K(q),fetch(`/api/task-drafts?threadId=${encodeURIComponent(q)}`).then(a=>a.json()).then(a=>{a.drafts&&Object.keys(a.drafts).length>0?bs(a.drafts):bs({})}).catch(a=>{console.warn("[ChatContainer] load task drafts failed:",a),bs({})}))},[q,K]),(0,c.useEffect)(()=>{q&&u(q,F)},[q,F,u]);let bY=(0,c.useCallback)((a,b,c=10,d,e,f)=>{q&&0!==bH.length&&J(b,c,q,a,void 0,void 0,(0,aD.orderParticipantIds)(bH.map(a=>a.id),d),aj,e,f)},[q,J,bH,aj]),bZ=(0,c.useCallback)(async a=>{if(q){if(0===bH.length)return void window.alert("Enable at least one agent in this project.");bm(b=>new Set(b).add(a));try{let b=await fetch("/api/summarize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:q,rootMessageId:a,activeParticipantIds:bH.map(a=>a.id)})});b.ok?await K(q):console.error("Summarize failed:",await b.text())}catch(a){console.error("Summarize error:",a)}finally{bm(b=>{let c=new Set(b);return c.delete(a),c})}}},[q,K,bH]),b$=(0,c.useCallback)(async a=>{if(q){if(0===bH.length)return void window.alert("Enable at least one agent in this project.");bv(b=>new Set(b).add(a));try{let b=await fetch("/api/tasks/extract",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:q,rootMessageId:a,activeParticipantIds:bH.map(a=>a.id)})});if(b.ok){let c=await b.json(),d={draftId:crypto.randomUUID(),revision:0,tasks:c.tasks,buildStatus:"idle"};bt(b=>({...b,[a]:d}))}else console.error("Task extraction failed:",await b.text())}catch(a){console.error("Task extraction error:",a)}finally{bv(b=>{let c=new Set(b);return c.delete(a),c})}}},[q,bH]),b_=(0,c.useCallback)((a,b)=>{bt(c=>({...c,[a]:b}))},[]),b0=(0,c.useCallback)(async(a,b,c,d)=>{if(q){bx(a=>new Set(a).add(b.draftId)),bt(e=>({...e,[a]:{...b,buildStatus:"building",projectId:c,projectName:d}}));try{let d=crypto.randomUUID(),e=await H(b.tasks,c,d,b.builtTaskIds),f={...b.builtTaskIds},g=!1;for(let a of e.results)"created"===a.status&&a.remoteTaskId?f[a.clientTaskId]=a.remoteTaskId:g=!0;bt(b=>({...b,[a]:{...b[a],buildId:d,buildStatus:g?"partial_failure":"done",builtTaskIds:f}}))}catch(b){console.error("Build error:",b),bt(b=>({...b,[a]:{...b[a],buildStatus:"partial_failure"}}))}finally{bx(a=>{let c=new Set(a);return c.delete(b.draftId),c})}}},[q]),b1=(0,c.useCallback)(()=>{if(!q)return;let a=(()=>{if(a8)return a8;let a=new Set(F.map(a=>a.rootMessageId).filter(a=>!!a));for(let b=F.length-1;b>=0;b-=1){let c=F[b];if(!c.rootMessageId&&a.has(c.id))return c.id}return null})();a?b$(a):console.warn("No thread with replies available to extract tasks from")},[q,b$,F,a8]);(0,c.useCallback)(a=>{ba(a)},[ba]);let b2=(0,c.useCallback)(a=>{ba(a)},[ba]),b3=(0,c.useCallback)(a=>{let b=a?.trim()??"";b&&bc(b),requestAnimationFrame(()=>{by.current?.focus(),b||by.current?.select()})},[]),b4=(0,c.useCallback)(()=>{if(!q)return;let a=(()=>{if(a8)return a8;let a=new Set(F.map(a=>a.rootMessageId).filter(a=>!!a));for(let b=F.length-1;b>=0;b-=1){let c=F[b];if(!c.rootMessageId&&a.has(c.id))return c.id}return null})();a?bZ(a):console.warn("No thread with replies available to summarize")},[q,bZ,F,a8]),b5=(0,c.useCallback)(async(a,b,c,d,e,f,g)=>{let h=a.match(/^\/search(?:\s+([\s\S]+))?$/i);if(h)return void b3(h[1]);if(/^\/summarize(?:\s+[\s\S]+)?$/i.test(a))return void b4();if(/^\/tasks(?:\s+[\s\S]+)?$/i.test(a)||/^\/create(?:\s+[\s\S]+)?$/i.test(a))return void b1();let i=q;i||(i=(await s()).id);let j=bH.map(a=>a.id);if(0===j.length)return void window.alert("Enable at least one agent in this project.");let k=(0,aD.orderParticipantIds)(j,e);if(a8)return void await J(a,b,i,a8,c,d,k,aj,f,g);let l=await J(a,b,i,null,c,d,k,aj,f,g);a0&&l&&(a1(!1),a_(a=>{let b=new Set(a);return b.add(l),b}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"activate",rootMessageId:l})}).catch(a=>console.error("Failed to activate schedule for new thread:",a)))},[q,a0,s,b3,b4,a8,bH,J,aj]),b6=(0,c.useCallback)(async a=>{if(!a8)return void a1(a);a_(b=>{let c=new Set(b);return a?c.add(a8):c.delete(a8),c});try{await fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:a?"activate":"stop",rootMessageId:a8})})}catch(a){console.error("Failed to toggle autonomous schedule:",a)}},[a8]),b7=(0,c.useCallback)(a=>{ba(a.rootMessageId||a.messageId,{messageId:a.messageId,threadId:a.threadId}),bM()},[bM,ba]),b8=(0,c.useCallback)(async a=>{Y(),await t(a)},[t,Y]),b9=(0,c.useCallback)(a=>{if(!q||!a)return;let b=F.find(b=>b.id===a);bq({type:"thread",id:a,preview:b?.content?.slice(0,120)||void 0})},[q,F]),ca=(0,c.useCallback)(async a=>{if(q){bo(a),Z(a);try{let b=new URLSearchParams({threadId:q,rootMessageId:a}),c=await fetch(`/api/history?${b.toString()}`,{method:"DELETE"});if(!c.ok)return void console.error("Failed to delete message thread",await c.text());let d=a7?F.find(a=>a.id===a7)??null:null,e=d?d.rootMessageId||d.id:null;a8===a?ba(null,{replace:!0}):e===a&&o({message:null});let f=F.filter(b=>b.id!==a&&b.rootMessageId!==a);u(q,f),await K(q)}catch(a){console.error("Failed to delete message thread",a)}finally{bo(b=>b===a?null:b)}}},[q,Z,K,F,ba,a8,o,a7,u]),cb=(0,c.useCallback)(a=>{if(!q||!a)return;let b=F.find(b=>b.id===a);bq({type:"message",id:a,preview:b?.content?.slice(0,120)||void 0})},[q,F]),cc=(0,c.useCallback)(async a=>{if(q)try{let b=new URLSearchParams({threadId:q,messageId:a}),c=await fetch(`/api/history?${b.toString()}`,{method:"DELETE"});if(!c.ok)return void console.error("Failed to delete message",await c.text());a7===a&&o({message:null});let d=F.filter(b=>b.id!==a);u(q,d),await K(q)}catch(a){console.error("Failed to delete message",a)}},[q,K,F,o,a7,u]),cd=(0,c.useCallback)(()=>{bp&&("thread"===bp.type?ca(bp.id):cc(bp.id),bq(null))},[bp,ca,cc]),ce=(0,c.useCallback)(()=>{bq(null)},[]),cf=(0,c.useMemo)(()=>[{name:"/search",description:"Search messages (usage: /search <query>)",aliases:["find"],execute:()=>b3()},{name:"/summarize",description:"Summarize current thread or latest thread with replies",aliases:["sum"],execute:()=>b4()},{name:"/tasks",description:"Extract tasks from current thread discussion",aliases:["create"],execute:()=>b1()}],[b3,b4,b1]),cg=(0,c.useMemo)(()=>{let a=aj?ai.find(a=>a.slug===aj):ai[0];return a?.repos??[]},[ai,aj]),[ch,ci]=(0,c.useState)(new Set),cj=(0,c.useRef)(null);(0,c.useEffect)(()=>{if(!a8){ci(new Set),cj.current=null;return}cj.current!==a8&&(ci(new Set),cj.current=a8,fetch(`/api/thread-repos?rootMessageId=${encodeURIComponent(a8)}`).then(a=>a.json()).then(a=>{cj.current===a8&&a.repoIds&&a.repoIds.length>0&&ci(new Set(a.repoIds))}).catch(a=>console.warn("[ChatContainer] load thread repos failed:",a)))},[a8]);let ck=(0,c.useCallback)(a=>{ci(a),a8&&fetch("/api/thread-repos",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:a8,repoIds:[...a]})}).catch(a=>console.warn("[ChatContainer] save thread repos failed:",a))},[a8]),cl=(0,c.useCallback)(a=>{let c=R.some(b=>["spawning","running"].includes(b.state)&&b.threadId===a)||Object.values(S).some(b=>b.rootMessageId===a)?"working":V.some(b=>b.rootMessageId===a&&"queued"===b.status)?"queued":"ready";return(0,b.jsx)(ar.Composer,{onSend:(b,c,d,e,f,g,h)=>bY(a,b,c,f,g,h),onStop:()=>Z(a),loading:"ready"!==c,activityStatus:c,participants:bH,projectGroups:ai,projects:bI,projectSlug:aj,messages:F,commands:cf,placeholder:"Reply — @name to mention, /search, /summarize",autoMode:a9,onAutoModeChange:b6,repos:cg,selectedRepoIds:ch,onRepoSelectionChange:ck})},[bY,Z,S,bH,ai,bI,aj,cf,F,a9,b6,R,V,cg,ch,ck]),cm=(0,c.useCallback)(()=>{aU(a=>{let b=!a;return bC(b),b})},[bC]),cn=(0,c.useCallback)(a=>{aW(a),(0,at.persistWorkspaceWidth)(a)},[]),co=async a=>{let b=await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(b.ok){let a=await b.json();al(b=>b.map(b=>b.id===a.id?a:b))}},cp=(0,c.useCallback)((a,b)=>{aw(c=>{let d=aS(ak,_,q);if(!new Set(d).has(a))return c;let e=new Set(c);b?e.add(a):e.delete(a);let f=d.filter(a=>e.has(a));return q&&av(q,f),f})},[q,ak,_]),cq=(0,c.useCallback)(a=>{let b=_.find(b=>b.id===a);if(!b||q&&!b.thread_ids?.includes(q))return;let c=b.agents.map(a=>a.agent_id);aw(c),q&&av(q,c)},[_,q]),cr=(0,c.useCallback)(()=>{aA(a=>"dark"===a?"light":"dark")},[]),cs=()=>(0,b.jsx)("button",{type:"button",onClick:cr,"aria-label":"dark"===az?"Switch to light theme":"Switch to dark theme",title:"dark"===az?"Switch to light theme":"Switch to dark theme",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(--app-shell-muted)] transition-all hover:border-[var(--app-shell-border-strong)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",children:"dark"===az?(0,b.jsx)(aL.Sun,{className:"h-4 w-4",strokeWidth:1.75}):(0,b.jsx)(aK.Moon,{className:"h-4 w-4",strokeWidth:1.75})}),ct=(0,b.jsxs)("div",{className:"relative group/search min-w-0 flex-1",children:[(0,b.jsx)(aG.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:2}),(0,b.jsx)("input",{ref:by,type:"text",value:bb,onChange:a=>bc(a.target.value),onKeyDown:a=>{"Escape"===a.key&&bM()},placeholder:"Search messages…",className:`w-full rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] pl-9 pr-16 text-sm 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)] ${a?"h-7 text-xs":"h-9"}`}),bD?(0,b.jsxs)("div",{className:"absolute right-3 top-1/2 flex -translate-y-1/2 items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:bh?"…":bf}),(0,b.jsx)("button",{type:"button",onClick:bM,className:"text-[10px] font-bold text-[var(--app-shell-soft-text)] transition-colors hover:text-[var(--app-shell-muted)]",children:"✕"})]}):(0,b.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"})]}),cu=a?null:(0,b.jsx)("div",{className:"desktop-titlebar border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6",children:(0,b.jsxs)("div",{className:"mx-auto flex max-w-5xl items-center gap-3",children:[(0,b.jsx)("div",{className:"flex min-w-0 items-center flex-shrink-0",children:l&&!aQ&&(0,b.jsx)("button",{type:"button",onClick:cm,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(--app-shell-muted)] transition hover:border-[var(--app-shell-border-strong)] hover:text-[var(--foreground)]",title:"Show sidebar","aria-label":"Show sidebar",children:(0,b.jsx)(aJ,{className:"h-4 w-4",strokeWidth:1.75})})}),(0,b.jsx)("div",{className:"flex flex-1 justify-center min-w-0",children:(0,b.jsxs)("div",{className:"flex w-full max-w-2xl items-center gap-2",children:[ct,(0,b.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[cs(),(0,b.jsx)(aP.StatusIndicator,{}),a8&&(0,b.jsx)("button",{type:"button",onClick:()=>aZ(!aY),"aria-label":aY?"Hide logs":`Show logs${I.length>0?` (${I.length})`:""}`,"aria-pressed":aY,title:aY?"Hide logs":`Show logs${I.length>0?` (${I.length})`:""}`,className:`inline-flex h-9 w-9 items-center justify-center rounded-xl border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${aY?"border-[var(--app-shell-border-strong)] bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:(0,b.jsx)(aI.default,{className:"h-4 w-4",strokeWidth:1.75})})]})]})})]})});return(0,b.jsxs)("div",{className:`flex ${a?"h-full":"h-screen"} bg-[var(--app-shell-bg)] text-[var(--foreground)]`,children:[l?(0,b.jsx)(i.WorkspaceSidebar,{threads:p,participants:ak,activeThreadId:q,isLoading:y,isRestoringActiveThread:z,isCreating:v,deletingThreadId:w,renamingThreadId:x,onSelectThread:r,onCreateThread:s,onRenameThread:A,onDeleteThread:b8,activeParticipantIds:ap,onToggleParticipantActive:cp,visible:aQ,onToggle:cm,width:aV,onWidthChange:cn,projects:_,onCreateProject:aa,onUpdateProject:ag,onDeleteProject:ab,onAddAgentToProject:ac,onRemoveAgentFromProject:ad,onReorderProjectAgents:ae,onUpdateParticipant:co,onSelectProject:cq}):null,(0,b.jsx)("div",{className:"flex flex-col flex-1 min-w-0 relative",children:z?(0,b.jsx)("div",{className:"flex-1 flex items-center justify-center px-4 text-sm text-[var(--muted-foreground)]",children:"Loading your last project…"}):(0,b.jsx)("div",{className:"flex flex-1 min-h-0 bg-transparent relative",children:(0,b.jsxs)("div",{className:"flex flex-col flex-1 min-w-0",children:[a8?(0,b.jsx)("div",{className:"desktop-titlebar border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6 transition-colors duration-200 shrink-0",children:(0,b.jsxs)("div",{className:"mx-auto flex max-w-5xl items-center gap-3 min-w-0",children:[(0,b.jsx)("button",{onClick:()=>ba(null),className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--primary)] hover:bg-[var(--app-shell-subtle)] rounded-xl transition-all active:scale-95 flex-shrink-0",title:"Back to main feed",children:(0,b.jsx)(aH.ChevronLeft,{size:20,strokeWidth:2.25})}),(0,b.jsxs)("div",{className:"flex-1 flex flex-col min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,b.jsx)("h2",{className:"text-[15px] font-semibold text-[var(--foreground)] tracking-tight leading-tight truncate min-w-0",children:bK}),bL&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border shrink-0",style:{borderColor:bL.color+"40",color:bL.color},children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:bL.color}}),bL.label]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-[11px] font-medium text-[var(--app-shell-muted)]",children:[(0,b.jsxs)("span",{className:"opacity-80",children:[bG.length," agents"]}),(0,b.jsx)("span",{className:"h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]"}),(0,b.jsxs)("span",{className:"opacity-80",children:["Updated ",function(a){if(!a)return"recently";let b=Math.floor((Date.now()-a)/1e3);if(b<60)return"just now";let c=Math.floor(b/60);if(c<60)return`${c}m ago`;let d=Math.floor(c/60);return d<24?`${d}h ago`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(a)}(bJ)]}),bV&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]"}),(0,b.jsx)("span",{className:"opacity-80",children:bV})]})]})]}),(0,b.jsx)("div",{className:"flex -space-x-1.5 flex-shrink-0",children:bG.map(a=>(0,b.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${a.id}&backgroundColor=${a.color?a.color.replace("#",""):"e2e8f0"}`,alt:a.name,className:"h-7 w-7 rounded-full border-2 border-[var(--app-shell-elevated)] object-cover shadow-sm ring-1 ring-[var(--app-shell-border)]",title:a.name},a.id))}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>void bR(),disabled:bT,title:bS?"Learning is already running for this discussion":"Learn from this discussion",className:`inline-flex h-9 items-center gap-1.5 rounded-xl border px-3 text-xs font-medium transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${bT?"cursor-wait border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:[bT?(0,b.jsx)(aN.default,{className:"h-3.5 w-3.5 animate-spin",strokeWidth:1.75}):(0,b.jsx)(aM.BookOpen,{className:"h-3.5 w-3.5",strokeWidth:1.75}),(0,b.jsx)("span",{className:"hidden sm:inline",children:bS?"Learning...":"Learn from discussion"})]}),!a&&cs(),!a&&(0,b.jsx)(aP.StatusIndicator,{}),(0,b.jsx)("button",{type:"button",onClick:()=>aZ(!aY),"aria-label":aY?"Hide logs":`Show logs${I.length>0?` (${I.length})`:""}`,"aria-pressed":aY,title:aY?"Hide logs":`Show logs${I.length>0?` (${I.length})`:""}`,className:`inline-flex h-9 w-9 items-center justify-center rounded-xl border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${aY?"border-[var(--app-shell-border-strong)] bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:(0,b.jsx)(aI.default,{className:"h-4 w-4",strokeWidth:1.75})})]})]})}):cu,bE?(0,b.jsx)(aq,{query:bD,results:bd,total:bf,participants:ak,threadTitleById:bF,isLoading:bh,error:bj,onSelectResult:b7}):a8?(0,b.jsx)(an,{messages:F,streaming:S,participants:ak,rootMessageId:a8,queued:V.some(a=>a.rootMessageId===a8&&"queued"===a.status),onClose:()=>ba(null),onCopyThread:bQ,onAddToChat:bP,onDeleteThreadRoot:b9,onDeleteMessage:cb,highlightedMessageId:a7||void 0,renderReplyComposer:cl,activeProcesses:R.filter(a=>["spawning","running"].includes(a.state)&&a.threadId===a8)}):(0,b.jsx)(ah,{messages:F,streaming:S,participants:ak,onOpenThread:b2,onCopyThread:bQ,onAddToChat:bP,onDeleteThreadRoot:b9,onSummarize:bZ,onCreateTasks:b$,onUpdateTaskDraft:b_,onBuildTasks:b0,summarizingThreads:bl,extractingTasks:bu,buildingDrafts:bw,taskDrafts:br,deletingThreadRootId:bn,highlightedMessageId:a7,shipModeThreads:a$,onUpdateMessageThreadStatus:q?(a,b)=>{G(c=>c.map(c=>c.id===a?{...c,threadStatus:b}:c)),D(q,a,b),fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:a,status:b})})}:void 0,onUpdateMessageOutcomeNote:q?(a,b)=>{G(c=>c.map(c=>c.id===a?{...c,outcomeNote:b}:c)),E(q,a,b);let c=F.find(b=>b.id===a);fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:a,status:c?.threadStatus??null,outcomeNote:b})})}:void 0}),!bE&&!a8&&(0,b.jsx)(ar.Composer,{onSend:b5,onStop:Y,loading:"ready"!==W,activityStatus:W,participants:bH,projects:bI,projectGroups:ai,projectSlug:aj,messages:F,commands:cf,pendingThreadInsert:bN,onClearPendingThread:()=>bO(null),autoMode:a9,onAutoModeChange:b6,repos:cg,selectedRepoIds:ch,onRepoSelectionChange:ck})]})})}),k&&(0,b.jsx)(aO,{logs:I,participants:ak,onClear:()=>void L(q),open:aY,onToggle:()=>aZ(!1)}),(0,b.jsx)(aE.default,{isOpen:null!==bp,title:bp?.type==="thread"?"Delete Discussion":"Delete Message",message:bp?.type==="thread"?"This will permanently delete this discussion and all of its replies. This action cannot be undone.":"This will permanently delete this message. This action cannot be undone.",preview:bp?.preview,confirmLabel:"Delete",cancelLabel:"Cancel",variant:"danger",onConfirm:cd,onCancel:ce})]})}],398066)}];
|
|
1
|
+
module.exports=[398066,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(639211),e=a.i(520612),f=a.i(155829),g=a.i(496368),h=a.i(111013),i=a.i(529889),j=a.i(550158),k=a.i(238246),l=a.i(86007),m=a.i(8e4),n=a.i(475632);function o(){return(0,b.jsxs)("span",{className:"inline-flex items-center gap-[3px] ml-1",children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--muted-foreground)] animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--muted-foreground)] animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--muted-foreground)] animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})}function p({participantId:a,participantName:c,participantColor:d,content:e}){let f=(0,n.stripMarkers)(e),g=f.length>0;return(0,b.jsxs)("div",{className:"flex gap-4 py-4 group transition-colors animate-in fade-in slide-in-from-bottom-2 duration-300",children:[(0,b.jsx)(k.default,{href:`/agents/${a}`,className:"w-9 h-9 rounded-full bg-[var(--muted)] overflow-hidden shrink-0 shadow-sm border border-[var(--border)] hover:ring-2 hover:ring-blue-300 transition-shadow",children:(0,b.jsx)("img",{src:(0,m.agentAvatarUrl)(a,36,d),alt:"",className:"w-full h-full object-cover"})}),(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-baseline gap-2 mb-1",children:[(0,b.jsx)(k.default,{href:`/agents/${a}`,className:"font-bold text-[15px] hover:underline",style:{color:d},children:c}),(0,b.jsx)("span",{className:"text-[10px] uppercase tracking-wider text-[var(--muted-foreground)] font-bold opacity-0 group-hover:opacity-100 transition-opacity",children:"Streaming"})]}),(0,b.jsx)("div",{className:"text-[15px] text-[var(--foreground)] leading-relaxed min-h-[1.5rem] flex items-center",children:g?(0,b.jsxs)("div",{className:"flex-1",children:[(0,b.jsx)(l.Markdown,{content:f}),(0,b.jsx)("span",{className:"inline-flex items-baseline ml-0.5",children:(0,b.jsx)("span",{className:"w-1 h-1 rounded-full bg-indigo-400 animate-[pulse-dot_1.4s_ease-in-out_infinite]"})})]}):(0,b.jsxs)("div",{className:"flex items-center gap-2 text-[var(--muted-foreground)] italic",children:[(0,b.jsx)("span",{className:"text-sm font-medium",children:"working"}),(0,b.jsx)(o,{})]})})]})]})}var q=a.i(552605),r=a.i(340492);function s({attachments:a,compact:c=!1}){if(0===a.length)return null;let d=a.filter(a=>a.mimeType.startsWith("image/")),e=a.filter(a=>!a.mimeType.startsWith("image/")),f=c?"max-w-[120px]":"max-w-[240px]",g=c?"max-h-[90px]":"max-h-[180px]";return(0,b.jsxs)("div",{className:"mt-2 space-y-2",children:[d.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:d.map(a=>(0,b.jsx)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"block rounded-lg overflow-hidden border border-[var(--border)] hover:border-[var(--border)] transition-colors",children:(0,b.jsx)("img",{src:a.url,alt:a.filename,className:`${f} ${g} object-cover`,loading:"lazy"})},a.id))}),e.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:e.map(a=>{var d;return(0,b.jsxs)("a",{href:a.url,download:a.filename,className:`inline-flex items-center gap-1.5 rounded-md border border-[var(--border)] bg-[var(--app-shell-subtle)] text-[var(--muted-foreground)] hover:bg-[var(--muted)] hover:border-[var(--border)] transition-colors ${c?"px-2 py-0.5 text-[11px]":"px-2.5 py-1 text-xs"}`,children:[(0,b.jsx)(q.FileText,{className:`text-[var(--muted-foreground)] shrink-0 ${c?"w-3 h-3":"w-3.5 h-3.5"}`}),(0,b.jsx)("span",{className:`truncate ${c?"max-w-[100px]":"max-w-[150px]"}`,children:a.filename}),(0,b.jsx)("span",{className:"text-[var(--muted-foreground)] shrink-0",children:(d=a.size)<1024?`${d}B`:d<1048576?`${(d/1024).toFixed(0)}KB`:`${(d/1048576).toFixed(1)}MB`}),(0,b.jsx)(r.Download,{className:`text-[var(--muted-foreground)] shrink-0 ${c?"w-2.5 h-2.5":"w-3 h-3"}`})]},a.id)})})]})}var t=a.i(66456),u=a.i(831709);let v=(0,u.default)("grip-vertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);var w=a.i(811760),x=a.i(756490),y=a.i(353532),z=a.i(824179);let A=(0,u.default)("arrow-up-right",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);var B=a.i(804632),C=a.i(627421);let D=process.env.NEXT_PUBLIC_AGX_BOARD_URL||"http://localhost:41741";async function E(){let a=await fetch(`${D}/api/projects`);if(!a.ok){if(503===a.status)throw Error("SCHEMA_NOT_READY");throw Error(`Failed to list projects: ${a.status}`)}let b=await a.json();return b.projects??b}async function F(a,b){let c=await fetch(`${D}/api/projects`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:a,description:b})});if(!c.ok)throw Error(`Failed to create project: ${c.status}`);return c.json()}async function G(a,b){let c=await fetch(`${D}/api/tasks`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:a,...b})});if(!c.ok)throw Error(`Failed to create task: ${c.status}`);let d=await c.json(),e=d.task??d;return d.id&&!e.id&&(e.id=d.id),e}async function H(a){let b=await fetch(`${D}/api/tasks/${a}`);if(!b.ok)return null;let c=await b.json();return c.task??c}async function I(a,b,c,d){let e=[],f={...d},g=new Map((function(a){let b=new Set(a.map(a=>a.id)),c=new Map;for(let d of a)c.set(d.id,(d.dependsOn||[]).filter(a=>b.has(a)));let d=[],e=new Set,f=new Set;for(let b of a)!function b(g){if(!e.has(g)&&!f.has(g)){for(let a of(f.add(g),c.get(g)||[]))b(a);f.delete(g),e.add(g),d.push(a.find(a=>a.id===g))}}(b.id);return d})(a).map(a=>[a.id,a]));for(;g.size>0;){let a=[];for(let b of g.values())(b.dependsOn||[]).every(a=>!g.has(a)||f[a])&&a.push(b);0===a.length&&a.push(...g.values());let c=await Promise.allSettled(a.map(async a=>{let c=f[a.id];if(c&&await H(c))return{task:a,remoteId:c};let d=(a.dependsOn||[]).map(a=>f[a]).filter(Boolean),e=await G(a.description,{title:a.title,project_id:b,depends_on:d.length>0?d:void 0});return{task:a,remoteId:e.id}}));for(let b of c)if("fulfilled"===b.status){let{task:a,remoteId:c}=b.value;f[a.id]=c,e.push({clientTaskId:a.id,remoteTaskId:c,status:"created"}),g.delete(a.id)}else{let d=a[c.indexOf(b)];e.push({clientTaskId:d.id,status:"failed",error:b.reason instanceof Error?b.reason.message:"Unknown error"}),g.delete(d.id)}}return{buildId:c,projectId:b,results:e}}var J=a.i(349692),K=a.i(89613),L=a.i(599086);function M({onSelect:a,onClose:d}){let[e,f]=(0,c.useState)([]),[g,h]=(0,c.useState)(!0),[i,j]=(0,c.useState)(null),[k,l]=(0,c.useState)(!1),[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(!1);(0,c.useEffect)(()=>{(async()=>{try{let a=await E();f(a)}catch(a){a instanceof Error&&"SCHEMA_NOT_READY"===a.message?j("agx-cloud database not ready. Run migrations first."):j("Failed to load projects. Is agx-cloud running?")}finally{h(!1)}})()},[]);let q=(0,c.useCallback)(async()=>{let b=m.trim();if(b){l(!0);try{let c=await F(b);a(c.id,c.name)}catch(a){j("Failed to create project")}finally{l(!1)}}},[m,a]);return(0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/20 backdrop-blur-sm",children:(0,b.jsxs)("div",{className:"bg-[var(--app-shell-elevated)] rounded-2xl shadow-xl border border-[var(--app-shell-border)] w-full max-w-sm mx-4 overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b border-[var(--app-shell-border)]",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(K.FolderOpen,{className:"w-4 h-4 text-[var(--app-shell-muted)]"}),(0,b.jsx)("h3",{className:"text-sm font-bold text-[var(--foreground)]",children:"Select Project"})]}),(0,b.jsx)("button",{type:"button",onClick:d,className:"p-1 text-[var(--app-shell-muted)] hover:text-[var(--foreground)] rounded-md hover:bg-[var(--app-shell-subtle)]",children:(0,b.jsx)(z.X,{className:"w-4 h-4"})})]}),(0,b.jsxs)("div",{className:"p-4 max-h-64 overflow-y-auto",children:[g&&(0,b.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,b.jsx)(J.Loader2,{className:"w-5 h-5 text-[var(--app-shell-muted)] animate-spin"})}),i&&(0,b.jsxs)("div",{className:"flex items-center gap-2 p-3 bg-amber-50 rounded-lg text-amber-700 text-xs font-medium",children:[(0,b.jsx)(L.AlertTriangle,{className:"w-4 h-4 shrink-0"}),i]}),!g&&!i&&0===e.length&&(0,b.jsx)("p",{className:"text-xs text-[var(--app-shell-muted)] text-center py-4",children:"No projects found. Create one below."}),!g&&e.map(c=>(0,b.jsxs)("button",{type:"button",onClick:()=>a(c.id,c.name),className:"w-full text-left px-3 py-2.5 rounded-lg hover:bg-[var(--app-shell-subtle)] transition-colors flex items-center gap-3 group",children:[(0,b.jsx)("div",{className:"w-8 h-8 rounded-lg bg-[var(--app-shell-subtle)] flex items-center justify-center shrink-0",children:(0,b.jsx)(K.FolderOpen,{className:"w-4 h-4 text-[var(--app-shell-muted)] group-hover:text-[var(--foreground)]"})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-sm font-semibold text-[var(--foreground)] truncate",children:c.name}),c.description&&(0,b.jsx)("div",{className:"text-[11px] text-[var(--app-shell-muted)] truncate",children:c.description})]})]},c.id))]}),(0,b.jsx)("div",{className:"px-4 pb-4 pt-2 border-t border-[var(--app-shell-border)]",children:o?(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"text",value:m,onChange:a=>n(a.target.value),onKeyDown:a=>"Enter"===a.key&&q(),placeholder:"Project name",autoFocus:!0,className:"flex-1 h-8 px-3 text-sm bg-[var(--input)] border border-[var(--app-shell-border)] rounded-lg outline-none focus:ring-1 focus:ring-[var(--ring)] text-[var(--foreground)]"}),(0,b.jsx)("button",{type:"button",onClick:q,disabled:k||!m.trim(),className:"h-8 px-3 text-xs font-bold text-[var(--primary-foreground)] bg-[var(--primary)] hover:bg-[var(--primary-hover)] rounded-lg disabled:opacity-40",children:k?"…":"Create"}),(0,b.jsx)("button",{type:"button",onClick:()=>p(!1),className:"h-8 px-2 text-[var(--app-shell-muted)] hover:text-[var(--foreground)]",children:(0,b.jsx)(z.X,{className:"w-3.5 h-3.5"})})]}):(0,b.jsxs)("button",{type:"button",onClick:()=>p(!0),className:"flex items-center gap-1.5 text-xs font-bold text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:[(0,b.jsx)(y.Plus,{className:"w-3.5 h-3.5"}),"Create new project"]})})]})})}function N({draft:a,onUpdate:d,onBuild:e,building:f}){let[g,h]=(0,c.useState)(null),[i,j]=(0,c.useState)(!1),[k,l]=(0,c.useState)(!1),m=(0,c.useCallback)(()=>{let b=a.tasks.map((a,b)=>{let c=`${b+1}. **${a.title}**`;return a.description&&"Add description..."!==a.description&&(c+=`
|
|
2
|
+
${a.description.replace(/\n/g,"\n ")}`),c}).join("\n");navigator.clipboard.writeText(b).then(()=>{l(!0),setTimeout(()=>l(!1),1500)})},[a.tasks]),n=(0,c.useCallback)((b,c)=>{let e=a.tasks.map(a=>a.id===b?{...a,...c}:a);d({...a,tasks:e,revision:a.revision+1})},[a,d]),o=(0,c.useCallback)(b=>{let c=a.tasks.filter(a=>a.id!==b);d({...a,tasks:c,revision:a.revision+1})},[a,d]),p=(0,c.useCallback)(()=>{let b={id:crypto.randomUUID(),title:"New task",description:"Add description..."};d({...a,tasks:[...a.tasks,b],revision:a.revision+1})},[a,d]),q=(0,c.useCallback)(()=>{j(!0)},[]),r=(0,c.useCallback)((b,c)=>{j(!1),e(a,b,c)},[a,e]),s="idle"===a.buildStatus||!a.buildStatus;return(0,b.jsxs)("div",{className:"mt-6 p-4 bg-[var(--app-shell-subtle)]/80 rounded-2xl border border-[var(--border)] shadow-sm",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(t.Zap,{className:"w-3.5 h-3.5 text-amber-500 fill-amber-500"}),(0,b.jsx)("span",{className:"text-[10px] font-extrabold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Tasks"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:[a.tasks.length," task",1!==a.tasks.length?"s":""]}),a.tasks.length>0&&(0,b.jsx)("button",{type:"button",onClick:m,className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)] transition-colors",title:"Copy as markdown",children:k?(0,b.jsx)(C.Check,{className:"w-3.5 h-3.5 text-emerald-500"}):(0,b.jsx)(B.Copy,{className:"w-3.5 h-3.5"})})]})]}),(0,b.jsx)("div",{className:"space-y-1 mb-4",children:a.tasks.map(a=>{let c=g===a.id;return(0,b.jsxs)("div",{className:"group",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 py-1.5 px-2 rounded-lg hover:bg-[var(--app-shell-subtle)] transition-colors",children:[s&&(0,b.jsx)(v,{className:"w-3.5 h-3.5 text-[var(--app-shell-soft-text)] opacity-0 group-hover:opacity-100 cursor-grab shrink-0"}),(0,b.jsx)("button",{type:"button",onClick:()=>h(c?null:a.id),className:"shrink-0 text-[var(--app-shell-muted)] hover:text-[var(--foreground)]",children:c?(0,b.jsx)(w.ChevronDown,{className:"w-3.5 h-3.5"}):(0,b.jsx)(x.ChevronRight,{className:"w-3.5 h-3.5"})}),s?(0,b.jsx)("input",{type:"text",value:a.title,onChange:b=>n(a.id,{title:b.target.value}),className:"flex-1 text-xs font-semibold text-[var(--foreground)] bg-transparent border-none outline-none focus:ring-0 p-0"}):(0,b.jsx)("span",{className:"flex-1 text-xs font-semibold text-[var(--foreground)]",children:a.title}),s&&(0,b.jsx)("button",{type:"button",onClick:()=>o(a.id),className:"shrink-0 text-[var(--app-shell-soft-text)] hover:text-rose-500 opacity-0 group-hover:opacity-100 transition-all",children:(0,b.jsx)(z.X,{className:"w-3.5 h-3.5"})})]}),c&&(0,b.jsx)("div",{className:"ml-9 mr-2 mb-2",children:s?(0,b.jsx)("textarea",{value:a.description,onChange:b=>n(a.id,{description:b.target.value}),rows:4,className:"w-full text-xs text-[var(--muted-foreground)] bg-[var(--input)] border border-[var(--app-shell-border)] rounded-lg p-2 outline-none focus:ring-1 focus:ring-[var(--ring)] resize-y"}):(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] whitespace-pre-wrap",children:a.description})})]},a.id)})}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[s&&(0,b.jsxs)("button",{type:"button",onClick:p,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs font-bold text-[var(--app-shell-muted)] hover:text-[var(--foreground)] rounded-full border border-dashed border-[var(--app-shell-border)] hover:border-[var(--app-shell-border-strong)] transition-all",children:[(0,b.jsx)(y.Plus,{className:"w-3 h-3"}),"Add task"]}),(0,b.jsx)("div",{className:"flex-1"}),s&&(0,b.jsxs)("button",{type:"button",onClick:q,disabled:f||0===a.tasks.length,className:"flex items-center gap-1.5 px-4 py-1.5 text-xs font-bold text-[var(--primary-foreground)] bg-[var(--primary)] hover:bg-[var(--primary-hover)] rounded-full shadow-sm transition-all disabled:opacity-40 disabled:cursor-not-allowed",children:[(0,b.jsx)(A,{className:"w-3 h-3"}),f?"Pushing…":"Push to agx"]})]}),i&&(0,b.jsx)(M,{onSelect:r,onClose:()=>j(!1)})]})}let O=new Set(["completed","done","failed","blocked"]);var P=a.i(44668),Q=a.i(70887);let R=(0,u.default)("ban",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}]]);var S=a.i(999076);let T={queued:(0,b.jsx)(Q.Circle,{className:"w-4 h-4 text-[var(--muted-foreground)]"}),pending:(0,b.jsx)(Q.Circle,{className:"w-4 h-4 text-[var(--muted-foreground)]"}),in_progress:(0,b.jsx)(J.Loader2,{className:"w-4 h-4 text-blue-500 animate-spin"}),running:(0,b.jsx)(J.Loader2,{className:"w-4 h-4 text-blue-500 animate-spin"}),blocked:(0,b.jsx)(R,{className:"w-4 h-4 text-amber-500"}),completed:(0,b.jsx)(P.CheckCircle2,{className:"w-4 h-4 text-emerald-500"}),done:(0,b.jsx)(P.CheckCircle2,{className:"w-4 h-4 text-emerald-500"}),failed:(0,b.jsx)(S.XCircle,{className:"w-4 h-4 text-rose-500"})};function U({draft:a,onPush:d,pushing:e}){let[f,g]=(0,c.useState)(!1),[h,i]=(0,c.useState)(!1),j=(0,c.useCallback)(()=>{let b=a.tasks.map((a,b)=>`${b+1}. **${a.title}**${a.description?`
|
|
3
|
+
${a.description.replace(/\n/g,"\n ")}`:""}`).join("\n");navigator.clipboard.writeText(b).then(()=>{i(!0),setTimeout(()=>i(!1),1500)})},[a.tasks]),{tasks:k,error:l}=function({projectId:a,enabled:b,interval:d=3e4}){let[e,f]=(0,c.useState)([]),[g,h]=(0,c.useState)(null),i=(0,c.useRef)(0),j=(0,c.useRef)([]),k=(0,c.useCallback)(async()=>{if(a&&"undefined"!==a)try{let b=process.env.NEXT_PUBLIC_AGX_BOARD_URL||"http://localhost:41741",c=await fetch(`${b}/api/tasks?project=${a}`);if(!c.ok)throw Error(`Poll failed: ${c.status}`);let d=await c.json(),e=d.tasks??d;j.current=e,f(e),h(null)}catch(a){h(a instanceof Error?a.message:"Poll failed")}},[a]);return(0,c.useEffect)(()=>{if(!b||!a)return;i.current=Date.now(),k();let c=setInterval(()=>{Date.now()-i.current>18e5||j.current.length>0&&j.current.every(a=>O.has(a.status))?clearInterval(c):k()},d);return()=>clearInterval(c)},[b,a,d,k]),{tasks:e,error:g,refetch:k}}({projectId:a.projectId??null,enabled:!!a.projectId&&"done"===a.buildStatus}),m=new Map;if(a.builtTaskIds)for(let[b,c]of Object.entries(a.builtTaskIds)){let a=k.find(a=>a.id===c);a&&m.set(b,a)}let n=a.tasks.filter(a=>{let b=m.get(a.id);return b&&("completed"===b.status||"done"===b.status)}).length,o=a.tasks.length>0?n/a.tasks.length:0,p=(0,c.useCallback)(()=>{a.projectId&&a.projectName?d?.(a,a.projectId,a.projectName):g(!0)},[a,d]),q=(0,c.useCallback)((b,c)=>{g(!1),d?.(a,b,c)},[a,d]);a.tasks.some(b=>!a.builtTaskIds?.[b.id]);let r=a.tasks.some(a=>{let b=m.get(a.id);return b&&"queued"!==b.status&&"pending"!==b.status});return(0,b.jsxs)("div",{className:"mt-6 p-4 bg-[var(--app-shell-subtle)]/80 rounded-2xl border border-[var(--border)] shadow-sm",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(t.Zap,{className:"w-3.5 h-3.5 text-amber-500 fill-amber-500"}),(0,b.jsx)("span",{className:"text-[10px] font-extrabold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Tasks"}),a.projectName&&(0,b.jsxs)("span",{className:"text-[10px] font-semibold text-[var(--muted-foreground)]",children:["· ",a.projectName]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:[n,"/",a.tasks.length," Complete"]}),a.tasks.length>0&&(0,b.jsx)("button",{type:"button",onClick:j,className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)] transition-colors",title:"Copy as markdown",children:h?(0,b.jsx)(C.Check,{className:"w-3.5 h-3.5 text-emerald-500"}):(0,b.jsx)(B.Copy,{className:"w-3.5 h-3.5"})})]})]}),(0,b.jsx)("div",{className:"space-y-3 mb-4",children:a.tasks.map(a=>{let c=m.get(a.id),d=c?.status||"queued",e=T[d]||T.queued;return(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[e,(0,b.jsx)("span",{className:"text-xs font-semibold text-[var(--muted-foreground)]",children:a.title})]},a.id)})}),(0,b.jsx)("div",{className:"h-1.5 w-full bg-[var(--muted)] rounded-full overflow-hidden",children:(0,b.jsx)("div",{className:"h-full bg-emerald-500 rounded-full shadow-[0_0_8px_rgba(16,185,129,0.4)] transition-all duration-500",style:{width:`${Math.round(100*o)}%`}})}),d&&!r&&(0,b.jsxs)("div",{className:"mt-3 flex items-center gap-3",children:["partial_failure"===a.buildStatus&&(0,b.jsx)("span",{className:"text-[11px] text-amber-600 font-semibold",children:"Some tasks failed to push."}),(0,b.jsx)("div",{className:"flex-1"}),(0,b.jsxs)("button",{type:"button",onClick:p,disabled:e,className:"flex items-center gap-1.5 px-4 py-1.5 text-xs font-bold text-[var(--primary-foreground)] bg-[var(--primary)] hover:bg-[var(--primary-hover)] rounded-full shadow-sm transition-all disabled:opacity-40 disabled:cursor-not-allowed",children:[(0,b.jsx)(A,{className:"w-3 h-3"}),e?"Pushing…":"Push to agx"]})]}),l&&(0,b.jsxs)("div",{className:"mt-2 text-[11px] text-amber-600 font-medium",children:["Status polling error: ",l]}),f&&(0,b.jsx)(M,{onSelect:q,onClose:()=>g(!1)})]})}let V=(0,c.forwardRef)(({children:a,className:c="",...d},e)=>{let{isTouchLayout:f}=(0,i.useInputCapabilities)(),g=`absolute top-4 right-4 flex items-center gap-1 ${f?"opacity-100":"opacity-0 group-hover:opacity-100"} transition-opacity duration-200 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] shadow-md rounded-lg p-1 z-10 backdrop-blur-sm`,h=`${g} ${c}`.trim();return(0,b.jsx)("div",{ref:e,className:h,"data-touch-visible":f?"true":void 0,...d,children:a})});V.displayName="ActionToolbar";let W=()=>(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)] mx-1"}),X=(0,c.forwardRef)(({className:a="",variant:c="neutral",size:d="md",children:e,...f},g)=>{let{isTouchLayout:h}=(0,i.useInputCapabilities)(),j=`inline-flex items-center justify-center rounded-md transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] disabled:opacity-50 disabled:pointer-events-none ${h?({sm:"h-11 w-11 p-2",md:"h-11 w-11 p-2",lg:"h-12 w-12 p-2.5"})[d]:({sm:"p-1 w-6 h-6",md:"p-1.5 w-8 h-8",lg:"p-2 w-10 h-10"})[d]} ${({neutral:"text-[var(--app-shell-muted)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]",ghost:"text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)]",primary:"text-[var(--primary)] hover:text-[var(--primary-foreground)] hover:bg-[var(--primary-hover)]",destructive:"text-[var(--app-shell-muted)] hover:text-[var(--destructive)] hover:bg-[var(--destructive-muted)]"})[c]} ${a}`.trim();return(0,b.jsx)("button",{ref:g,className:j,"data-touch-target":h?"true":void 0,...f,children:e})});X.displayName="IconButton";var Y=a.i(737313),Z=a.i(316099),$=a.i(697183),_=a.i(252197),aa=a.i(820859);let ab=(0,u.default)("list-todo",[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["rect",{x:"3",y:"4",width:"6",height:"6",rx:"1",key:"cif1o7"}]]),ac=(0,u.default)("link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]),ad=(0,u.default)("at-sign",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",key:"7n84p3"}]]);var ae=a.i(915534);let af=[{value:"active",label:"Active",color:"#f59e0b"},{value:"paused",label:"Paused",color:"#f97316"},{value:"in-review",label:"In Review",color:"#6b7280"},{value:"done",label:"Done",color:"#3b82f6"},{value:"archived",label:"Archived",color:"#9ca3af"}],ag=new Set(["done","in-review","archived"]),ah="<!-- thread-summary -->";function ai({messages:a,streaming:d,participants:e,onOpenThread:f,onCopyThread:g,onAddToChat:h,onDeleteThreadRoot:i,onSummarize:j,onCreateTasks:o,onUpdateTaskDraft:q,onBuildTasks:r,summarizingThreads:t,extractingTasks:u,buildingDrafts:v,taskDrafts:w,deletingThreadRootId:x,highlightedMessageId:y,onUpdateMessageThreadStatus:z,onUpdateMessageOutcomeNote:A,shipModeThreads:C}){let D=(0,c.useRef)(new Map),[E,F]=(0,c.useState)(null),[G,H]=(0,c.useState)("active"),I=Object.fromEntries(e.map(a=>[a.id,a])),K=(0,c.useMemo)(()=>[...a.filter(a=>!a.rootMessageId)].reverse(),[a]),L={active:new Set(["active"]),paused:new Set(["paused"]),"in-review":new Set(["in-review"]),done:new Set(["done"]),archived:new Set(["archived"])},M=(0,c.useMemo)(()=>K.filter(a=>L[G].has(a.threadStatus??"active")),[K,G]),O=(0,c.useMemo)(()=>({active:K.filter(a=>L.active.has(a.threadStatus??"active")).length,paused:K.filter(a=>L.paused.has(a.threadStatus??"active")).length,"in-review":K.filter(a=>L["in-review"].has(a.threadStatus??"active")).length,done:K.filter(a=>L.done.has(a.threadStatus??"active")).length,archived:K.filter(a=>L.archived.has(a.threadStatus??"active")).length}),[K]),P=(0,c.useMemo)(()=>(function(a){let b=new Map;for(let c of a){let a=c.rootMessageId;if(!a)continue;let d=b.get(a);d||(d={rootMessageId:a,replyCount:0,participants:[],lastActivityAt:0,allReplies:[]},b.set(a,d)),d.replyCount++,d.lastActivityAt=Math.max(d.lastActivityAt,c.timestamp),d.lastReply=c,d.allReplies.push(c),c.participantId&&!d.participants.includes(c.participantId)?d.participants.push(c.participantId):c.participantId||d.participants.includes("user")||d.participants.push("user")}for(let a of b.values())a.allReplies.sort((a,b)=>a.timestamp-b.timestamp);return b})(a),[a]),Q=(0,c.useCallback)((a,b)=>{b?D.current.set(a,b):D.current.delete(a)},[]),R=(0,c.useRef)(null);return(0,c.useEffect)(()=>{if(!y){R.current=null;return}if(y===R.current)return;R.current=y;let a=D.current.get(y);a&&a.scrollIntoView({behavior:"smooth",block:"center"})},[y,a]),(0,b.jsx)("div",{className:"chat-scrollbar flex-1 overflow-y-auto p-4",children:(0,b.jsxs)("div",{className:"max-w-3xl mx-auto",children:[K.length>0&&(0,b.jsx)("div",{className:"flex items-center justify-center gap-1 p-1 rounded-lg w-fit mx-auto border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] mb-4",children:[{key:"active",label:"Active"},{key:"paused",label:"Paused"},{key:"in-review",label:"In Review"},{key:"done",label:"Done"},{key:"archived",label:"Archived"}].map(a=>{let c=O[a.key],d=G===a.key;return(0,b.jsxs)("button",{type:"button",onClick:()=>H(a.key),className:`px-3 py-1.5 text-xs font-bold rounded-md transition-all ${d?"bg-[var(--app-shell-surface)] text-[var(--foreground)] shadow-sm":"text-[var(--app-shell-muted)] hover:text-[var(--foreground)]"}`,children:[a.label,c>0&&(0,b.jsx)("span",{className:`ml-1.5 text-[10px] ${d?"opacity-60":"opacity-50"}`,children:c})]},a.key)})}),0===K.length&&0===Object.keys(d).length&&(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center text-[var(--app-shell-muted)] mt-32 space-y-3",children:[(0,b.jsx)(Y.MessageSquare,{className:"h-6 w-6",strokeWidth:1.5}),(0,b.jsx)("span",{className:"text-sm font-medium tracking-wide",children:"Start a thread"})]}),K.length>0&&0===M.length&&(0,b.jsx)("div",{className:"flex flex-col items-center justify-center text-[var(--app-shell-muted)] mt-16 space-y-2",children:(0,b.jsxs)("span",{className:"text-sm font-medium",children:["No ",G," threads"]})}),M.map(a=>{let c,e=a.participantId?I[a.participantId]:null,y=P.get(a.id),A=x===a.id,D=y?.allReplies.find(a=>a.content.startsWith(ah)),G=D?D.content.slice(ah.length).trim():null,H=a.threadStatus??"active",K=ag.has(H),L=af.find(a=>a.value===H)??af[0],M=Object.values(d).some(b=>b.rootMessageId===a.id);if(K){let c;return(0,b.jsx)("div",{ref:b=>Q(a.id,b),"data-message-id":a.id,className:`max-w-2xl mx-auto bg-[var(--app-shell-subtle)] rounded-xl border border-[var(--app-shell-border)] mb-3 group transition-all hover:border-[var(--app-shell-border-strong)] relative cursor-pointer ${E===a.id?"z-50":""}`,onClick:()=>f?.(a.id),children:(0,b.jsxs)("div",{className:"px-4 py-2.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)(Z.Hash,{className:"w-3.5 h-3.5 text-[var(--app-shell-muted)] shrink-0"}),(0,b.jsx)("span",{className:"text-sm font-medium text-[var(--app-shell-muted)] truncate flex-1",children:(0,n.stripMarkers)(a.content.split("\n")[0])}),C?.has(a.id)&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-indigo-500 font-medium shrink-0",title:"Ship Mode active",children:[(0,b.jsx)(ae.Rocket,{size:11,style:{animation:"shipPulse 2s ease-in-out infinite"}}),"Ship"]}),M&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-green-600 font-medium shrink-0",children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-green-400 animate-pulse"}),"Working"]}),a.outcomeNote&&(0,b.jsx)("span",{className:"text-[11px] text-[var(--app-shell-soft-text)] truncate max-w-[200px]",children:a.outcomeNote}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--app-shell-soft-text)] shrink-0",children:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(a.timestamp)}),z&&(c=E===a.id,(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("button",{type:"button",onClick:b=>{b.stopPropagation(),F(c?null:a.id)},className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border transition-colors hover:bg-[var(--app-shell-elevated)]",style:{borderColor:L.color+"40",color:L.color},children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:L.color}}),L.label]}),c&&(0,b.jsx)("div",{className:"absolute top-full right-0 mt-1 z-50 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] rounded-lg shadow-lg p-1 min-w-[8.5rem]",onClick:a=>a.stopPropagation(),children:af.map(c=>(0,b.jsxs)("button",{type:"button",className:`flex items-center gap-2 w-full px-2 py-1.5 rounded-md text-xs font-medium transition-colors ${c.value===H?"bg-[var(--primary-muted)] text-[var(--primary)]":"text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:b=>{b.stopPropagation(),z(a.id,c.value),F(null)},children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:c.color}}),c.label]},c.value))})]})),y&&y.replyCount>0&&(0,b.jsxs)("span",{className:"text-[10px] text-[var(--app-shell-muted)] shrink-0",children:[y.replyCount," replies"]})]}),(G||w?.[a.id])&&(0,b.jsxs)("div",{className:"mt-1.5 pl-6 flex flex-col gap-1",children:[G&&(0,b.jsx)("div",{className:"text-sm text-[var(--muted-foreground)] leading-relaxed prose prose-sm prose-neutralmax-w-none",children:(0,b.jsx)(l.Markdown,{content:G,isUser:!1})}),w?.[a.id]&&w[a.id].tasks.length>0&&(0,b.jsxs)("span",{className:"text-[10px] text-[var(--app-shell-muted)] flex items-center gap-1",children:[(0,b.jsx)(ab,{className:"w-3 h-3"}),w[a.id].tasks.length," ",1===w[a.id].tasks.length?"task":"tasks"]})]})]})},a.id)}return(0,b.jsxs)("div",{className:`max-w-2xl mx-auto surface-card mb-6 group relative ${E===a.id?"z-50":""}`,children:[(g||h||i)&&(0,b.jsxs)(V,{className:"z-10",children:[h&&(0,b.jsx)(X,{type:"button",variant:"primary",size:"sm",onClick:()=>h(a.id),title:"Mention in chat",children:(0,b.jsx)(ad,{className:"w-3.5 h-3.5"})}),(0,b.jsx)(X,{type:"button",variant:"neutral",size:"sm",onClick:()=>{navigator.clipboard.writeText(a.id)},title:"Copy message ID",children:(0,b.jsx)(ac,{className:"w-3.5 h-3.5"})}),g&&(0,b.jsx)(X,{type:"button",variant:"neutral",size:"sm",onClick:()=>g(a.id),title:"Copy thread as markdown",children:(0,b.jsx)(B.Copy,{className:"w-3.5 h-3.5"})}),i&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(W,{}),(0,b.jsx)(X,{type:"button",variant:"destructive",size:"sm",onClick:()=>i(a.id),disabled:A,title:"Delete this thread",children:A?(0,b.jsx)(J.Loader2,{className:"w-3.5 h-3.5 animate-spin"}):(0,b.jsx)($.Trash2,{className:"w-3.5 h-3.5"})})]})]}),(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("div",{className:"p-5",children:(0,b.jsxs)("div",{ref:b=>Q(a.id,b),"data-message-id":a.id,className:"flex flex-col",children:[(0,b.jsxs)("div",{className:"flex gap-3 mb-4",children:["user"!==a.role&&(0,b.jsx)(k.default,{href:`/agents/${e?.id||a.participantId||"assistant"}`,className:"w-10 h-10 rounded-full bg-[var(--app-shell-subtle)] overflow-hidden border border-[var(--app-shell-border)] shadow-sm flex items-center justify-center shrink-0 hover:ring-2 hover:ring-[var(--ring)] transition-shadow",children:e?(0,b.jsx)("img",{src:(0,m.agentAvatarUrl)(e.id,40,e.color),alt:e.name,className:"w-full h-full object-cover"}):(0,b.jsx)("img",{src:(0,m.agentAvatarUrl)(a.participantId||"assistant",40),alt:a.participantId||"Assistant",className:"w-full h-full object-cover"})}),(0,b.jsxs)("div",{className:"flex-1 min-w-0 pt-0.5",children:["user"!==a.role&&(0,b.jsx)("div",{className:"flex items-center gap-2 mb-0.5",children:(0,b.jsx)(k.default,{href:`/agents/${e?.id||a.participantId||"assistant"}`,className:"font-bold text-sm text-[var(--foreground)] hover:underline",children:e?.name||a.participantId||"Assistant"})}),(0,b.jsxs)("div",{className:"cursor-pointer group/msg-title mb-1",onClick:()=>f?.(a.id),children:[(0,b.jsx)("h3",{className:"text-lg font-bold text-[var(--foreground)] leading-tight group-hover/msg-title:text-[var(--primary)] transition-colors line-clamp-1",children:(0,n.stripMarkers)(a.content.split("\n")[0])}),(0,b.jsxs)("div",{className:"mt-1 flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[11px] font-medium text-[var(--app-shell-soft-text)]",children:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(a.timestamp)}),z&&(c=E===a.id,(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("button",{type:"button",onClick:b=>{b.stopPropagation(),F(c?null:a.id)},className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border transition-colors hover:bg-[var(--app-shell-subtle)]",style:{borderColor:L.color+"40",color:L.color},children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:L.color}}),L.label]}),c&&(0,b.jsx)("div",{className:"absolute top-full left-0 mt-1 z-50 bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] rounded-lg shadow-lg p-1 min-w-[8.5rem]",onClick:a=>a.stopPropagation(),children:af.map(c=>(0,b.jsxs)("button",{type:"button",className:`flex items-center gap-2 w-full px-2 py-1.5 rounded-md text-xs font-medium transition-colors ${c.value===H?"bg-[var(--primary-muted)] text-[var(--primary)]":"text-[var(--muted-foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:b=>{b.stopPropagation(),z(a.id,c.value),F(null)},children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:c.color}}),c.label]},c.value))})]})),C?.has(a.id)&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-indigo-500 font-medium",title:"Ship Mode active",children:[(0,b.jsx)(ae.Rocket,{size:11,style:{animation:"shipPulse 2s ease-in-out infinite"}}),"Ship"]}),M&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-green-600 font-medium",children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-green-400 animate-pulse"}),"Working"]})]}),(a.content.length>80||a.content.includes("\n"))&&(0,b.jsx)("div",{className:"mt-2 text-[15px] text-[var(--muted-foreground)] leading-relaxed line-clamp-3",children:(0,b.jsx)(l.Markdown,{content:(0,n.stripMarkers)(a.content.split("\n").slice(1).join("\n").trimStart()),isUser:"user"===a.role})})]})]})]}),a.attachments&&a.attachments.length>0&&(0,b.jsx)("div",{className:`mb-4 ${"user"!==a.role?"ml-[52px]":""}`,children:(0,b.jsx)(s,{attachments:a.attachments,compact:!0})}),G&&(0,b.jsx)("div",{className:"mb-4 text-sm text-[var(--muted-foreground)] leading-relaxed",children:(0,b.jsx)(l.Markdown,{content:G,isUser:!1})}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 pt-2 mt-2 border-t border-[var(--card-border)]",children:[j&&y&&y.replyCount>0&&(0,b.jsxs)("button",{type:"button",onClick:()=>j(a.id),disabled:t?.has(a.id),className:"flex items-center gap-1.5 px-3 py-1.5 bg-[var(--app-shell-subtle)] hover:bg-[var(--item-hover-bg)] text-[var(--foreground)] border border-[var(--card-border)] text-xs font-medium rounded-lg transition-colors disabled:opacity-50",children:[t?.has(a.id)?(0,b.jsx)(J.Loader2,{className:"w-3.5 h-3.5 animate-spin text-[var(--muted-foreground)]"}):(0,b.jsx)(aa.Clock,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)]"}),t?.has(a.id)?"Summarizing…":"Summarize"]}),o&&y&&y.replyCount>0&&(0,b.jsxs)("button",{type:"button",onClick:()=>o(a.id),disabled:u?.has(a.id),className:"flex items-center gap-1.5 px-3 py-1.5 bg-[var(--app-shell-subtle)] hover:bg-[var(--item-hover-bg)] text-[var(--foreground)] border border-[var(--card-border)] text-xs font-medium rounded-lg transition-colors disabled:opacity-50",children:[u?.has(a.id)?(0,b.jsx)(J.Loader2,{className:"w-3.5 h-3.5 animate-spin text-[var(--muted-foreground)]"}):(0,b.jsx)(ab,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)]"}),u?.has(a.id)?"Extracting…":w?.[a.id]?"Re-extract tasks":"Create tasks"]}),y&&y.replyCount>0&&f&&(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2 cursor-pointer hover:opacity-80 transition-opacity",onClick:()=>f(a.id),children:[(0,b.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)] font-medium",children:[y.replyCount," replies"]}),(0,b.jsx)("div",{className:"flex -space-x-2",children:y.participants.slice(0,3).map(a=>{if("user"===a)return(0,b.jsx)("div",{className:"w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--card-bg)] flex items-center justify-center z-10",children:(0,b.jsx)(_.User,{className:"w-3 h-3 text-[var(--muted-foreground)]"})},"user");let c=I[a];return c?(0,b.jsx)("img",{src:(0,m.agentAvatarUrl)(a,24,c.color),alt:c.name,className:"w-6 h-6 rounded-full border-2 border-[var(--card-bg)] object-cover z-10"},a):(0,b.jsx)("div",{className:"w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--card-bg)] z-10"},a)})})]})]}),w?.[a.id]&&(w[a.id].builtTaskIds&&Object.keys(w[a.id].builtTaskIds).length>0?(0,b.jsx)(U,{draft:w[a.id],onPush:(b,c,d)=>r?.(a.id,b,c,d),pushing:v?.has(w[a.id].draftId)}):(0,b.jsx)(N,{draft:w[a.id],onUpdate:b=>q?.(a.id,b),onBuild:(b,c,d)=>r?.(a.id,b,c,d),building:v?.has(w[a.id].draftId)})),u?.has(a.id)&&(0,b.jsxs)("div",{className:"mt-4 flex items-center gap-2 text-xs text-[var(--app-shell-muted)]",children:[(0,b.jsx)(J.Loader2,{className:"w-3.5 h-3.5 animate-spin"}),(0,b.jsx)("span",{children:"Extracting tasks…"})]})]})}),Object.entries(d).filter(([,b])=>b.rootMessageId===a.id).map(([a,c])=>{let d=I[a];return(0,b.jsx)("div",{className:"px-6 pb-4",children:(0,b.jsx)(p,{participantId:a,participantName:d?.name||a,participantColor:d?.color||"#888",content:c.content})},`streaming-${a}`)})]})]},a.id)})]})})}let aj=(0,u.default)("message-square-text",[["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"}],["path",{d:"M7 11h10",key:"1twpyw"}],["path",{d:"M7 15h6",key:"d9of3u"}],["path",{d:"M7 7h8",key:"af5zfr"}]]);var ak=a.i(724938);let al={ack:{symbol:"👍",label:"Acknowledged"},working:{symbol:"🔄",label:"Working"},done:{symbol:"✅",label:"Done"},clarify:{symbol:"❓",label:"Needs clarification"},blocked:{symbol:"⛔",label:"Blocked"}};function am({type:a,count:c,participantIds:d}){let e=al[a],f=d.join(", "),g=f?`${e.label}: ${f}`:e.label;return(0,b.jsxs)("span",{title:g,className:"inline-flex items-center gap-1 rounded-full border border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-2 py-0.5 text-xs text-[var(--foreground)]",children:[(0,b.jsx)("span",{"aria-hidden":!0,children:e.symbol}),(0,b.jsx)("span",{className:"tabular-nums",children:c})]})}function an({reactions:a}){if(!a||0===a.length)return null;let c=[...a].sort((a,b)=>b.count!==a.count?b.count-a.count:a.type.localeCompare(b.type));return(0,b.jsx)("div",{className:"mt-1 flex flex-wrap items-center gap-1",children:c.map(a=>(0,b.jsx)(am,{type:a.type,count:a.count,participantIds:a.participantIds},a.type))})}function ao({messages:a,streaming:d,participants:e,rootMessageId:f,queued:g=!1,onClose:h,onCopyThread:i,onAddToChat:j,onDeleteThreadRoot:o,onDeleteMessage:p,highlightedMessageId:q,renderReplyComposer:r,activeProcesses:t=[]}){let u=(0,c.useRef)(null),v=(0,c.useRef)(new Map),w=Object.fromEntries(e.map(a=>[a.id,a])),x=(0,c.useMemo)(()=>{let b=a.find(a=>a.id===f),c=a.filter(a=>a.rootMessageId===f).sort((a,b)=>a.timestamp-b.timestamp);return b?[b,...c]:c},[a,f]),y=(0,c.useRef)(null),z=(0,c.useRef)(!1),A=(0,c.useRef)(null);return(0,c.useEffect)(()=>{let a=y.current;if(!a)return;let b=()=>{let{scrollTop:b,scrollHeight:c,clientHeight:d}=a;z.current=c-b-d>80};return a.addEventListener("scroll",b,{passive:!0}),()=>a.removeEventListener("scroll",b)},[]),(0,c.useEffect)(()=>{if(q&&q!==A.current){A.current=q;let a=v.current.get(q);a&&a.scrollIntoView({behavior:"smooth",block:"center"})}else q||z.current||(A.current=null,u.current?.scrollIntoView({behavior:"smooth"}))},[q,x,d]),(0,b.jsxs)("div",{className:"flex flex-col h-full overflow-hidden bg-[var(--app-shell-bg)] transition-colors",children:[t.length>0&&(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 px-4 py-2 border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] backdrop-blur-md transition-colors",children:[(0,b.jsxs)("div",{className:"inline-flex items-center gap-2 text-[11px] font-medium text-[var(--app-shell-muted)]",children:[(0,b.jsx)(ak.Sparkles,{className:"h-3.5 w-3.5 text-indigo-500",strokeWidth:1.75}),(0,b.jsx)("span",{className:"uppercase tracking-[0.16em]",children:"Working"})]}),(0,b.jsx)("div",{className:"flex items-center -space-x-1.5",children:t.map(a=>{let c=w[a.agentId];return(0,b.jsxs)("div",{className:"relative",title:`${c?.name||a.agentId} — ${a.state}`,children:[(0,b.jsx)("img",{src:(0,m.agentAvatarUrl)(a.agentId,24,c?.color),alt:c?.name||a.agentId,className:"w-6 h-6 rounded-full border-2 border-[var(--app-shell-surface)] shadow-sm"}),(0,b.jsx)("span",{className:"absolute -bottom-0.5 -right-0.5 w-2.5 h-2.5 bg-green-400 rounded-full border-2 border-[var(--app-shell-surface)] animate-pulse"})]},a.agentId)})})]}),(0,b.jsx)("div",{ref:y,className:"flex-1 overflow-y-auto p-4 md:p-8 space-y-6 chat-scrollbar",children:(0,b.jsxs)("div",{className:"max-w-2xl mx-auto space-y-8 pb-4",children:[x.map(a=>{let c,d="user"===a.role,e=a.participantId?w[a.participantId]:null;return(0,b.jsxs)("div",{ref:b=>{var c;return c=a.id,void(b?v.current.set(c,b):v.current.delete(c))},"data-message-id":a.id,className:"group relative flex gap-4 ",children:[(0,b.jsx)("div",{className:"flex-shrink-0 mt-1",children:d?(0,b.jsx)("div",{className:"w-9 h-9 bg-[var(--app-shell-subtle)] rounded-full flex items-center justify-center text-[var(--app-shell-muted)] shadow-sm",children:(0,b.jsx)(_.User,{className:"w-5 h-5"})}):(0,b.jsx)(k.default,{href:`/agents/${e?.id||a.participantId||"assistant"}`,className:"hover:ring-2 hover:ring-[var(--ring)] rounded-full transition-shadow",children:(0,b.jsx)("img",{src:e?(0,m.agentAvatarUrl)(e.id,36,e.color):(0,m.agentAvatarUrl)(a.participantId||"assistant",36),alt:e?.name||a.participantId||"Assistant",className:"w-9 h-9 rounded-full shadow-sm border border-[var(--app-shell-border)] object-cover bg-[var(--app-shell-subtle)]"})})}),(0,b.jsxs)("div",{className:"flex-1 space-y-1.5 max-w-full overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[d?(0,b.jsx)("span",{className:"font-bold text-sm text-[var(--foreground)]",children:"You"}):(0,b.jsx)(k.default,{href:`/agents/${e?.id||a.participantId||"assistant"}`,className:"font-bold text-sm text-[var(--foreground)] hover:underline",style:e?.color?{color:e.color}:void 0,children:e?.name||a.participantId||"Assistant"}),void 0===a.rootMessageId&&a.id===f&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] rounded font-mono uppercase",children:"ROOT"}),(0,b.jsx)("span",{className:"text-[11px] text-[var(--app-shell-soft-text)]",children:(c=a.timestamp,new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(c))})]}),(0,b.jsxs)("div",{className:`surface-card rounded-2xl p-5 text-[15px] leading-relaxed ${a.id===q?"ring-2 ring-[var(--ring)]":""}`,children:[(0,b.jsx)(l.Markdown,{content:(0,n.stripMarkers)(a.content),isUser:d}),a.attachments&&a.attachments.length>0&&(0,b.jsx)(s,{attachments:a.attachments}),a.reactions&&a.reactions.length>0&&(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsx)(an,{reactions:a.reactions})})]}),(0,b.jsxs)(V,{children:[a.id===f&&(0,b.jsx)(X,{variant:"primary",size:"sm",onClick:()=>navigator.clipboard.writeText(a.id),title:"Copy message ID",children:(0,b.jsx)(ac,{className:"w-3.5 h-3.5"})}),a.id===f&&i&&(0,b.jsx)(X,{variant:"neutral",size:"sm",onClick:()=>i(a.id),title:"Copy Thread",children:(0,b.jsx)(aj,{className:"w-3.5 h-3.5"})}),(0,b.jsx)(X,{variant:"neutral",size:"sm",onClick:()=>navigator.clipboard.writeText(a.content),title:"Copy as Markdown",children:(0,b.jsx)(B.Copy,{className:"w-3.5 h-3.5"})}),a.id===f&&o&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(W,{}),(0,b.jsx)(X,{variant:"destructive",size:"sm",onClick:()=>o(a.id),title:"Delete Thread",children:(0,b.jsx)($.Trash2,{className:"w-3.5 h-3.5"})})]}),a.id!==f&&p&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(W,{}),(0,b.jsx)(X,{variant:"destructive",size:"sm",onClick:()=>p(a.id),title:"Delete Message",children:(0,b.jsx)($.Trash2,{className:"w-3.5 h-3.5"})})]})]})]})]},a.id)}),g&&0===t.length&&(0,b.jsxs)("div",{className:"flex gap-3 group relative opacity-80 animate-in fade-in slide-in-from-bottom-1 duration-300",children:[(0,b.jsx)("div",{className:"flex-shrink-0 mt-0.5",children:(0,b.jsx)("div",{className:"w-7 h-7 rounded-full border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] flex items-center justify-center",children:(0,b.jsx)(ak.Sparkles,{className:"w-3.5 h-3.5 text-[var(--app-shell-soft-text)]",strokeWidth:1.5})})}),(0,b.jsx)("div",{className:"flex-1 max-w-full overflow-hidden",children:(0,b.jsxs)("div",{className:"flex items-center gap-2 py-1",children:[(0,b.jsx)("span",{className:"text-xs tracking-wide text-[var(--app-shell-soft-text)]",children:"Processing"}),(0,b.jsxs)("span",{className:"inline-flex items-center gap-[3px]",children:[(0,b.jsx)("span",{className:"w-1 h-1 rounded-full bg-[var(--app-shell-soft-text)]/50 animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,b.jsx)("span",{className:"w-1 h-1 rounded-full bg-[var(--app-shell-soft-text)]/50 animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,b.jsx)("span",{className:"w-1 h-1 rounded-full bg-[var(--app-shell-soft-text)]/50 animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})]})})]}),Object.entries(d).filter(([,a])=>a.rootMessageId===f).map(([a,c])=>{let d=w[a],e=c.content.trim().length>0;return(0,b.jsxs)("div",{className:"flex gap-4 group relative animate-in fade-in slide-in-from-bottom-2 duration-300",children:[(0,b.jsx)("div",{className:"flex-shrink-0 mt-1",children:(0,b.jsx)(k.default,{href:`/agents/${d?.id||a}`,className:"hover:ring-2 hover:ring-[var(--ring)] rounded-full transition-shadow",children:(0,b.jsx)("img",{src:d?(0,m.agentAvatarUrl)(d.id,36,d.color):(0,m.agentAvatarUrl)(a,36),alt:d?.name||a,className:"w-9 h-9 rounded-full shadow-sm border border-[var(--app-shell-border)] object-cover bg-[var(--app-shell-subtle)]"})})}),(0,b.jsxs)("div",{className:"flex-1 space-y-1.5 max-w-full overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(k.default,{href:`/agents/${d?.id||a}`,className:"font-bold text-sm text-[var(--foreground)] hover:underline",style:d?.color?{color:d.color}:void 0,children:d?.name||a}),!e&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-[3px]",children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_infinite]"}),(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_0.2s_infinite]"}),(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full bg-[var(--app-shell-muted)] animate-[pulse-dot_1.4s_ease-in-out_0.4s_infinite]"})]})]}),e&&(0,b.jsx)("div",{className:"surface-card rounded-2xl p-5 text-[15px] leading-relaxed",children:(0,b.jsx)(l.Markdown,{content:(0,n.stripMarkers)(c.content),isUser:!1})})]})]},`streaming-${a}`)}),(0,b.jsx)("div",{ref:u,className:"h-4"})]})}),(0,b.jsx)("div",{className:"z-20 transition-colors duration-200",children:r(f)})]})}var ap=a.i(971382);let aq=(0,u.default)("search-x",[["path",{d:"m13.5 8.5-5 5",key:"1cs55j"}],["path",{d:"m8.5 8.5 5 5",key:"a8mexj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);function ar({query:a,results:c,total:d,participants:e,threadTitleById:f,isLoading:g,error:h,onSelectResult:i,headerSlot:j}){let l=Object.fromEntries(e.map(a=>[a.id,a]));return(0,b.jsx)("div",{className:"chat-scrollbar flex-1 overflow-y-auto p-4",children:(0,b.jsxs)("div",{className:"max-w-3xl mx-auto",children:[j?(0,b.jsx)("div",{className:"sticky top-0 z-20 bg-[var(--app-shell-subtle)]/70 backdrop-blur-md pt-4 pb-6 px-4 -mx-4 border-b border-transparent transition-colors",children:(0,b.jsx)("div",{className:"max-w-2xl mx-auto",children:j})}):null,(0,b.jsxs)("div",{className:"mb-4 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] px-4 py-3",children:[(0,b.jsx)("div",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Search results"}),(0,b.jsx)("div",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:g?"Searching…":`${d} result${1===d?"":"s"} for "${a}"`}),h?(0,b.jsx)("div",{className:"mt-2 text-sm text-rose-600",children:h}):null]}),g||h||0!==c.length?null:(0,b.jsxs)("div",{className:"mt-20 flex flex-col items-center justify-center space-y-2 text-[var(--app-shell-muted)]",children:[(0,b.jsx)(aq,{className:"h-6 w-6",strokeWidth:1.5}),(0,b.jsx)("p",{className:"text-sm font-medium",children:"No matching messages"})]}),(0,b.jsx)("div",{className:"space-y-3 pb-6",children:c.map(a=>{var c;let d=a.participantId?l[a.participantId]:null,e=f[a.threadId]||"Untitled thread",g="user"===a.role?"You":d?.name||a.participantId||"Assistant";return(0,b.jsxs)("button",{type:"button",onClick:()=>i(a),className:"w-full rounded-xl border border-[var(--border)] bg-[var(--card-bg)] p-4 text-left transition hover:border-[var(--border)] hover:shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-slate-400",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)("div",{className:"flex h-8 w-8 items-center justify-center overflow-hidden rounded-full bg-[var(--muted)]",children:"user"===a.role?(0,b.jsx)(_.User,{className:"h-4 w-4 text-[var(--foreground)]"}):d?(0,b.jsx)(k.default,{href:`/agents/${d.id}`,onClick:a=>a.stopPropagation(),className:"h-full w-full hover:ring-2 hover:ring-blue-300 rounded-full transition-shadow",children:(0,b.jsx)("img",{src:(0,m.agentAvatarUrl)(d.id,32,d.color),alt:"",className:"h-full w-full object-cover"})}):(0,b.jsx)(ap.Bot,{className:"h-4 w-4 text-[var(--foreground)]"})}),(0,b.jsxs)("div",{className:"min-w-0",children:["user"!==a.role&&d?(0,b.jsx)(k.default,{href:`/agents/${d.id}`,onClick:a=>a.stopPropagation(),className:"truncate text-sm font-semibold text-[var(--foreground)] hover:underline block",children:g}):(0,b.jsx)("p",{className:"truncate text-sm font-semibold text-[var(--foreground)]",children:g}),(0,b.jsx)("p",{className:"truncate text-xs text-[var(--muted-foreground)]",children:e})]})]}),(0,b.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:(c=a.timestamp,new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}).format(c))})]}),(0,b.jsx)("p",{className:"text-sm leading-relaxed text-[var(--foreground)]",children:function(a){let c=a.split(/(<\/?mark>)/g),d=!1,e=[];for(let[a,f]of c.entries()){if("<mark>"===f){d=!0;continue}if("</mark>"===f){d=!1;continue}f&&e.push(d?(0,b.jsx)("mark",{className:"rounded bg-amber-200/80 px-0.5",children:f},`${a}-mark`):(0,b.jsx)("span",{children:f},`${a}-text`))}return e}(a.snippet)})]},`${a.threadId}-${a.messageId}`)})})]})})}var as=a.i(689882),at=a.i(455106),au=a.i(427411);let av={activeParticipantIdsByThread:{}};function aw(a,b){let c=a.trim();c&&(({...av}).activeParticipantIdsByThread[c]=function(a){if(!Array.isArray(a))return[];let b=new Set,c=[];for(let d of a){if("string"!=typeof d)continue;let a=d.trim();!a||b.has(a)||(b.add(a),c.push(a))}return c}(b))}let ax={threadSidebarVisible:!1,workspaceRoots:[],homeSearchConsent:!1,fileIgnorePatterns:[]};function ay(a){return a&&"object"==typeof a?{threadSidebarVisible:"boolean"==typeof a.threadSidebarVisible?a.threadSidebarVisible:ax.threadSidebarVisible,workspaceRoots:Array.isArray(a.workspaceRoots)?a.workspaceRoots.filter(a=>"string"==typeof a):ax.workspaceRoots,homeSearchConsent:"boolean"==typeof a.homeSearchConsent?a.homeSearchConsent:ax.homeSearchConsent,fileIgnorePatterns:Array.isArray(a.fileIgnorePatterns)?a.fileIgnorePatterns.filter(a=>"string"==typeof a):ax.fileIgnorePatterns}:ax}let az="/api/userPreferences";function aA(a){return a.json().then(a=>a&&"object"==typeof a?ay(a.preferences??a):ay(a)).catch(()=>ay(null))}function aB(a){return a.statusText||`Failed to reach ${az} (${a.status})`}async function aC(){let a=await fetch(az,{cache:"no-store"});if(!a.ok)throw Error(aB(a));return aA(a)}async function aD(a){let b=await fetch(az,{method:"POST",headers:{"Content-Type":"application/json"},cache:"no-store",body:JSON.stringify({preferences:a})});if(!b.ok)throw Error(aB(b));return aA(b)}var aE=a.i(785061),aF=a.i(734709),aG=a.i(830284),aH=a.i(542341),aI=a.i(754812),aJ=a.i(962684),aJ=aJ,aK=a.i(970393),aL=a.i(523321),aM=a.i(508869),aN=a.i(328400),aO=a.i(372871),aO=aO;function aP({logs:a,participants:d,onClear:e,open:f,onToggle:g}){let[h,i]=(0,c.useState)(420),[j,k]=(0,c.useState)(null),l=(0,c.useRef)(null),m=(0,c.useRef)(!1),n=(0,c.useRef)(0),o=(0,c.useRef)(0),p=Object.fromEntries(d.map(a=>[a.id,a]));(0,c.useEffect)(()=>{f&&l.current?.scrollIntoView({behavior:"smooth"})},[a.length,f]);let q=(0,c.useCallback)(a=>{a.preventDefault(),m.current=!0,n.current=a.clientX,o.current=h,a.target.setPointerCapture(a.pointerId)},[h]),r=(0,c.useCallback)(a=>{if(!m.current)return;let b=n.current-a.clientX;i(Math.max(280,Math.min(o.current+b,.6*window.innerWidth)))},[]),s=(0,c.useCallback)(()=>{m.current=!1},[]);if(!f)return null;let t=j?a.filter(a=>a.participantId===j):a;return(0,b.jsxs)("div",{className:"flex h-full shrink-0",children:[(0,b.jsx)("div",{onPointerDown:q,onPointerMove:r,onPointerUp:s,className:"w-1.5 cursor-col-resize bg-zinc-800 hover:bg-zinc-600 transition-colors flex items-center justify-center shrink-0",children:(0,b.jsx)("div",{className:"h-8 w-0.5 rounded-full bg-zinc-500"})}),(0,b.jsxs)("div",{className:"flex flex-col bg-zinc-950 h-full",style:{width:h},children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 border-b border-zinc-800 shrink-0",children:[(0,b.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)] font-mono",children:"Logs"}),(0,b.jsxs)("select",{value:j||"",onChange:a=>k(a.target.value||null),className:"bg-zinc-800 text-zinc-300 text-[11px] rounded px-1.5 py-0.5 outline-none",children:[(0,b.jsx)("option",{value:"",children:"All"}),d.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,b.jsx)("button",{onClick:e,className:"text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300",children:"Clear"}),(0,b.jsx)("button",{onClick:g,className:"text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300",children:"✕"})]})]}),(0,b.jsxs)("div",{className:"flex-1 overflow-y-auto font-mono text-[11px] leading-4 px-3 py-2",children:[t.map((a,c)=>{let d=p[a.participantId]?.name||a.participantId,e=p[a.participantId]?.color||"#888",f="stderr"===a.stream;return(0,b.jsxs)("div",{className:"flex gap-2 whitespace-pre-wrap break-all",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)] shrink-0 select-none",children:new Date(a.timestamp).toLocaleTimeString([],{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}),(0,b.jsx)("span",{className:"shrink-0",style:{color:e},children:d}),(0,b.jsx)("span",{className:f?"text-red-400":"text-[var(--muted-foreground)]",children:a.line})]},c)}),(0,b.jsx)("div",{ref:l})]})]})]})}var aQ=a.i(166621);function aR(a,b=!1){return(b?a.replace(/(?:^|\n)Thinking\.\.\.[\s\S]*?\.\.\.done thinking\.?\s*/g,"\n").trim():a).replaceAll("<!-- thread-summary -->","").replaceAll("<!-- task-draft -->","").trim().replace(/\r\n/g,"\n").replace(/\n{3,}/g,"\n\n").trim()}async function aS(a){let b=await fetch(`/api/threads/knowledge?rootMessageId=${encodeURIComponent(a)}`,{cache:"no-store"});if(!b.ok)throw Error("Failed to load thread knowledge run");let c=await b.json().catch(a=>(console.warn("[ChatContainer] failed to parse thread knowledge response:",a),null));return c?.run??null}function aT(a,b,c){let d=new Set(a.map(a=>a.id)),e=c?b.find(a=>a.thread_ids?.includes(c)):b[0],f=e?e.agents.map(a=>a.agent_id).filter(a=>d.has(a)):[];return e?f:0===f.length?a.map(a=>a.id):f}function aU(a,b,c){let d=Object.fromEntries(b.map(a=>[a.id,a])),e=[];for(let b of a){let a="user"===b.role?"You":b.participantId?d[b.participantId]?.name||b.participantId:"Assistant",c=aR(b.content,"user"!==b.role);c&&(e.push(`**${a}:**`),e.push(""),e.push(c),e.push(""))}if(c){let a=function(a){if(0===a.tasks.length)return"";let b=new Map(a.tasks.map(a=>[a.id,a.title.trim()])),c=["## Draft Tasks",""];return a.projectName&&c.push(`Project: ${a.projectName}`),a.buildStatus&&c.push(`Build status: ${a.buildStatus.replaceAll("_"," ")}`),(a.projectName||a.buildStatus)&&c.push(""),a.tasks.forEach((d,e)=>{let f=aR(d.title)||`Task ${e+1}`,g=aR(d.description),h=(d.dependsOn||[]).map(a=>b.get(a)?.trim()).filter(a=>!!a),i=a.builtTaskIds?.[d.id];c.push(`${e+1}. [ ] **${f}**`),g&&c.push(g),h.length>0&&c.push(`Depends on: ${h.join(", ")}`),i&&c.push(`agx task id: \`${i}\``),c.push("")}),c.join("\n").trim()}(c);a&&e.push(a)}return e.join("\n").trim()}a.s(["ChatContainer",0,function({projectSlug:a,initialThreadId:k,initialRootMessageId:l,showSidebar:m=!0}={}){let{isTouchLayout:n}=(0,i.useInputCapabilities)(),{getSelection:o,pushSelection:p,replaceSelection:q}=(0,e.useUrlSelection)(),{threads:r,activeThreadId:s,selectThread:t,createThread:u,deleteThread:v,updateThreadMessages:w,isCreating:x,deletingThreadId:y,renamingThreadId:z,isLoading:A,isRestoringActiveThread:B,renameThread:C,updateThreadStatus:D,updateThreadOutcomeNote:E,updateMessageThreadStatus:F,updateMessageOutcomeNote:G}=(0,h.useThreadState)(k),{messages:H,setMessages:J,logs:K,sendMessage:L,loadHistory:M,clearLogs:N,chatRuns:O,setChatRuns:P,stop:Q,stopThread:R}=(0,f.useGroupChat)(s),{activeAgents:S,processes:T,streaming:U,chatRuns:V,poll:W}=(0,g.useProcessPolling)(s?{workspaceId:s}:null,{messages:H,setMessages:J}),X=(0,c.useMemo)(()=>{let a=Date.now(),b=new Map(V.map(a=>[a.chatRunId,a]));for(let c of O)!(!c.optimistic||b.has(c.chatRunId))&&(a-(c.enqueuedAt??0)>5e3||b.set(c.chatRunId,c));return Array.from(b.values()).filter(a=>"queued"===a.status||"running"===a.status)},[O,V]),Y=S.size>0||X.some(a=>"running"===a.status)?"working":X.some(a=>"queued"===a.status)?"queued":"ready";(0,c.useEffect)(()=>{P(a=>{let b=Date.now(),c=new Map(a.filter(a=>"string"==typeof a.chatRunId&&a.chatRunId.length>0).map(a=>[a.chatRunId,a]));for(let a of V)a?.chatRunId&&c.set(a.chatRunId,a);return Array.from(c.values()).filter(a=>!!(!a.optimistic||V.some(b=>b.chatRunId===a.chatRunId))||b-(a.enqueuedAt??0)<=5e3).sort((a,b)=>String(a.chatRunId||"").localeCompare(String(b.chatRunId||"")))})},[V,P]);let Z=(0,c.useCallback)(async a=>{await fetch(`/api/chat-runs/${encodeURIComponent(a)}/signal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({signal:"cancel",reason:"Stopped from chat UI"})}).catch(a=>console.warn("[ChatContainer] cancel chat run failed:",a))},[]),$=(0,c.useCallback)(async()=>{let a=X[0];a?.chatRunId&&await Z(a.chatRunId),await Q(),await W()},[X,Z,Q,W]),_=(0,c.useCallback)(async a=>{let b=X.find(b=>b.rootMessageId===a);b?.chatRunId&&await Z(b.chatRunId),await R(a),await W()},[X,Z,R,W]),aa=(0,c.useRef)($);(0,c.useEffect)(()=>{aa.current=$},[$]);let{projects:ab,createProject:ac,deleteProject:ad,addAgent:ae,removeAgent:af,reorderAgents:ag}=(0,aG.useProjectsWithAgents)(),{projects:ah,updateProject:aj}=(0,aG.useProjects)(),ak=(0,c.useMemo)(()=>s?ab.filter(a=>a.thread_ids?.includes(s)):ab,[ab,s]),al=(0,c.useMemo)(()=>a||ak[0]?.slug||void 0,[a,ak]),[am,an]=(0,c.useState)([]),[ap,aq]=(0,c.useState)(!1),[ax,ay]=(0,c.useState)([]),[az,aA]=(0,c.useState)(!1),[aB,aR]=(0,c.useState)(()=>"light"),[aV,aW]=(0,c.useState)(!1),[aX,aY]=(0,c.useState)(368),aZ=(0,c.useRef)(!1);(0,c.useEffect)(()=>{let a=(0,at.loadWorkspaceSidebarVisible)();aZ.current=!0,aW(a),aY((0,au.loadWorkspaceWidth)()||368)},[]),(0,c.useEffect)(()=>{},[aB]);let[a$,a_]=(0,c.useState)(!1),[a0,a1]=(0,c.useState)(new Set),[a2,a3]=(0,c.useState)(!1),[a4,a5]=(0,c.useState)(!1),[a6,a7]=(0,c.useState)(null),a8=o("open"),a9=o("message"),ba=a?a8??l??null:l??null,bb=ba?a0.has(ba):a2;(0,c.useEffect)(()=>{if(!ba)return;let a=!1,b=()=>{fetch(`/api/schedules?rootMessageId=${encodeURIComponent(ba)}`).then(a=>a.json()).then(b=>{a||a1(a=>{let c=a.has(ba);if(b.active&&!c){let b=new Set(a);return b.add(ba),b}if(!b.active&&c){let b=new Set(a);return b.delete(ba),b}return a})}).catch(a=>console.warn("[ChatContainer] check auto-mode status failed:",a))};b();let c=setInterval(b,d.UI_POLL_CHAT_CHECK_MS);return()=>{a=!0,clearInterval(c)}},[ba]),(0,c.useEffect)(()=>{let a=!1,b=()=>{fetch("/api/schedules").then(a=>a.json()).then(b=>{!a&&b.activeRootMessageIds&&a1(a=>{let c=new Set(b.activeRootMessageIds);return c.size===a.size&&[...c].every(b=>a.has(b))?a:c})}).catch(a=>console.warn("[ChatContainer] fetch schedules failed:",a))};b();let c=setInterval(b,d.UI_POLL_CHAT_ALT_MS);return()=>{a=!0,clearInterval(c)}},[]);let bc=(0,c.useCallback)((b,c={})=>{let d=c.replace?q:p;if(a){let e=c.threadId??s??k??null;if(!e)return;d({open:b,message:c.messageId??null},`/projects/${a}/thread/${encodeURIComponent(e)}`);return}b?d({message:c.messageId??null},`/thread/${encodeURIComponent(b)}`):d({message:null},"/")},[s,k,a,p,q]);(0,c.useEffect)(()=>{l&&(async()=>{try{let a=await fetch(`/api/messages/${l}`);if(!a.ok)return;let{threadId:b}=await a.json();b&&t(b)}catch{}})()},[l,t]);let[bd,be]=(0,c.useState)(""),[bf,bg]=(0,c.useState)([]),[bh,bi]=(0,c.useState)(0),[bj,bk]=(0,c.useState)(!1),[bl,bm]=(0,c.useState)(null),[bn,bo]=(0,c.useState)(new Set),[bp,bq]=(0,c.useState)(null),[br,bs]=(0,c.useState)(null),[bt,bu]=(0,c.useState)({}),bv=(0,c.useCallback)(a=>{bu(b=>{let c="function"==typeof a?a(b):a;if(s)for(let[a,d]of Object.entries(c))b[a]!==d&&fetch("/api/task-drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:s,messageId:a,draft:d})}).catch(a=>console.warn("[ChatContainer] persist task draft failed:",a));return c})},[s]),[bw,bx]=(0,c.useState)(new Set),[by,bz]=(0,c.useState)(new Set),bA=(0,c.useRef)(null),bB=(0,c.useRef)(""),bC=(0,c.useCallback)(async(a=!1)=>{try{let a=await fetch("/api/participants");if(!a.ok)return;let b=await a.json();if(!Array.isArray(b))return;an(b)}finally{a&&aq(!0)}},[]),bD=(0,c.useCallback)(async a=>{try{await aD({threadSidebarVisible:a})}catch(a){console.error("Unable to persist thread sidebar preference",a)}},[aD]),bE=(0,c.useCallback)(a=>{(0,at.persistWorkspaceSidebarVisible)(a),bD(a)},[bD]),bF=bd.trim(),bG=bF.length>0,bH=(0,c.useMemo)(()=>Object.fromEntries(r.map(a=>[a.id,a.title?.trim()||"Untitled thread"])),[r]),bI=(0,c.useMemo)(()=>{if(!ba)return[];let a=new Set([H.find(a=>a.id===ba),...H.filter(a=>a.rootMessageId===ba)].filter(Boolean).map(a=>a.participantId).filter(Boolean));return Object.keys(U).forEach(b=>{U[b].rootMessageId===ba&&a.add(b)}),am.filter(b=>a.has(b.id))},[ba,H,U,am]),bJ=(0,c.useMemo)(()=>{let a=new Map(am.map(a=>[a.id,a]));return ax.map(b=>a.get(b)).filter(Boolean)},[am,ax]),bK=(0,c.useMemo)(()=>ah.map(a=>({id:a.id,name:a.name,slug:a.slug})),[ah]),bL=(0,c.useMemo)(()=>{if(!ba)return 0;let a=[H.find(a=>a.id===ba),...H.filter(a=>a.rootMessageId===ba)].filter(Boolean);return 0===a.length?0:Math.max(...a.map(a=>a.timestamp))},[ba,H]),bM=(0,c.useMemo)(()=>{if(!ba)return"";let a=H.find(a=>a.id===ba);if(!a)return"Discussion";let b=a.content.trim();return b.length>60?b.slice(0,60)+"...":b},[ba,H]),bN=(0,c.useMemo)(()=>{if(!ba)return null;let a=H.find(a=>a.id===ba),b=a?.threadStatus??"active";return{value:b,...{active:{label:"Active",color:"#f59e0b"},paused:{label:"Paused",color:"#f97316"},"in-review":{label:"In Review",color:"#6b7280"},done:{label:"Done",color:"#3b82f6"},archived:{label:"Archived",color:"#9ca3af"}}[b]}},[ba,H]);(0,c.useEffect)(()=>{if(!a9)return;let a=H.find(a=>a.id===a9)??null;if(a){let b=a.rootMessageId||a.id;b!==ba&&bc(b,{messageId:a9,replace:!0});return}!ba||[H.find(a=>a.id===ba),...H.filter(a=>a.rootMessageId===ba)].filter(Boolean).length>0&&q({message:null})},[H,bc,ba,q,a9]);let bO=(0,c.useCallback)(()=>{be(""),bg([]),bi(0),bm(null),bk(!1)},[]);(0,c.useCallback)(()=>{let a=aU(H,am);navigator.clipboard.writeText(a).then(()=>{aA(!0),setTimeout(()=>aA(!1),2e3)})},[H,am]);let[bP,bQ]=(0,c.useState)(null),bR=(0,c.useCallback)(a=>{let b=H.find(b=>b.id===a);if(!b)return;let c=[b,...H.filter(b=>b.rootMessageId===a).sort((a,b)=>a.timestamp-b.timestamp)];bQ({title:b.content.slice(0,60).replace(/\n/g," ").trim()||"Untitled",threadId:a,messages:c})},[H]),bS=(0,c.useCallback)(a=>{let b=aU([H.find(b=>b.id===a),...H.filter(b=>b.rootMessageId===a).sort((a,b)=>a.timestamp-b.timestamp)].filter(Boolean),am,bt[a]);navigator.clipboard.writeText(b).catch(a=>console.error("Failed to copy thread",a))},[H,am,bt]),bT=(0,c.useCallback)(async()=>{if(ba){a5(!0);try{let a=["repo"];al&&a.push("project");let b=await fetch("/api/threads/knowledge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:ba,scopes:a})}),c=await b.json().catch(a=>(console.warn("[ChatContainer] failed to parse knowledge extraction response:",a),null));if(!b.ok)throw Error("string"==typeof c?.error?c.error:"Request failed");a7(c?.run??null)}catch(b){let a=b instanceof Error?b.message:"Request failed";window.alert(`Failed to extract knowledge: ${a}`)}finally{a5(!1)}}},[ba,al]);(0,c.useEffect)(()=>{if(!ba){a7(null),a5(!1);return}let a=!1;return(async()=>{try{let b=await aS(ba);if(a)return;a7(b)}catch{a||a7(null)}})(),()=>{a=!0}},[ba]),(0,c.useEffect)(()=>{if(!ba||a6?.status!=="running")return;let a=!1,b=async()=>{try{let b=await aS(ba);if(a)return;a7(b)}catch{}};b();let c=window.setInterval(()=>{b()},2e3);return()=>{a=!0,window.clearInterval(c)}},[ba,a6?.status]);let bU=a6?.status==="running",bV=a4||bU,bW=(a6?.repoInsertedCount??0)+(a6?.projectInsertedCount??0),bX=(0,c.useMemo)(()=>{if(!a6)return null;if("running"===a6.status)return"Learning in progress";if("failed"===a6.status)return"Last learning run failed";if(bW>0){let a=1===bW?"insight":"insights";return`Learned ${bW} ${a}`}return"No new learnings"},[bW,a6]);(0,c.useEffect)(()=>{bC(!0)},[bC]);let bY=(0,c.useMemo)(()=>{if(!ap)return[];let a=new Set(am.map(a=>a.id)),b=new Set;for(let c of H)"assistant"===c.role&&c.participantId&&(a.has(c.participantId)||b.add(c.participantId));for(let c of Object.keys(U))a.has(c)||b.add(c);return Array.from(b).sort()},[H,am,ap,U]);(0,c.useEffect)(()=>{if(!ap)return;let a=bY.join("|");if(!a){bB.current="";return}bB.current!==a&&(bB.current=a,bC(!1))},[ap,bC,bY]),(0,c.useEffect)(()=>{if(!ap)return;let a=aT(am,ab,s);if(!s)return void ay(a);let b=function(a){let b=a.trim();if(!b)return null;let c={...av};return b in c.activeParticipantIdsByThread?[...c.activeParticipantIdsByThread[b]]:null}(s);if(null===b)return void ay(a);let c=function(a,b){if(null===b)return a;let c=new Set(b);return a.filter(a=>c.has(a))}(a,b),d=c.length>0?c:a;(d.length!==b.length||d.some((a,c)=>b[c]!==a))&&aw(s,d),ay(d)},[s,am,ap,ab]),(0,c.useEffect)(()=>{let a=!1;return(async()=>{try{let b=await aC();if(a)return;aW(a=>a===b.threadSidebarVisible?a:aZ.current?(bD(a),a):((0,at.persistWorkspaceSidebarVisible)(b.threadSidebarVisible),b.threadSidebarVisible))}catch(a){console.error("Failed to load user preferences",a)}})(),()=>{a=!0}},[bD]),(0,c.useEffect)(()=>{A||x||0!==r.length||u({id:"global",title:"General"})},[A,x,r.length,u]),(0,c.useEffect)(()=>{if(a)return;let b=a=>{if((a.metaKey||a.ctrlKey)&&"k"===a.key.toLowerCase()){a.preventDefault(),bA.current?.focus(),bA.current?.select();return}"Escape"===a.key&&bF&&bO()};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[bO,bF,a]),(0,c.useEffect)(()=>{if(!bF){bg([]),bi(0),bm(null),bk(!1);return}let a=!1;bk(!0);let b=window.setTimeout(()=>{(async()=>{try{let b=new URLSearchParams({q:bF,limit:"20",offset:"0"}),c=await fetch(`/api/search?${b.toString()}`),d=await c.json().catch(a=>(console.warn("[ChatContainer] failed to parse search response:",a),null));if(a)return;if(!c.ok){let a=d&&"object"==typeof d&&"error"in d?String(d.error):"Search failed";bg([]),bi(0),bm(a);return}bg(Array.isArray(d.results)?d.results:[]),bi("number"==typeof d.total?d.total:0),bm(null)}catch(b){if(a)return;console.error("Search request failed",b),bg([]),bi(0),bm("Search failed")}finally{a||bk(!1)}})()},300);return()=>{a=!0,window.clearTimeout(b)}},[bF]);let bZ=(0,c.useRef)(null);(0,c.useEffect)(()=>{null!==bZ.current&&bZ.current!==s&&aa.current(),bZ.current=s,s&&(M(s),fetch(`/api/task-drafts?threadId=${encodeURIComponent(s)}`).then(a=>a.json()).then(a=>{a.drafts&&Object.keys(a.drafts).length>0?bu(a.drafts):bu({})}).catch(a=>{console.warn("[ChatContainer] load task drafts failed:",a),bu({})}))},[s,M]),(0,c.useEffect)(()=>{s&&w(s,H)},[s,H,w]);let b$=(0,c.useCallback)((a,b,c=10,d,e,f)=>{s&&0!==bJ.length&&L(b,c,s,a,void 0,void 0,(0,aE.orderParticipantIds)(bJ.map(a=>a.id),d),al,e,f)},[s,L,bJ,al]),b_=(0,c.useCallback)(async a=>{if(s){if(0===bJ.length)return void window.alert("Enable at least one agent in this project.");bo(b=>new Set(b).add(a));try{let b=await fetch("/api/summarize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:s,rootMessageId:a,activeParticipantIds:bJ.map(a=>a.id)})});b.ok?await M(s):console.error("Summarize failed:",await b.text())}catch(a){console.error("Summarize error:",a)}finally{bo(b=>{let c=new Set(b);return c.delete(a),c})}}},[s,M,bJ]),b0=(0,c.useCallback)(async a=>{if(s){if(0===bJ.length)return void window.alert("Enable at least one agent in this project.");bx(b=>new Set(b).add(a));try{let b=await fetch("/api/tasks/extract",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:s,rootMessageId:a,activeParticipantIds:bJ.map(a=>a.id)})});if(b.ok){let c=await b.json(),d={draftId:crypto.randomUUID(),revision:0,tasks:c.tasks,buildStatus:"idle"};bv(b=>({...b,[a]:d}))}else console.error("Task extraction failed:",await b.text())}catch(a){console.error("Task extraction error:",a)}finally{bx(b=>{let c=new Set(b);return c.delete(a),c})}}},[s,bJ]),b1=(0,c.useCallback)((a,b)=>{bv(c=>({...c,[a]:b}))},[]),b2=(0,c.useCallback)(async(a,b,c,d)=>{if(s){bz(a=>new Set(a).add(b.draftId)),bv(e=>({...e,[a]:{...b,buildStatus:"building",projectId:c,projectName:d}}));try{let d=crypto.randomUUID(),e=await I(b.tasks,c,d,b.builtTaskIds),f={...b.builtTaskIds},g=!1;for(let a of e.results)"created"===a.status&&a.remoteTaskId?f[a.clientTaskId]=a.remoteTaskId:g=!0;bv(b=>({...b,[a]:{...b[a],buildId:d,buildStatus:g?"partial_failure":"done",builtTaskIds:f}}))}catch(b){console.error("Build error:",b),bv(b=>({...b,[a]:{...b[a],buildStatus:"partial_failure"}}))}finally{bz(a=>{let c=new Set(a);return c.delete(b.draftId),c})}}},[s]),b3=(0,c.useCallback)(()=>{if(!s)return;let a=(()=>{if(ba)return ba;let a=new Set(H.map(a=>a.rootMessageId).filter(a=>!!a));for(let b=H.length-1;b>=0;b-=1){let c=H[b];if(!c.rootMessageId&&a.has(c.id))return c.id}return null})();a?b0(a):console.warn("No thread with replies available to extract tasks from")},[s,b0,H,ba]);(0,c.useCallback)(a=>{bc(a)},[bc]);let b4=(0,c.useCallback)(a=>{bc(a)},[bc]),b5=(0,c.useCallback)(a=>{let b=a?.trim()??"";b&&be(b),requestAnimationFrame(()=>{bA.current?.focus(),b||bA.current?.select()})},[]),b6=(0,c.useCallback)(()=>{if(!s)return;let a=(()=>{if(ba)return ba;let a=new Set(H.map(a=>a.rootMessageId).filter(a=>!!a));for(let b=H.length-1;b>=0;b-=1){let c=H[b];if(!c.rootMessageId&&a.has(c.id))return c.id}return null})();a?b_(a):console.warn("No thread with replies available to summarize")},[s,b_,H,ba]),b7=(0,c.useCallback)(async(a,b,c,d,e,f,g)=>{let h=a.match(/^\/search(?:\s+([\s\S]+))?$/i);if(h)return void b5(h[1]);if(/^\/summarize(?:\s+[\s\S]+)?$/i.test(a))return void b6();if(/^\/tasks(?:\s+[\s\S]+)?$/i.test(a)||/^\/create(?:\s+[\s\S]+)?$/i.test(a))return void b3();let i=s;i||(i=(await u()).id);let j=bJ.map(a=>a.id);if(0===j.length)return void window.alert("Enable at least one agent in this project.");let k=(0,aE.orderParticipantIds)(j,e);if(ba)return void await L(a,b,i,ba,c,d,k,al,f,g);let l=await L(a,b,i,null,c,d,k,al,f,g);a2&&l&&(a3(!1),a1(a=>{let b=new Set(a);return b.add(l),b}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"activate",rootMessageId:l})}).catch(a=>console.error("Failed to activate schedule for new thread:",a)))},[s,a2,u,b5,b6,ba,bJ,L,al]),b8=(0,c.useCallback)(async a=>{if(!ba)return void a3(a);a1(b=>{let c=new Set(b);return a?c.add(ba):c.delete(ba),c});try{await fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:a?"activate":"stop",rootMessageId:ba})})}catch(a){console.error("Failed to toggle autonomous schedule:",a)}},[ba]),b9=(0,c.useCallback)(a=>{bc(a.rootMessageId||a.messageId,{messageId:a.messageId,threadId:a.threadId}),bO()},[bO,bc]),ca=(0,c.useCallback)(async a=>{$(),await v(a)},[v,$]),cb=(0,c.useCallback)(a=>{if(!s||!a)return;let b=H.find(b=>b.id===a);bs({type:"thread",id:a,preview:b?.content?.slice(0,120)||void 0})},[s,H]),cc=(0,c.useCallback)(async a=>{if(s){bq(a),_(a);try{let b=new URLSearchParams({threadId:s,rootMessageId:a}),c=await fetch(`/api/history?${b.toString()}`,{method:"DELETE"});if(!c.ok)return void console.error("Failed to delete message thread",await c.text());let d=a9?H.find(a=>a.id===a9)??null:null,e=d?d.rootMessageId||d.id:null;ba===a?bc(null,{replace:!0}):e===a&&q({message:null});let f=H.filter(b=>b.id!==a&&b.rootMessageId!==a);w(s,f),await M(s)}catch(a){console.error("Failed to delete message thread",a)}finally{bq(b=>b===a?null:b)}}},[s,_,M,H,bc,ba,q,a9,w]),cd=(0,c.useCallback)(a=>{if(!s||!a)return;let b=H.find(b=>b.id===a);bs({type:"message",id:a,preview:b?.content?.slice(0,120)||void 0})},[s,H]),ce=(0,c.useCallback)(async a=>{if(s)try{let b=new URLSearchParams({threadId:s,messageId:a}),c=await fetch(`/api/history?${b.toString()}`,{method:"DELETE"});if(!c.ok)return void console.error("Failed to delete message",await c.text());a9===a&&q({message:null});let d=H.filter(b=>b.id!==a);w(s,d),await M(s)}catch(a){console.error("Failed to delete message",a)}},[s,M,H,q,a9,w]),cf=(0,c.useCallback)(()=>{br&&("thread"===br.type?cc(br.id):ce(br.id),bs(null))},[br,cc,ce]),cg=(0,c.useCallback)(()=>{bs(null)},[]),ch=(0,c.useMemo)(()=>[{name:"/search",description:"Search messages (usage: /search <query>)",aliases:["find"],execute:()=>b5()},{name:"/summarize",description:"Summarize current thread or latest thread with replies",aliases:["sum"],execute:()=>b6()},{name:"/tasks",description:"Extract tasks from current thread discussion",aliases:["create"],execute:()=>b3()}],[b5,b6,b3]),ci=(0,c.useMemo)(()=>{let a=al?ak.find(a=>a.slug===al):ak[0];return a?.repos??[]},[ak,al]),[cj,ck]=(0,c.useState)(new Set),cl=(0,c.useRef)(null);(0,c.useEffect)(()=>{if(!ba){ck(new Set),cl.current=null;return}cl.current!==ba&&(ck(new Set),cl.current=ba,fetch(`/api/thread-repos?rootMessageId=${encodeURIComponent(ba)}`).then(a=>a.json()).then(a=>{cl.current===ba&&a.repoIds&&a.repoIds.length>0&&ck(new Set(a.repoIds))}).catch(a=>console.warn("[ChatContainer] load thread repos failed:",a)))},[ba]);let cm=(0,c.useCallback)(a=>{ck(a),ba&&fetch("/api/thread-repos",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:ba,repoIds:[...a]})}).catch(a=>console.warn("[ChatContainer] save thread repos failed:",a))},[ba]),cn=(0,c.useCallback)(a=>{let c=T.some(b=>["spawning","running"].includes(b.state)&&b.threadId===a)||Object.values(U).some(b=>b.rootMessageId===a)?"working":X.some(b=>b.rootMessageId===a&&"queued"===b.status)?"queued":"ready";return(0,b.jsx)(as.Composer,{onSend:(b,c,d,e,f,g,h)=>b$(a,b,c,f,g,h),onStop:()=>_(a),loading:"ready"!==c,activityStatus:c,participants:bJ,projectGroups:ak,projects:bK,projectSlug:al,messages:H,commands:ch,placeholder:"Reply — @name to mention, /search, /summarize",autoMode:bb,onAutoModeChange:b8,repos:ci,selectedRepoIds:cj,onRepoSelectionChange:cm})},[b$,_,U,bJ,ak,bK,al,ch,H,bb,b8,T,X,ci,cj,cm]),co=(0,c.useCallback)(()=>{aW(a=>{let b=!a;return bE(b),b})},[bE]),cp=(0,c.useCallback)(a=>{aY(a),(0,au.persistWorkspaceWidth)(a)},[]),cq=async a=>{let b=await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(b.ok){let a=await b.json();an(b=>b.map(b=>b.id===a.id?a:b))}},cr=(0,c.useCallback)((a,b)=>{ay(c=>{let d=aT(am,ab,s);if(!new Set(d).has(a))return c;let e=new Set(c);b?e.add(a):e.delete(a);let f=d.filter(a=>e.has(a));return s&&aw(s,f),f})},[s,am,ab]),cs=(0,c.useCallback)(a=>{let b=ab.find(b=>b.id===a);if(!b||s&&!b.thread_ids?.includes(s))return;let c=b.agents.map(a=>a.agent_id);ay(c),s&&aw(s,c)},[ab,s]),ct=(0,c.useCallback)(()=>{aR(a=>"dark"===a?"light":"dark")},[]),cu=()=>(0,b.jsx)("button",{type:"button",onClick:ct,"aria-label":"dark"===aB?"Switch to light theme":"Switch to dark theme",title:"dark"===aB?"Switch to light theme":"Switch to dark theme",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(--app-shell-muted)] transition-all hover:border-[var(--app-shell-border-strong)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",children:"dark"===aB?(0,b.jsx)(aM.Sun,{className:"h-4 w-4",strokeWidth:1.75}):(0,b.jsx)(aL.Moon,{className:"h-4 w-4",strokeWidth:1.75})}),cv=(0,b.jsxs)("div",{className:"relative group/search min-w-0 flex-1",children:[(0,b.jsx)(aH.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:2}),(0,b.jsx)("input",{ref:bA,type:"text",value:bd,onChange:a=>be(a.target.value),onKeyDown:a=>{"Escape"===a.key&&bO()},placeholder:"Search messages…",className:`w-full rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] pl-9 pr-16 text-sm 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)] ${a?"h-7 text-xs":"h-9"}`}),bF?(0,b.jsxs)("div",{className:"absolute right-3 top-1/2 flex -translate-y-1/2 items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:bj?"…":bh}),(0,b.jsx)("button",{type:"button",onClick:bO,className:"text-[10px] font-bold text-[var(--app-shell-soft-text)] transition-colors hover:text-[var(--app-shell-muted)]",children:"✕"})]}):n?null:(0,b.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"})]}),cw=a?null:(0,b.jsx)("div",{className:"desktop-titlebar border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6",children:(0,b.jsxs)("div",{className:"mx-auto flex max-w-5xl items-center gap-3",children:[(0,b.jsx)("div",{className:"flex min-w-0 items-center flex-shrink-0",children:m&&!aV&&(0,b.jsx)("button",{type:"button",onClick:co,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(--app-shell-muted)] transition hover:border-[var(--app-shell-border-strong)] hover:text-[var(--foreground)]",title:"Show sidebar","aria-label":"Show sidebar",children:(0,b.jsx)(aK.PanelLeftOpen,{className:"h-4 w-4",strokeWidth:1.75})})}),(0,b.jsx)("div",{className:"flex flex-1 justify-center min-w-0",children:(0,b.jsxs)("div",{className:"flex w-full max-w-2xl items-center gap-2",children:[cv,(0,b.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[cu(),(0,b.jsx)(aQ.StatusIndicator,{}),ba&&(0,b.jsx)("button",{type:"button",onClick:()=>a_(!a$),"aria-label":a$?"Hide logs":`Show logs${K.length>0?` (${K.length})`:""}`,"aria-pressed":a$,title:a$?"Hide logs":`Show logs${K.length>0?` (${K.length})`:""}`,className:`inline-flex h-9 w-9 items-center justify-center rounded-xl border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${a$?"border-[var(--app-shell-border-strong)] bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:(0,b.jsx)(aJ.default,{className:"h-4 w-4",strokeWidth:1.75})})]})]})})]})});return(0,b.jsxs)("div",{className:`flex ${a?"h-full":"h-screen"} bg-[var(--app-shell-bg)] text-[var(--foreground)]`,children:[m?(0,b.jsx)(j.WorkspaceSidebar,{threads:r,participants:am,activeThreadId:s,isLoading:A,isRestoringActiveThread:B,isCreating:x,deletingThreadId:y,renamingThreadId:z,onSelectThread:t,onCreateThread:u,onRenameThread:C,onDeleteThread:ca,activeParticipantIds:ax,onToggleParticipantActive:cr,visible:aV,onToggle:co,width:aX,onWidthChange:cp,projects:ab,onCreateProject:ac,onUpdateProject:aj,onDeleteProject:ad,onAddAgentToProject:ae,onRemoveAgentFromProject:af,onReorderProjectAgents:ag,onUpdateParticipant:cq,onSelectProject:cs}):null,(0,b.jsx)("div",{className:"flex flex-col flex-1 min-w-0 relative",children:B?(0,b.jsx)("div",{className:"flex-1 flex items-center justify-center px-4 text-sm text-[var(--muted-foreground)]",children:"Loading your last project…"}):(0,b.jsx)("div",{className:"flex flex-1 min-h-0 bg-transparent relative",children:(0,b.jsxs)("div",{className:"flex flex-col flex-1 min-w-0",children:[ba?(0,b.jsx)("div",{className:"desktop-titlebar border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6 transition-colors duration-200 shrink-0",children:(0,b.jsxs)("div",{className:"mx-auto flex max-w-5xl items-center gap-3 min-w-0",children:[m&&!aV?(0,b.jsx)("button",{type:"button",onClick:co,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(--app-shell-muted)] transition hover:border-[var(--app-shell-border-strong)] hover:text-[var(--foreground)]",title:"Show sidebar","aria-label":"Show sidebar",children:(0,b.jsx)(aK.PanelLeftOpen,{className:"h-4 w-4",strokeWidth:1.75})}):null,(0,b.jsx)("button",{onClick:()=>bc(null),className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--primary)] hover:bg-[var(--app-shell-subtle)] rounded-xl transition-all active:scale-95 flex-shrink-0",title:"Back to main feed",children:(0,b.jsx)(aI.ChevronLeft,{size:20,strokeWidth:2.25})}),(0,b.jsxs)("div",{className:"flex-1 flex flex-col min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,b.jsx)("h2",{className:"text-[15px] font-semibold text-[var(--foreground)] tracking-tight leading-tight truncate min-w-0",children:bM}),bN&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border shrink-0",style:{borderColor:bN.color+"40",color:bN.color},children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:bN.color}}),bN.label]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-[11px] font-medium text-[var(--app-shell-muted)]",children:[(0,b.jsxs)("span",{className:"opacity-80",children:[bI.length," agents"]}),(0,b.jsx)("span",{className:"h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]"}),(0,b.jsxs)("span",{className:"opacity-80",children:["Updated ",function(a){if(!a)return"recently";let b=Math.floor((Date.now()-a)/1e3);if(b<60)return"just now";let c=Math.floor(b/60);if(c<60)return`${c}m ago`;let d=Math.floor(c/60);return d<24?`${d}h ago`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(a)}(bL)]}),bX&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]"}),(0,b.jsx)("span",{className:"opacity-80",children:bX})]})]})]}),(0,b.jsx)("div",{className:"flex -space-x-1.5 flex-shrink-0",children:bI.map(a=>(0,b.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${a.id}&backgroundColor=${a.color?a.color.replace("#",""):"e2e8f0"}`,alt:a.name,className:"h-7 w-7 rounded-full border-2 border-[var(--app-shell-elevated)] object-cover shadow-sm ring-1 ring-[var(--app-shell-border)]",title:a.name},a.id))}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>void bT(),disabled:bV,title:bU?"Learning is already running for this discussion":"Learn from this discussion",className:`inline-flex h-9 items-center gap-1.5 rounded-xl border px-3 text-xs font-medium transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${bV?"cursor-wait border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:[bV?(0,b.jsx)(aO.default,{className:"h-3.5 w-3.5 animate-spin",strokeWidth:1.75}):(0,b.jsx)(aN.BookOpen,{className:"h-3.5 w-3.5",strokeWidth:1.75}),(0,b.jsx)("span",{className:"hidden sm:inline",children:bU?"Learning...":"Learn from discussion"})]}),!a&&cu(),!a&&(0,b.jsx)(aQ.StatusIndicator,{}),(0,b.jsx)("button",{type:"button",onClick:()=>a_(!a$),"aria-label":a$?"Hide logs":`Show logs${K.length>0?` (${K.length})`:""}`,"aria-pressed":a$,title:a$?"Hide logs":`Show logs${K.length>0?` (${K.length})`:""}`,className:`inline-flex h-9 w-9 items-center justify-center rounded-xl border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${a$?"border-[var(--app-shell-border-strong)] bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:(0,b.jsx)(aJ.default,{className:"h-4 w-4",strokeWidth:1.75})})]})]})}):cw,bG?(0,b.jsx)(ar,{query:bF,results:bf,total:bh,participants:am,threadTitleById:bH,isLoading:bj,error:bl,onSelectResult:b9}):ba?(0,b.jsx)(ao,{messages:H,streaming:U,participants:am,rootMessageId:ba,queued:X.some(a=>a.rootMessageId===ba&&"queued"===a.status),onClose:()=>bc(null),onCopyThread:bS,onAddToChat:bR,onDeleteThreadRoot:cb,onDeleteMessage:cd,highlightedMessageId:a9||void 0,renderReplyComposer:cn,activeProcesses:T.filter(a=>["spawning","running"].includes(a.state)&&a.threadId===ba)}):(0,b.jsx)(ai,{messages:H,streaming:U,participants:am,onOpenThread:b4,onCopyThread:bS,onAddToChat:bR,onDeleteThreadRoot:cb,onSummarize:b_,onCreateTasks:b0,onUpdateTaskDraft:b1,onBuildTasks:b2,summarizingThreads:bn,extractingTasks:bw,buildingDrafts:by,taskDrafts:bt,deletingThreadRootId:bp,highlightedMessageId:a9,shipModeThreads:a0,onUpdateMessageThreadStatus:s?(a,b)=>{J(c=>c.map(c=>c.id===a?{...c,threadStatus:b}:c)),F(s,a,b),fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:a,status:b})})}:void 0,onUpdateMessageOutcomeNote:s?(a,b)=>{J(c=>c.map(c=>c.id===a?{...c,outcomeNote:b}:c)),G(s,a,b);let c=H.find(b=>b.id===a);fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:a,status:c?.threadStatus??null,outcomeNote:b})})}:void 0}),!bG&&!ba&&(0,b.jsx)(as.Composer,{onSend:b7,onStop:$,loading:"ready"!==Y,activityStatus:Y,participants:bJ,projects:bK,projectGroups:ak,projectSlug:al,messages:H,commands:ch,pendingThreadInsert:bP,onClearPendingThread:()=>bQ(null),autoMode:bb,onAutoModeChange:b8,repos:ci,selectedRepoIds:cj,onRepoSelectionChange:cm})]})})}),l&&(0,b.jsx)(aP,{logs:K,participants:am,onClear:()=>void N(s),open:a$,onToggle:()=>a_(!1)}),(0,b.jsx)(aF.default,{isOpen:null!==br,title:br?.type==="thread"?"Delete Discussion":"Delete Message",message:br?.type==="thread"?"This will permanently delete this discussion and all of its replies. This action cannot be undone.":"This will permanently delete this message. This action cannot be undone.",preview:br?.preview,confirmLabel:"Delete",cancelLabel:"Cancel",variant:"danger",onConfirm:cf,onCancel:cg})]})}],398066)}];
|
|
4
4
|
|
|
5
5
|
//# sourceMappingURL=apps_local_components_chat-ui_ChatContainer_tsx_0c9fjtl._.js.map
|