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
@@ -6,8 +6,85 @@
6
6
  *
7
7
  * @since v4.1.0
8
8
  */
9
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
9
+ import { existsSync, mkdirSync, readFileSync, writeFileSync, unlinkSync, renameSync, appendFileSync } from 'fs';
10
10
  import { join } from 'path';
11
+ import { debugLog } from './debug-logger.js';
12
+ // ============================================================================
13
+ // Debug Configuration
14
+ // ============================================================================
15
+ /**
16
+ * Enable detailed trace logging for queue operations.
17
+ * Set to `true` when debugging queue issues (writes to .sqlew/queue/trace.log)
18
+ *
19
+ * Also controls:
20
+ * - snapshot_*.json files (per-write snapshots)
21
+ * - pending-debug.json (write history)
22
+ */
23
+ const QUEUE_TRACE_ENABLED = false;
24
+ // ============================================================================
25
+ // File Lock for Queue Processing
26
+ // ============================================================================
27
+ /** Lock timeout in milliseconds (30 seconds) */
28
+ const LOCK_TIMEOUT_MS = 30000;
29
+ /**
30
+ * Try to acquire a lock for queue processing
31
+ * Uses file-based locking with timestamp for stale lock detection
32
+ *
33
+ * @param projectPath - Project root path
34
+ * @returns true if lock acquired, false if another process holds the lock
35
+ */
36
+ function tryAcquireLock(projectPath) {
37
+ const lockPath = join(projectPath, '.sqlew/queue/pending.lock');
38
+ if (existsSync(lockPath)) {
39
+ try {
40
+ const lock = JSON.parse(readFileSync(lockPath, 'utf-8'));
41
+ const age = Date.now() - lock.timestamp;
42
+ if (age < LOCK_TIMEOUT_MS) {
43
+ debugLog('INFO', '[hook-queue] Lock held by another process', {
44
+ pid: lock.pid,
45
+ ageMs: age,
46
+ });
47
+ return false; // Lock still valid, skip processing
48
+ }
49
+ debugLog('WARN', '[hook-queue] Stale lock detected, overwriting', {
50
+ pid: lock.pid,
51
+ ageMs: age,
52
+ });
53
+ }
54
+ catch {
55
+ // Lock file corrupted, overwrite it
56
+ debugLog('WARN', '[hook-queue] Corrupted lock file, overwriting');
57
+ }
58
+ }
59
+ // Acquire lock
60
+ try {
61
+ writeFileSync(lockPath, JSON.stringify({
62
+ pid: process.pid,
63
+ timestamp: Date.now(), // Unix epoch ms (timezone-independent)
64
+ }));
65
+ debugLog('INFO', '[hook-queue] Lock acquired', { pid: process.pid });
66
+ return true;
67
+ }
68
+ catch (error) {
69
+ debugLog('ERROR', '[hook-queue] Failed to acquire lock', { error });
70
+ return false;
71
+ }
72
+ }
73
+ /**
74
+ * Release the queue processing lock
75
+ *
76
+ * @param projectPath - Project root path
77
+ */
78
+ function releaseLock(projectPath) {
79
+ const lockPath = join(projectPath, '.sqlew/queue/pending.lock');
80
+ try {
81
+ unlinkSync(lockPath);
82
+ debugLog('INFO', '[hook-queue] Lock released');
83
+ }
84
+ catch {
85
+ // Ignore errors (file may already be deleted)
86
+ }
87
+ }
11
88
  // ============================================================================
12
89
  // Constants
13
90
  // ============================================================================
@@ -33,30 +110,138 @@ function ensureQueueDir(projectPath) {
33
110
  mkdirSync(queueDir, { recursive: true });
34
111
  }
35
112
  }
113
+ /**
114
+ * Write to queue trace log (debugLog-independent for Hook CLI)
115
+ * Logs ALL operations for debugging Hook flow
116
+ *
117
+ * @note Controlled by QUEUE_TRACE_ENABLED flag
118
+ */
119
+ function writeQueueTrace(projectPath, level, message, data) {
120
+ if (!QUEUE_TRACE_ENABLED)
121
+ return;
122
+ try {
123
+ const traceLogPath = join(projectPath, QUEUE_DIR, 'trace.log');
124
+ const dataStr = data ? ` | ${JSON.stringify(data)}` : '';
125
+ const entry = `[${new Date().toISOString()}] [${level}] [PID:${process.pid}] ${message}${dataStr}\n`;
126
+ appendFileSync(traceLogPath, entry, 'utf-8');
127
+ }
128
+ catch { /* ignore */ }
129
+ }
36
130
  /**
37
131
  * Read queue file (returns empty queue if not exists)
38
132
  */
39
133
  export function readQueue(projectPath) {
40
134
  const queuePath = getQueuePath(projectPath);
135
+ writeQueueTrace(projectPath, 'INFO', 'readQueue: START', { queuePath });
41
136
  if (!existsSync(queuePath)) {
137
+ writeQueueTrace(projectPath, 'INFO', 'readQueue: file does not exist, returning empty');
138
+ debugLog('DEBUG', '[hook-queue] readQueue: file does not exist', { queuePath });
42
139
  return { items: [] };
43
140
  }
44
141
  try {
45
142
  const content = readFileSync(queuePath, 'utf-8');
46
- return JSON.parse(content);
143
+ writeQueueTrace(projectPath, 'INFO', 'readQueue: read file', {
144
+ contentLength: content.length,
145
+ contentPreview: content.slice(0, 100),
146
+ });
147
+ debugLog('DEBUG', '[hook-queue] readQueue: read file', {
148
+ queuePath,
149
+ contentLength: content.length,
150
+ contentPreview: content.slice(0, 100),
151
+ });
152
+ const parsed = JSON.parse(content);
153
+ writeQueueTrace(projectPath, 'INFO', 'readQueue: SUCCESS', { itemCount: parsed.items?.length ?? 0 });
154
+ debugLog('DEBUG', '[hook-queue] readQueue: parsed successfully', {
155
+ itemCount: parsed.items?.length ?? 0,
156
+ });
157
+ return parsed;
47
158
  }
48
- catch {
49
- // If file is corrupted, return empty queue
159
+ catch (error) {
160
+ const errorMsg = error instanceof Error ? error.message : String(error);
161
+ writeQueueTrace(projectPath, 'ERROR', 'readQueue: JSON parse FAILED', { error: errorMsg });
162
+ debugLog('ERROR', '[hook-queue] readQueue: JSON parse failed', {
163
+ queuePath,
164
+ error: errorMsg,
165
+ });
50
166
  return { items: [] };
51
167
  }
52
168
  }
53
169
  /**
54
- * Write queue file
170
+ * Write queue file (atomic write to prevent partial reads)
171
+ *
172
+ * Uses write-to-temp + rename pattern to ensure readers always see
173
+ * complete file content, even on Windows where file locking is different.
174
+ *
175
+ * @param projectPath - Project root path
176
+ * @param queue - Queue data to write
177
+ * @param caller - Name of the calling function (for debug snapshots)
55
178
  */
56
- function writeQueue(projectPath, queue) {
179
+ function writeQueue(projectPath, queue, caller = 'unknown') {
57
180
  ensureQueueDir(projectPath);
58
181
  const queuePath = getQueuePath(projectPath);
59
- writeFileSync(queuePath, JSON.stringify(queue, null, 2), 'utf-8');
182
+ const tempPath = queuePath + '.tmp';
183
+ // Write to temp file first
184
+ const content = JSON.stringify(queue, null, 2);
185
+ writeFileSync(tempPath, content, 'utf-8');
186
+ // Atomic rename (Windows: uses MoveFileEx internally)
187
+ try {
188
+ renameSync(tempPath, queuePath);
189
+ }
190
+ catch (error) {
191
+ // Fallback: If rename fails (e.g., cross-device), write directly
192
+ debugLog('WARN', '[hook-queue] writeQueue: rename failed, using direct write', {
193
+ error: error instanceof Error ? error.message : String(error),
194
+ });
195
+ writeFileSync(queuePath, content, 'utf-8');
196
+ try {
197
+ unlinkSync(tempPath);
198
+ }
199
+ catch { /* ignore */ }
200
+ }
201
+ // DEBUG: Snapshot after each write with caller name + epoch time
202
+ // Controlled by QUEUE_TRACE_ENABLED flag
203
+ if (QUEUE_TRACE_ENABLED) {
204
+ const epoch = Date.now();
205
+ const snapshotPath = queuePath.replace('pending.json', `snapshot_${caller}_${epoch}.json`);
206
+ try {
207
+ const snapshotData = {
208
+ caller,
209
+ timestamp: new Date().toISOString(),
210
+ epoch,
211
+ pid: process.pid,
212
+ itemCount: queue.items.length,
213
+ items: queue.items,
214
+ };
215
+ writeFileSync(snapshotPath, JSON.stringify(snapshotData, null, 2), 'utf-8');
216
+ }
217
+ catch { /* ignore snapshot errors */ }
218
+ // DEBUG: Also write to pending-debug.json with timestamp for tracing
219
+ const debugPath = queuePath.replace('pending.json', 'pending-debug.json');
220
+ const debugData = {
221
+ timestamp: new Date().toISOString(),
222
+ pid: process.pid,
223
+ itemCount: queue.items.length,
224
+ items: queue.items,
225
+ };
226
+ try {
227
+ // Append to debug file (read existing + append)
228
+ let existing = [];
229
+ if (existsSync(debugPath)) {
230
+ try {
231
+ existing = JSON.parse(readFileSync(debugPath, 'utf-8'));
232
+ }
233
+ catch {
234
+ existing = [];
235
+ }
236
+ }
237
+ existing.push(debugData);
238
+ // Keep last 50 entries
239
+ if (existing.length > 50)
240
+ existing = existing.slice(-50);
241
+ writeFileSync(debugPath, JSON.stringify(existing, null, 2), 'utf-8');
242
+ }
243
+ catch { /* ignore debug file errors */ }
244
+ }
60
245
  }
61
246
  // ============================================================================
62
247
  // Enqueue Operations (Used by Hooks - Fast, No DB)
@@ -68,7 +253,16 @@ function writeQueue(projectPath, queue) {
68
253
  * @param data - Decision data
69
254
  */
70
255
  export function enqueueDecisionCreate(projectPath, data) {
256
+ writeQueueTrace(projectPath, 'INFO', 'enqueueDecisionCreate: START', { key: data.key });
71
257
  const queue = readQueue(projectPath);
258
+ writeQueueTrace(projectPath, 'INFO', 'enqueueDecisionCreate: after readQueue', { existingItems: queue.items.length });
259
+ // Duplicate check: skip if same key already in queue
260
+ const existingDecision = queue.items.find(i => i.type === 'decision' && i.data.key === data.key);
261
+ if (existingDecision) {
262
+ writeQueueTrace(projectPath, 'WARN', 'enqueueDecisionCreate: SKIP duplicate', { key: data.key });
263
+ debugLog('INFO', '[hook-queue] Skipping duplicate decision in queue', { key: data.key });
264
+ return;
265
+ }
72
266
  const item = {
73
267
  type: 'decision',
74
268
  action: 'create',
@@ -76,7 +270,9 @@ export function enqueueDecisionCreate(projectPath, data) {
76
270
  data,
77
271
  };
78
272
  queue.items.push(item);
79
- writeQueue(projectPath, queue);
273
+ writeQueueTrace(projectPath, 'INFO', 'enqueueDecisionCreate: before writeQueue', { totalItems: queue.items.length });
274
+ writeQueue(projectPath, queue, 'enqueueDecisionCreate');
275
+ writeQueueTrace(projectPath, 'INFO', 'enqueueDecisionCreate: DONE');
80
276
  }
81
277
  /**
82
278
  * Enqueue a decision status update
@@ -93,7 +289,7 @@ export function enqueueDecisionUpdate(projectPath, data) {
93
289
  data,
94
290
  };
95
291
  queue.items.push(item);
96
- writeQueue(projectPath, queue);
292
+ writeQueue(projectPath, queue, 'enqueueDecisionUpdate');
97
293
  }
98
294
  // ============================================================================
99
295
  // Process Queue (Used by MCP Server on Startup)
@@ -106,36 +302,76 @@ export function enqueueDecisionUpdate(projectPath, data) {
106
302
  *
107
303
  * @param projectPath - Project root path
108
304
  * @param processor - Function to process each item
305
+ * @param callId - Optional call ID for tracing
109
306
  * @returns Number of items processed
110
307
  */
111
- export async function processQueue(projectPath, processor) {
112
- const queue = readQueue(projectPath);
113
- if (queue.items.length === 0) {
308
+ export async function processQueue(projectPath, processor, callId) {
309
+ // Try to acquire file lock for exclusive processing
310
+ if (!tryAcquireLock(projectPath)) {
311
+ debugLog('INFO', '[hook-queue] Skipping processQueue - another process holds the lock', { callId });
114
312
  return 0;
115
313
  }
116
- let processed = 0;
117
- const errors = [];
118
- for (const item of queue.items) {
119
- try {
120
- await processor(item);
121
- processed++;
122
- }
123
- catch (error) {
124
- const message = error instanceof Error ? error.message : String(error);
125
- errors.push({ item, error: message });
126
- console.error(`[hook-queue] Error processing item: ${message}`);
314
+ try {
315
+ const queue = readQueue(projectPath);
316
+ debugLog('INFO', '[hook-queue] processQueue called', {
317
+ callId,
318
+ pid: process.pid,
319
+ itemCount: queue.items.length,
320
+ items: queue.items.map(i => ({
321
+ type: i.type,
322
+ action: i.action,
323
+ key: i.type === 'decision' ? i.data.key : undefined,
324
+ text: i.type === 'constraint' ? i.data.text?.slice(0, 30) : undefined,
325
+ })),
326
+ });
327
+ if (queue.items.length === 0) {
328
+ return 0;
127
329
  }
128
- }
129
- // Clear processed items (keep failed items for retry)
130
- if (errors.length === 0) {
330
+ // CRITICAL: Clear queue IMMEDIATELY after reading to prevent duplicate processing
331
+ // If another call comes in while we're processing, it will see an empty queue
332
+ debugLog('INFO', '[hook-queue] Clearing queue before processing (race condition prevention)', { callId });
131
333
  clearQueue(projectPath);
334
+ let processed = 0;
335
+ const errors = [];
336
+ for (let i = 0; i < queue.items.length; i++) {
337
+ const item = queue.items[i];
338
+ debugLog('INFO', `[hook-queue] Processing item ${i + 1}/${queue.items.length}`, {
339
+ callId,
340
+ type: item.type,
341
+ action: item.action,
342
+ });
343
+ try {
344
+ await processor(item);
345
+ processed++;
346
+ debugLog('INFO', `[hook-queue] Item ${i + 1} processed successfully`, { callId });
347
+ }
348
+ catch (error) {
349
+ const message = error instanceof Error ? error.message : String(error);
350
+ errors.push({ item, error: message });
351
+ debugLog('ERROR', `[hook-queue] Item ${i + 1} failed`, { callId, error: message });
352
+ console.error(`[hook-queue] Error processing item: ${message}`);
353
+ }
354
+ }
355
+ debugLog('INFO', '[hook-queue] Processing complete', {
356
+ callId,
357
+ processed,
358
+ errors: errors.length,
359
+ errorDetails: errors.map(e => e.error),
360
+ });
361
+ // Write back only failed items for retry
362
+ if (errors.length > 0) {
363
+ const failedItems = errors.map((e) => e.item);
364
+ debugLog('WARN', '[hook-queue] Writing back failed items for retry', {
365
+ callId,
366
+ failedCount: failedItems.length,
367
+ });
368
+ writeQueue(projectPath, { items: failedItems }, 'processQueue_retry');
369
+ }
370
+ return processed;
132
371
  }
133
- else {
134
- // Keep only failed items
135
- const failedItems = errors.map((e) => e.item);
136
- writeQueue(projectPath, { items: failedItems });
372
+ finally {
373
+ releaseLock(projectPath);
137
374
  }
138
- return processed;
139
375
  }
140
376
  /**
141
377
  * Clear the queue file
@@ -143,7 +379,7 @@ export async function processQueue(projectPath, processor) {
143
379
  export function clearQueue(projectPath) {
144
380
  const queuePath = getQueuePath(projectPath);
145
381
  if (existsSync(queuePath)) {
146
- writeQueue(projectPath, { items: [] });
382
+ writeQueue(projectPath, { items: [] }, 'clearQueue');
147
383
  }
148
384
  }
149
385
  /**
@@ -153,4 +389,62 @@ export function hasQueueItems(projectPath) {
153
389
  const queue = readQueue(projectPath);
154
390
  return queue.items.length > 0;
155
391
  }
392
+ // ============================================================================
393
+ // Constraint Queue Operations (v4.2.1+)
394
+ // ============================================================================
395
+ /**
396
+ * Enqueue a constraint creation
397
+ *
398
+ * @param projectPath - Project root path
399
+ * @param data - Constraint data
400
+ */
401
+ export function enqueueConstraintCreate(projectPath, data) {
402
+ writeQueueTrace(projectPath, 'INFO', 'enqueueConstraintCreate: START', { text: data.text?.slice(0, 30) });
403
+ const queue = readQueue(projectPath);
404
+ writeQueueTrace(projectPath, 'INFO', 'enqueueConstraintCreate: after readQueue', { existingItems: queue.items.length });
405
+ // Duplicate check: skip if same text already in queue
406
+ const existingConstraint = queue.items.find(i => i.type === 'constraint' && i.data.text === data.text);
407
+ if (existingConstraint) {
408
+ writeQueueTrace(projectPath, 'WARN', 'enqueueConstraintCreate: SKIP duplicate', { text: data.text?.slice(0, 30) });
409
+ debugLog('INFO', '[hook-queue] Skipping duplicate constraint in queue', { text: data.text?.slice(0, 30) });
410
+ return;
411
+ }
412
+ const item = {
413
+ type: 'constraint',
414
+ action: 'create',
415
+ timestamp: new Date().toISOString(),
416
+ data,
417
+ };
418
+ queue.items.push(item);
419
+ writeQueueTrace(projectPath, 'INFO', 'enqueueConstraintCreate: before writeQueue', { totalItems: queue.items.length });
420
+ debugLog('INFO', '[hook-queue] enqueueConstraintCreate', {
421
+ projectPath,
422
+ text: data.text?.slice(0, 30),
423
+ category: data.category,
424
+ queueSizeAfter: queue.items.length,
425
+ });
426
+ writeQueue(projectPath, queue, 'enqueueConstraintCreate');
427
+ writeQueueTrace(projectPath, 'INFO', 'enqueueConstraintCreate: DONE');
428
+ }
429
+ /**
430
+ * Enqueue constraint activation (set active=1)
431
+ *
432
+ * @param projectPath - Project root path
433
+ * @param planId - Plan ID to match constraints
434
+ */
435
+ export function enqueueConstraintActivate(projectPath, planId) {
436
+ const queue = readQueue(projectPath);
437
+ const item = {
438
+ type: 'constraint',
439
+ action: 'activate',
440
+ timestamp: new Date().toISOString(),
441
+ data: {
442
+ text: '', // Not used for activate action
443
+ plan_id: planId,
444
+ active: true,
445
+ },
446
+ };
447
+ queue.items.push(item);
448
+ writeQueue(projectPath, queue, 'enqueueConstraintActivate');
449
+ }
156
450
  //# sourceMappingURL=hook-queue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hook-queue.js","sourceRoot":"","sources":["../../src/utils/hook-queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hook-queue.js","sourceRoot":"","sources":["../../src/utils/hook-queue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Parameter Alias Normalizer
3
+ *
4
+ * Converts short aliases to canonical parameter names before validation.
5
+ * This enables user-friendly shorter parameter names while maintaining
6
+ * consistent internal naming conventions.
7
+ *
8
+ * @example
9
+ * // Single alias
10
+ * normalizeParams(params, { path: 'file_path' });
11
+ *
12
+ * // Multiple aliases
13
+ * normalizeParams(params, {
14
+ * path: 'file_path',
15
+ * type: 'change_type'
16
+ * });
17
+ */
18
+ /**
19
+ * Normalize parameter aliases to canonical names.
20
+ *
21
+ * Only converts alias to canonical if:
22
+ * 1. The alias parameter exists
23
+ * 2. The canonical parameter does NOT exist (avoid overwrite)
24
+ *
25
+ * @param params - Original parameters object
26
+ * @param aliases - Mapping of alias names to canonical names { alias: canonical }
27
+ * @returns New object with normalized parameter names
28
+ */
29
+ export declare function normalizeParams<T extends object>(params: T, aliases: Record<string, string>): T;
30
+ /**
31
+ * Pre-defined alias mappings for each tool.
32
+ * Centralized definitions for consistency and documentation.
33
+ */
34
+ export declare const DECISION_ALIASES: {
35
+ readonly alternatives: "alternatives_considered";
36
+ readonly task_id: "related_task_id";
37
+ readonly constraint_id: "related_constraint_id";
38
+ readonly after: "updated_after";
39
+ readonly before: "updated_before";
40
+ readonly key: "decision_key";
41
+ };
42
+ export declare const FILE_ALIASES: {
43
+ readonly path: "file_path";
44
+ readonly type: "change_type";
45
+ readonly changes: "file_changes";
46
+ readonly duration: "lock_duration";
47
+ };
48
+ export declare const CONSTRAINT_ALIASES: {
49
+ readonly text: "constraint_text";
50
+ readonly id: "constraint_id";
51
+ };
52
+ //# sourceMappingURL=param-normalizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"param-normalizer.d.ts","sourceRoot":"","sources":["../../src/utils/param-normalizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAC9C,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,CAAC,CAWH;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;CAUnB,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;CASf,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;CAKrB,CAAC"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Parameter Alias Normalizer
3
+ *
4
+ * Converts short aliases to canonical parameter names before validation.
5
+ * This enables user-friendly shorter parameter names while maintaining
6
+ * consistent internal naming conventions.
7
+ *
8
+ * @example
9
+ * // Single alias
10
+ * normalizeParams(params, { path: 'file_path' });
11
+ *
12
+ * // Multiple aliases
13
+ * normalizeParams(params, {
14
+ * path: 'file_path',
15
+ * type: 'change_type'
16
+ * });
17
+ */
18
+ /**
19
+ * Normalize parameter aliases to canonical names.
20
+ *
21
+ * Only converts alias to canonical if:
22
+ * 1. The alias parameter exists
23
+ * 2. The canonical parameter does NOT exist (avoid overwrite)
24
+ *
25
+ * @param params - Original parameters object
26
+ * @param aliases - Mapping of alias names to canonical names { alias: canonical }
27
+ * @returns New object with normalized parameter names
28
+ */
29
+ export function normalizeParams(params, aliases) {
30
+ const normalized = { ...params };
31
+ for (const [alias, canonical] of Object.entries(aliases)) {
32
+ if (normalized[alias] !== undefined && normalized[canonical] === undefined) {
33
+ normalized[canonical] = normalized[alias];
34
+ delete normalized[alias];
35
+ }
36
+ }
37
+ return normalized;
38
+ }
39
+ /**
40
+ * Pre-defined alias mappings for each tool.
41
+ * Centralized definitions for consistency and documentation.
42
+ */
43
+ export const DECISION_ALIASES = {
44
+ // add_decision_context
45
+ alternatives: 'alternatives_considered',
46
+ task_id: 'related_task_id',
47
+ constraint_id: 'related_constraint_id',
48
+ // search_advanced
49
+ after: 'updated_after',
50
+ before: 'updated_before',
51
+ // list_decision_contexts
52
+ key: 'decision_key'
53
+ };
54
+ export const FILE_ALIASES = {
55
+ // record, get, check_lock
56
+ path: 'file_path',
57
+ // record
58
+ type: 'change_type',
59
+ // record_batch
60
+ changes: 'file_changes',
61
+ // check_lock
62
+ duration: 'lock_duration'
63
+ };
64
+ export const CONSTRAINT_ALIASES = {
65
+ // add
66
+ text: 'constraint_text',
67
+ // deactivate, activate
68
+ id: 'constraint_id'
69
+ };
70
+ //# sourceMappingURL=param-normalizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"param-normalizer.js","sourceRoot":"","sources":["../../src/utils/param-normalizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAS,EACT,OAA+B;IAE/B,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,EAAS,CAAC;IAExC,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3E,UAAU,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAC1C,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,UAAe,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,uBAAuB;IACvB,YAAY,EAAE,yBAAyB;IACvC,OAAO,EAAE,iBAAiB;IAC1B,aAAa,EAAE,uBAAuB;IACtC,kBAAkB;IAClB,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,gBAAgB;IACxB,yBAAyB;IACzB,GAAG,EAAE,cAAc;CACX,CAAC;AAEX,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,0BAA0B;IAC1B,IAAI,EAAE,WAAW;IACjB,SAAS;IACT,IAAI,EAAE,aAAa;IACnB,eAAe;IACf,OAAO,EAAE,cAAc;IACvB,aAAa;IACb,QAAQ,EAAE,eAAe;CACjB,CAAC;AAEX,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,MAAM;IACN,IAAI,EAAE,iBAAiB;IACvB,uBAAuB;IACvB,EAAE,EAAE,eAAe;CACX,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parameter-validator.d.ts","sourceRoot":"","sources":["../../src/utils/parameter-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAuH7B;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,gBAAgB,GAAG,WAAW,GAAG,MAAM,EAC1F,MAAM,EAAE,GAAG,GACV,IAAI,CA8EN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,GAAG,EAAE,EACZ,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,MAAW,GACpB,IAAI,CAkDN;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAM1D;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAcpF"}
1
+ {"version":3,"file":"parameter-validator.d.ts","sourceRoot":"","sources":["../../src/utils/parameter-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAyH7B;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,gBAAgB,GAAG,WAAW,GAAG,MAAM,EAC1F,MAAM,EAAE,GAAG,GACV,IAAI,CA8EN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,GAAG,EAAE,EACZ,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,MAAW,GACpB,IAAI,CAkDN;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAM1D;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAcpF"}
@@ -40,6 +40,8 @@ const COMMON_ABBREVIATIONS = {
40
40
  ref: ['reference'],
41
41
  ctx: ['context'],
42
42
  db: ['database'],
43
+ // Alias: text → constraint_text (common AI mistake from TOML template)
44
+ text: ['constraint_text'],
43
45
  };
44
46
  /**
45
47
  * Check if provided parameter matches any common abbreviation pattern
@@ -1 +1 @@
1
- {"version":3,"file":"parameter-validator.js","sourceRoot":"","sources":["../../src/utils/parameter-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parameter-validator.js","sourceRoot":"","sources":["../../src/utils/parameter-validator.ts"],"names":[],"mappings":"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"}