vibedoc 1.12.0 → 1.13.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 (800) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +3 -1
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +59 -3
  5. package/.next/routes-manifest.json +12 -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)/getting-started/page/app-paths-manifest.json +3 -0
  17. package/.next/server/app/(app)/getting-started/page/build-manifest.json +20 -0
  18. package/.next/server/app/(app)/getting-started/page/next-font-manifest.json +11 -0
  19. package/.next/server/app/(app)/getting-started/page/react-loadable-manifest.json +1 -0
  20. package/.next/server/app/(app)/getting-started/page/server-reference-manifest.json +4 -0
  21. package/.next/server/app/(app)/getting-started/page.js +15 -0
  22. package/.next/server/app/(app)/getting-started/page.js.map +5 -0
  23. package/.next/server/app/(app)/getting-started/page.js.nft.json +1 -0
  24. package/.next/server/app/(app)/getting-started/page_client-reference-manifest.js +3 -0
  25. package/.next/server/app/(app)/graph/page.js.nft.json +1 -1
  26. package/.next/server/app/(app)/graph/page_client-reference-manifest.js +1 -1
  27. package/.next/server/app/(app)/manual-tests/page.js.nft.json +1 -1
  28. package/.next/server/app/(app)/manual-tests/page_client-reference-manifest.js +1 -1
  29. package/.next/server/app/(app)/memory/page.js.nft.json +1 -1
  30. package/.next/server/app/(app)/memory/page_client-reference-manifest.js +1 -1
  31. package/.next/server/app/(app)/roadmap/page.js.nft.json +1 -1
  32. package/.next/server/app/(app)/roadmap/page_client-reference-manifest.js +1 -1
  33. package/.next/server/app/(app)/settings/page.js.nft.json +1 -1
  34. package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
  35. package/.next/server/app/(app)/setup/page.js.nft.json +1 -1
  36. package/.next/server/app/(app)/setup/page_client-reference-manifest.js +1 -1
  37. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  38. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  39. package/.next/server/app/_global-error.html +1 -1
  40. package/.next/server/app/_global-error.rsc +1 -1
  41. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  42. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  43. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  44. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  45. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  46. package/.next/server/app/_not-found.html +1 -1
  47. package/.next/server/app/_not-found.rsc +2 -2
  48. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  49. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  50. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  51. package/.next/server/app/activity.html +1 -1
  52. package/.next/server/app/activity.rsc +7 -7
  53. package/.next/server/app/activity.segments/!KGFwcCk/activity/__PAGE__.segment.rsc +5 -5
  54. package/.next/server/app/activity.segments/_full.segment.rsc +7 -7
  55. package/.next/server/app/activity.segments/_tree.segment.rsc +2 -2
  56. package/.next/server/app/api/activity/route.js +2 -3
  57. package/.next/server/app/api/activity/route.js.nft.json +1 -1
  58. package/.next/server/app/api/chat/route.js +2 -2
  59. package/.next/server/app/api/chat/route.js.nft.json +1 -1
  60. package/.next/server/app/api/context/route.js +2 -3
  61. package/.next/server/app/api/context/route.js.nft.json +1 -1
  62. package/.next/server/app/api/conversations/route.js +3 -4
  63. package/.next/server/app/api/conversations/route.js.nft.json +1 -1
  64. package/.next/server/app/api/decisions/route.js +2 -3
  65. package/.next/server/app/api/decisions/route.js.nft.json +1 -1
  66. package/.next/server/app/api/docs/graph/route.js +2 -4
  67. package/.next/server/app/api/docs/graph/route.js.nft.json +1 -1
  68. package/.next/server/app/api/docs/links/route.js +2 -4
  69. package/.next/server/app/api/docs/links/route.js.nft.json +1 -1
  70. package/.next/server/app/api/docs/route.js +2 -3
  71. package/.next/server/app/api/docs/route.js.nft.json +1 -1
  72. package/.next/server/app/api/explorer/route.js +3 -4
  73. package/.next/server/app/api/explorer/route.js.nft.json +1 -1
  74. package/.next/server/app/api/mcp/route.js +3 -4
  75. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  76. package/.next/server/app/api/memory/entries/delete/route.js +3 -4
  77. package/.next/server/app/api/memory/entries/delete/route.js.nft.json +1 -1
  78. package/.next/server/app/api/memory/entries/merge/route.js +3 -4
  79. package/.next/server/app/api/memory/entries/merge/route.js.nft.json +1 -1
  80. package/.next/server/app/api/memory/entries/merge/undo/route.js +3 -4
  81. package/.next/server/app/api/memory/entries/merge/undo/route.js.nft.json +1 -1
  82. package/.next/server/app/api/memory/entries/restore/route.js +3 -4
  83. package/.next/server/app/api/memory/entries/restore/route.js.nft.json +1 -1
  84. package/.next/server/app/api/memory/entries/route.js +2 -3
  85. package/.next/server/app/api/memory/entries/route.js.nft.json +1 -1
  86. package/.next/server/app/api/memory/entries/save/route.js +3 -4
  87. package/.next/server/app/api/memory/entries/save/route.js.nft.json +1 -1
  88. package/.next/server/app/api/memory/graph/route.js +3 -4
  89. package/.next/server/app/api/memory/graph/route.js.nft.json +1 -1
  90. package/.next/server/app/api/memory/health/dismiss/route.js +3 -4
  91. package/.next/server/app/api/memory/health/dismiss/route.js.nft.json +1 -1
  92. package/.next/server/app/api/memory/health/route.js +2 -3
  93. package/.next/server/app/api/memory/health/route.js.nft.json +1 -1
  94. package/.next/server/app/api/memory/history/route.js +2 -4
  95. package/.next/server/app/api/memory/history/route.js.nft.json +1 -1
  96. package/.next/server/app/api/memory/restore/route.js +3 -4
  97. package/.next/server/app/api/memory/restore/route.js.nft.json +1 -1
  98. package/.next/server/app/api/memory/route.js +2 -3
  99. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  100. package/.next/server/app/api/memory/versions/route.js +2 -3
  101. package/.next/server/app/api/memory/versions/route.js.nft.json +1 -1
  102. package/.next/server/app/api/plan/apply/route.js +3 -4
  103. package/.next/server/app/api/plan/apply/route.js.nft.json +1 -1
  104. package/.next/server/app/api/projects/route.js +2 -3
  105. package/.next/server/app/api/projects/route.js.nft.json +1 -1
  106. package/.next/server/app/api/registry/route.js +2 -3
  107. package/.next/server/app/api/registry/route.js.nft.json +1 -1
  108. package/.next/server/app/api/roadmap/create/route.js +3 -4
  109. package/.next/server/app/api/roadmap/create/route.js.nft.json +1 -1
  110. package/.next/server/app/api/roadmap/delete/route.js +3 -4
  111. package/.next/server/app/api/roadmap/delete/route.js.nft.json +1 -1
  112. package/.next/server/app/api/roadmap/generate/route.js +3 -4
  113. package/.next/server/app/api/roadmap/generate/route.js.nft.json +1 -1
  114. package/.next/server/app/api/roadmap/layout/route.js +3 -4
  115. package/.next/server/app/api/roadmap/layout/route.js.nft.json +1 -1
  116. package/.next/server/app/api/roadmap/restore/route.js +3 -4
  117. package/.next/server/app/api/roadmap/restore/route.js.nft.json +1 -1
  118. package/.next/server/app/api/roadmap/route.js +2 -3
  119. package/.next/server/app/api/roadmap/route.js.nft.json +1 -1
  120. package/.next/server/app/api/roadmap/update/route.js +3 -4
  121. package/.next/server/app/api/roadmap/update/route.js.nft.json +1 -1
  122. package/.next/server/app/api/sessions/route.js +2 -3
  123. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  124. package/.next/server/app/api/settings/route.js +2 -3
  125. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  126. package/.next/server/app/api/setup/generate/route.js +2 -3
  127. package/.next/server/app/api/setup/generate/route.js.nft.json +1 -1
  128. package/.next/server/app/api/setup/write/route.js +2 -3
  129. package/.next/server/app/api/setup/write/route.js.nft.json +1 -1
  130. package/.next/server/app/api/summary/route.js +2 -3
  131. package/.next/server/app/api/summary/route.js.nft.json +1 -1
  132. package/.next/server/app/api/tasks/bulk/route.js +3 -4
  133. package/.next/server/app/api/tasks/bulk/route.js.nft.json +1 -1
  134. package/.next/server/app/api/tasks/create/route.js +2 -3
  135. package/.next/server/app/api/tasks/create/route.js.nft.json +1 -1
  136. package/.next/server/app/api/tasks/delete/route.js +3 -4
  137. package/.next/server/app/api/tasks/delete/route.js.nft.json +1 -1
  138. package/.next/server/app/api/tasks/manual-tests/route.js +3 -3
  139. package/.next/server/app/api/tasks/manual-tests/route.js.nft.json +1 -1
  140. package/.next/server/app/api/tasks/restore/route.js +3 -4
  141. package/.next/server/app/api/tasks/restore/route.js.nft.json +1 -1
  142. package/.next/server/app/api/tasks/review/route.js +3 -4
  143. package/.next/server/app/api/tasks/review/route.js.nft.json +1 -1
  144. package/.next/server/app/api/tasks/route.js +2 -3
  145. package/.next/server/app/api/tasks/route.js.nft.json +1 -1
  146. package/.next/server/app/api/tasks/update/route.js +3 -4
  147. package/.next/server/app/api/tasks/update/route.js.nft.json +1 -1
  148. package/.next/server/app/api/views/route.js +2 -3
  149. package/.next/server/app/api/views/route.js.nft.json +1 -1
  150. package/.next/server/app/board.html +1 -1
  151. package/.next/server/app/board.rsc +7 -7
  152. package/.next/server/app/board.segments/!KGFwcCk/board/__PAGE__.segment.rsc +5 -5
  153. package/.next/server/app/board.segments/_full.segment.rsc +7 -7
  154. package/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  155. package/.next/server/app/chat.html +1 -1
  156. package/.next/server/app/chat.rsc +6 -6
  157. package/.next/server/app/chat.segments/!KGFwcCk/chat/__PAGE__.segment.rsc +5 -5
  158. package/.next/server/app/chat.segments/_full.segment.rsc +6 -6
  159. package/.next/server/app/chat.segments/_tree.segment.rsc +2 -2
  160. package/.next/server/app/docs.html +1 -1
  161. package/.next/server/app/docs.rsc +7 -7
  162. package/.next/server/app/docs.segments/!KGFwcCk/docs/__PAGE__.segment.rsc +5 -5
  163. package/.next/server/app/docs.segments/_full.segment.rsc +7 -7
  164. package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  165. package/.next/server/app/explorer.html +1 -1
  166. package/.next/server/app/explorer.rsc +7 -7
  167. package/.next/server/app/explorer.segments/!KGFwcCk/explorer/__PAGE__.segment.rsc +5 -5
  168. package/.next/server/app/explorer.segments/_full.segment.rsc +7 -7
  169. package/.next/server/app/explorer.segments/_tree.segment.rsc +2 -2
  170. package/.next/server/app/getting-started.html +1 -0
  171. package/.next/server/app/getting-started.meta +31 -0
  172. package/.next/server/app/getting-started.rsc +31 -0
  173. package/.next/server/app/getting-started.segments/!KGFwcCk/getting-started/__PAGE__.segment.rsc +32 -0
  174. package/.next/server/app/getting-started.segments/_full.segment.rsc +31 -0
  175. package/.next/server/app/getting-started.segments/_tree.segment.rsc +5 -0
  176. package/.next/server/app/graph.html +1 -1
  177. package/.next/server/app/graph.rsc +6 -6
  178. package/.next/server/app/graph.segments/!KGFwcCk/graph/__PAGE__.segment.rsc +5 -5
  179. package/.next/server/app/graph.segments/_full.segment.rsc +6 -6
  180. package/.next/server/app/graph.segments/_tree.segment.rsc +2 -2
  181. package/.next/server/app/index.html +1 -1
  182. package/.next/server/app/index.rsc +2 -2
  183. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  184. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  185. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  186. package/.next/server/app/manual-tests.html +1 -1
  187. package/.next/server/app/manual-tests.rsc +7 -7
  188. package/.next/server/app/manual-tests.segments/!KGFwcCk/manual-tests/__PAGE__.segment.rsc +5 -5
  189. package/.next/server/app/manual-tests.segments/_full.segment.rsc +7 -7
  190. package/.next/server/app/manual-tests.segments/_tree.segment.rsc +2 -2
  191. package/.next/server/app/memory.html +1 -1
  192. package/.next/server/app/memory.rsc +7 -7
  193. package/.next/server/app/memory.segments/!KGFwcCk/memory/__PAGE__.segment.rsc +5 -5
  194. package/.next/server/app/memory.segments/_full.segment.rsc +7 -7
  195. package/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
  196. package/.next/server/app/page.js.nft.json +1 -1
  197. package/.next/server/app/page_client-reference-manifest.js +1 -1
  198. package/.next/server/app/roadmap.html +1 -1
  199. package/.next/server/app/roadmap.rsc +7 -7
  200. package/.next/server/app/roadmap.segments/!KGFwcCk/roadmap/__PAGE__.segment.rsc +5 -5
  201. package/.next/server/app/roadmap.segments/_full.segment.rsc +7 -7
  202. package/.next/server/app/roadmap.segments/_tree.segment.rsc +2 -2
  203. package/.next/server/app/settings.html +1 -1
  204. package/.next/server/app/settings.rsc +6 -6
  205. package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +5 -5
  206. package/.next/server/app/settings.segments/_full.segment.rsc +6 -6
  207. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  208. package/.next/server/app/setup.html +1 -1
  209. package/.next/server/app/setup.rsc +6 -6
  210. package/.next/server/app/setup.segments/!KGFwcCk/setup/__PAGE__.segment.rsc +5 -5
  211. package/.next/server/app/setup.segments/_full.segment.rsc +6 -6
  212. package/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  213. package/.next/server/app/welcome/page/app-paths-manifest.json +3 -0
  214. package/.next/server/app/welcome/page/build-manifest.json +20 -0
  215. package/.next/server/app/welcome/page/next-font-manifest.json +11 -0
  216. package/.next/server/app/welcome/page/react-loadable-manifest.json +1 -0
  217. package/.next/server/app/welcome/page/server-reference-manifest.json +4 -0
  218. package/.next/server/app/welcome/page.js +13 -0
  219. package/.next/server/app/welcome/page.js.map +5 -0
  220. package/.next/server/app/welcome/page.js.nft.json +1 -0
  221. package/.next/server/app/welcome/page_client-reference-manifest.js +3 -0
  222. package/.next/server/app/welcome.html +1 -0
  223. package/.next/server/app/welcome.meta +26 -0
  224. package/.next/server/app/welcome.rsc +27 -0
  225. package/.next/server/app/welcome.segments/_full.segment.rsc +27 -0
  226. package/.next/server/app/welcome.segments/_tree.segment.rsc +5 -0
  227. package/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +29 -0
  228. package/.next/server/app-paths-manifest.json +3 -1
  229. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_05ck8py._.js → 11mp_@anthropic-ai_sdk_0-smxh7._.js} +1 -1
  230. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_05w8m72._.js → 11mp_@anthropic-ai_sdk_0-upxuo._.js} +1 -1
  231. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_013qeb4._.js → 11mp_@anthropic-ai_sdk_00stvd0._.js} +1 -1
  232. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_086oevc._.js → 11mp_@anthropic-ai_sdk_05tlp4j._.js} +1 -1
  233. package/.next/server/chunks/11mp_@anthropic-ai_sdk_06i1jku._.js +3 -0
  234. package/.next/server/chunks/11mp_@anthropic-ai_sdk_06pqlwo._.js +3 -0
  235. package/.next/server/chunks/11mp_@anthropic-ai_sdk_06q_bm6._.js +3 -0
  236. package/.next/server/chunks/11mp_@anthropic-ai_sdk_098dref._.js +3 -0
  237. package/.next/server/chunks/11mp_@anthropic-ai_sdk_09q07e_._.js +3 -0
  238. package/.next/server/chunks/11mp_@anthropic-ai_sdk_09r9wsn._.js +3 -0
  239. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0_rnqa6._.js +3 -0
  240. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0ch0mdl._.js +3 -0
  241. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0didq3m._.js +3 -0
  242. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0dwtv_z._.js +3 -0
  243. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0e8sqia._.js +3 -0
  244. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0gk-rze._.js +3 -0
  245. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0gywxp1._.js +3 -0
  246. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0h4l0yx._.js +3 -0
  247. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0hjmy82._.js +3 -0
  248. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0jbmnx_._.js +3 -0
  249. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0l7teck._.js +3 -0
  250. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0ldf-lc._.js +3 -0
  251. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0oe9p6l._.js +3 -0
  252. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0ppgi2h._.js +3 -0
  253. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0ydb8nm._.js +3 -0
  254. package/.next/server/chunks/11mp_@anthropic-ai_sdk_11hsr1e._.js +3 -0
  255. package/.next/server/chunks/11mp_@anthropic-ai_sdk_14pgcis._.js +3 -0
  256. package/.next/server/chunks/11mp_@anthropic-ai_sdk_15_sqq8._.js +3 -0
  257. package/.next/server/chunks/11mp_@anthropic-ai_sdk_16up-b0._.js +3 -0
  258. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_jm94w._.js +3 -0
  259. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1aswx0v._.js +3 -0
  260. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1bkea9c._.js +3 -0
  261. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1d41_6l._.js +3 -0
  262. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1d959rx._.js +3 -0
  263. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1eughke._.js +3 -0
  264. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ev29eb._.js +3 -0
  265. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1faxy2m._.js +3 -0
  266. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1lginb1._.js +3 -0
  267. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1pg6fky._.js +3 -0
  268. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1qfho5e._.js +3 -0
  269. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1r9e6jv._.js +3 -0
  270. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1tjlpeq._.js +3 -0
  271. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1wcdj4f._.js +3 -0
  272. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1x25dnb._.js +3 -0
  273. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ywjkuh._.js +3 -0
  274. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1zbnql3._.js +3 -0
  275. package/.next/server/chunks/11mp_@anthropic-ai_sdk_208gclq._.js +3 -0
  276. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_07rnikd._.js +3 -0
  277. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0cxqkzo._.js +3 -0
  278. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0iemvsj._.js +3 -0
  279. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0losy1p._.js +3 -0
  280. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0q2-o56._.js +3 -0
  281. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0v9tonm._.js +3 -0
  282. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0ve_28v._.js +3 -0
  283. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0vta7f6._.js +3 -0
  284. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0xme80s._.js +3 -0
  285. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_12tnhho._.js +3 -0
  286. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_14-nnf3._.js +3 -0
  287. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_14e0xcw._.js +3 -0
  288. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1cbywiw._.js +3 -0
  289. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1d4fc7y._.js +3 -0
  290. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1e89sld._.js +3 -0
  291. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1emt011._.js +3 -0
  292. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1jgaffx._.js +3 -0
  293. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1m9p_w8._.js +3 -0
  294. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1mtv1gy._.js +3 -0
  295. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1plmrbl._.js +3 -0
  296. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1toqkb5._.js +3 -0
  297. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1yc8ml3._.js +3 -0
  298. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1ycnogk._.js +3 -0
  299. package/.next/server/chunks/[root-of-the-server]__02ym03p._.js +3 -0
  300. package/.next/server/chunks/[root-of-the-server]__02ym03p._.js.map +1 -0
  301. package/.next/server/chunks/{[root-of-the-server]__1lxrobr._.js → [root-of-the-server]__04qfxm4._.js} +2 -2
  302. package/.next/server/chunks/{[root-of-the-server]__1lxrobr._.js.map → [root-of-the-server]__04qfxm4._.js.map} +1 -1
  303. package/.next/server/chunks/[root-of-the-server]__04t339z._.js +3 -0
  304. package/.next/server/chunks/[root-of-the-server]__04t339z._.js.map +1 -0
  305. package/.next/server/chunks/[root-of-the-server]__05b72pa._.js +3 -0
  306. package/.next/server/chunks/[root-of-the-server]__05b72pa._.js.map +1 -0
  307. package/.next/server/chunks/[root-of-the-server]__05jwgm-._.js +261 -0
  308. package/.next/server/chunks/[root-of-the-server]__05jwgm-._.js.map +1 -0
  309. package/.next/server/chunks/{[root-of-the-server]__162_l0k._.js → [root-of-the-server]__06ikdrx._.js} +2 -2
  310. package/.next/server/chunks/{[root-of-the-server]__162_l0k._.js.map → [root-of-the-server]__06ikdrx._.js.map} +1 -1
  311. package/.next/server/chunks/[root-of-the-server]__06x7kjp._.js +3 -0
  312. package/.next/server/chunks/{[root-of-the-server]__1s0t8r3._.js.map → [root-of-the-server]__06x7kjp._.js.map} +1 -1
  313. package/.next/server/chunks/[root-of-the-server]__07-qwkc._.js +3 -0
  314. package/.next/server/chunks/[root-of-the-server]__07-qwkc._.js.map +1 -0
  315. package/.next/server/chunks/[root-of-the-server]__0_j-3zy._.js +3 -0
  316. package/.next/server/chunks/{[root-of-the-server]__1r_0uma._.js.map → [root-of-the-server]__0_j-3zy._.js.map} +1 -1
  317. package/.next/server/chunks/{[root-of-the-server]__089ay-q._.js → [root-of-the-server]__0_paned._.js} +2 -2
  318. package/.next/server/chunks/[root-of-the-server]__0_paned._.js.map +1 -0
  319. package/.next/server/chunks/{[root-of-the-server]__1vzxnjb._.js → [root-of-the-server]__0adl8c2._.js} +2 -2
  320. package/.next/server/chunks/[root-of-the-server]__0be-1oe._.js +3 -0
  321. package/.next/server/chunks/[root-of-the-server]__0be-1oe._.js.map +1 -0
  322. package/.next/server/chunks/[root-of-the-server]__0c7qnhb._.js +3 -0
  323. package/.next/server/chunks/{[root-of-the-server]__0vf-0gp._.js.map → [root-of-the-server]__0c7qnhb._.js.map} +1 -1
  324. package/.next/server/chunks/[root-of-the-server]__0dfd91u._.js +3 -0
  325. package/.next/server/chunks/[root-of-the-server]__0dfd91u._.js.map +1 -0
  326. package/.next/server/chunks/[root-of-the-server]__0e_zpd3._.js +3 -0
  327. package/.next/server/chunks/{[root-of-the-server]__0pe1qih._.js.map → [root-of-the-server]__0e_zpd3._.js.map} +1 -1
  328. package/.next/server/chunks/[root-of-the-server]__0efnsph._.js +3 -0
  329. package/.next/server/chunks/[root-of-the-server]__0efnsph._.js.map +1 -0
  330. package/.next/server/chunks/{[root-of-the-server]__1mnzsbh._.js → [root-of-the-server]__0gbhsr4._.js} +2 -2
  331. package/.next/server/chunks/{[root-of-the-server]__1mnzsbh._.js.map → [root-of-the-server]__0gbhsr4._.js.map} +1 -1
  332. package/.next/server/chunks/[root-of-the-server]__0pb7dzk._.js +261 -0
  333. package/.next/server/chunks/[root-of-the-server]__0pb7dzk._.js.map +1 -0
  334. package/.next/server/chunks/[root-of-the-server]__0q-h0w3._.js +3 -0
  335. package/.next/server/chunks/[root-of-the-server]__0q-h0w3._.js.map +1 -0
  336. package/.next/server/chunks/{[root-of-the-server]__04ri_ci._.js → [root-of-the-server]__0r_831n._.js} +2 -2
  337. package/.next/server/chunks/[root-of-the-server]__0s9wedh._.js +3 -0
  338. package/.next/server/chunks/[root-of-the-server]__0s9wedh._.js.map +1 -0
  339. package/.next/server/chunks/{[root-of-the-server]__1zeys20._.js → [root-of-the-server]__0tzsbyx._.js} +2 -2
  340. package/.next/server/chunks/[root-of-the-server]__0uyhc_4._.js +3 -0
  341. package/.next/server/chunks/[root-of-the-server]__0uyhc_4._.js.map +1 -0
  342. package/.next/server/chunks/[root-of-the-server]__0z2h080._.js +3 -0
  343. package/.next/server/chunks/[root-of-the-server]__0z2h080._.js.map +1 -0
  344. package/.next/server/chunks/[root-of-the-server]__1-f1pzo._.js +3 -0
  345. package/.next/server/chunks/{[root-of-the-server]__0b6w_wb._.js.map → [root-of-the-server]__1-f1pzo._.js.map} +1 -1
  346. package/.next/server/chunks/[root-of-the-server]__120uun8._.js +3 -0
  347. package/.next/server/chunks/{[root-of-the-server]__05us508._.js.map → [root-of-the-server]__120uun8._.js.map} +1 -1
  348. package/.next/server/chunks/[root-of-the-server]__12qs29o._.js +261 -0
  349. package/.next/server/chunks/[root-of-the-server]__12qs29o._.js.map +1 -0
  350. package/.next/server/chunks/{[root-of-the-server]__1sd3l-d._.js → [root-of-the-server]__146-7zt._.js} +2 -2
  351. package/.next/server/chunks/[root-of-the-server]__146-7zt._.js.map +1 -0
  352. package/.next/server/chunks/[root-of-the-server]__17_dic_._.js +3 -0
  353. package/.next/server/chunks/[root-of-the-server]__17_dic_._.js.map +1 -0
  354. package/.next/server/chunks/[root-of-the-server]__19a04nn._.js +3 -0
  355. package/.next/server/chunks/{[root-of-the-server]__0hg1r2b._.js.map → [root-of-the-server]__19a04nn._.js.map} +1 -1
  356. package/.next/server/chunks/[root-of-the-server]__1_q8upn._.js +3 -0
  357. package/.next/server/chunks/[root-of-the-server]__1ar-16i._.js +3 -0
  358. package/.next/server/chunks/[root-of-the-server]__1ar-16i._.js.map +1 -0
  359. package/.next/server/chunks/[root-of-the-server]__1egi_4t._.js +3 -0
  360. package/.next/server/chunks/[root-of-the-server]__1egi_4t._.js.map +1 -0
  361. package/.next/server/chunks/[root-of-the-server]__1eh1p2_._.js +3 -0
  362. package/.next/server/chunks/[root-of-the-server]__1eh1p2_._.js.map +1 -0
  363. package/.next/server/chunks/[root-of-the-server]__1gwdudg._.js +3 -0
  364. package/.next/server/chunks/{[root-of-the-server]__18dt3sr._.js.map → [root-of-the-server]__1gwdudg._.js.map} +1 -1
  365. package/.next/server/chunks/[root-of-the-server]__1hz94ca._.js +3 -0
  366. package/.next/server/chunks/[root-of-the-server]__1jyx430._.js +3 -0
  367. package/.next/server/chunks/{[root-of-the-server]__1wcd2x9._.js.map → [root-of-the-server]__1jyx430._.js.map} +1 -1
  368. package/.next/server/chunks/[root-of-the-server]__1meifxd._.js +3 -0
  369. package/.next/server/chunks/[root-of-the-server]__1meifxd._.js.map +1 -0
  370. package/.next/server/chunks/[root-of-the-server]__1mn0d5e._.js +3 -0
  371. package/.next/server/chunks/[root-of-the-server]__1mn0d5e._.js.map +1 -0
  372. package/.next/server/chunks/[root-of-the-server]__1o-hldt._.js +3 -0
  373. package/.next/server/chunks/{[root-of-the-server]__1pjwaan._.js.map → [root-of-the-server]__1o-hldt._.js.map} +1 -1
  374. package/.next/server/chunks/[root-of-the-server]__1ocnzl5._.js +3 -0
  375. package/.next/server/chunks/[root-of-the-server]__1ocnzl5._.js.map +1 -0
  376. package/.next/server/chunks/{[root-of-the-server]__0n0myt9._.js → [root-of-the-server]__1pf07ha._.js} +2 -2
  377. package/.next/server/chunks/{[root-of-the-server]__0756_60._.js → [root-of-the-server]__1rtj94g._.js} +2 -2
  378. package/.next/server/chunks/{[root-of-the-server]__1ntu_6r._.js.map → [root-of-the-server]__1rtj94g._.js.map} +1 -1
  379. package/.next/server/chunks/[root-of-the-server]__1rz7a1h._.js +3 -0
  380. package/.next/server/chunks/[root-of-the-server]__1rz7a1h._.js.map +1 -0
  381. package/.next/server/chunks/[root-of-the-server]__1s7yctb._.js +3 -0
  382. package/.next/server/chunks/{[root-of-the-server]__0rggulw._.js.map → [root-of-the-server]__1s7yctb._.js.map} +1 -1
  383. package/.next/server/chunks/[root-of-the-server]__1tebaoq._.js +3 -0
  384. package/.next/server/chunks/[root-of-the-server]__1tebaoq._.js.map +1 -0
  385. package/.next/server/chunks/[root-of-the-server]__1uh0213._.js +3 -0
  386. package/.next/server/chunks/{[root-of-the-server]__1skrybv._.js.map → [root-of-the-server]__1uh0213._.js.map} +1 -1
  387. package/.next/server/chunks/[root-of-the-server]__1vj_u-e._.js +3 -0
  388. package/.next/server/chunks/{[root-of-the-server]__1p6-0l0._.js.map → [root-of-the-server]__1vj_u-e._.js.map} +1 -1
  389. package/.next/server/chunks/{[root-of-the-server]__1_qenei._.js → [root-of-the-server]__20ctbhx._.js} +2 -2
  390. package/.next/server/chunks/{[root-of-the-server]__1_qenei._.js.map → [root-of-the-server]__20ctbhx._.js.map} +1 -1
  391. package/.next/server/chunks/[root-of-the-server]__20nzp64._.js +3 -0
  392. package/.next/server/chunks/{[root-of-the-server]__0dgwykw._.js.map → [root-of-the-server]__20nzp64._.js.map} +1 -1
  393. package/.next/server/chunks/_04byth9._.js +19 -18
  394. package/.next/server/chunks/_04byth9._.js.map +1 -1
  395. package/.next/server/chunks/_0safx0g._.js +3 -3
  396. package/.next/server/chunks/_0safx0g._.js.map +1 -1
  397. package/.next/server/chunks/_1au4syj._.js +1 -1
  398. package/.next/server/chunks/_1au4syj._.js.map +1 -1
  399. package/.next/server/chunks/_1b5fqxy._.js +1 -1
  400. package/.next/server/chunks/_1b5fqxy._.js.map +1 -1
  401. package/.next/server/chunks/_1ivswa9._.js +1 -1
  402. package/.next/server/chunks/_1ivswa9._.js.map +1 -1
  403. package/.next/server/chunks/_1si7nb_._.js +2 -2
  404. package/.next/server/chunks/_1si7nb_._.js.map +1 -1
  405. package/.next/server/chunks/ssr/{0_nd_mermaid_dist_mermaid_core_mjs_0y_edkq._.js → 0_nd_mermaid_dist_mermaid_core_mjs_1trh599._.js} +2 -2
  406. package/.next/server/chunks/ssr/{1u84_katex_dist_katex_mjs_0yg8zto._.js → 1u84_katex_dist_katex_mjs_0wukkxe._.js} +1 -1
  407. package/.next/server/chunks/ssr/[root-of-the-server]__0dn-5g9._.js +3 -0
  408. package/.next/server/chunks/ssr/[root-of-the-server]__0dn-5g9._.js.map +1 -0
  409. package/.next/server/chunks/ssr/{[root-of-the-server]__08z0szh._.js → [root-of-the-server]__0p_ieww._.js} +1 -1
  410. package/.next/server/chunks/ssr/[root-of-the-server]__1_4pq0_._.js +3 -0
  411. package/.next/server/chunks/ssr/[root-of-the-server]__1_4pq0_._.js.map +1 -0
  412. package/.next/server/chunks/ssr/{[root-of-the-server]__1wdwnnp._.js → [root-of-the-server]__1ecvjg8._.js} +1 -1
  413. package/.next/server/chunks/ssr/_04xff_2._.js +1 -1
  414. package/.next/server/chunks/ssr/_04xff_2._.js.map +1 -1
  415. package/.next/server/chunks/ssr/_09qa3fe._.js +3 -0
  416. package/.next/server/chunks/ssr/_09qa3fe._.js.map +1 -0
  417. package/.next/server/chunks/ssr/_0_74-q8._.js +3 -0
  418. package/.next/server/chunks/ssr/_0_74-q8._.js.map +1 -0
  419. package/.next/server/chunks/ssr/_0cv0ugs._.js +1 -1
  420. package/.next/server/chunks/ssr/_0cv0ugs._.js.map +1 -1
  421. package/.next/server/chunks/ssr/_0hck6f0._.js +3 -0
  422. package/.next/server/chunks/ssr/_0hck6f0._.js.map +1 -0
  423. package/.next/server/chunks/ssr/_0o8t6j-._.js +1 -1
  424. package/.next/server/chunks/ssr/_0o8t6j-._.js.map +1 -1
  425. package/.next/server/chunks/ssr/_0p_5o4z._.js +23 -0
  426. package/.next/server/chunks/ssr/_0p_5o4z._.js.map +1 -0
  427. package/.next/server/chunks/ssr/_0rmo9r-._.js +1 -1
  428. package/.next/server/chunks/ssr/_0rmo9r-._.js.map +1 -1
  429. package/.next/server/chunks/ssr/_0ust7tw._.js +1 -1
  430. package/.next/server/chunks/ssr/_0ust7tw._.js.map +1 -1
  431. package/.next/server/chunks/ssr/_1c46ap6._.js +23 -0
  432. package/.next/server/chunks/ssr/_1c46ap6._.js.map +1 -0
  433. package/.next/server/chunks/ssr/_1gxjjvh._.js +1 -1
  434. package/.next/server/chunks/ssr/_1gxjjvh._.js.map +1 -1
  435. package/.next/server/chunks/ssr/_1jjs63r._.js +131 -0
  436. package/.next/server/chunks/ssr/_1jjs63r._.js.map +1 -0
  437. package/.next/server/chunks/ssr/_1kcyxnh._.js +3 -0
  438. package/.next/server/chunks/ssr/_1kcyxnh._.js.map +1 -0
  439. package/.next/server/chunks/ssr/_1lvbdeq._.js +3 -0
  440. package/.next/server/chunks/ssr/_1lvbdeq._.js.map +1 -0
  441. package/.next/server/chunks/ssr/_1rewjdw._.js +3 -0
  442. package/.next/server/chunks/ssr/_1rewjdw._.js.map +1 -0
  443. package/.next/server/chunks/ssr/_1tv---f._.js +3 -0
  444. package/.next/server/chunks/ssr/_1tv---f._.js.map +1 -0
  445. package/.next/server/chunks/ssr/_1zyvi-w._.js +3 -0
  446. package/.next/server/chunks/ssr/_1zyvi-w._.js.map +1 -0
  447. package/.next/server/chunks/ssr/_next-internal_server_app_(app)_getting-started_page_actions_18jod7i.js +3 -0
  448. package/.next/server/chunks/ssr/_next-internal_server_app_welcome_page_actions_1unjea7.js +3 -0
  449. package/.next/server/chunks/ssr/{node_modules__pnpm_03mp7qw._.js → node_modules__pnpm_0-6sq9f._.js} +2 -2
  450. package/.next/server/chunks/ssr/{node_modules__pnpm_0jampur._.js → node_modules__pnpm_0-vta96._.js} +1 -1
  451. package/.next/server/chunks/ssr/{node_modules__pnpm_00f4yhs._.js → node_modules__pnpm_04qn321._.js} +1 -1
  452. package/.next/server/chunks/ssr/{node_modules__pnpm_0tn5pg3._.js → node_modules__pnpm_06r-oci._.js} +1 -1
  453. package/.next/server/chunks/ssr/{node_modules__pnpm_0iu4132._.js → node_modules__pnpm_0fe8aya._.js} +1 -1
  454. package/.next/server/chunks/ssr/{node_modules__pnpm_0oyo3yo._.js → node_modules__pnpm_0hpufx1._.js} +2 -2
  455. package/.next/server/chunks/ssr/{node_modules__pnpm_0j_-le7._.js → node_modules__pnpm_0k5j0_5._.js} +2 -2
  456. package/.next/server/chunks/ssr/{node_modules__pnpm_0x5wj-4._.js → node_modules__pnpm_0kv8p99._.js} +2 -2
  457. package/.next/server/chunks/ssr/{node_modules__pnpm_06_8fr8._.js → node_modules__pnpm_0m-_au1._.js} +1 -1
  458. package/.next/server/chunks/ssr/{node_modules__pnpm_1zme4rg._.js → node_modules__pnpm_0mrjd3b._.js} +1 -1
  459. package/.next/server/chunks/ssr/{node_modules__pnpm_0mqeoh-._.js → node_modules__pnpm_0p2ufg5._.js} +2 -2
  460. package/.next/server/chunks/ssr/{node_modules__pnpm_03mpmzx._.js → node_modules__pnpm_0r2omyh._.js} +1 -1
  461. package/.next/server/chunks/ssr/{node_modules__pnpm_0_e05ka._.js → node_modules__pnpm_0uh9zwf._.js} +1 -1
  462. package/.next/server/chunks/ssr/{node_modules__pnpm_035haet._.js → node_modules__pnpm_0ujugl_._.js} +1 -1
  463. package/.next/server/chunks/ssr/{node_modules__pnpm_0lkvbt-._.js → node_modules__pnpm_0v-_iaj._.js} +1 -1
  464. package/.next/server/chunks/ssr/{node_modules__pnpm_0rq9x9q._.js → node_modules__pnpm_0xin4nu._.js} +2 -2
  465. package/.next/server/chunks/ssr/{node_modules__pnpm_139-v1i._.js → node_modules__pnpm_1-zfovp._.js} +1 -1
  466. package/.next/server/chunks/ssr/{node_modules__pnpm_1i_chik._.js → node_modules__pnpm_11p7w0z._.js} +1 -1
  467. package/.next/server/chunks/ssr/{node_modules__pnpm_1jgju12._.js → node_modules__pnpm_16l16l0._.js} +1 -1
  468. package/.next/server/chunks/ssr/{node_modules__pnpm_1n9oeu0._.js → node_modules__pnpm_16vl5yb._.js} +1 -1
  469. package/.next/server/chunks/ssr/{node_modules__pnpm_1ydeqw6._.js → node_modules__pnpm_1alnvos._.js} +1 -1
  470. package/.next/server/chunks/ssr/{node_modules__pnpm_03an60e._.js → node_modules__pnpm_1e_74v6._.js} +1 -1
  471. package/.next/server/chunks/ssr/{node_modules__pnpm_2045l51._.js → node_modules__pnpm_1kvkjrs._.js} +1 -1
  472. package/.next/server/chunks/ssr/{node_modules__pnpm_0zz55xq._.js → node_modules__pnpm_1l4yejo._.js} +1 -1
  473. package/.next/server/chunks/ssr/{node_modules__pnpm_1ws3ez9._.js → node_modules__pnpm_1uly489._.js} +1 -1
  474. package/.next/server/chunks/ssr/{node_modules__pnpm_1zum4yd._.js → node_modules__pnpm_1xntybk._.js} +1 -1
  475. package/.next/server/chunks/ssr/{node_modules__pnpm_09nd7ia._.js → node_modules__pnpm_20g30gl._.js} +1 -1
  476. package/.next/server/chunks/ssr/src_app_(app)_activity_page_tsx_13jd6bn._.js +1 -1
  477. package/.next/server/chunks/ssr/src_app_(app)_activity_page_tsx_13jd6bn._.js.map +1 -1
  478. package/.next/server/chunks/ssr/src_app_(app)_board_page_tsx_0gpfc77._.js +1 -1
  479. package/.next/server/chunks/ssr/src_app_(app)_board_page_tsx_0gpfc77._.js.map +1 -1
  480. package/.next/server/chunks/ssr/src_app_(app)_getting-started_page_tsx_0dgdc6p._.js +3 -0
  481. package/.next/server/chunks/ssr/src_app_(app)_getting-started_page_tsx_0dgdc6p._.js.map +1 -0
  482. package/.next/server/chunks/ssr/src_app_(app)_layout_tsx_1yu5hom._.js +1 -1
  483. package/.next/server/chunks/ssr/src_app_(app)_layout_tsx_1yu5hom._.js.map +1 -1
  484. package/.next/server/chunks/ssr/src_app_(app)_manual-tests_page_tsx_01tnunf._.js +1 -1
  485. package/.next/server/chunks/ssr/src_app_(app)_manual-tests_page_tsx_01tnunf._.js.map +1 -1
  486. package/.next/server/chunks/ssr/src_app_(app)_memory_page_tsx_19jhb1c._.js +2 -2
  487. package/.next/server/chunks/ssr/src_app_(app)_memory_page_tsx_19jhb1c._.js.map +1 -1
  488. package/.next/server/chunks/ssr/src_app_(app)_roadmap_page_tsx_0vcq3jr._.js +2 -2
  489. package/.next/server/chunks/ssr/src_app_(app)_roadmap_page_tsx_0vcq3jr._.js.map +1 -1
  490. package/.next/server/chunks/ssr/src_context_ChatContext_tsx_0lowp8p._.js +2 -2
  491. package/.next/server/chunks/ssr/src_context_ChatContext_tsx_0lowp8p._.js.map +1 -1
  492. package/.next/server/middleware-build-manifest.js +3 -3
  493. package/.next/server/next-font-manifest.js +1 -1
  494. package/.next/server/next-font-manifest.json +8 -0
  495. package/.next/server/pages/404.html +1 -1
  496. package/.next/server/pages/500.html +1 -1
  497. package/.next/server/prefetch-hints.json +33 -0
  498. package/.next/server/server-reference-manifest.js +1 -1
  499. package/.next/server/server-reference-manifest.json +1 -1
  500. package/.next/static/chunks/056pca8ms7k-9.js +1 -0
  501. package/.next/static/chunks/07hf_3iqpzmvo.css +1 -0
  502. package/.next/static/chunks/09-kkj4oxfqu1.js +1 -0
  503. package/.next/static/chunks/0fvkvef41i5ka.js +1 -0
  504. package/.next/static/chunks/0kmyxrtasrg2e.js +2107 -0
  505. package/.next/static/chunks/11plpfj6j22fq.js +3 -0
  506. package/.next/static/chunks/{3ly7b47esdb7j.js → 1on4c-091wzdq.js} +1 -1
  507. package/.next/static/chunks/22vfp8880q59s.js +1 -0
  508. package/.next/static/chunks/2kf1_d5fndxdb.js +1 -0
  509. package/.next/static/chunks/{0_8ovyz2sbr3p.js → 2m7a38m38tx5y.js} +1 -1
  510. package/.next/static/chunks/31q2_z_ekk94r.js +1 -0
  511. package/.next/static/chunks/34lxzt8ahe_9n.js +1 -0
  512. package/.next/static/chunks/3fgzdr870mbms.js +2 -0
  513. package/.next/static/chunks/3gzt07wmbrocf.js +12 -0
  514. package/.next/static/chunks/3j_ko3wq2nvby.js +1 -0
  515. package/.next/static/chunks/3l3l7u2t-n2fh.js +3 -0
  516. package/.next/static/chunks/3l4yjycfav_7a.js +1 -0
  517. package/.next/static/chunks/3s8g1yx5n4kmt.js +1 -0
  518. package/.next/static/chunks/3v8szq-k4jtkg.js +1 -0
  519. package/.next/static/chunks/3xp-i_0-8cq9_.js +1 -0
  520. package/.next/static/chunks/41mb4xnwp-aq_.js +1 -0
  521. package/README.md +7 -2
  522. package/bin/vibedoc.check.mts +25 -0
  523. package/bin/vibedoc.mjs +9 -0
  524. package/docs/getting-started.md +93 -0
  525. package/package.json +3 -1
  526. package/.next/server/chunks/0_g__next_1qpfvou._.js +0 -158
  527. package/.next/server/chunks/0_g__next_1qpfvou._.js.map +0 -1
  528. package/.next/server/chunks/11mp_@anthropic-ai_sdk_08rl0hf._.js +0 -3
  529. package/.next/server/chunks/11mp_@anthropic-ai_sdk_09ujrsu._.js +0 -3
  530. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0c3_7p7._.js +0 -3
  531. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0cto43x._.js +0 -3
  532. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0fgisb_._.js +0 -3
  533. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0fy8wd3._.js +0 -3
  534. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0fyvizf._.js +0 -3
  535. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0hg0i2g._.js +0 -3
  536. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0i0sz05._.js +0 -3
  537. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0l0j9c6._.js +0 -3
  538. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0lcm61d._.js +0 -3
  539. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0qtva5j._.js +0 -3
  540. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0r4fkdu._.js +0 -3
  541. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0wbae0t._.js +0 -3
  542. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0wxyz1t._.js +0 -3
  543. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0y2cods._.js +0 -3
  544. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0zu0fj1._.js +0 -3
  545. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0zxpgt0._.js +0 -3
  546. package/.next/server/chunks/11mp_@anthropic-ai_sdk_10_cxcd._.js +0 -3
  547. package/.next/server/chunks/11mp_@anthropic-ai_sdk_10gb7d1._.js +0 -3
  548. package/.next/server/chunks/11mp_@anthropic-ai_sdk_12q70bs._.js +0 -3
  549. package/.next/server/chunks/11mp_@anthropic-ai_sdk_149ltk3._.js +0 -3
  550. package/.next/server/chunks/11mp_@anthropic-ai_sdk_165_uiw._.js +0 -3
  551. package/.next/server/chunks/11mp_@anthropic-ai_sdk_19w4zh6._.js +0 -3
  552. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1adck-s._.js +0 -3
  553. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1c2dwoi._.js +0 -3
  554. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1d9lw_2._.js +0 -3
  555. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1db6a7p._.js +0 -3
  556. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1h2f90s._.js +0 -3
  557. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1k5_i1z._.js +0 -3
  558. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1p3mv6i._.js +0 -3
  559. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1qoom5s._.js +0 -3
  560. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1qsbcbe._.js +0 -3
  561. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1rk0x59._.js +0 -3
  562. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1sd98mi._.js +0 -3
  563. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1sumqg8._.js +0 -3
  564. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1t-rt4q._.js +0 -3
  565. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1tr-k4y._.js +0 -3
  566. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1xk3c39._.js +0 -3
  567. package/.next/server/chunks/11mp_@anthropic-ai_sdk_206l10_._.js +0 -3
  568. package/.next/server/chunks/11mp_@anthropic-ai_sdk_20giys9._.js +0 -3
  569. package/.next/server/chunks/11mp_@anthropic-ai_sdk_20xrvvy._.js +0 -3
  570. package/.next/server/chunks/11mp_@anthropic-ai_sdk_215tg00._.js +0 -3
  571. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_018s_10._.js +0 -3
  572. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_08d6i7w._.js +0 -3
  573. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_09_fd9g._.js +0 -3
  574. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0eopml6._.js +0 -3
  575. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0f5epel._.js +0 -3
  576. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0okfnhu._.js +0 -3
  577. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0s8-ha8._.js +0 -3
  578. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0ujs27r._.js +0 -3
  579. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0uo7rs8._.js +0 -3
  580. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0vyq_2d._.js +0 -3
  581. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0w3js74._.js +0 -3
  582. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0xa4-uq._.js +0 -3
  583. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_113y3so._.js +0 -3
  584. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_12qcr96._.js +0 -3
  585. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_13ixdy8._.js +0 -3
  586. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1708vst._.js +0 -3
  587. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1_rdguq._.js +0 -3
  588. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1bgpe23._.js +0 -3
  589. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1f-tphn._.js +0 -3
  590. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1h1pqdh._.js +0 -3
  591. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1hfj_1d._.js +0 -3
  592. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1ih2qzz._.js +0 -3
  593. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1jatyl1._.js +0 -3
  594. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1v1zbha._.js +0 -3
  595. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1vyqs5z._.js +0 -3
  596. package/.next/server/chunks/[root-of-the-server]__00usbi3._.js +0 -3
  597. package/.next/server/chunks/[root-of-the-server]__00usbi3._.js.map +0 -1
  598. package/.next/server/chunks/[root-of-the-server]__04cwur0._.js +0 -3
  599. package/.next/server/chunks/[root-of-the-server]__04cwur0._.js.map +0 -1
  600. package/.next/server/chunks/[root-of-the-server]__05-be3n._.js +0 -3
  601. package/.next/server/chunks/[root-of-the-server]__05us508._.js +0 -3
  602. package/.next/server/chunks/[root-of-the-server]__089ay-q._.js.map +0 -1
  603. package/.next/server/chunks/[root-of-the-server]__09oyvwa._.js +0 -3
  604. package/.next/server/chunks/[root-of-the-server]__09oyvwa._.js.map +0 -1
  605. package/.next/server/chunks/[root-of-the-server]__0b6w_wb._.js +0 -3
  606. package/.next/server/chunks/[root-of-the-server]__0d4t4q6._.js +0 -3
  607. package/.next/server/chunks/[root-of-the-server]__0d4t4q6._.js.map +0 -1
  608. package/.next/server/chunks/[root-of-the-server]__0dgwykw._.js +0 -3
  609. package/.next/server/chunks/[root-of-the-server]__0exzf-v._.js +0 -3
  610. package/.next/server/chunks/[root-of-the-server]__0exzf-v._.js.map +0 -1
  611. package/.next/server/chunks/[root-of-the-server]__0fn-a8c._.js +0 -105
  612. package/.next/server/chunks/[root-of-the-server]__0fn-a8c._.js.map +0 -1
  613. package/.next/server/chunks/[root-of-the-server]__0gnil0m._.js +0 -3
  614. package/.next/server/chunks/[root-of-the-server]__0gnil0m._.js.map +0 -1
  615. package/.next/server/chunks/[root-of-the-server]__0hg1r2b._.js +0 -3
  616. package/.next/server/chunks/[root-of-the-server]__0khz7sy._.js +0 -3
  617. package/.next/server/chunks/[root-of-the-server]__0khz7sy._.js.map +0 -1
  618. package/.next/server/chunks/[root-of-the-server]__0lf11mz._.js +0 -3
  619. package/.next/server/chunks/[root-of-the-server]__0lf11mz._.js.map +0 -1
  620. package/.next/server/chunks/[root-of-the-server]__0lix3ru._.js +0 -3
  621. package/.next/server/chunks/[root-of-the-server]__0lix3ru._.js.map +0 -1
  622. package/.next/server/chunks/[root-of-the-server]__0pe1qih._.js +0 -3
  623. package/.next/server/chunks/[root-of-the-server]__0pvi3ku._.js +0 -105
  624. package/.next/server/chunks/[root-of-the-server]__0pvi3ku._.js.map +0 -1
  625. package/.next/server/chunks/[root-of-the-server]__0rggulw._.js +0 -3
  626. package/.next/server/chunks/[root-of-the-server]__0s-j6z-._.js +0 -3
  627. package/.next/server/chunks/[root-of-the-server]__0s-j6z-._.js.map +0 -1
  628. package/.next/server/chunks/[root-of-the-server]__0s8v5i-._.js +0 -3
  629. package/.next/server/chunks/[root-of-the-server]__0s8v5i-._.js.map +0 -1
  630. package/.next/server/chunks/[root-of-the-server]__0vf-0gp._.js +0 -3
  631. package/.next/server/chunks/[root-of-the-server]__0yaxn8g._.js +0 -3
  632. package/.next/server/chunks/[root-of-the-server]__0yaxn8g._.js.map +0 -1
  633. package/.next/server/chunks/[root-of-the-server]__15c5snv._.js +0 -3
  634. package/.next/server/chunks/[root-of-the-server]__15c5snv._.js.map +0 -1
  635. package/.next/server/chunks/[root-of-the-server]__16smlkg._.js +0 -3
  636. package/.next/server/chunks/[root-of-the-server]__16smlkg._.js.map +0 -1
  637. package/.next/server/chunks/[root-of-the-server]__18dt3sr._.js +0 -3
  638. package/.next/server/chunks/[root-of-the-server]__19yo85m._.js +0 -3
  639. package/.next/server/chunks/[root-of-the-server]__19yo85m._.js.map +0 -1
  640. package/.next/server/chunks/[root-of-the-server]__1a7d63a._.js +0 -3
  641. package/.next/server/chunks/[root-of-the-server]__1a7d63a._.js.map +0 -1
  642. package/.next/server/chunks/[root-of-the-server]__1e68zmx._.js +0 -3
  643. package/.next/server/chunks/[root-of-the-server]__1e68zmx._.js.map +0 -1
  644. package/.next/server/chunks/[root-of-the-server]__1jel07j._.js +0 -3
  645. package/.next/server/chunks/[root-of-the-server]__1jel07j._.js.map +0 -1
  646. package/.next/server/chunks/[root-of-the-server]__1la-6xe._.js +0 -3
  647. package/.next/server/chunks/[root-of-the-server]__1la-6xe._.js.map +0 -1
  648. package/.next/server/chunks/[root-of-the-server]__1ntu_6r._.js +0 -3
  649. package/.next/server/chunks/[root-of-the-server]__1p4ws5z._.js +0 -3
  650. package/.next/server/chunks/[root-of-the-server]__1p4ws5z._.js.map +0 -1
  651. package/.next/server/chunks/[root-of-the-server]__1p6-0l0._.js +0 -3
  652. package/.next/server/chunks/[root-of-the-server]__1pjwaan._.js +0 -3
  653. package/.next/server/chunks/[root-of-the-server]__1r_0uma._.js +0 -3
  654. package/.next/server/chunks/[root-of-the-server]__1s0t8r3._.js +0 -3
  655. package/.next/server/chunks/[root-of-the-server]__1sd3l-d._.js.map +0 -1
  656. package/.next/server/chunks/[root-of-the-server]__1skrybv._.js +0 -3
  657. package/.next/server/chunks/[root-of-the-server]__1vnine1._.js +0 -105
  658. package/.next/server/chunks/[root-of-the-server]__1vnine1._.js.map +0 -1
  659. package/.next/server/chunks/[root-of-the-server]__1wcd2x9._.js +0 -3
  660. package/.next/server/chunks/ssr/_0-_04ia._.js +0 -3
  661. package/.next/server/chunks/ssr/_0-_04ia._.js.map +0 -1
  662. package/.next/server/chunks/ssr/_0kob2si._.js +0 -151
  663. package/.next/server/chunks/ssr/_0kob2si._.js.map +0 -1
  664. package/.next/server/chunks/ssr/_128p7pz._.js +0 -3
  665. package/.next/server/chunks/ssr/_128p7pz._.js.map +0 -1
  666. package/.next/server/chunks/ssr/_1hm7p_8._.js +0 -3
  667. package/.next/server/chunks/ssr/_1hm7p_8._.js.map +0 -1
  668. package/.next/server/chunks/ssr/_1r_t_wi._.js +0 -3
  669. package/.next/server/chunks/ssr/_1s-2jub._.js +0 -3
  670. package/.next/server/chunks/ssr/_1s-2jub._.js.map +0 -1
  671. package/.next/server/chunks/ssr/node_modules__pnpm_0zz55xq._.js.map +0 -1
  672. package/.next/static/chunks/03tzhv775qv5m.js +0 -1
  673. package/.next/static/chunks/05qw7-fs1exlt.js +0 -1
  674. package/.next/static/chunks/05rjl54wa6y43.js +0 -1
  675. package/.next/static/chunks/0eax07u1ta6tp.css +0 -1
  676. package/.next/static/chunks/0lfd3aomz4wv4.js +0 -1
  677. package/.next/static/chunks/0po8atank1p02.js +0 -12
  678. package/.next/static/chunks/11ou9nrpdg4qo.js +0 -3
  679. package/.next/static/chunks/1b9r_vdcewfu7.js +0 -1
  680. package/.next/static/chunks/1c459q7xpgq6r.js +0 -3
  681. package/.next/static/chunks/1c_8t2kecjnua.js +0 -1
  682. package/.next/static/chunks/1g7st54huk4if.js +0 -1
  683. package/.next/static/chunks/1v63qs4kxxcfh.js +0 -1
  684. package/.next/static/chunks/2-0lpccy0f8bk.js +0 -2
  685. package/.next/static/chunks/36s2k2k_w-or8.js +0 -1
  686. package/.next/static/chunks/37u2gjz5dzhep.js +0 -1
  687. package/.next/static/chunks/3ctec-7mnm19m.js +0 -1
  688. package/.next/static/chunks/40diykjra8f9n.js +0 -2107
  689. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_013qeb4._.js.map → 11mp_@anthropic-ai_sdk_0-smxh7._.js.map} +0 -0
  690. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_05ck8py._.js.map → 11mp_@anthropic-ai_sdk_0-upxuo._.js.map} +0 -0
  691. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_05w8m72._.js.map → 11mp_@anthropic-ai_sdk_00stvd0._.js.map} +0 -0
  692. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_086oevc._.js.map → 11mp_@anthropic-ai_sdk_05tlp4j._.js.map} +0 -0
  693. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_08rl0hf._.js.map → 11mp_@anthropic-ai_sdk_06i1jku._.js.map} +0 -0
  694. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_09ujrsu._.js.map → 11mp_@anthropic-ai_sdk_06pqlwo._.js.map} +0 -0
  695. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0c3_7p7._.js.map → 11mp_@anthropic-ai_sdk_06q_bm6._.js.map} +0 -0
  696. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0cto43x._.js.map → 11mp_@anthropic-ai_sdk_098dref._.js.map} +0 -0
  697. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0fgisb_._.js.map → 11mp_@anthropic-ai_sdk_09q07e_._.js.map} +0 -0
  698. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0fy8wd3._.js.map → 11mp_@anthropic-ai_sdk_09r9wsn._.js.map} +0 -0
  699. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0fyvizf._.js.map → 11mp_@anthropic-ai_sdk_0_rnqa6._.js.map} +0 -0
  700. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0hg0i2g._.js.map → 11mp_@anthropic-ai_sdk_0ch0mdl._.js.map} +0 -0
  701. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0i0sz05._.js.map → 11mp_@anthropic-ai_sdk_0didq3m._.js.map} +0 -0
  702. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0l0j9c6._.js.map → 11mp_@anthropic-ai_sdk_0dwtv_z._.js.map} +0 -0
  703. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0lcm61d._.js.map → 11mp_@anthropic-ai_sdk_0e8sqia._.js.map} +0 -0
  704. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0qtva5j._.js.map → 11mp_@anthropic-ai_sdk_0gk-rze._.js.map} +0 -0
  705. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0r4fkdu._.js.map → 11mp_@anthropic-ai_sdk_0gywxp1._.js.map} +0 -0
  706. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0wbae0t._.js.map → 11mp_@anthropic-ai_sdk_0h4l0yx._.js.map} +0 -0
  707. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0wxyz1t._.js.map → 11mp_@anthropic-ai_sdk_0hjmy82._.js.map} +0 -0
  708. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0y2cods._.js.map → 11mp_@anthropic-ai_sdk_0jbmnx_._.js.map} +0 -0
  709. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0zu0fj1._.js.map → 11mp_@anthropic-ai_sdk_0l7teck._.js.map} +0 -0
  710. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0zxpgt0._.js.map → 11mp_@anthropic-ai_sdk_0ldf-lc._.js.map} +0 -0
  711. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_10_cxcd._.js.map → 11mp_@anthropic-ai_sdk_0oe9p6l._.js.map} +0 -0
  712. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_10gb7d1._.js.map → 11mp_@anthropic-ai_sdk_0ppgi2h._.js.map} +0 -0
  713. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_12q70bs._.js.map → 11mp_@anthropic-ai_sdk_0ydb8nm._.js.map} +0 -0
  714. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_149ltk3._.js.map → 11mp_@anthropic-ai_sdk_11hsr1e._.js.map} +0 -0
  715. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_165_uiw._.js.map → 11mp_@anthropic-ai_sdk_14pgcis._.js.map} +0 -0
  716. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_19w4zh6._.js.map → 11mp_@anthropic-ai_sdk_15_sqq8._.js.map} +0 -0
  717. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1adck-s._.js.map → 11mp_@anthropic-ai_sdk_16up-b0._.js.map} +0 -0
  718. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1c2dwoi._.js.map → 11mp_@anthropic-ai_sdk_1_jm94w._.js.map} +0 -0
  719. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1d9lw_2._.js.map → 11mp_@anthropic-ai_sdk_1aswx0v._.js.map} +0 -0
  720. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1db6a7p._.js.map → 11mp_@anthropic-ai_sdk_1bkea9c._.js.map} +0 -0
  721. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1h2f90s._.js.map → 11mp_@anthropic-ai_sdk_1d41_6l._.js.map} +0 -0
  722. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1k5_i1z._.js.map → 11mp_@anthropic-ai_sdk_1d959rx._.js.map} +0 -0
  723. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1p3mv6i._.js.map → 11mp_@anthropic-ai_sdk_1eughke._.js.map} +0 -0
  724. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1qoom5s._.js.map → 11mp_@anthropic-ai_sdk_1ev29eb._.js.map} +0 -0
  725. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1qsbcbe._.js.map → 11mp_@anthropic-ai_sdk_1faxy2m._.js.map} +0 -0
  726. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1rk0x59._.js.map → 11mp_@anthropic-ai_sdk_1lginb1._.js.map} +0 -0
  727. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1sd98mi._.js.map → 11mp_@anthropic-ai_sdk_1pg6fky._.js.map} +0 -0
  728. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1sumqg8._.js.map → 11mp_@anthropic-ai_sdk_1qfho5e._.js.map} +0 -0
  729. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1t-rt4q._.js.map → 11mp_@anthropic-ai_sdk_1r9e6jv._.js.map} +0 -0
  730. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1tr-k4y._.js.map → 11mp_@anthropic-ai_sdk_1tjlpeq._.js.map} +0 -0
  731. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1xk3c39._.js.map → 11mp_@anthropic-ai_sdk_1wcdj4f._.js.map} +0 -0
  732. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_206l10_._.js.map → 11mp_@anthropic-ai_sdk_1x25dnb._.js.map} +0 -0
  733. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_20giys9._.js.map → 11mp_@anthropic-ai_sdk_1ywjkuh._.js.map} +0 -0
  734. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_20xrvvy._.js.map → 11mp_@anthropic-ai_sdk_1zbnql3._.js.map} +0 -0
  735. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_215tg00._.js.map → 11mp_@anthropic-ai_sdk_208gclq._.js.map} +0 -0
  736. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_018s_10._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_07rnikd._.js.map} +0 -0
  737. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_08d6i7w._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0cxqkzo._.js.map} +0 -0
  738. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_09_fd9g._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0iemvsj._.js.map} +0 -0
  739. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0eopml6._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0losy1p._.js.map} +0 -0
  740. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0f5epel._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0q2-o56._.js.map} +0 -0
  741. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0okfnhu._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0v9tonm._.js.map} +0 -0
  742. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0s8-ha8._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0ve_28v._.js.map} +0 -0
  743. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0ujs27r._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0vta7f6._.js.map} +0 -0
  744. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0uo7rs8._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0xme80s._.js.map} +0 -0
  745. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0vyq_2d._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_12tnhho._.js.map} +0 -0
  746. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0w3js74._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_14-nnf3._.js.map} +0 -0
  747. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0xa4-uq._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_14e0xcw._.js.map} +0 -0
  748. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_113y3so._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1cbywiw._.js.map} +0 -0
  749. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_12qcr96._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1d4fc7y._.js.map} +0 -0
  750. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_13ixdy8._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1e89sld._.js.map} +0 -0
  751. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1708vst._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1emt011._.js.map} +0 -0
  752. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1_rdguq._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1jgaffx._.js.map} +0 -0
  753. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1bgpe23._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1m9p_w8._.js.map} +0 -0
  754. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1f-tphn._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1mtv1gy._.js.map} +0 -0
  755. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1h1pqdh._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1plmrbl._.js.map} +0 -0
  756. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1hfj_1d._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1toqkb5._.js.map} +0 -0
  757. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1ih2qzz._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1yc8ml3._.js.map} +0 -0
  758. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1jatyl1._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1ycnogk._.js.map} +0 -0
  759. /package/.next/server/chunks/{[root-of-the-server]__1vzxnjb._.js.map → [root-of-the-server]__0adl8c2._.js.map} +0 -0
  760. /package/.next/server/chunks/{[root-of-the-server]__04ri_ci._.js.map → [root-of-the-server]__0r_831n._.js.map} +0 -0
  761. /package/.next/server/chunks/{[root-of-the-server]__0756_60._.js.map → [root-of-the-server]__0tzsbyx._.js.map} +0 -0
  762. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1v1zbha._.js.map → [root-of-the-server]__1_q8upn._.js.map} +0 -0
  763. /package/.next/server/chunks/{[root-of-the-server]__1zeys20._.js.map → [root-of-the-server]__1hz94ca._.js.map} +0 -0
  764. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1vyqs5z._.js.map → [root-of-the-server]__1pf07ha._.js.map} +0 -0
  765. /package/.next/server/chunks/{[root-of-the-server]__05-be3n._.js.map → ssr/0_nd_mermaid_dist_mermaid_core_mjs_1trh599._.js.map} +0 -0
  766. /package/.next/server/chunks/{[root-of-the-server]__0n0myt9._.js.map → ssr/1u84_katex_dist_katex_mjs_0wukkxe._.js.map} +0 -0
  767. /package/.next/server/chunks/ssr/{[root-of-the-server]__08z0szh._.js.map → [root-of-the-server]__0p_ieww._.js.map} +0 -0
  768. /package/.next/server/chunks/ssr/{[root-of-the-server]__1wdwnnp._.js.map → [root-of-the-server]__1ecvjg8._.js.map} +0 -0
  769. /package/.next/server/chunks/ssr/{0_nd_mermaid_dist_mermaid_core_mjs_0y_edkq._.js.map → _next-internal_server_app_(app)_getting-started_page_actions_18jod7i.js.map} +0 -0
  770. /package/.next/server/chunks/ssr/{1u84_katex_dist_katex_mjs_0yg8zto._.js.map → _next-internal_server_app_welcome_page_actions_1unjea7.js.map} +0 -0
  771. /package/.next/server/chunks/ssr/{node_modules__pnpm_03mp7qw._.js.map → node_modules__pnpm_0-6sq9f._.js.map} +0 -0
  772. /package/.next/server/chunks/ssr/{node_modules__pnpm_0jampur._.js.map → node_modules__pnpm_0-vta96._.js.map} +0 -0
  773. /package/.next/server/chunks/ssr/{_1r_t_wi._.js.map → node_modules__pnpm_04qn321._.js.map} +0 -0
  774. /package/.next/server/chunks/ssr/{node_modules__pnpm_0tn5pg3._.js.map → node_modules__pnpm_06r-oci._.js.map} +0 -0
  775. /package/.next/server/chunks/ssr/{node_modules__pnpm_0iu4132._.js.map → node_modules__pnpm_0fe8aya._.js.map} +0 -0
  776. /package/.next/server/chunks/ssr/{node_modules__pnpm_0oyo3yo._.js.map → node_modules__pnpm_0hpufx1._.js.map} +0 -0
  777. /package/.next/server/chunks/ssr/{node_modules__pnpm_00f4yhs._.js.map → node_modules__pnpm_0k5j0_5._.js.map} +0 -0
  778. /package/.next/server/chunks/ssr/{node_modules__pnpm_0x5wj-4._.js.map → node_modules__pnpm_0kv8p99._.js.map} +0 -0
  779. /package/.next/server/chunks/ssr/{node_modules__pnpm_06_8fr8._.js.map → node_modules__pnpm_0m-_au1._.js.map} +0 -0
  780. /package/.next/server/chunks/ssr/{node_modules__pnpm_1zme4rg._.js.map → node_modules__pnpm_0mrjd3b._.js.map} +0 -0
  781. /package/.next/server/chunks/ssr/{node_modules__pnpm_0mqeoh-._.js.map → node_modules__pnpm_0p2ufg5._.js.map} +0 -0
  782. /package/.next/server/chunks/ssr/{node_modules__pnpm_03mpmzx._.js.map → node_modules__pnpm_0r2omyh._.js.map} +0 -0
  783. /package/.next/server/chunks/ssr/{node_modules__pnpm_0_e05ka._.js.map → node_modules__pnpm_0uh9zwf._.js.map} +0 -0
  784. /package/.next/server/chunks/ssr/{node_modules__pnpm_035haet._.js.map → node_modules__pnpm_0ujugl_._.js.map} +0 -0
  785. /package/.next/server/chunks/ssr/{node_modules__pnpm_0lkvbt-._.js.map → node_modules__pnpm_0v-_iaj._.js.map} +0 -0
  786. /package/.next/server/chunks/ssr/{node_modules__pnpm_0rq9x9q._.js.map → node_modules__pnpm_0xin4nu._.js.map} +0 -0
  787. /package/.next/server/chunks/ssr/{node_modules__pnpm_139-v1i._.js.map → node_modules__pnpm_1-zfovp._.js.map} +0 -0
  788. /package/.next/server/chunks/ssr/{node_modules__pnpm_1i_chik._.js.map → node_modules__pnpm_11p7w0z._.js.map} +0 -0
  789. /package/.next/server/chunks/ssr/{node_modules__pnpm_1jgju12._.js.map → node_modules__pnpm_16l16l0._.js.map} +0 -0
  790. /package/.next/server/chunks/ssr/{node_modules__pnpm_1n9oeu0._.js.map → node_modules__pnpm_16vl5yb._.js.map} +0 -0
  791. /package/.next/server/chunks/ssr/{node_modules__pnpm_1ydeqw6._.js.map → node_modules__pnpm_1alnvos._.js.map} +0 -0
  792. /package/.next/server/chunks/ssr/{node_modules__pnpm_03an60e._.js.map → node_modules__pnpm_1e_74v6._.js.map} +0 -0
  793. /package/.next/server/chunks/ssr/{node_modules__pnpm_2045l51._.js.map → node_modules__pnpm_1kvkjrs._.js.map} +0 -0
  794. /package/.next/server/chunks/ssr/{node_modules__pnpm_0j_-le7._.js.map → node_modules__pnpm_1l4yejo._.js.map} +0 -0
  795. /package/.next/server/chunks/ssr/{node_modules__pnpm_1ws3ez9._.js.map → node_modules__pnpm_1uly489._.js.map} +0 -0
  796. /package/.next/server/chunks/ssr/{node_modules__pnpm_1zum4yd._.js.map → node_modules__pnpm_1xntybk._.js.map} +0 -0
  797. /package/.next/server/chunks/ssr/{node_modules__pnpm_09nd7ia._.js.map → node_modules__pnpm_20g30gl._.js.map} +0 -0
  798. /package/.next/static/{P1gxTEpKVh-OOtIXC432U → BQD2S1kA-_gIYFyMKyJ2F}/_buildManifest.js +0 -0
  799. /package/.next/static/{P1gxTEpKVh-OOtIXC432U → BQD2S1kA-_gIYFyMKyJ2F}/_clientMiddlewareManifest.js +0 -0
  800. /package/.next/static/{P1gxTEpKVh-OOtIXC432U → BQD2S1kA-_gIYFyMKyJ2F}/_ssgManifest.js +0 -0
@@ -1,5 +1,5 @@
1
- module.exports=[690793,a=>{"use strict";var b=a.i(662145),c=a.i(174897),d=a.i(365465),e=a.i(152716),f=a.i(340933),g=a.i(795667),h=a.i(926128),i=a.i(256857);let j={name:"layout-grid",size:24,node:[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]};j.node;let k=(0,i.default)(j);var l=a.i(553415),m=a.i(200382),n=a.i(551729),o=a.i(913975),p=a.i(544394),q=a.i(21215),r=a.i(699570);let s=a=>"done"===a||"cancelled"===a;function t(a,b){let c=new Map(b.map(a=>[a.id,a])),d=a.tasks.map(a=>c.get(a)).filter(a=>!!a),e=a=>[...new Set((a.dependsOn.match(/\bT\d+\b/gi)??[]).map(a=>a.toUpperCase()))].filter(a=>{let b=c.get(a);return!b||!s(b.status)});for(let a of d)if("todo"===a.status&&!e(a).length)return{kind:"ready",taskId:a.id};if(d.every(a=>s(a.status)))return{kind:"finished"};let f=new Set(a.tasks),g=new Map,h=a=>{if(g.has(a))return g.get(a)??!1;g.set(a,!1);let b=c.get(a),d=!!b&&"blocked"!==b.status&&"paused"!==b.status&&"review"!==b.status&&("todo"!==b.status||f.has(a)&&e(b).every(h));return g.set(a,d),d},i=[];for(let b of a.tasks){let a=c.get(b);if(a){if("in-progress"===a.status)i.push({taskId:b,reason:`${b} is in progress (claimed)`});else if("blocked"===a.status)i.push({taskId:b,reason:`${b} is blocked`});else if("paused"===a.status)i.push({taskId:b,reason:`${b} is paused — needs a human to resume it`});else if("review"===a.status)i.push({taskId:b,reason:`${b} in review — needs a human`});else if("todo"===a.status){let d=e(a).map(a=>`${a} (${c.get(a)?.status??"missing"})`);i.push({taskId:b,reason:`${b} waits on ${d.join(", ")}`})}}else i.push({taskId:b,reason:`${b} has no task file`})}return{kind:"waiting",waiting:i,needsHuman:i.every(a=>!h(a.taskId))}}var u=a.i(452696),v=a.i(368114),w=a.i(525395),x=a.i(618940),y=a.i(815122),z=a.i(581040);function A({items:a,today:d,onSelect:e,onItemContextMenu:f,progressById:g}){let h=new Map(a.filter(a=>null===a.parent).sort((a,b)=>a.order-b.order).map((a,b)=>[a.id,b+1])),i=(0,c.useMemo)(()=>(0,z.buildTimeline)(a,d),[a,d]),j=(0,c.useRef)(null);(0,c.useEffect)(()=>{let a=j.current;a&&(a.scrollLeft=Math.max(0,i.todayX-(a.clientWidth-200)/3))},[i.todayX]);let k=i.lanes.some(a=>a.markers.length>0);return(0,b.jsxs)("div",{className:"flex flex-1 min-h-0 flex-col",children:[(0,b.jsx)("div",{ref:j,className:"relative flex-1 min-h-0 overflow-auto",children:(0,b.jsxs)("div",{className:"relative",style:{width:200+i.width,minHeight:"100%"},children:[(0,b.jsxs)("div",{className:"pointer-events-none absolute inset-y-0",style:{left:200,width:i.width},children:[i.months.map(a=>(0,b.jsx)("div",{className:"absolute inset-y-0 border-l border-border",style:{left:a.x}},a.x)),(0,b.jsx)("div",{className:"absolute inset-y-0 left-0 bg-surface/50",style:{width:i.todayX}}),(0,b.jsx)("div",{className:"absolute inset-y-0 w-px bg-accent shadow-[0_0_12px_rgb(var(--rgb-accent)/0.8)]",style:{left:i.todayX},children:(0,b.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,b.jsxs)("div",{className:"sticky top-0 z-20 flex border-b border-border bg-bg",style:{height:36},children:[(0,b.jsx)("div",{className:"sticky left-0 z-10 shrink-0 bg-bg",style:{width:200}}),(0,b.jsx)("div",{className:"relative",children:i.months.map(a=>(0,b.jsx)("span",{className:"absolute top-3 whitespace-nowrap pl-2 font-mono text-[10px] uppercase tracking-widest text-muted",style:{left:a.x},children:a.label},a.x))})]}),i.lanes.map(a=>(0,b.jsxs)("div",{className:"relative flex border-b border-border",children:[(0,b.jsx)(B,{item:a.item,chapter:h.get(a.item.id),progress:g[a.item.id],onSelect:e,onContextMenu:f}),(0,b.jsx)("div",{className:"relative",style:{width:i.width,height:a.rows*z.LANE_ROW_H+12},children:a.markers.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>e(a.item.id),onContextMenu:b=>f?.(a.item.id,b),title:`${a.item.id} \xb7 ${a.item.title} \xb7 due ${a.item.due}${"overdue"===a.state?" (overdue)":""}`,className:"group absolute flex items-center gap-1.5",style:{left:a.x-10,top:6+a.row*z.LANE_ROW_H},children:[a.horizon?(0,b.jsx)("span",{className:(0,v.cn)("h-4 w-4 rotate-45 border-2 border-accent","done"===a.item.status?"bg-accent":"bg-bg","overdue"===a.state&&"border-danger")}):(0,b.jsx)("span",{className:(0,v.cn)("rounded-full","overdue"===a.state&&"ring-2 ring-danger ring-offset-1 ring-offset-bg"),children:(0,b.jsx)(x.StatusDot,{status:a.item.status})}),(0,b.jsxs)("span",{className:(0,v.cn)("flex max-w-[150px] flex-col rounded-md border px-2 py-0.5 text-left transition-colors","in-progress"===a.item.status?"border-accent/50 bg-surface shadow-[0_6px_18px_-10px_rgb(var(--rgb-accent)/0.7)]":"done"===a.item.status?"border-border bg-surface/60":"border-dashed border-border2 bg-bg","group-hover:border-accent"),children:[(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[(0,b.jsx)("span",{className:(0,v.cn)("truncate text-xs","done"===a.item.status?"text-muted":"text-txt",a.horizon&&"font-semibold"),children:a.item.title}),(0,b.jsx)(y.AgentDot,{attach:{kind:"epic",id:a.item.id}})]}),(0,b.jsx)("span",{className:(0,v.cn)("font-mono text-[10px]","overdue"===a.state?"text-danger":"soon"===a.state?"text-amber":"text-muted"),children:(0,z.formatDay)(a.item.due)})]})]},a.item.id))})]},a.item.id)),!k&&(0,b.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."})]})}),i.undated.length>0&&(0,b.jsxs)("div",{className:"max-h-28 shrink-0 overflow-y-auto border-t border-border bg-surface px-4 py-2",children:[(0,b.jsxs)("p",{className:"mb-2 font-mono text-[10px] uppercase tracking-widest text-muted",children:["No due date · ",i.undated.length]}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:i.undated.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>e(a.id),onContextMenu:b=>f?.(a.id,b),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,b.jsx)(x.StatusDot,{status:a.status}),a.title,(0,b.jsx)(y.AgentDot,{attach:{kind:"epic",id:a.id}})]},a.id))})]})]})}function B({item:a,chapter:c,progress:d,onSelect:e,onContextMenu:f}){return(0,b.jsxs)("button",{type:"button",onClick:()=>e(a.id),onContextMenu:b=>f?.(a.id,b),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,b.jsx)("span",{className:(0,v.cn)("font-mono text-lg font-semibold tabular-nums","in-progress"===a.status?"text-accent":"done"===a.status?"text-teal":"text-muted"),children:c?String(c).padStart(2,"0"):"··"}),(0,b.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[(0,b.jsx)("span",{className:"line-clamp-2 text-[11px] font-semibold uppercase leading-snug tracking-wider text-txt",children:a.title}),d&&(0,b.jsx)("span",{className:"h-1 overflow-hidden rounded-full bg-border",children:(0,b.jsx)("span",{className:"block h-full rounded-full bg-teal",style:{width:`${d.done/d.total*100}%`}})})]})]})}var C=a.i(453161),D=a.i(658978),E=a.i(156298),F=a.i(388637),G=a.i(717371);let H={name:"layers",size:24,node:[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]],aliases:["layers-3"]};H.node;let I=(0,i.default)(H);var J=a.i(340753),K=a.i(441852),L=a.i(661661),M=a.i(892678),N=a.i(757061),O=a.i(866718),P=a.i(149350),Q=a.i(107742),R=a.i(685698),S=a.i(60084),T=a.i(717143),U=a.i(763747),V=a.i(28386),W=a.i(335732),X=a.i(890728);let Y=["planned","in-progress","paused","done"];function Z({item:a,items:c,actions:d}){let e=null===a.parent,f=c.filter(b=>null===b.parent&&b.id!==a.parent).sort((a,b)=>a.order-b.order),g=c.filter(b=>b.parent===a.id).length;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(W.DropdownMenuItem,{onSelect:()=>d.edit(a.id),children:[(0,b.jsx)(L.Pencil,{})," Edit",(0,b.jsx)(W.DropdownMenuShortcut,{children:(0,X.itemKeyLabel)("edit")})]}),(0,b.jsxs)(W.DropdownMenuSub,{children:[(0,b.jsxs)(W.DropdownMenuSubTrigger,{children:[(0,b.jsx)(x.StatusDot,{status:a.status})," Status",(0,b.jsx)(W.DropdownMenuShortcut,{children:(0,X.itemKeyLabel)("status")})]}),(0,b.jsx)(W.DropdownMenuSubContent,{children:Y.map(c=>(0,b.jsxs)(W.DropdownMenuItem,{disabled:c===a.status,onSelect:()=>d.setStatus(a.id,c),children:[(0,b.jsx)(x.StatusDot,{status:c})," ",x.STATUS_LABEL[c]]},c))})]}),!e&&f.length>0&&(0,b.jsxs)(W.DropdownMenuSub,{children:[(0,b.jsxs)(W.DropdownMenuSubTrigger,{children:[(0,b.jsx)(T.FolderInput,{})," Move to horizon"]}),(0,b.jsx)(W.DropdownMenuSubContent,{className:"max-h-72 overflow-y-auto",children:f.map(c=>(0,b.jsxs)(W.DropdownMenuItem,{onSelect:()=>d.move(a.id,c.id),children:[(0,b.jsx)("span",{className:"font-mono text-[11px] text-muted",children:c.id})," ",c.title]},c.id))})]}),e&&(0,b.jsxs)(W.DropdownMenuItem,{onSelect:()=>d.addEpic(a.id),children:[(0,b.jsx)(m.Plus,{})," Add epic"]}),(0,b.jsxs)(W.DropdownMenuItem,{onSelect:()=>d.duplicate(a.id),children:[(0,b.jsx)(S.Copy,{})," Duplicate",(0,b.jsx)(W.DropdownMenuShortcut,{children:(0,X.itemKeyLabel)("duplicate")})]}),(0,b.jsx)(W.DropdownMenuSeparator,{}),!e&&(0,b.jsxs)(W.DropdownMenuItem,{onSelect:()=>d.chat(a.id),children:[(0,b.jsx)(K.MessageSquare,{})," Chat about it",(0,b.jsx)(W.DropdownMenuShortcut,{children:(0,X.itemKeyLabel)("chat")})]}),(0,b.jsxs)(W.DropdownMenuItem,{onSelect:()=>d.openFile(a.file),children:[(0,b.jsx)(h.FileText,{})," Open file"]}),(0,b.jsx)(W.DropdownMenuSeparator,{}),g>0?(0,b.jsxs)(W.DropdownMenuItem,{disabled:!0,className:"flex-col items-start gap-0",children:[(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsx)(V.Trash2,{})," Delete"]}),(0,b.jsxs)("span",{className:"pl-6 text-[11px]",children:["Move or delete its ",g," epic",1===g?"":"s"," first"]})]}):(0,b.jsxs)(W.DropdownMenuItem,{onSelect:()=>d.remove(a.id),className:"text-danger focus:text-danger",children:[(0,b.jsx)(V.Trash2,{})," Delete",(0,b.jsx)(W.DropdownMenuShortcut,{children:(0,X.itemKeyLabel)("remove")})]})]})}function $({item:a,items:c,actions:d,className:e,open:f,onOpenChange:g}){return(0,b.jsxs)(W.DropdownMenu,{open:f,onOpenChange:g,children:[(0,b.jsx)(W.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button","aria-label":`Actions for ${a.id}`,className:(0,v.cn)("grid size-7 place-items-center rounded-md text-muted hover:bg-surface2 hover:text-txt",e),children:(0,b.jsx)(U.MoreHorizontal,{className:"size-4"})})}),(0,b.jsx)(W.DropdownMenuContent,{align:"end",className:"w-52",children:(0,b.jsx)(Z,{item:a,items:c,actions:d})})]})}function _({at:a,items:c,actions:d,onClose:e}){let f=a&&c.find(b=>b.id===a.id);return a&&f?(0,b.jsxs)(W.DropdownMenu,{open:!0,onOpenChange:a=>{a||e()},children:[(0,b.jsx)(W.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsx)("span",{"aria-hidden":!0,className:"pointer-events-none fixed size-0",style:{left:a.x,top:a.y}})}),(0,b.jsx)(W.DropdownMenuContent,{align:"start",className:"w-52",children:(0,b.jsx)(Z,{item:f,items:c,actions:d})})]},`${a.id}:${a.x}:${a.y}`):null}var aa=a.i(813722),ab=a.i(192698),ac=a.i(787714),ad=a.i(891397),ae=a.i(269769);let af=["planned","in-progress","paused","done"],ag="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",ah="text-xs font-medium text-muted",ai="font-mono text-[10px] uppercase tracking-widest text-muted";function aj({item:a,onClose:c,...d}){return(0,b.jsx)(N.Sheet,{open:!!a,onOpenChange:a=>{a||c()},children:(0,b.jsx)(N.SheetContent,{className:"w-full sm:w-[480px] sm:max-w-[480px] gap-0 bg-surface border-border text-txt flex flex-col overflow-y-auto p-0",children:a&&(0,b.jsx)(ak,{item:a,onClose:c,...d},a.id)})})}function ak(a){return a.editing?(0,b.jsx)(am,{...a,onCancel:()=>a.onEditingChange(!1)}):(0,b.jsx)(al,{...a,onEdit:()=>a.onEditingChange(!0)})}function al({item:a,items:d,onClose:e,onAddFeature:f,onEditRaw:i,onSelect:j,tasksById:k,progressById:l,onEdit:n,actions:o,onSave:p}){let q=null===a.parent,s=d.find(b=>b.id===a.parent),t=d.filter(b=>b.parent===a.id).sort((a,b)=>a.order-b.order),z=l[a.id],A=(0,u.localToday)(),{chats:B,showAbout:C}=(0,R.useChats)(),H=q?void 0:(0,Q.chatFor)(B,{kind:"epic",id:a.id}),O=!q&&0===a.tasks.length&&!H,[S,T]=(0,c.useState)(!1),U=b=>{p(a.id,b).then(a=>{a&&(0,ae.toast)(a)})};return(0,X.useItemCommands)(`${a.id} \xb7 ${a.title}`,[{action:"edit",label:"Edit",run:n},{action:"status",label:"Change status…",run:()=>T(!0)},{action:"duplicate",label:"Duplicate",run:()=>o.duplicate(a.id)},...q?[]:[{action:"chat",label:"Chat about it",run:()=>o.chat(a.id)}],...t.length?[]:[{action:"remove",label:"Delete",run:()=>o.remove(a.id)}]]),(0,b.jsxs)("div",{className:"flex min-h-full flex-col",children:[(0,b.jsx)(ab.ItemPanelHeader,{className:(0,v.cn)("px-6","in-progress"===a.status&&"bg-[linear-gradient(180deg,rgb(var(--rgb-accent)/0.08),transparent)]"),kicker:(0,b.jsx)(N.SheetDescription,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-1",children:[s&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{type:"button",onClick:()=>j(s.id),className:"truncate hover:text-txt",children:s.title}),(0,b.jsx)(E.ChevronRight,{className:"h-3 w-3 shrink-0"})]}),(0,b.jsxs)("span",{className:"shrink-0",children:[a.id," · ",q?"horizon":"epic"]}),(0,b.jsx)(y.AgentMark,{attach:{kind:"epic",id:a.id}})]})}),title:(0,b.jsx)(N.SheetTitle,{className:"text-xl font-semibold leading-tight text-txt",children:a.title}),menu:(0,b.jsx)($,{item:a,items:d,actions:o,open:S,onOpenChange:T}),properties:[{label:"Status",icon:F.CircleDashed,value:(0,b.jsx)(ac.InlineSelect,{label:`Status of ${a.id}`,value:a.status,onChange:b=>o.setStatus(a.id,b),options:af.map(a=>({value:a,label:x.STATUS_LABEL[a],node:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(x.StatusDot,{status:a}),x.STATUS_LABEL[a]]})})),children:(0,b.jsx)(x.StatusPill,{status:a.status})})},{label:"Priority",icon:G.Flag,value:(0,b.jsx)(ad.PriorityField,{label:`Priority of ${a.id}`,value:a.priority??null,onChange:a=>U({priority:a})})},{label:"Owner",icon:M.User,value:(0,b.jsx)(ac.InlineSelect,{label:`Owner of ${a.id}`,value:a.owner??"",onChange:a=>U({owner:a||null}),options:[{value:"human",label:"Human",node:(0,b.jsx)(aa.OwnerChip,{owner:"human",className:"text-xs"})},...[...new Set(["ai:claude",...a.owner?.startsWith("ai:")?[a.owner]:[]])].map(a=>({value:a,label:a,node:(0,b.jsx)(aa.OwnerChip,{owner:a,className:"text-xs"})})),{value:"",label:"No owner",node:(0,b.jsx)("span",{className:"text-muted",children:"No owner"})}],children:a.owner?(0,b.jsx)(aa.OwnerChip,{owner:a.owner,className:"text-xs"}):(0,b.jsx)("span",{className:"text-muted",children:"—"})})},{label:"Due",icon:D.Calendar,value:(0,b.jsx)(ac.InlineDate,{label:`Due date of ${a.id}`,value:a.due,onChange:a=>U({due:a}),children:a.due?(0,b.jsx)(x.DueChip,{due:a.due,state:(0,u.dueState)(a.due,a.status,A)}):(0,b.jsx)("span",{className:"text-muted",children:"—"})})},{label:q?"Epics":"Tasks",icon:q?I:J.ListChecks,value:(0,b.jsx)("span",{className:"font-mono",children:q?t.length:a.tasks.length})}],children:z&&(0,b.jsxs)("div",{className:"mt-2 flex items-end gap-4",children:[(0,b.jsxs)("p",{className:"font-mono text-3xl font-semibold leading-none tabular-nums text-txt",children:[Math.round(z.done/z.total*100),(0,b.jsx)("span",{className:"text-base text-muted",children:"%"})]}),(0,b.jsxs)("div",{className:"flex-1 pb-1",children:[(0,b.jsxs)("p",{className:"mb-1.5 font-mono text-[10px] text-muted",children:[z.done," of ",z.total,q?"":" tasks"," done"]}),q?(0,b.jsx)("div",{className:"h-1.5 overflow-hidden rounded-full bg-border",children:(0,b.jsx)("div",{className:"h-full rounded-full bg-teal",style:{width:`${z.done/z.total*100}%`}})}):(0,b.jsx)(x.SegmentedProgress,{statuses:a.tasks.map(a=>k[a]?.status).filter(a=>!!a&&"cancelled"!==a)})]})]})}),(0,b.jsxs)("div",{className:"flex flex-1 flex-col gap-6 px-6 py-5",children:[!q&&a.tasks.length>0&&(0,b.jsx)(an,{item:a,tasksById:k,onOpen:i}),q&&(0,b.jsxs)("section",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("p",{className:ai,children:["Epics · ",t.length]}),0===t.length&&(0,b.jsx)("p",{className:"text-sm text-muted",children:"No epics yet."}),(0,b.jsx)("ul",{className:"-mx-2 flex flex-col",children:t.map(a=>{let c=l[a.id];return(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>j(a.id),className:"flex w-full items-center gap-3 rounded-md px-2 py-2 text-left hover:bg-surface2",children:[(0,b.jsx)(x.StatusDot,{status:a.status}),(0,b.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted",children:a.id}),(0,b.jsx)("span",{className:(0,v.cn)("min-w-0 flex-1 truncate text-sm","done"===a.status?"text-muted":"text-txt"),children:a.title}),c&&(0,b.jsxs)("span",{className:"shrink-0 font-mono text-[10px] text-muted",children:[c.done,"/",c.total]})]})},a.id)})})]}),(0,b.jsxs)("section",{className:"flex flex-col gap-2",children:[(0,b.jsx)("p",{className:ai,children:"Brief"}),a.body.trim()?(0,b.jsx)(P.MarkdownRenderer,{content:a.body,className:"text-sm"}):(0,b.jsx)("p",{className:"text-sm text-muted",children:"No description. Edit to add the outcome, scope and “done when”."})]})]}),(0,b.jsxs)("footer",{className:"sticky bottom-0 flex flex-wrap items-center gap-2 border-t border-border bg-surface px-6 py-3",children:[O&&(0,b.jsxs)(r.Button,{size:"sm",onClick:()=>{e(),(0,w.askAgent)(`Break down epic ${a.id} into tasks.`)},className:"bg-accent text-accent-fg hover:bg-accent/90",children:[(0,b.jsx)(g.Bot,{})," Break down with agent"]}),!q&&(0,b.jsxs)(r.Button,{size:"sm",variant:O?"outline":"default",onClick:()=>{e(),C({kind:"epic",id:a.id})},className:(0,v.cn)(!O&&"bg-accent text-accent-fg hover:bg-accent/90"),children:[(0,b.jsx)(K.MessageSquare,{})," ",H?"Open chat":"Chat"]}),q&&(0,b.jsxs)(r.Button,{size:"sm",onClick:()=>f(a.id),className:"bg-accent text-accent-fg hover:bg-accent/90",children:[(0,b.jsx)(m.Plus,{})," Add epic"]}),(0,b.jsxs)(r.Button,{size:"sm",variant:"outline",onClick:n,children:[(0,b.jsx)(L.Pencil,{})," Edit"]}),(0,b.jsxs)(r.Button,{size:"sm",variant:"ghost",onClick:()=>i(a.file),className:"ml-auto text-muted hover:text-txt",children:[(0,b.jsx)(h.FileText,{})," Open file"]})]})]})}function am({item:a,items:d,onClose:e,onSave:f,onDelete:g,onCancel:h}){let[i]=(0,c.useState)(a),[j,k]=(0,c.useState)(a.title),[l,m]=(0,c.useState)(a.status),[n,o]=(0,c.useState)(a.parent??""),[p,q]=(0,c.useState)(String(a.order)),[s,t]=(0,c.useState)(a.tasks.join(", ")),[u,v]=(0,c.useState)(a.due??""),[w,x]=(0,c.useState)(a.body),[y,z]=(0,c.useState)(null),[A,B]=(0,c.useState)(!1),C=d.some(b=>b.parent===a.id),D=d.filter(b=>null===b.parent&&b.id!==a.id),E=null===a.parent,F=null!==a.parent&&!D.some(b=>b.id===a.parent);async function G(a){B(!0),z(null);let b=await a();return B(!1),b&&z(b),!b}async function H(){let b={},c=j.trim()||i.title;if(c!==i.title&&(b.title=c),l!==i.status&&(b.status=l),(n||null)!==i.parent&&(b.parent=n||null),p.trim()!==String(i.order)){let a=Number(p);if(""===p.trim()||!Number.isFinite(a))return void z("Order must be a number");b.order=a}let d=s.split(",").map(a=>a.trim()).filter(Boolean);(d.join(",")!==i.tasks.join(",")&&(b.tasks=d),(u||null)!==i.due&&(b.due=u||null),w!==i.body&&(b.body=w),0===Object.keys(b).length)?h():await G(()=>f(a.id,b))&&e()}async function I(){await G(()=>g(a.id))&&e()}return(0,b.jsxs)("div",{className:"flex min-h-full flex-col",children:[(0,b.jsxs)("div",{className:"border-b border-border px-6 pb-4 pt-6 pr-12",children:[(0,b.jsxs)(N.SheetDescription,{className:"font-mono text-[11px] text-muted",children:["Editing ",a.id," · ",E?"horizon":"epic"]}),(0,b.jsx)(N.SheetTitle,{className:"mt-1 text-base text-txt",children:a.title})]}),(0,b.jsxs)("div",{className:"flex flex-1 flex-col gap-4 px-6 py-5",children:[(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:ah,children:"Title"}),(0,b.jsx)(O.Input,{value:j,onChange:a=>k(a.target.value),className:"bg-bg border-border text-txt"})]}),(0,b.jsxs)("div",{className:"grid grid-cols-3 gap-3",children:[(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:ah,children:"Status"}),(0,b.jsx)("select",{value:l,onChange:a=>m(a.target.value),className:ag,children:af.map(a=>(0,b.jsx)("option",{value:a,children:a},a))})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:ah,children:"Parent"}),(0,b.jsxs)("select",{value:n,onChange:a=>o(a.target.value),disabled:C,title:C?"Items with children must stay on the spine":void 0,className:ag,children:[(0,b.jsx)("option",{value:"",children:"— (horizon)"}),F&&(0,b.jsxs)("option",{value:a.parent??"",children:[a.parent," · missing"]}),D.map(a=>(0,b.jsxs)("option",{value:a.id,children:[a.id," · ",a.title]},a.id))]})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:ah,children:"Order"}),(0,b.jsx)(O.Input,{type:"number",step:10,value:p,onChange:a=>q(a.target.value),title:E?"Position on the spine":"Position within the branch",className:"bg-bg border-border text-txt"})]})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:ah,children:"Due"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(O.Input,{type:"date",value:u,onChange:a=>v(a.target.value),className:"bg-bg border-border text-txt scheme-light dark:scheme-dark"}),u&&(0,b.jsx)("button",{type:"button",onClick:()=>v(""),className:"text-xs text-muted hover:text-txt",children:"Clear"})]})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:ah,children:"Tasks"}),(0,b.jsx)(O.Input,{value:s,onChange:a=>t(a.target.value),placeholder:"T001, T012",className:"bg-bg border-border text-txt font-mono"})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:ah,children:"Body (markdown)"}),(0,b.jsx)("textarea",{value:w,onChange:a=>x(a.target.value),rows:12,className:`${ag} font-mono resize-y`})]}),y&&(0,b.jsx)("p",{className:"text-xs text-danger",children:y})]}),(0,b.jsxs)("footer",{className:"sticky bottom-0 flex items-center gap-2 border-t border-border bg-surface px-6 py-3",children:[(0,b.jsx)(r.Button,{size:"sm",onClick:H,disabled:A,className:"bg-accent text-accent-fg hover:bg-accent/90",children:"Save"}),(0,b.jsx)(r.Button,{size:"sm",variant:"ghost",onClick:h,disabled:A,className:"text-txt",children:"Cancel"}),(0,b.jsx)(r.Button,{size:"sm",variant:"ghost",onClick:I,disabled:A,className:"ml-auto text-danger hover:text-danger",children:"Delete"})]})]})}function an({item:a,tasksById:c,onOpen:d}){let e=(0,u.localToday)(),f=t(a,Object.values(c)),g="ready"===f.kind?f.taskId:null,h="waiting"===f.kind?[...f.waiting].sort((a,b)=>Number(c[b.taskId]?.status==="todo")-Number(c[a.taskId]?.status==="todo")).map(a=>a.reason):[];return(0,b.jsxs)("section",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("p",{className:ai,children:["Tasks · ",a.tasks.length]}),(0,b.jsx)("ul",{className:"-mx-2 flex flex-col",children:a.tasks.map(a=>{let f=c[a];if(!f)return(0,b.jsxs)("li",{className:"px-2 py-2 font-mono text-xs text-danger",children:[a," · missing task file"]},a);let h=f.id===g;return(0,b.jsxs)("li",{className:(0,v.cn)("group flex items-center rounded-md hover:bg-surface2",h&&"bg-accent/10 hover:bg-accent/15"),children:[(0,b.jsxs)("button",{type:"button",onClick:()=>d(f.file),className:"flex min-w-0 flex-1 items-center gap-3 px-2 py-2 text-left",children:[(0,b.jsx)("span",{title:f.status,className:(0,v.cn)("h-2 w-2 shrink-0 rounded-full",x.TASK_STATUS_BG[f.status])}),(0,b.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted",children:f.id}),(0,b.jsx)("span",{className:(0,v.cn)("min-w-0 flex-1 truncate text-sm","cancelled"===f.status?"text-muted line-through":"done"===f.status?"text-muted":"text-txt"),children:f.title}),(0,b.jsx)(x.DueChip,{due:f.due,state:(0,u.dueState)(f.due,"done"===f.status?"done":"planned",e)}),h?(0,b.jsx)("span",{className:"shrink-0 font-mono text-[10px] uppercase tracking-wider text-accent",children:"Next up"}):f.size&&"—"!==f.size&&(0,b.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-muted",children:f.size.split(" ")[0]}),(0,b.jsx)(y.AgentDot,{attach:{kind:"task",id:f.id}})]}),(0,b.jsx)(ao,{taskId:f.id})]},a)})}),h.length>0&&(0,b.jsxs)("p",{className:"truncate text-xs text-muted",title:h.join("\n"),children:[h[0],h.length>1&&` (+${h.length-1} more)`]})]})}function ao({taskId:a}){let{chats:c,showAbout:d}=(0,R.useChats)(),e=!!(0,Q.chatFor)(c,{kind:"task",id:a});return(0,b.jsx)("button",{type:"button",onClick:()=>d({kind:"task",id:a}),"aria-label":`${e?"Open chat":"Chat"} about ${a}`,title:e?`Open the chat about ${a}`:`Chat about ${a}`,className:(0,v.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",e?"text-accent opacity-100":"opacity-0 group-hover:opacity-100"),children:(0,b.jsx)(K.MessageSquare,{className:"size-3.5"})})}var ap=a.i(814574);function aq({open:a,heading:d,onOpenChange:e,onSubmit:f}){let[g,h]=(0,c.useState)(""),[i,j]=(0,c.useState)(null),[k,l]=(0,c.useState)(!1);function m(a){a||(h(""),j(null)),e(a)}async function n(a){if(a.preventDefault(),!g.trim())return;l(!0);let b=await f(g.trim());l(!1),b?j(b):m(!1)}return(0,b.jsx)(ap.Dialog,{open:a,onOpenChange:m,children:(0,b.jsxs)(ap.DialogContent,{className:"max-w-sm bg-surface border-border text-txt",children:[(0,b.jsx)(ap.DialogTitle,{className:"text-sm font-semibold text-txt",children:d}),(0,b.jsxs)("form",{onSubmit:n,className:"flex flex-col gap-3",children:[(0,b.jsx)(O.Input,{autoFocus:!0,value:g,onChange:a=>h(a.target.value),placeholder:"Title",className:"bg-bg border-border text-txt"}),i&&(0,b.jsx)("p",{className:"text-xs text-danger",children:i}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)(r.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>m(!1),children:"Cancel"}),(0,b.jsx)(r.Button,{type:"submit",size:"sm",disabled:k||!g.trim(),className:"bg-accent text-accent-fg hover:bg-accent/90",children:"Create"})]})]})]})})}function ar({open:a,onOpenChange:d}){let[e,f]=(0,c.useState)("");return(0,b.jsx)(ap.Dialog,{open:a,onOpenChange:d,children:(0,b.jsxs)(ap.DialogContent,{className:"max-w-lg bg-surface border-border text-txt",children:[(0,b.jsx)(ap.DialogTitle,{className:"text-sm font-semibold text-txt",children:"Plan from spec"}),(0,b.jsxs)("form",{onSubmit:function(a){a.preventDefault(),e.trim()&&(d(!1),(0,w.askAgent)(`Break down this spec into tasks:
1
+ module.exports=[690793,a=>{"use strict";var b=a.i(662145),c=a.i(174897),d=a.i(365465),e=a.i(152716),f=a.i(340933),g=a.i(795667),h=a.i(926128),i=a.i(256857);let j={name:"layout-grid",size:24,node:[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]};j.node;let k=(0,i.default)(j);var l=a.i(553415),m=a.i(200382),n=a.i(551729),o=a.i(913975),p=a.i(544394),q=a.i(21215),r=a.i(699570);let s=a=>"done"===a||"cancelled"===a;function t(a,b){let c=new Map(b.map(a=>[a.id,a])),d=a.tasks.map(a=>c.get(a)).filter(a=>!!a),e=a=>[...new Set((a.dependsOn.match(/\bT\d+\b/gi)??[]).map(a=>a.toUpperCase()))].filter(a=>{let b=c.get(a);return!b||!s(b.status)});for(let a of d)if("todo"===a.status&&!e(a).length)return{kind:"ready",taskId:a.id};if(d.every(a=>s(a.status)))return{kind:"finished"};let f=new Set(a.tasks),g=new Map,h=a=>{if(g.has(a))return g.get(a)??!1;g.set(a,!1);let b=c.get(a),d=!!b&&"blocked"!==b.status&&"paused"!==b.status&&"review"!==b.status&&("todo"!==b.status||f.has(a)&&e(b).every(h));return g.set(a,d),d},i=[];for(let b of a.tasks){let a=c.get(b);if(a){if("in-progress"===a.status)i.push({taskId:b,reason:`${b} is in progress (claimed)`});else if("blocked"===a.status)i.push({taskId:b,reason:`${b} is blocked`});else if("paused"===a.status)i.push({taskId:b,reason:`${b} is paused — needs a human to resume it`});else if("review"===a.status)i.push({taskId:b,reason:`${b} in review — needs a human`});else if("todo"===a.status){let d=e(a).map(a=>`${a} (${c.get(a)?.status??"missing"})`);i.push({taskId:b,reason:`${b} waits on ${d.join(", ")}`})}}else i.push({taskId:b,reason:`${b} has no task file`})}return{kind:"waiting",waiting:i,needsHuman:i.every(a=>!h(a.taskId))}}var u=a.i(452696),v=a.i(368114),w=a.i(525395),x=a.i(618940),y=a.i(815122),z=a.i(581040);function A({items:a,today:d,onSelect:e,onItemContextMenu:f,progressById:g}){let h=new Map(a.filter(a=>null===a.parent).sort((a,b)=>a.order-b.order).map((a,b)=>[a.id,b+1])),i=(0,c.useMemo)(()=>(0,z.buildTimeline)(a,d),[a,d]),j=(0,c.useRef)(null);(0,c.useEffect)(()=>{let a=j.current;a&&(a.scrollLeft=Math.max(0,i.todayX-(a.clientWidth-200)/3))},[i.todayX]);let k=i.lanes.some(a=>a.markers.length>0);return(0,b.jsxs)("div",{className:"flex flex-1 min-h-0 flex-col",children:[(0,b.jsx)("div",{ref:j,className:"relative flex-1 min-h-0 overflow-auto",children:(0,b.jsxs)("div",{className:"relative",style:{width:200+i.width,minHeight:"100%"},children:[(0,b.jsxs)("div",{className:"pointer-events-none absolute inset-y-0",style:{left:200,width:i.width},children:[i.months.map(a=>(0,b.jsx)("div",{className:"absolute inset-y-0 border-l border-border",style:{left:a.x}},a.x)),(0,b.jsx)("div",{className:"absolute inset-y-0 left-0 bg-surface/50",style:{width:i.todayX}}),(0,b.jsx)("div",{className:"absolute inset-y-0 w-px bg-accent shadow-[0_0_12px_rgb(var(--rgb-accent)/0.8)]",style:{left:i.todayX},children:(0,b.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,b.jsxs)("div",{className:"sticky top-0 z-20 flex border-b border-border bg-bg",style:{height:36},children:[(0,b.jsx)("div",{className:"sticky left-0 z-10 shrink-0 bg-bg",style:{width:200}}),(0,b.jsx)("div",{className:"relative",children:i.months.map(a=>(0,b.jsx)("span",{className:"absolute top-3 whitespace-nowrap pl-2 font-mono text-[10px] uppercase tracking-widest text-muted",style:{left:a.x},children:a.label},a.x))})]}),i.lanes.map(a=>(0,b.jsxs)("div",{className:"relative flex border-b border-border",children:[(0,b.jsx)(B,{item:a.item,chapter:h.get(a.item.id),progress:g[a.item.id],onSelect:e,onContextMenu:f}),(0,b.jsx)("div",{className:"relative",style:{width:i.width,height:a.rows*z.LANE_ROW_H+12},children:a.markers.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>e(a.item.id),onContextMenu:b=>f?.(a.item.id,b),title:`${a.item.id} \xb7 ${a.item.title} \xb7 due ${a.item.due}${"overdue"===a.state?" (overdue)":""}`,className:"group absolute flex items-center gap-1.5",style:{left:a.x-10,top:6+a.row*z.LANE_ROW_H},children:[a.horizon?(0,b.jsx)("span",{className:(0,v.cn)("h-4 w-4 rotate-45 border-2 border-accent","done"===a.item.status?"bg-accent":"bg-bg","overdue"===a.state&&"border-danger")}):(0,b.jsx)("span",{className:(0,v.cn)("rounded-full","overdue"===a.state&&"ring-2 ring-danger ring-offset-1 ring-offset-bg"),children:(0,b.jsx)(x.StatusDot,{status:a.item.status})}),(0,b.jsxs)("span",{className:(0,v.cn)("flex max-w-[150px] flex-col rounded-md border px-2 py-0.5 text-left transition-colors","in-progress"===a.item.status?"border-accent/50 bg-surface shadow-[0_6px_18px_-10px_rgb(var(--rgb-accent)/0.7)]":"done"===a.item.status?"border-border bg-surface/60":"border-dashed border-border2 bg-bg","group-hover:border-accent"),children:[(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[(0,b.jsx)("span",{className:(0,v.cn)("truncate text-xs","done"===a.item.status?"text-muted":"text-txt",a.horizon&&"font-semibold"),children:a.item.title}),(0,b.jsx)(y.AgentDot,{attach:{kind:"epic",id:a.item.id}})]}),(0,b.jsx)("span",{className:(0,v.cn)("font-mono text-[10px]","overdue"===a.state?"text-danger":"soon"===a.state?"text-amber":"text-muted"),children:(0,z.formatDay)(a.item.due)})]})]},a.item.id))})]},a.item.id)),!k&&(0,b.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."})]})}),i.undated.length>0&&(0,b.jsxs)("div",{className:"max-h-28 shrink-0 overflow-y-auto border-t border-border bg-surface px-4 py-2",children:[(0,b.jsxs)("p",{className:"mb-2 font-mono text-[10px] uppercase tracking-widest text-muted",children:["No due date · ",i.undated.length]}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:i.undated.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>e(a.id),onContextMenu:b=>f?.(a.id,b),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,b.jsx)(x.StatusDot,{status:a.status}),a.title,(0,b.jsx)(y.AgentDot,{attach:{kind:"epic",id:a.id}})]},a.id))})]})]})}function B({item:a,chapter:c,progress:d,onSelect:e,onContextMenu:f}){return(0,b.jsxs)("button",{type:"button",onClick:()=>e(a.id),onContextMenu:b=>f?.(a.id,b),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,b.jsx)("span",{className:(0,v.cn)("font-mono text-lg font-semibold tabular-nums","in-progress"===a.status?"text-accent":"done"===a.status?"text-teal":"text-muted"),children:c?String(c).padStart(2,"0"):"··"}),(0,b.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[(0,b.jsx)("span",{className:"line-clamp-2 text-[11px] font-semibold uppercase leading-snug tracking-wider text-txt",children:a.title}),d&&(0,b.jsx)("span",{className:"h-1 overflow-hidden rounded-full bg-border",children:(0,b.jsx)("span",{className:"block h-full rounded-full bg-teal",style:{width:`${d.done/d.total*100}%`}})})]})]})}var C=a.i(453161),D=a.i(658978),E=a.i(156298),F=a.i(388637),G=a.i(717371);let H={name:"layers",size:24,node:[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]],aliases:["layers-3"]};H.node;let I=(0,i.default)(H);var J=a.i(340753),K=a.i(441852),L=a.i(661661),M=a.i(892678),N=a.i(757061),O=a.i(866718),P=a.i(149350),Q=a.i(107742),R=a.i(685698),S=a.i(60084),T=a.i(717143),U=a.i(763747),V=a.i(28386),W=a.i(335732),X=a.i(890728);let Y=["planned","in-progress","paused","done"];function Z({item:a,items:c,actions:d}){let e=null===a.parent,f=c.filter(b=>null===b.parent&&b.id!==a.parent).sort((a,b)=>a.order-b.order),g=c.filter(b=>b.parent===a.id).length;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(W.DropdownMenuItem,{onSelect:()=>d.edit(a.id),children:[(0,b.jsx)(L.Pencil,{})," Edit",(0,b.jsx)(W.DropdownMenuShortcut,{children:(0,X.itemKeyLabel)("edit")})]}),(0,b.jsxs)(W.DropdownMenuSub,{children:[(0,b.jsxs)(W.DropdownMenuSubTrigger,{children:[(0,b.jsx)(x.StatusDot,{status:a.status})," Status",(0,b.jsx)(W.DropdownMenuShortcut,{children:(0,X.itemKeyLabel)("status")})]}),(0,b.jsx)(W.DropdownMenuSubContent,{children:Y.map(c=>(0,b.jsxs)(W.DropdownMenuItem,{disabled:c===a.status,onSelect:()=>d.setStatus(a.id,c),children:[(0,b.jsx)(x.StatusDot,{status:c})," ",x.STATUS_LABEL[c]]},c))})]}),!e&&f.length>0&&(0,b.jsxs)(W.DropdownMenuSub,{children:[(0,b.jsxs)(W.DropdownMenuSubTrigger,{children:[(0,b.jsx)(T.FolderInput,{})," Move to horizon"]}),(0,b.jsx)(W.DropdownMenuSubContent,{className:"max-h-72 overflow-y-auto",children:f.map(c=>(0,b.jsxs)(W.DropdownMenuItem,{onSelect:()=>d.move(a.id,c.id),children:[(0,b.jsx)("span",{className:"font-mono text-[11px] text-muted",children:c.id})," ",c.title]},c.id))})]}),e&&(0,b.jsxs)(W.DropdownMenuItem,{onSelect:()=>d.addEpic(a.id),children:[(0,b.jsx)(m.Plus,{})," Add epic"]}),(0,b.jsxs)(W.DropdownMenuItem,{onSelect:()=>d.duplicate(a.id),children:[(0,b.jsx)(S.Copy,{})," Duplicate",(0,b.jsx)(W.DropdownMenuShortcut,{children:(0,X.itemKeyLabel)("duplicate")})]}),(0,b.jsx)(W.DropdownMenuSeparator,{}),!e&&(0,b.jsxs)(W.DropdownMenuItem,{onSelect:()=>d.chat(a.id),children:[(0,b.jsx)(K.MessageSquare,{})," Chat about it",(0,b.jsx)(W.DropdownMenuShortcut,{children:(0,X.itemKeyLabel)("chat")})]}),(0,b.jsxs)(W.DropdownMenuItem,{onSelect:()=>d.openFile(a.file),children:[(0,b.jsx)(h.FileText,{})," Open file"]}),(0,b.jsx)(W.DropdownMenuSeparator,{}),g>0?(0,b.jsxs)(W.DropdownMenuItem,{disabled:!0,className:"flex-col items-start gap-0",children:[(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsx)(V.Trash2,{})," Delete"]}),(0,b.jsxs)("span",{className:"pl-6 text-[11px]",children:["Move or delete its ",g," epic",1===g?"":"s"," first"]})]}):(0,b.jsxs)(W.DropdownMenuItem,{onSelect:()=>d.remove(a.id),className:"text-danger focus:text-danger",children:[(0,b.jsx)(V.Trash2,{})," Delete",(0,b.jsx)(W.DropdownMenuShortcut,{children:(0,X.itemKeyLabel)("remove")})]})]})}function $({item:a,items:c,actions:d,className:e,open:f,onOpenChange:g}){return(0,b.jsxs)(W.DropdownMenu,{open:f,onOpenChange:g,children:[(0,b.jsx)(W.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button","aria-label":`Actions for ${a.id}`,className:(0,v.cn)("grid size-7 place-items-center rounded-md text-muted hover:bg-surface2 hover:text-txt",e),children:(0,b.jsx)(U.MoreHorizontal,{className:"size-4"})})}),(0,b.jsx)(W.DropdownMenuContent,{align:"end",className:"w-52",children:(0,b.jsx)(Z,{item:a,items:c,actions:d})})]})}function _({at:a,items:c,actions:d,onClose:e}){let f=a&&c.find(b=>b.id===a.id);return a&&f?(0,b.jsxs)(W.DropdownMenu,{open:!0,onOpenChange:a=>{a||e()},children:[(0,b.jsx)(W.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsx)("span",{"aria-hidden":!0,className:"pointer-events-none fixed size-0",style:{left:a.x,top:a.y}})}),(0,b.jsx)(W.DropdownMenuContent,{align:"start",className:"w-52",children:(0,b.jsx)(Z,{item:f,items:c,actions:d})})]},`${a.id}:${a.x}:${a.y}`):null}var aa=a.i(813722),ab=a.i(192698),ac=a.i(787714),ad=a.i(891397),ae=a.i(269769);let af=["planned","in-progress","paused","done"],ag="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",ah="text-xs font-medium text-muted",ai="font-mono text-[10px] uppercase tracking-widest text-muted";function aj({item:a,onClose:c,...d}){return(0,b.jsx)(N.Sheet,{open:!!a,onOpenChange:a=>{a||c()},children:(0,b.jsx)(N.SheetContent,{className:"w-full sm:w-[480px] sm:max-w-[480px] gap-0 bg-surface border-border text-txt flex flex-col overflow-y-auto p-0",children:a&&(0,b.jsx)(ak,{item:a,onClose:c,...d},a.id)})})}function ak(a){return a.editing?(0,b.jsx)(am,{...a,onCancel:()=>a.onEditingChange(!1)}):(0,b.jsx)(al,{...a,onEdit:()=>a.onEditingChange(!0)})}function al({item:a,items:d,onClose:e,onAddFeature:f,onEditRaw:i,onSelect:j,tasksById:k,progressById:l,onEdit:n,actions:o,onSave:q}){let s=null===a.parent,t=d.find(b=>b.id===a.parent),z=d.filter(b=>b.parent===a.id).sort((a,b)=>a.order-b.order),A=l[a.id],B=(0,u.localToday)(),{chats:C,showAbout:H}=(0,R.useChats)(),{demo:O}=(0,p.useApp)(),S=s?void 0:(0,Q.chatFor)(C,{kind:"epic",id:a.id}),T=!s&&0===a.tasks.length&&!S,[U,V]=(0,c.useState)(!1),W=b=>{q(a.id,b).then(a=>{a&&(0,ae.toast)(a)})};return(0,X.useItemCommands)(`${a.id} \xb7 ${a.title}`,[{action:"edit",label:"Edit",run:n},{action:"status",label:"Change status…",run:()=>V(!0)},{action:"duplicate",label:"Duplicate",run:()=>o.duplicate(a.id)},...s?[]:[{action:"chat",label:"Chat about it",run:()=>o.chat(a.id)}],...z.length?[]:[{action:"remove",label:"Delete",run:()=>o.remove(a.id)}]]),(0,b.jsxs)("div",{className:"flex min-h-full flex-col",children:[(0,b.jsx)(ab.ItemPanelHeader,{className:(0,v.cn)("px-6","in-progress"===a.status&&"bg-[linear-gradient(180deg,rgb(var(--rgb-accent)/0.08),transparent)]"),kicker:(0,b.jsx)(N.SheetDescription,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-1",children:[t&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{type:"button",onClick:()=>j(t.id),className:"truncate hover:text-txt",children:t.title}),(0,b.jsx)(E.ChevronRight,{className:"h-3 w-3 shrink-0"})]}),(0,b.jsxs)("span",{className:"shrink-0",children:[a.id," · ",s?"horizon":"epic"]}),(0,b.jsx)(y.AgentMark,{attach:{kind:"epic",id:a.id}})]})}),title:(0,b.jsx)(N.SheetTitle,{className:"text-xl font-semibold leading-tight text-txt",children:a.title}),menu:O?void 0:(0,b.jsx)($,{item:a,items:d,actions:o,open:U,onOpenChange:V}),properties:[{label:"Status",icon:F.CircleDashed,value:(0,b.jsx)(ac.InlineSelect,{label:`Status of ${a.id}`,value:a.status,onChange:b=>o.setStatus(a.id,b),options:af.map(a=>({value:a,label:x.STATUS_LABEL[a],node:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(x.StatusDot,{status:a}),x.STATUS_LABEL[a]]})})),children:(0,b.jsx)(x.StatusPill,{status:a.status})})},{label:"Priority",icon:G.Flag,value:(0,b.jsx)(ad.PriorityField,{label:`Priority of ${a.id}`,value:a.priority??null,onChange:a=>W({priority:a})})},{label:"Owner",icon:M.User,value:(0,b.jsx)(ac.InlineSelect,{label:`Owner of ${a.id}`,value:a.owner??"",onChange:a=>W({owner:a||null}),options:[{value:"human",label:"Human",node:(0,b.jsx)(aa.OwnerChip,{owner:"human",className:"text-xs"})},...[...new Set(["ai:claude",...a.owner?.startsWith("ai:")?[a.owner]:[]])].map(a=>({value:a,label:a,node:(0,b.jsx)(aa.OwnerChip,{owner:a,className:"text-xs"})})),{value:"",label:"No owner",node:(0,b.jsx)("span",{className:"text-muted",children:"No owner"})}],children:a.owner?(0,b.jsx)(aa.OwnerChip,{owner:a.owner,className:"text-xs"}):(0,b.jsx)("span",{className:"text-muted",children:"—"})})},{label:"Due",icon:D.Calendar,value:(0,b.jsx)(ac.InlineDate,{label:`Due date of ${a.id}`,value:a.due,onChange:a=>W({due:a}),children:a.due?(0,b.jsx)(x.DueChip,{due:a.due,state:(0,u.dueState)(a.due,a.status,B)}):(0,b.jsx)("span",{className:"text-muted",children:"—"})})},{label:s?"Epics":"Tasks",icon:s?I:J.ListChecks,value:(0,b.jsx)("span",{className:"font-mono",children:s?z.length:a.tasks.length})}],children:A&&(0,b.jsxs)("div",{className:"mt-2 flex items-end gap-4",children:[(0,b.jsxs)("p",{className:"font-mono text-3xl font-semibold leading-none tabular-nums text-txt",children:[Math.round(A.done/A.total*100),(0,b.jsx)("span",{className:"text-base text-muted",children:"%"})]}),(0,b.jsxs)("div",{className:"flex-1 pb-1",children:[(0,b.jsxs)("p",{className:"mb-1.5 font-mono text-[10px] text-muted",children:[A.done," of ",A.total,s?"":" tasks"," done"]}),s?(0,b.jsx)("div",{className:"h-1.5 overflow-hidden rounded-full bg-border",children:(0,b.jsx)("div",{className:"h-full rounded-full bg-teal",style:{width:`${A.done/A.total*100}%`}})}):(0,b.jsx)(x.SegmentedProgress,{statuses:a.tasks.map(a=>k[a]?.status).filter(a=>!!a&&"cancelled"!==a)})]})]})}),(0,b.jsxs)("div",{className:"flex flex-1 flex-col gap-6 px-6 py-5",children:[!s&&a.tasks.length>0&&(0,b.jsx)(an,{item:a,tasksById:k,onOpen:i}),s&&(0,b.jsxs)("section",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("p",{className:ai,children:["Epics · ",z.length]}),0===z.length&&(0,b.jsx)("p",{className:"text-sm text-muted",children:"No epics yet."}),(0,b.jsx)("ul",{className:"-mx-2 flex flex-col",children:z.map(a=>{let c=l[a.id];return(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>j(a.id),className:"flex w-full items-center gap-3 rounded-md px-2 py-2 text-left hover:bg-surface2",children:[(0,b.jsx)(x.StatusDot,{status:a.status}),(0,b.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted",children:a.id}),(0,b.jsx)("span",{className:(0,v.cn)("min-w-0 flex-1 truncate text-sm","done"===a.status?"text-muted":"text-txt"),children:a.title}),c&&(0,b.jsxs)("span",{className:"shrink-0 font-mono text-[10px] text-muted",children:[c.done,"/",c.total]})]})},a.id)})})]}),(0,b.jsxs)("section",{className:"flex flex-col gap-2",children:[(0,b.jsx)("p",{className:ai,children:"Brief"}),a.body.trim()?(0,b.jsx)(P.MarkdownRenderer,{content:a.body,className:"text-sm"}):(0,b.jsx)("p",{className:"text-sm text-muted",children:"No description. Edit to add the outcome, scope and “done when”."})]})]}),(0,b.jsxs)("footer",{className:"sticky bottom-0 flex flex-wrap items-center gap-2 border-t border-border bg-surface px-6 py-3",children:[!O&&(0,b.jsxs)(b.Fragment,{children:[T&&(0,b.jsxs)(r.Button,{size:"sm",onClick:()=>{e(),(0,w.askAgent)(`Break down epic ${a.id} into tasks.`)},className:"bg-accent text-accent-fg hover:bg-accent/90",children:[(0,b.jsx)(g.Bot,{})," Break down with agent"]}),!s&&(0,b.jsxs)(r.Button,{size:"sm",variant:T?"outline":"default",onClick:()=>{e(),H({kind:"epic",id:a.id})},className:(0,v.cn)(!T&&"bg-accent text-accent-fg hover:bg-accent/90"),children:[(0,b.jsx)(K.MessageSquare,{})," ",S?"Open chat":"Chat"]}),s&&(0,b.jsxs)(r.Button,{size:"sm",onClick:()=>f(a.id),className:"bg-accent text-accent-fg hover:bg-accent/90",children:[(0,b.jsx)(m.Plus,{})," Add epic"]}),(0,b.jsxs)(r.Button,{size:"sm",variant:"outline",onClick:n,children:[(0,b.jsx)(L.Pencil,{})," Edit"]})]}),(0,b.jsxs)(r.Button,{size:"sm",variant:"ghost",onClick:()=>i(a.file),className:"ml-auto text-muted hover:text-txt",children:[(0,b.jsx)(h.FileText,{})," Open file"]})]})]})}function am({item:a,items:d,onClose:e,onSave:f,onDelete:g,onCancel:h}){let[i]=(0,c.useState)(a),[j,k]=(0,c.useState)(a.title),[l,m]=(0,c.useState)(a.status),[n,o]=(0,c.useState)(a.parent??""),[p,q]=(0,c.useState)(String(a.order)),[s,t]=(0,c.useState)(a.tasks.join(", ")),[u,v]=(0,c.useState)(a.due??""),[w,x]=(0,c.useState)(a.body),[y,z]=(0,c.useState)(null),[A,B]=(0,c.useState)(!1),C=d.some(b=>b.parent===a.id),D=d.filter(b=>null===b.parent&&b.id!==a.id),E=null===a.parent,F=null!==a.parent&&!D.some(b=>b.id===a.parent);async function G(a){B(!0),z(null);let b=await a();return B(!1),b&&z(b),!b}async function H(){let b={},c=j.trim()||i.title;if(c!==i.title&&(b.title=c),l!==i.status&&(b.status=l),(n||null)!==i.parent&&(b.parent=n||null),p.trim()!==String(i.order)){let a=Number(p);if(""===p.trim()||!Number.isFinite(a))return void z("Order must be a number");b.order=a}let d=s.split(",").map(a=>a.trim()).filter(Boolean);(d.join(",")!==i.tasks.join(",")&&(b.tasks=d),(u||null)!==i.due&&(b.due=u||null),w!==i.body&&(b.body=w),0===Object.keys(b).length)?h():await G(()=>f(a.id,b))&&e()}async function I(){await G(()=>g(a.id))&&e()}return(0,b.jsxs)("div",{className:"flex min-h-full flex-col",children:[(0,b.jsxs)("div",{className:"border-b border-border px-6 pb-4 pt-6 pr-12",children:[(0,b.jsxs)(N.SheetDescription,{className:"font-mono text-[11px] text-muted",children:["Editing ",a.id," · ",E?"horizon":"epic"]}),(0,b.jsx)(N.SheetTitle,{className:"mt-1 text-base text-txt",children:a.title})]}),(0,b.jsxs)("div",{className:"flex flex-1 flex-col gap-4 px-6 py-5",children:[(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:ah,children:"Title"}),(0,b.jsx)(O.Input,{value:j,onChange:a=>k(a.target.value),className:"bg-bg border-border text-txt"})]}),(0,b.jsxs)("div",{className:"grid grid-cols-3 gap-3",children:[(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:ah,children:"Status"}),(0,b.jsx)("select",{value:l,onChange:a=>m(a.target.value),className:ag,children:af.map(a=>(0,b.jsx)("option",{value:a,children:a},a))})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:ah,children:"Parent"}),(0,b.jsxs)("select",{value:n,onChange:a=>o(a.target.value),disabled:C,title:C?"Items with children must stay on the spine":void 0,className:ag,children:[(0,b.jsx)("option",{value:"",children:"— (horizon)"}),F&&(0,b.jsxs)("option",{value:a.parent??"",children:[a.parent," · missing"]}),D.map(a=>(0,b.jsxs)("option",{value:a.id,children:[a.id," · ",a.title]},a.id))]})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:ah,children:"Order"}),(0,b.jsx)(O.Input,{type:"number",step:10,value:p,onChange:a=>q(a.target.value),title:E?"Position on the spine":"Position within the branch",className:"bg-bg border-border text-txt"})]})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:ah,children:"Due"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(O.Input,{type:"date",value:u,onChange:a=>v(a.target.value),className:"bg-bg border-border text-txt scheme-light dark:scheme-dark"}),u&&(0,b.jsx)("button",{type:"button",onClick:()=>v(""),className:"text-xs text-muted hover:text-txt",children:"Clear"})]})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:ah,children:"Tasks"}),(0,b.jsx)(O.Input,{value:s,onChange:a=>t(a.target.value),placeholder:"T001, T012",className:"bg-bg border-border text-txt font-mono"})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1",children:[(0,b.jsx)("span",{className:ah,children:"Body (markdown)"}),(0,b.jsx)("textarea",{value:w,onChange:a=>x(a.target.value),rows:12,className:`${ag} font-mono resize-y`})]}),y&&(0,b.jsx)("p",{className:"text-xs text-danger",children:y})]}),(0,b.jsxs)("footer",{className:"sticky bottom-0 flex items-center gap-2 border-t border-border bg-surface px-6 py-3",children:[(0,b.jsx)(r.Button,{size:"sm",onClick:H,disabled:A,className:"bg-accent text-accent-fg hover:bg-accent/90",children:"Save"}),(0,b.jsx)(r.Button,{size:"sm",variant:"ghost",onClick:h,disabled:A,className:"text-txt",children:"Cancel"}),(0,b.jsx)(r.Button,{size:"sm",variant:"ghost",onClick:I,disabled:A,className:"ml-auto text-danger hover:text-danger",children:"Delete"})]})]})}function an({item:a,tasksById:c,onOpen:d}){let e=(0,u.localToday)(),f=t(a,Object.values(c)),g="ready"===f.kind?f.taskId:null,h="waiting"===f.kind?[...f.waiting].sort((a,b)=>Number(c[b.taskId]?.status==="todo")-Number(c[a.taskId]?.status==="todo")).map(a=>a.reason):[];return(0,b.jsxs)("section",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("p",{className:ai,children:["Tasks · ",a.tasks.length]}),(0,b.jsx)("ul",{className:"-mx-2 flex flex-col",children:a.tasks.map(a=>{let f=c[a];if(!f)return(0,b.jsxs)("li",{className:"px-2 py-2 font-mono text-xs text-danger",children:[a," · missing task file"]},a);let h=f.id===g;return(0,b.jsxs)("li",{className:(0,v.cn)("group flex items-center rounded-md hover:bg-surface2",h&&"bg-accent/10 hover:bg-accent/15"),children:[(0,b.jsxs)("button",{type:"button",onClick:()=>d(f.file),className:"flex min-w-0 flex-1 items-center gap-3 px-2 py-2 text-left",children:[(0,b.jsx)("span",{title:f.status,className:(0,v.cn)("h-2 w-2 shrink-0 rounded-full",x.TASK_STATUS_BG[f.status])}),(0,b.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-muted",children:f.id}),(0,b.jsx)("span",{className:(0,v.cn)("min-w-0 flex-1 truncate text-sm","cancelled"===f.status?"text-muted line-through":"done"===f.status?"text-muted":"text-txt"),children:f.title}),(0,b.jsx)(x.DueChip,{due:f.due,state:(0,u.dueState)(f.due,"done"===f.status?"done":"planned",e)}),h?(0,b.jsx)("span",{className:"shrink-0 font-mono text-[10px] uppercase tracking-wider text-accent",children:"Next up"}):f.size&&"—"!==f.size&&(0,b.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-muted",children:f.size.split(" ")[0]}),(0,b.jsx)(y.AgentDot,{attach:{kind:"task",id:f.id}})]}),(0,b.jsx)(ao,{taskId:f.id})]},a)})}),h.length>0&&(0,b.jsxs)("p",{className:"truncate text-xs text-muted",title:h.join("\n"),children:[h[0],h.length>1&&` (+${h.length-1} more)`]})]})}function ao({taskId:a}){let{chats:c,showAbout:d}=(0,R.useChats)(),{demo:e}=(0,p.useApp)(),f=!!(0,Q.chatFor)(c,{kind:"task",id:a});return e?null:(0,b.jsx)("button",{type:"button",onClick:()=>d({kind:"task",id:a}),"aria-label":`${f?"Open chat":"Chat"} about ${a}`,title:f?`Open the chat about ${a}`:`Chat about ${a}`,className:(0,v.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",f?"text-accent opacity-100":"opacity-0 group-hover:opacity-100"),children:(0,b.jsx)(K.MessageSquare,{className:"size-3.5"})})}var ap=a.i(814574);function aq({open:a,heading:d,onOpenChange:e,onSubmit:f}){let[g,h]=(0,c.useState)(""),[i,j]=(0,c.useState)(null),[k,l]=(0,c.useState)(!1);function m(a){a||(h(""),j(null)),e(a)}async function n(a){if(a.preventDefault(),!g.trim())return;l(!0);let b=await f(g.trim());l(!1),b?j(b):m(!1)}return(0,b.jsx)(ap.Dialog,{open:a,onOpenChange:m,children:(0,b.jsxs)(ap.DialogContent,{className:"max-w-sm bg-surface border-border text-txt",children:[(0,b.jsx)(ap.DialogTitle,{className:"text-sm font-semibold text-txt",children:d}),(0,b.jsxs)("form",{onSubmit:n,className:"flex flex-col gap-3",children:[(0,b.jsx)(O.Input,{autoFocus:!0,value:g,onChange:a=>h(a.target.value),placeholder:"Title",className:"bg-bg border-border text-txt"}),i&&(0,b.jsx)("p",{className:"text-xs text-danger",children:i}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)(r.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>m(!1),children:"Cancel"}),(0,b.jsx)(r.Button,{type:"submit",size:"sm",disabled:k||!g.trim(),className:"bg-accent text-accent-fg hover:bg-accent/90",children:"Create"})]})]})]})})}function ar({open:a,onOpenChange:d}){let[e,f]=(0,c.useState)("");return(0,b.jsx)(ap.Dialog,{open:a,onOpenChange:d,children:(0,b.jsxs)(ap.DialogContent,{className:"max-w-lg bg-surface border-border text-txt",children:[(0,b.jsx)(ap.DialogTitle,{className:"text-sm font-semibold text-txt",children:"Plan from spec"}),(0,b.jsxs)("form",{onSubmit:function(a){a.preventDefault(),e.trim()&&(d(!1),(0,w.askAgent)(`Break down this spec into tasks:
2
2
 
3
- ${e.trim()}`))},className:"flex flex-col gap-3",children:[(0,b.jsx)("textarea",{autoFocus:!0,value:e,onChange:a=>f(a.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,b.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,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)(r.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>{f(""),d(!1)},children:"Cancel"}),(0,b.jsx)(r.Button,{type:"submit",size:"sm",disabled:!e.trim(),className:"bg-accent text-accent-fg hover:bg-accent/90",children:"Break down"})]})]})]})})}function as({open:a,onOpenChange:c,items:d}){return(0,b.jsx)(ap.Dialog,{open:a,onOpenChange:c,children:(0,b.jsxs)(ap.DialogContent,{className:"max-w-lg bg-surface border-border text-txt",children:[(0,b.jsx)(ap.DialogTitle,{className:"text-sm font-semibold text-txt",children:"Break down epics"}),(0,b.jsx)(at,{items:d,onDone:()=>c(!1)})]})})}function at({items:a,onDone:d}){let e,f=(e=(a,b)=>a.order-b.order,a.filter(a=>null===a.parent).sort(e).map(b=>({horizon:b,epics:a.filter(a=>a.parent===b.id&&"done"!==a.status).sort((a,b)=>Number(a.tasks.length>0)-Number(b.tasks.length>0)||e(a,b))})).filter(a=>a.epics.length>0)),[g,h]=(0,c.useState)(()=>new Set(f.flatMap(a=>a.epics.filter(a=>0===a.tasks.length).map(a=>a.id)))),i=(0,R.useChats)().runningCount,j=Math.max(0,Q.MAX_RUNNING_CHATS-i),k=g.size>j;return(0,b.jsxs)("form",{onSubmit:function(a){if(a.preventDefault(),g.size&&!k)for(let a of(d(),f))for(let b of a.epics)g.has(b.id)&&(0,w.askAgent)(`Break down epic ${b.id} into tasks.`,{newChat:!0})},className:"flex flex-col gap-3",children:[(0,b.jsx)("div",{className:"max-h-[50vh] overflow-y-auto rounded-md border border-border",children:f.map(a=>(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"sticky top-0 bg-surface2 px-3 py-1 text-[10px] font-mono uppercase tracking-widest text-muted",children:[a.horizon.id," · ",a.horizon.title]}),(0,b.jsx)("ul",{children:a.epics.map(a=>{let c=g.has(a.id);return(0,b.jsx)("li",{className:"border-b border-border last:border-b-0",children:(0,b.jsxs)("label",{className:"flex items-start gap-2 px-3 py-1.5 text-xs cursor-pointer has-[:disabled]:cursor-not-allowed",children:[(0,b.jsx)("input",{type:"checkbox",checked:c,disabled:!c&&g.size>=j,onChange:()=>{var b;return b=a.id,void h(a=>{let c=new Set(a);return c.delete(b)||c.add(b),c})},className:"mt-0.5 accent-accent"}),(0,b.jsxs)("span",{className:"flex-1 min-w-0 text-txt",children:[(0,b.jsx)("span",{className:"font-mono text-muted mr-1",children:a.id}),a.title]}),a.tasks.length>0&&(0,b.jsxs)("span",{className:"shrink-0 text-[10px] font-mono text-muted",children:["has ",a.tasks.length," task",1===a.tasks.length?"":"s"]})]})},a.id)})})]},a.horizon.id))}),(0,b.jsx)("p",{className:k||0===j?"text-xs text-amber":"text-xs text-muted",children:0===j?`All ${Q.MAX_RUNNING_CHATS} agent slots are busy. Stop a chat or wait for one to finish.`:k?`${g.size} selected, but only ${j} of ${Q.MAX_RUNNING_CHATS} agent slots ${1===j?"is":"are"} free (${i} running). Uncheck some or stop a chat.`:`One chat per epic, running at once (${j} of ${Q.MAX_RUNNING_CHATS} agent slots free). Each shows a plan before writing anything.`}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)(r.Button,{type:"button",variant:"ghost",size:"sm",onClick:d,children:"Cancel"}),(0,b.jsxs)(r.Button,{type:"submit",size:"sm",disabled:!g.size||k,className:"bg-accent text-accent-fg hover:bg-accent/90",children:["Break down ",g.size||""," epic",1===g.size?"":"s"]})]})]})}async function au(a,b){try{let c=await fetch(a,void 0===b?void 0:{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)}),d=await c.json().catch(()=>null);if(!c.ok)return{error:d?.error??`Request failed (${c.status})`};return{data:d}}catch{return{error:"Could not reach the server"}}}function av(a,b,c,d){var f;let g,h,i,j,k,[l,m]=(f=!d,h=(g=a=>({x:a.position.x+(a.measured?.width??("horizon"===a.type?C.HORIZON_W:C.FEATURE_W))/2,y:a.position.y+(a.measured?.height??48)/2}))(b),j=(i=g(c)).x-h.x,k=i.y-h.y,f||Math.abs(j)>Math.abs(k)?j>0?[e.Position.Right,e.Position.Left]:[e.Position.Left,e.Position.Right]:k>0?[e.Position.Bottom,e.Position.Top]:[e.Position.Top,e.Position.Bottom]);return{id:a,source:b.id,target:c.id,sourceHandle:l,targetHandle:`${m}-t`,type:d?"straight":"default",selectable:!1,...function(a,b,c){if(c)return"done"===a.data.item.status?{style:{stroke:"var(--color-accent)",strokeWidth:3}}:{style:{stroke:"var(--color-border2)",strokeWidth:3,strokeDasharray:"6 6"}};let d=b.data.item.status;return"in-progress"===d?{animated:!0,style:{stroke:"var(--color-accent)",strokeWidth:2}}:"done"===d?{style:{stroke:"var(--color-border2)",strokeWidth:1.5}}:{style:{stroke:"var(--color-border2)",strokeWidth:1.5,strokeDasharray:"2 5",strokeLinecap:"round"}}}(b,c,d)}}function aw(a){let b=new MutationObserver(a);return b.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>b.disconnect()}let ax={"--xy-background-color":"var(--color-bg)"};function ay(){let{rootParam:a,openDoc:e,board:f}=(0,p.useApp)(),{showAbout:i}=(0,R.useChats)(),j=(0,o.useRouter)(),s=(0,o.useSearchParams)(),y="timeline"===s.get("view")?"timeline":"map",z=(0,u.localToday)(),[B,D]=(0,c.useState)([]),[E,F]=(0,c.useState)({}),[G,H]=(0,c.useState)([]),[I,J]=(0,c.useState)(!0),[K,L]=(0,c.useState)(null),[M,N]=(0,c.useState)(null),[O,P]=(0,c.useState)(null),[Q,S]=(0,c.useState)(null),T=s.get("item"),[U,V]=(0,c.useState)(null);T!==U&&(V(T),T&&N(T));let[W,X]=(0,c.useState)(null),[Y,Z]=(0,c.useState)(!1),[$,aa]=(0,c.useState)(null),[ab,ac]=(0,c.useState)(!1),[ad,af]=(0,c.useState)(!1),ag=(0,c.useRef)(!1),ah=(0,c.useRef)(null),ai=(0,c.useRef)(null),ak=(0,c.useCallback)((a,b=0)=>{ai.current=a;let c=ah.current?.clientWidth??0,d=a.getNodesBounds(a.getNodes());if(!c||!d.width)return;let e=Math.min(1,Math.max(.75,(c-80)/d.width));a.setViewport({x:c/2-(d.x+d.width/2)*e,y:40-d.y*e,zoom:e},{duration:b})},[]),al=(0,c.useRef)(!1),am=(0,c.useRef)(0),an=(0,c.useSyncExternalStore)(aw,()=>document.documentElement.classList.contains("dark"),()=>!0),ao=(0,c.useCallback)((a,b)=>{D(a),F(b),H(c=>{let d,e;return d=(0,C.resolvePositions)(a,b),e=new Map(c.map(a=>[a.id,a])),a.map(a=>{let b=e.get(a.id);return{id:a.id,type:null===a.parent?"horizon":"feature",position:d[a.id]??{x:0,y:0},data:{item:a},measured:b?.measured,selected:b?.selected}})})},[]),ap=(0,c.useCallback)(()=>{let b=++am.current;return au(`/api/roadmap${a}`).then(({data:a,error:c})=>{if(b===am.current){if(J(!1),c){L(c),ao([],{}),N(null);return}L(null),X(a?.generateSource??null),ao(a?.items??[],a?.layout??{})}})},[a,ao]);(0,c.useEffect)(()=>{ap()},[ap]),(0,c.useEffect)(()=>{let a=new EventSource("/api/events");return a.onmessage=a=>{try{let b=JSON.parse(a.data);if("roadmap_updated"!==b.type)return;ag.current?al.current=!0:ap()}catch{}},()=>a.close()},[ap]);let at=(0,c.useMemo)(()=>{let a=new Map(G.map(a=>[a.id,a])),b=[],c=B.filter(a=>null===a.parent).sort((a,b)=>a.order-b.order);for(let d of(c.forEach((d,e)=>{let f=a.get(d.id),g=c[e+1]&&a.get(c[e+1].id);f&&g&&b.push(av(`spine-${d.id}`,f,g,!0))}),B)){let c=d.parent&&a.get(d.parent),e=a.get(d.id);c&&e&&"horizon"===c.type&&b.push(av(`branch-${d.id}`,c,e,!1))}return b},[B,G]),ay=(0,c.useMemo)(()=>Object.fromEntries(Object.values(f??{}).flat().map(a=>[a.id,a])),[f]),aB=(0,c.useMemo)(()=>(0,u.roadmapHealth)(B,ay,z),[B,ay,z]),aC=(0,c.useMemo)(()=>{let a=Object.values(ay),b=new Map(B.filter(a=>null===a.parent).sort((a,b)=>a.order-b.order).map((a,b)=>[a.id,b+1]));return G.map(c=>{var d;let e,{item:f}=c.data,g=B.filter(a=>a.parent===f.id),h="feature"===c.type&&"in-progress"===f.status?t(f,a):null;return{...c,data:{...c.data,progress:aB.progress[c.id],drift:aB.drift.filter(a=>a.id===c.id).map(a=>a.message),dueState:(0,u.dueState)(f.due,f.status,z),..."feature"===c.type&&{...(d=f.tasks,{taskDue:e=(0,u.taskDueSummary)(d,ay,z),taskDueSoon:!!e?.next&&"soon"===(0,u.dueState)(e.next,"planned",z)}),taskStatuses:f.tasks.map(a=>ay[a]?.status).filter(a=>!!a&&"cancelled"!==a),nextTaskId:h?.kind==="ready"?h.taskId:null},..."horizon"===c.type&&{chapter:b.get(f.id),epics:{done:g.filter(a=>"done"===a.status).length,total:g.length}}}}})},[G,B,aB,z,ay]),aD=(0,c.useCallback)(a=>H(b=>(0,d.applyNodeChanges)(a,b)),[]),[aE,aF]=(0,c.useState)(!1);async function aG(){Z(!0),L(null);let{data:b,error:c}=await au(`/api/roadmap/generate${a}`,{});if(c){L(c),Z(!1);return}let d=Object.fromEntries(Object.entries((0,C.resolvePositions)(b?.items??[],{})).map(([a,b])=>[a,{x:Math.round(b.x),y:Math.round(b.y)}])),{error:e}=await au(`/api/roadmap/layout${a}`,{positions:d});await ap(),e&&L(e),Z(!1)}let aH=Object.values(f??{}).flat().filter(a=>"cancelled"!==a.status).length,aI="roadmap-md"===W?"from ROADMAP.md":"tasks"===W?`from ${aH} tasks, grouped by phase`:"starter horizons: Shipped · Now · Next · Later";async function aJ(b){let{error:c}=await au(`/api/roadmap/create${a}`,{title:b,parent:$||null});return c||(await ap(),null)}async function aK(b,c){ao(B.map(a=>a.id===b?{...a,...c}:a),E);let{data:d,error:e}=await au(`/api/roadmap/update${a}`,{id:b,patch:c});if(e)return await ap(),e;let f=d?.item;return f?ao(B.map(a=>a.id===b?f:a),E):await ap(),null}async function aL(b){let{data:c,error:d}=await au(`/api/roadmap/delete${a}`,{id:b});return d||(ao(B.filter(a=>a.id!==b),E),c&&(0,ae.undoToast)(`Deleted ${b}`,async()=>{let{error:b}=await au(`/api/roadmap/restore${a}`,c);if(b)throw Error(b);await ap()}),null)}let aM=B.find(a=>a.id===M)??null,aN=a=>{a&&L(a)},aO={edit:a=>{N(a),P(a)},setStatus:(a,b)=>{aK(a,{status:b}).then(aN)},move:(a,b)=>{aK(a,{parent:b}).then(aN)},addEpic:a=>{N(null),aa(a)},duplicate:async b=>{let c=B.find(a=>a.id===b);if(!c)return;let{data:d,error:e}=await au(`/api/roadmap/create${a}`,{title:`${c.title} (copy)`,parent:c.parent,status:"planned",order:c.order+1,due:c.due,body:c.body});if(e)return L(e);await ap(),d?.item&&N(d.item.id)},openFile:a=>e(a),chat:a=>{N(null),i({kind:"epic",id:a})},remove:async a=>{let b=await aL(a);if(b)return L(b);M===a&&N(null)}},aP=(a,b)=>{b.preventDefault(),S({id:a,x:b.clientX,y:b.clientY})},aQ=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(aq,{open:null!==$,heading:$?`New feature under ${$}`:"New horizon",onOpenChange:a=>{a||aa(null)},onSubmit:aJ}),(0,b.jsx)(ar,{open:ab,onOpenChange:ac}),(0,b.jsx)(as,{open:ad,onOpenChange:af,items:B})]});return I?(0,b.jsx)("div",{className:"flex-1 flex items-center justify-center text-sm text-muted",children:"Loading…"}):0===B.length?(0,b.jsxs)("div",{className:"flex-1 p-6",children:[K&&(0,b.jsx)("p",{className:"mb-4 text-sm text-danger",children:K}),(0,b.jsx)(q.EmptyState,{icon:"🗺️",message:"No roadmap yet",subMessage:"Items live in plans/roadmap/R*.md",bordered:!0}),(0,b.jsxs)("div",{className:"mt-4 flex flex-col items-center gap-2",children:[(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)(r.Button,{size:"sm",onClick:aG,disabled:Y,className:"bg-accent text-accent-fg hover:bg-accent/90",children:[(0,b.jsx)(n.Sparkles,{})," ",Y?"Generating…":"Generate roadmap"]}),(0,b.jsxs)(r.Button,{size:"sm",variant:"outline",onClick:()=>(0,w.askAgent)("Plan a roadmap for this project."),disabled:Y,children:[(0,b.jsx)(g.Bot,{})," Plan with agent"]}),(0,b.jsxs)(r.Button,{size:"sm",variant:"outline",onClick:()=>ac(!0),disabled:Y,children:[(0,b.jsx)(h.FileText,{})," Plan from spec"]}),(0,b.jsxs)(r.Button,{size:"sm",variant:"outline",onClick:()=>aa(""),disabled:Y,children:[(0,b.jsx)(m.Plus,{})," Create first horizon"]})]}),(0,b.jsxs)("p",{className:"text-xs text-muted",children:["Generate ",aI,". Existing files are not modified."]})]}),aQ]}):(0,b.jsxs)("div",{className:"relative flex flex-1 min-h-0 flex-col",children:[(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-4 border-b border-border px-3 py-2",children:[(0,b.jsx)("div",{className:"flex rounded-md border border-border p-0.5 text-xs",children:["map","timeline"].map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>{let b,c;return b=new URLSearchParams(s.toString()),"map"===a?b.delete("view"):b.set("view",a),c=b.toString(),void j.replace(c?`/roadmap?${c}`:"/roadmap")},className:(0,v.cn)("rounded-sm px-3 py-1 capitalize",y===a?"bg-surface2 text-txt":"text-muted hover:text-txt"),children:a},a))}),(0,b.jsx)(az,{items:B,tasksById:ay}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[K&&(0,b.jsx)("p",{className:"text-xs text-danger",children:K}),aB.drift.length>0&&(0,b.jsx)(aA,{drift:aB.drift,onSelect:N,onApply:a=>a.suggestedStatus&&aK(a.id,{status:a.suggestedStatus}).then(a=>{a&&L(a)})}),"map"===y&&(0,b.jsxs)(r.Button,{size:"sm",variant:"outline",onClick:function(){let b=a=>({x:Math.round(a.x),y:Math.round(a.y)}),c=new Map(G.map(a=>[a.id,a.measured?.height??48])),d=(0,C.resolvePositions)(B,E),e=Object.fromEntries(Object.entries((0,C.arrangePositions)(B,a=>c.get(a)??48)).map(([a,c])=>[a,b(c)])),f=Object.fromEntries(Object.entries(d).map(([a,c])=>[a,b(c)]));aF(!0);let g=()=>{ao(B,{...E,...e}),aF(!1),requestAnimationFrame(()=>{ai.current&&ak(ai.current,320)}),au(`/api/roadmap/layout${a}`,{positions:e}).then(({error:b})=>{if(b)return L(b);(0,ae.undoToast)("Arranged the map",async()=>{let{error:b}=await au(`/api/roadmap/layout${a}`,{positions:f});if(b)throw Error(b);await ap()})})};if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return g();let h=new Map(G.map(a=>[a.id,a.position])),i=performance.now(),j=a=>{let b=Math.min(1,(a-i)/420),c=1-Math.pow(1-b,4);H(a=>a.map(a=>{let b=h.get(a.id),d=e[a.id];return b&&d?{...a,position:{x:b.x+(d.x-b.x)*c,y:b.y+(d.y-b.y)*c}}:a})),b<1?requestAnimationFrame(j):g()};requestAnimationFrame(j)},disabled:aE,title:"Tidy the map: epics in one column each side of their horizon, nothing overlapping",children:[(0,b.jsx)(k,{})," Arrange"]}),(0,b.jsxs)(r.Button,{size:"sm",variant:"outline",onClick:()=>ac(!0),children:[(0,b.jsx)(h.FileText,{})," Plan from spec"]}),B.some(a=>null!==a.parent&&"done"!==a.status)&&(0,b.jsxs)(r.Button,{size:"sm",variant:"outline",onClick:()=>af(!0),children:[(0,b.jsx)(l.ListTree,{})," Break down epics…"]}),(0,b.jsxs)(r.Button,{size:"sm",onClick:()=>aa(""),className:"bg-accent text-accent-fg hover:bg-accent/90",children:[(0,b.jsx)(m.Plus,{})," Horizon"]})]})]}),"map"===y?(0,b.jsx)("div",{ref:ah,className:"relative flex-1 min-h-0",children:(0,b.jsxs)(d.ReactFlow,{nodes:aC,edges:at,nodeTypes:x.nodeTypes,onNodesChange:aD,onNodeClick:(a,b)=>N(b.id),onNodeContextMenu:(a,b)=>aP(b.id,a),onNodeDragStart:()=>{ag.current=!0},onNodeDragStop:(b,c,d)=>{let e;return ag.current=!1,e=Object.fromEntries(d.map(a=>[a.id,{x:Math.round(a.position.x),y:Math.round(a.position.y)}])),void(ao(B,{...E,...e}),au(`/api/roadmap/layout${a}`,{positions:e}).then(({error:a})=>{a&&L(a),al.current&&(al.current=!1,ap())}))},nodesConnectable:!1,deleteKeyCode:null,colorMode:an?"dark":"light",onInit:ak,minZoom:.2,style:ax,children:[(0,b.jsx)(d.Background,{variant:d.BackgroundVariant.Dots,gap:20,size:1}),(0,b.jsx)(d.Controls,{showInteractive:!1})]})}):(0,b.jsx)(A,{items:B,today:z,onSelect:N,onItemContextMenu:aP,progressById:aB.progress}),(0,b.jsx)(aj,{item:aM,items:B,onClose:()=>N(null),editing:!!aM&&O===aM.id,onEditingChange:a=>P(a?M:null),actions:aO,onSave:aK,onDelete:aL,onAddFeature:a=>{N(null),aa(a)},onEditRaw:a=>{e(a)},tasksById:ay,progressById:aB.progress,onSelect:N}),(0,b.jsx)(_,{at:Q,items:B,actions:aO,onClose:()=>S(null)}),aQ]})}function az({items:a,tasksById:c}){let d=a.filter(a=>null!==a.parent),e=a=>d.filter(b=>b.status===a).length,f=[...new Set(d.flatMap(a=>a.tasks))].map(a=>c[a]).filter(a=>a&&"cancelled"!==a.status),g=f.filter(a=>"done"===a.status).length;return(0,b.jsxs)("div",{className:"hidden items-center gap-4 font-mono text-[11px] text-muted md:flex",children:[["in-progress","paused","done","planned"].filter(a=>"paused"!==a||e(a)>0).map(a=>(0,b.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,b.jsx)(x.StatusDot,{status:a}),(0,b.jsx)("span",{className:(0,v.cn)("tabular-nums","in-progress"===a&&e(a)>0?"text-accent":"text-txt"),children:e(a)}),x.STATUS_LABEL[a].toLowerCase()]},a)),f.length>0&&(0,b.jsxs)("span",{className:"flex items-center gap-2 border-l border-border pl-4",children:[(0,b.jsx)("span",{className:"relative h-1 w-20 overflow-hidden rounded-full bg-border",children:(0,b.jsx)("span",{className:"absolute inset-y-0 left-0 rounded-full bg-teal",style:{width:`${g/f.length*100}%`}})}),(0,b.jsxs)("span",{children:[(0,b.jsxs)("span",{className:"tabular-nums text-txt",children:[g,"/",f.length]})," tasks"]})]})]})}function aA({drift:a,onSelect:c,onApply:d}){return(0,b.jsxs)("details",{className:"group relative",children:[(0,b.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,b.jsx)(f.AlertTriangle,{className:"h-3.5 w-3.5 text-amber"})," ",a.length," need attention"]}),(0,b.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:a.map(a=>(0,b.jsxs)("li",{className:"flex items-start gap-2 border-b border-border px-3 py-2.5 last:border-0",children:[(0,b.jsx)("span",{className:"mt-1 h-1.5 w-1.5 shrink-0 rounded-full bg-amber"}),(0,b.jsx)("button",{type:"button",onClick:()=>c(a.id),className:"flex-1 text-left leading-relaxed text-muted hover:text-txt",children:a.message}),a.suggestedStatus&&(0,b.jsxs)("button",{type:"button",onClick:()=>d(a),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 ${a.suggestedStatus}`,children:["→ ",a.suggestedStatus]})]},`${a.id}-${a.kind}`))})]})}a.s(["default",0,function(){return(0,b.jsx)("div",{className:"flex flex-col h-[calc(100svh-3rem)]",children:(0,b.jsx)(c.Suspense,{children:(0,b.jsx)(ay,{})})})}],690793)}];
3
+ ${e.trim()}`))},className:"flex flex-col gap-3",children:[(0,b.jsx)("textarea",{autoFocus:!0,value:e,onChange:a=>f(a.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,b.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,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)(r.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>{f(""),d(!1)},children:"Cancel"}),(0,b.jsx)(r.Button,{type:"submit",size:"sm",disabled:!e.trim(),className:"bg-accent text-accent-fg hover:bg-accent/90",children:"Break down"})]})]})]})})}function as({open:a,onOpenChange:c,items:d}){return(0,b.jsx)(ap.Dialog,{open:a,onOpenChange:c,children:(0,b.jsxs)(ap.DialogContent,{className:"max-w-lg bg-surface border-border text-txt",children:[(0,b.jsx)(ap.DialogTitle,{className:"text-sm font-semibold text-txt",children:"Break down epics"}),(0,b.jsx)(at,{items:d,onDone:()=>c(!1)})]})})}function at({items:a,onDone:d}){let e,f=(e=(a,b)=>a.order-b.order,a.filter(a=>null===a.parent).sort(e).map(b=>({horizon:b,epics:a.filter(a=>a.parent===b.id&&"done"!==a.status).sort((a,b)=>Number(a.tasks.length>0)-Number(b.tasks.length>0)||e(a,b))})).filter(a=>a.epics.length>0)),[g,h]=(0,c.useState)(()=>new Set(f.flatMap(a=>a.epics.filter(a=>0===a.tasks.length).map(a=>a.id)))),i=(0,R.useChats)().runningCount,j=Math.max(0,Q.MAX_RUNNING_CHATS-i),k=g.size>j;return(0,b.jsxs)("form",{onSubmit:function(a){if(a.preventDefault(),g.size&&!k)for(let a of(d(),f))for(let b of a.epics)g.has(b.id)&&(0,w.askAgent)(`Break down epic ${b.id} into tasks.`,{newChat:!0})},className:"flex flex-col gap-3",children:[(0,b.jsx)("div",{className:"max-h-[50vh] overflow-y-auto rounded-md border border-border",children:f.map(a=>(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"sticky top-0 bg-surface2 px-3 py-1 text-[10px] font-mono uppercase tracking-widest text-muted",children:[a.horizon.id," · ",a.horizon.title]}),(0,b.jsx)("ul",{children:a.epics.map(a=>{let c=g.has(a.id);return(0,b.jsx)("li",{className:"border-b border-border last:border-b-0",children:(0,b.jsxs)("label",{className:"flex items-start gap-2 px-3 py-1.5 text-xs cursor-pointer has-[:disabled]:cursor-not-allowed",children:[(0,b.jsx)("input",{type:"checkbox",checked:c,disabled:!c&&g.size>=j,onChange:()=>{var b;return b=a.id,void h(a=>{let c=new Set(a);return c.delete(b)||c.add(b),c})},className:"mt-0.5 accent-accent"}),(0,b.jsxs)("span",{className:"flex-1 min-w-0 text-txt",children:[(0,b.jsx)("span",{className:"font-mono text-muted mr-1",children:a.id}),a.title]}),a.tasks.length>0&&(0,b.jsxs)("span",{className:"shrink-0 text-[10px] font-mono text-muted",children:["has ",a.tasks.length," task",1===a.tasks.length?"":"s"]})]})},a.id)})})]},a.horizon.id))}),(0,b.jsx)("p",{className:k||0===j?"text-xs text-amber":"text-xs text-muted",children:0===j?`All ${Q.MAX_RUNNING_CHATS} agent slots are busy. Stop a chat or wait for one to finish.`:k?`${g.size} selected, but only ${j} of ${Q.MAX_RUNNING_CHATS} agent slots ${1===j?"is":"are"} free (${i} running). Uncheck some or stop a chat.`:`One chat per epic, running at once (${j} of ${Q.MAX_RUNNING_CHATS} agent slots free). Each shows a plan before writing anything.`}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)(r.Button,{type:"button",variant:"ghost",size:"sm",onClick:d,children:"Cancel"}),(0,b.jsxs)(r.Button,{type:"submit",size:"sm",disabled:!g.size||k,className:"bg-accent text-accent-fg hover:bg-accent/90",children:["Break down ",g.size||""," epic",1===g.size?"":"s"]})]})]})}async function au(a,b){try{let c=await fetch(a,void 0===b?void 0:{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)}),d=await c.json().catch(()=>null);if(!c.ok)return{error:d?.error??`Request failed (${c.status})`};return{data:d}}catch{return{error:"Could not reach the server"}}}function av(a,b,c,d){var f;let g,h,i,j,k,[l,m]=(f=!d,h=(g=a=>({x:a.position.x+(a.measured?.width??("horizon"===a.type?C.HORIZON_W:C.FEATURE_W))/2,y:a.position.y+(a.measured?.height??48)/2}))(b),j=(i=g(c)).x-h.x,k=i.y-h.y,f||Math.abs(j)>Math.abs(k)?j>0?[e.Position.Right,e.Position.Left]:[e.Position.Left,e.Position.Right]:k>0?[e.Position.Bottom,e.Position.Top]:[e.Position.Top,e.Position.Bottom]);return{id:a,source:b.id,target:c.id,sourceHandle:l,targetHandle:`${m}-t`,type:d?"straight":"default",selectable:!1,...function(a,b,c){if(c)return"done"===a.data.item.status?{style:{stroke:"var(--color-accent)",strokeWidth:3}}:{style:{stroke:"var(--color-border2)",strokeWidth:3,strokeDasharray:"6 6"}};let d=b.data.item.status;return"in-progress"===d?{animated:!0,style:{stroke:"var(--color-accent)",strokeWidth:2}}:"done"===d?{style:{stroke:"var(--color-border2)",strokeWidth:1.5}}:{style:{stroke:"var(--color-border2)",strokeWidth:1.5,strokeDasharray:"2 5",strokeLinecap:"round"}}}(b,c,d)}}function aw(a){let b=new MutationObserver(a);return b.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>b.disconnect()}let ax={"--xy-background-color":"var(--color-bg)"};function ay(){let{rootParam:a,openDoc:e,board:f,demo:i}=(0,p.useApp)(),{showAbout:j}=(0,R.useChats)(),s=(0,o.useRouter)(),y=(0,o.useSearchParams)(),z="timeline"===y.get("view")?"timeline":"map",B=(0,u.localToday)(),[D,E]=(0,c.useState)([]),[F,G]=(0,c.useState)({}),[H,I]=(0,c.useState)([]),[J,K]=(0,c.useState)(!0),[L,M]=(0,c.useState)(null),[N,O]=(0,c.useState)(null),[P,Q]=(0,c.useState)(null),[S,T]=(0,c.useState)(null),U=y.get("item"),[V,W]=(0,c.useState)(null);U!==V&&(W(U),U&&O(U));let[X,Y]=(0,c.useState)(null),[Z,$]=(0,c.useState)(!1),[aa,ab]=(0,c.useState)(null),[ac,ad]=(0,c.useState)(!1),[af,ag]=(0,c.useState)(!1),ah=(0,c.useRef)(!1),ai=(0,c.useRef)(null),ak=(0,c.useRef)(null),al=(0,c.useCallback)((a,b=0)=>{ak.current=a;let c=ai.current?.clientWidth??0,d=a.getNodesBounds(a.getNodes());if(!c||!d.width)return;let e=Math.min(1,Math.max(.75,(c-80)/d.width));a.setViewport({x:c/2-(d.x+d.width/2)*e,y:40-d.y*e,zoom:e},{duration:b})},[]),am=(0,c.useRef)(!1),an=(0,c.useRef)(0),ao=(0,c.useSyncExternalStore)(aw,()=>document.documentElement.classList.contains("dark"),()=>!0),ap=(0,c.useCallback)((a,b)=>{E(a),G(b),I(c=>{let d,e;return d=(0,C.resolvePositions)(a,b),e=new Map(c.map(a=>[a.id,a])),a.map(a=>{let b=e.get(a.id);return{id:a.id,type:null===a.parent?"horizon":"feature",position:d[a.id]??{x:0,y:0},data:{item:a},measured:b?.measured,selected:b?.selected}})})},[]),at=(0,c.useCallback)(()=>{let b=++an.current;return au(`/api/roadmap${a}`).then(({data:a,error:c})=>{if(b===an.current){if(K(!1),c){M(c),ap([],{}),O(null);return}M(null),Y(a?.generateSource??null),ap(a?.items??[],a?.layout??{})}})},[a,ap]);(0,c.useEffect)(()=>{at()},[at]),(0,c.useEffect)(()=>{let a=new EventSource("/api/events");return a.onmessage=a=>{try{let b=JSON.parse(a.data);if("roadmap_updated"!==b.type)return;ah.current?am.current=!0:at()}catch{}},()=>a.close()},[at]);let ay=(0,c.useMemo)(()=>{let a=new Map(H.map(a=>[a.id,a])),b=[],c=D.filter(a=>null===a.parent).sort((a,b)=>a.order-b.order);for(let d of(c.forEach((d,e)=>{let f=a.get(d.id),g=c[e+1]&&a.get(c[e+1].id);f&&g&&b.push(av(`spine-${d.id}`,f,g,!0))}),D)){let c=d.parent&&a.get(d.parent),e=a.get(d.id);c&&e&&"horizon"===c.type&&b.push(av(`branch-${d.id}`,c,e,!1))}return b},[D,H]),aB=(0,c.useMemo)(()=>Object.fromEntries(Object.values(f??{}).flat().map(a=>[a.id,a])),[f]),aC=(0,c.useMemo)(()=>(0,u.roadmapHealth)(D,aB,B),[D,aB,B]),aD=(0,c.useMemo)(()=>{let a=Object.values(aB),b=new Map(D.filter(a=>null===a.parent).sort((a,b)=>a.order-b.order).map((a,b)=>[a.id,b+1]));return H.map(c=>{var d;let e,{item:f}=c.data,g=D.filter(a=>a.parent===f.id),h="feature"===c.type&&"in-progress"===f.status?t(f,a):null;return{...c,data:{...c.data,progress:aC.progress[c.id],drift:aC.drift.filter(a=>a.id===c.id).map(a=>a.message),dueState:(0,u.dueState)(f.due,f.status,B),..."feature"===c.type&&{...(d=f.tasks,{taskDue:e=(0,u.taskDueSummary)(d,aB,B),taskDueSoon:!!e?.next&&"soon"===(0,u.dueState)(e.next,"planned",B)}),taskStatuses:f.tasks.map(a=>aB[a]?.status).filter(a=>!!a&&"cancelled"!==a),nextTaskId:h?.kind==="ready"?h.taskId:null},..."horizon"===c.type&&{chapter:b.get(f.id),epics:{done:g.filter(a=>"done"===a.status).length,total:g.length}}}}})},[H,D,aC,B,aB]),aE=(0,c.useCallback)(a=>I(b=>(0,d.applyNodeChanges)(a,b)),[]),[aF,aG]=(0,c.useState)(!1);async function aH(){$(!0),M(null);let{data:b,error:c}=await au(`/api/roadmap/generate${a}`,{});if(c){M(c),$(!1);return}let d=Object.fromEntries(Object.entries((0,C.resolvePositions)(b?.items??[],{})).map(([a,b])=>[a,{x:Math.round(b.x),y:Math.round(b.y)}])),{error:e}=await au(`/api/roadmap/layout${a}`,{positions:d});await at(),e&&M(e),$(!1)}let aI=Object.values(f??{}).flat().filter(a=>"cancelled"!==a.status).length,aJ="roadmap-md"===X?"from ROADMAP.md":"tasks"===X?`from ${aI} tasks, grouped by phase`:"starter horizons: Shipped · Now · Next · Later";async function aK(b){let{error:c}=await au(`/api/roadmap/create${a}`,{title:b,parent:aa||null});return c||(await at(),null)}async function aL(b,c){ap(D.map(a=>a.id===b?{...a,...c}:a),F);let{data:d,error:e}=await au(`/api/roadmap/update${a}`,{id:b,patch:c});if(e)return await at(),e;let f=d?.item;return f?ap(D.map(a=>a.id===b?f:a),F):await at(),null}async function aM(b){let{data:c,error:d}=await au(`/api/roadmap/delete${a}`,{id:b});return d||(ap(D.filter(a=>a.id!==b),F),c&&(0,ae.undoToast)(`Deleted ${b}`,async()=>{let{error:b}=await au(`/api/roadmap/restore${a}`,c);if(b)throw Error(b);await at()}),null)}let aN=D.find(a=>a.id===N)??null,aO=a=>{a&&M(a)},aP={edit:a=>{O(a),Q(a)},setStatus:(a,b)=>{aL(a,{status:b}).then(aO)},move:(a,b)=>{aL(a,{parent:b}).then(aO)},addEpic:a=>{O(null),ab(a)},duplicate:async b=>{let c=D.find(a=>a.id===b);if(!c)return;let{data:d,error:e}=await au(`/api/roadmap/create${a}`,{title:`${c.title} (copy)`,parent:c.parent,status:"planned",order:c.order+1,due:c.due,body:c.body});if(e)return M(e);await at(),d?.item&&O(d.item.id)},openFile:a=>e(a),chat:a=>{O(null),j({kind:"epic",id:a})},remove:async a=>{let b=await aM(a);if(b)return M(b);N===a&&O(null)}},aQ=(a,b)=>{i||(b.preventDefault(),T({id:a,x:b.clientX,y:b.clientY}))},aR=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(aq,{open:null!==aa,heading:aa?`New feature under ${aa}`:"New horizon",onOpenChange:a=>{a||ab(null)},onSubmit:aK}),(0,b.jsx)(ar,{open:ac,onOpenChange:ad}),(0,b.jsx)(as,{open:af,onOpenChange:ag,items:D})]});return J?(0,b.jsx)("div",{className:"flex-1 flex items-center justify-center text-sm text-muted",children:"Loading…"}):0===D.length?(0,b.jsxs)("div",{className:"flex-1 p-6",children:[L&&(0,b.jsx)("p",{className:"mb-4 text-sm text-danger",children:L}),(0,b.jsx)(q.EmptyState,{icon:"🗺️",message:"No roadmap yet",subMessage:"Items live in plans/roadmap/R*.md",bordered:!0}),!i&&(0,b.jsxs)("div",{className:"mt-4 flex flex-col items-center gap-2",children:[(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)(r.Button,{size:"sm",onClick:aH,disabled:Z,className:"bg-accent text-accent-fg hover:bg-accent/90",children:[(0,b.jsx)(n.Sparkles,{})," ",Z?"Generating…":"Generate roadmap"]}),(0,b.jsxs)(r.Button,{size:"sm",variant:"outline",onClick:()=>(0,w.askAgent)("Plan a roadmap for this project."),disabled:Z,children:[(0,b.jsx)(g.Bot,{})," Plan with agent"]}),(0,b.jsxs)(r.Button,{size:"sm",variant:"outline",onClick:()=>ad(!0),disabled:Z,children:[(0,b.jsx)(h.FileText,{})," Plan from spec"]}),(0,b.jsxs)(r.Button,{size:"sm",variant:"outline",onClick:()=>ab(""),disabled:Z,children:[(0,b.jsx)(m.Plus,{})," Create first horizon"]})]}),(0,b.jsxs)("p",{className:"text-xs text-muted",children:["Generate ",aJ,". Existing files are not modified."]})]}),aR]}):(0,b.jsxs)("div",{className:"relative flex flex-1 min-h-0 flex-col",children:[(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-4 border-b border-border px-3 py-2",children:[(0,b.jsx)("div",{className:"flex rounded-md border border-border p-0.5 text-xs",children:["map","timeline"].map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>{let b,c;return b=new URLSearchParams(y.toString()),"map"===a?b.delete("view"):b.set("view",a),c=b.toString(),void s.replace(c?`/roadmap?${c}`:"/roadmap")},className:(0,v.cn)("rounded-sm px-3 py-1 capitalize",z===a?"bg-surface2 text-txt":"text-muted hover:text-txt"),children:a},a))}),(0,b.jsx)(az,{items:D,tasksById:aB}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[L&&(0,b.jsx)("p",{className:"text-xs text-danger",children:L}),aC.drift.length>0&&(0,b.jsx)(aA,{drift:aC.drift,onSelect:O,onApply:i?void 0:a=>a.suggestedStatus&&aL(a.id,{status:a.suggestedStatus}).then(a=>{a&&M(a)})}),!i&&(0,b.jsxs)(b.Fragment,{children:["map"===z&&(0,b.jsxs)(r.Button,{size:"sm",variant:"outline",onClick:function(){let b=a=>({x:Math.round(a.x),y:Math.round(a.y)}),c=new Map(H.map(a=>[a.id,a.measured?.height??48])),d=(0,C.resolvePositions)(D,F),e=Object.fromEntries(Object.entries((0,C.arrangePositions)(D,a=>c.get(a)??48)).map(([a,c])=>[a,b(c)])),f=Object.fromEntries(Object.entries(d).map(([a,c])=>[a,b(c)]));aG(!0);let g=()=>{ap(D,{...F,...e}),aG(!1),requestAnimationFrame(()=>{ak.current&&al(ak.current,320)}),au(`/api/roadmap/layout${a}`,{positions:e}).then(({error:b})=>{if(b)return M(b);(0,ae.undoToast)("Arranged the map",async()=>{let{error:b}=await au(`/api/roadmap/layout${a}`,{positions:f});if(b)throw Error(b);await at()})})};if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return g();let h=new Map(H.map(a=>[a.id,a.position])),i=performance.now(),j=a=>{let b=Math.min(1,(a-i)/420),c=1-Math.pow(1-b,4);I(a=>a.map(a=>{let b=h.get(a.id),d=e[a.id];return b&&d?{...a,position:{x:b.x+(d.x-b.x)*c,y:b.y+(d.y-b.y)*c}}:a})),b<1?requestAnimationFrame(j):g()};requestAnimationFrame(j)},disabled:aF,title:"Tidy the map: epics in one column each side of their horizon, nothing overlapping",children:[(0,b.jsx)(k,{})," Arrange"]}),(0,b.jsxs)(r.Button,{size:"sm",variant:"outline",onClick:()=>ad(!0),children:[(0,b.jsx)(h.FileText,{})," Plan from spec"]}),D.some(a=>null!==a.parent&&"done"!==a.status)&&(0,b.jsxs)(r.Button,{size:"sm",variant:"outline",onClick:()=>ag(!0),children:[(0,b.jsx)(l.ListTree,{})," Break down epics…"]}),(0,b.jsxs)(r.Button,{size:"sm",onClick:()=>ab(""),className:"bg-accent text-accent-fg hover:bg-accent/90",children:[(0,b.jsx)(m.Plus,{})," Horizon"]})]})]})]}),"map"===z?(0,b.jsx)("div",{ref:ai,className:"relative flex-1 min-h-0",children:(0,b.jsxs)(d.ReactFlow,{nodes:aD,edges:ay,nodeTypes:x.nodeTypes,onNodesChange:aE,nodesDraggable:!i,onNodeClick:(a,b)=>O(b.id),onNodeContextMenu:(a,b)=>aQ(b.id,a),onNodeDragStart:()=>{ah.current=!0},onNodeDragStop:(b,c,d)=>{let e;return ah.current=!1,e=Object.fromEntries(d.map(a=>[a.id,{x:Math.round(a.position.x),y:Math.round(a.position.y)}])),void(ap(D,{...F,...e}),au(`/api/roadmap/layout${a}`,{positions:e}).then(({error:a})=>{a&&M(a),am.current&&(am.current=!1,at())}))},nodesConnectable:!1,deleteKeyCode:null,colorMode:ao?"dark":"light",onInit:al,minZoom:.2,style:ax,children:[(0,b.jsx)(d.Background,{variant:d.BackgroundVariant.Dots,gap:20,size:1}),(0,b.jsx)(d.Controls,{showInteractive:!1})]})}):(0,b.jsx)(A,{items:D,today:B,onSelect:O,onItemContextMenu:aQ,progressById:aC.progress}),(0,b.jsx)(aj,{item:aN,items:D,onClose:()=>O(null),editing:!!aN&&P===aN.id,onEditingChange:a=>Q(a?N:null),actions:aP,onSave:aL,onDelete:aM,onAddFeature:a=>{O(null),ab(a)},onEditRaw:a=>{e(a)},tasksById:aB,progressById:aC.progress,onSelect:O}),(0,b.jsx)(_,{at:S,items:D,actions:aP,onClose:()=>T(null)}),aR]})}function az({items:a,tasksById:c}){let d=a.filter(a=>null!==a.parent),e=a=>d.filter(b=>b.status===a).length,f=[...new Set(d.flatMap(a=>a.tasks))].map(a=>c[a]).filter(a=>a&&"cancelled"!==a.status),g=f.filter(a=>"done"===a.status).length;return(0,b.jsxs)("div",{className:"hidden items-center gap-4 font-mono text-[11px] text-muted md:flex",children:[["in-progress","paused","done","planned"].filter(a=>"paused"!==a||e(a)>0).map(a=>(0,b.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,b.jsx)(x.StatusDot,{status:a}),(0,b.jsx)("span",{className:(0,v.cn)("tabular-nums","in-progress"===a&&e(a)>0?"text-accent":"text-txt"),children:e(a)}),x.STATUS_LABEL[a].toLowerCase()]},a)),f.length>0&&(0,b.jsxs)("span",{className:"flex items-center gap-2 border-l border-border pl-4",children:[(0,b.jsx)("span",{className:"relative h-1 w-20 overflow-hidden rounded-full bg-border",children:(0,b.jsx)("span",{className:"absolute inset-y-0 left-0 rounded-full bg-teal",style:{width:`${g/f.length*100}%`}})}),(0,b.jsxs)("span",{children:[(0,b.jsxs)("span",{className:"tabular-nums text-txt",children:[g,"/",f.length]})," tasks"]})]})]})}function aA({drift:a,onSelect:c,onApply:d}){return(0,b.jsxs)("details",{className:"group relative",children:[(0,b.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,b.jsx)(f.AlertTriangle,{className:"h-3.5 w-3.5 text-amber"})," ",a.length," need attention"]}),(0,b.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:a.map(a=>(0,b.jsxs)("li",{className:"flex items-start gap-2 border-b border-border px-3 py-2.5 last:border-0",children:[(0,b.jsx)("span",{className:"mt-1 h-1.5 w-1.5 shrink-0 rounded-full bg-amber"}),(0,b.jsx)("button",{type:"button",onClick:()=>c(a.id),className:"flex-1 text-left leading-relaxed text-muted hover:text-txt",children:a.message}),a.suggestedStatus&&d&&(0,b.jsxs)("button",{type:"button",onClick:()=>d(a),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 ${a.suggestedStatus}`,children:["→ ",a.suggestedStatus]})]},`${a.id}-${a.kind}`))})]})}a.s(["default",0,function(){return(0,b.jsx)("div",{className:"flex flex-col h-[calc(100svh-3rem)]",children:(0,b.jsx)(c.Suspense,{children:(0,b.jsx)(ay,{})})})}],690793)}];
4
4
 
5
5
  //# sourceMappingURL=src_app_%28app%29_roadmap_page_tsx_0vcq3jr._.js.map