sqlew 3.2.5 → 3.6.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 (291) hide show
  1. package/CHANGELOG.md +288 -1011
  2. package/README.md +80 -263
  3. package/assets/config.example.toml +97 -0
  4. package/assets/schema.sql +6 -1
  5. package/dist/adapters/index.d.ts +11 -0
  6. package/dist/adapters/index.d.ts.map +1 -0
  7. package/dist/adapters/index.js +21 -0
  8. package/dist/adapters/index.js.map +1 -0
  9. package/dist/adapters/mysql-adapter.d.ts +31 -0
  10. package/dist/adapters/mysql-adapter.d.ts.map +1 -0
  11. package/dist/adapters/mysql-adapter.js +63 -0
  12. package/dist/adapters/mysql-adapter.js.map +1 -0
  13. package/dist/adapters/postgresql-adapter.d.ts +31 -0
  14. package/dist/adapters/postgresql-adapter.d.ts.map +1 -0
  15. package/dist/adapters/postgresql-adapter.js +63 -0
  16. package/dist/adapters/postgresql-adapter.js.map +1 -0
  17. package/dist/adapters/sqlite-adapter.d.ts +37 -0
  18. package/dist/adapters/sqlite-adapter.d.ts.map +1 -0
  19. package/dist/adapters/sqlite-adapter.js +129 -0
  20. package/dist/adapters/sqlite-adapter.js.map +1 -0
  21. package/dist/adapters/types.d.ts +33 -0
  22. package/dist/adapters/types.d.ts.map +1 -0
  23. package/dist/adapters/types.js +2 -0
  24. package/dist/adapters/types.js.map +1 -0
  25. package/dist/cli.js +55 -54
  26. package/dist/cli.js.map +1 -1
  27. package/dist/config/example-generator.d.ts +11 -0
  28. package/dist/config/example-generator.d.ts.map +1 -0
  29. package/dist/config/example-generator.js +48 -0
  30. package/dist/config/example-generator.js.map +1 -0
  31. package/dist/config/loader.d.ts +46 -0
  32. package/dist/config/loader.d.ts.map +1 -0
  33. package/dist/config/loader.js +155 -0
  34. package/dist/config/loader.js.map +1 -0
  35. package/dist/config/types.d.ts +86 -0
  36. package/dist/config/types.d.ts.map +1 -0
  37. package/dist/config/types.js +28 -0
  38. package/dist/config/types.js.map +1 -0
  39. package/dist/constants.d.ts +9 -0
  40. package/dist/constants.d.ts.map +1 -1
  41. package/dist/constants.js +10 -0
  42. package/dist/constants.js.map +1 -1
  43. package/dist/database.d.ts +44 -122
  44. package/dist/database.d.ts.map +1 -1
  45. package/dist/database.js +145 -349
  46. package/dist/database.js.map +1 -1
  47. package/dist/index.js +223 -175
  48. package/dist/index.js.map +1 -1
  49. package/dist/knexfile.d.ts +6 -0
  50. package/dist/knexfile.d.ts.map +1 -0
  51. package/dist/knexfile.js +85 -0
  52. package/dist/knexfile.js.map +1 -0
  53. package/dist/migrations/add-help-system-tables.d.ts +35 -0
  54. package/dist/migrations/add-help-system-tables.d.ts.map +1 -0
  55. package/dist/migrations/add-help-system-tables.js +206 -0
  56. package/dist/migrations/add-help-system-tables.js.map +1 -0
  57. package/dist/migrations/add-token-tracking.d.ts +28 -0
  58. package/dist/migrations/add-token-tracking.d.ts.map +1 -0
  59. package/dist/migrations/add-token-tracking.js +108 -0
  60. package/dist/migrations/add-token-tracking.js.map +1 -0
  61. package/dist/migrations/add-v3.5.0-pruned-files.d.ts +26 -0
  62. package/dist/migrations/add-v3.5.0-pruned-files.d.ts.map +1 -0
  63. package/dist/migrations/add-v3.5.0-pruned-files.js +107 -0
  64. package/dist/migrations/add-v3.5.0-pruned-files.js.map +1 -0
  65. package/dist/migrations/index.d.ts +26 -12
  66. package/dist/migrations/index.d.ts.map +1 -1
  67. package/dist/migrations/index.js +162 -20
  68. package/dist/migrations/index.js.map +1 -1
  69. package/dist/migrations/knex/20251025020452_create_master_tables.d.ts +4 -0
  70. package/dist/migrations/knex/20251025020452_create_master_tables.d.ts.map +1 -0
  71. package/dist/migrations/knex/20251025020452_create_master_tables.js +65 -0
  72. package/dist/migrations/knex/20251025020452_create_master_tables.js.map +1 -0
  73. package/dist/migrations/knex/20251025021152_create_transaction_tables.d.ts +4 -0
  74. package/dist/migrations/knex/20251025021152_create_transaction_tables.d.ts.map +1 -0
  75. package/dist/migrations/knex/20251025021152_create_transaction_tables.js +235 -0
  76. package/dist/migrations/knex/20251025021152_create_transaction_tables.js.map +1 -0
  77. package/dist/migrations/knex/20251025021351_create_indexes.d.ts +4 -0
  78. package/dist/migrations/knex/20251025021351_create_indexes.d.ts.map +1 -0
  79. package/dist/migrations/knex/20251025021351_create_indexes.js +62 -0
  80. package/dist/migrations/knex/20251025021351_create_indexes.js.map +1 -0
  81. package/dist/migrations/knex/20251025021416_seed_master_data.d.ts +4 -0
  82. package/dist/migrations/knex/20251025021416_seed_master_data.d.ts.map +1 -0
  83. package/dist/migrations/knex/20251025021416_seed_master_data.js +58 -0
  84. package/dist/migrations/knex/20251025021416_seed_master_data.js.map +1 -0
  85. package/dist/migrations/knex/20251025070349_create_views.d.ts +4 -0
  86. package/dist/migrations/knex/20251025070349_create_views.d.ts.map +1 -0
  87. package/dist/migrations/knex/20251025070349_create_views.js +143 -0
  88. package/dist/migrations/knex/20251025070349_create_views.js.map +1 -0
  89. package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.d.ts +4 -0
  90. package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.d.ts.map +1 -0
  91. package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.js +15 -0
  92. package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.js.map +1 -0
  93. package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.d.ts +8 -0
  94. package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.d.ts.map +1 -0
  95. package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.js +12 -0
  96. package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.js.map +1 -0
  97. package/dist/migrations/knex/20251025090000_create_help_system_tables.d.ts +19 -0
  98. package/dist/migrations/knex/20251025090000_create_help_system_tables.d.ts.map +1 -0
  99. package/dist/migrations/knex/20251025090000_create_help_system_tables.js +115 -0
  100. package/dist/migrations/knex/20251025090000_create_help_system_tables.js.map +1 -0
  101. package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.d.ts +13 -0
  102. package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.d.ts.map +1 -0
  103. package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.js +377 -0
  104. package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.js.map +1 -0
  105. package/dist/migrations/knex/20251025100000_seed_help_metadata.d.ts +15 -0
  106. package/dist/migrations/knex/20251025100000_seed_help_metadata.d.ts.map +1 -0
  107. package/dist/migrations/knex/20251025100000_seed_help_metadata.js +253 -0
  108. package/dist/migrations/knex/20251025100000_seed_help_metadata.js.map +1 -0
  109. package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.d.ts +16 -0
  110. package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.d.ts.map +1 -0
  111. package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.js +276 -0
  112. package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.js.map +1 -0
  113. package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.d.ts +8 -0
  114. package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.d.ts.map +1 -0
  115. package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.js +64 -0
  116. package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.js.map +1 -0
  117. package/dist/migrations/seed-help-data.d.ts +48 -0
  118. package/dist/migrations/seed-help-data.d.ts.map +1 -0
  119. package/dist/migrations/seed-help-data.js +1466 -0
  120. package/dist/migrations/seed-help-data.js.map +1 -0
  121. package/dist/migrations/seed-tool-metadata.d.ts +24 -0
  122. package/dist/migrations/seed-tool-metadata.d.ts.map +1 -0
  123. package/dist/migrations/seed-tool-metadata.js +392 -0
  124. package/dist/migrations/seed-tool-metadata.js.map +1 -0
  125. package/dist/migrations/v3.6.0-help-system-refactor.d.ts +46 -0
  126. package/dist/migrations/v3.6.0-help-system-refactor.d.ts.map +1 -0
  127. package/dist/migrations/v3.6.0-help-system-refactor.js +223 -0
  128. package/dist/migrations/v3.6.0-help-system-refactor.js.map +1 -0
  129. package/dist/schema.d.ts.map +1 -1
  130. package/dist/schema.js +2 -0
  131. package/dist/schema.js.map +1 -1
  132. package/dist/tests/git-aware-completion.test.d.ts +6 -0
  133. package/dist/tests/git-aware-completion.test.d.ts.map +1 -0
  134. package/dist/tests/git-aware-completion.test.js +160 -0
  135. package/dist/tests/git-aware-completion.test.js.map +1 -0
  136. package/dist/tests/help-system.test.d.ts +23 -0
  137. package/dist/tests/help-system.test.d.ts.map +1 -0
  138. package/dist/tests/help-system.test.js +374 -0
  139. package/dist/tests/help-system.test.js.map +1 -0
  140. package/dist/tests/tasks.auto-pruning-decision-link.test.d.ts +6 -0
  141. package/dist/tests/tasks.auto-pruning-decision-link.test.d.ts.map +1 -0
  142. package/dist/tests/tasks.auto-pruning-decision-link.test.js +264 -0
  143. package/dist/tests/tasks.auto-pruning-decision-link.test.js.map +1 -0
  144. package/dist/tests/tasks.auto-pruning-partial.test.d.ts +6 -0
  145. package/dist/tests/tasks.auto-pruning-partial.test.d.ts.map +1 -0
  146. package/dist/tests/tasks.auto-pruning-partial.test.js +285 -0
  147. package/dist/tests/tasks.auto-pruning-partial.test.js.map +1 -0
  148. package/dist/tests/tasks.auto-pruning-persistence.test.d.ts +6 -0
  149. package/dist/tests/tasks.auto-pruning-persistence.test.d.ts.map +1 -0
  150. package/dist/tests/tasks.auto-pruning-persistence.test.js +250 -0
  151. package/dist/tests/tasks.auto-pruning-persistence.test.js.map +1 -0
  152. package/dist/tests/tasks.auto-pruning-safety.test.d.ts +12 -0
  153. package/dist/tests/tasks.auto-pruning-safety.test.d.ts.map +1 -0
  154. package/dist/tests/tasks.auto-pruning-safety.test.js +217 -0
  155. package/dist/tests/tasks.auto-pruning-safety.test.js.map +1 -0
  156. package/dist/tests/tasks.dependencies.test.js +338 -307
  157. package/dist/tests/tasks.dependencies.test.js.map +1 -1
  158. package/dist/tests/tasks.link-file-backward-compat.test.d.ts +6 -0
  159. package/dist/tests/tasks.link-file-backward-compat.test.d.ts.map +1 -0
  160. package/dist/tests/tasks.link-file-backward-compat.test.js +247 -0
  161. package/dist/tests/tasks.link-file-backward-compat.test.js.map +1 -0
  162. package/dist/tests/tasks.watch-files-action.test.d.ts +6 -0
  163. package/dist/tests/tasks.watch-files-action.test.d.ts.map +1 -0
  164. package/dist/tests/tasks.watch-files-action.test.js +372 -0
  165. package/dist/tests/tasks.watch-files-action.test.js.map +1 -0
  166. package/dist/tests/tasks.watch-files-parameter.test.d.ts +6 -0
  167. package/dist/tests/tasks.watch-files-parameter.test.d.ts.map +1 -0
  168. package/dist/tests/tasks.watch-files-parameter.test.js +260 -0
  169. package/dist/tests/tasks.watch-files-parameter.test.js.map +1 -0
  170. package/dist/tests/two-step-git-completion.test.d.ts +6 -0
  171. package/dist/tests/two-step-git-completion.test.d.ts.map +1 -0
  172. package/dist/tests/two-step-git-completion.test.js +326 -0
  173. package/dist/tests/two-step-git-completion.test.js.map +1 -0
  174. package/dist/tests/vcs-staging.test.d.ts +6 -0
  175. package/dist/tests/vcs-staging.test.d.ts.map +1 -0
  176. package/dist/tests/vcs-staging.test.js +137 -0
  177. package/dist/tests/vcs-staging.test.js.map +1 -0
  178. package/dist/tools/config.d.ts +9 -4
  179. package/dist/tools/config.d.ts.map +1 -1
  180. package/dist/tools/config.js +16 -12
  181. package/dist/tools/config.js.map +1 -1
  182. package/dist/tools/constraints.d.ts +9 -3
  183. package/dist/tools/constraints.d.ts.map +1 -1
  184. package/dist/tools/constraints.js +66 -45
  185. package/dist/tools/constraints.js.map +1 -1
  186. package/dist/tools/context.d.ts +35 -16
  187. package/dist/tools/context.d.ts.map +1 -1
  188. package/dist/tools/context.js +374 -314
  189. package/dist/tools/context.js.map +1 -1
  190. package/dist/tools/files.d.ts +11 -4
  191. package/dist/tools/files.d.ts.map +1 -1
  192. package/dist/tools/files.js +173 -91
  193. package/dist/tools/files.js.map +1 -1
  194. package/dist/tools/help-queries.d.ts +130 -0
  195. package/dist/tools/help-queries.d.ts.map +1 -0
  196. package/dist/tools/help-queries.js +393 -0
  197. package/dist/tools/help-queries.js.map +1 -0
  198. package/dist/tools/messaging.d.ts +13 -6
  199. package/dist/tools/messaging.d.ts.map +1 -1
  200. package/dist/tools/messaging.js +217 -129
  201. package/dist/tools/messaging.js.map +1 -1
  202. package/dist/tools/tasks.d.ts +42 -12
  203. package/dist/tools/tasks.d.ts.map +1 -1
  204. package/dist/tools/tasks.js +809 -347
  205. package/dist/tools/tasks.js.map +1 -1
  206. package/dist/tools/utils.d.ts +13 -5
  207. package/dist/tools/utils.d.ts.map +1 -1
  208. package/dist/tools/utils.js +92 -115
  209. package/dist/tools/utils.js.map +1 -1
  210. package/dist/types.d.ts +4 -0
  211. package/dist/types.d.ts.map +1 -1
  212. package/dist/utils/activity-logging.d.ts +114 -0
  213. package/dist/utils/activity-logging.d.ts.map +1 -0
  214. package/dist/utils/activity-logging.js +162 -0
  215. package/dist/utils/activity-logging.js.map +1 -0
  216. package/dist/utils/batch.d.ts +2 -2
  217. package/dist/utils/batch.d.ts.map +1 -1
  218. package/dist/utils/batch.js +8 -8
  219. package/dist/utils/batch.js.map +1 -1
  220. package/dist/utils/cleanup.d.ts +21 -13
  221. package/dist/utils/cleanup.d.ts.map +1 -1
  222. package/dist/utils/cleanup.js +31 -24
  223. package/dist/utils/cleanup.js.map +1 -1
  224. package/dist/utils/debug-logger.d.ts +44 -0
  225. package/dist/utils/debug-logger.d.ts.map +1 -0
  226. package/dist/utils/debug-logger.js +116 -0
  227. package/dist/utils/debug-logger.js.map +1 -0
  228. package/dist/utils/file-pruning.d.ts +69 -0
  229. package/dist/utils/file-pruning.d.ts.map +1 -0
  230. package/dist/utils/file-pruning.js +185 -0
  231. package/dist/utils/file-pruning.js.map +1 -0
  232. package/dist/utils/help-tracking.d.ts +55 -0
  233. package/dist/utils/help-tracking.d.ts.map +1 -0
  234. package/dist/utils/help-tracking.js +88 -0
  235. package/dist/utils/help-tracking.js.map +1 -0
  236. package/dist/utils/quality-checks.d.ts +60 -0
  237. package/dist/utils/quality-checks.d.ts.map +1 -0
  238. package/dist/utils/quality-checks.js +228 -0
  239. package/dist/utils/quality-checks.js.map +1 -0
  240. package/dist/utils/retention.d.ts +13 -5
  241. package/dist/utils/retention.d.ts.map +1 -1
  242. package/dist/utils/retention.js +20 -8
  243. package/dist/utils/retention.js.map +1 -1
  244. package/dist/utils/task-stale-detection.d.ts +77 -7
  245. package/dist/utils/task-stale-detection.d.ts.map +1 -1
  246. package/dist/utils/task-stale-detection.js +309 -34
  247. package/dist/utils/task-stale-detection.js.map +1 -1
  248. package/dist/utils/token-estimation.d.ts +72 -0
  249. package/dist/utils/token-estimation.d.ts.map +1 -0
  250. package/dist/utils/token-estimation.js +71 -0
  251. package/dist/utils/token-estimation.js.map +1 -0
  252. package/dist/utils/token-logging.d.ts +48 -0
  253. package/dist/utils/token-logging.d.ts.map +1 -0
  254. package/dist/utils/token-logging.js +112 -0
  255. package/dist/utils/token-logging.js.map +1 -0
  256. package/dist/utils/vcs-adapter.d.ts +68 -0
  257. package/dist/utils/vcs-adapter.d.ts.map +1 -0
  258. package/dist/utils/vcs-adapter.js +187 -0
  259. package/dist/utils/vcs-adapter.js.map +1 -0
  260. package/dist/utils/view-queries.d.ts +34 -0
  261. package/dist/utils/view-queries.d.ts.map +1 -0
  262. package/dist/utils/view-queries.js +192 -0
  263. package/dist/utils/view-queries.js.map +1 -0
  264. package/dist/watcher/file-watcher.d.ts +54 -4
  265. package/dist/watcher/file-watcher.d.ts.map +1 -1
  266. package/dist/watcher/file-watcher.js +329 -33
  267. package/dist/watcher/file-watcher.js.map +1 -1
  268. package/dist/watcher/gitignore-parser.d.ts +70 -0
  269. package/dist/watcher/gitignore-parser.d.ts.map +1 -0
  270. package/dist/watcher/gitignore-parser.js +191 -0
  271. package/dist/watcher/gitignore-parser.js.map +1 -0
  272. package/dist/watcher/index.d.ts +1 -0
  273. package/dist/watcher/index.d.ts.map +1 -1
  274. package/dist/watcher/index.js +1 -0
  275. package/dist/watcher/index.js.map +1 -1
  276. package/docs/AI_AGENT_GUIDE.md +1 -1
  277. package/docs/ARCHITECTURE.md +12 -0
  278. package/docs/AUTO_FILE_TRACKING.md +486 -82
  279. package/docs/BEST_PRACTICES.md +56 -448
  280. package/docs/CONFIGURATION.md +908 -0
  281. package/docs/GIT_AWARE_AUTO_COMPLETE.md +645 -0
  282. package/docs/MIGRATION_v3.3.md +602 -0
  283. package/docs/MIGRATION_v3.6.0.md +170 -0
  284. package/docs/SHARED_CONCEPTS.md +65 -209
  285. package/docs/TASK_ACTIONS.md +12 -0
  286. package/docs/TASK_OVERVIEW.md +125 -24
  287. package/docs/TASK_PRUNING.md +589 -0
  288. package/docs/TASK_SYSTEM.md +83 -13
  289. package/docs/TOOL_REFERENCE.md +94 -6
  290. package/docs/TOOL_SELECTION.md +41 -248
  291. package/package.json +21 -7
@@ -0,0 +1,235 @@
1
+ export async function up(knex) {
2
+ // ============================================================================
3
+ // Transaction Tables (t_ prefix) - Core Data
4
+ // ============================================================================
5
+ // Decisions (String Values)
6
+ await knex.schema.createTable('t_decisions', (table) => {
7
+ table.integer('key_id').primary();
8
+ table.foreign('key_id').references('m_context_keys.id');
9
+ table.text('value').notNullable();
10
+ table.integer('agent_id');
11
+ table.foreign('agent_id').references('m_agents.id');
12
+ table.integer('layer_id');
13
+ table.foreign('layer_id').references('m_layers.id');
14
+ table.string('version', 20).defaultTo('1.0.0');
15
+ table.integer('status').defaultTo(1); // 1=active, 2=deprecated, 3=draft
16
+ table.integer('ts').notNullable();
17
+ });
18
+ // Decisions (Numeric Values)
19
+ await knex.schema.createTable('t_decisions_numeric', (table) => {
20
+ table.integer('key_id').primary();
21
+ table.foreign('key_id').references('m_context_keys.id');
22
+ table.double('value').notNullable();
23
+ table.integer('agent_id');
24
+ table.foreign('agent_id').references('m_agents.id');
25
+ table.integer('layer_id');
26
+ table.foreign('layer_id').references('m_layers.id');
27
+ table.string('version', 20).defaultTo('1.0.0');
28
+ table.integer('status').defaultTo(1);
29
+ table.integer('ts').notNullable();
30
+ });
31
+ // Decision Version History
32
+ await knex.schema.createTable('t_decision_history', (table) => {
33
+ table.increments('id').primary();
34
+ table.integer('key_id');
35
+ table.foreign('key_id').references('m_context_keys.id');
36
+ table.string('version', 20).notNullable();
37
+ table.text('value').notNullable();
38
+ table.integer('agent_id');
39
+ table.foreign('agent_id').references('m_agents.id');
40
+ table.integer('ts').notNullable();
41
+ });
42
+ // Decision Tagging (Many-to-Many)
43
+ await knex.schema.createTable('t_decision_tags', (table) => {
44
+ table.integer('decision_key_id');
45
+ table.foreign('decision_key_id').references('m_context_keys.id');
46
+ table.integer('tag_id');
47
+ table.foreign('tag_id').references('m_tags.id');
48
+ table.primary(['decision_key_id', 'tag_id']);
49
+ });
50
+ // Decision Scopes (Many-to-Many)
51
+ await knex.schema.createTable('t_decision_scopes', (table) => {
52
+ table.integer('decision_key_id');
53
+ table.foreign('decision_key_id').references('m_context_keys.id');
54
+ table.integer('scope_id');
55
+ table.foreign('scope_id').references('m_scopes.id');
56
+ table.primary(['decision_key_id', 'scope_id']);
57
+ });
58
+ // Agent Messages
59
+ await knex.schema.createTable('t_agent_messages', (table) => {
60
+ table.increments('id').primary();
61
+ table.integer('from_agent_id');
62
+ table.foreign('from_agent_id').references('m_agents.id');
63
+ table.integer('to_agent_id');
64
+ table.foreign('to_agent_id').references('m_agents.id');
65
+ table.integer('msg_type').notNullable(); // 1=decision, 2=warning, 3=request, 4=info
66
+ table.integer('priority').defaultTo(2); // 1=low, 2=medium, 3=high, 4=critical
67
+ table.text('message').notNullable();
68
+ table.text('payload'); // JSON stored as TEXT
69
+ table.boolean('read').defaultTo(false);
70
+ table.integer('ts').notNullable();
71
+ });
72
+ // File Change Tracking
73
+ await knex.schema.createTable('t_file_changes', (table) => {
74
+ table.increments('id').primary();
75
+ table.integer('file_id');
76
+ table.foreign('file_id').references('m_files.id');
77
+ table.integer('change_type').notNullable(); // 1=created, 2=modified, 3=deleted
78
+ table.integer('agent_id');
79
+ table.foreign('agent_id').references('m_agents.id');
80
+ table.integer('layer_id');
81
+ table.foreign('layer_id').references('m_layers.id');
82
+ table.text('description');
83
+ table.integer('ts').notNullable();
84
+ });
85
+ // Constraints
86
+ await knex.schema.createTable('t_constraints', (table) => {
87
+ table.increments('id').primary();
88
+ table.integer('category_id');
89
+ table.foreign('category_id').references('m_constraint_categories.id');
90
+ table.integer('layer_id');
91
+ table.foreign('layer_id').references('m_layers.id');
92
+ table.text('constraint_text').notNullable();
93
+ table.integer('priority').defaultTo(2); // 1=low, 2=medium, 3=high, 4=critical
94
+ table.boolean('active').defaultTo(true);
95
+ table.integer('agent_id');
96
+ table.foreign('agent_id').references('m_agents.id');
97
+ table.integer('ts').notNullable();
98
+ });
99
+ // Constraint Tagging (Many-to-Many)
100
+ await knex.schema.createTable('t_constraint_tags', (table) => {
101
+ table.integer('constraint_id');
102
+ table.foreign('constraint_id').references('t_constraints.id');
103
+ table.integer('tag_id');
104
+ table.foreign('tag_id').references('m_tags.id');
105
+ table.primary(['constraint_id', 'tag_id']);
106
+ });
107
+ // Activity Log
108
+ await knex.schema.createTable('t_activity_log', (table) => {
109
+ table.increments('id').primary();
110
+ table.integer('agent_id');
111
+ table.foreign('agent_id').references('m_agents.id');
112
+ table.string('action_type', 50).notNullable();
113
+ table.string('target', 500);
114
+ table.integer('layer_id');
115
+ table.foreign('layer_id').references('m_layers.id');
116
+ table.text('details'); // JSON stored as TEXT
117
+ table.integer('ts').notNullable();
118
+ });
119
+ // Decision Templates
120
+ await knex.schema.createTable('t_decision_templates', (table) => {
121
+ table.increments('id').primary();
122
+ table.string('name', 200).unique().notNullable();
123
+ table.text('description');
124
+ table.text('defaults'); // JSON
125
+ table.text('required_fields'); // JSON
126
+ });
127
+ // Decision Context (v3.2.2)
128
+ await knex.schema.createTable('t_decision_context', (table) => {
129
+ table.increments('id').primary();
130
+ table.integer('decision_key_id');
131
+ table.foreign('decision_key_id').references('m_context_keys.id');
132
+ table.text('rationale');
133
+ table.text('alternatives_considered'); // JSON array
134
+ table.text('tradeoffs'); // JSON object
135
+ table.integer('decision_date');
136
+ table.integer('agent_id');
137
+ table.foreign('agent_id').references('m_agents.id');
138
+ table.integer('ts').notNullable();
139
+ });
140
+ // Tasks (v3.0.0 Kanban system)
141
+ await knex.schema.createTable('t_tasks', (table) => {
142
+ table.increments('id').primary();
143
+ table.string('title', 500).notNullable();
144
+ table.integer('status_id').defaultTo(1); // 1=todo
145
+ table.foreign('status_id').references('m_task_statuses.id');
146
+ table.integer('priority').defaultTo(2);
147
+ table.integer('assigned_agent_id');
148
+ table.foreign('assigned_agent_id').references('m_agents.id');
149
+ table.integer('created_by_agent_id');
150
+ table.foreign('created_by_agent_id').references('m_agents.id');
151
+ table.integer('layer_id');
152
+ table.foreign('layer_id').references('m_layers.id');
153
+ table.integer('created_ts').notNullable();
154
+ table.integer('updated_ts').notNullable();
155
+ table.integer('completed_ts');
156
+ });
157
+ // Task Details
158
+ await knex.schema.createTable('t_task_details', (table) => {
159
+ table.integer('task_id').primary();
160
+ table.foreign('task_id').references('t_tasks.id');
161
+ table.text('description');
162
+ table.text('acceptance_criteria');
163
+ table.text('acceptance_criteria_json'); // JSON
164
+ table.text('notes');
165
+ });
166
+ // Task Tagging (Many-to-Many)
167
+ await knex.schema.createTable('t_task_tags', (table) => {
168
+ table.integer('task_id');
169
+ table.foreign('task_id').references('t_tasks.id');
170
+ table.integer('tag_id');
171
+ table.foreign('tag_id').references('m_tags.id');
172
+ table.primary(['task_id', 'tag_id']);
173
+ });
174
+ // Task-Decision Links
175
+ await knex.schema.createTable('t_task_decision_links', (table) => {
176
+ table.integer('task_id');
177
+ table.foreign('task_id').references('t_tasks.id');
178
+ table.integer('decision_key_id');
179
+ table.foreign('decision_key_id').references('m_context_keys.id');
180
+ table.primary(['task_id', 'decision_key_id']);
181
+ });
182
+ // Task-Constraint Links
183
+ await knex.schema.createTable('t_task_constraint_links', (table) => {
184
+ table.integer('task_id');
185
+ table.foreign('task_id').references('t_tasks.id');
186
+ table.integer('constraint_id');
187
+ table.foreign('constraint_id').references('t_constraints.id');
188
+ table.primary(['task_id', 'constraint_id']);
189
+ });
190
+ // Task-File Links
191
+ await knex.schema.createTable('t_task_file_links', (table) => {
192
+ table.integer('task_id');
193
+ table.foreign('task_id').references('t_tasks.id');
194
+ table.integer('file_id');
195
+ table.foreign('file_id').references('m_files.id');
196
+ table.primary(['task_id', 'file_id']);
197
+ });
198
+ // Task Dependencies (v3.2.0) - with CASCADE delete
199
+ // Note: Using raw SQL because Knex doesn't properly generate ON DELETE CASCADE for SQLite
200
+ await knex.raw(`
201
+ CREATE TABLE t_task_dependencies (
202
+ task_id INTEGER,
203
+ depends_on_task_id INTEGER,
204
+ created_ts INTEGER NOT NULL,
205
+ PRIMARY KEY (task_id, depends_on_task_id),
206
+ FOREIGN KEY (task_id) REFERENCES t_tasks(id) ON DELETE CASCADE,
207
+ FOREIGN KEY (depends_on_task_id) REFERENCES t_tasks(id) ON DELETE CASCADE
208
+ )
209
+ `);
210
+ console.log('✅ Transaction tables created successfully');
211
+ }
212
+ export async function down(knex) {
213
+ // Drop in reverse order to handle foreign keys
214
+ await knex.schema.dropTableIfExists('t_task_dependencies');
215
+ await knex.schema.dropTableIfExists('t_task_file_links');
216
+ await knex.schema.dropTableIfExists('t_task_constraint_links');
217
+ await knex.schema.dropTableIfExists('t_task_decision_links');
218
+ await knex.schema.dropTableIfExists('t_task_tags');
219
+ await knex.schema.dropTableIfExists('t_task_details');
220
+ await knex.schema.dropTableIfExists('t_tasks');
221
+ await knex.schema.dropTableIfExists('t_decision_context');
222
+ await knex.schema.dropTableIfExists('t_decision_templates');
223
+ await knex.schema.dropTableIfExists('t_activity_log');
224
+ await knex.schema.dropTableIfExists('t_constraint_tags');
225
+ await knex.schema.dropTableIfExists('t_constraints');
226
+ await knex.schema.dropTableIfExists('t_file_changes');
227
+ await knex.schema.dropTableIfExists('t_agent_messages');
228
+ await knex.schema.dropTableIfExists('t_decision_scopes');
229
+ await knex.schema.dropTableIfExists('t_decision_tags');
230
+ await knex.schema.dropTableIfExists('t_decision_history');
231
+ await knex.schema.dropTableIfExists('t_decisions_numeric');
232
+ await knex.schema.dropTableIfExists('t_decisions');
233
+ console.log('✅ Transaction tables dropped successfully');
234
+ }
235
+ //# sourceMappingURL=20251025021152_create_transaction_tables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251025021152_create_transaction_tables.js","sourceRoot":"","sources":["../../../src/migrations/knex/20251025021152_create_transaction_tables.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Knex } from "knex";
2
+ export declare function up(knex: Knex): Promise<void>;
3
+ export declare function down(knex: Knex): Promise<void>;
4
+ //# sourceMappingURL=20251025021351_create_indexes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251025021351_create_indexes.d.ts","sourceRoot":"","sources":["../../../src/migrations/knex/20251025021351_create_indexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA0ClD;AAGD,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BpD"}
@@ -0,0 +1,62 @@
1
+ export async function up(knex) {
2
+ // ============================================================================
3
+ // Indexes for Performance Optimization
4
+ // ============================================================================
5
+ // Decisions indexes
6
+ await knex.raw('CREATE INDEX idx_decisions_ts ON t_decisions(ts DESC)');
7
+ await knex.raw('CREATE INDEX idx_decisions_layer ON t_decisions(layer_id)');
8
+ await knex.raw('CREATE INDEX idx_decisions_agent ON t_decisions(agent_id)');
9
+ await knex.raw('CREATE INDEX idx_decisions_status ON t_decisions(status)');
10
+ // Decisions numeric indexes
11
+ await knex.raw('CREATE INDEX idx_decisions_numeric_ts ON t_decisions_numeric(ts DESC)');
12
+ await knex.raw('CREATE INDEX idx_decisions_numeric_layer ON t_decisions_numeric(layer_id)');
13
+ // Messages indexes
14
+ await knex.raw('CREATE INDEX idx_messages_ts ON t_agent_messages(ts DESC)');
15
+ await knex.raw('CREATE INDEX idx_messages_to_agent ON t_agent_messages(to_agent_id, read)');
16
+ await knex.raw('CREATE INDEX idx_messages_priority ON t_agent_messages(priority DESC)');
17
+ // File changes indexes
18
+ await knex.raw('CREATE INDEX idx_file_changes_ts ON t_file_changes(ts DESC)');
19
+ await knex.raw('CREATE INDEX idx_file_changes_file ON t_file_changes(file_id)');
20
+ await knex.raw('CREATE INDEX idx_file_changes_layer ON t_file_changes(layer_id)');
21
+ // Constraints indexes
22
+ await knex.raw('CREATE INDEX idx_constraints_active ON t_constraints(active)');
23
+ await knex.raw('CREATE INDEX idx_constraints_layer ON t_constraints(layer_id)');
24
+ await knex.raw('CREATE INDEX idx_constraints_priority ON t_constraints(priority DESC)');
25
+ // Activity log indexes
26
+ await knex.raw('CREATE INDEX idx_activity_log_ts ON t_activity_log(ts DESC)');
27
+ await knex.raw('CREATE INDEX idx_activity_log_agent ON t_activity_log(agent_id)');
28
+ // Task indexes
29
+ await knex.raw('CREATE INDEX idx_tasks_status ON t_tasks(status_id)');
30
+ await knex.raw('CREATE INDEX idx_tasks_priority ON t_tasks(priority DESC)');
31
+ await knex.raw('CREATE INDEX idx_tasks_agent ON t_tasks(assigned_agent_id)');
32
+ await knex.raw('CREATE INDEX idx_tasks_created_ts ON t_tasks(created_ts DESC)');
33
+ await knex.raw('CREATE INDEX idx_tasks_updated_ts ON t_tasks(updated_ts DESC)');
34
+ console.log('✅ Indexes created successfully');
35
+ }
36
+ export async function down(knex) {
37
+ // Drop all indexes
38
+ await knex.raw('DROP INDEX IF EXISTS idx_tasks_updated_ts');
39
+ await knex.raw('DROP INDEX IF EXISTS idx_tasks_created_ts');
40
+ await knex.raw('DROP INDEX IF EXISTS idx_tasks_agent');
41
+ await knex.raw('DROP INDEX IF EXISTS idx_tasks_priority');
42
+ await knex.raw('DROP INDEX IF EXISTS idx_tasks_status');
43
+ await knex.raw('DROP INDEX IF EXISTS idx_activity_log_agent');
44
+ await knex.raw('DROP INDEX IF EXISTS idx_activity_log_ts');
45
+ await knex.raw('DROP INDEX IF EXISTS idx_constraints_priority');
46
+ await knex.raw('DROP INDEX IF EXISTS idx_constraints_layer');
47
+ await knex.raw('DROP INDEX IF EXISTS idx_constraints_active');
48
+ await knex.raw('DROP INDEX IF EXISTS idx_file_changes_layer');
49
+ await knex.raw('DROP INDEX IF EXISTS idx_file_changes_file');
50
+ await knex.raw('DROP INDEX IF EXISTS idx_file_changes_ts');
51
+ await knex.raw('DROP INDEX IF EXISTS idx_messages_priority');
52
+ await knex.raw('DROP INDEX IF EXISTS idx_messages_to_agent');
53
+ await knex.raw('DROP INDEX IF EXISTS idx_messages_ts');
54
+ await knex.raw('DROP INDEX IF EXISTS idx_decisions_numeric_layer');
55
+ await knex.raw('DROP INDEX IF EXISTS idx_decisions_numeric_ts');
56
+ await knex.raw('DROP INDEX IF EXISTS idx_decisions_status');
57
+ await knex.raw('DROP INDEX IF EXISTS idx_decisions_agent');
58
+ await knex.raw('DROP INDEX IF EXISTS idx_decisions_layer');
59
+ await knex.raw('DROP INDEX IF EXISTS idx_decisions_ts');
60
+ console.log('✅ Indexes dropped successfully');
61
+ }
62
+ //# sourceMappingURL=20251025021351_create_indexes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251025021351_create_indexes.js","sourceRoot":"","sources":["../../../src/migrations/knex/20251025021351_create_indexes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Knex } from "knex";
2
+ export declare function up(knex: Knex): Promise<void>;
3
+ export declare function down(knex: Knex): Promise<void>;
4
+ //# sourceMappingURL=20251025021416_seed_master_data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251025021416_seed_master_data.d.ts","sourceRoot":"","sources":["../../../src/migrations/knex/20251025021416_seed_master_data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAqDlD;AAGD,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CASpD"}
@@ -0,0 +1,58 @@
1
+ export async function up(knex) {
2
+ // ============================================================================
3
+ // Initial Data Seeding
4
+ // ============================================================================
5
+ // Seed layers (5 predefined architecture layers)
6
+ await knex('m_layers').insert([
7
+ { id: 1, name: 'presentation' },
8
+ { id: 2, name: 'business' },
9
+ { id: 3, name: 'data' },
10
+ { id: 4, name: 'infrastructure' },
11
+ { id: 5, name: 'cross-cutting' },
12
+ ]);
13
+ // Seed constraint categories
14
+ await knex('m_constraint_categories').insert([
15
+ { name: 'architecture' },
16
+ { name: 'security' },
17
+ { name: 'performance' },
18
+ { name: 'compatibility' },
19
+ { name: 'maintainability' },
20
+ ]);
21
+ // Seed common tags
22
+ await knex('m_tags').insert([
23
+ { name: 'authentication' },
24
+ { name: 'authorization' },
25
+ { name: 'validation' },
26
+ { name: 'error-handling' },
27
+ { name: 'logging' },
28
+ { name: 'performance' },
29
+ { name: 'security' },
30
+ { name: 'testing' },
31
+ ]);
32
+ // Seed configuration defaults
33
+ await knex('m_config').insert([
34
+ { key: 'autodelete_ignore_weekend', value: '1' },
35
+ { key: 'autodelete_message_hours', value: '24' },
36
+ { key: 'autodelete_file_history_days', value: '7' },
37
+ ]);
38
+ // Seed task statuses
39
+ await knex('m_task_statuses').insert([
40
+ { id: 1, name: 'todo' },
41
+ { id: 2, name: 'in_progress' },
42
+ { id: 3, name: 'waiting_review' },
43
+ { id: 4, name: 'blocked' },
44
+ { id: 5, name: 'done' },
45
+ { id: 6, name: 'archived' },
46
+ ]);
47
+ console.log('✅ Master data seeded successfully');
48
+ }
49
+ export async function down(knex) {
50
+ // Clear all seeded data
51
+ await knex('m_task_statuses').del();
52
+ await knex('m_config').del();
53
+ await knex('m_tags').del();
54
+ await knex('m_constraint_categories').del();
55
+ await knex('m_layers').del();
56
+ console.log('✅ Master data cleared');
57
+ }
58
+ //# sourceMappingURL=20251025021416_seed_master_data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251025021416_seed_master_data.js","sourceRoot":"","sources":["../../../src/migrations/knex/20251025021416_seed_master_data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Knex } from "knex";
2
+ export declare function up(knex: Knex): Promise<void>;
3
+ export declare function down(knex: Knex): Promise<void>;
4
+ //# sourceMappingURL=20251025070349_create_views.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251025070349_create_views.d.ts","sourceRoot":"","sources":["../../../src/migrations/knex/20251025070349_create_views.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA2IlD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAUpD"}
@@ -0,0 +1,143 @@
1
+ export async function up(knex) {
2
+ // ============================================================================
3
+ // Token-Efficient Views (v_ prefix)
4
+ // ============================================================================
5
+ // Tagged Decisions (Most Efficient View)
6
+ await knex.raw(`
7
+ CREATE VIEW IF NOT EXISTS v_tagged_decisions AS
8
+ SELECT
9
+ k.key,
10
+ d.value,
11
+ d.version,
12
+ CASE d.status WHEN 1 THEN 'active' WHEN 2 THEN 'deprecated' ELSE 'draft' END as status,
13
+ l.name as layer,
14
+ (SELECT GROUP_CONCAT(t2.name, ',') FROM t_decision_tags dt2
15
+ JOIN m_tags t2 ON dt2.tag_id = t2.id
16
+ WHERE dt2.decision_key_id = d.key_id) as tags,
17
+ (SELECT GROUP_CONCAT(s2.name, ',') FROM t_decision_scopes ds2
18
+ JOIN m_scopes s2 ON ds2.scope_id = s2.id
19
+ WHERE ds2.decision_key_id = d.key_id) as scopes,
20
+ a.name as decided_by,
21
+ datetime(d.ts, 'unixepoch') as updated
22
+ FROM t_decisions d
23
+ JOIN m_context_keys k ON d.key_id = k.id
24
+ LEFT JOIN m_layers l ON d.layer_id = l.id
25
+ LEFT JOIN m_agents a ON d.agent_id = a.id
26
+ `);
27
+ // Active Context (Last Hour, Active Only)
28
+ await knex.raw(`
29
+ CREATE VIEW IF NOT EXISTS v_active_context AS
30
+ SELECT
31
+ k.key,
32
+ d.value,
33
+ d.version,
34
+ l.name as layer,
35
+ a.name as decided_by,
36
+ datetime(d.ts, 'unixepoch') as updated
37
+ FROM t_decisions d
38
+ JOIN m_context_keys k ON d.key_id = k.id
39
+ LEFT JOIN m_layers l ON d.layer_id = l.id
40
+ LEFT JOIN m_agents a ON d.agent_id = a.id
41
+ WHERE d.status = 1 AND d.ts > unixepoch() - 3600
42
+ ORDER BY d.ts DESC
43
+ `);
44
+ // Layer Summary
45
+ await knex.raw(`
46
+ CREATE VIEW IF NOT EXISTS v_layer_summary AS
47
+ SELECT
48
+ l.name as layer,
49
+ COUNT(DISTINCT d.key_id) as decisions_count,
50
+ COUNT(DISTINCT fc.id) as file_changes_count,
51
+ COUNT(DISTINCT c.id) as constraints_count
52
+ FROM m_layers l
53
+ LEFT JOIN t_decisions d ON l.id = d.layer_id AND d.status = 1
54
+ LEFT JOIN t_file_changes fc ON l.id = fc.layer_id AND fc.ts > unixepoch() - 3600
55
+ LEFT JOIN t_constraints c ON l.id = c.layer_id AND c.active = 1
56
+ GROUP BY l.id
57
+ `);
58
+ // Unread Messages by Priority
59
+ await knex.raw(`
60
+ CREATE VIEW IF NOT EXISTS v_unread_messages_by_priority AS
61
+ SELECT
62
+ a.name as agent,
63
+ CASE m.priority WHEN 4 THEN 'critical' WHEN 3 THEN 'high' WHEN 2 THEN 'medium' ELSE 'low' END as priority,
64
+ COUNT(*) as count
65
+ FROM t_agent_messages m
66
+ JOIN m_agents a ON m.to_agent_id = a.id
67
+ WHERE m.read = 0
68
+ GROUP BY m.to_agent_id, m.priority
69
+ ORDER BY m.priority DESC
70
+ `);
71
+ // Recent File Changes (With Layer)
72
+ await knex.raw(`
73
+ CREATE VIEW IF NOT EXISTS v_recent_file_changes AS
74
+ SELECT
75
+ f.path,
76
+ a.name as changed_by,
77
+ l.name as layer,
78
+ CASE fc.change_type WHEN 1 THEN 'created' WHEN 2 THEN 'modified' ELSE 'deleted' END as change_type,
79
+ fc.description,
80
+ datetime(fc.ts, 'unixepoch') as changed_at
81
+ FROM t_file_changes fc
82
+ JOIN m_files f ON fc.file_id = f.id
83
+ JOIN m_agents a ON fc.agent_id = a.id
84
+ LEFT JOIN m_layers l ON fc.layer_id = l.id
85
+ WHERE fc.ts > unixepoch() - 3600
86
+ ORDER BY fc.ts DESC
87
+ `);
88
+ // Tagged Constraints
89
+ await knex.raw(`
90
+ CREATE VIEW IF NOT EXISTS v_tagged_constraints AS
91
+ SELECT
92
+ c.id,
93
+ cc.name as category,
94
+ l.name as layer,
95
+ c.constraint_text,
96
+ CASE c.priority WHEN 4 THEN 'critical' WHEN 3 THEN 'high' WHEN 2 THEN 'medium' ELSE 'low' END as priority,
97
+ (SELECT GROUP_CONCAT(t2.name, ',') FROM t_constraint_tags ct2
98
+ JOIN m_tags t2 ON ct2.tag_id = t2.id
99
+ WHERE ct2.constraint_id = c.id) as tags,
100
+ a.name as created_by,
101
+ datetime(c.ts, 'unixepoch') as created_at
102
+ FROM t_constraints c
103
+ JOIN m_constraint_categories cc ON c.category_id = cc.id
104
+ LEFT JOIN m_layers l ON c.layer_id = l.id
105
+ LEFT JOIN m_agents a ON c.agent_id = a.id
106
+ WHERE c.active = 1
107
+ ORDER BY c.priority DESC, cc.name, c.ts DESC
108
+ `);
109
+ // Task Board View (Token-efficient)
110
+ await knex.raw(`
111
+ CREATE VIEW IF NOT EXISTS v_task_board AS
112
+ SELECT
113
+ t.id,
114
+ t.title,
115
+ s.name as status,
116
+ t.priority,
117
+ a.name as assigned_to,
118
+ l.name as layer,
119
+ t.created_ts,
120
+ t.updated_ts,
121
+ t.completed_ts,
122
+ (SELECT GROUP_CONCAT(tg2.name, ', ')
123
+ FROM t_task_tags tt2
124
+ JOIN m_tags tg2 ON tt2.tag_id = tg2.id
125
+ WHERE tt2.task_id = t.id) as tags
126
+ FROM t_tasks t
127
+ LEFT JOIN m_task_statuses s ON t.status_id = s.id
128
+ LEFT JOIN m_agents a ON t.assigned_agent_id = a.id
129
+ LEFT JOIN m_layers l ON t.layer_id = l.id
130
+ `);
131
+ console.log('✅ Views created successfully');
132
+ }
133
+ export async function down(knex) {
134
+ await knex.raw('DROP VIEW IF EXISTS v_task_board');
135
+ await knex.raw('DROP VIEW IF EXISTS v_tagged_constraints');
136
+ await knex.raw('DROP VIEW IF EXISTS v_recent_file_changes');
137
+ await knex.raw('DROP VIEW IF EXISTS v_unread_messages_by_priority');
138
+ await knex.raw('DROP VIEW IF EXISTS v_layer_summary');
139
+ await knex.raw('DROP VIEW IF EXISTS v_active_context');
140
+ await knex.raw('DROP VIEW IF EXISTS v_tagged_decisions');
141
+ console.log('✅ Views dropped successfully');
142
+ }
143
+ //# sourceMappingURL=20251025070349_create_views.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251025070349_create_views.js","sourceRoot":"","sources":["../../../src/migrations/knex/20251025070349_create_views.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,+EAA+E;IAC/E,oCAAoC;IACpC,+EAA+E;IAE/E,yCAAyC;IACzC,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;GAoBd,CAAC,CAAC;IAEH,0CAA0C;IAC1C,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;GAed,CAAC,CAAC;IAEH,gBAAgB;IAChB,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;;GAYd,CAAC,CAAC;IAEH,8BAA8B;IAC9B,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;GAWd,CAAC,CAAC;IAEH,mCAAmC;IACnC,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;GAed,CAAC,CAAC;IAEH,qBAAqB;IACrB,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;GAmBd,CAAC,CAAC;IAEH,oCAAoC;IACpC,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;GAoBd,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,MAAM,IAAI,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IACnD,MAAM,IAAI,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAC3D,MAAM,IAAI,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAC5D,MAAM,IAAI,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IACpE,MAAM,IAAI,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACtD,MAAM,IAAI,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACvD,MAAM,IAAI,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IAEzD,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Knex } from "knex";
2
+ export declare function up(knex: Knex): Promise<void>;
3
+ export declare function down(knex: Knex): Promise<void>;
4
+ //# sourceMappingURL=20251025081221_add_link_type_to_task_decision_links.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251025081221_add_link_type_to_task_decision_links.d.ts","sourceRoot":"","sources":["../../../src/migrations/knex/20251025081221_add_link_type_to_task_decision_links.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAOlD;AAGD,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAOpD"}
@@ -0,0 +1,15 @@
1
+ export async function up(knex) {
2
+ // Add link_type column to t_task_decision_links table
3
+ await knex.schema.alterTable('t_task_decision_links', (table) => {
4
+ table.text('link_type').defaultTo('implements');
5
+ });
6
+ console.log('✅ Added link_type column to t_task_decision_links');
7
+ }
8
+ export async function down(knex) {
9
+ // Remove link_type column from t_task_decision_links table
10
+ await knex.schema.alterTable('t_task_decision_links', (table) => {
11
+ table.dropColumn('link_type');
12
+ });
13
+ console.log('✅ Removed link_type column from t_task_decision_links');
14
+ }
15
+ //# sourceMappingURL=20251025081221_add_link_type_to_task_decision_links.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251025081221_add_link_type_to_task_decision_links.js","sourceRoot":"","sources":["../../../src/migrations/knex/20251025081221_add_link_type_to_task_decision_links.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,sDAAsD;IACtD,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,EAAE;QAC9D,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;AACnE,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,2DAA2D;IAC3D,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,EAAE;QAC9D,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;AACvE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Knex } from "knex";
2
+ /**
3
+ * Stub migration - this was created to resolve Knex corruption error
4
+ * The actual changes were likely applied manually or in a different migration
5
+ */
6
+ export declare function up(knex: Knex): Promise<void>;
7
+ export declare function down(knex: Knex): Promise<void>;
8
+ //# sourceMappingURL=20251025082220_fix_task_dependencies_columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251025082220_fix_task_dependencies_columns.d.ts","sourceRoot":"","sources":["../../../src/migrations/knex/20251025082220_fix_task_dependencies_columns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC;;;GAGG;AAEH,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpD"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Stub migration - this was created to resolve Knex corruption error
3
+ * The actual changes were likely applied manually or in a different migration
4
+ */
5
+ export async function up(knex) {
6
+ // No-op: changes already applied
7
+ console.log('Stub migration: no changes needed');
8
+ }
9
+ export async function down(knex) {
10
+ // No-op
11
+ }
12
+ //# sourceMappingURL=20251025082220_fix_task_dependencies_columns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251025082220_fix_task_dependencies_columns.js","sourceRoot":"","sources":["../../../src/migrations/knex/20251025082220_fix_task_dependencies_columns.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,iCAAiC;IACjC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,QAAQ;AACV,CAAC"}