sqlew 3.6.0 → 3.6.2

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 (242) hide show
  1. package/CHANGELOG.md +403 -376
  2. package/assets/config.example.toml +9 -0
  3. package/dist/config/types.d.ts +2 -0
  4. package/dist/config/types.d.ts.map +1 -1
  5. package/dist/config/types.js.map +1 -1
  6. package/dist/database.d.ts +14 -1
  7. package/dist/database.d.ts.map +1 -1
  8. package/dist/database.js +128 -5
  9. package/dist/database.js.map +1 -1
  10. package/dist/index.js +136 -82
  11. package/dist/index.js.map +1 -1
  12. package/dist/knexfile.d.ts.map +1 -1
  13. package/dist/knexfile.js +15 -3
  14. package/dist/knexfile.js.map +1 -1
  15. package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.d.ts.map +1 -0
  16. package/dist/migrations/knex/{20251025020452_create_master_tables.js → bootstrap/20251025020452_create_master_tables.js} +15 -12
  17. package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.js.map +1 -0
  18. package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.d.ts.map +1 -0
  19. package/dist/migrations/knex/{20251025021152_create_transaction_tables.js → bootstrap/20251025021152_create_transaction_tables.js} +19 -19
  20. package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.js.map +1 -0
  21. package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.d.ts.map +1 -0
  22. package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.js +93 -0
  23. package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.js.map +1 -0
  24. package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.d.ts.map +1 -0
  25. package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.js +64 -0
  26. package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.js.map +1 -0
  27. package/dist/migrations/knex/bootstrap/20251025070349_create_views.d.ts.map +1 -0
  28. package/dist/migrations/knex/bootstrap/20251025070349_create_views.js.map +1 -0
  29. package/dist/migrations/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts.map +1 -0
  30. package/dist/migrations/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js.map +1 -0
  31. package/dist/migrations/knex/enhancements/20251025082220_fix_task_dependencies_columns.d.ts.map +1 -0
  32. package/dist/migrations/knex/enhancements/20251025082220_fix_task_dependencies_columns.js.map +1 -0
  33. package/dist/migrations/knex/enhancements/20251025090000_create_help_system_tables.d.ts.map +1 -0
  34. package/dist/migrations/knex/enhancements/20251025090000_create_help_system_tables.js.map +1 -0
  35. package/dist/migrations/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts.map +1 -0
  36. package/dist/migrations/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.js.map +1 -0
  37. package/dist/migrations/knex/enhancements/20251025100000_seed_help_metadata.d.ts.map +1 -0
  38. package/dist/migrations/knex/enhancements/20251025100000_seed_help_metadata.js.map +1 -0
  39. package/dist/migrations/knex/enhancements/20251025100100_seed_remaining_use_cases.d.ts.map +1 -0
  40. package/dist/migrations/knex/enhancements/20251025100100_seed_remaining_use_cases.js.map +1 -0
  41. package/dist/migrations/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts.map +1 -0
  42. package/dist/migrations/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.js.map +1 -0
  43. package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts +14 -0
  44. package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts.map +1 -0
  45. package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.js +34 -0
  46. package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.js.map +1 -0
  47. package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts +4 -0
  48. package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts.map +1 -0
  49. package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js +24 -0
  50. package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js.map +1 -0
  51. package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.d.ts +16 -0
  52. package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.d.ts.map +1 -0
  53. package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.js +27 -0
  54. package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.js.map +1 -0
  55. package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts +13 -0
  56. package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts.map +1 -0
  57. package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js +70 -0
  58. package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js.map +1 -0
  59. package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts +11 -0
  60. package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts.map +1 -0
  61. package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js +36 -0
  62. package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js.map +1 -0
  63. package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts +14 -0
  64. package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts.map +1 -0
  65. package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js +84 -0
  66. package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js.map +1 -0
  67. package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts +9 -0
  68. package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts.map +1 -0
  69. package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js +37 -0
  70. package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js.map +1 -0
  71. package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts +9 -0
  72. package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts.map +1 -0
  73. package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js +41 -0
  74. package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js.map +1 -0
  75. package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts +9 -0
  76. package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts.map +1 -0
  77. package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js +36 -0
  78. package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js.map +1 -0
  79. package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts +10 -0
  80. package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts.map +1 -0
  81. package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js +28 -0
  82. package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js.map +1 -0
  83. package/dist/tests/agent-reuse.test.d.ts +6 -0
  84. package/dist/tests/agent-reuse.test.d.ts.map +1 -0
  85. package/dist/tests/agent-reuse.test.js +242 -0
  86. package/dist/tests/agent-reuse.test.js.map +1 -0
  87. package/dist/tests/all-features.test.d.ts +7 -0
  88. package/dist/tests/all-features.test.d.ts.map +1 -0
  89. package/dist/tests/all-features.test.js +514 -0
  90. package/dist/tests/all-features.test.js.map +1 -0
  91. package/dist/tests/migrations/test-all-versions-real.d.ts +8 -0
  92. package/dist/tests/migrations/test-all-versions-real.d.ts.map +1 -0
  93. package/dist/tests/migrations/test-all-versions-real.js +234 -0
  94. package/dist/tests/migrations/test-all-versions-real.js.map +1 -0
  95. package/dist/tests/migrations/test-all-versions.d.ts +14 -0
  96. package/dist/tests/migrations/test-all-versions.d.ts.map +1 -0
  97. package/dist/tests/migrations/test-all-versions.js +521 -0
  98. package/dist/tests/migrations/test-all-versions.js.map +1 -0
  99. package/dist/tools/constraints.d.ts.map +1 -1
  100. package/dist/tools/constraints.js +11 -7
  101. package/dist/tools/constraints.js.map +1 -1
  102. package/dist/tools/context.d.ts.map +1 -1
  103. package/dist/tools/context.js +73 -16
  104. package/dist/tools/context.js.map +1 -1
  105. package/dist/tools/messaging.d.ts.map +1 -1
  106. package/dist/tools/messaging.js +23 -1
  107. package/dist/tools/messaging.js.map +1 -1
  108. package/dist/tools/tasks.d.ts.map +1 -1
  109. package/dist/tools/tasks.js +8 -5
  110. package/dist/tools/tasks.js.map +1 -1
  111. package/dist/tools/utils.d.ts.map +1 -1
  112. package/dist/tools/utils.js +4 -1
  113. package/dist/tools/utils.js.map +1 -1
  114. package/dist/types.d.ts +1 -0
  115. package/dist/types.d.ts.map +1 -1
  116. package/dist/utils/cleanup.d.ts +3 -1
  117. package/dist/utils/cleanup.d.ts.map +1 -1
  118. package/dist/utils/cleanup.js +6 -3
  119. package/dist/utils/cleanup.js.map +1 -1
  120. package/dist/utils/debug-logger.d.ts +57 -2
  121. package/dist/utils/debug-logger.d.ts.map +1 -1
  122. package/dist/utils/debug-logger.js +155 -4
  123. package/dist/utils/debug-logger.js.map +1 -1
  124. package/dist/utils/error-handler.d.ts +28 -0
  125. package/dist/utils/error-handler.d.ts.map +1 -0
  126. package/dist/utils/error-handler.js +121 -0
  127. package/dist/utils/error-handler.js.map +1 -0
  128. package/dist/utils/help-tracking.d.ts +3 -3
  129. package/dist/utils/help-tracking.d.ts.map +1 -1
  130. package/dist/utils/help-tracking.js.map +1 -1
  131. package/dist/utils/param-parser.d.ts +23 -0
  132. package/dist/utils/param-parser.d.ts.map +1 -0
  133. package/dist/utils/param-parser.js +52 -0
  134. package/dist/utils/param-parser.js.map +1 -0
  135. package/dist/utils/retention.d.ts +10 -0
  136. package/dist/utils/retention.d.ts.map +1 -1
  137. package/dist/utils/retention.js +19 -0
  138. package/dist/utils/retention.js.map +1 -1
  139. package/docs/MIGRATION_CHAIN.md +293 -280
  140. package/package.json +85 -81
  141. package/dist/migrations/add-decision-context.d.ts +0 -28
  142. package/dist/migrations/add-decision-context.d.ts.map +0 -1
  143. package/dist/migrations/add-decision-context.js +0 -125
  144. package/dist/migrations/add-decision-context.js.map +0 -1
  145. package/dist/migrations/add-help-system-tables.d.ts +0 -35
  146. package/dist/migrations/add-help-system-tables.d.ts.map +0 -1
  147. package/dist/migrations/add-help-system-tables.js +0 -206
  148. package/dist/migrations/add-help-system-tables.js.map +0 -1
  149. package/dist/migrations/add-table-prefixes.d.ts +0 -29
  150. package/dist/migrations/add-table-prefixes.d.ts.map +0 -1
  151. package/dist/migrations/add-table-prefixes.js +0 -150
  152. package/dist/migrations/add-table-prefixes.js.map +0 -1
  153. package/dist/migrations/add-task-dependencies.d.ts +0 -26
  154. package/dist/migrations/add-task-dependencies.d.ts.map +0 -1
  155. package/dist/migrations/add-task-dependencies.js +0 -94
  156. package/dist/migrations/add-task-dependencies.js.map +0 -1
  157. package/dist/migrations/add-task-tables.d.ts +0 -47
  158. package/dist/migrations/add-task-tables.d.ts.map +0 -1
  159. package/dist/migrations/add-task-tables.js +0 -285
  160. package/dist/migrations/add-task-tables.js.map +0 -1
  161. package/dist/migrations/add-token-tracking.d.ts +0 -28
  162. package/dist/migrations/add-token-tracking.d.ts.map +0 -1
  163. package/dist/migrations/add-token-tracking.js +0 -108
  164. package/dist/migrations/add-token-tracking.js.map +0 -1
  165. package/dist/migrations/add-v2.1.0-features.d.ts +0 -29
  166. package/dist/migrations/add-v2.1.0-features.d.ts.map +0 -1
  167. package/dist/migrations/add-v2.1.0-features.js +0 -198
  168. package/dist/migrations/add-v2.1.0-features.js.map +0 -1
  169. package/dist/migrations/add-v3.5.0-pruned-files.d.ts +0 -26
  170. package/dist/migrations/add-v3.5.0-pruned-files.d.ts.map +0 -1
  171. package/dist/migrations/add-v3.5.0-pruned-files.js +0 -107
  172. package/dist/migrations/add-v3.5.0-pruned-files.js.map +0 -1
  173. package/dist/migrations/index.d.ts +0 -112
  174. package/dist/migrations/index.d.ts.map +0 -1
  175. package/dist/migrations/index.js +0 -411
  176. package/dist/migrations/index.js.map +0 -1
  177. package/dist/migrations/knex/20251025020452_create_master_tables.d.ts.map +0 -1
  178. package/dist/migrations/knex/20251025020452_create_master_tables.js.map +0 -1
  179. package/dist/migrations/knex/20251025021152_create_transaction_tables.d.ts.map +0 -1
  180. package/dist/migrations/knex/20251025021152_create_transaction_tables.js.map +0 -1
  181. package/dist/migrations/knex/20251025021351_create_indexes.d.ts.map +0 -1
  182. package/dist/migrations/knex/20251025021351_create_indexes.js +0 -62
  183. package/dist/migrations/knex/20251025021351_create_indexes.js.map +0 -1
  184. package/dist/migrations/knex/20251025021416_seed_master_data.d.ts.map +0 -1
  185. package/dist/migrations/knex/20251025021416_seed_master_data.js +0 -58
  186. package/dist/migrations/knex/20251025021416_seed_master_data.js.map +0 -1
  187. package/dist/migrations/knex/20251025070349_create_views.d.ts.map +0 -1
  188. package/dist/migrations/knex/20251025070349_create_views.js.map +0 -1
  189. package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.d.ts.map +0 -1
  190. package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.js.map +0 -1
  191. package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.d.ts.map +0 -1
  192. package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.js.map +0 -1
  193. package/dist/migrations/knex/20251025090000_create_help_system_tables.d.ts.map +0 -1
  194. package/dist/migrations/knex/20251025090000_create_help_system_tables.js.map +0 -1
  195. package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.d.ts.map +0 -1
  196. package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.js.map +0 -1
  197. package/dist/migrations/knex/20251025100000_seed_help_metadata.d.ts.map +0 -1
  198. package/dist/migrations/knex/20251025100000_seed_help_metadata.js.map +0 -1
  199. package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.d.ts.map +0 -1
  200. package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.js.map +0 -1
  201. package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.d.ts.map +0 -1
  202. package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.js.map +0 -1
  203. package/dist/migrations/migrate-decisions-to-tasks.d.ts +0 -61
  204. package/dist/migrations/migrate-decisions-to-tasks.d.ts.map +0 -1
  205. package/dist/migrations/migrate-decisions-to-tasks.js +0 -442
  206. package/dist/migrations/migrate-decisions-to-tasks.js.map +0 -1
  207. package/dist/migrations/seed-help-data.d.ts +0 -48
  208. package/dist/migrations/seed-help-data.d.ts.map +0 -1
  209. package/dist/migrations/seed-help-data.js +0 -1466
  210. package/dist/migrations/seed-help-data.js.map +0 -1
  211. package/dist/migrations/seed-tool-metadata.d.ts +0 -24
  212. package/dist/migrations/seed-tool-metadata.d.ts.map +0 -1
  213. package/dist/migrations/seed-tool-metadata.js +0 -392
  214. package/dist/migrations/seed-tool-metadata.js.map +0 -1
  215. package/dist/migrations/v3.6.0-help-system-refactor.d.ts +0 -46
  216. package/dist/migrations/v3.6.0-help-system-refactor.d.ts.map +0 -1
  217. package/dist/migrations/v3.6.0-help-system-refactor.js +0 -223
  218. package/dist/migrations/v3.6.0-help-system-refactor.js.map +0 -1
  219. package/dist/tests/migrations/test-v3.2-migration.d.ts +0 -6
  220. package/dist/tests/migrations/test-v3.2-migration.d.ts.map +0 -1
  221. package/dist/tests/migrations/test-v3.2-migration.js +0 -191
  222. package/dist/tests/migrations/test-v3.2-migration.js.map +0 -1
  223. /package/dist/migrations/knex/{20251025020452_create_master_tables.d.ts → bootstrap/20251025020452_create_master_tables.d.ts} +0 -0
  224. /package/dist/migrations/knex/{20251025021152_create_transaction_tables.d.ts → bootstrap/20251025021152_create_transaction_tables.d.ts} +0 -0
  225. /package/dist/migrations/knex/{20251025021351_create_indexes.d.ts → bootstrap/20251025021351_create_indexes.d.ts} +0 -0
  226. /package/dist/migrations/knex/{20251025021416_seed_master_data.d.ts → bootstrap/20251025021416_seed_master_data.d.ts} +0 -0
  227. /package/dist/migrations/knex/{20251025070349_create_views.d.ts → bootstrap/20251025070349_create_views.d.ts} +0 -0
  228. /package/dist/migrations/knex/{20251025070349_create_views.js → bootstrap/20251025070349_create_views.js} +0 -0
  229. /package/dist/migrations/knex/{20251025081221_add_link_type_to_task_decision_links.d.ts → enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts} +0 -0
  230. /package/dist/migrations/knex/{20251025081221_add_link_type_to_task_decision_links.js → enhancements/20251025081221_add_link_type_to_task_decision_links.js} +0 -0
  231. /package/dist/migrations/knex/{20251025082220_fix_task_dependencies_columns.d.ts → enhancements/20251025082220_fix_task_dependencies_columns.d.ts} +0 -0
  232. /package/dist/migrations/knex/{20251025082220_fix_task_dependencies_columns.js → enhancements/20251025082220_fix_task_dependencies_columns.js} +0 -0
  233. /package/dist/migrations/knex/{20251025090000_create_help_system_tables.d.ts → enhancements/20251025090000_create_help_system_tables.d.ts} +0 -0
  234. /package/dist/migrations/knex/{20251025090000_create_help_system_tables.js → enhancements/20251025090000_create_help_system_tables.js} +0 -0
  235. /package/dist/migrations/knex/{20251025090100_seed_help_categories_and_use_cases.d.ts → enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts} +0 -0
  236. /package/dist/migrations/knex/{20251025090100_seed_help_categories_and_use_cases.js → enhancements/20251025090100_seed_help_categories_and_use_cases.js} +0 -0
  237. /package/dist/migrations/knex/{20251025100000_seed_help_metadata.d.ts → enhancements/20251025100000_seed_help_metadata.d.ts} +0 -0
  238. /package/dist/migrations/knex/{20251025100000_seed_help_metadata.js → enhancements/20251025100000_seed_help_metadata.js} +0 -0
  239. /package/dist/migrations/knex/{20251025100100_seed_remaining_use_cases.d.ts → enhancements/20251025100100_seed_remaining_use_cases.d.ts} +0 -0
  240. /package/dist/migrations/knex/{20251025100100_seed_remaining_use_cases.js → enhancements/20251025100100_seed_remaining_use_cases.js} +0 -0
  241. /package/dist/migrations/knex/{20251025120000_add_cascade_to_task_dependencies.d.ts → enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts} +0 -0
  242. /package/dist/migrations/knex/{20251025120000_add_cascade_to_task_dependencies.js → enhancements/20251025120000_add_cascade_to_task_dependencies.js} +0 -0
@@ -1,150 +0,0 @@
1
- /**
2
- * Migration: Add table prefixes (v1.0.1 -> v1.1.0)
3
- *
4
- * Migrates database from unprefixed table names to prefixed names:
5
- * - Master tables: m_ prefix
6
- * - Transaction tables: t_ prefix
7
- * - Views: v_ prefix
8
- * - Triggers: trg_ prefix
9
- */
10
- /**
11
- * Check if migration is needed
12
- */
13
- export function needsMigration(db) {
14
- // Check if old table exists (agents) and new table doesn't exist (m_agents)
15
- const oldExists = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='agents'").get();
16
- const newExists = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='m_agents'").get();
17
- return oldExists !== undefined && newExists === undefined;
18
- }
19
- /**
20
- * Run the migration
21
- */
22
- export function runMigration(db) {
23
- const details = [];
24
- try {
25
- // Start transaction
26
- db.exec('BEGIN TRANSACTION');
27
- // 1. Drop old views (they reference old table names)
28
- const oldViews = [
29
- 'tagged_decisions',
30
- 'active_context',
31
- 'layer_summary',
32
- 'unread_messages_by_priority',
33
- 'recent_file_changes',
34
- 'tagged_constraints'
35
- ];
36
- for (const view of oldViews) {
37
- const exists = db.prepare("SELECT name FROM sqlite_master WHERE type='view' AND name=?").get(view);
38
- if (exists) {
39
- db.exec(`DROP VIEW IF EXISTS ${view}`);
40
- details.push(`Dropped view: ${view}`);
41
- }
42
- }
43
- // 2. Drop old triggers
44
- const oldTriggers = [
45
- 'auto_delete_old_messages',
46
- 'auto_delete_old_file_changes',
47
- 'record_decision_history'
48
- ];
49
- for (const trigger of oldTriggers) {
50
- const exists = db.prepare("SELECT name FROM sqlite_master WHERE type='trigger' AND name=?").get(trigger);
51
- if (exists) {
52
- db.exec(`DROP TRIGGER IF EXISTS ${trigger}`);
53
- details.push(`Dropped trigger: ${trigger}`);
54
- }
55
- }
56
- // 3. Rename master tables
57
- const masterTables = [
58
- { old: 'agents', new: 'm_agents' },
59
- { old: 'files', new: 'm_files' },
60
- { old: 'context_keys', new: 'm_context_keys' },
61
- { old: 'constraint_categories', new: 'm_constraint_categories' },
62
- { old: 'layers', new: 'm_layers' },
63
- { old: 'tags', new: 'm_tags' },
64
- { old: 'scopes', new: 'm_scopes' },
65
- { old: 'config', new: 'm_config' }
66
- ];
67
- for (const table of masterTables) {
68
- const exists = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=?").get(table.old);
69
- if (exists) {
70
- db.exec(`ALTER TABLE ${table.old} RENAME TO ${table.new}`);
71
- details.push(`Renamed table: ${table.old} -> ${table.new}`);
72
- }
73
- }
74
- // 4. Rename transaction tables
75
- const transactionTables = [
76
- { old: 'decisions', new: 't_decisions' },
77
- { old: 'decisions_numeric', new: 't_decisions_numeric' },
78
- { old: 'decision_history', new: 't_decision_history' },
79
- { old: 'decision_tags', new: 't_decision_tags' },
80
- { old: 'decision_scopes', new: 't_decision_scopes' },
81
- { old: 'agent_messages', new: 't_agent_messages' },
82
- { old: 'file_changes', new: 't_file_changes' },
83
- { old: 'constraints', new: 't_constraints' },
84
- { old: 'constraint_tags', new: 't_constraint_tags' }
85
- ];
86
- for (const table of transactionTables) {
87
- const exists = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=?").get(table.old);
88
- if (exists) {
89
- db.exec(`ALTER TABLE ${table.old} RENAME TO ${table.new}`);
90
- details.push(`Renamed table: ${table.old} -> ${table.new}`);
91
- }
92
- }
93
- // 5. Create m_config table if it doesn't exist (new in v1.1.0)
94
- const configExists = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='m_config'").get();
95
- if (!configExists) {
96
- db.exec(`
97
- CREATE TABLE m_config (
98
- key TEXT PRIMARY KEY,
99
- value TEXT NOT NULL
100
- );
101
- `);
102
- // Insert default config values
103
- db.prepare('INSERT INTO m_config (key, value) VALUES (?, ?)').run('autodelete_ignore_weekend', '0');
104
- db.prepare('INSERT INTO m_config (key, value) VALUES (?, ?)').run('autodelete_message_hours', '24');
105
- db.prepare('INSERT INTO m_config (key, value) VALUES (?, ?)').run('autodelete_file_history_days', '7');
106
- details.push('Created table: m_config (new in v1.1.0)');
107
- details.push('Initialized config with default values');
108
- }
109
- // Commit transaction
110
- db.exec('COMMIT');
111
- return {
112
- success: true,
113
- message: 'Migration completed successfully. New views and triggers will be created by schema initialization.',
114
- details
115
- };
116
- }
117
- catch (error) {
118
- // Rollback on error
119
- db.exec('ROLLBACK');
120
- const message = error instanceof Error ? error.message : String(error);
121
- return {
122
- success: false,
123
- message: `Migration failed: ${message}`,
124
- details
125
- };
126
- }
127
- }
128
- /**
129
- * Get migration info
130
- */
131
- export function getMigrationInfo() {
132
- return `
133
- Migration: Add Table Prefixes (v1.0.1 -> v1.1.0)
134
-
135
- This migration adds category-based prefixes to all database objects:
136
- - Master tables: m_ prefix (8 tables)
137
- - Transaction tables: t_ prefix (9 tables)
138
- - Views: v_ prefix (6 views)
139
- - Triggers: trg_ prefix (1 trigger)
140
-
141
- The migration will:
142
- 1. Drop old views (they reference old table names)
143
- 2. Drop old triggers (if any exist from previous versions)
144
- 3. Rename all tables to new prefixed names
145
- 4. New views and triggers will be created by schema initialization
146
-
147
- This migration is safe and reversible via backup restoration.
148
- `.trim();
149
- }
150
- //# sourceMappingURL=add-table-prefixes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-table-prefixes.js","sourceRoot":"","sources":["../../src/migrations/add-table-prefixes.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,EAAY;IACzC,4EAA4E;IAC5E,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAC1B,qEAAqE,CACtE,CAAC,GAAG,EAAE,CAAC;IAER,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAC1B,uEAAuE,CACxE,CAAC,GAAG,EAAE,CAAC;IAER,OAAO,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,EAAY;IACvC,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,oBAAoB;QACpB,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAE7B,qDAAqD;QACrD,MAAM,QAAQ,GAAG;YACf,kBAAkB;YAClB,gBAAgB;YAChB,eAAe;YACf,6BAA6B;YAC7B,qBAAqB;YACrB,oBAAoB;SACrB,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACvB,6DAA6D,CAC9D,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEZ,IAAI,MAAM,EAAE,CAAC;gBACX,EAAE,CAAC,IAAI,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;gBACvC,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,MAAM,WAAW,GAAG;YAClB,0BAA0B;YAC1B,8BAA8B;YAC9B,yBAAyB;SAC1B,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACvB,gEAAgE,CACjE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAEf,IAAI,MAAM,EAAE,CAAC;gBACX,EAAE,CAAC,IAAI,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;gBAC7C,OAAO,CAAC,IAAI,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,MAAM,YAAY,GAAG;YACnB,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE;YAClC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE;YAChC,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,gBAAgB,EAAE;YAC9C,EAAE,GAAG,EAAE,uBAAuB,EAAE,GAAG,EAAE,yBAAyB,EAAE;YAChE,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE;YAClC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE;YAC9B,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE;YAClC,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE;SACnC,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACvB,8DAA8D,CAC/D,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAEjB,IAAI,MAAM,EAAE,CAAC;gBACX,EAAE,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,GAAG,cAAc,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,GAAG,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,MAAM,iBAAiB,GAAG;YACxB,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE;YACxC,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,qBAAqB,EAAE;YACxD,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,oBAAoB,EAAE;YACtD,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,iBAAiB,EAAE;YAChD,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,mBAAmB,EAAE;YACpD,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,kBAAkB,EAAE;YAClD,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,gBAAgB,EAAE;YAC9C,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,eAAe,EAAE;YAC5C,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,mBAAmB,EAAE;SACrD,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACvB,8DAA8D,CAC/D,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAEjB,IAAI,MAAM,EAAE,CAAC;gBACX,EAAE,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,GAAG,cAAc,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,GAAG,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAC7B,uEAAuE,CACxE,CAAC,GAAG,EAAE,CAAC;QAER,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,EAAE,CAAC,IAAI,CAAC;;;;;OAKP,CAAC,CAAC;YAEH,+BAA+B;YAC/B,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;YACpG,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;YACpG,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;YAEvG,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACzD,CAAC;QAED,qBAAqB;QACrB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAElB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,oGAAoG;YAC7G,OAAO;SACR,CAAC;IAEJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,oBAAoB;QACpB,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEpB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,qBAAqB,OAAO,EAAE;YACvC,OAAO;SACR,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO;;;;;;;;;;;;;;;;GAgBN,CAAC,IAAI,EAAE,CAAC;AACX,CAAC"}
@@ -1,26 +0,0 @@
1
- /**
2
- * Migration: Add task dependencies (v3.1.2 -> v3.2.0)
3
- *
4
- * Adds t_task_dependencies table for tracking blocking relationships between tasks.
5
- * This enables "Task A blocks Task B" functionality.
6
- */
7
- import { Database } from 'better-sqlite3';
8
- interface MigrationResult {
9
- success: boolean;
10
- message: string;
11
- details?: string[];
12
- }
13
- /**
14
- * Check if migration is needed
15
- */
16
- export declare function needsTaskDependenciesMigration(db: Database): boolean;
17
- /**
18
- * Run the migration to add task dependencies
19
- */
20
- export declare function migrateToTaskDependencies(db: Database): MigrationResult;
21
- /**
22
- * Get migration info
23
- */
24
- export declare function getTaskDependenciesMigrationInfo(): string;
25
- export {};
26
- //# sourceMappingURL=add-task-dependencies.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-task-dependencies.d.ts","sourceRoot":"","sources":["../../src/migrations/add-task-dependencies.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAOpE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,QAAQ,GAAG,eAAe,CA+DvE;AAED;;GAEG;AACH,wBAAgB,gCAAgC,IAAI,MAAM,CAiBzD"}
@@ -1,94 +0,0 @@
1
- /**
2
- * Migration: Add task dependencies (v3.1.2 -> v3.2.0)
3
- *
4
- * Adds t_task_dependencies table for tracking blocking relationships between tasks.
5
- * This enables "Task A blocks Task B" functionality.
6
- */
7
- /**
8
- * Check if migration is needed
9
- */
10
- export function needsTaskDependenciesMigration(db) {
11
- // Check if t_task_dependencies table doesn't exist yet
12
- const tableExists = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='t_task_dependencies'").get();
13
- return tableExists === undefined;
14
- }
15
- /**
16
- * Run the migration to add task dependencies
17
- */
18
- export function migrateToTaskDependencies(db) {
19
- const details = [];
20
- try {
21
- // Start transaction for atomicity
22
- db.exec('BEGIN TRANSACTION');
23
- // Check if table already exists
24
- const tableExists = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='t_task_dependencies'").get();
25
- if (tableExists) {
26
- db.exec('COMMIT');
27
- return {
28
- success: true,
29
- message: 't_task_dependencies table already exists, migration skipped',
30
- details: ['Table already exists - no migration needed']
31
- };
32
- }
33
- // Create t_task_dependencies table
34
- db.exec(`
35
- CREATE TABLE IF NOT EXISTS t_task_dependencies (
36
- blocker_task_id INTEGER REFERENCES t_tasks(id) ON DELETE CASCADE,
37
- blocked_task_id INTEGER REFERENCES t_tasks(id) ON DELETE CASCADE,
38
- created_ts INTEGER DEFAULT (unixepoch()),
39
- PRIMARY KEY (blocker_task_id, blocked_task_id)
40
- );
41
- `);
42
- details.push('Created table: t_task_dependencies');
43
- // Create index for reverse lookups (what blocks this task?)
44
- db.exec(`
45
- CREATE INDEX IF NOT EXISTS idx_task_deps_blocked
46
- ON t_task_dependencies(blocked_task_id);
47
- `);
48
- details.push('Created index: idx_task_deps_blocked');
49
- // Commit transaction
50
- db.exec('COMMIT');
51
- return {
52
- success: true,
53
- message: 'Migration to v3.2.0 completed successfully',
54
- details
55
- };
56
- }
57
- catch (error) {
58
- // Rollback on error
59
- try {
60
- db.exec('ROLLBACK');
61
- }
62
- catch (rollbackError) {
63
- // Ignore rollback errors
64
- }
65
- const message = error instanceof Error ? error.message : String(error);
66
- return {
67
- success: false,
68
- message: `Migration failed: ${message}`,
69
- details
70
- };
71
- }
72
- }
73
- /**
74
- * Get migration info
75
- */
76
- export function getTaskDependenciesMigrationInfo() {
77
- return `
78
- Migration: Add Task Dependencies (v3.1.2 -> v3.2.0)
79
-
80
- This migration adds task dependency tracking for blocking relationships:
81
- - New table: t_task_dependencies
82
- - Primary key: (blocker_task_id, blocked_task_id) - prevents duplicates
83
- - Index: idx_task_deps_blocked for efficient "what blocks this task?" queries
84
- - CASCADE deletion: Dependencies are removed when tasks are deleted
85
-
86
- Schema:
87
- - blocker_task_id: Task that must be completed first
88
- - blocked_task_id: Task that is blocked/waiting
89
- - created_ts: When the dependency was created
90
-
91
- This migration is idempotent and safe to run multiple times.
92
- `.trim();
93
- }
94
- //# sourceMappingURL=add-task-dependencies.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-task-dependencies.js","sourceRoot":"","sources":["../../src/migrations/add-task-dependencies.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAAC,EAAY;IACzD,uDAAuD;IACvD,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC5B,kFAAkF,CACnF,CAAC,GAAG,EAAE,CAAC;IAER,OAAO,WAAW,KAAK,SAAS,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,EAAY;IACpD,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,kCAAkC;QAClC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAE7B,gCAAgC;QAChC,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC5B,kFAAkF,CACnF,CAAC,GAAG,EAAE,CAAC;QAER,IAAI,WAAW,EAAE,CAAC;YAChB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClB,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,6DAA6D;gBACtE,OAAO,EAAE,CAAC,4CAA4C,CAAC;aACxD,CAAC;QACJ,CAAC;QAED,mCAAmC;QACnC,EAAE,CAAC,IAAI,CAAC;;;;;;;KAOP,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAEnD,4DAA4D;QAC5D,EAAE,CAAC,IAAI,CAAC;;;KAGP,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QAErD,qBAAqB;QACrB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAElB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,4CAA4C;YACrD,OAAO;SACR,CAAC;IAEJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,oBAAoB;QACpB,IAAI,CAAC;YACH,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtB,CAAC;QAAC,OAAO,aAAa,EAAE,CAAC;YACvB,yBAAyB;QAC3B,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,qBAAqB,OAAO,EAAE;YACvC,OAAO;SACR,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC;IAC9C,OAAO;;;;;;;;;;;;;;;GAeN,CAAC,IAAI,EAAE,CAAC;AACX,CAAC"}
@@ -1,47 +0,0 @@
1
- /**
2
- * Migration: Add Task Management Tables (v2.1.x -> v3.0.0)
3
- *
4
- * Adds Kanban-style task tracking system to reduce token usage
5
- * from decisions table being misused for task tracking.
6
- *
7
- * Tables Added:
8
- * - m_task_statuses (master table for task statuses)
9
- * - t_tasks (core task data, token-efficient)
10
- * - t_task_details (large text stored separately)
11
- * - t_task_tags (many-to-many task tagging)
12
- * - t_task_decision_links (link tasks to decisions)
13
- * - t_task_constraint_links (link tasks to constraints)
14
- * - t_task_file_links (link tasks to files)
15
- *
16
- * View Added:
17
- * - v_task_board (token-efficient task board view)
18
- *
19
- * Triggers Added:
20
- * - trg_log_task_create (activity log for task creation)
21
- * - trg_log_task_status_change (activity log for status changes)
22
- * - trg_update_task_timestamp (auto-update updated_ts)
23
- *
24
- * Initial Data:
25
- * - Task statuses: todo, in_progress, waiting_review, blocked, done, archived
26
- * - Config keys for stale task detection
27
- */
28
- import { Database } from 'better-sqlite3';
29
- interface MigrationResult {
30
- success: boolean;
31
- message: string;
32
- details?: string[];
33
- }
34
- /**
35
- * Check if migration is needed
36
- */
37
- export declare function needsMigration(db: Database): boolean;
38
- /**
39
- * Run the migration
40
- */
41
- export declare function runMigration(db: Database): MigrationResult;
42
- /**
43
- * Get migration info
44
- */
45
- export declare function getMigrationInfo(): string;
46
- export {};
47
- //# sourceMappingURL=add-task-tables.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-task-tables.d.ts","sourceRoot":"","sources":["../../src/migrations/add-task-tables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAOpD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,GAAG,eAAe,CAiP1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CA+BzC"}
@@ -1,285 +0,0 @@
1
- /**
2
- * Migration: Add Task Management Tables (v2.1.x -> v3.0.0)
3
- *
4
- * Adds Kanban-style task tracking system to reduce token usage
5
- * from decisions table being misused for task tracking.
6
- *
7
- * Tables Added:
8
- * - m_task_statuses (master table for task statuses)
9
- * - t_tasks (core task data, token-efficient)
10
- * - t_task_details (large text stored separately)
11
- * - t_task_tags (many-to-many task tagging)
12
- * - t_task_decision_links (link tasks to decisions)
13
- * - t_task_constraint_links (link tasks to constraints)
14
- * - t_task_file_links (link tasks to files)
15
- *
16
- * View Added:
17
- * - v_task_board (token-efficient task board view)
18
- *
19
- * Triggers Added:
20
- * - trg_log_task_create (activity log for task creation)
21
- * - trg_log_task_status_change (activity log for status changes)
22
- * - trg_update_task_timestamp (auto-update updated_ts)
23
- *
24
- * Initial Data:
25
- * - Task statuses: todo, in_progress, waiting_review, blocked, done, archived
26
- * - Config keys for stale task detection
27
- */
28
- /**
29
- * Check if migration is needed
30
- */
31
- export function needsMigration(db) {
32
- // Check if new table doesn't exist (m_task_statuses)
33
- const tableExists = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='m_task_statuses'").get();
34
- return tableExists === undefined;
35
- }
36
- /**
37
- * Run the migration
38
- */
39
- export function runMigration(db) {
40
- const details = [];
41
- try {
42
- // Start transaction
43
- db.exec('BEGIN TRANSACTION');
44
- // ============================================================================
45
- // 1. Create Master Table: m_task_statuses
46
- // ============================================================================
47
- db.exec(`
48
- CREATE TABLE IF NOT EXISTS m_task_statuses (
49
- id INTEGER PRIMARY KEY,
50
- name TEXT UNIQUE NOT NULL
51
- );
52
- `);
53
- details.push('Created table: m_task_statuses');
54
- // ============================================================================
55
- // 2. Create Transaction Tables
56
- // ============================================================================
57
- // Task core data (token-efficient: no large text here)
58
- db.exec(`
59
- CREATE TABLE IF NOT EXISTS t_tasks (
60
- id INTEGER PRIMARY KEY AUTOINCREMENT,
61
- title TEXT NOT NULL,
62
- status_id INTEGER NOT NULL REFERENCES m_task_statuses(id),
63
- priority INTEGER DEFAULT 2,
64
- assigned_agent_id INTEGER REFERENCES m_agents(id),
65
- created_by_agent_id INTEGER REFERENCES m_agents(id),
66
- layer_id INTEGER REFERENCES m_layers(id),
67
- created_ts INTEGER DEFAULT (unixepoch()),
68
- updated_ts INTEGER DEFAULT (unixepoch()),
69
- completed_ts INTEGER
70
- );
71
- `);
72
- details.push('Created table: t_tasks');
73
- // Task details (large text stored separately)
74
- db.exec(`
75
- CREATE TABLE IF NOT EXISTS t_task_details (
76
- task_id INTEGER PRIMARY KEY REFERENCES t_tasks(id) ON DELETE CASCADE,
77
- description TEXT,
78
- acceptance_criteria TEXT,
79
- notes TEXT
80
- );
81
- `);
82
- details.push('Created table: t_task_details');
83
- // Task tags (many-to-many)
84
- db.exec(`
85
- CREATE TABLE IF NOT EXISTS t_task_tags (
86
- task_id INTEGER REFERENCES t_tasks(id) ON DELETE CASCADE,
87
- tag_id INTEGER REFERENCES m_tags(id),
88
- PRIMARY KEY (task_id, tag_id)
89
- );
90
- `);
91
- details.push('Created table: t_task_tags');
92
- // Task-decision links
93
- db.exec(`
94
- CREATE TABLE IF NOT EXISTS t_task_decision_links (
95
- task_id INTEGER REFERENCES t_tasks(id) ON DELETE CASCADE,
96
- decision_key_id INTEGER REFERENCES m_context_keys(id),
97
- link_type TEXT DEFAULT 'implements',
98
- PRIMARY KEY (task_id, decision_key_id)
99
- );
100
- `);
101
- details.push('Created table: t_task_decision_links');
102
- // Task-constraint links
103
- db.exec(`
104
- CREATE TABLE IF NOT EXISTS t_task_constraint_links (
105
- task_id INTEGER REFERENCES t_tasks(id) ON DELETE CASCADE,
106
- constraint_id INTEGER REFERENCES t_constraints(id),
107
- PRIMARY KEY (task_id, constraint_id)
108
- );
109
- `);
110
- details.push('Created table: t_task_constraint_links');
111
- // Task-file links
112
- db.exec(`
113
- CREATE TABLE IF NOT EXISTS t_task_file_links (
114
- task_id INTEGER REFERENCES t_tasks(id) ON DELETE CASCADE,
115
- file_id INTEGER REFERENCES m_files(id),
116
- PRIMARY KEY (task_id, file_id)
117
- );
118
- `);
119
- details.push('Created table: t_task_file_links');
120
- // ============================================================================
121
- // 3. Create Indexes
122
- // ============================================================================
123
- db.exec(`
124
- CREATE INDEX IF NOT EXISTS idx_task_status ON t_tasks(status_id);
125
- `);
126
- details.push('Created index: idx_task_status');
127
- db.exec(`
128
- CREATE INDEX IF NOT EXISTS idx_task_updated ON t_tasks(updated_ts DESC);
129
- `);
130
- details.push('Created index: idx_task_updated');
131
- db.exec(`
132
- CREATE INDEX IF NOT EXISTS idx_task_assignee ON t_tasks(assigned_agent_id);
133
- `);
134
- details.push('Created index: idx_task_assignee');
135
- // ============================================================================
136
- // 4. Create View: v_task_board
137
- // ============================================================================
138
- db.exec(`
139
- CREATE VIEW IF NOT EXISTS v_task_board AS
140
- SELECT
141
- t.id,
142
- t.title,
143
- s.name as status,
144
- t.priority,
145
- a.name as assigned_to,
146
- l.name as layer,
147
- t.created_ts,
148
- t.updated_ts,
149
- t.completed_ts,
150
- (SELECT GROUP_CONCAT(tg2.name, ', ')
151
- FROM t_task_tags tt2
152
- JOIN m_tags tg2 ON tt2.tag_id = tg2.id
153
- WHERE tt2.task_id = t.id) as tags
154
- FROM t_tasks t
155
- LEFT JOIN m_task_statuses s ON t.status_id = s.id
156
- LEFT JOIN m_agents a ON t.assigned_agent_id = a.id
157
- LEFT JOIN m_layers l ON t.layer_id = l.id;
158
- `);
159
- details.push('Created view: v_task_board');
160
- // ============================================================================
161
- // 5. Create Triggers
162
- // ============================================================================
163
- // Task creation activity log
164
- db.exec(`
165
- CREATE TRIGGER IF NOT EXISTS trg_log_task_create
166
- AFTER INSERT ON t_tasks
167
- BEGIN
168
- INSERT INTO t_activity_log (agent_id, action_type, target, layer_id, details)
169
- SELECT
170
- COALESCE(NEW.created_by_agent_id, (SELECT id FROM m_agents WHERE name = 'system' LIMIT 1)),
171
- 'task_create',
172
- 'task_id:' || NEW.id,
173
- NEW.layer_id,
174
- json_object('title', NEW.title, 'status_id', NEW.status_id, 'priority', NEW.priority);
175
- END;
176
- `);
177
- details.push('Created trigger: trg_log_task_create');
178
- // Task status change activity log
179
- db.exec(`
180
- CREATE TRIGGER IF NOT EXISTS trg_log_task_status_change
181
- AFTER UPDATE OF status_id ON t_tasks
182
- WHEN OLD.status_id != NEW.status_id
183
- BEGIN
184
- INSERT INTO t_activity_log (agent_id, action_type, target, layer_id, details)
185
- SELECT
186
- COALESCE(NEW.assigned_agent_id, (SELECT id FROM m_agents WHERE name = 'system' LIMIT 1)),
187
- 'task_status_change',
188
- 'task_id:' || NEW.id,
189
- NEW.layer_id,
190
- json_object('old_status', OLD.status_id, 'new_status', NEW.status_id);
191
- END;
192
- `);
193
- details.push('Created trigger: trg_log_task_status_change');
194
- // Auto-update task timestamp
195
- db.exec(`
196
- CREATE TRIGGER IF NOT EXISTS trg_update_task_timestamp
197
- AFTER UPDATE ON t_tasks
198
- BEGIN
199
- UPDATE t_tasks SET updated_ts = unixepoch() WHERE id = NEW.id;
200
- END;
201
- `);
202
- details.push('Created trigger: trg_update_task_timestamp');
203
- // ============================================================================
204
- // 6. Seed Initial Data
205
- // ============================================================================
206
- // Insert task statuses
207
- const statusInsert = db.prepare('INSERT INTO m_task_statuses (id, name) VALUES (?, ?)');
208
- const statuses = [
209
- { id: 1, name: 'todo' },
210
- { id: 2, name: 'in_progress' },
211
- { id: 3, name: 'waiting_review' },
212
- { id: 4, name: 'blocked' },
213
- { id: 5, name: 'done' },
214
- { id: 6, name: 'archived' }
215
- ];
216
- for (const status of statuses) {
217
- statusInsert.run(status.id, status.name);
218
- }
219
- details.push('Seeded task statuses: todo, in_progress, waiting_review, blocked, done, archived');
220
- // Insert config keys for task management
221
- const configInsert = db.prepare('INSERT INTO m_config (key, value) VALUES (?, ?)');
222
- const configs = [
223
- { key: 'task_stale_hours_in_progress', value: '2' },
224
- { key: 'task_stale_hours_waiting_review', value: '24' },
225
- { key: 'task_auto_stale_enabled', value: '1' }
226
- ];
227
- for (const config of configs) {
228
- configInsert.run(config.key, config.value);
229
- }
230
- details.push('Seeded config keys: task_stale_hours_in_progress, task_stale_hours_waiting_review, task_auto_stale_enabled');
231
- // Commit transaction
232
- db.exec('COMMIT');
233
- return {
234
- success: true,
235
- message: 'Task tables migration completed successfully (v2.1.x -> v3.0.0).',
236
- details
237
- };
238
- }
239
- catch (error) {
240
- // Rollback on error
241
- db.exec('ROLLBACK');
242
- const message = error instanceof Error ? error.message : String(error);
243
- return {
244
- success: false,
245
- message: `Task tables migration failed: ${message}`,
246
- details
247
- };
248
- }
249
- }
250
- /**
251
- * Get migration info
252
- */
253
- export function getMigrationInfo() {
254
- return `
255
- Migration: Add Task Management Tables (v2.1.x -> v3.0.0)
256
-
257
- This migration adds Kanban-style task tracking to reduce token usage
258
- from the decisions table being misused for task/todo tracking.
259
-
260
- The migration will:
261
- 1. Create m_task_statuses master table
262
- 2. Create 6 transaction tables for task management
263
- 3. Create 3 indexes for query optimization
264
- 4. Create v_task_board view for token-efficient queries
265
- 5. Create 3 triggers for activity logging and timestamp updates
266
- 6. Seed task statuses (6 statuses)
267
- 7. Seed config keys for stale task detection (3 keys)
268
-
269
- Tables Added:
270
- - m_task_statuses (1 master table)
271
- - t_tasks, t_task_details, t_task_tags (3 core tables)
272
- - t_task_decision_links, t_task_constraint_links, t_task_file_links (3 link tables)
273
-
274
- View Added:
275
- - v_task_board (token-efficient task board view)
276
-
277
- Triggers Added:
278
- - trg_log_task_create (activity log)
279
- - trg_log_task_status_change (activity log)
280
- - trg_update_task_timestamp (auto-update)
281
-
282
- This migration is safe and reversible via backup restoration.
283
- `.trim();
284
- }
285
- //# sourceMappingURL=add-task-tables.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-task-tables.js","sourceRoot":"","sources":["../../src/migrations/add-task-tables.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- /**
2
- * Migration: Add Token Tracking Table (v3.6.0)
3
- *
4
- * Creates table for tracking help system token usage to measure efficiency gains.
5
- *
6
- * Table Created:
7
- * - t_help_token_usage: Tracks token consumption per query type
8
- */
9
- import { Database } from 'better-sqlite3';
10
- interface MigrationResult {
11
- success: boolean;
12
- message: string;
13
- details?: string[];
14
- }
15
- /**
16
- * Check if migration is needed
17
- */
18
- export declare function needsTokenTrackingMigration(db: Database): boolean;
19
- /**
20
- * Run the migration
21
- */
22
- export declare function migrateToTokenTracking(db: Database): MigrationResult;
23
- /**
24
- * Get migration info
25
- */
26
- export declare function getTokenTrackingMigrationInfo(): string;
27
- export {};
28
- //# sourceMappingURL=add-token-tracking.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add-token-tracking.d.ts","sourceRoot":"","sources":["../../src/migrations/add-token-tracking.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAOjE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,GAAG,eAAe,CA4DpE;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,MAAM,CA+BtD"}