@mndrk/agx 2.0.55 → 2.0.56

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 (504) hide show
  1. package/README.md +5 -0
  2. package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
  3. package/cloud-runtime/standalone/apps/local/.next/app-path-routes-manifest.json +1 -0
  4. package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +3 -3
  5. package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
  6. package/cloud-runtime/standalone/apps/local/.next/required-server-files.json +5 -0
  7. package/cloud-runtime/standalone/apps/local/.next/routes-manifest.json +8 -0
  8. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +1 -1
  9. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
  10. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
  17. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +2 -2
  18. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  19. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  20. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  21. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  22. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  23. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  24. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  25. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  26. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
  27. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  28. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
  29. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +3 -3
  30. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  31. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  32. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  33. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  34. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  35. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  36. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  37. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  38. package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/create/route.js +2 -2
  39. package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/create/route.js.nft.json +1 -1
  40. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
  41. package/cloud-runtime/standalone/apps/local/.next/server/app/api/daemon/route.js +1 -1
  42. package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
  43. package/cloud-runtime/standalone/apps/local/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js +3 -2
  44. package/cloud-runtime/standalone/apps/local/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
  45. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/scripted/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/status/route.js.nft.json +1 -1
  47. package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js +17 -7
  49. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
  50. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
  51. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
  52. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js +13 -13
  53. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  54. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
  55. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
  56. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js +1 -1
  57. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
  58. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  59. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  60. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/route.js +2 -2
  61. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/route.js.nft.json +1 -1
  62. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
  63. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
  64. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
  65. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
  66. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
  67. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
  68. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
  69. package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
  70. package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
  71. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  72. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  73. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  74. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  75. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  76. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js +4 -4
  77. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
  78. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  79. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
  80. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page/react-loadable-manifest.json +2 -2
  81. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page.js.nft.json +1 -1
  82. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  83. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.html +2 -2
  84. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.rsc +5 -5
  85. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_full.segment.rsc +5 -5
  86. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  87. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_index.segment.rsc +2 -2
  88. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_tree.segment.rsc +3 -3
  89. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +3 -3
  90. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  91. package/cloud-runtime/standalone/apps/local/.next/server/app/board/page_client-reference-manifest.js +1 -1
  92. package/cloud-runtime/standalone/apps/local/.next/server/app/board.html +2 -2
  93. package/cloud-runtime/standalone/apps/local/.next/server/app/board.rsc +2 -2
  94. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_full.segment.rsc +2 -2
  95. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_head.segment.rsc +1 -1
  96. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_index.segment.rsc +2 -2
  97. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  98. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  99. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board.segment.rsc +1 -1
  100. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page.js.nft.json +1 -1
  101. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  102. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.html +2 -2
  103. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.rsc +3 -3
  104. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
  105. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  106. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  107. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  108. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
  109. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  110. package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page.js.nft.json +1 -1
  111. package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page_client-reference-manifest.js +1 -1
  112. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.html +2 -2
  113. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.rsc +3 -3
  114. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_full.segment.rsc +3 -3
  115. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_head.segment.rsc +1 -1
  116. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_index.segment.rsc +2 -2
  117. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_tree.segment.rsc +2 -2
  118. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders/__PAGE__.segment.rsc +2 -2
  119. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders.segment.rsc +1 -1
  120. package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
  121. package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +2 -2
  122. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  123. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +2 -2
  124. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
  125. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +2 -2
  126. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  127. package/cloud-runtime/standalone/apps/local/.next/server/app/page.js.nft.json +1 -1
  128. package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
  129. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page/react-loadable-manifest.json +2 -2
  130. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
  131. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  132. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
  133. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
  134. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/app-paths-manifest.json +3 -0
  135. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/build-manifest.json +18 -0
  136. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/next-font-manifest.json +11 -0
  137. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/react-loadable-manifest.json +1 -0
  138. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/server-reference-manifest.json +4 -0
  139. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js +14 -0
  140. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.map +5 -0
  141. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -0
  142. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +3 -0
  143. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  144. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  145. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -1
  146. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
  147. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page/react-loadable-manifest.json +2 -2
  148. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page.js.nft.json +1 -1
  149. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page_client-reference-manifest.js +1 -1
  150. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
  151. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
  152. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
  153. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
  154. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  155. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  156. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page.js.nft.json +1 -1
  157. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page_client-reference-manifest.js +1 -1
  158. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
  159. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  160. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
  161. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
  162. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
  163. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
  164. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
  165. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
  166. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
  167. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
  168. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
  169. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
  170. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
  171. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
  172. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  173. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  174. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page.js.nft.json +1 -1
  175. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  176. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.html +2 -2
  177. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.rsc +3 -3
  178. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_full.segment.rsc +3 -3
  179. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  180. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  181. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  182. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +2 -2
  183. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  184. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  185. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  186. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.html +2 -2
  187. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.rsc +3 -3
  188. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +3 -3
  189. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  190. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  191. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  192. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  193. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  194. package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  195. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.html +2 -2
  196. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.rsc +2 -2
  197. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  198. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  199. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  200. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  201. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  202. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  203. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js.nft.json +1 -1
  204. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  205. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
  206. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +3 -3
  207. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +3 -3
  208. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  209. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +2 -2
  210. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  211. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +2 -2
  212. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  213. package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  214. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.html +2 -2
  215. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.rsc +2 -2
  216. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_full.segment.rsc +2 -2
  217. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  218. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_index.segment.rsc +2 -2
  219. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  220. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
  221. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  222. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js.nft.json +1 -1
  223. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
  224. package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
  225. package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +3 -3
  226. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +3 -3
  227. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
  228. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
  229. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  230. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
  231. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
  232. package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page.js.nft.json +1 -1
  233. package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  234. package/cloud-runtime/standalone/apps/local/.next/server/app-paths-manifest.json +1 -0
  235. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__09joc_o._.js +1 -1
  236. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g50c6p._.js +237 -0
  237. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0o315az._.js +1 -1
  238. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0t2jk2r._.js +2 -2
  239. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0tdixb0._.js +49 -0
  240. package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0gvjvx7._.js → [root-of-the-server]__0xdp_8-._.js} +25 -25
  241. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0y42h_~._.js +2 -2
  242. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0~fjhfa._.js +3 -0
  243. package/cloud-runtime/standalone/apps/local/.next/server/chunks/_12yasaj._.js +9 -0
  244. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_processor_ts_022nz2u._.js +3 -0
  245. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_processor_ts_0i1av_r._.js +11 -10
  246. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0yvelwy.js +3 -0
  247. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/02dz_local__next-internal_server_app_projects_[slug]_folders_page_actions_03fg4j9.js +3 -0
  248. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_0qzjdog._.js +3 -0
  249. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_icons_0a-mbbj._.js +3 -0
  250. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_icons_0e2_v_.._.js +3 -0
  251. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_icons_0w3hl3p._.js +3 -0
  252. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__07johgg._.js +3 -0
  253. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__08d5c~o._.js +3 -0
  254. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0_n~ybp._.js +3 -0
  255. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0fl7_-o._.js +18 -0
  256. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0h~rb5r._.js +3 -0
  257. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0r3w68h._.js +18 -0
  258. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0x7k~pk._.js +3 -0
  259. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__0hd2vo4._.js → [root-of-the-server]__0y8j6el._.js} +2 -2
  260. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0yme9fy._.js +3 -0
  261. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0~7q5sw._.js +3 -0
  262. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__13eqcxp._.js +3 -0
  263. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_0s~0ump._.js → _064h43p._.js} +2 -2
  264. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0742x_.._.js +3 -0
  265. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_09b42z9._.js → _09~glsn._.js} +2 -2
  266. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ejzn1e._.js +3 -0
  267. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0fwy5tm._.js +7 -0
  268. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ndrb_0._.js +2 -2
  269. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0sjchy6._.js +3 -0
  270. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ufdu.z._.js +7 -0
  271. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_03rf_sb._.js → _0wk3skw._.js} +2 -2
  272. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yffwm4._.js +2 -2
  273. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_03z24q2._.js +3 -0
  274. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_04hvzn_._.js +3 -0
  275. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0_4hk8x._.js +3 -0
  276. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0_ac-.f._.js +1 -1
  277. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0a-8i4p._.js +3 -0
  278. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0h3mfm7._.js +3 -0
  279. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0nvzo3y._.js +3 -0
  280. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_11k_-8~._.js +1 -1
  281. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_execution-graph_page_tsx_0tn2sx9._.js +2 -2
  282. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_folders_page_tsx_0ju618z._.js +3 -0
  283. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_graph_[taskId]_page_tsx_0bctfd-._.js +1 -1
  284. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_layout_tsx_0aaa3~t._.js +1 -1
  285. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_linear_page_tsx_0a~n5y8._.js +2 -2
  286. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_0kcaeqi._.js +1 -1
  287. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_page_tsx_06czvz-._.js +3 -0
  288. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_terminal_page_tsx_01n9qk.._.js +12 -12
  289. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_orphans_page_tsx_0sdv.11._.js +4 -4
  290. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_TaskCard_tsx_0e35_z5._.js +6 -6
  291. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_chat-ui_ChatContainer_tsx_0c9fjtl._.js +3 -3
  292. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_0k4tfip._.js +4 -4
  293. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_thread_WorkspaceSidebar_tsx_0unv2xp._.js +1 -1
  294. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mk0s0o.js +4 -0
  295. package/cloud-runtime/standalone/apps/local/.next/server/middleware-build-manifest.js +3 -3
  296. package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
  297. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.js +1 -1
  298. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.json +4 -0
  299. package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
  300. package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +1 -1
  301. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
  302. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
  303. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0-_ukhpeg429c.js +16 -0
  304. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0-olq~7zw3wjy.js +1 -0
  305. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0142ce0jj3j7r.js → 0-vo_x2cxmjm3.js} +1 -1
  306. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0.4d8rshxivwh.js +20 -0
  307. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1011~1x9nj4ny.js → 00lise4d-u8d1.js} +1 -1
  308. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0~apd0q5_i88z.js → 02p3n7faotpr9.js} +2 -2
  309. package/cloud-runtime/standalone/apps/local/.next/static/chunks/02zcxdul-1jaf.js +28 -0
  310. package/cloud-runtime/standalone/apps/local/.next/static/chunks/055bzj5jfgzr0.js +1 -0
  311. package/cloud-runtime/standalone/apps/local/.next/static/chunks/05c-~4v_jrblf.css +1 -0
  312. package/cloud-runtime/standalone/apps/local/.next/static/chunks/07646a0h94826.js +3 -0
  313. package/cloud-runtime/standalone/apps/local/.next/static/chunks/08~pgzjb13k_v.js +5 -0
  314. package/cloud-runtime/standalone/apps/local/.next/static/chunks/09wzd7y~tk-3~.js +1 -0
  315. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0px65ynyk3t1d.js → 0bchtyu6m.2yv.js} +7 -7
  316. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0brmd4~76pthy.js +20 -0
  317. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0f7i3ae1ynhf3.css +1 -0
  318. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0.a4-dh~x9sa3.js → 0hudzktaaxr4g.js} +2 -2
  319. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{09-_2lcshmjl5.js → 0hzq698w6f4m6.js} +1 -1
  320. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0i.su2yr26wb6.js +37 -0
  321. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jonp-o8lh-4j.js +1 -0
  322. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jsbvcyub73d9.js +1 -0
  323. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0l2pt2td_87wr.js +5 -0
  324. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0l3v45kd.9is_.js +1 -0
  325. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0lgb.0~i1xvv-.js +1 -0
  326. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0lkal3uvr6_~2.js +1 -0
  327. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0mvqoz13v0o2a.js +5 -0
  328. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0o9cxba_5mv2c.js +5 -0
  329. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p7s38p3bcffh.js +1 -0
  330. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0q2dgbluvgxf2.js +16 -0
  331. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0r0c9y6.8.m5p.js +1 -0
  332. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0h_bwlg~kk8lz.js → 0rey9zfvm3yhd.js} +2 -2
  333. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ucg8e2wkd8gf.js +1 -0
  334. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0uve8xrt~0a2e.js +1 -0
  335. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0x_pewz9npq~q.js +1 -0
  336. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xwny92a.ad_i.js +1 -0
  337. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0ov5lu0tz2o2e.js → 104xjvrf6y-zq.js} +1 -1
  338. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0rm7v.1y6qcni.js → 11-u35xqxu~i-.js} +1 -1
  339. package/cloud-runtime/standalone/apps/local/.next/static/chunks/14v~9vx3tdv85.js +1 -0
  340. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0826uh6nmsi5l.js → 1503vb7lb6.g1.js} +1 -1
  341. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0o0hwfzwwty4b.js → 15jlly_p-g4c8.js} +2 -2
  342. package/cloud-runtime/standalone/apps/local/.next/static/chunks/16nozeadjid9-.js +5 -0
  343. package/cloud-runtime/standalone/apps/local/.next/static/chunks/177-q0wwdi0qe.js +1 -0
  344. package/cloud-runtime/standalone/apps/local/agx-server.js +4055 -0
  345. package/cloud-runtime/standalone/apps/local/app/api/automations/route.ts +10 -2
  346. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.ts +16 -0
  347. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/route.ts +8 -1
  348. package/cloud-runtime/standalone/apps/local/app/globals.css +67 -5
  349. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/folders/page.tsx +25 -0
  350. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/layout.tsx +19 -5
  351. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/objectives/[objectiveId]/page.tsx +7 -2
  352. package/cloud-runtime/standalone/apps/local/bundled-server.ts +45 -0
  353. package/cloud-runtime/standalone/apps/local/components/ActionToolbar.tsx +5 -2
  354. package/cloud-runtime/standalone/apps/local/components/AutomationsBoard.tsx +35 -3
  355. package/cloud-runtime/standalone/apps/local/components/ContextMenu.tsx +2 -2
  356. package/cloud-runtime/standalone/apps/local/components/FloatingPanel.tsx +36 -14
  357. package/cloud-runtime/standalone/apps/local/components/IconButton.tsx +10 -2
  358. package/cloud-runtime/standalone/apps/local/components/KanbanBoard.tsx +84 -3
  359. package/cloud-runtime/standalone/apps/local/components/LinearBoard.tsx +382 -13
  360. package/cloud-runtime/standalone/apps/local/components/LogTimeline.tsx +4 -1
  361. package/cloud-runtime/standalone/apps/local/components/NowRunningPanel.tsx +3 -1
  362. package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +46 -6
  363. package/cloud-runtime/standalone/apps/local/components/SearchCombo.tsx +3 -3
  364. package/cloud-runtime/standalone/apps/local/components/SortableTaskCard.tsx +21 -3
  365. package/cloud-runtime/standalone/apps/local/components/StatusCircle.tsx +3 -3
  366. package/cloud-runtime/standalone/apps/local/components/TaskCard.tsx +51 -1
  367. package/cloud-runtime/standalone/apps/local/components/chat-ui/ChatContainer.tsx +15 -2
  368. package/cloud-runtime/standalone/apps/local/components/chat-ui/Composer.tsx +3 -3
  369. package/cloud-runtime/standalone/apps/local/components/chat-ui/ParticipantBar.tsx +76 -9
  370. package/cloud-runtime/standalone/apps/local/components/graph/ExecutionGraphPanel.tsx +4 -1
  371. package/cloud-runtime/standalone/apps/local/components/graph/GraphFirstView.tsx +6 -2
  372. package/cloud-runtime/standalone/apps/local/components/graph/NodeDetailPanel.tsx +29 -14
  373. package/cloud-runtime/standalone/apps/local/components/graph/NodeInspector.tsx +9 -6
  374. package/cloud-runtime/standalone/apps/local/components/projects/FoldersSummaryCard.tsx +16 -16
  375. package/cloud-runtime/standalone/apps/local/components/projects/FoldersView.tsx +856 -0
  376. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveActivityTimeline.tsx +40 -32
  377. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +172 -49
  378. package/cloud-runtime/standalone/apps/local/components/projects/ProjectHome.tsx +4 -4
  379. package/cloud-runtime/standalone/apps/local/components/projects/ProjectObjectivesWorkspace.tsx +347 -168
  380. package/cloud-runtime/standalone/apps/local/components/projects/ProjectSearchBar.tsx +4 -2
  381. package/cloud-runtime/standalone/apps/local/components/projects/ScheduledTasksSummaryCard.tsx +19 -19
  382. package/cloud-runtime/standalone/apps/local/components/projects/TeamsSummaryCard.tsx +10 -10
  383. package/cloud-runtime/standalone/apps/local/components/projects/TeamsView.tsx +50 -50
  384. package/cloud-runtime/standalone/apps/local/components/projects/WorkingNowCard.tsx +12 -12
  385. package/cloud-runtime/standalone/apps/local/components/projects/home/ObjectiveCard.tsx +13 -10
  386. package/cloud-runtime/standalone/apps/local/components/projects/home/ObjectivesSection.tsx +7 -7
  387. package/cloud-runtime/standalone/apps/local/components/projects/home/ToolPathCard.tsx +2 -2
  388. package/cloud-runtime/standalone/apps/local/components/projects/home/ToolPathsSection.tsx +9 -9
  389. package/cloud-runtime/standalone/apps/local/components/scheduling/ScheduleConditionPicker.tsx +3 -3
  390. package/cloud-runtime/standalone/apps/local/components/terminal/ProjectTerminal.tsx +211 -77
  391. package/cloud-runtime/standalone/apps/local/components/terminal/TerminalSessionList.tsx +3 -1
  392. package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +72 -21
  393. package/cloud-runtime/standalone/apps/local/hooks/useInputCapabilities.ts +74 -0
  394. package/cloud-runtime/standalone/apps/local/lib/app-config.ts +35 -0
  395. package/cloud-runtime/standalone/apps/local/lib/pty-manager.ts +5 -1
  396. package/cloud-runtime/standalone/apps/local/lib/terminal-server.ts +182 -0
  397. package/cloud-runtime/standalone/apps/local/next.config.ts +2 -1
  398. package/cloud-runtime/standalone/apps/local/package.json +2 -2
  399. package/cloud-runtime/standalone/apps/local/playwright.config.ts +8 -0
  400. package/cloud-runtime/standalone/apps/local/server.js +1 -1
  401. package/cloud-runtime/standalone/apps/local/server.ts +14 -158
  402. package/cloud-runtime/standalone/apps/local/src/graph/types.ts +2 -0
  403. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/cron.ts +11 -0
  404. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/processor.ts +325 -88
  405. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/types.ts +20 -0
  406. package/cloud-runtime/standalone/apps/local/state/windowState.ts +11 -0
  407. package/cloud-runtime/standalone/apps/local/styles/workspaceSidebar.css +65 -0
  408. package/cloud-runtime/standalone/apps/local/worker/index.js +0 -4
  409. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/darwin-arm64/pty.node +0 -0
  410. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/darwin-arm64/spawn-helper +0 -0
  411. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/darwin-x64/pty.node +0 -0
  412. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/darwin-x64/spawn-helper +0 -0
  413. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty/OpenConsole.exe +0 -0
  414. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty/conpty.dll +0 -0
  415. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty.node +0 -0
  416. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty.pdb +0 -0
  417. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.node +0 -0
  418. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.pdb +0 -0
  419. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/pty.node +0 -0
  420. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/pty.pdb +0 -0
  421. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/winpty-agent.exe +0 -0
  422. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/winpty-agent.pdb +0 -0
  423. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/winpty.dll +0 -0
  424. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/winpty.pdb +0 -0
  425. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty/OpenConsole.exe +0 -0
  426. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty/conpty.dll +0 -0
  427. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty.node +0 -0
  428. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty.pdb +0 -0
  429. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.node +0 -0
  430. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.pdb +0 -0
  431. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/pty.node +0 -0
  432. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/pty.pdb +0 -0
  433. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/winpty-agent.exe +0 -0
  434. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/winpty-agent.pdb +0 -0
  435. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/winpty.dll +0 -0
  436. package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/winpty.pdb +0 -0
  437. package/lib/cli/daemon.js +13 -2
  438. package/lib/cli/onboarding.js +5 -6
  439. package/lib/cli/runCli.js +1 -1
  440. package/lib/cloud/client.js +1 -1
  441. package/lib/commands/chat.js +37 -11
  442. package/lib/commands/daemonBoard.js +19 -13
  443. package/lib/config/cloudConfig.js +1 -1
  444. package/lib/orchestrator/httpClient.js +1 -1
  445. package/lib/prompts/templates.js +8 -9
  446. package/package.json +1 -1
  447. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__01ol22y._.js +0 -3
  448. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__088h0r2._.js +0 -3
  449. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__094z9yf._.js +0 -9
  450. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0avz575._.js +0 -49
  451. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0xxf2a0.js +0 -3
  452. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_0xd_mxu._.js +0 -3
  453. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__044xm0q._.js +0 -3
  454. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__066ay_e._.js +0 -3
  455. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__09smg3p._.js +0 -18
  456. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0iix1sf._.js +0 -3
  457. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0r54zr9._.js +0 -3
  458. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0s8z2_c._.js +0 -18
  459. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0w1mm2j._.js +0 -3
  460. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0wq3ukc._.js +0 -3
  461. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__13h-0om._.js +0 -3
  462. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_03-mlx0._.js +0 -7
  463. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ag3.tl._.js +0 -7
  464. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0dh_hx0._.js +0 -3
  465. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0h8cbsi._.js +0 -3
  466. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0i1ffhz._.js +0 -3
  467. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0nlki7b._.js +0 -3
  468. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0_q01av._.js +0 -3
  469. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0eh.4j7._.js +0 -3
  470. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0qaowqy._.js +0 -3
  471. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0s0iy2_._.js +0 -3
  472. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0zr-_na._.js +0 -3
  473. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_10qsqky._.js +0 -3
  474. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0.bv3h68wo33z.js +0 -1
  475. package/cloud-runtime/standalone/apps/local/.next/static/chunks/016.x9zt9~rsh.js +0 -16
  476. package/cloud-runtime/standalone/apps/local/.next/static/chunks/027-6dwgpb0cy.js +0 -1
  477. package/cloud-runtime/standalone/apps/local/.next/static/chunks/031720jijg_th.js +0 -1
  478. package/cloud-runtime/standalone/apps/local/.next/static/chunks/03m1xs0rztynh.js +0 -16
  479. package/cloud-runtime/standalone/apps/local/.next/static/chunks/07o~9mm~xds_b.js +0 -1
  480. package/cloud-runtime/standalone/apps/local/.next/static/chunks/08zgoptetnxjj.css +0 -1
  481. package/cloud-runtime/standalone/apps/local/.next/static/chunks/09_yj-9nfh48m.js +0 -1
  482. package/cloud-runtime/standalone/apps/local/.next/static/chunks/09c7ssmgohk7l.js +0 -1
  483. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0awbe2r3qazge.css +0 -1
  484. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0dro-bz6f72z0.js +0 -1
  485. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0gbunx8z.~i4x.js +0 -5
  486. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ge81r~ap.u7n.js +0 -28
  487. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ghg5160qeazw.js +0 -5
  488. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0gl_8hdxl5qnd.js +0 -37
  489. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0g~v8p6_pc46-.js +0 -1
  490. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jb4f8425s.-2.js +0 -1
  491. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0kukkarp4un0o.js +0 -1
  492. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0m.2b-cekea8b.js +0 -1
  493. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0pt8_y9asrg~7.js +0 -1
  494. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0wyg4lymaq0hg.js +0 -3
  495. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xl~1ux2f~rcu.js +0 -1
  496. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0y7-eze-w7~b4.js +0 -5
  497. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0y8e--tok1214.js +0 -5
  498. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0yy~0bgsz~o6-.js +0 -1
  499. package/cloud-runtime/standalone/apps/local/.next/static/chunks/100xrwo-45nrg.js +0 -20
  500. package/cloud-runtime/standalone/apps/local/.next/static/chunks/14h3qxwuo~1q9.js +0 -20
  501. package/cloud-runtime/standalone/apps/local/.next/static/chunks/17oesq5eds3xi.js +0 -1
  502. /package/cloud-runtime/standalone/apps/local/.next/static/{z8XjY2Aj-ox_Dro192i4I → fPVnk_kTRzrxXr7U3TRFW}/_buildManifest.js +0 -0
  503. /package/cloud-runtime/standalone/apps/local/.next/static/{z8XjY2Aj-ox_Dro192i4I → fPVnk_kTRzrxXr7U3TRFW}/_clientMiddlewareManifest.js +0 -0
  504. /package/cloud-runtime/standalone/apps/local/.next/static/{z8XjY2Aj-ox_Dro192i4I → fPVnk_kTRzrxXr7U3TRFW}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,363732,e=>{"use strict";var t=e.i(271645);let r=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim(),a=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var n={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let s=(0,t.forwardRef)(({color:e="currentColor",size:a=24,strokeWidth:s=2,absoluteStrokeWidth:o,className:l="",children:i,iconNode:c,...d},u)=>(0,t.createElement)("svg",{ref:u,...n,width:a,height:a,stroke:e,strokeWidth:o?24*Number(s)/Number(a):s,className:r("lucide",l),...!i&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(d)&&{"aria-hidden":"true"},...d},[...c.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(i)?i:[i]]));e.s(["default",0,(e,n)=>{let o=(0,t.forwardRef)(({className:o,...l},i)=>(0,t.createElement)(s,{ref:i,iconNode:n,className:r(`lucide-${a(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,o),...l}));return o.displayName=a(e),o}],363732)},797167,e=>{"use strict";let t=(0,e.i(363732).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["X",0,t],797167)},929870,e=>{"use strict";let t=(0,e.i(363732).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],929870)},524123,e=>{"use strict";var t=e.i(271645);e.s(["useProjects",0,function(){let[e,r]=(0,t.useState)([]),[a,n]=(0,t.useState)(!1),[s,o]=(0,t.useState)(null),l=(0,t.useCallback)(async()=>{n(!0);try{let e=await fetch("/api/projects");if(!e.ok)throw Error("Failed to fetch projects");let t=await e.json();r(t.projects??[]),o(null)}catch(e){o(e instanceof Error?e:Error("Unknown error"))}finally{n(!1)}},[]);(0,t.useEffect)(()=>{l()},[l]);let i=(0,t.useCallback)(async e=>{let t=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to create project");let a=(await t.json()).project;return r(e=>[a,...e]),a},[]);return{projects:e,isLoading:a,error:s,refetch:l,createProject:i,updateProject:(0,t.useCallback)(async(e,t)=>{let a=await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok)throw Error((await a.json().catch(()=>({}))).error||"Failed to update project");let n=(await a.json()).project;return r(t=>t.map(t=>t.id===e?n:t)),n},[]),deleteProject:(0,t.useCallback)(async e=>{let t=await fetch(`/api/projects/${e}`,{method:"DELETE"});if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to delete project");r(t=>t.filter(t=>t.id!==e))},[])}},"useProjectsWithAgents",0,function(){let[e,r]=(0,t.useState)([]),[a,n]=(0,t.useState)(!0),s=(0,t.useCallback)(async()=>{try{let e=await fetch("/api/projects");if(!e.ok)return;let{projects:t}=await e.json(),a=await Promise.all((t??[]).map(async e=>{let t=[],r=[];try{let[a,n]=await Promise.all([fetch(`/api/projects/${e.id}/agents`),fetch(`/api/projects/${e.id}/threads`)]);a.ok&&(t=(await a.json()).agents??[]),n.ok&&(r=((await n.json()).threads??[]).map(e=>e.thread_id))}catch{}return{...e,repos:e.repos??[],agents:t.map(t=>({project_id:e.id,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at})),thread_ids:r,workspace_ids:r}}));r(a)}catch{}finally{n(!1)}},[]);(0,t.useEffect)(()=>{s()},[s]);let o=(0,t.useCallback)(async(e,t)=>{try{let a="string"==typeof e?{name:e}:e,n=a.name.trim(),s=(a.slug||n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")).trim(),o=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...a,name:n,slug:s})});if(!o.ok)return null;let{project:l}=await o.json(),i=Array.isArray(t)?t:t?[t]:[];for(let e of i)await fetch(`/api/projects/${l.id}/threads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:e})}).catch(e=>console.warn("[useProjects] link thread failed:",e));let c={...l,repos:l.repos??[],agents:[],thread_ids:i,workspace_ids:i};return r(e=>[...e,c].sort((e,t)=>e.name.localeCompare(t.name))),c}catch{return null}},[]),l=(0,t.useCallback)(async(e,t)=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t})})).ok)return;r(r=>r.map(r=>r.id===e?{...r,name:t}:r).sort((e,t)=>e.name.localeCompare(t.name)))}catch{}},[]),i=(0,t.useCallback)(async e=>{try{if(!(await fetch(`/api/projects/${e}`,{method:"DELETE"})).ok)return;r(t=>t.filter(t=>t.id!==e))}catch{}},[]),c=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!a.ok){let e=await a.json().catch(()=>({}));throw Error(e.error||"Failed to update project")}let n=(await a.json()).project;return r(t=>t.map(t=>t.id===e?{...t,...n,repos:n.repos??t.repos}:t)),n}catch{return null}},[]),d=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:t})});if(!a.ok)return;let n=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:n}:t))}catch{}},[]),u=(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents?agentId=${t}`,{method:"DELETE"});if(!a.ok)return;let n=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:n}:t))}catch{}},[]);return{projects:e,isLoading:a,createProject:o,updateProject:c,renameProject:l,deleteProject:i,addAgent:d,removeAgent:u,reorderAgents:(0,t.useCallback)(async(e,t)=>{try{let a=await fetch(`/api/projects/${e}/agents`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({orderedAgentIds:t})});if(!a.ok)return;let n=((await a.json()).agents??[]).map(t=>({project_id:e,agent_id:t.agent_id,routing_order:t.routing_order,created_at:t.created_at}));r(t=>t.map(t=>t.id===e?{...t,agents:n}:t))}catch{}},[]),moveAgent:(0,t.useCallback)(async(e,t,r)=>{try{await fetch(`/api/projects/${t}/agents?agentId=${e}`,{method:"DELETE"}),await fetch(`/api/projects/${r}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:e})}),await s()}catch{}},[s]),refresh:s}}])},529471,e=>{"use strict";let t=(0,e.i(363732).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],529471)},640481,e=>{"use strict";let t=(0,e.i(363732).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,t],640481)},429056,e=>{"use strict";let t=(0,e.i(363732).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,t],429056)},494999,e=>{"use strict";var t=e.i(843476),r=e.i(271645);e.s(["default",0,function({initialPath:e,onSelect:a,onCancel:n}){let[s,o]=(0,r.useState)(e||""),[l,i]=(0,r.useState)(null),[c,d]=(0,r.useState)(!1),[u,p]=(0,r.useState)(null),f=(0,r.useRef)(null),h=(0,r.useCallback)(async e=>{d(!0),p(null);try{let t=e?`?path=${encodeURIComponent(e)}`:"",r=await fetch(`/api/filesystem/browse${t}`),a=await r.json();if(!r.ok)return void p(a.error||"Failed to browse");i(a),o(a.current),f.current?.scrollTo(0,0)}catch{p("Failed to connect")}finally{d(!1)}},[]);return(0,r.useEffect)(()=>{h(e||"")},[]),(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] overflow-hidden shadow-lg",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-[var(--card-border)] bg-[var(--muted)]/30",children:[(0,t.jsx)("input",{value:s,onChange:e=>o(e.target.value),onKeyDown:e=>{"Enter"===e.key&&h(s)},className:"input text-xs flex-1 py-1",placeholder:"Enter path..."}),(0,t.jsx)("button",{type:"button",onClick:()=>h(s),className:"text-[10px] font-bold uppercase tracking-wider text-[var(--primary)] hover:underline px-2 py-1 shrink-0",children:"Go"})]}),(0,t.jsxs)("div",{ref:f,className:"max-h-48 overflow-y-auto",children:[c&&(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)] text-center",children:"Loading..."}),u&&(0,t.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--destructive)] text-center",children:u}),!c&&l&&(0,t.jsxs)("div",{className:"py-1",children:[l.parent&&(0,t.jsxs)("button",{type:"button",onClick:()=>h(l.parent),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-[var(--muted)]/50 transition-colors flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"↑"}),(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:".."})]}),0===l.dirs.length&&!l.parent&&(0,t.jsx)("div",{className:"px-3 py-3 text-xs text-[var(--muted-foreground)] text-center",children:"No subdirectories"}),l.dirs.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>h(e.path),className:"w-full text-left px-3 py-1.5 text-sm hover:bg-[var(--muted)]/50 transition-colors flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"📁"}),(0,t.jsx)("span",{className:"truncate",children:e.name})]},e.path))]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-t border-[var(--card-border)] bg-[var(--muted)]/30",children:[(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)] truncate max-w-[60%]",children:l?.current||s}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:n,className:"text-xs font-medium text-[var(--muted-foreground)] hover:underline px-2 py-1",children:"Cancel"}),(0,t.jsx)("button",{type:"button",onClick:()=>a(l?.current||s),className:"text-xs font-bold text-[var(--primary)] hover:underline px-2 py-1",children:"Select"})]})]})]})}])},794731,e=>{"use strict";let t=(0,e.i(363732).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",0,t],794731)},196630,e=>{"use strict";let t=(0,e.i(363732).default)("folder-git-2",[["path",{d:"M18 19a5 5 0 0 1-5-5v8",key:"sz5oeg"}],["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]);e.s(["FolderGit2",0,t],196630)},195057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={formatUrl:function(){return l},formatWithValidation:function(){return c},urlObjectKeys:function(){return i}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let s=e.r(190809)._(e.r(998183)),o=/https?|ftp|gopher|file/;function l(e){let{auth:t,hostname:r}=e,a=e.protocol||"",n=e.pathname||"",l=e.hash||"",i=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:r&&(c=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(c+=":"+e.port)),i&&"object"==typeof i&&(i=String(s.urlQueryToSearchParams(i)));let d=e.search||i&&`?${i}`||"";return a&&!a.endsWith(":")&&(a+=":"),e.slashes||(!a||o.test(a))&&!1!==c?(c="//"+(c||""),n&&"/"!==n[0]&&(n="/"+n)):c||(c=""),l&&"#"!==l[0]&&(l="#"+l),d&&"?"!==d[0]&&(d="?"+d),n=n.replace(/[?#]/g,encodeURIComponent),d=d.replace("#","%23"),`${a}${c}${n}${d}${l}`}let i=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function c(e){return l(e)}},818581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return n}});let a=e.r(271645);function n(e,t){let r=(0,a.useRef)(null),n=(0,a.useRef)(null);return(0,a.useCallback)(a=>{if(null===a){let e=r.current;e&&(r.current=null,e());let t=n.current;t&&(n.current=null,t())}else e&&(r.current=s(e,a)),t&&(n.current=s(t,a))},[e,t])}function s(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},573668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return s}});let a=e.r(718967),n=e.r(652817);function s(e){if(!(0,a.isAbsoluteUrl)(e))return!0;try{let t=(0,a.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,n.hasBasePath)(r.pathname)}catch(e){return!1}}},284508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},522016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={default:function(){return g},useLinkStatus:function(){return y}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let s=e.r(190809),o=e.r(843476),l=s._(e.r(271645)),i=e.r(195057),c=e.r(8372),d=e.r(818581),u=e.r(718967),p=e.r(405550);e.r(233525);let f=e.r(388540),h=e.r(91949),m=e.r(573668),x=e.r(509396);function g(t){var r,a;let n,s,g,[y,v]=(0,l.useOptimistic)(h.IDLE_LINK_STATUS),b=(0,l.useRef)(null),{href:w,as:k,children:N,prefetch:_=null,passHref:C,replace:S,shallow:T,scroll:P,onClick:E,onMouseEnter:O,onTouchStart:L,legacyBehavior:M=!1,onNavigate:A,transitionTypes:I,ref:$,unstable_dynamicOnHover:U,...R}=t;n=N,M&&("string"==typeof n||"number"==typeof n)&&(n=(0,o.jsx)("a",{children:n}));let D=l.default.useContext(c.AppRouterContext),F=!1!==_,z=!1!==_?null===(a=_)||"auto"===a?x.FetchStrategy.PPR:x.FetchStrategy.Full:x.FetchStrategy.PPR,H="string"==typeof(r=k||w)?r:(0,i.formatUrl)(r);if(M){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});s=l.default.Children.only(n)}let B=M?s&&"object"==typeof s&&s.ref:$,K=l.default.useCallback(e=>(null!==D&&(b.current=(0,h.mountLinkInstance)(e,H,D,z,F,v)),()=>{b.current&&((0,h.unmountLinkForCurrentNavigation)(b.current),b.current=null),(0,h.unmountPrefetchableInstance)(e)}),[F,H,D,z,v]),J={ref:(0,d.useMergedRef)(K,B),onClick(t){M||"function"!=typeof E||E(t),M&&s.props&&"function"==typeof s.props.onClick&&s.props.onClick(t),!D||t.defaultPrevented||function(t,r,a,n,s,o,i){if("u">typeof window){let c,{nodeName:d}=t.currentTarget;if("A"===d.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(r)){n&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),o){let e=!1;if(o({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:u}=e.r(699781);l.default.startTransition(()=>{u(r,n?"replace":"push",!1===s?f.ScrollBehavior.NoScroll:f.ScrollBehavior.Default,a.current,i)})}}(t,H,b,S,P,A,I)},onMouseEnter(e){M||"function"!=typeof O||O(e),M&&s.props&&"function"==typeof s.props.onMouseEnter&&s.props.onMouseEnter(e),D&&F&&(0,h.onNavigationIntent)(e.currentTarget,!0===U)},onTouchStart:function(e){M||"function"!=typeof L||L(e),M&&s.props&&"function"==typeof s.props.onTouchStart&&s.props.onTouchStart(e),D&&F&&(0,h.onNavigationIntent)(e.currentTarget,!0===U)}};return(0,u.isAbsoluteUrl)(H)?J.href=H:M&&!C&&("a"!==s.type||"href"in s.props)||(J.href=(0,p.addBasePath)(H)),g=M?l.default.cloneElement(s,J):(0,o.jsx)("a",{...R,...J,children:n}),(0,o.jsx)(j.Provider,{value:y,children:g})}e.r(284508);let j=(0,l.createContext)(h.IDLE_LINK_STATUS),y=()=>(0,l.useContext)(j);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},810605,e=>{"use strict";e.s(["GRAPH_TIMEOUT_DEFAULT_MS",0,864e5,"NODE_TIMEOUT_DEFAULT_MS",0,18e5,"UI_POLL_CHAT_ALT_MS",0,15e3,"UI_POLL_CHAT_CHECK_MS",0,1e4,"UI_POLL_DB_HEALTH_MS",0,3e4,"UI_POLL_PROMPT_RUNS_MS",0,5e3,"UI_POLL_SYSTEM_STATUS_MS",0,3e4,"UI_POLL_TASK_DURATION_MS",0,6e4])},55236,e=>{"use strict";let t=(0,e.i(363732).default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);e.s(["Folder",0,t],55236)},186710,e=>{"use strict";var t=e.i(843476),r=e.i(522016),a=e.i(271645),n=e.i(810605);function s(){let[e,r]=(0,a.useState)(null),[s,o]=(0,a.useState)("loading");(0,a.useEffect)(()=>{let e=!0;async function t(){try{let t=await fetch("/api/health");if(!e)return;if(!t.ok)return void o("error");let a=await t.json();r(a),o(a.connected?"connected":"disconnected")}catch{e&&o("error")}}t();let a=setInterval(t,n.UI_POLL_DB_HEALTH_MS);return()=>{e=!1,clearInterval(a)}},[]);let l={loading:"Checking database…",connected:`${e?.adapter??"db"} connected (${e?.latencyMs??"?"}ms)`,disconnected:`${e?.adapter??"db"} disconnected`,error:"Database unreachable"};return(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-xs text-[var(--muted-foreground)]",role:"status","aria-label":l[s],children:[(0,t.jsx)("span",{className:`w-2 h-2 rounded-full ${{loading:"bg-yellow-400",connected:"bg-green-500",disconnected:"bg-red-500",error:"bg-red-500"}[s]}`}),(0,t.jsx)("span",{className:"hidden sm:inline",children:l[s]})]})}function o({children:e,fullWidth:a=!1,noFooter:n=!1}){return(0,t.jsxs)("div",{className:"h-screen flex flex-col overflow-hidden",children:[(0,t.jsx)("nav",{className:"desktop-titlebar flex-shrink-0 border-b border-[var(--card-border)] bg-[var(--card-bg)]/80 backdrop-blur-lg z-30",children:(0,t.jsx)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:(0,t.jsxs)("div",{className:"flex items-center justify-between h-16",children:[(0,t.jsx)("div",{className:"flex items-center gap-8",children:(0,t.jsx)(r.default,{href:"/",className:"flex items-center gap-3 group",children:(0,t.jsxs)("svg",{width:"52",height:"31",viewBox:"0 0 64 38",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"transition-transform group-hover:scale-105",children:[(0,t.jsx)("rect",{width:"64",height:"38",rx:"8",fill:"black"}),(0,t.jsxs)("g",{stroke:"white",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M 14 27 C 17 16 19 10 20 8 C 21 12 23 20 25 27"}),(0,t.jsx)("path",{d:"M 16 20 C 19 19 21 21 23 20"}),(0,t.jsx)("path",{d:"M 40 13 C 35 10 30 13 30 19 C 30 25 34 28 38 27 C 40 26 40 22 40 20 L 36 20"}),(0,t.jsx)("path",{d:"M 46 11 C 48 16 51 22 54 27"}),(0,t.jsx)("path",{d:"M 54 11 C 52 16 49 22 46 27"})]})]})})}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(r.default,{href:"/",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Open Chat"}),(0,t.jsx)(r.default,{href:"/automations",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Automations"}),(0,t.jsx)(r.default,{href:"/skills",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Skills"}),(0,t.jsx)(r.default,{href:"/settings",className:"text-sm font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Settings"})]})]})})}),(0,t.jsx)("main",{className:`flex-1 min-h-0 flex flex-col ${a?"p-0":"p-4 sm:p-6 lg:p-8 overflow-y-auto"}`,children:e}),!n&&(0,t.jsx)("footer",{className:"flex-shrink-0 border-t border-[var(--card-border)] bg-[var(--card-bg)]/50 py-4",children:(0,t.jsxs)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 flex items-center justify-between text-xs text-[var(--muted-foreground)]",children:[(0,t.jsx)("span",{children:"AGX Board • Autonomous Agent Orchestration"}),(0,t.jsxs)("span",{className:"hidden sm:inline-flex items-center gap-3",children:[(0,t.jsx)(s,{}),(0,t.jsx)("span",{children:"Built with Next.js + Db"})]})]})})]})}e.s(["default",0,function(e){return(0,t.jsx)(a.Suspense,{fallback:(0,t.jsx)("div",{className:"h-screen flex items-center justify-center bg-[var(--background)]",children:(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"})}),children:(0,t.jsx)(o,{...e})})}],186710)},716859,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(522016),n=e.i(429056),s=e.i(55236),o=e.i(196630),l=e.i(640481),i=e.i(929870),c=e.i(794731),d=e.i(529471),u=e.i(797167),p=e.i(186710),f=e.i(208343),h=e.i(494999),m=e.i(524123);e.s(["default",0,function(){let{projects:e,isLoading:x,refetch:g,updateProject:j}=(0,m.useProjects)(),[y,v]=(0,r.useState)(null),[b,w]=(0,r.useState)(""),[k,N]=(0,r.useState)(!1),[_,C]=(0,r.useState)(null),[S,T]=(0,r.useState)(""),P=(0,r.useRef)(null),E=e.flatMap(e=>(e.repos??[]).map(t=>({repoId:t.id,name:t.name,path:t.path??"",git_url:t.git_url??"",notes:t.notes??"",projectId:e.id,projectName:e.name,projectSlug:e.slug}))),O=new Map;for(let t of e)O.set(t.id,{project:{id:t.id,name:t.name,slug:t.slug},repos:[]});for(let e of E)O.get(e.projectId).repos.push(e);let L=(0,r.useCallback)(()=>{let e=P.current;e&&(e.style.height="auto",e.style.height=`${e.scrollHeight}px`)},[]);(0,r.useEffect)(()=>{y&&P.current&&(P.current.focus(),P.current.setSelectionRange(P.current.value.length,P.current.value.length),L())},[y,L]);let M=()=>{v(null),w("")},A=(0,r.useCallback)(async t=>{N(!0);try{let r=e.find(e=>e.id===t.projectId);if(!r)return;let a=(r.repos??[]).map(e=>({id:e.id,name:e.name,path:e.path??"",git_url:e.git_url??"",notes:e.id===t.repoId?b:e.notes??""}));await j(t.projectId,{repos:a}),v(null),w("")}catch(e){console.error("Failed to update notes:",e)}finally{N(!1)}},[e,b,j]),I=(0,r.useCallback)(async t=>{let r=e.find(e=>e.id===t.projectId);if(!r)return;let a=(r.repos??[]).filter(e=>e.id!==t.repoId).map(e=>({id:e.id,name:e.name,path:e.path??"",git_url:e.git_url??"",notes:e.notes??""}));await j(t.projectId,{repos:a})},[e,j]),$=(0,r.useCallback)(async(t,r)=>{let a=e.find(e=>e.id===t);if(!a)return;let n=S.trim()||r.split("/").filter(Boolean).pop()||"folder",s=(a.repos??[]).map(e=>({id:e.id,name:e.name,path:e.path??"",git_url:e.git_url??"",notes:e.notes??""}));await j(t,{repos:[...s,{name:n,path:r}]}),C(null),T("")},[e,S,j]);return(0,t.jsx)(p.default,{children:(0,t.jsxs)("div",{className:"max-w-5xl mx-auto w-full flex flex-col min-h-full",children:[(0,t.jsxs)("header",{className:"flex items-center gap-4 py-8",children:[(0,t.jsx)(a.default,{href:"/",className:"p-2 rounded-lg border border-[var(--card-border)] bg-[var(--card-bg)] hover:border-[var(--primary)] transition-all",children:(0,t.jsx)(n.ArrowLeft,{size:16})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-3xl font-bold tracking-tight",children:"Folders"}),(0,t.jsx)("p",{className:"text-[var(--muted-foreground)] mt-1",children:"All folder paths across your projects."})]})]}),x?(0,t.jsx)("div",{className:"flex-1 flex items-center justify-center py-20",children:(0,t.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,t.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"}),(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)] animate-pulse",children:"Loading folders..."})]})}):0===e.length?(0,t.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center py-20 animate-fade-in",children:[(0,t.jsx)("div",{className:"w-24 h-24 rounded-3xl bg-[var(--card-bg)] border border-[var(--card-border)] flex items-center justify-center text-4xl mb-6 shadow-xl",children:(0,t.jsx)(s.Folder,{size:40,className:"text-[var(--muted-foreground)]"})}),(0,t.jsx)("h2",{className:"text-2xl font-bold mb-2",children:"No projects yet"}),(0,t.jsx)("p",{className:"text-[var(--muted-foreground)] text-center max-w-sm mb-8 leading-relaxed",children:"Create a project first, then add folders to it."}),(0,t.jsx)(a.default,{href:"/projects",className:"btn-primary px-8 py-3 text-lg shadow-xl shadow-[var(--primary)]/20",children:"Go to Projects"})]}):(0,t.jsx)("div",{className:"space-y-8 pb-20",children:Array.from(O.values()).map(({project:e,repos:r})=>(0,t.jsxs)("section",{children:[(0,t.jsx)("div",{className:"flex items-center gap-2 mb-3",children:(0,t.jsx)(a.default,{href:`/projects/${e.slug}`,className:"text-sm font-semibold text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors uppercase tracking-wide",children:e.name})}),(0,t.jsxs)("div",{className:"space-y-2",children:[r.map(e=>{let r=y===e.repoId;return(0,t.jsx)("div",{className:"group rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4 transition-all hover:border-[var(--card-border-hover,var(--card-border))]",children:(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("div",{className:"mt-0.5 flex-shrink-0 text-[var(--muted-foreground)]",children:e.git_url?(0,t.jsx)(o.FolderGit2,{size:16}):(0,t.jsx)(s.Folder,{size:16})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("button",{type:"button",onClick:()=>void I(e),className:"float-right ml-2 p-1 rounded-md text-[var(--muted-foreground)] opacity-0 group-hover:opacity-100 hover:text-red-400 hover:bg-red-400/10 transition-all","aria-label":"Remove folder",title:"Remove folder",children:(0,t.jsx)(c.Trash2,{size:14})}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"font-medium text-sm truncate",children:e.name||e.path}),e.name&&e.path&&(0,t.jsx)("span",{className:"text-xs text-[var(--muted-foreground)] truncate font-mono",children:e.path})]}),e.git_url&&(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5 font-mono truncate",children:e.git_url}),r?(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsx)("textarea",{ref:P,value:b,onChange:e=>{w(e.target.value),L()},onKeyDown:t=>{"Enter"===t.key&&(t.metaKey||t.ctrlKey)?(t.preventDefault(),A(e)):"Escape"===t.key&&M()},placeholder:"What is this folder about? (Markdown supported)",rows:1,className:"w-full rounded-lg border border-[var(--card-border)] bg-[var(--background)] px-3 py-2 text-sm font-mono focus:border-[var(--primary)] focus:outline-none resize-none overflow-hidden"}),(0,t.jsxs)("div",{className:"flex items-center gap-2 mt-1.5",children:[(0,t.jsxs)("button",{onClick:()=>void A(e),disabled:k,className:"inline-flex items-center gap-1 px-2.5 py-1 rounded-md text-xs font-medium bg-[var(--primary)] text-white hover:opacity-90 transition-opacity disabled:opacity-50",children:[(0,t.jsx)(d.Check,{size:12}),k?"Saving...":"Save"]}),(0,t.jsxs)("button",{onClick:M,className:"inline-flex items-center gap-1 px-2.5 py-1 rounded-md text-xs font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:[(0,t.jsx)(u.X,{size:12}),"Cancel"]}),(0,t.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)] ml-auto",children:"Cmd+Enter to save"})]})]}):(0,t.jsx)("div",{className:"group/notes mt-1 cursor-pointer",onClick:()=>{v(e.repoId),w(e.notes)},children:e.notes?(0,t.jsxs)("div",{className:"text-sm text-[var(--muted-foreground)] leading-relaxed relative",children:[(0,t.jsx)(f.Markdown,{content:e.notes}),(0,t.jsx)(l.Pencil,{size:11,className:"absolute top-0 right-0 opacity-0 group-hover/notes:opacity-60 transition-opacity"})]}):(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] opacity-0 group-hover:opacity-60 transition-opacity italic",children:"Click to add notes..."})})]})]})},e.repoId)}),_===e.id?(0,t.jsxs)("div",{className:"mt-3 space-y-2",children:[(0,t.jsx)("input",{type:"text",value:S,onChange:e=>T(e.target.value),placeholder:"Folder name (optional)",className:"w-full rounded-lg border border-[var(--card-border)] bg-[var(--background)] px-3 py-2 text-sm focus:border-[var(--primary)] focus:outline-none"}),(0,t.jsx)(h.default,{initialPath:"",onSelect:t=>void $(e.id,t),onCancel:()=>{C(null),T("")}})]}):(0,t.jsxs)("button",{type:"button",onClick:()=>C(e.id),className:"mt-3 inline-flex items-center gap-1.5 text-xs font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:[(0,t.jsx)(i.Plus,{size:14}),"Add folder"]})]})]},e.id))})]})})}])}]);
@@ -4,6 +4,6 @@ ${e.content}
4
4
 
5
5
  ${t.join("\n\n")}
6
6
 
7
- `},"extractMentionedLinearIssueIds",0,function(e){let t=new Set;return!function e(t,r){if(t)for(let a of t)r(a),e(a.content,r)}(e.content,e=>{if("linearIssueMention"!==e.type)return;let r="string"==typeof e.attrs?.id?e.attrs.id.trim():"";r&&t.add(r)}),Array.from(t)}],113531);var j=e.i(10552);let w=j.Node.create({name:"participantMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},name:{default:""},mode:{default:"sequential"},kind:{default:"agent"}}),parseHTML:()=>[{tag:"span[data-participant-mention]"}],renderHTML({node:e,HTMLAttributes:t}){let r="parallel"===e.attrs.mode;return["span",(0,j.mergeAttributes)(t,{"data-participant-mention":"","data-id":e.attrs.id,"data-mode":e.attrs.mode,class:r?"composer-pill composer-pill--participant-parallel":"composer-pill composer-pill--participant",contenteditable:"false"}),`${r?"@@":"@"}${e.attrs.name}`]}}),k=j.Node.create({name:"projectMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},slug:{default:""},name:{default:""}}),parseHTML:()=>[{tag:"span[data-project-mention]"}],renderHTML:({node:e,HTMLAttributes:t})=>["span",(0,j.mergeAttributes)(t,{"data-project-mention":"","data-id":e.attrs.id,"data-slug":e.attrs.slug,class:"composer-pill composer-pill--project",contenteditable:"false"}),`@${e.attrs.name}`]}),C=j.Node.create({name:"fileMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({path:{default:""},relativePath:{default:""},trigger:{default:"@/"},attachMode:{default:void 0}}),parseHTML:()=>[{tag:"span[data-file-mention]"}],renderHTML({node:e,HTMLAttributes:t}){let r=e.attrs.relativePath||e.attrs.path;return["span",(0,j.mergeAttributes)(t,{"data-file-mention":"","data-path":e.attrs.path,class:"composer-pill composer-pill--file",contenteditable:"false"}),`@${r}`]}}),N=j.Node.create({name:"threadMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({threadId:{default:""},title:{default:""}}),parseHTML:()=>[{tag:"span[data-thread-mention]"}],renderHTML:({node:e,HTMLAttributes:t})=>["span",(0,j.mergeAttributes)(t,{"data-thread-mention":"","data-thread-id":e.attrs.threadId,class:"composer-pill composer-pill--thread",contenteditable:"false"}),`#${e.attrs.title}`]}),$=j.Node.create({name:"linearIssueMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},identifier:{default:""},title:{default:""},status:{default:""},url:{default:null}}),parseHTML:()=>[{tag:"span[data-linear-issue-mention]"}],renderHTML:({node:e,HTMLAttributes:t})=>["span",(0,j.mergeAttributes)(t,{"data-linear-issue-mention":"","data-id":e.attrs.id,"data-identifier":e.attrs.identifier,class:"composer-pill composer-pill--linear-issue",contenteditable:"false"}),`@${e.attrs.identifier}`]});e.s(["FileMention",0,C,"LinearIssueMention",0,$,"ParticipantMention",0,w,"ProjectMention",0,k,"ThreadMention",0,N],834086);function M(e){switch(e.type.name){case"participantMention":{let t="parallel"===e.attrs.mode?"@@":"@";return`${t}${e.attrs.name}`}case"projectMention":{let t=String(e.attrs.slug??"").trim();if(t)return`@~project:${t}`;return e.attrs.name?`@${e.attrs.name}`:""}case"fileMention":{let t=e.attrs.relativePath||e.attrs.path;return`@${t}`}case"threadMention":{let t=(e.attrs.threadId??"").slice(0,8);return`@#${t}`}case"linearIssueMention":{let t=String(e.attrs.identifier??"").trim();return t?`@${t}`:""}default:return""}}e.s(["serializeToPlainText",0,function(e){if(!e.content)return"";let t=[];for(let r of e.content)r.type,t.push(function(e){if(!e.content)return"";let t="";for(let r of e.content)switch(r.type){case"text":t+=r.text??"";break;case"participantMention":{let e=r.attrs??{},a="parallel"===e.mode?"@@":"@";t+=`${a}${e.name}`;break}case"projectMention":{let e=r.attrs??{},a=String(e.slug??"").trim();a?t+=`@~project:${a}`:e.name&&(t+=`@${e.name}`);break}case"fileMention":{let e=r.attrs??{},a=e.relativePath||e.path;t+=`@${a}`;break}case"threadMention":{let e=((r.attrs??{}).threadId??"").slice(0,8);t+=`@#${e}`;break}case"linearIssueMention":{let e=String((r.attrs??{}).identifier??"").trim();e&&(t+=`@${e}`);break}default:"hardBreak"===r.type&&(t+="\n")}return t}(r));return t.join("\n")}],239545),e.s(["getCurrentParagraphText",0,function(e){let{state:t}=e,{$from:r}=t.selection,a=r.depth,n=-1;for(let e=a;e>=0;e--)if("paragraph"===r.node(e).type.name){n=e;break}if(-1===n)return null;let s=r.node(n),l=r.start(n),i=r.pos-l,o="",d=0,u=!1;return s.forEach((e,t)=>{let r=t+e.nodeSize;if(e.isText){let a=e.text??"";!u&&i>=t&&i<=r&&(d=o.length+(i-t),u=!0),o+=a}else if(e.isAtom){let a=M(e);!u&&i>=t&&i<=r&&(d=o.length+a.length,u=!0),o+=a}}),u||(d=o.length),{text:o,cursorPos:d,blockStart:l}},"plainTextRangeToPos",0,function(e,t,r,a){let{state:n}=e,s=n.doc.resolve(t),l=s.depth,i=null,o=t;for(let e=l;e>=0;e--){let t=s.node(e);if("paragraph"===t.type.name){i=t,o=s.start(e);break}}i||(i=n.doc.resolve(t).parent,o=t);let d=0,u=null,c=null;return(i.forEach((e,t)=>{let n=o+t,s=e.nodeSize;if(e.isText){let t=e.text??"",s=d+t.length;null===u&&r>=d&&r<=s&&(u=n+(r-d)),null===c&&a>=d&&a<=s&&(c=n+(a-d)),d=s}else if(e.isAtom){let t=M(e),l=d+t.length;null===u&&r>=d&&r<=l&&(u=n),null===c&&a>=d&&a<=l&&(c=n+s),d=l}}),null===u&&r>=d&&(u=o+i.content.size),null===c&&a>=d&&(c=o+i.content.size),null===u||null===c)?null:{from:u,to:c}}],859198);var I=e.i(843476),S=e.i(363732);let P=(0,S.default)("folder-kanban",[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M12 10v2",key:"hh53o1"}],["path",{d:"M16 10v6",key:"1d6xys"}]]),A=(0,S.default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);var D=e.i(572665);e.s(["MentionPopover",0,function({isOpen:e,suggestions:r,activeIndex:a,listboxId:n,optionIdPrefix:s,onSelect:l}){let i=(0,t.useRef)([]);if((0,t.useEffect)(()=>{e&&i.current[a]?.scrollIntoView({block:"nearest"})},[a,e]),!e||0===r.length)return null;let o=new Set;return(0,I.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,I.jsx)("div",{role:"listbox",id:n,"aria-label":"Mention suggestions",className:"max-h-56 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:r.map((e,t)=>{let r=t===a,n="project-group"===e.kind?`project-group-${e.project.id}`:"project"===e.kind?`project-${e.project.id}`:"ticket"===e.kind?`ticket-${e.issue.id}`:e.participant.id,d=e.group,u=null;if(d&&!o.has(d)&&(o.add(d),u=(0,I.jsx)("div",{className:"px-3 py-1.5 text-[10px] font-bold uppercase tracking-wider text-[var(--muted-foreground)] bg-[var(--app-shell-subtle)] border-t border-[var(--border)] first:border-t-0",children:d})),"project-group"===e.kind)return(0,I.jsxs)("div",{children:[u,(0,I.jsx)("button",{type:"button",role:"option",id:`${s}-${n}`,"aria-selected":r,ref:e=>{i.current[t]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:e=>{e.preventDefault()},onClick:()=>l(e),children:(0,I.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,I.jsx)(D.Users,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,I.jsx)("span",{className:"font-medium",children:e.project.name}),(0,I.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[e.project.agents.length," agent",1!==e.project.agents.length?"s":""]})]})})]},n);if("project"===e.kind)return(0,I.jsxs)("div",{children:[u,(0,I.jsx)("button",{type:"button",role:"option",id:`${s}-${n}`,"aria-selected":r,ref:e=>{i.current[t]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:e=>{e.preventDefault()},onClick:()=>l(e),children:(0,I.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,I.jsx)(P,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,I.jsx)("span",{className:"font-medium",children:e.project.name}),(0,I.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:e.project.slug})]})})]},n);if("ticket"===e.kind)return(0,I.jsxs)("div",{children:[u,(0,I.jsx)("button",{type:"button",role:"option",id:`${s}-${n}`,"aria-selected":r,ref:e=>{i.current[t]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:e=>{e.preventDefault()},onClick:()=>l(e),children:(0,I.jsxs)("span",{className:"flex items-start gap-2",children:[(0,I.jsx)(A,{className:"mt-0.5 h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,I.jsxs)("span",{className:"min-w-0",children:[(0,I.jsxs)("span",{className:"block font-medium",children:[e.issue.identifier,(0,I.jsx)("span",{className:"ml-2 text-xs text-[var(--muted-foreground)]",children:e.issue.status})]}),(0,I.jsx)("span",{className:"block truncate text-xs text-[var(--muted-foreground)]",children:e.issue.title})]})]})})]},n);let c=e.participant;return(0,I.jsxs)("div",{children:[u,(0,I.jsx)("button",{type:"button",role:"option",id:`${s}-${c.id}`,"aria-selected":r,ref:e=>{i.current[t]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}${d?" pl-6":""}`,onMouseDown:e=>{e.preventDefault()},onClick:()=>l(e),children:(0,I.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,I.jsx)("span",{className:"h-2.5 w-2.5 rounded-full",style:{backgroundColor:c.color},"aria-hidden":!0}),(0,I.jsx)("span",{className:"font-medium",children:c.name}),"all"===c.id?(0,I.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"All participants"}):c.model&&(0,I.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:c.model})]})})]},n)})})})}],966308),e.s(["CommandPopover",0,function({isOpen:e,commands:r,activeIndex:a,listboxId:n,optionIdPrefix:s,onSelect:l}){let i=(0,t.useRef)([]);return((0,t.useEffect)(()=>{e&&i.current[a]?.scrollIntoView({block:"nearest"})},[a,e]),e&&0!==r.length)?(0,I.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,I.jsx)("div",{role:"listbox",id:n,"aria-label":"Command suggestions",className:"max-h-56 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:r.map((e,t)=>{let r=t===a;return(0,I.jsx)("button",{type:"button",role:"option",id:`${s}-${e.name.slice(1)}`,"aria-selected":r,ref:e=>{i.current[t]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:e=>e.preventDefault(),onClick:()=>l(e),children:(0,I.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,I.jsx)("span",{className:"font-medium font-mono",children:e.name}),e.aliases&&e.aliases.length>0&&(0,I.jsxs)("span",{className:"text-xs text-[var(--app-shell-soft-text)] font-mono",children:["(",e.aliases.join(", "),")"]}),(0,I.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:e.description})]})},e.name)})})}):null}],201196);var T=e.i(906724),L=e.i(741746);let F=(0,S.default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);var z=e.i(55236),E=e.i(538292);function O({suggestion:e,isActive:t,optionId:r,onSelect:a,onAttachContents:n,itemRef:s}){let l="folder"===e.type,i="contents"===e.attachMode,o=function(e){if(!e)return null;let t=Math.floor((Date.now()-e)/864e5);return 0===t?"Today":1===t?"Yesterday":t<7?`${t}d ago`:t<30?`${Math.floor(t/7)}w ago`:t<365?`${Math.floor(t/30)}mo ago`:`${Math.floor(t/365)}y ago`}(e.modifiedAt),d=e.relativePath??e.path;return(0,I.jsxs)("div",{className:`flex items-center gap-2 px-3 py-2 text-sm transition-colors duration-200 ${t?"bg-[var(--primary-muted)]":"hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,I.jsx)("span",{className:"shrink-0 text-[var(--muted-foreground)]","aria-hidden":!0,children:l?t?(0,I.jsx)(E.FolderOpen,{className:"h-4 w-4 text-amber-500"}):(0,I.jsx)(z.Folder,{className:"h-4 w-4 text-amber-400"}):(0,I.jsx)(F,{className:"h-4 w-4"})}),(0,I.jsxs)("button",{type:"button",role:"option",id:r,"aria-selected":t,ref:s,className:"min-w-0 flex-1 text-left",onMouseDown:e=>e.preventDefault(),onClick:()=>a(e),tabIndex:-1,children:[(0,I.jsxs)("span",{className:"flex items-baseline gap-2",children:[(0,I.jsx)("span",{className:"block truncate font-mono text-xs text-[var(--foreground)]",children:d}),o&&(0,I.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:o})]}),l&&e.manifest&&(0,I.jsxs)("span",{className:"block text-xs text-[var(--muted-foreground)]",children:[e.manifest.childCount," items ·"," ",e.manifest.sizeSummary,i?(0,I.jsx)("span",{className:"ml-1 font-medium text-[var(--primary)]",children:"full tree"}):(0,I.jsx)("span",{className:"ml-1 text-[var(--muted-foreground)]",children:"manifest"})]})]}),l&&!i&&(0,I.jsx)("button",{type:"button",className:"shrink-0 rounded px-1.5 py-0.5 text-xs text-[var(--muted-foreground)] hover:bg-[var(--muted)] hover:text-[var(--foreground)] transition-colors duration-200",title:"Attach full directory contents instead of manifest","aria-label":`Attach full contents of ${d}`,onMouseDown:e=>e.preventDefault(),onClick:()=>n(e),tabIndex:-1,children:"Attach contents"}),l&&i&&(0,I.jsx)("span",{className:"shrink-0 rounded bg-[var(--primary-muted)] px-1.5 py-0.5 text-xs font-medium text-[var(--primary)]",children:"full tree"})]})}var R=e.i(587414);e.s(["FileMentionPopover",0,function({isOpen:e,suggestions:r,activeIndex:a,isLoading:n,error:s,listboxId:l,optionIdPrefix:i,onSelect:o,onAttachContents:d}){let u=(0,t.useRef)([]),c=(0,t.useRef)(null),[p,m]=(0,t.useState)(!1);if((0,t.useEffect)(()=>{e&&u.current[a]?.scrollIntoView({block:"nearest"})},[a,e]),(0,t.useEffect)(()=>{e&&c.current&&m(c.current.getBoundingClientRect().top<280)},[e]),!e)return null;let f=r.length>0?`${i}-${a}`:void 0;return(0,I.jsx)("div",{ref:c,className:`${p?"absolute left-0 right-0 top-full mt-2 z-20":"absolute left-0 right-0 bottom-full mb-3 z-20"} ${R.default.popover}`,children:(0,I.jsxs)("div",{role:"listbox",id:l,"aria-label":"File suggestions","aria-activedescendant":f,className:"max-h-64 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:[s&&!n&&(0,I.jsxs)("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-red-500",role:"alert",children:[(0,I.jsx)(L.AlertCircle,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),(0,I.jsx)("span",{children:s})]}),!s&&n&&0===r.length&&(0,I.jsxs)("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-[var(--muted-foreground)]","aria-live":"polite","aria-label":"Searching for files",children:[(0,I.jsx)(T.Loader2,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}),(0,I.jsx)("span",{children:"Searching…"})]}),!s&&!n&&0===r.length&&(0,I.jsx)("div",{className:"px-3 py-3 text-sm text-[var(--muted-foreground)]","aria-live":"polite",children:"No results"}),!s&&n&&r.length>0&&(0,I.jsxs)("div",{className:"flex items-center gap-1.5 px-3 py-1 text-xs text-[var(--muted-foreground)] border-b border-[var(--border)]",children:[(0,I.jsx)(T.Loader2,{className:"h-3 w-3 animate-spin","aria-hidden":!0}),(0,I.jsx)("span",{"aria-live":"polite","aria-label":"Updating results",children:"Updating…"})]}),r.length>0&&r.map((e,t)=>(0,I.jsx)(O,{suggestion:e,isActive:t===a,optionId:`${i}-${t}`,onSelect:o,onAttachContents:d,itemRef:e=>{u.current[t]=e}},e.path))]})})}],711989);var U=e.i(597628),W=e.i(580873);e.s(["ThreadMentionPopover",0,function({isOpen:e,suggestions:t,activeIndex:r,listboxId:a,optionIdPrefix:n,onSelect:s}){return e&&0!==t.length?(0,I.jsxs)("div",{className:"absolute bottom-full left-0 mb-2 w-80 bg-[var(--app-shell-elevated)] rounded-xl shadow-xl border border-[var(--app-shell-border)] overflow-hidden z-50 animate-in fade-in zoom-in-95 duration-100",role:"listbox",id:a,children:[(0,I.jsx)("div",{className:"px-3 py-2 bg-[var(--app-shell-subtle)] border-b border-[var(--app-shell-border)] text-[11px] font-bold text-[var(--app-shell-muted)] uppercase tracking-wider",children:"Reference Discussion"}),(0,I.jsx)("div",{className:"max-h-64 overflow-y-auto p-1",children:t.map((e,t)=>{let a=t===r;return(0,I.jsxs)("button",{role:"option",id:`${n}-${t}`,"aria-selected":a,onClick:()=>s(e),className:`w-full text-left px-3 py-2.5 rounded-lg flex items-start gap-3 transition-colors ${a?"bg-[var(--primary-muted)]":"hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,I.jsx)("div",{className:`mt-0.5 p-1.5 rounded-md ${a?"bg-[var(--primary-muted)] text-[var(--primary)]":"bg-[var(--muted)] text-[var(--muted-foreground)]"}`,children:(0,I.jsx)(U.MessageSquare,{size:14,strokeWidth:2.5})}),(0,I.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,I.jsx)("div",{className:`text-sm font-semibold truncate ${a?"text-[var(--primary)]":"text-[var(--foreground)]"}`,children:e.title}),(0,I.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,I.jsxs)("span",{className:`text-xs ${a?"text-[var(--primary)]":"text-[var(--muted-foreground)]"}`,children:[e.replies.length," replies"]}),(0,I.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"•"}),(0,I.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] flex items-center gap-1",children:[(0,I.jsx)(W.Clock,{size:10}),function(e){if(!e)return"";let t=Math.floor((Date.now()-e)/1e3);if(t<60)return"just now";let r=Math.floor(t/60);if(r<60)return`${r}m`;let a=Math.floor(r/60);return a<24?`${a}h`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(e)}(e.lastActivityAt)]})]})]})]},e.rootMessageId)})})]}):null}],924441);var q=e.i(797167),H=e.i(203096),B=e.i(575479);let _=(0,S.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);e.s(["AttachmentTray",0,function({attachments:e,onRemove:t,onRetry:r}){return 0===e.length?null:(0,I.jsx)("div",{className:"flex flex-wrap gap-2 px-1 pb-2",children:e.map(e=>{var a;let n=e.mimeType.startsWith("image/"),s="failed"===e.status,l="uploading"===e.status;return(0,I.jsxs)("div",{className:`relative group flex items-center gap-2 rounded-lg border px-2.5 py-1.5 text-xs transition-all ${s?"border-red-200 bg-red-50 text-red-700":"border-[var(--border)] bg-[var(--app-shell-subtle)] text-[var(--muted-foreground)]"}`,children:[n&&e.previewUrl?(0,I.jsx)("img",{src:e.previewUrl,alt:e.filename,className:"w-8 h-8 rounded object-cover shrink-0"}):(0,I.jsx)("div",{className:"w-8 h-8 rounded bg-[var(--muted)] flex items-center justify-center shrink-0",children:n?(0,I.jsx)(_,{className:"w-4 h-4 text-[var(--muted-foreground)]"}):(0,I.jsx)(B.FileText,{className:"w-4 h-4 text-[var(--muted-foreground)]"})}),(0,I.jsxs)("div",{className:"min-w-0 max-w-[120px]",children:[(0,I.jsx)("div",{className:"truncate font-medium",children:e.filename}),s&&e.error?(0,I.jsx)("div",{className:"truncate text-[10px] text-red-500",children:e.error}):(0,I.jsx)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:(a=e.size)<1024?`${a}B`:a<1048576?`${(a/1024).toFixed(0)}KB`:`${(a/1048576).toFixed(1)}MB`})]}),l&&(0,I.jsx)("div",{className:"absolute bottom-0 left-0 right-0 h-0.5 bg-[var(--muted)] rounded-b-lg overflow-hidden",children:(0,I.jsx)("div",{className:"h-full bg-blue-500 transition-all",style:{width:`${e.progress}%`}})}),(0,I.jsxs)("div",{className:"flex items-center gap-0.5 shrink-0",children:[s&&(0,I.jsx)("button",{type:"button",onClick:()=>r(e.id),className:"p-0.5 rounded hover:bg-red-100 transition-colors",title:"Retry upload",children:(0,I.jsx)(H.RefreshCw,{className:"w-3 h-3"})}),(0,I.jsx)("button",{type:"button",onClick:()=>t(e.id),className:"p-0.5 rounded hover:bg-[var(--muted)] transition-colors",title:"Remove",children:(0,I.jsx)(q.X,{className:"w-3 h-3"})})]})]},e.id)})})}],951579),e.s(["ComposerDropZone",0,function({onDrop:e,children:r}){let[a,n]=(0,t.useState)(!1),s={current:0},l=(0,t.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),s.current++,e.dataTransfer.types.includes("Files")&&n(!0)},[]),i=(0,t.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),o=(0,t.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),s.current--,0===s.current&&n(!1)},[]),d=(0,t.useCallback)(t=>{t.preventDefault(),t.stopPropagation(),s.current=0,n(!1),t.dataTransfer.files.length>0&&e(t.dataTransfer.files)},[e]);return(0,I.jsxs)("div",{className:"relative",onDragEnter:l,onDragOver:i,onDragLeave:o,onDrop:d,children:[r,a&&(0,I.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center rounded-lg border-2 border-dashed border-blue-400 bg-blue-50/80 pointer-events-none",children:(0,I.jsx)("span",{className:"text-sm font-medium text-blue-600",children:"Drop files to attach"})})]})}],196422);let K=(0,S.default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);e.s(["Paperclip",0,K],818656)},984242,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(494499),n=e.i(256378),s=e.i(555841),l=e.i(97486),i=e.i(715742),o=e.i(48977),d=e.i(534957),u=e.i(167909),c=e.i(973949),p=e.i(518519),m=e.i(598485),f=e.i(8596),h=e.i(113531),x=e.i(990933),g=e.i(755809),v=e.i(834086),b=e.i(239545),y=e.i(859198),j=e.i(966308),w=e.i(201196),k=e.i(711989),C=e.i(924441),N=e.i(951579),$=e.i(196422),M=e.i(818656),I=e.i(999824),S=e.i(196630),P=e.i(498027),A=e.i(797167);function D(e,t,r,a,n){if(!e)return;let s=(0,y.plainTextRangeToPos)(e,t,r,a);s&&e.chain().focus().deleteRange(s).insertContent(n).insertContent(" ").run()}e.s(["Composer",0,function({onSend:e,onStop:T,loading:L,activityStatus:F,sendInterruptsBusy:z=!1,participants:E,projects:O=[],projectGroups:R=[],projectSlug:U,messages:W=[],commands:q,placeholder:H="Message — @name to mention, /search, /summarize",workspaceRoots:B=[],onConfigureRoots:_,pendingThreadInsert:K,onClearPendingThread:J,autoMode:V=!1,onAutoModeChange:Z,repos:X=[],selectedRepoIds:G,onRepoSelectionChange:Q,initialPinnedParticipantId:Y}){let ee,et,er,ea=F??(L?"working":"ready"),en="ready"!==ea,[es,el]=(0,r.useState)(Y??null),[ei,eo]=(0,r.useState)(new Set),ed=G??ei,eu=(0,r.useRef)(ed);eu.current=ed;let ec=(0,r.useCallback)(e=>{let t="function"==typeof e?e(eu.current):e;Q?Q(t):eo(t)},[Q]),[ep,em]=(0,r.useState)(!1),ef=(0,r.useRef)(null),eh=(0,r.useRef)(null),ex=(0,r.useRef)(!1),eg=(0,r.useCallback)(()=>{eh.current?.click()},[]),[ev,eb]=(0,r.useState)([]),{issues:ey}=(0,m.useLinearIssueMentions)({projectSlug:U}),ej=(0,l.useMentionAutocomplete)({participants:E,projectGroups:R,projects:O,linearIssues:ey,maxSuggestions:8}),ew=(0,i.useCommandAutocomplete)({commands:q,maxSuggestions:6}),ek=(0,d.useFileMention)({maxSuggestions:8}),eC=(0,u.useThreadMention)({messages:W,maxSuggestions:8}),eN=(0,o.useAttachments)(),e$=(0,c.useComposerAttachments)(),eM=(0,p.useComposerHistory)();(0,r.useEffect)(()=>{es&&!E.some(e=>e.id===es)&&el(null)},[E,es]),(0,r.useEffect)(()=>{if(!ep)return;let e=e=>{ef.current&&!ef.current.contains(e.target)&&em(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[ep]),(0,r.useEffect)(()=>{if(null!=G||0===ei.size)return;let e=new Set(X.map(e=>e.id)),t=new Set([...ei].filter(t=>e.has(t)));t.size<ei.size&&eo(t)},[X,G,ei]);let eI=(0,a.useEditor)({immediatelyRender:!1,extensions:[n.default.configure({heading:!1,bulletList:!1,orderedList:!1,listItem:!1,blockquote:!1,codeBlock:!1,code:!1,horizontalRule:!1,hardBreak:{keepMarks:!1}}),s.default.configure({placeholder:H}),v.ParticipantMention,v.ProjectMention,v.FileMention,v.ThreadMention,v.LinearIssueMention],editorProps:{attributes:{class:"composer-editor",role:"combobox","aria-autocomplete":"list"},handleDOMEvents:{compositionstart:()=>(ex.current=!0,ej.startComposition(),!1),compositionend:(e,t)=>(ex.current=!1,setTimeout(()=>{if(!eI)return;let e=(0,y.getCurrentParagraphText)(eI);e&&ej.endComposition(e.text,e.cursorPos)},0),!1)},handleKeyDown:(e,t)=>{if("Tab"===t.key||"Enter"===t.key&&!t.shiftKey){if(ew.isOpen&&ew.filteredCommands.length>0){t.preventDefault();let e=ew.filteredCommands[ew.activeIndex];return e&&eF(e),!0}if(ek.isOpen&&ek.suggestions.length>0){t.preventDefault();let e=ek.suggestions[ek.activeIndex];return e&&("folder"===e.type?eT(e):eD(e)),!0}if(eC.isOpen&&eC.suggestions.length>0){t.preventDefault();let e=eC.suggestions[eC.activeIndex];return e&&eL(e),!0}if(ej.isOpen&&ej.filteredSuggestions.length>0){t.preventDefault();let e=ej.filteredSuggestions[ej.activeIndex];return e&&eA(e),!0}}let r={key:t.key,preventDefault:()=>t.preventDefault()};if(ew.isOpen&&ew.handleKeyDown(r)||ek.isOpen&&ek.handleKeyDown(r)||eC.isOpen&&eC.handleKeyDown(r)||ej.handleKeyDown(r))return!0;if(("ArrowUp"===t.key||"ArrowDown"===t.key)&&!ej.isOpen&&!ew.isOpen&&!ek.isOpen&&!eC.isOpen){let e=(0,b.serializeToPlainText)(eI.getJSON()).trim(),{state:r}=eI.view,a="ArrowUp"===t.key,n=a?r.selection.from<=1:r.selection.to>=r.doc.content.size-1,s=eM.navigate(a?"up":"down",e,n);if(null!==s)return t.preventDefault(),eI.commands.setContent(s),eI.commands.focus("end"),!0}return"Enter"===t.key&&!t.shiftKey&&(t.preventDefault(),ez(),!0)}},onUpdate:({editor:e})=>{if(ex.current)return;-1!==eM.historyIndex&&eM.resetNavigation();let t=(0,y.getCurrentParagraphText)(e);t&&(ej.handleInput(t.text,t.cursorPos),ew.handleInput(t.text,t.cursorPos),ek.handleInput(t.text,t.cursorPos),eC.handleInput(t.text,t.cursorPos))},onBlur:()=>{ej.close(),ew.close(),ek.close(),eC.close()}});(0,r.useEffect)(()=>{if(!K||!eI)return;let{title:e,threadId:t,messages:r}=K;eI.chain().focus().insertContent({type:"threadMention",attrs:{threadId:t,title:e}}).insertContent(" ").run();let a=r[0];if(a){let n={rootMessageId:t,title:e,rootMessage:a,replies:r.slice(1),participantIds:[...new Set(r.map(e=>e.participantId||"user"))],lastActivityAt:Math.max(...r.map(e=>e.timestamp))};eC.exportDiscussion(n).then(e=>eb(t=>[...t,e])).catch(e=>console.error("Failed to export discussion for Add to chat:",e))}J?.()},[K]);let eS=(0,r.useCallback)(()=>{if(!eI)return;let e=(0,y.getCurrentParagraphText)(eI);e&&ej.handleInput(e.text,e.cursorPos)},[eI,ej]),eP=(0,r.useCallback)(e=>{let{clipboardData:t}=e,r=(0,g.getClipboardAttachmentFiles)(t);if(r.length>0){e.preventDefault(),e.stopPropagation(),eN.stageFiles(r);return}let a="u">typeof navigator?navigator.clipboard:void 0;(0,g.clipboardMayContainImageAttachments)(t)&&"function"==typeof a?.read&&(e.preventDefault(),e.stopPropagation(),(0,g.readClipboardAttachmentFiles)(t,a).then(e=>{e.length>0&&eN.stageFiles(e)}).catch(e=>{console.error("Failed to read pasted clipboard attachments:",e)}))},[eN]),eA=(0,r.useCallback)(e=>{if(!eI)return;let t=ej.selectSuggestion(e);if(!t)return;let r=(0,y.getCurrentParagraphText)(eI);if(!r)return;let a=t.text.startsWith("@@"),n="project-group"===e.kind?{type:"participantMention",attrs:{id:e.project.id,name:e.project.name,mode:a?"parallel":"sequential",kind:"project"}}:"project"===e.kind?{type:"projectMention",attrs:{id:e.project.id,slug:e.project.slug,name:e.project.name}}:"ticket"===e.kind?{type:"linearIssueMention",attrs:{id:e.issue.id,identifier:e.issue.identifier,title:e.issue.title,status:e.issue.status,url:e.issue.url}}:{type:"participantMention",attrs:{id:e.participant.id,name:e.participant.name,mode:a?"parallel":"sequential",kind:"agent"}};D(eI,r.blockStart,t.startIndex,t.endIndex,n),ej.close()},[eI,ej]),eD=(0,r.useCallback)(e=>{if(!eI)return;let t=ek.selectSuggestion(e);if(!t)return;let r=(0,y.getCurrentParagraphText)(eI);if(!r)return;let a={type:"fileMention",attrs:{path:e.path,relativePath:e.relativePath??e.path,trigger:ek.token?.trigger??"@/",attachMode:e.attachMode}};D(eI,r.blockStart,t.startIndex,t.endIndex,a),e$.addFilePath(e.path,e.relativePath??e.path,e.attachMode)},[eI,ek,e$]),eT=(0,r.useCallback)(e=>{if(!eI)return;let t=(0,y.getCurrentParagraphText)(eI);if(!t)return;let r=ek.drillDown(e);if(!r)return;let a=(0,y.plainTextRangeToPos)(eI,t.blockStart,r.startIndex,r.endIndex);a&&eI.chain().focus().deleteRange(a).insertContent(r.text).run()},[eI,ek]),eL=(0,r.useCallback)(async e=>{if(!eI)return;let t=eC.selectSuggestion(e);if(!t)return;let r=(0,y.getCurrentParagraphText)(eI);if(!r)return;let a={type:"threadMention",attrs:{threadId:e.rootMessageId,title:e.title}};D(eI,r.blockStart,t.startIndex,t.endIndex,a);try{let t=await eC.exportDiscussion(e);eb(e=>[...e,t])}catch(e){console.error("Failed to export discussion:",e)}},[eI,eC]),eF=(0,r.useCallback)(e=>{ew.selectCommand(e),eI&&eI.commands.clearContent()},[ew,eI]),ez=(0,r.useCallback)(async()=>{if(!eI)return;let t=eI.getJSON(),r=(0,b.serializeToPlainText)(t).trim();if(!r&&!eN.hasUploaded&&!e$.hasFilePaths||!eN.canSend)return;if(r){let e=q.find(e=>e.name===r||e.aliases?.some(e=>`/${e}`===r));if(e){e.execute(),eI.commands.clearContent(),ew.close(),ej.close();return}}let a=r||"(attached files)",n=[];if(ed.size>0){let e=X.filter(e=>ed.has(e.id));if(e.length>0){let t=e.map(e=>{let t=[e.name];return e.path&&t.push(`path: ${e.path}`),e.notes&&t.push(e.notes),`- ${t.join(" | ")}`}).join("\n");n.push(`Focused repos (the user is specifically talking about these repositories):
7
+ `},"extractMentionedLinearIssueIds",0,function(e){let t=new Set;return!function e(t,r){if(t)for(let a of t)r(a),e(a.content,r)}(e.content,e=>{if("linearIssueMention"!==e.type)return;let r="string"==typeof e.attrs?.id?e.attrs.id.trim():"";r&&t.add(r)}),Array.from(t)}],113531);var j=e.i(10552);let w=j.Node.create({name:"participantMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},name:{default:""},mode:{default:"sequential"},kind:{default:"agent"}}),parseHTML:()=>[{tag:"span[data-participant-mention]"}],renderHTML({node:e,HTMLAttributes:t}){let r="parallel"===e.attrs.mode;return["span",(0,j.mergeAttributes)(t,{"data-participant-mention":"","data-id":e.attrs.id,"data-mode":e.attrs.mode,class:r?"composer-pill composer-pill--participant-parallel":"composer-pill composer-pill--participant",contenteditable:"false"}),`${r?"@@":"@"}${e.attrs.name}`]}}),k=j.Node.create({name:"projectMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},slug:{default:""},name:{default:""}}),parseHTML:()=>[{tag:"span[data-project-mention]"}],renderHTML:({node:e,HTMLAttributes:t})=>["span",(0,j.mergeAttributes)(t,{"data-project-mention":"","data-id":e.attrs.id,"data-slug":e.attrs.slug,class:"composer-pill composer-pill--project",contenteditable:"false"}),`@${e.attrs.name}`]}),C=j.Node.create({name:"fileMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({path:{default:""},relativePath:{default:""},trigger:{default:"@/"},attachMode:{default:void 0}}),parseHTML:()=>[{tag:"span[data-file-mention]"}],renderHTML({node:e,HTMLAttributes:t}){let r=e.attrs.relativePath||e.attrs.path;return["span",(0,j.mergeAttributes)(t,{"data-file-mention":"","data-path":e.attrs.path,class:"composer-pill composer-pill--file",contenteditable:"false"}),`@${r}`]}}),N=j.Node.create({name:"threadMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({threadId:{default:""},title:{default:""}}),parseHTML:()=>[{tag:"span[data-thread-mention]"}],renderHTML:({node:e,HTMLAttributes:t})=>["span",(0,j.mergeAttributes)(t,{"data-thread-mention":"","data-thread-id":e.attrs.threadId,class:"composer-pill composer-pill--thread",contenteditable:"false"}),`#${e.attrs.title}`]}),$=j.Node.create({name:"linearIssueMention",group:"inline",inline:!0,atom:!0,addAttributes:()=>({id:{default:null},identifier:{default:""},title:{default:""},status:{default:""},url:{default:null}}),parseHTML:()=>[{tag:"span[data-linear-issue-mention]"}],renderHTML:({node:e,HTMLAttributes:t})=>["span",(0,j.mergeAttributes)(t,{"data-linear-issue-mention":"","data-id":e.attrs.id,"data-identifier":e.attrs.identifier,class:"composer-pill composer-pill--linear-issue",contenteditable:"false"}),`@${e.attrs.identifier}`]});e.s(["FileMention",0,C,"LinearIssueMention",0,$,"ParticipantMention",0,w,"ProjectMention",0,k,"ThreadMention",0,N],834086);function M(e){switch(e.type.name){case"participantMention":{let t="parallel"===e.attrs.mode?"@@":"@";return`${t}${e.attrs.name}`}case"projectMention":{let t=String(e.attrs.slug??"").trim();if(t)return`@~project:${t}`;return e.attrs.name?`@${e.attrs.name}`:""}case"fileMention":{let t=e.attrs.relativePath||e.attrs.path;return`@${t}`}case"threadMention":{let t=(e.attrs.threadId??"").slice(0,8);return`@#${t}`}case"linearIssueMention":{let t=String(e.attrs.identifier??"").trim();return t?`@${t}`:""}default:return""}}e.s(["serializeToPlainText",0,function(e){if(!e.content)return"";let t=[];for(let r of e.content)r.type,t.push(function(e){if(!e.content)return"";let t="";for(let r of e.content)switch(r.type){case"text":t+=r.text??"";break;case"participantMention":{let e=r.attrs??{},a="parallel"===e.mode?"@@":"@";t+=`${a}${e.name}`;break}case"projectMention":{let e=r.attrs??{},a=String(e.slug??"").trim();a?t+=`@~project:${a}`:e.name&&(t+=`@${e.name}`);break}case"fileMention":{let e=r.attrs??{},a=e.relativePath||e.path;t+=`@${a}`;break}case"threadMention":{let e=((r.attrs??{}).threadId??"").slice(0,8);t+=`@#${e}`;break}case"linearIssueMention":{let e=String((r.attrs??{}).identifier??"").trim();e&&(t+=`@${e}`);break}default:"hardBreak"===r.type&&(t+="\n")}return t}(r));return t.join("\n")}],239545),e.s(["getCurrentParagraphText",0,function(e){let{state:t}=e,{$from:r}=t.selection,a=r.depth,n=-1;for(let e=a;e>=0;e--)if("paragraph"===r.node(e).type.name){n=e;break}if(-1===n)return null;let s=r.node(n),l=r.start(n),i=r.pos-l,o="",d=0,u=!1;return s.forEach((e,t)=>{let r=t+e.nodeSize;if(e.isText){let a=e.text??"";!u&&i>=t&&i<=r&&(d=o.length+(i-t),u=!0),o+=a}else if(e.isAtom){let a=M(e);!u&&i>=t&&i<=r&&(d=o.length+a.length,u=!0),o+=a}}),u||(d=o.length),{text:o,cursorPos:d,blockStart:l}},"plainTextRangeToPos",0,function(e,t,r,a){let{state:n}=e,s=n.doc.resolve(t),l=s.depth,i=null,o=t;for(let e=l;e>=0;e--){let t=s.node(e);if("paragraph"===t.type.name){i=t,o=s.start(e);break}}i||(i=n.doc.resolve(t).parent,o=t);let d=0,u=null,c=null;return(i.forEach((e,t)=>{let n=o+t,s=e.nodeSize;if(e.isText){let t=e.text??"",s=d+t.length;null===u&&r>=d&&r<=s&&(u=n+(r-d)),null===c&&a>=d&&a<=s&&(c=n+(a-d)),d=s}else if(e.isAtom){let t=M(e),l=d+t.length;null===u&&r>=d&&r<=l&&(u=n),null===c&&a>=d&&a<=l&&(c=n+s),d=l}}),null===u&&r>=d&&(u=o+i.content.size),null===c&&a>=d&&(c=o+i.content.size),null===u||null===c)?null:{from:u,to:c}}],859198);var I=e.i(843476),S=e.i(363732);let P=(0,S.default)("folder-kanban",[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M12 10v2",key:"hh53o1"}],["path",{d:"M16 10v6",key:"1d6xys"}]]),A=(0,S.default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);var D=e.i(572665);e.s(["MentionPopover",0,function({isOpen:e,suggestions:r,activeIndex:a,listboxId:n,optionIdPrefix:s,onSelect:l}){let i=(0,t.useRef)([]);if((0,t.useEffect)(()=>{e&&i.current[a]?.scrollIntoView({block:"nearest"})},[a,e]),!e||0===r.length)return null;let o=new Set;return(0,I.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,I.jsx)("div",{role:"listbox",id:n,"aria-label":"Mention suggestions",className:"max-h-56 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:r.map((e,t)=>{let r=t===a,n="project-group"===e.kind?`project-group-${e.project.id}`:"project"===e.kind?`project-${e.project.id}`:"ticket"===e.kind?`ticket-${e.issue.id}`:e.participant.id,d=e.group,u=null;if(d&&!o.has(d)&&(o.add(d),u=(0,I.jsx)("div",{className:"px-3 py-1.5 text-[10px] font-bold uppercase tracking-wider text-[var(--muted-foreground)] bg-[var(--app-shell-subtle)] border-t border-[var(--border)] first:border-t-0",children:d})),"project-group"===e.kind)return(0,I.jsxs)("div",{children:[u,(0,I.jsx)("button",{type:"button",role:"option",id:`${s}-${n}`,"aria-selected":r,ref:e=>{i.current[t]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:e=>{e.preventDefault()},onClick:()=>l(e),children:(0,I.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,I.jsx)(D.Users,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,I.jsx)("span",{className:"font-medium",children:e.project.name}),(0,I.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[e.project.agents.length," agent",1!==e.project.agents.length?"s":""]})]})})]},n);if("project"===e.kind)return(0,I.jsxs)("div",{children:[u,(0,I.jsx)("button",{type:"button",role:"option",id:`${s}-${n}`,"aria-selected":r,ref:e=>{i.current[t]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:e=>{e.preventDefault()},onClick:()=>l(e),children:(0,I.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,I.jsx)(P,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,I.jsx)("span",{className:"font-medium",children:e.project.name}),(0,I.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:e.project.slug})]})})]},n);if("ticket"===e.kind)return(0,I.jsxs)("div",{children:[u,(0,I.jsx)("button",{type:"button",role:"option",id:`${s}-${n}`,"aria-selected":r,ref:e=>{i.current[t]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:e=>{e.preventDefault()},onClick:()=>l(e),children:(0,I.jsxs)("span",{className:"flex items-start gap-2",children:[(0,I.jsx)(A,{className:"mt-0.5 h-3.5 w-3.5 text-[var(--muted-foreground)]","aria-hidden":!0}),(0,I.jsxs)("span",{className:"min-w-0",children:[(0,I.jsxs)("span",{className:"block font-medium",children:[e.issue.identifier,(0,I.jsx)("span",{className:"ml-2 text-xs text-[var(--muted-foreground)]",children:e.issue.status})]}),(0,I.jsx)("span",{className:"block truncate text-xs text-[var(--muted-foreground)]",children:e.issue.title})]})]})})]},n);let c=e.participant;return(0,I.jsxs)("div",{children:[u,(0,I.jsx)("button",{type:"button",role:"option",id:`${s}-${c.id}`,"aria-selected":r,ref:e=>{i.current[t]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}${d?" pl-6":""}`,onMouseDown:e=>{e.preventDefault()},onClick:()=>l(e),children:(0,I.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,I.jsx)("span",{className:"h-2.5 w-2.5 rounded-full",style:{backgroundColor:c.color},"aria-hidden":!0}),(0,I.jsx)("span",{className:"font-medium",children:c.name}),"all"===c.id?(0,I.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"All participants"}):c.model&&(0,I.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:c.model})]})})]},n)})})})}],966308),e.s(["CommandPopover",0,function({isOpen:e,commands:r,activeIndex:a,listboxId:n,optionIdPrefix:s,onSelect:l}){let i=(0,t.useRef)([]);return((0,t.useEffect)(()=>{e&&i.current[a]?.scrollIntoView({block:"nearest"})},[a,e]),e&&0!==r.length)?(0,I.jsx)("div",{className:"absolute left-0 right-0 bottom-full mb-3 z-20",children:(0,I.jsx)("div",{role:"listbox",id:n,"aria-label":"Command suggestions",className:"max-h-56 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:r.map((e,t)=>{let r=t===a;return(0,I.jsx)("button",{type:"button",role:"option",id:`${s}-${e.name.slice(1)}`,"aria-selected":r,ref:e=>{i.current[t]=e},className:`w-full px-3 py-2 text-left text-sm transition-colors ${r?"bg-[var(--primary-muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onMouseDown:e=>e.preventDefault(),onClick:()=>l(e),children:(0,I.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,I.jsx)("span",{className:"font-medium font-mono",children:e.name}),e.aliases&&e.aliases.length>0&&(0,I.jsxs)("span",{className:"text-xs text-[var(--app-shell-soft-text)] font-mono",children:["(",e.aliases.join(", "),")"]}),(0,I.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:e.description})]})},e.name)})})}):null}],201196);var T=e.i(906724),L=e.i(741746);let F=(0,S.default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);var z=e.i(55236),E=e.i(538292);function O({suggestion:e,isActive:t,optionId:r,onSelect:a,onAttachContents:n,itemRef:s}){let l="folder"===e.type,i="contents"===e.attachMode,o=function(e){if(!e)return null;let t=Math.floor((Date.now()-e)/864e5);return 0===t?"Today":1===t?"Yesterday":t<7?`${t}d ago`:t<30?`${Math.floor(t/7)}w ago`:t<365?`${Math.floor(t/30)}mo ago`:`${Math.floor(t/365)}y ago`}(e.modifiedAt),d=e.relativePath??e.path;return(0,I.jsxs)("div",{className:`flex items-center gap-2 px-3 py-2 text-sm transition-colors duration-200 ${t?"bg-[var(--primary-muted)]":"hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,I.jsx)("span",{className:"shrink-0 text-[var(--muted-foreground)]","aria-hidden":!0,children:l?t?(0,I.jsx)(E.FolderOpen,{className:"h-4 w-4 text-amber-500"}):(0,I.jsx)(z.Folder,{className:"h-4 w-4 text-amber-400"}):(0,I.jsx)(F,{className:"h-4 w-4"})}),(0,I.jsxs)("button",{type:"button",role:"option",id:r,"aria-selected":t,ref:s,className:"min-w-0 flex-1 text-left",onMouseDown:e=>e.preventDefault(),onClick:()=>a(e),tabIndex:-1,children:[(0,I.jsxs)("span",{className:"flex items-baseline gap-2",children:[(0,I.jsx)("span",{className:"block truncate font-mono text-xs text-[var(--foreground)]",children:d}),o&&(0,I.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:o})]}),l&&e.manifest&&(0,I.jsxs)("span",{className:"block text-xs text-[var(--muted-foreground)]",children:[e.manifest.childCount," items ·"," ",e.manifest.sizeSummary,i?(0,I.jsx)("span",{className:"ml-1 font-medium text-[var(--primary)]",children:"full tree"}):(0,I.jsx)("span",{className:"ml-1 text-[var(--muted-foreground)]",children:"manifest"})]})]}),l&&!i&&(0,I.jsx)("button",{type:"button",className:"shrink-0 rounded px-1.5 py-0.5 text-xs text-[var(--muted-foreground)] hover:bg-[var(--muted)] hover:text-[var(--foreground)] transition-colors duration-200",title:"Attach full directory contents instead of manifest","aria-label":`Attach full contents of ${d}`,onMouseDown:e=>e.preventDefault(),onClick:()=>n(e),tabIndex:-1,children:"Attach contents"}),l&&i&&(0,I.jsx)("span",{className:"shrink-0 rounded bg-[var(--primary-muted)] px-1.5 py-0.5 text-xs font-medium text-[var(--primary)]",children:"full tree"})]})}var R=e.i(587414);e.s(["FileMentionPopover",0,function({isOpen:e,suggestions:r,activeIndex:a,isLoading:n,error:s,listboxId:l,optionIdPrefix:i,onSelect:o,onAttachContents:d}){let u=(0,t.useRef)([]),c=(0,t.useRef)(null),[p,m]=(0,t.useState)(!1);if((0,t.useEffect)(()=>{e&&u.current[a]?.scrollIntoView({block:"nearest"})},[a,e]),(0,t.useEffect)(()=>{e&&c.current&&m(c.current.getBoundingClientRect().top<280)},[e]),!e)return null;let f=r.length>0?`${i}-${a}`:void 0;return(0,I.jsx)("div",{ref:c,className:`${p?"absolute left-0 right-0 top-full mt-2 z-20":"absolute left-0 right-0 bottom-full mb-3 z-20"} ${R.default.popover}`,children:(0,I.jsxs)("div",{role:"listbox",id:l,"aria-label":"File suggestions","aria-activedescendant":f,className:"max-h-64 overflow-y-auto rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg",children:[s&&!n&&(0,I.jsxs)("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-red-500",role:"alert",children:[(0,I.jsx)(L.AlertCircle,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),(0,I.jsx)("span",{children:s})]}),!s&&n&&0===r.length&&(0,I.jsxs)("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-[var(--muted-foreground)]","aria-live":"polite","aria-label":"Searching for files",children:[(0,I.jsx)(T.Loader2,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}),(0,I.jsx)("span",{children:"Searching…"})]}),!s&&!n&&0===r.length&&(0,I.jsx)("div",{className:"px-3 py-3 text-sm text-[var(--muted-foreground)]","aria-live":"polite",children:"No results"}),!s&&n&&r.length>0&&(0,I.jsxs)("div",{className:"flex items-center gap-1.5 px-3 py-1 text-xs text-[var(--muted-foreground)] border-b border-[var(--border)]",children:[(0,I.jsx)(T.Loader2,{className:"h-3 w-3 animate-spin","aria-hidden":!0}),(0,I.jsx)("span",{"aria-live":"polite","aria-label":"Updating results",children:"Updating…"})]}),r.length>0&&r.map((e,t)=>(0,I.jsx)(O,{suggestion:e,isActive:t===a,optionId:`${i}-${t}`,onSelect:o,onAttachContents:d,itemRef:e=>{u.current[t]=e}},e.path))]})})}],711989);var U=e.i(597628),W=e.i(580873);e.s(["ThreadMentionPopover",0,function({isOpen:e,suggestions:t,activeIndex:r,listboxId:a,optionIdPrefix:n,onSelect:s}){return e&&0!==t.length?(0,I.jsxs)("div",{className:"absolute bottom-full left-0 mb-2 w-80 bg-[var(--app-shell-elevated)] rounded-xl shadow-xl border border-[var(--app-shell-border)] overflow-hidden z-50 animate-in fade-in zoom-in-95 duration-100",role:"listbox",id:a,children:[(0,I.jsx)("div",{className:"px-3 py-2 bg-[var(--app-shell-subtle)] border-b border-[var(--app-shell-border)] text-[11px] font-bold text-[var(--app-shell-muted)] uppercase tracking-wider",children:"Reference Discussion"}),(0,I.jsx)("div",{className:"max-h-64 overflow-y-auto p-1",children:t.map((e,t)=>{let a=t===r;return(0,I.jsxs)("button",{role:"option",id:`${n}-${t}`,"aria-selected":a,onClick:()=>s(e),className:`w-full text-left px-3 py-2.5 rounded-lg flex items-start gap-3 transition-colors ${a?"bg-[var(--primary-muted)]":"hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,I.jsx)("div",{className:`mt-0.5 p-1.5 rounded-md ${a?"bg-[var(--primary-muted)] text-[var(--primary)]":"bg-[var(--muted)] text-[var(--muted-foreground)]"}`,children:(0,I.jsx)(U.MessageSquare,{size:14,strokeWidth:2.5})}),(0,I.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,I.jsx)("div",{className:`text-sm font-semibold truncate ${a?"text-[var(--primary)]":"text-[var(--foreground)]"}`,children:e.title}),(0,I.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,I.jsxs)("span",{className:`text-xs ${a?"text-[var(--primary)]":"text-[var(--muted-foreground)]"}`,children:[e.replies.length," replies"]}),(0,I.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"•"}),(0,I.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] flex items-center gap-1",children:[(0,I.jsx)(W.Clock,{size:10}),function(e){if(!e)return"";let t=Math.floor((Date.now()-e)/1e3);if(t<60)return"just now";let r=Math.floor(t/60);if(r<60)return`${r}m`;let a=Math.floor(r/60);return a<24?`${a}h`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(e)}(e.lastActivityAt)]})]})]})]},e.rootMessageId)})})]}):null}],924441);var q=e.i(797167),H=e.i(203096),B=e.i(575479);let _=(0,S.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);e.s(["AttachmentTray",0,function({attachments:e,onRemove:t,onRetry:r}){return 0===e.length?null:(0,I.jsx)("div",{className:"flex flex-wrap gap-2 px-1 pb-2",children:e.map(e=>{var a;let n=e.mimeType.startsWith("image/"),s="failed"===e.status,l="uploading"===e.status;return(0,I.jsxs)("div",{className:`relative group flex items-center gap-2 rounded-lg border px-2.5 py-1.5 text-xs transition-all ${s?"border-red-200 bg-red-50 text-red-700":"border-[var(--border)] bg-[var(--app-shell-subtle)] text-[var(--muted-foreground)]"}`,children:[n&&e.previewUrl?(0,I.jsx)("img",{src:e.previewUrl,alt:e.filename,className:"w-8 h-8 rounded object-cover shrink-0"}):(0,I.jsx)("div",{className:"w-8 h-8 rounded bg-[var(--muted)] flex items-center justify-center shrink-0",children:n?(0,I.jsx)(_,{className:"w-4 h-4 text-[var(--muted-foreground)]"}):(0,I.jsx)(B.FileText,{className:"w-4 h-4 text-[var(--muted-foreground)]"})}),(0,I.jsxs)("div",{className:"min-w-0 max-w-[120px]",children:[(0,I.jsx)("div",{className:"truncate font-medium",children:e.filename}),s&&e.error?(0,I.jsx)("div",{className:"truncate text-[10px] text-red-500",children:e.error}):(0,I.jsx)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:(a=e.size)<1024?`${a}B`:a<1048576?`${(a/1024).toFixed(0)}KB`:`${(a/1048576).toFixed(1)}MB`})]}),l&&(0,I.jsx)("div",{className:"absolute bottom-0 left-0 right-0 h-0.5 bg-[var(--muted)] rounded-b-lg overflow-hidden",children:(0,I.jsx)("div",{className:"h-full bg-blue-500 transition-all",style:{width:`${e.progress}%`}})}),(0,I.jsxs)("div",{className:"flex items-center gap-0.5 shrink-0",children:[s&&(0,I.jsx)("button",{type:"button",onClick:()=>r(e.id),className:"p-0.5 rounded hover:bg-red-100 transition-colors",title:"Retry upload",children:(0,I.jsx)(H.RefreshCw,{className:"w-3 h-3"})}),(0,I.jsx)("button",{type:"button",onClick:()=>t(e.id),className:"p-0.5 rounded hover:bg-[var(--muted)] transition-colors",title:"Remove",children:(0,I.jsx)(q.X,{className:"w-3 h-3"})})]})]},e.id)})})}],951579),e.s(["ComposerDropZone",0,function({onDrop:e,children:r}){let[a,n]=(0,t.useState)(!1),s={current:0},l=(0,t.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),s.current++,e.dataTransfer.types.includes("Files")&&n(!0)},[]),i=(0,t.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),o=(0,t.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),s.current--,0===s.current&&n(!1)},[]),d=(0,t.useCallback)(t=>{t.preventDefault(),t.stopPropagation(),s.current=0,n(!1),t.dataTransfer.files.length>0&&e(t.dataTransfer.files)},[e]);return(0,I.jsxs)("div",{className:"relative",onDragEnter:l,onDragOver:i,onDragLeave:o,onDrop:d,children:[r,a&&(0,I.jsx)("div",{className:"absolute inset-0 z-10 flex items-center justify-center rounded-lg border-2 border-dashed border-blue-400 bg-blue-50/80 pointer-events-none",children:(0,I.jsx)("span",{className:"text-sm font-medium text-blue-600",children:"Drop files to attach"})})]})}],196422);let K=(0,S.default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]);e.s(["Paperclip",0,K],818656)},984242,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(494499),n=e.i(256378),s=e.i(555841),l=e.i(97486),i=e.i(715742),o=e.i(48977),d=e.i(534957),u=e.i(167909),c=e.i(973949),p=e.i(518519),m=e.i(598485),f=e.i(8596),h=e.i(113531),x=e.i(990933),g=e.i(755809),v=e.i(834086),b=e.i(239545),y=e.i(859198),j=e.i(966308),w=e.i(201196),k=e.i(711989),C=e.i(924441),N=e.i(951579),$=e.i(196422),M=e.i(818656),I=e.i(999824),S=e.i(196630),P=e.i(498027),A=e.i(797167);function D(e,t,r,a,n){if(!e)return;let s=(0,y.plainTextRangeToPos)(e,t,r,a);s&&e.chain().focus().deleteRange(s).insertContent(n).insertContent(" ").run()}e.s(["Composer",0,function({onSend:e,onStop:T,loading:L,activityStatus:F,sendInterruptsBusy:z=!1,participants:E,projects:O=[],projectGroups:R=[],projectSlug:U,messages:W=[],commands:q,placeholder:H="Message — @name to mention, /search, /summarize",workspaceRoots:B=[],onConfigureRoots:_,pendingThreadInsert:K,onClearPendingThread:J,autoMode:V=!1,onAutoModeChange:Z,repos:X=[],selectedRepoIds:G,onRepoSelectionChange:Q,initialPinnedParticipantId:Y}){let ee,et,er,ea=F??(L?"working":"ready"),en="ready"!==ea,[es,el]=(0,r.useState)(Y??null),[ei,eo]=(0,r.useState)(new Set),ed=G??ei,eu=(0,r.useRef)(ed);eu.current=ed;let ec=(0,r.useCallback)(e=>{let t="function"==typeof e?e(eu.current):e;Q?Q(t):eo(t)},[Q]),[ep,em]=(0,r.useState)(!1),ef=(0,r.useRef)(null),eh=(0,r.useRef)(null),ex=(0,r.useRef)(!1),eg=(0,r.useCallback)(()=>{eh.current?.click()},[]),[ev,eb]=(0,r.useState)([]),{issues:ey}=(0,m.useLinearIssueMentions)({projectSlug:U}),ej=(0,l.useMentionAutocomplete)({participants:E,projectGroups:R,projects:O,linearIssues:ey,maxSuggestions:8}),ew=(0,i.useCommandAutocomplete)({commands:q,maxSuggestions:6}),ek=(0,d.useFileMention)({maxSuggestions:8}),eC=(0,u.useThreadMention)({messages:W,maxSuggestions:8}),eN=(0,o.useAttachments)(),e$=(0,c.useComposerAttachments)(),eM=(0,p.useComposerHistory)();(0,r.useEffect)(()=>{es&&!E.some(e=>e.id===es)&&el(null)},[E,es]),(0,r.useEffect)(()=>{if(!ep)return;let e=e=>{ef.current&&!ef.current.contains(e.target)&&em(!1)};return document.addEventListener("pointerdown",e),()=>document.removeEventListener("pointerdown",e)},[ep]),(0,r.useEffect)(()=>{if(null!=G||0===ei.size)return;let e=new Set(X.map(e=>e.id)),t=new Set([...ei].filter(t=>e.has(t)));t.size<ei.size&&eo(t)},[X,G,ei]);let eI=(0,a.useEditor)({immediatelyRender:!1,extensions:[n.default.configure({heading:!1,bulletList:!1,orderedList:!1,listItem:!1,blockquote:!1,codeBlock:!1,code:!1,horizontalRule:!1,hardBreak:{keepMarks:!1}}),s.default.configure({placeholder:H}),v.ParticipantMention,v.ProjectMention,v.FileMention,v.ThreadMention,v.LinearIssueMention],editorProps:{attributes:{class:"composer-editor",role:"combobox","aria-autocomplete":"list"},handleDOMEvents:{compositionstart:()=>(ex.current=!0,ej.startComposition(),!1),compositionend:(e,t)=>(ex.current=!1,setTimeout(()=>{if(!eI)return;let e=(0,y.getCurrentParagraphText)(eI);e&&ej.endComposition(e.text,e.cursorPos)},0),!1)},handleKeyDown:(e,t)=>{if("Tab"===t.key||"Enter"===t.key&&!t.shiftKey){if(ew.isOpen&&ew.filteredCommands.length>0){t.preventDefault();let e=ew.filteredCommands[ew.activeIndex];return e&&eF(e),!0}if(ek.isOpen&&ek.suggestions.length>0){t.preventDefault();let e=ek.suggestions[ek.activeIndex];return e&&("folder"===e.type?eT(e):eD(e)),!0}if(eC.isOpen&&eC.suggestions.length>0){t.preventDefault();let e=eC.suggestions[eC.activeIndex];return e&&eL(e),!0}if(ej.isOpen&&ej.filteredSuggestions.length>0){t.preventDefault();let e=ej.filteredSuggestions[ej.activeIndex];return e&&eA(e),!0}}let r={key:t.key,preventDefault:()=>t.preventDefault()};if(ew.isOpen&&ew.handleKeyDown(r)||ek.isOpen&&ek.handleKeyDown(r)||eC.isOpen&&eC.handleKeyDown(r)||ej.handleKeyDown(r))return!0;if(("ArrowUp"===t.key||"ArrowDown"===t.key)&&!ej.isOpen&&!ew.isOpen&&!ek.isOpen&&!eC.isOpen){let e=(0,b.serializeToPlainText)(eI.getJSON()).trim(),{state:r}=eI.view,a="ArrowUp"===t.key,n=a?r.selection.from<=1:r.selection.to>=r.doc.content.size-1,s=eM.navigate(a?"up":"down",e,n);if(null!==s)return t.preventDefault(),eI.commands.setContent(s),eI.commands.focus("end"),!0}return"Enter"===t.key&&!t.shiftKey&&(t.preventDefault(),ez(),!0)}},onUpdate:({editor:e})=>{if(ex.current)return;-1!==eM.historyIndex&&eM.resetNavigation();let t=(0,y.getCurrentParagraphText)(e);t&&(ej.handleInput(t.text,t.cursorPos),ew.handleInput(t.text,t.cursorPos),ek.handleInput(t.text,t.cursorPos),eC.handleInput(t.text,t.cursorPos))},onBlur:()=>{ej.close(),ew.close(),ek.close(),eC.close()}});(0,r.useEffect)(()=>{if(!K||!eI)return;let{title:e,threadId:t,messages:r}=K;eI.chain().focus().insertContent({type:"threadMention",attrs:{threadId:t,title:e}}).insertContent(" ").run();let a=r[0];if(a){let n={rootMessageId:t,title:e,rootMessage:a,replies:r.slice(1),participantIds:[...new Set(r.map(e=>e.participantId||"user"))],lastActivityAt:Math.max(...r.map(e=>e.timestamp))};eC.exportDiscussion(n).then(e=>eb(t=>[...t,e])).catch(e=>console.error("Failed to export discussion for Add to chat:",e))}J?.()},[K]);let eS=(0,r.useCallback)(()=>{if(!eI)return;let e=(0,y.getCurrentParagraphText)(eI);e&&ej.handleInput(e.text,e.cursorPos)},[eI,ej]),eP=(0,r.useCallback)(e=>{let{clipboardData:t}=e,r=(0,g.getClipboardAttachmentFiles)(t);if(r.length>0){e.preventDefault(),e.stopPropagation(),eN.stageFiles(r);return}let a="u">typeof navigator?navigator.clipboard:void 0;(0,g.clipboardMayContainImageAttachments)(t)&&"function"==typeof a?.read&&(e.preventDefault(),e.stopPropagation(),(0,g.readClipboardAttachmentFiles)(t,a).then(e=>{e.length>0&&eN.stageFiles(e)}).catch(e=>{console.error("Failed to read pasted clipboard attachments:",e)}))},[eN]),eA=(0,r.useCallback)(e=>{if(!eI)return;let t=ej.selectSuggestion(e);if(!t)return;let r=(0,y.getCurrentParagraphText)(eI);if(!r)return;let a=t.text.startsWith("@@"),n="project-group"===e.kind?{type:"participantMention",attrs:{id:e.project.id,name:e.project.name,mode:a?"parallel":"sequential",kind:"project"}}:"project"===e.kind?{type:"projectMention",attrs:{id:e.project.id,slug:e.project.slug,name:e.project.name}}:"ticket"===e.kind?{type:"linearIssueMention",attrs:{id:e.issue.id,identifier:e.issue.identifier,title:e.issue.title,status:e.issue.status,url:e.issue.url}}:{type:"participantMention",attrs:{id:e.participant.id,name:e.participant.name,mode:a?"parallel":"sequential",kind:"agent"}};D(eI,r.blockStart,t.startIndex,t.endIndex,n),ej.close()},[eI,ej]),eD=(0,r.useCallback)(e=>{if(!eI)return;let t=ek.selectSuggestion(e);if(!t)return;let r=(0,y.getCurrentParagraphText)(eI);if(!r)return;let a={type:"fileMention",attrs:{path:e.path,relativePath:e.relativePath??e.path,trigger:ek.token?.trigger??"@/",attachMode:e.attachMode}};D(eI,r.blockStart,t.startIndex,t.endIndex,a),e$.addFilePath(e.path,e.relativePath??e.path,e.attachMode)},[eI,ek,e$]),eT=(0,r.useCallback)(e=>{if(!eI)return;let t=(0,y.getCurrentParagraphText)(eI);if(!t)return;let r=ek.drillDown(e);if(!r)return;let a=(0,y.plainTextRangeToPos)(eI,t.blockStart,r.startIndex,r.endIndex);a&&eI.chain().focus().deleteRange(a).insertContent(r.text).run()},[eI,ek]),eL=(0,r.useCallback)(async e=>{if(!eI)return;let t=eC.selectSuggestion(e);if(!t)return;let r=(0,y.getCurrentParagraphText)(eI);if(!r)return;let a={type:"threadMention",attrs:{threadId:e.rootMessageId,title:e.title}};D(eI,r.blockStart,t.startIndex,t.endIndex,a);try{let t=await eC.exportDiscussion(e);eb(e=>[...e,t])}catch(e){console.error("Failed to export discussion:",e)}},[eI,eC]),eF=(0,r.useCallback)(e=>{ew.selectCommand(e),eI&&eI.commands.clearContent()},[ew,eI]),ez=(0,r.useCallback)(async()=>{if(!eI)return;let t=eI.getJSON(),r=(0,b.serializeToPlainText)(t).trim();if(!r&&!eN.hasUploaded&&!e$.hasFilePaths||!eN.canSend)return;if(r){let e=q.find(e=>e.name===r||e.aliases?.some(e=>`/${e}`===r));if(e){e.execute(),eI.commands.clearContent(),ew.close(),ej.close();return}}let a=r||"(attached files)",n=[];if(ed.size>0){let e=X.filter(e=>ed.has(e.id));if(e.length>0){let t=e.map(e=>{let t=[e.name];return e.path&&t.push(`path: ${e.path}`),e.notes&&t.push(e.notes),`- ${t.join(" | ")}`}).join("\n");n.push(`Focused repos (the user is specifically talking about these repositories):
8
8
  ${t}`)}}if(ev.length>0){let e=ev.map(e=>`- "${e.title}" — ${e.summary} (full transcript: ${e.filePath})`).join("\n");n.push(`Referenced threads:
9
9
  ${e}`)}if(e$.hasFilePaths){let e=await (0,f.buildAgentContext)(e$.filePaths);e.contextPrefix&&n.push(e.contextPrefix.trimEnd())}let s=(0,h.extractMentionedLinearIssueIds)(t);if(s.length>0)try{let e=await fetch("/api/linear/issues/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({issueIds:s})});if(!e.ok)throw Error(`Failed to load issue context: ${e.status}`);let t=await e.json().catch(()=>({})),r=Array.isArray(t.issues)?t.issues:[],a=(0,h.buildLinearIssueContextPrefix)(r);a&&n.push(a.trimEnd())}catch(e){console.error("Failed to load Linear issue mention context:",e)}let l=n.length>0?n.join("\n\n")+"\n\n":void 0,i=(0,x.extractComposerRouting)(t,es);r&&eM.pushEntry(r);let o=eN.attachmentIds.length>0?eN.attachmentIds:void 0,d=o?eN.getAttachmentMetas():void 0;e(a,10,o,d,es??void 0,l,i),eI.commands.clearContent(),eb([]),eN.clear(),e$.clearFilePaths(),ej.close(),ew.close(),eC.close()},[eI,ej,ew,q,e,eN,e$,ev,eC,eM,ed,X,es]),eE=ej.isOpen&&ej.filteredSuggestions.length>0;ew.isOpen&&ew.filteredCommands.length,ek.isOpen&&ek.suggestions.length,eC.isOpen&&eC.suggestions.length,eE&&ej.filteredSuggestions[ej.activeIndex];let eO=eN.staged.some(e=>"uploading"===e.status),eR=!eI||eI.isEmpty,eU=E.find(e=>e.id===es)??null;return(0,t.jsx)("div",{className:"pb-6",children:(0,t.jsxs)("div",{className:"max-w-3xl mx-auto",children:[(0,t.jsx)($.ComposerDropZone,{onDrop:eN.stageFiles,children:(0,t.jsxs)("div",{className:"bg-[var(--app-shell-surface)] border border-[var(--app-shell-border)] shadow-[var(--shadow-sm)] focus-within:border-[var(--app-shell-border-strong)] focus-within:ring-1 focus-within:ring-[var(--ring)] transition-all flex flex-col rounded-2xl",children:[Z&&(0,t.jsxs)("div",{className:`relative overflow-hidden border-b transition-all duration-500 ${V?"border-orange-200/50 dark:border-orange-500/30":"border-gray-100 dark:border-gray-800/60"}`,children:[(0,t.jsx)("div",{className:`absolute inset-0 transition-opacity duration-700 ${V?"opacity-100":"opacity-0"}`,style:{background:"linear-gradient(120deg, var(--warning-muted) 0%, transparent 50%, var(--warning-muted) 100%)",backgroundSize:"200% 100%",animation:V?"shipBgSweep 4s ease-in-out infinite":"none"}}),V&&(0,t.jsx)("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[...Array(8)].map((e,r)=>(0,t.jsx)("div",{className:"absolute h-[1.5px] rounded-full",style:{top:`${12+10*r}%`,right:"-10%",width:`${20+r%3*15}%`,background:"linear-gradient(to left, transparent, var(--warning))",opacity:.3+r%3*.1,animation:`shipSpeedLine ${.8+r%4*.3}s ${.1*r}s ease-in-out infinite`}},r))}),(0,t.jsx)("div",{className:"relative px-3 py-2",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:`p-1 rounded-md transition-all duration-300 ${V?"bg-[var(--warning)] text-[var(--warning-muted)] shadow-md":"bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]"}`,style:V?{animation:"shipPulse 2s ease-in-out infinite"}:{},children:(0,t.jsx)(I.Rocket,{size:14})}),(0,t.jsx)("span",{className:`text-sm font-semibold transition-colors duration-300 ${V?"text-[var(--warning)]":"text-[var(--foreground)]"}`,children:"Ship Mode"}),(0,t.jsx)("span",{className:`text-xs transition-colors duration-300 ${V?"text-[var(--warning)] opacity-60":"text-[var(--app-shell-muted)] opacity-60"}`,children:"|"}),(0,t.jsx)("span",{className:`text-xs font-medium transition-colors duration-300 ${V?"text-[var(--warning)] opacity-80":"text-[var(--app-shell-muted)]"}`,children:V?"Continuous execution is active for this thread":"Continuous execution stays off until you enable it"})]}),(0,t.jsx)("button",{type:"button",onClick:()=>Z(!V),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-[var(--warning)] focus:ring-offset-2 focus:ring-offset-[var(--background)] ${V?"bg-[var(--warning)]":"bg-[var(--app-shell-border-strong)]"}`,children:(0,t.jsx)("span",{className:`inline-block h-4 w-4 transform rounded-full bg-[var(--app-shell-elevated)] shadow-sm transition-transform duration-200 ${V?"translate-x-6":"translate-x-1"}`})})]})})]}),(0,t.jsxs)("div",{className:"p-1.5 transition-all",children:[eN.staged.length>0&&(0,t.jsx)("div",{className:"mx-2 mt-2 mb-1",children:(0,t.jsx)(N.AttachmentTray,{attachments:eN.staged,onRemove:eN.remove,onRetry:eN.retry})}),(0,t.jsxs)("div",{className:"p-2 relative",children:[(0,t.jsx)("input",{ref:eh,type:"file",multiple:!0,className:"hidden",onChange:e=>{e.target.files&&e.target.files.length>0&&(eN.stageFiles(e.target.files),e.target.value="")}}),(0,t.jsxs)("div",{className:"flex-1 relative",onClick:eS,onPasteCapture:eP,children:[(0,t.jsx)(a.EditorContent,{editor:eI,className:"composer-editor"}),(0,t.jsx)(j.MentionPopover,{isOpen:ej.isOpen&&!ew.isOpen,suggestions:ej.filteredSuggestions,activeIndex:ej.activeIndex,listboxId:"composer-mention-listbox",optionIdPrefix:"composer-mention-option",onSelect:eA}),(0,t.jsx)(w.CommandPopover,{isOpen:ew.isOpen,commands:ew.filteredCommands,activeIndex:ew.activeIndex,listboxId:"composer-command-listbox",optionIdPrefix:"composer-command-option",onSelect:eF}),(0,t.jsx)(k.FileMentionPopover,{isOpen:ek.isOpen,suggestions:ek.suggestions,activeIndex:ek.activeIndex,isLoading:ek.isLoading,error:ek.error,listboxId:"composer-file-mention-listbox",optionIdPrefix:"composer-file-mention-option",onSelect:e=>{"folder"===e.type?eT(e):eD(e)},onAttachContents:ek.onAttachContents}),(0,t.jsx)(C.ThreadMentionPopover,{isOpen:eC.isOpen&&!ew.isOpen&&!ek.isOpen,suggestions:eC.suggestions,activeIndex:eC.activeIndex,listboxId:"composer-thread-mention-listbox",optionIdPrefix:"composer-thread-mention-option",onSelect:eL})]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-t border-[var(--app-shell-border)] transition-colors",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("button",{type:"button",onClick:eg,className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] rounded-lg transition-colors","aria-label":"Attach file",title:"Attach file",children:(0,t.jsx)(M.Paperclip,{className:"h-4 w-4",strokeWidth:1.75})}),(0,t.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{className:"text-[10px] font-semibold text-[var(--app-shell-muted)] uppercase tracking-wider mr-1",children:"Agents"}),(0,t.jsx)("div",{className:"flex items-center -space-x-1.5",children:0===E.length?(0,t.jsx)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:"No agents"}):E.map(e=>(0,t.jsxs)("div",{role:"button",tabIndex:0,"aria-pressed":es===e.id,onClick:()=>el(t=>t===e.id?null:e.id),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),el(t=>t===e.id?null:e.id))},className:`relative w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--app-shell-elevated)] shadow-sm flex items-center justify-center overflow-visible shrink-0 transition-all cursor-pointer ${es===e.id?"-translate-y-0.5 ring-2 ring-[var(--ring)] ring-offset-1 ring-offset-[var(--background)]":"hover:-translate-y-0.5"}`,title:e.name,children:[(0,t.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${e.id}&backgroundColor=${e.color?e.color.replace("#",""):"e2e8f0"}`,alt:e.name,className:"w-full h-full rounded-full object-cover"}),en&&(0,t.jsx)("span",{className:`absolute -bottom-0.5 -right-0.5 w-2 h-2 border border-[var(--app-shell-elevated)] rounded-full ${"queued"===ea?"bg-amber-400":"bg-emerald-400"}`})]},e.id))})]}),eU&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,t.jsxs)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:["Pinned: ",(0,t.jsx)("span",{className:"text-[var(--foreground)]",children:eU.name})]})]}),X.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsxs)("div",{className:"relative",ref:ef,children:[(0,t.jsxs)("button",{type:"button",onClick:()=>em(e=>!e),className:"composer-repo-select-trigger","aria-haspopup":"listbox","aria-expanded":ep,children:[(0,t.jsx)(S.FolderGit2,{className:"h-3.5 w-3.5",strokeWidth:1.75}),(0,t.jsx)("span",{children:"Folders"}),(0,t.jsx)(P.ChevronDown,{className:`h-3 w-3 transition-transform ${ep?"rotate-180":""}`})]}),ep&&(0,t.jsx)("div",{className:"composer-repo-dropdown",role:"listbox","aria-multiselectable":"true",children:X.map(e=>{let r=ed.has(e.id);return(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":r,className:`composer-repo-dropdown__item ${r?"composer-repo-dropdown__item--selected":""}`,onClick:()=>ec(t=>{let r=new Set(t);return r.has(e.id)?r.delete(e.id):r.add(e.id),r}),children:[(0,t.jsx)("span",{className:`w-3.5 h-3.5 rounded border flex items-center justify-center shrink-0 transition-colors ${r?"bg-emerald-500 border-emerald-500 text-white":"border-[var(--app-shell-border-strong)]"}`,children:r&&(0,t.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,t.jsx)("path",{d:"M2 5l2 2 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,t.jsx)("span",{className:"truncate",children:e.name})]},e.id)})})]}),(et=(ee=X.filter(e=>ed.has(e.id))).slice(0,1),er=ee.length-1,(0,t.jsxs)(t.Fragment,{children:[et.map(e=>(0,t.jsxs)("span",{className:"composer-repo-pill",title:e.path||e.name,children:[(0,t.jsx)(S.FolderGit2,{className:"h-3 w-3 shrink-0",strokeWidth:1.75}),(0,t.jsx)("span",{className:"composer-repo-pill__name",children:e.name}),(0,t.jsx)("button",{type:"button",className:"composer-repo-pill__remove",onClick:()=>ec(t=>{let r=new Set(t);return r.delete(e.id),r}),"aria-label":`Remove ${e.name}`,children:(0,t.jsx)(A.X,{className:"h-3 w-3"})})]},e.id)),er>0&&(0,t.jsxs)("span",{className:"composer-repo-pill composer-repo-pill--overflow",children:["+",er]})]}))]})]})]}),en&&!z?(0,t.jsx)("button",{type:"button",onClick:T,className:"flex items-center gap-2 bg-[var(--destructive-muted)] text-[var(--destructive)] border border-[var(--status-failed-border)] px-4 py-1.5 rounded-lg text-sm font-semibold hover:opacity-90 transition-colors",children:"Stop"}):(0,t.jsxs)("button",{type:"button",onClick:ez,disabled:eR&&!eN.hasUploaded&&!e$.hasFilePaths||eO,className:"flex items-center gap-2 bg-[var(--primary)] hover:bg-[var(--primary-hover)] text-[var(--primary-foreground)] px-4 py-1.5 rounded-lg text-sm font-semibold transition-colors disabled:opacity-50 disabled:cursor-not-allowed shadow-sm",children:["Send",(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),(0,t.jsx)("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})]})]})]})]})}),(0,t.jsxs)("div",{className:"mt-3 flex items-center justify-between text-xs text-[var(--app-shell-muted)] px-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("div",{className:`w-1.5 h-1.5 rounded-full ${"working"===ea?"bg-emerald-400 animate-pulse":"queued"===ea?"bg-amber-400":"bg-emerald-400"}`}),(0,t.jsx)("span",{children:"working"===ea?"Working":"queued"===ea?"Queued":"Ready"})]}),(0,t.jsxs)("span",{children:["Press ",(0,t.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Enter"})," to send, ",(0,t.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Shift"})," + ",(0,t.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Enter"})," for new line"]})]})]})})}])}]);
@@ -0,0 +1,20 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,568656,e=>{"use strict";var t=e.i(843476),r=e.i(522016),a=e.i(618566),s=e.i(271645),n=e.i(958164),o=e.i(429056),i=e.i(417442),l=e.i(363732);let d=(0,l.default)("calendar-clock",[["path",{d:"M16 14v2.2l1.6 1",key:"fo4ql5"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5",key:"1osxxc"}],["path",{d:"M3 10h5",key:"r794hk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]]);var c=e.i(529471),u=e.i(580873),m=e.i(575479),x=e.i(640481),p=e.i(929870),b=e.i(794731),v=e.i(169610),h=e.i(572665),f=e.i(519132),g=e.i(797167),j=e.i(524123),y=e.i(945028),w=e.i(490011),N=e.i(984242),k=e.i(208343),S=e.i(884564),C=e.i(40527),I=e.i(378764),$=e.i(667480),E=e.i(524507),A=e.i(245900),O=e.i(437307),T=e.i(715908),M=e.i(553069),P=e.i(827430);function R(e){let t=e.cadence||e.cronExpr;return t?(0,M.cronToHuman)(e.cronExpr||t)??t:"No frequency"}function L(e){return"active"===e.state&&(null!==e.nextRunAt&&e.nextRunAt-Date.now()<0?!e.lastRunAt||!(e.lastRunAt>=e.nextRunAt):!!e.prevScheduledAt&&!!e.lastRunAt&&e.lastRunAt>e.prevScheduledAt+3e5)}function D(e,t){if("paused"===t)return"Paused";if("stopped"===t)return"Stopped";if(null===e)return"Pending";let r=e-Date.now();return r<0?"Overdue":r<6e4?`in ${Math.round(r/1e3)}s`:r<36e5?`in ${Math.round(r/6e4)}m`:r<864e5?`in ${Math.round(r/36e5)}h`:`in ${Math.round(r/864e5)}d`}function z(e){return new Date(e).toLocaleString(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}function F({job:e,onClose:r,onHide:a,hiding:s}){return(0,t.jsx)("div",{className:"fixed inset-0 z-40 flex items-center justify-center bg-black/50 px-4 py-6",children:(0,t.jsxs)("div",{className:"w-full max-w-2xl rounded-[28px] border border-[var(--border)] bg-[var(--card-bg)] shadow-2xl",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4 border-b border-[var(--border)] px-6 py-5",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2.5",children:[(0,t.jsx)("p",{className:"truncate text-lg font-semibold text-[var(--foreground)]",children:e.name}),(0,t.jsx)("span",{className:`rounded-full border px-2 py-0.5 text-[10px] font-semibold uppercase tracking-[0.16em] ${U(e.state)}`,children:_(e.state)}),e.condition?(0,t.jsx)("span",{className:"rounded-md border border-blue-400/20 bg-blue-500/10 px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wider text-blue-400",children:"gated"}):null]}),(0,t.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-3 text-xs text-[var(--muted-foreground)]",children:[(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,t.jsx)(u.Clock,{className:"h-3.5 w-3.5"}),R(e)]}),(0,t.jsxs)("span",{children:["Next run ",D(e.nextRunAt,e.state)]}),(0,t.jsxs)("span",{children:["Updated ",z(e.updatedAt)]})]})]}),(0,t.jsx)("button",{type:"button",onClick:r,className:"rounded-lg border border-[var(--border)] p-2 text-[var(--muted-foreground)] transition-colors hover:border-[var(--card-hover-border)] hover:text-[var(--foreground)]","aria-label":"Close scheduled task details",children:(0,t.jsx)(g.X,{className:"h-4 w-4"})})]}),(0,t.jsxs)("div",{className:"space-y-5 px-6 py-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-2 text-xs font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Instructions"}),(0,t.jsx)("div",{className:"whitespace-pre-wrap rounded-2xl border border-[var(--border)] bg-[var(--overlay-panel-muted)] px-4 py-4 text-sm leading-6 text-[var(--foreground)]",children:e.prompt||"No instructions yet"})]}),e.condition?(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-2 text-xs font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Condition"}),(0,t.jsx)("div",{className:"rounded-2xl border border-[var(--border)] bg-[var(--overlay-panel-muted)] px-4 py-4 text-sm leading-6 text-[var(--foreground)]",children:e.condition})]}):null,(0,t.jsxs)("div",{className:"flex items-center justify-end gap-3 border-t border-[var(--border)] pt-5",children:[(0,t.jsx)("button",{type:"button",onClick:r,className:"rounded-xl border border-[var(--border)] px-4 py-2.5 text-sm text-[var(--foreground)] transition-colors hover:border-[var(--card-hover-border)]",children:"Close"}),(0,t.jsxs)("button",{type:"button",onClick:()=>void a(),disabled:s,className:"inline-flex items-center gap-2 rounded-xl border border-[var(--status-failed-border)] px-4 py-2.5 text-sm text-[var(--destructive)] transition-colors hover:bg-[var(--destructive-muted)] disabled:cursor-not-allowed disabled:opacity-50",children:[(0,t.jsx)(b.Trash2,{className:"h-4 w-4"}),s?"Hiding...":"Hide task"]})]})]})]})})}function _(e){return"active"===e?"Active":"paused"===e?"Paused":"Stopped"}function U(e){return"active"===e?"border-[var(--status-completed-border)] bg-[var(--status-completed-bg)] text-[var(--status-completed)]":"paused"===e?"border-[var(--status-blocked-border)] bg-[var(--status-blocked-bg)] text-[var(--status-blocked)]":"border-[var(--tone-neutral-border)] bg-[var(--tone-neutral-bg)] text-[var(--tone-neutral)]"}function q({projectId:e,objectiveId:r,objectiveKey:a,createDefaults:n,onCreateTask:o}){let{jobs:i,loading:l,refresh:d,deleteJob:m,toggleJob:x,fetchRuns:v,runNow:h}=(0,T.usePromptJobs)(e,{requireProjectId:!0,includeObjectiveJobs:!0,objectiveId:r}),[f,g]=(0,s.useState)(!1),[j,y]=(0,s.useState)(null),[w,N]=(0,s.useState)(null),[k,S]=(0,s.useState)(null),[C,I]=(0,s.useState)([]),$=(0,s.useMemo)(()=>i.filter(e=>e.objectiveId===r),[i,r]),M=(0,s.useMemo)(()=>$.find(e=>e.id===k)??null,[k,$]),J=(0,s.useCallback)(async()=>{if(0===$.length)return void I([]);let e=[];await Promise.all($.map(async t=>{for(let r of(await v(t.id)))e.push({...r,jobName:t.name})})),e.sort((e,t)=>new Date(t.startedAt??t.createdAt).getTime()-new Date(e.startedAt??e.createdAt).getTime()),I(e.slice(0,10))},[$,v]);(0,s.useEffect)(()=>{J()},[J]);let W=async e=>{y(e.id),N(null);let t=await m(e.id);(y(null),t)?(k===e.id&&S(null),await d()):N(`Failed to hide "${e.name}".`)},V=async e=>{N(null);let t=await o(e);return t&&await d(),t};return(0,t.jsxs)(t.Fragment,{children:[f?(0,t.jsx)(P.CreateJobModal,{onClose:()=>g(!1),onSubmit:async e=>{await V(e)},createDefaults:n,contextLabel:a}):null,M?(0,t.jsx)(F,{job:M,onClose:()=>S(null),onHide:async()=>{await W(M)},hiding:j===M.id}):null,(0,t.jsxs)("div",{className:"px-1",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Scheduled Tasks"}),(0,t.jsxs)("p",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:["Shared scheduled-task list filtered to objective label"," ",(0,t.jsx)("span",{className:"font-mono text-[var(--foreground)]",children:a}),"."]})]}),(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:(0,t.jsxs)("button",{type:"button",onClick:()=>g(!0),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--border)] px-3 py-2 text-sm text-[var(--foreground)] transition-colors hover:border-[var(--card-hover-border)]",children:[(0,t.jsx)(p.Plus,{className:"h-4 w-4"}),"New task"]})})]}),w?(0,t.jsx)("p",{className:"mt-4 text-sm text-[var(--destructive)]",children:w}):null,(0,t.jsx)("div",{className:"mt-5 space-y-3",children:l&&0===$.length?(0,t.jsx)("div",{className:"rounded-2xl border border-dashed border-[var(--border)] px-4 py-8 text-sm text-[var(--muted-foreground)]",children:"Loading scheduled tasks..."}):0===$.length?(0,t.jsx)("div",{className:"rounded-2xl border border-dashed border-[var(--border)] px-4 py-8 text-sm text-[var(--muted-foreground)]",children:"No scheduled tasks for this objective yet."}):$.map(e=>(0,t.jsx)("div",{onClick:()=>S(e.id),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),S(e.id))},role:"button",tabIndex:0,className:`block w-full rounded-2xl border px-4 py-4 text-left transition-colors focus:outline-none focus:ring-2 focus:ring-[var(--card-hover-border)] ${L(e)?"border-amber-500/40 bg-amber-500/5 hover:border-amber-500/60":"border-[var(--border)] bg-[var(--overlay-panel-muted)] hover:border-[var(--card-hover-border)]"}`,children:(0,t.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2.5",children:[(0,t.jsx)("span",{className:`inline-block size-2 shrink-0 rounded-full ${"active"===e.state?"bg-emerald-400":"paused"===e.state?"bg-amber-400":"bg-[var(--tone-neutral)]"}`}),(0,t.jsx)("p",{className:"truncate text-sm font-semibold text-[var(--foreground)]",children:e.name}),(0,t.jsx)("span",{className:`rounded-full border px-2 py-0.5 text-[10px] font-semibold uppercase tracking-[0.16em] ${U(e.state)}`,children:_(e.state)}),L(e)&&(0,t.jsxs)("span",{className:"shrink-0 text-[10px] font-semibold uppercase tracking-[0.16em] text-amber-400 bg-amber-500/10 px-2 py-0.5 rounded-full border border-amber-500/20 inline-flex items-center gap-1",children:[(0,t.jsx)(u.Clock,{className:"h-3 w-3"}),"overdue"]})]}),(0,t.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-3 text-xs text-[var(--muted-foreground)]",children:[(0,t.jsxs)("span",{className:`inline-flex items-center gap-1.5 ${L(e)?"text-amber-400 font-medium":""}`,children:[(0,t.jsx)(u.Clock,{className:"h-3.5 w-3.5"}),"Next run ",D(e.nextRunAt,e.state)]}),(0,t.jsx)("span",{className:"inline-flex items-center gap-1.5",children:R(e)}),e.condition?(0,t.jsx)("span",{className:"rounded-md border border-blue-400/20 bg-blue-500/10 px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wider text-blue-400",children:"gated"}):null]}),(0,t.jsx)("p",{className:"mt-3 line-clamp-2 text-sm leading-6 text-[var(--muted-foreground)]",children:e.prompt.split("\n").map(e=>e.trim()).find(Boolean)||"No instructions yet"}),e.condition?(0,t.jsxs)("p",{className:"mt-2 text-xs text-[var(--muted-foreground)]",children:["Condition: ",e.condition]}):null]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 shrink-0",children:[(0,t.jsx)("button",{type:"button",title:"Run now",onClick:async t=>{t.stopPropagation(),y(e.id),await h(e.id),y(null),await d(),await J()},disabled:j===e.id,className:"rounded-lg border border-[var(--border)] p-2 text-[var(--muted-foreground)] transition-colors hover:border-emerald-400/40 hover:text-emerald-300 disabled:cursor-not-allowed disabled:opacity-50",children:(0,t.jsx)(A.Play,{className:"h-3.5 w-3.5 fill-current"})}),(0,t.jsx)("button",{type:"button",title:"active"===e.state?"Pause":"Resume",onClick:async t=>{t.stopPropagation(),y(e.id),await x(e),y(null)},disabled:j===e.id,className:`rounded-lg border p-2 transition-colors disabled:cursor-not-allowed disabled:opacity-50 ${"active"===e.state?"border-[var(--border)] text-[var(--muted-foreground)] hover:border-amber-400/40 hover:text-amber-300":"border-emerald-500/30 text-emerald-400 hover:border-emerald-400/50 hover:text-emerald-300"}`,children:"active"===e.state?(0,t.jsx)(E.Pause,{className:"h-3.5 w-3.5"}):(0,t.jsx)(A.Play,{className:"h-3.5 w-3.5 fill-current"})}),(0,t.jsx)("button",{type:"button",title:"Delete",onClick:t=>{t.stopPropagation(),confirm(`Delete "${e.name}"? This cannot be undone.`)&&W(e)},disabled:j===e.id,className:"rounded-lg border border-[var(--border)] p-2 text-[var(--muted-foreground)] transition-colors hover:border-[var(--status-failed-border)] hover:text-[var(--destructive)] disabled:cursor-not-allowed disabled:opacity-50",children:(0,t.jsx)(b.Trash2,{className:"h-3.5 w-3.5"})})]})]})},e.id))}),C.length>0&&(0,t.jsxs)("div",{className:"mt-8",children:[(0,t.jsx)("p",{className:"text-[11px] font-medium uppercase tracking-[0.18em] text-[var(--muted-foreground)] mb-3",children:"Recent executions"}),(0,t.jsx)("div",{className:"space-y-0.5",children:C.map(e=>{let r=e.startedAt??e.createdAt,a="success"===e.status,s="failed"===e.status,n="running"===e.status;return(0,t.jsxs)("div",{className:"flex items-center gap-3 py-2 px-2 rounded-md text-xs",children:[(0,t.jsx)("span",{className:`flex size-5 shrink-0 items-center justify-center rounded-full border ${a?"border-emerald-500/40 text-emerald-400":s?"border-[var(--status-failed-border)] text-[var(--destructive)]":n?"border-sky-500/40 text-sky-400":"border-[var(--border)] text-[var(--muted-foreground)]"}`,children:a?(0,t.jsx)(c.Check,{className:"h-3 w-3"}):s?(0,t.jsx)(O.XCircle,{className:"h-3 w-3"}):(0,t.jsx)("span",{className:`block size-1.5 rounded-full ${n?"bg-sky-400 animate-pulse":"bg-current"}`})}),(0,t.jsx)("span",{className:"truncate text-[var(--muted-foreground)]",children:e.jobName}),(0,t.jsx)("span",{className:"ml-auto shrink-0 text-[11px] text-[var(--muted-foreground)]",children:z(r)}),null!=e.durationMs&&(0,t.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-[var(--muted-foreground)]",children:e.durationMs<1e3?`${e.durationMs}ms`:`${Math.round(e.durationMs/1e3)}s`})]},e.id)})})]})]})]})}var J=e.i(498027),W=e.i(367859);let V=(0,l.default)("funnel",[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]]),H={"metric-check":{label:"Metric",className:"bg-blue-500/15 text-blue-400 border-blue-500/30"},"status-update":{label:"Status",className:"bg-emerald-500/15 text-emerald-400 border-emerald-500/30"},milestone:{label:"Milestone",className:"bg-amber-500/15 text-amber-400 border-amber-500/30"},note:{label:"Note",className:"bg-[var(--tone-neutral-bg)] text-[var(--tone-neutral)] border-[var(--tone-neutral-border)]"}},B=["metric-check","status-update","milestone","note"];function X({activity:e}){let[r,a]=(0,s.useState)(!1),n=H[e.type]??H.note,o=e.body.length>200;return(0,t.jsxs)("div",{className:"relative pl-6 pb-6 last:pb-0",children:[(0,t.jsx)("div",{className:"absolute left-0 top-1.5 h-3 w-3 rounded-full border-2 border-[var(--timeline-node-border)] bg-[var(--timeline-node-bg)]"}),(0,t.jsx)("div",{className:"absolute bottom-0 left-[5px] top-4 w-px bg-[var(--timeline-track)] last:hidden"}),(0,t.jsxs)("div",{className:"mb-1.5 flex items-center gap-2",children:[(0,t.jsx)("span",{className:`rounded-full border px-2 py-0.5 text-[10px] font-semibold uppercase tracking-[0.14em] ${n.className}`,children:n.label}),(0,t.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)]",children:function(e){let t=Date.now(),r=Date.parse(e);if(Number.isNaN(r))return e;let a=Math.floor((t-r)/6e4);if(a<1)return"just now";if(a<60)return`${a}m ago`;let s=Math.floor(a/60);if(s<24)return`${s}h ago`;let n=Math.floor(s/24);return n<30?`${n}d ago`:new Date(r).toLocaleDateString("en-US",{month:"short",day:"numeric",year:n>365?"numeric":void 0})}(e.createdAt)}),"manual"!==e.source&&(0,t.jsx)("span",{className:"max-w-[180px] truncate font-mono text-[11px] text-[var(--app-shell-soft-text)]",children:e.source})]}),r?(0,t.jsx)("div",{className:"prose prose-sm max-w-none text-sm text-[var(--foreground)] prose-neutral dark:prose-invert",children:(0,t.jsx)(k.Markdown,{content:e.body})}):(0,t.jsx)("div",{className:`text-sm leading-relaxed text-[var(--muted-foreground)] ${o?"max-h-24 overflow-hidden [mask-image:linear-gradient(to_bottom,black_72%,transparent)]":""}`,children:(0,t.jsx)(k.Markdown,{content:e.body})}),o&&(0,t.jsxs)("button",{type:"button",onClick:()=>a(!r),className:"mt-1.5 flex items-center gap-1 text-xs text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:[r?(0,t.jsx)(J.ChevronDown,{size:12}):(0,t.jsx)(W.ChevronRight,{size:12}),r?"Show less":"Show more"]})]})}function G({projectId:e,objectiveId:r,onCreated:a,onCancel:n}){let[o,i]=(0,s.useState)("note"),[l,d]=(0,s.useState)(""),[c,u]=(0,s.useState)(!1),m=(0,s.useRef)(null);(0,s.useEffect)(()=>{m.current?.focus()},[]);let x=async()=>{let t=l.trim();if(t&&!c){u(!0);try{let s=await fetch(`/api/projects/${e}/objectives/${r}/activities`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:o,body:t})});if(!s.ok)throw Error("Failed to create activity");let n=await s.json();a(n)}catch(e){console.error("Failed to create activity:",e)}finally{u(!1)}}};return(0,t.jsxs)("div",{className:"mb-4 rounded-lg border border-[var(--border)] bg-[var(--overlay-panel-muted)] p-3",children:[(0,t.jsx)("div",{className:"mb-3 flex flex-wrap gap-1.5",children:B.map(e=>{let r=H[e],a=o===e;return(0,t.jsx)("button",{type:"button",onClick:()=>i(e),className:`rounded-full border px-2.5 py-0.5 text-[10px] font-semibold uppercase tracking-[0.14em] transition-colors ${a?"border-[var(--foreground)] bg-[var(--foreground)] text-[var(--background)]":`${r.className} hover:opacity-80`}`,children:r.label},e)})}),(0,t.jsx)("textarea",{ref:m,value:l,onChange:e=>d(e.target.value),placeholder:"What did you do?",rows:3,className:"w-full resize-none rounded-md border border-[var(--border)] bg-[var(--input)] px-3 py-2 text-sm text-[var(--foreground)] placeholder:text-[var(--app-shell-soft-text)] focus:border-[var(--card-hover-border)] focus:outline-none"}),(0,t.jsxs)("div",{className:"mt-2 flex items-center justify-end gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:n,className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:"Cancel"}),(0,t.jsx)("button",{type:"button",onClick:x,disabled:!l.trim()||c,className:"px-3 py-1.5 text-xs font-medium rounded-md bg-sky-600 text-white hover:bg-sky-500 transition-colors disabled:opacity-40 disabled:cursor-not-allowed",children:c?"Saving...":"Log activity"})]})]})}function K({projectId:e,objectiveId:r,onTotalChange:a}){let[n,o]=(0,s.useState)([]),[i,l]=(0,s.useState)(0),[d,c]=(0,s.useState)(!1),[u,m]=(0,s.useState)(1),[x,b]=(0,s.useState)(!0),[v,h]=(0,s.useState)("all"),[f,j]=(0,s.useState)(!1),[y,w]=(0,s.useState)(!1),N=(0,s.useCallback)(async(t,s,n)=>{b(!0);try{let i=new URLSearchParams({page:String(t),limit:"25"});"all"!==s&&i.set("type",s);let d=await fetch(`/api/projects/${e}/objectives/${r}/activities?${i}`);if(!d.ok)throw Error("Failed to load activities");let u=await d.json(),m=Array.isArray(u.activities)?u.activities:[],x="number"==typeof u.total?u.total:m.length,p=!!u.hasMore;o(e=>n?[...e,...m]:m),l(x),a?.(x),c(p)}catch(e){console.error("Failed to fetch activities:",e)}finally{b(!1)}},[e,r]);return(0,s.useEffect)(()=>{m(1),N(1,v,!1)},[N,v]),(0,t.jsxs)("section",{children:[(0,t.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Time-ordered log of outputs from scheduled tasks and manual entries."}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>w(!y),className:`flex items-center gap-1 px-2.5 py-1 rounded-md text-xs font-medium transition-colors ${y?"text-sky-400 bg-sky-500/10":"text-[var(--muted-foreground)] hover:bg-[var(--muted)] hover:text-[var(--foreground)]"}`,children:[y?(0,t.jsx)(g.X,{size:12}):(0,t.jsx)(p.Plus,{size:12}),"Log activity"]}),(0,t.jsx)("button",{type:"button",onClick:()=>j(!f),className:`p-1.5 rounded-md transition-colors ${f||"all"!==v?"text-sky-400 bg-sky-500/10":"text-[var(--muted-foreground)] hover:bg-[var(--muted)] hover:text-[var(--foreground)]"}`,"aria-label":"Filter activities",children:(0,t.jsx)(V,{size:14})})]})]}),f&&(0,t.jsxs)("div",{className:"flex flex-wrap gap-1.5 mb-4",children:[(0,t.jsx)("button",{type:"button",onClick:()=>h("all"),className:`rounded-full border px-2.5 py-0.5 text-[10px] font-semibold uppercase tracking-[0.14em] transition-colors ${"all"===v?"border-[var(--foreground)] bg-[var(--foreground)] text-[var(--background)]":"border-[var(--tone-neutral-border)] bg-[var(--tone-neutral-bg)] text-[var(--tone-neutral)] hover:border-[var(--card-hover-border)]"}`,children:"All"}),B.map(e=>{let r=H[e],a=v===e;return(0,t.jsx)("button",{type:"button",onClick:()=>h(e),className:`rounded-full border px-2.5 py-0.5 text-[10px] font-semibold uppercase tracking-[0.14em] transition-colors ${a?"border-[var(--foreground)] bg-[var(--foreground)] text-[var(--background)]":`${r.className} hover:opacity-80`}`,children:r.label},e)})]}),y&&(0,t.jsx)(G,{projectId:e,objectiveId:r,onCreated:e=>{o(t=>[e,...t]),l(e=>{let t=e+1;return a?.(t),t}),w(!1)},onCancel:()=>w(!1)}),x&&0===n.length?(0,t.jsx)("div",{className:"py-6 text-center text-sm text-[var(--muted-foreground)]",children:"Loading activities..."}):0===n.length?(0,t.jsxs)("div",{className:"rounded-xl border border-dashed border-[var(--border)] bg-[var(--overlay-panel-muted)] p-6 text-center",children:[(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No activities yet."}),(0,t.jsx)("p",{className:"mt-1 text-xs text-[var(--app-shell-soft-text)]",children:"Activities are created by scheduled tasks and agent actions."})]}):(0,t.jsxs)("div",{children:[n.map(e=>(0,t.jsx)(X,{activity:e},e.id)),d&&(0,t.jsx)("div",{className:"pt-2 pl-6",children:(0,t.jsx)("button",{type:"button",onClick:()=>{let e=u+1;m(e),N(e,v,!0)},disabled:x,className:"text-xs text-sky-400 hover:text-sky-300 transition-colors disabled:opacity-50",children:x?"Loading...":"Load more"})})]})]})}var Y=e.i(644660),Q=e.i(44054),Z=e.i(434405),ee=e.i(169433),et=e.i(902572);let er={on_track:{label:"On track",chipClass:"border-[var(--status-completed-border)] bg-[var(--status-completed-bg)] text-[var(--status-completed-text)]",toneClass:"text-[var(--status-completed-text)]"},at_risk:{label:"At risk",chipClass:"border-[var(--status-blocked-border)] bg-[var(--status-blocked-bg)] text-[var(--status-blocked-text)]",toneClass:"text-[var(--status-blocked-text)]"},off_track:{label:"Off track",chipClass:"border-[var(--status-failed-border)] bg-[var(--status-failed-bg)] text-[var(--status-failed-text)]",toneClass:"text-[var(--status-failed-text)]"},done:{label:"Done",chipClass:"border-[var(--status-in-progress-border)] bg-[var(--status-in-progress-bg)] text-[var(--status-in-progress-text)]",toneClass:"text-[var(--status-in-progress-text)]"}};function ea({onResize:e}){let{isTouchLayout:r}=(0,Q.useInputCapabilities)(),a=(0,s.useRef)(!1),n=(0,s.useRef)(0);return((0,s.useEffect)(()=>{if(r||!a.current)return;let t=t=>{let r=n.current-t.clientX;n.current=t.clientX,e(r)},s=()=>{a.current=!1,document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("mousemove",t),window.removeEventListener("mouseup",s)};return window.addEventListener("mousemove",t),window.addEventListener("mouseup",s),()=>{window.removeEventListener("mousemove",t),window.removeEventListener("mouseup",s)}},[r,e]),r)?null:(0,t.jsx)("div",{role:"separator","aria-orientation":"vertical","aria-label":"Resize objective chat panel",className:"group relative z-10 hidden w-0 shrink-0 cursor-col-resize xl:block",onMouseDown:e=>{e.preventDefault(),a.current=!0,n.current=e.clientX,document.body.style.cursor="col-resize",document.body.style.userSelect="none"},children:(0,t.jsx)("div",{className:"absolute inset-y-0 -left-0.5 w-1 transition-colors group-hover:bg-[var(--primary)]/40"})})}function es(e){return new Date(e).toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}function en(){return{title:"",teamId:"",summary:"",cadence:"",condition:""}}function eo(e){return{id:e.id,title:e.title,teamId:e.teamId,summary:e.summary,cadence:e.cadence,condition:e.condition}}function ei(e,t,r){return t?e.objectives.find(e=>e.teamId===t&&e.id!==r)??null:null}function el(e,t,r){return e.filter(e=>!ei(t,e.id,r))}function ed(e){let t=e.trim();return t?(0,M.cronToHuman)(t)??t:"Not set yet"}function ec(e){let{projects:t,isLoading:r,refetch:a,updateProject:n}=(0,j.useProjects)(),[o,i]=(0,s.useState)([]),l=(0,s.useMemo)(()=>t.find(t=>t.slug===e)??null,[e,t]),d=(0,s.useMemo)(()=>(0,et.readProjectObjectivesWorkspace)(l?.metadata),[l?.metadata]),c=(0,s.useCallback)(async e=>{if(!l)throw Error("Project not found.");await n(l.id,{metadata:(0,et.writeProjectObjectivesWorkspace)(l.metadata??{},e)})},[l,n]);return(0,s.useEffect)(()=>{let e=!0;return async function(){if(!l?.id)return i([]);try{let t=await fetch(`/api/projects/${l.id}/teams`);if(!t.ok)throw Error("Failed to fetch teams");let r=await t.json();if(!e)return;i((r.teams??[]).map(e=>({id:"string"==typeof e.id?e.id:"",name:"string"==typeof e.name?e.name:"Untitled team"})).filter(e=>e.id))}catch{if(!e)return;i([])}}(),()=>{e=!1}},[l?.id]),{isLoading:r,project:l,workspace:d,teams:o,persistWorkspace:c,refetchProject:a}}function eu(e){return"user"===e.role&&!e.rootMessageId}function em({projectId:e,projectSlug:r,objective:a,teamName:n,onThreadLinked:l,onObjectiveUpdated:d}){let[c,u]=(0,s.useState)(()=>(0,ee.loadObjectiveChatPanelWidth)()||800),[m,x]=(0,s.useState)(a.threadId??(a.id?`objective-chat:${a.id}`:null)),[p,b]=(0,s.useState)("list"),[h,f]=(0,s.useState)(null),[g,j]=(0,s.useState)(!1),[C,I]=(0,s.useState)(a.chatSessionVersion),[$,E]=(0,s.useState)([]),[A,O]=(0,s.useState)(null),T=(0,s.useRef)(!1),M=(0,s.useRef)(!1),P=window.location?.origin?window.location.origin:null,{messages:R,setMessages:L,sendMessage:D,loadHistory:z,setChatRuns:F,stop:_,chatRuns:U}=(0,y.useGroupChat)(m),{processes:q,streaming:J,chatRuns:W,poll:V}=(0,w.useProcessPolling)(m?{workspaceId:m}:null,{messages:R,setMessages:L});(0,s.useEffect)(()=>{a.threadId&&a.threadId!==m&&x(a.threadId)},[a.threadId,m]),(0,s.useEffect)(()=>{b("list"),f(null),j(!1),M.current=!1},[a.id]),(0,s.useEffect)(()=>{I(a.chatSessionVersion),a.chatSessionVersion>=et.CURRENT_OBJECTIVE_CHAT_SESSION_VERSION&&(M.current=!0)},[a.chatSessionVersion]);let H=(0,s.useCallback)(async t=>{let r=t.trim();if(r&&!(await fetch(`/api/projects/${e}/threads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:r})})).ok)throw Error("Failed to link objective chat to the project.")},[e]);(0,s.useEffect)(()=>{let e=!1;return m?(j(!1),(async()=>{await z(m),e||j(!0)})(),()=>{e=!0}):void j(!0)},[z,m]),(0,s.useEffect)(()=>{let t=!1;return async function(){try{let r=a.teamId?`/api/projects/${e}/teams/${a.teamId}/agents`:`/api/projects/${e}/agents`,[s,n]=await Promise.all([fetch("/api/participants"),fetch(r)]),o=s.ok?await s.json():[],i=Array.isArray(o)?o:[],l=n.ok?await n.json():{agents:[]};if(t)return;let d=((l&&"object"==typeof l?l:{agents:[]}).agents??[]).slice().sort((e,t)=>e.routing_order-t.routing_order).map(e=>e.agent_id);if(0===d.length)return void E(i);let c=new Map(i.map(e=>[e.id,e]));E(d.map(e=>c.get(e)).filter(e=>!!e))}catch(e){if(t)return;console.error("Failed to load objective chat participants",e),E([])}}(),()=>{t=!0}},[e,a.teamId]),(0,s.useEffect)(()=>{a.threadId&&H(a.threadId).catch(e=>{console.warn("Failed to re-link objective chat thread to project",e)})},[H,a.threadId]),(0,s.useEffect)(()=>{if(!a.threadId||!m||!g||C>=et.CURRENT_OBJECTIVE_CHAT_SESSION_VERSION||M.current)return;M.current=!0;let t=function(e){let t=e.filter(eu).sort((e,t)=>e.timestamp-t.timestamp);if(t.length<=1)return null;let r=t[0]?.id;if(!r)return null;let a=t.slice(1).map(e=>e.id),s=new Set(a);return{messages:[...e].map(e=>{let t=s.has(e.id)&&eu(e),a="string"==typeof e.rootMessageId&&s.has(e.rootMessageId);return t||a?{...e,rootMessageId:r,parentMessageId:r,depth:1}:e}).sort((e,t)=>e.timestamp-t.timestamp),primaryRootMessageId:r,mergedRootMessageIds:a}}(R),r=!1;return(async()=>{O(null);try{if(t){if(!(await fetch("/api/history",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:m,messages:t.messages})})).ok)throw Error("Failed to migrate the objective chat history.");if(r)return;L(t.messages),f(e=>e&&t.mergedRootMessageIds.includes(e)?t.primaryRootMessageId:e)}if(!(await fetch(`/api/projects/${e}/objectives/${a.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({chatSessionVersion:et.CURRENT_OBJECTIVE_CHAT_SESSION_VERSION})})).ok)throw Error("Failed to update the objective chat session version.");if(r)return;I(et.CURRENT_OBJECTIVE_CHAT_SESSION_VERSION),d().catch(e=>{console.warn("Failed to refresh objective after objective chat migration",e)})}catch(e){if(r)return;console.warn("Failed to migrate legacy objective chat sessions",e),O(e instanceof Error?e.message:"Failed to migrate the objective chat history.")}})(),()=>{r=!0}},[C,g,R,a.id,a.threadId,d,e,L,m]);let B=(0,s.useCallback)(async()=>{if(a.threadId)return a.threadId;let t=m??(a.id?`objective-chat:${a.id}`:null);if(!t)return null;O(null);try{let s=await Z.threadService.createThread({id:t,title:a.title,metadata:{scope:"objective",objectiveId:a.id,projectId:e,projectSlug:r}});return x(s.id),await H(s.id),await l(s.id),s.id}catch(e){return O(e instanceof Error?e.message:"Failed to create the objective chat."),null}},[H,a.id,a.threadId,a.title,l,e,r,m]),X=(0,s.useMemo)(()=>new Map($.map(e=>[e.id,e])),[$]);(0,s.useEffect)(()=>{F(e=>{let t=Date.now(),r=new Map(e.filter(e=>"string"==typeof e.chatRunId&&e.chatRunId.length>0).map(e=>[e.chatRunId,e]));for(let e of W)e?.chatRunId&&r.set(e.chatRunId,e);return Array.from(r.values()).filter(e=>!!(!e.optimistic||W.some(t=>t.chatRunId===e.chatRunId))||t-(e.enqueuedAt??0)<=5e3).sort((e,t)=>String(e.chatRunId||"").localeCompare(String(t.chatRunId||"")))})},[W,F]);let G=(0,s.useMemo)(()=>{let e=Date.now(),t=new Map(W.map(e=>[e.chatRunId,e]));for(let r of U)!(!r.optimistic||t.has(r.chatRunId))&&(e-(r.enqueuedAt??0)>5e3||t.set(r.chatRunId,r));return Array.from(t.values()).filter(e=>"queued"===e.status||"running"===e.status||"awaiting_user"===e.status||"blocked"===e.status)},[U,W]),K=(0,s.useMemo)(()=>R.filter(eu).sort((e,t)=>t.timestamp-e.timestamp).map(e=>{let t,r=R.filter(t=>t.rootMessageId===e.id).sort((e,t)=>e.timestamp-t.timestamp),a=[e,...r],s=a[a.length-1]??e;return{rootMessageId:e.id,title:(t=e.content.replace(/\s+/g," ").trim())?t.length>56?`${t.slice(0,56).trim()}...`:t:"Untitled session",updatedAt:s.timestamp,messageCount:a.length,messages:a}}),[R]),Y=(0,s.useMemo)(()=>h?K.find(e=>e.rootMessageId===h)??null:null,[h,K]),Q="detail"===p&&!!h,er=new Set(["queued","running","awaiting_user","blocked"]),en=G.length>0||q.some(e=>"spawning"===e.state||"running"===e.state),eo=(0,s.useMemo)(()=>{let e=new Map;for(let t of G){if(!t.rootMessageId||!er.has(t.status))continue;let r="queued"===t.status?"queued":"working";"working"!==e.get(t.rootMessageId)&&e.set(t.rootMessageId,r)}for(let t of q)t.threadId&&("spawning"===t.state||"running"===t.state)&&e.set(t.threadId,"working");return e},[G,q]),ei=(0,s.useMemo)(()=>q.some(e=>"spawning"===e.state||"running"===e.state)||G.some(e=>er.has(e.status)&&"queued"!==e.status)?"working":G.some(e=>"queued"===e.status)?"queued":"ready",[G,er,q]);(0,s.useEffect)(()=>{T.current&&!en&&d().catch(e=>{console.warn("Failed to refresh objective after objective chat activity",e)}),T.current=en},[en,d]);let el=(0,s.useCallback)(async e=>{await fetch(`/api/chat-runs/${encodeURIComponent(e)}/signal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({signal:"cancel",reason:"Interrupted by a new objective chat message"})}).catch(e=>{console.warn("Failed to cancel objective chat run",e)})},[]),ec=(0,s.useCallback)(async()=>{let e=Array.from(new Set(G.map(e=>e.chatRunId).filter(e=>!!e)));await Promise.all(e.map(e=>el(e))),await _(),await V()},[G,el,V,_]),ex=(0,s.useCallback)(async(t,s,o,i,l,d,c)=>{let u,m,x,p,v,g,j,y,w;en&&await ec(),O(null);let N=await B();if(!N)return;let k=$.map(e=>e.id),S=Q?h:null,C=[(u=`/api/projects/${e}/objectives/${a.id}`,m=P?`${P}${u}`:u,x=`${m}/scheduled-tasks`,p=`${m}/linear-issues`,v=`${m}/notes`,g=`~/.agx/projects/${r}/objectives/${a.key}.md`,j=`~/.agx/projects/${r}/objectives/${a.key}/notes/`,y=`${m}/validate`,w=a.notes?.length?a.notes.map(e=>`- **${e.title}**: ${e.body.slice(0,120)}${e.body.length>120?"...":""}`).join("\n"):null,["You are working inside a strategy session for this project objective.",`Project slug: ${r}`,`Objective: ${a.title}`,`Objective label: ${a.key}`,n?`Owning team: ${n}`:"",w?`Current notes:
2
+ ${w}`:"Current notes: none yet.",a.cadence?`Wake schedule: ${ed(a.cadence)}`:"Wake schedule: not set yet.",a.condition?`Wake condition: ${a.condition}`:"",`## Objective file (source of truth)
3
+
4
+ This objective is stored as a frontmatter markdown file at:
5
+ \`${g}\`
6
+
7
+ File format:
8
+ - YAML frontmatter between \`---\` delimiters contains all metadata (title, teamId, key, status, progress, cadence, condition, scheduledTaskIds, threadId, chatSessionVersion, createdAt, updatedAt).
9
+ - \`## Activities\` section contains the activity timeline; each activity is a \`### Title\` block with metadata lines (\`- **id:**\`, \`- **source:**\`, \`- **created:**\`, \`- **body:**\`) and optional \`#### Replies\` sub-section.
10
+
11
+ Notes are stored as separate files in \`${j}\`. Each note is a markdown file with YAML frontmatter (id, title, objectiveId, createdAt, updatedAt) and a markdown body.
12
+
13
+ When updating the objective, you can edit this file directly. Rules:
14
+ - NEVER remove or break the \`---\` frontmatter delimiters.
15
+ - NEVER change the \`id\` or \`createdAt\` fields.
16
+ - Always update \`updatedAt\` to the current ISO timestamp when making changes.
17
+ - After any edit, call \`GET ${y}\` to verify the file is still valid.
18
+ - If validation fails, fix the errors immediately before doing anything else.`,"Scheduled tasks live in the shared scheduled-task list and are filtered by this objective label.","Your job is to help the team develop the strategy needed to reach the goal, including the right combination of objective notes, wake cadence/condition, scheduled tasks, and Linear tickets.","Use the current session history to build on prior reasoning. Only reset and start from scratch when the user explicitly starts a new session.","Use this thread to pressure-test strategy, suggest better tactics, rewrite the objective when asked, propose the right operational cadence, and take concrete follow-up actions when the user wants them applied.","When suggesting edits, prefer editing the frontmatter file directly or using the notes API. When the user asks you to make a change, edit the file, validate, then confirm.","Local objective APIs:",`- PATCH ${m} with JSON fields such as {"title","cadence","condition","teamId","key"} to update the objective itself.`,`- GET ${v} to list all notes for this objective. Returns {"notes":[...],"total","page","limit","hasMore"}.`,`- POST ${v} with {"title","body"} to create a new note.`,`- GET ${v}/{noteId} to read a single note.`,`- PATCH ${v}/{noteId} with {"title","body"} to update a note.`,`- DELETE ${v}/{noteId} to delete a note.`,`- GET ${x} to inspect the scheduled tasks already tracked for this objective.`,`- POST ${x} with {"name","prompt","cadence","condition","agentId","syncObjectiveSchedule":true} to create a scheduled task for this objective.`,`- GET ${p} to inspect Linear tickets carrying the objective label "${a.key}".`,`- POST ${p} with {"title","description","teamId","assigneeId","cycleId","stateId","priority"} to create a Linear ticket labeled "${a.key}".`,`- GET ${y} to validate the objective file on disk. Returns {"valid":true} or {"valid":false,"errors":[...]}.`].filter(Boolean).join("\n\n")),d].filter(Boolean).join("\n\n"),I=await D(t,s,N,S,o,i,l?[l]:k,r,C,c);!S&&I&&(f(I),b("detail"))},[P,B,en,ec,Q,a,$,e,r,h,D,n]),eb=(0,s.useMemo)(()=>Q?Y?.messages??[]:[],[Q,Y]),ev=(0,s.useMemo)(()=>Q&&h?Object.entries(J).filter(([,e])=>e.rootMessageId===h):[],[Q,h,J]),eh=(0,s.useCallback)(e=>{u(t=>{let r=Math.max(320,Math.min(1200,t+e));return(0,ee.persistObjectiveChatPanelWidth)(r),r})},[]);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ea,{onResize:eh}),(0,t.jsxs)("aside",{className:"relative flex h-full min-h-[420px] w-full flex-col overflow-hidden border-t border-[var(--border)] bg-[var(--overlay-panel)] xl:min-h-0 xl:w-[var(--objective-chat-panel-width)] xl:shrink-0 xl:self-stretch xl:border-l xl:border-t-0",style:{"--objective-chat-panel-width":`${c}px`},children:[(0,t.jsx)(ep,{message:A}),Q?(0,t.jsx)("div",{className:"border-b border-[var(--border)] px-4 py-4",children:(0,t.jsxs)("button",{type:"button",onClick:()=>b("list"),"aria-label":"Back to sessions",className:"inline-flex min-w-0 items-center gap-2 text-left text-sm font-medium text-[var(--foreground)] transition-colors hover:text-[var(--primary)]",children:[(0,t.jsx)(o.ArrowLeft,{className:"h-3.5 w-3.5"}),(0,t.jsx)("span",{className:"truncate",children:Y?.title??"Loading session..."})]})}):(0,t.jsx)("div",{className:"border-b border-[var(--border)] px-4 py-4",children:(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("p",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Strategy Sessions"}),(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)]",children:"Start a new strategy conversation below, or open an earlier session to keep building on it."})]})}),(0,t.jsx)("div",{className:`min-h-0 flex-1 overflow-y-auto pb-[calc(15rem+env(safe-area-inset-bottom))] ${Q?"px-4 py-4":"px-0 py-0"}`,children:Q?0===eb.length?(0,t.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 px-4 text-center text-[var(--muted-foreground)]",children:[(0,t.jsx)("p",{className:"text-sm font-medium text-[var(--foreground)]",children:"Loading strategy session"}),(0,t.jsx)("p",{className:"max-w-sm text-xs",children:"The conversation will appear here once the session history is ready."})]}):(0,t.jsxs)("div",{className:"space-y-5",children:[eb.map(e=>{let r=e.participantId?X.get(e.participantId):null;return(0,t.jsxs)("div",{className:"flex gap-3",children:["user"===e.role?(0,t.jsx)("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--overlay-panel-soft)] text-[var(--muted-foreground)]",children:(0,t.jsx)(v.User,{className:"h-4 w-4"})}):(0,t.jsx)("img",{src:(0,S.agentAvatarUrl)(e.participantId??"assistant",32,r?.color),alt:r?.name??"Agent",className:"h-8 w-8 shrink-0 rounded-full border border-[var(--border)] object-cover"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-[var(--foreground)]",children:"user"===e.role?"You":r?.name??"Agent"}),(0,t.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)]",children:new Date(e.timestamp).toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})})]}),(0,t.jsx)("div",{className:"mt-2 rounded-2xl border border-[var(--border)] bg-[var(--overlay-panel-muted)] px-4 py-3 text-sm text-[var(--foreground)]",children:(0,t.jsx)(k.Markdown,{content:e.content,isUser:"user"===e.role})})]})]},e.id)}),ev.map(([e])=>{let r=X.get(e);return(0,t.jsxs)("div",{className:"flex items-center gap-3 text-sm text-[var(--muted-foreground)]",children:[(0,t.jsx)("img",{src:(0,S.agentAvatarUrl)(e,32,r?.color),alt:r?.name??"Agent",className:"h-8 w-8 shrink-0 rounded-full border border-[var(--border)] object-cover"}),(0,t.jsxs)("span",{children:[r?.name??"Agent"," is thinking..."]})]},`stream-${e}`)})]}):0===K.length?(0,t.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 px-4 text-center text-[var(--muted-foreground)]",children:[(0,t.jsx)("p",{className:"text-sm font-medium text-[var(--foreground)]",children:"No strategy sessions yet"}),(0,t.jsx)("p",{className:"max-w-sm text-xs",children:"Use the composer below to start the first conversation about how this objective should be reached."})]}):(0,t.jsx)("div",{className:"divide-y divide-[var(--border)]",children:K.map(e=>{var r;let a=eo.get(e.rootMessageId)??null;return(0,t.jsxs)("button",{type:"button",onClick:()=>{f(e.rootMessageId),b("detail")},className:"flex w-full items-start justify-between gap-3 px-4 py-3 text-left transition-colors hover:bg-[var(--overlay-panel-soft)]",children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("p",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:e.title}),(0,t.jsxs)("p",{className:"mt-1 text-[11px] text-[var(--muted-foreground)]",children:[1===(r=e.messageCount)?"1 message":`${r} messages`," · Last"," ",es(e.updatedAt)]})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[a?(0,t.jsx)("span",{className:"rounded-full border border-[var(--status-in-progress-border)] bg-[var(--status-in-progress-bg)] px-2 py-1 text-[10px] font-semibold uppercase tracking-[0.18em] text-[var(--status-in-progress-text)]",children:"queued"===a?"Queued":"Working"}):null,(0,t.jsx)(i.ArrowRight,{className:"mt-0.5 h-4 w-4 text-[var(--muted-foreground)]"})]})]},e.rootMessageId)})})}),(0,t.jsx)("div",{className:"absolute bottom-0 left-0 right-0 bg-[var(--overlay-panel)] p-3 pb-[calc(0.75rem+env(safe-area-inset-bottom))]",children:(0,t.jsx)(N.Composer,{onSend:ex,onStop:ec,participants:$,commands:[],projectSlug:r,loading:"ready"!==ei,activityStatus:ei,sendInterruptsBusy:!0,placeholder:Q?`Continue strategy for "${a.title}"...`:`Start a new strategy session for "${a.title}"...`,initialPinnedParticipantId:$[0]?.id})})]})]})}function ex({label:e}){return(0,t.jsx)("div",{className:"flex h-full items-center justify-center text-sm text-[var(--muted-foreground)]",children:e})}function ep({message:e}){return e?(0,t.jsxs)("div",{className:"mt-3 flex items-center gap-2 rounded-2xl border border-rose-500/20 bg-rose-500/10 px-3 py-2 text-sm text-rose-100",children:[(0,t.jsx)(n.AlertTriangle,{className:"h-4 w-4"}),(0,t.jsx)("span",{children:e})]}):null}function eb({content:e,editable:r=!1,onChange:a,placeholder:s}){let n=e.trim().length>0;return r||n?(0,t.jsx)("div",{className:"overflow-hidden border-l-2 border-[var(--border)]/60 pl-4 transition-all focus-within:border-indigo-500/60",children:r||n?(0,t.jsx)(C.default,{content:e,editable:r,onChange:a,placeholder:s}):null}):null}function ev({onResize:e}){let{isTouchLayout:r}=(0,Q.useInputCapabilities)(),a=(0,s.useRef)(!1),n=(0,s.useRef)(0);return((0,s.useEffect)(()=>{if(r||!a.current)return;let t=t=>{let r=t.clientX-n.current;n.current=t.clientX,e(r)},s=()=>{a.current=!1,document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("mousemove",t),window.removeEventListener("mouseup",s)};return window.addEventListener("mousemove",t),window.addEventListener("mouseup",s),()=>{window.removeEventListener("mousemove",t),window.removeEventListener("mouseup",s)}},[r,e]),r)?null:(0,t.jsx)("div",{role:"separator","aria-orientation":"vertical","aria-label":"Resize objective list panel",className:"group relative z-10 w-0 shrink-0 cursor-col-resize",onMouseDown:e=>{e.preventDefault(),a.current=!0,n.current=e.clientX,document.body.style.cursor="col-resize",document.body.style.userSelect="none"},children:(0,t.jsx)("div",{className:"absolute inset-y-0 -left-0.5 w-1 transition-colors group-hover:bg-[var(--primary)]/40"})})}function eh({objective:e,activityCount:r,lastActivityAt:a,activeAgentIds:s,participants:n,isSelected:o,onSelect:i}){let l,d=(l=1===r?"1 activity":`${r} activities`,a?`${l} \xb7 Last ${es(a)}`:`${l} \xb7 No activity yet`);return(0,t.jsx)("article",{className:"px-2",children:(0,t.jsxs)("button",{type:"button",onClick:i,"aria-label":`Open details for ${e.title}`,className:`group flex w-full items-center gap-3 rounded-xl px-2 py-2 text-left transition-colors ${o?"bg-[var(--primary)]/10 border border-[var(--primary)]/20":"border border-transparent hover:bg-[var(--secondary)]"}`,children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1 py-0.5",children:[(0,t.jsx)("div",{className:"flex min-w-0 items-center gap-2",children:(0,t.jsx)("span",{className:`rounded-full border px-1.5 py-0 text-[9px] font-semibold uppercase tracking-[0.12em] ${er[e.status].chipClass}`,children:er[e.status].label})}),(0,t.jsx)("p",{className:"mt-1 truncate text-sm font-medium text-[var(--foreground)]",children:e.title}),(0,t.jsx)("p",{className:"mt-0.5 text-[11px] text-[var(--muted-foreground)]",children:d})]}),s&&s.length>0&&(0,t.jsx)("span",{className:"inline-flex items-center -space-x-1 shrink-0",children:s.slice(0,3).map(e=>{let r=n?.find(t=>t.id===e);return(0,t.jsxs)("span",{className:"relative inline-block",title:r?.name??e,children:[(0,t.jsx)("img",{src:(0,S.agentAvatarUrl)(e,16,r?.color??void 0),alt:r?.name??e,className:"h-3 w-3 rounded-full ring-[1.5px] ring-[var(--background)]"}),(0,t.jsx)("span",{className:"absolute -bottom-px -right-px h-1.5 w-1.5 rounded-full bg-green-500 ring-[1px] ring-[var(--background)]"})]},e)})})]})})}function ef({projectSlug:e,objectiveId:n,onObjectiveDeleted:o}){var i;let l,v,j,y,w=(0,a.useRouter)(),{isLoading:N,project:S,workspace:C,teams:$,persistWorkspace:E,refetchProject:A}=ec(e),O=(0,s.useMemo)(()=>C.objectives.find(e=>e.id===n)??null,[n,C.objectives]),M=(0,s.useMemo)(()=>el($,C,n),[n,$,C]),P=O?(i=O.teamId,$.find(e=>e.id===i)?.name??null):null,[R,L]=(0,s.useState)(null),[D,z]=(0,s.useState)(null),[F,_]=(0,s.useState)(null),[U,J]=(0,s.useState)("activity"),[W,V]=(0,s.useState)(0),[H,B]=(0,s.useState)(!1),[X,G]=(0,s.useState)(null),[Q,Z]=(0,s.useState)([]),[ee,ea]=(0,s.useState)(!1),[en,eu]=(0,s.useState)(null),[ev,eh]=(0,s.useState)({}),[ej,ew]=(0,s.useState)({}),[eN,ek]=(0,s.useState)(new Set),[eS,eC]=(0,s.useState)(""),[eI,e$]=(0,s.useState)(!1),[eE,eA]=(0,s.useState)([]),[eO,eT]=(0,s.useState)(!0),[eM,eP]=(0,s.useState)(!1),{jobs:eR}=(0,T.usePromptJobs)(S?.id??null,{requireProjectId:!0,includeObjectiveJobs:!0,objectiveId:n}),eL=(0,s.useMemo)(()=>eR.filter(e=>e.objectiveId===n).length,[eR,n]),eD=async e=>{B(!0),G(null);try{await E(e)}catch(e){throw G(e instanceof Error?e.message:"Failed to save objective updates."),e}finally{B(!1)}},ez=async()=>{if(!R||!O)return;let e=R.title.trim();if(!e)return void G("Objective statement is required.");let t={...O,title:e,updatedAt:new Date().toISOString()};await eD((0,et.upsertProjectObjective)(C,t)),L(null)},eF=(0,s.useCallback)(async()=>{if(S?.id&&O?.id){ea(!0);try{let e=await fetch(`/api/projects/${S.id}/objectives/${O.id}/notes?limit=100`);if(e.ok){let t=await e.json();Z(t.notes??[])}}catch{}finally{ea(!1)}}},[S?.id,O?.id]);(0,s.useEffect)(()=>{eF()},[eF]),(0,s.useEffect)(()=>{"notes"===U&&eF()},[U,eF]),(0,s.useEffect)(()=>{if(!S?.id||!O?.id)return;let e=new Set;for(let[t,r]of Object.entries(ev)){let a=Q.find(e=>e.id===t);a&&a.body!==r&&e.add(t)}for(let[t,r]of Object.entries(ej)){let a=Q.find(e=>e.id===t);a&&a.title!==r&&e.add(t)}if(0===e.size)return;let t=[];for(let r of e){let e={},a=ev[r],s=ej[r],n=Q.find(e=>e.id===r);if(!n||(void 0!==a&&a!==n.body&&(e.body=a),void 0!==s&&s!==n.title&&s.trim()&&(e.title=s.trim()),0===Object.keys(e).length))continue;let o=window.setTimeout(async()=>{ek(e=>new Set(e).add(r));try{let t=await fetch(`/api/projects/${S.id}/objectives/${O.id}/notes/${r}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(t.ok){let e=await t.json();Z(t=>t.map(t=>t.id===r?e.note:t))}}catch{G("Failed to save note.")}finally{ek(e=>{let t=new Set(e);return t.delete(r),t})}},700);t.push(o)}return()=>{for(let e of t)window.clearTimeout(e)}},[ev,ej,Q,S?.id,O?.id]);let e_=async()=>{if(!S?.id||!O?.id)return;let e=eS.trim()||"Untitled";e$(!0);try{let t=await fetch(`/api/projects/${S.id}/objectives/${O.id}/notes`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:e,body:""})});if(t.ok){let e=await t.json();Z(t=>[e.note,...t]),eu(e.note.id),eC("")}}catch{G("Failed to create note.")}finally{e$(!1)}},eU=async e=>{if(S?.id&&O?.id)try{let t=await fetch(`/api/projects/${S.id}/objectives/${O.id}/notes/${e}`,{method:"DELETE"});(t.ok||204===t.status)&&(Z(t=>t.filter(t=>t.id!==e)),en===e&&eu(null))}catch{G("Failed to delete note.")}},eq=async()=>{if(!F||!O)return;let e={...O,cadence:F.cadence.trim(),condition:F.condition.trim(),updatedAt:new Date().toISOString()};await eD((0,et.upsertProjectObjective)(C,e)),_(null)},eJ=async()=>{!O||window.confirm(`Delete "${O.title}"?`)&&(await eD((0,et.removeProjectObjective)(C,O.id)),o?o():w.push(`/projects/${e}`))},eW=(0,s.useCallback)(async e=>{O&&O.threadId!==e&&await eD((0,et.upsertProjectObjective)(C,{...O,threadId:e,updatedAt:new Date().toISOString()}))},[O,eD,C]),eV=(0,s.useCallback)(async e=>{if(!S?.id||!O?.id)return G("Objective not found."),!1;G(null);try{let t=await fetch(`/api/projects/${S.id}/objectives/${O.id}/scheduled-tasks`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,prompt:"objective_linear_ticket"===e.executionMode?e.prompt:function(e,t){let r=t.trim();if(!r)return r;let a=`Objective label: ${e.key}`;return r.toLowerCase().includes(a.toLowerCase())?r:[a,`Write your output as an activity file at ~/.agx/projects/<project>/objectives/${e.key}/activities/<timestamp>-<slug>.md
19
+ The file must have YAML frontmatter with: id (unique), source (your task ID), objectiveLabel: "${e.key}", createdAt (ISO), type (one of: metric-check, status-update, milestone, note).
20
+ The markdown body below the frontmatter contains your output.`,r].join("\n\n")}(O,e.prompt)})}),r=await t.json().catch(()=>({}));if(!t.ok)throw Error(r.error||"Failed to create scheduled task.");return await A(),!0}catch(e){return G(e instanceof Error?e.message:"Failed to create scheduled task."),!1}},[O,S?.id,A]),eH=(0,s.useCallback)(async()=>{if(!S?.id||!O?.id)return G("Objective not found."),!1;if(!O.teamId)return G("Assign a team to this objective before creating a worker."),!1;G(null);try{let e=await fetch(`/api/projects/${S.id}/objectives/${O.id}/scheduled-tasks`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:"Work objective Linear tickets",executionMode:"objective_linear_ticket"})}),t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t.error||"Failed to create objective Linear worker.");return await A(),!0}catch(e){return G(e instanceof Error?e.message:"Failed to create objective Linear worker."),!1}},[O,S?.id,A]);return((0,s.useEffect)(()=>{if(!S?.id||!O?.id){eA([]),eT(!0);return}let e=S.id,t=O.id,r=!1;return async function(){try{let a=await fetch(`/api/projects/${e}/objectives/${t}/linear-issues`),s=401===a.status?{connected:!1,issues:[]}:a.ok?await a.json():{connected:!0,issues:[]};if(r)return;eA(Array.isArray(s.issues)?s.issues:[]),eT(!1!==s.connected)}catch(e){if(r)return;console.warn("Failed to load objective resources",e),eA([]),eT(!0)}}(),()=>{r=!0}},[O?.id,O?.key,S?.id]),N&&!S)?(0,t.jsx)(ex,{label:"Loading objective..."}):S?O?(0,t.jsxs)("div",{className:"flex h-full min-h-0 flex-col bg-[radial-gradient(circle_at_top_left,rgba(59,130,246,0.1),transparent_28%),var(--background)] text-[var(--foreground)]",children:[(0,t.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:(0,t.jsxs)("div",{className:"flex h-full min-h-0 flex-col xl:flex-row",children:[(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:(0,t.jsxs)("div",{className:"max-w-5xl mx-auto pt-16 px-8 pb-20",children:[(0,t.jsx)(ep,{message:X}),(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,t.jsx)("span",{className:"rounded-full border border-[var(--tone-neutral-border)] bg-[var(--tone-neutral-bg)] px-2.5 py-0.5 text-[10px] font-mono uppercase tracking-wider text-[var(--tone-neutral)]",children:O.key}),(0,t.jsx)("span",{className:`rounded-full border px-2.5 py-0.5 text-[10px] font-semibold uppercase tracking-[0.18em] ${er[O.status].chipClass}`,children:er[O.status].label})]}),(0,t.jsx)("div",{className:"mb-6",children:R?(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{autoFocus:!0,value:R.title,onChange:e=>L({...R,title:e.target.value}),onKeyDown:e=>{"Enter"===e.key&&ez(),"Escape"===e.key&&L(null)},className:"flex-1 border-b-2 border-[var(--primary)] bg-transparent px-0 py-1 text-[28px] font-semibold leading-tight text-[var(--foreground)] outline-none",placeholder:"Objective statement"}),(0,t.jsx)("button",{type:"button",onClick:()=>void ez(),disabled:H,className:"rounded-md p-1.5 text-[var(--primary)] transition-colors hover:bg-[var(--status-in-progress-bg)]","aria-label":"Save objective",children:(0,t.jsx)(c.Check,{size:18})}),(0,t.jsx)("button",{type:"button",onClick:()=>L(null),className:"rounded-md p-1.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)]","aria-label":"Cancel editing",children:(0,t.jsx)(g.X,{size:18})})]}):(0,t.jsxs)("button",{type:"button","aria-label":`Edit objective ${O.title}`,className:"flex items-center gap-3 group cursor-pointer text-left",onClick:()=>L(eo(O)),children:[(0,t.jsx)("h1",{className:"text-[28px] leading-tight font-semibold text-[var(--foreground)]",children:O.title}),(0,t.jsx)(x.Pencil,{size:16,className:"shrink-0 text-[var(--muted-foreground)] opacity-0 transition-opacity group-hover:opacity-100"})]})}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-x-6 gap-y-3 mb-10",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wider text-[var(--muted-foreground)]",children:[(0,t.jsx)(h.Users,{size:12})," Team"]}),(0,t.jsx)("span",{className:"text-[var(--app-shell-soft-text)]",children:"·"}),D?(0,t.jsx)("div",{className:"min-w-[180px]",children:(0,t.jsx)(I.default,{options:M.map(e=>({id:e.id,label:e.name})),value:D.teamId,onChange:e=>{z({teamId:e});let t=e.trim();if(!t||!O)return;let r=ei(C,t,O.id);r?G(`Team is already assigned to "${r.title}".`):(eD((0,et.upsertProjectObjective)(C,{...O,teamId:t,updatedAt:new Date().toISOString()})),z(null))},placeholder:"Select a team…"})}):(0,t.jsxs)("button",{type:"button","aria-label":`Edit team for ${O.title}`,onClick:()=>z({teamId:O.teamId}),className:"group -mx-1.5 -my-0.5 flex items-center gap-2 rounded px-1.5 py-0.5 transition-colors hover:bg-[var(--muted)]",children:[(0,t.jsx)("div",{className:"w-5 h-5 rounded-full bg-blue-500/20 text-blue-400 flex items-center justify-center text-[10px] font-bold border border-blue-500/30",children:(P??"?").charAt(0).toUpperCase()}),(0,t.jsx)("span",{className:"text-sm text-[var(--foreground)] transition-colors group-hover:text-[var(--primary)]",children:P??"Not assigned"})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wider text-[var(--muted-foreground)]",children:[(0,t.jsx)(u.Clock,{size:12})," Check-in"]}),(0,t.jsx)("span",{className:"text-[var(--app-shell-soft-text)]",children:"·"}),(0,t.jsx)("button",{type:"button",onClick:()=>_(eo(O)),"aria-label":`Edit cadence for ${O.title}`,className:"-my-0.5 rounded px-1.5 py-0.5 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--muted)] hover:text-[var(--primary)]",children:ed(O.cadence)}),O.condition?(0,t.jsxs)("span",{className:"max-w-[200px] truncate text-xs text-[var(--muted-foreground)]",children:["· ",O.condition]}):null]})]}),(0,t.jsx)("div",{className:"mb-8 border-b border-[var(--border)]",children:(0,t.jsx)("nav",{className:"flex gap-1 -mb-px","aria-label":"Objective sections",children:[{id:"activity",label:"Activity",icon:u.Clock},{id:"notes",label:"Notes",icon:m.FileText},{id:"linear",label:"Linear",icon:Y.LinearIcon},{id:"scheduled-tasks",label:"Scheduled Tasks",icon:d}].map(e=>{let r,a;return(0,t.jsxs)("button",{type:"button",onClick:()=>J(e.id),className:`flex items-center gap-2 px-3 py-2.5 text-sm font-medium border-b-2 transition-colors ${U===e.id?"border-[var(--primary)] text-[var(--foreground)]":"border-transparent text-[var(--muted-foreground)] hover:border-[var(--border)] hover:text-[var(--foreground)]"}`,children:[(0,t.jsx)(e.icon,{size:14}),e.label,"activity"===e.id&&W>0&&(0,t.jsx)("span",{className:"rounded-full bg-[var(--tone-neutral-bg)] px-1.5 py-0.5 font-mono text-[10px] text-[var(--tone-neutral)]",children:W}),"notes"===e.id&&Q.length>0&&(0,t.jsx)("span",{className:"rounded-full bg-[var(--tone-neutral-bg)] px-1.5 py-0.5 font-mono text-[10px] text-[var(--tone-neutral)]",children:Q.length}),"linear"===e.id&&(r=["done","canceled","cancelled","completed","duplicate"],(a=eE.filter((e,t,a)=>a.findIndex(t=>t.id===e.id)===t&&!r.includes(e.status.toLowerCase()))).length>0?(0,t.jsx)("span",{className:"rounded-full bg-[var(--tone-neutral-bg)] px-1.5 py-0.5 font-mono text-[10px] text-[var(--tone-neutral)]",children:a.length}):null),"scheduled-tasks"===e.id&&eL>0&&(0,t.jsx)("span",{className:"rounded-full bg-[var(--tone-neutral-bg)] px-1.5 py-0.5 font-mono text-[10px] text-[var(--tone-neutral)]",children:eL})]},e.id)})})}),(0,t.jsxs)("div",{className:"space-y-10",children:["notes"===U&&(0,t.jsxs)("section",{className:"space-y-4",children:[(0,t.jsx)("div",{className:"flex justify-between items-end",children:(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Capture the strategy, constraints, and what better looks like."})}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("input",{type:"text",value:eS,onChange:e=>eC(e.target.value),onKeyDown:e=>{"Enter"===e.key&&e_()},placeholder:"New note title...",className:"flex-1 rounded-md border border-[var(--border)] bg-[var(--input)] px-3 py-1.5 text-sm text-[var(--foreground)] placeholder:text-[var(--app-shell-soft-text)] focus:border-[var(--primary)] focus:outline-none"}),(0,t.jsxs)("button",{type:"button",onClick:e_,disabled:eI,className:"flex items-center gap-1.5 rounded-md border border-[var(--status-in-progress-border)] bg-[var(--status-in-progress-bg)] px-3 py-1.5 text-sm font-medium text-[var(--status-in-progress-text)] transition-opacity hover:opacity-90 disabled:opacity-50",children:[(0,t.jsx)(p.Plus,{size:14}),"Add"]})]}),ee?(0,t.jsx)("p",{className:"py-4 text-sm text-[var(--muted-foreground)]",children:"Loading notes..."}):0===Q.length?(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)] py-4",children:"No notes yet. Add one above."}):(0,t.jsx)("div",{className:"space-y-3",children:Q.map(e=>{let r=en===e.id,a=eN.has(e.id),s=ev[e.id]??e.body,n=ej[e.id]??e.title;return(0,t.jsxs)("div",{className:"overflow-hidden rounded-lg border border-[var(--border)]",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between bg-[var(--overlay-panel-muted)] px-4 py-2.5",children:[r?(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-1 mr-2",children:[(0,t.jsx)(m.FileText,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("input",{type:"text",value:n,onChange:t=>ew(r=>({...r,[e.id]:t.target.value})),className:"flex-1 border-b border-[var(--border)] bg-transparent py-0.5 text-sm font-medium text-[var(--foreground)] focus:border-[var(--primary)] focus:outline-none"})]}):(0,t.jsxs)("button",{type:"button",onClick:()=>eu(e.id),className:"flex items-center gap-2 text-sm font-medium text-[var(--foreground)] transition-colors hover:text-[var(--primary)]",children:[(0,t.jsx)(m.FileText,{size:14,className:"text-[var(--muted-foreground)]"}),e.title]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)]",children:a?"Saving...":new Date(e.updatedAt).toLocaleDateString()}),(0,t.jsx)("button",{type:"button",onClick:()=>eu(r?null:e.id),className:"p-1 text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:(0,t.jsx)(x.Pencil,{size:12})}),(0,t.jsx)("button",{type:"button",onClick:()=>eU(e.id),className:"p-1 text-[var(--muted-foreground)] transition-colors hover:text-[var(--destructive)]",children:(0,t.jsx)(b.Trash2,{size:12})})]})]}),r?(0,t.jsx)("div",{className:"px-4 py-3",children:(0,t.jsx)(eb,{content:s,editable:!0,onChange:t=>eh(r=>({...r,[e.id]:t})),placeholder:"Write your note..."})}):e.body.trim()?(0,t.jsx)("div",{className:"cursor-pointer px-4 py-3 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--overlay-panel-muted)]",onClick:()=>eu(e.id),children:(0,t.jsx)("div",{className:"line-clamp-3",children:(0,t.jsx)(k.Markdown,{content:e.body})})}):(0,t.jsx)("div",{className:"cursor-pointer px-4 py-3 text-sm italic text-[var(--muted-foreground)] transition-colors hover:bg-[var(--overlay-panel-muted)]",onClick:()=>eu(e.id),children:"Empty note — click to edit"})]},e.id)})})]}),"activity"===U&&S.id&&O.id&&(0,t.jsx)(K,{projectId:S.id,objectiveId:O.id,onTotalChange:V}),"linear"===U&&(l=eE.filter((e,t,r)=>r.findIndex(t=>t.id===e.id)===t),v=["done","canceled","cancelled","completed","duplicate"],j=l.filter(e=>!v.includes(e.status.toLowerCase())),y=l.filter(e=>v.includes(e.status.toLowerCase())).slice(-5),(0,t.jsxs)("section",{children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3 mb-4",children:[(0,t.jsxs)("p",{className:"text-sm text-[var(--muted-foreground)]",children:["Tickets tracked by the objective label"," ",(0,t.jsx)("code",{className:"rounded bg-[var(--tone-neutral-bg)] px-1.5 py-0.5 font-mono text-[11px] text-[var(--foreground)]",children:O.key}),"."]}),(0,t.jsxs)("button",{type:"button",onClick:async()=>{eP(!0),await eH(),eP(!1)},disabled:eM||!O.teamId,title:O.teamId?void 0:"Assign a team to this objective first",className:"inline-flex items-center gap-2 rounded-xl border border-[var(--status-completed-border)] bg-[var(--status-completed-bg)] px-3 py-2 text-sm text-[var(--status-completed-text)] transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",children:[(0,t.jsx)(f.Sparkles,{className:"h-4 w-4"}),eM?"Creating...":O.teamId?"Work Linear tickets":"Assign team to work"]})]}),eO?0===l.length?(0,t.jsx)(eg,{label:`No Linear tickets with label ${O.key} yet.`}):(0,t.jsxs)(t.Fragment,{children:[j.length>0&&(0,t.jsx)("div",{className:"space-y-3",children:j.map(e=>(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--border)] bg-[var(--overlay-panel-muted)] p-4",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:e.identifier}),e.url?(0,t.jsx)("a",{href:e.url,target:"_blank",rel:"noreferrer",className:"mt-1 block text-sm font-medium text-[var(--foreground)] transition-colors hover:text-[var(--primary)]",children:e.title}):(0,t.jsx)("p",{className:"mt-1 text-sm font-medium text-[var(--foreground)]",children:e.title})]}),(0,t.jsx)("span",{className:"rounded-full border border-[var(--tone-neutral-border)] px-2 py-1 text-[10px] font-semibold uppercase tracking-[0.18em] text-[var(--tone-neutral)]",children:e.status})]}),(0,t.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2 text-[11px] text-[var(--muted-foreground)]",children:[(0,t.jsxs)("span",{children:["Updated ",es(e.updatedAt)]}),(0,t.jsx)("span",{children:e.assignee?`Assigned to ${e.assignee}`:"Unassigned"})]})]},e.id))}),y.length>0&&(0,t.jsxs)("div",{className:j.length>0?"mt-6":"",children:[(0,t.jsx)("p",{className:"text-[11px] font-medium uppercase tracking-[0.18em] text-[var(--muted-foreground)] mb-2",children:"Completed"}),(0,t.jsx)("div",{className:"space-y-0.5",children:y.map(e=>(0,t.jsxs)("a",{href:e.url??"#",target:"_blank",rel:"noreferrer",className:"group flex items-center gap-3 rounded-md px-2 py-1.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)] hover:text-[var(--foreground)]",children:[(0,t.jsx)("span",{className:"text-[11px] font-mono shrink-0",children:e.identifier}),(0,t.jsx)("span",{className:"text-[12px] truncate",children:e.title}),(0,t.jsx)("span",{className:"ml-auto shrink-0 text-[10px] text-[var(--app-shell-soft-text)] group-hover:text-[var(--muted-foreground)]",children:e.status})]},e.id))})]})]}):(0,t.jsx)(eg,{label:"Connect Linear to create and track tickets for this objective."})]})),"scheduled-tasks"===U&&(0,t.jsx)("section",{children:(0,t.jsx)(q,{projectId:S.id,objectiveId:O.id,objectiveKey:O.key,createDefaults:{name:`Work on ${O.title}`,cadence:O.cadence,condition:O.condition},onCreateTask:eV})}),(0,t.jsxs)("section",{className:"pt-10",children:[(0,t.jsx)("div",{className:"mb-4",children:(0,t.jsx)("h2",{className:"text-sm font-semibold text-[var(--destructive)]",children:"Danger Zone"})}),(0,t.jsxs)("div",{className:"flex items-center justify-between rounded-xl border border-[var(--destructive-border)] bg-[var(--destructive-bg)] p-5",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:"Delete Objective"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:"Once you delete an objective, there is no going back."})]}),(0,t.jsxs)("button",{type:"button",onClick:()=>void eJ(),"aria-label":`Delete objective ${O.title}`,className:"flex items-center gap-2 whitespace-nowrap rounded-md border border-[var(--destructive-border)] bg-[var(--destructive-bg)] px-3 py-1.5 text-sm font-medium text-[var(--destructive)] transition-opacity hover:opacity-90",children:[(0,t.jsx)(b.Trash2,{size:14})," Delete"]})]})]})]})]})}),(0,t.jsx)(em,{projectId:S.id,projectSlug:e,objective:O,teamName:P,onThreadLinked:eW,onObjectiveUpdated:A})]})}),F?(0,t.jsx)(ey,{draft:F,isSaving:H,onChange:_,onClose:()=>_(null),onSave:()=>void eq()}):null]}):(0,t.jsx)("div",{className:"flex h-full items-center justify-center px-4 bg-[var(--background)]",children:(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--border)] bg-[var(--card-bg)] p-8 text-center",children:[(0,t.jsx)("p",{className:"text-lg font-semibold text-[var(--foreground)]",children:"Objective not found"}),(0,t.jsx)("p",{className:"mt-2 text-sm text-[var(--muted-foreground)]",children:"It may have been deleted or the link is stale."}),(0,t.jsx)(r.default,{href:`/projects/${e}`,className:"mt-4 inline-flex items-center gap-2 rounded-md border border-[var(--border)] bg-[var(--card-bg)] px-3 py-1.5 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:"Back to objectives"})]})}):(0,t.jsx)(ex,{label:"Project not found."})}function eg({label:e}){return(0,t.jsx)("div",{className:"flex items-center rounded-xl border border-dashed border-[var(--border)] bg-[var(--overlay-panel-muted)] p-6",children:(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:e})})}function ej({mode:e,draft:r,teams:a=[],isSaving:s,onChange:n,onClose:o,onSave:i}){return(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/45 p-4",children:(0,t.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":"edit"===e?"Edit objective":"New objective",className:"w-full max-w-3xl overflow-hidden rounded-[32px] border border-[var(--border)] bg-[var(--overlay-panel-strong)] shadow-2xl",children:[(0,t.jsxs)("div",{className:"border-b border-[var(--border)] px-5 py-4",children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--foreground)]",children:"edit"===e?"Edit objective":"New objective"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:"edit"===e?"Update the tracking details for this objective.":"Keep the statement measurable and use notes only for context that matters."})]}),(0,t.jsxs)("div",{className:"space-y-4 px-5 py-5",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(ew,{label:"Objective statement"}),(0,t.jsx)("input",{value:r.title,onChange:e=>n({...r,title:e.target.value}),className:"w-full rounded-2xl border border-[var(--border)] bg-[var(--input)] px-4 py-3 text-sm text-[var(--foreground)] outline-none transition-colors focus:border-[var(--primary)]",placeholder:"Get 50 qualified visitors daily"})]}),"create"===e?(0,t.jsxs)("div",{children:[(0,t.jsx)(ew,{label:"Team"}),(0,t.jsxs)("select",{value:r.teamId,onChange:e=>n({...r,teamId:e.target.value}),className:"w-full rounded-2xl border border-[var(--border)] bg-[var(--input)] px-3 py-3 text-sm text-[var(--foreground)] outline-none transition-colors focus:border-[var(--primary)]",children:[(0,t.jsx)("option",{value:"",children:"Select a team"}),a.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))]}),(0,t.jsx)("p",{className:"mt-2 text-xs text-[var(--muted-foreground)]",children:"Teams can only own one objective at a time."})]}):null]}),(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2 border-t border-[var(--border)] px-5 py-4",children:[(0,t.jsx)("button",{type:"button",onClick:o,className:"rounded-xl border border-[var(--border)] px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:"Cancel"}),(0,t.jsx)("button",{type:"button",onClick:i,disabled:s,className:"rounded-xl border border-[var(--status-in-progress-border)] bg-[var(--status-in-progress-bg)] px-3 py-2 text-sm font-medium text-[var(--status-in-progress-text)] transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",children:s?"Saving...":"edit"===e?"Save objective":"Create objective"})]})]})})}function ey({draft:e,isSaving:r,onChange:a,onClose:s,onSave:n}){return(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/45 p-4",children:(0,t.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":"Edit wake schedule",className:"w-full max-w-2xl overflow-hidden rounded-[32px] border border-[var(--border)] bg-[var(--overlay-panel-strong)] shadow-2xl",children:[(0,t.jsxs)("div",{className:"border-b border-[var(--border)] px-5 py-4",children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-[var(--foreground)]",children:"Edit wake schedule"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[var(--muted-foreground)]",children:"Control when agents should wake up and whether they should gate execution on a condition."})]}),(0,t.jsx)("div",{className:"px-5 py-5",children:(0,t.jsx)($.ScheduleConditionPicker,{value:{cadence:e.cadence,condition:e.condition},onChange:t=>a({...e,cadence:t.cadence,condition:t.condition}),allowEmptySchedule:!0,scheduleLabel:"Schedule",conditionLabel:"Condition",conditionHelpText:"Use a condition when agents should only work on this objective in specific circumstances."})}),(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2 border-t border-[var(--border)] px-5 py-4",children:[(0,t.jsx)("button",{type:"button",onClick:s,className:"rounded-xl border border-[var(--border)] px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:"Cancel"}),(0,t.jsx)("button",{type:"button",onClick:n,disabled:r,className:"rounded-xl border border-[var(--status-in-progress-border)] bg-[var(--status-in-progress-bg)] px-3 py-2 text-sm font-medium text-[var(--status-in-progress-text)] transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-50",children:r?"Saving...":"Save schedule"})]})]})})}function ew({label:e}){return(0,t.jsx)("label",{className:"mb-2 block text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:e})}e.s(["ProjectObjectivesOverview",0,function({projectSlug:e,initialObjectiveId:r}){let{isLoading:a,project:n,workspace:o,teams:i,persistWorkspace:l}=ec(e),d=o.objectives,c=(0,s.useMemo)(()=>el(i,o),[i,o]),[u,m]=(0,s.useState)(r??null),[x,b]=(0,s.useState)(()=>(0,ee.loadObjectiveListPanelWidth)()||320),[v,h]=(0,s.useState)(null),[f,g]=(0,s.useState)(!1),[j,y]=(0,s.useState)(null),[w,N]=(0,s.useState)(new Map),[k,S]=(0,s.useState)([]);(0,s.useEffect)(()=>{!u&&d.length>0&&m(d[0].id)},[u,d]),(0,s.useEffect)(()=>{u&&d.length>0&&!d.some(e=>e.id===u)&&m(d[0]?.id??null)},[u,d]),(0,s.useEffect)(()=>{let e=!1;return async function(){try{let t=await fetch("/api/participants");t.ok&&!e&&S(await t.json())}catch{}}(),()=>{e=!0}},[]),(0,s.useEffect)(()=>{let e=new Map;for(let t of d)t.threadId&&e.set(t.threadId,t.id);if(0===e.size)return;let t=!1;async function r(){try{let r=Array.from(e.keys()).join(","),a=await fetch(`/api/chat-runs/active-agents?threadIds=${encodeURIComponent(r)}`);if(!a.ok||t)return;let s=await a.json(),n=new Map;for(let[t,r]of Object.entries(s.activeAgents??{})){let a=e.get(t);a&&Array.isArray(r)&&r.length>0&&n.set(a,r)}t||N(n)}catch{}}r();let a=setInterval(()=>void r(),5e3);return()=>{t=!0,clearInterval(a)}},[d]);let C=async()=>{if(!v)return;let e=v.title.trim();if(!e)return void y("Objective statement is required.");let t=v.teamId.trim();if(!t)return void y("Team is required.");let r=ei(o,t);if(r)return void y(`Team is already assigned to "${r.title}".`);let a=new Date().toISOString(),s=(0,et.createProjectObjective)({title:e,teamId:t,key:(0,et.generateProjectObjectiveKey)(e,o.objectives),summary:v.summary,cadence:v.cadence,condition:v.condition,now:a});g(!0),y(null);try{await l((0,et.upsertProjectObjective)(o,s)),h(null),m(s.id)}catch(e){y(e instanceof Error?e.message:"Failed to save objective updates.")}finally{g(!1)}},I=(0,s.useCallback)(e=>{b(t=>{let r=Math.max(240,Math.min(480,t+e));return(0,ee.persistObjectiveListPanelWidth)(r),r})},[]);return a&&!n?(0,t.jsx)(ex,{label:"Loading objectives..."}):n?(0,t.jsxs)("div",{className:"flex h-full min-h-0 overflow-hidden bg-[var(--background)] text-[var(--foreground)]",children:[(0,t.jsxs)("div",{className:"flex flex-shrink-0 flex-col border-r border-[var(--border)] bg-[var(--background)]",style:{width:x},children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-[var(--border)] px-4 py-3",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:"text-xs font-semibold uppercase tracking-[0.12em] text-[var(--muted-foreground)]",children:"Objectives"}),(0,t.jsx)("p",{className:"mt-0.5 text-[11px] text-[var(--muted-foreground)]",children:0===d.length?"None yet":`${d.length} total`})]}),(0,t.jsx)("button",{type:"button",onClick:()=>h(en()),className:"inline-flex h-7 w-7 items-center justify-center rounded-lg text-[var(--muted-foreground)] transition-colors hover:bg-[var(--secondary)] hover:text-[var(--foreground)]","aria-label":"New objective",children:(0,t.jsx)(p.Plus,{className:"h-4 w-4"})})]}),(0,t.jsx)(ep,{message:j}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto py-1",children:0===d.length?(0,t.jsxs)("div",{className:"px-4 py-8 text-center",children:[(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No objectives yet."}),(0,t.jsx)("button",{type:"button",onClick:()=>h(en()),className:"mt-2 text-sm text-[var(--primary)] hover:underline",children:"Create one"})]}):(0,t.jsx)("div",{className:"space-y-0.5",children:d.map(e=>{let r=(0,et.buildObjectiveTimelineActivities)({objective:e,workspace:o});return(0,t.jsx)(eh,{objective:e,activityCount:r.length,lastActivityAt:r[0]?.createdAt??null,activeAgentIds:w.get(e.id),participants:k,isSelected:u===e.id,onSelect:()=>m(e.id)},e.id)})})})]}),(0,t.jsx)(ev,{onResize:I}),(0,t.jsx)("div",{className:"flex-1 min-w-0 min-h-0 overflow-hidden",children:u?(0,t.jsx)(ef,{projectSlug:e,objectiveId:u,onObjectiveDeleted:()=>m(null)}):(0,t.jsx)("div",{className:"flex h-full items-center justify-center text-sm text-[var(--muted-foreground)]",children:0===d.length?"Create an objective to get started.":"Select an objective from the list."})}),v?(0,t.jsx)(ej,{mode:"create",draft:v,teams:c,isSaving:f,onChange:h,onClose:()=>h(null),onSave:()=>void C()}):null]}):(0,t.jsx)(ex,{label:"Project not found."})}],568656)}]);