@leanspec/ui 0.2.9 → 0.2.10

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 (609) 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 +11 -0
  18. package/.next/standalone/packages/ui/.next/build-manifest.json +2 -2
  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 +88 -0
  22. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js.nft.json +1 -1
  23. package/.next/standalone/packages/ui/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  24. package/.next/standalone/packages/ui/.next/server/app/_global-error.html +2 -2
  25. package/.next/standalone/packages/ui/.next/server/app/_global-error.rsc +1 -1
  26. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  27. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  28. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  29. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  30. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  31. package/.next/standalone/packages/ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/packages/ui/.next/server/app/_not-found.html +2 -2
  33. package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +18 -20
  34. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +18 -20
  35. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +23 -26
  36. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  37. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  38. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +5 -5
  39. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js +1 -1
  40. package/.next/standalone/packages/ui/.next/server/app/api/context/route.js.nft.json +1 -1
  41. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js +1 -1
  42. package/.next/standalone/packages/ui/.next/server/app/api/dependencies/route.js.nft.json +1 -1
  43. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js.nft.json +1 -1
  44. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.nft.json +1 -1
  45. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.nft.json +1 -1
  46. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.nft.json +1 -1
  47. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route/app-paths-manifest.json +3 -0
  48. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route/build-manifest.json +11 -0
  49. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route/server-reference-manifest.json +4 -0
  50. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js +8 -0
  51. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js.map +5 -0
  52. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route.js.nft.json +1 -0
  53. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/context/route_client-reference-manifest.js +2 -0
  54. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route/app-paths-manifest.json +3 -0
  55. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route/build-manifest.json +11 -0
  56. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route/server-reference-manifest.json +4 -0
  57. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js +8 -0
  58. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js.map +5 -0
  59. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route.js.nft.json +1 -0
  60. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/dependencies/route_client-reference-manifest.js +2 -0
  61. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js +1 -3
  62. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  63. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route/app-paths-manifest.json +3 -0
  64. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route/build-manifest.json +11 -0
  65. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route/server-reference-manifest.json +4 -0
  66. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route.js +8 -0
  67. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route.js.map +5 -0
  68. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route.js.nft.json +1 -0
  69. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/dependency-graph/route_client-reference-manifest.js +2 -0
  70. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route/app-paths-manifest.json +3 -0
  71. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route/build-manifest.json +11 -0
  72. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route/server-reference-manifest.json +4 -0
  73. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route.js +8 -0
  74. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route.js.map +5 -0
  75. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route.js.nft.json +1 -0
  76. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/metadata/route_client-reference-manifest.js +2 -0
  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]/tags/route/app-paths-manifest.json +3 -0
  86. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route/build-manifest.json +11 -0
  87. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route/server-reference-manifest.json +4 -0
  88. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route.js +8 -0
  89. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route.js.map +5 -0
  90. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route.js.nft.json +1 -0
  91. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/tags/route_client-reference-manifest.js +2 -0
  92. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route/app-paths-manifest.json +3 -0
  93. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route/build-manifest.json +11 -0
  94. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route/server-reference-manifest.json +4 -0
  95. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js +6 -0
  96. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js.map +5 -0
  97. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route.js.nft.json +1 -0
  98. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/validate/route_client-reference-manifest.js +2 -0
  99. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js +1 -3
  100. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
  101. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js +1 -1
  102. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
  103. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js +1 -1
  104. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
  105. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route/app-paths-manifest.json +3 -0
  106. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route/build-manifest.json +11 -0
  107. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route/server-reference-manifest.json +4 -0
  108. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route.js +8 -0
  109. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route.js.map +5 -0
  110. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route.js.nft.json +1 -0
  111. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/metadata/route_client-reference-manifest.js +2 -0
  112. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js +1 -1
  113. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
  114. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -1
  115. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js +1 -1
  116. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
  117. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js +1 -1
  118. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
  119. package/.next/standalone/packages/ui/.next/server/app/api/tags/route/app-paths-manifest.json +3 -0
  120. package/.next/standalone/packages/ui/.next/server/app/api/tags/route/build-manifest.json +11 -0
  121. package/.next/standalone/packages/ui/.next/server/app/api/tags/route/server-reference-manifest.json +4 -0
  122. package/.next/standalone/packages/ui/.next/server/app/api/tags/route.js +8 -0
  123. package/.next/standalone/packages/ui/.next/server/app/api/tags/route.js.map +5 -0
  124. package/.next/standalone/packages/ui/.next/server/app/api/tags/route.js.nft.json +1 -0
  125. package/.next/standalone/packages/ui/.next/server/app/api/tags/route_client-reference-manifest.js +2 -0
  126. package/.next/standalone/packages/ui/.next/server/app/context/page.js +2 -1
  127. package/.next/standalone/packages/ui/.next/server/app/context/page.js.nft.json +1 -1
  128. package/.next/standalone/packages/ui/.next/server/app/context/page_client-reference-manifest.js +1 -1
  129. package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js +2 -1
  130. package/.next/standalone/packages/ui/.next/server/app/dependencies/page.js.nft.json +1 -1
  131. package/.next/standalone/packages/ui/.next/server/app/dependencies/page_client-reference-manifest.js +1 -1
  132. package/.next/standalone/packages/ui/.next/server/app/page.js +2 -1
  133. package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
  134. package/.next/standalone/packages/ui/.next/server/app/page_client-reference-manifest.js +1 -1
  135. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/app-paths-manifest.json +3 -0
  136. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/build-manifest.json +18 -0
  137. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/next-font-manifest.json +6 -0
  138. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/react-loadable-manifest.json +1 -0
  139. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page/server-reference-manifest.json +4 -0
  140. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js +21 -0
  141. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js.map +5 -0
  142. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page.js.nft.json +1 -0
  143. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/context/page_client-reference-manifest.js +2 -0
  144. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/app-paths-manifest.json +3 -0
  145. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/build-manifest.json +18 -0
  146. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/next-font-manifest.json +6 -0
  147. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/react-loadable-manifest.json +1 -0
  148. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page/server-reference-manifest.json +4 -0
  149. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js +21 -0
  150. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js.map +5 -0
  151. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page.js.nft.json +1 -0
  152. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/dependencies/page_client-reference-manifest.js +2 -0
  153. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js +5 -5
  154. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -1
  155. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +1 -1
  156. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js +6 -5
  157. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -1
  158. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page_client-reference-manifest.js +1 -1
  159. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js +5 -4
  160. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -1
  161. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page_client-reference-manifest.js +1 -1
  162. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/app-paths-manifest.json +3 -0
  163. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/build-manifest.json +18 -0
  164. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/next-font-manifest.json +6 -0
  165. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/react-loadable-manifest.json +1 -0
  166. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page/server-reference-manifest.json +4 -0
  167. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js +21 -0
  168. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js.map +5 -0
  169. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page.js.nft.json +1 -0
  170. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/stats/page_client-reference-manifest.js +2 -0
  171. package/.next/standalone/packages/ui/.next/server/app/projects/page.js +5 -4
  172. package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -1
  173. package/.next/standalone/packages/ui/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  174. package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -2
  175. package/.next/standalone/packages/ui/.next/server/app/projects.rsc +24 -25
  176. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +24 -25
  177. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +20 -24
  178. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  179. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  180. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  181. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
  182. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
  183. package/.next/standalone/packages/ui/.next/server/app/specs/page.js +2 -1
  184. package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
  185. package/.next/standalone/packages/ui/.next/server/app/specs/page_client-reference-manifest.js +1 -1
  186. package/.next/standalone/packages/ui/.next/server/app/stats/page.js +2 -1
  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 +11 -0
  190. package/.next/standalone/packages/ui/.next/server/chunks/284a8_app_api_projects_[id]_specs_[spec]_dependency-graph_route_actions_f18476ed.js +3 -0
  191. package/.next/standalone/packages/ui/.next/server/chunks/6681a__next-internal_server_app_api_projects_[id]_dependencies_route_actions_7ac49581.js +3 -0
  192. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_context_route_actions_96adca70.js +3 -0
  193. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_tags_route_actions_40899744.js +3 -0
  194. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_validate_route_actions_b60372c9.js +3 -0
  195. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_specs_[id]_metadata_route_actions_139bb09f.js +3 -0
  196. package/.next/standalone/packages/ui/.next/server/chunks/[externals]_better-sqlite3_a1cc22cb._.js +3 -0
  197. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0afcada7._.js +3 -0
  198. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0e63a440._.js +3 -0
  199. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0ec6f9b0._.js +3 -0
  200. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0edb782a._.js +3 -0
  201. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0fbfea15._.js +1 -1
  202. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__1706515f._.js +3 -0
  203. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__1f037512._.js +1 -1
  204. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__38780e00._.js +3 -0
  205. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3a535244._.js +3 -0
  206. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__41f43652._.js +3 -0
  207. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__5081ac6f._.js +3 -0
  208. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__526764b2._.js +3 -0
  209. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__548e27d4._.js +1 -1
  210. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__5f1e0195._.js +3 -0
  211. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__71d98924._.js +3 -0
  212. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__74af400b._.js +3 -0
  213. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8075fe29._.js +1 -1
  214. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9ce722b4._.js +1 -1
  215. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9cf3bf21._.js +3 -0
  216. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__a2d7cbed._.js +1 -1
  217. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b1ad8b69._.js +3 -0
  218. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__c7a4906b._.js +3 -0
  219. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__de15d2aa._.js +3 -0
  220. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e16f7651._.js +3 -0
  221. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e2fcb5c6._.js +3 -0
  222. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__e8d9903e._.js +3 -0
  223. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f6936b89._.js +3 -0
  224. package/.next/standalone/packages/ui/.next/server/chunks/f825c_server_app_api_projects_[id]_specs_[spec]_metadata_route_actions_35af9a8c.js +3 -0
  225. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_tags_route_actions_64625b2c.js +3 -0
  226. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_b8c1af87._.js +3 -0
  227. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_baa0160d._.js +72 -1
  228. package/.next/standalone/packages/ui/.next/server/chunks/ssr/730ea_ui__next-internal_server_app_projects_[projectId]_context_page_actions_e4940a48.js +3 -0
  229. package/.next/standalone/packages/ui/.next/server/chunks/ssr/730ea_ui__next-internal_server_app_projects_[projectId]_stats_page_actions_82a85203.js +3 -0
  230. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__0f0dade1._.js +1 -1
  231. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__174e1ca1._.js +3 -0
  232. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__212c8580._.js +3 -0
  233. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__2b66bcca._.js +3 -0
  234. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__a965a67b._.js → [root-of-the-server]__2d9202e8._.js} +2 -2
  235. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__312221a2._.js +3 -0
  236. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__338c65fe._.js +1 -1
  237. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__366688dd._.js +3 -0
  238. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__44b603f9._.js +1 -1
  239. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__46b71f61._.js +3 -0
  240. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__665ae766._.js +3 -0
  241. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__69a0d63a._.js +1 -1
  242. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__7f55abaa._.js +1 -1
  243. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a34731d8._.js +3 -0
  244. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__12b4eb41._.js → [root-of-the-server]__b0d6e2ad._.js} +2 -2
  245. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__c158c9a9._.js +3 -0
  246. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__c7735439._.js +3 -0
  247. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__dcee62dd._.js +3 -0
  248. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__e2c760eb._.js +3 -0
  249. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ead1539c._.js +1 -1
  250. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ec5b96a5._.js +1 -1
  251. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_000dd317._.js +1 -1
  252. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_39562b2a._.js → _170362f4._.js} +3 -3
  253. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_1a642e67._.js +4 -0
  254. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_adb9d7cb._.js → _22274047._.js} +2 -2
  255. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_85effc18._.js → _2bc76f88._.js} +3 -3
  256. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_fdd7780b._.js → _3f059230._.js} +3 -3
  257. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_58b98a8f._.js +4 -0
  258. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_59616aa6._.js +3 -0
  259. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_5e1484f9._.js +7 -0
  260. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_8ab6f9ca._.js +3 -0
  261. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_b303aeea._.js +3 -0
  262. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_bae6d2b8._.js → _b421ba4a._.js} +3 -3
  263. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_be836d6a._.js +5 -0
  264. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_d840ffc6._.js +3 -0
  265. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ec637d7c._.js +3 -0
  266. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f05260d6._.js +4 -0
  267. package/.next/standalone/packages/ui/.next/server/chunks/ssr/f825c_server_app_projects_[projectId]_dependencies_page_actions_ba2321b8.js +3 -0
  268. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_0056f1f2._.js +3 -0
  269. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_30b0b05a._.js +3 -0
  270. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_478d57e5._.js +3 -0
  271. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_151891de._.js → node_modules__pnpm_4e3e790c._.js} +2 -2
  272. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_f5b29533._.js → node_modules__pnpm_8680dc29._.js} +2 -2
  273. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_e175b92a._.js → node_modules__pnpm_94a0b1f5._.js} +2 -2
  274. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_1120b57c._.js → node_modules__pnpm_b4ff5c78._.js} +2 -2
  275. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{node_modules__pnpm_7791e3b8._.js → node_modules__pnpm_d3262b3d._.js} +2 -2
  276. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_context_context-client_tsx_4ba99a62._.js +2 -2
  277. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_dependencies_dependencies-client_tsx_0e82443a._.js +1 -1
  278. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_layout_tsx_86c2ce0f._.js +3 -0
  279. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_page_tsx_6e166c8e._.js +1 -1
  280. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_specs_specs-client_tsx_0bb8f8f8._.js +1 -1
  281. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_spec-detail-wrapper_tsx_fd35401c._.js +1 -1
  282. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_specs-nav-sidebar_tsx_8237ed13._.js +1 -1
  283. package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
  284. package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
  285. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
  286. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
  287. package/.next/standalone/packages/ui/.next/static/chunks/0c7bbb59865774a1.js +1 -0
  288. package/.next/standalone/packages/ui/.next/static/chunks/0fe978002ba489fb.js +3 -0
  289. package/.next/standalone/packages/ui/.next/static/chunks/1169d4ac8f9df687.js +1 -0
  290. package/.next/standalone/packages/ui/.next/static/chunks/1e0689744f87e958.js +2 -0
  291. package/.next/standalone/packages/ui/.next/static/chunks/241b6b1c83610ebf.js +1 -0
  292. package/.next/standalone/packages/ui/.next/static/chunks/39931c5cecf4c4b7.js +1 -0
  293. package/.next/{static/chunks/6d938a49daa10208.js → standalone/packages/ui/.next/static/chunks/4610aea3ca2e69eb.js} +1 -1
  294. package/.next/standalone/packages/ui/.next/static/chunks/6d7922838a3513a4.js +1 -0
  295. package/.next/standalone/packages/ui/.next/static/chunks/781328ee279ffc41.js +1 -0
  296. package/.next/standalone/packages/ui/.next/static/chunks/{942cf63b4032c808.js → 7df6308e6cfcf902.js} +1 -1
  297. package/.next/standalone/packages/ui/.next/static/chunks/840c6743a491a398.js +1 -0
  298. package/.next/standalone/packages/ui/.next/static/chunks/937cb3894a606899.js +5 -0
  299. package/.next/standalone/packages/ui/.next/static/chunks/9cf644b700f37825.css +1 -0
  300. package/.next/{static/chunks/a3d7e1be47de010b.js → standalone/packages/ui/.next/static/chunks/bbd498aa5689c057.js} +1 -1
  301. package/.next/standalone/packages/ui/.next/static/chunks/bc0f8f7f8dc0a352.js +1 -0
  302. package/.next/{static/chunks/979625373d5474b6.js → standalone/packages/ui/.next/static/chunks/c26909a25ca9fc9b.js} +1 -1
  303. package/.next/{static/chunks/e3bc96a996e2a314.js → standalone/packages/ui/.next/static/chunks/d26f4109b44eb240.js} +1 -1
  304. package/.next/standalone/packages/ui/.next/static/chunks/{3276ca6fd9005903.js → d52a048b511c32bd.js} +1 -1
  305. package/.next/standalone/packages/ui/.next/static/chunks/dbce73f7087f2470.js +10 -0
  306. package/.next/standalone/packages/ui/.next/static/chunks/e399b4afc7936907.js +1 -0
  307. package/.next/standalone/packages/ui/.next/static/chunks/f0a083ac29b4b6c2.js +1 -0
  308. package/.next/standalone/packages/ui/dist/BUILD_ID +1 -0
  309. package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +1 -9
  310. package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +1 -1
  311. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +3 -7
  312. package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +3 -5
  313. package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +1 -2
  314. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +3 -8
  315. package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +259 -73
  316. package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +3 -5
  317. package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +3 -5
  318. package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +3 -5
  319. package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +23 -33
  320. package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +3 -7
  321. package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +14 -25
  322. package/.next/standalone/packages/ui/dist/static/chunks/0c19c69aa7625475.js +1 -0
  323. package/.next/standalone/packages/ui/dist/static/chunks/116800b03245a1e5.js +1 -0
  324. package/.next/standalone/packages/ui/dist/static/chunks/15843a3d7584e314.js +1 -0
  325. package/.next/standalone/packages/ui/dist/static/chunks/19e80edf527aef5c.js +1 -0
  326. package/.next/standalone/packages/ui/dist/static/chunks/465954d5af3284a9.js +1 -0
  327. package/.next/standalone/packages/ui/dist/static/chunks/5abeeb89f1412a80.js +3 -0
  328. package/.next/standalone/packages/ui/dist/static/chunks/5c2072ad938de8ed.js +1 -0
  329. package/.next/standalone/packages/ui/dist/static/chunks/6a05a93ec8fa7b83.js +1 -0
  330. package/.next/standalone/packages/ui/dist/static/chunks/778e42188e450b39.css +1 -0
  331. package/.next/standalone/packages/ui/dist/static/chunks/a02c1f50ff00204f.js +1 -0
  332. package/.next/standalone/packages/ui/dist/static/chunks/a45464b9776dd88e.js +1 -0
  333. package/.next/standalone/packages/ui/dist/static/chunks/a6dad97d9634a72d.js +1 -0
  334. package/.next/standalone/packages/ui/dist/static/chunks/b0ea0ac61604f843.js +1 -0
  335. package/.next/standalone/packages/ui/dist/static/chunks/c06e85b449720194.js +1 -0
  336. package/.next/standalone/packages/ui/dist/static/chunks/c557ac675be79771.js +1 -0
  337. package/.next/standalone/packages/ui/dist/static/chunks/cad005a57ffbb2d3.js +1 -0
  338. package/.next/standalone/packages/ui/dist/static/chunks/cdf6fe33bc65efbc.js +1 -0
  339. package/.next/standalone/packages/ui/dist/static/chunks/d12ed5dbe44caed7.js +1 -0
  340. package/.next/standalone/packages/ui/dist/static/chunks/d1ebe5c1a344f4ca.js +5 -0
  341. package/.next/standalone/packages/ui/dist/static/chunks/d42cf1682bc46652.js +1 -0
  342. package/.next/standalone/packages/ui/dist/static/chunks/dde5d8bddd7fbfcf.js +1 -0
  343. package/.next/standalone/packages/ui/dist/static/chunks/ebd89051637b9a47.js +4 -0
  344. package/.next/standalone/packages/ui/dist/static/chunks/ec82875d18b29f47.js +2 -0
  345. package/.next/standalone/packages/ui/dist/static/chunks/f0b701df9769bcc5.js +19 -0
  346. package/.next/standalone/packages/ui/dist/static/chunks/turbopack-1c09a99f4c9e28d3.js +3 -0
  347. package/.next/standalone/packages/ui/package.json +1 -1
  348. package/.next/standalone/packages/ui/server.js +1 -1
  349. package/.next/standalone/packages/ui/src/app/api/dependencies/route.ts +4 -67
  350. package/.next/standalone/packages/ui/src/app/api/projects/[id]/context/route.ts +39 -0
  351. package/.next/standalone/packages/ui/src/app/api/projects/[id]/dependencies/route.ts +20 -0
  352. package/.next/standalone/packages/ui/src/app/api/projects/[id]/route.ts +25 -9
  353. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/dependency-graph/route.ts +129 -0
  354. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/metadata/route.ts +170 -0
  355. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/route.ts +14 -14
  356. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/status/route.ts +9 -2
  357. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/route.ts +9 -8
  358. package/.next/standalone/packages/ui/src/app/api/projects/[id]/tags/route.ts +25 -0
  359. package/.next/standalone/packages/ui/src/app/api/projects/[id]/validate/route.ts +49 -0
  360. package/.next/standalone/packages/ui/src/app/api/projects/route.ts +18 -5
  361. package/.next/standalone/packages/ui/src/app/api/specs/[id]/dependency-graph/route.test.ts +0 -2
  362. package/.next/standalone/packages/ui/src/app/api/specs/[id]/dependency-graph/route.ts +0 -15
  363. package/.next/standalone/packages/ui/src/app/api/specs/[id]/metadata/route.ts +184 -0
  364. package/.next/standalone/packages/ui/src/app/api/tags/route.ts +16 -0
  365. package/.next/standalone/packages/ui/src/app/context/page.tsx +22 -0
  366. package/.next/standalone/packages/ui/src/app/dashboard-client.tsx +43 -62
  367. package/.next/standalone/packages/ui/src/app/dependencies/constants.ts +9 -8
  368. package/.next/standalone/packages/ui/src/app/dependencies/dependencies-client.tsx +95 -20
  369. package/.next/standalone/packages/ui/src/app/dependencies/page.tsx +25 -13
  370. package/.next/standalone/packages/ui/src/app/dependencies/spec-node.tsx +8 -8
  371. package/.next/standalone/packages/ui/src/app/dependencies/spec-sidebar.tsx +40 -67
  372. package/.next/standalone/packages/ui/src/app/page.tsx +24 -0
  373. package/.next/standalone/packages/ui/src/app/projects/[projectId]/context/page.tsx +41 -0
  374. package/.next/standalone/packages/ui/src/app/projects/[projectId]/dependencies/page.tsx +30 -0
  375. package/.next/standalone/packages/ui/src/app/projects/[projectId]/page.tsx +18 -2
  376. package/.next/standalone/packages/ui/src/app/projects/[projectId]/stats/page.tsx +24 -0
  377. package/.next/standalone/packages/ui/src/app/projects/layout.tsx +7 -0
  378. package/.next/standalone/packages/ui/src/app/projects/page.tsx +375 -107
  379. package/.next/standalone/packages/ui/src/app/specs/[id]/page.tsx +24 -1
  380. package/.next/standalone/packages/ui/src/app/specs/page.tsx +22 -0
  381. package/.next/standalone/packages/ui/src/app/specs/specs-client.tsx +28 -18
  382. package/.next/standalone/packages/ui/src/app/stats/page.tsx +22 -0
  383. package/.next/standalone/packages/ui/src/components/color-picker.tsx +73 -0
  384. package/.next/standalone/packages/ui/src/components/create-project-dialog.tsx +3 -5
  385. package/.next/standalone/packages/ui/src/components/directory-picker.tsx +1 -0
  386. package/.next/standalone/packages/ui/{dist/standalone/packages/web/src/components/spec-metadata.tsx → src/components/editable-spec-metadata.tsx} +46 -30
  387. package/.next/standalone/packages/ui/src/components/main-sidebar.tsx +28 -6
  388. package/.next/standalone/packages/ui/src/components/markdown-link.tsx +15 -8
  389. package/.next/standalone/packages/ui/src/components/priority-editor.tsx +153 -0
  390. package/.next/standalone/packages/ui/src/components/project-switcher.tsx +74 -10
  391. package/.next/standalone/packages/ui/src/components/quick-search.tsx +3 -1
  392. package/.next/standalone/packages/ui/src/components/spec-dependency-graph.tsx +13 -52
  393. package/.next/standalone/packages/ui/src/components/spec-detail-client.tsx +58 -30
  394. package/.next/standalone/packages/ui/src/components/spec-detail-wrapper.tsx +3 -4
  395. package/.next/standalone/packages/ui/src/components/specs-nav-sidebar.tsx +8 -6
  396. package/.next/standalone/packages/ui/src/components/status-editor.tsx +153 -0
  397. package/.next/standalone/packages/ui/src/components/tags-editor.tsx +238 -0
  398. package/.next/standalone/packages/ui/src/components/ui/command.tsx +1 -1
  399. package/.next/standalone/packages/ui/src/contexts/project-context.tsx +24 -0
  400. package/.next/standalone/packages/ui/src/lib/db/service-queries.ts +230 -40
  401. package/.next/standalone/packages/ui/src/lib/dependency-graph.ts +0 -13
  402. package/.next/standalone/packages/ui/src/lib/projects/registry.ts +1 -1
  403. package/.next/standalone/packages/ui/src/lib/specs/sources/multi-project-source.ts +21 -5
  404. package/.next/standalone/packages/ui/src/types/specs.ts +6 -4
  405. package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
  406. package/.next/static/chunks/0c7bbb59865774a1.js +1 -0
  407. package/.next/static/chunks/0fe978002ba489fb.js +3 -0
  408. package/.next/static/chunks/1169d4ac8f9df687.js +1 -0
  409. package/.next/static/chunks/1e0689744f87e958.js +2 -0
  410. package/.next/static/chunks/241b6b1c83610ebf.js +1 -0
  411. package/.next/static/chunks/39931c5cecf4c4b7.js +1 -0
  412. package/.next/{standalone/packages/ui/.next/static/chunks/6d938a49daa10208.js → static/chunks/4610aea3ca2e69eb.js} +1 -1
  413. package/.next/static/chunks/6d7922838a3513a4.js +1 -0
  414. package/.next/static/chunks/781328ee279ffc41.js +1 -0
  415. package/.next/static/chunks/{942cf63b4032c808.js → 7df6308e6cfcf902.js} +1 -1
  416. package/.next/static/chunks/840c6743a491a398.js +1 -0
  417. package/.next/static/chunks/937cb3894a606899.js +5 -0
  418. package/.next/static/chunks/9cf644b700f37825.css +1 -0
  419. package/.next/{standalone/packages/ui/.next/static/chunks/a3d7e1be47de010b.js → static/chunks/bbd498aa5689c057.js} +1 -1
  420. package/.next/static/chunks/bc0f8f7f8dc0a352.js +1 -0
  421. package/.next/{standalone/packages/ui/.next/static/chunks/979625373d5474b6.js → static/chunks/c26909a25ca9fc9b.js} +1 -1
  422. package/.next/{standalone/packages/ui/.next/static/chunks/e3bc96a996e2a314.js → static/chunks/d26f4109b44eb240.js} +1 -1
  423. package/.next/static/chunks/{3276ca6fd9005903.js → d52a048b511c32bd.js} +1 -1
  424. package/.next/static/chunks/dbce73f7087f2470.js +10 -0
  425. package/.next/static/chunks/e399b4afc7936907.js +1 -0
  426. package/.next/static/chunks/f0a083ac29b4b6c2.js +1 -0
  427. package/.next/static/s9uUE9DnvJD2xIz-iBGMe/_buildManifest.js +11 -0
  428. package/.next/static/s9uUE9DnvJD2xIz-iBGMe/_clientMiddlewareManifest.json +1 -0
  429. package/.next/static/s9uUE9DnvJD2xIz-iBGMe/_ssgManifest.js +1 -0
  430. package/package.json +2 -2
  431. 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
  432. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__126dea7b._.js +0 -3
  433. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__65667b70._.js +0 -3
  434. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__675a763e._.js +0 -3
  435. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__803d07f0._.js +0 -3
  436. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8233e09b._.js +0 -3
  437. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__84cdc14a._.js +0 -3
  438. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8a9ab1a3._.js +0 -3
  439. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__aa677b0d._.js +0 -3
  440. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__ae726e9c._.js +0 -3
  441. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__b0969111._.js +0 -3
  442. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__bdc3963a._.js +0 -3
  443. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f06435b0._.js +0 -3
  444. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f5c6d6b8._.js +0 -3
  445. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__fb91986f._.js +0 -3
  446. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_db_index_ts_556307fa._.js +0 -74
  447. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_0bd881ee._.js +0 -3
  448. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__3c77d95b._.js +0 -3
  449. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__50122e7e._.js +0 -3
  450. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__8608a6fa._.js +0 -3
  451. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__88a691ee._.js +0 -3
  452. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__bdbbba01._.js +0 -3
  453. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__cc589a54._.js +0 -3
  454. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__daedd80e._.js +0 -3
  455. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__dc176c61._.js +0 -3
  456. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_03aa8d19._.js +0 -7
  457. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_28fe1532._.js +0 -5
  458. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_3b617676._.js +0 -3
  459. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_8cec504f._.js +0 -3
  460. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ea899b87._.js +0 -3
  461. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_fe120f8a._.js +0 -3
  462. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_1c916fe3._.js +0 -3
  463. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_3ba1438c._.js +0 -3
  464. package/.next/standalone/packages/ui/.next/static/chunks/094cf9f4e3553261.js +0 -1
  465. package/.next/standalone/packages/ui/.next/static/chunks/1c015eb9eaaf9f9c.js +0 -1
  466. package/.next/standalone/packages/ui/.next/static/chunks/1d36660b2877d213.js +0 -3
  467. package/.next/standalone/packages/ui/.next/static/chunks/20f4141ccb5d4eb4.js +0 -1
  468. package/.next/standalone/packages/ui/.next/static/chunks/2c85b8059e42248a.js +0 -1
  469. package/.next/standalone/packages/ui/.next/static/chunks/3b6b058ebd14dbed.js +0 -1
  470. package/.next/standalone/packages/ui/.next/static/chunks/4d29ca0fa6843070.js +0 -2
  471. package/.next/standalone/packages/ui/.next/static/chunks/59854b15bf046467.js +0 -1
  472. package/.next/standalone/packages/ui/.next/static/chunks/5fd8101e32b076b1.js +0 -1
  473. package/.next/standalone/packages/ui/.next/static/chunks/a33f10af6abef4df.js +0 -10
  474. package/.next/standalone/packages/ui/.next/static/chunks/b7f19087afe1d2c9.css +0 -1
  475. package/.next/standalone/packages/ui/.next/static/chunks/ddd87cd0d26bc2f5.js +0 -1
  476. package/.next/standalone/packages/ui/.next/static/chunks/eeec245955b3b600.js +0 -5
  477. package/.next/standalone/packages/ui/dist/standalone/packages/web/components.json +0 -20
  478. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/0000_reflective_thena.sql +0 -59
  479. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/0001_fresh_carmella_unuscione.sql +0 -1
  480. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/0000_snapshot.json +0 -427
  481. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/0001_snapshot.json +0 -436
  482. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/_journal.json +0 -20
  483. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle.config.ts +0 -10
  484. package/.next/standalone/packages/ui/dist/standalone/packages/web/eslint.config.mjs +0 -18
  485. package/.next/standalone/packages/ui/dist/standalone/packages/web/next.config.ts +0 -7
  486. package/.next/standalone/packages/ui/dist/standalone/packages/web/postcss.config.mjs +0 -8
  487. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/projects/[id]/specs/route.ts +0 -23
  488. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/projects/route.ts +0 -19
  489. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/revalidate/route.ts +0 -63
  490. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.test.ts +0 -51
  491. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.ts +0 -171
  492. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/route.ts +0 -36
  493. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/subspecs/[file]/route.ts +0 -46
  494. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/stats/route.ts +0 -19
  495. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/board-client.tsx +0 -162
  496. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/loading.tsx +0 -43
  497. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/page.tsx +0 -18
  498. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/dashboard-client.tsx +0 -364
  499. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/error.tsx +0 -43
  500. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/globals.css +0 -531
  501. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/home-client.tsx +0 -277
  502. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/layout.tsx +0 -70
  503. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/loading.tsx +0 -87
  504. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/not-found.tsx +0 -27
  505. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/page.tsx +0 -18
  506. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/[id]/loading.tsx +0 -5
  507. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/[id]/page.tsx +0 -43
  508. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/page.tsx +0 -18
  509. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/specs-client.tsx +0 -425
  510. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/stats/page.tsx +0 -18
  511. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/stats/stats-client.tsx +0 -283
  512. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/back-to-top.tsx +0 -46
  513. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/empty-state.tsx +0 -52
  514. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/main-sidebar.tsx +0 -175
  515. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/markdown-link.test.ts +0 -96
  516. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/markdown-link.tsx +0 -95
  517. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/navigation.tsx +0 -210
  518. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/priority-badge.tsx +0 -53
  519. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/quick-search.tsx +0 -180
  520. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/skeletons.tsx +0 -119
  521. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-dependency-graph.tsx +0 -369
  522. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-client.tsx +0 -372
  523. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-loading-shell.tsx +0 -42
  524. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-wrapper.tsx +0 -70
  525. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-sidebar.tsx +0 -127
  526. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-timeline.tsx +0 -186
  527. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/specs-nav-sidebar.tsx +0 -561
  528. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/status-badge.tsx +0 -53
  529. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/sub-spec-tabs.tsx +0 -143
  530. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/table-of-contents.tsx +0 -130
  531. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/theme-provider.tsx +0 -11
  532. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/theme-toggle.tsx +0 -37
  533. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/avatar.tsx +0 -50
  534. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/badge.tsx +0 -36
  535. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/breadcrumb.tsx +0 -110
  536. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/button.tsx +0 -57
  537. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/card.tsx +0 -76
  538. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/command.tsx +0 -153
  539. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/dialog.tsx +0 -122
  540. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/input.tsx +0 -24
  541. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/select.tsx +0 -159
  542. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/separator.tsx +0 -31
  543. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/skeleton.tsx +0 -15
  544. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/tabs.tsx +0 -55
  545. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/toast.tsx +0 -30
  546. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/tooltip.tsx +0 -32
  547. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/date-utils.ts +0 -76
  548. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/index.ts +0 -42
  549. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/migrate.ts +0 -18
  550. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/queries.ts +0 -114
  551. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/schema.ts +0 -123
  552. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/seed.ts +0 -156
  553. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/service-queries.ts +0 -216
  554. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/dependency-graph.ts +0 -105
  555. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/service.ts +0 -120
  556. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/sources/database-source.ts +0 -94
  557. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/sources/filesystem-source.ts +0 -249
  558. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/types.ts +0 -55
  559. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/stores/specs-sidebar-store.ts +0 -152
  560. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/sub-specs.ts +0 -171
  561. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/utils.ts +0 -17
  562. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/types/specs.ts +0 -18
  563. package/.next/standalone/packages/ui/dist/standalone/packages/web/tailwind.config.ts +0 -58
  564. package/.next/standalone/packages/ui/dist/standalone/packages/web/tsconfig.json +0 -34
  565. package/.next/standalone/packages/ui/dist/standalone/packages/web/tsconfig.tsbuildinfo +0 -1
  566. package/.next/standalone/packages/ui/dist/standalone/packages/web/vitest.config.ts +0 -14
  567. package/.next/standalone/packages/ui/dist/standalone/specs/094-ai-chatbot-web-integration/README.md +0 -332
  568. package/.next/standalone/packages/ui/dist/standalone/specs/095-pr-migration-verification/README.md +0 -339
  569. package/.next/standalone/packages/ui/dist/standalone/specs/096-docs-beginner-first-reorg/README.md +0 -399
  570. package/.next/standalone/packages/ui/dist/standalone/specs/097-dag-visualization-library/README.md +0 -525
  571. package/.next/standalone/packages/ui/dist/standalone/specs/098-github-multi-project-integration/README.md +0 -387
  572. package/.next/standalone/packages/ui/dist/standalone/specs/099-enhanced-dependency-commands-cli-mcp/README.md +0 -613
  573. package/.next/standalone/packages/ui/dist/standalone/specs/100-release-process-typecheck-failure/README.md +0 -266
  574. package/.next/standalone/packages/ui/dist/standalone/specs/101-sidebar-scroll-position-drift/README.md +0 -100
  575. package/.next/standalone/packages/ui/dist/standalone/specs/102-mcp-wrapper-package/README.md +0 -172
  576. package/.next/static/chunks/094cf9f4e3553261.js +0 -1
  577. package/.next/static/chunks/1c015eb9eaaf9f9c.js +0 -1
  578. package/.next/static/chunks/1d36660b2877d213.js +0 -3
  579. package/.next/static/chunks/20f4141ccb5d4eb4.js +0 -1
  580. package/.next/static/chunks/2c85b8059e42248a.js +0 -1
  581. package/.next/static/chunks/3b6b058ebd14dbed.js +0 -1
  582. package/.next/static/chunks/4d29ca0fa6843070.js +0 -2
  583. package/.next/static/chunks/59854b15bf046467.js +0 -1
  584. package/.next/static/chunks/5fd8101e32b076b1.js +0 -1
  585. package/.next/static/chunks/a33f10af6abef4df.js +0 -10
  586. package/.next/static/chunks/b7f19087afe1d2c9.css +0 -1
  587. package/.next/static/chunks/ddd87cd0d26bc2f5.js +0 -1
  588. package/.next/static/chunks/eeec245955b3b600.js +0 -5
  589. /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
  590. /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
  591. /package/.next/standalone/packages/ui/.next/static/{8PwFWS-09QjFSbDbfp15t → s9uUE9DnvJD2xIz-iBGMe}/_buildManifest.js +0 -0
  592. /package/.next/standalone/packages/ui/.next/static/{8PwFWS-09QjFSbDbfp15t → s9uUE9DnvJD2xIz-iBGMe}/_clientMiddlewareManifest.json +0 -0
  593. /package/.next/standalone/packages/ui/.next/static/{8PwFWS-09QjFSbDbfp15t → s9uUE9DnvJD2xIz-iBGMe}/_ssgManifest.js +0 -0
  594. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/f864aa7e7061c0600e35cf3d879b27cf.txt +0 -0
  595. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/favicon.ico +0 -0
  596. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/file.svg +0 -0
  597. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/github-mark-white.svg +0 -0
  598. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/github-mark.svg +0 -0
  599. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/globe.svg +0 -0
  600. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/icon.svg +0 -0
  601. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/logo-dark-bg.svg +0 -0
  602. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/logo-with-bg.svg +0 -0
  603. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/logo.svg +0 -0
  604. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/next.svg +0 -0
  605. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/vercel.svg +0 -0
  606. /package/.next/standalone/packages/ui/dist/{standalone/packages/web/public → public}/window.svg +0 -0
  607. /package/.next/{static/8PwFWS-09QjFSbDbfp15t → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_buildManifest.js +0 -0
  608. /package/.next/{static/8PwFWS-09QjFSbDbfp15t → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_clientMiddlewareManifest.json +0 -0
  609. /package/.next/{static/8PwFWS-09QjFSbDbfp15t → standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT}/_ssgManifest.js +0 -0
@@ -1,613 +0,0 @@
1
- ---
2
- status: complete
3
- created: '2025-11-17'
4
- tags:
5
- - cli
6
- - mcp
7
- - dependencies
8
- - core
9
- priority: high
10
- created_at: '2025-11-17T08:45:47.025Z'
11
- depends_on:
12
- - 097-dag-visualization-library
13
- updated_at: '2025-11-17T09:13:14.295Z'
14
- completed_at: '2025-11-17T09:13:14.295Z'
15
- completed: '2025-11-17'
16
- transitions:
17
- - status: complete
18
- at: '2025-11-17T09:13:14.295Z'
19
- ---
20
-
21
- # Enhanced Dependency Commands for CLI/MCP
22
-
23
- > **Status**: ✅ Complete · **Priority**: High · **Created**: 2025-11-17 · **Tags**: cli, mcp, dependencies, core
24
-
25
- **Project**: lean-spec
26
- **Team**: Core Development
27
-
28
- ## Overview
29
-
30
- **Problem**: Current `lean-spec deps` command and MCP `deps` tool only show the current spec's perspective (dependencies declared in its frontmatter). Missing critical information:
31
-
32
- 1. **Downstream Impact**: Specs that depend on THIS spec (requiredBy)
33
- 2. **Bidirectional Related**: Specs that list THIS spec in their `related` field
34
- 3. **Full Dependency Graph**: Complete view of relationships across the project
35
-
36
- **Why Now**: Spec 097 (DAG Visualization) is implementing complete dependency graph for the web app. This spec extends that capability to CLI and MCP, sharing the core implementation.
37
-
38
- **Example Problem**:
39
- ```bash
40
- # Spec A depends on Spec B
41
- $ lean-spec deps B
42
- # ❌ Can't see that Spec A is blocked by Spec B
43
- # ❌ Can't assess impact of changes to Spec B
44
- # ❌ Can't see full dependency chain
45
- ```
46
-
47
- **What We Need**:
48
- - **CLI**: Enhanced `deps` command with `--complete`, `--upstream`, `--downstream`, `--impact` flags
49
- - **MCP**: New tools for complete dependency graph queries
50
- - **Core Package**: Shared `SpecDependencyGraph` class (from spec 097)
51
- - **Consistency**: Web, CLI, and MCP all show same dependency information
52
-
53
- **Impact**: Better dependency awareness → informed decisions about spec work order, change impact, and blocking relationships.
54
-
55
- ## Design
56
-
57
- ### Architecture: Shared Core Implementation
58
-
59
- **From Spec 097 (DAG Visualization) - In-Memory Graph:**
60
-
61
- ```typescript
62
- // packages/core/src/dependency-graph.ts (NEW)
63
-
64
- interface DependencyNode {
65
- dependsOn: Set<string>; // Upstream (current depends on these)
66
- requiredBy: Set<string>; // Downstream (these depend on current)
67
- related: Set<string>; // Bidirectional connections
68
- }
69
-
70
- export class SpecDependencyGraph {
71
- private graph: Map<string, DependencyNode>;
72
-
73
- constructor(allSpecs: SpecInfo[]) {
74
- this.buildGraph(allSpecs);
75
- }
76
-
77
- private buildGraph(specs: SpecInfo[]) {
78
- // Initialize all nodes
79
- for (const spec of specs) {
80
- this.graph.set(spec.path, {
81
- dependsOn: new Set(spec.frontmatter.depends_on || []),
82
- requiredBy: new Set(),
83
- related: new Set(spec.frontmatter.related || []),
84
- });
85
- }
86
-
87
- // Build reverse edges
88
- for (const [specPath, node] of this.graph.entries()) {
89
- // For each dependsOn, add reverse requiredBy
90
- for (const dep of node.dependsOn) {
91
- this.graph.get(dep)?.requiredBy.add(specPath);
92
- }
93
- // For each related, add bidirectional link
94
- for (const rel of node.related) {
95
- this.graph.get(rel)?.related.add(specPath);
96
- }
97
- }
98
- }
99
-
100
- getCompleteGraph(specPath: string): {
101
- current: SpecInfo;
102
- dependsOn: SpecInfo[]; // Upstream (current depends on these)
103
- requiredBy: SpecInfo[]; // Downstream (these depend on current)
104
- related: SpecInfo[]; // Bidirectional (includes both directions)
105
- } {
106
- // Implementation returns full graph view
107
- }
108
-
109
- getUpstream(specPath: string, maxDepth: number = 3): SpecInfo[] {
110
- // Recursive traversal of dependsOn chain
111
- }
112
-
113
- getDownstream(specPath: string, maxDepth: number = 3): SpecInfo[] {
114
- // Recursive traversal of requiredBy chain
115
- }
116
-
117
- getImpactRadius(specPath: string): {
118
- upstream: SpecInfo[]; // What this spec needs
119
- downstream: SpecInfo[]; // What needs this spec
120
- related: SpecInfo[]; // Connected work
121
- } {
122
- // All specs affected by changes to this spec
123
- }
124
- }
125
- ```
126
-
127
- **Performance Analysis** (from spec 097):
128
- - **Memory**: ~100 specs × (3 Sets × ~5 entries × 50 bytes) ≈ 75KB total
129
- - **Startup**: O(n×d) where d = avg dependencies (~5) → 100 specs × 5 deps ≈ <1ms
130
- - **Query**: O(1) graph lookup + O(d) traversal ≈ <1ms
131
- - **Conclusion**: Negligible memory/CPU impact, excellent query performance
132
-
133
- ### Enhanced CLI Commands
134
-
135
- **Current Command** (`lean-spec deps <spec>`):
136
- ```bash
137
- $ lean-spec deps 082
138
- Depends On:
139
- → 067-monorepo-core-extraction [complete]
140
-
141
- Related Specs:
142
- ⟷ 097-dag-visualization-library [in-progress]
143
- ⟷ 081-web-app-ux-redesign [complete]
144
- ```
145
-
146
- **Enhanced Command Options**:
147
-
148
- ```bash
149
- # Complete graph (default behavior - backward compatible enhancement)
150
- $ lean-spec deps 082 --complete
151
- Depends On (Upstream):
152
- → 067-monorepo-core-extraction [complete]
153
-
154
- Required By (Downstream):
155
- ← 097-dag-visualization-library [in-progress] # NEW!
156
- ← 099-enhanced-dependency-commands [planned] # NEW!
157
-
158
- Related Specs (Bidirectional):
159
- ⟷ 097-dag-visualization-library [in-progress]
160
- ⟷ 081-web-app-ux-redesign [complete]
161
-
162
- # Only upstream dependencies
163
- $ lean-spec deps 082 --upstream
164
- → 067-monorepo-core-extraction [complete]
165
-
166
- # Only downstream dependents
167
- $ lean-spec deps 082 --downstream
168
- ← 097-dag-visualization-library [in-progress]
169
- ← 099-enhanced-dependency-commands [planned]
170
-
171
- # Impact analysis (upstream + downstream + related)
172
- $ lean-spec deps 082 --impact
173
- Changing this spec affects 5 specs:
174
- Upstream Dependencies (1):
175
- → 067-monorepo-core-extraction [complete]
176
- Downstream Dependents (2):
177
- ← 097-dag-visualization-library [in-progress]
178
- ← 099-enhanced-dependency-commands [planned]
179
- Related Specs (3):
180
- ⟷ 097-dag-visualization-library [in-progress]
181
- ⟷ 081-web-app-ux-redesign [complete]
182
- ⟷ 083-web-navigation-performance [planned]
183
-
184
- # JSON output (for programmatic use)
185
- $ lean-spec deps 082 --complete --json
186
- {
187
- "current": { "path": "082-web-realtime-sync-architecture", "status": "complete" },
188
- "dependsOn": [{ "path": "067-monorepo-core-extraction", "status": "complete" }],
189
- "requiredBy": [
190
- { "path": "097-dag-visualization-library", "status": "in-progress" },
191
- { "path": "099-enhanced-dependency-commands", "status": "planned" }
192
- ],
193
- "related": [
194
- { "path": "097-dag-visualization-library", "status": "in-progress" },
195
- { "path": "081-web-app-ux-redesign", "status": "complete" }
196
- ]
197
- }
198
- ```
199
-
200
- **Backward Compatibility**:
201
- - Default behavior (`lean-spec deps <spec>`) enhanced to show requiredBy
202
- - Existing `--depth`, `--graph`, `--json` flags still work
203
- - New flags are additive, not breaking
204
-
205
- ### Enhanced MCP Tools
206
-
207
- **Extend Existing Tool** (`mcp_lean-spec_deps`):
208
-
209
- ```typescript
210
- // packages/cli/src/mcp/tools/deps.ts (ENHANCED)
211
-
212
- export interface DepsInput {
213
- specPath: string;
214
- mode?: 'complete' | 'upstream' | 'downstream' | 'impact'; // NEW
215
- depth?: number;
216
- }
217
-
218
- export async function getDepsData(specPath: string, mode: string = 'complete') {
219
- const config = await loadConfig();
220
- const allSpecs = await loadAllSpecs(config.specsDir);
221
- const graph = new SpecDependencyGraph(allSpecs); // NEW: Use shared graph
222
-
223
- const spec = getSpec(specPath, allSpecs);
224
- if (!spec) throw new Error(`Spec not found: ${specPath}`);
225
-
226
- switch (mode) {
227
- case 'complete':
228
- return graph.getCompleteGraph(spec.path);
229
- case 'upstream':
230
- return { current: spec, dependsOn: graph.getUpstream(spec.path) };
231
- case 'downstream':
232
- return { current: spec, requiredBy: graph.getDownstream(spec.path) };
233
- case 'impact':
234
- return graph.getImpactRadius(spec.path);
235
- default:
236
- return graph.getCompleteGraph(spec.path);
237
- }
238
- }
239
-
240
- export function depsTool(): ToolDefinition {
241
- return [
242
- 'deps',
243
- {
244
- title: 'Get Dependencies',
245
- description: 'Analyze complete spec dependency graph (upstream, downstream, bidirectional). Shows which specs this depends on, which depend on this spec, and related work.',
246
- inputSchema: {
247
- specPath: z.string().describe('Spec to analyze'),
248
- mode: z.enum(['complete', 'upstream', 'downstream', 'impact']).optional()
249
- .describe('View mode: complete (all relationships), upstream (dependencies only), downstream (dependents only), impact (all affected specs)'),
250
- depth: z.number().optional().describe('Traversal depth (default: 3)'),
251
- },
252
- outputSchema: {
253
- current: z.object({ path: z.string(), status: z.string() }),
254
- dependsOn: z.array(z.object({ path: z.string(), status: z.string() })).optional(),
255
- requiredBy: z.array(z.object({ path: z.string(), status: z.string() })).optional(),
256
- related: z.array(z.object({ path: z.string(), status: z.string() })).optional(),
257
- },
258
- },
259
- async (input) => {
260
- const deps = await getDepsData(input.specPath, input.mode || 'complete');
261
- return { content: [{ type: 'text', text: JSON.stringify(deps, null, 2) }] };
262
- }
263
- ];
264
- }
265
- ```
266
-
267
- **New MCP Tool** (`mcp_lean-spec_dependency-graph`):
268
-
269
- ```typescript
270
- // packages/cli/src/mcp/tools/dependency-graph.ts (NEW)
271
-
272
- export function dependencyGraphTool(): ToolDefinition {
273
- return [
274
- 'dependency-graph',
275
- {
276
- title: 'Get Full Dependency Graph',
277
- description: 'Get complete project-wide dependency graph with all relationships. Useful for analyzing project structure, finding dependency chains, and understanding spec interconnections.',
278
- inputSchema: {
279
- includeArchived: z.boolean().optional().describe('Include archived specs (default: false)'),
280
- format: z.enum(['adjacency-list', 'edge-list']).optional()
281
- .describe('Output format: adjacency-list (grouped by spec) or edge-list (flat list of relationships)'),
282
- },
283
- outputSchema: {
284
- specs: z.array(z.object({
285
- path: z.string(),
286
- status: z.string(),
287
- dependsOn: z.array(z.string()),
288
- requiredBy: z.array(z.string()),
289
- related: z.array(z.string()),
290
- })),
291
- },
292
- },
293
- async (input) => {
294
- const config = await loadConfig();
295
- const allSpecs = await loadAllSpecs(config.specsDir, input.includeArchived);
296
- const graph = new SpecDependencyGraph(allSpecs);
297
- const output = graph.toJSON(input.format || 'adjacency-list');
298
- return { content: [{ type: 'text', text: JSON.stringify(output, null, 2) }] };
299
- }
300
- ];
301
- }
302
- ```
303
-
304
- ### Implementation Strategy
305
-
306
- **Phase 1: Core Package** (Foundation)
307
- - Extract `SpecDependencyGraph` class to `@leanspec/core`
308
- - Implement graph building and query methods
309
- - Add unit tests for graph construction and traversal
310
- - Export for use in CLI, MCP, and web
311
-
312
- **Phase 2: CLI Enhancement** (User-Facing)
313
- - Enhance `packages/cli/src/commands/deps.ts`
314
- - Add `--complete`, `--upstream`, `--downstream`, `--impact` flags
315
- - Update output formatting for new sections
316
- - Ensure backward compatibility
317
-
318
- **Phase 3: MCP Enhancement** (AI-Facing)
319
- - Update `packages/cli/src/mcp/tools/deps.ts`
320
- - Add `dependency-graph.ts` new tool
321
- - Update tool registry
322
- - Add examples to AGENTS.md
323
-
324
- **Phase 4: Web Integration** (Spec 097)
325
- - Web API uses same `SpecDependencyGraph` class
326
- - Ensures consistency across interfaces
327
- - Completed in spec 097 (Phase 2)
328
-
329
- ## Plan
330
-
331
- ### Phase 1: Core Package Implementation (Days 1-2)
332
- - [ ] Create `packages/core/src/dependency-graph.ts`
333
- - [ ] Define `DependencyNode` interface
334
- - [ ] Implement `SpecDependencyGraph` class
335
- - [ ] Add `buildGraph()` method (bidirectional edge construction)
336
- - [ ] Add `getCompleteGraph()` method
337
- - [ ] Add `getUpstream()` method (recursive traversal)
338
- - [ ] Add `getDownstream()` method (recursive traversal)
339
- - [ ] Add `getImpactRadius()` method
340
- - [ ] Add `toJSON()` method for serialization
341
- - [ ] Export from `packages/core/src/index.ts`
342
- - [ ] Add unit tests for `SpecDependencyGraph`
343
- - [ ] Test graph construction (forward + reverse edges)
344
- - [ ] Test upstream traversal (depth limiting)
345
- - [ ] Test downstream traversal
346
- - [ ] Test circular dependency handling
347
- - [ ] Test bidirectional related connections
348
- - [ ] Test edge cases (no dependencies, orphaned specs)
349
- - [ ] Build and verify compilation (`pnpm build`)
350
-
351
- ### Phase 2: CLI Enhancement (Days 3-4)
352
- - [ ] Update `packages/cli/src/commands/deps.ts`
353
- - [ ] Import `SpecDependencyGraph` from `@leanspec/core`
354
- - [ ] Add command options: `--complete`, `--upstream`, `--downstream`, `--impact`
355
- - [ ] Instantiate graph in `showDeps()` function
356
- - [ ] Add `displayCompleteGraph()` helper (requiredBy section)
357
- - [ ] Add `displayUpstream()` helper
358
- - [ ] Add `displayDownstream()` helper
359
- - [ ] Add `displayImpact()` helper
360
- - [ ] Update JSON output format (include requiredBy)
361
- - [ ] Preserve existing `--depth`, `--graph`, `--json` behavior
362
- - [ ] Update CLI help text in `packages/cli/src/cli.ts`
363
- - [ ] Add examples to CLI docs
364
- - [ ] Manual testing
365
- - [ ] Test `lean-spec deps 082 --complete`
366
- - [ ] Test `lean-spec deps 082 --upstream`
367
- - [ ] Test `lean-spec deps 082 --downstream`
368
- - [ ] Test `lean-spec deps 082 --impact`
369
- - [ ] Test `lean-spec deps 082 --complete --json`
370
- - [ ] Test backward compatibility (no flags)
371
-
372
- ### Phase 3: MCP Enhancement (Days 5-6)
373
- - [ ] Update `packages/cli/src/mcp/tools/deps.ts`
374
- - [ ] Import `SpecDependencyGraph` from `@leanspec/core`
375
- - [ ] Add `mode` parameter to `getDepsData()` function
376
- - [ ] Implement mode routing (complete, upstream, downstream, impact)
377
- - [ ] Update tool schema (add mode parameter)
378
- - [ ] Update output schema (include requiredBy)
379
- - [ ] Update tool description
380
- - [ ] Create `packages/cli/src/mcp/tools/dependency-graph.ts` (NEW)
381
- - [ ] Implement `dependencyGraphTool()` definition
382
- - [ ] Implement graph handler (project-wide view)
383
- - [ ] Add format options (adjacency-list, edge-list)
384
- - [ ] Add includeArchived option
385
- - [ ] Update `packages/cli/src/mcp/tools/registry.ts`
386
- - [ ] Import `dependencyGraphTool`
387
- - [ ] Register new tool (alphabetical order)
388
- - [ ] Update AGENTS.md
389
- - [ ] Document enhanced `deps` tool
390
- - [ ] Document new `dependency-graph` tool
391
- - [ ] Add usage examples
392
- - [ ] Update dependency analysis workflow
393
-
394
- ### Phase 4: Documentation & Testing (Day 7)
395
- - [ ] Update docs-site documentation
396
- - [ ] Update CLI reference (`docs/reference/cli.mdx`)
397
- - [ ] Update MCP reference (`docs/reference/mcp-server.mdx`)
398
- - [ ] Add examples to usage guide
399
- - [ ] Integration testing
400
- - [ ] Test CLI → Core graph integration
401
- - [ ] Test MCP → Core graph integration
402
- - [ ] Verify consistency (CLI output matches MCP output)
403
- - [ ] Test with complex dependency chains (5+ levels)
404
- - [ ] Test with circular dependencies (error handling)
405
- - [ ] Performance benchmarking
406
- - [ ] Measure graph construction time (100 specs)
407
- - [ ] Measure query time (<1ms target)
408
- - [ ] Measure memory usage (<100KB target)
409
- - [ ] Build and deploy
410
- - [ ] Run `pnpm build` (verify compilation)
411
- - [ ] Run `pnpm test:run` (all tests pass)
412
- - [ ] Update spec 099 status to `complete`
413
-
414
- ## Test
415
-
416
- ### Phase 1 Tests (Core Package)
417
-
418
- **Graph Construction**:
419
- - [ ] Build graph from 100 specs in <1ms
420
- - [ ] Correctly identify all dependsOn relationships
421
- - [ ] Correctly build reverse requiredBy edges
422
- - [ ] Handle bidirectional related connections
423
- - [ ] Handle specs with no dependencies
424
- - [ ] Handle orphaned specs (not referenced by any other spec)
425
-
426
- **Graph Queries**:
427
- - [ ] `getCompleteGraph()` returns all 3 relationship types
428
- - [ ] `getUpstream()` traverses dependsOn chain correctly
429
- - [ ] `getDownstream()` traverses requiredBy chain correctly
430
- - [ ] `getImpactRadius()` includes upstream + downstream + related
431
- - [ ] Depth limiting works (stops at maxDepth)
432
- - [ ] Circular dependency detection works (prevents infinite loops)
433
-
434
- **Edge Cases**:
435
- - [ ] Empty spec list returns empty graph
436
- - [ ] Spec with no relationships returns empty sets
437
- - [ ] Non-existent spec throws error
438
- - [ ] Duplicate relationships deduplicated
439
-
440
- ### Phase 2 Tests (CLI Enhancement)
441
-
442
- **Functional**:
443
- - [ ] `lean-spec deps <spec>` shows requiredBy section (backward compatible enhancement)
444
- - [ ] `--complete` flag shows all relationships
445
- - [ ] `--upstream` flag shows only dependsOn
446
- - [ ] `--downstream` flag shows only requiredBy
447
- - [ ] `--impact` flag shows all affected specs
448
- - [ ] `--json` output includes requiredBy field
449
- - [ ] `--depth` flag still works with new modes
450
- - [ ] `--graph` flag still works (ASCII tree)
451
-
452
- **Output Format**:
453
- - [ ] Required By section uses ← arrow
454
- - [ ] Depends On section uses → arrow
455
- - [ ] Related section uses ⟷ arrow
456
- - [ ] Status indicators appear correctly
457
- - [ ] JSON output is valid and parseable
458
-
459
- **Backward Compatibility**:
460
- - [ ] Existing scripts using `lean-spec deps` still work
461
- - [ ] JSON output is superset (no removed fields)
462
- - [ ] Exit codes unchanged
463
- - [ ] Error messages unchanged
464
-
465
- ### Phase 3 Tests (MCP Enhancement)
466
-
467
- **MCP Tool - deps (enhanced)**:
468
- - [ ] Tool accepts `mode` parameter
469
- - [ ] Mode 'complete' returns all relationships
470
- - [ ] Mode 'upstream' returns only dependsOn
471
- - [ ] Mode 'downstream' returns only requiredBy
472
- - [ ] Mode 'impact' returns full impact radius
473
- - [ ] Output includes requiredBy field
474
- - [ ] Backward compatible (no mode defaults to complete)
475
-
476
- **MCP Tool - dependency-graph (new)**:
477
- - [ ] Tool returns project-wide graph
478
- - [ ] Adjacency list format correct
479
- - [ ] Edge list format correct
480
- - [ ] includeArchived flag works
481
- - [ ] Output includes all 3 relationship types per spec
482
-
483
- **Integration**:
484
- - [ ] MCP server starts without errors
485
- - [ ] Tools appear in alphabetical order
486
- - [ ] Tool schemas validate correctly
487
- - [ ] AI assistants can call tools successfully
488
-
489
- ### Phase 4 Tests (Integration & Performance)
490
-
491
- **Cross-Interface Consistency**:
492
- - [ ] CLI and MCP return identical dependency data for same spec
493
- - [ ] Web API (spec 097) returns identical dependency data
494
- - [ ] All interfaces use same `SpecDependencyGraph` class
495
- - [ ] Graph construction identical across interfaces
496
-
497
- **Performance**:
498
- - [ ] Graph construction <1ms for 100 specs
499
- - [ ] Query time <1ms for typical spec
500
- - [ ] Memory usage <100KB for graph
501
- - [ ] No memory leaks over 100 queries
502
- - [ ] Cold start acceptable (<10ms)
503
-
504
- **Real-World Scenarios**:
505
- - [ ] LeanSpec's own specs (100+ specs)
506
- - [ ] Spec with 10+ dependencies (spec 082)
507
- - [ ] Spec with 10+ dependents
508
- - [ ] Deep dependency chain (5+ levels)
509
- - [ ] Circular dependency handling (error message)
510
- - [ ] Complex related network (10+ bidirectional connections)
511
-
512
- ## Notes
513
-
514
- ### Design Decisions
515
-
516
- **Why Share Implementation in @leanspec/core?**
517
- - **Consistency**: Web, CLI, MCP all show same dependency data
518
- - **Performance**: Shared, optimized graph implementation
519
- - **Maintainability**: Single source of truth for graph logic
520
- - **Testing**: Test once, use everywhere
521
-
522
- **Why Enhance Existing `deps` Command Instead of New Command?**
523
- - **User Expectation**: `deps` is the natural place for dependency info
524
- - **Backward Compatible**: Existing usage still works
525
- - **Discoverability**: Users already know `deps` command
526
- - **Consistency**: Matches existing command structure
527
-
528
- **Why Add New MCP Tool Instead of Only Enhancing Existing?**
529
- - **Separation of Concerns**: `deps` for single spec, `dependency-graph` for project-wide
530
- - **AI Agent Use Cases**: Sometimes need full graph for analysis
531
- - **Performance**: Project-wide graph cached once, queried many times
532
- - **Flexibility**: Different tools for different needs
533
-
534
- **Why Not Add to Web App First?**
535
- - Spec 097 is already implementing complete graph for web
536
- - This spec focuses on CLI/MCP
537
- - Both use same core implementation
538
- - Coordinated rollout ensures consistency
539
-
540
- ### Relationship to Other Specs
541
-
542
- **This spec depends on:**
543
- - **082 (Web Realtime Sync)**: Service layer architecture patterns
544
- - **097 (DAG Visualization)**: Complete dependency graph design (Phase 2 API)
545
- - Existing CLI commands (`deps`, spec path resolution)
546
- - Existing MCP tools (tool registry, helper functions)
547
- - Spec 080 (MCP modular architecture) - Tool organization patterns
548
-
549
- **This spec enables:**
550
- - Better AI agent dependency awareness
551
- - Informed spec work order decisions
552
- - Impact analysis before making changes
553
- - Complete dependency visualization in web app (spec 097)
554
- - Future dependency analysis features
555
-
556
- **This spec blocks:**
557
- - None (additive enhancement)
558
-
559
- **Related specs:**
560
- - **076 (programmatic-spec-relationships)**: Relationship management commands
561
- - **085 (cli-relationship-commands)**: `link`/`unlink` commands
562
- - **097 (dag-visualization-library)**: Web app complete graph (same core implementation)
563
-
564
- ### Implementation Notes
565
-
566
- **Memory Management**:
567
- - Graph built once per command invocation
568
- - 75KB memory for 100 specs (negligible)
569
- - No persistence needed (rebuild is fast)
570
- - Consider caching in long-running MCP server
571
-
572
- **Error Handling**:
573
- - Non-existent spec: Clear error message
574
- - Circular dependencies: Detect and prevent infinite loops
575
- - Missing relationships: Graceful degradation (show what's available)
576
- - Corrupt frontmatter: Skip spec and log warning
577
-
578
- **Future Enhancements**:
579
- - **Caching**: Cache graph in MCP server (rebuild on spec changes)
580
- - **Visualization**: ASCII art dependency tree
581
- - **Analysis**: Detect orphaned specs, suggest relationships
582
- - **Performance**: Incremental graph updates (not full rebuild)
583
-
584
- ### Open Questions
585
-
586
- - [x] Should we rebuild graph on every command? → **Yes, <1ms startup cost is acceptable**
587
- - [x] Should MCP server cache graph? → **Future enhancement, not critical for v1**
588
- - [x] Should we add `--complete` flag or make it default? → **Make requiredBy default, add mode flags**
589
- - [ ] Should we add `--format` flag for different output styles? → **Future enhancement**
590
- - [ ] Should we add graph visualization (ASCII art)? → **Future enhancement**
591
-
592
- ### Success Criteria
593
-
594
- **Phase 1 (Core)**:
595
- - ✅ `SpecDependencyGraph` class in `@leanspec/core`
596
- - ✅ All tests pass
597
- - ✅ Performance <1ms graph construction
598
-
599
- **Phase 2 (CLI)**:
600
- - ✅ `lean-spec deps <spec>` shows requiredBy
601
- - ✅ New flags work (`--complete`, `--upstream`, `--downstream`, `--impact`)
602
- - ✅ Backward compatible (existing scripts work)
603
-
604
- **Phase 3 (MCP)**:
605
- - ✅ Enhanced `deps` tool with mode parameter
606
- - ✅ New `dependency-graph` tool for project-wide view
607
- - ✅ AGENTS.md updated with examples
608
-
609
- **Phase 4 (Integration)**:
610
- - ✅ CLI, MCP, Web all use same core implementation
611
- - ✅ Consistent output across interfaces
612
- - ✅ Documentation updated
613
- - ✅ All tests pass