@mndrk/agx 2.0.45 → 2.0.46

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.
Files changed (210) hide show
  1. package/cloud-runtime/standalone/.next/BUILD_ID +1 -1
  2. package/cloud-runtime/standalone/.next/build-manifest.json +2 -2
  3. package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
  4. package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
  5. package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
  6. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  9. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  12. package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
  13. package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +2 -2
  14. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  15. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  16. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  17. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  18. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  19. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  20. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  21. package/cloud-runtime/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  22. package/cloud-runtime/standalone/.next/server/app/agents.html +2 -2
  23. package/cloud-runtime/standalone/.next/server/app/agents.rsc +2 -2
  24. package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +2 -2
  25. package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  26. package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  27. package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  28. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +1 -1
  29. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  30. package/cloud-runtime/standalone/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  31. package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
  32. package/cloud-runtime/standalone/.next/server/app/automations.rsc +2 -2
  33. package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +2 -2
  34. package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  35. package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +2 -2
  36. package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +2 -2
  37. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +1 -1
  38. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  39. package/cloud-runtime/standalone/.next/server/app/board/page_client-reference-manifest.js +1 -1
  40. package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
  41. package/cloud-runtime/standalone/.next/server/app/board.rsc +2 -2
  42. package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +2 -2
  43. package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
  44. package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +2 -2
  45. package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  46. package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  47. package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
  48. package/cloud-runtime/standalone/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  49. package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
  50. package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +2 -2
  51. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +2 -2
  52. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  53. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  54. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  55. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +1 -1
  56. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  57. package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
  58. package/cloud-runtime/standalone/.next/server/app/index.rsc +2 -2
  59. package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  60. package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +2 -2
  61. package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  62. package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  63. package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  64. package/cloud-runtime/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  65. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  66. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  67. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
  68. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/linear/page_client-reference-manifest.js +1 -1
  69. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  70. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  71. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  72. package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
  73. package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +2 -2
  74. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +2 -2
  75. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  76. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  77. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  78. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
  79. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  80. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  81. package/cloud-runtime/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  82. package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
  83. package/cloud-runtime/standalone/.next/server/app/projects.rsc +2 -2
  84. package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +2 -2
  85. package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  86. package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  87. package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  88. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
  89. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  90. package/cloud-runtime/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  91. package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
  92. package/cloud-runtime/standalone/.next/server/app/settings.rsc +2 -2
  93. package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  94. package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  95. package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  96. package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  97. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  98. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  99. package/cloud-runtime/standalone/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  100. package/cloud-runtime/standalone/.next/server/app/skills.html +2 -2
  101. package/cloud-runtime/standalone/.next/server/app/skills.rsc +2 -2
  102. package/cloud-runtime/standalone/.next/server/app/skills.segments/_full.segment.rsc +2 -2
  103. package/cloud-runtime/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  104. package/cloud-runtime/standalone/.next/server/app/skills.segments/_index.segment.rsc +2 -2
  105. package/cloud-runtime/standalone/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  106. package/cloud-runtime/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
  107. package/cloud-runtime/standalone/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  108. package/cloud-runtime/standalone/.next/server/app/status/page_client-reference-manifest.js +1 -1
  109. package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
  110. package/cloud-runtime/standalone/.next/server/app/status.rsc +2 -2
  111. package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +2 -2
  112. package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
  113. package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +2 -2
  114. package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  115. package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
  116. package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
  117. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  118. package/cloud-runtime/standalone/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
  119. package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
  120. package/cloud-runtime/standalone/.next/server/app/welcome.rsc +2 -2
  121. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +2 -2
  122. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
  123. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +2 -2
  124. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +2 -2
  125. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +1 -1
  126. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
  127. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3b83b657._.js +2 -2
  128. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__748c718f._.js +1 -1
  129. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_linear_page_tsx_971a6ba7._.js +2 -2
  130. package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
  131. package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
  132. package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
  133. package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
  134. package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
  135. package/cloud-runtime/standalone/.next/static/chunks/37f07896b044d69f.css +1 -0
  136. package/cloud-runtime/standalone/.next/static/chunks/{00716478a3ee55a2.js → cca7c8e4ade050f0.js} +2 -2
  137. package/cloud-runtime/standalone/app/api/linear/issues/route.ts +9 -2
  138. package/cloud-runtime/standalone/components/LinearBoard.tsx +256 -10
  139. package/cloud-runtime/standalone/hooks/useLinearIssues.ts +7 -3
  140. package/cloud-runtime/standalone/lib/linear-issue-store.ts +11 -5
  141. package/cloud-runtime/standalone/state/automations/.state/24a6a5db-3b14-49c4-841f-29f10f015fbb.json +3 -3
  142. package/package.json +1 -1
  143. package/cloud-runtime/standalone/.linear-token.json +0 -4
  144. package/cloud-runtime/standalone/.next/static/chunks/3091043e8c282dce.css +0 -1
  145. package/cloud-runtime/standalone/coverage/clover.xml +0 -1208
  146. package/cloud-runtime/standalone/coverage/coverage-final.json +0 -29
  147. package/cloud-runtime/standalone/coverage/lcov-report/app/api/audit/index.html +0 -116
  148. package/cloud-runtime/standalone/coverage/lcov-report/app/api/audit/route.ts.html +0 -208
  149. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/[...nextauth]/index.html +0 -116
  150. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/[...nextauth]/route.ts.html +0 -166
  151. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/daemon-secret/index.html +0 -116
  152. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/daemon-secret/route.ts.html +0 -532
  153. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/status/index.html +0 -116
  154. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/status/route.ts.html +0 -178
  155. package/cloud-runtime/standalone/coverage/lcov-report/app/api/learnings/index.html +0 -116
  156. package/cloud-runtime/standalone/coverage/lcov-report/app/api/learnings/route.ts.html +0 -262
  157. package/cloud-runtime/standalone/coverage/lcov-report/app/api/logs/stream/index.html +0 -116
  158. package/cloud-runtime/standalone/coverage/lcov-report/app/api/logs/stream/route.ts.html +0 -448
  159. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/complete/index.html +0 -116
  160. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/complete/route.ts.html +0 -331
  161. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/index.html +0 -116
  162. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/route.ts.html +0 -505
  163. package/cloud-runtime/standalone/coverage/lcov-report/app/api/stage-prompts/index.html +0 -116
  164. package/cloud-runtime/standalone/coverage/lcov-report/app/api/stage-prompts/route.ts.html +0 -412
  165. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/advance/index.html +0 -116
  166. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/advance/route.ts.html +0 -304
  167. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/index.html +0 -116
  168. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/logs/index.html +0 -116
  169. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/logs/route.ts.html +0 -202
  170. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/route.ts.html +0 -373
  171. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/index.html +0 -116
  172. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/route.ts.html +0 -499
  173. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/stream/index.html +0 -116
  174. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/stream/route.ts.html +0 -349
  175. package/cloud-runtime/standalone/coverage/lcov-report/base.css +0 -224
  176. package/cloud-runtime/standalone/coverage/lcov-report/block-navigation.js +0 -87
  177. package/cloud-runtime/standalone/coverage/lcov-report/components/AuthProvider.tsx.html +0 -259
  178. package/cloud-runtime/standalone/coverage/lcov-report/components/ChatInterface.tsx.html +0 -1228
  179. package/cloud-runtime/standalone/coverage/lcov-report/components/KanbanBoard.tsx.html +0 -1024
  180. package/cloud-runtime/standalone/coverage/lcov-report/components/Layout.tsx.html +0 -211
  181. package/cloud-runtime/standalone/coverage/lcov-report/components/LearningsPanel.tsx.html +0 -535
  182. package/cloud-runtime/standalone/coverage/lcov-report/components/LogTimeline.tsx.html +0 -415
  183. package/cloud-runtime/standalone/coverage/lcov-report/components/SortableTaskCard.tsx.html +0 -358
  184. package/cloud-runtime/standalone/coverage/lcov-report/components/StagePills.tsx.html +0 -439
  185. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskCard.tsx.html +0 -514
  186. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskCardOverlay.tsx.html +0 -256
  187. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskDetail.tsx.html +0 -622
  188. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskList.tsx.html +0 -253
  189. package/cloud-runtime/standalone/coverage/lcov-report/components/index.html +0 -281
  190. package/cloud-runtime/standalone/coverage/lcov-report/favicon.png +0 -0
  191. package/cloud-runtime/standalone/coverage/lcov-report/hooks/index.html +0 -116
  192. package/cloud-runtime/standalone/coverage/lcov-report/hooks/useTasks.ts.html +0 -1042
  193. package/cloud-runtime/standalone/coverage/lcov-report/index.html +0 -341
  194. package/cloud-runtime/standalone/coverage/lcov-report/lib/auth-client.ts.html +0 -202
  195. package/cloud-runtime/standalone/coverage/lcov-report/lib/auth-server.ts.html +0 -172
  196. package/cloud-runtime/standalone/coverage/lcov-report/lib/auth.ts.html +0 -265
  197. package/cloud-runtime/standalone/coverage/lcov-report/lib/db.ts.html +0 -1252
  198. package/cloud-runtime/standalone/coverage/lcov-report/lib/index.html +0 -131
  199. package/cloud-runtime/standalone/coverage/lcov-report/lib/orchestrator.ts.html +0 -409
  200. package/cloud-runtime/standalone/coverage/lcov-report/lib/security.ts.html +0 -1165
  201. package/cloud-runtime/standalone/coverage/lcov-report/lib/supabase-server.ts.html +0 -175
  202. package/cloud-runtime/standalone/coverage/lcov-report/lib/supabase.ts.html +0 -157
  203. package/cloud-runtime/standalone/coverage/lcov-report/prettify.css +0 -1
  204. package/cloud-runtime/standalone/coverage/lcov-report/prettify.js +0 -2
  205. package/cloud-runtime/standalone/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  206. package/cloud-runtime/standalone/coverage/lcov-report/sorter.js +0 -210
  207. package/cloud-runtime/standalone/coverage/lcov.info +0 -2386
  208. /package/cloud-runtime/standalone/.next/static/{Y8QdDdLJI3yzNjkyPjuJ- → 1Q0q2lXllTpqCvmNQYtpD}/_buildManifest.js +0 -0
  209. /package/cloud-runtime/standalone/.next/static/{Y8QdDdLJI3yzNjkyPjuJ- → 1Q0q2lXllTpqCvmNQYtpD}/_clientMiddlewareManifest.json +0 -0
  210. /package/cloud-runtime/standalone/.next/static/{Y8QdDdLJI3yzNjkyPjuJ- → 1Q0q2lXllTpqCvmNQYtpD}/_ssgManifest.js +0 -0
@@ -128,7 +128,7 @@ module.exports=[918622,(e,t,s)=>{t.exports=e.x("next/dist/compiled/next-server/a
128
128
  `).run(i,s,t)})}async function _(e="global"){let t=e.trim()||"global";return m(e=>{let s=e.prepare(`SELECT scope_key, last_pulled_at, issue_count
129
129
  FROM linear_issue_sync_state
130
130
  WHERE scope_key = ?
131
- LIMIT 1`).get(t);return s?{scopeKey:s.scope_key,lastPulledAt:c(s.last_pulled_at),issueCount:s.issue_count}:null})}async function y(){return m(e=>{let t=e.prepare("SELECT COUNT(*) AS count FROM linear_issues").get();return t?.count??0})}async function E(e={}){let t=Number.isFinite(e.limit)?Math.min(Math.max(Number(e.limit),1),500):50,s=Number.isFinite(Number(e.cursor))?Math.max(Number(e.cursor),0):0;return m(i=>{let n=[],a=[],r=d(e.search??null);if(r){let e=`%${r.toLowerCase().replace(/[\\%_]/g,"\\$&")}%`;n.push("(LOWER(identifier) LIKE ? ESCAPE '\\' OR LOWER(title) LIKE ? ESCAPE '\\' OR LOWER(COALESCE(description, '')) LIKE ? ESCAPE '\\')"),a.push(e,e,e)}let l=d(e.status??null);l&&(n.push("LOWER(status) = ?"),a.push(l.toLowerCase()));let u=d(e.assigneeId??null);u&&(n.push("assignee_id = ?"),a.push(u)),e.assignedToMe&&n.push("is_assigned_to_me = 1");let o=d(e.teamId??null);o&&(n.push("team_id = ?"),a.push(o));let c=d(e.cycleId??null);c&&(n.push("cycle_id = ?"),a.push(c));let m=n.length>0?`WHERE ${n.join(" AND ")}`:"",f=i.prepare(`SELECT *
131
+ LIMIT 1`).get(t);return s?{scopeKey:s.scope_key,lastPulledAt:c(s.last_pulled_at),issueCount:s.issue_count}:null})}async function y(){return m(e=>{let t=e.prepare("SELECT COUNT(*) AS count FROM linear_issues").get();return t?.count??0})}async function E(e={}){let t=Number.isFinite(e.limit)?Math.min(Math.max(Number(e.limit),1),500):50,s=Number.isFinite(Number(e.cursor))?Math.max(Number(e.cursor),0):0;return m(i=>{let n=[],a=[],r=d(e.search??null);if(r){let e=`%${r.toLowerCase().replace(/[\\%_]/g,"\\$&")}%`;n.push("(LOWER(identifier) LIKE ? ESCAPE '\\' OR LOWER(title) LIKE ? ESCAPE '\\' OR LOWER(COALESCE(description, '')) LIKE ? ESCAPE '\\')"),a.push(e,e,e)}let l=d(e.status??null);l&&(n.push("LOWER(status) = ?"),a.push(l.toLowerCase()));let u=Array.from(new Set((e.assigneeIds??[]).map(e=>d(e)).filter(e=>!!e)));u.length>0&&(n.push(`assignee_id IN (${u.map(()=>"?").join(", ")})`),a.push(...u)),e.assignedToMe&&n.push("is_assigned_to_me = 1");let o=d(e.teamId??null);o&&(n.push("team_id = ?"),a.push(o));let c=d(e.cycleId??null);c&&(n.push("cycle_id = ?"),a.push(c));let m=n.length>0?`WHERE ${n.join(" AND ")}`:"",f=i.prepare(`SELECT *
132
132
  FROM linear_issues
133
133
  ${m}
134
134
  ORDER BY updated_at DESC, identifier ASC
@@ -142,6 +142,6 @@ ${a}
142
142
  ${n}
143
143
  ---
144
144
  `)}(s.default.join(e,"README.md"),{type:"linear-issue",issue_id:n.id,identifier:n.identifier,title:n.title,status:n.status,assignee_id:n.assigneeId??null,assignee_name:n.assignee??null,assignee_email:n.assigneeEmail??null,team_id:n.teamId??null,team_name:n.teamName??null,team_key:n.teamKey??null,cycle_id:n.cycleId??null,cycle_name:n.cycleName??null,cycle_number:n.cycleNumber??null,url:n.url??null,updated_at:n.updatedAt,pulled_at:t},[`# ${n.identifier}: ${n.title}`,"",`- Status: ${n.status}`,`- Assignee: ${n.assignee??"Unassigned"}`,n.teamName?`- Team: ${n.teamName}`:null,n.cycleName||null!=n.cycleNumber?`- Cycle: ${n.cycleName??`Cycle ${n.cycleNumber}`}`:null,`- Updated in Linear: ${n.updatedAt}`,`- Pulled locally: ${t}`,n.url?`- URL: ${n.url}`:null,"","## Description","",n.description?.trim()||"_No description provided._"].filter(e=>null!==e).join("\n")),r.push(`- [${n.identifier}](${encodeURIComponent(w(n.identifier,n.id))}/README.md) - ${n.title} (${n.status})`)}R(s.default.join(a,"_index.md"),`${r.join("\n")}
145
- `)}(c,u,e.projectSlug),{issueCount:c.length,complete:d,pulledAt:u}}async function v(e={}){let t=!!e.refresh,s=A(e.projectSlug);if(!t){let[e,t]=await Promise.all([y(),_(s)]);if(e>0&&t)return null}return(0,n.getLinearClient)()?L({projectSlug:e.projectSlug}):null}async function C(e={}){let[t,s]=await Promise.all([E(e),_(x)]);return{issues:t.issues.map(S),pageInfo:t.pageInfo,syncState:{lastPulledAt:s?.lastPulledAt??null}}}async function b(e){return(await h(e)).map(I)}e.s(["ensureLinearIssueCache",()=>v,"getLinearIssueContexts",()=>b,"listLinearIssueSummaries",()=>C],832674)},107194,e=>{"use strict";var t=e.i(747909),s=e.i(174017),i=e.i(996250),n=e.i(759756),a=e.i(561916),r=e.i(174677),l=e.i(869741),u=e.i(316795),o=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),m=e.i(570101),f=e.i(626937),g=e.i(10372),_=e.i(193695);e.i(52474);var y=e.i(600220),E=e.i(89171),h=e.i(832674),T=e.i(841897);function x(e){return e?.trim()||void 0}async function A(e){let t=e.nextUrl.searchParams,s=x(t.get("status")),i=x(t.get("search")),n=x(t.get("teamId")),a=x(t.get("assigneeId")),r=x(t.get("cursor")),l=x(t.get("cycleId")),u=x(t.get("projectSlug")),o="true"===t.get("assignedToMe"),d="true"===t.get("refresh"),c=Number(t.get("limit")??"50");try{let e=await (0,h.ensureLinearIssueCache)({refresh:d,projectSlug:u}),t=await (0,h.listLinearIssueSummaries)({status:s,search:i,assigneeId:a,assignedToMe:o,teamId:n,cycleId:l,cursor:r,limit:c});if(!t.syncState.lastPulledAt&&!e&&!(0,T.getLinearClient)())return E.NextResponse.json({error:"Not connected"},{status:401});return E.NextResponse.json({issues:t.issues,pageInfo:t.pageInfo,syncState:t.syncState,refreshedAt:e?.pulledAt??null})}catch(e){return E.NextResponse.json({error:e.message??"Failed to fetch issues"},{status:500})}}e.s(["GET",()=>A,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],159699);var N=e.i(159699);let R=new t.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/linear/issues/route",pathname:"/api/linear/issues",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/linear/issues/route.ts",nextConfigOutput:"standalone",userland:N}),{workAsyncStorage:S,workUnitAsyncStorage:I,serverHooks:w}=R;function L(){return(0,i.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:I})}async function v(e,t,i){R.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/linear/issues/route";E=E.replace(/\/index$/,"")||"/";let h=await R.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!h)return t.statusCode=400,t.end("Bad Request"),null==i.waitUntil||i.waitUntil.call(i,Promise.resolve()),null;let{buildId:T,params:x,nextConfig:A,parsedUrl:N,isDraftMode:S,prerenderManifest:I,routerServerContext:w,isOnDemandRevalidate:L,revalidateOnlyGenerated:v,resolvedPathname:C,clientReferenceManifest:b,serverActionsManifest:O}=h,$=(0,l.normalizeAppPath)(E),j=!!(I.dynamicRoutes[$]||I.routes[C]),k=async()=>((null==w?void 0:w.render404)?await w.render404(e,t,N,!1):t.end("This page could not be found"),null);if(j&&!S){let e=!!I.routes[C],t=I.dynamicRoutes[$];if(t&&!1===t.fallback&&!e){if(A.experimental.adapterPath)return await k();throw new _.NoFallbackError}}let q=null;!j||R.isDev||S||(q="/index"===(q=C)?"/":q);let D=!0===R.isDev||!j,P=j&&!D;O&&b&&(0,r.setManifestsSingleton)({page:E,clientReferenceManifest:b,serverActionsManifest:O});let M=e.method||"GET",U=(0,a.getTracer)(),F=U.getActiveScopeSpan(),X={params:x,prerenderManifest:I,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:A.cacheLife,waitUntil:i.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,s,i,n)=>R.onRequestError(e,t,i,n,w)},sharedContext:{buildId:T}},B=new u.NodeNextRequest(e),G=new u.NodeNextResponse(t),K=o.NextRequestAdapter.fromNodeNextRequest(B,(0,o.signalFromNodeResponse)(t));try{let r=async e=>R.handle(K,X).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let s=U.getRootSpanAttributes();if(!s)return;if(s.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${s.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=s.get("next.route");if(i){let t=`${M} ${i}`;e.setAttributes({"next.route":i,"http.route":i,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${E}`)}),l=!!(0,n.getRequestMeta)(e,"minimalMode"),u=async n=>{var a,u;let o=async({previousCacheEntry:s})=>{try{if(!l&&L&&v&&!s)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await r(n);e.fetchMetrics=X.renderOpts.fetchMetrics;let u=X.renderOpts.pendingWaitUntil;u&&i.waitUntil&&(i.waitUntil(u),u=void 0);let o=X.renderOpts.collectedTags;if(!j)return await (0,p.sendResponse)(B,G,a,X.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(a.headers);o&&(t[g.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let s=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,i=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:X.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:s,expire:i}}}}catch(t){throw(null==s?void 0:s.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:L})},!1,w),t}},d=await R.handleResponse({req:e,nextConfig:A,cacheKey:q,routeKind:s.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:I,isRoutePPREnabled:!1,isOnDemandRevalidate:L,revalidateOnlyGenerated:v,responseGenerator:o,waitUntil:i.waitUntil,isMinimalMode:l});if(!j)return null;if((null==d||null==(a=d.value)?void 0:a.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(u=d.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",L?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let _=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return l&&j||_.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||_.get("Cache-Control")||_.set("Cache-Control",(0,f.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(B,G,new Response(d.value.body,{headers:_,status:d.value.status||200})),null};F?await u(F):await U.withPropagatedContext(e.headers,()=>U.trace(d.BaseServerSpan.handleRequest,{spanName:`${M} ${E}`,kind:a.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},u))}catch(t){if(t instanceof _.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:$,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:L})},!1,w),j)throw t;return await (0,p.sendResponse)(B,G,new Response(null,{status:500})),null}}e.s(["handler",()=>v,"patchFetch",()=>L,"routeModule",()=>R,"serverHooks",()=>w,"workAsyncStorage",()=>S,"workUnitAsyncStorage",()=>I],107194)}];
145
+ `)}(c,u,e.projectSlug),{issueCount:c.length,complete:d,pulledAt:u}}async function v(e={}){let t=!!e.refresh,s=A(e.projectSlug);if(!t){let[e,t]=await Promise.all([y(),_(s)]);if(e>0&&t)return null}return(0,n.getLinearClient)()?L({projectSlug:e.projectSlug}):null}async function C(e={}){let[t,s]=await Promise.all([E(e),_(x)]);return{issues:t.issues.map(S),pageInfo:t.pageInfo,syncState:{lastPulledAt:s?.lastPulledAt??null}}}async function b(e){return(await h(e)).map(I)}e.s(["ensureLinearIssueCache",()=>v,"getLinearIssueContexts",()=>b,"listLinearIssueSummaries",()=>C],832674)},107194,e=>{"use strict";var t=e.i(747909),s=e.i(174017),i=e.i(996250),n=e.i(759756),a=e.i(561916),r=e.i(174677),l=e.i(869741),u=e.i(316795),o=e.i(487718),d=e.i(995169),c=e.i(47587),p=e.i(666012),m=e.i(570101),f=e.i(626937),g=e.i(10372),_=e.i(193695);e.i(52474);var y=e.i(600220),E=e.i(89171),h=e.i(832674),T=e.i(841897);function x(e){return e?.trim()||void 0}async function A(e){let t=e.nextUrl.searchParams,s=x(t.get("status")),i=x(t.get("search")),n=x(t.get("teamId")),a=Array.from(new Set(t.getAll("assigneeId").map(e=>e.trim()).filter(Boolean))),r=x(t.get("cursor")),l=x(t.get("cycleId")),u=x(t.get("projectSlug")),o="true"===t.get("assignedToMe"),d="true"===t.get("refresh"),c=Number(t.get("limit")??"50");try{let e=await (0,h.ensureLinearIssueCache)({refresh:d,projectSlug:u}),t=await (0,h.listLinearIssueSummaries)({status:s,search:i,assigneeIds:a,assignedToMe:o,teamId:n,cycleId:l,cursor:r,limit:c});if(!t.syncState.lastPulledAt&&!e&&!(0,T.getLinearClient)())return E.NextResponse.json({error:"Not connected"},{status:401});return E.NextResponse.json({issues:t.issues,pageInfo:t.pageInfo,syncState:t.syncState,refreshedAt:e?.pulledAt??null})}catch(e){return E.NextResponse.json({error:e.message??"Failed to fetch issues"},{status:500})}}e.s(["GET",()=>A,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],159699);var N=e.i(159699);let R=new t.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/linear/issues/route",pathname:"/api/linear/issues",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/linear/issues/route.ts",nextConfigOutput:"standalone",userland:N}),{workAsyncStorage:S,workUnitAsyncStorage:I,serverHooks:w}=R;function L(){return(0,i.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:I})}async function v(e,t,i){R.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let E="/api/linear/issues/route";E=E.replace(/\/index$/,"")||"/";let h=await R.prepare(e,t,{srcPage:E,multiZoneDraftMode:!1});if(!h)return t.statusCode=400,t.end("Bad Request"),null==i.waitUntil||i.waitUntil.call(i,Promise.resolve()),null;let{buildId:T,params:x,nextConfig:A,parsedUrl:N,isDraftMode:S,prerenderManifest:I,routerServerContext:w,isOnDemandRevalidate:L,revalidateOnlyGenerated:v,resolvedPathname:C,clientReferenceManifest:b,serverActionsManifest:O}=h,$=(0,l.normalizeAppPath)(E),j=!!(I.dynamicRoutes[$]||I.routes[C]),k=async()=>((null==w?void 0:w.render404)?await w.render404(e,t,N,!1):t.end("This page could not be found"),null);if(j&&!S){let e=!!I.routes[C],t=I.dynamicRoutes[$];if(t&&!1===t.fallback&&!e){if(A.experimental.adapterPath)return await k();throw new _.NoFallbackError}}let q=null;!j||R.isDev||S||(q="/index"===(q=C)?"/":q);let D=!0===R.isDev||!j,P=j&&!D;O&&b&&(0,r.setManifestsSingleton)({page:E,clientReferenceManifest:b,serverActionsManifest:O});let M=e.method||"GET",U=(0,a.getTracer)(),F=U.getActiveScopeSpan(),X={params:x,prerenderManifest:I,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:A.cacheLife,waitUntil:i.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,s,i,n)=>R.onRequestError(e,t,i,n,w)},sharedContext:{buildId:T}},B=new u.NodeNextRequest(e),G=new u.NodeNextResponse(t),K=o.NextRequestAdapter.fromNodeNextRequest(B,(0,o.signalFromNodeResponse)(t));try{let r=async e=>R.handle(K,X).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let s=U.getRootSpanAttributes();if(!s)return;if(s.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${s.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=s.get("next.route");if(i){let t=`${M} ${i}`;e.setAttributes({"next.route":i,"http.route":i,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${E}`)}),l=!!(0,n.getRequestMeta)(e,"minimalMode"),u=async n=>{var a,u;let o=async({previousCacheEntry:s})=>{try{if(!l&&L&&v&&!s)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await r(n);e.fetchMetrics=X.renderOpts.fetchMetrics;let u=X.renderOpts.pendingWaitUntil;u&&i.waitUntil&&(i.waitUntil(u),u=void 0);let o=X.renderOpts.collectedTags;if(!j)return await (0,p.sendResponse)(B,G,a,X.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(a.headers);o&&(t[g.NEXT_CACHE_TAGS_HEADER]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let s=void 0!==X.renderOpts.collectedRevalidate&&!(X.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&X.renderOpts.collectedRevalidate,i=void 0===X.renderOpts.collectedExpire||X.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:X.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:s,expire:i}}}}catch(t){throw(null==s?void 0:s.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:L})},!1,w),t}},d=await R.handleResponse({req:e,nextConfig:A,cacheKey:q,routeKind:s.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:I,isRoutePPREnabled:!1,isOnDemandRevalidate:L,revalidateOnlyGenerated:v,responseGenerator:o,waitUntil:i.waitUntil,isMinimalMode:l});if(!j)return null;if((null==d||null==(a=d.value)?void 0:a.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(u=d.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});l||t.setHeader("x-nextjs-cache",L?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let _=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return l&&j||_.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||_.get("Cache-Control")||_.set("Cache-Control",(0,f.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(B,G,new Response(d.value.body,{headers:_,status:d.value.status||200})),null};F?await u(F):await U.withPropagatedContext(e.headers,()=>U.trace(d.BaseServerSpan.handleRequest,{spanName:`${M} ${E}`,kind:a.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},u))}catch(t){if(t instanceof _.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:$,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:P,isOnDemandRevalidate:L})},!1,w),j)throw t;return await (0,p.sendResponse)(B,G,new Response(null,{status:500})),null}}e.s(["handler",()=>v,"patchFetch",()=>L,"routeModule",()=>R,"serverHooks",()=>w,"workAsyncStorage",()=>S,"workUnitAsyncStorage",()=>I],107194)}];
146
146
 
147
147
  //# sourceMappingURL=%5Broot-of-the-server%5D__3b83b657._.js.map
@@ -128,7 +128,7 @@ module.exports=[918622,(e,t,i)=>{t.exports=e.x("next/dist/compiled/next-server/a
128
128
  `).run(s,i,t)})}async function g(e="global"){let t=e.trim()||"global";return m(e=>{let i=e.prepare(`SELECT scope_key, last_pulled_at, issue_count
129
129
  FROM linear_issue_sync_state
130
130
  WHERE scope_key = ?
131
- LIMIT 1`).get(t);return i?{scopeKey:i.scope_key,lastPulledAt:c(i.last_pulled_at),issueCount:i.issue_count}:null})}async function y(){return m(e=>{let t=e.prepare("SELECT COUNT(*) AS count FROM linear_issues").get();return t?.count??0})}async function E(e={}){let t=Number.isFinite(e.limit)?Math.min(Math.max(Number(e.limit),1),500):50,i=Number.isFinite(Number(e.cursor))?Math.max(Number(e.cursor),0):0;return m(s=>{let n=[],a=[],r=d(e.search??null);if(r){let e=`%${r.toLowerCase().replace(/[\\%_]/g,"\\$&")}%`;n.push("(LOWER(identifier) LIKE ? ESCAPE '\\' OR LOWER(title) LIKE ? ESCAPE '\\' OR LOWER(COALESCE(description, '')) LIKE ? ESCAPE '\\')"),a.push(e,e,e)}let l=d(e.status??null);l&&(n.push("LOWER(status) = ?"),a.push(l.toLowerCase()));let u=d(e.assigneeId??null);u&&(n.push("assignee_id = ?"),a.push(u)),e.assignedToMe&&n.push("is_assigned_to_me = 1");let o=d(e.teamId??null);o&&(n.push("team_id = ?"),a.push(o));let c=d(e.cycleId??null);c&&(n.push("cycle_id = ?"),a.push(c));let m=n.length>0?`WHERE ${n.join(" AND ")}`:"",f=s.prepare(`SELECT *
131
+ LIMIT 1`).get(t);return i?{scopeKey:i.scope_key,lastPulledAt:c(i.last_pulled_at),issueCount:i.issue_count}:null})}async function y(){return m(e=>{let t=e.prepare("SELECT COUNT(*) AS count FROM linear_issues").get();return t?.count??0})}async function E(e={}){let t=Number.isFinite(e.limit)?Math.min(Math.max(Number(e.limit),1),500):50,i=Number.isFinite(Number(e.cursor))?Math.max(Number(e.cursor),0):0;return m(s=>{let n=[],a=[],r=d(e.search??null);if(r){let e=`%${r.toLowerCase().replace(/[\\%_]/g,"\\$&")}%`;n.push("(LOWER(identifier) LIKE ? ESCAPE '\\' OR LOWER(title) LIKE ? ESCAPE '\\' OR LOWER(COALESCE(description, '')) LIKE ? ESCAPE '\\')"),a.push(e,e,e)}let l=d(e.status??null);l&&(n.push("LOWER(status) = ?"),a.push(l.toLowerCase()));let u=Array.from(new Set((e.assigneeIds??[]).map(e=>d(e)).filter(e=>!!e)));u.length>0&&(n.push(`assignee_id IN (${u.map(()=>"?").join(", ")})`),a.push(...u)),e.assignedToMe&&n.push("is_assigned_to_me = 1");let o=d(e.teamId??null);o&&(n.push("team_id = ?"),a.push(o));let c=d(e.cycleId??null);c&&(n.push("cycle_id = ?"),a.push(c));let m=n.length>0?`WHERE ${n.join(" AND ")}`:"",f=s.prepare(`SELECT *
132
132
  FROM linear_issues
133
133
  ${m}
134
134
  ORDER BY updated_at DESC, identifier ASC
@@ -33,7 +33,7 @@ RULES
33
33
  - If a PR already exists, focus on CI failures, reviewer feedback, merge status, or ticket follow-up instead of starting over.
34
34
  - 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.
35
35
 
36
- `;return{prompt:`Work on this Linear ticket: ${f} - ${g}`,promptPrefix:n}}var w=a.i(860614),x=a.i(596221);let y=[{id:"claude",label:"Claude Code",icon:"🟣"},{id:"codex",label:"Codex",icon:"⚫"},{id:"gemini",label:"Gemini CLI",icon:"🔵"}];function z({connected:a,user:d,clis:e,mcpConfigured:f,onConnect:h,onConnectWithKey:i,onDisconnect:j,onConfigureMcp:k,onContinue:l}){let[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(null),[q,r]=(0,c.useState)(!1),[s,t]=(0,c.useState)(null),[u,v]=(0,c.useState)(null),z=async()=>{if(!m.trim())return;r(!0),p(null);let a=await i(m.trim());r(!1),a.ok||p(a.error||"Failed to connect")},A=async a=>{t(a),v(null);let b=await k(a);t(null),b.ok||v(b.error||"Failed to configure")},B=y.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)(g.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:j,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:h,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:m,onChange:a=>{n(a.target.value),p(null)},onKeyDown:a=>{"Enter"===a.key&&z()},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:z,disabled:!m.trim()||q,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:q?"...":"Save"})]}),o&&(0,b.jsx)("p",{className:"mt-1 text-[10px] text-red-400",children:o}),(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)(w.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:[y.map(a=>{let c=e[a.id],d=f[a.id],h=s===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)(g.Check,{size:10}),"Configured"]}):(0,b.jsx)("button",{type:"button",onClick:()=>A(a.id),disabled:h,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:h?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(x.Loader2,{size:10,className:"animate-spin"}),"Configuring..."]}):"Configure"}):(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:"Not installed"})]},a.id)}),u&&(0,b.jsx)("p",{className:"mt-1 text-[10px] text-red-400",children:u})]}),(0,b.jsx)("button",{type:"button",onClick:l,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:B?"Continue":"Skip for now"})]})]})})}let A=(0,f.default)(async()=>{},{loadableGenerated:{modules:[895214]},ssr:!1});function B({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 C(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 D(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}}let E={"In Progress":"In Prog","In Review":"Review",Backlog:"Backlog",Todo:"Todo",Done:"Done",Cancelled:"Cancl."},F={queued:"bg-amber-500/10 border-amber-500/20 text-amber-400",running:"bg-yellow-500/10 border-yellow-500/20 text-yellow-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"},G={queued:"bg-amber-400",running:"bg-yellow-400",success:"bg-emerald-400",failed:"bg-red-400",cancelled:"bg-zinc-400"};function H({label:a,value:c,options:d,activeClasses:e,onChange:f}){let g=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 ${g?e:"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,value:c,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)(h.ChevronDown,{size:12,className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-current"})]})}function I({issue:a,participants:d,projectId:e,projectSlug:f,createRun:g,updateRun:h,onRunCreated:i}){let j=d[0],k=(0,c.useRef)(crypto.randomUUID()),{messages:l,setMessages:m,sendMessage:n,chatRuns:t}=(0,p.useGroupChat)(k.current),{processes:u,streaming:w}=(0,q.useProcessPolling)({workspaceId:k.current},{messages:l,setMessages:m}),x=new Set(["queued","running","awaiting_user","blocked"]),y=t.some(a=>x.has(a.status))||u.some(a=>"spawning"===a.state||"running"===a.state)?t.some(a=>"queued"===a.status)?"queued":"working":"ready",z=(0,c.useMemo)(()=>new Map(d.map(a=>[a.id,a])),[d]),B=(0,c.useRef)(!1),D=(0,c.useCallback)(async(b,c,k,l,m,n,o)=>{if(B.current)return;B.current=!0;let p=(m?d.find(a=>a.id===m):null)??j;if(p)try{let{promptPrefix:c}=v({issue:{identifier:a.identifier,title:a.title,status:a.status,assignee:a.assignee},project:f?{slug:f}:null}),d=c+(n?`
37
- ${n}`:""),j=await g({projectId:e??null,projectSlug:f??null,issueId:a.id,issueIdentifier:a.identifier,issueTitle:a.title,issueStatus:a.status,issueAssignee:a.assignee??null,agentId:p.id,agentName:p.name}),k=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:b,promptPrefix:d,threadId:j.threadId,activeParticipantIds:[p.id],projectSlug:f??void 0,routing:o})}),l=await k.json().catch(()=>({}));if(!k.ok||!l.chatRunId||!l.userMessageId)throw Error(l.error||"Failed to start chat session");await h(j.id,{chatRunId:l.chatRunId,rootMessageId:l.userMessageId}),i(j.id)}catch(a){console.error("Failed to create chat session:",a),B.current=!1,a instanceof Error&&window.alert(a.message)}},[a,d,j,e,f,g,h,i]);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.jsx)("span",{className:"shrink-0 rounded-md border border-[var(--card-border)] px-2 py-0.5 text-xs text-[var(--muted-foreground)]",children:a.status})]}),(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.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 text-[var(--muted-foreground)]",children:[(0,b.jsx)("span",{className:"text-sm",children:"Chat about this ticket"}),(0,b.jsx)("span",{className:"text-xs",children:"Your message will start a new session"})]}):(0,b.jsxs)("div",{className:"mx-auto max-w-4xl space-y-8",children:[l.map(a=>{let c=a.participantId?z.get(a.participantId):null,d=(0,s.stripMarkers)(a.content);return d.trim()?(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)(o.User,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]"})}):(0,b.jsx)("img",{src:C(a.participantId??"",c?.color),alt:c?.name??"Agent",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.jsx)("span",{className:"text-sm font-semibold text-[var(--foreground)]",children:"user"===a.role?"You":c?.name??"Agent"}),(0,b.jsx)("div",{className:"text-sm text-[var(--foreground)]",children:(0,b.jsx)(r.Markdown,{content:d,isUser:"user"===a.role})})]})]},a.id):null}),Object.entries(w).map(([a])=>{let c=z.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:C(a,c?.color),alt:c?.name??"Agent",className:"h-7 w-7 shrink-0 rounded-full object-cover"}),c?.name??"Agent"," is thinking..."]},`stream-${a}`)})]})}),(0,b.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:(0,b.jsx)(A,{onSend:D,onStop:()=>{},participants:d,projectSlug:f??void 0,loading:"ready"!==y,commands:[],activityStatus:y,placeholder:`Ask about ${a.identifier}...`,initialPinnedParticipantId:j?.id})})]})}function J({run:a,participants:d}){let{messages:e,setMessages:f,sendMessage:g,loadHistory:h,stop:j}=(0,p.useGroupChat)(a.threadId),{processes:k,streaming:l,chatRuns:m}=(0,q.useProcessPolling)(a.rootMessageId?{workspaceId:a.threadId,threadId:a.rootMessageId}:{workspaceId:a.threadId},{messages:e,setMessages:f});(0,c.useEffect)(()=>{h()},[h,a.threadId]);let n=(0,c.useMemo)(()=>new Map(d.map(a=>[a.id,a])),[d]),u=new Set(["queued","running","awaiting_user","blocked"]),v=m.some(a=>u.has(a.status))||k.some(a=>"spawning"===a.state||"running"===a.state)?m.some(a=>"queued"===a.status)?"queued":"working":"ready",w=(0,c.useCallback)((b,c,e,f,h,i,j)=>{a.rootMessageId&&g(b,c,void 0,a.rootMessageId,e,void 0,(0,t.orderParticipantIds)(d.map(a=>a.id),h),a.projectSlug??void 0,i,j)},[d,a.projectSlug,a.rootMessageId,g]);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.issueIdentifier}),(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.issueTitle??""})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-4",children:[(0,b.jsxs)("div",{className:`flex items-center gap-2 rounded-md border px-2.5 py-1 ${F[a.status]}`,children:[(0,b.jsx)("div",{className:`h-1.5 w-1.5 rounded-full ${G[a.status]}`}),(0,b.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wider",children:D(a.status)})]}),null!=a.durationMs&&(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)(i.Clock,{size:14}),(0,b.jsxs)("span",{children:[(a.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:C(a.agentId,n.get(a.agentId)?.color),alt:a.agentName,className:"h-5 w-5 rounded-full object-cover"}),(0,b.jsx)("span",{className:"pr-1 text-xs font-medium",children:a.agentName})]})]})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-6 pb-64",children:0===e.length?(0,b.jsx)("div",{className:"py-8 text-center text-xs text-[var(--muted-foreground)]",children:"queued"===a.status||"running"===a.status?"Starting run...":"No thread messages yet."}):(0,b.jsxs)("div",{className:"mx-auto max-w-4xl space-y-8",children:[e.map(c=>{let d=c.participantId?n.get(c.participantId):null,e=(0,s.stripMarkers)(c.content);if(!e.trim())return null;let f=c.participantId??a.agentId;return(0,b.jsxs)("div",{className:"flex gap-3",children:["user"===c.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)(o.User,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]"})}):(0,b.jsx)("img",{src:C(f,d?.color),alt:d?.name??a.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"===c.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:d?.color??"var(--foreground)"},children:d?.name??a.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(c.timestamp).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})]}),"user"===c.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)(r.Markdown,{content:e,isUser:!0})}):(0,b.jsx)("div",{className:"text-sm text-[var(--foreground)]",children:(0,b.jsx)(r.Markdown,{content:e,isUser:!1})})]})]},c.id)}),Object.entries(l).filter(([,b])=>!a.rootMessageId||b.rootMessageId===a.rootMessageId).map(([c])=>{let d=n.get(c);return(0,b.jsxs)("div",{className:"flex items-center gap-3 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)("img",{src:C(c,d?.color),alt:d?.name??a.agentName,className:"h-7 w-7 shrink-0 rounded-full object-cover"}),d?.name??a.agentName," is thinking..."]},`stream-${c}`)})]})}),(0,b.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:a.rootMessageId?(0,b.jsx)(A,{onSend:w,onStop:j,participants:d,projectSlug:a.projectSlug??void 0,loading:"ready"!==v,commands:[],activityStatus:v,placeholder:"Steer this run...",initialPinnedParticipantId:a.agentId}):(0,b.jsx)("div",{className:"px-2 py-1 text-xs text-[var(--muted-foreground)]",children:"Waiting for the run to start..."})})]})}function K({issue:a,selected:d,onSelect:e,onExecute:f}){let[h,i]=(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),i(!0),l.current&&window.clearTimeout(l.current),l.current=window.setTimeout(()=>{i(!1)},1500)}catch(a){console.error("Failed to copy Linear issue URL:",a),i(!1)}},[a.url]),n=E[a.status]??a.status.slice(0,6);return(0,b.jsxs)("div",{className:`group relative flex 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:e,role:"button",tabIndex:0,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),e())},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:n}),(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:h?"Copied ticket URL":"Copy ticket URL","aria-label":h?"Copied ticket URL":"Copy ticket URL",disabled:!a.url,children:h?(0,b.jsx)(g.Check,{size:10,className:"text-emerald-400"}):(0,b.jsx)(j,{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"}`,onClick:b=>{b.stopPropagation(),f(a,b)},title:"Execute with agent",children:(0,b.jsx)(k.Play,{size:10,className:"ml-0.5"})})]})}function L({projectId:a,projectSlug:d,initialShowSettings:e}){let{connected:f,loading:g,user:h,clis:i,mcpConfigured:j,connect:o,connectWithKey:p,disconnect:q,configureMcp:r}=function(){let[a,b]=(0,c.useState)(!1),[d,e]=(0,c.useState)(!0),[f,g]=(0,c.useState)(null),[h,i]=(0,c.useState)({claude:!1,codex:!1,gemini:!1}),[j,k]=(0,c.useState)({}),l=(0,c.useRef)(null),m=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/linear/mcp-setup"),b=await a.json();k(b.configured??{})}catch{}},[]),n=(0,c.useCallback)(async()=>{try{let[a,c]=await Promise.all([fetch("/api/linear/status"),fetch("/api/linear/mcp-setup")]),d=await a.json(),e=await c.json();return b(d.connected),g(d.user??null),i(d.clis??{claude:!1,codex:!1,gemini:!1}),k(e.configured??{}),d.connected}catch{return b(!1),!1}finally{e(!1)}},[]);(0,c.useEffect)(()=>(n(),()=>{l.current&&clearInterval(l.current)}),[n]);let o=(0,c.useCallback)(()=>{window.open("/api/linear/auth","_blank","noopener"),l.current&&clearInterval(l.current),l.current=setInterval(async()=>{await n()&&l.current&&(clearInterval(l.current),l.current=null)},2e3)},[n]),p=(0,c.useCallback)(async a=>{try{let b=await fetch("/api/linear/token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({accessToken:a})});if(!b.ok){let a=await b.json().catch(()=>({}));return{ok:!1,error:a.error||"Failed to save token"}}return await n(),{ok:!0}}catch{return{ok:!1,error:"Failed to connect"}}},[n]);return{connected:a,loading:d,user:f,clis:h,mcpConfigured:j,connect:o,connectWithKey:p,disconnect:(0,c.useCallback)(async()=>{await fetch("/api/linear/status",{method:"DELETE"}),b(!1),g(null)},[]),configureMcp:(0,c.useCallback)(async a=>{try{let b=await fetch("/api/linear/mcp-setup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cli:a})});if(!b.ok){let a=await b.json().catch(()=>({}));return{ok:!1,error:a.error||"Failed to configure MCP"}}return await m(),{ok:!0}}catch{return{ok:!1,error:"Failed to configure MCP"}}},[m]),refresh:n}}(),[s,t]=(0,c.useState)(!1),[u,w]=(0,c.useState)(e??!1),[x,y]=(0,c.useState)(576),[A,E]=(0,c.useState)(224),[F,G]=(0,c.useState)(""),[L,M]=(0,c.useState)(""),[N,O]=(0,c.useState)([]),[P,Q]=(0,c.useState)([]),[R,S]=(0,c.useState)(""),[T,U]=(0,c.useState)([]),[V,W]=(0,c.useState)(""),[X,Y]=(0,c.useState)(""),[Z,$]=(0,c.useState)(null),[_,aa]=(0,c.useState)(null),[ab,ac]=(0,c.useState)([]),[ad,ae]=(0,c.useState)(null),[af,ag]=(0,c.useState)(null),ah=(0,c.useRef)(null),ai=(0,c.useCallback)(a=>{G(a),ah.current&&clearTimeout(ah.current),ah.current=setTimeout(()=>M(a),300)},[]);(0,c.useEffect)(()=>()=>{ah.current&&clearTimeout(ah.current)},[]),(0,c.useEffect)(()=>{if(!f)return;let a=!1;return fetch("/api/linear/options").then(a=>a.json()).then(b=>{a||(O(Array.isArray(b.assignees)?b.assignees:[]),Q(Array.isArray(b.teams)?b.teams:[]),U(Array.isArray(b.cycles)?b.cycles:[]))}).catch(()=>{a||(O([]),Q([]),U([]))}),()=>{a=!0}},[f]),(0,c.useEffect)(()=>{R&&!N.some(a=>a.id===R)&&S("")},[N,R]),(0,c.useEffect)(()=>{P.length<=1&&X?Y(""):X&&!P.some(a=>a.id===X)&&Y("")},[X,P]),(0,c.useEffect)(()=>{V&&!T.some(a=>a.id===V)&&W("")},[T,V]);let{issues:aj,loading:ak,hasMore:al,loadMore:am,refresh:an}=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){h(!0);try{let b=new URLSearchParams;a.teamId&&b.set("teamId",a.teamId),a.status&&b.set("status",a.status),a.search&&b.set("search",a.search),a.assigneeId?b.set("assigneeId",a.assigneeId):a.assignedToMe&&b.set("assignedToMe","true"),a.cycleId&&b.set("cycleId",a.cycleId),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.status,a.search,a.assigneeId,a.assignedToMe,a.cycleId,b,d.projectSlug,d.limit]);return(0,c.useEffect)(()=>{j(null),o(!1,!n.current)},[o]),{issues:e,loading:g,hasMore:k,loadMore:(0,c.useCallback)(()=>o(!0),[o]),refresh:(0,c.useCallback)(()=>(j(null),o(!1,!0)),[o])}}((0,c.useMemo)(()=>({search:L||void 0,assigneeId:R||void 0,teamId:X||void 0,cycleId:V||void 0}),[L,R,V,X]),f,{projectSlug:d}),{runs:ao,loading:ap,createRun:aq,updateRun:ar}=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()).run;return e(a=>[c,...a.filter(a=>a.id!==c.id)]),c},[]),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},[])}}(Z?.id,a??null),as=ao.find(a=>a.id===_)??null,at=(0,c.useMemo)(()=>[{value:"",label:"Assignee"},...N.map(a=>({value:a.id,label:a.name}))],[N]),au=(0,c.useMemo)(()=>[{value:"",label:"Workspace"},...P.map(a=>({value:a.id,label:a.name}))],[P]),av=(0,c.useMemo)(()=>[{value:"",label:"Cycle"},...T.map(a=>({value:a.id,label:a.name||`Cycle ${a.number}`}))],[T]),aw=av.length>1,ax=au.length>2;(0,c.useEffect)(()=>{0===aj.length?$(null):$(a=>a&&aj.some(b=>b.id===a.id)?aj.find(b=>b.id===a.id)??a:aj[0]??null)},[aj]),(0,c.useEffect)(()=>{0===ao.length?aa(null):_&&ao.some(a=>a.id===_)||aa(ao[0]?.id??null)},[ao,_]),(0,c.useEffect)(()=>{let b=!1;return async function(){try{let c=await fetch("/api/participants"),d=c.ok?await c.json():[];if(!a){b||ac(d);return}let e=await fetch(`/api/projects/${encodeURIComponent(a)}/agents`);if(!e.ok){b||ac(d);return}let f=await e.json(),g=Array.isArray(f.agents)?f.agents.map(a=>a.agent_id).filter(a=>"string"==typeof a&&a.trim().length>0):[],h=new Map(g.map((a,b)=>[a,b])),i=d.filter(a=>h.has(a.id)).sort((a,b)=>(h.get(a.id)??Number.MAX_SAFE_INTEGER)-(h.get(b.id)??Number.MAX_SAFE_INTEGER));b||ac(i)}catch{b||ac([])}}(),()=>{b=!0}},[a]);let ay=(0,c.useCallback)((a,b)=>{if(0===ab.length)return void window.alert("Add at least one agent to this project before running a Linear ticket.");if(1===ab.length)return void az(a,ab[0]);let c=b?.currentTarget?.getBoundingClientRect();ae(a),ag(c?{top:c.bottom+4,left:c.left}:{top:200,left:200})},[ab]),az=(0,c.useCallback)(async(b,c)=>{ae(null),ag(null);let e=null;try{$(b),e=await aq({projectId:a??null,projectSlug:d??null,issueId:b.id,issueIdentifier:b.identifier,issueTitle:b.title,issueStatus:b.status,issueAssignee:b.assignee,agentId:c.id,agentName:c.name}),aa(e.id);let{prompt:f,promptPrefix:g}=v({issue:{identifier:b.identifier,title:b.title,status:b.status,assignee:b.assignee},project:d?{slug:d}:null}),h=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:f,promptPrefix:g,threadId:e.threadId,activeParticipantIds:[c.id],projectSlug:d??void 0})}),i=await h.json().catch(()=>({}));if(!h.ok||!i.chatRunId||!i.userMessageId)throw Error(i.error||"Failed to start Linear run");await ar(e.id,{chatRunId:i.chatRunId,rootMessageId:i.userMessageId})}catch(a){console.error("Failed to execute Linear ticket:",a),e&&await ar(e.id,{status:"failed",error:a instanceof Error?a.message:String(a)}),a instanceof Error&&window.alert(a.message)}},[aq,a,d,ar]),aA=(0,c.useRef)(null);if((0,c.useEffect)(()=>{let a=aA.current;if(!a||!al)return;let b=new IntersectionObserver(a=>{a[0]?.isIntersecting&&am()},{threshold:.1});return b.observe(a),()=>b.disconnect()},[al,am]),g)return(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Loading..."});let aB=f&&!s&&!Object.values(j).some(Boolean);return!f||aB?(0,b.jsx)(z,{connected:f,user:h,clis:i,mcpConfigured:j,onConnect:o,onConnectWithKey:p,onDisconnect:q,onConfigureMcp:r,onContinue:()=>t(!0)}):(0,b.jsxs)("div",{className:"relative flex h-full overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex shrink-0 flex-col border-r border-[var(--card-border)]",style:{width:x},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)(m.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:F,onChange:a=>ai(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 an(),title:"Refresh tickets","aria-label":"Refresh tickets",disabled:ak,children:(0,b.jsx)(l.RefreshCw,{size:16,className:ak?"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:()=>w(!0),title:"Linear settings",children:(0,b.jsx)(n.Settings,{size:16})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 px-3 pb-2",children:[(0,b.jsx)(H,{label:"Assignee",value:R,options:at,activeClasses:"border-blue-500/30 bg-blue-500/10 text-blue-400",onChange:S}),ax?(0,b.jsx)(H,{label:"Workspace",value:X,options:au,activeClasses:"border-emerald-500/30 bg-emerald-500/10 text-emerald-400",onChange:Y}):null,aw?(0,b.jsx)(H,{label:"Cycle",value:V,options:av,activeClasses:"border-purple-500/30 bg-purple-500/10 text-purple-400",onChange:W}):null]})]}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto",children:ak&&0===aj.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading tickets..."}):0===aj.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:[aj.map(a=>(0,b.jsx)(K,{issue:a,selected:Z?.id===a.id,onSelect:()=>$(a),onExecute:ay},a.id)),al?(0,b.jsx)("div",{ref:aA,className:"py-2 text-center text-xs text-[var(--muted-foreground)]",children:ak?"Loading...":"Load more"}):null]})})]}),(0,b.jsx)(B,{onResize:a=>y(b=>Math.max(180,Math.min(600,b+a)))}),(0,b.jsxs)("div",{className:"flex shrink-0 flex-col border-r border-[var(--card-border)]",style:{width:A},children:[(0,b.jsxs)("div",{className:"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:"Runs"}),Z&&(0,b.jsxs)("button",{type:"button",className:"flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:a=>ay(Z,a),title:"Run agent on selected ticket",children:[(0,b.jsx)(k.Play,{size:10}),(0,b.jsx)("span",{children:"Run now"})]})]}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto",children:Z?ap&&0===ao.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading runs..."}):0===ao.length?(0,b.jsxs)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:["No runs yet. Click ",(0,b.jsx)(k.Play,{size:10,className:"inline"})," to execute."]}):ao.map(a=>(0,b.jsxs)("button",{type:"button",className:`w-full px-3 py-2 text-left text-xs transition-colors ${as?.id===a.id?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]"}`,onClick:()=>aa(a.id),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-1",children:[(0,b.jsx)("span",{className:`font-medium ${{queued:"text-amber-500",running:"text-yellow-500",success:"text-green-500",failed:"text-red-500",cancelled:"text-[var(--muted-foreground)]"}[a.status]}`,children:D(a.status)}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:new Date(a.startedAt).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})]}),(0,b.jsx)("div",{className:"mt-0.5 truncate text-[10px] 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)):(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Select a ticket to see runs."})})]}),(0,b.jsx)(B,{onResize:a=>E(b=>Math.max(140,Math.min(500,b+a)))}),(0,b.jsx)("div",{className:"flex min-w-0 flex-1 flex-col overflow-hidden",children:as?(0,b.jsx)(J,{run:as,participants:ab}):Z&&ab.length>0?(0,b.jsx)(I,{issue:Z,participants:ab,projectId:a,projectSlug:d,createRun:aq,updateRun:ar,onRunCreated:a=>aa(a)},Z.id):(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:Z?"Add at least one agent to this project to chat.":"Select a ticket from the list."})}),u&&(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 w-full max-w-lg rounded-lg border border-[var(--card-border)] bg-[var(--background)] shadow-xl",children:[(0,b.jsx)("button",{type:"button",className:"absolute right-3 top-3 rounded p-1 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:()=>w(!1),children:"×"}),(0,b.jsx)("div",{className:"p-6",children:(0,b.jsx)(z,{connected:f,user:h,clis:i,mcpConfigured:j,onConnect:o,onConnectWithKey:p,onDisconnect:q,onConfigureMcp:r,onContinue:()=>w(!1)})})]})}),ad&&af&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"fixed inset-0 z-40",onClick:()=>{ae(null),ag(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:af.top,left:af.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"}),ab.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 az(ad,a),children:[(0,b.jsx)("img",{src:C(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.title?(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:a.title}):null]})]},a.id))]})]})]})}function M({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)(L,{projectId:i?.id,projectSlug:i?.slug??f,initialShowSettings:j})}a.s(["default",()=>M],323860)}];
36
+ `;return{prompt:`Work on this Linear ticket: ${f} - ${g}`,promptPrefix:n}}var w=a.i(860614),x=a.i(596221);let y=[{id:"claude",label:"Claude Code",icon:"🟣"},{id:"codex",label:"Codex",icon:"⚫"},{id:"gemini",label:"Gemini CLI",icon:"🔵"}];function z({connected:a,user:d,clis:e,mcpConfigured:f,onConnect:h,onConnectWithKey:i,onDisconnect:j,onConfigureMcp:k,onContinue:l}){let[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(null),[q,r]=(0,c.useState)(!1),[s,t]=(0,c.useState)(null),[u,v]=(0,c.useState)(null),z=async()=>{if(!m.trim())return;r(!0),p(null);let a=await i(m.trim());r(!1),a.ok||p(a.error||"Failed to connect")},A=async a=>{t(a),v(null);let b=await k(a);t(null),b.ok||v(b.error||"Failed to configure")},B=y.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)(g.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:j,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:h,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:m,onChange:a=>{n(a.target.value),p(null)},onKeyDown:a=>{"Enter"===a.key&&z()},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:z,disabled:!m.trim()||q,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:q?"...":"Save"})]}),o&&(0,b.jsx)("p",{className:"mt-1 text-[10px] text-red-400",children:o}),(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)(w.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:[y.map(a=>{let c=e[a.id],d=f[a.id],h=s===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)(g.Check,{size:10}),"Configured"]}):(0,b.jsx)("button",{type:"button",onClick:()=>A(a.id),disabled:h,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:h?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(x.Loader2,{size:10,className:"animate-spin"}),"Configuring..."]}):"Configure"}):(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:"Not installed"})]},a.id)}),u&&(0,b.jsx)("p",{className:"mt-1 text-[10px] text-red-400",children:u})]}),(0,b.jsx)("button",{type:"button",onClick:l,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:B?"Continue":"Skip for now"})]})]})})}let A=(0,f.default)(async()=>{},{loadableGenerated:{modules:[895214]},ssr:!1});function B({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 C(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 D(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}}let E={"In Progress":"In Prog","In Review":"Review",Backlog:"Backlog",Todo:"Todo",Done:"Done",Cancelled:"Cancl."},F={queued:"bg-amber-500/10 border-amber-500/20 text-amber-400",running:"bg-yellow-500/10 border-yellow-500/20 text-yellow-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"},G={queued:"bg-amber-400",running:"bg-yellow-400",success:"bg-emerald-400",failed:"bg-red-400",cancelled:"bg-zinc-400"};function H({label:a,value:c,options:d,activeClasses:e,onChange:f}){let g=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 ${g?e:"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,value:c,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)(h.ChevronDown,{size:12,className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-current"})]})}function I({label:a,values:d,options:e,activeClasses:f,onChange:i,emptyLabel:j}){let[k,l]=(0,c.useState)(!1),m=(0,c.useRef)(null),n=e.filter(a=>a.value&&d.includes(a.value)),o=n.length>0,p=0===n.length?j??a:1===n.length?n[0]?.label??j??a:`${n.length} assignees`;(0,c.useEffect)(()=>{if(!k)return;let a=a=>{m.current&&!m.current.contains(a.target)&&l(!1)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[k]);let q=(0,c.useCallback)(a=>{a?i(d.includes(a)?d.filter(b=>b!==a):[...d,a]):i([])},[i,d]);return(0,b.jsxs)("div",{className:"relative",ref:m,children:[(0,b.jsxs)("button",{type:"button","aria-label":a,"aria-haspopup":"listbox","aria-expanded":k,className:`flex max-w-[180px] items-center gap-1 rounded-full border px-2.5 py-0.5 text-[11px] font-medium transition-colors ${o?f:"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,onClick:()=>l(a=>!a),children:[(0,b.jsx)("span",{className:"max-w-[132px] truncate",children:p}),(0,b.jsx)(h.ChevronDown,{size:12,className:`shrink-0 transition-transform ${k?"rotate-180":""}`})]}),k?(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":!o,className:`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${!o?"bg-[var(--background)] font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>i([]),children:[(0,b.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded-full border ${!o?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:o?null:(0,b.jsx)(g.Check,{size:10})}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:j??a})]}),n.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:()=>q(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)(g.Check,{size:10}):null}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:c.label})]},`${a}-${c.value}`)})]}):null]})}function J({issue:a,participants:d,projectId:e,projectSlug:f,createRun:g,updateRun:h,onRunCreated:i}){let j=d[0],k=(0,c.useRef)(crypto.randomUUID()),{messages:l,setMessages:m,sendMessage:n,chatRuns:t}=(0,p.useGroupChat)(k.current),{processes:u,streaming:w}=(0,q.useProcessPolling)({workspaceId:k.current},{messages:l,setMessages:m}),x=new Set(["queued","running","awaiting_user","blocked"]),y=t.some(a=>x.has(a.status))||u.some(a=>"spawning"===a.state||"running"===a.state)?t.some(a=>"queued"===a.status)?"queued":"working":"ready",z=(0,c.useMemo)(()=>new Map(d.map(a=>[a.id,a])),[d]),B=(0,c.useRef)(!1),D=(0,c.useCallback)(async(b,c,k,l,m,n,o)=>{if(B.current)return;B.current=!0;let p=(m?d.find(a=>a.id===m):null)??j;if(p)try{let{promptPrefix:c}=v({issue:{identifier:a.identifier,title:a.title,status:a.status,assignee:a.assignee},project:f?{slug:f}:null}),d=c+(n?`
37
+ ${n}`:""),j=await g({projectId:e??null,projectSlug:f??null,issueId:a.id,issueIdentifier:a.identifier,issueTitle:a.title,issueStatus:a.status,issueAssignee:a.assignee??null,agentId:p.id,agentName:p.name}),k=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:b,promptPrefix:d,threadId:j.threadId,activeParticipantIds:[p.id],projectSlug:f??void 0,routing:o})}),l=await k.json().catch(()=>({}));if(!k.ok||!l.chatRunId||!l.userMessageId)throw Error(l.error||"Failed to start chat session");await h(j.id,{chatRunId:l.chatRunId,rootMessageId:l.userMessageId}),i(j.id)}catch(a){console.error("Failed to create chat session:",a),B.current=!1,a instanceof Error&&window.alert(a.message)}},[a,d,j,e,f,g,h,i]);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.jsx)("span",{className:"shrink-0 rounded-md border border-[var(--card-border)] px-2 py-0.5 text-xs text-[var(--muted-foreground)]",children:a.status})]}),(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.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 text-[var(--muted-foreground)]",children:[(0,b.jsx)("span",{className:"text-sm",children:"Chat about this ticket"}),(0,b.jsx)("span",{className:"text-xs",children:"Your message will start a new session"})]}):(0,b.jsxs)("div",{className:"mx-auto max-w-4xl space-y-8",children:[l.map(a=>{let c=a.participantId?z.get(a.participantId):null,d=(0,s.stripMarkers)(a.content);return d.trim()?(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)(o.User,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]"})}):(0,b.jsx)("img",{src:C(a.participantId??"",c?.color),alt:c?.name??"Agent",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.jsx)("span",{className:"text-sm font-semibold text-[var(--foreground)]",children:"user"===a.role?"You":c?.name??"Agent"}),(0,b.jsx)("div",{className:"text-sm text-[var(--foreground)]",children:(0,b.jsx)(r.Markdown,{content:d,isUser:"user"===a.role})})]})]},a.id):null}),Object.entries(w).map(([a])=>{let c=z.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:C(a,c?.color),alt:c?.name??"Agent",className:"h-7 w-7 shrink-0 rounded-full object-cover"}),c?.name??"Agent"," is thinking..."]},`stream-${a}`)})]})}),(0,b.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:(0,b.jsx)(A,{onSend:D,onStop:()=>{},participants:d,projectSlug:f??void 0,loading:"ready"!==y,commands:[],activityStatus:y,placeholder:`Ask about ${a.identifier}...`,initialPinnedParticipantId:j?.id})})]})}function K({run:a,participants:d}){let{messages:e,setMessages:f,sendMessage:g,loadHistory:h,stop:j}=(0,p.useGroupChat)(a.threadId),{processes:k,streaming:l,chatRuns:m}=(0,q.useProcessPolling)(a.rootMessageId?{workspaceId:a.threadId,threadId:a.rootMessageId}:{workspaceId:a.threadId},{messages:e,setMessages:f});(0,c.useEffect)(()=>{h()},[h,a.threadId]);let n=(0,c.useMemo)(()=>new Map(d.map(a=>[a.id,a])),[d]),u=new Set(["queued","running","awaiting_user","blocked"]),v=m.some(a=>u.has(a.status))||k.some(a=>"spawning"===a.state||"running"===a.state)?m.some(a=>"queued"===a.status)?"queued":"working":"ready",w=(0,c.useCallback)((b,c,e,f,h,i,j)=>{a.rootMessageId&&g(b,c,void 0,a.rootMessageId,e,void 0,(0,t.orderParticipantIds)(d.map(a=>a.id),h),a.projectSlug??void 0,i,j)},[d,a.projectSlug,a.rootMessageId,g]);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.issueIdentifier}),(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.issueTitle??""})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-4",children:[(0,b.jsxs)("div",{className:`flex items-center gap-2 rounded-md border px-2.5 py-1 ${F[a.status]}`,children:[(0,b.jsx)("div",{className:`h-1.5 w-1.5 rounded-full ${G[a.status]}`}),(0,b.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wider",children:D(a.status)})]}),null!=a.durationMs&&(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)(i.Clock,{size:14}),(0,b.jsxs)("span",{children:[(a.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:C(a.agentId,n.get(a.agentId)?.color),alt:a.agentName,className:"h-5 w-5 rounded-full object-cover"}),(0,b.jsx)("span",{className:"pr-1 text-xs font-medium",children:a.agentName})]})]})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-6 pb-64",children:0===e.length?(0,b.jsx)("div",{className:"py-8 text-center text-xs text-[var(--muted-foreground)]",children:"queued"===a.status||"running"===a.status?"Starting run...":"No thread messages yet."}):(0,b.jsxs)("div",{className:"mx-auto max-w-4xl space-y-8",children:[e.map(c=>{let d=c.participantId?n.get(c.participantId):null,e=(0,s.stripMarkers)(c.content);if(!e.trim())return null;let f=c.participantId??a.agentId;return(0,b.jsxs)("div",{className:"flex gap-3",children:["user"===c.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)(o.User,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]"})}):(0,b.jsx)("img",{src:C(f,d?.color),alt:d?.name??a.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"===c.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:d?.color??"var(--foreground)"},children:d?.name??a.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(c.timestamp).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})]}),"user"===c.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)(r.Markdown,{content:e,isUser:!0})}):(0,b.jsx)("div",{className:"text-sm text-[var(--foreground)]",children:(0,b.jsx)(r.Markdown,{content:e,isUser:!1})})]})]},c.id)}),Object.entries(l).filter(([,b])=>!a.rootMessageId||b.rootMessageId===a.rootMessageId).map(([c])=>{let d=n.get(c);return(0,b.jsxs)("div",{className:"flex items-center gap-3 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)("img",{src:C(c,d?.color),alt:d?.name??a.agentName,className:"h-7 w-7 shrink-0 rounded-full object-cover"}),d?.name??a.agentName," is thinking..."]},`stream-${c}`)})]})}),(0,b.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:a.rootMessageId?(0,b.jsx)(A,{onSend:w,onStop:j,participants:d,projectSlug:a.projectSlug??void 0,loading:"ready"!==v,commands:[],activityStatus:v,placeholder:"Steer this run...",initialPinnedParticipantId:a.agentId}):(0,b.jsx)("div",{className:"px-2 py-1 text-xs text-[var(--muted-foreground)]",children:"Waiting for the run to start..."})})]})}function L({issue:a,selected:d,onSelect:e,onExecute:f}){let[h,i]=(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),i(!0),l.current&&window.clearTimeout(l.current),l.current=window.setTimeout(()=>{i(!1)},1500)}catch(a){console.error("Failed to copy Linear issue URL:",a),i(!1)}},[a.url]),n=E[a.status]??a.status.slice(0,6);return(0,b.jsxs)("div",{className:`group relative flex 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:e,role:"button",tabIndex:0,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),e())},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:n}),(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:h?"Copied ticket URL":"Copy ticket URL","aria-label":h?"Copied ticket URL":"Copy ticket URL",disabled:!a.url,children:h?(0,b.jsx)(g.Check,{size:10,className:"text-emerald-400"}):(0,b.jsx)(j,{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"}`,onClick:b=>{b.stopPropagation(),f(a,b)},title:"Execute with agent",children:(0,b.jsx)(k.Play,{size:10,className:"ml-0.5"})})]})}function M({projectId:a,projectSlug:d,initialShowSettings:e}){let{connected:f,loading:g,user:h,clis:i,mcpConfigured:j,connect:o,connectWithKey:p,disconnect:q,configureMcp:r}=function(){let[a,b]=(0,c.useState)(!1),[d,e]=(0,c.useState)(!0),[f,g]=(0,c.useState)(null),[h,i]=(0,c.useState)({claude:!1,codex:!1,gemini:!1}),[j,k]=(0,c.useState)({}),l=(0,c.useRef)(null),m=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/linear/mcp-setup"),b=await a.json();k(b.configured??{})}catch{}},[]),n=(0,c.useCallback)(async()=>{try{let[a,c]=await Promise.all([fetch("/api/linear/status"),fetch("/api/linear/mcp-setup")]),d=await a.json(),e=await c.json();return b(d.connected),g(d.user??null),i(d.clis??{claude:!1,codex:!1,gemini:!1}),k(e.configured??{}),d.connected}catch{return b(!1),!1}finally{e(!1)}},[]);(0,c.useEffect)(()=>(n(),()=>{l.current&&clearInterval(l.current)}),[n]);let o=(0,c.useCallback)(()=>{window.open("/api/linear/auth","_blank","noopener"),l.current&&clearInterval(l.current),l.current=setInterval(async()=>{await n()&&l.current&&(clearInterval(l.current),l.current=null)},2e3)},[n]),p=(0,c.useCallback)(async a=>{try{let b=await fetch("/api/linear/token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({accessToken:a})});if(!b.ok){let a=await b.json().catch(()=>({}));return{ok:!1,error:a.error||"Failed to save token"}}return await n(),{ok:!0}}catch{return{ok:!1,error:"Failed to connect"}}},[n]);return{connected:a,loading:d,user:f,clis:h,mcpConfigured:j,connect:o,connectWithKey:p,disconnect:(0,c.useCallback)(async()=>{await fetch("/api/linear/status",{method:"DELETE"}),b(!1),g(null)},[]),configureMcp:(0,c.useCallback)(async a=>{try{let b=await fetch("/api/linear/mcp-setup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cli:a})});if(!b.ok){let a=await b.json().catch(()=>({}));return{ok:!1,error:a.error||"Failed to configure MCP"}}return await m(),{ok:!0}}catch{return{ok:!1,error:"Failed to configure MCP"}}},[m]),refresh:n}}(),[s,t]=(0,c.useState)(!1),[u,w]=(0,c.useState)(e??!1),[x,y]=(0,c.useState)(576),[A,E]=(0,c.useState)(224),[F,G]=(0,c.useState)(""),[M,N]=(0,c.useState)(""),[O,P]=(0,c.useState)([]),[Q,R]=(0,c.useState)([]),[S,T]=(0,c.useState)([]),[U,V]=(0,c.useState)([]),[W,X]=(0,c.useState)(""),[Y,Z]=(0,c.useState)(""),[$,_]=(0,c.useState)(null),[aa,ab]=(0,c.useState)(null),[ac,ad]=(0,c.useState)([]),[ae,af]=(0,c.useState)(null),[ag,ah]=(0,c.useState)(null),ai=(0,c.useRef)(null),aj=(0,c.useCallback)(a=>{G(a),ai.current&&clearTimeout(ai.current),ai.current=setTimeout(()=>N(a),300)},[]);(0,c.useEffect)(()=>()=>{ai.current&&clearTimeout(ai.current)},[]),(0,c.useEffect)(()=>{if(!f)return;let a=!1;return fetch("/api/linear/options").then(a=>a.json()).then(b=>{a||(P(Array.isArray(b.assignees)?b.assignees:[]),R(Array.isArray(b.teams)?b.teams:[]),V(Array.isArray(b.cycles)?b.cycles:[]))}).catch(()=>{a||(P([]),R([]),V([]))}),()=>{a=!0}},[f]),(0,c.useEffect)(()=>{let a=S.filter(a=>O.some(b=>b.id===a));a.length!==S.length&&T(a)},[O,S]),(0,c.useEffect)(()=>{Q.length<=1&&Y?Z(""):Y&&!Q.some(a=>a.id===Y)&&Z("")},[Y,Q]),(0,c.useEffect)(()=>{W&&!U.some(a=>a.id===W)&&X("")},[U,W]);let{issues:ak,loading:al,hasMore:am,loadMore:an,refresh:ao}=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){h(!0);try{let b=new URLSearchParams;if(a.teamId&&b.set("teamId",a.teamId),a.status&&b.set("status",a.status),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),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.status,a.search,a.assigneeIds,a.assignedToMe,a.cycleId,b,d.projectSlug,d.limit]);return(0,c.useEffect)(()=>{j(null),o(!1,!n.current)},[o]),{issues:e,loading:g,hasMore:k,loadMore:(0,c.useCallback)(()=>o(!0),[o]),refresh:(0,c.useCallback)(()=>(j(null),o(!1,!0)),[o])}}((0,c.useMemo)(()=>({search:M||void 0,assigneeIds:S.length>0?S:void 0,teamId:Y||void 0,cycleId:W||void 0}),[M,S,W,Y]),f,{projectSlug:d}),{runs:ap,loading:aq,createRun:ar,updateRun:as}=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()).run;return e(a=>[c,...a.filter(a=>a.id!==c.id)]),c},[]),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},[])}}($?.id,a??null),at=ap.find(a=>a.id===aa)??null,au=(0,c.useMemo)(()=>O.map(a=>({value:a.id,label:a.name})),[O]),av=(0,c.useMemo)(()=>[{value:"",label:"Workspace"},...Q.map(a=>({value:a.id,label:a.name}))],[Q]),aw=(0,c.useMemo)(()=>[{value:"",label:"Cycle"},...U.map(a=>({value:a.id,label:a.name||`Cycle ${a.number}`}))],[U]),ax=aw.length>1,ay=av.length>2;(0,c.useEffect)(()=>{0===ak.length?_(null):_(a=>a&&ak.some(b=>b.id===a.id)?ak.find(b=>b.id===a.id)??a:ak[0]??null)},[ak]),(0,c.useEffect)(()=>{0===ap.length?ab(null):aa&&ap.some(a=>a.id===aa)||ab(ap[0]?.id??null)},[ap,aa]),(0,c.useEffect)(()=>{let b=!1;return async function(){try{let c=await fetch("/api/participants"),d=c.ok?await c.json():[];if(!a){b||ad(d);return}let e=await fetch(`/api/projects/${encodeURIComponent(a)}/agents`);if(!e.ok){b||ad(d);return}let f=await e.json(),g=Array.isArray(f.agents)?f.agents.map(a=>a.agent_id).filter(a=>"string"==typeof a&&a.trim().length>0):[],h=new Map(g.map((a,b)=>[a,b])),i=d.filter(a=>h.has(a.id)).sort((a,b)=>(h.get(a.id)??Number.MAX_SAFE_INTEGER)-(h.get(b.id)??Number.MAX_SAFE_INTEGER));b||ad(i)}catch{b||ad([])}}(),()=>{b=!0}},[a]);let az=(0,c.useCallback)((a,b)=>{if(0===ac.length)return void window.alert("Add at least one agent to this project before running a Linear ticket.");if(1===ac.length)return void aA(a,ac[0]);let c=b?.currentTarget?.getBoundingClientRect();af(a),ah(c?{top:c.bottom+4,left:c.left}:{top:200,left:200})},[ac]),aA=(0,c.useCallback)(async(b,c)=>{af(null),ah(null);let e=null;try{_(b),e=await ar({projectId:a??null,projectSlug:d??null,issueId:b.id,issueIdentifier:b.identifier,issueTitle:b.title,issueStatus:b.status,issueAssignee:b.assignee,agentId:c.id,agentName:c.name}),ab(e.id);let{prompt:f,promptPrefix:g}=v({issue:{identifier:b.identifier,title:b.title,status:b.status,assignee:b.assignee},project:d?{slug:d}:null}),h=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:f,promptPrefix:g,threadId:e.threadId,activeParticipantIds:[c.id],projectSlug:d??void 0})}),i=await h.json().catch(()=>({}));if(!h.ok||!i.chatRunId||!i.userMessageId)throw Error(i.error||"Failed to start Linear run");await as(e.id,{chatRunId:i.chatRunId,rootMessageId:i.userMessageId})}catch(a){console.error("Failed to execute Linear ticket:",a),e&&await as(e.id,{status:"failed",error:a instanceof Error?a.message:String(a)}),a instanceof Error&&window.alert(a.message)}},[ar,a,d,as]),aB=(0,c.useRef)(null);if((0,c.useEffect)(()=>{let a=aB.current;if(!a||!am)return;let b=new IntersectionObserver(a=>{a[0]?.isIntersecting&&an()},{threshold:.1});return b.observe(a),()=>b.disconnect()},[am,an]),g)return(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Loading..."});let aC=f&&!s&&!Object.values(j).some(Boolean);return!f||aC?(0,b.jsx)(z,{connected:f,user:h,clis:i,mcpConfigured:j,onConnect:o,onConnectWithKey:p,onDisconnect:q,onConfigureMcp:r,onContinue:()=>t(!0)}):(0,b.jsxs)("div",{className:"relative flex h-full overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex shrink-0 flex-col border-r border-[var(--card-border)]",style:{width:x},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)(m.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:F,onChange:a=>aj(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 ao(),title:"Refresh tickets","aria-label":"Refresh tickets",disabled:al,children:(0,b.jsx)(l.RefreshCw,{size:16,className:al?"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:()=>w(!0),title:"Linear settings",children:(0,b.jsx)(n.Settings,{size:16})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 px-3 pb-2",children:[(0,b.jsx)(I,{label:"Assignee",values:S,options:au,activeClasses:"border-blue-500/30 bg-blue-500/10 text-blue-400",onChange:T,emptyLabel:"All assignees"}),ay?(0,b.jsx)(H,{label:"Workspace",value:Y,options:av,activeClasses:"border-emerald-500/30 bg-emerald-500/10 text-emerald-400",onChange:Z}):null,ax?(0,b.jsx)(H,{label:"Cycle",value:W,options:aw,activeClasses:"border-purple-500/30 bg-purple-500/10 text-purple-400",onChange:X}):null]})]}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto",children:al&&0===ak.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading tickets..."}):0===ak.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:[ak.map(a=>(0,b.jsx)(L,{issue:a,selected:$?.id===a.id,onSelect:()=>_(a),onExecute:az},a.id)),am?(0,b.jsx)("div",{ref:aB,className:"py-2 text-center text-xs text-[var(--muted-foreground)]",children:al?"Loading...":"Load more"}):null]})})]}),(0,b.jsx)(B,{onResize:a=>y(b=>Math.max(180,Math.min(600,b+a)))}),(0,b.jsxs)("div",{className:"flex shrink-0 flex-col border-r border-[var(--card-border)]",style:{width:A},children:[(0,b.jsxs)("div",{className:"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:"Runs"}),$&&(0,b.jsxs)("button",{type:"button",className:"flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:a=>az($,a),title:"Run agent on selected ticket",children:[(0,b.jsx)(k.Play,{size:10}),(0,b.jsx)("span",{children:"Run now"})]})]}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto",children:$?aq&&0===ap.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading runs..."}):0===ap.length?(0,b.jsxs)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:["No runs yet. Click ",(0,b.jsx)(k.Play,{size:10,className:"inline"})," to execute."]}):ap.map(a=>(0,b.jsxs)("button",{type:"button",className:`w-full px-3 py-2 text-left text-xs transition-colors ${at?.id===a.id?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]"}`,onClick:()=>ab(a.id),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-1",children:[(0,b.jsx)("span",{className:`font-medium ${{queued:"text-amber-500",running:"text-yellow-500",success:"text-green-500",failed:"text-red-500",cancelled:"text-[var(--muted-foreground)]"}[a.status]}`,children:D(a.status)}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:new Date(a.startedAt).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})]}),(0,b.jsx)("div",{className:"mt-0.5 truncate text-[10px] 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)):(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Select a ticket to see runs."})})]}),(0,b.jsx)(B,{onResize:a=>E(b=>Math.max(140,Math.min(500,b+a)))}),(0,b.jsx)("div",{className:"flex min-w-0 flex-1 flex-col overflow-hidden",children:at?(0,b.jsx)(K,{run:at,participants:ac}):$&&ac.length>0?(0,b.jsx)(J,{issue:$,participants:ac,projectId:a,projectSlug:d,createRun:ar,updateRun:as,onRunCreated:a=>ab(a)},$.id):(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 chat.":"Select a ticket from the list."})}),u&&(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 w-full max-w-lg rounded-lg border border-[var(--card-border)] bg-[var(--background)] shadow-xl",children:[(0,b.jsx)("button",{type:"button",className:"absolute right-3 top-3 rounded p-1 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:()=>w(!1),children:"×"}),(0,b.jsx)("div",{className:"p-6",children:(0,b.jsx)(z,{connected:f,user:h,clis:i,mcpConfigured:j,onConnect:o,onConnectWithKey:p,onDisconnect:q,onConfigureMcp:r,onContinue:()=>w(!1)})})]})}),ae&&ag&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"fixed inset-0 z-40",onClick:()=>{af(null),ah(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:ag.top,left:ag.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"}),ac.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 aA(ae,a),children:[(0,b.jsx)("img",{src:C(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.title?(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:a.title}):null]})]},a.id))]})]})]})}function N({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)(M,{projectId:i?.id,projectSlug:i?.slug??f,initialShowSettings:j})}a.s(["default",()=>N],323860)}];
38
38
 
39
39
  //# sourceMappingURL=app_projects_%5Bslug%5D_linear_page_tsx_971a6ba7._.js.map
@@ -20,11 +20,11 @@
20
20
  "wasm": [],
21
21
  "assets": [],
22
22
  "env": {
23
- "__NEXT_BUILD_ID": "Y8QdDdLJI3yzNjkyPjuJ-",
24
- "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "hQBiQfhNIpZsZC9dTcGEt3vxGc0Wk1j9ym5K6kyCipM=",
25
- "__NEXT_PREVIEW_MODE_ID": "5f22816a47b2610eaca55d46cd5080fa",
26
- "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "9103ab622c77586bc368a389b7d59533b38c636030d019f20cbdac6c81fe8b05",
27
- "__NEXT_PREVIEW_MODE_SIGNING_KEY": "f932c7d2c049e5c3514e9314752112af1009b4c16ef6fbc3b6d70006f2d0541d"
23
+ "__NEXT_BUILD_ID": "1Q0q2lXllTpqCvmNQYtpD",
24
+ "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "F1aDX2WAfqMl3Pn5aAX5MVtDnvD9epe3LGDz69xy8UQ=",
25
+ "__NEXT_PREVIEW_MODE_ID": "c738675f3118e40c1b18c473afea7463",
26
+ "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "97b28c5dcf65903e84f0543575433075d6ef38a387ab24d0d5287eecc9b59545",
27
+ "__NEXT_PREVIEW_MODE_SIGNING_KEY": "5edc1b64163b3d0707e66209d958c3900150d72334e28f3220c78bfd5ea0ebc6"
28
28
  }
29
29
  }
30
30
  },
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html><!--Y8QdDdLJI3yzNjkyPjuJ_--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/2473c16c0c2f6b5f.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/3091043e8c282dce.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1d8496cecfe9a523.js"/><script src="/_next/static/chunks/de271f8f22d293b4.js" async=""></script><script src="/_next/static/chunks/961311cbebbffb6d.js" async=""></script><script src="/_next/static/chunks/2375e3fd2a9b8844.js" async=""></script><script src="/_next/static/chunks/797fcb0710da3be2.js" async=""></script><script src="/_next/static/chunks/turbopack-0ace1f53f3e3cf46.js" async=""></script><script src="/_next/static/chunks/c3784233f00e1ff5.js" async=""></script><script src="/_next/static/chunks/012b9216c9932478.js" async=""></script><script src="/_next/static/chunks/73e3194f06db260e.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-DVQQG95LNL" as="script"/><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>AGX</title><meta name="description" content="Agent task orchestration and group chat"/><script>
1
+ <!DOCTYPE html><!--1Q0q2lXllTpqCvmNQYtpD--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/2473c16c0c2f6b5f.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/37f07896b044d69f.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1d8496cecfe9a523.js"/><script src="/_next/static/chunks/de271f8f22d293b4.js" async=""></script><script src="/_next/static/chunks/961311cbebbffb6d.js" async=""></script><script src="/_next/static/chunks/2375e3fd2a9b8844.js" async=""></script><script src="/_next/static/chunks/797fcb0710da3be2.js" async=""></script><script src="/_next/static/chunks/turbopack-0ace1f53f3e3cf46.js" async=""></script><script src="/_next/static/chunks/c3784233f00e1ff5.js" async=""></script><script src="/_next/static/chunks/012b9216c9932478.js" async=""></script><script src="/_next/static/chunks/73e3194f06db260e.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-DVQQG95LNL" as="script"/><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>AGX</title><meta name="description" content="Agent task orchestration and group chat"/><script>
2
2
  (() => {
3
3
  try {
4
4
  const storedTheme = localStorage.getItem("agx-theme");
@@ -10,4 +10,4 @@
10
10
  root.style.colorScheme = theme;
11
11
  } catch {}
12
12
  })();
13
- </script><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased min-h-screen overflow-x-hidden overflow-y-auto bg-[var(--background)] text-[var(--foreground)] selection:bg-[var(--primary)] selection:text-[var(--primary-foreground)]"><div hidden=""><!--$--><!--/$--></div><div class="min-h-screen flex items-center justify-center bg-[var(--background)]"><span class="spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"></span></div><script src="/_next/static/chunks/1d8496cecfe9a523.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[634088,[\"/_next/static/chunks/c3784233f00e1ff5.js\"],\"default\"]\n3:I[339756,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"default\"]\n4:I[837457,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"default\"]\n5:I[205529,[\"/_next/static/chunks/c3784233f00e1ff5.js\"],\"default\"]\n6:I[134377,[\"/_next/static/chunks/c3784233f00e1ff5.js\"],\"GoogleAnalytics\"]\n7:I[715816,[\"/_next/static/chunks/c3784233f00e1ff5.js\"],\"PostHogAnalytics\"]\n8:I[897367,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"OutletBoundary\"]\n9:\"$Sreact.suspense\"\nb:I[897367,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"ViewportBoundary\"]\nd:I[897367,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"MetadataBoundary\"]\nf:I[253348,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"default\"]\n:HL[\"/_next/static/chunks/2473c16c0c2f6b5f.css\",\"style\"]\n:HL[\"/_next/static/chunks/3091043e8c282dce.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"Y8QdDdLJI3yzNjkyPjuJ-\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2473c16c0c2f6b5f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3091043e8c282dce.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/c3784233f00e1ff5.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n(() =\u003e {\\n try {\\n const storedTheme = localStorage.getItem(\\\"agx-theme\\\");\\n const theme = storedTheme === \\\"dark\\\" || storedTheme === \\\"light\\\"\\n ? storedTheme\\n : (window.matchMedia(\\\"(prefers-color-scheme: dark)\\\").matches ? \\\"dark\\\" : \\\"light\\\");\\n const root = document.documentElement;\\n root.classList.toggle(\\\"dark\\\", theme === \\\"dark\\\");\\n root.style.colorScheme = theme;\\n } catch {}\\n})();\\n\"}}]}],[\"$\",\"body\",null,{\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased min-h-screen overflow-x-hidden overflow-y-auto bg-[var(--background)] text-[var(--foreground)] selection:bg-[var(--primary)] selection:text-[var(--primary-foreground)]\",\"children\":[[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"$L5\",null,{}],[\"$\",\"$L6\",null,{}],[\"$\",\"$L7\",null,{}]]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L8\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@a\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"a:null\ne:[[\"$\",\"title\",\"0\",{\"children\":\"AGX\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Agent task orchestration and group chat\"}]]\n"])</script></body></html>
13
+ </script><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased min-h-screen overflow-x-hidden overflow-y-auto bg-[var(--background)] text-[var(--foreground)] selection:bg-[var(--primary)] selection:text-[var(--primary-foreground)]"><div hidden=""><!--$--><!--/$--></div><div class="min-h-screen flex items-center justify-center bg-[var(--background)]"><span class="spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"></span></div><script src="/_next/static/chunks/1d8496cecfe9a523.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[634088,[\"/_next/static/chunks/c3784233f00e1ff5.js\"],\"default\"]\n3:I[339756,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"default\"]\n4:I[837457,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"default\"]\n5:I[205529,[\"/_next/static/chunks/c3784233f00e1ff5.js\"],\"default\"]\n6:I[134377,[\"/_next/static/chunks/c3784233f00e1ff5.js\"],\"GoogleAnalytics\"]\n7:I[715816,[\"/_next/static/chunks/c3784233f00e1ff5.js\"],\"PostHogAnalytics\"]\n8:I[897367,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"OutletBoundary\"]\n9:\"$Sreact.suspense\"\nb:I[897367,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"ViewportBoundary\"]\nd:I[897367,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"MetadataBoundary\"]\nf:I[253348,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"default\"]\n:HL[\"/_next/static/chunks/2473c16c0c2f6b5f.css\",\"style\"]\n:HL[\"/_next/static/chunks/37f07896b044d69f.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"1Q0q2lXllTpqCvmNQYtpD\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2473c16c0c2f6b5f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/37f07896b044d69f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/c3784233f00e1ff5.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n(() =\u003e {\\n try {\\n const storedTheme = localStorage.getItem(\\\"agx-theme\\\");\\n const theme = storedTheme === \\\"dark\\\" || storedTheme === \\\"light\\\"\\n ? storedTheme\\n : (window.matchMedia(\\\"(prefers-color-scheme: dark)\\\").matches ? \\\"dark\\\" : \\\"light\\\");\\n const root = document.documentElement;\\n root.classList.toggle(\\\"dark\\\", theme === \\\"dark\\\");\\n root.style.colorScheme = theme;\\n } catch {}\\n})();\\n\"}}]}],[\"$\",\"body\",null,{\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased min-h-screen overflow-x-hidden overflow-y-auto bg-[var(--background)] text-[var(--foreground)] selection:bg-[var(--primary)] selection:text-[var(--primary-foreground)]\",\"children\":[[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"$L5\",null,{}],[\"$\",\"$L6\",null,{}],[\"$\",\"$L7\",null,{}]]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L8\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@a\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"a:null\ne:[[\"$\",\"title\",\"0\",{\"children\":\"AGX\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Agent task orchestration and group chat\"}]]\n"])</script></body></html>
@@ -1,2 +1,2 @@
1
- <!DOCTYPE html><!--Y8QdDdLJI3yzNjkyPjuJ_--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1d8496cecfe9a523.js"/><script src="/_next/static/chunks/de271f8f22d293b4.js" async=""></script><script src="/_next/static/chunks/961311cbebbffb6d.js" async=""></script><script src="/_next/static/chunks/2375e3fd2a9b8844.js" async=""></script><script src="/_next/static/chunks/797fcb0710da3be2.js" async=""></script><script src="/_next/static/chunks/turbopack-0ace1f53f3e3cf46.js" async=""></script><script src="/_next/static/chunks/d96012bcfc98706a.js" async=""></script><script src="/_next/static/chunks/73e3194f06db260e.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
- @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/1d8496cecfe9a523.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[339756,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"default\"]\n3:I[837457,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"default\"]\n4:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"ViewportBoundary\"]\n9:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"MetadataBoundary\"]\nb:I[168027,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"Y8QdDdLJI3yzNjkyPjuJ-\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/d96012bcfc98706a.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/73e3194f06db260e.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--1Q0q2lXllTpqCvmNQYtpD--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1d8496cecfe9a523.js"/><script src="/_next/static/chunks/de271f8f22d293b4.js" async=""></script><script src="/_next/static/chunks/961311cbebbffb6d.js" async=""></script><script src="/_next/static/chunks/2375e3fd2a9b8844.js" async=""></script><script src="/_next/static/chunks/797fcb0710da3be2.js" async=""></script><script src="/_next/static/chunks/turbopack-0ace1f53f3e3cf46.js" async=""></script><script src="/_next/static/chunks/d96012bcfc98706a.js" async=""></script><script src="/_next/static/chunks/73e3194f06db260e.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
+ @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/1d8496cecfe9a523.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[339756,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"default\"]\n3:I[837457,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"default\"]\n4:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"ViewportBoundary\"]\n9:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"MetadataBoundary\"]\nb:I[168027,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"1Q0q2lXllTpqCvmNQYtpD\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/d96012bcfc98706a.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/73e3194f06db260e.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>
@@ -1 +1 @@
1
- self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"hQBiQfhNIpZsZC9dTcGEt3vxGc0Wk1j9ym5K6kyCipM=\"\n}"
1
+ self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"F1aDX2WAfqMl3Pn5aAX5MVtDnvD9epe3LGDz69xy8UQ=\"\n}"
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "node": {},
3
3
  "edge": {},
4
- "encryptionKey": "hQBiQfhNIpZsZC9dTcGEt3vxGc0Wk1j9ym5K6kyCipM="
4
+ "encryptionKey": "F1aDX2WAfqMl3Pn5aAX5MVtDnvD9epe3LGDz69xy8UQ="
5
5
  }