@leanspec/ui 0.2.6 → 0.2.7-dev.20251126090057

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 (747) hide show
  1. package/.next/standalone/node_modules/.pnpm/better-sqlite3@11.10.0/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  2. package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
  3. package/.next/standalone/packages/ui/.next/build-manifest.json +8 -8
  4. package/.next/standalone/packages/ui/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/packages/ui/.next/required-server-files.json +10 -4
  6. package/.next/standalone/packages/ui/.next/server/app/_global-error/page/build-manifest.json +6 -6
  7. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js +2 -2
  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 +7 -7
  12. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  13. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  14. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  15. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +3 -3
  16. package/.next/standalone/packages/ui/.next/server/app/_not-found/page/build-manifest.json +6 -6
  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 +19 -19
  22. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +19 -19
  23. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +12 -12
  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.nft.json +1 -1
  28. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js +2 -2
  29. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.nft.json +1 -1
  30. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js +2 -2
  31. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.nft.json +1 -1
  32. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js +2 -2
  33. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.nft.json +1 -1
  34. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  35. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js +2 -2
  36. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.nft.json +1 -1
  37. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.nft.json +1 -1
  38. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js +2 -2
  39. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
  40. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.nft.json +1 -1
  41. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js +2 -2
  42. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
  43. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js +2 -2
  44. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
  45. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js +2 -2
  46. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
  47. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js +2 -2
  48. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
  49. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js +2 -2
  50. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -1
  51. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js +2 -2
  52. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
  53. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js +2 -2
  54. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
  55. package/.next/standalone/packages/ui/.next/server/app/page/build-manifest.json +6 -6
  56. package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
  57. package/.next/standalone/packages/ui/.next/server/app/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page/build-manifest.json +6 -6
  59. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js +2 -2
  60. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -1
  61. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +1 -1
  62. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page/build-manifest.json +6 -6
  63. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js +2 -2
  64. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -1
  65. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page_client-reference-manifest.js +1 -1
  66. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page/build-manifest.json +6 -6
  67. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js +2 -2
  68. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -1
  69. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page_client-reference-manifest.js +1 -1
  70. package/.next/standalone/packages/ui/.next/server/app/projects/page/build-manifest.json +6 -6
  71. package/.next/standalone/packages/ui/.next/server/app/projects/page.js +2 -2
  72. package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -1
  73. package/.next/standalone/packages/ui/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  74. package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -2
  75. package/.next/standalone/packages/ui/.next/server/app/projects.rsc +28 -29
  76. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +28 -29
  77. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +12 -12
  78. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +5 -5
  79. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +4 -4
  80. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +3 -3
  81. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page/build-manifest.json +6 -6
  82. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js +2 -2
  83. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
  84. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
  85. package/.next/standalone/packages/ui/.next/server/app/specs/page/build-manifest.json +6 -6
  86. package/.next/standalone/packages/ui/.next/server/app/specs/page.js +2 -2
  87. package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
  88. package/.next/standalone/packages/ui/.next/server/app/specs/page_client-reference-manifest.js +1 -1
  89. package/.next/standalone/packages/ui/.next/server/app/stats/page/build-manifest.json +6 -6
  90. package/.next/standalone/packages/ui/.next/server/app/stats/page.js +2 -2
  91. package/.next/standalone/packages/ui/.next/server/app/stats/page.js.nft.json +1 -1
  92. package/.next/standalone/packages/ui/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  93. package/.next/standalone/packages/ui/.next/server/chunks/6681a__next-internal_server_app_api_specs_[id]_subspecs_[file]_route_actions_556a9993.js +1 -1
  94. package/.next/standalone/packages/ui/.next/server/chunks/6e9bd_next_952b10e2._.js +2 -2
  95. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_local-projects_[id]_route_actions_664abe9c.js +1 -1
  96. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_local-projects_discover_route_actions_e6ec3fa7.js +1 -1
  97. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_specs_route_actions_6d03fd1f.js +1 -1
  98. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_stats_route_actions_a0bb04a8.js +1 -1
  99. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_specs_[id]_status_route_actions_5d700407.js +1 -1
  100. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0fbfea15._.js +1 -1
  101. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__126dea7b._.js +1 -1
  102. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__1f037512._.js +1 -1
  103. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3559376c._.js +4 -4
  104. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__548e27d4._.js +1 -1
  105. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__65667b70._.js +1 -1
  106. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__675a763e._.js +1 -1
  107. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__803d07f0._.js +1 -1
  108. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8075fe29._.js +1 -1
  109. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8233e09b._.js +1 -1
  110. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__84cdc14a._.js +1 -1
  111. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9ce722b4._.js +1 -1
  112. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__a2d7cbed._.js +1 -1
  113. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__aa677b0d._.js +1 -1
  114. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__ac744182._.js +1 -1
  115. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__ae726e9c._.js +1 -1
  116. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__bb9fca84._.js +2 -2
  117. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__bdc3963a._.js +1 -1
  118. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f06435b0._.js +1 -1
  119. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f5c6d6b8._.js +1 -1
  120. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__fb91986f._.js +1 -1
  121. package/.next/standalone/packages/ui/.next/server/chunks/e0876_tiktoken_3efea2dc._.js +1 -1
  122. package/.next/standalone/packages/ui/.next/server/chunks/f825c_server_app_api_local-projects_list-directory_route_actions_d620ec1a.js +1 -1
  123. package/.next/standalone/packages/ui/.next/server/chunks/f825c_server_app_api_projects_[id]_specs_[spec]_status_route_actions_e9f1bdc5.js +1 -1
  124. package/.next/standalone/packages/ui/.next/server/chunks/node_modules__pnpm_731b55aa._.js +1 -1
  125. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_local-projects_route_actions_9142d5ad.js +1 -1
  126. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_projects_route_actions_73e4c2a1.js +1 -1
  127. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_revalidate_route_actions_a8bf21b5.js +1 -1
  128. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_specs_[id]_route_actions_0793bd75.js +1 -1
  129. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_stats_route_actions_8e042245.js +1 -1
  130. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_db_index_ts_556307fa._.js +4 -4
  131. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_0bd881ee._.js +1 -1
  132. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_baa0160d._.js +1 -1
  133. package/.next/standalone/packages/ui/.next/server/chunks/ssr/1ce3b_dagre-d3-es_src_dagre_index_f9cad90b.js +3 -0
  134. package/.next/standalone/packages/ui/.next/server/chunks/ssr/38a22_sonner_dist_index_mjs_207730fe._.js +1 -1
  135. package/.next/standalone/packages/ui/.next/server/chunks/ssr/4e76f_cytoscape_dist_cytoscape_esm_mjs_56d6d0a1._.js +3 -0
  136. package/.next/standalone/packages/ui/.next/server/chunks/ssr/54964_d3-scale_src_c504aad0._.js +3 -0
  137. package/.next/standalone/packages/ui/.next/server/chunks/ssr/54964_d3-scale_src_linear_5b8914dd.js +3 -0
  138. package/.next/standalone/packages/ui/.next/server/chunks/ssr/641df_lodash-es_057c0674._.js +3 -0
  139. package/.next/standalone/packages/ui/.next/server/chunks/ssr/641df_lodash-es_4b57a3a3._.js +3 -0
  140. package/.next/standalone/packages/ui/.next/server/chunks/ssr/641df_lodash-es_4d3de843._.js +3 -0
  141. package/.next/standalone/packages/ui/.next/server/chunks/ssr/641df_lodash-es_5f3103e1._.js +3 -0
  142. package/.next/standalone/packages/ui/.next/server/chunks/ssr/641df_lodash-es_bcc35893._.js +3 -0
  143. package/.next/standalone/packages/ui/.next/server/chunks/ssr/641df_lodash-es_f2ef1919._.js +3 -0
  144. package/.next/standalone/packages/ui/.next/server/chunks/ssr/676f9_@mermaid-js_parser_dist_chunks_mermaid-parser_core_info-NVLQJR56_mjs_cc500a11._.js +3 -0
  145. package/.next/standalone/packages/ui/.next/server/chunks/ssr/676f9_@mermaid-js_parser_dist_chunks_mermaid-parser_core_packet-BFZMPI3H_mjs_06a9c7d7._.js +3 -0
  146. package/.next/standalone/packages/ui/.next/server/chunks/ssr/676f9_@mermaid-js_parser_dist_chunks_mermaid-parser_core_pie-7BOR55EZ_mjs_1167f1a1._.js +3 -0
  147. package/.next/standalone/packages/ui/.next/server/chunks/ssr/676f9_@mermaid-js_parser_dist_chunks_mermaid-parser_core_radar-NHE76QYJ_mjs_962e6256._.js +3 -0
  148. package/.next/standalone/packages/ui/.next/server/chunks/ssr/676f9_@mermaid-js_parser_dist_chunks_mermaid-parser_core_treemap-KMMF4GRG_mjs_a12f0fad._.js +3 -0
  149. package/.next/standalone/packages/ui/.next/server/chunks/ssr/6e9bd_next_40720940._.js +2 -2
  150. package/.next/standalone/packages/ui/.next/server/chunks/ssr/6e9bd_next_dist_1decfd3f._.js +1 -1
  151. package/.next/standalone/packages/ui/.next/server/chunks/ssr/6e9bd_next_dist_69a12422._.js +2 -2
  152. package/.next/standalone/packages/ui/.next/server/chunks/ssr/6e9bd_next_dist_7af75658._.js +1 -1
  153. package/.next/standalone/packages/ui/.next/server/chunks/ssr/6e9bd_next_dist_client_components_0f429de8._.js +1 -1
  154. package/.next/standalone/packages/ui/.next/server/chunks/ssr/6e9bd_next_dist_client_components_builtin_global-error_3666c25c.js +1 -1
  155. package/.next/standalone/packages/ui/.next/server/chunks/ssr/6e9bd_next_dist_client_components_builtin_unauthorized_78af867c.js +1 -1
  156. package/.next/standalone/packages/ui/.next/server/chunks/ssr/6e9bd_next_dist_df5dcbe9._.js +2 -2
  157. package/.next/standalone/packages/ui/.next/server/chunks/ssr/6e9bd_next_dist_esm_25672c28._.js +2 -2
  158. package/.next/standalone/packages/ui/.next/server/chunks/ssr/6e9bd_next_dist_esm_build_templates_app-page_4f278283.js +2 -2
  159. package/.next/standalone/packages/ui/.next/server/chunks/ssr/730ea_ui__next-internal_server_app_projects_[projectId]_specs_page_actions_82e32fe4.js +1 -1
  160. package/.next/standalone/packages/ui/.next/server/chunks/ssr/8b009_parser_dist_chunks_mermaid-parser_core_architecture-U656AL7Q_mjs_64f0e692._.js +3 -0
  161. package/.next/standalone/packages/ui/.next/server/chunks/ssr/8b009_parser_dist_chunks_mermaid-parser_core_gitGraph-F6HP7TQM_mjs_6383c425._.js +3 -0
  162. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_0b254b71._.js +3 -0
  163. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_8167bfdd._.js +17 -0
  164. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_blockDiagram-VD42YOAC_mjs_99bfbaf9._.js +119 -0
  165. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_c4Diagram-YG6GDRKO_mjs_0683be9f._.js +7 -0
  166. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_c5b1d4f9._.js +17 -0
  167. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_chunk-ABZYJK2D_mjs_4034a85b._.js +79 -0
  168. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_chunk-B4BG7PRW_mjs_3190ac39._.js +162 -0
  169. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_chunk-DI55MBZ5_mjs_2e49cdd9._.js +217 -0
  170. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_chunk-FMBD7UC4_mjs_69c9238e._.js +17 -0
  171. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_chunk-JA3XYJ7Z_mjs_4c9b0254._.js +62 -0
  172. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_chunk-JZLCHNYA_mjs_e1210981._.js +55 -0
  173. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_chunk-MI3HLSF2_mjs_4494daf0._.js +3 -0
  174. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_chunk-QXUST7PY_mjs_3e69582d._.js +9 -0
  175. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_chunk-S3R3BYOJ_mjs_0c8df0bf._.js +4 -0
  176. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_chunk-TZMSLE5B_mjs_72a0311f._.js +3 -0
  177. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_dagre-6UL2VRFP_mjs_2a0e551c._.js +3 -0
  178. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_diagram-PSM6KHXK_mjs_f109b802._.js +26 -0
  179. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_erDiagram-Q2GNP2WA_mjs_2956542e._.js +57 -0
  180. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_f71564d9._.js +3 -0
  181. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_ffd8fbee._.js +3 -0
  182. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_flowDiagram-NV44I4VS_mjs_c11db931._.js +154 -0
  183. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_gitGraphDiagram-NY62KEGX_mjs_fe41f076._.js +65 -0
  184. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_journeyDiagram-XKPGCS4Q_mjs_8b9c3e68._.js +136 -0
  185. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_kanban-definition-3W4ZIXB7_mjs_d8e6de34._.js +81 -0
  186. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_quadrantDiagram-AYHSOK5B_mjs_50c2110d._.js +3 -0
  187. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_requirementDiagram-UZGBJVZJ_mjs_8f86dea7._.js +61 -0
  188. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_sankeyDiagram-TZEHDZUN_mjs_9fa014df._.js +6 -0
  189. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_sequenceDiagram-WL72ISMW_mjs_4d5ee2b1._.js +138 -0
  190. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_stateDiagram-FKZM4ZOC_mjs_2bd67ce9._.js +3 -0
  191. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_timeline-definition-IT6M3QCI_mjs_96b04d43._.js +58 -0
  192. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_xychartDiagram-PRI3JC2R_mjs_7eec04e0._.js +3 -0
  193. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_mermaid_core_mjs_1c407865._.js +9 -0
  194. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[externals]_better-sqlite3_a1cc22cb._.js +1 -1
  195. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__015fceb2._.js +1 -1
  196. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__01bfc8ff._.js +1 -1
  197. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__0f0dade1._.js +1 -1
  198. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__1d0c2012._.js +1 -1
  199. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__2977636f._.js +3 -3
  200. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__338c65fe._.js +1 -1
  201. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__4ec37765._.js +1 -1
  202. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__50122e7e._.js +1 -1
  203. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__5382b397._.js +1 -1
  204. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__73f60f12._.js +2 -2
  205. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__7f55abaa._.js +1 -1
  206. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__88a691ee._.js +1 -1
  207. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__8b019a26._.js +1 -1
  208. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a7ae8552._.js +2 -2
  209. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__bdbbba01._.js +1 -1
  210. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__cc589a54._.js +1 -1
  211. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__daee3355._.js +3 -0
  212. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__e4a2bcdd._.js +64 -0
  213. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ec5b96a5._.js +1 -1
  214. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__fd80e4dd._.js +1 -1
  215. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_000dd317._.js +1 -1
  216. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_0f9ffe32._.js +3 -0
  217. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_14118969._.js +3 -0
  218. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_22274047._.js +3 -0
  219. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_39562b2a._.js +2 -2
  220. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_3b617676._.js +1 -1
  221. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_3fac7eca._.js +1 -1
  222. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_4129cc0f._.js +1 -1
  223. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_196b5a83._.js → _497c8b73._.js} +2 -2
  224. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_85effc18._.js +2 -2
  225. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_8f9656c4._.js +2 -2
  226. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_911f204b._.js +1 -1
  227. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ac867463._.js +3 -0
  228. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ad8c1e99._.js +1 -1
  229. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_b6ac86b4._.js +3 -0
  230. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_b9dc2415._.js +2 -2
  231. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_bae6d2b8._.js +2 -2
  232. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_c2f54661._.js +3 -3
  233. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f7344ef6._.js +2 -2
  234. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_fdd7780b._.js +2 -2
  235. package/.next/standalone/packages/ui/.next/server/chunks/ssr/c7b92_d3-shape_src_arc_9341f572.js +3 -0
  236. package/.next/standalone/packages/ui/.next/server/chunks/ssr/f0bdc_katex_dist_katex_mjs_27a6c950._.js +3 -0
  237. package/.next/standalone/packages/ui/.next/server/chunks/ssr/f825c_server_app_projects_[projectId]_specs_[specId]_page_actions_22d9c35e.js +1 -1
  238. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_03d68913._.js +62 -0
  239. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_1aec4342._.js +17 -0
  240. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_2a29db83._.js +3 -0
  241. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_3ba1438c._.js +3 -0
  242. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_472d6274._.js +3 -0
  243. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_50944832._.js +1 -1
  244. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_5237fdd7._.js +3 -0
  245. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_69372f5b._.js +3 -0
  246. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_76d4233c._.js +17 -0
  247. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_7791e3b8._.js +3 -0
  248. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_79befbed._.js +3 -0
  249. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_88c8b88b._.js +3 -0
  250. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_a01fbd8e._.js +3 -0
  251. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_a3f2a370._.js +3 -0
  252. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_ab5a8afc._.js +3 -0
  253. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_b23175bb._.js +38 -0
  254. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_b247a526._.js +264 -0
  255. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_b5a3d3a5._.js +3 -0
  256. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_c17f27b1._.js +45 -0
  257. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_c22df304._.js +17 -0
  258. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_c766836f._.js +3 -0
  259. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_cb5a045f._.js +3 -0
  260. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_d8037b10._.js +3 -0
  261. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_e175b92a._.js +31 -0
  262. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_e440897f._.js +3 -0
  263. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_ea1bddc7._.js +3 -0
  264. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_f5b29533._.js +3 -0
  265. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_f732d0bb._.js +26 -0
  266. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app__global-error_page_actions_e9e4a8e1.js +1 -1
  267. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app__not-found_page_actions_428c805d.js +1 -1
  268. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_page_actions_f4c42a31.js +1 -1
  269. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_projects_[projectId]_page_actions_f2986585.js +1 -1
  270. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_projects_page_actions_715940ea.js +1 -1
  271. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_specs_[id]_page_actions_555bb544.js +1 -1
  272. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_specs_page_actions_b92ceb22.js +1 -1
  273. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_stats_page_actions_35d53654.js +1 -1
  274. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_19541980._.js +1 -1
  275. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_error_tsx_7bf5aa01._.js +1 -1
  276. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_error_tsx_d8203bfe._.js +1 -1
  277. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_loading_tsx_9304a706._.js +1 -1
  278. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_[projectId]_be242d6c._.js +1 -1
  279. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_[projectId]_project-context-syncer_tsx_7954ea3b._.js +1 -1
  280. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_page_tsx_6e166c8e._.js +1 -1
  281. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_specs_specs-client_tsx_0bb8f8f8._.js +1 -1
  282. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_specs-nav-sidebar_tsx_8237ed13._.js +1 -1
  283. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_ui_select_tsx_7e21d40f._.js +1 -1
  284. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_lib_specs_sources_database-source_ts_f7186c2a._.js +2 -2
  285. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_lib_utils_ts_259f88e4._.js +1 -1
  286. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_lib_utils_ts_c47f8e19._.js +1 -1
  287. package/.next/standalone/packages/ui/.next/server/middleware-build-manifest.js +6 -6
  288. package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
  289. package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
  290. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
  291. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
  292. package/.next/standalone/packages/ui/.next/static/chunks/038fb2d565c88582.js +2 -0
  293. package/.next/standalone/packages/ui/.next/static/chunks/0f108f65249f8820.js +19 -0
  294. package/.next/standalone/packages/ui/.next/static/chunks/1104de0c16e0b792.js +59 -0
  295. package/.next/standalone/packages/ui/.next/static/chunks/1490995adc7829e2.js +136 -0
  296. package/.next/standalone/packages/ui/.next/static/chunks/16b742746668b9d6.js +56 -0
  297. package/.next/standalone/packages/ui/.next/static/chunks/16ff9833ae1bb3ae.js +1 -0
  298. package/.next/standalone/packages/ui/.next/static/chunks/192b2f6118d057e2.js +60 -0
  299. package/.next/standalone/packages/ui/.next/static/chunks/1a910f137d27fff0.js +63 -0
  300. package/.next/standalone/packages/ui/.next/static/chunks/1f052e076ca9a3ff.js +1 -0
  301. package/.next/standalone/packages/ui/.next/static/chunks/20f4141ccb5d4eb4.js +1 -0
  302. package/.next/standalone/packages/ui/.next/static/chunks/2136b3131f74188f.js +1 -0
  303. package/.next/standalone/packages/ui/.next/static/chunks/2204c0f16b23ec4c.js +3 -0
  304. package/.next/standalone/packages/ui/.next/static/chunks/294dea6dbec43ca6.js +1 -0
  305. package/.next/standalone/packages/ui/.next/static/chunks/2a33b9246ea4be03.js +2 -0
  306. package/.next/standalone/packages/ui/.next/static/chunks/2c85b8059e42248a.js +1 -0
  307. package/.next/standalone/packages/ui/.next/static/chunks/305b74f3c20cb4ef.js +1 -0
  308. package/.next/standalone/packages/ui/.next/static/chunks/3276ca6fd9005903.js +13 -0
  309. package/.next/standalone/packages/ui/.next/static/chunks/37f2e45cf97245d9.js +117 -0
  310. package/.next/standalone/packages/ui/.next/static/chunks/39691fae9a3463fe.js +262 -0
  311. package/.next/standalone/packages/ui/.next/static/chunks/3b6b058ebd14dbed.js +1 -0
  312. package/.next/standalone/packages/ui/.next/static/chunks/3ed1465109fecc2d.js +1 -0
  313. package/.next/standalone/packages/ui/.next/static/chunks/3f94c1ef6e27c8bd.js +1 -0
  314. package/.next/standalone/packages/ui/.next/static/chunks/414a78f7b9b58d11.js +53 -0
  315. package/.next/standalone/packages/ui/.next/static/chunks/4e85dea329906168.js +1 -0
  316. package/.next/standalone/packages/ui/.next/static/chunks/525d6cb99a13c44a.js +215 -0
  317. package/.next/standalone/packages/ui/.next/static/chunks/5295f0e82fd2a6d3.js +24 -0
  318. package/.next/standalone/packages/ui/.next/static/chunks/567bc31005c31006.js +1 -0
  319. package/.next/standalone/packages/ui/.next/static/chunks/56894ea818ee2a54.js +1 -0
  320. package/.next/standalone/packages/ui/.next/static/chunks/569b4347ce55d973.js +1 -0
  321. package/.next/standalone/packages/ui/.next/static/chunks/5fffdea0623d8a25.js +1 -0
  322. package/.next/standalone/packages/ui/.next/static/chunks/642374ace530e2bd.js +1 -0
  323. package/.next/standalone/packages/ui/.next/static/chunks/64543dbd7a7a99b7.js +1 -0
  324. package/.next/standalone/packages/ui/.next/static/chunks/6483096c16d96f2c.js +15 -0
  325. package/.next/standalone/packages/ui/.next/static/chunks/66d3fa1af3ff1fbf.js +1 -0
  326. package/.next/standalone/packages/ui/.next/static/chunks/67a1d37727697340.js +1 -0
  327. package/.next/standalone/packages/ui/.next/static/chunks/6f3c460ef90843d6.js +215 -0
  328. package/.next/standalone/packages/ui/.next/static/chunks/6ff7b0a8653036b2.js +1 -0
  329. package/.next/standalone/packages/ui/.next/static/chunks/72dde43947381f78.js +1 -0
  330. package/.next/standalone/packages/ui/.next/static/chunks/7590e65bcaa41e8b.js +1 -0
  331. package/.next/standalone/packages/ui/.next/static/chunks/762fe8c3999a1965.js +1 -0
  332. package/.next/standalone/packages/ui/.next/static/chunks/794f3931f1ca12d2.js +1 -0
  333. package/.next/standalone/packages/ui/.next/static/chunks/7b70989270600907.js +148 -0
  334. package/.next/standalone/packages/ui/.next/static/chunks/8287406f2fe1c1c3.js +1 -0
  335. package/.next/standalone/packages/ui/.next/static/chunks/839e44eec90aa73d.js +60 -0
  336. package/.next/standalone/packages/ui/.next/static/chunks/85b2b8ec762b7c79.js +62 -0
  337. package/.next/standalone/packages/ui/.next/static/chunks/89a8f922ce491ce9.js +93 -0
  338. package/.next/standalone/packages/ui/.next/static/chunks/8ff23db3e3143bc7.js +5 -0
  339. package/.next/standalone/packages/ui/.next/static/chunks/942cf63b4032c808.js +29 -0
  340. package/.next/standalone/packages/ui/.next/static/chunks/95bd0faa6092d8ba.js +1 -0
  341. package/.next/standalone/packages/ui/.next/static/chunks/97bd44afaee5f129.js +1 -0
  342. package/.next/standalone/packages/ui/.next/static/chunks/97c8160044aea609.js +77 -0
  343. package/.next/standalone/packages/ui/.next/static/chunks/9d06bd5d701ace73.js +1 -0
  344. package/.next/standalone/packages/ui/.next/static/chunks/a0b34f852bfa3d1b.js +36 -0
  345. package/.next/standalone/packages/ui/.next/static/chunks/a1ca5af350378f72.js +1 -0
  346. package/.next/standalone/packages/ui/.next/static/chunks/af643629ba393b18.js +15 -0
  347. package/.next/standalone/packages/ui/.next/static/chunks/b6976cf6c48996e5.js +1 -0
  348. package/.next/standalone/packages/ui/.next/static/chunks/b6ffd44cbe740f15.js +1 -0
  349. package/.next/standalone/packages/ui/.next/static/chunks/b8353eb8c6fb895e.js +1 -0
  350. package/.next/standalone/packages/ui/.next/static/chunks/b845813463167db0.js +5 -0
  351. package/.next/standalone/packages/ui/.next/static/chunks/b900efab2eee69a0.js +15 -0
  352. package/.next/standalone/packages/ui/.next/static/chunks/bd9893e28f8f6a9a.css +1 -0
  353. package/.next/standalone/packages/ui/.next/static/chunks/c762baa705e11b30.js +1 -0
  354. package/.next/standalone/packages/ui/.next/static/chunks/cbfb9d957f708c08.js +1 -0
  355. package/.next/standalone/packages/ui/.next/static/chunks/cca4441cde342ae3.js +1 -0
  356. package/.next/standalone/packages/ui/.next/static/chunks/cf53882a2c15630f.js +1 -0
  357. package/.next/standalone/packages/ui/.next/static/chunks/d43971093c91d3b2.js +160 -0
  358. package/.next/standalone/packages/ui/.next/static/chunks/d784d84d5b880e48.js +1 -0
  359. package/.next/standalone/packages/ui/.next/static/chunks/db44023a744297d1.js +1 -0
  360. package/.next/standalone/packages/ui/.next/static/chunks/dbe7840308be36b8.js +1 -0
  361. package/.next/standalone/packages/ui/.next/static/chunks/dc0a4df8f7080b29.js +1 -0
  362. package/.next/standalone/packages/ui/.next/static/chunks/dd8e053aa48c6398.js +1 -0
  363. package/.next/standalone/packages/ui/.next/static/chunks/ddc7726e19e5e25c.js +43 -0
  364. package/.next/standalone/packages/ui/.next/static/chunks/df7e61b074dee049.js +152 -0
  365. package/.next/standalone/packages/ui/.next/static/chunks/e20849e3abe63aa5.js +55 -0
  366. package/.next/standalone/packages/ui/.next/static/chunks/e2792c100b4041a1.js +15 -0
  367. package/.next/standalone/packages/ui/.next/static/chunks/e2dce648399ad4d4.js +1 -0
  368. package/.next/standalone/packages/ui/.next/static/chunks/e3bc96a996e2a314.js +24 -0
  369. package/.next/standalone/packages/ui/.next/static/chunks/e5aab2c562822175.js +1 -0
  370. package/.next/standalone/packages/ui/.next/static/chunks/efbbc4dc4b32a270.js +4 -0
  371. package/.next/standalone/packages/ui/.next/static/chunks/f0376ba3b56dbf10.js +4 -0
  372. package/.next/standalone/packages/ui/.next/static/chunks/f88536b96f1df686.js +1 -0
  373. package/.next/standalone/packages/ui/.next/static/chunks/turbopack-5fa55215af0efb15.js +3 -0
  374. package/.next/standalone/packages/ui/next.config.ts +5 -0
  375. package/.next/standalone/packages/ui/package.json +2 -1
  376. package/.next/standalone/packages/ui/scripts/post-build.mjs +15 -1
  377. package/.next/standalone/packages/ui/server.js +1 -1
  378. package/.next/standalone/packages/ui/src/app/globals.css +25 -0
  379. package/.next/standalone/packages/ui/src/app/specs/specs-client.tsx +180 -140
  380. package/.next/standalone/packages/ui/src/components/main-sidebar.tsx +3 -3
  381. package/.next/standalone/packages/ui/src/components/mermaid-diagram.test.ts +92 -0
  382. package/.next/standalone/packages/ui/src/components/mermaid-diagram.tsx +139 -0
  383. package/.next/standalone/packages/ui/src/components/spec-detail-client.tsx +47 -7
  384. package/.next/standalone/packages/ui/src/components/specs-nav-sidebar.tsx +3 -13
  385. package/.next/standalone/packages/ui/src/contexts/project-context.tsx +14 -14
  386. package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
  387. package/.next/static/chunks/038fb2d565c88582.js +2 -0
  388. package/.next/static/chunks/0f108f65249f8820.js +19 -0
  389. package/.next/static/chunks/1104de0c16e0b792.js +59 -0
  390. package/.next/static/chunks/1490995adc7829e2.js +136 -0
  391. package/.next/static/chunks/16b742746668b9d6.js +56 -0
  392. package/.next/static/chunks/16ff9833ae1bb3ae.js +1 -0
  393. package/.next/static/chunks/192b2f6118d057e2.js +60 -0
  394. package/.next/static/chunks/1a910f137d27fff0.js +63 -0
  395. package/.next/static/chunks/1f052e076ca9a3ff.js +1 -0
  396. package/.next/static/chunks/20f4141ccb5d4eb4.js +1 -0
  397. package/.next/static/chunks/2136b3131f74188f.js +1 -0
  398. package/.next/static/chunks/2204c0f16b23ec4c.js +3 -0
  399. package/.next/static/chunks/294dea6dbec43ca6.js +1 -0
  400. package/.next/static/chunks/2a33b9246ea4be03.js +2 -0
  401. package/.next/static/chunks/2c85b8059e42248a.js +1 -0
  402. package/.next/static/chunks/305b74f3c20cb4ef.js +1 -0
  403. package/.next/static/chunks/3276ca6fd9005903.js +13 -0
  404. package/.next/static/chunks/37f2e45cf97245d9.js +117 -0
  405. package/.next/static/chunks/39691fae9a3463fe.js +262 -0
  406. package/.next/static/chunks/3b6b058ebd14dbed.js +1 -0
  407. package/.next/static/chunks/3ed1465109fecc2d.js +1 -0
  408. package/.next/static/chunks/3f94c1ef6e27c8bd.js +1 -0
  409. package/.next/static/chunks/414a78f7b9b58d11.js +53 -0
  410. package/.next/static/chunks/4e85dea329906168.js +1 -0
  411. package/.next/static/chunks/525d6cb99a13c44a.js +215 -0
  412. package/.next/static/chunks/5295f0e82fd2a6d3.js +24 -0
  413. package/.next/static/chunks/567bc31005c31006.js +1 -0
  414. package/.next/static/chunks/56894ea818ee2a54.js +1 -0
  415. package/.next/static/chunks/569b4347ce55d973.js +1 -0
  416. package/.next/static/chunks/5fffdea0623d8a25.js +1 -0
  417. package/.next/static/chunks/642374ace530e2bd.js +1 -0
  418. package/.next/static/chunks/64543dbd7a7a99b7.js +1 -0
  419. package/.next/static/chunks/6483096c16d96f2c.js +15 -0
  420. package/.next/static/chunks/66d3fa1af3ff1fbf.js +1 -0
  421. package/.next/static/chunks/67a1d37727697340.js +1 -0
  422. package/.next/static/chunks/6f3c460ef90843d6.js +215 -0
  423. package/.next/static/chunks/6ff7b0a8653036b2.js +1 -0
  424. package/.next/static/chunks/72dde43947381f78.js +1 -0
  425. package/.next/static/chunks/7590e65bcaa41e8b.js +1 -0
  426. package/.next/static/chunks/762fe8c3999a1965.js +1 -0
  427. package/.next/static/chunks/794f3931f1ca12d2.js +1 -0
  428. package/.next/static/chunks/7b70989270600907.js +148 -0
  429. package/.next/static/chunks/8287406f2fe1c1c3.js +1 -0
  430. package/.next/static/chunks/839e44eec90aa73d.js +60 -0
  431. package/.next/static/chunks/85b2b8ec762b7c79.js +62 -0
  432. package/.next/static/chunks/89a8f922ce491ce9.js +93 -0
  433. package/.next/static/chunks/8ff23db3e3143bc7.js +5 -0
  434. package/.next/static/chunks/942cf63b4032c808.js +29 -0
  435. package/.next/static/chunks/95bd0faa6092d8ba.js +1 -0
  436. package/.next/static/chunks/97bd44afaee5f129.js +1 -0
  437. package/.next/static/chunks/97c8160044aea609.js +77 -0
  438. package/.next/static/chunks/9d06bd5d701ace73.js +1 -0
  439. package/.next/static/chunks/a0b34f852bfa3d1b.js +36 -0
  440. package/.next/static/chunks/a1ca5af350378f72.js +1 -0
  441. package/.next/static/chunks/af643629ba393b18.js +15 -0
  442. package/.next/static/chunks/b6976cf6c48996e5.js +1 -0
  443. package/.next/static/chunks/b6ffd44cbe740f15.js +1 -0
  444. package/.next/static/chunks/b8353eb8c6fb895e.js +1 -0
  445. package/.next/static/chunks/b845813463167db0.js +5 -0
  446. package/.next/static/chunks/b900efab2eee69a0.js +15 -0
  447. package/.next/static/chunks/bd9893e28f8f6a9a.css +1 -0
  448. package/.next/static/chunks/c762baa705e11b30.js +1 -0
  449. package/.next/static/chunks/cbfb9d957f708c08.js +1 -0
  450. package/.next/static/chunks/cca4441cde342ae3.js +1 -0
  451. package/.next/static/chunks/cf53882a2c15630f.js +1 -0
  452. package/.next/static/chunks/d43971093c91d3b2.js +160 -0
  453. package/.next/static/chunks/d784d84d5b880e48.js +1 -0
  454. package/.next/static/chunks/db44023a744297d1.js +1 -0
  455. package/.next/static/chunks/dbe7840308be36b8.js +1 -0
  456. package/.next/static/chunks/dc0a4df8f7080b29.js +1 -0
  457. package/.next/static/chunks/dd8e053aa48c6398.js +1 -0
  458. package/.next/static/chunks/ddc7726e19e5e25c.js +43 -0
  459. package/.next/static/chunks/df7e61b074dee049.js +152 -0
  460. package/.next/static/chunks/e20849e3abe63aa5.js +55 -0
  461. package/.next/static/chunks/e2792c100b4041a1.js +15 -0
  462. package/.next/static/chunks/e2dce648399ad4d4.js +1 -0
  463. package/.next/static/chunks/e3bc96a996e2a314.js +24 -0
  464. package/.next/static/chunks/e5aab2c562822175.js +1 -0
  465. package/.next/static/chunks/efbbc4dc4b32a270.js +4 -0
  466. package/.next/static/chunks/f0376ba3b56dbf10.js +4 -0
  467. package/.next/static/chunks/f88536b96f1df686.js +1 -0
  468. package/.next/static/chunks/turbopack-5fa55215af0efb15.js +3 -0
  469. package/package.json +3 -2
  470. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__c592f5d1._.js +0 -3
  471. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_6174313a._.js +0 -3
  472. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_6e4dd8b6._.js +0 -3
  473. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_7fa1d4b1._.js +0 -3
  474. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_e1889307._.js +0 -3
  475. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f1e82b43._.js +0 -3
  476. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_af9d3830._.js +0 -3
  477. package/.next/standalone/packages/ui/.next/static/chunks/07f48b316e895080.js +0 -1
  478. package/.next/standalone/packages/ui/.next/static/chunks/0a7be410b438418a.js +0 -1
  479. package/.next/standalone/packages/ui/.next/static/chunks/1089ca88f6bef846.js +0 -1
  480. package/.next/standalone/packages/ui/.next/static/chunks/17471c87082c392c.js +0 -5
  481. package/.next/standalone/packages/ui/.next/static/chunks/220ba5cb8fe4dd69.js +0 -1
  482. package/.next/standalone/packages/ui/.next/static/chunks/35ccd3286e538bd2.js +0 -1
  483. package/.next/standalone/packages/ui/.next/static/chunks/4a7396c9a77e64d5.js +0 -1
  484. package/.next/standalone/packages/ui/.next/static/chunks/50aead33b660f05c.js +0 -1
  485. package/.next/standalone/packages/ui/.next/static/chunks/571033caca823138.js +0 -1
  486. package/.next/standalone/packages/ui/.next/static/chunks/5a6fc30cd64085b4.css +0 -1
  487. package/.next/standalone/packages/ui/.next/static/chunks/5c2072ad938de8ed.js +0 -1
  488. package/.next/standalone/packages/ui/.next/static/chunks/7f732ea69e643219.js +0 -2
  489. package/.next/standalone/packages/ui/.next/static/chunks/843e1dfdc28e1385.js +0 -1
  490. package/.next/standalone/packages/ui/.next/static/chunks/9dad7fd31627df80.js +0 -1
  491. package/.next/standalone/packages/ui/.next/static/chunks/a02c1f50ff00204f.js +0 -1
  492. package/.next/standalone/packages/ui/.next/static/chunks/a055d4b2866ff8d4.js +0 -1
  493. package/.next/standalone/packages/ui/.next/static/chunks/afb7c5a4255f4081.js +0 -3
  494. package/.next/standalone/packages/ui/.next/static/chunks/b760a3a9c2c8be28.js +0 -1
  495. package/.next/standalone/packages/ui/.next/static/chunks/b9b9d7565bc2c2ad.js +0 -1
  496. package/.next/standalone/packages/ui/.next/static/chunks/db281fdc89c063c5.js +0 -1
  497. package/.next/standalone/packages/ui/.next/static/chunks/dcdd95180149fa10.js +0 -1
  498. package/.next/standalone/packages/ui/.next/static/chunks/ebd89051637b9a47.js +0 -4
  499. package/.next/standalone/packages/ui/.next/static/chunks/f3ec9fd77a8618b1.js +0 -19
  500. package/.next/standalone/packages/ui/.next/static/chunks/f9db24028d8c058e.js +0 -1
  501. package/.next/standalone/packages/ui/.next/static/chunks/fb640f50455ba34f.js +0 -1
  502. package/.next/standalone/packages/ui/.next/static/chunks/turbopack-b9690cacbf9fe48c.js +0 -3
  503. package/.next/standalone/packages/ui/dist/BUILD_ID +0 -1
  504. package/.next/standalone/packages/ui/dist/public/f864aa7e7061c0600e35cf3d879b27cf.txt +0 -1
  505. package/.next/standalone/packages/ui/dist/public/favicon.ico +0 -0
  506. package/.next/standalone/packages/ui/dist/public/file.svg +0 -1
  507. package/.next/standalone/packages/ui/dist/public/github-mark-white.svg +0 -1
  508. package/.next/standalone/packages/ui/dist/public/github-mark.svg +0 -1
  509. package/.next/standalone/packages/ui/dist/public/globe.svg +0 -1
  510. package/.next/standalone/packages/ui/dist/public/icon.svg +0 -7
  511. package/.next/standalone/packages/ui/dist/public/logo-dark-bg.svg +0 -17
  512. package/.next/standalone/packages/ui/dist/public/logo-with-bg.svg +0 -17
  513. package/.next/standalone/packages/ui/dist/public/logo.svg +0 -17
  514. package/.next/standalone/packages/ui/dist/public/next.svg +0 -1
  515. package/.next/standalone/packages/ui/dist/public/vercel.svg +0 -1
  516. package/.next/standalone/packages/ui/dist/public/window.svg +0 -1
  517. package/.next/standalone/packages/ui/dist/standalone/packages/web/README.md +0 -196
  518. package/.next/standalone/packages/ui/dist/standalone/packages/web/leanspec.db +0 -0
  519. package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +0 -75
  520. package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +0 -44
  521. package/.next/standalone/packages/ui/dist/standalone/specs/014-complete-custom-frontmatter/README.md +0 -175
  522. package/.next/standalone/packages/ui/dist/standalone/specs/016-github-action/README.md +0 -317
  523. package/.next/standalone/packages/ui/dist/standalone/specs/017-vscode-extension/README.md +0 -261
  524. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CLI-DESIGN.md +0 -380
  525. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION-EXAMPLES.md +0 -230
  526. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION.md +0 -285
  527. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/IMPLEMENTATION.md +0 -358
  528. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/README.md +0 -303
  529. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/TESTING.md +0 -368
  530. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/VALIDATION-RULES.md +0 -327
  531. package/.next/standalone/packages/ui/dist/standalone/specs/024-pattern-aware-list-grouping/README.md +0 -117
  532. package/.next/standalone/packages/ui/dist/standalone/specs/025-template-config-updates/README.md +0 -73
  533. package/.next/standalone/packages/ui/dist/standalone/specs/026-init-pattern-selection/README.md +0 -109
  534. package/.next/standalone/packages/ui/dist/standalone/specs/034-copilot-slash-commands/README.md +0 -107
  535. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/ARCHITECTURE.md +0 -244
  536. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/IMPLEMENTATION.md +0 -429
  537. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +0 -302
  538. package/.next/standalone/packages/ui/dist/standalone/specs/036-pm-integrations/README.md +0 -158
  539. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-AI-ASSISTED.md +0 -359
  540. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-FULL-LIFECYCLE.md +0 -86
  541. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-REAL-FEATURE.md +0 -437
  542. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-SCRIPT.md +0 -365
  543. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-FINAL.md +0 -203
  544. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SESSION-2025-11-06.md +0 -174
  545. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SUMMARY.md +0 -156
  546. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/IMPLEMENTATION.md +0 -183
  547. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/MARKETING.md +0 -229
  548. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/NEXT-STEPS-DEMO.md +0 -243
  549. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/README.md +0 -217
  550. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/SESSION-2025-11-06.md +0 -166
  551. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/TESTING.md +0 -126
  552. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/ACTUAL-IMPLEMENTATION.md +0 -108
  553. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/DESIGN.md +0 -382
  554. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/IMPLEMENTATION.md +0 -144
  555. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/RATIONALE.md +0 -146
  556. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/README.md +0 -208
  557. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/TESTING.md +0 -182
  558. package/.next/standalone/packages/ui/dist/standalone/specs/047-git-backfill-timestamps/README.md +0 -314
  559. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/FINDINGS.md +0 -113
  560. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/GUIDELINES.md +0 -237
  561. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/README.md +0 -149
  562. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-COMPARISONS.md +0 -175
  563. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-CONSTRAINTS.md +0 -254
  564. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/FIRST-PRINCIPLES.md +0 -376
  565. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-ROADMAP.md +0 -240
  566. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-TOOLS.md +0 -175
  567. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/README.md +0 -374
  568. package/.next/standalone/packages/ui/dist/standalone/specs/051-docs-system-prompt-principles/README.md +0 -339
  569. package/.next/standalone/packages/ui/dist/standalone/specs/052-branding-assets/README.md +0 -128
  570. package/.next/standalone/packages/ui/dist/standalone/specs/053-spec-assets-philosophy/README.md +0 -97
  571. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/DESIGN-DECISIONS.md +0 -93
  572. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/OUTPUT-FORMAT-SPEC.md +0 -146
  573. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/README.md +0 -175
  574. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART1.md +0 -397
  575. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART2.md +0 -342
  576. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS.md +0 -44
  577. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CHANGES.md +0 -150
  578. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CONCERNS-ANALYSIS.md +0 -351
  579. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/DOCS-ALIGNMENT-ANALYSIS.md +0 -238
  580. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/README.md +0 -280
  581. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-DRAFT.md +0 -372
  582. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-REFINED.md +0 -466
  583. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/AUDIT-RESULTS.md +0 -178
  584. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/README.md +0 -174
  585. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/README.md +0 -295
  586. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/VALIDATION-RESULTS.md +0 -487
  587. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/ANALYSIS.md +0 -241
  588. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/DESIGN.md +0 -279
  589. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/IMPLEMENTATION.md +0 -642
  590. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/NOTES.md +0 -125
  591. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/README.md +0 -286
  592. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/ARCHITECTURE.md +0 -392
  593. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/COMMANDS.md +0 -1002
  594. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/CONTEXT-ENGINEERING.md +0 -411
  595. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/IMPLEMENTATION.md +0 -812
  596. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/README.md +0 -504
  597. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/TESTING.md +0 -724
  598. package/.next/standalone/packages/ui/dist/standalone/specs/060-core-concepts-coherence/README.md +0 -125
  599. package/.next/standalone/packages/ui/dist/standalone/specs/061-ai-assisted-spec-writing/README.md +0 -299
  600. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/IMPLEMENTATION-PLAN.md +0 -174
  601. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PAGE-SPECIFICATIONS.md +0 -265
  602. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PROBLEM-ANALYSIS.md +0 -36
  603. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/README.md +0 -243
  604. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/SOLUTION-DESIGN.md +0 -82
  605. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/DESIGN.md +0 -338
  606. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/EXAMPLES.md +0 -354
  607. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/IMPLEMENTATION.md +0 -189
  608. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/README.md +0 -119
  609. package/.next/standalone/packages/ui/dist/standalone/specs/064-docs-site-zh-translation/README.md +0 -170
  610. package/.next/standalone/packages/ui/dist/standalone/specs/065-v03-planning/README.md +0 -158
  611. package/.next/standalone/packages/ui/dist/standalone/specs/066-context-economy-thresholds-refinement/README.md +0 -842
  612. package/.next/standalone/packages/ui/dist/standalone/specs/067-monorepo-core-extraction/README.md +0 -358
  613. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/DESIGN.md +0 -444
  614. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/README.md +0 -357
  615. package/.next/standalone/packages/ui/dist/standalone/specs/069-token-counting-utils/README.md +0 -551
  616. package/.next/standalone/packages/ui/dist/standalone/specs/070-mcp-token-counting-tool/README.md +0 -372
  617. package/.next/standalone/packages/ui/dist/standalone/specs/071-simplified-token-validation/README.md +0 -489
  618. package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +0 -285
  619. package/.next/standalone/packages/ui/dist/standalone/specs/073-template-engine-agents-md/README.md +0 -323
  620. package/.next/standalone/packages/ui/dist/standalone/specs/074-content-at-creation/README.md +0 -136
  621. package/.next/standalone/packages/ui/dist/standalone/specs/075-intelligent-search-engine/README.md +0 -399
  622. package/.next/standalone/packages/ui/dist/standalone/specs/076-programmatic-spec-relationships/README.md +0 -301
  623. package/.next/standalone/packages/ui/dist/standalone/specs/077-archiving-strategy/README.md +0 -235
  624. package/.next/standalone/packages/ui/dist/standalone/specs/078-sub-spec-template-system/README.md +0 -303
  625. package/.next/standalone/packages/ui/dist/standalone/specs/079-cli-alphabetical-organization/README.md +0 -196
  626. package/.next/standalone/packages/ui/dist/standalone/specs/080-mcp-server-modular-architecture/README.md +0 -388
  627. package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +0 -824
  628. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DATABASE.md +0 -111
  629. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DEPLOYMENT.md +0 -69
  630. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/FILESYSTEM.md +0 -77
  631. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/IMPLEMENTATION.md +0 -184
  632. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +0 -496
  633. package/.next/standalone/packages/ui/dist/standalone/specs/083-web-navigation-performance/README.md +0 -490
  634. package/.next/standalone/packages/ui/dist/standalone/specs/084-sub-spec-visibility-in-tools/README.md +0 -389
  635. package/.next/standalone/packages/ui/dist/standalone/specs/085-cli-relationship-commands/README.md +0 -920
  636. package/.next/standalone/packages/ui/dist/standalone/specs/086-template-component-deduplication/README.md +0 -146
  637. package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +0 -607
  638. package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +0 -104
  639. package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +0 -124
  640. package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +0 -129
  641. package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +0 -244
  642. package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +0 -148
  643. package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +0 -54
  644. package/.next/standalone/packages/ui/dist/standalone/specs/archived/001-typescript-cli-migration/README.md +0 -37
  645. package/.next/standalone/packages/ui/dist/standalone/specs/archived/002-template-system-redesign/README.md +0 -60
  646. package/.next/standalone/packages/ui/dist/standalone/specs/archived/003-init-system-redesign/README.md +0 -113
  647. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/README.md +0 -69
  648. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/SUMMARY.md +0 -112
  649. package/.next/standalone/packages/ui/dist/standalone/specs/archived/005-structured-frontmatter/README.md +0 -229
  650. package/.next/standalone/packages/ui/dist/standalone/specs/archived/006-pm-visualization-tools/README.md +0 -406
  651. package/.next/standalone/packages/ui/dist/standalone/specs/archived/007-system-prompt-updates/README.md +0 -168
  652. package/.next/standalone/packages/ui/dist/standalone/specs/archived/008-commander-migration/README.md +0 -174
  653. package/.next/standalone/packages/ui/dist/standalone/specs/archived/009-cli-ux-enhancement/README.md +0 -212
  654. package/.next/standalone/packages/ui/dist/standalone/specs/archived/010-commands-refactor/README.md +0 -249
  655. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/README.md +0 -60
  656. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/TEST_SUMMARY.md +0 -139
  657. package/.next/standalone/packages/ui/dist/standalone/specs/archived/012-sub-spec-files/README.md +0 -722
  658. package/.next/standalone/packages/ui/dist/standalone/specs/archived/013-custom-spec-templates/README.md +0 -413
  659. package/.next/standalone/packages/ui/dist/standalone/specs/archived/015-npm-publishing/README.md +0 -255
  660. package/.next/standalone/packages/ui/dist/standalone/specs/archived/019-readme-improvement/README.md +0 -252
  661. package/.next/standalone/packages/ui/dist/standalone/specs/archived/020-documentation-website/README.md +0 -253
  662. package/.next/standalone/packages/ui/dist/standalone/specs/archived/021-docusaurus-vercel-migration/README.md +0 -612
  663. package/.next/standalone/packages/ui/dist/standalone/specs/archived/022-flexible-folder-structure/README.md +0 -794
  664. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/DESIGN.md +0 -834
  665. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/README.md +0 -255
  666. package/.next/standalone/packages/ui/dist/standalone/specs/archived/027-cli-ui-ux-optimization/README.md +0 -454
  667. package/.next/standalone/packages/ui/dist/standalone/specs/archived/028-cli-ui-modernization/README.md +0 -172
  668. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/IMPLEMENTATION.md +0 -152
  669. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/README.md +0 -95
  670. package/.next/standalone/packages/ui/dist/standalone/specs/archived/030-created-date-format-bug/README.md +0 -87
  671. package/.next/standalone/packages/ui/dist/standalone/specs/archived/031-gantt-ux-improvements/README.md +0 -230
  672. package/.next/standalone/packages/ui/dist/standalone/specs/archived/032-console-log-chalk-security/README.md +0 -89
  673. package/.next/standalone/packages/ui/dist/standalone/specs/archived/033-mcp-server/README.md +0 -89
  674. package/.next/standalone/packages/ui/dist/standalone/specs/archived/037-docs-overhaul/README.md +0 -166
  675. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-flat-structure-migration/README.md +0 -276
  676. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-mcp-frontmatter-bug-fix/README.md +0 -122
  677. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-simplify-viewer-commands/README.md +0 -198
  678. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-template-variable-sync/README.md +0 -192
  679. package/.next/standalone/packages/ui/dist/standalone/specs/archived/040-spec-viewer-commands/README.md +0 -171
  680. package/.next/standalone/packages/ui/dist/standalone/specs/archived/042-mcp-error-handling/README.md +0 -200
  681. package/.next/standalone/packages/ui/dist/standalone/specs/archived/044-spec-relationships-clarity/README.md +0 -317
  682. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/DESIGN.md +0 -276
  683. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/IMPLEMENTATION.md +0 -241
  684. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/README.md +0 -139
  685. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/TESTING.md +0 -328
  686. package/.next/standalone/packages/ui/dist/standalone/specs/archived/050-tool-redesign-first-principles/README.md +0 -400
  687. package/.next/standalone/packages/ui/dist/static/chunks/0c19c69aa7625475.js +0 -1
  688. package/.next/standalone/packages/ui/dist/static/chunks/116800b03245a1e5.js +0 -1
  689. package/.next/standalone/packages/ui/dist/static/chunks/15843a3d7584e314.js +0 -1
  690. package/.next/standalone/packages/ui/dist/static/chunks/19e80edf527aef5c.js +0 -1
  691. package/.next/standalone/packages/ui/dist/static/chunks/465954d5af3284a9.js +0 -1
  692. package/.next/standalone/packages/ui/dist/static/chunks/5abeeb89f1412a80.js +0 -3
  693. package/.next/standalone/packages/ui/dist/static/chunks/5c2072ad938de8ed.js +0 -1
  694. package/.next/standalone/packages/ui/dist/static/chunks/6a05a93ec8fa7b83.js +0 -1
  695. package/.next/standalone/packages/ui/dist/static/chunks/778e42188e450b39.css +0 -1
  696. package/.next/standalone/packages/ui/dist/static/chunks/a02c1f50ff00204f.js +0 -1
  697. package/.next/standalone/packages/ui/dist/static/chunks/a45464b9776dd88e.js +0 -1
  698. package/.next/standalone/packages/ui/dist/static/chunks/a6dad97d9634a72d.js +0 -1
  699. package/.next/standalone/packages/ui/dist/static/chunks/b0ea0ac61604f843.js +0 -1
  700. package/.next/standalone/packages/ui/dist/static/chunks/c06e85b449720194.js +0 -1
  701. package/.next/standalone/packages/ui/dist/static/chunks/c557ac675be79771.js +0 -1
  702. package/.next/standalone/packages/ui/dist/static/chunks/cad005a57ffbb2d3.js +0 -1
  703. package/.next/standalone/packages/ui/dist/static/chunks/cdf6fe33bc65efbc.js +0 -1
  704. package/.next/standalone/packages/ui/dist/static/chunks/d12ed5dbe44caed7.js +0 -1
  705. package/.next/standalone/packages/ui/dist/static/chunks/d1ebe5c1a344f4ca.js +0 -5
  706. package/.next/standalone/packages/ui/dist/static/chunks/d42cf1682bc46652.js +0 -1
  707. package/.next/standalone/packages/ui/dist/static/chunks/dde5d8bddd7fbfcf.js +0 -1
  708. package/.next/standalone/packages/ui/dist/static/chunks/ebd89051637b9a47.js +0 -4
  709. package/.next/standalone/packages/ui/dist/static/chunks/ec82875d18b29f47.js +0 -2
  710. package/.next/standalone/packages/ui/dist/static/chunks/f0b701df9769bcc5.js +0 -19
  711. package/.next/standalone/packages/ui/dist/static/chunks/turbopack-1c09a99f4c9e28d3.js +0 -3
  712. package/.next/standalone/packages/ui/leanspec.db +0 -0
  713. package/.next/static/T_KGFP0pHt_xSaaYUJa3L/_buildManifest.js +0 -11
  714. package/.next/static/T_KGFP0pHt_xSaaYUJa3L/_clientMiddlewareManifest.json +0 -1
  715. package/.next/static/T_KGFP0pHt_xSaaYUJa3L/_ssgManifest.js +0 -1
  716. package/.next/static/chunks/07f48b316e895080.js +0 -1
  717. package/.next/static/chunks/0a7be410b438418a.js +0 -1
  718. package/.next/static/chunks/1089ca88f6bef846.js +0 -1
  719. package/.next/static/chunks/17471c87082c392c.js +0 -5
  720. package/.next/static/chunks/220ba5cb8fe4dd69.js +0 -1
  721. package/.next/static/chunks/35ccd3286e538bd2.js +0 -1
  722. package/.next/static/chunks/4a7396c9a77e64d5.js +0 -1
  723. package/.next/static/chunks/50aead33b660f05c.js +0 -1
  724. package/.next/static/chunks/571033caca823138.js +0 -1
  725. package/.next/static/chunks/5a6fc30cd64085b4.css +0 -1
  726. package/.next/static/chunks/5c2072ad938de8ed.js +0 -1
  727. package/.next/static/chunks/7f732ea69e643219.js +0 -2
  728. package/.next/static/chunks/843e1dfdc28e1385.js +0 -1
  729. package/.next/static/chunks/9dad7fd31627df80.js +0 -1
  730. package/.next/static/chunks/a02c1f50ff00204f.js +0 -1
  731. package/.next/static/chunks/a055d4b2866ff8d4.js +0 -1
  732. package/.next/static/chunks/afb7c5a4255f4081.js +0 -3
  733. package/.next/static/chunks/b760a3a9c2c8be28.js +0 -1
  734. package/.next/static/chunks/b9b9d7565bc2c2ad.js +0 -1
  735. package/.next/static/chunks/db281fdc89c063c5.js +0 -1
  736. package/.next/static/chunks/dcdd95180149fa10.js +0 -1
  737. package/.next/static/chunks/ebd89051637b9a47.js +0 -4
  738. package/.next/static/chunks/f3ec9fd77a8618b1.js +0 -19
  739. package/.next/static/chunks/f9db24028d8c058e.js +0 -1
  740. package/.next/static/chunks/fb640f50455ba34f.js +0 -1
  741. package/.next/static/chunks/turbopack-b9690cacbf9fe48c.js +0 -3
  742. /package/.next/standalone/packages/ui/.next/static/{T_KGFP0pHt_xSaaYUJa3L → tgNrtgJYzuVQ9macE49yx}/_buildManifest.js +0 -0
  743. /package/.next/standalone/packages/ui/.next/static/{T_KGFP0pHt_xSaaYUJa3L → tgNrtgJYzuVQ9macE49yx}/_clientMiddlewareManifest.json +0 -0
  744. /package/.next/standalone/packages/ui/.next/static/{T_KGFP0pHt_xSaaYUJa3L → tgNrtgJYzuVQ9macE49yx}/_ssgManifest.js +0 -0
  745. /package/.next/{standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT → static/tgNrtgJYzuVQ9macE49yx}/_buildManifest.js +0 -0
  746. /package/.next/{standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT → static/tgNrtgJYzuVQ9macE49yx}/_clientMiddlewareManifest.json +0 -0
  747. /package/.next/{standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT → static/tgNrtgJYzuVQ9macE49yx}/_ssgManifest.js +0 -0
@@ -1,496 +0,0 @@
1
- ---
2
- status: in-progress
3
- created: '2025-11-14'
4
- tags:
5
- - web
6
- - architecture
7
- - deployment
8
- - realtime
9
- - v0.3.0
10
- priority: critical
11
- created_at: '2025-11-14T05:33:26.170Z'
12
- updated_at: '2025-11-14T05:35:02.854Z'
13
- transitions:
14
- - status: in-progress
15
- at: '2025-11-14T05:35:02.854Z'
16
- related:
17
- - 035-live-specs-showcase
18
- - 081-web-app-ux-redesign
19
- - 068-live-specs-ux-enhancements
20
- - 065-v03-planning
21
- ---
22
-
23
- # Web App Realtime Spec Sync Architecture
24
-
25
- > **Status**: ⏳ In progress · **Priority**: Critical · **Created**: 2025-11-14 · **Tags**: web, architecture, deployment, realtime, v0.3.0
26
-
27
- **Project**: lean-spec
28
- **Team**: Core Development
29
-
30
- ## Overview
31
-
32
- **Critical architectural decision for v0.3 release**: Design a **dual-mode architecture** that supports both local filesystem reads (for LeanSpec's own specs) and database-backed multi-project showcase (for external GitHub repos).
33
-
34
- **The Problem:**
35
-
36
- The web app serves two distinct use cases with different requirements:
37
-
38
- 1. **LeanSpec's Own Specs** (Primary Use Case):
39
- - Specs live in same monorepo (`specs/` directory)
40
- - Need realtime updates during development
41
- - Need automatic sync on git push/deployment
42
- - Fast filesystem reads available
43
- - No API rate limits or latency concerns
44
-
45
- 2. **External GitHub Repos** (Multi-Project Showcase - spec 035):
46
- - Specs live in external public GitHub repositories
47
- - GitHub API has rate limits (5000 req/hour authenticated)
48
- - API latency: 200-500ms per file fetch
49
- - Need caching layer for performance
50
- - Need scheduled sync (not realtime)
51
-
52
- **Current Architecture (Insufficient):**
53
- ```
54
- CLI (specs/) → Manual seed script → SQLite DB → Next.js Web App
55
-
56
- No automatic sync
57
- Only supports local specs
58
- Manual re-seeding required
59
- ```
60
-
61
- **Why This Matters:**
62
- - Web app becomes stale immediately after spec changes (bad DX)
63
- - Manual re-seeding is unacceptable for production use
64
- - Cannot support multi-project showcase (spec 035) without DB
65
- - Breaks the "single source of truth" principle (specs/ directory)
66
- - GitHub API latency makes direct reads too slow for UX
67
- - Critical blocker for v0.3 launch
68
-
69
- **What We Need:**
70
- A **configurable dual-mode architecture** that:
71
- 1. **Mode 1 (Filesystem)**: Direct reads from local `specs/` directory
72
- - For LeanSpec's own specs
73
- - Realtime updates with in-memory caching
74
- - No database dependency
75
- - Fast performance (<100ms)
76
-
77
- 2. **Mode 2 (Database + GitHub)**: Database-backed multi-project support
78
- - For external GitHub repos (spec 035 vision)
79
- - GitHub API → DB cache layer
80
- - Scheduled sync (webhooks optional)
81
- - Handles rate limits gracefully
82
-
83
- 3. **Configuration-driven**: Environment variable determines mode
84
- 4. **Backwards compatible**: Can run both modes simultaneously
85
-
86
- ## Design
87
-
88
- ### Recommended Solution: Dual-Mode Architecture
89
-
90
- **Architecture Overview:**
91
-
92
- ```
93
- ┌─────────────────────────────────────────────────────────────┐
94
- │ Web App (Next.js) │
95
- ├─────────────────────────────────────────────────────────────┤
96
- │ Unified Service Layer │
97
- │ (SpecsService Abstraction) │
98
- ├──────────────────────────┬──────────────────────────────────┤
99
- │ Mode 1: Filesystem │ Mode 2: Database + GitHub │
100
- │ (Local Specs) │ (External Repos) │
101
- ├──────────────────────────┼──────────────────────────────────┤
102
- │ specs/ → @leanspec/core │ GitHub API → PostgreSQL │
103
- │ In-Memory Cache (60s) │ Scheduled Sync (cron) │
104
- │ Fast (<100ms) │ Cached (<50ms) │
105
- │ Realtime Updates │ Near-Realtime (5-60 min) │
106
- └──────────────────────────┴──────────────────────────────────┘
107
- ```
108
-
109
- **Key Design Principles:**
110
-
111
- 1. **Configuration-Driven**: Environment variable determines which mode(s) to use
112
- 2. **Unified Interface**: Same API for both modes (transparent to UI)
113
- 3. **Performance First**: Aggressive caching for both modes
114
- 4. **Backwards Compatible**: Can enable both modes simultaneously
115
- 5. **Graceful Degradation**: Falls back if one mode fails
116
-
117
- **Implementation Details:**
118
-
119
- - **[Mode 1: Filesystem](./FILESYSTEM.md)** - Direct filesystem reads for LeanSpec's own specs
120
- - **[Mode 2: Database + GitHub](./DATABASE.md)** - Multi-project showcase with GitHub sync
121
- - **[Implementation Plan](./IMPLEMENTATION.md)** - Phased rollout strategy (v0.3.0 → v0.4)
122
- - **[Deployment Configuration](./DEPLOYMENT.md)** - Vercel setup for both modes
123
-
124
- ### Unified Service Layer (Abstraction)
125
-
126
- **Configuration-driven routing:**
127
-
128
- ```typescript
129
- // packages/web/src/lib/specs/service.ts
130
- interface SpecSource {
131
- getAllSpecs(projectId?: string): Promise<Spec[]>;
132
- getSpec(specPath: string, projectId?: string): Promise<Spec | null>;
133
- getSpecsByStatus(status: string, projectId?: string): Promise<Spec[]>;
134
- searchSpecs(query: string, projectId?: string): Promise<Spec[]>;
135
- }
136
-
137
- export class SpecsService {
138
- private filesystemSource?: FilesystemSource;
139
- private databaseSource?: DatabaseSource;
140
-
141
- constructor() {
142
- const mode = process.env.SPECS_MODE || 'filesystem'; // 'filesystem' | 'database' | 'both'
143
-
144
- if (mode === 'filesystem' || mode === 'both') {
145
- this.filesystemSource = new FilesystemSource();
146
- }
147
-
148
- if (mode === 'database' || mode === 'both') {
149
- this.databaseSource = new DatabaseSource();
150
- }
151
- }
152
-
153
- async getAllSpecs(projectId?: string): Promise<Spec[]> {
154
- // If projectId provided, use database (external repo)
155
- if (projectId && this.databaseSource) {
156
- return await this.databaseSource.getAllSpecs(projectId);
157
- }
158
-
159
- // Otherwise use filesystem (LeanSpec's own specs)
160
- if (this.filesystemSource) {
161
- return await this.filesystemSource.getAllSpecs();
162
- }
163
-
164
- throw new Error('No spec source configured');
165
- }
166
-
167
- // ... other methods follow same pattern
168
- }
169
-
170
- export const specsService = new SpecsService();
171
- ```
172
-
173
- **Environment Variables:**
174
-
175
- ```bash
176
- # Mode configuration
177
- SPECS_MODE=both # 'filesystem' | 'database' | 'both'
178
-
179
- # Filesystem mode
180
- SPECS_DIR=../../specs
181
-
182
- # Database mode
183
- DATABASE_URL=postgres://... # Vercel Postgres
184
- GITHUB_TOKEN=ghp_... # For API access
185
-
186
- # Cache settings
187
- CACHE_TTL=60000 # 60 seconds
188
- ```
189
-
190
- ### Performance Comparison
191
-
192
- | Metric | Filesystem Mode | Database Mode |
193
- |--------|----------------|---------------|
194
- | **First Load** | ~100ms (file read) | ~50ms (DB query) |
195
- | **Cached Load** | ~10ms (memory) | ~10ms (memory) |
196
- | **Sync Latency** | 0-60s (cache TTL) | 5-60 min (scheduled) |
197
- | **Multi-Project** | ❌ Not supported | ✅ Supported |
198
- | **Rate Limits** | ✅ None | ⚠️ 5000 req/hr |
199
- | **Cold Start** | ~100ms | ~50ms |
200
- | **Deployment** | Simple (specs/ in repo) | Complex (DB + cron) |
201
-
202
- ### Migration Strategy
203
-
204
- **Phase 1 (v0.3)**: Filesystem mode only
205
- - Remove database dependency for simplicity
206
- - Focus on LeanSpec's own specs
207
- - Get to production fast
208
-
209
- **Phase 2 (v0.3.1)**: Add database mode
210
- - Keep filesystem mode working
211
- - Add database + GitHub sync
212
- - Run both modes in parallel
213
-
214
- **Phase 3 (v0.4)**: Full multi-project showcase
215
- - Webhooks for realtime sync
216
- - Advanced features (search, relationships)
217
- - Community showcase
218
-
219
- ## Plan
220
-
221
- ### Phase 1: Filesystem Mode (v0.3.0 - Days 1-4)
222
- - [x] Create spec and analyze requirements ✅
223
- - [x] Design dual-mode architecture ✅
224
- - [x] Create unified `SpecsService` abstraction ✅ (PR #61)
225
- - [x] Implement `FilesystemSource` with caching ✅ (237 lines, TTL-based)
226
- - [x] Refactor all data fetching to use service layer ✅ (13 files, 2,724 lines)
227
- - [x] Update API routes and page components ✅ (service-queries.ts)
228
- - [x] Add cache invalidation endpoint (optional) ✅ (/api/revalidate)
229
- - [x] Build configuration and Vercel setup ✅ (vercel.json added)
230
- - [ ] Test filesystem mode thoroughly
231
- - [ ] Deploy to Vercel staging
232
- - [ ] Deploy to production
233
-
234
- ### Phase 2: Database Mode (v0.3.1 - Days 5-8)
235
- - [x] Implement `DatabaseSource` with PostgreSQL ✅ (94 lines, lazy-loaded)
236
- - [ ] Implement `GitHubSyncService` (Octokit integration)
237
- - [ ] Add project management UI (add/remove repos)
238
- - [ ] Add sync status dashboard
239
- - [ ] Implement scheduled sync (Vercel Cron)
240
- - [ ] Update `SpecsService` routing logic (partial - needs GitHub sync)
241
- - [ ] Test both modes in parallel
242
- - [ ] Deploy to production with `SPECS_MODE=both`
243
-
244
- ### Phase 3: Webhooks (v0.4 - Future)
245
- - [ ] Implement GitHub webhook endpoint
246
- - [ ] Add webhook management UI
247
- - [ ] Implement incremental sync (only changed files)
248
- - [ ] Test near-realtime updates (<10s latency)
249
- - [ ] Update specs board page
250
- - [ ] Update spec detail pages
251
- - [ ] Add Next.js cache revalidation
252
-
253
- ### Phase 3: Cache & Performance (Days 7-8)
254
- - [x] Implement cache invalidation API endpoint ✅ (/api/revalidate with auth)
255
- - [ ] Add file watcher for local development (optional)
256
- - [ ] Performance testing and optimization
257
- - [ ] Add monitoring/logging for cache hits/misses
258
-
259
- ### Phase 4: Testing & Deployment (Days 9-10)
260
- - [x] Test in local environment ✅ (build passes)
261
- - [x] Test cache invalidation ✅ (endpoint implemented)
262
- - [ ] Test performance under load
263
- - [ ] Test near-realtime updates (<10s latency)
264
-
265
- ## Test
266
-
267
- ### Phase 1 Testing (Filesystem Mode)
268
-
269
- **Functional:**
270
- - [ ] All specs load from filesystem
271
- - [ ] Cache hit rate >90% after warmup
272
- - [ ] Cache invalidation works correctly
273
- - [ ] Stats calculations accurate
274
- - [ ] Search and filtering work
275
- - [ ] Board view displays correctly
276
- - [ ] Spec detail pages render markdown
277
- - [ ] Sub-specs navigation works
278
-
279
- **Performance:**
280
- - [ ] Initial page load <100ms (filesystem read)
281
- - [ ] Cached page load <10ms (memory hit)
282
- - [ ] Memory usage <100MB per instance
283
- - [ ] No memory leaks over 24 hours
284
- - [ ] Cold start acceptable (<500ms)
285
-
286
- **Deployment:**
287
- - [x] Build succeeds on Vercel (Next.js 16.0.1, TypeScript passes)
288
- - [ ] Specs directory accessible at runtime
289
- - [ ] Environment variables configured
290
- - [ ] Cache works in serverless functions
291
- - [ ] Updates appear within 60s
292
-
293
- ### Phase 2 Testing (Database Mode)
294
-
295
- **Functional:**
296
- - [ ] Can add external GitHub repo
297
- - [ ] Sync discovers all specs correctly
298
- - [ ] Database stores specs with metadata
299
- - [ ] Multi-project UI works
300
- - [ ] Cron job executes successfully
301
- - [ ] Sync logs recorded properly
302
- - [ ] Rate limiting handled gracefully
303
-
304
- **Performance:**
305
- - [ ] Database queries <50ms
306
- - [ ] GitHub sync <30s for typical repo
307
- - [ ] Parallel fetching works (not sequential)
308
- - [ ] Database connections pooled correctly
309
-
310
- **Integration:**
311
- - [ ] Both filesystem and database modes work
312
- - [ ] Service layer routes correctly
313
- - [ ] No conflicts between sources
314
- - [ ] Graceful fallback on errors
315
-
316
- ## Notes
317
-
318
- ### Key Design Decisions
319
-
320
- **Why Dual-Mode Architecture?**
321
- 1. **Different Requirements**: Local specs need realtime, external repos need caching
322
- 2. **Performance**: Filesystem reads (<100ms) vs GitHub API (200-500ms)
323
- 3. **Flexibility**: Can disable either mode via config
324
- 4. **Simplicity**: v0.3 can ship without database complexity
325
- 5. **Future-Proof**: Easy to add database mode in v0.3.1
326
-
327
- **Why Keep Database for External Repos?**
328
- - GitHub API has rate limits (5000 req/hour)
329
- - API latency too high for good UX (200-500ms per file)
330
- - Need scheduled sync, not on-demand fetching
331
- - Database enables advanced features (search, relationships, analytics)
332
- - Database is cache layer, not source of truth
333
-
334
- **Why NOT Database for Local Specs?**
335
- - Adds complexity (migrations, seeding, sync logic)
336
- - Filesystem is already source of truth
337
- - In-memory cache provides similar performance
338
- - Simpler deployment (no database required)
339
- - Easier local development (no DB setup)
340
-
341
- ### Cache TTL Trade-offs
342
-
343
- | TTL | Pros | Cons | Recommendation |
344
- |-----|------|------|----------------|
345
- | 30s | More realtime | More filesystem reads | Dev mode |
346
- | 60s | Good balance | 1-minute delay | **Production default** |
347
- | 120s | Better performance | Slower updates | High-traffic sites |
348
-
349
- **Configurable via `CACHE_TTL` environment variable**
350
-
351
- ### GitHub API Rate Limits
352
-
353
- **Without Authentication:**
354
- - 60 requests per hour
355
- - Not viable for production
356
-
357
- **With Authentication (`GITHUB_TOKEN`):**
358
- - 5,000 requests per hour
359
- - Sufficient for scheduled sync
360
- - ~1 request per spec (README.md + metadata)
361
- - Can sync ~100 specs every 5 minutes
362
-
363
- **Mitigation:**
364
- - Database caching layer (essential)
365
- - Scheduled sync (hourly or less)
366
- - Webhooks for near-realtime (Phase 3)
367
- - Conditional requests (ETags) to avoid re-fetching
368
-
369
- ### Performance Benchmarks
370
-
371
- **Filesystem Mode:**
372
- ```
373
- Cold start (no cache): ~100ms (read file + parse)
374
- Warm cache (in-memory): ~10ms (memory lookup)
375
- Cache miss penalty: ~90ms (acceptable)
376
- ```
377
-
378
- **Database Mode:**
379
- ```
380
- Database query: ~50ms (PostgreSQL)
381
- GitHub API fetch: ~300ms (per file, avoided via cache)
382
- Sync full repo (50 specs): ~15s (parallel fetching)
383
- ```
384
-
385
- **Comparison:**
386
- - Filesystem: Faster for single project (LeanSpec)
387
- - Database: Necessary for multi-project (spec 035)
388
- - Both: Optimal for production
389
-
390
- ### Dependencies & Relationships
391
-
392
- **This spec enables:**
393
- - v0.3 release (filesystem mode)
394
- - Spec 035 (multi-project showcase) - database mode required
395
- - Spec 081 (UX redesign) - needs stable data layer
396
-
397
- **This spec blocks:**
398
- - v0.3 production deployment
399
- - Community showcase features
400
- - External repo integration
401
-
402
- **Related specs:**
403
- - Spec 035 (live-specs-showcase) - Web app being fixed
404
- - Spec 068 (live-specs-ux-enhancements) - UI/UX improvements
405
- - Spec 081 (web-app-ux-redesign) - UX redesign complete
406
- - Spec 083 (web-navigation-performance) - Navigation performance optimization
407
- - Spec 065 (v03-planning) - Release planning
408
- - Spec 059 (programmatic-spec-management) - API design overlap
409
-
410
- **This spec depends on:**
411
- - `@leanspec/core` APIs (SpecReader, SpecParser)
412
- - Existing database schema (keep for Phase 2)
413
- - Vercel serverless functions (filesystem access)
414
-
415
- ### Open Questions
416
-
417
- - [x] Should we keep database for v0.3? → **Keep schema, don't use yet (Phase 2)**
418
- - [x] What should cache TTL be? → **60s (configurable via env)**
419
- - [x] Do we really need database if it's only cache? → **Yes, for multi-project showcase**
420
- - [x] How to manage GitHub API latency? → **Scheduled sync + database caching**
421
- - [ ] Should we use PostgreSQL or SQLite? → **PostgreSQL (Vercel Postgres)**
422
- - [x] Should cache invalidation API be authenticated? → **Yes, use REVALIDATION_SECRET (implemented)**
423
- - [x] File watcher in dev mode? → **Nice-to-have, not critical for v0.3 (deferred)**
424
-
425
- ### Implementation Progress
426
-
427
- **Completed (Nov 14-15, 2025):**
428
- - ✅ **Unified Service Layer** (`packages/web/src/lib/specs/service.ts`)
429
- - `SpecSource` interface with full CRUD operations
430
- - `SpecsService` class with mode-based routing
431
- - Lazy-loading for database source to avoid build issues
432
-
433
- - ✅ **FilesystemSource** (`packages/web/src/lib/specs/sources/filesystem-source.ts`)
434
- - 237 lines of production-ready code
435
- - In-memory TTL-based caching (configurable via `CACHE_TTL`)
436
- - Reads directly from `specs/` directory at runtime
437
- - Cache invalidation support
438
-
439
- - ✅ **DatabaseSource** (`packages/web/src/lib/specs/sources/database-source.ts`)
440
- - 94 lines, ready for Phase 2
441
- - Drizzle ORM integration
442
- - Full query support (by status, search, etc.)
443
-
444
- - ✅ **Service-Based Data Layer** (`packages/web/src/lib/db/service-queries.ts`)
445
- - 112 lines, replaces direct DB queries
446
- - All API routes migrated to `specsService`
447
- - All page components use service layer
448
-
449
- - ✅ **Cache Invalidation API** (`packages/web/src/app/api/revalidate/route.ts`)
450
- - 63 lines with authentication
451
- - Supports invalidating specific spec or all specs
452
- - Integrates with Next.js cache revalidation
453
-
454
- - ✅ **Deployment Configuration** (`vercel.json`)
455
- - Build commands configured
456
- - Ready for Vercel deployment
457
-
458
- - ✅ **Build Verification**
459
- - Next.js 16.0.1 build passes
460
- - TypeScript compilation successful
461
- - No runtime errors
462
-
463
- **Commits:**
464
- - `a9bbe00` - Phase 1: Implement filesystem-based specs service (654 lines)
465
- - `7f53e69` - Phase 1 complete: Add cache invalidation API
466
- - `8f35d91` - Merged via PR #61 (2,724 lines added across 13 files)
467
- - `8a530d9`, `b759953`, `26676c4` - Vercel configuration
468
-
469
- **Next Steps:**
470
- 1. Deploy to Vercel staging environment
471
- 2. Verify production deployment works
472
- 3. Run performance benchmarks (<100ms target)
473
- 4. (Phase 2) Implement GitHub sync service for external repos
474
-
475
- ### Success Criteria
476
-
477
- **v0.3.0 (Filesystem Mode):**
478
- - ✅ LeanSpec's specs load from filesystem (implemented)
479
- - ✅ Performance <100ms (filesystem) / <10ms (cached) (architecture supports)
480
- - ✅ Updates appear within 60s (cache TTL) (configurable)
481
- - ✅ Works in local dev and Vercel production (build passes)
482
- - ✅ No manual re-seeding required (direct filesystem reads)
483
- - ⏳ Production deployment pending
484
- - ⏳ Performance benchmarking pending
485
-
486
- **v0.3.1 (Database Mode):**
487
- - ⏸️ Can add external GitHub repos (UI not built)
488
- - ⏸️ Sync discovers and stores specs (GitHubSyncService missing)
489
- - ✅ Performance <50ms (database queries) (DatabaseSource ready)
490
- - ⏸️ Scheduled sync works (hourly) (cron job not configured)
491
- - ✅ Both modes work simultaneously (routing logic in place)
492
-
493
- **v0.4 (Webhooks):**
494
- - ⏸️ Near-realtime updates (<10s) (future work)
495
- - ✅ Incremental sync (only changed files)
496
- - ✅ Webhook management UI