vibedoc 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (638) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +9 -0
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +42 -14
  5. package/.next/routes-manifest.json +54 -0
  6. package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
  7. package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/(app)/board/page.js.nft.json +1 -1
  9. package/.next/server/app/(app)/board/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/(app)/chat/page.js.nft.json +1 -1
  11. package/.next/server/app/(app)/chat/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
  13. package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/(app)/explorer/page.js.nft.json +1 -1
  15. package/.next/server/app/(app)/explorer/page_client-reference-manifest.js +1 -1
  16. package/.next/server/app/(app)/manual-tests/page/app-paths-manifest.json +3 -0
  17. package/.next/server/app/(app)/manual-tests/page/build-manifest.json +20 -0
  18. package/.next/server/app/(app)/manual-tests/page/next-font-manifest.json +11 -0
  19. package/.next/server/app/(app)/manual-tests/page/react-loadable-manifest.json +1 -0
  20. package/.next/server/app/(app)/manual-tests/page/server-reference-manifest.json +4 -0
  21. package/.next/server/app/(app)/manual-tests/page.js +15 -0
  22. package/.next/server/app/(app)/manual-tests/page.js.map +5 -0
  23. package/.next/server/app/(app)/manual-tests/page.js.nft.json +1 -0
  24. package/.next/server/app/(app)/manual-tests/page_client-reference-manifest.js +3 -0
  25. package/.next/server/app/(app)/memory/page.js.nft.json +1 -1
  26. package/.next/server/app/(app)/memory/page_client-reference-manifest.js +1 -1
  27. package/.next/server/app/(app)/roadmap/page.js.nft.json +1 -1
  28. package/.next/server/app/(app)/roadmap/page_client-reference-manifest.js +1 -1
  29. package/.next/server/app/(app)/settings/page.js.nft.json +1 -1
  30. package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
  31. package/.next/server/app/(app)/setup/page.js.nft.json +1 -1
  32. package/.next/server/app/(app)/setup/page_client-reference-manifest.js +1 -1
  33. package/.next/server/app/_global-error.html +1 -1
  34. package/.next/server/app/_global-error.rsc +1 -1
  35. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  36. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  37. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  38. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  39. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  40. package/.next/server/app/_not-found.html +1 -1
  41. package/.next/server/app/_not-found.rsc +3 -2
  42. package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -2
  43. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -2
  44. package/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -2
  45. package/.next/server/app/activity.html +1 -1
  46. package/.next/server/app/activity.rsc +20 -18
  47. package/.next/server/app/activity.segments/!KGFwcCk/activity/__PAGE__.segment.rsc +7 -6
  48. package/.next/server/app/activity.segments/_full.segment.rsc +20 -18
  49. package/.next/server/app/activity.segments/_tree.segment.rsc +3 -2
  50. package/.next/server/app/api/activity/route.js +2 -2
  51. package/.next/server/app/api/activity/route.js.nft.json +1 -1
  52. package/.next/server/app/api/backlinks/route.js +2 -2
  53. package/.next/server/app/api/backlinks/route.js.nft.json +1 -1
  54. package/.next/server/app/api/chat/route.js +1 -1
  55. package/.next/server/app/api/chat/route.js.nft.json +1 -1
  56. package/.next/server/app/api/context/route.js +2 -2
  57. package/.next/server/app/api/context/route.js.nft.json +1 -1
  58. package/.next/server/app/api/conversations/route.js +2 -2
  59. package/.next/server/app/api/conversations/route.js.nft.json +1 -1
  60. package/.next/server/app/api/decisions/route.js +2 -2
  61. package/.next/server/app/api/decisions/route.js.nft.json +1 -1
  62. package/.next/server/app/api/docs/route.js +1 -1
  63. package/.next/server/app/api/docs/route.js.nft.json +1 -1
  64. package/.next/server/app/api/explorer/route.js +2 -2
  65. package/.next/server/app/api/explorer/route.js.nft.json +1 -1
  66. package/.next/server/app/api/mcp/route.js +1 -1
  67. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  68. package/.next/server/app/api/memory/route.js +2 -2
  69. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  70. package/.next/server/app/api/plan/apply/route.js +3 -3
  71. package/.next/server/app/api/plan/apply/route.js.nft.json +1 -1
  72. package/.next/server/app/api/projects/route.js +2 -2
  73. package/.next/server/app/api/projects/route.js.nft.json +1 -1
  74. package/.next/server/app/api/registry/route.js +2 -2
  75. package/.next/server/app/api/registry/route.js.nft.json +1 -1
  76. package/.next/server/app/api/roadmap/create/route.js +3 -3
  77. package/.next/server/app/api/roadmap/create/route.js.nft.json +1 -1
  78. package/.next/server/app/api/roadmap/delete/route.js +3 -3
  79. package/.next/server/app/api/roadmap/delete/route.js.nft.json +1 -1
  80. package/.next/server/app/api/roadmap/generate/route.js +3 -3
  81. package/.next/server/app/api/roadmap/generate/route.js.nft.json +1 -1
  82. package/.next/server/app/api/roadmap/layout/route.js +3 -3
  83. package/.next/server/app/api/roadmap/layout/route.js.nft.json +1 -1
  84. package/.next/server/app/api/roadmap/restore/route/app-paths-manifest.json +3 -0
  85. package/.next/server/app/api/roadmap/restore/route/build-manifest.json +12 -0
  86. package/.next/server/app/api/roadmap/restore/route/server-reference-manifest.json +4 -0
  87. package/.next/server/app/api/roadmap/restore/route.js +9 -0
  88. package/.next/server/app/api/roadmap/restore/route.js.map +5 -0
  89. package/.next/server/app/api/roadmap/restore/route.js.nft.json +1 -0
  90. package/.next/server/app/api/roadmap/restore/route_client-reference-manifest.js +3 -0
  91. package/.next/server/app/api/roadmap/route.js +3 -3
  92. package/.next/server/app/api/roadmap/route.js.nft.json +1 -1
  93. package/.next/server/app/api/roadmap/update/route.js +3 -3
  94. package/.next/server/app/api/roadmap/update/route.js.nft.json +1 -1
  95. package/.next/server/app/api/sessions/route.js +2 -2
  96. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  97. package/.next/server/app/api/settings/route.js +3 -3
  98. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  99. package/.next/server/app/api/setup/generate/route.js +1 -1
  100. package/.next/server/app/api/setup/generate/route.js.nft.json +1 -1
  101. package/.next/server/app/api/setup/write/route.js +2 -2
  102. package/.next/server/app/api/setup/write/route.js.nft.json +1 -1
  103. package/.next/server/app/api/summary/route.js +2 -2
  104. package/.next/server/app/api/summary/route.js.nft.json +1 -1
  105. package/.next/server/app/api/tasks/bulk/route/app-paths-manifest.json +3 -0
  106. package/.next/server/app/api/tasks/bulk/route/build-manifest.json +12 -0
  107. package/.next/server/app/api/tasks/bulk/route/server-reference-manifest.json +4 -0
  108. package/.next/server/app/api/tasks/bulk/route.js +9 -0
  109. package/.next/server/app/api/tasks/bulk/route.js.map +5 -0
  110. package/.next/server/app/api/tasks/bulk/route.js.nft.json +1 -0
  111. package/.next/server/app/api/tasks/bulk/route_client-reference-manifest.js +3 -0
  112. package/.next/server/app/api/tasks/create/route.js +2 -2
  113. package/.next/server/app/api/tasks/create/route.js.nft.json +1 -1
  114. package/.next/server/app/api/tasks/delete/route/app-paths-manifest.json +3 -0
  115. package/.next/server/app/api/tasks/delete/route/build-manifest.json +12 -0
  116. package/.next/server/app/api/tasks/delete/route/server-reference-manifest.json +4 -0
  117. package/.next/server/app/api/tasks/delete/route.js +9 -0
  118. package/.next/server/app/api/tasks/delete/route.js.map +5 -0
  119. package/.next/server/app/api/tasks/delete/route.js.nft.json +1 -0
  120. package/.next/server/app/api/tasks/delete/route_client-reference-manifest.js +3 -0
  121. package/.next/server/app/api/tasks/manual-tests/route/app-paths-manifest.json +3 -0
  122. package/.next/server/app/api/tasks/manual-tests/route/build-manifest.json +12 -0
  123. package/.next/server/app/api/tasks/manual-tests/route/server-reference-manifest.json +4 -0
  124. package/.next/server/app/api/tasks/manual-tests/route.js +8 -0
  125. package/.next/server/app/api/tasks/manual-tests/route.js.map +5 -0
  126. package/.next/server/app/api/tasks/manual-tests/route.js.nft.json +1 -0
  127. package/.next/server/app/api/tasks/manual-tests/route_client-reference-manifest.js +3 -0
  128. package/.next/server/app/api/tasks/restore/route/app-paths-manifest.json +3 -0
  129. package/.next/server/app/api/tasks/restore/route/build-manifest.json +12 -0
  130. package/.next/server/app/api/tasks/restore/route/server-reference-manifest.json +4 -0
  131. package/.next/server/app/api/tasks/restore/route.js +9 -0
  132. package/.next/server/app/api/tasks/restore/route.js.map +5 -0
  133. package/.next/server/app/api/tasks/restore/route.js.nft.json +1 -0
  134. package/.next/server/app/api/tasks/restore/route_client-reference-manifest.js +3 -0
  135. package/.next/server/app/api/tasks/review/route/app-paths-manifest.json +3 -0
  136. package/.next/server/app/api/tasks/review/route/build-manifest.json +12 -0
  137. package/.next/server/app/api/tasks/review/route/server-reference-manifest.json +4 -0
  138. package/.next/server/app/api/tasks/review/route.js +9 -0
  139. package/.next/server/app/api/tasks/review/route.js.map +5 -0
  140. package/.next/server/app/api/tasks/review/route.js.nft.json +1 -0
  141. package/.next/server/app/api/tasks/review/route_client-reference-manifest.js +3 -0
  142. package/.next/server/app/api/tasks/route.js +2 -2
  143. package/.next/server/app/api/tasks/route.js.nft.json +1 -1
  144. package/.next/server/app/api/tasks/update/route/app-paths-manifest.json +3 -0
  145. package/.next/server/app/api/tasks/update/route/build-manifest.json +12 -0
  146. package/.next/server/app/api/tasks/update/route/server-reference-manifest.json +4 -0
  147. package/.next/server/app/api/tasks/update/route.js +9 -0
  148. package/.next/server/app/api/tasks/update/route.js.map +5 -0
  149. package/.next/server/app/api/tasks/update/route.js.nft.json +1 -0
  150. package/.next/server/app/api/tasks/update/route_client-reference-manifest.js +3 -0
  151. package/.next/server/app/api/views/route/app-paths-manifest.json +3 -0
  152. package/.next/server/app/api/views/route/build-manifest.json +12 -0
  153. package/.next/server/app/api/views/route/server-reference-manifest.json +4 -0
  154. package/.next/server/app/api/views/route.js +9 -0
  155. package/.next/server/app/api/views/route.js.map +5 -0
  156. package/.next/server/app/api/views/route.js.nft.json +1 -0
  157. package/.next/server/app/api/views/route_client-reference-manifest.js +3 -0
  158. package/.next/server/app/board.html +1 -1
  159. package/.next/server/app/board.rsc +20 -18
  160. package/.next/server/app/board.segments/!KGFwcCk/board/__PAGE__.segment.rsc +7 -6
  161. package/.next/server/app/board.segments/_full.segment.rsc +20 -18
  162. package/.next/server/app/board.segments/_tree.segment.rsc +3 -2
  163. package/.next/server/app/chat.html +1 -1
  164. package/.next/server/app/chat.rsc +20 -18
  165. package/.next/server/app/chat.segments/!KGFwcCk/chat/__PAGE__.segment.rsc +12 -9
  166. package/.next/server/app/chat.segments/_full.segment.rsc +20 -18
  167. package/.next/server/app/chat.segments/_tree.segment.rsc +3 -2
  168. package/.next/server/app/docs.html +1 -1
  169. package/.next/server/app/docs.rsc +20 -18
  170. package/.next/server/app/docs.segments/!KGFwcCk/docs/__PAGE__.segment.rsc +6 -5
  171. package/.next/server/app/docs.segments/_full.segment.rsc +20 -18
  172. package/.next/server/app/docs.segments/_tree.segment.rsc +3 -2
  173. package/.next/server/app/explorer.html +1 -1
  174. package/.next/server/app/explorer.rsc +20 -18
  175. package/.next/server/app/explorer.segments/!KGFwcCk/explorer/__PAGE__.segment.rsc +11 -9
  176. package/.next/server/app/explorer.segments/_full.segment.rsc +20 -18
  177. package/.next/server/app/explorer.segments/_tree.segment.rsc +3 -2
  178. package/.next/server/app/index.html +1 -1
  179. package/.next/server/app/index.rsc +3 -2
  180. package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -2
  181. package/.next/server/app/index.segments/_full.segment.rsc +3 -2
  182. package/.next/server/app/index.segments/_tree.segment.rsc +3 -2
  183. package/.next/server/app/manual-tests.html +1 -0
  184. package/.next/server/app/manual-tests.meta +31 -0
  185. package/.next/server/app/manual-tests.rsc +31 -0
  186. package/.next/server/app/manual-tests.segments/!KGFwcCk/manual-tests/__PAGE__.segment.rsc +33 -0
  187. package/.next/server/app/manual-tests.segments/_full.segment.rsc +31 -0
  188. package/.next/server/app/manual-tests.segments/_tree.segment.rsc +5 -0
  189. package/.next/server/app/memory.html +1 -1
  190. package/.next/server/app/memory.rsc +20 -18
  191. package/.next/server/app/memory.segments/!KGFwcCk/memory/__PAGE__.segment.rsc +11 -9
  192. package/.next/server/app/memory.segments/_full.segment.rsc +20 -18
  193. package/.next/server/app/memory.segments/_tree.segment.rsc +3 -2
  194. package/.next/server/app/page.js.nft.json +1 -1
  195. package/.next/server/app/page_client-reference-manifest.js +1 -1
  196. package/.next/server/app/roadmap.html +1 -1
  197. package/.next/server/app/roadmap.rsc +20 -18
  198. package/.next/server/app/roadmap.segments/!KGFwcCk/roadmap/__PAGE__.segment.rsc +6 -5
  199. package/.next/server/app/roadmap.segments/_full.segment.rsc +20 -18
  200. package/.next/server/app/roadmap.segments/_tree.segment.rsc +3 -2
  201. package/.next/server/app/settings.html +1 -1
  202. package/.next/server/app/settings.rsc +20 -18
  203. package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +7 -6
  204. package/.next/server/app/settings.segments/_full.segment.rsc +20 -18
  205. package/.next/server/app/settings.segments/_tree.segment.rsc +3 -2
  206. package/.next/server/app/setup.html +1 -1
  207. package/.next/server/app/setup.rsc +20 -18
  208. package/.next/server/app/setup.segments/!KGFwcCk/setup/__PAGE__.segment.rsc +11 -9
  209. package/.next/server/app/setup.segments/_full.segment.rsc +20 -18
  210. package/.next/server/app/setup.segments/_tree.segment.rsc +3 -2
  211. package/.next/server/app-paths-manifest.json +9 -0
  212. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0-5bkpj._.js → 11mp_@anthropic-ai_sdk_00p3fu1._.js} +1 -1
  213. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_01l5h3i._.js → 11mp_@anthropic-ai_sdk_01amtux._.js} +1 -1
  214. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_00psb_y._.js → 11mp_@anthropic-ai_sdk_01jjl08._.js} +1 -1
  215. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_072r2bd._.js → 11mp_@anthropic-ai_sdk_071zfm8._.js} +1 -1
  216. package/.next/server/chunks/11mp_@anthropic-ai_sdk_07v3boe._.js +3 -0
  217. package/.next/server/chunks/11mp_@anthropic-ai_sdk_09iva72._.js +3 -0
  218. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0bom1b1._.js +3 -0
  219. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0dvji7p._.js +3 -0
  220. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0dzo8jn._.js +3 -0
  221. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0hvqsqq._.js +3 -0
  222. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0i7i-jw._.js +3 -0
  223. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0k0iop5._.js +3 -0
  224. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0l3-6aq._.js +3 -0
  225. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0oegm3y._.js +3 -0
  226. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0p5cyes._.js +3 -0
  227. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0qw8i6_._.js +3 -0
  228. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0yk-a7v._.js +3 -0
  229. package/.next/server/chunks/11mp_@anthropic-ai_sdk_11fsqvb._.js +3 -0
  230. package/.next/server/chunks/11mp_@anthropic-ai_sdk_143_7ez._.js +3 -0
  231. package/.next/server/chunks/11mp_@anthropic-ai_sdk_14a4-64._.js +3 -0
  232. package/.next/server/chunks/11mp_@anthropic-ai_sdk_17d_oma._.js +3 -0
  233. package/.next/server/chunks/11mp_@anthropic-ai_sdk_18qwuyb._.js +3 -0
  234. package/.next/server/chunks/11mp_@anthropic-ai_sdk_19au8y6._.js +3 -0
  235. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ak_hy5._.js +3 -0
  236. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1cqa0nq._.js +3 -0
  237. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1i-x_q0._.js +3 -0
  238. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1jmtliz._.js +3 -0
  239. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1jmtliz._.js.map +1 -0
  240. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1jouwlj._.js +3 -0
  241. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1jouwlj._.js.map +1 -0
  242. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1r_q5um._.js +3 -0
  243. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1r_q5um._.js.map +1 -0
  244. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1t959xd._.js +3 -0
  245. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1t959xd._.js.map +1 -0
  246. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1vkprw9._.js +3 -0
  247. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1vkprw9._.js.map +1 -0
  248. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1y95ax9._.js +3 -0
  249. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1y95ax9._.js.map +1 -0
  250. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1y9misr._.js +3 -0
  251. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1y9misr._.js.map +1 -0
  252. package/.next/server/chunks/11mp_@anthropic-ai_sdk_21b8wwy._.js +3 -0
  253. package/.next/server/chunks/11mp_@anthropic-ai_sdk_21b8wwy._.js.map +1 -0
  254. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_08ecfgc._.js +3 -0
  255. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_09--sd6._.js +3 -0
  256. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0e3mwc6._.js +3 -0
  257. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0go4301._.js +3 -0
  258. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0iq9dmt._.js +3 -0
  259. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0n9ijke._.js +3 -0
  260. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0szcyrx._.js +3 -0
  261. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0xy2s3x._.js +3 -0
  262. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0yaujn7._.js +3 -0
  263. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0z9ly74._.js +3 -0
  264. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1hmq3al._.js +3 -0
  265. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1tqk4bp._.js +3 -0
  266. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1x-hr6f._.js +3 -0
  267. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1zsdhg0._.js +3 -0
  268. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_20t__fe._.js +3 -0
  269. package/.next/server/chunks/{[root-of-the-server]__1u_q61h._.js → [root-of-the-server]__0-pmfg2._.js} +2 -2
  270. package/.next/server/chunks/[root-of-the-server]__02co2yq._.js +3 -0
  271. package/.next/server/chunks/[root-of-the-server]__02co2yq._.js.map +1 -0
  272. package/.next/server/chunks/{[root-of-the-server]__1y3u5ud._.js → [root-of-the-server]__04tibmn._.js} +2 -2
  273. package/.next/server/chunks/{[root-of-the-server]__17xb02p._.js → [root-of-the-server]__05g5cgo._.js} +2 -2
  274. package/.next/server/chunks/{[root-of-the-server]__0aynzrb._.js → [root-of-the-server]__0b5pwze._.js} +2 -2
  275. package/.next/server/chunks/{[root-of-the-server]__142icjb._.js → [root-of-the-server]__0druay_._.js} +2 -2
  276. package/.next/server/chunks/{[root-of-the-server]__106gpvh._.js → [root-of-the-server]__0p6ja6l._.js} +2 -2
  277. package/.next/server/chunks/[root-of-the-server]__0q3-t8a._.js +3 -0
  278. package/.next/server/chunks/[root-of-the-server]__0q3-t8a._.js.map +1 -0
  279. package/.next/server/chunks/[root-of-the-server]__0vcsqzd._.js +3 -0
  280. package/.next/server/chunks/[root-of-the-server]__0vcsqzd._.js.map +1 -0
  281. package/.next/server/chunks/{[root-of-the-server]__0nfvvy9._.js → [root-of-the-server]__1-e3i_5._.js} +2 -2
  282. package/.next/server/chunks/[root-of-the-server]__1-ic3af._.js +3 -0
  283. package/.next/server/chunks/[root-of-the-server]__1-ic3af._.js.map +1 -0
  284. package/.next/server/chunks/[root-of-the-server]__11a4ptn._.js +3 -0
  285. package/.next/server/chunks/[root-of-the-server]__11a4ptn._.js.map +1 -0
  286. package/.next/server/chunks/{[root-of-the-server]__0e59y5j._.js → [root-of-the-server]__11c8641._.js} +2 -2
  287. package/.next/server/chunks/[root-of-the-server]__12nzy_6._.js +3 -0
  288. package/.next/server/chunks/[root-of-the-server]__12nzy_6._.js.map +1 -0
  289. package/.next/server/chunks/[root-of-the-server]__15ck1wv._.js +3 -0
  290. package/.next/server/chunks/[root-of-the-server]__15ck1wv._.js.map +1 -0
  291. package/.next/server/chunks/[root-of-the-server]__1613hjb._.js +30 -19
  292. package/.next/server/chunks/[root-of-the-server]__1613hjb._.js.map +1 -1
  293. package/.next/server/chunks/{[root-of-the-server]__06zf_sh._.js → [root-of-the-server]__197vw9g._.js} +2 -2
  294. package/.next/server/chunks/{[root-of-the-server]__1j0rrps._.js → [root-of-the-server]__19k8t87._.js} +2 -2
  295. package/.next/server/chunks/{[root-of-the-server]__0eqd-tw._.js → [root-of-the-server]__1ezzeji._.js} +2 -2
  296. package/.next/server/chunks/[root-of-the-server]__1mrmaf9._.js +3 -0
  297. package/.next/server/chunks/{[root-of-the-server]__17p0rkn._.js → [root-of-the-server]__1n68akx._.js} +2 -2
  298. package/.next/server/chunks/[root-of-the-server]__1n68akx._.js.map +1 -0
  299. package/.next/server/chunks/{[root-of-the-server]__11s76m8._.js → [root-of-the-server]__1npya5q._.js} +2 -2
  300. package/.next/server/chunks/[root-of-the-server]__1npya5q._.js.map +1 -0
  301. package/.next/server/chunks/[root-of-the-server]__1qusy4g._.js +3 -0
  302. package/.next/server/chunks/[root-of-the-server]__1qusy4g._.js.map +1 -0
  303. package/.next/server/chunks/{[root-of-the-server]__1q4ahvz._.js → [root-of-the-server]__1umrorf._.js} +2 -2
  304. package/.next/server/chunks/{[root-of-the-server]__093hlkh._.js → [root-of-the-server]__1vh9g2o._.js} +2 -2
  305. package/.next/server/chunks/{[root-of-the-server]__1y-tt29._.js → [root-of-the-server]__1vq38ov._.js} +2 -2
  306. package/.next/server/chunks/[root-of-the-server]__1xb0fmp._.js +1 -1
  307. package/.next/server/chunks/[root-of-the-server]__1xb0fmp._.js.map +1 -1
  308. package/.next/server/chunks/_04byth9._.js +24 -19
  309. package/.next/server/chunks/_04byth9._.js.map +1 -1
  310. package/.next/server/chunks/_1au4syj._.js +1 -1
  311. package/.next/server/chunks/_1au4syj._.js.map +1 -1
  312. package/.next/server/chunks/_1b5fqxy._.js.map +1 -1
  313. package/.next/server/chunks/_1ivswa9._.js +3 -0
  314. package/.next/server/chunks/_1ivswa9._.js.map +1 -0
  315. package/.next/server/chunks/_next-internal_server_app_api_roadmap_restore_route_actions_0skshp1.js +3 -0
  316. package/.next/server/chunks/_next-internal_server_app_api_roadmap_restore_route_actions_0skshp1.js.map +1 -0
  317. package/.next/server/chunks/_next-internal_server_app_api_tasks_bulk_route_actions_1k75mlb.js +3 -0
  318. package/.next/server/chunks/_next-internal_server_app_api_tasks_bulk_route_actions_1k75mlb.js.map +1 -0
  319. package/.next/server/chunks/_next-internal_server_app_api_tasks_delete_route_actions_1k1g6mw.js +3 -0
  320. package/.next/server/chunks/_next-internal_server_app_api_tasks_delete_route_actions_1k1g6mw.js.map +1 -0
  321. package/.next/server/chunks/_next-internal_server_app_api_tasks_manual-tests_route_actions_1rpog0y.js +3 -0
  322. package/.next/server/chunks/_next-internal_server_app_api_tasks_manual-tests_route_actions_1rpog0y.js.map +1 -0
  323. package/.next/server/chunks/_next-internal_server_app_api_tasks_restore_route_actions_1ecsti8.js +3 -0
  324. package/.next/server/chunks/_next-internal_server_app_api_tasks_restore_route_actions_1ecsti8.js.map +1 -0
  325. package/.next/server/chunks/_next-internal_server_app_api_tasks_review_route_actions_1dly07f.js +3 -0
  326. package/.next/server/chunks/_next-internal_server_app_api_tasks_review_route_actions_1dly07f.js.map +1 -0
  327. package/.next/server/chunks/_next-internal_server_app_api_tasks_update_route_actions_0z-ho6g.js +3 -0
  328. package/.next/server/chunks/_next-internal_server_app_api_tasks_update_route_actions_0z-ho6g.js.map +1 -0
  329. package/.next/server/chunks/_next-internal_server_app_api_views_route_actions_10-2c0e.js +3 -0
  330. package/.next/server/chunks/_next-internal_server_app_api_views_route_actions_10-2c0e.js.map +1 -0
  331. package/.next/server/chunks/ssr/0_g__next_dist_000c5_m._.js +3 -0
  332. package/.next/server/chunks/ssr/0_g__next_dist_000c5_m._.js.map +1 -0
  333. package/.next/server/chunks/ssr/{0_nd_mermaid_dist_mermaid_core_mjs_0vv_0i3._.js → 0_nd_mermaid_dist_mermaid_core_mjs_027n2yl._.js} +2 -2
  334. package/.next/server/chunks/ssr/0_nd_mermaid_dist_mermaid_core_mjs_027n2yl._.js.map +1 -0
  335. package/.next/server/chunks/ssr/{1u84_katex_dist_katex_mjs_1z0p1bs._.js → 1u84_katex_dist_katex_mjs_1kb5xea._.js} +1 -1
  336. package/.next/server/chunks/ssr/1u84_katex_dist_katex_mjs_1kb5xea._.js.map +1 -0
  337. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_05ggp3i._.js +1 -1
  338. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_05ggp3i._.js.map +1 -1
  339. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0wurouw._.js +3 -0
  340. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0wurouw._.js.map +1 -0
  341. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_14hl50o._.js +3 -0
  342. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_14hl50o._.js.map +1 -0
  343. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_folder-open_mjs_117ipzw._.js +3 -0
  344. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_folder-open_mjs_117ipzw._.js.map +1 -0
  345. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_triangle-alert_mjs_0ei-mpz._.js +3 -0
  346. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_triangle-alert_mjs_0ei-mpz._.js.map +1 -0
  347. package/.next/server/chunks/ssr/[root-of-the-server]__0hcextx._.js +3 -0
  348. package/.next/server/chunks/ssr/[root-of-the-server]__0hcextx._.js.map +1 -0
  349. package/.next/server/chunks/ssr/[root-of-the-server]__0xt_0w2._.js.map +1 -1
  350. package/.next/server/chunks/ssr/_04xff_2._.js +1 -1
  351. package/.next/server/chunks/ssr/_04xff_2._.js.map +1 -1
  352. package/.next/server/chunks/ssr/_071j6mr._.js +4 -0
  353. package/.next/server/chunks/ssr/_071j6mr._.js.map +1 -0
  354. package/.next/server/chunks/ssr/_09b02z-._.js +3 -0
  355. package/.next/server/chunks/ssr/_09b02z-._.js.map +1 -0
  356. package/.next/server/chunks/ssr/_0d0f1s1._.js +3 -0
  357. package/.next/server/chunks/ssr/_0d0f1s1._.js.map +1 -0
  358. package/.next/server/chunks/ssr/_0idb-vo._.js +151 -0
  359. package/.next/server/chunks/ssr/_0idb-vo._.js.map +1 -0
  360. package/.next/server/chunks/ssr/_0lnt_va._.js +4 -0
  361. package/.next/server/chunks/ssr/_0lnt_va._.js.map +1 -0
  362. package/.next/server/chunks/ssr/_0qlymco._.js +3 -0
  363. package/.next/server/chunks/ssr/_0qlymco._.js.map +1 -0
  364. package/.next/server/chunks/ssr/_0qp3gu7._.js +3 -0
  365. package/.next/server/chunks/ssr/_0qp3gu7._.js.map +1 -0
  366. package/.next/server/chunks/ssr/_0sg1oeq._.js +3 -0
  367. package/.next/server/chunks/ssr/_0sg1oeq._.js.map +1 -0
  368. package/.next/server/chunks/ssr/_14emfpq._.js +3 -0
  369. package/.next/server/chunks/ssr/_14emfpq._.js.map +1 -0
  370. package/.next/server/chunks/ssr/_1ftruw6._.js +4 -0
  371. package/.next/server/chunks/ssr/_1ftruw6._.js.map +1 -0
  372. package/.next/server/chunks/ssr/_1gxjjvh._.js +1 -1
  373. package/.next/server/chunks/ssr/_1gxjjvh._.js.map +1 -1
  374. package/.next/server/chunks/ssr/_1ncdakv._.js +4 -0
  375. package/.next/server/chunks/ssr/_1ncdakv._.js.map +1 -0
  376. package/.next/server/chunks/ssr/_1t76zdx._.js +3 -0
  377. package/.next/server/chunks/ssr/_1t76zdx._.js.map +1 -0
  378. package/.next/server/chunks/ssr/_1x7ggg5._.js +4 -0
  379. package/.next/server/chunks/ssr/_1x7ggg5._.js.map +1 -0
  380. package/.next/server/chunks/ssr/_next-internal_server_app_(app)_manual-tests_page_actions_1g5zjb7.js +3 -0
  381. package/.next/server/chunks/ssr/_next-internal_server_app_(app)_manual-tests_page_actions_1g5zjb7.js.map +1 -0
  382. package/.next/server/chunks/ssr/{node_modules__pnpm_04khl_s._.js → node_modules__pnpm_01bjcv9._.js} +1 -1
  383. package/.next/server/chunks/ssr/{node_modules__pnpm_08sqeu2._.js → node_modules__pnpm_03qrzdb._.js} +1 -1
  384. package/.next/server/chunks/ssr/{node_modules__pnpm_104pzhc._.js → node_modules__pnpm_06d-fdo._.js} +2 -2
  385. package/.next/server/chunks/ssr/{node_modules__pnpm_1xzf8g_._.js → node_modules__pnpm_0ctisl0._.js} +1 -1
  386. package/.next/server/chunks/ssr/{node_modules__pnpm_0og06fy._.js → node_modules__pnpm_0fwp8jm._.js} +1 -1
  387. package/.next/server/chunks/ssr/{node_modules__pnpm_0a9b2ei._.js → node_modules__pnpm_0kpu0-2._.js} +1 -1
  388. package/.next/server/chunks/ssr/{node_modules__pnpm_0jpv2b6._.js → node_modules__pnpm_0vry74x._.js} +2 -2
  389. package/.next/server/chunks/ssr/{node_modules__pnpm_0fd3pr1._.js → node_modules__pnpm_0ycbjbd._.js} +2 -2
  390. package/.next/server/chunks/ssr/{node_modules__pnpm_1l8k8w1._.js → node_modules__pnpm_1-76qxg._.js} +1 -1
  391. package/.next/server/chunks/ssr/{node_modules__pnpm_0ah02mu._.js → node_modules__pnpm_1-r94f7._.js} +1 -1
  392. package/.next/server/chunks/ssr/{node_modules__pnpm_1yq90z7._.js → node_modules__pnpm_14piqi4._.js} +1 -1
  393. package/.next/server/chunks/ssr/node_modules__pnpm_14piqi4._.js.map +1 -0
  394. package/.next/server/chunks/ssr/{node_modules__pnpm_0dwi7mu._.js → node_modules__pnpm_16u1vfb._.js} +2 -2
  395. package/.next/server/chunks/ssr/node_modules__pnpm_16u1vfb._.js.map +1 -0
  396. package/.next/server/chunks/ssr/{node_modules__pnpm_0f77_ng._.js → node_modules__pnpm_17i6z2d._.js} +1 -1
  397. package/.next/server/chunks/ssr/{node_modules__pnpm_09_i2jk._.js → node_modules__pnpm_189m48n._.js} +1 -1
  398. package/.next/server/chunks/ssr/node_modules__pnpm_189m48n._.js.map +1 -0
  399. package/.next/server/chunks/ssr/{node_modules__pnpm_0ttvopp._.js → node_modules__pnpm_192f222._.js} +1 -1
  400. package/.next/server/chunks/ssr/{node_modules__pnpm_07t_e8c._.js → node_modules__pnpm_1a48_nl._.js} +1 -1
  401. package/.next/server/chunks/ssr/{node_modules__pnpm_195j8p_._.js → node_modules__pnpm_1aa37e1._.js} +1 -1
  402. package/.next/server/chunks/ssr/{node_modules__pnpm_0cj8ryj._.js → node_modules__pnpm_1f440kx._.js} +1 -1
  403. package/.next/server/chunks/ssr/{node_modules__pnpm_0u3u82f._.js → node_modules__pnpm_1fn3ejy._.js} +1 -1
  404. package/.next/server/chunks/ssr/{node_modules__pnpm_0ts89ne._.js → node_modules__pnpm_1min2jl._.js} +1 -1
  405. package/.next/server/chunks/ssr/node_modules__pnpm_1q89l7p._.js +3 -0
  406. package/.next/server/chunks/ssr/node_modules__pnpm_1q89l7p._.js.map +1 -0
  407. package/.next/server/chunks/ssr/{node_modules__pnpm_1woddr6._.js → node_modules__pnpm_1q_hhr3._.js} +2 -2
  408. package/.next/server/chunks/ssr/{node_modules__pnpm_1x0t5_z._.js → node_modules__pnpm_1qmkxyo._.js} +1 -1
  409. package/.next/server/chunks/ssr/{node_modules__pnpm_0gifu-u._.js → node_modules__pnpm_1qp_jvj._.js} +2 -2
  410. package/.next/server/chunks/ssr/{node_modules__pnpm_0y35hs4._.js → node_modules__pnpm_1ssjj4u._.js} +1 -1
  411. package/.next/server/chunks/ssr/{node_modules__pnpm_0qc3gsk._.js → node_modules__pnpm_1txccoj._.js} +1 -1
  412. package/.next/server/chunks/ssr/{node_modules__pnpm_1w0f1m5._.js → node_modules__pnpm_1uwkcin._.js} +1 -1
  413. package/.next/server/chunks/ssr/node_modules__pnpm_1xeothw._.js +3 -0
  414. package/.next/server/chunks/ssr/node_modules__pnpm_1xeothw._.js.map +1 -0
  415. package/.next/server/chunks/ssr/{node_modules__pnpm_0286-tg._.js → node_modules__pnpm_1ygal0c._.js} +1 -1
  416. package/.next/server/chunks/ssr/src_app_(app)_activity_page_tsx_13jd6bn._.js +1 -1
  417. package/.next/server/chunks/ssr/src_app_(app)_activity_page_tsx_13jd6bn._.js.map +1 -1
  418. package/.next/server/chunks/ssr/src_app_(app)_board_page_tsx_0gpfc77._.js +3 -0
  419. package/.next/server/chunks/ssr/src_app_(app)_board_page_tsx_0gpfc77._.js.map +1 -0
  420. package/.next/server/chunks/ssr/src_app_(app)_chat_page_tsx_0c3e4l4._.js +1 -1
  421. package/.next/server/chunks/ssr/src_app_(app)_chat_page_tsx_0c3e4l4._.js.map +1 -1
  422. package/.next/server/chunks/ssr/src_app_(app)_layout_tsx_1yu5hom._.js +1 -1
  423. package/.next/server/chunks/ssr/src_app_(app)_layout_tsx_1yu5hom._.js.map +1 -1
  424. package/.next/server/chunks/ssr/src_app_(app)_manual-tests_page_tsx_01tnunf._.js +3 -0
  425. package/.next/server/chunks/ssr/src_app_(app)_manual-tests_page_tsx_01tnunf._.js.map +1 -0
  426. package/.next/server/chunks/ssr/src_app_(app)_roadmap_page_tsx_0vcq3jr._.js +2 -2
  427. package/.next/server/chunks/ssr/src_app_(app)_roadmap_page_tsx_0vcq3jr._.js.map +1 -1
  428. package/.next/server/chunks/ssr/src_app_(app)_settings_page_tsx_0zevtee._.js +2 -2
  429. package/.next/server/chunks/ssr/src_app_(app)_settings_page_tsx_0zevtee._.js.map +1 -1
  430. package/.next/server/chunks/ssr/src_app_(app)_setup_page_tsx_1yids_n._.js +1 -1
  431. package/.next/server/chunks/ssr/src_app_(app)_setup_page_tsx_1yids_n._.js.map +1 -1
  432. package/.next/server/chunks/ssr/src_components_chat_ChatView_tsx_0h5j-e2._.js +3 -0
  433. package/.next/server/chunks/ssr/src_components_chat_ChatView_tsx_0h5j-e2._.js.map +1 -0
  434. package/.next/server/chunks/ssr/src_context_ChatContext_tsx_0lowp8p._.js +2 -2
  435. package/.next/server/chunks/ssr/src_context_ChatContext_tsx_0lowp8p._.js.map +1 -1
  436. package/.next/server/middleware-build-manifest.js +3 -3
  437. package/.next/server/next-font-manifest.js +1 -1
  438. package/.next/server/next-font-manifest.json +4 -0
  439. package/.next/server/pages/404.html +1 -1
  440. package/.next/server/pages/500.html +1 -1
  441. package/.next/server/prefetch-hints.json +19 -0
  442. package/.next/server/server-reference-manifest.js +1 -1
  443. package/.next/server/server-reference-manifest.json +1 -1
  444. package/.next/static/chunks/02cj5_i9np4sg.js +3 -0
  445. package/.next/static/chunks/02i5hsdat1nuq.css +9 -0
  446. package/.next/static/chunks/0mgifb98wbesa.js +1 -0
  447. package/.next/static/chunks/0p1-hkgnm2ll2.js +1 -0
  448. package/.next/static/chunks/0pgu5q5vodev6.js +1 -0
  449. package/.next/static/chunks/0rqzvayflendx.js +2 -0
  450. package/.next/static/chunks/0vcfs7dii85tw.js +21 -0
  451. package/.next/static/chunks/13l4l-boqg8fx.js +1 -0
  452. package/.next/static/chunks/14hxe1qiaram9.js +1 -0
  453. package/.next/static/chunks/150y5rwg6gwvx.css +1 -0
  454. package/.next/static/chunks/16k196zyl-n9q.js +1 -0
  455. package/.next/static/chunks/18b5l8p0vd9f8.js +1 -0
  456. package/.next/static/chunks/1c_8t2kecjnua.js +1 -0
  457. package/.next/static/chunks/1fd43t9y42wd3.js +1 -0
  458. package/.next/static/chunks/1q50zh5z-fq2k.js +2 -0
  459. package/.next/static/chunks/1tu8lforstp1o.js +1 -0
  460. package/.next/static/chunks/23-xknrz6o748.js +1 -0
  461. package/.next/static/chunks/2_xpm7qhr69n8.js +2 -0
  462. package/.next/static/chunks/2ls_yp4-qgb42.js +1 -0
  463. package/.next/static/chunks/2zz0ip2l_29c3.js +3 -0
  464. package/.next/static/chunks/3ly7b47esdb7j.js +1 -0
  465. package/.next/static/chunks/3ruw8lu2_re-h.js +1 -0
  466. package/.next/static/chunks/3vf5nnd4xjo5_.js +1 -0
  467. package/.next/static/chunks/40jaenrnspnlh.js +68 -0
  468. package/.next/static/chunks/41oxcdcw-pcwt.js +1 -0
  469. package/README.md +2 -1
  470. package/package.json +1 -1
  471. package/skills/work-epic/SKILL.md +22 -3
  472. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0am8bw2._.js +0 -3
  473. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0enefn6._.js +0 -3
  474. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0k3n_5f._.js +0 -3
  475. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0lcfjm4._.js +0 -3
  476. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0lfx9av._.js +0 -3
  477. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0qau3qw._.js +0 -3
  478. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0r1pmvm._.js +0 -3
  479. package/.next/server/chunks/11mp_@anthropic-ai_sdk_11t-z2t._.js +0 -3
  480. package/.next/server/chunks/11mp_@anthropic-ai_sdk_15hyn79._.js +0 -3
  481. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_qk07x._.js +0 -3
  482. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1b2929e._.js +0 -3
  483. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1e72c89._.js +0 -3
  484. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1eq7asn._.js +0 -3
  485. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1fhdojs._.js +0 -3
  486. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1htgzmb._.js +0 -3
  487. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1lh_vwq._.js +0 -3
  488. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ludf-o._.js +0 -3
  489. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1m3luz3._.js +0 -3
  490. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1x1iz3d._.js +0 -3
  491. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1xsmwlh._.js +0 -3
  492. package/.next/server/chunks/11mp_@anthropic-ai_sdk_202spah._.js +0 -3
  493. package/.next/server/chunks/11mp_@anthropic-ai_sdk_215hw9u._.js +0 -3
  494. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0d2_lq6._.js +0 -3
  495. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0n-i0pd._.js +0 -3
  496. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_13pos4j._.js +0 -3
  497. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_17b4pqr._.js +0 -3
  498. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1bkcmom._.js +0 -3
  499. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1hlj_3l._.js +0 -3
  500. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1ip-sor._.js +0 -3
  501. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1pex5o1._.js +0 -3
  502. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1s8lc8_._.js +0 -3
  503. package/.next/server/chunks/[root-of-the-server]__1o4a-4j._.js +0 -3
  504. package/.next/server/chunks/[root-of-the-server]__1o4a-4j._.js.map +0 -1
  505. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0cvmffy._.js +0 -3
  506. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0cvmffy._.js.map +0 -1
  507. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0u3jxas._.js +0 -3
  508. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0u3jxas._.js.map +0 -1
  509. package/.next/server/chunks/ssr/_059qmur._.js +0 -3
  510. package/.next/server/chunks/ssr/_059qmur._.js.map +0 -1
  511. package/.next/server/chunks/ssr/_081irea._.js +0 -3
  512. package/.next/server/chunks/ssr/_081irea._.js.map +0 -1
  513. package/.next/server/chunks/ssr/_0d8t8l4._.js +0 -3
  514. package/.next/server/chunks/ssr/_0d8t8l4._.js.map +0 -1
  515. package/.next/server/chunks/ssr/_0dyvcdg._.js +0 -3
  516. package/.next/server/chunks/ssr/_0dyvcdg._.js.map +0 -1
  517. package/.next/server/chunks/ssr/_1-ghqy4._.js +0 -3
  518. package/.next/server/chunks/ssr/_1-ghqy4._.js.map +0 -1
  519. package/.next/server/chunks/ssr/_17jy5db._.js +0 -3
  520. package/.next/server/chunks/ssr/_17jy5db._.js.map +0 -1
  521. package/.next/server/chunks/ssr/_1c95ems._.js +0 -151
  522. package/.next/server/chunks/ssr/_1c95ems._.js.map +0 -1
  523. package/.next/server/chunks/ssr/_1dllfz5._.js +0 -4
  524. package/.next/server/chunks/ssr/_1dllfz5._.js.map +0 -1
  525. package/.next/server/chunks/ssr/node_modules__pnpm_006_c8z._.js +0 -3
  526. package/.next/server/chunks/ssr/node_modules__pnpm_006_c8z._.js.map +0 -1
  527. package/.next/server/chunks/ssr/node_modules__pnpm_1imm4ut._.js +0 -3
  528. package/.next/server/chunks/ssr/node_modules__pnpm_1imm4ut._.js.map +0 -1
  529. package/.next/server/chunks/ssr/node_modules__pnpm_1kcnkjs._.js +0 -3
  530. package/.next/server/chunks/ssr/node_modules__pnpm_1kcnkjs._.js.map +0 -1
  531. package/.next/server/chunks/ssr/src_components_14pwej-._.js +0 -3
  532. package/.next/server/chunks/ssr/src_components_14pwej-._.js.map +0 -1
  533. package/.next/server/chunks/ssr/src_components_ui_scroll-area_tsx_0i-n_27._.js +0 -3
  534. package/.next/server/chunks/ssr/src_components_ui_scroll-area_tsx_0i-n_27._.js.map +0 -1
  535. package/.next/static/chunks/0-z7kyblalrea.js +0 -1
  536. package/.next/static/chunks/050mq8l4e1ubn.js +0 -1
  537. package/.next/static/chunks/098le48845_fg.js +0 -3
  538. package/.next/static/chunks/0cw4-ebkoufdc.js +0 -1
  539. package/.next/static/chunks/0feo-go1w5nct.js +0 -1
  540. package/.next/static/chunks/0k2qhx29amdgs.js +0 -1
  541. package/.next/static/chunks/14sefb904pl64.js +0 -21
  542. package/.next/static/chunks/1fer-wulyrjrs.js +0 -3
  543. package/.next/static/chunks/1o7b1x4umy8a6.js +0 -1
  544. package/.next/static/chunks/1q_io1j58aukw.js +0 -1
  545. package/.next/static/chunks/1r7z33e9jk3vp.js +0 -1
  546. package/.next/static/chunks/1t-cgh4477hfo.js +0 -1
  547. package/.next/static/chunks/1u-1po1qesc9f.js +0 -1
  548. package/.next/static/chunks/1u5kegkgm0xoz.js +0 -1
  549. package/.next/static/chunks/24ygzsgd-moqy.js +0 -1
  550. package/.next/static/chunks/26folxgplfa9t.js +0 -68
  551. package/.next/static/chunks/2ocixvjhv34_3.js +0 -1
  552. package/.next/static/chunks/3_lsdgxa-h7ma.css +0 -10
  553. package/.next/static/chunks/3rmv-sb9w9i3e.js +0 -1
  554. package/.next/static/chunks/3smp1lj103j-l.js +0 -1
  555. package/.next/static/chunks/3ttzomivj48jh.js +0 -2
  556. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0-5bkpj._.js.map → 11mp_@anthropic-ai_sdk_00p3fu1._.js.map} +0 -0
  557. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_00psb_y._.js.map → 11mp_@anthropic-ai_sdk_01amtux._.js.map} +0 -0
  558. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_01l5h3i._.js.map → 11mp_@anthropic-ai_sdk_01jjl08._.js.map} +0 -0
  559. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_072r2bd._.js.map → 11mp_@anthropic-ai_sdk_071zfm8._.js.map} +0 -0
  560. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0am8bw2._.js.map → 11mp_@anthropic-ai_sdk_07v3boe._.js.map} +0 -0
  561. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0enefn6._.js.map → 11mp_@anthropic-ai_sdk_09iva72._.js.map} +0 -0
  562. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0k3n_5f._.js.map → 11mp_@anthropic-ai_sdk_0bom1b1._.js.map} +0 -0
  563. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0lcfjm4._.js.map → 11mp_@anthropic-ai_sdk_0dvji7p._.js.map} +0 -0
  564. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0lfx9av._.js.map → 11mp_@anthropic-ai_sdk_0dzo8jn._.js.map} +0 -0
  565. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0qau3qw._.js.map → 11mp_@anthropic-ai_sdk_0hvqsqq._.js.map} +0 -0
  566. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0r1pmvm._.js.map → 11mp_@anthropic-ai_sdk_0i7i-jw._.js.map} +0 -0
  567. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_11t-z2t._.js.map → 11mp_@anthropic-ai_sdk_0k0iop5._.js.map} +0 -0
  568. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_15hyn79._.js.map → 11mp_@anthropic-ai_sdk_0l3-6aq._.js.map} +0 -0
  569. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1_qk07x._.js.map → 11mp_@anthropic-ai_sdk_0oegm3y._.js.map} +0 -0
  570. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1b2929e._.js.map → 11mp_@anthropic-ai_sdk_0p5cyes._.js.map} +0 -0
  571. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1e72c89._.js.map → 11mp_@anthropic-ai_sdk_0qw8i6_._.js.map} +0 -0
  572. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1eq7asn._.js.map → 11mp_@anthropic-ai_sdk_0yk-a7v._.js.map} +0 -0
  573. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1fhdojs._.js.map → 11mp_@anthropic-ai_sdk_11fsqvb._.js.map} +0 -0
  574. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1htgzmb._.js.map → 11mp_@anthropic-ai_sdk_143_7ez._.js.map} +0 -0
  575. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1lh_vwq._.js.map → 11mp_@anthropic-ai_sdk_14a4-64._.js.map} +0 -0
  576. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1ludf-o._.js.map → 11mp_@anthropic-ai_sdk_17d_oma._.js.map} +0 -0
  577. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1m3luz3._.js.map → 11mp_@anthropic-ai_sdk_18qwuyb._.js.map} +0 -0
  578. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1x1iz3d._.js.map → 11mp_@anthropic-ai_sdk_19au8y6._.js.map} +0 -0
  579. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1xsmwlh._.js.map → 11mp_@anthropic-ai_sdk_1ak_hy5._.js.map} +0 -0
  580. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_202spah._.js.map → 11mp_@anthropic-ai_sdk_1cqa0nq._.js.map} +0 -0
  581. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_215hw9u._.js.map → 11mp_@anthropic-ai_sdk_1i-x_q0._.js.map} +0 -0
  582. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0d2_lq6._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_08ecfgc._.js.map} +0 -0
  583. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0n-i0pd._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_09--sd6._.js.map} +0 -0
  584. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_13pos4j._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0e3mwc6._.js.map} +0 -0
  585. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_17b4pqr._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0go4301._.js.map} +0 -0
  586. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1bkcmom._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0iq9dmt._.js.map} +0 -0
  587. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1hlj_3l._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0n9ijke._.js.map} +0 -0
  588. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1ip-sor._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0szcyrx._.js.map} +0 -0
  589. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1pex5o1._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0xy2s3x._.js.map} +0 -0
  590. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1s8lc8_._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0yaujn7._.js.map} +0 -0
  591. /package/.next/server/chunks/{[root-of-the-server]__0e59y5j._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0z9ly74._.js.map} +0 -0
  592. /package/.next/server/chunks/{[root-of-the-server]__11s76m8._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1hmq3al._.js.map} +0 -0
  593. /package/.next/server/chunks/{ssr/0_nd_mermaid_dist_mermaid_core_mjs_0vv_0i3._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1tqk4bp._.js.map} +0 -0
  594. /package/.next/server/chunks/{ssr/1u84_katex_dist_katex_mjs_1z0p1bs._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1x-hr6f._.js.map} +0 -0
  595. /package/.next/server/chunks/{ssr/node_modules__pnpm_09_i2jk._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1zsdhg0._.js.map} +0 -0
  596. /package/.next/server/chunks/{ssr/node_modules__pnpm_0dwi7mu._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_20t__fe._.js.map} +0 -0
  597. /package/.next/server/chunks/{[root-of-the-server]__1u_q61h._.js.map → [root-of-the-server]__0-pmfg2._.js.map} +0 -0
  598. /package/.next/server/chunks/{[root-of-the-server]__1y3u5ud._.js.map → [root-of-the-server]__04tibmn._.js.map} +0 -0
  599. /package/.next/server/chunks/{[root-of-the-server]__17xb02p._.js.map → [root-of-the-server]__05g5cgo._.js.map} +0 -0
  600. /package/.next/server/chunks/{[root-of-the-server]__0aynzrb._.js.map → [root-of-the-server]__0b5pwze._.js.map} +0 -0
  601. /package/.next/server/chunks/{[root-of-the-server]__142icjb._.js.map → [root-of-the-server]__0druay_._.js.map} +0 -0
  602. /package/.next/server/chunks/{[root-of-the-server]__106gpvh._.js.map → [root-of-the-server]__0p6ja6l._.js.map} +0 -0
  603. /package/.next/server/chunks/{[root-of-the-server]__0nfvvy9._.js.map → [root-of-the-server]__1-e3i_5._.js.map} +0 -0
  604. /package/.next/server/chunks/{ssr/node_modules__pnpm_1yq90z7._.js.map → [root-of-the-server]__11c8641._.js.map} +0 -0
  605. /package/.next/server/chunks/{[root-of-the-server]__06zf_sh._.js.map → [root-of-the-server]__197vw9g._.js.map} +0 -0
  606. /package/.next/server/chunks/{[root-of-the-server]__1j0rrps._.js.map → [root-of-the-server]__19k8t87._.js.map} +0 -0
  607. /package/.next/server/chunks/{[root-of-the-server]__0eqd-tw._.js.map → [root-of-the-server]__1ezzeji._.js.map} +0 -0
  608. /package/.next/server/chunks/{[root-of-the-server]__17p0rkn._.js.map → [root-of-the-server]__1mrmaf9._.js.map} +0 -0
  609. /package/.next/server/chunks/{[root-of-the-server]__1q4ahvz._.js.map → [root-of-the-server]__1umrorf._.js.map} +0 -0
  610. /package/.next/server/chunks/{[root-of-the-server]__093hlkh._.js.map → [root-of-the-server]__1vh9g2o._.js.map} +0 -0
  611. /package/.next/server/chunks/{[root-of-the-server]__1y-tt29._.js.map → [root-of-the-server]__1vq38ov._.js.map} +0 -0
  612. /package/.next/server/chunks/ssr/{node_modules__pnpm_04khl_s._.js.map → node_modules__pnpm_01bjcv9._.js.map} +0 -0
  613. /package/.next/server/chunks/ssr/{node_modules__pnpm_08sqeu2._.js.map → node_modules__pnpm_03qrzdb._.js.map} +0 -0
  614. /package/.next/server/chunks/ssr/{node_modules__pnpm_104pzhc._.js.map → node_modules__pnpm_06d-fdo._.js.map} +0 -0
  615. /package/.next/server/chunks/ssr/{node_modules__pnpm_1xzf8g_._.js.map → node_modules__pnpm_0ctisl0._.js.map} +0 -0
  616. /package/.next/server/chunks/ssr/{node_modules__pnpm_0og06fy._.js.map → node_modules__pnpm_0fwp8jm._.js.map} +0 -0
  617. /package/.next/server/chunks/ssr/{node_modules__pnpm_0a9b2ei._.js.map → node_modules__pnpm_0kpu0-2._.js.map} +0 -0
  618. /package/.next/server/chunks/ssr/{node_modules__pnpm_0jpv2b6._.js.map → node_modules__pnpm_0vry74x._.js.map} +0 -0
  619. /package/.next/server/chunks/ssr/{node_modules__pnpm_0fd3pr1._.js.map → node_modules__pnpm_0ycbjbd._.js.map} +0 -0
  620. /package/.next/server/chunks/ssr/{node_modules__pnpm_1l8k8w1._.js.map → node_modules__pnpm_1-76qxg._.js.map} +0 -0
  621. /package/.next/server/chunks/ssr/{node_modules__pnpm_0ah02mu._.js.map → node_modules__pnpm_1-r94f7._.js.map} +0 -0
  622. /package/.next/server/chunks/ssr/{node_modules__pnpm_0f77_ng._.js.map → node_modules__pnpm_17i6z2d._.js.map} +0 -0
  623. /package/.next/server/chunks/ssr/{node_modules__pnpm_0ttvopp._.js.map → node_modules__pnpm_192f222._.js.map} +0 -0
  624. /package/.next/server/chunks/ssr/{node_modules__pnpm_07t_e8c._.js.map → node_modules__pnpm_1a48_nl._.js.map} +0 -0
  625. /package/.next/server/chunks/ssr/{node_modules__pnpm_195j8p_._.js.map → node_modules__pnpm_1aa37e1._.js.map} +0 -0
  626. /package/.next/server/chunks/ssr/{node_modules__pnpm_0cj8ryj._.js.map → node_modules__pnpm_1f440kx._.js.map} +0 -0
  627. /package/.next/server/chunks/ssr/{node_modules__pnpm_0u3u82f._.js.map → node_modules__pnpm_1fn3ejy._.js.map} +0 -0
  628. /package/.next/server/chunks/ssr/{node_modules__pnpm_0ts89ne._.js.map → node_modules__pnpm_1min2jl._.js.map} +0 -0
  629. /package/.next/server/chunks/ssr/{node_modules__pnpm_1woddr6._.js.map → node_modules__pnpm_1q_hhr3._.js.map} +0 -0
  630. /package/.next/server/chunks/ssr/{node_modules__pnpm_1x0t5_z._.js.map → node_modules__pnpm_1qmkxyo._.js.map} +0 -0
  631. /package/.next/server/chunks/ssr/{node_modules__pnpm_0gifu-u._.js.map → node_modules__pnpm_1qp_jvj._.js.map} +0 -0
  632. /package/.next/server/chunks/ssr/{node_modules__pnpm_0y35hs4._.js.map → node_modules__pnpm_1ssjj4u._.js.map} +0 -0
  633. /package/.next/server/chunks/ssr/{node_modules__pnpm_0qc3gsk._.js.map → node_modules__pnpm_1txccoj._.js.map} +0 -0
  634. /package/.next/server/chunks/ssr/{node_modules__pnpm_1w0f1m5._.js.map → node_modules__pnpm_1uwkcin._.js.map} +0 -0
  635. /package/.next/server/chunks/ssr/{node_modules__pnpm_0286-tg._.js.map → node_modules__pnpm_1ygal0c._.js.map} +0 -0
  636. /package/.next/static/{uJ5RYxgFnE5svAvnuLDXN → fGPda81_8-K4GmaNUE6KA}/_buildManifest.js +0 -0
  637. /package/.next/static/{uJ5RYxgFnE5svAvnuLDXN → fGPda81_8-K4GmaNUE6KA}/_clientMiddlewareManifest.js +0 -0
  638. /package/.next/static/{uJ5RYxgFnE5svAvnuLDXN → fGPda81_8-K4GmaNUE6KA}/_ssgManifest.js +0 -0
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "node": {},
3
3
  "edge": {},
4
- "encryptionKey": "fTSA6drim52QXM6F9Lp0hByR8FpDUD/OQvm70C1UOqo="
4
+ "encryptionKey": "7iTORxnC3d7l3xqmKwrI7gD/tHOE5yhiajrvRhGvfSY="
5
5
  }
@@ -0,0 +1,3 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,298367,e=>{"use strict";var t=e.i(72345),s=e.i(180338),a=e.i(211672),n=e.i(301702),r=e.i(496385),l=e.i(479432),i=e.i(406952),o=e.i(506534),d=e.i(155515),c=e.i(885600),u=e.i(910172),x=e.i(763371),m=e.i(635743),p=e.i(519455);let h=e=>"done"===e||"cancelled"===e;function g(e,t){let s=new Map(t.map(e=>[e.id,e])),a=e.tasks.map(e=>s.get(e)).filter(e=>!!e),n=e=>[...new Set((e.dependsOn.match(/\bT\d+\b/gi)??[]).map(e=>e.toUpperCase()))].filter(e=>{let t=s.get(e);return!t||!h(t.status)});for(let e of a)if("todo"===e.status&&!n(e).length)return{kind:"ready",taskId:e.id};if(a.every(e=>h(e.status)))return{kind:"finished"};let r=new Set(e.tasks),l=new Map,i=e=>{if(l.has(e))return l.get(e)??!1;l.set(e,!1);let t=s.get(e),a=!!t&&"blocked"!==t.status&&"paused"!==t.status&&"review"!==t.status&&("todo"!==t.status||r.has(e)&&n(t).every(i));return l.set(e,a),a},o=[];for(let t of e.tasks){let e=s.get(t);if(e){if("in-progress"===e.status)o.push({taskId:t,reason:`${t} is in progress (claimed)`});else if("blocked"===e.status)o.push({taskId:t,reason:`${t} is blocked`});else if("paused"===e.status)o.push({taskId:t,reason:`${t} is paused — needs a human to resume it`});else if("review"===e.status)o.push({taskId:t,reason:`${t} in review — needs a human`});else if("todo"===e.status){let a=n(e).map(e=>`${e} (${s.get(e)?.status??"missing"})`);o.push({taskId:t,reason:`${t} waits on ${a.join(", ")}`})}}else o.push({taskId:t,reason:`${t} has no task file`})}return{kind:"waiting",waiting:o,needsHuman:o.every(e=>!i(e.taskId))}}var f=e.i(692172),b=e.i(975157),j=e.i(956555),N=e.i(651581),v=e.i(723528),y=e.i(450768);function w({items:e,today:a,onSelect:n,onItemContextMenu:r,progressById:l}){let i=new Map(e.filter(e=>null===e.parent).sort((e,t)=>e.order-t.order).map((e,t)=>[e.id,t+1])),o=(0,s.useMemo)(()=>(0,y.buildTimeline)(e,a),[e,a]),d=(0,s.useRef)(null);(0,s.useEffect)(()=>{let e=d.current;e&&(e.scrollLeft=Math.max(0,o.todayX-(e.clientWidth-200)/3))},[o.todayX]);let c=o.lanes.some(e=>e.markers.length>0);return(0,t.jsxs)("div",{className:"flex flex-1 min-h-0 flex-col",children:[(0,t.jsx)("div",{ref:d,className:"relative flex-1 min-h-0 overflow-auto",children:(0,t.jsxs)("div",{className:"relative",style:{width:200+o.width,minHeight:"100%"},children:[(0,t.jsxs)("div",{className:"pointer-events-none absolute inset-y-0",style:{left:200,width:o.width},children:[o.months.map(e=>(0,t.jsx)("div",{className:"absolute inset-y-0 border-l border-border",style:{left:e.x}},e.x)),(0,t.jsx)("div",{className:"absolute inset-y-0 left-0 bg-surface/50",style:{width:o.todayX}}),(0,t.jsx)("div",{className:"absolute inset-y-0 w-px bg-accent shadow-[0_0_12px_rgb(var(--rgb-accent)/0.8)]",style:{left:o.todayX},children:(0,t.jsx)("span",{className:"absolute -translate-x-1/2 rounded-full bg-accent px-2 py-0.5 font-mono text-[10px] uppercase tracking-wider text-accent-fg",style:{top:42},children:"Today"})})]}),(0,t.jsxs)("div",{className:"sticky top-0 z-20 flex border-b border-border bg-bg",style:{height:36},children:[(0,t.jsx)("div",{className:"sticky left-0 z-10 shrink-0 bg-bg",style:{width:200}}),(0,t.jsx)("div",{className:"relative",children:o.months.map(e=>(0,t.jsx)("span",{className:"absolute top-3 whitespace-nowrap pl-2 font-mono text-[10px] uppercase tracking-widest text-muted",style:{left:e.x},children:e.label},e.x))})]}),o.lanes.map(e=>(0,t.jsxs)("div",{className:"relative flex border-b border-border",children:[(0,t.jsx)(k,{item:e.item,chapter:i.get(e.item.id),progress:l[e.item.id],onSelect:n,onContextMenu:r}),(0,t.jsx)("div",{className:"relative",style:{width:o.width,height:e.rows*y.LANE_ROW_H+12},children:e.markers.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>n(e.item.id),onContextMenu:t=>r?.(e.item.id,t),title:`${e.item.id} \xb7 ${e.item.title} \xb7 due ${e.item.due}${"overdue"===e.state?" (overdue)":""}`,className:"group absolute flex items-center gap-1.5",style:{left:e.x-10,top:6+e.row*y.LANE_ROW_H},children:[e.horizon?(0,t.jsx)("span",{className:(0,b.cn)("h-4 w-4 rotate-45 border-2 border-accent","done"===e.item.status?"bg-accent":"bg-bg","overdue"===e.state&&"border-danger")}):(0,t.jsx)("span",{className:(0,b.cn)("rounded-full","overdue"===e.state&&"ring-2 ring-danger ring-offset-1 ring-offset-bg"),children:(0,t.jsx)(N.StatusDot,{status:e.item.status})}),(0,t.jsxs)("span",{className:(0,b.cn)("flex max-w-[150px] flex-col rounded-md border px-2 py-0.5 text-left transition-colors","in-progress"===e.item.status?"border-accent/50 bg-surface shadow-[0_6px_18px_-10px_rgb(var(--rgb-accent)/0.7)]":"done"===e.item.status?"border-border bg-surface/60":"border-dashed border-border2 bg-bg","group-hover:border-accent"),children:[(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:(0,b.cn)("truncate text-xs","done"===e.item.status?"text-muted":"text-txt",e.horizon&&"font-semibold"),children:e.item.title}),(0,t.jsx)(v.AgentDot,{attach:{kind:"epic",id:e.item.id}})]}),(0,t.jsx)("span",{className:(0,b.cn)("font-mono text-[10px]","overdue"===e.state?"text-danger":"soon"===e.state?"text-amber":"text-muted"),children:(0,y.formatDay)(e.item.due)})]})]},e.item.id))})]},e.item.id)),!c&&(0,t.jsx)("p",{className:"px-6 py-8 text-sm text-muted",style:{marginLeft:200},children:"No due dates yet — open an item and set a Due date."})]})}),o.undated.length>0&&(0,t.jsxs)("div",{className:"max-h-28 shrink-0 overflow-y-auto border-t border-border bg-surface px-4 py-2",children:[(0,t.jsxs)("p",{className:"mb-2 font-mono text-[10px] uppercase tracking-widest text-muted",children:["No due date · ",o.undated.length]}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:o.undated.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>n(e.id),onContextMenu:t=>r?.(e.id,t),className:"flex items-center gap-1 rounded-md border border-border px-1.5 py-0.5 text-xs text-muted hover:border-accent hover:text-txt",children:[(0,t.jsx)(N.StatusDot,{status:e.status}),e.title,(0,t.jsx)(v.AgentDot,{attach:{kind:"epic",id:e.id}})]},e.id))})]})]})}function k({item:e,chapter:s,progress:a,onSelect:n,onContextMenu:r}){return(0,t.jsxs)("button",{type:"button",onClick:()=>n(e.id),onContextMenu:t=>r?.(e.id,t),className:"sticky left-0 z-10 flex shrink-0 items-center gap-3 border-r border-border bg-surface px-3 text-left hover:bg-surface2",style:{width:200},children:[(0,t.jsx)("span",{className:(0,b.cn)("font-mono text-lg font-semibold tabular-nums","in-progress"===e.status?"text-accent":"done"===e.status?"text-teal":"text-muted"),children:s?String(s).padStart(2,"0"):"··"}),(0,t.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[(0,t.jsx)("span",{className:"line-clamp-2 text-[11px] font-semibold uppercase leading-snug tracking-wider text-txt",children:e.title}),a&&(0,t.jsx)("span",{className:"h-1 overflow-hidden rounded-full bg-border",children:(0,t.jsx)("span",{className:"block h-full rounded-full bg-teal",style:{width:`${a.done/a.total*100}%`}})})]})]})}var S=e.i(640818),C=e.i(675964),D=e.i(475850),M=e.i(424991),z=e.i(980376),$=e.i(793479),T=e.i(998822),B=e.i(481523),I=e.i(244267),O=e.i(609617),A=e.i(246978),E=e.i(248070),P=e.i(458055),_=e.i(755146),L=e.i(903763);let R=["planned","in-progress","paused","done"];function F({item:e,items:s,actions:a}){let n=null===e.parent,r=s.filter(t=>null===t.parent&&t.id!==e.parent).sort((e,t)=>e.order-t.order),l=s.filter(t=>t.parent===e.id).length;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(_.DropdownMenuItem,{onSelect:()=>a.edit(e.id),children:[(0,t.jsx)(M.Pencil,{})," Edit",(0,t.jsx)(_.DropdownMenuShortcut,{children:(0,L.itemKeyLabel)("edit")})]}),(0,t.jsxs)(_.DropdownMenuSub,{children:[(0,t.jsxs)(_.DropdownMenuSubTrigger,{children:[(0,t.jsx)(N.StatusDot,{status:e.status})," Status",(0,t.jsx)(_.DropdownMenuShortcut,{children:(0,L.itemKeyLabel)("status")})]}),(0,t.jsx)(_.DropdownMenuSubContent,{children:R.map(s=>(0,t.jsxs)(_.DropdownMenuItem,{disabled:s===e.status,onSelect:()=>a.setStatus(e.id,s),children:[(0,t.jsx)(N.StatusDot,{status:s})," ",N.STATUS_LABEL[s]]},s))})]}),!n&&r.length>0&&(0,t.jsxs)(_.DropdownMenuSub,{children:[(0,t.jsxs)(_.DropdownMenuSubTrigger,{children:[(0,t.jsx)(A.FolderInput,{})," Move to horizon"]}),(0,t.jsx)(_.DropdownMenuSubContent,{className:"max-h-72 overflow-y-auto",children:r.map(s=>(0,t.jsxs)(_.DropdownMenuItem,{onSelect:()=>a.move(e.id,s.id),children:[(0,t.jsx)("span",{className:"font-mono text-[11px] text-muted",children:s.id})," ",s.title]},s.id))})]}),n&&(0,t.jsxs)(_.DropdownMenuItem,{onSelect:()=>a.addEpic(e.id),children:[(0,t.jsx)(d.Plus,{})," Add epic"]}),(0,t.jsxs)(_.DropdownMenuItem,{onSelect:()=>a.duplicate(e.id),children:[(0,t.jsx)(O.Copy,{})," Duplicate",(0,t.jsx)(_.DropdownMenuShortcut,{children:(0,L.itemKeyLabel)("duplicate")})]}),(0,t.jsx)(_.DropdownMenuSeparator,{}),!n&&(0,t.jsxs)(_.DropdownMenuItem,{onSelect:()=>a.chat(e.id),children:[(0,t.jsx)(D.MessageSquare,{})," Chat about it",(0,t.jsx)(_.DropdownMenuShortcut,{children:(0,L.itemKeyLabel)("chat")})]}),(0,t.jsxs)(_.DropdownMenuItem,{onSelect:()=>a.openFile(e.file),children:[(0,t.jsx)(i.FileText,{})," Open file"]}),(0,t.jsx)(_.DropdownMenuSeparator,{}),l>0?(0,t.jsxs)(_.DropdownMenuItem,{disabled:!0,className:"flex-col items-start gap-0",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)(P.Trash2,{})," Delete"]}),(0,t.jsxs)("span",{className:"pl-6 text-[11px]",children:["Move or delete its ",l," epic",1===l?"":"s"," first"]})]}):(0,t.jsxs)(_.DropdownMenuItem,{onSelect:()=>a.remove(e.id),className:"text-danger focus:text-danger",children:[(0,t.jsx)(P.Trash2,{})," Delete",(0,t.jsx)(_.DropdownMenuShortcut,{children:(0,L.itemKeyLabel)("remove")})]})]})}function H({item:e,items:s,actions:a,className:n,open:r,onOpenChange:l}){return(0,t.jsxs)(_.DropdownMenu,{open:r,onOpenChange:l,children:[(0,t.jsx)(_.DropdownMenuTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button","aria-label":`Actions for ${e.id}`,className:(0,b.cn)("grid size-7 place-items-center rounded-md text-muted hover:bg-surface2 hover:text-txt",n),children:(0,t.jsx)(E.MoreHorizontal,{className:"size-4"})})}),(0,t.jsx)(_.DropdownMenuContent,{align:"end",className:"w-52",children:(0,t.jsx)(F,{item:e,items:s,actions:a})})]})}function U({at:e,items:s,actions:a,onClose:n}){let r=e&&s.find(t=>t.id===e.id);return e&&r?(0,t.jsxs)(_.DropdownMenu,{open:!0,onOpenChange:e=>{e||n()},children:[(0,t.jsx)(_.DropdownMenuTrigger,{asChild:!0,children:(0,t.jsx)("span",{"aria-hidden":!0,className:"pointer-events-none fixed size-0",style:{left:e.x,top:e.y}})}),(0,t.jsx)(_.DropdownMenuContent,{align:"start",className:"w-52",children:(0,t.jsx)(F,{item:r,items:s,actions:a})})]},`${e.id}:${e.x}:${e.y}`):null}var W=e.i(35032),K=e.i(508540),X=e.i(65112),G=e.i(673635);let q=["planned","in-progress","paused","done"],J="w-full rounded-md border border-border bg-bg px-3 py-2 text-sm text-txt focus:outline-hidden focus:ring-1 focus:ring-accent disabled:opacity-50",V="text-xs font-medium text-muted",Z="font-mono text-[10px] uppercase tracking-widest text-muted";function Y({item:e,onClose:s,...a}){return(0,t.jsx)(z.Sheet,{open:!!e,onOpenChange:e=>{e||s()},children:(0,t.jsx)(z.SheetContent,{className:"w-[480px] sm:max-w-[480px] gap-0 bg-surface border-border text-txt flex flex-col overflow-y-auto p-0",children:e&&(0,t.jsx)(Q,{item:e,onClose:s,...a},e.id)})})}function Q(e){return e.editing?(0,t.jsx)(et,{...e,onCancel:()=>e.onEditingChange(!1)}):(0,t.jsx)(ee,{...e,onEdit:()=>e.onEditingChange(!0)})}function ee({item:e,items:a,onClose:n,onAddFeature:r,onEditRaw:o,onSelect:c,tasksById:u,progressById:x,onEdit:m,actions:h,onSave:g}){let y=null===e.parent,w=a.find(t=>t.id===e.parent),k=a.filter(t=>t.parent===e.id).sort((e,t)=>e.order-t.order),S=x[e.id],$=(0,f.localToday)(),{chats:O,showAbout:A}=(0,I.useChats)(),E=y?void 0:(0,B.chatFor)(O,{kind:"epic",id:e.id}),P=!y&&0===e.tasks.length&&!E,[_,R]=(0,s.useState)(!1),F=t=>{g(e.id,t).then(e=>{e&&(0,G.toast)(e)})};return(0,L.useItemCommands)(`${e.id} \xb7 ${e.title}`,[{action:"edit",label:"Edit",run:m},{action:"status",label:"Change status…",run:()=>R(!0)},{action:"duplicate",label:"Duplicate",run:()=>h.duplicate(e.id)},...y?[]:[{action:"chat",label:"Chat about it",run:()=>h.chat(e.id)}],...k.length?[]:[{action:"remove",label:"Delete",run:()=>h.remove(e.id)}]]),(0,t.jsxs)("div",{className:"flex min-h-full flex-col",children:[(0,t.jsx)(K.ItemPanelHeader,{className:(0,b.cn)("px-6","in-progress"===e.status&&"bg-[linear-gradient(180deg,rgb(var(--rgb-accent)/0.08),transparent)]"),kicker:(0,t.jsx)(z.SheetDescription,{asChild:!0,children:(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-1",children:[w&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{type:"button",onClick:()=>c(w.id),className:"truncate hover:text-txt",children:w.title}),(0,t.jsx)(C.ChevronRight,{className:"h-3 w-3 shrink-0"})]}),(0,t.jsxs)("span",{className:"shrink-0",children:[e.id," · ",y?"horizon":"epic"]}),(0,t.jsx)(v.AgentMark,{attach:{kind:"epic",id:e.id}})]})}),title:(0,t.jsx)(z.SheetTitle,{className:"text-xl font-semibold leading-tight text-txt",children:e.title}),menu:(0,t.jsx)(H,{item:e,items:a,actions:h,open:_,onOpenChange:R}),properties:[{label:"Status",value:(0,t.jsx)(X.InlineSelect,{label:`Status of ${e.id}`,value:e.status,onChange:t=>h.setStatus(e.id,t),options:q.map(e=>({value:e,label:N.STATUS_LABEL[e],node:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(N.StatusDot,{status:e}),N.STATUS_LABEL[e]]})})),children:(0,t.jsx)(N.StatusPill,{status:e.status})})},{label:"Owner",value:(0,t.jsx)(X.InlineSelect,{label:`Owner of ${e.id}`,value:e.owner??"",onChange:e=>F({owner:e||null}),options:[{value:"human",label:"Human",node:(0,t.jsx)(W.OwnerChip,{owner:"human",className:"text-xs"})},...[...new Set(["ai:claude",...e.owner?.startsWith("ai:")?[e.owner]:[]])].map(e=>({value:e,label:e,node:(0,t.jsx)(W.OwnerChip,{owner:e,className:"text-xs"})})),{value:"",label:"No owner",node:(0,t.jsx)("span",{className:"text-muted",children:"No owner"})}],children:e.owner?(0,t.jsx)(W.OwnerChip,{owner:e.owner,className:"text-xs"}):(0,t.jsx)("span",{className:"text-muted",children:"—"})})},{label:"Due",value:(0,t.jsx)(X.InlineDate,{label:`Due date of ${e.id}`,value:e.due,onChange:e=>F({due:e}),children:e.due?(0,t.jsx)(N.DueChip,{due:e.due,state:(0,f.dueState)(e.due,e.status,$)}):(0,t.jsx)("span",{className:"text-muted",children:"—"})})},{label:y?"Epics":"Tasks",value:(0,t.jsx)("span",{className:"font-mono",children:y?k.length:e.tasks.length})}],children:S&&(0,t.jsxs)("div",{className:"mt-2 flex items-end gap-4",children:[(0,t.jsxs)("p",{className:"font-mono text-3xl font-semibold leading-none tabular-nums text-txt",children:[Math.round(S.done/S.total*100),(0,t.jsx)("span",{className:"text-base text-muted",children:"%"})]}),(0,t.jsxs)("div",{className:"flex-1 pb-1",children:[(0,t.jsxs)("p",{className:"mb-1.5 font-mono text-[10px] text-muted",children:[S.done," of ",S.total,y?"":" tasks"," done"]}),y?(0,t.jsx)("div",{className:"h-1.5 overflow-hidden rounded-full bg-border",children:(0,t.jsx)("div",{className:"h-full rounded-full bg-teal",style:{width:`${S.done/S.total*100}%`}})}):(0,t.jsx)(N.SegmentedProgress,{statuses:e.tasks.map(e=>u[e]?.status).filter(e=>!!e&&"cancelled"!==e)})]})]})}),(0,t.jsxs)("div",{className:"flex flex-1 flex-col gap-6 px-6 py-5",children:[!y&&e.tasks.length>0&&(0,t.jsx)(es,{item:e,tasksById:u,onOpen:o}),y&&(0,t.jsxs)("section",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("p",{className:Z,children:["Epics · ",k.length]}),0===k.length&&(0,t.jsx)("p",{className:"text-sm text-muted",children:"No epics yet."}),(0,t.jsx)("ul",{className:"-mx-2 flex flex-col",children:k.map(e=>{let s=x[e.id];return(0,t.jsx)("li",{children:(0,t.jsxs)("button",{type:"button",onClick:()=>c(e.id),className:"flex w-full items-center gap-3 rounded-md px-2 py-2 text-left hover:bg-surface2",children:[(0,t.jsx)(N.StatusDot,{status:e.status}),(0,t.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted",children:e.id}),(0,t.jsx)("span",{className:(0,b.cn)("min-w-0 flex-1 truncate text-sm","done"===e.status?"text-muted":"text-txt"),children:e.title}),s&&(0,t.jsxs)("span",{className:"shrink-0 font-mono text-[10px] text-muted",children:[s.done,"/",s.total]})]})},e.id)})})]}),(0,t.jsxs)("section",{className:"flex flex-col gap-2",children:[(0,t.jsx)("p",{className:Z,children:"Brief"}),e.body.trim()?(0,t.jsx)(T.MarkdownRenderer,{content:e.body,className:"text-sm"}):(0,t.jsx)("p",{className:"text-sm text-muted",children:"No description. Edit to add the outcome, scope and “done when”."})]})]}),(0,t.jsxs)("footer",{className:"sticky bottom-0 flex flex-wrap items-center gap-2 border-t border-border bg-surface px-6 py-3",children:[P&&(0,t.jsxs)(p.Button,{size:"sm",onClick:()=>{n(),(0,j.askAgent)(`Break down epic ${e.id} into tasks.`)},className:"bg-accent text-accent-fg hover:bg-accent/90",children:[(0,t.jsx)(l.Bot,{})," Break down with agent"]}),!y&&(0,t.jsxs)(p.Button,{size:"sm",variant:P?"outline":"default",onClick:()=>{n(),A({kind:"epic",id:e.id})},className:(0,b.cn)(!P&&"bg-accent text-accent-fg hover:bg-accent/90"),children:[(0,t.jsx)(D.MessageSquare,{})," ",E?"Open chat":"Chat"]}),y&&(0,t.jsxs)(p.Button,{size:"sm",onClick:()=>r(e.id),className:"bg-accent text-accent-fg hover:bg-accent/90",children:[(0,t.jsx)(d.Plus,{})," Add epic"]}),(0,t.jsxs)(p.Button,{size:"sm",variant:"outline",onClick:m,children:[(0,t.jsx)(M.Pencil,{})," Edit"]}),(0,t.jsxs)(p.Button,{size:"sm",variant:"ghost",onClick:()=>o(e.file),className:"ml-auto text-muted hover:text-txt",children:[(0,t.jsx)(i.FileText,{})," Open file"]})]})]})}function et({item:e,items:a,onClose:n,onSave:r,onDelete:l,onCancel:i}){let[o]=(0,s.useState)(e),[d,c]=(0,s.useState)(e.title),[u,x]=(0,s.useState)(e.status),[m,h]=(0,s.useState)(e.parent??""),[g,f]=(0,s.useState)(String(e.order)),[b,j]=(0,s.useState)(e.tasks.join(", ")),[N,v]=(0,s.useState)(e.due??""),[y,w]=(0,s.useState)(e.body),[k,S]=(0,s.useState)(null),[C,D]=(0,s.useState)(!1),M=a.some(t=>t.parent===e.id),T=a.filter(t=>null===t.parent&&t.id!==e.id),B=null===e.parent,I=null!==e.parent&&!T.some(t=>t.id===e.parent);async function O(e){D(!0),S(null);let t=await e();return D(!1),t&&S(t),!t}async function A(){let t={},s=d.trim()||o.title;if(s!==o.title&&(t.title=s),u!==o.status&&(t.status=u),(m||null)!==o.parent&&(t.parent=m||null),g.trim()!==String(o.order)){let e=Number(g);if(""===g.trim()||!Number.isFinite(e))return void S("Order must be a number");t.order=e}let a=b.split(",").map(e=>e.trim()).filter(Boolean);(a.join(",")!==o.tasks.join(",")&&(t.tasks=a),(N||null)!==o.due&&(t.due=N||null),y!==o.body&&(t.body=y),0===Object.keys(t).length)?i():await O(()=>r(e.id,t))&&n()}async function E(){await O(()=>l(e.id))&&n()}return(0,t.jsxs)("div",{className:"flex min-h-full flex-col",children:[(0,t.jsxs)("div",{className:"border-b border-border px-6 pb-4 pt-6 pr-12",children:[(0,t.jsxs)(z.SheetDescription,{className:"font-mono text-[11px] text-muted",children:["Editing ",e.id," · ",B?"horizon":"epic"]}),(0,t.jsx)(z.SheetTitle,{className:"mt-1 text-base text-txt",children:e.title})]}),(0,t.jsxs)("div",{className:"flex flex-1 flex-col gap-4 px-6 py-5",children:[(0,t.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,t.jsx)("span",{className:V,children:"Title"}),(0,t.jsx)($.Input,{value:d,onChange:e=>c(e.target.value),className:"bg-bg border-border text-txt"})]}),(0,t.jsxs)("div",{className:"grid grid-cols-3 gap-3",children:[(0,t.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,t.jsx)("span",{className:V,children:"Status"}),(0,t.jsx)("select",{value:u,onChange:e=>x(e.target.value),className:J,children:q.map(e=>(0,t.jsx)("option",{value:e,children:e},e))})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,t.jsx)("span",{className:V,children:"Parent"}),(0,t.jsxs)("select",{value:m,onChange:e=>h(e.target.value),disabled:M,title:M?"Items with children must stay on the spine":void 0,className:J,children:[(0,t.jsx)("option",{value:"",children:"— (horizon)"}),I&&(0,t.jsxs)("option",{value:e.parent??"",children:[e.parent," · missing"]}),T.map(e=>(0,t.jsxs)("option",{value:e.id,children:[e.id," · ",e.title]},e.id))]})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,t.jsx)("span",{className:V,children:"Order"}),(0,t.jsx)($.Input,{type:"number",step:10,value:g,onChange:e=>f(e.target.value),title:B?"Position on the spine":"Position within the branch",className:"bg-bg border-border text-txt"})]})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,t.jsx)("span",{className:V,children:"Due"}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)($.Input,{type:"date",value:N,onChange:e=>v(e.target.value),className:"bg-bg border-border text-txt scheme-light dark:scheme-dark"}),N&&(0,t.jsx)("button",{type:"button",onClick:()=>v(""),className:"text-xs text-muted hover:text-txt",children:"Clear"})]})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,t.jsx)("span",{className:V,children:"Tasks"}),(0,t.jsx)($.Input,{value:b,onChange:e=>j(e.target.value),placeholder:"T001, T012",className:"bg-bg border-border text-txt font-mono"})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,t.jsx)("span",{className:V,children:"Body (markdown)"}),(0,t.jsx)("textarea",{value:y,onChange:e=>w(e.target.value),rows:12,className:`${J} font-mono resize-y`})]}),k&&(0,t.jsx)("p",{className:"text-xs text-danger",children:k})]}),(0,t.jsxs)("footer",{className:"sticky bottom-0 flex items-center gap-2 border-t border-border bg-surface px-6 py-3",children:[(0,t.jsx)(p.Button,{size:"sm",onClick:A,disabled:C,className:"bg-accent text-accent-fg hover:bg-accent/90",children:"Save"}),(0,t.jsx)(p.Button,{size:"sm",variant:"ghost",onClick:i,disabled:C,className:"text-txt",children:"Cancel"}),(0,t.jsx)(p.Button,{size:"sm",variant:"ghost",onClick:E,disabled:C,className:"ml-auto text-danger hover:text-danger",children:"Delete"})]})]})}function es({item:e,tasksById:s,onOpen:a}){let n=(0,f.localToday)(),r=g(e,Object.values(s)),l="ready"===r.kind?r.taskId:null,i="waiting"===r.kind?[...r.waiting].sort((e,t)=>Number(s[t.taskId]?.status==="todo")-Number(s[e.taskId]?.status==="todo")).map(e=>e.reason):[];return(0,t.jsxs)("section",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("p",{className:Z,children:["Tasks · ",e.tasks.length]}),(0,t.jsx)("ul",{className:"-mx-2 flex flex-col",children:e.tasks.map(e=>{let r=s[e];if(!r)return(0,t.jsxs)("li",{className:"px-2 py-2 font-mono text-xs text-danger",children:[e," · missing task file"]},e);let i=r.id===l;return(0,t.jsxs)("li",{className:(0,b.cn)("group flex items-center rounded-md hover:bg-surface2",i&&"bg-accent/10 hover:bg-accent/15"),children:[(0,t.jsxs)("button",{type:"button",onClick:()=>a(r.file),className:"flex min-w-0 flex-1 items-center gap-3 px-2 py-2 text-left",children:[(0,t.jsx)("span",{title:r.status,className:(0,b.cn)("h-2 w-2 shrink-0 rounded-full",N.TASK_STATUS_BG[r.status])}),(0,t.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted",children:r.id}),(0,t.jsx)("span",{className:(0,b.cn)("min-w-0 flex-1 truncate text-sm","cancelled"===r.status?"text-muted line-through":"done"===r.status?"text-muted":"text-txt"),children:r.title}),(0,t.jsx)(N.DueChip,{due:r.due,state:(0,f.dueState)(r.due,"done"===r.status?"done":"planned",n)}),i?(0,t.jsx)("span",{className:"shrink-0 font-mono text-[10px] uppercase tracking-wider text-accent",children:"Next up"}):r.size&&"—"!==r.size&&(0,t.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-muted",children:r.size.split(" ")[0]}),(0,t.jsx)(v.AgentDot,{attach:{kind:"task",id:r.id}})]}),(0,t.jsx)(ea,{taskId:r.id})]},e)})}),i.length>0&&(0,t.jsxs)("p",{className:"truncate text-xs text-muted",title:i.join("\n"),children:[i[0],i.length>1&&` (+${i.length-1} more)`]})]})}function ea({taskId:e}){let{chats:s,showAbout:a}=(0,I.useChats)(),n=!!(0,B.chatFor)(s,{kind:"task",id:e});return(0,t.jsx)("button",{type:"button",onClick:()=>a({kind:"task",id:e}),"aria-label":`${n?"Open chat":"Chat"} about ${e}`,title:n?`Open the chat about ${e}`:`Chat about ${e}`,className:(0,b.cn)("mr-1 grid size-7 shrink-0 place-items-center rounded-md text-muted transition-[opacity,color] duration-(--duration-fast) hover:bg-surface hover:text-accent focus-visible:opacity-100",n?"text-accent opacity-100":"opacity-0 group-hover:opacity-100"),children:(0,t.jsx)(D.MessageSquare,{className:"size-3.5"})})}var en=e.i(776639);function er({open:e,heading:a,onOpenChange:n,onSubmit:r}){let[l,i]=(0,s.useState)(""),[o,d]=(0,s.useState)(null),[c,u]=(0,s.useState)(!1);function x(e){e||(i(""),d(null)),n(e)}async function m(e){if(e.preventDefault(),!l.trim())return;u(!0);let t=await r(l.trim());u(!1),t?d(t):x(!1)}return(0,t.jsx)(en.Dialog,{open:e,onOpenChange:x,children:(0,t.jsxs)(en.DialogContent,{className:"max-w-sm bg-surface border-border text-txt",children:[(0,t.jsx)(en.DialogTitle,{className:"text-sm font-semibold text-txt",children:a}),(0,t.jsxs)("form",{onSubmit:m,className:"flex flex-col gap-3",children:[(0,t.jsx)($.Input,{autoFocus:!0,value:l,onChange:e=>i(e.target.value),placeholder:"Title",className:"bg-bg border-border text-txt"}),o&&(0,t.jsx)("p",{className:"text-xs text-danger",children:o}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(p.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>x(!1),children:"Cancel"}),(0,t.jsx)(p.Button,{type:"submit",size:"sm",disabled:c||!l.trim(),className:"bg-accent text-accent-fg hover:bg-accent/90",children:"Create"})]})]})]})})}function el({open:e,onOpenChange:a}){let[n,r]=(0,s.useState)("");return(0,t.jsx)(en.Dialog,{open:e,onOpenChange:a,children:(0,t.jsxs)(en.DialogContent,{className:"max-w-lg bg-surface border-border text-txt",children:[(0,t.jsx)(en.DialogTitle,{className:"text-sm font-semibold text-txt",children:"Plan from spec"}),(0,t.jsxs)("form",{onSubmit:function(e){e.preventDefault(),n.trim()&&(a(!1),(0,j.askAgent)(`Break down this spec into tasks:
2
+
3
+ ${n.trim()}`))},className:"flex flex-col gap-3",children:[(0,t.jsx)("textarea",{autoFocus:!0,value:n,onChange:e=>r(e.target.value),placeholder:"Paste a feature spec…",rows:12,className:"w-full resize-y rounded-md border border-border bg-bg px-3 py-2 text-sm text-txt placeholder:text-muted focus:outline-none focus:ring-1 focus:ring-accent"}),(0,t.jsx)("p",{className:"text-xs text-muted",children:"The agent asks where the tasks go (a new epic, an existing epic, or no epic) and shows a plan before writing anything."}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(p.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>{r(""),a(!1)},children:"Cancel"}),(0,t.jsx)(p.Button,{type:"submit",size:"sm",disabled:!n.trim(),className:"bg-accent text-accent-fg hover:bg-accent/90",children:"Break down"})]})]})]})})}function ei({open:e,onOpenChange:s,items:a}){return(0,t.jsx)(en.Dialog,{open:e,onOpenChange:s,children:(0,t.jsxs)(en.DialogContent,{className:"max-w-lg bg-surface border-border text-txt",children:[(0,t.jsx)(en.DialogTitle,{className:"text-sm font-semibold text-txt",children:"Break down epics"}),(0,t.jsx)(eo,{items:a,onDone:()=>s(!1)})]})})}function eo({items:e,onDone:a}){let n,r=(n=(e,t)=>e.order-t.order,e.filter(e=>null===e.parent).sort(n).map(t=>({horizon:t,epics:e.filter(e=>e.parent===t.id&&"done"!==e.status).sort((e,t)=>Number(e.tasks.length>0)-Number(t.tasks.length>0)||n(e,t))})).filter(e=>e.epics.length>0)),[l,i]=(0,s.useState)(()=>new Set(r.flatMap(e=>e.epics.filter(e=>0===e.tasks.length).map(e=>e.id)))),o=(0,I.useChats)().runningCount,d=Math.max(0,B.MAX_RUNNING_CHATS-o),c=l.size>d;return(0,t.jsxs)("form",{onSubmit:function(e){if(e.preventDefault(),l.size&&!c)for(let e of(a(),r))for(let t of e.epics)l.has(t.id)&&(0,j.askAgent)(`Break down epic ${t.id} into tasks.`,{newChat:!0})},className:"flex flex-col gap-3",children:[(0,t.jsx)("div",{className:"max-h-[50vh] overflow-y-auto rounded-md border border-border",children:r.map(e=>(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"sticky top-0 bg-surface2 px-3 py-1 text-[10px] font-mono uppercase tracking-widest text-muted",children:[e.horizon.id," · ",e.horizon.title]}),(0,t.jsx)("ul",{children:e.epics.map(e=>{let s=l.has(e.id);return(0,t.jsx)("li",{className:"border-b border-border last:border-b-0",children:(0,t.jsxs)("label",{className:"flex items-start gap-2 px-3 py-1.5 text-xs cursor-pointer has-[:disabled]:cursor-not-allowed",children:[(0,t.jsx)("input",{type:"checkbox",checked:s,disabled:!s&&l.size>=d,onChange:()=>{var t;return t=e.id,void i(e=>{let s=new Set(e);return s.delete(t)||s.add(t),s})},className:"mt-0.5 accent-accent"}),(0,t.jsxs)("span",{className:"flex-1 min-w-0 text-txt",children:[(0,t.jsx)("span",{className:"font-mono text-muted mr-1",children:e.id}),e.title]}),e.tasks.length>0&&(0,t.jsxs)("span",{className:"shrink-0 text-[10px] font-mono text-muted",children:["has ",e.tasks.length," task",1===e.tasks.length?"":"s"]})]})},e.id)})})]},e.horizon.id))}),(0,t.jsx)("p",{className:c||0===d?"text-xs text-amber":"text-xs text-muted",children:0===d?`All ${B.MAX_RUNNING_CHATS} agent slots are busy. Stop a chat or wait for one to finish.`:c?`${l.size} selected, but only ${d} of ${B.MAX_RUNNING_CHATS} agent slots ${1===d?"is":"are"} free (${o} running). Uncheck some or stop a chat.`:`One chat per epic, running at once (${d} of ${B.MAX_RUNNING_CHATS} agent slots free). Each shows a plan before writing anything.`}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(p.Button,{type:"button",variant:"ghost",size:"sm",onClick:a,children:"Cancel"}),(0,t.jsxs)(p.Button,{type:"submit",size:"sm",disabled:!l.size||c,className:"bg-accent text-accent-fg hover:bg-accent/90",children:["Break down ",l.size||""," epic",1===l.size?"":"s"]})]})]})}async function ed(e,t){try{let s=await fetch(e,void 0===t?void 0:{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),a=await s.json().catch(()=>null);if(!s.ok)return{error:a?.error??`Request failed (${s.status})`};return{data:a}}catch{return{error:"Could not reach the server"}}}function ec(e,t,s,a){var r;let l,i,o,d,c,[u,x]=(r=!a,i=(l=e=>({x:e.position.x+(e.measured?.width??("horizon"===e.type?S.HORIZON_W:S.FEATURE_W))/2,y:e.position.y+(e.measured?.height??48)/2}))(t),d=(o=l(s)).x-i.x,c=o.y-i.y,r||Math.abs(d)>Math.abs(c)?d>0?[n.Position.Right,n.Position.Left]:[n.Position.Left,n.Position.Right]:c>0?[n.Position.Bottom,n.Position.Top]:[n.Position.Top,n.Position.Bottom]);return{id:e,source:t.id,target:s.id,sourceHandle:u,targetHandle:`${x}-t`,type:a?"straight":"default",selectable:!1,...function(e,t,s){if(s)return"done"===e.data.item.status?{style:{stroke:"var(--color-accent)",strokeWidth:3}}:{style:{stroke:"var(--color-border2)",strokeWidth:3,strokeDasharray:"6 6"}};let a=t.data.item.status;return"in-progress"===a?{animated:!0,style:{stroke:"var(--color-accent)",strokeWidth:2}}:"done"===a?{style:{stroke:"var(--color-border2)",strokeWidth:1.5}}:{style:{stroke:"var(--color-border2)",strokeWidth:1.5,strokeDasharray:"2 5",strokeLinecap:"round"}}}(t,s,a)}}function eu(e){let t=new MutationObserver(e);return t.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>t.disconnect()}let ex={"--xy-background-color":"var(--color-bg)"};function em(){let{rootParam:e,openDoc:n,board:r}=(0,x.useApp)(),{showAbout:h}=(0,I.useChats)(),v=(0,u.useRouter)(),y=(0,u.useSearchParams)(),k="timeline"===y.get("view")?"timeline":"map",C=(0,f.localToday)(),[D,M]=(0,s.useState)([]),[z,$]=(0,s.useState)({}),[T,B]=(0,s.useState)([]),[O,A]=(0,s.useState)(!0),[E,P]=(0,s.useState)(null),[_,L]=(0,s.useState)(null),[R,F]=(0,s.useState)(null),[H,W]=(0,s.useState)(null),K=y.get("item"),[X,q]=(0,s.useState)(null);K!==X&&(q(K),K&&L(K));let[J,V]=(0,s.useState)(null),[Z,Q]=(0,s.useState)(!1),[ee,et]=(0,s.useState)(null),[es,ea]=(0,s.useState)(!1),[en,eo]=(0,s.useState)(!1),em=(0,s.useRef)(!1),eg=(0,s.useRef)(null),ef=(0,s.useCallback)(e=>{let t=eg.current?.clientWidth??0,s=e.getNodesBounds(e.getNodes());if(!t||!s.width)return;let a=Math.min(1,Math.max(.75,(t-80)/s.width));e.setViewport({x:t/2-(s.x+s.width/2)*a,y:40-s.y*a,zoom:a})},[]),eb=(0,s.useRef)(!1),ej=(0,s.useRef)(0),eN=(0,s.useSyncExternalStore)(eu,()=>document.documentElement.classList.contains("dark"),()=>!0),ev=(0,s.useCallback)((e,t)=>{M(e),$(t),B(s=>{let a,n;return a=(0,S.resolvePositions)(e,t),n=new Map(s.map(e=>[e.id,e])),e.map(e=>{let t=n.get(e.id);return{id:e.id,type:null===e.parent?"horizon":"feature",position:a[e.id]??{x:0,y:0},data:{item:e},measured:t?.measured,selected:t?.selected}})})},[]),ey=(0,s.useCallback)(()=>{let t=++ej.current;return ed(`/api/roadmap${e}`).then(({data:e,error:s})=>{if(t===ej.current){if(A(!1),s){P(s),ev([],{}),L(null);return}P(null),V(e?.generateSource??null),ev(e?.items??[],e?.layout??{})}})},[e,ev]);(0,s.useEffect)(()=>{ey()},[ey]),(0,s.useEffect)(()=>{let e=new EventSource("/api/events");return e.onmessage=e=>{try{let t=JSON.parse(e.data);if("roadmap_updated"!==t.type)return;em.current?eb.current=!0:ey()}catch{}},()=>e.close()},[ey]);let ew=(0,s.useMemo)(()=>{let e=new Map(T.map(e=>[e.id,e])),t=[],s=D.filter(e=>null===e.parent).sort((e,t)=>e.order-t.order);for(let a of(s.forEach((a,n)=>{let r=e.get(a.id),l=s[n+1]&&e.get(s[n+1].id);r&&l&&t.push(ec(`spine-${a.id}`,r,l,!0))}),D)){let s=a.parent&&e.get(a.parent),n=e.get(a.id);s&&n&&"horizon"===s.type&&t.push(ec(`branch-${a.id}`,s,n,!1))}return t},[D,T]),ek=(0,s.useMemo)(()=>Object.fromEntries(Object.values(r??{}).flat().map(e=>[e.id,e])),[r]),eS=(0,s.useMemo)(()=>(0,f.roadmapHealth)(D,ek,C),[D,ek,C]),eC=(0,s.useMemo)(()=>{let e=Object.values(ek),t=new Map(D.filter(e=>null===e.parent).sort((e,t)=>e.order-t.order).map((e,t)=>[e.id,t+1]));return T.map(s=>{var a;let n,{item:r}=s.data,l=D.filter(e=>e.parent===r.id),i="feature"===s.type&&"in-progress"===r.status?g(r,e):null;return{...s,data:{...s.data,progress:eS.progress[s.id],drift:eS.drift.filter(e=>e.id===s.id).map(e=>e.message),dueState:(0,f.dueState)(r.due,r.status,C),..."feature"===s.type&&{...(a=r.tasks,{taskDue:n=(0,f.taskDueSummary)(a,ek,C),taskDueSoon:!!n?.next&&"soon"===(0,f.dueState)(n.next,"planned",C)}),taskStatuses:r.tasks.map(e=>ek[e]?.status).filter(e=>!!e&&"cancelled"!==e),nextTaskId:i?.kind==="ready"?i.taskId:null},..."horizon"===s.type&&{chapter:t.get(r.id),epics:{done:l.filter(e=>"done"===e.status).length,total:l.length}}}}})},[T,D,eS,C,ek]),eD=(0,s.useCallback)(e=>B(t=>(0,a.applyNodeChanges)(e,t)),[]);async function eM(){Q(!0),P(null);let{data:t,error:s}=await ed(`/api/roadmap/generate${e}`,{});if(s){P(s),Q(!1);return}let a=Object.fromEntries(Object.entries((0,S.resolvePositions)(t?.items??[],{})).map(([e,t])=>[e,{x:Math.round(t.x),y:Math.round(t.y)}])),{error:n}=await ed(`/api/roadmap/layout${e}`,{positions:a});await ey(),n&&P(n),Q(!1)}let ez=Object.values(r??{}).flat().filter(e=>"cancelled"!==e.status).length,e$="roadmap-md"===J?"from ROADMAP.md":"tasks"===J?`from ${ez} tasks, grouped by phase`:"starter horizons: Shipped · Now · Next · Later";async function eT(t){let{error:s}=await ed(`/api/roadmap/create${e}`,{title:t,parent:ee||null});return s||(await ey(),null)}async function eB(t,s){ev(D.map(e=>e.id===t?{...e,...s}:e),z);let{data:a,error:n}=await ed(`/api/roadmap/update${e}`,{id:t,patch:s});if(n)return await ey(),n;let r=a?.item;return r?ev(D.map(e=>e.id===t?r:e),z):await ey(),null}async function eI(t){let{data:s,error:a}=await ed(`/api/roadmap/delete${e}`,{id:t});return a||(ev(D.filter(e=>e.id!==t),z),s&&(0,G.undoToast)(`Deleted ${t}`,async()=>{let{error:t}=await ed(`/api/roadmap/restore${e}`,s);if(t)throw Error(t);await ey()}),null)}let eO=D.find(e=>e.id===_)??null,eA=e=>{e&&P(e)},eE={edit:e=>{L(e),F(e)},setStatus:(e,t)=>{eB(e,{status:t}).then(eA)},move:(e,t)=>{eB(e,{parent:t}).then(eA)},addEpic:e=>{L(null),et(e)},duplicate:async t=>{let s=D.find(e=>e.id===t);if(!s)return;let{data:a,error:n}=await ed(`/api/roadmap/create${e}`,{title:`${s.title} (copy)`,parent:s.parent,status:"planned",order:s.order+1,due:s.due,body:s.body});if(n)return P(n);await ey(),a?.item&&L(a.item.id)},openFile:e=>n(e),chat:e=>{L(null),h({kind:"epic",id:e})},remove:async e=>{let t=await eI(e);if(t)return P(t);_===e&&L(null)}},eP=(e,t)=>{t.preventDefault(),W({id:e,x:t.clientX,y:t.clientY})},e_=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(er,{open:null!==ee,heading:ee?`New feature under ${ee}`:"New horizon",onOpenChange:e=>{e||et(null)},onSubmit:eT}),(0,t.jsx)(el,{open:es,onOpenChange:ea}),(0,t.jsx)(ei,{open:en,onOpenChange:eo,items:D})]});return O?(0,t.jsx)("div",{className:"flex-1 flex items-center justify-center text-sm text-muted",children:"Loading…"}):0===D.length?(0,t.jsxs)("div",{className:"flex-1 p-6",children:[E&&(0,t.jsx)("p",{className:"mb-4 text-sm text-danger",children:E}),(0,t.jsx)(m.EmptyState,{icon:"🗺️",message:"No roadmap yet",subMessage:"Items live in plans/roadmap/R*.md",bordered:!0}),(0,t.jsxs)("div",{className:"mt-4 flex flex-col items-center gap-2",children:[(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsxs)(p.Button,{size:"sm",onClick:eM,disabled:Z,className:"bg-accent text-accent-fg hover:bg-accent/90",children:[(0,t.jsx)(c.Sparkles,{})," ",Z?"Generating…":"Generate roadmap"]}),(0,t.jsxs)(p.Button,{size:"sm",variant:"outline",onClick:()=>(0,j.askAgent)("Plan a roadmap for this project."),disabled:Z,children:[(0,t.jsx)(l.Bot,{})," Plan with agent"]}),(0,t.jsxs)(p.Button,{size:"sm",variant:"outline",onClick:()=>ea(!0),disabled:Z,children:[(0,t.jsx)(i.FileText,{})," Plan from spec"]}),(0,t.jsxs)(p.Button,{size:"sm",variant:"outline",onClick:()=>et(""),disabled:Z,children:[(0,t.jsx)(d.Plus,{})," Create first horizon"]})]}),(0,t.jsxs)("p",{className:"text-xs text-muted",children:["Generate ",e$,". Existing files are not modified."]})]}),e_]}):(0,t.jsxs)("div",{className:"relative flex flex-1 min-h-0 flex-col",children:[(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-4 border-b border-border px-3 py-2",children:[(0,t.jsx)("div",{className:"flex rounded-md border border-border p-0.5 text-xs",children:["map","timeline"].map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>{let t,s;return t=new URLSearchParams(y.toString()),"map"===e?t.delete("view"):t.set("view",e),s=t.toString(),void v.replace(s?`/roadmap?${s}`:"/roadmap")},className:(0,b.cn)("rounded-sm px-3 py-1 capitalize",k===e?"bg-surface2 text-txt":"text-muted hover:text-txt"),children:e},e))}),(0,t.jsx)(ep,{items:D,tasksById:ek}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[E&&(0,t.jsx)("p",{className:"text-xs text-danger",children:E}),eS.drift.length>0&&(0,t.jsx)(eh,{drift:eS.drift,onSelect:L,onApply:e=>e.suggestedStatus&&eB(e.id,{status:e.suggestedStatus}).then(e=>{e&&P(e)})}),(0,t.jsxs)(p.Button,{size:"sm",variant:"outline",onClick:()=>ea(!0),children:[(0,t.jsx)(i.FileText,{})," Plan from spec"]}),D.some(e=>null!==e.parent&&"done"!==e.status)&&(0,t.jsxs)(p.Button,{size:"sm",variant:"outline",onClick:()=>eo(!0),children:[(0,t.jsx)(o.ListTree,{})," Break down epics…"]}),(0,t.jsxs)(p.Button,{size:"sm",onClick:()=>et(""),className:"bg-accent text-accent-fg hover:bg-accent/90",children:[(0,t.jsx)(d.Plus,{})," Horizon"]})]})]}),"map"===k?(0,t.jsx)("div",{ref:eg,className:"relative flex-1 min-h-0",children:(0,t.jsxs)(a.ReactFlow,{nodes:eC,edges:ew,nodeTypes:N.nodeTypes,onNodesChange:eD,onNodeClick:(e,t)=>L(t.id),onNodeContextMenu:(e,t)=>eP(t.id,e),onNodeDragStart:()=>{em.current=!0},onNodeDragStop:(t,s,a)=>{let n;return em.current=!1,n=Object.fromEntries(a.map(e=>[e.id,{x:Math.round(e.position.x),y:Math.round(e.position.y)}])),void(ev(D,{...z,...n}),ed(`/api/roadmap/layout${e}`,{positions:n}).then(({error:e})=>{e&&P(e),eb.current&&(eb.current=!1,ey())}))},nodesConnectable:!1,deleteKeyCode:null,colorMode:eN?"dark":"light",onInit:ef,minZoom:.2,style:ex,children:[(0,t.jsx)(a.Background,{variant:a.BackgroundVariant.Dots,gap:20,size:1}),(0,t.jsx)(a.Controls,{showInteractive:!1})]})}):(0,t.jsx)(w,{items:D,today:C,onSelect:L,onItemContextMenu:eP,progressById:eS.progress}),(0,t.jsx)(Y,{item:eO,items:D,onClose:()=>L(null),editing:!!eO&&R===eO.id,onEditingChange:e=>F(e?_:null),actions:eE,onSave:eB,onDelete:eI,onAddFeature:e=>{L(null),et(e)},onEditRaw:e=>{n(e)},tasksById:ek,progressById:eS.progress,onSelect:L}),(0,t.jsx)(U,{at:H,items:D,actions:eE,onClose:()=>W(null)}),e_]})}function ep({items:e,tasksById:s}){let a=e.filter(e=>null!==e.parent),n=e=>a.filter(t=>t.status===e).length,r=[...new Set(a.flatMap(e=>e.tasks))].map(e=>s[e]).filter(e=>e&&"cancelled"!==e.status),l=r.filter(e=>"done"===e.status).length;return(0,t.jsxs)("div",{className:"hidden items-center gap-4 font-mono text-[11px] text-muted md:flex",children:[["in-progress","paused","done","planned"].filter(e=>"paused"!==e||n(e)>0).map(e=>(0,t.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,t.jsx)(N.StatusDot,{status:e}),(0,t.jsx)("span",{className:(0,b.cn)("tabular-nums","in-progress"===e&&n(e)>0?"text-accent":"text-txt"),children:n(e)}),N.STATUS_LABEL[e].toLowerCase()]},e)),r.length>0&&(0,t.jsxs)("span",{className:"flex items-center gap-2 border-l border-border pl-4",children:[(0,t.jsx)("span",{className:"relative h-1 w-20 overflow-hidden rounded-full bg-border",children:(0,t.jsx)("span",{className:"absolute inset-y-0 left-0 rounded-full bg-teal",style:{width:`${l/r.length*100}%`}})}),(0,t.jsxs)("span",{children:[(0,t.jsxs)("span",{className:"tabular-nums text-txt",children:[l,"/",r.length]})," tasks"]})]})]})}function eh({drift:e,onSelect:s,onApply:a}){return(0,t.jsxs)("details",{className:"group relative",children:[(0,t.jsxs)("summary",{className:"flex h-8 cursor-pointer list-none items-center gap-1.5 rounded-md border border-amber/40 bg-amber/10 px-2.5 text-xs font-medium text-txt hover:bg-amber/15 [&::-webkit-details-marker]:hidden",children:[(0,t.jsx)(r.AlertTriangle,{className:"h-3.5 w-3.5 text-amber"})," ",e.length," need attention"]}),(0,t.jsx)("ul",{className:"absolute right-0 top-full z-30 mt-1.5 max-h-72 w-80 overflow-y-auto rounded-lg border border-border bg-surface text-xs shadow-xl",children:e.map(e=>(0,t.jsxs)("li",{className:"flex items-start gap-2 border-b border-border px-3 py-2.5 last:border-0",children:[(0,t.jsx)("span",{className:"mt-1 h-1.5 w-1.5 shrink-0 rounded-full bg-amber"}),(0,t.jsx)("button",{type:"button",onClick:()=>s(e.id),className:"flex-1 text-left leading-relaxed text-muted hover:text-txt",children:e.message}),e.suggestedStatus&&(0,t.jsxs)("button",{type:"button",onClick:()=>a(e),className:"shrink-0 rounded-sm border border-border px-1.5 py-0.5 font-mono text-[10px] text-txt hover:border-accent hover:text-accent",title:`Set status to ${e.suggestedStatus}`,children:["→ ",e.suggestedStatus]})]},`${e.id}-${e.kind}`))})]})}e.s(["default",0,function(){return(0,t.jsx)("div",{className:"flex flex-col h-[calc(100svh-3rem)]",children:(0,t.jsx)(s.Suspense,{children:(0,t.jsx)(em,{})})})}],298367)}]);
@@ -0,0 +1,9 @@
1
+ @font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_9c6cb61b-module__8NX9hq__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_9c6cb61b-module__8NX9hq__variable{--font-geist:"Geist", "Geist Fallback"}
2
+ @font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.31988l_ccedte.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0r6juujl39pe6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_d6617093-module__z61v7q__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_d6617093-module__z61v7q__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
3
+ @font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.2bn3s6zvc0dyp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_ce44cde5-module__EWa6Cq__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_ce44cde5-module__EWa6Cq__variable{--font-inter:"Inter", "Inter Fallback"}
4
+ @font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.02z5rrbg5nt92.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.0wiir8udbzjvx.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Fallback;src:local(Arial);ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.0%;size-adjust:101.17%}.ibm_plex_sans_abbe3f68-module__2aQ_Fa__className{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.ibm_plex_sans_abbe3f68-module__2aQ_Fa__variable{--font-ibm-plex-sans:"IBM Plex Sans", "IBM Plex Sans Fallback"}
5
+ @font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-weight:400;font-display:swap;src:url(../media/cc6c75d91fb27f62-s.3j-lqo2q-puhp.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ed5f1f9bced69653-s.2li_3lqay9qjq.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-weight:700;font-display:swap;src:url(../media/574e5b2a8fe8e45b-s.061jvc6_x84nn.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-weight:700;font-display:swap;src:url(../media/89ea96820aa96980-s.0hs6q6udzld4a.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Fallback;src:local(Arial);ascent-override:95.6%;descent-override:29.18%;line-gap-override:0.0%;size-adjust:99.37%}.atkinson_hyperlegible_86f3eeac-module__H04cSq__className{font-family:Atkinson Hyperlegible,Atkinson Hyperlegible Fallback;font-style:normal}.atkinson_hyperlegible_86f3eeac-module__H04cSq__variable{--font-atkinson:"Atkinson Hyperlegible", "Atkinson Hyperlegible Fallback"}
6
+ @font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/c3cb240f9c892514-s.3z_x6eowsw16y.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.2_mbdogr7ni8i.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_4dbccdff-module__kMSx3G__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_4dbccdff-module__kMSx3G__variable{--font-dm-sans:"DM Sans", "DM Sans Fallback"}
7
+ @font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.3t6q91iet4nsy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_d9365dea-module__eFWXIa__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_d9365dea-module__eFWXIa__variable{--font-jetbrains-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
8
+ @font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e390973e931a41c5-s.0rgnxg2b64rzs.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/59b15b4bcd7b1eb5-s.2vemzm0itqzfy.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e532fa1b9921e1cd-s.3cb5lpr2l6xud.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2fe89d53234c61d4-s.1u30mmyq6lnsd.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/99e609270109b47d-s.40sczeszzbjw1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5e05ae5b48faa55e-s.1yd4_i3e35931.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a7afbb44bec2bb18-s.1qc6dx89jd2qv.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/02263ebadd758ea4-s.29yke99gs9qpn.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/68757d6cddeff913-s.1i-sca43-qwng.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/effe91970fc4db64-s.0oace-s_gkfks.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono Fallback;src:local(Arial);ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:134.59%}.ibm_plex_mono_a350e774-module__yi3qSG__className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.ibm_plex_mono_a350e774-module__yi3qSG__variable{--font-ibm-plex-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
9
+ @font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b12e986493c137cf-s.2njitm-prmz2_.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/36363bfb06833f56-s.38hmww4cj4vme.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b2fa3ef4ca165ab4-s.12_ml6bnugnre.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a73419dd2ba2d841-s.2yee423r7ahpo.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono Fallback;src:local(Arial);ascent-override:73.71%;descent-override:23.03%;line-gap-override:0.0%;size-adjust:134.59%}.dm_mono_c5369204-module__U0WqgG__className{font-family:DM Mono,DM Mono Fallback;font-style:normal}.dm_mono_c5369204-module__U0WqgG__variable{--font-dm-mono:"DM Mono", "DM Mono Fallback"}
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,765470,e=>{"use strict";var o=e.i(83790);let t={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]};t.node;let r=(0,o.default)(t);e.s(["X",0,r],765470)},910172,(e,o,t)=>{o.exports=e.r(814772)},763371,673635,243668,7284,975157,e=>{"use strict";let o,t,r,s,n;var a,l=e.i(72345),i=e.i(694628),d=e.i(574990),c=e.i(180338),m=e.i(765470);let p=[],u=1,b=new Set,f=()=>b.forEach(e=>e()),g=[];function h(e){p=p.filter(o=>o.id!==e),f()}function k(e,o={}){let t=u++;return p=[...p.slice(-2),{id:t,message:e,action:o.action}],f(),setTimeout(()=>h(t),o.durationMs??6e3),t}e.s(["Toaster",0,function(){let e=(0,c.useSyncExternalStore)(e=>(b.add(e),()=>{b.delete(e)}),()=>p,()=>g);return(0,l.jsx)("div",{role:"status","aria-live":"polite",className:"pointer-events-none fixed bottom-4 left-1/2 z-[100] flex -translate-x-1/2 flex-col items-center gap-2",children:e.map(e=>(0,l.jsxs)("div",{className:"pointer-events-auto flex animate-slide-in items-center gap-3 rounded-lg border border-border bg-surface2 py-2 pl-4 pr-2 text-sm text-txt shadow-xl",children:[(0,l.jsx)("span",{children:e.message}),e.action&&(0,l.jsx)("button",{type:"button",onClick:e.action.onClick,className:"rounded-md px-2 py-1 text-xs font-medium text-accent hover:bg-accent/10",children:e.action.label}),(0,l.jsx)("button",{type:"button","aria-label":"Dismiss",onClick:()=>h(e.id),className:"grid size-6 place-items-center rounded-md text-muted hover:text-txt",children:(0,l.jsx)(m.X,{className:"size-3.5"})})]},e.id))})},"toast",0,k,"undoToast",0,function(e,o){let t=k(e,{durationMs:8e3,action:{label:"Undo",onClick:()=>{h(t),o().catch(e=>k(`Undo failed: ${e.message}`))}}})}],673635);var v=e.i(399531),w=e.i(910172);let y={theme:"dark",accentColor:"blue",fontSize:"medium",fontSans:"geist",fontMono:"geist-mono",editor:{autoSave:10,wordWrap:!0,lineNumbers:!0,previewMode:"split"},project:{autoRefresh:10,showHidden:!1},mcp:{endpoint:""}};e.s(["DEFAULT_AGENTS",0,[{id:"code-assistant",name:"Code Assistant",icon:"🤖",description:"General-purpose coding help",skills:["code-review","test-writer"],prompt:"You are a helpful coding assistant. Help the user with their coding tasks.",active:!0},{id:"doc-bot",name:"Documentation Bot",icon:"📚",description:"Focused on docs and comments",skills:["doc-generator"],prompt:"You are a documentation specialist. Focus on creating and improving documentation.",active:!0}],"DEFAULT_SETTINGS",0,y,"DEFAULT_SKILLS",0,[{id:"code-review",name:"Code Review",description:"Analyzes code for quality, security, and performance issues",trigger:"/review",prompt:"You are an expert code reviewer. Analyze the provided code for:\n- Code quality and best practices\n- Security vulnerabilities\n- Performance issues\n- Maintainability concerns\n\nProvide actionable feedback.",tools:["vibedoc_read_doc","vibedoc_search_docs"],icon:"🔧"},{id:"doc-generator",name:"Documentation Generator",description:"Creates documentation from code and comments",trigger:"/docs",prompt:"You are a technical documentation writer. Generate clear, comprehensive documentation for the provided code or feature.",tools:["vibedoc_read_doc","vibedoc_write_doc"],icon:"📝"},{id:"test-writer",name:"Test Writer",description:"Generates unit tests for functions and components",trigger:"/test",prompt:"You are a testing expert. Write comprehensive unit tests for the provided code, covering edge cases and ensuring good test coverage.",tools:["vibedoc_read_doc","vibedoc_search_docs"],icon:"🧪"}],"MONO_FONTS",0,[{id:"geist-mono",label:"Geist Mono",note:"Pairs with Geist."},{id:"jetbrains-mono",label:"JetBrains Mono",note:"Tall letters, made for code."},{id:"ibm-plex-mono",label:"IBM Plex Mono",note:"Pairs with IBM Plex Sans."},{id:"dm-mono",label:"DM Mono",note:"The previous default."},{id:"system",label:"System",note:"Your OS monospace font."}],"SANS_FONTS",0,[{id:"geist",label:"Geist",note:"Made for developer tools. Clean and neutral."},{id:"inter",label:"Inter",note:"The standard UI font. Very clear at small sizes."},{id:"ibm-plex-sans",label:"IBM Plex Sans",note:"Warm and humanist. Good for long reading."},{id:"atkinson",label:"Atkinson Hyperlegible",note:"Letters are easy to tell apart. Best for legibility."},{id:"dm-sans",label:"DM Sans",note:"Geometric. The previous default."},{id:"system",label:"System",note:"Your OS font. Nothing to download."}],"resolveMcpEndpoint",0,function(e,o){return e&&"http://localhost:3000/api/mcp"!==e?e:`${o}/api/mcp`}],243668);let x=(0,c.createContext)(null);function z(){for(var e,o,t=0,r="",s=arguments.length;t<s;t++)(e=arguments[t])&&(o=function e(o){var t,r,s="";if("string"==typeof o||"number"==typeof o)s+=o;else if("object"==typeof o)if(Array.isArray(o)){var n=o.length;for(t=0;t<n;t++)o[t]&&(r=e(o[t]))&&(s&&(s+=" "),s+=r)}else for(r in o)o[r]&&(s&&(s+=" "),s+=r);return s}(e))&&(r&&(r+=" "),r+=o);return r}e.s(["AppProvider",0,function({children:e}){let o=(0,w.useRouter)(),[t,r]=(0,c.useState)([]),[s,n]=(0,c.useState)(""),[a,m]=(0,c.useState)(null),[p,u]=(0,c.useState)(null),[b,f]=(0,c.useState)([]),[g,h]=(0,c.useState)(!0),[z,S]=(0,c.useState)(!1),[j,C]=(0,c.useState)("connecting"),[T,_]=(0,c.useState)(null),[N,O]=(0,c.useState)(y.editor),[$,A]=(0,c.useState)(0),G=(0,c.useRef)(null),I=s?`?root=${encodeURIComponent(s)}`:"?",M=(0,c.useCallback)(async e=>{let o=e||s;if(!o)return;let t=`?root=${encodeURIComponent(o)}`;try{let[e,o,r,s]=await Promise.all([fetch(`/api/summary${t}`).then(e=>e.json()),fetch(`/api/tasks${t}`).then(e=>e.json()),fetch(`/api/activity${t}&limit=30`).then(e=>e.json()),fetch(`/api/settings${t}&type=settings`).then(e=>e.ok?e.json():null).catch(()=>null)]);(0,d.setStatusDefs)((0,i.statusDefs)(s?.statuses)),m(e);let n=o?.board;u(n&&"object"==typeof n?{todo:n.todo??[],"in-progress":n["in-progress"]??[],review:n.review??[],blocked:n.blocked??[],paused:n.paused??[],done:n.done??[],cancelled:n.cancelled??[]}:null),f(Array.isArray(r)?r:[])}catch(e){console.error("[vibedoc] refresh failed:",e)}h(!1)},[s]);(0,c.useEffect)(()=>{fetch("/api/projects").then(e=>e.json()).then(e=>{r(e),e.length>0?(n(e[0].root),M(e[0].root)):h(!1)}).catch(e=>{console.error("[vibedoc] could not load projects:",e),h(!1)})},[]),(0,c.useEffect)(()=>{if(!s)return;let e=new EventSource("/api/events");return G.current=e,e.onopen=()=>C("live"),e.onerror=()=>C("disconnected"),e.onmessage=e=>{try{let o=JSON.parse(e.data);if("connected"===o.type||(window.dispatchEvent(new CustomEvent("vibedoc:sse",{detail:o})),"chat_saved"===o.type))return;S(!0),setTimeout(()=>S(!1),2e3),["task_updated","task_created","decision_logged","memory_updated","session_start"].includes(o.type)&&M()}catch{}},()=>{e.close(),C("connecting")}},[s,M]);let E=(0,c.useCallback)(async(e,o)=>{let t=()=>u(t=>{let r;if(!t)return t;let s=structuredClone(t);for(let o of Object.keys(s)){let t=s[o].findIndex(o=>o.id===e);-1!==t&&(r={...s[o][t]},s[o]=s[o].filter(o=>o.id!==e))}let n=(0,i.resolveStatus)(o,(0,d.getStatusDefs)()),a=n.status;return r&&(r={...r,status:n.status,customStatus:n.customStatus}),r&&s[a]&&(s[a]=[...s[a],r].sort((e,o)=>e.file<o.file?-1:+(e.file>o.file))),s});"u">typeof document&&"startViewTransition"in document?document.startViewTransition(()=>(0,v.flushSync)(t)):t();try{let t=await fetch(`/api/tasks${I}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({taskId:e,status:o,actor:"human"})});t.ok||k(`Could not move ${e}: ${(await t.json().catch(()=>null))?.error??t.status}`)}catch{k(`Could not move ${e}: the server is not reachable`)}M()},[I,M]),P=(0,c.useCallback)(async(e,o)=>{u(t=>{if(!t)return t;let r={...t};for(let t of Object.keys(r))r[t]=r[t].map(t=>t.id===e?{...t,...o,size:o.size??t.size}:t);return r});try{let t=await fetch(`/api/tasks/update${I}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,patch:o})});if(!t.ok)throw Error((await t.json().catch(()=>null))?.error??`HTTP ${t.status}`)}catch(o){k(`Could not update ${e}: ${o.message}`),M()}},[I,M]),D=(0,c.useCallback)(async e=>{let t=await fetch(`/api/docs${I}&read=${encodeURIComponent(e)}`);_(await t.json()),o.push("/docs")},[I,o]);return(0,l.jsx)(x.Provider,{value:{projects:t,activeProject:s,summary:a,board:p,activity:b,liveIndicator:z,connection:j,loading:g,selectedDoc:T,setSelectedDoc:_,rootParam:I,onProjectChange:function(e){n(e),M(e)},refresh:M,moveTask:E,updateTaskFields:P,openDoc:D,editorSettings:N,setEditorSettings:O,autoRefreshSeconds:$,setAutoRefreshSeconds:A},children:e})},"useApp",0,function(){let e=(0,c.useContext)(x);if(!e)throw Error("useApp must be used inside AppProvider");return e}],763371),e.s(["clsx",0,z],7284);let S=(e=new Map,o=null,t)=>({nextPart:e,validators:o,classGroupId:t}),j=[],C=(e,o,t)=>{if(0==e.length-o)return t.classGroupId;let r=e[o],s=t.nextPart.get(r);if(s){let t=C(e,o+1,s);if(t)return t}let n=t.validators;if(null===n)return;let a=0===o?e.join("-"):e.slice(o).join("-"),l=n.length;for(let e=0;e<l;e++){let o=n[e];if(o.validator(a))return o.classGroupId}},T=(e,o)=>{let t=S();for(let r in e)_(e[r],t,r,o);return t},_=(e,o,t,r)=>{let s=e.length;for(let n=0;n<s;n++)N(e[n],o,t,r)},N=(e,o,t,r)=>{"string"==typeof e?O(e,o,t):"function"==typeof e?$(e,o,t,r):A(e,o,t,r)},O=(e,o,t)=>{(""===e?o:G(o,e)).classGroupId=t},$=(e,o,t,r)=>{I(e)?_(e(r),o,t,r):(null===o.validators&&(o.validators=[]),o.validators.push({classGroupId:t,validator:e}))},A=(e,o,t,r)=>{let s=Object.entries(e),n=s.length;for(let e=0;e<n;e++){let[n,a]=s[e];_(a,G(o,n),t,r)}},G=(e,o)=>{let t=e,r=o.split("-"),s=r.length;for(let e=0;e<s;e++){let o=r[e],s=t.nextPart.get(o);s||(s=S(),t.nextPart.set(o,s)),t=s}return t},I=e=>"isThemeGetter"in e&&!0===e.isThemeGetter,M=[],E=(e,o,t,r,s)=>({modifiers:e,hasImportantModifier:o,baseClassName:t,maybePostfixModifierPosition:r,isExternal:s}),P=/\s+/,D=e=>{let o;if("string"==typeof e)return e;let t="";for(let r=0;r<e.length;r++)e[r]&&(o=D(e[r]))&&(t&&(t+=" "),t+=o);return t},U=[],L=e=>{let o=o=>o[e]||U;return o.isThemeGetter=!0,o.themeKey=e,o},W=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,R=/^\((?:(\w[\w-]*):)?(.+)\)$/i,B=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,F=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Y=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,J=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix|color|light-dark)\(.+\)$/,q=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,H=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,K=e=>B.test(e),V=e=>!!e&&!Number.isNaN(Number(e)),X=e=>!!e&&Number.isInteger(Number(e)),Q=e=>e.endsWith("%")&&V(e.slice(0,-1)),Z=e=>F.test(e),ee=()=>!0,eo=e=>Y.test(e)&&!J.test(e),et=()=>!1,er=e=>q.test(e),es=e=>H.test(e),en=e=>!ei(e)&&!eg(e),ea=e=>e.startsWith("@container")&&("/"===e[10]&&void 0!==e[11]||"s"===e[11]&&void 0!==e[16]&&e.startsWith("-size/",10)||"n"===e[11]&&void 0!==e[18]&&e.startsWith("-normal/",10)),el=e=>eS(e,e_,et),ei=e=>W.test(e),ed=e=>eS(e,eN,eo),ec=e=>eS(e,eO,V),em=e=>eS(e,eA,ee),ep=e=>eS(e,e$,et),eu=e=>eS(e,eC,et),eb=e=>eS(e,eT,es),ef=e=>eS(e,eG,er),eg=e=>R.test(e),eh=e=>ej(e,eN),ek=e=>ej(e,e$),ev=e=>ej(e,eC),ew=e=>ej(e,e_),ey=e=>ej(e,eT),ex=e=>ej(e,eG,!0),ez=e=>ej(e,eA,!0),eS=(e,o,t)=>{let r=W.exec(e);return!!r&&(r[1]?o(r[1]):t(r[2]))},ej=(e,o,t=!1)=>{let r=R.exec(e);return!!r&&(r[1]?o(r[1]):t)},eC=e=>"position"===e||"percentage"===e,eT=e=>"image"===e||"url"===e,e_=e=>"length"===e||"size"===e||"bg-size"===e,eN=e=>"length"===e,eO=e=>"number"===e,e$=e=>"family-name"===e,eA=e=>"number"===e||"weight"===e,eG=e=>"shadow"===e,eI=(a=()=>{let e=L("color"),o=L("font"),t=L("text"),r=L("font-weight"),s=L("tracking"),n=L("leading"),a=L("breakpoint"),l=L("container"),i=L("spacing"),d=L("radius"),c=L("shadow"),m=L("inset-shadow"),p=L("text-shadow"),u=L("drop-shadow"),b=L("blur"),f=L("perspective"),g=L("aspect"),h=L("ease"),k=L("animate"),v=()=>["auto","avoid","all","avoid-page","page","left","right","column"],w=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],y=()=>[...w(),eg,ei],x=()=>["auto","hidden","clip","visible","scroll"],z=()=>["auto","contain","none"],S=()=>[eg,ei,i],j=()=>[K,"full","auto",...S()],C=()=>[X,"none","subgrid",eg,ei],T=()=>["auto",{span:["full",X,eg,ei]},X,eg,ei],_=()=>[X,"auto",eg,ei],N=()=>["auto","min","max","fr",eg,ei],O=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],$=()=>["start","end","center","stretch","center-safe","end-safe"],A=()=>["auto",...S()],G=()=>[K,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...S()],I=()=>[l,K,"screen","full","dvw","lvw","svw","min","max","fit",...S()],M=()=>[K,"screen","full","lh","dvh","lvh","svh","min","max","fit",...S()],E=()=>[e,eg,ei],P=()=>[...w(),ev,eu,{position:[eg,ei]}],D=()=>["no-repeat",{repeat:["","x","y","space","round"]}],U=()=>["auto","cover","contain",ew,el,{size:[eg,ei]}],W=()=>[Q,eh,ed],R=()=>["","none","full",d,eg,ei],B=()=>["",V,eh,ed],F=()=>["solid","dashed","dotted","double"],Y=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],J=()=>[V,Q,ev,eu],q=()=>["","none",b,eg,ei],H=()=>["none",V,eg,ei],eo=()=>["none",V,eg,ei],et=()=>[V,eg,ei],er=()=>[K,"full",...S()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Z],breakpoint:[Z],color:[ee],container:[Z],"drop-shadow":[Z],ease:["in","out","in-out"],font:[en],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Z],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Z],shadow:[Z],spacing:["px",V],text:[Z],"text-shadow":[Z],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",K,ei,eg,g]}],container:["container"],"container-type":[{"@container":["","normal","size",eg,ei]}],"container-named":[ea],columns:[{columns:[V,"auto",ei,eg,l]}],"break-after":[{"break-after":v()}],"break-before":[{"break-before":v()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:y()}],overflow:[{overflow:x()}],"overflow-x":[{"overflow-x":x()}],"overflow-y":[{"overflow-y":x()}],overscroll:[{overscroll:z()}],"overscroll-x":[{"overscroll-x":z()}],"overscroll-y":[{"overscroll-y":z()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:j()}],"inset-x":[{"inset-x":j()}],"inset-y":[{"inset-y":j()}],start:[{"inset-s":j(),start:j()}],end:[{"inset-e":j(),end:j()}],"inset-bs":[{"inset-bs":j()}],"inset-be":[{"inset-be":j()}],top:[{top:j()}],right:[{right:j()}],bottom:[{bottom:j()}],left:[{left:j()}],visibility:["visible","invisible","collapse"],z:[{z:[X,"auto",eg,ei]}],basis:[{basis:[K,"full","auto",l,...S()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[V,K,"auto","initial","none",ei]}],grow:[{grow:["",V,eg,ei]}],shrink:[{shrink:["",V,eg,ei]}],order:[{order:[X,"first","last","none",eg,ei]}],"grid-cols":[{"grid-cols":C()}],"col-start-end":[{col:T()}],"col-start":[{"col-start":_()}],"col-end":[{"col-end":_()}],"grid-rows":[{"grid-rows":C()}],"row-start-end":[{row:T()}],"row-start":[{"row-start":_()}],"row-end":[{"row-end":_()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":N()}],"auto-rows":[{"auto-rows":N()}],gap:[{gap:S()}],"gap-x":[{"gap-x":S()}],"gap-y":[{"gap-y":S()}],"justify-content":[{justify:[...O(),"normal"]}],"justify-items":[{"justify-items":[...$(),"normal"]}],"justify-self":[{"justify-self":["auto",...$()]}],"align-content":[{content:["normal",...O()]}],"align-items":[{items:[...$(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...$(),{baseline:["","last"]}]}],"place-content":[{"place-content":O()}],"place-items":[{"place-items":[...$(),"baseline"]}],"place-self":[{"place-self":["auto",...$()]}],p:[{p:S()}],px:[{px:S()}],py:[{py:S()}],ps:[{ps:S()}],pe:[{pe:S()}],pbs:[{pbs:S()}],pbe:[{pbe:S()}],pt:[{pt:S()}],pr:[{pr:S()}],pb:[{pb:S()}],pl:[{pl:S()}],m:[{m:A()}],mx:[{mx:A()}],my:[{my:A()}],ms:[{ms:A()}],me:[{me:A()}],mbs:[{mbs:A()}],mbe:[{mbe:A()}],mt:[{mt:A()}],mr:[{mr:A()}],mb:[{mb:A()}],ml:[{ml:A()}],"space-x":[{"space-x":S()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":S()}],"space-y-reverse":["space-y-reverse"],size:[{size:G()}],"inline-size":[{inline:["auto",...I()]}],"min-inline-size":[{"min-inline":["auto",...I()]}],"max-inline-size":[{"max-inline":["none",...I()]}],"block-size":[{block:["auto",...M()]}],"min-block-size":[{"min-block":["auto",...M()]}],"max-block-size":[{"max-block":["none",...M()]}],w:[{w:[l,"screen",...G()]}],"min-w":[{"min-w":[l,"screen","none",...G()]}],"max-w":[{"max-w":[l,"screen","none","prose",{screen:[a]},...G()]}],h:[{h:["screen","lh",...G()]}],"min-h":[{"min-h":["screen","lh","none",...G()]}],"max-h":[{"max-h":["screen","lh","none",...G()]}],"font-size":[{text:["base",t,eh,ed]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,ez,em]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Q,ei]}],"font-family":[{font:[ek,ep,o]}],"font-features":[{"font-features":[ei]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[s,eg,ei]}],"line-clamp":[{"line-clamp":[V,"none",eg,ec]}],leading:[{leading:["none",n,...S()]}],"list-image":[{"list-image":["none",eg,ei]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",eg,ei]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:E()}],"text-color":[{text:E()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...F(),"wavy"]}],"text-decoration-thickness":[{decoration:[V,"from-font","auto",eg,ed]}],"text-decoration-color":[{decoration:E()}],"underline-offset":[{"underline-offset":[V,"auto",eg,ei]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:S()}],"tab-size":[{tab:[X,eg,ei]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",eg,ei]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",eg,ei]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:P()}],"bg-repeat":[{bg:D()}],"bg-size":[{bg:U()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},X,eg,ei],radial:["",eg,ei],conic:["",X,eg,ei]},ey,eb]}],"bg-color":[{bg:E()}],"gradient-from-pos":[{from:W()}],"gradient-via-pos":[{via:W()}],"gradient-to-pos":[{to:W()}],"gradient-from":[{from:E()}],"gradient-via":[{via:E()}],"gradient-to":[{to:E()}],rounded:[{rounded:R()}],"rounded-s":[{"rounded-s":R()}],"rounded-e":[{"rounded-e":R()}],"rounded-t":[{"rounded-t":R()}],"rounded-r":[{"rounded-r":R()}],"rounded-b":[{"rounded-b":R()}],"rounded-l":[{"rounded-l":R()}],"rounded-ss":[{"rounded-ss":R()}],"rounded-se":[{"rounded-se":R()}],"rounded-ee":[{"rounded-ee":R()}],"rounded-es":[{"rounded-es":R()}],"rounded-tl":[{"rounded-tl":R()}],"rounded-tr":[{"rounded-tr":R()}],"rounded-br":[{"rounded-br":R()}],"rounded-bl":[{"rounded-bl":R()}],"border-w":[{border:B()}],"border-w-x":[{"border-x":B()}],"border-w-y":[{"border-y":B()}],"border-w-s":[{"border-s":B()}],"border-w-e":[{"border-e":B()}],"border-w-bs":[{"border-bs":B()}],"border-w-be":[{"border-be":B()}],"border-w-t":[{"border-t":B()}],"border-w-r":[{"border-r":B()}],"border-w-b":[{"border-b":B()}],"border-w-l":[{"border-l":B()}],"divide-x":[{"divide-x":B()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":B()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...F(),"hidden","none"]}],"divide-style":[{divide:[...F(),"hidden","none"]}],"border-color":[{border:E()}],"border-color-x":[{"border-x":E()}],"border-color-y":[{"border-y":E()}],"border-color-s":[{"border-s":E()}],"border-color-e":[{"border-e":E()}],"border-color-bs":[{"border-bs":E()}],"border-color-be":[{"border-be":E()}],"border-color-t":[{"border-t":E()}],"border-color-r":[{"border-r":E()}],"border-color-b":[{"border-b":E()}],"border-color-l":[{"border-l":E()}],"divide-color":[{divide:E()}],"outline-style":[{outline:[...F(),"none","hidden"]}],"outline-offset":[{"outline-offset":[V,eg,ei]}],"outline-w":[{outline:["",V,eh,ed]}],"outline-color":[{outline:E()}],shadow:[{shadow:["","inner","none",c,ex,ef]}],"shadow-color":[{shadow:E()}],"inset-shadow":[{"inset-shadow":["none",m,ex,ef]}],"inset-shadow-color":[{"inset-shadow":E()}],"ring-w":[{ring:B()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:E()}],"ring-offset-w":[{"ring-offset":[V,ed]}],"ring-offset-color":[{"ring-offset":E()}],"inset-ring-w":[{"inset-ring":B()}],"inset-ring-color":[{"inset-ring":E()}],"text-shadow":[{"text-shadow":["none",p,ex,ef]}],"text-shadow-color":[{"text-shadow":E()}],opacity:[{opacity:[V,eg,ei]}],"mix-blend":[{"mix-blend":[...Y(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Y()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[V]}],"mask-image-linear-from-pos":[{"mask-linear-from":J()}],"mask-image-linear-to-pos":[{"mask-linear-to":J()}],"mask-image-linear-from-color":[{"mask-linear-from":E()}],"mask-image-linear-to-color":[{"mask-linear-to":E()}],"mask-image-t-from-pos":[{"mask-t-from":J()}],"mask-image-t-to-pos":[{"mask-t-to":J()}],"mask-image-t-from-color":[{"mask-t-from":E()}],"mask-image-t-to-color":[{"mask-t-to":E()}],"mask-image-r-from-pos":[{"mask-r-from":J()}],"mask-image-r-to-pos":[{"mask-r-to":J()}],"mask-image-r-from-color":[{"mask-r-from":E()}],"mask-image-r-to-color":[{"mask-r-to":E()}],"mask-image-b-from-pos":[{"mask-b-from":J()}],"mask-image-b-to-pos":[{"mask-b-to":J()}],"mask-image-b-from-color":[{"mask-b-from":E()}],"mask-image-b-to-color":[{"mask-b-to":E()}],"mask-image-l-from-pos":[{"mask-l-from":J()}],"mask-image-l-to-pos":[{"mask-l-to":J()}],"mask-image-l-from-color":[{"mask-l-from":E()}],"mask-image-l-to-color":[{"mask-l-to":E()}],"mask-image-x-from-pos":[{"mask-x-from":J()}],"mask-image-x-to-pos":[{"mask-x-to":J()}],"mask-image-x-from-color":[{"mask-x-from":E()}],"mask-image-x-to-color":[{"mask-x-to":E()}],"mask-image-y-from-pos":[{"mask-y-from":J()}],"mask-image-y-to-pos":[{"mask-y-to":J()}],"mask-image-y-from-color":[{"mask-y-from":E()}],"mask-image-y-to-color":[{"mask-y-to":E()}],"mask-image-radial":[{"mask-radial":[eg,ei]}],"mask-image-radial-from-pos":[{"mask-radial-from":J()}],"mask-image-radial-to-pos":[{"mask-radial-to":J()}],"mask-image-radial-from-color":[{"mask-radial-from":E()}],"mask-image-radial-to-color":[{"mask-radial-to":E()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":w()}],"mask-image-conic-pos":[{"mask-conic":[V]}],"mask-image-conic-from-pos":[{"mask-conic-from":J()}],"mask-image-conic-to-pos":[{"mask-conic-to":J()}],"mask-image-conic-from-color":[{"mask-conic-from":E()}],"mask-image-conic-to-color":[{"mask-conic-to":E()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:P()}],"mask-repeat":[{mask:D()}],"mask-size":[{mask:U()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",eg,ei]}],filter:[{filter:["","none",eg,ei]}],blur:[{blur:q()}],brightness:[{brightness:[V,eg,ei]}],contrast:[{contrast:[V,eg,ei]}],"drop-shadow":[{"drop-shadow":["","none",u,ex,ef]}],"drop-shadow-color":[{"drop-shadow":E()}],grayscale:[{grayscale:["",V,eg,ei]}],"hue-rotate":[{"hue-rotate":[V,eg,ei]}],invert:[{invert:["",V,eg,ei]}],saturate:[{saturate:[V,eg,ei]}],sepia:[{sepia:["",V,eg,ei]}],"backdrop-filter":[{"backdrop-filter":["","none",eg,ei]}],"backdrop-blur":[{"backdrop-blur":q()}],"backdrop-brightness":[{"backdrop-brightness":[V,eg,ei]}],"backdrop-contrast":[{"backdrop-contrast":[V,eg,ei]}],"backdrop-grayscale":[{"backdrop-grayscale":["",V,eg,ei]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[V,eg,ei]}],"backdrop-invert":[{"backdrop-invert":["",V,eg,ei]}],"backdrop-opacity":[{"backdrop-opacity":[V,eg,ei]}],"backdrop-saturate":[{"backdrop-saturate":[V,eg,ei]}],"backdrop-sepia":[{"backdrop-sepia":["",V,eg,ei]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":S()}],"border-spacing-x":[{"border-spacing-x":S()}],"border-spacing-y":[{"border-spacing-y":S()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",eg,ei]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[V,"initial",eg,ei]}],ease:[{ease:["linear","initial",h,eg,ei]}],delay:[{delay:[V,eg,ei]}],animate:[{animate:["none",k,eg,ei]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[f,eg,ei]}],"perspective-origin":[{"perspective-origin":y()}],rotate:[{rotate:H()}],"rotate-x":[{"rotate-x":H()}],"rotate-y":[{"rotate-y":H()}],"rotate-z":[{"rotate-z":H()}],scale:[{scale:eo()}],"scale-x":[{"scale-x":eo()}],"scale-y":[{"scale-y":eo()}],"scale-z":[{"scale-z":eo()}],"scale-3d":["scale-3d"],skew:[{skew:et()}],"skew-x":[{"skew-x":et()}],"skew-y":[{"skew-y":et()}],transform:[{transform:[eg,ei,"","none","gpu","cpu"]}],"transform-origin":[{origin:y()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:er()}],"translate-x":[{"translate-x":er()}],"translate-y":[{"translate-y":er()}],"translate-z":[{"translate-z":er()}],"translate-none":["translate-none"],zoom:[{zoom:[X,eg,ei]}],accent:[{accent:E()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:E()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",eg,ei]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":E()}],"scrollbar-track-color":[{"scrollbar-track":E()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":S()}],"scroll-mx":[{"scroll-mx":S()}],"scroll-my":[{"scroll-my":S()}],"scroll-ms":[{"scroll-ms":S()}],"scroll-me":[{"scroll-me":S()}],"scroll-mbs":[{"scroll-mbs":S()}],"scroll-mbe":[{"scroll-mbe":S()}],"scroll-mt":[{"scroll-mt":S()}],"scroll-mr":[{"scroll-mr":S()}],"scroll-mb":[{"scroll-mb":S()}],"scroll-ml":[{"scroll-ml":S()}],"scroll-p":[{"scroll-p":S()}],"scroll-px":[{"scroll-px":S()}],"scroll-py":[{"scroll-py":S()}],"scroll-ps":[{"scroll-ps":S()}],"scroll-pe":[{"scroll-pe":S()}],"scroll-pbs":[{"scroll-pbs":S()}],"scroll-pbe":[{"scroll-pbe":S()}],"scroll-pt":[{"scroll-pt":S()}],"scroll-pr":[{"scroll-pr":S()}],"scroll-pb":[{"scroll-pb":S()}],"scroll-pl":[{"scroll-pl":S()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",eg,ei]}],fill:[{fill:["none",...E()]}],"stroke-w":[{stroke:[V,eh,ed,ec]}],stroke:[{stroke:["none",...E()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["start","end","right","left"],"inset-y":["inset-bs","inset-be","top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["ps","pe","pr","pl"],py:["pbs","pbe","pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["ms","me","mr","ml"],my:["mbs","mbe","mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-s","border-w-e","border-w-r","border-w-l"],"border-w-y":["border-w-bs","border-w-be","border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-s","border-color-e","border-color-r","border-color-l"],"border-color-y":["border-color-bs","border-color-be","border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-ms","scroll-me","scroll-mr","scroll-ml"],"scroll-my":["scroll-mbs","scroll-mbe","scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-ps","scroll-pe","scroll-pr","scroll-pl"],"scroll-py":["scroll-pbs","scroll-pbe","scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},n=e=>{let s=t(e);if(s)return s;let n=((e,o)=>{let{parseClassName:t,getClassGroupId:r,getConflictingClassGroupIds:s,sortModifiers:n,postfixLookupClassGroupIds:a}=o,l=[],i=e.trim().split(P),d="";for(let e=i.length-1;e>=0;e-=1){let o,c=i[e],{isExternal:m,modifiers:p,hasImportantModifier:u,baseClassName:b,maybePostfixModifierPosition:f}=t(c);if(m){d=c+(d.length>0?" "+d:d);continue}let g=!!f;if(g){let e=(o=r(b.substring(0,f)))&&a[o]?r(b):void 0;e&&e!==o&&(o=e,g=!1)}else o=r(b);if(!o){if(!g||!(o=r(b))){d=c+(d.length>0?" "+d:d);continue}g=!1}let h=0===p.length?"":1===p.length?p[0]:n(p).join(":"),k=u?h+"!":h,v=k+o;if(l.indexOf(v)>-1)continue;l.push(v);let w=s(o,g);for(let e=0;e<w.length;++e){let o=w[e];l.push(k+o)}d=c+(d.length>0?" "+d:d)}return d})(e,o);return r(e,n),n},s=e=>{var l;let i;return t=(o={cache:(e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let o=0,t=Object.create(null),r=Object.create(null),s=(s,n)=>{t[s]=n,++o>e&&(o=0,r=t,t=Object.create(null))};return{get(e){let o=t[e];return void 0!==o?o:void 0!==(o=r[e])?(s(e,o),o):void 0},set(e,o){e in t?t[e]=o:s(e,o)}}})((l=[].reduce((e,o)=>o(e),a())).cacheSize),parseClassName:(e=>{let{prefix:o,experimentalParseClassName:t}=e,r=e=>{let o,t=[],r=0,s=0,n=0,a=e.length;for(let l=0;l<a;l++){let a=e[l];if(0===r&&0===s){if(":"===a){t.push(e.slice(n,l)),n=l+1;continue}if("/"===a){o=l;continue}}"["===a?r++:"]"===a?r--:"("===a?s++:")"===a&&s--}let l=0===t.length?e:e.slice(n),i=l,d=!1;return l.endsWith("!")?(i=l.slice(0,-1),d=!0):l.startsWith("!")&&(i=l.slice(1),d=!0),E(t,d,i,o&&o>n?o-n:void 0)};if(o){let e=o+":",t=r;r=o=>o.startsWith(e)?t(o.slice(e.length)):E(M,!1,o,void 0,!0)}if(t){let e=r;r=o=>t({className:o,parseClassName:e})}return r})(l),sortModifiers:(i=new Map,l.orderSensitiveModifiers.forEach((e,o)=>{i.set(e,1e6+o)}),e=>{let o=[],t=[];for(let r=0;r<e.length;r++){let s=e[r],n="["===s[0],a=i.has(s);n||a?(t.length>0&&(t.sort(),o.push(...t),t=[]),o.push(s)):t.push(s)}return t.length>0&&(t.sort(),o.push(...t)),o}),postfixLookupClassGroupIds:(e=>{let o=Object.create(null),t=e.postfixLookupClassGroups;if(t)for(let e=0;e<t.length;e++)o[t[e]]=!0;return o})(l),...(e=>{let o=(e=>{let{theme:o,classGroups:t}=e;return T(t,o)})(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith("[")&&e.endsWith("]")){var t;let o,r,s;return -1===(t=e).slice(1,-1).indexOf(":")?void 0:(r=(o=t.slice(1,-1)).indexOf(":"),(s=o.slice(0,r))?"arbitrary.."+s:void 0)}let r=e.split("-"),s=+(""===r[0]&&r.length>1);return C(r,s,o)},getConflictingClassGroupIds:(e,o)=>{if(o){let o=r[e],s=t[e];if(o){if(s){let e=Array(s.length+o.length);for(let o=0;o<s.length;o++)e[o]=s[o];for(let t=0;t<o.length;t++)e[s.length+t]=o[t];return e}return o}return s||j}return t[e]||j}}})(l)}).cache.get,r=o.cache.set,s=n,n(e)},(...e)=>s(((...e)=>{let o,t,r=0,s="";for(;r<e.length;)(o=e[r++])&&(t=D(o))&&(s&&(s+=" "),s+=t);return s})(...e)));e.s(["cn",0,function(...e){return eI(z(e))}],975157)},694628,574990,e=>{"use strict";let o=["todo","in-progress","review","blocked","paused","done","cancelled"],t={ready:"todo",planned:"todo","not started":"todo",wip:"in-progress",doing:"in-progress",active:"in-progress",start:"in-progress",started:"in-progress",complete:"done",completed:"done",finished:"done",finish:"done",block:"blocked","on hold":"paused","on-hold":"paused",pause:"paused",hold:"paused","in review":"review",reviewing:"review","needs review":"review",cancel:"cancelled",skip:"cancelled"},r=["gray","amber","accent","red","slate","teal","blue","pink","green","orange"],s=[{id:"todo",label:"Todo",color:"gray",category:"todo"},{id:"in-progress",label:"In progress",color:"amber",category:"in-progress"},{id:"review",label:"Review",color:"accent",category:"review"},{id:"blocked",label:"Blocked",color:"red",category:"blocked"},{id:"paused",label:"Paused",color:"slate",category:"paused"},{id:"done",label:"Done",color:"teal",category:"done"},{id:"cancelled",label:"Cancelled",color:"gray",category:"cancelled"}],n=e=>o.includes(e);function a(e){return/^[a-z0-9][a-z0-9-]{0,39}$/.test(e)?n(e)||e in t||e.replace(/-/g," ")in t?`"${e}" already means a built-in status`:null:"use lowercase letters, digits and dashes"}e.s(["BUILTIN_STATUSES",0,o,"DEFAULT_STATUSES",0,s,"STATUS_COLORS",0,r,"displayStatus",0,e=>e.customStatus??e.status,"invalidStatusId",0,a,"resolveStatus",0,function(e,o=s){let r=e.toLowerCase().replace(/[📋🔨👀✅🚫❌⏸️]/g,"").trim(),a=t[r]??r;if(n(a))return{status:a};let l=o.find(e=>e.id===a||e.id===a.replace(/\s+/g,"-"));return l&&!n(l.id)?{status:l.category,customStatus:l.id}:{status:"todo",unknown:!0}},"statusDefs",0,function(e){if(!Array.isArray(e))return s;let o=[];for(let t of e){let e="string"==typeof t?.id?t.id.trim().toLowerCase():"";if(!e||o.some(o=>o.id===e))continue;let l=n(e),i=l?e:t?.category;if(!i||!n(i)||!l&&a(e))continue;let d=s.find(o=>o.id===(l?e:i));o.push({id:e,label:"string"==typeof t?.label&&t.label.trim()?t.label.trim():d?.label??e,color:r.includes(t?.color)?t?.color:d?.color??"gray",category:i})}for(let e of s)o.some(o=>o.id===e.id)||o.push(e);return o}],694628);var l=e.i(180338);let i=s,d=new Set;e.s(["getStatusDefs",0,()=>i,"setStatusDefs",0,function(e){JSON.stringify(e)!==JSON.stringify(i)&&(i=e,d.forEach(e=>e()))},"statusDefIn",0,function(e,o){return e.find(e=>e.id===o)??s.find(e=>e.id===o)??s[0]},"useStatusDefs",0,function(){return(0,l.useSyncExternalStore)(e=>(d.add(e),()=>{d.delete(e)}),()=>i,()=>s)}],574990)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,496385,e=>{"use strict";var t=e.i(83790);let s={name:"triangle-alert",size:24,node:[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],aliases:["alert-triangle"]};s.node;let a=(0,t.default)(s);e.s(["AlertTriangle",0,a],496385)},960754,e=>{"use strict";var t=e.i(72345),s=e.i(180338),a=e.i(910172),l=e.i(155515),n=e.i(161863),i=e.i(765470),r=e.i(244267),d=e.i(782630),c=e.i(694628),o=e.i(138324),x=e.i(956537),m=e.i(83790);let h={name:"link-2-off",size:24,node:[["path",{d:"M9 17H7A5 5 0 0 1 7 7",key:"10o201"}],["path",{d:"M15 7h2a5 5 0 0 1 4 8",key:"1d3206"}],["line",{x1:"8",x2:"12",y1:"12",y2:"12",key:"rvw6j4"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]};h.node;let u=(0,m.default)(h);var p=e.i(763371),f=e.i(998822),j=e.i(464750),g=e.i(651581),b=e.i(975157),N=e.i(844081);let v="font-mono text-[10px] uppercase tracking-widest text-muted";function k({attach:e}){let{board:a,rootParam:l}=(0,p.useApp)(),[n,i]=(0,s.useState)([]),[r,d]=(0,s.useState)(0);(0,s.useEffect)(()=>{let e=!1;return fetch(`/api/roadmap${l}`).then(e=>e.ok?e.json():{items:[]}).then(t=>{e||i(t.items??[])}).catch(e=>console.warn("[vibedoc] could not load roadmap for the chat rail:",e)),()=>{e=!0}},[l,r]),(0,s.useEffect)(()=>{let e=e=>{let t=e.detail?.type;("roadmap_updated"===t||"task_created"===t)&&d(e=>e+1)};return window.addEventListener("vibedoc:sse",e),()=>window.removeEventListener("vibedoc:sse",e)},[]);let c=(0,s.useMemo)(()=>Object.fromEntries((a?Object.values(a).flat():[]).map(e=>[e.id,e])),[a]);return(0,t.jsx)("div",{className:"flex h-full min-h-0 flex-col overflow-y-auto",children:(0,t.jsxs)("div",{className:"flex flex-col gap-5 p-5 animate-fade-in",children:[!e&&(0,t.jsx)(y,{}),e?.kind==="epic"&&(0,t.jsx)(w,{item:n.find(t=>t.id===e.id),id:e.id,tasksById:c}),e?.kind==="task"&&(0,t.jsx)(S,{task:c[e.id],id:e.id,items:n})]},e?`${e.kind}:${e.id}`:"none")})}function y(){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:v,children:"Context"}),(0,t.jsxs)("div",{className:"flex flex-col items-start gap-3 rounded-lg border border-dashed border-border2 p-4",children:[(0,t.jsx)(u,{className:"size-4 text-muted"}),(0,t.jsx)("p",{className:"text-sm text-txt",children:"Not linked to an epic or task"}),(0,t.jsx)("p",{className:"text-xs leading-relaxed text-muted",children:"Open a chat from an epic on the roadmap or a task on the board, and the agent starts with that item as context. Its status then shows on the item."})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)("p",{className:v,children:"The agent can"}),(0,t.jsxs)("ul",{className:"flex flex-col gap-1.5 text-xs text-muted",children:[(0,t.jsx)("li",{children:"Read docs, tasks, the roadmap and memory"}),(0,t.jsx)("li",{children:"Propose doc and task edits (you review a diff)"}),(0,t.jsx)("li",{children:"Propose epics and task breakdowns (you accept)"}),(0,t.jsx)("li",{className:"text-muted/70",children:"It can't run code or edit source files"})]})]})]})}function w({item:e,id:s,tasksById:a}){if(!e)return(0,t.jsx)(z,{kind:"Epic",id:s});let l=e.tasks.map(e=>a[e]).filter(e=>!!e),n=l.map(e=>e.status).filter(e=>"cancelled"!==e),i=n.filter(e=>"done"===e).length;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("p",{className:v,children:["Epic · ",e.id]}),(0,t.jsx)("h3",{className:"text-base font-semibold leading-snug text-txt",children:e.title}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(g.StatusPill,{status:e.status}),e.due&&(0,t.jsxs)("span",{className:"font-mono text-[10px] text-muted",children:["due ",e.due]})]})]}),n.length>0&&(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsxs)("div",{className:"flex items-baseline justify-between",children:[(0,t.jsx)("p",{className:v,children:"Progress"}),(0,t.jsxs)("span",{className:"font-mono text-[10px] text-muted",children:[i,"/",n.length," tasks"]})]}),(0,t.jsx)(g.SegmentedProgress,{statuses:n})]}),l.length>0&&(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("p",{className:v,children:"Tasks"}),(0,t.jsx)("ul",{className:"-mx-2 flex flex-col",children:l.map(e=>(0,t.jsx)(C,{task:e},e.id))})]}),e.body.trim()&&(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("p",{className:v,children:"Brief"}),(0,t.jsx)(f.MarkdownRenderer,{content:e.body,className:"prose-compact"})]}),(0,t.jsx)(R,{attach:{kind:"epic",id:e.id},label:"Open in roadmap"})]})}function C({task:e}){let{showAbout:s}=(0,r.useChats)();return(0,t.jsx)("li",{children:(0,t.jsxs)("button",{type:"button",onClick:()=>s({kind:"task",id:e.id}),title:`Chat about ${e.id}`,className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-xs transition-colors duration-(--duration-fast) hover:bg-surface2",children:[(0,t.jsx)(j.StatusIcon,{status:(0,c.displayStatus)(e),className:"size-3"}),(0,t.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-muted",children:e.id}),(0,t.jsx)("span",{className:(0,b.cn)("min-w-0 flex-1 truncate","done"===e.status?"text-muted":"text-txt"),children:e.title})]})})}function S({task:e,id:s,items:a}){let{showAbout:l}=(0,r.useChats)();if(!e)return(0,t.jsx)(z,{kind:"Task",id:s});let n=e.phase.match(/^R\d+/)?.[0],i=n?a.find(e=>e.id===n):void 0,d=e.raw?.replace(/^#.*\n(\*\*[^*]+:\*\*.*\n)*/,"").trim();return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("p",{className:v,children:["Task · ",e.id]}),(0,t.jsx)("h3",{className:"text-base font-semibold leading-snug text-txt",children:e.title}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(j.StatusChip,{status:(0,c.displayStatus)(e)}),e.size&&(0,t.jsx)("span",{className:"font-mono text-[10px] text-muted",children:e.size}),e.due&&(0,t.jsxs)("span",{className:"font-mono text-[10px] text-muted",children:["due ",e.due]})]})]}),(0,t.jsxs)("dl",{className:"grid grid-cols-[auto_1fr] gap-x-3 gap-y-1.5 text-xs",children:[n&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("dt",{className:"text-muted",children:"Epic"}),(0,t.jsx)("dd",{className:"min-w-0",children:(0,t.jsxs)("button",{type:"button",onClick:()=>l({kind:"epic",id:n}),className:"truncate text-left text-txt hover:text-accent",title:`Chat about ${n}`,children:[(0,t.jsx)("span",{className:"font-mono text-[10px] text-muted",children:n})," ",i?.title??e.phase.replace(/^R\d+\s*—\s*/,"")]})})]}),e.dependsOn&&"—"!==e.dependsOn&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("dt",{className:"text-muted",children:"Depends on"}),(0,t.jsx)("dd",{className:"font-mono text-[11px] text-txt",children:e.dependsOn})]})]}),d&&(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("p",{className:v,children:"Spec"}),(0,t.jsx)(f.MarkdownRenderer,{content:d,className:"prose-compact"})]}),(0,t.jsx)(R,{attach:{kind:"task",id:e.id},label:"Open on board"})]})}function z({kind:e,id:s}){return(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("p",{className:v,children:[e," · ",s]}),(0,t.jsxs)("p",{className:"text-sm text-muted",children:[e," ",s," isn't in this project any more."]})]})}function R({attach:e,label:s}){return(0,t.jsxs)(o.default,{href:(0,N.attachHref)(e),className:"group inline-flex w-fit items-center gap-1.5 rounded-md border border-border px-3 py-1.5 text-xs text-txt transition-colors duration-(--duration-fast) hover:border-accent/50 hover:text-accent",children:[s,(0,t.jsx)(x.ArrowUpRight,{className:"size-3.5 transition-transform duration-(--duration-fast) group-hover:-translate-y-px group-hover:translate-x-px"})]})}var E=e.i(481523);let T=e=>{let t=setInterval(e,3e4);return()=>clearInterval(t)},A=()=>6e4*Math.floor(Date.now()/6e4);function O(){let{chats:e,loaded:s,create:l,show:n,send:i,now:c}=(0,r.useChats)(),o=(0,a.useRouter)(),x=(0,a.useSearchParams)().get("id"),m=e.find(e=>e.id===x)??(x?void 0:(0,E.defaultChat)(e,c));function h(e){let t=l();n(t),e&&i(t,e)}return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(F,{selectedId:m?.id??null,onNew:()=>h()}),(0,t.jsx)("section",{className:"flex min-w-0 flex-1 flex-col border-r border-border bg-bg",children:m?(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col animate-fade-in",children:(0,t.jsx)(d.ChatView,{chatId:m.id,variant:"page"})},m.id):s?(0,t.jsx)(M,{missing:!!x,onStart:h,onBack:()=>o.replace("/chat")}):null}),(0,t.jsx)("aside",{className:"hidden w-80 shrink-0 bg-surface xl:block","aria-label":"Chat context",children:(0,t.jsx)(k,{attach:m?.attach??null})})]})}function F({selectedId:e,onNew:a}){let{chats:i,now:d}=(0,r.useChats)(),[c,o]=(0,s.useState)(""),x=c.trim().toLowerCase(),m=x?i.filter(e=>e.title.toLowerCase().includes(x)||e.attach?.id.toLowerCase().includes(x)):i,h=(0,E.groupChats)(m,d),u=[{label:"Needs you",items:h.needsYou,tone:"text-amber"},{label:"Errors",items:h.errors,tone:"text-danger"},{label:"Running",items:h.running,tone:"text-accent"},{label:"Recent",items:h.recent,tone:"text-muted"}];return(0,t.jsxs)("aside",{className:"hidden w-72 shrink-0 flex-col border-r border-border bg-surface md:flex","aria-label":"All chats",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-4 pb-3 pt-4",children:[(0,t.jsx)("h1",{className:"flex-1 text-sm font-semibold text-txt",children:"Chats"}),(0,t.jsxs)("button",{type:"button",onClick:a,className:"inline-flex items-center gap-1.5 rounded-md bg-accent px-2.5 py-1.5 text-xs font-medium text-accent-fg transition-[filter,transform] duration-(--duration-fast) hover:brightness-110 active:scale-[0.97]",children:[(0,t.jsx)(l.Plus,{className:"size-3.5"})," New chat"]})]}),i.length>3&&(0,t.jsxs)("label",{className:"mx-3 mb-2 flex items-center gap-2 rounded-md border border-border bg-bg px-2.5 py-1.5 text-xs focus-within:border-accent/50",children:[(0,t.jsx)(n.Search,{className:"size-3.5 text-muted"}),(0,t.jsx)("input",{value:c,onChange:e=>o(e.target.value),placeholder:"Filter by title or R/T id",className:"min-w-0 flex-1 bg-transparent text-txt placeholder:text-muted focus:outline-hidden"})]}),(0,t.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto px-2 pb-4",children:[0===i.length&&(0,t.jsx)("p",{className:"px-2 py-6 text-xs text-muted",children:"No chats yet."}),u.map(s=>s.items.length>0&&(0,t.jsxs)("div",{className:"mt-3 first:mt-1",children:[(0,t.jsxs)("p",{className:(0,b.cn)("px-2 pb-1 font-mono text-[10px] uppercase tracking-widest",s.tone),children:[s.label," · ",s.items.length]}),(0,t.jsx)("ul",{className:"flex flex-col gap-px",children:s.items.map(s=>(0,t.jsx)(I,{chat:s,active:s.id===e},s.id))})]},s.label)),x&&0===m.length&&(0,t.jsxs)("p",{className:"px-2 py-6 text-xs text-muted",children:["No chat matches “",c,"”."]})]})]})}function I({chat:e,active:a}){let{show:l,remove:n,now:d}=(0,r.useChats)(),c=(0,s.useSyncExternalStore)(T,A,()=>0),o=(0,E.shellStatus)(e,d),x=[...e.messages].reverse().find(e=>e.text)?.text.replace(/\s+/g," ").trim();return(0,t.jsxs)("li",{className:"group relative animate-slide-in",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>l(e.id),"aria-current":a?"true":void 0,className:(0,b.cn)("flex w-full flex-col gap-1 rounded-lg px-2.5 py-2 text-left transition-colors duration-(--duration-fast)",a?"bg-surface2 shadow-[inset_2px_0_0_rgb(var(--rgb-accent))]":"hover:bg-surface2/60"),children:[(0,t.jsxs)("span",{className:"flex items-center gap-2 pr-5",children:[(0,t.jsx)(N.StatusMarker,{status:o,showIdle:!0}),(0,t.jsx)("span",{className:(0,b.cn)("min-w-0 flex-1 truncate text-[13px]","idle"!==o||a?"text-txt":"text-txt/80"),children:e.title}),c>0&&(0,t.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-muted group-hover:opacity-0",children:(0,E.ago)(e.updatedAt,c)})]}),(e.attach||x)&&(0,t.jsxs)("span",{className:"flex items-center gap-2 pl-5 text-[11px] text-muted",children:[e.attach&&(0,t.jsx)(N.AttachLabel,{attach:e.attach,className:"shrink-0"}),x&&(0,t.jsx)("span",{className:"min-w-0 truncate",children:x})]})]}),(0,t.jsx)("button",{type:"button",onClick:()=>n(e.id),"aria-label":`Close ${e.title}`,title:e.busy?"Stop and delete chat":"Delete chat",className:"absolute right-1.5 top-1.5 grid size-6 place-items-center rounded-md text-muted opacity-0 transition-opacity duration-(--duration-fast) hover:bg-surface hover:text-danger focus-visible:opacity-100 group-hover:opacity-100",children:(0,t.jsx)(i.X,{className:"size-3.5"})})]})}function M({missing:e,onStart:s,onBack:a}){return(0,t.jsx)("div",{className:"grid flex-1 place-items-center p-8",children:(0,t.jsxs)("div",{className:"flex max-w-md flex-col items-start gap-4 animate-fade-in",children:[(0,t.jsx)("div",{className:"grid size-10 place-items-center rounded-xl bg-linear-to-br from-accent to-teal text-white","aria-hidden":!0,children:"⬡"}),e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("h2",{className:"text-lg font-semibold text-txt",children:"This chat was deleted"}),(0,t.jsx)("button",{type:"button",onClick:a,className:"text-sm text-accent hover:underline",children:"Back to all chats"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-lg font-semibold text-txt",children:"Run chats side by side"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-muted",children:"Each chat is its own Claude Code session, up to 4 at once. Start one here, or from an epic on the roadmap or a task on the board."})]}),(0,t.jsx)("div",{className:"flex flex-col gap-1.5",children:(0,E.suggestions)(null).map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>s(e),className:"rounded-lg border border-border px-3 py-2 text-left text-sm text-txt/90 transition-colors hover:border-accent/50 hover:bg-accent/5",children:e},e))})]})]})})}e.s(["default",0,function(){return(0,t.jsx)("div",{className:"flex h-[calc(100svh-3rem)] min-h-0",children:(0,t.jsx)(s.Suspense,{children:(0,t.jsx)(O,{})})})}],960754)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,83790,e=>{"use strict";var t=e.i(180338);let s=(...e)=>e.filter((e,t,s)=>!!e&&""!==e.trim()&&s.indexOf(e)===t).join(" ").trim(),a={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"},n=(0,t.createContext)({}),r=(0,t.forwardRef)(({color:e,size:r,width:i,height:l,strokeWidth:o,absoluteStrokeWidth:d,nonScalingStroke:c,className:p="",children:h,iconNode:u=[],icon:m={node:u,aliases:[],size:24},...x},f)=>{let{size:g=24,strokeWidth:b=2,absoluteStrokeWidth:y=!1,nonScalingStroke:j=!1,color:k="currentColor",className:w=""}=(0,t.useContext)(n)??{},v=!!h||(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(x),[N,S,z=[]]=function(e,t={}){return function(e,t={}){let n=t.attributeNames??{},r=e=>n[e]??e,i=e.size??e.width??a.width,l=e.size??e.height??a.height,o=e.aliases?.filter(e=>"string"==typeof e&&""!==e.trim()).map(e=>`lucide-${e}`)??[],d=[...e.name?[`lucide-${e.name}`]:[],...o],c=t.className?.split(" ").filter(Boolean)??[],p=!1===t.includeDefaultClasses?s(...c):s("lucide",...d,...c),h=t.absoluteStrokeWidth?Number(t.strokeWidth??a["stroke-width"])*Number(e.size??e.width??a.width)/Number(t.size??t.width??a.width):t.strokeWidth??a["stroke-width"];return["svg",{...Object.entries(a).reduce((e,[t,s])=>(e[r(t)]=s,e),{}),..."color"in t&&t.color&&{[r("stroke")]:t.color},..."size"in t&&null!=t.size&&{[r("width")]:t.size,[r("height")]:t.size},..."width"in t&&null!=t.width&&{[r("width")]:t.width},..."height"in t&&null!=t.height&&{[r("height")]:t.height},[r("stroke-width")]:h,...p&&{[r("class")]:p},[r("viewBox")]:`0 0 ${i} ${l}`,...!1===t.hasA11yProp?{[r("aria-hidden")]:"true"}:{},..."attributes"in t&&t.attributes},e.node.map(e=>{let[s,a,n]=e,i=t.nonScalingStroke?{[r("vector-effect")]:"non-scaling-stroke",...a}:a;return n?[s,i,n]:[s,i]})]}(e,{...t,attributeNames:{...t.attributeNames,class:"className","stroke-width":"strokeWidth","stroke-linecap":"strokeLinecap","stroke-linejoin":"strokeLinejoin","vector-effect":"vectorEffect"}})}(m,{color:e??k,width:i??r??g,height:l??r??g,strokeWidth:o??b,absoluteStrokeWidth:d??y,nonScalingStroke:c??j,className:s(w,p),hasA11yProp:v,attributes:x});return(0,t.createElement)(N,{ref:f,...S},[...z.map(([e,s])=>(0,t.createElement)(e,s)),...Array.isArray(h)?h:[h]])});e.s(["default",0,function(e,s=[],a=[]){let n,i="string"==typeof e?function(e,t,s=[]){if(null==t)throw Error("[lucide]: iconNode is required when icon name is used");return{name:e?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),size:24,node:t,...s.length>0?{aliases:s}:{}}}(e,s,a):e,l=(0,t.forwardRef)(({className:e,...s},a)=>(0,t.createElement)(r,{ref:a,icon:i,className:e,...s}));return i.name&&(l.displayName=(n=(e=>{let t="",s=!1;for(let a of e){if("-"===a||"_"===a||a<=" "){s=t.length>0;continue}0===t.length?t+=a.toLowerCase():t+=s?a.toUpperCase():a,s=!1}return t})(i.name)).charAt(0).toUpperCase()+n.slice(1)),l}],83790)},270379,e=>{"use strict";var t=e.i(83790);let s={name:"arrow-up",size:24,node:[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]};s.node;let a=(0,t.default)(s);e.s(["ArrowUp",0,a],270379)},837001,e=>{"use strict";var t=e.i(83790);let s={name:"check",size:24,node:[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]};s.node;let a=(0,t.default)(s);e.s(["Check",0,a],837001)},737487,e=>{"use strict";var t=e.i(83790);let s={name:"circle",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]};s.node;let a=(0,t.default)(s);e.s(["Circle",0,a],737487)},155515,e=>{"use strict";var t=e.i(83790);let s={name:"plus",size:24,node:[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]};s.node;let a=(0,t.default)(s);e.s(["Plus",0,a],155515)},458055,e=>{"use strict";var t=e.i(83790);let s={name:"trash",size:24,node:[["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"}]],aliases:["trash-2"]};s.node;let a=(0,t.default)(s);e.s(["Trash2",0,a],458055)},788293,463464,e=>{"use strict";var t=e.i(83790);let s={name:"zap",size:24,node:[["path",{d:"M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z",key:"1v7up4"}]]};s.node;let a=(0,t.default)(s);e.s(["Zap",0,a],788293);let n={name:"settings",size:24,node:[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]};n.node;let r=(0,t.default)(n);e.s(["Settings",0,r],463464)},528427,e=>{e.v(t=>Promise.all(["static/chunks/3wehcul43z-up.js","static/chunks/090qol92bm3lm.js","static/chunks/16amofje8v-rw.js","static/chunks/2a46a9zwq8i_j.js","static/chunks/3rmz5_d6ve6ut.js","static/chunks/3ezb3p4b8ibl2.js","static/chunks/2uhr8khh963wn.js","static/chunks/2zy289po30i-l.js","static/chunks/2rubn40gv6g5w.js","static/chunks/25-4d7lo7j_n3.js"].map(t=>e.l(t))).then(()=>t(20832)))},782630,956537,e=>{"use strict";var t=e.i(72345),s=e.i(180338),a=e.i(910172),n=e.i(270379),r=e.i(83790);let i={name:"arrow-up-right",size:24,node:[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]};i.node;let l=(0,r.default)(i);e.s(["ArrowUpRight",0,l],956537);let o={name:"maximize-2",size:24,node:[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]};o.node;let d=(0,r.default)(o),c={name:"square",size:24,node:[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]};c.node;let p=(0,r.default)(c);var h=e.i(458055),u=e.i(763371),m=e.i(244267),x=e.i(998822),f=e.i(975157),g=e.i(481523);function b({proposal:e,onResolve:a}){let{rootParam:n,openDoc:r}=(0,u.useApp)(),[i,l]=(0,s.useState)(null),[o,d]=(0,s.useState)(null),[c,p]=(0,s.useState)(!1);(0,s.useEffect)(()=>{fetch(`/api/docs${n}&read=${encodeURIComponent(e.path)}`).then(e=>e.ok?e.json():null).then(t=>l(t?.path===e.path.replace(/^\.\//,"")&&"string"==typeof t.content?t.content:"")).catch(()=>l(""))},[e.path,n]);let h=(0,s.useMemo)(()=>null===i?null:function(e,t){let s=e;for(let[e,a]of t.entries()){if("string"!=typeof a?.old_string||"string"!=typeof a?.new_string)return{error:`Edit ${e+1}: old_string and new_string must be strings`};if(""===a.old_string){if(""!==s)return{error:`Edit ${e+1}: empty old_string is only allowed for a new, empty doc`};s=a.new_string;continue}let t=s.indexOf(a.old_string);if(-1===t)return{error:`Edit ${e+1}: old_string not found in the doc`};if(-1!==s.indexOf(a.old_string,t+1))return{error:`Edit ${e+1}: old_string matches more than once; include more surrounding text`};s=s.slice(0,t)+a.new_string+s.slice(t+a.old_string.length)}return{content:s}}(i,e.edits),[i,e.edits]),m=null!==h&&"error"in h?h.error:null,x=(0,s.useMemo)(()=>{var e;let t,s;return null===i||!h||"error"in h?[]:(t=(e=function(e,t){let s=e.split("\n"),a=t.split("\n"),n=0;for(;n<s.length&&n<a.length&&s[n]===a[n];)n++;let r=s.length,i=a.length;for(;r>n&&i>n&&s[r-1]===a[i-1];)r--,i--;let l=s.slice(n,r),o=a.slice(n,i),d=Array.from({length:l.length+1},()=>Array(o.length+1).fill(0));for(let e=l.length-1;e>=0;e--)for(let t=o.length-1;t>=0;t--)d[e][t]=l[e]===o[t]?d[e+1][t+1]+1:Math.max(d[e+1][t],d[e][t+1]);let c=[],p=0,h=0;for(;p<l.length||h<o.length;)p<l.length&&h<o.length&&l[p]===o[h]?(c.push({op:" ",text:l[p]}),p++,h++):p<l.length&&(h===o.length||d[p+1][h]>=d[p][h+1])?(c.push({op:"-",text:l[p]}),p++):(c.push({op:"+",text:o[h]}),h++);return[...s.slice(0,n).map(e=>({op:" ",text:e})),...c,...s.slice(r).map(e=>({op:" ",text:e}))]}(i,h.content)).map(()=>!1),e.forEach((s,a)=>{if(" "!==s.op)for(let s=Math.max(0,a-2);s<=Math.min(e.length-1,a+2);s++)t[s]=!0}),s=[],e.forEach((e,a)=>{t[a]?s.push(e):"number"==typeof s[s.length-1]?s[s.length-1]=s[s.length-1]+1:s.push(1)}),s)},[i,h]),g=x.filter(e=>"number"!=typeof e&&"+"===e.op).length,y=x.filter(e=>"number"!=typeof e&&"-"===e.op).length;async function j(){p(!0),d(null);try{let t=await fetch(`/api/docs${n}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e.path,edits:e.edits,actor:"ai"})});if(!t.ok)throw Error((await t.json().catch(()=>null))?.error??"Save failed");a("accepted")}catch(e){d(e.message)}finally{p(!1)}}return(0,t.jsxs)("div",{className:"my-2 rounded-md border border-border overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 bg-surface2 border-b border-border",children:[(0,t.jsx)("button",{onClick:()=>r(e.path),className:"text-xs font-mono text-accent truncate hover:underline",title:e.path,children:e.path}),(0,t.jsxs)("span",{className:"text-[10px] font-mono text-teal-400",children:["+",g]}),(0,t.jsxs)("span",{className:"text-[10px] font-mono text-red-400",children:["-",y]})]}),e.summary&&(0,t.jsx)("div",{className:"px-2 py-1 text-xs text-muted border-b border-border",children:e.summary}),(0,t.jsxs)("div",{className:"max-h-72 overflow-auto text-[11px] font-mono leading-5",children:[null===i&&(0,t.jsx)("div",{className:"px-2 py-1 text-muted",children:"Loading diff…"}),m&&(0,t.jsxs)("div",{className:"px-2 py-1 text-red-400",children:["Doc changed since this proposal (",m,"). Ask the agent to propose again."]}),null!==i&&!m&&0===x.length&&(0,t.jsx)("div",{className:"px-2 py-1 text-muted",children:"No changes"}),x.map((e,s)=>"number"==typeof e?(0,t.jsxs)("div",{className:"px-2 text-muted bg-surface2/50",children:["⋯ ",e," unchanged line",e>1?"s":""]},s):(0,t.jsxs)("div",{className:(0,f.cn)("px-2 whitespace-pre-wrap break-words","+"===e.op&&"bg-teal-500/10 text-teal-300","-"===e.op&&"bg-red-500/10 text-red-300 line-through decoration-red-400/40"),children:[e.op," ",e.text||" "]},s))]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 border-t border-border",children:["pending"===e.status?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{onClick:j,disabled:c||null===i||!!m,className:"text-xs px-2 py-0.5 rounded-sm bg-accent/20 text-accent hover:bg-accent/30 disabled:opacity-50",children:c?"Applying…":"Accept"}),(0,t.jsx)("button",{onClick:()=>a("rejected"),disabled:c,className:"text-xs px-2 py-0.5 rounded-sm text-muted hover:text-txt",children:"Reject"})]}):(0,t.jsx)("span",{className:(0,f.cn)("text-xs","accepted"===e.status?"text-teal-400":"text-muted"),children:"accepted"===e.status?"✓ Applied":"Rejected"}),o&&(0,t.jsx)("span",{className:"text-xs text-red-400 truncate",children:o})]})]})}function y({proposal:e,onResolve:a}){let{rootParam:n,openDoc:r}=(0,u.useApp)(),i=e.plan,l="breakdown"===i.kind?i.tasks:[],o="roadmap"===i.kind?i.horizons??[]:[],d="roadmap"===i.kind?i.epics??[]:[],c="breakdown"===i.kind?(i.epic??"").trim().toUpperCase():"",p="breakdown"===i.kind?i.newEpic:void 0,[h,m]=(0,s.useState)(new Map),[x,f]=(0,s.useState)(new Set),[g,b]=(0,s.useState)(null),[k,w]=(0,s.useState)(null),[v,N]=(0,s.useState)(!1);(0,s.useEffect)(()=>{fetch(`/api/roadmap${n}`).then(e=>e.ok?e.json():null).then(e=>m(new Map((e?.items??[]).map(e=>[e.id,e.title])))).catch(()=>m(new Map))},[n]);let S=("breakdown"===i.kind?l.map(e=>e.key):[...o,...d].map(e=>e.key)).filter(e=>!x.has(e)),z="pending"===e.status,C=new Set(o.map(e=>e.key)),A=(e,s,a,n,r=!1)=>(0,t.jsx)(j,{rowKey:e,title:s,meta:a,body:n,indent:r,checked:!x.has(e),disabled:!z||v,onToggle:()=>{w(null),f(t=>{let s=new Set(t),a=s.has(e);for(let t of C.has(e)?[e,...d.filter(t=>t.parent.trim()===e).map(e=>e.key)]:[e])a?s.delete(t):s.add(t);let n=d.find(t=>t.key===e)?.parent.trim();return a&&n&&C.has(n)&&s.delete(n),s})},open:g===e,onOpen:()=>b(g===e?null:e)},e),$=e=>e.trim().split("\n")[0]??"",M=[...new Set(d.map(e=>e.parent.trim()).filter(e=>!C.has(e)))];async function _(){N(!0),w(null);try{let e=await fetch(`/api/plan/apply${n}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({plan:i,selected:S})}),t=await e.json().catch(()=>null);if(!e.ok)throw Error(t?.error??`Apply failed (${e.status})`);a("accepted",t?.created??[],[...x])}catch(e){w(e.message)}finally{N(!1)}}return(0,t.jsxs)("div",{className:"my-2 rounded-md border border-border overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 bg-surface2 border-b border-border",children:[(0,t.jsx)("span",{className:"text-[10px] font-mono uppercase tracking-widest text-muted",children:"Plan"}),"breakdown"===i.kind?(0,t.jsxs)(t.Fragment,{children:[c?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-xs font-mono text-accent",children:c}),(0,t.jsx)("span",{className:"text-xs text-txt truncate",children:h.get(c)??""})]}):p?(0,t.jsxs)("span",{className:"text-xs text-txt truncate",children:["New epic: ",p.title,(0,t.jsxs)("span",{className:"text-muted",children:[" (under ",p.parent.trim().toUpperCase()," ",h.get(p.parent.trim().toUpperCase())??"",")"]})]}):(0,t.jsx)("span",{className:"text-xs text-muted",children:"No epic"}),(0,t.jsxs)("span",{className:"ml-auto text-[10px] font-mono text-muted",children:[l.length," tasks"]})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-xs text-txt",children:"Roadmap"}),(0,t.jsxs)("span",{className:"ml-auto text-[10px] font-mono text-muted",children:[o.length?`${o.length} horizons \xb7 `:"",d.length," epics"]})]})]}),(0,t.jsxs)("ul",{className:"max-h-80 overflow-auto",children:[l.map(e=>A(e.key,e.title,[e.size,e.dependsOn?.length?`after ${e.dependsOn.join(", ")}`:null,e.due?`due ${e.due}`:null].filter(Boolean).join(" · "),e.body)),o.map(e=>[A(e.key,e.title,"new horizon",e.body),...d.filter(t=>t.parent.trim()===e.key).map(e=>A(e.key,e.title,$(e.body),e.body,!0))]),M.map(e=>[(0,t.jsxs)("li",{className:"px-2 py-1.5 border-b border-border text-xs text-muted",children:[(0,t.jsx)("span",{className:"font-mono text-accent mr-1",children:e.toUpperCase()}),h.get(e.toUpperCase())??""]},`parent-${e}`),...d.filter(t=>t.parent.trim()===e).map(e=>A(e.key,e.title,$(e.body),e.body,!0))])]}),k&&(0,t.jsx)("div",{className:"px-2 py-1 text-xs text-red-400 whitespace-pre-wrap border-t border-border",children:k}),(0,t.jsx)("div",{className:"flex items-center gap-2 px-2 py-1.5 border-t border-border",children:z?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{onClick:_,disabled:v||0===S.length,className:"text-xs px-2 py-0.5 rounded-sm bg-accent/20 text-accent hover:bg-accent/30 disabled:opacity-50",children:v?"Creating…":`Accept (${S.length})`}),(0,t.jsx)("button",{onClick:()=>a("rejected",[],[]),disabled:v,className:"text-xs px-2 py-0.5 rounded-sm text-muted hover:text-txt",children:"Reject"})]}):"accepted"===e.status?(0,t.jsxs)("span",{className:"text-xs text-teal-400",children:["✓ Created"," ",(e.created??[]).map((e,s)=>(0,t.jsxs)("span",{children:[s>0&&", ",(0,t.jsx)("button",{onClick:()=>r(e.file),className:"font-mono hover:underline",children:e.id})]},e.id))]}):(0,t.jsx)("span",{className:"text-xs text-muted",children:"Rejected"})})]})}function j({rowKey:e,title:s,meta:a,body:n,indent:r,checked:i,disabled:l,onToggle:o,open:d,onOpen:c}){return(0,t.jsxs)("li",{"data-plan-row":e,className:"border-b border-border last:border-b-0",children:[(0,t.jsxs)("div",{className:(0,f.cn)("flex items-start gap-2 px-2 py-1.5",r&&"pl-6"),children:[(0,t.jsx)("input",{type:"checkbox","aria-label":`Include ${s}`,checked:i,disabled:l,onChange:o,className:"mt-0.5 accent-accent"}),(0,t.jsxs)("button",{onClick:c,className:"flex-1 min-w-0 text-left",children:[(0,t.jsxs)("div",{className:(0,f.cn)("text-xs text-txt",!i&&"line-through text-muted"),children:[(0,t.jsx)("span",{className:"font-mono text-muted mr-1",children:e}),s]}),a&&(0,t.jsx)("div",{className:"text-[10px] font-mono text-muted truncate",children:a})]})]}),d&&n&&(0,t.jsx)("div",{className:"px-3 pb-2 border-t border-border bg-surface2/40",children:(0,t.jsx)(x.MarkdownRenderer,{content:n,className:"text-xs"})})]})}var k=e.i(702197),w=e.i(844081);let v="grid size-8 shrink-0 place-items-center rounded-md text-muted transition-colors duration-(--duration-fast) hover:bg-surface2 hover:text-txt";function N({chat:e,hidden:a,wide:n}){let{send:r,resolveProposal:i,resolvePlan:l,answerQuestions:o}=(0,m.useChats)(),d=(0,s.useRef)(null),c=e.messages;return(0,s.useEffect)(()=>{let e=d.current;e&&!a&&(e.scrollTop=e.scrollHeight)},[c,a]),(0,t.jsx)("div",{ref:d,hidden:a,role:"log","aria-live":"polite",className:"min-h-0 flex-1 overflow-y-auto",children:(0,t.jsxs)("div",{className:(0,f.cn)("mx-auto flex flex-col gap-5 px-5 py-6 text-sm",n?"max-w-3xl":"max-w-none"),children:[0===c.length&&(0,t.jsx)(C,{chat:e,onPick:t=>r(e.id,t)}),c.map((s,a)=>(0,t.jsx)(S,{m:s,thinking:e.busy&&a===c.length-1,busy:e.busy,onProposal:(t,s,a)=>i(e.id,t,s,a),onPlan:(t,s,a,n)=>l(e.id,t,s,a,n),onAnswers:(t,s)=>o(e.id,t,s)},a))]})})}function S({m:e,thinking:s,busy:a,onProposal:n,onPlan:r,onAnswers:i}){return"user"===e.role?(0,t.jsx)("div",{className:"flex justify-end animate-fade-in",children:(0,t.jsx)("div",{className:"max-w-[85%] whitespace-pre-wrap rounded-2xl rounded-br-md border border-accent/20 bg-accent/10 px-3.5 py-2 text-txt",children:e.text})}):(0,t.jsxs)("div",{className:"flex gap-3 animate-fade-in",children:[(0,t.jsx)("div",{className:"mt-0.5 grid size-6 shrink-0 place-items-center rounded-md bg-linear-to-br from-accent to-teal text-[10px] text-white","aria-hidden":!0,children:"⬡"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1 space-y-2",children:[e.tools.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:e.tools.map((e,s)=>(0,t.jsx)("span",{className:"rounded-sm border border-border bg-surface2 px-1.5 py-0.5 font-mono text-[10px] text-muted animate-slide-in",children:e},s))}),e.proposals.map(e=>(0,t.jsx)(b,{proposal:e,onResolve:t=>n(e.id,e.path,t)},e.id)),e.plans.map(e=>(0,t.jsx)(y,{proposal:e,onResolve:(t,s,a)=>r(e,t,s,a)},e.id)),e.questions.map(e=>(0,t.jsx)(k.QuestionCard,{set:e,disabled:a,onSubmit:t=>i(e,t)},e.id)),e.text&&(0,t.jsx)(x.MarkdownRenderer,{content:e.text,className:"text-sm"}),s&&!e.text&&!e.error&&(0,t.jsx)(z,{}),e.error&&(0,t.jsx)("p",{className:"whitespace-pre-wrap text-xs text-danger",children:e.error})]})]})}function z(){return(0,t.jsxs)("span",{className:"inline-flex items-center gap-2 text-xs text-muted",children:[(0,t.jsx)("span",{className:"inline-flex gap-1","aria-hidden":!0,children:[0,150,300].map(e=>(0,t.jsx)("span",{className:"size-1.5 rounded-full bg-accent animate-pulse-dot",style:{animationDelay:`${e}ms`}},e))}),"Thinking…"]})}function C({chat:e,onPick:s}){let a=e.attach;return(0,t.jsxs)("div",{className:"flex flex-col items-start gap-4 py-6 animate-fade-in",children:[(0,t.jsx)("div",{className:"grid size-9 place-items-center rounded-lg bg-linear-to-br from-accent to-teal text-sm text-white","aria-hidden":!0,children:"⬡"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-txt",children:a?`Ask about ${a.id}`:"Ask the agent"}),(0,t.jsx)("p",{className:"mt-1 max-w-md text-sm text-muted",children:a?`The agent reads ${"epic"===a.kind?"the epic and its tasks":"the task"} first. It proposes changes; nothing is written until you accept.`:"It reads your docs, tasks and roadmap and proposes edits you review. Runs on your local Claude Code login."})]}),(0,t.jsx)("div",{className:"flex flex-col gap-1.5",children:(0,g.suggestions)(a).map((e,a)=>(0,t.jsxs)("button",{type:"button",onClick:()=>s(e),style:{animationDelay:`${60*a}ms`},className:"group flex items-center gap-2 rounded-lg border border-border px-3 py-2 text-left text-sm text-txt/90 transition-colors duration-(--duration-fast) animate-slide-in [animation-fill-mode:both] hover:border-accent/50 hover:bg-accent/5",children:[(0,t.jsx)(l,{className:"size-3.5 text-muted transition-transform duration-(--duration-fast) group-hover:-translate-y-px group-hover:translate-x-px group-hover:text-accent"}),e]},e))})]})}function A({chat:e,wide:r}){let{send:i,stop:l,queue:o}=(0,m.useChats)(),{selectedDoc:d}=(0,u.useApp)(),c=(0,a.usePathname)(),[h,x]=(0,s.useState)(""),g="/docs"===c?d?.path:void 0,b=e.messages[e.messages.length-1],y=!!b?.questions.some(e=>!e.answers),j=Math.min(8,Math.max(1,h.split("\n").length));function k(){h.trim()&&!e.busy&&(i(e.id,h),x(""))}return(0,t.jsx)("div",{className:"shrink-0 px-5 pb-4 pt-1",children:(0,t.jsxs)("div",{className:(0,f.cn)("mx-auto rounded-xl border border-border bg-surface2 transition-[border-color,box-shadow] duration-(--duration-base) focus-within:border-accent/60 focus-within:shadow-[0_0_0_3px_rgb(var(--rgb-accent)/0.12)]",r?"max-w-3xl":"max-w-none"),children:[(0,t.jsx)("textarea",{autoFocus:!o.some(t=>t.id===e.id),value:h,onChange:e=>x(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),k())},rows:j,placeholder:e.busy?"Agent is working…":y?"Answer the questions above…":"Ask the agent… (Enter to send)",className:"block w-full resize-none bg-transparent px-3.5 pt-3 text-sm text-txt placeholder:text-muted focus:outline-hidden"}),(0,t.jsxs)("div",{className:"flex items-center gap-2 px-2.5 pb-2 pt-1",children:[(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[10px] text-muted",children:g?`@ ${g}`:"Shift+Enter for a new line"}),e.busy?(0,t.jsxs)("button",{type:"button",onClick:()=>l(e.id),title:"Stop the agent",className:"grid size-7 place-items-center rounded-full border border-border text-muted transition-colors hover:text-txt",children:[(0,t.jsx)(p,{className:"size-3 fill-current"}),(0,t.jsx)("span",{className:"sr-only",children:"Stop"})]}):(0,t.jsxs)("button",{type:"button",onClick:k,disabled:!h.trim(),title:"Send (Enter)",className:"grid size-7 place-items-center rounded-full bg-accent text-accent-fg transition-[opacity,transform] duration-(--duration-fast) enabled:hover:scale-105 disabled:opacity-30",children:[(0,t.jsx)(n.ArrowUp,{className:"size-3.5"}),(0,t.jsx)("span",{className:"sr-only",children:"Send"})]})]})]})})}e.s(["ChatView",0,function({chatId:e,variant:n,onExpand:r,onNavigate:i}){let{chats:l,stop:o,remove:c,notice:u,dismissNotice:x}=(0,m.useChats)(),b=(0,a.useRouter)(),y=l.find(t=>t.id===e),[j,k]=(0,s.useState)([e]);if(j.includes(e)||k([...j,e]),!y)return(0,t.jsx)("div",{className:"grid h-full place-items-center p-8 text-sm text-muted",children:"This chat was closed."});let S=(0,g.chatStatus)(y);return(0,t.jsxs)("section",{"aria-label":`Chat: ${y.title}`,className:"flex h-full min-h-0 flex-col",children:[(0,t.jsxs)("header",{className:(0,f.cn)("flex h-14 shrink-0 items-center gap-3 border-b border-border px-5","modal"===n&&"pr-14"),children:[(0,t.jsx)(w.StatusMarker,{status:S,showIdle:!0}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("h2",{className:"truncate text-sm font-medium text-txt",children:y.title}),(0,t.jsx)("p",{className:"font-mono text-[10px] text-muted",children:g.STATUS_LABEL[S]})]}),y.attach&&(0,t.jsx)("button",{type:"button",onClick:()=>{var e;return y.attach&&(e=(0,w.attachHref)(y.attach),void(i?.(),b.push(e)))},title:`Open ${y.attach.id} in the ${"epic"===y.attach.kind?"roadmap":"board"}`,className:"rounded-full border border-border px-2 py-1 text-muted transition-colors duration-(--duration-fast) hover:border-accent/50 hover:text-accent",children:(0,t.jsx)(w.AttachLabel,{attach:y.attach})}),y.busy&&(0,t.jsxs)("button",{type:"button",onClick:()=>o(y.id),title:"Stop the agent",className:v,children:[(0,t.jsx)(p,{className:"size-3.5 fill-current"}),(0,t.jsx)("span",{className:"sr-only",children:"Stop"})]}),"modal"===n&&r&&(0,t.jsxs)("button",{type:"button",onClick:r,title:"Open as page",className:v,children:[(0,t.jsx)(d,{className:"size-3.5"}),(0,t.jsx)("span",{className:"sr-only",children:"Open as page"})]}),"page"===n&&(0,t.jsx)("button",{type:"button",onClick:()=>c(y.id),"aria-label":`Delete ${y.title}`,title:"Delete chat",className:(0,f.cn)(v,"hover:text-danger"),children:(0,t.jsx)(h.Trash2,{className:"size-3.5"})})]}),j.map(s=>{let a=l.find(e=>e.id===s);return a?(0,t.jsx)(N,{chat:a,hidden:s!==e,wide:"page"===n},s):null}),u&&(0,t.jsxs)("div",{role:"status",className:"mx-5 mb-2 flex items-start gap-2 rounded-md border border-amber/30 bg-amber/10 px-3 py-2 text-xs text-amber animate-fade-in",children:[(0,t.jsx)("span",{className:"flex-1",children:u}),(0,t.jsx)("button",{onClick:x,"aria-label":"Dismiss",className:"leading-none text-muted hover:text-txt",children:"×"})]}),(0,t.jsx)(A,{chat:y,wide:"page"===n},y.id)]})}],782630)},476785,e=>{"use strict";var t=e.i(180338);let s=()=>()=>{};e.s(["useOrigin",0,function(){return(0,t.useSyncExternalStore)(s,()=>window.location.origin,()=>"")}])},573009,e=>{"use strict";var t=e.i(243668);e.s(["applyAccent",0,function(e){document.documentElement.setAttribute("data-accent",e)},"applyFontSize",0,function(e){document.documentElement.setAttribute("data-font-size",e)},"applyFonts",0,function(e){let s=document.documentElement;s.setAttribute("data-font-sans",e.fontSans??t.DEFAULT_SETTINGS.fontSans),s.setAttribute("data-font-mono",e.fontMono??t.DEFAULT_SETTINGS.fontMono)},"applyTheme",0,function(e){let t=document.documentElement,s=window.matchMedia("(prefers-color-scheme: dark)").matches;t.classList.toggle("dark","dark"===e||"system"===e&&s)}])},478096,22829,e=>{"use strict";let t=(e,t)=>`${e} ${t}${1===e?"":"s"}`;e.s(["catchUp",0,function(e,t){let s=e.filter(e=>Date.parse(e.end)>=t);return{sessions:s.length,tasksDone:new Set(s.flatMap(e=>e.tasks.filter(e=>"done"===e.lastStatus).map(e=>e.id))).size,docs:new Set(s.flatMap(e=>e.docs)).size,decisions:s.reduce((e,t)=>e+t.decisions.length,0)}},"groupSessions",0,function(e,s={}){let a=s.gapMs??18e5,n=[...e].sort((e,t)=>e.timestamp.localeCompare(t.timestamp)),r=new Map,i=new Map;for(let e of n){let t=e.sessionId;if(!t){let s=Date.parse(e.timestamp),n=i.get(e.actor);(!n||"session_start"===e.type||s-n.lastAt>a)&&(n={id:`legacy_${e.id}`,lastAt:s},i.set(e.actor,n)),n.lastAt=s,t=n.id}let s=r.get(t);s?s.push(e):r.set(t,[e])}return[...r].map(([e,s])=>(function(e,s){let a=new Map,n=new Set,r=[],i=!1,l=0;for(let e of s){"task_updated"===e.type&&e.taskId&&e.taskStatus&&a.set(e.taskId,e.taskStatus);let t=function(e){switch(e.type){case"doc_created":return e.detail??e.title.replace(/^Created: /,"");case"doc_deleted":return e.title.replace(/^Deleted /,"");case"doc_renamed":return e.title.split(" → ")[1]??null;default:return null}}(e);t&&n.add(t),"decision_logged"===e.type&&r.push(e.title),"memory_updated"===e.type&&(i=!0),"roadmap_updated"===e.type&&l++}let o=[...a].map(([e,t])=>({id:e,lastStatus:t})),d=o.filter(e=>"done"===e.lastStatus).length,c=[o.length?`${t(o.length,"task")} moved${d?` (${d} done)`:""}`:"",n.size?`${t(n.size,"doc")} changed`:"",r.length?t(r.length,"ADR"):"",l?t(l,"roadmap edit"):"",i?"memory updated":""].filter(Boolean);return{id:e,actor:s[0].actor,start:s[0].timestamp,end:s[s.length-1].timestamp,eventCount:s.length,eventIds:s.map(e=>e.id),tasks:o,docs:[...n],decisions:r,memoryUpdated:i,headline:c.join(" · ")||t(s.length,"event")}})(e,s)).sort((e,t)=>t.start.localeCompare(e.start))},"isLive",0,function(e,t=Date.now(),s=3e5){return t-Date.parse(e.end)<s},"sessionDuration",0,function(e){let t=Math.round((Date.parse(e.end)-Date.parse(e.start))/6e4);return t<1?"<1m":t<60?`${t}m`:`${Math.floor(t/60)}h ${t%60}m`}],478096);var s=e.i(83790);let a={name:"activity",size:24,node:[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]};a.node;let n=(0,s.default)(a);e.s(["Activity",0,n],22829)}]);
@@ -0,0 +1,2 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,690457,e=>{"use strict";var t=e.i(83790);let s={name:"corner-up-left",size:24,node:[["path",{d:"M20 20v-7a4 4 0 0 0-4-4H4",key:"1nkjon"}],["path",{d:"M9 14 4 9l5-5",key:"102s5s"}]]};s.node;let a=(0,t.default)(s);e.s(["CornerUpLeft",0,a],690457)},496699,e=>{"use strict";var t=e.i(83790);let s={name:"refresh-cw",size:24,node:[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]};s.node;let a=(0,t.default)(s);e.s(["RefreshCw",0,a],496699)},496385,e=>{"use strict";var t=e.i(83790);let s={name:"triangle-alert",size:24,node:[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],aliases:["alert-triangle"]};s.node;let a=(0,t.default)(s);e.s(["AlertTriangle",0,a],496385)},329090,678677,e=>{"use strict";var t=e.i(72345),s=e.i(343253),a=e.i(83790);let n={name:"file-pen",size:24,node:[["path",{d:"M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34",key:"o6klzx"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z",key:"zhnas1"}]],aliases:["file-edit"]};n.node;let r=(0,a.default)(n);var i=e.i(760930);let l={name:"file-search",size:24,node:[["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"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]]};l.node;let o=(0,a.default)(l);var d=e.i(406952);let c={name:"file-x",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m14.5 12.5-5 5",key:"b62r18"}],["path",{d:"m9.5 12.5 5 5",key:"1rk7el"}]]};c.node;let u=(0,a.default)(c),p={name:"list-checks",size:24,node:[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}]]};p.node;let x=(0,a.default)(p);var m=e.i(192871),h=e.i(15205),f=e.i(496699);let g={name:"scale",size:24,node:[["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"m19 8 3 8a5 5 0 0 1-6 0zV7",key:"zcdpyk"}],["path",{d:"M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1",key:"1yorad"}],["path",{d:"m5 8 3 8a5 5 0 0 1-6 0zV7",key:"eua70x"}],["path",{d:"M7 21h10",key:"1b0cd5"}]]};g.node;let b=(0,a.default)(g);e.s(["Scale",0,b],678677);var j=e.i(737152),k=e.i(464750);let v={task_updated:x,decision_logged:b,memory_updated:j.Brain,doc_read:o,doc_created:i.FilePlus,doc_updated:d.FileText,doc_deleted:u,doc_renamed:r,session_start:h.Plug,registry_rebuilt:f.RefreshCw,roadmap_updated:m.Map},w=e=>new Date(e).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hourCycle:"h23"});e.s(["ActivityEventRow",0,function({event:e,showActor:a=!1}){let n=v[e.type]??d.FileText;return(0,t.jsxs)("div",{className:"grid grid-cols-[2.75rem_1.5rem_minmax(0,1fr)] items-start py-1.5",children:[(0,t.jsx)("time",{dateTime:e.timestamp,title:new Date(e.timestamp).toLocaleString(),className:"pt-px text-right font-mono text-[11px] leading-5 text-muted tabular-nums",children:w(e.timestamp)}),(0,t.jsx)("span",{className:"flex justify-center pt-[3px]",children:"task_updated"===e.type&&e.taskStatus?(0,t.jsx)(k.StatusIcon,{status:e.taskStatus}):(0,t.jsx)(n,{className:"size-3.5 text-muted","aria-hidden":!0})}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-col gap-0.5 sm:flex-row sm:items-baseline sm:gap-2",children:[(0,t.jsx)("span",{className:"min-w-0 text-sm leading-5 text-txt sm:shrink-0 sm:max-w-[60%] sm:truncate",children:e.title}),e.detail&&(0,t.jsx)("span",{className:"min-w-0 truncate text-xs leading-5 text-muted",children:e.detail}),a&&"human"===e.actor&&(0,t.jsxs)("span",{className:"flex shrink-0 items-center gap-1 font-mono text-[10px] text-muted sm:ml-auto",children:[(0,t.jsx)(s.User,{className:"size-3","aria-hidden":!0}),"you"]})]})]})},"clock",0,w,"timeAgo",0,function(e){let t=(Date.now()-new Date(e).getTime())/1e3;return t<60?"just now":t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`}],329090)},592381,e=>{"use strict";var t=e.i(72345),s=e.i(180338),a=e.i(975157),n=e.i(980376),r=e.i(998822),i=e.i(464750),l=e.i(653288),o=e.i(138324),d=e.i(837001),c=e.i(690457),u=e.i(666326),p=e.i(475850),x=e.i(248070),m=e.i(424991),h=e.i(458055),f=e.i(755146),g=e.i(574990),b=e.i(694628),j=e.i(508540),k=e.i(901778),v=e.i(650312),w=e.i(692172),y=e.i(651581),N=e.i(903763),S=e.i(564849),M=e.i(723528),C=e.i(763371),z=e.i(244267),T=e.i(481523),D=e.i(67874);let I={todo:["in-progress","paused"],"in-progress":["done","review","blocked","paused","todo"],review:[],blocked:["in-progress","cancelled"],paused:["in-progress","todo"],done:["todo"],cancelled:["todo"]},O={"in-progress":"start",review:"to review",done:"done",blocked:"blocked",paused:"pause",todo:"backlog",cancelled:"cancel"},A="w-full rounded-md border border-border bg-bg px-2.5 py-1.5 text-sm text-txt focus:border-accent/60 focus:outline-hidden";function $({task:e,rootParam:n,onDone:r}){let[i]=(0,s.useState)(e),[l,o]=(0,s.useState)(e.title),[d,c]=(0,s.useState)("—"===e.size?"":e.size),[u,p]=(0,s.useState)("—"===e.phase?"":e.phase),[x,m]=(0,s.useState)("—"===e.dependsOn?"":e.dependsOn),[h,f]=(0,s.useState)(e.due??""),[g,b]=(0,s.useState)(!1),[j,k]=(0,s.useState)(null),v=e=>"—"===e.trim()?"":e.trim();async function w(){let t={};if(l.trim()&&l.trim()!==i.title&&(t.title=l),d.trim()!==v(i.size)&&(t.size=d),u.trim()!==v(i.phase)&&(t.phase=u),x.trim()!==v(i.dependsOn)&&(t.dependsOn=x),(h||null)!==i.due&&(t.due=h||null),0===Object.keys(t).length)return r();b(!0),k(null);try{await (0,S.updateTask)(e.id,t,n),r()}catch(e){k(e.message),b(!1)}}return(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),w()},onKeyDown:e=>{"Escape"===e.key&&(e.stopPropagation(),r())},className:"flex flex-col gap-3 px-5 py-4 border-b border-border shrink-0 bg-surface2/40",children:[(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Title",(0,t.jsx)("input",{autoFocus:!0,value:l,onChange:e=>o(e.target.value),className:A})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Size",(0,t.jsx)("input",{value:d,onChange:e=>c(e.target.value),placeholder:"S / M / L",className:A})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Due",(0,t.jsx)("input",{type:"date",value:h,onChange:e=>f(e.target.value),className:(0,a.cn)(A,"scheme-light dark:scheme-dark")})]})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Epic / phase",(0,t.jsx)("input",{value:u,onChange:e=>p(e.target.value),placeholder:"R054 — Item actions",className:A})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Depends on",(0,t.jsx)("input",{value:x,onChange:e=>m(e.target.value),placeholder:"T001, T002",className:(0,a.cn)(A,"font-mono")})]}),j&&(0,t.jsx)("p",{role:"alert",className:"text-xs text-danger",children:j}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("button",{type:"submit",disabled:g,className:"text-xs px-2.5 py-1 rounded-sm bg-accent text-accent-fg transition-[filter] hover:brightness-110 disabled:opacity-40",children:"Save"}),(0,t.jsx)("button",{type:"button",onClick:r,disabled:g,className:"text-xs text-muted hover:text-txt",children:"Cancel"})]})]})}function L({taskId:e,onDone:a}){let{rootParam:n}=(0,C.useApp)(),[r,i]=(0,s.useState)(!1),[l,o]=(0,s.useState)(""),[u,p]=(0,s.useState)(!1),[x,m]=(0,s.useState)(null);async function h(t){p(!0),m(null);try{let s=await fetch(`/api/tasks/review${n}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,action:t,note:l})});if(!s.ok)throw Error((await s.json().catch(()=>null))?.error??`Request failed (${s.status})`);a()}catch(e){m(e.message),p(!1)}}return(0,t.jsxs)("div",{className:"flex flex-col gap-2 px-5 py-3 border-b border-border shrink-0 bg-accent/5",children:[(0,t.jsx)("p",{className:"text-xs text-muted",children:"Waiting for your review. Approving moves it to done; sending it back returns it to the queue with your note."}),r?(0,t.jsxs)("div",{className:"flex flex-col gap-2 animate-fade-in",children:[(0,t.jsx)("textarea",{autoFocus:!0,value:l,onChange:e=>o(e.target.value),rows:3,placeholder:"What needs to change? The agent reads this first.","aria-label":"Send back note",className:"w-full resize-none rounded-md border border-border bg-bg px-2.5 py-2 text-sm text-txt placeholder:text-muted focus:border-accent/60 focus:outline-hidden"}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("button",{onClick:()=>h("send-back"),disabled:u||!l.trim(),className:"inline-flex items-center gap-1.5 text-xs px-2.5 py-1 rounded-sm bg-amber/15 border border-amber/40 text-amber transition-colors hover:bg-amber/25 disabled:opacity-40",children:[(0,t.jsx)(c.CornerUpLeft,{className:"size-3.5"})," Send back"]}),(0,t.jsx)("button",{onClick:()=>{i(!1),o("")},disabled:u,className:"text-xs text-muted hover:text-txt",children:"Cancel"})]})]}):(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("button",{onClick:()=>h("approve"),disabled:u,className:"inline-flex items-center gap-1.5 text-xs px-2.5 py-1 rounded-sm bg-teal/15 border border-teal/40 text-teal transition-colors hover:bg-teal/25 disabled:opacity-40",children:[(0,t.jsx)(d.Check,{className:"size-3.5"})," Approve"]}),(0,t.jsxs)("button",{onClick:()=>i(!0),disabled:u,className:"inline-flex items-center gap-1.5 text-xs px-2.5 py-1 rounded-sm bg-surface2 border border-border text-muted transition-colors hover:text-txt hover:border-border2",children:[(0,t.jsx)(c.CornerUpLeft,{className:"size-3.5"})," Send back…"]})]}),x&&(0,t.jsx)("p",{role:"alert",className:"text-xs text-danger",children:x})]})}function R({entries:e}){return e.length?(0,t.jsxs)("div",{className:"flex flex-col gap-2 px-5 py-3 border-b border-border shrink-0",children:[(0,t.jsx)("p",{className:"font-mono text-[10px] uppercase tracking-widest text-muted",children:"Review history"}),(0,t.jsx)("ul",{className:"flex flex-col gap-2",children:[...e].reverse().map((e,s)=>(0,t.jsxs)("li",{className:"flex flex-col gap-0.5",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2 text-xs",children:[(0,t.jsx)("span",{className:(0,a.cn)("font-medium","approved"===e.outcome?"text-teal":"text-amber"),children:"approved"===e.outcome?"Approved":"Changes requested"}),(0,t.jsx)("span",{className:"font-mono text-[10px] text-muted",children:e.at.replace("T"," ").replace(/:\d\dZ$/,"Z")})]}),e.note&&(0,t.jsx)("p",{className:"whitespace-pre-wrap text-xs text-muted",children:e.note})]},s))})]}):null}e.s(["TaskDetailPanel",0,function({task:e,onClose:d,onMove:c}){var A;let q,[F,U]=(0,s.useState)(e);e&&e!==F&&U(e);let _=F&&I[F.status]||[],{chats:P,showAbout:E}=(0,z.useChats)(),{rootParam:H}=(0,C.useApp)(),B=F?(0,T.chatFor)(P,{kind:"task",id:F.id}):void 0,[W,G]=(0,s.useState)(null),K=!!F&&W===F.id,[V,X]=(0,s.useState)(null),[J,Z]=(0,s.useState)(!1),Q=(0,g.useStatusDefs)(),Y=()=>{F&&(d(),E({kind:"task",id:F.id}))};async function ee(){if(F){X(null);try{await (0,S.deleteTaskWithUndo)(F,H),d()}catch(e){X(e.message)}}}return(0,N.useItemCommands)(e&&F&&!K?`${F.id} \xb7 ${F.title}`:null,F?[{action:"edit",label:"Edit",run:()=>G(F.id)},{action:"status",label:"Change status…",run:()=>Z(!0)},{action:"chat",label:"Chat about task",run:Y},{action:"remove",label:"Delete",run:()=>{ee()}}]:[]),(0,t.jsx)(n.Sheet,{open:!!e,onOpenChange:e=>{e||d()},children:(0,t.jsx)(n.SheetContent,{side:"right","aria-describedby":void 0,className:"p-0 gap-0 sm:max-w-[420px] border-border flex flex-col",children:F&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(j.ItemPanelHeader,{kicker:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{children:F.id}),(0,t.jsx)("span",{children:"· task"}),(0,t.jsx)(M.AgentMark,{attach:{kind:"task",id:F.id}})]}),title:(0,t.jsx)(n.SheetTitle,{className:"text-base font-semibold leading-snug text-txt",children:F.title}),menu:(0,t.jsxs)(f.DropdownMenu,{open:J,onOpenChange:Z,children:[(0,t.jsx)(f.DropdownMenuTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button","aria-label":`Actions for ${F.id}`,className:"ml-auto grid size-6 place-items-center rounded-md text-muted hover:bg-surface2 hover:text-txt",children:(0,t.jsx)(x.MoreHorizontal,{className:"size-4"})})}),(0,t.jsxs)(f.DropdownMenuContent,{align:"end",className:"w-44",children:[(0,t.jsxs)(f.DropdownMenuItem,{onSelect:()=>G(F.id),children:[(0,t.jsx)(m.Pencil,{})," Edit",(0,t.jsx)(f.DropdownMenuShortcut,{children:(0,N.itemKeyLabel)("edit")})]}),(0,t.jsxs)(f.DropdownMenuSub,{children:[(0,t.jsxs)(f.DropdownMenuSubTrigger,{children:[(0,t.jsx)(i.StatusIcon,{status:(0,b.displayStatus)(F)})," Status",(0,t.jsx)(f.DropdownMenuShortcut,{children:(0,N.itemKeyLabel)("status")})]}),(0,t.jsx)(f.DropdownMenuSubContent,{children:Q.map(e=>(0,t.jsxs)(f.DropdownMenuItem,{disabled:e.id===(0,b.displayStatus)(F),onSelect:()=>c(F.id,e.id),children:[(0,t.jsx)(i.StatusIcon,{status:e.id})," ",e.label]},e.id))})]}),(0,t.jsxs)(f.DropdownMenuItem,{onSelect:Y,children:[(0,t.jsx)(p.MessageSquare,{})," Chat about task",(0,t.jsx)(f.DropdownMenuShortcut,{children:(0,N.itemKeyLabel)("chat")})]}),(0,t.jsx)(f.DropdownMenuSeparator,{}),(0,t.jsxs)(f.DropdownMenuItem,{onSelect:ee,className:"text-danger focus:text-danger",children:[(0,t.jsx)(h.Trash2,{})," Delete",(0,t.jsx)(f.DropdownMenuShortcut,{children:(0,N.itemKeyLabel)("remove")})]})]})]}),properties:(q=(A=F).phase&&"—"!==A.phase?(0,v.epicOf)(A.phase):null,[{label:"Status",value:(0,t.jsx)(k.TaskStatusField,{task:A,chip:!0})},{label:"Owner",value:(0,t.jsx)(k.TaskOwnerField,{task:A})},{label:"Due",value:(0,t.jsx)(k.TaskDueField,{task:A,children:A.due?(0,t.jsx)(y.DueChip,{due:A.due,state:(0,w.dueState)(A.due,"done"===A.status?"done":"planned",(0,w.localToday)())}):(0,t.jsx)("span",{className:"text-muted",children:"—"})})},{label:"Size",value:(0,t.jsx)(k.TaskSizeField,{task:A})},{label:"Epic",value:q&&(0,t.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[q.id&&(0,t.jsx)("span",{className:"font-mono text-[11px] text-muted",children:q.id}),(0,t.jsx)("span",{className:"truncate",children:q.title})]})}])}),V&&(0,t.jsx)("p",{role:"alert",className:"px-5 py-2 text-xs text-danger border-b border-border",children:V}),K&&(0,t.jsx)($,{task:F,rootParam:H,onDone:()=>G(null)},`edit-${F.id}`),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 px-5 py-3 border-b border-border shrink-0",children:[_.map(e=>(0,t.jsxs)("button",{onClick:()=>{c(F.id,e),d()},className:"inline-flex items-center gap-1.5 text-xs px-2.5 py-1 rounded-sm bg-surface2 border border-border text-muted hover:text-txt hover:border-border2 transition-colors",children:[(0,t.jsx)(i.StatusIcon,{status:e,className:"size-3"})," ",O[e]||e]},e)),(0,t.jsxs)("button",{onClick:()=>{d(),E({kind:"task",id:F.id})},className:"ml-auto inline-flex items-center gap-1.5 text-xs px-2.5 py-1 rounded-sm bg-accent text-accent-fg transition-[filter] hover:brightness-110",children:[(0,t.jsx)(p.MessageSquare,{className:"size-3.5"})," ",B?"Open chat":"Chat about task"]})]}),"review"===F.status&&(0,t.jsx)(L,{taskId:F.id,onDone:d},`review-${F.id}`),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto",children:[(0,t.jsx)("div",{className:"px-5 py-4",children:F.raw?(0,t.jsx)(r.MarkdownRenderer,{content:function(e){let t=e.split("\n"),s=t.findIndex(e=>e.startsWith("# "));for(s=s<0?0:s+1;s<t.length&&(""===t[s].trim()||/^\*\*[^*]+:\*\*/.test(t[s]));)s++;return t.slice(s).join("\n")}(F.raw)}):(0,t.jsx)("p",{className:"text-sm text-muted",children:"No content available."})}),(0,t.jsxs)("section",{"aria-label":"Activity",className:"border-t border-border",children:[F.manualTests&&(0,t.jsxs)(o.default,{href:`/manual-tests#${F.id}`,onClick:d,className:"group flex items-center gap-2 px-5 py-2.5 border-b border-border shrink-0 text-xs text-muted hover:bg-surface2 hover:text-txt transition-colors",children:[(0,t.jsx)(u.FlaskConical,{className:"size-3.5"}),(0,t.jsxs)("span",{className:(0,a.cn)("font-mono",F.manualTests.done===F.manualTests.total&&"text-teal"),children:[F.manualTests.done,"/",F.manualTests.total]}),"manual tests ticked",(0,t.jsx)("span",{className:"ml-auto text-accent opacity-0 transition-opacity group-hover:opacity-100",children:"Open checklist →"})]}),(0,t.jsx)(R,{entries:(0,D.reviewHistory)(F.raw??"")}),(0,t.jsx)(l.TaskSessions,{taskId:F.id,onNavigate:d},F.id)]})]})]})})})}])},901778,e=>{"use strict";var t=e.i(72345),s=e.i(763371),a=e.i(65112),n=e.i(35032),r=e.i(464750),i=e.i(574990),l=e.i(694628),o=e.i(650312),d=e.i(222581);let c=["XS","S","M","L","XL"],u=(0,t.jsx)("span",{className:"text-muted",children:"—"});e.s(["TaskDueField",0,function({task:e,children:n}){let{updateTaskFields:r}=(0,s.useApp)();return(0,t.jsx)(a.InlineDate,{label:`Due date of ${e.id}`,value:e.due,onChange:t=>r(e.id,{due:t}),children:n??(e.due?(0,t.jsx)("span",{className:"font-mono text-xs",children:e.due}):u)})},"TaskOwnerField",0,function({task:e,children:r}){let{updateTaskFields:i,board:l}=(0,s.useApp)(),o=[...new Set(["ai:claude",...Object.values(l??{}).flat().map(e=>e.owner).filter(e=>!!e?.startsWith("ai:"))])].sort(),c=[{value:"human",label:"Human",node:(0,t.jsx)(n.OwnerChip,{owner:"human",className:"text-xs"})},...o.map(e=>({value:e,label:(0,d.ownerLabel)(e),node:(0,t.jsx)(n.OwnerChip,{owner:e,className:"text-xs"})})),{value:"",label:"No owner",node:(0,t.jsx)("span",{className:"text-muted",children:"No owner"})}];return(0,t.jsx)(a.InlineSelect,{label:`Owner of ${e.id}`,value:e.owner??"",options:c,onChange:t=>i(e.id,{owner:t||null}),children:r??(e.owner?(0,t.jsx)(n.OwnerChip,{owner:e.owner,className:"text-xs"}):u)})},"TaskSizeField",0,function({task:e,children:n}){let{updateTaskFields:r}=(0,s.useApp)(),i=(0,o.sizeOf)(e),l=[...c.map(e=>({value:e,label:e,node:(0,t.jsx)("span",{className:"font-mono",children:e})})),{value:"",label:"No size",node:(0,t.jsx)("span",{className:"text-muted",children:"No size"})}];return(0,t.jsx)(a.InlineSelect,{label:`Size of ${e.id}`,value:i??"",options:l,onChange:t=>r(e.id,{size:t||"—"}),children:n??(i?(0,t.jsx)("span",{className:"font-mono text-xs",children:i}):u)})},"TaskStatusField",0,function({task:e,chip:n=!1}){let{moveTask:o}=(0,s.useApp)(),d=(0,i.useStatusDefs)(),c=(0,l.displayStatus)(e),u=d.map(e=>({value:e.id,label:e.label,node:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.StatusIcon,{status:e.id}),e.label]})}));return(0,t.jsx)(a.InlineSelect,{label:`Status of ${e.id}`,value:c,options:u,onChange:t=>o(e.id,t),children:n?(0,t.jsx)(r.StatusChip,{status:c}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.StatusIcon,{status:c}),(0,t.jsx)("span",{className:"truncate text-xs",children:d.find(e=>e.id===c)?.label??c})]})})}])},653288,e=>{"use strict";var t=e.i(72345),s=e.i(180338),a=e.i(910172),n=e.i(479432),r=e.i(343253),i=e.i(763371),l=e.i(329090);e.s(["TaskSessions",0,function({taskId:e,onNavigate:o}){let{rootParam:d}=(0,i.useApp)(),c=(0,a.useRouter)(),[u,p]=(0,s.useState)(null);return(0,s.useEffect)(()=>{let t=d?`${d}&`:"?";fetch(`/api/sessions${t}taskId=${encodeURIComponent(e)}`).then(e=>e.json()).then(e=>p(Array.isArray(e)?e:[])).catch(()=>p([]))},[d,e]),(0,t.jsxs)("div",{className:"px-5 py-3 border-b border-border shrink-0",children:[(0,t.jsx)("p",{className:"mb-2 text-xs font-mono uppercase tracking-wide text-muted",children:"Sessions"}),null===u?null:0===u.length?(0,t.jsx)("p",{className:"text-xs text-muted",children:"No recorded sessions"}):(0,t.jsx)("div",{className:"flex max-h-40 flex-col gap-1 overflow-y-auto",children:u.map(e=>(0,t.jsxs)("button",{onClick:()=>{o(),c.push(`/activity?session=${encodeURIComponent(e.id)}`)},className:"flex items-center gap-2 rounded-sm px-2 py-1 text-left text-xs hover:bg-surface2",children:["ai"===e.actor?(0,t.jsx)(n.Bot,{"aria-hidden":!0,className:"size-3.5 shrink-0 text-muted"}):(0,t.jsx)(r.User,{"aria-hidden":!0,className:"size-3.5 shrink-0 text-muted"}),(0,t.jsx)("span",{className:"sr-only",children:"ai"===e.actor?"Agent session":"Human session"}),(0,t.jsx)("span",{className:"shrink-0 font-mono text-muted",children:(0,l.timeAgo)(e.start)}),(0,t.jsx)("span",{className:"truncate text-txt",children:e.headline})]},e.id))})]})}])},564849,e=>{"use strict";var t=e.i(673635);async function s(e,t){let s=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),a=await s.json().catch(()=>null);if(!s.ok)throw Error(a?.error??`Request failed (${s.status})`);return a}async function a(e,a){let{task:n,links:r}=await s(`/api/tasks/delete${a}`,{id:e.id});(0,t.undoToast)(`Deleted ${n.id}`,async()=>{await s(`/api/tasks/restore${a}`,{file:n.file,raw:n.raw,links:r})})}e.s(["deleteTaskWithUndo",0,a,"updateTask",0,(e,t,a)=>s(`/api/tasks/update${a}`,{id:e,patch:t}).then(e=>e.task)])},650312,e=>{"use strict";let t=["status","epic","size","due","deps","tests","agent","owner"],s=["board","table","epic","timeline"],a={board:"Board",table:"Table",epic:"By epic",timeline:"Timeline"};function n(e){let s={kind:e,filters:[],sorts:[],group:"epic",subGroup:"none",q:"",properties:[...t],scale:"active"};return"board"===e?{...s,group:"none",subGroup:"epic",properties:["epic","size","deps","tests","agent","owner"]}:"table"===e?{...s,sorts:[{prop:"status",dir:"asc"},{prop:"id",dir:"asc"}]}:s}let r=s.map(e=>({...n(e),id:e,name:a[e]})),i=["in-progress","review","todo","blocked","paused","done","cancelled"],l={"in-progress":"In progress",review:"Review",todo:"Todo",blocked:"Blocked",paused:"Paused",done:"Done",cancelled:"Cancelled"},o=["XS","S","M","L","XL"],d=(e,t)=>e.localeCompare(t,void 0,{numeric:!0}),c=e=>"done"!==e.status&&"cancelled"!==e.status;function u(e){return[...new Set((e.dependsOn.match(/\bT\d+\b/gi)??[]).map(e=>e.toUpperCase()))]}function p(e){let t=e.trim().match(/^(R\d+)\b\s*(?:[—–:-]\s*)?(.*)$/i);return t?{id:t[1].toUpperCase(),title:t[2].trim()}:{id:null,title:e.trim()}}function x(e){let t=e.size.trim().match(/^(XS|XL|S|M|L)\b/i);return t?t[1].toUpperCase():null}function m(e,t){return"todo"===e.status&&u(e).every(e=>t.get(e)?.status==="done")}let h=["status","epic","size","due","deps","tests","agent","ready","owner"],f=["is","is-not","before","after","is-set","not-set"],g=["status","id","epic","size","due","title"],b=["status","epic","size","owner","none"],j=["epic","size","none"],k=["active","day","week"],v=(e,t,s)=>null!==t&&e.includes(t)?t:s,w=e=>e.map(e=>("desc"===e.dir?"-":"")+e.prop).join(",");e.s(["DEFAULT_VIEWS",0,r,"applyView",0,function(e,t,s){let a=new Map(e.map(e=>[e.id,e])),n=t.filters.some(e=>"status"===e.prop&&"is"===e.op&&e.value.includes("cancelled")),r=t.q.trim().toLowerCase();return e.filter(e=>n||"cancelled"!==e.status).filter(e=>!r||e.id.toLowerCase().includes(r)||e.title.toLowerCase().includes(r)).filter(e=>t.filters.every(t=>(function(e,t,s,a){let n=e=>"is"===t.op?t.value.includes(e):"is-not"!==t.op||!t.value.includes(e),r=e=>"is-set"===t.op?e:"not-set"!==t.op||!e;switch(t.prop){case"status":return n(e.customStatus??e.status);case"epic":return n(p(e.phase).id??"none");case"size":return n(x(e)??"none");case"due":if("before"===t.op)return!!e.due&&!!t.value[0]&&e.due<t.value[0];if("after"===t.op)return!!e.due&&!!t.value[0]&&e.due>t.value[0];return r(!!e.due);case"deps":return r(u(e).length>0);case"tests":return r(null!==e.manualTests);case"agent":return r(s.agentTasks.has(e.id));case"ready":return r(m(e,a));case"owner":return n("human"===e.owner?"human":e.owner?.startsWith("ai:")?"ai":"none")}})(e,t,s,a))).sort((e,s)=>{for(let a of t.sorts){let t=function(e,t,s){switch(s){case"status":return i.indexOf(e.status)-i.indexOf(t.status);case"id":return d(e.id,t.id);case"title":return e.title.localeCompare(t.title);case"epic":{let s=p(e.phase).id,a=p(t.phase).id;return s===a?0:null===s?1:null===a?-1:d(s,a)}case"size":{let s=o.indexOf(x(e)??""),a=o.indexOf(x(t)??"");return s===a?0:s<0?1:a<0?-1:s-a}case"due":return e.due===t.due?0:null===e.due?1:null===t.due?-1:e.due.localeCompare(t.due)}}(e,s,a.prop);if(t)return"desc"!==a.dir||function(e,t,s){let a=e=>"due"===s?e.due:"epic"===s?p(e.phase).id:"size"===s?o.includes(x(e)??"")?"x":null:"x";return null===a(e)!=(null===a(t))}(e,s,a.prop)?t:-t}return d(e.id,s.id)})},"depOutline",0,function(e){let t=new Set(e.map(e=>e.id)),s=new Map;for(let a of e){let e=u(a).find(e=>e!==a.id&&t.has(e));e&&s.set(a.id,e)}let a=new Map;for(let t of e){let e=s.get(t.id);e&&a.set(e,[...a.get(e)??[],t])}let n=[],r=new Set,i=(e,t,s)=>{if(!r.has(e.id))for(let l of(r.add(e.id),n.push({task:e,depth:Math.min(t,4),alsoAfter:u(e).filter(t=>t!==s&&t!==e.id)}),a.get(e.id)??[]))i(l,t+1,e.id)};for(let t of e)s.has(t.id)||i(t,0,null);for(let t of e)i(t,0,null);return n},"epicOf",0,p,"foldAxis",0,function(e,t){let s=e.map(e=>{let t=Math.max((e.endMs-e.startMs)*.05,6e4);return{startMs:e.startMs-t,endMs:e.endMs+t}}).sort((e,t)=>e.startMs-t.startMs),a=[];for(let e of s){let s=a[a.length-1];s&&e.startMs-s.endMs<t?s.endMs=Math.max(s.endMs,e.endMs):a.push({...e})}return a},"fromParams",0,function(e){let a=v(s,e.get("view"),"board"),r=n(a),i=e.get("s"),l=e.get("f"),o=e.get("p");return{kind:a,group:v(b,e.get("g"),r.group),subGroup:v(j,e.get("sg"),r.subGroup),sorts:null===i?r.sorts:i.split(",").filter(Boolean).flatMap(e=>{let t=e.startsWith("-"),s=t?e.slice(1):e;return g.includes(s)?[{prop:s,dir:t?"desc":"asc"}]:[]}),filters:l?l.split(";").flatMap(e=>{let[t,s,...a]=e.split(":");if(!h.includes(t)||!f.includes(s))return[];let n=a.join(":"),r=[];try{r=a.length?n.split("|").map(decodeURIComponent):[]}catch{return[]}return[{prop:t,op:s,value:r}]}):[],q:e.get("q")??"",properties:null===o?r.properties:[...new Set(o.split(",").filter(e=>t.includes(e)))],scale:v(k,e.get("sc"),r.scale)}},"groupTasks",0,function(e,t,s){if(!e.length)return[];if("none"===t)return[{key:"all",label:"All tasks",epicId:null,tasks:e}];let a=new Map,n=e=>"status"===t?e.customStatus??e.status:"size"===t?x(e)??"none":"owner"===t?e.owner??"none":p(e.phase).id??"none";for(let t of e){let e=n(t),s=a.get(e);s?s.push(t):a.set(e,[t])}let r=(e,t,s=null)=>({key:e,label:t,epicId:s,tasks:a.get(e)??[]});if("status"===t)return s?s.filter(e=>a.has(e.id)).map(e=>r(e.id,e.label)):i.filter(e=>a.has(e)).map(e=>r(e,l[e]));if("size"===t)return[...o,"none"].filter(e=>a.has(e)).map(e=>r(e,"none"===e?"No size":e));if("owner"===t)return["human",...[...a.keys()].filter(e=>e.startsWith("ai:")).sort(),"none"].filter(e=>a.has(e)).map(e=>r(e,"human"===e?"Human":"none"===e?"No owner":`${e.slice(3)} (AI)`));let u=e=>(a.get(e)??[]).filter(c).map(e=>e.id).sort(d)[0]??null,m=[...a.keys()].filter(e=>"none"!==e).sort((e,t)=>{let s=u(e),a=u(t);return s&&a?d(s,a)||d(e,t):s||a?s?-1:1:d(t,e)}).map(e=>{let t=(a.get(e)??[]).map(e=>p(e.phase).title).find(Boolean);return r(e,t||e,e)});return a.has("none")&&m.push(r("none","No epic")),m},"isDirty",0,function(e,t){let s=e=>JSON.stringify([e.kind,e.filters,e.sorts,e.group,e.subGroup,[...e.properties].sort(),e.scale]);return s(e)!==s(t)},"isReady",0,m,"sizeOf",0,x,"timelineBars",0,function(e,t,s){let a=new Map;for(let e of t){if("task_updated"!==e.type||!e.taskId)continue;let t=Date.parse(e.timestamp);if(Number.isNaN(t))continue;let s=a.get(e.taskId)??[];s.push({ms:t,status:e.taskStatus}),a.set(e.taskId,s)}let n=[];for(let t of e){let e=a.get(t.id)?.sort((e,t)=>e.ms-t.ms);if(!e?.length)continue;let r=(e.find(e=>"in-progress"===e.status)??e[0]).ms,i=e[e.length-1].ms,l=e.filter(e=>"done"===e.status).pop()?.ms,o="done"!==t.status&&"cancelled"!==t.status,d="done"===t.status?l??i:o?s:i;n.push({taskId:t.id,epicId:p(t.phase).id,startMs:r,endMs:Math.max(d,r),status:t.status,open:o})}return n},"toParams",0,function(e){let t=n(e.kind),s=new URLSearchParams;return"board"!==e.kind&&s.set("view",e.kind),e.group!==t.group&&s.set("g",e.group),e.subGroup!==t.subGroup&&s.set("sg",e.subGroup),w(e.sorts)!==w(t.sorts)&&s.set("s",w(e.sorts)),e.filters.length&&s.set("f",e.filters.map(e=>[e.prop,e.op,...e.value.length?[e.value.map(encodeURIComponent).join("|")]:[]].join(":")).join(";")),e.q&&s.set("q",e.q),e.properties.join(",")!==t.properties.join(",")&&s.set("p",e.properties.join(",")),e.scale!==t.scale&&s.set("sc",e.scale),s}])},67874,e=>{"use strict";let t=/^###\s+(\S+)\s+—\s+(approved|changes requested)\s*$/;function s(e){let s=e.split("\n"),a=function(e){let t,s=(t=!1,e.map(e=>/^\s*```/.test(e)?(t=!t,!0):t)),a=e.findIndex((e,t)=>!s[t]&&"## Review"===e.trim());if(a<0)return null;let n=e.findIndex((e,t)=>t>a&&!s[t]&&/^##\s/.test(e));return[a,n<0?e.length:n]}(s);if(!a)return[];let n=[];for(let e of s.slice(a[0]+1,a[1])){let s=e.match(t);if(s)n.push({at:s[1],outcome:s[2],note:""});else if(n.length){let t=n[n.length-1];t.note=t.note?`${t.note}
2
+ ${e}`:e}}return n.map(e=>({...e,note:e.note.trim()}))}e.s(["latestReview",0,function(e){let t=s(e);return t[t.length-1]??null},"reviewHistory",0,s])}]);