sqlew 3.6.10 → 3.7.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 (370) hide show
  1. package/CHANGELOG.md +318 -0
  2. package/README.md +54 -39
  3. package/assets/config.example.toml +93 -0
  4. package/assets/kanban-visualizer.png +0 -0
  5. package/assets/sample-agents/sqlew-architect.md +32 -13
  6. package/assets/sample-agents/sqlew-researcher.md +70 -17
  7. package/assets/sample-agents/sqlew-scrum-master.md +60 -25
  8. package/assets/schema.sql +2 -2
  9. package/dist/adapters/auth/auth-factory.d.ts +86 -0
  10. package/dist/adapters/auth/auth-factory.d.ts.map +1 -0
  11. package/dist/adapters/auth/auth-factory.js +103 -0
  12. package/dist/adapters/auth/auth-factory.js.map +1 -0
  13. package/dist/adapters/auth/auth-types.d.ts +30 -0
  14. package/dist/adapters/auth/auth-types.d.ts.map +1 -0
  15. package/dist/adapters/auth/auth-types.js +30 -0
  16. package/dist/adapters/auth/auth-types.js.map +1 -0
  17. package/dist/adapters/auth/base-auth-provider.d.ts +327 -0
  18. package/dist/adapters/auth/base-auth-provider.d.ts.map +1 -0
  19. package/dist/adapters/auth/base-auth-provider.js +111 -0
  20. package/dist/adapters/auth/base-auth-provider.js.map +1 -0
  21. package/dist/adapters/auth/direct-auth-provider.d.ts +356 -0
  22. package/dist/adapters/auth/direct-auth-provider.d.ts.map +1 -0
  23. package/dist/adapters/auth/direct-auth-provider.js +406 -0
  24. package/dist/adapters/auth/direct-auth-provider.js.map +1 -0
  25. package/dist/adapters/base-adapter.d.ts +638 -0
  26. package/dist/adapters/base-adapter.d.ts.map +1 -0
  27. package/dist/adapters/base-adapter.js +557 -0
  28. package/dist/adapters/base-adapter.js.map +1 -0
  29. package/dist/adapters/index.d.ts +13 -2
  30. package/dist/adapters/index.d.ts.map +1 -1
  31. package/dist/adapters/index.js +27 -5
  32. package/dist/adapters/index.js.map +1 -1
  33. package/dist/adapters/mysql-adapter.d.ts +547 -6
  34. package/dist/adapters/mysql-adapter.d.ts.map +1 -1
  35. package/dist/adapters/mysql-adapter.js +651 -32
  36. package/dist/adapters/mysql-adapter.js.map +1 -1
  37. package/dist/adapters/postgresql-adapter.d.ts +15 -4
  38. package/dist/adapters/postgresql-adapter.d.ts.map +1 -1
  39. package/dist/adapters/postgresql-adapter.js +19 -2
  40. package/dist/adapters/postgresql-adapter.js.map +1 -1
  41. package/dist/adapters/sqlite-adapter.d.ts +35 -5
  42. package/dist/adapters/sqlite-adapter.d.ts.map +1 -1
  43. package/dist/adapters/sqlite-adapter.js +57 -18
  44. package/dist/adapters/sqlite-adapter.js.map +1 -1
  45. package/dist/cli/db-dump.d.ts +32 -0
  46. package/dist/cli/db-dump.d.ts.map +1 -0
  47. package/dist/cli/db-dump.js +409 -0
  48. package/dist/cli/db-dump.js.map +1 -0
  49. package/dist/cli.js +24 -14
  50. package/dist/cli.js.map +1 -1
  51. package/dist/config/knex/bootstrap/20251025020452_create_master_tables.d.ts.map +1 -0
  52. package/dist/{migrations → config}/knex/bootstrap/20251025020452_create_master_tables.js +7 -2
  53. package/dist/config/knex/bootstrap/20251025020452_create_master_tables.js.map +1 -0
  54. package/dist/config/knex/bootstrap/20251025021152_create_transaction_tables.d.ts.map +1 -0
  55. package/dist/{migrations → config}/knex/bootstrap/20251025021152_create_transaction_tables.js +49 -50
  56. package/dist/config/knex/bootstrap/20251025021152_create_transaction_tables.js.map +1 -0
  57. package/dist/config/knex/bootstrap/20251025021351_create_indexes.d.ts.map +1 -0
  58. package/dist/config/knex/bootstrap/20251025021351_create_indexes.js.map +1 -0
  59. package/dist/config/knex/bootstrap/20251025021416_seed_master_data.d.ts.map +1 -0
  60. package/dist/{migrations → config}/knex/bootstrap/20251025021416_seed_master_data.js +11 -6
  61. package/dist/config/knex/bootstrap/20251025021416_seed_master_data.js.map +1 -0
  62. package/dist/config/knex/bootstrap/20251025070349_create_views.d.ts.map +1 -0
  63. package/dist/{migrations → config}/knex/bootstrap/20251025070349_create_views.js +66 -14
  64. package/dist/config/knex/bootstrap/20251025070349_create_views.js.map +1 -0
  65. package/dist/config/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts.map +1 -0
  66. package/dist/config/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js +22 -0
  67. package/dist/config/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js.map +1 -0
  68. package/dist/config/knex/enhancements/20251025082220_fix_task_dependencies_columns.d.ts.map +1 -0
  69. package/dist/config/knex/enhancements/20251025082220_fix_task_dependencies_columns.js.map +1 -0
  70. package/dist/config/knex/enhancements/20251025090000_create_help_system_tables.d.ts.map +1 -0
  71. package/dist/{migrations → config}/knex/enhancements/20251025090000_create_help_system_tables.js +6 -0
  72. package/dist/config/knex/enhancements/20251025090000_create_help_system_tables.js.map +1 -0
  73. package/dist/config/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts.map +1 -0
  74. package/dist/{migrations → config}/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.js +6 -0
  75. package/dist/config/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.js.map +1 -0
  76. package/dist/config/knex/enhancements/20251025100000_seed_help_metadata.d.ts.map +1 -0
  77. package/dist/{migrations → config}/knex/enhancements/20251025100000_seed_help_metadata.js +6 -0
  78. package/dist/config/knex/enhancements/20251025100000_seed_help_metadata.js.map +1 -0
  79. package/dist/config/knex/enhancements/20251025100100_seed_remaining_use_cases.d.ts.map +1 -0
  80. package/dist/config/knex/enhancements/20251025100100_seed_remaining_use_cases.js.map +1 -0
  81. package/dist/config/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts.map +1 -0
  82. package/dist/{migrations → config}/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.js +7 -0
  83. package/dist/config/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.js.map +1 -0
  84. package/dist/config/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts.map +1 -0
  85. package/dist/config/knex/enhancements/20251027000000_add_agent_reuse_system.js +62 -0
  86. package/dist/config/knex/enhancements/20251027000000_add_agent_reuse_system.js.map +1 -0
  87. package/dist/config/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts.map +1 -0
  88. package/dist/config/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js.map +1 -0
  89. package/dist/config/knex/enhancements/20251027020000_update_agent_reusability.d.ts.map +1 -0
  90. package/dist/{migrations → config}/knex/enhancements/20251027020000_update_agent_reusability.js +6 -0
  91. package/dist/config/knex/enhancements/20251027020000_update_agent_reusability.js.map +1 -0
  92. package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.d.ts.map +1 -0
  93. package/dist/{migrations → config}/knex/enhancements/20251028000000_simplify_agent_system.js +6 -0
  94. package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.js.map +1 -0
  95. package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.d.ts +13 -0
  96. package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.d.ts.map +1 -0
  97. package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.js +48 -0
  98. package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.js.map +1 -0
  99. package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.d.ts +24 -0
  100. package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.d.ts.map +1 -0
  101. package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.js +189 -0
  102. package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.js.map +1 -0
  103. package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.d.ts +16 -0
  104. package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.d.ts.map +1 -0
  105. package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.js +65 -0
  106. package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.js.map +1 -0
  107. package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.d.ts +23 -0
  108. package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.d.ts.map +1 -0
  109. package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.js +118 -0
  110. package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.js.map +1 -0
  111. package/dist/config/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts.map +1 -0
  112. package/dist/config/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js.map +1 -0
  113. package/dist/config/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts.map +1 -0
  114. package/dist/config/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js.map +1 -0
  115. package/dist/config/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts.map +1 -0
  116. package/dist/config/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js.map +1 -0
  117. package/dist/config/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts.map +1 -0
  118. package/dist/config/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js.map +1 -0
  119. package/dist/config/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts.map +1 -0
  120. package/dist/config/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js.map +1 -0
  121. package/dist/config/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts.map +1 -0
  122. package/dist/config/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js.map +1 -0
  123. package/dist/config/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts.map +1 -0
  124. package/dist/config/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js.map +1 -0
  125. package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.d.ts +49 -0
  126. package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.d.ts.map +1 -0
  127. package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.js +864 -0
  128. package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.js.map +1 -0
  129. package/dist/config/loader.d.ts +19 -1
  130. package/dist/config/loader.d.ts.map +1 -1
  131. package/dist/config/loader.js +149 -4
  132. package/dist/config/loader.js.map +1 -1
  133. package/dist/config/types.d.ts +261 -2
  134. package/dist/config/types.d.ts.map +1 -1
  135. package/dist/config/types.js.map +1 -1
  136. package/dist/config/writer.d.ts +65 -0
  137. package/dist/config/writer.d.ts.map +1 -0
  138. package/dist/config/writer.js +139 -0
  139. package/dist/config/writer.js.map +1 -0
  140. package/dist/database.d.ts +11 -2
  141. package/dist/database.d.ts.map +1 -1
  142. package/dist/database.js +62 -6
  143. package/dist/database.js.map +1 -1
  144. package/dist/index.js +165 -35
  145. package/dist/index.js.map +1 -1
  146. package/dist/knexfile.d.ts.map +1 -1
  147. package/dist/knexfile.js +88 -12
  148. package/dist/knexfile.js.map +1 -1
  149. package/dist/tests/all-features.test.js +15 -3
  150. package/dist/tests/all-features.test.js.map +1 -1
  151. package/dist/tests/config-loader.test.d.ts +6 -0
  152. package/dist/tests/config-loader.test.d.ts.map +1 -0
  153. package/dist/tests/config-loader.test.js +201 -0
  154. package/dist/tests/config-loader.test.js.map +1 -0
  155. package/dist/tests/connection-manager-integration.test.d.ts +2 -0
  156. package/dist/tests/connection-manager-integration.test.d.ts.map +1 -0
  157. package/dist/tests/connection-manager-integration.test.js +431 -0
  158. package/dist/tests/connection-manager-integration.test.js.map +1 -0
  159. package/dist/tests/connection-manager.test.d.ts +2 -0
  160. package/dist/tests/connection-manager.test.d.ts.map +1 -0
  161. package/dist/tests/connection-manager.test.js +361 -0
  162. package/dist/tests/connection-manager.test.js.map +1 -0
  163. package/dist/tests/dump-import.test.d.ts +15 -0
  164. package/dist/tests/dump-import.test.d.ts.map +1 -0
  165. package/dist/tests/dump-import.test.js +430 -0
  166. package/dist/tests/dump-import.test.js.map +1 -0
  167. package/dist/tests/migration-idempotency.test.d.ts +2 -0
  168. package/dist/tests/migration-idempotency.test.d.ts.map +1 -0
  169. package/dist/tests/migration-idempotency.test.js +330 -0
  170. package/dist/tests/migration-idempotency.test.js.map +1 -0
  171. package/dist/tests/migration-upgrade-paths.test.d.ts +2 -0
  172. package/dist/tests/migration-upgrade-paths.test.d.ts.map +1 -0
  173. package/dist/tests/migration-upgrade-paths.test.js +248 -0
  174. package/dist/tests/migration-upgrade-paths.test.js.map +1 -0
  175. package/dist/tests/multi-project-migration.test.d.ts +17 -0
  176. package/dist/tests/multi-project-migration.test.d.ts.map +1 -0
  177. package/dist/tests/multi-project-migration.test.js +399 -0
  178. package/dist/tests/multi-project-migration.test.js.map +1 -0
  179. package/dist/tests/multi-project.test.d.ts +5 -0
  180. package/dist/tests/multi-project.test.d.ts.map +1 -0
  181. package/dist/tests/multi-project.test.js +238 -0
  182. package/dist/tests/multi-project.test.js.map +1 -0
  183. package/dist/tests/schema-migration.test.d.ts +8 -0
  184. package/dist/tests/schema-migration.test.d.ts.map +1 -0
  185. package/dist/tests/schema-migration.test.js +108 -0
  186. package/dist/tests/schema-migration.test.js.map +1 -0
  187. package/dist/tests/sql-dump-converters.test.d.ts +7 -0
  188. package/dist/tests/sql-dump-converters.test.d.ts.map +1 -0
  189. package/dist/tests/sql-dump-converters.test.js +314 -0
  190. package/dist/tests/sql-dump-converters.test.js.map +1 -0
  191. package/dist/tests/sql-dump-cross-database.test.d.ts +21 -0
  192. package/dist/tests/sql-dump-cross-database.test.d.ts.map +1 -0
  193. package/dist/tests/sql-dump-cross-database.test.js +314 -0
  194. package/dist/tests/sql-dump-cross-database.test.js.map +1 -0
  195. package/dist/tests/sql-dump-default-conversions.test.d.ts +8 -0
  196. package/dist/tests/sql-dump-default-conversions.test.d.ts.map +1 -0
  197. package/dist/tests/sql-dump-default-conversions.test.js +141 -0
  198. package/dist/tests/sql-dump-default-conversions.test.js.map +1 -0
  199. package/dist/tests/sql-dump-fk-constraints.test.d.ts +13 -0
  200. package/dist/tests/sql-dump-fk-constraints.test.d.ts.map +1 -0
  201. package/dist/tests/sql-dump-fk-constraints.test.js +381 -0
  202. package/dist/tests/sql-dump-fk-constraints.test.js.map +1 -0
  203. package/dist/tests/sql-dump-indexes.test.d.ts +12 -0
  204. package/dist/tests/sql-dump-indexes.test.d.ts.map +1 -0
  205. package/dist/tests/sql-dump-indexes.test.js +269 -0
  206. package/dist/tests/sql-dump-indexes.test.js.map +1 -0
  207. package/dist/tests/sql-dump-integration.test.d.ts +16 -0
  208. package/dist/tests/sql-dump-integration.test.d.ts.map +1 -0
  209. package/dist/tests/sql-dump-integration.test.js +342 -0
  210. package/dist/tests/sql-dump-integration.test.js.map +1 -0
  211. package/dist/tests/sql-dump-table-ordering.test.d.ts +8 -0
  212. package/dist/tests/sql-dump-table-ordering.test.d.ts.map +1 -0
  213. package/dist/tests/sql-dump-table-ordering.test.js +253 -0
  214. package/dist/tests/sql-dump-table-ordering.test.js.map +1 -0
  215. package/dist/tests/tasks.link-file-backward-compat.test.js +11 -1
  216. package/dist/tests/tasks.link-file-backward-compat.test.js.map +1 -1
  217. package/dist/tests/tasks.watch-files-action.test.js +11 -1
  218. package/dist/tests/tasks.watch-files-action.test.js.map +1 -1
  219. package/dist/tests/type-conversion.test.d.ts +8 -0
  220. package/dist/tests/type-conversion.test.d.ts.map +1 -0
  221. package/dist/tests/type-conversion.test.js +312 -0
  222. package/dist/tests/type-conversion.test.js.map +1 -0
  223. package/dist/tests/utils/test-helpers.d.ts +93 -0
  224. package/dist/tests/utils/test-helpers.d.ts.map +1 -0
  225. package/dist/tests/utils/test-helpers.js +407 -0
  226. package/dist/tests/utils/test-helpers.js.map +1 -0
  227. package/dist/tools/config.d.ts +58 -0
  228. package/dist/tools/config.d.ts.map +1 -0
  229. package/dist/tools/config.js +281 -0
  230. package/dist/tools/config.js.map +1 -0
  231. package/dist/tools/constraints.d.ts.map +1 -1
  232. package/dist/tools/constraints.js +138 -122
  233. package/dist/tools/constraints.js.map +1 -1
  234. package/dist/tools/context.d.ts.map +1 -1
  235. package/dist/tools/context.js +216 -109
  236. package/dist/tools/context.js.map +1 -1
  237. package/dist/tools/files.d.ts.map +1 -1
  238. package/dist/tools/files.js +123 -102
  239. package/dist/tools/files.js.map +1 -1
  240. package/dist/tools/tasks.d.ts.map +1 -1
  241. package/dist/tools/tasks.js +581 -518
  242. package/dist/tools/tasks.js.map +1 -1
  243. package/dist/tools/utils.d.ts +5 -0
  244. package/dist/tools/utils.d.ts.map +1 -1
  245. package/dist/tools/utils.js +176 -122
  246. package/dist/tools/utils.js.map +1 -1
  247. package/dist/types.d.ts +9 -26
  248. package/dist/types.d.ts.map +1 -1
  249. package/dist/utils/cleanup.d.ts +3 -0
  250. package/dist/utils/cleanup.d.ts.map +1 -1
  251. package/dist/utils/cleanup.js +14 -2
  252. package/dist/utils/cleanup.js.map +1 -1
  253. package/dist/utils/connection-manager.d.ts +59 -0
  254. package/dist/utils/connection-manager.d.ts.map +1 -0
  255. package/dist/utils/connection-manager.js +178 -0
  256. package/dist/utils/connection-manager.js.map +1 -0
  257. package/dist/utils/debug-logger.d.ts +8 -4
  258. package/dist/utils/debug-logger.d.ts.map +1 -1
  259. package/dist/utils/debug-logger.js +27 -7
  260. package/dist/utils/debug-logger.js.map +1 -1
  261. package/dist/utils/error-handler.d.ts +2 -2
  262. package/dist/utils/error-handler.d.ts.map +1 -1
  263. package/dist/utils/error-handler.js +10 -7
  264. package/dist/utils/error-handler.js.map +1 -1
  265. package/dist/utils/parameter-validator.d.ts.map +1 -1
  266. package/dist/utils/parameter-validator.js +36 -15
  267. package/dist/utils/parameter-validator.js.map +1 -1
  268. package/dist/utils/project-context.d.ts +111 -0
  269. package/dist/utils/project-context.d.ts.map +1 -0
  270. package/dist/utils/project-context.js +187 -0
  271. package/dist/utils/project-context.js.map +1 -0
  272. package/dist/utils/sql-dump-converters.d.ts +188 -0
  273. package/dist/utils/sql-dump-converters.d.ts.map +1 -0
  274. package/dist/utils/sql-dump-converters.js +311 -0
  275. package/dist/utils/sql-dump-converters.js.map +1 -0
  276. package/dist/utils/sql-dump.d.ts +102 -0
  277. package/dist/utils/sql-dump.d.ts.map +1 -0
  278. package/dist/utils/sql-dump.js +1550 -0
  279. package/dist/utils/sql-dump.js.map +1 -0
  280. package/dist/utils/vcs-adapter.d.ts +42 -0
  281. package/dist/utils/vcs-adapter.d.ts.map +1 -1
  282. package/dist/utils/vcs-adapter.js +154 -0
  283. package/dist/utils/vcs-adapter.js.map +1 -1
  284. package/docs/BASEADAPTER_IMPLEMENTATION.md +399 -0
  285. package/docs/DATABASE_AUTH.md +445 -0
  286. package/docs/DATABASE_MIGRATION.md +247 -0
  287. package/docs/MULTI_PROJECT_ARCHITECTURE.md +497 -0
  288. package/package.json +12 -4
  289. package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.d.ts.map +0 -1
  290. package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.js.map +0 -1
  291. package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.d.ts.map +0 -1
  292. package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.js.map +0 -1
  293. package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.d.ts.map +0 -1
  294. package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.js.map +0 -1
  295. package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.d.ts.map +0 -1
  296. package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.js.map +0 -1
  297. package/dist/migrations/knex/bootstrap/20251025070349_create_views.d.ts.map +0 -1
  298. package/dist/migrations/knex/bootstrap/20251025070349_create_views.js.map +0 -1
  299. package/dist/migrations/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts.map +0 -1
  300. package/dist/migrations/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js +0 -15
  301. package/dist/migrations/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js.map +0 -1
  302. package/dist/migrations/knex/enhancements/20251025082220_fix_task_dependencies_columns.d.ts.map +0 -1
  303. package/dist/migrations/knex/enhancements/20251025082220_fix_task_dependencies_columns.js.map +0 -1
  304. package/dist/migrations/knex/enhancements/20251025090000_create_help_system_tables.d.ts.map +0 -1
  305. package/dist/migrations/knex/enhancements/20251025090000_create_help_system_tables.js.map +0 -1
  306. package/dist/migrations/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts.map +0 -1
  307. package/dist/migrations/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.js.map +0 -1
  308. package/dist/migrations/knex/enhancements/20251025100000_seed_help_metadata.d.ts.map +0 -1
  309. package/dist/migrations/knex/enhancements/20251025100000_seed_help_metadata.js.map +0 -1
  310. package/dist/migrations/knex/enhancements/20251025100100_seed_remaining_use_cases.d.ts.map +0 -1
  311. package/dist/migrations/knex/enhancements/20251025100100_seed_remaining_use_cases.js.map +0 -1
  312. package/dist/migrations/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts.map +0 -1
  313. package/dist/migrations/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.js.map +0 -1
  314. package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts.map +0 -1
  315. package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.js +0 -34
  316. package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.js.map +0 -1
  317. package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts.map +0 -1
  318. package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js.map +0 -1
  319. package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.d.ts.map +0 -1
  320. package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.js.map +0 -1
  321. package/dist/migrations/knex/enhancements/20251028000000_simplify_agent_system.d.ts.map +0 -1
  322. package/dist/migrations/knex/enhancements/20251028000000_simplify_agent_system.js.map +0 -1
  323. package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts.map +0 -1
  324. package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js.map +0 -1
  325. package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts.map +0 -1
  326. package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js.map +0 -1
  327. package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts.map +0 -1
  328. package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js.map +0 -1
  329. package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts.map +0 -1
  330. package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js.map +0 -1
  331. package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts.map +0 -1
  332. package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js.map +0 -1
  333. package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts.map +0 -1
  334. package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js.map +0 -1
  335. package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts.map +0 -1
  336. package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js.map +0 -1
  337. /package/dist/{migrations → config}/knex/bootstrap/20251025020452_create_master_tables.d.ts +0 -0
  338. /package/dist/{migrations → config}/knex/bootstrap/20251025021152_create_transaction_tables.d.ts +0 -0
  339. /package/dist/{migrations → config}/knex/bootstrap/20251025021351_create_indexes.d.ts +0 -0
  340. /package/dist/{migrations → config}/knex/bootstrap/20251025021351_create_indexes.js +0 -0
  341. /package/dist/{migrations → config}/knex/bootstrap/20251025021416_seed_master_data.d.ts +0 -0
  342. /package/dist/{migrations → config}/knex/bootstrap/20251025070349_create_views.d.ts +0 -0
  343. /package/dist/{migrations → config}/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts +0 -0
  344. /package/dist/{migrations → config}/knex/enhancements/20251025082220_fix_task_dependencies_columns.d.ts +0 -0
  345. /package/dist/{migrations → config}/knex/enhancements/20251025082220_fix_task_dependencies_columns.js +0 -0
  346. /package/dist/{migrations → config}/knex/enhancements/20251025090000_create_help_system_tables.d.ts +0 -0
  347. /package/dist/{migrations → config}/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts +0 -0
  348. /package/dist/{migrations → config}/knex/enhancements/20251025100000_seed_help_metadata.d.ts +0 -0
  349. /package/dist/{migrations → config}/knex/enhancements/20251025100100_seed_remaining_use_cases.d.ts +0 -0
  350. /package/dist/{migrations → config}/knex/enhancements/20251025100100_seed_remaining_use_cases.js +0 -0
  351. /package/dist/{migrations → config}/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts +0 -0
  352. /package/dist/{migrations → config}/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts +0 -0
  353. /package/dist/{migrations → config}/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts +0 -0
  354. /package/dist/{migrations → config}/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js +0 -0
  355. /package/dist/{migrations → config}/knex/enhancements/20251027020000_update_agent_reusability.d.ts +0 -0
  356. /package/dist/{migrations → config}/knex/enhancements/20251028000000_simplify_agent_system.d.ts +0 -0
  357. /package/dist/{migrations → config}/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts +0 -0
  358. /package/dist/{migrations → config}/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js +0 -0
  359. /package/dist/{migrations → config}/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts +0 -0
  360. /package/dist/{migrations → config}/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js +0 -0
  361. /package/dist/{migrations → config}/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts +0 -0
  362. /package/dist/{migrations → config}/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js +0 -0
  363. /package/dist/{migrations → config}/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts +0 -0
  364. /package/dist/{migrations → config}/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js +0 -0
  365. /package/dist/{migrations → config}/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts +0 -0
  366. /package/dist/{migrations → config}/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js +0 -0
  367. /package/dist/{migrations → config}/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts +0 -0
  368. /package/dist/{migrations → config}/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js +0 -0
  369. /package/dist/{migrations → config}/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts +0 -0
  370. /package/dist/{migrations → config}/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js +0 -0
@@ -0,0 +1,497 @@
1
+ # Multi-Project Support Architecture (v3.7.0)
2
+
3
+ **Status**: Architectural decisions finalized
4
+ **Version**: 3.7.0
5
+ **Last Updated**: 2025-11-01
6
+
7
+ ## Executive Summary
8
+
9
+ Multi-project support enables a single MCP Shared Context Server database to manage data for multiple projects with strict isolation guarantees. The architecture prioritizes **stability**, **performance**, and **MCP compliance** through config-driven detection, in-memory caching, and universal project filtering.
10
+
11
+ ### Key Principles
12
+
13
+ 1. **Config.toml as Single Source of Truth**: After first run, project identity is explicit and stable
14
+ 2. **Zero User Intervention**: Auto-detection with persistent configuration
15
+ 3. **Session-Fixed Project Identity**: In-memory caching eliminates repeated database queries
16
+ 4. **Universal Data Isolation**: Every transaction query filters by project_id
17
+ 5. **MCP Compliance**: Structured logging only, no console.* methods
18
+
19
+ ---
20
+
21
+ ## Architectural Decisions (8 Total)
22
+
23
+ ### Decision #1: Detection Priority Strategy
24
+
25
+ **Key**: `multi-project/detection-priority-strategy`
26
+ **Layer**: cross-cutting
27
+ **Priority**: CRITICAL
28
+
29
+ **Decision**: Project detection follows config.toml → (git/metadata → auto-write to config.toml) priority. After first run, config.toml ALWAYS contains project_name and becomes the authoritative source.
30
+
31
+ **Rationale**: Config.toml as single source of truth ensures predictability and stability. Auto-write on first detection eliminates manual configuration burden while maintaining explicit configuration benefits. Once written, config.toml never changes during normal operation, preventing race conditions from repeated detection attempts.
32
+
33
+ **Alternatives Considered**:
34
+ - Git-only detection - unreliable for non-git projects, no stability guarantees
35
+ - Manual-only config - poor UX, requires user intervention
36
+ - Database-stored project name - coupling data to config, migration complexity
37
+ - Detection on every call - performance penalty, inconsistent behavior during git operations
38
+
39
+ **Tradeoffs**:
40
+ - **Gains**: Stability after first run, explicit configuration benefits, intelligent defaults for common cases (git repos), zero user intervention required
41
+ - **Sacrifices**: Initial file write operation, config.toml becomes mandatory for all projects
42
+ - **Long-term**: Simplified debugging (config.toml is authoritative), easier multi-project switching (edit one file), version control friendly
43
+
44
+ **Related Constraints**: C23, C24, C32, C33, C46
45
+
46
+ ---
47
+
48
+ ### Decision #2: Auto-Initialization with Config Persistence
49
+
50
+ **Key**: `multi-project/auto-initialization-config`
51
+ **Layer**: cross-cutting
52
+ **Priority**: CRITICAL
53
+
54
+ **Decision**: On first MCP server start, if config.toml lacks project_name, detect from git/metadata and automatically write to config.toml. Subsequent runs read config.toml exclusively, never re-detect.
55
+
56
+ **Rationale**: One-time detection with persistent configuration combines best of both worlds: zero user intervention for initial setup, guaranteed stability for all subsequent operations. Writing to config.toml ensures project identity never drifts based on git state changes (branch switches, repo moves).
57
+
58
+ **Why Auto-Write Instead of Just Using Detected Value?**
59
+ 1. **Explicit Configuration**: Users can inspect config.toml to verify project identity
60
+ 2. **Prevents Drift**: Git state changes (branch switches, .git directory moves) don't affect project identity
61
+ 3. **Version Control Friendly**: Config.toml can be committed to track project name
62
+ 4. **Troubleshooting Anchor**: Always check config.toml first when debugging project issues
63
+
64
+ **What Happens If User Manually Edits config.toml After Auto-Write?**
65
+ - Config.toml becomes new source of truth immediately
66
+ - Next MCP server start uses edited value
67
+ - Supports intentional project renaming or multi-workspace setups where user wants different project names than git repo name
68
+
69
+ **Alternatives Considered**:
70
+ - Always re-detect on startup - unstable, changes with git operations
71
+ - Prompt user on missing config - poor automation, breaks headless usage
72
+ - Use default fallback name - loses project context
73
+ - Store in database only - hidden configuration, harder to debug
74
+
75
+ **Tradeoffs**:
76
+ - **Gains**: Stability (config never changes after initialization), transparency (config.toml is human-readable), automation (no prompts), session consistency
77
+ - **Sacrifices**: File system write on first run, requires config.toml management for project switching
78
+ - **Long-term**: Simplified troubleshooting, easier CI/CD (commit config.toml), supports multi-workspace setups
79
+
80
+ **Related Constraints**: C23, C24, C32, C33
81
+
82
+ ---
83
+
84
+ ### Decision #3: Master Table Sharing with Transaction Isolation
85
+
86
+ **Key**: `multi-project/master-table-sharing`
87
+ **Layer**: data
88
+ **Priority**: CRITICAL
89
+
90
+ **Decision**: All master tables (m_*) are project-shared with project_id column. Transaction tables (t_*) are project-isolated with FOREIGN KEY to m_projects. Views automatically filter by project context.
91
+
92
+ **Rationale**: Shared master tables enable cross-project references (e.g., same agent working on multiple projects, shared constraint categories) while maintaining data integrity via foreign keys. Project isolation at transaction level prevents accidental cross-contamination. Single database design simplifies backup, reduces connection overhead, enables future cross-project analytics.
93
+
94
+ **Alternatives Considered**:
95
+ - Separate databases per project - connection overhead, backup complexity, no cross-project queries
96
+ - No project_id in master tables - lose cross-project context
97
+ - Complete isolation - duplicate master data, sync issues
98
+ - Schema-per-project in PostgreSQL - tooling complexity, migration challenges
99
+
100
+ **Tradeoffs**:
101
+ - **Gains**: Single database simplicity, cross-project agent tracking, foreign key integrity, efficient storage (shared enums/categories)
102
+ - **Sacrifices**: Must filter every transaction query by project_id, risk of cross-project data leaks if filters missing
103
+ - **Long-term**: Easier multi-project analytics, simpler backup/restore, supports future features like project templates
104
+
105
+ **Related Constraints**: C25, C26, C27, C28, C29, C35
106
+
107
+ ---
108
+
109
+ ### Decision #4: Config Inheritance Pattern
110
+
111
+ **Key**: `multi-project/config-inheritance`
112
+ **Layer**: infrastructure
113
+ **Priority**: HIGH
114
+
115
+ **Decision**: Auto-deletion settings (retention periods, weekend awareness) are global configuration. Project-specific overrides stored in m_project_config table (future enhancement).
116
+
117
+ **Rationale**: Most retention policies are organizational standards, not project-specific. Global configuration reduces complexity for v1 implementation while maintaining extensibility. Projects inherit global defaults unless overridden. Simplifies initial migration and user mental model.
118
+
119
+ **Alternatives Considered**:
120
+ - All config project-specific - over-engineering for v1
121
+ - No inheritance mechanism - future inflexibility
122
+ - Config templates - premature abstraction
123
+ - Hardcoded per-project defaults - unmaintainable
124
+
125
+ **Tradeoffs**:
126
+ - **Gains**: Simple mental model (one config to rule them all), easy global policy updates, reduced storage
127
+ - **Sacrifices**: Cannot set different retention per project initially, requires future enhancement for project-specific overrides
128
+ - **Long-term**: Inherit-then-override pattern supports compliance requirements (e.g., legal projects retain longer)
129
+
130
+ **Related Constraints**: C40
131
+
132
+ ---
133
+
134
+ ### Decision #5: Knex Migration with Zero Data Loss
135
+
136
+ **Key**: `multi-project/migration-approach`
137
+ **Layer**: infrastructure
138
+ **Priority**: CRITICAL
139
+
140
+ **Decision**: Use Knex migration system with ALTER TABLE statements to add project_id columns, create m_projects table, backfill existing data as 'default' project, add foreign key constraints. Zero data loss guaranteed.
141
+
142
+ **Rationale**: Knex migrations proven reliable across SQLite/MySQL/PostgreSQL (existing v3.6.x track record). ALTER TABLE approach preserves all existing data while adding multi-project structure. Backfill to 'default' project ensures backward compatibility for single-project users. Migration can be rolled back if issues detected.
143
+
144
+ **Alternatives Considered**:
145
+ - Dump-and-restore - risky, potential data loss
146
+ - Manual SQL scripts - error-prone, no rollback
147
+ - New database schema - breaks existing installations
148
+ - Application-level migration - slower, complex error handling
149
+
150
+ **Tradeoffs**:
151
+ - **Gains**: Zero data loss, rollback capability, tested migration framework, cross-database compatibility
152
+ - **Sacrifices**: Migration time scales with data volume, requires exclusive database access during migration
153
+ - **Long-term**: Established pattern for future schema changes, migration history tracked in knex_migrations table
154
+
155
+ **Related Constraints**: C34, C11, C13
156
+
157
+ ---
158
+
159
+ ### Decision #6: Database-Specific Primary Key Migration
160
+
161
+ **Key**: `multi-project/database-specific-pk-migration`
162
+ **Layer**: infrastructure
163
+ **Priority**: HIGH
164
+
165
+ **Decision**: For databases requiring composite primary keys (project_id, original_pk), handle SQLite (recreate table), MySQL/PostgreSQL (DROP/ADD PRIMARY KEY) differences explicitly in migration code using Knex client detection.
166
+
167
+ **Rationale**: SQLite cannot ALTER TABLE to change primary keys (requires table recreation). MySQL/PostgreSQL support DROP PRIMARY KEY + ADD PRIMARY KEY in single transaction. Knex client.config.client property enables database-specific migration logic. Single migration file with conditional branching maintains maintainability.
168
+
169
+ **Alternatives Considered**:
170
+ - Separate migration files per database - maintenance nightmare
171
+ - Ignore primary key changes - data integrity risk
172
+ - Recreate all tables - unnecessary for MySQL/PostgreSQL
173
+ - Use AUTO_INCREMENT workaround - breaks foreign key references
174
+
175
+ **Tradeoffs**:
176
+ - **Gains**: Optimal migration strategy per database, single migration file, no data loss
177
+ - **Sacrifices**: Increased migration complexity, longer SQLite migration time (table recreation), requires careful testing per database
178
+ - **Long-term**: Pattern established for future composite key migrations, documented approach for contributors
179
+
180
+ **Related Constraints**: C9, C11, C15
181
+
182
+ ---
183
+
184
+ ### Decision #7: MCP-Compliant Logging (NEW)
185
+
186
+ **Key**: `multi-project/mcp-compliant-logging`
187
+ **Layer**: infrastructure
188
+ **Priority**: CRITICAL
189
+
190
+ **Decision**: All logging MUST use MCP server.logger methods (info, warn, error, debug). Absolutely NO console.log/console.warn/console.error in production code. Return structured JSON-only responses from tools.
191
+
192
+ **Rationale**: MCP specification requires structured logging via server.logger for proper client-side handling. Console methods bypass MCP protocol, causing log messages to appear as raw stderr/stdout, breaking JSON-RPC communication. Server.logger provides log levels, metadata objects, and client-side filtering. Structured responses enable better error handling and debugging.
193
+
194
+ **Alternatives Considered**:
195
+ - console.* methods - violates MCP spec, breaks clients, logs appear as raw stderr/stdout
196
+ - Custom logger wrapper - reinventing wheel, compatibility issues with MCP clients
197
+ - Mixed approach - inconsistent, debugging nightmare, violates principle of least surprise
198
+ - No logging - impossible to troubleshoot production issues
199
+
200
+ **Tradeoffs**:
201
+ - **Gains**: MCP spec compliance, structured metadata (timestamps, levels, context), client-side filtering, better debugging experience, proper error propagation to clients
202
+ - **Sacrifices**: More verbose code (server.logger.info vs console.log), must pass server instance to utility functions, learning curve for developers unfamiliar with MCP logging patterns
203
+ - **Long-term**: Better observability, compatible with future MCP logging standards, enables log aggregation and monitoring tools
204
+
205
+ **Related Constraints**: C22, C42, C43, C45
206
+
207
+ ---
208
+
209
+ ### Decision #8: In-Memory Project Caching (NEW)
210
+
211
+ **Key**: `multi-project/in-memory-project-caching`
212
+ **Layer**: business
213
+ **Priority**: CRITICAL
214
+
215
+ **Decision**: Project ID cached in memory via ProjectContext singleton after first detection. Never re-query database for project_id during MCP server session. Session-fixed (restart required to switch projects).
216
+
217
+ **Rationale**: Querying database for project_id on every tool call (potentially 100+ times per conversation) creates massive performance penalty. In-memory caching reduces database load by 99%, simplifies code (no project_id parameter threading), guarantees session consistency. Project switching is rare operation, restart is acceptable trade-off for performance.
218
+
219
+ **Performance Analysis**:
220
+ - **Without caching**: 100-200 tool calls per conversation × 5-15ms latency = 500-3000ms total overhead
221
+ - **With singleton caching**: One query on initialization (5-15ms), then zero overhead
222
+ - **Database load reduction**: 99%+ (one query vs hundreds)
223
+
224
+ **Alternatives Considered**:
225
+ - Query every time - 100+ DB queries per conversation, cumulative 500-3000ms latency
226
+ - Store in DB config table - still requires query, cache invalidation complexity
227
+ - Thread project_id through all function calls - pollutes 50+ functions with extra parameter, error-prone
228
+ - Use global variable - not testable, singleton pattern better (can reset in tests)
229
+
230
+ **Tradeoffs**:
231
+ - **Gains**: Massive performance improvement (one query vs hundreds), session consistency guaranteed, simpler code (no parameter threading), testable (singleton can be reset)
232
+ - **Sacrifices**: Must restart MCP server to switch projects, singleton pattern adds slight complexity, memory overhead (negligible: one integer + one string)
233
+ - **Long-term**: Enables future optimizations (cache project config, metadata), supports performance monitoring (track cache hit rate)
234
+
235
+ **Related Constraints**: C21, C30, C31, C41, C44, C47
236
+
237
+ ---
238
+
239
+ ## Decision Linking Diagram
240
+
241
+ ```
242
+ ┌─────────────────────────────────────────────────────────────────────┐
243
+ │ MULTI-PROJECT ARCHITECTURE │
244
+ │ (v3.7.0) │
245
+ └─────────────────────────────────────────────────────────────────────┘
246
+
247
+ ┌──────────────┴──────────────┐
248
+ │ │
249
+ ┌───────▼────────┐ ┌────────▼────────┐
250
+ │ Configuration │ │ Performance │
251
+ │ Strategy │ │ Optimization │
252
+ └───────┬────────┘ └────────┬────────┘
253
+ │ │
254
+ ┌───────────┼───────────┐ ┌─────────┼─────────┐
255
+ │ │ │ │ │ │
256
+ ┌────▼───┐ ┌───▼────┐ ┌──▼───┐ ┌▼─────┐ ┌─▼──────┐ │
257
+ │ D1 │ │ D2 │ │ D7 │ │ D8 │ │ D4 │ │
258
+ │Detect │ │ Auto- │ │ MCP │ │Cache │ │Config │ │
259
+ │Priority│ │ Init │ │ Log │ │Proj │ │Inherit │ │
260
+ └────┬───┘ └───┬────┘ └──┬───┘ └┬─────┘ └────────┘ │
261
+ │ │ │ │ │
262
+ └──────────┼───────────┴──────┘ │
263
+ │ │
264
+ ┌──────▼───────┐ │
265
+ │ Data Layer │◄─────────────────────────────┘
266
+ │ Strategy │
267
+ └──────┬───────┘
268
+
269
+ ┌──────────┼──────────┐
270
+ │ │ │
271
+ ┌────▼───┐ ┌──▼────┐ ┌──▼───┐
272
+ │ D3 │ │ D5 │ │ D6 │
273
+ │Master │ │Migr. │ │DB-Sp │
274
+ │Tables │ │Knex │ │PK Mg │
275
+ └────────┘ └───────┘ └──────┘
276
+
277
+ Legend:
278
+ D1 = Detection Priority Strategy (CRITICAL)
279
+ D2 = Auto-Initialization Config (CRITICAL)
280
+ D3 = Master Table Sharing (CRITICAL)
281
+ D4 = Config Inheritance (HIGH)
282
+ D5 = Migration Approach (CRITICAL)
283
+ D6 = Database-Specific PK Migration (HIGH)
284
+ D7 = MCP-Compliant Logging (CRITICAL)
285
+ D8 = In-Memory Project Caching (CRITICAL)
286
+ ```
287
+
288
+ ### Decision Dependencies
289
+
290
+ **Configuration Strategy** (Root):
291
+ - D1 → D2: Detection priority drives auto-initialization logic
292
+ - D2 → D7: Auto-init must use MCP-compliant logging
293
+ - D1 + D2 → D8: Stable config enables session-fixed caching
294
+
295
+ **Performance Optimization** (Root):
296
+ - D8 → D3: In-memory cache requires project_id from m_projects
297
+ - D8 → D4: Cached project_id used for config inheritance lookups
298
+
299
+ **Data Layer Strategy** (Dependent):
300
+ - D3 → D5: Master table design drives migration approach
301
+ - D5 → D6: Migration strategy requires database-specific PK handling
302
+ - D3 → D7: Data layer operations must use MCP logging
303
+
304
+ ---
305
+
306
+ ## Architectural Constraints (25 Total)
307
+
308
+ ### CRITICAL Constraints (12)
309
+
310
+ #### Configuration & Initialization
311
+
312
+ **C23**: Config.toml MUST be written on first MCP server run if missing project_name field. Detection happens once, writes to config.toml, then config becomes authoritative source for all subsequent runs.
313
+
314
+ **C24**: After first run, config.toml is the ONLY source for project_name. Code MUST NOT re-detect from git/metadata on subsequent runs. Prevents drift and ensures session stability.
315
+
316
+ **C32**: Config.toml auto-write MUST be atomic. Use temp file + rename pattern to prevent partial writes if process crashes during initialization. No corrupted config files allowed.
317
+
318
+ #### Data Isolation & Security
319
+
320
+ **C25**: Every transaction table query (t_decisions, t_file_changes, t_constraints, t_tasks, etc.) MUST filter by project_id. No exceptions. Prevents accidental cross-project data leaks.
321
+
322
+ **C21**: All transaction table queries MUST include WHERE project_id = cached_value. No cross-project queries except explicit _reference_project parameter.
323
+
324
+ **C26**: All transaction tables (t_*) MUST have project_id column with FOREIGN KEY constraint to m_projects(id). Ensures referential integrity and prevents orphaned records.
325
+
326
+ **C27**: Cross-project references (e.g., task linking to decision in different project) REQUIRE explicit _reference_project parameter. Implicit cross-project access is prohibited for security.
327
+
328
+ **C29**: Before INSERT/UPDATE/DELETE on transaction tables, code MUST validate project_id matches current session project. Fail-fast validation required to prevent accidental cross-project writes.
329
+
330
+ **C40**: Auto-deletion cleanup MUST respect project boundaries. Cleanup operations filter by project_id before deleting old messages/file changes. No cross-project cleanup allowed.
331
+
332
+ #### MCP Compliance
333
+
334
+ **C22**: NO console.log() or console.warn() in production code. Use MCP SDK logger for all output. Return structured JSON responses only.
335
+
336
+ **C42**: Production code MUST NOT use console.log, console.warn, console.error, or console.debug. Use server.logger methods (info, warn, error, debug) exclusively for MCP compliance.
337
+
338
+ **C43**: All MCP tool responses MUST return structured JSON objects only. No plaintext error messages or status strings as top-level responses. Enables proper error handling by clients.
339
+
340
+ #### Performance
341
+
342
+ **C41**: Project ID MUST be cached in ProjectContext singleton after first detection. Code MUST NOT query database for project_id on every tool call. Query once per session only.
343
+
344
+ #### Migration
345
+
346
+ **C34**: Migration to multi-project schema MUST backfill existing data as 'default' project. All existing records get project_id=1 (default project). Zero data loss required.
347
+
348
+ ---
349
+
350
+ ### HIGH Constraints (13)
351
+
352
+ #### Architecture & Design
353
+
354
+ **C28**: Master tables (m_agents, m_layers, m_tags, etc.) MUST be project-shared. Code must handle project_id column presence but not filter master table queries by project.
355
+
356
+ **C30**, **C44**: ProjectContext singleton MUST provide getProjectId() and getProjectName() methods. Code must use singleton instead of direct database queries for project information.
357
+
358
+ **C31**: MCP server restart is REQUIRED to switch projects. Runtime project switching is explicitly not supported. Document this limitation clearly in user-facing documentation.
359
+
360
+ **C33**: If config.toml exists but lacks [project] section or project_name field, treat as missing and auto-write. Preserve other config sections (database, retention, etc.) during write.
361
+
362
+ **C35**: Views (v_tagged_decisions, v_task_board, etc.) MUST automatically filter by current project context. View definitions must use ProjectContext.getProjectId() or equivalent.
363
+
364
+ **C37**: Project names MUST be validated (alphanumeric + hyphens/underscores only, max 64 chars). Reject special characters to prevent injection attacks in SQL identifiers or file paths.
365
+
366
+ **C39**: Database indexes on transaction tables MUST include project_id as first column in composite indexes. Example: (project_id, ts) instead of (ts) for time-based queries. Optimizes project-filtered queries.
367
+
368
+ #### Logging & Documentation
369
+
370
+ **C45**: Logging calls MUST use structured metadata objects as second parameter. Example: server.logger.info('Project detected', { project_name, source: 'git' }). Enables better filtering and analysis.
371
+
372
+ **C46**: Config.toml auto-write behavior MUST be documented in README.md and ARCHITECTURE.md. Explain detection priority, first-run behavior, and how to manually override project name.
373
+
374
+ #### Testing
375
+
376
+ **C47**: All multi-project tests MUST reset ProjectContext singleton between test cases. Use ProjectContext.reset() or equivalent to ensure test isolation.
377
+
378
+ **Integration Test Coverage**: Integration tests MUST cover multi-project scenarios: (1) Create projects A and B. (2) Add data to both. (3) Switch context to A, verify only A's data visible. (4) Switch to B, verify isolation. Prevents regression.
379
+
380
+ ---
381
+
382
+ ### MEDIUM Constraints (2)
383
+
384
+ **C36**: Project detection from git MUST use safe git commands (git rev-parse --show-toplevel, git config --get remote.origin.url). Handle git command failures gracefully, fall back to directory name.
385
+
386
+ **C38**: Stats tool MUST aggregate data by project. Global stats (all projects) require explicit all_projects=true parameter. Default behavior is current-project-only stats.
387
+
388
+ ---
389
+
390
+ ## Implementation Checklist
391
+
392
+ ### Phase 1: Foundation (Est. AI Time: 25-30 min, Tokens: 18k-25k)
393
+
394
+ - [ ] Create ProjectContext singleton class
395
+ - getProjectId(): number
396
+ - getProjectName(): string
397
+ - reset(): void (for testing)
398
+ - [ ] Implement config.toml detection & auto-write
399
+ - Atomic write with temp file + rename
400
+ - Preserve existing config sections
401
+ - Validate project_name (alphanumeric + hyphens/underscores, max 64 chars)
402
+ - [ ] Replace all console.* with server.logger.*
403
+ - Audit codebase for console.log/warn/error/debug
404
+ - Add structured metadata objects
405
+ - Update error handling to return JSON
406
+
407
+ ### Phase 2: Migration (Est. AI Time: 35-40 min, Tokens: 25k-35k)
408
+
409
+ - [ ] Create Knex migration file
410
+ - Create m_projects table
411
+ - Add project_id columns to all transaction tables
412
+ - Backfill 'default' project (project_id=1)
413
+ - Add FOREIGN KEY constraints
414
+ - Database-specific PK migration (SQLite vs MySQL/PostgreSQL)
415
+ - Update indexes (project_id as first column)
416
+ - [ ] Test migration on all databases (SQLite, MySQL, PostgreSQL)
417
+ - [ ] Create rollback migration
418
+
419
+ ### Phase 3: Query Updates (Est. AI Time: 45-55 min, Tokens: 30k-45k)
420
+
421
+ - [ ] Update all transaction table queries
422
+ - Add WHERE project_id = ProjectContext.getProjectId()
423
+ - Decision tool (set, get, list, search_*)
424
+ - File tool (record, get)
425
+ - Constraint tool (add, get)
426
+ - Task tool (create, update, get, list, move, etc.)
427
+ - [ ] Update views to filter by project_id
428
+ - [ ] Update cleanup logic (auto-deletion respects project boundaries)
429
+ - [ ] Add fail-fast validation for INSERT/UPDATE/DELETE
430
+
431
+ ### Phase 4: Testing (Est. AI Time: 30-35 min, Tokens: 20k-30k)
432
+
433
+ - [ ] Unit tests for ProjectContext singleton
434
+ - [ ] Integration tests for multi-project isolation
435
+ - [ ] Migration tests (up/down on all databases)
436
+ - [ ] Performance tests (verify caching effectiveness)
437
+ - [ ] Test config.toml auto-write edge cases
438
+
439
+ ### Phase 5: Documentation (Est. AI Time: 15-20 min, Tokens: 10k-15k)
440
+
441
+ - [ ] Update README.md (auto-write behavior, project switching)
442
+ - [ ] Update ARCHITECTURE.md (decision records, constraints)
443
+ - [ ] Update TOOL_REFERENCE.md (new parameters, behaviors)
444
+ - [ ] Create migration guide for existing users
445
+
446
+ ---
447
+
448
+ ## Future Enhancements
449
+
450
+ ### v3.8.0: Project-Specific Config Overrides
451
+ - m_project_config table for per-project retention settings
452
+ - Inherit-then-override pattern
453
+ - API: config tool with project parameter
454
+
455
+ ### v3.9.0: Cross-Project Analytics
456
+ - Global stats with all_projects=true
457
+ - Cross-project dependency tracking
458
+ - Project comparison reports
459
+
460
+ ### v4.0.0: Multi-Tenant Support
461
+ - Project access control (read/write permissions)
462
+ - Project groups/workspaces
463
+ - Shared project templates
464
+
465
+ ---
466
+
467
+ ## Token Efficiency Notes
468
+
469
+ **Total Decisions**: 8 (avg 300 tokens each = 2,400 tokens)
470
+ **Total Constraints**: 25 (avg 80 tokens each = 2,000 tokens)
471
+ **Total Architecture Documentation**: ~8,000 tokens
472
+
473
+ **Efficiency Strategies**:
474
+ - Decision context stored separately (add_decision_context)
475
+ - Constraints reference decision keys (no duplication)
476
+ - Structured templates reduce verbosity
477
+ - Link relationships instead of re-explaining
478
+
479
+ **Estimated Implementation**:
480
+ - **Total AI Time**: 150-180 minutes (2.5-3 hours)
481
+ - **Total Tokens**: 103k-150k tokens
482
+ - **Human Equivalent**: ~15-20 hours of manual work
483
+
484
+ ---
485
+
486
+ ## References
487
+
488
+ - **CLAUDE.md**: Project overview, current status
489
+ - **SHARED_CONCEPTS.md**: Layer definitions, enum values
490
+ - **TOOL_REFERENCE.md**: MCP tool parameters, examples
491
+ - **ARCHITECTURE.md**: Database schema, migration system
492
+
493
+ ---
494
+
495
+ **Document Version**: 1.0.0
496
+ **Last Review**: 2025-11-01
497
+ **Next Review**: After v3.7.0 implementation complete
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sqlew",
3
- "version": "3.6.10",
3
+ "version": "3.7.0",
4
4
  "description": "MCP server for efficient context sharing between Claude Code sub-agents (60-70% token reduction), Kanban Task Watcher, Decision or Constraint Context, and streamlined documentation",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -27,10 +27,14 @@
27
27
  "dev": "tsc --watch",
28
28
  "clean": "rm -rf dist",
29
29
  "rebuild": "npm run clean && npm run build",
30
- "test": "npm run build && node --test dist/tests/tasks.dependencies.test.js",
31
30
  "test:all-features": "npm run build && node dist/tests/all-features.test.js",
32
- "test:migrations": "npm run build && node dist/tests/migrations/test-v3.2-migration.js",
31
+ "test:docker": "npm run build && node --test dist/tests/multi-project-migration.test.js dist/tests/sql-dump-fk-constraints.test.js",
32
+ "test:cross-db": "npm run build && node --test dist/tests/sql-dump-cross-database.test.js",
33
+ "test:migrations": "npm run test:migration-upgrade-paths && npm run test:migration-idempotency",
34
+ "test:migration-upgrade-paths": "npm run build && node --test dist/tests/migration-upgrade-paths.test.js",
35
+ "test:migration-idempotency": "npm run build && node --test dist/tests/migration-idempotency.test.js",
33
36
  "test:migrations:all": "npm run build && node dist/tests/migrations/test-all-versions-real.js",
37
+ "test:migrations:ci": "npm run build && SKIP_DOCKER_TESTS=true node dist/tests/migrations/test-all-versions-real.js",
34
38
  "prepare": "husky",
35
39
  "prepublishOnly": "npm run rebuild",
36
40
  "knex": "tsx node_modules/.bin/knex --knexfile src/knexfile.ts",
@@ -40,7 +44,8 @@
40
44
  "migrate:rollback:all": "npm run knex migrate:rollback --all",
41
45
  "migrate:status": "npm run knex migrate:status",
42
46
  "seed:make": "npm run knex seed:make",
43
- "seed:run": "npm run knex seed:run"
47
+ "seed:run": "npm run knex seed:run",
48
+ "db:dump": "node dist/cli.js db:dump"
44
49
  },
45
50
  "engines": {
46
51
  "node": ">=18.0.0"
@@ -72,6 +77,7 @@
72
77
  "chokidar": "^4.0.3",
73
78
  "ignore": "^7.0.5",
74
79
  "knex": "^3.1.0",
80
+ "knex-schema-inspector": "^3.1.0",
75
81
  "smol-toml": "^1.4.2"
76
82
  },
77
83
  "devDependencies": {
@@ -79,6 +85,8 @@
79
85
  "@types/knex": "^0.15.2",
80
86
  "@types/node": "^20.0.0",
81
87
  "husky": "^9.1.7",
88
+ "mysql2": "^3.15.3",
89
+ "pg": "^8.16.3",
82
90
  "tsx": "^4.20.6",
83
91
  "typescript": "^5.0.0"
84
92
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"20251025020452_create_master_tables.d.ts","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025020452_create_master_tables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA8ElD;AAGD,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAapD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"20251025020452_create_master_tables.js","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025020452_create_master_tables.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"20251025021152_create_transaction_tables.d.ts","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025021152_create_transaction_tables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA0QlD;AAGD,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBpD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"20251025021152_create_transaction_tables.js","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025021152_create_transaction_tables.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,+EAA+E;IAC/E,6CAA6C;IAC7C,+EAA+E;IAE/E,4BAA4B;IAC5B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;YACrD,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;YAClC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;YACxD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAClC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACpD,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACpD,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC/C,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC;YACxE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6BAA6B;IAC7B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE;YAC7D,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;YAClC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;YACxD,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YACpC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACpD,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACpD,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC/C,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACrC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,2BAA2B;IAC3B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE;YAC5D,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;YACxD,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAClC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACpD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kCAAkC;IAClC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE;YACzD,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;YACjE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAChD,KAAK,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iCAAiC;IACjC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;YAC3D,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;YACjE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACpD,KAAK,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;IACjB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1D,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAC/B,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACzD,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC7B,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACvD,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,2CAA2C;YACpF,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC;YAC9E,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB;YAC7C,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACvC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uBAAuB;IACvB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE;YACxD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAClD,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,mCAAmC;YAC/E,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACpD,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc;IACd,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE;YACvD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC7B,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC;YACtE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5C,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC;YAC9E,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACxC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACpD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oCAAoC;IACpC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;YAC3D,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAC/B,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;YAC9D,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAChD,KAAK,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe;IACf,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE;YACxD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACpD,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9C,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC5B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB;YAC7C,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC,KAAK,EAAE,EAAE;YAC9D,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;YAC/B,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4BAA4B;IAC5B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE;YAC5D,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;YACjE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,aAAa;YACpD,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc;YACvC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAC/B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACpD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+BAA+B;IAC/B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YACjD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YACzC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YAClD,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;YAC5D,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACvC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACnC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAC7D,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YACrC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAC/D,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACpD,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1C,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1C,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe;IACf,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE;YACxD,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;YACnC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,OAAO;YAC/C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8BAA8B;IAC9B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;YACrD,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAClD,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAChD,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sBAAsB;IACtB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/D,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAClD,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;YACjE,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,wBAAwB;IACxB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,EAAE;YACjE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAClD,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAC/B,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;YAC9D,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;IAClB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;YAC3D,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAClD,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAClD,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mDAAmD;IACnD,0FAA0F;IAC1F,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;;GASd,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;AAC3D,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,+CAA+C;IAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;IAC3D,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IACzD,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;IAC/D,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;IAC7D,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACnD,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACtD,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;IAC1D,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC;IAC5D,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACtD,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IACzD,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IACrD,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACtD,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IACxD,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IACzD,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACvD,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;IAC1D,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;IAC3D,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAEnD,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;AAC3D,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"20251025021351_create_indexes.d.ts","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025021351_create_indexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AA4CjC,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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"20251025021351_create_indexes.js","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025021351_create_indexes.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"20251025021416_seed_master_data.d.ts","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/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,CA2DlD;AAGD,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CASpD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"20251025021416_seed_master_data.js","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025021416_seed_master_data.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,+EAA+E;IAC/E,uBAAuB;IACvB,oEAAoE;IACpE,+EAA+E;IAE/E,iDAAiD;IACjD,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;GAOd,CAAC,CAAC;IAEH,6BAA6B;IAC7B,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;GAOd,CAAC,CAAC;IAEH,mBAAmB;IACnB,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;GAUd,CAAC,CAAC;IAEH,8BAA8B;IAC9B,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;GAKd,CAAC,CAAC;IAEH,qBAAqB;IACrB,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;GAQd,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;AACnD,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,wBAAwB;IACxB,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,CAAC;IACpC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,IAAI,CAAC,yBAAyB,CAAC,CAAC,GAAG,EAAE,CAAC;IAC5C,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;IAE7B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AACvC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"20251025070349_create_views.d.ts","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"20251025070349_create_views.js","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"20251025081221_add_link_type_to_task_decision_links.d.ts","sourceRoot":"","sources":["../../../../src/migrations/knex/enhancements/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"}