@leanspec/ui 0.2.7 → 0.2.9-dev.20251205030455

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 (741) hide show
  1. package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64 → @img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64}/README.md +2 -2
  2. package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64 → @img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64}/lib/glib-2.0/include/glibconfig.h +9 -8
  3. package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib → @img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3} +0 -0
  4. package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64 → @img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64}/package.json +11 -5
  5. package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +46 -0
  6. package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +221 -0
  7. package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +1 -0
  8. package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  9. package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +42 -0
  10. package/.next/standalone/node_modules/.pnpm/@img+sharp-libvips-linuxmusl-x64@1.2.4/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +30 -0
  11. package/.next/standalone/node_modules/.pnpm/@img+sharp-linux-x64@0.34.5/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
  12. package/.next/standalone/node_modules/.pnpm/{@img+sharp-darwin-arm64@0.34.5/node_modules/@img/sharp-darwin-arm64 → @img+sharp-linux-x64@0.34.5/node_modules/@img/sharp-linux-x64}/package.json +13 -7
  13. package/.next/standalone/node_modules/.pnpm/@img+sharp-linuxmusl-x64@0.34.5/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
  14. package/.next/standalone/node_modules/.pnpm/@img+sharp-linuxmusl-x64@0.34.5/node_modules/@img/sharp-linuxmusl-x64/package.json +46 -0
  15. package/.next/standalone/node_modules/.pnpm/better-sqlite3@11.10.0/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  16. package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
  17. package/.next/standalone/packages/ui/.next/app-path-routes-manifest.json +10 -0
  18. package/.next/standalone/packages/ui/.next/build-manifest.json +4 -4
  19. package/.next/standalone/packages/ui/.next/prerender-manifest.json +3 -3
  20. package/.next/standalone/packages/ui/.next/required-server-files.json +4 -4
  21. package/.next/standalone/packages/ui/.next/routes-manifest.json +72 -0
  22. package/.next/standalone/packages/ui/.next/server/app/_global-error/page/build-manifest.json +2 -2
  23. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js +1 -1
  24. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js.nft.json +1 -1
  25. package/.next/standalone/packages/ui/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/packages/ui/.next/server/app/_global-error.html +2 -2
  27. package/.next/standalone/packages/ui/.next/server/app/_global-error.rsc +1 -1
  28. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  29. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  30. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  31. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  32. package/.next/standalone/packages/ui/.next/server/app/_not-found/page/build-manifest.json +2 -2
  33. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js +2 -2
  34. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  35. package/.next/standalone/packages/ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/packages/ui/.next/server/app/_not-found.html +2 -2
  37. package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +19 -19
  38. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +19 -19
  39. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
  40. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  41. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  42. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +6 -6
  43. package/.next/standalone/packages/ui/.next/server/app/api/context/route/app-paths-manifest.json +3 -0
  44. package/.next/standalone/packages/ui/.next/server/app/api/context/route/build-manifest.json +11 -0
  45. package/.next/standalone/packages/ui/.next/server/app/api/context/route/server-reference-manifest.json +4 -0
  46. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js +8 -0
  47. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js.map +5 -0
  48. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js.nft.json +1 -0
  49. package/.next/standalone/packages/ui/.next/server/app/api/context/route_client-reference-manifest.js +2 -0
  50. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route/app-paths-manifest.json +3 -0
  51. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route/build-manifest.json +11 -0
  52. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route/server-reference-manifest.json +4 -0
  53. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js +8 -0
  54. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js.map +5 -0
  55. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js.nft.json +1 -0
  56. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route_client-reference-manifest.js +2 -0
  57. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js.nft.json +1 -1
  58. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.nft.json +1 -1
  59. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.nft.json +1 -1
  60. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.nft.json +1 -1
  61. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route/app-paths-manifest.json +3 -0
  62. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route/build-manifest.json +11 -0
  63. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route/server-reference-manifest.json +4 -0
  64. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js +8 -0
  65. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js.map +5 -0
  66. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js.nft.json +1 -0
  67. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route_client-reference-manifest.js +2 -0
  68. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route/app-paths-manifest.json +3 -0
  69. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route/build-manifest.json +11 -0
  70. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route/server-reference-manifest.json +4 -0
  71. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js +8 -0
  72. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js.map +5 -0
  73. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js.nft.json +1 -0
  74. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route_client-reference-manifest.js +2 -0
  75. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js +1 -3
  76. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  77. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js +1 -2
  78. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.nft.json +1 -1
  79. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js +1 -1
  80. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.nft.json +1 -1
  81. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js +1 -2
  82. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
  83. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js +1 -1
  84. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.nft.json +1 -1
  85. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route/app-paths-manifest.json +3 -0
  86. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route/build-manifest.json +11 -0
  87. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route/server-reference-manifest.json +4 -0
  88. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js +6 -0
  89. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js.map +5 -0
  90. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js.nft.json +1 -0
  91. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route_client-reference-manifest.js +2 -0
  92. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js +1 -3
  93. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
  94. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js +1 -1
  95. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
  96. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js +1 -1
  97. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
  98. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js +1 -1
  99. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
  100. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -1
  101. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js +1 -1
  102. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
  103. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js +1 -1
  104. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
  105. package/.next/standalone/packages/ui/.next/server/app/context/page/app-paths-manifest.json +3 -0
  106. package/.next/standalone/packages/ui/.next/server/app/context/page/build-manifest.json +18 -0
  107. package/.next/standalone/packages/ui/.next/server/app/context/page/next-font-manifest.json +6 -0
  108. package/.next/standalone/packages/ui/.next/server/app/context/page/react-loadable-manifest.json +1 -0
  109. package/.next/standalone/packages/ui/.next/server/app/context/page/server-reference-manifest.json +4 -0
  110. package/.next/standalone/packages/ui/.next/server/app/context/page.js +19 -0
  111. package/.next/standalone/packages/ui/.next/server/app/context/page.js.map +5 -0
  112. package/.next/standalone/packages/ui/.next/server/app/context/page.js.nft.json +1 -0
  113. package/.next/standalone/packages/ui/.next/server/app/context/page_client-reference-manifest.js +2 -0
  114. package/.next/standalone/packages/ui/.next/server/app/dependencies/page/app-paths-manifest.json +3 -0
  115. package/.next/standalone/packages/ui/.next/server/app/dependencies/page/build-manifest.json +18 -0
  116. package/.next/standalone/packages/ui/.next/server/app/dependencies/page/next-font-manifest.json +6 -0
  117. package/.next/standalone/packages/ui/.next/server/app/dependencies/page/react-loadable-manifest.json +1 -0
  118. package/.next/standalone/packages/ui/.next/server/app/dependencies/page/server-reference-manifest.json +4 -0
  119. package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js +19 -0
  120. package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js.map +5 -0
  121. package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js.nft.json +1 -0
  122. package/.next/standalone/packages/ui/.next/server/app/dependencies/page_client-reference-manifest.js +2 -0
  123. package/.next/standalone/packages/ui/.next/server/app/page/build-manifest.json +2 -2
  124. package/.next/standalone/packages/ui/.next/server/app/page.js +4 -3
  125. package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
  126. package/.next/standalone/packages/ui/.next/server/app/page_client-reference-manifest.js +1 -1
  127. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/app-paths-manifest.json +3 -0
  128. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/build-manifest.json +18 -0
  129. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/next-font-manifest.json +6 -0
  130. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/react-loadable-manifest.json +1 -0
  131. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/server-reference-manifest.json +4 -0
  132. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js +21 -0
  133. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js.map +5 -0
  134. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js.nft.json +1 -0
  135. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page_client-reference-manifest.js +2 -0
  136. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/app-paths-manifest.json +3 -0
  137. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/build-manifest.json +18 -0
  138. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/next-font-manifest.json +6 -0
  139. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/react-loadable-manifest.json +1 -0
  140. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/server-reference-manifest.json +4 -0
  141. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js +21 -0
  142. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js.map +5 -0
  143. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js.nft.json +1 -0
  144. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page_client-reference-manifest.js +2 -0
  145. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page/build-manifest.json +2 -2
  146. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js +7 -7
  147. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -1
  148. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +1 -1
  149. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page/build-manifest.json +2 -2
  150. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js +8 -7
  151. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -1
  152. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page_client-reference-manifest.js +1 -1
  153. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page/build-manifest.json +2 -2
  154. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js +7 -6
  155. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -1
  156. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page_client-reference-manifest.js +1 -1
  157. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/app-paths-manifest.json +3 -0
  158. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/build-manifest.json +18 -0
  159. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/next-font-manifest.json +6 -0
  160. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/react-loadable-manifest.json +1 -0
  161. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/server-reference-manifest.json +4 -0
  162. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js +21 -0
  163. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js.map +5 -0
  164. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js.nft.json +1 -0
  165. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page_client-reference-manifest.js +2 -0
  166. package/.next/standalone/packages/ui/.next/server/app/projects/page/build-manifest.json +2 -2
  167. package/.next/standalone/packages/ui/.next/server/app/projects/page.js +7 -6
  168. package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -1
  169. package/.next/standalone/packages/ui/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  170. package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -2
  171. package/.next/standalone/packages/ui/.next/server/app/projects.rsc +24 -23
  172. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +24 -23
  173. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +9 -9
  174. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +3 -3
  175. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  176. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  177. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page/build-manifest.json +2 -2
  178. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js +2 -2
  179. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
  180. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
  181. package/.next/standalone/packages/ui/.next/server/app/specs/page/build-manifest.json +2 -2
  182. package/.next/standalone/packages/ui/.next/server/app/specs/page.js +2 -2
  183. package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
  184. package/.next/standalone/packages/ui/.next/server/app/specs/page_client-reference-manifest.js +1 -1
  185. package/.next/standalone/packages/ui/.next/server/app/stats/page/build-manifest.json +2 -2
  186. package/.next/standalone/packages/ui/.next/server/app/stats/page.js +2 -2
  187. package/.next/standalone/packages/ui/.next/server/app/stats/page.js.nft.json +1 -1
  188. package/.next/standalone/packages/ui/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  189. package/.next/standalone/packages/ui/.next/server/app-paths-manifest.json +10 -0
  190. package/.next/standalone/packages/ui/.next/server/chunks/6681a__next-internal_server_app_api_projects_[id]_dependencies_route_actions_7ac49581.js +3 -0
  191. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_context_route_actions_96adca70.js +3 -0
  192. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_validate_route_actions_b60372c9.js +3 -0
  193. package/.next/standalone/packages/ui/.next/server/chunks/[externals]_better-sqlite3_a1cc22cb._.js +3 -0
  194. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__1706515f._.js +3 -0
  195. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__18aca702._.js +3 -0
  196. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__27348781._.js +3 -0
  197. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3559376c._.js +2 -2
  198. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3a7f0840._.js +3 -0
  199. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3e17db24._.js +3 -0
  200. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__5f1e0195._.js +3 -0
  201. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__6e06fd2a._.js +3 -0
  202. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__71d98924._.js +3 -0
  203. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__97b99cc0._.js +3 -0
  204. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9d9758e1._.js +3 -0
  205. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b1ad8b69._.js +3 -0
  206. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b212b9bd._.js +3 -0
  207. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b9c03a57._.js +3 -0
  208. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e99e7672._.js +3 -0
  209. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f38a5f20._.js +3 -0
  210. package/.next/standalone/packages/ui/.next/server/chunks/{[root-of-the-server]__126dea7b._.js → [root-of-the-server]__fa8cf2bc._.js} +2 -2
  211. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_context_route_actions_dead6daa.js +3 -0
  212. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_dependencies_route_actions_cf6b14c3.js +3 -0
  213. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_b8c1af87._.js +3 -0
  214. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_baa0160d._.js +72 -1
  215. package/.next/standalone/packages/ui/.next/server/chunks/ssr/730ea_ui__next-internal_server_app_projects_[projectId]_context_page_actions_e4940a48.js +3 -0
  216. package/.next/standalone/packages/ui/.next/server/chunks/ssr/730ea_ui__next-internal_server_app_projects_[projectId]_stats_page_actions_82a85203.js +3 -0
  217. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__0f0dade1._.js +1 -1
  218. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__13f96ef4._.js +3 -0
  219. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__212c8580._.js +3 -0
  220. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__2b66bcca._.js +3 -0
  221. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__312221a2._.js +3 -0
  222. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__366688dd._.js +3 -0
  223. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__fd80e4dd._.js → [root-of-the-server]__38c56adc._.js} +2 -2
  224. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__44b603f9._.js +3 -0
  225. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__46b71f61._.js +3 -0
  226. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__53f4506c._.js +3 -0
  227. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__665ae766._.js +3 -0
  228. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__69a0d63a._.js +3 -0
  229. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__84124d4b._.js +3 -0
  230. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__921689ca._.js +3 -0
  231. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a34731d8._.js +3 -0
  232. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a9d7fd42._.js +3 -0
  233. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b0d6e2ad._.js +3 -0
  234. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b27b2469._.js +3 -0
  235. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b3633d6e._.js +3 -0
  236. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__dcee62dd._.js +3 -0
  237. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_000dd317._.js +1 -1
  238. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_03aa8d19._.js +7 -0
  239. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_39562b2a._.js → _170362f4._.js} +3 -3
  240. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_1a642e67._.js +4 -0
  241. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_28fe1532._.js +5 -0
  242. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_85effc18._.js → _2bc76f88._.js} +3 -3
  243. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_fdd7780b._.js → _3f059230._.js} +3 -3
  244. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_58b98a8f._.js +4 -0
  245. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_8ab6f9ca._.js +3 -0
  246. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_90eed09a._.js +3 -0
  247. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_959ad3d8._.js +4 -0
  248. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_22274047._.js → _adb9d7cb._.js} +2 -2
  249. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_0f9ffe32._.js → _b303aeea._.js} +2 -2
  250. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_bae6d2b8._.js → _b421ba4a._.js} +3 -3
  251. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_d840ffc6._.js +3 -0
  252. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_da18b655._.js +3 -0
  253. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ec637d7c._.js +3 -0
  254. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f05260d6._.js +4 -0
  255. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f38e75b7._.js +4 -0
  256. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f9129aae._.js +3 -0
  257. package/.next/standalone/packages/ui/.next/server/chunks/ssr/f825c_server_app_projects_[projectId]_dependencies_page_actions_ba2321b8.js +3 -0
  258. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_0056f1f2._.js +3 -0
  259. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_015f83ca._.js +3 -0
  260. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_30b0b05a._.js +3 -0
  261. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_478d57e5._.js +3 -0
  262. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_4e3e790c._.js +3 -0
  263. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_80605a06._.js +3 -0
  264. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_f5b29533._.js → node_modules__pnpm_8680dc29._.js} +2 -2
  265. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_e175b92a._.js → node_modules__pnpm_94a0b1f5._.js} +2 -2
  266. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_b4ff5c78._.js +3 -0
  267. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_bb80de48._.js +3 -0
  268. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_7791e3b8._.js → node_modules__pnpm_d3262b3d._.js} +2 -2
  269. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_e8075f9b._.js +3 -0
  270. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_f919ef4a._.js +3 -0
  271. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_context_page_actions_1a062d48.js +3 -0
  272. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_dependencies_page_actions_57387d47.js +3 -0
  273. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_context_context-client_tsx_4ba99a62._.js +12 -0
  274. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_dependencies_dependencies-client_tsx_0e82443a._.js +4 -0
  275. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_layout_tsx_86c2ce0f._.js +3 -0
  276. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_page_tsx_6e166c8e._.js +1 -1
  277. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_specs_specs-client_tsx_0bb8f8f8._.js +1 -1
  278. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_spec-detail-wrapper_tsx_fd35401c._.js +3 -0
  279. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_specs-nav-sidebar_tsx_8237ed13._.js +1 -1
  280. package/.next/standalone/packages/ui/.next/server/middleware-build-manifest.js +2 -2
  281. package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
  282. package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
  283. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
  284. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
  285. package/.next/standalone/packages/ui/.next/static/chunks/04de9ed512b8098b.js +10 -0
  286. package/.next/standalone/packages/ui/.next/static/chunks/1e0689744f87e958.js +2 -0
  287. package/.next/standalone/packages/ui/.next/static/chunks/3d12a8c3152b526d.js +3 -0
  288. package/.next/standalone/packages/ui/.next/static/chunks/4610aea3ca2e69eb.js +2 -0
  289. package/.next/standalone/packages/ui/.next/static/chunks/46275d9d67603bf5.js +1 -0
  290. package/.next/standalone/packages/ui/.next/static/chunks/7931c6cb379305b1.js +1 -0
  291. package/.next/standalone/packages/ui/.next/static/chunks/7a00633903e066b4.js +1 -0
  292. package/.next/standalone/packages/ui/.next/static/chunks/{942cf63b4032c808.js → 7df6308e6cfcf902.js} +1 -1
  293. package/.next/standalone/packages/ui/.next/static/chunks/7f9a218732be8099.js +5 -0
  294. package/.next/standalone/packages/ui/.next/static/chunks/840c6743a491a398.js +1 -0
  295. package/.next/standalone/packages/ui/.next/static/chunks/8a6e8f3394240dbb.js +1 -0
  296. package/.next/standalone/packages/ui/.next/static/chunks/8d8c106c6848d15b.js +1 -0
  297. package/.next/standalone/packages/ui/.next/static/chunks/a5e25b9fa6b88eee.js +1 -0
  298. package/.next/standalone/packages/ui/.next/static/chunks/a640b005f2e15d98.js +1 -0
  299. package/.next/standalone/packages/ui/.next/static/chunks/a7075a240adea8e8.js +1 -0
  300. package/.next/standalone/packages/ui/.next/static/chunks/b53250480fde6816.js +1 -0
  301. package/.next/standalone/packages/ui/.next/static/chunks/{794f3931f1ca12d2.js → bbd498aa5689c057.js} +1 -1
  302. package/.next/standalone/packages/ui/.next/static/chunks/c26909a25ca9fc9b.js +1 -0
  303. package/.next/standalone/packages/ui/.next/static/chunks/c658e22a605e0ed1.js +1 -0
  304. package/.next/standalone/packages/ui/.next/static/chunks/c92660d8d0c4763d.js +1 -0
  305. package/.next/{static/chunks/e3bc96a996e2a314.js → standalone/packages/ui/.next/static/chunks/d26f4109b44eb240.js} +1 -1
  306. package/.next/{static/chunks/3276ca6fd9005903.js → standalone/packages/ui/.next/static/chunks/d52a048b511c32bd.js} +1 -1
  307. package/.next/standalone/packages/ui/.next/static/chunks/ddb2935cfe5310c7.css +1 -0
  308. package/.next/standalone/packages/ui/.next/static/chunks/e399b4afc7936907.js +1 -0
  309. package/.next/standalone/packages/ui/.next/static/chunks/f924ae32752e1583.js +1 -0
  310. package/.next/standalone/packages/ui/.next/static/chunks/ff11efb770d5a0bc.js +1 -0
  311. package/.next/standalone/packages/ui/.next/static/chunks/{turbopack-5fa55215af0efb15.js → turbopack-261c5dcdd873f310.js} +1 -1
  312. package/.next/standalone/packages/ui/package.json +5 -1
  313. package/.next/standalone/packages/ui/server.js +1 -1
  314. package/.next/standalone/packages/ui/src/app/api/context/route.ts +22 -0
  315. package/.next/standalone/packages/ui/src/app/api/dependencies/route.ts +81 -0
  316. package/.next/standalone/packages/ui/src/app/api/projects/[id]/context/route.ts +39 -0
  317. package/.next/standalone/packages/ui/src/app/api/projects/[id]/dependencies/route.ts +69 -0
  318. package/.next/standalone/packages/ui/src/app/api/projects/[id]/route.ts +25 -9
  319. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/route.ts +14 -14
  320. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/route.ts +9 -8
  321. package/.next/standalone/packages/ui/src/app/api/projects/[id]/validate/route.ts +49 -0
  322. package/.next/standalone/packages/ui/src/app/api/projects/route.ts +18 -5
  323. package/.next/standalone/packages/ui/src/app/api/specs/[id]/dependency-graph/route.test.ts +0 -2
  324. package/.next/standalone/packages/ui/src/app/api/specs/[id]/dependency-graph/route.ts +0 -15
  325. package/.next/standalone/packages/ui/src/app/context/context-client.tsx +393 -0
  326. package/.next/standalone/packages/ui/src/app/context/page.tsx +17 -0
  327. package/.next/standalone/packages/ui/src/app/dashboard-client.tsx +29 -58
  328. package/.next/standalone/packages/ui/src/app/dependencies/constants.ts +25 -0
  329. package/.next/standalone/packages/ui/src/app/dependencies/dependencies-client.tsx +700 -0
  330. package/.next/standalone/packages/ui/src/app/dependencies/index.ts +19 -0
  331. package/.next/standalone/packages/ui/src/app/dependencies/page.tsx +38 -0
  332. package/.next/standalone/packages/ui/src/app/dependencies/spec-node.tsx +80 -0
  333. package/.next/standalone/packages/ui/src/app/dependencies/spec-sidebar.tsx +171 -0
  334. package/.next/standalone/packages/ui/src/app/dependencies/types.ts +37 -0
  335. package/.next/standalone/packages/ui/src/app/dependencies/utils.ts +194 -0
  336. package/.next/standalone/packages/ui/src/app/globals.css +16 -16
  337. package/.next/standalone/packages/ui/src/app/layout.tsx +4 -7
  338. package/.next/standalone/packages/ui/src/app/page.tsx +24 -0
  339. package/.next/standalone/packages/ui/src/app/projects/[projectId]/context/page.tsx +41 -0
  340. package/.next/standalone/packages/ui/src/app/projects/[projectId]/dependencies/page.tsx +43 -0
  341. package/.next/standalone/packages/ui/src/app/projects/[projectId]/page.tsx +18 -2
  342. package/.next/standalone/packages/ui/src/app/projects/[projectId]/stats/page.tsx +24 -0
  343. package/.next/standalone/packages/ui/src/app/projects/layout.tsx +7 -0
  344. package/.next/standalone/packages/ui/src/app/projects/page.tsx +167 -20
  345. package/.next/standalone/packages/ui/src/app/specs/specs-client.tsx +27 -17
  346. package/.next/standalone/packages/ui/src/components/color-picker.tsx +73 -0
  347. package/.next/standalone/packages/ui/src/components/context-file-detail.tsx +308 -0
  348. package/.next/standalone/packages/ui/src/components/context-file-viewer.tsx +385 -0
  349. package/.next/standalone/packages/ui/src/components/create-project-dialog.tsx +3 -5
  350. package/.next/standalone/packages/ui/src/components/directory-picker.tsx +1 -0
  351. package/.next/standalone/packages/ui/src/components/main-sidebar.tsx +39 -5
  352. package/.next/standalone/packages/ui/src/components/markdown-link.tsx +15 -8
  353. package/.next/standalone/packages/ui/src/components/project-switcher.tsx +24 -5
  354. package/.next/standalone/packages/ui/src/components/quick-search.tsx +3 -1
  355. package/.next/standalone/packages/ui/src/components/spec-dependency-graph.tsx +13 -52
  356. package/.next/standalone/packages/ui/src/components/spec-detail-client.tsx +215 -143
  357. package/.next/standalone/packages/ui/src/components/spec-detail-wrapper.tsx +23 -4
  358. package/.next/standalone/packages/ui/src/components/specs-nav-sidebar.tsx +11 -8
  359. package/.next/standalone/packages/ui/src/components/ui/accordion.tsx +58 -0
  360. package/.next/standalone/packages/ui/src/contexts/project-context.tsx +24 -0
  361. package/.next/standalone/packages/ui/src/lib/db/service-queries.ts +246 -23
  362. package/.next/standalone/packages/ui/src/lib/dependency-graph.ts +0 -13
  363. package/.next/standalone/packages/ui/src/lib/specs/types.ts +44 -0
  364. package/.next/standalone/packages/ui/src/types/specs.ts +6 -4
  365. package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
  366. package/.next/static/chunks/04de9ed512b8098b.js +10 -0
  367. package/.next/static/chunks/1e0689744f87e958.js +2 -0
  368. package/.next/static/chunks/3d12a8c3152b526d.js +3 -0
  369. package/.next/static/chunks/4610aea3ca2e69eb.js +2 -0
  370. package/.next/static/chunks/46275d9d67603bf5.js +1 -0
  371. package/.next/static/chunks/7931c6cb379305b1.js +1 -0
  372. package/.next/static/chunks/7a00633903e066b4.js +1 -0
  373. package/.next/static/chunks/{942cf63b4032c808.js → 7df6308e6cfcf902.js} +1 -1
  374. package/.next/static/chunks/7f9a218732be8099.js +5 -0
  375. package/.next/static/chunks/840c6743a491a398.js +1 -0
  376. package/.next/static/chunks/8a6e8f3394240dbb.js +1 -0
  377. package/.next/static/chunks/8d8c106c6848d15b.js +1 -0
  378. package/.next/static/chunks/a5e25b9fa6b88eee.js +1 -0
  379. package/.next/static/chunks/a640b005f2e15d98.js +1 -0
  380. package/.next/static/chunks/a7075a240adea8e8.js +1 -0
  381. package/.next/static/chunks/b53250480fde6816.js +1 -0
  382. package/.next/static/chunks/{794f3931f1ca12d2.js → bbd498aa5689c057.js} +1 -1
  383. package/.next/static/chunks/c26909a25ca9fc9b.js +1 -0
  384. package/.next/static/chunks/c658e22a605e0ed1.js +1 -0
  385. package/.next/static/chunks/c92660d8d0c4763d.js +1 -0
  386. package/.next/{standalone/packages/ui/.next/static/chunks/e3bc96a996e2a314.js → static/chunks/d26f4109b44eb240.js} +1 -1
  387. package/.next/{standalone/packages/ui/.next/static/chunks/3276ca6fd9005903.js → static/chunks/d52a048b511c32bd.js} +1 -1
  388. package/.next/static/chunks/ddb2935cfe5310c7.css +1 -0
  389. package/.next/static/chunks/e399b4afc7936907.js +1 -0
  390. package/.next/static/chunks/f924ae32752e1583.js +1 -0
  391. package/.next/static/chunks/ff11efb770d5a0bc.js +1 -0
  392. package/.next/static/chunks/{turbopack-5fa55215af0efb15.js → turbopack-261c5dcdd873f310.js} +1 -1
  393. package/package.json +6 -2
  394. package/.next/standalone/node_modules/.pnpm/@img+sharp-darwin-arm64@0.34.5/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
  395. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__65667b70._.js +0 -3
  396. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__675a763e._.js +0 -3
  397. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__803d07f0._.js +0 -3
  398. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8233e09b._.js +0 -3
  399. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__84cdc14a._.js +0 -3
  400. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__aa677b0d._.js +0 -3
  401. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__ae726e9c._.js +0 -3
  402. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__bdc3963a._.js +0 -3
  403. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f06435b0._.js +0 -3
  404. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f5c6d6b8._.js +0 -3
  405. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__fb91986f._.js +0 -3
  406. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_db_index_ts_556307fa._.js +0 -74
  407. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_0bd881ee._.js +0 -3
  408. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__01bfc8ff._.js +0 -3
  409. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__1d0c2012._.js +0 -3
  410. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__4ec37765._.js +0 -3
  411. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__50122e7e._.js +0 -3
  412. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__5382b397._.js +0 -3
  413. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__73f60f12._.js +0 -7
  414. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__88a691ee._.js +0 -3
  415. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a7ae8552._.js +0 -7
  416. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__bdbbba01._.js +0 -3
  417. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__cc589a54._.js +0 -3
  418. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__daee3355._.js +0 -3
  419. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_14118969._.js +0 -3
  420. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_3b617676._.js +0 -3
  421. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_4129cc0f._.js +0 -3
  422. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_497c8b73._.js +0 -3
  423. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ac867463._.js +0 -3
  424. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_c2f54661._.js +0 -5
  425. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_3ba1438c._.js +0 -3
  426. package/.next/standalone/packages/ui/.next/static/chunks/16ff9833ae1bb3ae.js +0 -1
  427. package/.next/standalone/packages/ui/.next/static/chunks/20f4141ccb5d4eb4.js +0 -1
  428. package/.next/standalone/packages/ui/.next/static/chunks/2204c0f16b23ec4c.js +0 -3
  429. package/.next/standalone/packages/ui/.next/static/chunks/294dea6dbec43ca6.js +0 -1
  430. package/.next/standalone/packages/ui/.next/static/chunks/2c85b8059e42248a.js +0 -1
  431. package/.next/standalone/packages/ui/.next/static/chunks/3b6b058ebd14dbed.js +0 -1
  432. package/.next/standalone/packages/ui/.next/static/chunks/7590e65bcaa41e8b.js +0 -1
  433. package/.next/standalone/packages/ui/.next/static/chunks/b6976cf6c48996e5.js +0 -1
  434. package/.next/standalone/packages/ui/.next/static/chunks/b8353eb8c6fb895e.js +0 -1
  435. package/.next/standalone/packages/ui/.next/static/chunks/b845813463167db0.js +0 -5
  436. package/.next/standalone/packages/ui/.next/static/chunks/bd9893e28f8f6a9a.css +0 -1
  437. package/.next/standalone/packages/ui/.next/static/chunks/cca4441cde342ae3.js +0 -1
  438. package/.next/standalone/packages/ui/.next/static/chunks/d784d84d5b880e48.js +0 -1
  439. package/.next/standalone/packages/ui/dist/standalone/packages/web/README.md +0 -196
  440. package/.next/standalone/packages/ui/dist/standalone/packages/web/components.json +0 -20
  441. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/0000_reflective_thena.sql +0 -59
  442. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/0001_fresh_carmella_unuscione.sql +0 -1
  443. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/0000_snapshot.json +0 -427
  444. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/0001_snapshot.json +0 -436
  445. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/_journal.json +0 -20
  446. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle.config.ts +0 -10
  447. package/.next/standalone/packages/ui/dist/standalone/packages/web/eslint.config.mjs +0 -18
  448. package/.next/standalone/packages/ui/dist/standalone/packages/web/next.config.ts +0 -7
  449. package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +0 -83
  450. package/.next/standalone/packages/ui/dist/standalone/packages/web/postcss.config.mjs +0 -8
  451. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/f864aa7e7061c0600e35cf3d879b27cf.txt +0 -1
  452. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/favicon.ico +0 -0
  453. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/file.svg +0 -1
  454. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/github-mark-white.svg +0 -1
  455. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/github-mark.svg +0 -1
  456. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/globe.svg +0 -1
  457. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/icon.svg +0 -7
  458. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/logo-dark-bg.svg +0 -17
  459. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/logo-with-bg.svg +0 -17
  460. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/logo.svg +0 -17
  461. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/next.svg +0 -1
  462. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/vercel.svg +0 -1
  463. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/window.svg +0 -1
  464. package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +0 -44
  465. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/projects/[id]/specs/route.ts +0 -23
  466. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/projects/route.ts +0 -19
  467. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/revalidate/route.ts +0 -63
  468. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.test.ts +0 -51
  469. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.ts +0 -171
  470. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/route.ts +0 -36
  471. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/subspecs/[file]/route.ts +0 -46
  472. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/stats/route.ts +0 -19
  473. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/board-client.tsx +0 -162
  474. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/loading.tsx +0 -43
  475. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/page.tsx +0 -18
  476. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/dashboard-client.tsx +0 -364
  477. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/error.tsx +0 -43
  478. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/globals.css +0 -531
  479. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/home-client.tsx +0 -277
  480. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/layout.tsx +0 -70
  481. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/loading.tsx +0 -87
  482. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/not-found.tsx +0 -27
  483. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/page.tsx +0 -18
  484. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/[id]/loading.tsx +0 -5
  485. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/[id]/page.tsx +0 -43
  486. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/page.tsx +0 -18
  487. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/specs-client.tsx +0 -425
  488. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/stats/page.tsx +0 -18
  489. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/stats/stats-client.tsx +0 -283
  490. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/back-to-top.tsx +0 -46
  491. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/empty-state.tsx +0 -52
  492. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/main-sidebar.tsx +0 -175
  493. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/markdown-link.test.ts +0 -96
  494. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/markdown-link.tsx +0 -95
  495. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/navigation.tsx +0 -210
  496. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/priority-badge.tsx +0 -53
  497. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/quick-search.tsx +0 -180
  498. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/skeletons.tsx +0 -119
  499. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-dependency-graph.tsx +0 -369
  500. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-client.tsx +0 -372
  501. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-loading-shell.tsx +0 -42
  502. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-wrapper.tsx +0 -70
  503. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-metadata.tsx +0 -136
  504. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-sidebar.tsx +0 -127
  505. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-timeline.tsx +0 -186
  506. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/specs-nav-sidebar.tsx +0 -561
  507. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/status-badge.tsx +0 -53
  508. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/sub-spec-tabs.tsx +0 -143
  509. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/table-of-contents.tsx +0 -130
  510. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/theme-provider.tsx +0 -11
  511. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/theme-toggle.tsx +0 -37
  512. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/avatar.tsx +0 -50
  513. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/badge.tsx +0 -36
  514. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/breadcrumb.tsx +0 -110
  515. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/button.tsx +0 -57
  516. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/card.tsx +0 -76
  517. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/command.tsx +0 -153
  518. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/dialog.tsx +0 -122
  519. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/input.tsx +0 -24
  520. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/select.tsx +0 -159
  521. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/separator.tsx +0 -31
  522. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/skeleton.tsx +0 -15
  523. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/tabs.tsx +0 -55
  524. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/toast.tsx +0 -30
  525. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/tooltip.tsx +0 -32
  526. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/date-utils.ts +0 -76
  527. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/index.ts +0 -42
  528. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/migrate.ts +0 -18
  529. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/queries.ts +0 -114
  530. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/schema.ts +0 -123
  531. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/seed.ts +0 -156
  532. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/service-queries.ts +0 -216
  533. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/dependency-graph.ts +0 -105
  534. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/service.ts +0 -120
  535. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/sources/database-source.ts +0 -94
  536. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/sources/filesystem-source.ts +0 -249
  537. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/types.ts +0 -55
  538. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/stores/specs-sidebar-store.ts +0 -152
  539. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/sub-specs.ts +0 -171
  540. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/utils.ts +0 -17
  541. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/types/specs.ts +0 -18
  542. package/.next/standalone/packages/ui/dist/standalone/packages/web/tailwind.config.ts +0 -58
  543. package/.next/standalone/packages/ui/dist/standalone/packages/web/tsconfig.json +0 -34
  544. package/.next/standalone/packages/ui/dist/standalone/packages/web/tsconfig.tsbuildinfo +0 -1
  545. package/.next/standalone/packages/ui/dist/standalone/packages/web/vitest.config.ts +0 -14
  546. package/.next/standalone/packages/ui/dist/standalone/specs/014-complete-custom-frontmatter/README.md +0 -175
  547. package/.next/standalone/packages/ui/dist/standalone/specs/016-github-action/README.md +0 -317
  548. package/.next/standalone/packages/ui/dist/standalone/specs/017-vscode-extension/README.md +0 -261
  549. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CLI-DESIGN.md +0 -380
  550. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION-EXAMPLES.md +0 -230
  551. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION.md +0 -285
  552. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/IMPLEMENTATION.md +0 -358
  553. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/README.md +0 -303
  554. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/TESTING.md +0 -368
  555. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/VALIDATION-RULES.md +0 -327
  556. package/.next/standalone/packages/ui/dist/standalone/specs/024-pattern-aware-list-grouping/README.md +0 -117
  557. package/.next/standalone/packages/ui/dist/standalone/specs/025-template-config-updates/README.md +0 -73
  558. package/.next/standalone/packages/ui/dist/standalone/specs/026-init-pattern-selection/README.md +0 -109
  559. package/.next/standalone/packages/ui/dist/standalone/specs/034-copilot-slash-commands/README.md +0 -107
  560. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/ARCHITECTURE.md +0 -244
  561. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/IMPLEMENTATION.md +0 -429
  562. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +0 -306
  563. package/.next/standalone/packages/ui/dist/standalone/specs/036-pm-integrations/README.md +0 -158
  564. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-AI-ASSISTED.md +0 -359
  565. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-FULL-LIFECYCLE.md +0 -86
  566. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-REAL-FEATURE.md +0 -437
  567. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-SCRIPT.md +0 -365
  568. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-FINAL.md +0 -203
  569. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SESSION-2025-11-06.md +0 -174
  570. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SUMMARY.md +0 -156
  571. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/IMPLEMENTATION.md +0 -183
  572. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/MARKETING.md +0 -229
  573. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/NEXT-STEPS-DEMO.md +0 -243
  574. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/README.md +0 -217
  575. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/SESSION-2025-11-06.md +0 -166
  576. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/TESTING.md +0 -126
  577. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/ACTUAL-IMPLEMENTATION.md +0 -108
  578. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/DESIGN.md +0 -382
  579. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/IMPLEMENTATION.md +0 -144
  580. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/RATIONALE.md +0 -146
  581. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/README.md +0 -208
  582. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/TESTING.md +0 -182
  583. package/.next/standalone/packages/ui/dist/standalone/specs/047-git-backfill-timestamps/README.md +0 -314
  584. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/FINDINGS.md +0 -113
  585. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/GUIDELINES.md +0 -237
  586. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/README.md +0 -149
  587. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-COMPARISONS.md +0 -175
  588. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-CONSTRAINTS.md +0 -254
  589. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/FIRST-PRINCIPLES.md +0 -376
  590. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-ROADMAP.md +0 -240
  591. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-TOOLS.md +0 -175
  592. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/README.md +0 -374
  593. package/.next/standalone/packages/ui/dist/standalone/specs/051-docs-system-prompt-principles/README.md +0 -339
  594. package/.next/standalone/packages/ui/dist/standalone/specs/052-branding-assets/README.md +0 -128
  595. package/.next/standalone/packages/ui/dist/standalone/specs/053-spec-assets-philosophy/README.md +0 -97
  596. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/DESIGN-DECISIONS.md +0 -93
  597. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/OUTPUT-FORMAT-SPEC.md +0 -146
  598. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/README.md +0 -175
  599. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART1.md +0 -397
  600. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART2.md +0 -342
  601. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS.md +0 -44
  602. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CHANGES.md +0 -150
  603. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CONCERNS-ANALYSIS.md +0 -351
  604. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/DOCS-ALIGNMENT-ANALYSIS.md +0 -238
  605. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/README.md +0 -280
  606. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-DRAFT.md +0 -372
  607. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-REFINED.md +0 -466
  608. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/AUDIT-RESULTS.md +0 -178
  609. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/README.md +0 -174
  610. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/README.md +0 -295
  611. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/VALIDATION-RESULTS.md +0 -487
  612. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/ANALYSIS.md +0 -241
  613. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/DESIGN.md +0 -279
  614. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/IMPLEMENTATION.md +0 -642
  615. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/NOTES.md +0 -125
  616. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/README.md +0 -286
  617. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/ARCHITECTURE.md +0 -392
  618. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/COMMANDS.md +0 -1002
  619. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/CONTEXT-ENGINEERING.md +0 -411
  620. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/IMPLEMENTATION.md +0 -812
  621. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/README.md +0 -504
  622. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/TESTING.md +0 -724
  623. package/.next/standalone/packages/ui/dist/standalone/specs/060-core-concepts-coherence/README.md +0 -125
  624. package/.next/standalone/packages/ui/dist/standalone/specs/061-ai-assisted-spec-writing/README.md +0 -299
  625. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/IMPLEMENTATION-PLAN.md +0 -174
  626. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PAGE-SPECIFICATIONS.md +0 -265
  627. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PROBLEM-ANALYSIS.md +0 -36
  628. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/README.md +0 -243
  629. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/SOLUTION-DESIGN.md +0 -82
  630. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/DESIGN.md +0 -338
  631. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/EXAMPLES.md +0 -354
  632. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/IMPLEMENTATION.md +0 -189
  633. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/README.md +0 -119
  634. package/.next/standalone/packages/ui/dist/standalone/specs/064-docs-site-zh-translation/README.md +0 -170
  635. package/.next/standalone/packages/ui/dist/standalone/specs/065-v03-planning/README.md +0 -158
  636. package/.next/standalone/packages/ui/dist/standalone/specs/066-context-economy-thresholds-refinement/README.md +0 -842
  637. package/.next/standalone/packages/ui/dist/standalone/specs/067-monorepo-core-extraction/README.md +0 -358
  638. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/DESIGN.md +0 -444
  639. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/README.md +0 -357
  640. package/.next/standalone/packages/ui/dist/standalone/specs/069-token-counting-utils/README.md +0 -551
  641. package/.next/standalone/packages/ui/dist/standalone/specs/070-mcp-token-counting-tool/README.md +0 -372
  642. package/.next/standalone/packages/ui/dist/standalone/specs/071-simplified-token-validation/README.md +0 -489
  643. package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +0 -287
  644. package/.next/standalone/packages/ui/dist/standalone/specs/073-template-engine-agents-md/README.md +0 -323
  645. package/.next/standalone/packages/ui/dist/standalone/specs/074-content-at-creation/README.md +0 -136
  646. package/.next/standalone/packages/ui/dist/standalone/specs/075-intelligent-search-engine/README.md +0 -399
  647. package/.next/standalone/packages/ui/dist/standalone/specs/076-programmatic-spec-relationships/README.md +0 -301
  648. package/.next/standalone/packages/ui/dist/standalone/specs/077-archiving-strategy/README.md +0 -235
  649. package/.next/standalone/packages/ui/dist/standalone/specs/078-sub-spec-template-system/README.md +0 -303
  650. package/.next/standalone/packages/ui/dist/standalone/specs/079-cli-alphabetical-organization/README.md +0 -196
  651. package/.next/standalone/packages/ui/dist/standalone/specs/080-mcp-server-modular-architecture/README.md +0 -388
  652. package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +0 -825
  653. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DATABASE.md +0 -111
  654. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DEPLOYMENT.md +0 -69
  655. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/FILESYSTEM.md +0 -77
  656. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/IMPLEMENTATION.md +0 -184
  657. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +0 -501
  658. package/.next/standalone/packages/ui/dist/standalone/specs/083-web-navigation-performance/README.md +0 -490
  659. package/.next/standalone/packages/ui/dist/standalone/specs/084-sub-spec-visibility-in-tools/README.md +0 -389
  660. package/.next/standalone/packages/ui/dist/standalone/specs/085-cli-relationship-commands/README.md +0 -920
  661. package/.next/standalone/packages/ui/dist/standalone/specs/086-template-component-deduplication/README.md +0 -146
  662. package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +0 -421
  663. package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +0 -106
  664. package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +0 -126
  665. package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +0 -131
  666. package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +0 -254
  667. package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +0 -152
  668. package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +0 -65
  669. package/.next/standalone/packages/ui/dist/standalone/specs/094-ai-chatbot-web-integration/README.md +0 -332
  670. package/.next/standalone/packages/ui/dist/standalone/specs/095-pr-migration-verification/README.md +0 -339
  671. package/.next/standalone/packages/ui/dist/standalone/specs/096-docs-beginner-first-reorg/README.md +0 -399
  672. package/.next/standalone/packages/ui/dist/standalone/specs/097-dag-visualization-library/README.md +0 -525
  673. package/.next/standalone/packages/ui/dist/standalone/specs/098-github-multi-project-integration/README.md +0 -387
  674. package/.next/standalone/packages/ui/dist/standalone/specs/099-enhanced-dependency-commands-cli-mcp/README.md +0 -613
  675. package/.next/standalone/packages/ui/dist/standalone/specs/100-release-process-typecheck-failure/README.md +0 -266
  676. package/.next/standalone/packages/ui/dist/standalone/specs/101-sidebar-scroll-position-drift/README.md +0 -100
  677. package/.next/standalone/packages/ui/dist/standalone/specs/102-mcp-wrapper-package/README.md +0 -172
  678. package/.next/standalone/packages/ui/dist/standalone/specs/archived/001-typescript-cli-migration/README.md +0 -37
  679. package/.next/standalone/packages/ui/dist/standalone/specs/archived/002-template-system-redesign/README.md +0 -60
  680. package/.next/standalone/packages/ui/dist/standalone/specs/archived/003-init-system-redesign/README.md +0 -113
  681. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/README.md +0 -69
  682. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/SUMMARY.md +0 -112
  683. package/.next/standalone/packages/ui/dist/standalone/specs/archived/005-structured-frontmatter/README.md +0 -229
  684. package/.next/standalone/packages/ui/dist/standalone/specs/archived/006-pm-visualization-tools/README.md +0 -406
  685. package/.next/standalone/packages/ui/dist/standalone/specs/archived/007-system-prompt-updates/README.md +0 -168
  686. package/.next/standalone/packages/ui/dist/standalone/specs/archived/008-commander-migration/README.md +0 -174
  687. package/.next/standalone/packages/ui/dist/standalone/specs/archived/009-cli-ux-enhancement/README.md +0 -212
  688. package/.next/standalone/packages/ui/dist/standalone/specs/archived/010-commands-refactor/README.md +0 -249
  689. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/README.md +0 -60
  690. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/TEST_SUMMARY.md +0 -139
  691. package/.next/standalone/packages/ui/dist/standalone/specs/archived/012-sub-spec-files/README.md +0 -722
  692. package/.next/standalone/packages/ui/dist/standalone/specs/archived/013-custom-spec-templates/README.md +0 -413
  693. package/.next/standalone/packages/ui/dist/standalone/specs/archived/015-npm-publishing/README.md +0 -255
  694. package/.next/standalone/packages/ui/dist/standalone/specs/archived/019-readme-improvement/README.md +0 -252
  695. package/.next/standalone/packages/ui/dist/standalone/specs/archived/020-documentation-website/README.md +0 -253
  696. package/.next/standalone/packages/ui/dist/standalone/specs/archived/021-docusaurus-vercel-migration/README.md +0 -612
  697. package/.next/standalone/packages/ui/dist/standalone/specs/archived/022-flexible-folder-structure/README.md +0 -794
  698. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/DESIGN.md +0 -834
  699. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/README.md +0 -255
  700. package/.next/standalone/packages/ui/dist/standalone/specs/archived/027-cli-ui-ux-optimization/README.md +0 -454
  701. package/.next/standalone/packages/ui/dist/standalone/specs/archived/028-cli-ui-modernization/README.md +0 -172
  702. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/IMPLEMENTATION.md +0 -152
  703. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/README.md +0 -95
  704. package/.next/standalone/packages/ui/dist/standalone/specs/archived/030-created-date-format-bug/README.md +0 -87
  705. package/.next/standalone/packages/ui/dist/standalone/specs/archived/031-gantt-ux-improvements/README.md +0 -230
  706. package/.next/standalone/packages/ui/dist/standalone/specs/archived/032-console-log-chalk-security/README.md +0 -89
  707. package/.next/standalone/packages/ui/dist/standalone/specs/archived/033-mcp-server/README.md +0 -89
  708. package/.next/standalone/packages/ui/dist/standalone/specs/archived/037-docs-overhaul/README.md +0 -166
  709. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-flat-structure-migration/README.md +0 -276
  710. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-mcp-frontmatter-bug-fix/README.md +0 -122
  711. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-simplify-viewer-commands/README.md +0 -198
  712. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-template-variable-sync/README.md +0 -192
  713. package/.next/standalone/packages/ui/dist/standalone/specs/archived/040-spec-viewer-commands/README.md +0 -171
  714. package/.next/standalone/packages/ui/dist/standalone/specs/archived/042-mcp-error-handling/README.md +0 -200
  715. package/.next/standalone/packages/ui/dist/standalone/specs/archived/044-spec-relationships-clarity/README.md +0 -317
  716. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/DESIGN.md +0 -276
  717. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/IMPLEMENTATION.md +0 -241
  718. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/README.md +0 -139
  719. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/TESTING.md +0 -328
  720. package/.next/standalone/packages/ui/dist/standalone/specs/archived/050-tool-redesign-first-principles/README.md +0 -400
  721. package/.next/static/chunks/16ff9833ae1bb3ae.js +0 -1
  722. package/.next/static/chunks/20f4141ccb5d4eb4.js +0 -1
  723. package/.next/static/chunks/2204c0f16b23ec4c.js +0 -3
  724. package/.next/static/chunks/294dea6dbec43ca6.js +0 -1
  725. package/.next/static/chunks/2c85b8059e42248a.js +0 -1
  726. package/.next/static/chunks/3b6b058ebd14dbed.js +0 -1
  727. package/.next/static/chunks/7590e65bcaa41e8b.js +0 -1
  728. package/.next/static/chunks/b6976cf6c48996e5.js +0 -1
  729. package/.next/static/chunks/b8353eb8c6fb895e.js +0 -1
  730. package/.next/static/chunks/b845813463167db0.js +0 -5
  731. package/.next/static/chunks/bd9893e28f8f6a9a.css +0 -1
  732. package/.next/static/chunks/cca4441cde342ae3.js +0 -1
  733. package/.next/static/chunks/d784d84d5b880e48.js +0 -1
  734. /package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64 → @img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64}/lib/index.js +0 -0
  735. /package/.next/standalone/node_modules/.pnpm/{@img+sharp-libvips-darwin-arm64@1.2.4/node_modules/@img/sharp-libvips-darwin-arm64 → @img+sharp-libvips-linux-x64@1.2.4/node_modules/@img/sharp-libvips-linux-x64}/versions.json +0 -0
  736. /package/.next/standalone/packages/ui/.next/static/{6nq7WNafPv5Bf_7mWgRQ- → T8X9UGfigRL0qWZiBHNjy}/_buildManifest.js +0 -0
  737. /package/.next/standalone/packages/ui/.next/static/{6nq7WNafPv5Bf_7mWgRQ- → T8X9UGfigRL0qWZiBHNjy}/_clientMiddlewareManifest.json +0 -0
  738. /package/.next/standalone/packages/ui/.next/static/{6nq7WNafPv5Bf_7mWgRQ- → T8X9UGfigRL0qWZiBHNjy}/_ssgManifest.js +0 -0
  739. /package/.next/static/{6nq7WNafPv5Bf_7mWgRQ- → T8X9UGfigRL0qWZiBHNjy}/_buildManifest.js +0 -0
  740. /package/.next/static/{6nq7WNafPv5Bf_7mWgRQ- → T8X9UGfigRL0qWZiBHNjy}/_clientMiddlewareManifest.json +0 -0
  741. /package/.next/static/{6nq7WNafPv5Bf_7mWgRQ- → T8X9UGfigRL0qWZiBHNjy}/_ssgManifest.js +0 -0
@@ -1,400 +0,0 @@
1
- ---
2
- status: archived
3
- created: '2025-11-05'
4
- tags:
5
- - architecture
6
- - cli
7
- - mcp
8
- - redesign
9
- - first-principles
10
- - dx
11
- - v0.3.0
12
- priority: medium
13
- related:
14
- - 049-leanspec-first-principles
15
- - 048-spec-complexity-analysis
16
- - 043-official-launch-02
17
- created_at: '2025-11-05T00:00:00Z'
18
- updated_at: '2025-11-10T07:50:03.476Z'
19
- transitions:
20
- - status: archived
21
- at: '2025-11-10T07:50:03.476Z'
22
- ---
23
-
24
- # Tool Redesign: First Principles Application
25
-
26
- > **Status**: 📦 Archived · **Priority**: Medium · **Created**: 2025-11-05 · **Tags**: architecture, cli, mcp, redesign, first-principles, dx, v0.3.0
27
-
28
- **Project**: lean-spec
29
- **Team**: Core Development
30
-
31
- ## Overview
32
-
33
- **Purpose**: Redesign CLI and MCP tools by applying the 5 LeanSpec first principles from spec 049, creating tools that practice what we preach.
34
-
35
- **Why Now**:
36
- - We've established clear first principles (spec 049)
37
- - Current tools evolved organically without systematic design
38
- - Need to dogfood our own philosophy in the implementation
39
- - Opportunity to showcase first-principles thinking in practice
40
-
41
- **Key Insight**: Tools should embody the philosophy they enable. If LeanSpec optimizes for Context Economy and Signal-to-Noise, our tools must do the same.
42
-
43
- **Result**: Redesigned CLI and MCP that demonstrate first principles through their interface design, implementation structure, and user experience.
44
-
45
- ## Background
46
-
47
- ### Current Tool State
48
-
49
- **CLI (`lean-spec` command)**:
50
- - 15+ commands with inconsistent patterns
51
- - Some commands do too much (`stats` vs `stats --full`)
52
- - Error messages vary in helpfulness
53
- - No clear mental model for users
54
-
55
- **MCP Server**:
56
- - Good functionality but complex interface
57
- - Some operations require multiple round-trips
58
- - Not optimized for AI agent workflows
59
- - Error handling inconsistent
60
-
61
- ### The First Principles (from spec 049)
62
-
63
- 1. **Context Economy** - Fit in working memory (human + AI)
64
- 2. **Signal-to-Noise Maximization** - Every word must inform decisions
65
- 3. **Progressive Disclosure** - Start simple, add complexity when pain is felt
66
- 4. **Intent Over Implementation** - Capture why, not just how
67
- 5. **Bridge the Gap** - Align human intent with machine execution
68
-
69
- ### Design Constraints
70
-
71
- **Human Usage** (CLI):
72
- - Working memory: 7±2 items
73
- - Need discoverable commands
74
- - Want quick feedback loops
75
- - Prefer consistent patterns
76
-
77
- **AI Usage** (MCP):
78
- - Token efficiency critical
79
- - Clear success/failure states
80
- - Batching for complex operations
81
- - Structured, parseable output
82
-
83
- ## Design
84
-
85
- ### Core Philosophy: Tools as Philosophy Demo
86
-
87
- **Principle**: Our tools should be the best example of LeanSpec thinking.
88
-
89
- **Application**: Every command, parameter, and output designed through first-principles lens.
90
-
91
- ### CLI Redesign: Progressive Command Structure
92
-
93
- **Current Problem**: 15 commands with no clear organization
94
- **Solution**: Group by mental model, progressive disclosure
95
-
96
- #### Level 1: Discovery (Context Economy)
97
- ```bash
98
- lean-spec # Show overview + 3 most common commands
99
- lean-spec help # Show all commands, grouped by purpose
100
- lean-spec status # Project health at-a-glance
101
- ```
102
-
103
- #### Level 2: Core Operations (Signal-to-Noise)
104
- ```bash
105
- # View/Navigate (most common)
106
- lean-spec list # Smart defaults, most relevant first
107
- lean-spec view <spec> # Single spec, optimized display
108
- lean-spec search <query> # Focused search with ranking
109
-
110
- # Modify (when needed)
111
- lean-spec create <name> # Guided creation with templates
112
- lean-spec update <spec> # Status/metadata only
113
- lean-spec edit <spec> # Open in editor
114
-
115
- # Project (occasional)
116
- lean-spec board # Kanban view
117
- lean-spec stats # Key metrics only
118
- ```
119
-
120
- #### Level 3: Advanced (Progressive Disclosure)
121
- ```bash
122
- # Analysis (when pain is felt)
123
- lean-spec validate # Check first principles adherence
124
- lean-spec complexity # Detailed complexity analysis
125
- lean-spec deps <spec> # Relationship analysis
126
- lean-spec split <spec> # Guided spec splitting
127
-
128
- # Power User (specific needs)
129
- lean-spec stats --full # Comprehensive analytics
130
- lean-spec export # Various formats
131
- lean-spec init # Project setup
132
- ```
133
-
134
- **Key Changes**:
135
- - Grouped by frequency of use (Context Economy)
136
- - Each command has single clear purpose (Signal-to-Noise)
137
- - Advanced features hidden until needed (Progressive Disclosure)
138
- - Intent clear from command name (Intent Over Implementation)
139
- - Same patterns work for humans and AI (Bridge the Gap)
140
-
141
- ### MCP Redesign: Batch-First Architecture
142
-
143
- **Current Problem**: Many small operations, chatty interface
144
- **Solution**: Batch operations, rich context in responses
145
-
146
- #### Core Operations
147
- ```typescript
148
- // Single spec operations (atomic)
149
- view(specPath: string, options?: ViewOptions) -> SpecWithContext
150
- update(specPath: string, changes: SpecChanges) -> SpecWithContext
151
- create(name: string, template: SpecTemplate) -> SpecWithContext
152
-
153
- // Multi-spec operations (batched)
154
- list(filters?: Filters) -> SpecSummary[]
155
- search(query: string, options?: SearchOptions) -> SearchResults
156
- board() -> KanbanBoard
157
-
158
- // Project operations (contextual)
159
- stats(level?: 'basic' | 'full') -> ProjectStats
160
- validate(specs?: string[]) -> ValidationReport
161
- health() -> ProjectHealth
162
- ```
163
-
164
- **Key Changes**:
165
- - Rich context in every response (Context Economy for AI)
166
- - Structured errors with actionable guidance (Signal-to-Noise)
167
- - Batch operations reduce round-trips (Progressive Disclosure)
168
- - Clear success/failure states (Intent Over Implementation)
169
- - Same data structure for CLI/MCP (Bridge the Gap)
170
-
171
- ### Shared Principles: Output Design
172
-
173
- #### Context Economy in Output
174
- ```bash
175
- # Bad: Information overload
176
- lean-spec list
177
- 049-leanspec-first-principles | planned | created: 2025-11-04 | priority: critical | tags: philosophy,meta,foundation,principles | related: 048-spec-complexity-analysis,043-official-launch-02,012-sub-spec-files | 1,042 lines (warning: >400) | last modified: 2 hours ago
178
-
179
- # Good: Essential info, detail on demand
180
- lean-spec list
181
- 📋 049 leanspec-first-principles (critical)
182
- ✅ 048 spec-complexity-analysis
183
- 🔄 047 git-timestamps (in-progress)
184
-
185
- lean-spec list --verbose # Detail when requested
186
- lean-spec view 049 # Full context for specific spec
187
- ```
188
-
189
- #### Signal-to-Noise in Commands
190
- ```bash
191
- # Bad: Ambiguous what it does
192
- lean-spec show 049 --with-meta --include-related --format=detailed
193
-
194
- # Good: Clear intent, smart defaults
195
- lean-spec view 049 # Show spec (formatted by default)
196
- lean-spec view 049 --raw # Raw when needed (progressive disclosure)
197
- lean-spec view 049 --json # Structured when needed
198
- ```
199
-
200
- ### Implementation Strategy
201
-
202
- #### Phase 1: CLI Core Redesign
203
- - Implement new command grouping
204
- - Standardize output formats
205
- - Add progressive disclosure patterns
206
- - Maintain backward compatibility with deprecation warnings
207
-
208
- #### Phase 2: MCP Optimization
209
- - Implement batch operations
210
- - Standardize response structures
211
- - Add rich error context
212
- - Optimize for AI workflows
213
-
214
- #### Phase 3: Integration
215
- - Ensure CLI and MCP use same core logic
216
- - Unified configuration system
217
- - Consistent behavior across interfaces
218
- - Performance optimization
219
-
220
- ## Plan
221
-
222
- ### Phase 1: Foundation (Week 1-2)
223
- **Goal**: New CLI command structure with backward compatibility
224
-
225
- **Tasks**:
226
- - [ ] Design new command hierarchy
227
- - [ ] Implement core command groups (view/modify/project)
228
- - [ ] Add progressive disclosure for advanced commands
229
- - [ ] Create unified output formatting system
230
- - [ ] Add deprecation warnings for old patterns
231
- - [ ] Update help system to show grouped commands
232
-
233
- **Success Criteria**:
234
- - New users find commands intuitively
235
- - Output fits in terminal without scrolling (Context Economy)
236
- - Every command has single clear purpose (Signal-to-Noise)
237
-
238
- ### Phase 2: MCP Optimization (Week 3-4)
239
- **Goal**: Batch-first MCP with rich context
240
-
241
- **Tasks**:
242
- - [ ] Implement batch operations for multi-spec workflows
243
- - [ ] Redesign response structures with full context
244
- - [ ] Add structured error handling with actionable guidance
245
- - [ ] Optimize for common AI agent patterns
246
- - [ ] Create MCP performance benchmarks
247
-
248
- **Success Criteria**:
249
- - AI agents can accomplish tasks in fewer round-trips
250
- - Rich context reduces need for additional queries
251
- - Clear success/failure states for all operations
252
-
253
- ### Phase 3: Integration & Polish (Week 5-6)
254
- **Goal**: Unified experience across interfaces
255
-
256
- **Tasks**:
257
- - [ ] Ensure CLI and MCP use same underlying logic
258
- - [ ] Create unified configuration system
259
- - [ ] Add cross-interface consistency tests
260
- - [ ] Performance optimization and profiling
261
- - [ ] Documentation updates reflecting new philosophy
262
-
263
- **Success Criteria**:
264
- - Identical behavior between CLI and MCP for same operations
265
- - Performance meets or exceeds current implementation
266
- - Documentation demonstrates first principles in practice
267
-
268
- ### Phase 4: Validation (Week 7)
269
- **Goal**: Prove we practice what we preach
270
-
271
- **Tasks**:
272
- - [ ] User testing with both interfaces
273
- - [ ] Measure adherence to first principles
274
- - [ ] Gather feedback from AI agent usage
275
- - [ ] Performance benchmarking
276
- - [ ] Create case studies of improvements
277
-
278
- **Success Criteria**:
279
- - Tools demonstrate all 5 first principles
280
- - Users report improved experience
281
- - AI agents more efficient in workflows
282
- - Implementation serves as reference for first-principles design
283
-
284
- ## Test
285
-
286
- ### First Principles Validation
287
-
288
- **Context Economy** (Tools fit in working memory):
289
- - [ ] CLI commands grouped into 3 clear levels
290
- - [ ] MCP operations batchable to reduce context
291
- - [ ] Output designed for human/AI consumption limits
292
-
293
- **Signal-to-Noise Maximization** (Every element informs decisions):
294
- - [ ] Each command has single clear purpose
295
- - [ ] Output contains only actionable information
296
- - [ ] Error messages guide toward resolution
297
-
298
- **Progressive Disclosure** (Complexity when pain is felt):
299
- - [ ] Basic commands handle 80% of use cases
300
- - [ ] Advanced features available but not prominent
301
- - [ ] `--verbose` and detailed modes for when needed
302
-
303
- **Intent Over Implementation** (Why, not just how):
304
- - [ ] Command names reflect user goals, not system operations
305
- - [ ] Help text explains purpose, not just syntax
306
- - [ ] Error messages explain what user was trying to achieve
307
-
308
- **Bridge the Gap** (Human + AI alignment):
309
- - [ ] Same operations available in CLI and MCP
310
- - [ ] Consistent data structures across interfaces
311
- - [ ] Output formats optimized for both human and machine parsing
312
-
313
- ### User Experience Tests
314
-
315
- **New User Journey**:
316
- - [ ] Can discover main commands in <2 minutes
317
- - [ ] Can complete basic workflow (create/view/update) without documentation
318
- - [ ] Advanced features discoverable when needed
319
-
320
- **AI Agent Efficiency**:
321
- - [ ] Common workflows require fewer tool calls
322
- - [ ] Batch operations reduce token usage
323
- - [ ] Error recovery is automated where possible
324
-
325
- **Performance Benchmarks**:
326
- - [ ] CLI response time <100ms for common commands
327
- - [ ] MCP operations complete in comparable time to current implementation
328
- - [ ] Memory usage within acceptable bounds
329
-
330
- ### Philosophy Demonstration
331
-
332
- **Can we say our tools demonstrate LeanSpec?**:
333
- - [ ] Tools embody the principles they enable
334
- - [ ] Implementation structure follows first principles
335
- - [ ] User experience optimized through first-principles lens
336
- - [ ] Tools serve as reference implementation for philosophy
337
-
338
- ## Success Metrics
339
-
340
- **Quantitative**:
341
- - CLI command discovery time: <2 minutes (vs current ~5 minutes)
342
- - AI agent efficiency: 30% fewer tool calls for common workflows
343
- - User task completion: 90% success rate without documentation
344
- - Performance: Match or exceed current implementation
345
-
346
- **Qualitative**:
347
- - Tools feel "lean" and focused
348
- - Clear mental model for command organization
349
- - AI agents can use efficiently without extensive prompting
350
- - Implementation demonstrates first principles in practice
351
-
352
- **Philosophy Validation**:
353
- - Tools practice what LeanSpec preaches
354
- - Can point to tools as examples of first-principles thinking
355
- - Users understand LeanSpec philosophy through tool usage
356
- - Tools serve as template for future first-principles design
357
-
358
- ## Notes
359
-
360
- ### Why This Redesign Matters
361
-
362
- This is foundational work because:
363
- - **Credibility**: Tools must practice LeanSpec philosophy
364
- - **Usability**: First principles create better user experiences
365
- - **Teaching**: Tools become examples of the methodology
366
- - **Scaling**: Systematic design enables growth without complexity creep
367
-
368
- ### Key Design Decisions
369
-
370
- **Progressive Command Hierarchy**: Instead of flat command list, organize by frequency and complexity
371
- **Batch-First MCP**: Optimize for AI workflows while maintaining human usability
372
- **Unified Output**: Same data structures work for both CLI and MCP consumption
373
- **First-Principles Validation**: Every design decision justified by the 5 principles
374
-
375
- ### Success Indicators
376
-
377
- We'll know this succeeded when:
378
- - New users intuitively discover commands
379
- - AI agents accomplish tasks more efficiently
380
- - Tools feel like natural extensions of LeanSpec thinking
381
- - Implementation becomes reference for first-principles design
382
-
383
- ---
384
-
385
- **Remember**: We're not just building better tools. We're proving that LeanSpec philosophy creates superior user experiences when applied systematically.
386
-
387
- ---
388
-
389
- ## Archive Note
390
-
391
- **Archived**: 2025-11-10
392
-
393
- **Reason**: Spec was too broad and many of its proposed improvements have already been implemented incrementally through other specs:
394
- - Spec 039: simplify-viewer-commands
395
- - Spec 045: unified-dashboard
396
- - Spec 046: stats-dashboard-refactor
397
- - Spec 051: docs-system-prompt-principles
398
- - Spec 049: leanspec-first-principles
399
-
400
- **Key Learning**: The 7-week comprehensive redesign plan conflicted with LeanSpec's own "Progressive Disclosure" principle. Better to make incremental improvements as pain is felt rather than big-bang redesigns. The current CLI is already well-organized with grouped commands, and the MCP server functions effectively. This spec itself demonstrates why we should practice what we preach: start simple, add complexity when needed.
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,585458,(e,t,r)=>{e.e,t.exports=function(){"use strict";var e="millisecond",t="second",r="minute",n="hour",i="week",s="month",a="quarter",l="year",o="date",c="Invalid Date",u=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,d=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,f=function(e,t,r){var n=String(e);return!n||n.length>=t?e:""+Array(t+1-n.length).join(r)+e},h="en",m={};m[h]={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],r=e%100;return"["+e+(t[(r-20)%10]||t[r]||t[0])+"]"}};var x="$isDayjsObject",g=function(e){return e instanceof y||!(!e||!e[x])},p=function e(t,r,n){var i;if(!t)return h;if("string"==typeof t){var s=t.toLowerCase();m[s]&&(i=s),r&&(m[s]=r,i=s);var a=t.split("-");if(!i&&a.length>1)return e(a[0])}else{var l=t.name;m[l]=t,i=l}return!n&&i&&(h=i),i||!n&&h},b=function(e,t){if(g(e))return e.clone();var r="object"==typeof t?t:{};return r.date=e,r.args=arguments,new y(r)},v={s:f,z:function(e){var t=-e.utcOffset(),r=Math.abs(t);return(t<=0?"+":"-")+f(Math.floor(r/60),2,"0")+":"+f(r%60,2,"0")},m:function e(t,r){if(t.date()<r.date())return-e(r,t);var n=12*(r.year()-t.year())+(r.month()-t.month()),i=t.clone().add(n,s),a=r-i<0,l=t.clone().add(n+(a?-1:1),s);return+(-(n+(r-i)/(a?i-l:l-i))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(c){return({M:s,y:l,w:i,d:"day",D:o,h:n,m:r,s:t,ms:e,Q:a})[c]||String(c||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}};v.l=p,v.i=g,v.w=function(e,t){return b(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var y=function(){function f(e){this.$L=p(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[x]=!0}var h=f.prototype;return h.parse=function(e){this.$d=function(e){var t=e.date,r=e.utc;if(null===t)return new Date(NaN);if(v.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var n=t.match(u);if(n){var i=n[2]-1||0,s=(n[7]||"0").substring(0,3);return r?new Date(Date.UTC(n[1],i,n[3]||1,n[4]||0,n[5]||0,n[6]||0,s)):new Date(n[1],i,n[3]||1,n[4]||0,n[5]||0,n[6]||0,s)}}return new Date(t)}(e),this.init()},h.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},h.$utils=function(){return v},h.isValid=function(){return this.$d.toString()!==c},h.isSame=function(e,t){var r=b(e);return this.startOf(t)<=r&&r<=this.endOf(t)},h.isAfter=function(e,t){return b(e)<this.startOf(t)},h.isBefore=function(e,t){return this.endOf(t)<b(e)},h.$g=function(e,t,r){return v.u(e)?this[t]:this.set(r,e)},h.unix=function(){return Math.floor(this.valueOf()/1e3)},h.valueOf=function(){return this.$d.getTime()},h.startOf=function(e,a){var c=this,u=!!v.u(a)||a,d=v.p(e),f=function(e,t){var r=v.w(c.$u?Date.UTC(c.$y,t,e):new Date(c.$y,t,e),c);return u?r:r.endOf("day")},h=function(e,t){return v.w(c.toDate()[e].apply(c.toDate("s"),(u?[0,0,0,0]:[23,59,59,999]).slice(t)),c)},m=this.$W,x=this.$M,g=this.$D,p="set"+(this.$u?"UTC":"");switch(d){case l:return u?f(1,0):f(31,11);case s:return u?f(1,x):f(0,x+1);case i:var b=this.$locale().weekStart||0,y=(m<b?m+7:m)-b;return f(u?g-y:g+(6-y),x);case"day":case o:return h(p+"Hours",0);case n:return h(p+"Minutes",1);case r:return h(p+"Seconds",2);case t:return h(p+"Milliseconds",3);default:return this.clone()}},h.endOf=function(e){return this.startOf(e,!1)},h.$set=function(i,a){var c,u=v.p(i),d="set"+(this.$u?"UTC":""),f=((c={}).day=d+"Date",c[o]=d+"Date",c[s]=d+"Month",c[l]=d+"FullYear",c[n]=d+"Hours",c[r]=d+"Minutes",c[t]=d+"Seconds",c[e]=d+"Milliseconds",c)[u],h="day"===u?this.$D+(a-this.$W):a;if(u===s||u===l){var m=this.clone().set(o,1);m.$d[f](h),m.init(),this.$d=m.set(o,Math.min(this.$D,m.daysInMonth())).$d}else f&&this.$d[f](h);return this.init(),this},h.set=function(e,t){return this.clone().$set(e,t)},h.get=function(e){return this[v.p(e)]()},h.add=function(e,a){var o,c=this;e=Number(e);var u=v.p(a),d=function(t){var r=b(c);return v.w(r.date(r.date()+Math.round(t*e)),c)};if(u===s)return this.set(s,this.$M+e);if(u===l)return this.set(l,this.$y+e);if("day"===u)return d(1);if(u===i)return d(7);var f=((o={})[r]=6e4,o[n]=36e5,o[t]=1e3,o)[u]||1,h=this.$d.getTime()+e*f;return v.w(h,this)},h.subtract=function(e,t){return this.add(-1*e,t)},h.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return r.invalidDate||c;var n=e||"YYYY-MM-DDTHH:mm:ssZ",i=v.z(this),s=this.$H,a=this.$m,l=this.$M,o=r.weekdays,u=r.months,f=r.meridiem,h=function(e,r,i,s){return e&&(e[r]||e(t,n))||i[r].slice(0,s)},m=function(e){return v.s(s%12||12,e,"0")},x=f||function(e,t,r){var n=e<12?"AM":"PM";return r?n.toLowerCase():n};return n.replace(d,function(e,n){return n||function(e){switch(e){case"YY":return String(t.$y).slice(-2);case"YYYY":return v.s(t.$y,4,"0");case"M":return l+1;case"MM":return v.s(l+1,2,"0");case"MMM":return h(r.monthsShort,l,u,3);case"MMMM":return h(u,l);case"D":return t.$D;case"DD":return v.s(t.$D,2,"0");case"d":return String(t.$W);case"dd":return h(r.weekdaysMin,t.$W,o,2);case"ddd":return h(r.weekdaysShort,t.$W,o,3);case"dddd":return o[t.$W];case"H":return String(s);case"HH":return v.s(s,2,"0");case"h":return m(1);case"hh":return m(2);case"a":return x(s,a,!0);case"A":return x(s,a,!1);case"m":return String(a);case"mm":return v.s(a,2,"0");case"s":return String(t.$s);case"ss":return v.s(t.$s,2,"0");case"SSS":return v.s(t.$ms,3,"0");case"Z":return i}return null}(e)||i.replace(":","")})},h.utcOffset=function(){return-(15*Math.round(this.$d.getTimezoneOffset()/15))},h.diff=function(e,o,c){var u,d=this,f=v.p(o),h=b(e),m=(h.utcOffset()-this.utcOffset())*6e4,x=this-h,g=function(){return v.m(d,h)};switch(f){case l:u=g()/12;break;case s:u=g();break;case a:u=g()/3;break;case i:u=(x-m)/6048e5;break;case"day":u=(x-m)/864e5;break;case n:u=x/36e5;break;case r:u=x/6e4;break;case t:u=x/1e3;break;default:u=x}return c?u:v.a(u)},h.daysInMonth=function(){return this.endOf(s).$D},h.$locale=function(){return m[this.$L]},h.locale=function(e,t){if(!e)return this.$L;var r=this.clone(),n=p(e,t,!0);return n&&(r.$L=n),r},h.clone=function(){return v.w(this.$d,this)},h.toDate=function(){return new Date(this.valueOf())},h.toJSON=function(){return this.isValid()?this.toISOString():null},h.toISOString=function(){return this.$d.toISOString()},h.toString=function(){return this.$d.toUTCString()},f}(),w=y.prototype;return b.prototype=w,[["$ms",e],["$s",t],["$m",r],["$H",n],["$W","day"],["$M",s],["$y",l],["$D",o]].forEach(function(e){w[e[1]]=function(t){return this.$g(t,e[0],e[1])}}),b.extend=function(e,t){return e.$i||(e(t,y,b),e.$i=!0),b},b.locale=p,b.isDayjs=g,b.unix=function(e){return b(1e3*e)},b.en=m[h],b.Ls=m,b.p={},b}()},842541,e=>{"use strict";e.s(["default",0,function(e,t){return e*=1,t*=1,function(r){return e*(1-r)+t*r}}])},161610,189517,321137,e=>{"use strict";function t(e,t,r){e.prototype=t.prototype=r,r.constructor=e}function r(e,t){var r=Object.create(e.prototype);for(var n in t)r[n]=t[n];return r}function n(){}e.s(["default",0,t,"extend",()=>r],189517);var i="\\s*([+-]?\\d+)\\s*",s="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",a="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",l=/^#([0-9a-f]{3,8})$/,o=RegExp(`^rgb\\(${i},${i},${i}\\)$`),c=RegExp(`^rgb\\(${a},${a},${a}\\)$`),u=RegExp(`^rgba\\(${i},${i},${i},${s}\\)$`),d=RegExp(`^rgba\\(${a},${a},${a},${s}\\)$`),f=RegExp(`^hsl\\(${s},${a},${a}\\)$`),h=RegExp(`^hsla\\(${s},${a},${a},${s}\\)$`),m={aliceblue:0xf0f8ff,antiquewhite:0xfaebd7,aqua:65535,aquamarine:8388564,azure:0xf0ffff,beige:0xf5f5dc,bisque:0xffe4c4,black:0,blanchedalmond:0xffebcd,blue:255,blueviolet:9055202,brown:0xa52a2a,burlywood:0xdeb887,cadetblue:6266528,chartreuse:8388352,chocolate:0xd2691e,coral:0xff7f50,cornflowerblue:6591981,cornsilk:0xfff8dc,crimson:0xdc143c,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:0xb8860b,darkgray:0xa9a9a9,darkgreen:25600,darkgrey:0xa9a9a9,darkkhaki:0xbdb76b,darkmagenta:9109643,darkolivegreen:5597999,darkorange:0xff8c00,darkorchid:0x9932cc,darkred:9109504,darksalmon:0xe9967a,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:0xff1493,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:0xb22222,floralwhite:0xfffaf0,forestgreen:2263842,fuchsia:0xff00ff,gainsboro:0xdcdcdc,ghostwhite:0xf8f8ff,gold:0xffd700,goldenrod:0xdaa520,gray:8421504,green:32768,greenyellow:0xadff2f,grey:8421504,honeydew:0xf0fff0,hotpink:0xff69b4,indianred:0xcd5c5c,indigo:4915330,ivory:0xfffff0,khaki:0xf0e68c,lavender:0xe6e6fa,lavenderblush:0xfff0f5,lawngreen:8190976,lemonchiffon:0xfffacd,lightblue:0xadd8e6,lightcoral:0xf08080,lightcyan:0xe0ffff,lightgoldenrodyellow:0xfafad2,lightgray:0xd3d3d3,lightgreen:9498256,lightgrey:0xd3d3d3,lightpink:0xffb6c1,lightsalmon:0xffa07a,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:0xb0c4de,lightyellow:0xffffe0,lime:65280,limegreen:3329330,linen:0xfaf0e6,magenta:0xff00ff,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:0xba55d3,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:0xc71585,midnightblue:1644912,mintcream:0xf5fffa,mistyrose:0xffe4e1,moccasin:0xffe4b5,navajowhite:0xffdead,navy:128,oldlace:0xfdf5e6,olive:8421376,olivedrab:7048739,orange:0xffa500,orangered:0xff4500,orchid:0xda70d6,palegoldenrod:0xeee8aa,palegreen:0x98fb98,paleturquoise:0xafeeee,palevioletred:0xdb7093,papayawhip:0xffefd5,peachpuff:0xffdab9,peru:0xcd853f,pink:0xffc0cb,plum:0xdda0dd,powderblue:0xb0e0e6,purple:8388736,rebeccapurple:6697881,red:0xff0000,rosybrown:0xbc8f8f,royalblue:4286945,saddlebrown:9127187,salmon:0xfa8072,sandybrown:0xf4a460,seagreen:3050327,seashell:0xfff5ee,sienna:0xa0522d,silver:0xc0c0c0,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:0xfffafa,springgreen:65407,steelblue:4620980,tan:0xd2b48c,teal:32896,thistle:0xd8bfd8,tomato:0xff6347,turquoise:4251856,violet:0xee82ee,wheat:0xf5deb3,white:0xffffff,whitesmoke:0xf5f5f5,yellow:0xffff00,yellowgreen:0x9acd32};function x(){return this.rgb().formatHex()}function g(){return this.rgb().formatRgb()}function p(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=l.exec(e))?(r=t[1].length,t=parseInt(t[1],16),6===r?b(t):3===r?new S(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===r?v(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===r?v(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=o.exec(e))?new S(t[1],t[2],t[3],1):(t=c.exec(e))?new S(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=u.exec(e))?v(t[1],t[2],t[3],t[4]):(t=d.exec(e))?v(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=f.exec(e))?C(t[1],t[2]/100,t[3]/100,1):(t=h.exec(e))?C(t[1],t[2]/100,t[3]/100,t[4]):m.hasOwnProperty(e)?b(m[e]):"transparent"===e?new S(NaN,NaN,NaN,0):null}function b(e){return new S(e>>16&255,e>>8&255,255&e,1)}function v(e,t,r,n){return n<=0&&(e=t=r=NaN),new S(e,t,r,n)}function y(e){return(e instanceof n||(e=p(e)),e)?new S((e=e.rgb()).r,e.g,e.b,e.opacity):new S}function w(e,t,r,n){return 1==arguments.length?y(e):new S(e,t,r,null==n?1:n)}function S(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}function $(){return`#${N(this.r)}${N(this.g)}${N(this.b)}`}function j(){let e=M(this.opacity);return`${1===e?"rgb(":"rgba("}${k(this.r)}, ${k(this.g)}, ${k(this.b)}${1===e?")":`, ${e})`}`}function M(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function k(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function N(e){return((e=k(e))<16?"0":"")+e.toString(16)}function C(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new I(e,t,r,n)}function O(e){if(e instanceof I)return new I(e.h,e.s,e.l,e.opacity);if(e instanceof n||(e=p(e)),!e)return new I;if(e instanceof I)return e;var t=(e=e.rgb()).r/255,r=e.g/255,i=e.b/255,s=Math.min(t,r,i),a=Math.max(t,r,i),l=NaN,o=a-s,c=(a+s)/2;return o?(l=t===a?(r-i)/o+(r<i)*6:r===a?(i-t)/o+2:(t-r)/o+4,o/=c<.5?a+s:2-a-s,l*=60):o=c>0&&c<1?0:l,new I(l,o,c,e.opacity)}function I(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}function z(e){return(e=(e||0)%360)<0?e+360:e}function T(e){return Math.max(0,Math.min(1,e||0))}function E(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}t(n,p,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:x,formatHex:x,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return O(this).formatHsl()},formatRgb:g,toString:g}),t(S,w,r(n,{brighter(e){return e=null==e?1.4285714285714286:Math.pow(1.4285714285714286,e),new S(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new S(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new S(k(this.r),k(this.g),k(this.b),M(this.opacity))},displayable(){return -.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:$,formatHex:$,formatHex8:function(){return`#${N(this.r)}${N(this.g)}${N(this.b)}${N((isNaN(this.opacity)?1:this.opacity)*255)}`},formatRgb:j,toString:j})),t(I,function(e,t,r,n){return 1==arguments.length?O(e):new I(e,t,r,null==n?1:n)},r(n,{brighter(e){return e=null==e?1.4285714285714286:Math.pow(1.4285714285714286,e),new I(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new I(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,i=2*r-n;return new S(E(e>=240?e-240:e+120,i,n),E(e,i,n),E(e<120?e+240:e-120,i,n),this.opacity)},clamp(){return new I(z(this.h),T(this.s),T(this.l),M(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=M(this.opacity);return`${1===e?"hsl(":"hsla("}${z(this.h)}, ${100*T(this.s)}%, ${100*T(this.l)}%${1===e?")":`, ${e})`}`}})),e.s(["Color",()=>n,"Rgb",()=>S,"default",()=>p,"rgb",()=>w,"rgbConvert",()=>y],321137),e.s(["color",()=>p],161610)},77075,e=>{"use strict";var t=e.i(842541);e.s(["interpolateNumber",()=>t.default])},145665,181503,425902,e=>{"use strict";var t=e.i(321137);function r(e,t,r,n,i){var s=e*e,a=s*e;return((1-3*e+3*s-a)*t+(4-6*s+3*a)*r+(1+3*e+3*s-3*a)*n+a*i)/6}let n=e=>()=>e;function i(e,t){return function(r){return e+r*t}}function s(e,t){var r=t-e;return r?i(e,r>180||r<-180?r-360*Math.round(r/360):r):n(isNaN(e)?t:e)}function a(e){return 1==(e*=1)?l:function(t,r){var i,s,a;return r-t?(i=t,s=r,i=Math.pow(i,a=e),s=Math.pow(s,a)-i,a=1/a,function(e){return Math.pow(i+e*s,a)}):n(isNaN(t)?r:t)}}function l(e,t){var r=t-e;return r?i(e,r):n(isNaN(e)?t:e)}e.s(["default",0,n],181503),e.s(["default",()=>l,"gamma",()=>a,"hue",()=>s],425902);let o=function e(r){var n=a(r);function i(e,r){var i=n((e=(0,t.rgb)(e)).r,(r=(0,t.rgb)(r)).r),s=n(e.g,r.g),a=n(e.b,r.b),o=l(e.opacity,r.opacity);return function(t){return e.r=i(t),e.g=s(t),e.b=a(t),e.opacity=o(t),e+""}}return i.gamma=e,i}(1);function c(e){return function(r){var n,i,s=r.length,a=Array(s),l=Array(s),o=Array(s);for(n=0;n<s;++n)i=(0,t.rgb)(r[n]),a[n]=i.r||0,l[n]=i.g||0,o[n]=i.b||0;return a=e(a),l=e(l),o=e(o),i.opacity=1,function(e){return i.r=a(e),i.g=l(e),i.b=o(e),i+""}}}c(function(e){var t=e.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),s=e[i],a=e[i+1],l=i>0?e[i-1]:2*s-a,o=i<t-1?e[i+2]:2*a-s;return r((n-i/t)*t,l,s,a,o)}}),c(function(e){var t=e.length;return function(n){var i=Math.floor(((n%=1)<0?++n:n)*t),s=e[(i+t-1)%t],a=e[i%t],l=e[(i+1)%t],o=e[(i+2)%t];return r((n-i/t)*t,s,a,l,o)}}),e.s(["default",0,o],145665)},647483,e=>{"use strict";var t=e.i(842541),r=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,n=RegExp(r.source,"g");e.s(["default",0,function(e,i){var s,a,l,o,c,u=r.lastIndex=n.lastIndex=0,d=-1,f=[],h=[];for(e+="",i+="";(l=r.exec(e))&&(o=n.exec(i));)(c=o.index)>u&&(c=i.slice(u,c),f[d]?f[d]+=c:f[++d]=c),(l=l[0])===(o=o[0])?f[d]?f[d]+=o:f[++d]=o:(f[++d]=null,h.push({i:d,x:(0,t.default)(l,o)})),u=n.lastIndex;return u<i.length&&(c=i.slice(u),f[d]?f[d]+=c:f[++d]=c),f.length<2?h[0]?(s=h[0].x,function(e){return s(e)+""}):(a=i,function(){return a}):(i=h.length,function(e){for(var t,r=0;r<i;++r)f[(t=h[r]).i]=t.x(e);return f.join("")})}])},522764,e=>{"use strict";let t=(0,e.i(122436).default)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]]);e.s(["List",()=>t],522764)},730885,635389,e=>{"use strict";var t=e.i(122436);let r=(0,t.default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);e.s(["GitBranch",()=>r],730885);let n=(0,t.default)("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]);e.s(["Maximize2",()=>n],635389)},443991,e=>{"use strict";let t=(0,e.i(122436).default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Circle",()=>t],443991)},296026,e=>{"use strict";let t=(0,e.i(122436).default)("trending-up",[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]]);e.s(["TrendingUp",()=>t],296026)},170305,(e,t,r)=>{"use strict";var n=e.r(431231),i="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},s=n.useState,a=n.useEffect,l=n.useLayoutEffect,o=n.useDebugValue;function c(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!i(e,r)}catch(e){return!0}}var u="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),n=s({inst:{value:r,getSnapshot:t}}),i=n[0].inst,u=n[1];return l(function(){i.value=r,i.getSnapshot=t,c(i)&&u({inst:i})},[e,r,t]),a(function(){return c(i)&&u({inst:i}),e(function(){c(i)&&u({inst:i})})},[e]),o(r),r};r.useSyncExternalStore=void 0!==n.useSyncExternalStore?n.useSyncExternalStore:u},334960,(e,t,r)=>{"use strict";t.exports=e.r(170305)},721665,(e,t,r)=>{"use strict";var n=e.r(431231),i=e.r(334960),s="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=i.useSyncExternalStore,l=n.useRef,o=n.useEffect,c=n.useMemo,u=n.useDebugValue;r.useSyncExternalStoreWithSelector=function(e,t,r,n,i){var d=l(null);if(null===d.current){var f={hasValue:!1,value:null};d.current=f}else f=d.current;var h=a(e,(d=c(function(){function e(e){if(!o){if(o=!0,a=e,e=n(e),void 0!==i&&f.hasValue){var t=f.value;if(i(t,e))return l=t}return l=e}if(t=l,s(a,e))return t;var r=n(e);return void 0!==i&&i(t,r)?(a=e,t):(a=e,l=r)}var a,l,o=!1,c=void 0===r?null:r;return[function(){return e(t())},null===c?void 0:function(){return e(c())}]},[t,r,n,i]))[0],d[1]);return o(function(){f.hasValue=!0,f.value=h},[h]),u(h),h}},596177,(e,t,r)=>{"use strict";t.exports=e.r(721665)},417612,293821,222850,e=>{"use strict";var t=e.i(890022),r=e.i(431231),n=e.i(987985);let i="u">typeof window?r.useLayoutEffect:r.useEffect;function s(e){if(void 0!==e)switch(typeof e){case"number":return e;case"string":if(e.endsWith("px"))return parseFloat(e)}}let a=null;function l({containerElement:e,direction:t,isRtl:r,scrollOffset:n}){if("horizontal"===t&&r)switch(function(e=!1){if(null===a||e){let e=document.createElement("div"),t=e.style;t.width="50px",t.height="50px",t.overflow="scroll",t.direction="rtl";let r=document.createElement("div"),n=r.style;return n.width="100px",n.height="100px",e.appendChild(r),document.body.appendChild(e),e.scrollLeft>0?a="positive-descending":(e.scrollLeft=1,a=0===e.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(e),a}return a}()){case"negative":return-n;case"positive-descending":if(e){let{clientWidth:t,scrollLeft:r,scrollWidth:n}=e;return n-t-r}}return n}function o(e,t="Assertion error"){if(!e)throw console.error(t),Error(t)}function c(e,t){if(e===t)return!0;if(!!e!=!!t||(o(void 0!==e),o(void 0!==t),Object.keys(e).length!==Object.keys(t).length))return!1;for(let r in e)if(!Object.is(t[r],e[r]))return!1;return!0}function u({cachedBounds:e,itemCount:t,itemSize:r}){if(0===t)return 0;if("number"==typeof r)return t*r;{let r=e.get(0===e.size?0:e.size-1);return o(void 0!==r,"Unexpected bounds cache miss"),t*((r.scrollOffset+r.size)/e.size)}}function d({cachedBounds:e,containerScrollOffset:t,containerSize:r,itemCount:n,overscanCount:i}){let s=n-1,a=0,l=-1,o=0,c=-1,u=0;for(;u<s;){let r=e.get(u);if(r.scrollOffset+r.size>t)break;u++}for(o=Math.max(0,(a=u)-i);u<s;){let n=e.get(u);if(n.scrollOffset+n.size>=t+r)break;u++}return c=Math.min(n-1,(l=Math.min(s,u))+i),a<0&&(a=0,l=-1,o=0,c=-1),{startIndexVisible:a,stopIndexVisible:l,startIndexOverscan:o,stopIndexOverscan:c}}function f(e,t){let{ariaAttributes:r,style:n,...i}=e,{ariaAttributes:s,style:a,...l}=t;return c(r,s)&&c(n,a)&&c(i,l)}function h({children:e,className:n,defaultHeight:a=0,listRef:h,onResize:m,onRowsRendered:x,overscanCount:g=3,rowComponent:p,rowCount:b,rowHeight:v,rowProps:y,tagName:w="div",style:S,...$}){let j=(0,r.useMemo)(()=>y,Object.values(y)),M=(0,r.useMemo)(()=>(0,r.memo)(p,f),[p]),[k,N]=(0,r.useState)(null),C=null!=v&&"object"==typeof v&&"getAverageRowHeight"in v&&"function"==typeof v.getAverageRowHeight,{getCellBounds:O,getEstimatedSize:I,scrollToIndex:z,startIndexOverscan:T,startIndexVisible:E,stopIndexOverscan:R,stopIndexVisible:A}=function({containerElement:e,containerStyle:t,defaultContainerSize:n=0,direction:a,isRtl:f=!1,itemCount:h,itemProps:m,itemSize:x,onResize:g,overscanCount:p}){var b;let v,[y,w]=(0,r.useState)({startIndexVisible:0,startIndexOverscan:0,stopIndexVisible:-1,stopIndexOverscan:-1}),{startIndexVisible:S,startIndexOverscan:$,stopIndexVisible:j,stopIndexOverscan:M}={startIndexVisible:Math.min(h-1,y.startIndexVisible),startIndexOverscan:Math.min(h-1,y.startIndexOverscan),stopIndexVisible:Math.min(h-1,y.stopIndexVisible),stopIndexOverscan:Math.min(h-1,y.stopIndexOverscan)},{height:k=n,width:N=n}=function({box:e,defaultHeight:t,defaultWidth:n,disabled:a,element:l,mode:o,style:c}){let{styleHeight:u,styleWidth:d}=(0,r.useMemo)(()=>({styleHeight:s(c?.height),styleWidth:s(c?.width)}),[c?.height,c?.width]),[f,h]=(0,r.useState)({height:t,width:n}),m=a||"only-height"===o&&void 0!==u||"only-width"===o&&void 0!==d||void 0!==u&&void 0!==d;return i(()=>{if(null===l||m)return;let t=new ResizeObserver(e=>{for(let t of e){let{contentRect:e,target:r}=t;l===r&&h(t=>t.height===e.height&&t.width===e.width?t:{height:e.height,width:e.width})}});return t.observe(l,{box:e}),()=>{t?.unobserve(l)}},[e,m,l,u,d]),(0,r.useMemo)(()=>({height:u??f.height,width:d??f.width}),[f,u,d])}({defaultHeight:"vertical"===a?n:void 0,defaultWidth:"horizontal"===a?n:void 0,element:e,mode:"vertical"===a?"only-height":"only-width",style:t}),C=(0,r.useRef)({height:0,width:0}),O="vertical"===a?k:N,I=function({containerSize:e,itemSize:t}){let r;return"string"==typeof t?(o(t.endsWith("%"),`Invalid item size: "${t}"; string values must be percentages (e.g. "100%")`),o(void 0!==e,"Container size must be defined if a percentage item size is specified"),r=e*parseInt(t)/100):r=t,r}({containerSize:O,itemSize:x});(0,r.useLayoutEffect)(()=>{if("function"==typeof g){let e=C.current;(e.height!==k||e.width!==N)&&(g({height:k,width:N},{...e}),e.height=k,e.width=N)}},[k,g,N]);let z=function({itemCount:e,itemProps:t,itemSize:n}){return(0,r.useMemo)(()=>(function({itemCount:e,itemProps:t,itemSize:r}){let n=new Map;return{get(i){for(o(i<e,`Invalid index ${i}`);n.size-1<i;){let e,s=n.size;switch(typeof r){case"function":e=r(s,t);break;case"number":e=r}if(0===s)n.set(s,{size:e,scrollOffset:0});else{let t=n.get(s-1);o(void 0!==t,`Unexpected bounds cache miss for index ${i}`),n.set(s,{scrollOffset:t.scrollOffset+t.size,size:e})}}let s=n.get(i);return o(void 0!==s,`Unexpected bounds cache miss for index ${i}`),s},set(e,t){n.set(e,t)},get size(){return n.size}}})({itemCount:e,itemProps:t,itemSize:n}),[e,t,n])}({itemCount:h,itemProps:m,itemSize:I}),T=(0,r.useCallback)(e=>z.get(e),[z]),E=(0,r.useCallback)(()=>u({cachedBounds:z,itemCount:h,itemSize:I}),[z,h,I]),R=(0,r.useCallback)(t=>d({cachedBounds:z,containerScrollOffset:l({containerElement:e,direction:a,isRtl:f,scrollOffset:t}),containerSize:O,itemCount:h,overscanCount:p}),[z,e,O,a,f,h,p]);return i(()=>{w(R(("vertical"===a?e?.scrollTop:e?.scrollLeft)??0))},[e,a,R]),i(()=>{if(!e)return;let t=()=>{w(t=>{let{scrollLeft:r,scrollTop:n}=e,i=d({cachedBounds:z,containerScrollOffset:l({containerElement:e,direction:a,isRtl:f,scrollOffset:"vertical"===a?n:r}),containerSize:O,itemCount:h,overscanCount:p});return c(i,t)?t:i})};return e.addEventListener("scroll",t),()=>{e.removeEventListener("scroll",t)}},[z,e,O,a,h,p]),{getCellBounds:T,getEstimatedSize:E,scrollToIndex:(b=({align:t="auto",containerScrollOffset:r,index:n})=>{let i=function({align:e,cachedBounds:t,index:r,itemCount:n,itemSize:i,containerScrollOffset:s,containerSize:a}){if(r<0||r>=n)throw RangeError(`Invalid index specified: ${r}`,{cause:`Index ${r} is not within the range of 0 - ${n-1}`});let l=u({cachedBounds:t,itemCount:n,itemSize:i}),o=t.get(r),c=Math.max(0,Math.min(l-a,o.scrollOffset)),d=Math.max(0,o.scrollOffset-a+o.size);switch("smart"===e&&(e=s>=d&&s<=c?"auto":"center"),e){case"start":return c;case"end":return d;case"center":return o.scrollOffset<=a/2?0:o.scrollOffset+o.size/2>=l-a/2?l-a:o.scrollOffset+o.size/2-a/2;default:return s>=d&&s<=c?s:s<d?d:c}}({align:t,cachedBounds:z,containerScrollOffset:r,containerSize:O,index:n,itemCount:h,itemSize:I});if(e){if(i=l({containerElement:e,direction:a,isRtl:f,scrollOffset:i}),"function"!=typeof e.scrollTo){let e=R(i);c(y,e)||w(e)}return i}},v=(0,r.useRef)(()=>{throw Error("Cannot call during render.")}),i(()=>{v.current=b},[b]),(0,r.useCallback)(e=>v.current?.(e),[v])),startIndexOverscan:$,startIndexVisible:S,stopIndexOverscan:M,stopIndexVisible:j}}({containerElement:k,containerStyle:S,defaultContainerSize:a,direction:"vertical",itemCount:b,itemProps:j,itemSize:(0,r.useMemo)(()=>C?e=>v.getRowHeight(e)??v.getAverageRowHeight():v,[C,v]),onResize:m,overscanCount:g});(0,r.useImperativeHandle)(h,()=>({get element(){return k},scrollToRow({align:e="auto",behavior:t="auto",index:r}){let n=z({align:e,containerScrollOffset:k?.scrollTop??0,index:r});"function"==typeof k?.scrollTo&&k.scrollTo({behavior:t,top:n})}}),[k,z]),i(()=>{if(!k)return;let e=Array.from(k.children).filter((e,t)=>{if(e.hasAttribute("aria-hidden"))return!1;let r=`${T+t}`;return e.setAttribute("data-react-window-index",r),!0});if(C)return v.observeRowElements(e)},[k,C,v,T,R]),(0,r.useEffect)(()=>{T>=0&&R>=0&&x&&x({startIndex:E,stopIndex:A},{startIndex:T,stopIndex:R})},[x,T,E,R,A]);let D=(0,r.useMemo)(()=>{let e=[];if(b>0)for(let t=T;t<=R;t++){let n=O(t);e.push((0,r.createElement)(M,{...j,ariaAttributes:{"aria-posinset":t+1,"aria-setsize":b,role:"listitem"},key:t,index:t,style:{position:"absolute",left:0,transform:`translateY(${n.scrollOffset}px)`,height:C?void 0:n.size,width:"100%"}}))}return e},[M,O,C,b,j,T,R]),H=(0,t.jsx)("div",{"aria-hidden":!0,style:{height:I(),width:"100%",zIndex:-1}});return(0,r.createElement)(w,{role:"list",...$,className:n,ref:N,style:{position:"relative",maxHeight:"100%",flexGrow:1,overflowY:"auto",...S}},D,e,H)}r.useState,r.useRef,r.useState,r.useRef;var m=e.i(300329),x=e.i(158362),g=e.i(525761),p=e.i(644021);let b=(0,e.i(122436).default)("funnel",[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]]);var v=e.i(21079),y=e.i(235893),w=e.i(168497),S=e.i(308402),$=e.i(708737),j=e.i(632137),M=e.i(597705),k=e.i(145878);let N={specs:[],signature:null,scrollTop:0,activeSpecId:null},C=[],O=new Set,I=new Set,z=new Set;function T(){for(let e of O)e()}function E(e){return O.add(e),()=>{O.delete(e)}}function R(){return N}function A(){return(0,r.useSyncExternalStore)(E,R,()=>N)}function D(){let e=r.useCallback(e=>(I.add(e),()=>{I.delete(e)}),[]);return(0,r.useSyncExternalStore)(e,()=>R().specs,()=>C)}function H(){let e=r.useCallback(e=>(z.add(e),()=>{z.delete(e)}),[]);return(0,r.useSyncExternalStore)(e,()=>R().activeSpecId,()=>null)}function L(e){if(0===e.length)return;let t=e.map(e=>[e.id,e.specNumber??"",e.title??"",e.status??"",e.priority??"",e.updatedAt?new Date(e.updatedAt).getTime():0].join(":")).join("|");if(t!==N.signature)for(let r of(N={...N,specs:e,signature:t},T(),I))r()}function V(e){if(N.activeSpecId!==e)for(let t of(N={...N,activeSpecId:e},T(),z))t()}function B(e){1>Math.abs(e-N.scrollTop)||(N={...N,scrollTop:e})}function P(){return N.scrollTop}e.s(["getSidebarScrollTop",()=>P,"primeSpecsSidebar",()=>L,"setActiveSidebarSpec",()=>V,"updateSidebarScrollTop",()=>B,"useSpecsSidebarActiveSpec",()=>H,"useSpecsSidebarSpecs",()=>D,"useSpecsSidebarState",()=>A],293821);let _=r.useLayoutEffect;function q({initialSpecs:e=[],currentSpecId:i,currentSubSpec:s,onSpecHover:a}){let[l,o]=r.useState(""),[c,u]=r.useState("all"),[d,f]=r.useState("all"),[N,C]=r.useState("all"),[O,I]=r.useState(!1),[z,T]=r.useState(()=>"true"===localStorage.getItem("specs-nav-sidebar-collapsed")),[E,R]=r.useState(!1),[A,L]=r.useState(!1),V=r.useRef(null),q=r.useRef(null),W=r.useRef(!1),Y=r.useRef(null),F=r.useRef(0),U=r.useRef(!1),J=r.useRef(!0),Z=D(),G=H(),K=r.useMemo(()=>Z.length>0?Z:e,[Z,e]),Q=i||G||"";r.useEffect(()=>{L(!0)},[]),r.useEffect(()=>{document.documentElement.style.setProperty("--specs-nav-sidebar-width",z?"0px":"280px"),localStorage.setItem("specs-nav-sidebar-collapsed",String(z))},[z]),r.useEffect(()=>{R(!1)},[Q,s]);let X=r.useMemo(()=>{let e=K;if(l){let t=l.toLowerCase();e=e.filter(e=>e.title?.toLowerCase().includes(t)||e.specName.toLowerCase().includes(t)||e.specNumber?.toString().includes(t))}return"all"!==c&&(e=e.filter(e=>e.status===c)),"all"!==d&&(e=e.filter(e=>e.priority===d)),"all"!==N&&(e=e.filter(e=>e.tags?.includes(N))),console.debug(e),e},[K,l,c,d,N]),ee=r.useMemo(()=>{let e=new Set;return K.forEach(t=>{t.tags?.forEach(t=>e.add(t))}),Array.from(e).sort()},[K]),et="all"!==c||"all"!==d||"all"!==N,er=r.useMemo(()=>[...X].sort((e,t)=>(t.specNumber||0)-(e.specNumber||0)),[X]);_(()=>{let e=null,t=null;F.current=P(),U.current=F.current>0;let r=()=>{let n=Y.current?.element;if(!n){e=window.requestAnimationFrame(r);return}W.current||(F.current>0&&(n.scrollTop=F.current),W.current=!0);let i=()=>{null===q.current&&(q.current=window.requestAnimationFrame(()=>{q.current=null,F.current=n.scrollTop,B(n.scrollTop)}))};n.addEventListener("scroll",i,{passive:!0}),t=()=>{n.removeEventListener("scroll",i)}};return r(),()=>{t&&t(),null!==e&&window.cancelAnimationFrame(e),null!==q.current&&(window.cancelAnimationFrame(q.current),q.current=null)}},[]),_(()=>{if(!J.current||(J.current=!1,U.current||!Q))return;let e=null,t=()=>{if(U.current)return;if(!W.current||!Y.current){e=window.requestAnimationFrame(t);return}let r=er.findIndex(e=>e.id===Q);-1!==r&&(U.current=!0,Y.current.scrollToRow({index:r,align:"center"}))};return t(),()=>{null!==e&&window.cancelAnimationFrame(e)}},[er,Q]),r.useEffect(()=>(window.toggleSpecsSidebar=()=>R(e=>!e),()=>{window.toggleSpecsSidebar=void 0}),[]);let en=r.useCallback(e=>{let{index:r,style:i}=e,l=er[r],o=l.id===Q,c=(l.contentMd?(0,j.extractH1Title)(l.contentMd):null)||l.title||l.specName;return(0,t.jsx)("div",{style:i,className:"px-1",children:(0,t.jsx)("div",{className:"mb-0.5",children:(0,t.jsx)("div",{className:"flex items-center gap-0.5",children:(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)(n.default,{ref:o&&!s?V:null,href:`/specs/${l.specNumber||l.id}`,onMouseEnter:()=>a?.(l.specNumber?.toString()||l.id),className:(0,j.cn)("w-full flex flex-col gap-1 p-1.5 rounded-md text-sm transition-colors",o?"bg-accent text-accent-foreground font-medium":"hover:bg-accent/50"),children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[l.specNumber&&(0,t.jsxs)("span",{className:"text-xs font-mono text-muted-foreground shrink-0",children:["#",l.specNumber.toString().padStart(3,"0")]}),(0,t.jsx)("span",{className:"truncate text-xs leading-relaxed",children:c})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 flex-wrap",children:[l.status&&(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(w.StatusBadge,{status:l.status,iconOnly:!0,className:"text-[10px] scale-90"})})}),(0,t.jsx)(S.TooltipContent,{side:"right",children:(0,w.getStatusLabel)(l.status)})]}),l.priority&&(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(M.PriorityBadge,{priority:l.priority,iconOnly:!0,className:"text-[10px] scale-90"})})}),(0,t.jsx)(S.TooltipContent,{side:"right",children:(0,M.getPriorityLabel)(l.priority)})]}),"number"==typeof l.subSpecsCount&&l.subSpecsCount>0&&(0,t.jsxs)("span",{className:"text-[10px] text-muted-foreground",children:["+",l.subSpecsCount," files"]}),l.updatedAt&&(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground",children:(0,k.formatRelativeTime)(l.updatedAt)})]})]})}),(0,t.jsx)(S.TooltipContent,{side:"right",className:"max-w-[300px]",children:(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("div",{className:"font-semibold",children:c}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:l.specName})]})})]})})})})},[er,Q,s,a]),ei=r.useMemo(()=>window.innerHeight-56-180,[]),es=r.useMemo(()=>r.memo(h),[]);return(0,t.jsxs)(S.TooltipProvider,{delayDuration:700,children:[E&&(0,t.jsx)("div",{className:"fixed inset-0 bg-black/50 z-40 lg:hidden",onClick:()=>R(!1)}),(0,t.jsxs)("div",{className:"relative flex-shrink-0",children:[(0,t.jsxs)("aside",{className:(0,j.cn)("border-r border-border bg-background flex flex-col overflow-hidden transition-all duration-300","hidden lg:flex lg:sticky lg:top-14 lg:h-[calc(100vh-3.5rem)]",A&&z?"lg:w-0 lg:border-r-0":"lg:w-[280px]",E&&"fixed inset-y-0 left-0 z-[60] flex w-[280px]"),children:[(0,t.jsxs)("div",{className:"p-4 border-b border-border",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsx)("h2",{className:"font-semibold text-sm",children:"Specifications"}),(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(y.Button,{variant:O||et?"default":"ghost",size:"sm",onClick:()=>I(!O),className:"h-6 w-6 p-0",children:(0,t.jsx)(b,{className:"h-4 w-4"})})}),(0,t.jsx)(S.TooltipContent,{side:"bottom",children:O?"Hide filters":"Show filters"})]}),(0,t.jsx)(y.Button,{variant:"ghost",size:"sm",onClick:()=>R(!1),className:"h-6 w-6 p-0 lg:hidden",children:(0,t.jsx)(p.X,{className:"h-4 w-4"})}),(0,t.jsx)(y.Button,{variant:"ghost",size:"sm",onClick:()=>T(!0),className:"h-6 w-6 p-0 hidden lg:flex lg:items-center lg:justify-center",children:(0,t.jsx)(x.ChevronLeft,{className:"h-4 w-4"})})]})]}),O&&(0,t.jsxs)("div",{className:"space-y-2 mb-3 pb-3 border-b border-border",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:"Filters"}),et&&(0,t.jsx)(y.Button,{variant:"ghost",size:"sm",onClick:()=>{u("all"),f("all"),C("all")},className:"h-5 text-xs px-2 py-0",children:"Clear"})]}),(0,t.jsxs)($.Select,{value:c,onValueChange:u,children:[(0,t.jsx)($.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)($.SelectValue,{placeholder:"Status"})}),(0,t.jsxs)($.SelectContent,{children:[(0,t.jsx)($.SelectItem,{value:"all",children:"All Status"}),(0,t.jsx)($.SelectItem,{value:"planned",children:"Planned"}),(0,t.jsx)($.SelectItem,{value:"in-progress",children:"In Progress"}),(0,t.jsx)($.SelectItem,{value:"complete",children:"Complete"}),(0,t.jsx)($.SelectItem,{value:"archived",children:"Archived"})]})]}),(0,t.jsxs)($.Select,{value:d,onValueChange:f,children:[(0,t.jsx)($.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)($.SelectValue,{placeholder:"Priority"})}),(0,t.jsxs)($.SelectContent,{children:[(0,t.jsx)($.SelectItem,{value:"all",children:"All Priority"}),(0,t.jsx)($.SelectItem,{value:"low",children:"Low"}),(0,t.jsx)($.SelectItem,{value:"medium",children:"Medium"}),(0,t.jsx)($.SelectItem,{value:"high",children:"High"}),(0,t.jsx)($.SelectItem,{value:"critical",children:"Critical"})]})]}),ee.length>0&&(0,t.jsxs)($.Select,{value:N,onValueChange:C,children:[(0,t.jsx)($.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)($.SelectValue,{placeholder:"Tag"})}),(0,t.jsxs)($.SelectContent,{children:[(0,t.jsx)($.SelectItem,{value:"all",children:"All Tags"}),ee.map(e=>(0,t.jsx)($.SelectItem,{value:e,children:e},e))]})]})]}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(m.Search,{className:"absolute left-2 top-2.5 h-4 w-4 text-muted-foreground"}),(0,t.jsx)(v.Input,{placeholder:"Search specs...",value:l,onChange:e=>o(e.target.value),className:"pl-8 h-9 border-border"})]})]}),(0,t.jsx)("div",{className:"flex-1 overflow-hidden",children:0===er.length?(0,t.jsx)("div",{className:"text-center py-8 text-sm text-muted-foreground",children:"No specs found"}):(0,t.jsx)(es,{listRef:Y,defaultHeight:ei,rowCount:er.length,rowHeight:72,overscanCount:5,rowComponent:en,rowProps:{}})})]}),A&&z&&(0,t.jsx)(y.Button,{variant:"ghost",size:"sm",onClick:()=>T(!1),className:"hidden lg:items-center lg:justify-center lg:flex h-6 w-6 p-0 fixed z-50 top-20 -translate-y-1 -translate-x-1/2 left-[calc(var(--main-sidebar-width,240px))] bg-background border",children:(0,t.jsx)(g.ChevronRight,{className:"h-4 w-4"})})]})]})}function W({className:e,...r}){return(0,t.jsx)("div",{className:(0,j.cn)("animate-pulse rounded-md bg-muted",e),...r})}e.s(["SpecsNavSidebar",()=>q],417612),e.s(["Skeleton",()=>W],222850)},172381,e=>{e.v(t=>Promise.all(["static/chunks/e5aab2c562822175.js","static/chunks/192b2f6118d057e2.js","static/chunks/038fb2d565c88582.js","static/chunks/2136b3131f74188f.js","static/chunks/414a78f7b9b58d11.js","static/chunks/97c8160044aea609.js","static/chunks/3276ca6fd9005903.js"].map(t=>e.l(t))).then(()=>t(396758)))}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,522764,e=>{"use strict";let t=(0,e.i(122436).default)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]]);e.s(["List",()=>t],522764)},296026,e=>{"use strict";let t=(0,e.i(122436).default)("trending-up",[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]]);e.s(["TrendingUp",()=>t],296026)},76075,e=>{"use strict";var t=e.i(890022),s=e.i(431231),a=e.i(632137);let r=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("div",{ref:r,className:(0,a.cn)("rounded-xl border border-gray-200 dark:border-gray-800 bg-card text-card-foreground shadow",e),...s}));r.displayName="Card";let l=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("div",{ref:r,className:(0,a.cn)("flex flex-col space-y-1.5 p-6",e),...s}));l.displayName="CardHeader";let d=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("div",{ref:r,className:(0,a.cn)("font-semibold leading-none tracking-tight",e),...s}));d.displayName="CardTitle";let i=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("div",{ref:r,className:(0,a.cn)("text-sm text-muted-foreground",e),...s}));i.displayName="CardDescription";let c=s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("div",{ref:r,className:(0,a.cn)("p-6 pt-0",e),...s}));c.displayName="CardContent",s.forwardRef(({className:e,...s},r)=>(0,t.jsx)("div",{ref:r,className:(0,a.cn)("flex items-center p-6 pt-0",e),...s})).displayName="CardFooter",e.s(["Card",()=>r,"CardContent",()=>c,"CardDescription",()=>i,"CardHeader",()=>l,"CardTitle",()=>d])},416992,e=>{"use strict";let t=(0,e.i(122436).default)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);e.s(["LayoutGrid",()=>t],416992)},506116,e=>{"use strict";var t=e.i(890022),s=e.i(431231),a=e.i(987985),r=e.i(20648),l=e.i(76075),d=e.i(235893),i=e.i(20315),c=e.i(196812),n=e.i(75364),o=e.i(40843),m=e.i(416992),x=e.i(522764),h=e.i(296026);let p=(0,e.i(122436).default)("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);var u=e.i(787949),j=e.i(168497),f=e.i(597705),N=e.i(323490),g=e.i(632137);function y({spec:e}){let s=(e.contentMd?(0,g.extractH1Title)(e.contentMd):null)||e.title||e.specName;return(0,t.jsx)(a.default,{href:`/specs/${e.specNumber}`,className:"block p-3 rounded-lg hover:bg-accent transition-colors",title:e.specName,children:(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[e.specNumber&&(0,t.jsxs)("span",{className:"text-sm font-mono text-muted-foreground shrink-0",children:["#",e.specNumber.toString().padStart(3,"0")]}),(0,t.jsx)("h4",{className:"text-sm font-medium truncate",children:s})]}),s!==e.specName&&(0,t.jsx)("div",{className:"text-xs text-muted-foreground mb-1",children:e.specName}),e.tags&&e.tags.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:e.tags.slice(0,3).map(e=>(0,t.jsx)(N.Badge,{variant:"secondary",className:"text-xs",children:e},e))})]}),(0,t.jsxs)("div",{className:"flex flex-col items-end gap-1 shrink-0",children:[e.status&&(0,t.jsx)(j.StatusBadge,{status:e.status,className:"text-xs scale-90"}),e.priority&&(0,t.jsx)(f.PriorityBadge,{priority:e.priority,className:"text-xs scale-90"})]})]})})}function v({spec:e,action:s,time:r}){let l=(e.contentMd?(0,g.extractH1Title)(e.contentMd):null)||e.title||e.specName;return(0,t.jsxs)("div",{className:"flex items-start gap-3 py-2",children:[(0,t.jsx)("div",{className:"w-2 h-2 rounded-full bg-primary mt-2 shrink-0"}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsxs)("p",{className:"text-sm",children:[(0,t.jsxs)(a.default,{href:`/specs/${e.specNumber}`,className:"font-medium hover:underline",title:e.specName,children:["#",e.specNumber?.toString().padStart(3,"0")," ",l]})," ",(0,t.jsx)("span",{className:"text-muted-foreground",children:s})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:function(e){if(!e)return"Unknown";let t=Math.floor((new Date().getTime()-e.getTime())/36e5),s=Math.floor(t/24);return t<1?"Just now":t<24?`${t} hour${t>1?"s":""} ago`:s<7?`${s} day${s>1?"s":""} ago`:s<30?`${Math.floor(s/7)} week${Math.floor(s/7)>1?"s":""} ago`:e.toLocaleDateString()}(r)})]})]})}function C({initialSpecs:e,initialStats:j}){let{mode:f,currentProject:N,isLoading:g}=(0,r.useProject)(),[C,b]=(0,s.useState)(e),[w,k]=(0,s.useState)(j),[T,A]=(0,s.useState)(!1);(0,s.useEffect)(()=>{"multi-project"===f&&(N?S(N.id):(b([]),k({totalSpecs:0,completionRate:0,specsByStatus:[]})))},[f,N]);let S=async e=>{A(!0);try{let[t,s]=await Promise.all([fetch(`/api/projects/${e}/specs`),fetch(`/api/projects/${e}/stats`)]);if(t.ok&&s.ok){let e=await t.json(),a=await s.json(),r=e.specs.map(e=>({...e,createdAt:e.createdAt?new Date(e.createdAt):null,updatedAt:e.updatedAt?new Date(e.updatedAt):null}));b(r),k(a.stats)}}catch(e){console.error(e)}finally{A(!1)}};if("multi-project"===f&&!N)return g?(0,t.jsx)("div",{className:"flex items-center justify-center h-screen",children:(0,t.jsx)(u.Loader2,{className:"animate-spin"})}):(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center h-[calc(100vh-4rem)] text-center p-8",children:[(0,t.jsx)("h2",{className:"text-2xl font-bold mb-2",children:"Welcome to LeanSpec"}),(0,t.jsx)("p",{className:"text-muted-foreground mb-4",children:"Select a project from the sidebar or create a new one to get started."})]});if(T)return(0,t.jsx)("div",{className:"flex items-center justify-center h-screen",children:(0,t.jsx)(u.Loader2,{className:"animate-spin"})});let M=C.filter(e=>"in-progress"===e.status).sort((e,t)=>(t.specNumber||0)-(e.specNumber||0)).slice(0,5),B=C.filter(e=>"planned"===e.status).sort((e,t)=>(t.specNumber||0)-(e.specNumber||0)).slice(0,5),H=C.sort((e,t)=>e.createdAt?t.createdAt?t.createdAt.getTime()-e.createdAt.getTime():-1:1).slice(0,5),P=C.filter(e=>e.updatedAt).sort((e,t)=>e.updatedAt?t.updatedAt?t.updatedAt.getTime()-e.updatedAt.getTime():-1:1).slice(0,10),R=w.specsByStatus.find(e=>"complete"===e.status)?.count||0;return(0,t.jsx)("div",{className:"min-h-screen bg-background p-4 sm:p-8",children:(0,t.jsxs)("div",{className:"max-w-7xl mx-auto space-y-6 sm:space-y-8",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-3xl sm:text-4xl font-bold tracking-tight",children:"Dashboard"}),(0,t.jsx)("p",{className:"text-muted-foreground mt-2",children:"Project overview and recent activity"})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3 sm:gap-4",children:[(0,t.jsxs)(l.Card,{className:"relative overflow-hidden",children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-br from-blue-500/10 to-transparent"}),(0,t.jsx)(l.CardHeader,{className:"relative pb-3",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)(l.CardTitle,{className:"text-sm font-medium text-muted-foreground",children:"Total Specs"}),(0,t.jsx)(i.FileText,{className:"h-5 w-5 text-blue-600"})]})}),(0,t.jsx)(l.CardContent,{className:"relative",children:(0,t.jsx)("div",{className:"text-3xl font-bold",children:w.totalSpecs})})]}),(0,t.jsxs)(l.Card,{className:"relative overflow-hidden",children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-br from-orange-500/10 to-transparent"}),(0,t.jsx)(l.CardHeader,{className:"relative pb-3",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)(l.CardTitle,{className:"text-sm font-medium text-muted-foreground",children:"In Progress"}),(0,t.jsx)(n.PlayCircle,{className:"h-5 w-5 text-orange-600"})]})}),(0,t.jsx)(l.CardContent,{className:"relative",children:(0,t.jsx)("div",{className:"text-3xl font-bold",children:w.specsByStatus.find(e=>"in-progress"===e.status)?.count||0})})]}),(0,t.jsxs)(l.Card,{className:"relative overflow-hidden",children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-br from-green-500/10 to-transparent"}),(0,t.jsx)(l.CardHeader,{className:"relative pb-3",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)(l.CardTitle,{className:"text-sm font-medium text-muted-foreground",children:"Completed"}),(0,t.jsx)(c.CheckCircle2,{className:"h-5 w-5 text-green-600"})]})}),(0,t.jsxs)(l.CardContent,{className:"relative",children:[(0,t.jsx)("div",{className:"text-3xl font-bold",children:R}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground mt-1 flex items-center gap-1",children:[(0,t.jsx)(h.TrendingUp,{className:"h-3 w-3"}),w.completionRate.toFixed(1),"% completion rate"]})]})]}),(0,t.jsxs)(l.Card,{className:"relative overflow-hidden",children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-br from-purple-500/10 to-transparent"}),(0,t.jsx)(l.CardHeader,{className:"relative pb-3",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)(l.CardTitle,{className:"text-sm font-medium text-muted-foreground",children:"Planned"}),(0,t.jsx)(o.Clock,{className:"h-5 w-5 text-purple-600"})]})}),(0,t.jsx)(l.CardContent,{className:"relative",children:(0,t.jsx)("div",{className:"text-3xl font-bold",children:w.specsByStatus.find(e=>"planned"===e.status)?.count||0})})]})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4 sm:gap-6",children:[(0,t.jsxs)(l.Card,{children:[(0,t.jsx)(l.CardHeader,{children:(0,t.jsxs)(l.CardTitle,{className:"text-lg flex items-center gap-2",children:[(0,t.jsx)(p,{className:"h-5 w-5 text-blue-600"}),"Recently Added"]})}),(0,t.jsx)(l.CardContent,{className:"space-y-1",children:H.slice(0,5).map(e=>(0,t.jsx)(y,{spec:e},e.id))})]}),(0,t.jsxs)(l.Card,{children:[(0,t.jsx)(l.CardHeader,{children:(0,t.jsxs)(l.CardTitle,{className:"text-lg flex items-center gap-2",children:[(0,t.jsx)(o.Clock,{className:"h-5 w-5 text-purple-600"}),"Planned (",B.length,")"]})}),(0,t.jsx)(l.CardContent,{className:"space-y-1",children:B.length>0?B.map(e=>(0,t.jsx)(y,{spec:e},e.id)):(0,t.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:"No planned specs"})})]}),(0,t.jsxs)(l.Card,{children:[(0,t.jsx)(l.CardHeader,{children:(0,t.jsxs)(l.CardTitle,{className:"text-lg flex items-center gap-2",children:[(0,t.jsx)(n.PlayCircle,{className:"h-5 w-5 text-orange-600"}),"In Progress (",M.length,")"]})}),(0,t.jsx)(l.CardContent,{className:"space-y-1",children:M.length>0?M.map(e=>(0,t.jsx)(y,{spec:e},e.id)):(0,t.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:"No specs in progress"})})]})]}),(0,t.jsxs)(l.Card,{children:[(0,t.jsx)(l.CardHeader,{children:(0,t.jsx)(l.CardTitle,{className:"text-lg",children:"Recent Activity"})}),(0,t.jsx)(l.CardContent,{children:(0,t.jsx)("div",{className:"border-l-2 border-muted pl-4 space-y-1",children:P.map(e=>(0,t.jsx)(v,{spec:e,action:"updated",time:e.updatedAt},e.id))})})]}),(0,t.jsxs)(l.Card,{children:[(0,t.jsx)(l.CardHeader,{children:(0,t.jsx)(l.CardTitle,{className:"text-lg",children:"Quick Actions"})}),(0,t.jsx)(l.CardContent,{children:(0,t.jsxs)("div",{className:"flex flex-wrap gap-3",children:[(0,t.jsx)(d.Button,{asChild:!0,children:(0,t.jsxs)(a.default,{href:"/specs",children:[(0,t.jsx)(x.List,{className:"h-4 w-4 mr-2"}),"View All Specs"]})}),(0,t.jsx)(d.Button,{variant:"outline",asChild:!0,children:(0,t.jsxs)(a.default,{href:"/specs?view=board",children:[(0,t.jsx)(m.LayoutGrid,{className:"h-4 w-4 mr-2"}),"Board View"]})}),(0,t.jsx)(d.Button,{variant:"outline",asChild:!0,children:(0,t.jsxs)(a.default,{href:"/stats",children:[(0,t.jsx)(h.TrendingUp,{className:"h-4 w-4 mr-2"}),"View Stats"]})})]})})]})]})})}e.s(["DashboardClient",()=>C],506116)}]);