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
@@ -484,18 +484,18 @@ export async function up(knex) {
484
484
  const existingLayers = await knex('v4_layers').count('* as count').first();
485
485
  if (!existingLayers || Number(existingLayers.count) === 0) {
486
486
  if (db.isPostgreSQL) {
487
- await knex.raw(`
488
- INSERT INTO v4_layers (id, name) VALUES
489
- (1, 'presentation'), (2, 'business'), (3, 'data'), (4, 'infrastructure'),
490
- (5, 'cross-cutting'), (6, 'documentation'), (7, 'planning'), (8, 'coordination'), (9, 'review')
491
- ON CONFLICT (id) DO NOTHING
487
+ await knex.raw(`
488
+ INSERT INTO v4_layers (id, name) VALUES
489
+ (1, 'presentation'), (2, 'business'), (3, 'data'), (4, 'infrastructure'),
490
+ (5, 'cross-cutting'), (6, 'documentation'), (7, 'planning'), (8, 'coordination'), (9, 'review')
491
+ ON CONFLICT (id) DO NOTHING
492
492
  `);
493
493
  }
494
494
  else {
495
- await knex.raw(`
496
- INSERT ${insertIgnore} INTO v4_layers (id, name) VALUES
497
- (1, 'presentation'), (2, 'business'), (3, 'data'), (4, 'infrastructure'),
498
- (5, 'cross-cutting'), (6, 'documentation'), (7, 'planning'), (8, 'coordination'), (9, 'review')
495
+ await knex.raw(`
496
+ INSERT ${insertIgnore} INTO v4_layers (id, name) VALUES
497
+ (1, 'presentation'), (2, 'business'), (3, 'data'), (4, 'infrastructure'),
498
+ (5, 'cross-cutting'), (6, 'documentation'), (7, 'planning'), (8, 'coordination'), (9, 'review')
499
499
  `);
500
500
  }
501
501
  console.error(' ✓ Layers seeded (9)');
@@ -504,16 +504,16 @@ export async function up(knex) {
504
504
  const existingCategories = await knex('v4_constraint_categories').count('* as count').first();
505
505
  if (!existingCategories || Number(existingCategories.count) === 0) {
506
506
  if (db.isPostgreSQL) {
507
- await knex.raw(`
508
- INSERT INTO v4_constraint_categories (name) VALUES
509
- ('architecture'), ('security'), ('performance'), ('compatibility'), ('maintainability')
510
- ON CONFLICT (name) DO NOTHING
507
+ await knex.raw(`
508
+ INSERT INTO v4_constraint_categories (name) VALUES
509
+ ('architecture'), ('security'), ('performance'), ('compatibility'), ('maintainability')
510
+ ON CONFLICT (name) DO NOTHING
511
511
  `);
512
512
  }
513
513
  else {
514
- await knex.raw(`
515
- INSERT ${insertIgnore} INTO v4_constraint_categories (name) VALUES
516
- ('architecture'), ('security'), ('performance'), ('compatibility'), ('maintainability')
514
+ await knex.raw(`
515
+ INSERT ${insertIgnore} INTO v4_constraint_categories (name) VALUES
516
+ ('architecture'), ('security'), ('performance'), ('compatibility'), ('maintainability')
517
517
  `);
518
518
  }
519
519
  console.error(' ✓ Constraint categories seeded (5)');
@@ -522,16 +522,16 @@ export async function up(knex) {
522
522
  const existingStatuses = await knex('v4_task_statuses').count('* as count').first();
523
523
  if (!existingStatuses || Number(existingStatuses.count) === 0) {
524
524
  if (db.isPostgreSQL) {
525
- await knex.raw(`
526
- INSERT INTO v4_task_statuses (id, name) VALUES
527
- (1, 'todo'), (2, 'in_progress'), (3, 'waiting_review'), (4, 'blocked'), (5, 'done'), (6, 'archived'), (7, 'rejected')
528
- ON CONFLICT (id) DO NOTHING
525
+ await knex.raw(`
526
+ INSERT INTO v4_task_statuses (id, name) VALUES
527
+ (1, 'todo'), (2, 'in_progress'), (3, 'waiting_review'), (4, 'blocked'), (5, 'done'), (6, 'archived'), (7, 'rejected')
528
+ ON CONFLICT (id) DO NOTHING
529
529
  `);
530
530
  }
531
531
  else {
532
- await knex.raw(`
533
- INSERT ${insertIgnore} INTO v4_task_statuses (id, name) VALUES
534
- (1, 'todo'), (2, 'in_progress'), (3, 'waiting_review'), (4, 'blocked'), (5, 'done'), (6, 'archived'), (7, 'rejected')
532
+ await knex.raw(`
533
+ INSERT ${insertIgnore} INTO v4_task_statuses (id, name) VALUES
534
+ (1, 'todo'), (2, 'in_progress'), (3, 'waiting_review'), (4, 'blocked'), (5, 'done'), (6, 'archived'), (7, 'rejected')
535
535
  `);
536
536
  }
537
537
  console.error(' ✓ Task statuses seeded (7)');
@@ -554,18 +554,18 @@ export async function up(knex) {
554
554
  const existingTags = await knex('v4_tags').count('* as count').first();
555
555
  if (!existingTags || Number(existingTags.count) === 0) {
556
556
  if (db.isPostgreSQL) {
557
- await knex.raw(`
558
- INSERT INTO v4_tags (project_id, name) VALUES
559
- (1, 'authentication'), (1, 'authorization'), (1, 'validation'), (1, 'error-handling'),
560
- (1, 'logging'), (1, 'performance'), (1, 'security'), (1, 'testing')
561
- ON CONFLICT (project_id, name) DO NOTHING
557
+ await knex.raw(`
558
+ INSERT INTO v4_tags (project_id, name) VALUES
559
+ (1, 'authentication'), (1, 'authorization'), (1, 'validation'), (1, 'error-handling'),
560
+ (1, 'logging'), (1, 'performance'), (1, 'security'), (1, 'testing')
561
+ ON CONFLICT (project_id, name) DO NOTHING
562
562
  `);
563
563
  }
564
564
  else {
565
- await knex.raw(`
566
- INSERT ${insertIgnore} INTO v4_tags (project_id, name) VALUES
567
- (1, 'authentication'), (1, 'authorization'), (1, 'validation'), (1, 'error-handling'),
568
- (1, 'logging'), (1, 'performance'), (1, 'security'), (1, 'testing')
565
+ await knex.raw(`
566
+ INSERT ${insertIgnore} INTO v4_tags (project_id, name) VALUES
567
+ (1, 'authentication'), (1, 'authorization'), (1, 'validation'), (1, 'error-handling'),
568
+ (1, 'logging'), (1, 'performance'), (1, 'security'), (1, 'testing')
569
569
  `);
570
570
  }
571
571
  console.error(' ✓ Common tags seeded (8)');
@@ -0,0 +1,14 @@
1
+ /**
2
+ * v4 Seed Missing Help Data Migration
3
+ *
4
+ * Adds missing help system data:
5
+ * - v4_help_action_params for analytics, by_key, by_tags, check_duplicate
6
+ * - v4_help_action_examples (initial examples)
7
+ *
8
+ * This migration supplements the original seed migration with
9
+ * data that was missing in v4.1.1 clean installs.
10
+ */
11
+ import type { Knex } from 'knex';
12
+ export declare function up(knex: Knex): Promise<void>;
13
+ export declare function down(knex: Knex): Promise<void>;
14
+ //# sourceMappingURL=20251225000000_v4_seed_missing_help_data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251225000000_v4_seed_missing_help_data.d.ts","sourceRoot":"","sources":["../../../../src/database/migrations/v4/20251225000000_v4_seed_missing_help_data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA4LlD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBpD"}
@@ -0,0 +1,201 @@
1
+ /**
2
+ * v4 Seed Missing Help Data Migration
3
+ *
4
+ * Adds missing help system data:
5
+ * - v4_help_action_params for analytics, by_key, by_tags, check_duplicate
6
+ * - v4_help_action_examples (initial examples)
7
+ *
8
+ * This migration supplements the original seed migration with
9
+ * data that was missing in v4.1.1 clean installs.
10
+ */
11
+ export async function up(knex) {
12
+ console.error('🌱 Seeding missing help system data...');
13
+ // Get action IDs
14
+ const actions = await knex('v4_help_actions').select('id', 'tool_name', 'action_name');
15
+ const actionMap = actions.reduce((map, action) => {
16
+ map[`${action.tool_name}:${action.action_name}`] = action.id;
17
+ return map;
18
+ }, {});
19
+ // 1. Seed missing v4_help_action_params
20
+ const missingParams = [
21
+ // DECISION:ANALYTICS
22
+ { action_id: actionMap['decision:analytics'], param_name: 'action', param_type: 'string', required: 1, description: 'Must be "analytics"', default_value: null },
23
+ { action_id: actionMap['decision:analytics'], param_name: 'key_pattern', param_type: 'string', required: 1, description: 'SQL LIKE pattern for decision keys (e.g., "metric/%")', default_value: null },
24
+ { action_id: actionMap['decision:analytics'], param_name: 'aggregation', param_type: 'string', required: 1, description: 'Aggregation type: avg, sum, max, min, count', default_value: null },
25
+ { action_id: actionMap['decision:analytics'], param_name: 'layer', param_type: 'string', required: 0, description: 'Filter by layer', default_value: null },
26
+ { action_id: actionMap['decision:analytics'], param_name: 'time_series', param_type: 'object', required: 0, description: 'Time series options: { bucket, start_ts, end_ts }', default_value: null },
27
+ { action_id: actionMap['decision:analytics'], param_name: 'percentiles', param_type: 'number[]', required: 0, description: 'Percentiles to calculate (e.g., [50, 90, 95, 99])', default_value: null },
28
+ // SUGGEST:BY_KEY
29
+ { action_id: actionMap['suggest:by_key'], param_name: 'action', param_type: 'string', required: 1, description: 'Must be "by_key"', default_value: null },
30
+ { action_id: actionMap['suggest:by_key'], param_name: 'key', param_type: 'string', required: 1, description: 'Decision key pattern to search', default_value: null },
31
+ { action_id: actionMap['suggest:by_key'], param_name: 'limit', param_type: 'number', required: 0, description: 'Max suggestions', default_value: '5' },
32
+ { action_id: actionMap['suggest:by_key'], param_name: 'min_score', param_type: 'number', required: 0, description: 'Minimum relevance score', default_value: '30' },
33
+ // SUGGEST:BY_TAGS
34
+ { action_id: actionMap['suggest:by_tags'], param_name: 'action', param_type: 'string', required: 1, description: 'Must be "by_tags"', default_value: null },
35
+ { action_id: actionMap['suggest:by_tags'], param_name: 'tags', param_type: 'string[]', required: 1, description: 'Tags to search for', default_value: null },
36
+ { action_id: actionMap['suggest:by_tags'], param_name: 'layer', param_type: 'string', required: 0, description: 'Filter by layer', default_value: null },
37
+ { action_id: actionMap['suggest:by_tags'], param_name: 'limit', param_type: 'number', required: 0, description: 'Max suggestions', default_value: '5' },
38
+ { action_id: actionMap['suggest:by_tags'], param_name: 'min_score', param_type: 'number', required: 0, description: 'Minimum relevance score', default_value: '15' },
39
+ // SUGGEST:CHECK_DUPLICATE
40
+ { action_id: actionMap['suggest:check_duplicate'], param_name: 'action', param_type: 'string', required: 1, description: 'Must be "check_duplicate"', default_value: null },
41
+ { action_id: actionMap['suggest:check_duplicate'], param_name: 'key', param_type: 'string', required: 1, description: 'Decision key to check', default_value: null },
42
+ { action_id: actionMap['suggest:check_duplicate'], param_name: 'tags', param_type: 'string[]', required: 0, description: 'Tags for context matching', default_value: '[]' },
43
+ { action_id: actionMap['suggest:check_duplicate'], param_name: 'layer', param_type: 'string', required: 0, description: 'Layer for context matching', default_value: null },
44
+ ].filter(p => p.action_id);
45
+ if (missingParams.length > 0) {
46
+ // Check for existing params to avoid duplicates
47
+ for (const param of missingParams) {
48
+ const exists = await knex('v4_help_action_params')
49
+ .where({ action_id: param.action_id, param_name: param.param_name })
50
+ .first();
51
+ if (!exists) {
52
+ await knex('v4_help_action_params').insert(param);
53
+ }
54
+ }
55
+ console.error(` ✓ Missing help action params seeded`);
56
+ }
57
+ // 2. Seed v4_help_action_examples
58
+ const existingExamples = await knex('v4_help_action_examples').count('* as count').first();
59
+ if (!existingExamples || Number(existingExamples.count) === 0) {
60
+ const examples = [
61
+ // DECISION:SET examples
62
+ {
63
+ action_id: actionMap['decision:set'],
64
+ title: 'Basic decision',
65
+ code: JSON.stringify({
66
+ action: 'set',
67
+ key: 'auth/method',
68
+ value: 'JWT tokens with refresh',
69
+ tags: ['security', 'auth'],
70
+ layer: 'infrastructure'
71
+ }, null, 2),
72
+ explanation: 'Store a simple architectural decision with tags and layer'
73
+ },
74
+ {
75
+ action_id: actionMap['decision:set'],
76
+ title: 'Decision with context',
77
+ code: JSON.stringify({
78
+ action: 'set',
79
+ key: 'database/orm',
80
+ value: 'Prisma',
81
+ tags: ['database', 'orm'],
82
+ layer: 'data',
83
+ rationale: 'Type safety and migration support',
84
+ alternatives: 'TypeORM, Knex, raw SQL',
85
+ tradeoffs: 'Learning curve, but better DX'
86
+ }, null, 2),
87
+ explanation: 'Store a decision with full context (rationale, alternatives, tradeoffs)'
88
+ },
89
+ // DECISION:LIST examples
90
+ {
91
+ action_id: actionMap['decision:list'],
92
+ title: 'List all decisions',
93
+ code: JSON.stringify({
94
+ action: 'list'
95
+ }, null, 2),
96
+ explanation: 'Get all active decisions'
97
+ },
98
+ {
99
+ action_id: actionMap['decision:list'],
100
+ title: 'Filter by layer',
101
+ code: JSON.stringify({
102
+ action: 'list',
103
+ layer: 'infrastructure',
104
+ limit: 10
105
+ }, null, 2),
106
+ explanation: 'List decisions filtered by architecture layer'
107
+ },
108
+ // SUGGEST:BY_KEY examples
109
+ {
110
+ action_id: actionMap['suggest:by_key'],
111
+ title: 'Find similar by key',
112
+ code: JSON.stringify({
113
+ action: 'by_key',
114
+ key: 'auth'
115
+ }, null, 2),
116
+ explanation: 'Find decisions with keys similar to "auth" (e.g., auth/method, auth/provider)'
117
+ },
118
+ // SUGGEST:BY_TAGS examples
119
+ {
120
+ action_id: actionMap['suggest:by_tags'],
121
+ title: 'Find by tags',
122
+ code: JSON.stringify({
123
+ action: 'by_tags',
124
+ tags: ['security', 'auth']
125
+ }, null, 2),
126
+ explanation: 'Find decisions tagged with security or auth'
127
+ },
128
+ // DECISION:ANALYTICS examples
129
+ {
130
+ action_id: actionMap['decision:analytics'],
131
+ title: 'Count decisions',
132
+ code: JSON.stringify({
133
+ action: 'analytics',
134
+ key_pattern: '%',
135
+ aggregation: 'count'
136
+ }, null, 2),
137
+ explanation: 'Count all decisions in the database'
138
+ },
139
+ {
140
+ action_id: actionMap['decision:analytics'],
141
+ title: 'Average metric value',
142
+ code: JSON.stringify({
143
+ action: 'analytics',
144
+ key_pattern: 'metric/api-latency/%',
145
+ aggregation: 'avg',
146
+ layer: 'infrastructure'
147
+ }, null, 2),
148
+ explanation: 'Calculate average of numeric decisions matching pattern'
149
+ },
150
+ // TASK:CREATE examples
151
+ {
152
+ action_id: actionMap['task:create'],
153
+ title: 'Create simple task',
154
+ code: JSON.stringify({
155
+ action: 'create',
156
+ title: 'Implement user authentication',
157
+ priority: 3,
158
+ layer: 'business'
159
+ }, null, 2),
160
+ explanation: 'Create a high-priority task in the business layer'
161
+ },
162
+ // CONSTRAINT:ADD examples
163
+ {
164
+ action_id: actionMap['constraint:add'],
165
+ title: 'Add architectural constraint',
166
+ code: JSON.stringify({
167
+ action: 'add',
168
+ constraint_text: 'All API endpoints must validate input',
169
+ category: 'security',
170
+ priority: 3,
171
+ layer: 'infrastructure'
172
+ }, null, 2),
173
+ explanation: 'Add a security constraint to enforce input validation'
174
+ }
175
+ ].filter(e => e.action_id);
176
+ if (examples.length > 0) {
177
+ await knex('v4_help_action_examples').insert(examples);
178
+ console.error(` ✓ Help action examples seeded (${examples.length})`);
179
+ }
180
+ }
181
+ else {
182
+ console.error(' ℹ Help action examples already exist, skipping');
183
+ }
184
+ console.error('🎉 Missing help system data seeded!');
185
+ }
186
+ export async function down(knex) {
187
+ // Remove examples added by this migration
188
+ await knex('v4_help_action_examples').del();
189
+ // Remove params added by this migration (analytics, by_key, by_tags, check_duplicate)
190
+ const actions = await knex('v4_help_actions')
191
+ .whereIn('action_name', ['analytics', 'by_key', 'by_tags', 'check_duplicate'])
192
+ .select('id');
193
+ const actionIds = actions.map(a => a.id);
194
+ if (actionIds.length > 0) {
195
+ await knex('v4_help_action_params')
196
+ .whereIn('action_id', actionIds)
197
+ .del();
198
+ }
199
+ console.error('🗑️ Missing help system data removed');
200
+ }
201
+ //# sourceMappingURL=20251225000000_v4_seed_missing_help_data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251225000000_v4_seed_missing_help_data.js","sourceRoot":"","sources":["../../../../src/database/migrations/v4/20251225000000_v4_seed_missing_help_data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * v4 Fix Help Params Migration
3
+ *
4
+ * Fixes incorrect parameter descriptions in the help system:
5
+ * - constraint:add priority: "Priority: 1-4" → "Priority level: low, medium, high, critical"
6
+ *
7
+ * NOTE: file:record agent_name is not in DB (handled in code only)
8
+ */
9
+ import type { Knex } from 'knex';
10
+ export declare function up(knex: Knex): Promise<void>;
11
+ export declare function down(knex: Knex): Promise<void>;
12
+ //# sourceMappingURL=20251225000001_v4_fix_help_params.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251225000001_v4_fix_help_params.d.ts","sourceRoot":"","sources":["../../../../src/database/migrations/v4/20251225000001_v4_fix_help_params.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAgClD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBpD"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * v4 Fix Help Params Migration
3
+ *
4
+ * Fixes incorrect parameter descriptions in the help system:
5
+ * - constraint:add priority: "Priority: 1-4" → "Priority level: low, medium, high, critical"
6
+ *
7
+ * NOTE: file:record agent_name is not in DB (handled in code only)
8
+ */
9
+ export async function up(knex) {
10
+ console.error('🔧 Fixing help parameter descriptions...');
11
+ // Get constraint:add action ID
12
+ const constraintAddAction = await knex('v4_help_actions')
13
+ .where({ tool_name: 'constraint', action_name: 'add' })
14
+ .select('id')
15
+ .first();
16
+ if (constraintAddAction) {
17
+ // Fix priority description: "Priority: 1-4" → "Priority level: low, medium, high, critical"
18
+ const updated = await knex('v4_help_action_params')
19
+ .where({
20
+ action_id: constraintAddAction.id,
21
+ param_name: 'priority'
22
+ })
23
+ .update({
24
+ param_type: 'string',
25
+ description: 'Priority level: low, medium, high, critical',
26
+ default_value: 'medium'
27
+ });
28
+ if (updated > 0) {
29
+ console.error(' ✓ Fixed constraint:add priority parameter');
30
+ }
31
+ else {
32
+ console.error(' ℹ constraint:add priority parameter not found (may not exist)');
33
+ }
34
+ }
35
+ else {
36
+ console.error(' ⚠ constraint:add action not found');
37
+ }
38
+ console.error('🎉 Help parameter descriptions fixed!');
39
+ }
40
+ export async function down(knex) {
41
+ // Get constraint:add action ID
42
+ const constraintAddAction = await knex('v4_help_actions')
43
+ .where({ tool_name: 'constraint', action_name: 'add' })
44
+ .select('id')
45
+ .first();
46
+ if (constraintAddAction) {
47
+ // Revert to original values
48
+ await knex('v4_help_action_params')
49
+ .where({
50
+ action_id: constraintAddAction.id,
51
+ param_name: 'priority'
52
+ })
53
+ .update({
54
+ param_type: 'number',
55
+ description: 'Priority: 1-4',
56
+ default_value: '2'
57
+ });
58
+ }
59
+ console.error('🗑️ Help parameter descriptions reverted');
60
+ }
61
+ //# sourceMappingURL=20251225000001_v4_fix_help_params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251225000001_v4_fix_help_params.js","sourceRoot":"","sources":["../../../../src/database/migrations/v4/20251225000001_v4_fix_help_params.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAE1D,+BAA+B;IAC/B,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC;SACtD,KAAK,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;SACtD,MAAM,CAAC,IAAI,CAAC;SACZ,KAAK,EAAE,CAAC;IAEX,IAAI,mBAAmB,EAAE,CAAC;QACxB,4FAA4F;QAC5F,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC;aAChD,KAAK,CAAC;YACL,SAAS,EAAE,mBAAmB,CAAC,EAAE;YACjC,UAAU,EAAE,UAAU;SACvB,CAAC;aACD,MAAM,CAAC;YACN,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,6CAA6C;YAC1D,aAAa,EAAE,QAAQ;SACxB,CAAC,CAAC;QAEL,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,+BAA+B;IAC/B,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC;SACtD,KAAK,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;SACtD,MAAM,CAAC,IAAI,CAAC;SACZ,KAAK,EAAE,CAAC;IAEX,IAAI,mBAAmB,EAAE,CAAC;QACxB,4BAA4B;QAC5B,MAAM,IAAI,CAAC,uBAAuB,CAAC;aAChC,KAAK,CAAC;YACL,SAAS,EAAE,mBAAmB,CAAC,EAAE;YACjC,UAAU,EAAE,UAAU;SACvB,CAAC;aACD,MAAM,CAAC;YACN,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,eAAe;YAC5B,aAAa,EAAE,GAAG;SACnB,CAAC,CAAC;IACP,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Migration: Fix decision.set example that incorrectly shows rationale/alternatives/tradeoffs
3
+ *
4
+ * The original example in 20251225000000_v4_seed_missing_help_data.ts incorrectly shows
5
+ * rationale, alternatives, and tradeoffs as parameters for decision.set action.
6
+ * These are actually parameters for add_decision_context action.
7
+ *
8
+ * This migration updates the example to show the correct 2-step workflow.
9
+ *
10
+ * @since v4.2.1
11
+ */
12
+ import type { Knex } from 'knex';
13
+ export declare function up(knex: Knex): Promise<void>;
14
+ export declare function down(knex: Knex): Promise<void>;
15
+ //# sourceMappingURL=20260102204000_v4_fix_decision_set_example.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20260102204000_v4_fix_decision_set_example.d.ts","sourceRoot":"","sources":["../../../../src/database/migrations/v4/20260102204000_v4_fix_decision_set_example.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAuClD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BpD"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Migration: Fix decision.set example that incorrectly shows rationale/alternatives/tradeoffs
3
+ *
4
+ * The original example in 20251225000000_v4_seed_missing_help_data.ts incorrectly shows
5
+ * rationale, alternatives, and tradeoffs as parameters for decision.set action.
6
+ * These are actually parameters for add_decision_context action.
7
+ *
8
+ * This migration updates the example to show the correct 2-step workflow.
9
+ *
10
+ * @since v4.2.1
11
+ */
12
+ export async function up(knex) {
13
+ // Find the incorrect example
14
+ const example = await knex('v4_help_action_examples')
15
+ .where('title', 'Decision with context')
16
+ .whereRaw("code LIKE '%rationale%'")
17
+ .first();
18
+ if (!example) {
19
+ // Example not found or already fixed
20
+ return;
21
+ }
22
+ // Correct example: show 2-step workflow
23
+ const correctCode = JSON.stringify({
24
+ action: 'set',
25
+ key: 'database/orm',
26
+ value: 'Prisma',
27
+ tags: ['database', 'orm'],
28
+ layer: 'data'
29
+ }, null, 2);
30
+ const contextNote = `
31
+
32
+ // To add context (rationale, alternatives, tradeoffs), use add_decision_context:
33
+ ${JSON.stringify({
34
+ action: 'add_decision_context',
35
+ key: 'database/orm',
36
+ rationale: 'Type safety and migration support',
37
+ alternatives: 'TypeORM, Knex, raw SQL',
38
+ tradeoffs: 'Learning curve, but better DX'
39
+ }, null, 2)}`;
40
+ await knex('v4_help_action_examples')
41
+ .where('id', example.id)
42
+ .update({
43
+ title: 'Decision with context (2-step)',
44
+ code: correctCode + contextNote,
45
+ explanation: 'First create decision with set, then add context with add_decision_context action'
46
+ });
47
+ }
48
+ export async function down(knex) {
49
+ // Revert to original (incorrect) example
50
+ const example = await knex('v4_help_action_examples')
51
+ .where('title', 'Decision with context (2-step)')
52
+ .first();
53
+ if (!example) {
54
+ return;
55
+ }
56
+ const originalCode = JSON.stringify({
57
+ action: 'set',
58
+ key: 'database/orm',
59
+ value: 'Prisma',
60
+ tags: ['database', 'orm'],
61
+ layer: 'data',
62
+ rationale: 'Type safety and migration support',
63
+ alternatives: 'TypeORM, Knex, raw SQL',
64
+ tradeoffs: 'Learning curve, but better DX'
65
+ }, null, 2);
66
+ await knex('v4_help_action_examples')
67
+ .where('id', example.id)
68
+ .update({
69
+ title: 'Decision with context',
70
+ code: originalCode,
71
+ explanation: 'Store a decision with full context (rationale, alternatives, tradeoffs)'
72
+ });
73
+ }
74
+ //# sourceMappingURL=20260102204000_v4_fix_decision_set_example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20260102204000_v4_fix_decision_set_example.js","sourceRoot":"","sources":["../../../../src/database/migrations/v4/20260102204000_v4_fix_decision_set_example.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,6BAA6B;IAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC;SAClD,KAAK,CAAC,OAAO,EAAE,uBAAuB,CAAC;SACvC,QAAQ,CAAC,yBAAyB,CAAC;SACnC,KAAK,EAAE,CAAC;IAEX,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,qCAAqC;QACrC,OAAO;IACT,CAAC;IAED,wCAAwC;IACxC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,cAAc;QACnB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC;QACzB,KAAK,EAAE,MAAM;KACd,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEZ,MAAM,WAAW,GAAG;;;EAGpB,IAAI,CAAC,SAAS,CAAC;QACb,MAAM,EAAE,sBAAsB;QAC9B,GAAG,EAAE,cAAc;QACnB,SAAS,EAAE,mCAAmC;QAC9C,YAAY,EAAE,wBAAwB;QACtC,SAAS,EAAE,+BAA+B;KAC3C,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IAEd,MAAM,IAAI,CAAC,yBAAyB,CAAC;SAClC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;SACvB,MAAM,CAAC;QACN,KAAK,EAAE,gCAAgC;QACvC,IAAI,EAAE,WAAW,GAAG,WAAW;QAC/B,WAAW,EAAE,mFAAmF;KACjG,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,yCAAyC;IACzC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC;SAClD,KAAK,CAAC,OAAO,EAAE,gCAAgC,CAAC;SAChD,KAAK,EAAE,CAAC;IAEX,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;QAClC,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,cAAc;QACnB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC;QACzB,KAAK,EAAE,MAAM;QACb,SAAS,EAAE,mCAAmC;QAC9C,YAAY,EAAE,wBAAwB;QACtC,SAAS,EAAE,+BAA+B;KAC3C,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEZ,MAAM,IAAI,CAAC,yBAAyB,CAAC;SAClC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;SACvB,MAAM,CAAC;QACN,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,yEAAyE;KACvF,CAAC,CAAC;AACP,CAAC"}
package/dist/index.js CHANGED
@@ -12,12 +12,16 @@
12
12
  // ============================================================================
13
13
  const rawArgs = process.argv.slice(2);
14
14
  const firstArg = rawArgs[0] || '';
15
- // Check if this is a CLI command
15
+ // Check if this is a CLI command or flag
16
16
  const cliCommands = [
17
17
  'db:dump', 'db:export', 'db:import', 'query',
18
- 'suggest', 'track-plan', 'save', 'check-completion', 'mark-done', 'init'
18
+ 'suggest', 'track-plan', 'save', 'check-completion', 'mark-done', 'init',
19
+ // New hook events (v4.2.0+)
20
+ 'on-subagent-stop', 'on-stop', 'on-exit-plan',
19
21
  ];
20
- const isCliCommand = cliCommands.includes(firstArg);
22
+ // CLI flags that should route to CLI (not MCP server)
23
+ const cliFlags = ['--init', '--help', '--version'];
24
+ const isCliCommand = cliCommands.includes(firstArg) || cliFlags.includes(firstArg);
21
25
  if (isCliCommand) {
22
26
  // Delegate to CLI module
23
27
  import('./cli.js').then(async (cli) => {
@@ -58,7 +62,7 @@ async function startMcpServer() {
58
62
  // Create MCP server
59
63
  const server = new Server({
60
64
  name: 'mcp-sqlew',
61
- version: '4.0.4',
65
+ version: '4.2.0',
62
66
  }, {
63
67
  capabilities: {
64
68
  tools: {},
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,13 @@ export declare function initializeSkills(projectRoot: string): void;
13
13
  */
14
14
  export declare function initializeClaudeMd(projectRoot: string): void;
15
15
  /**
16
- * Initialize all sqlew integrations (skills + CLAUDE.md + hooks)
16
+ * Initialize all sqlew integrations (skills + CLAUDE.md + hooks + gitignore)
17
17
  * Called during server startup
18
18
  */
19
19
  export declare function initializeSqlewIntegrations(projectRoot: string): void;
20
+ /**
21
+ * Initialize .gitignore with sqlew auto-generated file entries
22
+ * Only adds entries if not already present
23
+ */
24
+ export declare function initializeGitignore(projectRoot: string): void;
20
25
  //# sourceMappingURL=init-skills.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init-skills.d.ts","sourceRoot":"","sources":["../src/init-skills.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAuC1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAoC5D;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAcrE"}
1
+ {"version":3,"file":"init-skills.d.ts","sourceRoot":"","sources":["../src/init-skills.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAuC1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAoC5D;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAiBrE;AAeD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAmC7D"}