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
@@ -2,6 +2,10 @@
2
2
 
3
3
  **Architecture Decision Records (ADR)** document the architectural decisions made on a project, including context, consequences, and alternatives considered. sqlew extends this proven pattern to AI agents.
4
4
 
5
+ ## Plan-to-ADR (v4.3.0+)
6
+
7
+ **Plan-to-ADR** is sqlew's automatic ADR generation feature. Write decisions in your plan files using Markdown patterns (`📌 Decision` / `🚫 Constraint`), and they're automatically extracted and registered as structured ADR entries.
8
+
5
9
  ## How It Works
6
10
 
7
11
  ```mermaid
@@ -4,7 +4,7 @@ Integration guide for sqlew with Claude Code hooks.
4
4
 
5
5
  ## Overview
6
6
 
7
- sqlew integrates with Claude Code through PreToolUse and PostToolUse hooks, enabling automatic decision tracking during AI-assisted development.
7
+ sqlew integrates with Claude Code through PreToolUse and PostToolUse hooks, enabling **Plan-to-ADR** (v4.3.0+): automatic Architecture Decision Record generation during AI-assisted development.
8
8
 
9
9
  ## Architecture
10
10
 
package/package.json CHANGED
@@ -1,123 +1,87 @@
1
- {
2
- "name": "sqlew",
3
- "description": "Automated ADR (Architecture Decision Records) for Claude Code - MCP server with SQL-backed decision repository",
4
- "version": "4.1.1",
5
- "main": "dist/index.js",
6
- "type": "module",
7
- "bin": {
8
- "sqlew": "dist/index.js",
9
- "sqlew-init-commands": "dist/init-commands.js"
10
- },
11
- "files": [
12
- "dist/",
13
- "scripts/",
14
- "assets/",
15
- "docs/",
16
- "README.md",
17
- "LICENSE",
18
- "NOTICE",
19
- "CHANGELOG.md",
20
- "MIGRATION_v2.md"
21
- ],
22
- "scripts": {
23
- "build": "tsc",
24
- "start": "node dist/index.js",
25
- "cli": "node dist/cli.js",
26
- "inspector": "npx @modelcontextprotocol/inspector node dist/index.js",
27
- "dev": "tsc --watch",
28
- "clean": "rimraf dist",
29
- "rebuild": "npm run clean && npm run build",
30
- "test": "node --test --test-force-exit --import tsx \"src/tests/unit/**/*.test.ts\" \"src/tests/feature/decision/**/*.test.ts\" \"src/tests/feature/task/**/*.test.ts\" \"src/tests/feature/help/**/*.test.ts\" \"src/tests/database/connection/**/*.test.ts\" \"src/tests/database/multi-project/**/*.test.ts\" \"src/tests/database/sql-dump/**/*.test.ts\" \"src/tests/integration/**/*.test.ts\" | node scripts/filter-test-output.js",
31
- "test:verbose": "node --test --experimental-test-coverage --test-force-exit --import tsx \"src/tests/unit/**/*.test.ts\" \"src/tests/feature/decision/**/*.test.ts\" \"src/tests/feature/task/**/*.test.ts\" \"src/tests/feature/help/**/*.test.ts\" \"src/tests/database/connection/**/*.test.ts\" \"src/tests/database/multi-project/**/*.test.ts\" \"src/tests/database/sql-dump/**/*.test.ts\" \"src/tests/integration/**/*.test.ts\"",
32
- "test:ci": "npm run build && npm test",
33
- "test:vcs": "node --test --test-force-exit --import tsx \"src/tests/feature/vcs/**/*.test.ts\" | node scripts/filter-test-output.js",
34
- "test:vcs:verbose": "node --test --test-force-exit --import tsx \"src/tests/feature/vcs/**/*.test.ts\"",
35
- "test:all": "node --test --test-force-exit --import tsx \"src/tests/**/*.test.ts\" | node scripts/filter-test-output.js",
36
- "test:all:verbose": "node --test --experimental-test-coverage --test-force-exit --import tsx \"src/tests/**/*.test.ts\"",
37
- "test:unit": "node --test --test-force-exit --import tsx \"src/tests/unit/**/*.test.ts\" | node scripts/filter-test-output.js",
38
- "test:unit:verbose": "node --test --test-force-exit --import tsx \"src/tests/unit/**/*.test.ts\"",
39
- "test:feature": "node --test --test-force-exit --import tsx \"src/tests/feature/**/*.test.ts\" | node scripts/filter-test-output.js",
40
- "test:feature:verbose": "node --test --test-force-exit --import tsx \"src/tests/feature/**/*.test.ts\"",
41
- "test:database": "node --test --test-force-exit --import tsx \"src/tests/database/connection/**/*.test.ts\" \"src/tests/database/multi-project/**/*.test.ts\" \"src/tests/database/sql-dump/**/*.test.ts\" | node scripts/filter-test-output.js",
42
- "test:database:verbose": "node --test --test-force-exit --import tsx \"src/tests/database/connection/**/*.test.ts\" \"src/tests/database/multi-project/**/*.test.ts\" \"src/tests/database/sql-dump/**/*.test.ts\"",
43
- "test:integration": "node --test --test-force-exit --import tsx \"src/tests/integration/**/*.test.ts\" | node scripts/filter-test-output.js",
44
- "test:integration:verbose": "node --test --test-force-exit --import tsx \"src/tests/integration/**/*.test.ts\"",
45
- "test:decision": "node --test --test-force-exit --import tsx \"src/tests/feature/decision/**/*.test.ts\" | node scripts/filter-test-output.js",
46
- "test:decision:verbose": "node --test --test-force-exit --import tsx \"src/tests/feature/decision/**/*.test.ts\"",
47
- "test:task": "node --test --test-force-exit --import tsx \"src/tests/feature/task/**/*.test.ts\" | node scripts/filter-test-output.js",
48
- "test:task:verbose": "node --test --test-force-exit --import tsx \"src/tests/feature/task/**/*.test.ts\"",
49
- "test:migrations": "echo 'v4 migration tests not yet implemented - use test:native for RDBMS migration tests'",
50
- "test:migrations:verbose": "echo 'v4 migration tests not yet implemented - use test:native:verbose for RDBMS migration tests'",
51
- "test:sql-dump": "node --test --test-force-exit --import tsx \"src/tests/database/sql-dump/**/*.test.ts\" | node scripts/filter-test-output.js",
52
- "test:sql-dump:verbose": "node --test --test-force-exit --import tsx \"src/tests/database/sql-dump/**/*.test.ts\"",
53
- "test:all-features": "npm run build && node dist/tests/integration/all-features.standalone.js",
54
- "test:docker": "npm run build && node --test --test-force-exit dist/tests/docker/**/*.test.js",
55
- "test:native": "npm run build && node --test --test-concurrency=1 --test-force-exit dist/tests/docker/native/**/*.test.js | node scripts/filter-test-output.js",
56
- "test:native:verbose": "npm run build && node --test --test-concurrency=1 --test-force-exit dist/tests/docker/native/**/*.test.js",
57
- "test:migration-upgrade-paths": "echo 'v3 migration tests moved to v3 subdirectory - use test:native for v4 RDBMS tests'",
58
- "test:migration-idempotency": "echo 'v3 migration tests moved to v3 subdirectory - use test:native for v4 RDBMS tests'",
59
- "test:migrations:all": "npm run build && node dist/tests/migrations/test-all-versions-real.js",
60
- "test:migrations:ci": "npm run build && node dist/tests/migrations/test-all-versions-real.js",
61
- "prepare": "husky",
62
- "prepublishOnly": "npm run rebuild",
63
- "knex": "npx tsx node_modules/knex/bin/cli.js --knexfile src/knexfile.ts",
64
- "migrate:make": "npm run knex migrate:make",
65
- "migrate:latest": "npm run knex migrate:latest",
66
- "migrate:rollback": "npm run knex migrate:rollback",
67
- "migrate:rollback:all": "npm run knex migrate:rollback --all",
68
- "migrate:status": "npm run knex migrate:status",
69
- "seed:make": "npm run knex seed:make",
70
- "seed:run": "npm run knex seed:run",
71
- "db:dump": "node dist/cli.js db:dump",
72
- "db:export": "node dist/cli.js db:export",
73
- "db:import": "node dist/cli.js db:import"
74
- },
75
- "engines": {
76
- "node": ">=20.0.0"
77
- },
78
- "repository": {
79
- "type": "git",
80
- "url": "git+https://github.com/sin5ddd/mcp-sqlew.git"
81
- },
82
- "bugs": {
83
- "url": "https://github.com/sin5ddd/mcp-sqlew/issues"
84
- },
85
- "homepage": "https://github.com/sin5ddd/mcp-sqlew#readme",
86
- "keywords": [
87
- "adr",
88
- "architecture-decision-record",
89
- "mcp",
90
- "mcp-server",
91
- "model-context-protocol",
92
- "ai-agents",
93
- "claude-code",
94
- "architectural-decisions",
95
- "decision-management",
96
- "sqlite",
97
- "postgresql",
98
- "mysql",
99
- "token-efficiency"
100
- ],
101
- "author": "sin5ddd",
102
- "license": "Apache-2.0",
103
- "dependencies": {
104
- "@modelcontextprotocol/sdk": "^1.21.1",
105
- "better-sqlite3": "^12.4.1",
106
- "chokidar": "^4.0.3",
107
- "ignore": "^7.0.5",
108
- "knex": "^3.1.0",
109
- "knex-schema-inspector": "^3.1.0",
110
- "mysql2": "^3.15.3",
111
- "pg": "^8.16.3",
112
- "smol-toml": "^1.4.2"
113
- },
114
- "devDependencies": {
115
- "@types/better-sqlite3": "^7.6.0",
116
- "@types/knex": "^0.15.2",
117
- "@types/node": "^20.0.0",
118
- "husky": "^9.1.7",
119
- "rimraf": "^6.1.0",
120
- "tsx": "^4.20.6",
121
- "typescript": "^5.0.0"
122
- }
123
- }
1
+ {
2
+ "name": "sqlew",
3
+ "description": "Automated ADR (Architecture Decision Records) for Claude Code - MCP server with SQL-backed decision repository",
4
+ "version": "4.3.0",
5
+ "main": "dist/index.js",
6
+ "type": "module",
7
+ "bin": {
8
+ "sqlew": "dist/index.js",
9
+ "sqlew-init-commands": "dist/init-commands.js"
10
+ },
11
+ "files": [
12
+ "dist/",
13
+ "scripts/",
14
+ "assets/",
15
+ "docs/",
16
+ "README.md",
17
+ "LICENSE",
18
+ "NOTICE",
19
+ "CHANGELOG.md",
20
+ "MIGRATION_v2.md"
21
+ ],
22
+ "scripts": {
23
+ "build": "tsc",
24
+ "start": "node dist/index.js",
25
+ "dev": "tsc --watch",
26
+ "clean": "rimraf dist",
27
+ "rebuild": "npm run clean && npm run build",
28
+ "test": "node --test --test-force-exit --import tsx \"src/tests/unit/**/*.test.ts\" \"src/tests/feature/**/*.test.ts\" \"src/tests/database/**/*.test.ts\" \"src/tests/integration/**/*.test.ts\" | node scripts/filter-test-output.js",
29
+ "test:ci": "npm run build && npm test",
30
+ "test:native": "npm run build && node --test --test-concurrency=1 --test-force-exit dist/tests/docker/native/**/*.test.js | node scripts/filter-test-output.js",
31
+ "prepare": "husky",
32
+ "prepublishOnly": "npm run rebuild",
33
+ "knex": "npx tsx node_modules/knex/bin/cli.js --knexfile src/knexfile.ts",
34
+ "migrate:make": "npm run knex migrate:make",
35
+ "migrate:latest": "npm run knex migrate:latest",
36
+ "migrate:rollback": "npm run knex migrate:rollback",
37
+ "migrate:status": "npm run knex migrate:status"
38
+ },
39
+ "engines": {
40
+ "node": ">=20.0.0"
41
+ },
42
+ "repository": {
43
+ "type": "git",
44
+ "url": "git+https://github.com/sin5ddd/mcp-sqlew.git"
45
+ },
46
+ "bugs": {
47
+ "url": "https://github.com/sin5ddd/mcp-sqlew/issues"
48
+ },
49
+ "homepage": "https://github.com/sin5ddd/mcp-sqlew#readme",
50
+ "keywords": [
51
+ "adr",
52
+ "architecture-decision-record",
53
+ "mcp",
54
+ "mcp-server",
55
+ "model-context-protocol",
56
+ "ai-agents",
57
+ "claude-code",
58
+ "architectural-decisions",
59
+ "decision-management",
60
+ "sqlite",
61
+ "postgresql",
62
+ "mysql",
63
+ "token-efficiency"
64
+ ],
65
+ "author": "sin5ddd",
66
+ "license": "Apache-2.0",
67
+ "dependencies": {
68
+ "@modelcontextprotocol/sdk": "^1.21.1",
69
+ "better-sqlite3": "^12.4.1",
70
+ "chokidar": "^4.0.3",
71
+ "ignore": "^7.0.5",
72
+ "knex": "^3.1.0",
73
+ "knex-schema-inspector": "^3.1.0",
74
+ "mysql2": "^3.15.3",
75
+ "pg": "^8.16.3",
76
+ "smol-toml": "^1.4.2"
77
+ },
78
+ "devDependencies": {
79
+ "@types/better-sqlite3": "^7.6.0",
80
+ "@types/knex": "^0.15.2",
81
+ "@types/node": "^20.0.0",
82
+ "husky": "^9.1.7",
83
+ "rimraf": "^6.1.0",
84
+ "tsx": "^4.20.6",
85
+ "typescript": "^5.0.0"
86
+ }
87
+ }
@@ -1,6 +0,0 @@
1
- /**
2
- * Git-Aware Auto-Complete Tests (v3.4.0)
3
- * Tests for detectAndCompleteReviewedTasks function
4
- */
5
- export {};
6
- //# sourceMappingURL=git-aware-completion.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-aware-completion.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/feature/vcs/git-aware-completion.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -1,197 +0,0 @@
1
- /**
2
- * Git-Aware Auto-Complete Tests (v3.4.0)
3
- * Tests for detectAndCompleteReviewedTasks function
4
- */
5
- import { describe, it, before, after } from 'node:test';
6
- import assert from 'node:assert';
7
- import { mkdirSync, rmSync, existsSync } from 'fs';
8
- import { join } from 'path';
9
- import { execSync } from 'child_process';
10
- import { initializeDatabase, closeDatabase, setConfigValue } from '../../../database.js';
11
- import { detectAndCompleteReviewedTasks } from '../../../utils/task-stale-detection.js';
12
- import { ProjectContext } from '../../../utils/project-context.js';
13
- const TEST_DIR = join(process.cwd(), 'test-tracking');
14
- // Helper to clean up test directory
15
- function cleanupTestDir() {
16
- if (existsSync(TEST_DIR)) {
17
- rmSync(TEST_DIR, { recursive: true, force: true });
18
- }
19
- }
20
- // Helper to get current git HEAD hash
21
- function getGitHead() {
22
- try {
23
- return execSync('git rev-parse HEAD', { encoding: 'utf-8' }).trim();
24
- }
25
- catch {
26
- return null;
27
- }
28
- }
29
- // Helper to reset git to a specific commit
30
- function resetGitTo(commitHash) {
31
- try {
32
- execSync(`git reset --hard ${commitHash}`, { stdio: 'ignore' });
33
- }
34
- catch {
35
- // Ignore errors (e.g., if reset fails)
36
- }
37
- }
38
- describe('Git-Aware Auto-Complete', () => {
39
- let db;
40
- let initialGitHead = null;
41
- before(async () => {
42
- // Record initial git HEAD to reset after tests (cleanup test commits)
43
- initialGitHead = getGitHead();
44
- // Clean up before tests
45
- cleanupTestDir();
46
- // Configure git user for test commits (required if not set globally)
47
- try {
48
- execSync('git config user.email 2>/dev/null || git config user.email "test@example.com"', { stdio: 'ignore' });
49
- execSync('git config user.name 2>/dev/null || git config user.name "Test User"', { stdio: 'ignore' });
50
- }
51
- catch {
52
- // Ignore - may already be configured
53
- }
54
- // Create test database (in-memory)
55
- db = await initializeDatabase({
56
- databaseType: 'sqlite',
57
- connection: {
58
- filename: ':memory:'
59
- }
60
- });
61
- const knex = db.getKnex();
62
- // Initialize ProjectContext (required for v3.7.0+ multi-project support)
63
- const projectContext = ProjectContext.getInstance();
64
- await projectContext.ensureProject(knex, 'test-git-aware-completion', 'config', {
65
- projectRootPath: process.cwd(),
66
- });
67
- // Add test config for git auto-complete (v4.0: in-memory config)
68
- await setConfigValue(db, 'git_auto_complete_enabled', '1');
69
- await setConfigValue(db, 'require_all_files_committed', '1');
70
- // Create test directory
71
- if (!existsSync(TEST_DIR)) {
72
- mkdirSync(TEST_DIR, { recursive: true });
73
- }
74
- });
75
- after(async () => {
76
- // Close database
77
- if (db) {
78
- await closeDatabase();
79
- }
80
- // Clean up test directory
81
- cleanupTestDir();
82
- // Reset git to initial HEAD to drop test commits
83
- if (initialGitHead) {
84
- resetGitTo(initialGitHead);
85
- }
86
- });
87
- it('should auto-complete task when all watched files are committed', async () => {
88
- const knex = db.getKnex();
89
- const projectId = ProjectContext.getInstance().getProjectId();
90
- // 1. Create a task in waiting_review status with watched files
91
- const statusRow = await knex('v4_task_statuses').where({ name: 'waiting_review' }).first('id');
92
- const [taskId] = await knex('v4_tasks').insert({
93
- title: 'Test git-aware task',
94
- status_id: statusRow.id,
95
- priority: 2,
96
- project_id: projectId,
97
- created_ts: Math.floor(Date.now() / 1000),
98
- updated_ts: Math.floor(Date.now() / 1000)
99
- });
100
- // 2. Add watched files
101
- const [file1Id] = await knex('v4_files').insert({ path: 'test-tracking/file1.ts' });
102
- const [file2Id] = await knex('v4_files').insert({ path: 'test-tracking/file2.ts' });
103
- await knex('v4_task_file_links').insert({ task_id: taskId, file_id: file1Id, project_id: projectId, linked_ts: Math.floor(Date.now() / 1000) });
104
- await knex('v4_task_file_links').insert({ task_id: taskId, file_id: file2Id, project_id: projectId, linked_ts: Math.floor(Date.now() / 1000) });
105
- // 3. Commit the files to git
106
- execSync(`touch ${TEST_DIR}/file1.ts`);
107
- execSync(`touch ${TEST_DIR}/file2.ts`);
108
- execSync(`git add ${TEST_DIR}/file1.ts ${TEST_DIR}/file2.ts`);
109
- execSync(`git commit -m "Test commit for git-aware completion"`);
110
- // 4. Run git-aware auto-complete
111
- const completedCount = await detectAndCompleteReviewedTasks(db);
112
- // 5. Verify task was auto-completed
113
- assert.strictEqual(completedCount, 1, 'Should auto-complete 1 task');
114
- const task = await knex('v4_tasks').where({ id: taskId }).first('status_id');
115
- const doneStatus = await knex('v4_task_statuses').where({ name: 'done' }).first('id');
116
- assert.strictEqual(task.status_id, doneStatus.id, 'Task should be in done status');
117
- });
118
- it('should NOT auto-complete task when only some files are committed', async () => {
119
- const knex = db.getKnex();
120
- const projectId = ProjectContext.getInstance().getProjectId();
121
- // 1. Create a task in waiting_review
122
- const statusRow = await knex('v4_task_statuses').where({ name: 'waiting_review' }).first('id');
123
- const [taskId] = await knex('v4_tasks').insert({
124
- title: 'Partial commit task',
125
- status_id: statusRow.id,
126
- priority: 2,
127
- project_id: projectId,
128
- created_ts: Math.floor(Date.now() / 1000),
129
- updated_ts: Math.floor(Date.now() / 1000)
130
- });
131
- // 2. Add watched files
132
- const [file3Id] = await knex('v4_files').insert({ path: 'test-tracking/file3.ts' });
133
- const [file4Id] = await knex('v4_files').insert({ path: 'test-tracking/file4.ts' });
134
- await knex('v4_task_file_links').insert({ task_id: taskId, file_id: file3Id, project_id: projectId, linked_ts: Math.floor(Date.now() / 1000) });
135
- await knex('v4_task_file_links').insert({ task_id: taskId, file_id: file4Id, project_id: projectId, linked_ts: Math.floor(Date.now() / 1000) });
136
- // 3. Commit only ONE file
137
- execSync(`touch ${TEST_DIR}/file3.ts`);
138
- execSync(`git add ${TEST_DIR}/file3.ts`);
139
- execSync(`git commit -m "Partial commit - only file3"`);
140
- // 4. Run git-aware auto-complete
141
- const completedCount = await detectAndCompleteReviewedTasks(db);
142
- // 5. Verify task was NOT auto-completed (still in waiting_review)
143
- assert.strictEqual(completedCount, 0, 'Should NOT auto-complete task with partial commits');
144
- const task = await knex('v4_tasks').where({ id: taskId }).first('status_id');
145
- const waitingReviewStatus = await knex('v4_task_statuses').where({ name: 'waiting_review' }).first('id');
146
- assert.strictEqual(task.status_id, waitingReviewStatus.id, 'Task should still be in waiting_review status');
147
- });
148
- it('should skip tasks with no watched files', async () => {
149
- const knex = db.getKnex();
150
- const projectId = ProjectContext.getInstance().getProjectId();
151
- // 1. Create a task in waiting_review with NO watched files
152
- const statusRow = await knex('v4_task_statuses').where({ name: 'waiting_review' }).first('id');
153
- const [taskId] = await knex('v4_tasks').insert({
154
- title: 'No watched files task',
155
- status_id: statusRow.id,
156
- priority: 2,
157
- project_id: projectId,
158
- created_ts: Math.floor(Date.now() / 1000),
159
- updated_ts: Math.floor(Date.now() / 1000)
160
- });
161
- // 2. Run git-aware auto-complete
162
- const completedCount = await detectAndCompleteReviewedTasks(db);
163
- // 3. Verify no tasks were auto-completed
164
- assert.strictEqual(completedCount, 0, 'Should skip tasks with no watched files');
165
- const task = await knex('v4_tasks').where({ id: taskId }).first('status_id');
166
- const waitingReviewStatus = await knex('v4_task_statuses').where({ name: 'waiting_review' }).first('id');
167
- assert.strictEqual(task.status_id, waitingReviewStatus.id, 'Task should still be in waiting_review status');
168
- });
169
- it('should respect git_auto_complete_enabled config', async () => {
170
- const knex = db.getKnex();
171
- const projectId = ProjectContext.getInstance().getProjectId();
172
- // 1. Disable git auto-complete (v4.0: in-memory config)
173
- await setConfigValue(db, 'git_auto_complete_enabled', '0');
174
- // 2. Create a task with all files committed
175
- const statusRow = await knex('v4_task_statuses').where({ name: 'waiting_review' }).first('id');
176
- const [taskId] = await knex('v4_tasks').insert({
177
- title: 'Config disabled task',
178
- status_id: statusRow.id,
179
- priority: 2,
180
- project_id: projectId,
181
- created_ts: Math.floor(Date.now() / 1000),
182
- updated_ts: Math.floor(Date.now() / 1000)
183
- });
184
- const [file5Id] = await knex('v4_files').insert({ path: 'test-tracking/file5.ts' });
185
- await knex('v4_task_file_links').insert({ task_id: taskId, file_id: file5Id, project_id: projectId, linked_ts: Math.floor(Date.now() / 1000) });
186
- execSync(`touch ${TEST_DIR}/file5.ts`);
187
- execSync(`git add ${TEST_DIR}/file5.ts`);
188
- execSync(`git commit -m "Test with config disabled"`);
189
- // 3. Run git-aware auto-complete (should skip due to config)
190
- const completedCount = await detectAndCompleteReviewedTasks(db);
191
- // 4. Verify no tasks were auto-completed
192
- assert.strictEqual(completedCount, 0, 'Should respect disabled config');
193
- // Re-enable for other tests (v4.0: in-memory config)
194
- await setConfigValue(db, 'git_auto_complete_enabled', '1');
195
- });
196
- });
197
- //# sourceMappingURL=git-aware-completion.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-aware-completion.test.js","sourceRoot":"","sources":["../../../../src/tests/feature/vcs/git-aware-completion.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Integration Tests - Two-Step Git-Aware Task Workflow (v3.5.2)
3
- * Tests the complete workflow: staging → done, commit → archived
4
- */
5
- export {};
6
- //# sourceMappingURL=two-step-git-completion.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"two-step-git-completion.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/feature/vcs/two-step-git-completion.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}