vibedoc 1.7.0 → 1.9.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 +15 -0
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +42 -14
  5. package/.next/routes-manifest.json +90 -0
  6. package/.next/server/app/(app)/activity/page.js +2 -2
  7. package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
  8. package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/(app)/board/page.js +2 -2
  10. package/.next/server/app/(app)/board/page.js.nft.json +1 -1
  11. package/.next/server/app/(app)/board/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/(app)/chat/page.js +2 -2
  13. package/.next/server/app/(app)/chat/page.js.nft.json +1 -1
  14. package/.next/server/app/(app)/chat/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/(app)/docs/page.js +2 -2
  16. package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
  17. package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
  18. package/.next/server/app/(app)/explorer/page.js +2 -2
  19. package/.next/server/app/(app)/explorer/page.js.nft.json +1 -1
  20. package/.next/server/app/(app)/explorer/page_client-reference-manifest.js +1 -1
  21. package/.next/server/app/(app)/manual-tests/page/app-paths-manifest.json +3 -0
  22. package/.next/server/app/(app)/manual-tests/page/build-manifest.json +20 -0
  23. package/.next/server/app/(app)/manual-tests/page/next-font-manifest.json +11 -0
  24. package/.next/server/app/(app)/manual-tests/page/react-loadable-manifest.json +1 -0
  25. package/.next/server/app/(app)/manual-tests/page/server-reference-manifest.json +4 -0
  26. package/.next/server/app/(app)/manual-tests/page.js +15 -0
  27. package/.next/server/app/(app)/manual-tests/page.js.map +5 -0
  28. package/.next/server/app/(app)/manual-tests/page.js.nft.json +1 -0
  29. package/.next/server/app/(app)/manual-tests/page_client-reference-manifest.js +3 -0
  30. package/.next/server/app/(app)/memory/page.js +2 -2
  31. package/.next/server/app/(app)/memory/page.js.nft.json +1 -1
  32. package/.next/server/app/(app)/memory/page_client-reference-manifest.js +1 -1
  33. package/.next/server/app/(app)/roadmap/page.js +2 -2
  34. package/.next/server/app/(app)/roadmap/page.js.nft.json +1 -1
  35. package/.next/server/app/(app)/roadmap/page_client-reference-manifest.js +1 -1
  36. package/.next/server/app/(app)/settings/page.js +2 -2
  37. package/.next/server/app/(app)/settings/page.js.nft.json +1 -1
  38. package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
  39. package/.next/server/app/(app)/setup/page.js +2 -2
  40. package/.next/server/app/(app)/setup/page.js.nft.json +1 -1
  41. package/.next/server/app/(app)/setup/page_client-reference-manifest.js +1 -1
  42. package/.next/server/app/_global-error/page.js +2 -2
  43. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  44. package/.next/server/app/_global-error.html +1 -1
  45. package/.next/server/app/_global-error.rsc +1 -1
  46. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  47. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  48. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  49. package/.next/server/app/_not-found/page.js +2 -2
  50. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  51. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  52. package/.next/server/app/_not-found.html +1 -1
  53. package/.next/server/app/_not-found.rsc +3 -2
  54. package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -2
  55. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -2
  56. package/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -2
  57. package/.next/server/app/activity.html +1 -1
  58. package/.next/server/app/activity.rsc +13 -12
  59. package/.next/server/app/activity.segments/!KGFwcCk/activity/__PAGE__.segment.rsc +12 -9
  60. package/.next/server/app/activity.segments/_full.segment.rsc +13 -12
  61. package/.next/server/app/activity.segments/_tree.segment.rsc +3 -2
  62. package/.next/server/app/api/activity/route.js +2 -2
  63. package/.next/server/app/api/activity/route.js.nft.json +1 -1
  64. package/.next/server/app/api/backlinks/route.js +2 -2
  65. package/.next/server/app/api/backlinks/route.js.nft.json +1 -1
  66. package/.next/server/app/api/chat/route.js +3 -3
  67. package/.next/server/app/api/chat/route.js.nft.json +1 -1
  68. package/.next/server/app/api/context/route.js +2 -2
  69. package/.next/server/app/api/context/route.js.nft.json +1 -1
  70. package/.next/server/app/api/conversations/route.js +3 -3
  71. package/.next/server/app/api/conversations/route.js.nft.json +1 -1
  72. package/.next/server/app/api/decisions/route.js +3 -3
  73. package/.next/server/app/api/decisions/route.js.nft.json +1 -1
  74. package/.next/server/app/api/docs/route.js +3 -3
  75. package/.next/server/app/api/docs/route.js.nft.json +1 -1
  76. package/.next/server/app/api/explorer/route.js +3 -3
  77. package/.next/server/app/api/explorer/route.js.nft.json +1 -1
  78. package/.next/server/app/api/mcp/route.js +3 -3
  79. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  80. package/.next/server/app/api/memory/entries/delete/route/app-paths-manifest.json +3 -0
  81. package/.next/server/app/api/memory/entries/delete/route/build-manifest.json +12 -0
  82. package/.next/server/app/api/memory/entries/delete/route/server-reference-manifest.json +4 -0
  83. package/.next/server/app/api/memory/entries/delete/route.js +9 -0
  84. package/.next/server/app/api/memory/entries/delete/route.js.map +5 -0
  85. package/.next/server/app/api/memory/entries/delete/route.js.nft.json +1 -0
  86. package/.next/server/app/api/memory/entries/delete/route_client-reference-manifest.js +3 -0
  87. package/.next/server/app/api/memory/entries/restore/route/app-paths-manifest.json +3 -0
  88. package/.next/server/app/api/memory/entries/restore/route/build-manifest.json +12 -0
  89. package/.next/server/app/api/memory/entries/restore/route/server-reference-manifest.json +4 -0
  90. package/.next/server/app/api/memory/entries/restore/route.js +9 -0
  91. package/.next/server/app/api/memory/entries/restore/route.js.map +5 -0
  92. package/.next/server/app/api/memory/entries/restore/route.js.nft.json +1 -0
  93. package/.next/server/app/api/memory/entries/restore/route_client-reference-manifest.js +3 -0
  94. package/.next/server/app/api/memory/entries/route/app-paths-manifest.json +3 -0
  95. package/.next/server/app/api/memory/entries/route/build-manifest.json +12 -0
  96. package/.next/server/app/api/memory/entries/route/server-reference-manifest.json +4 -0
  97. package/.next/server/app/api/memory/entries/route.js +8 -0
  98. package/.next/server/app/api/memory/entries/route.js.map +5 -0
  99. package/.next/server/app/api/memory/entries/route.js.nft.json +1 -0
  100. package/.next/server/app/api/memory/entries/route_client-reference-manifest.js +3 -0
  101. package/.next/server/app/api/memory/entries/save/route/app-paths-manifest.json +3 -0
  102. package/.next/server/app/api/memory/entries/save/route/build-manifest.json +12 -0
  103. package/.next/server/app/api/memory/entries/save/route/server-reference-manifest.json +4 -0
  104. package/.next/server/app/api/memory/entries/save/route.js +9 -0
  105. package/.next/server/app/api/memory/entries/save/route.js.map +5 -0
  106. package/.next/server/app/api/memory/entries/save/route.js.nft.json +1 -0
  107. package/.next/server/app/api/memory/entries/save/route_client-reference-manifest.js +3 -0
  108. package/.next/server/app/api/memory/graph/route/app-paths-manifest.json +3 -0
  109. package/.next/server/app/api/memory/graph/route/build-manifest.json +12 -0
  110. package/.next/server/app/api/memory/graph/route/server-reference-manifest.json +4 -0
  111. package/.next/server/app/api/memory/graph/route.js +9 -0
  112. package/.next/server/app/api/memory/graph/route.js.map +5 -0
  113. package/.next/server/app/api/memory/graph/route.js.nft.json +1 -0
  114. package/.next/server/app/api/memory/graph/route_client-reference-manifest.js +3 -0
  115. package/.next/server/app/api/memory/history/route/app-paths-manifest.json +3 -0
  116. package/.next/server/app/api/memory/history/route/build-manifest.json +12 -0
  117. package/.next/server/app/api/memory/history/route/server-reference-manifest.json +4 -0
  118. package/.next/server/app/api/memory/history/route.js +9 -0
  119. package/.next/server/app/api/memory/history/route.js.map +5 -0
  120. package/.next/server/app/api/memory/history/route.js.nft.json +1 -0
  121. package/.next/server/app/api/memory/history/route_client-reference-manifest.js +3 -0
  122. package/.next/server/app/api/memory/route.js +3 -3
  123. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  124. package/.next/server/app/api/plan/apply/route.js +4 -4
  125. package/.next/server/app/api/plan/apply/route.js.nft.json +1 -1
  126. package/.next/server/app/api/projects/route.js +2 -2
  127. package/.next/server/app/api/projects/route.js.nft.json +1 -1
  128. package/.next/server/app/api/registry/route.js +3 -3
  129. package/.next/server/app/api/registry/route.js.nft.json +1 -1
  130. package/.next/server/app/api/roadmap/create/route.js +4 -4
  131. package/.next/server/app/api/roadmap/create/route.js.nft.json +1 -1
  132. package/.next/server/app/api/roadmap/delete/route.js +4 -4
  133. package/.next/server/app/api/roadmap/delete/route.js.nft.json +1 -1
  134. package/.next/server/app/api/roadmap/generate/route.js +4 -4
  135. package/.next/server/app/api/roadmap/generate/route.js.nft.json +1 -1
  136. package/.next/server/app/api/roadmap/layout/route.js +4 -4
  137. package/.next/server/app/api/roadmap/layout/route.js.nft.json +1 -1
  138. package/.next/server/app/api/roadmap/restore/route/app-paths-manifest.json +3 -0
  139. package/.next/server/app/api/roadmap/restore/route/build-manifest.json +12 -0
  140. package/.next/server/app/api/roadmap/restore/route/server-reference-manifest.json +4 -0
  141. package/.next/server/app/api/roadmap/restore/route.js +9 -0
  142. package/.next/server/app/api/roadmap/restore/route.js.map +5 -0
  143. package/.next/server/app/api/roadmap/restore/route.js.nft.json +1 -0
  144. package/.next/server/app/api/roadmap/restore/route_client-reference-manifest.js +3 -0
  145. package/.next/server/app/api/roadmap/route.js +3 -3
  146. package/.next/server/app/api/roadmap/route.js.nft.json +1 -1
  147. package/.next/server/app/api/roadmap/update/route.js +4 -4
  148. package/.next/server/app/api/roadmap/update/route.js.nft.json +1 -1
  149. package/.next/server/app/api/sessions/route.js +2 -2
  150. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  151. package/.next/server/app/api/settings/route.js +3 -3
  152. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  153. package/.next/server/app/api/setup/generate/route.js +4 -4
  154. package/.next/server/app/api/setup/generate/route.js.nft.json +1 -1
  155. package/.next/server/app/api/setup/write/route.js +3 -3
  156. package/.next/server/app/api/setup/write/route.js.nft.json +1 -1
  157. package/.next/server/app/api/summary/route.js +2 -2
  158. package/.next/server/app/api/summary/route.js.nft.json +1 -1
  159. package/.next/server/app/api/tasks/bulk/route/app-paths-manifest.json +3 -0
  160. package/.next/server/app/api/tasks/bulk/route/build-manifest.json +12 -0
  161. package/.next/server/app/api/tasks/bulk/route/server-reference-manifest.json +4 -0
  162. package/.next/server/app/api/tasks/bulk/route.js +9 -0
  163. package/.next/server/app/api/tasks/bulk/route.js.map +5 -0
  164. package/.next/server/app/api/tasks/bulk/route.js.nft.json +1 -0
  165. package/.next/server/app/api/tasks/bulk/route_client-reference-manifest.js +3 -0
  166. package/.next/server/app/api/tasks/create/route.js +3 -3
  167. package/.next/server/app/api/tasks/create/route.js.nft.json +1 -1
  168. package/.next/server/app/api/tasks/delete/route/app-paths-manifest.json +3 -0
  169. package/.next/server/app/api/tasks/delete/route/build-manifest.json +12 -0
  170. package/.next/server/app/api/tasks/delete/route/server-reference-manifest.json +4 -0
  171. package/.next/server/app/api/tasks/delete/route.js +9 -0
  172. package/.next/server/app/api/tasks/delete/route.js.map +5 -0
  173. package/.next/server/app/api/tasks/delete/route.js.nft.json +1 -0
  174. package/.next/server/app/api/tasks/delete/route_client-reference-manifest.js +3 -0
  175. package/.next/server/app/api/tasks/manual-tests/route/app-paths-manifest.json +3 -0
  176. package/.next/server/app/api/tasks/manual-tests/route/build-manifest.json +12 -0
  177. package/.next/server/app/api/tasks/manual-tests/route/server-reference-manifest.json +4 -0
  178. package/.next/server/app/api/tasks/manual-tests/route.js +8 -0
  179. package/.next/server/app/api/tasks/manual-tests/route.js.map +5 -0
  180. package/.next/server/app/api/tasks/manual-tests/route.js.nft.json +1 -0
  181. package/.next/server/app/api/tasks/manual-tests/route_client-reference-manifest.js +3 -0
  182. package/.next/server/app/api/tasks/restore/route/app-paths-manifest.json +3 -0
  183. package/.next/server/app/api/tasks/restore/route/build-manifest.json +12 -0
  184. package/.next/server/app/api/tasks/restore/route/server-reference-manifest.json +4 -0
  185. package/.next/server/app/api/tasks/restore/route.js +9 -0
  186. package/.next/server/app/api/tasks/restore/route.js.map +5 -0
  187. package/.next/server/app/api/tasks/restore/route.js.nft.json +1 -0
  188. package/.next/server/app/api/tasks/restore/route_client-reference-manifest.js +3 -0
  189. package/.next/server/app/api/tasks/review/route/app-paths-manifest.json +3 -0
  190. package/.next/server/app/api/tasks/review/route/build-manifest.json +12 -0
  191. package/.next/server/app/api/tasks/review/route/server-reference-manifest.json +4 -0
  192. package/.next/server/app/api/tasks/review/route.js +9 -0
  193. package/.next/server/app/api/tasks/review/route.js.map +5 -0
  194. package/.next/server/app/api/tasks/review/route.js.nft.json +1 -0
  195. package/.next/server/app/api/tasks/review/route_client-reference-manifest.js +3 -0
  196. package/.next/server/app/api/tasks/route.js +3 -3
  197. package/.next/server/app/api/tasks/route.js.nft.json +1 -1
  198. package/.next/server/app/api/tasks/update/route/app-paths-manifest.json +3 -0
  199. package/.next/server/app/api/tasks/update/route/build-manifest.json +12 -0
  200. package/.next/server/app/api/tasks/update/route/server-reference-manifest.json +4 -0
  201. package/.next/server/app/api/tasks/update/route.js +9 -0
  202. package/.next/server/app/api/tasks/update/route.js.map +5 -0
  203. package/.next/server/app/api/tasks/update/route.js.nft.json +1 -0
  204. package/.next/server/app/api/tasks/update/route_client-reference-manifest.js +3 -0
  205. package/.next/server/app/api/views/route/app-paths-manifest.json +3 -0
  206. package/.next/server/app/api/views/route/build-manifest.json +12 -0
  207. package/.next/server/app/api/views/route/server-reference-manifest.json +4 -0
  208. package/.next/server/app/api/views/route.js +9 -0
  209. package/.next/server/app/api/views/route.js.map +5 -0
  210. package/.next/server/app/api/views/route.js.nft.json +1 -0
  211. package/.next/server/app/api/views/route_client-reference-manifest.js +3 -0
  212. package/.next/server/app/board.html +1 -1
  213. package/.next/server/app/board.rsc +13 -12
  214. package/.next/server/app/board.segments/!KGFwcCk/board/__PAGE__.segment.rsc +7 -6
  215. package/.next/server/app/board.segments/_full.segment.rsc +13 -12
  216. package/.next/server/app/board.segments/_tree.segment.rsc +3 -2
  217. package/.next/server/app/chat.html +1 -1
  218. package/.next/server/app/chat.rsc +13 -12
  219. package/.next/server/app/chat.segments/!KGFwcCk/chat/__PAGE__.segment.rsc +7 -6
  220. package/.next/server/app/chat.segments/_full.segment.rsc +13 -12
  221. package/.next/server/app/chat.segments/_tree.segment.rsc +3 -2
  222. package/.next/server/app/docs.html +1 -1
  223. package/.next/server/app/docs.rsc +13 -12
  224. package/.next/server/app/docs.segments/!KGFwcCk/docs/__PAGE__.segment.rsc +7 -6
  225. package/.next/server/app/docs.segments/_full.segment.rsc +13 -12
  226. package/.next/server/app/docs.segments/_tree.segment.rsc +3 -2
  227. package/.next/server/app/explorer.html +1 -1
  228. package/.next/server/app/explorer.rsc +13 -12
  229. package/.next/server/app/explorer.segments/!KGFwcCk/explorer/__PAGE__.segment.rsc +11 -9
  230. package/.next/server/app/explorer.segments/_full.segment.rsc +13 -12
  231. package/.next/server/app/explorer.segments/_tree.segment.rsc +3 -2
  232. package/.next/server/app/index.html +1 -1
  233. package/.next/server/app/index.rsc +3 -2
  234. package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -2
  235. package/.next/server/app/index.segments/_full.segment.rsc +3 -2
  236. package/.next/server/app/index.segments/_tree.segment.rsc +3 -2
  237. package/.next/server/app/manual-tests.html +1 -0
  238. package/.next/server/app/manual-tests.meta +31 -0
  239. package/.next/server/app/manual-tests.rsc +30 -0
  240. package/.next/server/app/manual-tests.segments/!KGFwcCk/manual-tests/__PAGE__.segment.rsc +33 -0
  241. package/.next/server/app/manual-tests.segments/_full.segment.rsc +30 -0
  242. package/.next/server/app/manual-tests.segments/_tree.segment.rsc +5 -0
  243. package/.next/server/app/memory.html +1 -1
  244. package/.next/server/app/memory.rsc +14 -12
  245. package/.next/server/app/memory.segments/!KGFwcCk/memory/__PAGE__.segment.rsc +13 -9
  246. package/.next/server/app/memory.segments/_full.segment.rsc +14 -12
  247. package/.next/server/app/memory.segments/_tree.segment.rsc +4 -2
  248. package/.next/server/app/page.js +2 -2
  249. package/.next/server/app/page.js.nft.json +1 -1
  250. package/.next/server/app/page_client-reference-manifest.js +1 -1
  251. package/.next/server/app/roadmap.html +1 -1
  252. package/.next/server/app/roadmap.rsc +13 -12
  253. package/.next/server/app/roadmap.segments/!KGFwcCk/roadmap/__PAGE__.segment.rsc +7 -6
  254. package/.next/server/app/roadmap.segments/_full.segment.rsc +13 -12
  255. package/.next/server/app/roadmap.segments/_tree.segment.rsc +3 -2
  256. package/.next/server/app/settings.html +1 -1
  257. package/.next/server/app/settings.rsc +13 -12
  258. package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +11 -9
  259. package/.next/server/app/settings.segments/_full.segment.rsc +13 -12
  260. package/.next/server/app/settings.segments/_tree.segment.rsc +3 -2
  261. package/.next/server/app/setup.html +1 -1
  262. package/.next/server/app/setup.rsc +13 -12
  263. package/.next/server/app/setup.segments/!KGFwcCk/setup/__PAGE__.segment.rsc +11 -9
  264. package/.next/server/app/setup.segments/_full.segment.rsc +13 -12
  265. package/.next/server/app/setup.segments/_tree.segment.rsc +3 -2
  266. package/.next/server/app-paths-manifest.json +15 -0
  267. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0-5bkpj._.js → 11mp_@anthropic-ai_sdk_0-_cqh8._.js} +1 -1
  268. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_01l5h3i._.js → 11mp_@anthropic-ai_sdk_00o5o78._.js} +1 -1
  269. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_00psb_y._.js → 11mp_@anthropic-ai_sdk_03cp17a._.js} +1 -1
  270. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_072r2bd._.js → 11mp_@anthropic-ai_sdk_07dk2er._.js} +1 -1
  271. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0_e9zpr._.js +3 -0
  272. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0_xx_qf._.js +3 -0
  273. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0aer9lc._.js +3 -0
  274. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0ax30pe._.js +3 -0
  275. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0gn7vgs._.js +3 -0
  276. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0hye94a._.js +3 -0
  277. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0ir5cgk._.js +3 -0
  278. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0je0_pa._.js +3 -0
  279. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0jfgh0o._.js +3 -0
  280. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0mha4x1._.js +3 -0
  281. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0n__boa._.js +3 -0
  282. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0sqv26_._.js +3 -0
  283. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0wnc6g-._.js +3 -0
  284. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0xh0g59._.js +3 -0
  285. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1-5wyhj._.js +3 -0
  286. package/.next/server/chunks/11mp_@anthropic-ai_sdk_13ahm3n._.js +3 -0
  287. package/.next/server/chunks/11mp_@anthropic-ai_sdk_13e6aq4._.js +3 -0
  288. package/.next/server/chunks/11mp_@anthropic-ai_sdk_14eg0ld._.js +3 -0
  289. package/.next/server/chunks/11mp_@anthropic-ai_sdk_15md1n2._.js +3 -0
  290. package/.next/server/chunks/11mp_@anthropic-ai_sdk_16av8b9._.js +3 -0
  291. package/.next/server/chunks/11mp_@anthropic-ai_sdk_16hjhv1._.js +3 -0
  292. package/.next/server/chunks/11mp_@anthropic-ai_sdk_16txvf7._.js +3 -0
  293. package/.next/server/chunks/11mp_@anthropic-ai_sdk_198yu7d._.js +3 -0
  294. package/.next/server/chunks/11mp_@anthropic-ai_sdk_198yu7d._.js.map +1 -0
  295. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_9tfq3._.js +3 -0
  296. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_9tfq3._.js.map +1 -0
  297. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_izr2o._.js +3 -0
  298. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_izr2o._.js.map +1 -0
  299. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1fljcyg._.js +3 -0
  300. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1fljcyg._.js.map +1 -0
  301. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1lrt6ul._.js +3 -0
  302. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1lrt6ul._.js.map +1 -0
  303. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1nev_ee._.js +3 -0
  304. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1nev_ee._.js.map +1 -0
  305. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1pgoe2i._.js +3 -0
  306. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1pgoe2i._.js.map +1 -0
  307. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1rgl7mu._.js +3 -0
  308. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1rgl7mu._.js.map +1 -0
  309. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1slq49k._.js +3 -0
  310. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1slq49k._.js.map +1 -0
  311. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1t9bdf0._.js +3 -0
  312. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1t9bdf0._.js.map +1 -0
  313. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1u6qqm2._.js +3 -0
  314. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1u6qqm2._.js.map +1 -0
  315. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1v7ygvz._.js +3 -0
  316. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1v7ygvz._.js.map +1 -0
  317. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1wls8zc._.js +3 -0
  318. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1wls8zc._.js.map +1 -0
  319. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ywboja._.js +3 -0
  320. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ywboja._.js.map +1 -0
  321. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_00kwqu5._.js +3 -0
  322. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_01j2nrd._.js +3 -0
  323. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_05ybj3t._.js +3 -0
  324. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0adt7jj._.js +3 -0
  325. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0bnl14w._.js +3 -0
  326. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0f557t9._.js +3 -0
  327. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0ra6giw._.js +3 -0
  328. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_107cqfx._.js +3 -0
  329. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1377sl6._.js +3 -0
  330. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1_2hcok._.js +3 -0
  331. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1g--m6y._.js +3 -0
  332. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1geopi5._.js +3 -0
  333. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1i11dte._.js +3 -0
  334. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1mj3_qk._.js +3 -0
  335. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1qgy210._.js +3 -0
  336. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1rkng9q._.js +3 -0
  337. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1vr8q8y._.js +3 -0
  338. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1vr8q8y._.js.map +1 -0
  339. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1x8b64g._.js +3 -0
  340. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1x8b64g._.js.map +1 -0
  341. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1zhahf7._.js +3 -0
  342. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1zhahf7._.js.map +1 -0
  343. package/.next/server/chunks/[root-of-the-server]__008focd._.js +3 -0
  344. package/.next/server/chunks/{[root-of-the-server]__093hlkh._.js.map → [root-of-the-server]__008focd._.js.map} +1 -1
  345. package/.next/server/chunks/[root-of-the-server]__01xmabe._.js +3 -0
  346. package/.next/server/chunks/{[root-of-the-server]__0nfvvy9._.js.map → [root-of-the-server]__01xmabe._.js.map} +1 -1
  347. package/.next/server/chunks/[root-of-the-server]__03ogp2r._.js +3 -0
  348. package/.next/server/chunks/[root-of-the-server]__03ogp2r._.js.map +1 -0
  349. package/.next/server/chunks/[root-of-the-server]__05us508._.js +3 -0
  350. package/.next/server/chunks/[root-of-the-server]__05us508._.js.map +1 -0
  351. package/.next/server/chunks/[root-of-the-server]__08yaps5._.js +3 -0
  352. package/.next/server/chunks/{[root-of-the-server]__0eqd-tw._.js.map → [root-of-the-server]__08yaps5._.js.map} +1 -1
  353. package/.next/server/chunks/{[root-of-the-server]__11s-8eg._.js → [root-of-the-server]__09oyvwa._.js} +2 -2
  354. package/.next/server/chunks/{[root-of-the-server]__1wr0m-s._.js.map → [root-of-the-server]__09oyvwa._.js.map} +1 -1
  355. package/.next/server/chunks/[root-of-the-server]__0axugex._.js +3 -0
  356. package/.next/server/chunks/{[root-of-the-server]__1u_q61h._.js.map → [root-of-the-server]__0axugex._.js.map} +1 -1
  357. package/.next/server/chunks/[root-of-the-server]__0b2488c._.js +3 -0
  358. package/.next/server/chunks/{[root-of-the-server]__0aynzrb._.js.map → [root-of-the-server]__0b2488c._.js.map} +1 -1
  359. package/.next/server/chunks/[root-of-the-server]__0b6w_wb._.js +3 -0
  360. package/.next/server/chunks/[root-of-the-server]__0b6w_wb._.js.map +1 -0
  361. package/.next/server/chunks/{[root-of-the-server]__1y3u5ud._.js → [root-of-the-server]__0cbh1s-._.js} +2 -2
  362. package/.next/server/chunks/[root-of-the-server]__0cbh1s-._.js.map +1 -0
  363. package/.next/server/chunks/[root-of-the-server]__0exzf-v._.js +3 -0
  364. package/.next/server/chunks/[root-of-the-server]__0exzf-v._.js.map +1 -0
  365. package/.next/server/chunks/[root-of-the-server]__0gnil0m._.js +3 -0
  366. package/.next/server/chunks/{[root-of-the-server]__18kxo4a._.js.map → [root-of-the-server]__0gnil0m._.js.map} +1 -1
  367. package/.next/server/chunks/[root-of-the-server]__0hfyuhq._.js +3 -0
  368. package/.next/server/chunks/[root-of-the-server]__0hfyuhq._.js.map +1 -0
  369. package/.next/server/chunks/[root-of-the-server]__0hg1r2b._.js +3 -0
  370. package/.next/server/chunks/[root-of-the-server]__0hg1r2b._.js.map +1 -0
  371. package/.next/server/chunks/[root-of-the-server]__0ikbk15._.js +3 -0
  372. package/.next/server/chunks/{[root-of-the-server]__1j0rrps._.js.map → [root-of-the-server]__0ikbk15._.js.map} +1 -1
  373. package/.next/server/chunks/[root-of-the-server]__0jr_5eq._.js +110 -0
  374. package/.next/server/chunks/[root-of-the-server]__0jr_5eq._.js.map +1 -0
  375. package/.next/server/chunks/[root-of-the-server]__0khz7sy._.js +3 -0
  376. package/.next/server/chunks/{[root-of-the-server]__1jxu2x9._.js.map → [root-of-the-server]__0khz7sy._.js.map} +1 -1
  377. package/.next/server/chunks/[root-of-the-server]__0lf11mz._.js +3 -0
  378. package/.next/server/chunks/{[root-of-the-server]__1lj_2cv._.js.map → [root-of-the-server]__0lf11mz._.js.map} +1 -1
  379. package/.next/server/chunks/[root-of-the-server]__0m8hmg0._.js +3 -0
  380. package/.next/server/chunks/{[root-of-the-server]__1q4ahvz._.js.map → [root-of-the-server]__0m8hmg0._.js.map} +1 -1
  381. package/.next/server/chunks/[root-of-the-server]__0qij7wy._.js +3 -0
  382. package/.next/server/chunks/{[root-of-the-server]__1y-tt29._.js.map → [root-of-the-server]__0qij7wy._.js.map} +1 -1
  383. package/.next/server/chunks/[root-of-the-server]__0vf-0gp._.js +3 -0
  384. package/.next/server/chunks/[root-of-the-server]__0vf-0gp._.js.map +1 -0
  385. package/.next/server/chunks/[root-of-the-server]__0x8wtot._.js +3 -0
  386. package/.next/server/chunks/{[root-of-the-server]__17xb02p._.js.map → [root-of-the-server]__0x8wtot._.js.map} +1 -1
  387. package/.next/server/chunks/[root-of-the-server]__0y5usoz._.js +3 -0
  388. package/.next/server/chunks/[root-of-the-server]__0y5usoz._.js.map +1 -0
  389. package/.next/server/chunks/[root-of-the-server]__15c5snv._.js +3 -0
  390. package/.next/server/chunks/{[root-of-the-server]__05l6129._.js.map → [root-of-the-server]__15c5snv._.js.map} +1 -1
  391. package/.next/server/chunks/[root-of-the-server]__16u25oa._.js +3 -0
  392. package/.next/server/chunks/{[root-of-the-server]__142icjb._.js.map → [root-of-the-server]__16u25oa._.js.map} +1 -1
  393. package/.next/server/chunks/[root-of-the-server]__18dt3sr._.js +3 -0
  394. package/.next/server/chunks/{[root-of-the-server]__14aeqoi._.js.map → [root-of-the-server]__18dt3sr._.js.map} +1 -1
  395. package/.next/server/chunks/[root-of-the-server]__19rxcu4._.js +110 -0
  396. package/.next/server/chunks/[root-of-the-server]__19rxcu4._.js.map +1 -0
  397. package/.next/server/chunks/[root-of-the-server]__1_qenei._.js +3 -0
  398. package/.next/server/chunks/[root-of-the-server]__1_qenei._.js.map +1 -0
  399. package/.next/server/chunks/[root-of-the-server]__1a7d63a._.js +3 -0
  400. package/.next/server/chunks/[root-of-the-server]__1a7d63a._.js.map +1 -0
  401. package/.next/server/chunks/[root-of-the-server]__1b448u7._.js +3 -0
  402. package/.next/server/chunks/{[root-of-the-server]__06zf_sh._.js.map → [root-of-the-server]__1b448u7._.js.map} +1 -1
  403. package/.next/server/chunks/[root-of-the-server]__1e68zmx._.js +3 -0
  404. package/.next/server/chunks/[root-of-the-server]__1e68zmx._.js.map +1 -0
  405. package/.next/server/chunks/[root-of-the-server]__1gvv2xp._.js +3 -0
  406. package/.next/server/chunks/{[root-of-the-server]__1y3u5ud._.js.map → [root-of-the-server]__1gvv2xp._.js.map} +1 -1
  407. package/.next/server/chunks/[root-of-the-server]__1jel07j._.js +3 -0
  408. package/.next/server/chunks/[root-of-the-server]__1jel07j._.js.map +1 -0
  409. package/.next/server/chunks/[root-of-the-server]__1jz98vb._.js +3 -0
  410. package/.next/server/chunks/{[root-of-the-server]__106gpvh._.js.map → [root-of-the-server]__1jz98vb._.js.map} +1 -1
  411. package/.next/server/chunks/[root-of-the-server]__1la-6xe._.js +3 -0
  412. package/.next/server/chunks/[root-of-the-server]__1la-6xe._.js.map +1 -0
  413. package/.next/server/chunks/[root-of-the-server]__1p6-0l0._.js +3 -0
  414. package/.next/server/chunks/[root-of-the-server]__1p6-0l0._.js.map +1 -0
  415. package/.next/server/chunks/[root-of-the-server]__1qd-ecl._.js +110 -0
  416. package/.next/server/chunks/[root-of-the-server]__1qd-ecl._.js.map +1 -0
  417. package/.next/server/chunks/[root-of-the-server]__1r_0uma._.js +3 -0
  418. package/.next/server/chunks/{[root-of-the-server]__11s-8eg._.js.map → [root-of-the-server]__1r_0uma._.js.map} +1 -1
  419. package/.next/server/chunks/[root-of-the-server]__1ssunti._.js +3 -0
  420. package/.next/server/chunks/{[root-of-the-server]__17p0rkn._.js.map → [root-of-the-server]__1ssunti._.js.map} +1 -1
  421. package/.next/server/chunks/[root-of-the-server]__1tu85zx._.js +3 -0
  422. package/.next/server/chunks/[root-of-the-server]__1tu85zx._.js.map +1 -0
  423. package/.next/server/chunks/[root-of-the-server]__1wcd2x9._.js +3 -0
  424. package/.next/server/chunks/[root-of-the-server]__1wcd2x9._.js.map +1 -0
  425. package/.next/server/chunks/[root-of-the-server]__1xpp36t._.js +3 -0
  426. package/.next/server/chunks/[root-of-the-server]__1xpp36t._.js.map +1 -0
  427. package/.next/server/chunks/[root-of-the-server]__1z3tswg._.js +3 -0
  428. package/.next/server/chunks/[root-of-the-server]__1z3tswg._.js.map +1 -0
  429. package/.next/server/chunks/_04byth9._.js +34 -19
  430. package/.next/server/chunks/_04byth9._.js.map +1 -1
  431. package/.next/server/chunks/_0safx0g._.js +10 -0
  432. package/.next/server/chunks/_0safx0g._.js.map +1 -0
  433. package/.next/server/chunks/_1au4syj._.js +1 -1
  434. package/.next/server/chunks/_1au4syj._.js.map +1 -1
  435. package/.next/server/chunks/_1b5fqxy._.js.map +1 -1
  436. package/.next/server/chunks/_1ivswa9._.js +3 -0
  437. package/.next/server/chunks/_1ivswa9._.js.map +1 -0
  438. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_delete_route_actions_1a4-ad5.js +3 -0
  439. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_delete_route_actions_1a4-ad5.js.map +1 -0
  440. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_restore_route_actions_07637mh.js +3 -0
  441. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_restore_route_actions_07637mh.js.map +1 -0
  442. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_route_actions_0bxuv92.js +3 -0
  443. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_route_actions_0bxuv92.js.map +1 -0
  444. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_save_route_actions_0bwga-2.js +3 -0
  445. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_save_route_actions_0bwga-2.js.map +1 -0
  446. package/.next/server/chunks/_next-internal_server_app_api_memory_graph_route_actions_0pca9et.js +3 -0
  447. package/.next/server/chunks/_next-internal_server_app_api_memory_graph_route_actions_0pca9et.js.map +1 -0
  448. package/.next/server/chunks/_next-internal_server_app_api_memory_history_route_actions_0w5pu5p.js +3 -0
  449. package/.next/server/chunks/_next-internal_server_app_api_memory_history_route_actions_0w5pu5p.js.map +1 -0
  450. package/.next/server/chunks/_next-internal_server_app_api_roadmap_restore_route_actions_0skshp1.js +3 -0
  451. package/.next/server/chunks/_next-internal_server_app_api_roadmap_restore_route_actions_0skshp1.js.map +1 -0
  452. package/.next/server/chunks/_next-internal_server_app_api_tasks_bulk_route_actions_1k75mlb.js +3 -0
  453. package/.next/server/chunks/_next-internal_server_app_api_tasks_bulk_route_actions_1k75mlb.js.map +1 -0
  454. package/.next/server/chunks/_next-internal_server_app_api_tasks_delete_route_actions_1k1g6mw.js +3 -0
  455. package/.next/server/chunks/_next-internal_server_app_api_tasks_delete_route_actions_1k1g6mw.js.map +1 -0
  456. package/.next/server/chunks/_next-internal_server_app_api_tasks_manual-tests_route_actions_1rpog0y.js +3 -0
  457. package/.next/server/chunks/_next-internal_server_app_api_tasks_manual-tests_route_actions_1rpog0y.js.map +1 -0
  458. package/.next/server/chunks/_next-internal_server_app_api_tasks_restore_route_actions_1ecsti8.js +3 -0
  459. package/.next/server/chunks/_next-internal_server_app_api_tasks_restore_route_actions_1ecsti8.js.map +1 -0
  460. package/.next/server/chunks/_next-internal_server_app_api_tasks_review_route_actions_1dly07f.js +3 -0
  461. package/.next/server/chunks/_next-internal_server_app_api_tasks_review_route_actions_1dly07f.js.map +1 -0
  462. package/.next/server/chunks/_next-internal_server_app_api_tasks_update_route_actions_0z-ho6g.js +3 -0
  463. package/.next/server/chunks/_next-internal_server_app_api_tasks_update_route_actions_0z-ho6g.js.map +1 -0
  464. package/.next/server/chunks/_next-internal_server_app_api_views_route_actions_10-2c0e.js +3 -0
  465. package/.next/server/chunks/_next-internal_server_app_api_views_route_actions_10-2c0e.js.map +1 -0
  466. package/.next/server/chunks/ssr/0_g__next_dist_000c5_m._.js +3 -0
  467. package/.next/server/chunks/ssr/0_g__next_dist_000c5_m._.js.map +1 -0
  468. package/.next/server/chunks/ssr/{0_nd_mermaid_dist_mermaid_core_mjs_0vv_0i3._.js → 0_nd_mermaid_dist_mermaid_core_mjs_027n2yl._.js} +2 -2
  469. package/.next/server/chunks/ssr/0_nd_mermaid_dist_mermaid_core_mjs_027n2yl._.js.map +1 -0
  470. package/.next/server/chunks/ssr/{1u84_katex_dist_katex_mjs_1z0p1bs._.js → 1u84_katex_dist_katex_mjs_1kb5xea._.js} +1 -1
  471. package/.next/server/chunks/ssr/1u84_katex_dist_katex_mjs_1kb5xea._.js.map +1 -0
  472. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_05ggp3i._.js +1 -1
  473. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_05ggp3i._.js.map +1 -1
  474. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0wurouw._.js +3 -0
  475. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0wurouw._.js.map +1 -0
  476. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_14hl50o._.js +3 -0
  477. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_14hl50o._.js.map +1 -0
  478. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_folder-open_mjs_117ipzw._.js +3 -0
  479. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_folder-open_mjs_117ipzw._.js.map +1 -0
  480. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_triangle-alert_mjs_0ei-mpz._.js +3 -0
  481. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_triangle-alert_mjs_0ei-mpz._.js.map +1 -0
  482. package/.next/server/chunks/ssr/[root-of-the-server]__0hcextx._.js +3 -0
  483. package/.next/server/chunks/ssr/[root-of-the-server]__0hcextx._.js.map +1 -0
  484. package/.next/server/chunks/ssr/[root-of-the-server]__0opgo3t._.js +14 -0
  485. package/.next/server/chunks/ssr/{[root-of-the-server]__0noc5ay._.js.map → [root-of-the-server]__0opgo3t._.js.map} +1 -1
  486. package/.next/server/chunks/ssr/[root-of-the-server]__0xt_0w2._.js.map +1 -1
  487. package/.next/server/chunks/ssr/[root-of-the-server]__1jv5ug1._.js +3 -0
  488. package/.next/server/chunks/ssr/{[root-of-the-server]__1pk-w2i._.js.map → [root-of-the-server]__1jv5ug1._.js.map} +1 -1
  489. package/.next/server/chunks/ssr/_04xff_2._.js +1 -1
  490. package/.next/server/chunks/ssr/_04xff_2._.js.map +1 -1
  491. package/.next/server/chunks/ssr/_071j6mr._.js +4 -0
  492. package/.next/server/chunks/ssr/_071j6mr._.js.map +1 -0
  493. package/.next/server/chunks/ssr/_0i75x-o._.js +3 -0
  494. package/.next/server/chunks/ssr/_0i75x-o._.js.map +1 -0
  495. package/.next/server/chunks/ssr/_0idb-vo._.js +151 -0
  496. package/.next/server/chunks/ssr/_0idb-vo._.js.map +1 -0
  497. package/.next/server/chunks/ssr/_0qp3gu7._.js +3 -0
  498. package/.next/server/chunks/ssr/_0qp3gu7._.js.map +1 -0
  499. package/.next/server/chunks/ssr/_15qpb4z._.js +3 -0
  500. package/.next/server/chunks/ssr/_15qpb4z._.js.map +1 -0
  501. package/.next/server/chunks/ssr/_1fg0usp._.js +3 -0
  502. package/.next/server/chunks/ssr/_1fg0usp._.js.map +1 -0
  503. package/.next/server/chunks/ssr/_1gxjjvh._.js +1 -1
  504. package/.next/server/chunks/ssr/_1gxjjvh._.js.map +1 -1
  505. package/.next/server/chunks/ssr/_1h0wfpz._.js +3 -0
  506. package/.next/server/chunks/ssr/_1h0wfpz._.js.map +1 -0
  507. package/.next/server/chunks/ssr/_1ncdakv._.js +4 -0
  508. package/.next/server/chunks/ssr/_1ncdakv._.js.map +1 -0
  509. package/.next/server/chunks/ssr/_1ocnpth._.js +3 -0
  510. package/.next/server/chunks/ssr/_1ocnpth._.js.map +1 -0
  511. package/.next/server/chunks/ssr/_1t76zdx._.js +3 -0
  512. package/.next/server/chunks/ssr/_1t76zdx._.js.map +1 -0
  513. package/.next/server/chunks/ssr/_1uno162._.js +3 -0
  514. package/.next/server/chunks/ssr/_1uno162._.js.map +1 -0
  515. package/.next/server/chunks/ssr/_next-internal_server_app_(app)_manual-tests_page_actions_1g5zjb7.js +3 -0
  516. package/.next/server/chunks/ssr/_next-internal_server_app_(app)_manual-tests_page_actions_1g5zjb7.js.map +1 -0
  517. package/.next/server/chunks/ssr/{node_modules__pnpm_04khl_s._.js → node_modules__pnpm_01bjcv9._.js} +1 -1
  518. package/.next/server/chunks/ssr/{node_modules__pnpm_08sqeu2._.js → node_modules__pnpm_03qrzdb._.js} +1 -1
  519. package/.next/server/chunks/ssr/{node_modules__pnpm_104pzhc._.js → node_modules__pnpm_06d-fdo._.js} +2 -2
  520. package/.next/server/chunks/ssr/node_modules__pnpm_0al3nfy._.js +3 -0
  521. package/.next/server/chunks/ssr/node_modules__pnpm_0al3nfy._.js.map +1 -0
  522. package/.next/server/chunks/ssr/node_modules__pnpm_0aoa6rg._.js +4 -0
  523. package/.next/server/chunks/ssr/node_modules__pnpm_0aoa6rg._.js.map +1 -0
  524. package/.next/server/chunks/ssr/{node_modules__pnpm_1xzf8g_._.js → node_modules__pnpm_0ctisl0._.js} +1 -1
  525. package/.next/server/chunks/ssr/{node_modules__pnpm_0og06fy._.js → node_modules__pnpm_0fwp8jm._.js} +1 -1
  526. package/.next/server/chunks/ssr/{node_modules__pnpm_0a9b2ei._.js → node_modules__pnpm_0kpu0-2._.js} +1 -1
  527. package/.next/server/chunks/ssr/{node_modules__pnpm_0jpv2b6._.js → node_modules__pnpm_0vry74x._.js} +2 -2
  528. package/.next/server/chunks/ssr/{node_modules__pnpm_0fd3pr1._.js → node_modules__pnpm_0ycbjbd._.js} +2 -2
  529. package/.next/server/chunks/ssr/{node_modules__pnpm_1l8k8w1._.js → node_modules__pnpm_1-76qxg._.js} +1 -1
  530. package/.next/server/chunks/ssr/{node_modules__pnpm_0ah02mu._.js → node_modules__pnpm_1-r94f7._.js} +1 -1
  531. package/.next/server/chunks/ssr/{node_modules__pnpm_1yq90z7._.js → node_modules__pnpm_14piqi4._.js} +1 -1
  532. package/.next/server/chunks/ssr/node_modules__pnpm_14piqi4._.js.map +1 -0
  533. package/.next/server/chunks/ssr/{node_modules__pnpm_0dwi7mu._.js → node_modules__pnpm_16u1vfb._.js} +2 -2
  534. package/.next/server/chunks/ssr/node_modules__pnpm_16u1vfb._.js.map +1 -0
  535. package/.next/server/chunks/ssr/{node_modules__pnpm_0f77_ng._.js → node_modules__pnpm_17i6z2d._.js} +1 -1
  536. package/.next/server/chunks/ssr/{node_modules__pnpm_09_i2jk._.js → node_modules__pnpm_189m48n._.js} +1 -1
  537. package/.next/server/chunks/ssr/node_modules__pnpm_189m48n._.js.map +1 -0
  538. package/.next/server/chunks/ssr/{node_modules__pnpm_0ttvopp._.js → node_modules__pnpm_192f222._.js} +1 -1
  539. package/.next/server/chunks/ssr/{node_modules__pnpm_07t_e8c._.js → node_modules__pnpm_1a48_nl._.js} +1 -1
  540. package/.next/server/chunks/ssr/{node_modules__pnpm_195j8p_._.js → node_modules__pnpm_1aa37e1._.js} +1 -1
  541. package/.next/server/chunks/ssr/{node_modules__pnpm_0cj8ryj._.js → node_modules__pnpm_1f440kx._.js} +1 -1
  542. package/.next/server/chunks/ssr/{node_modules__pnpm_0u3u82f._.js → node_modules__pnpm_1fn3ejy._.js} +1 -1
  543. package/.next/server/chunks/ssr/{node_modules__pnpm_0ts89ne._.js → node_modules__pnpm_1min2jl._.js} +1 -1
  544. package/.next/server/chunks/ssr/{node_modules__pnpm_1woddr6._.js → node_modules__pnpm_1q_hhr3._.js} +2 -2
  545. package/.next/server/chunks/ssr/{node_modules__pnpm_1x0t5_z._.js → node_modules__pnpm_1qmkxyo._.js} +1 -1
  546. package/.next/server/chunks/ssr/{node_modules__pnpm_0gifu-u._.js → node_modules__pnpm_1qp_jvj._.js} +2 -2
  547. package/.next/server/chunks/ssr/{node_modules__pnpm_0y35hs4._.js → node_modules__pnpm_1ssjj4u._.js} +1 -1
  548. package/.next/server/chunks/ssr/{node_modules__pnpm_0qc3gsk._.js → node_modules__pnpm_1txccoj._.js} +1 -1
  549. package/.next/server/chunks/ssr/{node_modules__pnpm_1w0f1m5._.js → node_modules__pnpm_1uwkcin._.js} +1 -1
  550. package/.next/server/chunks/ssr/node_modules__pnpm_1xeothw._.js +3 -0
  551. package/.next/server/chunks/ssr/node_modules__pnpm_1xeothw._.js.map +1 -0
  552. package/.next/server/chunks/ssr/{node_modules__pnpm_0286-tg._.js → node_modules__pnpm_1ygal0c._.js} +1 -1
  553. package/.next/server/chunks/ssr/src_app_(app)_activity_page_tsx_13jd6bn._.js +1 -1
  554. package/.next/server/chunks/ssr/src_app_(app)_activity_page_tsx_13jd6bn._.js.map +1 -1
  555. package/.next/server/chunks/ssr/src_app_(app)_board_page_tsx_0gpfc77._.js +3 -0
  556. package/.next/server/chunks/ssr/src_app_(app)_board_page_tsx_0gpfc77._.js.map +1 -0
  557. package/.next/server/chunks/ssr/src_app_(app)_chat_page_tsx_0c3e4l4._.js +1 -1
  558. package/.next/server/chunks/ssr/src_app_(app)_chat_page_tsx_0c3e4l4._.js.map +1 -1
  559. package/.next/server/chunks/ssr/src_app_(app)_layout_tsx_1yu5hom._.js +1 -1
  560. package/.next/server/chunks/ssr/src_app_(app)_layout_tsx_1yu5hom._.js.map +1 -1
  561. package/.next/server/chunks/ssr/src_app_(app)_manual-tests_page_tsx_01tnunf._.js +3 -0
  562. package/.next/server/chunks/ssr/src_app_(app)_manual-tests_page_tsx_01tnunf._.js.map +1 -0
  563. package/.next/server/chunks/ssr/src_app_(app)_memory_page_tsx_19jhb1c._.js +13 -0
  564. package/.next/server/chunks/ssr/src_app_(app)_memory_page_tsx_19jhb1c._.js.map +1 -0
  565. package/.next/server/chunks/ssr/src_app_(app)_roadmap_page_tsx_0vcq3jr._.js +2 -2
  566. package/.next/server/chunks/ssr/src_app_(app)_roadmap_page_tsx_0vcq3jr._.js.map +1 -1
  567. package/.next/server/chunks/ssr/src_app_(app)_settings_page_tsx_0zevtee._.js +2 -2
  568. package/.next/server/chunks/ssr/src_app_(app)_settings_page_tsx_0zevtee._.js.map +1 -1
  569. package/.next/server/chunks/ssr/src_app_(app)_setup_page_tsx_1yids_n._.js +1 -1
  570. package/.next/server/chunks/ssr/src_app_(app)_setup_page_tsx_1yids_n._.js.map +1 -1
  571. package/.next/server/chunks/ssr/src_components_0eyr_zi._.js +3 -0
  572. package/.next/server/chunks/ssr/src_components_0eyr_zi._.js.map +1 -0
  573. package/.next/server/chunks/ssr/src_components_1s861m8._.js +3 -0
  574. package/.next/server/chunks/ssr/src_components_1s861m8._.js.map +1 -0
  575. package/.next/server/chunks/ssr/src_components_chat_ChatView_tsx_0h5j-e2._.js +3 -0
  576. package/.next/server/chunks/ssr/src_components_chat_ChatView_tsx_0h5j-e2._.js.map +1 -0
  577. package/.next/server/chunks/ssr/src_context_ChatContext_tsx_0lowp8p._.js +2 -2
  578. package/.next/server/chunks/ssr/src_context_ChatContext_tsx_0lowp8p._.js.map +1 -1
  579. package/.next/server/middleware-build-manifest.js +3 -3
  580. package/.next/server/next-font-manifest.js +1 -1
  581. package/.next/server/next-font-manifest.json +4 -0
  582. package/.next/server/pages/404.html +1 -1
  583. package/.next/server/pages/500.html +1 -1
  584. package/.next/server/prefetch-hints.json +19 -0
  585. package/.next/server/server-reference-manifest.js +1 -1
  586. package/.next/server/server-reference-manifest.json +1 -1
  587. package/.next/static/chunks/02cj5_i9np4sg.js +3 -0
  588. package/.next/static/chunks/02i5hsdat1nuq.css +9 -0
  589. package/.next/static/chunks/0b547y6rqct9z.js +1 -0
  590. package/.next/static/chunks/0e3ha56i_0j05.css +1 -0
  591. package/.next/static/chunks/0f32hudp0yir7.js +2 -0
  592. package/.next/static/chunks/0mgifb98wbesa.js +1 -0
  593. package/.next/static/chunks/0rsmz1jgro1kj.js +1 -0
  594. package/.next/static/chunks/0wnq_kh8-6wc1.js +2 -0
  595. package/.next/static/chunks/13l4l-boqg8fx.js +1 -0
  596. package/.next/static/chunks/14hxe1qiaram9.js +1 -0
  597. package/.next/static/chunks/16k196zyl-n9q.js +1 -0
  598. package/.next/static/chunks/18b5l8p0vd9f8.js +1 -0
  599. package/.next/static/chunks/1acpfyut6j4e2.js +1 -0
  600. package/.next/static/chunks/1c_8t2kecjnua.js +1 -0
  601. package/.next/static/chunks/{1xyepk9227yej.js → 1l_dys0-y5-r7.js} +6 -6
  602. package/.next/static/chunks/1rko_88i85yqb.js +21 -0
  603. package/.next/static/chunks/1tu8lforstp1o.js +1 -0
  604. package/.next/static/chunks/20mdcup14_0yi.js +11 -0
  605. package/.next/static/chunks/23-xknrz6o748.js +1 -0
  606. package/.next/static/chunks/24u_rc2tbkhai.js +3 -0
  607. package/.next/static/chunks/2p-pkveutoh75.js +1 -0
  608. package/.next/static/chunks/329sozud9-tvr.js +1 -0
  609. package/.next/static/chunks/3ly7b47esdb7j.js +1 -0
  610. package/.next/static/chunks/3qqvn9vv6i0gy.js +68 -0
  611. package/.next/static/chunks/3ruw8lu2_re-h.js +1 -0
  612. package/.next/static/chunks/3xqcluqa32mjv.js +2 -0
  613. package/README.md +13 -5
  614. package/package.json +1 -1
  615. package/skills/work-epic/SKILL.md +22 -3
  616. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0am8bw2._.js +0 -3
  617. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0enefn6._.js +0 -3
  618. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0k3n_5f._.js +0 -3
  619. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0lcfjm4._.js +0 -3
  620. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0lfx9av._.js +0 -3
  621. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0qau3qw._.js +0 -3
  622. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0r1pmvm._.js +0 -3
  623. package/.next/server/chunks/11mp_@anthropic-ai_sdk_11t-z2t._.js +0 -3
  624. package/.next/server/chunks/11mp_@anthropic-ai_sdk_15hyn79._.js +0 -3
  625. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_qk07x._.js +0 -3
  626. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1b2929e._.js +0 -3
  627. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1e72c89._.js +0 -3
  628. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1eq7asn._.js +0 -3
  629. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1fhdojs._.js +0 -3
  630. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1htgzmb._.js +0 -3
  631. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1lh_vwq._.js +0 -3
  632. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ludf-o._.js +0 -3
  633. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1m3luz3._.js +0 -3
  634. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1x1iz3d._.js +0 -3
  635. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1xsmwlh._.js +0 -3
  636. package/.next/server/chunks/11mp_@anthropic-ai_sdk_202spah._.js +0 -3
  637. package/.next/server/chunks/11mp_@anthropic-ai_sdk_215hw9u._.js +0 -3
  638. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0d2_lq6._.js +0 -3
  639. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0n-i0pd._.js +0 -3
  640. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_13pos4j._.js +0 -3
  641. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_17b4pqr._.js +0 -3
  642. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1bkcmom._.js +0 -3
  643. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1hlj_3l._.js +0 -3
  644. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1ip-sor._.js +0 -3
  645. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1pex5o1._.js +0 -3
  646. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1s8lc8_._.js +0 -3
  647. package/.next/server/chunks/[root-of-the-server]__05l6129._.js +0 -3
  648. package/.next/server/chunks/[root-of-the-server]__06zf_sh._.js +0 -3
  649. package/.next/server/chunks/[root-of-the-server]__093hlkh._.js +0 -3
  650. package/.next/server/chunks/[root-of-the-server]__0aynzrb._.js +0 -3
  651. package/.next/server/chunks/[root-of-the-server]__0e59y5j._.js +0 -3
  652. package/.next/server/chunks/[root-of-the-server]__0eqd-tw._.js +0 -3
  653. package/.next/server/chunks/[root-of-the-server]__0nfvvy9._.js +0 -3
  654. package/.next/server/chunks/[root-of-the-server]__106gpvh._.js +0 -3
  655. package/.next/server/chunks/[root-of-the-server]__11s76m8._.js +0 -3
  656. package/.next/server/chunks/[root-of-the-server]__142icjb._.js +0 -3
  657. package/.next/server/chunks/[root-of-the-server]__14aeqoi._.js +0 -3
  658. package/.next/server/chunks/[root-of-the-server]__1613hjb._.js +0 -88
  659. package/.next/server/chunks/[root-of-the-server]__1613hjb._.js.map +0 -1
  660. package/.next/server/chunks/[root-of-the-server]__169hmq_._.js +0 -10
  661. package/.next/server/chunks/[root-of-the-server]__169hmq_._.js.map +0 -1
  662. package/.next/server/chunks/[root-of-the-server]__17p0rkn._.js +0 -3
  663. package/.next/server/chunks/[root-of-the-server]__17xb02p._.js +0 -3
  664. package/.next/server/chunks/[root-of-the-server]__18kxo4a._.js +0 -3
  665. package/.next/server/chunks/[root-of-the-server]__1j0rrps._.js +0 -3
  666. package/.next/server/chunks/[root-of-the-server]__1jxu2x9._.js +0 -3
  667. package/.next/server/chunks/[root-of-the-server]__1lj_2cv._.js +0 -3
  668. package/.next/server/chunks/[root-of-the-server]__1o4a-4j._.js +0 -3
  669. package/.next/server/chunks/[root-of-the-server]__1o4a-4j._.js.map +0 -1
  670. package/.next/server/chunks/[root-of-the-server]__1q4ahvz._.js +0 -3
  671. package/.next/server/chunks/[root-of-the-server]__1u_q61h._.js +0 -3
  672. package/.next/server/chunks/[root-of-the-server]__1wr0m-s._.js +0 -3
  673. package/.next/server/chunks/[root-of-the-server]__1xb0fmp._.js +0 -3
  674. package/.next/server/chunks/[root-of-the-server]__1xb0fmp._.js.map +0 -1
  675. package/.next/server/chunks/[root-of-the-server]__1y-tt29._.js +0 -3
  676. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0cvmffy._.js +0 -3
  677. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0cvmffy._.js.map +0 -1
  678. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0u3jxas._.js +0 -3
  679. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0u3jxas._.js.map +0 -1
  680. package/.next/server/chunks/ssr/[root-of-the-server]__0noc5ay._.js +0 -14
  681. package/.next/server/chunks/ssr/[root-of-the-server]__1pk-w2i._.js +0 -3
  682. package/.next/server/chunks/ssr/_059qmur._.js +0 -3
  683. package/.next/server/chunks/ssr/_059qmur._.js.map +0 -1
  684. package/.next/server/chunks/ssr/_081irea._.js +0 -3
  685. package/.next/server/chunks/ssr/_081irea._.js.map +0 -1
  686. package/.next/server/chunks/ssr/_0d8t8l4._.js +0 -3
  687. package/.next/server/chunks/ssr/_0d8t8l4._.js.map +0 -1
  688. package/.next/server/chunks/ssr/_0dyvcdg._.js +0 -3
  689. package/.next/server/chunks/ssr/_0dyvcdg._.js.map +0 -1
  690. package/.next/server/chunks/ssr/_1-ghqy4._.js +0 -3
  691. package/.next/server/chunks/ssr/_1-ghqy4._.js.map +0 -1
  692. package/.next/server/chunks/ssr/_17jy5db._.js +0 -3
  693. package/.next/server/chunks/ssr/_17jy5db._.js.map +0 -1
  694. package/.next/server/chunks/ssr/_1c95ems._.js +0 -151
  695. package/.next/server/chunks/ssr/_1c95ems._.js.map +0 -1
  696. package/.next/server/chunks/ssr/_1dllfz5._.js +0 -4
  697. package/.next/server/chunks/ssr/_1dllfz5._.js.map +0 -1
  698. package/.next/server/chunks/ssr/node_modules__pnpm_006_c8z._.js +0 -3
  699. package/.next/server/chunks/ssr/node_modules__pnpm_006_c8z._.js.map +0 -1
  700. package/.next/server/chunks/ssr/node_modules__pnpm_1imm4ut._.js +0 -3
  701. package/.next/server/chunks/ssr/node_modules__pnpm_1imm4ut._.js.map +0 -1
  702. package/.next/server/chunks/ssr/node_modules__pnpm_1kcnkjs._.js +0 -3
  703. package/.next/server/chunks/ssr/node_modules__pnpm_1kcnkjs._.js.map +0 -1
  704. package/.next/server/chunks/ssr/src_1lkod9y._.js +0 -8
  705. package/.next/server/chunks/ssr/src_1lkod9y._.js.map +0 -1
  706. package/.next/server/chunks/ssr/src_components_14pwej-._.js +0 -3
  707. package/.next/server/chunks/ssr/src_components_14pwej-._.js.map +0 -1
  708. package/.next/server/chunks/ssr/src_components_ui_scroll-area_tsx_0i-n_27._.js +0 -3
  709. package/.next/server/chunks/ssr/src_components_ui_scroll-area_tsx_0i-n_27._.js.map +0 -1
  710. package/.next/static/chunks/0-z7kyblalrea.js +0 -1
  711. package/.next/static/chunks/050mq8l4e1ubn.js +0 -1
  712. package/.next/static/chunks/098le48845_fg.js +0 -3
  713. package/.next/static/chunks/0cw4-ebkoufdc.js +0 -1
  714. package/.next/static/chunks/0feo-go1w5nct.js +0 -1
  715. package/.next/static/chunks/0k2qhx29amdgs.js +0 -1
  716. package/.next/static/chunks/14sefb904pl64.js +0 -21
  717. package/.next/static/chunks/1fer-wulyrjrs.js +0 -3
  718. package/.next/static/chunks/1o7b1x4umy8a6.js +0 -1
  719. package/.next/static/chunks/1q_io1j58aukw.js +0 -1
  720. package/.next/static/chunks/1r7z33e9jk3vp.js +0 -1
  721. package/.next/static/chunks/1t-cgh4477hfo.js +0 -1
  722. package/.next/static/chunks/1u-1po1qesc9f.js +0 -1
  723. package/.next/static/chunks/1u5kegkgm0xoz.js +0 -1
  724. package/.next/static/chunks/24ygzsgd-moqy.js +0 -1
  725. package/.next/static/chunks/26folxgplfa9t.js +0 -68
  726. package/.next/static/chunks/2ocixvjhv34_3.js +0 -1
  727. package/.next/static/chunks/3_lsdgxa-h7ma.css +0 -10
  728. package/.next/static/chunks/3h4ehgq7i44wb.js +0 -6
  729. package/.next/static/chunks/3rmv-sb9w9i3e.js +0 -1
  730. package/.next/static/chunks/3smp1lj103j-l.js +0 -1
  731. package/.next/static/chunks/3ttzomivj48jh.js +0 -2
  732. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0-5bkpj._.js.map → 11mp_@anthropic-ai_sdk_0-_cqh8._.js.map} +0 -0
  733. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_00psb_y._.js.map → 11mp_@anthropic-ai_sdk_00o5o78._.js.map} +0 -0
  734. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_01l5h3i._.js.map → 11mp_@anthropic-ai_sdk_03cp17a._.js.map} +0 -0
  735. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_072r2bd._.js.map → 11mp_@anthropic-ai_sdk_07dk2er._.js.map} +0 -0
  736. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0am8bw2._.js.map → 11mp_@anthropic-ai_sdk_0_e9zpr._.js.map} +0 -0
  737. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0enefn6._.js.map → 11mp_@anthropic-ai_sdk_0_xx_qf._.js.map} +0 -0
  738. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0k3n_5f._.js.map → 11mp_@anthropic-ai_sdk_0aer9lc._.js.map} +0 -0
  739. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0lcfjm4._.js.map → 11mp_@anthropic-ai_sdk_0ax30pe._.js.map} +0 -0
  740. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0lfx9av._.js.map → 11mp_@anthropic-ai_sdk_0gn7vgs._.js.map} +0 -0
  741. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0qau3qw._.js.map → 11mp_@anthropic-ai_sdk_0hye94a._.js.map} +0 -0
  742. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0r1pmvm._.js.map → 11mp_@anthropic-ai_sdk_0ir5cgk._.js.map} +0 -0
  743. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_11t-z2t._.js.map → 11mp_@anthropic-ai_sdk_0je0_pa._.js.map} +0 -0
  744. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_15hyn79._.js.map → 11mp_@anthropic-ai_sdk_0jfgh0o._.js.map} +0 -0
  745. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1_qk07x._.js.map → 11mp_@anthropic-ai_sdk_0mha4x1._.js.map} +0 -0
  746. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1b2929e._.js.map → 11mp_@anthropic-ai_sdk_0n__boa._.js.map} +0 -0
  747. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1e72c89._.js.map → 11mp_@anthropic-ai_sdk_0sqv26_._.js.map} +0 -0
  748. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1eq7asn._.js.map → 11mp_@anthropic-ai_sdk_0wnc6g-._.js.map} +0 -0
  749. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1fhdojs._.js.map → 11mp_@anthropic-ai_sdk_0xh0g59._.js.map} +0 -0
  750. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1htgzmb._.js.map → 11mp_@anthropic-ai_sdk_1-5wyhj._.js.map} +0 -0
  751. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1lh_vwq._.js.map → 11mp_@anthropic-ai_sdk_13ahm3n._.js.map} +0 -0
  752. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1ludf-o._.js.map → 11mp_@anthropic-ai_sdk_13e6aq4._.js.map} +0 -0
  753. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1m3luz3._.js.map → 11mp_@anthropic-ai_sdk_14eg0ld._.js.map} +0 -0
  754. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1x1iz3d._.js.map → 11mp_@anthropic-ai_sdk_15md1n2._.js.map} +0 -0
  755. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1xsmwlh._.js.map → 11mp_@anthropic-ai_sdk_16av8b9._.js.map} +0 -0
  756. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_202spah._.js.map → 11mp_@anthropic-ai_sdk_16hjhv1._.js.map} +0 -0
  757. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_215hw9u._.js.map → 11mp_@anthropic-ai_sdk_16txvf7._.js.map} +0 -0
  758. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0d2_lq6._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_00kwqu5._.js.map} +0 -0
  759. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0n-i0pd._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_01j2nrd._.js.map} +0 -0
  760. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_13pos4j._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_05ybj3t._.js.map} +0 -0
  761. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_17b4pqr._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0adt7jj._.js.map} +0 -0
  762. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1bkcmom._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0bnl14w._.js.map} +0 -0
  763. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1hlj_3l._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0f557t9._.js.map} +0 -0
  764. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1ip-sor._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0ra6giw._.js.map} +0 -0
  765. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1pex5o1._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_107cqfx._.js.map} +0 -0
  766. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1s8lc8_._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1377sl6._.js.map} +0 -0
  767. /package/.next/server/chunks/{[root-of-the-server]__0e59y5j._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1_2hcok._.js.map} +0 -0
  768. /package/.next/server/chunks/{[root-of-the-server]__11s76m8._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1g--m6y._.js.map} +0 -0
  769. /package/.next/server/chunks/{ssr/0_nd_mermaid_dist_mermaid_core_mjs_0vv_0i3._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1geopi5._.js.map} +0 -0
  770. /package/.next/server/chunks/{ssr/1u84_katex_dist_katex_mjs_1z0p1bs._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1i11dte._.js.map} +0 -0
  771. /package/.next/server/chunks/{ssr/node_modules__pnpm_09_i2jk._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1mj3_qk._.js.map} +0 -0
  772. /package/.next/server/chunks/{ssr/node_modules__pnpm_0dwi7mu._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1qgy210._.js.map} +0 -0
  773. /package/.next/server/chunks/{ssr/node_modules__pnpm_1yq90z7._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1rkng9q._.js.map} +0 -0
  774. /package/.next/server/chunks/ssr/{node_modules__pnpm_04khl_s._.js.map → node_modules__pnpm_01bjcv9._.js.map} +0 -0
  775. /package/.next/server/chunks/ssr/{node_modules__pnpm_08sqeu2._.js.map → node_modules__pnpm_03qrzdb._.js.map} +0 -0
  776. /package/.next/server/chunks/ssr/{node_modules__pnpm_104pzhc._.js.map → node_modules__pnpm_06d-fdo._.js.map} +0 -0
  777. /package/.next/server/chunks/ssr/{node_modules__pnpm_1xzf8g_._.js.map → node_modules__pnpm_0ctisl0._.js.map} +0 -0
  778. /package/.next/server/chunks/ssr/{node_modules__pnpm_0og06fy._.js.map → node_modules__pnpm_0fwp8jm._.js.map} +0 -0
  779. /package/.next/server/chunks/ssr/{node_modules__pnpm_0a9b2ei._.js.map → node_modules__pnpm_0kpu0-2._.js.map} +0 -0
  780. /package/.next/server/chunks/ssr/{node_modules__pnpm_0jpv2b6._.js.map → node_modules__pnpm_0vry74x._.js.map} +0 -0
  781. /package/.next/server/chunks/ssr/{node_modules__pnpm_0fd3pr1._.js.map → node_modules__pnpm_0ycbjbd._.js.map} +0 -0
  782. /package/.next/server/chunks/ssr/{node_modules__pnpm_1l8k8w1._.js.map → node_modules__pnpm_1-76qxg._.js.map} +0 -0
  783. /package/.next/server/chunks/ssr/{node_modules__pnpm_0ah02mu._.js.map → node_modules__pnpm_1-r94f7._.js.map} +0 -0
  784. /package/.next/server/chunks/ssr/{node_modules__pnpm_0f77_ng._.js.map → node_modules__pnpm_17i6z2d._.js.map} +0 -0
  785. /package/.next/server/chunks/ssr/{node_modules__pnpm_0ttvopp._.js.map → node_modules__pnpm_192f222._.js.map} +0 -0
  786. /package/.next/server/chunks/ssr/{node_modules__pnpm_07t_e8c._.js.map → node_modules__pnpm_1a48_nl._.js.map} +0 -0
  787. /package/.next/server/chunks/ssr/{node_modules__pnpm_195j8p_._.js.map → node_modules__pnpm_1aa37e1._.js.map} +0 -0
  788. /package/.next/server/chunks/ssr/{node_modules__pnpm_0cj8ryj._.js.map → node_modules__pnpm_1f440kx._.js.map} +0 -0
  789. /package/.next/server/chunks/ssr/{node_modules__pnpm_0u3u82f._.js.map → node_modules__pnpm_1fn3ejy._.js.map} +0 -0
  790. /package/.next/server/chunks/ssr/{node_modules__pnpm_0ts89ne._.js.map → node_modules__pnpm_1min2jl._.js.map} +0 -0
  791. /package/.next/server/chunks/ssr/{node_modules__pnpm_1woddr6._.js.map → node_modules__pnpm_1q_hhr3._.js.map} +0 -0
  792. /package/.next/server/chunks/ssr/{node_modules__pnpm_1x0t5_z._.js.map → node_modules__pnpm_1qmkxyo._.js.map} +0 -0
  793. /package/.next/server/chunks/ssr/{node_modules__pnpm_0gifu-u._.js.map → node_modules__pnpm_1qp_jvj._.js.map} +0 -0
  794. /package/.next/server/chunks/ssr/{node_modules__pnpm_0y35hs4._.js.map → node_modules__pnpm_1ssjj4u._.js.map} +0 -0
  795. /package/.next/server/chunks/ssr/{node_modules__pnpm_0qc3gsk._.js.map → node_modules__pnpm_1txccoj._.js.map} +0 -0
  796. /package/.next/server/chunks/ssr/{node_modules__pnpm_1w0f1m5._.js.map → node_modules__pnpm_1uwkcin._.js.map} +0 -0
  797. /package/.next/server/chunks/ssr/{node_modules__pnpm_0286-tg._.js.map → node_modules__pnpm_1ygal0c._.js.map} +0 -0
  798. /package/.next/static/{uJ5RYxgFnE5svAvnuLDXN → Q29Tn_NjyVms0d3pKn4Yx}/_buildManifest.js +0 -0
  799. /package/.next/static/{uJ5RYxgFnE5svAvnuLDXN → Q29Tn_NjyVms0d3pKn4Yx}/_clientMiddlewareManifest.js +0 -0
  800. /package/.next/static/{uJ5RYxgFnE5svAvnuLDXN → Q29Tn_NjyVms0d3pKn4Yx}/_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:"list-tree",size:24,node:[["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"M3 10a2 2 0 0 0 2 2h3",key:"1npucw"}],["path",{d:"M3 5v12a2 2 0 0 0 2 2h3",key:"x1gjn2"}]]};j.node;let k=(0,i.default)(j);var l=a.i(200382),m=a.i(551729),n=a.i(913975),o=a.i(544394),p=a.i(21215),q=a.i(699570);let r=a=>"done"===a||"cancelled"===a;function s(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||!r(b.status)});for(let a of d)if("todo"===a.status&&!e(a).length)return{kind:"ready",taskId:a.id};if(d.every(a=>r(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&&("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("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 t=a.i(452696),u=a.i(368114),v=a.i(525395),w=a.i(618940),x=a.i(815122),y=a.i(581040);function z({items:a,today:d,onSelect:e,progressById:f}){let g=new Map(a.filter(a=>null===a.parent).sort((a,b)=>a.order-b.order).map((a,b)=>[a.id,b+1])),h=(0,c.useMemo)(()=>(0,y.buildTimeline)(a,d),[a,d]),i=(0,c.useRef)(null);(0,c.useEffect)(()=>{let a=i.current;a&&(a.scrollLeft=Math.max(0,h.todayX-(a.clientWidth-200)/3))},[h.todayX]);let j=h.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:i,className:"relative flex-1 min-h-0 overflow-auto",children:(0,b.jsxs)("div",{className:"relative",style:{width:200+h.width,minHeight:"100%"},children:[(0,b.jsxs)("div",{className:"pointer-events-none absolute inset-y-0",style:{left:200,width:h.width},children:[h.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:h.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:h.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-white",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:h.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))})]}),h.lanes.map(a=>(0,b.jsxs)("div",{className:"relative flex border-b border-border",children:[(0,b.jsx)(A,{item:a.item,chapter:g.get(a.item.id),progress:f[a.item.id],onSelect:e}),(0,b.jsx)("div",{className:"relative",style:{width:h.width,height:a.rows*y.LANE_ROW_H+12},children:a.markers.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>e(a.item.id),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*y.LANE_ROW_H},children:[a.horizon?(0,b.jsx)("span",{className:(0,u.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,u.cn)("rounded-full","overdue"===a.state&&"ring-2 ring-danger ring-offset-1 ring-offset-bg"),children:(0,b.jsx)(w.StatusDot,{status:a.item.status})}),(0,b.jsxs)("span",{className:(0,u.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,u.cn)("truncate text-xs","done"===a.item.status?"text-muted":"text-txt",a.horizon&&"font-semibold"),children:a.item.title}),(0,b.jsx)(x.AgentDot,{attach:{kind:"epic",id:a.item.id}})]}),(0,b.jsx)("span",{className:(0,u.cn)("font-mono text-[10px]","overdue"===a.state?"text-danger":"soon"===a.state?"text-amber":"text-muted"),children:(0,y.formatDay)(a.item.due)})]})]},a.item.id))})]},a.item.id)),!j&&(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."})]})}),h.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 · ",h.undated.length]}),(0,b.jsx)("div",{className:"flex flex-wrap gap-1.5",children:h.undated.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>e(a.id),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)(w.StatusDot,{status:a.status}),a.title,(0,b.jsx)(x.AgentDot,{attach:{kind:"epic",id:a.id}})]},a.id))})]})]})}function A({item:a,chapter:c,progress:d,onSelect:e}){return(0,b.jsxs)("button",{type:"button",onClick:()=>e(a.id),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,u.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 B=a.i(453161),C=a.i(156298),D=a.i(441852),E=a.i(661661),F=a.i(757061),G=a.i(866718),H=a.i(149350),I=a.i(107742),J=a.i(685698);let K=["planned","in-progress","done"],L="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",M="text-xs font-medium text-muted",N="font-mono text-[10px] uppercase tracking-widest text-muted";function O({item:a,onClose:c,...d}){return(0,b.jsx)(F.Sheet,{open:!!a,onOpenChange:a=>{a||c()},children:(0,b.jsx)(F.SheetContent,{className:"w-[480px] sm:max-w-[480px] gap-0 bg-surface border-border text-txt flex flex-col overflow-y-auto p-0",children:a&&(0,b.jsx)(P,{item:a,onClose:c,...d},a.id)})})}function P(a){let[d,e]=(0,c.useState)(!1);return d?(0,b.jsx)(R,{...a,onCancel:()=>e(!1)}):(0,b.jsx)(Q,{...a,onEdit:()=>e(!0)})}function Q({item:a,items:c,onClose:d,onAddFeature:e,onEditRaw:f,onSelect:i,tasksById:j,progressById:k,onEdit:m}){let n=null===a.parent,o=c.find(b=>b.id===a.parent),p=c.filter(b=>b.parent===a.id).sort((a,b)=>a.order-b.order),r=k[a.id],s=(0,t.localToday)(),{chats:y,showAbout:z}=(0,J.useChats)(),A=n?void 0:(0,I.chatFor)(y,{kind:"epic",id:a.id}),B=!n&&0===a.tasks.length&&!A;return(0,b.jsxs)("div",{className:"flex min-h-full flex-col",children:[(0,b.jsxs)("header",{className:(0,u.cn)("border-b border-border px-6 pb-5 pt-6","in-progress"===a.status&&"bg-[linear-gradient(180deg,rgb(var(--rgb-accent)/0.08),transparent)]"),children:[(0,b.jsx)(F.SheetDescription,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex items-center gap-1 pr-8 font-mono text-[11px] text-muted",children:[o&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{type:"button",onClick:()=>i(o.id),className:"truncate hover:text-txt",children:o.title}),(0,b.jsx)(C.ChevronRight,{className:"h-3 w-3 shrink-0"})]}),(0,b.jsxs)("span",{className:"shrink-0",children:[a.id," · ",n?"horizon":"epic"]})]})}),(0,b.jsx)(F.SheetTitle,{className:"mt-2 text-xl font-semibold leading-tight text-txt",children:a.title}),(0,b.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-3",children:[(0,b.jsx)(w.StatusPill,{status:a.status}),(0,b.jsx)(x.AgentMark,{attach:{kind:"epic",id:a.id}}),(0,b.jsx)(w.DueChip,{due:a.due,state:(0,t.dueState)(a.due,a.status,s)})]}),r&&(0,b.jsxs)("div",{className:"mt-5 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(r.done/r.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:[r.done," of ",r.total,n?"":" tasks"," done"]}),n?(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:`${r.done/r.total*100}%`}})}):(0,b.jsx)(w.SegmentedProgress,{statuses:a.tasks.map(a=>j[a]?.status).filter(a=>!!a&&"cancelled"!==a)})]})]})]}),(0,b.jsxs)("div",{className:"flex flex-1 flex-col gap-6 px-6 py-5",children:[!n&&a.tasks.length>0&&(0,b.jsx)(S,{item:a,tasksById:j,onOpen:f}),n&&(0,b.jsxs)("section",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("p",{className:N,children:["Epics · ",p.length]}),0===p.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:p.map(a=>{let c=k[a.id];return(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>i(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)(w.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,u.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:N,children:"Brief"}),a.body.trim()?(0,b.jsx)(H.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:[B&&(0,b.jsxs)(q.Button,{size:"sm",onClick:()=>{d(),(0,v.askAgent)(`Break down epic ${a.id} into tasks.`)},className:"bg-accent text-white hover:bg-accent/90",children:[(0,b.jsx)(g.Bot,{})," Break down with agent"]}),!n&&(0,b.jsxs)(q.Button,{size:"sm",variant:B?"outline":"default",onClick:()=>{d(),z({kind:"epic",id:a.id})},className:(0,u.cn)(!B&&"bg-accent text-white hover:bg-accent/90"),children:[(0,b.jsx)(D.MessageSquare,{})," ",A?"Open chat":"Chat"]}),n&&(0,b.jsxs)(q.Button,{size:"sm",onClick:()=>e(a.id),className:"bg-accent text-white hover:bg-accent/90",children:[(0,b.jsx)(l.Plus,{})," Add epic"]}),(0,b.jsxs)(q.Button,{size:"sm",variant:"outline",onClick:m,children:[(0,b.jsx)(E.Pencil,{})," Edit"]}),(0,b.jsxs)(q.Button,{size:"sm",variant:"ghost",onClick:()=>f(a.file),className:"ml-auto text-muted hover:text-txt",children:[(0,b.jsx)(h.FileText,{})," Open file"]})]})]})}function R({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,r]=(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,H=null!==a.parent&&!D.some(b=>b.id===a.parent);async function I(a){B(!0),z(null);let b=await a();return B(!1),b&&z(b),!b}async function J(){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 I(()=>f(a.id,b))&&e()}async function N(){window.confirm(`Delete ${a.id}: ${a.title}?`)&&await I(()=>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)(F.SheetDescription,{className:"font-mono text-[11px] text-muted",children:["Editing ",a.id," · ",E?"horizon":"epic"]}),(0,b.jsx)(F.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:M,children:"Title"}),(0,b.jsx)(G.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:M,children:"Status"}),(0,b.jsx)("select",{value:l,onChange:a=>m(a.target.value),className:L,children:K.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:M,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:L,children:[(0,b.jsx)("option",{value:"",children:"— (horizon)"}),H&&(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:M,children:"Order"}),(0,b.jsx)(G.Input,{type:"number",step:10,value:p,onChange:a=>r(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:M,children:"Due"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(G.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:M,children:"Tasks"}),(0,b.jsx)(G.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:M,children:"Body (markdown)"}),(0,b.jsx)("textarea",{value:w,onChange:a=>x(a.target.value),rows:12,className:`${L} 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)(q.Button,{size:"sm",onClick:J,disabled:A,className:"bg-accent text-white hover:bg-accent/90",children:"Save"}),(0,b.jsx)(q.Button,{size:"sm",variant:"ghost",onClick:h,disabled:A,className:"text-txt",children:"Cancel"}),(0,b.jsx)(q.Button,{size:"sm",variant:"ghost",onClick:N,disabled:A,className:"ml-auto text-danger hover:text-danger",children:"Delete"})]})]})}function S({item:a,tasksById:c,onOpen:d}){let e=(0,t.localToday)(),f=s(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:N,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,u.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,u.cn)("h-2 w-2 shrink-0 rounded-full",w.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,u.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)(w.DueChip,{due:f.due,state:(0,t.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)(x.AgentDot,{attach:{kind:"task",id:f.id}})]}),(0,b.jsx)(T,{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 T({taskId:a}){let{chats:c,showAbout:d}=(0,J.useChats)(),e=!!(0,I.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,u.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)(D.MessageSquare,{className:"size-3.5"})})}var U=a.i(814574);function V({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)(U.Dialog,{open:a,onOpenChange:m,children:(0,b.jsxs)(U.DialogContent,{className:"max-w-sm bg-surface border-border text-txt",children:[(0,b.jsx)(U.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)(G.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)(q.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>m(!1),children:"Cancel"}),(0,b.jsx)(q.Button,{type:"submit",size:"sm",disabled:k||!g.trim(),className:"bg-accent text-white hover:bg-accent/90",children:"Create"})]})]})]})})}function W({open:a,onOpenChange:d}){let[e,f]=(0,c.useState)("");return(0,b.jsx)(U.Dialog,{open:a,onOpenChange:d,children:(0,b.jsxs)(U.DialogContent,{className:"max-w-lg bg-surface border-border text-txt",children:[(0,b.jsx)(U.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,v.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(553415),j=a.i(200382),k=a.i(551729),l=a.i(913975),m=a.i(544394),n=a.i(21215),o=a.i(699570);let p=a=>"done"===a||"cancelled"===a;function q(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||!p(b.status)});for(let a of d)if("todo"===a.status&&!e(a).length)return{kind:"ready",taskId:a.id};if(d.every(a=>p(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 r=a.i(452696),s=a.i(368114),t=a.i(525395),u=a.i(618940),v=a.i(815122),w=a.i(581040);function x({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,w.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)(y,{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*w.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*w.LANE_ROW_H},children:[a.horizon?(0,b.jsx)("span",{className:(0,s.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,s.cn)("rounded-full","overdue"===a.state&&"ring-2 ring-danger ring-offset-1 ring-offset-bg"),children:(0,b.jsx)(u.StatusDot,{status:a.item.status})}),(0,b.jsxs)("span",{className:(0,s.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,s.cn)("truncate text-xs","done"===a.item.status?"text-muted":"text-txt",a.horizon&&"font-semibold"),children:a.item.title}),(0,b.jsx)(v.AgentDot,{attach:{kind:"epic",id:a.item.id}})]}),(0,b.jsx)("span",{className:(0,s.cn)("font-mono text-[10px]","overdue"===a.state?"text-danger":"soon"===a.state?"text-amber":"text-muted"),children:(0,w.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)(u.StatusDot,{status:a.status}),a.title,(0,b.jsx)(v.AgentDot,{attach:{kind:"epic",id:a.id}})]},a.id))})]})]})}function y({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,s.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 z=a.i(453161),A=a.i(156298),B=a.i(441852),C=a.i(661661),D=a.i(757061),E=a.i(866718),F=a.i(149350),G=a.i(107742),H=a.i(685698),I=a.i(60084),J=a.i(717143),K=a.i(763747),L=a.i(28386),M=a.i(335732),N=a.i(890728);let O=["planned","in-progress","paused","done"];function P({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)(M.DropdownMenuItem,{onSelect:()=>d.edit(a.id),children:[(0,b.jsx)(C.Pencil,{})," Edit",(0,b.jsx)(M.DropdownMenuShortcut,{children:(0,N.itemKeyLabel)("edit")})]}),(0,b.jsxs)(M.DropdownMenuSub,{children:[(0,b.jsxs)(M.DropdownMenuSubTrigger,{children:[(0,b.jsx)(u.StatusDot,{status:a.status})," Status",(0,b.jsx)(M.DropdownMenuShortcut,{children:(0,N.itemKeyLabel)("status")})]}),(0,b.jsx)(M.DropdownMenuSubContent,{children:O.map(c=>(0,b.jsxs)(M.DropdownMenuItem,{disabled:c===a.status,onSelect:()=>d.setStatus(a.id,c),children:[(0,b.jsx)(u.StatusDot,{status:c})," ",u.STATUS_LABEL[c]]},c))})]}),!e&&f.length>0&&(0,b.jsxs)(M.DropdownMenuSub,{children:[(0,b.jsxs)(M.DropdownMenuSubTrigger,{children:[(0,b.jsx)(J.FolderInput,{})," Move to horizon"]}),(0,b.jsx)(M.DropdownMenuSubContent,{className:"max-h-72 overflow-y-auto",children:f.map(c=>(0,b.jsxs)(M.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)(M.DropdownMenuItem,{onSelect:()=>d.addEpic(a.id),children:[(0,b.jsx)(j.Plus,{})," Add epic"]}),(0,b.jsxs)(M.DropdownMenuItem,{onSelect:()=>d.duplicate(a.id),children:[(0,b.jsx)(I.Copy,{})," Duplicate",(0,b.jsx)(M.DropdownMenuShortcut,{children:(0,N.itemKeyLabel)("duplicate")})]}),(0,b.jsx)(M.DropdownMenuSeparator,{}),!e&&(0,b.jsxs)(M.DropdownMenuItem,{onSelect:()=>d.chat(a.id),children:[(0,b.jsx)(B.MessageSquare,{})," Chat about it",(0,b.jsx)(M.DropdownMenuShortcut,{children:(0,N.itemKeyLabel)("chat")})]}),(0,b.jsxs)(M.DropdownMenuItem,{onSelect:()=>d.openFile(a.file),children:[(0,b.jsx)(h.FileText,{})," Open file"]}),(0,b.jsx)(M.DropdownMenuSeparator,{}),g>0?(0,b.jsxs)(M.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)(L.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)(M.DropdownMenuItem,{onSelect:()=>d.remove(a.id),className:"text-danger focus:text-danger",children:[(0,b.jsx)(L.Trash2,{})," Delete",(0,b.jsx)(M.DropdownMenuShortcut,{children:(0,N.itemKeyLabel)("remove")})]})]})}function Q({item:a,items:c,actions:d,className:e,open:f,onOpenChange:g}){return(0,b.jsxs)(M.DropdownMenu,{open:f,onOpenChange:g,children:[(0,b.jsx)(M.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button","aria-label":`Actions for ${a.id}`,className:(0,s.cn)("grid size-7 place-items-center rounded-md text-muted hover:bg-surface2 hover:text-txt",e),children:(0,b.jsx)(K.MoreHorizontal,{className:"size-4"})})}),(0,b.jsx)(M.DropdownMenuContent,{align:"end",className:"w-52",children:(0,b.jsx)(P,{item:a,items:c,actions:d})})]})}function R({at:a,items:c,actions:d,onClose:e}){let f=a&&c.find(b=>b.id===a.id);return a&&f?(0,b.jsxs)(M.DropdownMenu,{open:!0,onOpenChange:a=>{a||e()},children:[(0,b.jsx)(M.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)(M.DropdownMenuContent,{align:"start",className:"w-52",children:(0,b.jsx)(P,{item:f,items:c,actions:d})})]},`${a.id}:${a.x}:${a.y}`):null}var S=a.i(813722),T=a.i(192698),U=a.i(787714),V=a.i(269769);let W=["planned","in-progress","paused","done"],X="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",Y="text-xs font-medium text-muted",Z="font-mono text-[10px] uppercase tracking-widest text-muted";function $({item:a,onClose:c,...d}){return(0,b.jsx)(D.Sheet,{open:!!a,onOpenChange:a=>{a||c()},children:(0,b.jsx)(D.SheetContent,{className:"w-[480px] sm:max-w-[480px] gap-0 bg-surface border-border text-txt flex flex-col overflow-y-auto p-0",children:a&&(0,b.jsx)(_,{item:a,onClose:c,...d},a.id)})})}function _(a){return a.editing?(0,b.jsx)(ab,{...a,onCancel:()=>a.onEditingChange(!1)}):(0,b.jsx)(aa,{...a,onEdit:()=>a.onEditingChange(!0)})}function aa({item:a,items:d,onClose:e,onAddFeature:f,onEditRaw:i,onSelect:k,tasksById:l,progressById:m,onEdit:n,actions:p,onSave:q}){let w=null===a.parent,x=d.find(b=>b.id===a.parent),y=d.filter(b=>b.parent===a.id).sort((a,b)=>a.order-b.order),z=m[a.id],E=(0,r.localToday)(),{chats:I,showAbout:J}=(0,H.useChats)(),K=w?void 0:(0,G.chatFor)(I,{kind:"epic",id:a.id}),L=!w&&0===a.tasks.length&&!K,[M,O]=(0,c.useState)(!1),P=b=>{q(a.id,b).then(a=>{a&&(0,V.toast)(a)})};return(0,N.useItemCommands)(`${a.id} \xb7 ${a.title}`,[{action:"edit",label:"Edit",run:n},{action:"status",label:"Change status…",run:()=>O(!0)},{action:"duplicate",label:"Duplicate",run:()=>p.duplicate(a.id)},...w?[]:[{action:"chat",label:"Chat about it",run:()=>p.chat(a.id)}],...y.length?[]:[{action:"remove",label:"Delete",run:()=>p.remove(a.id)}]]),(0,b.jsxs)("div",{className:"flex min-h-full flex-col",children:[(0,b.jsx)(T.ItemPanelHeader,{className:(0,s.cn)("px-6","in-progress"===a.status&&"bg-[linear-gradient(180deg,rgb(var(--rgb-accent)/0.08),transparent)]"),kicker:(0,b.jsx)(D.SheetDescription,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-1",children:[x&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{type:"button",onClick:()=>k(x.id),className:"truncate hover:text-txt",children:x.title}),(0,b.jsx)(A.ChevronRight,{className:"h-3 w-3 shrink-0"})]}),(0,b.jsxs)("span",{className:"shrink-0",children:[a.id," · ",w?"horizon":"epic"]}),(0,b.jsx)(v.AgentMark,{attach:{kind:"epic",id:a.id}})]})}),title:(0,b.jsx)(D.SheetTitle,{className:"text-xl font-semibold leading-tight text-txt",children:a.title}),menu:(0,b.jsx)(Q,{item:a,items:d,actions:p,open:M,onOpenChange:O}),properties:[{label:"Status",value:(0,b.jsx)(U.InlineSelect,{label:`Status of ${a.id}`,value:a.status,onChange:b=>p.setStatus(a.id,b),options:W.map(a=>({value:a,label:u.STATUS_LABEL[a],node:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(u.StatusDot,{status:a}),u.STATUS_LABEL[a]]})})),children:(0,b.jsx)(u.StatusPill,{status:a.status})})},{label:"Owner",value:(0,b.jsx)(U.InlineSelect,{label:`Owner of ${a.id}`,value:a.owner??"",onChange:a=>P({owner:a||null}),options:[{value:"human",label:"Human",node:(0,b.jsx)(S.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)(S.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)(S.OwnerChip,{owner:a.owner,className:"text-xs"}):(0,b.jsx)("span",{className:"text-muted",children:"—"})})},{label:"Due",value:(0,b.jsx)(U.InlineDate,{label:`Due date of ${a.id}`,value:a.due,onChange:a=>P({due:a}),children:a.due?(0,b.jsx)(u.DueChip,{due:a.due,state:(0,r.dueState)(a.due,a.status,E)}):(0,b.jsx)("span",{className:"text-muted",children:"—"})})},{label:w?"Epics":"Tasks",value:(0,b.jsx)("span",{className:"font-mono",children:w?y.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,w?"":" tasks"," done"]}),w?(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)(u.SegmentedProgress,{statuses:a.tasks.map(a=>l[a]?.status).filter(a=>!!a&&"cancelled"!==a)})]})]})}),(0,b.jsxs)("div",{className:"flex flex-1 flex-col gap-6 px-6 py-5",children:[!w&&a.tasks.length>0&&(0,b.jsx)(ac,{item:a,tasksById:l,onOpen:i}),w&&(0,b.jsxs)("section",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("p",{className:Z,children:["Epics · ",y.length]}),0===y.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:y.map(a=>{let c=m[a.id];return(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>k(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)(u.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,s.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:Z,children:"Brief"}),a.body.trim()?(0,b.jsx)(F.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:[L&&(0,b.jsxs)(o.Button,{size:"sm",onClick:()=>{e(),(0,t.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"]}),!w&&(0,b.jsxs)(o.Button,{size:"sm",variant:L?"outline":"default",onClick:()=>{e(),J({kind:"epic",id:a.id})},className:(0,s.cn)(!L&&"bg-accent text-accent-fg hover:bg-accent/90"),children:[(0,b.jsx)(B.MessageSquare,{})," ",K?"Open chat":"Chat"]}),w&&(0,b.jsxs)(o.Button,{size:"sm",onClick:()=>f(a.id),className:"bg-accent text-accent-fg hover:bg-accent/90",children:[(0,b.jsx)(j.Plus,{})," Add epic"]}),(0,b.jsxs)(o.Button,{size:"sm",variant:"outline",onClick:n,children:[(0,b.jsx)(C.Pencil,{})," Edit"]}),(0,b.jsxs)(o.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 ab({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,p]=(0,c.useState)(a.parent??""),[q,r]=(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),F=d.filter(b=>null===b.parent&&b.id!==a.id),G=null===a.parent,H=null!==a.parent&&!F.some(b=>b.id===a.parent);async function I(a){B(!0),z(null);let b=await a();return B(!1),b&&z(b),!b}async function J(){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),q.trim()!==String(i.order)){let a=Number(q);if(""===q.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 I(()=>f(a.id,b))&&e()}async function K(){await I(()=>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)(D.SheetDescription,{className:"font-mono text-[11px] text-muted",children:["Editing ",a.id," · ",G?"horizon":"epic"]}),(0,b.jsx)(D.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:Y,children:"Title"}),(0,b.jsx)(E.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:Y,children:"Status"}),(0,b.jsx)("select",{value:l,onChange:a=>m(a.target.value),className:X,children:W.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:Y,children:"Parent"}),(0,b.jsxs)("select",{value:n,onChange:a=>p(a.target.value),disabled:C,title:C?"Items with children must stay on the spine":void 0,className:X,children:[(0,b.jsx)("option",{value:"",children:"— (horizon)"}),H&&(0,b.jsxs)("option",{value:a.parent??"",children:[a.parent," · missing"]}),F.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:Y,children:"Order"}),(0,b.jsx)(E.Input,{type:"number",step:10,value:q,onChange:a=>r(a.target.value),title:G?"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:Y,children:"Due"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(E.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:Y,children:"Tasks"}),(0,b.jsx)(E.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:Y,children:"Body (markdown)"}),(0,b.jsx)("textarea",{value:w,onChange:a=>x(a.target.value),rows:12,className:`${X} 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)(o.Button,{size:"sm",onClick:J,disabled:A,className:"bg-accent text-accent-fg hover:bg-accent/90",children:"Save"}),(0,b.jsx)(o.Button,{size:"sm",variant:"ghost",onClick:h,disabled:A,className:"text-txt",children:"Cancel"}),(0,b.jsx)(o.Button,{size:"sm",variant:"ghost",onClick:K,disabled:A,className:"ml-auto text-danger hover:text-danger",children:"Delete"})]})]})}function ac({item:a,tasksById:c,onOpen:d}){let e=(0,r.localToday)(),f=q(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:Z,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,s.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,s.cn)("h-2 w-2 shrink-0 rounded-full",u.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,s.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)(u.DueChip,{due:f.due,state:(0,r.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)(v.AgentDot,{attach:{kind:"task",id:f.id}})]}),(0,b.jsx)(ad,{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 ad({taskId:a}){let{chats:c,showAbout:d}=(0,H.useChats)(),e=!!(0,G.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,s.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)(B.MessageSquare,{className:"size-3.5"})})}var ae=a.i(814574);function af({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)(ae.Dialog,{open:a,onOpenChange:m,children:(0,b.jsxs)(ae.DialogContent,{className:"max-w-sm bg-surface border-border text-txt",children:[(0,b.jsx)(ae.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)(E.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)(o.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>m(!1),children:"Cancel"}),(0,b.jsx)(o.Button,{type:"submit",size:"sm",disabled:k||!g.trim(),className:"bg-accent text-accent-fg hover:bg-accent/90",children:"Create"})]})]})]})})}function ag({open:a,onOpenChange:d}){let[e,f]=(0,c.useState)("");return(0,b.jsx)(ae.Dialog,{open:a,onOpenChange:d,children:(0,b.jsxs)(ae.DialogContent,{className:"max-w-lg bg-surface border-border text-txt",children:[(0,b.jsx)(ae.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,t.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)(q.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>{f(""),d(!1)},children:"Cancel"}),(0,b.jsx)(q.Button,{type:"submit",size:"sm",disabled:!e.trim(),className:"bg-accent text-white hover:bg-accent/90",children:"Break down"})]})]})]})})}function X({open:a,onOpenChange:c,items:d}){return(0,b.jsx)(U.Dialog,{open:a,onOpenChange:c,children:(0,b.jsxs)(U.DialogContent,{className:"max-w-lg bg-surface border-border text-txt",children:[(0,b.jsx)(U.DialogTitle,{className:"text-sm font-semibold text-txt",children:"Break down epics"}),(0,b.jsx)(Y,{items:d,onDone:()=>c(!1)})]})})}function Y({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,J.useChats)().runningCount,j=Math.max(0,I.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,v.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 ${I.MAX_RUNNING_CHATS} agent slots are busy. Stop a chat or wait for one to finish.`:k?`${g.size} selected, but only ${j} of ${I.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 ${I.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)(q.Button,{type:"button",variant:"ghost",size:"sm",onClick:d,children:"Cancel"}),(0,b.jsxs)(q.Button,{type:"submit",size:"sm",disabled:!g.size||k,className:"bg-accent text-white hover:bg-accent/90",children:["Break down ",g.size||""," epic",1===g.size?"":"s"]})]})]})}async function Z(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 $(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?B.HORIZON_W:B.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 _(a){let b=new MutationObserver(a);return b.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>b.disconnect()}let aa={"--xy-background-color":"var(--color-bg)"};function ab(){let{rootParam:a,openDoc:e,board:f}=(0,o.useApp)(),i=(0,n.useRouter)(),j=(0,n.useSearchParams)(),r="timeline"===j.get("view")?"timeline":"map",x=(0,t.localToday)(),[y,A]=(0,c.useState)([]),[C,D]=(0,c.useState)({}),[E,F]=(0,c.useState)([]),[G,H]=(0,c.useState)(!0),[I,J]=(0,c.useState)(null),[K,L]=(0,c.useState)(null),M=j.get("item"),[N,P]=(0,c.useState)(null);M!==N&&(P(M),M&&L(M));let[Q,R]=(0,c.useState)(null),[S,T]=(0,c.useState)(!1),[U,Y]=(0,c.useState)(null),[ab,ae]=(0,c.useState)(!1),[af,ag]=(0,c.useState)(!1),ah=(0,c.useRef)(!1),ai=(0,c.useRef)(null),aj=(0,c.useCallback)(a=>{let b=ai.current?.clientWidth??0,c=a.getNodesBounds(a.getNodes());if(!b||!c.width)return;let d=Math.min(1,Math.max(.75,(b-80)/c.width));a.setViewport({x:b/2-(c.x+c.width/2)*d,y:40-c.y*d,zoom:d})},[]),ak=(0,c.useRef)(!1),al=(0,c.useRef)(0),am=(0,c.useSyncExternalStore)(_,()=>document.documentElement.classList.contains("dark"),()=>!0),an=(0,c.useCallback)((a,b)=>{A(a),D(b),F(c=>{let d,e;return d=(0,B.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}})})},[]),ao=(0,c.useCallback)(()=>{let b=++al.current;return Z(`/api/roadmap${a}`).then(({data:a,error:c})=>{if(b===al.current){if(H(!1),c){J(c),an([],{}),L(null);return}J(null),R(a?.generateSource??null),an(a?.items??[],a?.layout??{})}})},[a,an]);(0,c.useEffect)(()=>{ao()},[ao]),(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?ak.current=!0:ao()}catch{}},()=>a.close()},[ao]);let ap=(0,c.useMemo)(()=>{let a=new Map(E.map(a=>[a.id,a])),b=[],c=y.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($(`spine-${d.id}`,f,g,!0))}),y)){let c=d.parent&&a.get(d.parent),e=a.get(d.id);c&&e&&"horizon"===c.type&&b.push($(`branch-${d.id}`,c,e,!1))}return b},[y,E]),aq=(0,c.useMemo)(()=>Object.fromEntries(Object.values(f??{}).flat().map(a=>[a.id,a])),[f]),ar=(0,c.useMemo)(()=>(0,t.roadmapHealth)(y,aq,x),[y,aq,x]),as=(0,c.useMemo)(()=>{let a=Object.values(aq),b=new Map(y.filter(a=>null===a.parent).sort((a,b)=>a.order-b.order).map((a,b)=>[a.id,b+1]));return E.map(c=>{var d;let e,{item:f}=c.data,g=y.filter(a=>a.parent===f.id),h="feature"===c.type&&"in-progress"===f.status?s(f,a):null;return{...c,data:{...c.data,progress:ar.progress[c.id],drift:ar.drift.filter(a=>a.id===c.id).map(a=>a.message),dueState:(0,t.dueState)(f.due,f.status,x),..."feature"===c.type&&{...(d=f.tasks,{taskDue:e=(0,t.taskDueSummary)(d,aq,x),taskDueSoon:!!e?.next&&"soon"===(0,t.dueState)(e.next,"planned",x)}),taskStatuses:f.tasks.map(a=>aq[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}}}}})},[E,y,ar,x,aq]),at=(0,c.useCallback)(a=>F(b=>(0,d.applyNodeChanges)(a,b)),[]);async function au(){T(!0),J(null);let{data:b,error:c}=await Z(`/api/roadmap/generate${a}`,{});if(c){J(c),T(!1);return}let d=Object.fromEntries(Object.entries((0,B.resolvePositions)(b?.items??[],{})).map(([a,b])=>[a,{x:Math.round(b.x),y:Math.round(b.y)}])),{error:e}=await Z(`/api/roadmap/layout${a}`,{positions:d});await ao(),e&&J(e),T(!1)}let av=Object.values(f??{}).flat().filter(a=>"cancelled"!==a.status).length,aw="roadmap-md"===Q?"from ROADMAP.md":"tasks"===Q?`from ${av} tasks, grouped by phase`:"starter horizons: Shipped · Now · Next · Later";async function ax(b){let{error:c}=await Z(`/api/roadmap/create${a}`,{title:b,parent:U||null});return c||(await ao(),null)}async function ay(b,c){let{data:d,error:e}=await Z(`/api/roadmap/update${a}`,{id:b,patch:c});if(e)return e;let f=d?.item;return f?an(y.map(a=>a.id===b?f:a),C):await ao(),null}async function az(b){let{error:c}=await Z(`/api/roadmap/delete${a}`,{id:b});return c||(an(y.filter(a=>a.id!==b),C),null)}let aA=y.find(a=>a.id===K)??null,aB=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(V,{open:null!==U,heading:U?`New feature under ${U}`:"New horizon",onOpenChange:a=>{a||Y(null)},onSubmit:ax}),(0,b.jsx)(W,{open:ab,onOpenChange:ae}),(0,b.jsx)(X,{open:af,onOpenChange:ag,items:y})]});return G?(0,b.jsx)("div",{className:"flex-1 flex items-center justify-center text-sm text-muted",children:"Loading…"}):0===y.length?(0,b.jsxs)("div",{className:"flex-1 p-6",children:[I&&(0,b.jsx)("p",{className:"mb-4 text-sm text-danger",children:I}),(0,b.jsx)(p.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)(q.Button,{size:"sm",onClick:au,disabled:S,className:"bg-accent text-white hover:bg-accent/90",children:[(0,b.jsx)(m.Sparkles,{})," ",S?"Generating…":"Generate roadmap"]}),(0,b.jsxs)(q.Button,{size:"sm",variant:"outline",onClick:()=>(0,v.askAgent)("Plan a roadmap for this project."),disabled:S,children:[(0,b.jsx)(g.Bot,{})," Plan with agent"]}),(0,b.jsxs)(q.Button,{size:"sm",variant:"outline",onClick:()=>ae(!0),disabled:S,children:[(0,b.jsx)(h.FileText,{})," Plan from spec"]}),(0,b.jsxs)(q.Button,{size:"sm",variant:"outline",onClick:()=>Y(""),disabled:S,children:[(0,b.jsx)(l.Plus,{})," Create first horizon"]})]}),(0,b.jsxs)("p",{className:"text-xs text-muted",children:["Generate ",aw,". Existing files are not modified."]})]}),aB]}):(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(j.toString()),"map"===a?b.delete("view"):b.set("view",a),c=b.toString(),void i.replace(c?`/roadmap?${c}`:"/roadmap")},className:(0,u.cn)("rounded-sm px-3 py-1 capitalize",r===a?"bg-surface2 text-txt":"text-muted hover:text-txt"),children:a},a))}),(0,b.jsx)(ac,{items:y,tasksById:aq}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[I&&(0,b.jsx)("p",{className:"text-xs text-danger",children:I}),ar.drift.length>0&&(0,b.jsx)(ad,{drift:ar.drift,onSelect:L,onApply:a=>a.suggestedStatus&&ay(a.id,{status:a.suggestedStatus}).then(a=>{a&&J(a)})}),(0,b.jsxs)(q.Button,{size:"sm",variant:"outline",onClick:()=>ae(!0),children:[(0,b.jsx)(h.FileText,{})," Plan from spec"]}),y.some(a=>null!==a.parent&&"done"!==a.status)&&(0,b.jsxs)(q.Button,{size:"sm",variant:"outline",onClick:()=>ag(!0),children:[(0,b.jsx)(k,{})," Break down epics…"]}),(0,b.jsxs)(q.Button,{size:"sm",onClick:()=>Y(""),className:"bg-accent text-white hover:bg-accent/90",children:[(0,b.jsx)(l.Plus,{})," Horizon"]})]})]}),"map"===r?(0,b.jsx)("div",{ref:ai,className:"relative flex-1 min-h-0",children:(0,b.jsxs)(d.ReactFlow,{nodes:as,edges:ap,nodeTypes:w.nodeTypes,onNodesChange:at,onNodeClick:(a,b)=>L(b.id),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(an(y,{...C,...e}),Z(`/api/roadmap/layout${a}`,{positions:e}).then(({error:a})=>{a&&J(a),ak.current&&(ak.current=!1,ao())}))},nodesConnectable:!1,deleteKeyCode:null,colorMode:am?"dark":"light",onInit:aj,minZoom:.2,style:aa,children:[(0,b.jsx)(d.Background,{variant:d.BackgroundVariant.Dots,gap:20,size:1}),(0,b.jsx)(d.Controls,{showInteractive:!1})]})}):(0,b.jsx)(z,{items:y,today:x,onSelect:L,progressById:ar.progress}),(0,b.jsx)(O,{item:aA,items:y,onClose:()=>L(null),onSave:ay,onDelete:az,onAddFeature:a=>{L(null),Y(a)},onEditRaw:a=>{e(a)},tasksById:aq,progressById:ar.progress,onSelect:L}),aB]})}function ac({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","done","planned"].map(a=>(0,b.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,b.jsx)(w.StatusDot,{status:a}),(0,b.jsx)("span",{className:(0,u.cn)("tabular-nums","in-progress"===a&&e(a)>0?"text-accent":"text-txt"),children:e(a)}),w.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 ad({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)(ab,{})})})}],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)(o.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>{f(""),d(!1)},children:"Cancel"}),(0,b.jsx)(o.Button,{type:"submit",size:"sm",disabled:!e.trim(),className:"bg-accent text-accent-fg hover:bg-accent/90",children:"Break down"})]})]})]})})}function ah({open:a,onOpenChange:c,items:d}){return(0,b.jsx)(ae.Dialog,{open:a,onOpenChange:c,children:(0,b.jsxs)(ae.DialogContent,{className:"max-w-lg bg-surface border-border text-txt",children:[(0,b.jsx)(ae.DialogTitle,{className:"text-sm font-semibold text-txt",children:"Break down epics"}),(0,b.jsx)(ai,{items:d,onDone:()=>c(!1)})]})})}function ai({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,H.useChats)().runningCount,j=Math.max(0,G.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,t.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 ${G.MAX_RUNNING_CHATS} agent slots are busy. Stop a chat or wait for one to finish.`:k?`${g.size} selected, but only ${j} of ${G.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 ${G.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)(o.Button,{type:"button",variant:"ghost",size:"sm",onClick:d,children:"Cancel"}),(0,b.jsxs)(o.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 aj(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 ak(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?z.HORIZON_W:z.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 al(a){let b=new MutationObserver(a);return b.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>b.disconnect()}let am={"--xy-background-color":"var(--color-bg)"};function an(){let{rootParam:a,openDoc:e,board:f}=(0,m.useApp)(),{showAbout:p}=(0,H.useChats)(),v=(0,l.useRouter)(),w=(0,l.useSearchParams)(),y="timeline"===w.get("view")?"timeline":"map",A=(0,r.localToday)(),[B,C]=(0,c.useState)([]),[D,E]=(0,c.useState)({}),[F,G]=(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=w.get("item"),[U,W]=(0,c.useState)(null);T!==U&&(W(T),T&&N(T));let[X,Y]=(0,c.useState)(null),[Z,_]=(0,c.useState)(!1),[aa,ab]=(0,c.useState)(null),[ac,ad]=(0,c.useState)(!1),[ae,ai]=(0,c.useState)(!1),an=(0,c.useRef)(!1),aq=(0,c.useRef)(null),ar=(0,c.useCallback)(a=>{let b=aq.current?.clientWidth??0,c=a.getNodesBounds(a.getNodes());if(!b||!c.width)return;let d=Math.min(1,Math.max(.75,(b-80)/c.width));a.setViewport({x:b/2-(c.x+c.width/2)*d,y:40-c.y*d,zoom:d})},[]),as=(0,c.useRef)(!1),at=(0,c.useRef)(0),au=(0,c.useSyncExternalStore)(al,()=>document.documentElement.classList.contains("dark"),()=>!0),av=(0,c.useCallback)((a,b)=>{C(a),E(b),G(c=>{let d,e;return d=(0,z.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}})})},[]),aw=(0,c.useCallback)(()=>{let b=++at.current;return aj(`/api/roadmap${a}`).then(({data:a,error:c})=>{if(b===at.current){if(J(!1),c){L(c),av([],{}),N(null);return}L(null),Y(a?.generateSource??null),av(a?.items??[],a?.layout??{})}})},[a,av]);(0,c.useEffect)(()=>{aw()},[aw]),(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;an.current?as.current=!0:aw()}catch{}},()=>a.close()},[aw]);let ax=(0,c.useMemo)(()=>{let a=new Map(F.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(ak(`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(ak(`branch-${d.id}`,c,e,!1))}return b},[B,F]),ay=(0,c.useMemo)(()=>Object.fromEntries(Object.values(f??{}).flat().map(a=>[a.id,a])),[f]),az=(0,c.useMemo)(()=>(0,r.roadmapHealth)(B,ay,A),[B,ay,A]),aA=(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 F.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?q(f,a):null;return{...c,data:{...c.data,progress:az.progress[c.id],drift:az.drift.filter(a=>a.id===c.id).map(a=>a.message),dueState:(0,r.dueState)(f.due,f.status,A),..."feature"===c.type&&{...(d=f.tasks,{taskDue:e=(0,r.taskDueSummary)(d,ay,A),taskDueSoon:!!e?.next&&"soon"===(0,r.dueState)(e.next,"planned",A)}),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}}}}})},[F,B,az,A,ay]),aB=(0,c.useCallback)(a=>G(b=>(0,d.applyNodeChanges)(a,b)),[]);async function aC(){_(!0),L(null);let{data:b,error:c}=await aj(`/api/roadmap/generate${a}`,{});if(c){L(c),_(!1);return}let d=Object.fromEntries(Object.entries((0,z.resolvePositions)(b?.items??[],{})).map(([a,b])=>[a,{x:Math.round(b.x),y:Math.round(b.y)}])),{error:e}=await aj(`/api/roadmap/layout${a}`,{positions:d});await aw(),e&&L(e),_(!1)}let aD=Object.values(f??{}).flat().filter(a=>"cancelled"!==a.status).length,aE="roadmap-md"===X?"from ROADMAP.md":"tasks"===X?`from ${aD} tasks, grouped by phase`:"starter horizons: Shipped · Now · Next · Later";async function aF(b){let{error:c}=await aj(`/api/roadmap/create${a}`,{title:b,parent:aa||null});return c||(await aw(),null)}async function aG(b,c){av(B.map(a=>a.id===b?{...a,...c}:a),D);let{data:d,error:e}=await aj(`/api/roadmap/update${a}`,{id:b,patch:c});if(e)return await aw(),e;let f=d?.item;return f?av(B.map(a=>a.id===b?f:a),D):await aw(),null}async function aH(b){let{data:c,error:d}=await aj(`/api/roadmap/delete${a}`,{id:b});return d||(av(B.filter(a=>a.id!==b),D),c&&(0,V.undoToast)(`Deleted ${b}`,async()=>{let{error:b}=await aj(`/api/roadmap/restore${a}`,c);if(b)throw Error(b);await aw()}),null)}let aI=B.find(a=>a.id===M)??null,aJ=a=>{a&&L(a)},aK={edit:a=>{N(a),P(a)},setStatus:(a,b)=>{aG(a,{status:b}).then(aJ)},move:(a,b)=>{aG(a,{parent:b}).then(aJ)},addEpic:a=>{N(null),ab(a)},duplicate:async b=>{let c=B.find(a=>a.id===b);if(!c)return;let{data:d,error:e}=await aj(`/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 aw(),d?.item&&N(d.item.id)},openFile:a=>e(a),chat:a=>{N(null),p({kind:"epic",id:a})},remove:async a=>{let b=await aH(a);if(b)return L(b);M===a&&N(null)}},aL=(a,b)=>{b.preventDefault(),S({id:a,x:b.clientX,y:b.clientY})},aM=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(af,{open:null!==aa,heading:aa?`New feature under ${aa}`:"New horizon",onOpenChange:a=>{a||ab(null)},onSubmit:aF}),(0,b.jsx)(ag,{open:ac,onOpenChange:ad}),(0,b.jsx)(ah,{open:ae,onOpenChange:ai,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)(n.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)(o.Button,{size:"sm",onClick:aC,disabled:Z,className:"bg-accent text-accent-fg hover:bg-accent/90",children:[(0,b.jsx)(k.Sparkles,{})," ",Z?"Generating…":"Generate roadmap"]}),(0,b.jsxs)(o.Button,{size:"sm",variant:"outline",onClick:()=>(0,t.askAgent)("Plan a roadmap for this project."),disabled:Z,children:[(0,b.jsx)(g.Bot,{})," Plan with agent"]}),(0,b.jsxs)(o.Button,{size:"sm",variant:"outline",onClick:()=>ad(!0),disabled:Z,children:[(0,b.jsx)(h.FileText,{})," Plan from spec"]}),(0,b.jsxs)(o.Button,{size:"sm",variant:"outline",onClick:()=>ab(""),disabled:Z,children:[(0,b.jsx)(j.Plus,{})," Create first horizon"]})]}),(0,b.jsxs)("p",{className:"text-xs text-muted",children:["Generate ",aE,". Existing files are not modified."]})]}),aM]}):(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(w.toString()),"map"===a?b.delete("view"):b.set("view",a),c=b.toString(),void v.replace(c?`/roadmap?${c}`:"/roadmap")},className:(0,s.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)(ao,{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}),az.drift.length>0&&(0,b.jsx)(ap,{drift:az.drift,onSelect:N,onApply:a=>a.suggestedStatus&&aG(a.id,{status:a.suggestedStatus}).then(a=>{a&&L(a)})}),(0,b.jsxs)(o.Button,{size:"sm",variant:"outline",onClick:()=>ad(!0),children:[(0,b.jsx)(h.FileText,{})," Plan from spec"]}),B.some(a=>null!==a.parent&&"done"!==a.status)&&(0,b.jsxs)(o.Button,{size:"sm",variant:"outline",onClick:()=>ai(!0),children:[(0,b.jsx)(i.ListTree,{})," Break down epics…"]}),(0,b.jsxs)(o.Button,{size:"sm",onClick:()=>ab(""),className:"bg-accent text-accent-fg hover:bg-accent/90",children:[(0,b.jsx)(j.Plus,{})," Horizon"]})]})]}),"map"===y?(0,b.jsx)("div",{ref:aq,className:"relative flex-1 min-h-0",children:(0,b.jsxs)(d.ReactFlow,{nodes:aA,edges:ax,nodeTypes:u.nodeTypes,onNodesChange:aB,onNodeClick:(a,b)=>N(b.id),onNodeContextMenu:(a,b)=>aL(b.id,a),onNodeDragStart:()=>{an.current=!0},onNodeDragStop:(b,c,d)=>{let e;return an.current=!1,e=Object.fromEntries(d.map(a=>[a.id,{x:Math.round(a.position.x),y:Math.round(a.position.y)}])),void(av(B,{...D,...e}),aj(`/api/roadmap/layout${a}`,{positions:e}).then(({error:a})=>{a&&L(a),as.current&&(as.current=!1,aw())}))},nodesConnectable:!1,deleteKeyCode:null,colorMode:au?"dark":"light",onInit:ar,minZoom:.2,style:am,children:[(0,b.jsx)(d.Background,{variant:d.BackgroundVariant.Dots,gap:20,size:1}),(0,b.jsx)(d.Controls,{showInteractive:!1})]})}):(0,b.jsx)(x,{items:B,today:A,onSelect:N,onItemContextMenu:aL,progressById:az.progress}),(0,b.jsx)($,{item:aI,items:B,onClose:()=>N(null),editing:!!aI&&O===aI.id,onEditingChange:a=>P(a?M:null),actions:aK,onSave:aG,onDelete:aH,onAddFeature:a=>{N(null),ab(a)},onEditRaw:a=>{e(a)},tasksById:ay,progressById:az.progress,onSelect:N}),(0,b.jsx)(R,{at:Q,items:B,actions:aK,onClose:()=>S(null)}),aM]})}function ao({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)(u.StatusDot,{status:a}),(0,b.jsx)("span",{className:(0,s.cn)("tabular-nums","in-progress"===a&&e(a)>0?"text-accent":"text-txt"),children:e(a)}),u.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 ap({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)(an,{})})})}],690793)}];
4
4
 
5
5
  //# sourceMappingURL=src_app_%28app%29_roadmap_page_tsx_0vcq3jr._.js.map