@leanspec/ui 0.2.5-dev.20251120072524 → 0.2.5-dev.20251120093243

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 (338) hide show
  1. package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
  2. package/.next/standalone/packages/ui/.next/app-path-routes-manifest.json +9 -0
  3. package/.next/standalone/packages/ui/.next/build-manifest.json +7 -6
  4. package/.next/standalone/packages/ui/.next/prerender-manifest.json +28 -3
  5. package/.next/standalone/packages/ui/.next/routes-manifest.json +71 -0
  6. package/.next/standalone/packages/ui/.next/server/app/_global-error/page/build-manifest.json +5 -4
  7. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js +1 -1
  8. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/.next/standalone/packages/ui/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/packages/ui/.next/server/app/_global-error.html +2 -2
  11. package/.next/standalone/packages/ui/.next/server/app/_global-error.rsc +1 -1
  12. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  13. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  14. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/standalone/packages/ui/.next/server/app/_not-found/page/build-manifest.json +5 -4
  17. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js +2 -2
  18. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  19. package/.next/standalone/packages/ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/packages/ui/.next/server/app/_not-found.html +2 -2
  21. package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +20 -19
  22. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +20 -19
  23. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +26 -25
  24. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  25. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  26. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +5 -5
  27. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js +2 -3
  28. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js.nft.json +1 -1
  29. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js +2 -3
  30. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.nft.json +1 -1
  31. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route/app-paths-manifest.json +3 -0
  32. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route/build-manifest.json +11 -0
  33. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route/server-reference-manifest.json +4 -0
  34. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js +6 -0
  35. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.map +5 -0
  36. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.nft.json +1 -0
  37. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route_client-reference-manifest.js +2 -0
  38. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js +2 -3
  39. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.nft.json +1 -1
  40. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route/app-paths-manifest.json +3 -0
  41. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route/build-manifest.json +11 -0
  42. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route/server-reference-manifest.json +4 -0
  43. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js +8 -0
  44. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.map +5 -0
  45. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -0
  46. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route_client-reference-manifest.js +2 -0
  47. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route/app-paths-manifest.json +3 -0
  48. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route/build-manifest.json +11 -0
  49. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route/server-reference-manifest.json +4 -0
  50. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js +9 -0
  51. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.map +5 -0
  52. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.nft.json +1 -0
  53. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route_client-reference-manifest.js +2 -0
  54. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route/app-paths-manifest.json +3 -0
  55. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route/build-manifest.json +11 -0
  56. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route/server-reference-manifest.json +4 -0
  57. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js +8 -0
  58. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.map +5 -0
  59. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.nft.json +1 -0
  60. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route_client-reference-manifest.js +2 -0
  61. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js +4 -3
  62. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
  63. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route/app-paths-manifest.json +3 -0
  64. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route/build-manifest.json +11 -0
  65. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route/server-reference-manifest.json +4 -0
  66. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js +8 -0
  67. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.map +5 -0
  68. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.nft.json +1 -0
  69. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route_client-reference-manifest.js +2 -0
  70. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js +2 -2
  71. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
  72. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js +3 -4
  73. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
  74. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js +3 -4
  75. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
  76. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js +3 -4
  77. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
  78. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js +3 -4
  79. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -1
  80. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js +3 -4
  81. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
  82. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js +3 -4
  83. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
  84. package/.next/standalone/packages/ui/.next/server/app/page/build-manifest.json +5 -4
  85. package/.next/standalone/packages/ui/.next/server/app/page.js +2 -2
  86. package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
  87. package/.next/standalone/packages/ui/.next/server/app/page_client-reference-manifest.js +1 -1
  88. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page/app-paths-manifest.json +3 -0
  89. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page/build-manifest.json +18 -0
  90. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page/next-font-manifest.json +6 -0
  91. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page/react-loadable-manifest.json +1 -0
  92. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page/server-reference-manifest.json +4 -0
  93. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js +21 -0
  94. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.map +5 -0
  95. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -0
  96. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +2 -0
  97. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page/app-paths-manifest.json +3 -0
  98. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page/build-manifest.json +18 -0
  99. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page/next-font-manifest.json +6 -0
  100. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page/react-loadable-manifest.json +1 -0
  101. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page/server-reference-manifest.json +4 -0
  102. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js +21 -0
  103. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.map +5 -0
  104. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -0
  105. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page_client-reference-manifest.js +2 -0
  106. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page/app-paths-manifest.json +3 -0
  107. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page/build-manifest.json +18 -0
  108. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page/next-font-manifest.json +6 -0
  109. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page/react-loadable-manifest.json +1 -0
  110. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page/server-reference-manifest.json +4 -0
  111. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js +20 -0
  112. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.map +5 -0
  113. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -0
  114. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page_client-reference-manifest.js +2 -0
  115. package/.next/standalone/packages/ui/.next/server/app/projects/page/app-paths-manifest.json +3 -0
  116. package/.next/standalone/packages/ui/.next/server/app/projects/page/build-manifest.json +18 -0
  117. package/.next/standalone/packages/ui/.next/server/app/projects/page/next-font-manifest.json +6 -0
  118. package/.next/standalone/packages/ui/.next/server/app/projects/page/react-loadable-manifest.json +1 -0
  119. package/.next/standalone/packages/ui/.next/server/app/projects/page/server-reference-manifest.json +4 -0
  120. package/.next/standalone/packages/ui/.next/server/app/projects/page.js +19 -0
  121. package/.next/standalone/packages/ui/.next/server/app/projects/page.js.map +5 -0
  122. package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -0
  123. package/.next/standalone/packages/ui/.next/server/app/projects/page_client-reference-manifest.js +2 -0
  124. package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -0
  125. package/.next/standalone/packages/ui/.next/server/app/projects.meta +14 -0
  126. package/.next/standalone/packages/ui/.next/server/app/projects.rsc +34 -0
  127. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +34 -0
  128. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +27 -0
  129. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +9 -0
  130. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +9 -0
  131. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +4 -0
  132. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page/build-manifest.json +5 -4
  133. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js +4 -4
  134. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
  135. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
  136. package/.next/standalone/packages/ui/.next/server/app/specs/page/build-manifest.json +5 -4
  137. package/.next/standalone/packages/ui/.next/server/app/specs/page.js +2 -2
  138. package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
  139. package/.next/standalone/packages/ui/.next/server/app/specs/page_client-reference-manifest.js +1 -1
  140. package/.next/standalone/packages/ui/.next/server/app/stats/page/build-manifest.json +5 -4
  141. package/.next/standalone/packages/ui/.next/server/app/stats/page.js +2 -2
  142. package/.next/standalone/packages/ui/.next/server/app/stats/page.js.nft.json +1 -1
  143. package/.next/standalone/packages/ui/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  144. package/.next/standalone/packages/ui/.next/server/app-paths-manifest.json +9 -0
  145. package/.next/standalone/packages/ui/.next/server/chunks/6681a__next-internal_server_app_api_projects_[id]_specs_[spec]_route_actions_d018d9e0.js +3 -0
  146. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_stats_route_actions_a0bb04a8.js +3 -0
  147. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0fbfea15._.js +3 -0
  148. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__126dea7b._.js +3 -0
  149. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__1f037512._.js +3 -0
  150. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3559376c._.js +21 -0
  151. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__548e27d4._.js +3 -0
  152. package/.next/standalone/packages/ui/.next/server/chunks/{[root-of-the-server]__d293d769._.js → [root-of-the-server]__65667b70._.js} +2 -2
  153. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__675a763e._.js +3 -0
  154. package/.next/standalone/packages/ui/.next/server/chunks/{[root-of-the-server]__c83721f3._.js → [root-of-the-server]__803d07f0._.js} +2 -2
  155. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8075fe29._.js +3 -0
  156. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8233e09b._.js +3 -0
  157. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__84cdc14a._.js +3 -0
  158. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9ce722b4._.js +3 -0
  159. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__a2d7cbed._.js +3 -0
  160. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__aa677b0d._.js +3 -0
  161. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__ac744182._.js +3 -0
  162. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__bb9fca84._.js +4 -0
  163. package/.next/standalone/packages/ui/.next/server/chunks/{[root-of-the-server]__fad83967._.js → [root-of-the-server]__bdc3963a._.js} +2 -2
  164. package/.next/standalone/packages/ui/.next/server/chunks/{[root-of-the-server]__57791a48._.js → [root-of-the-server]__f5c6d6b8._.js} +2 -2
  165. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__fb91986f._.js +3 -0
  166. package/.next/standalone/packages/ui/.next/server/chunks/f825c_server_app_api_local-projects_list-directory_route_actions_d620ec1a.js +3 -0
  167. package/.next/standalone/packages/ui/.next/server/chunks/f825c_server_app_api_projects_[id]_specs_[spec]_status_route_actions_e9f1bdc5.js +3 -0
  168. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_projects_[id]_route_actions_bff49675.js +3 -0
  169. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_db_index_ts_556307fa._.js +64 -5
  170. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_0bd881ee._.js +3 -0
  171. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_baa0160d._.js +3 -0
  172. package/.next/standalone/packages/ui/.next/server/chunks/ssr/38a22_sonner_dist_index_mjs_207730fe._.js +3 -0
  173. package/.next/standalone/packages/ui/.next/server/chunks/ssr/6e9bd_next_dist_7af75658._.js +3 -0
  174. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_a5b58449._.js → 6e9bd_next_dist_df5dcbe9._.js} +2 -2
  175. package/.next/standalone/packages/ui/.next/server/chunks/ssr/730ea_ui__next-internal_server_app_projects_[projectId]_specs_page_actions_82e32fe4.js +3 -0
  176. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__01bfc8ff._.js +3 -0
  177. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__1d0c2012._.js +1 -1
  178. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__4ec37765._.js +3 -0
  179. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__1af33d49._.js → [root-of-the-server]__50122e7e._.js} +2 -2
  180. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__34ab4950._.js → [root-of-the-server]__5382b397._.js} +2 -2
  181. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__73f60f12._.js +7 -0
  182. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__88a691ee._.js +3 -0
  183. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a7ae8552._.js +7 -0
  184. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__bdbbba01._.js +3 -0
  185. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__c592f5d1._.js +3 -0
  186. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__cc589a54._.js +3 -0
  187. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ec5b96a5._.js +3 -0
  188. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__cbbbfb5d._.js → [root-of-the-server]__fd80e4dd._.js} +2 -2
  189. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_000dd317._.js +1 -1
  190. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_196b5a83._.js +3 -0
  191. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_39562b2a._.js +4 -0
  192. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_3b617676._.js +1 -1
  193. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_4129cc0f._.js +3 -0
  194. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_6174313a._.js +3 -0
  195. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_6e4dd8b6._.js +3 -0
  196. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_85effc18._.js +4 -0
  197. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ad8c1e99._.js +1 -1
  198. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_bae6d2b8._.js +4 -0
  199. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_c2f54661._.js +5 -0
  200. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_fdd7780b._.js +4 -0
  201. package/.next/standalone/packages/ui/.next/server/chunks/ssr/f825c_server_app_projects_[projectId]_specs_[specId]_page_actions_22d9c35e.js +3 -0
  202. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_af9d3830._.js +3 -0
  203. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_projects_[projectId]_page_actions_f2986585.js +3 -0
  204. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_projects_page_actions_715940ea.js +3 -0
  205. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_[projectId]_be242d6c._.js +3 -0
  206. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_[projectId]_project-context-syncer_tsx_7954ea3b._.js +3 -0
  207. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_page_tsx_6e166c8e._.js +3 -0
  208. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_specs_specs-client_tsx_0bb8f8f8._.js +1 -1
  209. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_ui_select_tsx_7e21d40f._.js +3 -0
  210. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_lib_specs_sources_database-source_ts_f7186c2a._.js +60 -1
  211. package/.next/standalone/packages/ui/.next/server/middleware-build-manifest.js +5 -4
  212. package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
  213. package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
  214. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
  215. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
  216. package/.next/standalone/packages/ui/.next/static/chunks/07f48b316e895080.js +1 -0
  217. package/.next/standalone/packages/ui/.next/static/chunks/0a7be410b438418a.js +1 -0
  218. package/.next/standalone/packages/ui/.next/static/chunks/1089ca88f6bef846.js +1 -0
  219. package/.next/standalone/packages/ui/.next/static/chunks/17471c87082c392c.js +5 -0
  220. package/.next/standalone/packages/ui/.next/static/chunks/220ba5cb8fe4dd69.js +1 -0
  221. package/.next/standalone/packages/ui/.next/static/chunks/35ccd3286e538bd2.js +1 -0
  222. package/.next/standalone/packages/ui/.next/static/chunks/571033caca823138.js +1 -0
  223. package/.next/standalone/packages/ui/.next/static/chunks/5a6fc30cd64085b4.css +1 -0
  224. package/.next/standalone/packages/ui/.next/static/chunks/5c2072ad938de8ed.js +1 -0
  225. package/.next/standalone/packages/ui/.next/static/chunks/843e1dfdc28e1385.js +1 -0
  226. package/.next/standalone/packages/ui/.next/static/chunks/9dad7fd31627df80.js +1 -0
  227. package/.next/standalone/packages/ui/.next/static/chunks/{c3d4d07de959ecf1.js → a055d4b2866ff8d4.js} +1 -1
  228. package/.next/standalone/packages/ui/.next/static/chunks/afb7c5a4255f4081.js +3 -0
  229. package/.next/standalone/packages/ui/.next/static/chunks/{c557ac675be79771.js → b760a3a9c2c8be28.js} +1 -1
  230. package/.next/standalone/packages/ui/.next/static/chunks/dcdd95180149fa10.js +1 -0
  231. package/.next/standalone/packages/ui/.next/static/chunks/ebd89051637b9a47.js +4 -0
  232. package/.next/standalone/packages/ui/.next/static/chunks/f9db24028d8c058e.js +1 -0
  233. package/.next/standalone/packages/ui/.next/static/chunks/fb640f50455ba34f.js +1 -0
  234. package/.next/standalone/packages/ui/.next/static/chunks/turbopack-b9690cacbf9fe48c.js +3 -0
  235. package/.next/standalone/packages/ui/bin/ui.js +17 -7
  236. package/.next/standalone/packages/ui/package.json +2 -1
  237. package/.next/standalone/packages/ui/src/app/api/local-projects/list-directory/route.ts +38 -0
  238. package/.next/standalone/packages/ui/src/app/api/projects/[id]/route.ts +97 -0
  239. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/route.ts +38 -0
  240. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/status/route.ts +97 -0
  241. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/route.ts +7 -0
  242. package/.next/standalone/packages/ui/src/app/api/projects/[id]/stats/route.ts +19 -0
  243. package/.next/standalone/packages/ui/src/app/api/projects/route.ts +48 -1
  244. package/.next/standalone/packages/ui/src/app/dashboard-client.tsx +67 -6
  245. package/.next/standalone/packages/ui/src/app/layout.tsx +11 -8
  246. package/.next/standalone/packages/ui/src/app/not-found.tsx +1 -1
  247. package/.next/standalone/packages/ui/src/app/projects/[projectId]/layout.tsx +18 -0
  248. package/.next/standalone/packages/ui/src/app/projects/[projectId]/page.tsx +10 -0
  249. package/.next/standalone/packages/ui/src/app/projects/[projectId]/project-context-syncer.tsx +16 -0
  250. package/.next/standalone/packages/ui/src/app/projects/[projectId]/specs/[specId]/page.tsx +34 -0
  251. package/.next/standalone/packages/ui/src/app/projects/[projectId]/specs/page.tsx +20 -0
  252. package/.next/standalone/packages/ui/src/app/projects/page.tsx +156 -0
  253. package/.next/standalone/packages/ui/src/app/specs/specs-client.tsx +7 -2
  254. package/.next/standalone/packages/ui/src/components/create-project-dialog.tsx +139 -0
  255. package/.next/standalone/packages/ui/src/components/directory-picker.tsx +191 -0
  256. package/.next/standalone/packages/ui/src/components/main-sidebar.tsx +4 -0
  257. package/.next/standalone/packages/ui/src/components/project-switcher.tsx +105 -196
  258. package/.next/standalone/packages/ui/src/components/ui/dropdown-menu.tsx +200 -0
  259. package/.next/standalone/packages/ui/src/components/ui/popover.tsx +31 -0
  260. package/.next/standalone/packages/ui/src/contexts/project-context.tsx +10 -6
  261. package/.next/standalone/packages/ui/src/lib/db/index.ts +100 -0
  262. package/.next/standalone/packages/ui/src/lib/projects/registry.ts +77 -3
  263. package/.next/standalone/packages/ui/src/lib/specs/sources/multi-project-source.ts +4 -4
  264. package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
  265. package/.next/static/chunks/07f48b316e895080.js +1 -0
  266. package/.next/static/chunks/0a7be410b438418a.js +1 -0
  267. package/.next/static/chunks/1089ca88f6bef846.js +1 -0
  268. package/.next/static/chunks/17471c87082c392c.js +5 -0
  269. package/.next/static/chunks/220ba5cb8fe4dd69.js +1 -0
  270. package/.next/static/chunks/35ccd3286e538bd2.js +1 -0
  271. package/.next/static/chunks/571033caca823138.js +1 -0
  272. package/.next/static/chunks/5a6fc30cd64085b4.css +1 -0
  273. package/.next/static/chunks/5c2072ad938de8ed.js +1 -0
  274. package/.next/static/chunks/843e1dfdc28e1385.js +1 -0
  275. package/.next/static/chunks/9dad7fd31627df80.js +1 -0
  276. package/.next/static/chunks/{c3d4d07de959ecf1.js → a055d4b2866ff8d4.js} +1 -1
  277. package/.next/static/chunks/afb7c5a4255f4081.js +3 -0
  278. package/.next/static/chunks/{c557ac675be79771.js → b760a3a9c2c8be28.js} +1 -1
  279. package/.next/static/chunks/dcdd95180149fa10.js +1 -0
  280. package/.next/static/chunks/ebd89051637b9a47.js +4 -0
  281. package/.next/static/chunks/f9db24028d8c058e.js +1 -0
  282. package/.next/static/chunks/fb640f50455ba34f.js +1 -0
  283. package/.next/static/chunks/turbopack-b9690cacbf9fe48c.js +3 -0
  284. package/bin/ui.js +17 -7
  285. package/package.json +2 -1
  286. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__175bef84._.js +0 -3
  287. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__4b3c3001._.js +0 -21
  288. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__4b77d48f._.js +0 -3
  289. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__60b6d106._.js +0 -3
  290. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__a627840f._.js +0 -3
  291. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__beb134c0._.js +0 -3
  292. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__c6689757._.js +0 -3
  293. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__c8a20942._.js +0 -3
  294. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__cd1fb0a2._.js +0 -4
  295. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__dfa71dcd._.js +0 -3
  296. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e9ba3fa9._.js +0 -3
  297. package/.next/standalone/packages/ui/.next/server/chunks/ecee3_js-yaml_dist_js-yaml_mjs_0775f118._.js +0 -3
  298. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a9d7fd42._.js +0 -3
  299. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b2fe773d._.js +0 -3
  300. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b3633d6e._.js +0 -3
  301. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__e79a982a._.js +0 -7
  302. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ff03fc1e._.js +0 -7
  303. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_66209e84._.js +0 -3
  304. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_6cd9a5e0._.js +0 -3
  305. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_b483c9fe._.js +0 -3
  306. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_b5040d31._.js +0 -5
  307. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_9710705b._.js +0 -3
  308. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_b8ff10b9._.js +0 -3
  309. package/.next/standalone/packages/ui/.next/static/chunks/093ea4b175adb770.js +0 -1
  310. package/.next/standalone/packages/ui/.next/static/chunks/5f97d665a4d9dc62.js +0 -3
  311. package/.next/standalone/packages/ui/.next/static/chunks/9b7b7024c39c5f99.js +0 -1
  312. package/.next/standalone/packages/ui/.next/static/chunks/aa47b212786d8695.js +0 -1
  313. package/.next/standalone/packages/ui/.next/static/chunks/ae04dcd433be6dab.js +0 -1
  314. package/.next/standalone/packages/ui/.next/static/chunks/c0576ccd1437ac5e.css +0 -1
  315. package/.next/standalone/packages/ui/.next/static/chunks/c0fe4c94c7282ac0.js +0 -4
  316. package/.next/standalone/packages/ui/.next/static/chunks/c61cbb6a0ba3b6ab.js +0 -1
  317. package/.next/standalone/packages/ui/.next/static/chunks/d79bf953f0dfb650.js +0 -1
  318. package/.next/standalone/packages/ui/.next/static/chunks/e50fb8d0b728cd35.js +0 -5
  319. package/.next/standalone/packages/ui/.next/static/chunks/e6e238dbf1d3e740.js +0 -1
  320. package/.next/standalone/packages/ui/.next/static/chunks/turbopack-9cc79aa1b34ffcbe.js +0 -3
  321. package/.next/static/chunks/093ea4b175adb770.js +0 -1
  322. package/.next/static/chunks/5f97d665a4d9dc62.js +0 -3
  323. package/.next/static/chunks/9b7b7024c39c5f99.js +0 -1
  324. package/.next/static/chunks/aa47b212786d8695.js +0 -1
  325. package/.next/static/chunks/ae04dcd433be6dab.js +0 -1
  326. package/.next/static/chunks/c0576ccd1437ac5e.css +0 -1
  327. package/.next/static/chunks/c0fe4c94c7282ac0.js +0 -4
  328. package/.next/static/chunks/c61cbb6a0ba3b6ab.js +0 -1
  329. package/.next/static/chunks/d79bf953f0dfb650.js +0 -1
  330. package/.next/static/chunks/e50fb8d0b728cd35.js +0 -5
  331. package/.next/static/chunks/e6e238dbf1d3e740.js +0 -1
  332. package/.next/static/chunks/turbopack-9cc79aa1b34ffcbe.js +0 -3
  333. /package/.next/standalone/packages/ui/.next/static/{fMRsihZys1Dhy9qQRwNrc → T1wNN9JmkdwBabQsqL-tC}/_buildManifest.js +0 -0
  334. /package/.next/standalone/packages/ui/.next/static/{fMRsihZys1Dhy9qQRwNrc → T1wNN9JmkdwBabQsqL-tC}/_clientMiddlewareManifest.json +0 -0
  335. /package/.next/standalone/packages/ui/.next/static/{fMRsihZys1Dhy9qQRwNrc → T1wNN9JmkdwBabQsqL-tC}/_ssgManifest.js +0 -0
  336. /package/.next/static/{fMRsihZys1Dhy9qQRwNrc → T1wNN9JmkdwBabQsqL-tC}/_buildManifest.js +0 -0
  337. /package/.next/static/{fMRsihZys1Dhy9qQRwNrc → T1wNN9JmkdwBabQsqL-tC}/_clientMiddlewareManifest.json +0 -0
  338. /package/.next/static/{fMRsihZys1Dhy9qQRwNrc → T1wNN9JmkdwBabQsqL-tC}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},12714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},66680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},67708,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(92194);let n=[{pattern:/design|ui|ux|mockup|wireframe|prototype/i,iconName:"Palette",color:"text-purple-600"},{pattern:/architecture|structure|system|diagram/i,iconName:"Map",color:"text-indigo-600"},{pattern:/implementation|code|develop|build/i,iconName:"Code",color:"text-green-600"},{pattern:/api|endpoint|integration|interface/i,iconName:"Code",color:"text-blue-600"},{pattern:/test|qa|quality|validation/i,iconName:"TestTube",color:"text-orange-600"},{pattern:/task|todo|checklist|milestone/i,iconName:"CheckSquare",color:"text-gray-600"},{pattern:/config|setup|settings|environment/i,iconName:"Wrench",color:"text-yellow-600"},{pattern:/deploy|devops|ci|cd|pipeline|release/i,iconName:"Wrench",color:"text-orange-600"},{pattern:/migration|upgrade|refactor|transition/i,iconName:"GitBranch",color:"text-cyan-600"},{pattern:/security|auth|permission|access|encryption/i,iconName:"CheckSquare",color:"text-red-600"},{pattern:/performance|optimization|speed|cache|benchmark/i,iconName:"TrendingUp",color:"text-green-600"},{pattern:/database|data|schema|model|query/i,iconName:"FileText",color:"text-blue-600"},{pattern:/doc|guide|manual|reference/i,iconName:"FileText",color:"text-gray-500"},{pattern:/github|git|vcs|version/i,iconName:"GitBranch",color:"text-pink-600"}],o={iconName:"FileText",color:"text-gray-600"};function s(e){let s=[];if(!(0,t.existsSync)(e))return s;try{for(let i of(0,t.readdirSync)(e)){if("README.md"===i||!i.endsWith(".md"))continue;let l=(0,r.join)(e,i);if((0,t.statSync)(l).isFile())try{let e=(0,t.readFileSync)(l,"utf-8"),{content:r}=(0,a.default)(e),c=function(e){let t=e.replace(/\.md$/i,"");for(let{pattern:e,iconName:r,color:a}of n)if(e.test(t))return{iconName:r,color:a};return o}(i);s.push({name:i.replace(/\.md$/i,"").split(/[-_]/).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" "),file:i,iconName:c.iconName,color:c.color,content:r})}catch(e){console.error(`Error reading sub-spec ${i}:`,e)}}s.sort((e,t)=>e.file.localeCompare(t.file))}catch(t){console.error(`Error reading spec directory ${e}:`,t)}return s}e.s(["detectSubSpecs",()=>s])},68239,e=>{"use strict";var t=e.i(44271),r=e.i(67708),a=e.i(14747),n=e.i(2157),o=e.i(92194);let s=(0,a.resolve)(process.cwd(),"../../specs");function i(e){return e?Array.isArray(e)?e.map(e=>String(e)):"string"==typeof e?[e]:[]:[]}async function l(e,l){let c=await t.specsService.getSpec(e,l);if(!c)return null;let p={...c,tags:c.tags?"string"==typeof c.tags?JSON.parse(c.tags):c.tags:null};if(!l){let e,t,l=(e=c.filePath.replace(/^specs\//,"").replace(/\/README\.md$/,""),(0,a.join)((t=process.env.SPECS_DIR)?t.startsWith("/")?t:(0,a.resolve)(process.cwd(),t):s,e)),u=(0,r.detectSubSpecs)(l),d=function(e){try{let t=(0,a.join)(e,"README.md"),r=(0,n.readFileSync)(t,"utf-8"),{data:s}=(0,o.default)(r),l=i(s?.depends_on??s?.dependsOn),c=i(s?.related);return{dependsOn:l,related:c}}catch(e){return console.warn("Unable to parse spec relationships",e),{dependsOn:[],related:[]}}}(l);return{...p,subSpecs:u,relationships:d}}return p}async function c(e){let r=await t.specsService.getAllSpecs(e),a=new Map,n=new Map;for(let e of r)e.status&&a.set(e.status,(a.get(e.status)||0)+1),e.priority&&n.set(e.priority,(n.get(e.priority)||0)+1);let o=a.get("complete")||0,s=r.length>0?o/r.length*100:0;return{totalProjects:1,totalSpecs:r.length,specsByStatus:Array.from(a.entries()).map(([e,t])=>({status:e,count:t})),specsByPriority:Array.from(n.entries()).map(([e,t])=>({priority:e,count:t})),completionRate:Math.round(10*s)/10}}e.s(["getSpecById",()=>l,"getStats",()=>c])},68853,e=>{"use strict";var t=e.i(6169),r=e.i(25864),a=e.i(71648),n=e.i(30064),o=e.i(74222),s=e.i(2043),i=e.i(71408),l=e.i(26527),c=e.i(30592),p=e.i(34639),u=e.i(88935),d=e.i(68515),f=e.i(87166),h=e.i(76718),x=e.i(76529),m=e.i(51151),g=e.i(93695);e.i(59704);var v=e.i(8259),y=e.i(31511),R=e.i(68239);async function w(e,{params:t}){try{let{id:e,file:r}=await t,a=await (0,R.getSpecById)(e);if(!a)return y.NextResponse.json({error:"Spec not found"},{status:404});let n=a.subSpecs?.find(e=>e.file===r);if(!n)return y.NextResponse.json({error:"Sub-spec not found"},{status:404});return y.NextResponse.json({subSpec:n},{headers:{"Cache-Control":"public, s-maxage=60, stale-while-revalidate=120"}})}catch(e){return console.error("Error fetching sub-spec:",e),y.NextResponse.json({error:"Failed to fetch sub-spec"},{status:500})}}e.s(["GET",()=>w],81681);var E=e.i(81681);let b=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/specs/[id]/subspecs/[file]/route",pathname:"/api/specs/[id]/subspecs/[file]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/packages/ui/src/app/api/specs/[id]/subspecs/[file]/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:S,workUnitAsyncStorage:C,serverHooks:N}=b;function A(){return(0,a.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:C})}async function _(e,t,a){b.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/specs/[id]/subspecs/[file]/route";y=y.replace(/\/index$/,"")||"/";let R=await b.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:E,nextConfig:S,parsedUrl:C,isDraftMode:N,prerenderManifest:A,routerServerContext:_,isOnDemandRevalidate:q,revalidateOnlyGenerated:T,resolvedPathname:k,clientReferenceManifest:P,serverActionsManifest:j}=R,O=(0,l.normalizeAppPath)(y),M=!!(A.dynamicRoutes[O]||A.routes[k]),U=async()=>((null==_?void 0:_.render404)?await _.render404(e,t,C,!1):t.end("This page could not be found"),null);if(M&&!N){let e=!!A.routes[k],t=A.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(S.experimental.adapterPath)return await U();throw new g.NoFallbackError}}let I=null;!M||b.isDev||N||(I="/index"===(I=k)?"/":I);let D=!0===b.isDev||!M,H=M&&!D;j&&P&&(0,s.setReferenceManifestsSingleton)({page:y,clientReferenceManifest:P,serverActionsManifest:j,serverModuleMap:(0,i.createServerModuleMap)({serverActionsManifest:j})});let F=e.method||"GET",$=(0,o.getTracer)(),B=$.getActiveScopeSpan(),K={params:E,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:S.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a)=>b.onRequestError(e,t,a,_)},sharedContext:{buildId:w}},G=new c.NodeNextRequest(e),L=new c.NodeNextResponse(t),W=p.NextRequestAdapter.fromNodeNextRequest(G,(0,p.signalFromNodeResponse)(t));try{let s=async e=>b.handle(W,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${F} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${F} ${y}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var o,l;let c=async({previousCacheEntry:r})=>{try{if(!i&&q&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await s(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let c=K.renderOpts.collectedTags;if(!M)return await (0,f.sendResponse)(G,L,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);c&&(t[m.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:q})},_),t}},p=await b.handleResponse({req:e,nextConfig:S,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:q,revalidateOnlyGenerated:T,responseGenerator:c,waitUntil:a.waitUntil,isMinimalMode:i});if(!M)return null;if((null==p||null==(o=p.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(l=p.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",q?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),N&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,h.fromNodeOutgoingHttpHeaders)(p.value.headers);return i&&M||u.delete(m.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,x.getCacheControlHeader)(p.cacheControl)),await (0,f.sendResponse)(G,L,new Response(p.value.body,{headers:u,status:p.value.status||200})),null};B?await l(B):await $.withPropagatedContext(e.headers,()=>$.trace(u.BaseServerSpan.handleRequest,{spanName:`${F} ${y}`,kind:o.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:q})}),M)throw t;return await (0,f.sendResponse)(G,L,new Response(null,{status:500})),null}}e.s(["handler",()=>_,"patchFetch",()=>A,"routeModule",()=>b,"serverHooks",()=>N,"workAsyncStorage",()=>S,"workUnitAsyncStorage",()=>C],68853)},14430,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__ae726e9c._.js","server/chunks/packages_ui_src_lib_db_index_ts_556307fa._.js"].map(t=>e.l(t))).then(()=>t(18146)))}];
1
+ module.exports=[50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},12714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},66680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},67708,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(92194);let n=[{pattern:/design|ui|ux|mockup|wireframe|prototype/i,iconName:"Palette",color:"text-purple-600"},{pattern:/architecture|structure|system|diagram/i,iconName:"Map",color:"text-indigo-600"},{pattern:/implementation|code|develop|build/i,iconName:"Code",color:"text-green-600"},{pattern:/api|endpoint|integration|interface/i,iconName:"Code",color:"text-blue-600"},{pattern:/test|qa|quality|validation/i,iconName:"TestTube",color:"text-orange-600"},{pattern:/task|todo|checklist|milestone/i,iconName:"CheckSquare",color:"text-gray-600"},{pattern:/config|setup|settings|environment/i,iconName:"Wrench",color:"text-yellow-600"},{pattern:/deploy|devops|ci|cd|pipeline|release/i,iconName:"Wrench",color:"text-orange-600"},{pattern:/migration|upgrade|refactor|transition/i,iconName:"GitBranch",color:"text-cyan-600"},{pattern:/security|auth|permission|access|encryption/i,iconName:"CheckSquare",color:"text-red-600"},{pattern:/performance|optimization|speed|cache|benchmark/i,iconName:"TrendingUp",color:"text-green-600"},{pattern:/database|data|schema|model|query/i,iconName:"FileText",color:"text-blue-600"},{pattern:/doc|guide|manual|reference/i,iconName:"FileText",color:"text-gray-500"},{pattern:/github|git|vcs|version/i,iconName:"GitBranch",color:"text-pink-600"}],o={iconName:"FileText",color:"text-gray-600"};function s(e){let s=[];if(!(0,t.existsSync)(e))return s;try{for(let i of(0,t.readdirSync)(e)){if("README.md"===i||!i.endsWith(".md"))continue;let l=(0,r.join)(e,i);if((0,t.statSync)(l).isFile())try{let e=(0,t.readFileSync)(l,"utf-8"),{content:r}=(0,a.default)(e),c=function(e){let t=e.replace(/\.md$/i,"");for(let{pattern:e,iconName:r,color:a}of n)if(e.test(t))return{iconName:r,color:a};return o}(i);s.push({name:i.replace(/\.md$/i,"").split(/[-_]/).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" "),file:i,iconName:c.iconName,color:c.color,content:r})}catch(e){console.error(`Error reading sub-spec ${i}:`,e)}}s.sort((e,t)=>e.file.localeCompare(t.file))}catch(t){console.error(`Error reading spec directory ${e}:`,t)}return s}e.s(["detectSubSpecs",()=>s])},68239,e=>{"use strict";var t=e.i(44271),r=e.i(67708),a=e.i(14747),n=e.i(2157),o=e.i(92194);let s=(0,a.resolve)(process.cwd(),"../../specs");function i(e){return e?Array.isArray(e)?e.map(e=>String(e)):"string"==typeof e?[e]:[]:[]}async function l(e,l){let c=await t.specsService.getSpec(e,l);if(!c)return null;let p={...c,tags:c.tags?"string"==typeof c.tags?JSON.parse(c.tags):c.tags:null};if(!l){let e,t,l=(e=c.filePath.replace(/^specs\//,"").replace(/\/README\.md$/,""),(0,a.join)((t=process.env.SPECS_DIR)?t.startsWith("/")?t:(0,a.resolve)(process.cwd(),t):s,e)),u=(0,r.detectSubSpecs)(l),d=function(e){try{let t=(0,a.join)(e,"README.md"),r=(0,n.readFileSync)(t,"utf-8"),{data:s}=(0,o.default)(r),l=i(s?.depends_on??s?.dependsOn),c=i(s?.related);return{dependsOn:l,related:c}}catch(e){return console.warn("Unable to parse spec relationships",e),{dependsOn:[],related:[]}}}(l);return{...p,subSpecs:u,relationships:d}}return p}async function c(e){let r=await t.specsService.getAllSpecs(e),a=new Map,n=new Map;for(let e of r)e.status&&a.set(e.status,(a.get(e.status)||0)+1),e.priority&&n.set(e.priority,(n.get(e.priority)||0)+1);let o=a.get("complete")||0,s=r.length>0?o/r.length*100:0;return{totalProjects:1,totalSpecs:r.length,specsByStatus:Array.from(a.entries()).map(([e,t])=>({status:e,count:t})),specsByPriority:Array.from(n.entries()).map(([e,t])=>({priority:e,count:t})),completionRate:Math.round(10*s)/10}}e.s(["getSpecById",()=>l,"getStats",()=>c])},68853,e=>{"use strict";var t=e.i(6169),r=e.i(25864),a=e.i(71648),n=e.i(30064),o=e.i(74222),s=e.i(2043),i=e.i(71408),l=e.i(26527),c=e.i(30592),p=e.i(34639),u=e.i(88935),d=e.i(68515),f=e.i(87166),h=e.i(76718),x=e.i(76529),m=e.i(51151),g=e.i(93695);e.i(59704);var v=e.i(8259),y=e.i(31511),R=e.i(68239);async function w(e,{params:t}){try{let{id:e,file:r}=await t,a=await (0,R.getSpecById)(e);if(!a)return y.NextResponse.json({error:"Spec not found"},{status:404});let n=a.subSpecs?.find(e=>e.file===r);if(!n)return y.NextResponse.json({error:"Sub-spec not found"},{status:404});return y.NextResponse.json({subSpec:n},{headers:{"Cache-Control":"public, s-maxage=60, stale-while-revalidate=120"}})}catch(e){return console.error("Error fetching sub-spec:",e),y.NextResponse.json({error:"Failed to fetch sub-spec"},{status:500})}}e.s(["GET",()=>w],81681);var E=e.i(81681);let b=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/specs/[id]/subspecs/[file]/route",pathname:"/api/specs/[id]/subspecs/[file]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/packages/ui/src/app/api/specs/[id]/subspecs/[file]/route.ts",nextConfigOutput:"standalone",userland:E}),{workAsyncStorage:S,workUnitAsyncStorage:C,serverHooks:N}=b;function A(){return(0,a.patchFetch)({workAsyncStorage:S,workUnitAsyncStorage:C})}async function _(e,t,a){b.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/specs/[id]/subspecs/[file]/route";y=y.replace(/\/index$/,"")||"/";let R=await b.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:E,nextConfig:S,parsedUrl:C,isDraftMode:N,prerenderManifest:A,routerServerContext:_,isOnDemandRevalidate:q,revalidateOnlyGenerated:T,resolvedPathname:k,clientReferenceManifest:P,serverActionsManifest:j}=R,O=(0,l.normalizeAppPath)(y),M=!!(A.dynamicRoutes[O]||A.routes[k]),U=async()=>((null==_?void 0:_.render404)?await _.render404(e,t,C,!1):t.end("This page could not be found"),null);if(M&&!N){let e=!!A.routes[k],t=A.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(S.experimental.adapterPath)return await U();throw new g.NoFallbackError}}let I=null;!M||b.isDev||N||(I="/index"===(I=k)?"/":I);let D=!0===b.isDev||!M,H=M&&!D;j&&P&&(0,s.setReferenceManifestsSingleton)({page:y,clientReferenceManifest:P,serverActionsManifest:j,serverModuleMap:(0,i.createServerModuleMap)({serverActionsManifest:j})});let F=e.method||"GET",$=(0,o.getTracer)(),B=$.getActiveScopeSpan(),K={params:E,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:S.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a)=>b.onRequestError(e,t,a,_)},sharedContext:{buildId:w}},G=new c.NodeNextRequest(e),L=new c.NodeNextResponse(t),W=p.NextRequestAdapter.fromNodeNextRequest(G,(0,p.signalFromNodeResponse)(t));try{let s=async e=>b.handle(W,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${F} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${F} ${y}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var o,l;let c=async({previousCacheEntry:r})=>{try{if(!i&&q&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await s(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let c=K.renderOpts.collectedTags;if(!M)return await (0,f.sendResponse)(G,L,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);c&&(t[m.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:q})},_),t}},p=await b.handleResponse({req:e,nextConfig:S,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:q,revalidateOnlyGenerated:T,responseGenerator:c,waitUntil:a.waitUntil,isMinimalMode:i});if(!M)return null;if((null==p||null==(o=p.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==p||null==(l=p.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",q?"REVALIDATED":p.isMiss?"MISS":p.isStale?"STALE":"HIT"),N&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,h.fromNodeOutgoingHttpHeaders)(p.value.headers);return i&&M||u.delete(m.NEXT_CACHE_TAGS_HEADER),!p.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,x.getCacheControlHeader)(p.cacheControl)),await (0,f.sendResponse)(G,L,new Response(p.value.body,{headers:u,status:p.value.status||200})),null};B?await l(B):await $.withPropagatedContext(e.headers,()=>$.trace(u.BaseServerSpan.handleRequest,{spanName:`${F} ${y}`,kind:o.SpanKind.SERVER,attributes:{"http.method":F,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:q})}),M)throw t;return await (0,f.sendResponse)(G,L,new Response(null,{status:500})),null}}e.s(["handler",()=>_,"patchFetch",()=>A,"routeModule",()=>b,"serverHooks",()=>N,"workAsyncStorage",()=>S,"workUnitAsyncStorage",()=>C],68853)},14430,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__ae726e9c._.js","server/chunks/packages_ui_src_lib_db_index_ts_556307fa._.js"].map(t=>e.l(t))).then(()=>t(18146)))}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__57791a48._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__f5c6d6b8._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},12714,(e,t,r)=>{t.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},66680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},60526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},22734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},84347,e=>{"use strict";var t=e.i(12714),r=e.i(50227),a=e.i(66680),o=e.i(60526),i=e.i(81347);let s=r.join((0,o.homedir)(),".lean-spec","projects.yaml"),n=new class{config=null;generateProjectId(e){return(0,a.createHash)("sha256").update(e).digest("hex").substring(0,12)}async loadConfig(){if(this.config)return this.config;try{let e=r.dirname(s);await t.mkdir(e,{recursive:!0});let a=await t.readFile(s,"utf-8"),o=i.default.load(a),n=(o.projects||[]).map(e=>({...e,lastAccessed:e.lastAccessed?new Date(e.lastAccessed):new Date}));this.config={projects:n,recentProjects:o.recentProjects||[]}}catch(e){if("ENOENT"===e.code)this.config={projects:[],recentProjects:[]};else throw e}return this.config}async saveConfig(){if(!this.config)return;let e=r.dirname(s);await t.mkdir(e,{recursive:!0});let a={projects:this.config.projects.map(e=>({...e,lastAccessed:e.lastAccessed.toISOString()})),recentProjects:this.config.recentProjects},o=i.default.dump(a,{indent:2,lineWidth:100});await t.writeFile(s,o,"utf-8")}async validateProject(e){try{let a,o,s=r.resolve(e);if(!(await t.stat(s)).isDirectory())return{isValid:!1,path:s,error:"Path is not a directory"};let n=r.join(s,".lean-spec"),c=r.join(s,"specs");try{await t.access(n);let e=r.join(n,"../specs");try{await t.access(e),a=e}catch{a=c}}catch{try{await t.access(c),a=c}catch{return{isValid:!1,path:s,error:"No .lean-spec directory or specs directory found"}}}let l=r.basename(s);try{let e=r.join(s,"leanspec.yaml"),a=await t.readFile(e,"utf-8"),n=i.default.load(a);n.name&&(l=n.name),n.description&&(o=n.description)}catch{try{let e=r.join(s,"package.json"),a=await t.readFile(e,"utf-8"),i=JSON.parse(a);i.name&&(l=i.name),i.description&&(o=i.description)}catch{}}return{isValid:!0,path:s,specsDir:r.resolve(a),name:l,description:o}}catch(t){return{isValid:!1,path:e,error:t instanceof Error?t.message:"Unknown error"}}}async addProject(e,t){let r=await this.validateProject(e);if(!r.isValid)throw Error(`Invalid project: ${r.error}`);let a=await this.loadConfig(),o=this.generateProjectId(r.path),i=a.projects.findIndex(e=>e.id===o),s={id:o,name:r.name,path:r.path,specsDir:r.specsDir,lastAccessed:new Date,favorite:t?.favorite||!1,color:t?.color,description:r.description};return i>=0?a.projects[i]=s:a.projects.push(s),this.updateRecentProjects(a,o),await this.saveConfig(),s}async removeProject(e){let t=await this.loadConfig();t.projects=t.projects.filter(t=>t.id!==e),t.recentProjects=t.recentProjects.filter(t=>t!==e),await this.saveConfig()}async getProject(e){return(await this.loadConfig()).projects.find(t=>t.id===e)||null}async findProjectRoot(e){let a=r.resolve(e),{root:o}=r.parse(a);for(;;){let e=r.join(a,".lean-spec");try{return await t.access(e),a}catch{}if(a===o)break;a=r.dirname(a)}return null}async getProjects(){let e=await this.loadConfig();if(0===e.projects.length){let e=await this.findProjectRoot(process.cwd());if(e)try{return[await this.addProject(e)]}catch(e){console.warn("Failed to auto-add default project:",e)}}return e.projects}async touchProject(e){let t=await this.loadConfig(),r=t.projects.find(t=>t.id===e);r&&(r.lastAccessed=new Date,this.updateRecentProjects(t,e),await this.saveConfig())}async toggleFavorite(e){let t=(await this.loadConfig()).projects.find(t=>t.id===e);if(!t)throw Error("Project not found");return t.favorite=!t.favorite,await this.saveConfig(),t.favorite}async updateProject(e,t){let r=(await this.loadConfig()).projects.find(t=>t.id===e);if(!r)throw Error("Project not found");return Object.assign(r,t),await this.saveConfig(),r}async discoverProjects(e,a=3){let o=[],i=this;async function s(e,n){if(!(n>a))try{for(let a of(await t.readdir(e,{withFileTypes:!0}))){if(!a.isDirectory()||"node_modules"===a.name||".git"===a.name||a.name.startsWith("."))continue;let t=r.join(e,a.name),c=await i.validateProject(t);c.isValid?o.push(c):await s(t,n+1)}}catch(e){}}return await s(e,0),o}async listDirectory(e=(0,o.homedir)()){try{let a=r.resolve(e),o=(await t.readdir(a,{withFileTypes:!0})).filter(e=>e.isDirectory()&&!e.name.startsWith(".")).map(e=>({name:e.name,path:r.join(a,e.name),isDirectory:!0})).sort((e,t)=>e.name.localeCompare(t.name)),i=r.dirname(a);return i!==a&&o.unshift({name:"..",path:i,isDirectory:!0}),o}catch(e){throw Error(`Failed to list directory: ${e.message}`)}}async getRecentProjects(e=10){let t=await this.loadConfig();return t.recentProjects.slice(0,e).map(e=>t.projects.find(t=>t.id===e)).filter(e=>void 0!==e)}async getFavoriteProjects(){return(await this.loadConfig()).projects.filter(e=>e.favorite)}updateRecentProjects(e,t){e.recentProjects=e.recentProjects.filter(e=>e!==t),e.recentProjects.unshift(t),e.recentProjects=e.recentProjects.slice(0,10)}invalidateCache(){this.config=null}};e.s(["projectRegistry",0,n])},67708,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(92194);let o=[{pattern:/design|ui|ux|mockup|wireframe|prototype/i,iconName:"Palette",color:"text-purple-600"},{pattern:/architecture|structure|system|diagram/i,iconName:"Map",color:"text-indigo-600"},{pattern:/implementation|code|develop|build/i,iconName:"Code",color:"text-green-600"},{pattern:/api|endpoint|integration|interface/i,iconName:"Code",color:"text-blue-600"},{pattern:/test|qa|quality|validation/i,iconName:"TestTube",color:"text-orange-600"},{pattern:/task|todo|checklist|milestone/i,iconName:"CheckSquare",color:"text-gray-600"},{pattern:/config|setup|settings|environment/i,iconName:"Wrench",color:"text-yellow-600"},{pattern:/deploy|devops|ci|cd|pipeline|release/i,iconName:"Wrench",color:"text-orange-600"},{pattern:/migration|upgrade|refactor|transition/i,iconName:"GitBranch",color:"text-cyan-600"},{pattern:/security|auth|permission|access|encryption/i,iconName:"CheckSquare",color:"text-red-600"},{pattern:/performance|optimization|speed|cache|benchmark/i,iconName:"TrendingUp",color:"text-green-600"},{pattern:/database|data|schema|model|query/i,iconName:"FileText",color:"text-blue-600"},{pattern:/doc|guide|manual|reference/i,iconName:"FileText",color:"text-gray-500"},{pattern:/github|git|vcs|version/i,iconName:"GitBranch",color:"text-pink-600"}],i={iconName:"FileText",color:"text-gray-600"};function s(e){let s=[];if(!(0,t.existsSync)(e))return s;try{for(let n of(0,t.readdirSync)(e)){if("README.md"===n||!n.endsWith(".md"))continue;let c=(0,r.join)(e,n);if((0,t.statSync)(c).isFile())try{let e=(0,t.readFileSync)(c,"utf-8"),{content:r}=(0,a.default)(e),l=function(e){let t=e.replace(/\.md$/i,"");for(let{pattern:e,iconName:r,color:a}of o)if(e.test(t))return{iconName:r,color:a};return i}(n);s.push({name:n.replace(/\.md$/i,"").split(/[-_]/).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" "),file:n,iconName:l.iconName,color:l.color,content:r})}catch(e){console.error(`Error reading sub-spec ${n}:`,e)}}s.sort((e,t)=>e.file.localeCompare(t.file))}catch(t){console.error(`Error reading spec directory ${e}:`,t)}return s}e.s(["detectSubSpecs",()=>s])},25372,(e,t,r)=>{t.exports=e.x("better-sqlite3",()=>require("better-sqlite3"))},50306,e=>{"use strict";var t=e.i(5271),r=e.i(31585),a=e.i(22124),o=e.i(79174),i=e.i(67708),s=e.i(14747);async function n(){return await t.db.select().from(r.schema.projects).orderBy((0,o.desc)(r.schema.projects.isFeatured),r.schema.projects.displayName)}async function c(e){return(await t.db.select().from(r.schema.projects).where((0,a.eq)(r.schema.projects.id,e)).limit(1))[0]||null}async function l(e){let o,n=parseInt(e,10);if(0===(o=isNaN(n)?await t.db.select().from(r.schema.specs).where((0,a.eq)(r.schema.specs.id,e)).limit(1):await t.db.select().from(r.schema.specs).where((0,a.eq)(r.schema.specs.specNumber,n)).limit(1)).length)return null;let c=o[0],l=(0,s.join)(process.cwd(),"../../specs",c.filePath.replace("/README.md","").replace("specs/","")),d=(0,i.detectSubSpecs)(l);return{...c,tags:c.tags?JSON.parse(c.tags):null,subSpecs:d}}async function d(e){return(await t.db.select().from(r.schema.specs).where((0,a.eq)(r.schema.specs.projectId,e)).orderBy(r.schema.specs.specNumber)).map(e=>({...e,tags:e.tags?JSON.parse(e.tags):null}))}e.s(["getProjectById",()=>c,"getProjects",()=>n,"getSpecById",()=>l,"getSpecsByProjectId",()=>d])},5671,e=>{"use strict";var t=e.i(6169),r=e.i(25864),a=e.i(71648),o=e.i(30064),i=e.i(74222),s=e.i(2043),n=e.i(71408),c=e.i(26527),l=e.i(30592),d=e.i(34639),p=e.i(88935),u=e.i(68515),h=e.i(87166),f=e.i(76718),m=e.i(76529),j=e.i(51151),g=e.i(93695);e.i(59704);var y=e.i(8259),w=e.i(31511),x=e.i(50306),v=e.i(84347);async function R(e,{params:t}){try{let{id:e}=await t;if("multi-project"===process.env.SPECS_MODE){let t=await v.projectRegistry.getProject(e);if(!t)return w.NextResponse.json({error:"Project not found"},{status:404});return await v.projectRegistry.touchProject(e),w.NextResponse.json({project:t})}let r=await (0,x.getProjectById)(e);if(!r)return w.NextResponse.json({error:"Project not found"},{status:404});return w.NextResponse.json({project:r})}catch(e){return console.error("Error fetching project:",e),w.NextResponse.json({error:"Failed to fetch project"},{status:500})}}async function P(e,{params:t}){try{if("multi-project"!==process.env.SPECS_MODE)return w.NextResponse.json({error:"Multi-project mode is not enabled"},{status:400});let{id:e}=await t;return await v.projectRegistry.removeProject(e),w.NextResponse.json({success:!0})}catch(e){return console.error("Error deleting project:",e),w.NextResponse.json({error:"Failed to delete project"},{status:500})}}async function E(e,{params:t}){try{if("multi-project"!==process.env.SPECS_MODE)return w.NextResponse.json({error:"Multi-project mode is not enabled"},{status:400});let{id:r}=await t,a=await e.json();if("favorite"in a){let e=await v.projectRegistry.toggleFavorite(r),t=await v.projectRegistry.getProject(r);return w.NextResponse.json({project:t,favorite:e})}let o=await v.projectRegistry.updateProject(r,a);return w.NextResponse.json({project:o})}catch(e){return console.error("Error updating project:",e),w.NextResponse.json({error:"Failed to update project"},{status:500})}}e.s(["DELETE",()=>P,"GET",()=>R,"PATCH",()=>E],56052);var C=e.i(56052);let N=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/projects/[id]/route",pathname:"/api/projects/[id]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/packages/ui/src/app/api/projects/[id]/route.ts",nextConfigOutput:"standalone",userland:C}),{workAsyncStorage:b,workUnitAsyncStorage:S,serverHooks:A}=N;function q(){return(0,a.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:S})}async function T(e,t,a){N.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/projects/[id]/route";w=w.replace(/\/index$/,"")||"/";let x=await N.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!x)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,params:R,nextConfig:P,parsedUrl:E,isDraftMode:C,prerenderManifest:b,routerServerContext:S,isOnDemandRevalidate:A,revalidateOnlyGenerated:q,resolvedPathname:T,clientReferenceManifest:k,serverActionsManifest:D}=x,O=(0,c.normalizeAppPath)(w),F=!!(b.dynamicRoutes[O]||b.routes[T]),I=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,E,!1):t.end("This page could not be found"),null);if(F&&!C){let e=!!b.routes[T],t=b.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(P.experimental.adapterPath)return await I();throw new g.NoFallbackError}}let _=null;!F||N.isDev||C||(_="/index"===(_=T)?"/":_);let M=!0===N.isDev||!F,H=F&&!M;D&&k&&(0,s.setReferenceManifestsSingleton)({page:w,clientReferenceManifest:k,serverActionsManifest:D,serverModuleMap:(0,n.createServerModuleMap)({serverActionsManifest:D})});let U=e.method||"GET",$=(0,i.getTracer)(),B=$.getActiveScopeSpan(),V={params:R,prerenderManifest:b,renderOpts:{experimental:{authInterrupts:!!P.experimental.authInterrupts},cacheComponents:!!P.cacheComponents,supportsDynamicResponse:M,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:P.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a)=>N.onRequestError(e,t,a,S)},sharedContext:{buildId:v}},K=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),L=d.NextRequestAdapter.fromNodeNextRequest(K,(0,d.signalFromNodeResponse)(t));try{let s=async e=>N.handle(L,V).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==p.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${U} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${U} ${w}`)}),n=!!(0,o.getRequestMeta)(e,"minimalMode"),c=async o=>{var i,c;let l=async({previousCacheEntry:r})=>{try{if(!n&&A&&q&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await s(o);e.fetchMetrics=V.renderOpts.fetchMetrics;let c=V.renderOpts.pendingWaitUntil;c&&a.waitUntil&&(a.waitUntil(c),c=void 0);let l=V.renderOpts.collectedTags;if(!F)return await (0,h.sendResponse)(K,W,i,V.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[j.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=j.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,a=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=j.INFINITE_CACHE?void 0:V.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:A})},S),t}},d=await N.handleResponse({req:e,nextConfig:P,cacheKey:_,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:q,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:n});if(!F)return null;if((null==d||null==(i=d.value)?void 0:i.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(c=d.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});n||t.setHeader("x-nextjs-cache",A?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let p=(0,f.fromNodeOutgoingHttpHeaders)(d.value.headers);return n&&F||p.delete(j.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||p.get("Cache-Control")||p.set("Cache-Control",(0,m.getCacheControlHeader)(d.cacheControl)),await (0,h.sendResponse)(K,W,new Response(d.value.body,{headers:p,status:d.value.status||200})),null};B?await c(B):await $.withPropagatedContext(e.headers,()=>$.trace(p.BaseServerSpan.handleRequest,{spanName:`${U} ${w}`,kind:i.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},c))}catch(t){if(t instanceof g.NoFallbackError||await N.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:A})}),F)throw t;return await (0,h.sendResponse)(K,W,new Response(null,{status:500})),null}}e.s(["handler",()=>T,"patchFetch",()=>q,"routeModule",()=>N,"serverHooks",()=>A,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>S],5671)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__fb91986f._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[2450,s=>{"use strict";s.s([])}];
2
+
3
+ //# sourceMappingURL=f825c_server_app_api_local-projects_list-directory_route_actions_d620ec1a.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[30434,s=>{"use strict";s.s([])}];
2
+
3
+ //# sourceMappingURL=f825c_server_app_api_projects_%5Bid%5D_specs_%5Bspec%5D_status_route_actions_e9f1bdc5.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[95939,s=>{"use strict";s.s([])}];
2
+
3
+ //# sourceMappingURL=packages_ui__next-internal_server_app_api_projects_%5Bid%5D_route_actions_bff49675.js.map