sqlew 3.9.0 → 4.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 (852) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +20 -3
  3. package/assets/sample-agents/sqlew-architect.md +3 -4
  4. package/assets/sample-agents/sqlew-researcher.md +6 -15
  5. package/assets/sample-agents/sqlew-scrum-master.md +58 -50
  6. package/assets/sample-commands/sqw-documentor.md +62 -16
  7. package/assets/sample-commands/sqw-plan.md +82 -35
  8. package/assets/sample-commands/sqw-research.md +78 -17
  9. package/assets/sample-commands/sqw-review.md +66 -29
  10. package/assets/sample-commands/sqw-scrum.md +37 -3
  11. package/dist/adapters/mysql-adapter.js +3 -3
  12. package/dist/adapters/postgresql-adapter.js +3 -3
  13. package/dist/cli/db-dump.js +73 -73
  14. package/dist/cli/db-export.js +50 -50
  15. package/dist/cli/db-import.js +51 -51
  16. package/dist/cli.js +52 -52
  17. package/dist/config/minimal-generator.js +91 -91
  18. package/dist/database/config/config-ops.d.ts +19 -11
  19. package/dist/database/config/config-ops.d.ts.map +1 -1
  20. package/dist/database/config/config-ops.js +62 -36
  21. package/dist/database/config/config-ops.js.map +1 -1
  22. package/dist/database/index.d.ts +3 -1
  23. package/dist/database/index.d.ts.map +1 -1
  24. package/dist/database/index.js +4 -2
  25. package/dist/database/index.js.map +1 -1
  26. package/dist/database/initialization/init.d.ts.map +1 -1
  27. package/dist/database/initialization/init.js +31 -0
  28. package/dist/database/initialization/init.js.map +1 -1
  29. package/dist/database/initialization/schema-version.d.ts +94 -0
  30. package/dist/database/initialization/schema-version.d.ts.map +1 -0
  31. package/dist/database/initialization/schema-version.js +166 -0
  32. package/dist/database/initialization/schema-version.js.map +1 -0
  33. package/dist/database/migrations/v4/20251126000000_v4_bootstrap.d.ts +36 -0
  34. package/dist/database/migrations/v4/20251126000000_v4_bootstrap.d.ts.map +1 -0
  35. package/dist/database/migrations/v4/20251126000000_v4_bootstrap.js +597 -0
  36. package/dist/database/migrations/v4/20251126000000_v4_bootstrap.js.map +1 -0
  37. package/dist/database/migrations/v4/20251126000001_v4_migrate_data.d.ts +26 -0
  38. package/dist/database/migrations/v4/20251126000001_v4_migrate_data.d.ts.map +1 -0
  39. package/dist/database/migrations/v4/20251126000001_v4_migrate_data.js +390 -0
  40. package/dist/database/migrations/v4/20251126000001_v4_migrate_data.js.map +1 -0
  41. package/dist/database/migrations/v4/20251127000000_add_rejected_status.d.ts +17 -0
  42. package/dist/database/migrations/v4/20251127000000_add_rejected_status.d.ts.map +1 -0
  43. package/dist/database/migrations/v4/20251127000000_add_rejected_status.js +50 -0
  44. package/dist/database/migrations/v4/20251127000000_add_rejected_status.js.map +1 -0
  45. package/dist/database/migrations/v4/20251127000001_update_task_move_help.d.ts +13 -0
  46. package/dist/database/migrations/v4/20251127000001_update_task_move_help.d.ts.map +1 -0
  47. package/dist/database/migrations/v4/20251127000001_update_task_move_help.js +76 -0
  48. package/dist/database/migrations/v4/20251127000001_update_task_move_help.js.map +1 -0
  49. package/dist/database/migrations/v4/20251127000002_v4_seed_help_system.d.ts +17 -0
  50. package/dist/database/migrations/v4/20251127000002_v4_seed_help_system.d.ts.map +1 -0
  51. package/dist/database/migrations/v4/20251127000002_v4_seed_help_system.js +334 -0
  52. package/dist/database/migrations/v4/20251127000002_v4_seed_help_system.js.map +1 -0
  53. package/dist/database/migrations/v4/20251127000003_add_task_notes_column.d.ts +11 -0
  54. package/dist/database/migrations/v4/20251127000003_add_task_notes_column.d.ts.map +1 -0
  55. package/dist/database/migrations/v4/20251127000003_add_task_notes_column.js +33 -0
  56. package/dist/database/migrations/v4/20251127000003_add_task_notes_column.js.map +1 -0
  57. package/dist/database/operations/inserts.d.ts +12 -7
  58. package/dist/database/operations/inserts.d.ts.map +1 -1
  59. package/dist/database/operations/inserts.js +30 -60
  60. package/dist/database/operations/inserts.js.map +1 -1
  61. package/dist/database/operations/queries.d.ts.map +1 -1
  62. package/dist/database/operations/queries.js +19 -21
  63. package/dist/database/operations/queries.js.map +1 -1
  64. package/dist/database/operations/updates.d.ts +2 -1
  65. package/dist/database/operations/updates.d.ts.map +1 -1
  66. package/dist/database/operations/updates.js +3 -6
  67. package/dist/database/operations/updates.js.map +1 -1
  68. package/dist/init-agents.js +27 -27
  69. package/dist/init-commands.js +25 -25
  70. package/dist/knexfile.d.ts.map +1 -1
  71. package/dist/knexfile.js +5 -25
  72. package/dist/knexfile.js.map +1 -1
  73. package/dist/schema.d.ts +7 -3
  74. package/dist/schema.d.ts.map +1 -1
  75. package/dist/schema.js +43 -50
  76. package/dist/schema.js.map +1 -1
  77. package/dist/server/arg-parser.js +18 -18
  78. package/dist/server/tool-registry.d.ts.map +1 -1
  79. package/dist/server/tool-registry.js +18 -1
  80. package/dist/server/tool-registry.js.map +1 -1
  81. package/dist/sync-gitignore.d.ts +13 -0
  82. package/dist/sync-gitignore.d.ts.map +1 -0
  83. package/dist/sync-gitignore.js +60 -0
  84. package/dist/sync-gitignore.js.map +1 -0
  85. package/dist/tests/database/multi-project/multi-project.test.js +13 -13
  86. package/dist/tests/database/multi-project/multi-project.test.js.map +1 -1
  87. package/dist/tests/database/sql-dump/default-conversions.test.js +4 -4
  88. package/dist/tests/database/sql-dump/default-conversions.test.js.map +1 -1
  89. package/dist/tests/database/sql-dump/table-ordering.test.js +14 -14
  90. package/dist/tests/database/sql-dump/table-ordering.test.js.map +1 -1
  91. package/dist/tests/docker/cross-database.test.js +12 -18
  92. package/dist/tests/docker/cross-database.test.js.map +1 -1
  93. package/dist/tests/docker/dump-import.test.js +15 -15
  94. package/dist/tests/docker/dump-import.test.js.map +1 -1
  95. package/dist/tests/docker/multi-project-migration.test.js +44 -61
  96. package/dist/tests/docker/multi-project-migration.test.js.map +1 -1
  97. package/dist/tests/docker/native/constraint-operations.test.d.ts +1 -1
  98. package/dist/tests/docker/native/constraint-operations.test.js +65 -114
  99. package/dist/tests/docker/native/constraint-operations.test.js.map +1 -1
  100. package/dist/tests/docker/native/db-init.d.ts +1 -1
  101. package/dist/tests/docker/native/db-init.js +3 -3
  102. package/dist/tests/docker/native/db-init.js.map +1 -1
  103. package/dist/tests/docker/native/decision-operations.test.js +93 -148
  104. package/dist/tests/docker/native/decision-operations.test.js.map +1 -1
  105. package/dist/tests/docker/native/help-system.test.js +60 -60
  106. package/dist/tests/docker/native/help-system.test.js.map +1 -1
  107. package/dist/tests/docker/native/suggest-tool.test.js +25 -33
  108. package/dist/tests/docker/native/suggest-tool.test.js.map +1 -1
  109. package/dist/tests/docker/native/task-operations.test.js +114 -140
  110. package/dist/tests/docker/native/task-operations.test.js.map +1 -1
  111. package/dist/tests/docker/native/test-harness.d.ts +0 -9
  112. package/dist/tests/docker/native/test-harness.d.ts.map +1 -1
  113. package/dist/tests/docker/native/test-harness.js +42 -69
  114. package/dist/tests/docker/native/test-harness.js.map +1 -1
  115. package/dist/tests/feature/task/auto-pruning-decision-link.test.js +6 -9
  116. package/dist/tests/feature/task/auto-pruning-decision-link.test.js.map +1 -1
  117. package/dist/tests/feature/task/auto-pruning-partial.test.js +17 -19
  118. package/dist/tests/feature/task/auto-pruning-partial.test.js.map +1 -1
  119. package/dist/tests/feature/task/auto-pruning-persistence.test.js +11 -14
  120. package/dist/tests/feature/task/auto-pruning-persistence.test.js.map +1 -1
  121. package/dist/tests/feature/task/auto-pruning-safety.test.js +23 -42
  122. package/dist/tests/feature/task/auto-pruning-safety.test.js.map +1 -1
  123. package/dist/tests/feature/task/dependencies.test.js +30 -34
  124. package/dist/tests/feature/task/dependencies.test.js.map +1 -1
  125. package/dist/tests/feature/task/link-file-backward-compat.test.js +19 -21
  126. package/dist/tests/feature/task/link-file-backward-compat.test.js.map +1 -1
  127. package/dist/tests/feature/task/watch-files-action.test.js +10 -12
  128. package/dist/tests/feature/task/watch-files-action.test.js.map +1 -1
  129. package/dist/tests/feature/task/watch-files-parameter.test.js +25 -27
  130. package/dist/tests/feature/task/watch-files-parameter.test.js.map +1 -1
  131. package/dist/tests/feature/vcs/git-aware-completion.test.js +32 -42
  132. package/dist/tests/feature/vcs/git-aware-completion.test.js.map +1 -1
  133. package/dist/tests/feature/vcs/two-step-git-completion.test.js +83 -104
  134. package/dist/tests/feature/vcs/two-step-git-completion.test.js.map +1 -1
  135. package/dist/tests/integration/all-features.standalone.js +4 -6
  136. package/dist/tests/integration/all-features.standalone.js.map +1 -1
  137. package/dist/tests/integration/auto-trigger-suggestions.test.js +26 -68
  138. package/dist/tests/integration/auto-trigger-suggestions.test.js.map +1 -1
  139. package/dist/tests/integration/decision-intelligence-e2e.test.js +32 -71
  140. package/dist/tests/integration/decision-intelligence-e2e.test.js.map +1 -1
  141. package/dist/tests/integration/e2e-workflow1-debug.test.js +3 -17
  142. package/dist/tests/integration/e2e-workflow1-debug.test.js.map +1 -1
  143. package/dist/tests/integration/hybrid-similarity-detection.test.js +45 -55
  144. package/dist/tests/integration/hybrid-similarity-detection.test.js.map +1 -1
  145. package/dist/tests/migrations/test-all-versions.d.ts +1 -1
  146. package/dist/tests/migrations/test-all-versions.js +11 -9
  147. package/dist/tests/migrations/test-all-versions.js.map +1 -1
  148. package/dist/tests/migrations/v4/v4-fresh-install.test.d.ts +7 -0
  149. package/dist/tests/migrations/v4/v4-fresh-install.test.d.ts.map +1 -0
  150. package/dist/tests/migrations/v4/v4-fresh-install.test.js +168 -0
  151. package/dist/tests/migrations/v4/v4-fresh-install.test.js.map +1 -0
  152. package/dist/tests/migrations/v4/v4-migrate-data.test.d.ts +13 -0
  153. package/dist/tests/migrations/v4/v4-migrate-data.test.d.ts.map +1 -0
  154. package/dist/tests/migrations/v4/v4-migrate-data.test.js +264 -0
  155. package/dist/tests/migrations/v4/v4-migrate-data.test.js.map +1 -0
  156. package/dist/tests/test-v4-native-rdbms.d.ts +10 -0
  157. package/dist/tests/test-v4-native-rdbms.d.ts.map +1 -0
  158. package/dist/tests/test-v4-native-rdbms.js +235 -0
  159. package/dist/tests/test-v4-native-rdbms.js.map +1 -0
  160. package/dist/tests/unit/constraint-scorer.test.d.ts +13 -0
  161. package/dist/tests/unit/constraint-scorer.test.d.ts.map +1 -0
  162. package/dist/tests/unit/constraint-scorer.test.js +390 -0
  163. package/dist/tests/unit/constraint-scorer.test.js.map +1 -0
  164. package/dist/tests/unit/validation/policy-validation.test.js +15 -15
  165. package/dist/tests/unit/validation/policy-validation.test.js.map +1 -1
  166. package/dist/tests/utils/db-config.d.ts.map +1 -1
  167. package/dist/tests/utils/db-config.js +2 -3
  168. package/dist/tests/utils/db-config.js.map +1 -1
  169. package/dist/tests/utils/db-seeding.d.ts.map +1 -1
  170. package/dist/tests/utils/db-seeding.js +17 -20
  171. package/dist/tests/utils/db-seeding.js.map +1 -1
  172. package/dist/tests/utils/task-helpers.d.ts +9 -9
  173. package/dist/tests/utils/task-helpers.d.ts.map +1 -1
  174. package/dist/tests/utils/task-helpers.js +26 -43
  175. package/dist/tests/utils/task-helpers.js.map +1 -1
  176. package/dist/tests/utils/test-helpers.d.ts +13 -8
  177. package/dist/tests/utils/test-helpers.d.ts.map +1 -1
  178. package/dist/tests/utils/test-helpers.js +55 -69
  179. package/dist/tests/utils/test-helpers.js.map +1 -1
  180. package/dist/tools/constraints/actions/add.d.ts.map +1 -1
  181. package/dist/tools/constraints/actions/add.js +8 -23
  182. package/dist/tools/constraints/actions/add.js.map +1 -1
  183. package/dist/tools/constraints/actions/deactivate.js +2 -2
  184. package/dist/tools/constraints/actions/deactivate.js.map +1 -1
  185. package/dist/tools/constraints/actions/get.d.ts +2 -2
  186. package/dist/tools/constraints/actions/get.js +2 -2
  187. package/dist/tools/context/actions/create-policy.d.ts.map +1 -1
  188. package/dist/tools/context/actions/create-policy.js +3 -20
  189. package/dist/tools/context/actions/create-policy.js.map +1 -1
  190. package/dist/tools/context/actions/create-template.d.ts.map +1 -1
  191. package/dist/tools/context/actions/create-template.js +5 -9
  192. package/dist/tools/context/actions/create-template.js.map +1 -1
  193. package/dist/tools/context/actions/hard-delete.js +12 -12
  194. package/dist/tools/context/actions/hard-delete.js.map +1 -1
  195. package/dist/tools/context/actions/has-updates.js +3 -3
  196. package/dist/tools/context/actions/has-updates.js.map +1 -1
  197. package/dist/tools/context/actions/list-policies.d.ts.map +1 -1
  198. package/dist/tools/context/actions/list-policies.js +3 -3
  199. package/dist/tools/context/actions/list-policies.js.map +1 -1
  200. package/dist/tools/context/actions/list-templates.d.ts.map +1 -1
  201. package/dist/tools/context/actions/list-templates.js +4 -5
  202. package/dist/tools/context/actions/list-templates.js.map +1 -1
  203. package/dist/tools/context/actions/list.js +1 -1
  204. package/dist/tools/context/actions/list.js.map +1 -1
  205. package/dist/tools/context/actions/search-layer.d.ts.map +1 -1
  206. package/dist/tools/context/actions/search-layer.js +11 -12
  207. package/dist/tools/context/actions/search-layer.js.map +1 -1
  208. package/dist/tools/context/actions/set-from-policy.js +1 -1
  209. package/dist/tools/context/actions/set-from-policy.js.map +1 -1
  210. package/dist/tools/context/actions/set-from-template.js +2 -2
  211. package/dist/tools/context/actions/set-from-template.js.map +1 -1
  212. package/dist/tools/context/actions/versions.d.ts.map +1 -1
  213. package/dist/tools/context/actions/versions.js +6 -7
  214. package/dist/tools/context/actions/versions.js.map +1 -1
  215. package/dist/tools/context/internal/queries.d.ts.map +1 -1
  216. package/dist/tools/context/internal/queries.js +73 -53
  217. package/dist/tools/context/internal/queries.js.map +1 -1
  218. package/dist/tools/example/actions/get.js +7 -7
  219. package/dist/tools/example/actions/get.js.map +1 -1
  220. package/dist/tools/example/actions/list-all.js +4 -4
  221. package/dist/tools/example/actions/list-all.js.map +1 -1
  222. package/dist/tools/example/actions/search.js +8 -8
  223. package/dist/tools/example/actions/search.js.map +1 -1
  224. package/dist/tools/example/help/example.js +21 -21
  225. package/dist/tools/files/actions/check-lock.d.ts.map +1 -1
  226. package/dist/tools/files/actions/check-lock.js +4 -6
  227. package/dist/tools/files/actions/check-lock.js.map +1 -1
  228. package/dist/tools/files/actions/get.d.ts.map +1 -1
  229. package/dist/tools/files/actions/get.js +6 -8
  230. package/dist/tools/files/actions/get.js.map +1 -1
  231. package/dist/tools/files/internal/queries.d.ts.map +1 -1
  232. package/dist/tools/files/internal/queries.js +5 -14
  233. package/dist/tools/files/internal/queries.js.map +1 -1
  234. package/dist/tools/help/actions/batch-guide.js +5 -5
  235. package/dist/tools/help/actions/batch-guide.js.map +1 -1
  236. package/dist/tools/help-queries.js +29 -29
  237. package/dist/tools/help-queries.js.map +1 -1
  238. package/dist/tools/suggest/actions/by-tags.d.ts +2 -2
  239. package/dist/tools/suggest/actions/by-tags.js +2 -2
  240. package/dist/tools/suggest/actions/constraint-by-context.d.ts +66 -0
  241. package/dist/tools/suggest/actions/constraint-by-context.d.ts.map +1 -0
  242. package/dist/tools/suggest/actions/constraint-by-context.js +82 -0
  243. package/dist/tools/suggest/actions/constraint-by-context.js.map +1 -0
  244. package/dist/tools/suggest/actions/constraint-by-tags.d.ts +48 -0
  245. package/dist/tools/suggest/actions/constraint-by-tags.d.ts.map +1 -0
  246. package/dist/tools/suggest/actions/constraint-by-tags.js +68 -0
  247. package/dist/tools/suggest/actions/constraint-by-tags.js.map +1 -0
  248. package/dist/tools/suggest/actions/constraint-by-text.d.ts +47 -0
  249. package/dist/tools/suggest/actions/constraint-by-text.d.ts.map +1 -0
  250. package/dist/tools/suggest/actions/constraint-by-text.js +65 -0
  251. package/dist/tools/suggest/actions/constraint-by-text.js.map +1 -0
  252. package/dist/tools/suggest/actions/constraint-check-duplicate.d.ts +50 -0
  253. package/dist/tools/suggest/actions/constraint-check-duplicate.d.ts.map +1 -0
  254. package/dist/tools/suggest/actions/constraint-check-duplicate.js +68 -0
  255. package/dist/tools/suggest/actions/constraint-check-duplicate.js.map +1 -0
  256. package/dist/tools/suggest/help/constraint-help.d.ts +12 -0
  257. package/dist/tools/suggest/help/constraint-help.d.ts.map +1 -0
  258. package/dist/tools/suggest/help/constraint-help.js +126 -0
  259. package/dist/tools/suggest/help/constraint-help.js.map +1 -0
  260. package/dist/tools/suggest/index.d.ts +3 -2
  261. package/dist/tools/suggest/index.d.ts.map +1 -1
  262. package/dist/tools/suggest/index.js +67 -4
  263. package/dist/tools/suggest/index.js.map +1 -1
  264. package/dist/tools/suggest/internal/constraint-queries.d.ts +55 -0
  265. package/dist/tools/suggest/internal/constraint-queries.d.ts.map +1 -0
  266. package/dist/tools/suggest/internal/constraint-queries.js +85 -0
  267. package/dist/tools/suggest/internal/constraint-queries.js.map +1 -0
  268. package/dist/tools/suggest/internal/queries.d.ts +4 -4
  269. package/dist/tools/suggest/internal/queries.d.ts.map +1 -1
  270. package/dist/tools/suggest/internal/queries.js +44 -37
  271. package/dist/tools/suggest/internal/queries.js.map +1 -1
  272. package/dist/tools/suggest/types.d.ts +10 -0
  273. package/dist/tools/suggest/types.d.ts.map +1 -1
  274. package/dist/tools/tasks/actions/add-dependency.d.ts.map +1 -1
  275. package/dist/tools/tasks/actions/add-dependency.js +15 -10
  276. package/dist/tools/tasks/actions/add-dependency.js.map +1 -1
  277. package/dist/tools/tasks/actions/archive.d.ts.map +1 -1
  278. package/dist/tools/tasks/actions/archive.js +2 -11
  279. package/dist/tools/tasks/actions/archive.js.map +1 -1
  280. package/dist/tools/tasks/actions/create.d.ts.map +1 -1
  281. package/dist/tools/tasks/actions/create.js +7 -24
  282. package/dist/tools/tasks/actions/create.js.map +1 -1
  283. package/dist/tools/tasks/actions/get-dependencies.js +1 -1
  284. package/dist/tools/tasks/actions/get-dependencies.js.map +1 -1
  285. package/dist/tools/tasks/actions/get-pruned-files.js +4 -4
  286. package/dist/tools/tasks/actions/get-pruned-files.js.map +1 -1
  287. package/dist/tools/tasks/actions/get.d.ts.map +1 -1
  288. package/dist/tools/tasks/actions/get.js +15 -16
  289. package/dist/tools/tasks/actions/get.js.map +1 -1
  290. package/dist/tools/tasks/actions/link-pruned-file.js +6 -6
  291. package/dist/tools/tasks/actions/link-pruned-file.js.map +1 -1
  292. package/dist/tools/tasks/actions/link.js +8 -8
  293. package/dist/tools/tasks/actions/link.js.map +1 -1
  294. package/dist/tools/tasks/actions/list.js +2 -2
  295. package/dist/tools/tasks/actions/list.js.map +1 -1
  296. package/dist/tools/tasks/actions/move.d.ts +2 -1
  297. package/dist/tools/tasks/actions/move.d.ts.map +1 -1
  298. package/dist/tools/tasks/actions/move.js +22 -22
  299. package/dist/tools/tasks/actions/move.js.map +1 -1
  300. package/dist/tools/tasks/actions/remove-dependency.js +1 -1
  301. package/dist/tools/tasks/actions/remove-dependency.js.map +1 -1
  302. package/dist/tools/tasks/actions/update.d.ts.map +1 -1
  303. package/dist/tools/tasks/actions/update.js +12 -15
  304. package/dist/tools/tasks/actions/update.js.map +1 -1
  305. package/dist/tools/tasks/actions/watch-files.js +8 -8
  306. package/dist/tools/tasks/actions/watch-files.js.map +1 -1
  307. package/dist/tools/tasks/help/example.js +4 -4
  308. package/dist/tools/tasks/help/example.js.map +1 -1
  309. package/dist/tools/tasks/help/help.d.ts.map +1 -1
  310. package/dist/tools/tasks/help/help.js +20 -10
  311. package/dist/tools/tasks/help/help.js.map +1 -1
  312. package/dist/tools/tasks/internal/state-machine.js +2 -2
  313. package/dist/tools/tasks/internal/state-machine.js.map +1 -1
  314. package/dist/tools/tasks/internal/task-queries.d.ts.map +1 -1
  315. package/dist/tools/tasks/internal/task-queries.js +9 -11
  316. package/dist/tools/tasks/internal/task-queries.js.map +1 -1
  317. package/dist/tools/tasks/types.d.ts +13 -1
  318. package/dist/tools/tasks/types.d.ts.map +1 -1
  319. package/dist/tools/tasks/types.js +30 -7
  320. package/dist/tools/tasks/types.js.map +1 -1
  321. package/dist/tools/tasks/watcher/status.js +8 -8
  322. package/dist/tools/tasks/watcher/status.js.map +1 -1
  323. package/dist/tools/use_case/actions/search.js +4 -4
  324. package/dist/tools/use_case/actions/search.js.map +1 -1
  325. package/dist/tools/use_case/help/example.js +16 -16
  326. package/dist/types/task/params.d.ts +2 -1
  327. package/dist/types/task/params.d.ts.map +1 -1
  328. package/dist/types.d.ts +10 -2
  329. package/dist/types.d.ts.map +1 -1
  330. package/dist/utils/action-specs/task-specs.js +5 -5
  331. package/dist/utils/action-specs/task-specs.js.map +1 -1
  332. package/dist/utils/batch-validation.d.ts +1 -1
  333. package/dist/utils/batch-validation.js +3 -3
  334. package/dist/utils/batch-validation.js.map +1 -1
  335. package/dist/utils/cleanup.js +3 -3
  336. package/dist/utils/cleanup.js.map +1 -1
  337. package/dist/utils/constraint-scorer.d.ts +113 -0
  338. package/dist/utils/constraint-scorer.d.ts.map +1 -0
  339. package/dist/utils/constraint-scorer.js +220 -0
  340. package/dist/utils/constraint-scorer.js.map +1 -0
  341. package/dist/utils/db-aggregations.js +10 -10
  342. package/dist/utils/db-aggregations.js.map +1 -1
  343. package/dist/utils/exporter/export.js +70 -70
  344. package/dist/utils/exporter/export.js.map +1 -1
  345. package/dist/utils/file-pruning.js +16 -16
  346. package/dist/utils/file-pruning.js.map +1 -1
  347. package/dist/utils/importer/import.js +33 -33
  348. package/dist/utils/importer/import.js.map +1 -1
  349. package/dist/utils/importer/master-tables.js +25 -25
  350. package/dist/utils/importer/master-tables.js.map +1 -1
  351. package/dist/utils/importer/topological-sort.d.ts +1 -1
  352. package/dist/utils/importer/topological-sort.js +1 -1
  353. package/dist/utils/policy-validator.js +5 -1
  354. package/dist/utils/policy-validator.js.map +1 -1
  355. package/dist/utils/project-context.js +3 -3
  356. package/dist/utils/project-context.js.map +1 -1
  357. package/dist/utils/quality-checks.js +3 -3
  358. package/dist/utils/quality-checks.js.map +1 -1
  359. package/dist/utils/retention.js +1 -1
  360. package/dist/utils/retention.js.map +1 -1
  361. package/dist/utils/sql-dump/core/dependency-sort.js +17 -17
  362. package/dist/utils/sql-dump/core/index-export.js +7 -7
  363. package/dist/utils/sql-dump/core/sequence-reset.js +5 -5
  364. package/dist/utils/sql-dump/generators/headers.js +10 -10
  365. package/dist/utils/sql-dump/schema/indexes.js +15 -15
  366. package/dist/utils/sql-dump/schema/primary-keys.js +14 -14
  367. package/dist/utils/sql-dump/schema/tables.js +44 -44
  368. package/dist/utils/sql-dump/schema/views.js +21 -21
  369. package/dist/utils/suggestion-scorer.d.ts.map +1 -1
  370. package/dist/utils/suggestion-scorer.js +9 -0
  371. package/dist/utils/suggestion-scorer.js.map +1 -1
  372. package/dist/utils/task-stale-detection.d.ts.map +1 -1
  373. package/dist/utils/task-stale-detection.js +20 -19
  374. package/dist/utils/task-stale-detection.js.map +1 -1
  375. package/dist/utils/token-logging.js +6 -6
  376. package/dist/utils/token-logging.js.map +1 -1
  377. package/dist/utils/validators.d.ts +4 -4
  378. package/dist/utils/validators.d.ts.map +1 -1
  379. package/dist/utils/validators.js +10 -4
  380. package/dist/utils/validators.js.map +1 -1
  381. package/dist/utils/view-queries.d.ts +3 -3
  382. package/dist/utils/view-queries.d.ts.map +1 -1
  383. package/dist/utils/view-queries.js +41 -66
  384. package/dist/utils/view-queries.js.map +1 -1
  385. package/dist/watcher/file-watcher.js +20 -20
  386. package/dist/watcher/file-watcher.js.map +1 -1
  387. package/docs/AI_AGENT_GUIDE.md +81 -1376
  388. package/docs/ARCHITECTURE.md +127 -608
  389. package/docs/AUTO_FILE_TRACKING.md +22 -20
  390. package/docs/BATCH_VALIDATION.md +3 -3
  391. package/docs/CONFIGURATION.md +69 -68
  392. package/docs/CONSTRAINT_INTELLIGENCE.md +339 -0
  393. package/docs/DATABASE_AUTH.md +1 -1
  394. package/docs/DECISION_CONTEXT.md +12 -0
  395. package/docs/DECISION_INTELLIGENCE.md +19 -8
  396. package/docs/GIT_AWARE_AUTO_COMPLETE.md +21 -20
  397. package/docs/SHARED_CONCEPTS.md +46 -16
  398. package/docs/SLASH_COMMANDS.md +88 -117
  399. package/docs/SPECIALIZED_AGENTS.md +45 -572
  400. package/docs/TASK_ACTIONS.md +63 -53
  401. package/docs/TASK_OVERVIEW.md +49 -61
  402. package/docs/TASK_PRUNING.md +32 -27
  403. package/docs/TOOL_REFERENCE.md +119 -76
  404. package/docs/TOOL_SELECTION.md +15 -18
  405. package/docs/WORKFLOWS.md +504 -350
  406. package/package.json +119 -119
  407. package/assets/sample-commands/sqw-secretary.md +0 -187
  408. package/dist/config/knex/bootstrap/20251025020452_create_master_tables.d.ts +0 -4
  409. package/dist/config/knex/bootstrap/20251025020452_create_master_tables.d.ts.map +0 -1
  410. package/dist/config/knex/bootstrap/20251025020452_create_master_tables.js +0 -97
  411. package/dist/config/knex/bootstrap/20251025020452_create_master_tables.js.map +0 -1
  412. package/dist/config/knex/bootstrap/20251025021152_create_transaction_tables.d.ts +0 -4
  413. package/dist/config/knex/bootstrap/20251025021152_create_transaction_tables.d.ts.map +0 -1
  414. package/dist/config/knex/bootstrap/20251025021152_create_transaction_tables.js +0 -270
  415. package/dist/config/knex/bootstrap/20251025021152_create_transaction_tables.js.map +0 -1
  416. package/dist/config/knex/bootstrap/20251025021351_create_indexes.d.ts +0 -4
  417. package/dist/config/knex/bootstrap/20251025021351_create_indexes.d.ts.map +0 -1
  418. package/dist/config/knex/bootstrap/20251025021351_create_indexes.js +0 -93
  419. package/dist/config/knex/bootstrap/20251025021351_create_indexes.js.map +0 -1
  420. package/dist/config/knex/bootstrap/20251025021352_fix_mysql_index_syntax.d.ts +0 -4
  421. package/dist/config/knex/bootstrap/20251025021352_fix_mysql_index_syntax.d.ts.map +0 -1
  422. package/dist/config/knex/bootstrap/20251025021352_fix_mysql_index_syntax.js +0 -146
  423. package/dist/config/knex/bootstrap/20251025021352_fix_mysql_index_syntax.js.map +0 -1
  424. package/dist/config/knex/bootstrap/20251025021416_seed_master_data.d.ts +0 -4
  425. package/dist/config/knex/bootstrap/20251025021416_seed_master_data.d.ts.map +0 -1
  426. package/dist/config/knex/bootstrap/20251025021416_seed_master_data.js +0 -182
  427. package/dist/config/knex/bootstrap/20251025021416_seed_master_data.js.map +0 -1
  428. package/dist/config/knex/bootstrap/20251025070349_create_views.d.ts +0 -4
  429. package/dist/config/knex/bootstrap/20251025070349_create_views.d.ts.map +0 -1
  430. package/dist/config/knex/bootstrap/20251025070349_create_views.js +0 -247
  431. package/dist/config/knex/bootstrap/20251025070349_create_views.js.map +0 -1
  432. package/dist/config/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts +0 -4
  433. package/dist/config/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts.map +0 -1
  434. package/dist/config/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js +0 -22
  435. package/dist/config/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js.map +0 -1
  436. package/dist/config/knex/enhancements/20251025082220_fix_task_dependencies_columns.d.ts +0 -8
  437. package/dist/config/knex/enhancements/20251025082220_fix_task_dependencies_columns.d.ts.map +0 -1
  438. package/dist/config/knex/enhancements/20251025082220_fix_task_dependencies_columns.js +0 -12
  439. package/dist/config/knex/enhancements/20251025082220_fix_task_dependencies_columns.js.map +0 -1
  440. package/dist/config/knex/enhancements/20251025090000_create_help_system_tables.d.ts +0 -19
  441. package/dist/config/knex/enhancements/20251025090000_create_help_system_tables.d.ts.map +0 -1
  442. package/dist/config/knex/enhancements/20251025090000_create_help_system_tables.js +0 -121
  443. package/dist/config/knex/enhancements/20251025090000_create_help_system_tables.js.map +0 -1
  444. package/dist/config/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts +0 -13
  445. package/dist/config/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts.map +0 -1
  446. package/dist/config/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.js +0 -383
  447. package/dist/config/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.js.map +0 -1
  448. package/dist/config/knex/enhancements/20251025100000_seed_help_metadata.d.ts +0 -15
  449. package/dist/config/knex/enhancements/20251025100000_seed_help_metadata.d.ts.map +0 -1
  450. package/dist/config/knex/enhancements/20251025100000_seed_help_metadata.js +0 -259
  451. package/dist/config/knex/enhancements/20251025100000_seed_help_metadata.js.map +0 -1
  452. package/dist/config/knex/enhancements/20251025100100_seed_remaining_use_cases.d.ts +0 -16
  453. package/dist/config/knex/enhancements/20251025100100_seed_remaining_use_cases.d.ts.map +0 -1
  454. package/dist/config/knex/enhancements/20251025100100_seed_remaining_use_cases.js +0 -276
  455. package/dist/config/knex/enhancements/20251025100100_seed_remaining_use_cases.js.map +0 -1
  456. package/dist/config/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts +0 -8
  457. package/dist/config/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts.map +0 -1
  458. package/dist/config/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.js +0 -71
  459. package/dist/config/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.js.map +0 -1
  460. package/dist/config/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts +0 -14
  461. package/dist/config/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts.map +0 -1
  462. package/dist/config/knex/enhancements/20251027000000_add_agent_reuse_system.js +0 -62
  463. package/dist/config/knex/enhancements/20251027000000_add_agent_reuse_system.js.map +0 -1
  464. package/dist/config/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts +0 -4
  465. package/dist/config/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts.map +0 -1
  466. package/dist/config/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js +0 -24
  467. package/dist/config/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js.map +0 -1
  468. package/dist/config/knex/enhancements/20251027020000_update_agent_reusability.d.ts +0 -16
  469. package/dist/config/knex/enhancements/20251027020000_update_agent_reusability.d.ts.map +0 -1
  470. package/dist/config/knex/enhancements/20251027020000_update_agent_reusability.js +0 -33
  471. package/dist/config/knex/enhancements/20251027020000_update_agent_reusability.js.map +0 -1
  472. package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.d.ts +0 -23
  473. package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.d.ts.map +0 -1
  474. package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.js +0 -58
  475. package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.js.map +0 -1
  476. package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.d.ts +0 -13
  477. package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.d.ts.map +0 -1
  478. package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.js +0 -48
  479. package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.js.map +0 -1
  480. package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.d.ts +0 -24
  481. package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.d.ts.map +0 -1
  482. package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.js +0 -189
  483. package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.js.map +0 -1
  484. package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.d.ts +0 -16
  485. package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.d.ts.map +0 -1
  486. package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.js +0 -72
  487. package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.js.map +0 -1
  488. package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.d.ts +0 -23
  489. package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.d.ts.map +0 -1
  490. package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.js +0 -118
  491. package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.js.map +0 -1
  492. package/dist/config/knex/enhancements/20251106000000_fix_master_tables_project_id_v3_7_3.d.ts +0 -29
  493. package/dist/config/knex/enhancements/20251106000000_fix_master_tables_project_id_v3_7_3.d.ts.map +0 -1
  494. package/dist/config/knex/enhancements/20251106000000_fix_master_tables_project_id_v3_7_3.js +0 -556
  495. package/dist/config/knex/enhancements/20251106000000_fix_master_tables_project_id_v3_7_3.js.map +0 -1
  496. package/dist/config/knex/enhancements/20251108000000_add_planning_layers_v3_8_0.d.ts +0 -21
  497. package/dist/config/knex/enhancements/20251108000000_add_planning_layers_v3_8_0.d.ts.map +0 -1
  498. package/dist/config/knex/enhancements/20251108000000_add_planning_layers_v3_8_0.js +0 -73
  499. package/dist/config/knex/enhancements/20251108000000_add_planning_layers_v3_8_0.js.map +0 -1
  500. package/dist/config/knex/enhancements/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.d.ts +0 -19
  501. package/dist/config/knex/enhancements/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.d.ts.map +0 -1
  502. package/dist/config/knex/enhancements/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.js +0 -88
  503. package/dist/config/knex/enhancements/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.js.map +0 -1
  504. package/dist/config/knex/enhancements/20251109000003_token_usage_cross_db_compat_v3_7_5.d.ts +0 -24
  505. package/dist/config/knex/enhancements/20251109000003_token_usage_cross_db_compat_v3_7_5.d.ts.map +0 -1
  506. package/dist/config/knex/enhancements/20251109000003_token_usage_cross_db_compat_v3_7_5.js +0 -79
  507. package/dist/config/knex/enhancements/20251109000003_token_usage_cross_db_compat_v3_7_5.js.map +0 -1
  508. package/dist/config/knex/enhancements/20251109010000_tool_cleanup_v3_8_0.d.ts +0 -27
  509. package/dist/config/knex/enhancements/20251109010000_tool_cleanup_v3_8_0.d.ts.map +0 -1
  510. package/dist/config/knex/enhancements/20251109010000_tool_cleanup_v3_8_0.js +0 -347
  511. package/dist/config/knex/enhancements/20251109010000_tool_cleanup_v3_8_0.js.map +0 -1
  512. package/dist/config/knex/enhancements/20251109020000_fix_missing_help_actions_v3_8_0.d.ts +0 -30
  513. package/dist/config/knex/enhancements/20251109020000_fix_missing_help_actions_v3_8_0.d.ts.map +0 -1
  514. package/dist/config/knex/enhancements/20251109020000_fix_missing_help_actions_v3_8_0.js +0 -232
  515. package/dist/config/knex/enhancements/20251109020000_fix_missing_help_actions_v3_8_0.js.map +0 -1
  516. package/dist/config/knex/enhancements/20251112000001_fix_task_file_links_schema_v3_9_0.d.ts +0 -22
  517. package/dist/config/knex/enhancements/20251112000001_fix_task_file_links_schema_v3_9_0.d.ts.map +0 -1
  518. package/dist/config/knex/enhancements/20251112000001_fix_task_file_links_schema_v3_9_0.js +0 -106
  519. package/dist/config/knex/enhancements/20251112000001_fix_task_file_links_schema_v3_9_0.js.map +0 -1
  520. package/dist/config/knex/enhancements/20251112000002_fix_task_pruned_files_schema_v3_9_0.d.ts +0 -21
  521. package/dist/config/knex/enhancements/20251112000002_fix_task_pruned_files_schema_v3_9_0.d.ts.map +0 -1
  522. package/dist/config/knex/enhancements/20251112000002_fix_task_pruned_files_schema_v3_9_0.js +0 -106
  523. package/dist/config/knex/enhancements/20251112000002_fix_task_pruned_files_schema_v3_9_0.js.map +0 -1
  524. package/dist/config/knex/enhancements/20251114000000_fix_v_tagged_decisions_numeric_support.d.ts +0 -21
  525. package/dist/config/knex/enhancements/20251114000000_fix_v_tagged_decisions_numeric_support.d.ts.map +0 -1
  526. package/dist/config/knex/enhancements/20251114000000_fix_v_tagged_decisions_numeric_support.js +0 -91
  527. package/dist/config/knex/enhancements/20251114000000_fix_v_tagged_decisions_numeric_support.js.map +0 -1
  528. package/dist/config/knex/enhancements/20251114120000_add_suggest_tool_to_help_system_v3_9_0.d.ts +0 -15
  529. package/dist/config/knex/enhancements/20251114120000_add_suggest_tool_to_help_system_v3_9_0.d.ts.map +0 -1
  530. package/dist/config/knex/enhancements/20251114120000_add_suggest_tool_to_help_system_v3_9_0.js +0 -270
  531. package/dist/config/knex/enhancements/20251114120000_add_suggest_tool_to_help_system_v3_9_0.js.map +0 -1
  532. package/dist/config/knex/enhancements/20251114121000_add_suggest_tool_use_cases_v3_9_0.d.ts +0 -15
  533. package/dist/config/knex/enhancements/20251114121000_add_suggest_tool_use_cases_v3_9_0.d.ts.map +0 -1
  534. package/dist/config/knex/enhancements/20251114121000_add_suggest_tool_use_cases_v3_9_0.js +0 -241
  535. package/dist/config/knex/enhancements/20251114121000_add_suggest_tool_use_cases_v3_9_0.js.map +0 -1
  536. package/dist/config/knex/enhancements/20251114130000_seed_builtin_policies_v3_9_0.d.ts +0 -16
  537. package/dist/config/knex/enhancements/20251114130000_seed_builtin_policies_v3_9_0.d.ts.map +0 -1
  538. package/dist/config/knex/enhancements/20251114130000_seed_builtin_policies_v3_9_0.js +0 -168
  539. package/dist/config/knex/enhancements/20251114130000_seed_builtin_policies_v3_9_0.js.map +0 -1
  540. package/dist/config/knex/enhancements/20251114140000_add_policy_help_v3_9_0.d.ts +0 -14
  541. package/dist/config/knex/enhancements/20251114140000_add_policy_help_v3_9_0.d.ts.map +0 -1
  542. package/dist/config/knex/enhancements/20251114140000_add_policy_help_v3_9_0.js +0 -228
  543. package/dist/config/knex/enhancements/20251114140000_add_policy_help_v3_9_0.js.map +0 -1
  544. package/dist/config/knex/enhancements/20251114141000_add_policy_use_cases_v3_9_0.d.ts +0 -14
  545. package/dist/config/knex/enhancements/20251114141000_add_policy_use_cases_v3_9_0.d.ts.map +0 -1
  546. package/dist/config/knex/enhancements/20251114141000_add_policy_use_cases_v3_9_0.js +0 -237
  547. package/dist/config/knex/enhancements/20251114141000_add_policy_use_cases_v3_9_0.js.map +0 -1
  548. package/dist/config/knex/enhancements/20251114150000_fix_policy_unique_constraint_v3_9_0.d.ts +0 -14
  549. package/dist/config/knex/enhancements/20251114150000_fix_policy_unique_constraint_v3_9_0.d.ts.map +0 -1
  550. package/dist/config/knex/enhancements/20251114150000_fix_policy_unique_constraint_v3_9_0.js +0 -61
  551. package/dist/config/knex/enhancements/20251114150000_fix_policy_unique_constraint_v3_9_0.js.map +0 -1
  552. package/dist/config/knex/enhancements/20251115000000_fix_task_decision_links_unique_constraint.d.ts +0 -21
  553. package/dist/config/knex/enhancements/20251115000000_fix_task_decision_links_unique_constraint.d.ts.map +0 -1
  554. package/dist/config/knex/enhancements/20251115000000_fix_task_decision_links_unique_constraint.js +0 -127
  555. package/dist/config/knex/enhancements/20251115000000_fix_task_decision_links_unique_constraint.js.map +0 -1
  556. package/dist/config/knex/enhancements/20251115100000_fix_read_keyword_index_v3_9_0.d.ts +0 -15
  557. package/dist/config/knex/enhancements/20251115100000_fix_read_keyword_index_v3_9_0.d.ts.map +0 -1
  558. package/dist/config/knex/enhancements/20251115100000_fix_read_keyword_index_v3_9_0.js +0 -69
  559. package/dist/config/knex/enhancements/20251115100000_fix_read_keyword_index_v3_9_0.js.map +0 -1
  560. package/dist/config/knex/enhancements/20251115110000_fix_cross_database_timestamps_v3_9_0.d.ts +0 -15
  561. package/dist/config/knex/enhancements/20251115110000_fix_cross_database_timestamps_v3_9_0.d.ts.map +0 -1
  562. package/dist/config/knex/enhancements/20251115110000_fix_cross_database_timestamps_v3_9_0.js +0 -132
  563. package/dist/config/knex/enhancements/20251115110000_fix_cross_database_timestamps_v3_9_0.js.map +0 -1
  564. package/dist/config/knex/enhancements/20251115120000_fix_all_cross_db_issues_v3_9_0.d.ts +0 -18
  565. package/dist/config/knex/enhancements/20251115120000_fix_all_cross_db_issues_v3_9_0.d.ts.map +0 -1
  566. package/dist/config/knex/enhancements/20251115120000_fix_all_cross_db_issues_v3_9_0.js +0 -47
  567. package/dist/config/knex/enhancements/20251115120000_fix_all_cross_db_issues_v3_9_0.js.map +0 -1
  568. package/dist/config/knex/enhancements/20251118000000_fix_native_db_test_issues_v3_9_1.d.ts +0 -20
  569. package/dist/config/knex/enhancements/20251118000000_fix_native_db_test_issues_v3_9_1.d.ts.map +0 -1
  570. package/dist/config/knex/enhancements/20251118000000_fix_native_db_test_issues_v3_9_1.js +0 -119
  571. package/dist/config/knex/enhancements/20251118000000_fix_native_db_test_issues_v3_9_1.js.map +0 -1
  572. package/dist/config/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts +0 -13
  573. package/dist/config/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts.map +0 -1
  574. package/dist/config/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js +0 -70
  575. package/dist/config/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js.map +0 -1
  576. package/dist/config/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts +0 -11
  577. package/dist/config/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts.map +0 -1
  578. package/dist/config/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js +0 -36
  579. package/dist/config/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js.map +0 -1
  580. package/dist/config/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts +0 -14
  581. package/dist/config/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts.map +0 -1
  582. package/dist/config/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js +0 -84
  583. package/dist/config/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js.map +0 -1
  584. package/dist/config/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts +0 -9
  585. package/dist/config/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts.map +0 -1
  586. package/dist/config/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js +0 -37
  587. package/dist/config/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js.map +0 -1
  588. package/dist/config/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts +0 -9
  589. package/dist/config/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts.map +0 -1
  590. package/dist/config/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js +0 -41
  591. package/dist/config/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js.map +0 -1
  592. package/dist/config/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts +0 -9
  593. package/dist/config/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts.map +0 -1
  594. package/dist/config/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js +0 -36
  595. package/dist/config/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js.map +0 -1
  596. package/dist/config/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts +0 -10
  597. package/dist/config/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts.map +0 -1
  598. package/dist/config/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js +0 -28
  599. package/dist/config/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js.map +0 -1
  600. package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.d.ts +0 -49
  601. package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.d.ts.map +0 -1
  602. package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.js +0 -974
  603. package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.js.map +0 -1
  604. package/dist/config/knex/upgrades/20251108000000_hotfix_v_tagged_constraints_project_id.d.ts +0 -14
  605. package/dist/config/knex/upgrades/20251108000000_hotfix_v_tagged_constraints_project_id.d.ts.map +0 -1
  606. package/dist/config/knex/upgrades/20251108000000_hotfix_v_tagged_constraints_project_id.js +0 -97
  607. package/dist/config/knex/upgrades/20251108000000_hotfix_v_tagged_constraints_project_id.js.map +0 -1
  608. package/dist/config/knex/upgrades/20251109000002_multi_project_cross_db_compat_v3_7_5.d.ts +0 -24
  609. package/dist/config/knex/upgrades/20251109000002_multi_project_cross_db_compat_v3_7_5.d.ts.map +0 -1
  610. package/dist/config/knex/upgrades/20251109000002_multi_project_cross_db_compat_v3_7_5.js +0 -303
  611. package/dist/config/knex/upgrades/20251109000002_multi_project_cross_db_compat_v3_7_5.js.map +0 -1
  612. package/dist/config/knex/upgrades/20251111235959_preemptive_fix_cross_database_v3_9_0.d.ts +0 -19
  613. package/dist/config/knex/upgrades/20251111235959_preemptive_fix_cross_database_v3_9_0.d.ts.map +0 -1
  614. package/dist/config/knex/upgrades/20251111235959_preemptive_fix_cross_database_v3_9_0.js +0 -196
  615. package/dist/config/knex/upgrades/20251111235959_preemptive_fix_cross_database_v3_9_0.js.map +0 -1
  616. package/dist/config/knex/upgrades/20251112000000_decision_intelligence_v3_9_0.d.ts +0 -22
  617. package/dist/config/knex/upgrades/20251112000000_decision_intelligence_v3_9_0.d.ts.map +0 -1
  618. package/dist/config/knex/upgrades/20251112000000_decision_intelligence_v3_9_0.js +0 -375
  619. package/dist/config/knex/upgrades/20251112000000_decision_intelligence_v3_9_0.js.map +0 -1
  620. package/dist/database/migrations/20251024010000_upgrade_v1_0_to_v1_1.d.ts +0 -16
  621. package/dist/database/migrations/20251024010000_upgrade_v1_0_to_v1_1.d.ts.map +0 -1
  622. package/dist/database/migrations/20251024010000_upgrade_v1_0_to_v1_1.js +0 -84
  623. package/dist/database/migrations/20251024010000_upgrade_v1_0_to_v1_1.js.map +0 -1
  624. package/dist/database/migrations/20251024020000_upgrade_v2_0_to_v2_1.d.ts +0 -14
  625. package/dist/database/migrations/20251024020000_upgrade_v2_0_to_v2_1.d.ts.map +0 -1
  626. package/dist/database/migrations/20251024020000_upgrade_v2_0_to_v2_1.js +0 -42
  627. package/dist/database/migrations/20251024020000_upgrade_v2_0_to_v2_1.js.map +0 -1
  628. package/dist/database/migrations/20251024030000_upgrade_v2_1_to_v3_0.d.ts +0 -17
  629. package/dist/database/migrations/20251024030000_upgrade_v2_1_to_v3_0.d.ts.map +0 -1
  630. package/dist/database/migrations/20251024030000_upgrade_v2_1_to_v3_0.js +0 -122
  631. package/dist/database/migrations/20251024030000_upgrade_v2_1_to_v3_0.js.map +0 -1
  632. package/dist/database/migrations/20251024040000_upgrade_v3_0_to_v3_2.d.ts +0 -12
  633. package/dist/database/migrations/20251024040000_upgrade_v3_0_to_v3_2.d.ts.map +0 -1
  634. package/dist/database/migrations/20251024040000_upgrade_v3_0_to_v3_2.js +0 -49
  635. package/dist/database/migrations/20251024040000_upgrade_v3_0_to_v3_2.js.map +0 -1
  636. package/dist/database/migrations/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts +0 -12
  637. package/dist/database/migrations/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts.map +0 -1
  638. package/dist/database/migrations/20251024050000_upgrade_v3_2_0_to_v3_2_2.js +0 -53
  639. package/dist/database/migrations/20251024050000_upgrade_v3_2_0_to_v3_2_2.js.map +0 -1
  640. package/dist/database/migrations/20251024060000_upgrade_v3_4_to_v3_5.d.ts +0 -12
  641. package/dist/database/migrations/20251024060000_upgrade_v3_4_to_v3_5.d.ts.map +0 -1
  642. package/dist/database/migrations/20251024060000_upgrade_v3_4_to_v3_5.js +0 -44
  643. package/dist/database/migrations/20251024060000_upgrade_v3_4_to_v3_5.js.map +0 -1
  644. package/dist/database/migrations/20251024070000_upgrade_v3_5_to_v3_6.d.ts +0 -13
  645. package/dist/database/migrations/20251024070000_upgrade_v3_5_to_v3_6.d.ts.map +0 -1
  646. package/dist/database/migrations/20251024070000_upgrade_v3_5_to_v3_6.js +0 -33
  647. package/dist/database/migrations/20251024070000_upgrade_v3_5_to_v3_6.js.map +0 -1
  648. package/dist/database/migrations/20251025020452_create_master_tables_wrapper.d.ts +0 -17
  649. package/dist/database/migrations/20251025020452_create_master_tables_wrapper.d.ts.map +0 -1
  650. package/dist/database/migrations/20251025020452_create_master_tables_wrapper.js +0 -119
  651. package/dist/database/migrations/20251025020452_create_master_tables_wrapper.js.map +0 -1
  652. package/dist/database/migrations/20251025021152_create_transaction_tables_wrapper.d.ts +0 -15
  653. package/dist/database/migrations/20251025021152_create_transaction_tables_wrapper.d.ts.map +0 -1
  654. package/dist/database/migrations/20251025021152_create_transaction_tables_wrapper.js +0 -282
  655. package/dist/database/migrations/20251025021152_create_transaction_tables_wrapper.js.map +0 -1
  656. package/dist/database/migrations/20251025021351_create_indexes_wrapper.d.ts +0 -21
  657. package/dist/database/migrations/20251025021351_create_indexes_wrapper.d.ts.map +0 -1
  658. package/dist/database/migrations/20251025021351_create_indexes_wrapper.js +0 -83
  659. package/dist/database/migrations/20251025021351_create_indexes_wrapper.js.map +0 -1
  660. package/dist/database/migrations/20251025021352_fix_mysql_index_syntax_wrapper.d.ts +0 -22
  661. package/dist/database/migrations/20251025021352_fix_mysql_index_syntax_wrapper.d.ts.map +0 -1
  662. package/dist/database/migrations/20251025021352_fix_mysql_index_syntax_wrapper.js +0 -94
  663. package/dist/database/migrations/20251025021352_fix_mysql_index_syntax_wrapper.js.map +0 -1
  664. package/dist/database/migrations/20251025021416_seed_master_data_wrapper.d.ts +0 -19
  665. package/dist/database/migrations/20251025021416_seed_master_data_wrapper.d.ts.map +0 -1
  666. package/dist/database/migrations/20251025021416_seed_master_data_wrapper.js +0 -120
  667. package/dist/database/migrations/20251025021416_seed_master_data_wrapper.js.map +0 -1
  668. package/dist/database/migrations/20251025070349_create_views_wrapper.d.ts +0 -14
  669. package/dist/database/migrations/20251025070349_create_views_wrapper.d.ts.map +0 -1
  670. package/dist/database/migrations/20251025070349_create_views_wrapper.js +0 -160
  671. package/dist/database/migrations/20251025070349_create_views_wrapper.js.map +0 -1
  672. package/dist/database/migrations/20251025081221_add_link_type_to_task_decision_links.d.ts +0 -9
  673. package/dist/database/migrations/20251025081221_add_link_type_to_task_decision_links.d.ts.map +0 -1
  674. package/dist/database/migrations/20251025081221_add_link_type_to_task_decision_links.js +0 -21
  675. package/dist/database/migrations/20251025081221_add_link_type_to_task_decision_links.js.map +0 -1
  676. package/dist/database/migrations/20251025082220_fix_task_dependencies_columns.d.ts +0 -13
  677. package/dist/database/migrations/20251025082220_fix_task_dependencies_columns.d.ts.map +0 -1
  678. package/dist/database/migrations/20251025082220_fix_task_dependencies_columns.js +0 -17
  679. package/dist/database/migrations/20251025082220_fix_task_dependencies_columns.js.map +0 -1
  680. package/dist/database/migrations/20251025090000_create_help_system_tables.d.ts +0 -27
  681. package/dist/database/migrations/20251025090000_create_help_system_tables.d.ts.map +0 -1
  682. package/dist/database/migrations/20251025090000_create_help_system_tables.js +0 -120
  683. package/dist/database/migrations/20251025090000_create_help_system_tables.js.map +0 -1
  684. package/dist/database/migrations/20251025090100_seed_help_categories_and_use_cases.d.ts +0 -18
  685. package/dist/database/migrations/20251025090100_seed_help_categories_and_use_cases.d.ts.map +0 -1
  686. package/dist/database/migrations/20251025090100_seed_help_categories_and_use_cases.js +0 -388
  687. package/dist/database/migrations/20251025090100_seed_help_categories_and_use_cases.js.map +0 -1
  688. package/dist/database/migrations/20251025100000_seed_help_metadata.d.ts +0 -20
  689. package/dist/database/migrations/20251025100000_seed_help_metadata.d.ts.map +0 -1
  690. package/dist/database/migrations/20251025100000_seed_help_metadata.js +0 -264
  691. package/dist/database/migrations/20251025100000_seed_help_metadata.js.map +0 -1
  692. package/dist/database/migrations/20251025100100_seed_remaining_use_cases.d.ts +0 -21
  693. package/dist/database/migrations/20251025100100_seed_remaining_use_cases.d.ts.map +0 -1
  694. package/dist/database/migrations/20251025100100_seed_remaining_use_cases.js +0 -281
  695. package/dist/database/migrations/20251025100100_seed_remaining_use_cases.js.map +0 -1
  696. package/dist/database/migrations/20251025120000_add_cascade_to_task_dependencies.d.ts +0 -13
  697. package/dist/database/migrations/20251025120000_add_cascade_to_task_dependencies.d.ts.map +0 -1
  698. package/dist/database/migrations/20251025120000_add_cascade_to_task_dependencies.js +0 -76
  699. package/dist/database/migrations/20251025120000_add_cascade_to_task_dependencies.js.map +0 -1
  700. package/dist/database/migrations/20251027000000_add_agent_reuse_system.d.ts +0 -17
  701. package/dist/database/migrations/20251027000000_add_agent_reuse_system.d.ts.map +0 -1
  702. package/dist/database/migrations/20251027000000_add_agent_reuse_system.js +0 -42
  703. package/dist/database/migrations/20251027000000_add_agent_reuse_system.js.map +0 -1
  704. package/dist/database/migrations/20251027010000_add_task_constraint_to_decision_context.d.ts +0 -10
  705. package/dist/database/migrations/20251027010000_add_task_constraint_to_decision_context.d.ts.map +0 -1
  706. package/dist/database/migrations/20251027010000_add_task_constraint_to_decision_context.js +0 -28
  707. package/dist/database/migrations/20251027010000_add_task_constraint_to_decision_context.js.map +0 -1
  708. package/dist/database/migrations/20251027020000_update_agent_reusability.d.ts +0 -21
  709. package/dist/database/migrations/20251027020000_update_agent_reusability.d.ts.map +0 -1
  710. package/dist/database/migrations/20251027020000_update_agent_reusability.js +0 -38
  711. package/dist/database/migrations/20251027020000_update_agent_reusability.js.map +0 -1
  712. package/dist/database/migrations/20251028000000_simplify_agent_system.d.ts +0 -26
  713. package/dist/database/migrations/20251028000000_simplify_agent_system.d.ts.map +0 -1
  714. package/dist/database/migrations/20251028000000_simplify_agent_system.js +0 -56
  715. package/dist/database/migrations/20251028000000_simplify_agent_system.js.map +0 -1
  716. package/dist/database/migrations/20251031000000_drop_orphaned_message_view.d.ts +0 -16
  717. package/dist/database/migrations/20251031000000_drop_orphaned_message_view.d.ts.map +0 -1
  718. package/dist/database/migrations/20251031000000_drop_orphaned_message_view.js +0 -52
  719. package/dist/database/migrations/20251031000000_drop_orphaned_message_view.js.map +0 -1
  720. package/dist/database/migrations/20251104000000_add_multi_project_v3_7_0.d.ts +0 -56
  721. package/dist/database/migrations/20251104000000_add_multi_project_v3_7_0.d.ts.map +0 -1
  722. package/dist/database/migrations/20251104000000_add_multi_project_v3_7_0.js +0 -701
  723. package/dist/database/migrations/20251104000000_add_multi_project_v3_7_0.js.map +0 -1
  724. package/dist/database/migrations/20251104000003_rename_constraints_created_by_to_agent_id.d.ts +0 -30
  725. package/dist/database/migrations/20251104000003_rename_constraints_created_by_to_agent_id.d.ts.map +0 -1
  726. package/dist/database/migrations/20251104000003_rename_constraints_created_by_to_agent_id.js +0 -180
  727. package/dist/database/migrations/20251104000003_rename_constraints_created_by_to_agent_id.js.map +0 -1
  728. package/dist/database/migrations/20251105000000_add_token_usage_table.d.ts +0 -19
  729. package/dist/database/migrations/20251105000000_add_token_usage_table.d.ts.map +0 -1
  730. package/dist/database/migrations/20251105000000_add_token_usage_table.js +0 -47
  731. package/dist/database/migrations/20251105000000_add_token_usage_table.js.map +0 -1
  732. package/dist/database/migrations/20251105000001_rename_decision_context_decided_by_to_agent_id.d.ts +0 -28
  733. package/dist/database/migrations/20251105000001_rename_decision_context_decided_by_to_agent_id.d.ts.map +0 -1
  734. package/dist/database/migrations/20251105000001_rename_decision_context_decided_by_to_agent_id.js +0 -123
  735. package/dist/database/migrations/20251105000001_rename_decision_context_decided_by_to_agent_id.js.map +0 -1
  736. package/dist/database/migrations/20251106000000_fix_master_tables_project_id_v3_7_3.d.ts +0 -36
  737. package/dist/database/migrations/20251106000000_fix_master_tables_project_id_v3_7_3.d.ts.map +0 -1
  738. package/dist/database/migrations/20251106000000_fix_master_tables_project_id_v3_7_3.js +0 -559
  739. package/dist/database/migrations/20251106000000_fix_master_tables_project_id_v3_7_3.js.map +0 -1
  740. package/dist/database/migrations/20251108000000_add_planning_layers_v3_8_0.d.ts +0 -26
  741. package/dist/database/migrations/20251108000000_add_planning_layers_v3_8_0.d.ts.map +0 -1
  742. package/dist/database/migrations/20251108000000_add_planning_layers_v3_8_0.js +0 -78
  743. package/dist/database/migrations/20251108000000_add_planning_layers_v3_8_0.js.map +0 -1
  744. package/dist/database/migrations/20251108000000_hotfix_v_tagged_constraints_project_id.d.ts +0 -17
  745. package/dist/database/migrations/20251108000000_hotfix_v_tagged_constraints_project_id.d.ts.map +0 -1
  746. package/dist/database/migrations/20251108000000_hotfix_v_tagged_constraints_project_id.js +0 -78
  747. package/dist/database/migrations/20251108000000_hotfix_v_tagged_constraints_project_id.js.map +0 -1
  748. package/dist/database/migrations/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.d.ts +0 -24
  749. package/dist/database/migrations/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.d.ts.map +0 -1
  750. package/dist/database/migrations/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.js +0 -63
  751. package/dist/database/migrations/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.js.map +0 -1
  752. package/dist/database/migrations/20251109000002_multi_project_cross_db_compat_v3_7_5.d.ts +0 -27
  753. package/dist/database/migrations/20251109000002_multi_project_cross_db_compat_v3_7_5.d.ts.map +0 -1
  754. package/dist/database/migrations/20251109000002_multi_project_cross_db_compat_v3_7_5.js +0 -276
  755. package/dist/database/migrations/20251109000002_multi_project_cross_db_compat_v3_7_5.js.map +0 -1
  756. package/dist/database/migrations/20251109000003_token_usage_cross_db_compat_v3_7_5.d.ts +0 -27
  757. package/dist/database/migrations/20251109000003_token_usage_cross_db_compat_v3_7_5.d.ts.map +0 -1
  758. package/dist/database/migrations/20251109000003_token_usage_cross_db_compat_v3_7_5.js +0 -67
  759. package/dist/database/migrations/20251109000003_token_usage_cross_db_compat_v3_7_5.js.map +0 -1
  760. package/dist/database/migrations/20251109010000_tool_cleanup_v3_8_0.d.ts +0 -32
  761. package/dist/database/migrations/20251109010000_tool_cleanup_v3_8_0.d.ts.map +0 -1
  762. package/dist/database/migrations/20251109010000_tool_cleanup_v3_8_0.js +0 -352
  763. package/dist/database/migrations/20251109010000_tool_cleanup_v3_8_0.js.map +0 -1
  764. package/dist/database/migrations/20251109020000_fix_missing_help_actions_v3_8_0.d.ts +0 -35
  765. package/dist/database/migrations/20251109020000_fix_missing_help_actions_v3_8_0.d.ts.map +0 -1
  766. package/dist/database/migrations/20251109020000_fix_missing_help_actions_v3_8_0.js +0 -237
  767. package/dist/database/migrations/20251109020000_fix_missing_help_actions_v3_8_0.js.map +0 -1
  768. package/dist/database/migrations/20251111235959_preemptive_fix_cross_database_v3_9_0.d.ts +0 -22
  769. package/dist/database/migrations/20251111235959_preemptive_fix_cross_database_v3_9_0.d.ts.map +0 -1
  770. package/dist/database/migrations/20251111235959_preemptive_fix_cross_database_v3_9_0.js +0 -190
  771. package/dist/database/migrations/20251111235959_preemptive_fix_cross_database_v3_9_0.js.map +0 -1
  772. package/dist/database/migrations/20251112000000_decision_intelligence_v3_9_0.d.ts +0 -32
  773. package/dist/database/migrations/20251112000000_decision_intelligence_v3_9_0.d.ts.map +0 -1
  774. package/dist/database/migrations/20251112000000_decision_intelligence_v3_9_0.js +0 -342
  775. package/dist/database/migrations/20251112000000_decision_intelligence_v3_9_0.js.map +0 -1
  776. package/dist/database/migrations/20251112000001_fix_task_file_links_schema_v3_9_0.d.ts +0 -25
  777. package/dist/database/migrations/20251112000001_fix_task_file_links_schema_v3_9_0.d.ts.map +0 -1
  778. package/dist/database/migrations/20251112000001_fix_task_file_links_schema_v3_9_0.js +0 -109
  779. package/dist/database/migrations/20251112000001_fix_task_file_links_schema_v3_9_0.js.map +0 -1
  780. package/dist/database/migrations/20251112000002_fix_task_pruned_files_schema_v3_9_0.d.ts +0 -24
  781. package/dist/database/migrations/20251112000002_fix_task_pruned_files_schema_v3_9_0.d.ts.map +0 -1
  782. package/dist/database/migrations/20251112000002_fix_task_pruned_files_schema_v3_9_0.js +0 -111
  783. package/dist/database/migrations/20251112000002_fix_task_pruned_files_schema_v3_9_0.js.map +0 -1
  784. package/dist/database/migrations/20251114000000_fix_v_tagged_decisions_numeric_support.d.ts +0 -24
  785. package/dist/database/migrations/20251114000000_fix_v_tagged_decisions_numeric_support.d.ts.map +0 -1
  786. package/dist/database/migrations/20251114000000_fix_v_tagged_decisions_numeric_support.js +0 -90
  787. package/dist/database/migrations/20251114000000_fix_v_tagged_decisions_numeric_support.js.map +0 -1
  788. package/dist/database/migrations/20251114120000_add_suggest_tool_to_help_system_v3_9_0.d.ts +0 -20
  789. package/dist/database/migrations/20251114120000_add_suggest_tool_to_help_system_v3_9_0.d.ts.map +0 -1
  790. package/dist/database/migrations/20251114120000_add_suggest_tool_to_help_system_v3_9_0.js +0 -275
  791. package/dist/database/migrations/20251114120000_add_suggest_tool_to_help_system_v3_9_0.js.map +0 -1
  792. package/dist/database/migrations/20251114121000_add_suggest_tool_use_cases_v3_9_0.d.ts +0 -20
  793. package/dist/database/migrations/20251114121000_add_suggest_tool_use_cases_v3_9_0.d.ts.map +0 -1
  794. package/dist/database/migrations/20251114121000_add_suggest_tool_use_cases_v3_9_0.js +0 -246
  795. package/dist/database/migrations/20251114121000_add_suggest_tool_use_cases_v3_9_0.js.map +0 -1
  796. package/dist/database/migrations/20251114130000_seed_builtin_policies_v3_9_0.d.ts +0 -23
  797. package/dist/database/migrations/20251114130000_seed_builtin_policies_v3_9_0.d.ts.map +0 -1
  798. package/dist/database/migrations/20251114130000_seed_builtin_policies_v3_9_0.js +0 -175
  799. package/dist/database/migrations/20251114130000_seed_builtin_policies_v3_9_0.js.map +0 -1
  800. package/dist/database/migrations/20251114140000_add_policy_help_v3_9_0.d.ts +0 -21
  801. package/dist/database/migrations/20251114140000_add_policy_help_v3_9_0.d.ts.map +0 -1
  802. package/dist/database/migrations/20251114140000_add_policy_help_v3_9_0.js +0 -235
  803. package/dist/database/migrations/20251114140000_add_policy_help_v3_9_0.js.map +0 -1
  804. package/dist/database/migrations/20251114141000_add_policy_use_cases_v3_9_0.d.ts +0 -21
  805. package/dist/database/migrations/20251114141000_add_policy_use_cases_v3_9_0.d.ts.map +0 -1
  806. package/dist/database/migrations/20251114141000_add_policy_use_cases_v3_9_0.js +0 -244
  807. package/dist/database/migrations/20251114141000_add_policy_use_cases_v3_9_0.js.map +0 -1
  808. package/dist/database/migrations/20251114150000_fix_policy_unique_constraint_v3_9_0.d.ts +0 -23
  809. package/dist/database/migrations/20251114150000_fix_policy_unique_constraint_v3_9_0.d.ts.map +0 -1
  810. package/dist/database/migrations/20251114150000_fix_policy_unique_constraint_v3_9_0.js +0 -70
  811. package/dist/database/migrations/20251114150000_fix_policy_unique_constraint_v3_9_0.js.map +0 -1
  812. package/dist/database/migrations/20251115000000_fix_task_decision_links_unique_constraint.d.ts +0 -29
  813. package/dist/database/migrations/20251115000000_fix_task_decision_links_unique_constraint.d.ts.map +0 -1
  814. package/dist/database/migrations/20251115000000_fix_task_decision_links_unique_constraint.js +0 -135
  815. package/dist/database/migrations/20251115000000_fix_task_decision_links_unique_constraint.js.map +0 -1
  816. package/dist/database/migrations/20251115100000_fix_read_keyword_index_v3_9_0.d.ts +0 -23
  817. package/dist/database/migrations/20251115100000_fix_read_keyword_index_v3_9_0.d.ts.map +0 -1
  818. package/dist/database/migrations/20251115100000_fix_read_keyword_index_v3_9_0.js +0 -42
  819. package/dist/database/migrations/20251115100000_fix_read_keyword_index_v3_9_0.js.map +0 -1
  820. package/dist/database/migrations/20251115110000_fix_cross_database_timestamps_v3_9_0.d.ts +0 -25
  821. package/dist/database/migrations/20251115110000_fix_cross_database_timestamps_v3_9_0.d.ts.map +0 -1
  822. package/dist/database/migrations/20251115110000_fix_cross_database_timestamps_v3_9_0.js +0 -102
  823. package/dist/database/migrations/20251115110000_fix_cross_database_timestamps_v3_9_0.js.map +0 -1
  824. package/dist/database/migrations/20251115120000_fix_all_cross_db_issues_v3_9_0.d.ts +0 -25
  825. package/dist/database/migrations/20251115120000_fix_all_cross_db_issues_v3_9_0.d.ts.map +0 -1
  826. package/dist/database/migrations/20251115120000_fix_all_cross_db_issues_v3_9_0.js +0 -55
  827. package/dist/database/migrations/20251115120000_fix_all_cross_db_issues_v3_9_0.js.map +0 -1
  828. package/dist/database/migrations/20251118000000_eliminate_views_v3_9_0.d.ts +0 -29
  829. package/dist/database/migrations/20251118000000_eliminate_views_v3_9_0.d.ts.map +0 -1
  830. package/dist/database/migrations/20251118000000_eliminate_views_v3_9_0.js +0 -62
  831. package/dist/database/migrations/20251118000000_eliminate_views_v3_9_0.js.map +0 -1
  832. package/dist/database/migrations/20251119000000_add_constraint_text_hash_v3_9_1.d.ts +0 -25
  833. package/dist/database/migrations/20251119000000_add_constraint_text_hash_v3_9_1.d.ts.map +0 -1
  834. package/dist/database/migrations/20251119000000_add_constraint_text_hash_v3_9_1.js +0 -100
  835. package/dist/database/migrations/20251119000000_add_constraint_text_hash_v3_9_1.js.map +0 -1
  836. package/dist/tests/database/migrations/idempotency.test.d.ts +0 -2
  837. package/dist/tests/database/migrations/idempotency.test.d.ts.map +0 -1
  838. package/dist/tests/database/migrations/idempotency.test.js +0 -331
  839. package/dist/tests/database/migrations/idempotency.test.js.map +0 -1
  840. package/dist/tests/database/migrations/upgrade-paths.test.d.ts +0 -2
  841. package/dist/tests/database/migrations/upgrade-paths.test.d.ts.map +0 -1
  842. package/dist/tests/database/migrations/upgrade-paths.test.js +0 -249
  843. package/dist/tests/database/migrations/upgrade-paths.test.js.map +0 -1
  844. package/dist/utils/activity-logging.d.ts +0 -114
  845. package/dist/utils/activity-logging.d.ts.map +0 -1
  846. package/dist/utils/activity-logging.js +0 -169
  847. package/dist/utils/activity-logging.js.map +0 -1
  848. package/docs/DECISION_TO_TASK_MIGRATION_GUIDE.md +0 -457
  849. package/docs/TASK_DEPENDENCIES.md +0 -748
  850. package/docs/TASK_LINKING.md +0 -909
  851. package/docs/TASK_MIGRATION.md +0 -701
  852. package/docs/TASK_SYSTEM.md +0 -1314
@@ -1,701 +0,0 @@
1
- /**
2
- * Converted from: src/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.ts
3
- * Line count: 1152 lines → ~1100 lines (5% reduction - SQLite-specific migration with extensive table recreation)
4
- *
5
- * Migration: Multi-Project Support v3.7.0 (Consolidated)
6
- *
7
- * Consolidates 4 separate migrations into a single comprehensive migration:
8
- * - 20251101000000_add_multi_project_support (enhancements)
9
- * - 20251104000000_multi_project_support_v3_7_0 (upgrades)
10
- * - 20251104000001_multi_project_fix_constraints (upgrades)
11
- * - 20251104000002_hotfix_missing_project_id (upgrades)
12
- *
13
- * Adds multi-project isolation support by:
14
- * 1. Creating m_projects master table
15
- * 2. Adding project_id to all transaction tables (14 tables)
16
- * 3. Updating PRIMARY KEY constraints to composite (key_id, project_id)
17
- * 4. Recreating m_config table with proper PRIMARY KEY structure
18
- * 5. Adding indexes for multi-project queries
19
- * 6. Recreating all views with project_id support
20
- *
21
- * Migration Steps:
22
- * - STEP 1: Create m_projects table
23
- * - STEP 2: Drop all views and triggers before modifications
24
- * - STEP 3: Add project_id via ALTER TABLE (10 tables)
25
- * - STEP 4: Fix PRIMARY KEY constraints (composite keys)
26
- * - STEP 4a-4b: Recreate t_decisions tables with composite PRIMARY KEY
27
- * - STEP 4.5: Recreate t_task_tags with composite PRIMARY KEY
28
- * - STEP 4.6: Recreate t_task_dependencies with composite PRIMARY KEY
29
- * - STEP 4.7: Recreate t_task_details with project_id (ALTER TABLE fails due to FK constraints)
30
- * - STEP 4.8: Recreate t_task_file_links with project_id (ALTER TABLE fails due to FK constraints)
31
- * - STEP 4.9: Recreate t_task_decision_links with project_id (ALTER TABLE fails due to FK constraints)
32
- * - STEP 5: Recreate m_config table
33
- * - STEP 6: Create composite indexes
34
- * - STEP 7: Recreate all views with project_id support
35
- * - STEP 8: Re-enable foreign key constraints
36
- *
37
- * SQLite Limitation Note:
38
- * ALTER TABLE cannot modify tables with complex FOREIGN KEY constraints (ON DELETE CASCADE).
39
- * Tables requiring recreation: t_task_details, t_task_tags, t_task_file_links,
40
- * t_task_decision_links, t_task_dependencies.
41
- *
42
- * Satisfies Constraints:
43
- * - #22 (CRITICAL): All transaction tables have project_id
44
- * - #23 (CRITICAL): m_projects table with name/detection_source
45
- * - #39 (HIGH): Composite indexes with project_id first
46
- * - #41 (HIGH): t_task_tags composite PRIMARY KEY
47
- * - #42 (HIGH): t_task_dependencies composite PRIMARY KEY
48
- *
49
- * NOTE: This migration is SQLite-specific and contains extensive table recreation logic.
50
- * The Universal Knex Wrapper provides limited benefits due to SQLite-specific operations.
51
- * MySQL/PostgreSQL compatibility is handled by separate migration 20251109000002.
52
- */
53
- import { UniversalKnex } from "../../utils/universal-knex.js";
54
- import { detectProjectNameSync } from "../../utils/project-detector.js";
55
- export async function up(knex) {
56
- const db = new UniversalKnex(knex);
57
- // **BUG FIX v3.7.5**: This migration is SQLite-specific
58
- // MySQL/PostgreSQL compatibility handled by 20251109000002_multi_project_cross_db_compat_v3_7_5.ts
59
- if (!db.isSQLite) {
60
- console.log(`✓ Non-SQLite database detected, skipping (handled by 20251109000002)`);
61
- return;
62
- }
63
- // Check if migration already completed
64
- const hasProjectsTable = await knex.schema.hasTable("m_projects");
65
- const hasProjectIdInDecisions = await knex.schema.hasColumn("t_decisions", "project_id");
66
- const hasMigrationMarker = await knex.schema.hasTable("_multi_project_pk_fixed");
67
- console.log(`🔍 Multi-project migration check:`);
68
- console.log(` - m_projects: ${hasProjectsTable}`);
69
- console.log(` - project_id in t_decisions: ${hasProjectIdInDecisions}`);
70
- console.log(` - migration marker: ${hasMigrationMarker}`);
71
- // If fully migrated, skip
72
- if (hasProjectsTable && hasProjectIdInDecisions && hasMigrationMarker) {
73
- console.log("✓ Multi-project schema already migrated, skipping");
74
- return;
75
- }
76
- console.log("🔄 Starting multi-project support migration v3.7.0 (consolidated)...");
77
- // Disable foreign key constraints temporarily for SQLite
78
- await knex.raw("PRAGMA foreign_keys = OFF");
79
- console.log("✓ Disabled foreign key constraints");
80
- // ============================================================================
81
- // STEP 1: Create m_projects Master Table
82
- // ============================================================================
83
- let defaultProjectId;
84
- // Detect real project name (v3.7.3 fix)
85
- const projectRoot = process.cwd();
86
- const detected = detectProjectNameSync(projectRoot);
87
- if (!hasProjectsTable) {
88
- await knex.schema.createTable("m_projects", (table) => {
89
- table.increments("id").primary();
90
- table.string("name", 64).notNullable().unique();
91
- table.string("display_name", 128);
92
- table.string("detection_source", 20).notNullable(); // 'cli' | 'config' | 'git' | 'metadata' | 'directory'
93
- table.string("project_root_path", 512);
94
- table.integer("created_ts").notNullable();
95
- table.integer("last_active_ts").notNullable();
96
- table.text("metadata"); // JSON string for extensibility
97
- });
98
- // Insert project with REAL detected name (v3.7.3 fix)
99
- const now = Math.floor(Date.now() / 1000);
100
- await knex("m_projects").insert({
101
- id: 1,
102
- name: detected.name,
103
- display_name: detected.name,
104
- detection_source: detected.source,
105
- created_ts: now,
106
- last_active_ts: now,
107
- });
108
- defaultProjectId = 1;
109
- console.log(`✓ Created m_projects table with project "${detected.name}" (ID: ${defaultProjectId}, source: ${detected.source})`);
110
- }
111
- else {
112
- // ========================================================================
113
- // Data Consolidation Strategy (v3.7.3 fix)
114
- // ========================================================================
115
- // Goal: Consolidate everything into project ID 1 with correct name
116
- //
117
- // This ONLY runs if upgrading from v3.7.0-v3.7.2 where:
118
- // - Project #1 was created with fake name "default" or "default-project"
119
- // - User manually created project #2 with real project name
120
- //
121
- // For fresh installs, project #1 is created with real name above,
122
- // so consolidation is skipped.
123
- const existingProject1 = await knex("m_projects")
124
- .where({ id: 1 })
125
- .first();
126
- const existingProject2 = await knex("m_projects")
127
- .where({ id: 2 })
128
- .first();
129
- const FAKE_NAMES = ["default-project", "default"];
130
- // Check if this is a v3.7.0-v3.7.2 upgrade scenario
131
- // (project #1 has fake name AND project #2 exists)
132
- const isV370UpgradeScenario = existingProject1 && existingProject2 && FAKE_NAMES.includes(existingProject1.name);
133
- // Perform consolidation ONLY for v3.7.0-v3.7.2 upgrades
134
- if (isV370UpgradeScenario) {
135
- console.log(`🔄 Detected v3.7.0-v3.7.2 upgrade scenario - consolidating projects...`);
136
- console.log(` Project #1: "${existingProject1.name}" (fake name, empty)`);
137
- console.log(` Project #2: "${existingProject2.name}" (real project, has data)`);
138
- console.log(`🔄 Consolidating project #2 into project #1...`);
139
- // STEP 1: Temporarily rename project #2 to avoid conflict
140
- const tempName = `temp-${existingProject2.name}-${Date.now()}`;
141
- await knex("m_projects").where({ id: 2 }).update({ name: tempName });
142
- console.log(` ✓ Temporarily renamed project #2 to "${tempName}"`);
143
- // STEP 2: Rename project #1 to real detected name
144
- await knex("m_projects")
145
- .where({ id: 1 })
146
- .update({
147
- name: detected.name,
148
- display_name: detected.name,
149
- detection_source: detected.source,
150
- last_active_ts: Math.floor(Date.now() / 1000),
151
- });
152
- console.log(` ✓ Renamed project #1 from "${existingProject1.name}" to "${detected.name}"`);
153
- // STEP 3: Migrate ALL data from project_id=2 → 1
154
- const tablesToUpdate = [
155
- "t_decisions",
156
- "t_decisions_numeric",
157
- "t_decision_history",
158
- "t_decision_tags",
159
- "t_decision_scopes",
160
- "t_file_changes",
161
- "t_constraints",
162
- "t_tasks",
163
- "t_task_tags",
164
- "t_task_dependencies",
165
- "t_task_details",
166
- "t_task_file_links",
167
- "t_task_decision_links",
168
- "t_activity_log",
169
- "t_decision_context",
170
- ];
171
- for (const tableName of tablesToUpdate) {
172
- const hasTable = await knex.schema.hasTable(tableName);
173
- if (hasTable) {
174
- const hasProjectId = await knex.schema.hasColumn(tableName, "project_id");
175
- if (hasProjectId) {
176
- const count = await knex(tableName).where({ project_id: 2 }).update({ project_id: 1 });
177
- if (count > 0) {
178
- console.log(` ✓ Migrated ${count} rows in ${tableName} (project_id: 2→1)`);
179
- }
180
- }
181
- }
182
- }
183
- // STEP 4: Delete project #2
184
- await knex("m_projects").where({ id: 2 }).delete();
185
- console.log(` ✓ Deleted project #2 (data consolidated into project #1)`);
186
- console.log(`✅ Consolidation complete - all data now in project #1 "${detected.name}"`);
187
- }
188
- else if (existingProject1 && FAKE_NAMES.includes(existingProject1.name)) {
189
- // No project #2, just rename project #1
190
- console.log(`🔄 Renaming project #1 from "${existingProject1.name}" to "${detected.name}"`);
191
- await knex("m_projects")
192
- .where({ id: 1 })
193
- .update({
194
- name: detected.name,
195
- display_name: detected.name,
196
- detection_source: detected.source,
197
- last_active_ts: Math.floor(Date.now() / 1000),
198
- });
199
- console.log(`✓ Project #1 renamed to "${detected.name}" (source: ${detected.source})`);
200
- }
201
- else if (existingProject1) {
202
- // User already has real name, don't change it
203
- console.log(`✓ Using existing project "${existingProject1.name}" (ID: 1)`);
204
- }
205
- // Always use project ID 1 after consolidation
206
- defaultProjectId = 1;
207
- }
208
- // ============================================================================
209
- // STEP 2: Drop All Views and Triggers (Before Table Modifications)
210
- // ============================================================================
211
- // Drop ALL views (including old schema views)
212
- const views = await knex.raw(`SELECT name FROM sqlite_master WHERE type='view'`);
213
- for (const view of views) {
214
- await knex.raw(`DROP VIEW IF EXISTS ${view.name}`);
215
- }
216
- console.log(`✓ Dropped all ${views.length} views before table modifications`);
217
- // Drop ALL triggers (old schema compatibility)
218
- const triggers = await knex.raw(`SELECT name FROM sqlite_master WHERE type='trigger'`);
219
- for (const trigger of triggers) {
220
- await knex.raw(`DROP TRIGGER IF EXISTS ${trigger.name}`);
221
- }
222
- console.log(`✓ Dropped all ${triggers.length} triggers before table modifications`);
223
- // Drop old t_agent_messages table if exists (removed in v3.6.5)
224
- await knex.schema.dropTableIfExists("t_agent_messages");
225
- console.log("✓ Dropped t_agent_messages if it existed (removed in v3.6.5)");
226
- // ============================================================================
227
- // STEP 3: Add project_id to Transaction Tables
228
- // ============================================================================
229
- // Helper function to add project_id column using raw SQL (more reliable for old schemas)
230
- async function addProjectIdColumn(tableName, knex, defaultProjectId) {
231
- const hasColumn = await knex.schema.hasColumn(tableName, "project_id");
232
- if (!hasColumn) {
233
- // Use raw SQL to avoid Knex's schema parsing issues with old schemas
234
- await knex.raw(`ALTER TABLE ${tableName} ADD COLUMN project_id INTEGER NOT NULL DEFAULT ${defaultProjectId}`);
235
- // Add foreign key separately
236
- await db.createIndexSafe(tableName, ['project_id'], `idx_${tableName}_project`);
237
- console.log(`✓ Added project_id to ${tableName}`);
238
- }
239
- else {
240
- console.log(` ⏭ ${tableName} already has project_id, skipping`);
241
- }
242
- }
243
- // Transaction tables that need project_id
244
- // Note: t_decision_context is handled separately in Step 4 (after PRIMARY KEY fix)
245
- // Note: t_task_details, t_task_tags, t_task_dependencies are recreated in Steps 4.5-4.7 (need table recreation for constraints)
246
- const transactionTables = [
247
- "t_decision_history",
248
- "t_decision_tags",
249
- "t_decision_scopes",
250
- "t_file_changes",
251
- "t_constraints",
252
- "t_tasks",
253
- // 't_task_details', // Handled in STEP 4.7 (needs table recreation)
254
- // 't_task_tags', // Handled in STEP 4.5 (composite PRIMARY KEY)
255
- "t_task_file_links",
256
- "t_task_decision_links",
257
- // 't_task_dependencies', // Handled in STEP 4.6 (composite PRIMARY KEY)
258
- "t_activity_log", // Required for stats.clear to filter by project_id
259
- ];
260
- for (const tableName of transactionTables) {
261
- await addProjectIdColumn(tableName, knex, defaultProjectId);
262
- }
263
- // ============================================================================
264
- // STEP 4: Fix PRIMARY KEY Constraints (t_decisions tables)
265
- // ============================================================================
266
- // For SQLite, we need to recreate tables to change PRIMARY KEY from single-column
267
- // to composite (key_id, project_id)
268
- if (!hasMigrationMarker) {
269
- console.log("🔄 Fixing PRIMARY KEY constraints for t_decisions tables...");
270
- // Drop t_decision_context temporarily (has FK to t_decisions)
271
- let decisionContextData = [];
272
- const hasDecisionContext = await knex.schema.hasTable("t_decision_context");
273
- if (hasDecisionContext) {
274
- decisionContextData = await knex("t_decision_context").select("*");
275
- await knex.schema.dropTable("t_decision_context");
276
- console.log("✓ Temporarily dropped t_decision_context (will recreate)");
277
- }
278
- // 4a. t_decisions
279
- const decisionsData = await knex("t_decisions").select("*");
280
- await knex.schema.dropTableIfExists("t_decisions");
281
- await knex.schema.createTable("t_decisions", (table) => {
282
- table.integer("key_id").unsigned().notNullable();
283
- table.integer("project_id").unsigned().notNullable().defaultTo(defaultProjectId);
284
- table.text("value").notNullable();
285
- table.integer("agent_id").unsigned();
286
- table.integer("layer_id").unsigned();
287
- table.string("version", 20).defaultTo("1.0.0");
288
- table.integer("status").defaultTo(1);
289
- table.integer("ts").notNullable();
290
- // Composite PRIMARY KEY
291
- table.primary(["key_id", "project_id"]);
292
- // Foreign keys
293
- table.foreign("key_id").references("m_context_keys.id");
294
- table.foreign("agent_id").references("m_agents.id");
295
- table.foreign("layer_id").references("m_layers.id");
296
- table.foreign("project_id").references("m_projects.id").onDelete("CASCADE");
297
- });
298
- if (decisionsData.length > 0) {
299
- // Ensure project_id is set for existing data
300
- await knex("t_decisions").insert(decisionsData.map((row) => ({
301
- ...row,
302
- project_id: row.project_id || defaultProjectId,
303
- })));
304
- }
305
- console.log(`✓ Recreated t_decisions with composite PRIMARY KEY (${decisionsData.length} rows)`);
306
- // 4b. t_decisions_numeric
307
- const decisionsNumericData = await knex("t_decisions_numeric").select("*");
308
- await knex.schema.dropTableIfExists("t_decisions_numeric");
309
- await knex.schema.createTable("t_decisions_numeric", (table) => {
310
- table.integer("key_id").unsigned().notNullable();
311
- table.integer("project_id").unsigned().notNullable().defaultTo(defaultProjectId);
312
- table.double("value").notNullable();
313
- table.integer("agent_id").unsigned();
314
- table.integer("layer_id").unsigned();
315
- table.string("version", 20).defaultTo("1.0.0");
316
- table.integer("status").defaultTo(1);
317
- table.integer("ts").notNullable();
318
- // Composite PRIMARY KEY
319
- table.primary(["key_id", "project_id"]);
320
- // Foreign keys
321
- table.foreign("key_id").references("m_context_keys.id");
322
- table.foreign("agent_id").references("m_agents.id");
323
- table.foreign("layer_id").references("m_layers.id");
324
- table.foreign("project_id").references("m_projects.id").onDelete("CASCADE");
325
- });
326
- if (decisionsNumericData.length > 0) {
327
- await knex("t_decisions_numeric").insert(decisionsNumericData.map((row) => ({
328
- ...row,
329
- project_id: row.project_id || defaultProjectId,
330
- })));
331
- }
332
- console.log(`✓ Recreated t_decisions_numeric with composite PRIMARY KEY (${decisionsNumericData.length} rows)`);
333
- // Create migration marker
334
- await knex.schema.createTable("_multi_project_pk_fixed", (table) => {
335
- table.integer("applied_ts").notNullable();
336
- });
337
- await knex("_multi_project_pk_fixed").insert({
338
- applied_ts: Math.floor(Date.now() / 1000),
339
- });
340
- console.log("✓ Created migration marker table");
341
- // Recreate t_decision_context if it existed
342
- if (hasDecisionContext) {
343
- await knex.schema.createTable("t_decision_context", (table) => {
344
- table.increments("id").primary();
345
- table.integer("decision_key_id").unsigned().notNullable();
346
- table.text("rationale");
347
- table.text("alternatives_considered"); // JSON array (was 'alternatives' - fixed for compatibility)
348
- table.text("tradeoffs"); // JSON object
349
- table.integer("agent_id").unsigned();
350
- table.integer("decision_date").notNullable().defaultTo(knex.raw("(unixepoch())"));
351
- table.integer("related_task_id").unsigned();
352
- table.integer("related_constraint_id").unsigned();
353
- table.integer("ts").notNullable().defaultTo(knex.raw("(unixepoch())"));
354
- table.integer("project_id").unsigned().notNullable().defaultTo(defaultProjectId);
355
- // Foreign keys
356
- table.foreign("decision_key_id").references("m_context_keys.id");
357
- table.foreign("agent_id").references("m_agents.id");
358
- table.foreign("related_task_id").references("t_tasks.id").onDelete("SET NULL");
359
- table.foreign("related_constraint_id").references("t_constraints.id").onDelete("SET NULL");
360
- table.foreign("project_id").references("m_projects.id").onDelete("CASCADE");
361
- // Unique constraint
362
- table.unique(["decision_key_id", "id"]);
363
- });
364
- // Restore data with project_id
365
- if (decisionContextData.length > 0) {
366
- await knex("t_decision_context").insert(decisionContextData.map((row) => ({
367
- ...row,
368
- project_id: row.project_id || defaultProjectId,
369
- })));
370
- }
371
- console.log(`✓ Recreated t_decision_context (${decisionContextData.length} rows)`);
372
- }
373
- }
374
- else {
375
- console.log("✓ PRIMARY KEY constraints already fixed, skipping");
376
- }
377
- // ============================================================================
378
- // STEP 4.5: Fix t_task_tags PRIMARY KEY (Constraint #41)
379
- // ============================================================================
380
- // t_task_tags needs composite PRIMARY KEY (project_id, task_id, tag_id)
381
- // to support ON CONFLICT clause for multi-project tag insertion
382
- const taskTagsHasCorrectPK = await knex
383
- .raw(`SELECT sql FROM sqlite_master WHERE type='table' AND name='t_task_tags'`)
384
- .then((result) => {
385
- const createSql = result[0]?.sql || "";
386
- return (createSql.includes("PRIMARY KEY (project_id, task_id, tag_id)") ||
387
- createSql.includes("PRIMARY KEY(project_id, task_id, tag_id)"));
388
- });
389
- if (!taskTagsHasCorrectPK) {
390
- console.log("🔄 Fixing t_task_tags PRIMARY KEY to include project_id...");
391
- // Backup existing data
392
- const taskTagsData = await knex("t_task_tags").select("*");
393
- // Drop and recreate table with correct PRIMARY KEY
394
- await knex.schema.dropTableIfExists("t_task_tags");
395
- await knex.schema.createTable("t_task_tags", (table) => {
396
- table.integer("project_id").unsigned().notNullable().defaultTo(defaultProjectId);
397
- table.integer("task_id").unsigned().notNullable();
398
- table.integer("tag_id").unsigned().notNullable();
399
- // Composite PRIMARY KEY with project_id first
400
- table.primary(["project_id", "task_id", "tag_id"]);
401
- // Foreign keys
402
- table.foreign("project_id").references("id").inTable("m_projects").onDelete("CASCADE");
403
- table.foreign("task_id").references("id").inTable("t_tasks").onDelete("CASCADE");
404
- table.foreign("tag_id").references("id").inTable("m_tags");
405
- });
406
- // Restore data with project_id
407
- if (taskTagsData.length > 0) {
408
- await knex("t_task_tags").insert(taskTagsData.map((row) => ({
409
- ...row,
410
- project_id: row.project_id || defaultProjectId,
411
- })));
412
- }
413
- console.log(`✓ Recreated t_task_tags with composite PRIMARY KEY (${taskTagsData.length} rows)`);
414
- }
415
- else {
416
- console.log("✓ t_task_tags PRIMARY KEY already correct, skipping");
417
- }
418
- // STEP 4.6: Fix t_task_dependencies PRIMARY KEY (Constraint #42)
419
- // PRIMARY KEY must be (project_id, blocker_task_id, blocked_task_id) for multi-project support
420
- const taskDepsHasCorrectPK = await knex
421
- .raw(`SELECT sql FROM sqlite_master WHERE type='table' AND name='t_task_dependencies'`)
422
- .then((result) => {
423
- const createSql = result[0]?.sql || "";
424
- return (createSql.includes("PRIMARY KEY (project_id, blocker_task_id, blocked_task_id)") ||
425
- createSql.includes("PRIMARY KEY(project_id, blocker_task_id, blocked_task_id)"));
426
- });
427
- if (!taskDepsHasCorrectPK) {
428
- console.log("🔄 Fixing t_task_dependencies PRIMARY KEY to include project_id...");
429
- // Backup existing data
430
- const taskDepsData = await knex("t_task_dependencies").select("*");
431
- // Drop and recreate table with correct PRIMARY KEY
432
- await knex.schema.dropTableIfExists("t_task_dependencies");
433
- await knex.schema.createTable("t_task_dependencies", (table) => {
434
- table.integer("project_id").unsigned().notNullable().defaultTo(defaultProjectId);
435
- table.integer("blocker_task_id").unsigned().notNullable();
436
- table.integer("blocked_task_id").unsigned().notNullable();
437
- table.integer("created_ts").notNullable().defaultTo(knex.raw("(unixepoch())"));
438
- // Composite PRIMARY KEY with project_id first
439
- table.primary(["project_id", "blocker_task_id", "blocked_task_id"]);
440
- // Foreign keys
441
- table.foreign("project_id").references("id").inTable("m_projects").onDelete("CASCADE");
442
- table.foreign("blocker_task_id").references("id").inTable("t_tasks").onDelete("CASCADE");
443
- table.foreign("blocked_task_id").references("id").inTable("t_tasks").onDelete("CASCADE");
444
- });
445
- await db.createIndexSafe('t_task_dependencies', ['blocked_task_id', 'project_id'], 'idx_task_deps_blocked');
446
- // Restore data with project_id
447
- if (taskDepsData.length > 0) {
448
- await knex("t_task_dependencies").insert(taskDepsData.map((row) => ({
449
- ...row,
450
- project_id: row.project_id || defaultProjectId,
451
- })));
452
- }
453
- console.log(`✓ Recreated t_task_dependencies with composite PRIMARY KEY (${taskDepsData.length} rows)`);
454
- }
455
- else {
456
- console.log("✓ t_task_dependencies PRIMARY KEY already correct, skipping");
457
- }
458
- // ============================================================================
459
- // STEP 4.7: Fix t_task_details (Add project_id - needs table recreation)
460
- // ============================================================================
461
- const taskDetailsHasProjectId = await knex.schema.hasColumn("t_task_details", "project_id");
462
- if (!taskDetailsHasProjectId) {
463
- console.log("🔄 Adding project_id to t_task_details (requires table recreation due to FK)...");
464
- const taskDetailsExists = await knex.schema.hasTable("t_task_details");
465
- let taskDetailsData = [];
466
- if (taskDetailsExists) {
467
- taskDetailsData = await knex("t_task_details").select("*");
468
- await knex.schema.dropTable("t_task_details");
469
- }
470
- await knex.schema.createTable("t_task_details", (table) => {
471
- table.integer("task_id").unsigned().notNullable();
472
- table.integer("project_id").unsigned().notNullable().defaultTo(defaultProjectId);
473
- table.text("notes");
474
- table.text("acceptance_criteria");
475
- table.text("blocking_issues");
476
- table.bigInteger("estimated_hours");
477
- table.integer("actual_hours");
478
- table.integer("updated_ts").notNullable().defaultTo(knex.raw("(unixepoch())"));
479
- // Composite PRIMARY KEY
480
- table.primary(["task_id", "project_id"]);
481
- // Foreign keys
482
- table.foreign("task_id").references("id").inTable("t_tasks").onDelete("CASCADE");
483
- table.foreign("project_id").references("id").inTable("m_projects").onDelete("CASCADE");
484
- });
485
- if (taskDetailsData.length > 0) {
486
- await knex("t_task_details").insert(taskDetailsData.map((row) => ({
487
- ...row,
488
- project_id: row.project_id || defaultProjectId,
489
- })));
490
- }
491
- console.log(`✓ Recreated t_task_details with project_id (${taskDetailsData.length} rows)`);
492
- }
493
- else {
494
- console.log("✓ t_task_details already has project_id, skipping");
495
- }
496
- // ============================================================================
497
- // STEP 4.8: Fix t_task_file_links (Add project_id - needs table recreation)
498
- // ============================================================================
499
- const taskFileLinksHasProjectId = await knex.schema.hasColumn("t_task_file_links", "project_id");
500
- if (!taskFileLinksHasProjectId) {
501
- console.log("🔄 Adding project_id to t_task_file_links (requires table recreation due to FK)...");
502
- const taskFileLinksData = await knex("t_task_file_links").select("*");
503
- await knex.schema.dropTable("t_task_file_links");
504
- await knex.schema.createTable("t_task_file_links", (table) => {
505
- table.integer("task_id").unsigned().notNullable();
506
- table.integer("file_id").unsigned().notNullable();
507
- table.integer("project_id").unsigned().notNullable().defaultTo(defaultProjectId);
508
- table.bigInteger("linked_ts").notNullable().defaultTo(knex.raw("(unixepoch())"));
509
- // UNIQUE constraint on (project_id, task_id, file_id) for ON CONFLICT DO NOTHING
510
- table.unique(["project_id", "task_id", "file_id"]);
511
- // Foreign keys
512
- table.foreign("task_id").references("id").inTable("t_tasks").onDelete("CASCADE");
513
- table.foreign("file_id").references("id").inTable("m_files").onDelete("CASCADE");
514
- table.foreign("project_id").references("id").inTable("m_projects").onDelete("CASCADE");
515
- });
516
- if (taskFileLinksData.length > 0) {
517
- await knex("t_task_file_links").insert(taskFileLinksData.map((row) => ({
518
- ...row,
519
- project_id: row.project_id || defaultProjectId,
520
- })));
521
- }
522
- console.log(`✓ Recreated t_task_file_links with project_id (${taskFileLinksData.length} rows)`);
523
- }
524
- else {
525
- console.log("✓ t_task_file_links already has project_id, skipping");
526
- }
527
- // ============================================================================
528
- // STEP 4.9: Fix t_task_decision_links (Add project_id if it doesn't exist)
529
- // ============================================================================
530
- const taskDecisionLinksHasProjectId = await knex.schema.hasColumn("t_task_decision_links", "project_id");
531
- if (!taskDecisionLinksHasProjectId) {
532
- console.log("🔄 Adding project_id to t_task_decision_links (requires table recreation due to FK)...");
533
- const taskDecisionLinksData = await knex("t_task_decision_links").select("*");
534
- await knex.schema.dropTable("t_task_decision_links");
535
- await knex.schema.createTable("t_task_decision_links", (table) => {
536
- table.integer("task_id").unsigned().notNullable();
537
- table.integer("decision_id").unsigned().notNullable();
538
- table.integer("project_id").unsigned().notNullable().defaultTo(defaultProjectId);
539
- table.text("link_type").defaultTo("implements");
540
- table.bigInteger("linked_ts").notNullable().defaultTo(knex.raw("(unixepoch())"));
541
- // Composite PRIMARY KEY
542
- table.primary(["task_id", "decision_id", "project_id"]);
543
- // Foreign keys
544
- table.foreign("task_id").references("id").inTable("t_tasks").onDelete("CASCADE");
545
- table.foreign("project_id").references("id").inTable("m_projects").onDelete("CASCADE");
546
- });
547
- if (taskDecisionLinksData.length > 0) {
548
- await knex("t_task_decision_links").insert(taskDecisionLinksData.map((row) => ({
549
- ...row,
550
- project_id: row.project_id || defaultProjectId,
551
- })));
552
- }
553
- console.log(`✓ Recreated t_task_decision_links with project_id (${taskDecisionLinksData.length} rows)`);
554
- }
555
- else {
556
- console.log("✓ t_task_decision_links already has project_id, skipping");
557
- }
558
- // ============================================================================
559
- // STEP 5: Recreate m_config Table
560
- // ============================================================================
561
- console.log("🔄 Recreating m_config table with project_id and composite PRIMARY KEY...");
562
- const configData = await knex("m_config").select("*");
563
- await knex.schema.dropTable("m_config");
564
- await knex.schema.createTable("m_config", (table) => {
565
- table.string("key", 128).notNullable();
566
- table.integer("project_id").unsigned().notNullable().defaultTo(defaultProjectId);
567
- table.text("value").notNullable();
568
- table.integer("updated_ts").notNullable().defaultTo(knex.raw("(unixepoch())"));
569
- // Composite PRIMARY KEY (key, project_id)
570
- table.primary(["key", "project_id"]);
571
- // Foreign key
572
- table.foreign("project_id").references("id").inTable("m_projects").onDelete("CASCADE");
573
- });
574
- if (configData.length > 0) {
575
- await knex("m_config").insert(configData.map((row) => ({
576
- ...row,
577
- project_id: row.project_id || defaultProjectId,
578
- })));
579
- }
580
- console.log(`✓ Recreated m_config with composite PRIMARY KEY (${configData.length} rows)`);
581
- // ============================================================================
582
- // STEP 6: Create Composite Indexes (Constraint #39)
583
- // ============================================================================
584
- console.log("🔄 Creating composite indexes with project_id first (Constraint #39)...");
585
- // Create indexes with project_id first for optimal query performance
586
- await db.createIndexSafe('t_decisions', ['project_id', 'key_id', 'ts DESC'], 'idx_decisions_project_key');
587
- await db.createIndexSafe('t_decisions_numeric', ['project_id', 'key_id', 'ts DESC'], 'idx_decisions_numeric_project_key');
588
- await db.createIndexSafe('t_decision_tags', ['project_id', 'tag_id'], 'idx_decision_tags_project');
589
- await db.createIndexSafe('t_decision_scopes', ['project_id', 'scope_id'], 'idx_decision_scopes_project');
590
- await db.createIndexSafe('t_file_changes', ['project_id', 'file_id'], 'idx_file_changes_project');
591
- await db.createIndexSafe('t_constraints', ['project_id', 'priority DESC'], 'idx_constraints_project_priority');
592
- await db.createIndexSafe('t_tasks', ['project_id', 'status_id', 'priority DESC'], 'idx_tasks_project_status');
593
- await db.createIndexSafe('t_task_tags', ['project_id', 'tag_id'], 'idx_task_tags_project');
594
- await db.createIndexSafe('t_task_file_links', ['project_id', 'task_id', 'file_id'], 'idx_task_file_links_project');
595
- await db.createIndexSafe('t_task_decision_links', ['project_id', 'task_id', 'decision_id'], 'idx_task_decision_links_project');
596
- console.log("✓ Created composite indexes with project_id first");
597
- // ============================================================================
598
- // STEP 7: Recreate All Views with Multi-Project Support
599
- // ============================================================================
600
- console.log("🔄 Recreating all views with project_id support...");
601
- // v_tagged_decisions
602
- await knex.raw(`
603
- CREATE VIEW v_tagged_decisions AS
604
- SELECT d.key_id,
605
- d.project_id,
606
- k.key as decision_key,
607
- d.value,
608
- l.name as layer,
609
- d.version,
610
- d.status,
611
- datetime(d.ts, 'unixepoch') as timestamp
612
- FROM t_decisions d
613
- LEFT JOIN m_context_keys k ON d.key_id = k.id
614
- LEFT JOIN m_layers l ON d.layer_id = l.id
615
- ORDER BY d.ts DESC
616
- `);
617
- // v_active_context
618
- await knex.raw(`
619
- CREATE VIEW v_active_context AS
620
- SELECT k.key,
621
- d.project_id,
622
- d.value,
623
- l.name as layer,
624
- datetime(d.ts, 'unixepoch') as last_updated
625
- FROM t_decisions d
626
- INNER JOIN m_context_keys k ON d.key_id = k.id
627
- LEFT JOIN m_layers l ON d.layer_id = l.id
628
- WHERE d.status = 1
629
- ORDER BY d.ts DESC
630
- `);
631
- // v_layer_summary
632
- await knex.raw(`
633
- CREATE VIEW v_layer_summary AS
634
- SELECT l.name as layer,
635
- d.project_id,
636
- COUNT(*) as decision_count
637
- FROM t_decisions d
638
- INNER JOIN m_layers l ON d.layer_id = l.id
639
- WHERE d.status = 1
640
- GROUP BY l.id, l.name, d.project_id
641
- ORDER BY COUNT(*) DESC
642
- `);
643
- // v_recent_file_changes
644
- await knex.raw(`
645
- CREATE VIEW v_recent_file_changes AS
646
- SELECT f.path,
647
- fc.project_id,
648
- a.name as changed_by,
649
- datetime(fc.ts, 'unixepoch') as changed_at
650
- FROM t_file_changes fc
651
- INNER JOIN m_files f ON fc.file_id = f.id
652
- LEFT JOIN m_agents a ON fc.agent_id = a.id
653
- ORDER BY fc.ts DESC
654
- LIMIT 50
655
- `);
656
- // v_tagged_constraints
657
- await knex.raw(`
658
- CREATE VIEW v_tagged_constraints AS
659
- SELECT c.id,
660
- c.constraint_text,
661
- c.project_id,
662
- cat.name as category,
663
- c.priority,
664
- a.name as author,
665
- datetime(c.ts, 'unixepoch') as created
666
- FROM t_constraints c
667
- LEFT JOIN m_constraint_categories cat ON c.category_id = cat.id
668
- LEFT JOIN m_agents a ON c.agent_id = a.id
669
- WHERE c.active = 1
670
- ORDER BY c.priority DESC, c.ts DESC
671
- `);
672
- // v_task_board
673
- await knex.raw(`
674
- CREATE VIEW v_task_board AS
675
- SELECT t.id,
676
- t.title,
677
- t.project_id,
678
- s.name as status,
679
- t.priority,
680
- t.assigned_agent,
681
- a.name as created_by,
682
- datetime(t.created_ts, 'unixepoch') as created_at,
683
- datetime(t.updated_ts, 'unixepoch') as updated_at
684
- FROM t_tasks t
685
- INNER JOIN m_task_statuses s ON t.status_id = s.id
686
- LEFT JOIN m_agents a ON t.created_by_agent_id = a.id
687
- ORDER BY t.priority DESC, t.created_ts DESC
688
- `);
689
- console.log("✓ Recreated all views with project_id support");
690
- // ============================================================================
691
- // STEP 8: Re-enable Foreign Key Constraints
692
- // ============================================================================
693
- await knex.raw("PRAGMA foreign_keys = ON");
694
- console.log("✓ Re-enabled foreign key constraints");
695
- console.log("✅ Multi-project support migration v3.7.0 (consolidated) complete!");
696
- }
697
- export async function down(knex) {
698
- console.log("⚠️ Rollback not supported for multi-project migration (data migration is one-way)");
699
- console.log(" To rollback, restore from backup taken before migration");
700
- }
701
- //# sourceMappingURL=20251104000000_add_multi_project_v3_7_0.js.map