@mndrk/agx 2.3.3 → 2.4.1
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 +22 -21
- 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 +24 -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 +189 -13
- 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 → ycVU7ABTMiX10ainku7bE}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{a4zqdHSrJMueXhCPqODSx → ycVU7ABTMiX10ainku7bE}/_clientMiddlewareManifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{a4zqdHSrJMueXhCPqODSx → ycVU7ABTMiX10ainku7bE}/_ssgManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/components/{linear/LinearBoardFilters.tsx → tracker/TrackerBoardFilters.tsx} +0 -0
package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_96dee4fc._.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[599086,a=>{"use strict";let b=(0,a.i(831709).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"}]]);a.s(["AlertTriangle",()=>b],599086)},319405,a=>{"use strict";let b="obra/superpowers",c="vercel/next-skills";function d(a,b,c){return c?{repo:a,skillId:b,condition:c}:{repo:a,skillId:b}}function e(a){return a.condition?{...a}:{repo:a.repo,skillId:a.skillId}}function f(a){let b={...a};return b.extraSkills&&(b.extraSkills=b.extraSkills.map(e)),b}function g(a){return{...a,agents:a.agents.map(f)}}function h(a){let b={...a,agents:a.agents.map(f)};return b.variants&&(b.variants=b.variants.map(g)),b}let i={"strategist-lead":[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"dispatching-parallel-agents"),d(b,"requesting-code-review"),d(b,"verification-before-completion")],"senior-builder":[d(b,"test-driven-development"),d(b,"systematic-debugging"),d(b,"subagent-driven-development"),d(b,"requesting-code-review"),d(b,"verification-before-completion"),d(b,"finishing-a-development-branch")],builder:[d(b,"test-driven-development"),d(b,"systematic-debugging"),d(b,"verification-before-completion"),d(b,"finishing-a-development-branch")],planner:[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"verification-before-completion")],researcher:[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"systematic-debugging"),d(b,"verification-before-completion")],reviewer:[d(b,"systematic-debugging"),d(b,"test-driven-development"),d(b,"requesting-code-review"),d(b,"verification-before-completion")]},j=["strategist-lead","senior-builder","builder","planner","researcher","reviewer"].map(a=>({id:a,skills:i[a].map(e)})),k=[d(c,"api-routes","next.js app router, route handlers, api endpoints"),d(c,"nextjs-patterns","next.js app structure, routing, layouts, data fetching"),d(c,"react-server-components","react server components, server client boundaries, next.js rendering")],l={"team-lead":{name:"Ada",role:"Team Lead",style:"balanced",skillProfileId:"strategist-lead",identity:"Own technical direction, break ambiguous work into executable plans, and keep the squad aligned on delivery."},"fullstack-engineer":{name:"Kai",role:"Senior Fullstack Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Ship features end-to-end across frontend and backend with pragmatic tradeoffs and clean boundaries.",extraSkills:k},"backend-engineer":{name:"Ravi",role:"Senior Backend Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Own backend contracts, data integrity, and safe delivery under real production constraints."},"frontend-engineer":{name:"Mira",role:"Senior Frontend Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Own product-facing UI quality, interaction design fidelity, and maintainable front-end architecture.",extraSkills:k},"data-engineer":{name:"Nia",role:"Data Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Build reliable data pipelines, schemas, and transformations with a bias toward traceability."},"ml-engineer":{name:"Luca",role:"ML Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Ship model-backed systems pragmatically, with evaluation, rollback paths, and tight production feedback."},"devops-engineer":{name:"Juno",role:"DevOps Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Own delivery automation, deployment safety, and infrastructure changes that must fail predictably."},"security-engineer":{name:"Iris",role:"Security Engineer",style:"conservative",skillProfileId:"senior-builder",identity:"Harden trust boundaries, implement secure defaults, and turn vague risk into concrete engineering requirements."},"ui-designer":{name:"Theo",role:"UI Designer",style:"specialist",skillProfileId:"builder",identity:"Refine interfaces into consistent, high-signal UI systems that are practical to build and maintain.",extraSkills:[d(c,"nextjs-patterns","next.js ui flows, routing, layouts, app router"),d(c,"react-server-components","react server components, server client boundaries, data fetching placement")]},"qa-engineer":{name:"Sana",role:"QA Engineer",style:"conservative",skillProfileId:"reviewer",identity:"Find regressions early, tighten acceptance boundaries, and force evidence before release claims."},sre:{name:"Dax",role:"Site Reliability Engineer",style:"conservative",skillProfileId:"reviewer",identity:"Guard uptime, incident readiness, and operational correctness by challenging risky assumptions early."},"pen-tester":{name:"Vega",role:"Penetration Tester",style:"specialist",skillProfileId:"reviewer",identity:"Probe the system as an adversary, find exploit paths, and make the attack surface legible to builders."},"product-manager":{name:"Sage",role:"Product Manager",style:"balanced",skillProfileId:"planner",identity:"Turn ambiguous requests into scoped bets, crisp plans, and explicit tradeoffs the team can execute."},"ux-designer":{name:"Yara",role:"UX Designer",style:"balanced",skillProfileId:"planner",identity:"Clarify user intent, reduce friction in flows, and turn product goals into coherent interaction design."},"technical-writer":{name:"Orin",role:"Technical Writer",style:"balanced",skillProfileId:"planner",identity:"Turn complex implementation detail into clear docs, rollout notes, and operational guidance."},"growth-marketer":{name:"Zed",role:"Growth Marketer",style:"balanced",skillProfileId:"strategist-lead",identity:"Design growth experiments with clear hypotheses, sequencing, and measurable outcomes."},analyst:{name:"Piper",role:"Product Analyst",style:"specialist",skillProfileId:"researcher",identity:"Ground decisions in evidence, identify gaps in the brief, and surface the signal behind user behavior."},"content-writer":{name:"Wren",role:"Content Strategist",style:"balanced",skillProfileId:"researcher",identity:"Translate product and audience insight into clear narratives, launch copy, and feedback loops."},researcher:{name:"Ezra",role:"Researcher",style:"balanced",skillProfileId:"researcher",identity:"Map fast-changing domains, synthesize evidence, and surface the governing model behind decisions."},"marketing-strategist":{name:"Finn",role:"Marketing Strategist",style:"balanced",skillProfileId:"strategist-lead",identity:"Own brand positioning, campaign strategy, and channel mix with measurable conversion targets."},copywriter:{name:"Blair",role:"Copywriter",style:"balanced",skillProfileId:"researcher",identity:"Craft clear, persuasive copy that serves both the reader and the business goal."},"support-engineer":{name:"Gwen",role:"Support Engineer",style:"balanced",skillProfileId:"builder",identity:"Diagnose customer issues fast, escalate with precision, and turn patterns into preventive fixes."},"support-lead":{name:"Eli",role:"Support Lead",style:"balanced",skillProfileId:"planner",identity:"Triage incoming issues, route to the right responder, and track resolution quality."},"devrel-engineer":{name:"Milo",role:"Developer Relations Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Build sample apps, integrations, and tooling that make the platform easy to adopt."},"community-manager":{name:"Uma",role:"Community Manager",style:"balanced",skillProfileId:"planner",identity:"Grow and engage the developer community through events, content, and feedback loops."},"ops-engineer":{name:"Nate",role:"Operations Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Automate operational workflows, reduce toil, and keep internal tooling reliable."},"project-manager":{name:"Quinn",role:"Project Manager",style:"balanced",skillProfileId:"planner",identity:"Track milestones, remove blockers, and keep cross-team delivery on schedule."},"solutions-architect":{name:"Cass",role:"Solutions Architect",style:"balanced",skillProfileId:"strategist-lead",identity:"Design system-level architectures, evaluate tradeoffs, and guide teams through technical decisions."},"mobile-engineer":{name:"Rio",role:"Senior Mobile Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Ship native and cross-platform mobile experiences with attention to performance and platform conventions."}},m=["team-lead","fullstack-engineer","backend-engineer","frontend-engineer","qa-engineer","product-manager","analyst","growth-marketer","content-writer","data-engineer","ml-engineer","ux-designer","ui-designer","devops-engineer","sre","security-engineer","pen-tester","researcher","technical-writer","marketing-strategist","copywriter","support-engineer","support-lead","devrel-engineer","community-manager","ops-engineer","project-manager","solutions-architect","mobile-engineer"].map(a=>f({id:a,...l[a]}));function n(a){return f({id:a,...l[a]})}let o=[{id:"engineering",name:"Engineering",description:"Software engineering teams across all domains — pick a specialization or build your own.",icon:"hammer",agents:[n("team-lead"),n("backend-engineer"),n("frontend-engineer"),n("fullstack-engineer"),n("qa-engineer")],variants:[{id:"general",name:"General",description:"Product engineering with leadership, builders across the stack, and quality gates.",agents:[n("team-lead"),n("backend-engineer"),n("frontend-engineer"),n("fullstack-engineer"),n("qa-engineer")]},{id:"ai",name:"AI",description:"Applied AI and ML engineering for models, evaluation, and production inference.",agents:[n("team-lead"),n("ml-engineer"),n("data-engineer"),n("researcher"),n("qa-engineer")]},{id:"data",name:"Data",description:"Data platform engineering for pipelines, warehousing, and transformation reliability.",agents:[n("team-lead"),n("data-engineer"),n("qa-engineer")]},{id:"mobile",name:"Mobile",description:"Native and cross-platform mobile engineering with fullstack support.",agents:[n("team-lead"),n("mobile-engineer"),n("fullstack-engineer"),n("qa-engineer")]},{id:"infra",name:"Infrastructure",description:"Platform reliability for delivery pipelines, runtime stability, and operational safety.",agents:[n("team-lead"),n("devops-engineer"),n("sre")]},{id:"security",name:"Security",description:"Security engineering for secure defaults, hardening, and adversarial validation.",agents:[n("team-lead"),n("security-engineer"),n("pen-tester")]},{id:"solutions",name:"Solutions",description:"Architecture and integration work across systems and customer deployments.",agents:[n("team-lead"),n("solutions-architect"),n("backend-engineer"),n("devops-engineer")]}]},{id:"product",name:"Product",description:"Discovery and prioritization for product direction, scope, and validation.",icon:"clipboard-list",agents:[n("team-lead"),n("product-manager"),n("analyst")]},{id:"design",name:"Design",description:"UX and UI pairing for flows, interaction models, and polished product surfaces.",icon:"palette",agents:[n("team-lead"),n("ux-designer"),n("ui-designer")]},{id:"growth",name:"Growth",description:"Experiment and content team for acquisition, activation, and learning loops.",icon:"trending-up",agents:[n("team-lead"),n("growth-marketer"),n("content-writer")]},{id:"research",name:"Research",description:"Research and synthesis pair for investigations, briefs, and decision support.",icon:"flask-conical",agents:[n("team-lead"),n("researcher"),n("technical-writer")]},{id:"marketing",name:"Marketing",description:"Brand strategy, campaign execution, and content production.",icon:"megaphone",agents:[n("team-lead"),n("marketing-strategist"),n("copywriter"),n("content-writer")]},{id:"support",name:"Support",description:"Customer-facing support with triage, diagnosis, and escalation.",icon:"life-buoy",agents:[n("team-lead"),n("support-lead"),n("support-engineer")]},{id:"devrel",name:"Developer Relations",description:"Developer advocacy through tooling, content, and community engagement.",icon:"users",agents:[n("team-lead"),n("devrel-engineer"),n("community-manager"),n("technical-writer")]},{id:"operations",name:"Operations",description:"Internal tooling, project delivery, and cross-team coordination.",icon:"settings",agents:[n("team-lead"),n("project-manager"),n("ops-engineer")]}].map(h),p=new Map(j.map(a=>[a.id,a])),q=new Map(m.map(a=>[a.id,a]));function r(){return m.map(f)}function s(a){let b,c="string"==typeof a?function(a){if(!a)return null;let b=q.get(a);return b?f(b):null}(a):a;return c?[...(b=function(a){if(!a)return null;let b=p.get(a);return b?{id:b.id,skills:b.skills.map(e)}:null}(c.skillProfileId))?b.skills:[],...c.extraSkills?c.extraSkills.map(e):[]]:[]}function t(){return o.map(h)}o.map(a=>[a.id,a]),a.s(["getAgentPresetBindings",()=>s,"listAgentPresets",()=>r,"listTeamTemplates",()=>t])},231283,a=>{"use strict";var b=a.i(308316),c=a.i(786220),d=a.i(516909),e=a.i(319405),f=a.i(766412),g=a.i(830284),h=a.i(353532),i=a.i(542341),j=a.i(349692),k=a.i(599086),l=a.i(627421),m=a.i(824179);function n({params:a}){let{slug:n}=(0,c.use)(a),o=(0,d.useRouter)(),{projects:p}=(0,g.useProjectsWithAgents)(),q=p.find(a=>a.slug===n),[r,s]=(0,c.useState)([]),[t,u]=(0,c.useState)(!0),[v,w]=(0,c.useState)(null),[x,y]=(0,c.useState)(null),[z,A]=(0,c.useState)(new Set),[B,C]=(0,c.useState)(""),[D,E]=(0,c.useState)(""),[F,G]=(0,c.useState)(!1),[H,I]=(0,c.useState)(null),J=(0,c.useMemo)(()=>(0,e.listTeamTemplates)(),[]),K=(0,c.useMemo)(()=>(0,e.listAgentPresets)(),[]),L=(0,c.useMemo)(()=>J.find(a=>a.id===v)??null,[J,v]),M=(0,c.useCallback)(async()=>{if(q){try{let a=await fetch(`/api/projects/${q.id}/agents/unassigned`);if(a.ok){let b=await a.json();s(b.agents??[])}}catch{}u(!1)}},[q]);(0,c.useEffect)(()=>{M()},[M]);let N=(0,c.useMemo)(()=>J.map(a=>({id:a.id,label:a.name,description:a.description,meta:a.variants?`${a.variants.length} specializations`:`${a.agents.length} roles`})),[J]),O=(0,c.useMemo)(()=>L?.variants?L.variants.map(a=>({id:a.id,label:a.name,description:a.description,meta:`${a.agents.length} roles`})):[],[L]),P=(0,c.useMemo)(()=>K.filter(a=>z.has(a.id)),[K,z]),Q=(0,c.useMemo)(()=>{let a=D.toLowerCase();return K.filter(b=>!z.has(b.id)&&(!a||b.name.toLowerCase().includes(a)||b.id.includes(a)||b.skillProfileId.includes(a)))},[K,z,D]);function R(a){A(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})}async function S(){if(v&&0!==z.size&&q){G(!0),I(null);try{await Promise.all(r.map(a=>fetch(`/api/projects/${q.id}/agents?agentId=${encodeURIComponent(a.id)}`,{method:"DELETE"})));let a={templateId:v,name:B.trim()||L?.name,agents:[...z]};x&&(a.variantId=x);let b=await fetch(`/api/projects/${q.id}/teams`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error((await b.json().catch(()=>({}))).error||"Failed to create team");o.push(`/projects/${n}/teams`)}catch(a){I(a instanceof Error?a.message:"Failed to replace agents"),G(!1)}}}if(!q||t)return(0,b.jsx)("div",{className:"flex items-center justify-center h-full text-sm text-zinc-500",children:"Loading..."});let T=!!L?.variants,U=z.size>0;return(0,b.jsx)("div",{className:"h-full overflow-y-auto",children:(0,b.jsxs)("div",{className:"max-w-2xl mx-auto px-6 py-8 space-y-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-lg font-bold",children:"Replace Unassigned Agents"}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)]",children:"Remove unassigned agents and create a new team."})]}),H&&(0,b.jsx)("div",{className:"p-3 rounded-xl bg-[var(--destructive-muted)] border border-[var(--destructive)]/20 text-sm text-[var(--destructive)]",children:H}),(0,b.jsx)("div",{className:"p-3.5 rounded-xl bg-red-500/5",style:{border:"1px solid rgba(239,68,68,0.2)"},children:(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)(k.AlertTriangle,{className:"w-4 h-4 text-red-400 flex-shrink-0 mt-0.5"}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"text-sm font-medium text-red-400 mb-1.5",children:"These agents will be removed:"}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:r.map(a=>(0,b.jsx)("span",{className:"text-xs px-2 py-0.5 rounded-lg bg-red-500/10 text-red-300 border border-red-500/20",children:a.name},a.id))})]})]})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Replacement team name"}),(0,b.jsx)("input",{value:B,onChange:a=>C(a.target.value),placeholder:"e.g. Engineering",className:"input w-full text-sm",disabled:F})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Template"}),(0,b.jsx)(f.default,{options:N,value:v,onChange:function(a){w(a),y(null);let b=J.find(b=>b.id===a);b&&(C(b.name),b.variants?A(new Set):A(new Set(b.agents.map(a=>a.id))))},placeholder:"Select a team template...",disabled:F})]}),T&&(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Specialization"}),(0,b.jsx)(f.default,{options:O,value:x,onChange:function(a){y(a);let b=L?.variants?.find(b=>b.id===a);b&&(C(b.name),A(new Set(b.agents.map(a=>a.id))))},placeholder:"Select a specialization...",disabled:F})]}),U&&(0,b.jsxs)("div",{children:[(0,b.jsxs)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-2",children:["Roles (",P.length,")"]}),(0,b.jsx)("div",{className:"space-y-1.5",children:P.map(a=>(0,b.jsxs)("div",{className:"flex items-center justify-between py-2 px-3 rounded-xl",style:{background:"var(--muted)",border:"1px solid var(--border)"},children:[(0,b.jsxs)("div",{className:"flex items-center gap-2.5 min-w-0",children:[(0,b.jsx)("div",{className:"w-5 h-5 rounded-md flex items-center justify-center flex-shrink-0 bg-emerald-500/15",children:(0,b.jsx)(l.Check,{className:"w-3 h-3 text-emerald-400"})}),(0,b.jsx)("span",{className:"text-sm font-medium truncate",children:a.role}),(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full flex-shrink-0",style:{background:"var(--card-bg)",color:"var(--muted-foreground)"},children:a.skillProfileId})]}),(0,b.jsx)("button",{onClick:()=>R(a.id),disabled:F,className:"p-1.5 rounded-lg hover:bg-red-500/15 text-[var(--muted-foreground)] hover:text-red-400 transition-colors",children:(0,b.jsx)(m.X,{className:"w-3.5 h-3.5"})})]},a.id))})]}),v&&(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Add roles"}),(0,b.jsxs)("div",{className:"relative mb-3",children:[(0,b.jsx)(i.Search,{className:"w-4 h-4 absolute left-3 top-1/2 -translate-y-1/2 text-[var(--muted-foreground)]"}),(0,b.jsx)("input",{value:D,onChange:a=>E(a.target.value),placeholder:"Search all roles...",className:"input w-full text-sm",style:{paddingLeft:"2.25rem"},disabled:F}),D&&(0,b.jsx)("button",{onClick:()=>E(""),className:"absolute right-3 top-1/2 -translate-y-1/2 text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:(0,b.jsx)(m.X,{className:"w-3.5 h-3.5"})})]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[Q.map(a=>(0,b.jsxs)("button",{onClick:()=>R(a.id),disabled:F,className:"inline-flex items-center gap-1.5 text-xs font-medium px-3 py-1.5 rounded-full transition-colors",style:{background:"var(--muted)",border:"1px solid var(--border)",color:"var(--muted-foreground)"},onMouseEnter:a=>{a.currentTarget.style.borderColor="var(--primary)",a.currentTarget.style.color="var(--primary)"},onMouseLeave:a=>{a.currentTarget.style.borderColor="var(--border)",a.currentTarget.style.color="var(--muted-foreground)"},children:[(0,b.jsx)(h.Plus,{className:"w-3 h-3"}),a.name]},a.id)),0===Q.length&&(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)] py-2",children:D?"No matching roles":"All roles selected"})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-3 pt-4 border-t",style:{borderColor:"var(--border)"},children:[(0,b.jsx)("button",{onClick:()=>o.push(`/projects/${n}/teams`),disabled:F,className:"px-4 py-2 rounded-xl border hover:bg-[var(--muted)]/50 transition-colors text-sm",style:{borderColor:"var(--border)"},children:"Cancel"}),(0,b.jsx)("button",{onClick:S,disabled:!U||!v||F,className:"px-5 py-2 rounded-xl text-sm font-medium min-w-[120px] flex items-center justify-center gap-2 bg-red-600 hover:bg-red-700 text-white transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:F?(0,b.jsx)(j.Loader2,{className:"w-4 h-4 animate-spin"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(k.AlertTriangle,{className:"w-4 h-4"}),"Replace (",z.size,")"]})})]})]})})}a.s(["default",()=>n])}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=apps_local_96dee4fc._.js.map
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
module.exports=[576608,a=>{"use strict";var b=a.i(308316),c=a.i(786220),d=a.i(516909),e=a.i(830284),f=a.i(837554),g=a.i(831709);let h=(0,g.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]),i=(0,g.default)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);var j=a.i(754812),k=a.i(820859),l=a.i(353532),m=a.i(864061),n=a.i(542341),o=a.i(642784),p=a.i(252197),q=a.i(824179),r=a.i(520612),s=a.i(675665);let t={activeScriptId:null,scripts:[]};var u=a.i(155829),v=a.i(496368),w=a.i(86007),x=a.i(627421),y=a.i(354658),z=a.i(697183),A=a.i(734709),B=a.i(86466);function C({projectSlug:a,scripts:d,activeScriptId:e,onSetActiveScriptId:f,onSaveScript:g,onDeleteScript:h}){let i=(0,c.useMemo)(()=>d.find(a=>a.id===e)??null,[e,d]),[j,k]=(0,c.useState)(()=>e?{type:"edit",scriptId:e}:{type:"new"}),[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(null),[s,t]=(0,c.useState)(null),u="edit"===j.type?j.scriptId:null;(0,c.useEffect)(()=>{if("edit"===j.type){let a=d.find(a=>a.id===j.scriptId);if(a){n(a.name),p(a.prompt);return}}if(i&&"new"!==j.type){("edit"!==j.type||j.scriptId!==i.id)&&k({type:"edit",scriptId:i.id}),n(i.name),p(i.prompt);return}0===d.length&&"new"!==j.type&&(k({type:"new"}),n(""),p(""))},[i,u,j,d]);let v=()=>{k({type:"new"}),n(""),p(""),r(null)},w=()=>{try{let a=g({name:m,prompt:o});k({type:"edit",scriptId:a.id}),r(null)}catch(a){r(a instanceof Error?a.message:"Failed to save session script.")}};return(0,b.jsxs)("div",{className:"flex flex-col gap-5",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,b.jsx)("h3",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Session Scripts"}),(0,b.jsxs)("p",{className:"text-xs leading-relaxed text-[var(--muted-foreground)]",children:["Save reusable kickoff prompts for the ",String(a??"").trim()||"global Linear board",". These scripts stay on this device and layer on top of the built-in ticket context whenever you start a scripted session."]})]}),(0,b.jsxs)("div",{className:"grid gap-5 md:grid-cols-[240px_minmax(0,1fr)]",children:[(0,b.jsxs)("aside",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-3",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-[var(--muted-foreground)]",children:"Library"}),(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1 rounded-md border border-[var(--card-border)] px-2 py-1 text-[11px] font-medium text-[var(--foreground)] transition-colors hover:bg-[var(--background)]",onClick:v,children:[(0,b.jsx)(l.Plus,{size:12}),"New"]})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsxs)("button",{type:"button",className:`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${null===e?"bg-[var(--background)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>f(null),children:[(0,b.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded-full border ${null===e?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:null===e?(0,b.jsx)(x.Check,{size:10}):null}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate font-medium",children:"AGX default"})]}),0===d.length?(0,b.jsx)("div",{className:"rounded-lg border border-dashed border-[var(--card-border)] px-3 py-4 text-xs leading-relaxed text-[var(--muted-foreground)]",children:"No saved scripts yet. Create one to reuse your preferred scripted session prompt."}):d.map(a=>{let c=a.id===e,d="edit"===j.type&&j.scriptId===a.id;return(0,b.jsx)("button",{type:"button",className:`rounded-lg border px-3 py-2 text-left transition-colors ${d?"border-blue-500/50 bg-[var(--background)]":"border-transparent hover:border-[var(--card-border)] hover:bg-[var(--background)]"}`,onClick:()=>{k({type:"edit",scriptId:a.id}),n(a.name),p(a.prompt),r(null),f(a.id)},children:(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)("span",{className:`mt-0.5 flex h-4 w-4 shrink-0 items-center justify-center rounded-full border ${c?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:c?(0,b.jsx)(x.Check,{size:10}):null}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"truncate text-xs font-medium text-[var(--foreground)]",children:a.name}),(0,b.jsx)("div",{className:"mt-1 line-clamp-2 text-[11px] leading-relaxed text-[var(--muted-foreground)]",children:a.prompt}),(0,b.jsxs)("div",{className:"mt-2 text-[10px] uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:["Updated ",function(a){try{return new Date(a).toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}catch{return a}}(a.updatedAt)]})]})]})},a.id)})]})]}),(0,b.jsxs)("section",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4",children:[(0,b.jsxs)("div",{className:"mb-4 flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h4",{className:"text-sm font-semibold text-[var(--foreground)]",children:"edit"===j.type?"Edit Session Script":"New Session Script"}),(0,b.jsxs)("p",{className:"mt-1 text-xs leading-relaxed text-[var(--muted-foreground)]",children:["Use placeholders like ",(0,b.jsx)("code",{children:"{{ticket.identifier}}"}),", ",(0,b.jsx)("code",{children:"{{ticket.title}}"}),", ",(0,b.jsx)("code",{children:"{{ticket.status}}"}),", ",(0,b.jsx)("code",{children:"{{ticket.assignee}}"}),", ",(0,b.jsx)("code",{children:"{{project.slug}}"}),", ",(0,b.jsx)("code",{children:"{{knowledge_base.root}}"}),", ",(0,b.jsx)("code",{children:"{{knowledge_base.issue_path}}"}),", and ",(0,b.jsx)("code",{children:"{{worktree.path}}"}),"."]})]}),i?(0,b.jsxs)("span",{className:"rounded-full border border-blue-500/30 bg-blue-500/10 px-2.5 py-1 text-[11px] font-medium text-blue-400",children:["Active: ",i.name]}):(0,b.jsx)("span",{className:"rounded-full border border-[var(--card-border)] px-2.5 py-1 text-[11px] font-medium text-[var(--muted-foreground)]",children:"Active: AGX default"})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsxs)("label",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:"Name"}),(0,b.jsx)("input",{type:"text",className:"rounded-lg border border-[var(--card-border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)] outline-none transition-colors focus:border-blue-500",placeholder:"Investigation-first",value:m,onChange:a=>n(a.target.value)})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:"Prompt"}),(0,b.jsx)("div",{className:"overflow-hidden rounded-lg border border-[var(--card-border)] bg-[var(--background)] transition-colors focus-within:border-blue-500 [&_.rich-text-editor_.ProseMirror]:min-h-[220px]",children:(0,b.jsx)(B.default,{content:o,onChange:p,placeholder:"Read {{ticket.identifier}} and the full comment thread in Linear before changing code.\nWrite your investigation to {{knowledge_base.issue_path}} and stop after posting a plan unless the issue is already approved for implementation."})})]}),q?(0,b.jsx)("div",{className:"rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-xs text-red-300",children:q}):null,(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg bg-blue-500 px-3 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-600",onClick:w,children:[(0,b.jsx)(y.Save,{size:14}),"Save as new"]}),"edit"===j.type?(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg border border-[var(--card-border)] px-3 py-2 text-sm font-medium text-[var(--foreground)] transition-colors hover:bg-[var(--background)]",onClick:()=>{if("edit"!==j.type)return void w();try{let a=g({id:j.scriptId,name:m,prompt:o});k({type:"edit",scriptId:a.id}),r(null)}catch(a){r(a instanceof Error?a.message:"Failed to update session script.")}},children:[(0,b.jsx)(y.Save,{size:14}),"Update"]}):null,"edit"===j.type?(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg border border-red-500/30 px-3 py-2 text-sm font-medium text-red-300 transition-colors hover:bg-red-500/10",onClick:()=>{t(d.find(a=>a.id===j.scriptId)??null)},children:[(0,b.jsx)(z.Trash2,{size:14}),"Delete"]}):null,(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg border border-[var(--card-border)] px-3 py-2 text-sm font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--background)] hover:text-[var(--foreground)]",onClick:v,children:[(0,b.jsx)(l.Plus,{size:14}),"Clear editor"]})]})]})]})]}),(0,b.jsx)(A.default,{isOpen:!!s,title:"Delete session script?",message:"This removes the saved script from this device for the current project.",preview:s?.name,confirmLabel:"Delete",variant:"danger",onConfirm:()=>{s&&(h(s.id),"edit"===j.type&&j.scriptId===s.id&&(k({type:"new"}),n(""),p("")),t(null),r(null))},onCancel:()=>t(null)})]})}var D=a.i(475632),E=a.i(529889);let F={search:"",assigneeIds:[],statuses:[],teamId:"",cycleId:"",sortBy:"activity",sortDir:"desc",hasActivity:!1};var G=a.i(427411),H=a.i(785061),I=a.i(379065),J=a.i(349692);let K=[{id:"claude",label:"Claude Code",icon:"🟣"},{id:"codex",label:"Codex",icon:"⚫"},{id:"gemini",label:"Gemini CLI",icon:"🔵"}];function L({connected:a,user:d,clis:e,mcpConfigured:f,onConnect:g,onConnectWithKey:h,onDisconnect:i,onConfigureMcp:j,onContinue:k}){let[l,m]=(0,c.useState)(""),[n,o]=(0,c.useState)(null),[p,q]=(0,c.useState)(!1),[r,s]=(0,c.useState)(null),[t,u]=(0,c.useState)(null),v=async()=>{if(!l.trim())return;q(!0),o(null);let a=await h(l.trim());q(!1),a.ok||o(a.error||"Failed to connect")},w=async a=>{s(a),u(null);let b=await j(a);s(null),b.ok||u(b.error||"Failed to configure")},y=K.filter(a=>e[a.id]).some(a=>f[a.id]);return(0,b.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,b.jsxs)("div",{className:"w-full max-w-md space-y-6 px-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[a&&(0,b.jsx)("div",{className:"flex h-4 w-4 items-center justify-center rounded-full bg-green-500/20",children:(0,b.jsx)(x.Check,{size:10,className:"text-green-500"})}),(0,b.jsx)("h2",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Connect to Linear"})]}),(0,b.jsx)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:"Connect your workspace to browse tickets and execute them with agents."}),(0,b.jsx)("div",{className:"mt-3 space-y-3",children:a?(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-md border border-[var(--card-border)] px-3 py-2",children:[(0,b.jsxs)("div",{className:"text-xs text-[var(--foreground)]",children:["Connected as"," ",(0,b.jsx)("span",{className:"font-medium",children:d?.name})]}),(0,b.jsx)("button",{type:"button",onClick:i,className:"text-[10px] text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Disconnect"})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{type:"button",onClick:g,className:"w-full rounded-md bg-[var(--foreground)] px-4 py-2 text-xs font-medium text-[var(--card-bg)] transition-opacity hover:opacity-90",children:"Connect with Linear"}),(0,b.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-[var(--muted-foreground)]",children:[(0,b.jsx)("div",{className:"flex-1 border-t border-[var(--card-border)]"}),"or",(0,b.jsx)("div",{className:"flex-1 border-t border-[var(--card-border)]"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-[10px] text-[var(--muted-foreground)] block mb-1",children:"Personal API key"}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("input",{type:"password",value:l,onChange:a=>{m(a.target.value),o(null)},onKeyDown:a=>{"Enter"===a.key&&v()},placeholder:"lin_api_...",className:"flex-1 rounded-md border border-[var(--card-border)] bg-transparent px-3 py-1.5 text-xs text-[var(--foreground)] placeholder:text-[var(--muted-foreground)] focus:outline-none focus:ring-1 focus:ring-[var(--foreground)]"}),(0,b.jsx)("button",{type:"button",onClick:v,disabled:!l.trim()||p,className:"rounded-md border border-[var(--card-border)] px-3 py-1.5 text-xs text-[var(--foreground)] transition-colors hover:bg-[var(--card-border)] disabled:opacity-40",children:p?"...":"Save"})]}),n&&(0,b.jsx)("p",{className:"mt-1 text-[10px] text-red-400",children:n}),(0,b.jsxs)("a",{href:"https://linear.app/settings/api",target:"_blank",rel:"noopener noreferrer",className:"mt-1 inline-flex items-center gap-1 text-[10px] text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:["Generate at linear.app/settings/api",(0,b.jsx)(I.ExternalLink,{size:8})]})]})]})})]}),a&&(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Configure MCP"}),(0,b.jsx)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:"Add the Linear MCP server to your AI tools so agents can read and update tickets during execution."}),(0,b.jsxs)("div",{className:"mt-3 space-y-1",children:[K.map(a=>{let c=e[a.id],d=f[a.id],g=r===a.id;return(0,b.jsxs)("div",{className:`flex items-center justify-between rounded-md border border-[var(--card-border)] px-3 py-2 ${!c?"opacity-40":""}`,children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,b.jsx)("span",{children:a.icon}),(0,b.jsx)("span",{className:"text-[var(--foreground)]",children:a.label})]}),c?d?(0,b.jsxs)("span",{className:"flex items-center gap-1 text-[10px] text-green-500",children:[(0,b.jsx)(x.Check,{size:10}),"Configured"]}):(0,b.jsx)("button",{type:"button",onClick:()=>w(a.id),disabled:g,className:"flex items-center gap-1 rounded px-2 py-0.5 text-[10px] text-[var(--foreground)] border border-[var(--card-border)] hover:bg-[var(--card-border)] transition-colors disabled:opacity-50",children:g?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(J.Loader2,{size:10,className:"animate-spin"}),"Configuring..."]}):"Configure"}):(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:"Not installed"})]},a.id)}),t&&(0,b.jsx)("p",{className:"mt-1 text-[10px] text-red-400",children:t})]}),(0,b.jsx)("button",{type:"button",onClick:k,className:"mt-4 w-full rounded-md bg-[var(--foreground)] px-4 py-2 text-xs font-medium text-[var(--card-bg)] transition-opacity hover:opacity-90",children:y?"Continue":"Skip for now"})]})]})})}var M=a.i(971382);let N=(0,g.default)("link-2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]),O=(0,g.default)("scroll-text",[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]]);var P=a.i(811760),Q=a.i(756490),R=a.i(73948),S=a.i(201485);let T=`Pick the highest-priority actionable ticket. Prefer tickets that:
|
|
2
|
-
1. Are already started (existing branches, PRs, or prior comments) — continue where you left off.
|
|
3
|
-
2. Are assigned to you or unassigned.
|
|
4
|
-
3. Have the most urgent priority or earliest due date.
|
|
5
|
-
|
|
6
|
-
Skip tickets with the \`active-session\` label — another agent is already working on them.`,U=`Work on {{ticket.identifier}}: {{ticket.title}}
|
|
7
|
-
|
|
8
|
-
## Workflow
|
|
9
|
-
|
|
10
|
-
1. **Read the ticket** — Read the full issue and comment thread via the issue tracker MCP before acting.
|
|
11
|
-
2. **Resume existing work** — Check for existing branches, PRs, knowledge-base notes, or prior discussion. Continue where things left off.
|
|
12
|
-
3. **If unclear** — Post a clarifying comment on the ticket and stop. Don't guess.
|
|
13
|
-
4. **If fresh** — Investigate the codebase, draft a plan, post it as a comment. Stop and wait for approval.
|
|
14
|
-
5. **If plan is approved** — Create a git worktree, implement the fix, run tests, commit, push, and create a PR linking the ticket.
|
|
15
|
-
6. **If PR exists** — Check CI, address review feedback, or confirm merge. Don't start over.
|
|
16
|
-
|
|
17
|
-
## Rules
|
|
18
|
-
|
|
19
|
-
- Work in an isolated git worktree — never modify the main checkout directly.
|
|
20
|
-
- Keep the issue tracker accurate: update status, post comments, link PRs.
|
|
21
|
-
- Add the \`active-session\` label when starting. Remove it when done.
|
|
22
|
-
- Leave everything in a resumable state. Clean up worktrees when finished.
|
|
23
|
-
- One ticket per session.`,V=(0,f.default)(async()=>{},{loadableGenerated:{modules:[668610]},ssr:!1});function W({children:a}){return(0,b.jsx)("label",{className:"block text-[10px] font-semibold text-[var(--muted-foreground)] uppercase tracking-widest mb-2",children:a})}function X({title:a,expanded:c,onToggle:d,children:e}){return(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] overflow-hidden",children:[(0,b.jsxs)("button",{type:"button",onClick:d,className:"flex w-full items-center gap-2 px-4 py-3 text-left text-xs font-semibold text-[var(--muted-foreground)] uppercase tracking-widest hover:text-[var(--foreground)] transition-colors",children:[c?(0,b.jsx)(P.ChevronDown,{size:12}):(0,b.jsx)(Q.ChevronRight,{size:12}),a]}),c&&(0,b.jsx)("div",{className:"border-t border-[var(--card-border)]",children:e})]})}function Y({projectId:a,onJobLoaded:d}){let[e,f]=(0,c.useState)(null),[g,h]=(0,c.useState)([]),[i,j]=(0,c.useState)(!0),[k,l]=(0,c.useState)(!1),[n,o]=(0,c.useState)(T),[p,q]=(0,c.useState)(U),[r,s]=(0,c.useState)("*/30 * * * *"),[t,u]=(0,c.useState)(""),[v,w]=(0,c.useState)(""),[x,y]=(0,c.useState)(!1),[z,A]=(0,c.useState)(!0),B=(0,c.useRef)(!1),C=(0,c.useCallback)(async()=>{try{let b=new URLSearchParams;a&&b.set("projectId",a);let c=await fetch(`/api/linear/worker?${b}`);if(!c.ok)return;let e=await c.json();e.job?(f(e.job),o(e.job.prompt||T),q(e.job.scriptPrompt||U),s(e.job.cronExpr||e.job.cadence||"*/30 * * * *"),u(e.job.condition||""),w(e.job.teamId||""),d?.(e.job.id)):d?.(null)}catch{}finally{j(!1)}},[a,d]),D=(0,c.useCallback)(async()=>{if(a)try{let b=await fetch(`/api/projects/${a}/teams`);if(!b.ok)return;let c=((await b.json()).teams??[]).map(a=>({id:a.id,name:a.name}));h(c)}catch{}},[a]);(0,c.useEffect)(()=>{B.current||(B.current=!0,C(),D())},[C,D]),(0,c.useEffect)(()=>{let a=setInterval(C,15e3);return()=>clearInterval(a)},[C]);let E=(0,c.useCallback)(async()=>{l(!0);try{let b={prompt:n,scriptPrompt:p,cadence:r,condition:t,teamId:v};a&&(b.projectId=a);let c=await fetch("/api/linear/worker",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});if(c.ok){let a=await c.json();f(a.job)}}catch{}finally{l(!1)}},[n,p,r,t,v,a]),F=(0,c.useCallback)(async()=>{if(!e)return void await E();l(!0);try{let b="active"===e.state?"paused":"active",c=await fetch("/api/linear/worker",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:a,state:b})});if(c.ok){let a=await c.json();f(a.job)}}catch{}finally{l(!1)}},[e,a,E]),[G,H]=(0,c.useState)(!1),I=(0,c.useCallback)(async()=>{if(e){H(!0);try{await fetch("/api/prompt-jobs/poll",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jobId:e.id})}),setTimeout(C,1e3)}catch{}finally{H(!1)}}},[e,C]);if(i)return(0,b.jsxs)("div",{className:"flex items-center gap-2 py-12 justify-center text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)(m.RefreshCw,{size:14,className:"animate-spin"}),"Loading Linear Worker..."]});let J=e?.state==="active";return(0,b.jsxs)("div",{className:"flex flex-col gap-4 h-full",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("div",{className:"flex items-center gap-4 text-xs text-[var(--muted-foreground)]",children:e&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("span",{children:["Next: ",(0,b.jsx)("span",{className:"text-[var(--foreground)]",children:function(a,b){if("paused"===b)return"Paused";if("stopped"===b)return"Stopped";if(null===a)return"Pending";let c=a-Date.now();return c<0?"Overdue":c<6e4?`in ${Math.round(c/1e3)}s`:c<36e5?`in ${Math.round(c/6e4)}m`:c<864e5?`in ${Math.round(c/36e5)}h`:`in ${Math.round(c/864e5)}d`}(e.nextRunAt,e.state)})]}),(0,b.jsxs)("span",{children:["Last: ",(0,b.jsx)("span",{className:"text-[var(--foreground)]",children:function(a){if(!a)return"Never";let b=Date.now()-a;return b<6e4?"Just now":b<36e5?`${Math.round(b/6e4)}m ago`:b<864e5?`${Math.round(b/36e5)}h ago`:`${Math.round(b/864e5)}d ago`}(e.lastRunAt)})]}),e.lastOutcome&&(0,b.jsxs)("span",{children:["Outcome:"," ",(0,b.jsx)("span",{className:"success"===e.lastOutcome?"text-emerald-400":"failed"===e.lastOutcome?"text-red-400":"text-[var(--foreground)]",children:e.lastOutcome})]})]})}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[e&&(0,b.jsxs)("button",{type:"button",disabled:G||k,onClick:I,className:"flex items-center gap-1.5 rounded-lg border border-blue-500/30 bg-blue-500/10 px-3 py-1.5 text-xs font-medium text-blue-400 transition-colors hover:bg-blue-500/20 disabled:opacity-40",children:[G?(0,b.jsx)(m.RefreshCw,{size:12,className:"animate-spin"}):(0,b.jsx)(R.Play,{size:12}),"Run now"]}),(0,b.jsxs)("button",{type:"button",disabled:k,onClick:F,className:"relative flex items-center gap-2.5 rounded-lg border border-[var(--card-border)] bg-[var(--muted)] px-3 py-1.5 text-xs font-medium text-[var(--foreground)] transition-colors hover:border-[var(--muted-foreground)]",children:[(0,b.jsx)("span",{className:`relative inline-flex h-4 w-7 shrink-0 items-center rounded-full transition-colors ${J?"bg-emerald-500":"bg-[var(--card-border)]"}`,children:(0,b.jsx)("span",{className:`inline-block h-3 w-3 rounded-full bg-white transition-transform ${J?"translate-x-3.5":"translate-x-0.5"}`})}),J?"Enabled":"Disabled"]})]})]}),(0,b.jsxs)("div",{className:"flex flex-1 min-h-0 gap-6 overflow-y-auto",children:[(0,b.jsxs)("div",{className:"flex flex-1 min-w-0 flex-col gap-4",children:[(0,b.jsx)(X,{title:"How to pick a ticket",expanded:x,onToggle:()=>y(!x),children:(0,b.jsx)("div",{className:"min-h-[120px] overflow-y-auto resize-y",style:{height:320},children:(0,b.jsx)(V,{content:n,onChange:a=>o(a),placeholder:"Describe how to pick which ticket to work on..."})})}),(0,b.jsx)(X,{title:"How to work a ticket",expanded:z,onToggle:()=>A(!z),children:(0,b.jsx)("div",{className:"min-h-[300px] max-h-[50vh] overflow-y-auto",children:(0,b.jsx)(V,{content:p,onChange:a=>q(a),placeholder:"Instructions injected into the agent session when working a ticket..."})})})]}),(0,b.jsxs)("div",{className:"w-[340px] shrink-0 space-y-6",children:[g.length>0&&(0,b.jsxs)("div",{children:[(0,b.jsx)(W,{children:"Team"}),(0,b.jsx)(S.SimpleDropdown,{value:v||"",options:[{value:"",label:"Select a team"},...g.map(a=>({value:a.id,label:a.name}))],onChange:a=>w(a),ariaLabel:"Select team"}),(0,b.jsx)("p",{className:"mt-1.5 text-[10px] text-[var(--muted-foreground)]",children:"Agents in this team become default participants of the linear chat."})]}),(0,b.jsx)(S.ScheduleConditionPicker,{value:{cadence:r,condition:t},onChange:a=>{s(a.cadence),u(a.condition)},scheduleLabel:"Schedule",conditionLabel:"Condition"})]})]}),(0,b.jsx)("div",{className:"flex shrink-0 justify-end pt-2",children:(0,b.jsx)("button",{type:"button",disabled:k,onClick:E,className:"rounded-lg bg-[var(--foreground)] px-5 py-2 text-sm font-medium text-[var(--background)] transition-opacity hover:opacity-90 disabled:opacity-40",children:k?"Saving...":"Save configuration"})})]})}var Z=a.i(44668),$=a.i(999076);let _=(0,g.default)("ban",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}]]);function aa({status:a}){switch(a){case"success":return(0,b.jsx)(Z.CheckCircle2,{size:14,className:"text-emerald-400"});case"failed":return(0,b.jsx)($.XCircle,{size:14,className:"text-red-400"});case"running":return(0,b.jsx)(J.Loader2,{size:14,className:"text-blue-400 animate-spin"});case"queued":return(0,b.jsx)(k.Clock,{size:14,className:"text-yellow-400"});case"cancelled":return(0,b.jsx)(_,{size:14,className:"text-[var(--muted-foreground)]"});default:return(0,b.jsx)(k.Clock,{size:14,className:"text-[var(--muted-foreground)]"})}}function ab(a){return a?new Date(a).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"}):"—"}function ac({jobId:a}){let[d,e]=(0,c.useState)([]),[f,g]=(0,c.useState)(!0),[h,i]=(0,c.useState)(null),j=(0,c.useRef)(!1),k=(0,c.useCallback)(async()=>{if(!a)return void g(!1);try{let b=await fetch(`/api/prompt-jobs/${a}/runs`);if(!b.ok)return;let c=await b.json();e(c.runs??[])}catch{}finally{g(!1)}},[a]);return((0,c.useEffect)(()=>{j.current||(j.current=!0,k())},[k]),(0,c.useEffect)(()=>{let a=setInterval(k,1e4);return()=>clearInterval(a)},[k]),a)?f?(0,b.jsxs)("div",{className:"flex items-center gap-2 py-12 justify-center text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)(m.RefreshCw,{size:14,className:"animate-spin"}),"Loading run history..."]}):0===d.length?(0,b.jsx)("div",{className:"flex items-center justify-center py-16 text-sm text-[var(--muted-foreground)]",children:"No runs yet. The worker will log runs here once it starts executing."}):(0,b.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,b.jsxs)("div",{className:"grid grid-cols-[minmax(0,1fr)_100px_140px_140px_90px] gap-3 px-4 py-2 text-[10px] font-semibold text-[var(--muted-foreground)] uppercase tracking-widest border-b border-[var(--card-border)]",children:[(0,b.jsx)("span",{children:"Status"}),(0,b.jsx)("span",{children:"Duration"}),(0,b.jsx)("span",{children:"Started"}),(0,b.jsx)("span",{children:"Finished"}),(0,b.jsx)("span",{children:"Run ID"})]}),(0,b.jsx)("div",{className:"max-h-[60vh] overflow-y-auto",children:d.map(a=>{var c,d;return(0,b.jsxs)("div",{children:[(0,b.jsxs)("button",{type:"button",onClick:()=>i(h===a.id?null:a.id),className:"grid w-full grid-cols-[minmax(0,1fr)_100px_140px_140px_90px] gap-3 px-4 py-2.5 text-left text-sm transition-colors hover:bg-[var(--card-bg)] rounded-lg",children:[(0,b.jsxs)("span",{className:`flex items-center gap-2 font-medium ${function(a){switch(a){case"success":return"text-emerald-400";case"failed":return"text-red-400";case"running":return"text-blue-400";case"queued":return"text-yellow-400";default:return"text-[var(--muted-foreground)]"}}(a.status)}`,children:[(0,b.jsx)(aa,{status:a.status}),(c=a.status).charAt(0).toUpperCase()+c.slice(1)]}),(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:null===(d=a.durationMs)?"—":d<1e3?`${d}ms`:d<6e4?`${(d/1e3).toFixed(1)}s`:d<36e5?`${Math.round(d/6e4)}m ${Math.round(d%6e4/1e3)}s`:`${Math.round(d/36e5)}h ${Math.round(d%36e5/6e4)}m`}),(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:ab(a.startedAt)}),(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:ab(a.finishedAt)}),(0,b.jsx)("span",{className:"text-[var(--muted-foreground)] font-mono text-xs truncate",children:a.id.slice(0,8)})]}),h===a.id&&(a.output||a.error)&&(0,b.jsxs)("div",{className:"mx-4 mb-2 rounded-lg border border-[var(--card-border)] bg-[var(--muted)] overflow-hidden",children:[a.error&&(0,b.jsxs)("div",{className:"px-4 py-3 border-b border-[var(--card-border)]",children:[(0,b.jsx)("div",{className:"text-[10px] font-semibold text-red-400 uppercase tracking-widest mb-1",children:"Error"}),(0,b.jsx)("pre",{className:"text-xs text-red-300 whitespace-pre-wrap font-mono",children:a.error})]}),a.output&&(0,b.jsxs)("div",{className:"px-4 py-3",children:[(0,b.jsx)("div",{className:"text-[10px] font-semibold text-[var(--muted-foreground)] uppercase tracking-widest mb-1",children:"Output"}),(0,b.jsx)("pre",{className:"text-xs text-[var(--foreground)] whitespace-pre-wrap font-mono max-h-[300px] overflow-y-auto",children:a.output})]})]})]},a.id)})})]}):(0,b.jsx)("div",{className:"flex items-center justify-center py-16 text-sm text-[var(--muted-foreground)]",children:"No worker configured yet. Enable the worker to see run history."})}function ad({connected:a,user:d,clis:e,mcpConfigured:f,onConnect:g,onConnectWithKey:h,onDisconnect:i,onConfigureMcp:j,onClose:k,projectId:l}){let[m,n]=(0,c.useState)(a?"worker":"connection"),[o,p]=(0,c.useState)(null),r=[{id:"connection",label:"Connection",icon:(0,b.jsx)(N,{size:14})},{id:"worker",label:"Linear Worker",icon:(0,b.jsx)(M.Bot,{size:14}),disabled:!a},{id:"run-log",label:"Run Log",icon:(0,b.jsx)(O,{size:14}),disabled:!a}];return(0,b.jsx)("div",{className:"absolute inset-0 z-30 flex items-center justify-center bg-black/50",children:(0,b.jsxs)("div",{className:"relative flex w-full max-w-6xl flex-col rounded-lg border border-[var(--card-border)] bg-[var(--background)] shadow-xl",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-[var(--card-border)] px-6",children:[(0,b.jsx)("div",{className:"flex items-center gap-6",children:r.map(a=>{let c=m===a.id;return(0,b.jsxs)("button",{onClick:()=>!a.disabled&&n(a.id),disabled:a.disabled,className:`relative flex items-center gap-2 py-4 text-sm font-semibold transition-colors ${c?"text-[var(--foreground)]":a.disabled?"cursor-not-allowed text-[var(--muted-foreground)]/40":"text-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`,children:[a.icon,a.label,c&&(0,b.jsx)("span",{className:"absolute bottom-0 left-0 right-0 h-[2px] rounded-full bg-[var(--foreground)]"})]},a.id)})}),(0,b.jsx)("button",{type:"button",className:"rounded p-1.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:k,children:(0,b.jsx)(q.X,{size:18})})]}),(0,b.jsxs)("div",{className:"flex-1 min-h-0 max-h-[80vh] overflow-y-auto p-6",children:["connection"===m&&(0,b.jsx)(L,{connected:a,user:d,clis:e,mcpConfigured:f,onConnect:g,onConnectWithKey:h,onDisconnect:i,onConfigureMcp:j,onContinue:k}),"worker"===m&&a&&(0,b.jsx)(Y,{projectId:l,onJobLoaded:p}),"run-log"===m&&a&&(0,b.jsx)(ac,{jobId:o})]})]})})}function ae(a){if("chat"===a.mode)switch(a.status){case"queued":return{label:"starting",tone:"queued"};case"running":return{label:"thinking",tone:"running"};case"success":return{label:"ready",tone:"ready"};case"failed":return{label:"error",tone:"failed"};case"cancelled":return{label:"stopped",tone:"cancelled"}}return{label:function(a){switch(a){case"queued":return"queued";case"running":return"running";case"success":return"success";case"failed":return"failed";case"cancelled":return"cancelled";default:return a}}(a.status),tone:a.status}}function af(a){let b=a.sessionTitle?.trim();return b||("scripted"===a.mode?"Scripted session":"Chat session")}let ag={"In Progress":"In Prog","In Review":"Review",Backlog:"Backlog",Todo:"Todo",Done:"Done",Cancelled:"Cancl."},ah={queued:"bg-amber-500/10 border-amber-500/20 text-amber-400",running:"bg-yellow-500/10 border-yellow-500/20 text-yellow-400",ready:"bg-sky-500/10 border-sky-500/20 text-sky-400",success:"bg-emerald-500/10 border-emerald-500/20 text-emerald-400",failed:"bg-red-500/10 border-red-500/20 text-red-400",cancelled:"bg-zinc-500/10 border-zinc-500/20 text-zinc-400"},ai={queued:"bg-amber-400",running:"bg-yellow-400",ready:"bg-sky-400",success:"bg-emerald-400",failed:"bg-red-400",cancelled:"bg-zinc-400"},aj={queued:"text-amber-500",running:"text-yellow-500",ready:"text-sky-500",success:"text-green-500",failed:"text-red-500",cancelled:"text-[var(--muted-foreground)]"};function ak({onResize:a}){let d=(0,c.useRef)(!1),e=(0,c.useRef)(0);return(0,c.useEffect)(()=>{if(!d.current)return;let b=b=>{let c=b.clientX-e.current;e.current=b.clientX,a(c)},c=()=>{d.current=!1,document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("mousemove",b),window.removeEventListener("mouseup",c)};return window.addEventListener("mousemove",b),window.addEventListener("mouseup",c),()=>{window.removeEventListener("mousemove",b),window.removeEventListener("mouseup",c)}}),(0,b.jsx)("div",{className:"group relative z-10 w-0 shrink-0 cursor-col-resize",onMouseDown:a=>{a.preventDefault(),d.current=!0,e.current=a.clientX,document.body.style.cursor="col-resize",document.body.style.userSelect="none"},children:(0,b.jsx)("div",{className:"absolute inset-y-0 -left-0.5 w-1 transition-colors group-hover:bg-[var(--primary)]/40"})})}function al({label:a,value:c,options:d,activeClasses:e,onChange:f,disabled:g=!1}){let h=c.trim().length>0;return(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("select",{"aria-label":a,className:`max-w-[160px] appearance-none rounded-full border bg-transparent px-2.5 py-0.5 pr-6 text-[11px] font-medium outline-none transition-colors disabled:cursor-not-allowed disabled:opacity-60 ${h?e:"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,value:c,disabled:g,onChange:a=>f(a.target.value),children:d.map(c=>(0,b.jsx)("option",{value:c.value,children:c.label},`${a}-${c.value||"all"}`))}),(0,b.jsx)(P.ChevronDown,{size:12,className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-current"})]})}function am({status:a,options:c,onChange:d,disabled:e=!1,updating:f=!1}){return(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("select",{"aria-label":"Ticket status",className:"max-w-[160px] appearance-none rounded-md border border-[var(--card-border)] bg-[var(--card-bg)] px-2.5 py-1 pr-8 text-xs font-medium text-[var(--foreground)] outline-none transition-colors hover:border-[var(--muted-foreground)] disabled:cursor-not-allowed disabled:opacity-60",value:a,disabled:e||f,onChange:a=>d(a.target.value),children:c.map(a=>(0,b.jsx)("option",{value:a.value,children:a.label},`ticket-status-${a.value}`))}),f?(0,b.jsx)(m.RefreshCw,{size:12,className:"pointer-events-none absolute right-6 top-1/2 -translate-y-1/2 animate-spin text-[var(--muted-foreground)]"}):null,(0,b.jsx)(P.ChevronDown,{size:12,className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-[var(--muted-foreground)]"})]})}function an({label:a,values:d,options:e,activeClasses:f,onChange:g,emptyLabel:h}){let[i,j]=(0,c.useState)(!1),k=(0,c.useRef)(null),l=e.filter(a=>a.value&&d.includes(a.value)),m=l.length>0,n=(()=>{if(0===l.length||l.length===e.length)return h??a;if(1===l.length)return l[0]?.label??h??a;let b=a.toLowerCase();return`${l.length} ${b}${b.endsWith("s")?"es":"s"}`})();(0,c.useEffect)(()=>{if(!i)return;let a=a=>{k.current&&!k.current.contains(a.target)&&j(!1)};return document.addEventListener("pointerdown",a),()=>document.removeEventListener("pointerdown",a)},[i]);let o=(0,c.useCallback)(a=>{a?g(d.includes(a)?d.filter(b=>b!==a):[...d,a]):g([])},[g,d]);return(0,b.jsxs)("div",{className:"relative",ref:k,children:[(0,b.jsxs)("button",{type:"button","aria-label":a,"aria-haspopup":"listbox","aria-expanded":i,className:`flex max-w-[180px] items-center gap-1 rounded-full border px-2.5 py-0.5 text-[11px] font-medium transition-colors ${m?f:"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,onClick:()=>j(a=>!a),children:[(0,b.jsx)("span",{className:"max-w-[132px] truncate",children:n}),(0,b.jsx)(P.ChevronDown,{size:12,className:`shrink-0 transition-transform ${i?"rotate-180":""}`})]}),i?(0,b.jsxs)("div",{role:"listbox","aria-label":`${a} options`,"aria-multiselectable":"true",className:"absolute left-0 top-full z-50 mt-1 min-w-[240px] overflow-hidden rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-1 shadow-lg backdrop-blur-sm",children:[(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":!m,className:`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${!m?"bg-[var(--background)] font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>g([]),children:[(0,b.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded-full border ${!m?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:m?null:(0,b.jsx)(x.Check,{size:10})}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:h??a})]}),l.length>0?(0,b.jsx)("div",{className:"px-3 pb-1 pt-2 text-[10px] font-medium uppercase tracking-[0.12em] text-[var(--muted-foreground)]",children:"Selected"}):null,e.filter(a=>a.value).map(c=>{let e=d.includes(c.value);return(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":e,className:`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${e?"bg-[var(--background)] font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>o(c.value),children:[(0,b.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded border ${e?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:e?(0,b.jsx)(x.Check,{size:10}):null}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:c.label})]},`${a}-${c.value}`)})]}):null]})}let ao=(0,g.default)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]);function ap(a,b,c=20){let d=b?b.replace("#",""):"e2e8f0";return`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${encodeURIComponent(a)}&size=${c}&backgroundColor=${d}`}function aq({issue:a,selected:d,pinned:e,onSelect:f,onTogglePin:g,activeAgents:h,participants:i}){let[j,k]=(0,c.useState)(!1),l=(0,c.useRef)(null);(0,c.useEffect)(()=>()=>{l.current&&window.clearTimeout(l.current)},[]);let m=(0,c.useCallback)(async b=>{if(b.stopPropagation(),a.url)try{await navigator.clipboard.writeText(a.url),k(!0),l.current&&window.clearTimeout(l.current),l.current=window.setTimeout(()=>{k(!1)},1500)}catch(a){console.error("Failed to copy Linear issue URL:",a),k(!1)}},[a.url]),n=(0,c.useCallback)(b=>{if(b.stopPropagation(),a.url){var c;let b;c=a.url,b=window.open(c,"_blank","noopener,noreferrer"),b?.focus()}},[a.url]),o=ag[a.status]??a.status.slice(0,6);return(0,b.jsxs)("div",{className:`group relative flex cursor-pointer items-center gap-3 px-4 py-2.5 text-sm transition-colors ${d?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]/50"}`,onClick:f,role:"button",tabIndex:0,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),f())},children:[d&&(0,b.jsx)("div",{className:"absolute left-0 top-0 bottom-0 w-[3px] rounded-r-full bg-blue-500"}),(0,b.jsx)("span",{className:"w-24 shrink-0 whitespace-nowrap font-mono text-xs text-[var(--muted-foreground)]",children:a.identifier}),(0,b.jsx)("span",{className:`min-w-0 flex-1 truncate text-xs ${d?"font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)]"}`,children:a.title}),(0,b.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:o}),h&&h.length>0&&(0,b.jsx)("span",{className:"inline-flex items-center -space-x-1 shrink-0",children:h.slice(0,3).map(a=>{let c=i?.find(b=>b.id===a.agentId);return(0,b.jsxs)("span",{className:"relative inline-block",title:c?.name??a.agentName,children:[(0,b.jsx)("img",{src:ap(a.agentId,c?.color,16),alt:c?.name??a.agentName,className:"h-3 w-3 rounded-full ring-[1.5px] ring-[var(--app-shell-pane)]"}),(0,b.jsx)("span",{className:"absolute -bottom-px -right-px h-1.5 w-1.5 rounded-full bg-green-500 ring-[1px] ring-[var(--app-shell-pane)]"})]},a.agentId)})}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[g&&(0,b.jsx)("button",{type:"button",className:`flex h-6 w-6 shrink-0 items-center justify-center rounded transition-all hover:bg-zinc-700 hover:text-[var(--foreground)] ${e?"text-amber-400 opacity-100":`text-[var(--muted-foreground)] ${d?"opacity-100":"opacity-0 group-hover:opacity-100"}`}`,onClick:a=>{a.stopPropagation(),g()},title:e?"Unpin ticket":"Pin to top","aria-label":e?"Unpin ticket":"Pin to top",children:(0,b.jsx)(ao,{size:10,className:e?"fill-current":""})}),(0,b.jsx)("button",{type:"button",className:`flex h-6 w-6 shrink-0 items-center justify-center rounded text-[var(--muted-foreground)] transition-all hover:bg-zinc-700 hover:text-[var(--foreground)] ${d?"opacity-100":"opacity-0 group-hover:opacity-100"} ${a.url?"":"cursor-not-allowed opacity-40 hover:bg-transparent hover:text-[var(--muted-foreground)]"}`,onClick:a=>{m(a)},title:j?"Copied ticket URL":"Copy ticket URL","aria-label":j?"Copied ticket URL":"Copy ticket URL",disabled:!a.url,children:j?(0,b.jsx)(x.Check,{size:10,className:"text-emerald-400"}):(0,b.jsx)(N,{size:10})}),(0,b.jsx)("button",{type:"button",className:`flex h-6 w-6 shrink-0 items-center justify-center rounded text-[var(--muted-foreground)] transition-all hover:bg-zinc-700 hover:text-[var(--foreground)] ${d?"opacity-100":"opacity-0 group-hover:opacity-100"} ${a.url?"":"cursor-not-allowed opacity-40 hover:bg-transparent hover:text-[var(--muted-foreground)]"}`,onClick:n,title:a.url?"Open this Linear ticket in a new tab":"This ticket does not have a Linear URL","aria-label":a.url?"Open this Linear ticket in a new tab":"This ticket does not have a Linear URL",disabled:!a.url,children:(0,b.jsx)(I.ExternalLink,{size:10})})]})]})}var ar=a.i(552605);function as({issueId:a}){let[d,e]=(0,c.useState)(null),[f,g]=(0,c.useState)(!1),h=(0,c.useRef)(null),i=(0,c.useCallback)(async()=>{try{let b=await fetch(`/api/linear/issues/${encodeURIComponent(a)}/recap`);if(!b.ok)return null;let c=await b.json();return e(c),c}catch{return null}},[a]),j=(0,c.useCallback)(a=>{h.current&&(clearTimeout(h.current),h.current=null),(a?.status==="queued"||a?.status==="running")&&(h.current=setTimeout(async()=>{j(await i())},3e3))},[i]);(0,c.useEffect)(()=>(e(null),(async()=>{j(await i())})(),()=>{h.current&&clearTimeout(h.current)}),[a,i,j]);let k=(0,c.useCallback)(async()=>{g(!0);try{await fetch(`/api/linear/issues/${encodeURIComponent(a)}/recap`,{method:"POST"});let b=await i();j(b)}finally{g(!1)}},[a,i,j]),l=d?.status==="queued"||d?.status==="running"||f;return(0,b.jsxs)("section",{className:"border-b border-[var(--card-border)] px-6 py-4",children:[(0,b.jsxs)("div",{className:"mb-2 flex items-center justify-between",children:[(0,b.jsx)("h2",{className:"text-xs font-semibold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Recap"}),(0,b.jsxs)("div",{className:"flex items-center gap-3 text-[11px] text-[var(--muted-foreground)]",children:[l?(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[(0,b.jsx)(J.Loader2,{size:12,className:"animate-spin"}),"Updating…"]}):(0,b.jsxs)("span",{children:["Updated ",function(a){if(!a)return"never";let b=Math.round((Date.now()-new Date(a).getTime())/6e4);if(b<1)return"just now";if(b<60)return`${b}m ago`;let c=Math.round(b/60);if(c<24)return`${c}h ago`;let d=Math.round(c/24);return`${d}d ago`}(d?.generatedAt??null)]}),(0,b.jsxs)("button",{type:"button",onClick:k,disabled:l,className:"flex items-center gap-1 rounded border border-[var(--card-border)] px-2 py-1 text-[11px] text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)] disabled:opacity-50",children:[(0,b.jsx)(m.RefreshCw,{size:10}),"Regenerate"]})]})]}),(0,b.jsxs)("div",{className:"text-sm text-[var(--foreground)]",children:[d?.content?(0,b.jsx)(w.Markdown,{content:d.content,isUser:!1}):(0,b.jsx)("p",{className:"text-[var(--muted-foreground)]",children:"No recap yet. Click Regenerate to create one."}),d?.error?(0,b.jsxs)("p",{className:"mt-2 text-xs text-red-400",children:["Last run failed: ",d.error]}):null]})]})}var at=a.i(549429);function au({runs:a,onSelect:c}){return 0===a.length?(0,b.jsx)("div",{className:"px-4 py-6 text-center text-xs text-[var(--muted-foreground)]",children:"No sessions yet. Start one below."}):(0,b.jsx)("div",{className:"flex flex-col",children:a.map(a=>{let d=ae(a);return(0,b.jsxs)("button",{type:"button",onClick:()=>c(a.id),className:"flex w-full items-start justify-between gap-3 border-b border-[var(--card-border)] px-4 py-3 text-left transition-colors hover:bg-[var(--overlay-panel-soft)]",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("p",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:af(a)}),(0,b.jsxs)("p",{className:"mt-1 flex items-center gap-2 text-[11px] text-[var(--muted-foreground)]",children:[(0,b.jsx)("span",{children:a.agentName}),(0,b.jsx)("span",{children:"·"}),(0,b.jsx)(k.Clock,{size:10}),(0,b.jsx)("span",{children:new Date(a.updatedAt).toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})})]})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,b.jsxs)("div",{className:`flex items-center gap-1.5 rounded-md border px-2 py-0.5 ${ah[d.tone]}`,children:[(0,b.jsx)("div",{className:`h-1.5 w-1.5 rounded-full ${ai[d.tone]}`}),(0,b.jsx)("span",{className:"text-[10px] font-semibold uppercase tracking-wider",children:d.label})]}),(0,b.jsx)(at.ArrowRight,{className:"mt-0.5 h-4 w-4 text-[var(--muted-foreground)]"})]})]},a.id)})})}function av(a,b){return a.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||b}let aw=(0,f.default)(async()=>{},{loadableGenerated:{modules:[844118]},ssr:!1});function ax({issue:a,runs:d,participants:e,projectId:f,projectSlug:g,issueStatusOptions:h,issueStatusUpdating:i,onIssueStatusChange:j,activeSessionScriptLabel:k,onOpenSessionScripts:l,onStartScriptedSession:m,createRun:n,updateRun:o,onRunCreated:p,onSelectRun:q}){let r=e[0],s=(0,c.useRef)(null);s.current||(s.current=globalThis.crypto?.randomUUID?.()??`thread-${Date.now()}-${Math.random().toString(36).slice(2)}`);let{messages:t,setMessages:w,chatRuns:x}=(0,u.useGroupChat)(s.current),{processes:y}=(0,v.useProcessPolling)({workspaceId:s.current},{messages:t,setMessages:w}),z=(0,c.useMemo)(()=>new Set(["queued","running","awaiting_user","blocked"]),[]),A=x.some(a=>z.has(a.status))||y.some(a=>"spawning"===a.state||"running"===a.state)?x.some(a=>"queued"===a.status)?"queued":"working":"ready",B=(0,c.useRef)(!1),C=(0,c.useCallback)(async(b,c,d,h,i,j,k)=>{if(B.current)return;B.current=!0;let l=(i?e.find(a=>a.id===i):null)??r;if(!l){B.current=!1;return}try{var m,q,s,t;let c,d,e,h,i,r,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,{run:K,recapContent:L}=await n({projectId:f??null,projectSlug:g??null,issueId:a.id,issueIdentifier:a.identifier,issueTitle:a.title,issueStatus:a.status,issueAssignee:a.assignee??null,agentId:l.id,agentName:l.name,mode:"chat"}),{promptPrefix:M}=(e=(s=m={issue:{identifier:a.identifier,title:a.title,status:a.status,assignee:a.assignee},project:g?{slug:g}:null,runtime:{recapContent:L}}).issue.identifier.trim()||"TICKET-ID",h=s.issue.title.trim()||"Untitled ticket",i=String(s.issue.status??"").trim()||"Unknown",r=String(s.issue.assignee??"").trim()||"Unassigned",u=function(a){let b=String(a?.slug??"").trim();if(b)return av(b,"project");let c=String(a?.name??"").trim();return c?av(c,"project"):"project"}(s.project),v=String(s.project?.name??"").trim()||u,w=String(s.runtime?.knowledgeBaseRoot??"").trim()||`~/.agx/vault/${u}`,x=String(s.runtime?.issueKnowledgePath??"").trim()||`${w}/issues/${e}/`,y=String(s.runtime?.isolatedWorktreePath??"").trim()||`/tmp/agx-${av(e,"ticket")}`,A=(z={issue:{identifier:e,title:h,status:i,assignee:r},project:{name:v,slug:u,label:(t=s.project,c=String(t?.name??"").trim(),d=String(t?.slug??"").trim(),c&&d?`${c} (${d})`:c||d||"current project"),repos:s.project?.repos?[...s.project.repos]:[]},runtime:{knowledgeBaseRoot:w,issueKnowledgePath:x,isolatedWorktreePath:y}}).issue.identifier,B=z.issue.title,C=z.issue.status,D=z.issue.assignee,E=z.runtime.knowledgeBaseRoot,F=z.runtime.issueKnowledgePath,G=z.runtime.isolatedWorktreePath,H="",(I=m.runtime?.recapContent?.trim())&&(H=`TICKET RECAP
|
|
24
|
-
${I}`),J=["TICKET EXECUTION","You are an engineer working through a single ticket from the project's issue tracker (Linear, Jira, or whichever tracker is configured). Work like a careful teammate: continue existing work when present, investigate before coding, present a plan before implementation, ask clarifying questions when requirements are ambiguous, and stop cleanly when blocked instead of guessing.",'TERMINOLOGY NOTE\n- "Ticket" / "issue" = the work item you are executing (from Linear, Jira, etc.)\n- "Task" in this project\'s UI = a scheduled or manual background task (cron jobs, automations) — NOT this ticket.\n- Do not confuse scheduled tasks with the ticket you are working on.',`INJECTED CONTEXT
|
|
25
|
-
- Ticket: ${A}
|
|
26
|
-
- Title: ${B}
|
|
27
|
-
- Current status: ${C}
|
|
28
|
-
- Current assignee: ${D}
|
|
29
|
-
- Project: ${z.project.label}
|
|
30
|
-
- Knowledge base root: ${E}
|
|
31
|
-
- Issue knowledge path: ${F}
|
|
32
|
-
- Suggested isolated worktree: ${G}
|
|
33
|
-
- Additional project resources such as repo knowledge, project memory, and project variables are injected separately by the active project context.`,`SOURCE REPOSITORIES
|
|
34
|
-
${!(q=z.project.repos)||0===q.length?"- Use the active project context to discover the right repository or workspace; do not hardcode paths.":q.map(a=>{let b=[a.name.trim()||"repository"],c=String(a.path??"").trim(),d=String(a.notes??"").trim();return c&&b.push(`path: ${c}`),d&&b.push(`notes: ${d}`),`- ${b.join(" | ")}`}).join("\n")}`,"WORKFLOW\n1. Read the full issue and comment thread before acting. Use the issue tracker MCP for issue details, comments, state changes, and follow-up.\n2. Prefer resuming existing work: existing knowledge-base notes, branches, PRs, or prior discussion.\n3. If requirements are unclear, ask specific clarifying questions in the issue tracker and stop.\n4. If the ticket is fresh, investigate first, capture findings in the knowledge base, write a plan, and share the plan before implementation.\n5. If a reviewed plan already exists or the ticket is explicitly ready for implementation, implement in an isolated worktree or equivalent isolated workspace rather than a shared checkout.\n6. Validate with the appropriate tests, linting, type checks, and manual verification for the change.\n7. Keep the issue tracker accurate: comments, links, statuses, blockers, and PR references should match reality.\n8. Keep the knowledge base current with what you learned, what changed, and what remains.\n9. Work on exactly this ticket during this session.","RULES\n- Use the injected project context instead of hardcoded repo-specific paths or conventions.\n- Use knowledge base terminology; the filesystem path above is the storage location.\n- If a PR already exists, focus on CI failures, reviewer feedback, merge status, or ticket follow-up instead of starting over.\n- Leave the ticket and the knowledge base in a resumable state at the end of the session. Clean up temporary worktrees or session claims if your workflow created them."],H&&J.splice(3,0,H),{prompt:`Work on this ticket: ${A} - ${B}`,promptPrefix:J.join("\n\n")+"\n\n"}),N=M+(j?`
|
|
35
|
-
${j}`:""),O=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:b,promptPrefix:N,threadId:K.threadId,activeParticipantIds:[l.id],projectSlug:g??void 0,routing:k})}),P=await O.json().catch(()=>({}));if(!O.ok||!P.chatRunId||!P.userMessageId)throw Error(P.error||"Failed to start chat session");await o(K.id,{chatRunId:P.chatRunId,rootMessageId:P.userMessageId}),p(K.id)}catch(a){console.error("Failed to create chat session:",a),B.current=!1,a instanceof Error&&window.alert(a.message)}},[a,e,r,f,g,n,o,p]);return(0,b.jsxs)("div",{className:"relative flex min-w-0 flex-1 flex-col overflow-hidden",children:[(0,b.jsxs)("header",{className:"flex h-12 shrink-0 items-center justify-between border-b border-[var(--card-border)] px-6",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,b.jsx)("span",{className:"shrink-0 font-mono text-sm text-[var(--muted-foreground)]",children:a.identifier}),(0,b.jsx)("div",{className:"h-1 w-1 shrink-0 rounded-full bg-[var(--card-border)]"}),(0,b.jsx)("span",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:a.title})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,b.jsx)(am,{status:a.status,options:h,disabled:0===h.length,updating:i,onChange:b=>j(a,b)}),(0,b.jsxs)("button",{type:"button",className:"flex items-center gap-1 rounded-md border border-[var(--card-border)] px-2 py-1 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:l,title:`Session script: ${k}`,children:[(0,b.jsx)(ar.FileText,{size:12}),(0,b.jsx)("span",{className:"max-w-[120px] truncate",children:"AGX default"===k?"Session script":k})]}),(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-md bg-blue-500 px-2.5 py-1 text-xs font-medium text-white transition-colors hover:bg-blue-600",onClick:m,children:[(0,b.jsx)(R.Play,{size:12}),(0,b.jsx)("span",{children:"Start scripted session"})]})]})]}),(0,b.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto pb-64",children:[(0,b.jsx)(as,{issueId:a.id}),(0,b.jsx)(au,{runs:d,onSelect:q})]}),(0,b.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:(0,b.jsx)(aw,{onSend:C,onStop:()=>{},participants:e,projectId:f??void 0,projectSlug:g??void 0,loading:"ready"!==A,commands:[],activityStatus:A,placeholder:`Ask about ${a.identifier}...`,initialPinnedParticipantId:r?.id})})]})}let ay=(0,f.default)(async()=>{},{loadableGenerated:{modules:[844118]},ssr:!1});function az({issue:a,run:d,participants:e,issueStatusOptions:f,issueStatusUpdating:g,onIssueStatusChange:h,onBack:i}){let{messages:l,setMessages:m,sendMessage:n,loadHistory:o,stop:q}=(0,u.useGroupChat)(d.threadId),{processes:r,streaming:s,chatRuns:t}=(0,v.useProcessPolling)(d.rootMessageId?{workspaceId:d.threadId,threadId:d.rootMessageId}:{workspaceId:d.threadId},{messages:l,setMessages:m}),x=(0,c.useMemo)(()=>{let a=t[0];if(!a)return ae(d);let b={queued:"queued",running:"running",awaiting_user:"running",blocked:"running",completed:"success",failed:"failed",cancelled:"cancelled"}[a.status]??d.status;return ae({...d,status:b})},[t,d]);(0,c.useEffect)(()=>{o()},[o,d.threadId]);let y=(0,c.useMemo)(()=>new Map(e.map(a=>[a.id,a])),[e]),z=new Set(["queued","running","awaiting_user","blocked"]),A=t.some(a=>z.has(a.status))||r.some(a=>"spawning"===a.state||"running"===a.state)?t.some(a=>"queued"===a.status)?"queued":"working":"ready",B=(0,c.useCallback)((a,b,c,f,g,h,i)=>{d.rootMessageId&&n(a,b,void 0,d.rootMessageId,c,void 0,(0,H.orderParticipantIds)(e.map(a=>a.id),g),d.projectSlug??void 0,h,i)},[e,d.projectSlug,d.rootMessageId,n]);return(0,b.jsxs)("div",{className:"relative flex min-w-0 flex-1 flex-col overflow-hidden",children:[(0,b.jsxs)("header",{className:"flex h-12 shrink-0 items-center justify-between border-b border-[var(--card-border)] px-6",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[i&&(0,b.jsx)("button",{type:"button",onClick:i,className:"shrink-0 rounded p-0.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",title:"Back to sessions",children:(0,b.jsx)(j.ChevronLeft,{size:16})}),(0,b.jsx)("span",{className:"shrink-0 font-mono text-sm text-[var(--muted-foreground)]",children:a.identifier}),(0,b.jsx)("div",{className:"h-1 w-1 shrink-0 rounded-full bg-[var(--card-border)]"}),(0,b.jsx)("span",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:af(d)})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-4",children:[(0,b.jsx)(am,{status:a.status,options:f,disabled:0===f.length,updating:g,onChange:b=>h(a,b)}),(0,b.jsxs)("div",{className:`flex items-center gap-2 rounded-md border px-2.5 py-1 ${ah[x.tone]}`,children:[(0,b.jsx)("div",{className:`h-1.5 w-1.5 rounded-full ${ai[x.tone]}`}),(0,b.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wider",children:x.label})]}),null!=d.durationMs&&(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)(k.Clock,{size:14}),(0,b.jsxs)("span",{children:[(d.durationMs/1e3).toFixed(1),"s"]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-full border border-[var(--card-border)] bg-[var(--card-bg)] px-2 py-1",children:[(0,b.jsx)("img",{src:ap(d.agentId,y.get(d.agentId)?.color),alt:d.agentName,className:"h-5 w-5 rounded-full object-cover"}),(0,b.jsx)("span",{className:"pr-1 text-xs font-medium",children:d.agentName})]})]})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-6 pb-64",children:0===l.length?(0,b.jsx)("div",{className:"py-8 text-center text-xs text-[var(--muted-foreground)]",children:"queued"===d.status||"running"===d.status?"Starting session...":"No thread messages yet."}):(0,b.jsxs)("div",{className:"mx-auto max-w-4xl space-y-8",children:[l.map(a=>{let c=a.participantId?y.get(a.participantId):null,e=(0,D.stripMarkers)(a.content);if(!e.trim())return null;let f=a.participantId??d.agentId;return(0,b.jsxs)("div",{className:"flex gap-3",children:["user"===a.role?(0,b.jsx)("div",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-[var(--app-shell-subtle,var(--card-bg))]",children:(0,b.jsx)(p.User,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]"})}):(0,b.jsx)("img",{src:ap(f,c?.color),alt:c?.name??d.agentName,className:"h-7 w-7 shrink-0 rounded-full object-cover"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 flex flex-col gap-1.5",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("div",{className:"flex items-center gap-2",children:"user"===a.role?(0,b.jsx)("span",{className:"text-sm font-semibold text-[var(--foreground)]",children:"You"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-sm font-semibold",style:{color:c?.color??"var(--foreground)"},children:c?.name??d.agentName}),(0,b.jsx)("span",{className:"rounded bg-[var(--card-bg)] px-1.5 py-0.5 text-[10px] font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Agent"})]})}),(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:new Date(a.timestamp).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})]}),"user"===a.role?(0,b.jsx)("div",{className:"w-fit max-w-[85%] rounded-xl rounded-tl-sm border border-[var(--card-border)] bg-[var(--card-bg)] px-4 py-3 text-sm text-[var(--foreground)]",children:(0,b.jsx)(w.Markdown,{content:e,isUser:!0})}):(0,b.jsx)("div",{className:"text-sm text-[var(--foreground)]",children:(0,b.jsx)(w.Markdown,{content:e,isUser:!1})})]})]},a.id)}),Object.entries(s).filter(([,a])=>!d.rootMessageId||a.rootMessageId===d.rootMessageId).map(([a])=>{let c=y.get(a);return(0,b.jsxs)("div",{className:"flex items-center gap-3 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)("img",{src:ap(a,c?.color),alt:c?.name??d.agentName,className:"h-7 w-7 shrink-0 rounded-full object-cover"}),c?.name??d.agentName," is thinking..."]},`stream-${a}`)})]})}),(0,b.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:d.rootMessageId?(0,b.jsx)(ay,{onSend:B,onStop:q,participants:e,projectId:d.projectId??void 0,projectSlug:d.projectSlug??void 0,loading:"ready"!==A,commands:[],activityStatus:A,placeholder:"Continue this session...",initialPinnedParticipantId:d.agentId}):(0,b.jsx)("div",{className:"px-2 py-1 text-xs text-[var(--muted-foreground)]",children:"Waiting for the session to start..."})})]})}function aA({projectId:a,projectSlug:d,initialShowSettings:e}){let{isTouchLayout:f}=(0,E.useInputCapabilities)(),{connected:g,loading:j,user:k,clis:p,mcpConfigured:u,connect:v,connectWithKey:w,disconnect:x,configureMcp:y}=(0,s.useLinearConnection)(a??""),[z,A]=(0,c.useState)(!1),[B,D]=(0,c.useState)(e??!1),[H,I]=(0,c.useState)(!1),[J,K]=(0,c.useState)(()=>(0,G.loadLinearTicketPanelWidth)()||576),[M,N]=(0,c.useState)(""),[O,P]=(0,c.useState)(""),[Q,R]=(0,c.useState)(!1),[S,T]=(0,c.useState)([]),[U,V]=(0,c.useState)([]),[W,X]=(0,c.useState)([]),[Y,Z]=(0,c.useState)([]),[$,_]=(0,c.useState)([]),[aa,ab]=(0,c.useState)([]),[ac,ag]=(0,c.useState)(""),[ah,ai]=(0,c.useState)(""),[am,ao]=(0,c.useState)("activity"),[ar,as]=(0,c.useState)("desc"),[at,au]=(0,c.useState)(!1),[av,aw]=(0,c.useState)(()=>new Set),[ay,aA]=(0,c.useState)(null),[aB,aC]=(0,c.useState)(null),{participants:aD}=function(a){let[b,d]=(0,c.useState)([]),[e,f]=(0,c.useState)(!1);return(0,c.useEffect)(()=>{let b=!1;return async function(){try{let c=await fetch("/api/participants"),e=c.ok?await c.json():[];if(!a){b||(d(e),f(!0));return}let g=new URLSearchParams;g.set("projectId",a);let h=await fetch(`/api/linear/worker?${g}`).catch(()=>null),i=h?.ok?await h.json().catch(()=>null):null,j=i?.job?.teamId||void 0;if(j){let c=await fetch(`/api/projects/${encodeURIComponent(a)}/teams/${encodeURIComponent(j)}/agents`);if(c.ok){let a=await c.json(),g=Array.isArray(a.agents)?a.agents.sort((a,b)=>(a.routing_order??0)-(b.routing_order??0)).map(a=>a.agent_id).filter(a=>"string"==typeof a&&a.trim().length>0):[];if(g.length>0){let a=new Map(g.map((a,b)=>[a,b])),c=e.filter(b=>a.has(b.id)).sort((b,c)=>(a.get(b.id)??Number.MAX_SAFE_INTEGER)-(a.get(c.id)??Number.MAX_SAFE_INTEGER));if(!b&&c.length>0){d(c),f(!0);return}}}}let k=await fetch(`/api/projects/${encodeURIComponent(a)}/agents`);if(!k.ok){b||(d(e),f(!0));return}let l=await k.json(),m=Array.isArray(l.agents)?l.agents.map(a=>a.agent_id).filter(a=>"string"==typeof a&&a.trim().length>0):[],n=new Map(m.map((a,b)=>[a,b])),o=e.filter(a=>n.has(a.id)).sort((a,b)=>(n.get(a.id)??Number.MAX_SAFE_INTEGER)-(n.get(b.id)??Number.MAX_SAFE_INTEGER));b||(d(o),f(!0))}catch{b||(d([]),f(!0))}}(),()=>{b=!0}},[a]),{participants:b,participantsLoaded:e}}(a),{issueActiveAgents:aE}=function(a){let[b,d]=(0,c.useState)(new Map);return(0,c.useEffect)(()=>{let b=!1;async function c(){try{let c=new URLSearchParams;a&&c.set("projectId",a);let e=await fetch(`/api/linear/issues/active-agents?${c}`);if(!e.ok||b)return;let f=await e.json(),g=new Map;for(let a of f.agents??[]){let b=g.get(a.issueId)??[];b.push({agentId:a.agentId,agentName:a.agentName}),g.set(a.issueId,b)}b||d(g)}catch{}}c();let e=setInterval(()=>void c(),5e3);return()=>{b=!0,clearInterval(e)}},[a]),{issueActiveAgents:b}}(a),[aF,aG]=(0,c.useState)(null),[aH,aI]=(0,c.useState)(null),[aJ,aK]=(0,c.useState)("runs"),aL=(0,c.useRef)(null),aM=(0,c.useRef)(!0),aN=(0,c.useRef)(null),aO=(0,c.useRef)(null),{getSelection:aP,pushSelection:aQ,replaceSelection:aR}=(0,r.useUrlSelection)(),aS=aP("issue"),aT=aP("run"),aU=(0,c.useCallback)(a=>{N(a),aL.current&&clearTimeout(aL.current),aL.current=setTimeout(()=>P(a),300)},[]),aV=(0,c.useCallback)(a=>{aw(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[d]);(0,c.useEffect)(()=>()=>{aL.current&&clearTimeout(aL.current)},[]),(0,c.useEffect)(()=>{let a={...F};aM.current=!0,N(a.search),P(a.search),Z(a.assigneeIds),_(a.statuses),ai(a.teamId),ag(a.cycleId),ao(a.sortBy),as(a.sortDir),au(a.hasActivity),aw(new Set)},[d]),(0,c.useEffect)(()=>{if(aM.current){aM.current=!1;return}},[d,M,Y,$,ah,ac,am,ar,at]),(0,c.useEffect)(()=>{if(!g||!a)return;let b=!1;R(!1);let c=new URLSearchParams;return c.set("projectId",a),d&&c.set("projectSlug",d),fetch(`/api/linear/options?${c.toString()}`).then(a=>a.json()).then(a=>{b||(T(Array.isArray(a.assignees)?a.assignees:[]),V(Array.isArray(a.statuses)?a.statuses:[]),X(Array.isArray(a.teams)?a.teams:[]),ab(Array.isArray(a.cycles)?a.cycles:[]),R(!0))}).catch(()=>{b||(T([]),V([]),X([]),ab([]),R(!0))}),()=>{b=!0}},[g,a,d]),(0,c.useEffect)(()=>{if(!Q)return;let a=Y.filter(a=>S.some(b=>b.id===a));a.length!==Y.length&&Z(a)},[S,Q,Y]),(0,c.useEffect)(()=>{if(!Q)return;let a=$.filter(a=>U.includes(a));a.length!==$.length&&_(a)},[Q,$,U]),(0,c.useEffect)(()=>{if(Q){if(W.length<=1&&ah)return void ai("");ah&&!W.some(a=>a.id===ah)&&ai("")}},[Q,ah,W]),(0,c.useEffect)(()=>{Q&&ac&&!aa.some(a=>a.id===ac)&&ag("")},[aa,Q,ac]);let{issues:aW,loading:aX,hasMore:aY,loadMore:aZ,refresh:a$,updateIssue:a_}=function(a,b=!0,d){let[e,f]=(0,c.useState)([]),[g,h]=(0,c.useState)(!0),[i,j]=(0,c.useState)(null),[k,l]=(0,c.useState)(!1),m=(0,c.useRef)(i),n=(0,c.useRef)(!1);m.current=i,(0,c.useEffect)(()=>{n.current=!1},[d.projectSlug]);let o=(0,c.useCallback)(async(c,e=!1)=>{if(b&&d.projectId){h(!0);try{let b=new URLSearchParams;if(b.set("projectId",d.projectId),a.teamId&&b.set("teamId",a.teamId),a.statuses?.length)for(let c of a.statuses)b.append("status",c);if(a.search&&b.set("search",a.search),a.assigneeIds?.length)for(let c of a.assigneeIds)b.append("assigneeId",c);else a.assignedToMe&&b.set("assignedToMe","true");a.cycleId&&b.set("cycleId",a.cycleId),a.sortBy&&b.set("sortBy",a.sortBy),a.sortDir&&b.set("sortDir",a.sortDir),a.hasActivity&&b.set("hasActivity","true"),c&&m.current&&b.set("cursor",m.current),d.projectSlug&&b.set("projectSlug",d.projectSlug),d.limit&&b.set("limit",String(d.limit)),e&&b.set("refresh","true");let g=await fetch(`/api/linear/issues?${b.toString()}`),h=await g.json(),i=h.issues??[];f(a=>c?[...a,...i]:i),j(h.pageInfo?.endCursor??null),l(h.pageInfo?.hasNextPage??!1),n.current=!0}catch{c||f([])}finally{h(!1)}}},[a.teamId,a.statuses,a.search,a.assigneeIds,a.assignedToMe,a.cycleId,a.sortBy,a.sortDir,a.hasActivity,b,d.projectId,d.projectSlug,d.limit]);(0,c.useEffect)(()=>{j(null),o(!1,!n.current)},[o]);let p=(0,c.useCallback)(()=>o(!0),[o]);return{issues:e,loading:g,hasMore:k,loadMore:p,refresh:(0,c.useCallback)(()=>(j(null),o(!1,!0)),[o]),updateIssue:(0,c.useCallback)(a=>{f(b=>b.map(b=>b.id===a.id?a:b))},[])}}((0,c.useMemo)(()=>({search:O||void 0,statuses:$.length>0&&$.length<U.length?$:void 0,assigneeIds:Y.length>0?Y:void 0,teamId:ah||void 0,cycleId:ac||void 0,sortBy:am,sortDir:ar,hasActivity:at||void 0}),[O,Y,ac,$,ah,U.length,am,ar,at]),g&&Q&&!!a,{projectId:a??"",projectSlug:d}),a0=(0,c.useMemo)(()=>aS?aW.find(a=>a.id===aS)??null:null,[aW,aS]),a1=a0??(ay?.id===aS?ay:null),a2=(0,c.useMemo)(()=>{if(0===av.size)return aW;let a=[],b=[];for(let c of aW)av.has(c.id)?a.push(c):b.push(c);return[...a,...b]},[aW,av]),{runs:a3,loading:a4,createRun:a5,updateRun:a6}=function(a,b){let[d,e]=(0,c.useState)([]),[f,g]=(0,c.useState)(!1),h=(0,c.useRef)(a??null);h.current=a??null;let i=(0,c.useCallback)(async()=>{let a=h.current?.trim();if(!a)return e([]),[];g(!0);try{let c=new URLSearchParams({issueId:a});b&&c.set("projectId",b);let d=await fetch(`/api/linear/runs?${c.toString()}`);if(!d.ok)throw Error(`Failed to fetch Linear runs: ${d.status}`);let f=await d.json(),g=Array.isArray(f.runs)?f.runs:[];return e(g),g}finally{g(!1)}},[b]);return(0,c.useEffect)(()=>{e([]),i()},[i,a]),(0,c.useEffect)(()=>{if(!a)return;let b=window.setInterval(()=>{i()},3e3);return()=>window.clearInterval(b)},[a,i]),{runs:d,loading:f,refresh:i,createRun:(0,c.useCallback)(async a=>{let b=await fetch("/api/linear/runs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error((await b.json().catch(()=>({}))).error||`Failed to create Linear run: ${b.status}`);let c=await b.json(),d=c.run,f=c.recapContent??null;return e(a=>[d,...a.filter(a=>a.id!==d.id)]),{run:d,recapContent:f}},[]),updateRun:(0,c.useCallback)(async(a,b)=>{let c=await fetch(`/api/linear/runs/${encodeURIComponent(a)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});if(!c.ok)throw Error((await c.json().catch(()=>({}))).error||`Failed to update Linear run: ${c.status}`);let d=(await c.json()).run;return e(a=>a.map(a=>a.id===d.id?d:a)),d},[])}}(a1?.id,a??null),{scripts:a7,activeScriptId:a8,activeScript:a9,setActiveScriptId:ba,saveScript:bb,deleteScript:bc}=function(a){let[b,d]=(0,c.useState)([]),[e,f]=(0,c.useState)(null);(0,c.useEffect)(()=>{let a={...t};d(a.scripts),f(a.activeScriptId)},[a]);let g=(0,c.useCallback)((a,b)=>{d(a),f(b)},[a]),h=(0,c.useCallback)(a=>{let c=a&&b.some(b=>b.id===a)?a:null;g(b,c)},[g,b]),i=(0,c.useCallback)(a=>{let c=new Date().toISOString(),d=a.name.trim(),e=a.prompt.trim();if(!d||!e)throw Error("Run script name and prompt are required.");let f=a.id?b.find(b=>b.id===a.id):null,h=f?{...f,name:d,prompt:e,updatedAt:c}:{id:crypto.randomUUID(),name:d,prompt:e,createdAt:c,updatedAt:c};return g([...f?b.map(a=>a.id===f.id?h:a):[h,...b]].sort((a,b)=>b.updatedAt.localeCompare(a.updatedAt)),h.id),h},[g,b]),j=(0,c.useCallback)(a=>{g(b.filter(b=>b.id!==a),e===a?null:e)},[e,g,b]),k=(0,c.useMemo)(()=>b.find(a=>a.id===e)??null,[e,b]);return{scripts:b,activeScriptId:e,activeScript:k,setActiveScriptId:h,saveScript:i,deleteScript:j}}(d),bd=aT?a3.find(a=>a.id===aT)??null:null,be=(0,c.useMemo)(()=>S.map(a=>({value:a.id,label:a.name})),[S]),bf=(0,c.useMemo)(()=>U.map(a=>({value:a,label:a})),[U]),bg=(0,c.useMemo)(()=>Array.from(new Set([a1?.status??"",...U].map(a=>a.trim()).filter(Boolean))).map(a=>({value:a,label:a})),[a1?.status,U]),bh=(0,c.useMemo)(()=>[{value:"",label:"Workspace"},...W.map(a=>({value:a.id,label:a.name}))],[W]),bi=(0,c.useMemo)(()=>[{value:"",label:"Cycle"},...aa.map(a=>({value:a.id,label:a.name||`Cycle ${a.number}`}))],[aa]),bj=bf.length>0,bk=bi.length>1,bl=bh.length>2,bm=a9?.name??"AGX default",bn=(0,c.useCallback)(async(b,c)=>{let d=c.trim();if(d&&d!==b.status){aC(b.id);try{let c=await fetch(`/api/linear/issues/${encodeURIComponent(b.id)}?projectId=${encodeURIComponent(a??"")}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:d})}),e=await c.json().catch(()=>({}));if(!c.ok||!e.issue)throw Error(e.error||"Failed to update ticket status");let f=e.issue;a_(f),aS===f.id&&aA(f),await a$()}catch(a){a instanceof Error&&window.alert(a.message)}finally{aC(a=>a===b.id?null:a)}}},[a$,aS,a_]);(0,c.useEffect)(()=>{if(!aS)return void aA(null);if(a0)return void aA(a=>a?.id===aS?a0:null);let a=!1;return(async()=>{try{let b=await fetch(`/api/linear/issues/${encodeURIComponent(aS)}`);if(a)return;if(404===b.status)return void aR({issue:null,run:null});if(!b.ok)throw Error(`Failed to fetch selected Linear ticket: ${b.status}`);let c=await b.json().catch(()=>({}));if(!c.issue?.id)return void aR({issue:null,run:null});aA(c.issue)}catch(b){a||console.error("Failed to hydrate selected Linear issue",b)}})(),()=>{a=!0}},[aR,a0,aS]),(0,c.useEffect)(()=>{if(!aS){aT&&aR({run:null});return}},[aR,aS,aT]),(0,c.useEffect)(()=>{a1&&aT&&!a4&&(a3.some(a=>a.id===aT)||aR({run:null}))},[aR,a3,a4,a1,aT]),(0,c.useEffect)(()=>{if(f){if(!a1)return void aK("runs");if(bd||0===a3.length)return void aK("ticket");aK("runs")}},[f,a3.length,a1,bd]),(0,c.useEffect)(()=>{if(!H)return;let a=a=>{let b=a.target;aO.current?.contains(b)||aN.current?.contains(b)||I(!1)},b=a=>{"Escape"===a.key&&I(!1)};return document.addEventListener("pointerdown",a),document.addEventListener("keydown",b),()=>{document.removeEventListener("pointerdown",a),document.removeEventListener("keydown",b)}},[H]);let bo=(0,c.useCallback)(async(b,c)=>{aG(null),aI(null);try{let e=await fetch("/api/linear/runs/scripted",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:a??void 0,projectSlug:d??void 0,issueId:b.id,issueIdentifier:b.identifier,issueTitle:b.title,issueStatus:b.status,issueAssignee:b.assignee,agentId:c.id,scriptName:a9?.name,scriptPrompt:a9?.prompt})}),f=await e.json().catch(()=>({}));if(!e.ok||!f.run||!f.chatRunId||!f.userMessageId)throw Error(f.error||"Failed to start scripted session");aQ({issue:b.id,run:f.run.id})}catch(a){console.error("Failed to start scripted Linear session:",a),a instanceof Error&&window.alert(a.message)}},[a9,a,d,aQ]),bp=(0,c.useCallback)((a,b)=>{if(I(!1),0===aD.length)return void window.alert("Add at least one agent to this project before starting a scripted session.");if(1===aD.length)return void bo(a,aD[0]);let c=b?.currentTarget?.getBoundingClientRect();aG(a),aI(c?{top:c.bottom+4,left:c.left}:{top:200,left:200})},[bo,aD]),bq=(0,c.useRef)(null);if((0,c.useEffect)(()=>{let a=bq.current;if(!a||!aY)return;let b=new IntersectionObserver(a=>{a[0]?.isIntersecting&&aZ()},{threshold:.1});return b.observe(a),()=>b.disconnect()},[aY,aZ]),j)return(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Loading..."});let br=g&&!z&&!Object.values(u).some(Boolean);return!g||br?(0,b.jsx)(L,{connected:g,user:k,clis:p,mcpConfigured:u,onConnect:v,onConnectWithKey:w,onDisconnect:x,onConfigureMcp:y,onContinue:()=>A(!0)}):(0,b.jsxs)("div",{className:"relative flex h-full overflow-hidden",children:[f?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,b.jsxs)("div",{className:"shrink-0 border-b border-[var(--card-border)]",children:[(0,b.jsxs)("div",{className:"flex h-12 items-center gap-2 px-3",children:[(0,b.jsxs)("div",{className:"flex flex-1 items-center gap-2 rounded-md border border-[var(--card-border)] bg-[var(--background)] px-2.5 py-1.5 transition-all focus-within:border-[var(--muted-foreground)] focus-within:ring-1 focus-within:ring-[var(--muted-foreground)]",children:[(0,b.jsx)(n.Search,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("input",{type:"text",className:"flex-1 bg-transparent text-sm outline-none placeholder:text-[var(--muted-foreground)]",placeholder:"Search tickets...",value:M,onChange:a=>aU(a.target.value)})]}),(0,b.jsx)("button",{type:"button",className:"shrink-0 rounded p-2 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)] disabled:cursor-not-allowed disabled:opacity-50",onClick:()=>void a$(),title:"Refresh tickets","aria-label":"Refresh tickets",disabled:aX,children:(0,b.jsx)(m.RefreshCw,{size:16,className:aX?"animate-spin":void 0})}),(0,b.jsx)("button",{type:"button",className:"shrink-0 rounded p-2 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:()=>{I(!1),D(!0)},title:"Linear settings",children:(0,b.jsx)(o.Settings,{size:16})})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 pb-2",children:[bj?(0,b.jsx)(an,{label:"Status",values:$,options:bf,activeClasses:"border-amber-500/30 bg-amber-500/10 text-amber-300",onChange:_,emptyLabel:"All statuses"}):null,(0,b.jsx)(an,{label:"Assignee",values:Y,options:be,activeClasses:"border-blue-500/30 bg-blue-500/10 text-blue-400",onChange:Z,emptyLabel:"All assignees"}),bl?(0,b.jsx)(al,{label:"Workspace",value:ah,options:bh,activeClasses:"border-emerald-500/30 bg-emerald-500/10 text-emerald-400",onChange:ai}):null,bk?(0,b.jsx)(al,{label:"Cycle",value:ac,options:bi,activeClasses:"border-purple-500/30 bg-purple-500/10 text-purple-400",onChange:ag}):null,(0,b.jsx)(al,{label:"Sort",value:am,options:[{value:"activity",label:"Activity"},{value:"identifier",label:"Ticket ID"},{value:"status",label:"Status"},{value:"created",label:"Created"}],activeClasses:"border-sky-500/30 bg-sky-500/10 text-sky-400",onChange:a=>ao(a)}),(0,b.jsx)("button",{type:"button",className:"rounded-full border border-[var(--card-border)] p-1 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",title:"desc"===ar?"Descending":"Ascending",onClick:()=>as(a=>"desc"===a?"asc":"desc"),children:"desc"===ar?(0,b.jsx)(h,{size:12}):(0,b.jsx)(i,{size:12})}),(0,b.jsx)("button",{type:"button",className:`flex items-center gap-1 rounded-full border px-2.5 py-1 text-[11px] font-medium transition-colors ${at?"border-orange-500/30 bg-orange-500/10 text-orange-400":"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,onClick:()=>au(a=>!a),children:"My activity"})]})]}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto",children:aX&&0===aW.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading tickets..."}):0===aW.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"No tickets found."}):(0,b.jsxs)(b.Fragment,{children:[a2.map((a,d)=>(0,b.jsxs)(c.default.Fragment,{children:[av.size>0&&!av.has(a.id)&&(0===d||av.has(a2[d-1].id))&&(0,b.jsx)("div",{className:"mx-4 border-t border-amber-500/20"}),(0,b.jsx)(aq,{issue:a,selected:a1?.id===a.id,pinned:av.has(a.id),activeAgents:aE.get(a.id),participants:aD,onSelect:()=>{aK("runs"),aQ({issue:a.id,run:null})},onTogglePin:()=>aV(a.id)})]},a.id)),aY?(0,b.jsx)("div",{ref:bq,className:"py-2 text-center text-xs text-[var(--muted-foreground)]",children:aX?"Loading...":"Load more"}):null]})})]}),a1?(0,b.jsxs)("div",{className:"absolute inset-0 z-20 flex flex-col bg-[var(--background)]",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 border-b border-[var(--card-border)] px-4 py-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-[10px] font-semibold uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:a1.identifier}),(0,b.jsx)("div",{className:"truncate text-sm font-semibold text-[var(--foreground)]",children:a1.title})]}),(0,b.jsx)("button",{type:"button",className:"rounded p-2 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:()=>aR({issue:null,run:null}),"aria-label":"Close ticket panel",children:(0,b.jsx)(q.X,{size:16})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 border-b border-[var(--card-border)] px-3 py-2",children:[(0,b.jsx)("button",{type:"button",className:`rounded-full px-3 py-1.5 text-xs font-medium transition-colors ${"runs"===aJ?"bg-[var(--card-bg)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]"}`,onClick:()=>aK("runs"),children:"Runs"}),(0,b.jsx)("button",{type:"button",className:`rounded-full px-3 py-1.5 text-xs font-medium transition-colors ${"ticket"===aJ?"bg-[var(--card-bg)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]"}`,onClick:()=>aK("ticket"),children:"Ticket"})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden",children:"runs"===aJ?(0,b.jsxs)("div",{className:"flex h-full flex-col overflow-hidden",children:[(0,b.jsxs)("div",{className:"relative flex items-center justify-between border-b border-[var(--card-border)] px-3 py-2",children:[(0,b.jsx)("h3",{className:"text-xs font-semibold text-[var(--foreground)]",children:"Sessions"}),(0,b.jsxs)("button",{ref:aN,type:"button",className:"inline-flex items-center gap-1 rounded px-2 py-1 text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)] disabled:cursor-not-allowed disabled:opacity-40",onClick:()=>{I(!1),aK("ticket"),aQ({run:null})},title:"Open a fresh chat for this ticket. You can choose or edit the session script in the ticket tab.","aria-label":"New session",disabled:!a1,children:[(0,b.jsx)(l.Plus,{size:12}),"New session"]})]}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto",children:a4&&0===a3.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading sessions..."}):0===a3.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"No previous sessions yet."}):a3.map(a=>{let c=ae(a);return(0,b.jsxs)("button",{type:"button",className:`w-full px-3 py-2 text-left text-xs transition-colors ${bd?.id===a.id?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]"}`,onClick:()=>{aK("ticket"),aQ({run:a.id})},children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-1",children:[(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-[11px] font-medium text-[var(--foreground)]",children:af(a)}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:new Date(a.startedAt).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})]}),(0,b.jsxs)("div",{className:"mt-0.5 flex items-center gap-1.5 text-[10px]",children:[(0,b.jsx)("span",{className:`font-medium ${aj[c.tone]}`,children:c.label}),(0,b.jsx)("span",{className:"truncate text-[var(--muted-foreground)]",children:a.agentName})]}),null!=a.durationMs?(0,b.jsxs)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:[(a.durationMs/1e3).toFixed(1),"s"]}):null]},a.id)})})]}):bd?(0,b.jsx)(az,{issue:a1??{id:bd.issueId,identifier:bd.issueIdentifier,title:bd.issueTitle,url:null,status:bd.issueStatus,assignee:bd.issueAssignee,updatedAt:bd.updatedAt},run:bd,participants:aD,issueStatusOptions:bg,issueStatusUpdating:aB===bd.issueId,onIssueStatusChange:bn,onBack:()=>aR({run:null})}):0===aD.length?(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Add at least one agent to this project to start a session."}):(0,b.jsx)(ax,{issue:a1,runs:a3,participants:aD,projectId:a,projectSlug:d,issueStatusOptions:bg,issueStatusUpdating:aB===a1.id,onIssueStatusChange:bn,activeSessionScriptLabel:bm,onOpenSessionScripts:()=>I(!0),onStartScriptedSession:a=>bp(a1,a),createRun:a5,updateRun:a6,onRunCreated:a=>aQ({run:a}),onSelectRun:a=>aQ({run:a})},a1.id)})]}):null]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex shrink-0 flex-col border-r border-[var(--card-border)]",style:{width:J},children:[(0,b.jsxs)("div",{className:"shrink-0 border-b border-[var(--card-border)]",children:[(0,b.jsxs)("div",{className:"flex h-12 items-center gap-2 px-3",children:[(0,b.jsxs)("div",{className:"flex flex-1 items-center gap-2 rounded-md border border-[var(--card-border)] bg-[var(--background)] px-2.5 py-1.5 transition-all focus-within:border-[var(--muted-foreground)] focus-within:ring-1 focus-within:ring-[var(--muted-foreground)]",children:[(0,b.jsx)(n.Search,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("input",{type:"text",className:"flex-1 bg-transparent text-sm outline-none placeholder:text-[var(--muted-foreground)]",placeholder:"Search tickets...",value:M,onChange:a=>aU(a.target.value)})]}),(0,b.jsx)("button",{type:"button",className:"shrink-0 rounded p-1.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)] disabled:cursor-not-allowed disabled:opacity-50",onClick:()=>void a$(),title:"Refresh tickets","aria-label":"Refresh tickets",disabled:aX,children:(0,b.jsx)(m.RefreshCw,{size:16,className:aX?"animate-spin":void 0})}),(0,b.jsx)("button",{type:"button",className:"shrink-0 rounded p-1.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:()=>{I(!1),D(!0)},title:"Linear settings",children:(0,b.jsx)(o.Settings,{size:16})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 px-3 pb-2",children:[bj?(0,b.jsx)(an,{label:"Status",values:$,options:bf,activeClasses:"border-amber-500/30 bg-amber-500/10 text-amber-300",onChange:_,emptyLabel:"All statuses"}):null,(0,b.jsx)(an,{label:"Assignee",values:Y,options:be,activeClasses:"border-blue-500/30 bg-blue-500/10 text-blue-400",onChange:Z,emptyLabel:"All assignees"}),bl?(0,b.jsx)(al,{label:"Workspace",value:ah,options:bh,activeClasses:"border-emerald-500/30 bg-emerald-500/10 text-emerald-400",onChange:ai}):null,bk?(0,b.jsx)(al,{label:"Cycle",value:ac,options:bi,activeClasses:"border-purple-500/30 bg-purple-500/10 text-purple-400",onChange:ag}):null,(0,b.jsx)(al,{label:"Sort",value:am,options:[{value:"activity",label:"Activity"},{value:"identifier",label:"Ticket ID"},{value:"status",label:"Status"},{value:"created",label:"Created"}],activeClasses:"border-sky-500/30 bg-sky-500/10 text-sky-400",onChange:a=>ao(a)}),(0,b.jsx)("button",{type:"button",className:"rounded-full border border-[var(--card-border)] p-0.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",title:"desc"===ar?"Descending":"Ascending",onClick:()=>as(a=>"desc"===a?"asc":"desc"),children:"desc"===ar?(0,b.jsx)(h,{size:12}):(0,b.jsx)(i,{size:12})}),(0,b.jsx)("button",{type:"button",className:`flex items-center gap-1 rounded-full border px-2.5 py-0.5 text-[11px] font-medium transition-colors ${at?"border-orange-500/30 bg-orange-500/10 text-orange-400":"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,onClick:()=>au(a=>!a),children:"My activity"})]})]}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto",children:aX&&0===aW.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading tickets..."}):0===aW.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"No tickets found."}):(0,b.jsxs)(b.Fragment,{children:[a2.map((a,d)=>(0,b.jsxs)(c.default.Fragment,{children:[av.size>0&&!av.has(a.id)&&(0===d||av.has(a2[d-1].id))&&(0,b.jsx)("div",{className:"mx-4 border-t border-amber-500/20"}),(0,b.jsx)(aq,{issue:a,selected:a1?.id===a.id,pinned:av.has(a.id),activeAgents:aE.get(a.id),participants:aD,onSelect:()=>aQ({issue:a.id,run:null}),onTogglePin:()=>aV(a.id)})]},a.id)),aY?(0,b.jsx)("div",{ref:bq,className:"py-2 text-center text-xs text-[var(--muted-foreground)]",children:aX?"Loading...":"Load more"}):null]})})]}),(0,b.jsx)(ak,{onResize:a=>K(b=>{let c=Math.max(180,Math.min(600,b+a));return(0,G.persistLinearTicketPanelWidth)(c),c})}),H?(0,b.jsx)("div",{ref:aO,className:"absolute right-6 top-16 z-20 max-h-[80vh] overflow-y-auto rounded-2xl border border-[var(--card-border)] bg-[var(--background)] p-4 shadow-2xl",style:{width:"min(760px, calc(100vw - 32px))"},children:(0,b.jsx)(C,{projectSlug:d,scripts:a7,activeScriptId:a8,onSetActiveScriptId:ba,onSaveScript:bb,onDeleteScript:bc})}):null,(0,b.jsx)("div",{className:"flex min-w-0 flex-1 flex-col overflow-hidden",children:bd?(0,b.jsx)(az,{issue:a1??{id:bd.issueId,identifier:bd.issueIdentifier,title:bd.issueTitle,url:null,status:bd.issueStatus,assignee:bd.issueAssignee,updatedAt:bd.updatedAt},run:bd,participants:aD,issueStatusOptions:bg,issueStatusUpdating:aB===bd.issueId,onIssueStatusChange:bn,onBack:()=>aR({run:null})}):a1?0===aD.length?(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Add at least one agent to this project to start a session."}):(0,b.jsx)(ax,{issue:a1,runs:a3,participants:aD,projectId:a,projectSlug:d,issueStatusOptions:bg,issueStatusUpdating:aB===a1.id,onIssueStatusChange:bn,activeSessionScriptLabel:bm,onOpenSessionScripts:()=>I(!0),onStartScriptedSession:a=>bp(a1,a),createRun:a5,updateRun:a6,onRunCreated:a=>aQ({run:a}),onSelectRun:a=>aQ({run:a})},a1.id):(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Select a ticket from the list."})})]}),B&&(0,b.jsx)(ad,{connected:g,user:k,clis:p,mcpConfigured:u,onConnect:v,onConnectWithKey:w,onDisconnect:x,onConfigureMcp:y,onClose:()=>D(!1),projectId:a}),H&&f?(0,b.jsx)("div",{className:"absolute inset-0 z-30 flex items-center justify-center bg-black/50 p-4",children:(0,b.jsx)("div",{ref:aO,className:"max-h-[85vh] w-full max-w-3xl overflow-y-auto rounded-2xl border border-[var(--card-border)] bg-[var(--background)] p-4 shadow-2xl",children:(0,b.jsx)(C,{projectSlug:d,scripts:a7,activeScriptId:a8,onSetActiveScriptId:ba,onSaveScript:bb,onDeleteScript:bc})})}):null,aF&&aH&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"fixed inset-0 z-40",onClick:()=>{aG(null),aI(null)}}),(0,b.jsxs)("div",{className:"fixed z-50 min-w-[180px] rounded border border-[var(--card-border)] bg-[var(--card-bg)] py-1 shadow-lg",style:{top:aH.top,left:aH.left},children:[(0,b.jsx)("div",{className:"px-3 py-1.5 text-[10px] font-semibold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Pick an agent"}),aD.map(a=>(0,b.jsxs)("button",{type:"button",className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs transition-colors hover:bg-[var(--card-bg)]",onClick:()=>void bo(aF,a),children:[(0,b.jsx)("img",{src:ap(a.id,a.color,20),alt:"",className:"h-5 w-5 shrink-0 rounded-full"}),(0,b.jsxs)("span",{className:"flex flex-col",children:[(0,b.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:a.name}),a.role?(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:a.role}):null]})]},a.id))]})]})]})}function aB({params:a}){let{slug:f}=(0,c.use)(a),g=(0,d.useSearchParams)(),{projects:h}=(0,e.useProjects)(),i=h.find(a=>a.slug===f),j="true"===g.get("settings");return(0,b.jsx)(aA,{projectId:i?.id,projectSlug:i?.slug??f,initialShowSettings:j})}a.s(["default",()=>aB],576608)}];
|
|
36
|
-
|
|
37
|
-
//# sourceMappingURL=apps_local_app_projects_%5Bslug%5D_linear_page_tsx_3fd25408._.js.map
|
package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_d30cc504._.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
module.exports=[161958,a=>{a.v({fileMentionFadeIn:"FileMentionPopover-module__pVaZsa__fileMentionFadeIn",popover:"FileMentionPopover-module__pVaZsa__popover"})},981717,29714,677955,279384,950364,177521,924434,45813,95348,382460,200369,340914,413169,719753,704238,589609,119616,745975,669417,667494,514840,a=>{"use strict";var b=a.i(786220);let c=/^[A-Za-z0-9_\-:]*$/,d={id:"all",name:"All",provider:"claude",model:null,color:"#6B7280"};function e(a,b,c){return c?a.startsWith(c)?3:b.startsWith(c)?2:a.includes(c)?1:null:0}function f({participants:a,projectGroups:f=[],projects:g=[],linearIssues:h=[],maxSuggestions:i=6}){let[j,k]=(0,b.useState)(null),[l,m]=(0,b.useState)(0),[n,o]=(0,b.useState)(!1),p=null!==j&&!n,q=j?.query??"",r=(0,b.useMemo)(()=>(function(a,b,c,f=[],g=[],h=[]){let i=b.toLowerCase(),j=new Map(a.map(a=>[a.id,a])),k=new Set;for(let a of f)for(let b of a.agents)k.add(b.agent_id);let l=[];for(let a of(null!==e("all","all",i)&&l.push({kind:"agent",participant:d,group:""}),f)){let b=e(a.name.toLowerCase(),a.id.toLowerCase(),i),c=[];for(let b of a.agents){let a=j.get(b.agent_id);if(!a)continue;let d=e(a.name.toLowerCase(),a.id.toLowerCase(),i);null!==d&&c.push({participant:a,score:d})}(null!==b||c.length>0)&&(null!==b&&l.push({kind:"project-group",project:a,group:a.name}),(null!==b&&i?a.agents.map(a=>j.get(a.agent_id)).filter(a=>!!a).map(a=>({participant:a,score:0})):c).sort((a,b)=>a.participant.name.localeCompare(b.participant.name)).forEach(({participant:b})=>{l.push({kind:"agent",participant:b,group:a.name})}))}for(let a of g)null!==e(a.name.toLowerCase(),a.slug.toLowerCase(),i)&&l.push({kind:"project",project:a,group:"Projects"});i&&h.map(a=>{var b,c;let d,e;return{issue:a,score:(b=a,c=i,d=b.identifier.toLowerCase(),e=b.title.toLowerCase(),d===c?5:d.startsWith(c)?4:e.startsWith(c)?3:d.includes(c)?2:e.includes(c)?1:null)}}).filter(a=>null!==a.score).sort((a,b)=>b.score!==a.score?b.score-a.score:a.issue.identifier.localeCompare(b.issue.identifier)).forEach(({issue:a})=>{l.push({kind:"ticket",issue:a,group:"Tickets"})});let m=[];for(let b of a){if(k.has(b.id))continue;let a=e(b.name.toLowerCase(),b.id.toLowerCase(),i);null!==a&&m.push({participant:b,score:a})}return m.sort((a,b)=>a.participant.name.localeCompare(b.participant.name)).forEach(({participant:a})=>{l.push({kind:"agent",participant:a,group:""})}),l.slice(0,c)})(a,q,i,f,g,h),[a,q,i,f,g,h]),s=(0,b.useCallback)((a,b)=>{let d=function(a,b){if(b<0||b>a.length)return null;let d=b;for(;d>0&&!/\s/.test(a[d-1]);)d--;let e=a.slice(d,b);if(!e.startsWith("@")||e.startsWith("@@@")||e.startsWith("@#"))return null;let f=e.startsWith("@@"),g=e.slice(f?2:1);return c.test(g)?{startIndex:d,endIndex:b,query:g.toLowerCase(),mode:f?"parallel":"sequential",isParallel:f}:null}(a,b);k(a=>((a?.startIndex!==d?.startIndex||a?.isParallel!==d?.isParallel||a?.query!==d?.query)&&m(0),d))},[]),t=(0,b.useCallback)((a,b)=>{n||s(a,b)},[n,s]),u=(0,b.useCallback)(a=>{if(!p||0===r.length)return!1;switch(a.key){case"ArrowDown":return a.preventDefault(),m(a=>a<r.length-1?a+1:0),!0;case"ArrowUp":return a.preventDefault(),m(a=>a>0?a-1:r.length-1),!0;case"Enter":case"Tab":return a.preventDefault(),!0;case"Escape":return a.preventDefault(),k(null),!0;default:return!1}},[p,r.length]),v=(0,b.useCallback)(a=>{if(!j)return null;let b="project-group"===a.kind||"project"===a.kind?a.project.name:"ticket"===a.kind?a.issue.identifier:a.participant.name,c=j.isParallel?"@@":"@";return{text:`${c}${b} `,startIndex:j.startIndex,endIndex:j.endIndex}},[j]),w=(0,b.useCallback)(()=>{k(null),m(0)},[]);return{isOpen:p,query:q,filteredSuggestions:r,activeIndex:l,token:j,isComposing:n,handleInput:t,handleKeyDown:u,selectSuggestion:v,close:w,startComposition:(0,b.useCallback)(()=>{o(!0)},[]),endComposition:(0,b.useCallback)((a,b)=>{o(!1),s(a,b)},[s])}}a.s(["useMentionAutocomplete",()=>f],981717);let g=/^[a-zA-Z0-9_-]*$/;function h({commands:a,maxSuggestions:c=6}){let[d,e]=(0,b.useState)(null),[f,h]=(0,b.useState)(0),i=null!==d,j=d?.query??"",k=(0,b.useMemo)(()=>{let b;return(b=j.toLowerCase())?a.filter(a=>!!a.name.slice(1).toLowerCase().startsWith(b)||(a.aliases?.some(a=>a.toLowerCase().startsWith(b))??!1)).slice(0,c):a.slice(0,c)},[a,j,c]),l=(0,b.useCallback)((a,b)=>{let c=function(a,b){if(b<0||b>a.length||!a.startsWith("/"))return null;let c=a.slice(0,b);if(/\s/.test(c))return null;let d=c.slice(1);return g.test(d)?{startIndex:0,endIndex:b,query:d.toLowerCase()}:null}(a,b);e(a=>(a?.query!==c?.query&&h(0),c))},[]),m=(0,b.useCallback)(a=>{if(!i||0===k.length)return!1;switch(a.key){case"ArrowDown":return a.preventDefault(),h(a=>a<k.length-1?a+1:0),!0;case"ArrowUp":return a.preventDefault(),h(a=>a>0?a-1:k.length-1),!0;case"Enter":case"Tab":return a.preventDefault(),!0;case"Escape":return a.preventDefault(),e(null),!0;default:return!1}},[i,k.length]),n=(0,b.useCallback)(a=>!!d&&(a.execute(),e(null),h(0),!0),[d]);return{isOpen:i,query:j,filteredCommands:k,activeIndex:f,token:d,handleInput:l,handleKeyDown:m,selectCommand:n,close:(0,b.useCallback)(()=>{e(null),h(0)},[])}}a.s(["useCommandAutocomplete",()=>h],29714);let i=new Set(["image/jpeg","image/png","image/gif","image/webp","image/svg+xml","application/pdf","text/plain","text/csv","text/markdown","application/json","application/zip","application/gzip","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.openxmlformats-officedocument.presentationml.presentation"]),j=new Set([".exe",".bat",".cmd",".com",".msi",".scr",".pif",".vbs",".vbe",".js",".jse",".ws",".wsf",".wsc",".wsh",".ps1",".ps2",".psc1",".psc2",".reg",".inf",".lnk",".dll",".sys",".drv"]),k={"image/jpeg":"jpg","image/png":"png","image/gif":"gif","image/webp":"webp","image/svg+xml":"svg","application/pdf":"pdf","text/plain":"txt","text/csv":"csv","text/markdown":"md","application/json":"json","application/zip":"zip","application/gzip":"gz"};function l(a){return a.map((a,b)=>(function(a,b){let c,d;return a.name.trim()?a:new File([a],(c=k[a.type]??"bin",d=a.type.startsWith("image/")?"pasted-image":"attachment",`${d}-${b+1}.${c}`),{type:a.type,lastModified:a.lastModified})})(a,b))}function m(a){return a.startsWith("image/")}function n(a){let b;if((b=(!a?"":a.getData("text/plain")).trim())&&(b.length>=200||b.includes("\n")))return!1;let c=Array.from(a?.items??[]).map(a=>a.type);return Array.from(a?.files??[]).length>0||Array.from(a?.items??[]).some(a=>"file"===a.kind)||c.some(m)}function o(a){if(!a||!n(a))return[];let b=Array.from(a.items??[]).filter(a=>"file"===a.kind).map(a=>a.getAsFile()).filter(a=>!!a),c=b.length>0?b:Array.from(a.files??[]);return 0===c.length?[]:l(c)}function p(a){return n(a)}async function q(a,b){let c=o(a);if(c.length>0)return c;if(!n(a)||!b?.read)return[];try{let a=await b.read(),c=[];for(let b of a)for(let a of b.types.filter(m)){let d=await b.getType(a),e=d instanceof Blob?d:d.arrayBuffer?await d.arrayBuffer():null;e&&c.push(new File([e],"",{type:d.type||a,lastModified:Date.now()}))}return l(c)}catch{return[]}}function r(){let[a,c]=(0,b.useState)([]),d=(0,b.useRef)(new Map),e=(0,b.useCallback)(a=>{let b=new XMLHttpRequest;d.current.set(a.id,b);let e=new FormData;e.append("file",a.file),b.upload.onprogress=b=>{if(b.lengthComputable){let d=Math.round(b.loaded/b.total*100);c(b=>b.map(b=>b.id===a.id?{...b,progress:d}:b))}},b.onload=()=>{if(d.current.delete(a.id),b.status>=200&&b.status<300)try{let d=JSON.parse(b.responseText),e=d.attachments?.[0];if(e)return void c(b=>b.map(b=>b.id===a.id?{...b,status:"uploaded",progress:100,serverId:e.id}:b))}catch{}let e=(()=>{try{return JSON.parse(b.responseText)?.error||"Upload failed"}catch{return"Upload failed"}})();c(b=>b.map(b=>b.id===a.id?{...b,status:"failed",error:e}:b))},b.onerror=()=>{d.current.delete(a.id),c(b=>b.map(b=>b.id===a.id?{...b,status:"failed",error:"Network error"}:b))},b.open("POST","/api/upload"),b.send(e)},[]),f=(0,b.useCallback)(b=>{let d=l(Array.from(b)),f=function(a){let b=a.reduce((a,b)=>a+b.size,0);if(b>0x3200000){let a=(b/1048576).toFixed(1);return{file:"(total)",reason:`Total attachment size (${a}MB) exceeds 50MB limit`}}return null}([...a.map(a=>({name:a.filename,size:a.size,type:a.mimeType})),...d.map(a=>({name:a.name,size:a.size,type:a.type}))]);if(f)return void alert(f.reason);let g=[];for(let a of d){let b=function(a){let b=a.name.includes(".")?"."+a.name.split(".").pop().toLowerCase():"";if(j.has(b))return{file:a.name,reason:`File type "${b}" is not allowed`};if(a.type&&!i.has(a.type))return{file:a.name,reason:`File type "${a.type}" is not supported`};if(!a.type&&!i.has("application/octet-stream"),a.size>0xa00000){let b=(a.size/1048576).toFixed(1);return{file:a.name,reason:`File is too large (${b}MB). Maximum is 10MB`}}return 0===a.size?{file:a.name,reason:"File is empty"}:null}({name:a.name,size:a.size,type:a.type});if(b){g.push({id:crypto.randomUUID(),file:a,filename:a.name,mimeType:a.type,size:a.size,previewUrl:null,progress:0,status:"failed",error:b.reason});continue}let c=a.type.startsWith("image/")?URL.createObjectURL(a):null,d={id:crypto.randomUUID(),file:a,filename:a.name,mimeType:a.type||"application/octet-stream",size:a.size,previewUrl:c,progress:0,status:"uploading"};g.push(d)}for(let a of(c(a=>[...a,...g]),g))"uploading"===a.status&&e(a)},[a,e]),g=(0,b.useCallback)(a=>{c(b=>{let c=b.find(b=>b.id===a);c?.previewUrl&&URL.revokeObjectURL(c.previewUrl);let e=d.current.get(a);return e&&(e.abort(),d.current.delete(a)),c?.serverId&&fetch(`/api/upload/${c.serverId}`,{method:"DELETE"}).catch(a=>console.warn("[useAttachments] delete attachment failed:",a)),b.filter(b=>b.id!==a)})},[]),h=(0,b.useCallback)(a=>{c(b=>{let c=b.find(b=>b.id===a);if(!c||"failed"!==c.status)return b;let d=b.map(b=>b.id===a?{...b,status:"uploading",error:void 0,progress:0}:b),f=d.find(b=>b.id===a);return setTimeout(()=>e(f),0),d})},[e]),k=(0,b.useCallback)(()=>{c(a=>{for(let b of a){b.previewUrl&&URL.revokeObjectURL(b.previewUrl);let a=d.current.get(b.id);a&&a.abort()}return d.current.clear(),[]})},[]),m=0===a.length||a.every(a=>"uploaded"===a.status||"failed"===a.status),n=a.some(a=>"uploaded"===a.status),o=a.filter(a=>"uploaded"===a.status&&a.serverId);return{staged:a,stageFiles:f,remove:g,retry:h,clear:k,canSend:m,hasUploaded:n,attachmentIds:o.map(a=>a.serverId),getAttachmentMetas:(0,b.useCallback)(()=>o.map(a=>({id:a.serverId,filename:a.filename,mimeType:a.mimeType,size:a.size,status:"uploaded",url:`/api/attachments/${a.serverId}`})),[o])}}a.s(["clipboardMayContainImageAttachments",()=>p,"getClipboardAttachmentFiles",()=>o,"normalizeAttachmentFiles",()=>l,"readClipboardAttachmentFiles",()=>q],677955),a.s(["useAttachments",()=>r],279384);let s=[{path:`${process.env.HOME??"~"}/Code`,relativePath:"~/Code",type:"folder"},{path:`${process.env.HOME??"~"}/Projects`,relativePath:"~/Projects",type:"folder"},{path:`${process.env.HOME??"~"}/Desktop`,relativePath:"~/Desktop",type:"folder"},{path:`${process.env.HOME??"~"}/Documents`,relativePath:"~/Documents",type:"folder"},{path:`${process.env.HOME??"~"}/Downloads`,relativePath:"~/Downloads",type:"folder"}];function t(a,b){let c=function(a,b){let c=a.trim().replace(/\/+$/,"");if("~"===c)return"~";if(c.startsWith("~/")||c.startsWith("/"))return c;let d=c.replace(/^\/+/,"");return"@~"===b?`~/${d}`:`/${d}`}(a,b.trigger);if(c.startsWith("~/")||c.startsWith("/")){let d=a.trim().startsWith("~/")||a.trim().startsWith("/")||"~"===a.trim()?null:function(a){if(!a.query.endsWith("/"))return null;let b=a.query.replace(/^\/+/,"").replace(/\/+$/,"");return"@~"===a.trigger?b?`~/${b}`:"~":b?`/${b}`:"/"}(b);if(d){let a=c.replace(/^~\/|^\//,"");return"~"===d?`~/${a}`:"/"===d?`/${a}`:`${d}/${a}`}}return c}function u({maxSuggestions:a=8,debounceMs:c=150}={}){let[d,e]=(0,b.useState)(null),[f,g]=(0,b.useState)([]),[h,i]=(0,b.useState)(0),[j,k]=(0,b.useState)(!1),[l,m]=(0,b.useState)(null),n=(0,b.useRef)(null),o=(0,b.useRef)(null),p=(0,b.useRef)(null),q=null!==d,r=(0,b.useCallback)(async(b,c)=>{n.current&&n.current.abort();let d=new AbortController;n.current=d,k(!0),m(null);try{let e=b.endsWith("/"),f=e?"*":b,h=new URLSearchParams({q:f,limit:String(a),includeFolders:"1"});if(e){let a="@~"===c?`${process.env.HOME??"~"}/${b.slice(0,-1)}`:`/${b.slice(0,-1)}`;h.set("root",a)}else"@~"===c&&h.set("root",process.env.HOME??"~");let j=await fetch(`/api/file-search?${h.toString()}`,{signal:d.signal});if(!j.ok){let a=await j.json().catch(()=>({}));throw Error(a.error??`HTTP ${j.status}`)}let k=await j.json();g(k.files.map(a=>({...a,attachMode:"folder"===a.type?"manifest":void 0}))),i(0)}catch(a){if("AbortError"===a.name)return;m(a.message??"Search failed"),g([])}finally{k(!1)}},[a]),v=(0,b.useCallback)((b,d)=>{if(null!==o.current&&clearTimeout(o.current),b!==p.current){if(b.length<3){n.current&&(n.current.abort(),n.current=null),p.current=b,k(!1),m(null),g(s.slice(0,a).map(a=>({...a,attachMode:"manifest"}))),i(0);return}o.current=setTimeout(()=>{p.current=b,r(b,d)},c)}},[c,r,a]);(0,b.useEffect)(()=>()=>{null!==o.current&&clearTimeout(o.current),n.current&&n.current.abort()},[]);let w=(0,b.useCallback)((a,b)=>{let c=function(a,b){if(b<2||b>a.length)return null;let c=b;for(;c>0&&!/\s/.test(a[c-1]);)c--;let d=a.slice(c,b);if(!d.startsWith("@/")&&!d.startsWith("@~"))return null;let e=d.slice(0,2);return{startIndex:c,endIndex:b,query:d.slice(2),trigger:e}}(a,b);e(a=>((a?.startIndex!==c?.startIndex||a?.query!==c?.query||a?.trigger!==c?.trigger)&&null===c&&(null!==o.current&&clearTimeout(o.current),n.current&&(n.current.abort(),n.current=null),p.current=null,g([]),k(!1),m(null)),c)),c&&v(c.query,c.trigger)},[v]),x=(0,b.useCallback)(a=>{if(!q||0===f.length)return!1;switch(a.key){case"ArrowDown":return a.preventDefault(),i(a=>a<f.length-1?a+1:0),!0;case"ArrowUp":return a.preventDefault(),i(a=>a>0?a-1:f.length-1),!0;case"Enter":return a.preventDefault(),!0;case"Tab":return!0;case"Escape":return a.preventDefault(),e(null),g([]),!0;default:return!1}},[q,f.length]),y=(0,b.useCallback)(a=>{if(!d)return null;let b=t(a.relativePath??a.path,d),c="folder"===a.type?"/":"",f=`@${b}${c} `;return e(null),g([]),{text:f,startIndex:d.startIndex,endIndex:d.endIndex}},[d]),z=(0,b.useCallback)(a=>{if(!d||"folder"!==a.type)return null;let b=t(a.relativePath??a.path,d),c=b.startsWith("~/")?"@~":"@/",f=b.slice(1),g=`@${b}/`,h=d.startIndex+g.length,i=`${f}/`;return e({startIndex:d.startIndex,endIndex:h,query:i,trigger:c}),p.current=null,v(i,c),{text:g,startIndex:d.startIndex,endIndex:d.endIndex}},[d,v]),A=(0,b.useCallback)(a=>{g(b=>b.map(b=>b.path===a.path?{...b,attachMode:"contents"}:b))},[]);return{isOpen:q,token:d,suggestions:f,activeIndex:h,isLoading:j,error:l,handleInput:w,handleKeyDown:x,selectSuggestion:y,drillDown:z,close:(0,b.useCallback)(()=>{e(null),g([]),i(0)},[]),onAttachContents:A}}function v({messages:a,maxSuggestions:c=5}){let[d,e]=(0,b.useState)(!1),[f,g]=(0,b.useState)(""),[h,i]=(0,b.useState)(0),[j,k]=(0,b.useState)([]),[l,m]=(0,b.useState)(null),n=(0,b.useRef)([]);(0,b.useEffect)(()=>{let b=a.filter(a=>!a.rootMessageId),c=new Map;a.forEach(a=>{if(a.rootMessageId){let b=c.get(a.rootMessageId)||[];b.push(a),c.set(a.rootMessageId,b)}}),n.current=b.map(a=>{let b=c.get(a.id)||[],d=[a,...b],e=Math.max(...d.map(a=>a.timestamp)),f=a.content.slice(0,60).replace(/\n/g," ").trim()||"Untitled",g=[...new Set(d.map(a=>a.participantId||"user"))];return{rootMessageId:a.id,title:f,rootMessage:a,replies:b,participantIds:g,lastActivityAt:e}}).sort((a,b)=>b.lastActivityAt-a.lastActivityAt)},[a]);let o=(0,b.useCallback)((a,b)=>{let d=a.slice(0,b).match(/@#([^@#\s]*)$/);if(d){e(!0);let a=d[1].toLowerCase();g(a),m(d.index),i(0),k(n.current.filter(b=>b.title.toLowerCase().includes(a)).slice(0,c))}else e(!1),m(null)},[c]),p=(0,b.useCallback)(a=>!!d&&0!==j.length&&("ArrowDown"===a.key?(a.preventDefault(),i(a=>(a+1)%j.length),!0):"ArrowUp"===a.key?(a.preventDefault(),i(a=>(a-1+j.length)%j.length),!0):"Escape"===a.key&&(a.preventDefault(),e(!1),!0)),[d,j.length]),q=(0,b.useCallback)(a=>null===l?null:{startIndex:l,endIndex:l+2+f.length,text:""},[l,f]);return{isOpen:d,suggestions:j,activeIndex:h,handleInput:o,handleKeyDown:p,selectSuggestion:q,close:(0,b.useCallback)(()=>{e(!1),m(null)},[]),exportDiscussion:(0,b.useCallback)(async a=>{let b=[];try{let a=await fetch("/api/participants");a.ok&&(b=await a.json())}catch(a){console.warn("Failed to fetch participants for export",a)}let c=await fetch("/api/thread-export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:a.rootMessageId,title:a.title,messages:[a.rootMessage,...a.replies],participants:b})});if(!c.ok)throw Error(`Export failed: ${await c.text()}`);return await c.json()},[])}}function w(){let[a,c]=(0,b.useState)([]),d=(0,b.useCallback)((a,b,d)=>{c(c=>c.find(b=>b.path===a)?c.map(c=>c.path===a?{...c,label:b,attachMode:d??c.attachMode}:c):[...c,{kind:"file-path",id:crypto.randomUUID(),path:a,label:b,attachMode:d}])},[]);return{filePaths:a,addFilePath:d,removeFilePath:(0,b.useCallback)(a=>{c(b=>b.filter(b=>b.id!==a))},[]),clearFilePaths:(0,b.useCallback)(()=>{c([])},[]),hasFilePaths:a.length>0}}a.s(["useFileMention",()=>u],950364),a.s(["useThreadMention",()=>v],177521),a.s(["useComposerAttachments",()=>w],924434);let x="agx-composer-history";function y(){let[a,c]=(0,b.useState)(-1),d=(0,b.useRef)(""),e=(0,b.useCallback)(()=>{try{let a=localStorage.getItem(x);return a?JSON.parse(a):[]}catch{return[]}},[]),f=(0,b.useCallback)(a=>{let b=a.trim();if(!b)return;let f=e().filter(a=>a!==b);f.unshift(b),f.length>100&&(f.length=100);try{localStorage.setItem(x,JSON.stringify(f))}catch{}c(-1),d.current=""},[e]);return{pushEntry:f,navigate:(0,b.useCallback)((b,f,g)=>{if(!g)return null;let h=e();if(0===h.length)return null;if("up"===b){-1===a&&(d.current=f);let b=d.current,e=a+1;if(b){for(let a=e;a<h.length;a++)if(h[a].toLowerCase().startsWith(b.toLowerCase()))return c(a),h[a];return null}let g=Math.min(a+1,h.length-1);return g===a&&-1!==a?null:(c(g),h[g])}if(a<=0)return 0===a?(c(-1),d.current):null;let i=d.current;if(i){for(let b=a-1;b>=0;b--)if(h[b].toLowerCase().startsWith(i.toLowerCase()))return c(b),h[b];return c(-1),d.current}let j=a-1;return c(j),h[j]},[e,a]),resetNavigation:(0,b.useCallback)(()=>{c(-1),d.current=""},[]),historyIndex:a}}function z({projectId:a,projectSlug:c,enabled:d=!0,limit:e=500}){let[f,g]=(0,b.useState)([]),[h,i]=(0,b.useState)(!1);return(0,b.useEffect)(()=>{if(!d||!a){g([]),i(!1);return}let b=!1,f=new URLSearchParams;return f.set("projectId",a),f.set("limit",String(e)),c&&f.set("projectSlug",c),i(!0),fetch(`/api/linear/issues?${f.toString()}`).then(async a=>{let c=await a.json().catch(()=>({}));b||g(Array.isArray(c.issues)?c.issues:[])}).catch(()=>{b||g([])}).finally(()=>{b||i(!1)}),()=>{b=!0}},[d,e,a,c]),{issues:f,loading:h}}async function A(a){let b;if(0===a.length)return[];let c=a.map(a=>a.path);try{let d=await fetch("/api/file-read",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({paths:c})});if(!d.ok){let b=(await d.json().catch(()=>({}))).error??`HTTP ${d.status}`;return a.map(a=>({type:"file",path:a.path,label:a.label,content:null,error:b}))}b=(await d.json()).results}catch(c){let b=c instanceof Error?c.message:"Failed to fetch file contents";return a.map(a=>({type:"file",path:a.path,label:a.label,content:null,error:b}))}let d=new Map(b.map(a=>[a.path,a]));return a.map(a=>{let b=d.get(a.path);return{type:"file",path:a.path,label:a.label,content:b?.content??null,error:b?.error}})}async function B(a){let b=await A(a),c=0===b.length?"":b.map(a=>a.error||null===a.content?`<file path="${a.path}" error="${a.error??"unreadable"}" />`:`<file path="${a.path}">
|
|
2
|
-
${a.content}
|
|
3
|
-
</file>`).join("\n\n")+"\n\n";return{fileContextBlocks:b,contextPrefix:c}}function C(a){return a.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function D(a){let b=new Set;return!function a(b,c){if(b)for(let d of b)c(d),a(d.content,c)}(a.content,a=>{if("linearIssueMention"!==a.type)return;let c="string"==typeof a.attrs?.id?a.attrs.id.trim():"";c&&b.add(c)}),Array.from(b)}function E(a){if(0===a.length)return"";let b=a.map(a=>[`<linear-issue identifier="${C(a.identifier)}" status="${C(a.status)}"${a.assignee?` assignee="${C(a.assignee)}"`:""}>`,`Title: ${a.title}`,a.url?`URL: ${a.url}`:null,a.teamName?`Team: ${a.teamName}`:null,a.cycleName||null!=a.cycleNumber?`Cycle: ${a.cycleName??`Cycle ${a.cycleNumber}`}`:null,`Updated: ${a.updatedAt}`,"",a.description?.trim()||"No description provided.","</linear-issue>"].filter(a=>null!==a).join("\n"));return`Referenced Linear tickets (only because the user explicitly @mentioned them):
|
|
4
|
-
|
|
5
|
-
${b.join("\n\n")}
|
|
6
|
-
|
|
7
|
-
`}a.s(["useComposerHistory",()=>y],45813),a.s(["useLinearIssueMentions",()=>z],95348),a.s(["buildAgentContext",()=>B],382460),a.s(["buildLinearIssueContextPrefix",()=>E,"extractMentionedLinearIssueIds",()=>D],200369);var F=a.i(583489);let G=F.Node.create({name:"participantMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},name:{default:""},mode:{default:"sequential"},kind:{default:"agent"}}),parseHTML:()=>[{tag:"span[data-participant-mention]"}],renderHTML({node:a,HTMLAttributes:b}){let c="parallel"===a.attrs.mode;return["span",(0,F.mergeAttributes)(b,{"data-participant-mention":"","data-id":a.attrs.id,"data-mode":a.attrs.mode,class:c?"composer-pill composer-pill--participant-parallel":"composer-pill composer-pill--participant",contenteditable:"false"}),`${c?"@@":"@"}${a.attrs.name}`]}}),H=F.Node.create({name:"projectMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},slug:{default:""},name:{default:""}}),parseHTML:()=>[{tag:"span[data-project-mention]"}],renderHTML:({node:a,HTMLAttributes:b})=>["span",(0,F.mergeAttributes)(b,{"data-project-mention":"","data-id":a.attrs.id,"data-slug":a.attrs.slug,class:"composer-pill composer-pill--project",contenteditable:"false"}),`@${a.attrs.name}`]}),I=F.Node.create({name:"fileMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({path:{default:""},relativePath:{default:""},trigger:{default:"@/"},attachMode:{default:void 0}}),parseHTML:()=>[{tag:"span[data-file-mention]"}],renderHTML({node:a,HTMLAttributes:b}){let c=a.attrs.relativePath||a.attrs.path;return["span",(0,F.mergeAttributes)(b,{"data-file-mention":"","data-path":a.attrs.path,class:"composer-pill composer-pill--file",contenteditable:"false"}),`@${c}`]}}),J=F.Node.create({name:"threadMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({threadId:{default:""},title:{default:""}}),parseHTML:()=>[{tag:"span[data-thread-mention]"}],renderHTML:({node:a,HTMLAttributes:b})=>["span",(0,F.mergeAttributes)(b,{"data-thread-mention":"","data-thread-id":a.attrs.threadId,class:"composer-pill composer-pill--thread",contenteditable:"false"}),`#${a.attrs.title}`]}),K=F.Node.create({name:"linearIssueMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},identifier:{default:""},title:{default:""},status:{default:""},url:{default:null}}),parseHTML:()=>[{tag:"span[data-linear-issue-mention]"}],renderHTML:({node:a,HTMLAttributes:b})=>["span",(0,F.mergeAttributes)(b,{"data-linear-issue-mention":"","data-id":a.attrs.id,"data-identifier":a.attrs.identifier,class:"composer-pill composer-pill--linear-issue",contenteditable:"false"}),`@${a.attrs.identifier}`]});function L(a){if(!a.content)return"";let b=[];for(let c of a.content)c.type,b.push(function(a){if(!a.content)return"";let b="";for(let c of a.content)switch(c.type){case"text":b+=c.text??"";break;case"participantMention":{let a=c.attrs??{},d="parallel"===a.mode?"@@":"@";b+=`${d}${a.name}`;break}case"projectMention":{let a=c.attrs??{},d=String(a.slug??"").trim();d?b+=`@~project:${d}`:a.name&&(b+=`@${a.name}`);break}case"fileMention":{let a=c.attrs??{},d=a.relativePath||a.path;b+=`@${d}`;break}case"threadMention":{let a=((c.attrs??{}).threadId??"").slice(0,8);b+=`@#${a}`;break}case"linearIssueMention":{let a=String((c.attrs??{}).identifier??"").trim();a&&(b+=`@${a}`);break}default:"hardBreak"===c.type&&(b+="\n")}return b}(c));return b.join("\n")}function M(a){let{state:b}=a,{$from:c}=b.selection,d=c.depth,e=-1;for(let a=d;a>=0;a--)if("paragraph"===c.node(a).type.name){e=a;break}if(-1===e)return null;let f=c.node(e),g=c.start(e),h=c.pos-g,i="",j=0,k=!1;return f.forEach((a,b)=>{let c=b+a.nodeSize;if(a.isText){let d=a.text??"";!k&&h>=b&&h<=c&&(j=i.length+(h-b),k=!0),i+=d}else if(a.isAtom){let d=N(a);!k&&h>=b&&h<=c&&(j=i.length+d.length,k=!0),i+=d}}),k||(j=i.length),{text:i,cursorPos:j,blockStart:g}}function N(a){switch(a.type.name){case"participantMention":{let b="parallel"===a.attrs.mode?"@@":"@";return`${b}${a.attrs.name}`}case"projectMention":{let b=String(a.attrs.slug??"").trim();if(b)return`@~project:${b}`;return a.attrs.name?`@${a.attrs.name}`:""}case"fileMention":{let b=a.attrs.relativePath||a.attrs.path;return`@${b}`}case"threadMention":{let b=(a.attrs.threadId??"").slice(0,8);return`@#${b}`}case"linearIssueMention":{let b=String(a.attrs.identifier??"").trim();return b?`@${b}`:""}default:return""}}function O(a,b,c,d){let{state:e}=a,f=e.doc.resolve(b),g=f.depth,h=null,i=b;for(let a=g;a>=0;a--){let b=f.node(a);if("paragraph"===b.type.name){h=b,i=f.start(a);break}}h||(h=e.doc.resolve(b).parent,i=b);let j=0,k=null,l=null;return(h.forEach((a,b)=>{let e=i+b,f=a.nodeSize;if(a.isText){let b=a.text??"",f=j+b.length;null===k&&c>=j&&c<=f&&(k=e+(c-j)),null===l&&d>=j&&d<=f&&(l=e+(d-j)),j=f}else if(a.isAtom){let b=N(a),g=j+b.length;null===k&&c>=j&&c<=g&&(k=e),null===l&&d>=j&&d<=g&&(l=e+f),j=g}}),null===k&&c>=j&&(k=i+h.content.size),null===l&&d>=j&&(l=i+h.content.size),null===k||null===l)?null:{from:k,to:l}}a.s(["FileMention",0,I,"LinearIssueMention",0,K,"ParticipantMention",0,G,"ProjectMention",0,H,"ThreadMention",0,J],340914),a.s(["serializeToPlainText",()=>L],413169),a.s(["getCurrentParagraphText",()=>M,"plainTextRangeToPos",()=>O],719753);var P=a.i(308316),Q=a.i(831709);let R=(0,Q.default)("folder-kanban",[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M12 10v2",key:"hh53o1"}],["path",{d:"M16 10v6",key:"1d6xys"}]]),S=(0,Q.default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);var T=a.i(985339);function U({isOpen:a,suggestions:c,activeIndex:d,listboxId:e,optionIdPrefix:f,onSelect:g}){let h=(0,b.useRef)([]);if((0,b.useEffect)(()=>{a&&h.current[d]?.scrollIntoView({block:"nearest"})},[d,a]),!a||0===c.length)return null;let i=new Set;return(0,P.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,P.jsx)("div",{role:"listbox",id:e,"aria-label":"Mention suggestions",className:"max-h-56 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:c.map((a,b)=>{let c=b===d,e="project-group"===a.kind?`project-group-${a.project.id}`:"project"===a.kind?`project-${a.project.id}`:"ticket"===a.kind?`ticket-${a.issue.id}`:a.participant.id,j=a.group,k=null;if(j&&!i.has(j)&&(i.add(j),k=(0,P.jsx)("div",{className:"px-3 py-1.5 text-[10px] font-bold uppercase tracking-wider text-[var(--muted-foreground)] bg-[var(--app-shell-subtle)] border-t border-[var(--border)] first:border-t-0",children:j})),"project-group"===a.kind)return(0,P.jsxs)("div",{children:[k,(0,P.jsx)("button",{type:"button",role:"option",id:`${f}-${e}`,"aria-selected":c,ref:a=>{h.current[b]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${c?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>{a.preventDefault()},onClick:()=>g(a),children:(0,P.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,P.jsx)(T.Users,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,P.jsx)("span",{className:"font-medium",children:a.project.name}),(0,P.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[a.project.agents.length," agent",1!==a.project.agents.length?"s":""]})]})})]},e);if("project"===a.kind)return(0,P.jsxs)("div",{children:[k,(0,P.jsx)("button",{type:"button",role:"option",id:`${f}-${e}`,"aria-selected":c,ref:a=>{h.current[b]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${c?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>{a.preventDefault()},onClick:()=>g(a),children:(0,P.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,P.jsx)(R,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,P.jsx)("span",{className:"font-medium",children:a.project.name}),(0,P.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:a.project.slug})]})})]},e);if("ticket"===a.kind)return(0,P.jsxs)("div",{children:[k,(0,P.jsx)("button",{type:"button",role:"option",id:`${f}-${e}`,"aria-selected":c,ref:a=>{h.current[b]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${c?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>{a.preventDefault()},onClick:()=>g(a),children:(0,P.jsxs)("span",{className:"flex items-start gap-2",children:[(0,P.jsx)(S,{className:"mt-0.5 h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,P.jsxs)("span",{className:"min-w-0",children:[(0,P.jsxs)("span",{className:"block font-medium",children:[a.issue.identifier,(0,P.jsx)("span",{className:"ml-2 text-xs text-[var(--muted-foreground)]",children:a.issue.status})]}),(0,P.jsx)("span",{className:"block truncate text-xs text-[var(--muted-foreground)]",children:a.issue.title})]})]})})]},e);let l=a.participant;return(0,P.jsxs)("div",{children:[k,(0,P.jsx)("button",{type:"button",role:"option",id:`${f}-${l.id}`,"aria-selected":c,ref:a=>{h.current[b]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${c?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}${j?" pl-6":""}`,onMouseDown:a=>{a.preventDefault()},onClick:()=>g(a),children:(0,P.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,P.jsx)("span",{className:"h-2.5 w-2.5 rounded-full",style:{backgroundColor:l.color},"aria-hidden":!0}),(0,P.jsx)("span",{className:"font-medium",children:l.name}),"all"===l.id?(0,P.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"All participants"}):l.model&&(0,P.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:l.model})]})})]},e)})})})}function V({isOpen:a,commands:c,activeIndex:d,listboxId:e,optionIdPrefix:f,onSelect:g}){let h=(0,b.useRef)([]);return((0,b.useEffect)(()=>{a&&h.current[d]?.scrollIntoView({block:"nearest"})},[d,a]),a&&0!==c.length)?(0,P.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,P.jsx)("div",{role:"listbox",id:e,"aria-label":"Command suggestions",className:"max-h-56 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:c.map((a,b)=>{let c=b===d;return(0,P.jsx)("button",{type:"button",role:"option",id:`${f}-${a.name.slice(1)}`,"aria-selected":c,ref:a=>{h.current[b]=a},className:`w-full px-3 py-2 text-left text-sm transition-colors ${c?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:a=>a.preventDefault(),onClick:()=>g(a),children:(0,P.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,P.jsx)("span",{className:"font-medium font-mono",children:a.name}),a.aliases&&a.aliases.length>0&&(0,P.jsxs)("span",{className:"text-xs text-[var(--app-shell-soft-text)] font-mono",children:["(",a.aliases.join(", "),")"]}),(0,P.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:a.description})]})},a.name)})})}):null}a.s(["MentionPopover",()=>U],704238),a.s(["CommandPopover",()=>V],589609);var W=a.i(349692),X=a.i(693896);let Y=(0,Q.default)("file",[["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"}]]);var Z=a.i(157633),$=a.i(89613);function _({suggestion:a,isActive:b,optionId:c,onSelect:d,onAttachContents:e,itemRef:f}){let g="folder"===a.type,h="contents"===a.attachMode,i=function(a){if(!a)return null;let b=Math.floor((Date.now()-a)/864e5);return 0===b?"Today":1===b?"Yesterday":b<7?`${b}d ago`:b<30?`${Math.floor(b/7)}w ago`:b<365?`${Math.floor(b/30)}mo ago`:`${Math.floor(b/365)}y ago`}(a.modifiedAt),j=a.relativePath??a.path;return(0,P.jsxs)("div",{className:`flex items-center gap-2 px-3 py-2 text-sm transition-colors duration-200 ${b?"bg-[var(--primary-muted)]":"hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,P.jsx)("span",{className:"shrink-0 text-[var(--muted-foreground)]","aria-hidden":!0,children:g?b?(0,P.jsx)($.FolderOpen,{className:"h-4 w-4 text-amber-500"}):(0,P.jsx)(Z.Folder,{className:"h-4 w-4 text-amber-400"}):(0,P.jsx)(Y,{className:"h-4 w-4"})}),(0,P.jsxs)("button",{type:"button",role:"option",id:c,"aria-selected":b,ref:f,className:"min-w-0 flex-1 text-left",onMouseDown:a=>a.preventDefault(),onClick:()=>d(a),tabIndex:-1,children:[(0,P.jsxs)("span",{className:"flex items-baseline gap-2",children:[(0,P.jsx)("span",{className:"block truncate font-mono text-xs text-[var(--foreground)]",children:j}),i&&(0,P.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:i})]}),g&&a.manifest&&(0,P.jsxs)("span",{className:"block text-xs text-[var(--muted-foreground)]",children:[a.manifest.childCount," items ·"," ",a.manifest.sizeSummary,h?(0,P.jsx)("span",{className:"ml-1 font-medium text-[var(--primary)]",children:"full tree"}):(0,P.jsx)("span",{className:"ml-1 text-[var(--muted-foreground)]",children:"manifest"})]})]}),g&&!h&&(0,P.jsx)("button",{type:"button",className:"shrink-0 rounded px-1.5 py-0.5 text-xs text-[var(--muted-foreground)] hover:bg-[var(--muted)] hover:text-[var(--foreground)] transition-colors duration-200",title:"Attach full directory contents instead of manifest","aria-label":`Attach full contents of ${j}`,onMouseDown:a=>a.preventDefault(),onClick:()=>e(a),tabIndex:-1,children:"Attach contents"}),g&&h&&(0,P.jsx)("span",{className:"shrink-0 rounded bg-[var(--primary-muted)] px-1.5 py-0.5 text-xs font-medium text-[var(--primary)]",children:"full tree"})]})}var aa=a.i(161958);function ab({isOpen:a,suggestions:c,activeIndex:d,isLoading:e,error:f,listboxId:g,optionIdPrefix:h,onSelect:i,onAttachContents:j}){let k=(0,b.useRef)([]),l=(0,b.useRef)(null),[m,n]=(0,b.useState)(!1);if((0,b.useEffect)(()=>{a&&k.current[d]?.scrollIntoView({block:"nearest"})},[d,a]),(0,b.useEffect)(()=>{a&&l.current&&n(l.current.getBoundingClientRect().top<280)},[a]),!a)return null;let o=c.length>0?`${h}-${d}`:void 0;return(0,P.jsx)("div",{ref:l,className:`${m?"absolute left-0 right-0 top-full mt-2 z-20":"absolute left-0 right-0 bottom-full mb-3 z-20"} ${aa.default.popover}`,children:(0,P.jsxs)("div",{role:"listbox",id:g,"aria-label":"File suggestions","aria-activedescendant":o,className:"max-h-64 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:[f&&!e&&(0,P.jsxs)("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-red-500",role:"alert",children:[(0,P.jsx)(X.AlertCircle,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),(0,P.jsx)("span",{children:f})]}),!f&&e&&0===c.length&&(0,P.jsxs)("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-[var(--muted-foreground)]","aria-live":"polite","aria-label":"Searching for files",children:[(0,P.jsx)(W.Loader2,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}),(0,P.jsx)("span",{children:"Searching…"})]}),!f&&!e&&0===c.length&&(0,P.jsx)("div",{className:"px-3 py-3 text-sm text-[var(--muted-foreground)]","aria-live":"polite",children:"No results"}),!f&&e&&c.length>0&&(0,P.jsxs)("div",{className:"flex items-center gap-1.5 px-3 py-1 text-xs text-[var(--muted-foreground)] border-b border-[var(--border)]",children:[(0,P.jsx)(W.Loader2,{className:"h-3 w-3 animate-spin","aria-hidden":!0}),(0,P.jsx)("span",{"aria-live":"polite","aria-label":"Updating results",children:"Updating…"})]}),c.length>0&&c.map((a,b)=>(0,P.jsx)(_,{suggestion:a,isActive:b===d,optionId:`${h}-${b}`,onSelect:i,onAttachContents:j,itemRef:a=>{k.current[b]=a}},a.path))]})})}a.s(["FileMentionPopover",()=>ab],119616);var ac=a.i(737313),ad=a.i(820859);function ae({isOpen:a,suggestions:b,activeIndex:c,listboxId:d,optionIdPrefix:e,onSelect:f}){return a&&0!==b.length?(0,P.jsxs)("div",{className:"absolute bottom-full left-0 mb-2 w-80 bg-[var(--app-shell-elevated)] rounded-xl shadow-xl border border-[var(--app-shell-border)] overflow-hidden z-50 animate-in fade-in zoom-in-95 duration-100",role:"listbox",id:d,children:[(0,P.jsx)("div",{className:"px-3 py-2 bg-[var(--app-shell-subtle)] border-b border-[var(--app-shell-border)] text-[11px] font-bold text-[var(--app-shell-muted)] uppercase tracking-wider",children:"Reference Discussion"}),(0,P.jsx)("div",{className:"max-h-64 overflow-y-auto p-1",children:b.map((a,b)=>{let d=b===c;return(0,P.jsxs)("button",{role:"option",id:`${e}-${b}`,"aria-selected":d,onClick:()=>f(a),className:`w-full text-left px-3 py-2.5 rounded-lg flex items-start gap-3 transition-colors ${d?"bg-[var(--primary-muted)]":"hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,P.jsx)("div",{className:`mt-0.5 p-1.5 rounded-md ${d?"bg-[var(--primary-muted)] text-[var(--primary)]":"bg-[var(--muted)] text-[var(--muted-foreground)]"}`,children:(0,P.jsx)(ac.MessageSquare,{size:14,strokeWidth:2.5})}),(0,P.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,P.jsx)("div",{className:`text-sm font-semibold truncate ${d?"text-[var(--primary)]":"text-[var(--foreground)]"}`,children:a.title}),(0,P.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,P.jsxs)("span",{className:`text-xs ${d?"text-[var(--primary)]":"text-[var(--muted-foreground)]"}`,children:[a.replies.length," replies"]}),(0,P.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"•"}),(0,P.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] flex items-center gap-1",children:[(0,P.jsx)(ad.Clock,{size:10}),function(a){if(!a)return"";let b=Math.floor((Date.now()-a)/1e3);if(b<60)return"just now";let c=Math.floor(b/60);if(c<60)return`${c}m`;let d=Math.floor(c/60);return d<24?`${d}h`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(a)}(a.lastActivityAt)]})]})]})]},a.rootMessageId)})})]}):null}a.s(["ThreadMentionPopover",()=>ae],745975);var af=a.i(824179),ag=a.i(864061),ah=a.i(552605);let ai=(0,Q.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);function aj({attachments:a,onRemove:b,onRetry:c}){return 0===a.length?null:(0,P.jsx)("div",{className:"flex flex-wrap gap-2 px-1 pb-2",children:a.map(a=>{var d;let e=a.mimeType.startsWith("image/"),f="failed"===a.status,g="uploading"===a.status;return(0,P.jsxs)("div",{className:`relative group flex items-center gap-2 rounded-lg border px-2.5 py-1.5 text-xs transition-all ${f?"border-red-200 bg-red-50 text-red-700":"border-[var(--border)] bg-[var(--app-shell-subtle)] text-[var(--muted-foreground)]"}`,children:[e&&a.previewUrl?(0,P.jsx)("img",{src:a.previewUrl,alt:a.filename,className:"w-8 h-8 rounded object-cover shrink-0"}):(0,P.jsx)("div",{className:"w-8 h-8 rounded bg-[var(--muted)] flex items-center justify-center shrink-0",children:e?(0,P.jsx)(ai,{className:"w-4 h-4 text-[var(--muted-foreground)]"}):(0,P.jsx)(ah.FileText,{className:"w-4 h-4 text-[var(--muted-foreground)]"})}),(0,P.jsxs)("div",{className:"min-w-0 max-w-[120px]",children:[(0,P.jsx)("div",{className:"truncate font-medium",children:a.filename}),f&&a.error?(0,P.jsx)("div",{className:"truncate text-[10px] text-red-500",children:a.error}):(0,P.jsx)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:(d=a.size)<1024?`${d}B`:d<1048576?`${(d/1024).toFixed(0)}KB`:`${(d/1048576).toFixed(1)}MB`})]}),g&&(0,P.jsx)("div",{className:"absolute bottom-0 left-0 right-0 h-0.5 bg-[var(--muted)] rounded-b-lg overflow-hidden",children:(0,P.jsx)("div",{className:"h-full bg-blue-500 transition-all",style:{width:`${a.progress}%`}})}),(0,P.jsxs)("div",{className:"flex items-center gap-0.5 shrink-0",children:[f&&(0,P.jsx)("button",{type:"button",onClick:()=>c(a.id),className:"p-0.5 rounded hover:bg-red-100 transition-colors",title:"Retry upload",children:(0,P.jsx)(ag.RefreshCw,{className:"w-3 h-3"})}),(0,P.jsx)("button",{type:"button",onClick:()=>b(a.id),className:"p-0.5 rounded hover:bg-[var(--muted)] transition-colors",title:"Remove",children:(0,P.jsx)(af.X,{className:"w-3 h-3"})})]})]},a.id)})})}function ak({onDrop:a,children:c}){let[d,e]=(0,b.useState)(!1),f={current:0},g=(0,b.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),f.current++,a.dataTransfer.types.includes("Files")&&e(!0)},[]),h=(0,b.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),i=(0,b.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),f.current--,0===f.current&&e(!1)},[]),j=(0,b.useCallback)(b=>{b.preventDefault(),b.stopPropagation(),f.current=0,e(!1),b.dataTransfer.files.length>0&&a(b.dataTransfer.files)},[a]);return(0,P.jsxs)("div",{className:"relative",onDragEnter:g,onDragOver:h,onDragLeave:i,onDrop:j,children:[c,d&&(0,P.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center rounded-lg border-2 border-dashed border-blue-400 bg-blue-50/80 pointer-events-none",children:(0,P.jsx)("span",{className:"text-sm font-medium text-blue-600",children:"Drop files to attach"})})]})}a.s(["AttachmentTray",()=>aj],669417),a.s(["ComposerDropZone",()=>ak],667494);let al=(0,Q.default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);a.s(["Paperclip",()=>al],514840)},915534,a=>{"use strict";let b=(0,a.i(831709).default)("rocket",[["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}],["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09",key:"u4xsad"}],["path",{d:"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z",key:"676m9"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05",key:"92ym6u"}]]);a.s(["Rocket",()=>b],915534)},689882,a=>{"use strict";var b=a.i(308316),c=a.i(786220),d=a.i(313872),e=a.i(628977),f=a.i(609345),g=a.i(981717),h=a.i(29714),i=a.i(279384),j=a.i(950364),k=a.i(177521),l=a.i(924434),m=a.i(45813),n=a.i(95348),o=a.i(382460),p=a.i(200369),q=a.i(785061),r=a.i(677955),s=a.i(340914),t=a.i(413169),u=a.i(719753),v=a.i(704238),w=a.i(589609),x=a.i(119616),y=a.i(745975),z=a.i(669417),A=a.i(667494),B=a.i(514840),C=a.i(915534),D=a.i(736868),E=a.i(811760),F=a.i(824179);function G(a,b,c,d,e){if(!a)return;let f=(0,u.plainTextRangeToPos)(a,b,c,d);f&&a.chain().focus().deleteRange(f).insertContent(e).insertContent(" ").run()}function H({onSend:a,onStop:H,loading:I,activityStatus:J,sendInterruptsBusy:K=!1,participants:L,projects:M=[],projectGroups:N=[],projectId:O,projectSlug:P,messages:Q=[],commands:R,placeholder:S="Message — @name to mention, /search, /summarize",workspaceRoots:T=[],onConfigureRoots:U,pendingThreadInsert:V,onClearPendingThread:W,autoMode:X=!1,onAutoModeChange:Y,repos:Z=[],selectedRepoIds:$,onRepoSelectionChange:_,initialPinnedParticipantId:aa}){let ab,ac,ad,ae=J??(I?"working":"ready"),af="ready"!==ae,[ag,ah]=(0,c.useState)(aa??null),[ai,aj]=(0,c.useState)(new Set),ak=$??ai,al=(0,c.useRef)(ak);al.current=ak;let am=(0,c.useCallback)(a=>{let b="function"==typeof a?a(al.current):a;_?_(b):aj(b)},[_]),[an,ao]=(0,c.useState)(!1),ap=(0,c.useRef)(null),aq=(0,c.useRef)(null),ar=(0,c.useRef)(!1),as=(0,c.useRef)(()=>{}),at=(0,c.useCallback)(()=>{aq.current?.click()},[]),[au,av]=(0,c.useState)([]),{issues:aw}=(0,n.useLinearIssueMentions)({projectId:O??"",projectSlug:P,enabled:!!O}),ax=(0,g.useMentionAutocomplete)({participants:L,projectGroups:N,projects:M,linearIssues:aw,maxSuggestions:8}),ay=(0,h.useCommandAutocomplete)({commands:R,maxSuggestions:6}),az=(0,j.useFileMention)({maxSuggestions:8}),aA=(0,k.useThreadMention)({messages:Q,maxSuggestions:8}),aB=(0,i.useAttachments)();as.current=aB.stageFiles;let aC=(0,l.useComposerAttachments)(),aD=(0,m.useComposerHistory)();(0,c.useEffect)(()=>{ag&&!L.some(a=>a.id===ag)&&ah(null)},[L,ag]),(0,c.useEffect)(()=>{if(!an)return;let a=a=>{ap.current&&!ap.current.contains(a.target)&&ao(!1)};return document.addEventListener("pointerdown",a),()=>document.removeEventListener("pointerdown",a)},[an]),(0,c.useEffect)(()=>{if(null!=$||0===ai.size)return;let a=new Set(Z.map(a=>a.id)),b=new Set([...ai].filter(b=>a.has(b)));b.size<ai.size&&aj(b)},[Z,$,ai]);let aE=(0,d.useEditor)({immediatelyRender:!1,extensions:[e.default.configure({heading:!1,bulletList:!1,orderedList:!1,listItem:!1,blockquote:!1,codeBlock:!1,code:!1,horizontalRule:!1,hardBreak:{keepMarks:!1}}),f.default.configure({placeholder:S}),s.ParticipantMention,s.ProjectMention,s.FileMention,s.ThreadMention,s.LinearIssueMention],editorProps:{attributes:{class:"composer-editor",role:"combobox","aria-autocomplete":"list"},handleDOMEvents:{compositionstart:()=>(ar.current=!0,ax.startComposition(),!1),compositionend:(a,b)=>(ar.current=!1,setTimeout(()=>{if(!aE)return;let a=(0,u.getCurrentParagraphText)(aE);a&&ax.endComposition(a.text,a.cursorPos)},0),!1)},handlePaste:(a,b)=>{let c=(0,r.getClipboardAttachmentFiles)(b.clipboardData);if(c.length>0)return as.current(c),!0;if((0,r.clipboardMayContainImageAttachments)(b.clipboardData)){let a="u">typeof navigator?navigator.clipboard:void 0;if("function"==typeof a?.read)return(0,r.readClipboardAttachmentFiles)(b.clipboardData,a).then(a=>{a.length>0&&as.current(a)}).catch(a=>{console.error("Failed to read pasted clipboard attachments:",a)}),!0}return!1},handleKeyDown:(a,b)=>{if("Tab"===b.key||"Enter"===b.key&&!b.shiftKey){if(ay.isOpen&&ay.filteredCommands.length>0){b.preventDefault();let a=ay.filteredCommands[ay.activeIndex];return a&&aK(a),!0}if(az.isOpen&&az.suggestions.length>0){b.preventDefault();let a=az.suggestions[az.activeIndex];return a&&("folder"===a.type?aI(a):aH(a)),!0}if(aA.isOpen&&aA.suggestions.length>0){b.preventDefault();let a=aA.suggestions[aA.activeIndex];return a&&aJ(a),!0}if(ax.isOpen&&ax.filteredSuggestions.length>0){b.preventDefault();let a=ax.filteredSuggestions[ax.activeIndex];return a&&aG(a),!0}}let c={key:b.key,preventDefault:()=>b.preventDefault()};if(ay.isOpen&&ay.handleKeyDown(c)||az.isOpen&&az.handleKeyDown(c)||aA.isOpen&&aA.handleKeyDown(c)||ax.handleKeyDown(c))return!0;if(("ArrowUp"===b.key||"ArrowDown"===b.key)&&!ax.isOpen&&!ay.isOpen&&!az.isOpen&&!aA.isOpen){let a=(0,t.serializeToPlainText)(aE.getJSON()).trim(),{state:c}=aE.view,d="ArrowUp"===b.key,e=d?c.selection.from<=1:c.selection.to>=c.doc.content.size-1,f=aD.navigate(d?"up":"down",a,e);if(null!==f)return b.preventDefault(),aE.commands.setContent(f),aE.commands.focus("end"),!0}return"Enter"===b.key&&!b.shiftKey&&(b.preventDefault(),aL(),!0)}},onUpdate:({editor:a})=>{if(ar.current)return;-1!==aD.historyIndex&&aD.resetNavigation();let b=(0,u.getCurrentParagraphText)(a);b&&(ax.handleInput(b.text,b.cursorPos),ay.handleInput(b.text,b.cursorPos),az.handleInput(b.text,b.cursorPos),aA.handleInput(b.text,b.cursorPos))},onBlur:()=>{ax.close(),ay.close(),az.close(),aA.close()}});(0,c.useEffect)(()=>{if(!V||!aE)return;let{title:a,threadId:b,messages:c}=V;aE.chain().focus().insertContent({type:"threadMention",attrs:{threadId:b,title:a}}).insertContent(" ").run();let d=c[0];if(d){let e={rootMessageId:b,title:a,rootMessage:d,replies:c.slice(1),participantIds:[...new Set(c.map(a=>a.participantId||"user"))],lastActivityAt:Math.max(...c.map(a=>a.timestamp))};aA.exportDiscussion(e).then(a=>av(b=>[...b,a])).catch(a=>console.error("Failed to export discussion for Add to chat:",a))}W?.()},[V]);let aF=(0,c.useCallback)(()=>{if(!aE)return;let a=(0,u.getCurrentParagraphText)(aE);a&&ax.handleInput(a.text,a.cursorPos)},[aE,ax]),aG=(0,c.useCallback)(a=>{if(!aE)return;let b=ax.selectSuggestion(a);if(!b)return;let c=(0,u.getCurrentParagraphText)(aE);if(!c)return;let d=b.text.startsWith("@@"),e="project-group"===a.kind?{type:"participantMention",attrs:{id:a.project.id,name:a.project.name,mode:d?"parallel":"sequential",kind:"project"}}:"project"===a.kind?{type:"projectMention",attrs:{id:a.project.id,slug:a.project.slug,name:a.project.name}}:"ticket"===a.kind?{type:"linearIssueMention",attrs:{id:a.issue.id,identifier:a.issue.identifier,title:a.issue.title,status:a.issue.status,url:a.issue.url}}:{type:"participantMention",attrs:{id:a.participant.id,name:a.participant.name,mode:d?"parallel":"sequential",kind:"agent"}};G(aE,c.blockStart,b.startIndex,b.endIndex,e),ax.close()},[aE,ax]),aH=(0,c.useCallback)(a=>{if(!aE)return;let b=az.selectSuggestion(a);if(!b)return;let c=(0,u.getCurrentParagraphText)(aE);if(!c)return;let d={type:"fileMention",attrs:{path:a.path,relativePath:a.relativePath??a.path,trigger:az.token?.trigger??"@/",attachMode:a.attachMode}};G(aE,c.blockStart,b.startIndex,b.endIndex,d),aC.addFilePath(a.path,a.relativePath??a.path,a.attachMode)},[aE,az,aC]),aI=(0,c.useCallback)(a=>{if(!aE)return;let b=(0,u.getCurrentParagraphText)(aE);if(!b)return;let c=az.drillDown(a);if(!c)return;let d=(0,u.plainTextRangeToPos)(aE,b.blockStart,c.startIndex,c.endIndex);d&&aE.chain().focus().deleteRange(d).insertContent(c.text).run()},[aE,az]),aJ=(0,c.useCallback)(async a=>{if(!aE)return;let b=aA.selectSuggestion(a);if(!b)return;let c=(0,u.getCurrentParagraphText)(aE);if(!c)return;let d={type:"threadMention",attrs:{threadId:a.rootMessageId,title:a.title}};G(aE,c.blockStart,b.startIndex,b.endIndex,d);try{let b=await aA.exportDiscussion(a);av(a=>[...a,b])}catch(a){console.error("Failed to export discussion:",a)}},[aE,aA]),aK=(0,c.useCallback)(a=>{ay.selectCommand(a),aE&&aE.commands.clearContent()},[ay,aE]),aL=(0,c.useCallback)(async()=>{if(!aE)return;let b=aE.getJSON(),c=(0,t.serializeToPlainText)(b).trim();if(!c&&!aB.hasUploaded&&!aC.hasFilePaths||!aB.canSend)return;if(c){let a=R.find(a=>a.name===c||a.aliases?.some(a=>`/${a}`===c));if(a){a.execute(),aE.commands.clearContent(),ay.close(),ax.close();return}}let d=c||"(attached files)",e=[];if(ak.size>0){let a=Z.filter(a=>ak.has(a.id));if(a.length>0){let b=a.map(a=>{let b=[a.name];return a.path&&b.push(`path: ${a.path}`),a.notes&&b.push(a.notes),`- ${b.join(" | ")}`}).join("\n");e.push(`Focused repos (the user is specifically talking about these repositories):
|
|
8
|
-
${b}`)}}if(au.length>0){let a=au.map(a=>`- "${a.title}" — ${a.summary} (full transcript: ${a.filePath})`).join("\n");e.push(`Referenced threads:
|
|
9
|
-
${a}`)}if(aC.hasFilePaths){let a=await (0,o.buildAgentContext)(aC.filePaths);a.contextPrefix&&e.push(a.contextPrefix.trimEnd())}let f=(0,p.extractMentionedLinearIssueIds)(b);if(f.length>0)try{let a=await fetch("/api/linear/issues/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({issueIds:f})});if(!a.ok)throw Error(`Failed to load issue context: ${a.status}`);let b=await a.json().catch(()=>({})),c=Array.isArray(b.issues)?b.issues:[],d=(0,p.buildLinearIssueContextPrefix)(c);d&&e.push(d.trimEnd())}catch(a){console.error("Failed to load Linear issue mention context:",a)}let g=e.length>0?e.join("\n\n")+"\n\n":void 0,h=(0,q.extractComposerRouting)(b,ag);c&&aD.pushEntry(c);let i=aB.attachmentIds.length>0?aB.attachmentIds:void 0,j=i?aB.getAttachmentMetas():void 0;a(d,10,i,j,ag??void 0,g,h),aE.commands.clearContent(),av([]),aB.clear(),aC.clearFilePaths(),ax.close(),ay.close(),aA.close()},[aE,ax,ay,R,a,aB,aC,au,aA,aD,ak,Z,ag]),aM=ax.isOpen&&ax.filteredSuggestions.length>0;ay.isOpen&&ay.filteredCommands.length,az.isOpen&&az.suggestions.length,aA.isOpen&&aA.suggestions.length,aM&&ax.filteredSuggestions[ax.activeIndex];let aN=aB.staged.some(a=>"uploading"===a.status),aO=!aE||aE.isEmpty,aP=L.find(a=>a.id===ag)??null;return(0,b.jsx)("div",{className:"pb-6",children:(0,b.jsxs)("div",{className:"max-w-3xl mx-auto",children:[(0,b.jsx)(A.ComposerDropZone,{onDrop:aB.stageFiles,children:(0,b.jsxs)("div",{className:"bg-[var(--app-shell-surface)] border border-[var(--app-shell-border)] shadow-[var(--shadow-sm)] focus-within:border-[var(--app-shell-border-strong)] focus-within:ring-1 focus-within:ring-[var(--ring)] transition-all flex flex-col rounded-2xl",children:[Y&&(0,b.jsxs)("div",{className:`relative overflow-hidden border-b transition-all duration-500 ${X?"border-orange-200/50 dark:border-orange-500/30":"border-gray-100 dark:border-gray-800/60"}`,children:[(0,b.jsx)("div",{className:`absolute inset-0 transition-opacity duration-700 ${X?"opacity-100":"opacity-0"}`,style:{background:"linear-gradient(120deg, var(--warning-muted) 0%, transparent 50%, var(--warning-muted) 100%)",backgroundSize:"200% 100%",animation:X?"shipBgSweep 4s ease-in-out infinite":"none"}}),X&&(0,b.jsx)("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[...Array(8)].map((a,c)=>(0,b.jsx)("div",{className:"absolute h-[1.5px] rounded-full",style:{top:`${12+10*c}%`,right:"-10%",width:`${20+c%3*15}%`,background:"linear-gradient(to left, transparent, var(--warning))",opacity:.3+c%3*.1,animation:`shipSpeedLine ${.8+c%4*.3}s ${.1*c}s ease-in-out infinite`}},c))}),(0,b.jsx)("div",{className:"relative px-3 py-2",children:(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:`p-1 rounded-md transition-all duration-300 ${X?"bg-[var(--warning)] text-[var(--warning-muted)] shadow-md":"bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]"}`,style:X?{animation:"shipPulse 2s ease-in-out infinite"}:{},children:(0,b.jsx)(C.Rocket,{size:14})}),(0,b.jsx)("span",{className:`text-sm font-semibold transition-colors duration-300 ${X?"text-[var(--warning)]":"text-[var(--foreground)]"}`,children:"Ship Mode"}),(0,b.jsx)("span",{className:`text-xs transition-colors duration-300 ${X?"text-[var(--warning)] opacity-60":"text-[var(--app-shell-muted)] opacity-60"}`,children:"|"}),(0,b.jsx)("span",{className:`text-xs font-medium transition-colors duration-300 ${X?"text-[var(--warning)] opacity-80":"text-[var(--app-shell-muted)]"}`,children:X?"Continuous execution is active for this thread":"Continuous execution stays off until you enable it"})]}),(0,b.jsx)("button",{type:"button",onClick:()=>Y(!X),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-[var(--warning)] focus:ring-offset-2 focus:ring-offset-[var(--background)] ${X?"bg-[var(--warning)]":"bg-[var(--app-shell-border-strong)]"}`,children:(0,b.jsx)("span",{className:`inline-block h-4 w-4 transform rounded-full bg-[var(--app-shell-elevated)] shadow-sm transition-transform duration-200 ${X?"translate-x-6":"translate-x-1"}`})})]})})]}),(0,b.jsxs)("div",{className:"p-1.5 transition-all",children:[aB.staged.length>0&&(0,b.jsx)("div",{className:"mx-2 mt-2 mb-1",children:(0,b.jsx)(z.AttachmentTray,{attachments:aB.staged,onRemove:aB.remove,onRetry:aB.retry})}),(0,b.jsxs)("div",{className:"p-2 relative",children:[(0,b.jsx)("input",{ref:aq,type:"file",multiple:!0,className:"hidden",onChange:a=>{a.target.files&&a.target.files.length>0&&(aB.stageFiles(a.target.files),a.target.value="")}}),(0,b.jsxs)("div",{className:"flex-1 relative",onClick:aF,children:[(0,b.jsx)(d.EditorContent,{editor:aE,className:"composer-editor"}),(0,b.jsx)(v.MentionPopover,{isOpen:ax.isOpen&&!ay.isOpen,suggestions:ax.filteredSuggestions,activeIndex:ax.activeIndex,listboxId:"composer-mention-listbox",optionIdPrefix:"composer-mention-option",onSelect:aG}),(0,b.jsx)(w.CommandPopover,{isOpen:ay.isOpen,commands:ay.filteredCommands,activeIndex:ay.activeIndex,listboxId:"composer-command-listbox",optionIdPrefix:"composer-command-option",onSelect:aK}),(0,b.jsx)(x.FileMentionPopover,{isOpen:az.isOpen,suggestions:az.suggestions,activeIndex:az.activeIndex,isLoading:az.isLoading,error:az.error,listboxId:"composer-file-mention-listbox",optionIdPrefix:"composer-file-mention-option",onSelect:a=>{"folder"===a.type?aI(a):aH(a)},onAttachContents:az.onAttachContents}),(0,b.jsx)(y.ThreadMentionPopover,{isOpen:aA.isOpen&&!ay.isOpen&&!az.isOpen,suggestions:aA.suggestions,activeIndex:aA.activeIndex,listboxId:"composer-thread-mention-listbox",optionIdPrefix:"composer-thread-mention-option",onSelect:aJ})]})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-t border-[var(--app-shell-border)] transition-colors",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("button",{type:"button",onClick:at,className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] rounded-lg transition-colors","aria-label":"Attach file",title:"Attach file",children:(0,b.jsx)(B.Paperclip,{className:"h-4 w-4",strokeWidth:1.75})}),(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"text-[10px] font-semibold text-[var(--app-shell-muted)] uppercase tracking-wider mr-1",children:"Agents"}),(0,b.jsx)("div",{className:"flex items-center -space-x-1.5",children:0===L.length?(0,b.jsx)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:"No agents"}):L.map(a=>(0,b.jsxs)("div",{role:"button",tabIndex:0,"aria-pressed":ag===a.id,onClick:()=>ah(b=>b===a.id?null:a.id),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),ah(b=>b===a.id?null:a.id))},className:`relative w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--app-shell-elevated)] shadow-sm flex items-center justify-center overflow-visible shrink-0 transition-all cursor-pointer ${ag===a.id?"-translate-y-0.5 ring-2 ring-[var(--ring)] ring-offset-1 ring-offset-[var(--background)]":"hover:-translate-y-0.5"}`,title:a.name,children:[(0,b.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${a.id}&backgroundColor=${a.color?a.color.replace("#",""):"e2e8f0"}`,alt:a.name,className:"w-full h-full rounded-full object-cover"}),af&&(0,b.jsx)("span",{className:`absolute -bottom-0.5 -right-0.5 w-2 h-2 border border-[var(--app-shell-elevated)] rounded-full ${"queued"===ae?"bg-amber-400":"bg-emerald-400"}`})]},a.id))})]}),aP&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,b.jsxs)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:["Pinned: ",(0,b.jsx)("span",{className:"text-[var(--foreground)]",children:aP.name})]})]}),Z.length>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsxs)("div",{className:"relative",ref:ap,children:[(0,b.jsxs)("button",{type:"button",onClick:()=>ao(a=>!a),className:"composer-repo-select-trigger","aria-haspopup":"listbox","aria-expanded":an,children:[(0,b.jsx)(D.FolderGit2,{className:"h-3.5 w-3.5",strokeWidth:1.75}),(0,b.jsx)("span",{children:"Folders"}),(0,b.jsx)(E.ChevronDown,{className:`h-3 w-3 transition-transform ${an?"rotate-180":""}`})]}),an&&(0,b.jsx)("div",{className:"composer-repo-dropdown",role:"listbox","aria-multiselectable":"true",children:Z.map(a=>{let c=ak.has(a.id);return(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":c,className:`composer-repo-dropdown__item ${c?"composer-repo-dropdown__item--selected":""}`,onClick:()=>am(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c}),children:[(0,b.jsx)("span",{className:`w-3.5 h-3.5 rounded border flex items-center justify-center shrink-0 transition-colors ${c?"bg-emerald-500 border-emerald-500 text-white":"border-[var(--app-shell-border-strong)]"}`,children:c&&(0,b.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,b.jsx)("path",{d:"M2 5l2 2 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,b.jsx)("span",{className:"truncate",children:a.name})]},a.id)})})]}),(ac=(ab=Z.filter(a=>ak.has(a.id))).slice(0,1),ad=ab.length-1,(0,b.jsxs)(b.Fragment,{children:[ac.map(a=>(0,b.jsxs)("span",{className:"composer-repo-pill",title:a.path||a.name,children:[(0,b.jsx)(D.FolderGit2,{className:"h-3 w-3 shrink-0",strokeWidth:1.75}),(0,b.jsx)("span",{className:"composer-repo-pill__name",children:a.name}),(0,b.jsx)("button",{type:"button",className:"composer-repo-pill__remove",onClick:()=>am(b=>{let c=new Set(b);return c.delete(a.id),c}),"aria-label":`Remove ${a.name}`,children:(0,b.jsx)(F.X,{className:"h-3 w-3"})})]},a.id)),ad>0&&(0,b.jsxs)("span",{className:"composer-repo-pill composer-repo-pill--overflow",children:["+",ad]})]}))]})]})]}),af&&!K?(0,b.jsx)("button",{type:"button",onClick:H,className:"flex items-center gap-2 bg-[var(--destructive-muted)] text-[var(--destructive)] border border-[var(--status-failed-border)] px-4 py-1.5 rounded-lg text-sm font-semibold hover:opacity-90 transition-colors",children:"Stop"}):(0,b.jsxs)("button",{type:"button",onClick:aL,disabled:aO&&!aB.hasUploaded&&!aC.hasFilePaths||aN,className:"flex items-center gap-2 bg-[var(--primary)] hover:bg-[var(--primary-hover)] text-[var(--primary-foreground)] px-4 py-1.5 rounded-lg text-sm font-semibold transition-colors disabled:opacity-50 disabled:cursor-not-allowed shadow-sm",children:["Send",(0,b.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,b.jsx)("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),(0,b.jsx)("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})]})]})]})]})}),(0,b.jsxs)("div",{className:"mt-3 flex items-center justify-between text-xs text-[var(--app-shell-muted)] px-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("div",{className:`w-1.5 h-1.5 rounded-full ${"working"===ae?"bg-emerald-400 animate-pulse":"queued"===ae?"bg-amber-400":"bg-emerald-400"}`}),(0,b.jsx)("span",{children:"working"===ae?"Working":"queued"===ae?"Queued":"Ready"})]}),(0,b.jsxs)("span",{children:["Press ",(0,b.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Enter"})," to send, ",(0,b.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Shift"})," + ",(0,b.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Enter"})," for new line"]})]})]})})}a.s(["Composer",()=>H])}];
|
|
10
|
-
|
|
11
|
-
//# sourceMappingURL=apps_local_d30cc504._.js.map
|
package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_df7bb32d._.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[697183,a=>{"use strict";let b=(0,a.i(831709).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"}]]);a.s(["Trash2",()=>b],697183)},599086,a=>{"use strict";let b=(0,a.i(831709).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"}]]);a.s(["AlertTriangle",()=>b],599086)},667597,a=>{"use strict";let b=(0,a.i(831709).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"}]]);a.s(["Pencil",()=>b],667597)},756490,a=>{"use strict";let b=(0,a.i(831709).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);a.s(["ChevronRight",()=>b],756490)},319405,a=>{"use strict";let b="obra/superpowers",c="vercel/next-skills";function d(a,b,c){return c?{repo:a,skillId:b,condition:c}:{repo:a,skillId:b}}function e(a){return a.condition?{...a}:{repo:a.repo,skillId:a.skillId}}function f(a){let b={...a};return b.extraSkills&&(b.extraSkills=b.extraSkills.map(e)),b}function g(a){return{...a,agents:a.agents.map(f)}}function h(a){let b={...a,agents:a.agents.map(f)};return b.variants&&(b.variants=b.variants.map(g)),b}let i={"strategist-lead":[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"dispatching-parallel-agents"),d(b,"requesting-code-review"),d(b,"verification-before-completion")],"senior-builder":[d(b,"test-driven-development"),d(b,"systematic-debugging"),d(b,"subagent-driven-development"),d(b,"requesting-code-review"),d(b,"verification-before-completion"),d(b,"finishing-a-development-branch")],builder:[d(b,"test-driven-development"),d(b,"systematic-debugging"),d(b,"verification-before-completion"),d(b,"finishing-a-development-branch")],planner:[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"verification-before-completion")],researcher:[d(b,"brainstorming"),d(b,"writing-plans"),d(b,"systematic-debugging"),d(b,"verification-before-completion")],reviewer:[d(b,"systematic-debugging"),d(b,"test-driven-development"),d(b,"requesting-code-review"),d(b,"verification-before-completion")]},j=["strategist-lead","senior-builder","builder","planner","researcher","reviewer"].map(a=>({id:a,skills:i[a].map(e)})),k=[d(c,"api-routes","next.js app router, route handlers, api endpoints"),d(c,"nextjs-patterns","next.js app structure, routing, layouts, data fetching"),d(c,"react-server-components","react server components, server client boundaries, next.js rendering")],l={"team-lead":{name:"Ada",role:"Team Lead",style:"balanced",skillProfileId:"strategist-lead",identity:"Own technical direction, break ambiguous work into executable plans, and keep the squad aligned on delivery."},"fullstack-engineer":{name:"Kai",role:"Senior Fullstack Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Ship features end-to-end across frontend and backend with pragmatic tradeoffs and clean boundaries.",extraSkills:k},"backend-engineer":{name:"Ravi",role:"Senior Backend Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Own backend contracts, data integrity, and safe delivery under real production constraints."},"frontend-engineer":{name:"Mira",role:"Senior Frontend Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Own product-facing UI quality, interaction design fidelity, and maintainable front-end architecture.",extraSkills:k},"data-engineer":{name:"Nia",role:"Data Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Build reliable data pipelines, schemas, and transformations with a bias toward traceability."},"ml-engineer":{name:"Luca",role:"ML Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Ship model-backed systems pragmatically, with evaluation, rollback paths, and tight production feedback."},"devops-engineer":{name:"Juno",role:"DevOps Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Own delivery automation, deployment safety, and infrastructure changes that must fail predictably."},"security-engineer":{name:"Iris",role:"Security Engineer",style:"conservative",skillProfileId:"senior-builder",identity:"Harden trust boundaries, implement secure defaults, and turn vague risk into concrete engineering requirements."},"ui-designer":{name:"Theo",role:"UI Designer",style:"specialist",skillProfileId:"builder",identity:"Refine interfaces into consistent, high-signal UI systems that are practical to build and maintain.",extraSkills:[d(c,"nextjs-patterns","next.js ui flows, routing, layouts, app router"),d(c,"react-server-components","react server components, server client boundaries, data fetching placement")]},"qa-engineer":{name:"Sana",role:"QA Engineer",style:"conservative",skillProfileId:"reviewer",identity:"Find regressions early, tighten acceptance boundaries, and force evidence before release claims."},sre:{name:"Dax",role:"Site Reliability Engineer",style:"conservative",skillProfileId:"reviewer",identity:"Guard uptime, incident readiness, and operational correctness by challenging risky assumptions early."},"pen-tester":{name:"Vega",role:"Penetration Tester",style:"specialist",skillProfileId:"reviewer",identity:"Probe the system as an adversary, find exploit paths, and make the attack surface legible to builders."},"product-manager":{name:"Sage",role:"Product Manager",style:"balanced",skillProfileId:"planner",identity:"Turn ambiguous requests into scoped bets, crisp plans, and explicit tradeoffs the team can execute."},"ux-designer":{name:"Yara",role:"UX Designer",style:"balanced",skillProfileId:"planner",identity:"Clarify user intent, reduce friction in flows, and turn product goals into coherent interaction design."},"technical-writer":{name:"Orin",role:"Technical Writer",style:"balanced",skillProfileId:"planner",identity:"Turn complex implementation detail into clear docs, rollout notes, and operational guidance."},"growth-marketer":{name:"Zed",role:"Growth Marketer",style:"balanced",skillProfileId:"strategist-lead",identity:"Design growth experiments with clear hypotheses, sequencing, and measurable outcomes."},analyst:{name:"Piper",role:"Product Analyst",style:"specialist",skillProfileId:"researcher",identity:"Ground decisions in evidence, identify gaps in the brief, and surface the signal behind user behavior."},"content-writer":{name:"Wren",role:"Content Strategist",style:"balanced",skillProfileId:"researcher",identity:"Translate product and audience insight into clear narratives, launch copy, and feedback loops."},researcher:{name:"Ezra",role:"Researcher",style:"balanced",skillProfileId:"researcher",identity:"Map fast-changing domains, synthesize evidence, and surface the governing model behind decisions."},"marketing-strategist":{name:"Finn",role:"Marketing Strategist",style:"balanced",skillProfileId:"strategist-lead",identity:"Own brand positioning, campaign strategy, and channel mix with measurable conversion targets."},copywriter:{name:"Blair",role:"Copywriter",style:"balanced",skillProfileId:"researcher",identity:"Craft clear, persuasive copy that serves both the reader and the business goal."},"support-engineer":{name:"Gwen",role:"Support Engineer",style:"balanced",skillProfileId:"builder",identity:"Diagnose customer issues fast, escalate with precision, and turn patterns into preventive fixes."},"support-lead":{name:"Eli",role:"Support Lead",style:"balanced",skillProfileId:"planner",identity:"Triage incoming issues, route to the right responder, and track resolution quality."},"devrel-engineer":{name:"Milo",role:"Developer Relations Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Build sample apps, integrations, and tooling that make the platform easy to adopt."},"community-manager":{name:"Uma",role:"Community Manager",style:"balanced",skillProfileId:"planner",identity:"Grow and engage the developer community through events, content, and feedback loops."},"ops-engineer":{name:"Nate",role:"Operations Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Automate operational workflows, reduce toil, and keep internal tooling reliable."},"project-manager":{name:"Quinn",role:"Project Manager",style:"balanced",skillProfileId:"planner",identity:"Track milestones, remove blockers, and keep cross-team delivery on schedule."},"solutions-architect":{name:"Cass",role:"Solutions Architect",style:"balanced",skillProfileId:"strategist-lead",identity:"Design system-level architectures, evaluate tradeoffs, and guide teams through technical decisions."},"mobile-engineer":{name:"Rio",role:"Senior Mobile Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Ship native and cross-platform mobile experiences with attention to performance and platform conventions."}},m=["team-lead","fullstack-engineer","backend-engineer","frontend-engineer","qa-engineer","product-manager","analyst","growth-marketer","content-writer","data-engineer","ml-engineer","ux-designer","ui-designer","devops-engineer","sre","security-engineer","pen-tester","researcher","technical-writer","marketing-strategist","copywriter","support-engineer","support-lead","devrel-engineer","community-manager","ops-engineer","project-manager","solutions-architect","mobile-engineer"].map(a=>f({id:a,...l[a]}));function n(a){return f({id:a,...l[a]})}let o=[{id:"engineering",name:"Engineering",description:"Software engineering teams across all domains — pick a specialization or build your own.",icon:"hammer",agents:[n("team-lead"),n("backend-engineer"),n("frontend-engineer"),n("fullstack-engineer"),n("qa-engineer")],variants:[{id:"general",name:"General",description:"Product engineering with leadership, builders across the stack, and quality gates.",agents:[n("team-lead"),n("backend-engineer"),n("frontend-engineer"),n("fullstack-engineer"),n("qa-engineer")]},{id:"ai",name:"AI",description:"Applied AI and ML engineering for models, evaluation, and production inference.",agents:[n("team-lead"),n("ml-engineer"),n("data-engineer"),n("researcher"),n("qa-engineer")]},{id:"data",name:"Data",description:"Data platform engineering for pipelines, warehousing, and transformation reliability.",agents:[n("team-lead"),n("data-engineer"),n("qa-engineer")]},{id:"mobile",name:"Mobile",description:"Native and cross-platform mobile engineering with fullstack support.",agents:[n("team-lead"),n("mobile-engineer"),n("fullstack-engineer"),n("qa-engineer")]},{id:"infra",name:"Infrastructure",description:"Platform reliability for delivery pipelines, runtime stability, and operational safety.",agents:[n("team-lead"),n("devops-engineer"),n("sre")]},{id:"security",name:"Security",description:"Security engineering for secure defaults, hardening, and adversarial validation.",agents:[n("team-lead"),n("security-engineer"),n("pen-tester")]},{id:"solutions",name:"Solutions",description:"Architecture and integration work across systems and customer deployments.",agents:[n("team-lead"),n("solutions-architect"),n("backend-engineer"),n("devops-engineer")]}]},{id:"product",name:"Product",description:"Discovery and prioritization for product direction, scope, and validation.",icon:"clipboard-list",agents:[n("team-lead"),n("product-manager"),n("analyst")]},{id:"design",name:"Design",description:"UX and UI pairing for flows, interaction models, and polished product surfaces.",icon:"palette",agents:[n("team-lead"),n("ux-designer"),n("ui-designer")]},{id:"growth",name:"Growth",description:"Experiment and content team for acquisition, activation, and learning loops.",icon:"trending-up",agents:[n("team-lead"),n("growth-marketer"),n("content-writer")]},{id:"research",name:"Research",description:"Research and synthesis pair for investigations, briefs, and decision support.",icon:"flask-conical",agents:[n("team-lead"),n("researcher"),n("technical-writer")]},{id:"marketing",name:"Marketing",description:"Brand strategy, campaign execution, and content production.",icon:"megaphone",agents:[n("team-lead"),n("marketing-strategist"),n("copywriter"),n("content-writer")]},{id:"support",name:"Support",description:"Customer-facing support with triage, diagnosis, and escalation.",icon:"life-buoy",agents:[n("team-lead"),n("support-lead"),n("support-engineer")]},{id:"devrel",name:"Developer Relations",description:"Developer advocacy through tooling, content, and community engagement.",icon:"users",agents:[n("team-lead"),n("devrel-engineer"),n("community-manager"),n("technical-writer")]},{id:"operations",name:"Operations",description:"Internal tooling, project delivery, and cross-team coordination.",icon:"settings",agents:[n("team-lead"),n("project-manager"),n("ops-engineer")]}].map(h),p=new Map(j.map(a=>[a.id,a])),q=new Map(m.map(a=>[a.id,a]));function r(){return m.map(f)}function s(a){let b,c="string"==typeof a?function(a){if(!a)return null;let b=q.get(a);return b?f(b):null}(a):a;return c?[...(b=function(a){if(!a)return null;let b=p.get(a);return b?{id:b.id,skills:b.skills.map(e)}:null}(c.skillProfileId))?b.skills:[],...c.extraSkills?c.extraSkills.map(e):[]]:[]}function t(){return o.map(h)}o.map(a=>[a.id,a]),a.s(["getAgentPresetBindings",()=>s,"listAgentPresets",()=>r,"listTeamTemplates",()=>t])}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=apps_local_df7bb32d._.js.map
|