@leanspec/ui 0.2.5 → 0.2.6-dev.20251125015611

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 (695) 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/node_modules/.pnpm/source-map@0.8.0-beta.0/node_modules/source-map/package.json +95 -0
  17. package/.next/standalone/node_modules/.pnpm/tiktoken@1.0.22/node_modules/tiktoken/tiktoken_bg.wasm +0 -0
  18. package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
  19. package/.next/standalone/packages/ui/.next/app-path-routes-manifest.json +13 -1
  20. package/.next/standalone/packages/ui/.next/build-manifest.json +6 -6
  21. package/.next/standalone/packages/ui/.next/prerender-manifest.json +6 -6
  22. package/.next/standalone/packages/ui/.next/required-server-files.json +4 -4
  23. package/.next/standalone/packages/ui/.next/routes-manifest.json +96 -3
  24. package/.next/standalone/packages/ui/.next/server/app/_global-error/page/build-manifest.json +4 -4
  25. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js +1 -1
  26. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js.nft.json +1 -1
  27. package/.next/standalone/packages/ui/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/packages/ui/.next/server/app/_global-error.html +2 -2
  29. package/.next/standalone/packages/ui/.next/server/app/_global-error.rsc +1 -1
  30. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  31. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  32. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  33. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  34. package/.next/standalone/packages/ui/.next/server/app/_not-found/page/build-manifest.json +4 -4
  35. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js +3 -3
  36. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  37. package/.next/standalone/packages/ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  38. package/.next/standalone/packages/ui/.next/server/app/_not-found.html +2 -2
  39. package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +21 -20
  40. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +21 -20
  41. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +26 -25
  42. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  43. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  44. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +6 -6
  45. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route/app-paths-manifest.json +3 -0
  46. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route/build-manifest.json +11 -0
  47. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js +6 -0
  48. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js.nft.json +1 -0
  49. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route_client-reference-manifest.js +2 -0
  50. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route/app-paths-manifest.json +3 -0
  51. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route/build-manifest.json +11 -0
  52. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route/server-reference-manifest.json +4 -0
  53. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js +6 -0
  54. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.map +5 -0
  55. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.nft.json +1 -0
  56. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route_client-reference-manifest.js +2 -0
  57. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route/app-paths-manifest.json +3 -0
  58. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route/build-manifest.json +11 -0
  59. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route/server-reference-manifest.json +4 -0
  60. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js +6 -0
  61. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.map +5 -0
  62. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.nft.json +1 -0
  63. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route_client-reference-manifest.js +2 -0
  64. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route/app-paths-manifest.json +3 -0
  65. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route/build-manifest.json +11 -0
  66. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route/server-reference-manifest.json +4 -0
  67. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js +6 -0
  68. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.map +5 -0
  69. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.nft.json +1 -0
  70. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route_client-reference-manifest.js +2 -0
  71. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route/app-paths-manifest.json +3 -0
  72. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route/build-manifest.json +11 -0
  73. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route/server-reference-manifest.json +4 -0
  74. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js +8 -0
  75. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.map +5 -0
  76. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -0
  77. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route_client-reference-manifest.js +2 -0
  78. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route/app-paths-manifest.json +3 -0
  79. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route/build-manifest.json +11 -0
  80. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route/server-reference-manifest.json +4 -0
  81. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js +9 -0
  82. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.map +5 -0
  83. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.nft.json +1 -0
  84. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route_client-reference-manifest.js +2 -0
  85. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route/app-paths-manifest.json +3 -0
  86. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route/build-manifest.json +11 -0
  87. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route/server-reference-manifest.json +4 -0
  88. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js +8 -0
  89. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.map +5 -0
  90. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.nft.json +1 -0
  91. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route_client-reference-manifest.js +2 -0
  92. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js +4 -2
  93. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
  94. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route/app-paths-manifest.json +3 -0
  95. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route/build-manifest.json +11 -0
  96. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route/server-reference-manifest.json +4 -0
  97. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js +8 -0
  98. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.map +5 -0
  99. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.nft.json +1 -0
  100. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route_client-reference-manifest.js +2 -0
  101. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js +3 -2
  102. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
  103. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js +4 -2
  104. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
  105. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js +4 -2
  106. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
  107. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js +4 -2
  108. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
  109. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route/app-paths-manifest.json +3 -0
  110. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route/build-manifest.json +11 -0
  111. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route/server-reference-manifest.json +4 -0
  112. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js +8 -0
  113. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.map +5 -0
  114. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -0
  115. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route_client-reference-manifest.js +2 -0
  116. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js +4 -2
  117. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
  118. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js +4 -2
  119. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
  120. package/.next/standalone/packages/ui/.next/server/app/page/build-manifest.json +4 -4
  121. package/.next/standalone/packages/ui/.next/server/app/page.js +3 -3
  122. package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
  123. package/.next/standalone/packages/ui/.next/server/app/page_client-reference-manifest.js +1 -1
  124. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page/app-paths-manifest.json +3 -0
  125. package/.next/standalone/packages/ui/.next/server/app/{board → projects/[projectId]}/page/build-manifest.json +4 -4
  126. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page/server-reference-manifest.json +4 -0
  127. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js +21 -0
  128. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.map +5 -0
  129. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -0
  130. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +2 -0
  131. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page/app-paths-manifest.json +3 -0
  132. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page/build-manifest.json +18 -0
  133. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page/next-font-manifest.json +6 -0
  134. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page/react-loadable-manifest.json +1 -0
  135. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page/server-reference-manifest.json +4 -0
  136. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js +21 -0
  137. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.map +5 -0
  138. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -0
  139. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page_client-reference-manifest.js +2 -0
  140. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page/app-paths-manifest.json +3 -0
  141. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page/build-manifest.json +18 -0
  142. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page/next-font-manifest.json +6 -0
  143. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page/react-loadable-manifest.json +1 -0
  144. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page/server-reference-manifest.json +4 -0
  145. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js +20 -0
  146. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.map +5 -0
  147. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -0
  148. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page_client-reference-manifest.js +2 -0
  149. package/.next/standalone/packages/ui/.next/server/app/projects/page/app-paths-manifest.json +3 -0
  150. package/.next/standalone/packages/ui/.next/server/app/projects/page/build-manifest.json +18 -0
  151. package/.next/standalone/packages/ui/.next/server/app/projects/page/next-font-manifest.json +6 -0
  152. package/.next/standalone/packages/ui/.next/server/app/projects/page/react-loadable-manifest.json +1 -0
  153. package/.next/standalone/packages/ui/.next/server/app/projects/page/server-reference-manifest.json +4 -0
  154. package/.next/standalone/packages/ui/.next/server/app/{board → projects}/page.js +9 -10
  155. package/.next/standalone/packages/ui/.next/server/app/projects/page.js.map +5 -0
  156. package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -0
  157. package/.next/standalone/packages/ui/.next/server/app/projects/page_client-reference-manifest.js +2 -0
  158. package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -0
  159. package/.next/standalone/packages/ui/.next/server/app/{board.meta → projects.meta} +3 -3
  160. package/.next/standalone/packages/ui/.next/server/app/projects.rsc +34 -0
  161. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +34 -0
  162. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +27 -0
  163. package/.next/standalone/packages/ui/.next/server/app/{board.segments → projects.segments}/_tree.segment.rsc +3 -3
  164. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +9 -0
  165. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +4 -0
  166. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page/build-manifest.json +4 -4
  167. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js +5 -5
  168. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
  169. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
  170. package/.next/standalone/packages/ui/.next/server/app/specs/page/build-manifest.json +4 -4
  171. package/.next/standalone/packages/ui/.next/server/app/specs/page.js +3 -3
  172. package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
  173. package/.next/standalone/packages/ui/.next/server/app/specs/page_client-reference-manifest.js +1 -1
  174. package/.next/standalone/packages/ui/.next/server/app/stats/page/build-manifest.json +4 -4
  175. package/.next/standalone/packages/ui/.next/server/app/stats/page.js +3 -3
  176. package/.next/standalone/packages/ui/.next/server/app/stats/page.js.nft.json +1 -1
  177. package/.next/standalone/packages/ui/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  178. package/.next/standalone/packages/ui/.next/server/app-paths-manifest.json +13 -1
  179. package/.next/standalone/packages/ui/.next/server/chunks/6681a__next-internal_server_app_api_projects_[id]_specs_[spec]_route_actions_d018d9e0.js +3 -0
  180. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_local-projects_[id]_route_actions_664abe9c.js +3 -0
  181. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_local-projects_discover_route_actions_e6ec3fa7.js +3 -0
  182. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_stats_route_actions_a0bb04a8.js +3 -0
  183. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_specs_[id]_status_route_actions_5d700407.js +3 -0
  184. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0fbfea15._.js +3 -0
  185. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__126dea7b._.js +3 -0
  186. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__1f037512._.js +3 -0
  187. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3559376c._.js +21 -0
  188. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__548e27d4._.js +3 -0
  189. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__65667b70._.js +3 -0
  190. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__675a763e._.js +3 -0
  191. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__803d07f0._.js +3 -0
  192. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8075fe29._.js +3 -0
  193. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8233e09b._.js +3 -0
  194. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__84cdc14a._.js +3 -0
  195. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9ce722b4._.js +3 -0
  196. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__a2d7cbed._.js +3 -0
  197. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__aa677b0d._.js +3 -0
  198. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__ac744182._.js +3 -0
  199. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__bb9fca84._.js +4 -0
  200. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__bdc3963a._.js +3 -0
  201. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f5c6d6b8._.js +3 -0
  202. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__fb91986f._.js +3 -0
  203. package/.next/standalone/packages/ui/.next/server/chunks/e0876_tiktoken_3efea2dc._.js +3 -0
  204. package/.next/standalone/packages/ui/.next/server/chunks/f825c_server_app_api_local-projects_list-directory_route_actions_d620ec1a.js +3 -0
  205. package/.next/standalone/packages/ui/.next/server/chunks/f825c_server_app_api_projects_[id]_specs_[spec]_status_route_actions_e9f1bdc5.js +3 -0
  206. package/.next/standalone/packages/ui/.next/server/chunks/node_modules__pnpm_731b55aa._.js +3 -0
  207. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_local-projects_route_actions_9142d5ad.js +3 -0
  208. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_projects_[id]_route_actions_bff49675.js +3 -0
  209. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_db_index_ts_556307fa._.js +64 -5
  210. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_0bd881ee._.js +3 -0
  211. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_baa0160d._.js +3 -0
  212. package/.next/standalone/packages/ui/.next/server/chunks/ssr/38a22_sonner_dist_index_mjs_207730fe._.js +3 -0
  213. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_a5b58449._.js → 6e9bd_next_dist_df5dcbe9._.js} +2 -2
  214. package/.next/standalone/packages/ui/.next/server/chunks/ssr/730ea_ui__next-internal_server_app_projects_[projectId]_specs_page_actions_82e32fe4.js +3 -0
  215. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__01bfc8ff._.js +3 -0
  216. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__1d0c2012._.js +1 -1
  217. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__4ec37765._.js +3 -0
  218. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__1af33d49._.js → [root-of-the-server]__50122e7e._.js} +2 -2
  219. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__5382b397._.js +3 -0
  220. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__73f60f12._.js +7 -0
  221. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__7f55abaa._.js +1 -1
  222. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__88a691ee._.js +3 -0
  223. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a7ae8552._.js +7 -0
  224. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__bdbbba01._.js +3 -0
  225. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__c592f5d1._.js +3 -0
  226. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__cc589a54._.js +3 -0
  227. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ec5b96a5._.js +3 -0
  228. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{[root-of-the-server]__e5891e5a._.js → [root-of-the-server]__fd80e4dd._.js} +2 -2
  229. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_000dd317._.js +1 -1
  230. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_196b5a83._.js +3 -0
  231. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_39562b2a._.js +4 -0
  232. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_3b617676._.js +1 -1
  233. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_4129cc0f._.js +3 -0
  234. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_6174313a._.js +3 -0
  235. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_6e4dd8b6._.js +3 -0
  236. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_85effc18._.js +4 -0
  237. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ad8c1e99._.js +1 -1
  238. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_bae6d2b8._.js +4 -0
  239. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_c2f54661._.js +5 -0
  240. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_e1889307._.js +3 -0
  241. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_4f2c4868._.js → _fdd7780b._.js} +3 -3
  242. package/.next/standalone/packages/ui/.next/server/chunks/ssr/f825c_server_app_projects_[projectId]_specs_[specId]_page_actions_22d9c35e.js +3 -0
  243. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_af9d3830._.js +3 -0
  244. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_projects_[projectId]_page_actions_f2986585.js +3 -0
  245. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_projects_page_actions_715940ea.js +3 -0
  246. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_loading_tsx_9304a706._.js +3 -0
  247. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_[projectId]_be242d6c._.js +3 -0
  248. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_[projectId]_project-context-syncer_tsx_7954ea3b._.js +3 -0
  249. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_page_tsx_6e166c8e._.js +3 -0
  250. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_specs_specs-client_tsx_0bb8f8f8._.js +3 -0
  251. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_specs-nav-sidebar_tsx_8237ed13._.js +3 -0
  252. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_ui_select_tsx_7e21d40f._.js +3 -0
  253. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_lib_specs_sources_database-source_ts_f7186c2a._.js +60 -1
  254. package/.next/standalone/packages/ui/.next/server/middleware-build-manifest.js +4 -4
  255. package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
  256. package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
  257. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
  258. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
  259. package/.next/standalone/packages/ui/.next/static/chunks/07f48b316e895080.js +1 -0
  260. package/.next/standalone/packages/ui/.next/static/chunks/0a7be410b438418a.js +1 -0
  261. package/.next/standalone/packages/ui/.next/static/chunks/1089ca88f6bef846.js +1 -0
  262. package/.next/standalone/packages/ui/.next/static/chunks/17471c87082c392c.js +5 -0
  263. package/.next/standalone/packages/ui/.next/static/chunks/220ba5cb8fe4dd69.js +1 -0
  264. package/.next/standalone/packages/ui/.next/static/chunks/35ccd3286e538bd2.js +1 -0
  265. package/.next/standalone/packages/ui/.next/static/chunks/571033caca823138.js +1 -0
  266. package/.next/standalone/packages/ui/.next/static/chunks/5a6fc30cd64085b4.css +1 -0
  267. package/.next/standalone/packages/ui/.next/static/chunks/843e1dfdc28e1385.js +1 -0
  268. package/.next/standalone/packages/ui/.next/static/chunks/9dad7fd31627df80.js +1 -0
  269. package/.next/standalone/packages/ui/.next/static/chunks/{f2151fb88f8fc70a.js → a055d4b2866ff8d4.js} +1 -1
  270. package/.next/standalone/packages/ui/.next/static/chunks/afb7c5a4255f4081.js +3 -0
  271. package/.next/standalone/packages/ui/.next/static/chunks/{c557ac675be79771.js → b760a3a9c2c8be28.js} +1 -1
  272. package/.next/standalone/packages/ui/.next/static/chunks/dcdd95180149fa10.js +1 -0
  273. package/.next/standalone/packages/ui/.next/static/chunks/f9db24028d8c058e.js +1 -0
  274. package/.next/standalone/packages/ui/.next/static/chunks/fb640f50455ba34f.js +1 -0
  275. package/.next/standalone/packages/ui/.next/static/chunks/{turbopack-7450632b40b2e378.js → turbopack-b9690cacbf9fe48c.js} +1 -1
  276. package/.next/standalone/packages/ui/bin/ui.js +17 -7
  277. package/.next/standalone/packages/ui/package.json +4 -2
  278. package/.next/standalone/packages/ui/server.js +1 -1
  279. package/.next/standalone/packages/ui/src/app/api/local-projects/[id]/route.ts +117 -0
  280. package/.next/standalone/packages/ui/src/app/api/local-projects/discover/route.ts +41 -0
  281. package/.next/standalone/packages/ui/src/app/api/local-projects/list-directory/route.ts +38 -0
  282. package/.next/standalone/packages/ui/src/app/api/local-projects/route.ts +63 -0
  283. package/.next/standalone/packages/ui/src/app/api/projects/[id]/route.ts +97 -0
  284. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/route.ts +38 -0
  285. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/[spec]/status/route.ts +97 -0
  286. package/.next/standalone/packages/ui/src/app/api/projects/[id]/specs/route.ts +7 -0
  287. package/.next/standalone/packages/ui/{dist/standalone/packages/web/src/app/api → src/app/api/projects/[id]}/stats/route.ts +7 -7
  288. package/.next/standalone/packages/ui/src/app/api/projects/route.ts +48 -1
  289. package/.next/standalone/packages/ui/src/app/api/specs/[id]/status/route.ts +122 -0
  290. package/.next/standalone/packages/ui/src/app/dashboard-client.tsx +67 -6
  291. package/.next/standalone/packages/ui/src/app/globals.css +37 -0
  292. package/.next/standalone/packages/ui/src/app/layout.tsx +18 -14
  293. package/.next/standalone/packages/ui/src/app/not-found.tsx +1 -1
  294. package/.next/standalone/packages/ui/src/app/projects/[projectId]/layout.tsx +18 -0
  295. package/.next/standalone/packages/ui/src/app/projects/[projectId]/page.tsx +10 -0
  296. package/.next/standalone/packages/ui/src/app/projects/[projectId]/project-context-syncer.tsx +16 -0
  297. package/.next/standalone/packages/ui/{dist/standalone/packages/web/src/app/specs/[id] → src/app/projects/[projectId]/specs/[specId]}/page.tsx +7 -16
  298. package/.next/standalone/packages/ui/src/app/projects/[projectId]/specs/page.tsx +20 -0
  299. package/.next/standalone/packages/ui/src/app/projects/page.tsx +156 -0
  300. package/.next/standalone/packages/ui/src/app/specs/page.tsx +2 -2
  301. package/.next/standalone/packages/ui/src/app/specs/specs-client.tsx +495 -223
  302. package/.next/standalone/packages/ui/src/components/create-project-dialog.tsx +139 -0
  303. package/.next/standalone/packages/ui/src/components/directory-picker.tsx +191 -0
  304. package/.next/standalone/packages/ui/src/components/main-sidebar.tsx +4 -0
  305. package/.next/standalone/packages/ui/src/components/project-switcher.tsx +139 -0
  306. package/.next/standalone/packages/ui/src/components/spec-detail-client.tsx +71 -27
  307. package/.next/standalone/packages/ui/src/components/table-of-contents.tsx +56 -37
  308. package/.next/standalone/packages/ui/src/components/ui/dropdown-menu.tsx +200 -0
  309. package/.next/standalone/packages/ui/src/components/ui/popover.tsx +31 -0
  310. package/.next/standalone/packages/ui/src/contexts/project-context.tsx +229 -0
  311. package/.next/standalone/packages/ui/src/lib/db/index.ts +100 -0
  312. package/.next/standalone/packages/ui/src/lib/db/service-queries.ts +23 -0
  313. package/.next/standalone/packages/ui/src/lib/projects/index.ts +7 -0
  314. package/.next/standalone/packages/ui/src/lib/projects/registry.ts +467 -0
  315. package/.next/standalone/packages/ui/src/lib/projects/types.ts +37 -0
  316. package/.next/standalone/packages/ui/src/lib/specs/service.ts +13 -1
  317. package/.next/standalone/packages/ui/src/lib/specs/sources/filesystem-source.ts +46 -6
  318. package/.next/standalone/packages/ui/src/lib/specs/sources/multi-project-source.ts +258 -0
  319. package/.next/standalone/packages/ui/tsconfig.json +2 -1
  320. package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
  321. package/.next/standalone/packages/ui/vitest.config.ts +1 -0
  322. package/.next/static/chunks/07f48b316e895080.js +1 -0
  323. package/.next/static/chunks/0a7be410b438418a.js +1 -0
  324. package/.next/static/chunks/1089ca88f6bef846.js +1 -0
  325. package/.next/static/chunks/17471c87082c392c.js +5 -0
  326. package/.next/static/chunks/220ba5cb8fe4dd69.js +1 -0
  327. package/.next/static/chunks/35ccd3286e538bd2.js +1 -0
  328. package/.next/static/chunks/571033caca823138.js +1 -0
  329. package/.next/static/chunks/5a6fc30cd64085b4.css +1 -0
  330. package/.next/static/chunks/843e1dfdc28e1385.js +1 -0
  331. package/.next/static/chunks/9dad7fd31627df80.js +1 -0
  332. package/.next/static/chunks/{f2151fb88f8fc70a.js → a055d4b2866ff8d4.js} +1 -1
  333. package/.next/static/chunks/afb7c5a4255f4081.js +3 -0
  334. package/.next/static/chunks/{c557ac675be79771.js → b760a3a9c2c8be28.js} +1 -1
  335. package/.next/static/chunks/dcdd95180149fa10.js +1 -0
  336. package/.next/static/chunks/f9db24028d8c058e.js +1 -0
  337. package/.next/static/chunks/fb640f50455ba34f.js +1 -0
  338. package/.next/static/chunks/{turbopack-7450632b40b2e378.js → turbopack-b9690cacbf9fe48c.js} +1 -1
  339. package/bin/ui.js +17 -7
  340. package/package.json +4 -2
  341. 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
  342. package/.next/standalone/packages/ui/.next/server/app/board/page/app-paths-manifest.json +0 -3
  343. package/.next/standalone/packages/ui/.next/server/app/board/page.js.nft.json +0 -1
  344. package/.next/standalone/packages/ui/.next/server/app/board/page_client-reference-manifest.js +0 -2
  345. package/.next/standalone/packages/ui/.next/server/app/board.html +0 -1
  346. package/.next/standalone/packages/ui/.next/server/app/board.rsc +0 -41
  347. package/.next/standalone/packages/ui/.next/server/app/board.segments/_full.segment.rsc +0 -41
  348. package/.next/standalone/packages/ui/.next/server/app/board.segments/_index.segment.rsc +0 -26
  349. package/.next/standalone/packages/ui/.next/server/app/board.segments/board/__PAGE__.segment.rsc +0 -9
  350. package/.next/standalone/packages/ui/.next/server/app/board.segments/board.segment.rsc +0 -8
  351. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__003ee184._.js +0 -3
  352. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__21119265._.js +0 -3
  353. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__482b093a._.js +0 -21
  354. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__6ec5cafb._.js +0 -3
  355. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__7acaa6ec._.js +0 -3
  356. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__a2c55ffb._.js +0 -3
  357. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__d169fe70._.js +0 -3
  358. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f4ea2112._.js +0 -3
  359. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__3fffdda5._.js +0 -3
  360. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__4b343655._.js +0 -3
  361. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__68015eee._.js +0 -3
  362. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b161f033._.js +0 -7
  363. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__b50fa24c._.js +0 -7
  364. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__c65aedd0._.js +0 -3
  365. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__eefaabd3._.js +0 -3
  366. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_64a39e38._.js +0 -3
  367. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_66209e84._.js +0 -3
  368. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_a527620e._.js +0 -3
  369. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_d7e4bd50._.js +0 -5
  370. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f8b2190a._.js +0 -3
  371. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_b8ff10b9._.js +0 -3
  372. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_board_page_actions_c5a3cb3c.js +0 -3
  373. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_board_loading_tsx_03dfd70d._.js +0 -3
  374. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_board_page_tsx_9415dc46._.js +0 -3
  375. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_ui_input_tsx_190a7701._.js +0 -3
  376. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_d725c10c._.js +0 -3
  377. package/.next/standalone/packages/ui/.next/static/chunks/107411d1a2f4b31d.js +0 -1
  378. package/.next/standalone/packages/ui/.next/static/chunks/17ac52d909def83e.js +0 -1
  379. package/.next/standalone/packages/ui/.next/static/chunks/212881511f73fc12.js +0 -5
  380. package/.next/standalone/packages/ui/.next/static/chunks/5057c3e1e7e13ca3.js +0 -1
  381. package/.next/standalone/packages/ui/.next/static/chunks/5d646f493d4c6928.js +0 -1
  382. package/.next/standalone/packages/ui/.next/static/chunks/88f695d32910a4ac.js +0 -1
  383. package/.next/standalone/packages/ui/.next/static/chunks/aa47b212786d8695.js +0 -1
  384. package/.next/standalone/packages/ui/.next/static/chunks/ae04dcd433be6dab.js +0 -1
  385. package/.next/standalone/packages/ui/.next/static/chunks/c210559fdfe60fef.js +0 -1
  386. package/.next/standalone/packages/ui/.next/static/chunks/df1731c03abf1aee.css +0 -1
  387. package/.next/standalone/packages/ui/.next/static/chunks/e237e00fd3a84178.js +0 -3
  388. package/.next/standalone/packages/ui/dist/standalone/packages/web/README.md +0 -196
  389. package/.next/standalone/packages/ui/dist/standalone/packages/web/components.json +0 -20
  390. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/0000_reflective_thena.sql +0 -59
  391. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/0001_fresh_carmella_unuscione.sql +0 -1
  392. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/0000_snapshot.json +0 -427
  393. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/0001_snapshot.json +0 -436
  394. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle/meta/_journal.json +0 -20
  395. package/.next/standalone/packages/ui/dist/standalone/packages/web/drizzle.config.ts +0 -10
  396. package/.next/standalone/packages/ui/dist/standalone/packages/web/eslint.config.mjs +0 -18
  397. package/.next/standalone/packages/ui/dist/standalone/packages/web/leanspec.db +0 -0
  398. package/.next/standalone/packages/ui/dist/standalone/packages/web/next.config.ts +0 -7
  399. package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +0 -83
  400. package/.next/standalone/packages/ui/dist/standalone/packages/web/postcss.config.mjs +0 -8
  401. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/f864aa7e7061c0600e35cf3d879b27cf.txt +0 -1
  402. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/favicon.ico +0 -0
  403. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/file.svg +0 -1
  404. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/github-mark-white.svg +0 -1
  405. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/github-mark.svg +0 -1
  406. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/globe.svg +0 -1
  407. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/icon.svg +0 -7
  408. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/logo-dark-bg.svg +0 -17
  409. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/logo-with-bg.svg +0 -17
  410. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/logo.svg +0 -17
  411. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/next.svg +0 -1
  412. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/vercel.svg +0 -1
  413. package/.next/standalone/packages/ui/dist/standalone/packages/web/public/window.svg +0 -1
  414. package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +0 -44
  415. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/projects/[id]/specs/route.ts +0 -23
  416. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/projects/route.ts +0 -19
  417. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/revalidate/route.ts +0 -63
  418. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.test.ts +0 -51
  419. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.ts +0 -171
  420. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/route.ts +0 -36
  421. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/api/specs/[id]/subspecs/[file]/route.ts +0 -46
  422. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/board-client.tsx +0 -162
  423. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/loading.tsx +0 -43
  424. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/board/page.tsx +0 -18
  425. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/dashboard-client.tsx +0 -364
  426. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/error.tsx +0 -43
  427. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/globals.css +0 -531
  428. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/home-client.tsx +0 -277
  429. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/layout.tsx +0 -70
  430. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/loading.tsx +0 -87
  431. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/not-found.tsx +0 -27
  432. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/page.tsx +0 -18
  433. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/[id]/loading.tsx +0 -5
  434. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/page.tsx +0 -18
  435. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/specs/specs-client.tsx +0 -425
  436. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/stats/page.tsx +0 -18
  437. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/app/stats/stats-client.tsx +0 -283
  438. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/back-to-top.tsx +0 -46
  439. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/empty-state.tsx +0 -52
  440. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/main-sidebar.tsx +0 -175
  441. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/markdown-link.test.ts +0 -96
  442. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/markdown-link.tsx +0 -95
  443. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/navigation.tsx +0 -210
  444. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/priority-badge.tsx +0 -53
  445. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/quick-search.tsx +0 -180
  446. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/skeletons.tsx +0 -119
  447. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-dependency-graph.tsx +0 -369
  448. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-client.tsx +0 -372
  449. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-loading-shell.tsx +0 -42
  450. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-detail-wrapper.tsx +0 -70
  451. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-metadata.tsx +0 -136
  452. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-sidebar.tsx +0 -127
  453. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/spec-timeline.tsx +0 -186
  454. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/specs-nav-sidebar.tsx +0 -561
  455. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/status-badge.tsx +0 -53
  456. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/sub-spec-tabs.tsx +0 -143
  457. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/table-of-contents.tsx +0 -130
  458. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/theme-provider.tsx +0 -11
  459. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/theme-toggle.tsx +0 -37
  460. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/avatar.tsx +0 -50
  461. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/badge.tsx +0 -36
  462. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/breadcrumb.tsx +0 -110
  463. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/button.tsx +0 -57
  464. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/card.tsx +0 -76
  465. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/command.tsx +0 -153
  466. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/dialog.tsx +0 -122
  467. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/input.tsx +0 -24
  468. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/select.tsx +0 -159
  469. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/separator.tsx +0 -31
  470. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/skeleton.tsx +0 -15
  471. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/tabs.tsx +0 -55
  472. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/toast.tsx +0 -30
  473. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/components/ui/tooltip.tsx +0 -32
  474. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/date-utils.ts +0 -76
  475. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/index.ts +0 -42
  476. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/migrate.ts +0 -18
  477. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/queries.ts +0 -114
  478. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/schema.ts +0 -123
  479. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/seed.ts +0 -156
  480. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/db/service-queries.ts +0 -216
  481. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/dependency-graph.ts +0 -105
  482. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/service.ts +0 -120
  483. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/sources/database-source.ts +0 -94
  484. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/sources/filesystem-source.ts +0 -249
  485. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/specs/types.ts +0 -55
  486. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/stores/specs-sidebar-store.ts +0 -152
  487. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/sub-specs.ts +0 -171
  488. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/lib/utils.ts +0 -17
  489. package/.next/standalone/packages/ui/dist/standalone/packages/web/src/types/specs.ts +0 -18
  490. package/.next/standalone/packages/ui/dist/standalone/packages/web/tailwind.config.ts +0 -58
  491. package/.next/standalone/packages/ui/dist/standalone/packages/web/tsconfig.json +0 -34
  492. package/.next/standalone/packages/ui/dist/standalone/packages/web/tsconfig.tsbuildinfo +0 -1
  493. package/.next/standalone/packages/ui/dist/standalone/packages/web/vitest.config.ts +0 -14
  494. package/.next/standalone/packages/ui/dist/standalone/specs/014-complete-custom-frontmatter/README.md +0 -175
  495. package/.next/standalone/packages/ui/dist/standalone/specs/016-github-action/README.md +0 -317
  496. package/.next/standalone/packages/ui/dist/standalone/specs/017-vscode-extension/README.md +0 -261
  497. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CLI-DESIGN.md +0 -380
  498. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION-EXAMPLES.md +0 -230
  499. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION.md +0 -285
  500. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/IMPLEMENTATION.md +0 -358
  501. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/README.md +0 -303
  502. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/TESTING.md +0 -368
  503. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/VALIDATION-RULES.md +0 -327
  504. package/.next/standalone/packages/ui/dist/standalone/specs/024-pattern-aware-list-grouping/README.md +0 -117
  505. package/.next/standalone/packages/ui/dist/standalone/specs/025-template-config-updates/README.md +0 -73
  506. package/.next/standalone/packages/ui/dist/standalone/specs/026-init-pattern-selection/README.md +0 -109
  507. package/.next/standalone/packages/ui/dist/standalone/specs/034-copilot-slash-commands/README.md +0 -107
  508. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/ARCHITECTURE.md +0 -244
  509. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/IMPLEMENTATION.md +0 -429
  510. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +0 -306
  511. package/.next/standalone/packages/ui/dist/standalone/specs/036-pm-integrations/README.md +0 -158
  512. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-AI-ASSISTED.md +0 -359
  513. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-FULL-LIFECYCLE.md +0 -86
  514. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-REAL-FEATURE.md +0 -437
  515. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-SCRIPT.md +0 -365
  516. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-FINAL.md +0 -203
  517. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SESSION-2025-11-06.md +0 -174
  518. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SUMMARY.md +0 -156
  519. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/IMPLEMENTATION.md +0 -183
  520. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/MARKETING.md +0 -229
  521. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/NEXT-STEPS-DEMO.md +0 -243
  522. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/README.md +0 -217
  523. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/SESSION-2025-11-06.md +0 -166
  524. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/TESTING.md +0 -126
  525. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/ACTUAL-IMPLEMENTATION.md +0 -108
  526. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/DESIGN.md +0 -382
  527. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/IMPLEMENTATION.md +0 -144
  528. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/RATIONALE.md +0 -146
  529. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/README.md +0 -208
  530. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/TESTING.md +0 -182
  531. package/.next/standalone/packages/ui/dist/standalone/specs/047-git-backfill-timestamps/README.md +0 -314
  532. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/FINDINGS.md +0 -113
  533. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/GUIDELINES.md +0 -237
  534. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/README.md +0 -149
  535. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-COMPARISONS.md +0 -175
  536. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-CONSTRAINTS.md +0 -254
  537. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/FIRST-PRINCIPLES.md +0 -376
  538. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-ROADMAP.md +0 -240
  539. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-TOOLS.md +0 -175
  540. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/README.md +0 -374
  541. package/.next/standalone/packages/ui/dist/standalone/specs/051-docs-system-prompt-principles/README.md +0 -339
  542. package/.next/standalone/packages/ui/dist/standalone/specs/052-branding-assets/README.md +0 -128
  543. package/.next/standalone/packages/ui/dist/standalone/specs/053-spec-assets-philosophy/README.md +0 -97
  544. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/DESIGN-DECISIONS.md +0 -93
  545. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/OUTPUT-FORMAT-SPEC.md +0 -146
  546. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/README.md +0 -175
  547. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART1.md +0 -397
  548. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART2.md +0 -342
  549. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS.md +0 -44
  550. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CHANGES.md +0 -150
  551. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CONCERNS-ANALYSIS.md +0 -351
  552. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/DOCS-ALIGNMENT-ANALYSIS.md +0 -238
  553. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/README.md +0 -280
  554. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-DRAFT.md +0 -372
  555. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-REFINED.md +0 -466
  556. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/AUDIT-RESULTS.md +0 -178
  557. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/README.md +0 -174
  558. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/README.md +0 -295
  559. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/VALIDATION-RESULTS.md +0 -487
  560. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/ANALYSIS.md +0 -241
  561. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/DESIGN.md +0 -279
  562. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/IMPLEMENTATION.md +0 -642
  563. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/NOTES.md +0 -125
  564. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/README.md +0 -286
  565. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/ARCHITECTURE.md +0 -392
  566. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/COMMANDS.md +0 -1002
  567. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/CONTEXT-ENGINEERING.md +0 -411
  568. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/IMPLEMENTATION.md +0 -812
  569. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/README.md +0 -504
  570. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/TESTING.md +0 -724
  571. package/.next/standalone/packages/ui/dist/standalone/specs/060-core-concepts-coherence/README.md +0 -125
  572. package/.next/standalone/packages/ui/dist/standalone/specs/061-ai-assisted-spec-writing/README.md +0 -299
  573. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/IMPLEMENTATION-PLAN.md +0 -174
  574. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PAGE-SPECIFICATIONS.md +0 -265
  575. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PROBLEM-ANALYSIS.md +0 -36
  576. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/README.md +0 -243
  577. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/SOLUTION-DESIGN.md +0 -82
  578. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/DESIGN.md +0 -338
  579. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/EXAMPLES.md +0 -354
  580. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/IMPLEMENTATION.md +0 -189
  581. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/README.md +0 -119
  582. package/.next/standalone/packages/ui/dist/standalone/specs/064-docs-site-zh-translation/README.md +0 -170
  583. package/.next/standalone/packages/ui/dist/standalone/specs/065-v03-planning/README.md +0 -158
  584. package/.next/standalone/packages/ui/dist/standalone/specs/066-context-economy-thresholds-refinement/README.md +0 -842
  585. package/.next/standalone/packages/ui/dist/standalone/specs/067-monorepo-core-extraction/README.md +0 -358
  586. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/DESIGN.md +0 -444
  587. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/README.md +0 -357
  588. package/.next/standalone/packages/ui/dist/standalone/specs/069-token-counting-utils/README.md +0 -551
  589. package/.next/standalone/packages/ui/dist/standalone/specs/070-mcp-token-counting-tool/README.md +0 -372
  590. package/.next/standalone/packages/ui/dist/standalone/specs/071-simplified-token-validation/README.md +0 -489
  591. package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +0 -287
  592. package/.next/standalone/packages/ui/dist/standalone/specs/073-template-engine-agents-md/README.md +0 -323
  593. package/.next/standalone/packages/ui/dist/standalone/specs/074-content-at-creation/README.md +0 -136
  594. package/.next/standalone/packages/ui/dist/standalone/specs/075-intelligent-search-engine/README.md +0 -399
  595. package/.next/standalone/packages/ui/dist/standalone/specs/076-programmatic-spec-relationships/README.md +0 -301
  596. package/.next/standalone/packages/ui/dist/standalone/specs/077-archiving-strategy/README.md +0 -235
  597. package/.next/standalone/packages/ui/dist/standalone/specs/078-sub-spec-template-system/README.md +0 -303
  598. package/.next/standalone/packages/ui/dist/standalone/specs/079-cli-alphabetical-organization/README.md +0 -196
  599. package/.next/standalone/packages/ui/dist/standalone/specs/080-mcp-server-modular-architecture/README.md +0 -388
  600. package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +0 -825
  601. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DATABASE.md +0 -111
  602. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DEPLOYMENT.md +0 -69
  603. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/FILESYSTEM.md +0 -77
  604. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/IMPLEMENTATION.md +0 -184
  605. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +0 -501
  606. package/.next/standalone/packages/ui/dist/standalone/specs/083-web-navigation-performance/README.md +0 -490
  607. package/.next/standalone/packages/ui/dist/standalone/specs/084-sub-spec-visibility-in-tools/README.md +0 -389
  608. package/.next/standalone/packages/ui/dist/standalone/specs/085-cli-relationship-commands/README.md +0 -920
  609. package/.next/standalone/packages/ui/dist/standalone/specs/086-template-component-deduplication/README.md +0 -146
  610. package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +0 -421
  611. package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +0 -106
  612. package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +0 -126
  613. package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +0 -131
  614. package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +0 -254
  615. package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +0 -152
  616. package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +0 -65
  617. package/.next/standalone/packages/ui/dist/standalone/specs/094-ai-chatbot-web-integration/README.md +0 -332
  618. package/.next/standalone/packages/ui/dist/standalone/specs/095-pr-migration-verification/README.md +0 -339
  619. package/.next/standalone/packages/ui/dist/standalone/specs/096-docs-beginner-first-reorg/README.md +0 -399
  620. package/.next/standalone/packages/ui/dist/standalone/specs/097-dag-visualization-library/README.md +0 -525
  621. package/.next/standalone/packages/ui/dist/standalone/specs/098-github-multi-project-integration/README.md +0 -387
  622. package/.next/standalone/packages/ui/dist/standalone/specs/099-enhanced-dependency-commands-cli-mcp/README.md +0 -613
  623. package/.next/standalone/packages/ui/dist/standalone/specs/100-release-process-typecheck-failure/README.md +0 -266
  624. package/.next/standalone/packages/ui/dist/standalone/specs/101-sidebar-scroll-position-drift/README.md +0 -100
  625. package/.next/standalone/packages/ui/dist/standalone/specs/102-mcp-wrapper-package/README.md +0 -172
  626. package/.next/standalone/packages/ui/dist/standalone/specs/archived/001-typescript-cli-migration/README.md +0 -37
  627. package/.next/standalone/packages/ui/dist/standalone/specs/archived/002-template-system-redesign/README.md +0 -60
  628. package/.next/standalone/packages/ui/dist/standalone/specs/archived/003-init-system-redesign/README.md +0 -113
  629. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/README.md +0 -69
  630. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/SUMMARY.md +0 -112
  631. package/.next/standalone/packages/ui/dist/standalone/specs/archived/005-structured-frontmatter/README.md +0 -229
  632. package/.next/standalone/packages/ui/dist/standalone/specs/archived/006-pm-visualization-tools/README.md +0 -406
  633. package/.next/standalone/packages/ui/dist/standalone/specs/archived/007-system-prompt-updates/README.md +0 -168
  634. package/.next/standalone/packages/ui/dist/standalone/specs/archived/008-commander-migration/README.md +0 -174
  635. package/.next/standalone/packages/ui/dist/standalone/specs/archived/009-cli-ux-enhancement/README.md +0 -212
  636. package/.next/standalone/packages/ui/dist/standalone/specs/archived/010-commands-refactor/README.md +0 -249
  637. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/README.md +0 -60
  638. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/TEST_SUMMARY.md +0 -139
  639. package/.next/standalone/packages/ui/dist/standalone/specs/archived/012-sub-spec-files/README.md +0 -722
  640. package/.next/standalone/packages/ui/dist/standalone/specs/archived/013-custom-spec-templates/README.md +0 -413
  641. package/.next/standalone/packages/ui/dist/standalone/specs/archived/015-npm-publishing/README.md +0 -255
  642. package/.next/standalone/packages/ui/dist/standalone/specs/archived/019-readme-improvement/README.md +0 -252
  643. package/.next/standalone/packages/ui/dist/standalone/specs/archived/020-documentation-website/README.md +0 -253
  644. package/.next/standalone/packages/ui/dist/standalone/specs/archived/021-docusaurus-vercel-migration/README.md +0 -612
  645. package/.next/standalone/packages/ui/dist/standalone/specs/archived/022-flexible-folder-structure/README.md +0 -794
  646. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/DESIGN.md +0 -834
  647. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/README.md +0 -255
  648. package/.next/standalone/packages/ui/dist/standalone/specs/archived/027-cli-ui-ux-optimization/README.md +0 -454
  649. package/.next/standalone/packages/ui/dist/standalone/specs/archived/028-cli-ui-modernization/README.md +0 -172
  650. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/IMPLEMENTATION.md +0 -152
  651. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/README.md +0 -95
  652. package/.next/standalone/packages/ui/dist/standalone/specs/archived/030-created-date-format-bug/README.md +0 -87
  653. package/.next/standalone/packages/ui/dist/standalone/specs/archived/031-gantt-ux-improvements/README.md +0 -230
  654. package/.next/standalone/packages/ui/dist/standalone/specs/archived/032-console-log-chalk-security/README.md +0 -89
  655. package/.next/standalone/packages/ui/dist/standalone/specs/archived/033-mcp-server/README.md +0 -89
  656. package/.next/standalone/packages/ui/dist/standalone/specs/archived/037-docs-overhaul/README.md +0 -166
  657. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-flat-structure-migration/README.md +0 -276
  658. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-mcp-frontmatter-bug-fix/README.md +0 -122
  659. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-simplify-viewer-commands/README.md +0 -198
  660. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-template-variable-sync/README.md +0 -192
  661. package/.next/standalone/packages/ui/dist/standalone/specs/archived/040-spec-viewer-commands/README.md +0 -171
  662. package/.next/standalone/packages/ui/dist/standalone/specs/archived/042-mcp-error-handling/README.md +0 -200
  663. package/.next/standalone/packages/ui/dist/standalone/specs/archived/044-spec-relationships-clarity/README.md +0 -317
  664. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/DESIGN.md +0 -276
  665. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/IMPLEMENTATION.md +0 -241
  666. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/README.md +0 -139
  667. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/TESTING.md +0 -328
  668. package/.next/standalone/packages/ui/dist/standalone/specs/archived/050-tool-redesign-first-principles/README.md +0 -400
  669. package/.next/standalone/packages/ui/package.json.backup +0 -119
  670. package/.next/standalone/packages/ui/src/app/board/board-client.tsx +0 -162
  671. package/.next/standalone/packages/ui/src/app/board/loading.tsx +0 -43
  672. package/.next/standalone/packages/ui/src/app/board/page.tsx +0 -18
  673. package/.next/static/chunks/107411d1a2f4b31d.js +0 -1
  674. package/.next/static/chunks/17ac52d909def83e.js +0 -1
  675. package/.next/static/chunks/212881511f73fc12.js +0 -5
  676. package/.next/static/chunks/5057c3e1e7e13ca3.js +0 -1
  677. package/.next/static/chunks/5d646f493d4c6928.js +0 -1
  678. package/.next/static/chunks/88f695d32910a4ac.js +0 -1
  679. package/.next/static/chunks/aa47b212786d8695.js +0 -1
  680. package/.next/static/chunks/ae04dcd433be6dab.js +0 -1
  681. package/.next/static/chunks/c210559fdfe60fef.js +0 -1
  682. package/.next/static/chunks/df1731c03abf1aee.css +0 -1
  683. package/.next/static/chunks/e237e00fd3a84178.js +0 -3
  684. /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
  685. /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
  686. /package/.next/standalone/packages/ui/.next/server/app/{board/page → api/local-projects/[id]/route}/server-reference-manifest.json +0 -0
  687. /package/.next/standalone/packages/ui/.next/server/app/{board/page.js.map → api/local-projects/[id]/route.js.map} +0 -0
  688. /package/.next/standalone/packages/ui/.next/server/app/{board → projects/[projectId]}/page/next-font-manifest.json +0 -0
  689. /package/.next/standalone/packages/ui/.next/server/app/{board → projects/[projectId]}/page/react-loadable-manifest.json +0 -0
  690. /package/.next/standalone/packages/ui/.next/static/{mY96Srm2xq4N3LlCirdvZ → q_RJXo9ZqWIVUq3kCY65L}/_buildManifest.js +0 -0
  691. /package/.next/standalone/packages/ui/.next/static/{mY96Srm2xq4N3LlCirdvZ → q_RJXo9ZqWIVUq3kCY65L}/_clientMiddlewareManifest.json +0 -0
  692. /package/.next/standalone/packages/ui/.next/static/{mY96Srm2xq4N3LlCirdvZ → q_RJXo9ZqWIVUq3kCY65L}/_ssgManifest.js +0 -0
  693. /package/.next/static/{mY96Srm2xq4N3LlCirdvZ → q_RJXo9ZqWIVUq3kCY65L}/_buildManifest.js +0 -0
  694. /package/.next/static/{mY96Srm2xq4N3LlCirdvZ → q_RJXo9ZqWIVUq3kCY65L}/_clientMiddlewareManifest.json +0 -0
  695. /package/.next/static/{mY96Srm2xq4N3LlCirdvZ → q_RJXo9ZqWIVUq3kCY65L}/_ssgManifest.js +0 -0
@@ -0,0 +1,3 @@
1
+ module.exports=[15929,90075,a=>{"use strict";var b=a.i(40352),c=a.i(36883),d=a.i(90073);function e(a,[b,c]){return Math.min(c,Math.max(b,a))}var f=a.i(59653),g=a.i(66965),h=a.i(17988),i=a.i(63375),j=a.i(53484),k=a.i(83644),l=a.i(41857),m=a.i(84228),n=a.i(99700),o=a.i(72311),p=a.i(7547),q=a.i(75655),r=a.i(78357),s=a.i(44293),t=a.i(17449),u=a.i(37276),v=a.i(41318),w=a.i(16164),x=a.i(51867),y=[" ","Enter","ArrowUp","ArrowDown"],z=[" ","Enter"],A="Select",[B,C,D]=(0,g.createCollection)(A),[E,F]=(0,i.createContextScope)(A,[D,o.createPopperScope]),G=(0,o.createPopperScope)(),[H,I]=E(A),[J,K]=E(A),L=a=>{let{__scopeSelect:d,children:e,open:f,defaultOpen:g,onOpenChange:h,value:i,defaultValue:k,onValueChange:l,dir:m,name:p,autoComplete:q,disabled:r,required:s,form:u}=a,v=G(d),[w,x]=c.useState(null),[y,z]=c.useState(null),[C,D]=c.useState(!1),E=(0,j.useDirection)(m),[F,I]=(0,t.useControllableState)({prop:f,defaultProp:g??!1,onChange:h,caller:A}),[K,L]=(0,t.useControllableState)({prop:i,defaultProp:k,onChange:l,caller:A}),M=c.useRef(null),N=!w||u||!!w.closest("form"),[O,P]=c.useState(new Set),Q=Array.from(O).map(a=>a.props.value).join(";");return(0,b.jsx)(o.Root,{...v,children:(0,b.jsxs)(H,{required:s,scope:d,trigger:w,onTriggerChange:x,valueNode:y,onValueNodeChange:z,valueNodeHasChildren:C,onValueNodeHasChildrenChange:D,contentId:(0,n.useId)(),value:K,onValueChange:L,open:F,onOpenChange:I,dir:E,triggerPointerDownPosRef:M,disabled:r,children:[(0,b.jsx)(B.Provider,{scope:d,children:(0,b.jsx)(J,{scope:a.__scopeSelect,onNativeOptionAdd:c.useCallback(a=>{P(b=>new Set(b).add(a))},[]),onNativeOptionRemove:c.useCallback(a=>{P(b=>{let c=new Set(b);return c.delete(a),c})},[]),children:e})}),N?(0,b.jsxs)(aw,{"aria-hidden":!0,required:s,tabIndex:-1,name:p,autoComplete:q,value:K,onChange:a=>L(a.target.value),disabled:r,form:u,children:[void 0===K?(0,b.jsx)("option",{value:""}):null,Array.from(O)]},Q):null]})})};L.displayName=A;var M="SelectTrigger",N=c.forwardRef((a,d)=>{let{__scopeSelect:e,disabled:g=!1,...i}=a,j=G(e),k=I(M,e),l=k.disabled||g,m=(0,h.useComposedRefs)(d,k.onTriggerChange),n=C(e),p=c.useRef("touch"),[r,s,t]=ay(a=>{let b=n().filter(a=>!a.disabled),c=b.find(a=>a.value===k.value),d=az(b,a,c);void 0!==d&&k.onValueChange(d.value)}),u=a=>{l||(k.onOpenChange(!0),t()),a&&(k.triggerPointerDownPosRef.current={x:Math.round(a.pageX),y:Math.round(a.pageY)})};return(0,b.jsx)(o.Anchor,{asChild:!0,...j,children:(0,b.jsx)(q.Primitive.button,{type:"button",role:"combobox","aria-controls":k.contentId,"aria-expanded":k.open,"aria-required":k.required,"aria-autocomplete":"none",dir:k.dir,"data-state":k.open?"open":"closed",disabled:l,"data-disabled":l?"":void 0,"data-placeholder":ax(k.value)?"":void 0,...i,ref:m,onClick:(0,f.composeEventHandlers)(i.onClick,a=>{a.currentTarget.focus(),"mouse"!==p.current&&u(a)}),onPointerDown:(0,f.composeEventHandlers)(i.onPointerDown,a=>{p.current=a.pointerType;let b=a.target;b.hasPointerCapture(a.pointerId)&&b.releasePointerCapture(a.pointerId),0===a.button&&!1===a.ctrlKey&&"mouse"===a.pointerType&&(u(a),a.preventDefault())}),onKeyDown:(0,f.composeEventHandlers)(i.onKeyDown,a=>{let b=""!==r.current;a.ctrlKey||a.altKey||a.metaKey||1!==a.key.length||s(a.key),(!b||" "!==a.key)&&y.includes(a.key)&&(u(),a.preventDefault())})})})});N.displayName=M;var O="SelectValue",P=c.forwardRef((a,c)=>{let{__scopeSelect:d,className:e,style:f,children:g,placeholder:i="",...j}=a,k=I(O,d),{onValueNodeHasChildrenChange:l}=k,m=void 0!==g,n=(0,h.useComposedRefs)(c,k.onValueNodeChange);return(0,u.useLayoutEffect)(()=>{l(m)},[l,m]),(0,b.jsx)(q.Primitive.span,{...j,ref:n,style:{pointerEvents:"none"},children:ax(k.value)?(0,b.jsx)(b.Fragment,{children:i}):g})});P.displayName=O;var Q=c.forwardRef((a,c)=>{let{__scopeSelect:d,children:e,...f}=a;return(0,b.jsx)(q.Primitive.span,{"aria-hidden":!0,...f,ref:c,children:e||"▼"})});Q.displayName="SelectIcon";var R=a=>(0,b.jsx)(p.Portal,{asChild:!0,...a});R.displayName="SelectPortal";var S="SelectContent",T=c.forwardRef((a,e)=>{let f=I(S,a.__scopeSelect),[g,h]=c.useState();return((0,u.useLayoutEffect)(()=>{h(new DocumentFragment)},[]),f.open)?(0,b.jsx)(X,{...a,ref:e}):g?d.createPortal((0,b.jsx)(U,{scope:a.__scopeSelect,children:(0,b.jsx)(B.Slot,{scope:a.__scopeSelect,children:(0,b.jsx)("div",{children:a.children})})}),g):null});T.displayName=S;var[U,V]=E(S),W=(0,r.createSlot)("SelectContent.RemoveScroll"),X=c.forwardRef((a,d)=>{let{__scopeSelect:e,position:g="item-aligned",onCloseAutoFocus:i,onEscapeKeyDown:j,onPointerDownOutside:n,side:o,sideOffset:p,align:q,alignOffset:r,arrowPadding:s,collisionBoundary:t,collisionPadding:u,sticky:v,hideWhenDetached:y,avoidCollisions:z,...A}=a,B=I(S,e),[D,E]=c.useState(null),[F,G]=c.useState(null),H=(0,h.useComposedRefs)(d,a=>E(a)),[J,K]=c.useState(null),[L,M]=c.useState(null),N=C(e),[O,P]=c.useState(!1),Q=c.useRef(!1);c.useEffect(()=>{if(D)return(0,w.hideOthers)(D)},[D]),(0,l.useFocusGuards)();let R=c.useCallback(a=>{let[b,...c]=N().map(a=>a.ref.current),[d]=c.slice(-1),e=document.activeElement;for(let c of a)if(c===e||(c?.scrollIntoView({block:"nearest"}),c===b&&F&&(F.scrollTop=0),c===d&&F&&(F.scrollTop=F.scrollHeight),c?.focus(),document.activeElement!==e))return},[N,F]),T=c.useCallback(()=>R([J,D]),[R,J,D]);c.useEffect(()=>{O&&T()},[O,T]);let{onOpenChange:V,triggerPointerDownPosRef:X}=B;c.useEffect(()=>{if(D){let a={x:0,y:0},b=b=>{a={x:Math.abs(Math.round(b.pageX)-(X.current?.x??0)),y:Math.abs(Math.round(b.pageY)-(X.current?.y??0))}},c=c=>{a.x<=10&&a.y<=10?c.preventDefault():D.contains(c.target)||V(!1),document.removeEventListener("pointermove",b),X.current=null};return null!==X.current&&(document.addEventListener("pointermove",b),document.addEventListener("pointerup",c,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",b),document.removeEventListener("pointerup",c,{capture:!0})}}},[D,V,X]),c.useEffect(()=>{let a=()=>V(!1);return window.addEventListener("blur",a),window.addEventListener("resize",a),()=>{window.removeEventListener("blur",a),window.removeEventListener("resize",a)}},[V]);let[$,_]=ay(a=>{let b=N().filter(a=>!a.disabled),c=b.find(a=>a.ref.current===document.activeElement),d=az(b,a,c);d&&setTimeout(()=>d.ref.current.focus())}),aa=c.useCallback((a,b,c)=>{let d=!Q.current&&!c;(void 0!==B.value&&B.value===b||d)&&(K(a),d&&(Q.current=!0))},[B.value]),ab=c.useCallback(()=>D?.focus(),[D]),ac=c.useCallback((a,b,c)=>{let d=!Q.current&&!c;(void 0!==B.value&&B.value===b||d)&&M(a)},[B.value]),ad="popper"===g?Z:Y,ae=ad===Z?{side:o,sideOffset:p,align:q,alignOffset:r,arrowPadding:s,collisionBoundary:t,collisionPadding:u,sticky:v,hideWhenDetached:y,avoidCollisions:z}:{};return(0,b.jsx)(U,{scope:e,content:D,viewport:F,onViewportChange:G,itemRefCallback:aa,selectedItem:J,onItemLeave:ab,itemTextRefCallback:ac,focusSelectedItem:T,selectedItemText:L,position:g,isPositioned:O,searchRef:$,children:(0,b.jsx)(x.RemoveScroll,{as:W,allowPinchZoom:!0,children:(0,b.jsx)(m.FocusScope,{asChild:!0,trapped:B.open,onMountAutoFocus:a=>{a.preventDefault()},onUnmountAutoFocus:(0,f.composeEventHandlers)(i,a=>{B.trigger?.focus({preventScroll:!0}),a.preventDefault()}),children:(0,b.jsx)(k.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:j,onPointerDownOutside:n,onFocusOutside:a=>a.preventDefault(),onDismiss:()=>B.onOpenChange(!1),children:(0,b.jsx)(ad,{role:"listbox",id:B.contentId,"data-state":B.open?"open":"closed",dir:B.dir,onContextMenu:a=>a.preventDefault(),...A,...ae,onPlaced:()=>P(!0),ref:H,style:{display:"flex",flexDirection:"column",outline:"none",...A.style},onKeyDown:(0,f.composeEventHandlers)(A.onKeyDown,a=>{let b=a.ctrlKey||a.altKey||a.metaKey;if("Tab"===a.key&&a.preventDefault(),b||1!==a.key.length||_(a.key),["ArrowUp","ArrowDown","Home","End"].includes(a.key)){let b=N().filter(a=>!a.disabled).map(a=>a.ref.current);if(["ArrowUp","End"].includes(a.key)&&(b=b.slice().reverse()),["ArrowUp","ArrowDown"].includes(a.key)){let c=a.target,d=b.indexOf(c);b=b.slice(d+1)}setTimeout(()=>R(b)),a.preventDefault()}})})})})})})});X.displayName="SelectContentImpl";var Y=c.forwardRef((a,d)=>{let{__scopeSelect:f,onPlaced:g,...i}=a,j=I(S,f),k=V(S,f),[l,m]=c.useState(null),[n,o]=c.useState(null),p=(0,h.useComposedRefs)(d,a=>o(a)),r=C(f),s=c.useRef(!1),t=c.useRef(!0),{viewport:v,selectedItem:w,selectedItemText:x,focusSelectedItem:y}=k,z=c.useCallback(()=>{if(j.trigger&&j.valueNode&&l&&n&&v&&w&&x){let a=j.trigger.getBoundingClientRect(),b=n.getBoundingClientRect(),c=j.valueNode.getBoundingClientRect(),d=x.getBoundingClientRect();if("rtl"!==j.dir){let f=d.left-b.left,g=c.left-f,h=a.left-g,i=a.width+h,j=Math.max(i,b.width),k=e(g,[10,Math.max(10,window.innerWidth-10-j)]);l.style.minWidth=i+"px",l.style.left=k+"px"}else{let f=b.right-d.right,g=window.innerWidth-c.right-f,h=window.innerWidth-a.right-g,i=a.width+h,j=Math.max(i,b.width),k=e(g,[10,Math.max(10,window.innerWidth-10-j)]);l.style.minWidth=i+"px",l.style.right=k+"px"}let f=r(),h=window.innerHeight-20,i=v.scrollHeight,k=window.getComputedStyle(n),m=parseInt(k.borderTopWidth,10),o=parseInt(k.paddingTop,10),p=parseInt(k.borderBottomWidth,10),q=m+o+i+parseInt(k.paddingBottom,10)+p,t=Math.min(5*w.offsetHeight,q),u=window.getComputedStyle(v),y=parseInt(u.paddingTop,10),z=parseInt(u.paddingBottom,10),A=a.top+a.height/2-10,B=w.offsetHeight/2,C=m+o+(w.offsetTop+B);if(C<=A){let a=f.length>0&&w===f[f.length-1].ref.current;l.style.bottom="0px";let b=Math.max(h-A,B+(a?z:0)+(n.clientHeight-v.offsetTop-v.offsetHeight)+p);l.style.height=C+b+"px"}else{let a=f.length>0&&w===f[0].ref.current;l.style.top="0px";let b=Math.max(A,m+v.offsetTop+(a?y:0)+B);l.style.height=b+(q-C)+"px",v.scrollTop=C-A+v.offsetTop}l.style.margin="10px 0",l.style.minHeight=t+"px",l.style.maxHeight=h+"px",g?.(),requestAnimationFrame(()=>s.current=!0)}},[r,j.trigger,j.valueNode,l,n,v,w,x,j.dir,g]);(0,u.useLayoutEffect)(()=>z(),[z]);let[A,B]=c.useState();(0,u.useLayoutEffect)(()=>{n&&B(window.getComputedStyle(n).zIndex)},[n]);let D=c.useCallback(a=>{a&&!0===t.current&&(z(),y?.(),t.current=!1)},[z,y]);return(0,b.jsx)($,{scope:f,contentWrapper:l,shouldExpandOnScrollRef:s,onScrollButtonChange:D,children:(0,b.jsx)("div",{ref:m,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:A},children:(0,b.jsx)(q.Primitive.div,{...i,ref:p,style:{boxSizing:"border-box",maxHeight:"100%",...i.style}})})})});Y.displayName="SelectItemAlignedPosition";var Z=c.forwardRef((a,c)=>{let{__scopeSelect:d,align:e="start",collisionPadding:f=10,...g}=a,h=G(d);return(0,b.jsx)(o.Content,{...h,...g,ref:c,align:e,collisionPadding:f,style:{boxSizing:"border-box",...g.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});Z.displayName="SelectPopperPosition";var[$,_]=E(S,{}),aa="SelectViewport",ab=c.forwardRef((a,d)=>{let{__scopeSelect:e,nonce:g,...i}=a,j=V(aa,e),k=_(aa,e),l=(0,h.useComposedRefs)(d,j.onViewportChange),m=c.useRef(0);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:g}),(0,b.jsx)(B.Slot,{scope:e,children:(0,b.jsx)(q.Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...i,ref:l,style:{position:"relative",flex:1,overflow:"hidden auto",...i.style},onScroll:(0,f.composeEventHandlers)(i.onScroll,a=>{let b=a.currentTarget,{contentWrapper:c,shouldExpandOnScrollRef:d}=k;if(d?.current&&c){let a=Math.abs(m.current-b.scrollTop);if(a>0){let d=window.innerHeight-20,e=Math.max(parseFloat(c.style.minHeight),parseFloat(c.style.height));if(e<d){let f=e+a,g=Math.min(d,f),h=f-g;c.style.height=g+"px","0px"===c.style.bottom&&(b.scrollTop=h>0?h:0,c.style.justifyContent="flex-end")}}}m.current=b.scrollTop})})})]})});ab.displayName=aa;var ac="SelectGroup",[ad,ae]=E(ac);c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a,f=(0,n.useId)();return(0,b.jsx)(ad,{scope:d,id:f,children:(0,b.jsx)(q.Primitive.div,{role:"group","aria-labelledby":f,...e,ref:c})})}).displayName=ac;var af="SelectLabel",ag=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a,f=ae(af,d);return(0,b.jsx)(q.Primitive.div,{id:f.id,...e,ref:c})});ag.displayName=af;var ah="SelectItem",[ai,aj]=E(ah),ak=c.forwardRef((a,d)=>{let{__scopeSelect:e,value:g,disabled:i=!1,textValue:j,...k}=a,l=I(ah,e),m=V(ah,e),o=l.value===g,[p,r]=c.useState(j??""),[s,t]=c.useState(!1),u=(0,h.useComposedRefs)(d,a=>m.itemRefCallback?.(a,g,i)),v=(0,n.useId)(),w=c.useRef("touch"),x=()=>{i||(l.onValueChange(g),l.onOpenChange(!1))};if(""===g)throw Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return(0,b.jsx)(ai,{scope:e,value:g,disabled:i,textId:v,isSelected:o,onItemTextChange:c.useCallback(a=>{r(b=>b||(a?.textContent??"").trim())},[]),children:(0,b.jsx)(B.ItemSlot,{scope:e,value:g,disabled:i,textValue:p,children:(0,b.jsx)(q.Primitive.div,{role:"option","aria-labelledby":v,"data-highlighted":s?"":void 0,"aria-selected":o&&s,"data-state":o?"checked":"unchecked","aria-disabled":i||void 0,"data-disabled":i?"":void 0,tabIndex:i?void 0:-1,...k,ref:u,onFocus:(0,f.composeEventHandlers)(k.onFocus,()=>t(!0)),onBlur:(0,f.composeEventHandlers)(k.onBlur,()=>t(!1)),onClick:(0,f.composeEventHandlers)(k.onClick,()=>{"mouse"!==w.current&&x()}),onPointerUp:(0,f.composeEventHandlers)(k.onPointerUp,()=>{"mouse"===w.current&&x()}),onPointerDown:(0,f.composeEventHandlers)(k.onPointerDown,a=>{w.current=a.pointerType}),onPointerMove:(0,f.composeEventHandlers)(k.onPointerMove,a=>{w.current=a.pointerType,i?m.onItemLeave?.():"mouse"===w.current&&a.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,f.composeEventHandlers)(k.onPointerLeave,a=>{a.currentTarget===document.activeElement&&m.onItemLeave?.()}),onKeyDown:(0,f.composeEventHandlers)(k.onKeyDown,a=>{(m.searchRef?.current===""||" "!==a.key)&&(z.includes(a.key)&&x()," "===a.key&&a.preventDefault())})})})})});ak.displayName=ah;var al="SelectItemText",am=c.forwardRef((a,e)=>{let{__scopeSelect:f,className:g,style:i,...j}=a,k=I(al,f),l=V(al,f),m=aj(al,f),n=K(al,f),[o,p]=c.useState(null),r=(0,h.useComposedRefs)(e,a=>p(a),m.onItemTextChange,a=>l.itemTextRefCallback?.(a,m.value,m.disabled)),s=o?.textContent,t=c.useMemo(()=>(0,b.jsx)("option",{value:m.value,disabled:m.disabled,children:s},m.value),[m.disabled,m.value,s]),{onNativeOptionAdd:v,onNativeOptionRemove:w}=n;return(0,u.useLayoutEffect)(()=>(v(t),()=>w(t)),[v,w,t]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(q.Primitive.span,{id:m.textId,...j,ref:r}),m.isSelected&&k.valueNode&&!k.valueNodeHasChildren?d.createPortal(j.children,k.valueNode):null]})});am.displayName=al;var an="SelectItemIndicator",ao=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a;return aj(an,d).isSelected?(0,b.jsx)(q.Primitive.span,{"aria-hidden":!0,...e,ref:c}):null});ao.displayName=an;var ap="SelectScrollUpButton",aq=c.forwardRef((a,d)=>{let e=V(ap,a.__scopeSelect),f=_(ap,a.__scopeSelect),[g,i]=c.useState(!1),j=(0,h.useComposedRefs)(d,f.onScrollButtonChange);return(0,u.useLayoutEffect)(()=>{if(e.viewport&&e.isPositioned){let a=function(){i(b.scrollTop>0)},b=e.viewport;return a(),b.addEventListener("scroll",a),()=>b.removeEventListener("scroll",a)}},[e.viewport,e.isPositioned]),g?(0,b.jsx)(at,{...a,ref:j,onAutoScroll:()=>{let{viewport:a,selectedItem:b}=e;a&&b&&(a.scrollTop=a.scrollTop-b.offsetHeight)}}):null});aq.displayName=ap;var ar="SelectScrollDownButton",as=c.forwardRef((a,d)=>{let e=V(ar,a.__scopeSelect),f=_(ar,a.__scopeSelect),[g,i]=c.useState(!1),j=(0,h.useComposedRefs)(d,f.onScrollButtonChange);return(0,u.useLayoutEffect)(()=>{if(e.viewport&&e.isPositioned){let a=function(){let a=b.scrollHeight-b.clientHeight;i(Math.ceil(b.scrollTop)<a)},b=e.viewport;return a(),b.addEventListener("scroll",a),()=>b.removeEventListener("scroll",a)}},[e.viewport,e.isPositioned]),g?(0,b.jsx)(at,{...a,ref:j,onAutoScroll:()=>{let{viewport:a,selectedItem:b}=e;a&&b&&(a.scrollTop=a.scrollTop+b.offsetHeight)}}):null});as.displayName=ar;var at=c.forwardRef((a,d)=>{let{__scopeSelect:e,onAutoScroll:g,...h}=a,i=V("SelectScrollButton",e),j=c.useRef(null),k=C(e),l=c.useCallback(()=>{null!==j.current&&(window.clearInterval(j.current),j.current=null)},[]);return c.useEffect(()=>()=>l(),[l]),(0,u.useLayoutEffect)(()=>{let a=k().find(a=>a.ref.current===document.activeElement);a?.ref.current?.scrollIntoView({block:"nearest"})},[k]),(0,b.jsx)(q.Primitive.div,{"aria-hidden":!0,...h,ref:d,style:{flexShrink:0,...h.style},onPointerDown:(0,f.composeEventHandlers)(h.onPointerDown,()=>{null===j.current&&(j.current=window.setInterval(g,50))}),onPointerMove:(0,f.composeEventHandlers)(h.onPointerMove,()=>{i.onItemLeave?.(),null===j.current&&(j.current=window.setInterval(g,50))}),onPointerLeave:(0,f.composeEventHandlers)(h.onPointerLeave,()=>{l()})})}),au=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a;return(0,b.jsx)(q.Primitive.div,{"aria-hidden":!0,...e,ref:c})});au.displayName="SelectSeparator";var av="SelectArrow";c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a,f=G(d),g=I(av,d),h=V(av,d);return g.open&&"popper"===h.position?(0,b.jsx)(o.Arrow,{...f,...e,ref:c}):null}).displayName=av;var aw=c.forwardRef(({__scopeSelect:a,value:d,...e},f)=>{let g,i=c.useRef(null),j=(0,h.useComposedRefs)(f,i),k=(g=c.useRef({value:d,previous:d}),c.useMemo(()=>(g.current.value!==d&&(g.current.previous=g.current.value,g.current.value=d),g.current.previous),[d]));return c.useEffect(()=>{let a=i.current;if(!a)return;let b=Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype,"value").set;if(k!==d&&b){let c=new Event("change",{bubbles:!0});b.call(a,d),a.dispatchEvent(c)}},[k,d]),(0,b.jsx)(q.Primitive.select,{...e,style:{...v.VISUALLY_HIDDEN_STYLES,...e.style},ref:j,defaultValue:d})});function ax(a){return""===a||void 0===a}function ay(a){let b=(0,s.useCallbackRef)(a),d=c.useRef(""),e=c.useRef(0),f=c.useCallback(a=>{let c=d.current+a;b(c),function a(b){d.current=b,window.clearTimeout(e.current),""!==b&&(e.current=window.setTimeout(()=>a(""),1e3))}(c)},[b]),g=c.useCallback(()=>{d.current="",window.clearTimeout(e.current)},[]);return c.useEffect(()=>()=>window.clearTimeout(e.current),[]),[d,f,g]}function az(a,b,c){var d,e;let f=b.length>1&&Array.from(b).every(a=>a===b[0])?b[0]:b,g=c?a.indexOf(c):-1,h=(d=a,e=Math.max(g,0),d.map((a,b)=>d[(e+b)%d.length]));1===f.length&&(h=h.filter(a=>a!==c));let i=h.find(a=>a.textValue.toLowerCase().startsWith(f.toLowerCase()));return i!==c?i:void 0}aw.displayName="SelectBubbleInput";var aA=a.i(70485),aB=a.i(63535);let aC=(0,aB.default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]),aD=(0,aB.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);var aE=a.i(87052);let aF=c.forwardRef(({className:a,children:c,...d},e)=>(0,b.jsxs)(N,{ref:e,className:(0,aE.cn)("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-gray-300 dark:border-gray-700 bg-background px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",a),...d,children:[c,(0,b.jsx)(Q,{asChild:!0,children:(0,b.jsx)(aC,{className:"h-4 w-4 opacity-50"})})]}));aF.displayName=N.displayName;let aG=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(aq,{ref:d,className:(0,aE.cn)("flex cursor-default items-center justify-center py-1",a),...c,children:(0,b.jsx)(aD,{className:"h-4 w-4"})}));aG.displayName=aq.displayName;let aH=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(as,{ref:d,className:(0,aE.cn)("flex cursor-default items-center justify-center py-1",a),...c,children:(0,b.jsx)(aC,{className:"h-4 w-4"})}));aH.displayName=as.displayName;let aI=c.forwardRef(({className:a,children:c,position:d="popper",...e},f)=>(0,b.jsx)(R,{children:(0,b.jsxs)(T,{ref:f,className:(0,aE.cn)("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border border-gray-200 dark:border-gray-800 bg-background text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===d&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",a),position:d,...e,children:[(0,b.jsx)(aG,{}),(0,b.jsx)(ab,{className:(0,aE.cn)("p-1","popper"===d&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:c}),(0,b.jsx)(aH,{})]})}));aI.displayName=T.displayName,c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(ag,{ref:d,className:(0,aE.cn)("px-2 py-1.5 text-sm font-semibold",a),...c})).displayName=ag.displayName;let aJ=c.forwardRef(({className:a,children:c,...d},e)=>(0,b.jsxs)(ak,{ref:e,className:(0,aE.cn)("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...d,children:[(0,b.jsx)("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,b.jsx)(ao,{children:(0,b.jsx)(aA.Check,{className:"h-4 w-4"})})}),(0,b.jsx)(am,{children:c})]}));aJ.displayName=ak.displayName,c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(au,{ref:d,className:(0,aE.cn)("-mx-1 my-1 h-px bg-muted",a),...c})).displayName=au.displayName,a.s(["Select",()=>L,"SelectContent",()=>aI,"SelectItem",()=>aJ,"SelectTrigger",()=>aF,"SelectValue",()=>P],15929);var aK=a.i(35133),aL=a.i(79121);function aM(a){return a?(0,aK.default)(a).fromNow():"Unknown"}function aN(a,b){if(!a||!b)return"";let c=(0,aK.default)(a),d=(0,aK.default)(b).diff(c);if(d<0)return"";let e=Math.floor(d/864e5),f=Math.floor(d%864e5/36e5);if(0===e&&0===f){let a=Math.floor(d%36e5/6e4);return 0===a?"< 1m":`${a}m`}if(0===e)return`${f}h`;if(e<30)return f>0?`${e}d ${f}h`:`${e}d`;let g=Math.floor(e/30),h=e%30;if(g<12)return h>0?`${g}mo ${h}d`:`${g}mo`;let i=Math.floor(g/12),j=g%12;return j>0?`${i}y ${j}mo`:`${i}y`}aK.default.extend(aL.default),a.s(["formatDuration",()=>aN,"formatRelativeTime",()=>aM],90075)}];
2
+
3
+ //# sourceMappingURL=packages_ui_src_components_ui_select_tsx_7e21d40f._.js.map
@@ -10,6 +10,65 @@ module.exports=[87803,a=>{"use strict";let b,c;var d,e=a.i(25372);let f=Symbol.f
10
10
  hash text NOT NULL,
11
11
  created_at numeric
12
12
  )
13
- `;await b.run(e);let f=(await b.values($`SELECT id, hash, created_at FROM ${$.identifier(d)} ORDER BY created_at DESC LIMIT 1`))[0]??void 0;await b.transaction(async b=>{for(let c of a)if(!f||Number(f[2])<c.folderMillis){for(let a of c.sql)await b.run($.raw(a));await b.run($`INSERT INTO ${$.identifier(d)} ("hash", "created_at") VALUES(${c.hash}, ${c.folderMillis})`)}})}}class c5{static [f]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class c6{static [f]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(a){return this.then(void 0,a)}finally(a){return this.then(b=>(a?.(),b),b=>{throw a?.(),b})}then(a,b){return this.execute().then(a,b)}}class c7{static [f]="SQLiteSelectBuilder";fields;session;dialect;withList;distinct;constructor(a){this.fields=a.fields,this.session=a.session,this.dialect=a.dialect,this.withList=a.withList,this.distinct=a.distinct}from(a){let b,c=!!this.fields;return b=this.fields?this.fields:g(a,O)?Object.fromEntries(Object.keys(a._.selectedFields).map(b=>[b,a[b]])):g(a,c1)?a[R].selectedFields:g(a,V)?{}:a[t.Symbol.Columns],new c9({table:a,fields:b,isPartialSelect:c,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct})}}class c8 extends c5{static [f]="SQLiteSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:a,fields:b,isPartialSelect:c,session:d,dialect:e,withList:f,distinct:g}){super(),this.config={withList:f,table:a,fields:{...b},distinct:g,setOperators:[]},this.isPartialSelect=c,this.session=d,this.dialect=e,this._={selectedFields:b},this.tableName=aj(a),this.joinsNotNullableMap="string"==typeof this.tableName?{[this.tableName]:!0}:{}}createJoin(a){return(b,c)=>{let d=this.tableName,e=aj(b);if("string"==typeof e&&this.config.joins?.some(a=>a.alias===e))throw Error(`Alias "${e}" is already used in this query`);if(!this.isPartialSelect&&(1===Object.keys(this.joinsNotNullableMap).length&&"string"==typeof d&&(this.config.fields={[d]:this.config.fields}),"string"==typeof e&&!g(b,V))){let a=g(b,O)?b._.selectedFields:g(b,ae)?b[R].selectedFields:b[t.Symbol.Columns];this.config.fields[e]=a}if("function"==typeof c&&(c=c(new Proxy(this.config.fields,new ch({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:c,table:b,joinType:a,alias:e}),"string"==typeof e)switch(a){case"left":this.joinsNotNullableMap[e]=!1;break;case"right":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([a])=>[a,!1])),this.joinsNotNullableMap[e]=!0;break;case"inner":this.joinsNotNullableMap[e]=!0;break;case"full":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([a])=>[a,!1])),this.joinsNotNullableMap[e]=!1}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");createSetOperator(a,b){return c=>{let d="function"==typeof c?c(db()):c;if(!ah(this.getSelectedFields(),d.getSelectedFields()))throw Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:a,isAll:b,rightSelect:d}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);except=this.createSetOperator("except",!1);addSetOperators(a){return this.config.setOperators.push(...a),this}where(a){return"function"==typeof a&&(a=a(new Proxy(this.config.fields,new ch({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.where=a,this}having(a){return"function"==typeof a&&(a=a(new Proxy(this.config.fields,new ch({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.having=a,this}groupBy(...a){if("function"==typeof a[0]){let b=a[0](new Proxy(this.config.fields,new ch({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(b)?b:[b]}else this.config.groupBy=a;return this}orderBy(...a){if("function"==typeof a[0]){let b=a[0](new Proxy(this.config.fields,new ch({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),c=Array.isArray(b)?b:[b];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=c:this.config.orderBy=c}else this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=a:this.config.orderBy=a;return this}limit(a){return this.config.setOperators.length>0?this.config.setOperators.at(-1).limit=a:this.config.limit=a,this}offset(a){return this.config.setOperators.length>0?this.config.setOperators.at(-1).offset=a:this.config.offset=a,this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:a,...b}=this.dialect.sqlToQuery(this.getSQL());return b}as(a){return new Proxy(new O(this.getSQL(),this.config.fields,a),new ch({alias:a,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new ch({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}}class c9 extends c8{static [f]="SQLiteSelect";_prepare(a=!0){if(!this.session)throw Error("Cannot execute a query on a query builder. Please use a database instance instead.");let b=ag(this.config.fields),c=this.session[a?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),b,"all",!0);return c.joinsNotNullableMap=this.joinsNotNullableMap,c}prepare(){return this._prepare(!1)}run=a=>this._prepare().run(a);all=a=>this._prepare().all(a);get=a=>this._prepare().get(a);values=a=>this._prepare().values(a);async execute(){return this.all()}}for(let a of[c6])for(let b of Object.getOwnPropertyNames(a.prototype))"constructor"!==b&&Object.defineProperty(c9.prototype,b,Object.getOwnPropertyDescriptor(a.prototype,b)||Object.create(null));function da(a,b){return(c,d,...e)=>{let f=[d,...e].map(c=>({type:a,isAll:b,rightSelect:c}));for(let a of f)if(!ah(c.getSelectedFields(),a.rightSelect.getSelectedFields()))throw Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return c.addSetOperators(f)}}let db=()=>({union:dc,unionAll:dd,intersect:de,except:df}),dc=da("union",!1),dd=da("union",!0),de=da("intersect",!1),df=da("except",!1);class dg{static [f]="SQLiteQueryBuilder";dialect;dialectConfig;constructor(a){this.dialect=g(a,c2)?a:void 0,this.dialectConfig=g(a,c2)?void 0:a}$with(a){let b=this;return{as:c=>("function"==typeof c&&(c=c(b)),new Proxy(new P(c.getSQL(),c.getSelectedFields(),a,!0),new ch({alias:a,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}}with(...a){let b=this;return{select:function(c){return new c7({fields:c??void 0,session:void 0,dialect:b.getDialect(),withList:a})},selectDistinct:function(c){return new c7({fields:c??void 0,session:void 0,dialect:b.getDialect(),withList:a,distinct:!0})}}}select(a){return new c7({fields:a??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(a){return new c7({fields:a??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}getDialect(){return this.dialect||(this.dialect=new c3(this.dialectConfig)),this.dialect}}class dh extends c6{constructor(a,b,c,d){super(),this.table=a,this.session=b,this.dialect=c,this.config={table:a,withList:d}}static [f]="SQLiteDelete";config;where(a){return this.config.where=a,this}orderBy(...a){if("function"==typeof a[0]){let b=a[0](new Proxy(this.config.table[t.Symbol.Columns],new ch({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),c=Array.isArray(b)?b:[b];this.config.orderBy=c}else this.config.orderBy=a;return this}limit(a){return this.config.limit=a,this}returning(a=this.table[c_.Symbol.Columns]){return this.config.returning=ag(a),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:a,...b}=this.dialect.sqlToQuery(this.getSQL());return b}_prepare(a=!0){return this.session[a?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0)}prepare(){return this._prepare(!1)}run=a=>this._prepare().run(a);all=a=>this._prepare().all(a);get=a=>this._prepare().get(a);values=a=>this._prepare().values(a);async execute(a){return this._prepare().execute(a)}$dynamic(){return this}}class di{constructor(a,b,c,d){this.table=a,this.session=b,this.dialect=c,this.withList=d}static [f]="SQLiteInsertBuilder";values(a){if(0===(a=Array.isArray(a)?a:[a]).length)throw Error("values() must be called with at least one value");let b=a.map(a=>{let b={},c=this.table[t.Symbol.Columns];for(let d of Object.keys(a)){let e=a[d];b[d]=g(e,V)?e:new Z(e,c[d])}return b});return new dj(this.table,b,this.session,this.dialect,this.withList)}select(a){let b="function"==typeof a?a(new dg):a;if(!g(b,V)&&!ah(this.table[m],b._.selectedFields))throw Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new dj(this.table,b,this.session,this.dialect,this.withList,!0)}}class dj extends c6{constructor(a,b,c,d,e,f){super(),this.session=c,this.dialect=d,this.config={table:a,values:b,withList:e,select:f}}static [f]="SQLiteInsert";config;returning(a=this.config.table[c_.Symbol.Columns]){return this.config.returning=ag(a),this}onConflictDoNothing(a={}){if(void 0===a.target)this.config.onConflict=$`do nothing`;else{let b=Array.isArray(a.target)?$`${a.target}`:$`${[a.target]}`,c=a.where?$` where ${a.where}`:$``;this.config.onConflict=$`${b} do nothing${c}`}return this}onConflictDoUpdate(a){if(a.where&&(a.targetWhere||a.setWhere))throw Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');let b=a.where?$` where ${a.where}`:void 0,c=a.targetWhere?$` where ${a.targetWhere}`:void 0,d=a.setWhere?$` where ${a.setWhere}`:void 0,e=Array.isArray(a.target)?$`${a.target}`:$`${[a.target]}`,f=this.dialect.buildUpdateSet(this.config.table,ai(this.config.table,a.set));return this.config.onConflict=$`${e}${c} do update set ${f}${b}${d}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:a,...b}=this.dialect.sqlToQuery(this.getSQL());return b}_prepare(a=!0){return this.session[a?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0)}prepare(){return this._prepare(!1)}run=a=>this._prepare().run(a);all=a=>this._prepare().all(a);get=a=>this._prepare().get(a);values=a=>this._prepare().values(a);async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}}class dk{constructor(a,b,c,d){this.table=a,this.session=b,this.dialect=c,this.withList=d}static [f]="SQLiteUpdateBuilder";set(a){return new dl(this.table,ai(this.table,a),this.session,this.dialect,this.withList)}}class dl extends c6{constructor(a,b,c,d,e){super(),this.session=c,this.dialect=d,this.config={set:b,table:a,withList:e,joins:[]}}static [f]="SQLiteUpdate";config;from(a){return this.config.from=a,this}createJoin(a){return(b,c)=>{let d=aj(b);if("string"==typeof d&&this.config.joins.some(a=>a.alias===d))throw Error(`Alias "${d}" is already used in this query`);if("function"==typeof c){let a=this.config.from?g(b,c_)?b[t.Symbol.Columns]:g(b,O)?b._.selectedFields:g(b,c1)?b[R].selectedFields:void 0:void 0;c=c(new Proxy(this.config.table[t.Symbol.Columns],new ch({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),a&&new Proxy(a,new ch({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}return this.config.joins.push({on:c,table:b,joinType:a,alias:d}),this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(a){return this.config.where=a,this}orderBy(...a){if("function"==typeof a[0]){let b=a[0](new Proxy(this.config.table[t.Symbol.Columns],new ch({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),c=Array.isArray(b)?b:[b];this.config.orderBy=c}else this.config.orderBy=a;return this}limit(a){return this.config.limit=a,this}returning(a=this.config.table[c_.Symbol.Columns]){return this.config.returning=ag(a),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:a,...b}=this.dialect.sqlToQuery(this.getSQL());return b}_prepare(a=!0){return this.session[a?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0)}prepare(){return this._prepare(!1)}run=a=>this._prepare().run(a);all=a=>this._prepare().all(a);get=a=>this._prepare().get(a);values=a=>this._prepare().values(a);async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}}class dm extends V{constructor(a){super(dm.buildEmbeddedCount(a.source,a.filters).queryChunks),this.params=a,this.session=a.session,this.sql=dm.buildCount(a.source,a.filters)}sql;static [f]="SQLiteCountBuilderAsync";[Symbol.toStringTag]="SQLiteCountBuilderAsync";session;static buildEmbeddedCount(a,b){return $`(select count(*) from ${a}${$.raw(" where ").if(b)}${b})`}static buildCount(a,b){return $`select count(*) from ${a}${$.raw(" where ").if(b)}${b}`}then(a,b){return Promise.resolve(this.session.count(this.sql)).then(a,b)}catch(a){return this.then(void 0,a)}finally(a){return this.then(b=>(a?.(),b),b=>{throw a?.(),b})}}class dn{constructor(a,b,c,d,e,f,g,h){this.mode=a,this.fullSchema=b,this.schema=c,this.tableNamesMap=d,this.table=e,this.tableConfig=f,this.dialect=g,this.session=h}static [f]="SQLiteAsyncRelationalQueryBuilder";findMany(a){return"sync"===this.mode?new dq(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,a||{},"many"):new dp(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,a||{},"many")}findFirst(a){return"sync"===this.mode?new dq(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,a?{...a,limit:1}:{limit:1},"first"):new dp(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,a?{...a,limit:1}:{limit:1},"first")}}class dp extends c6{constructor(a,b,c,d,e,f,g,h,i){super(),this.fullSchema=a,this.schema=b,this.tableNamesMap=c,this.table=d,this.tableConfig=e,this.dialect=f,this.session=g,this.config=h,this.mode=i}static [f]="SQLiteAsyncRelationalQuery";mode;getSQL(){return this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}).sql}_prepare(a=!1){let{query:b,builtQuery:c}=this._toSQL();return this.session[a?"prepareOneTimeQuery":"prepareQuery"](c,void 0,"first"===this.mode?"get":"all",!0,(a,c)=>{let d=a.map(a=>(function a(b,c,d,e,f=a=>a){let h={};for(let[i,j]of e.entries())if(j.isJson){let e=c.relations[j.tsKey],k=d[i],l="string"==typeof k?JSON.parse(k):k;h[j.tsKey]=g(e,b6)?l&&a(b,b[j.relationTableTsKey],l,j.selection,f):l.map(c=>a(b,b[j.relationTableTsKey],c,j.selection,f))}else{let a,b=f(d[i]),c=j.field;a=g(c,v)?c:g(c,V)?c.decoder:c.sql.decoder,h[j.tsKey]=null===b?null:a.mapFromDriverValue(b)}return h})(this.schema,this.tableConfig,a,b.selection,c));return"first"===this.mode?d[0]:d})}prepare(){return this._prepare(!1)}_toSQL(){let a=this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}),b=this.dialect.sqlToQuery(a.sql);return{query:a,builtQuery:b}}toSQL(){return this._toSQL().builtQuery}executeRaw(){return"first"===this.mode?this._prepare(!1).get():this._prepare(!1).all()}async execute(){return this.executeRaw()}}class dq extends dp{static [f]="SQLiteSyncRelationalQuery";sync(){return this.executeRaw()}}class dr extends c6{constructor(a,b,c,d,e){super(),this.execute=a,this.getSQL=b,this.dialect=d,this.mapBatchResult=e,this.config={action:c}}static [f]="SQLiteRaw";config;getQuery(){return{...this.dialect.sqlToQuery(this.getSQL()),method:this.config.action}}mapResult(a,b){return b?this.mapBatchResult(a):a}_prepare(){return this}isResponseInArrayMode(){return!1}}class ds{constructor(a,b,c,d){this.resultKind=a,this.dialect=b,this.session=c,this._=d?{schema:d.schema,fullSchema:d.fullSchema,tableNamesMap:d.tableNamesMap}:{schema:void 0,fullSchema:{},tableNamesMap:{}},this.query={};const e=this.query;if(this._.schema)for(const[f,g]of Object.entries(this._.schema))e[f]=new dn(a,d.fullSchema,this._.schema,this._.tableNamesMap,d.fullSchema[f],g,b,c)}static [f]="BaseSQLiteDatabase";query;$with(a){let b=this;return{as:c=>("function"==typeof c&&(c=c(new dg(b.dialect))),new Proxy(new P(c.getSQL(),c.getSelectedFields(),a,!0),new ch({alias:a,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}}$count(a,b){return new dm({source:a,filters:b,session:this.session})}with(...a){let b=this;return{select:function(c){return new c7({fields:c??void 0,session:b.session,dialect:b.dialect,withList:a})},selectDistinct:function(c){return new c7({fields:c??void 0,session:b.session,dialect:b.dialect,withList:a,distinct:!0})},update:function(c){return new dk(c,b.session,b.dialect,a)},insert:function(c){return new di(c,b.session,b.dialect,a)},delete:function(c){return new dh(c,b.session,b.dialect,a)}}}select(a){return new c7({fields:a??void 0,session:this.session,dialect:this.dialect})}selectDistinct(a){return new c7({fields:a??void 0,session:this.session,dialect:this.dialect,distinct:!0})}update(a){return new dk(a,this.session,this.dialect)}insert(a){return new di(a,this.session,this.dialect)}delete(a){return new dh(a,this.session,this.dialect)}run(a){let b="string"==typeof a?$.raw(a):a.getSQL();return"async"===this.resultKind?new dr(async()=>this.session.run(b),()=>b,"run",this.dialect,this.session.extractRawRunValueFromBatchResult.bind(this.session)):this.session.run(b)}all(a){let b="string"==typeof a?$.raw(a):a.getSQL();return"async"===this.resultKind?new dr(async()=>this.session.all(b),()=>b,"all",this.dialect,this.session.extractRawAllValueFromBatchResult.bind(this.session)):this.session.all(b)}get(a){let b="string"==typeof a?$.raw(a):a.getSQL();return"async"===this.resultKind?new dr(async()=>this.session.get(b),()=>b,"get",this.dialect,this.session.extractRawGetValueFromBatchResult.bind(this.session)):this.session.get(b)}values(a){let b="string"==typeof a?$.raw(a):a.getSQL();return"async"===this.resultKind?new dr(async()=>this.session.values(b),()=>b,"values",this.dialect,this.session.extractRawValuesValueFromBatchResult.bind(this.session)):this.session.values(b)}transaction(a,b){return this.session.transaction(a,b)}}class dt extends c6{constructor(a){super(),this.resultCb=a}static [f]="ExecuteResultSync";async execute(){return this.resultCb()}sync(){return this.resultCb()}}class du{constructor(a,b,c){this.mode=a,this.executeMethod=b,this.query=c}static [f]="PreparedQuery";joinsNotNullableMap;getQuery(){return this.query}mapRunResult(a,b){return a}mapAllResult(a,b){throw Error("Not implemented")}mapGetResult(a,b){throw Error("Not implemented")}execute(a){return"async"===this.mode?this[this.executeMethod](a):new dt(()=>this[this.executeMethod](a))}mapResult(a,b){switch(this.executeMethod){case"run":return this.mapRunResult(a,b);case"all":return this.mapAllResult(a,b);case"get":return this.mapGetResult(a,b)}}}class dv{constructor(a){this.dialect=a}static [f]="SQLiteSession";prepareOneTimeQuery(a,b,c,d){return this.prepareQuery(a,b,c,d)}run(a){let b=this.dialect.sqlToQuery(a);try{return this.prepareOneTimeQuery(b,void 0,"run",!1).run()}catch(a){throw new cm({cause:a,message:`Failed to run the query '${b.sql}'`})}}extractRawRunValueFromBatchResult(a){return a}all(a){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(a),void 0,"run",!1).all()}extractRawAllValueFromBatchResult(a){throw Error("Not implemented")}get(a){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(a),void 0,"run",!1).get()}extractRawGetValueFromBatchResult(a){throw Error("Not implemented")}values(a){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(a),void 0,"run",!1).values()}async count(a){return(await this.values(a))[0][0]}extractRawValuesValueFromBatchResult(a){throw Error("Not implemented")}}class dw extends ds{constructor(a,b,c,d,e=0){super(a,b,c,d),this.schema=d,this.nestedIndex=e}static [f]="SQLiteTransaction";rollback(){throw new cn}}class dx extends dv{constructor(a,b,c,d={}){super(b),this.client=a,this.schema=c,this.logger=d.logger??new j}static [f]="BetterSQLiteSession";logger;prepareQuery(a,b,c,d,e){return new dz(this.client.prepare(a.sql),a,this.logger,b,c,d,e)}transaction(a,b={}){let c=new dy("sync",this.dialect,this,this.schema);return this.client.transaction(a)[b.behavior??"deferred"](c)}}class dy extends dw{static [f]="BetterSQLiteTransaction";transaction(a){let b=`sp${this.nestedIndex}`,c=new dy("sync",this.dialect,this.session,this.schema,this.nestedIndex+1);this.session.run($.raw(`savepoint ${b}`));try{let d=a(c);return this.session.run($.raw(`release savepoint ${b}`)),d}catch(a){throw this.session.run($.raw(`rollback to savepoint ${b}`)),a}}}class dz extends du{constructor(a,b,c,d,e,f,g){super("sync",e,b),this.stmt=a,this.logger=c,this.fields=d,this._isResponseInArrayMode=f,this.customResultMapper=g}static [f]="BetterSQLitePreparedQuery";run(a){let b=ac(this.query.params,a??{});return this.logger.logQuery(this.query.sql,b),this.stmt.run(...b)}all(a){let{fields:b,joinsNotNullableMap:c,query:d,logger:e,stmt:f,customResultMapper:g}=this;if(!b&&!g){let b=ac(d.params,a??{});return e.logQuery(d.sql,b),f.all(...b)}let h=this.values(a);return g?g(h):h.map(a=>af(b,a,c))}get(a){let b=ac(this.query.params,a??{});this.logger.logQuery(this.query.sql,b);let{fields:c,stmt:d,joinsNotNullableMap:e,customResultMapper:f}=this;if(!c&&!f)return d.get(...b);let g=d.raw().get(...b);if(g)return f?f([g]):af(c,g,e)}values(a){let b=ac(this.query.params,a??{});return this.logger.logQuery(this.query.sql,b),this.stmt.raw().all(...b)}isResponseInArrayMode(){return this._isResponseInArrayMode}}class dA extends ds{static [f]="BetterSQLite3Database"}function dB(a,b={}){let c,d,e=new c3({casing:b.casing});if(!0===b.logger?c=new i:!1!==b.logger&&(c=b.logger),b.schema){let a=function(a,b){1===Object.keys(a).length&&"default"in a&&!g(a.default,t)&&(a=a.default);let c={},d={},e={};for(let[f,h]of Object.entries(a))if(g(h,t)){let a=u(h),b=d[a];for(let d of(c[a]=f,e[f]={tsName:f,dbName:h[t.Symbol.Name],schema:h[t.Symbol.Schema],columns:h[t.Symbol.Columns],relations:b?.relations??{},primaryKey:b?.primaryKey??[]},Object.values(h[t.Symbol.Columns])))d.primary&&e[f].primaryKey.push(d);let i=h[t.Symbol.ExtraConfigBuilder]?.(h[t.Symbol.ExtraConfigColumns]);if(i)for(let a of Object.values(i))g(a,bG)&&e[f].primaryKey.push(...a.columns)}else if(g(h,b5)){let a,f=u(h.table),g=c[f];for(let[c,i]of Object.entries(h.config(b(h.table))))if(g){let b=e[g];b.relations[c]=i,a&&b.primaryKey.push(...a)}else f in d||(d[f]={relations:{},primaryKey:a}),d[f].relations[c]=i}return{tables:e,tableNamesMap:c}}(b.schema,b9);d={fullSchema:b.schema,schema:a.tables,tableNamesMap:a.tableNamesMap}}let f=new dx(a,e,d,{logger:c}),h=new dA("sync",e,f,d);return h.$client=a,h}function dC(...a){if(void 0===a[0]||"string"==typeof a[0])return dB(void 0===a[0]?new e.default:new e.default(a[0]),a[1]);if(function(a){if("object"!=typeof a||null===a||"Object"!==a.constructor.name)return!1;if("logger"in a){let b=typeof a.logger;return"boolean"===b||"object"===b&&"function"==typeof a.logger.logQuery||"undefined"===b}if("schema"in a){let b=typeof a.logger;return"object"===b||"undefined"===b}if("casing"in a){let b=typeof a.logger;return"string"===b||"undefined"===b}if("mode"in a)return"default"===a.mode&&"planetscale"===a.mode&&void 0===a.mode;if("connection"in a){let b=typeof a.connection;return"string"===b||"object"===b||"undefined"===b}if("client"in a){let b=typeof a.client;return"object"===b||"function"===b||"undefined"===b}return 0===Object.keys(a).length}(a[0])){let{connection:b,client:c,...d}=a[0];if(c)return dB(c,d);if("object"==typeof b){let{source:a,...c}=b;return dB(new e.default(a,c),d)}return dB(new e.default(b),d)}return dB(a[0],a[1])}(dC||(dC={})).mock=function(a){return dB({},a)};class dD{constructor(a,b){this.name=a,this.unique=b}static [f]="SQLiteIndexBuilderOn";on(...a){return new dE(this.name,a,this.unique)}}class dE{static [f]="SQLiteIndexBuilder";config;constructor(a,b,c){this.config={name:a,columns:b,unique:c,where:void 0}}where(a){return this.config.where=a,this}build(a){return new dF(this.config,a)}}class dF{static [f]="SQLiteIndex";config;constructor(a,b){this.config={...a,table:b}}}let dG=c0("projects",{id:cZ("id").primaryKey(),githubOwner:cZ("github_owner").notNull(),githubRepo:cZ("github_repo").notNull(),displayName:cZ("display_name"),description:cZ("description"),homepageUrl:cZ("homepage_url"),stars:cO("stars").default(0),isPublic:cO("is_public",{mode:"boolean"}).default(!0),isFeatured:cO("is_featured",{mode:"boolean"}).default(!1),lastSyncedAt:cO("last_synced_at",{mode:"timestamp"}),createdAt:cO("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:cO("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)}),dH=c0("specs",{id:cZ("id").primaryKey(),projectId:cZ("project_id").notNull().references(()=>dG.id,{onDelete:"cascade"}),specNumber:cO("spec_number"),specName:cZ("spec_name").notNull(),title:cZ("title"),status:cZ("status",{enum:["planned","in-progress","complete","archived"]}),priority:cZ("priority",{enum:["low","medium","high","critical"]}),tags:cZ("tags"),assignee:cZ("assignee"),contentMd:cZ("content_md").notNull(),contentHtml:cZ("content_html"),createdAt:cO("created_at",{mode:"timestamp"}),updatedAt:cO("updated_at",{mode:"timestamp"}),completedAt:cO("completed_at",{mode:"timestamp"}),filePath:cZ("file_path").notNull(),githubUrl:cZ("github_url"),syncedAt:cO("synced_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)},a=>({uniqueSpecNumber:new dD("unique_spec_number",!0).on(a.projectId,a.specNumber)})),dI=c0("spec_relationships",{id:cZ("id").primaryKey(),specId:cZ("spec_id").notNull().references(()=>dH.id,{onDelete:"cascade"}),relatedSpecId:cZ("related_spec_id").notNull().references(()=>dH.id,{onDelete:"cascade"}),relationshipType:cZ("relationship_type",{enum:["depends_on","related"]}).notNull(),createdAt:cO("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)}),dJ=c0("sync_logs",{id:cZ("id").primaryKey(),projectId:cZ("project_id").notNull().references(()=>dG.id,{onDelete:"cascade"}),status:cZ("status",{enum:["pending","running","success","failed"]}).notNull(),specsAdded:cO("specs_added").default(0),specsUpdated:cO("specs_updated").default(0),specsDeleted:cO("specs_deleted").default(0),errorMessage:cZ("error_message"),startedAt:cO("started_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),completedAt:cO("completed_at",{mode:"timestamp"}),durationMs:cO("duration_ms")}),dK=b8(dG,({many:a})=>({specs:a(dH),syncLogs:a(dJ)})),dL=b8(dH,({one:a,many:b})=>({project:a(dG,{fields:[dH.projectId],references:[dG.id]}),dependencies:b(dI,{relationName:"spec"}),dependents:b(dI,{relationName:"relatedSpec"})})),dM=b8(dI,({one:a})=>({spec:a(dH,{fields:[dI.specId],references:[dH.id],relationName:"spec"}),relatedSpec:a(dH,{fields:[dI.relatedSpecId],references:[dH.id],relationName:"relatedSpec"})})),dN=b8(dJ,({one:a})=>({project:a(dG,{fields:[dJ.projectId],references:[dG.id]})}));a.s(["projects",0,dG,"projectsRelations",0,dK,"specRelationships",0,dI,"specRelationshipsRelations",0,dM,"specs",0,dH,"specsRelations",0,dL,"syncLogs",0,dJ,"syncLogsRelations",0,dN],21644);var dO=a.i(21644),dP=a.i(14747);let dQ=null,dR=null,dS=new Proxy({},{get:(a,b,c)=>Reflect.get(function(){if(!dQ){let a=process.env.DATABASE_PATH||(0,dP.join)(process.cwd(),"leanspec.db");dR=new e.default(a),dQ=dC(dR,{schema:dO})}return dQ}(),b,c)});class dT{async getAllSpecs(a){let b=a?dS.select().from(dO.specs).where(bJ(dO.specs.projectId,a)):dS.select().from(dO.specs);return await b.orderBy(dO.specs.specNumber)}async getSpec(a,b){if(!b)return null;let c=parseInt(a.split("-")[0],10);if(isNaN(c))return null;let d=await dS.select().from(dO.specs).where(bL(bJ(dO.specs.projectId,b),bJ(dO.specs.specNumber,c))).limit(1);return d.length>0?d[0]:null}async getSpecsByStatus(a,b){let c=[bJ(dO.specs.status,a)];return b&&c.push(bJ(dO.specs.projectId,b)),await dS.select().from(dO.specs).where(bL(...c)).orderBy(dO.specs.specNumber)}async searchSpecs(a,b){let c=await this.getAllSpecs(b),d=a.toLowerCase();return c.filter(a=>a.specName.toLowerCase().includes(d)||a.title?.toLowerCase().includes(d)||a.contentMd.toLowerCase().includes(d))}invalidateCache(){}}a.s(["DatabaseSource",()=>dT],87803)}];
13
+ `;await b.run(e);let f=(await b.values($`SELECT id, hash, created_at FROM ${$.identifier(d)} ORDER BY created_at DESC LIMIT 1`))[0]??void 0;await b.transaction(async b=>{for(let c of a)if(!f||Number(f[2])<c.folderMillis){for(let a of c.sql)await b.run($.raw(a));await b.run($`INSERT INTO ${$.identifier(d)} ("hash", "created_at") VALUES(${c.hash}, ${c.folderMillis})`)}})}}class c5{static [f]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}class c6{static [f]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(a){return this.then(void 0,a)}finally(a){return this.then(b=>(a?.(),b),b=>{throw a?.(),b})}then(a,b){return this.execute().then(a,b)}}class c7{static [f]="SQLiteSelectBuilder";fields;session;dialect;withList;distinct;constructor(a){this.fields=a.fields,this.session=a.session,this.dialect=a.dialect,this.withList=a.withList,this.distinct=a.distinct}from(a){let b,c=!!this.fields;return b=this.fields?this.fields:g(a,O)?Object.fromEntries(Object.keys(a._.selectedFields).map(b=>[b,a[b]])):g(a,c1)?a[R].selectedFields:g(a,V)?{}:a[t.Symbol.Columns],new c9({table:a,fields:b,isPartialSelect:c,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct})}}class c8 extends c5{static [f]="SQLiteSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;constructor({table:a,fields:b,isPartialSelect:c,session:d,dialect:e,withList:f,distinct:g}){super(),this.config={withList:f,table:a,fields:{...b},distinct:g,setOperators:[]},this.isPartialSelect=c,this.session=d,this.dialect=e,this._={selectedFields:b},this.tableName=aj(a),this.joinsNotNullableMap="string"==typeof this.tableName?{[this.tableName]:!0}:{}}createJoin(a){return(b,c)=>{let d=this.tableName,e=aj(b);if("string"==typeof e&&this.config.joins?.some(a=>a.alias===e))throw Error(`Alias "${e}" is already used in this query`);if(!this.isPartialSelect&&(1===Object.keys(this.joinsNotNullableMap).length&&"string"==typeof d&&(this.config.fields={[d]:this.config.fields}),"string"==typeof e&&!g(b,V))){let a=g(b,O)?b._.selectedFields:g(b,ae)?b[R].selectedFields:b[t.Symbol.Columns];this.config.fields[e]=a}if("function"==typeof c&&(c=c(new Proxy(this.config.fields,new ch({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:c,table:b,joinType:a,alias:e}),"string"==typeof e)switch(a){case"left":this.joinsNotNullableMap[e]=!1;break;case"right":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([a])=>[a,!1])),this.joinsNotNullableMap[e]=!0;break;case"inner":this.joinsNotNullableMap[e]=!0;break;case"full":this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([a])=>[a,!1])),this.joinsNotNullableMap[e]=!1}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");createSetOperator(a,b){return c=>{let d="function"==typeof c?c(db()):c;if(!ah(this.getSelectedFields(),d.getSelectedFields()))throw Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:a,isAll:b,rightSelect:d}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);except=this.createSetOperator("except",!1);addSetOperators(a){return this.config.setOperators.push(...a),this}where(a){return"function"==typeof a&&(a=a(new Proxy(this.config.fields,new ch({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.where=a,this}having(a){return"function"==typeof a&&(a=a(new Proxy(this.config.fields,new ch({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.having=a,this}groupBy(...a){if("function"==typeof a[0]){let b=a[0](new Proxy(this.config.fields,new ch({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(b)?b:[b]}else this.config.groupBy=a;return this}orderBy(...a){if("function"==typeof a[0]){let b=a[0](new Proxy(this.config.fields,new ch({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),c=Array.isArray(b)?b:[b];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=c:this.config.orderBy=c}else this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=a:this.config.orderBy=a;return this}limit(a){return this.config.setOperators.length>0?this.config.setOperators.at(-1).limit=a:this.config.limit=a,this}offset(a){return this.config.setOperators.length>0?this.config.setOperators.at(-1).offset=a:this.config.offset=a,this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:a,...b}=this.dialect.sqlToQuery(this.getSQL());return b}as(a){return new Proxy(new O(this.getSQL(),this.config.fields,a),new ch({alias:a,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new ch({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}}class c9 extends c8{static [f]="SQLiteSelect";_prepare(a=!0){if(!this.session)throw Error("Cannot execute a query on a query builder. Please use a database instance instead.");let b=ag(this.config.fields),c=this.session[a?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),b,"all",!0);return c.joinsNotNullableMap=this.joinsNotNullableMap,c}prepare(){return this._prepare(!1)}run=a=>this._prepare().run(a);all=a=>this._prepare().all(a);get=a=>this._prepare().get(a);values=a=>this._prepare().values(a);async execute(){return this.all()}}for(let a of[c6])for(let b of Object.getOwnPropertyNames(a.prototype))"constructor"!==b&&Object.defineProperty(c9.prototype,b,Object.getOwnPropertyDescriptor(a.prototype,b)||Object.create(null));function da(a,b){return(c,d,...e)=>{let f=[d,...e].map(c=>({type:a,isAll:b,rightSelect:c}));for(let a of f)if(!ah(c.getSelectedFields(),a.rightSelect.getSelectedFields()))throw Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return c.addSetOperators(f)}}let db=()=>({union:dc,unionAll:dd,intersect:de,except:df}),dc=da("union",!1),dd=da("union",!0),de=da("intersect",!1),df=da("except",!1);class dg{static [f]="SQLiteQueryBuilder";dialect;dialectConfig;constructor(a){this.dialect=g(a,c2)?a:void 0,this.dialectConfig=g(a,c2)?void 0:a}$with(a){let b=this;return{as:c=>("function"==typeof c&&(c=c(b)),new Proxy(new P(c.getSQL(),c.getSelectedFields(),a,!0),new ch({alias:a,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}}with(...a){let b=this;return{select:function(c){return new c7({fields:c??void 0,session:void 0,dialect:b.getDialect(),withList:a})},selectDistinct:function(c){return new c7({fields:c??void 0,session:void 0,dialect:b.getDialect(),withList:a,distinct:!0})}}}select(a){return new c7({fields:a??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(a){return new c7({fields:a??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}getDialect(){return this.dialect||(this.dialect=new c3(this.dialectConfig)),this.dialect}}class dh extends c6{constructor(a,b,c,d){super(),this.table=a,this.session=b,this.dialect=c,this.config={table:a,withList:d}}static [f]="SQLiteDelete";config;where(a){return this.config.where=a,this}orderBy(...a){if("function"==typeof a[0]){let b=a[0](new Proxy(this.config.table[t.Symbol.Columns],new ch({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),c=Array.isArray(b)?b:[b];this.config.orderBy=c}else this.config.orderBy=a;return this}limit(a){return this.config.limit=a,this}returning(a=this.table[c_.Symbol.Columns]){return this.config.returning=ag(a),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:a,...b}=this.dialect.sqlToQuery(this.getSQL());return b}_prepare(a=!0){return this.session[a?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0)}prepare(){return this._prepare(!1)}run=a=>this._prepare().run(a);all=a=>this._prepare().all(a);get=a=>this._prepare().get(a);values=a=>this._prepare().values(a);async execute(a){return this._prepare().execute(a)}$dynamic(){return this}}class di{constructor(a,b,c,d){this.table=a,this.session=b,this.dialect=c,this.withList=d}static [f]="SQLiteInsertBuilder";values(a){if(0===(a=Array.isArray(a)?a:[a]).length)throw Error("values() must be called with at least one value");let b=a.map(a=>{let b={},c=this.table[t.Symbol.Columns];for(let d of Object.keys(a)){let e=a[d];b[d]=g(e,V)?e:new Z(e,c[d])}return b});return new dj(this.table,b,this.session,this.dialect,this.withList)}select(a){let b="function"==typeof a?a(new dg):a;if(!g(b,V)&&!ah(this.table[m],b._.selectedFields))throw Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new dj(this.table,b,this.session,this.dialect,this.withList,!0)}}class dj extends c6{constructor(a,b,c,d,e,f){super(),this.session=c,this.dialect=d,this.config={table:a,values:b,withList:e,select:f}}static [f]="SQLiteInsert";config;returning(a=this.config.table[c_.Symbol.Columns]){return this.config.returning=ag(a),this}onConflictDoNothing(a={}){if(void 0===a.target)this.config.onConflict=$`do nothing`;else{let b=Array.isArray(a.target)?$`${a.target}`:$`${[a.target]}`,c=a.where?$` where ${a.where}`:$``;this.config.onConflict=$`${b} do nothing${c}`}return this}onConflictDoUpdate(a){if(a.where&&(a.targetWhere||a.setWhere))throw Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');let b=a.where?$` where ${a.where}`:void 0,c=a.targetWhere?$` where ${a.targetWhere}`:void 0,d=a.setWhere?$` where ${a.setWhere}`:void 0,e=Array.isArray(a.target)?$`${a.target}`:$`${[a.target]}`,f=this.dialect.buildUpdateSet(this.config.table,ai(this.config.table,a.set));return this.config.onConflict=$`${e}${c} do update set ${f}${b}${d}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:a,...b}=this.dialect.sqlToQuery(this.getSQL());return b}_prepare(a=!0){return this.session[a?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0)}prepare(){return this._prepare(!1)}run=a=>this._prepare().run(a);all=a=>this._prepare().all(a);get=a=>this._prepare().get(a);values=a=>this._prepare().values(a);async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}}class dk{constructor(a,b,c,d){this.table=a,this.session=b,this.dialect=c,this.withList=d}static [f]="SQLiteUpdateBuilder";set(a){return new dl(this.table,ai(this.table,a),this.session,this.dialect,this.withList)}}class dl extends c6{constructor(a,b,c,d,e){super(),this.session=c,this.dialect=d,this.config={set:b,table:a,withList:e,joins:[]}}static [f]="SQLiteUpdate";config;from(a){return this.config.from=a,this}createJoin(a){return(b,c)=>{let d=aj(b);if("string"==typeof d&&this.config.joins.some(a=>a.alias===d))throw Error(`Alias "${d}" is already used in this query`);if("function"==typeof c){let a=this.config.from?g(b,c_)?b[t.Symbol.Columns]:g(b,O)?b._.selectedFields:g(b,c1)?b[R].selectedFields:void 0:void 0;c=c(new Proxy(this.config.table[t.Symbol.Columns],new ch({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),a&&new Proxy(a,new ch({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}return this.config.joins.push({on:c,table:b,joinType:a,alias:d}),this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(a){return this.config.where=a,this}orderBy(...a){if("function"==typeof a[0]){let b=a[0](new Proxy(this.config.table[t.Symbol.Columns],new ch({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),c=Array.isArray(b)?b:[b];this.config.orderBy=c}else this.config.orderBy=a;return this}limit(a){return this.config.limit=a,this}returning(a=this.config.table[c_.Symbol.Columns]){return this.config.returning=ag(a),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:a,...b}=this.dialect.sqlToQuery(this.getSQL());return b}_prepare(a=!0){return this.session[a?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0)}prepare(){return this._prepare(!1)}run=a=>this._prepare().run(a);all=a=>this._prepare().all(a);get=a=>this._prepare().get(a);values=a=>this._prepare().values(a);async execute(){return this.config.returning?this.all():this.run()}$dynamic(){return this}}class dm extends V{constructor(a){super(dm.buildEmbeddedCount(a.source,a.filters).queryChunks),this.params=a,this.session=a.session,this.sql=dm.buildCount(a.source,a.filters)}sql;static [f]="SQLiteCountBuilderAsync";[Symbol.toStringTag]="SQLiteCountBuilderAsync";session;static buildEmbeddedCount(a,b){return $`(select count(*) from ${a}${$.raw(" where ").if(b)}${b})`}static buildCount(a,b){return $`select count(*) from ${a}${$.raw(" where ").if(b)}${b}`}then(a,b){return Promise.resolve(this.session.count(this.sql)).then(a,b)}catch(a){return this.then(void 0,a)}finally(a){return this.then(b=>(a?.(),b),b=>{throw a?.(),b})}}class dn{constructor(a,b,c,d,e,f,g,h){this.mode=a,this.fullSchema=b,this.schema=c,this.tableNamesMap=d,this.table=e,this.tableConfig=f,this.dialect=g,this.session=h}static [f]="SQLiteAsyncRelationalQueryBuilder";findMany(a){return"sync"===this.mode?new dq(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,a||{},"many"):new dp(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,a||{},"many")}findFirst(a){return"sync"===this.mode?new dq(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,a?{...a,limit:1}:{limit:1},"first"):new dp(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,a?{...a,limit:1}:{limit:1},"first")}}class dp extends c6{constructor(a,b,c,d,e,f,g,h,i){super(),this.fullSchema=a,this.schema=b,this.tableNamesMap=c,this.table=d,this.tableConfig=e,this.dialect=f,this.session=g,this.config=h,this.mode=i}static [f]="SQLiteAsyncRelationalQuery";mode;getSQL(){return this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}).sql}_prepare(a=!1){let{query:b,builtQuery:c}=this._toSQL();return this.session[a?"prepareOneTimeQuery":"prepareQuery"](c,void 0,"first"===this.mode?"get":"all",!0,(a,c)=>{let d=a.map(a=>(function a(b,c,d,e,f=a=>a){let h={};for(let[i,j]of e.entries())if(j.isJson){let e=c.relations[j.tsKey],k=d[i],l="string"==typeof k?JSON.parse(k):k;h[j.tsKey]=g(e,b6)?l&&a(b,b[j.relationTableTsKey],l,j.selection,f):l.map(c=>a(b,b[j.relationTableTsKey],c,j.selection,f))}else{let a,b=f(d[i]),c=j.field;a=g(c,v)?c:g(c,V)?c.decoder:c.sql.decoder,h[j.tsKey]=null===b?null:a.mapFromDriverValue(b)}return h})(this.schema,this.tableConfig,a,b.selection,c));return"first"===this.mode?d[0]:d})}prepare(){return this._prepare(!1)}_toSQL(){let a=this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}),b=this.dialect.sqlToQuery(a.sql);return{query:a,builtQuery:b}}toSQL(){return this._toSQL().builtQuery}executeRaw(){return"first"===this.mode?this._prepare(!1).get():this._prepare(!1).all()}async execute(){return this.executeRaw()}}class dq extends dp{static [f]="SQLiteSyncRelationalQuery";sync(){return this.executeRaw()}}class dr extends c6{constructor(a,b,c,d,e){super(),this.execute=a,this.getSQL=b,this.dialect=d,this.mapBatchResult=e,this.config={action:c}}static [f]="SQLiteRaw";config;getQuery(){return{...this.dialect.sqlToQuery(this.getSQL()),method:this.config.action}}mapResult(a,b){return b?this.mapBatchResult(a):a}_prepare(){return this}isResponseInArrayMode(){return!1}}class ds{constructor(a,b,c,d){this.resultKind=a,this.dialect=b,this.session=c,this._=d?{schema:d.schema,fullSchema:d.fullSchema,tableNamesMap:d.tableNamesMap}:{schema:void 0,fullSchema:{},tableNamesMap:{}},this.query={};const e=this.query;if(this._.schema)for(const[f,g]of Object.entries(this._.schema))e[f]=new dn(a,d.fullSchema,this._.schema,this._.tableNamesMap,d.fullSchema[f],g,b,c)}static [f]="BaseSQLiteDatabase";query;$with(a){let b=this;return{as:c=>("function"==typeof c&&(c=c(new dg(b.dialect))),new Proxy(new P(c.getSQL(),c.getSelectedFields(),a,!0),new ch({alias:a,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}}$count(a,b){return new dm({source:a,filters:b,session:this.session})}with(...a){let b=this;return{select:function(c){return new c7({fields:c??void 0,session:b.session,dialect:b.dialect,withList:a})},selectDistinct:function(c){return new c7({fields:c??void 0,session:b.session,dialect:b.dialect,withList:a,distinct:!0})},update:function(c){return new dk(c,b.session,b.dialect,a)},insert:function(c){return new di(c,b.session,b.dialect,a)},delete:function(c){return new dh(c,b.session,b.dialect,a)}}}select(a){return new c7({fields:a??void 0,session:this.session,dialect:this.dialect})}selectDistinct(a){return new c7({fields:a??void 0,session:this.session,dialect:this.dialect,distinct:!0})}update(a){return new dk(a,this.session,this.dialect)}insert(a){return new di(a,this.session,this.dialect)}delete(a){return new dh(a,this.session,this.dialect)}run(a){let b="string"==typeof a?$.raw(a):a.getSQL();return"async"===this.resultKind?new dr(async()=>this.session.run(b),()=>b,"run",this.dialect,this.session.extractRawRunValueFromBatchResult.bind(this.session)):this.session.run(b)}all(a){let b="string"==typeof a?$.raw(a):a.getSQL();return"async"===this.resultKind?new dr(async()=>this.session.all(b),()=>b,"all",this.dialect,this.session.extractRawAllValueFromBatchResult.bind(this.session)):this.session.all(b)}get(a){let b="string"==typeof a?$.raw(a):a.getSQL();return"async"===this.resultKind?new dr(async()=>this.session.get(b),()=>b,"get",this.dialect,this.session.extractRawGetValueFromBatchResult.bind(this.session)):this.session.get(b)}values(a){let b="string"==typeof a?$.raw(a):a.getSQL();return"async"===this.resultKind?new dr(async()=>this.session.values(b),()=>b,"values",this.dialect,this.session.extractRawValuesValueFromBatchResult.bind(this.session)):this.session.values(b)}transaction(a,b){return this.session.transaction(a,b)}}class dt extends c6{constructor(a){super(),this.resultCb=a}static [f]="ExecuteResultSync";async execute(){return this.resultCb()}sync(){return this.resultCb()}}class du{constructor(a,b,c){this.mode=a,this.executeMethod=b,this.query=c}static [f]="PreparedQuery";joinsNotNullableMap;getQuery(){return this.query}mapRunResult(a,b){return a}mapAllResult(a,b){throw Error("Not implemented")}mapGetResult(a,b){throw Error("Not implemented")}execute(a){return"async"===this.mode?this[this.executeMethod](a):new dt(()=>this[this.executeMethod](a))}mapResult(a,b){switch(this.executeMethod){case"run":return this.mapRunResult(a,b);case"all":return this.mapAllResult(a,b);case"get":return this.mapGetResult(a,b)}}}class dv{constructor(a){this.dialect=a}static [f]="SQLiteSession";prepareOneTimeQuery(a,b,c,d){return this.prepareQuery(a,b,c,d)}run(a){let b=this.dialect.sqlToQuery(a);try{return this.prepareOneTimeQuery(b,void 0,"run",!1).run()}catch(a){throw new cm({cause:a,message:`Failed to run the query '${b.sql}'`})}}extractRawRunValueFromBatchResult(a){return a}all(a){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(a),void 0,"run",!1).all()}extractRawAllValueFromBatchResult(a){throw Error("Not implemented")}get(a){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(a),void 0,"run",!1).get()}extractRawGetValueFromBatchResult(a){throw Error("Not implemented")}values(a){return this.prepareOneTimeQuery(this.dialect.sqlToQuery(a),void 0,"run",!1).values()}async count(a){return(await this.values(a))[0][0]}extractRawValuesValueFromBatchResult(a){throw Error("Not implemented")}}class dw extends ds{constructor(a,b,c,d,e=0){super(a,b,c,d),this.schema=d,this.nestedIndex=e}static [f]="SQLiteTransaction";rollback(){throw new cn}}class dx extends dv{constructor(a,b,c,d={}){super(b),this.client=a,this.schema=c,this.logger=d.logger??new j}static [f]="BetterSQLiteSession";logger;prepareQuery(a,b,c,d,e){return new dz(this.client.prepare(a.sql),a,this.logger,b,c,d,e)}transaction(a,b={}){let c=new dy("sync",this.dialect,this,this.schema);return this.client.transaction(a)[b.behavior??"deferred"](c)}}class dy extends dw{static [f]="BetterSQLiteTransaction";transaction(a){let b=`sp${this.nestedIndex}`,c=new dy("sync",this.dialect,this.session,this.schema,this.nestedIndex+1);this.session.run($.raw(`savepoint ${b}`));try{let d=a(c);return this.session.run($.raw(`release savepoint ${b}`)),d}catch(a){throw this.session.run($.raw(`rollback to savepoint ${b}`)),a}}}class dz extends du{constructor(a,b,c,d,e,f,g){super("sync",e,b),this.stmt=a,this.logger=c,this.fields=d,this._isResponseInArrayMode=f,this.customResultMapper=g}static [f]="BetterSQLitePreparedQuery";run(a){let b=ac(this.query.params,a??{});return this.logger.logQuery(this.query.sql,b),this.stmt.run(...b)}all(a){let{fields:b,joinsNotNullableMap:c,query:d,logger:e,stmt:f,customResultMapper:g}=this;if(!b&&!g){let b=ac(d.params,a??{});return e.logQuery(d.sql,b),f.all(...b)}let h=this.values(a);return g?g(h):h.map(a=>af(b,a,c))}get(a){let b=ac(this.query.params,a??{});this.logger.logQuery(this.query.sql,b);let{fields:c,stmt:d,joinsNotNullableMap:e,customResultMapper:f}=this;if(!c&&!f)return d.get(...b);let g=d.raw().get(...b);if(g)return f?f([g]):af(c,g,e)}values(a){let b=ac(this.query.params,a??{});return this.logger.logQuery(this.query.sql,b),this.stmt.raw().all(...b)}isResponseInArrayMode(){return this._isResponseInArrayMode}}class dA extends ds{static [f]="BetterSQLite3Database"}function dB(a,b={}){let c,d,e=new c3({casing:b.casing});if(!0===b.logger?c=new i:!1!==b.logger&&(c=b.logger),b.schema){let a=function(a,b){1===Object.keys(a).length&&"default"in a&&!g(a.default,t)&&(a=a.default);let c={},d={},e={};for(let[f,h]of Object.entries(a))if(g(h,t)){let a=u(h),b=d[a];for(let d of(c[a]=f,e[f]={tsName:f,dbName:h[t.Symbol.Name],schema:h[t.Symbol.Schema],columns:h[t.Symbol.Columns],relations:b?.relations??{},primaryKey:b?.primaryKey??[]},Object.values(h[t.Symbol.Columns])))d.primary&&e[f].primaryKey.push(d);let i=h[t.Symbol.ExtraConfigBuilder]?.(h[t.Symbol.ExtraConfigColumns]);if(i)for(let a of Object.values(i))g(a,bG)&&e[f].primaryKey.push(...a.columns)}else if(g(h,b5)){let a,f=u(h.table),g=c[f];for(let[c,i]of Object.entries(h.config(b(h.table))))if(g){let b=e[g];b.relations[c]=i,a&&b.primaryKey.push(...a)}else f in d||(d[f]={relations:{},primaryKey:a}),d[f].relations[c]=i}return{tables:e,tableNamesMap:c}}(b.schema,b9);d={fullSchema:b.schema,schema:a.tables,tableNamesMap:a.tableNamesMap}}let f=new dx(a,e,d,{logger:c}),h=new dA("sync",e,f,d);return h.$client=a,h}function dC(...a){if(void 0===a[0]||"string"==typeof a[0])return dB(void 0===a[0]?new e.default:new e.default(a[0]),a[1]);if(function(a){if("object"!=typeof a||null===a||"Object"!==a.constructor.name)return!1;if("logger"in a){let b=typeof a.logger;return"boolean"===b||"object"===b&&"function"==typeof a.logger.logQuery||"undefined"===b}if("schema"in a){let b=typeof a.logger;return"object"===b||"undefined"===b}if("casing"in a){let b=typeof a.logger;return"string"===b||"undefined"===b}if("mode"in a)return"default"===a.mode&&"planetscale"===a.mode&&void 0===a.mode;if("connection"in a){let b=typeof a.connection;return"string"===b||"object"===b||"undefined"===b}if("client"in a){let b=typeof a.client;return"object"===b||"function"===b||"undefined"===b}return 0===Object.keys(a).length}(a[0])){let{connection:b,client:c,...d}=a[0];if(c)return dB(c,d);if("object"==typeof b){let{source:a,...c}=b;return dB(new e.default(a,c),d)}return dB(new e.default(b),d)}return dB(a[0],a[1])}(dC||(dC={})).mock=function(a){return dB({},a)};class dD{constructor(a,b){this.name=a,this.unique=b}static [f]="SQLiteIndexBuilderOn";on(...a){return new dE(this.name,a,this.unique)}}class dE{static [f]="SQLiteIndexBuilder";config;constructor(a,b,c){this.config={name:a,columns:b,unique:c,where:void 0}}where(a){return this.config.where=a,this}build(a){return new dF(this.config,a)}}class dF{static [f]="SQLiteIndex";config;constructor(a,b){this.config={...a,table:b}}}let dG=c0("projects",{id:cZ("id").primaryKey(),githubOwner:cZ("github_owner").notNull(),githubRepo:cZ("github_repo").notNull(),displayName:cZ("display_name"),description:cZ("description"),homepageUrl:cZ("homepage_url"),stars:cO("stars").default(0),isPublic:cO("is_public",{mode:"boolean"}).default(!0),isFeatured:cO("is_featured",{mode:"boolean"}).default(!1),lastSyncedAt:cO("last_synced_at",{mode:"timestamp"}),createdAt:cO("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),updatedAt:cO("updated_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)}),dH=c0("specs",{id:cZ("id").primaryKey(),projectId:cZ("project_id").notNull().references(()=>dG.id,{onDelete:"cascade"}),specNumber:cO("spec_number"),specName:cZ("spec_name").notNull(),title:cZ("title"),status:cZ("status",{enum:["planned","in-progress","complete","archived"]}),priority:cZ("priority",{enum:["low","medium","high","critical"]}),tags:cZ("tags"),assignee:cZ("assignee"),contentMd:cZ("content_md").notNull(),contentHtml:cZ("content_html"),createdAt:cO("created_at",{mode:"timestamp"}),updatedAt:cO("updated_at",{mode:"timestamp"}),completedAt:cO("completed_at",{mode:"timestamp"}),filePath:cZ("file_path").notNull(),githubUrl:cZ("github_url"),syncedAt:cO("synced_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)},a=>({uniqueSpecNumber:new dD("unique_spec_number",!0).on(a.projectId,a.specNumber)})),dI=c0("spec_relationships",{id:cZ("id").primaryKey(),specId:cZ("spec_id").notNull().references(()=>dH.id,{onDelete:"cascade"}),relatedSpecId:cZ("related_spec_id").notNull().references(()=>dH.id,{onDelete:"cascade"}),relationshipType:cZ("relationship_type",{enum:["depends_on","related"]}).notNull(),createdAt:cO("created_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date)}),dJ=c0("sync_logs",{id:cZ("id").primaryKey(),projectId:cZ("project_id").notNull().references(()=>dG.id,{onDelete:"cascade"}),status:cZ("status",{enum:["pending","running","success","failed"]}).notNull(),specsAdded:cO("specs_added").default(0),specsUpdated:cO("specs_updated").default(0),specsDeleted:cO("specs_deleted").default(0),errorMessage:cZ("error_message"),startedAt:cO("started_at",{mode:"timestamp"}).notNull().$defaultFn(()=>new Date),completedAt:cO("completed_at",{mode:"timestamp"}),durationMs:cO("duration_ms")}),dK=b8(dG,({many:a})=>({specs:a(dH),syncLogs:a(dJ)})),dL=b8(dH,({one:a,many:b})=>({project:a(dG,{fields:[dH.projectId],references:[dG.id]}),dependencies:b(dI,{relationName:"spec"}),dependents:b(dI,{relationName:"relatedSpec"})})),dM=b8(dI,({one:a})=>({spec:a(dH,{fields:[dI.specId],references:[dH.id],relationName:"spec"}),relatedSpec:a(dH,{fields:[dI.relatedSpecId],references:[dH.id],relationName:"relatedSpec"})})),dN=b8(dJ,({one:a})=>({project:a(dG,{fields:[dJ.projectId],references:[dG.id]})}));a.s(["projects",0,dG,"projectsRelations",0,dK,"specRelationships",0,dI,"specRelationshipsRelations",0,dM,"specs",0,dH,"specsRelations",0,dL,"syncLogs",0,dJ,"syncLogsRelations",0,dN],21644);var dO=a.i(21644),dP=a.i(14747);let dQ=null,dR=null,dS=new Proxy({},{get:(a,b,c)=>Reflect.get(function(){if(!dQ){let a=process.env.DATABASE_PATH||(0,dP.join)(process.cwd(),"leanspec.db");(function(a){a.pragma("foreign_keys = ON");let b=b=>!!a.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name = ?").get(b);b("projects")||a.exec(`
14
+ CREATE TABLE IF NOT EXISTS "projects" (
15
+ "id" TEXT PRIMARY KEY NOT NULL,
16
+ "github_owner" TEXT NOT NULL,
17
+ "github_repo" TEXT NOT NULL,
18
+ "display_name" TEXT,
19
+ "description" TEXT,
20
+ "homepage_url" TEXT,
21
+ "stars" INTEGER DEFAULT 0,
22
+ "is_public" INTEGER DEFAULT 1,
23
+ "is_featured" INTEGER DEFAULT 0,
24
+ "last_synced_at" INTEGER,
25
+ "created_at" INTEGER NOT NULL,
26
+ "updated_at" INTEGER NOT NULL
27
+ );
28
+ `),b("specs")||a.exec(`
29
+ CREATE TABLE IF NOT EXISTS "specs" (
30
+ "id" TEXT PRIMARY KEY NOT NULL,
31
+ "project_id" TEXT NOT NULL REFERENCES "projects"("id") ON DELETE CASCADE,
32
+ "spec_number" INTEGER,
33
+ "spec_name" TEXT NOT NULL,
34
+ "title" TEXT,
35
+ "status" TEXT,
36
+ "priority" TEXT,
37
+ "tags" TEXT,
38
+ "assignee" TEXT,
39
+ "content_md" TEXT NOT NULL,
40
+ "content_html" TEXT,
41
+ "created_at" INTEGER,
42
+ "updated_at" INTEGER,
43
+ "completed_at" INTEGER,
44
+ "file_path" TEXT NOT NULL,
45
+ "github_url" TEXT,
46
+ "synced_at" INTEGER NOT NULL
47
+ );
48
+ `),b("spec_relationships")||a.exec(`
49
+ CREATE TABLE IF NOT EXISTS "spec_relationships" (
50
+ "id" TEXT PRIMARY KEY NOT NULL,
51
+ "spec_id" TEXT NOT NULL REFERENCES "specs"("id") ON DELETE CASCADE,
52
+ "related_spec_id" TEXT NOT NULL REFERENCES "specs"("id") ON DELETE CASCADE,
53
+ "relationship_type" TEXT NOT NULL,
54
+ "created_at" INTEGER NOT NULL
55
+ );
56
+ `),b("sync_logs")||a.exec(`
57
+ CREATE TABLE IF NOT EXISTS "sync_logs" (
58
+ "id" TEXT PRIMARY KEY NOT NULL,
59
+ "project_id" TEXT NOT NULL REFERENCES "projects"("id") ON DELETE CASCADE,
60
+ "status" TEXT NOT NULL,
61
+ "specs_added" INTEGER DEFAULT 0,
62
+ "specs_updated" INTEGER DEFAULT 0,
63
+ "specs_deleted" INTEGER DEFAULT 0,
64
+ "error_message" TEXT,
65
+ "started_at" INTEGER NOT NULL,
66
+ "completed_at" INTEGER,
67
+ "duration_ms" INTEGER
68
+ );
69
+ `),a.prepare("SELECT name FROM sqlite_master WHERE type='index' AND name = ?").get("unique_spec_number")||a.exec(`
70
+ CREATE UNIQUE INDEX IF NOT EXISTS "unique_spec_number"
71
+ ON "specs" ("project_id", "spec_number");
72
+ `)})(dR=new e.default(a)),dQ=dC(dR,{schema:dO})}return dQ}(),b,c)});class dT{async getAllSpecs(a){let b=a?dS.select().from(dO.specs).where(bJ(dO.specs.projectId,a)):dS.select().from(dO.specs);return await b.orderBy(dO.specs.specNumber)}async getSpec(a,b){if(!b)return null;let c=parseInt(a.split("-")[0],10);if(isNaN(c))return null;let d=await dS.select().from(dO.specs).where(bL(bJ(dO.specs.projectId,b),bJ(dO.specs.specNumber,c))).limit(1);return d.length>0?d[0]:null}async getSpecsByStatus(a,b){let c=[bJ(dO.specs.status,a)];return b&&c.push(bJ(dO.specs.projectId,b)),await dS.select().from(dO.specs).where(bL(...c)).orderBy(dO.specs.specNumber)}async searchSpecs(a,b){let c=await this.getAllSpecs(b),d=a.toLowerCase();return c.filter(a=>a.specName.toLowerCase().includes(d)||a.title?.toLowerCase().includes(d)||a.contentMd.toLowerCase().includes(d))}invalidateCache(){}}a.s(["DatabaseSource",()=>dT],87803)}];
14
73
 
15
74
  //# sourceMappingURL=packages_ui_src_lib_specs_sources_database-source_ts_f7186c2a._.js.map
@@ -8,12 +8,12 @@ globalThis.__BUILD_MANIFEST = {
8
8
  ],
9
9
  "lowPriorityFiles": [],
10
10
  "rootMainFiles": [
11
- "static/chunks/c557ac675be79771.js",
11
+ "static/chunks/b760a3a9c2c8be28.js",
12
12
  "static/chunks/ebd89051637b9a47.js",
13
- "static/chunks/5c2072ad938de8ed.js",
14
- "static/chunks/f3ec9fd77a8618b1.js",
15
13
  "static/chunks/7f732ea69e643219.js",
16
- "static/chunks/turbopack-7450632b40b2e378.js"
14
+ "static/chunks/f3ec9fd77a8618b1.js",
15
+ "static/chunks/5c2072ad938de8ed.js",
16
+ "static/chunks/turbopack-b9690cacbf9fe48c.js"
17
17
  ]
18
18
  };
19
19
  globalThis.__BUILD_MANIFEST.lowPriorityFiles = [