@mndrk/agx 2.3.3 → 2.4.2
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 +1 -1
- package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/apps/local/.next/app-path-routes-manifest.json +27 -19
- package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +2 -2
- package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/routes-manifest.json +213 -125
- 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/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +2 -2
- 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.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.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.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 +1 -1
- 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/[id]/skills/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/skills/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/create/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/create/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js +10 -10
- 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/chat-runs/[id]/events/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/[id]/events/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues/activity → chat-runs/[id]/events}/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues/context → chat-runs/[id]/events}/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/daemon/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/daemon/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/analyze/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/analyze/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js +2 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/health/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/health/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/learnings/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/learnings/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/memories/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/memories/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
- 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]/agents/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/agents/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/agents/unassigned/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/agents/unassigned/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/migrate-v1/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/migrate-v2/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js +2 -2
- 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]/notes/[noteId]/route.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +13 -13
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/validate/route.js +1 -1
- 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.js +14 -14
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/route.js +1 -1
- 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 +8 -8
- 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]/skills/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/skills/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/[teamId]/agents/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/[teamId]/agents/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/[teamId]/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/[teamId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/export/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/export/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/import/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/import/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js +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/[id]/threads/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/threads/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/variables/[key]/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/variables/[key]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/variables/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/variables/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/route.js +1 -1
- 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/agents/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/agents/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js +15 -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 +1 -1
- 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/complete/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/complete/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 +9 -9
- 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 +12 -12
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js +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 +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/task-groups/[id]/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/task-groups/[id]/route.js +8 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/mcp-setup → task-groups/[id]}/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/mcp-setup → task-groups/[id]}/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/task-groups/[id]/tasks/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/task-groups/[id]/tasks/route.js +8 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues/active-agents → task-groups/[id]/tasks}/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues/activity → task-groups/[id]/tasks}/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/task-groups/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/task-groups/route.js +8 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/task-groups/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/auth → task-groups}/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +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 +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]/costs/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/dependencies/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/events/route.js +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 +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 +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/replan/route.js +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 +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 +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 +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 +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 +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/start/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/history/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/logs/route.js +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 +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 +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 +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 +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 +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 +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 +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 +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/assign-orphans/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js +2 -2
- 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/api/tracker/notes/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tracker/notes/route.js +6 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/auth → tracker/notes}/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/status → tracker/notes}/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/active-agents/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/active-agents/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/runs/[id] → trackers/[tracker]/active-agents}/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/active-agents/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/auth/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues/[id] → trackers/[tracker]/auth}/route.js +8 -7
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/auth/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/auth/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/callback/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/callback/route.js +12 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/callback/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues/active-agents → trackers/[tracker]/callback}/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/groups/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/groups/route.js +12 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/groups/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/groups/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/activity/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/activity/route.js +12 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/activity/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/activity/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/recap/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/recap/route.js +13 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/recap/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/recap/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/route.js +12 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/route.js +12 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues/[id]/recap → trackers/[tracker]/items}/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/mcp-setup/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/mcp-setup/route.js +13 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/mcp-setup/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/mcp-setup/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/options/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/options/route.js +12 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/options/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/options/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/[id]/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/[id]/route.js +12 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/[id]/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/[id]/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues/context → trackers/[tracker]/runs}/route.js +8 -7
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/scripted/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/scripted/route.js +12 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/scripted/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/scripted/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/status/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/status/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/status/route.js +12 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/status/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/status/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token/route.js +12 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token-receive/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token-receive/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token-receive/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token-receive/route.js +12 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token-receive/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token-receive/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token-receive/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/worker/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/worker/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/worker/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/worker/route.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/worker/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/worker/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/worker/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/connections/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/connections/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/connections/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/connections/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/connections/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/callback → trackers/connections}/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/runs/scripted → trackers/connections}/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/token → update-check}/route_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/user-settings/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/user-settings/route.js.nft.json +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 +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +3 -3
- 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.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 +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.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.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]/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.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.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]/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.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.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.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.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.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.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.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/[slug]/tracking/[tracker]/page/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page/next-font-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/{linear → tracking/[tracker]}/page/react-loadable-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page/build-manifest.json +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page/next-font-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page/react-loadable-manifest.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page/build-manifest.json +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/{linear → tracking}/page/next-font-manifest.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page/react-loadable-manifest.json +16 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/{linear → tracking}/page.js +6 -6
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/{linear → tracking}/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page_client-reference-manifest.js +2 -0
- 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/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 +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +2 -2
- 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 +1 -1
- 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/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-paths-manifest.json +27 -19
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/083c9_next-internal_server_app_api_trackers_[tracker]_callback_route_actions_e1d8c3e4.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/0da96_local__next-internal_server_app_api_trackers_connections_route_actions_35145606.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/30bdd_server_app_api_trackers_[tracker]_active-agents_route_actions_e9c27b60.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/30bdd_server_app_api_trackers_[tracker]_items_[id]_activity_route_actions_bb364795.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/30bdd_server_app_api_trackers_[tracker]_items_[id]_recap_route_actions_aaed4138.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/30bdd_server_app_api_trackers_[tracker]_items_[id]_route_actions_6382f424.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/30bdd_server_app_api_trackers_[tracker]_mcp-setup_route_actions_1279e3c1.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/30bdd_server_app_api_trackers_[tracker]_runs_[id]_route_actions_4c32ff23.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/30bdd_server_app_api_trackers_[tracker]_runs_scripted_route_actions_3c16062e.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/30bdd_server_app_api_trackers_[tracker]_token-receive_route_actions_f831c68f.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[externals]__cb7264ab._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[externals]_fs_promises_0bfe4114._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__8ea8c1b9._.js → [root-of-the-server]__03585144._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__9a457fa6._.js → [root-of-the-server]__04ee9637._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__079c42ac._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08a40fc7._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__bad0734e._.js → [root-of-the-server]__0a528fae._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__29ef193f._.js → [root-of-the-server]__0b317b6d._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0fbbaf2d._.js +95 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__101fe653._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10a90219._.js +69 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__305e10a8._.js → [root-of-the-server]__10bfac8f._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__121d8e45._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1629da24._.js +9 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__9a4dd378._.js → [root-of-the-server]__19d0fac1._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1d3e684e._.js +70 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__203428c1._.js +6 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__21721841._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__240d98b0._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__a7163d7b._.js → [root-of-the-server]__2ab23e45._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2bb933c7._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2c148e2b._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2ff70366._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__17474404._.js → [root-of-the-server]__368f5ffd._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__80be3fd0._.js → [root-of-the-server]__39baf5f6._.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__3a038592._.js +10 -8
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__3b27260f._.js +114 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__f99bf39d._.js → [root-of-the-server]__41534d9e._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__9f7dc3d5._.js → [root-of-the-server]__4641ba3f._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0408eb2d._.js → [root-of-the-server]__4b167927._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0e11afc3._.js → [root-of-the-server]__4b9d4f5c._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__45988247._.js → [root-of-the-server]__4e296e1f._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__3a639150._.js → [root-of-the-server]__4fbf7baa._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__cf874bd3._.js → [root-of-the-server]__5184da61._.js} +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__5859156d._.js +8 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6062bf0a._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__68b692c4._.js +131 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__92dfd9af._.js → [root-of-the-server]__6b0b354d._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__8363ba26._.js → [root-of-the-server]__6e0ef488._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__68c85bdd._.js → [root-of-the-server]__6e73b6e1._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__a8861f5b._.js → [root-of-the-server]__6ead08b8._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__fd3e97e7._.js → [root-of-the-server]__6f6afa0f._.js} +20 -20
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__73f80c8c._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__7be142e5._.js → [root-of-the-server]__7b7b4601._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__7cd28ae0._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__7db7c421._.js +119 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__1888961f._.js → [root-of-the-server]__7fcbb0c2._.js} +96 -94
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__83baa76e._.js → [root-of-the-server]__80aea589._.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8269cb17._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__847236fb._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__847ab7ae._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__91dd4b59._.js → [root-of-the-server]__8dd3b8c5._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__268327fe._.js → [root-of-the-server]__905a5b44._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__8c1f1ac0._.js → [root-of-the-server]__90dd5edd._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__97b5dbf7._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__bb6304da._.js → [root-of-the-server]__97e51964._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0ce28b4a._.js → [root-of-the-server]__97e7a600._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__9e4c0741._.js +8 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__9e9149cd._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__cea6728f._.js → [root-of-the-server]__a74338e8._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__816926cc._.js → [root-of-the-server]__aa4e5942._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ab9b38d8._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__4c4892ef._.js → [root-of-the-server]__ac854687._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__c18c59db._.js → [root-of-the-server]__ae54e5ab._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b0a94c41._.js +70 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b1357960._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__53af378f._.js → [root-of-the-server]__b810670d._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ba72d342._.js +91 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__da39c8a8._.js → [root-of-the-server]__bb757af8._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c07d22ff._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c3408141._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c4a986f6._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__6e876a97._.js → [root-of-the-server]__c614c26c._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c936d679._.js +17 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__caa79472._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__dc146f58._.js → [root-of-the-server]__cbd45246._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__8316aa3e._.js → [root-of-the-server]__d402ed75._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d8cc43c7._.js +114 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__e9ff8266._.js → [root-of-the-server]__d8efbb6c._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__e679695d._.js → [root-of-the-server]__dd538d32._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__c16e8d2d._.js → [root-of-the-server]__df0f00fd._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__131f801a._.js → [root-of-the-server]__e237981c._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__7d454180._.js → [root-of-the-server]__e583235c._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__ccd1a823._.js → [root-of-the-server]__ece576c1._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ef1c393e._.js +70 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__c97ac79d._.js → [root-of-the-server]__f21be9eb._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f598d976._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f7a936d9._.js +114 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__d7e4a538._.js → [root-of-the-server]__fb5944d3._.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fb694089._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__fbe43c0a._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{_3a4bfa8b._.js → _08b93004._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_1a4cb196._.js +95 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_2124f905._.js +25 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_21812330._.js +23 -23
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_25136564._.js +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_520e6344._.js +25 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_5b3f1f41._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_5e5f36c4._.js +91 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_80b34b78._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_8f9f647d._.js +128 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_task-groups_[id]_route_actions_b10cc67c.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_task-groups_route_actions_0079ff4a.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_tracker_notes_route_actions_b8a47be9.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_update-check_route_actions_29ba83b6.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{apps_local_3e0a6a05._.js → apps_local_a15e73a6._.js} +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_aac0e4cb._.js +109 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_b8cc7add._.js +23 -23
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{apps_local_2c8c923a._.js → apps_local_c101ba9e._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_d256aa32._.js +286 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_e12b284f._.js +23 -23
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_e1f4d9ad._.js +91 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_e55f28ef._.js +296 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_ea2bca7e._.js +109 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_f8b3abae._.js +91 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_3ddc6591._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_6bd3d8a2._.js +15 -15
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_cli-runner_ts_ead5489c._.js +18 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_d268503a._.js +15 -15
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_history-store_ts_e4ff7678._.js +19 -12
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_history-store_ts_e98db4de._.js +19 -12
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{apps_local_58f0d34e._.js → apps_local_lib_linear-issues_ts_50093d17._.js} +15 -20
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_orchestrator_chat-processor_ts_46384f36._.js +14 -13
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_7b90c71f._.js +49 -23
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_7ee03cea._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_a3d4d8f4._.js +48 -22
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_tracker_tracker-run-store_ts_5aa9592e._.js +114 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_chat-runs_[id]_events_route_actions_2099e8ec.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_task-groups_[id]_tasks_route_actions_9a8b437b.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_trackers_[tracker]_auth_route_actions_93e51026.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_trackers_[tracker]_groups_route_actions_950eeaf7.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_trackers_[tracker]_items_route_actions_41ec2af7.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_trackers_[tracker]_options_route_actions_19b0ffef.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_trackers_[tracker]_runs_route_actions_54d24a56.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_trackers_[tracker]_status_route_actions_1f8ce507.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_trackers_[tracker]_token_route_actions_93eeb2d1.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_trackers_[tracker]_worker_route_actions_22ced26f.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/083c9_next-internal_server_app_projects_[slug]_tracking_connect_page_actions_72d4a587.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0da96_local__next-internal_server_app_projects_[slug]_tracking_page_actions_ad982907.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/30bdd_server_app_projects_[slug]_tracking_[tracker]_page_actions_c27c0fcc.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/9fb8c_lucide-react_dist_esm_icons_5e38c2ed._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__6e4038bb._.js → [root-of-the-server]__2c4531d0._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__30bf097e._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__46ae9d33._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__50fd8680._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__64cb5d93._.js → [root-of-the-server]__51edc9b6._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__5aa35736._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__5c817ed1._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__799f4d13._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__8059a285._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__886953ec._.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__97160565._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__b8a00d09._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__bc60b3cf._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__bce1fbf7._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__c2c07c79._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__c7e1ea27._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__24007358._.js → [root-of-the-server]__ce586680._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__fdfb2d96._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_55671310._.js +13 -13
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_ba2abc47._.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_e00b6c25._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_e485f527._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_064c7b93._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_16902bc1._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_1e4a0236._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_35d90b5d._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_3e5712aa._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_3f9f6417._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_5d6a3ce2._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_5eebb5cb._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_7395ab20._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_86f59be8._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_988d29c0._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_layout_tsx_3bb31889._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_76330306._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_terminal_page_tsx_0933eeaf._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_thread_[threadId]_page_tsx_2a1d1d5e._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_c5e75cc1._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_TrackerBoard_tsx_98970bab._.js +48 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_chat-ui_f0554cb4._.js +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_751ab3d3._.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_d9a0fd57._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_da1774f7._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_5b388b71._.js → apps_local_e46807f8._.js} +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_e7a823e9._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_f67bb291._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/functions-config-manifest.json +20 -17
- 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 +12 -4
- package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +2 -2
- 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/0876dfd6ce07abaf.js +9 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/114ea1bfd6907330.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/1533a70763aff97d.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/1ec83777a9abd420.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/1fef9364e8667e88.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/286758b0fd546c68.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/31eb3dfbf34049d2.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/31fa61ac9eccd69e.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/37f4e8258ca4d3fb.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/416f4124364c7ec8.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/4eaf7bca1be5edfa.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/6c278ae4535b6d5c.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/6c777fe66e042eec.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{2b946f9d53da482e.js → 77cea126364aab3c.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/85b0b6ed57b5df52.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/87e4fb11329a358d.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{4bc34bec0c539bb8.js → 8a9626e4d7c259ee.js} +6 -6
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/a72ed5cb3feb0d51.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/b02c180ad1d968eb.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/b048a4812b51f97a.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/be9022a471666b85.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/c63d97c917d96f47.js +46 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/cb19d71dd7ffb935.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/cbb4dbdc63177701.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{bf4057d9deff2a78.js → cd19b123505dd26c.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/d3bf70e2fbdc0ae5.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{592bca7fe1fc1455.js → d500a3f5d15b31d5.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/d5b14e14665024a9.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/dd5a56eea2d4c067.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/dd7d7c382389b8b9.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{571e45336377eb45.js → e72724fd8225ec39.js} +3 -3
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/ec92e3bd6c2db6e6.css +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/f3c1b6295b9442c6.js +1 -0
- package/cloud-runtime/standalone/apps/local/app/api/chat-runs/[id]/events/route.ts +98 -0
- package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/route.ts +1 -1
- package/cloud-runtime/standalone/apps/local/app/api/task-groups/[id]/route.ts +38 -0
- package/cloud-runtime/standalone/apps/local/app/api/task-groups/[id]/tasks/route.ts +42 -0
- package/cloud-runtime/standalone/apps/local/app/api/task-groups/route.ts +38 -0
- package/cloud-runtime/standalone/apps/local/app/api/tracker/notes/route.ts +65 -0
- package/cloud-runtime/standalone/apps/local/app/api/{linear/issues → trackers/[tracker]}/active-agents/route.ts +3 -2
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/auth/route.ts +29 -0
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/callback/route.ts +58 -0
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/groups/route.ts +24 -0
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/items/[id]/activity/route.ts +24 -0
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/items/[id]/recap/route.ts +125 -0
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/items/[id]/route.ts +60 -0
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/items/route.ts +44 -0
- package/cloud-runtime/standalone/apps/local/app/api/{linear → trackers/[tracker]}/mcp-setup/route.ts +90 -33
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/options/route.ts +33 -0
- package/cloud-runtime/standalone/apps/local/app/api/{linear → trackers/[tracker]}/runs/[id]/route.ts +24 -16
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/runs/route.ts +87 -0
- package/cloud-runtime/standalone/apps/local/app/api/{linear → trackers/[tracker]}/runs/scripted/route.ts +13 -6
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/status/route.ts +48 -0
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/token/route.ts +49 -0
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/token-receive/route.ts +52 -0
- package/cloud-runtime/standalone/apps/local/app/api/trackers/[tracker]/worker/route.ts +163 -0
- package/cloud-runtime/standalone/apps/local/app/api/trackers/connections/route.ts +96 -0
- package/cloud-runtime/standalone/apps/local/app/api/update-check/route.ts +50 -0
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/layout.tsx +2 -1
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/terminal/page.tsx +4 -1
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/{linear → tracking/[tracker]}/page.tsx +11 -6
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/tracking/connect/page.tsx +180 -0
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/tracking/page.tsx +36 -0
- package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +3 -3
- package/cloud-runtime/standalone/apps/local/components/{LinearBoard.tsx → TrackerBoard.tsx} +654 -302
- package/cloud-runtime/standalone/apps/local/components/chat-ui/Composer.tsx +18 -75
- package/cloud-runtime/standalone/apps/local/components/chat-ui/MessageBubble.tsx +6 -1
- package/cloud-runtime/standalone/apps/local/components/chat-ui/MessageList.tsx +34 -8
- package/cloud-runtime/standalone/apps/local/components/chat-ui/StreamingSegments.tsx +88 -0
- package/cloud-runtime/standalone/apps/local/components/chat-ui/ThreadView.tsx +23 -13
- package/cloud-runtime/standalone/apps/local/components/projects/ProjectObjectivesWorkspace.tsx +18 -2
- package/cloud-runtime/standalone/apps/local/components/projects/home/ToolPathsSection.tsx +7 -7
- package/cloud-runtime/standalone/apps/local/components/terminal/ProjectTerminal.tsx +28 -5
- package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +61 -46
- package/cloud-runtime/standalone/apps/local/components/tracker/FolderRow.tsx +161 -0
- package/cloud-runtime/standalone/apps/local/components/tracker/GroupNamePrompt.tsx +110 -0
- package/cloud-runtime/standalone/apps/local/components/tracker/GroupPanel.tsx +306 -0
- package/cloud-runtime/standalone/apps/local/components/tracker/NoteSticker.tsx +161 -0
- package/cloud-runtime/standalone/apps/local/components/{linear → tracker}/RunScriptManager.tsx +7 -7
- package/cloud-runtime/standalone/apps/local/components/tracker/SelectionBar.tsx +38 -0
- package/cloud-runtime/standalone/apps/local/components/{linear → tracker}/TicketPanel.tsx +39 -37
- package/cloud-runtime/standalone/apps/local/components/{linear → tracker}/TicketRecapSection.tsx +9 -5
- package/cloud-runtime/standalone/apps/local/components/tracker/TicketRow.tsx +279 -0
- package/cloud-runtime/standalone/apps/local/components/{linear → tracker}/TicketSessionList.tsx +3 -3
- package/cloud-runtime/standalone/apps/local/components/{linear/LinearSettingsModal.tsx → tracker/TrackerSettingsModal.tsx} +26 -22
- package/cloud-runtime/standalone/apps/local/components/{linear/LinearWorkerConfig.tsx → tracker/TrackerWorkerConfig.tsx} +12 -12
- package/cloud-runtime/standalone/apps/local/components/{linear/LinearWorkerRunLog.tsx → tracker/TrackerWorkerRunLog.tsx} +4 -4
- package/cloud-runtime/standalone/apps/local/components/tracking/TaskTrackingNav.tsx +125 -0
- package/cloud-runtime/standalone/apps/local/components/tracking/TrackerIcon.tsx +58 -0
- package/cloud-runtime/standalone/apps/local/components/tracking/TrackerSetup.tsx +264 -0
- package/cloud-runtime/standalone/apps/local/hooks/useGroupChat.ts +1 -0
- package/cloud-runtime/standalone/apps/local/hooks/useProcessPolling.ts +155 -12
- package/cloud-runtime/standalone/apps/local/hooks/useSidebarStage.ts +54 -18
- package/cloud-runtime/standalone/apps/local/hooks/useTaskGroups.ts +133 -0
- package/cloud-runtime/standalone/apps/local/hooks/{useLinearActiveAgents.ts → useTrackerActiveAgents.ts} +19 -6
- package/cloud-runtime/standalone/apps/local/hooks/{useLinearConnection.ts → useTrackerConnection.ts} +107 -26
- package/cloud-runtime/standalone/apps/local/hooks/useTrackerConnections.ts +99 -0
- package/cloud-runtime/standalone/apps/local/hooks/{useLinearIssueMentions.ts → useTrackerItemMentions.ts} +15 -8
- package/cloud-runtime/standalone/apps/local/hooks/useTrackerItems.ts +120 -0
- package/cloud-runtime/standalone/apps/local/hooks/{useLinearParticipants.ts → useTrackerParticipants.ts} +4 -4
- package/cloud-runtime/standalone/apps/local/hooks/{useLinearRunScripts.ts → useTrackerRunScripts.ts} +15 -15
- package/cloud-runtime/standalone/apps/local/hooks/{useLinearRuns.ts → useTrackerRuns.ts} +33 -55
- package/cloud-runtime/standalone/apps/local/hooks/useUpdateCheck.ts +37 -0
- package/cloud-runtime/standalone/apps/local/hooks/useUrlSelection.ts +19 -0
- package/cloud-runtime/standalone/apps/local/lib/agent-process-registry.ts +29 -6
- package/cloud-runtime/standalone/apps/local/lib/chat/tracker-issue-context.ts +11 -0
- package/cloud-runtime/standalone/apps/local/lib/chat/{linear-issue-context.ts → tracker-item-context.ts} +19 -10
- package/cloud-runtime/standalone/apps/local/lib/chat-event-bus.ts +84 -0
- package/cloud-runtime/standalone/apps/local/lib/chat-utils.ts +68 -0
- package/cloud-runtime/standalone/apps/local/lib/cli-runner.ts +46 -21
- package/cloud-runtime/standalone/apps/local/lib/constants/timing.ts +1 -0
- package/cloud-runtime/standalone/apps/local/lib/history-store.ts +14 -0
- package/cloud-runtime/standalone/apps/local/lib/linear-run-status.ts +3 -1
- package/cloud-runtime/standalone/apps/local/lib/{objective-linear-issues.ts → objective-tracker-issues.ts} +12 -6
- package/cloud-runtime/standalone/apps/local/lib/orchestrator/chat-processor.ts +35 -1
- package/cloud-runtime/standalone/apps/local/lib/sqlite-query-adapter.ts +32 -0
- package/cloud-runtime/standalone/apps/local/lib/stream-multiplexer.ts +5 -0
- package/cloud-runtime/standalone/apps/local/lib/task-groups-db.ts +130 -0
- package/cloud-runtime/standalone/apps/local/lib/tiptap/composer-mentions.ts +5 -5
- package/cloud-runtime/standalone/apps/local/lib/tiptap/editor-utils.ts +1 -1
- package/cloud-runtime/standalone/apps/local/lib/tiptap/serialize-composer.ts +2 -2
- package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/jira/adapter.tsx +324 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/jira/client.ts +517 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/jira/index.ts +18 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/jira/issues.ts +268 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/jira/jira-icon.tsx +22 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/linear/adapter.tsx +307 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/linear/client.ts +907 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/linear/index.ts +9 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/linear/issues.ts +376 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/linear/linear-icon.tsx +14 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/connections.ts +67 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/index.ts +44 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/recap.ts +246 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/registry.ts +32 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/route-helpers.ts +27 -0
- package/cloud-runtime/standalone/apps/local/lib/{linear-scripted-session.ts → tracker/scripted-session.ts} +28 -23
- package/cloud-runtime/standalone/apps/local/lib/tracker/tracker-adapter.ts +64 -0
- package/cloud-runtime/standalone/apps/local/lib/{linear-execution-prompt.ts → tracker/tracker-execution-prompt.ts} +27 -23
- package/cloud-runtime/standalone/apps/local/lib/tracker/tracker-item-store.ts +804 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/tracker-run-store.ts +560 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker/types.ts +119 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker-board-utils.ts +4 -0
- package/cloud-runtime/standalone/apps/local/lib/tracker-run-status.ts +88 -0
- package/cloud-runtime/standalone/apps/local/lib/types.ts +1 -0
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/objective-worker.ts +4 -4
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/processor.ts +7 -6
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/{linear-worker-constants.ts → task-worker-constants.ts} +11 -11
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/task-worker-job.ts +49 -0
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/{linear-worker.ts → task-worker.ts} +47 -31
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/types.ts +5 -3
- package/cloud-runtime/standalone/apps/local/state/lastSession.test.ts +83 -0
- package/cloud-runtime/standalone/apps/local/state/lastSession.ts +46 -0
- package/cloud-runtime/standalone/apps/local/state/trackerBoardFilters.ts +112 -0
- package/cloud-runtime/standalone/apps/local/state/{linearBoardPins.ts → trackerBoardPins.ts} +14 -9
- package/cloud-runtime/standalone/apps/local/state/{linearRunScripts.ts → trackerRunScripts.ts} +32 -24
- package/cloud-runtime/standalone/apps/local/worker/index.js +194 -14
- package/lib/commands/chat.js +0 -4
- package/lib/logger.ts +72 -0
- package/package.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/auth/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/auth/route.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/callback/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/callback/route.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/callback/route_client-reference-manifest.js +0 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/cycles/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/cycles/route.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/cycles/route.js.nft.json +0 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/cycles/route_client-reference-manifest.js +0 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/[id]/recap/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/[id]/recap/route.js +0 -12
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/[id]/recap/route.js.nft.json +0 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/[id]/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/[id]/route.js.nft.json +0 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/[id]/route_client-reference-manifest.js +0 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/active-agents/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/active-agents/route.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/activity/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/activity/route.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/context/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/context/route.js.nft.json +0 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/route.js +0 -11
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/route.js.nft.json +0 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/route_client-reference-manifest.js +0 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/mcp-setup/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/mcp-setup/route.js +0 -8
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/options/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/options/route.js +0 -11
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/options/route.js.nft.json +0 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/options/route_client-reference-manifest.js +0 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/[id]/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/[id]/route.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/[id]/route_client-reference-manifest.js +0 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/route.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/route.js.nft.json +0 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/route_client-reference-manifest.js +0 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/scripted/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/scripted/route.js +0 -24
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/scripted/route.js.nft.json +0 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/status/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/status/route.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/status/route.js.nft.json +0 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/token/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/token/route.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/token/route.js.nft.json +0 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route.js +0 -13
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route.js.nft.json +0 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route_client-reference-manifest.js +0 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route.js +0 -14
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route.js.nft.json +0 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route_client-reference-manifest.js +0 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page/app-paths-manifest.json +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page_client-reference-manifest.js +0 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/083c9_next-internal_server_app_api_linear_issues_active-agents_route_actions_e49a4900.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/0da96_local__next-internal_server_app_api_linear_issues_[id]_route_actions_8966da68.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/0da96_local__next-internal_server_app_api_linear_runs_scripted_route_actions_65d0c32b.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/9fb8c_next_dist_esm_build_templates_app-route_4a0d9040.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[externals]__c397277f._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[externals]__ec108b52._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0e80a97a._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0fc11060._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1926415e._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1a87c857._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1d278aeb._.js +0 -8
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1ee65b64._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2f038740._.js +0 -8
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4b05c44d._.js +0 -141
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4c070f04._.js +0 -165
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6183b682._.js +0 -67
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__63752370._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__713ff4cf._.js +0 -145
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__7ce30f24._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__87abf03f._.js +0 -141
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__a22e30c6._.js +0 -22
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b176d4d9._.js +0 -160
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c84eafe2._.js +0 -141
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d28ace89._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d7e18064._.js +0 -160
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__d9bbc1a6._.js +0 -141
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__dfd77ac4._.js +0 -31
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ef75c5b6._.js +0 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f66666f9._.js +0 -141
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__f844df91._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ff6a99f0._.js +0 -160
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_00ea3122._.js +0 -415
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_022eee16._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_08d3c605._.js +0 -25
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_671682cc._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_7222e528._.js +0 -9
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_755b8689._.js +0 -415
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_linear_auth_route_actions_845dd997.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_linear_callback_route_actions_90a636e1.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_linear_cycles_route_actions_20618fe1.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_linear_issues_route_actions_f798ab06.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_linear_mcp-setup_route_actions_9c461973.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_linear_options_route_actions_3455e6c0.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_linear_runs_[id]_route_actions_4bd5ad16.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_linear_runs_route_actions_8613ec29.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_linear_status_route_actions_746bcaf4.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_linear_token_route_actions_8fed80a2.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_linear_worker_route_actions_ef891304.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_af73c5e8._.js +0 -155
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_b3086d93._.js +0 -25
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_c530bd77._.js +0 -11
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_f13708ae._.js +0 -415
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_077d49c2._.js +0 -8
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_62edff06._.js +0 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_941822a8._.js +0 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_e7ef8bcb._.js +0 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/e2f97_api_projects_[id]_objectives_[objectiveId]_linear-issues_route_actions_d506d8a3.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_linear_issues_[id]_recap_route_actions_7b9ac0ec.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_linear_issues_activity_route_actions_a25a56a3.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_linear_issues_context_route_actions_b8ed252b.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0da96_local__next-internal_server_app_projects_[slug]_linear_page_actions_d3e5c399.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/9fb8c_lucide-react_dist_esm_icons_c5dc4091._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__31c61bac._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__364fdd09._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__45e37c6d._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__7c5959c3._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__8666da53._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__94ab2a92._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__97e9f8c3._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__a3cf8479._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__d47e7e93._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__e9f82952._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_480cf274._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_4e95976c._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_5ec7006b._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0ac2a791._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0c3f9085._.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_37d519f7._.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_96dee4fc._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_linear_page_tsx_3fd25408._.js +0 -37
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_d30cc504._.js +0 -11
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_df7bb32d._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_f1b23697._.js +0 -11
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/09a9b0ff9fedfd4c.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/1d442896a9e6f641.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/26078932a72e240a.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/28f49fb8b0515698.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/2d455dcd9ffde753.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/37015d5c91f9a893.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/5cfcd19e814c5846.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/678144d458893b62.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/79fc27e54d194ae1.css +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/8c64b8a9eee8e202.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/8f8da5f39011a5fb.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/9a293e4003752b7f.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/9be47f89ded22972.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/a6bfcaae2ac8b716.js +0 -35
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/b2bbe7bc1d2e8729.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/b4175ba3d8d2c54a.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/b6ef2665e828eb71.js +0 -9
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/be15308d13860246.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/c91eaf8278deda9c.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/d36cc96f4da78fc6.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/d96375ecaaf51dbd.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/e845c01d0cc3b9a2.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/ec699df05370dd42.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/f67c9e5af56eb2d0.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/f693c7ecc12d1d78.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/fa9d7bb55267b173.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/fdebf03746baf784.js +0 -9
- package/cloud-runtime/standalone/apps/local/app/api/linear/auth/route.ts +0 -32
- package/cloud-runtime/standalone/apps/local/app/api/linear/callback/route.ts +0 -49
- package/cloud-runtime/standalone/apps/local/app/api/linear/cycles/route.ts +0 -27
- package/cloud-runtime/standalone/apps/local/app/api/linear/issues/[id]/recap/route.ts +0 -30
- package/cloud-runtime/standalone/apps/local/app/api/linear/issues/[id]/route.ts +0 -92
- package/cloud-runtime/standalone/apps/local/app/api/linear/issues/activity/route.ts +0 -23
- package/cloud-runtime/standalone/apps/local/app/api/linear/issues/context/route.ts +0 -26
- package/cloud-runtime/standalone/apps/local/app/api/linear/issues/route.ts +0 -96
- package/cloud-runtime/standalone/apps/local/app/api/linear/options/route.ts +0 -48
- package/cloud-runtime/standalone/apps/local/app/api/linear/runs/route.ts +0 -106
- package/cloud-runtime/standalone/apps/local/app/api/linear/status/route.ts +0 -51
- package/cloud-runtime/standalone/apps/local/app/api/linear/token/route.ts +0 -72
- package/cloud-runtime/standalone/apps/local/app/api/linear/worker/route.ts +0 -151
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route.ts +0 -197
- package/cloud-runtime/standalone/apps/local/components/LinearSetup.tsx +0 -239
- package/cloud-runtime/standalone/apps/local/components/linear/LinearIcon.tsx +0 -19
- package/cloud-runtime/standalone/apps/local/components/linear/TicketRow.tsx +0 -158
- package/cloud-runtime/standalone/apps/local/hooks/useLinearIssues.ts +0 -122
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/linear-worker-job.ts +0 -52
- package/cloud-runtime/standalone/apps/local/state/linearBoardFilters.ts +0 -108
- package/cloud-runtime/standalone/apps/local/state/linearRunScripts.test.ts +0 -99
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/auth → chat-runs/[id]/events}/route/build-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/auth → chat-runs/[id]/events}/route/server-reference-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/auth → chat-runs/[id]/events}/route.js.map +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/callback → task-groups/[id]}/route/build-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/callback → task-groups/[id]}/route/server-reference-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/callback → task-groups/[id]}/route.js.map +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/cycles → task-groups/[id]/tasks}/route/build-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/cycles → task-groups/[id]/tasks}/route/server-reference-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/cycles → task-groups/[id]/tasks}/route.js.map +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues/[id]/recap → task-groups}/route/build-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues/[id]/recap → task-groups}/route/server-reference-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues/[id]/recap → task-groups}/route.js.map +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues/[id] → tracker/notes}/route/build-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues/[id] → tracker/notes}/route/server-reference-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues/[id] → tracker/notes}/route.js.map +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues → trackers/[tracker]}/active-agents/route/build-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues → trackers/[tracker]}/active-agents/route/server-reference-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues → trackers/[tracker]}/active-agents/route.js.map +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues/activity → trackers/[tracker]/auth}/route/build-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues/activity → trackers/[tracker]/auth}/route/server-reference-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues/activity → trackers/[tracker]/auth}/route.js.map +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues/context → trackers/[tracker]/callback}/route/build-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues/context → trackers/[tracker]/callback}/route/server-reference-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues/context → trackers/[tracker]/callback}/route.js.map +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues → trackers/[tracker]/groups}/route/build-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues → trackers/[tracker]/groups}/route/server-reference-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/issues → trackers/[tracker]/groups}/route.js.map +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/mcp-setup → trackers/[tracker]/items/[id]/activity}/route/build-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/mcp-setup → trackers/[tracker]/items/[id]/activity}/route/server-reference-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/mcp-setup → trackers/[tracker]/items/[id]/activity}/route.js.map +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/options → trackers/[tracker]/items/[id]/recap}/route/build-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/options → trackers/[tracker]/items/[id]/recap}/route/server-reference-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/options → trackers/[tracker]/items/[id]/recap}/route.js.map +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/runs → trackers/[tracker]/items}/[id]/route/build-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/runs → trackers/[tracker]/items}/[id]/route/server-reference-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/runs → trackers/[tracker]/items}/[id]/route.js.map +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/runs → trackers/[tracker]/items}/route/build-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/runs → trackers/[tracker]/items}/route/server-reference-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/runs → trackers/[tracker]/items}/route.js.map +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/runs/scripted → trackers/[tracker]/mcp-setup}/route/build-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/runs/scripted → trackers/[tracker]/mcp-setup}/route/server-reference-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/runs/scripted → trackers/[tracker]/mcp-setup}/route.js.map +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/status → trackers/[tracker]/options}/route/build-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/status → trackers/[tracker]/options}/route/server-reference-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/status → trackers/[tracker]/options}/route.js.map +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/token → trackers/[tracker]/runs/[id]}/route/build-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/token → trackers/[tracker]/runs/[id]}/route/server-reference-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/token → trackers/[tracker]/runs/[id]}/route.js.map +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/worker → trackers/[tracker]/runs}/route/build-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/worker → trackers/[tracker]/runs}/route/server-reference-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{linear/worker → trackers/[tracker]/runs}/route.js.map +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{projects/[id]/objectives/[objectiveId]/linear-issues → trackers/[tracker]/runs/scripted}/route/build-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{projects/[id]/objectives/[objectiveId]/linear-issues → trackers/[tracker]/runs/scripted}/route/server-reference-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/api/{projects/[id]/objectives/[objectiveId]/linear-issues → trackers/[tracker]/runs/scripted}/route.js.map +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/{projects/[slug]/linear/page → api/trackers/[tracker]/status/route}/server-reference-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/{projects/[slug]/linear/page.js.map → api/trackers/[tracker]/status/route.js.map} +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/{linear → tracking/[tracker]}/page/build-manifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{a4zqdHSrJMueXhCPqODSx → QEldoF1LdgJqO0PgpmUmx}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{a4zqdHSrJMueXhCPqODSx → QEldoF1LdgJqO0PgpmUmx}/_clientMiddlewareManifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{a4zqdHSrJMueXhCPqODSx → QEldoF1LdgJqO0PgpmUmx}/_ssgManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/components/{linear/LinearBoardFilters.tsx → tracker/TrackerBoardFilters.tsx} +0 -0
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,292135,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},353662,e=>{"use strict";var t=e.i(810605);t.NODE_TIMEOUT_DEFAULT_MS,t.GRAPH_TIMEOUT_DEFAULT_MS;let r=new Set(["done","passed"]),a=new Set(["pending","running","awaiting_human","blocked"]);function s(e){return`node--${e}`}function n(e){return e.replace(/_/gu," ")}function o(e,t){return"root"===t.type?t.title?.trim()||"Task Objective":"work"===t.type||"function"===t.type?t.title?.trim()||e:"gate"===t.type?t.gateType.replace(/_gate$/u,"").replace(/_/gu," ").replace(/\b\w/gu,e=>e.toUpperCase()):"fork"===t.type?"Fork":"join"===t.type?`Join (${t.joinStrategy})`:"Conditional"}function l(e){for(let[t,r]of Object.entries(e.nodes))if("root"===r.type)return{id:t,node:r};return null}function i(e){let t,s=l(e);return{mode:e.mode,graphVersion:e.graphVersion,nodeCount:Object.keys(e.nodes).length,progress:0===(t=Object.values(e.nodes).filter(e=>"skipped"!==e.status)).length?100:Math.round(t.filter(e=>r.has(e.status)).length/t.length*100),currentBlocker:function(e){let t=function(e){let t=Object.entries(e.nodes),r=t.filter(([,e])=>"gate"===e.type&&e.required),a=r.find(([,e])=>"failed"===e.status);if(a)return a[0];let s=r.find(([,e])=>"awaiting_human"===e.status);if(s)return s[0];let n=r.find(([,e])=>"pending"===e.status||"running"===e.status);if(n)return n[0];let o=t.find(([,e])=>"work"===e.type&&"blocked"===e.status);return o?.[0]??null}(e);if(!t)return null;let r=e.nodes[t];return r?{nodeId:t,label:o(t,r),status:r.status,required:"gate"===r.type&&r.required}:null}(e),derivedStatus:function(e){let t=Object.keys(e.nodes).length;if(0===t)return"INTAKE";if(1===t){let t=Object.values(e.nodes)[0];if("root"===t.type&&!t.graphCreated)return"INTAKE"}return Object.values(e.nodes).some(e=>a.has(e.status))?"PROGRESS":"DONE"}(e),hasRootNode:null!==s,rootNodeId:s?.id??null}}e.s(["buildGraphSummary",()=>i,"findRootNode",()=>l,"formatNodeStatusLabel",()=>n,"getNodeLabel",()=>o,"toNodeStatusClass",()=>s],353662)},936381,e=>{"use strict";var t=e.i(762281),r=e.i(935851),a=e.i(506420),s=e.i(307241),n=e.i(810605);function o(){let[e,a]=(0,r.useState)(null),[s,o]=(0,r.useState)("loading");(0,r.useEffect)(()=>{let e=!0;async function t(){try{let t=await fetch("/api/health");if(!e)return;if(!t.ok)return void o("error");let r=await t.json();a(r),o(r.connected?"connected":"disconnected")}catch{e&&o("error")}}t();let r=setInterval(t,n.UI_POLL_DB_HEALTH_MS);return()=>{e=!1,clearInterval(r)}},[]);let l={loading:"Checking database…",connected:`${e?.adapter??"db"} connected (${e?.latencyMs??"?"}ms)`,disconnected:`${e?.adapter??"db"} disconnected`,error:"Database unreachable"};return(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--muted-foreground)]",role:"status","aria-label":l[s],children:[(0,t.jsx)("span",{className:`w-2 h-2 rounded-full ${{loading:"bg-yellow-400",connected:"bg-green-500",disconnected:"bg-red-500",error:"bg-red-500"}[s]}`}),(0,t.jsx)("span",{className:"hidden sm:inline",children:l[s]})]})}function l({children:e,fullWidth:r=!1,noFooter:a=!1}){return(0,t.jsxs)("div",{className:"h-screen flex flex-col overflow-hidden",children:[(0,t.jsx)("nav",{className:"desktop-titlebar flex-shrink-0 border-b border-[var(--card-border)] bg-[var(--card-bg)]/80 backdrop-blur-lg z-30",children:(0,t.jsx)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:(0,t.jsxs)("div",{className:"flex items-center justify-between h-16",children:[(0,t.jsx)("div",{className:"flex items-center gap-8",children:(0,t.jsx)(s.default,{href:"/",className:"flex items-center gap-3 group",children:(0,t.jsxs)("svg",{width:"52",height:"31",viewBox:"0 0 64 38",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"transition-transform group-hover:scale-105",children:[(0,t.jsx)("rect",{width:"64",height:"38",rx:"8",fill:"black"}),(0,t.jsxs)("g",{stroke:"white",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M 14 27 C 17 16 19 10 20 8 C 21 12 23 20 25 27"}),(0,t.jsx)("path",{d:"M 16 20 C 19 19 21 21 23 20"}),(0,t.jsx)("path",{d:"M 40 13 C 35 10 30 13 30 19 C 30 25 34 28 38 27 C 40 26 40 22 40 20 L 36 20"}),(0,t.jsx)("path",{d:"M 46 11 C 48 16 51 22 54 27"}),(0,t.jsx)("path",{d:"M 54 11 C 52 16 49 22 46 27"})]})]})})}),(0,t.jsx)("div",{className:"flex items-center gap-3",children:(0,t.jsx)(s.default,{href:"/",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Home"})})]})})}),(0,t.jsx)("main",{className:`flex-1 min-h-0 flex flex-col ${r?"p-0":"p-4 sm:p-6 lg:p-8 overflow-y-auto"}`,children:e}),!a&&(0,t.jsx)("footer",{className:"flex-shrink-0 border-t border-[var(--card-border)] bg-[var(--card-bg)]/50 py-4",children:(0,t.jsxs)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 flex items-center justify-between text-xs text-[var(--muted-foreground)]",children:[(0,t.jsx)("span",{children:"AGX"}),(0,t.jsxs)("span",{className:"hidden sm:inline-flex items-center gap-3",children:[(0,t.jsx)(o,{}),(0,t.jsx)("span",{children:"Built with Next.js + Db"})]})]})})]})}function i(e){return(0,t.jsx)(r.Suspense,{fallback:(0,t.jsx)("div",{className:"h-screen flex items-center justify-center bg-[var(--background)]",children:(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"})}),children:(0,t.jsx)(l,{...e})})}var d=e.i(902572);let c=new Set([d.PROJECT_OBJECTIVES_METADATA_KEY,d.LEGACY_PROJECT_GOALS_METADATA_KEY,d.PROJECT_HEALTH_METADATA_KEY]);function u({project:e,onEdit:r,onDelete:a,onClick:s,onManageTasks:n}){let o=e.repos&&e.repos.length>0;return(0,t.jsxs)("div",{onClick:()=>s?.(e),className:`p-5 surface-card space-y-4
|
|
2
|
-
${s?"cursor-pointer hover:border-gray-300 dark:hover:border-gray-700 hover:shadow-md active:scale-[0.99]":""}`,children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-lg font-semibold",children:e.name}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] tracking-wide uppercase",children:e.slug})]}),(0,t.jsxs)("div",{className:"flex flex-col items-end gap-2",children:[(0,t.jsxs)("span",{className:"text-[11px] font-semibold text-[var(--muted-foreground)]",children:["Updated ",new Date(e.updated_at).toLocaleDateString()]}),(r||a||
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,292135,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},506420,(e,t,r)=>{t.exports=e.r(27944)},524123,e=>{"use strict";var t=e.i(935851);function r(){let[e,r]=(0,t.useState)([]),[a,s]=(0,t.useState)(!1),[o,n]=(0,t.useState)(null),l=(0,t.useCallback)(async()=>{s(!0);try{let e=await fetch("/api/projects");if(!e.ok)throw Error("Failed to fetch projects");let t=await e.json();r(t.projects??[]),n(null)}catch(e){n(e instanceof Error?e:Error("Unknown error"))}finally{s(!1)}},[]);(0,t.useEffect)(()=>{l()},[l]);let i=(0,t.useCallback)(async e=>{let t=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to create project");let a=(await t.json()).project;return r(e=>[a,...e]),a},[]);return{projects:e,isLoading:a,error:o,refetch:l,createProject:i,updateProject:(0,t.useCallback)(async(e,t)=>{let a=await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok)throw Error((await a.json().catch(()=>({}))).error||"Failed to update project");let s=(await a.json()).project;return r(t=>t.map(t=>t.id===e?s:t)),s},[]),deleteProject:(0,t.useCallback)(async e=>{let t=await fetch(`/api/projects/${e}`,{method:"DELETE"});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to delete project");r(t=>t.filter(t=>t.id!==e))},[])}}function a(){let[e,r]=(0,t.useState)([]),[a,s]=(0,t.useState)(!0),o=(0,t.useCallback)(async()=>{try{let e=await fetch("/api/projects");if(!e.ok)return;let{projects:t}=await e.json(),a=await Promise.all((t??[]).map(async e=>{let t=[],r=[];try{let[a,s]=await Promise.all([fetch(`/api/projects/${e.id}/agents`),fetch(`/api/projects/${e.id}/threads`)]);a.ok&&(t=(await a.json()).agents??[]),s.ok&&(r=((await s.json()).threads??[]).map(e=>e.thread_id))}catch{}return{...e,repos:e.repos??[],agents:t.map(t=>({project_id:e.id,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at})),thread_ids:r,workspace_ids:r}}));r(a)}catch{}finally{s(!1)}},[]);(0,t.useEffect)(()=>{o()},[o]);let n=(0,t.useCallback)(async(e,t)=>{try{let a="string"==typeof e?{name:e}:e,s=a.name.trim(),o=(a.slug||s.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")).trim(),n=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...a,name:s,slug:o})});if(!n.ok)return null;let{project:l}=await n.json(),i=Array.isArray(t)?t:t?[t]:[];for(let e of i)await fetch(`/api/projects/${l.id}/threads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:e})}).catch(e=>console.warn("[useProjects] link thread failed:",e));let d={...l,repos:l.repos??[],agents:[],thread_ids:i,workspace_ids:i};return r(e=>[...e,d].sort((e,t)=>e.name.localeCompare(t.name))),d}catch{return null}},[]),l=(0,t.useCallback)(async(e,t)=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})})).ok)return;r(r=>r.map(r=>r.id===e?{...r,name:t}:r).sort((e,t)=>e.name.localeCompare(t.name)))}catch{}},[]),i=(0,t.useCallback)(async e=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"DELETE"})).ok)return;r(t=>t.filter(t=>t.id!==e))}catch{}},[]),d=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok){let e=await a.json().catch(()=>({}));throw Error(e.error||"Failed to update project")}let s=(await a.json()).project;return r(t=>t.map(t=>t.id===e?{...t,...s,repos:s.repos??t.repos}:t)),s}catch{return null}},[]),c=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:t})});if(!a.ok)return;let s=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:s}:t))}catch{}},[]),u=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents?agentId=${t}`,{method:"DELETE"});if(!a.ok)return;let s=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:s}:t))}catch{}},[]);return{projects:e,isLoading:a,createProject:n,updateProject:d,renameProject:l,deleteProject:i,addAgent:c,removeAgent:u,reorderAgents:(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({orderedAgentIds:t})});if(!a.ok)return;let s=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:s}:t))}catch{}},[]),moveAgent:(0,t.useCallback)(async(e,t,r)=>{try{await fetch(`/api/projects/${t}/agents?agentId=${e}`,{method:"DELETE"}),await fetch(`/api/projects/${r}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:e})}),await o()}catch{}},[o]),refresh:o}}e.s(["useProjects",()=>r,"useProjectsWithAgents",()=>a])},353662,e=>{"use strict";var t=e.i(810605);t.NODE_TIMEOUT_DEFAULT_MS,t.GRAPH_TIMEOUT_DEFAULT_MS;let r=new Set(["done","passed"]),a=new Set(["pending","running","awaiting_human","blocked"]);function s(e){return`node--${e}`}function o(e){return e.replace(/_/gu," ")}function n(e,t){return"root"===t.type?t.title?.trim()||"Task Objective":"work"===t.type||"function"===t.type?t.title?.trim()||e:"gate"===t.type?t.gateType.replace(/_gate$/u,"").replace(/_/gu," ").replace(/\b\w/gu,e=>e.toUpperCase()):"fork"===t.type?"Fork":"join"===t.type?`Join (${t.joinStrategy})`:"Conditional"}function l(e){for(let[t,r]of Object.entries(e.nodes))if("root"===r.type)return{id:t,node:r};return null}function i(e){let t,s=l(e);return{mode:e.mode,graphVersion:e.graphVersion,nodeCount:Object.keys(e.nodes).length,progress:0===(t=Object.values(e.nodes).filter(e=>"skipped"!==e.status)).length?100:Math.round(t.filter(e=>r.has(e.status)).length/t.length*100),currentBlocker:function(e){let t=function(e){let t=Object.entries(e.nodes),r=t.filter(([,e])=>"gate"===e.type&&e.required),a=r.find(([,e])=>"failed"===e.status);if(a)return a[0];let s=r.find(([,e])=>"awaiting_human"===e.status);if(s)return s[0];let o=r.find(([,e])=>"pending"===e.status||"running"===e.status);if(o)return o[0];let n=t.find(([,e])=>"work"===e.type&&"blocked"===e.status);return n?.[0]??null}(e);if(!t)return null;let r=e.nodes[t];return r?{nodeId:t,label:n(t,r),status:r.status,required:"gate"===r.type&&r.required}:null}(e),derivedStatus:function(e){let t=Object.keys(e.nodes).length;if(0===t)return"INTAKE";if(1===t){let t=Object.values(e.nodes)[0];if("root"===t.type&&!t.graphCreated)return"INTAKE"}return Object.values(e.nodes).some(e=>a.has(e.status))?"PROGRESS":"DONE"}(e),hasRootNode:null!==s,rootNodeId:s?.id??null}}e.s(["buildGraphSummary",()=>i,"findRootNode",()=>l,"formatNodeStatusLabel",()=>o,"getNodeLabel",()=>n,"toNodeStatusClass",()=>s],353662)},936381,e=>{"use strict";var t=e.i(762281),r=e.i(935851),a=e.i(506420),s=e.i(307241),o=e.i(810605);function n(){let[e,a]=(0,r.useState)(null),[s,n]=(0,r.useState)("loading");(0,r.useEffect)(()=>{let e=!0;async function t(){try{let t=await fetch("/api/health");if(!e)return;if(!t.ok)return void n("error");let r=await t.json();a(r),n(r.connected?"connected":"disconnected")}catch{e&&n("error")}}t();let r=setInterval(t,o.UI_POLL_DB_HEALTH_MS);return()=>{e=!1,clearInterval(r)}},[]);let l={loading:"Checking database…",connected:`${e?.adapter??"db"} connected (${e?.latencyMs??"?"}ms)`,disconnected:`${e?.adapter??"db"} disconnected`,error:"Database unreachable"};return(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--muted-foreground)]",role:"status","aria-label":l[s],children:[(0,t.jsx)("span",{className:`w-2 h-2 rounded-full ${{loading:"bg-yellow-400",connected:"bg-green-500",disconnected:"bg-red-500",error:"bg-red-500"}[s]}`}),(0,t.jsx)("span",{className:"hidden sm:inline",children:l[s]})]})}function l({children:e,fullWidth:r=!1,noFooter:a=!1}){return(0,t.jsxs)("div",{className:"h-screen flex flex-col overflow-hidden",children:[(0,t.jsx)("nav",{className:"desktop-titlebar flex-shrink-0 border-b border-[var(--card-border)] bg-[var(--card-bg)]/80 backdrop-blur-lg z-30",children:(0,t.jsx)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:(0,t.jsxs)("div",{className:"flex items-center justify-between h-16",children:[(0,t.jsx)("div",{className:"flex items-center gap-8",children:(0,t.jsx)(s.default,{href:"/",className:"flex items-center gap-3 group",children:(0,t.jsxs)("svg",{width:"52",height:"31",viewBox:"0 0 64 38",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"transition-transform group-hover:scale-105",children:[(0,t.jsx)("rect",{width:"64",height:"38",rx:"8",fill:"black"}),(0,t.jsxs)("g",{stroke:"white",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M 14 27 C 17 16 19 10 20 8 C 21 12 23 20 25 27"}),(0,t.jsx)("path",{d:"M 16 20 C 19 19 21 21 23 20"}),(0,t.jsx)("path",{d:"M 40 13 C 35 10 30 13 30 19 C 30 25 34 28 38 27 C 40 26 40 22 40 20 L 36 20"}),(0,t.jsx)("path",{d:"M 46 11 C 48 16 51 22 54 27"}),(0,t.jsx)("path",{d:"M 54 11 C 52 16 49 22 46 27"})]})]})})}),(0,t.jsx)("div",{className:"flex items-center gap-3",children:(0,t.jsx)(s.default,{href:"/",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Home"})})]})})}),(0,t.jsx)("main",{className:`flex-1 min-h-0 flex flex-col ${r?"p-0":"p-4 sm:p-6 lg:p-8 overflow-y-auto"}`,children:e}),!a&&(0,t.jsx)("footer",{className:"flex-shrink-0 border-t border-[var(--card-border)] bg-[var(--card-bg)]/50 py-4",children:(0,t.jsxs)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 flex items-center justify-between text-xs text-[var(--muted-foreground)]",children:[(0,t.jsx)("span",{children:"AGX"}),(0,t.jsxs)("span",{className:"hidden sm:inline-flex items-center gap-3",children:[(0,t.jsx)(n,{}),(0,t.jsx)("span",{children:"Built with Next.js + Db"})]})]})})]})}function i(e){return(0,t.jsx)(r.Suspense,{fallback:(0,t.jsx)("div",{className:"h-screen flex items-center justify-center bg-[var(--background)]",children:(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"})}),children:(0,t.jsx)(l,{...e})})}var d=e.i(902572);let c=new Set([d.PROJECT_OBJECTIVES_METADATA_KEY,d.LEGACY_PROJECT_GOALS_METADATA_KEY,d.PROJECT_HEALTH_METADATA_KEY]);function u({project:e,onEdit:r,onDelete:a,onClick:s,onManageTasks:o}){let n=e.repos&&e.repos.length>0;return(0,t.jsxs)("div",{onClick:()=>s?.(e),className:`p-5 surface-card space-y-4
|
|
2
|
+
${s?"cursor-pointer hover:border-gray-300 dark:hover:border-gray-700 hover:shadow-md active:scale-[0.99]":""}`,children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-lg font-semibold",children:e.name}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] tracking-wide uppercase",children:e.slug})]}),(0,t.jsxs)("div",{className:"flex flex-col items-end gap-2",children:[(0,t.jsxs)("span",{className:"text-[11px] font-semibold text-[var(--muted-foreground)]",children:["Updated ",new Date(e.updated_at).toLocaleDateString()]}),(r||a||o)&&(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[o&&(0,t.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),o(e)},className:"text-[11px] font-semibold px-2 py-1 rounded-full border border-[var(--card-border)] bg-[var(--background)] hover:border-[var(--primary)] hover:text-[var(--primary)] transition-all",children:"Tasks"}),r&&(0,t.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),r(e)},className:"text-[11px] font-semibold px-2 py-1 rounded-full border border-[var(--card-border)] hover:border-[var(--primary)] hover:text-[var(--primary)] transition-all bg-[var(--background)]",children:"Edit"}),a&&(0,t.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),a(e)},className:"text-[11px] font-semibold px-2 py-1 rounded-full border border-[var(--card-border)] text-[var(--destructive)] hover:border-[var(--destructive)] transition-all bg-[var(--background)]",children:"Delete"})]})]})]}),e.description&&(0,t.jsx)("p",{className:"text-sm text-[var(--foreground)] line-clamp-2",children:e.description}),e.ci_cd_info&&(0,t.jsxs)("div",{className:"text-sm",children:[(0,t.jsx)("p",{className:"text-[var(--muted-foreground)] text-[12px] uppercase tracking-wide",children:"CI / CD"}),(0,t.jsx)("p",{className:"text-[14px] text-[var(--accent)] font-medium truncate",children:e.ci_cd_info})]}),e.metadata&&Object.keys(e.metadata).some(e=>!c.has(e))&&(0,t.jsxs)("div",{className:"p-3 rounded-lg bg-[var(--muted)]/20 border border-dashed border-[var(--card-border)] space-y-1",children:[(0,t.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)]",children:"Metadata"}),(0,t.jsx)("div",{className:"space-y-1",children:Object.entries(e.metadata??{}).filter(([e])=>"undefined"!==e&&""!==e&&!c.has(e)).map(([e,r])=>(0,t.jsxs)("div",{className:"text-[12px] text-[var(--muted-foreground)] flex justify-between",children:[(0,t.jsx)("span",{className:"font-semibold",children:e}),(0,t.jsx)("span",{className:"truncate text-right",children:"string"==typeof r?r:JSON.stringify(r)})]},e))})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-[12px] uppercase tracking-wider text-[var(--muted-foreground)]",children:"Folders"}),(0,t.jsx)("span",{className:"text-[12px] text-[var(--muted-foreground)]",children:n?`${e.repos.length} connected`:"Unlinked"})]}),n?(0,t.jsxs)("div",{className:"mt-3 space-y-2",children:[e.repos.slice(0,2).map(e=>(0,t.jsxs)("div",{className:"p-2 rounded-lg border border-[var(--card-border)] bg-[var(--background)] text-[11px]",children:[(0,t.jsx)("div",{className:"font-semibold truncate",children:e.name}),e.path&&(0,t.jsx)("p",{className:"text-[10px] text-[var(--muted-foreground)] truncate",children:e.path})]},e.id)),e.repos.length>2&&(0,t.jsxs)("p",{className:"text-[10px] text-center text-[var(--muted-foreground)]",children:["+ ",e.repos.length-2," more"]})]}):(0,t.jsx)("p",{className:"mt-3 text-[12px] text-[var(--muted-foreground)]",children:"No folders added yet."})]})]})}var p=e.i(535208),m=e.i(866389);let f=[{value:"queued",label:"Queued",color:"var(--status-queued)",icon:"○"},{value:"in_progress",label:"In Progress",color:"var(--status-in-progress)",icon:"◑"},{value:"blocked",label:"Blocked",color:"var(--status-blocked)",icon:"⊘"},{value:"completed",label:"Done",color:"var(--status-completed)",icon:"●"},{value:"failed",label:"Failed",color:"var(--status-failed)",icon:"✕"}];function h({status:e,onStatusChange:a}){let[s,o]=(0,r.useState)(!1),[n,l]=(0,r.useState)(null),i=(0,r.useRef)(null),d=(0,r.useRef)(null),c=(0,r.useCallback)(()=>{if(!i.current)return;let e=i.current.getBoundingClientRect();l({top:e.bottom+4,left:e.left})},[]);(0,r.useEffect)(()=>{if(!s)return;c();let e=e=>{i.current&&!i.current.contains(e.target)&&d.current&&!d.current.contains(e.target)&&o(!1)};return document.addEventListener("pointerdown",e),()=>document.removeEventListener("pointerdown",e)},[s,c]),(0,r.useEffect)(()=>{o(!1)},[e]);let u=f.find(t=>t.value===e)||f[0],p="completed"===e,h="in_progress"===e;return(0,t.jsxs)("div",{className:"relative flex-shrink-0",ref:i,children:[(0,t.jsxs)("button",{type:"button",onClick:e=>{e.stopPropagation(),a&&o(!s)},className:`w-4 h-4 rounded-full border-[1.5px] flex items-center justify-center transition-all
|
|
3
3
|
hover:scale-110 focus-visible:outline-2 focus-visible:outline-[var(--ring)]
|
|
4
4
|
${a?"cursor-pointer":"cursor-default"}
|
|
5
|
-
${
|
|
6
|
-
`,style:{borderColor:u.color,backgroundColor:p?u.color:"transparent"},title:u.label,children:[p&&(0,t.jsx)("svg",{className:"w-2.5 h-2.5 text-white",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"failed"===e&&(0,t.jsx)("svg",{className:"w-2 h-2",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M3 3L9 9M9 3L3 9",stroke:u.color,strokeWidth:"1.5",strokeLinecap:"round"})}),
|
|
5
|
+
${h?"animate-pulse":""}
|
|
6
|
+
`,style:{borderColor:u.color,backgroundColor:p?u.color:"transparent"},title:u.label,children:[p&&(0,t.jsx)("svg",{className:"w-2.5 h-2.5 text-white",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"failed"===e&&(0,t.jsx)("svg",{className:"w-2 h-2",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M3 3L9 9M9 3L3 9",stroke:u.color,strokeWidth:"1.5",strokeLinecap:"round"})}),h&&(0,t.jsx)("div",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:u.color}})]}),s&&n&&(0,m.createPortal)((0,t.jsx)("div",{ref:d,className:"fixed z-[9999] py-1 rounded-lg border shadow-lg min-w-[140px]",style:{top:n.top,left:n.left,backgroundColor:"var(--card-bg)",borderColor:"var(--card-border)"},children:f.map(r=>{let s=r.value===e;return(0,t.jsxs)("button",{type:"button",className:`w-full flex items-center gap-2 px-3 py-1.5 text-xs text-left transition-colors
|
|
7
7
|
hover:bg-[var(--item-hover-bg)]
|
|
8
8
|
${s?"font-semibold bg-[var(--item-hover-bg)]":""}
|
|
9
|
-
`,onClick:e=>{e.stopPropagation(),a?.(r.value),
|
|
9
|
+
`,onClick:e=>{e.stopPropagation(),a?.(r.value),o(!1)},children:[(0,t.jsxs)("span",{className:"w-3 h-3 rounded-full border-[1.5px] flex items-center justify-center",style:{borderColor:r.color,backgroundColor:"completed"===r.value?r.color:"transparent"},children:["completed"===r.value&&(0,t.jsx)("svg",{className:"w-2 h-2 text-white",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M2.5 6L5 8.5L9.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"failed"===r.value&&(0,t.jsx)("svg",{className:"w-1.5 h-1.5",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M3 3L9 9M9 3L3 9",stroke:r.color,strokeWidth:"1.5",strokeLinecap:"round"})}),"in_progress"===r.value&&(0,t.jsx)("div",{className:"w-1 h-1 rounded-full",style:{backgroundColor:r.color}})]}),(0,t.jsx)("span",{style:{color:s?r.color:void 0},children:r.label}),s&&(0,t.jsx)("svg",{className:"w-3 h-3 ml-auto",viewBox:"0 0 12 12",fill:"none",children:(0,t.jsx)("path",{d:"M2 6L5 9L10 3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]},r.value)})}),document.body)]})}var x=e.i(353662);let g=new Map,b=new Map;async function j(e){let t=g.get(e);if(void 0!==t)return t;let r=b.get(e);if(r)return r;let a=(async()=>{let t=await fetch(`/api/tasks/${e}/graph`,{method:"GET",cache:"no-store"});if(404===t.status)return g.set(e,null),null;let r=await t.json().catch(()=>({}));if(!t.ok)throw Error(r?.error||`Failed to fetch graph summary (${t.status})`);let a=r?.graph??null,s=a?(0,x.buildGraphSummary)(a):null;return g.set(e,s),s})();b.set(e,a);try{return await a}finally{b.delete(e)}}let v={queued:{className:"badge-status-queued",label:"Queued",dotColor:"bg-[var(--status-queued)]"},in_progress:{className:"badge-status-in_progress",label:"In Progress",dotColor:"bg-[var(--status-in-progress)]"},blocked:{className:"badge-status-blocked",label:"Blocked",dotColor:"bg-[var(--status-blocked)]"},completed:{className:"badge-status-completed",label:"Completed",dotColor:"bg-[var(--status-completed)]"},failed:{className:"badge-status-failed",label:"Failed",dotColor:"bg-[var(--status-failed)]"}},y={INTAKE:{icon:"📥",label:"Intake"},PROGRESS:{icon:"🔄",label:"Progress"},DONE:{icon:"✅",label:"Done"}};function k({task:e,onClick:a,compact:s=!1,onStatusChange:o,onApprovalModeChange:n,onStageChange:l,stageOptions:i,currentStage:d,allTasks:c,relationship:u="none"}){v[e.status||"queued"],e.stage&&y[e.stage];let{summary:p,isLoading:m}=function(e){let t=(0,r.useMemo)(()=>e?g.get(e)??null:null,[e]),[a,s]=(0,r.useState)(t),[o,n]=(0,r.useState)(!!e&&null===t),[l,i]=(0,r.useState)(null),d=(0,r.useCallback)(async()=>{if(!e){s(null),i(null),n(!1);return}n(!0),i(null);try{let t=await j(e);s(t)}catch(e){i(e instanceof Error?e.message:"Failed to fetch graph summary"),s(null)}finally{n(!1)}},[e]);return(0,r.useEffect)(()=>{d()},[d]),{summary:a,isLoading:o,error:l,refresh:d}}("draft"!==e.id?e.id:null),f=d??e.stage,x=f&&i?i.indexOf(f):-1,b=x>0&&i?i[x-1]:null,k=x>=0&&i&&x<i.length-1?i[x+1]:null,w=e.depends_on?.length?e.depends_on.map(e=>{let t=c?.find(t=>t.id===e);return{id:e,title:t?.title||e.slice(0,8),done:t?.status==="completed"}}):null;return w&&w.every(e=>e.done),(0,t.jsxs)("div",{onClick:a,role:"button",tabIndex:0,onKeyDown:e=>"Enter"===e.key&&a?.(),className:`group relative flex flex-col gap-1.5 sm:gap-2 p-2 sm:p-3 surface-card cursor-grab active:cursor-grabbing
|
|
10
10
|
focus-visible:outline-2 focus-visible:outline-[var(--ring)] focus-visible:outline-offset-2
|
|
11
11
|
${"active"===u?"border-primary ring-2 ring-primary/20 z-40":"blocking"===u?"border-[var(--status-blocked)] bg-rose-50/30 dark:bg-rose-950/20 z-20":"dependent"===u?"border-[var(--status-in-progress)] bg-blue-50/30 dark:bg-blue-950/20 z-20":"dimmed"===u?"opacity-40 grayscale scale-[0.98]":""}
|
|
12
12
|
${"failed"===e.status&&"none"===u?"border-red-200 bg-red-50/30 dark:bg-red-950/20":""}
|
|
13
13
|
${"completed"===e.status&&"none"===u?"opacity-75 bg-[var(--secondary)]":""}
|
|
14
14
|
`,children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,t.jsx)("h3",{className:`text-sm font-medium text-[var(--foreground)] leading-snug line-clamp-2 sm:line-clamp-3
|
|
15
15
|
${"completed"===e.status?"text-[var(--muted-foreground)] line-through":""}
|
|
16
|
-
`,children:e.title||"Untitled Task"}),(0,t.jsx)("div",{className:"shrink-0 mt-0.5",children:(0,t.jsx)(f,{status:e.status||"queued",onStatusChange:n})})]}),(0,t.jsx)("div",{className:"flex items-center justify-between min-h-[16px]",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-[var(--muted-foreground)] flex-wrap",children:[void 0!==e.priority&&e.priority>0&&(0,t.jsxs)("span",{className:`px-1.5 py-0.5 rounded font-semibold bg-[var(--secondary)] ${0===e.priority?"text-[var(--primary)]":""}`,children:["P",e.priority]}),o&&("auto"===e.approval_mode?(0,t.jsx)("span",{className:"px-1.5 py-0.5 rounded font-semibold bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400 cursor-pointer select-none",title:"Auto-approve enabled. Click to switch to manual.",onClick:e=>{e.stopPropagation(),o("manual")},children:"AUTO"}):(0,t.jsx)("span",{className:"px-1.5 py-0.5 rounded font-semibold bg-gray-100 text-gray-400 dark:bg-gray-800 dark:text-gray-500 cursor-pointer select-none opacity-0 group-hover:opacity-100 transition-opacity",title:"Manual approval. Click to enable auto-approve.",onClick:e=>{e.stopPropagation(),o("auto")},children:"AUTO"})),"draft"!==e.id&&(0,t.jsx)("span",{className:"opacity-0 group-hover:opacity-100 transition-opacity font-mono text-[9px]",children:e.id.slice(0,5)})]})}),l&&x&&(g||k)?(0,t.jsxs)("div",{className:"flex items-center gap-2 pt-1",children:[g?(0,t.jsxs)("button",{type:"button",className:"rounded-full border border-[var(--border)] px-2.5 py-1 text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",onClick:e=>{e.stopPropagation(),l(g)},children:["Back to ",g]}):null,k?(0,t.jsxs)("button",{type:"button",className:"rounded-full border border-[var(--border)] px-2.5 py-1 text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",onClick:e=>{e.stopPropagation(),l(k)},children:["Move to ",k]}):null]}):null]})}let w={in_progress:{title:"In Progress",icon:"🔄",color:"var(--status-in-progress)",description:"Currently being worked on by the daemon"},blocked:{title:"Blocked",icon:"🚧",color:"var(--status-blocked)",description:"Waiting for input or resolution"},queued:{title:"Queued",icon:"📋",color:"var(--status-queued)",description:"Ready to be picked up"},completed:{title:"Completed",icon:"✅",color:"var(--status-completed)",description:"Successfully finished"}};function N({tasks:e,onSelectTask:r,onStatusChange:a}){if(0===e.length)return(0,t.jsxs)("div",{className:"text-center py-20 animate-fade-in",children:[(0,t.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-2xl bg-[var(--card-bg)] border border-[var(--card-border)] mb-4",children:(0,t.jsx)("span",{className:"text-3xl",children:"📋"})}),(0,t.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"No tasks yet"}),(0,t.jsx)("p",{className:"text-[var(--muted-foreground)] text-sm max-w-md mx-auto",children:"Create your first task to get started. Tasks will appear here organized by status."})]});let s=e.filter(e=>"in_progress"===e.status),n=e.filter(e=>"queued"===e.status),o=e.filter(e=>"blocked"===e.status),l=e.filter(e=>"completed"===e.status||"failed"===e.status),i=(e,s)=>{if(0===s.length)return null;let n=w[e];return(0,t.jsxs)("section",{className:"mb-8 animate-fade-in-up",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg",style:{backgroundColor:`color-mix(in srgb, ${n.color} 10%, transparent)`},children:[(0,t.jsx)("span",{className:"text-lg",children:n.icon}),(0,t.jsx)("h3",{className:"text-sm font-semibold",style:{color:n.color},children:n.title}),(0,t.jsx)("span",{className:"px-2 py-0.5 rounded-full text-xs font-medium",style:{backgroundColor:`color-mix(in srgb, ${n.color} 15%, transparent)`,color:n.color},children:s.length})]}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] hidden sm:block",children:n.description})]}),(0,t.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:s.map((e,s)=>(0,t.jsx)("div",{className:"animate-fade-in-up",style:{animationDelay:`${50*s}ms`},children:(0,t.jsx)(k,{task:e,onClick:()=>r?.(e),onStatusChange:a?t=>a(e.id,t):void 0})},e.id))})]})};return(0,t.jsxs)("div",{children:[i("in_progress",s),i("blocked",o),i("queued",n),i("completed",l)]})}var C=e.i(827976);let E={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:C.default.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:C.default.env.AGX_BOARD_USER_NAME||"Local Board User"};var S=e.i(524123);function _(){let e=(0,a.useRouter)(),s=(0,a.useSearchParams)(),{projects:n,isLoading:o,error:l,refetch:d,createProject:c,updateProject:m,deleteProject:x}=(0,S.useProjects)(),f=(0,p.useProjectFormState)(),[h,b]=(0,r.useState)(null),[g,v]=(0,r.useState)(!1),[j,y]=(0,r.useState)(null),{form:k,repos:w,handleRepoChange:N,addRepo:C,removeRepo:E,resetForm:_,hydrateFromProject:A,isSubmitting:L,setIsSubmitting:O,formError:P,setFormError:M,setForm:$}=f,I=()=>{b(null),_(),v(!0)},R=e=>{b(e),A(e),v(!0)};(0,r.useEffect)(()=>{let e=s.get("edit");if(!e||0===n.length||g)return;let t=n.find(t=>t.id===e);t&&R(t)},[s,n,g]),(0,r.useEffect)(()=>{"1"!==s.get("new")||g||(I(),e.replace("/projects"))},[s]);let B=(0,r.useCallback)(t=>{t.slug&&e.push(`/projects/${t.slug}`)},[e]),D=(0,r.useCallback)(e=>{y(e)},[]),F=(0,r.useCallback)(()=>{y(null)},[]),U=()=>{_(),v(!1),b(null),s.get("edit")&&e.replace("/projects")},q=async()=>{if(!k.name.trim())return void M("Project name is required");let t=w.find(e=>e.name.trim()&&!e.path.trim());if(t)return void M(`Local path is required for folder "${t.name}"`);M(null),O(!0);let r=(0,p.createProjectPayload)(k,w);try{if(h)await m(h.id,r),U();else{let t=await c(r);U(),e.push(`/projects/${t.slug}`)}}catch(e){M(e instanceof Error?e.message:"Failed to save project")}finally{O(!1)}},G=async e=>{if(window.confirm(`Delete project "${e.name}"? This cannot be undone.`))try{await x(e.id)}catch(e){alert(e instanceof Error?e.message:"Failed to delete project")}};return(0,t.jsx)(i,{children:(0,t.jsxs)("div",{className:"max-w-7xl mx-auto w-full flex flex-col min-h-full",children:[(0,t.jsxs)("header",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4 py-8",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-3xl font-bold tracking-tight",children:"Projects"}),(0,t.jsx)("p",{className:"text-[var(--muted-foreground)] mt-1",children:"Manage your projects and their folder contexts."})]}),(0,t.jsxs)("div",{className:"flex gap-3",children:[(0,t.jsx)("button",{onClick:d,className:"px-4 py-2 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] hover:border-[var(--primary)] transition-all text-sm font-medium",children:"Refresh"}),(0,t.jsx)("button",{onClick:I,className:"btn-primary px-6 py-2 shadow-lg shadow-[var(--primary)]/20",children:"+ New Project"})]})]}),o?(0,t.jsx)("div",{className:"flex-1 flex items-center justify-center py-20",children:(0,t.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"}),(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)] animate-pulse",children:"Loading projects..."})]})}):0===n.length?(0,t.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center py-20 animate-fade-in",children:[(0,t.jsx)("div",{className:"w-24 h-24 rounded-3xl bg-[var(--card-bg)] border border-[var(--card-border)] flex items-center justify-center text-4xl mb-6 shadow-xl",children:"📂"}),(0,t.jsx)("h2",{className:"text-2xl font-bold mb-2",children:"You have no projects"}),(0,t.jsx)("p",{className:"text-[var(--muted-foreground)] text-center max-w-sm mb-8 leading-relaxed",children:"Create your first project to start organizing your tasks and connecting your folders."}),(0,t.jsx)("button",{onClick:I,className:"btn-primary px-8 py-3 text-lg shadow-xl shadow-[var(--primary)]/20",children:"Create a Project"})]}):(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 pb-20",children:n.map(e=>(0,t.jsx)(u,{project:e,onEdit:R,onDelete:G,onManageTasks:D,onClick:B},e.id))}),(0,t.jsx)(p.default,{isOpen:g,onClose:U,onSubmit:q,editingProject:h,form:k,repos:w,isSubmitting:L,formError:P,onFieldChange:(e,t)=>$(r=>({...r,[e]:t})),onRepoChange:N,onAddRepo:C,onRemoveRepo:E}),j&&(0,t.jsx)(T,{project:j,onClose:F})]})})}function T({project:e,onClose:a}){let{tasks:s,isLoading:n}=function(e={}){let t="1"===C.default.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH,a=e.project,s=e.status,n=e.orphan,o=e.realtime,[l,i]=(0,r.useState)([]),[d,c]=(0,r.useState)(!0),[u,p]=(0,r.useState)(null),[m,x]=(0,r.useState)(null),[f,h]=(0,r.useState)(null),b=(0,r.useCallback)(e=>{if(!e)return[];if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)));if("string"==typeof e){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)))}catch{}return Array.from(new Set(t.split(",").map(e=>e.trim()).filter(Boolean)))}return[]},[]),g=(0,r.useCallback)(e=>{let t=String(e||"").match(/^---\n([\s\S]*?)\n---\n?/);if(!t)return[];let r=t[1].split("\n").find(e=>e.trim().toLowerCase().startsWith("depends_on:"));return r?b(r.slice(r.indexOf(":")+1).trim()):[]},[b]),v=(0,r.useCallback)((e,t)=>{let r=b(e.depends_on);if(r.length>0)return{...e,depends_on:r};let a="string"==typeof e?.content?g(e.content):[];if(a.length>0)return{...e,depends_on:a};let s=b(t?.depends_on);return s.length>0?{...e,depends_on:s}:e},[g,b]),j=(0,r.useCallback)(async()=>{try{let e=new URLSearchParams;a&&e.set("project",a),s&&e.set("status",s),n&&e.set("orphan","1");let t=await fetch(`/api/tasks?${e.toString()}`);if(!t.ok)throw Error("Failed to fetch tasks");let r=await t.json(),o=Array.isArray(r.tasks)?r.tasks.map(e=>v(e)):[];i(o),p(null)}catch(e){p(e instanceof Error?e:Error("Unknown error"))}finally{c(!1)}},[a,s,n]);(0,r.useEffect)(()=>{j()},[j]),(0,r.useEffect)(()=>{if(!t||!o)return;let e=setInterval(j,3e3);return()=>clearInterval(e)},[t,o,j]),(0,r.useEffect)(()=>{if(t||!o)return;let e={auth:{getSession:async()=>({data:{session:{access_token:"local-token",refresh_token:"local-refresh",expires_in:3600,user:{id:E.id,email:E.email,user_metadata:{name:E.name,full_name:E.name}}}},error:null}),signInWithOAuth:async()=>({error:Error("Auth disabled in AGX Board local mode")}),signOut:async()=>({error:null}),onAuthStateChange:()=>({data:{subscription:{unsubscribe(){}}}})},channel:()=>({on(){return this},subscribe(){return this}}),removeChannel(){}},r=e.channel("tasks-changes").on("postgres_changes",{event:"*",schema:"public",table:"tasks"},e=>{"INSERT"===e.eventType?i(t=>{let r=v(e.new);return t.some(e=>e.id===r.id)?t:[r,...t]}):"UPDATE"===e.eventType?i(t=>t.map(t=>t.id===e.new.id?v(e.new,t):t)):"DELETE"===e.eventType&&i(t=>t.filter(t=>t.id!==e.old.id))}).subscribe();return()=>{e.removeChannel(r)}},[o,t]),(0,r.useEffect)(()=>{if(t||!o)return;let e=setInterval(j,3e3);return()=>clearInterval(e)},[o,t,j]);let y=(0,r.useCallback)(async(e,t)=>{let r=await fetch("/api/tasks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:e,swarm_models:t})});if(!r.ok)throw Error((await r.json()).error||"Failed to create task");let{task:a}=await r.json(),s=v(a);return i(e=>e.some(e=>e.id===s.id)?e:[s,...e]),s},[e.realtime,v]),k=(0,r.useCallback)(async(e,t)=>{let r=await fetch(`/api/tasks/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok){let e=null;throw"function"==typeof r.json&&(e=await r.json().catch(e=>(console.warn("[useTasks] failed to parse response:",e),null))),Error(e?.error||e?.details||`Failed to update task (${r.status} ${r.statusText||"Error"})`)}let{task:a}=await r.json();return i(t=>t.map(t=>t.id===e?v({...t,...a},t):t)),v(a)},[e.realtime,v]),w=(0,r.useCallback)(async e=>{if(!(await fetch(`/api/tasks/${e}`,{method:"DELETE"})).ok)throw Error("Failed to delete task");i(t=>t.filter(t=>t.id!==e))},[e.realtime]),N=(0,r.useCallback)(async e=>{let t=await fetch("/api/queue/complete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to complete task stage");let{task:r}=await t.json();return i(t=>t.map(t=>t.id===e.taskId?v({...t,...r},t):t)),v(r)},[e.realtime,v]),S=(0,r.useCallback)(async e=>{x(e.taskId),h(null);try{let t=await fetch(`/api/orchestrator/tasks/${e.taskId}/cancel`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e.reason?{reason:e.reason}:{})});if(!t.ok){let e=await t.json().catch(()=>({})),r=e?.error||"Failed to cancel workflow";throw Error(r)}return t.json()}catch(t){let e=t instanceof Error?t:Error("Failed to cancel workflow");throw h(e),e}finally{x(null)}},[]),_=(0,r.useCallback)(async e=>{let t=await fetch(`/api/tasks/${e}`),r=await t.json().catch(e=>(console.warn("[useTasks] failed to parse response:",e),null));if(!t.ok)throw Error(r?.error||"Failed to fetch task details");return v(r?.task)},[v]),T=(0,r.useCallback)(async e=>{let t=await fetch("/api/tasks/assign-orphans",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({project_id:e})}),r=await t.json().catch(()=>({}));if(!t.ok)throw Error(r?.error||"Failed to assign orphan tasks");return await j(),{updatedCount:Number(r?.updatedCount||0),taskIds:Array.isArray(r?.taskIds)?r.taskIds:[]}},[j]);return{tasks:l,isLoading:d,error:u,cancellingTaskId:m,isCancelling:!!m,cancelError:f,refetch:j,createTask:y,updateTask:k,deleteTask:w,completeTaskStage:N,cancelWorkflow:S,fetchTask:_,assignOrphanTasksToProject:T}}({project:e.slug});return(0,t.jsx)("div",{className:"modal-backdrop p-2 sm:p-4 z-50 overflow-y-auto flex items-center justify-center",onClick:e=>e.target===e.currentTarget&&a(),children:(0,t.jsxs)("div",{className:"modal-content w-full max-w-5xl mx-2 sm:mx-auto bg-[var(--card-bg)] rounded-3xl border border-[var(--card-border)] shadow-2xl animate-scale-in flex flex-col max-h-[90vh]",children:[(0,t.jsxs)("div",{className:"px-4 py-4 sm:px-8 sm:py-6 border-b border-[var(--card-border)] flex items-center justify-between flex-shrink-0",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("h2",{className:"text-xl font-bold",children:["Tasks for ",e.name]}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5",children:"Viewing all tasks associated with this project."})]}),(0,t.jsx)("button",{onClick:a,className:"p-2 rounded-xl hover:bg-[var(--muted)]/50 transition-colors",children:(0,t.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto p-8",children:n?(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center py-20",children:[(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full mb-4"}),(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading project tasks..."})]}):(0,t.jsx)(N,{tasks:s})}),(0,t.jsx)("div",{className:"px-8 py-6 border-t border-[var(--card-border)] flex justify-end flex-shrink-0",children:(0,t.jsx)("button",{onClick:a,className:"px-6 py-2 rounded-xl border border-[var(--card-border)] hover:bg-[var(--muted)]/50 transition-colors text-sm font-medium",children:"Close"})})]})})}e.s(["default",()=>_],936381)}]);
|
|
16
|
+
`,children:e.title||"Untitled Task"}),(0,t.jsx)("div",{className:"shrink-0 mt-0.5",children:(0,t.jsx)(h,{status:e.status||"queued",onStatusChange:o})})]}),(0,t.jsx)("div",{className:"flex items-center justify-between min-h-[16px]",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-[var(--muted-foreground)] flex-wrap",children:[void 0!==e.priority&&e.priority>0&&(0,t.jsxs)("span",{className:`px-1.5 py-0.5 rounded font-semibold bg-[var(--secondary)] ${0===e.priority?"text-[var(--primary)]":""}`,children:["P",e.priority]}),n&&("auto"===e.approval_mode?(0,t.jsx)("span",{className:"px-1.5 py-0.5 rounded font-semibold bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400 cursor-pointer select-none",title:"Auto-approve enabled. Click to switch to manual.",onClick:e=>{e.stopPropagation(),n("manual")},children:"AUTO"}):(0,t.jsx)("span",{className:"px-1.5 py-0.5 rounded font-semibold bg-gray-100 text-gray-400 dark:bg-gray-800 dark:text-gray-500 cursor-pointer select-none opacity-0 group-hover:opacity-100 transition-opacity",title:"Manual approval. Click to enable auto-approve.",onClick:e=>{e.stopPropagation(),n("auto")},children:"AUTO"})),"draft"!==e.id&&(0,t.jsx)("span",{className:"opacity-0 group-hover:opacity-100 transition-opacity font-mono text-[9px]",children:e.id.slice(0,5)})]})}),l&&f&&(b||k)?(0,t.jsxs)("div",{className:"flex items-center gap-2 pt-1",children:[b?(0,t.jsxs)("button",{type:"button",className:"rounded-full border border-[var(--border)] px-2.5 py-1 text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",onClick:e=>{e.stopPropagation(),l(b)},children:["Back to ",b]}):null,k?(0,t.jsxs)("button",{type:"button",className:"rounded-full border border-[var(--border)] px-2.5 py-1 text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",onClick:e=>{e.stopPropagation(),l(k)},children:["Move to ",k]}):null]}):null]})}let w={in_progress:{title:"In Progress",icon:"🔄",color:"var(--status-in-progress)",description:"Currently being worked on by the daemon"},blocked:{title:"Blocked",icon:"🚧",color:"var(--status-blocked)",description:"Waiting for input or resolution"},queued:{title:"Queued",icon:"📋",color:"var(--status-queued)",description:"Ready to be picked up"},completed:{title:"Completed",icon:"✅",color:"var(--status-completed)",description:"Successfully finished"}};function N({tasks:e,onSelectTask:r,onStatusChange:a}){if(0===e.length)return(0,t.jsxs)("div",{className:"text-center py-20 animate-fade-in",children:[(0,t.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-2xl bg-[var(--card-bg)] border border-[var(--card-border)] mb-4",children:(0,t.jsx)("span",{className:"text-3xl",children:"📋"})}),(0,t.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"No tasks yet"}),(0,t.jsx)("p",{className:"text-[var(--muted-foreground)] text-sm max-w-md mx-auto",children:"Create your first task to get started. Tasks will appear here organized by status."})]});let s=e.filter(e=>"in_progress"===e.status),o=e.filter(e=>"queued"===e.status),n=e.filter(e=>"blocked"===e.status),l=e.filter(e=>"completed"===e.status||"failed"===e.status),i=(e,s)=>{if(0===s.length)return null;let o=w[e];return(0,t.jsxs)("section",{className:"mb-8 animate-fade-in-up",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg",style:{backgroundColor:`color-mix(in srgb, ${o.color} 10%, transparent)`},children:[(0,t.jsx)("span",{className:"text-lg",children:o.icon}),(0,t.jsx)("h3",{className:"text-sm font-semibold",style:{color:o.color},children:o.title}),(0,t.jsx)("span",{className:"px-2 py-0.5 rounded-full text-xs font-medium",style:{backgroundColor:`color-mix(in srgb, ${o.color} 15%, transparent)`,color:o.color},children:s.length})]}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] hidden sm:block",children:o.description})]}),(0,t.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:s.map((e,s)=>(0,t.jsx)("div",{className:"animate-fade-in-up",style:{animationDelay:`${50*s}ms`},children:(0,t.jsx)(k,{task:e,onClick:()=>r?.(e),onStatusChange:a?t=>a(e.id,t):void 0})},e.id))})]})};return(0,t.jsxs)("div",{children:[i("in_progress",s),i("blocked",n),i("queued",o),i("completed",l)]})}var C=e.i(827976);let _={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:C.default.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:C.default.env.AGX_BOARD_USER_NAME||"Local Board User"};var E=e.i(524123);function S(){let e=(0,a.useRouter)(),s=(0,a.useSearchParams)(),{projects:o,isLoading:n,error:l,refetch:d,createProject:c,updateProject:m,deleteProject:f}=(0,E.useProjects)(),h=(0,p.useProjectFormState)(),[x,g]=(0,r.useState)(null),[b,j]=(0,r.useState)(!1),[v,y]=(0,r.useState)(null),{form:k,repos:w,handleRepoChange:N,addRepo:C,removeRepo:_,resetForm:S,hydrateFromProject:O,isSubmitting:A,setIsSubmitting:P,formError:L,setFormError:$,setForm:I}=h,M=()=>{g(null),S(),j(!0)},D=e=>{g(e),O(e),j(!0)};(0,r.useEffect)(()=>{let e=s.get("edit");if(!e||0===o.length||b)return;let t=o.find(t=>t.id===e);t&&D(t)},[s,o,b]),(0,r.useEffect)(()=>{"1"!==s.get("new")||b||(M(),e.replace("/projects"))},[s]);let R=(0,r.useCallback)(t=>{t.slug&&e.push(`/projects/${t.slug}`)},[e]),F=(0,r.useCallback)(e=>{y(e)},[]),B=(0,r.useCallback)(()=>{y(null)},[]),U=()=>{S(),j(!1),g(null),s.get("edit")&&e.replace("/projects")},J=async()=>{if(!k.name.trim())return void $("Project name is required");let t=w.find(e=>e.name.trim()&&!e.path.trim());if(t)return void $(`Local path is required for folder "${t.name}"`);$(null),P(!0);let r=(0,p.createProjectPayload)(k,w);try{if(x)await m(x.id,r),U();else{let t=await c(r);U(),e.push(`/projects/${t.slug}`)}}catch(e){$(e instanceof Error?e.message:"Failed to save project")}finally{P(!1)}},q=async e=>{if(window.confirm(`Delete project "${e.name}"? This cannot be undone.`))try{await f(e.id)}catch(e){alert(e instanceof Error?e.message:"Failed to delete project")}};return(0,t.jsx)(i,{children:(0,t.jsxs)("div",{className:"max-w-7xl mx-auto w-full flex flex-col min-h-full",children:[(0,t.jsxs)("header",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4 py-8",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-3xl font-bold tracking-tight",children:"Projects"}),(0,t.jsx)("p",{className:"text-[var(--muted-foreground)] mt-1",children:"Manage your projects and their folder contexts."})]}),(0,t.jsxs)("div",{className:"flex gap-3",children:[(0,t.jsx)("button",{onClick:d,className:"px-4 py-2 rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] hover:border-[var(--primary)] transition-all text-sm font-medium",children:"Refresh"}),(0,t.jsx)("button",{onClick:M,className:"btn-primary px-6 py-2 shadow-lg shadow-[var(--primary)]/20",children:"+ New Project"})]})]}),n?(0,t.jsx)("div",{className:"flex-1 flex items-center justify-center py-20",children:(0,t.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"}),(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)] animate-pulse",children:"Loading projects..."})]})}):0===o.length?(0,t.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center py-20 animate-fade-in",children:[(0,t.jsx)("div",{className:"w-24 h-24 rounded-3xl bg-[var(--card-bg)] border border-[var(--card-border)] flex items-center justify-center text-4xl mb-6 shadow-xl",children:"📂"}),(0,t.jsx)("h2",{className:"text-2xl font-bold mb-2",children:"You have no projects"}),(0,t.jsx)("p",{className:"text-[var(--muted-foreground)] text-center max-w-sm mb-8 leading-relaxed",children:"Create your first project to start organizing your tasks and connecting your folders."}),(0,t.jsx)("button",{onClick:M,className:"btn-primary px-8 py-3 text-lg shadow-xl shadow-[var(--primary)]/20",children:"Create a Project"})]}):(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 pb-20",children:o.map(e=>(0,t.jsx)(u,{project:e,onEdit:D,onDelete:q,onManageTasks:F,onClick:R},e.id))}),(0,t.jsx)(p.default,{isOpen:b,onClose:U,onSubmit:J,editingProject:x,form:k,repos:w,isSubmitting:A,formError:L,onFieldChange:(e,t)=>I(r=>({...r,[e]:t})),onRepoChange:N,onAddRepo:C,onRemoveRepo:_}),v&&(0,t.jsx)(T,{project:v,onClose:B})]})})}function T({project:e,onClose:a}){let{tasks:s,isLoading:o}=function(e={}){let t="1"===C.default.env.NEXT_PUBLIC_AGX_BOARD_DISABLE_AUTH,a=e.project,s=e.status,o=e.orphan,n=e.realtime,[l,i]=(0,r.useState)([]),[d,c]=(0,r.useState)(!0),[u,p]=(0,r.useState)(null),[m,f]=(0,r.useState)(null),[h,x]=(0,r.useState)(null),g=(0,r.useCallback)(e=>{if(!e)return[];if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)));if("string"==typeof e){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)))}catch{}return Array.from(new Set(t.split(",").map(e=>e.trim()).filter(Boolean)))}return[]},[]),b=(0,r.useCallback)(e=>{let t=String(e||"").match(/^---\n([\s\S]*?)\n---\n?/);if(!t)return[];let r=t[1].split("\n").find(e=>e.trim().toLowerCase().startsWith("depends_on:"));return r?g(r.slice(r.indexOf(":")+1).trim()):[]},[g]),j=(0,r.useCallback)((e,t)=>{let r=g(e.depends_on);if(r.length>0)return{...e,depends_on:r};let a="string"==typeof e?.content?b(e.content):[];if(a.length>0)return{...e,depends_on:a};let s=g(t?.depends_on);return s.length>0?{...e,depends_on:s}:e},[b,g]),v=(0,r.useCallback)(async()=>{try{let e=new URLSearchParams;a&&e.set("project",a),s&&e.set("status",s),o&&e.set("orphan","1");let t=await fetch(`/api/tasks?${e.toString()}`);if(!t.ok)throw Error("Failed to fetch tasks");let r=await t.json(),n=Array.isArray(r.tasks)?r.tasks.map(e=>j(e)):[];i(n),p(null)}catch(e){p(e instanceof Error?e:Error("Unknown error"))}finally{c(!1)}},[a,s,o]);(0,r.useEffect)(()=>{v()},[v]),(0,r.useEffect)(()=>{if(!t||!n)return;let e=setInterval(v,3e3);return()=>clearInterval(e)},[t,n,v]),(0,r.useEffect)(()=>{if(t||!n)return;let e={auth:{getSession:async()=>({data:{session:{access_token:"local-token",refresh_token:"local-refresh",expires_in:3600,user:{id:_.id,email:_.email,user_metadata:{name:_.name,full_name:_.name}}}},error:null}),signInWithOAuth:async()=>({error:Error("Auth disabled in AGX Board local mode")}),signOut:async()=>({error:null}),onAuthStateChange:()=>({data:{subscription:{unsubscribe(){}}}})},channel:()=>({on(){return this},subscribe(){return this}}),removeChannel(){}},r=e.channel("tasks-changes").on("postgres_changes",{event:"*",schema:"public",table:"tasks"},e=>{"INSERT"===e.eventType?i(t=>{let r=j(e.new);return t.some(e=>e.id===r.id)?t:[r,...t]}):"UPDATE"===e.eventType?i(t=>t.map(t=>t.id===e.new.id?j(e.new,t):t)):"DELETE"===e.eventType&&i(t=>t.filter(t=>t.id!==e.old.id))}).subscribe();return()=>{e.removeChannel(r)}},[n,t]),(0,r.useEffect)(()=>{if(t||!n)return;let e=setInterval(v,3e3);return()=>clearInterval(e)},[n,t,v]);let y=(0,r.useCallback)(async(e,t)=>{let r=await fetch("/api/tasks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:e,swarm_models:t})});if(!r.ok)throw Error((await r.json()).error||"Failed to create task");let{task:a}=await r.json(),s=j(a);return i(e=>e.some(e=>e.id===s.id)?e:[s,...e]),s},[e.realtime,j]),k=(0,r.useCallback)(async(e,t)=>{let r=await fetch(`/api/tasks/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok){let e=null;throw"function"==typeof r.json&&(e=await r.json().catch(e=>(console.warn("[useTasks] failed to parse response:",e),null))),Error(e?.error||e?.details||`Failed to update task (${r.status} ${r.statusText||"Error"})`)}let{task:a}=await r.json();return i(t=>t.map(t=>t.id===e?j({...t,...a},t):t)),j(a)},[e.realtime,j]),w=(0,r.useCallback)(async e=>{if(!(await fetch(`/api/tasks/${e}`,{method:"DELETE"})).ok)throw Error("Failed to delete task");i(t=>t.filter(t=>t.id!==e))},[e.realtime]),N=(0,r.useCallback)(async e=>{let t=await fetch("/api/queue/complete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to complete task stage");let{task:r}=await t.json();return i(t=>t.map(t=>t.id===e.taskId?j({...t,...r},t):t)),j(r)},[e.realtime,j]),E=(0,r.useCallback)(async e=>{f(e.taskId),x(null);try{let t=await fetch(`/api/orchestrator/tasks/${e.taskId}/cancel`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e.reason?{reason:e.reason}:{})});if(!t.ok){let e=await t.json().catch(()=>({})),r=e?.error||"Failed to cancel workflow";throw Error(r)}return t.json()}catch(t){let e=t instanceof Error?t:Error("Failed to cancel workflow");throw x(e),e}finally{f(null)}},[]),S=(0,r.useCallback)(async e=>{let t=await fetch(`/api/tasks/${e}`),r=await t.json().catch(e=>(console.warn("[useTasks] failed to parse response:",e),null));if(!t.ok)throw Error(r?.error||"Failed to fetch task details");return j(r?.task)},[j]),T=(0,r.useCallback)(async e=>{let t=await fetch("/api/tasks/assign-orphans",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({project_id:e})}),r=await t.json().catch(()=>({}));if(!t.ok)throw Error(r?.error||"Failed to assign orphan tasks");return await v(),{updatedCount:Number(r?.updatedCount||0),taskIds:Array.isArray(r?.taskIds)?r.taskIds:[]}},[v]);return{tasks:l,isLoading:d,error:u,cancellingTaskId:m,isCancelling:!!m,cancelError:h,refetch:v,createTask:y,updateTask:k,deleteTask:w,completeTaskStage:N,cancelWorkflow:E,fetchTask:S,assignOrphanTasksToProject:T}}({project:e.slug});return(0,t.jsx)("div",{className:"modal-backdrop p-2 sm:p-4 z-50 overflow-y-auto flex items-center justify-center",onClick:e=>e.target===e.currentTarget&&a(),children:(0,t.jsxs)("div",{className:"modal-content w-full max-w-5xl mx-2 sm:mx-auto bg-[var(--card-bg)] rounded-3xl border border-[var(--card-border)] shadow-2xl animate-scale-in flex flex-col max-h-[90vh]",children:[(0,t.jsxs)("div",{className:"px-4 py-4 sm:px-8 sm:py-6 border-b border-[var(--card-border)] flex items-center justify-between flex-shrink-0",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("h2",{className:"text-xl font-bold",children:["Tasks for ",e.name]}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5",children:"Viewing all tasks associated with this project."})]}),(0,t.jsx)("button",{onClick:a,className:"p-2 rounded-xl hover:bg-[var(--muted)]/50 transition-colors",children:(0,t.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto p-8",children:o?(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center py-20",children:[(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full mb-4"}),(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading project tasks..."})]}):(0,t.jsx)(N,{tasks:s})}),(0,t.jsx)("div",{className:"px-8 py-6 border-t border-[var(--card-border)] flex justify-end flex-shrink-0",children:(0,t.jsx)("button",{onClick:a,className:"px-6 py-2 rounded-xl border border-[var(--card-border)] hover:bg-[var(--muted)]/50 transition-colors text-sm font-medium",children:"Close"})})]})})}e.s(["default",()=>S],936381)}]);
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,292135,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},429056,e=>{"use strict";let t=(0,e.i(363732).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",()=>t],429056)},810605,e=>{"use strict";e.s(["GRAPH_TIMEOUT_DEFAULT_MS",0,864e5,"NODE_TIMEOUT_DEFAULT_MS",0,18e5,"UI_POLL_CHAT_ALT_MS",0,15e3,"UI_POLL_CHAT_CHECK_MS",0,1e4,"UI_POLL_DB_HEALTH_MS",0,3e4,"UI_POLL_PROMPT_RUNS_MS",0,5e3,"UI_POLL_SYSTEM_STATUS_MS",0,3e4,"UI_POLL_UPDATE_CHECK_MS",0,18e5])},506420,(e,t,r)=>{t.exports=e.r(27944)},906724,595807,e=>{"use strict";let t=(0,e.i(363732).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["default",()=>t],595807),e.s(["Loader2",()=>t],906724)},958164,e=>{"use strict";let t=(0,e.i(363732).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["AlertTriangle",()=>t],958164)},434405,e=>{"use strict";let t="agx-chat:threads";function r(){let e=globalThis.localStorage;if(!e)throw Error("LocalThreadAdapter requires a browser-like environment with `localStorage`.");return e}function a(){let e=r().getItem(t);if(!e)return{threads:{}};try{let t=JSON.parse(e);if(t&&"object"==typeof t&&t.threads&&"object"==typeof t.threads)return{threads:Object.fromEntries(Object.entries(t.threads).map(([e,t])=>{var r,a;return[e,(r=e,a=t,{id:r,title:a?.title,messages:Array.isArray(a?.messages)?[...a.messages]:[],createdAt:"number"==typeof a?.createdAt?a.createdAt:Date.now(),updatedAt:"number"==typeof a?.updatedAt?a.updatedAt:Date.now(),metadata:a?.metadata,status:a?.status,outcomeNote:a?.outcomeNote,projectId:"string"==typeof a?.projectId?a.projectId:"string"==typeof a?.teamId?a.teamId:a?.projectId===null||a?.teamId===null?null:void 0})]}))}}catch{}return{threads:{}}}function n(e){r().setItem(t,JSON.stringify(e))}function s(e){return{...e,messages:e.messages.map(e=>({...e})),metadata:e.metadata?{...e.metadata}:void 0}}let i=new class{async saveThread(e){let t=Date.now(),r=a(),i=r.threads[e.id],o=i?.createdAt??e.createdAt??t,l=e.updatedAt??t,c={id:e.id,title:e.title,messages:e.messages.map(e=>({...e})),metadata:e.metadata,createdAt:o,updatedAt:l,status:e.status,outcomeNote:e.outcomeNote,projectId:e.projectId??e.teamId};return r.threads[e.id]=c,n(r),s(c)}async loadThread(e){let t=a().threads[e];return t?s(t):null}async listThreads(e){let t=Object.values(a().threads),r=e?.order??"desc",n=[...t].sort((e,t)=>"asc"===r?e.updatedAt-t.updatedAt:t.updatedAt-e.updatedAt),i=Math.max(0,e?.offset??0),o=e?.limit,l="number"==typeof o&&o>=0?n.slice(i,i+o):n.slice(i);return{total:t.length,threads:l.map(s)}}async deleteThread(e){let t=a();t.threads[e]&&(delete t.threads[e],n(t))}};e.s(["threadService",0,{listThreads:async()=>[...(await i.listThreads({order:"desc"})).threads.filter(e=>!0!==e.metadata?.archived)].sort((e,t)=>t.updatedAt-e.updatedAt),async createThread(e){let t="string"==typeof e?.id?e.id.trim():"";if(t){let r=await i.loadThread(t);if(r){let t={...r.metadata??{},...e?.metadata??{},archived:!1,archivedAt:null};return i.saveThread({id:r.id,title:e?.title??r.title,messages:e?.messages?.length?e.messages:r.messages,metadata:t,createdAt:r.createdAt})}}let r={id:t||("u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`thread-${Date.now()}-${Math.random().toString(16).slice(2)}`),messages:e?.messages?.length?e.messages:[],title:e?.title,metadata:e?.metadata};return i.saveThread(r)},async deleteThread(e){let t=e.trim();if(!t)return;let r=await i.loadThread(t);if(!r)return;let a={...r.metadata??{},archived:!0,archivedAt:Date.now()};await i.saveThread({id:r.id,title:r.title,messages:r.messages,metadata:a,createdAt:r.createdAt})},async renameThread(e,t){let r=e.trim(),a=t.trim();if(!r||!a)return null;let n=await i.loadThread(r);return n?(n.title?.trim()??"")===a?n:i.saveThread({id:n.id,title:a,messages:n.messages,metadata:n.metadata,createdAt:n.createdAt}):null},async updateThreadStatus(e,t){let r=await i.loadThread(e);return r?r.status===t?r:i.saveThread({id:r.id,title:r.title,messages:r.messages,metadata:r.metadata,createdAt:r.createdAt,status:t,outcomeNote:r.outcomeNote}):null},async updateThreadOutcomeNote(e,t){let r=await i.loadThread(e);return r?r.outcomeNote===t?r:i.saveThread({id:r.id,title:r.title,messages:r.messages,metadata:r.metadata,createdAt:r.createdAt,status:r.status,outcomeNote:t}):null},async updateMessageThreadStatus(e,t,r){let a=await i.loadThread(e);if(!a)return null;let n=a.messages.map(e=>e.id===t?{...e,threadStatus:r}:e);return i.saveThread({id:a.id,title:a.title,messages:n,metadata:a.metadata,createdAt:a.createdAt,status:a.status,outcomeNote:a.outcomeNote})},async updateMessageOutcomeNote(e,t,r){let a=await i.loadThread(e);if(!a)return null;let n=a.messages.map(e=>e.id===t?{...e,outcomeNote:r}:e);return i.saveThread({id:a.id,title:a.title,messages:n,metadata:a.metadata,createdAt:a.createdAt,status:a.status,outcomeNote:a.outcomeNote})},async saveThreadMessages(e,t){let r=await i.loadThread(e);if(!r)return null;let a=r.title?.trim()||function(e){let t=e.find(e=>"user"===e.role)?.content?.trim();if(!t)return;let r=t.replace(/\s+/g," ");return r.length>60?`${r.slice(0,60).trim()}…`:r}(t);return function(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r+=1){let a=e[r],n=t[r];if(a.id!==n.id||a.role!==n.role||a.participantId!==n.participantId||a.content!==n.content||a.timestamp!==n.timestamp)return!1}return!0}(r.messages,t)&&(r.title?.trim()||void 0)===a?r:i.saveThread({id:r.id,title:a,messages:t,metadata:r.metadata,createdAt:r.createdAt})}}],434405)},196630,e=>{"use strict";let t=(0,e.i(363732).default)("folder-git-2",[["path",{d:"M18 19a5 5 0 0 1-5-5v8",key:"sz5oeg"}],["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]);e.s(["FolderGit2",()=>t],196630)},902572,e=>{"use strict";let t="project_objectives_workspace",r="project_goals_workspace",a=new Set(["on_track","at_risk","off_track","done"]);function n(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function s(e){return`${e}_${Math.random().toString(36).slice(2,10)}`}function i(e){return[...e].sort((e,t)=>Date.parse(t.updatedAt)-Date.parse(e.updatedAt))}function o(e){return[...e].sort((e,t)=>Date.parse(e.createdAt)-Date.parse(t.createdAt))}function l(e){return[...e].sort((e,t)=>Date.parse(t.createdAt)-Date.parse(e.createdAt))}function c(e,t=""){return"string"==typeof e?e:t}function d(e){return Array.isArray(e)?Array.from(new Set(e.map(e=>"string"==typeof e?e.trim():"").filter(Boolean))):[]}function u(e,t="1970-01-01T00:00:00.000Z"){if("string"!=typeof e)return t;let r=Date.parse(e);return Number.isNaN(r)?t:new Date(r).toISOString()}function p(e){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function h(e,t=0){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.floor(e)):t}function m(e,t="objective"){let r=e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/-{2,}/g,"-").slice(0,32);return r||t.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"objective"}function f(e,t,r="objective"){let a=m(r),n=m(e,a),s=n,i=2;for(;t.has(s);){let e=`-${i}`,t=Math.max(1,32-e.length);s=`${n.slice(0,t)}${e}`,i+=1}return t.add(s),s}function x(e,t,r){return f(e,new Set(t.filter(e=>e.id!==r).map(e=>m(e.key||e.title||e.id))),r??e)}function v(e){var t;if(!n(e))return null;let r=u(e.updatedAt??e.createdAt),i=u(e.createdAt,r);return{id:c(e.id,s("objective")),title:c(e.title,"Untitled objective"),teamId:c(e.teamId??e.team_id??e.ownerTeamId),key:m(c(e.key??e.slug??e.label),c(e.title??e.id,"objective")),threadId:c(e.threadId)||null,chatSessionVersion:h(e.chatSessionVersion,0),scheduledTaskIds:d(e.scheduledTaskIds??e.promptJobIds),summary:c(e.summary),progress:p(e.progress),status:"string"==typeof(t=e.status)&&a.has(t)?t:"on_track",createdAt:i,updatedAt:r}}function g(e){if(!n(e))return null;let t=u(e.updatedAt??e.createdAt),r=u(e.createdAt,t),a=c(e.objectiveId??e.goalId);return a?{id:c(e.id,s("objective_activity")),objectiveId:a,sourceType:"note",sourceLabel:c(e.sourceLabel,"Update"),title:c(e.title,"Untitled activity"),body:c(e.body),createdAt:r,updatedAt:t,relatedTaskId:c(e.relatedTaskId)||null}:null}function b(e){if(!n(e))return null;let t=c(e.activityId);return t?{id:c(e.id,s("objective_thread_message")),activityId:t,author:c(e.author,"You"),body:c(e.body),createdAt:u(e.createdAt)}:null}function y(){return{objectives:[],activities:[],activityThreads:{}}}function j(e){let t;if(!n(e))return y();let r=Array.isArray(e.objectives)?e.objectives.map(e=>v(e)).filter(e=>null!==e):[],a=Array.isArray(e.activities)?e.activities.map(e=>g(e)).filter(e=>null!==e):[],s=n(e.activityThreads)?Object.fromEntries(Object.entries(e.activityThreads).map(([e,t])=>[e,o(Array.isArray(t)?t.map(e=>b(e)).filter(e=>null!==e):[])])):{};return{objectives:i((t=new Set,r.map(e=>{let r=f(e.key||e.title||e.id,t,e.id||e.title||"objective");return e.key===r?e:{...e,key:r}}))),activities:l(a),activityThreads:s}}function w(e){if(!n(e))return y();let a=e[t];if(void 0!==a){let e=j(a);if(e.objectives.length>0||e.activities.length>0||Object.keys(e.activityThreads).length>0)return e}let s=e[r];if(void 0!==s){if(!n(s))return y();let e=Array.isArray(s.goals)?s.goals.map(e=>(function(e){if(!n(e))return null;let t=c(e.target),r=[c(e.summary),t?`Measure: ${t}`:""].filter(Boolean).join("\n\n");return v({...e,summary:r})})(e)).filter(e=>null!==e):[],t=Array.isArray(s.manualActivities)?s.manualActivities.map(e=>g({...e,sourceLabel:"Update"})).filter(e=>null!==e):[],r=n(s.activityThreads)?Object.fromEntries(Object.entries(s.activityThreads).map(([e,t])=>[e,o(Array.isArray(t)?t.map(t=>b({...t,activityId:e})).filter(e=>null!==e):[])])):{};return{objectives:i(e),activities:l(t),activityThreads:r}}return y()}function k(e,a){let n={...e};return delete n[r],n[t]=j(a),n}function N(e){return{id:e.id??s("objective"),title:e.title.trim(),teamId:e.teamId.trim(),key:m(e.key?.trim()??e.title.trim(),e.id??e.title),threadId:"string"==typeof e.threadId&&e.threadId.trim()?e.threadId.trim():null,chatSessionVersion:h(e.chatSessionVersion??2,2),scheduledTaskIds:d(e.scheduledTaskIds??[]),summary:e.summary?.trim()??"",progress:p(e.progress??0),status:e.status??"on_track",createdAt:e.now,updatedAt:e.now}}function S(e,t){let r=e.objectives.findIndex(e=>e.id===t.id)>=0?e.objectives.map(e=>e.id===t.id?t:e):[t,...e.objectives];return{...e,objectives:i(r)}}function C(e,t){let r=new Set(e.activities.filter(e=>e.objectiveId===t).map(e=>e.id)),a=Object.fromEntries(Object.entries(e.activityThreads).filter(([e])=>!r.has(e)));return{objectives:e.objectives.filter(e=>e.id!==t),activities:e.activities.filter(e=>e.objectiveId!==t),activityThreads:a}}function T({objective:e,workspace:t}){return t.activities.filter(t=>t.objectiveId===e.id).map(e=>({...e,threadCount:t.activityThreads[e.id]?.length??0})).sort((e,t)=>Date.parse(t.createdAt)-Date.parse(e.createdAt))}e.s(["CURRENT_OBJECTIVE_CHAT_SESSION_VERSION",0,2,"LEGACY_PROJECT_GOALS_METADATA_KEY",0,r,"PROJECT_HEALTH_METADATA_KEY",0,"project_health_snapshot","PROJECT_OBJECTIVES_METADATA_KEY",0,t,"buildObjectiveTimelineActivities",()=>T,"createProjectObjective",()=>N,"generateProjectObjectiveKey",()=>x,"readProjectObjectivesWorkspace",()=>w,"removeProjectObjective",()=>C,"upsertProjectObjective",()=>S,"writeProjectObjectivesWorkspace",()=>k])},519132,e=>{"use strict";let t=(0,e.i(363732).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);e.s(["Sparkles",()=>t],519132)},572665,e=>{"use strict";let t=(0,e.i(363732).default)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);e.s(["Users",()=>t],572665)},378764,e=>{"use strict";var t=e.i(762281),r=e.i(935851),a=e.i(498027),n=e.i(8707),s=e.i(529471),i=e.i(797167);function o({options:e,value:o,onChange:l,placeholder:c,disabled:d}){let[u,p]=(0,r.useState)(!1),[h,m]=(0,r.useState)(""),f=(0,r.useRef)(null),x=(0,r.useRef)(null),v=(0,r.useMemo)(()=>{if(!h)return e;let t=h.toLowerCase();return e.filter(e=>e.label.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t)||e.meta?.toLowerCase().includes(t))},[e,h]),g=(0,r.useMemo)(()=>e.find(e=>e.id===o),[e,o]),b=(0,r.useCallback)(e=>{f.current&&!f.current.contains(e.target)&&p(!1)},[]);return(0,r.useEffect)(()=>(document.addEventListener("pointerdown",b),()=>document.removeEventListener("pointerdown",b)),[b]),(0,t.jsxs)("div",{ref:f,className:"relative",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>{d||(p(!u),m(""),setTimeout(()=>x.current?.focus(),0))},disabled:d,className:"input w-full flex items-center justify-between gap-2 text-left cursor-pointer",children:[g?(0,t.jsx)("span",{className:"truncate",children:g.label}):(0,t.jsx)("span",{className:"text-[var(--muted-foreground)] truncate",children:c}),(0,t.jsx)(a.ChevronDown,{className:`w-4 h-4 text-[var(--muted-foreground)] flex-shrink-0 transition-transform ${u?"rotate-180":""}`})]}),u&&(0,t.jsxs)("div",{className:"absolute z-50 mt-2 min-w-full w-max max-w-[28rem] rounded-2xl overflow-hidden right-0",style:{background:"var(--card-bg)",border:"1px solid var(--border)",boxShadow:"0 8px 30px rgba(0,0,0,0.35), 0 0 0 1px rgba(255,255,255,0.05)"},children:[(0,t.jsxs)("div",{className:"flex items-center gap-2.5 px-3.5 py-3 border-b",style:{borderColor:"var(--border)"},children:[(0,t.jsx)(n.Search,{className:"w-4 h-4 text-[var(--muted-foreground)] flex-shrink-0"}),(0,t.jsx)("input",{ref:x,value:h,onChange:e=>m(e.target.value),placeholder:"Search...",className:"flex-1 bg-transparent text-sm outline-none placeholder:text-[var(--muted-foreground)]"}),h&&(0,t.jsx)("button",{onClick:()=>m(""),className:"text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:(0,t.jsx)(i.X,{className:"w-3.5 h-3.5"})})]}),(0,t.jsxs)("div",{className:"max-h-72 overflow-y-auto py-1",children:[0===v.length&&(0,t.jsx)("div",{className:"px-4 py-6 text-xs text-[var(--muted-foreground)] text-center",children:"No matches"}),v.map(e=>{let r=e.id===o;return(0,t.jsxs)("button",{onClick:()=>{e.disabled||(l(e.id),p(!1),m(""))},disabled:e.disabled,className:`
|
|
2
|
+
w-full text-left px-3.5 py-2.5 flex items-center gap-3 transition-colors
|
|
3
|
+
${e.disabled?"opacity-35 cursor-not-allowed":""}
|
|
4
|
+
${r?"bg-[var(--primary)]/10":"hover:bg-[var(--muted)]/40"}
|
|
5
|
+
`,children:[(0,t.jsx)("div",{className:`w-5 h-5 rounded-md flex items-center justify-center flex-shrink-0 border ${r?"bg-[var(--primary)] border-[var(--primary)]":"border-[var(--border)]"}`,children:r&&(0,t.jsx)(s.Check,{className:"w-3 h-3 text-white"})}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium",children:e.label}),e.meta&&(0,t.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full bg-[var(--muted)]/50 text-[var(--muted-foreground)]",children:e.meta})]}),e.description&&(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5 line-clamp-1",children:e.description})]})]},e.id)})]})]})]})}e.s(["default",()=>o])},19035,e=>{"use strict";let t=(0,e.i(363732).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",()=>t],19035)},169610,e=>{"use strict";let t=(0,e.i(363732).default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);e.s(["User",()=>t],169610)},755838,(e,t,r)=>{"use strict";var a=e.r(935851),n="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},s=a.useState,i=a.useEffect,o=a.useLayoutEffect,l=a.useDebugValue;function c(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!n(e,r)}catch(e){return!0}}var d="u"<typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),a=s({inst:{value:r,getSnapshot:t}}),n=a[0].inst,d=a[1];return o(function(){n.value=r,n.getSnapshot=t,c(n)&&d({inst:n})},[e,r,t]),i(function(){return c(n)&&d({inst:n}),e(function(){c(n)&&d({inst:n})})},[e]),l(r),r};r.useSyncExternalStore=void 0!==a.useSyncExternalStore?a.useSyncExternalStore:d},802239,(e,t,r)=>{"use strict";t.exports=e.r(755838)},752822,(e,t,r)=>{"use strict";var a=e.r(935851),n=e.r(802239),s="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},i=n.useSyncExternalStore,o=a.useRef,l=a.useEffect,c=a.useMemo,d=a.useDebugValue;r.useSyncExternalStoreWithSelector=function(e,t,r,a,n){var u=o(null);if(null===u.current){var p={hasValue:!1,value:null};u.current=p}else p=u.current;var h=i(e,(u=c(function(){function e(e){if(!l){if(l=!0,i=e,e=a(e),void 0!==n&&p.hasValue){var t=p.value;if(n(t,e))return o=t}return o=e}if(t=o,s(i,e))return t;var r=a(e);return void 0!==n&&n(t,r)?(i=e,t):(i=e,o=r)}var i,o,l=!1,c=void 0===r?null:r;return[function(){return e(t())},null===c?void 0:function(){return e(c())}]},[t,r,a,n]))[0],u[1]);return l(function(){p.hasValue=!0,p.value=h},[h]),d(h),h}},430224,(e,t,r)=>{"use strict";t.exports=e.r(752822)},538292,e=>{"use strict";let t=(0,e.i(363732).default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",()=>t],538292)},44054,e=>{"use strict";var t=e.i(935851);let r="(pointer: coarse)",a="(hover: hover)",n="(max-width: 767px)",s="(min-width: 768px)";function i(){if("function"!=typeof window.matchMedia)return{isCoarsePointer:!1,canHover:!0,isPhone:!1,isTablet:!1,isTouchLayout:!1};let e=window.matchMedia(r).matches,t=window.matchMedia(a).matches,i=window.matchMedia(n).matches,o=!i&&window.matchMedia(s).matches,l=e||!t;return{isCoarsePointer:e,canHover:t,isPhone:l&&i,isTablet:l&&o,isTouchLayout:l}}function o(){let[e,o]=(0,t.useState)(i);return(0,t.useEffect)(()=>{if("function"!=typeof window.matchMedia)return;let e=[window.matchMedia(r),window.matchMedia(a),window.matchMedia(n),window.matchMedia(s)],t=()=>{o(i())};return e.forEach(e=>e.addEventListener("change",t)),window.addEventListener("resize",t),t(),()=>{e.forEach(e=>e.removeEventListener("change",t)),window.removeEventListener("resize",t)}},[]),e}e.s(["useInputCapabilities",()=>o])},363732,e=>{"use strict";var t=e.i(935851);let r=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim(),a=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var n={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let s=(0,t.forwardRef)(({color:e="currentColor",size:a=24,strokeWidth:s=2,absoluteStrokeWidth:i,className:o="",children:l,iconNode:c,...d},u)=>(0,t.createElement)("svg",{ref:u,...n,width:a,height:a,stroke:e,strokeWidth:i?24*Number(s)/Number(a):s,className:r("lucide",o),...!l&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(d)&&{"aria-hidden":"true"},...d},[...c.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(l)?l:[l]])),i=(e,n)=>{let i=(0,t.forwardRef)(({className:i,...o},l)=>(0,t.createElement)(s,{ref:l,iconNode:n,className:r(`lucide-${a(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,i),...o}));return i.displayName=a(e),i};e.s(["default",()=>i],363732)},524123,e=>{"use strict";var t=e.i(935851);function r(){let[e,r]=(0,t.useState)([]),[a,n]=(0,t.useState)(!1),[s,i]=(0,t.useState)(null),o=(0,t.useCallback)(async()=>{n(!0);try{let e=await fetch("/api/projects");if(!e.ok)throw Error("Failed to fetch projects");let t=await e.json();r(t.projects??[]),i(null)}catch(e){i(e instanceof Error?e:Error("Unknown error"))}finally{n(!1)}},[]);(0,t.useEffect)(()=>{o()},[o]);let l=(0,t.useCallback)(async e=>{let t=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to create project");let a=(await t.json()).project;return r(e=>[a,...e]),a},[]);return{projects:e,isLoading:a,error:s,refetch:o,createProject:l,updateProject:(0,t.useCallback)(async(e,t)=>{let a=await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok)throw Error((await a.json().catch(()=>({}))).error||"Failed to update project");let n=(await a.json()).project;return r(t=>t.map(t=>t.id===e?n:t)),n},[]),deleteProject:(0,t.useCallback)(async e=>{let t=await fetch(`/api/projects/${e}`,{method:"DELETE"});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to delete project");r(t=>t.filter(t=>t.id!==e))},[])}}function a(){let[e,r]=(0,t.useState)([]),[a,n]=(0,t.useState)(!0),s=(0,t.useCallback)(async()=>{try{let e=await fetch("/api/projects");if(!e.ok)return;let{projects:t}=await e.json(),a=await Promise.all((t??[]).map(async e=>{let t=[],r=[];try{let[a,n]=await Promise.all([fetch(`/api/projects/${e.id}/agents`),fetch(`/api/projects/${e.id}/threads`)]);a.ok&&(t=(await a.json()).agents??[]),n.ok&&(r=((await n.json()).threads??[]).map(e=>e.thread_id))}catch{}return{...e,repos:e.repos??[],agents:t.map(t=>({project_id:e.id,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at})),thread_ids:r,workspace_ids:r}}));r(a)}catch{}finally{n(!1)}},[]);(0,t.useEffect)(()=>{s()},[s]);let i=(0,t.useCallback)(async(e,t)=>{try{let a="string"==typeof e?{name:e}:e,n=a.name.trim(),s=(a.slug||n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")).trim(),i=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...a,name:n,slug:s})});if(!i.ok)return null;let{project:o}=await i.json(),l=Array.isArray(t)?t:t?[t]:[];for(let e of l)await fetch(`/api/projects/${o.id}/threads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:e})}).catch(e=>console.warn("[useProjects] link thread failed:",e));let c={...o,repos:o.repos??[],agents:[],thread_ids:l,workspace_ids:l};return r(e=>[...e,c].sort((e,t)=>e.name.localeCompare(t.name))),c}catch{return null}},[]),o=(0,t.useCallback)(async(e,t)=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})})).ok)return;r(r=>r.map(r=>r.id===e?{...r,name:t}:r).sort((e,t)=>e.name.localeCompare(t.name)))}catch{}},[]),l=(0,t.useCallback)(async e=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"DELETE"})).ok)return;r(t=>t.filter(t=>t.id!==e))}catch{}},[]),c=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok){let e=await a.json().catch(()=>({}));throw Error(e.error||"Failed to update project")}let n=(await a.json()).project;return r(t=>t.map(t=>t.id===e?{...t,...n,repos:n.repos??t.repos}:t)),n}catch{return null}},[]),d=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:t})});if(!a.ok)return;let n=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:n}:t))}catch{}},[]),u=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents?agentId=${t}`,{method:"DELETE"});if(!a.ok)return;let n=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:n}:t))}catch{}},[]);return{projects:e,isLoading:a,createProject:i,updateProject:c,renameProject:o,deleteProject:l,addAgent:d,removeAgent:u,reorderAgents:(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({orderedAgentIds:t})});if(!a.ok)return;let n=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:n}:t))}catch{}},[]),moveAgent:(0,t.useCallback)(async(e,t,r)=>{try{await fetch(`/api/projects/${t}/agents?agentId=${e}`,{method:"DELETE"}),await fetch(`/api/projects/${r}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:e})}),await s()}catch{}},[s]),refresh:s}}e.s(["useProjects",()=>r,"useProjectsWithAgents",()=>a])},797167,e=>{"use strict";let t=(0,e.i(363732).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["X",()=>t],797167)},929870,e=>{"use strict";let t=(0,e.i(363732).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",()=>t],929870)},8707,e=>{"use strict";let t=(0,e.i(363732).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["Search",()=>t],8707)},498027,e=>{"use strict";let t=(0,e.i(363732).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",()=>t],498027)},529471,e=>{"use strict";let t=(0,e.i(363732).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",()=>t],529471)},571278,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={assign:function(){return l},searchParamsToUrlQuery:function(){return s},urlQueryToSearchParams:function(){return o}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});function s(e){let t={};for(let[r,a]of e.entries()){let e=t[r];void 0===e?t[r]=a:Array.isArray(e)?e.push(a):t[r]=[e,a]}return t}function i(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function o(e){let t=new URLSearchParams;for(let[r,a]of Object.entries(e))if(Array.isArray(a))for(let e of a)t.append(r,i(e));else t.set(r,i(a));return t}function l(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,a]of r.entries())e.append(t,a)}return e}},13168,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={formatUrl:function(){return o},formatWithValidation:function(){return c},urlObjectKeys:function(){return l}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let s=e.r(190809)._(e.r(571278)),i=/https?|ftp|gopher|file/;function o(e){let{auth:t,hostname:r}=e,a=e.protocol||"",n=e.pathname||"",o=e.hash||"",l=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:r&&(c=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(c+=":"+e.port)),l&&"object"==typeof l&&(l=String(s.urlQueryToSearchParams(l)));let d=e.search||l&&`?${l}`||"";return a&&!a.endsWith(":")&&(a+=":"),e.slashes||(!a||i.test(a))&&!1!==c?(c="//"+(c||""),n&&"/"!==n[0]&&(n="/"+n)):c||(c=""),o&&"#"!==o[0]&&(o="#"+o),d&&"?"!==d[0]&&(d="?"+d),n=n.replace(/[?#]/g,encodeURIComponent),d=d.replace("#","%23"),`${a}${c}${n}${d}${o}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function c(e){return o(e)}},950581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return n}});let a=e.r(935851);function n(e,t){let r=(0,a.useRef)(null),n=(0,a.useRef)(null);return(0,a.useCallback)(a=>{if(null===a){let e=r.current;e&&(r.current=null,e());let t=n.current;t&&(n.current=null,t())}else e&&(r.current=s(e,a)),t&&(n.current=s(t,a))},[e,t])}function s(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},692942,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={DecodeError:function(){return v},MiddlewareNotFoundError:function(){return j},MissingStaticPage:function(){return y},NormalizeError:function(){return g},PageNotFoundError:function(){return b},SP:function(){return f},ST:function(){return x},WEB_VITALS:function(){return s},execOnce:function(){return i},getDisplayName:function(){return u},getLocationOrigin:function(){return c},getURL:function(){return d},isAbsoluteUrl:function(){return l},isResSent:function(){return p},loadGetInitialProps:function(){return m},normalizeRepeatedSlashes:function(){return h},stringifyError:function(){return w}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let s=["CLS","FCP","FID","INP","LCP","TTFB"];function i(e){let t,r=!1;return(...a)=>(r||(r=!0,t=e(...a)),t)}let o=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>o.test(e);function c(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function d(){let{href:e}=window.location,t=c();return e.substring(t.length)}function u(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function p(e){return e.finished||e.headersSent}function h(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function m(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await m(t.Component,t.ctx)}:{};let a=await e.getInitialProps(t);if(r&&p(r))return a;if(!a)throw Object.defineProperty(Error(`"${u(e)}.getInitialProps()" should resolve to an object. But found "${a}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return a}let f="u">typeof performance,x=f&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class v extends Error{}class g extends Error{}class b extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class y extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class j extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function w(e){return JSON.stringify({message:e.message,stack:e.stack})}},299242,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return s}});let a=e.r(692942),n=e.r(756972);function s(e){if(!(0,a.isAbsoluteUrl)(e))return!0;try{let t=(0,a.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,n.hasBasePath)(r.pathname)}catch(e){return!1}}},405374,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},307241,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={default:function(){return v},useLinkStatus:function(){return b}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let s=e.r(190809),i=e.r(762281),o=s._(e.r(935851)),l=e.r(13168),c=e.r(543665),d=e.r(950581),u=e.r(692942),p=e.r(212591);e.r(292135);let h=e.r(53101),m=e.r(299242),f=e.r(979945);function x(e){return"string"==typeof e?e:(0,l.formatUrl)(e)}function v(t){var r;let a,n,s,[l,v]=(0,o.useOptimistic)(h.IDLE_LINK_STATUS),b=(0,o.useRef)(null),{href:y,as:j,children:w,prefetch:k=null,passHref:N,replace:S,shallow:C,scroll:T,onClick:A,onMouseEnter:_,onTouchStart:E,legacyBehavior:P=!1,onNavigate:M,ref:O,unstable_dynamicOnHover:L,...I}=t;a=w,P&&("string"==typeof a||"number"==typeof a)&&(a=(0,i.jsx)("a",{children:a}));let $=o.default.useContext(c.AppRouterContext),R=!1!==k,D=!1!==k?null===(r=k)||"auto"===r?f.FetchStrategy.PPR:f.FetchStrategy.Full:f.FetchStrategy.PPR,{href:U,as:W}=o.default.useMemo(()=>{let e=x(y);return{href:e,as:j?x(j):e}},[y,j]);if(P){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});n=o.default.Children.only(a)}let F=P?n&&"object"==typeof n&&n.ref:O,H=o.default.useCallback(e=>(null!==$&&(b.current=(0,h.mountLinkInstance)(e,U,$,D,R,v)),()=>{b.current&&((0,h.unmountLinkForCurrentNavigation)(b.current),b.current=null),(0,h.unmountPrefetchableInstance)(e)}),[R,U,$,D,v]),z={ref:(0,d.useMergedRef)(H,F),onClick(t){P||"function"!=typeof A||A(t),P&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(t),!$||t.defaultPrevented||function(t,r,a,n,s,i,l){if("u">typeof window){let c,{nodeName:d}=t.currentTarget;if("A"===d.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(r)){s&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),l){let e=!1;if(l({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:u}=e.r(977803);o.default.startTransition(()=>{u(a||r,s?"replace":"push",i??!0,n.current)})}}(t,U,W,b,S,T,M)},onMouseEnter(e){P||"function"!=typeof _||_(e),P&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),$&&R&&(0,h.onNavigationIntent)(e.currentTarget,!0===L)},onTouchStart:function(e){P||"function"!=typeof E||E(e),P&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),$&&R&&(0,h.onNavigationIntent)(e.currentTarget,!0===L)}};return(0,u.isAbsoluteUrl)(W)?z.href=W:P&&!N&&("a"!==n.type||"href"in n.props)||(z.href=(0,p.addBasePath)(W)),s=P?o.default.cloneElement(n,z):(0,i.jsx)("a",{...I,...z,children:a}),(0,i.jsx)(g.Provider,{value:l,children:s})}e.r(405374);let g=(0,o.createContext)(h.IDLE_LINK_STATUS),b=()=>(0,o.useContext)(g);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},597628,e=>{"use strict";let t=(0,e.i(363732).default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);e.s(["MessageSquare",()=>t],597628)},997626,e=>{"use strict";let t=(0,e.i(363732).default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);e.s(["Zap",()=>t],997626)},938201,e=>{"use strict";let t=(0,e.i(363732).default)("target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);e.s(["Target",()=>t],938201)},99296,846279,e=>{"use strict";let t=(0,e.i(363732).default)("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]);e.s(["default",()=>t],846279),e.s(["TerminalSquare",()=>t],99296)},235136,e=>{"use strict";var t=e.i(935851);function r(e){let[r,a]=(0,t.useState)([]),[n,s]=(0,t.useState)(!0),i=(0,t.useCallback)(async()=>{if(!e){a([]),s(!1);return}try{let t=await fetch(`/api/trackers/connections?projectId=${encodeURIComponent(e)}`),r=await t.json();a(Array.isArray(r.connections)?r.connections:[])}catch{a([])}finally{s(!1)}},[e]);(0,t.useEffect)(()=>{i()},[i]);let o=(0,t.useCallback)(async(t,r)=>{if(!e)return{ok:!1,error:"Missing projectId"};try{let a=await fetch("/api/trackers/connections",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:t,projectId:e,metadata:r})});if(!a.ok){let e=await a.json().catch(()=>({}));return{ok:!1,error:e.error||"Failed to add connection"}}return await i(),{ok:!0}}catch{return{ok:!1,error:"Failed to add connection"}}},[e,i]),l=(0,t.useCallback)(async t=>{if(!e)return{ok:!1,error:"Missing projectId"};try{let r=await fetch(`/api/trackers/${t}/status?projectId=${encodeURIComponent(e)}`,{method:"DELETE"});if(!r.ok){let e=await r.json().catch(()=>({}));return{ok:!1,error:e.error||"Failed to remove connection"}}return await i(),{ok:!0}}catch{return{ok:!1,error:"Failed to remove connection"}}},[e,i]);return{connections:r,loading:n,refresh:i,addConnection:o,removeConnection:l}}e.s(["useTrackerConnections",()=>r])},169433,e=>{"use strict";let t="agx:windowState",r={workspaceWidth:260,logPanelHeight:200,workspaceVisible:!0,logPanelVisible:!1,linearTicketPanelWidth:576,objectiveChatPanelWidth:440,objectiveListPanelWidth:320},a={lastThreadId:null,lastWorkspaceId:null},n={bounds:null,sidebar:r,scroll:a};function s(){return void 0!==window.localStorage}function i(){if(!s())return{...n};let e=window.localStorage.getItem(t);if(!e)return{...n};try{let t=JSON.parse(e);return{bounds:t.bounds||null,sidebar:{...r,...t.sidebar||{}},scroll:{...a,...t.scroll||{}}}}catch{return{...n}}}function o(){return i().sidebar}function l(e){let r=i();r.sidebar={...r.sidebar,...e};if(s())try{window.localStorage.setItem(t,JSON.stringify(r))}catch{}}function c(){return o().workspaceWidth}function d(e){l({workspaceWidth:e})}function u(){return o().linearTicketPanelWidth}function p(e){l({linearTicketPanelWidth:e})}function h(){return o().objectiveChatPanelWidth}function m(e){l({objectiveChatPanelWidth:e})}function f(){return o().objectiveListPanelWidth}function x(e){l({objectiveListPanelWidth:e})}e.s(["loadLinearTicketPanelWidth",()=>u,"loadObjectiveChatPanelWidth",()=>h,"loadObjectiveListPanelWidth",()=>f,"loadWorkspaceWidth",()=>c,"persistLinearTicketPanelWidth",()=>p,"persistObjectiveChatPanelWidth",()=>m,"persistObjectiveListPanelWidth",()=>x,"persistWorkspaceWidth",()=>d])},681619,594643,e=>{"use strict";var t=e.i(762281);function r({className:e}){return(0,t.jsx)("svg",{className:e,viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{d:"M2.886 4.18A11.982 11.982 0 0 1 11.99 0C18.624 0 24 5.376 24 12.009c0 3.64-1.62 6.903-4.18 9.105L2.887 4.18ZM1.817 5.626l16.556 16.556c-.524.33-1.075.62-1.65.866L.951 7.277c.247-.575.537-1.126.866-1.65ZM.322 9.163l14.515 14.515c-.71.172-1.443.282-2.195.322L0 11.358a12 12 0 0 1 .322-2.195Zm-.17 4.862 9.823 9.824a12.02 12.02 0 0 1-9.824-9.824Z"})})}e.s(["LinearIcon",()=>r],594643);let a={linear:r,jira:function({className:e}){return(0,t.jsxs)("svg",{className:e,viewBox:"12 12 104 104",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:[(0,t.jsx)("path",{d:"M108.023 16H61.805c0 11.52 9.324 20.848 20.847 20.848h8.5v8.226c0 11.52 9.328 20.848 20.848 20.848V19.977A3.98 3.98 0 00108.023 16zm0 0"}),(0,t.jsx)("path",{d:"M85.121 39.04H38.902c0 11.519 9.325 20.847 20.844 20.847h8.504v8.226c0 11.52 9.328 20.848 20.848 20.848V43.016a3.983 3.983 0 00-3.977-3.977zm0 0"}),(0,t.jsx)("path",{d:"M62.219 62.078H16c0 11.524 9.324 20.848 20.848 20.848h8.5v8.23c0 11.52 9.328 20.844 20.847 20.844V66.059a3.984 3.984 0 00-3.976-3.98zm0 0"})]})}};function n({trackerType:e,className:r}){let n=a[e];return n?(0,t.jsx)(n,{className:r}):(0,t.jsx)(s,{className:r})}function s({className:e}){return(0,t.jsxs)("svg",{className:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2"}),(0,t.jsx)("rect",{x:"9",y:"3",width:"6",height:"4",rx:"2"}),(0,t.jsx)("path",{d:"M9 12h6"}),(0,t.jsx)("path",{d:"M9 16h6"})]})}e.s(["TrackerIcon",()=>n],681619)},575479,e=>{"use strict";let t=(0,e.i(363732).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);e.s(["FileText",()=>t],575479)},55236,e=>{"use strict";let t=(0,e.i(363732).default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);e.s(["Folder",()=>t],55236)},51297,e=>{"use strict";let t=(0,e.i(363732).default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);e.s(["Bot",()=>t],51297)},494999,e=>{"use strict";var t=e.i(762281),r=e.i(935851);function a({initialPath:e,onSelect:a,onCancel:n}){let[s,i]=(0,r.useState)(e||""),[o,l]=(0,r.useState)(null),[c,d]=(0,r.useState)(!1),[u,p]=(0,r.useState)(null),h=(0,r.useRef)(null),m=(0,r.useCallback)(async e=>{d(!0),p(null);try{let t=e?`?path=${encodeURIComponent(e)}`:"",r=await fetch(`/api/filesystem/browse${t}`),a=await r.json();if(!r.ok)return void p(a.error||"Failed to browse");l(a),i(a.current),h.current?.scrollTo(0,0)}catch{p("Failed to connect")}finally{d(!1)}},[]);return(0,r.useEffect)(()=>{m(e||"")},[]),(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] overflow-hidden shadow-lg",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-[var(--card-border)] bg-[var(--muted)]/30",children:[(0,t.jsx)("input",{value:s,onChange:e=>i(e.target.value),onKeyDown:e=>{"Enter"===e.key&&m(s)},className:"input text-xs flex-1 py-1",placeholder:"Enter path..."}),(0,t.jsx)("button",{type:"button",onClick:()=>m(s),className:"text-[10px] font-bold uppercase tracking-wider text-[var(--primary)] hover:underline px-2 py-1 shrink-0",children:"Go"})]}),(0,t.jsxs)("div",{ref:h,className:"max-h-48 overflow-y-auto",children:[c&&(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)] text-center",children:"Loading..."}),u&&(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--destructive)] text-center",children:u}),!c&&o&&(0,t.jsxs)("div",{className:"py-1",children:[o.parent&&(0,t.jsxs)("button",{type:"button",onClick:()=>m(o.parent),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-[var(--muted)]/50 transition-colors flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"↑"}),(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:".."})]}),0===o.dirs.length&&!o.parent&&(0,t.jsx)("div",{className:"px-3 py-3 text-xs text-[var(--muted-foreground)] text-center",children:"No subdirectories"}),o.dirs.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>m(e.path),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-[var(--muted)]/50 transition-colors flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"📁"}),(0,t.jsx)("span",{className:"truncate",children:e.name})]},e.path))]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-t border-[var(--card-border)] bg-[var(--muted)]/30",children:[(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)] truncate max-w-[60%]",children:o?.current||s}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:n,className:"text-xs font-medium text-[var(--muted-foreground)] hover:underline px-2 py-1",children:"Cancel"}),(0,t.jsx)("button",{type:"button",onClick:()=>a(o?.current||s),className:"text-xs font-bold text-[var(--primary)] hover:underline px-2 py-1",children:"Select"})]})]})]})}e.s(["default",()=>a])},535208,e=>{"use strict";var t=e.i(762281),r=e.i(935851),a=e.i(494999);let n={name:"",description:""},s={name:"",path:"",notes:""};function i(){let[e,t]=(0,r.useState)(n),[a,i]=(0,r.useState)([s]),[o,l]=(0,r.useState)(!1),[c,d]=(0,r.useState)(null),u=(0,r.useCallback)((e,t,r)=>{i(a=>a.map((a,n)=>n===e?{...a,[t]:r}:a))},[]),p=(0,r.useCallback)(()=>{i(e=>[...e,{...s}])},[]),h=(0,r.useCallback)(e=>{i(t=>t.filter((t,r)=>r!==e))},[]),m=(0,r.useCallback)(()=>{t(n),i([s]),d(null)},[]),f=(0,r.useCallback)(e=>{t({name:e.name||"",description:e.description||""}),e.repos&&e.repos.length>0?i(e.repos.map(e=>({id:e.id,name:e.name||"",path:e.path||"",git_url:e.git_url||"",notes:e.notes||""}))):i([s]),d(null)},[]);return{form:e,setForm:t,repos:a,handleRepoChange:u,addRepo:p,removeRepo:h,resetForm:m,hydrateFromProject:f,isSubmitting:o,setIsSubmitting:l,formError:c,setFormError:d}}function o(e,t){let r=t.filter(e=>e.name.trim()&&e.path.trim()).map(e=>({...e.id?{id:e.id}:{},name:e.name.trim(),path:e.path.trim(),...e.git_url?.trim()?{git_url:e.git_url.trim()}:{},notes:e.notes.trim()||void 0}));return{name:e.name.trim(),description:e.description.trim()||void 0,repos:r.length?r:void 0}}function l({form:e,repos:n,isEditingProject:s,isSubmitting:i,onFieldChange:o,onRepoChange:l,onAddRepo:c,onRemoveRepo:d}){let[u,p]=(0,r.useState)([]),[h,m]=(0,r.useState)(null),f=(0,r.useRef)(0);(0,r.useEffect)(()=>{s?p([]):p(n.map((e,t)=>t)),f.current=n.length},[s,n.length]),(0,r.useEffect)(()=>{if(!s){f.current=n.length;return}let e=f.current;p(t=>{let r=t.filter(e=>e<n.length);return n.length>e&&r.push(...Array.from({length:n.length-e},(t,r)=>e+r)),r}),f.current=n.length},[s,n.length]);let x=(0,r.useCallback)(e=>{p(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),v=(0,r.useCallback)(e=>!s||u.includes(e),[u,s]);return(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)("div",{className:"grid gap-4",children:(0,t.jsxs)("label",{className:"space-y-1.5 block",children:[(0,t.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Project Name"}),(0,t.jsx)("input",{value:e.name,onChange:e=>o("name",e.target.value),className:"input w-full",placeholder:"e.g. AGX Cloud",disabled:i})]})}),(0,t.jsxs)("label",{className:"space-y-1.5 block",children:[(0,t.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Description"}),(0,t.jsx)("textarea",{value:e.description,onChange:e=>o("description",e.target.value),className:"input w-full h-24 resize-none",placeholder:"What is this project about?",disabled:i})]}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-[var(--card-border)] pb-2",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-sm font-bold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Folders"}),(0,t.jsx)("p",{className:"text-[11px] text-[var(--muted-foreground)] mt-0.5",children:"Code repos, doc folders, design assets, config directories — any path your team needs access to."})]}),(0,t.jsx)("button",{type:"button",onClick:c,className:"text-xs font-semibold text-[var(--primary)] hover:underline flex-shrink-0",disabled:i,children:"+ Add Folder"})]}),(0,t.jsx)("div",{className:"space-y-4",children:n.map((e,r)=>(0,t.jsxs)("div",{className:"p-4 rounded-2xl border border-[var(--card-border)] bg-[var(--muted)]/20 space-y-3 relative group",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"text-xs font-bold text-[var(--foreground)] uppercase",children:["Folder #",r+1]}),s&&!v(r)?(0,t.jsxs)("div",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:[(0,t.jsx)("div",{children:e.name||"Unnamed folder"}),(0,t.jsx)("div",{className:"truncate",children:e.path||"No local path set"})]}):null]}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[s&&(0,t.jsx)("button",{type:"button",onClick:()=>x(r),className:"text-xs font-semibold text-[var(--primary)] hover:underline",disabled:i,children:v(r)?"Done":"Edit"}),n.length>1&&(0,t.jsx)("button",{type:"button",onClick:()=>d(r),className:"text-xs font-semibold text-[var(--destructive)] hover:underline",disabled:i,children:"Remove"})]})]}),v(r)?(0,t.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,t.jsx)("input",{value:e.name,onChange:e=>l(r,"name",e.target.value),placeholder:"Name (e.g. Frontend, API Docs, Design System)",className:"input text-sm",disabled:i}),(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{value:e.path,onChange:e=>l(r,"path",e.target.value),placeholder:"Local path to folder",className:`input text-sm flex-1${e.name.trim()&&!e.path.trim()?" border-[var(--destructive)]/50 ring-1 ring-[var(--destructive)]/20":""}`,disabled:i}),(0,t.jsx)("button",{type:"button",onClick:async()=>{try{let e=await fetch("/api/filesystem/pick-folder",{method:"POST"}),t=await e.json();t.path&&l(r,"path",t.path)}catch{m(h===r?null:r)}},className:"px-3 py-2 rounded-xl border border-[var(--card-border)] bg-[var(--muted)]/30 hover:bg-[var(--muted)]/60 transition-colors text-xs font-semibold text-[var(--muted-foreground)] whitespace-nowrap",disabled:i,children:"Browse"})]}),e.name.trim()&&!e.path.trim()&&(0,t.jsx)("p",{className:"text-[11px] text-[var(--destructive)]",children:"Local path is required"})]}),h===r&&(0,t.jsx)("div",{className:"md:col-span-2",children:(0,t.jsx)(a.default,{initialPath:e.path||"",onSelect:e=>{l(r,"path",e),m(null)},onCancel:()=>m(null)})}),(0,t.jsx)("div",{className:"md:col-span-2",children:(0,t.jsx)("textarea",{value:e.notes,onChange:e=>l(r,"notes",e.target.value),placeholder:"Notes for this folder — e.g. coding conventions, deploy steps, ownership, doc standards...",className:"input text-sm w-full min-h-24 resize-y",disabled:i})})]}):null]},r))})]})]})}function c({isOpen:e,onClose:a,onSubmit:n,editingProject:s,form:i,repos:o,isSubmitting:c,formError:d,onFieldChange:u,onRepoChange:p,onAddRepo:h,onRemoveRepo:m}){let[f,x]=(0,r.useState)([]);(0,r.useEffect)(()=>{let e=!1;return async function(){if(!s)return x([]);try{let t=await fetch(`/api/knowledge-notes?scope=project&subjectId=${encodeURIComponent(s.id)}`),r=(t.ok?await t.json():{note:null}).note;e||x(r?.content?[{id:r.id,content:r.content,created_at:r.updatedAt??r.createdAt,source:r.sourceType}]:[])}catch{e||x([])}}(),()=>{e=!0}},[s]);let v=o.some(e=>e.name.trim()&&!e.path.trim()),g=!i.name.trim()||v;return e?(0,t.jsx)("div",{className:"modal-backdrop p-2 sm:p-4 z-50 overflow-y-auto flex items-center justify-center",onClick:e=>e.target===e.currentTarget&&a(),children:(0,t.jsxs)("div",{className:"modal-content w-full max-w-4xl mx-2 sm:mx-auto bg-[var(--card-bg)] rounded-3xl border border-[var(--card-border)] shadow-2xl animate-scale-in flex flex-col max-h-[90vh]",children:[(0,t.jsxs)("div",{className:"px-4 py-4 sm:px-8 sm:py-6 border-b border-[var(--card-border)] flex items-center justify-between flex-shrink-0",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-xl font-bold",children:s?"Edit Project":"Create New Project"}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5",children:s?"Update your project settings and folders.":"Define a new project and connect folders."})]}),(0,t.jsx)("button",{onClick:a,className:"p-2 rounded-xl hover:bg-[var(--muted)]/50 transition-colors",children:(0,t.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto p-4 sm:p-8",children:[s&&(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsxs)("div",{className:"rounded-2xl border border-[var(--card-border)] bg-[var(--muted)]/20 p-4",children:[(0,t.jsx)("h3",{className:"text-sm font-bold uppercase tracking-widest text-[var(--muted-foreground)]",children:"Living Project Note"}),f.length>0?(0,t.jsx)("div",{className:"mt-3 space-y-2",children:f.slice(0,5).map(e=>(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] px-3 py-2 text-sm text-[var(--foreground)]",children:[(0,t.jsx)("div",{children:e.content}),e.created_at?(0,t.jsx)("div",{className:"mt-1 text-[11px] text-[var(--muted-foreground)]",children:new Date(e.created_at).toLocaleString()}):null]},e.id))}):(0,t.jsx)("p",{className:"mt-2 text-sm text-[var(--muted-foreground)]",children:"No project note yet."})]})}),(0,t.jsx)(l,{form:i,repos:o,isEditingProject:!!s,isSubmitting:c,onFieldChange:u,onRepoChange:p,onAddRepo:h,onRemoveRepo:m}),d&&(0,t.jsx)("div",{className:"mt-6 p-4 rounded-xl bg-[var(--destructive-muted)] border border-[var(--destructive)]/20 text-sm text-[var(--destructive)]",children:d})]}),(0,t.jsxs)("div",{className:"px-4 py-4 sm:px-8 sm:py-6 border-t border-[var(--card-border)] flex items-center justify-end gap-3 flex-shrink-0",children:[(0,t.jsx)("button",{onClick:a,className:"px-6 py-2 rounded-xl border border-[var(--card-border)] hover:bg-[var(--muted)]/50 transition-colors text-sm font-medium",children:"Cancel"}),(0,t.jsx)("button",{onClick:n,disabled:c||g,className:"btn-primary px-8 py-2 shadow-lg shadow-[var(--primary)]/20 min-w-[120px]",children:c?(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"spinner w-3 h-3 border-2 border-white/20 border-t-white"}),"Saving..."]}):s?"Save Changes":"Create Project"})]})]})}):null}e.s(["createProjectPayload",()=>o,"default",()=>c,"useProjectFormState",()=>i])},563975,e=>{"use strict";var t=e.i(762281),r=e.i(935851),a=e.i(506420),n=e.i(429056),s=e.i(169729),i=e.i(468947),o=e.i(721571),l=e.i(524780),c=e.i(51297);let d=(0,e.i(363732).default)("clock-3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6h4",key:"135r8i"}]]);var u=e.i(575479),p=e.i(906724),h=e.i(597628),m=e.i(8707),f=e.i(938201),x=e.i(572665),v=e.i(797167),g=e.i(44054);function b({projectId:e}){let{isTouchLayout:n}=(0,g.useInputCapabilities)(),s=(0,a.useRouter)(),i=(0,a.usePathname)(),o=(0,r.useRef)(null),l=(0,r.useRef)(null),[b,y]=(0,r.useState)(""),[j,w]=(0,r.useState)([]),[k,N]=(0,r.useState)(0),[S,C]=(0,r.useState)(!1),[T,A]=(0,r.useState)(null),[_,E]=(0,r.useState)(!1),[P,M]=(0,r.useState)(0),[O,L]=(0,r.useState)(new Set),I=b.trim(),$=(0,r.useMemo)(()=>j.map(e=>({...e,visibleResults:O.has(e.id)?e.results:e.results.slice(0,3),hiddenCount:Math.max(0,e.results.length-3)})),[O,j]),R=(0,r.useMemo)(()=>$.flatMap(e=>e.visibleResults),[$]),D=(0,r.useMemo)(()=>R.map(e=>`${e.kind}:${e.id}`),[R]),U=(0,r.useCallback)(()=>{y(""),w([]),N(0),A(null),C(!1),M(0)},[]),W=(0,r.useCallback)(e=>{U(),E(!1),s.push(e.href)},[U,s]);(0,r.useEffect)(()=>{U(),E(!1),L(new Set)},[U,i]),(0,r.useEffect)(()=>{let e=e=>{o.current?.contains(e.target)||E(!1)};return window.addEventListener("pointerdown",e),()=>window.removeEventListener("pointerdown",e)},[]),(0,r.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&"k"===e.key.toLowerCase()&&(e.preventDefault(),l.current?.focus(),l.current?.select())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),(0,r.useEffect)(()=>{_&&M(0)},[_,j]),(0,r.useEffect)(()=>{if(!I||I.length<2){w([]),N(0),A(null),C(!1),L(new Set);return}let t=!1;C(!0);let r=window.setTimeout(()=>{(async()=>{try{let r=new URLSearchParams({q:I}),a=await fetch(`/api/projects/${encodeURIComponent(e)}/search?${r.toString()}`,{cache:"no-store"}),n=await a.json().catch(()=>null);if(t)return;if(!a.ok){let e=n&&"object"==typeof n&&"error"in n?String(n.error):"Search failed";w([]),N(0),A(e);return}w(Array.isArray(n.sections)?n.sections:[]),N("number"==typeof n.total?n.total:0),A(null),L(new Set)}catch(e){if(t)return;console.error("Project search failed",e),w([]),N(0),A("Search failed")}finally{t||C(!1)}})()},220);return()=>{t=!0,window.clearTimeout(r)}},[I,e]);let F=_&&(I.length>0||S||null!==T),H=R.length>0?R[Math.max(0,Math.min(P,R.length-1))]:null,z=(0,r.useCallback)(e=>{L(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},[]);return(0,t.jsxs)("div",{ref:o,className:"relative w-full max-w-xl",children:[(0,t.jsxs)("div",{className:"group/search relative",children:[(0,t.jsx)(m.Search,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--app-shell-soft-text)] transition-colors group-focus-within/search:text-[var(--primary)]",strokeWidth:1.8}),(0,t.jsx)("input",{ref:l,type:"text",value:b,onFocus:()=>E(!0),onChange:e=>{y(e.target.value),E(!0)},onKeyDown:e=>{if("ArrowDown"===e.key&&R.length>0){e.preventDefault(),M(e=>(e+1)%R.length);return}if("ArrowUp"===e.key&&R.length>0){e.preventDefault(),M(e=>(e-1+R.length)%R.length);return}if("Enter"===e.key&&H){e.preventDefault(),W(H);return}"Escape"===e.key&&(I?U():(E(!1),l.current?.blur()))},placeholder:"Search objectives, tickets, tasks, teams, agents, and chat…",className:"h-8 w-full rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] pl-9 pr-16 text-xs font-medium text-[var(--foreground)] outline-none placeholder:text-[var(--app-shell-soft-text)] transition-all hover:border-[var(--app-shell-border-strong)] focus:border-[var(--primary)] focus:ring-2 focus:ring-[var(--ring)]"}),I?(0,t.jsxs)("div",{className:"absolute right-2 top-1/2 flex -translate-y-1/2 items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:S?"…":k}),(0,t.jsx)("button",{type:"button",onClick:()=>{U(),l.current?.focus()},className:"inline-flex h-5 w-5 items-center justify-center rounded-md text-[var(--app-shell-soft-text)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]","aria-label":"Clear search",children:(0,t.jsx)(v.X,{className:"h-3.5 w-3.5"})})]}):n?null:(0,t.jsx)("kbd",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-1.5 py-0.5 font-sans text-[10px] font-bold text-[var(--app-shell-soft-text)]",children:"⌘K"})]}),F?(0,t.jsx)("div",{className:"absolute left-0 right-0 top-[calc(100%+0.5rem)] z-50 overflow-hidden rounded-2xl border border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] shadow-2xl shadow-black/20",children:(0,t.jsxs)("div",{className:"max-h-[28rem] overflow-y-auto p-2",children:[I.length<2?(0,t.jsx)("div",{className:"rounded-xl px-3 py-4 text-sm text-[var(--muted-foreground)]",children:"Keep typing to search across project entities."}):null,S?(0,t.jsxs)("div",{className:"flex items-center gap-2 rounded-xl px-3 py-4 text-sm text-[var(--muted-foreground)]",children:[(0,t.jsx)(p.Loader2,{className:"h-4 w-4 animate-spin"}),"Searching this project…"]}):null,!S&&T?(0,t.jsx)("div",{className:"rounded-xl px-3 py-4 text-sm text-rose-500",children:T}):null,S||T||!(I.length>=2)||0!==j.length?null:(0,t.jsx)("div",{className:"rounded-xl px-3 py-4 text-sm text-[var(--muted-foreground)]",children:"No matches in this project."}),!S&&!T&&$.map(e=>(0,t.jsxs)("div",{className:"mb-2 last:mb-0",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3 px-3 pb-1 pt-2",children:[(0,t.jsxs)("div",{className:"text-[10px] font-semibold uppercase tracking-[0.16em] text-[var(--app-shell-soft-text)]",children:[e.label,(0,t.jsx)("span",{className:"ml-1.5 text-[9px] text-[var(--muted-foreground)]",children:e.results.length})]}),e.results.length>3?(0,t.jsx)("button",{type:"button",onMouseDown:e=>e.preventDefault(),onClick:()=>z(e.id),className:"text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:O.has(e.id)?"Collapse":`Show ${e.hiddenCount} more`}):null]}),(0,t.jsx)("div",{className:"space-y-1",children:e.visibleResults.map(e=>{let r,a,n=`${e.kind}:${e.id}`,s=D.findIndex(e=>e===n),i=s===P,o=function(e){switch(e){case"objective":return f.Target;case"linear_issue":return u.FileText;case"scheduled_task":return d;case"team":return x.Users;case"agent":return c.Bot;case"chat_thread":case"chat_message":return h.MessageSquare;default:return m.Search}}(e.kind);return(0,t.jsxs)("button",{type:"button",onMouseDown:e=>e.preventDefault(),onMouseEnter:()=>M(s),onClick:()=>W(e),className:`flex w-full items-start gap-3 rounded-xl px-3 py-2.5 text-left transition-colors ${i?"bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,t.jsx)("span",{className:"mt-0.5 inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)]",children:(0,t.jsx)(o,{className:"h-3.5 w-3.5",strokeWidth:1.75})}),(0,t.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,t.jsx)("span",{className:"truncate text-sm font-medium",children:e.title}),(0,t.jsx)("span",{className:"shrink-0 rounded-full bg-[var(--app-shell-subtle)] px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-[var(--app-shell-soft-text)]",children:e.label})]}),e.context?(0,t.jsx)("span",{className:"mt-0.5 block truncate text-xs text-[var(--muted-foreground)]",children:e.context}):null,e.description?(0,t.jsx)("span",{className:"mt-1 block text-xs leading-5 text-[var(--muted-foreground)]",children:(r=e.description.split(/(<\/?mark>)/g),a=!1,r.map((e,r)=>"<mark>"===e?(a=!0,null):"</mark>"===e?(a=!1,null):e?a?(0,t.jsx)("mark",{className:"rounded bg-amber-200/80 px-0.5 text-inherit",children:e},`mark-${r}`):(0,t.jsx)("span",{children:e},`text-${r}`):null))}):null]})]},n)})})]},e.id))]})}):null]})}var y=e.i(749410),j=e.i(524123),w=e.i(969039),k=e.i(235136);let N={home:!0,threads:!0,terminal:!0,objectives:!0,objectivesIsNew:!1,tracking:!0,teams:!0,folders:!0,scheduledTasks:!0,envVars:!0};var S=e.i(481248),C=e.i(169433);let T="agx-theme";function A({children:e,params:c}){let{slug:d}=(0,r.use)(c),{isTouchLayout:u}=(0,g.useInputCapabilities)(),p=(0,a.useRouter)(),h=(0,a.usePathname)(),{projects:m,isLoading:f,createProject:x,updateProject:v,deleteProject:A,addAgent:_,removeAgent:E}=(0,j.useProjectsWithAgents)(),{threads:P,isLoading:M,isCreating:O,deletingThreadId:L,renamingThreadId:I,isRestoringActiveThread:$,createThread:R,renameThread:D,deleteThread:U}=(0,w.useThreadState)(),[W,F]=(0,r.useState)([]),[H,z]=(0,r.useState)(!1),[V,B]=(0,r.useState)(368),[J,K]=(0,r.useState)(()=>{let e=window.localStorage.getItem(T);return"dark"===e||"light"===e?e:document.documentElement.classList.contains("dark")?"dark":"light"});(0,r.useEffect)(()=>{z((0,S.loadWorkspaceSidebarVisible)()),B((0,C.loadWorkspaceWidth)()||368)},[]),(0,r.useEffect)(()=>{let e="dark"===J;document.documentElement.classList.toggle("dark",e),document.documentElement.style.colorScheme=J,window.localStorage.setItem(T,J)},[J]),(0,r.useEffect)(()=>{fetch("/api/participants").then(e=>e.json()).then(e=>F(Array.isArray(e)?e:[])).catch(()=>F([]))},[]);let q=(0,r.useMemo)(()=>m.find(e=>e.slug===d)??null,[m,d]),Z=(0,r.useMemo)(()=>{let e=h.match(/\/projects\/[^/]+\/thread\/([^/]+)/);return e?.[1]?decodeURIComponent(e[1]):q?.thread_ids[0]??null},[q?.thread_ids,h]),G=(0,r.useMemo)(()=>h.includes("/linear")?"linear":h.includes("/automations")?"automations":h.includes("/thread/")?"thread":h.includes("/objectives")?"objectives":h.includes("/teams")?"teams":h.includes("/folders")?"folders":h.includes("/env-vars")?"env-vars":h.includes("/terminal")?"terminal":"home",[h]),{show:X,trackerConnections:Y}=function(e){let{connections:t,loading:a}=(0,k.useTrackerConnections)(e?.id??null);return(0,r.useMemo)(()=>{let e=t.map(e=>({type:e.type,connected:e.connected,connectedAt:e.connectedAt}));return a?{stage:"stage1",loading:!0,show:{...N},trackerConnections:[]}:{stage:"stage4",loading:!1,show:{...N},trackerConnections:e}},[a,t])}(q),Q=()=>{let e=!H;z(e),(0,S.persistWorkspaceSidebarVisible)(e)},ee=(0,r.useCallback)(e=>{B(e),(0,C.persistWorkspaceWidth)(e)},[]);return f?(0,t.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"})}):q?(0,t.jsxs)("div",{className:"flex h-dvh min-h-0 overflow-hidden bg-[var(--background)]",children:[(0,t.jsx)(y.WorkspaceSidebar,{threads:P,participants:W,activeThreadId:Z,isLoading:M,isRestoringActiveThread:$,isCreating:O,deletingThreadId:L,renamingThreadId:I,onSelectThread:e=>p.push(`/projects/${d}/thread/${encodeURIComponent(e)}`),onCreateThread:R,onRenameThread:D,onDeleteThread:U,visible:H,onToggle:Q,width:V,onWidthChange:ee,projects:m,onCreateProject:x,onUpdateProject:v,onDeleteProject:A,onAddAgentToProject:_,onRemoveAgentFromProject:E,activeProjectId:q.id,activeProjectView:G,stageShow:X,trackerConnections:Y,onUpdateParticipant:async e=>{let t=await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error("Failed to update agent");let r=await t.json();F(e=>e.map(e=>e.id===r.id?r:e))},onSelectProject:e=>{let t=m.find(t=>t.id===e);t&&p.push(`/projects/${t.slug}`)}}),(0,t.jsxs)("div",{className:"flex-1 min-h-0 flex flex-col min-w-0 h-full overflow-hidden",children:[(0,t.jsxs)("div",{className:"desktop-titlebar flex items-center px-4 py-2 border-b border-[var(--app-shell-border)] bg-[var(--background)] shrink-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0 flex-shrink-0",children:[!H&&(0,t.jsx)("button",{type:"button",onClick:Q,className:"inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--muted-foreground)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",title:"Show sidebar","aria-label":"Show sidebar",children:(0,t.jsx)(s.PanelLeftOpen,{className:"h-4 w-4"})}),h!==`/projects/${d}`&&(0,t.jsx)("button",{type:"button",onClick:()=>p.back(),className:"p-1 -ml-1 rounded-lg text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] transition-colors",children:(0,t.jsx)(n.ArrowLeft,{className:"w-4 h-4"})}),(0,t.jsx)("button",{type:"button",onClick:()=>p.push(`/projects/${d}`),className:`text-xs transition-colors ${"home"===G?"text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`,children:q.name}),"home"!==G&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"\\"}),(0,t.jsx)("button",{type:"button",onClick:()=>p.push(`/projects/${d}/${"thread"===G?"":G}`),className:"text-xs text-[var(--foreground)] hover:text-[var(--muted-foreground)] transition-colors",children:{objectives:"Objectives",teams:"Teams",folders:"Folders","env-vars":"Environment Variables",linear:"Tasks",automations:"Scheduled Jobs",thread:"Chat",terminal:"Terminal"}[G]??G}),(0,t.jsx)("span",{id:"topbar-breadcrumb",className:"contents"})]})]}),(0,t.jsx)("div",{className:"flex-1 flex justify-center min-w-0 px-4",children:(0,t.jsx)(b,{projectId:q.id})}),(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[(0,t.jsx)(l.StatusIndicator,{}),(0,t.jsx)("button",{type:"button",onClick:()=>K(e=>"dark"===e?"light":"dark"),"aria-label":"dark"===J?"Switch to light theme":"Switch to dark theme",title:"dark"===J?"Switch to light theme":"Switch to dark theme",className:`inline-flex items-center justify-center rounded-lg text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] ${u?"h-9 w-9":"h-7 w-7"}`,children:"dark"===J?(0,t.jsx)(i.Sun,{className:u?"h-4 w-4":"h-3.5 w-3.5"}):(0,t.jsx)(o.Moon,{className:u?"h-4 w-4":"h-3.5 w-3.5"})})]})]}),e]})]}):(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center h-full",children:[(0,t.jsx)("h2",{className:"text-xl font-bold mb-2",children:"Project Not Found"}),(0,t.jsxs)("p",{className:"text-[var(--muted-foreground)] mb-4",children:["The project “",d,"” does not exist or you do not have access to it."]}),(0,t.jsx)("button",{onClick:()=>p.push("/projects"),className:"px-4 py-2 bg-[var(--primary)] text-white rounded-lg hover:bg-[var(--primary-dark)] transition-colors",children:"Back to Projects"})]})}function _({children:e,params:a}){return(0,t.jsx)(r.Suspense,{fallback:(0,t.jsx)("div",{className:"flex h-full items-center justify-center text-sm text-[var(--muted-foreground)]",children:"Loading project…"}),children:(0,t.jsx)(A,{params:a,children:e})})}e.s(["default",()=>_],563975)}]);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,640481,e=>{"use strict";let t=(0,e.i(363732).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",()=>t],640481)},367859,e=>{"use strict";let t=(0,e.i(363732).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",()=>t],367859)},741746,e=>{"use strict";let t=(0,e.i(363732).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["AlertCircle",()=>t],741746)},437307,e=>{"use strict";let t=(0,e.i(363732).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",()=>t],437307)},417442,e=>{"use strict";let t=(0,e.i(363732).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);e.s(["ArrowRight",()=>t],417442)},558201,e=>{"use strict";let t=(0,e.i(363732).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],558201)},794731,e=>{"use strict";let t=(0,e.i(363732).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",()=>t],794731)},203096,e=>{"use strict";let t=(0,e.i(363732).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",()=>t],203096)},580873,e=>{"use strict";let t=(0,e.i(363732).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);e.s(["Clock",()=>t],580873)},990933,e=>{"use strict";function t(e){if("string"==typeof e)return e.trim()||void 0}function r(e,r){let a=new Set,s=new Set;!function e(t,r){if(t)for(let a of t)r(a),e(a.content,r)}(e.content,e=>{if("participantMention"!==e.type)return;let t=e.attrs??{},r="string"==typeof t.id?t.id.trim():"",n="string"==typeof t.kind?t.kind:"agent";r&&"agent"===n&&(a.add(r),"parallel"===t.mode&&s.add(r))});let n=t(r);return{...n?{pinnedParticipantId:n}:{},mentionedParticipantIds:Array.from(a),parallelParticipantIds:Array.from(s)}}function a(e,r){let a=function(e){if(!Array.isArray(e))return[];let t=new Set,r=[];for(let a of e){if("string"!=typeof a)continue;let e=a.trim();!e||t.has(e)||(t.add(e),r.push(e))}return r}(e),s=t(r);return s&&a.includes(s)?[s,...a.filter(e=>e!==s)]:a}e.s(["extractComposerRouting",()=>r,"orderParticipantIds",()=>a])},66386,e=>{"use strict";var t=e.i(935851),r=e.i(506420);function a(e){return"string"!=typeof e?null:e.trim()||null}function s(e,t){return(e.get(t)?.trim()??"")||null}function n(){let e=(0,r.useRouter)(),n=(0,r.usePathname)(),l=(0,r.useSearchParams)(),i=(0,t.useCallback)(e=>s(l,e),[l]),c=(0,t.useCallback)((e,t)=>(function(e,t,r){let n=function(e,t){let r={...t},n=e=>Object.prototype.hasOwnProperty.call(t,e);if(n("issue")&&!n("run")){let n=s(e,"issue");a(t.issue)!==n&&(r.run=null)}if(n("job")&&!n("run")){let n=s(e,"job");a(t.job)!==n&&(r.run=null)}if(n("open")&&!n("message")){let n=s(e,"open");a(t.open)!==n&&(r.message=null)}if(n("group")&&!n("issue")){let n=s(e,"group");a(t.group)!==n&&(r.issue=null,r.run=null)}if(n("issue")&&!n("group")){let n=s(e,"issue");a(t.issue)!==n&&(r.group=null)}return r}(t,r),l=new URLSearchParams(t.toString());for(let[e,t]of Object.entries(n)){let r=a(t);r?l.set(e,r):l.delete(e)}let i=l.toString();return i?`${e}?${i}`:e})(t??n,l,e),[n,l]),o=(0,t.useCallback)((t,r)=>{e.push(c(t,r))},[c,e]),d=(0,t.useCallback)((t,r)=>{e.replace(c(t,r))},[c,e]);return{pathname:n,searchParams:l,getSelection:i,buildHref:c,pushSelection:o,replaceSelection:d}}e.s(["useUrlSelection",()=>n])},945028,490011,352687,e=>{"use strict";var t=e.i(935851);function r(e){return`threadId=${encodeURIComponent(e)}`}function a(e){return`workspaceId=${encodeURIComponent(e)}`}function s(e){let[s,n]=(0,t.useState)([]),[l,i]=(0,t.useState)([]),[c,o]=(0,t.useState)([]),d=(0,t.useRef)(e),u=(0,t.useRef)(e);d.current=e,u.current!==e&&(u.current=e,n([]),i([]),o([]));let p=(0,t.useCallback)(async e=>{let t=e?.trim()||d.current?.trim();if(!t){n([]),i([]);return}let s=r(t);try{let[e,r]=await Promise.all([fetch(`/api/history?${s}`),fetch(`/api/logs?${a(t)}`)]);if(d.current!==t)return;e.ok&&n(await e.json()),r.ok&&i(await r.json())}catch{}},[]),m=(0,t.useCallback)(async e=>{let t=e?.trim()||d.current?.trim();if(!t){n([]),i([]);return}let s=r(t);await Promise.all([fetch(`/api/history?${s}`,{method:"DELETE"}),fetch(`/api/logs?${a(t)}`,{method:"DELETE"})]),d.current===t&&(n([]),i([]))},[]),h=(0,t.useCallback)(async(e,t=10,r,a,s,l,i,c,u,p)=>{let m=r?.trim()||d.current?.trim();if(!m)return;let h=Date.now(),f=crypto.randomUUID(),x={id:f,role:"user",participantId:null,content:e,timestamp:h,rootMessageId:a||null,parentMessageId:a||null,depth:+!!a,...l&&l.length>0?{attachments:l}:{}};n(e=>[...e,x]);try{let r=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:m,prompt:e,promptPrefix:u||void 0,maxRounds:t,userMessageId:f,rootMessageId:a||void 0,attachmentIds:s?.length?s:void 0,activeParticipantIds:Array.isArray(i)?i:void 0,projectSlug:c?.trim()||void 0,routing:p})}),l=await r.json().catch(e=>(console.warn("[useGroupChat] failed to parse run response:",e),null));r.ok&&l?.chatRunId?o(e=>[{chatRunId:l.chatRunId,threadId:m,rootMessageId:a||f,status:"queued",optimistic:!0,enqueuedAt:Date.now()},...e.filter(e=>e.chatRunId!==l.chatRunId)]):r.ok||(console.error(`[useGroupChat] POST /api/chat failed (${r.status}):`,l?.error||r.statusText),n(e=>e.map(e=>e.id===f?{...e,sendFailed:!0}:e)))}catch(e){console.error("[useGroupChat] network error sending message:",e),n(e=>e.map(e=>e.id===f?{...e,sendFailed:!0}:e))}return f},[]),f=(0,t.useCallback)(async()=>{let e=d.current?.trim();if(e)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]),x=(0,t.useCallback)(async e=>{let t=d.current?.trim();if(t)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(t)}&threadId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]);return{messages:s,setMessages:n,logs:l,sendMessage:h,loadHistory:p,clearHistory:m,clearLogs:(0,t.useCallback)(async e=>{let t=e?.trim()||d.current?.trim();t?(await fetch(`/api/logs?${a(t)}`,{method:"DELETE"}).catch(e=>console.warn("[useGroupChat] delete logs failed:",e)),d.current===t&&i([])):i([])},[]),chatRuns:c,setChatRuns:o,stop:f,stopThread:x}}e.s(["useGroupChat",()=>s],945028);let n=new Set(["spawning","running"]);function l(e,r){let a=r?.intervalMs??1500,s=r?.idleIntervalMs??1e4,[l,i]=(0,t.useState)(new Set),[c,o]=(0,t.useState)([]),[d,u]=(0,t.useState)({}),[p,m]=(0,t.useState)([]),h=(0,t.useRef)(e);h.current=e,(0,t.useRef)(r?.messages??[]).current=r?.messages??[];let f=(0,t.useRef)(r?.setMessages);f.current=r?.setMessages;let x=(0,t.useRef)(0),g=(0,t.useRef)(new Map),y=(0,t.useRef)(new Map);(0,t.useEffect)(()=>{let e=r?.messages??[];if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>x.current&&(x.current=t)}},[r?.messages]),(0,t.useEffect)(()=>()=>{for(let e of g.current.values())e.close();g.current.clear()},[]);let k=(0,t.useCallback)(async()=>{let e=h.current;if(!e){i(new Set),o([]),u({}),m([]);return}let t=null;if(e.threadId?t=`/api/processes?threadId=${encodeURIComponent(e.threadId)}`:e.workspaceId&&(t=`/api/processes?workspaceId=${encodeURIComponent(e.workspaceId)}`),!t){i(new Set),o([]),u({}),m([]);return}try{let a=e.workspaceId||e.threadId,s=a?`/api/history?threadId=${encodeURIComponent(a)}&since=${x.current}`:null,l=a?`/api/chat-runs?threadId=${encodeURIComponent(a)}&limit=20`:null,c=[fetch(t)];s&&c.push(fetch(s)),l&&c.push(fetch(l));let[d,u,p]=await Promise.all(c),g=h.current;if(g?.threadId!==e.threadId||g?.workspaceId!==e.workspaceId)return;if(d.ok){let e=await d.json();o(e);let t=new Set(e.filter(e=>n.has(e.state)).map(e=>e.agentId));i(t)}if(p?.ok){var r;let e=(r=await p.json(),Array.isArray(r)?r.map(e=>{if(!e||"object"!=typeof e)return null;let t="string"==typeof e.chatRunId?e.chatRunId:"string"==typeof e.id?e.id:null,r="string"==typeof e.threadId?e.threadId:null,a="string"==typeof e.status?e.status:null,s="string"==typeof e.rootMessageId?e.rootMessageId:(e.rootMessageId,null);return t&&r&&a&&("queued"===a||"running"===a||"awaiting_user"===a||"blocked"===a||"completed"===a||"failed"===a||"cancelled"===a)?{chatRunId:t,threadId:r,rootMessageId:s,status:a,optimistic:!1}:null}).filter(e=>!!e):[]);m(e)}if(u?.ok&&f.current){let e=await u.json();if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>x.current&&(x.current=t),f.current(t=>{let r=new Set(t.map(e=>e.id)),a=e.filter(e=>!r.has(e.id)),s=t.map(t=>e.find(e=>e.id===t.id)??t);return 0===a.length?s:[...s,...a].sort((e,t)=>e.timestamp-t.timestamp)})}}}catch{}},[]);(0,t.useEffect)(()=>{let e=p.filter(e=>"queued"===e.status||"running"===e.status),t=new Set(e.map(e=>e.chatRunId));for(let[e,r]of g.current.entries())t.has(e)||(r.close(),g.current.delete(e),y.current.delete(e));for(let t of e){if(g.current.has(t.chatRunId))continue;let e=new EventSource(`/api/chat-runs/${encodeURIComponent(t.chatRunId)}/events`);g.current.set(t.chatRunId,e);let r=new Map;y.current.set(t.chatRunId,r);let a=new Set;e.addEventListener("chat",s=>{let n;try{n=JSON.parse(s.data)}catch{return}switch(n.type){case"participant-start":case"participant-thinking":a.add(n.participantId),r.has(n.participantId)||r.set(n.participantId,{text:"",thoughts:[]}),u(e=>e[n.participantId]?e:{...e,[n.participantId]:{content:"",rootMessageId:t.rootMessageId??null}});break;case"text-delta":{r.has(n.participantId)||r.set(n.participantId,{text:"",thoughts:[]});let e=r.get(n.participantId);e&&(e.text+=n.delta,u(r=>{let a={...r},s=t.rootMessageId??null;return a[n.participantId]={content:e.text,rootMessageId:s},a}));break}case"participant-thought":{let e=r.get(n.participantId);e&&(e.thoughts.push(n.content),u(t=>{let r=t[n.participantId];return r?{...t,[n.participantId]:{...r,thoughts:[...e.thoughts]}}:t}));break}case"participant-end":a.delete(n.participantId),k().then(()=>{u(e=>{let t={...e};return delete t[n.participantId],t})});break;case"participant-error":a.delete(n.participantId),k().then(()=>{u(e=>{let t={...e};return delete t[n.participantId],t})});break;case"done":e.close(),g.current.delete(t.chatRunId),y.current.delete(t.chatRunId)}}),e.onerror=()=>{e.close(),g.current.delete(t.chatRunId),y.current.delete(t.chatRunId)}}},[p]);let w=e?.threadId||e?.workspaceId||null,v=p.some(e=>"queued"===e.status||"running"===e.status),j=c.some(e=>n.has(e.state)),b=v||j?a:s;return(0,t.useEffect)(()=>{if(!w){i(new Set),o([]),u({}),m([]);return}k();let e=setInterval(k,b);return()=>clearInterval(e)},[w,b,k]),{activeAgents:l,processes:c,streaming:d,chatRuns:p,poll:k}}e.s(["useProcessPolling",()=>l],490011);var i=e.i(762281);function c({isOpen:e,title:r,message:a,preview:s,confirmLabel:n="Confirm",cancelLabel:l="Cancel",variant:c="default",onConfirm:o,onCancel:d}){let u=(0,t.useRef)(null),p=(0,t.useRef)(null);(0,t.useEffect)(()=>{if(e){let e=setTimeout(()=>u.current?.focus(),50);return()=>clearTimeout(e)}},[e]);let m=(0,t.useCallback)(e=>{"Escape"===e.key&&d()},[d]);if(!e)return null;let h="danger"===c;return(0,i.jsxs)("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/50 backdrop-blur-md",style:{animation:"confirm-overlay-in 200ms ease-out"},onClick:e=>e.target===e.currentTarget&&d(),onKeyDown:m,children:[(0,i.jsxs)("div",{ref:p,className:"w-full max-w-md mx-4 bg-[var(--card-bg)] rounded-2xl border border-[var(--card-border)] shadow-2xl overflow-hidden",style:{animation:"confirm-dialog-in 250ms cubic-bezier(0.34, 1.56, 0.64, 1)"},children:[(0,i.jsx)("div",{className:"px-6 pt-6 pb-3",children:(0,i.jsxs)("div",{className:"flex items-start gap-4",children:[h&&(0,i.jsx)("div",{className:"flex-shrink-0 w-11 h-11 rounded-full bg-red-500/10 border border-red-500/20 flex items-center justify-center",children:(0,i.jsx)("svg",{className:"w-5 h-5 text-red-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:(0,i.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0"})})}),(0,i.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,i.jsx)("h3",{className:"text-[15px] font-semibold text-[var(--foreground)]",children:r}),(0,i.jsx)("p",{className:"mt-1 text-[13px] text-[var(--muted-foreground)] leading-relaxed",children:a})]})]})}),s&&(0,i.jsx)("div",{className:"mx-6 mb-3 px-3 py-2.5 rounded-lg bg-[var(--muted)]/40 border border-[var(--card-border)]",children:(0,i.jsxs)("p",{className:"text-[12px] text-[var(--muted-foreground)] line-clamp-3 leading-relaxed italic",children:["“",s,"”"]})}),(0,i.jsx)("div",{className:"mx-6 border-t border-[var(--card-border)]"}),(0,i.jsxs)("div",{className:"px-6 py-4 flex items-center justify-end gap-2.5",children:[(0,i.jsx)("button",{onClick:d,className:"px-4 py-2 rounded-lg text-[13px] font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)]/60 transition-all duration-150",children:l}),(0,i.jsx)("button",{ref:u,onClick:o,className:`px-4 py-2 rounded-lg text-[13px] font-medium transition-all duration-150 ${h?"bg-red-500 text-white hover:bg-red-600 active:scale-[0.97]":"btn-primary active:scale-[0.97]"}`,children:n})]})]}),(0,i.jsx)("style",{children:`
|
|
2
|
+
@keyframes confirm-overlay-in {
|
|
3
|
+
from { opacity: 0; }
|
|
4
|
+
to { opacity: 1; }
|
|
5
|
+
}
|
|
6
|
+
@keyframes confirm-dialog-in {
|
|
7
|
+
from {
|
|
8
|
+
opacity: 0;
|
|
9
|
+
transform: scale(0.9) translateY(10px);
|
|
10
|
+
}
|
|
11
|
+
to {
|
|
12
|
+
opacity: 1;
|
|
13
|
+
transform: scale(1) translateY(0);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
`})]})}e.s(["default",()=>c],352687)},982141,e=>{"use strict";let t="agx:lastRun",r="agx:lastSession";function a(){return void 0!==window.localStorage}function s(e){if(!a())return{};try{let t=window.localStorage.getItem(e);if(!t)return{};return JSON.parse(t)}catch{return{}}}function n(e,t){if(a())try{window.localStorage.setItem(e,JSON.stringify(t))}catch{}}function l(e){return s(t)[e]??null}function i(e,r){let a=s(t);a[e]=r,n(t,a)}function c(e){return s(r)[e]??null}function o(e,t){let a=s(r);a[e]=t,n(r,a)}e.s(["loadLastRunForIssue",()=>l,"loadLastSessionForEntity",()=>c,"persistLastRunForIssue",()=>i,"persistLastSessionForEntity",()=>o])},459073,e=>{"use strict";let t=(0,e.i(363732).default)("folder-plus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);e.s(["FolderPlus",()=>t],459073)},878001,507193,493141,e=>{"use strict";var t=e.i(363732);let r=(0,t.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);e.s(["ArrowDown",()=>r],878001);let a=(0,t.default)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);e.s(["ArrowUp",()=>a],507193);let s=(0,t.default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);e.s(["ChevronLeft",()=>s],493141)},245110,e=>{"use strict";let t=(0,e.i(363732).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],245110)},693646,e=>{"use strict";let t=(0,e.i(363732).default)("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);e.s(["Save",()=>t],693646)},807087,e=>{"use strict";let t=(0,e.i(363732).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["CheckCircle2",()=>t],807087)},287472,e=>{"use strict";var t=e.i(935851);let r=new Map;function a(e){let t=r.get(e);return t?Date.now()-t.ts>3e5?(r.delete(e),null):t:null}function s(e){r.delete(e)}function n(e,n){let[l,i]=(0,t.useState)(!1),[c,o]=(0,t.useState)(!0),[d,u]=(0,t.useState)(null),[p,m]=(0,t.useState)({claude:!1,codex:!1,gemini:!1}),[h,f]=(0,t.useState)({}),x=(0,t.useRef)(null),g=`/api/trackers/${encodeURIComponent(e)}`,y=`${e}:${n}`,k=(0,t.useCallback)(async()=>{try{let e=await fetch(`${g}/mcp-setup`),t=await e.json();f(t.configured??{})}catch{}},[g]),w=(0,t.useCallback)(async()=>{if(!n)return i(!1),!1;let e=a(y);if(e)return i(e.connected),u(e.user),m(e.clis),f(e.mcpConfigured),o(!1),e.connected;try{var t;let e=`?projectId=${encodeURIComponent(n)}`,[a,s]=await Promise.all([fetch(`${g}/status${e}`),fetch(`${g}/mcp-setup`)]),l=await a.json(),c=await s.json(),o=l.clis??{claude:!1,codex:!1,gemini:!1},d=c.configured??{},p=l.user??null;return i(l.connected),u(p),m(o),f(d),t={connected:l.connected,user:p,clis:o,mcpConfigured:d},r.set(y,{...t,ts:Date.now()}),l.connected}catch{return i(!1),!1}finally{o(!1)}},[n,g,y]);(0,t.useEffect)(()=>{let e=a(y);e?(i(e.connected),u(e.user),m(e.clis),f(e.mcpConfigured),o(!1)):(o(!0),i(!1),u(null))},[e,n,y]),(0,t.useEffect)(()=>(w(),()=>{x.current&&clearInterval(x.current)}),[w]);let v=(0,t.useCallback)(()=>{n&&(s(y),window.open(`${g}/auth?projectId=${encodeURIComponent(n)}`,"_blank","noopener"),x.current&&clearInterval(x.current),x.current=setInterval(async()=>{s(y),await w()&&x.current&&(clearInterval(x.current),x.current=null)},2e3))},[n,g,y,w]),j=(0,t.useCallback)(async e=>{if(!n)return{ok:!1,error:"Missing projectId"};try{let t=await fetch(`${g}/token`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:n,accessToken:e})});if(!t.ok){let e=await t.json().catch(()=>({}));return{ok:!1,error:e.error||"Failed to save token"}}return s(y),await w(),{ok:!0}}catch{return{ok:!1,error:"Failed to connect"}}},[n,g,y,w]);return{connected:l,loading:c,user:d,clis:p,mcpConfigured:h,connect:v,connectWithKey:j,disconnect:(0,t.useCallback)(async()=>{n&&(s(y),await fetch(`${g}/status?projectId=${encodeURIComponent(n)}`,{method:"DELETE"}),i(!1),u(null))},[n,g,y]),configureMcp:(0,t.useCallback)(async e=>{try{let t=await fetch(`${g}/mcp-setup`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cli:e})});if(!t.ok){let e=await t.json().catch(()=>({}));return{ok:!1,error:e.error||"Failed to configure MCP"}}return await k(),{ok:!0}}catch{return{ok:!1,error:"Failed to configure MCP"}}},[g,k]),refresh:w}}e.s(["useTrackerConnection",()=>n])},637790,166735,e=>{"use strict";var t=e.i(363732);let r=(0,t.default)("key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]]);e.s(["Key",()=>r],637790);let a=(0,t.default)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);e.s(["Globe",()=>a],166735)},711190,e=>{"use strict";let t=(0,e.i(363732).default)("log-out",[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]]);e.s(["LogOut",()=>t],711190)},202192,e=>{"use strict";var t=e.i(762281),r=e.i(935851),a=e.i(807087),s=e.i(637790),n=e.i(166735),l=e.i(906724),i=e.i(741746),c=e.i(558201),o=e.i(711190),d=e.i(681619);let u={claude:{name:"Claude Code",configPath:"~/.claude/settings.json"},codex:{name:"Codex CLI",configPath:"~/.codex/config.toml"},gemini:{name:"Gemini CLI",configPath:"~/.gemini/settings.json"}};function p({trackerType:e,projectId:p,connected:m,onConnect:h,onConnectWithKey:f,onDisconnect:x,loading:g=!1,clis:y,mcpConfigured:k,onConfigureMcp:w}){let[v,j]=r.default.useState(""),[b,I]=r.default.useState(null),[C,N]=r.default.useState(!1),[S,M]=r.default.useState(!1),[R,P]=r.default.useState(null),[$,L]=r.default.useState({}),E=async e=>{if(!w)return;P(e),L(t=>({...t,[e]:""}));let t=await w(e);t.ok||L(r=>({...r,[e]:t.error??"Failed to install MCP"})),P(null)},T=y?["claude","codex","gemini"].filter(e=>y[e]):["claude"];if(g)return(0,t.jsx)("div",{className:"flex items-center justify-center p-12",children:(0,t.jsx)(l.Loader2,{className:"animate-spin h-8 w-8 text-muted-foreground"})});if(m)return(0,t.jsxs)("div",{className:"p-8 flex flex-col items-center gap-6",children:[(0,t.jsxs)("div",{className:"w-full max-w-md p-8 border border-green-500/20 bg-green-500/5 rounded-2xl flex flex-col items-center gap-4 text-center",children:[(0,t.jsx)("div",{className:"h-16 w-16 rounded-full bg-green-500/10 flex items-center justify-center text-green-600 shadow-inner",children:(0,t.jsx)(a.CheckCircle2,{className:"h-8 w-8"})}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("h3",{className:"text-xl font-bold text-foreground capitalize",children:[e," Connected"]}),(0,t.jsxs)("p",{className:"text-sm text-muted-foreground leading-relaxed",children:["Your ",e," workspace is successfully connected. The agent can now sync issues and manage your backlog."]})]}),(0,t.jsxs)("div",{className:"mt-2 px-4 py-1.5 rounded-full bg-background border text-xs font-medium text-muted-foreground flex items-center gap-2",children:[(0,t.jsx)("div",{className:"h-1.5 w-1.5 rounded-full bg-green-500 animate-pulse"}),"Active Connection"]}),x&&(0,t.jsxs)("button",{onClick:x,className:"flex items-center gap-1.5 text-xs text-muted-foreground hover:text-destructive transition-colors mt-1",children:[(0,t.jsx)(o.LogOut,{className:"h-3.5 w-3.5"}),"Disconnect"]})]}),T.length>0&&(0,t.jsx)("div",{className:"w-full max-w-md",children:(0,t.jsxs)("div",{className:"border rounded-xl p-5 flex flex-col gap-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(c.Terminal,{className:"h-4 w-4 text-muted-foreground"}),(0,t.jsx)("span",{className:"text-sm font-medium",children:"MCP Server"})]}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground leading-relaxed -mt-2",children:["Install the ",e," MCP server so agents can access ",e," directly."]}),T.map(e=>{let r=u[e],s=k?.[e]??!1,n=R===e,c=$[e];return(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-foreground",children:r.name}),s?(0,t.jsxs)("span",{className:"text-xs font-medium text-green-600 flex items-center gap-1",children:[(0,t.jsx)(a.CheckCircle2,{className:"h-3.5 w-3.5"}),"Installed"]}):(0,t.jsx)("button",{onClick:()=>E(e),disabled:n||!w,className:"flex items-center gap-1.5 px-3 py-1 bg-secondary text-secondary-foreground rounded-md text-xs font-semibold hover:bg-secondary/90 disabled:opacity-50 transition-all active:scale-[0.98]",children:n?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.Loader2,{className:"h-3 w-3 animate-spin"}),"Installing…"]}):(0,t.jsx)(t.Fragment,{children:"Install"})})]}),s&&(0,t.jsxs)("p",{className:"text-[10px] text-muted-foreground",children:["Configured in ",(0,t.jsx)("code",{className:"font-mono",children:r.configPath})]}),c&&(0,t.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-destructive bg-destructive/10 p-2 rounded-md",children:[(0,t.jsx)(i.AlertCircle,{className:"h-3.5 w-3.5 shrink-0"}),c]})]},e)})]})})]});let A=async()=>{if(v.trim()){M(!0),I(null);try{let e=await f(v.trim());e.ok?(j(""),N(!1)):I(e.error??"Failed to connect")}catch(e){I("An unexpected error occurred")}finally{M(!1)}}};return(0,t.jsxs)("div",{className:"flex flex-col items-center gap-6 p-8",children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(d.TrackerIcon,{trackerType:e,className:"h-16 w-16"}),(0,t.jsx)("div",{className:"absolute -bottom-1 -right-1 h-6 w-6 rounded-full bg-background border flex items-center justify-center shadow-sm",children:(0,t.jsx)(n.Globe,{className:"h-3 w-3 text-muted-foreground"})})]}),(0,t.jsxs)("div",{className:"text-center space-y-2",children:[(0,t.jsxs)("h3",{className:"text-lg font-semibold capitalize",children:["Connect to ",e]}),(0,t.jsxs)("p",{className:"text-sm text-muted-foreground text-center max-w-sm leading-relaxed",children:["Link your ",e," account to import issues, track progress, and automate your workflow."]})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-3 w-full max-w-xs pt-2",children:[(0,t.jsxs)("button",{onClick:h,className:"flex items-center justify-center gap-2 w-full px-4 py-2.5 bg-primary text-primary-foreground rounded-lg text-sm font-semibold hover:bg-primary/90 transition-all active:scale-[0.98] shadow-sm",children:[(0,t.jsx)(n.Globe,{className:"h-4 w-4"}),"Connect with OAuth"]}),(0,t.jsxs)("button",{onClick:()=>{N(!C),I(null)},className:"flex items-center justify-center gap-2 w-full px-4 py-2 text-sm text-muted-foreground hover:text-foreground transition-colors font-medium",children:[(0,t.jsx)(s.Key,{className:"h-3.5 w-3.5"}),C?"Use OAuth instead":"Connect with API key"]}),(0,t.jsx)("div",{className:`grid transition-all duration-300 ease-in-out ${C?"grid-rows-[1fr] opacity-100":"grid-rows-[0fr] opacity-0 pointer-events-none"}`,children:(0,t.jsx)("div",{className:"overflow-hidden",children:(0,t.jsxs)("div",{className:"flex flex-col gap-3 pt-2",children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("input",{type:"password",value:v,onChange:e=>{j(e.target.value),b&&I(null)},placeholder:"Paste your API key here",className:`w-full px-3 py-2 border rounded-lg text-sm bg-background transition-colors focus:outline-none focus:ring-2 focus:ring-primary/20 ${b?"border-destructive":"focus:border-primary"}`,onKeyDown:e=>"Enter"===e.key&&A()}),(0,t.jsx)(s.Key,{className:"absolute right-3 top-2.5 h-4 w-4 text-muted-foreground/50"})]}),b&&(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs text-destructive bg-destructive/10 p-2 rounded-md",children:[(0,t.jsx)(i.AlertCircle,{className:"h-3.5 w-3.5 shrink-0"}),(0,t.jsx)("p",{children:b})]}),(0,t.jsx)("button",{onClick:A,disabled:S||!v.trim(),className:"flex items-center justify-center gap-2 w-full px-4 py-2 bg-secondary text-secondary-foreground rounded-lg text-sm font-semibold hover:bg-secondary/90 disabled:opacity-50 transition-all active:scale-[0.98]",children:S?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.Loader2,{className:"h-4 w-4 animate-spin"}),"Connecting..."]}):"Verify & Connect"}),(0,t.jsxs)("p",{className:"text-[10px] text-muted-foreground text-center px-2",children:["Your API key is stored securely and only used for ",e," integration."]})]})})})]})]})}e.s(["default",()=>p])},555318,e=>{"use strict";var t=e.i(762281),r=e.i(935851),a=e.i(506420),s=e.i(524123),n=e.i(235136),l=e.i(471387);function i({params:e}){let{slug:i}=(0,r.use)(e),c=(0,a.useSearchParams)(),{projects:o}=(0,s.useProjects)(),d=o.find(e=>e.slug===i),u="true"===c.get("settings"),{connections:p}=(0,n.useTrackerConnections)(d?.id??null),m=p.length>0?p[0].type:"linear";return(0,t.jsx)(l.default,{trackerType:m,projectId:d?.id,projectSlug:d?.slug??i,initialShowSettings:u})}e.s(["default",()=>i])},469612,e=>{e.v(t=>Promise.all(["static/chunks/256961ed1522219b.js"].map(t=>e.l(t))).then(()=>t(668610)))},501223,e=>{e.v(t=>Promise.all(["static/chunks/94f26a112344ab1b.css","static/chunks/5591af73db0a3aee.js","static/chunks/0876dfd6ce07abaf.js"].map(t=>e.l(t))).then(()=>t(844118)))}]);
|