sqlew 4.1.1 → 4.3.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 (302) hide show
  1. package/CHANGELOG.md +1862 -1817
  2. package/README.md +25 -165
  3. package/assets/claude-md-snippets/plan-mode-integration.md +48 -24
  4. package/assets/sample-skills/sqlew-decision-format/SKILL.md +73 -0
  5. package/dist/cli/hooks/check-completion.d.ts.map +1 -1
  6. package/dist/cli/hooks/check-completion.js +90 -2
  7. package/dist/cli/hooks/check-completion.js.map +1 -1
  8. package/dist/cli/hooks/init-hooks.d.ts.map +1 -1
  9. package/dist/cli/hooks/init-hooks.js +97 -5
  10. package/dist/cli/hooks/init-hooks.js.map +1 -1
  11. package/dist/cli/hooks/on-enter-plan.d.ts +22 -0
  12. package/dist/cli/hooks/on-enter-plan.d.ts.map +1 -0
  13. package/dist/cli/hooks/on-enter-plan.js +51 -0
  14. package/dist/cli/hooks/on-enter-plan.js.map +1 -0
  15. package/dist/cli/hooks/on-exit-plan.d.ts +20 -0
  16. package/dist/cli/hooks/on-exit-plan.d.ts.map +1 -0
  17. package/dist/cli/hooks/on-exit-plan.js +66 -0
  18. package/dist/cli/hooks/on-exit-plan.js.map +1 -0
  19. package/dist/cli/hooks/on-stop.d.ts +19 -0
  20. package/dist/cli/hooks/on-stop.d.ts.map +1 -0
  21. package/dist/cli/hooks/on-stop.js +152 -0
  22. package/dist/cli/hooks/on-stop.js.map +1 -0
  23. package/dist/cli/hooks/on-subagent-stop.d.ts +20 -0
  24. package/dist/cli/hooks/on-subagent-stop.d.ts.map +1 -0
  25. package/dist/cli/hooks/on-subagent-stop.js +94 -0
  26. package/dist/cli/hooks/on-subagent-stop.js.map +1 -0
  27. package/dist/cli/hooks/plan-pattern-extractor.d.ts +87 -0
  28. package/dist/cli/hooks/plan-pattern-extractor.d.ts.map +1 -0
  29. package/dist/cli/hooks/plan-pattern-extractor.js +218 -0
  30. package/dist/cli/hooks/plan-pattern-extractor.js.map +1 -0
  31. package/dist/cli/hooks/plan-processor.d.ts +43 -0
  32. package/dist/cli/hooks/plan-processor.d.ts.map +1 -0
  33. package/dist/cli/hooks/plan-processor.js +115 -0
  34. package/dist/cli/hooks/plan-processor.js.map +1 -0
  35. package/dist/cli/hooks/plan-toml-parser.d.ts +42 -0
  36. package/dist/cli/hooks/plan-toml-parser.d.ts.map +1 -0
  37. package/dist/cli/hooks/plan-toml-parser.js +178 -0
  38. package/dist/cli/hooks/plan-toml-parser.js.map +1 -0
  39. package/dist/cli/hooks/save.d.ts +7 -9
  40. package/dist/cli/hooks/save.d.ts.map +1 -1
  41. package/dist/cli/hooks/save.js +50 -25
  42. package/dist/cli/hooks/save.js.map +1 -1
  43. package/dist/cli/hooks/stdin-parser.d.ts +66 -2
  44. package/dist/cli/hooks/stdin-parser.d.ts.map +1 -1
  45. package/dist/cli/hooks/stdin-parser.js +57 -2
  46. package/dist/cli/hooks/stdin-parser.js.map +1 -1
  47. package/dist/cli/hooks/suggest.d.ts +8 -4
  48. package/dist/cli/hooks/suggest.d.ts.map +1 -1
  49. package/dist/cli/hooks/suggest.js +21 -123
  50. package/dist/cli/hooks/suggest.js.map +1 -1
  51. package/dist/cli/hooks/track-plan.d.ts +8 -1
  52. package/dist/cli/hooks/track-plan.d.ts.map +1 -1
  53. package/dist/cli/hooks/track-plan.js +64 -66
  54. package/dist/cli/hooks/track-plan.js.map +1 -1
  55. package/dist/cli.d.ts.map +1 -1
  56. package/dist/cli.js +139 -38
  57. package/dist/cli.js.map +1 -1
  58. package/dist/config/global-config.d.ts +90 -0
  59. package/dist/config/global-config.d.ts.map +1 -1
  60. package/dist/config/global-config.js +86 -1
  61. package/dist/config/global-config.js.map +1 -1
  62. package/dist/database/initialization/init.js +3 -3
  63. package/dist/database/initialization/init.js.map +1 -1
  64. package/dist/database/initialization/schema-version.js +1 -1
  65. package/dist/database/initialization/schema-version.js.map +1 -1
  66. package/dist/database/migrations/v4/20251126000000_v4_bootstrap.js +32 -32
  67. package/dist/database/migrations/v4/20251225000000_v4_seed_missing_help_data.d.ts +14 -0
  68. package/dist/database/migrations/v4/20251225000000_v4_seed_missing_help_data.d.ts.map +1 -0
  69. package/dist/database/migrations/v4/20251225000000_v4_seed_missing_help_data.js +201 -0
  70. package/dist/database/migrations/v4/20251225000000_v4_seed_missing_help_data.js.map +1 -0
  71. package/dist/database/migrations/v4/20251225000001_v4_fix_help_params.d.ts +12 -0
  72. package/dist/database/migrations/v4/20251225000001_v4_fix_help_params.d.ts.map +1 -0
  73. package/dist/database/migrations/v4/20251225000001_v4_fix_help_params.js +61 -0
  74. package/dist/database/migrations/v4/20251225000001_v4_fix_help_params.js.map +1 -0
  75. package/dist/database/migrations/v4/20260102204000_v4_fix_decision_set_example.d.ts +15 -0
  76. package/dist/database/migrations/v4/20260102204000_v4_fix_decision_set_example.d.ts.map +1 -0
  77. package/dist/database/migrations/v4/20260102204000_v4_fix_decision_set_example.js +74 -0
  78. package/dist/database/migrations/v4/20260102204000_v4_fix_decision_set_example.js.map +1 -0
  79. package/dist/index.js +8 -4
  80. package/dist/index.js.map +1 -1
  81. package/dist/init-skills.d.ts +6 -1
  82. package/dist/init-skills.d.ts.map +1 -1
  83. package/dist/init-skills.js +50 -1
  84. package/dist/init-skills.js.map +1 -1
  85. package/dist/knexfile.d.ts.map +1 -1
  86. package/dist/knexfile.js +16 -12
  87. package/dist/knexfile.js.map +1 -1
  88. package/dist/server/setup.d.ts.map +1 -1
  89. package/dist/server/setup.js +33 -11
  90. package/dist/server/setup.js.map +1 -1
  91. package/dist/server/tool-handlers.d.ts.map +1 -1
  92. package/dist/server/tool-handlers.js +7 -1
  93. package/dist/server/tool-handlers.js.map +1 -1
  94. package/dist/server/tool-registry.js +1 -1
  95. package/dist/server/tool-registry.js.map +1 -1
  96. package/dist/tests/database/sql-dump/table-ordering.test.js +6 -1
  97. package/dist/tests/database/sql-dump/table-ordering.test.js.map +1 -1
  98. package/dist/tests/docker/native/constraint-operations.test.js +74 -137
  99. package/dist/tests/docker/native/constraint-operations.test.js.map +1 -1
  100. package/dist/tests/docker/native/decision-operations.test.js +52 -40
  101. package/dist/tests/docker/native/decision-operations.test.js.map +1 -1
  102. package/dist/tests/docker/native/help-system.test.d.ts +3 -2
  103. package/dist/tests/docker/native/help-system.test.d.ts.map +1 -1
  104. package/dist/tests/docker/native/help-system.test.js +90 -80
  105. package/dist/tests/docker/native/help-system.test.js.map +1 -1
  106. package/dist/tests/docker/native/suggest-tool.test.d.ts +2 -2
  107. package/dist/tests/docker/native/suggest-tool.test.js +130 -63
  108. package/dist/tests/docker/native/suggest-tool.test.js.map +1 -1
  109. package/dist/tests/docker/native/task-operations.test.js +9 -19
  110. package/dist/tests/docker/native/task-operations.test.js.map +1 -1
  111. package/dist/tests/docker/native/test-harness.d.ts.map +1 -1
  112. package/dist/tests/docker/native/test-harness.js +6 -5
  113. package/dist/tests/docker/native/test-harness.js.map +1 -1
  114. package/dist/tests/feature/decision/batch-validation-comprehensive.test.js +7 -8
  115. package/dist/tests/feature/decision/batch-validation-comprehensive.test.js.map +1 -1
  116. package/dist/tests/feature/decision/context-modular.test.js +1 -3
  117. package/dist/tests/feature/decision/context-modular.test.js.map +1 -1
  118. package/dist/tests/feature/decision/truncate.test.d.ts +8 -0
  119. package/dist/tests/feature/decision/truncate.test.d.ts.map +1 -0
  120. package/dist/tests/feature/decision/truncate.test.js +192 -0
  121. package/dist/tests/feature/decision/truncate.test.js.map +1 -0
  122. package/dist/tests/feature/help/help-system.test.d.ts +1 -13
  123. package/dist/tests/feature/help/help-system.test.d.ts.map +1 -1
  124. package/dist/tests/feature/help/help-system.test.js +107 -331
  125. package/dist/tests/feature/help/help-system.test.js.map +1 -1
  126. package/dist/tests/feature/task/auto-pruning-decision-link.test.js +2 -4
  127. package/dist/tests/feature/task/auto-pruning-decision-link.test.js.map +1 -1
  128. package/dist/tests/integration/all-features.standalone.js +1 -3
  129. package/dist/tests/integration/all-features.standalone.js.map +1 -1
  130. package/dist/tests/migrations/test-all-versions-real.js +2 -4
  131. package/dist/tests/migrations/test-all-versions-real.js.map +1 -1
  132. package/dist/tests/migrations/test-all-versions.js +3 -7
  133. package/dist/tests/migrations/test-all-versions.js.map +1 -1
  134. package/dist/tests/unit/config/plan-toml-cache.test.d.ts +9 -0
  135. package/dist/tests/unit/config/plan-toml-cache.test.d.ts.map +1 -0
  136. package/dist/tests/unit/config/plan-toml-cache.test.js +230 -0
  137. package/dist/tests/unit/config/plan-toml-cache.test.js.map +1 -0
  138. package/dist/tests/unit/hooks/plan-toml-parser.test.d.ts +10 -0
  139. package/dist/tests/unit/hooks/plan-toml-parser.test.d.ts.map +1 -0
  140. package/dist/tests/unit/hooks/plan-toml-parser.test.js +316 -0
  141. package/dist/tests/unit/hooks/plan-toml-parser.test.js.map +1 -0
  142. package/dist/tests/unit/universal-knex.test.js +3 -0
  143. package/dist/tests/unit/universal-knex.test.js.map +1 -1
  144. package/dist/tests/unit/utils/config-loader.test.js +130 -191
  145. package/dist/tests/unit/utils/config-loader.test.js.map +1 -1
  146. package/dist/tests/unit/utils/project-detector.test.js +24 -0
  147. package/dist/tests/unit/utils/project-detector.test.js.map +1 -1
  148. package/dist/tests/unit/validation/parameter-validation.test.js +2 -2
  149. package/dist/tests/unit/validation/parameter-validation.test.js.map +1 -1
  150. package/dist/tests/unit/validation/policy-validation.test.js +1 -3
  151. package/dist/tests/unit/validation/policy-validation.test.js.map +1 -1
  152. package/dist/tools/constraints/actions/activate.d.ts +46 -0
  153. package/dist/tools/constraints/actions/activate.d.ts.map +1 -0
  154. package/dist/tools/constraints/actions/activate.js +105 -0
  155. package/dist/tools/constraints/actions/activate.js.map +1 -0
  156. package/dist/tools/constraints/actions/add.d.ts.map +1 -1
  157. package/dist/tools/constraints/actions/add.js +30 -13
  158. package/dist/tools/constraints/actions/add.js.map +1 -1
  159. package/dist/tools/constraints/actions/deactivate.d.ts.map +1 -1
  160. package/dist/tools/constraints/actions/deactivate.js +7 -4
  161. package/dist/tools/constraints/actions/deactivate.js.map +1 -1
  162. package/dist/tools/constraints/actions/get.d.ts.map +1 -1
  163. package/dist/tools/constraints/actions/get.js +10 -7
  164. package/dist/tools/constraints/actions/get.js.map +1 -1
  165. package/dist/tools/constraints/actions/suggest-pending.d.ts +41 -0
  166. package/dist/tools/constraints/actions/suggest-pending.d.ts.map +1 -0
  167. package/dist/tools/constraints/actions/suggest-pending.js +71 -0
  168. package/dist/tools/constraints/actions/suggest-pending.js.map +1 -0
  169. package/dist/tools/constraints/help/example.d.ts.map +1 -1
  170. package/dist/tools/constraints/help/example.js +65 -1
  171. package/dist/tools/constraints/help/example.js.map +1 -1
  172. package/dist/tools/constraints/help/help.d.ts.map +1 -1
  173. package/dist/tools/constraints/help/help.js +10 -5
  174. package/dist/tools/constraints/help/help.js.map +1 -1
  175. package/dist/tools/constraints/index.d.ts +2 -0
  176. package/dist/tools/constraints/index.d.ts.map +1 -1
  177. package/dist/tools/constraints/index.js +2 -0
  178. package/dist/tools/constraints/index.js.map +1 -1
  179. package/dist/tools/context/actions/add-context.d.ts.map +1 -1
  180. package/dist/tools/context/actions/add-context.js +13 -6
  181. package/dist/tools/context/actions/add-context.js.map +1 -1
  182. package/dist/tools/context/actions/list-contexts.d.ts.map +1 -1
  183. package/dist/tools/context/actions/list-contexts.js +12 -7
  184. package/dist/tools/context/actions/list-contexts.js.map +1 -1
  185. package/dist/tools/context/actions/list.d.ts.map +1 -1
  186. package/dist/tools/context/actions/list.js +8 -0
  187. package/dist/tools/context/actions/list.js.map +1 -1
  188. package/dist/tools/context/actions/search-advanced.d.ts.map +1 -1
  189. package/dist/tools/context/actions/search-advanced.js +41 -27
  190. package/dist/tools/context/actions/search-advanced.js.map +1 -1
  191. package/dist/tools/context/actions/search-layer.d.ts.map +1 -1
  192. package/dist/tools/context/actions/search-layer.js +8 -0
  193. package/dist/tools/context/actions/search-layer.js.map +1 -1
  194. package/dist/tools/context/actions/search-tags.d.ts.map +1 -1
  195. package/dist/tools/context/actions/search-tags.js +8 -0
  196. package/dist/tools/context/actions/search-tags.js.map +1 -1
  197. package/dist/tools/files/actions/check-lock.d.ts.map +1 -1
  198. package/dist/tools/files/actions/check-lock.js +9 -3
  199. package/dist/tools/files/actions/check-lock.js.map +1 -1
  200. package/dist/tools/files/actions/get.d.ts.map +1 -1
  201. package/dist/tools/files/actions/get.js +18 -13
  202. package/dist/tools/files/actions/get.js.map +1 -1
  203. package/dist/tools/files/actions/record-batch.d.ts.map +1 -1
  204. package/dist/tools/files/actions/record-batch.js +11 -6
  205. package/dist/tools/files/actions/record-batch.js.map +1 -1
  206. package/dist/tools/files/actions/record.d.ts.map +1 -1
  207. package/dist/tools/files/actions/record.js +8 -2
  208. package/dist/tools/files/actions/record.js.map +1 -1
  209. package/dist/tools/files/help/example.js +8 -8
  210. package/dist/tools/files/help/example.js.map +1 -1
  211. package/dist/tools/files/help/help.js +4 -4
  212. package/dist/tools/files/help/help.js.map +1 -1
  213. package/dist/tools/files/internal/validation.d.ts.map +1 -1
  214. package/dist/tools/files/internal/validation.js +1 -2
  215. package/dist/tools/files/internal/validation.js.map +1 -1
  216. package/dist/tools/help-queries.d.ts.map +1 -1
  217. package/dist/tools/help-queries.js +57 -27
  218. package/dist/tools/help-queries.js.map +1 -1
  219. package/dist/tools/suggest/actions/by-tags.d.ts.map +1 -1
  220. package/dist/tools/suggest/actions/by-tags.js +3 -1
  221. package/dist/tools/suggest/actions/by-tags.js.map +1 -1
  222. package/dist/tools/suggest/help/constraint-help.js +2 -2
  223. package/dist/tools/suggest/help/constraint-help.js.map +1 -1
  224. package/dist/tools/tasks/help/example.d.ts.map +1 -1
  225. package/dist/tools/tasks/help/example.js +10 -0
  226. package/dist/tools/tasks/help/example.js.map +1 -1
  227. package/dist/tools/tasks/help/help.d.ts.map +1 -1
  228. package/dist/tools/tasks/help/help.js +10 -0
  229. package/dist/tools/tasks/help/help.js.map +1 -1
  230. package/dist/tools/use_case/actions/search.js +5 -5
  231. package/dist/tools/use_case/actions/search.js.map +1 -1
  232. package/dist/tools/use_case/help/example.d.ts +2 -7
  233. package/dist/tools/use_case/help/example.d.ts.map +1 -1
  234. package/dist/tools/use_case/help/example.js +24 -37
  235. package/dist/tools/use_case/help/example.js.map +1 -1
  236. package/dist/tools/use_case/help/help.js +1 -1
  237. package/dist/tools/use_case/help/help.js.map +1 -1
  238. package/dist/types/actions.d.ts +1 -1
  239. package/dist/types/actions.d.ts.map +1 -1
  240. package/dist/types.d.ts +11 -4
  241. package/dist/types.d.ts.map +1 -1
  242. package/dist/utils/action-specs/constraint-specs.d.ts +1 -1
  243. package/dist/utils/action-specs/constraint-specs.d.ts.map +1 -1
  244. package/dist/utils/action-specs/constraint-specs.js +22 -5
  245. package/dist/utils/action-specs/constraint-specs.js.map +1 -1
  246. package/dist/utils/action-specs/decision-specs.js +13 -13
  247. package/dist/utils/action-specs/decision-specs.js.map +1 -1
  248. package/dist/utils/action-specs/file-specs.d.ts.map +1 -1
  249. package/dist/utils/action-specs/file-specs.js +8 -10
  250. package/dist/utils/action-specs/file-specs.js.map +1 -1
  251. package/dist/utils/db-aggregations.d.ts.map +1 -1
  252. package/dist/utils/db-aggregations.js +44 -1
  253. package/dist/utils/db-aggregations.js.map +1 -1
  254. package/dist/utils/hook-queue.d.ts +43 -3
  255. package/dist/utils/hook-queue.d.ts.map +1 -1
  256. package/dist/utils/hook-queue.js +326 -32
  257. package/dist/utils/hook-queue.js.map +1 -1
  258. package/dist/utils/param-normalizer.d.ts +52 -0
  259. package/dist/utils/param-normalizer.d.ts.map +1 -0
  260. package/dist/utils/param-normalizer.js +70 -0
  261. package/dist/utils/param-normalizer.js.map +1 -0
  262. package/dist/utils/parameter-validator.d.ts.map +1 -1
  263. package/dist/utils/parameter-validator.js +2 -0
  264. package/dist/utils/parameter-validator.js.map +1 -1
  265. package/dist/utils/project-detector.js +21 -6
  266. package/dist/utils/project-detector.js.map +1 -1
  267. package/dist/utils/suggestion-scorer.d.ts.map +1 -1
  268. package/dist/utils/suggestion-scorer.js +5 -0
  269. package/dist/utils/suggestion-scorer.js.map +1 -1
  270. package/dist/utils/text-truncate.d.ts +13 -0
  271. package/dist/utils/text-truncate.d.ts.map +1 -0
  272. package/dist/utils/text-truncate.js +18 -0
  273. package/dist/utils/text-truncate.js.map +1 -0
  274. package/dist/utils/validators.d.ts +1 -1
  275. package/dist/utils/validators.d.ts.map +1 -1
  276. package/dist/utils/validators.js +1 -1
  277. package/dist/utils/validators.js.map +1 -1
  278. package/dist/watcher/base-watcher.d.ts.map +1 -1
  279. package/dist/watcher/base-watcher.js +4 -3
  280. package/dist/watcher/base-watcher.js.map +1 -1
  281. package/dist/watcher/file-watcher.d.ts.map +1 -1
  282. package/dist/watcher/file-watcher.js +5 -1
  283. package/dist/watcher/file-watcher.js.map +1 -1
  284. package/dist/watcher/queue-watcher.d.ts +12 -1
  285. package/dist/watcher/queue-watcher.d.ts.map +1 -1
  286. package/dist/watcher/queue-watcher.js +92 -12
  287. package/dist/watcher/queue-watcher.js.map +1 -1
  288. package/docs/ADR_CONCEPTS.md +4 -0
  289. package/docs/HOOKS_GUIDE.md +1 -1
  290. package/package.json +87 -123
  291. package/dist/tests/feature/vcs/git-aware-completion.test.d.ts +0 -6
  292. package/dist/tests/feature/vcs/git-aware-completion.test.d.ts.map +0 -1
  293. package/dist/tests/feature/vcs/git-aware-completion.test.js +0 -197
  294. package/dist/tests/feature/vcs/git-aware-completion.test.js.map +0 -1
  295. package/dist/tests/feature/vcs/two-step-git-completion.test.d.ts +0 -6
  296. package/dist/tests/feature/vcs/two-step-git-completion.test.d.ts.map +0 -1
  297. package/dist/tests/feature/vcs/two-step-git-completion.test.js +0 -305
  298. package/dist/tests/feature/vcs/two-step-git-completion.test.js.map +0 -1
  299. package/dist/tests/feature/vcs/vcs-staging.test.d.ts +0 -6
  300. package/dist/tests/feature/vcs/vcs-staging.test.d.ts.map +0 -1
  301. package/dist/tests/feature/vcs/vcs-staging.test.js +0 -142
  302. package/dist/tests/feature/vcs/vcs-staging.test.js.map +0 -1
@@ -21,12 +21,7 @@
21
21
  */
22
22
  import { describe, it } from 'node:test';
23
23
  import assert from 'node:assert';
24
- import { createHash } from 'crypto';
25
24
  import { runTestsOnAllDatabases } from './test-harness.js';
26
- // Helper function to generate SHA256 hash of constraint_text
27
- function hashConstraintText(text) {
28
- return createHash('sha256').update(text).digest('hex');
29
- }
30
25
  runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
31
26
  let projectId;
32
27
  let businessLayerId;
@@ -46,6 +41,19 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
46
41
  let tagPerformanceId;
47
42
  let tagSecurityId;
48
43
  // ============================================================================
44
+ // Cross-database compatible insert helper
45
+ // ============================================================================
46
+ // PostgreSQL doesn't return insert ID like MySQL/MariaDB, so we query after insert
47
+ async function insertConstraint(db, data) {
48
+ const constraintText = data.constraint_text;
49
+ await db('v4_constraints').insert(data);
50
+ const inserted = await db('v4_constraints')
51
+ .where({ constraint_text: constraintText, project_id: data.project_id })
52
+ .orderBy('id', 'desc')
53
+ .first();
54
+ return inserted.id;
55
+ }
56
+ // ============================================================================
49
57
  // Setup: Get Master Data IDs
50
58
  // ============================================================================
51
59
  it('should get project ID and master data', async () => {
@@ -68,86 +76,24 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
68
76
  assert.ok(crossCuttingLayer, 'Cross-cutting layer should exist');
69
77
  crossCuttingLayerId = crossCuttingLayer.id;
70
78
  // Get or create constraint categories
71
- const architectureCategory = await db('v4_constraint_categories')
72
- .where({ name: 'architecture' })
73
- .first();
74
- if (!architectureCategory) {
75
- const [id] = await db('v4_constraint_categories').insert({ name: 'architecture' });
76
- categoryArchitectureId = id;
77
- }
78
- else {
79
- categoryArchitectureId = architectureCategory.id;
80
- }
81
- const securityCategory = await db('v4_constraint_categories')
82
- .where({ name: 'security' })
83
- .first();
84
- if (!securityCategory) {
85
- const [id] = await db('v4_constraint_categories').insert({ name: 'security' });
86
- categorySecurityId = id;
87
- }
88
- else {
89
- categorySecurityId = securityCategory.id;
90
- }
91
- const testingCategory = await db('v4_constraint_categories')
92
- .where({ name: 'testing' })
93
- .first();
94
- if (!testingCategory) {
95
- const [id] = await db('v4_constraint_categories').insert({ name: 'testing' });
96
- categoryTestingId = id;
97
- }
98
- else {
99
- categoryTestingId = testingCategory.id;
100
- }
101
- const performanceCategory = await db('v4_constraint_categories')
102
- .where({ name: 'performance' })
103
- .first();
104
- if (!performanceCategory) {
105
- const [id] = await db('v4_constraint_categories').insert({ name: 'performance' });
106
- categoryPerformanceId = id;
107
- }
108
- else {
109
- categoryPerformanceId = performanceCategory.id;
110
- }
111
- const styleCategory = await db('v4_constraint_categories')
112
- .where({ name: 'style' })
113
- .first();
114
- if (!styleCategory) {
115
- const [id] = await db('v4_constraint_categories').insert({ name: 'style' });
116
- categoryStyleId = id;
117
- }
118
- else {
119
- categoryStyleId = styleCategory.id;
120
- }
121
- const codeStyleCategory = await db('v4_constraint_categories')
122
- .where({ name: 'code-style' })
123
- .first();
124
- if (!codeStyleCategory) {
125
- const [id] = await db('v4_constraint_categories').insert({ name: 'code-style' });
126
- categoryCodeStyleId = id;
127
- }
128
- else {
129
- categoryCodeStyleId = codeStyleCategory.id;
130
- }
131
- const obsoleteCategory = await db('v4_constraint_categories')
132
- .where({ name: 'obsolete' })
133
- .first();
134
- if (!obsoleteCategory) {
135
- const [id] = await db('v4_constraint_categories').insert({ name: 'obsolete' });
136
- categoryObsoleteId = id;
137
- }
138
- else {
139
- categoryObsoleteId = obsoleteCategory.id;
140
- }
141
- const criticalCategory = await db('v4_constraint_categories')
142
- .where({ name: 'critical' })
143
- .first();
144
- if (!criticalCategory) {
145
- const [id] = await db('v4_constraint_categories').insert({ name: 'critical' });
146
- categoryTestId = id;
147
- }
148
- else {
149
- categoryTestId = criticalCategory.id;
150
- }
79
+ // Note: Use query-after-insert pattern for cross-database compatibility
80
+ // (PostgreSQL doesn't return insert ID like MySQL/MariaDB)
81
+ const getOrCreateCategory = async (name) => {
82
+ let category = await db('v4_constraint_categories').where({ name }).first();
83
+ if (!category) {
84
+ await db('v4_constraint_categories').insert({ name });
85
+ category = await db('v4_constraint_categories').where({ name }).first();
86
+ }
87
+ return category.id;
88
+ };
89
+ categoryArchitectureId = await getOrCreateCategory('architecture');
90
+ categorySecurityId = await getOrCreateCategory('security');
91
+ categoryTestingId = await getOrCreateCategory('testing');
92
+ categoryPerformanceId = await getOrCreateCategory('performance');
93
+ categoryStyleId = await getOrCreateCategory('style');
94
+ categoryCodeStyleId = await getOrCreateCategory('code-style');
95
+ categoryObsoleteId = await getOrCreateCategory('obsolete');
96
+ categoryTestId = await getOrCreateCategory('critical');
151
97
  // Get tag IDs
152
98
  const testTag = await db('v4_tags').where({ name: 'test', project_id: projectId }).first();
153
99
  assert.ok(testTag, 'Test tag should exist');
@@ -169,9 +115,8 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
169
115
  it('should insert constraint with required fields', async () => {
170
116
  const db = getDb();
171
117
  const constraintText1 = 'All API endpoints must use async/await';
172
- const [constraintId] = await db('v4_constraints').insert({
118
+ const constraintId = await insertConstraint(db, {
173
119
  constraint_text: constraintText1,
174
- constraint_text_hash: hashConstraintText(constraintText1),
175
120
  category_id: categoryCodeStyleId,
176
121
  priority: 3, // high
177
122
  layer_id: businessLayerId,
@@ -191,9 +136,8 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
191
136
  it('should insert constraint with all fields', async () => {
192
137
  const db = getDb();
193
138
  const constraintTextDb = 'Database queries must use parameterized statements';
194
- const [constraintId] = await db('v4_constraints').insert({
139
+ const constraintId = await insertConstraint(db, {
195
140
  constraint_text: constraintTextDb,
196
- constraint_text_hash: hashConstraintText(constraintTextDb),
197
141
  category_id: categorySecurityId,
198
142
  priority: 4, // critical
199
143
  layer_id: dataLayerId,
@@ -213,9 +157,8 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
213
157
  const db = getDb();
214
158
  // Priority 1 (low)
215
159
  const constraintTextLow = 'Low priority rule';
216
- const [p1Id] = await db('v4_constraints').insert({
160
+ const p1Id = await insertConstraint(db, {
217
161
  constraint_text: constraintTextLow,
218
- constraint_text_hash: hashConstraintText(constraintTextLow),
219
162
  category_id: categoryStyleId,
220
163
  priority: 1,
221
164
  layer_id: presentationLayerId,
@@ -225,9 +168,8 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
225
168
  });
226
169
  // Priority 4 (critical)
227
170
  const constraintTextCritical = 'Critical security rule';
228
- const [p4Id] = await db('v4_constraints').insert({
171
+ const p4Id = await insertConstraint(db, {
229
172
  constraint_text: constraintTextCritical,
230
- constraint_text_hash: hashConstraintText(constraintTextCritical),
231
173
  category_id: categorySecurityId,
232
174
  priority: 4,
233
175
  layer_id: businessLayerId,
@@ -255,9 +197,8 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
255
197
  const db = getDb();
256
198
  // Insert constraint
257
199
  const constraintTextUnitTests = 'All components must have unit tests';
258
- const [constraintId] = await db('v4_constraints').insert({
200
+ const constraintId = await insertConstraint(db, {
259
201
  constraint_text: constraintTextUnitTests,
260
- constraint_text_hash: hashConstraintText(constraintTextUnitTests),
261
202
  category_id: categoryTestingId,
262
203
  priority: 3,
263
204
  layer_id: crossCuttingLayerId,
@@ -266,17 +207,18 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
266
207
  ts: Math.floor(Date.now() / 1000),
267
208
  });
268
209
  // Associate with tags
269
- await db('t_constraint_tags').insert([
210
+ await db('v4_constraint_tags').insert([
270
211
  { constraint_id: constraintId, tag_id: tagTestId },
271
212
  { constraint_id: constraintId, tag_id: tagPerformanceId },
272
213
  ]);
273
214
  // Verify tag associations
274
- const tagAssociations = await db('t_constraint_tags')
215
+ const tagAssociations = await db('v4_constraint_tags')
275
216
  .where({ constraint_id: constraintId })
276
217
  .count('* as count')
277
218
  .first();
278
219
  assert.ok(tagAssociations, 'Tag associations query should return result');
279
- assert.strictEqual(tagAssociations.count, 2, 'Should have 2 tag associations');
220
+ // Note: PostgreSQL returns count as BigInt (string), MySQL returns number
221
+ assert.strictEqual(Number(tagAssociations.count), 2, 'Should have 2 tag associations');
280
222
  });
281
223
  });
282
224
  // ============================================================================
@@ -289,7 +231,7 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
289
231
  const constraintTextBusiness = 'Business layer rule';
290
232
  await db('v4_constraints').insert({
291
233
  constraint_text: constraintTextBusiness,
292
- constraint_text_hash: hashConstraintText(constraintTextBusiness),
234
+ // Note: v4 schema does not have constraint_text_hash column
293
235
  category_id: categoryArchitectureId,
294
236
  priority: 3,
295
237
  layer_id: businessLayerId,
@@ -300,7 +242,7 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
300
242
  const constraintTextData = 'Data layer rule';
301
243
  await db('v4_constraints').insert({
302
244
  constraint_text: constraintTextData,
303
- constraint_text_hash: hashConstraintText(constraintTextData),
245
+ // Note: v4 schema does not have constraint_text_hash column
304
246
  category_id: categoryArchitectureId,
305
247
  priority: 3,
306
248
  layer_id: dataLayerId,
@@ -320,7 +262,7 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
320
262
  const constraintTextSecurity = 'Security constraint';
321
263
  await db('v4_constraints').insert({
322
264
  constraint_text: constraintTextSecurity,
323
- constraint_text_hash: hashConstraintText(constraintTextSecurity),
265
+ // Note: v4 schema does not have constraint_text_hash column
324
266
  category_id: categorySecurityId,
325
267
  priority: 4,
326
268
  layer_id: businessLayerId,
@@ -331,7 +273,7 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
331
273
  const constraintTextPerformance = 'Performance constraint';
332
274
  await db('v4_constraints').insert({
333
275
  constraint_text: constraintTextPerformance,
334
- constraint_text_hash: hashConstraintText(constraintTextPerformance),
276
+ // Note: v4 schema does not have constraint_text_hash column
335
277
  category_id: categoryPerformanceId,
336
278
  priority: 3,
337
279
  layer_id: businessLayerId,
@@ -351,7 +293,7 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
351
293
  const constraintTextHighPriority = 'High priority constraint';
352
294
  await db('v4_constraints').insert({
353
295
  constraint_text: constraintTextHighPriority,
354
- constraint_text_hash: hashConstraintText(constraintTextHighPriority),
296
+ // Note: v4 schema does not have constraint_text_hash column
355
297
  category_id: categoryTestId,
356
298
  priority: 4,
357
299
  layer_id: businessLayerId,
@@ -362,7 +304,7 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
362
304
  const constraintTextLowPriority = 'Low priority constraint';
363
305
  await db('v4_constraints').insert({
364
306
  constraint_text: constraintTextLowPriority,
365
- constraint_text_hash: hashConstraintText(constraintTextLowPriority),
307
+ // Note: v4 schema does not have constraint_text_hash column
366
308
  category_id: categoryStyleId,
367
309
  priority: 1,
368
310
  layer_id: presentationLayerId,
@@ -381,9 +323,8 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
381
323
  const db = getDb();
382
324
  // Insert constraint
383
325
  const constraintTextTagged = 'Tagged constraint 1';
384
- const [constraintId] = await db('v4_constraints').insert({
326
+ const constraintId = await insertConstraint(db, {
385
327
  constraint_text: constraintTextTagged,
386
- constraint_text_hash: hashConstraintText(constraintTextTagged),
387
328
  category_id: categoryTestingId,
388
329
  priority: 2,
389
330
  layer_id: businessLayerId,
@@ -392,19 +333,19 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
392
333
  ts: Math.floor(Date.now() / 1000),
393
334
  });
394
335
  // Associate with tags
395
- await db('t_constraint_tags').insert([
336
+ await db('v4_constraint_tags').insert([
396
337
  { constraint_id: constraintId, tag_id: tagApiId },
397
338
  { constraint_id: constraintId, tag_id: tagTestId },
398
339
  ]);
399
340
  // Filter by api tag
400
341
  const apiTaggedConstraints = await db('v4_constraints')
401
- .join('t_constraint_tags', 't_constraints.id', 't_constraint_tags.constraint_id')
342
+ .join('v4_constraint_tags', 'v4_constraints.id', 'v4_constraint_tags.constraint_id')
402
343
  .where({
403
- 't_constraint_tags.tag_id': tagApiId,
404
- 't_constraints.active': 1,
405
- 't_constraints.project_id': projectId,
344
+ 'v4_constraint_tags.tag_id': tagApiId,
345
+ 'v4_constraints.active': 1,
346
+ 'v4_constraints.project_id': projectId,
406
347
  })
407
- .select('t_constraints.*');
348
+ .select('v4_constraints.*');
408
349
  const apiConstraint = apiTaggedConstraints.find(c => c.constraint_text === 'Tagged constraint 1');
409
350
  assert.ok(apiConstraint, 'Should find api-tagged constraint');
410
351
  });
@@ -412,9 +353,8 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
412
353
  const db = getDb();
413
354
  // Add and immediately deactivate a constraint
414
355
  const constraintTextDeactivated = 'Deactivated constraint';
415
- const [constraintId] = await db('v4_constraints').insert({
356
+ const constraintId = await insertConstraint(db, {
416
357
  constraint_text: constraintTextDeactivated,
417
- constraint_text_hash: hashConstraintText(constraintTextDeactivated),
418
358
  category_id: categoryObsoleteId,
419
359
  priority: 2,
420
360
  layer_id: businessLayerId,
@@ -442,9 +382,8 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
442
382
  const db = getDb();
443
383
  // Add constraint
444
384
  const constraintTextToDeactivate = 'Constraint to deactivate';
445
- const [constraintId] = await db('v4_constraints').insert({
385
+ const constraintId = await insertConstraint(db, {
446
386
  constraint_text: constraintTextToDeactivate,
447
- constraint_text_hash: hashConstraintText(constraintTextToDeactivate),
448
387
  category_id: categoryTestingId,
449
388
  priority: 2,
450
389
  layer_id: businessLayerId,
@@ -467,9 +406,8 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
467
406
  const db = getDb();
468
407
  // Add and deactivate
469
408
  const constraintTextReDeactivate = 'Re-deactivate test';
470
- const [constraintId] = await db('v4_constraints').insert({
409
+ const constraintId = await insertConstraint(db, {
471
410
  constraint_text: constraintTextReDeactivate,
472
- constraint_text_hash: hashConstraintText(constraintTextReDeactivate),
473
411
  category_id: categoryTestingId,
474
412
  priority: 2,
475
413
  layer_id: businessLayerId,
@@ -497,7 +435,7 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
497
435
  const constraintTextFkCategory = 'Test constraint';
498
436
  const insertPromise = db('v4_constraints').insert({
499
437
  constraint_text: constraintTextFkCategory,
500
- constraint_text_hash: hashConstraintText(constraintTextFkCategory),
438
+ // Note: v4 schema does not have constraint_text_hash column
501
439
  category_id: 99999, // Non-existent category
502
440
  priority: 2,
503
441
  layer_id: businessLayerId,
@@ -513,13 +451,16 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
513
451
  msg.includes('cannot add');
514
452
  }, 'Should throw foreign key constraint error');
515
453
  });
516
- it('should enforce UNIQUE constraint on (constraint_text, project_id)', async () => {
454
+ // NOTE: v4 schema intentionally does NOT have UNIQUE constraint on (constraint_text, project_id)
455
+ // In v3, uniqueness was enforced via constraint_text_hash column (SHA-256 hash of TEXT)
456
+ // v4 relies on application-level duplicate detection via the suggest tool (check_duplicate action)
457
+ // This test verifies that duplicate constraint texts ARE allowed at the database level
458
+ it('should allow duplicate constraint_text in v4 schema (uniqueness via app layer)', async () => {
517
459
  const db = getDb();
518
- const constraintTextValue = `Unique constraint test ${Date.now()}`;
460
+ const constraintTextValue = `Duplicate allowed test ${Date.now()}`;
519
461
  // Insert first constraint
520
462
  await db('v4_constraints').insert({
521
463
  constraint_text: constraintTextValue,
522
- constraint_text_hash: hashConstraintText(constraintTextValue),
523
464
  category_id: categoryTestingId,
524
465
  priority: 3,
525
466
  layer_id: businessLayerId,
@@ -527,10 +468,9 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
527
468
  active: 1,
528
469
  ts: Math.floor(Date.now() / 1000),
529
470
  });
530
- // Try to insert duplicate
531
- const duplicatePromise = db('v4_constraints').insert({
471
+ // Insert "duplicate" - should succeed in v4
472
+ await db('v4_constraints').insert({
532
473
  constraint_text: constraintTextValue, // Same constraint_text
533
- constraint_text_hash: hashConstraintText(constraintTextValue),
534
474
  category_id: categoryTestingId,
535
475
  priority: 3,
536
476
  layer_id: businessLayerId,
@@ -538,10 +478,11 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
538
478
  active: 1,
539
479
  ts: Math.floor(Date.now() / 1000),
540
480
  });
541
- await assert.rejects(duplicatePromise, (error) => {
542
- const msg = error.message.toLowerCase();
543
- return msg.includes('unique') || msg.includes('duplicate');
544
- }, 'Should throw UNIQUE constraint error');
481
+ // Verify both were inserted
482
+ const constraints = await db('v4_constraints')
483
+ .where({ constraint_text: constraintTextValue, project_id: projectId })
484
+ .select('id');
485
+ assert.strictEqual(constraints.length, 2, 'Should allow duplicate constraint_text in v4 schema');
545
486
  });
546
487
  });
547
488
  // ============================================================================
@@ -551,9 +492,8 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
551
492
  it('should handle long rule text', async () => {
552
493
  const db = getDb();
553
494
  const longRule = 'A'.repeat(500) + ' - This is a very long constraint rule';
554
- const [constraintId] = await db('v4_constraints').insert({
495
+ const constraintId = await insertConstraint(db, {
555
496
  constraint_text: longRule,
556
- constraint_text_hash: hashConstraintText(longRule),
557
497
  category_id: categoryTestingId,
558
498
  priority: 2,
559
499
  layer_id: businessLayerId,
@@ -570,9 +510,8 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
570
510
  it('should handle special characters in rules', async () => {
571
511
  const db = getDb();
572
512
  const specialRule = "Rule with 'quotes', \"double quotes\", and \\backslashes";
573
- const [constraintId] = await db('v4_constraints').insert({
513
+ const constraintId = await insertConstraint(db, {
574
514
  constraint_text: specialRule,
575
- constraint_text_hash: hashConstraintText(specialRule),
576
515
  category_id: categoryTestingId,
577
516
  priority: 2,
578
517
  layer_id: businessLayerId,
@@ -589,9 +528,8 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
589
528
  it('should handle unicode characters in constraint_text', async () => {
590
529
  const db = getDb();
591
530
  const unicodeText = '日本語のルール: Unicode support test 🎯';
592
- const [constraintId] = await db('v4_constraints').insert({
531
+ const constraintId = await insertConstraint(db, {
593
532
  constraint_text: unicodeText,
594
- constraint_text_hash: hashConstraintText(unicodeText),
595
533
  category_id: categoryTestingId,
596
534
  priority: 2,
597
535
  layer_id: businessLayerId,
@@ -620,9 +558,8 @@ runTestsOnAllDatabases('Constraint Operations', (getDb, dbType) => {
620
558
  }
621
559
  // Insert test constraint
622
560
  const constraintTextViewTest = 'View test constraint';
623
- const [constraintId] = await db('v4_constraints').insert({
561
+ const constraintId = await insertConstraint(db, {
624
562
  constraint_text: constraintTextViewTest,
625
- constraint_text_hash: hashConstraintText(constraintTextViewTest),
626
563
  category_id: categoryArchitectureId,
627
564
  priority: 3,
628
565
  layer_id: businessLayerId,
@@ -1 +1 @@
1
- {"version":3,"file":"constraint-operations.test.js","sourceRoot":"","sources":["../../../../src/tests/docker/native/constraint-operations.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constraint-operations.test.js","sourceRoot":"","sources":["../../../../src/tests/docker/native/constraint-operations.test.ts"],"names":[],"mappings":"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"}