@shepai/cli 1.116.3-pr373.2304074 → 1.117.0

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 (357) hide show
  1. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  2. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
  3. package/dist/tsconfig.build.tsbuildinfo +1 -1
  4. package/package.json +1 -1
  5. package/web/.next/BUILD_ID +1 -1
  6. package/web/.next/app-path-routes-manifest.json +0 -1
  7. package/web/.next/build-manifest.json +6 -6
  8. package/web/.next/fallback-build-manifest.json +2 -2
  9. package/web/.next/prerender-manifest.json +3 -3
  10. package/web/.next/required-server-files.js +2 -2
  11. package/web/.next/required-server-files.json +2 -2
  12. package/web/.next/routes-manifest.json +0 -6
  13. package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +4 -4
  14. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +21 -21
  15. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  16. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  17. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +4 -4
  18. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +27 -27
  19. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  20. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  21. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +4 -4
  22. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +27 -27
  23. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  24. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  25. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +4 -4
  26. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +19 -19
  27. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  28. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  29. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +4 -4
  30. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +21 -21
  31. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  32. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  33. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +4 -4
  34. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +27 -27
  35. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  36. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  37. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +4 -4
  38. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +27 -27
  39. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  40. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  41. package/web/.next/server/app/(dashboard)/page/build-manifest.json +4 -4
  42. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +19 -19
  43. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  44. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  45. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +4 -4
  46. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +19 -19
  47. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  48. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  49. package/web/.next/server/app/_global-error/page/build-manifest.json +4 -4
  50. package/web/.next/server/app/_global-error.html +2 -2
  51. package/web/.next/server/app/_global-error.rsc +1 -1
  52. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  53. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  54. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  55. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  56. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  57. package/web/.next/server/app/_not-found/page/build-manifest.json +4 -4
  58. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  59. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  60. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  61. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  62. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  63. package/web/.next/server/app/settings/page/build-manifest.json +4 -4
  64. package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
  65. package/web/.next/server/app/settings/page.js +1 -1
  66. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  67. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  68. package/web/.next/server/app/skills/page/build-manifest.json +4 -4
  69. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  70. package/web/.next/server/app/skills/page.js +1 -1
  71. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  72. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  73. package/web/.next/server/app/tools/page/build-manifest.json +4 -4
  74. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  75. package/web/.next/server/app/tools/page.js +1 -1
  76. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  77. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  78. package/web/.next/server/app/version/page/build-manifest.json +4 -4
  79. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  80. package/web/.next/server/app/version/page.js.nft.json +1 -1
  81. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  82. package/web/.next/server/app-paths-manifest.json +0 -1
  83. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  84. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_2eacac96.js +1 -1
  85. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_2eacac96.js.map +1 -1
  86. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_46d6bf1b.js +1 -1
  87. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_46d6bf1b.js.map +1 -1
  88. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_54b1e179.js +1 -1
  89. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_54b1e179.js.map +1 -1
  90. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_6c70ecca.js +1 -1
  91. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_6c70ecca.js.map +1 -1
  92. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_c29a2302.js +1 -1
  93. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_c29a2302.js.map +1 -1
  94. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_c9978986.js +1 -1
  95. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_c9978986.js.map +1 -1
  96. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_ce6dae5d.js +1 -1
  97. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_ce6dae5d.js.map +1 -1
  98. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_d1fd387b.js +1 -1
  99. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_d1fd387b.js.map +1 -1
  100. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_d82f78f0.js +1 -1
  101. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_d82f78f0.js.map +1 -1
  102. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  103. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  104. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_d0119342._.js +3 -0
  105. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_d0119342._.js.map +1 -0
  106. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_rocket_1575cd4d.js +3 -0
  107. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_rocket_1575cd4d.js.map +1 -0
  108. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_ed372306.js +1 -1
  109. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_ed372306.js.map +1 -1
  110. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_32e26434.js +1 -1
  111. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_32e26434.js.map +1 -1
  112. package/web/.next/server/chunks/ssr/[root-of-the-server]__07a39ff2._.js +1 -1
  113. package/web/.next/server/chunks/ssr/[root-of-the-server]__07a39ff2._.js.map +1 -1
  114. package/web/.next/server/chunks/ssr/[root-of-the-server]__0880ff0e._.js +1 -1
  115. package/web/.next/server/chunks/ssr/[root-of-the-server]__0880ff0e._.js.map +1 -1
  116. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
  117. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
  118. package/web/.next/server/chunks/ssr/[root-of-the-server]__172d9576._.js +1 -1
  119. package/web/.next/server/chunks/ssr/[root-of-the-server]__172d9576._.js.map +1 -1
  120. package/web/.next/server/chunks/ssr/[root-of-the-server]__23b5ca2c._.js +1 -1
  121. package/web/.next/server/chunks/ssr/[root-of-the-server]__23b5ca2c._.js.map +1 -1
  122. package/web/.next/server/chunks/ssr/[root-of-the-server]__24dd0927._.js +2 -2
  123. package/web/.next/server/chunks/ssr/[root-of-the-server]__2a5592d5._.js +1 -1
  124. package/web/.next/server/chunks/ssr/[root-of-the-server]__2a5592d5._.js.map +1 -1
  125. package/web/.next/server/chunks/ssr/[root-of-the-server]__52485955._.js +1 -1
  126. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +4 -0
  127. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js.map +1 -0
  128. package/web/.next/server/chunks/ssr/[root-of-the-server]__5edfc56b._.js +1 -1
  129. package/web/.next/server/chunks/ssr/[root-of-the-server]__5edfc56b._.js.map +1 -1
  130. package/web/.next/server/chunks/ssr/[root-of-the-server]__6367aea0._.js +3 -0
  131. package/web/.next/server/chunks/ssr/[root-of-the-server]__6367aea0._.js.map +1 -0
  132. package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js +1 -1
  133. package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js.map +1 -1
  134. package/web/.next/server/chunks/ssr/[root-of-the-server]__6eb2a2b0._.js +1 -1
  135. package/web/.next/server/chunks/ssr/[root-of-the-server]__6eb2a2b0._.js.map +1 -1
  136. package/web/.next/server/chunks/ssr/{[root-of-the-server]__19187772._.js → [root-of-the-server]__89e8a5cc._.js} +3 -3
  137. package/web/.next/server/chunks/ssr/[root-of-the-server]__89e8a5cc._.js.map +1 -0
  138. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c88ef55._.js +1 -1
  139. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c88ef55._.js.map +1 -1
  140. package/web/.next/server/chunks/ssr/[root-of-the-server]__a93289b0._.js +1 -1
  141. package/web/.next/server/chunks/ssr/[root-of-the-server]__a93289b0._.js.map +1 -1
  142. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +2 -2
  143. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  144. package/web/.next/server/chunks/ssr/[root-of-the-server]__ac0304e7._.js +1 -1
  145. package/web/.next/server/chunks/ssr/[root-of-the-server]__ac0304e7._.js.map +1 -1
  146. package/web/.next/server/chunks/ssr/[root-of-the-server]__b1e68e34._.js +3 -0
  147. package/web/.next/server/chunks/ssr/[root-of-the-server]__b1e68e34._.js.map +1 -0
  148. package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js +1 -1
  149. package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js.map +1 -1
  150. package/web/.next/server/chunks/ssr/[root-of-the-server]__c9777776._.js +1 -1
  151. package/web/.next/server/chunks/ssr/[root-of-the-server]__c9777776._.js.map +1 -1
  152. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
  153. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
  154. package/web/.next/server/chunks/ssr/_0e506641._.js +7 -0
  155. package/web/.next/server/chunks/ssr/_0e506641._.js.map +1 -0
  156. package/web/.next/server/chunks/ssr/_125679ad._.js +3 -0
  157. package/web/.next/server/chunks/ssr/_125679ad._.js.map +1 -0
  158. package/web/.next/server/chunks/ssr/_135edb9c._.js +3 -0
  159. package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -0
  160. package/web/.next/server/chunks/ssr/_16235e5e._.js +1 -1
  161. package/web/.next/server/chunks/ssr/_16235e5e._.js.map +1 -1
  162. package/web/.next/server/chunks/ssr/_1bb131c4._.js +3 -0
  163. package/web/.next/server/chunks/ssr/_1bb131c4._.js.map +1 -0
  164. package/web/.next/server/chunks/ssr/_273d4632._.js +3 -0
  165. package/web/.next/server/chunks/ssr/_273d4632._.js.map +1 -0
  166. package/web/.next/server/chunks/ssr/_6887cba3._.js +1 -1
  167. package/web/.next/server/chunks/ssr/_6887cba3._.js.map +1 -1
  168. package/web/.next/server/chunks/ssr/_6d26a08f._.js +3 -0
  169. package/web/.next/server/chunks/ssr/_6d26a08f._.js.map +1 -0
  170. package/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
  171. package/web/.next/server/chunks/ssr/_8dacd1e7._.js.map +1 -1
  172. package/web/.next/server/chunks/ssr/_8eeee4db._.js +1 -1
  173. package/web/.next/server/chunks/ssr/_8eeee4db._.js.map +1 -1
  174. package/web/.next/server/chunks/ssr/{_a0b23a7c._.js → _a8d14ab2._.js} +2 -2
  175. package/web/.next/server/chunks/ssr/{_a0b23a7c._.js.map → _a8d14ab2._.js.map} +1 -1
  176. package/web/.next/server/chunks/ssr/_b5fc318a._.js +3 -0
  177. package/web/.next/server/chunks/ssr/_b5fc318a._.js.map +1 -0
  178. package/web/.next/server/chunks/ssr/_cc77a143._.js +3 -0
  179. package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -0
  180. package/web/.next/server/chunks/ssr/{_9f81a163._.js → _d6a1ec27._.js} +2 -2
  181. package/web/.next/server/chunks/ssr/{_9f81a163._.js.map → _d6a1ec27._.js.map} +1 -1
  182. package/web/.next/server/chunks/ssr/_ed11dcd6._.js +1 -1
  183. package/web/.next/server/chunks/ssr/_ed11dcd6._.js.map +1 -1
  184. package/web/.next/server/chunks/ssr/_f4d222d6._.js +1 -1
  185. package/web/.next/server/chunks/ssr/_f4d222d6._.js.map +1 -1
  186. package/web/.next/server/chunks/ssr/_f5316e67._.js +3 -0
  187. package/web/.next/server/chunks/ssr/_f5316e67._.js.map +1 -0
  188. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  189. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  190. package/web/.next/server/chunks/ssr/src_presentation_web_0835b28e._.js +2 -2
  191. package/web/.next/server/chunks/ssr/src_presentation_web_0835b28e._.js.map +1 -1
  192. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_e99d78dd.js +1 -1
  193. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_e99d78dd.js.map +1 -1
  194. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  195. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  196. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  197. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  198. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
  199. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
  200. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  201. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  202. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  203. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  204. package/web/.next/server/chunks/ssr/src_presentation_web_e8034a29._.js +2 -2
  205. package/web/.next/server/chunks/ssr/src_presentation_web_e8034a29._.js.map +1 -1
  206. package/web/.next/server/middleware-build-manifest.js +4 -4
  207. package/web/.next/server/pages/500.html +2 -2
  208. package/web/.next/server/server-reference-manifest.js +1 -1
  209. package/web/.next/server/server-reference-manifest.json +32 -99
  210. package/web/.next/static/chunks/{b890d6030441cf27.js → 2251df6427162751.js} +1 -1
  211. package/web/.next/static/chunks/{fc0fb1f7061949ef.js → 2c98935265aa3622.js} +2 -2
  212. package/web/.next/static/chunks/303a1217006489b9.js +1 -0
  213. package/web/.next/static/chunks/{206f677ee9f6dc5d.js → 34b275db4ad6fb5d.js} +1 -1
  214. package/web/.next/static/chunks/3a806cf059241bc9.js +1 -0
  215. package/web/.next/static/chunks/{c6ad05eb3945ee43.js → 425894e5bf370bd2.js} +2 -2
  216. package/web/.next/static/chunks/498777301470975b.js +1 -0
  217. package/web/.next/static/chunks/50f06bb71bace452.js +1 -0
  218. package/web/.next/static/chunks/5fe03deadb83628b.js +1 -0
  219. package/web/.next/static/chunks/619af41a8d3232e5.js +1 -0
  220. package/web/.next/static/chunks/62a8173911f8f130.css +1 -0
  221. package/web/.next/static/chunks/84a181ff3270fd9f.js +1 -0
  222. package/web/.next/static/chunks/b1f3c0e8e9872ef8.js +1 -0
  223. package/web/.next/static/chunks/b855de1b1e5458f6.js +11 -0
  224. package/web/.next/static/chunks/c76f6d06b1b69b57.js +1 -0
  225. package/web/.next/static/chunks/e2caffa0bb759c6c.js +1 -0
  226. package/web/.next/static/chunks/ed3a602003bcb31b.js +1 -0
  227. package/web/.next/static/chunks/fcde0cbb2976b933.js +1 -0
  228. package/web/.next/static/chunks/{turbopack-b1685b5f87ad1d60.js → turbopack-426d9bc2450816ba.js} +1 -1
  229. package/dist/src/presentation/web/app/actions/execute-query.d.ts +0 -7
  230. package/dist/src/presentation/web/app/actions/execute-query.d.ts.map +0 -1
  231. package/dist/src/presentation/web/app/actions/execute-query.js +0 -55
  232. package/dist/src/presentation/web/app/actions/get-table-rows.d.ts +0 -10
  233. package/dist/src/presentation/web/app/actions/get-table-rows.d.ts.map +0 -1
  234. package/dist/src/presentation/web/app/actions/get-table-rows.js +0 -55
  235. package/dist/src/presentation/web/app/actions/get-table-schema.d.ts +0 -13
  236. package/dist/src/presentation/web/app/actions/get-table-schema.d.ts.map +0 -1
  237. package/dist/src/presentation/web/app/actions/get-table-schema.js +0 -27
  238. package/dist/src/presentation/web/app/actions/list-tables.d.ts +0 -10
  239. package/dist/src/presentation/web/app/actions/list-tables.d.ts.map +0 -1
  240. package/dist/src/presentation/web/app/actions/list-tables.js +0 -19
  241. package/dist/src/presentation/web/app/database/page.d.ts +0 -4
  242. package/dist/src/presentation/web/app/database/page.d.ts.map +0 -1
  243. package/dist/src/presentation/web/app/database/page.js +0 -15
  244. package/dist/src/presentation/web/components/features/database/cell-value-dialog.d.ts +0 -8
  245. package/dist/src/presentation/web/components/features/database/cell-value-dialog.d.ts.map +0 -1
  246. package/dist/src/presentation/web/components/features/database/cell-value-dialog.js +0 -7
  247. package/dist/src/presentation/web/components/features/database/cell-value-dialog.stories.d.ts +0 -10
  248. package/dist/src/presentation/web/components/features/database/cell-value-dialog.stories.d.ts.map +0 -1
  249. package/dist/src/presentation/web/components/features/database/cell-value-dialog.stories.js +0 -48
  250. package/dist/src/presentation/web/components/features/database/database-page-client.d.ts +0 -13
  251. package/dist/src/presentation/web/components/features/database/database-page-client.d.ts.map +0 -1
  252. package/dist/src/presentation/web/components/features/database/database-page-client.js +0 -75
  253. package/dist/src/presentation/web/components/features/database/database-page-client.stories.d.ts +0 -9
  254. package/dist/src/presentation/web/components/features/database/database-page-client.stories.d.ts.map +0 -1
  255. package/dist/src/presentation/web/components/features/database/database-page-client.stories.js +0 -74
  256. package/dist/src/presentation/web/components/features/database/query-runner.d.ts +0 -9
  257. package/dist/src/presentation/web/components/features/database/query-runner.d.ts.map +0 -1
  258. package/dist/src/presentation/web/components/features/database/query-runner.js +0 -53
  259. package/dist/src/presentation/web/components/features/database/query-runner.stories.d.ts +0 -9
  260. package/dist/src/presentation/web/components/features/database/query-runner.stories.d.ts.map +0 -1
  261. package/dist/src/presentation/web/components/features/database/query-runner.stories.js +0 -55
  262. package/dist/src/presentation/web/components/features/database/row-browser.d.ts +0 -11
  263. package/dist/src/presentation/web/components/features/database/row-browser.d.ts.map +0 -1
  264. package/dist/src/presentation/web/components/features/database/row-browser.js +0 -42
  265. package/dist/src/presentation/web/components/features/database/row-browser.stories.d.ts +0 -14
  266. package/dist/src/presentation/web/components/features/database/row-browser.stories.d.ts.map +0 -1
  267. package/dist/src/presentation/web/components/features/database/row-browser.stories.js +0 -120
  268. package/dist/src/presentation/web/components/features/database/schema-viewer.d.ts +0 -7
  269. package/dist/src/presentation/web/components/features/database/schema-viewer.d.ts.map +0 -1
  270. package/dist/src/presentation/web/components/features/database/schema-viewer.js +0 -13
  271. package/dist/src/presentation/web/components/features/database/schema-viewer.stories.d.ts +0 -11
  272. package/dist/src/presentation/web/components/features/database/schema-viewer.stories.d.ts.map +0 -1
  273. package/dist/src/presentation/web/components/features/database/schema-viewer.stories.js +0 -67
  274. package/dist/src/presentation/web/components/features/database/table-list.d.ts +0 -8
  275. package/dist/src/presentation/web/components/features/database/table-list.d.ts.map +0 -1
  276. package/dist/src/presentation/web/components/features/database/table-list.js +0 -17
  277. package/dist/src/presentation/web/components/features/database/table-list.stories.d.ts +0 -10
  278. package/dist/src/presentation/web/components/features/database/table-list.stories.d.ts.map +0 -1
  279. package/dist/src/presentation/web/components/features/database/table-list.stories.js +0 -66
  280. package/dist/src/presentation/web/components/ui/table.d.ts +0 -11
  281. package/dist/src/presentation/web/components/ui/table.d.ts.map +0 -1
  282. package/dist/src/presentation/web/components/ui/table.js +0 -28
  283. package/dist/src/presentation/web/lib/server-db.d.ts +0 -16
  284. package/dist/src/presentation/web/lib/server-db.d.ts.map +0 -1
  285. package/dist/src/presentation/web/lib/server-db.js +0 -10
  286. package/dist/src/presentation/web/lib/sql-validation.d.ts +0 -7
  287. package/dist/src/presentation/web/lib/sql-validation.d.ts.map +0 -1
  288. package/dist/src/presentation/web/lib/sql-validation.js +0 -17
  289. package/web/.next/server/app/database/page/app-paths-manifest.json +0 -3
  290. package/web/.next/server/app/database/page/build-manifest.json +0 -18
  291. package/web/.next/server/app/database/page/next-font-manifest.json +0 -6
  292. package/web/.next/server/app/database/page/react-loadable-manifest.json +0 -1
  293. package/web/.next/server/app/database/page/server-reference-manifest.json +0 -80
  294. package/web/.next/server/app/database/page.js +0 -16
  295. package/web/.next/server/app/database/page.js.map +0 -5
  296. package/web/.next/server/app/database/page.js.nft.json +0 -1
  297. package/web/.next/server/app/database/page_client-reference-manifest.js +0 -2
  298. package/web/.next/server/chunks/ssr/[root-of-the-server]__19187772._.js.map +0 -1
  299. package/web/.next/server/chunks/ssr/[root-of-the-server]__29958296._.js +0 -3
  300. package/web/.next/server/chunks/ssr/[root-of-the-server]__29958296._.js.map +0 -1
  301. package/web/.next/server/chunks/ssr/[root-of-the-server]__2d3ecc16._.js +0 -3
  302. package/web/.next/server/chunks/ssr/[root-of-the-server]__2d3ecc16._.js.map +0 -1
  303. package/web/.next/server/chunks/ssr/[root-of-the-server]__590dfc34._.js +0 -4
  304. package/web/.next/server/chunks/ssr/[root-of-the-server]__590dfc34._.js.map +0 -1
  305. package/web/.next/server/chunks/ssr/[root-of-the-server]__6aae816d._.js +0 -4
  306. package/web/.next/server/chunks/ssr/[root-of-the-server]__6aae816d._.js.map +0 -1
  307. package/web/.next/server/chunks/ssr/[root-of-the-server]__930c8634._.js +0 -3
  308. package/web/.next/server/chunks/ssr/[root-of-the-server]__930c8634._.js.map +0 -1
  309. package/web/.next/server/chunks/ssr/_0e6034fc._.js +0 -3
  310. package/web/.next/server/chunks/ssr/_0e6034fc._.js.map +0 -1
  311. package/web/.next/server/chunks/ssr/_34ba40e0._.js +0 -3
  312. package/web/.next/server/chunks/ssr/_34ba40e0._.js.map +0 -1
  313. package/web/.next/server/chunks/ssr/_43997634._.js +0 -3
  314. package/web/.next/server/chunks/ssr/_43997634._.js.map +0 -1
  315. package/web/.next/server/chunks/ssr/_5b809cd2._.js +0 -4
  316. package/web/.next/server/chunks/ssr/_5b809cd2._.js.map +0 -1
  317. package/web/.next/server/chunks/ssr/_6552e0aa._.js +0 -3
  318. package/web/.next/server/chunks/ssr/_6552e0aa._.js.map +0 -1
  319. package/web/.next/server/chunks/ssr/_78be8103._.js +0 -3
  320. package/web/.next/server/chunks/ssr/_78be8103._.js.map +0 -1
  321. package/web/.next/server/chunks/ssr/_95f78b9e._.js +0 -3
  322. package/web/.next/server/chunks/ssr/_95f78b9e._.js.map +0 -1
  323. package/web/.next/server/chunks/ssr/_ad5819d0._.js +0 -3
  324. package/web/.next/server/chunks/ssr/_ad5819d0._.js.map +0 -1
  325. package/web/.next/server/chunks/ssr/_e35fc15d._.js +0 -3
  326. package/web/.next/server/chunks/ssr/_e35fc15d._.js.map +0 -1
  327. package/web/.next/server/chunks/ssr/_e4923d09._.js +0 -7
  328. package/web/.next/server/chunks/ssr/_e4923d09._.js.map +0 -1
  329. package/web/.next/server/chunks/ssr/_f38b49fe._.js +0 -3
  330. package/web/.next/server/chunks/ssr/_f38b49fe._.js.map +0 -1
  331. package/web/.next/server/chunks/ssr/_f9959908._.js +0 -3
  332. package/web/.next/server/chunks/ssr/_f9959908._.js.map +0 -1
  333. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_database_database-page-client_tsx_b853607a._.js +0 -3
  334. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_database_database-page-client_tsx_b853607a._.js.map +0 -1
  335. package/web/.next/server/chunks/ssr/node_modules__pnpm_8b0ea744._.js +0 -3
  336. package/web/.next/server/chunks/ssr/node_modules__pnpm_8b0ea744._.js.map +0 -1
  337. package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_scroll-area_tsx_53ae5be7._.js +0 -3
  338. package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_scroll-area_tsx_53ae5be7._.js.map +0 -1
  339. package/web/.next/static/chunks/1bee2061703e096e.js +0 -1
  340. package/web/.next/static/chunks/40b6bcf1a2de4a0f.js +0 -1
  341. package/web/.next/static/chunks/4395a53ed15eef72.js +0 -1
  342. package/web/.next/static/chunks/57f503ca6caf30d1.js +0 -1
  343. package/web/.next/static/chunks/5b305e0321c90039.js +0 -1
  344. package/web/.next/static/chunks/692a746daf1778d6.js +0 -1
  345. package/web/.next/static/chunks/78334cf5381241fe.css +0 -1
  346. package/web/.next/static/chunks/7d61f552216da1a2.js +0 -1
  347. package/web/.next/static/chunks/958828e09daddad9.js +0 -1
  348. package/web/.next/static/chunks/a659cdb17ae65f2e.js +0 -1
  349. package/web/.next/static/chunks/ac9e29ce89401022.js +0 -11
  350. package/web/.next/static/chunks/c20537d1fd9f2494.js +0 -1
  351. package/web/.next/static/chunks/c2c0d4e71c36199f.js +0 -1
  352. package/web/.next/static/chunks/c7e793951b20a67f.js +0 -1
  353. package/web/.next/static/chunks/d647189ea3b87ed4.js +0 -1
  354. package/web/.next/static/chunks/f8bf91061681f06c.js +0 -1
  355. /package/web/.next/static/{7el9fE5_x45gdlg69l1-h → bAT4Gm6M7U0lGmNAN3mTn}/_buildManifest.js +0 -0
  356. /package/web/.next/static/{7el9fE5_x45gdlg69l1-h → bAT4Gm6M7U0lGmNAN3mTn}/_clientMiddlewareManifest.json +0 -0
  357. /package/web/.next/static/{7el9fE5_x45gdlg69l1-h → bAT4Gm6M7U0lGmNAN3mTn}/_ssgManifest.js +0 -0
@@ -1,55 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { fn } from '@storybook/test';
3
- import { QueryRunner } from './query-runner.js';
4
- const meta = {
5
- title: 'Features/Database/QueryRunner',
6
- component: QueryRunner,
7
- tags: ['autodocs'],
8
- parameters: {
9
- layout: 'padded',
10
- },
11
- args: {
12
- onExecute: fn(),
13
- },
14
- };
15
- export default meta;
16
- /* ---------------------------------------------------------------------------
17
- * Interactive wrapper for stories that need state
18
- * ------------------------------------------------------------------------- */
19
- function QueryRunnerWithMockResults() {
20
- return (_jsx(QueryRunner, { onExecute: async (sql) => {
21
- // Simulate server delay
22
- await new Promise((r) => setTimeout(r, 500));
23
- if (sql.toLowerCase().includes('error')) {
24
- return { error: 'near "error": syntax error' };
25
- }
26
- return {
27
- columns: ['id', 'name', 'status', 'created_at'],
28
- rows: [
29
- {
30
- id: 1,
31
- name: 'database-management-ui',
32
- status: 'in_progress',
33
- created_at: '2026-03-10',
34
- },
35
- { id: 2, name: 'agent-improvements', status: 'completed', created_at: '2026-03-09' },
36
- { id: 3, name: 'cli-refactor', status: 'pending', created_at: '2026-03-08' },
37
- ],
38
- };
39
- } }));
40
- }
41
- function QueryRunnerWithError() {
42
- return (_jsx(QueryRunner, { onExecute: async () => {
43
- return { error: 'no such table: nonexistent_table' };
44
- } }));
45
- }
46
- /* ---------------------------------------------------------------------------
47
- * Stories
48
- * ------------------------------------------------------------------------- */
49
- export const Default = {};
50
- export const Interactive = {
51
- render: () => _jsx(QueryRunnerWithMockResults, {}),
52
- };
53
- export const WithError = {
54
- render: () => _jsx(QueryRunnerWithError, {}),
55
- };
@@ -1,11 +0,0 @@
1
- export interface RowBrowserProps {
2
- columns: string[];
3
- rows: Record<string, unknown>[];
4
- totalRows: number;
5
- page: number;
6
- pageSize: number;
7
- onPageChange: (page: number) => void;
8
- loading?: boolean;
9
- }
10
- export declare function RowBrowser({ columns, rows, totalRows, page, pageSize, onPageChange, loading, }: RowBrowserProps): import("react/jsx-runtime").JSX.Element;
11
- //# sourceMappingURL=row-browser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"row-browser.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/database/row-browser.tsx"],"names":[],"mappings":"AAiBA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAoBD,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,OAAO,GACR,EAAE,eAAe,2CAkHjB"}
@@ -1,42 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useState } from 'react';
4
- import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from '../../ui/table.js';
5
- import { Button } from '../../ui/button.js';
6
- import { ChevronLeft, ChevronRight } from 'lucide-react';
7
- import { CellValueDialog } from './cell-value-dialog.js';
8
- const MAX_CELL_LENGTH = 100;
9
- function formatCellDisplay(value) {
10
- if (value === null || value === undefined) {
11
- return 'NULL';
12
- }
13
- return String(value);
14
- }
15
- function isTruncated(value) {
16
- return value.length > MAX_CELL_LENGTH;
17
- }
18
- function truncate(value) {
19
- if (isTruncated(value)) {
20
- return `${value.slice(0, MAX_CELL_LENGTH)}...`;
21
- }
22
- return value;
23
- }
24
- export function RowBrowser({ columns, rows, totalRows, page, pageSize, onPageChange, loading, }) {
25
- const [dialogState, setDialogState] = useState({ open: false, columnName: '', value: '' });
26
- const totalPages = Math.max(1, Math.ceil(totalRows / pageSize));
27
- const isFirstPage = page === 0;
28
- const isLastPage = page >= totalPages - 1;
29
- if (loading) {
30
- return (_jsx("div", { className: "text-muted-foreground flex items-center justify-center p-8 text-sm", "data-testid": "row-browser-loading", children: "Loading rows..." }));
31
- }
32
- if (rows.length === 0 && totalRows === 0) {
33
- return (_jsx("div", { className: "text-muted-foreground flex items-center justify-center p-8 text-sm", "data-testid": "row-browser-empty", children: "This table has no rows" }));
34
- }
35
- return (_jsxs("div", { className: "flex flex-col gap-3", "data-testid": "row-browser", children: [_jsxs(Table, { children: [_jsx(TableHeader, { children: _jsx(TableRow, { children: columns.map((col) => (_jsx(TableHead, { children: col }, col))) }) }), _jsx(TableBody, { children: rows.map((row, rowIdx) => (
36
- // eslint-disable-next-line react/no-array-index-key
37
- _jsx(TableRow, { children: columns.map((col) => {
38
- const display = formatCellDisplay(row[col]);
39
- const truncated = isTruncated(display);
40
- return (_jsx(TableCell, { children: truncated ? (_jsx("button", { className: "text-primary cursor-pointer text-left underline-offset-2 hover:underline", onClick: () => setDialogState({ open: true, columnName: col, value: display }), title: "Click to view full value", children: truncate(display) })) : (_jsx("span", { className: display === 'NULL' ? 'text-muted-foreground italic' : '', children: display })) }, col));
41
- }) }, rowIdx))) })] }), _jsxs("div", { className: "flex items-center justify-between px-2", "data-testid": "row-browser-pagination", children: [_jsxs("span", { className: "text-muted-foreground text-sm", children: [totalRows.toLocaleString(), " row", totalRows !== 1 ? 's' : '', " total"] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs(Button, { variant: "outline", size: "sm", onClick: () => onPageChange(page - 1), disabled: isFirstPage, "data-testid": "row-browser-prev", children: [_jsx(ChevronLeft, { className: "size-4" }), "Previous"] }), _jsxs("span", { className: "text-sm", children: ["Page ", page + 1, " of ", totalPages] }), _jsxs(Button, { variant: "outline", size: "sm", onClick: () => onPageChange(page + 1), disabled: isLastPage, "data-testid": "row-browser-next", children: ["Next", _jsx(ChevronRight, { className: "size-4" })] })] })] }), _jsx(CellValueDialog, { open: dialogState.open, onOpenChange: (open) => setDialogState((s) => ({ ...s, open })), columnName: dialogState.columnName, value: dialogState.value })] }));
42
- }
@@ -1,14 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react';
2
- import { RowBrowser } from './row-browser.js';
3
- declare const meta: Meta<typeof RowBrowser>;
4
- export default meta;
5
- type Story = StoryObj<typeof meta>;
6
- export declare const PopulatedTable: Story;
7
- export declare const MiddlePage: Story;
8
- export declare const LastPage: Story;
9
- export declare const EmptyTable: Story;
10
- export declare const Loading: Story;
11
- export declare const TruncatedValues: Story;
12
- export declare const WithNullValues: Story;
13
- export declare const BlobValues: Story;
14
- //# sourceMappingURL=row-browser.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"row-browser.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/database/row-browser.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,UAAU,CAYjC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAgCnC,eAAO,MAAM,cAAc,EAAE,KAQ5B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAQtB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KASrB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAQ7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAY5B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAWxB,CAAC"}
@@ -1,120 +0,0 @@
1
- import { fn } from '@storybook/test';
2
- import { RowBrowser } from './row-browser.js';
3
- const meta = {
4
- title: 'Features/Database/RowBrowser',
5
- component: RowBrowser,
6
- tags: ['autodocs'],
7
- parameters: {
8
- layout: 'padded',
9
- },
10
- args: {
11
- onPageChange: fn(),
12
- page: 0,
13
- pageSize: 50,
14
- },
15
- };
16
- export default meta;
17
- /* ---------------------------------------------------------------------------
18
- * Data fixtures
19
- * ------------------------------------------------------------------------- */
20
- const sampleColumns = ['id', 'name', 'status', 'created_at'];
21
- const sampleRows = [
22
- {
23
- id: 1,
24
- name: 'database-management-ui',
25
- status: 'in_progress',
26
- created_at: '2026-03-10T14:30:00Z',
27
- },
28
- { id: 2, name: 'agent-improvements', status: 'completed', created_at: '2026-03-09T10:15:00Z' },
29
- { id: 3, name: 'cli-refactor', status: 'pending', created_at: '2026-03-08T08:00:00Z' },
30
- { id: 4, name: 'settings-page', status: 'completed', created_at: '2026-03-07T16:45:00Z' },
31
- { id: 5, name: 'tui-redesign', status: 'in_progress', created_at: '2026-03-06T12:00:00Z' },
32
- ];
33
- const longTextRow = {
34
- id: 1,
35
- description: 'This is a very long description that exceeds one hundred characters in length and should be truncated in the table cell display with an ellipsis and a clickable link to view the full value in a dialog modal window',
36
- metadata: JSON.stringify({ key: 'value', nested: { deep: true, items: [1, 2, 3] } }),
37
- };
38
- /* ---------------------------------------------------------------------------
39
- * Stories
40
- * ------------------------------------------------------------------------- */
41
- export const PopulatedTable = {
42
- args: {
43
- columns: sampleColumns,
44
- rows: sampleRows,
45
- totalRows: 230,
46
- page: 0,
47
- pageSize: 50,
48
- },
49
- };
50
- export const MiddlePage = {
51
- args: {
52
- columns: sampleColumns,
53
- rows: sampleRows,
54
- totalRows: 230,
55
- page: 2,
56
- pageSize: 50,
57
- },
58
- };
59
- export const LastPage = {
60
- args: {
61
- columns: sampleColumns,
62
- rows: sampleRows.slice(0, 2),
63
- totalRows: 230,
64
- page: 4,
65
- pageSize: 50,
66
- },
67
- };
68
- export const EmptyTable = {
69
- args: {
70
- columns: sampleColumns,
71
- rows: [],
72
- totalRows: 0,
73
- page: 0,
74
- pageSize: 50,
75
- },
76
- };
77
- export const Loading = {
78
- args: {
79
- columns: [],
80
- rows: [],
81
- totalRows: 0,
82
- page: 0,
83
- pageSize: 50,
84
- loading: true,
85
- },
86
- };
87
- export const TruncatedValues = {
88
- args: {
89
- columns: ['id', 'description', 'metadata'],
90
- rows: [longTextRow],
91
- totalRows: 1,
92
- page: 0,
93
- pageSize: 50,
94
- },
95
- };
96
- export const WithNullValues = {
97
- args: {
98
- columns: ['id', 'name', 'email', 'notes'],
99
- rows: [
100
- { id: 1, name: 'Alice', email: 'alice@example.com', notes: null },
101
- { id: 2, name: 'Bob', email: null, notes: 'Some notes here' },
102
- { id: 3, name: null, email: null, notes: null },
103
- ],
104
- totalRows: 3,
105
- page: 0,
106
- pageSize: 50,
107
- },
108
- };
109
- export const BlobValues = {
110
- args: {
111
- columns: ['id', 'name', 'data'],
112
- rows: [
113
- { id: 1, name: 'image.png', data: '(2048 bytes)' },
114
- { id: 2, name: 'document.pdf', data: '(15360 bytes)' },
115
- ],
116
- totalRows: 2,
117
- page: 0,
118
- pageSize: 50,
119
- },
120
- };
@@ -1,7 +0,0 @@
1
- import type { ColumnInfo } from '../../../app/actions/get-table-schema.js';
2
- export interface SchemaViewerProps {
3
- columns: ColumnInfo[];
4
- loading?: boolean;
5
- }
6
- export declare function SchemaViewer({ columns, loading }: SchemaViewerProps): import("react/jsx-runtime").JSX.Element;
7
- //# sourceMappingURL=schema-viewer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema-viewer.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/database/schema-viewer.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,iBAAiB,2CAuDnE"}
@@ -1,13 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from '../../ui/table.js';
4
- import { Badge } from '../../ui/badge.js';
5
- export function SchemaViewer({ columns, loading }) {
6
- if (loading) {
7
- return (_jsx("div", { className: "text-muted-foreground flex items-center justify-center p-8 text-sm", "data-testid": "schema-viewer-loading", children: "Loading schema..." }));
8
- }
9
- if (columns.length === 0) {
10
- return (_jsx("div", { className: "text-muted-foreground flex items-center justify-center p-8 text-sm", "data-testid": "schema-viewer-empty", children: "No column information available" }));
11
- }
12
- return (_jsx("div", { "data-testid": "schema-viewer", children: _jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: "Name" }), _jsx(TableHead, { children: "Type" }), _jsx(TableHead, { children: "Nullable" }), _jsx(TableHead, { children: "Default" }), _jsx(TableHead, { children: "Primary Key" })] }) }), _jsx(TableBody, { children: columns.map((col) => (_jsxs(TableRow, { children: [_jsx(TableCell, { className: "font-mono text-sm", children: col.name }), _jsx(TableCell, { className: "font-mono text-sm", children: col.type }), _jsx(TableCell, { children: col.notnull ? 'No' : 'Yes' }), _jsx(TableCell, { className: "text-muted-foreground", children: col.defaultValue ?? 'None' }), _jsx(TableCell, { children: col.primaryKey ? (_jsx(Badge, { variant: "default", "data-testid": `pk-badge-${col.name}`, children: "PK" })) : null })] }, col.name))) })] }) }));
13
- }
@@ -1,11 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react';
2
- import { SchemaViewer } from './schema-viewer.js';
3
- declare const meta: Meta<typeof SchemaViewer>;
4
- export default meta;
5
- type Story = StoryObj<typeof meta>;
6
- export declare const TypicalSchema: Story;
7
- export declare const AllNullable: Story;
8
- export declare const CompositePrimaryKey: Story;
9
- export declare const Loading: Story;
10
- export declare const Empty: Story;
11
- //# sourceMappingURL=schema-viewer.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema-viewer.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/database/schema-viewer.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,YAAY,CAOnC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAsCnC,eAAO,MAAM,aAAa,EAAE,KAI3B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAIzB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KAIjC,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAInB,CAAC"}
@@ -1,67 +0,0 @@
1
- import { SchemaViewer } from './schema-viewer.js';
2
- const meta = {
3
- title: 'Features/Database/SchemaViewer',
4
- component: SchemaViewer,
5
- tags: ['autodocs'],
6
- parameters: {
7
- layout: 'padded',
8
- },
9
- };
10
- export default meta;
11
- /* ---------------------------------------------------------------------------
12
- * Data fixtures
13
- * ------------------------------------------------------------------------- */
14
- const typicalSchema = [
15
- { name: 'id', type: 'TEXT', notnull: true, defaultValue: null, primaryKey: true },
16
- { name: 'name', type: 'TEXT', notnull: true, defaultValue: null, primaryKey: false },
17
- { name: 'description', type: 'TEXT', notnull: false, defaultValue: null, primaryKey: false },
18
- { name: 'status', type: 'TEXT', notnull: true, defaultValue: "'pending'", primaryKey: false },
19
- {
20
- name: 'created_at',
21
- type: 'TEXT',
22
- notnull: true,
23
- defaultValue: 'CURRENT_TIMESTAMP',
24
- primaryKey: false,
25
- },
26
- { name: 'updated_at', type: 'TEXT', notnull: false, defaultValue: null, primaryKey: false },
27
- ];
28
- const allNullable = [
29
- { name: 'key', type: 'TEXT', notnull: false, defaultValue: null, primaryKey: false },
30
- { name: 'value', type: 'TEXT', notnull: false, defaultValue: null, primaryKey: false },
31
- { name: 'metadata', type: 'BLOB', notnull: false, defaultValue: null, primaryKey: false },
32
- ];
33
- const compositePk = [
34
- { name: 'feature_id', type: 'TEXT', notnull: true, defaultValue: null, primaryKey: true },
35
- { name: 'repository_id', type: 'TEXT', notnull: true, defaultValue: null, primaryKey: true },
36
- { name: 'status', type: 'TEXT', notnull: true, defaultValue: "'active'", primaryKey: false },
37
- { name: 'created_at', type: 'TEXT', notnull: true, defaultValue: null, primaryKey: false },
38
- ];
39
- /* ---------------------------------------------------------------------------
40
- * Stories
41
- * ------------------------------------------------------------------------- */
42
- export const TypicalSchema = {
43
- args: {
44
- columns: typicalSchema,
45
- },
46
- };
47
- export const AllNullable = {
48
- args: {
49
- columns: allNullable,
50
- },
51
- };
52
- export const CompositePrimaryKey = {
53
- args: {
54
- columns: compositePk,
55
- },
56
- };
57
- export const Loading = {
58
- args: {
59
- columns: [],
60
- loading: true,
61
- },
62
- };
63
- export const Empty = {
64
- args: {
65
- columns: [],
66
- },
67
- };
@@ -1,8 +0,0 @@
1
- import type { TableInfo } from '../../../app/actions/list-tables.js';
2
- export interface TableListProps {
3
- tables: TableInfo[];
4
- selectedTable: string | null;
5
- onSelectTable: (tableName: string) => void;
6
- }
7
- export declare function TableList({ tables, selectedTable, onSelectTable }: TableListProps): import("react/jsx-runtime").JSX.Element;
8
- //# sourceMappingURL=table-list.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table-list.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/database/table-list.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAI3D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,cAAc,2CAsDjF"}
@@ -1,17 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useState } from 'react';
4
- import { Badge } from '../../ui/badge.js';
5
- import { Input } from '../../ui/input.js';
6
- import { ScrollArea } from '../../ui/scroll-area.js';
7
- const SEARCH_THRESHOLD = 10;
8
- export function TableList({ tables, selectedTable, onSelectTable }) {
9
- const [search, setSearch] = useState('');
10
- const filteredTables = search.length > 0
11
- ? tables.filter((t) => t.name.toLowerCase().includes(search.toLowerCase()))
12
- : tables;
13
- if (tables.length === 0) {
14
- return (_jsx("div", { className: "text-muted-foreground p-4 text-center text-sm", "data-testid": "table-list-empty", children: "No tables found" }));
15
- }
16
- return (_jsxs("div", { className: "flex flex-col gap-2", "data-testid": "table-list", children: [tables.length > SEARCH_THRESHOLD && (_jsx("div", { className: "px-2 pt-2", children: _jsx(Input, { placeholder: "Filter tables...", value: search, onChange: (e) => setSearch(e.target.value), "data-testid": "table-list-search" }) })), _jsx(ScrollArea, { className: "h-[calc(100vh-12rem)]", children: _jsxs("div", { className: "flex flex-col gap-0.5 p-2", children: [filteredTables.map((table) => (_jsxs("button", { onClick: () => onSelectTable(table.name), className: `flex w-full items-center justify-between rounded-md px-3 py-2 text-left text-sm transition-colors ${selectedTable === table.name ? 'bg-accent text-accent-foreground' : 'hover:bg-muted'}`, "data-testid": `table-item-${table.name}`, children: [_jsx("span", { className: "truncate font-mono text-xs", children: table.name }), _jsx(Badge, { variant: "secondary", className: "ml-2 shrink-0", children: table.rowCount.toLocaleString() })] }, table.name))), filteredTables.length === 0 && search.length > 0 && (_jsxs("div", { className: "text-muted-foreground p-4 text-center text-sm", children: ["No tables matching \"", search, "\""] }))] }) })] }));
17
- }
@@ -1,10 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react';
2
- import { TableList } from './table-list.js';
3
- declare const meta: Meta<typeof TableList>;
4
- export default meta;
5
- type Story = StoryObj<typeof meta>;
6
- export declare const FewTables: Story;
7
- export declare const WithSelectedTable: Story;
8
- export declare const ManyTablesWithSearch: Story;
9
- export declare const Empty: Story;
10
- //# sourceMappingURL=table-list.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table-list.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/database/table-list.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,SAAS,CAkBhC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAgCnC,eAAO,MAAM,SAAS,EAAE,KAIvB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAK/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAIlC,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAInB,CAAC"}
@@ -1,66 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { fn } from '@storybook/test';
3
- import { TableList } from './table-list.js';
4
- const meta = {
5
- title: 'Features/Database/TableList',
6
- component: TableList,
7
- tags: ['autodocs'],
8
- parameters: {
9
- layout: 'centered',
10
- },
11
- args: {
12
- selectedTable: null,
13
- onSelectTable: fn(),
14
- },
15
- decorators: [
16
- (Story) => (_jsx("div", { className: "w-64", children: _jsx(Story, {}) })),
17
- ],
18
- };
19
- export default meta;
20
- /* ---------------------------------------------------------------------------
21
- * Data fixtures
22
- * ------------------------------------------------------------------------- */
23
- const fewTables = [
24
- { name: 'features', rowCount: 42 },
25
- { name: 'repositories', rowCount: 5 },
26
- { name: 'settings', rowCount: 12 },
27
- { name: 'migrations', rowCount: 8 },
28
- ];
29
- const manyTables = [
30
- { name: 'features', rowCount: 42 },
31
- { name: 'repositories', rowCount: 5 },
32
- { name: 'settings', rowCount: 12 },
33
- { name: 'migrations', rowCount: 8 },
34
- { name: 'agents', rowCount: 156 },
35
- { name: 'agent_events', rowCount: 1024 },
36
- { name: 'agent_logs', rowCount: 5432 },
37
- { name: 'skills', rowCount: 23 },
38
- { name: 'tools', rowCount: 67 },
39
- { name: 'tool_executions', rowCount: 890 },
40
- { name: 'workflows', rowCount: 15 },
41
- { name: 'workflow_steps', rowCount: 234 },
42
- ];
43
- /* ---------------------------------------------------------------------------
44
- * Stories
45
- * ------------------------------------------------------------------------- */
46
- export const FewTables = {
47
- args: {
48
- tables: fewTables,
49
- },
50
- };
51
- export const WithSelectedTable = {
52
- args: {
53
- tables: fewTables,
54
- selectedTable: 'repositories',
55
- },
56
- };
57
- export const ManyTablesWithSearch = {
58
- args: {
59
- tables: manyTables,
60
- },
61
- };
62
- export const Empty = {
63
- args: {
64
- tables: [],
65
- },
66
- };
@@ -1,11 +0,0 @@
1
- import * as React from 'react';
2
- declare function Table({ className, ...props }: React.ComponentProps<'table'>): import("react/jsx-runtime").JSX.Element;
3
- declare function TableHeader({ className, ...props }: React.ComponentProps<'thead'>): import("react/jsx-runtime").JSX.Element;
4
- declare function TableBody({ className, ...props }: React.ComponentProps<'tbody'>): import("react/jsx-runtime").JSX.Element;
5
- declare function TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>): import("react/jsx-runtime").JSX.Element;
6
- declare function TableRow({ className, ...props }: React.ComponentProps<'tr'>): import("react/jsx-runtime").JSX.Element;
7
- declare function TableHead({ className, ...props }: React.ComponentProps<'th'>): import("react/jsx-runtime").JSX.Element;
8
- declare function TableCell({ className, ...props }: React.ComponentProps<'td'>): import("react/jsx-runtime").JSX.Element;
9
- declare function TableCaption({ className, ...props }: React.ComponentProps<'caption'>): import("react/jsx-runtime").JSX.Element;
10
- export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption };
11
- //# sourceMappingURL=table.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/web/components/ui/table.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAUpE;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAE1E;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAQxE;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAQ1E;AAED,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAWpE;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAWrE;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAWrE;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,2CAQ7E;AAED,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC"}
@@ -1,28 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import { cn } from '../../lib/utils.js';
4
- function Table({ className, ...props }) {
5
- return (_jsx("div", { "data-slot": "table-container", className: "relative w-full overflow-x-auto", children: _jsx("table", { "data-slot": "table", className: cn('w-full caption-bottom text-sm', className), ...props }) }));
6
- }
7
- function TableHeader({ className, ...props }) {
8
- return _jsx("thead", { "data-slot": "table-header", className: cn('[&_tr]:border-b', className), ...props });
9
- }
10
- function TableBody({ className, ...props }) {
11
- return (_jsx("tbody", { "data-slot": "table-body", className: cn('[&_tr:last-child]:border-0', className), ...props }));
12
- }
13
- function TableFooter({ className, ...props }) {
14
- return (_jsx("tfoot", { "data-slot": "table-footer", className: cn('bg-muted/50 border-t font-medium [&>tr]:last:border-b-0', className), ...props }));
15
- }
16
- function TableRow({ className, ...props }) {
17
- return (_jsx("tr", { "data-slot": "table-row", className: cn('hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors', className), ...props }));
18
- }
19
- function TableHead({ className, ...props }) {
20
- return (_jsx("th", { "data-slot": "table-head", className: cn('text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]', className), ...props }));
21
- }
22
- function TableCell({ className, ...props }) {
23
- return (_jsx("td", { "data-slot": "table-cell", className: cn('p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]', className), ...props }));
24
- }
25
- function TableCaption({ className, ...props }) {
26
- return (_jsx("caption", { "data-slot": "table-caption", className: cn('text-muted-foreground mt-4 text-sm', className), ...props }));
27
- }
28
- export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption };
@@ -1,16 +0,0 @@
1
- /**
2
- * Server-side database accessor for the web UI.
3
- *
4
- * Resolves the better-sqlite3 Database instance from the DI container,
5
- * which is initialized by the CLI bootstrap or dev-server.
6
- */
7
- export interface DbLike {
8
- prepare(sql: string): {
9
- all(...params: unknown[]): unknown[];
10
- get(...params: unknown[]): unknown;
11
- run(...params: unknown[]): unknown;
12
- };
13
- pragma(sql: string): unknown;
14
- }
15
- export declare function getDb(): DbLike;
16
- //# sourceMappingURL=server-db.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server-db.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/lib/server-db.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,MAAM;IACrB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG;QACpB,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;QACrC,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QACnC,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;KACpC,CAAC;IACF,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC9B;AAED,wBAAgB,KAAK,IAAI,MAAM,CAE9B"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Server-side database accessor for the web UI.
3
- *
4
- * Resolves the better-sqlite3 Database instance from the DI container,
5
- * which is initialized by the CLI bootstrap or dev-server.
6
- */
7
- import { resolve } from './server-container.js';
8
- export function getDb() {
9
- return resolve('Database');
10
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * Client-safe SQL validation utilities.
3
- * These are extracted from the execute-query server action so they can be
4
- * used for instant client-side feedback without a server round-trip.
5
- */
6
- export declare function isWriteQuery(sql: string): boolean;
7
- //# sourceMappingURL=sql-validation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sql-validation.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/lib/sql-validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGjD"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Client-safe SQL validation utilities.
3
- * These are extracted from the execute-query server action so they can be
4
- * used for instant client-side feedback without a server round-trip.
5
- */
6
- const WRITE_KEYWORDS_PATTERN = /^\s*(INSERT|UPDATE|DELETE|DROP|ALTER|CREATE|ATTACH|DETACH|REINDEX|VACUUM)\b/i;
7
- const CTE_WRITE_PATTERN = /^\s*WITH\b[\s\S]*?\b(INSERT|UPDATE|DELETE)\b/i;
8
- function stripSqlComments(sql) {
9
- return sql
10
- .replace(/--[^\n]*/g, '')
11
- .replace(/\/\*[\s\S]*?\*\//g, '')
12
- .trim();
13
- }
14
- export function isWriteQuery(sql) {
15
- const normalized = stripSqlComments(sql);
16
- return WRITE_KEYWORDS_PATTERN.test(normalized) || CTE_WRITE_PATTERN.test(normalized);
17
- }
@@ -1,3 +0,0 @@
1
- {
2
- "/database/page": "app/database/page.js"
3
- }
@@ -1,18 +0,0 @@
1
- {
2
- "devFiles": [],
3
- "ampDevFiles": [],
4
- "polyfillFiles": [
5
- "static/chunks/a6dad97d9634a72d.js"
6
- ],
7
- "lowPriorityFiles": [],
8
- "rootMainFiles": [
9
- "static/chunks/40b6bcf1a2de4a0f.js",
10
- "static/chunks/c7e793951b20a67f.js",
11
- "static/chunks/4b6cc9f65260f2bd.js",
12
- "static/chunks/cfe4dc9904fcfddb.js",
13
- "static/chunks/d4d8f0a137bd2eb4.js",
14
- "static/chunks/turbopack-b1685b5f87ad1d60.js"
15
- ],
16
- "pages": {},
17
- "ampFirstPages": []
18
- }
@@ -1,6 +0,0 @@
1
- {
2
- "pages": {},
3
- "app": {},
4
- "appUsingSizeAdjust": false,
5
- "pagesUsingSizeAdjust": false
6
- }