sqlew 3.8.0 → 3.9.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 (881) hide show
  1. package/CHANGELOG.md +251 -285
  2. package/README.md +150 -32
  3. package/assets/sample-agents/sqlew-architect.md +72 -17
  4. package/assets/sample-agents/sqlew-researcher.md +62 -1
  5. package/assets/sample-agents/sqlew-scrum-master.md +5 -1
  6. package/assets/sample-commands/README.md +57 -0
  7. package/assets/sample-commands/sqw-documentor.md +158 -0
  8. package/assets/sample-commands/sqw-plan.md +301 -0
  9. package/assets/sample-commands/sqw-research.md +298 -0
  10. package/assets/sample-commands/sqw-review.md +340 -0
  11. package/assets/sample-commands/sqw-scrum.md +423 -0
  12. package/assets/sample-commands/sqw-secretary.md +187 -0
  13. package/dist/adapters/sqlite-adapter.d.ts +0 -6
  14. package/dist/adapters/sqlite-adapter.d.ts.map +1 -1
  15. package/dist/adapters/sqlite-adapter.js +10 -14
  16. package/dist/adapters/sqlite-adapter.js.map +1 -1
  17. package/dist/cli/db-dump.d.ts +1 -1
  18. package/dist/cli/db-dump.d.ts.map +1 -1
  19. package/dist/cli/db-dump.js +1 -1
  20. package/dist/cli/db-dump.js.map +1 -1
  21. package/dist/config/knex/bootstrap/20251025021352_fix_mysql_index_syntax.d.ts +4 -0
  22. package/dist/config/knex/bootstrap/20251025021352_fix_mysql_index_syntax.d.ts.map +1 -0
  23. package/dist/config/knex/bootstrap/20251025021352_fix_mysql_index_syntax.js +146 -0
  24. package/dist/config/knex/bootstrap/20251025021352_fix_mysql_index_syntax.js.map +1 -0
  25. package/dist/config/knex/enhancements/20251112000001_fix_task_file_links_schema_v3_9_0.d.ts +22 -0
  26. package/dist/config/knex/enhancements/20251112000001_fix_task_file_links_schema_v3_9_0.d.ts.map +1 -0
  27. package/dist/config/knex/enhancements/20251112000001_fix_task_file_links_schema_v3_9_0.js +106 -0
  28. package/dist/config/knex/enhancements/20251112000001_fix_task_file_links_schema_v3_9_0.js.map +1 -0
  29. package/dist/config/knex/enhancements/20251112000002_fix_task_pruned_files_schema_v3_9_0.d.ts +21 -0
  30. package/dist/config/knex/enhancements/20251112000002_fix_task_pruned_files_schema_v3_9_0.d.ts.map +1 -0
  31. package/dist/config/knex/enhancements/20251112000002_fix_task_pruned_files_schema_v3_9_0.js +106 -0
  32. package/dist/config/knex/enhancements/20251112000002_fix_task_pruned_files_schema_v3_9_0.js.map +1 -0
  33. package/dist/config/knex/enhancements/20251114000000_fix_v_tagged_decisions_numeric_support.d.ts +21 -0
  34. package/dist/config/knex/enhancements/20251114000000_fix_v_tagged_decisions_numeric_support.d.ts.map +1 -0
  35. package/dist/config/knex/enhancements/20251114000000_fix_v_tagged_decisions_numeric_support.js +91 -0
  36. package/dist/config/knex/enhancements/20251114000000_fix_v_tagged_decisions_numeric_support.js.map +1 -0
  37. package/dist/config/knex/enhancements/20251114120000_add_suggest_tool_to_help_system_v3_9_0.d.ts +15 -0
  38. package/dist/config/knex/enhancements/20251114120000_add_suggest_tool_to_help_system_v3_9_0.d.ts.map +1 -0
  39. package/dist/config/knex/enhancements/20251114120000_add_suggest_tool_to_help_system_v3_9_0.js +270 -0
  40. package/dist/config/knex/enhancements/20251114120000_add_suggest_tool_to_help_system_v3_9_0.js.map +1 -0
  41. package/dist/config/knex/enhancements/20251114121000_add_suggest_tool_use_cases_v3_9_0.d.ts +15 -0
  42. package/dist/config/knex/enhancements/20251114121000_add_suggest_tool_use_cases_v3_9_0.d.ts.map +1 -0
  43. package/dist/config/knex/enhancements/20251114121000_add_suggest_tool_use_cases_v3_9_0.js +241 -0
  44. package/dist/config/knex/enhancements/20251114121000_add_suggest_tool_use_cases_v3_9_0.js.map +1 -0
  45. package/dist/config/knex/enhancements/20251114130000_seed_builtin_policies_v3_9_0.d.ts +16 -0
  46. package/dist/config/knex/enhancements/20251114130000_seed_builtin_policies_v3_9_0.d.ts.map +1 -0
  47. package/dist/config/knex/enhancements/20251114130000_seed_builtin_policies_v3_9_0.js +168 -0
  48. package/dist/config/knex/enhancements/20251114130000_seed_builtin_policies_v3_9_0.js.map +1 -0
  49. package/dist/config/knex/enhancements/20251114140000_add_policy_help_v3_9_0.d.ts +14 -0
  50. package/dist/config/knex/enhancements/20251114140000_add_policy_help_v3_9_0.d.ts.map +1 -0
  51. package/dist/config/knex/enhancements/20251114140000_add_policy_help_v3_9_0.js +228 -0
  52. package/dist/config/knex/enhancements/20251114140000_add_policy_help_v3_9_0.js.map +1 -0
  53. package/dist/config/knex/enhancements/20251114141000_add_policy_use_cases_v3_9_0.d.ts +14 -0
  54. package/dist/config/knex/enhancements/20251114141000_add_policy_use_cases_v3_9_0.d.ts.map +1 -0
  55. package/dist/config/knex/enhancements/20251114141000_add_policy_use_cases_v3_9_0.js +237 -0
  56. package/dist/config/knex/enhancements/20251114141000_add_policy_use_cases_v3_9_0.js.map +1 -0
  57. package/dist/config/knex/enhancements/20251114150000_fix_policy_unique_constraint_v3_9_0.d.ts +14 -0
  58. package/dist/config/knex/enhancements/20251114150000_fix_policy_unique_constraint_v3_9_0.d.ts.map +1 -0
  59. package/dist/config/knex/enhancements/20251114150000_fix_policy_unique_constraint_v3_9_0.js +61 -0
  60. package/dist/config/knex/enhancements/20251114150000_fix_policy_unique_constraint_v3_9_0.js.map +1 -0
  61. package/dist/config/knex/enhancements/20251115000000_fix_task_decision_links_unique_constraint.d.ts +21 -0
  62. package/dist/config/knex/enhancements/20251115000000_fix_task_decision_links_unique_constraint.d.ts.map +1 -0
  63. package/dist/config/knex/enhancements/20251115000000_fix_task_decision_links_unique_constraint.js +127 -0
  64. package/dist/config/knex/enhancements/20251115000000_fix_task_decision_links_unique_constraint.js.map +1 -0
  65. package/dist/config/knex/enhancements/20251115100000_fix_read_keyword_index_v3_9_0.d.ts +15 -0
  66. package/dist/config/knex/enhancements/20251115100000_fix_read_keyword_index_v3_9_0.d.ts.map +1 -0
  67. package/dist/config/knex/enhancements/20251115100000_fix_read_keyword_index_v3_9_0.js +69 -0
  68. package/dist/config/knex/enhancements/20251115100000_fix_read_keyword_index_v3_9_0.js.map +1 -0
  69. package/dist/config/knex/enhancements/20251115110000_fix_cross_database_timestamps_v3_9_0.d.ts +15 -0
  70. package/dist/config/knex/enhancements/20251115110000_fix_cross_database_timestamps_v3_9_0.d.ts.map +1 -0
  71. package/dist/config/knex/enhancements/20251115110000_fix_cross_database_timestamps_v3_9_0.js +132 -0
  72. package/dist/config/knex/enhancements/20251115110000_fix_cross_database_timestamps_v3_9_0.js.map +1 -0
  73. package/dist/config/knex/enhancements/20251115120000_fix_all_cross_db_issues_v3_9_0.d.ts +18 -0
  74. package/dist/config/knex/enhancements/20251115120000_fix_all_cross_db_issues_v3_9_0.d.ts.map +1 -0
  75. package/dist/config/knex/enhancements/20251115120000_fix_all_cross_db_issues_v3_9_0.js +47 -0
  76. package/dist/config/knex/enhancements/20251115120000_fix_all_cross_db_issues_v3_9_0.js.map +1 -0
  77. package/dist/config/knex/enhancements/20251118000000_fix_native_db_test_issues_v3_9_1.d.ts +20 -0
  78. package/dist/config/knex/enhancements/20251118000000_fix_native_db_test_issues_v3_9_1.d.ts.map +1 -0
  79. package/dist/config/knex/enhancements/20251118000000_fix_native_db_test_issues_v3_9_1.js +119 -0
  80. package/dist/config/knex/enhancements/20251118000000_fix_native_db_test_issues_v3_9_1.js.map +1 -0
  81. package/dist/config/knex/upgrades/20251111235959_preemptive_fix_cross_database_v3_9_0.d.ts +19 -0
  82. package/dist/config/knex/upgrades/20251111235959_preemptive_fix_cross_database_v3_9_0.d.ts.map +1 -0
  83. package/dist/config/knex/upgrades/20251111235959_preemptive_fix_cross_database_v3_9_0.js +196 -0
  84. package/dist/config/knex/upgrades/20251111235959_preemptive_fix_cross_database_v3_9_0.js.map +1 -0
  85. package/dist/config/knex/upgrades/20251112000000_decision_intelligence_v3_9_0.d.ts +22 -0
  86. package/dist/config/knex/upgrades/20251112000000_decision_intelligence_v3_9_0.d.ts.map +1 -0
  87. package/dist/config/knex/upgrades/20251112000000_decision_intelligence_v3_9_0.js +375 -0
  88. package/dist/config/knex/upgrades/20251112000000_decision_intelligence_v3_9_0.js.map +1 -0
  89. package/dist/config/loader.d.ts.map +1 -1
  90. package/dist/config/loader.js +4 -0
  91. package/dist/config/loader.js.map +1 -1
  92. package/dist/config/minimal-generator.d.ts.map +1 -1
  93. package/dist/config/minimal-generator.js +34 -0
  94. package/dist/config/minimal-generator.js.map +1 -1
  95. package/dist/config/types.d.ts +19 -0
  96. package/dist/config/types.d.ts.map +1 -1
  97. package/dist/config/types.js +8 -0
  98. package/dist/config/types.js.map +1 -1
  99. package/dist/constants.d.ts +30 -0
  100. package/dist/constants.d.ts.map +1 -1
  101. package/dist/constants.js +33 -0
  102. package/dist/constants.js.map +1 -1
  103. package/dist/database/initialization/cleanup.d.ts +1 -1
  104. package/dist/database/initialization/cleanup.d.ts.map +1 -1
  105. package/dist/database/initialization/cleanup.js +15 -1
  106. package/dist/database/initialization/cleanup.js.map +1 -1
  107. package/dist/database/initialization/init.d.ts.map +1 -1
  108. package/dist/database/initialization/init.js +3 -0
  109. package/dist/database/initialization/init.js.map +1 -1
  110. package/dist/database/migrations/20251024010000_upgrade_v1_0_to_v1_1.d.ts +16 -0
  111. package/dist/database/migrations/20251024010000_upgrade_v1_0_to_v1_1.d.ts.map +1 -0
  112. package/dist/database/migrations/20251024010000_upgrade_v1_0_to_v1_1.js +84 -0
  113. package/dist/database/migrations/20251024010000_upgrade_v1_0_to_v1_1.js.map +1 -0
  114. package/dist/database/migrations/20251024020000_upgrade_v2_0_to_v2_1.d.ts +14 -0
  115. package/dist/database/migrations/20251024020000_upgrade_v2_0_to_v2_1.d.ts.map +1 -0
  116. package/dist/database/migrations/20251024020000_upgrade_v2_0_to_v2_1.js +42 -0
  117. package/dist/database/migrations/20251024020000_upgrade_v2_0_to_v2_1.js.map +1 -0
  118. package/dist/database/migrations/20251024030000_upgrade_v2_1_to_v3_0.d.ts +17 -0
  119. package/dist/database/migrations/20251024030000_upgrade_v2_1_to_v3_0.d.ts.map +1 -0
  120. package/dist/database/migrations/20251024030000_upgrade_v2_1_to_v3_0.js +122 -0
  121. package/dist/database/migrations/20251024030000_upgrade_v2_1_to_v3_0.js.map +1 -0
  122. package/dist/database/migrations/20251024040000_upgrade_v3_0_to_v3_2.d.ts +12 -0
  123. package/dist/database/migrations/20251024040000_upgrade_v3_0_to_v3_2.d.ts.map +1 -0
  124. package/dist/database/migrations/20251024040000_upgrade_v3_0_to_v3_2.js +49 -0
  125. package/dist/database/migrations/20251024040000_upgrade_v3_0_to_v3_2.js.map +1 -0
  126. package/dist/database/migrations/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts +12 -0
  127. package/dist/database/migrations/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts.map +1 -0
  128. package/dist/database/migrations/20251024050000_upgrade_v3_2_0_to_v3_2_2.js +53 -0
  129. package/dist/database/migrations/20251024050000_upgrade_v3_2_0_to_v3_2_2.js.map +1 -0
  130. package/dist/database/migrations/20251024060000_upgrade_v3_4_to_v3_5.d.ts +12 -0
  131. package/dist/database/migrations/20251024060000_upgrade_v3_4_to_v3_5.d.ts.map +1 -0
  132. package/dist/database/migrations/20251024060000_upgrade_v3_4_to_v3_5.js +44 -0
  133. package/dist/database/migrations/20251024060000_upgrade_v3_4_to_v3_5.js.map +1 -0
  134. package/dist/database/migrations/20251024070000_upgrade_v3_5_to_v3_6.d.ts +13 -0
  135. package/dist/database/migrations/20251024070000_upgrade_v3_5_to_v3_6.d.ts.map +1 -0
  136. package/dist/database/migrations/20251024070000_upgrade_v3_5_to_v3_6.js +33 -0
  137. package/dist/database/migrations/20251024070000_upgrade_v3_5_to_v3_6.js.map +1 -0
  138. package/dist/database/migrations/20251025020452_create_master_tables_wrapper.d.ts +17 -0
  139. package/dist/database/migrations/20251025020452_create_master_tables_wrapper.d.ts.map +1 -0
  140. package/dist/database/migrations/20251025020452_create_master_tables_wrapper.js +119 -0
  141. package/dist/database/migrations/20251025020452_create_master_tables_wrapper.js.map +1 -0
  142. package/dist/database/migrations/20251025021152_create_transaction_tables_wrapper.d.ts +15 -0
  143. package/dist/database/migrations/20251025021152_create_transaction_tables_wrapper.d.ts.map +1 -0
  144. package/dist/database/migrations/20251025021152_create_transaction_tables_wrapper.js +282 -0
  145. package/dist/database/migrations/20251025021152_create_transaction_tables_wrapper.js.map +1 -0
  146. package/dist/database/migrations/20251025021351_create_indexes_wrapper.d.ts +21 -0
  147. package/dist/database/migrations/20251025021351_create_indexes_wrapper.d.ts.map +1 -0
  148. package/dist/database/migrations/20251025021351_create_indexes_wrapper.js +83 -0
  149. package/dist/database/migrations/20251025021351_create_indexes_wrapper.js.map +1 -0
  150. package/dist/database/migrations/20251025021352_fix_mysql_index_syntax_wrapper.d.ts +22 -0
  151. package/dist/database/migrations/20251025021352_fix_mysql_index_syntax_wrapper.d.ts.map +1 -0
  152. package/dist/database/migrations/20251025021352_fix_mysql_index_syntax_wrapper.js +94 -0
  153. package/dist/database/migrations/20251025021352_fix_mysql_index_syntax_wrapper.js.map +1 -0
  154. package/dist/database/migrations/20251025021416_seed_master_data_wrapper.d.ts +19 -0
  155. package/dist/database/migrations/20251025021416_seed_master_data_wrapper.d.ts.map +1 -0
  156. package/dist/database/migrations/20251025021416_seed_master_data_wrapper.js +120 -0
  157. package/dist/database/migrations/20251025021416_seed_master_data_wrapper.js.map +1 -0
  158. package/dist/database/migrations/20251025070349_create_views_wrapper.d.ts +14 -0
  159. package/dist/database/migrations/20251025070349_create_views_wrapper.d.ts.map +1 -0
  160. package/dist/database/migrations/20251025070349_create_views_wrapper.js +160 -0
  161. package/dist/database/migrations/20251025070349_create_views_wrapper.js.map +1 -0
  162. package/dist/database/migrations/20251025081221_add_link_type_to_task_decision_links.d.ts +9 -0
  163. package/dist/database/migrations/20251025081221_add_link_type_to_task_decision_links.d.ts.map +1 -0
  164. package/dist/database/migrations/20251025081221_add_link_type_to_task_decision_links.js +21 -0
  165. package/dist/database/migrations/20251025081221_add_link_type_to_task_decision_links.js.map +1 -0
  166. package/dist/database/migrations/20251025082220_fix_task_dependencies_columns.d.ts +13 -0
  167. package/dist/database/migrations/20251025082220_fix_task_dependencies_columns.d.ts.map +1 -0
  168. package/dist/database/migrations/20251025082220_fix_task_dependencies_columns.js +17 -0
  169. package/dist/database/migrations/20251025082220_fix_task_dependencies_columns.js.map +1 -0
  170. package/dist/database/migrations/20251025090000_create_help_system_tables.d.ts +27 -0
  171. package/dist/database/migrations/20251025090000_create_help_system_tables.d.ts.map +1 -0
  172. package/dist/database/migrations/20251025090000_create_help_system_tables.js +120 -0
  173. package/dist/database/migrations/20251025090000_create_help_system_tables.js.map +1 -0
  174. package/dist/database/migrations/20251025090100_seed_help_categories_and_use_cases.d.ts +18 -0
  175. package/dist/database/migrations/20251025090100_seed_help_categories_and_use_cases.d.ts.map +1 -0
  176. package/dist/database/migrations/20251025090100_seed_help_categories_and_use_cases.js +388 -0
  177. package/dist/database/migrations/20251025090100_seed_help_categories_and_use_cases.js.map +1 -0
  178. package/dist/database/migrations/20251025100000_seed_help_metadata.d.ts +20 -0
  179. package/dist/database/migrations/20251025100000_seed_help_metadata.d.ts.map +1 -0
  180. package/dist/database/migrations/20251025100000_seed_help_metadata.js +264 -0
  181. package/dist/database/migrations/20251025100000_seed_help_metadata.js.map +1 -0
  182. package/dist/database/migrations/20251025100100_seed_remaining_use_cases.d.ts +21 -0
  183. package/dist/database/migrations/20251025100100_seed_remaining_use_cases.d.ts.map +1 -0
  184. package/dist/database/migrations/20251025100100_seed_remaining_use_cases.js +281 -0
  185. package/dist/database/migrations/20251025100100_seed_remaining_use_cases.js.map +1 -0
  186. package/dist/database/migrations/20251025120000_add_cascade_to_task_dependencies.d.ts +13 -0
  187. package/dist/database/migrations/20251025120000_add_cascade_to_task_dependencies.d.ts.map +1 -0
  188. package/dist/database/migrations/20251025120000_add_cascade_to_task_dependencies.js +76 -0
  189. package/dist/database/migrations/20251025120000_add_cascade_to_task_dependencies.js.map +1 -0
  190. package/dist/database/migrations/20251027000000_add_agent_reuse_system.d.ts +17 -0
  191. package/dist/database/migrations/20251027000000_add_agent_reuse_system.d.ts.map +1 -0
  192. package/dist/database/migrations/20251027000000_add_agent_reuse_system.js +42 -0
  193. package/dist/database/migrations/20251027000000_add_agent_reuse_system.js.map +1 -0
  194. package/dist/database/migrations/20251027010000_add_task_constraint_to_decision_context.d.ts +10 -0
  195. package/dist/database/migrations/20251027010000_add_task_constraint_to_decision_context.d.ts.map +1 -0
  196. package/dist/database/migrations/20251027010000_add_task_constraint_to_decision_context.js +28 -0
  197. package/dist/database/migrations/20251027010000_add_task_constraint_to_decision_context.js.map +1 -0
  198. package/dist/database/migrations/20251027020000_update_agent_reusability.d.ts +21 -0
  199. package/dist/database/migrations/20251027020000_update_agent_reusability.d.ts.map +1 -0
  200. package/dist/database/migrations/20251027020000_update_agent_reusability.js +38 -0
  201. package/dist/database/migrations/20251027020000_update_agent_reusability.js.map +1 -0
  202. package/dist/database/migrations/20251028000000_simplify_agent_system.d.ts +26 -0
  203. package/dist/database/migrations/20251028000000_simplify_agent_system.d.ts.map +1 -0
  204. package/dist/database/migrations/20251028000000_simplify_agent_system.js +56 -0
  205. package/dist/database/migrations/20251028000000_simplify_agent_system.js.map +1 -0
  206. package/dist/database/migrations/20251031000000_drop_orphaned_message_view.d.ts +16 -0
  207. package/dist/database/migrations/20251031000000_drop_orphaned_message_view.d.ts.map +1 -0
  208. package/dist/database/migrations/20251031000000_drop_orphaned_message_view.js +52 -0
  209. package/dist/database/migrations/20251031000000_drop_orphaned_message_view.js.map +1 -0
  210. package/dist/database/migrations/20251104000000_add_multi_project_v3_7_0.d.ts +56 -0
  211. package/dist/database/migrations/20251104000000_add_multi_project_v3_7_0.d.ts.map +1 -0
  212. package/dist/database/migrations/20251104000000_add_multi_project_v3_7_0.js +701 -0
  213. package/dist/database/migrations/20251104000000_add_multi_project_v3_7_0.js.map +1 -0
  214. package/dist/database/migrations/20251104000003_rename_constraints_created_by_to_agent_id.d.ts +30 -0
  215. package/dist/database/migrations/20251104000003_rename_constraints_created_by_to_agent_id.d.ts.map +1 -0
  216. package/dist/database/migrations/20251104000003_rename_constraints_created_by_to_agent_id.js +180 -0
  217. package/dist/database/migrations/20251104000003_rename_constraints_created_by_to_agent_id.js.map +1 -0
  218. package/dist/database/migrations/20251105000000_add_token_usage_table.d.ts +19 -0
  219. package/dist/database/migrations/20251105000000_add_token_usage_table.d.ts.map +1 -0
  220. package/dist/database/migrations/20251105000000_add_token_usage_table.js +47 -0
  221. package/dist/database/migrations/20251105000000_add_token_usage_table.js.map +1 -0
  222. package/dist/database/migrations/20251105000001_rename_decision_context_decided_by_to_agent_id.d.ts +28 -0
  223. package/dist/database/migrations/20251105000001_rename_decision_context_decided_by_to_agent_id.d.ts.map +1 -0
  224. package/dist/database/migrations/20251105000001_rename_decision_context_decided_by_to_agent_id.js +123 -0
  225. package/dist/database/migrations/20251105000001_rename_decision_context_decided_by_to_agent_id.js.map +1 -0
  226. package/dist/database/migrations/20251106000000_fix_master_tables_project_id_v3_7_3.d.ts +36 -0
  227. package/dist/database/migrations/20251106000000_fix_master_tables_project_id_v3_7_3.d.ts.map +1 -0
  228. package/dist/database/migrations/20251106000000_fix_master_tables_project_id_v3_7_3.js +559 -0
  229. package/dist/database/migrations/20251106000000_fix_master_tables_project_id_v3_7_3.js.map +1 -0
  230. package/dist/database/migrations/20251108000000_add_planning_layers_v3_8_0.d.ts +26 -0
  231. package/dist/database/migrations/20251108000000_add_planning_layers_v3_8_0.d.ts.map +1 -0
  232. package/dist/database/migrations/20251108000000_add_planning_layers_v3_8_0.js +78 -0
  233. package/dist/database/migrations/20251108000000_add_planning_layers_v3_8_0.js.map +1 -0
  234. package/dist/database/migrations/20251108000000_hotfix_v_tagged_constraints_project_id.d.ts +17 -0
  235. package/dist/database/migrations/20251108000000_hotfix_v_tagged_constraints_project_id.d.ts.map +1 -0
  236. package/dist/database/migrations/20251108000000_hotfix_v_tagged_constraints_project_id.js +78 -0
  237. package/dist/database/migrations/20251108000000_hotfix_v_tagged_constraints_project_id.js.map +1 -0
  238. package/dist/database/migrations/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.d.ts +24 -0
  239. package/dist/database/migrations/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.d.ts.map +1 -0
  240. package/dist/database/migrations/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.js +63 -0
  241. package/dist/database/migrations/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.js.map +1 -0
  242. package/dist/database/migrations/20251109000002_multi_project_cross_db_compat_v3_7_5.d.ts +27 -0
  243. package/dist/database/migrations/20251109000002_multi_project_cross_db_compat_v3_7_5.d.ts.map +1 -0
  244. package/dist/database/migrations/20251109000002_multi_project_cross_db_compat_v3_7_5.js +276 -0
  245. package/dist/database/migrations/20251109000002_multi_project_cross_db_compat_v3_7_5.js.map +1 -0
  246. package/dist/database/migrations/20251109000003_token_usage_cross_db_compat_v3_7_5.d.ts +27 -0
  247. package/dist/database/migrations/20251109000003_token_usage_cross_db_compat_v3_7_5.d.ts.map +1 -0
  248. package/dist/database/migrations/20251109000003_token_usage_cross_db_compat_v3_7_5.js +67 -0
  249. package/dist/database/migrations/20251109000003_token_usage_cross_db_compat_v3_7_5.js.map +1 -0
  250. package/dist/database/migrations/20251109010000_tool_cleanup_v3_8_0.d.ts +32 -0
  251. package/dist/database/migrations/20251109010000_tool_cleanup_v3_8_0.d.ts.map +1 -0
  252. package/dist/database/migrations/20251109010000_tool_cleanup_v3_8_0.js +352 -0
  253. package/dist/database/migrations/20251109010000_tool_cleanup_v3_8_0.js.map +1 -0
  254. package/dist/database/migrations/20251109020000_fix_missing_help_actions_v3_8_0.d.ts +35 -0
  255. package/dist/database/migrations/20251109020000_fix_missing_help_actions_v3_8_0.d.ts.map +1 -0
  256. package/dist/database/migrations/20251109020000_fix_missing_help_actions_v3_8_0.js +237 -0
  257. package/dist/database/migrations/20251109020000_fix_missing_help_actions_v3_8_0.js.map +1 -0
  258. package/dist/database/migrations/20251111235959_preemptive_fix_cross_database_v3_9_0.d.ts +22 -0
  259. package/dist/database/migrations/20251111235959_preemptive_fix_cross_database_v3_9_0.d.ts.map +1 -0
  260. package/dist/database/migrations/20251111235959_preemptive_fix_cross_database_v3_9_0.js +190 -0
  261. package/dist/database/migrations/20251111235959_preemptive_fix_cross_database_v3_9_0.js.map +1 -0
  262. package/dist/database/migrations/20251112000000_decision_intelligence_v3_9_0.d.ts +32 -0
  263. package/dist/database/migrations/20251112000000_decision_intelligence_v3_9_0.d.ts.map +1 -0
  264. package/dist/database/migrations/20251112000000_decision_intelligence_v3_9_0.js +342 -0
  265. package/dist/database/migrations/20251112000000_decision_intelligence_v3_9_0.js.map +1 -0
  266. package/dist/database/migrations/20251112000001_fix_task_file_links_schema_v3_9_0.d.ts +25 -0
  267. package/dist/database/migrations/20251112000001_fix_task_file_links_schema_v3_9_0.d.ts.map +1 -0
  268. package/dist/database/migrations/20251112000001_fix_task_file_links_schema_v3_9_0.js +109 -0
  269. package/dist/database/migrations/20251112000001_fix_task_file_links_schema_v3_9_0.js.map +1 -0
  270. package/dist/database/migrations/20251112000002_fix_task_pruned_files_schema_v3_9_0.d.ts +24 -0
  271. package/dist/database/migrations/20251112000002_fix_task_pruned_files_schema_v3_9_0.d.ts.map +1 -0
  272. package/dist/database/migrations/20251112000002_fix_task_pruned_files_schema_v3_9_0.js +111 -0
  273. package/dist/database/migrations/20251112000002_fix_task_pruned_files_schema_v3_9_0.js.map +1 -0
  274. package/dist/database/migrations/20251114000000_fix_v_tagged_decisions_numeric_support.d.ts +24 -0
  275. package/dist/database/migrations/20251114000000_fix_v_tagged_decisions_numeric_support.d.ts.map +1 -0
  276. package/dist/database/migrations/20251114000000_fix_v_tagged_decisions_numeric_support.js +90 -0
  277. package/dist/database/migrations/20251114000000_fix_v_tagged_decisions_numeric_support.js.map +1 -0
  278. package/dist/database/migrations/20251114120000_add_suggest_tool_to_help_system_v3_9_0.d.ts +20 -0
  279. package/dist/database/migrations/20251114120000_add_suggest_tool_to_help_system_v3_9_0.d.ts.map +1 -0
  280. package/dist/database/migrations/20251114120000_add_suggest_tool_to_help_system_v3_9_0.js +275 -0
  281. package/dist/database/migrations/20251114120000_add_suggest_tool_to_help_system_v3_9_0.js.map +1 -0
  282. package/dist/database/migrations/20251114121000_add_suggest_tool_use_cases_v3_9_0.d.ts +20 -0
  283. package/dist/database/migrations/20251114121000_add_suggest_tool_use_cases_v3_9_0.d.ts.map +1 -0
  284. package/dist/database/migrations/20251114121000_add_suggest_tool_use_cases_v3_9_0.js +246 -0
  285. package/dist/database/migrations/20251114121000_add_suggest_tool_use_cases_v3_9_0.js.map +1 -0
  286. package/dist/database/migrations/20251114130000_seed_builtin_policies_v3_9_0.d.ts +23 -0
  287. package/dist/database/migrations/20251114130000_seed_builtin_policies_v3_9_0.d.ts.map +1 -0
  288. package/dist/database/migrations/20251114130000_seed_builtin_policies_v3_9_0.js +175 -0
  289. package/dist/database/migrations/20251114130000_seed_builtin_policies_v3_9_0.js.map +1 -0
  290. package/dist/database/migrations/20251114140000_add_policy_help_v3_9_0.d.ts +21 -0
  291. package/dist/database/migrations/20251114140000_add_policy_help_v3_9_0.d.ts.map +1 -0
  292. package/dist/database/migrations/20251114140000_add_policy_help_v3_9_0.js +235 -0
  293. package/dist/database/migrations/20251114140000_add_policy_help_v3_9_0.js.map +1 -0
  294. package/dist/database/migrations/20251114141000_add_policy_use_cases_v3_9_0.d.ts +21 -0
  295. package/dist/database/migrations/20251114141000_add_policy_use_cases_v3_9_0.d.ts.map +1 -0
  296. package/dist/database/migrations/20251114141000_add_policy_use_cases_v3_9_0.js +244 -0
  297. package/dist/database/migrations/20251114141000_add_policy_use_cases_v3_9_0.js.map +1 -0
  298. package/dist/database/migrations/20251114150000_fix_policy_unique_constraint_v3_9_0.d.ts +23 -0
  299. package/dist/database/migrations/20251114150000_fix_policy_unique_constraint_v3_9_0.d.ts.map +1 -0
  300. package/dist/database/migrations/20251114150000_fix_policy_unique_constraint_v3_9_0.js +70 -0
  301. package/dist/database/migrations/20251114150000_fix_policy_unique_constraint_v3_9_0.js.map +1 -0
  302. package/dist/database/migrations/20251115000000_fix_task_decision_links_unique_constraint.d.ts +29 -0
  303. package/dist/database/migrations/20251115000000_fix_task_decision_links_unique_constraint.d.ts.map +1 -0
  304. package/dist/database/migrations/20251115000000_fix_task_decision_links_unique_constraint.js +135 -0
  305. package/dist/database/migrations/20251115000000_fix_task_decision_links_unique_constraint.js.map +1 -0
  306. package/dist/database/migrations/20251115100000_fix_read_keyword_index_v3_9_0.d.ts +23 -0
  307. package/dist/database/migrations/20251115100000_fix_read_keyword_index_v3_9_0.d.ts.map +1 -0
  308. package/dist/database/migrations/20251115100000_fix_read_keyword_index_v3_9_0.js +42 -0
  309. package/dist/database/migrations/20251115100000_fix_read_keyword_index_v3_9_0.js.map +1 -0
  310. package/dist/database/migrations/20251115110000_fix_cross_database_timestamps_v3_9_0.d.ts +25 -0
  311. package/dist/database/migrations/20251115110000_fix_cross_database_timestamps_v3_9_0.d.ts.map +1 -0
  312. package/dist/database/migrations/20251115110000_fix_cross_database_timestamps_v3_9_0.js +102 -0
  313. package/dist/database/migrations/20251115110000_fix_cross_database_timestamps_v3_9_0.js.map +1 -0
  314. package/dist/database/migrations/20251115120000_fix_all_cross_db_issues_v3_9_0.d.ts +25 -0
  315. package/dist/database/migrations/20251115120000_fix_all_cross_db_issues_v3_9_0.d.ts.map +1 -0
  316. package/dist/database/migrations/20251115120000_fix_all_cross_db_issues_v3_9_0.js +55 -0
  317. package/dist/database/migrations/20251115120000_fix_all_cross_db_issues_v3_9_0.js.map +1 -0
  318. package/dist/database/migrations/20251118000000_eliminate_views_v3_9_0.d.ts +29 -0
  319. package/dist/database/migrations/20251118000000_eliminate_views_v3_9_0.d.ts.map +1 -0
  320. package/dist/database/migrations/20251118000000_eliminate_views_v3_9_0.js +62 -0
  321. package/dist/database/migrations/20251118000000_eliminate_views_v3_9_0.js.map +1 -0
  322. package/dist/database/migrations/20251119000000_add_constraint_text_hash_v3_9_1.d.ts +25 -0
  323. package/dist/database/migrations/20251119000000_add_constraint_text_hash_v3_9_1.d.ts.map +1 -0
  324. package/dist/database/migrations/20251119000000_add_constraint_text_hash_v3_9_1.js +100 -0
  325. package/dist/database/migrations/20251119000000_add_constraint_text_hash_v3_9_1.js.map +1 -0
  326. package/dist/init-commands.d.ts +7 -0
  327. package/dist/init-commands.d.ts.map +1 -0
  328. package/dist/init-commands.js +185 -0
  329. package/dist/init-commands.js.map +1 -0
  330. package/dist/schema.d.ts +11 -19
  331. package/dist/schema.d.ts.map +1 -1
  332. package/dist/schema.js +51 -63
  333. package/dist/schema.js.map +1 -1
  334. package/dist/server/tool-handlers.d.ts.map +1 -1
  335. package/dist/server/tool-handlers.js +20 -1
  336. package/dist/server/tool-handlers.js.map +1 -1
  337. package/dist/server/tool-registry.d.ts.map +1 -1
  338. package/dist/server/tool-registry.js +42 -1
  339. package/dist/server/tool-registry.js.map +1 -1
  340. package/dist/sync-commands.d.ts +13 -0
  341. package/dist/sync-commands.d.ts.map +1 -0
  342. package/dist/sync-commands.js +115 -0
  343. package/dist/sync-commands.js.map +1 -0
  344. package/dist/tests/database/connection/connection-manager-integration.test.d.ts.map +1 -0
  345. package/dist/tests/{connection-manager-integration.test.js → database/connection/connection-manager-integration.test.js} +1 -1
  346. package/dist/tests/database/connection/connection-manager-integration.test.js.map +1 -0
  347. package/dist/tests/database/connection/connection-manager.test.d.ts.map +1 -0
  348. package/dist/tests/{connection-manager.test.js → database/connection/connection-manager.test.js} +1 -1
  349. package/dist/tests/database/connection/connection-manager.test.js.map +1 -0
  350. package/dist/tests/database/migrations/idempotency.test.d.ts +2 -0
  351. package/dist/tests/database/migrations/idempotency.test.d.ts.map +1 -0
  352. package/dist/tests/{migration-idempotency.test.js → database/migrations/idempotency.test.js} +1 -1
  353. package/dist/tests/database/migrations/idempotency.test.js.map +1 -0
  354. package/dist/tests/database/migrations/upgrade-paths.test.d.ts +2 -0
  355. package/dist/tests/database/migrations/upgrade-paths.test.d.ts.map +1 -0
  356. package/dist/tests/{migration-upgrade-paths.test.js → database/migrations/upgrade-paths.test.js} +1 -1
  357. package/dist/tests/database/migrations/upgrade-paths.test.js.map +1 -0
  358. package/dist/tests/database/multi-project/multi-project.test.d.ts.map +1 -0
  359. package/dist/tests/{multi-project.test.js → database/multi-project/multi-project.test.js} +5 -5
  360. package/dist/tests/database/multi-project/multi-project.test.js.map +1 -0
  361. package/dist/tests/{sql-dump-converters.test.d.ts → database/sql-dump/converters.test.d.ts} +1 -1
  362. package/dist/tests/database/sql-dump/converters.test.d.ts.map +1 -0
  363. package/dist/tests/{sql-dump-converters.test.js → database/sql-dump/converters.test.js} +2 -2
  364. package/dist/tests/database/sql-dump/converters.test.js.map +1 -0
  365. package/dist/tests/{sql-dump-default-conversions.test.d.ts → database/sql-dump/default-conversions.test.d.ts} +1 -1
  366. package/dist/tests/database/sql-dump/default-conversions.test.d.ts.map +1 -0
  367. package/dist/tests/{sql-dump-default-conversions.test.js → database/sql-dump/default-conversions.test.js} +2 -2
  368. package/dist/tests/database/sql-dump/default-conversions.test.js.map +1 -0
  369. package/dist/tests/database/sql-dump/table-ordering.test.d.ts +27 -0
  370. package/dist/tests/database/sql-dump/table-ordering.test.d.ts.map +1 -0
  371. package/dist/tests/{sql-dump-table-ordering.test.js → database/sql-dump/table-ordering.test.js} +34 -8
  372. package/dist/tests/database/sql-dump/table-ordering.test.js.map +1 -0
  373. package/dist/tests/database/sql-dump/type-conversion.test.d.ts.map +1 -0
  374. package/dist/tests/{type-conversion.test.js → database/sql-dump/type-conversion.test.js} +1 -1
  375. package/dist/tests/database/sql-dump/type-conversion.test.js.map +1 -0
  376. package/dist/tests/database/testing-config.d.ts +105 -0
  377. package/dist/tests/database/testing-config.d.ts.map +1 -0
  378. package/dist/tests/database/testing-config.js +192 -0
  379. package/dist/tests/database/testing-config.js.map +1 -0
  380. package/dist/tests/{sql-dump-cross-database.test.d.ts → docker/cross-database.test.d.ts} +1 -1
  381. package/dist/tests/docker/cross-database.test.d.ts.map +1 -0
  382. package/dist/tests/{sql-dump-cross-database.test.js → docker/cross-database.test.js} +3 -3
  383. package/dist/tests/docker/cross-database.test.js.map +1 -0
  384. package/dist/tests/docker/dump-import.test.d.ts.map +1 -0
  385. package/dist/tests/{dump-import.test.js → docker/dump-import.test.js} +25 -31
  386. package/dist/tests/docker/dump-import.test.js.map +1 -0
  387. package/dist/tests/{sql-dump-fk-constraints.test.d.ts → docker/fk-constraints.test.d.ts} +1 -1
  388. package/dist/tests/docker/fk-constraints.test.d.ts.map +1 -0
  389. package/dist/tests/{sql-dump-fk-constraints.test.js → docker/fk-constraints.test.js} +3 -3
  390. package/dist/tests/docker/fk-constraints.test.js.map +1 -0
  391. package/dist/tests/{sql-dump-indexes.test.d.ts → docker/indexes.test.d.ts} +1 -1
  392. package/dist/tests/docker/indexes.test.d.ts.map +1 -0
  393. package/dist/tests/{sql-dump-indexes.test.js → docker/indexes.test.js} +10 -29
  394. package/dist/tests/docker/indexes.test.js.map +1 -0
  395. package/dist/tests/{sql-dump-integration.test.d.ts → docker/integration.test.d.ts} +1 -1
  396. package/dist/tests/docker/integration.test.d.ts.map +1 -0
  397. package/dist/tests/{sql-dump-integration.test.js → docker/integration.test.js} +9 -28
  398. package/dist/tests/docker/integration.test.js.map +1 -0
  399. package/dist/tests/docker/multi-project-migration.test.d.ts.map +1 -0
  400. package/dist/tests/{multi-project-migration.test.js → docker/multi-project-migration.test.js} +20 -8
  401. package/dist/tests/docker/multi-project-migration.test.js.map +1 -0
  402. package/dist/tests/docker/native/constraint-operations.test.d.ts +23 -0
  403. package/dist/tests/docker/native/constraint-operations.test.d.ts.map +1 -0
  404. package/dist/tests/docker/native/constraint-operations.test.js +693 -0
  405. package/dist/tests/docker/native/constraint-operations.test.js.map +1 -0
  406. package/dist/tests/docker/native/db-init.d.ts +59 -0
  407. package/dist/tests/docker/native/db-init.d.ts.map +1 -0
  408. package/dist/tests/docker/native/db-init.js +207 -0
  409. package/dist/tests/docker/native/db-init.js.map +1 -0
  410. package/dist/tests/docker/native/decision-operations.test.d.ts +16 -0
  411. package/dist/tests/docker/native/decision-operations.test.d.ts.map +1 -0
  412. package/dist/tests/docker/native/decision-operations.test.js +590 -0
  413. package/dist/tests/docker/native/decision-operations.test.js.map +1 -0
  414. package/dist/tests/docker/native/help-system.test.d.ts +10 -0
  415. package/dist/tests/docker/native/help-system.test.d.ts.map +1 -0
  416. package/dist/tests/docker/native/help-system.test.js +568 -0
  417. package/dist/tests/docker/native/help-system.test.js.map +1 -0
  418. package/dist/tests/docker/native/suggest-tool.test.d.ts +16 -0
  419. package/dist/tests/docker/native/suggest-tool.test.d.ts.map +1 -0
  420. package/dist/tests/docker/native/suggest-tool.test.js +607 -0
  421. package/dist/tests/docker/native/suggest-tool.test.js.map +1 -0
  422. package/dist/tests/docker/native/task-operations.test.d.ts +16 -0
  423. package/dist/tests/docker/native/task-operations.test.d.ts.map +1 -0
  424. package/dist/tests/docker/native/task-operations.test.js +836 -0
  425. package/dist/tests/docker/native/task-operations.test.js.map +1 -0
  426. package/dist/tests/docker/native/test-harness.d.ts +129 -0
  427. package/dist/tests/docker/native/test-harness.d.ts.map +1 -0
  428. package/dist/tests/docker/native/test-harness.js +314 -0
  429. package/dist/tests/docker/native/test-harness.js.map +1 -0
  430. package/dist/tests/docker/schema-migration.test.d.ts.map +1 -0
  431. package/dist/tests/{schema-migration.test.js → docker/schema-migration.test.js} +8 -18
  432. package/dist/tests/docker/schema-migration.test.js.map +1 -0
  433. package/dist/tests/feature/decision/analytics.test.d.ts +7 -0
  434. package/dist/tests/feature/decision/analytics.test.d.ts.map +1 -0
  435. package/dist/tests/feature/decision/analytics.test.js +140 -0
  436. package/dist/tests/feature/decision/analytics.test.js.map +1 -0
  437. package/dist/tests/feature/decision/batch-validation-comprehensive.test.d.ts.map +1 -0
  438. package/dist/tests/{batch-validation-comprehensive.test.js → feature/decision/batch-validation-comprehensive.test.js} +5 -5
  439. package/dist/tests/feature/decision/batch-validation-comprehensive.test.js.map +1 -0
  440. package/dist/tests/feature/decision/batch-validation-integration.test.d.ts.map +1 -0
  441. package/dist/tests/{batch-validation-integration.test.js → feature/decision/batch-validation-integration.test.js} +3 -3
  442. package/dist/tests/feature/decision/batch-validation-integration.test.js.map +1 -0
  443. package/dist/tests/{decision-batch-validation.test.d.ts → feature/decision/batch-validation.test.d.ts} +1 -1
  444. package/dist/tests/feature/decision/batch-validation.test.d.ts.map +1 -0
  445. package/dist/tests/{decision-batch-validation.test.js → feature/decision/batch-validation.test.js} +4 -4
  446. package/dist/tests/feature/decision/batch-validation.test.js.map +1 -0
  447. package/dist/tests/feature/decision/context-modular.test.d.ts.map +1 -0
  448. package/dist/tests/{context-modular.test.js → feature/decision/context-modular.test.js} +17 -8
  449. package/dist/tests/feature/decision/context-modular.test.js.map +1 -0
  450. package/dist/tests/feature/help/help-system.test.d.ts.map +1 -0
  451. package/dist/tests/{help-system.test.js → feature/help/help-system.test.js} +9 -9
  452. package/dist/tests/feature/help/help-system.test.js.map +1 -0
  453. package/dist/tests/{tasks.auto-pruning-decision-link.test.d.ts → feature/task/auto-pruning-decision-link.test.d.ts} +1 -1
  454. package/dist/tests/feature/task/auto-pruning-decision-link.test.d.ts.map +1 -0
  455. package/dist/tests/{tasks.auto-pruning-decision-link.test.js → feature/task/auto-pruning-decision-link.test.js} +30 -8
  456. package/dist/tests/feature/task/auto-pruning-decision-link.test.js.map +1 -0
  457. package/dist/tests/{tasks.auto-pruning-partial.test.d.ts → feature/task/auto-pruning-partial.test.d.ts} +1 -1
  458. package/dist/tests/feature/task/auto-pruning-partial.test.d.ts.map +1 -0
  459. package/dist/tests/{tasks.auto-pruning-partial.test.js → feature/task/auto-pruning-partial.test.js} +26 -4
  460. package/dist/tests/feature/task/auto-pruning-partial.test.js.map +1 -0
  461. package/dist/tests/{tasks.auto-pruning-persistence.test.d.ts → feature/task/auto-pruning-persistence.test.d.ts} +1 -1
  462. package/dist/tests/feature/task/auto-pruning-persistence.test.d.ts.map +1 -0
  463. package/dist/tests/{tasks.auto-pruning-persistence.test.js → feature/task/auto-pruning-persistence.test.js} +23 -3
  464. package/dist/tests/feature/task/auto-pruning-persistence.test.js.map +1 -0
  465. package/dist/tests/{tasks.auto-pruning-safety.test.d.ts → feature/task/auto-pruning-safety.test.d.ts} +1 -1
  466. package/dist/tests/feature/task/auto-pruning-safety.test.d.ts.map +1 -0
  467. package/dist/tests/{tasks.auto-pruning-safety.test.js → feature/task/auto-pruning-safety.test.js} +46 -20
  468. package/dist/tests/feature/task/auto-pruning-safety.test.js.map +1 -0
  469. package/dist/tests/{tasks.dependencies.test.d.ts → feature/task/dependencies.test.d.ts} +1 -1
  470. package/dist/tests/feature/task/dependencies.test.d.ts.map +1 -0
  471. package/dist/tests/{tasks.dependencies.test.js → feature/task/dependencies.test.js} +46 -30
  472. package/dist/tests/feature/task/dependencies.test.js.map +1 -0
  473. package/dist/tests/{tasks.file-actions-integration.test.d.ts → feature/task/file-actions-integration.test.d.ts} +1 -1
  474. package/dist/tests/feature/task/file-actions-integration.test.d.ts.map +1 -0
  475. package/dist/tests/{tasks.file-actions-integration.test.js → feature/task/file-actions-integration.test.js} +6 -6
  476. package/dist/tests/feature/task/file-actions-integration.test.js.map +1 -0
  477. package/dist/tests/{tasks.file-actions-validation.test.d.ts → feature/task/file-actions-validation.test.d.ts} +1 -1
  478. package/dist/tests/feature/task/file-actions-validation.test.d.ts.map +1 -0
  479. package/dist/tests/{tasks.file-actions-validation.test.js → feature/task/file-actions-validation.test.js} +11 -4
  480. package/dist/tests/feature/task/file-actions-validation.test.js.map +1 -0
  481. package/dist/tests/{tasks.link-file-backward-compat.test.d.ts → feature/task/link-file-backward-compat.test.d.ts} +1 -1
  482. package/dist/tests/feature/task/link-file-backward-compat.test.d.ts.map +1 -0
  483. package/dist/tests/{tasks.link-file-backward-compat.test.js → feature/task/link-file-backward-compat.test.js} +65 -40
  484. package/dist/tests/feature/task/link-file-backward-compat.test.js.map +1 -0
  485. package/dist/tests/{tasks.watch-files-action.test.d.ts → feature/task/watch-files-action.test.d.ts} +3 -1
  486. package/dist/tests/feature/task/watch-files-action.test.d.ts.map +1 -0
  487. package/dist/tests/{tasks.watch-files-action.test.js → feature/task/watch-files-action.test.js} +58 -36
  488. package/dist/tests/feature/task/watch-files-action.test.js.map +1 -0
  489. package/dist/tests/{tasks.watch-files-parameter.test.d.ts → feature/task/watch-files-parameter.test.d.ts} +3 -1
  490. package/dist/tests/feature/task/watch-files-parameter.test.d.ts.map +1 -0
  491. package/dist/tests/{tasks.watch-files-parameter.test.js → feature/task/watch-files-parameter.test.js} +64 -39
  492. package/dist/tests/feature/task/watch-files-parameter.test.js.map +1 -0
  493. package/dist/tests/feature/vcs/git-aware-completion.test.d.ts.map +1 -0
  494. package/dist/tests/{git-aware-completion.test.js → feature/vcs/git-aware-completion.test.js} +25 -11
  495. package/dist/tests/feature/vcs/git-aware-completion.test.js.map +1 -0
  496. package/dist/tests/feature/vcs/two-step-git-completion.test.d.ts.map +1 -0
  497. package/dist/tests/{two-step-git-completion.test.js → feature/vcs/two-step-git-completion.test.js} +2 -2
  498. package/dist/tests/feature/vcs/two-step-git-completion.test.js.map +1 -0
  499. package/dist/tests/feature/vcs/vcs-staging.test.d.ts.map +1 -0
  500. package/dist/tests/{vcs-staging.test.js → feature/vcs/vcs-staging.test.js} +8 -3
  501. package/dist/tests/feature/vcs/vcs-staging.test.js.map +1 -0
  502. package/dist/tests/{all-features.test.d.ts → integration/all-features.standalone.d.ts} +1 -1
  503. package/dist/tests/integration/all-features.standalone.d.ts.map +1 -0
  504. package/dist/tests/{all-features.test.js → integration/all-features.standalone.js} +7 -9
  505. package/dist/tests/integration/all-features.standalone.js.map +1 -0
  506. package/dist/tests/integration/auto-trigger-suggestions.test.d.ts +7 -0
  507. package/dist/tests/integration/auto-trigger-suggestions.test.d.ts.map +1 -0
  508. package/dist/tests/integration/auto-trigger-suggestions.test.js +331 -0
  509. package/dist/tests/integration/auto-trigger-suggestions.test.js.map +1 -0
  510. package/dist/tests/integration/decision-intelligence-e2e.test.d.ts +13 -0
  511. package/dist/tests/integration/decision-intelligence-e2e.test.d.ts.map +1 -0
  512. package/dist/tests/integration/decision-intelligence-e2e.test.js +558 -0
  513. package/dist/tests/integration/decision-intelligence-e2e.test.js.map +1 -0
  514. package/dist/tests/integration/e2e-workflow1-debug.test.d.ts +5 -0
  515. package/dist/tests/integration/e2e-workflow1-debug.test.d.ts.map +1 -0
  516. package/dist/tests/integration/e2e-workflow1-debug.test.js +99 -0
  517. package/dist/tests/integration/e2e-workflow1-debug.test.js.map +1 -0
  518. package/dist/tests/integration/hybrid-similarity-detection.test.d.ts +7 -0
  519. package/dist/tests/integration/hybrid-similarity-detection.test.d.ts.map +1 -0
  520. package/dist/tests/integration/hybrid-similarity-detection.test.js +512 -0
  521. package/dist/tests/integration/hybrid-similarity-detection.test.js.map +1 -0
  522. package/dist/tests/integration/suggest-simple.test.d.ts +5 -0
  523. package/dist/tests/integration/suggest-simple.test.d.ts.map +1 -0
  524. package/dist/tests/integration/suggest-simple.test.js +72 -0
  525. package/dist/tests/integration/suggest-simple.test.js.map +1 -0
  526. package/dist/tests/unit/universal-knex.test.d.ts +2 -0
  527. package/dist/tests/unit/universal-knex.test.d.ts.map +1 -0
  528. package/dist/tests/unit/universal-knex.test.js +250 -0
  529. package/dist/tests/unit/universal-knex.test.js.map +1 -0
  530. package/dist/tests/unit/utils/config-loader.test.d.ts.map +1 -0
  531. package/dist/tests/{config-loader.test.js → unit/utils/config-loader.test.js} +63 -42
  532. package/dist/tests/unit/utils/config-loader.test.js.map +1 -0
  533. package/dist/tests/unit/utils/project-detector.test.d.ts.map +1 -0
  534. package/dist/tests/{project-detector.test.js → unit/utils/project-detector.test.js} +1 -1
  535. package/dist/tests/unit/utils/project-detector.test.js.map +1 -0
  536. package/dist/tests/unit/utils/semver.test.d.ts +2 -0
  537. package/dist/tests/unit/utils/semver.test.d.ts.map +1 -0
  538. package/dist/tests/unit/utils/semver.test.js +72 -0
  539. package/dist/tests/unit/utils/semver.test.js.map +1 -0
  540. package/dist/tests/unit/validation/batch-validation.test.d.ts.map +1 -0
  541. package/dist/tests/{batch-validation.test.js → unit/validation/batch-validation.test.js} +2 -2
  542. package/dist/tests/unit/validation/batch-validation.test.js.map +1 -0
  543. package/dist/tests/unit/validation/parameter-validation.test.d.ts.map +1 -0
  544. package/dist/tests/{parameter-validation.test.js → unit/validation/parameter-validation.test.js} +9 -12
  545. package/dist/tests/unit/validation/parameter-validation.test.js.map +1 -0
  546. package/dist/tests/unit/validation/policy-validation.test.d.ts +15 -0
  547. package/dist/tests/unit/validation/policy-validation.test.d.ts.map +1 -0
  548. package/dist/tests/unit/validation/policy-validation.test.js +343 -0
  549. package/dist/tests/unit/validation/policy-validation.test.js.map +1 -0
  550. package/dist/tests/utils/db-config.d.ts +21 -0
  551. package/dist/tests/utils/db-config.d.ts.map +1 -0
  552. package/dist/tests/utils/db-config.js +59 -0
  553. package/dist/tests/utils/db-config.js.map +1 -0
  554. package/dist/tests/utils/db-import.d.ts +11 -0
  555. package/dist/tests/utils/db-import.d.ts.map +1 -0
  556. package/dist/tests/utils/db-import.js +38 -0
  557. package/dist/tests/utils/db-import.js.map +1 -0
  558. package/dist/tests/utils/db-schema.d.ts +58 -0
  559. package/dist/tests/utils/db-schema.d.ts.map +1 -0
  560. package/dist/tests/utils/db-schema.js +218 -0
  561. package/dist/tests/utils/db-schema.js.map +1 -0
  562. package/dist/tests/utils/db-seeding.d.ts +18 -0
  563. package/dist/tests/utils/db-seeding.d.ts.map +1 -0
  564. package/dist/tests/utils/db-seeding.js +54 -0
  565. package/dist/tests/utils/db-seeding.js.map +1 -0
  566. package/dist/tests/utils/index.d.ts +20 -0
  567. package/dist/tests/utils/index.d.ts.map +1 -0
  568. package/dist/tests/utils/index.js +26 -0
  569. package/dist/tests/utils/index.js.map +1 -0
  570. package/dist/tests/utils/task-helpers.d.ts +67 -0
  571. package/dist/tests/utils/task-helpers.d.ts.map +1 -0
  572. package/dist/tests/utils/task-helpers.js +151 -0
  573. package/dist/tests/utils/task-helpers.js.map +1 -0
  574. package/dist/tests/utils/test-helpers.d.ts +93 -1
  575. package/dist/tests/utils/test-helpers.d.ts.map +1 -1
  576. package/dist/tests/utils/test-helpers.js +232 -64
  577. package/dist/tests/utils/test-helpers.js.map +1 -1
  578. package/dist/tests/utils/test-lifecycle.d.ts +52 -0
  579. package/dist/tests/utils/test-lifecycle.d.ts.map +1 -0
  580. package/dist/tests/utils/test-lifecycle.js +88 -0
  581. package/dist/tests/utils/test-lifecycle.js.map +1 -0
  582. package/dist/tools/context/actions/analytics.d.ts +88 -0
  583. package/dist/tools/context/actions/analytics.d.ts.map +1 -0
  584. package/dist/tools/context/actions/analytics.js +92 -0
  585. package/dist/tools/context/actions/analytics.js.map +1 -0
  586. package/dist/tools/context/actions/create-policy.d.ts +38 -0
  587. package/dist/tools/context/actions/create-policy.d.ts.map +1 -0
  588. package/dist/tools/context/actions/create-policy.js +87 -0
  589. package/dist/tools/context/actions/create-policy.js.map +1 -0
  590. package/dist/tools/context/actions/create-template.js +2 -2
  591. package/dist/tools/context/actions/create-template.js.map +1 -1
  592. package/dist/tools/context/actions/get.d.ts.map +1 -1
  593. package/dist/tools/context/actions/get.js +5 -4
  594. package/dist/tools/context/actions/get.js.map +1 -1
  595. package/dist/tools/context/actions/has-updates.d.ts.map +1 -1
  596. package/dist/tools/context/actions/has-updates.js +4 -19
  597. package/dist/tools/context/actions/has-updates.js.map +1 -1
  598. package/dist/tools/context/actions/list-policies.d.ts +31 -0
  599. package/dist/tools/context/actions/list-policies.d.ts.map +1 -0
  600. package/dist/tools/context/actions/list-policies.js +55 -0
  601. package/dist/tools/context/actions/list-policies.js.map +1 -0
  602. package/dist/tools/context/actions/list-templates.d.ts.map +1 -1
  603. package/dist/tools/context/actions/list-templates.js +2 -1
  604. package/dist/tools/context/actions/list-templates.js.map +1 -1
  605. package/dist/tools/context/actions/list.d.ts +1 -1
  606. package/dist/tools/context/actions/list.d.ts.map +1 -1
  607. package/dist/tools/context/actions/list.js +24 -18
  608. package/dist/tools/context/actions/list.js.map +1 -1
  609. package/dist/tools/context/actions/search-advanced.d.ts.map +1 -1
  610. package/dist/tools/context/actions/search-advanced.js +61 -42
  611. package/dist/tools/context/actions/search-advanced.js.map +1 -1
  612. package/dist/tools/context/actions/search-layer.d.ts.map +1 -1
  613. package/dist/tools/context/actions/search-layer.js +16 -7
  614. package/dist/tools/context/actions/search-layer.js.map +1 -1
  615. package/dist/tools/context/actions/search-tags.d.ts.map +1 -1
  616. package/dist/tools/context/actions/search-tags.js +22 -14
  617. package/dist/tools/context/actions/search-tags.js.map +1 -1
  618. package/dist/tools/context/actions/set-from-policy.d.ts +28 -0
  619. package/dist/tools/context/actions/set-from-policy.d.ts.map +1 -0
  620. package/dist/tools/context/actions/set-from-policy.js +54 -0
  621. package/dist/tools/context/actions/set-from-policy.js.map +1 -0
  622. package/dist/tools/context/actions/set-from-template.d.ts.map +1 -1
  623. package/dist/tools/context/actions/set-from-template.js +2 -1
  624. package/dist/tools/context/actions/set-from-template.js.map +1 -1
  625. package/dist/tools/context/index.d.ts +5 -0
  626. package/dist/tools/context/index.d.ts.map +1 -1
  627. package/dist/tools/context/index.js +5 -0
  628. package/dist/tools/context/index.js.map +1 -1
  629. package/dist/tools/context/internal/queries.d.ts.map +1 -1
  630. package/dist/tools/context/internal/queries.js +551 -31
  631. package/dist/tools/context/internal/queries.js.map +1 -1
  632. package/dist/tools/context/internal/validation.d.ts +4 -0
  633. package/dist/tools/context/internal/validation.d.ts.map +1 -1
  634. package/dist/tools/context/internal/validation.js +13 -0
  635. package/dist/tools/context/internal/validation.js.map +1 -1
  636. package/dist/tools/help/actions/query-action.js +1 -1
  637. package/dist/tools/help/actions/query-action.js.map +1 -1
  638. package/dist/tools/help/actions/query-params.js +1 -1
  639. package/dist/tools/help/actions/query-params.js.map +1 -1
  640. package/dist/tools/help/actions/query-tool.js +1 -1
  641. package/dist/tools/help/actions/query-tool.js.map +1 -1
  642. package/dist/tools/help-queries.d.ts +12 -12
  643. package/dist/tools/help-queries.d.ts.map +1 -1
  644. package/dist/tools/help-queries.js +121 -140
  645. package/dist/tools/help-queries.js.map +1 -1
  646. package/dist/tools/suggest/actions/by-context.d.ts +28 -0
  647. package/dist/tools/suggest/actions/by-context.d.ts.map +1 -0
  648. package/dist/tools/suggest/actions/by-context.js +68 -0
  649. package/dist/tools/suggest/actions/by-context.js.map +1 -0
  650. package/dist/tools/suggest/actions/by-key.d.ts +20 -0
  651. package/dist/tools/suggest/actions/by-key.d.ts.map +1 -0
  652. package/dist/tools/suggest/actions/by-key.js +55 -0
  653. package/dist/tools/suggest/actions/by-key.js.map +1 -0
  654. package/dist/tools/suggest/actions/by-tags.d.ts +23 -0
  655. package/dist/tools/suggest/actions/by-tags.d.ts.map +1 -0
  656. package/dist/tools/suggest/actions/by-tags.js +58 -0
  657. package/dist/tools/suggest/actions/by-tags.js.map +1 -0
  658. package/dist/tools/suggest/actions/check-duplicate.d.ts +20 -0
  659. package/dist/tools/suggest/actions/check-duplicate.d.ts.map +1 -0
  660. package/dist/tools/suggest/actions/check-duplicate.js +59 -0
  661. package/dist/tools/suggest/actions/check-duplicate.js.map +1 -0
  662. package/dist/tools/suggest/help/help.d.ts +5 -0
  663. package/dist/tools/suggest/help/help.d.ts.map +1 -0
  664. package/dist/tools/suggest/help/help.js +50 -0
  665. package/dist/tools/suggest/help/help.js.map +1 -0
  666. package/dist/tools/suggest/index.d.ts +18 -0
  667. package/dist/tools/suggest/index.d.ts.map +1 -0
  668. package/dist/tools/suggest/index.js +55 -0
  669. package/dist/tools/suggest/index.js.map +1 -0
  670. package/dist/tools/suggest/internal/queries.d.ts +60 -0
  671. package/dist/tools/suggest/internal/queries.d.ts.map +1 -0
  672. package/dist/tools/suggest/internal/queries.js +154 -0
  673. package/dist/tools/suggest/internal/queries.js.map +1 -0
  674. package/dist/tools/suggest/types.d.ts +70 -0
  675. package/dist/tools/suggest/types.d.ts.map +1 -0
  676. package/dist/tools/suggest/types.js +5 -0
  677. package/dist/tools/suggest/types.js.map +1 -0
  678. package/dist/tools/tasks/actions/link-pruned-file.d.ts +1 -0
  679. package/dist/tools/tasks/actions/link-pruned-file.d.ts.map +1 -1
  680. package/dist/tools/tasks/actions/link-pruned-file.js +7 -2
  681. package/dist/tools/tasks/actions/link-pruned-file.js.map +1 -1
  682. package/dist/tools/tasks/actions/link.d.ts.map +1 -1
  683. package/dist/tools/tasks/actions/link.js +4 -2
  684. package/dist/tools/tasks/actions/link.js.map +1 -1
  685. package/dist/tools/tasks/actions/list.d.ts.map +1 -1
  686. package/dist/tools/tasks/actions/list.js +37 -35
  687. package/dist/tools/tasks/actions/list.js.map +1 -1
  688. package/dist/tools/use_case/actions/search.d.ts +1 -1
  689. package/dist/tools/use_case/actions/search.d.ts.map +1 -1
  690. package/dist/tools/use_case/actions/search.js +31 -40
  691. package/dist/tools/use_case/actions/search.js.map +1 -1
  692. package/dist/types/actions.d.ts +10 -0
  693. package/dist/types/actions.d.ts.map +1 -1
  694. package/dist/types/decision/params.d.ts +7 -0
  695. package/dist/types/decision/params.d.ts.map +1 -1
  696. package/dist/types/decision/responses.d.ts +38 -0
  697. package/dist/types/decision/responses.d.ts.map +1 -1
  698. package/dist/types/view-entities.d.ts +1 -0
  699. package/dist/types/view-entities.d.ts.map +1 -1
  700. package/dist/types.d.ts +154 -1
  701. package/dist/types.d.ts.map +1 -1
  702. package/dist/utils/action-specs/decision-specs.js +3 -3
  703. package/dist/utils/action-specs/decision-specs.js.map +1 -1
  704. package/dist/utils/activity-logging.d.ts.map +1 -1
  705. package/dist/utils/activity-logging.js +7 -0
  706. package/dist/utils/activity-logging.js.map +1 -1
  707. package/dist/utils/db-aggregations.d.ts +88 -0
  708. package/dist/utils/db-aggregations.d.ts.map +1 -0
  709. package/dist/utils/db-aggregations.js +158 -0
  710. package/dist/utils/db-aggregations.js.map +1 -0
  711. package/dist/utils/file-pruning.d.ts +37 -13
  712. package/dist/utils/file-pruning.d.ts.map +1 -1
  713. package/dist/utils/file-pruning.js +93 -84
  714. package/dist/utils/file-pruning.js.map +1 -1
  715. package/dist/utils/policy-validator.d.ts +37 -0
  716. package/dist/utils/policy-validator.d.ts.map +1 -0
  717. package/dist/utils/policy-validator.js +240 -0
  718. package/dist/utils/policy-validator.js.map +1 -0
  719. package/dist/utils/quality-checks.d.ts +7 -7
  720. package/dist/utils/quality-checks.d.ts.map +1 -1
  721. package/dist/utils/quality-checks.js +18 -21
  722. package/dist/utils/quality-checks.js.map +1 -1
  723. package/dist/utils/semver.d.ts +50 -0
  724. package/dist/utils/semver.d.ts.map +1 -0
  725. package/dist/utils/semver.js +78 -0
  726. package/dist/utils/semver.js.map +1 -0
  727. package/dist/utils/sql-dump/schema/tables.d.ts.map +1 -1
  728. package/dist/utils/sql-dump/schema/tables.js +125 -7
  729. package/dist/utils/sql-dump/schema/tables.js.map +1 -1
  730. package/dist/utils/sql-dump/schema/views.d.ts.map +1 -1
  731. package/dist/utils/sql-dump/schema/views.js +6 -0
  732. package/dist/utils/sql-dump/schema/views.js.map +1 -1
  733. package/dist/utils/suggestion-scorer.d.ts +62 -0
  734. package/dist/utils/suggestion-scorer.d.ts.map +1 -0
  735. package/dist/utils/suggestion-scorer.js +169 -0
  736. package/dist/utils/suggestion-scorer.js.map +1 -0
  737. package/dist/utils/tag-parser.d.ts +52 -0
  738. package/dist/utils/tag-parser.d.ts.map +1 -0
  739. package/dist/utils/tag-parser.js +65 -0
  740. package/dist/utils/tag-parser.js.map +1 -0
  741. package/dist/utils/task-stale-detection.d.ts.map +1 -1
  742. package/dist/utils/task-stale-detection.js +40 -4
  743. package/dist/utils/task-stale-detection.js.map +1 -1
  744. package/dist/utils/token-logging.d.ts +9 -9
  745. package/dist/utils/token-logging.d.ts.map +1 -1
  746. package/dist/utils/token-logging.js +36 -38
  747. package/dist/utils/token-logging.js.map +1 -1
  748. package/dist/utils/universal-knex.d.ts +169 -0
  749. package/dist/utils/universal-knex.d.ts.map +1 -0
  750. package/dist/utils/universal-knex.js +318 -0
  751. package/dist/utils/universal-knex.js.map +1 -0
  752. package/dist/utils/validators.d.ts +2 -2
  753. package/dist/utils/validators.d.ts.map +1 -1
  754. package/dist/utils/validators.js +3 -2
  755. package/dist/utils/validators.js.map +1 -1
  756. package/dist/utils/vcs-adapter.d.ts.map +1 -1
  757. package/dist/utils/vcs-adapter.js +21 -14
  758. package/dist/utils/vcs-adapter.js.map +1 -1
  759. package/dist/utils/view-queries.d.ts +11 -3
  760. package/dist/utils/view-queries.d.ts.map +1 -1
  761. package/dist/utils/view-queries.js +122 -87
  762. package/dist/utils/view-queries.js.map +1 -1
  763. package/dist/watcher/file-watcher.d.ts.map +1 -1
  764. package/dist/watcher/file-watcher.js +99 -84
  765. package/dist/watcher/file-watcher.js.map +1 -1
  766. package/docs/BEST_PRACTICES.md +10 -0
  767. package/docs/DECISION_CONTEXT.md +190 -1
  768. package/docs/DECISION_INTELLIGENCE.md +594 -0
  769. package/docs/MIGRATION_GUIDE_V3.9.0.md +371 -0
  770. package/docs/SLASH_COMMANDS.md +652 -0
  771. package/docs/TOOL_REFERENCE.md +164 -22
  772. package/docs/TOOL_SELECTION.md +16 -2
  773. package/docs/WORKFLOWS.md +163 -0
  774. package/docs/changelogs/CHANGELOG_ARCHIVE_v3.4_and_older.md +296 -0
  775. package/package.json +37 -12
  776. package/scripts/check-cross-db-patterns.sh +105 -0
  777. package/scripts/filter-test-output.js +74 -0
  778. package/scripts/verify-migrations.sh +129 -0
  779. package/dist/tests/all-features.test.d.ts.map +0 -1
  780. package/dist/tests/all-features.test.js.map +0 -1
  781. package/dist/tests/batch-validation-comprehensive.test.d.ts.map +0 -1
  782. package/dist/tests/batch-validation-comprehensive.test.js.map +0 -1
  783. package/dist/tests/batch-validation-integration.test.d.ts.map +0 -1
  784. package/dist/tests/batch-validation-integration.test.js.map +0 -1
  785. package/dist/tests/batch-validation.test.d.ts.map +0 -1
  786. package/dist/tests/batch-validation.test.js.map +0 -1
  787. package/dist/tests/config-loader.test.d.ts.map +0 -1
  788. package/dist/tests/config-loader.test.js.map +0 -1
  789. package/dist/tests/connection-manager-integration.test.d.ts.map +0 -1
  790. package/dist/tests/connection-manager-integration.test.js.map +0 -1
  791. package/dist/tests/connection-manager.test.d.ts.map +0 -1
  792. package/dist/tests/connection-manager.test.js.map +0 -1
  793. package/dist/tests/context-modular.test.d.ts.map +0 -1
  794. package/dist/tests/context-modular.test.js.map +0 -1
  795. package/dist/tests/decision-batch-validation.test.d.ts.map +0 -1
  796. package/dist/tests/decision-batch-validation.test.js.map +0 -1
  797. package/dist/tests/dump-import.test.d.ts.map +0 -1
  798. package/dist/tests/dump-import.test.js.map +0 -1
  799. package/dist/tests/git-aware-completion.test.d.ts.map +0 -1
  800. package/dist/tests/git-aware-completion.test.js.map +0 -1
  801. package/dist/tests/help-system.test.d.ts.map +0 -1
  802. package/dist/tests/help-system.test.js.map +0 -1
  803. package/dist/tests/migration-idempotency.test.d.ts +0 -2
  804. package/dist/tests/migration-idempotency.test.d.ts.map +0 -1
  805. package/dist/tests/migration-idempotency.test.js.map +0 -1
  806. package/dist/tests/migration-upgrade-paths.test.d.ts +0 -2
  807. package/dist/tests/migration-upgrade-paths.test.d.ts.map +0 -1
  808. package/dist/tests/migration-upgrade-paths.test.js.map +0 -1
  809. package/dist/tests/multi-project-migration.test.d.ts.map +0 -1
  810. package/dist/tests/multi-project-migration.test.js.map +0 -1
  811. package/dist/tests/multi-project.test.d.ts.map +0 -1
  812. package/dist/tests/multi-project.test.js.map +0 -1
  813. package/dist/tests/parameter-validation.test.d.ts.map +0 -1
  814. package/dist/tests/parameter-validation.test.js.map +0 -1
  815. package/dist/tests/project-detector.test.d.ts.map +0 -1
  816. package/dist/tests/project-detector.test.js.map +0 -1
  817. package/dist/tests/schema-migration.test.d.ts.map +0 -1
  818. package/dist/tests/schema-migration.test.js.map +0 -1
  819. package/dist/tests/sql-dump-converters.test.d.ts.map +0 -1
  820. package/dist/tests/sql-dump-converters.test.js.map +0 -1
  821. package/dist/tests/sql-dump-cross-database.test.d.ts.map +0 -1
  822. package/dist/tests/sql-dump-cross-database.test.js.map +0 -1
  823. package/dist/tests/sql-dump-default-conversions.test.d.ts.map +0 -1
  824. package/dist/tests/sql-dump-default-conversions.test.js.map +0 -1
  825. package/dist/tests/sql-dump-fk-constraints.test.d.ts.map +0 -1
  826. package/dist/tests/sql-dump-fk-constraints.test.js.map +0 -1
  827. package/dist/tests/sql-dump-indexes.test.d.ts.map +0 -1
  828. package/dist/tests/sql-dump-indexes.test.js.map +0 -1
  829. package/dist/tests/sql-dump-integration.test.d.ts.map +0 -1
  830. package/dist/tests/sql-dump-integration.test.js.map +0 -1
  831. package/dist/tests/sql-dump-table-ordering.test.d.ts +0 -8
  832. package/dist/tests/sql-dump-table-ordering.test.d.ts.map +0 -1
  833. package/dist/tests/sql-dump-table-ordering.test.js.map +0 -1
  834. package/dist/tests/tasks.auto-pruning-decision-link.test.d.ts.map +0 -1
  835. package/dist/tests/tasks.auto-pruning-decision-link.test.js.map +0 -1
  836. package/dist/tests/tasks.auto-pruning-partial.test.d.ts.map +0 -1
  837. package/dist/tests/tasks.auto-pruning-partial.test.js.map +0 -1
  838. package/dist/tests/tasks.auto-pruning-persistence.test.d.ts.map +0 -1
  839. package/dist/tests/tasks.auto-pruning-persistence.test.js.map +0 -1
  840. package/dist/tests/tasks.auto-pruning-safety.test.d.ts.map +0 -1
  841. package/dist/tests/tasks.auto-pruning-safety.test.js.map +0 -1
  842. package/dist/tests/tasks.dependencies.test.d.ts.map +0 -1
  843. package/dist/tests/tasks.dependencies.test.js.map +0 -1
  844. package/dist/tests/tasks.file-actions-integration.test.d.ts.map +0 -1
  845. package/dist/tests/tasks.file-actions-integration.test.js.map +0 -1
  846. package/dist/tests/tasks.file-actions-validation.test.d.ts.map +0 -1
  847. package/dist/tests/tasks.file-actions-validation.test.js.map +0 -1
  848. package/dist/tests/tasks.link-file-backward-compat.test.d.ts.map +0 -1
  849. package/dist/tests/tasks.link-file-backward-compat.test.js.map +0 -1
  850. package/dist/tests/tasks.watch-files-action.test.d.ts.map +0 -1
  851. package/dist/tests/tasks.watch-files-action.test.js.map +0 -1
  852. package/dist/tests/tasks.watch-files-parameter.test.d.ts.map +0 -1
  853. package/dist/tests/tasks.watch-files-parameter.test.js.map +0 -1
  854. package/dist/tests/two-step-git-completion.test.d.ts.map +0 -1
  855. package/dist/tests/two-step-git-completion.test.js.map +0 -1
  856. package/dist/tests/type-conversion.test.d.ts.map +0 -1
  857. package/dist/tests/type-conversion.test.js.map +0 -1
  858. package/dist/tests/vcs-staging.test.d.ts.map +0 -1
  859. package/dist/tests/vcs-staging.test.js.map +0 -1
  860. package/dist/utils/sql-dump.d.ts +0 -102
  861. package/dist/utils/sql-dump.d.ts.map +0 -1
  862. package/dist/utils/sql-dump.js +0 -1590
  863. package/dist/utils/sql-dump.js.map +0 -1
  864. /package/dist/tests/{connection-manager-integration.test.d.ts → database/connection/connection-manager-integration.test.d.ts} +0 -0
  865. /package/dist/tests/{connection-manager.test.d.ts → database/connection/connection-manager.test.d.ts} +0 -0
  866. /package/dist/tests/{multi-project.test.d.ts → database/multi-project/multi-project.test.d.ts} +0 -0
  867. /package/dist/tests/{type-conversion.test.d.ts → database/sql-dump/type-conversion.test.d.ts} +0 -0
  868. /package/dist/tests/{dump-import.test.d.ts → docker/dump-import.test.d.ts} +0 -0
  869. /package/dist/tests/{multi-project-migration.test.d.ts → docker/multi-project-migration.test.d.ts} +0 -0
  870. /package/dist/tests/{schema-migration.test.d.ts → docker/schema-migration.test.d.ts} +0 -0
  871. /package/dist/tests/{batch-validation-comprehensive.test.d.ts → feature/decision/batch-validation-comprehensive.test.d.ts} +0 -0
  872. /package/dist/tests/{batch-validation-integration.test.d.ts → feature/decision/batch-validation-integration.test.d.ts} +0 -0
  873. /package/dist/tests/{context-modular.test.d.ts → feature/decision/context-modular.test.d.ts} +0 -0
  874. /package/dist/tests/{help-system.test.d.ts → feature/help/help-system.test.d.ts} +0 -0
  875. /package/dist/tests/{git-aware-completion.test.d.ts → feature/vcs/git-aware-completion.test.d.ts} +0 -0
  876. /package/dist/tests/{two-step-git-completion.test.d.ts → feature/vcs/two-step-git-completion.test.d.ts} +0 -0
  877. /package/dist/tests/{vcs-staging.test.d.ts → feature/vcs/vcs-staging.test.d.ts} +0 -0
  878. /package/dist/tests/{config-loader.test.d.ts → unit/utils/config-loader.test.d.ts} +0 -0
  879. /package/dist/tests/{project-detector.test.d.ts → unit/utils/project-detector.test.d.ts} +0 -0
  880. /package/dist/tests/{batch-validation.test.d.ts → unit/validation/batch-validation.test.d.ts} +0 -0
  881. /package/dist/tests/{parameter-validation.test.d.ts → unit/validation/parameter-validation.test.d.ts} +0 -0
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Converted from: src/config/knex/enhancements/20251115000000_fix_task_decision_links_unique_constraint.ts
3
+ * Changes:
4
+ * - Added Universal Knex Wrapper for database detection
5
+ * - Replaced manual client detection with db.isSQLite, db.isMySQL, db.isPostgreSQL
6
+ * - Used db.createTableSafe pattern (manual in this case for data preservation)
7
+ * - Line count: 149 (original) → 141 (5% reduction)
8
+ */
9
+ import type { Knex } from "knex";
10
+ /**
11
+ * Enhancement Migration: Fix t_task_decision_links UNIQUE Constraint
12
+ *
13
+ * Root Cause:
14
+ * - Bootstrap migration created table with composite PRIMARY KEY (task_id, decision_key_id)
15
+ * - v3.7.0 upgrade migration recreated table with AUTO INCREMENT id PRIMARY KEY
16
+ * - But v3.7.0 forgot to add UNIQUE(task_id, decision_key_id) constraint
17
+ * - Result: .onConflict(['task_id', 'decision_key_id']) fails with "no UNIQUE constraint"
18
+ *
19
+ * This migration:
20
+ * - Recreates t_task_decision_links with proper UNIQUE constraint
21
+ * - Preserves all data
22
+ * - Idempotent (safe to run multiple times)
23
+ * - Fixes both existing databases and future fresh installs
24
+ *
25
+ * Related Decision: v3.7.0/task-decision-links-schema-discrepancy
26
+ */
27
+ export declare function up(knex: Knex): Promise<void>;
28
+ export declare function down(knex: Knex): Promise<void>;
29
+ //# sourceMappingURL=20251115000000_fix_task_decision_links_unique_constraint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251115000000_fix_task_decision_links_unique_constraint.d.ts","sourceRoot":"","sources":["../../../src/database/migrations/20251115000000_fix_task_decision_links_unique_constraint.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC;;;;;;;;;;;;;;;;GAgBG;AAEH,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA2FlD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCpD"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Converted from: src/config/knex/enhancements/20251115000000_fix_task_decision_links_unique_constraint.ts
3
+ * Changes:
4
+ * - Added Universal Knex Wrapper for database detection
5
+ * - Replaced manual client detection with db.isSQLite, db.isMySQL, db.isPostgreSQL
6
+ * - Used db.createTableSafe pattern (manual in this case for data preservation)
7
+ * - Line count: 149 (original) → 141 (5% reduction)
8
+ */
9
+ import { UniversalKnex } from "../../utils/universal-knex.js";
10
+ /**
11
+ * Enhancement Migration: Fix t_task_decision_links UNIQUE Constraint
12
+ *
13
+ * Root Cause:
14
+ * - Bootstrap migration created table with composite PRIMARY KEY (task_id, decision_key_id)
15
+ * - v3.7.0 upgrade migration recreated table with AUTO INCREMENT id PRIMARY KEY
16
+ * - But v3.7.0 forgot to add UNIQUE(task_id, decision_key_id) constraint
17
+ * - Result: .onConflict(['task_id', 'decision_key_id']) fails with "no UNIQUE constraint"
18
+ *
19
+ * This migration:
20
+ * - Recreates t_task_decision_links with proper UNIQUE constraint
21
+ * - Preserves all data
22
+ * - Idempotent (safe to run multiple times)
23
+ * - Fixes both existing databases and future fresh installs
24
+ *
25
+ * Related Decision: v3.7.0/task-decision-links-schema-discrepancy
26
+ */
27
+ export async function up(knex) {
28
+ const db = new UniversalKnex(knex);
29
+ // Check if UNIQUE constraint already exists
30
+ if (db.isSQLite) {
31
+ // SQLite: Check if UNIQUE index exists
32
+ const indexes = await knex.raw(`
33
+ SELECT name FROM sqlite_master
34
+ WHERE type='index'
35
+ AND tbl_name='t_task_decision_links'
36
+ AND (
37
+ name LIKE '%unique%'
38
+ OR sql LIKE '%UNIQUE%'
39
+ )
40
+ `);
41
+ if (indexes.length > 0) {
42
+ console.log('✓ UNIQUE constraint already exists on t_task_decision_links, skipping');
43
+ return;
44
+ }
45
+ }
46
+ else {
47
+ // MySQL/PostgreSQL: Check constraints
48
+ const hasUniqueConstraint = await knex.schema.raw(`
49
+ SELECT COUNT(*) as count
50
+ FROM information_schema.table_constraints
51
+ WHERE table_name = 't_task_decision_links'
52
+ AND constraint_type = 'UNIQUE'
53
+ `).then((result) => {
54
+ const row = result[0] || result.rows?.[0];
55
+ return row && row.count > 0;
56
+ });
57
+ if (hasUniqueConstraint) {
58
+ console.log('✓ UNIQUE constraint already exists on t_task_decision_links, skipping');
59
+ return;
60
+ }
61
+ }
62
+ console.log('🔧 Recreating t_task_decision_links with UNIQUE constraint...');
63
+ // Step 1: Backup existing data
64
+ const existingData = await knex('t_task_decision_links').select('*');
65
+ console.log(` Backed up ${existingData.length} links`);
66
+ // Step 2: Drop existing table
67
+ await knex.schema.dropTableIfExists('t_task_decision_links');
68
+ console.log(' Dropped old table');
69
+ // Step 3: Recreate table with UNIQUE constraint
70
+ await knex.schema.createTable('t_task_decision_links', (table) => {
71
+ table.increments('id').primary();
72
+ table.integer('task_id').unsigned().notNullable();
73
+ table.integer('decision_key_id').unsigned().notNullable();
74
+ table.integer('project_id').unsigned().notNullable().defaultTo(1);
75
+ table.text('link_type').defaultTo('implements');
76
+ table.integer('linked_ts').notNullable();
77
+ // ✅ Add UNIQUE constraint (the missing piece!)
78
+ table.unique(['task_id', 'decision_key_id'], {
79
+ indexName: 'idx_task_decision_links_unique'
80
+ });
81
+ // Foreign keys
82
+ table.foreign('task_id').references('id').inTable('t_tasks').onDelete('CASCADE');
83
+ table.foreign('decision_key_id').references('id').inTable('m_context_keys');
84
+ table.foreign('project_id').references('id').inTable('m_projects').onDelete('CASCADE');
85
+ // Indexes
86
+ table.index('task_id', 'idx_task_decision_links_task');
87
+ table.index('decision_key_id', 'idx_task_decision_links_decision');
88
+ table.index(['project_id', 'task_id'], 'idx_task_decision_links_project');
89
+ });
90
+ console.log(' Created new table with UNIQUE constraint');
91
+ // Step 4: Restore data (preserving all columns including id)
92
+ if (existingData.length > 0) {
93
+ // Ensure all required columns exist, fill missing ones
94
+ const dataToRestore = existingData.map((row) => ({
95
+ id: row.id,
96
+ task_id: row.task_id,
97
+ decision_key_id: row.decision_key_id,
98
+ project_id: row.project_id || 1,
99
+ link_type: row.link_type || 'implements',
100
+ linked_ts: row.linked_ts || Math.floor(Date.now() / 1000)
101
+ }));
102
+ await knex('t_task_decision_links').insert(dataToRestore);
103
+ console.log(` Restored ${dataToRestore.length} links`);
104
+ }
105
+ console.log('✅ Successfully fixed t_task_decision_links UNIQUE constraint');
106
+ }
107
+ export async function down(knex) {
108
+ console.log('🔄 Rolling back UNIQUE constraint fix...');
109
+ // Backup data
110
+ const existingData = await knex('t_task_decision_links').select('*');
111
+ // Recreate table WITHOUT UNIQUE constraint (back to broken state)
112
+ await knex.schema.dropTableIfExists('t_task_decision_links');
113
+ await knex.schema.createTable('t_task_decision_links', (table) => {
114
+ table.increments('id').primary();
115
+ table.integer('task_id').unsigned().notNullable();
116
+ table.integer('decision_key_id').unsigned().notNullable();
117
+ table.integer('project_id').unsigned().notNullable().defaultTo(1);
118
+ table.text('link_type').defaultTo('implements');
119
+ table.integer('linked_ts').notNullable();
120
+ // Foreign keys
121
+ table.foreign('task_id').references('id').inTable('t_tasks').onDelete('CASCADE');
122
+ table.foreign('decision_key_id').references('id').inTable('m_context_keys');
123
+ table.foreign('project_id').references('id').inTable('m_projects').onDelete('CASCADE');
124
+ // Indexes (no UNIQUE constraint)
125
+ table.index('task_id', 'idx_task_decision_links_task');
126
+ table.index('decision_key_id', 'idx_task_decision_links_decision');
127
+ table.index(['project_id', 'task_id'], 'idx_task_decision_links_project');
128
+ });
129
+ // Restore data
130
+ if (existingData.length > 0) {
131
+ await knex('t_task_decision_links').insert(existingData);
132
+ }
133
+ console.log('✅ Rolled back to schema without UNIQUE constraint');
134
+ }
135
+ //# sourceMappingURL=20251115000000_fix_task_decision_links_unique_constraint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251115000000_fix_task_decision_links_unique_constraint.js","sourceRoot":"","sources":["../../../src/database/migrations/20251115000000_fix_task_decision_links_unique_constraint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Converted from: src/config/knex/enhancements/20251115100000_fix_read_keyword_index_v3_9_0.ts
3
+ *
4
+ * Changes:
5
+ * - Replaced DB-specific client detection with UniversalKnex wrapper
6
+ * - Eliminated 45+ lines of conditional DB logic
7
+ * - Used db.createIndexSafe() for cross-database index creation
8
+ * - Line count: 75 → 38 (49% reduction)
9
+ *
10
+ * Migration: Fix idx_messages_to_agent Index - MySQL Reserved Keyword (v3.9.0)
11
+ *
12
+ * Problem: Bootstrap migration 20251025021351_create_indexes.ts creates index on
13
+ * t_agent_messages(to_agent_id, read) but 'read' is a reserved keyword in MySQL/MariaDB.
14
+ *
15
+ * Solution: Drop and recreate index with properly quoted column name.
16
+ *
17
+ * Note: This is a hotfix migration. We cannot edit the bootstrap migration since
18
+ * it's already pushed to the repository.
19
+ */
20
+ import type { Knex } from "knex";
21
+ export declare function up(knex: Knex): Promise<void>;
22
+ export declare function down(knex: Knex): Promise<void>;
23
+ //# sourceMappingURL=20251115100000_fix_read_keyword_index_v3_9_0.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251115100000_fix_read_keyword_index_v3_9_0.d.ts","sourceRoot":"","sources":["../../../src/database/migrations/20251115100000_fix_read_keyword_index_v3_9_0.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBlD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpD"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Converted from: src/config/knex/enhancements/20251115100000_fix_read_keyword_index_v3_9_0.ts
3
+ *
4
+ * Changes:
5
+ * - Replaced DB-specific client detection with UniversalKnex wrapper
6
+ * - Eliminated 45+ lines of conditional DB logic
7
+ * - Used db.createIndexSafe() for cross-database index creation
8
+ * - Line count: 75 → 38 (49% reduction)
9
+ *
10
+ * Migration: Fix idx_messages_to_agent Index - MySQL Reserved Keyword (v3.9.0)
11
+ *
12
+ * Problem: Bootstrap migration 20251025021351_create_indexes.ts creates index on
13
+ * t_agent_messages(to_agent_id, read) but 'read' is a reserved keyword in MySQL/MariaDB.
14
+ *
15
+ * Solution: Drop and recreate index with properly quoted column name.
16
+ *
17
+ * Note: This is a hotfix migration. We cannot edit the bootstrap migration since
18
+ * it's already pushed to the repository.
19
+ */
20
+ import { UniversalKnex } from "../../utils/universal-knex.js";
21
+ export async function up(knex) {
22
+ const db = new UniversalKnex(knex);
23
+ // Check if table exists
24
+ const hasTable = await knex.schema.hasTable('t_agent_messages');
25
+ if (!hasTable) {
26
+ console.log('⏭️ Skipping index fix: t_agent_messages table does not exist');
27
+ return;
28
+ }
29
+ // Drop the problematic index if it exists
30
+ await knex.raw('DROP INDEX IF EXISTS idx_messages_to_agent');
31
+ // Recreate index with properly quoted column name
32
+ // Note: 'read' is a reserved keyword, needs quoting (backticks for MySQL, quotes for SQLite/PostgreSQL)
33
+ const readColumn = db.isMySQL ? '`read`' : '"read"';
34
+ await db.createIndexSafe('t_agent_messages', ['to_agent_id', readColumn], 'idx_messages_to_agent');
35
+ console.log('✅ Fixed idx_messages_to_agent index with quoted column name');
36
+ }
37
+ export async function down(knex) {
38
+ // Drop the fixed index
39
+ await knex.raw('DROP INDEX IF EXISTS idx_messages_to_agent');
40
+ console.log('✅ Dropped idx_messages_to_agent index');
41
+ }
42
+ //# sourceMappingURL=20251115100000_fix_read_keyword_index_v3_9_0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251115100000_fix_read_keyword_index_v3_9_0.js","sourceRoot":"","sources":["../../../src/database/migrations/20251115100000_fix_read_keyword_index_v3_9_0.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,MAAM,EAAE,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IAEnC,wBAAwB;IACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;QAC7E,OAAO;IACT,CAAC;IAED,0CAA0C;IAC1C,MAAM,IAAI,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAE7D,kDAAkD;IAClD,wGAAwG;IACxG,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IACpD,MAAM,EAAE,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC,EAAE,uBAAuB,CAAC,CAAC;IAEnG,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,uBAAuB;IACvB,MAAM,IAAI,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAE7D,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;AACvD,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Converted from: src/config/knex/enhancements/20251115110000_fix_cross_database_timestamps_v3_9_0.ts
3
+ *
4
+ * Changes:
5
+ * - Replaced DB-specific client detection with UniversalKnex wrapper
6
+ * - Used db.createTableSafe() for idempotent table creation
7
+ * - Used db.addColumnSafe() for idempotent column additions
8
+ * - Used db.timestampColumn() and db.primaryKeyString() helpers
9
+ * - Eliminated 40+ lines of conditional DB logic
10
+ * - Line count: 153 → 82 (46% reduction)
11
+ *
12
+ * Migration: Fix Cross-Database Timestamp Defaults (v3.9.0)
13
+ *
14
+ * Problem: Upgrade migration 20251112000000_decision_intelligence_v3_9_0.ts uses
15
+ * SQLite-specific strftime('%s', 'now') for DEFAULT values, which fails on PostgreSQL.
16
+ *
17
+ * Solution: This migration acts as a "catch-up" to complete the work if the original
18
+ * migration failed on non-SQLite databases. It uses database-aware timestamp functions.
19
+ *
20
+ * Note: This is a hotfix migration. We cannot edit the pushed upgrade migration.
21
+ */
22
+ import type { Knex } from "knex";
23
+ export declare function up(knex: Knex): Promise<void>;
24
+ export declare function down(knex: Knex): Promise<void>;
25
+ //# sourceMappingURL=20251115110000_fix_cross_database_timestamps_v3_9_0.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251115110000_fix_cross_database_timestamps_v3_9_0.d.ts","sourceRoot":"","sources":["../../../src/database/migrations/20251115110000_fix_cross_database_timestamps_v3_9_0.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAgFlD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAepD"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Converted from: src/config/knex/enhancements/20251115110000_fix_cross_database_timestamps_v3_9_0.ts
3
+ *
4
+ * Changes:
5
+ * - Replaced DB-specific client detection with UniversalKnex wrapper
6
+ * - Used db.createTableSafe() for idempotent table creation
7
+ * - Used db.addColumnSafe() for idempotent column additions
8
+ * - Used db.timestampColumn() and db.primaryKeyString() helpers
9
+ * - Eliminated 40+ lines of conditional DB logic
10
+ * - Line count: 153 → 82 (46% reduction)
11
+ *
12
+ * Migration: Fix Cross-Database Timestamp Defaults (v3.9.0)
13
+ *
14
+ * Problem: Upgrade migration 20251112000000_decision_intelligence_v3_9_0.ts uses
15
+ * SQLite-specific strftime('%s', 'now') for DEFAULT values, which fails on PostgreSQL.
16
+ *
17
+ * Solution: This migration acts as a "catch-up" to complete the work if the original
18
+ * migration failed on non-SQLite databases. It uses database-aware timestamp functions.
19
+ *
20
+ * Note: This is a hotfix migration. We cannot edit the pushed upgrade migration.
21
+ */
22
+ import { UniversalKnex } from "../../utils/universal-knex.js";
23
+ export async function up(knex) {
24
+ const db = new UniversalKnex(knex);
25
+ // Skip on SQLite - original migration works fine there
26
+ if (db.isSQLite) {
27
+ console.log('✓ SQLite: Original migration already handled timestamps correctly');
28
+ return;
29
+ }
30
+ console.log(`🔧 Fixing cross-database timestamp issues for ${db.isMySQL ? 'MySQL' : 'PostgreSQL'}...`);
31
+ // ============================================================================
32
+ // Fix t_decision_policies table
33
+ // ============================================================================
34
+ const hasPoliciesTable = await knex.schema.hasTable('t_decision_policies');
35
+ if (hasPoliciesTable) {
36
+ // Add missing columns if needed
37
+ await db.addColumnSafe('t_decision_policies', 'project_id', (table) => table.integer('project_id').notNullable().defaultTo(1));
38
+ await db.addColumnSafe('t_decision_policies', 'created_by', (table) => table.integer('created_by').nullable());
39
+ // Check if ts column exists
40
+ const hasTs = await knex.schema.hasColumn('t_decision_policies', 'ts');
41
+ if (!hasTs) {
42
+ console.log(' ⏭️ Adding ts column to t_decision_policies...');
43
+ await knex.schema.alterTable('t_decision_policies', (table) => {
44
+ table.integer('ts').nullable();
45
+ });
46
+ // Populate ts column with current timestamp
47
+ const currentTs = Math.floor(Date.now() / 1000);
48
+ await knex('t_decision_policies').update({ ts: currentTs });
49
+ // Make ts NOT NULL
50
+ if (db.isMySQL) {
51
+ await knex.raw('ALTER TABLE t_decision_policies MODIFY ts INT NOT NULL');
52
+ }
53
+ else if (db.isPostgreSQL) {
54
+ await knex.raw('ALTER TABLE t_decision_policies ALTER COLUMN ts SET NOT NULL');
55
+ }
56
+ console.log(' ✅ Fixed t_decision_policies columns');
57
+ }
58
+ else {
59
+ console.log(' ✓ t_decision_policies already has required columns');
60
+ }
61
+ }
62
+ // ============================================================================
63
+ // Fix t_decision_pruning_log table
64
+ // ============================================================================
65
+ await db.createTableSafe('t_decision_pruning_log', (table, helpers) => {
66
+ table.increments('id').primary();
67
+ table.integer('original_decision_id').notNullable();
68
+ table.string('original_key', 256).notNullable();
69
+ table.text('original_value').notNullable();
70
+ table.integer('original_version').notNullable();
71
+ table.bigInteger('original_ts').notNullable();
72
+ table.integer('project_id').notNullable().defaultTo(1);
73
+ table.bigInteger('pruned_ts').notNullable().defaultTo(Math.floor(Date.now() / 1000));
74
+ });
75
+ // ============================================================================
76
+ // Fix m_tag_index table
77
+ // ============================================================================
78
+ await db.createTableSafe('m_tag_index', (table, helpers) => {
79
+ // Use VARCHAR(191) for PRIMARY KEY (MySQL/MariaDB utf8mb4 compatibility)
80
+ helpers.primaryKeyString('tag_name', 191);
81
+ table.integer('decision_count').notNullable().defaultTo(0);
82
+ table.integer('constraint_count').notNullable().defaultTo(0);
83
+ table.integer('task_count').notNullable().defaultTo(0);
84
+ table.integer('total_count').notNullable().defaultTo(0);
85
+ });
86
+ console.log('✅ Cross-database timestamp fixes applied successfully');
87
+ }
88
+ export async function down(knex) {
89
+ const db = new UniversalKnex(knex);
90
+ if (db.isSQLite) {
91
+ console.log('✓ SQLite: No rollback needed');
92
+ return;
93
+ }
94
+ // This migration is a hotfix, so down() should not break the database
95
+ // We'll just log what we would do but not actually drop columns/tables
96
+ console.log('⚠️ Hotfix migration rollback: Not dropping columns/tables to preserve data');
97
+ console.log(' If you need to rollback, manually drop the columns/tables:');
98
+ console.log(' - t_decision_policies: project_id, created_by, ts');
99
+ console.log(' - t_decision_pruning_log: entire table');
100
+ console.log(' - m_tag_index: entire table');
101
+ }
102
+ //# sourceMappingURL=20251115110000_fix_cross_database_timestamps_v3_9_0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251115110000_fix_cross_database_timestamps_v3_9_0.js","sourceRoot":"","sources":["../../../src/database/migrations/20251115110000_fix_cross_database_timestamps_v3_9_0.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Converted from: src/config/knex/enhancements/20251115120000_fix_all_cross_db_issues_v3_9_0.ts
3
+ * Changes:
4
+ * - Added Universal Knex Wrapper for database detection
5
+ * - Replaced manual client detection with db.isSQLite
6
+ * - Line count: 55 (original) � 50 (9% reduction)
7
+ */
8
+ import type { Knex } from "knex";
9
+ /**
10
+ * Migration: Final Cross-Database Compatibility Hotfix (v3.9.0)
11
+ *
12
+ * This migration runs AFTER all v3.9.0 migrations to ensure cross-database
13
+ * compatibility. It acts as a "safety net" to handle any issues that weren't
14
+ * caught by the pre-emptive migrations.
15
+ *
16
+ * Fixes:
17
+ * 1. Ensures all tables exist (no-op if already created)
18
+ * 2. Database-agnostic - skips on SQLite, handles MySQL/PostgreSQL specifics
19
+ *
20
+ * Note: This is a final safety migration. All future migrations should use
21
+ * database-aware syntax from the start.
22
+ */
23
+ export declare function up(knex: Knex): Promise<void>;
24
+ export declare function down(knex: Knex): Promise<void>;
25
+ //# sourceMappingURL=20251115120000_fix_all_cross_db_issues_v3_9_0.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251115120000_fix_all_cross_db_issues_v3_9_0.d.ts","sourceRoot":"","sources":["../../../src/database/migrations/20251115120000_fix_all_cross_db_issues_v3_9_0.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC;;;;;;;;;;;;;GAaG;AAEH,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BlD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpD"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Converted from: src/config/knex/enhancements/20251115120000_fix_all_cross_db_issues_v3_9_0.ts
3
+ * Changes:
4
+ * - Added Universal Knex Wrapper for database detection
5
+ * - Replaced manual client detection with db.isSQLite
6
+ * - Line count: 55 (original) � 50 (9% reduction)
7
+ */
8
+ import { UniversalKnex } from "../../utils/universal-knex.js";
9
+ /**
10
+ * Migration: Final Cross-Database Compatibility Hotfix (v3.9.0)
11
+ *
12
+ * This migration runs AFTER all v3.9.0 migrations to ensure cross-database
13
+ * compatibility. It acts as a "safety net" to handle any issues that weren't
14
+ * caught by the pre-emptive migrations.
15
+ *
16
+ * Fixes:
17
+ * 1. Ensures all tables exist (no-op if already created)
18
+ * 2. Database-agnostic - skips on SQLite, handles MySQL/PostgreSQL specifics
19
+ *
20
+ * Note: This is a final safety migration. All future migrations should use
21
+ * database-aware syntax from the start.
22
+ */
23
+ export async function up(knex) {
24
+ const db = new UniversalKnex(knex);
25
+ // Skip on SQLite - all migrations work correctly there
26
+ if (db.isSQLite) {
27
+ console.log(' SQLite: All migrations completed successfully');
28
+ return;
29
+ }
30
+ const dbType = db.isMySQL ? 'MySQL' : db.isPostgreSQL ? 'PostgreSQL' : 'Unknown';
31
+ console.log(`=' Final cross-database safety check for ${dbType}...`);
32
+ // Verify all critical tables exist
33
+ const criticalTables = [
34
+ 't_decision_policies',
35
+ 'm_tag_index',
36
+ 't_decision_pruning_log',
37
+ 't_task_pruned_files'
38
+ ];
39
+ for (const tableName of criticalTables) {
40
+ const exists = await knex.schema.hasTable(tableName);
41
+ if (!exists) {
42
+ console.log(`� WARNING: Table ${tableName} does not exist!`);
43
+ console.log(` This suggests a migration failure. Please check migration logs.`);
44
+ }
45
+ else {
46
+ console.log(`  ${tableName} exists`);
47
+ }
48
+ }
49
+ console.log(' Cross-database compatibility verified');
50
+ }
51
+ export async function down(knex) {
52
+ // This is a safety check migration - no rollback needed
53
+ console.log(' Safety check migration - no rollback actions');
54
+ }
55
+ //# sourceMappingURL=20251115120000_fix_all_cross_db_issues_v3_9_0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251115120000_fix_all_cross_db_issues_v3_9_0.js","sourceRoot":"","sources":["../../../src/database/migrations/20251115120000_fix_all_cross_db_issues_v3_9_0.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D;;;;;;;;;;;;;GAaG;AAEH,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,MAAM,EAAE,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IAEnC,uDAAuD;IACvD,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,4CAA4C,MAAM,KAAK,CAAC,CAAC;IAErE,mCAAmC;IACnC,MAAM,cAAc,GAAG;QACrB,qBAAqB;QACrB,aAAa;QACb,wBAAwB;QACxB,qBAAqB;KACtB,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,sBAAsB,SAAS,kBAAkB,CAAC,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;QACpF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,OAAO,SAAS,SAAS,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,wDAAwD;IACxD,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;AAChE,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * v3.9.0: Eliminate database views for cross-database compatibility
3
+ *
4
+ * Problem:
5
+ * - Knex.js doesn't handle views well across different database engines
6
+ * - View creation SQL is database-specific (datetime functions, string aggregation, etc.)
7
+ * - Migration failures on MySQL/MariaDB/PostgreSQL due to view syntax differences
8
+ *
9
+ * Solution:
10
+ * - Drop all 7 views (v_tagged_decisions, v_active_context, v_layer_summary,
11
+ * v_unread_messages_by_priority, v_recent_file_changes, v_tagged_constraints, v_task_board)
12
+ * - Replace with cross-database query functions in src/utils/view-queries.ts
13
+ * - Tool files updated to use query functions instead of querying views
14
+ *
15
+ * Related files updated:
16
+ * - src/utils/view-queries.ts - Refactored for cross-DB compatibility using UniversalKnex
17
+ * - src/utils/universal-knex.ts - Added dateFunction(), boolTrue(), boolFalse() helpers
18
+ * - src/tools/context/actions/{get,list,search-tags,search-layer,search-advanced}.ts
19
+ * - src/tools/tasks/actions/list.ts
20
+ *
21
+ * Architectural decision: testing/eliminate-database-views-v3.9.0
22
+ *
23
+ * IDEMPOTENT: Can be run multiple times safely.
24
+ * SQLite, MySQL, PostgreSQL compatible.
25
+ */
26
+ import type { Knex } from 'knex';
27
+ export declare function up(knex: Knex): Promise<void>;
28
+ export declare function down(knex: Knex): Promise<void>;
29
+ //# sourceMappingURL=20251118000000_eliminate_views_v3_9_0.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251118000000_eliminate_views_v3_9_0.d.ts","sourceRoot":"","sources":["../../../src/database/migrations/20251118000000_eliminate_views_v3_9_0.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAYjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBlD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpD"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * v3.9.0: Eliminate database views for cross-database compatibility
3
+ *
4
+ * Problem:
5
+ * - Knex.js doesn't handle views well across different database engines
6
+ * - View creation SQL is database-specific (datetime functions, string aggregation, etc.)
7
+ * - Migration failures on MySQL/MariaDB/PostgreSQL due to view syntax differences
8
+ *
9
+ * Solution:
10
+ * - Drop all 7 views (v_tagged_decisions, v_active_context, v_layer_summary,
11
+ * v_unread_messages_by_priority, v_recent_file_changes, v_tagged_constraints, v_task_board)
12
+ * - Replace with cross-database query functions in src/utils/view-queries.ts
13
+ * - Tool files updated to use query functions instead of querying views
14
+ *
15
+ * Related files updated:
16
+ * - src/utils/view-queries.ts - Refactored for cross-DB compatibility using UniversalKnex
17
+ * - src/utils/universal-knex.ts - Added dateFunction(), boolTrue(), boolFalse() helpers
18
+ * - src/tools/context/actions/{get,list,search-tags,search-layer,search-advanced}.ts
19
+ * - src/tools/tasks/actions/list.ts
20
+ *
21
+ * Architectural decision: testing/eliminate-database-views-v3.9.0
22
+ *
23
+ * IDEMPOTENT: Can be run multiple times safely.
24
+ * SQLite, MySQL, PostgreSQL compatible.
25
+ */
26
+ const VIEWS_TO_DROP = [
27
+ 'v_tagged_decisions',
28
+ 'v_active_context',
29
+ 'v_layer_summary',
30
+ 'v_unread_messages_by_priority',
31
+ 'v_recent_file_changes',
32
+ 'v_tagged_constraints',
33
+ 'v_task_board',
34
+ ];
35
+ export async function up(knex) {
36
+ console.log('🔄 Eliminating database views for cross-database compatibility (v3.9.0)...');
37
+ for (const viewName of VIEWS_TO_DROP) {
38
+ try {
39
+ await knex.raw(`DROP VIEW IF EXISTS ${viewName}`);
40
+ console.log(` ✓ Dropped view: ${viewName}`);
41
+ }
42
+ catch (error) {
43
+ // Ignore errors if view doesn't exist
44
+ const errorMsg = error.message?.toLowerCase() || '';
45
+ if (errorMsg.includes('does not exist') || errorMsg.includes('unknown')) {
46
+ console.log(` ⚠️ View ${viewName} does not exist, skipping`);
47
+ }
48
+ else {
49
+ throw error;
50
+ }
51
+ }
52
+ }
53
+ console.log('✅ All views eliminated successfully');
54
+ console.log('📝 Tool files now use cross-database query functions from src/utils/view-queries.ts');
55
+ }
56
+ export async function down(knex) {
57
+ console.log('⚠️ WARNING: Cannot recreate views in down() migration');
58
+ console.log(' Views had database-specific syntax that caused cross-DB issues');
59
+ console.log(' Use query functions from src/utils/view-queries.ts instead');
60
+ console.log(' If you absolutely need views, restore from v3.8.x backup');
61
+ }
62
+ //# sourceMappingURL=20251118000000_eliminate_views_v3_9_0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251118000000_eliminate_views_v3_9_0.js","sourceRoot":"","sources":["../../../src/database/migrations/20251118000000_eliminate_views_v3_9_0.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,MAAM,aAAa,GAAG;IACpB,oBAAoB;IACpB,kBAAkB;IAClB,iBAAiB;IACjB,+BAA+B;IAC/B,uBAAuB;IACvB,sBAAsB;IACtB,cAAc;CACf,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;IAE1F,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,sCAAsC;YACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YACpD,IAAI,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxE,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,2BAA2B,CAAC,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,qFAAqF,CAAC,CAAC;AACrG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;AAC7E,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Migration: Add constraint_text_hash for UNIQUE constraint (v3.9.1)
3
+ *
4
+ * This migration adds a SHA256 hash column to t_constraints to enable
5
+ * UNIQUE constraint enforcement on (constraint_text_hash, project_id).
6
+ *
7
+ * Problem: MySQL/MariaDB cannot create indexes on TEXT columns or
8
+ * VARCHAR columns exceeding 768 bytes (utf8mb4).
9
+ *
10
+ * Solution: Store SHA256 hash of constraint_text in a fixed-size column
11
+ * and enforce uniqueness on the hash + project_id combination.
12
+ *
13
+ * Cross-Database Compatibility:
14
+ * - SQLite: Using hex() + custom SHA256 implementation or Application-level hash
15
+ * - MySQL/MariaDB: SHA2() function
16
+ * - PostgreSQL: encode(digest(), 'hex') from pgcrypto or Application-level
17
+ *
18
+ * For simplicity and cross-database compatibility, this migration uses
19
+ * application-level hashing via Node.js crypto module during data operations.
20
+ * The hash is computed by the application before insert/update.
21
+ */
22
+ import type { Knex } from "knex";
23
+ export declare function up(knex: Knex): Promise<void>;
24
+ export declare function down(knex: Knex): Promise<void>;
25
+ //# sourceMappingURL=20251119000000_add_constraint_text_hash_v3_9_1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251119000000_add_constraint_text_hash_v3_9_1.d.ts","sourceRoot":"","sources":["../../../src/database/migrations/20251119000000_add_constraint_text_hash_v3_9_1.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA8DlD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BpD"}