sqlew 5.0.8 → 5.2.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 (499) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/README.md +19 -10
  3. package/dist/adapters/auth/auth-factory.d.ts +2 -81
  4. package/dist/adapters/auth/auth-factory.d.ts.map +1 -1
  5. package/dist/adapters/auth/auth-factory.js +2 -82
  6. package/dist/adapters/auth/auth-factory.js.map +1 -1
  7. package/dist/adapters/auth/base-auth-provider.d.ts +18 -303
  8. package/dist/adapters/auth/base-auth-provider.d.ts.map +1 -1
  9. package/dist/adapters/auth/base-auth-provider.js +2 -104
  10. package/dist/adapters/auth/base-auth-provider.js.map +1 -1
  11. package/dist/adapters/auth/direct-auth-provider.d.ts +4 -348
  12. package/dist/adapters/auth/direct-auth-provider.d.ts.map +1 -1
  13. package/dist/adapters/auth/direct-auth-provider.js +6 -356
  14. package/dist/adapters/auth/direct-auth-provider.js.map +1 -1
  15. package/dist/adapters/base-adapter.d.ts +31 -598
  16. package/dist/adapters/base-adapter.d.ts.map +1 -1
  17. package/dist/adapters/base-adapter.js +10 -458
  18. package/dist/adapters/base-adapter.js.map +1 -1
  19. package/dist/adapters/index.d.ts +1 -11
  20. package/dist/adapters/index.d.ts.map +1 -1
  21. package/dist/adapters/index.js +1 -11
  22. package/dist/adapters/index.js.map +1 -1
  23. package/dist/adapters/mysql-adapter.d.ts +15 -541
  24. package/dist/adapters/mysql-adapter.d.ts.map +1 -1
  25. package/dist/adapters/mysql-adapter.js +24 -561
  26. package/dist/adapters/mysql-adapter.js.map +1 -1
  27. package/dist/adapters/postgresql-adapter.d.ts +15 -203
  28. package/dist/adapters/postgresql-adapter.d.ts.map +1 -1
  29. package/dist/adapters/postgresql-adapter.js +24 -223
  30. package/dist/adapters/postgresql-adapter.js.map +1 -1
  31. package/dist/adapters/sqlite-adapter.d.ts +4 -28
  32. package/dist/adapters/sqlite-adapter.d.ts.map +1 -1
  33. package/dist/adapters/sqlite-adapter.js +4 -32
  34. package/dist/adapters/sqlite-adapter.js.map +1 -1
  35. package/dist/adapters/types.d.ts +1 -4
  36. package/dist/adapters/types.d.ts.map +1 -1
  37. package/dist/backend/backend-factory.d.ts +3 -3
  38. package/dist/backend/backend-factory.js +3 -3
  39. package/dist/backend/local-backend.d.ts.map +1 -1
  40. package/dist/backend/local-backend.js +0 -5
  41. package/dist/backend/local-backend.js.map +1 -1
  42. package/dist/cli/db-export.d.ts.map +1 -1
  43. package/dist/cli/db-export.js +54 -32
  44. package/dist/cli/db-export.js.map +1 -1
  45. package/dist/cli/db-import.d.ts.map +1 -1
  46. package/dist/cli/db-import.js +32 -31
  47. package/dist/cli/db-import.js.map +1 -1
  48. package/dist/cli/hooks/on-exit-plan.d.ts.map +1 -1
  49. package/dist/cli/hooks/on-exit-plan.js +42 -1
  50. package/dist/cli/hooks/on-exit-plan.js.map +1 -1
  51. package/dist/cli/hooks/on-prompt.d.ts.map +1 -1
  52. package/dist/cli/hooks/on-prompt.js +5 -0
  53. package/dist/cli/hooks/on-prompt.js.map +1 -1
  54. package/dist/cli/hooks/plan-processor.d.ts.map +1 -1
  55. package/dist/cli/hooks/plan-processor.js +16 -2
  56. package/dist/cli/hooks/plan-processor.js.map +1 -1
  57. package/dist/cli/hooks/stdin-parser.d.ts +41 -0
  58. package/dist/cli/hooks/stdin-parser.d.ts.map +1 -1
  59. package/dist/cli/hooks/stdin-parser.js +140 -4
  60. package/dist/cli/hooks/stdin-parser.js.map +1 -1
  61. package/dist/cli/hooks/track-plan.d.ts +13 -0
  62. package/dist/cli/hooks/track-plan.d.ts.map +1 -1
  63. package/dist/cli/hooks/track-plan.js +58 -3
  64. package/dist/cli/hooks/track-plan.js.map +1 -1
  65. package/dist/cli.d.ts.map +1 -1
  66. package/dist/cli.js +1 -12
  67. package/dist/cli.js.map +1 -1
  68. package/dist/config/cloud-config-loader.d.ts +8 -8
  69. package/dist/config/cloud-config-loader.d.ts.map +1 -1
  70. package/dist/config/cloud-config-loader.js +12 -12
  71. package/dist/config/cloud-config-loader.js.map +1 -1
  72. package/dist/config/global-config.d.ts +24 -46
  73. package/dist/config/global-config.d.ts.map +1 -1
  74. package/dist/config/global-config.js +174 -56
  75. package/dist/config/global-config.js.map +1 -1
  76. package/dist/config/loader.d.ts +1 -18
  77. package/dist/config/loader.d.ts.map +1 -1
  78. package/dist/config/loader.js +1 -89
  79. package/dist/config/loader.js.map +1 -1
  80. package/dist/config/types.d.ts +2 -64
  81. package/dist/config/types.d.ts.map +1 -1
  82. package/dist/config/types.js +0 -18
  83. package/dist/config/types.js.map +1 -1
  84. package/dist/database/index.d.ts +1 -2
  85. package/dist/database/index.d.ts.map +1 -1
  86. package/dist/database/index.js +1 -3
  87. package/dist/database/index.js.map +1 -1
  88. package/dist/database/migrations/v4/20251126000001_v4_migrate_data.d.ts.map +1 -1
  89. package/dist/database/migrations/v4/20251126000001_v4_migrate_data.js +2 -1
  90. package/dist/database/migrations/v4/20251126000001_v4_migrate_data.js.map +1 -1
  91. package/dist/database/operations/queries.d.ts +0 -4
  92. package/dist/database/operations/queries.d.ts.map +1 -1
  93. package/dist/database/operations/queries.js +0 -8
  94. package/dist/database/operations/queries.js.map +1 -1
  95. package/dist/index.d.ts +1 -1
  96. package/dist/index.js +2 -2
  97. package/dist/index.js.map +1 -1
  98. package/dist/init-rules.d.ts.map +1 -1
  99. package/dist/init-rules.js +0 -1
  100. package/dist/init-rules.js.map +1 -1
  101. package/dist/knexfile.d.ts.map +1 -1
  102. package/dist/knexfile.js +2 -1
  103. package/dist/knexfile.js.map +1 -1
  104. package/dist/migration/local-to-global.d.ts +19 -0
  105. package/dist/migration/local-to-global.d.ts.map +1 -0
  106. package/dist/migration/local-to-global.js +133 -0
  107. package/dist/migration/local-to-global.js.map +1 -0
  108. package/dist/saas-connector/client/types.d.ts +1 -1
  109. package/dist/saas-connector/client/types.d.ts.map +1 -1
  110. package/dist/schema.js +1 -1
  111. package/dist/server/setup.d.ts.map +1 -1
  112. package/dist/server/setup.js +15 -7
  113. package/dist/server/setup.js.map +1 -1
  114. package/dist/tests/backend/backend-factory.test.js +2 -2
  115. package/dist/tests/backend/backend-factory.test.js.map +1 -1
  116. package/dist/tests/docker/native/constraint-operations.test.d.ts +2 -17
  117. package/dist/tests/docker/native/constraint-operations.test.d.ts.map +1 -1
  118. package/dist/tests/docker/native/constraint-operations.test.js +3 -82
  119. package/dist/tests/docker/native/constraint-operations.test.js.map +1 -1
  120. package/dist/tests/docker/native/db-init.d.ts +3 -34
  121. package/dist/tests/docker/native/db-init.d.ts.map +1 -1
  122. package/dist/tests/docker/native/db-init.js +15 -77
  123. package/dist/tests/docker/native/db-init.js.map +1 -1
  124. package/dist/tests/docker/native/decision-operations.test.d.ts +2 -10
  125. package/dist/tests/docker/native/decision-operations.test.d.ts.map +1 -1
  126. package/dist/tests/docker/native/decision-operations.test.js +2 -84
  127. package/dist/tests/docker/native/decision-operations.test.js.map +1 -1
  128. package/dist/tests/docker/native/help-system.test.d.ts +2 -5
  129. package/dist/tests/docker/native/help-system.test.d.ts.map +1 -1
  130. package/dist/tests/docker/native/help-system.test.js +2 -47
  131. package/dist/tests/docker/native/help-system.test.js.map +1 -1
  132. package/dist/tests/docker/native/suggest-tool.test.d.ts +3 -11
  133. package/dist/tests/docker/native/suggest-tool.test.d.ts.map +1 -1
  134. package/dist/tests/docker/native/suggest-tool.test.js +3 -60
  135. package/dist/tests/docker/native/suggest-tool.test.js.map +1 -1
  136. package/dist/tests/docker/native/test-harness.d.ts +2 -23
  137. package/dist/tests/docker/native/test-harness.d.ts.map +1 -1
  138. package/dist/tests/docker/native/test-harness.js +5 -59
  139. package/dist/tests/docker/native/test-harness.js.map +1 -1
  140. package/dist/tests/feature/decision/analytics.test.js +2 -1
  141. package/dist/tests/feature/decision/analytics.test.js.map +1 -1
  142. package/dist/tests/feature/decision/batch-validation-comprehensive.test.js +2 -7
  143. package/dist/tests/feature/decision/batch-validation-comprehensive.test.js.map +1 -1
  144. package/dist/tests/feature/decision/batch-validation.test.js +2 -1
  145. package/dist/tests/feature/decision/batch-validation.test.js.map +1 -1
  146. package/dist/tests/integration/auto-trigger-suggestions.test.js +4 -37
  147. package/dist/tests/integration/auto-trigger-suggestions.test.js.map +1 -1
  148. package/dist/tests/integration/hybrid-similarity-detection.test.js +2 -1
  149. package/dist/tests/integration/hybrid-similarity-detection.test.js.map +1 -1
  150. package/dist/tests/integration/json-export-import.test.d.ts.map +1 -0
  151. package/dist/tests/integration/json-export-import.test.js.map +1 -0
  152. package/dist/tests/unit/case-insensitive-validator.test.d.ts +0 -7
  153. package/dist/tests/unit/case-insensitive-validator.test.d.ts.map +1 -1
  154. package/dist/tests/unit/case-insensitive-validator.test.js +0 -22
  155. package/dist/tests/unit/case-insensitive-validator.test.js.map +1 -1
  156. package/dist/tests/unit/config/cloud-config-loader.test.js +4 -2
  157. package/dist/tests/unit/config/cloud-config-loader.test.js.map +1 -1
  158. package/dist/tests/unit/config/global-db-migration.test.d.ts +12 -0
  159. package/dist/tests/unit/config/global-db-migration.test.d.ts.map +1 -0
  160. package/dist/tests/unit/config/global-db-migration.test.js +117 -0
  161. package/dist/tests/unit/config/global-db-migration.test.js.map +1 -0
  162. package/dist/tests/unit/constraint-scorer.test.d.ts +2 -7
  163. package/dist/tests/unit/constraint-scorer.test.d.ts.map +1 -1
  164. package/dist/tests/unit/constraint-scorer.test.js +2 -28
  165. package/dist/tests/unit/constraint-scorer.test.js.map +1 -1
  166. package/dist/tests/unit/hooks/grok-hook-normalization.test.d.ts +9 -0
  167. package/dist/tests/unit/hooks/grok-hook-normalization.test.d.ts.map +1 -0
  168. package/dist/tests/unit/hooks/grok-hook-normalization.test.js +98 -0
  169. package/dist/tests/unit/hooks/grok-hook-normalization.test.js.map +1 -0
  170. package/dist/tests/unit/hooks/grok-plan-template-injection.test.d.ts +7 -0
  171. package/dist/tests/unit/hooks/grok-plan-template-injection.test.d.ts.map +1 -0
  172. package/dist/tests/unit/hooks/grok-plan-template-injection.test.js +55 -0
  173. package/dist/tests/unit/hooks/grok-plan-template-injection.test.js.map +1 -0
  174. package/dist/tests/unit/universal-knex.test.js +9 -0
  175. package/dist/tests/unit/universal-knex.test.js.map +1 -1
  176. package/dist/tests/unit/validation/parameter-validation.test.js +0 -24
  177. package/dist/tests/unit/validation/parameter-validation.test.js.map +1 -1
  178. package/dist/tests/utils/db-config.d.ts.map +1 -1
  179. package/dist/tests/utils/db-config.js +0 -9
  180. package/dist/tests/utils/db-config.js.map +1 -1
  181. package/dist/tests/utils/db-import.d.ts.map +1 -1
  182. package/dist/tests/utils/db-import.js +0 -3
  183. package/dist/tests/utils/db-import.js.map +1 -1
  184. package/dist/tests/utils/db-schema.d.ts.map +1 -1
  185. package/dist/tests/utils/db-schema.js +48 -51
  186. package/dist/tests/utils/db-schema.js.map +1 -1
  187. package/dist/tests/utils/db-seeding.d.ts.map +1 -1
  188. package/dist/tests/utils/db-seeding.js +0 -3
  189. package/dist/tests/utils/db-seeding.js.map +1 -1
  190. package/dist/tests/utils/index.d.ts +0 -1
  191. package/dist/tests/utils/index.d.ts.map +1 -1
  192. package/dist/tests/utils/index.js +0 -2
  193. package/dist/tests/utils/index.js.map +1 -1
  194. package/dist/tests/utils/test-helpers.d.ts +6 -76
  195. package/dist/tests/utils/test-helpers.d.ts.map +1 -1
  196. package/dist/tests/utils/test-helpers.js +56 -162
  197. package/dist/tests/utils/test-helpers.js.map +1 -1
  198. package/dist/tests/utils/test-lifecycle.d.ts +2 -28
  199. package/dist/tests/utils/test-lifecycle.d.ts.map +1 -1
  200. package/dist/tests/utils/test-lifecycle.js +2 -31
  201. package/dist/tests/utils/test-lifecycle.js.map +1 -1
  202. package/dist/tools/context/index.d.ts +0 -1
  203. package/dist/tools/context/index.d.ts.map +1 -1
  204. package/dist/tools/context/index.js +0 -2
  205. package/dist/tools/context/index.js.map +1 -1
  206. package/dist/tools/context/types.d.ts +1 -1
  207. package/dist/tools/context/types.d.ts.map +1 -1
  208. package/dist/types/actions.d.ts +6 -29
  209. package/dist/types/actions.d.ts.map +1 -1
  210. package/dist/types/actions.js +1 -2
  211. package/dist/types/actions.js.map +1 -1
  212. package/dist/types/constraint/params.d.ts +24 -1
  213. package/dist/types/constraint/params.d.ts.map +1 -1
  214. package/dist/types/constraint/params.js +3 -0
  215. package/dist/types/constraint/params.js.map +1 -1
  216. package/dist/types/constraint/responses.d.ts +18 -1
  217. package/dist/types/constraint/responses.d.ts.map +1 -1
  218. package/dist/types/constraint/responses.js +3 -0
  219. package/dist/types/constraint/responses.js.map +1 -1
  220. package/dist/types/decision/batch.d.ts +2 -5
  221. package/dist/types/decision/batch.d.ts.map +1 -1
  222. package/dist/types/decision/batch.js +3 -3
  223. package/dist/types/decision/batch.js.map +1 -1
  224. package/dist/types/decision/params.d.ts +7 -4
  225. package/dist/types/decision/params.d.ts.map +1 -1
  226. package/dist/types/decision/responses.d.ts +49 -35
  227. package/dist/types/decision/responses.d.ts.map +1 -1
  228. package/dist/types/decision/templates.d.ts +2 -18
  229. package/dist/types/decision/templates.d.ts.map +1 -1
  230. package/dist/types/decision/templates.js +3 -3
  231. package/dist/types/decision/templates.js.map +1 -1
  232. package/dist/types/enums.d.ts +11 -13
  233. package/dist/types/enums.d.ts.map +1 -1
  234. package/dist/types/enums.js +5 -13
  235. package/dist/types/enums.js.map +1 -1
  236. package/dist/types/import-export.d.ts +7 -30
  237. package/dist/types/import-export.d.ts.map +1 -1
  238. package/dist/types/import-export.js +1 -2
  239. package/dist/types/import-export.js.map +1 -1
  240. package/dist/types/index.d.ts +18 -22
  241. package/dist/types/index.d.ts.map +1 -1
  242. package/dist/types/index.js +4 -32
  243. package/dist/types/index.js.map +1 -1
  244. package/dist/types/master-entities.d.ts +1 -10
  245. package/dist/types/master-entities.d.ts.map +1 -1
  246. package/dist/types/master-entities.js +1 -2
  247. package/dist/types/master-entities.js.map +1 -1
  248. package/dist/types/transaction-entities.d.ts +2 -21
  249. package/dist/types/transaction-entities.d.ts.map +1 -1
  250. package/dist/types/transaction-entities.js +1 -1
  251. package/dist/types/validation.d.ts +1 -16
  252. package/dist/types/validation.d.ts.map +1 -1
  253. package/dist/types/validation.js +1 -2
  254. package/dist/types/validation.js.map +1 -1
  255. package/dist/types/view-entities.d.ts +3 -12
  256. package/dist/types/view-entities.d.ts.map +1 -1
  257. package/dist/types/view-entities.js +1 -1
  258. package/dist/types.d.ts +4 -718
  259. package/dist/types.d.ts.map +1 -1
  260. package/dist/types.js +5 -39
  261. package/dist/types.js.map +1 -1
  262. package/dist/utils/parameter-validator.d.ts +2 -2
  263. package/dist/utils/parameter-validator.d.ts.map +1 -1
  264. package/dist/utils/parameter-validator.js.map +1 -1
  265. package/dist/utils/path-normalize.d.ts +23 -0
  266. package/dist/utils/path-normalize.d.ts.map +1 -0
  267. package/dist/utils/path-normalize.js +38 -0
  268. package/dist/utils/path-normalize.js.map +1 -0
  269. package/dist/utils/project-root.d.ts +6 -3
  270. package/dist/utils/project-root.d.ts.map +1 -1
  271. package/dist/utils/project-root.js +11 -3
  272. package/dist/utils/project-root.js.map +1 -1
  273. package/dist/watcher/base-watcher.d.ts +0 -4
  274. package/dist/watcher/base-watcher.d.ts.map +1 -1
  275. package/dist/watcher/base-watcher.js +11 -22
  276. package/dist/watcher/base-watcher.js.map +1 -1
  277. package/docs/CLI_USAGE.md +27 -107
  278. package/docs/CONFIGURATION.md +10 -5
  279. package/docs/DATABASE_AUTH.md +3 -3
  280. package/docs/HOOKS_GUIDE.md +40 -6
  281. package/docs/MIGRATION_TO_SAAS.md +2 -2
  282. package/docs/SHARED_DATABASE.md +108 -0
  283. package/package.json +4 -3
  284. package/dist/adapters/auth/auth-types.d.ts +0 -30
  285. package/dist/adapters/auth/auth-types.d.ts.map +0 -1
  286. package/dist/adapters/auth/auth-types.js +0 -30
  287. package/dist/adapters/auth/auth-types.js.map +0 -1
  288. package/dist/cli/db-dump.d.ts +0 -36
  289. package/dist/cli/db-dump.d.ts.map +0 -1
  290. package/dist/cli/db-dump.js +0 -384
  291. package/dist/cli/db-dump.js.map +0 -1
  292. package/dist/database/config/config-ops.d.ts +0 -42
  293. package/dist/database/config/config-ops.d.ts.map +0 -1
  294. package/dist/database/config/config-ops.js +0 -102
  295. package/dist/database/config/config-ops.js.map +0 -1
  296. package/dist/formatters/adr-formatter.d.ts +0 -22
  297. package/dist/formatters/adr-formatter.d.ts.map +0 -1
  298. package/dist/formatters/adr-formatter.js +0 -127
  299. package/dist/formatters/adr-formatter.js.map +0 -1
  300. package/dist/formatters/confluence-formatter.d.ts +0 -26
  301. package/dist/formatters/confluence-formatter.d.ts.map +0 -1
  302. package/dist/formatters/confluence-formatter.js +0 -129
  303. package/dist/formatters/confluence-formatter.js.map +0 -1
  304. package/dist/formatters/index.d.ts +0 -34
  305. package/dist/formatters/index.d.ts.map +0 -1
  306. package/dist/formatters/index.js +0 -57
  307. package/dist/formatters/index.js.map +0 -1
  308. package/dist/formatters/markdown-formatter.d.ts +0 -16
  309. package/dist/formatters/markdown-formatter.d.ts.map +0 -1
  310. package/dist/formatters/markdown-formatter.js +0 -110
  311. package/dist/formatters/markdown-formatter.js.map +0 -1
  312. package/dist/formatters/notion-formatter.d.ts +0 -29
  313. package/dist/formatters/notion-formatter.d.ts.map +0 -1
  314. package/dist/formatters/notion-formatter.js +0 -177
  315. package/dist/formatters/notion-formatter.js.map +0 -1
  316. package/dist/formatters/types.d.ts +0 -31
  317. package/dist/formatters/types.d.ts.map +0 -1
  318. package/dist/formatters/types.js +0 -6
  319. package/dist/formatters/types.js.map +0 -1
  320. package/dist/tests/database/sql-dump/converters.test.d.ts +0 -7
  321. package/dist/tests/database/sql-dump/converters.test.d.ts.map +0 -1
  322. package/dist/tests/database/sql-dump/converters.test.js +0 -314
  323. package/dist/tests/database/sql-dump/converters.test.js.map +0 -1
  324. package/dist/tests/database/sql-dump/default-conversions.test.d.ts +0 -8
  325. package/dist/tests/database/sql-dump/default-conversions.test.d.ts.map +0 -1
  326. package/dist/tests/database/sql-dump/default-conversions.test.js +0 -141
  327. package/dist/tests/database/sql-dump/default-conversions.test.js.map +0 -1
  328. package/dist/tests/database/sql-dump/table-ordering.test.d.ts +0 -27
  329. package/dist/tests/database/sql-dump/table-ordering.test.d.ts.map +0 -1
  330. package/dist/tests/database/sql-dump/table-ordering.test.js +0 -284
  331. package/dist/tests/database/sql-dump/table-ordering.test.js.map +0 -1
  332. package/dist/tests/database/sql-dump/type-conversion.test.d.ts +0 -8
  333. package/dist/tests/database/sql-dump/type-conversion.test.d.ts.map +0 -1
  334. package/dist/tests/database/sql-dump/type-conversion.test.js +0 -361
  335. package/dist/tests/database/sql-dump/type-conversion.test.js.map +0 -1
  336. package/dist/tests/docker/cross-database.test.d.ts +0 -21
  337. package/dist/tests/docker/cross-database.test.d.ts.map +0 -1
  338. package/dist/tests/docker/cross-database.test.js +0 -308
  339. package/dist/tests/docker/cross-database.test.js.map +0 -1
  340. package/dist/tests/docker/dump-import.test.d.ts +0 -15
  341. package/dist/tests/docker/dump-import.test.d.ts.map +0 -1
  342. package/dist/tests/docker/dump-import.test.js +0 -424
  343. package/dist/tests/docker/dump-import.test.js.map +0 -1
  344. package/dist/tests/docker/fk-constraints.test.d.ts +0 -13
  345. package/dist/tests/docker/fk-constraints.test.d.ts.map +0 -1
  346. package/dist/tests/docker/fk-constraints.test.js +0 -381
  347. package/dist/tests/docker/fk-constraints.test.js.map +0 -1
  348. package/dist/tests/docker/indexes.test.d.ts +0 -12
  349. package/dist/tests/docker/indexes.test.d.ts.map +0 -1
  350. package/dist/tests/docker/indexes.test.js +0 -250
  351. package/dist/tests/docker/indexes.test.js.map +0 -1
  352. package/dist/tests/docker/integration.test.d.ts +0 -16
  353. package/dist/tests/docker/integration.test.d.ts.map +0 -1
  354. package/dist/tests/docker/integration.test.js +0 -323
  355. package/dist/tests/docker/integration.test.js.map +0 -1
  356. package/dist/tests/docker/multi-project-migration.test.d.ts +0 -17
  357. package/dist/tests/docker/multi-project-migration.test.d.ts.map +0 -1
  358. package/dist/tests/docker/multi-project-migration.test.js +0 -394
  359. package/dist/tests/docker/multi-project-migration.test.js.map +0 -1
  360. package/dist/tests/docker/schema-migration.test.d.ts +0 -8
  361. package/dist/tests/docker/schema-migration.test.d.ts.map +0 -1
  362. package/dist/tests/docker/schema-migration.test.js +0 -98
  363. package/dist/tests/docker/schema-migration.test.js.map +0 -1
  364. package/dist/tests/integration/e2e-workflow1-debug.test.d.ts +0 -5
  365. package/dist/tests/integration/e2e-workflow1-debug.test.d.ts.map +0 -1
  366. package/dist/tests/integration/e2e-workflow1-debug.test.js +0 -85
  367. package/dist/tests/integration/e2e-workflow1-debug.test.js.map +0 -1
  368. package/dist/tests/integration/suggest-simple.test.d.ts +0 -5
  369. package/dist/tests/integration/suggest-simple.test.d.ts.map +0 -1
  370. package/dist/tests/integration/suggest-simple.test.js +0 -90
  371. package/dist/tests/integration/suggest-simple.test.js.map +0 -1
  372. package/dist/tests/migrations/test-all-versions-real.d.ts +0 -8
  373. package/dist/tests/migrations/test-all-versions-real.d.ts.map +0 -1
  374. package/dist/tests/migrations/test-all-versions-real.js +0 -236
  375. package/dist/tests/migrations/test-all-versions-real.js.map +0 -1
  376. package/dist/tests/migrations/test-all-versions.d.ts +0 -14
  377. package/dist/tests/migrations/test-all-versions.d.ts.map +0 -1
  378. package/dist/tests/migrations/test-all-versions.js +0 -519
  379. package/dist/tests/migrations/test-all-versions.js.map +0 -1
  380. package/dist/tests/migrations/v4/v4-fresh-install.test.d.ts +0 -7
  381. package/dist/tests/migrations/v4/v4-fresh-install.test.d.ts.map +0 -1
  382. package/dist/tests/migrations/v4/v4-fresh-install.test.js +0 -168
  383. package/dist/tests/migrations/v4/v4-fresh-install.test.js.map +0 -1
  384. package/dist/tests/migrations/v4/v4-migrate-data.test.d.ts +0 -13
  385. package/dist/tests/migrations/v4/v4-migrate-data.test.d.ts.map +0 -1
  386. package/dist/tests/migrations/v4/v4-migrate-data.test.js +0 -264
  387. package/dist/tests/migrations/v4/v4-migrate-data.test.js.map +0 -1
  388. package/dist/tests/unit/utils/case-insensitive-validator.test.d.ts +0 -2
  389. package/dist/tests/unit/utils/case-insensitive-validator.test.d.ts.map +0 -1
  390. package/dist/tests/unit/utils/case-insensitive-validator.test.js +0 -97
  391. package/dist/tests/unit/utils/case-insensitive-validator.test.js.map +0 -1
  392. package/dist/tests/utils/json-export-import.test.d.ts.map +0 -1
  393. package/dist/tests/utils/json-export-import.test.js.map +0 -1
  394. package/dist/tests/utils/task-helpers.d.ts +0 -67
  395. package/dist/tests/utils/task-helpers.d.ts.map +0 -1
  396. package/dist/tests/utils/task-helpers.js +0 -134
  397. package/dist/tests/utils/task-helpers.js.map +0 -1
  398. package/dist/tools/context/actions/export.d.ts +0 -35
  399. package/dist/tools/context/actions/export.d.ts.map +0 -1
  400. package/dist/tools/context/actions/export.js +0 -93
  401. package/dist/tools/context/actions/export.js.map +0 -1
  402. package/dist/types/file/params.d.ts +0 -40
  403. package/dist/types/file/params.d.ts.map +0 -1
  404. package/dist/types/file/params.js +0 -6
  405. package/dist/types/file/params.js.map +0 -1
  406. package/dist/types/file/responses.d.ts +0 -2
  407. package/dist/types/file/responses.d.ts.map +0 -1
  408. package/dist/types/file/responses.js +0 -2
  409. package/dist/types/file/responses.js.map +0 -1
  410. package/dist/types/task/params.d.ts +0 -173
  411. package/dist/types/task/params.d.ts.map +0 -1
  412. package/dist/types/task/params.js +0 -8
  413. package/dist/types/task/params.js.map +0 -1
  414. package/dist/types/task/responses.d.ts +0 -334
  415. package/dist/types/task/responses.d.ts.map +0 -1
  416. package/dist/types/task/responses.js +0 -8
  417. package/dist/types/task/responses.js.map +0 -1
  418. package/dist/utils/sql-dump/core/dependency-sort.d.ts +0 -16
  419. package/dist/utils/sql-dump/core/dependency-sort.d.ts.map +0 -1
  420. package/dist/utils/sql-dump/core/dependency-sort.js +0 -105
  421. package/dist/utils/sql-dump/core/dependency-sort.js.map +0 -1
  422. package/dist/utils/sql-dump/core/generate-dump.d.ts +0 -13
  423. package/dist/utils/sql-dump/core/generate-dump.d.ts.map +0 -1
  424. package/dist/utils/sql-dump/core/generate-dump.js +0 -201
  425. package/dist/utils/sql-dump/core/generate-dump.js.map +0 -1
  426. package/dist/utils/sql-dump/core/index-export.d.ts +0 -10
  427. package/dist/utils/sql-dump/core/index-export.d.ts.map +0 -1
  428. package/dist/utils/sql-dump/core/index-export.js +0 -173
  429. package/dist/utils/sql-dump/core/index-export.js.map +0 -1
  430. package/dist/utils/sql-dump/core/sequence-reset.d.ts +0 -6
  431. package/dist/utils/sql-dump/core/sequence-reset.d.ts.map +0 -1
  432. package/dist/utils/sql-dump/core/sequence-reset.js +0 -28
  433. package/dist/utils/sql-dump/core/sequence-reset.js.map +0 -1
  434. package/dist/utils/sql-dump/core/table-export.d.ts +0 -2
  435. package/dist/utils/sql-dump/core/table-export.d.ts.map +0 -1
  436. package/dist/utils/sql-dump/core/table-export.js +0 -4
  437. package/dist/utils/sql-dump/core/table-export.js.map +0 -1
  438. package/dist/utils/sql-dump/core/view-export.d.ts +0 -2
  439. package/dist/utils/sql-dump/core/view-export.d.ts.map +0 -1
  440. package/dist/utils/sql-dump/core/view-export.js +0 -4
  441. package/dist/utils/sql-dump/core/view-export.js.map +0 -1
  442. package/dist/utils/sql-dump/formatters/bulk-insert.d.ts +0 -14
  443. package/dist/utils/sql-dump/formatters/bulk-insert.d.ts.map +0 -1
  444. package/dist/utils/sql-dump/formatters/bulk-insert.js +0 -177
  445. package/dist/utils/sql-dump/formatters/bulk-insert.js.map +0 -1
  446. package/dist/utils/sql-dump/formatters/identifiers.d.ts +0 -6
  447. package/dist/utils/sql-dump/formatters/identifiers.d.ts.map +0 -1
  448. package/dist/utils/sql-dump/formatters/identifiers.js +0 -16
  449. package/dist/utils/sql-dump/formatters/identifiers.js.map +0 -1
  450. package/dist/utils/sql-dump/formatters/value-formatter.d.ts +0 -14
  451. package/dist/utils/sql-dump/formatters/value-formatter.d.ts.map +0 -1
  452. package/dist/utils/sql-dump/formatters/value-formatter.js +0 -281
  453. package/dist/utils/sql-dump/formatters/value-formatter.js.map +0 -1
  454. package/dist/utils/sql-dump/generators/controls.d.ts +0 -10
  455. package/dist/utils/sql-dump/generators/controls.d.ts.map +0 -1
  456. package/dist/utils/sql-dump/generators/controls.js +0 -36
  457. package/dist/utils/sql-dump/generators/controls.js.map +0 -1
  458. package/dist/utils/sql-dump/generators/headers.d.ts +0 -6
  459. package/dist/utils/sql-dump/generators/headers.d.ts.map +0 -1
  460. package/dist/utils/sql-dump/generators/headers.js +0 -19
  461. package/dist/utils/sql-dump/generators/headers.js.map +0 -1
  462. package/dist/utils/sql-dump/index.d.ts +0 -14
  463. package/dist/utils/sql-dump/index.d.ts.map +0 -1
  464. package/dist/utils/sql-dump/index.js +0 -16
  465. package/dist/utils/sql-dump/index.js.map +0 -1
  466. package/dist/utils/sql-dump/schema/indexes.d.ts +0 -20
  467. package/dist/utils/sql-dump/schema/indexes.d.ts.map +0 -1
  468. package/dist/utils/sql-dump/schema/indexes.js +0 -108
  469. package/dist/utils/sql-dump/schema/indexes.js.map +0 -1
  470. package/dist/utils/sql-dump/schema/primary-keys.d.ts +0 -6
  471. package/dist/utils/sql-dump/schema/primary-keys.d.ts.map +0 -1
  472. package/dist/utils/sql-dump/schema/primary-keys.js +0 -41
  473. package/dist/utils/sql-dump/schema/primary-keys.js.map +0 -1
  474. package/dist/utils/sql-dump/schema/tables.d.ts +0 -15
  475. package/dist/utils/sql-dump/schema/tables.d.ts.map +0 -1
  476. package/dist/utils/sql-dump/schema/tables.js +0 -518
  477. package/dist/utils/sql-dump/schema/tables.js.map +0 -1
  478. package/dist/utils/sql-dump/schema/views.d.ts +0 -11
  479. package/dist/utils/sql-dump/schema/views.d.ts.map +0 -1
  480. package/dist/utils/sql-dump/schema/views.js +0 -116
  481. package/dist/utils/sql-dump/schema/views.js.map +0 -1
  482. package/dist/utils/sql-dump/types.d.ts +0 -10
  483. package/dist/utils/sql-dump/types.d.ts.map +0 -1
  484. package/dist/utils/sql-dump/types.js +0 -3
  485. package/dist/utils/sql-dump/types.js.map +0 -1
  486. package/dist/utils/sql-dump-converters.d.ts +0 -188
  487. package/dist/utils/sql-dump-converters.d.ts.map +0 -1
  488. package/dist/utils/sql-dump-converters.js +0 -315
  489. package/dist/utils/sql-dump-converters.js.map +0 -1
  490. package/dist/watcher/gitignore-parser.d.ts +0 -70
  491. package/dist/watcher/gitignore-parser.d.ts.map +0 -1
  492. package/dist/watcher/gitignore-parser.js +0 -195
  493. package/dist/watcher/gitignore-parser.js.map +0 -1
  494. package/dist/watcher/index.d.ts +0 -9
  495. package/dist/watcher/index.d.ts.map +0 -1
  496. package/dist/watcher/index.js +0 -8
  497. package/dist/watcher/index.js.map +0 -1
  498. /package/dist/tests/{utils → integration}/json-export-import.test.d.ts +0 -0
  499. /package/dist/tests/{utils → integration}/json-export-import.test.js +0 -0
package/docs/CLI_USAGE.md CHANGED
@@ -7,7 +7,6 @@
7
7
  sqlew provides CLI commands for database operations that complement the main MCP server. The primary use of sqlew is as an **MCP server** (integrated via `.mcp.json`), but these CLI commands handle:
8
8
 
9
9
  - **Data Export/Import** — JSON-based project data migration (cross-database supported)
10
- - **SQL Dump** — Full database backup with schema (same-database-type only)
11
10
 
12
11
  ## Commands
13
12
 
@@ -15,7 +14,6 @@ sqlew provides CLI commands for database operations that complement the main MCP
15
14
  |---------|---------|----------|
16
15
  | `db:export` | JSON export (recommended for migration) | ✅ |
17
16
  | `db:import` | JSON import (recommended for migration) | ✅ |
18
- | `db:dump` | SQL dump (backup/restore) | ❌ Same-DB only |
19
17
 
20
18
  ### Running CLI Commands
21
19
 
@@ -23,15 +21,9 @@ sqlew provides CLI commands for database operations that complement the main MCP
23
21
  # Direct use (global install or npx)
24
22
  sqlew db:export backup.json
25
23
  sqlew db:import backup.json
26
- sqlew db:dump sqlite backup.sql
27
-
28
- # Via npm scripts (within mcp-sqlew project)
29
- npm run db:export -- backup.json
30
- npm run db:import -- backup.json
31
- npm run db:dump -- sqlite backup.sql
32
24
  ```
33
25
 
34
- **Note**: The first argument determines the mode — `db:export`, `db:import`, `db:dump` enter CLI mode; no argument starts the MCP server.
26
+ **Note**: The first argument determines the mode — `db:export`, `db:import` enter CLI mode; no argument starts the MCP server.
35
27
 
36
28
  ---
37
29
 
@@ -47,10 +39,13 @@ sqlew db:export [output-file] [key=value ...]
47
39
 
48
40
  | Option | Description | Default |
49
41
  |--------|-------------|---------|
50
- | `project=<name>` | Export specific project by name | All projects |
51
- | `db-path=<path>` | Database file path | `.sqlew/sqlew.db` |
42
+ | `project=<name>` | Export specific project by name | Auto-detect from `config.toml` |
43
+ | `project=all` | Export all projects (explicit opt-in) | |
44
+ | `db-path=<path>` | Database file path | `~/.config/sqlew/sqlew-shared.db` |
52
45
  | `config=<path>` | Config file path | Auto-detect |
53
46
 
47
+ > **Security (v5.1.0+)**: With the global shared database, `db:export` no longer exports all projects by default. It auto-detects the project name from `.sqlew/config.toml` `[project].name`. To export all projects, you must explicitly specify `project=all`.
48
+
54
49
  ### What Gets Exported
55
50
 
56
51
  - **Master Tables** (filtered to used entries): m_context_keys, m_tags, m_scopes, m_layers, m_projects
@@ -60,12 +55,15 @@ sqlew db:export [output-file] [key=value ...]
60
55
  ### Examples
61
56
 
62
57
  ```bash
63
- # Export all projects
58
+ # Export current project (auto-detect from .sqlew/config.toml)
64
59
  sqlew db:export backup.json
65
60
 
66
61
  # Export specific project
67
62
  sqlew db:export backup.json project=my-project
68
63
 
64
+ # Export all projects (explicit)
65
+ sqlew db:export backup.json project=all
66
+
69
67
  # Export to stdout
70
68
  sqlew db:export project=my-project
71
69
  ```
@@ -119,7 +117,7 @@ sqlew db:import backup.json project-name=new-name
119
117
  sqlew db:import backup.json dry-run=true
120
118
  ```
121
119
 
122
- **⚠️ Important**: Import uses `skip-if-exists=true` by default — it skips if the project name already exists. This is **NOT a backup/restore solution**. Use `db:dump` for backup/restore.
120
+ **⚠️ Important**: Import uses `skip-if-exists=true` by default — it skips if the project name already exists. For full backup/restore, use a file copy of the SQLite database.
123
121
 
124
122
  ---
125
123
 
@@ -139,7 +137,11 @@ sqlew db:import backup.json dry-run=true
139
137
  **Step 1: Export from SQLite**
140
138
 
141
139
  ```bash
140
+ # Exports current project (from .sqlew/config.toml [project].name)
142
141
  sqlew db:export migration-backup.json
142
+
143
+ # Or export all projects for full migration
144
+ sqlew db:export migration-backup.json project=all
143
145
  ```
144
146
 
145
147
  **Step 2: Prepare MySQL**
@@ -183,7 +185,11 @@ sqlew db:import migration-backup.json
183
185
  **Step 1: Export from SQLite**
184
186
 
185
187
  ```bash
188
+ # Exports current project (from .sqlew/config.toml [project].name)
186
189
  sqlew db:export migration-backup.json
190
+
191
+ # Or export all projects for full migration
192
+ sqlew db:export migration-backup.json project=all
187
193
  ```
188
194
 
189
195
  **Step 2: Prepare PostgreSQL**
@@ -229,7 +235,11 @@ sqlew db:import migration-backup.json
229
235
  Configure `.sqlew/config.toml` for MySQL, then:
230
236
 
231
237
  ```bash
238
+ # Exports current project (from .sqlew/config.toml [project].name)
232
239
  sqlew db:export migration-backup.json
240
+
241
+ # Or export all projects for full migration
242
+ sqlew db:export migration-backup.json project=all
233
243
  ```
234
244
 
235
245
  **Step 2: Prepare PostgreSQL**
@@ -293,96 +303,6 @@ Update `.mcp.json` to use the new database:
293
303
 
294
304
  ---
295
305
 
296
- ## SQL Dump (`db:dump`) — Same-Database Only
297
-
298
- > **v4.0.2+**: `db:dump` supports **same-database-type backup/restore only**. For cross-database migration, use JSON export/import above.
299
-
300
- ### Syntax
301
-
302
- ```bash
303
- sqlew db:dump <format> [output-file] [key=value ...]
304
- ```
305
-
306
- ### Options
307
-
308
- | Parameter | Description | Default |
309
- |-----------|-------------|---------|
310
- | `<format>` | Target SQL format: sqlite, mysql, postgresql | **Required** |
311
- | `[output-file]` | Output file path | stdout |
312
- | `from=<source>` | Source database type | sqlite |
313
- | `tables=<list>` | Comma-separated table names | All tables |
314
- | `chunk-size=<n>` | Rows per INSERT statement | 100 |
315
- | `on-conflict=<mode>` | error, ignore, replace | error |
316
- | `exclude-schema=true` | Data-only dump (no CREATE TABLE) | false |
317
- | `db-path=<path>` | SQLite database path | .sqlew/sqlew.db |
318
-
319
- ### Supported Operations
320
-
321
- | Source | Target | Supported |
322
- |--------|--------|-----------|
323
- | SQLite | SQLite | ✅ |
324
- | MySQL | MySQL | ✅ |
325
- | PostgreSQL | PostgreSQL | ✅ |
326
- | Cross-database | Any | ❌ Use JSON |
327
-
328
- ### Examples
329
-
330
- ```bash
331
- # SQLite backup
332
- sqlew db:dump sqlite backup.sql
333
-
334
- # MySQL backup
335
- sqlew db:dump mysql backup.sql from=mysql
336
-
337
- # PostgreSQL backup
338
- sqlew db:dump postgresql backup.sql from=postgresql
339
-
340
- # Selective table export
341
- sqlew db:dump sqlite partial.sql tables=m_projects,t_decisions
342
-
343
- # Ignore duplicates on import
344
- sqlew db:dump sqlite dump.sql on-conflict=ignore
345
- ```
346
-
347
- ### Importing SQL Dumps
348
-
349
- ```bash
350
- # SQLite
351
- sqlite3 your-database.db < dump-sqlite.sql
352
-
353
- # MySQL
354
- mysql -e "CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
355
- mysql mydb < dump-mysql.sql
356
-
357
- # PostgreSQL
358
- createdb mydb
359
- psql -d mydb -f dump-pg.sql
360
- ```
361
-
362
- ### Conflict Resolution
363
-
364
- | Mode | Behavior |
365
- |------|----------|
366
- | `error` (default) | Fails on duplicate keys |
367
- | `ignore` | Skips duplicate rows |
368
- | `replace` | Updates existing rows with new values |
369
-
370
- ---
371
-
372
- ## Comparison: JSON vs SQL Dump
373
-
374
- | Feature | db:export (JSON) | db:dump (SQL) |
375
- |---------|-----------------|---------------|
376
- | Format | JSON data only | SQL DDL + data |
377
- | Schema | Not included | Full schema |
378
- | Cross-DB | ✅ Yes | ❌ Same-DB only |
379
- | Use Case | Migration, sharing | Backup/restore |
380
- | Size | Smaller (~40% reduction) | Larger |
381
- | Conflict Handling | Smart deduplication | Overwrite or fail |
382
- | Restore | Skips if exists | Full restore |
383
-
384
- ---
385
-
386
306
  ## Use Cases
387
307
 
388
308
  ### Project Sharing
@@ -410,11 +330,11 @@ sqlew db:import /tmp/b.json
410
330
  ### Full Database Backup
411
331
 
412
332
  ```bash
413
- # SQL dump (same-DB restore)
414
- sqlew db:dump sqlite backup-$(date +%Y%m%d).sql
333
+ # Simple file copy (SQLite global DB)
334
+ cp ~/.config/sqlew/sqlew-shared.db ~/backup-$(date +%Y%m%d).db
415
335
 
416
- # Or simple file copy (SQLite only)
417
- cp .sqlew/sqlew.db .sqlew/backup-$(date +%Y%m%d).db
336
+ # Or JSON export (cross-database compatible, all projects)
337
+ sqlew db:export backup-$(date +%Y%m%d).json project=all
418
338
  ```
419
339
 
420
340
  ---
@@ -42,11 +42,15 @@ display_name = "My Project" # Optional. Human-readable name (spaces allowed
42
42
 
43
43
  ### SQLite (Default)
44
44
 
45
+ As of v5.1.0, the default database is `~/.config/sqlew/sqlew-shared.db` (shared). To override with a project-local database:
46
+
45
47
  ```toml
46
48
  [database]
47
49
  path = ".sqlew/sqlew.db" # Relative to project root, or absolute path
48
50
  ```
49
51
 
52
+ See [Shared Database](./SHARED_DATABASE.md) for migration guide and details.
53
+
50
54
  ### PostgreSQL / MySQL / MariaDB
51
55
 
52
56
  ```toml
@@ -123,7 +127,7 @@ node dist/index.js --autodelete-ignore-weekend --autodelete-message-hours=48
123
127
 
124
128
  | Variable | Description | Source |
125
129
  |----------|-------------|--------|
126
- | `SQLEW_API_KEY` | API key for cloud backend (`database.type = "cloud"`) | `~/.sqlew.env` or environment |
130
+ | `SQLEW_API_KEY` | API key for cloud backend (`database.type = "cloud"`) | `~/.config/sqlew/.sqlew.env` or environment |
127
131
  | `SQLEW_DEBUG` | Debug log file path (overrides `debug.log_path` in config) | Environment only |
128
132
 
129
133
  ### SQLEW_API_KEY
@@ -131,22 +135,23 @@ node dist/index.js --autodelete-ignore-weekend --autodelete-message-hours=48
131
135
  Used when `database.type = "cloud"`. Loaded in this priority:
132
136
 
133
137
  1. Environment variable `SQLEW_API_KEY`
134
- 2. `~/.sqlew.env` file (key=value format)
138
+ 2. `~/.config/sqlew/.sqlew.env` file (key=value format)
135
139
 
136
140
  ```bash
137
- # ~/.sqlew.env
141
+ # ~/.config/sqlew/.sqlew.env
138
142
  SQLEW_API_KEY=sk-your-api-key-here
139
143
  ```
140
144
 
141
- On Unix systems, ensure `~/.sqlew.env` has `600` permissions:
145
+ On Unix systems, ensure `~/.config/sqlew/.sqlew.env` has `600` permissions:
142
146
 
143
147
  ```bash
144
- chmod 600 ~/.sqlew.env
148
+ chmod 600 ~/.config/sqlew/.sqlew.env
145
149
  ```
146
150
 
147
151
  ---
148
152
 
149
153
  ## Related Documentation
150
154
 
155
+ - [Shared Database](./SHARED_DATABASE.md) — Global shared database, migration guide, per-project override
151
156
  - [Database Authentication](./DATABASE_AUTH.md) — Detailed auth config (SSH tunnel, validation rules, security)
152
157
  - [Architecture](./ARCHITECTURE.md) — System design overview
@@ -64,10 +64,10 @@ The cloud backend handles authentication, encryption, and scaling — no local d
64
64
 
65
65
  1. Obtain an API key from the [sqlew dashboard](https://sqlew.io)
66
66
 
67
- 2. Save the key to `~/.sqlew.env`:
67
+ 2. Save the key to `~/.config/sqlew/.sqlew.env`:
68
68
  ```bash
69
- echo 'SQLEW_API_KEY=sk-your-api-key' >> ~/.sqlew.env
70
- chmod 600 ~/.sqlew.env # Unix only
69
+ echo 'SQLEW_API_KEY=sk-your-api-key' >> ~/.config/sqlew/.sqlew.env
70
+ chmod 600 ~/.config/sqlew/.sqlew.env # Unix only
71
71
  ```
72
72
 
73
73
  3. Set database type in `.sqlew/config.toml`:
@@ -51,17 +51,51 @@ To uninstall, remove the copied skill directories and config entries.
51
51
 
52
52
  Source: https://github.com/sqlew-io/sqlew-codex
53
53
 
54
+ ## Grok Build
55
+
56
+ sqlew-plugin provides unified support for Claude Code and Grok Build (v5.2+).
57
+ No separate adapter is required.
58
+
59
+ ```bash
60
+ npm i -g sqlew
61
+ grok plugin install sqlew-io/sqlew-plugin --trust
62
+ grok plugin update
63
+ ```
64
+
65
+ For local development, install from a cloned directory instead:
66
+
67
+ ```bash
68
+ git clone https://github.com/sqlew-io/sqlew-plugin.git
69
+ grok plugin install ./sqlew-plugin --trust
70
+ ```
71
+
72
+ Verify installation:
73
+
74
+ ```bash
75
+ grok plugin list # sqlew enabled + trusted
76
+ grok inspect # hooks, MCP, skills visible
77
+ ```
78
+
79
+ **Important**:
80
+ - Do NOT register sqlew hooks in `~/.grok/hooks/` (causes double-firing with plugin hooks)
81
+ - Do NOT add `[mcp_servers.sqlew]` to `~/.grok/config.toml` (plugin `.mcp.json` handles MCP)
82
+ - Plan mode guidance uses plugin skills (`sqlew-plan-guidance`, `sqlew-decision-format`), not hook injection
83
+ - Plan-to-ADR extracts `### 📌 Decision:` / `### 🚫 Constraint:` from `plan.md` on `exit_plan_mode`
84
+
85
+ Source: https://github.com/sqlew-io/sqlew-plugin
86
+
54
87
  ## What Gets Configured
55
88
 
56
- | Feature | Claude Code | Codex |
57
- |---------|-------------|-------|
58
- | MCP server | Auto-configured | Manual (config.toml) |
59
- | Plan-to-ADR | Skills + Hooks | Skills + System prompt |
60
- | PR enrichment | Skill (sqlew-pr-adr) | Skill (sqlew-pr-adr) |
61
- | Decision format guidance | Skill (sqlew-decision-format) | Skill (sqlew-decision-format) |
89
+ | Feature | Claude Code | Codex | Grok Build |
90
+ |---------|-------------|-------|------------|
91
+ | MCP server | Auto-configured | Manual (config.toml) | Plugin `.mcp.json` |
92
+ | Plan-to-ADR | Skills + Hooks | Skills + System prompt | Skills + Hooks |
93
+ | PR enrichment | Skill (sqlew-pr-adr) | Skill (sqlew-pr-adr) | Skill (sqlew-pr-adr) |
94
+ | Decision format guidance | Skill (sqlew-decision-format) | Skill (sqlew-decision-format) | Skill (sqlew-decision-format) |
62
95
 
63
96
  ## Version History
64
97
 
98
+ - **v5.2.0**: Grok Build support via sqlew-plugin (hook normalization, Grok plan path, skills-based plan guidance)
65
99
  - **v5.0.0**: Plugin-first architecture (sqlew-plugin for Claude Code, sqlew-codex for Codex)
66
100
  - **v4.3.0**: Plan-to-ADR - Automatic ADR from Plan Mode
67
101
  - **v4.1.0**: Initial Claude Code Hooks integration
@@ -159,10 +159,10 @@ Yes. Export each project separately:
159
159
 
160
160
  ```bash
161
161
  # Export all projects
162
- npx sqlew db:export --all backup-all.json
162
+ npx sqlew db:export backup-all.json project=all
163
163
 
164
164
  # Or export specific project
165
- npx sqlew db:export --project my-project backup.json
165
+ npx sqlew db:export backup.json project=my-project
166
166
  ```
167
167
 
168
168
  ### What about constraint tags?
@@ -0,0 +1,108 @@
1
+ # Shared Database (v5.1.0+)
2
+
3
+ As of v5.1.0, sqlew uses a **global shared database** by default instead of a per-project local database. This resolves the issue where git worktrees created isolated databases that couldn't share decisions.
4
+
5
+ ## Default Paths
6
+
7
+ | Purpose | Path |
8
+ |---------|------|
9
+ | Database | `~/.config/sqlew/sqlew-shared.db` |
10
+ | Config | `~/.config/sqlew/config.toml` |
11
+ | Session cache | `~/.config/sqlew/session-cache/` |
12
+
13
+ These paths are the same on all platforms (Windows, macOS, Linux).
14
+
15
+ ## Automatic Migration
16
+
17
+ When the MCP server starts, it automatically migrates local databases to the global shared database under these conditions:
18
+
19
+ - **SQLite only** — MySQL/PostgreSQL/Cloud users are not affected
20
+ - **No explicit `database.path` in config** — If you set a custom path in `.sqlew/config.toml`, auto-migration is skipped
21
+ - **`.sqlew/sqlew.db` exists** — Only the standard local DB location is migrated
22
+
23
+ ### What happens during auto-migration
24
+
25
+ 1. If the global DB **doesn't exist yet** → the local DB is copied directly (fastest path)
26
+ 2. If the global DB **already exists** → data is exported as JSON and imported (skip-if-exists per project)
27
+ 3. The local DB is renamed to `.sqlew/sqlew.db.migrated` (not deleted)
28
+
29
+ ### Safety net for merge path
30
+
31
+ When merging into an existing global DB (case 2), if the import is skipped due to a project name conflict, a `pre-migration-export.json` file is saved in `.sqlew/`. This file is automatically deleted on successful import. If it remains, you can manually import it later:
32
+
33
+ ```bash
34
+ sqlew db:import .sqlew/pre-migration-export.json
35
+ ```
36
+
37
+ ## Manual Migration
38
+
39
+ If your project uses a custom database path (set via `database.path` in `.sqlew/config.toml`), auto-migration does not apply. You can manually migrate to the global shared database:
40
+
41
+ ### Step 1: Export from your current database
42
+
43
+ ```bash
44
+ # Export current project (auto-detected from .sqlew/config.toml [project].name)
45
+ sqlew db:export export.json
46
+
47
+ # Or export all projects from the database
48
+ sqlew db:export export.json project=all
49
+
50
+ # Or specify the database path explicitly
51
+ sqlew db:export export.json db-path=.claude/docs/sqlew.db project=all
52
+ ```
53
+
54
+ ### Step 2: Switch to global database
55
+
56
+ Remove or comment out the `database.path` line in `.sqlew/config.toml`:
57
+
58
+ ```toml
59
+ [database]
60
+ # path = ".claude/docs/sqlew.db" # commented out → uses global default
61
+ ```
62
+
63
+ ### Step 3: Import into global database
64
+
65
+ ```bash
66
+ sqlew db:import export.json
67
+ ```
68
+
69
+ The global database at `~/.config/sqlew/sqlew-shared.db` will be created automatically on the next MCP server startup if it doesn't exist yet.
70
+
71
+ ## Per-Project Database Override
72
+
73
+ If you want to keep a project-specific database instead of using the global shared one, set `database.path` in that project's `.sqlew/config.toml`:
74
+
75
+ ```toml
76
+ [database]
77
+ path = ".sqlew/sqlew.db" # project-local database
78
+ ```
79
+
80
+ ### Config priority
81
+
82
+ ```
83
+ 1. CLI --db-path argument (highest)
84
+ 2. Project .sqlew/config.toml
85
+ 3. Worktree parent config
86
+ 4. Global ~/.config/sqlew/config.toml
87
+ 5. Default: ~/.config/sqlew/sqlew-shared.db (lowest)
88
+ ```
89
+
90
+ Project-level config always overrides global config, so you can use the global shared database by default and opt specific projects out as needed.
91
+
92
+ ## FAQ
93
+
94
+ ### Can I still use project-local databases?
95
+
96
+ Yes. Set `database.path` in your project's `.sqlew/config.toml` and the global default is bypassed entirely.
97
+
98
+ ### What happens to my old `.sqlew/sqlew.db`?
99
+
100
+ It's renamed to `.sqlew/sqlew.db.migrated` after successful migration. You can safely delete it once you've confirmed the global DB has your data.
101
+
102
+ ### What about MySQL/PostgreSQL users?
103
+
104
+ No change. External database connections configured in `config.toml` work exactly as before.
105
+
106
+ ### Is data shared between projects?
107
+
108
+ Yes, all projects using the default global database share the same `sqlew-shared.db` file. Each project's data is scoped by `project_id`, so there's no data mixing. This is the same model used when multiple projects connect to a shared MySQL/PostgreSQL instance.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sqlew",
3
- "description": "Automated ADR (Architecture Decision Records) for Claude Code - MCP server with SQL-backed decision repository",
4
- "version": "5.0.8",
3
+ "description": "Automated ADR (Architecture Decision Records) for AI Coding Agents - MCP server with SQL-backed decision repository",
4
+ "version": "5.2.0",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
7
7
  "bin": {
@@ -33,6 +33,8 @@
33
33
  "migrate:make": "npm run knex migrate:make",
34
34
  "migrate:latest": "npm run knex migrate:latest",
35
35
  "migrate:rollback": "npm run knex migrate:rollback",
36
+ "test:backend": "node --test --test-force-exit --import tsx \"src/tests/backend/**/*.test.ts\" | node scripts/filter-test-output.js",
37
+ "test:backend:verbose": "node --test --test-force-exit --import tsx \"src/tests/backend/**/*.test.ts\"",
36
38
  "migrate:status": "npm run knex migrate:status"
37
39
  },
38
40
  "engines": {
@@ -67,7 +69,6 @@
67
69
  "@modelcontextprotocol/sdk": "^1.21.1",
68
70
  "better-sqlite3": "^12.4.1",
69
71
  "chokidar": "^4.0.3",
70
- "ignore": "^7.0.5",
71
72
  "knex": "^3.1.0",
72
73
  "knex-schema-inspector": "^3.1.0",
73
74
  "mysql2": "^3.15.3",
@@ -1,30 +0,0 @@
1
- /**
2
- * @fileoverview Type definitions for authentication system.
3
- *
4
- * @deprecated This file has been deprecated as of v3.7.0.
5
- * All authentication types have been integrated into the main configuration system.
6
- *
7
- * **Migration Path:**
8
- * - OLD: `import type { DatabaseConfig } from './adapters/auth/auth-types.js'`
9
- * - NEW: `import type { DatabaseConfig } from './config/types.js'`
10
- *
11
- * **Available Types in config/types.ts:**
12
- * - `DatabaseConfig` - Main database configuration interface
13
- * - `AuthConfig` - Authentication configuration (direct, aws-iam, gcp-iam)
14
- * - `SSLConfig` - SSL/TLS configuration
15
- * - `ConnectionConfig` - Database connection parameters
16
- *
17
- * **Note:** SSH authentication has been removed. Users must set up SSH tunnels manually.
18
- *
19
- * This file is kept for backward compatibility during the transition period
20
- * and will be removed in v3.8.0. Please update your imports to use `config/types.ts`.
21
- *
22
- * **Completed in Task P6.1 #72**
23
- *
24
- * @module adapters/auth/auth-types
25
- * @since v3.7.0
26
- * @deprecated Use config/types.ts instead
27
- * @internal
28
- */
29
- export type { SSLConfig, AuthConfig, ConnectionConfig, DatabaseConfig } from '../../config/types.js';
30
- //# sourceMappingURL=auth-types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-types.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/auth-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,YAAY,EACV,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,cAAc,EACf,MAAM,uBAAuB,CAAC"}
@@ -1,30 +0,0 @@
1
- /**
2
- * @fileoverview Type definitions for authentication system.
3
- *
4
- * @deprecated This file has been deprecated as of v3.7.0.
5
- * All authentication types have been integrated into the main configuration system.
6
- *
7
- * **Migration Path:**
8
- * - OLD: `import type { DatabaseConfig } from './adapters/auth/auth-types.js'`
9
- * - NEW: `import type { DatabaseConfig } from './config/types.js'`
10
- *
11
- * **Available Types in config/types.ts:**
12
- * - `DatabaseConfig` - Main database configuration interface
13
- * - `AuthConfig` - Authentication configuration (direct, aws-iam, gcp-iam)
14
- * - `SSLConfig` - SSL/TLS configuration
15
- * - `ConnectionConfig` - Database connection parameters
16
- *
17
- * **Note:** SSH authentication has been removed. Users must set up SSH tunnels manually.
18
- *
19
- * This file is kept for backward compatibility during the transition period
20
- * and will be removed in v3.8.0. Please update your imports to use `config/types.ts`.
21
- *
22
- * **Completed in Task P6.1 #72**
23
- *
24
- * @module adapters/auth/auth-types
25
- * @since v3.7.0
26
- * @deprecated Use config/types.ts instead
27
- * @internal
28
- */
29
- export {};
30
- //# sourceMappingURL=auth-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-types.js","sourceRoot":"","sources":["../../../src/adapters/auth/auth-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG"}
@@ -1,36 +0,0 @@
1
- import { type DatabaseFormat, type ConflictMode } from '../utils/sql-dump/index.js';
2
- interface DbDumpArgs {
3
- from?: 'sqlite' | 'mysql' | 'postgresql';
4
- format: DatabaseFormat;
5
- output?: string;
6
- tables?: string;
7
- 'chunk-size'?: number;
8
- 'on-conflict'?: ConflictMode;
9
- 'exclude-schema'?: boolean;
10
- 'db-path'?: string;
11
- config?: string;
12
- 'max-statements'?: number;
13
- help?: boolean;
14
- }
15
- /**
16
- * Show help message for db:dump command
17
- */
18
- export declare function showDbDumpHelp(): void;
19
- /**
20
- * Parse command-line arguments for db:dump
21
- *
22
- * Supports:
23
- * - Positional: `db:dump mysql dump.sql`
24
- * - key=value format: `db:dump to=mysql from=sqlite` (npm/PowerShell friendly)
25
- */
26
- export declare function parseDbDumpArgs(args: string[]): DbDumpArgs;
27
- /**
28
- * Execute db:dump command
29
- */
30
- export declare function executeDbDump(args: DbDumpArgs): Promise<void>;
31
- /**
32
- * Main entry point for db:dump command
33
- */
34
- export declare function dbDumpCommand(args: string[]): Promise<void>;
35
- export {};
36
- //# sourceMappingURL=db-dump.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"db-dump.d.ts","sourceRoot":"","sources":["../../src/cli/db-dump.ts"],"names":[],"mappings":"AAMA,OAAO,EAAmB,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAGrG,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,YAAY,CAAC;IACzC,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CA8CrC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA2C1D;AA0HD;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAwKnE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjE"}