vibedoc 1.5.0 β†’ 1.6.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 (405) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +4 -4
  3. package/.next/prerender-manifest.json +11 -11
  4. package/.next/required-server-files.json +0 -4
  5. package/.next/server/app/(app)/activity/page/build-manifest.json +1 -1
  6. package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
  7. package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/(app)/board/page/build-manifest.json +1 -1
  9. package/.next/server/app/(app)/board/page.js.nft.json +1 -1
  10. package/.next/server/app/(app)/board/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/(app)/docs/page/build-manifest.json +1 -1
  12. package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
  13. package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/(app)/explorer/page/build-manifest.json +1 -1
  15. package/.next/server/app/(app)/explorer/page.js.nft.json +1 -1
  16. package/.next/server/app/(app)/explorer/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/(app)/memory/page/build-manifest.json +1 -1
  18. package/.next/server/app/(app)/memory/page.js.nft.json +1 -1
  19. package/.next/server/app/(app)/memory/page_client-reference-manifest.js +1 -1
  20. package/.next/server/app/(app)/roadmap/page/build-manifest.json +1 -1
  21. package/.next/server/app/(app)/roadmap/page.js.nft.json +1 -1
  22. package/.next/server/app/(app)/roadmap/page_client-reference-manifest.js +1 -1
  23. package/.next/server/app/(app)/settings/page/build-manifest.json +1 -1
  24. package/.next/server/app/(app)/settings/page.js.nft.json +1 -1
  25. package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
  26. package/.next/server/app/(app)/setup/page/build-manifest.json +1 -1
  27. package/.next/server/app/(app)/setup/page.js.nft.json +1 -1
  28. package/.next/server/app/(app)/setup/page_client-reference-manifest.js +1 -1
  29. package/.next/server/app/_global-error/page/build-manifest.json +1 -1
  30. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  31. package/.next/server/app/_global-error.html +1 -1
  32. package/.next/server/app/_global-error.rsc +1 -1
  33. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  34. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  35. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  36. package/.next/server/app/_not-found/page/build-manifest.json +1 -1
  37. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  38. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  39. package/.next/server/app/_not-found.html +1 -1
  40. package/.next/server/app/_not-found.rsc +2 -2
  41. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  42. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  43. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  44. package/.next/server/app/activity.html +1 -1
  45. package/.next/server/app/activity.rsc +23 -22
  46. package/.next/server/app/activity.segments/!KGFwcCk/activity/__PAGE__.segment.rsc +5 -5
  47. package/.next/server/app/activity.segments/_full.segment.rsc +23 -22
  48. package/.next/server/app/activity.segments/_tree.segment.rsc +2 -2
  49. package/.next/server/app/api/activity/route.js +3 -3
  50. package/.next/server/app/api/activity/route.js.nft.json +1 -1
  51. package/.next/server/app/api/backlinks/route.js +3 -3
  52. package/.next/server/app/api/backlinks/route.js.nft.json +1 -1
  53. package/.next/server/app/api/chat/route.js +3 -3
  54. package/.next/server/app/api/chat/route.js.nft.json +1 -1
  55. package/.next/server/app/api/context/route.js +3 -3
  56. package/.next/server/app/api/context/route.js.nft.json +1 -1
  57. package/.next/server/app/api/decisions/route.js +3 -3
  58. package/.next/server/app/api/decisions/route.js.nft.json +1 -1
  59. package/.next/server/app/api/docs/route.js +3 -3
  60. package/.next/server/app/api/docs/route.js.nft.json +1 -1
  61. package/.next/server/app/api/events/route.js.nft.json +1 -1
  62. package/.next/server/app/api/explorer/route.js +4 -3
  63. package/.next/server/app/api/explorer/route.js.nft.json +1 -1
  64. package/.next/server/app/api/mcp/route.js +4 -4
  65. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  66. package/.next/server/app/api/memory/route.js +3 -3
  67. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  68. package/.next/server/app/api/plan/apply/route.js +4 -4
  69. package/.next/server/app/api/plan/apply/route.js.nft.json +1 -1
  70. package/.next/server/app/api/projects/route.js +3 -3
  71. package/.next/server/app/api/projects/route.js.nft.json +1 -1
  72. package/.next/server/app/api/registry/route.js +3 -3
  73. package/.next/server/app/api/registry/route.js.nft.json +1 -1
  74. package/.next/server/app/api/roadmap/create/route.js +4 -4
  75. package/.next/server/app/api/roadmap/create/route.js.nft.json +1 -1
  76. package/.next/server/app/api/roadmap/delete/route.js +4 -4
  77. package/.next/server/app/api/roadmap/delete/route.js.nft.json +1 -1
  78. package/.next/server/app/api/roadmap/generate/route.js +4 -4
  79. package/.next/server/app/api/roadmap/generate/route.js.nft.json +1 -1
  80. package/.next/server/app/api/roadmap/layout/route.js +4 -4
  81. package/.next/server/app/api/roadmap/layout/route.js.nft.json +1 -1
  82. package/.next/server/app/api/roadmap/route.js +3 -3
  83. package/.next/server/app/api/roadmap/route.js.nft.json +1 -1
  84. package/.next/server/app/api/roadmap/update/route.js +4 -4
  85. package/.next/server/app/api/roadmap/update/route.js.nft.json +1 -1
  86. package/.next/server/app/api/sessions/route.js +3 -3
  87. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  88. package/.next/server/app/api/settings/route.js +4 -4
  89. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  90. package/.next/server/app/api/setup/generate/route.js +2 -2
  91. package/.next/server/app/api/setup/generate/route.js.nft.json +1 -1
  92. package/.next/server/app/api/setup/write/route.js +3 -3
  93. package/.next/server/app/api/setup/write/route.js.nft.json +1 -1
  94. package/.next/server/app/api/summary/route.js +3 -3
  95. package/.next/server/app/api/summary/route.js.nft.json +1 -1
  96. package/.next/server/app/api/tasks/create/route.js +3 -3
  97. package/.next/server/app/api/tasks/create/route.js.nft.json +1 -1
  98. package/.next/server/app/api/tasks/route.js +3 -3
  99. package/.next/server/app/api/tasks/route.js.nft.json +1 -1
  100. package/.next/server/app/board.html +1 -1
  101. package/.next/server/app/board.rsc +23 -21
  102. package/.next/server/app/board.segments/!KGFwcCk/board/__PAGE__.segment.rsc +5 -5
  103. package/.next/server/app/board.segments/_full.segment.rsc +23 -21
  104. package/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  105. package/.next/server/app/docs.html +1 -1
  106. package/.next/server/app/docs.rsc +27 -25
  107. package/.next/server/app/docs.segments/!KGFwcCk/docs/__PAGE__.segment.rsc +9 -10
  108. package/.next/server/app/docs.segments/_full.segment.rsc +27 -25
  109. package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  110. package/.next/server/app/explorer.html +1 -1
  111. package/.next/server/app/explorer.rsc +23 -22
  112. package/.next/server/app/explorer.segments/!KGFwcCk/explorer/__PAGE__.segment.rsc +5 -5
  113. package/.next/server/app/explorer.segments/_full.segment.rsc +23 -22
  114. package/.next/server/app/explorer.segments/_tree.segment.rsc +2 -2
  115. package/.next/server/app/index.html +1 -1
  116. package/.next/server/app/index.rsc +2 -2
  117. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  118. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  119. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  120. package/.next/server/app/memory.html +1 -1
  121. package/.next/server/app/memory.rsc +23 -22
  122. package/.next/server/app/memory.segments/!KGFwcCk/memory/__PAGE__.segment.rsc +5 -5
  123. package/.next/server/app/memory.segments/_full.segment.rsc +23 -22
  124. package/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
  125. package/.next/server/app/page/build-manifest.json +1 -1
  126. package/.next/server/app/page.js.nft.json +1 -1
  127. package/.next/server/app/page_client-reference-manifest.js +1 -1
  128. package/.next/server/app/roadmap.html +1 -1
  129. package/.next/server/app/roadmap.rsc +26 -25
  130. package/.next/server/app/roadmap.segments/!KGFwcCk/roadmap/__PAGE__.segment.rsc +11 -9
  131. package/.next/server/app/roadmap.segments/_full.segment.rsc +26 -25
  132. package/.next/server/app/roadmap.segments/_tree.segment.rsc +2 -2
  133. package/.next/server/app/settings.html +1 -1
  134. package/.next/server/app/settings.rsc +23 -22
  135. package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +5 -5
  136. package/.next/server/app/settings.segments/_full.segment.rsc +23 -22
  137. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  138. package/.next/server/app/setup.html +1 -1
  139. package/.next/server/app/setup.rsc +23 -21
  140. package/.next/server/app/setup.segments/!KGFwcCk/setup/__PAGE__.segment.rsc +5 -5
  141. package/.next/server/app/setup.segments/_full.segment.rsc +23 -21
  142. package/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  143. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0-q4v32._.js β†’ 11mp_@anthropic-ai_sdk_0-5bkpj._.js} +2 -2
  144. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_05hfnhc._.js β†’ 11mp_@anthropic-ai_sdk_00psb_y._.js} +2 -2
  145. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_05dmim9._.js β†’ 11mp_@anthropic-ai_sdk_01l5h3i._.js} +2 -2
  146. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_07xtb0h._.js β†’ 11mp_@anthropic-ai_sdk_072r2bd._.js} +2 -2
  147. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0am8bw2._.js +3 -0
  148. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0enefn6._.js +3 -0
  149. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0k3n_5f._.js +3 -0
  150. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0lcfjm4._.js +3 -0
  151. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0lfx9av._.js +3 -0
  152. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0qau3qw._.js +3 -0
  153. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0r1pmvm._.js +3 -0
  154. package/.next/server/chunks/11mp_@anthropic-ai_sdk_11t-z2t._.js +3 -0
  155. package/.next/server/chunks/11mp_@anthropic-ai_sdk_15hyn79._.js +3 -0
  156. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_qk07x._.js +3 -0
  157. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1b2929e._.js +3 -0
  158. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1e72c89._.js +3 -0
  159. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1eq7asn._.js +3 -0
  160. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1fhdojs._.js +3 -0
  161. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1lh_vwq._.js +3 -0
  162. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ludf-o._.js +3 -0
  163. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1m3luz3._.js +3 -0
  164. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1x1iz3d._.js +3 -0
  165. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1xsmwlh._.js +3 -0
  166. package/.next/server/chunks/11mp_@anthropic-ai_sdk_202spah._.js +3 -0
  167. package/.next/server/chunks/11mp_@anthropic-ai_sdk_215hw9u._.js +3 -0
  168. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0n-i0pd._.js +3 -0
  169. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_13pos4j._.js +3 -0
  170. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_17b4pqr._.js +3 -0
  171. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1bkcmom._.js +3 -0
  172. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1hlj_3l._.js +3 -0
  173. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1ip-sor._.js +3 -0
  174. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1pex5o1._.js +3 -0
  175. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1s8lc8_._.js +3 -0
  176. package/.next/server/chunks/[root-of-the-server]__03upgv8._.js +3 -0
  177. package/.next/server/chunks/[root-of-the-server]__03upgv8._.js.map +1 -0
  178. package/.next/server/chunks/[root-of-the-server]__05l6129._.js +3 -0
  179. package/.next/server/chunks/{[root-of-the-server]__0u2rl0m._.js.map β†’ [root-of-the-server]__05l6129._.js.map} +1 -1
  180. package/.next/server/chunks/[root-of-the-server]__06zf_sh._.js +3 -0
  181. package/.next/server/chunks/{[root-of-the-server]__01yk8oi._.js.map β†’ [root-of-the-server]__06zf_sh._.js.map} +1 -1
  182. package/.next/server/chunks/[root-of-the-server]__093hlkh._.js +3 -0
  183. package/.next/server/chunks/{[root-of-the-server]__1337jpl._.js.map β†’ [root-of-the-server]__093hlkh._.js.map} +1 -1
  184. package/.next/server/chunks/[root-of-the-server]__0aynzrb._.js +3 -0
  185. package/.next/server/chunks/{[root-of-the-server]__0b49g9i._.js.map β†’ [root-of-the-server]__0aynzrb._.js.map} +1 -1
  186. package/.next/server/chunks/[root-of-the-server]__0e59y5j._.js +3 -0
  187. package/.next/server/chunks/[root-of-the-server]__0eqd-tw._.js +3 -0
  188. package/.next/server/chunks/{[root-of-the-server]__0yd6wlm._.js.map β†’ [root-of-the-server]__0eqd-tw._.js.map} +1 -1
  189. package/.next/server/chunks/[root-of-the-server]__0nfvvy9._.js +3 -0
  190. package/.next/server/chunks/{[root-of-the-server]__0j-xjbf._.js.map β†’ [root-of-the-server]__0nfvvy9._.js.map} +1 -1
  191. package/.next/server/chunks/{[root-of-the-server]__03t5uqz._.js β†’ [root-of-the-server]__0qac4k0._.js} +2 -2
  192. package/.next/server/chunks/{[root-of-the-server]__03t5uqz._.js.map β†’ [root-of-the-server]__0qac4k0._.js.map} +1 -1
  193. package/.next/server/chunks/[root-of-the-server]__106gpvh._.js +3 -0
  194. package/.next/server/chunks/{[root-of-the-server]__0kaegk7._.js.map β†’ [root-of-the-server]__106gpvh._.js.map} +1 -1
  195. package/.next/server/chunks/[root-of-the-server]__11s-8eg._.js +3 -0
  196. package/.next/server/chunks/{[root-of-the-server]__02k1gkk._.js.map β†’ [root-of-the-server]__11s-8eg._.js.map} +1 -1
  197. package/.next/server/chunks/[root-of-the-server]__11s76m8._.js +3 -0
  198. package/.next/server/chunks/[root-of-the-server]__11s76m8._.js.map +1 -0
  199. package/.next/server/chunks/[root-of-the-server]__142icjb._.js +3 -0
  200. package/.next/server/chunks/{[root-of-the-server]__1yow6hw._.js.map β†’ [root-of-the-server]__142icjb._.js.map} +1 -1
  201. package/.next/server/chunks/[root-of-the-server]__14aeqoi._.js +3 -0
  202. package/.next/server/chunks/[root-of-the-server]__14aeqoi._.js.map +1 -0
  203. package/.next/server/chunks/[root-of-the-server]__1613hjb._.js +88 -0
  204. package/.next/server/chunks/[root-of-the-server]__1613hjb._.js.map +1 -0
  205. package/.next/server/chunks/[root-of-the-server]__169hmq_._.js +10 -0
  206. package/.next/server/chunks/{[root-of-the-server]__0d4jkve._.js.map β†’ [root-of-the-server]__169hmq_._.js.map} +1 -1
  207. package/.next/server/chunks/[root-of-the-server]__17p0rkn._.js +3 -0
  208. package/.next/server/chunks/{[root-of-the-server]__0v8x64y._.js.map β†’ [root-of-the-server]__17p0rkn._.js.map} +1 -1
  209. package/.next/server/chunks/[root-of-the-server]__17xb02p._.js +3 -0
  210. package/.next/server/chunks/{[root-of-the-server]__0zybyuh._.js.map β†’ [root-of-the-server]__17xb02p._.js.map} +1 -1
  211. package/.next/server/chunks/[root-of-the-server]__18kxo4a._.js +3 -0
  212. package/.next/server/chunks/{[root-of-the-server]__1znbm9i._.js.map β†’ [root-of-the-server]__18kxo4a._.js.map} +1 -1
  213. package/.next/server/chunks/[root-of-the-server]__1c55c2q._.js +3 -0
  214. package/.next/server/chunks/{[root-of-the-server]__0l3voov._.js.map β†’ [root-of-the-server]__1c55c2q._.js.map} +1 -1
  215. package/.next/server/chunks/[root-of-the-server]__1j0rrps._.js +3 -0
  216. package/.next/server/chunks/{[root-of-the-server]__0635d15._.js.map β†’ [root-of-the-server]__1j0rrps._.js.map} +1 -1
  217. package/.next/server/chunks/[root-of-the-server]__1lj_2cv._.js +3 -0
  218. package/.next/server/chunks/{[root-of-the-server]__0qsx33x._.js.map β†’ [root-of-the-server]__1lj_2cv._.js.map} +1 -1
  219. package/.next/server/chunks/[root-of-the-server]__1o4a-4j._.js +3 -0
  220. package/.next/server/chunks/{[root-of-the-server]__1vaownn._.js.map β†’ [root-of-the-server]__1o4a-4j._.js.map} +1 -1
  221. package/.next/server/chunks/[root-of-the-server]__1q4ahvz._.js +3 -0
  222. package/.next/server/chunks/{[root-of-the-server]__1hsybai._.js.map β†’ [root-of-the-server]__1q4ahvz._.js.map} +1 -1
  223. package/.next/server/chunks/{[root-of-the-server]__1337jpl._.js β†’ [root-of-the-server]__1u_q61h._.js} +2 -2
  224. package/.next/server/chunks/{[root-of-the-server]__0kkefbq._.js.map β†’ [root-of-the-server]__1u_q61h._.js.map} +1 -1
  225. package/.next/server/chunks/[root-of-the-server]__1wr0m-s._.js +3 -0
  226. package/.next/server/chunks/{[root-of-the-server]__0-rjzmv._.js.map β†’ [root-of-the-server]__1wr0m-s._.js.map} +1 -1
  227. package/.next/server/chunks/[root-of-the-server]__1xb0fmp._.js +3 -0
  228. package/.next/server/chunks/{[root-of-the-server]__15suc44._.js.map β†’ [root-of-the-server]__1xb0fmp._.js.map} +1 -1
  229. package/.next/server/chunks/{[root-of-the-server]__1hsybai._.js β†’ [root-of-the-server]__1y-tt29._.js} +2 -2
  230. package/.next/server/chunks/{[root-of-the-server]__0af0ma6._.js.map β†’ [root-of-the-server]__1y-tt29._.js.map} +1 -1
  231. package/.next/server/chunks/[root-of-the-server]__1y3u5ud._.js +3 -0
  232. package/.next/server/chunks/{[root-of-the-server]__0xqsv4h._.js.map β†’ [root-of-the-server]__1y3u5ud._.js.map} +1 -1
  233. package/.next/server/chunks/[turbopack]_runtime.js +0 -132
  234. package/.next/server/chunks/[turbopack]_runtime.js.map +4 -5
  235. package/.next/server/chunks/_04byth9._.js +34 -0
  236. package/.next/server/chunks/_04byth9._.js.map +1 -0
  237. package/.next/server/chunks/_1au4syj._.js +1 -1
  238. package/.next/server/chunks/_1au4syj._.js.map +1 -1
  239. package/.next/server/chunks/_1b5fqxy._.js +3 -0
  240. package/.next/server/chunks/_1b5fqxy._.js.map +1 -0
  241. package/.next/server/chunks/_1si7nb_._.js +8 -8
  242. package/.next/server/chunks/_1si7nb_._.js.map +1 -1
  243. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_08ca0b4._.js +3 -0
  244. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_08ca0b4._.js.map +1 -0
  245. package/.next/server/chunks/ssr/[turbopack]_runtime.js +0 -132
  246. package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +4 -5
  247. package/.next/server/chunks/ssr/_01suk2m._.js +3 -0
  248. package/.next/server/chunks/ssr/_01suk2m._.js.map +1 -0
  249. package/.next/server/chunks/ssr/_04xff_2._.js +1 -1
  250. package/.next/server/chunks/ssr/_04xff_2._.js.map +1 -1
  251. package/.next/server/chunks/ssr/_0qyglif._.js +2 -2
  252. package/.next/server/chunks/ssr/_0qyglif._.js.map +1 -1
  253. package/.next/server/chunks/ssr/_0skuoxv._.js +3 -1
  254. package/.next/server/chunks/ssr/_0skuoxv._.js.map +1 -1
  255. package/.next/server/chunks/ssr/{_1alz6n5._.js β†’ _14i_6yb._.js} +2 -2
  256. package/.next/server/chunks/ssr/_14i_6yb._.js.map +1 -0
  257. package/.next/server/chunks/ssr/{_1s08bv8._.js β†’ _1cbhuz4._.js} +2 -2
  258. package/.next/server/chunks/ssr/_1cbhuz4._.js.map +1 -0
  259. package/.next/server/chunks/ssr/_1ewk_mn._.js +3 -0
  260. package/.next/server/chunks/ssr/_1ewk_mn._.js.map +1 -0
  261. package/.next/server/chunks/ssr/node_modules__pnpm_1dcmsrg._.js +3 -0
  262. package/.next/server/chunks/ssr/node_modules__pnpm_1dcmsrg._.js.map +1 -0
  263. package/.next/server/chunks/ssr/src_components_008q3v8._.js +3 -0
  264. package/.next/server/chunks/ssr/src_components_008q3v8._.js.map +1 -0
  265. package/.next/server/middleware-build-manifest.js +4 -4
  266. package/.next/server/pages/404.html +1 -1
  267. package/.next/server/pages/500.html +1 -1
  268. package/.next/server/server-reference-manifest.js +1 -1
  269. package/.next/server/server-reference-manifest.json +1 -1
  270. package/.next/static/chunks/0eggcu0ovk8sd.js +68 -0
  271. package/.next/static/chunks/{145g20k60txhc.js β†’ 0iva6rdtfqpbz.js} +1 -1
  272. package/.next/static/chunks/0qm101bdsxdyh.css +10 -0
  273. package/.next/static/chunks/0wg9n5zb8mo2p.js +1 -0
  274. package/.next/static/chunks/{2-faknwci76np.js β†’ 0wjw1laqwg-cr.js} +1 -1
  275. package/.next/static/chunks/0z_y7el6m76yk.js +1 -0
  276. package/.next/static/chunks/1-ekntoveuxzd.js +4 -0
  277. package/.next/static/chunks/1r7z33e9jk3vp.js +1 -0
  278. package/.next/static/chunks/{2f7yju8yks2m9.js β†’ 1xyepk9227yej.js} +6 -73
  279. package/.next/static/chunks/{1lfr973ckp6by.js β†’ 1ytqu-ra-fylk.js} +2 -2
  280. package/.next/static/chunks/3dlnlsyyysw5m.js +1 -0
  281. package/.next/static/chunks/{0aiy7o5bsiixt.js β†’ 3kkg030rcpz7l.js} +1 -1
  282. package/.next/static/chunks/3pf_4ye6ju8gt.js +1 -0
  283. package/.next/static/chunks/turbopack-2qsbj8zx38t0j.js +1 -0
  284. package/README.md +2 -0
  285. package/next.config.js +4 -7
  286. package/package.json +1 -1
  287. package/skills/epic-breakdown/SKILL.md +11 -1
  288. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0fw_tls._.js +0 -3
  289. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0q6tm_c._.js +0 -3
  290. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0qyh79u._.js +0 -3
  291. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0rfkb6q._.js +0 -3
  292. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0x1yqfb._.js +0 -3
  293. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0yt3ewg._.js +0 -3
  294. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1-kttjy._.js +0 -3
  295. package/.next/server/chunks/11mp_@anthropic-ai_sdk_12h8gza._.js +0 -3
  296. package/.next/server/chunks/11mp_@anthropic-ai_sdk_18c2w1i._.js +0 -3
  297. package/.next/server/chunks/11mp_@anthropic-ai_sdk_18fnlqa._.js +0 -3
  298. package/.next/server/chunks/11mp_@anthropic-ai_sdk_19on0yg._.js +0 -3
  299. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1alh48t._.js +0 -3
  300. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ck56ir._.js +0 -3
  301. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1daia98._.js +0 -3
  302. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1f6snvo._.js +0 -3
  303. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1p6s626._.js +0 -3
  304. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ps921l._.js +0 -3
  305. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1rqxfdf._.js +0 -3
  306. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1s7maye._.js +0 -3
  307. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1vuy6_x._.js +0 -3
  308. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1xv39eu._.js +0 -3
  309. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_078qkb6._.js +0 -3
  310. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0q7-hjh._.js +0 -3
  311. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_165bzk6._.js +0 -3
  312. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1hfbfb5._.js +0 -3
  313. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1sa-8tw._.js +0 -3
  314. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1xq_gof._.js +0 -3
  315. package/.next/server/chunks/[root-of-the-server]__0-rjzmv._.js +0 -3
  316. package/.next/server/chunks/[root-of-the-server]__01yk8oi._.js +0 -3
  317. package/.next/server/chunks/[root-of-the-server]__02k1gkk._.js +0 -3
  318. package/.next/server/chunks/[root-of-the-server]__0635d15._.js +0 -3
  319. package/.next/server/chunks/[root-of-the-server]__0af0ma6._.js +0 -3
  320. package/.next/server/chunks/[root-of-the-server]__0b49g9i._.js +0 -3
  321. package/.next/server/chunks/[root-of-the-server]__0d4jkve._.js +0 -10
  322. package/.next/server/chunks/[root-of-the-server]__0j-xjbf._.js +0 -3
  323. package/.next/server/chunks/[root-of-the-server]__0kaegk7._.js +0 -3
  324. package/.next/server/chunks/[root-of-the-server]__0kkefbq._.js +0 -3
  325. package/.next/server/chunks/[root-of-the-server]__0l3voov._.js +0 -3
  326. package/.next/server/chunks/[root-of-the-server]__0qsx33x._.js +0 -3
  327. package/.next/server/chunks/[root-of-the-server]__0sc44r6._.js +0 -86
  328. package/.next/server/chunks/[root-of-the-server]__0sc44r6._.js.map +0 -1
  329. package/.next/server/chunks/[root-of-the-server]__0u2rl0m._.js +0 -3
  330. package/.next/server/chunks/[root-of-the-server]__0uk0tga._.js +0 -3
  331. package/.next/server/chunks/[root-of-the-server]__0v8x64y._.js +0 -3
  332. package/.next/server/chunks/[root-of-the-server]__0xqsv4h._.js +0 -3
  333. package/.next/server/chunks/[root-of-the-server]__0yd6wlm._.js +0 -3
  334. package/.next/server/chunks/[root-of-the-server]__0zybyuh._.js +0 -3
  335. package/.next/server/chunks/[root-of-the-server]__134sb3d._.js +0 -3
  336. package/.next/server/chunks/[root-of-the-server]__134sb3d._.js.map +0 -1
  337. package/.next/server/chunks/[root-of-the-server]__15suc44._.js +0 -3
  338. package/.next/server/chunks/[root-of-the-server]__1jeqjz6._.js +0 -3
  339. package/.next/server/chunks/[root-of-the-server]__1kfohrq._.js +0 -3
  340. package/.next/server/chunks/[root-of-the-server]__1mz21a2._.js +0 -3
  341. package/.next/server/chunks/[root-of-the-server]__1mz21a2._.js.map +0 -1
  342. package/.next/server/chunks/[root-of-the-server]__1vaownn._.js +0 -3
  343. package/.next/server/chunks/[root-of-the-server]__1yow6hw._.js +0 -3
  344. package/.next/server/chunks/[root-of-the-server]__1znbm9i._.js +0 -3
  345. package/.next/server/chunks/_0csymdc._.js +0 -34
  346. package/.next/server/chunks/_0csymdc._.js.map +0 -1
  347. package/.next/server/chunks/_1f1rssd._.js +0 -3
  348. package/.next/server/chunks/_1f1rssd._.js.map +0 -1
  349. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_1v0h3_3._.js +0 -3
  350. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_1v0h3_3._.js.map +0 -1
  351. package/.next/server/chunks/ssr/_0v7muti._.js +0 -3
  352. package/.next/server/chunks/ssr/_0v7muti._.js.map +0 -1
  353. package/.next/server/chunks/ssr/_1a9mqm1._.js +0 -3
  354. package/.next/server/chunks/ssr/_1a9mqm1._.js.map +0 -1
  355. package/.next/server/chunks/ssr/_1alz6n5._.js.map +0 -1
  356. package/.next/server/chunks/ssr/_1s08bv8._.js.map +0 -1
  357. package/.next/server/chunks/ssr/node_modules__pnpm_051nq8c._.js +0 -3
  358. package/.next/server/chunks/ssr/node_modules__pnpm_051nq8c._.js.map +0 -1
  359. package/.next/server/chunks/ssr/src_components_0wg3bi2._.js +0 -3
  360. package/.next/server/chunks/ssr/src_components_0wg3bi2._.js.map +0 -1
  361. package/.next/static/chunks/05qw7-fs1exlt.js +0 -1
  362. package/.next/static/chunks/0_vu3y1bvg843.js +0 -1
  363. package/.next/static/chunks/0fvzbdfwiu4a2.js +0 -1
  364. package/.next/static/chunks/14ewdzt8piprq.js +0 -1
  365. package/.next/static/chunks/2g08tblvdp0t_.js +0 -2
  366. package/.next/static/chunks/2gdlf-xhbpc75.css +0 -10
  367. package/.next/static/chunks/2xu8bb_0152j-.js +0 -1
  368. package/.next/static/chunks/turbopack-181pehyg9iyaw.js +0 -1
  369. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0-q4v32._.js.map β†’ 11mp_@anthropic-ai_sdk_0-5bkpj._.js.map} +0 -0
  370. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_05dmim9._.js.map β†’ 11mp_@anthropic-ai_sdk_00psb_y._.js.map} +0 -0
  371. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_05hfnhc._.js.map β†’ 11mp_@anthropic-ai_sdk_01l5h3i._.js.map} +0 -0
  372. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_07xtb0h._.js.map β†’ 11mp_@anthropic-ai_sdk_072r2bd._.js.map} +0 -0
  373. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0fw_tls._.js.map β†’ 11mp_@anthropic-ai_sdk_0am8bw2._.js.map} +0 -0
  374. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0q6tm_c._.js.map β†’ 11mp_@anthropic-ai_sdk_0enefn6._.js.map} +0 -0
  375. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0qyh79u._.js.map β†’ 11mp_@anthropic-ai_sdk_0k3n_5f._.js.map} +0 -0
  376. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0rfkb6q._.js.map β†’ 11mp_@anthropic-ai_sdk_0lcfjm4._.js.map} +0 -0
  377. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0x1yqfb._.js.map β†’ 11mp_@anthropic-ai_sdk_0lfx9av._.js.map} +0 -0
  378. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0yt3ewg._.js.map β†’ 11mp_@anthropic-ai_sdk_0qau3qw._.js.map} +0 -0
  379. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1-kttjy._.js.map β†’ 11mp_@anthropic-ai_sdk_0r1pmvm._.js.map} +0 -0
  380. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_12h8gza._.js.map β†’ 11mp_@anthropic-ai_sdk_11t-z2t._.js.map} +0 -0
  381. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_18c2w1i._.js.map β†’ 11mp_@anthropic-ai_sdk_15hyn79._.js.map} +0 -0
  382. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_18fnlqa._.js.map β†’ 11mp_@anthropic-ai_sdk_1_qk07x._.js.map} +0 -0
  383. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_19on0yg._.js.map β†’ 11mp_@anthropic-ai_sdk_1b2929e._.js.map} +0 -0
  384. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1alh48t._.js.map β†’ 11mp_@anthropic-ai_sdk_1e72c89._.js.map} +0 -0
  385. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1ck56ir._.js.map β†’ 11mp_@anthropic-ai_sdk_1eq7asn._.js.map} +0 -0
  386. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1daia98._.js.map β†’ 11mp_@anthropic-ai_sdk_1fhdojs._.js.map} +0 -0
  387. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1f6snvo._.js.map β†’ 11mp_@anthropic-ai_sdk_1lh_vwq._.js.map} +0 -0
  388. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1p6s626._.js.map β†’ 11mp_@anthropic-ai_sdk_1ludf-o._.js.map} +0 -0
  389. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1ps921l._.js.map β†’ 11mp_@anthropic-ai_sdk_1m3luz3._.js.map} +0 -0
  390. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1rqxfdf._.js.map β†’ 11mp_@anthropic-ai_sdk_1x1iz3d._.js.map} +0 -0
  391. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1s7maye._.js.map β†’ 11mp_@anthropic-ai_sdk_1xsmwlh._.js.map} +0 -0
  392. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1vuy6_x._.js.map β†’ 11mp_@anthropic-ai_sdk_202spah._.js.map} +0 -0
  393. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1xv39eu._.js.map β†’ 11mp_@anthropic-ai_sdk_215hw9u._.js.map} +0 -0
  394. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_078qkb6._.js.map β†’ 11mp_@anthropic-ai_sdk_index_mjs_0n-i0pd._.js.map} +0 -0
  395. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0q7-hjh._.js.map β†’ 11mp_@anthropic-ai_sdk_index_mjs_13pos4j._.js.map} +0 -0
  396. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_165bzk6._.js.map β†’ 11mp_@anthropic-ai_sdk_index_mjs_17b4pqr._.js.map} +0 -0
  397. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1hfbfb5._.js.map β†’ 11mp_@anthropic-ai_sdk_index_mjs_1bkcmom._.js.map} +0 -0
  398. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1sa-8tw._.js.map β†’ 11mp_@anthropic-ai_sdk_index_mjs_1hlj_3l._.js.map} +0 -0
  399. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1xq_gof._.js.map β†’ 11mp_@anthropic-ai_sdk_index_mjs_1ip-sor._.js.map} +0 -0
  400. /package/.next/server/chunks/{[root-of-the-server]__0uk0tga._.js.map β†’ 11mp_@anthropic-ai_sdk_index_mjs_1pex5o1._.js.map} +0 -0
  401. /package/.next/server/chunks/{[root-of-the-server]__1jeqjz6._.js.map β†’ 11mp_@anthropic-ai_sdk_index_mjs_1s8lc8_._.js.map} +0 -0
  402. /package/.next/server/chunks/{[root-of-the-server]__1kfohrq._.js.map β†’ [root-of-the-server]__0e59y5j._.js.map} +0 -0
  403. /package/.next/static/{cmDLf8WOU5PVmUOcSPh2H β†’ ICaoXcRMmgrIFWk8C_Z6D}/_buildManifest.js +0 -0
  404. /package/.next/static/{cmDLf8WOU5PVmUOcSPh2H β†’ ICaoXcRMmgrIFWk8C_Z6D}/_clientMiddlewareManifest.js +0 -0
  405. /package/.next/static/{cmDLf8WOU5PVmUOcSPh2H β†’ ICaoXcRMmgrIFWk8C_Z6D}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,138324,(e,t,r)=>{"use strict";e.i(583225),Object.defineProperty(r,"__esModule",{value:!0});var a={default:function(){return b},useLinkStatus:function(){return y}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let s=e.r(56421),o=e.r(72345),i=s._(e.r(180338)),l=e.r(626167),d=e.r(757336),c=e.r(863555),u=e.r(549757),p=e.r(671412),f=e.r(235871),h=e.r(716851),m=e.r(658853),x=e.r(571921);function b(t){var r;let a,n,s,[b,y]=(0,i.useOptimistic)(h.IDLE_LINK_STATUS),v=(0,i.useRef)(null),{href:j,as:w,children:N,prefetch:k=null,passHref:S,replace:_,shallow:C,scroll:E,onClick:A,onMouseEnter:M,onTouchStart:T,legacyBehavior:R=!1,onNavigate:P,transitionTypes:O,ref:$,unstable_dynamicOnHover:z,...D}=t;a=N,R&&("string"==typeof a||"number"==typeof a)&&(a=(0,o.jsx)("a",{children:a}));let I=i.default.useContext(d.AppRouterContext),L=!1!==k,q=!1===k?"none":!0===k?"full":"auto",U="none"!==q?"auto"===q?x.FetchStrategy.PPR:x.FetchStrategy.Full:x.FetchStrategy.PPR,B="string"==typeof(r=w||j)?r:(0,l.formatUrl)(r);if(R){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});n=i.default.Children.only(a)}let K=R?n&&"object"==typeof n&&n.ref:$,F,G=i.default.useCallback(e=>(null!==I&&(v.current=(0,h.mountLinkInstance)(e,B,I,U,L,y,F)),()=>{v.current&&((0,h.unmountLinkForCurrentNavigation)(v.current),v.current=null),(0,h.unmountPrefetchableInstance)(e)}),[L,B,I,U,y,F]),V={ref:(0,c.useMergedRef)(G,K),onClick(t){R||"function"!=typeof A||A(t),R&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(t),!I||t.defaultPrevented||function(t,r,a,n,s,o,l,d="none"){if("u">typeof window){let c,{nodeName:u}=t.currentTarget;if("A"===u.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(r)){n&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),o){let e=!1;if(o({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:p}=e.r(187250);i.default.startTransition(()=>{p(r,n?"replace":"push",!1===s?f.ScrollBehavior.NoScroll:f.ScrollBehavior.Default,a.current,l,d)})}}(t,B,v,_,E,P,O,q)},onMouseEnter(e){R||"function"!=typeof M||M(e),R&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),I&&L&&(0,h.onNavigationIntent)(e.currentTarget,!0===z)},onTouchStart:function(e){R||"function"!=typeof T||T(e),R&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),I&&L&&(0,h.onNavigationIntent)(e.currentTarget,!0===z)}};return(0,u.isAbsoluteUrl)(B)?V.href=B:R&&!S&&("a"!==n.type||"href"in n.props)||(V.href=(0,p.addBasePath)(B)),s=R?i.default.cloneElement(n,V):(0,o.jsx)("a",{...D,...V,children:a}),(0,o.jsx)(g.Provider,{value:b,children:s})}let g=(0,i.createContext)(h.IDLE_LINK_STATUS),y=()=>(0,i.useContext)(g);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},863555,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return n}});let a=e.r(180338);function n(e,t){let r=(0,a.useRef)(null),n=(0,a.useRef)(null);return(0,a.useCallback)(a=>{if(null===a){let e=r.current;e&&(r.current=null,e());let t=n.current;t&&(n.current=null,t())}else e&&(r.current=s(e,a)),t&&(n.current=s(t,a))},[e,t])}function s(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},549757,(e,t,r)=>{"use strict";e.i(583225),Object.defineProperty(r,"__esModule",{value:!0});var a={DecodeError:function(){return b},MiddlewareNotFoundError:function(){return j},MissingStaticPage:function(){return v},NormalizeError:function(){return g},PageNotFoundError:function(){return y},SP:function(){return m},ST:function(){return x},WEB_VITALS:function(){return s},execOnce:function(){return o},getDisplayName:function(){return u},getLocationOrigin:function(){return d},getURL:function(){return c},isAbsoluteUrl:function(){return l},isResSent:function(){return p},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return f},stringifyError:function(){return w}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let s=["CLS","FCP","FID","INP","LCP","TTFB"];function o(e){let t,r=!1;return(...a)=>(r||(r=!0,t=e(...a)),t)}let i=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&i.test(e)};function d(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=d();return e.substring(t.length)}function u(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function p(e){return e.finished||e.headersSent}function f(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let a=await e.getInitialProps(t);if(r&&p(r))return a;if(!a)throw Object.defineProperty(Error(`"${u(e)}.getInitialProps()" should resolve to an object. But found "${a}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return a}let m="u">typeof performance,x=m&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class b extends Error{}class g extends Error{}class y extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class v extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class j extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function w(e){return JSON.stringify({message:e.message,stack:e.stack})}},658853,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return s}});let a=e.r(549757),n=e.r(144654);function s(e){if(!(0,a.isAbsoluteUrl)(e))return!0;try{let t=(0,a.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,n.hasBasePath)(r.pathname)}catch(e){return!1}}},818732,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={assign:function(){return l},searchParamsToUrlQuery:function(){return s},urlQueryToSearchParams:function(){return i}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});function s(e){let t={};for(let[r,a]of e.entries()){let e=t[r];void 0===e?t[r]=a:Array.isArray(e)?e.push(a):t[r]=[e,a]}return t}function o(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function i(e){let t=new URLSearchParams;for(let[r,a]of Object.entries(e))if(Array.isArray(a))for(let e of a)t.append(r,o(e));else t.set(r,o(a));return t}function l(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,a]of r.entries())e.append(t,a)}return e}},626167,(e,t,r)=>{"use strict";e.i(583225),Object.defineProperty(r,"__esModule",{value:!0});var a={formatUrl:function(){return i},formatWithValidation:function(){return d},urlObjectKeys:function(){return l}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let s=e.r(56421)._(e.r(818732)),o=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:r}=e,a=e.protocol||"",n=e.pathname||"",i=e.hash||"",l=e.query||"",d=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?d=t+e.host:r&&(d=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(d+=":"+e.port)),l&&"object"==typeof l&&(l=String(s.urlQueryToSearchParams(l)));let c=e.search||l&&`?${l}`||"";return a&&!a.endsWith(":")&&(a+=":"),e.slashes||(!a||o.test(a))&&!1!==d?(d="//"+(d||""),n&&"/"!==n[0]&&(n="/"+n)):d||(d=""),i&&"#"!==i[0]&&(i="#"+i),c&&"?"!==c[0]&&(c="?"+c),n=n.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${a}${d}${n}${c}${i}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function d(e){return i(e)}},588537,e=>{"use strict";var t=e.i(72345),r=e.i(180338),a=e.i(910172),n=e.i(763371),s=e.i(573009),o=e.i(243668);function i(){let{rootParam:e,refresh:t,setEditorSettings:a,setAutoRefreshSeconds:i,autoRefreshSeconds:l}=(0,n.useApp)(),d=(0,r.useRef)(null);return(0,r.useEffect)(()=>{if(!e)return;let t=!1;return fetch(`/api/settings${e}&type=settings`).then(e=>e.ok?e.json():o.DEFAULT_SETTINGS).then(e=>{t||((0,s.applyTheme)(e.theme),(0,s.applyAccent)(e.accentColor),(0,s.applyFontSize)(e.fontSize),(0,s.applyFonts)(e),a(e.editor),i(e.project?.autoRefresh??0))}).catch(()=>{}),()=>{t=!0}},[e]),(0,r.useEffect)(()=>(d.current&&clearInterval(d.current),l>0&&(d.current=setInterval(t,1e3*l)),()=>{d.current&&(clearInterval(d.current),d.current=null)}),[l,t]),null}function l(){return(0,t.jsx)("div",{className:"min-h-screen flex items-center justify-center",children:(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("div",{className:"flex gap-1.5 justify-center mb-4",children:[0,1,2].map(e=>(0,t.jsx)("div",{className:"w-2 h-2 rounded-full bg-accent animate-pulse-dot",style:{animationDelay:`${.15*e}s`}},e))}),(0,t.jsx)("p",{className:"text-muted text-sm font-mono",children:"Loading project..."})]})})}var d=e.i(755146);function c({projects:e,activeProject:r,currentName:a,onSelect:n}){return(0,t.jsxs)(d.DropdownMenu,{children:[(0,t.jsx)(d.DropdownMenuTrigger,{asChild:!0,children:(0,t.jsxs)("button",{className:"flex items-center gap-1.5 px-3 py-1.5 rounded-md bg-surface2 border border-border text-sm hover:border-border2 transition-colors",children:[(0,t.jsx)("span",{className:"text-txt font-medium truncate max-w-[200px]",children:a||"Select project"}),(0,t.jsx)("span",{className:"text-muted text-xs",children:"β–Ύ"})]})}),(0,t.jsx)(d.DropdownMenuContent,{className:"w-64 bg-surface border-border2 text-txt",align:"start",children:0===e.length?(0,t.jsx)("div",{className:"px-3 py-2 text-sm text-muted",children:"No projects found"}):e.map(e=>(0,t.jsx)(d.DropdownMenuItem,{onClick:()=>n(e.root),className:`cursor-pointer hover:bg-surface2 focus:bg-surface2 ${e.root===r?"text-accent":""}`,children:(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"font-medium",children:e.name}),(0,t.jsx)("div",{className:"text-xs text-muted truncate font-mono",children:e.root})]})},e.root))})]})}var u=e.i(487486);function p({board:e}){return(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsxs)(u.Badge,{variant:"secondary",className:"gap-1 text-xs font-mono text-amber",children:["πŸ”¨ ",e["in-progress"]||0]}),(0,t.jsxs)(u.Badge,{variant:"secondary",className:"gap-1 text-xs font-mono text-muted",children:["πŸ“‹ ",e.todo||0]}),(0,t.jsxs)(u.Badge,{variant:"secondary",className:"gap-1 text-xs font-mono text-teal",children:["βœ… ",e.done||0]})]})}var f=e.i(975157);function h({active:e}){return(0,t.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-mono text-muted",children:[(0,t.jsx)("div",{className:(0,f.cn)("w-1.5 h-1.5 rounded-full transition-colors duration-500",e?"bg-teal shadow-[0_0_6px_#4fd8b4]":"bg-border2")}),(0,t.jsx)("span",{children:e?"live update":"connected"})]})}var m=e.i(617739),x=e.i(294237),b=e.i(83790);let g={name:"panel-left",size:24,node:[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]],aliases:["sidebar"]};g.node;let y=(0,b.default)(g);var v=e.i(519455),j=e.i(793479),w=e.i(772436),N=e.i(980376);function k({className:e,...r}){return(0,t.jsx)("div",{className:(0,f.cn)("animate-pulse rounded-md bg-surface2",e),...r})}var S=e.i(746798);let _=r.createContext(null);function C(){let e=r.useContext(_);if(!e)throw Error("useSidebar must be used within a SidebarProvider.");return e}let E=r.forwardRef(({defaultOpen:e=!0,open:a,onOpenChange:n,className:s,style:o,children:i,...l},d)=>{let c=function(){let[e,t]=r.useState(void 0);return r.useEffect(()=>{let e=window.matchMedia("(max-width: 767px)"),r=()=>{t(window.innerWidth<768)};return e.addEventListener("change",r),t(window.innerWidth<768),()=>e.removeEventListener("change",r)},[]),!!e}(),[u,p]=r.useState(!1),[h,m]=r.useState(e),x=a??h,b=r.useCallback(e=>{let t="function"==typeof e?e(x):e;n?n(t):m(t),document.cookie=`sidebar_state=${t}; path=/; max-age=604800`},[n,x]),g=r.useCallback(()=>c?p(e=>!e):b(e=>!e),[c,b,p]);r.useEffect(()=>{let e=e=>{"b"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),g())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[g]);let y=x?"expanded":"collapsed",v=r.useMemo(()=>({state:y,open:x,setOpen:b,isMobile:c,openMobile:u,setOpenMobile:p,toggleSidebar:g}),[y,x,b,c,u,p,g]);return(0,t.jsx)(_.Provider,{value:v,children:(0,t.jsx)(S.TooltipProvider,{delayDuration:0,children:(0,t.jsx)("div",{style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...o},className:(0,f.cn)("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",s),ref:d,...l,children:i})})})});E.displayName="SidebarProvider";let A=r.forwardRef(({side:e="left",variant:r="sidebar",collapsible:a="offcanvas",className:n,children:s,...o},i)=>{let{isMobile:l,state:d,openMobile:c,setOpenMobile:u}=C();return"none"===a?(0,t.jsx)("div",{className:(0,f.cn)("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",n),ref:i,...o,children:s}):l?(0,t.jsx)(N.Sheet,{open:c,onOpenChange:u,...o,children:(0,t.jsxs)(N.SheetContent,{"data-sidebar":"sidebar","data-mobile":"true",className:"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:e,children:[(0,t.jsxs)(N.SheetHeader,{className:"sr-only",children:[(0,t.jsx)(N.SheetTitle,{children:"Sidebar"}),(0,t.jsx)(N.SheetDescription,{children:"Displays the mobile sidebar."})]}),(0,t.jsx)("div",{className:"flex h-full w-full flex-col",children:s})]})}):(0,t.jsxs)("div",{ref:i,className:"group peer hidden text-sidebar-foreground md:block","data-state":d,"data-collapsible":"collapsed"===d?a:"","data-variant":r,"data-side":e,children:[(0,t.jsx)("div",{className:(0,f.cn)("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180","floating"===r||"inset"===r?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,t.jsx)("div",{className:(0,f.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex","left"===e?"left-0 group-data-[collapsible=offcanvas]:-left-(--sidebar-width)":"right-0 group-data-[collapsible=offcanvas]:-right-(--sidebar-width)","floating"===r||"inset"===r?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",n),...o,children:(0,t.jsx)("div",{"data-sidebar":"sidebar",className:"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm",children:s})})]})});A.displayName="Sidebar";let M=r.forwardRef(({className:e,onClick:r,...a},n)=>{let{toggleSidebar:s}=C();return(0,t.jsxs)(v.Button,{ref:n,"data-sidebar":"trigger",variant:"ghost",size:"icon",className:(0,f.cn)("h-7 w-7",e),onClick:e=>{r?.(e),s()},...a,children:[(0,t.jsx)(y,{}),(0,t.jsx)("span",{className:"sr-only",children:"Toggle Sidebar"})]})});M.displayName="SidebarTrigger",r.forwardRef(({className:e,...r},a)=>{let{toggleSidebar:n}=C();return(0,t.jsx)("button",{ref:a,"data-sidebar":"rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:n,title:"Toggle Sidebar",className:(0,f.cn)("absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-[translate,background-color] ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex","in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize","group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",e),...r})}).displayName="SidebarRail";let T=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)("main",{ref:a,className:(0,f.cn)("relative flex w-full flex-1 flex-col bg-bg","md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm",e),...r}));T.displayName="SidebarInset",r.forwardRef(({className:e,...r},a)=>(0,t.jsx)(j.Input,{ref:a,"data-sidebar":"input",className:(0,f.cn)("h-8 w-full bg-bg shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring",e),...r})).displayName="SidebarInput";let R=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)("div",{ref:a,"data-sidebar":"header",className:(0,f.cn)("flex flex-col gap-2 p-2",e),...r}));R.displayName="SidebarHeader",r.forwardRef(({className:e,...r},a)=>(0,t.jsx)("div",{ref:a,"data-sidebar":"footer",className:(0,f.cn)("flex flex-col gap-2 p-2",e),...r})).displayName="SidebarFooter";let P=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)(w.Separator,{ref:a,"data-sidebar":"separator",className:(0,f.cn)("mx-2 w-auto bg-sidebar-border",e),...r}));P.displayName="SidebarSeparator";let O=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)("div",{ref:a,"data-sidebar":"content",className:(0,f.cn)("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",e),...r}));O.displayName="SidebarContent";let $=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)("div",{ref:a,"data-sidebar":"group",className:(0,f.cn)("relative flex w-full min-w-0 flex-col p-2",e),...r}));$.displayName="SidebarGroup";let z=r.forwardRef(({className:e,asChild:r=!1,...a},n)=>{let s=r?m.Slot:"div";return(0,t.jsx)(s,{ref:n,"data-sidebar":"group-label",className:(0,f.cn)("flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-hidden ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",e),...a})});z.displayName="SidebarGroupLabel",r.forwardRef(({className:e,asChild:r=!1,...a},n)=>{let s=r?m.Slot:"button";return(0,t.jsx)(s,{ref:n,"data-sidebar":"group-action",className:(0,f.cn)("absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 md:after:hidden","group-data-[collapsible=icon]:hidden",e),...a})}).displayName="SidebarGroupAction";let D=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)("div",{ref:a,"data-sidebar":"group-content",className:(0,f.cn)("w-full text-sm",e),...r}));D.displayName="SidebarGroupContent";let I=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)("ul",{ref:a,"data-sidebar":"menu",className:(0,f.cn)("flex w-full min-w-0 flex-col gap-1",e),...r}));I.displayName="SidebarMenu";let L=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)("li",{ref:a,"data-sidebar":"menu-item",className:(0,f.cn)("group/menu-item relative",e),...r}));L.displayName="SidebarMenuItem";let q=(0,x.cva)("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-bg shadow-[0_0_0_1px_rgb(var(--rgb-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_rgb(var(--rgb-surface2))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}}),U=r.forwardRef(({asChild:e=!1,isActive:r=!1,variant:a="default",size:n="default",tooltip:s,className:o,...i},l)=>{let d=e?m.Slot:"button",{isMobile:c,state:u}=C(),p=(0,t.jsx)(d,{ref:l,"data-sidebar":"menu-button","data-size":n,"data-active":r,className:(0,f.cn)(q({variant:a,size:n}),o),...i});return s?("string"==typeof s&&(s={children:s}),(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:p}),(0,t.jsx)(S.TooltipContent,{side:"right",align:"center",hidden:"collapsed"!==u||c,...s})]})):p});function B({summary:e,projects:r,activeProject:a,liveIndicator:n,onProjectChange:s,onToggleChat:o}){return(0,t.jsxs)("header",{className:"h-12 border-b border-border flex items-center px-4 gap-4 shrink-0 bg-surface/80 backdrop-blur-xs sticky top-0 z-50",children:[(0,t.jsx)(M,{className:"-ml-1"}),(0,t.jsx)(w.Separator,{orientation:"vertical",className:"mr-2 h-4"}),(0,t.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,t.jsx)("div",{className:"w-6 h-6 rounded-md bg-linear-to-br from-accent to-teal flex items-center justify-center text-xs",children:"⬑"}),(0,t.jsx)("span",{className:"font-mono text-xs text-muted tracking-widest uppercase",children:"VibeDoc"})]}),(0,t.jsx)(c,{projects:r,activeProject:a,currentName:e?.name||"",onSelect:s}),e&&(0,t.jsx)(p,{board:e.tasks.board}),(0,t.jsx)("div",{className:"flex-1"}),(0,t.jsx)(h,{active:n}),(0,t.jsx)("button",{onClick:o,title:"Agent chat (c)",className:"px-2 py-1 rounded-sm border border-border bg-surface2 text-xs font-mono text-muted hover:text-txt",children:"Agent"}),(0,t.jsxs)("div",{className:"hidden md:flex items-center gap-1.5 px-2 py-1 rounded-sm bg-surface2 border border-border",children:[(0,t.jsx)("span",{className:"text-xs font-mono text-muted",children:"MCP"}),(0,t.jsx)("code",{className:"text-xs font-mono text-accent",children:"localhost:3000/api/mcp"})]})]})}U.displayName="SidebarMenuButton",r.forwardRef(({className:e,asChild:r=!1,showOnHover:a=!1,...n},s)=>{let o=r?m.Slot:"button";return(0,t.jsx)(o,{ref:s,"data-sidebar":"menu-action",className:(0,f.cn)("absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 md:after:hidden","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",a&&"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0",e),...n})}).displayName="SidebarMenuAction",r.forwardRef(({className:e,...r},a)=>(0,t.jsx)("div",{ref:a,"data-sidebar":"menu-badge",className:(0,f.cn)("pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground","peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",e),...r})).displayName="SidebarMenuBadge",r.forwardRef(({className:e,showIcon:a=!1,...n},s)=>{let o=r.useMemo(()=>`${Math.floor(40*Math.random())+50}%`,[]);return(0,t.jsxs)("div",{ref:s,"data-sidebar":"menu-skeleton",className:(0,f.cn)("flex h-8 items-center gap-2 rounded-md px-2",e),...n,children:[a&&(0,t.jsx)(k,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}),(0,t.jsx)(k,{className:"h-4 max-w-(--skeleton-width) flex-1","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":o}})]})}).displayName="SidebarMenuSkeleton",r.forwardRef(({className:e,...r},a)=>(0,t.jsx)("ul",{ref:a,"data-sidebar":"menu-sub",className:(0,f.cn)("mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5","group-data-[collapsible=icon]:hidden",e),...r})).displayName="SidebarMenuSub",r.forwardRef(({...e},r)=>(0,t.jsx)("li",{ref:r,...e})).displayName="SidebarMenuSubItem",r.forwardRef(({asChild:e=!1,size:r="md",isActive:a,className:n,...s},o)=>{let i=e?m.Slot:"a";return(0,t.jsx)(i,{ref:o,"data-sidebar":"menu-sub-button","data-size":r,"data-active":a,className:(0,f.cn)("flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-hidden ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground","data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground","sm"===r&&"text-xs","md"===r&&"text-sm","group-data-[collapsible=icon]:hidden",n),...s})}).displayName="SidebarMenuSubButton";let K={name:"layout-dashboard",size:24,node:[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]};K.node;let F=(0,b.default)(K);var G=e.i(732460),V=e.i(788293);let W={name:"brain",size:24,node:[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]]};W.node;let H=(0,b.default)(W),J={name:"circle-dot",size:24,node:[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]};J.node;let Z=(0,b.default)(J),Q={name:"ban",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}]]};Q.node;let X=(0,b.default)(Q),Y={name:"clipboard-list",size:24,node:[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]};Y.node;let ee=(0,b.default)(Y),et={name:"circle-check",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 9-5.5 5.5L8 12",key:"xofnsj"}]],aliases:["check-circle-2"]};et.node;let er=(0,b.default)(et);var ea=e.i(463464);let en={name:"folder-tree",size:24,node:[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]]};en.node;let es=(0,b.default)(en),eo={name:"map",size:24,node:[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]};eo.node;let ei=(0,b.default)(eo);var el=e.i(138324);let ed=[{href:"/board",icon:F,label:"Board"},{href:"/roadmap",icon:ei,label:"Roadmap"},{href:"/docs",icon:G.BookOpen,label:"Docs"},{href:"/activity",icon:V.Zap,label:"Activity"},{href:"/memory",icon:H,label:"Memory"},{href:"/explorer",icon:es,label:"Explorer"},{href:"/settings",icon:ea.Settings,label:"Settings"}],ec=[{status:"in-progress",icon:Z,label:"Active"},{status:"blocked",icon:X,label:"Blocked"},{status:"todo",icon:ee,label:"Todo"},{status:"done",icon:er,label:"Done"}];function eu({board:e}){let r=(0,a.usePathname)();return(0,t.jsxs)(A,{collapsible:"icon",children:[(0,t.jsx)(R,{children:(0,t.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1",children:[(0,t.jsx)("div",{className:"w-6 h-6 rounded-md bg-linear-to-br from-accent to-teal flex items-center justify-center text-xs shrink-0",children:"⬑"}),(0,t.jsx)("span",{className:"font-mono text-xs text-muted tracking-widest uppercase group-data-[collapsible=icon]:hidden",children:"VibeDoc"})]})}),(0,t.jsxs)(O,{children:[(0,t.jsx)($,{children:(0,t.jsx)(D,{children:(0,t.jsx)(I,{children:ed.map(({href:e,icon:a,label:n})=>(0,t.jsx)(L,{children:(0,t.jsx)(U,{asChild:!0,isActive:r.startsWith(e),tooltip:n,children:(0,t.jsxs)(el.default,{href:e,children:[(0,t.jsx)(a,{}),(0,t.jsx)("span",{children:n})]})})},e))})})}),e&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(P,{}),(0,t.jsxs)($,{children:[(0,t.jsx)(z,{children:"Board"}),(0,t.jsx)(D,{children:(0,t.jsx)(I,{children:ec.map(({status:r,icon:a,label:n})=>{let s=e[r]?.length||0;return(0,t.jsx)(L,{children:(0,t.jsxs)(U,{tooltip:`${n}: ${s}`,children:[(0,t.jsx)(a,{}),(0,t.jsx)("span",{children:n}),(0,t.jsx)("span",{className:"ml-auto font-mono text-xs",children:s})]})},r)})})})]})]})]})]})}var ep=e.i(161863);let ef={name:"file-plus",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]};ef.node;let eh=(0,b.default)(ef),em={name:"activity",size:24,node:[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]};em.node;let ex=(0,b.default)(em);var eb=e.i(776639),eg=e.i(759684);function ey({open:e,onClose:n,onOpenDoc:s,onNewDoc:o,rootParam:i}){let l=(0,a.useRouter)(),[d,c]=(0,r.useState)(""),[u,p]=(0,r.useState)([]),[h,m]=(0,r.useState)(0),x=[{label:"New Doc",icon:eh,action:()=>{o?.(),n()}},{label:"Go to Board",icon:F,action:()=>{l.push("/board"),n()}},{label:"Go to Roadmap",icon:ei,action:()=>{l.push("/roadmap"),n()}},{label:"Go to Activity",icon:ex,action:()=>{l.push("/activity"),n()}},{label:"Go to Memory",icon:H,action:()=>{l.push("/memory"),n()}}];function b(e){s(e.path),n()}(0,r.useEffect)(()=>{e||(c(""),p([]),m(0))},[e]),(0,r.useEffect)(()=>{if(d.length<2){p([]),m(0);return}let e=setTimeout(async()=>{try{let e=await fetch(`/api/docs${i}&q=${encodeURIComponent(d)}`),t=await e.json();p(t.results?.map(e=>({path:e.file,section:e.file.split("/").slice(0,-1).join("/"),name:e.file.split("/").pop()?.replace(/\.md$/,"")??e.file}))??[]),m(0)}catch{}},300);return()=>clearTimeout(e)},[d,i]);let g=""===d;return(0,t.jsx)(eb.Dialog,{open:e,onOpenChange:e=>{e||n()},children:(0,t.jsxs)(eb.DialogContent,{className:"max-w-lg p-0 overflow-hidden bg-surface border-border gap-0",children:[(0,t.jsx)(eb.DialogTitle,{className:"sr-only",children:"Command Palette"}),(0,t.jsxs)("div",{className:"flex items-center px-4 h-12",children:[(0,t.jsx)(ep.Search,{className:"h-4 w-4 text-muted shrink-0 mr-3"}),(0,t.jsx)(j.Input,{autoFocus:!0,value:d,onChange:e=>c(e.target.value),onKeyDown:function(e){let t=u.length>0,r=t?u.length:x.length;"ArrowDown"===e.key?(e.preventDefault(),m(e=>Math.min(e+1,r-1))):"ArrowUp"===e.key?(e.preventDefault(),m(e=>Math.max(e-1,0))):"Enter"===e.key&&(t&&u[h]?b(u[h]):!t&&d.length<2&&x[h]&&x[h].action())},placeholder:"Search docs…",className:"border-0 bg-transparent h-full text-sm shadow-none focus-visible:ring-0 px-0 placeholder:text-muted"})]}),(0,t.jsx)("div",{className:"border-t border-border"}),(0,t.jsxs)(eg.ScrollArea,{className:"max-h-72",children:[g&&(0,t.jsx)("div",{className:"py-1",children:x.map((e,r)=>(0,t.jsxs)("button",{onClick:e.action,onMouseEnter:()=>m(r),className:(0,f.cn)("flex items-center gap-3 w-full px-4 py-2 text-sm text-left transition-colors",h===r?"bg-accent/10 text-txt":"text-muted hover:text-txt"),children:[(0,t.jsx)(e.icon,{className:"h-4 w-4 shrink-0"}),e.label]},e.label))}),!g&&u.length>0&&(0,t.jsx)("div",{className:"py-1",children:u.map((e,r)=>(0,t.jsxs)("button",{onClick:()=>b(e),onMouseEnter:()=>m(r),className:(0,f.cn)("flex items-center justify-between w-full px-4 py-2 text-sm text-left transition-colors",h===r?"bg-accent/10":"hover:bg-accent/5"),children:[(0,t.jsx)("span",{className:"font-medium text-txt truncate",children:e.name}),e.section&&(0,t.jsx)("span",{className:"text-xs text-muted ml-3 shrink-0 truncate max-w-[40%]",children:e.section})]},e.path))}),!g&&d.length>=2&&0===u.length&&(0,t.jsx)("div",{className:"px-4 py-6 text-center text-sm text-muted",children:"No docs found"})]})]})})}var ev=e.i(406952);let ej=/[/\-_. ]/;function ew({open:e,onClose:a,onOpenDoc:n,rootParam:s}){let[o,i]=(0,r.useState)([]),[l,d]=(0,r.useState)(""),[c,u]=(0,r.useState)(0),p=(0,r.useRef)(null),[h,m]=(0,r.useState)(e);e!==h&&(m(e),e&&(d(""),u(0))),(0,r.useEffect)(()=>{e&&fetch(`/api/docs${s}`).then(e=>e.json()).then(e=>i(Array.isArray(e)?e:[])).catch(()=>i([]))},[e,s]);let x=(0,r.useMemo)(()=>{var e;return e=e=>e.path,o.map(t=>({item:t,path:e(t),score:function(e,t){let r=e.toLowerCase().replace(/\s+/g,"");if(!r)return 0;let a=t.toLowerCase(),n=null;for(let e=a.indexOf(r[0]);-1!==e;e=a.indexOf(r[0],e+1)){let t=function(e,t,r){let a=t.lastIndexOf("/")+1,n=0,s=0,o=-2;for(let i=r;i<t.length&&s<e.length;i++)t[i]===e[s]&&(n+=1,i===o+1&&(n+=5),(0===i||ej.test(t[i-1]))&&(n+=8),i>=a&&(n+=3),o=i,s++);return s===e.length?n:null}(r,a,e);null!==t&&(null===n||t>n)&&(n=t)}return n}(l,e(t))})).filter(e=>null!==e.score).sort((e,t)=>t.score-e.score||e.path.length-t.path.length).map(e=>e.item)},[l,o]),b=x.slice(0,50);function g(e){e&&(n(e.path),a())}return(0,r.useEffect)(()=>{p.current?.querySelector(`[data-index="${c}"]`)?.scrollIntoView({block:"nearest"})},[c]),(0,t.jsx)(eb.Dialog,{open:e,onOpenChange:e=>{e||a()},children:(0,t.jsxs)(eb.DialogContent,{className:"max-w-xl p-0 overflow-hidden bg-surface border-border gap-0 top-[20%] translate-y-0",children:[(0,t.jsx)(eb.DialogTitle,{className:"sr-only",children:"Go to file"}),(0,t.jsx)(j.Input,{autoFocus:!0,value:l,onChange:e=>{d(e.target.value),u(0)},onKeyDown:function(e){"ArrowDown"===e.key||e.ctrlKey&&"n"===e.key?(e.preventDefault(),u(e=>Math.min(e+1,b.length-1))):"ArrowUp"===e.key||e.ctrlKey&&"p"===e.key?(e.preventDefault(),u(e=>Math.max(e-1,0))):"Enter"===e.key&&(e.preventDefault(),g(b[c]))},placeholder:"Go to file…",className:"h-11 rounded-none border-0 border-b border-border bg-transparent px-4 text-sm shadow-none focus-visible:ring-0 placeholder:text-muted"}),(0,t.jsxs)("div",{ref:p,className:"max-h-80 overflow-y-auto py-1",children:[b.map((e,r)=>{let a=e.path.lastIndexOf("/");return(0,t.jsxs)("button",{"data-index":r,onClick:()=>g(e),onMouseMove:()=>u(r),className:(0,f.cn)("flex items-center gap-2.5 w-full px-4 py-1.5 text-left text-sm transition-colors",c===r?"bg-accent/10 text-txt":"text-muted"),children:[(0,t.jsx)(ev.FileText,{className:"h-3.5 w-3.5 shrink-0 opacity-60"}),(0,t.jsx)("span",{className:"truncate text-txt",children:e.path.slice(a+1)}),a>0&&(0,t.jsx)("span",{className:"truncate text-xs text-muted",children:e.path.slice(0,a)})]},e.path)}),0===b.length&&(0,t.jsx)("div",{className:"px-4 py-6 text-center text-sm text-muted",children:"No matching files"}),x.length>50&&(0,t.jsxs)("div",{className:"px-4 py-1.5 text-xs text-muted",children:[x.length-50," more β€” keep typing to narrow"]})]})]})})}var eN=e.i(91881),ek=e.i(998822);function eS({proposal:e,onResolve:a}){let{rootParam:s,openDoc:o}=(0,n.useApp)(),[i,l]=(0,r.useState)(null),[d,c]=(0,r.useState)(null),[u,p]=(0,r.useState)(!1);(0,r.useEffect)(()=>{fetch(`/api/docs${s}&read=${encodeURIComponent(e.path)}`).then(e=>e.ok?e.json():null).then(t=>l(t?.path===e.path.replace(/^\.\//,"")&&"string"==typeof t.content?t.content:"")).catch(()=>l(""))},[e.path,s]);let h=(0,r.useMemo)(()=>null===i?null:function(e,t){let r=e;for(let[e,a]of t.entries()){if("string"!=typeof a?.old_string||"string"!=typeof a?.new_string)return{error:`Edit ${e+1}: old_string and new_string must be strings`};if(""===a.old_string){if(""!==r)return{error:`Edit ${e+1}: empty old_string is only allowed for a new, empty doc`};r=a.new_string;continue}let t=r.indexOf(a.old_string);if(-1===t)return{error:`Edit ${e+1}: old_string not found in the doc`};if(-1!==r.indexOf(a.old_string,t+1))return{error:`Edit ${e+1}: old_string matches more than once; include more surrounding text`};r=r.slice(0,t)+a.new_string+r.slice(t+a.old_string.length)}return{content:r}}(i,e.edits),[i,e.edits]),m=null!==h&&"error"in h?h.error:null,x=(0,r.useMemo)(()=>{var e;let t,r;return null===i||!h||"error"in h?[]:(t=(e=function(e,t){let r=e.split("\n"),a=t.split("\n"),n=0;for(;n<r.length&&n<a.length&&r[n]===a[n];)n++;let s=r.length,o=a.length;for(;s>n&&o>n&&r[s-1]===a[o-1];)s--,o--;let i=r.slice(n,s),l=a.slice(n,o),d=Array.from({length:i.length+1},()=>Array(l.length+1).fill(0));for(let e=i.length-1;e>=0;e--)for(let t=l.length-1;t>=0;t--)d[e][t]=i[e]===l[t]?d[e+1][t+1]+1:Math.max(d[e+1][t],d[e][t+1]);let c=[],u=0,p=0;for(;u<i.length||p<l.length;)u<i.length&&p<l.length&&i[u]===l[p]?(c.push({op:" ",text:i[u]}),u++,p++):u<i.length&&(p===l.length||d[u+1][p]>=d[u][p+1])?(c.push({op:"-",text:i[u]}),u++):(c.push({op:"+",text:l[p]}),p++);return[...r.slice(0,n).map(e=>({op:" ",text:e})),...c,...r.slice(s).map(e=>({op:" ",text:e}))]}(i,h.content)).map(()=>!1),e.forEach((r,a)=>{if(" "!==r.op)for(let r=Math.max(0,a-2);r<=Math.min(e.length-1,a+2);r++)t[r]=!0}),r=[],e.forEach((e,a)=>{t[a]?r.push(e):"number"==typeof r[r.length-1]?r[r.length-1]=r[r.length-1]+1:r.push(1)}),r)},[i,h]),b=x.filter(e=>"number"!=typeof e&&"+"===e.op).length,g=x.filter(e=>"number"!=typeof e&&"-"===e.op).length;async function y(){p(!0),c(null);try{let t=await fetch(`/api/docs${s}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e.path,edits:e.edits,actor:"ai"})});if(!t.ok)throw Error((await t.json().catch(()=>null))?.error??"Save failed");a("accepted")}catch(e){c(e.message)}finally{p(!1)}}return(0,t.jsxs)("div",{className:"my-2 rounded-md border border-border overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 bg-surface2 border-b border-border",children:[(0,t.jsx)("button",{onClick:()=>o(e.path),className:"text-xs font-mono text-accent truncate hover:underline",title:e.path,children:e.path}),(0,t.jsxs)("span",{className:"text-[10px] font-mono text-teal-400",children:["+",b]}),(0,t.jsxs)("span",{className:"text-[10px] font-mono text-red-400",children:["-",g]})]}),e.summary&&(0,t.jsx)("div",{className:"px-2 py-1 text-xs text-muted border-b border-border",children:e.summary}),(0,t.jsxs)("div",{className:"max-h-72 overflow-auto text-[11px] font-mono leading-5",children:[null===i&&(0,t.jsx)("div",{className:"px-2 py-1 text-muted",children:"Loading diff…"}),m&&(0,t.jsxs)("div",{className:"px-2 py-1 text-red-400",children:["Doc changed since this proposal (",m,"). Ask the agent to propose again."]}),null!==i&&!m&&0===x.length&&(0,t.jsx)("div",{className:"px-2 py-1 text-muted",children:"No changes"}),x.map((e,r)=>"number"==typeof e?(0,t.jsxs)("div",{className:"px-2 text-muted bg-surface2/50",children:["β‹― ",e," unchanged line",e>1?"s":""]},r):(0,t.jsxs)("div",{className:(0,f.cn)("px-2 whitespace-pre-wrap break-words","+"===e.op&&"bg-teal-500/10 text-teal-300","-"===e.op&&"bg-red-500/10 text-red-300 line-through decoration-red-400/40"),children:[e.op," ",e.text||" "]},r))]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 border-t border-border",children:["pending"===e.status?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{onClick:y,disabled:u||null===i||!!m,className:"text-xs px-2 py-0.5 rounded-sm bg-accent/20 text-accent hover:bg-accent/30 disabled:opacity-50",children:u?"Applying…":"Accept"}),(0,t.jsx)("button",{onClick:()=>a("rejected"),disabled:u,className:"text-xs px-2 py-0.5 rounded-sm text-muted hover:text-txt",children:"Reject"})]}):(0,t.jsx)("span",{className:(0,f.cn)("text-xs","accepted"===e.status?"text-teal-400":"text-muted"),children:"accepted"===e.status?"βœ“ Applied":"Rejected"}),d&&(0,t.jsx)("span",{className:"text-xs text-red-400 truncate",children:d})]})]})}function e_({proposal:e,onResolve:a}){let{rootParam:s,openDoc:o}=(0,n.useApp)(),i=e.plan,l="breakdown"===i.kind?i.tasks:[],d="roadmap"===i.kind?i.horizons??[]:[],c="roadmap"===i.kind?i.epics??[]:[],u="breakdown"===i.kind?i.epic.toUpperCase():"",[p,f]=(0,r.useState)(new Map),[h,m]=(0,r.useState)(new Set),[x,b]=(0,r.useState)(null),[g,y]=(0,r.useState)(null),[v,j]=(0,r.useState)(!1);(0,r.useEffect)(()=>{fetch(`/api/roadmap${s}`).then(e=>e.ok?e.json():null).then(e=>f(new Map((e?.items??[]).map(e=>[e.id,e.title])))).catch(()=>f(new Map))},[s]);let w=("breakdown"===i.kind?l.map(e=>e.key):[...d,...c].map(e=>e.key)).filter(e=>!h.has(e)),N="pending"===e.status,k=new Set(d.map(e=>e.key)),S=(e,r,a,n,s=!1)=>(0,t.jsx)(eC,{rowKey:e,title:r,meta:a,body:n,indent:s,checked:!h.has(e),disabled:!N||v,onToggle:()=>{y(null),m(t=>{let r=new Set(t),a=r.has(e);for(let t of k.has(e)?[e,...c.filter(t=>t.parent.trim()===e).map(e=>e.key)]:[e])a?r.delete(t):r.add(t);let n=c.find(t=>t.key===e)?.parent.trim();return a&&n&&k.has(n)&&r.delete(n),r})},open:x===e,onOpen:()=>b(x===e?null:e)},e),_=e=>e.trim().split("\n")[0]??"",C=[...new Set(c.map(e=>e.parent.trim()).filter(e=>!k.has(e)))];async function E(){j(!0),y(null);try{let e=await fetch(`/api/plan/apply${s}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({plan:i,selected:w})}),t=await e.json().catch(()=>null);if(!e.ok)throw Error(t?.error??`Apply failed (${e.status})`);a("accepted",t?.created??[],[...h])}catch(e){y(e.message)}finally{j(!1)}}return(0,t.jsxs)("div",{className:"my-2 rounded-md border border-border overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 bg-surface2 border-b border-border",children:[(0,t.jsx)("span",{className:"text-[10px] font-mono uppercase tracking-widest text-muted",children:"Plan"}),"breakdown"===i.kind?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-xs font-mono text-accent",children:u}),(0,t.jsx)("span",{className:"text-xs text-txt truncate",children:p.get(u)??""}),(0,t.jsxs)("span",{className:"ml-auto text-[10px] font-mono text-muted",children:[l.length," tasks"]})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-xs text-txt",children:"Roadmap"}),(0,t.jsxs)("span",{className:"ml-auto text-[10px] font-mono text-muted",children:[d.length?`${d.length} horizons \xb7 `:"",c.length," epics"]})]})]}),(0,t.jsxs)("ul",{className:"max-h-80 overflow-auto",children:[l.map(e=>S(e.key,e.title,[e.size,e.dependsOn?.length?`after ${e.dependsOn.join(", ")}`:null,e.due?`due ${e.due}`:null].filter(Boolean).join(" Β· "),e.body)),d.map(e=>[S(e.key,e.title,"new horizon",e.body),...c.filter(t=>t.parent.trim()===e.key).map(e=>S(e.key,e.title,_(e.body),e.body,!0))]),C.map(e=>[(0,t.jsxs)("li",{className:"px-2 py-1.5 border-b border-border text-xs text-muted",children:[(0,t.jsx)("span",{className:"font-mono text-accent mr-1",children:e.toUpperCase()}),p.get(e.toUpperCase())??""]},`parent-${e}`),...c.filter(t=>t.parent.trim()===e).map(e=>S(e.key,e.title,_(e.body),e.body,!0))])]}),g&&(0,t.jsx)("div",{className:"px-2 py-1 text-xs text-red-400 whitespace-pre-wrap border-t border-border",children:g}),(0,t.jsx)("div",{className:"flex items-center gap-2 px-2 py-1.5 border-t border-border",children:N?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{onClick:E,disabled:v||0===w.length,className:"text-xs px-2 py-0.5 rounded-sm bg-accent/20 text-accent hover:bg-accent/30 disabled:opacity-50",children:v?"Creating…":`Accept (${w.length})`}),(0,t.jsx)("button",{onClick:()=>a("rejected",[],[]),disabled:v,className:"text-xs px-2 py-0.5 rounded-sm text-muted hover:text-txt",children:"Reject"})]}):"accepted"===e.status?(0,t.jsxs)("span",{className:"text-xs text-teal-400",children:["βœ“ Created"," ",(e.created??[]).map((e,r)=>(0,t.jsxs)("span",{children:[r>0&&", ",(0,t.jsx)("button",{onClick:()=>o(e.file),className:"font-mono hover:underline",children:e.id})]},e.id))]}):(0,t.jsx)("span",{className:"text-xs text-muted",children:"Rejected"})})]})}function eC({rowKey:e,title:r,meta:a,body:n,indent:s,checked:o,disabled:i,onToggle:l,open:d,onOpen:c}){return(0,t.jsxs)("li",{"data-plan-row":e,className:"border-b border-border last:border-b-0",children:[(0,t.jsxs)("div",{className:(0,f.cn)("flex items-start gap-2 px-2 py-1.5",s&&"pl-6"),children:[(0,t.jsx)("input",{type:"checkbox","aria-label":`Include ${r}`,checked:o,disabled:i,onChange:l,className:"mt-0.5 accent-accent"}),(0,t.jsxs)("button",{onClick:c,className:"flex-1 min-w-0 text-left",children:[(0,t.jsxs)("div",{className:(0,f.cn)("text-xs text-txt",!o&&"line-through text-muted"),children:[(0,t.jsx)("span",{className:"font-mono text-muted mr-1",children:e}),r]}),a&&(0,t.jsx)("div",{className:"text-[10px] font-mono text-muted truncate",children:a})]})]}),d&&n&&(0,t.jsx)("div",{className:"px-3 pb-2 border-t border-border bg-surface2/40",children:(0,t.jsx)(ek.MarkdownRenderer,{content:n,className:"text-xs"})})]})}let eE="\0other";function eA({set:e,disabled:a,onSubmit:n}){let[s,o]=(0,r.useState)(()=>e.questions.map(()=>[])),[i,l]=(0,r.useState)(()=>e.questions.map(()=>"")),d=!!e.answers,c=e.questions.map((e,t)=>{let r=e.options.map(e=>e.label).filter(e=>s[t].includes(e));return s[t].includes(eE)&&i[t].trim()&&r.push(`Other: "${i[t].trim()}"`),r.join(", ")}),u=c.every(Boolean);return(0,t.jsxs)("div",{className:"my-2 rounded-md border border-border overflow-hidden","data-question-card":!0,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 bg-surface2 border-b border-border",children:[(0,t.jsx)("span",{className:"text-[10px] font-mono uppercase tracking-widest text-muted",children:"Questions"}),d&&(0,t.jsx)("span",{className:"ml-auto text-[10px] font-mono text-accent",children:"βœ“ Answered"})]}),(0,t.jsxs)("div",{className:"p-2 space-y-3",children:[e.questions.map((r,a)=>(0,t.jsxs)("fieldset",{disabled:d,className:"space-y-1",children:[(0,t.jsxs)("legend",{className:"mb-1",children:[(0,t.jsx)("span",{className:"text-[10px] font-mono px-1.5 py-0.5 rounded-sm bg-surface2 border border-border text-accent mr-1.5",children:r.header}),(0,t.jsx)("span",{className:"text-xs text-txt",children:r.question})]}),d?(0,t.jsx)("p",{className:"text-xs text-txt pl-1",children:e.answers?.[a]}):(0,t.jsxs)(t.Fragment,{children:[[...r.options,{label:"Other",value:eE}].map(n=>{let i="value"in n?n.value:n.label,l=s[a].includes(i);return(0,t.jsxs)("label",{className:(0,f.cn)("flex gap-2 items-start rounded-sm px-1 py-0.5 cursor-pointer hover:bg-surface2",l&&"bg-surface2"),children:[(0,t.jsx)("input",{type:r.multiSelect?"checkbox":"radio",name:`${e.id}-${a}`,checked:l,onChange:()=>{var e;return e=r.multiSelect,void o(t=>t.map((t,r)=>r!==a?t:e?t.includes(i)?t.filter(e=>e!==i):[...t,i]:[i]))},className:"mt-0.5 accent-accent"}),(0,t.jsxs)("span",{className:"text-xs",children:[(0,t.jsx)("span",{className:"text-txt",children:n.label}),"description"in n&&n.description&&(0,t.jsx)("span",{className:"block text-muted",children:n.description})]})]},i)}),s[a].includes(eE)&&(0,t.jsx)("input",{value:i[a],onChange:e=>l(t=>t.map((t,r)=>r===a?e.target.value:t)),placeholder:"Your answer","aria-label":`Other answer for ${r.header}`,className:"ml-6 w-[calc(100%-1.5rem)] rounded-sm bg-surface2 border border-border px-2 py-1 text-xs text-txt placeholder:text-muted focus:outline-hidden focus:border-accent"})]})]},a)),!d&&(0,t.jsx)("button",{onClick:()=>n(c),disabled:!u||a,className:"text-xs px-2 py-0.5 rounded-sm bg-accent/20 text-accent hover:bg-accent/30 disabled:opacity-50",children:"Submit"})]})]})}let eM=e=>!!e&&"object"==typeof e&&!Array.isArray(e);var eT=e.i(956555);function eR({onClose:e}){let{rootParam:s,activeProject:o,selectedDoc:i}=(0,n.useApp)(),l=(0,a.usePathname)(),[d,c]=(0,r.useState)([]),[u,p]=(0,r.useState)(""),[h,m]=(0,r.useState)(!1),[x,b]=(0,r.useState)(null),g=(0,r.useRef)(null),y=(0,r.useRef)(null),v=(0,r.useRef)(null),j=(0,r.useRef)([]),w="/docs"===l?i?.path:void 0;function N(e){c(t=>[...t.slice(0,-1),e(t[t.length-1])])}async function k(e){let t=(e??u).trim();if(!t||h)return;void 0===e&&p(""),b(null),m(!0),c(e=>[...e,{role:"user",text:t,tools:[],proposals:[],plans:[],questions:[]},{role:"assistant",text:"",tools:[],proposals:[],plans:[],questions:[]}]);let r=j.current.splice(0),a=r.length?`[${r.join(" ")}]
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,138324,(e,t,r)=>{"use strict";e.i(583225),Object.defineProperty(r,"__esModule",{value:!0});var a={default:function(){return b},useLinkStatus:function(){return y}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let s=e.r(56421),o=e.r(72345),i=s._(e.r(180338)),l=e.r(626167),d=e.r(757336),c=e.r(863555),u=e.r(549757),p=e.r(671412),f=e.r(235871),h=e.r(716851),m=e.r(658853),x=e.r(571921);function b(t){var r;let a,n,s,[b,y]=(0,i.useOptimistic)(h.IDLE_LINK_STATUS),v=(0,i.useRef)(null),{href:j,as:w,children:N,prefetch:k=null,passHref:S,replace:E,shallow:_,scroll:C,onClick:A,onMouseEnter:M,onTouchStart:T,legacyBehavior:R=!1,onNavigate:P,transitionTypes:O,ref:$,unstable_dynamicOnHover:z,...D}=t;a=N,R&&("string"==typeof a||"number"==typeof a)&&(a=(0,o.jsx)("a",{children:a}));let I=i.default.useContext(d.AppRouterContext),L=!1!==k,q=!1===k?"none":!0===k?"full":"auto",U="none"!==q?"auto"===q?x.FetchStrategy.PPR:x.FetchStrategy.Full:x.FetchStrategy.PPR,B="string"==typeof(r=w||j)?r:(0,l.formatUrl)(r);if(R){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});n=i.default.Children.only(a)}let F=R?n&&"object"==typeof n&&n.ref:$,K,G=i.default.useCallback(e=>(null!==I&&(v.current=(0,h.mountLinkInstance)(e,B,I,U,L,y,K)),()=>{v.current&&((0,h.unmountLinkForCurrentNavigation)(v.current),v.current=null),(0,h.unmountPrefetchableInstance)(e)}),[L,B,I,U,y,K]),V={ref:(0,c.useMergedRef)(G,F),onClick(t){R||"function"!=typeof A||A(t),R&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(t),!I||t.defaultPrevented||function(t,r,a,n,s,o,l,d="none"){if("u">typeof window){let c,{nodeName:u}=t.currentTarget;if("A"===u.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(r)){n&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),o){let e=!1;if(o({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:p}=e.r(187250);i.default.startTransition(()=>{p(r,n?"replace":"push",!1===s?f.ScrollBehavior.NoScroll:f.ScrollBehavior.Default,a.current,l,d)})}}(t,B,v,E,C,P,O,q)},onMouseEnter(e){R||"function"!=typeof M||M(e),R&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),I&&L&&(0,h.onNavigationIntent)(e.currentTarget,!0===z)},onTouchStart:function(e){R||"function"!=typeof T||T(e),R&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),I&&L&&(0,h.onNavigationIntent)(e.currentTarget,!0===z)}};return(0,u.isAbsoluteUrl)(B)?V.href=B:R&&!S&&("a"!==n.type||"href"in n.props)||(V.href=(0,p.addBasePath)(B)),s=R?i.default.cloneElement(n,V):(0,o.jsx)("a",{...D,...V,children:a}),(0,o.jsx)(g.Provider,{value:b,children:s})}let g=(0,i.createContext)(h.IDLE_LINK_STATUS),y=()=>(0,i.useContext)(g);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},863555,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return n}});let a=e.r(180338);function n(e,t){let r=(0,a.useRef)(null),n=(0,a.useRef)(null);return(0,a.useCallback)(a=>{if(null===a){let e=r.current;e&&(r.current=null,e());let t=n.current;t&&(n.current=null,t())}else e&&(r.current=s(e,a)),t&&(n.current=s(t,a))},[e,t])}function s(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},549757,(e,t,r)=>{"use strict";e.i(583225),Object.defineProperty(r,"__esModule",{value:!0});var a={DecodeError:function(){return b},MiddlewareNotFoundError:function(){return j},MissingStaticPage:function(){return v},NormalizeError:function(){return g},PageNotFoundError:function(){return y},SP:function(){return m},ST:function(){return x},WEB_VITALS:function(){return s},execOnce:function(){return o},getDisplayName:function(){return u},getLocationOrigin:function(){return d},getURL:function(){return c},isAbsoluteUrl:function(){return l},isResSent:function(){return p},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return f},stringifyError:function(){return w}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let s=["CLS","FCP","FID","INP","LCP","TTFB"];function o(e){let t,r=!1;return(...a)=>(r||(r=!0,t=e(...a)),t)}let i=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&i.test(e)};function d(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=d();return e.substring(t.length)}function u(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function p(e){return e.finished||e.headersSent}function f(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let a=await e.getInitialProps(t);if(r&&p(r))return a;if(!a)throw Object.defineProperty(Error(`"${u(e)}.getInitialProps()" should resolve to an object. But found "${a}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return a}let m="u">typeof performance,x=m&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class b extends Error{}class g extends Error{}class y extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class v extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class j extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function w(e){return JSON.stringify({message:e.message,stack:e.stack})}},658853,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return s}});let a=e.r(549757),n=e.r(144654);function s(e){if(!(0,a.isAbsoluteUrl)(e))return!0;try{let t=(0,a.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,n.hasBasePath)(r.pathname)}catch(e){return!1}}},818732,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={assign:function(){return l},searchParamsToUrlQuery:function(){return s},urlQueryToSearchParams:function(){return i}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});function s(e){let t={};for(let[r,a]of e.entries()){let e=t[r];void 0===e?t[r]=a:Array.isArray(e)?e.push(a):t[r]=[e,a]}return t}function o(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function i(e){let t=new URLSearchParams;for(let[r,a]of Object.entries(e))if(Array.isArray(a))for(let e of a)t.append(r,o(e));else t.set(r,o(a));return t}function l(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,a]of r.entries())e.append(t,a)}return e}},626167,(e,t,r)=>{"use strict";e.i(583225),Object.defineProperty(r,"__esModule",{value:!0});var a={formatUrl:function(){return i},formatWithValidation:function(){return d},urlObjectKeys:function(){return l}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let s=e.r(56421)._(e.r(818732)),o=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:r}=e,a=e.protocol||"",n=e.pathname||"",i=e.hash||"",l=e.query||"",d=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?d=t+e.host:r&&(d=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(d+=":"+e.port)),l&&"object"==typeof l&&(l=String(s.urlQueryToSearchParams(l)));let c=e.search||l&&`?${l}`||"";return a&&!a.endsWith(":")&&(a+=":"),e.slashes||(!a||o.test(a))&&!1!==d?(d="//"+(d||""),n&&"/"!==n[0]&&(n="/"+n)):d||(d=""),i&&"#"!==i[0]&&(i="#"+i),c&&"?"!==c[0]&&(c="?"+c),n=n.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${a}${d}${n}${c}${i}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function d(e){return i(e)}},588537,e=>{"use strict";var t=e.i(72345),r=e.i(180338),a=e.i(910172),n=e.i(763371),s=e.i(573009),o=e.i(243668);function i(){let{rootParam:e,refresh:t,setEditorSettings:a,setAutoRefreshSeconds:i,autoRefreshSeconds:l}=(0,n.useApp)(),d=(0,r.useRef)(null);return(0,r.useEffect)(()=>{if(!e)return;let t=!1;return fetch(`/api/settings${e}&type=settings`).then(e=>e.ok?e.json():o.DEFAULT_SETTINGS).then(e=>{t||((0,s.applyTheme)(e.theme),(0,s.applyAccent)(e.accentColor),(0,s.applyFontSize)(e.fontSize),(0,s.applyFonts)(e),a(e.editor),i(e.project?.autoRefresh??0))}).catch(()=>{}),()=>{t=!0}},[e]),(0,r.useEffect)(()=>(d.current&&clearInterval(d.current),l>0&&(d.current=setInterval(t,1e3*l)),()=>{d.current&&(clearInterval(d.current),d.current=null)}),[l,t]),null}function l(){return(0,t.jsx)("div",{className:"min-h-screen flex items-center justify-center",children:(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("div",{className:"flex gap-1.5 justify-center mb-4",children:[0,1,2].map(e=>(0,t.jsx)("div",{className:"w-2 h-2 rounded-full bg-accent animate-pulse-dot",style:{animationDelay:`${.15*e}s`}},e))}),(0,t.jsx)("p",{className:"text-muted text-sm font-mono",children:"Loading project..."})]})})}var d=e.i(755146);function c({projects:e,activeProject:r,currentName:a,onSelect:n}){return(0,t.jsxs)(d.DropdownMenu,{children:[(0,t.jsx)(d.DropdownMenuTrigger,{asChild:!0,children:(0,t.jsxs)("button",{className:"flex items-center gap-1.5 px-3 py-1.5 rounded-md bg-surface2 border border-border text-sm hover:border-border2 transition-colors",children:[(0,t.jsx)("span",{className:"text-txt font-medium truncate max-w-[200px]",children:a||"Select project"}),(0,t.jsx)("span",{className:"text-muted text-xs",children:"β–Ύ"})]})}),(0,t.jsx)(d.DropdownMenuContent,{className:"w-64 bg-surface border-border2 text-txt",align:"start",children:0===e.length?(0,t.jsx)("div",{className:"px-3 py-2 text-sm text-muted",children:"No projects found"}):e.map(e=>(0,t.jsx)(d.DropdownMenuItem,{onClick:()=>n(e.root),className:`cursor-pointer hover:bg-surface2 focus:bg-surface2 ${e.root===r?"text-accent":""}`,children:(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"font-medium",children:e.name}),(0,t.jsx)("div",{className:"text-xs text-muted truncate font-mono",children:e.root})]})},e.root))})]})}var u=e.i(487486);function p({board:e}){return(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsxs)(u.Badge,{variant:"secondary",className:"gap-1 text-xs font-mono text-amber",children:["πŸ”¨ ",e["in-progress"]||0]}),(0,t.jsxs)(u.Badge,{variant:"secondary",className:"gap-1 text-xs font-mono text-muted",children:["πŸ“‹ ",e.todo||0]}),(0,t.jsxs)(u.Badge,{variant:"secondary",className:"gap-1 text-xs font-mono text-teal",children:["βœ… ",e.done||0]})]})}var f=e.i(975157);function h({active:e}){return(0,t.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-mono text-muted",children:[(0,t.jsx)("div",{className:(0,f.cn)("w-1.5 h-1.5 rounded-full transition-colors duration-500",e?"bg-teal shadow-[0_0_6px_#4fd8b4]":"bg-border2")}),(0,t.jsx)("span",{children:e?"live update":"connected"})]})}var m=e.i(617739),x=e.i(294237),b=e.i(83790);let g={name:"panel-left",size:24,node:[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]],aliases:["sidebar"]};g.node;let y=(0,b.default)(g);var v=e.i(519455),j=e.i(793479),w=e.i(772436),N=e.i(980376);function k({className:e,...r}){return(0,t.jsx)("div",{className:(0,f.cn)("animate-pulse rounded-md bg-surface2",e),...r})}var S=e.i(746798);let E=r.createContext(null);function _(){let e=r.useContext(E);if(!e)throw Error("useSidebar must be used within a SidebarProvider.");return e}let C=r.forwardRef(({defaultOpen:e=!0,open:a,onOpenChange:n,className:s,style:o,children:i,...l},d)=>{let c=function(){let[e,t]=r.useState(void 0);return r.useEffect(()=>{let e=window.matchMedia("(max-width: 767px)"),r=()=>{t(window.innerWidth<768)};return e.addEventListener("change",r),t(window.innerWidth<768),()=>e.removeEventListener("change",r)},[]),!!e}(),[u,p]=r.useState(!1),[h,m]=r.useState(e),x=a??h,b=r.useCallback(e=>{let t="function"==typeof e?e(x):e;n?n(t):m(t),document.cookie=`sidebar_state=${t}; path=/; max-age=604800`},[n,x]),g=r.useCallback(()=>c?p(e=>!e):b(e=>!e),[c,b,p]);r.useEffect(()=>{let e=e=>{"b"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),g())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[g]);let y=x?"expanded":"collapsed",v=r.useMemo(()=>({state:y,open:x,setOpen:b,isMobile:c,openMobile:u,setOpenMobile:p,toggleSidebar:g}),[y,x,b,c,u,p,g]);return(0,t.jsx)(E.Provider,{value:v,children:(0,t.jsx)(S.TooltipProvider,{delayDuration:0,children:(0,t.jsx)("div",{style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...o},className:(0,f.cn)("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",s),ref:d,...l,children:i})})})});C.displayName="SidebarProvider";let A=r.forwardRef(({side:e="left",variant:r="sidebar",collapsible:a="offcanvas",className:n,children:s,...o},i)=>{let{isMobile:l,state:d,openMobile:c,setOpenMobile:u}=_();return"none"===a?(0,t.jsx)("div",{className:(0,f.cn)("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",n),ref:i,...o,children:s}):l?(0,t.jsx)(N.Sheet,{open:c,onOpenChange:u,...o,children:(0,t.jsxs)(N.SheetContent,{"data-sidebar":"sidebar","data-mobile":"true",className:"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:e,children:[(0,t.jsxs)(N.SheetHeader,{className:"sr-only",children:[(0,t.jsx)(N.SheetTitle,{children:"Sidebar"}),(0,t.jsx)(N.SheetDescription,{children:"Displays the mobile sidebar."})]}),(0,t.jsx)("div",{className:"flex h-full w-full flex-col",children:s})]})}):(0,t.jsxs)("div",{ref:i,className:"group peer hidden text-sidebar-foreground md:block","data-state":d,"data-collapsible":"collapsed"===d?a:"","data-variant":r,"data-side":e,children:[(0,t.jsx)("div",{className:(0,f.cn)("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180","floating"===r||"inset"===r?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,t.jsx)("div",{className:(0,f.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex","left"===e?"left-0 group-data-[collapsible=offcanvas]:-left-(--sidebar-width)":"right-0 group-data-[collapsible=offcanvas]:-right-(--sidebar-width)","floating"===r||"inset"===r?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",n),...o,children:(0,t.jsx)("div",{"data-sidebar":"sidebar",className:"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm",children:s})})]})});A.displayName="Sidebar";let M=r.forwardRef(({className:e,onClick:r,...a},n)=>{let{toggleSidebar:s}=_();return(0,t.jsxs)(v.Button,{ref:n,"data-sidebar":"trigger",variant:"ghost",size:"icon",className:(0,f.cn)("h-7 w-7",e),onClick:e=>{r?.(e),s()},...a,children:[(0,t.jsx)(y,{}),(0,t.jsx)("span",{className:"sr-only",children:"Toggle Sidebar"})]})});M.displayName="SidebarTrigger",r.forwardRef(({className:e,...r},a)=>{let{toggleSidebar:n}=_();return(0,t.jsx)("button",{ref:a,"data-sidebar":"rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:n,title:"Toggle Sidebar",className:(0,f.cn)("absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-[translate,background-color] ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex","in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize","group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",e),...r})}).displayName="SidebarRail";let T=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)("main",{ref:a,className:(0,f.cn)("relative flex w-full flex-1 flex-col bg-bg","md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm",e),...r}));T.displayName="SidebarInset",r.forwardRef(({className:e,...r},a)=>(0,t.jsx)(j.Input,{ref:a,"data-sidebar":"input",className:(0,f.cn)("h-8 w-full bg-bg shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring",e),...r})).displayName="SidebarInput";let R=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)("div",{ref:a,"data-sidebar":"header",className:(0,f.cn)("flex flex-col gap-2 p-2",e),...r}));R.displayName="SidebarHeader",r.forwardRef(({className:e,...r},a)=>(0,t.jsx)("div",{ref:a,"data-sidebar":"footer",className:(0,f.cn)("flex flex-col gap-2 p-2",e),...r})).displayName="SidebarFooter";let P=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)(w.Separator,{ref:a,"data-sidebar":"separator",className:(0,f.cn)("mx-2 w-auto bg-sidebar-border",e),...r}));P.displayName="SidebarSeparator";let O=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)("div",{ref:a,"data-sidebar":"content",className:(0,f.cn)("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",e),...r}));O.displayName="SidebarContent";let $=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)("div",{ref:a,"data-sidebar":"group",className:(0,f.cn)("relative flex w-full min-w-0 flex-col p-2",e),...r}));$.displayName="SidebarGroup";let z=r.forwardRef(({className:e,asChild:r=!1,...a},n)=>{let s=r?m.Slot:"div";return(0,t.jsx)(s,{ref:n,"data-sidebar":"group-label",className:(0,f.cn)("flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-hidden ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",e),...a})});z.displayName="SidebarGroupLabel",r.forwardRef(({className:e,asChild:r=!1,...a},n)=>{let s=r?m.Slot:"button";return(0,t.jsx)(s,{ref:n,"data-sidebar":"group-action",className:(0,f.cn)("absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 md:after:hidden","group-data-[collapsible=icon]:hidden",e),...a})}).displayName="SidebarGroupAction";let D=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)("div",{ref:a,"data-sidebar":"group-content",className:(0,f.cn)("w-full text-sm",e),...r}));D.displayName="SidebarGroupContent";let I=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)("ul",{ref:a,"data-sidebar":"menu",className:(0,f.cn)("flex w-full min-w-0 flex-col gap-1",e),...r}));I.displayName="SidebarMenu";let L=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)("li",{ref:a,"data-sidebar":"menu-item",className:(0,f.cn)("group/menu-item relative",e),...r}));L.displayName="SidebarMenuItem";let q=(0,x.cva)("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-bg shadow-[0_0_0_1px_rgb(var(--rgb-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_rgb(var(--rgb-surface2))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}}),U=r.forwardRef(({asChild:e=!1,isActive:r=!1,variant:a="default",size:n="default",tooltip:s,className:o,...i},l)=>{let d=e?m.Slot:"button",{isMobile:c,state:u}=_(),p=(0,t.jsx)(d,{ref:l,"data-sidebar":"menu-button","data-size":n,"data-active":r,className:(0,f.cn)(q({variant:a,size:n}),o),...i});return s?("string"==typeof s&&(s={children:s}),(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:p}),(0,t.jsx)(S.TooltipContent,{side:"right",align:"center",hidden:"collapsed"!==u||c,...s})]})):p});function B({summary:e,projects:r,activeProject:a,liveIndicator:n,onProjectChange:s,onToggleChat:o}){return(0,t.jsxs)("header",{className:"h-12 border-b border-border flex items-center px-4 gap-4 shrink-0 bg-surface/80 backdrop-blur-xs sticky top-0 z-50",children:[(0,t.jsx)(M,{className:"-ml-1"}),(0,t.jsx)(w.Separator,{orientation:"vertical",className:"mr-2 h-4"}),(0,t.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,t.jsx)("div",{className:"w-6 h-6 rounded-md bg-linear-to-br from-accent to-teal flex items-center justify-center text-xs",children:"⬑"}),(0,t.jsx)("span",{className:"font-mono text-xs text-muted tracking-widest uppercase",children:"VibeDoc"})]}),(0,t.jsx)(c,{projects:r,activeProject:a,currentName:e?.name||"",onSelect:s}),e&&(0,t.jsx)(p,{board:e.tasks.board}),(0,t.jsx)("div",{className:"flex-1"}),(0,t.jsx)(h,{active:n}),(0,t.jsx)("button",{onClick:o,title:"Agent chat (c)",className:"px-2 py-1 rounded-sm border border-border bg-surface2 text-xs font-mono text-muted hover:text-txt",children:"Agent"}),(0,t.jsxs)("div",{className:"hidden md:flex items-center gap-1.5 px-2 py-1 rounded-sm bg-surface2 border border-border",children:[(0,t.jsx)("span",{className:"text-xs font-mono text-muted",children:"MCP"}),(0,t.jsx)("code",{className:"text-xs font-mono text-accent",children:"localhost:3000/api/mcp"})]})]})}U.displayName="SidebarMenuButton",r.forwardRef(({className:e,asChild:r=!1,showOnHover:a=!1,...n},s)=>{let o=r?m.Slot:"button";return(0,t.jsx)(o,{ref:s,"data-sidebar":"menu-action",className:(0,f.cn)("absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 md:after:hidden","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",a&&"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0",e),...n})}).displayName="SidebarMenuAction",r.forwardRef(({className:e,...r},a)=>(0,t.jsx)("div",{ref:a,"data-sidebar":"menu-badge",className:(0,f.cn)("pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground","peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",e),...r})).displayName="SidebarMenuBadge",r.forwardRef(({className:e,showIcon:a=!1,...n},s)=>{let o=r.useMemo(()=>`${Math.floor(40*Math.random())+50}%`,[]);return(0,t.jsxs)("div",{ref:s,"data-sidebar":"menu-skeleton",className:(0,f.cn)("flex h-8 items-center gap-2 rounded-md px-2",e),...n,children:[a&&(0,t.jsx)(k,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}),(0,t.jsx)(k,{className:"h-4 max-w-(--skeleton-width) flex-1","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":o}})]})}).displayName="SidebarMenuSkeleton",r.forwardRef(({className:e,...r},a)=>(0,t.jsx)("ul",{ref:a,"data-sidebar":"menu-sub",className:(0,f.cn)("mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5","group-data-[collapsible=icon]:hidden",e),...r})).displayName="SidebarMenuSub",r.forwardRef(({...e},r)=>(0,t.jsx)("li",{ref:r,...e})).displayName="SidebarMenuSubItem",r.forwardRef(({asChild:e=!1,size:r="md",isActive:a,className:n,...s},o)=>{let i=e?m.Slot:"a";return(0,t.jsx)(i,{ref:o,"data-sidebar":"menu-sub-button","data-size":r,"data-active":a,className:(0,f.cn)("flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-hidden ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground","data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground","sm"===r&&"text-xs","md"===r&&"text-sm","group-data-[collapsible=icon]:hidden",n),...s})}).displayName="SidebarMenuSubButton";let F={name:"layout-dashboard",size:24,node:[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]};F.node;let K=(0,b.default)(F);var G=e.i(732460),V=e.i(788293);let W={name:"brain",size:24,node:[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]]};W.node;let H=(0,b.default)(W),J={name:"circle-dot",size:24,node:[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]};J.node;let Z=(0,b.default)(J),Q={name:"ban",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}]]};Q.node;let X=(0,b.default)(Q),Y={name:"clipboard-list",size:24,node:[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]};Y.node;let ee=(0,b.default)(Y),et={name:"circle-check",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 9-5.5 5.5L8 12",key:"xofnsj"}]],aliases:["check-circle-2"]};et.node;let er=(0,b.default)(et);var ea=e.i(463464);let en={name:"folder-tree",size:24,node:[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]]};en.node;let es=(0,b.default)(en),eo={name:"map",size:24,node:[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]};eo.node;let ei=(0,b.default)(eo);var el=e.i(138324);let ed=[{href:"/board",icon:K,label:"Board"},{href:"/roadmap",icon:ei,label:"Roadmap"},{href:"/docs",icon:G.BookOpen,label:"Docs"},{href:"/activity",icon:V.Zap,label:"Activity"},{href:"/memory",icon:H,label:"Memory"},{href:"/explorer",icon:es,label:"Explorer"},{href:"/settings",icon:ea.Settings,label:"Settings"}],ec=[{status:"in-progress",icon:Z,label:"Active"},{status:"blocked",icon:X,label:"Blocked"},{status:"todo",icon:ee,label:"Todo"},{status:"done",icon:er,label:"Done"}];function eu({board:e}){let r=(0,a.usePathname)();return(0,t.jsxs)(A,{collapsible:"icon",children:[(0,t.jsx)(R,{children:(0,t.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1",children:[(0,t.jsx)("div",{className:"w-6 h-6 rounded-md bg-linear-to-br from-accent to-teal flex items-center justify-center text-xs shrink-0",children:"⬑"}),(0,t.jsx)("span",{className:"font-mono text-xs text-muted tracking-widest uppercase group-data-[collapsible=icon]:hidden",children:"VibeDoc"})]})}),(0,t.jsxs)(O,{children:[(0,t.jsx)($,{children:(0,t.jsx)(D,{children:(0,t.jsx)(I,{children:ed.map(({href:e,icon:a,label:n})=>(0,t.jsx)(L,{children:(0,t.jsx)(U,{asChild:!0,isActive:r.startsWith(e),tooltip:n,children:(0,t.jsxs)(el.default,{href:e,children:[(0,t.jsx)(a,{}),(0,t.jsx)("span",{children:n})]})})},e))})})}),e&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(P,{}),(0,t.jsxs)($,{children:[(0,t.jsx)(z,{children:"Board"}),(0,t.jsx)(D,{children:(0,t.jsx)(I,{children:ec.map(({status:r,icon:a,label:n})=>{let s=e[r]?.length||0;return(0,t.jsx)(L,{children:(0,t.jsxs)(U,{tooltip:`${n}: ${s}`,children:[(0,t.jsx)(a,{}),(0,t.jsx)("span",{children:n}),(0,t.jsx)("span",{className:"ml-auto font-mono text-xs",children:s})]})},r)})})})]})]})]})]})}var ep=e.i(161863);let ef={name:"file-plus",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]};ef.node;let eh=(0,b.default)(ef),em={name:"activity",size:24,node:[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]};em.node;let ex=(0,b.default)(em);var eb=e.i(776639),eg=e.i(759684);function ey({open:e,onClose:n,onOpenDoc:s,onNewDoc:o,rootParam:i}){let l=(0,a.useRouter)(),[d,c]=(0,r.useState)(""),[u,p]=(0,r.useState)([]),[h,m]=(0,r.useState)(0),x=[{label:"New Doc",icon:eh,action:()=>{o?.(),n()}},{label:"Go to Board",icon:K,action:()=>{l.push("/board"),n()}},{label:"Go to Roadmap",icon:ei,action:()=>{l.push("/roadmap"),n()}},{label:"Go to Activity",icon:ex,action:()=>{l.push("/activity"),n()}},{label:"Go to Memory",icon:H,action:()=>{l.push("/memory"),n()}}];function b(e){s(e.path),n()}(0,r.useEffect)(()=>{e||(c(""),p([]),m(0))},[e]),(0,r.useEffect)(()=>{if(d.length<2){p([]),m(0);return}let e=setTimeout(async()=>{try{let e=await fetch(`/api/docs${i}&q=${encodeURIComponent(d)}`),t=await e.json();p(t.results?.map(e=>({path:e.file,section:e.file.split("/").slice(0,-1).join("/"),name:e.file.split("/").pop()?.replace(/\.md$/,"")??e.file}))??[]),m(0)}catch{}},300);return()=>clearTimeout(e)},[d,i]);let g=""===d;return(0,t.jsx)(eb.Dialog,{open:e,onOpenChange:e=>{e||n()},children:(0,t.jsxs)(eb.DialogContent,{className:"max-w-lg p-0 overflow-hidden bg-surface border-border gap-0",children:[(0,t.jsx)(eb.DialogTitle,{className:"sr-only",children:"Command Palette"}),(0,t.jsxs)("div",{className:"flex items-center px-4 h-12",children:[(0,t.jsx)(ep.Search,{className:"h-4 w-4 text-muted shrink-0 mr-3"}),(0,t.jsx)(j.Input,{autoFocus:!0,value:d,onChange:e=>c(e.target.value),onKeyDown:function(e){let t=u.length>0,r=t?u.length:x.length;"ArrowDown"===e.key?(e.preventDefault(),m(e=>Math.min(e+1,r-1))):"ArrowUp"===e.key?(e.preventDefault(),m(e=>Math.max(e-1,0))):"Enter"===e.key&&(t&&u[h]?b(u[h]):!t&&d.length<2&&x[h]&&x[h].action())},placeholder:"Search docs…",className:"border-0 bg-transparent h-full text-sm shadow-none focus-visible:ring-0 px-0 placeholder:text-muted"})]}),(0,t.jsx)("div",{className:"border-t border-border"}),(0,t.jsxs)(eg.ScrollArea,{className:"max-h-72",children:[g&&(0,t.jsx)("div",{className:"py-1",children:x.map((e,r)=>(0,t.jsxs)("button",{onClick:e.action,onMouseEnter:()=>m(r),className:(0,f.cn)("flex items-center gap-3 w-full px-4 py-2 text-sm text-left transition-colors",h===r?"bg-accent/10 text-txt":"text-muted hover:text-txt"),children:[(0,t.jsx)(e.icon,{className:"h-4 w-4 shrink-0"}),e.label]},e.label))}),!g&&u.length>0&&(0,t.jsx)("div",{className:"py-1",children:u.map((e,r)=>(0,t.jsxs)("button",{onClick:()=>b(e),onMouseEnter:()=>m(r),className:(0,f.cn)("flex items-center justify-between w-full px-4 py-2 text-sm text-left transition-colors",h===r?"bg-accent/10":"hover:bg-accent/5"),children:[(0,t.jsx)("span",{className:"font-medium text-txt truncate",children:e.name}),e.section&&(0,t.jsx)("span",{className:"text-xs text-muted ml-3 shrink-0 truncate max-w-[40%]",children:e.section})]},e.path))}),!g&&d.length>=2&&0===u.length&&(0,t.jsx)("div",{className:"px-4 py-6 text-center text-sm text-muted",children:"No docs found"})]})]})})}var ev=e.i(406952);let ej=/[/\-_. ]/;function ew({open:e,onClose:a,onOpenDoc:n,rootParam:s}){let[o,i]=(0,r.useState)([]),[l,d]=(0,r.useState)(""),[c,u]=(0,r.useState)(0),p=(0,r.useRef)(null),[h,m]=(0,r.useState)(e);e!==h&&(m(e),e&&(d(""),u(0))),(0,r.useEffect)(()=>{e&&fetch(`/api/docs${s}`).then(e=>e.json()).then(e=>i(Array.isArray(e)?e:[])).catch(()=>i([]))},[e,s]);let x=(0,r.useMemo)(()=>{var e;return e=e=>e.path,o.map(t=>({item:t,path:e(t),score:function(e,t){let r=e.toLowerCase().replace(/\s+/g,"");if(!r)return 0;let a=t.toLowerCase(),n=null;for(let e=a.indexOf(r[0]);-1!==e;e=a.indexOf(r[0],e+1)){let t=function(e,t,r){let a=t.lastIndexOf("/")+1,n=0,s=0,o=-2;for(let i=r;i<t.length&&s<e.length;i++)t[i]===e[s]&&(n+=1,i===o+1&&(n+=5),(0===i||ej.test(t[i-1]))&&(n+=8),i>=a&&(n+=3),o=i,s++);return s===e.length?n:null}(r,a,e);null!==t&&(null===n||t>n)&&(n=t)}return n}(l,e(t))})).filter(e=>null!==e.score).sort((e,t)=>t.score-e.score||e.path.length-t.path.length).map(e=>e.item)},[l,o]),b=x.slice(0,50);function g(e){e&&(n(e.path),a())}return(0,r.useEffect)(()=>{p.current?.querySelector(`[data-index="${c}"]`)?.scrollIntoView({block:"nearest"})},[c]),(0,t.jsx)(eb.Dialog,{open:e,onOpenChange:e=>{e||a()},children:(0,t.jsxs)(eb.DialogContent,{className:"max-w-xl p-0 overflow-hidden bg-surface border-border gap-0 top-[20%] translate-y-0",children:[(0,t.jsx)(eb.DialogTitle,{className:"sr-only",children:"Go to file"}),(0,t.jsx)(j.Input,{autoFocus:!0,value:l,onChange:e=>{d(e.target.value),u(0)},onKeyDown:function(e){"ArrowDown"===e.key||e.ctrlKey&&"n"===e.key?(e.preventDefault(),u(e=>Math.min(e+1,b.length-1))):"ArrowUp"===e.key||e.ctrlKey&&"p"===e.key?(e.preventDefault(),u(e=>Math.max(e-1,0))):"Enter"===e.key&&(e.preventDefault(),g(b[c]))},placeholder:"Go to file…",className:"h-11 rounded-none border-0 border-b border-border bg-transparent px-4 text-sm shadow-none focus-visible:ring-0 placeholder:text-muted"}),(0,t.jsxs)("div",{ref:p,className:"max-h-80 overflow-y-auto py-1",children:[b.map((e,r)=>{let a=e.path.lastIndexOf("/");return(0,t.jsxs)("button",{"data-index":r,onClick:()=>g(e),onMouseMove:()=>u(r),className:(0,f.cn)("flex items-center gap-2.5 w-full px-4 py-1.5 text-left text-sm transition-colors",c===r?"bg-accent/10 text-txt":"text-muted"),children:[(0,t.jsx)(ev.FileText,{className:"h-3.5 w-3.5 shrink-0 opacity-60"}),(0,t.jsx)("span",{className:"truncate text-txt",children:e.path.slice(a+1)}),a>0&&(0,t.jsx)("span",{className:"truncate text-xs text-muted",children:e.path.slice(0,a)})]},e.path)}),0===b.length&&(0,t.jsx)("div",{className:"px-4 py-6 text-center text-sm text-muted",children:"No matching files"}),x.length>50&&(0,t.jsxs)("div",{className:"px-4 py-1.5 text-xs text-muted",children:[x.length-50," more β€” keep typing to narrow"]})]})]})})}var eN=e.i(91881),ek=e.i(998822);function eS({proposal:e,onResolve:a}){let{rootParam:s,openDoc:o}=(0,n.useApp)(),[i,l]=(0,r.useState)(null),[d,c]=(0,r.useState)(null),[u,p]=(0,r.useState)(!1);(0,r.useEffect)(()=>{fetch(`/api/docs${s}&read=${encodeURIComponent(e.path)}`).then(e=>e.ok?e.json():null).then(t=>l(t?.path===e.path.replace(/^\.\//,"")&&"string"==typeof t.content?t.content:"")).catch(()=>l(""))},[e.path,s]);let h=(0,r.useMemo)(()=>null===i?null:function(e,t){let r=e;for(let[e,a]of t.entries()){if("string"!=typeof a?.old_string||"string"!=typeof a?.new_string)return{error:`Edit ${e+1}: old_string and new_string must be strings`};if(""===a.old_string){if(""!==r)return{error:`Edit ${e+1}: empty old_string is only allowed for a new, empty doc`};r=a.new_string;continue}let t=r.indexOf(a.old_string);if(-1===t)return{error:`Edit ${e+1}: old_string not found in the doc`};if(-1!==r.indexOf(a.old_string,t+1))return{error:`Edit ${e+1}: old_string matches more than once; include more surrounding text`};r=r.slice(0,t)+a.new_string+r.slice(t+a.old_string.length)}return{content:r}}(i,e.edits),[i,e.edits]),m=null!==h&&"error"in h?h.error:null,x=(0,r.useMemo)(()=>{var e;let t,r;return null===i||!h||"error"in h?[]:(t=(e=function(e,t){let r=e.split("\n"),a=t.split("\n"),n=0;for(;n<r.length&&n<a.length&&r[n]===a[n];)n++;let s=r.length,o=a.length;for(;s>n&&o>n&&r[s-1]===a[o-1];)s--,o--;let i=r.slice(n,s),l=a.slice(n,o),d=Array.from({length:i.length+1},()=>Array(l.length+1).fill(0));for(let e=i.length-1;e>=0;e--)for(let t=l.length-1;t>=0;t--)d[e][t]=i[e]===l[t]?d[e+1][t+1]+1:Math.max(d[e+1][t],d[e][t+1]);let c=[],u=0,p=0;for(;u<i.length||p<l.length;)u<i.length&&p<l.length&&i[u]===l[p]?(c.push({op:" ",text:i[u]}),u++,p++):u<i.length&&(p===l.length||d[u+1][p]>=d[u][p+1])?(c.push({op:"-",text:i[u]}),u++):(c.push({op:"+",text:l[p]}),p++);return[...r.slice(0,n).map(e=>({op:" ",text:e})),...c,...r.slice(s).map(e=>({op:" ",text:e}))]}(i,h.content)).map(()=>!1),e.forEach((r,a)=>{if(" "!==r.op)for(let r=Math.max(0,a-2);r<=Math.min(e.length-1,a+2);r++)t[r]=!0}),r=[],e.forEach((e,a)=>{t[a]?r.push(e):"number"==typeof r[r.length-1]?r[r.length-1]=r[r.length-1]+1:r.push(1)}),r)},[i,h]),b=x.filter(e=>"number"!=typeof e&&"+"===e.op).length,g=x.filter(e=>"number"!=typeof e&&"-"===e.op).length;async function y(){p(!0),c(null);try{let t=await fetch(`/api/docs${s}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e.path,edits:e.edits,actor:"ai"})});if(!t.ok)throw Error((await t.json().catch(()=>null))?.error??"Save failed");a("accepted")}catch(e){c(e.message)}finally{p(!1)}}return(0,t.jsxs)("div",{className:"my-2 rounded-md border border-border overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 bg-surface2 border-b border-border",children:[(0,t.jsx)("button",{onClick:()=>o(e.path),className:"text-xs font-mono text-accent truncate hover:underline",title:e.path,children:e.path}),(0,t.jsxs)("span",{className:"text-[10px] font-mono text-teal-400",children:["+",b]}),(0,t.jsxs)("span",{className:"text-[10px] font-mono text-red-400",children:["-",g]})]}),e.summary&&(0,t.jsx)("div",{className:"px-2 py-1 text-xs text-muted border-b border-border",children:e.summary}),(0,t.jsxs)("div",{className:"max-h-72 overflow-auto text-[11px] font-mono leading-5",children:[null===i&&(0,t.jsx)("div",{className:"px-2 py-1 text-muted",children:"Loading diff…"}),m&&(0,t.jsxs)("div",{className:"px-2 py-1 text-red-400",children:["Doc changed since this proposal (",m,"). Ask the agent to propose again."]}),null!==i&&!m&&0===x.length&&(0,t.jsx)("div",{className:"px-2 py-1 text-muted",children:"No changes"}),x.map((e,r)=>"number"==typeof e?(0,t.jsxs)("div",{className:"px-2 text-muted bg-surface2/50",children:["β‹― ",e," unchanged line",e>1?"s":""]},r):(0,t.jsxs)("div",{className:(0,f.cn)("px-2 whitespace-pre-wrap break-words","+"===e.op&&"bg-teal-500/10 text-teal-300","-"===e.op&&"bg-red-500/10 text-red-300 line-through decoration-red-400/40"),children:[e.op," ",e.text||" "]},r))]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 border-t border-border",children:["pending"===e.status?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{onClick:y,disabled:u||null===i||!!m,className:"text-xs px-2 py-0.5 rounded-sm bg-accent/20 text-accent hover:bg-accent/30 disabled:opacity-50",children:u?"Applying…":"Accept"}),(0,t.jsx)("button",{onClick:()=>a("rejected"),disabled:u,className:"text-xs px-2 py-0.5 rounded-sm text-muted hover:text-txt",children:"Reject"})]}):(0,t.jsx)("span",{className:(0,f.cn)("text-xs","accepted"===e.status?"text-teal-400":"text-muted"),children:"accepted"===e.status?"βœ“ Applied":"Rejected"}),d&&(0,t.jsx)("span",{className:"text-xs text-red-400 truncate",children:d})]})]})}function eE({proposal:e,onResolve:a}){let{rootParam:s,openDoc:o}=(0,n.useApp)(),i=e.plan,l="breakdown"===i.kind?i.tasks:[],d="roadmap"===i.kind?i.horizons??[]:[],c="roadmap"===i.kind?i.epics??[]:[],u="breakdown"===i.kind?(i.epic??"").trim().toUpperCase():"",p="breakdown"===i.kind?i.newEpic:void 0,[f,h]=(0,r.useState)(new Map),[m,x]=(0,r.useState)(new Set),[b,g]=(0,r.useState)(null),[y,v]=(0,r.useState)(null),[j,w]=(0,r.useState)(!1);(0,r.useEffect)(()=>{fetch(`/api/roadmap${s}`).then(e=>e.ok?e.json():null).then(e=>h(new Map((e?.items??[]).map(e=>[e.id,e.title])))).catch(()=>h(new Map))},[s]);let N=("breakdown"===i.kind?l.map(e=>e.key):[...d,...c].map(e=>e.key)).filter(e=>!m.has(e)),k="pending"===e.status,S=new Set(d.map(e=>e.key)),E=(e,r,a,n,s=!1)=>(0,t.jsx)(e_,{rowKey:e,title:r,meta:a,body:n,indent:s,checked:!m.has(e),disabled:!k||j,onToggle:()=>{v(null),x(t=>{let r=new Set(t),a=r.has(e);for(let t of S.has(e)?[e,...c.filter(t=>t.parent.trim()===e).map(e=>e.key)]:[e])a?r.delete(t):r.add(t);let n=c.find(t=>t.key===e)?.parent.trim();return a&&n&&S.has(n)&&r.delete(n),r})},open:b===e,onOpen:()=>g(b===e?null:e)},e),_=e=>e.trim().split("\n")[0]??"",C=[...new Set(c.map(e=>e.parent.trim()).filter(e=>!S.has(e)))];async function A(){w(!0),v(null);try{let e=await fetch(`/api/plan/apply${s}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({plan:i,selected:N})}),t=await e.json().catch(()=>null);if(!e.ok)throw Error(t?.error??`Apply failed (${e.status})`);a("accepted",t?.created??[],[...m])}catch(e){v(e.message)}finally{w(!1)}}return(0,t.jsxs)("div",{className:"my-2 rounded-md border border-border overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 bg-surface2 border-b border-border",children:[(0,t.jsx)("span",{className:"text-[10px] font-mono uppercase tracking-widest text-muted",children:"Plan"}),"breakdown"===i.kind?(0,t.jsxs)(t.Fragment,{children:[u?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-xs font-mono text-accent",children:u}),(0,t.jsx)("span",{className:"text-xs text-txt truncate",children:f.get(u)??""})]}):p?(0,t.jsxs)("span",{className:"text-xs text-txt truncate",children:["New epic: ",p.title,(0,t.jsxs)("span",{className:"text-muted",children:[" (under ",p.parent.trim().toUpperCase()," ",f.get(p.parent.trim().toUpperCase())??"",")"]})]}):(0,t.jsx)("span",{className:"text-xs text-muted",children:"No epic"}),(0,t.jsxs)("span",{className:"ml-auto text-[10px] font-mono text-muted",children:[l.length," tasks"]})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-xs text-txt",children:"Roadmap"}),(0,t.jsxs)("span",{className:"ml-auto text-[10px] font-mono text-muted",children:[d.length?`${d.length} horizons \xb7 `:"",c.length," epics"]})]})]}),(0,t.jsxs)("ul",{className:"max-h-80 overflow-auto",children:[l.map(e=>E(e.key,e.title,[e.size,e.dependsOn?.length?`after ${e.dependsOn.join(", ")}`:null,e.due?`due ${e.due}`:null].filter(Boolean).join(" Β· "),e.body)),d.map(e=>[E(e.key,e.title,"new horizon",e.body),...c.filter(t=>t.parent.trim()===e.key).map(e=>E(e.key,e.title,_(e.body),e.body,!0))]),C.map(e=>[(0,t.jsxs)("li",{className:"px-2 py-1.5 border-b border-border text-xs text-muted",children:[(0,t.jsx)("span",{className:"font-mono text-accent mr-1",children:e.toUpperCase()}),f.get(e.toUpperCase())??""]},`parent-${e}`),...c.filter(t=>t.parent.trim()===e).map(e=>E(e.key,e.title,_(e.body),e.body,!0))])]}),y&&(0,t.jsx)("div",{className:"px-2 py-1 text-xs text-red-400 whitespace-pre-wrap border-t border-border",children:y}),(0,t.jsx)("div",{className:"flex items-center gap-2 px-2 py-1.5 border-t border-border",children:k?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{onClick:A,disabled:j||0===N.length,className:"text-xs px-2 py-0.5 rounded-sm bg-accent/20 text-accent hover:bg-accent/30 disabled:opacity-50",children:j?"Creating…":`Accept (${N.length})`}),(0,t.jsx)("button",{onClick:()=>a("rejected",[],[]),disabled:j,className:"text-xs px-2 py-0.5 rounded-sm text-muted hover:text-txt",children:"Reject"})]}):"accepted"===e.status?(0,t.jsxs)("span",{className:"text-xs text-teal-400",children:["βœ“ Created"," ",(e.created??[]).map((e,r)=>(0,t.jsxs)("span",{children:[r>0&&", ",(0,t.jsx)("button",{onClick:()=>o(e.file),className:"font-mono hover:underline",children:e.id})]},e.id))]}):(0,t.jsx)("span",{className:"text-xs text-muted",children:"Rejected"})})]})}function e_({rowKey:e,title:r,meta:a,body:n,indent:s,checked:o,disabled:i,onToggle:l,open:d,onOpen:c}){return(0,t.jsxs)("li",{"data-plan-row":e,className:"border-b border-border last:border-b-0",children:[(0,t.jsxs)("div",{className:(0,f.cn)("flex items-start gap-2 px-2 py-1.5",s&&"pl-6"),children:[(0,t.jsx)("input",{type:"checkbox","aria-label":`Include ${r}`,checked:o,disabled:i,onChange:l,className:"mt-0.5 accent-accent"}),(0,t.jsxs)("button",{onClick:c,className:"flex-1 min-w-0 text-left",children:[(0,t.jsxs)("div",{className:(0,f.cn)("text-xs text-txt",!o&&"line-through text-muted"),children:[(0,t.jsx)("span",{className:"font-mono text-muted mr-1",children:e}),r]}),a&&(0,t.jsx)("div",{className:"text-[10px] font-mono text-muted truncate",children:a})]})]}),d&&n&&(0,t.jsx)("div",{className:"px-3 pb-2 border-t border-border bg-surface2/40",children:(0,t.jsx)(ek.MarkdownRenderer,{content:n,className:"text-xs"})})]})}let eC="\0other";function eA({set:e,disabled:a,onSubmit:n}){let[s,o]=(0,r.useState)(()=>e.questions.map(()=>[])),[i,l]=(0,r.useState)(()=>e.questions.map(()=>"")),d=!!e.answers,c=e.questions.map((e,t)=>{let r=e.options.map(e=>e.label).filter(e=>s[t].includes(e));return s[t].includes(eC)&&i[t].trim()&&r.push(`Other: "${i[t].trim()}"`),r.join(", ")}),u=c.every(Boolean);return(0,t.jsxs)("div",{className:"my-2 rounded-md border border-border overflow-hidden","data-question-card":!0,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 bg-surface2 border-b border-border",children:[(0,t.jsx)("span",{className:"text-[10px] font-mono uppercase tracking-widest text-muted",children:"Questions"}),d&&(0,t.jsx)("span",{className:"ml-auto text-[10px] font-mono text-accent",children:"βœ“ Answered"})]}),(0,t.jsxs)("div",{className:"p-2 space-y-3",children:[e.questions.map((r,a)=>(0,t.jsxs)("fieldset",{disabled:d,className:"space-y-1",children:[(0,t.jsxs)("legend",{className:"mb-1",children:[(0,t.jsx)("span",{className:"text-[10px] font-mono px-1.5 py-0.5 rounded-sm bg-surface2 border border-border text-accent mr-1.5",children:r.header}),(0,t.jsx)("span",{className:"text-xs text-txt",children:r.question})]}),d?(0,t.jsx)("p",{className:"text-xs text-txt pl-1",children:e.answers?.[a]}):(0,t.jsxs)(t.Fragment,{children:[[...r.options,{label:"Other",value:eC}].map(n=>{let i="value"in n?n.value:n.label,l=s[a].includes(i);return(0,t.jsxs)("label",{className:(0,f.cn)("flex gap-2 items-start rounded-sm px-1 py-0.5 cursor-pointer hover:bg-surface2",l&&"bg-surface2"),children:[(0,t.jsx)("input",{type:r.multiSelect?"checkbox":"radio",name:`${e.id}-${a}`,checked:l,onChange:()=>{var e;return e=r.multiSelect,void o(t=>t.map((t,r)=>r!==a?t:e?t.includes(i)?t.filter(e=>e!==i):[...t,i]:[i]))},className:"mt-0.5 accent-accent"}),(0,t.jsxs)("span",{className:"text-xs",children:[(0,t.jsx)("span",{className:"text-txt",children:n.label}),"description"in n&&n.description&&(0,t.jsx)("span",{className:"block text-muted",children:n.description})]})]},i)}),s[a].includes(eC)&&(0,t.jsx)("input",{value:i[a],onChange:e=>l(t=>t.map((t,r)=>r===a?e.target.value:t)),placeholder:"Your answer","aria-label":`Other answer for ${r.header}`,className:"ml-6 w-[calc(100%-1.5rem)] rounded-sm bg-surface2 border border-border px-2 py-1 text-xs text-txt placeholder:text-muted focus:outline-hidden focus:border-accent"})]})]},a)),!d&&(0,t.jsx)("button",{onClick:()=>n(c),disabled:!u||a,className:"text-xs px-2 py-0.5 rounded-sm bg-accent/20 text-accent hover:bg-accent/30 disabled:opacity-50",children:"Submit"})]})]})}let eM=e=>!!e&&"object"==typeof e&&!Array.isArray(e),eT=e=>"string"==typeof e?e.trim():"";var eR=e.i(956555);function eP({onClose:e}){let{rootParam:s,activeProject:o,selectedDoc:i}=(0,n.useApp)(),l=(0,a.usePathname)(),[d,c]=(0,r.useState)([]),[u,p]=(0,r.useState)(""),[h,m]=(0,r.useState)(!1),[x,b]=(0,r.useState)(null),g=(0,r.useRef)(null),y=(0,r.useRef)(null),v=(0,r.useRef)(null),j=(0,r.useRef)([]),w="/docs"===l?i?.path:void 0;function N(e){c(t=>[...t.slice(0,-1),e(t[t.length-1])])}async function k(e){let t=(e??u).trim();if(!t||h)return;void 0===e&&p(""),b(null),m(!0),c(e=>[...e,{role:"user",text:t,tools:[],proposals:[],plans:[],questions:[]},{role:"assistant",text:"",tools:[],proposals:[],plans:[],questions:[]}]);let r=j.current.splice(0),a=r.length?`[${r.join(" ")}]
2
2
 
3
- ${t}`:t,n=new AbortController;y.current=n;try{let e=await fetch(`/api/chat${s}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:a,sessionId:g.current,docPath:w}),signal:n.signal});if(!e.ok||!e.body){let t=await e.json().catch(()=>null);throw Error(t?.error??`Request failed (${e.status})`)}let t=e.body.getReader(),r=new TextDecoder,o="";for(;;){let{done:e,value:a}=await t.read();if(e)break;let n=(o+=r.decode(a,{stream:!0})).split("\n");for(let e of(o=n.pop()??"",n))if(e.trim())try{!function(e){if(e.session_id&&(g.current=e.session_id),"stream_event"===e.type){let t=e.event;t?.type==="message_start"?N(e=>e.text&&!e.text.endsWith("\n\n")?{...e,text:e.text+"\n\n"}:e):t?.type==="content_block_delta"&&t.delta?.type==="text_delta"&&N(e=>({...e,text:e.text+t.delta.text}))}else if("assistant"===e.type){let t=(e.message?.content??[]).filter(e=>"tool_use"===e.type),r=t.filter(e=>e.name.endsWith("vibedoc_propose_edit")&&"string"==typeof e.input?.path&&Array.isArray(e.input?.edits)).map(e=>({id:e.id,path:e.input.path,edits:e.input.edits,summary:"string"==typeof e.input.summary?e.input.summary:void 0,status:"pending"})),a=t.filter(e=>e.name.endsWith("vibedoc_propose_plan")).flatMap(e=>{let t=function(e){if(!eM(e))return null;let t=(e,t)=>Array.isArray(e)&&e.every(e=>eM(e)&&t.every(t=>"string"==typeof e[t])&&(void 0===e.dependsOn||Array.isArray(e.dependsOn)));if("breakdown"===e.kind)return"string"==typeof e.epic&&t(e.tasks,["key","title"])&&e.tasks.length>0?e:null;if("roadmap"===e.kind){let r=e.horizons??[],a=e.epics??[];return t(r,["key","title"])&&t(a,["key","title","parent"])?{kind:"roadmap",horizons:r,epics:a}:null}return null}(e.input?.plan);return t?[{id:e.id,plan:t,status:"pending"}]:[]}),n=t.filter(e=>{var t;return e.name.endsWith("vibedoc_ask_questions")&&Array.isArray(t=e.input?.questions)&&t.length>0&&t.every(e=>!!e&&"object"==typeof e&&"string"==typeof e.question&&"string"==typeof e.header&&Array.isArray(e.options)&&e.options.every(e=>!!e&&"object"==typeof e&&"string"==typeof e.label))}).map(e=>({id:e.id,questions:e.input.questions})),s=["vibedoc_propose_edit","vibedoc_propose_plan","vibedoc_ask_questions"],o=t.filter(e=>!s.some(t=>e.name.endsWith(t))).map(e=>e.name.replace(/^mcp__vibedoc__vibedoc_/,""));(o.length||r.length||a.length||n.length)&&N(e=>({...e,tools:[...e.tools,...o],proposals:[...e.proposals,...r],plans:[...e.plans,...a],questions:[...e.questions,...n]}))}else if("user"===e.type){let t=new Set((e.message?.content??[]).filter(e=>"tool_result"===e.type&&e.is_error).map(e=>e.tool_use_id));t.size&&N(e=>({...e,proposals:e.proposals.filter(e=>!t.has(e.id)),plans:e.plans.filter(e=>!t.has(e.id)),questions:e.questions.filter(e=>!t.has(e.id))}))}else"result"===e.type&&e.is_error?N(t=>({...t,error:e.result??e.subtype??"Agent error"})):"error"===e.type&&N(t=>({...t,error:e.message}))}(JSON.parse(e))}catch{}}}catch(e){n.signal.aborted||N(t=>({...t,error:e.message}))}finally{m(!1)}}(0,r.useEffect)(()=>{y.current?.abort(),g.current=null,j.current=[],c([])},[o]),(0,r.useEffect)(()=>{let e=v.current;e&&(e.scrollTop=e.scrollHeight)},[d]),(0,r.useEffect)(()=>{function e(e){let t=e.detail?.message;t&&(h?b("Agent is busy. Try again when this turn finishes."):k(t))}return window.addEventListener(eT.ASK_AGENT_EVENT,e),()=>window.removeEventListener(eT.ASK_AGENT_EVENT,e)});let S=!!d[d.length-1]?.questions.some(e=>!e.answers);return(0,t.jsxs)("aside",{className:"w-[380px] h-full border-l border-border bg-surface flex flex-col",children:[(0,t.jsxs)("div",{className:"h-10 px-3 flex items-center gap-2 border-b border-border",children:[(0,t.jsx)("span",{className:"text-xs font-mono uppercase tracking-widest text-muted",children:"Agent"}),(0,t.jsx)("div",{className:"flex-1"}),(0,t.jsx)("button",{onClick:function(){y.current?.abort(),g.current=null,j.current=[],c([])},className:"text-xs text-muted hover:text-txt",children:"New chat"}),(0,t.jsx)("button",{onClick:e,className:"text-muted hover:text-txt text-lg leading-none","aria-label":"Close chat",children:"Γ—"})]}),(0,t.jsxs)("div",{ref:v,className:"flex-1 overflow-y-auto p-3 space-y-3 text-sm",children:[0===d.length&&(0,t.jsx)("p",{className:"text-muted text-xs",children:"Ask the agent to read, write or restructure docs. Runs on your local Claude Code login."}),d.map((e,r)=>(0,t.jsx)("div",{className:(0,f.cn)("user"===e.role&&"ml-8 rounded-lg bg-surface2 px-3 py-2 whitespace-pre-wrap"),children:"user"===e.role?e.text:(0,t.jsxs)(t.Fragment,{children:[e.tools.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1 mb-2",children:e.tools.map((e,r)=>(0,t.jsx)("span",{className:"text-[10px] font-mono px-1.5 py-0.5 rounded-sm bg-surface2 border border-border text-accent",children:e},r))}),e.proposals.map(e=>(0,t.jsx)(eS,{proposal:e,onResolve:t=>{var r,a;return r=e.id,a=e.path,void(j.current.push(`User ${t} your proposed edit to ${a}.`),c(e=>e.map(e=>({...e,proposals:e.proposals.map(e=>e.id===r?{...e,status:t}:e)}))))}},e.id)),e.plans.map(e=>(0,t.jsx)(e_,{proposal:e,onResolve:(t,r,a)=>{let n;return n="breakdown"===e.plan.kind?e.plan.epic.toUpperCase():"the roadmap",void(j.current.push("accepted"===t?`User accepted plan for ${n}: created ${r.map(e=>e.id).join(", ")}${a.length?` (unchecked: ${a.join(", ")})`:""}.`:`User rejected the plan for ${n}.`),c(a=>a.map(a=>({...a,plans:a.plans.map(a=>a.id===e.id?{...a,status:t,created:r}:a)}))))}},e.id)),e.questions.map(e=>(0,t.jsx)(eA,{set:e,disabled:h,onSubmit:t=>(function(e,t){if(!h){var r;c(r=>r.map(r=>({...r,questions:r.questions.map(r=>r.id===e.id?{...r,answers:t}:r)}))),k((r=e.questions,["Answers:",...r.map((e,r)=>`- ${e.header}: ${t[r]}`)].join("\n")))}})(e,t)},e.id)),e.text&&(0,t.jsx)(ek.MarkdownRenderer,{content:e.text,className:"text-sm"}),!e.text&&!e.error&&h&&r===d.length-1&&(0,t.jsx)("span",{className:"text-muted text-xs",children:"Thinking…"}),e.error&&(0,t.jsx)("p",{className:"text-red-400 text-xs whitespace-pre-wrap",children:e.error})]})},r))]}),(0,t.jsxs)("div",{className:"border-t border-border p-2",children:[x&&(0,t.jsx)("div",{className:"text-[11px] text-amber px-1 pb-1",children:x}),w&&(0,t.jsxs)("div",{className:"text-[10px] font-mono text-muted px-1 pb-1 truncate",children:["@ ",w]}),(0,t.jsx)("textarea",{value:u,onChange:e=>p(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),k())},rows:3,placeholder:h?"Agent is working…":S?"Answer the questions above…":"Ask the agent… (Enter to send)",className:"w-full resize-none rounded-md bg-surface2 border border-border px-2 py-1.5 text-sm text-txt placeholder:text-muted focus:outline-hidden focus:border-accent"})]})]})}let eP=[{key:"Cmd+K",description:"Open command palette"},{key:"Cmd+P",description:"Go to file"},{key:"b",description:"Go to Board"},{key:"d",description:"Go to Docs"},{key:"a",description:"Go to Activity"},{key:"m",description:"Go to Memory"},{key:"e",description:"Go to Explorer"},{key:"c",description:"Toggle agent chat"},{key:"/",description:"Focus doc search"},{key:"?",description:"Toggle this help"},{key:"Esc",description:"Close panel / modal"}];function eO({children:e}){let{loading:s,summary:o,projects:i,activeProject:d,liveIndicator:c,onProjectChange:u,board:p,openDoc:h,rootParam:m}=(0,n.useApp)(),x=(0,a.useRouter)(),b=(0,a.usePathname)(),[g,y]=(0,r.useState)(!1),[v,j]=(0,r.useState)(!1),[w,N]=(0,r.useState)(!1),[k,S]=(0,r.useState)(!1),[_,C]=(0,r.useState)(!1);return((0,r.useEffect)(()=>{function e(e){if((e.metaKey||e.ctrlKey)&&"k"===e.key){e.preventDefault(),j(e=>!e);return}if((e.metaKey||e.ctrlKey)&&"p"===e.key){e.preventDefault(),j(!1),N(e=>!e);return}let t=e.target?.tagName;if("INPUT"!==t&&"TEXTAREA"!==t)switch(e.key){case"b":x.push("/board");break;case"d":x.push("/docs");break;case"a":x.push("/activity");break;case"m":x.push("/memory");break;case"e":x.push("/explorer");break;case"c":C(e=>!e);break;case"?":y(e=>!e);break;case"Escape":y(!1);break;case"/":e.preventDefault(),"/docs"===b?document.getElementById("doc-search")?.focus():x.push("/docs")}}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[x,b]),(0,r.useEffect)(()=>{let e=()=>C(!0);return window.addEventListener(eT.ASK_AGENT_EVENT,e),()=>window.removeEventListener(eT.ASK_AGENT_EVENT,e)},[]),s)?(0,t.jsx)(l,{}):(0,t.jsxs)(E,{children:[(0,t.jsx)(eu,{board:p}),(0,t.jsxs)(T,{className:"min-w-0",children:[(0,t.jsx)(B,{summary:o,projects:i,activeProject:d,liveIndicator:c,onProjectChange:u,onToggleChat:()=>C(e=>!e)}),(0,t.jsxs)("div",{className:"flex flex-1 min-h-0",children:[(0,t.jsx)("main",{className:"flex-1 overflow-y-auto",children:e}),(0,t.jsx)("div",{inert:!_,className:(0,f.cn)("shrink-0 overflow-hidden sticky top-12 h-[calc(100svh-3rem)] transition-[width] duration-[var(--duration-slow)] ease-out-soft",_?"w-[380px]":"w-0"),children:(0,t.jsx)(eR,{onClose:()=>C(!1)})})]}),(0,t.jsx)(ew,{open:w,onClose:()=>N(!1),onOpenDoc:h,rootParam:m}),(0,t.jsx)(ey,{open:v,onClose:()=>j(!1),onOpenDoc:h,onNewDoc:()=>{j(!1),S(!0)},rootParam:m}),(0,t.jsx)(eN.NewDocModal,{open:k,onOpenChange:S,rootParam:m,onDocCreated:async e=>{await h(e)}}),(0,t.jsx)(eb.Dialog,{open:g,onOpenChange:y,children:(0,t.jsxs)(eb.DialogContent,{"aria-describedby":void 0,className:"block w-80 p-5 rounded-xl sm:rounded-xl shadow-2xl",children:[(0,t.jsx)(eb.DialogTitle,{className:"font-display text-sm font-semibold text-txt mb-4",children:"Keyboard shortcuts"}),(0,t.jsx)("table",{className:"w-full text-xs",children:(0,t.jsx)("tbody",{children:eP.map(({key:e,description:r})=>(0,t.jsxs)("tr",{className:"border-t border-border first:border-0",children:[(0,t.jsx)("td",{className:"py-1.5 pr-4",children:(0,t.jsx)("kbd",{className:"font-mono bg-surface2 border border-border rounded-sm px-1.5 py-0.5 text-accent",children:e})}),(0,t.jsx)("td",{className:"py-1.5 text-muted",children:r})]},e))})})]})})]})]})}e.s(["default",0,function({children:e}){return(0,t.jsxs)(n.AppProvider,{children:[(0,t.jsx)(i,{}),(0,t.jsx)(eO,{children:e})]})}],588537)}]);
3
+ ${t}`:t,n=new AbortController;y.current=n;try{let e=await fetch(`/api/chat${s}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:a,sessionId:g.current,docPath:w}),signal:n.signal});if(!e.ok||!e.body){let t=await e.json().catch(()=>null);throw Error(t?.error??`Request failed (${e.status})`)}let t=e.body.getReader(),r=new TextDecoder,o="";for(;;){let{done:e,value:a}=await t.read();if(e)break;let n=(o+=r.decode(a,{stream:!0})).split("\n");for(let e of(o=n.pop()??"",n))if(e.trim())try{!function(e){if(e.session_id&&(g.current=e.session_id),"stream_event"===e.type){let t=e.event;t?.type==="message_start"?N(e=>e.text&&!e.text.endsWith("\n\n")?{...e,text:e.text+"\n\n"}:e):t?.type==="content_block_delta"&&t.delta?.type==="text_delta"&&N(e=>({...e,text:e.text+t.delta.text}))}else if("assistant"===e.type){let t=(e.message?.content??[]).filter(e=>"tool_use"===e.type),r=t.filter(e=>e.name.endsWith("vibedoc_propose_edit")&&"string"==typeof e.input?.path&&Array.isArray(e.input?.edits)).map(e=>({id:e.id,path:e.input.path,edits:e.input.edits,summary:"string"==typeof e.input.summary?e.input.summary:void 0,status:"pending"})),a=t.filter(e=>e.name.endsWith("vibedoc_propose_plan")).flatMap(e=>{let t=function(e){if(!eM(e))return null;let t=(e,t)=>Array.isArray(e)&&e.every(e=>eM(e)&&t.every(t=>"string"==typeof e[t])&&(void 0===e.dependsOn||Array.isArray(e.dependsOn)));if("breakdown"===e.kind){let r=void 0===e.epic||"string"==typeof e.epic,a=void 0===e.newEpic||eM(e.newEpic)&&"string"==typeof e.newEpic.title&&"string"==typeof e.newEpic.parent;return r&&a&&t(e.tasks,["key","title"])&&e.tasks.length>0?e:null}if("roadmap"===e.kind){let r=e.horizons??[],a=e.epics??[];return t(r,["key","title"])&&t(a,["key","title","parent"])?{kind:"roadmap",horizons:r,epics:a}:null}return null}(e.input?.plan);return t?[{id:e.id,plan:t,status:"pending"}]:[]}),n=t.filter(e=>{var t;return e.name.endsWith("vibedoc_ask_questions")&&Array.isArray(t=e.input?.questions)&&t.length>0&&t.every(e=>!!e&&"object"==typeof e&&"string"==typeof e.question&&"string"==typeof e.header&&Array.isArray(e.options)&&e.options.every(e=>!!e&&"object"==typeof e&&"string"==typeof e.label))}).map(e=>({id:e.id,questions:e.input.questions})),s=["vibedoc_propose_edit","vibedoc_propose_plan","vibedoc_ask_questions"],o=t.filter(e=>!s.some(t=>e.name.endsWith(t))).map(e=>e.name.replace(/^mcp__vibedoc__vibedoc_/,""));(o.length||r.length||a.length||n.length)&&N(e=>({...e,tools:[...e.tools,...o],proposals:[...e.proposals,...r],plans:[...e.plans,...a],questions:[...e.questions,...n]}))}else if("user"===e.type){let t=new Set((e.message?.content??[]).filter(e=>"tool_result"===e.type&&e.is_error).map(e=>e.tool_use_id));t.size&&N(e=>({...e,proposals:e.proposals.filter(e=>!t.has(e.id)),plans:e.plans.filter(e=>!t.has(e.id)),questions:e.questions.filter(e=>!t.has(e.id))}))}else"result"===e.type&&e.is_error?N(t=>({...t,error:e.result??e.subtype??"Agent error"})):"error"===e.type&&N(t=>({...t,error:e.message}))}(JSON.parse(e))}catch{}}}catch(e){n.signal.aborted||N(t=>({...t,error:e.message}))}finally{m(!1)}}(0,r.useEffect)(()=>{y.current?.abort(),g.current=null,j.current=[],c([])},[o]),(0,r.useEffect)(()=>{let e=v.current;e&&(e.scrollTop=e.scrollHeight)},[d]),(0,r.useEffect)(()=>{function e(e){let t=e.detail?.message;t&&(h?b("Agent is busy. Try again when this turn finishes."):k(t))}return window.addEventListener(eR.ASK_AGENT_EVENT,e),()=>window.removeEventListener(eR.ASK_AGENT_EVENT,e)});let S=!!d[d.length-1]?.questions.some(e=>!e.answers);return(0,t.jsxs)("aside",{className:"w-[380px] h-full border-l border-border bg-surface flex flex-col",children:[(0,t.jsxs)("div",{className:"h-10 px-3 flex items-center gap-2 border-b border-border",children:[(0,t.jsx)("span",{className:"text-xs font-mono uppercase tracking-widest text-muted",children:"Agent"}),(0,t.jsx)("div",{className:"flex-1"}),(0,t.jsx)("button",{onClick:function(){y.current?.abort(),g.current=null,j.current=[],c([])},className:"text-xs text-muted hover:text-txt",children:"New chat"}),(0,t.jsx)("button",{onClick:e,className:"text-muted hover:text-txt text-lg leading-none","aria-label":"Close chat",children:"Γ—"})]}),(0,t.jsxs)("div",{ref:v,className:"flex-1 overflow-y-auto p-3 space-y-3 text-sm",children:[0===d.length&&(0,t.jsx)("p",{className:"text-muted text-xs",children:"Ask the agent to read, write or restructure docs. Runs on your local Claude Code login."}),d.map((e,r)=>(0,t.jsx)("div",{className:(0,f.cn)("user"===e.role&&"ml-8 rounded-lg bg-surface2 px-3 py-2 whitespace-pre-wrap"),children:"user"===e.role?e.text:(0,t.jsxs)(t.Fragment,{children:[e.tools.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1 mb-2",children:e.tools.map((e,r)=>(0,t.jsx)("span",{className:"text-[10px] font-mono px-1.5 py-0.5 rounded-sm bg-surface2 border border-border text-accent",children:e},r))}),e.proposals.map(e=>(0,t.jsx)(eS,{proposal:e,onResolve:t=>{var r,a;return r=e.id,a=e.path,void(j.current.push(`User ${t} your proposed edit to ${a}.`),c(e=>e.map(e=>({...e,proposals:e.proposals.map(e=>e.id===r?{...e,status:t}:e)}))))}},e.id)),e.plans.map(e=>(0,t.jsx)(eE,{proposal:e,onResolve:(t,r,a)=>{var n;let s;return s="breakdown"===e.plan.kind?eT((n=e.plan).epic)?eT(n.epic).toUpperCase():n.newEpic?`new epic "${eT(n.newEpic.title)}"`:"no epic":"the roadmap",void(j.current.push("accepted"===t?`User accepted plan for ${s}: created ${r.map(e=>e.id).join(", ")}${a.length?` (unchecked: ${a.join(", ")})`:""}.`:`User rejected the plan for ${s}.`),c(a=>a.map(a=>({...a,plans:a.plans.map(a=>a.id===e.id?{...a,status:t,created:r}:a)}))))}},e.id)),e.questions.map(e=>(0,t.jsx)(eA,{set:e,disabled:h,onSubmit:t=>(function(e,t){if(!h){var r;c(r=>r.map(r=>({...r,questions:r.questions.map(r=>r.id===e.id?{...r,answers:t}:r)}))),k((r=e.questions,["Answers:",...r.map((e,r)=>`- ${e.header}: ${t[r]}`)].join("\n")))}})(e,t)},e.id)),e.text&&(0,t.jsx)(ek.MarkdownRenderer,{content:e.text,className:"text-sm"}),!e.text&&!e.error&&h&&r===d.length-1&&(0,t.jsx)("span",{className:"text-muted text-xs",children:"Thinking…"}),e.error&&(0,t.jsx)("p",{className:"text-red-400 text-xs whitespace-pre-wrap",children:e.error})]})},r))]}),(0,t.jsxs)("div",{className:"border-t border-border p-2",children:[x&&(0,t.jsx)("div",{className:"text-[11px] text-amber px-1 pb-1",children:x}),w&&(0,t.jsxs)("div",{className:"text-[10px] font-mono text-muted px-1 pb-1 truncate",children:["@ ",w]}),(0,t.jsx)("textarea",{value:u,onChange:e=>p(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),k())},rows:3,placeholder:h?"Agent is working…":S?"Answer the questions above…":"Ask the agent… (Enter to send)",className:"w-full resize-none rounded-md bg-surface2 border border-border px-2 py-1.5 text-sm text-txt placeholder:text-muted focus:outline-hidden focus:border-accent"})]})]})}let eO=[{key:"Cmd+K",description:"Open command palette"},{key:"Cmd+P",description:"Go to file"},{key:"b",description:"Go to Board"},{key:"d",description:"Go to Docs"},{key:"a",description:"Go to Activity"},{key:"m",description:"Go to Memory"},{key:"e",description:"Go to Explorer"},{key:"c",description:"Toggle agent chat"},{key:"/",description:"Focus doc search"},{key:"?",description:"Toggle this help"},{key:"Esc",description:"Close panel / modal"}];function e$({children:e}){let{loading:s,summary:o,projects:i,activeProject:d,liveIndicator:c,onProjectChange:u,board:p,openDoc:h,rootParam:m}=(0,n.useApp)(),x=(0,a.useRouter)(),b=(0,a.usePathname)(),[g,y]=(0,r.useState)(!1),[v,j]=(0,r.useState)(!1),[w,N]=(0,r.useState)(!1),[k,S]=(0,r.useState)(!1),[E,_]=(0,r.useState)(!1);return((0,r.useEffect)(()=>{function e(e){if((e.metaKey||e.ctrlKey)&&"k"===e.key){e.preventDefault(),j(e=>!e);return}if((e.metaKey||e.ctrlKey)&&"p"===e.key){e.preventDefault(),j(!1),N(e=>!e);return}let t=e.target?.tagName;if("INPUT"!==t&&"TEXTAREA"!==t)switch(e.key){case"b":x.push("/board");break;case"d":x.push("/docs");break;case"a":x.push("/activity");break;case"m":x.push("/memory");break;case"e":x.push("/explorer");break;case"c":_(e=>!e);break;case"?":y(e=>!e);break;case"Escape":y(!1);break;case"/":e.preventDefault(),"/docs"===b?document.getElementById("doc-search")?.focus():x.push("/docs")}}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[x,b]),(0,r.useEffect)(()=>{let e=()=>_(!0);return window.addEventListener(eR.ASK_AGENT_EVENT,e),()=>window.removeEventListener(eR.ASK_AGENT_EVENT,e)},[]),s)?(0,t.jsx)(l,{}):(0,t.jsxs)(C,{children:[(0,t.jsx)(eu,{board:p}),(0,t.jsxs)(T,{className:"min-w-0",children:[(0,t.jsx)(B,{summary:o,projects:i,activeProject:d,liveIndicator:c,onProjectChange:u,onToggleChat:()=>_(e=>!e)}),(0,t.jsxs)("div",{className:"flex flex-1 min-h-0",children:[(0,t.jsx)("main",{className:"flex-1 overflow-y-auto",children:e}),(0,t.jsx)("div",{inert:!E,className:(0,f.cn)("shrink-0 overflow-hidden sticky top-12 h-[calc(100svh-3rem)] transition-[width] duration-[var(--duration-slow)] ease-out-soft",E?"w-[380px]":"w-0"),children:(0,t.jsx)(eP,{onClose:()=>_(!1)})})]}),(0,t.jsx)(ew,{open:w,onClose:()=>N(!1),onOpenDoc:h,rootParam:m}),(0,t.jsx)(ey,{open:v,onClose:()=>j(!1),onOpenDoc:h,onNewDoc:()=>{j(!1),S(!0)},rootParam:m}),(0,t.jsx)(eN.NewDocModal,{open:k,onOpenChange:S,rootParam:m,onDocCreated:async e=>{await h(e)}}),(0,t.jsx)(eb.Dialog,{open:g,onOpenChange:y,children:(0,t.jsxs)(eb.DialogContent,{"aria-describedby":void 0,className:"block w-80 p-5 rounded-xl sm:rounded-xl shadow-2xl",children:[(0,t.jsx)(eb.DialogTitle,{className:"font-display text-sm font-semibold text-txt mb-4",children:"Keyboard shortcuts"}),(0,t.jsx)("table",{className:"w-full text-xs",children:(0,t.jsx)("tbody",{children:eO.map(({key:e,description:r})=>(0,t.jsxs)("tr",{className:"border-t border-border first:border-0",children:[(0,t.jsx)("td",{className:"py-1.5 pr-4",children:(0,t.jsx)("kbd",{className:"font-mono bg-surface2 border border-border rounded-sm px-1.5 py-0.5 text-accent",children:e})}),(0,t.jsx)("td",{className:"py-1.5 text-muted",children:r})]},e))})})]})})]})]})}e.s(["default",0,function({children:e}){return(0,t.jsxs)(n.AppProvider,{children:[(0,t.jsx)(i,{}),(0,t.jsx)(e$,{children:e})]})}],588537)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,837001,e=>{"use strict";var t=e.i(83790);let a={name:"check",size:24,node:[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]};a.node;let s=(0,t.default)(a);e.s(["Check",0,s],837001)},675964,e=>{"use strict";var t=e.i(83790);let a={name:"chevron-right",size:24,node:[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]};a.node;let s=(0,t.default)(a);e.s(["ChevronRight",0,s],675964)},406952,e=>{"use strict";var t=e.i(83790);let a={name:"file-text",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]};a.node;let s=(0,t.default)(a);e.s(["FileText",0,s],406952)},788293,463464,e=>{"use strict";var t=e.i(83790);let a={name:"zap",size:24,node:[["path",{d:"M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z",key:"1v7up4"}]]};a.node;let s=(0,t.default)(a);e.s(["Zap",0,s],788293);let o={name:"settings",size:24,node:[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]};o.node;let i=(0,t.default)(o);e.s(["Settings",0,i],463464)},528427,e=>{e.v(t=>Promise.all(["static/chunks/3wehcul43z-up.js","static/chunks/090qol92bm3lm.js","static/chunks/16amofje8v-rw.js","static/chunks/2a46a9zwq8i_j.js","static/chunks/3rmz5_d6ve6ut.js","static/chunks/3ezb3p4b8ibl2.js","static/chunks/2uhr8khh963wn.js","static/chunks/2zy289po30i-l.js","static/chunks/2rubn40gv6g5w.js","static/chunks/25-4d7lo7j_n3.js"].map(t=>e.l(t))).then(()=>t(20832)))},776639,e=>{"use strict";var t=e.i(72345),a=e.i(180338),s=e.i(287272),o=e.i(765470),i=e.i(975157);let n=s.Root;s.Trigger;let l=s.Portal;s.Close;let d=a.forwardRef(({className:e,...a},o)=>(0,t.jsx)(s.Overlay,{ref:o,className:(0,i.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...a}));d.displayName=s.Overlay.displayName;let r=a.forwardRef(({className:e,children:a,...n},r)=>(0,t.jsxs)(l,{children:[(0,t.jsx)(d,{}),(0,t.jsxs)(s.Content,{ref:r,className:(0,i.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-border bg-surface p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...n,children:[a,(0,t.jsxs)(s.Close,{className:"absolute right-4 top-4 rounded-xs opacity-70 ring-offset-bg transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-accent focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-surface2 data-[state=open]:text-muted",children:[(0,t.jsx)(o.X,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));r.displayName=s.Content.displayName;let c=({className:e,...a})=>(0,t.jsx)("div",{className:(0,i.cn)("flex flex-col space-y-1.5 text-center sm:text-left",e),...a});c.displayName="DialogHeader";let f=a.forwardRef(({className:e,...a},o)=>(0,t.jsx)(s.Title,{ref:o,className:(0,i.cn)("text-lg font-semibold leading-none tracking-tight",e),...a}));f.displayName=s.Title.displayName,a.forwardRef(({className:e,...a},o)=>(0,t.jsx)(s.Description,{ref:o,className:(0,i.cn)("text-sm text-muted",e),...a})).displayName=s.Description.displayName,e.s(["Dialog",0,n,"DialogContent",0,r,"DialogHeader",0,c,"DialogTitle",0,f])},793479,e=>{"use strict";var t=e.i(72345),a=e.i(180338),s=e.i(975157);let o=a.forwardRef(({className:e,type:a,...o},i)=>(0,t.jsx)("input",{type:a,className:(0,s.cn)("flex h-10 w-full rounded-md border border-border bg-bg px-3 py-2 text-base ring-offset-bg file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-txt placeholder:text-muted focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:i,...o}));o.displayName="Input",e.s(["Input",0,o])},980376,e=>{"use strict";var t=e.i(72345),a=e.i(180338),s=e.i(287272),o=e.i(294237),i=e.i(765470),n=e.i(975157);let l=s.Root;s.Trigger,s.Close;let d=s.Portal,r=a.forwardRef(({className:e,...a},o)=>(0,t.jsx)(s.Overlay,{className:(0,n.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...a,ref:o}));r.displayName=s.Overlay.displayName;let c=(0,o.cva)("fixed z-50 gap-4 bg-surface p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),f=a.forwardRef(({side:e="right",className:a,children:o,...l},f)=>(0,t.jsxs)(d,{children:[(0,t.jsx)(r,{}),(0,t.jsxs)(s.Content,{ref:f,className:(0,n.cn)(c({side:e}),a),...l,children:[o,(0,t.jsxs)(s.Close,{className:"absolute right-4 top-4 rounded-xs opacity-70 ring-offset-bg transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-accent focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-surface2",children:[(0,t.jsx)(i.X,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));f.displayName=s.Content.displayName;let m=({className:e,...a})=>(0,t.jsx)("div",{className:(0,n.cn)("flex flex-col space-y-2 text-center sm:text-left",e),...a});m.displayName="SheetHeader";let u=a.forwardRef(({className:e,...a},o)=>(0,t.jsx)(s.Title,{ref:o,className:(0,n.cn)("text-lg font-semibold text-txt",e),...a}));u.displayName=s.Title.displayName;let p=a.forwardRef(({className:e,...a},o)=>(0,t.jsx)(s.Description,{ref:o,className:(0,n.cn)("text-sm text-muted",e),...a}));p.displayName=s.Description.displayName,e.s(["Sheet",0,l,"SheetContent",0,f,"SheetDescription",0,p,"SheetHeader",0,m,"SheetTitle",0,u])},573009,e=>{"use strict";var t=e.i(243668);e.s(["applyAccent",0,function(e){document.documentElement.setAttribute("data-accent",e)},"applyFontSize",0,function(e){document.documentElement.setAttribute("data-font-size",e)},"applyFonts",0,function(e){let a=document.documentElement;a.setAttribute("data-font-sans",e.fontSans??t.DEFAULT_SETTINGS.fontSans),a.setAttribute("data-font-mono",e.fontMono??t.DEFAULT_SETTINGS.fontMono)},"applyTheme",0,function(e){let t=document.documentElement,a=window.matchMedia("(prefers-color-scheme: dark)").matches;t.classList.toggle("dark","dark"===e||"system"===e&&a)}])},956555,e=>{"use strict";let t="vibedoc:ask-agent";e.s(["ASK_AGENT_EVENT",0,t,"askAgent",0,function(e){window.dispatchEvent(new CustomEvent(t,{detail:{message:e}}))}])}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,66858,e=>{"use strict";var t=e.i(72345),s=e.i(180338),a=e.i(910172),n=e.i(763371),r=e.i(975157),o=e.i(329090);function l({activity:e}){return(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("div",{className:"absolute left-4 top-0 bottom-0 w-px bg-border"}),(0,t.jsx)("div",{className:"flex flex-col gap-0",children:e.map(e=>(0,t.jsx)(o.ActivityEventRow,{event:e},e.id))})]})}let i={done:"bg-teal","in-progress":"bg-amber",blocked:"bg-danger",todo:"bg-muted",cancelled:"bg-border2"},d="inline-flex max-w-full items-center gap-1.5 truncate rounded-md border border-border bg-bg/40 px-2 py-1 text-xs font-mono text-txt transition-[border-color,background-color,transform] duration-(--duration-fast) ease-out-soft hover:-translate-y-px hover:border-border2 hover:bg-surface2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/60";function c({open:e,events:s}){return(0,t.jsx)("div",{className:(0,r.cn)("grid transition-[grid-template-rows,opacity] duration-(--duration-slow) ease-out-soft",e?"grid-rows-[1fr] opacity-100":"grid-rows-[0fr] opacity-0"),children:(0,t.jsx)("div",{className:"min-h-0 overflow-hidden",inert:!e,children:(0,t.jsxs)("div",{className:"relative mt-4 border-t border-border pt-4",children:[(0,t.jsx)("div",{className:"absolute left-4 top-4 bottom-0 w-px bg-border"}),s.map(e=>(0,t.jsx)(o.ActivityEventRow,{event:e},e.id))]})})})}function x({open:e}){return(0,t.jsx)("span",{className:(0,r.cn)("inline-block text-muted transition-transform duration-(--duration-base) ease-out-soft",e&&"rotate-90"),"aria-hidden":!0,children:"β–Έ"})}function m({session:e,events:a,onOpenTask:n,onOpenDoc:o,focused:l=!1,live:u=!1}){let p,[h,b]=(0,s.useState)(l),g=(0,s.useRef)(null);(0,s.useEffect)(()=>{l&&g.current?.scrollIntoView({block:"center",behavior:"smooth"})},[l]);let f="ai"===e.actor,v=e.tasks.filter(e=>"done"===e.lastStatus).length,j=e.tasks.length+e.docs.length+e.decisions.length>0,N=`${(p=Math.round((Date.parse(e.end)-Date.parse(e.start))/6e4))<1?"<1m":p<60?`${p}m`:`${Math.floor(p/60)}h ${p%60}m`} \xb7 ${e.eventCount} event${1===e.eventCount?"":"s"}`;return j?(0,t.jsxs)("div",{ref:g,className:(0,r.cn)("group rounded-xl border bg-surface p-4 transition-[border-color,transform,box-shadow] duration-(--duration-base) ease-out-soft hover:-translate-y-0.5 hover:border-border2 hover:shadow-lg hover:shadow-black/20",u?"border-accent/40":"border-border",l&&"border-accent/60 animate-flash"),children:[(0,t.jsxs)("button",{onClick:()=>b(e=>!e),"aria-expanded":h,className:"flex w-full items-center gap-2 text-left text-xs",children:[(0,t.jsx)("span",{className:(0,r.cn)("font-medium",f?"text-accent":"text-txt"),children:f?"πŸ€– Agent":"πŸ‘€ Human"}),u&&(0,t.jsxs)("span",{className:"flex items-center gap-1 rounded-full bg-accent/10 px-1.5 py-0.5 font-mono text-[10px] uppercase tracking-wide text-accent",children:[(0,t.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-accent animate-pulse-dot"}),"live"]}),(0,t.jsx)("span",{className:"ml-auto font-mono text-muted",children:N}),(0,t.jsx)(x,{open:h})]}),(0,t.jsx)("p",{className:"mt-2 text-[15px] font-medium leading-snug text-txt",children:e.headline}),e.tasks.length>0&&(0,t.jsxs)("div",{className:"mt-3 flex items-center gap-2",title:`${v} of ${e.tasks.length} tasks done`,children:[(0,t.jsx)("div",{className:"h-1 flex-1 overflow-hidden rounded-full bg-surface2",children:(0,t.jsx)("div",{className:"h-full origin-left rounded-full bg-teal animate-grow-x transition-[width] duration-(--duration-slow) ease-out-soft",style:{width:`${v/e.tasks.length*100}%`}})}),(0,t.jsxs)("span",{className:"font-mono text-[11px] text-muted",children:[v,"/",e.tasks.length]})]}),(0,t.jsxs)("div",{className:"mt-3 flex flex-wrap gap-1.5",children:[e.tasks.map(e=>(0,t.jsxs)("button",{onClick:()=>n(e.id),className:d,title:`${e.id} β†’ ${e.lastStatus}`,children:[(0,t.jsx)("span",{className:(0,r.cn)("h-1.5 w-1.5 shrink-0 rounded-full",i[e.lastStatus])}),e.id,(0,t.jsx)("span",{className:"text-muted",children:e.lastStatus})]},e.id)),e.docs.map(e=>(0,t.jsxs)("button",{onClick:()=>o(e),className:d,title:e,children:["πŸ“„ ",e.split("/").pop()]},e)),e.decisions.map(e=>(0,t.jsxs)("button",{onClick:()=>o(e.split(":")[0]),className:(0,r.cn)(d,"text-accent"),title:e,children:["πŸ“ ",e]},e))]}),(0,t.jsx)(c,{open:h,events:a})]}):(0,t.jsxs)("div",{ref:g,className:(0,r.cn)("rounded-lg px-3 py-2 transition-colors duration-(--duration-fast) hover:bg-surface/60",l&&"bg-surface animate-flash"),children:[(0,t.jsxs)("button",{onClick:()=>b(e=>!e),"aria-expanded":h,className:"flex w-full items-center gap-2 text-left text-sm text-muted",children:[(0,t.jsx)("span",{children:f?"πŸ€–":"πŸ‘€"}),(0,t.jsx)("span",{className:"truncate",children:e.headline}),(0,t.jsx)("span",{className:"ml-auto shrink-0 font-mono text-xs text-muted/70",children:N}),(0,t.jsx)(x,{open:h})]}),(0,t.jsx)(c,{open:h,events:a})]})}function u(e){let t=new Date(e),s=new Date,a=new Date(s);return(a.setDate(s.getDate()-1),t.toDateString()===s.toDateString())?"Today":t.toDateString()===a.toDateString()?"Yesterday":t.toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"})}function p({value:e,label:s,tone:a}){return(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:(0,r.cn)("font-display text-2xl font-semibold tabular-nums leading-none",e?a??"text-txt":"text-muted/50"),children:e}),(0,t.jsx)("p",{className:"mt-1.5 text-xs text-muted",children:s})]})}function h({sessions:e,events:a,onOpenTask:n,onOpenDoc:o,focusSessionId:l}){var i;let d,[c,x]=(0,s.useState)("all"),[b,g]=(0,s.useState)(()=>Date.now());(0,s.useEffect)(()=>{let e=setInterval(()=>g(Date.now()),3e4);return()=>clearInterval(e)},[]);let f=(i=b-864e5,{sessions:(d=e.filter(e=>Date.parse(e.end)>=i)).length,tasksDone:new Set(d.flatMap(e=>e.tasks.filter(e=>"done"===e.lastStatus).map(e=>e.id))).size,docs:new Set(d.flatMap(e=>e.docs)).size,decisions:d.reduce((e,t)=>e+t.decisions.length,0)}),v={all:e.length,ai:e.filter(e=>"ai"===e.actor).length,human:e.filter(e=>"human"===e.actor).length},j="all"===c?e:e.filter(e=>e.actor===c);return(0,t.jsxs)("div",{children:[(0,t.jsxs)("section",{className:"mb-6 grid grid-cols-2 gap-5 rounded-xl border border-border bg-surface px-5 py-4 animate-fade-in sm:grid-cols-4",children:[(0,t.jsx)(p,{value:f.sessions,label:"sessions Β· 24h"}),(0,t.jsx)(p,{value:f.tasksDone,label:"tasks done",tone:"text-teal"}),(0,t.jsx)(p,{value:f.docs,label:"docs changed"}),(0,t.jsx)(p,{value:f.decisions,label:"ADRs logged",tone:"text-accent"})]}),(0,t.jsx)("div",{className:"mb-4 flex items-center gap-1 text-xs",role:"tablist","aria-label":"Filter by actor",children:["all","ai","human"].map(e=>(0,t.jsxs)("button",{role:"tab","aria-selected":c===e,onClick:()=>x(e),className:(0,r.cn)("rounded-full px-3 py-1 transition-colors duration-(--duration-fast)",c===e?"bg-surface2 text-txt":"text-muted hover:text-txt"),children:["all"===e?"All":"ai"===e?"πŸ€– Agent":"πŸ‘€ Human",(0,t.jsx)("span",{className:"ml-1.5 font-mono text-muted",children:v[e]})]},e))}),0===j.length?(0,t.jsxs)("p",{className:"py-10 text-center text-sm text-muted",children:["No ","ai"===c?"agent":"human"," sessions yet."]}):(0,t.jsxs)("ol",{className:"relative",children:[(0,t.jsx)("div",{className:"absolute left-[3.5rem] top-2 bottom-2 w-px bg-border","aria-hidden":!0}),j.map((e,s)=>{let i=u(e.start),d=0===s||u(j[s-1].start)!==i,c=function(e,t=Date.now(),s=3e5){return t-Date.parse(e.end)<s}(e,b),x=e.tasks.length+e.docs.length+e.decisions.length===0;return(0,t.jsxs)("li",{className:"animate-fade-in",style:{animationDelay:`${45*Math.min(s,8)}ms`,animationFillMode:"both"},children:[d&&(0,t.jsx)("p",{className:"sticky top-0 z-10 -mx-1 mb-2 bg-bg/90 px-1 py-2 text-xs font-mono uppercase tracking-wide text-muted backdrop-blur-sm",children:i}),(0,t.jsxs)("div",{className:"grid grid-cols-[2.75rem_1.5rem_1fr] items-start pb-3",children:[(0,t.jsx)("time",{dateTime:e.start,className:(0,r.cn)("text-right font-mono text-[11px] text-muted",x?"pt-2.5":"pt-4"),title:new Date(e.start).toLocaleString(),children:new Date(e.start).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hourCycle:"h23"})}),(0,t.jsx)("span",{className:(0,r.cn)("flex justify-center",x?"pt-[0.95rem]":"pt-[1.2rem]"),"aria-hidden":!0,children:(0,t.jsx)("span",{className:(0,r.cn)("relative z-[1] rounded-full ring-4 ring-bg",x?"h-1.5 w-1.5":"h-2.5 w-2.5","ai"===e.actor?"bg-accent":"bg-muted",c&&"animate-pulse-dot")})}),(0,t.jsx)(m,{session:e,events:e.eventIds.flatMap(e=>a.get(e)??[]),onOpenTask:n,onOpenDoc:o,focused:e.id===l,live:c})]})]},e.id)})]})]})}var b=e.i(635743);function g({activity:e,liveIndicator:a,rootParam:n,onOpenTask:o,onOpenDoc:i,focusSessionId:d}){let[c,x]=(0,s.useState)("sessions"),[m,u]=(0,s.useState)(d);d!==m&&(u(d),d&&x("sessions"));let[p,f]=(0,s.useState)(null),[v,j]=(0,s.useState)(!1),[N,y]=(0,s.useState)(new Map);(0,s.useEffect)(()=>{let e=n?`${n}&`:"?",t=()=>Promise.all([fetch(`/api/sessions${n}`).then(e=>e.json()),fetch(`/api/activity${e}limit=2000`).then(e=>e.json())]).then(([e,t])=>{j(!1),f(Array.isArray(e)?e:[]),y(new Map((Array.isArray(t)?t:[]).map(e=>[e.id,e])))}).catch(()=>{j(!0),f(e=>e??[])});return t(),window.addEventListener("vibedoc:sse",t),()=>window.removeEventListener("vibedoc:sse",t)},[n]);let w="sessions"===c?p?.length===0:0===e.length;return(0,t.jsxs)("div",{className:"p-6 max-w-3xl",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-6",children:[(0,t.jsx)("h1",{className:"font-display text-xl font-semibold tracking-tight",children:"Activity"}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsxs)("div",{className:"relative grid grid-cols-2 rounded-md border border-border p-0.5 text-xs",children:[(0,t.jsx)("span",{"aria-hidden":!0,className:(0,r.cn)("absolute inset-y-0.5 left-0.5 w-[calc(50%-2px)] rounded-sm bg-surface2 transition-transform duration-(--duration-base) ease-out-soft","events"===c&&"translate-x-full")}),["sessions","events"].map(e=>(0,t.jsx)("button",{onClick:()=>x(e),"aria-pressed":c===e,className:(0,r.cn)("relative px-3 py-1 transition-colors duration-(--duration-fast)",c===e?"text-txt":"text-muted hover:text-txt"),children:"sessions"===e?"Sessions":"All events"},e))]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-mono text-teal",children:[(0,t.jsxs)("span",{className:"relative flex h-1.5 w-1.5",children:[a&&(0,t.jsx)("span",{className:"absolute inset-0 rounded-full bg-teal animate-ping"}),(0,t.jsx)("span",{className:"relative h-1.5 w-1.5 rounded-full bg-teal"})]}),"live"]})]})]}),v&&(0,t.jsx)("p",{className:"mb-4 rounded-md border border-danger/30 bg-danger/5 px-3 py-2 text-xs text-danger animate-fade-in",children:"Couldn't load sessions. Showing the last data we had; it retries on the next update."}),"sessions"===c&&null===p?(0,t.jsxs)("div",{className:"flex flex-col gap-3","aria-busy":"true","aria-label":"Loading sessions",children:[(0,t.jsx)("div",{className:"h-[76px] rounded-xl bg-surface animate-pulse"}),[0,1,2].map(e=>(0,t.jsx)("div",{className:"ml-[4.25rem] h-24 rounded-xl bg-surface animate-pulse",style:{animationDelay:`${120*e}ms`}},e))]}):w?(0,t.jsx)(b.EmptyState,{icon:"⚑",message:"No activity yet.",subMessage:"Connect an AI agent to see real-time updates here."}):"sessions"===c?(0,t.jsx)(h,{focusSessionId:d,sessions:p??[],events:N,onOpenTask:o,onOpenDoc:i},d??""):(0,t.jsx)(l,{activity:e})]})}var f=e.i(592381);function v(){let{activity:e,liveIndicator:r,rootParam:o,board:l,moveTask:i,openDoc:d}=(0,n.useApp)(),c=(0,a.useSearchParams)().get("session"),[x,m]=(0,s.useState)(null),u=l&&x&&Object.values(l).flat().find(e=>e.id===x)||null;return(0,t.jsxs)("div",{className:"relative flex-1",children:[(0,t.jsx)(g,{activity:e,liveIndicator:r,rootParam:o,onOpenTask:m,onOpenDoc:d,focusSessionId:c}),(0,t.jsx)(f.TaskDetailPanel,{task:u,onClose:()=>m(null),onMove:i})]})}e.s(["default",0,function(){return(0,t.jsx)(s.Suspense,{children:(0,t.jsx)(v,{})})}],66858)},34086,e=>{"use strict";var t=e.i(72345),s=e.i(180338),a=e.i(975157),n=e.i(487486),r=e.i(519455);let o={todo:"text-muted border-border2","in-progress":"text-amber border-amber/30 bg-amber/5",blocked:"text-danger border-danger/30 bg-danger/5",done:"text-teal border-teal/30 bg-teal/5",cancelled:"text-muted border-border line-through"},l={todo:"border-border2 text-muted","in-progress":"border-amber/40 text-amber",blocked:"border-danger/40 text-danger",done:"border-teal/40 text-teal",cancelled:"border-border text-muted"},i={todo:"πŸ“‹","in-progress":"πŸ”¨",blocked:"🚫",done:"βœ…",cancelled:"❌"},d={todo:["in-progress"],"in-progress":["done","blocked","todo"],blocked:["in-progress","cancelled"],done:["todo"],cancelled:["todo"]};e.s(["STATUS_BADGE_COLORS",0,l,"STATUS_ICONS",0,i,"TaskCard",0,function({task:e,onMove:c,onOpen:x}){let[m,u]=(0,s.useState)(!1),p=d[e.status]||[];return(0,t.jsxs)("div",{draggable:!0,onDragStart:t=>{t.dataTransfer.setData("taskId",e.id),t.dataTransfer.effectAllowed="move",u(!0)},onDragEnd:()=>u(!1),style:{viewTransitionName:`task-${e.file.replace(/[^a-zA-Z0-9_-]/g,"_")}`},className:(0,a.cn)("group relative bg-surface border rounded-lg p-3 text-sm transition-[border-color,opacity] hover:border-border2",o[e.status]||"border-border",m&&"opacity-50 cursor-grabbing"),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,t.jsx)("span",{className:"text-xs font-mono text-muted",children:e.id}),(0,t.jsx)(n.Badge,{variant:"outline",className:(0,a.cn)("text-[10px] h-4 px-1.5 font-normal",l[e.status]),children:"in-progress"===e.status?"active":e.status})]}),(0,t.jsx)("p",{className:"font-medium text-txt text-sm leading-snug mb-2",children:e.title}),e.phase&&(0,t.jsx)("p",{className:"text-xs text-muted mb-2",children:e.phase}),(0,t.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,t.jsx)(r.Button,{variant:"ghost",size:"sm",className:"h-6 text-xs px-2",onClick:x,children:"open"}),p.map(s=>(0,t.jsxs)(r.Button,{variant:"ghost",size:"sm",className:"h-6 text-xs px-2",onClick:()=>c(e.id,s),children:[i[s]," ","in-progress"===s?"start":s]},s))]})]})}])},592381,329090,e=>{"use strict";var t=e.i(72345),s=e.i(180338),a=e.i(975157),n=e.i(980376),r=e.i(998822),o=e.i(34086),l=e.i(910172),i=e.i(763371);let d={task_updated:"πŸ”¨",decision_logged:"πŸ“",memory_updated:"🧠",doc_read:"πŸ“„",session_start:"πŸ€–",roadmap_updated:"πŸ—ΊοΈ"};function c(e){let t=(Date.now()-new Date(e).getTime())/1e3;return t<60?"just now":t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`}function x({taskId:e,onNavigate:a}){let{rootParam:n}=(0,i.useApp)(),r=(0,l.useRouter)(),[o,d]=(0,s.useState)(null);return(0,s.useEffect)(()=>{let t=n?`${n}&`:"?";fetch(`/api/sessions${t}taskId=${encodeURIComponent(e)}`).then(e=>e.json()).then(e=>d(Array.isArray(e)?e:[])).catch(()=>d([]))},[n,e]),(0,t.jsxs)("div",{className:"px-5 py-3 border-b border-border shrink-0",children:[(0,t.jsx)("p",{className:"mb-2 text-xs font-mono uppercase tracking-wide text-muted",children:"Sessions"}),null===o?null:0===o.length?(0,t.jsx)("p",{className:"text-xs text-muted",children:"No recorded sessions"}):(0,t.jsx)("div",{className:"flex max-h-40 flex-col gap-1 overflow-y-auto",children:o.map(e=>(0,t.jsxs)("button",{onClick:()=>{a(),r.push(`/activity?session=${encodeURIComponent(e.id)}`)},className:"flex items-center gap-2 rounded-sm px-2 py-1 text-left text-xs hover:bg-surface2",children:[(0,t.jsx)("span",{children:"ai"===e.actor?"πŸ€–":"πŸ‘€"}),(0,t.jsx)("span",{className:"shrink-0 font-mono text-muted",children:c(e.start)}),(0,t.jsx)("span",{className:"truncate text-txt",children:e.headline})]},e.id))})]})}e.s(["ActivityEventRow",0,function({event:e}){return(0,t.jsxs)("div",{className:"flex gap-4 pb-4 animate-fade-in",children:[(0,t.jsx)("div",{className:"relative shrink-0 w-8 h-8 rounded-full bg-surface2 border border-border flex items-center justify-center text-sm z-10",children:d[e.type]||"β€’"}),(0,t.jsxs)("div",{className:"flex-1 pt-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-0.5",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-txt",children:e.title}),"ai"===e.actor&&(0,t.jsx)("span",{className:"text-xs px-1.5 py-0.5 rounded-sm bg-accent/10 text-accent border border-accent/20 font-mono",children:"AI"})]}),e.detail&&(0,t.jsx)("p",{className:"text-xs text-muted truncate",children:e.detail}),(0,t.jsx)("p",{className:"text-xs text-muted/60 mt-0.5 font-mono",children:c(e.timestamp)})]})]})},"timeAgo",0,c],329090);let m={todo:["in-progress"],"in-progress":["done","blocked","todo"],blocked:["in-progress","cancelled"],done:["todo"],cancelled:["todo"]},u={"in-progress":"start",done:"done",blocked:"blocked",todo:"backlog",cancelled:"cancel"},p={todo:"text-muted border-border2","in-progress":"text-amber border-amber/30 bg-amber/5",blocked:"text-danger border-danger/30 bg-danger/5",done:"text-teal border-teal/30 bg-teal/5",cancelled:"text-muted border-border"};e.s(["TaskDetailPanel",0,function({task:e,onClose:l,onMove:i}){let[d,c]=(0,s.useState)(e);e&&e!==d&&c(e);let h=d&&m[d.status]||[];return(0,t.jsx)(n.Sheet,{open:!!e,onOpenChange:e=>{e||l()},children:(0,t.jsx)(n.SheetContent,{side:"right","aria-describedby":void 0,className:"p-0 gap-0 sm:max-w-[420px] border-border flex flex-col",children:d&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-col gap-1 min-w-0 pl-5 pr-12 py-4 border-b border-border shrink-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"font-mono text-xs text-muted",children:d.id}),(0,t.jsxs)("span",{className:(0,a.cn)("text-xs px-1.5 py-0.5 rounded-sm border font-mono",p[d.status]),children:[o.STATUS_ICONS[d.status]," ",d.status]})]}),(0,t.jsx)(n.SheetTitle,{className:"font-medium text-txt text-sm leading-snug",children:d.title})]}),h.length>0&&(0,t.jsx)("div",{className:"flex items-center gap-2 px-5 py-3 border-b border-border shrink-0",children:h.map(e=>(0,t.jsxs)("button",{onClick:()=>{i(d.id,e),l()},className:"text-xs px-2.5 py-1 rounded-sm bg-surface2 border border-border text-muted hover:text-txt hover:border-border2 transition-colors",children:[o.STATUS_ICONS[e]," ",u[e]||e]},e))}),(0,t.jsx)(x,{taskId:d.id,onNavigate:l},d.id),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto px-5 py-4",children:d.raw?(0,t.jsx)(r.MarkdownRenderer,{content:d.raw}):(0,t.jsx)("p",{className:"text-sm text-muted",children:"No content available."})})]})})})}],592381)},635743,e=>{"use strict";var t=e.i(72345),s=e.i(975157);e.s(["EmptyState",0,function({icon:e,message:a,subMessage:n,bordered:r}){return(0,t.jsxs)("div",{className:(0,s.cn)("text-center py-16 text-muted text-sm",r&&"border border-dashed border-border rounded-xl"),children:[(0,t.jsx)("p",{className:"text-3xl mb-3",children:e}),(0,t.jsx)("p",{children:a}),n&&(0,t.jsx)("p",{className:"text-xs mt-1",children:n})]})}])}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,66858,e=>{"use strict";var t=e.i(72345),s=e.i(180338),a=e.i(910172),n=e.i(763371),r=e.i(975157),o=e.i(329090);function l({activity:e}){return(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("div",{className:"absolute left-4 top-0 bottom-0 w-px bg-border"}),(0,t.jsx)("div",{className:"flex flex-col gap-0",children:e.map(e=>(0,t.jsx)(o.ActivityEventRow,{event:e},e.id))})]})}let i={done:"bg-teal","in-progress":"bg-amber",blocked:"bg-danger",todo:"bg-muted",cancelled:"bg-border2"},d="inline-flex max-w-full items-center gap-1.5 truncate rounded-md border border-border bg-bg/40 px-2 py-1 text-xs font-mono text-txt transition-[border-color,background-color,transform] duration-(--duration-fast) ease-out-soft hover:-translate-y-px hover:border-border2 hover:bg-surface2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/60";function c({open:e,events:s}){return(0,t.jsx)("div",{className:(0,r.cn)("grid transition-[grid-template-rows,opacity] duration-(--duration-slow) ease-out-soft",e?"grid-rows-[1fr] opacity-100":"grid-rows-[0fr] opacity-0"),children:(0,t.jsx)("div",{className:"min-h-0 overflow-hidden",inert:!e,children:(0,t.jsxs)("div",{className:"relative mt-4 border-t border-border pt-4",children:[(0,t.jsx)("div",{className:"absolute left-4 top-4 bottom-0 w-px bg-border"}),s.map(e=>(0,t.jsx)(o.ActivityEventRow,{event:e},e.id))]})})})}function x({open:e}){return(0,t.jsx)("span",{className:(0,r.cn)("inline-block text-muted transition-transform duration-(--duration-base) ease-out-soft",e&&"rotate-90"),"aria-hidden":!0,children:"β–Έ"})}function m({session:e,events:a,onOpenTask:n,onOpenDoc:o,focused:l=!1,live:u=!1}){let p,[h,b]=(0,s.useState)(l),g=(0,s.useRef)(null);(0,s.useEffect)(()=>{l&&g.current?.scrollIntoView({block:"center",behavior:"smooth"})},[l]);let f="ai"===e.actor,v=e.tasks.filter(e=>"done"===e.lastStatus).length,j=e.tasks.length+e.docs.length+e.decisions.length>0,N=`${(p=Math.round((Date.parse(e.end)-Date.parse(e.start))/6e4))<1?"<1m":p<60?`${p}m`:`${Math.floor(p/60)}h ${p%60}m`} \xb7 ${e.eventCount} event${1===e.eventCount?"":"s"}`;return j?(0,t.jsxs)("div",{ref:g,className:(0,r.cn)("group rounded-xl border bg-surface p-4 transition-[border-color,transform,box-shadow] duration-(--duration-base) ease-out-soft hover:-translate-y-0.5 hover:border-border2 hover:shadow-lg hover:shadow-black/20",u?"border-accent/40":"border-border",l&&"border-accent/60 animate-flash"),children:[(0,t.jsxs)("button",{onClick:()=>b(e=>!e),"aria-expanded":h,className:"flex w-full items-center gap-2 text-left text-xs",children:[(0,t.jsx)("span",{className:(0,r.cn)("font-medium",f?"text-accent":"text-txt"),children:f?"πŸ€– Agent":"πŸ‘€ Human"}),u&&(0,t.jsxs)("span",{className:"flex items-center gap-1 rounded-full bg-accent/10 px-1.5 py-0.5 font-mono text-[10px] uppercase tracking-wide text-accent",children:[(0,t.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-accent animate-pulse-dot"}),"live"]}),(0,t.jsx)("span",{className:"ml-auto font-mono text-muted",children:N}),(0,t.jsx)(x,{open:h})]}),(0,t.jsx)("p",{className:"mt-2 text-[15px] font-medium leading-snug text-txt",children:e.headline}),e.tasks.length>0&&(0,t.jsxs)("div",{className:"mt-3 flex items-center gap-2",title:`${v} of ${e.tasks.length} tasks done`,children:[(0,t.jsx)("div",{className:"h-1 flex-1 overflow-hidden rounded-full bg-surface2",children:(0,t.jsx)("div",{className:"h-full origin-left rounded-full bg-teal animate-grow-x transition-[width] duration-(--duration-slow) ease-out-soft",style:{width:`${v/e.tasks.length*100}%`}})}),(0,t.jsxs)("span",{className:"font-mono text-[11px] text-muted",children:[v,"/",e.tasks.length]})]}),(0,t.jsxs)("div",{className:"mt-3 flex flex-wrap gap-1.5",children:[e.tasks.map(e=>(0,t.jsxs)("button",{onClick:()=>n(e.id),className:d,title:`${e.id} β†’ ${e.lastStatus}`,children:[(0,t.jsx)("span",{className:(0,r.cn)("h-1.5 w-1.5 shrink-0 rounded-full",i[e.lastStatus])}),e.id,(0,t.jsx)("span",{className:"text-muted",children:e.lastStatus})]},e.id)),e.docs.map(e=>(0,t.jsxs)("button",{onClick:()=>o(e),className:d,title:e,children:["πŸ“„ ",e.split("/").pop()]},e)),e.decisions.map(e=>(0,t.jsxs)("button",{onClick:()=>o(e.split(":")[0]),className:(0,r.cn)(d,"text-accent"),title:e,children:["πŸ“ ",e]},e))]}),(0,t.jsx)(c,{open:h,events:a})]}):(0,t.jsxs)("div",{ref:g,className:(0,r.cn)("rounded-lg px-3 py-2 transition-colors duration-(--duration-fast) hover:bg-surface/60",l&&"bg-surface animate-flash"),children:[(0,t.jsxs)("button",{onClick:()=>b(e=>!e),"aria-expanded":h,className:"flex w-full items-center gap-2 text-left text-sm text-muted",children:[(0,t.jsx)("span",{children:f?"πŸ€–":"πŸ‘€"}),(0,t.jsx)("span",{className:"truncate",children:e.headline}),(0,t.jsx)("span",{className:"ml-auto shrink-0 font-mono text-xs text-muted/70",children:N}),(0,t.jsx)(x,{open:h})]}),(0,t.jsx)(c,{open:h,events:a})]})}function u(e){let t=new Date(e),s=new Date,a=new Date(s);return(a.setDate(s.getDate()-1),t.toDateString()===s.toDateString())?"Today":t.toDateString()===a.toDateString()?"Yesterday":t.toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"})}function p({value:e,label:s,tone:a}){return(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:(0,r.cn)("font-display text-2xl font-semibold tabular-nums leading-none",e?a??"text-txt":"text-muted/50"),children:e}),(0,t.jsx)("p",{className:"mt-1.5 text-xs text-muted",children:s})]})}function h({sessions:e,events:a,onOpenTask:n,onOpenDoc:o,focusSessionId:l}){var i;let d,[c,x]=(0,s.useState)("all"),[b,g]=(0,s.useState)(()=>Date.now());(0,s.useEffect)(()=>{let e=setInterval(()=>g(Date.now()),3e4);return()=>clearInterval(e)},[]);let f=(i=b-864e5,{sessions:(d=e.filter(e=>Date.parse(e.end)>=i)).length,tasksDone:new Set(d.flatMap(e=>e.tasks.filter(e=>"done"===e.lastStatus).map(e=>e.id))).size,docs:new Set(d.flatMap(e=>e.docs)).size,decisions:d.reduce((e,t)=>e+t.decisions.length,0)}),v={all:e.length,ai:e.filter(e=>"ai"===e.actor).length,human:e.filter(e=>"human"===e.actor).length},j="all"===c?e:e.filter(e=>e.actor===c);return(0,t.jsxs)("div",{children:[(0,t.jsxs)("section",{className:"mb-6 grid grid-cols-2 gap-5 rounded-xl border border-border bg-surface px-5 py-4 animate-fade-in sm:grid-cols-4",children:[(0,t.jsx)(p,{value:f.sessions,label:"sessions Β· 24h"}),(0,t.jsx)(p,{value:f.tasksDone,label:"tasks done",tone:"text-teal"}),(0,t.jsx)(p,{value:f.docs,label:"docs changed"}),(0,t.jsx)(p,{value:f.decisions,label:"ADRs logged",tone:"text-accent"})]}),(0,t.jsx)("div",{className:"mb-4 flex items-center gap-1 text-xs",role:"tablist","aria-label":"Filter by actor",children:["all","ai","human"].map(e=>(0,t.jsxs)("button",{role:"tab","aria-selected":c===e,onClick:()=>x(e),className:(0,r.cn)("rounded-full px-3 py-1 transition-colors duration-(--duration-fast)",c===e?"bg-surface2 text-txt":"text-muted hover:text-txt"),children:["all"===e?"All":"ai"===e?"πŸ€– Agent":"πŸ‘€ Human",(0,t.jsx)("span",{className:"ml-1.5 font-mono text-muted",children:v[e]})]},e))}),0===j.length?(0,t.jsxs)("p",{className:"py-10 text-center text-sm text-muted",children:["No ","ai"===c?"agent":"human"," sessions yet."]}):(0,t.jsxs)("ol",{className:"relative",children:[(0,t.jsx)("div",{className:"absolute left-[3.5rem] top-2 bottom-2 w-px bg-border","aria-hidden":!0}),j.map((e,s)=>{let i=u(e.start),d=0===s||u(j[s-1].start)!==i,c=function(e,t=Date.now(),s=3e5){return t-Date.parse(e.end)<s}(e,b),x=e.tasks.length+e.docs.length+e.decisions.length===0;return(0,t.jsxs)("li",{className:"animate-fade-in",style:{animationDelay:`${45*Math.min(s,8)}ms`,animationFillMode:"both"},children:[d&&(0,t.jsx)("p",{className:"sticky top-0 z-10 -mx-1 mb-2 bg-bg/90 px-1 py-2 text-xs font-mono uppercase tracking-wide text-muted backdrop-blur-sm",children:i}),(0,t.jsxs)("div",{className:"grid grid-cols-[2.75rem_1.5rem_1fr] items-start pb-3",children:[(0,t.jsx)("time",{dateTime:e.start,className:(0,r.cn)("text-right font-mono text-[11px] text-muted",x?"pt-2.5":"pt-4"),title:new Date(e.start).toLocaleString(),children:new Date(e.start).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hourCycle:"h23"})}),(0,t.jsx)("span",{className:(0,r.cn)("flex justify-center",x?"pt-[0.95rem]":"pt-[1.2rem]"),"aria-hidden":!0,children:(0,t.jsx)("span",{className:(0,r.cn)("relative z-[1] rounded-full ring-4 ring-bg",x?"h-1.5 w-1.5":"h-2.5 w-2.5","ai"===e.actor?"bg-accent":"bg-muted",c&&"animate-pulse-dot")})}),(0,t.jsx)(m,{session:e,events:e.eventIds.flatMap(e=>a.get(e)??[]),onOpenTask:n,onOpenDoc:o,focused:e.id===l,live:c})]})]},e.id)})]})]})}var b=e.i(635743);function g({activity:e,liveIndicator:a,rootParam:n,onOpenTask:o,onOpenDoc:i,focusSessionId:d}){let[c,x]=(0,s.useState)("sessions"),[m,u]=(0,s.useState)(d);d!==m&&(u(d),d&&x("sessions"));let[p,f]=(0,s.useState)(null),[v,j]=(0,s.useState)(!1),[N,y]=(0,s.useState)(new Map);(0,s.useEffect)(()=>{let e=n?`${n}&`:"?",t=()=>Promise.all([fetch(`/api/sessions${n}`).then(e=>e.json()),fetch(`/api/activity${e}limit=2000`).then(e=>e.json())]).then(([e,t])=>{j(!1),f(Array.isArray(e)?e:[]),y(new Map((Array.isArray(t)?t:[]).map(e=>[e.id,e])))}).catch(()=>{j(!0),f(e=>e??[])});return t(),window.addEventListener("vibedoc:sse",t),()=>window.removeEventListener("vibedoc:sse",t)},[n]);let w="sessions"===c?p?.length===0:0===e.length;return(0,t.jsxs)("div",{className:"p-6 max-w-3xl",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-6",children:[(0,t.jsx)("h1",{className:"font-display text-xl font-semibold tracking-tight",children:"Activity"}),(0,t.jsxs)("div",{className:"flex items-center gap-4",children:[(0,t.jsxs)("div",{className:"relative grid grid-cols-2 rounded-md border border-border p-0.5 text-xs",children:[(0,t.jsx)("span",{"aria-hidden":!0,className:(0,r.cn)("absolute inset-y-0.5 left-0.5 w-[calc(50%-2px)] rounded-sm bg-surface2 transition-transform duration-(--duration-base) ease-out-soft","events"===c&&"translate-x-full")}),["sessions","events"].map(e=>(0,t.jsx)("button",{onClick:()=>x(e),"aria-pressed":c===e,className:(0,r.cn)("relative px-3 py-1 transition-colors duration-(--duration-fast)",c===e?"text-txt":"text-muted hover:text-txt"),children:"sessions"===e?"Sessions":"All events"},e))]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-mono text-teal",children:[(0,t.jsxs)("span",{className:"relative flex h-1.5 w-1.5",children:[a&&(0,t.jsx)("span",{className:"absolute inset-0 rounded-full bg-teal animate-ping"}),(0,t.jsx)("span",{className:"relative h-1.5 w-1.5 rounded-full bg-teal"})]}),"live"]})]})]}),v&&(0,t.jsx)("p",{className:"mb-4 rounded-md border border-danger/30 bg-danger/5 px-3 py-2 text-xs text-danger animate-fade-in",children:"Couldn't load sessions. Showing the last data we had; it retries on the next update."}),"sessions"===c&&null===p?(0,t.jsxs)("div",{className:"flex flex-col gap-3","aria-busy":"true","aria-label":"Loading sessions",children:[(0,t.jsx)("div",{className:"h-[76px] rounded-xl bg-surface animate-pulse"}),[0,1,2].map(e=>(0,t.jsx)("div",{className:"ml-[4.25rem] h-24 rounded-xl bg-surface animate-pulse",style:{animationDelay:`${120*e}ms`}},e))]}):w?(0,t.jsx)(b.EmptyState,{icon:"⚑",message:"No activity yet.",subMessage:"Connect an AI agent to see real-time updates here."}):"sessions"===c?(0,t.jsx)(h,{focusSessionId:d,sessions:p??[],events:N,onOpenTask:o,onOpenDoc:i},d??""):(0,t.jsx)(l,{activity:e})]})}var f=e.i(592381);function v(){let{activity:e,liveIndicator:r,rootParam:o,board:l,moveTask:i,openDoc:d}=(0,n.useApp)(),c=(0,a.useSearchParams)().get("session"),[x,m]=(0,s.useState)(null),u=l&&x&&Object.values(l).flat().find(e=>e.id===x)||null;return(0,t.jsxs)("div",{className:"relative flex-1",children:[(0,t.jsx)(g,{activity:e,liveIndicator:r,rootParam:o,onOpenTask:m,onOpenDoc:d,focusSessionId:c}),(0,t.jsx)(f.TaskDetailPanel,{task:u,onClose:()=>m(null),onMove:i})]})}e.s(["default",0,function(){return(0,t.jsx)(s.Suspense,{children:(0,t.jsx)(v,{})})}],66858)},329090,e=>{"use strict";var t=e.i(72345);let s={task_updated:"πŸ”¨",decision_logged:"πŸ“",memory_updated:"🧠",doc_read:"πŸ“„",session_start:"πŸ€–",roadmap_updated:"πŸ—ΊοΈ"};function a(e){let t=(Date.now()-new Date(e).getTime())/1e3;return t<60?"just now":t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`}e.s(["ActivityEventRow",0,function({event:e}){return(0,t.jsxs)("div",{className:"flex gap-4 pb-4 animate-fade-in",children:[(0,t.jsx)("div",{className:"relative shrink-0 w-8 h-8 rounded-full bg-surface2 border border-border flex items-center justify-center text-sm z-10",children:s[e.type]||"β€’"}),(0,t.jsxs)("div",{className:"flex-1 pt-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-0.5",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-txt",children:e.title}),"ai"===e.actor&&(0,t.jsx)("span",{className:"text-xs px-1.5 py-0.5 rounded-sm bg-accent/10 text-accent border border-accent/20 font-mono",children:"AI"})]}),e.detail&&(0,t.jsx)("p",{className:"text-xs text-muted truncate",children:e.detail}),(0,t.jsx)("p",{className:"text-xs text-muted/60 mt-0.5 font-mono",children:a(e.timestamp)})]})]})},"timeAgo",0,a])},34086,e=>{"use strict";var t=e.i(72345),s=e.i(180338),a=e.i(975157),n=e.i(487486),r=e.i(519455);let o={todo:"text-muted border-border2","in-progress":"text-amber border-amber/30 bg-amber/5",blocked:"text-danger border-danger/30 bg-danger/5",done:"text-teal border-teal/30 bg-teal/5",cancelled:"text-muted border-border line-through"},l={todo:"border-border2 text-muted","in-progress":"border-amber/40 text-amber",blocked:"border-danger/40 text-danger",done:"border-teal/40 text-teal",cancelled:"border-border text-muted"},i={todo:"πŸ“‹","in-progress":"πŸ”¨",blocked:"🚫",done:"βœ…",cancelled:"❌"},d={todo:["in-progress"],"in-progress":["done","blocked","todo"],blocked:["in-progress","cancelled"],done:["todo"],cancelled:["todo"]};e.s(["STATUS_ICONS",0,i,"TaskCard",0,function({task:e,onMove:c,onOpen:x}){let[m,u]=(0,s.useState)(!1),p=d[e.status]||[];return(0,t.jsxs)("div",{draggable:!0,onDragStart:t=>{t.dataTransfer.setData("taskId",e.id),t.dataTransfer.effectAllowed="move",u(!0)},onDragEnd:()=>u(!1),style:{viewTransitionName:`task-${e.file.replace(/[^a-zA-Z0-9_-]/g,"_")}`},className:(0,a.cn)("group relative bg-surface border rounded-lg p-3 text-sm transition-[border-color,opacity] hover:border-border2",o[e.status]||"border-border",m&&"opacity-50 cursor-grabbing"),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,t.jsx)("span",{className:"text-xs font-mono text-muted",children:e.id}),(0,t.jsx)(n.Badge,{variant:"outline",className:(0,a.cn)("text-[10px] h-4 px-1.5 font-normal",l[e.status]),children:"in-progress"===e.status?"active":e.status})]}),(0,t.jsx)("p",{className:"font-medium text-txt text-sm leading-snug mb-2",children:e.title}),e.phase&&(0,t.jsx)("p",{className:"text-xs text-muted mb-2",children:e.phase}),(0,t.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,t.jsx)(r.Button,{variant:"ghost",size:"sm",className:"h-6 text-xs px-2",onClick:x,children:"open"}),p.map(s=>(0,t.jsxs)(r.Button,{variant:"ghost",size:"sm",className:"h-6 text-xs px-2",onClick:()=>c(e.id,s),children:[i[s]," ","in-progress"===s?"start":s]},s))]})]})}])},592381,e=>{"use strict";var t=e.i(72345),s=e.i(180338),a=e.i(975157),n=e.i(980376),r=e.i(998822),o=e.i(34086),l=e.i(910172),i=e.i(763371),d=e.i(329090);function c({taskId:e,onNavigate:a}){let{rootParam:n}=(0,i.useApp)(),r=(0,l.useRouter)(),[o,x]=(0,s.useState)(null);return(0,s.useEffect)(()=>{let t=n?`${n}&`:"?";fetch(`/api/sessions${t}taskId=${encodeURIComponent(e)}`).then(e=>e.json()).then(e=>x(Array.isArray(e)?e:[])).catch(()=>x([]))},[n,e]),(0,t.jsxs)("div",{className:"px-5 py-3 border-b border-border shrink-0",children:[(0,t.jsx)("p",{className:"mb-2 text-xs font-mono uppercase tracking-wide text-muted",children:"Sessions"}),null===o?null:0===o.length?(0,t.jsx)("p",{className:"text-xs text-muted",children:"No recorded sessions"}):(0,t.jsx)("div",{className:"flex max-h-40 flex-col gap-1 overflow-y-auto",children:o.map(e=>(0,t.jsxs)("button",{onClick:()=>{a(),r.push(`/activity?session=${encodeURIComponent(e.id)}`)},className:"flex items-center gap-2 rounded-sm px-2 py-1 text-left text-xs hover:bg-surface2",children:[(0,t.jsx)("span",{children:"ai"===e.actor?"πŸ€–":"πŸ‘€"}),(0,t.jsx)("span",{className:"shrink-0 font-mono text-muted",children:(0,d.timeAgo)(e.start)}),(0,t.jsx)("span",{className:"truncate text-txt",children:e.headline})]},e.id))})]})}let x={todo:["in-progress"],"in-progress":["done","blocked","todo"],blocked:["in-progress","cancelled"],done:["todo"],cancelled:["todo"]},m={"in-progress":"start",done:"done",blocked:"blocked",todo:"backlog",cancelled:"cancel"},u={todo:"text-muted border-border2","in-progress":"text-amber border-amber/30 bg-amber/5",blocked:"text-danger border-danger/30 bg-danger/5",done:"text-teal border-teal/30 bg-teal/5",cancelled:"text-muted border-border"};e.s(["TaskDetailPanel",0,function({task:e,onClose:l,onMove:i}){let[d,p]=(0,s.useState)(e);e&&e!==d&&p(e);let h=d&&x[d.status]||[];return(0,t.jsx)(n.Sheet,{open:!!e,onOpenChange:e=>{e||l()},children:(0,t.jsx)(n.SheetContent,{side:"right","aria-describedby":void 0,className:"p-0 gap-0 sm:max-w-[420px] border-border flex flex-col",children:d&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-col gap-1 min-w-0 pl-5 pr-12 py-4 border-b border-border shrink-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"font-mono text-xs text-muted",children:d.id}),(0,t.jsxs)("span",{className:(0,a.cn)("text-xs px-1.5 py-0.5 rounded-sm border font-mono",u[d.status]),children:[o.STATUS_ICONS[d.status]," ",d.status]})]}),(0,t.jsx)(n.SheetTitle,{className:"font-medium text-txt text-sm leading-snug",children:d.title})]}),h.length>0&&(0,t.jsx)("div",{className:"flex items-center gap-2 px-5 py-3 border-b border-border shrink-0",children:h.map(e=>(0,t.jsxs)("button",{onClick:()=>{i(d.id,e),l()},className:"text-xs px-2.5 py-1 rounded-sm bg-surface2 border border-border text-muted hover:text-txt hover:border-border2 transition-colors",children:[o.STATUS_ICONS[e]," ",m[e]||e]},e))}),(0,t.jsx)(c,{taskId:d.id,onNavigate:l},d.id),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto px-5 py-4",children:d.raw?(0,t.jsx)(r.MarkdownRenderer,{content:d.raw}):(0,t.jsx)("p",{className:"text-sm text-muted",children:"No content available."})})]})})})}],592381)},635743,e=>{"use strict";var t=e.i(72345),s=e.i(975157);e.s(["EmptyState",0,function({icon:e,message:a,subMessage:n,bordered:r}){return(0,t.jsxs)("div",{className:(0,s.cn)("text-center py-16 text-muted text-sm",r&&"border border-dashed border-border rounded-xl"),children:[(0,t.jsx)("p",{className:"text-3xl mb-3",children:e}),(0,t.jsx)("p",{children:a}),n&&(0,t.jsx)("p",{className:"text-xs mt-1",children:n})]})}])}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,479432,e=>{"use strict";var t=e.i(83790);let a={name:"bot",size:24,node:[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]};a.node;let s=(0,t.default)(a);e.s(["Bot",0,s],479432)},424991,e=>{"use strict";var t=e.i(83790);let a={name:"pencil",size:24,node:[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]};a.node;let s=(0,t.default)(a);e.s(["Pencil",0,s],424991)},155515,e=>{"use strict";var t=e.i(83790);let a={name:"plus",size:24,node:[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]};a.node;let s=(0,t.default)(a);e.s(["Plus",0,s],155515)},885600,e=>{"use strict";var t=e.i(83790);let a={name:"sparkles",size:24,node:[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],aliases:["stars"]};a.node;let s=(0,t.default)(a);e.s(["Sparkles",0,s],885600)},496385,e=>{"use strict";var t=e.i(83790);let a={name:"triangle-alert",size:24,node:[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],aliases:["alert-triangle"]};a.node;let s=(0,t.default)(a);e.s(["AlertTriangle",0,s],496385)},635743,e=>{"use strict";var t=e.i(72345),a=e.i(975157);e.s(["EmptyState",0,function({icon:e,message:s,subMessage:l,bordered:r}){return(0,t.jsxs)("div",{className:(0,a.cn)("text-center py-16 text-muted text-sm",r&&"border border-dashed border-border rounded-xl"),children:[(0,t.jsx)("p",{className:"text-3xl mb-3",children:e}),(0,t.jsx)("p",{children:s}),l&&(0,t.jsx)("p",{className:"text-xs mt-1",children:l})]})}])}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/27culnr-k4v7j.js","static/chunks/40re3aog6ymmi.js","static/chunks/2nizd2srt2-vm.js","static/chunks/1i9a4z5i_ajz0.js"],runtimeModuleIds:[560437]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;var t,r=function(){if(null!=self.TURBOPACK_ASSET_SUFFIX)return self.TURBOPACK_ASSET_SUFFIX;let e=document?.currentScript?.getAttribute?.("src")??"",t=e.indexOf("?");return t>=0?e.slice(t):""}(),n=((t=n||{})[t.Runtime=0]="Runtime",t[t.Parent=1]="Parent",t[t.Update=2]="Update",t);let o=new WeakMap;function l(e,t){this.m=e,this.e=t}let i=l.prototype,u=Object.prototype.hasOwnProperty,s="u">typeof Symbol&&Symbol.toStringTag;function c(e,t,r){u.call(e,t)||Object.defineProperty(e,t,r)}function a(e,t){let r=e[t];return r||(r=f(t),e[t]=r),r}function f(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function p(e,t,r){c(e,"__esModule",{value:!0}),s&&c(e,s,{value:"Module"});let n=0;for(;n<t.length;){let r=t[n++],o=t[n++];if("number"==typeof o)if(0===o)c(e,r,{value:t[n++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[n]?c(e,r,{get:o,set:t[n++],enumerable:!0}):c(e,r,{get:o,enumerable:!0})}r||Object.seal(e)}function h(e,t){(null!=t?a(this.c,t):this.m).exports=e}i.s=function(e,t,r){let n,o;null!=t?o=(n=a(this.c,t)).exports:(n=this.m,o=this.e),n.namespaceObject=o,p(o,e,r)},i.j=function(e,t){let r,n;null!=t?n=(r=a(this.c,t)).exports:(r=this.m,n=this.e);let l=function(e,t){let r=o.get(e);if(!r){o.set(e,r=[]);let n=e=>{if("default"!==e){for(let t of r)if(u.call(t,e))return t}};e.exports=e.namespaceObject=new Proxy(t,{get(e,t){if(u.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);let r=n(t);return r&&Reflect.get(r,t)},set:()=>!1,defineProperty:()=>!1,deleteProperty:()=>!1,has:(e,t)=>!!Reflect.has(e,t)||"default"!==t&&"__esModule"!==t&&void 0!==n(t),ownKeys(e){let t=Reflect.ownKeys(e);for(let e of r)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t},getOwnPropertyDescriptor(e,t){let r=Reflect.getOwnPropertyDescriptor(e,t);if(r||"default"===t||"__esModule"===t)return r;let o=n(t);if(o)return{enumerable:!0,configurable:!0,get:()=>Reflect.get(o,t)}}})}return r}(r,n);"object"==typeof e&&null!==e&&l.push(e)},i.v=h,i.n=function(e,t){let r;(r=null!=t?a(this.c,t):this.m).exports=r.namespaceObject=e};let d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,m=[null,d({}),d([]),d(d)];function y(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!m.includes(t);t=d(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),p(t,n),t}function g(e){let t=K(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=y(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function b(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}i.i=g,i.A=function(e){return this.r(e)(g.bind(this))},i.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},i.r=function(e){return K(e,this.m).exports},i.f=function(e){function t(t){if(t=b(t),u.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=b(t),u.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let O=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function w(e,t){throw Error(`Invariant: ${t(e)}`)}O.prototype=URL.prototype,i.U=O,i.z=function(e){throw Error("dynamic usage of require is not supported")},i.g=globalThis;let k=l.prototype,R="string"==typeof TURBOPACK_CHUNK_BASE_PATH?TURBOPACK_CHUNK_BASE_PATH:"/_next/",U=new Map;i.M=U;let v=new Map,_=new Map,P=new Map;async function j(e,t,r){let n;if("string"==typeof r)return function(e,t,r){return A(e,t,r)}(e,t,E(r));let o=r.included||[],l=o.map(e=>!!U.has(e)||v.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);for(let l of(n=A(e,t,E(r.path)),o))v.has(l)||v.set(l,n);await n}k.l=function(e){return j(n.Parent,this.m.id,e)};let C=Promise.resolve(void 0),$=new WeakMap;function A(t,r,o){let l=e.loadChunkCached(t,o),i=$.get(l);if(void 0===i){let e=$.set.bind($,l,C);i=l.then(e).catch(e=>{let l;switch(t){case n.Runtime:l=`as a runtime dependency of chunk ${r}`;break;case n.Parent:l=`from module ${r}`;break;case n.Update:l="from an HMR update";break;default:w(t,e=>`Unknown source type: ${e}`)}let i=Error(`Failed to load chunk ${o} ${l}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw i.name="ChunkLoadError",i}),$.set(l,i)}return i}k.L=function(e){var t,r;return t=n.Parent,r=this.m.id,A(t,r,e)};k.R=function(e){let t=this.r(e);return t?.default??t},k.P=function(e){return`/ROOT/${e??""}`},k.F=function(e){return e?`file:///ROOT/${e.split("/").map(encodeURIComponent).join("/")}`:"file:///ROOT/"},k.q=function(e,t){h.call(this,`${e}${r}`,t)};let T=/[^A-Za-z0-9\-_.!~*'()/]/;function E(e,t=R){let n=T.test(e)?e.split("/").map(encodeURIComponent).join("/"):e;return`${t}${n}${r}`}function S(e,t){let r,n=e.indexOf("?");if(-1!==n)r=n;else{let t=e.indexOf("#");r=-1!==t?t:e.length}return r>=t.length&&e.startsWith(t,r-t.length)}k.b=R,k.X=r,k.h=E;function M(e){return S(e,".css")}let x={};i.c=x;let K=(e,t)=>{let r=x[e];if(r){if(r.error)throw r.error;return r}return N(e,n.Parent,t.id)};function N(e,t,r){let n=U.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:w(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let o=f(e),i=o.exports;x[e]=o;let u=new l(o,i);try{n(u,o,i)}catch(e){throw o.error=e,e}return o.namespaceObject&&o.exports!==o.namespaceObject&&y(o.exports,o.namespaceObject),o}function B(t){let r;if(!Array.isArray(t))return e.registerChunk(void 0,t);let n=function(e){if("string"==typeof e)return e;if(e)return{src:e.getAttribute("src")};if("u">typeof TURBOPACK_NEXT_CHUNK_URLS)return{src:TURBOPACK_NEXT_CHUNK_URLS.pop()};throw Error("chunk path empty but not in a worker")}(t[0]);return 2===t.length?r=t[1]:(r=void 0,!function(e,t){let r=1;for(;r<e.length;){let n,o=r+1;for(;o<e.length&&"function"!=typeof e[o];)o++;if(o===e.length)throw Error("malformed chunk format, expected a factory function");let l=e[o];for(let l=r;l<o;l++){let r=e[l],o=t.get(r);if(o){n=o;break}}let i=n??l,u=!1;for(let n=r;n<o;n++){let r=e[n];t.has(r)||(u||(i===l&&Object.defineProperty(l,"name",{value:"module evaluation"}),u=!0),t.set(r,i))}r=o+1}}(t,U)),e.registerChunk(n,r)}let L=new Map;function I(e){let t=L.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,retryAttempts:0,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},L.set(e,t)}return t}function H(e,t,r,n,o){!(null==n||n instanceof DOMException&&"NetworkError"===n.name)||r.retryAttempts>=1||L.get(t)!==r?(L.get(t)===r&&L.delete(t),r.reject(n)):(r.retryAttempts++,setTimeout(()=>{r.resolved||L.get(t)!==r||(o?o():(r.loadingStarted=!1,q(e,t)))},200+Math.floor(401*Math.random())))}function q(e,t){let r=I(t);if(r.loadingStarted)return r.promise;if(e===n.Runtime)return r.loadingStarted=!0,M(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(M(t));else if(S(t,".js")){self.TURBOPACK_NEXT_CHUNK_URLS.push(t);try{importScripts(t)}catch(n){H(e,t,r,n)}}else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let n=decodeURI(t);if(M(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${n}"],link[rel=stylesheet][href^="${n}?"]`).length>0)r.resolve();else{let n=()=>{let o=document.createElement("link");return o.rel="stylesheet",o.crossOrigin=null,o.href=t,o.onerror=()=>{let l=document.createComment("");o.replaceWith(l),H(e,t,r,void 0,()=>l.replaceWith(n()))},o.onload=()=>{r.resolve()},o};document.head.appendChild(n())}else if(S(t,".js")){let o=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${n}"],script[src^="${n}?"]`);if(o.length>0)for(let n of Array.from(o))n.addEventListener("error",()=>{n.remove(),H(e,t,r)},{once:!0});else{let n=document.createElement("script");n.crossOrigin=null,n.src=t,n.onerror=()=>{n.remove(),H(e,t,r)},document.head.appendChild(n)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise}e={async registerChunk(e,t){let r;if(null!=e&&(r=function(e){if("string"==typeof e)return e;let t=decodeURIComponent(e.src.replace(/[?#].*$/,""));return t.startsWith(R)?t.slice(R.length):t}(e),I("string"==typeof e?E(e):e.src).resolve()),null!=t){for(let e of t.otherChunks)I(E("string"==typeof e?e:e.path));if(await Promise.all(t.otherChunks.map(e=>{var t;return t=r,j(n.Runtime,t,e)})),t.runtimeModuleIds.length>0)for(let e of t.runtimeModuleIds)!function(e,t){let r=x[t];if(r){if(r.error)throw r.error;return}N(t,n.Runtime,e)}(r,e)}},loadChunkCached:(e,t)=>q(e,t)};var F=globalThis.TURBOPACK;globalThis.TURBOPACK={push:B},F.forEach(B)})();
package/README.md CHANGED
@@ -166,6 +166,8 @@ VIBEDOC_ROOT=/path/to/project npx vibedoc
166
166
  | `vibedoc_ask_questions` | Show 1–4 multiple-choice questions as a card; answers come next turn |
167
167
  | `vibedoc_propose_plan` | Propose tasks or horizons/epics; the user unchecks and accepts in the UI |
168
168
 
169
+ A pasted spec (**Plan from spec** on `/roadmap`) or a doc (the list icon in a doc's header) can also become tasks, under a new epic, an existing one, or no epic.
170
+
169
171
  None of the planning tools write files. Accept in the UI writes the plan. See [Planning from chat](docs/architecture/mcp-tools.md#planning-from-chat).
170
172
 
171
173
  ---
package/next.config.js CHANGED
@@ -1,7 +1,4 @@
1
- /** @type {import('next').NextConfig} */
2
- const nextConfig = {
3
- // Allow reading files outside the app directory (project repos)
4
- serverExternalPackages: ['glob', 'gray-matter'],
5
- }
6
-
7
- module.exports = nextConfig
1
+ /** @type {import('next').NextConfig} */
2
+ const nextConfig = {}
3
+
4
+ module.exports = nextConfig
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibedoc",
3
- "version": "1.5.0",
3
+ "version": "1.6.0",
4
4
  "description": "Local-first project intelligence for AI-assisted development. Web UI + MCP server in one.",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -35,6 +35,16 @@ Read the file. If what you read is a horizon (it has no `**Parent:**`), say so a
35
35
 
36
36
  If the chosen epic already has linked tasks, show them and ask whether to **add the missing tasks** or **stop**. Never rewrite existing task files, because an agent may already be working from them.
37
37
 
38
+ **A spec instead of an epic:** the user pastes a feature spec (or describes a feature) rather than naming an epic. Use the spec as the epic body in the steps below, and first ask one single-select question about where the tasks go:
39
+
40
+ - **New epic under <horizon>** (Recommended when a horizon fits, e.g. the in-progress one): name the horizon id and a proposed epic title.
41
+ - **Under an existing epic:** name the closest one if there is one.
42
+ - **Loose tasks, no epic:** the tasks go on the board without a Phase.
43
+
44
+ For a new epic, write its body the way `roadmap-planner` does: one outcome sentence, a blank line, then **In scope:** / **Out of scope:** / **Done when:**, taken from the spec and your interview.
45
+
46
+ When the spec is a doc (e.g. "Break down the spec in docs/prd/export.md"), read it with `vibedoc_read_doc` instead of asking the user to paste it. Link back to it: put ``Spec: `<path>` `` on its own line in the new epic body and in each task's `## Context`.
47
+
38
48
  ## 2. Understand before asking
39
49
 
40
50
  Read the context that grounds the questions. Every question should come from something you found, not from a generic checklist.
@@ -101,7 +111,7 @@ Ask a single-select question: **Create tasks** (Recommended) / **Adjust**. If th
101
111
 
102
112
  ## 5. Write the tasks
103
113
 
104
- **In the VibeDoc chat** (you have `vibedoc_propose_plan`): don't write anything yourself. Put every task (`kind: "breakdown"`, with each task's full body) in one `vibedoc_propose_plan` call. The user's Accept writes the task files and links them to the epic, so skip the rest of this step.
114
+ **In the VibeDoc chat** (you have `vibedoc_propose_plan`): don't write anything yourself. Put every task (`kind: "breakdown"`, with each task's full body) in one `vibedoc_propose_plan` call, with `epic` for an existing epic, `newEpic: { title, parent, body }` for a new one, or neither for loose tasks. The user's Accept writes the task files (and the new epic) and links them, so skip the rest of this step.
105
115
 
106
116
  Continue the numbering from the highest existing `T` id, padded to 3 digits. Write the files to `plans/tasks/T<NNN>-<kebab-slug>.md`. There is no MCP tool that creates tasks, so write the files directly.
107
117