sqlew 3.7.3 → 3.8.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 (786) hide show
  1. package/CHANGELOG.md +427 -1
  2. package/README.md +71 -2
  3. package/assets/kanban-visualizer.png +0 -0
  4. package/assets/sample-agents/sqlew-scrum-master.md +4 -4
  5. package/dist/adapters/postgresql-adapter.d.ts +197 -5
  6. package/dist/adapters/postgresql-adapter.d.ts.map +1 -1
  7. package/dist/adapters/postgresql-adapter.js +300 -36
  8. package/dist/adapters/postgresql-adapter.js.map +1 -1
  9. package/dist/cli/db-export.d.ts +29 -0
  10. package/dist/cli/db-export.d.ts.map +1 -0
  11. package/dist/cli/db-export.js +251 -0
  12. package/dist/cli/db-export.js.map +1 -0
  13. package/dist/cli/db-import.d.ts +31 -0
  14. package/dist/cli/db-import.d.ts.map +1 -0
  15. package/dist/cli/db-import.js +258 -0
  16. package/dist/cli/db-import.js.map +1 -0
  17. package/dist/cli.d.ts +1 -1
  18. package/dist/cli.js +32 -73
  19. package/dist/cli.js.map +1 -1
  20. package/dist/config/knex/bootstrap/20251025021416_seed_master_data.d.ts.map +1 -1
  21. package/dist/config/knex/bootstrap/20251025021416_seed_master_data.js +158 -45
  22. package/dist/config/knex/bootstrap/20251025021416_seed_master_data.js.map +1 -1
  23. package/dist/config/knex/bootstrap/20251025070349_create_views.d.ts.map +1 -1
  24. package/dist/config/knex/bootstrap/20251025070349_create_views.js +60 -8
  25. package/dist/config/knex/bootstrap/20251025070349_create_views.js.map +1 -1
  26. package/dist/config/knex/enhancements/20251025100000_seed_help_metadata.js +1 -1
  27. package/dist/config/knex/enhancements/20251025100100_seed_remaining_use_cases.js +5 -5
  28. package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.d.ts.map +1 -1
  29. package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.js +9 -1
  30. package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.js.map +1 -1
  31. package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.d.ts.map +1 -1
  32. package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.js +8 -1
  33. package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.js.map +1 -1
  34. package/dist/config/knex/enhancements/20251108000000_add_planning_layers_v3_8_0.d.ts +21 -0
  35. package/dist/config/knex/enhancements/20251108000000_add_planning_layers_v3_8_0.d.ts.map +1 -0
  36. package/dist/config/knex/enhancements/20251108000000_add_planning_layers_v3_8_0.js +73 -0
  37. package/dist/config/knex/enhancements/20251108000000_add_planning_layers_v3_8_0.js.map +1 -0
  38. package/dist/config/knex/enhancements/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.d.ts +19 -0
  39. package/dist/config/knex/enhancements/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.d.ts.map +1 -0
  40. package/dist/config/knex/enhancements/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.js +88 -0
  41. package/dist/config/knex/enhancements/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.js.map +1 -0
  42. package/dist/config/knex/enhancements/20251109000003_token_usage_cross_db_compat_v3_7_5.d.ts +24 -0
  43. package/dist/config/knex/enhancements/20251109000003_token_usage_cross_db_compat_v3_7_5.d.ts.map +1 -0
  44. package/dist/config/knex/enhancements/20251109000003_token_usage_cross_db_compat_v3_7_5.js +79 -0
  45. package/dist/config/knex/enhancements/20251109000003_token_usage_cross_db_compat_v3_7_5.js.map +1 -0
  46. package/dist/config/knex/enhancements/20251109010000_tool_cleanup_v3_8_0.d.ts +27 -0
  47. package/dist/config/knex/enhancements/20251109010000_tool_cleanup_v3_8_0.d.ts.map +1 -0
  48. package/dist/config/knex/enhancements/20251109010000_tool_cleanup_v3_8_0.js +347 -0
  49. package/dist/config/knex/enhancements/20251109010000_tool_cleanup_v3_8_0.js.map +1 -0
  50. package/dist/config/knex/enhancements/20251109020000_fix_missing_help_actions_v3_8_0.d.ts +30 -0
  51. package/dist/config/knex/enhancements/20251109020000_fix_missing_help_actions_v3_8_0.d.ts.map +1 -0
  52. package/dist/config/knex/enhancements/20251109020000_fix_missing_help_actions_v3_8_0.js +232 -0
  53. package/dist/config/knex/enhancements/20251109020000_fix_missing_help_actions_v3_8_0.js.map +1 -0
  54. package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.d.ts.map +1 -1
  55. package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.js +9 -0
  56. package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.js.map +1 -1
  57. package/dist/config/knex/upgrades/20251108000000_hotfix_v_tagged_constraints_project_id.d.ts +14 -0
  58. package/dist/config/knex/upgrades/20251108000000_hotfix_v_tagged_constraints_project_id.d.ts.map +1 -0
  59. package/dist/config/knex/upgrades/20251108000000_hotfix_v_tagged_constraints_project_id.js +97 -0
  60. package/dist/config/knex/upgrades/20251108000000_hotfix_v_tagged_constraints_project_id.js.map +1 -0
  61. package/dist/config/knex/upgrades/20251109000002_multi_project_cross_db_compat_v3_7_5.d.ts +24 -0
  62. package/dist/config/knex/upgrades/20251109000002_multi_project_cross_db_compat_v3_7_5.d.ts.map +1 -0
  63. package/dist/config/knex/upgrades/20251109000002_multi_project_cross_db_compat_v3_7_5.js +303 -0
  64. package/dist/config/knex/upgrades/20251109000002_multi_project_cross_db_compat_v3_7_5.js.map +1 -0
  65. package/dist/constants.d.ts +14 -2
  66. package/dist/constants.d.ts.map +1 -1
  67. package/dist/constants.js +28 -1
  68. package/dist/constants.js.map +1 -1
  69. package/dist/database/config/adapter-factory.d.ts +13 -0
  70. package/dist/database/config/adapter-factory.d.ts.map +1 -0
  71. package/dist/database/config/adapter-factory.js +21 -0
  72. package/dist/database/config/adapter-factory.js.map +1 -0
  73. package/dist/database/config/config-ops.d.ts +34 -0
  74. package/dist/database/config/config-ops.d.ts.map +1 -0
  75. package/dist/database/config/config-ops.js +76 -0
  76. package/dist/database/config/config-ops.js.map +1 -0
  77. package/dist/database/index.d.ts +21 -0
  78. package/dist/database/index.d.ts.map +1 -0
  79. package/dist/database/index.js +31 -0
  80. package/dist/database/index.js.map +1 -0
  81. package/dist/database/initialization/cleanup.d.ts +8 -0
  82. package/dist/database/initialization/cleanup.d.ts.map +1 -0
  83. package/dist/database/initialization/cleanup.js +17 -0
  84. package/dist/database/initialization/cleanup.js.map +1 -0
  85. package/dist/database/initialization/init.d.ts +21 -0
  86. package/dist/database/initialization/init.d.ts.map +1 -0
  87. package/dist/database/initialization/init.js +83 -0
  88. package/dist/database/initialization/init.js.map +1 -0
  89. package/dist/database/operations/deletes.d.ts +10 -0
  90. package/dist/database/operations/deletes.d.ts.map +1 -0
  91. package/dist/database/operations/deletes.js +14 -0
  92. package/dist/database/operations/deletes.js.map +1 -0
  93. package/dist/database/operations/inserts.d.ts +40 -0
  94. package/dist/database/operations/inserts.d.ts.map +1 -0
  95. package/dist/database/operations/inserts.js +202 -0
  96. package/dist/database/operations/inserts.js.map +1 -0
  97. package/dist/database/operations/queries.d.ts +57 -0
  98. package/dist/database/operations/queries.d.ts.map +1 -0
  99. package/dist/database/operations/queries.js +77 -0
  100. package/dist/database/operations/queries.js.map +1 -0
  101. package/dist/database/operations/updates.d.ts +10 -0
  102. package/dist/database/operations/updates.d.ts.map +1 -0
  103. package/dist/database/operations/updates.js +14 -0
  104. package/dist/database/operations/updates.js.map +1 -0
  105. package/dist/database/types.d.ts +5 -0
  106. package/dist/database/types.d.ts.map +1 -0
  107. package/dist/database/types.js +5 -0
  108. package/dist/database/types.js.map +1 -0
  109. package/dist/database.d.ts +4 -144
  110. package/dist/database.d.ts.map +1 -1
  111. package/dist/database.js +5 -461
  112. package/dist/database.js.map +1 -1
  113. package/dist/index.js +29 -777
  114. package/dist/index.js.map +1 -1
  115. package/dist/server/arg-parser.d.ts +40 -0
  116. package/dist/server/arg-parser.d.ts.map +1 -0
  117. package/dist/server/arg-parser.js +137 -0
  118. package/dist/server/arg-parser.js.map +1 -0
  119. package/dist/server/setup.d.ts +31 -0
  120. package/dist/server/setup.d.ts.map +1 -0
  121. package/dist/server/setup.js +186 -0
  122. package/dist/server/setup.js.map +1 -0
  123. package/dist/server/shutdown.d.ts +15 -0
  124. package/dist/server/shutdown.d.ts.map +1 -0
  125. package/dist/server/shutdown.js +42 -0
  126. package/dist/server/shutdown.js.map +1 -0
  127. package/dist/server/tool-handlers.d.ts +10 -0
  128. package/dist/server/tool-handlers.d.ts.map +1 -0
  129. package/dist/server/tool-handlers.js +478 -0
  130. package/dist/server/tool-handlers.js.map +1 -0
  131. package/dist/server/tool-registry.d.ts +11 -0
  132. package/dist/server/tool-registry.d.ts.map +1 -0
  133. package/dist/server/tool-registry.js +225 -0
  134. package/dist/server/tool-registry.js.map +1 -0
  135. package/dist/tests/all-features.test.js +6 -38
  136. package/dist/tests/all-features.test.js.map +1 -1
  137. package/dist/tests/batch-validation-comprehensive.test.d.ts +12 -0
  138. package/dist/tests/batch-validation-comprehensive.test.d.ts.map +1 -0
  139. package/dist/tests/batch-validation-comprehensive.test.js +472 -0
  140. package/dist/tests/batch-validation-comprehensive.test.js.map +1 -0
  141. package/dist/tests/batch-validation-integration.test.d.ts +6 -0
  142. package/dist/tests/batch-validation-integration.test.d.ts.map +1 -0
  143. package/dist/tests/batch-validation-integration.test.js +193 -0
  144. package/dist/tests/batch-validation-integration.test.js.map +1 -0
  145. package/dist/tests/batch-validation.test.d.ts +6 -0
  146. package/dist/tests/batch-validation.test.d.ts.map +1 -0
  147. package/dist/tests/batch-validation.test.js +298 -0
  148. package/dist/tests/batch-validation.test.js.map +1 -0
  149. package/dist/tests/context-modular.test.d.ts +7 -0
  150. package/dist/tests/context-modular.test.d.ts.map +1 -0
  151. package/dist/tests/context-modular.test.js +271 -0
  152. package/dist/tests/context-modular.test.js.map +1 -0
  153. package/dist/tests/decision-batch-validation.test.d.ts +6 -0
  154. package/dist/tests/decision-batch-validation.test.d.ts.map +1 -0
  155. package/dist/tests/decision-batch-validation.test.js +253 -0
  156. package/dist/tests/decision-batch-validation.test.js.map +1 -0
  157. package/dist/tests/help-system.test.js +1 -1
  158. package/dist/tests/help-system.test.js.map +1 -1
  159. package/dist/tests/migrations/test-all-versions-real.js +3 -2
  160. package/dist/tests/migrations/test-all-versions-real.js.map +1 -1
  161. package/dist/tests/multi-project.test.js +2 -2
  162. package/dist/tests/multi-project.test.js.map +1 -1
  163. package/dist/tests/parameter-validation.test.js +2 -16
  164. package/dist/tests/parameter-validation.test.js.map +1 -1
  165. package/dist/tests/tasks.auto-pruning-decision-link.test.js +1 -1
  166. package/dist/tests/tasks.auto-pruning-decision-link.test.js.map +1 -1
  167. package/dist/tests/tasks.file-actions-integration.test.d.ts +10 -0
  168. package/dist/tests/tasks.file-actions-integration.test.d.ts.map +1 -0
  169. package/dist/tests/tasks.file-actions-integration.test.js +162 -0
  170. package/dist/tests/tasks.file-actions-integration.test.js.map +1 -0
  171. package/dist/tests/tasks.file-actions-validation.test.d.ts +6 -0
  172. package/dist/tests/tasks.file-actions-validation.test.d.ts.map +1 -0
  173. package/dist/tests/tasks.file-actions-validation.test.js +221 -0
  174. package/dist/tests/tasks.file-actions-validation.test.js.map +1 -0
  175. package/dist/tools/constraints/actions/add.d.ts +15 -0
  176. package/dist/tools/constraints/actions/add.d.ts.map +1 -0
  177. package/dist/tools/constraints/actions/add.js +101 -0
  178. package/dist/tools/constraints/actions/add.js.map +1 -0
  179. package/dist/tools/constraints/actions/deactivate.d.ts +16 -0
  180. package/dist/tools/constraints/actions/deactivate.d.ts.map +1 -0
  181. package/dist/tools/constraints/actions/deactivate.js +49 -0
  182. package/dist/tools/constraints/actions/deactivate.js.map +1 -0
  183. package/dist/tools/constraints/actions/get.d.ts +16 -0
  184. package/dist/tools/constraints/actions/get.d.ts.map +1 -0
  185. package/dist/tools/constraints/actions/get.js +76 -0
  186. package/dist/tools/constraints/actions/get.js.map +1 -0
  187. package/dist/tools/constraints/help/example.d.ts +9 -0
  188. package/dist/tools/constraints/help/example.d.ts.map +1 -0
  189. package/dist/tools/constraints/help/example.js +144 -0
  190. package/dist/tools/constraints/help/example.js.map +1 -0
  191. package/dist/tools/constraints/help/help.d.ts +9 -0
  192. package/dist/tools/constraints/help/help.d.ts.map +1 -0
  193. package/dist/tools/constraints/help/help.js +31 -0
  194. package/dist/tools/constraints/help/help.js.map +1 -0
  195. package/dist/tools/constraints/index.d.ts +12 -0
  196. package/dist/tools/constraints/index.d.ts.map +1 -0
  197. package/dist/tools/constraints/index.js +13 -0
  198. package/dist/tools/constraints/index.js.map +1 -0
  199. package/dist/tools/constraints/internal/validation.d.ts +11 -0
  200. package/dist/tools/constraints/internal/validation.d.ts.map +1 -0
  201. package/dist/tools/constraints/internal/validation.js +17 -0
  202. package/dist/tools/constraints/internal/validation.js.map +1 -0
  203. package/dist/tools/constraints/types.d.ts +6 -0
  204. package/dist/tools/constraints/types.d.ts.map +1 -0
  205. package/dist/tools/constraints/types.js +6 -0
  206. package/dist/tools/constraints/types.js.map +1 -0
  207. package/dist/tools/context/actions/add-context.d.ts +14 -0
  208. package/dist/tools/context/actions/add-context.d.ts.map +1 -0
  209. package/dist/tools/context/actions/add-context.js +62 -0
  210. package/dist/tools/context/actions/add-context.js.map +1 -0
  211. package/dist/tools/context/actions/batch-set.d.ts +16 -0
  212. package/dist/tools/context/actions/batch-set.d.ts.map +1 -0
  213. package/dist/tools/context/actions/batch-set.js +126 -0
  214. package/dist/tools/context/actions/batch-set.js.map +1 -0
  215. package/dist/tools/context/actions/create-template.d.ts +15 -0
  216. package/dist/tools/context/actions/create-template.d.ts.map +1 -0
  217. package/dist/tools/context/actions/create-template.js +68 -0
  218. package/dist/tools/context/actions/create-template.js.map +1 -0
  219. package/dist/tools/context/actions/get.d.ts +18 -0
  220. package/dist/tools/context/actions/get.d.ts.map +1 -0
  221. package/dist/tools/context/actions/get.js +80 -0
  222. package/dist/tools/context/actions/get.js.map +1 -0
  223. package/dist/tools/context/actions/hard-delete.d.ts +18 -0
  224. package/dist/tools/context/actions/hard-delete.d.ts.map +1 -0
  225. package/dist/tools/context/actions/hard-delete.js +85 -0
  226. package/dist/tools/context/actions/hard-delete.js.map +1 -0
  227. package/dist/tools/context/actions/has-updates.d.ts +16 -0
  228. package/dist/tools/context/actions/has-updates.d.ts.map +1 -0
  229. package/dist/tools/context/actions/has-updates.js +83 -0
  230. package/dist/tools/context/actions/has-updates.js.map +1 -0
  231. package/dist/tools/context/actions/list-contexts.d.ts +14 -0
  232. package/dist/tools/context/actions/list-contexts.d.ts.map +1 -0
  233. package/dist/tools/context/actions/list-contexts.js +43 -0
  234. package/dist/tools/context/actions/list-contexts.js.map +1 -0
  235. package/dist/tools/context/actions/list-templates.d.ts +15 -0
  236. package/dist/tools/context/actions/list-templates.d.ts.map +1 -0
  237. package/dist/tools/context/actions/list-templates.js +47 -0
  238. package/dist/tools/context/actions/list-templates.js.map +1 -0
  239. package/dist/tools/context/actions/list.d.ts +16 -0
  240. package/dist/tools/context/actions/list.d.ts.map +1 -0
  241. package/dist/tools/context/actions/list.js +100 -0
  242. package/dist/tools/context/actions/list.js.map +1 -0
  243. package/dist/tools/context/actions/quick-set.d.ts +21 -0
  244. package/dist/tools/context/actions/quick-set.d.ts.map +1 -0
  245. package/dist/tools/context/actions/quick-set.js +104 -0
  246. package/dist/tools/context/actions/quick-set.js.map +1 -0
  247. package/dist/tools/context/actions/search-advanced.d.ts +15 -0
  248. package/dist/tools/context/actions/search-advanced.d.ts.map +1 -0
  249. package/dist/tools/context/actions/search-advanced.js +140 -0
  250. package/dist/tools/context/actions/search-advanced.js.map +1 -0
  251. package/dist/tools/context/actions/search-layer.d.ts +15 -0
  252. package/dist/tools/context/actions/search-layer.d.ts.map +1 -0
  253. package/dist/tools/context/actions/search-layer.js +106 -0
  254. package/dist/tools/context/actions/search-layer.js.map +1 -0
  255. package/dist/tools/context/actions/search-tags.d.ts +15 -0
  256. package/dist/tools/context/actions/search-tags.d.ts.map +1 -0
  257. package/dist/tools/context/actions/search-tags.js +85 -0
  258. package/dist/tools/context/actions/search-tags.js.map +1 -0
  259. package/dist/tools/context/actions/set-from-template.d.ts +16 -0
  260. package/dist/tools/context/actions/set-from-template.d.ts.map +1 -0
  261. package/dist/tools/context/actions/set-from-template.js +83 -0
  262. package/dist/tools/context/actions/set-from-template.js.map +1 -0
  263. package/dist/tools/context/actions/set.d.ts +16 -0
  264. package/dist/tools/context/actions/set.d.ts.map +1 -0
  265. package/dist/tools/context/actions/set.js +56 -0
  266. package/dist/tools/context/actions/set.js.map +1 -0
  267. package/dist/tools/context/actions/versions.d.ts +15 -0
  268. package/dist/tools/context/actions/versions.d.ts.map +1 -0
  269. package/dist/tools/context/actions/versions.js +69 -0
  270. package/dist/tools/context/actions/versions.js.map +1 -0
  271. package/dist/tools/context/help/example.d.ts +5 -0
  272. package/dist/tools/context/help/example.d.ts.map +1 -0
  273. package/dist/tools/context/help/example.js +96 -0
  274. package/dist/tools/context/help/example.js.map +1 -0
  275. package/dist/tools/context/help/help.d.ts +5 -0
  276. package/dist/tools/context/help/help.d.ts.map +1 -0
  277. package/dist/tools/context/help/help.js +65 -0
  278. package/dist/tools/context/help/help.js.map +1 -0
  279. package/dist/tools/context/index.d.ts +25 -0
  280. package/dist/tools/context/index.d.ts.map +1 -0
  281. package/dist/tools/context/index.js +26 -0
  282. package/dist/tools/context/index.js.map +1 -0
  283. package/dist/tools/context/internal/queries.d.ts +18 -0
  284. package/dist/tools/context/internal/queries.d.ts.map +1 -0
  285. package/dist/tools/context/internal/queries.js +160 -0
  286. package/dist/tools/context/internal/queries.js.map +1 -0
  287. package/dist/tools/context/internal/validation.d.ts +39 -0
  288. package/dist/tools/context/internal/validation.d.ts.map +1 -0
  289. package/dist/tools/context/internal/validation.js +125 -0
  290. package/dist/tools/context/internal/validation.js.map +1 -0
  291. package/dist/tools/context/types.d.ts +6 -0
  292. package/dist/tools/context/types.d.ts.map +1 -0
  293. package/dist/tools/context/types.js +6 -0
  294. package/dist/tools/context/types.js.map +1 -0
  295. package/dist/tools/example/actions/get.d.ts +14 -0
  296. package/dist/tools/example/actions/get.d.ts.map +1 -0
  297. package/dist/tools/example/actions/get.js +40 -0
  298. package/dist/tools/example/actions/get.js.map +1 -0
  299. package/dist/tools/example/actions/list-all.d.ts +13 -0
  300. package/dist/tools/example/actions/list-all.d.ts.map +1 -0
  301. package/dist/tools/example/actions/list-all.js +39 -0
  302. package/dist/tools/example/actions/list-all.js.map +1 -0
  303. package/dist/tools/example/actions/search.d.ts +14 -0
  304. package/dist/tools/example/actions/search.d.ts.map +1 -0
  305. package/dist/tools/example/actions/search.js +52 -0
  306. package/dist/tools/example/actions/search.js.map +1 -0
  307. package/dist/tools/example/help/example.d.ts +6 -0
  308. package/dist/tools/example/help/example.d.ts.map +1 -0
  309. package/dist/tools/example/help/example.js +69 -0
  310. package/dist/tools/example/help/example.js.map +1 -0
  311. package/dist/tools/example/help/help.d.ts +6 -0
  312. package/dist/tools/example/help/help.d.ts.map +1 -0
  313. package/dist/tools/example/help/help.js +133 -0
  314. package/dist/tools/example/help/help.js.map +1 -0
  315. package/dist/tools/example/index.d.ts +11 -0
  316. package/dist/tools/example/index.d.ts.map +1 -0
  317. package/dist/tools/example/index.js +12 -0
  318. package/dist/tools/example/index.js.map +1 -0
  319. package/dist/tools/example/types.d.ts +59 -0
  320. package/dist/tools/example/types.d.ts.map +1 -0
  321. package/dist/tools/example/types.js +6 -0
  322. package/dist/tools/example/types.js.map +1 -0
  323. package/dist/tools/files/actions/check-lock.d.ts +16 -0
  324. package/dist/tools/files/actions/check-lock.d.ts.map +1 -0
  325. package/dist/tools/files/actions/check-lock.js +70 -0
  326. package/dist/tools/files/actions/check-lock.js.map +1 -0
  327. package/dist/tools/files/actions/get.d.ts +16 -0
  328. package/dist/tools/files/actions/get.d.ts.map +1 -0
  329. package/dist/tools/files/actions/get.js +113 -0
  330. package/dist/tools/files/actions/get.js.map +1 -0
  331. package/dist/tools/files/actions/record-batch.d.ts +18 -0
  332. package/dist/tools/files/actions/record-batch.d.ts.map +1 -0
  333. package/dist/tools/files/actions/record-batch.js +114 -0
  334. package/dist/tools/files/actions/record-batch.js.map +1 -0
  335. package/dist/tools/files/actions/record.d.ts +16 -0
  336. package/dist/tools/files/actions/record.d.ts.map +1 -0
  337. package/dist/tools/files/actions/record.js +37 -0
  338. package/dist/tools/files/actions/record.js.map +1 -0
  339. package/dist/tools/files/actions/sqlite-flush.d.ts +27 -0
  340. package/dist/tools/files/actions/sqlite-flush.d.ts.map +1 -0
  341. package/dist/tools/files/actions/sqlite-flush.js +66 -0
  342. package/dist/tools/files/actions/sqlite-flush.js.map +1 -0
  343. package/dist/tools/files/help/example.d.ts +5 -0
  344. package/dist/tools/files/help/example.d.ts.map +1 -0
  345. package/dist/tools/files/help/example.js +98 -0
  346. package/dist/tools/files/help/example.js.map +1 -0
  347. package/dist/tools/files/help/help.d.ts +5 -0
  348. package/dist/tools/files/help/help.d.ts.map +1 -0
  349. package/dist/tools/files/help/help.js +29 -0
  350. package/dist/tools/files/help/help.js.map +1 -0
  351. package/dist/tools/files/index.d.ts +14 -0
  352. package/dist/tools/files/index.d.ts.map +1 -0
  353. package/dist/tools/files/index.js +15 -0
  354. package/dist/tools/files/index.js.map +1 -0
  355. package/dist/tools/files/internal/queries.d.ts +18 -0
  356. package/dist/tools/files/internal/queries.d.ts.map +1 -0
  357. package/dist/tools/files/internal/queries.js +63 -0
  358. package/dist/tools/files/internal/queries.js.map +1 -0
  359. package/dist/tools/files/internal/validation.d.ts +18 -0
  360. package/dist/tools/files/internal/validation.d.ts.map +1 -0
  361. package/dist/tools/files/internal/validation.js +40 -0
  362. package/dist/tools/files/internal/validation.js.map +1 -0
  363. package/dist/tools/files/types.d.ts +6 -0
  364. package/dist/tools/files/types.d.ts.map +1 -0
  365. package/dist/tools/files/types.js +6 -0
  366. package/dist/tools/files/types.js.map +1 -0
  367. package/dist/tools/help/actions/batch-guide.d.ts +14 -0
  368. package/dist/tools/help/actions/batch-guide.d.ts.map +1 -0
  369. package/dist/tools/help/actions/batch-guide.js +59 -0
  370. package/dist/tools/help/actions/batch-guide.js.map +1 -0
  371. package/dist/tools/help/actions/error-recovery.d.ts +12 -0
  372. package/dist/tools/help/actions/error-recovery.d.ts.map +1 -0
  373. package/dist/tools/help/actions/error-recovery.js +107 -0
  374. package/dist/tools/help/actions/error-recovery.js.map +1 -0
  375. package/dist/tools/help/actions/query-action.d.ts +15 -0
  376. package/dist/tools/help/actions/query-action.d.ts.map +1 -0
  377. package/dist/tools/help/actions/query-action.js +15 -0
  378. package/dist/tools/help/actions/query-action.js.map +1 -0
  379. package/dist/tools/help/actions/query-params.d.ts +15 -0
  380. package/dist/tools/help/actions/query-params.d.ts.map +1 -0
  381. package/dist/tools/help/actions/query-params.js +15 -0
  382. package/dist/tools/help/actions/query-params.js.map +1 -0
  383. package/dist/tools/help/actions/query-tool.d.ts +15 -0
  384. package/dist/tools/help/actions/query-tool.d.ts.map +1 -0
  385. package/dist/tools/help/actions/query-tool.js +15 -0
  386. package/dist/tools/help/actions/query-tool.js.map +1 -0
  387. package/dist/tools/help/actions/workflow-hints.d.ts +14 -0
  388. package/dist/tools/help/actions/workflow-hints.d.ts.map +1 -0
  389. package/dist/tools/help/actions/workflow-hints.js +15 -0
  390. package/dist/tools/help/actions/workflow-hints.js.map +1 -0
  391. package/dist/tools/help/help/example.d.ts +6 -0
  392. package/dist/tools/help/help/example.d.ts.map +1 -0
  393. package/dist/tools/help/help/example.js +70 -0
  394. package/dist/tools/help/help/example.js.map +1 -0
  395. package/dist/tools/help/help/help.d.ts +6 -0
  396. package/dist/tools/help/help/help.d.ts.map +1 -0
  397. package/dist/tools/help/help/help.js +67 -0
  398. package/dist/tools/help/help/help.js.map +1 -0
  399. package/dist/tools/help/index.d.ts +14 -0
  400. package/dist/tools/help/index.d.ts.map +1 -0
  401. package/dist/tools/help/index.js +15 -0
  402. package/dist/tools/help/index.js.map +1 -0
  403. package/dist/tools/help/types.d.ts +92 -0
  404. package/dist/tools/help/types.d.ts.map +1 -0
  405. package/dist/tools/help/types.js +6 -0
  406. package/dist/tools/help/types.js.map +1 -0
  407. package/dist/tools/help-queries.d.ts.map +1 -1
  408. package/dist/tools/help-queries.js +1 -0
  409. package/dist/tools/help-queries.js.map +1 -1
  410. package/dist/tools/tasks/actions/add-dependency.d.ts +12 -0
  411. package/dist/tools/tasks/actions/add-dependency.d.ts.map +1 -0
  412. package/dist/tools/tasks/actions/add-dependency.js +124 -0
  413. package/dist/tools/tasks/actions/add-dependency.js.map +1 -0
  414. package/dist/tools/tasks/actions/archive.d.ts +11 -0
  415. package/dist/tools/tasks/actions/archive.d.ts.map +1 -0
  416. package/dist/tools/tasks/actions/archive.js +67 -0
  417. package/dist/tools/tasks/actions/archive.js.map +1 -0
  418. package/dist/tools/tasks/actions/create-batch.d.ts +19 -0
  419. package/dist/tools/tasks/actions/create-batch.d.ts.map +1 -0
  420. package/dist/tools/tasks/actions/create-batch.js +103 -0
  421. package/dist/tools/tasks/actions/create-batch.js.map +1 -0
  422. package/dist/tools/tasks/actions/create.d.ts +16 -0
  423. package/dist/tools/tasks/actions/create.d.ts.map +1 -0
  424. package/dist/tools/tasks/actions/create.js +180 -0
  425. package/dist/tools/tasks/actions/create.js.map +1 -0
  426. package/dist/tools/tasks/actions/get-dependencies.d.ts +12 -0
  427. package/dist/tools/tasks/actions/get-dependencies.d.ts.map +1 -0
  428. package/dist/tools/tasks/actions/get-dependencies.js +41 -0
  429. package/dist/tools/tasks/actions/get-dependencies.js.map +1 -0
  430. package/dist/tools/tasks/actions/get-pruned-files.d.ts +13 -0
  431. package/dist/tools/tasks/actions/get-pruned-files.d.ts.map +1 -0
  432. package/dist/tools/tasks/actions/get-pruned-files.js +45 -0
  433. package/dist/tools/tasks/actions/get-pruned-files.js.map +1 -0
  434. package/dist/tools/tasks/actions/get.d.ts +12 -0
  435. package/dist/tools/tasks/actions/get.d.ts.map +1 -0
  436. package/dist/tools/tasks/actions/get.js +88 -0
  437. package/dist/tools/tasks/actions/get.js.map +1 -0
  438. package/dist/tools/tasks/actions/link-pruned-file.d.ts +13 -0
  439. package/dist/tools/tasks/actions/link-pruned-file.d.ts.map +1 -0
  440. package/dist/tools/tasks/actions/link-pruned-file.js +63 -0
  441. package/dist/tools/tasks/actions/link-pruned-file.js.map +1 -0
  442. package/dist/tools/tasks/actions/link.d.ts +14 -0
  443. package/dist/tools/tasks/actions/link.d.ts.map +1 -0
  444. package/dist/tools/tasks/actions/link.js +118 -0
  445. package/dist/tools/tasks/actions/link.js.map +1 -0
  446. package/dist/tools/tasks/actions/list.d.ts +17 -0
  447. package/dist/tools/tasks/actions/list.d.ts.map +1 -0
  448. package/dist/tools/tasks/actions/list.js +98 -0
  449. package/dist/tools/tasks/actions/list.js.map +1 -0
  450. package/dist/tools/tasks/actions/move.d.ts +12 -0
  451. package/dist/tools/tasks/actions/move.d.ts.map +1 -0
  452. package/dist/tools/tasks/actions/move.js +91 -0
  453. package/dist/tools/tasks/actions/move.js.map +1 -0
  454. package/dist/tools/tasks/actions/remove-dependency.d.ts +12 -0
  455. package/dist/tools/tasks/actions/remove-dependency.d.ts.map +1 -0
  456. package/dist/tools/tasks/actions/remove-dependency.js +36 -0
  457. package/dist/tools/tasks/actions/remove-dependency.js.map +1 -0
  458. package/dist/tools/tasks/actions/update.d.ts +10 -0
  459. package/dist/tools/tasks/actions/update.d.ts.map +1 -0
  460. package/dist/tools/tasks/actions/update.js +186 -0
  461. package/dist/tools/tasks/actions/update.js.map +1 -0
  462. package/dist/tools/tasks/actions/watch-files.d.ts +14 -0
  463. package/dist/tools/tasks/actions/watch-files.d.ts.map +1 -0
  464. package/dist/tools/tasks/actions/watch-files.js +127 -0
  465. package/dist/tools/tasks/actions/watch-files.js.map +1 -0
  466. package/dist/tools/tasks/help/example.d.ts +8 -0
  467. package/dist/tools/tasks/help/example.d.ts.map +1 -0
  468. package/dist/tools/tasks/help/example.js +215 -0
  469. package/dist/tools/tasks/help/example.js.map +1 -0
  470. package/dist/tools/tasks/help/help.d.ts +8 -0
  471. package/dist/tools/tasks/help/help.d.ts.map +1 -0
  472. package/dist/tools/tasks/help/help.js +293 -0
  473. package/dist/tools/tasks/help/help.js.map +1 -0
  474. package/dist/tools/tasks/help/use-case.d.ts +11 -0
  475. package/dist/tools/tasks/help/use-case.d.ts.map +1 -0
  476. package/dist/tools/tasks/help/use-case.js +768 -0
  477. package/dist/tools/tasks/help/use-case.js.map +1 -0
  478. package/dist/tools/tasks/index.d.ts +28 -0
  479. package/dist/tools/tasks/index.d.ts.map +1 -0
  480. package/dist/tools/tasks/index.js +33 -0
  481. package/dist/tools/tasks/index.js.map +1 -0
  482. package/dist/tools/tasks/internal/state-machine.d.ts +16 -0
  483. package/dist/tools/tasks/internal/state-machine.d.ts.map +1 -0
  484. package/dist/tools/tasks/internal/state-machine.js +36 -0
  485. package/dist/tools/tasks/internal/state-machine.js.map +1 -0
  486. package/dist/tools/tasks/internal/task-queries.d.ts +12 -0
  487. package/dist/tools/tasks/internal/task-queries.d.ts.map +1 -0
  488. package/dist/tools/tasks/internal/task-queries.js +61 -0
  489. package/dist/tools/tasks/internal/task-queries.js.map +1 -0
  490. package/dist/tools/tasks/internal/validation.d.ts +47 -0
  491. package/dist/tools/tasks/internal/validation.d.ts.map +1 -0
  492. package/dist/tools/tasks/internal/validation.js +261 -0
  493. package/dist/tools/tasks/internal/validation.js.map +1 -0
  494. package/dist/tools/tasks/types.d.ts +68 -0
  495. package/dist/tools/tasks/types.d.ts.map +1 -0
  496. package/dist/tools/tasks/types.js +45 -0
  497. package/dist/tools/tasks/types.js.map +1 -0
  498. package/dist/tools/tasks/watcher/status.d.ts +9 -0
  499. package/dist/tools/tasks/watcher/status.d.ts.map +1 -0
  500. package/dist/tools/tasks/watcher/status.js +126 -0
  501. package/dist/tools/tasks/watcher/status.js.map +1 -0
  502. package/dist/tools/tasks.d.ts +12 -148
  503. package/dist/tools/tasks.d.ts.map +1 -1
  504. package/dist/tools/tasks.js +12 -2037
  505. package/dist/tools/tasks.js.map +1 -1
  506. package/dist/tools/use_case/actions/get.d.ts +14 -0
  507. package/dist/tools/use_case/actions/get.d.ts.map +1 -0
  508. package/dist/tools/use_case/actions/get.js +15 -0
  509. package/dist/tools/use_case/actions/get.js.map +1 -0
  510. package/dist/tools/use_case/actions/list-all.d.ts +15 -0
  511. package/dist/tools/use_case/actions/list-all.d.ts.map +1 -0
  512. package/dist/tools/use_case/actions/list-all.js +20 -0
  513. package/dist/tools/use_case/actions/list-all.js.map +1 -0
  514. package/dist/tools/use_case/actions/search.d.ts +14 -0
  515. package/dist/tools/use_case/actions/search.d.ts.map +1 -0
  516. package/dist/tools/use_case/actions/search.js +87 -0
  517. package/dist/tools/use_case/actions/search.js.map +1 -0
  518. package/dist/tools/use_case/help/example.d.ts +105 -0
  519. package/dist/tools/use_case/help/example.d.ts.map +1 -0
  520. package/dist/tools/use_case/help/example.js +138 -0
  521. package/dist/tools/use_case/help/example.js.map +1 -0
  522. package/dist/tools/use_case/help/help.d.ts +33 -0
  523. package/dist/tools/use_case/help/help.d.ts.map +1 -0
  524. package/dist/tools/use_case/help/help.js +109 -0
  525. package/dist/tools/use_case/help/help.js.map +1 -0
  526. package/dist/tools/use_case/index.d.ts +11 -0
  527. package/dist/tools/use_case/index.d.ts.map +1 -0
  528. package/dist/tools/use_case/index.js +12 -0
  529. package/dist/tools/use_case/index.js.map +1 -0
  530. package/dist/tools/use_case/types.d.ts +58 -0
  531. package/dist/tools/use_case/types.d.ts.map +1 -0
  532. package/dist/tools/use_case/types.js +6 -0
  533. package/dist/tools/use_case/types.js.map +1 -0
  534. package/dist/types/actions.d.ts +37 -0
  535. package/dist/types/actions.d.ts.map +1 -0
  536. package/dist/types/actions.js +6 -0
  537. package/dist/types/actions.js.map +1 -0
  538. package/dist/types/constraint/params.d.ts +2 -0
  539. package/dist/types/constraint/params.d.ts.map +1 -0
  540. package/dist/types/constraint/params.js +2 -0
  541. package/dist/types/constraint/params.js.map +1 -0
  542. package/dist/types/constraint/responses.d.ts +2 -0
  543. package/dist/types/constraint/responses.d.ts.map +1 -0
  544. package/dist/types/constraint/responses.js +2 -0
  545. package/dist/types/constraint/responses.js.map +1 -0
  546. package/dist/types/decision/batch.d.ts +24 -0
  547. package/dist/types/decision/batch.d.ts.map +1 -0
  548. package/dist/types/decision/batch.js +5 -0
  549. package/dist/types/decision/batch.js.map +1 -0
  550. package/dist/types/decision/params.d.ts +73 -0
  551. package/dist/types/decision/params.d.ts.map +1 -0
  552. package/dist/types/decision/params.js +5 -0
  553. package/dist/types/decision/params.js.map +1 -0
  554. package/dist/types/decision/responses.d.ts +79 -0
  555. package/dist/types/decision/responses.d.ts.map +1 -0
  556. package/dist/types/decision/responses.js +5 -0
  557. package/dist/types/decision/responses.js.map +1 -0
  558. package/dist/types/decision/templates.d.ts +74 -0
  559. package/dist/types/decision/templates.d.ts.map +1 -0
  560. package/dist/types/decision/templates.js +5 -0
  561. package/dist/types/decision/templates.js.map +1 -0
  562. package/dist/types/enums.d.ts +43 -0
  563. package/dist/types/enums.d.ts.map +1 -0
  564. package/dist/types/enums.js +47 -0
  565. package/dist/types/enums.js.map +1 -0
  566. package/dist/types/file/params.d.ts +40 -0
  567. package/dist/types/file/params.d.ts.map +1 -0
  568. package/dist/types/file/params.js +6 -0
  569. package/dist/types/file/params.js.map +1 -0
  570. package/dist/types/file/responses.d.ts +2 -0
  571. package/dist/types/file/responses.d.ts.map +1 -0
  572. package/dist/types/file/responses.js +2 -0
  573. package/dist/types/file/responses.js.map +1 -0
  574. package/dist/types/import-export.d.ts +126 -0
  575. package/dist/types/import-export.d.ts.map +1 -0
  576. package/dist/types/import-export.js +6 -0
  577. package/dist/types/import-export.js.map +1 -0
  578. package/dist/types/index.d.ts +25 -0
  579. package/dist/types/index.d.ts.map +1 -0
  580. package/dist/types/index.js +35 -0
  581. package/dist/types/index.js.map +1 -0
  582. package/dist/types/master-entities.d.ts +33 -0
  583. package/dist/types/master-entities.d.ts.map +1 -0
  584. package/dist/types/master-entities.js +6 -0
  585. package/dist/types/master-entities.js.map +1 -0
  586. package/dist/types/task/params.d.ts +172 -0
  587. package/dist/types/task/params.d.ts.map +1 -0
  588. package/dist/types/task/params.js +8 -0
  589. package/dist/types/task/params.js.map +1 -0
  590. package/dist/types/task/responses.d.ts +334 -0
  591. package/dist/types/task/responses.d.ts.map +1 -0
  592. package/dist/types/task/responses.js +8 -0
  593. package/dist/types/task/responses.js.map +1 -0
  594. package/dist/types/transaction-entities.d.ts +89 -0
  595. package/dist/types/transaction-entities.d.ts.map +1 -0
  596. package/dist/types/transaction-entities.js +5 -0
  597. package/dist/types/transaction-entities.js.map +1 -0
  598. package/dist/types/validation.d.ts +44 -0
  599. package/dist/types/validation.d.ts.map +1 -0
  600. package/dist/types/validation.js +6 -0
  601. package/dist/types/validation.js.map +1 -0
  602. package/dist/types/view-entities.d.ts +61 -0
  603. package/dist/types/view-entities.d.ts.map +1 -0
  604. package/dist/types/view-entities.js +5 -0
  605. package/dist/types/view-entities.js.map +1 -0
  606. package/dist/types.d.ts +133 -10
  607. package/dist/types.d.ts.map +1 -1
  608. package/dist/utils/action-specs/config-specs.d.ts +10 -0
  609. package/dist/utils/action-specs/config-specs.d.ts.map +1 -0
  610. package/dist/utils/action-specs/config-specs.js +12 -0
  611. package/dist/utils/action-specs/config-specs.js.map +1 -0
  612. package/dist/utils/action-specs/constraint-specs.d.ts +9 -0
  613. package/dist/utils/action-specs/constraint-specs.d.ts.map +1 -0
  614. package/dist/utils/action-specs/constraint-specs.js +42 -0
  615. package/dist/utils/action-specs/constraint-specs.js.map +1 -0
  616. package/dist/utils/action-specs/decision-specs.d.ts +9 -0
  617. package/dist/utils/action-specs/decision-specs.d.ts.map +1 -0
  618. package/dist/utils/action-specs/decision-specs.js +194 -0
  619. package/dist/utils/action-specs/decision-specs.js.map +1 -0
  620. package/dist/utils/action-specs/file-specs.d.ts +9 -0
  621. package/dist/utils/action-specs/file-specs.d.ts.map +1 -0
  622. package/dist/utils/action-specs/file-specs.js +56 -0
  623. package/dist/utils/action-specs/file-specs.js.map +1 -0
  624. package/dist/utils/action-specs/index.d.ts +38 -0
  625. package/dist/utils/action-specs/index.d.ts.map +1 -0
  626. package/dist/utils/action-specs/index.js +63 -0
  627. package/dist/utils/action-specs/index.js.map +1 -0
  628. package/dist/utils/action-specs/task-specs.d.ts +9 -0
  629. package/dist/utils/action-specs/task-specs.d.ts.map +1 -0
  630. package/dist/utils/action-specs/task-specs.js +143 -0
  631. package/dist/utils/action-specs/task-specs.js.map +1 -0
  632. package/dist/utils/action-specs/types.d.ts +14 -0
  633. package/dist/utils/action-specs/types.d.ts.map +1 -0
  634. package/dist/utils/action-specs/types.js +9 -0
  635. package/dist/utils/action-specs/types.js.map +1 -0
  636. package/dist/utils/batch-validation.d.ts +156 -0
  637. package/dist/utils/batch-validation.d.ts.map +1 -0
  638. package/dist/utils/batch-validation.example.d.ts +48 -0
  639. package/dist/utils/batch-validation.example.d.ts.map +1 -0
  640. package/dist/utils/batch-validation.example.js +180 -0
  641. package/dist/utils/batch-validation.example.js.map +1 -0
  642. package/dist/utils/batch-validation.js +345 -0
  643. package/dist/utils/batch-validation.js.map +1 -0
  644. package/dist/utils/exporter/export.d.ts +100 -0
  645. package/dist/utils/exporter/export.d.ts.map +1 -0
  646. package/dist/utils/exporter/export.js +363 -0
  647. package/dist/utils/exporter/export.js.map +1 -0
  648. package/dist/utils/importer/import.d.ts +29 -0
  649. package/dist/utils/importer/import.d.ts.map +1 -0
  650. package/dist/utils/importer/import.js +514 -0
  651. package/dist/utils/importer/import.js.map +1 -0
  652. package/dist/utils/importer/master-tables.d.ts +18 -0
  653. package/dist/utils/importer/master-tables.d.ts.map +1 -0
  654. package/dist/utils/importer/master-tables.js +255 -0
  655. package/dist/utils/importer/master-tables.js.map +1 -0
  656. package/dist/utils/importer/topological-sort.d.ts +61 -0
  657. package/dist/utils/importer/topological-sort.d.ts.map +1 -0
  658. package/dist/utils/importer/topological-sort.js +143 -0
  659. package/dist/utils/importer/topological-sort.js.map +1 -0
  660. package/dist/utils/levenshtein.d.ts +18 -0
  661. package/dist/utils/levenshtein.d.ts.map +1 -0
  662. package/dist/utils/levenshtein.js +46 -0
  663. package/dist/utils/levenshtein.js.map +1 -0
  664. package/dist/utils/parameter-validator.d.ts +3 -3
  665. package/dist/utils/parameter-validator.d.ts.map +1 -1
  666. package/dist/utils/parameter-validator.js +3 -39
  667. package/dist/utils/parameter-validator.js.map +1 -1
  668. package/dist/utils/sql-dump/core/dependency-sort.d.ts +16 -0
  669. package/dist/utils/sql-dump/core/dependency-sort.d.ts.map +1 -0
  670. package/dist/utils/sql-dump/core/dependency-sort.js +105 -0
  671. package/dist/utils/sql-dump/core/dependency-sort.js.map +1 -0
  672. package/dist/utils/sql-dump/core/generate-dump.d.ts +13 -0
  673. package/dist/utils/sql-dump/core/generate-dump.d.ts.map +1 -0
  674. package/dist/utils/sql-dump/core/generate-dump.js +181 -0
  675. package/dist/utils/sql-dump/core/generate-dump.js.map +1 -0
  676. package/dist/utils/sql-dump/core/index-export.d.ts +9 -0
  677. package/dist/utils/sql-dump/core/index-export.d.ts.map +1 -0
  678. package/dist/utils/sql-dump/core/index-export.js +173 -0
  679. package/dist/utils/sql-dump/core/index-export.js.map +1 -0
  680. package/dist/utils/sql-dump/core/sequence-reset.d.ts +6 -0
  681. package/dist/utils/sql-dump/core/sequence-reset.d.ts.map +1 -0
  682. package/dist/utils/sql-dump/core/sequence-reset.js +28 -0
  683. package/dist/utils/sql-dump/core/sequence-reset.js.map +1 -0
  684. package/dist/utils/sql-dump/core/table-export.d.ts +2 -0
  685. package/dist/utils/sql-dump/core/table-export.d.ts.map +1 -0
  686. package/dist/utils/sql-dump/core/table-export.js +4 -0
  687. package/dist/utils/sql-dump/core/table-export.js.map +1 -0
  688. package/dist/utils/sql-dump/core/view-export.d.ts +2 -0
  689. package/dist/utils/sql-dump/core/view-export.d.ts.map +1 -0
  690. package/dist/utils/sql-dump/core/view-export.js +4 -0
  691. package/dist/utils/sql-dump/core/view-export.js.map +1 -0
  692. package/dist/utils/sql-dump/formatters/bulk-insert.d.ts +14 -0
  693. package/dist/utils/sql-dump/formatters/bulk-insert.d.ts.map +1 -0
  694. package/dist/utils/sql-dump/formatters/bulk-insert.js +177 -0
  695. package/dist/utils/sql-dump/formatters/bulk-insert.js.map +1 -0
  696. package/dist/utils/sql-dump/formatters/identifiers.d.ts +6 -0
  697. package/dist/utils/sql-dump/formatters/identifiers.d.ts.map +1 -0
  698. package/dist/utils/sql-dump/formatters/identifiers.js +16 -0
  699. package/dist/utils/sql-dump/formatters/identifiers.js.map +1 -0
  700. package/dist/utils/sql-dump/formatters/value-formatter.d.ts +14 -0
  701. package/dist/utils/sql-dump/formatters/value-formatter.d.ts.map +1 -0
  702. package/dist/utils/sql-dump/formatters/value-formatter.js +281 -0
  703. package/dist/utils/sql-dump/formatters/value-formatter.js.map +1 -0
  704. package/dist/utils/sql-dump/generators/controls.d.ts +10 -0
  705. package/dist/utils/sql-dump/generators/controls.d.ts.map +1 -0
  706. package/dist/utils/sql-dump/generators/controls.js +36 -0
  707. package/dist/utils/sql-dump/generators/controls.js.map +1 -0
  708. package/dist/utils/sql-dump/generators/headers.d.ts +6 -0
  709. package/dist/utils/sql-dump/generators/headers.d.ts.map +1 -0
  710. package/dist/utils/sql-dump/generators/headers.js +19 -0
  711. package/dist/utils/sql-dump/generators/headers.js.map +1 -0
  712. package/dist/utils/sql-dump/index.d.ts +14 -0
  713. package/dist/utils/sql-dump/index.d.ts.map +1 -0
  714. package/dist/utils/sql-dump/index.js +16 -0
  715. package/dist/utils/sql-dump/index.js.map +1 -0
  716. package/dist/utils/sql-dump/schema/indexes.d.ts +6 -0
  717. package/dist/utils/sql-dump/schema/indexes.d.ts.map +1 -0
  718. package/dist/utils/sql-dump/schema/indexes.js +42 -0
  719. package/dist/utils/sql-dump/schema/indexes.js.map +1 -0
  720. package/dist/utils/sql-dump/schema/primary-keys.d.ts +6 -0
  721. package/dist/utils/sql-dump/schema/primary-keys.d.ts.map +1 -0
  722. package/dist/utils/sql-dump/schema/primary-keys.js +41 -0
  723. package/dist/utils/sql-dump/schema/primary-keys.js.map +1 -0
  724. package/dist/utils/sql-dump/schema/tables.d.ts +12 -0
  725. package/dist/utils/sql-dump/schema/tables.d.ts.map +1 -0
  726. package/dist/utils/sql-dump/schema/tables.js +370 -0
  727. package/dist/utils/sql-dump/schema/tables.js.map +1 -0
  728. package/dist/utils/sql-dump/schema/views.d.ts +11 -0
  729. package/dist/utils/sql-dump/schema/views.d.ts.map +1 -0
  730. package/dist/utils/sql-dump/schema/views.js +110 -0
  731. package/dist/utils/sql-dump/schema/views.js.map +1 -0
  732. package/dist/utils/sql-dump/types.d.ts +10 -0
  733. package/dist/utils/sql-dump/types.d.ts.map +1 -0
  734. package/dist/utils/sql-dump/types.js +3 -0
  735. package/dist/utils/sql-dump/types.js.map +1 -0
  736. package/docs/AI_AGENT_GUIDE.md +2 -2
  737. package/docs/AUTO_FILE_TRACKING.md +0 -1
  738. package/docs/BATCH_VALIDATION.md +617 -0
  739. package/docs/DATABASE_AUTH.md +1 -2
  740. package/docs/DECISION_TO_TASK_MIGRATION_GUIDE.md +2 -2
  741. package/docs/SHARED_CONCEPTS.md +2 -2
  742. package/docs/SPECIALIZED_AGENTS.md +1 -1
  743. package/docs/TASK_ACTIONS.md +7 -7
  744. package/docs/TASK_MIGRATION.md +5 -5
  745. package/docs/TASK_SYSTEM.md +5 -5
  746. package/docs/TOOL_REFERENCE.md +1 -3
  747. package/docs/WORKFLOWS.md +1 -1
  748. package/docs/{DATABASE_MIGRATION.md → cli/DATABASE_MIGRATION.md} +71 -32
  749. package/docs/cli/DATA_EXPORT_IMPORT.md +400 -0
  750. package/docs/cli/README.md +227 -0
  751. package/package.json +7 -4
  752. package/dist/tools/config.d.ts +0 -58
  753. package/dist/tools/config.d.ts.map +0 -1
  754. package/dist/tools/config.js +0 -281
  755. package/dist/tools/config.js.map +0 -1
  756. package/dist/tools/constraints.d.ts +0 -49
  757. package/dist/tools/constraints.d.ts.map +0 -1
  758. package/dist/tools/constraints.js +0 -378
  759. package/dist/tools/constraints.js.map +0 -1
  760. package/dist/tools/context.d.ts +0 -208
  761. package/dist/tools/context.d.ts.map +0 -1
  762. package/dist/tools/context.js +0 -1661
  763. package/dist/tools/context.js.map +0 -1
  764. package/dist/tools/files.d.ts +0 -54
  765. package/dist/tools/files.d.ts.map +0 -1
  766. package/dist/tools/files.js +0 -478
  767. package/dist/tools/files.js.map +0 -1
  768. package/dist/tools/messaging.d.ts +0 -71
  769. package/dist/tools/messaging.d.ts.map +0 -1
  770. package/dist/tools/messaging.js +0 -483
  771. package/dist/tools/messaging.js.map +0 -1
  772. package/dist/tools/utils.d.ts +0 -70
  773. package/dist/tools/utils.d.ts.map +0 -1
  774. package/dist/tools/utils.js +0 -483
  775. package/dist/tools/utils.js.map +0 -1
  776. package/dist/utils/action-specs.d.ts +0 -46
  777. package/dist/utils/action-specs.d.ts.map +0 -1
  778. package/dist/utils/action-specs.js +0 -527
  779. package/dist/utils/action-specs.js.map +0 -1
  780. package/docs/BASEADAPTER_IMPLEMENTATION.md +0 -399
  781. package/docs/HELP_PREVIEW_COMPARISON.md +0 -259
  782. package/docs/MIGRATION_CHAIN.md +0 -293
  783. package/docs/MIGRATION_v2.md +0 -538
  784. package/docs/MIGRATION_v3.3.md +0 -602
  785. package/docs/MIGRATION_v3.6.0.md +0 -170
  786. package/docs/MULTI_PROJECT_ARCHITECTURE.md +0 -497
package/dist/index.js CHANGED
@@ -6,89 +6,24 @@
6
6
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
7
7
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
8
8
  import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
9
- import { initializeDatabase, closeDatabase, setConfigValue, getAllConfig, getAdapter } from './database.js';
10
- import { CONFIG_KEYS } from './constants.js';
11
- import { loadConfigFile, DEFAULT_CONFIG_PATH } from './config/loader.js';
12
- import { ensureProjectConfig } from './config/writer.js';
13
- import { ProjectContext } from './utils/project-context.js';
14
- import { detectVCS } from './utils/vcs-adapter.js';
15
- import { setDecision, getContext, getDecision, searchByTags, getVersions, searchByLayer, quickSetDecision, searchAdvanced, setDecisionBatch, hasUpdates, setFromTemplate, createTemplate, listTemplates, hardDeleteDecision, addDecisionContextAction, listDecisionContextsAction, decisionHelp, decisionExample } from './tools/context.js';
16
- import { sendMessage, getMessages, markRead, sendMessageBatch, messageHelp, messageExample } from './tools/messaging.js';
17
- import { recordFileChange, getFileChanges, checkFileLock, recordFileChangeBatch, fileHelp, fileExample } from './tools/files.js';
18
- import { addConstraint, getConstraints, deactivateConstraint, constraintHelp, constraintExample } from './tools/constraints.js';
19
- import { getLayerSummary, clearOldData, getStats, getActivityLog, flushWAL, statsHelp, statsExample } from './tools/utils.js';
20
- import { createTask, updateTask, getTask, listTasks, moveTask, linkTask, archiveTask, batchCreateTasks, addDependency, removeDependency, getDependencies, watchFiles, getPrunedFiles, linkPrunedFile, taskHelp, taskExample, watcherStatus } from './tools/tasks.js';
21
- import { FileWatcher } from './watcher/index.js';
22
- import { trackAndReturnHelp } from './utils/help-tracking.js';
23
- import { queryHelpAction, queryHelpParams, queryHelpTool, queryHelpUseCase, queryHelpListUseCases, queryHelpNextActions } from './tools/help-queries.js';
24
- import { initDebugLogger, closeDebugLogger, debugLog, debugLogToolCall, debugLogToolResponse } from './utils/debug-logger.js';
25
- import { handleToolError, handleInitializationError, setupGlobalErrorHandlers, safeConsoleError } from './utils/error-handler.js';
26
- import { ensureSqlewDirectory } from './config/example-generator.js';
27
- import { determineProjectRoot } from './utils/project-root.js';
9
+ import { parseArgs, validateArgs } from './server/arg-parser.js';
10
+ import { getToolRegistry } from './server/tool-registry.js';
11
+ import { handleToolCall } from './server/tool-handlers.js';
12
+ import { initializeServer, startFileWatcher } from './server/setup.js';
13
+ import { registerShutdownHandlers, performCleanup } from './server/shutdown.js';
14
+ import { handleInitializationError, safeConsoleError } from './utils/error-handler.js';
28
15
  // Parse command-line arguments
29
16
  const args = process.argv.slice(2);
30
- const parsedArgs = {};
31
- for (let i = 0; i < args.length; i++) {
32
- const arg = args[i];
33
- if (arg.startsWith('--config=')) {
34
- parsedArgs.configPath = arg.split('=')[1];
35
- }
36
- else if (arg === '--config' && i + 1 < args.length) {
37
- parsedArgs.configPath = args[++i];
38
- }
39
- else if (arg.startsWith('--db-path=')) {
40
- parsedArgs.dbPath = arg.split('=')[1];
41
- }
42
- else if (arg === '--db-path' && i + 1 < args.length) {
43
- parsedArgs.dbPath = args[++i];
44
- }
45
- else if (arg.startsWith('--config-path=')) {
46
- parsedArgs.configPath = arg.split('=')[1];
47
- }
48
- else if (arg === '--config-path' && i + 1 < args.length) {
49
- parsedArgs.configPath = args[++i];
50
- }
51
- else if (arg.startsWith('--autodelete-ignore-weekend=')) {
52
- const value = arg.split('=')[1].toLowerCase();
53
- parsedArgs.autodeleteIgnoreWeekend = value === 'true' || value === '1';
54
- }
55
- else if (arg === '--autodelete-ignore-weekend') {
56
- parsedArgs.autodeleteIgnoreWeekend = true;
57
- }
58
- else if (arg.startsWith('--autodelete-message-hours=')) {
59
- parsedArgs.autodeleteMessageHours = parseInt(arg.split('=')[1], 10);
60
- }
61
- else if (arg === '--autodelete-message-hours' && i + 1 < args.length) {
62
- parsedArgs.autodeleteMessageHours = parseInt(args[++i], 10);
63
- }
64
- else if (arg.startsWith('--autodelete-file-history-days=')) {
65
- parsedArgs.autodeleteFileHistoryDays = parseInt(arg.split('=')[1], 10);
66
- }
67
- else if (arg === '--autodelete-file-history-days' && i + 1 < args.length) {
68
- parsedArgs.autodeleteFileHistoryDays = parseInt(args[++i], 10);
69
- }
70
- else if (arg.startsWith('--debug-log=')) {
71
- parsedArgs.debugLogPath = arg.split('=')[1];
72
- }
73
- else if (arg === '--debug-log' && i + 1 < args.length) {
74
- parsedArgs.debugLogPath = args[++i];
75
- }
76
- else if (arg.startsWith('--project-name=')) {
77
- parsedArgs.projectName = arg.split('=')[1];
78
- }
79
- else if (arg === '--project-name' && i + 1 < args.length) {
80
- parsedArgs.projectName = args[++i];
81
- }
82
- else if (!arg.startsWith('--')) {
83
- // Backward compatibility: first non-flag argument is dbPath
84
- if (!parsedArgs.dbPath) {
85
- parsedArgs.dbPath = arg;
86
- }
87
- }
17
+ const parsedArgs = parseArgs(args);
18
+ // Validate arguments (throws if invalid)
19
+ try {
20
+ validateArgs(parsedArgs);
21
+ }
22
+ catch (error) {
23
+ console.error('Error:', error instanceof Error ? error.message : String(error));
24
+ process.exit(1);
88
25
  }
89
- // Initialize database (will be set after async init completes)
90
- let db;
91
- // Create MCP server (will be initialized in main())
26
+ // Create MCP server
92
27
  const server = new Server({
93
28
  name: 'mcp-sqlew',
94
29
  version: '3.6.6',
@@ -100,719 +35,38 @@ const server = new Server({
100
35
  // Handle tool listing
101
36
  server.setRequestHandler(ListToolsRequestSchema, async () => {
102
37
  return {
103
- tools: [
104
- {
105
- name: 'decision',
106
- description: `**REQUIRED PARAMETER**: action (must be specified in ALL calls)
107
-
108
- Context Management - Store decisions with metadata (tags, layers, versions, scopes)
109
-
110
- Use action: "help" for detailed documentation.
111
- Use action: "example" for comprehensive usage examples.
112
- Use action: "use_case" for practical scenarios and when-to-use guidance.`,
113
- inputSchema: {
114
- type: 'object',
115
- properties: {
116
- action: {
117
- type: 'string',
118
- description: 'Action',
119
- enum: ['set', 'get', 'list', 'search_tags', 'search_layer', 'versions', 'quick_set', 'search_advanced', 'set_batch', 'has_updates', 'set_from_template', 'create_template', 'list_templates', 'hard_delete', 'add_decision_context', 'list_decision_contexts', 'help', 'example', 'use_case']
120
- }
121
- },
122
- required: ['action'],
123
- },
124
- },
125
- {
126
- name: 'message',
127
- description: `⚠️ DEPRECATED (v3.6.6) - This tool is deprecated and will be removed in future versions.
128
-
129
- The messaging system was unused and has been removed. The t_agent_messages table no longer exists.
130
- All actions will return deprecation warnings and are non-operational.
131
-
132
- **REQUIRED PARAMETER**: action (must be specified in ALL calls)
133
-
134
- Use action: "help" for detailed documentation.
135
- Use action: "example" for comprehensive usage examples.
136
- Use action: "use_case" for practical scenarios and when-to-use guidance.`,
137
- inputSchema: {
138
- type: 'object',
139
- properties: {
140
- action: {
141
- type: 'string',
142
- description: 'Action',
143
- enum: ['send', 'get', 'mark_read', 'send_batch', 'help', 'example', 'use_case']
144
- }
145
- },
146
- required: ['action'],
147
- },
148
- },
149
- {
150
- name: 'file',
151
- description: `**REQUIRED PARAMETER**: action (must be specified in ALL calls)
152
-
153
- File Change Tracking - Track file changes with layer classification and lock detection
154
-
155
- Use action: "help" for detailed documentation.
156
- Use action: "example" for comprehensive usage examples.
157
- Use action: "use_case" for practical scenarios and when-to-use guidance.`,
158
- inputSchema: {
159
- type: 'object',
160
- properties: {
161
- action: {
162
- type: 'string',
163
- description: 'Action',
164
- enum: ['record', 'get', 'check_lock', 'record_batch', 'help', 'example', 'use_case']
165
- }
166
- },
167
- required: ['action'],
168
- },
169
- },
170
- {
171
- name: 'constraint',
172
- description: `**REQUIRED PARAMETER**: action (must be specified in ALL calls)
173
-
174
- Constraint Management - Manage architectural rules and requirements
175
-
176
- Use action: "help" for detailed documentation.
177
- Use action: "example" for comprehensive usage examples.
178
- Use action: "use_case" for practical scenarios and when-to-use guidance.`,
179
- inputSchema: {
180
- type: 'object',
181
- properties: {
182
- action: {
183
- type: 'string',
184
- description: 'Action',
185
- enum: ['add', 'get', 'deactivate', 'help', 'example', 'use_case']
186
- }
187
- },
188
- required: ['action'],
189
- },
190
- },
191
- {
192
- name: 'stats',
193
- description: `**REQUIRED PARAMETER**: action (must be specified in ALL calls)
194
-
195
- Statistics & Utilities - View stats, activity logs, manage data cleanup, and WAL checkpoints
196
-
197
- Use action: "help" for detailed documentation.
198
- Use action: "example" for comprehensive usage examples.
199
- Use action: "use_case" for practical scenarios and when-to-use guidance.`,
200
- inputSchema: {
201
- type: 'object',
202
- properties: {
203
- action: {
204
- type: 'string',
205
- description: 'Action',
206
- enum: ['layer_summary', 'db_stats', 'clear', 'activity_log', 'flush', 'help_action', 'help_params', 'help_tool', 'help_use_case', 'help_list_use_cases', 'help_next_actions', 'help', 'example', 'use_case']
207
- }
208
- },
209
- required: ['action'],
210
- },
211
- },
212
- {
213
- name: 'task',
214
- description: `**REQUIRED PARAMETER**: action (must be specified in ALL calls)
215
-
216
- Kanban Task Watcher - AI-optimized task management with auto-stale detection
217
-
218
- Use action: "help" for detailed documentation.
219
- Use action: "example" for comprehensive usage examples.
220
- Use action: "use_case" for practical scenarios and when-to-use guidance.`,
221
- inputSchema: {
222
- type: 'object',
223
- properties: {
224
- action: {
225
- type: 'string',
226
- description: 'Action',
227
- enum: ['create', 'update', 'get', 'list', 'move', 'link', 'archive', 'batch_create', 'add_dependency', 'remove_dependency', 'get_dependencies', 'watch_files', 'watcher', 'help', 'example', 'use_case']
228
- }
229
- },
230
- required: ['action'],
231
- },
232
- },
233
- ],
38
+ tools: getToolRegistry(),
234
39
  };
235
40
  });
236
41
  // Handle tool execution
237
42
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
238
- const { name, arguments: args } = request.params;
239
- const params = args;
240
- const action = params.action || 'N/A';
241
- // Debug logging: Tool call
242
- debugLogToolCall(name, action, params);
243
- try {
244
- let result;
245
- switch (name) {
246
- case 'decision': {
247
- const action = params.action;
248
- switch (action) {
249
- case 'set':
250
- result = await setDecision(params);
251
- break;
252
- case 'get':
253
- result = await getDecision(params);
254
- break;
255
- case 'list':
256
- result = await getContext(params);
257
- break;
258
- case 'search_tags':
259
- result = await searchByTags({ tags: params.tags, match_mode: params.tag_match, status: params.status, layer: params.layer });
260
- break;
261
- case 'search_layer':
262
- result = await searchByLayer({ layer: params.layer, status: params.status, include_tags: params.include_tags });
263
- break;
264
- case 'versions':
265
- result = await getVersions(params);
266
- break;
267
- case 'quick_set':
268
- result = await quickSetDecision(params);
269
- break;
270
- case 'search_advanced':
271
- result = await searchAdvanced({
272
- layers: params.layers,
273
- tags_all: params.tags_all,
274
- tags_any: params.tags_any,
275
- exclude_tags: params.exclude_tags,
276
- scopes: params.scopes,
277
- updated_after: params.updated_after,
278
- updated_before: params.updated_before,
279
- decided_by: params.decided_by,
280
- statuses: params.statuses,
281
- search_text: params.search_text,
282
- sort_by: params.sort_by,
283
- sort_order: params.sort_order,
284
- limit: params.limit,
285
- offset: params.offset
286
- });
287
- break;
288
- case 'set_batch':
289
- result = await setDecisionBatch({ decisions: params.decisions, atomic: params.atomic });
290
- break;
291
- case 'has_updates':
292
- result = await hasUpdates({ agent_name: params.agent_name, since_timestamp: params.since_timestamp });
293
- break;
294
- case 'set_from_template':
295
- result = await setFromTemplate(params);
296
- break;
297
- case 'create_template':
298
- result = await createTemplate(params);
299
- break;
300
- case 'list_templates':
301
- result = await listTemplates(params);
302
- break;
303
- case 'hard_delete':
304
- result = await hardDeleteDecision(params);
305
- break;
306
- case 'add_decision_context':
307
- result = await addDecisionContextAction(params);
308
- break;
309
- case 'list_decision_contexts':
310
- result = await listDecisionContextsAction(params);
311
- break;
312
- case 'help':
313
- const helpContent = decisionHelp();
314
- trackAndReturnHelp('decision', 'help', JSON.stringify(helpContent));
315
- result = helpContent;
316
- break;
317
- case 'example':
318
- const exampleContent = decisionExample();
319
- trackAndReturnHelp('decision', 'example', JSON.stringify(exampleContent));
320
- result = exampleContent;
321
- break;
322
- case 'use_case':
323
- result = await queryHelpListUseCases(getAdapter(), {
324
- category: params.category,
325
- complexity: params.complexity,
326
- limit: params.limit,
327
- offset: params.offset
328
- });
329
- break;
330
- default: throw new Error(`Unknown action: ${action}`);
331
- }
332
- break;
333
- }
334
- case 'message': {
335
- const action = params.action;
336
- switch (action) {
337
- case 'send':
338
- result = await sendMessage(params);
339
- break;
340
- case 'get':
341
- result = await getMessages(params);
342
- break;
343
- case 'mark_read':
344
- result = await markRead(params);
345
- break;
346
- case 'send_batch':
347
- result = await sendMessageBatch({ messages: params.messages, atomic: params.atomic });
348
- break;
349
- case 'help':
350
- const msgHelpContent = messageHelp();
351
- trackAndReturnHelp('message', 'help', JSON.stringify(msgHelpContent));
352
- result = msgHelpContent;
353
- break;
354
- case 'example':
355
- const msgExampleContent = messageExample();
356
- trackAndReturnHelp('message', 'example', JSON.stringify(msgExampleContent));
357
- result = msgExampleContent;
358
- break;
359
- case 'use_case':
360
- result = await queryHelpListUseCases(getAdapter(), {
361
- category: params.category,
362
- complexity: params.complexity,
363
- limit: params.limit,
364
- offset: params.offset
365
- });
366
- break;
367
- default: throw new Error(`Unknown action: ${action}`);
368
- }
369
- break;
370
- }
371
- case 'file': {
372
- const action = params.action;
373
- switch (action) {
374
- case 'record':
375
- result = await recordFileChange(params);
376
- break;
377
- case 'get':
378
- result = await getFileChanges(params);
379
- break;
380
- case 'check_lock':
381
- result = await checkFileLock(params);
382
- break;
383
- case 'record_batch':
384
- result = await recordFileChangeBatch({ file_changes: params.file_changes, atomic: params.atomic });
385
- break;
386
- case 'help':
387
- const fileHelpContent = fileHelp();
388
- trackAndReturnHelp('file', 'help', JSON.stringify(fileHelpContent));
389
- result = fileHelpContent;
390
- break;
391
- case 'example':
392
- const fileExampleContent = fileExample();
393
- trackAndReturnHelp('file', 'example', JSON.stringify(fileExampleContent));
394
- result = fileExampleContent;
395
- break;
396
- case 'use_case':
397
- result = await queryHelpListUseCases(getAdapter(), {
398
- category: params.category,
399
- complexity: params.complexity,
400
- limit: params.limit,
401
- offset: params.offset
402
- });
403
- break;
404
- default: throw new Error(`Unknown action: ${action}`);
405
- }
406
- break;
407
- }
408
- case 'constraint': {
409
- const action = params.action;
410
- switch (action) {
411
- case 'add':
412
- result = await addConstraint(params);
413
- break;
414
- case 'get':
415
- result = await getConstraints(params);
416
- break;
417
- case 'deactivate':
418
- result = await deactivateConstraint(params);
419
- break;
420
- case 'help':
421
- const constraintHelpContent = constraintHelp();
422
- trackAndReturnHelp('constraint', 'help', JSON.stringify(constraintHelpContent));
423
- result = constraintHelpContent;
424
- break;
425
- case 'example':
426
- const constraintExampleContent = constraintExample();
427
- trackAndReturnHelp('constraint', 'example', JSON.stringify(constraintExampleContent));
428
- result = constraintExampleContent;
429
- break;
430
- case 'use_case':
431
- result = await queryHelpListUseCases(getAdapter(), {
432
- category: params.category,
433
- complexity: params.complexity,
434
- limit: params.limit,
435
- offset: params.offset
436
- });
437
- break;
438
- default: throw new Error(`Unknown action: ${action}`);
439
- }
440
- break;
441
- }
442
- case 'stats': {
443
- const action = params.action;
444
- switch (action) {
445
- case 'layer_summary':
446
- result = await getLayerSummary();
447
- break;
448
- case 'db_stats':
449
- result = await getStats();
450
- break;
451
- case 'clear':
452
- result = await clearOldData(params);
453
- break;
454
- case 'activity_log':
455
- result = await getActivityLog({
456
- since: params.since,
457
- agent_names: params.agent_names,
458
- actions: params.actions,
459
- limit: params.limit,
460
- });
461
- break;
462
- case 'flush':
463
- result = await flushWAL();
464
- break;
465
- case 'help_action':
466
- if (!params.target_tool || !params.target_action) {
467
- result = { error: 'Parameters "target_tool" and "target_action" are required' };
468
- }
469
- else {
470
- result = await queryHelpAction(getAdapter(), params.target_tool, params.target_action);
471
- }
472
- break;
473
- case 'help_params':
474
- if (!params.target_tool || !params.target_action) {
475
- result = { error: 'Parameters "target_tool" and "target_action" are required' };
476
- }
477
- else {
478
- result = await queryHelpParams(getAdapter(), params.target_tool, params.target_action);
479
- }
480
- break;
481
- case 'help_tool':
482
- if (!params.tool) {
483
- result = { error: 'Parameter "tool" is required' };
484
- }
485
- else {
486
- result = await queryHelpTool(getAdapter(), params.tool);
487
- }
488
- break;
489
- case 'help_use_case':
490
- if (!params.use_case_id) {
491
- result = { error: 'Parameter "use_case_id" is required' };
492
- }
493
- else {
494
- result = await queryHelpUseCase(getAdapter(), params.use_case_id);
495
- }
496
- break;
497
- case 'help_list_use_cases':
498
- result = await queryHelpListUseCases(getAdapter(), {
499
- category: params.category,
500
- complexity: params.complexity,
501
- limit: params.limit,
502
- offset: params.offset
503
- });
504
- break;
505
- case 'help_next_actions':
506
- if (!params.target_tool || !params.target_action) {
507
- result = { error: 'Parameters "target_tool" and "target_action" are required' };
508
- }
509
- else {
510
- result = await queryHelpNextActions(getAdapter(), params.target_tool, params.target_action);
511
- }
512
- break;
513
- case 'help':
514
- const statsHelpContent = statsHelp();
515
- trackAndReturnHelp('stats', 'help', JSON.stringify(statsHelpContent));
516
- result = statsHelpContent;
517
- break;
518
- case 'example':
519
- const statsExampleContent = statsExample();
520
- trackAndReturnHelp('stats', 'example', JSON.stringify(statsExampleContent));
521
- result = statsExampleContent;
522
- break;
523
- case 'use_case':
524
- result = await queryHelpListUseCases(getAdapter(), {
525
- category: params.category,
526
- complexity: params.complexity,
527
- limit: params.limit,
528
- offset: params.offset
529
- });
530
- break;
531
- default: throw new Error(`Unknown action: ${action}`);
532
- }
533
- break;
534
- }
535
- case 'task': {
536
- const action = params.action;
537
- switch (action) {
538
- case 'create':
539
- result = await createTask(params);
540
- break;
541
- case 'update':
542
- result = await updateTask(params);
543
- break;
544
- case 'get':
545
- result = await getTask(params);
546
- break;
547
- case 'list':
548
- result = await listTasks(params);
549
- break;
550
- case 'move':
551
- result = await moveTask(params);
552
- break;
553
- case 'link':
554
- result = await linkTask(params);
555
- break;
556
- case 'archive':
557
- result = await archiveTask(params);
558
- break;
559
- case 'batch_create':
560
- result = await batchCreateTasks({ tasks: params.tasks, atomic: params.atomic });
561
- break;
562
- case 'add_dependency':
563
- result = await addDependency(params);
564
- break;
565
- case 'remove_dependency':
566
- result = await removeDependency(params);
567
- break;
568
- case 'get_dependencies':
569
- result = await getDependencies(params);
570
- break;
571
- case 'watch_files':
572
- result = await watchFiles(params);
573
- break;
574
- case 'get_pruned_files':
575
- result = await getPrunedFiles(params);
576
- break;
577
- case 'link_pruned_file':
578
- result = await linkPrunedFile(params);
579
- break;
580
- case 'watcher':
581
- result = await watcherStatus(params);
582
- break;
583
- case 'help':
584
- const taskHelpContent = taskHelp();
585
- trackAndReturnHelp('task', 'help', JSON.stringify(taskHelpContent));
586
- result = taskHelpContent;
587
- break;
588
- case 'example':
589
- const taskExampleContent = taskExample();
590
- trackAndReturnHelp('task', 'example', JSON.stringify(taskExampleContent));
591
- result = taskExampleContent;
592
- break;
593
- case 'use_case':
594
- result = await queryHelpListUseCases(getAdapter(), {
595
- category: params.category,
596
- complexity: params.complexity,
597
- limit: params.limit,
598
- offset: params.offset
599
- });
600
- break;
601
- default: throw new Error(`Unknown action: ${action}`);
602
- }
603
- break;
604
- }
605
- default:
606
- throw new Error(`Unknown tool: ${name}`);
607
- }
608
- // Debug logging: Success
609
- debugLogToolResponse(name, action, true, result);
610
- return {
611
- content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
612
- };
613
- }
614
- catch (error) {
615
- // Use centralized error handler (stack goes to logs only, not returned to client)
616
- const errorResult = handleToolError(name, action, error, params);
617
- // Check if this is a structured validation error or a simple message
618
- const errorResponse = errorResult.message !== undefined
619
- ? { error: errorResult.message } // Regular error: wrap message
620
- : errorResult; // Validation error: use structured object as-is
621
- debugLogToolResponse(name, action, false, undefined, errorResponse);
622
- return {
623
- content: [{ type: 'text', text: JSON.stringify(errorResponse, null, 2) }],
624
- isError: true,
625
- };
626
- }
43
+ return await handleToolCall(request);
627
44
  });
628
45
  // Setup centralized global error handlers
629
- setupGlobalErrorHandlers(() => {
630
- debugLog('INFO', 'Shutting down gracefully');
631
- try {
632
- const watcher = FileWatcher.getInstance();
633
- watcher.stop();
634
- }
635
- catch (error) {
636
- // Ignore watcher errors during shutdown
637
- }
638
- closeDatabase();
639
- closeDebugLogger();
640
- });
46
+ registerShutdownHandlers();
641
47
  // Start server with stdio transport
642
48
  async function main() {
643
49
  let debugLoggerInitialized = false;
644
50
  try {
645
- // 0. Determine project root and load config (BEFORE logger init)
646
- // This must happen first to get debug log path from config
647
- const initialProjectRoot = determineProjectRoot({
648
- cliDbPath: parsedArgs.dbPath,
649
- cliConfigPath: parsedArgs.configPath,
650
- });
651
- const fileConfig = loadConfigFile(initialProjectRoot, parsedArgs.configPath);
652
- const finalProjectRoot = determineProjectRoot({
653
- cliDbPath: parsedArgs.dbPath,
654
- cliConfigPath: parsedArgs.configPath,
655
- configDbPath: fileConfig.database?.path,
656
- });
657
- ensureSqlewDirectory(finalProjectRoot);
658
- // Determine final database path
659
- // Priority: CLI --db-path > config file database.path > default
660
- const dbPath = parsedArgs.dbPath || fileConfig.database?.path;
661
- // 1. Initialize debug logger (file-based logging, after config loaded)
662
- // Priority: CLI arg > environment variable > config file
663
- const debugLogPath = parsedArgs.debugLogPath || process.env.SQLEW_DEBUG || fileConfig.debug?.log_path;
664
- const debugLogLevel = fileConfig.debug?.log_level || 'info';
665
- initDebugLogger(debugLogPath, debugLogLevel);
51
+ // Initialize server (database, config, project context)
52
+ const setupResult = await initializeServer(parsedArgs);
666
53
  debugLoggerInitialized = true;
667
- debugLog('INFO', 'Project root determined', { finalProjectRoot });
668
- debugLog('INFO', 'Config loaded', { dbPath });
669
- // 2. Initialize database (SILENT - no stderr writes yet)
670
- // Note: .sqlew directory already created above with correct project root
671
- // Build config from fileConfig (which includes database type and auth for multi-RDBMS)
672
- const isExplicitRDBMS = fileConfig.database?.type === 'mysql'
673
- || fileConfig.database?.type === 'postgres';
674
- if (isExplicitRDBMS) {
675
- // User explicitly configured MySQL/PostgreSQL
676
- // Note: Config uses 'postgres' but initializeDatabase expects 'postgresql'
677
- const dbType = fileConfig.database.type === 'postgres' ? 'postgresql' : fileConfig.database.type;
678
- const config = {
679
- databaseType: dbType,
680
- connection: {
681
- ...fileConfig.database.connection,
682
- user: fileConfig.database.auth?.user,
683
- password: fileConfig.database.auth?.password,
684
- },
685
- };
686
- try {
687
- db = await initializeDatabase(config);
688
- // Test connection immediately - fail fast if connection is bad
689
- await db.getKnex().raw('SELECT 1');
690
- debugLog('INFO', `Successfully connected to ${config.databaseType}`);
691
- }
692
- catch (error) {
693
- // Connection failed - EXIT WITHOUT SQLITE FALLBACK
694
- const errorMsg = `❌ Failed to connect to ${config.databaseType}: ${error.message}`;
695
- debugLog('ERROR', errorMsg, { error, stack: error.stack });
696
- console.error(errorMsg);
697
- console.error('Please check your .sqlew/config.toml database configuration and try again.');
698
- console.error('Connection details: host=' + config.connection.host + ', database=' + config.connection.database);
699
- process.exit(1);
700
- }
701
- }
702
- else {
703
- // SQLite (default or explicit) - backwards compatible behavior
704
- const config = dbPath
705
- ? { connection: { filename: dbPath } }
706
- : undefined;
707
- db = await initializeDatabase(config);
708
- }
709
- // 3. Apply CLI config overrides (SILENT)
710
- if (parsedArgs.autodeleteIgnoreWeekend !== undefined) {
711
- await setConfigValue(db, CONFIG_KEYS.AUTODELETE_IGNORE_WEEKEND, parsedArgs.autodeleteIgnoreWeekend ? '1' : '0');
712
- }
713
- if (parsedArgs.autodeleteMessageHours !== undefined) {
714
- await setConfigValue(db, CONFIG_KEYS.AUTODELETE_MESSAGE_HOURS, String(parsedArgs.autodeleteMessageHours));
715
- }
716
- if (parsedArgs.autodeleteFileHistoryDays !== undefined) {
717
- await setConfigValue(db, CONFIG_KEYS.AUTODELETE_FILE_HISTORY_DAYS, String(parsedArgs.autodeleteFileHistoryDays));
718
- }
719
- // 4. Read config values for diagnostics (SILENT)
720
- const configValues = await getAllConfig(db);
721
- const ignoreWeekend = configValues[CONFIG_KEYS.AUTODELETE_IGNORE_WEEKEND] === '1';
722
- const messageHours = configValues[CONFIG_KEYS.AUTODELETE_MESSAGE_HOURS];
723
- const fileHistoryDays = configValues[CONFIG_KEYS.AUTODELETE_FILE_HISTORY_DAYS];
724
- // 4.5. Initialize ProjectContext (v3.7.0+ multi-project support)
725
- // Must happen AFTER database init, BEFORE server.connect()
726
- // Satisfies Constraints #23, #24, #41
727
- const knex = getAdapter().getKnex();
728
- let projectName;
729
- let detectionSource = 'directory';
730
- // Priority order: CLI --project-name > config.toml > git remote > directory name
731
- if (parsedArgs.projectName) {
732
- // CLI argument takes highest priority (for testing/override scenarios)
733
- projectName = parsedArgs.projectName;
734
- detectionSource = 'cli';
735
- debugLog('INFO', 'Project name from CLI argument', { projectName });
736
- }
737
- else if (fileConfig.project?.name) {
738
- // Config.toml is authoritative source (Constraint #24)
739
- projectName = fileConfig.project.name;
740
- detectionSource = 'config';
741
- debugLog('INFO', 'Project name from config.toml', { projectName });
742
- }
743
- else {
744
- // Detect from VCS or directory
745
- const vcsAdapter = await detectVCS(finalProjectRoot);
746
- if (vcsAdapter) {
747
- const detectedName = await vcsAdapter.extractProjectName();
748
- if (detectedName) {
749
- projectName = detectedName;
750
- detectionSource = 'git';
751
- debugLog('INFO', 'Project name detected from VCS', { projectName, vcs: vcsAdapter.getVCSType() });
752
- }
753
- else {
754
- // Fallback to directory name
755
- const dirSegments = finalProjectRoot.split('/').filter(s => s.length > 0);
756
- projectName = dirSegments[dirSegments.length - 1] || 'default';
757
- detectionSource = 'directory';
758
- debugLog('INFO', 'Project name from directory', { projectName });
759
- }
760
- }
761
- else {
762
- // No VCS detected, use directory name
763
- const dirSegments = finalProjectRoot.split('/').filter(s => s.length > 0);
764
- projectName = dirSegments[dirSegments.length - 1] || 'default';
765
- detectionSource = 'directory';
766
- debugLog('INFO', 'Project name from directory (no VCS)', { projectName });
767
- }
768
- // Write to config.toml if not present AND not CLI override (Constraint #23)
769
- // Don't write if CLI override is used (temporary override scenario)
770
- if (!parsedArgs.projectName) {
771
- const configWritten = ensureProjectConfig(finalProjectRoot, projectName, {
772
- configPath: parsedArgs.configPath,
773
- });
774
- if (configWritten) {
775
- debugLog('INFO', 'Project name written to config.toml', {
776
- projectName,
777
- detectionSource,
778
- configPath: parsedArgs.configPath || DEFAULT_CONFIG_PATH
779
- });
780
- }
781
- }
782
- }
783
- // Initialize ProjectContext singleton (Constraint #41)
784
- const projectContext = ProjectContext.getInstance();
785
- await projectContext.ensureProject(knex, projectName, detectionSource, {
786
- projectRootPath: finalProjectRoot,
787
- });
788
- debugLog('INFO', 'ProjectContext initialized', {
789
- projectId: projectContext.getProjectId(),
790
- projectName: projectContext.getProjectName(),
791
- });
792
- // Log successful initialization
793
- debugLog('INFO', 'MCP Shared Context Server initialized', {
794
- dbPath,
795
- projectId: projectContext.getProjectId(),
796
- projectName: projectContext.getProjectName(),
797
- autoDeleteConfig: { messageHours, fileHistoryDays, ignoreWeekend },
798
- debugLogLevel: debugLogLevel
799
- });
800
- // 5. Connect MCP server transport FIRST (before any stderr writes)
54
+ // Connect MCP server transport FIRST (before any stderr writes)
801
55
  // This prevents EPIPE errors with clients expecting pure JSON-RPC protocol
802
56
  const transport = new StdioServerTransport();
803
57
  await server.connect(transport);
804
- // 6. NOW safe to write diagnostic messages (using EPIPE-safe wrapper)
58
+ // NOW safe to write diagnostic messages (using EPIPE-safe wrapper)
805
59
  safeConsoleError('✓ MCP Shared Context Server running on stdio');
60
+ const dbPath = parsedArgs.dbPath || setupResult.fileConfig.database?.path;
806
61
  if (dbPath) {
807
62
  const source = parsedArgs.dbPath ? 'CLI' : 'config file';
808
63
  safeConsoleError(` Database: ${dbPath} (from ${source})`);
809
64
  }
810
- safeConsoleError(` Project: ${projectContext.getProjectName()} (ID: ${projectContext.getProjectId()}, source: ${detectionSource})`);
811
- safeConsoleError(` Auto-delete config: messages=${messageHours}h, file_history=${fileHistoryDays}d, ignore_weekend=${ignoreWeekend}`);
812
- // 7. Start file watcher for auto-task-tracking (after database is ready)
65
+ safeConsoleError(` Project: ${setupResult.projectContext.getProjectName()} (ID: ${setupResult.projectContext.getProjectId()}, source: ${setupResult.detectionSource})`);
66
+ safeConsoleError(` Auto-delete config: messages=${setupResult.configValues.messageHours}h, file_history=${setupResult.configValues.fileHistoryDays}d, ignore_weekend=${setupResult.configValues.ignoreWeekend}`);
67
+ // Start file watcher for auto-task-tracking (after database is ready)
813
68
  try {
814
- const watcher = FileWatcher.getInstance();
815
- await watcher.start();
69
+ await startFileWatcher();
816
70
  }
817
71
  catch (error) {
818
72
  safeConsoleError('⚠ Failed to start file watcher:', error);
@@ -829,8 +83,7 @@ async function main() {
829
83
  }
830
84
  // Use centralized initialization error handler (writes to log file)
831
85
  handleInitializationError(error);
832
- closeDatabase();
833
- closeDebugLogger();
86
+ performCleanup();
834
87
  process.exit(1);
835
88
  }
836
89
  }
@@ -838,8 +91,7 @@ main().catch((error) => {
838
91
  // Use centralized initialization error handler (writes to log file)
839
92
  safeConsoleError('\n❌ FATAL ERROR:');
840
93
  handleInitializationError(error);
841
- closeDatabase();
842
- closeDebugLogger();
94
+ performCleanup();
843
95
  process.exit(1);
844
96
  });
845
97
  //# sourceMappingURL=index.js.map