sqlew 4.3.1 → 5.0.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 (841) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/LICENSE +1 -1
  3. package/NOTICE +2 -2
  4. package/README.md +112 -42
  5. package/assets/claude-md-snippets/plan-mode-integration.md +54 -0
  6. package/assets/claude-md-snippets/queue-monitoring.md +84 -0
  7. package/dist/backend/backend-factory.d.ts +67 -0
  8. package/dist/backend/backend-factory.d.ts.map +1 -0
  9. package/dist/backend/backend-factory.js +171 -0
  10. package/dist/backend/backend-factory.js.map +1 -0
  11. package/dist/backend/index.d.ts +12 -0
  12. package/dist/backend/index.d.ts.map +1 -0
  13. package/dist/backend/index.js +13 -0
  14. package/dist/backend/index.js.map +1 -0
  15. package/dist/backend/inference.d.ts +38 -0
  16. package/dist/backend/inference.d.ts.map +1 -0
  17. package/dist/backend/inference.js +76 -0
  18. package/dist/backend/inference.js.map +1 -0
  19. package/dist/backend/local-backend.d.ts +40 -0
  20. package/dist/backend/local-backend.d.ts.map +1 -0
  21. package/dist/backend/local-backend.js +410 -0
  22. package/dist/backend/local-backend.js.map +1 -0
  23. package/dist/backend/transforming-backend.d.ts +47 -0
  24. package/dist/backend/transforming-backend.d.ts.map +1 -0
  25. package/dist/backend/transforming-backend.js +80 -0
  26. package/dist/backend/transforming-backend.js.map +1 -0
  27. package/dist/backend/types.d.ts +58 -0
  28. package/dist/backend/types.d.ts.map +1 -0
  29. package/dist/backend/types.js +7 -0
  30. package/dist/backend/types.js.map +1 -0
  31. package/dist/cli/db-dump.js +45 -45
  32. package/dist/cli/db-dump.js.map +1 -1
  33. package/dist/cli/db-export.js +30 -30
  34. package/dist/cli/db-export.js.map +1 -1
  35. package/dist/cli/db-import.d.ts.map +1 -1
  36. package/dist/cli/db-import.js +32 -33
  37. package/dist/cli/db-import.js.map +1 -1
  38. package/dist/cli/hooks/check-completion.d.ts +1 -0
  39. package/dist/cli/hooks/check-completion.d.ts.map +1 -1
  40. package/dist/cli/hooks/check-completion.js +15 -26
  41. package/dist/cli/hooks/check-completion.js.map +1 -1
  42. package/dist/cli/hooks/mark-done.d.ts +1 -0
  43. package/dist/cli/hooks/mark-done.d.ts.map +1 -1
  44. package/dist/cli/hooks/mark-done.js +12 -17
  45. package/dist/cli/hooks/mark-done.js.map +1 -1
  46. package/dist/cli/hooks/on-enter-plan.js +2 -2
  47. package/dist/cli/hooks/on-enter-plan.js.map +1 -1
  48. package/dist/cli/hooks/on-session-start.d.ts +23 -0
  49. package/dist/cli/hooks/on-session-start.d.ts.map +1 -0
  50. package/dist/cli/hooks/on-session-start.js +70 -0
  51. package/dist/cli/hooks/on-session-start.js.map +1 -0
  52. package/dist/cli/hooks/on-stop.js +5 -5
  53. package/dist/cli/hooks/on-stop.js.map +1 -1
  54. package/dist/cli/hooks/{plan-toml-parser.d.ts → plan-parser.d.ts} +1 -1
  55. package/dist/cli/hooks/plan-parser.d.ts.map +1 -0
  56. package/dist/cli/hooks/{plan-toml-parser.js → plan-parser.js} +1 -1
  57. package/dist/cli/hooks/plan-parser.js.map +1 -0
  58. package/dist/cli/hooks/plan-pattern-extractor.d.ts.map +1 -1
  59. package/dist/cli/hooks/plan-pattern-extractor.js +6 -3
  60. package/dist/cli/hooks/plan-pattern-extractor.js.map +1 -1
  61. package/dist/cli/hooks/plan-processor.js +1 -1
  62. package/dist/cli/hooks/plan-processor.js.map +1 -1
  63. package/dist/cli/hooks/stdin-parser.d.ts +4 -0
  64. package/dist/cli/hooks/stdin-parser.d.ts.map +1 -1
  65. package/dist/cli/hooks/stdin-parser.js.map +1 -1
  66. package/dist/cli/hooks/suggest.js +2 -2
  67. package/dist/cli/hooks/suggest.js.map +1 -1
  68. package/dist/cli/hooks/track-plan.d.ts.map +1 -1
  69. package/dist/cli/hooks/track-plan.js +24 -18
  70. package/dist/cli/hooks/track-plan.js.map +1 -1
  71. package/dist/cli.d.ts.map +1 -1
  72. package/dist/cli.js +72 -72
  73. package/dist/cli.js.map +1 -1
  74. package/dist/config/cloud-config-loader.d.ts +107 -0
  75. package/dist/config/cloud-config-loader.d.ts.map +1 -0
  76. package/dist/config/cloud-config-loader.js +273 -0
  77. package/dist/config/cloud-config-loader.js.map +1 -0
  78. package/dist/config/global-config.d.ts +10 -10
  79. package/dist/config/global-config.d.ts.map +1 -1
  80. package/dist/config/global-config.js +12 -12
  81. package/dist/config/global-config.js.map +1 -1
  82. package/dist/config/loader.d.ts.map +1 -1
  83. package/dist/config/loader.js +5 -1
  84. package/dist/config/loader.js.map +1 -1
  85. package/dist/config/minimal-generator.d.ts.map +1 -1
  86. package/dist/config/minimal-generator.js +22 -72
  87. package/dist/config/minimal-generator.js.map +1 -1
  88. package/dist/config/types.d.ts +59 -1
  89. package/dist/config/types.d.ts.map +1 -1
  90. package/dist/config/types.js +14 -0
  91. package/dist/config/types.js.map +1 -1
  92. package/dist/constants.d.ts +1 -29
  93. package/dist/constants.d.ts.map +1 -1
  94. package/dist/constants.js +1 -38
  95. package/dist/constants.js.map +1 -1
  96. package/dist/database/initialization/cleanup.d.ts.map +1 -1
  97. package/dist/database/initialization/cleanup.js +0 -13
  98. package/dist/database/initialization/cleanup.js.map +1 -1
  99. package/dist/database/initialization/init.d.ts.map +1 -1
  100. package/dist/database/initialization/init.js +0 -9
  101. package/dist/database/initialization/init.js.map +1 -1
  102. package/dist/database/initialization/schema-version.d.ts +4 -4
  103. package/dist/database/initialization/schema-version.js +9 -9
  104. package/dist/database/initialization/schema-version.js.map +1 -1
  105. package/dist/database/migrations/v4/20260107000000_v5_drop_task_file_tables.d.ts +36 -0
  106. package/dist/database/migrations/v4/20260107000000_v5_drop_task_file_tables.d.ts.map +1 -0
  107. package/dist/database/migrations/v4/20260107000000_v5_drop_task_file_tables.js +135 -0
  108. package/dist/database/migrations/v4/20260107000000_v5_drop_task_file_tables.js.map +1 -0
  109. package/dist/database/migrations/v4/20260107000001_v5_drop_legacy_tables.d.ts +20 -0
  110. package/dist/database/migrations/v4/20260107000001_v5_drop_legacy_tables.d.ts.map +1 -0
  111. package/dist/database/migrations/v4/20260107000001_v5_drop_legacy_tables.js +168 -0
  112. package/dist/database/migrations/v4/20260107000001_v5_drop_legacy_tables.js.map +1 -0
  113. package/dist/database/migrations/v4/20260108000000_v5_rename_to_m_t_prefix.d.ts +23 -0
  114. package/dist/database/migrations/v4/20260108000000_v5_rename_to_m_t_prefix.d.ts.map +1 -0
  115. package/dist/database/migrations/v4/20260108000000_v5_rename_to_m_t_prefix.js +570 -0
  116. package/dist/database/migrations/v4/20260108000000_v5_rename_to_m_t_prefix.js.map +1 -0
  117. package/dist/database/migrations/v4/20260109000000_v5_drop_help_tables.d.ts +29 -0
  118. package/dist/database/migrations/v4/20260109000000_v5_drop_help_tables.d.ts.map +1 -0
  119. package/dist/database/migrations/v4/20260109000000_v5_drop_help_tables.js +80 -0
  120. package/dist/database/migrations/v4/20260109000000_v5_drop_help_tables.js.map +1 -0
  121. package/dist/database/operations/inserts.js +11 -11
  122. package/dist/database/operations/inserts.js.map +1 -1
  123. package/dist/database/operations/queries.js +9 -9
  124. package/dist/database/operations/queries.js.map +1 -1
  125. package/dist/formatters/adr-formatter.d.ts +22 -0
  126. package/dist/formatters/adr-formatter.d.ts.map +1 -0
  127. package/dist/formatters/adr-formatter.js +127 -0
  128. package/dist/formatters/adr-formatter.js.map +1 -0
  129. package/dist/formatters/confluence-formatter.d.ts +26 -0
  130. package/dist/formatters/confluence-formatter.d.ts.map +1 -0
  131. package/dist/formatters/confluence-formatter.js +129 -0
  132. package/dist/formatters/confluence-formatter.js.map +1 -0
  133. package/dist/formatters/index.d.ts +34 -0
  134. package/dist/formatters/index.d.ts.map +1 -0
  135. package/dist/formatters/index.js +57 -0
  136. package/dist/formatters/index.js.map +1 -0
  137. package/dist/formatters/markdown-formatter.d.ts +16 -0
  138. package/dist/formatters/markdown-formatter.d.ts.map +1 -0
  139. package/dist/formatters/markdown-formatter.js +110 -0
  140. package/dist/formatters/markdown-formatter.js.map +1 -0
  141. package/dist/formatters/notion-formatter.d.ts +29 -0
  142. package/dist/formatters/notion-formatter.d.ts.map +1 -0
  143. package/dist/formatters/notion-formatter.js +177 -0
  144. package/dist/formatters/notion-formatter.js.map +1 -0
  145. package/dist/formatters/types.d.ts +31 -0
  146. package/dist/formatters/types.d.ts.map +1 -0
  147. package/dist/formatters/types.js +6 -0
  148. package/dist/formatters/types.js.map +1 -0
  149. package/dist/help-data/_schema.toml +21 -0
  150. package/dist/help-data/constraint.toml +259 -0
  151. package/dist/help-data/decision.toml +833 -0
  152. package/dist/help-data/example.toml +177 -0
  153. package/dist/help-data/help.toml +246 -0
  154. package/dist/help-data/queue.toml +134 -0
  155. package/dist/help-data/suggest.toml +219 -0
  156. package/dist/help-data/use-cases/_categories.toml +22 -0
  157. package/dist/help-data/use-cases/constraint-basic.toml +34 -0
  158. package/dist/help-data/use-cases/cross-tool-workflow.toml +50 -0
  159. package/dist/help-data/use-cases/decision-intelligence-duplicate.toml +35 -0
  160. package/dist/help-data/use-cases/decision-intelligence-related.toml +35 -0
  161. package/dist/help-data/use-cases/decision-tracking-basic.toml +42 -0
  162. package/dist/help-data/use-cases/decision-tracking-versions.toml +42 -0
  163. package/dist/help-data/use_case.toml +147 -0
  164. package/dist/help-loader.d.ts +194 -0
  165. package/dist/help-loader.d.ts.map +1 -0
  166. package/dist/help-loader.js +419 -0
  167. package/dist/help-loader.js.map +1 -0
  168. package/dist/index.js +15 -10
  169. package/dist/index.js.map +1 -1
  170. package/dist/init-rules.d.ts +42 -0
  171. package/dist/init-rules.d.ts.map +1 -0
  172. package/dist/init-rules.js +217 -0
  173. package/dist/init-rules.js.map +1 -0
  174. package/dist/schema.d.ts +4 -6
  175. package/dist/schema.d.ts.map +1 -1
  176. package/dist/schema.js +28 -45
  177. package/dist/schema.js.map +1 -1
  178. package/dist/server/setup.d.ts +0 -10
  179. package/dist/server/setup.d.ts.map +1 -1
  180. package/dist/server/setup.js +97 -89
  181. package/dist/server/setup.js.map +1 -1
  182. package/dist/server/shutdown.d.ts +1 -1
  183. package/dist/server/shutdown.d.ts.map +1 -1
  184. package/dist/server/shutdown.js +1 -16
  185. package/dist/server/shutdown.js.map +1 -1
  186. package/dist/server/tool-handlers.d.ts +15 -0
  187. package/dist/server/tool-handlers.d.ts.map +1 -1
  188. package/dist/server/tool-handlers.js +47 -462
  189. package/dist/server/tool-handlers.js.map +1 -1
  190. package/dist/server/tool-registry.d.ts.map +1 -1
  191. package/dist/server/tool-registry.js +50 -62
  192. package/dist/server/tool-registry.js.map +1 -1
  193. package/dist/tests/backend/backend-factory.test.d.ts +7 -0
  194. package/dist/tests/backend/backend-factory.test.d.ts.map +1 -0
  195. package/dist/tests/backend/backend-factory.test.js +157 -0
  196. package/dist/tests/backend/backend-factory.test.js.map +1 -0
  197. package/dist/tests/backend/inference.test.d.ts +7 -0
  198. package/dist/tests/backend/inference.test.d.ts.map +1 -0
  199. package/dist/tests/backend/inference.test.js +142 -0
  200. package/dist/tests/backend/inference.test.js.map +1 -0
  201. package/dist/tests/database/multi-project/multi-project.test.js +9 -70
  202. package/dist/tests/database/multi-project/multi-project.test.js.map +1 -1
  203. package/dist/tests/database/sql-dump/table-ordering.test.js +14 -14
  204. package/dist/tests/database/sql-dump/table-ordering.test.js.map +1 -1
  205. package/dist/tests/docker/cross-database.test.js +32 -32
  206. package/dist/tests/docker/cross-database.test.js.map +1 -1
  207. package/dist/tests/docker/dump-import.test.js +55 -55
  208. package/dist/tests/docker/dump-import.test.js.map +1 -1
  209. package/dist/tests/docker/fk-constraints.test.js +3 -3
  210. package/dist/tests/docker/indexes.test.js +34 -34
  211. package/dist/tests/docker/integration.test.js +33 -33
  212. package/dist/tests/docker/multi-project-migration.test.js +47 -47
  213. package/dist/tests/docker/multi-project-migration.test.js.map +1 -1
  214. package/dist/tests/docker/native/constraint-operations.test.js +49 -49
  215. package/dist/tests/docker/native/constraint-operations.test.js.map +1 -1
  216. package/dist/tests/docker/native/db-init.d.ts +3 -1
  217. package/dist/tests/docker/native/db-init.d.ts.map +1 -1
  218. package/dist/tests/docker/native/db-init.js +14 -12
  219. package/dist/tests/docker/native/db-init.js.map +1 -1
  220. package/dist/tests/docker/native/decision-operations.test.js +91 -91
  221. package/dist/tests/docker/native/decision-operations.test.js.map +1 -1
  222. package/dist/tests/docker/native/help-system.test.d.ts +2 -2
  223. package/dist/tests/docker/native/help-system.test.js +113 -138
  224. package/dist/tests/docker/native/help-system.test.js.map +1 -1
  225. package/dist/tests/docker/native/suggest-tool.test.d.ts +2 -2
  226. package/dist/tests/docker/native/suggest-tool.test.js +35 -35
  227. package/dist/tests/docker/native/suggest-tool.test.js.map +1 -1
  228. package/dist/tests/docker/native/test-harness.d.ts +6 -12
  229. package/dist/tests/docker/native/test-harness.d.ts.map +1 -1
  230. package/dist/tests/docker/native/test-harness.js +74 -156
  231. package/dist/tests/docker/native/test-harness.js.map +1 -1
  232. package/dist/tests/docker/schema-migration.test.js +6 -6
  233. package/dist/tests/feature/decision/batch-validation-comprehensive.test.d.ts +3 -7
  234. package/dist/tests/feature/decision/batch-validation-comprehensive.test.d.ts.map +1 -1
  235. package/dist/tests/feature/decision/batch-validation-comprehensive.test.js +7 -318
  236. package/dist/tests/feature/decision/batch-validation-comprehensive.test.js.map +1 -1
  237. package/dist/tests/feature/help/help-system.test.d.ts +6 -6
  238. package/dist/tests/feature/help/help-system.test.js +166 -124
  239. package/dist/tests/feature/help/help-system.test.js.map +1 -1
  240. package/dist/tests/integration/auto-trigger-suggestions.test.js +22 -22
  241. package/dist/tests/integration/auto-trigger-suggestions.test.js.map +1 -1
  242. package/dist/tests/integration/decision-intelligence-e2e.test.js +23 -22
  243. package/dist/tests/integration/decision-intelligence-e2e.test.js.map +1 -1
  244. package/dist/tests/integration/e2e-workflow1-debug.test.js +3 -3
  245. package/dist/tests/integration/e2e-workflow1-debug.test.js.map +1 -1
  246. package/dist/tests/integration/hybrid-similarity-detection.test.js +25 -25
  247. package/dist/tests/integration/hybrid-similarity-detection.test.js.map +1 -1
  248. package/dist/tests/integration/suggest-simple.test.js +18 -0
  249. package/dist/tests/integration/suggest-simple.test.js.map +1 -1
  250. package/dist/tests/migrations/test-all-versions.js +212 -212
  251. package/dist/tests/migrations/test-all-versions.js.map +1 -1
  252. package/dist/tests/migrations/v4/v4-fresh-install.test.js +29 -29
  253. package/dist/tests/migrations/v4/v4-fresh-install.test.js.map +1 -1
  254. package/dist/tests/migrations/v4/v4-migrate-data.test.js +20 -20
  255. package/dist/tests/migrations/v4/v4-migrate-data.test.js.map +1 -1
  256. package/dist/tests/test-v4-native-rdbms.js +20 -20
  257. package/dist/tests/test-v4-native-rdbms.js.map +1 -1
  258. package/dist/tests/unit/config/cloud-config-loader.test.d.ts +2 -0
  259. package/dist/tests/unit/config/cloud-config-loader.test.d.ts.map +1 -0
  260. package/dist/tests/unit/config/cloud-config-loader.test.js +103 -0
  261. package/dist/tests/unit/config/cloud-config-loader.test.js.map +1 -0
  262. package/dist/tests/unit/config/{plan-toml-cache.test.d.ts → plan-cache.test.d.ts} +1 -1
  263. package/dist/tests/unit/config/plan-cache.test.d.ts.map +1 -0
  264. package/dist/tests/unit/config/{plan-toml-cache.test.js → plan-cache.test.js} +32 -32
  265. package/dist/tests/unit/config/plan-cache.test.js.map +1 -0
  266. package/dist/tests/unit/hooks/{plan-toml-parser.test.d.ts → plan-parser.test.d.ts} +1 -1
  267. package/dist/tests/unit/hooks/plan-parser.test.d.ts.map +1 -0
  268. package/dist/tests/unit/hooks/{plan-toml-parser.test.js → plan-parser.test.js} +179 -179
  269. package/dist/tests/unit/hooks/plan-parser.test.js.map +1 -0
  270. package/dist/tests/unit/server/tool-handlers.test.d.ts +7 -0
  271. package/dist/tests/unit/server/tool-handlers.test.d.ts.map +1 -0
  272. package/dist/tests/unit/server/tool-handlers.test.js +76 -0
  273. package/dist/tests/unit/server/tool-handlers.test.js.map +1 -0
  274. package/dist/tests/unit/utils/config-loader.test.js +17 -17
  275. package/dist/tests/unit/utils/connection-hash.test.d.ts +2 -0
  276. package/dist/tests/unit/utils/connection-hash.test.d.ts.map +1 -0
  277. package/dist/tests/unit/utils/connection-hash.test.js +57 -0
  278. package/dist/tests/unit/utils/connection-hash.test.js.map +1 -0
  279. package/dist/tests/unit/utils/environment-detector.test.d.ts +2 -0
  280. package/dist/tests/unit/utils/environment-detector.test.d.ts.map +1 -0
  281. package/dist/tests/unit/utils/environment-detector.test.js +43 -0
  282. package/dist/tests/unit/utils/environment-detector.test.js.map +1 -0
  283. package/dist/tests/unit/utils/path-utils.test.d.ts +2 -0
  284. package/dist/tests/unit/utils/path-utils.test.d.ts.map +1 -0
  285. package/dist/tests/unit/utils/path-utils.test.js +72 -0
  286. package/dist/tests/unit/utils/path-utils.test.js.map +1 -0
  287. package/dist/tests/unit/utils/project-detector.test.js +14 -13
  288. package/dist/tests/unit/utils/project-detector.test.js.map +1 -1
  289. package/dist/tests/unit/validation/parameter-validation.test.d.ts +2 -1
  290. package/dist/tests/unit/validation/parameter-validation.test.d.ts.map +1 -1
  291. package/dist/tests/unit/validation/parameter-validation.test.js +5 -133
  292. package/dist/tests/unit/validation/parameter-validation.test.js.map +1 -1
  293. package/dist/tests/unit/validation/policy-validation.test.js +15 -15
  294. package/dist/tests/unit/validation/policy-validation.test.js.map +1 -1
  295. package/dist/tests/utils/db-schema.js +48 -48
  296. package/dist/tests/utils/db-seeding.js +11 -11
  297. package/dist/tests/utils/db-seeding.js.map +1 -1
  298. package/dist/tests/utils/json-export-import.test.d.ts +6 -0
  299. package/dist/tests/utils/json-export-import.test.d.ts.map +1 -0
  300. package/dist/tests/utils/json-export-import.test.js +474 -0
  301. package/dist/tests/utils/json-export-import.test.js.map +1 -0
  302. package/dist/tests/utils/test-helpers.js +59 -59
  303. package/dist/tests/utils/test-helpers.js.map +1 -1
  304. package/dist/tools/constraints/actions/activate.d.ts +2 -2
  305. package/dist/tools/constraints/actions/activate.d.ts.map +1 -1
  306. package/dist/tools/constraints/actions/activate.js +12 -12
  307. package/dist/tools/constraints/actions/activate.js.map +1 -1
  308. package/dist/tools/constraints/actions/add.js +3 -3
  309. package/dist/tools/constraints/actions/add.js.map +1 -1
  310. package/dist/tools/constraints/actions/deactivate.js +6 -6
  311. package/dist/tools/constraints/actions/deactivate.js.map +1 -1
  312. package/dist/tools/constraints/actions/get.d.ts +2 -2
  313. package/dist/tools/constraints/actions/get.js +9 -9
  314. package/dist/tools/constraints/actions/get.js.map +1 -1
  315. package/dist/tools/constraints/actions/suggest-pending.js +2 -2
  316. package/dist/tools/constraints/actions/suggest-pending.js.map +1 -1
  317. package/dist/tools/constraints/index.d.ts +1 -1
  318. package/dist/tools/constraints/index.d.ts.map +1 -1
  319. package/dist/tools/constraints/index.js +1 -1
  320. package/dist/tools/constraints/index.js.map +1 -1
  321. package/dist/tools/context/actions/create-policy.js +3 -3
  322. package/dist/tools/context/actions/create-policy.js.map +1 -1
  323. package/dist/tools/context/actions/create-template.js +2 -2
  324. package/dist/tools/context/actions/create-template.js.map +1 -1
  325. package/dist/tools/context/actions/export.d.ts +35 -0
  326. package/dist/tools/context/actions/export.d.ts.map +1 -0
  327. package/dist/tools/context/actions/export.js +93 -0
  328. package/dist/tools/context/actions/export.js.map +1 -0
  329. package/dist/tools/context/actions/hard-delete.js +11 -11
  330. package/dist/tools/context/actions/hard-delete.js.map +1 -1
  331. package/dist/tools/context/actions/has-updates.d.ts +1 -1
  332. package/dist/tools/context/actions/has-updates.d.ts.map +1 -1
  333. package/dist/tools/context/actions/has-updates.js +5 -13
  334. package/dist/tools/context/actions/has-updates.js.map +1 -1
  335. package/dist/tools/context/actions/list-policies.js +1 -1
  336. package/dist/tools/context/actions/list-policies.js.map +1 -1
  337. package/dist/tools/context/actions/list-templates.js +2 -2
  338. package/dist/tools/context/actions/list-templates.js.map +1 -1
  339. package/dist/tools/context/actions/list.js +1 -1
  340. package/dist/tools/context/actions/list.js.map +1 -1
  341. package/dist/tools/context/actions/search-layer.js +8 -8
  342. package/dist/tools/context/actions/search-layer.js.map +1 -1
  343. package/dist/tools/context/actions/set-from-policy.js +1 -1
  344. package/dist/tools/context/actions/set-from-policy.js.map +1 -1
  345. package/dist/tools/context/actions/set-from-template.js +2 -2
  346. package/dist/tools/context/actions/set-from-template.js.map +1 -1
  347. package/dist/tools/context/actions/versions.js +3 -3
  348. package/dist/tools/context/actions/versions.js.map +1 -1
  349. package/dist/tools/context/index.d.ts +1 -0
  350. package/dist/tools/context/index.d.ts.map +1 -1
  351. package/dist/tools/context/index.js +2 -0
  352. package/dist/tools/context/index.js.map +1 -1
  353. package/dist/tools/context/internal/queries.d.ts.map +1 -1
  354. package/dist/tools/context/internal/queries.js +54 -43
  355. package/dist/tools/context/internal/queries.js.map +1 -1
  356. package/dist/tools/context/types.d.ts +1 -1
  357. package/dist/tools/context/types.d.ts.map +1 -1
  358. package/dist/tools/example/actions/get.d.ts +8 -3
  359. package/dist/tools/example/actions/get.d.ts.map +1 -1
  360. package/dist/tools/example/actions/get.js +29 -30
  361. package/dist/tools/example/actions/get.js.map +1 -1
  362. package/dist/tools/example/actions/list-all.d.ts +8 -2
  363. package/dist/tools/example/actions/list-all.d.ts.map +1 -1
  364. package/dist/tools/example/actions/list-all.js +37 -29
  365. package/dist/tools/example/actions/list-all.js.map +1 -1
  366. package/dist/tools/example/actions/search.d.ts +8 -3
  367. package/dist/tools/example/actions/search.d.ts.map +1 -1
  368. package/dist/tools/example/actions/search.js +29 -43
  369. package/dist/tools/example/actions/search.js.map +1 -1
  370. package/dist/tools/help/actions/batch-guide.js +5 -5
  371. package/dist/tools/help/actions/batch-guide.js.map +1 -1
  372. package/dist/tools/help/actions/query-action.d.ts +7 -3
  373. package/dist/tools/help/actions/query-action.d.ts.map +1 -1
  374. package/dist/tools/help/actions/query-action.js +35 -6
  375. package/dist/tools/help/actions/query-action.js.map +1 -1
  376. package/dist/tools/help/actions/query-params.d.ts +5 -3
  377. package/dist/tools/help/actions/query-params.d.ts.map +1 -1
  378. package/dist/tools/help/actions/query-params.js +28 -6
  379. package/dist/tools/help/actions/query-params.js.map +1 -1
  380. package/dist/tools/help/actions/query-tool.d.ts +5 -3
  381. package/dist/tools/help/actions/query-tool.d.ts.map +1 -1
  382. package/dist/tools/help/actions/query-tool.js +23 -6
  383. package/dist/tools/help/actions/query-tool.js.map +1 -1
  384. package/dist/tools/help/actions/workflow-hints.d.ts +5 -3
  385. package/dist/tools/help/actions/workflow-hints.d.ts.map +1 -1
  386. package/dist/tools/help/actions/workflow-hints.js +21 -6
  387. package/dist/tools/help/actions/workflow-hints.js.map +1 -1
  388. package/dist/tools/queue/actions/clear.d.ts +19 -0
  389. package/dist/tools/queue/actions/clear.d.ts.map +1 -0
  390. package/dist/tools/queue/actions/clear.js +79 -0
  391. package/dist/tools/queue/actions/clear.js.map +1 -0
  392. package/dist/tools/queue/actions/list.d.ts +16 -0
  393. package/dist/tools/queue/actions/list.d.ts.map +1 -0
  394. package/dist/tools/queue/actions/list.js +95 -0
  395. package/dist/tools/queue/actions/list.js.map +1 -0
  396. package/dist/tools/queue/actions/remove.d.ts +19 -0
  397. package/dist/tools/queue/actions/remove.d.ts.map +1 -0
  398. package/dist/tools/queue/actions/remove.js +81 -0
  399. package/dist/tools/queue/actions/remove.js.map +1 -0
  400. package/dist/tools/queue/index.d.ts +13 -0
  401. package/dist/tools/queue/index.d.ts.map +1 -0
  402. package/dist/tools/queue/index.js +13 -0
  403. package/dist/tools/queue/index.js.map +1 -0
  404. package/dist/tools/queue/types.d.ts +87 -0
  405. package/dist/tools/queue/types.d.ts.map +1 -0
  406. package/dist/tools/queue/types.js +9 -0
  407. package/dist/tools/queue/types.js.map +1 -0
  408. package/dist/tools/suggest/actions/by-context.d.ts.map +1 -1
  409. package/dist/tools/suggest/actions/by-context.js +3 -1
  410. package/dist/tools/suggest/actions/by-context.js.map +1 -1
  411. package/dist/tools/suggest/actions/by-key.d.ts.map +1 -1
  412. package/dist/tools/suggest/actions/by-key.js +3 -1
  413. package/dist/tools/suggest/actions/by-key.js.map +1 -1
  414. package/dist/tools/suggest/actions/by-tags.d.ts +2 -2
  415. package/dist/tools/suggest/actions/by-tags.js +3 -3
  416. package/dist/tools/suggest/actions/by-tags.js.map +1 -1
  417. package/dist/tools/suggest/internal/constraint-queries.d.ts +4 -4
  418. package/dist/tools/suggest/internal/constraint-queries.js +14 -14
  419. package/dist/tools/suggest/internal/constraint-queries.js.map +1 -1
  420. package/dist/tools/suggest/internal/queries.d.ts +4 -4
  421. package/dist/tools/suggest/internal/queries.js +25 -25
  422. package/dist/tools/suggest/internal/queries.js.map +1 -1
  423. package/dist/tools/use_case/actions/get.d.ts +5 -3
  424. package/dist/tools/use_case/actions/get.d.ts.map +1 -1
  425. package/dist/tools/use_case/actions/get.js +20 -6
  426. package/dist/tools/use_case/actions/get.js.map +1 -1
  427. package/dist/tools/use_case/actions/list-all.d.ts +5 -3
  428. package/dist/tools/use_case/actions/list-all.d.ts.map +1 -1
  429. package/dist/tools/use_case/actions/list-all.js +36 -6
  430. package/dist/tools/use_case/actions/list-all.js.map +1 -1
  431. package/dist/tools/use_case/actions/search.d.ts +6 -3
  432. package/dist/tools/use_case/actions/search.d.ts.map +1 -1
  433. package/dist/tools/use_case/actions/search.js +37 -67
  434. package/dist/tools/use_case/actions/search.js.map +1 -1
  435. package/dist/tools/use_case/help/example.js +17 -17
  436. package/dist/tools/use_case/help/example.js.map +1 -1
  437. package/dist/types.d.ts +82 -153
  438. package/dist/types.d.ts.map +1 -1
  439. package/dist/types.js +0 -10
  440. package/dist/types.js.map +1 -1
  441. package/dist/utils/action-specs/constraint-specs.js +6 -6
  442. package/dist/utils/action-specs/constraint-specs.js.map +1 -1
  443. package/dist/utils/action-specs/index.d.ts +0 -2
  444. package/dist/utils/action-specs/index.d.ts.map +1 -1
  445. package/dist/utils/action-specs/index.js +0 -6
  446. package/dist/utils/action-specs/index.js.map +1 -1
  447. package/dist/utils/batch-validation.d.ts +1 -1
  448. package/dist/utils/batch-validation.js +3 -3
  449. package/dist/utils/batch-validation.js.map +1 -1
  450. package/dist/utils/case-insensitive-validator.d.ts +2 -2
  451. package/dist/utils/case-insensitive-validator.js +2 -2
  452. package/dist/utils/connection-hash.d.ts +37 -0
  453. package/dist/utils/connection-hash.d.ts.map +1 -0
  454. package/dist/utils/connection-hash.js +55 -0
  455. package/dist/utils/connection-hash.js.map +1 -0
  456. package/dist/utils/db-aggregations.js +16 -16
  457. package/dist/utils/db-aggregations.js.map +1 -1
  458. package/dist/utils/enum-converter.d.ts +0 -21
  459. package/dist/utils/enum-converter.d.ts.map +1 -1
  460. package/dist/utils/enum-converter.js +1 -23
  461. package/dist/utils/enum-converter.js.map +1 -1
  462. package/dist/utils/environment-detector.d.ts +30 -0
  463. package/dist/utils/environment-detector.d.ts.map +1 -0
  464. package/dist/utils/environment-detector.js +86 -0
  465. package/dist/utils/environment-detector.js.map +1 -0
  466. package/dist/utils/example-filter.d.ts +34 -0
  467. package/dist/utils/example-filter.d.ts.map +1 -0
  468. package/dist/utils/example-filter.js +45 -0
  469. package/dist/utils/example-filter.js.map +1 -0
  470. package/dist/utils/exporter/export.d.ts +2 -16
  471. package/dist/utils/exporter/export.d.ts.map +1 -1
  472. package/dist/utils/exporter/export.js +49 -130
  473. package/dist/utils/exporter/export.js.map +1 -1
  474. package/dist/utils/hook-queue.d.ts +60 -0
  475. package/dist/utils/hook-queue.d.ts.map +1 -1
  476. package/dist/utils/hook-queue.js +114 -11
  477. package/dist/utils/hook-queue.js.map +1 -1
  478. package/dist/utils/importer/import.d.ts.map +1 -1
  479. package/dist/utils/importer/import.js +33 -188
  480. package/dist/utils/importer/import.js.map +1 -1
  481. package/dist/utils/importer/master-tables.d.ts +2 -1
  482. package/dist/utils/importer/master-tables.d.ts.map +1 -1
  483. package/dist/utils/importer/master-tables.js +35 -81
  484. package/dist/utils/importer/master-tables.js.map +1 -1
  485. package/dist/utils/param-normalizer.d.ts +0 -1
  486. package/dist/utils/param-normalizer.d.ts.map +1 -1
  487. package/dist/utils/param-normalizer.js +1 -3
  488. package/dist/utils/param-normalizer.js.map +1 -1
  489. package/dist/utils/path-utils.d.ts +46 -0
  490. package/dist/utils/path-utils.d.ts.map +1 -0
  491. package/dist/utils/path-utils.js +74 -0
  492. package/dist/utils/path-utils.js.map +1 -0
  493. package/dist/utils/policy-validator.js +1 -1
  494. package/dist/utils/policy-validator.js.map +1 -1
  495. package/dist/utils/project-context.d.ts +23 -0
  496. package/dist/utils/project-context.d.ts.map +1 -1
  497. package/dist/utils/project-context.js +45 -3
  498. package/dist/utils/project-context.js.map +1 -1
  499. package/dist/utils/project-root.d.ts +2 -2
  500. package/dist/utils/project-root.js +2 -2
  501. package/dist/utils/sql-dump/core/index-export.js +7 -7
  502. package/dist/utils/sql-dump/schema/indexes.js +24 -24
  503. package/dist/utils/sql-dump/schema/tables.js +44 -44
  504. package/dist/utils/token-logging.js +6 -6
  505. package/dist/utils/token-logging.js.map +1 -1
  506. package/dist/utils/validators.js +1 -1
  507. package/dist/utils/validators.js.map +1 -1
  508. package/dist/utils/view-queries.d.ts +0 -8
  509. package/dist/utils/view-queries.d.ts.map +1 -1
  510. package/dist/utils/view-queries.js +29 -84
  511. package/dist/utils/view-queries.js.map +1 -1
  512. package/dist/watcher/index.d.ts +1 -4
  513. package/dist/watcher/index.d.ts.map +1 -1
  514. package/dist/watcher/index.js +1 -3
  515. package/dist/watcher/index.js.map +1 -1
  516. package/dist/watcher/queue-watcher.d.ts +10 -3
  517. package/dist/watcher/queue-watcher.d.ts.map +1 -1
  518. package/dist/watcher/queue-watcher.js +24 -21
  519. package/dist/watcher/queue-watcher.js.map +1 -1
  520. package/docs/CONFIGURATION.md +14 -14
  521. package/docs/DATABASE_AUTH.md +1 -1
  522. package/docs/HOOKS_GUIDE.md +30 -50
  523. package/docs/HOW_TO_UNINSTALL.md +199 -0
  524. package/docs/MIGRATION_CLEANUP_GUIDE.md +212 -0
  525. package/docs/MIGRATION_TO_SAAS.md +176 -0
  526. package/docs/SLASH_COMMANDS.md +1 -1
  527. package/docs/cli/DATABASE_MIGRATION.md +13 -13
  528. package/docs/cli/DATA_EXPORT_IMPORT.md +71 -69
  529. package/package.json +10 -8
  530. package/saas-connector/LICENSE +190 -0
  531. package/saas-connector/README.md +122 -0
  532. package/saas-connector/dist/auth/auth-manager.d.ts +6 -0
  533. package/saas-connector/dist/auth/auth-manager.d.ts.map +1 -0
  534. package/saas-connector/dist/auth/auth-manager.js +39 -0
  535. package/saas-connector/dist/auth/auth-manager.js.map +7 -0
  536. package/saas-connector/dist/backend/saas-backend.d.ts +20 -0
  537. package/saas-connector/dist/backend/saas-backend.d.ts.map +1 -0
  538. package/saas-connector/dist/backend/saas-backend.js +104 -0
  539. package/saas-connector/dist/backend/saas-backend.js.map +7 -0
  540. package/saas-connector/dist/client/http-client.d.ts +33 -0
  541. package/saas-connector/dist/client/http-client.d.ts.map +1 -0
  542. package/saas-connector/dist/client/http-client.js +226 -0
  543. package/saas-connector/dist/client/http-client.js.map +7 -0
  544. package/saas-connector/dist/client/types.d.ts +62 -0
  545. package/saas-connector/dist/client/types.d.ts.map +1 -0
  546. package/saas-connector/dist/client/types.js +17 -0
  547. package/saas-connector/dist/client/types.js.map +7 -0
  548. package/saas-connector/dist/config/constants.d.ts +14 -0
  549. package/saas-connector/dist/config/constants.d.ts.map +1 -0
  550. package/saas-connector/dist/config/constants.js +68 -0
  551. package/saas-connector/dist/config/constants.js.map +7 -0
  552. package/saas-connector/dist/errors/api-error.d.ts +26 -0
  553. package/saas-connector/dist/errors/api-error.d.ts.map +1 -0
  554. package/saas-connector/dist/errors/api-error.js +62 -0
  555. package/saas-connector/dist/errors/api-error.js.map +7 -0
  556. package/saas-connector/dist/index.d.ts +18 -0
  557. package/saas-connector/dist/index.d.ts.map +1 -0
  558. package/saas-connector/dist/index.js +51 -0
  559. package/saas-connector/dist/index.js.map +7 -0
  560. package/saas-connector/package-lock.json +518 -0
  561. package/saas-connector/package.json +34 -0
  562. package/scripts/copy-help-data.js +19 -0
  563. package/assets/config.example.toml +0 -120
  564. package/assets/kanban-style.png +0 -0
  565. package/assets/kanban-visualizer.png +0 -0
  566. package/assets/sample-agents/README.md +0 -36
  567. package/assets/sample-agents/sqlew-architect.md +0 -321
  568. package/assets/sample-agents/sqlew-researcher.md +0 -292
  569. package/assets/sample-agents/sqlew-scrum-master.md +0 -286
  570. package/assets/sample-commands/README.md +0 -56
  571. package/assets/sample-commands/sqlew.md +0 -144
  572. package/assets/sample-skills/sqlew-decision-format/SKILL.md +0 -73
  573. package/assets/sample-skills/sqlew-plan-guidance/SKILL.md +0 -62
  574. package/assets/schema.sql +0 -564
  575. package/dist/cli/hooks/init-hooks.d.ts +0 -35
  576. package/dist/cli/hooks/init-hooks.d.ts.map +0 -1
  577. package/dist/cli/hooks/init-hooks.js +0 -517
  578. package/dist/cli/hooks/init-hooks.js.map +0 -1
  579. package/dist/cli/hooks/plan-toml-parser.d.ts.map +0 -1
  580. package/dist/cli/hooks/plan-toml-parser.js.map +0 -1
  581. package/dist/init-agents.d.ts +0 -7
  582. package/dist/init-agents.d.ts.map +0 -1
  583. package/dist/init-agents.js +0 -206
  584. package/dist/init-agents.js.map +0 -1
  585. package/dist/init-commands.d.ts +0 -10
  586. package/dist/init-commands.d.ts.map +0 -1
  587. package/dist/init-commands.js +0 -46
  588. package/dist/init-commands.js.map +0 -1
  589. package/dist/init-skills.d.ts +0 -29
  590. package/dist/init-skills.d.ts.map +0 -1
  591. package/dist/init-skills.js +0 -183
  592. package/dist/init-skills.js.map +0 -1
  593. package/dist/sync-agents.d.ts +0 -13
  594. package/dist/sync-agents.d.ts.map +0 -1
  595. package/dist/sync-agents.js +0 -157
  596. package/dist/sync-agents.js.map +0 -1
  597. package/dist/sync-commands.d.ts +0 -13
  598. package/dist/sync-commands.d.ts.map +0 -1
  599. package/dist/sync-commands.js +0 -150
  600. package/dist/sync-commands.js.map +0 -1
  601. package/dist/sync-gitignore.d.ts +0 -13
  602. package/dist/sync-gitignore.d.ts.map +0 -1
  603. package/dist/sync-gitignore.js +0 -60
  604. package/dist/sync-gitignore.js.map +0 -1
  605. package/dist/tests/docker/native/task-operations.test.d.ts +0 -16
  606. package/dist/tests/docker/native/task-operations.test.d.ts.map +0 -1
  607. package/dist/tests/docker/native/task-operations.test.js +0 -800
  608. package/dist/tests/docker/native/task-operations.test.js.map +0 -1
  609. package/dist/tests/feature/decision/batch-validation-integration.test.d.ts +0 -6
  610. package/dist/tests/feature/decision/batch-validation-integration.test.d.ts.map +0 -1
  611. package/dist/tests/feature/decision/batch-validation-integration.test.js +0 -193
  612. package/dist/tests/feature/decision/batch-validation-integration.test.js.map +0 -1
  613. package/dist/tests/feature/task/auto-pruning-decision-link.test.d.ts +0 -6
  614. package/dist/tests/feature/task/auto-pruning-decision-link.test.d.ts.map +0 -1
  615. package/dist/tests/feature/task/auto-pruning-decision-link.test.js +0 -281
  616. package/dist/tests/feature/task/auto-pruning-decision-link.test.js.map +0 -1
  617. package/dist/tests/feature/task/auto-pruning-partial.test.d.ts +0 -6
  618. package/dist/tests/feature/task/auto-pruning-partial.test.d.ts.map +0 -1
  619. package/dist/tests/feature/task/auto-pruning-partial.test.js +0 -305
  620. package/dist/tests/feature/task/auto-pruning-partial.test.js.map +0 -1
  621. package/dist/tests/feature/task/auto-pruning-persistence.test.d.ts +0 -6
  622. package/dist/tests/feature/task/auto-pruning-persistence.test.d.ts.map +0 -1
  623. package/dist/tests/feature/task/auto-pruning-persistence.test.js +0 -267
  624. package/dist/tests/feature/task/auto-pruning-persistence.test.js.map +0 -1
  625. package/dist/tests/feature/task/auto-pruning-safety.test.d.ts +0 -12
  626. package/dist/tests/feature/task/auto-pruning-safety.test.d.ts.map +0 -1
  627. package/dist/tests/feature/task/auto-pruning-safety.test.js +0 -224
  628. package/dist/tests/feature/task/auto-pruning-safety.test.js.map +0 -1
  629. package/dist/tests/feature/task/dependencies.test.d.ts +0 -7
  630. package/dist/tests/feature/task/dependencies.test.d.ts.map +0 -1
  631. package/dist/tests/feature/task/dependencies.test.js +0 -656
  632. package/dist/tests/feature/task/dependencies.test.js.map +0 -1
  633. package/dist/tests/feature/task/file-actions-integration.test.d.ts +0 -10
  634. package/dist/tests/feature/task/file-actions-integration.test.d.ts.map +0 -1
  635. package/dist/tests/feature/task/file-actions-integration.test.js +0 -162
  636. package/dist/tests/feature/task/file-actions-integration.test.js.map +0 -1
  637. package/dist/tests/feature/task/file-actions-validation.test.d.ts +0 -6
  638. package/dist/tests/feature/task/file-actions-validation.test.d.ts.map +0 -1
  639. package/dist/tests/feature/task/file-actions-validation.test.js +0 -228
  640. package/dist/tests/feature/task/file-actions-validation.test.js.map +0 -1
  641. package/dist/tests/feature/task/link-file-backward-compat.test.d.ts +0 -6
  642. package/dist/tests/feature/task/link-file-backward-compat.test.d.ts.map +0 -1
  643. package/dist/tests/feature/task/link-file-backward-compat.test.js +0 -280
  644. package/dist/tests/feature/task/link-file-backward-compat.test.js.map +0 -1
  645. package/dist/tests/feature/task/watch-files-action.test.d.ts +0 -8
  646. package/dist/tests/feature/task/watch-files-action.test.d.ts.map +0 -1
  647. package/dist/tests/feature/task/watch-files-action.test.js +0 -402
  648. package/dist/tests/feature/task/watch-files-action.test.js.map +0 -1
  649. package/dist/tests/feature/task/watch-files-parameter.test.d.ts +0 -8
  650. package/dist/tests/feature/task/watch-files-parameter.test.d.ts.map +0 -1
  651. package/dist/tests/feature/task/watch-files-parameter.test.js +0 -283
  652. package/dist/tests/feature/task/watch-files-parameter.test.js.map +0 -1
  653. package/dist/tests/integration/all-features.standalone.d.ts +0 -7
  654. package/dist/tests/integration/all-features.standalone.d.ts.map +0 -1
  655. package/dist/tests/integration/all-features.standalone.js +0 -417
  656. package/dist/tests/integration/all-features.standalone.js.map +0 -1
  657. package/dist/tests/unit/config/plan-toml-cache.test.d.ts.map +0 -1
  658. package/dist/tests/unit/config/plan-toml-cache.test.js.map +0 -1
  659. package/dist/tests/unit/hooks/plan-toml-parser.test.d.ts.map +0 -1
  660. package/dist/tests/unit/hooks/plan-toml-parser.test.js.map +0 -1
  661. package/dist/tools/files/actions/check-lock.d.ts +0 -16
  662. package/dist/tools/files/actions/check-lock.d.ts.map +0 -1
  663. package/dist/tools/files/actions/check-lock.js +0 -74
  664. package/dist/tools/files/actions/check-lock.js.map +0 -1
  665. package/dist/tools/files/actions/get.d.ts +0 -16
  666. package/dist/tools/files/actions/get.d.ts.map +0 -1
  667. package/dist/tools/files/actions/get.js +0 -85
  668. package/dist/tools/files/actions/get.js.map +0 -1
  669. package/dist/tools/files/actions/record-batch.d.ts +0 -18
  670. package/dist/tools/files/actions/record-batch.d.ts.map +0 -1
  671. package/dist/tools/files/actions/record-batch.js +0 -119
  672. package/dist/tools/files/actions/record-batch.js.map +0 -1
  673. package/dist/tools/files/actions/record.d.ts +0 -16
  674. package/dist/tools/files/actions/record.d.ts.map +0 -1
  675. package/dist/tools/files/actions/record.js +0 -43
  676. package/dist/tools/files/actions/record.js.map +0 -1
  677. package/dist/tools/files/actions/sqlite-flush.d.ts +0 -27
  678. package/dist/tools/files/actions/sqlite-flush.d.ts.map +0 -1
  679. package/dist/tools/files/actions/sqlite-flush.js +0 -66
  680. package/dist/tools/files/actions/sqlite-flush.js.map +0 -1
  681. package/dist/tools/files/help/example.d.ts +0 -5
  682. package/dist/tools/files/help/example.d.ts.map +0 -1
  683. package/dist/tools/files/help/example.js +0 -109
  684. package/dist/tools/files/help/example.js.map +0 -1
  685. package/dist/tools/files/help/help.d.ts +0 -5
  686. package/dist/tools/files/help/help.d.ts.map +0 -1
  687. package/dist/tools/files/help/help.js +0 -35
  688. package/dist/tools/files/help/help.js.map +0 -1
  689. package/dist/tools/files/index.d.ts +0 -14
  690. package/dist/tools/files/index.d.ts.map +0 -1
  691. package/dist/tools/files/index.js +0 -15
  692. package/dist/tools/files/index.js.map +0 -1
  693. package/dist/tools/files/internal/queries.d.ts +0 -18
  694. package/dist/tools/files/internal/queries.d.ts.map +0 -1
  695. package/dist/tools/files/internal/queries.js +0 -54
  696. package/dist/tools/files/internal/queries.js.map +0 -1
  697. package/dist/tools/files/internal/validation.d.ts +0 -18
  698. package/dist/tools/files/internal/validation.d.ts.map +0 -1
  699. package/dist/tools/files/internal/validation.js +0 -39
  700. package/dist/tools/files/internal/validation.js.map +0 -1
  701. package/dist/tools/files/types.d.ts +0 -6
  702. package/dist/tools/files/types.d.ts.map +0 -1
  703. package/dist/tools/files/types.js +0 -6
  704. package/dist/tools/files/types.js.map +0 -1
  705. package/dist/tools/help-queries.d.ts +0 -130
  706. package/dist/tools/help-queries.d.ts.map +0 -1
  707. package/dist/tools/help-queries.js +0 -411
  708. package/dist/tools/help-queries.js.map +0 -1
  709. package/dist/tools/tasks/actions/add-dependency.d.ts +0 -12
  710. package/dist/tools/tasks/actions/add-dependency.d.ts.map +0 -1
  711. package/dist/tools/tasks/actions/add-dependency.js +0 -129
  712. package/dist/tools/tasks/actions/add-dependency.js.map +0 -1
  713. package/dist/tools/tasks/actions/archive.d.ts +0 -11
  714. package/dist/tools/tasks/actions/archive.d.ts.map +0 -1
  715. package/dist/tools/tasks/actions/archive.js +0 -58
  716. package/dist/tools/tasks/actions/archive.js.map +0 -1
  717. package/dist/tools/tasks/actions/create-batch.d.ts +0 -19
  718. package/dist/tools/tasks/actions/create-batch.d.ts.map +0 -1
  719. package/dist/tools/tasks/actions/create-batch.js +0 -103
  720. package/dist/tools/tasks/actions/create-batch.js.map +0 -1
  721. package/dist/tools/tasks/actions/create.d.ts +0 -16
  722. package/dist/tools/tasks/actions/create.d.ts.map +0 -1
  723. package/dist/tools/tasks/actions/create.js +0 -163
  724. package/dist/tools/tasks/actions/create.js.map +0 -1
  725. package/dist/tools/tasks/actions/get-dependencies.d.ts +0 -12
  726. package/dist/tools/tasks/actions/get-dependencies.d.ts.map +0 -1
  727. package/dist/tools/tasks/actions/get-dependencies.js +0 -41
  728. package/dist/tools/tasks/actions/get-dependencies.js.map +0 -1
  729. package/dist/tools/tasks/actions/get-pruned-files.d.ts +0 -13
  730. package/dist/tools/tasks/actions/get-pruned-files.d.ts.map +0 -1
  731. package/dist/tools/tasks/actions/get-pruned-files.js +0 -45
  732. package/dist/tools/tasks/actions/get-pruned-files.js.map +0 -1
  733. package/dist/tools/tasks/actions/get.d.ts +0 -12
  734. package/dist/tools/tasks/actions/get.d.ts.map +0 -1
  735. package/dist/tools/tasks/actions/get.js +0 -84
  736. package/dist/tools/tasks/actions/get.js.map +0 -1
  737. package/dist/tools/tasks/actions/link-pruned-file.d.ts +0 -14
  738. package/dist/tools/tasks/actions/link-pruned-file.d.ts.map +0 -1
  739. package/dist/tools/tasks/actions/link-pruned-file.js +0 -68
  740. package/dist/tools/tasks/actions/link-pruned-file.js.map +0 -1
  741. package/dist/tools/tasks/actions/link.d.ts +0 -14
  742. package/dist/tools/tasks/actions/link.d.ts.map +0 -1
  743. package/dist/tools/tasks/actions/link.js +0 -120
  744. package/dist/tools/tasks/actions/link.js.map +0 -1
  745. package/dist/tools/tasks/actions/list.d.ts +0 -17
  746. package/dist/tools/tasks/actions/list.d.ts.map +0 -1
  747. package/dist/tools/tasks/actions/list.js +0 -100
  748. package/dist/tools/tasks/actions/list.js.map +0 -1
  749. package/dist/tools/tasks/actions/move.d.ts +0 -13
  750. package/dist/tools/tasks/actions/move.d.ts.map +0 -1
  751. package/dist/tools/tasks/actions/move.js +0 -91
  752. package/dist/tools/tasks/actions/move.js.map +0 -1
  753. package/dist/tools/tasks/actions/remove-dependency.d.ts +0 -12
  754. package/dist/tools/tasks/actions/remove-dependency.d.ts.map +0 -1
  755. package/dist/tools/tasks/actions/remove-dependency.js +0 -36
  756. package/dist/tools/tasks/actions/remove-dependency.js.map +0 -1
  757. package/dist/tools/tasks/actions/update.d.ts +0 -10
  758. package/dist/tools/tasks/actions/update.d.ts.map +0 -1
  759. package/dist/tools/tasks/actions/update.js +0 -183
  760. package/dist/tools/tasks/actions/update.js.map +0 -1
  761. package/dist/tools/tasks/actions/watch-files.d.ts +0 -14
  762. package/dist/tools/tasks/actions/watch-files.d.ts.map +0 -1
  763. package/dist/tools/tasks/actions/watch-files.js +0 -127
  764. package/dist/tools/tasks/actions/watch-files.js.map +0 -1
  765. package/dist/tools/tasks/help/example.d.ts +0 -8
  766. package/dist/tools/tasks/help/example.d.ts.map +0 -1
  767. package/dist/tools/tasks/help/example.js +0 -225
  768. package/dist/tools/tasks/help/example.js.map +0 -1
  769. package/dist/tools/tasks/help/help.d.ts +0 -8
  770. package/dist/tools/tasks/help/help.d.ts.map +0 -1
  771. package/dist/tools/tasks/help/help.js +0 -307
  772. package/dist/tools/tasks/help/help.js.map +0 -1
  773. package/dist/tools/tasks/help/use-case.d.ts +0 -11
  774. package/dist/tools/tasks/help/use-case.d.ts.map +0 -1
  775. package/dist/tools/tasks/help/use-case.js +0 -767
  776. package/dist/tools/tasks/help/use-case.js.map +0 -1
  777. package/dist/tools/tasks/index.d.ts +0 -28
  778. package/dist/tools/tasks/index.d.ts.map +0 -1
  779. package/dist/tools/tasks/index.js +0 -33
  780. package/dist/tools/tasks/index.js.map +0 -1
  781. package/dist/tools/tasks/internal/state-machine.d.ts +0 -16
  782. package/dist/tools/tasks/internal/state-machine.d.ts.map +0 -1
  783. package/dist/tools/tasks/internal/state-machine.js +0 -36
  784. package/dist/tools/tasks/internal/state-machine.js.map +0 -1
  785. package/dist/tools/tasks/internal/task-queries.d.ts +0 -12
  786. package/dist/tools/tasks/internal/task-queries.d.ts.map +0 -1
  787. package/dist/tools/tasks/internal/task-queries.js +0 -53
  788. package/dist/tools/tasks/internal/task-queries.js.map +0 -1
  789. package/dist/tools/tasks/internal/validation.d.ts +0 -47
  790. package/dist/tools/tasks/internal/validation.d.ts.map +0 -1
  791. package/dist/tools/tasks/internal/validation.js +0 -261
  792. package/dist/tools/tasks/internal/validation.js.map +0 -1
  793. package/dist/tools/tasks/types.d.ts +0 -80
  794. package/dist/tools/tasks/types.d.ts.map +0 -1
  795. package/dist/tools/tasks/types.js +0 -68
  796. package/dist/tools/tasks/types.js.map +0 -1
  797. package/dist/tools/tasks/watcher/status.d.ts +0 -9
  798. package/dist/tools/tasks/watcher/status.d.ts.map +0 -1
  799. package/dist/tools/tasks/watcher/status.js +0 -130
  800. package/dist/tools/tasks/watcher/status.js.map +0 -1
  801. package/dist/tools/tasks.d.ts +0 -16
  802. package/dist/tools/tasks.d.ts.map +0 -1
  803. package/dist/tools/tasks.js +0 -17
  804. package/dist/tools/tasks.js.map +0 -1
  805. package/dist/utils/action-specs/file-specs.d.ts +0 -9
  806. package/dist/utils/action-specs/file-specs.d.ts.map +0 -1
  807. package/dist/utils/action-specs/file-specs.js +0 -54
  808. package/dist/utils/action-specs/file-specs.js.map +0 -1
  809. package/dist/utils/action-specs/task-specs.d.ts +0 -9
  810. package/dist/utils/action-specs/task-specs.d.ts.map +0 -1
  811. package/dist/utils/action-specs/task-specs.js +0 -143
  812. package/dist/utils/action-specs/task-specs.js.map +0 -1
  813. package/dist/utils/cleanup.d.ts +0 -69
  814. package/dist/utils/cleanup.d.ts.map +0 -1
  815. package/dist/utils/cleanup.js +0 -102
  816. package/dist/utils/cleanup.js.map +0 -1
  817. package/dist/utils/file-pruning.d.ts +0 -93
  818. package/dist/utils/file-pruning.d.ts.map +0 -1
  819. package/dist/utils/file-pruning.js +0 -194
  820. package/dist/utils/file-pruning.js.map +0 -1
  821. package/dist/utils/importer/topological-sort.d.ts +0 -61
  822. package/dist/utils/importer/topological-sort.d.ts.map +0 -1
  823. package/dist/utils/importer/topological-sort.js +0 -143
  824. package/dist/utils/importer/topological-sort.js.map +0 -1
  825. package/dist/utils/retention.d.ts +0 -65
  826. package/dist/utils/retention.d.ts.map +0 -1
  827. package/dist/utils/retention.js +0 -156
  828. package/dist/utils/retention.js.map +0 -1
  829. package/dist/utils/task-stale-detection.d.ts +0 -98
  830. package/dist/utils/task-stale-detection.d.ts.map +0 -1
  831. package/dist/utils/task-stale-detection.js +0 -479
  832. package/dist/utils/task-stale-detection.js.map +0 -1
  833. package/dist/watcher/file-watcher.d.ts +0 -131
  834. package/dist/watcher/file-watcher.d.ts.map +0 -1
  835. package/dist/watcher/file-watcher.js +0 -730
  836. package/dist/watcher/file-watcher.js.map +0 -1
  837. package/dist/watcher/test-executor.d.ts +0 -23
  838. package/dist/watcher/test-executor.d.ts.map +0 -1
  839. package/dist/watcher/test-executor.js +0 -226
  840. package/dist/watcher/test-executor.js.map +0 -1
  841. package/docs/TASK_SYSTEM_DEPRECATED.md +0 -88
@@ -1,305 +0,0 @@
1
- /**
2
- * Integration test for v3.5.0 Auto-Pruning feature
3
- * Tests partial pruning scenario: keeps existing files, removes non-existent ones
4
- */
5
- import { describe, it, beforeEach, afterEach } from 'node:test';
6
- import assert from 'node:assert/strict';
7
- import { initializeDatabase, getOrCreateFile, closeDatabase } from '../../../database.js';
8
- import { detectAndTransitionToReview } from '../../../utils/task-stale-detection.js';
9
- import { ProjectContext } from '../../../utils/project-context.js';
10
- import fs from 'fs';
11
- import path from 'path';
12
- import os from 'os';
13
- describe('Auto-pruning: Partial file existence', () => {
14
- let db;
15
- let tempDir;
16
- let tempDbPath;
17
- let testCount = 0;
18
- const totalTests = 4; // Total number of tests in this suite
19
- beforeEach(async () => {
20
- // Create temp directory for test files and database
21
- tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'sqlew-test-'));
22
- tempDbPath = path.join(tempDir, 'test.db');
23
- // Initialize database with Knex adapter
24
- db = await initializeDatabase({
25
- databaseType: 'sqlite',
26
- connection: {
27
- filename: tempDbPath,
28
- },
29
- });
30
- // Reset and re-initialize ProjectContext after creating new database
31
- ProjectContext.reset();
32
- const knex = db.getKnex();
33
- const projectContext = ProjectContext.getInstance();
34
- await projectContext.ensureProject(knex, 'test-auto-pruning-partial', 'config', {
35
- projectRootPath: process.cwd(),
36
- });
37
- });
38
- afterEach(async () => {
39
- testCount++;
40
- await closeDatabase();
41
- // Cleanup temp directory
42
- if (fs.existsSync(tempDir)) {
43
- fs.rmSync(tempDir, { recursive: true, force: true });
44
- }
45
- // Detect if running filtered tests (IDE scenario with --test-name-pattern)
46
- const isFilteredTest = process.argv.some(arg => arg.includes('--test-name-pattern'));
47
- });
48
- it('should prune non-existent files and keep existing ones', async () => {
49
- // 1. Create test task
50
- const taskId = await createTestTask(db);
51
- // 2. Create 4 watched files (2 exist, 2 don't)
52
- const existingFile1 = path.join(tempDir, 'exists1.ts');
53
- const existingFile2 = path.join(tempDir, 'exists2.ts');
54
- const nonExistentFile1 = path.join(tempDir, 'missing1.ts');
55
- const nonExistentFile2 = path.join(tempDir, 'missing2.ts');
56
- fs.writeFileSync(existingFile1, '// test file 1');
57
- fs.writeFileSync(existingFile2, '// test file 2');
58
- // Don't create nonExistentFile1 and nonExistentFile2
59
- // Add all 4 files to watch list
60
- await addWatchedFiles(db, taskId, [
61
- existingFile1,
62
- existingFile2,
63
- nonExistentFile1,
64
- nonExistentFile2,
65
- ]);
66
- // Set task to in_progress status and update timestamp to be old enough
67
- // for auto-transition (older than 15 minutes, which is the default review_idle_minutes)
68
- const fifteenMinutesAgo = Math.floor(Date.now() / 1000) - (15 * 60 + 10);
69
- const knex = db.getKnex();
70
- await knex('v4_tasks')
71
- .where({ id: taskId })
72
- .update({
73
- status_id: 2,
74
- updated_ts: fifteenMinutesAgo,
75
- });
76
- // 3. Trigger auto-pruning by detecting ready for review
77
- // Change cwd to tempDir so file existence checks work correctly
78
- const originalCwd = process.cwd();
79
- try {
80
- process.chdir(tempDir);
81
- const transitioned = await detectAndTransitionToReview(db);
82
- // Task should have transitioned
83
- assert.equal(transitioned, 1, 'Should have transitioned 1 task');
84
- // 4. Verify results
85
- // Check watch list - should have only 2 files (the existing ones)
86
- const watchedFiles = await getWatchedFiles(db, taskId);
87
- assert.equal(watchedFiles.length, 2, 'Should have 2 files in watch list');
88
- assert.ok(watchedFiles.includes('exists1.ts'), 'Should keep existing file 1');
89
- assert.ok(watchedFiles.includes('exists2.ts'), 'Should keep existing file 2');
90
- // Check pruned files table - should have 2 records
91
- const prunedFiles = await knex('v4_task_pruned_files')
92
- .where({ task_id: taskId })
93
- .select('file_path');
94
- assert.equal(prunedFiles.length, 2, 'Should have 2 pruned file records');
95
- // Verify pruned files are the correct ones
96
- const prunedPaths = prunedFiles.map((f) => f.file_path);
97
- assert.ok(prunedPaths.includes('missing1.ts'), 'Should have pruned missing1.ts');
98
- assert.ok(prunedPaths.includes('missing2.ts'), 'Should have pruned missing2.ts');
99
- // Check task status transitioned to waiting_review
100
- const task = await knex('v4_tasks')
101
- .where({ id: taskId })
102
- .first('status_id');
103
- assert.equal(task.status_id, 3, 'Task should be in waiting_review status (3)');
104
- }
105
- finally {
106
- // Restore original cwd
107
- process.chdir(originalCwd);
108
- }
109
- });
110
- it('should not transition if all files are non-existent', async () => {
111
- // 1. Create test task
112
- const taskId = await createTestTask(db);
113
- // 2. Create 2 watched files that don't exist
114
- const nonExistentFile1 = path.join(tempDir, 'missing1.ts');
115
- const nonExistentFile2 = path.join(tempDir, 'missing2.ts');
116
- // Don't create these files
117
- // Add files to watch list
118
- await addWatchedFiles(db, taskId, [nonExistentFile1, nonExistentFile2]);
119
- // Set task to in_progress status and update timestamp to be old enough
120
- const fifteenMinutesAgo = Math.floor(Date.now() / 1000) - (15 * 60 + 10);
121
- const knex = db.getKnex();
122
- await knex('v4_tasks')
123
- .where({ id: taskId })
124
- .update({
125
- status_id: 2,
126
- updated_ts: fifteenMinutesAgo,
127
- });
128
- // 3. Trigger auto-pruning
129
- const originalCwd = process.cwd();
130
- try {
131
- process.chdir(tempDir);
132
- const transitioned = await detectAndTransitionToReview(db);
133
- // Task should NOT have transitioned (safety check prevents it)
134
- assert.equal(transitioned, 0, 'Should not have transitioned any tasks');
135
- // 4. Verify task is still in in_progress
136
- const task = await knex('v4_tasks')
137
- .where({ id: taskId })
138
- .first('status_id');
139
- assert.equal(task.status_id, 2, 'Task should still be in in_progress (2)');
140
- // 5. Verify no pruning occurred (safety check blocked it)
141
- const prunedFiles = await knex('v4_task_pruned_files')
142
- .where({ task_id: taskId })
143
- .count('* as count')
144
- .first();
145
- assert.ok(prunedFiles, 'Should have pruned files result');
146
- assert.equal(prunedFiles.count, 0, 'Should have 0 pruned records (safety check prevented pruning)');
147
- }
148
- finally {
149
- process.chdir(originalCwd);
150
- }
151
- });
152
- it('should not prune when all files exist', async () => {
153
- // 1. Create test task
154
- const taskId = await createTestTask(db);
155
- // 2. Create 3 watched files that all exist
156
- const existingFile1 = path.join(tempDir, 'exists1.ts');
157
- const existingFile2 = path.join(tempDir, 'exists2.ts');
158
- const existingFile3 = path.join(tempDir, 'exists3.ts');
159
- fs.writeFileSync(existingFile1, '// test file 1');
160
- fs.writeFileSync(existingFile2, '// test file 2');
161
- fs.writeFileSync(existingFile3, '// test file 3');
162
- // Add files to watch list
163
- await addWatchedFiles(db, taskId, [
164
- existingFile1,
165
- existingFile2,
166
- existingFile3,
167
- ]);
168
- // Set task to in_progress status and update timestamp to be old enough
169
- const fifteenMinutesAgo = Math.floor(Date.now() / 1000) - (15 * 60 + 10);
170
- const knex = db.getKnex();
171
- await knex('v4_tasks')
172
- .where({ id: taskId })
173
- .update({
174
- status_id: 2,
175
- updated_ts: fifteenMinutesAgo,
176
- });
177
- // 3. Trigger auto-pruning
178
- const originalCwd = process.cwd();
179
- try {
180
- process.chdir(tempDir);
181
- const transitioned = await detectAndTransitionToReview(db);
182
- // Task should have transitioned (all files exist)
183
- assert.equal(transitioned, 1, 'Should have transitioned 1 task');
184
- // 4. Verify no pruning occurred
185
- const prunedFiles = await knex('v4_task_pruned_files')
186
- .where({ task_id: taskId })
187
- .count('* as count')
188
- .first();
189
- assert.ok(prunedFiles, 'Should have pruned files result');
190
- assert.equal(prunedFiles.count, 0, 'Should have 0 pruned records');
191
- // 5. Verify all files still in watch list
192
- const watchedFiles = await getWatchedFiles(db, taskId);
193
- assert.equal(watchedFiles.length, 3, 'Should still have 3 files in watch list');
194
- // 6. Verify task transitioned to waiting_review
195
- const task = await knex('v4_tasks')
196
- .where({ id: taskId })
197
- .first('status_id');
198
- assert.equal(task.status_id, 3, 'Task should be in waiting_review status (3)');
199
- }
200
- finally {
201
- process.chdir(originalCwd);
202
- }
203
- });
204
- it('should handle mixed ratios (3 exist, 1 missing)', async () => {
205
- // 1. Create test task
206
- const taskId = await createTestTask(db);
207
- // 2. Create 4 watched files (3 exist, 1 doesn't)
208
- const existingFile1 = path.join(tempDir, 'exists1.ts');
209
- const existingFile2 = path.join(tempDir, 'exists2.ts');
210
- const existingFile3 = path.join(tempDir, 'exists3.ts');
211
- const nonExistentFile = path.join(tempDir, 'missing.ts');
212
- fs.writeFileSync(existingFile1, '// test file 1');
213
- fs.writeFileSync(existingFile2, '// test file 2');
214
- fs.writeFileSync(existingFile3, '// test file 3');
215
- // Don't create nonExistentFile
216
- // Add all files to watch list
217
- await addWatchedFiles(db, taskId, [
218
- existingFile1,
219
- existingFile2,
220
- existingFile3,
221
- nonExistentFile,
222
- ]);
223
- // Set task to in_progress status and update timestamp to be old enough
224
- const fifteenMinutesAgo = Math.floor(Date.now() / 1000) - (15 * 60 + 10);
225
- const knex = db.getKnex();
226
- await knex('v4_tasks')
227
- .where({ id: taskId })
228
- .update({
229
- status_id: 2,
230
- updated_ts: fifteenMinutesAgo,
231
- });
232
- // 3. Trigger auto-pruning
233
- const originalCwd = process.cwd();
234
- try {
235
- process.chdir(tempDir);
236
- const transitioned = await detectAndTransitionToReview(db);
237
- // Task should have transitioned
238
- assert.equal(transitioned, 1, 'Should have transitioned 1 task');
239
- // 4. Verify results
240
- const watchedFiles = await getWatchedFiles(db, taskId);
241
- assert.equal(watchedFiles.length, 3, 'Should have 3 files in watch list');
242
- const prunedFiles = await knex('v4_task_pruned_files')
243
- .where({ task_id: taskId })
244
- .select('file_path');
245
- assert.equal(prunedFiles.length, 1, 'Should have 1 pruned file record');
246
- assert.equal(prunedFiles[0].file_path, 'missing.ts', 'Should have pruned missing.ts');
247
- }
248
- finally {
249
- process.chdir(originalCwd);
250
- }
251
- });
252
- });
253
- // Helper functions
254
- /**
255
- * Create a test task in in_progress status
256
- * Note: Agent tracking removed in v4.0
257
- */
258
- async function createTestTask(db) {
259
- const knex = db.getKnex();
260
- const projectId = ProjectContext.getInstance().getProjectId();
261
- const now = Math.floor(Date.now() / 1000);
262
- const [taskId] = await knex('v4_tasks').insert({
263
- title: 'Test Task for Auto-Pruning',
264
- status_id: 2,
265
- priority: 2,
266
- project_id: projectId, // Required after v3.7.0
267
- created_ts: now, // Required NOT NULL field
268
- updated_ts: now // Required NOT NULL field
269
- });
270
- return taskId;
271
- }
272
- /**
273
- * Add watched files to a task
274
- */
275
- async function addWatchedFiles(db, taskId, filePaths) {
276
- const knex = db.getKnex();
277
- const projectId = ProjectContext.getInstance().getProjectId();
278
- const now = Math.floor(Date.now() / 1000);
279
- for (const filePath of filePaths) {
280
- // Extract just the filename (last segment) for relative paths
281
- const fileName = path.basename(filePath);
282
- const fileId = await getOrCreateFile(db, 1, fileName);
283
- await knex('v4_task_file_links')
284
- .insert({
285
- task_id: taskId,
286
- file_id: fileId,
287
- project_id: projectId, // Required after v3.8.0
288
- linked_ts: now, // Required after v3.8.0
289
- })
290
- .onConflict(['project_id', 'task_id', 'file_id']) // Fixed for v3.8.0 UNIQUE constraint
291
- .ignore();
292
- }
293
- }
294
- /**
295
- * Get watched files for a task
296
- */
297
- async function getWatchedFiles(db, taskId) {
298
- const knex = db.getKnex();
299
- const files = await knex('v4_task_file_links as tfl')
300
- .join('v4_files as mf', 'tfl.file_id', 'mf.id')
301
- .where('tfl.task_id', taskId)
302
- .select('mf.path');
303
- return files.map((row) => row.path);
304
- }
305
- //# sourceMappingURL=auto-pruning-partial.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auto-pruning-partial.test.js","sourceRoot":"","sources":["../../../../src/tests/feature/task/auto-pruning-partial.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Integration tests for v3.5.0 Auto-Pruning persistence
3
- * Tests audit trail persistence after task archival (no cascade deletion)
4
- */
5
- export {};
6
- //# sourceMappingURL=auto-pruning-persistence.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auto-pruning-persistence.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/feature/task/auto-pruning-persistence.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -1,267 +0,0 @@
1
- /**
2
- * Integration tests for v3.5.0 Auto-Pruning persistence
3
- * Tests audit trail persistence after task archival (no cascade deletion)
4
- */
5
- import { describe, it, beforeEach, afterEach } from 'node:test';
6
- import assert from 'node:assert/strict';
7
- import { initializeDatabase, closeDatabase } from '../../../database.js';
8
- import { ProjectContext } from '../../../utils/project-context.js';
9
- /**
10
- * Test database instance
11
- */
12
- let testDb;
13
- /**
14
- * Create an in-memory test database with schema and migrations
15
- */
16
- async function createTestDatabase() {
17
- const adapter = await initializeDatabase({
18
- databaseType: 'sqlite',
19
- connection: {
20
- filename: ':memory:',
21
- },
22
- });
23
- // Enable foreign keys for SQLite
24
- const knex = adapter.getKnex();
25
- await knex.raw('PRAGMA foreign_keys = ON');
26
- return adapter;
27
- }
28
- /**
29
- * Helper: Create a test task in 'done' status (ready to archive)
30
- * Note: Agent tracking removed in v4.0
31
- */
32
- async function createTestTask(adapter, title) {
33
- const knex = adapter.getKnex();
34
- const projectId = ProjectContext.getInstance().getProjectId();
35
- const statusId = 5; // done (ready to archive)
36
- const now = Math.floor(Date.now() / 1000);
37
- const [taskId] = await knex('v4_tasks').insert({
38
- title,
39
- status_id: statusId,
40
- priority: 2,
41
- project_id: projectId, // Required after v3.7.0
42
- created_ts: now, // Required NOT NULL field
43
- updated_ts: now // Required NOT NULL field
44
- });
45
- return taskId;
46
- }
47
- /**
48
- * Helper: Create a pruned file record in audit table
49
- */
50
- async function createPrunedFileRecord(adapter, taskId, filePath) {
51
- const knex = adapter.getKnex();
52
- const projectId = ProjectContext.getInstance().getProjectId();
53
- const [id] = await knex('v4_task_pruned_files').insert({
54
- task_id: taskId,
55
- file_path: filePath,
56
- pruned_ts: knex.raw('unixepoch()'),
57
- project_id: projectId, // Required after v3.7.0
58
- });
59
- return id;
60
- }
61
- /**
62
- * Helper: Get task status by ID
63
- */
64
- async function getTaskStatus(adapter, taskId) {
65
- const knex = adapter.getKnex();
66
- const row = await knex('v4_tasks')
67
- .where({ id: taskId })
68
- .first('status_id');
69
- if (!row) {
70
- throw new Error(`Task not found: ${taskId}`);
71
- }
72
- return row.status_id;
73
- }
74
- /**
75
- * Helper: Count pruned file records for a task
76
- */
77
- async function countPrunedFiles(adapter, taskId) {
78
- const knex = adapter.getKnex();
79
- const row = await knex('v4_task_pruned_files')
80
- .where({ task_id: taskId })
81
- .count('* as count')
82
- .first();
83
- return row?.count || 0;
84
- }
85
- /**
86
- * Helper: Archive a task (test version)
87
- */
88
- async function archiveTask(adapter, taskId) {
89
- const TASK_STATUS_DONE = 5;
90
- const TASK_STATUS_ARCHIVED = 6;
91
- const knex = adapter.getKnex();
92
- return await knex.transaction(async (trx) => {
93
- // Check if task is in 'done' status
94
- const taskRow = await trx('v4_tasks')
95
- .where({ id: taskId })
96
- .first('status_id');
97
- if (!taskRow) {
98
- throw new Error(`Task with id ${taskId} not found`);
99
- }
100
- if (taskRow.status_id !== TASK_STATUS_DONE) {
101
- throw new Error(`Task ${taskId} must be in 'done' status to archive`);
102
- }
103
- // Update to archived
104
- await trx('v4_tasks')
105
- .where({ id: taskId })
106
- .update({ status_id: TASK_STATUS_ARCHIVED });
107
- return { success: true, task_id: taskId };
108
- });
109
- }
110
- /**
111
- * Helper: Get pruned files for a task (test version)
112
- */
113
- async function getPrunedFiles(adapter, taskId) {
114
- const knex = adapter.getKnex();
115
- const rows = await knex('v4_task_pruned_files')
116
- .where({ task_id: taskId })
117
- .select('file_path', 'pruned_ts')
118
- .orderBy('pruned_ts', 'desc');
119
- return {
120
- success: true,
121
- count: rows.length,
122
- pruned_files: rows
123
- };
124
- }
125
- describe('Auto-pruning: Audit trail persistence after archival', () => {
126
- let testCount = 0;
127
- const totalTests = 6; // Total number of tests in this suite
128
- beforeEach(async () => {
129
- testDb = await createTestDatabase();
130
- // Reset and re-initialize ProjectContext after creating new database
131
- ProjectContext.reset();
132
- const knex = testDb.getKnex();
133
- const projectContext = ProjectContext.getInstance();
134
- await projectContext.ensureProject(knex, 'test-auto-pruning-persistence', 'config', {
135
- projectRootPath: process.cwd(),
136
- });
137
- });
138
- afterEach(async () => {
139
- testCount++;
140
- await closeDatabase();
141
- // Detect if running filtered tests (IDE scenario with --test-name-pattern)
142
- const isFilteredTest = process.argv.some(arg => arg.includes('--test-name-pattern'));
143
- });
144
- it('should preserve audit trail after task archival', async () => {
145
- // 1. Setup: Create task with pruned files
146
- const taskId = await createTestTask(testDb, 'Task with pruned files');
147
- // Create multiple pruned file records
148
- const prunedFileIds = [
149
- await createPrunedFileRecord(testDb, taskId, '/tmp/file1.ts'),
150
- await createPrunedFileRecord(testDb, taskId, '/tmp/file2.ts'),
151
- await createPrunedFileRecord(testDb, taskId, '/tmp/file3.ts')
152
- ];
153
- assert.equal(prunedFileIds.length, 3, 'Should create 3 pruned file records');
154
- // 2. Verify pruned files exist before archival
155
- const beforeCount = await countPrunedFiles(testDb, taskId);
156
- assert.equal(beforeCount, 3, 'Should have 3 pruned file records before archival');
157
- // 3. Archive the task
158
- const archiveResult = await archiveTask(testDb, taskId);
159
- assert.ok(archiveResult.success, 'Task archival should succeed');
160
- assert.equal(archiveResult.task_id, taskId);
161
- // 4. Verify task is archived
162
- const taskStatus = await getTaskStatus(testDb, taskId);
163
- assert.equal(taskStatus, 6, 'Task should be archived (status_id 6)');
164
- // 5. Verify pruned files still exist (NOT cascade deleted)
165
- const afterCount = await countPrunedFiles(testDb, taskId);
166
- assert.equal(afterCount, 3, 'Should still have 3 pruned file records after archival');
167
- // 6. Verify get_pruned_files works for archived tasks
168
- const getPrunedResult = await getPrunedFiles(testDb, taskId);
169
- assert.ok(getPrunedResult.success, 'get_pruned_files should work for archived tasks');
170
- assert.equal(getPrunedResult.count, 3, 'Should return count of 3 pruned files');
171
- assert.equal(getPrunedResult.pruned_files.length, 3, 'Should return all 3 pruned files');
172
- // Verify file paths are preserved
173
- const filePaths = getPrunedResult.pruned_files.map((f) => f.file_path);
174
- assert.ok(filePaths.includes('/tmp/file1.ts'), 'Should include file1.ts');
175
- assert.ok(filePaths.includes('/tmp/file2.ts'), 'Should include file2.ts');
176
- assert.ok(filePaths.includes('/tmp/file3.ts'), 'Should include file3.ts');
177
- });
178
- it('should maintain foreign key integrity after archival', async () => {
179
- const taskId = await createTestTask(testDb, 'Task for FK test');
180
- await createPrunedFileRecord(testDb, taskId, '/tmp/test.ts');
181
- // Archive task
182
- const archiveResult = await archiveTask(testDb, taskId);
183
- assert.ok(archiveResult.success, 'Task archival should succeed');
184
- // Verify foreign key still valid (can JOIN successfully)
185
- const knex = testDb.getKnex();
186
- const result = await knex('v4_task_pruned_files as tpf')
187
- .join('v4_tasks as t', 'tpf.task_id', 't.id')
188
- .where('tpf.task_id', taskId)
189
- .select('tpf.id', 'tpf.task_id', 't.status_id')
190
- .first();
191
- assert.ok(result, 'Foreign key join should succeed');
192
- assert.equal(result.task_id, taskId, 'Task ID should match');
193
- assert.equal(result.status_id, 6, 'Task status should be archived (6)');
194
- });
195
- it('should handle zero pruned files for archived task', async () => {
196
- const taskId = await createTestTask(testDb, 'Task with no pruned files');
197
- // Archive without any pruned files
198
- const archiveResult = await archiveTask(testDb, taskId);
199
- assert.ok(archiveResult.success);
200
- // Query pruned files - should return empty array
201
- const getPrunedResult = await getPrunedFiles(testDb, taskId);
202
- assert.ok(getPrunedResult.success);
203
- assert.equal(getPrunedResult.count, 0);
204
- assert.equal(getPrunedResult.pruned_files.length, 0);
205
- });
206
- it('should preserve pruned file timestamps after archival', async () => {
207
- const taskId = await createTestTask(testDb, 'Task for timestamp test');
208
- // Create pruned file with explicit timestamp check
209
- const beforeTs = Math.floor(Date.now() / 1000);
210
- await createPrunedFileRecord(testDb, taskId, '/tmp/timestamped.ts');
211
- // Archive task
212
- await archiveTask(testDb, taskId);
213
- // Get pruned files and verify timestamp
214
- const getPrunedResult = await getPrunedFiles(testDb, taskId);
215
- assert.equal(getPrunedResult.pruned_files.length, 1);
216
- const prunedFile = getPrunedResult.pruned_files[0];
217
- assert.ok(prunedFile.pruned_ts, 'Should have pruned_ts timestamp');
218
- assert.ok(prunedFile.file_path === '/tmp/timestamped.ts', 'File path should match');
219
- // Verify timestamp is reasonable (within last few seconds)
220
- const prunedAt = prunedFile.pruned_ts;
221
- assert.ok(prunedAt >= beforeTs, 'Timestamp should be after or equal to test start');
222
- assert.ok(prunedAt <= beforeTs + 5, 'Timestamp should be within 5 seconds');
223
- });
224
- it('should handle multiple archived tasks with pruned files', async () => {
225
- // Create multiple tasks with pruned files
226
- const task1Id = await createTestTask(testDb, 'Task 1');
227
- const task2Id = await createTestTask(testDb, 'Task 2');
228
- const task3Id = await createTestTask(testDb, 'Task 3');
229
- await createPrunedFileRecord(testDb, task1Id, '/tmp/task1-file1.ts');
230
- await createPrunedFileRecord(testDb, task1Id, '/tmp/task1-file2.ts');
231
- await createPrunedFileRecord(testDb, task2Id, '/tmp/task2-file1.ts');
232
- await createPrunedFileRecord(testDb, task3Id, '/tmp/task3-file1.ts');
233
- await createPrunedFileRecord(testDb, task3Id, '/tmp/task3-file2.ts');
234
- await createPrunedFileRecord(testDb, task3Id, '/tmp/task3-file3.ts');
235
- // Archive all tasks
236
- await archiveTask(testDb, task1Id);
237
- await archiveTask(testDb, task2Id);
238
- await archiveTask(testDb, task3Id);
239
- // Verify each task's pruned files are isolated and preserved
240
- const task1Pruned = await getPrunedFiles(testDb, task1Id);
241
- assert.equal(task1Pruned.count, 2, 'Task 1 should have 2 pruned files');
242
- const task2Pruned = await getPrunedFiles(testDb, task2Id);
243
- assert.equal(task2Pruned.count, 1, 'Task 2 should have 1 pruned file');
244
- const task3Pruned = await getPrunedFiles(testDb, task3Id);
245
- assert.equal(task3Pruned.count, 3, 'Task 3 should have 3 pruned files');
246
- // Verify file paths are isolated (no cross-contamination)
247
- const task1Paths = task1Pruned.pruned_files.map((f) => f.file_path);
248
- assert.ok(!task1Paths.includes('/tmp/task2-file1.ts'), 'Task 1 should not include Task 2 files');
249
- assert.ok(!task1Paths.includes('/tmp/task3-file1.ts'), 'Task 1 should not include Task 3 files');
250
- });
251
- it('should verify CASCADE constraint when task is deleted (not archived)', async () => {
252
- // This test verifies the ON DELETE CASCADE behavior
253
- const taskId = await createTestTask(testDb, 'Task for deletion test');
254
- await createPrunedFileRecord(testDb, taskId, '/tmp/cascade-test.ts');
255
- // Verify pruned file exists
256
- const beforeCount = await countPrunedFiles(testDb, taskId);
257
- assert.equal(beforeCount, 1);
258
- // DELETE task (not archive) - should cascade delete pruned files
259
- const knex = testDb.getKnex();
260
- await knex('v4_tasks').where({ id: taskId }).delete();
261
- // Verify pruned file was cascade deleted
262
- const afterCount = await countPrunedFiles(testDb, taskId);
263
- assert.equal(afterCount, 0, 'Pruned files should be CASCADE deleted when task is deleted');
264
- });
265
- console.log('\n✅ All auto-pruning persistence tests passed!\n');
266
- });
267
- //# sourceMappingURL=auto-pruning-persistence.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auto-pruning-persistence.test.js","sourceRoot":"","sources":["../../../../src/tests/feature/task/auto-pruning-persistence.test.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Integration tests for v3.5.0 Auto-Pruning Safety Check
3
- * Tests that the system blocks task transition when ALL watched files are non-existent
4
- *
5
- * Test Scenario: Zero Work Done Protection
6
- * - Create task with 3 watched files
7
- * - Make ALL 3 files non-existent
8
- * - Trigger detectAndTransitionToReview()
9
- * - Expected: Error thrown, task status unchanged, transaction rolled back
10
- */
11
- export {};
12
- //# sourceMappingURL=auto-pruning-safety.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auto-pruning-safety.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/feature/task/auto-pruning-safety.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}