sqlew 3.6.0 → 3.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/CHANGELOG.md +403 -376
  2. package/assets/config.example.toml +9 -0
  3. package/dist/config/types.d.ts +2 -0
  4. package/dist/config/types.d.ts.map +1 -1
  5. package/dist/config/types.js.map +1 -1
  6. package/dist/database.d.ts +14 -1
  7. package/dist/database.d.ts.map +1 -1
  8. package/dist/database.js +128 -5
  9. package/dist/database.js.map +1 -1
  10. package/dist/index.js +136 -82
  11. package/dist/index.js.map +1 -1
  12. package/dist/knexfile.d.ts.map +1 -1
  13. package/dist/knexfile.js +15 -3
  14. package/dist/knexfile.js.map +1 -1
  15. package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.d.ts.map +1 -0
  16. package/dist/migrations/knex/{20251025020452_create_master_tables.js → bootstrap/20251025020452_create_master_tables.js} +15 -12
  17. package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.js.map +1 -0
  18. package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.d.ts.map +1 -0
  19. package/dist/migrations/knex/{20251025021152_create_transaction_tables.js → bootstrap/20251025021152_create_transaction_tables.js} +19 -19
  20. package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.js.map +1 -0
  21. package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.d.ts.map +1 -0
  22. package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.js +93 -0
  23. package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.js.map +1 -0
  24. package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.d.ts.map +1 -0
  25. package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.js +64 -0
  26. package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.js.map +1 -0
  27. package/dist/migrations/knex/bootstrap/20251025070349_create_views.d.ts.map +1 -0
  28. package/dist/migrations/knex/bootstrap/20251025070349_create_views.js.map +1 -0
  29. package/dist/migrations/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts.map +1 -0
  30. package/dist/migrations/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js.map +1 -0
  31. package/dist/migrations/knex/enhancements/20251025082220_fix_task_dependencies_columns.d.ts.map +1 -0
  32. package/dist/migrations/knex/enhancements/20251025082220_fix_task_dependencies_columns.js.map +1 -0
  33. package/dist/migrations/knex/enhancements/20251025090000_create_help_system_tables.d.ts.map +1 -0
  34. package/dist/migrations/knex/enhancements/20251025090000_create_help_system_tables.js.map +1 -0
  35. package/dist/migrations/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts.map +1 -0
  36. package/dist/migrations/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.js.map +1 -0
  37. package/dist/migrations/knex/enhancements/20251025100000_seed_help_metadata.d.ts.map +1 -0
  38. package/dist/migrations/knex/enhancements/20251025100000_seed_help_metadata.js.map +1 -0
  39. package/dist/migrations/knex/enhancements/20251025100100_seed_remaining_use_cases.d.ts.map +1 -0
  40. package/dist/migrations/knex/enhancements/20251025100100_seed_remaining_use_cases.js.map +1 -0
  41. package/dist/migrations/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts.map +1 -0
  42. package/dist/migrations/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.js.map +1 -0
  43. package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts +14 -0
  44. package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts.map +1 -0
  45. package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.js +34 -0
  46. package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.js.map +1 -0
  47. package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts +4 -0
  48. package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts.map +1 -0
  49. package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js +24 -0
  50. package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js.map +1 -0
  51. package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.d.ts +16 -0
  52. package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.d.ts.map +1 -0
  53. package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.js +27 -0
  54. package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.js.map +1 -0
  55. package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts +13 -0
  56. package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts.map +1 -0
  57. package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js +70 -0
  58. package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js.map +1 -0
  59. package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts +11 -0
  60. package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts.map +1 -0
  61. package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js +36 -0
  62. package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js.map +1 -0
  63. package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts +14 -0
  64. package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts.map +1 -0
  65. package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js +84 -0
  66. package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js.map +1 -0
  67. package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts +9 -0
  68. package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts.map +1 -0
  69. package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js +37 -0
  70. package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js.map +1 -0
  71. package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts +9 -0
  72. package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts.map +1 -0
  73. package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js +41 -0
  74. package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js.map +1 -0
  75. package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts +9 -0
  76. package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts.map +1 -0
  77. package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js +36 -0
  78. package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js.map +1 -0
  79. package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts +10 -0
  80. package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts.map +1 -0
  81. package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js +28 -0
  82. package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js.map +1 -0
  83. package/dist/tests/agent-reuse.test.d.ts +6 -0
  84. package/dist/tests/agent-reuse.test.d.ts.map +1 -0
  85. package/dist/tests/agent-reuse.test.js +242 -0
  86. package/dist/tests/agent-reuse.test.js.map +1 -0
  87. package/dist/tests/all-features.test.d.ts +7 -0
  88. package/dist/tests/all-features.test.d.ts.map +1 -0
  89. package/dist/tests/all-features.test.js +514 -0
  90. package/dist/tests/all-features.test.js.map +1 -0
  91. package/dist/tests/migrations/test-all-versions-real.d.ts +8 -0
  92. package/dist/tests/migrations/test-all-versions-real.d.ts.map +1 -0
  93. package/dist/tests/migrations/test-all-versions-real.js +234 -0
  94. package/dist/tests/migrations/test-all-versions-real.js.map +1 -0
  95. package/dist/tests/migrations/test-all-versions.d.ts +14 -0
  96. package/dist/tests/migrations/test-all-versions.d.ts.map +1 -0
  97. package/dist/tests/migrations/test-all-versions.js +521 -0
  98. package/dist/tests/migrations/test-all-versions.js.map +1 -0
  99. package/dist/tools/constraints.d.ts.map +1 -1
  100. package/dist/tools/constraints.js +11 -7
  101. package/dist/tools/constraints.js.map +1 -1
  102. package/dist/tools/context.d.ts.map +1 -1
  103. package/dist/tools/context.js +73 -16
  104. package/dist/tools/context.js.map +1 -1
  105. package/dist/tools/messaging.d.ts.map +1 -1
  106. package/dist/tools/messaging.js +23 -1
  107. package/dist/tools/messaging.js.map +1 -1
  108. package/dist/tools/tasks.d.ts.map +1 -1
  109. package/dist/tools/tasks.js +8 -5
  110. package/dist/tools/tasks.js.map +1 -1
  111. package/dist/tools/utils.d.ts.map +1 -1
  112. package/dist/tools/utils.js +4 -1
  113. package/dist/tools/utils.js.map +1 -1
  114. package/dist/types.d.ts +1 -0
  115. package/dist/types.d.ts.map +1 -1
  116. package/dist/utils/cleanup.d.ts +3 -1
  117. package/dist/utils/cleanup.d.ts.map +1 -1
  118. package/dist/utils/cleanup.js +6 -3
  119. package/dist/utils/cleanup.js.map +1 -1
  120. package/dist/utils/debug-logger.d.ts +57 -2
  121. package/dist/utils/debug-logger.d.ts.map +1 -1
  122. package/dist/utils/debug-logger.js +155 -4
  123. package/dist/utils/debug-logger.js.map +1 -1
  124. package/dist/utils/error-handler.d.ts +28 -0
  125. package/dist/utils/error-handler.d.ts.map +1 -0
  126. package/dist/utils/error-handler.js +121 -0
  127. package/dist/utils/error-handler.js.map +1 -0
  128. package/dist/utils/help-tracking.d.ts +3 -3
  129. package/dist/utils/help-tracking.d.ts.map +1 -1
  130. package/dist/utils/help-tracking.js.map +1 -1
  131. package/dist/utils/param-parser.d.ts +23 -0
  132. package/dist/utils/param-parser.d.ts.map +1 -0
  133. package/dist/utils/param-parser.js +52 -0
  134. package/dist/utils/param-parser.js.map +1 -0
  135. package/dist/utils/retention.d.ts +10 -0
  136. package/dist/utils/retention.d.ts.map +1 -1
  137. package/dist/utils/retention.js +19 -0
  138. package/dist/utils/retention.js.map +1 -1
  139. package/docs/MIGRATION_CHAIN.md +293 -280
  140. package/package.json +85 -81
  141. package/dist/migrations/add-decision-context.d.ts +0 -28
  142. package/dist/migrations/add-decision-context.d.ts.map +0 -1
  143. package/dist/migrations/add-decision-context.js +0 -125
  144. package/dist/migrations/add-decision-context.js.map +0 -1
  145. package/dist/migrations/add-help-system-tables.d.ts +0 -35
  146. package/dist/migrations/add-help-system-tables.d.ts.map +0 -1
  147. package/dist/migrations/add-help-system-tables.js +0 -206
  148. package/dist/migrations/add-help-system-tables.js.map +0 -1
  149. package/dist/migrations/add-table-prefixes.d.ts +0 -29
  150. package/dist/migrations/add-table-prefixes.d.ts.map +0 -1
  151. package/dist/migrations/add-table-prefixes.js +0 -150
  152. package/dist/migrations/add-table-prefixes.js.map +0 -1
  153. package/dist/migrations/add-task-dependencies.d.ts +0 -26
  154. package/dist/migrations/add-task-dependencies.d.ts.map +0 -1
  155. package/dist/migrations/add-task-dependencies.js +0 -94
  156. package/dist/migrations/add-task-dependencies.js.map +0 -1
  157. package/dist/migrations/add-task-tables.d.ts +0 -47
  158. package/dist/migrations/add-task-tables.d.ts.map +0 -1
  159. package/dist/migrations/add-task-tables.js +0 -285
  160. package/dist/migrations/add-task-tables.js.map +0 -1
  161. package/dist/migrations/add-token-tracking.d.ts +0 -28
  162. package/dist/migrations/add-token-tracking.d.ts.map +0 -1
  163. package/dist/migrations/add-token-tracking.js +0 -108
  164. package/dist/migrations/add-token-tracking.js.map +0 -1
  165. package/dist/migrations/add-v2.1.0-features.d.ts +0 -29
  166. package/dist/migrations/add-v2.1.0-features.d.ts.map +0 -1
  167. package/dist/migrations/add-v2.1.0-features.js +0 -198
  168. package/dist/migrations/add-v2.1.0-features.js.map +0 -1
  169. package/dist/migrations/add-v3.5.0-pruned-files.d.ts +0 -26
  170. package/dist/migrations/add-v3.5.0-pruned-files.d.ts.map +0 -1
  171. package/dist/migrations/add-v3.5.0-pruned-files.js +0 -107
  172. package/dist/migrations/add-v3.5.0-pruned-files.js.map +0 -1
  173. package/dist/migrations/index.d.ts +0 -112
  174. package/dist/migrations/index.d.ts.map +0 -1
  175. package/dist/migrations/index.js +0 -411
  176. package/dist/migrations/index.js.map +0 -1
  177. package/dist/migrations/knex/20251025020452_create_master_tables.d.ts.map +0 -1
  178. package/dist/migrations/knex/20251025020452_create_master_tables.js.map +0 -1
  179. package/dist/migrations/knex/20251025021152_create_transaction_tables.d.ts.map +0 -1
  180. package/dist/migrations/knex/20251025021152_create_transaction_tables.js.map +0 -1
  181. package/dist/migrations/knex/20251025021351_create_indexes.d.ts.map +0 -1
  182. package/dist/migrations/knex/20251025021351_create_indexes.js +0 -62
  183. package/dist/migrations/knex/20251025021351_create_indexes.js.map +0 -1
  184. package/dist/migrations/knex/20251025021416_seed_master_data.d.ts.map +0 -1
  185. package/dist/migrations/knex/20251025021416_seed_master_data.js +0 -58
  186. package/dist/migrations/knex/20251025021416_seed_master_data.js.map +0 -1
  187. package/dist/migrations/knex/20251025070349_create_views.d.ts.map +0 -1
  188. package/dist/migrations/knex/20251025070349_create_views.js.map +0 -1
  189. package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.d.ts.map +0 -1
  190. package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.js.map +0 -1
  191. package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.d.ts.map +0 -1
  192. package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.js.map +0 -1
  193. package/dist/migrations/knex/20251025090000_create_help_system_tables.d.ts.map +0 -1
  194. package/dist/migrations/knex/20251025090000_create_help_system_tables.js.map +0 -1
  195. package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.d.ts.map +0 -1
  196. package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.js.map +0 -1
  197. package/dist/migrations/knex/20251025100000_seed_help_metadata.d.ts.map +0 -1
  198. package/dist/migrations/knex/20251025100000_seed_help_metadata.js.map +0 -1
  199. package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.d.ts.map +0 -1
  200. package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.js.map +0 -1
  201. package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.d.ts.map +0 -1
  202. package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.js.map +0 -1
  203. package/dist/migrations/migrate-decisions-to-tasks.d.ts +0 -61
  204. package/dist/migrations/migrate-decisions-to-tasks.d.ts.map +0 -1
  205. package/dist/migrations/migrate-decisions-to-tasks.js +0 -442
  206. package/dist/migrations/migrate-decisions-to-tasks.js.map +0 -1
  207. package/dist/migrations/seed-help-data.d.ts +0 -48
  208. package/dist/migrations/seed-help-data.d.ts.map +0 -1
  209. package/dist/migrations/seed-help-data.js +0 -1466
  210. package/dist/migrations/seed-help-data.js.map +0 -1
  211. package/dist/migrations/seed-tool-metadata.d.ts +0 -24
  212. package/dist/migrations/seed-tool-metadata.d.ts.map +0 -1
  213. package/dist/migrations/seed-tool-metadata.js +0 -392
  214. package/dist/migrations/seed-tool-metadata.js.map +0 -1
  215. package/dist/migrations/v3.6.0-help-system-refactor.d.ts +0 -46
  216. package/dist/migrations/v3.6.0-help-system-refactor.d.ts.map +0 -1
  217. package/dist/migrations/v3.6.0-help-system-refactor.js +0 -223
  218. package/dist/migrations/v3.6.0-help-system-refactor.js.map +0 -1
  219. package/dist/tests/migrations/test-v3.2-migration.d.ts +0 -6
  220. package/dist/tests/migrations/test-v3.2-migration.d.ts.map +0 -1
  221. package/dist/tests/migrations/test-v3.2-migration.js +0 -191
  222. package/dist/tests/migrations/test-v3.2-migration.js.map +0 -1
  223. /package/dist/migrations/knex/{20251025020452_create_master_tables.d.ts → bootstrap/20251025020452_create_master_tables.d.ts} +0 -0
  224. /package/dist/migrations/knex/{20251025021152_create_transaction_tables.d.ts → bootstrap/20251025021152_create_transaction_tables.d.ts} +0 -0
  225. /package/dist/migrations/knex/{20251025021351_create_indexes.d.ts → bootstrap/20251025021351_create_indexes.d.ts} +0 -0
  226. /package/dist/migrations/knex/{20251025021416_seed_master_data.d.ts → bootstrap/20251025021416_seed_master_data.d.ts} +0 -0
  227. /package/dist/migrations/knex/{20251025070349_create_views.d.ts → bootstrap/20251025070349_create_views.d.ts} +0 -0
  228. /package/dist/migrations/knex/{20251025070349_create_views.js → bootstrap/20251025070349_create_views.js} +0 -0
  229. /package/dist/migrations/knex/{20251025081221_add_link_type_to_task_decision_links.d.ts → enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts} +0 -0
  230. /package/dist/migrations/knex/{20251025081221_add_link_type_to_task_decision_links.js → enhancements/20251025081221_add_link_type_to_task_decision_links.js} +0 -0
  231. /package/dist/migrations/knex/{20251025082220_fix_task_dependencies_columns.d.ts → enhancements/20251025082220_fix_task_dependencies_columns.d.ts} +0 -0
  232. /package/dist/migrations/knex/{20251025082220_fix_task_dependencies_columns.js → enhancements/20251025082220_fix_task_dependencies_columns.js} +0 -0
  233. /package/dist/migrations/knex/{20251025090000_create_help_system_tables.d.ts → enhancements/20251025090000_create_help_system_tables.d.ts} +0 -0
  234. /package/dist/migrations/knex/{20251025090000_create_help_system_tables.js → enhancements/20251025090000_create_help_system_tables.js} +0 -0
  235. /package/dist/migrations/knex/{20251025090100_seed_help_categories_and_use_cases.d.ts → enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts} +0 -0
  236. /package/dist/migrations/knex/{20251025090100_seed_help_categories_and_use_cases.js → enhancements/20251025090100_seed_help_categories_and_use_cases.js} +0 -0
  237. /package/dist/migrations/knex/{20251025100000_seed_help_metadata.d.ts → enhancements/20251025100000_seed_help_metadata.d.ts} +0 -0
  238. /package/dist/migrations/knex/{20251025100000_seed_help_metadata.js → enhancements/20251025100000_seed_help_metadata.js} +0 -0
  239. /package/dist/migrations/knex/{20251025100100_seed_remaining_use_cases.d.ts → enhancements/20251025100100_seed_remaining_use_cases.d.ts} +0 -0
  240. /package/dist/migrations/knex/{20251025100100_seed_remaining_use_cases.js → enhancements/20251025100100_seed_remaining_use_cases.js} +0 -0
  241. /package/dist/migrations/knex/{20251025120000_add_cascade_to_task_dependencies.d.ts → enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts} +0 -0
  242. /package/dist/migrations/knex/{20251025120000_add_cascade_to_task_dependencies.js → enhancements/20251025120000_add_cascade_to_task_dependencies.js} +0 -0
@@ -14,15 +14,41 @@ import * as path from 'path';
14
14
  let debugEnabled = false;
15
15
  let debugStream = null;
16
16
  let currentLogPath = null;
17
+ let currentLogLevel = 'INFO';
18
+ // Log level hierarchy (higher number = more verbose)
19
+ const LOG_LEVELS = {
20
+ 'ERROR': 1,
21
+ 'WARN': 2,
22
+ 'INFO': 3,
23
+ 'DEBUG': 4
24
+ };
25
+ /**
26
+ * Check if a log level should be written
27
+ * @param level - Level to check
28
+ * @returns true if should log
29
+ */
30
+ function shouldLog(level) {
31
+ const levelValue = LOG_LEVELS[level.toUpperCase()] || 0;
32
+ const currentValue = LOG_LEVELS[currentLogLevel];
33
+ return levelValue <= currentValue;
34
+ }
17
35
  /**
18
36
  * Initialize debug logger
19
37
  * @param debugLogPath - Log path (already resolved with priority: CLI > env > config)
38
+ * @param logLevel - Log level (case-insensitive: "error", "warn", "info", "debug")
20
39
  */
21
- export function initDebugLogger(debugLogPath) {
40
+ export function initDebugLogger(debugLogPath, logLevel) {
22
41
  if (!debugLogPath) {
23
42
  return;
24
43
  }
25
44
  currentLogPath = debugLogPath;
45
+ // Set log level (case-insensitive, default to INFO)
46
+ if (logLevel) {
47
+ const upperLevel = logLevel.toUpperCase();
48
+ if (LOG_LEVELS[upperLevel]) {
49
+ currentLogLevel = upperLevel;
50
+ }
51
+ }
26
52
  try {
27
53
  // Ensure directory exists
28
54
  const logDir = path.dirname(debugLogPath);
@@ -42,6 +68,7 @@ export function initDebugLogger(debugLogPath) {
42
68
  debugLog('INFO', `Timestamp: ${new Date().toISOString()}`);
43
69
  debugLog('INFO', `Process ID: ${process.pid}`);
44
70
  debugLog('INFO', `Debug Log Path: ${debugLogPath}`);
71
+ debugLog('INFO', `Log Level: ${currentLogLevel}`);
45
72
  debugLog('INFO', `Source: ${source} (${sourceDetail})`);
46
73
  debugLog('INFO', '='.repeat(80));
47
74
  }
@@ -60,6 +87,10 @@ export function debugLog(level, message, data) {
60
87
  if (!debugEnabled || !debugStream) {
61
88
  return;
62
89
  }
90
+ // Check log level filtering
91
+ if (!shouldLog(level)) {
92
+ return;
93
+ }
63
94
  const timestamp = new Date().toISOString();
64
95
  let logEntry = `[${timestamp}] [${level}] ${message}`;
65
96
  try {
@@ -90,10 +121,13 @@ export function debugLogToolResponse(toolName, action, success, result, error) {
90
121
  /**
91
122
  * Log error with stack trace
92
123
  */
93
- export function debugLogError(context, error) {
124
+ export function debugLogError(context, error, additionalContext) {
94
125
  const errorMessage = error instanceof Error ? error.message : String(error);
95
126
  const stack = error instanceof Error ? error.stack : undefined;
96
- debugLog('ERROR', `${context}: ${errorMessage}`, { stack });
127
+ debugLog('ERROR', `${context}: ${errorMessage}`, {
128
+ stack,
129
+ ...additionalContext
130
+ });
97
131
  }
98
132
  /**
99
133
  * Close debug logger
@@ -101,7 +135,7 @@ export function debugLogError(context, error) {
101
135
  export function closeDebugLogger() {
102
136
  if (debugStream) {
103
137
  debugLog('INFO', 'MCP Shared Context Server Debug Log Ended');
104
- debugLog('INFO', '='.repeat(80));
138
+ debugLog('INFO', '_'.repeat(80));
105
139
  debugStream.end();
106
140
  debugStream = null;
107
141
  debugEnabled = false;
@@ -113,4 +147,121 @@ export function closeDebugLogger() {
113
147
  export function isDebugEnabled() {
114
148
  return debugEnabled;
115
149
  }
150
+ // ============================================================================
151
+ // Enhanced Debug Logging for Crash Investigation
152
+ // ============================================================================
153
+ /**
154
+ * Log database query execution with detailed information
155
+ */
156
+ export function debugLogQuery(context, sql, params, duration) {
157
+ if (!debugEnabled)
158
+ return;
159
+ const logData = {
160
+ sql: sql.replace(/\s+/g, ' ').trim(),
161
+ params: params || null
162
+ };
163
+ if (duration !== undefined) {
164
+ logData.duration_ms = duration;
165
+ }
166
+ debugLog('DEBUG', `DB Query [${context}]`, logData);
167
+ }
168
+ /**
169
+ * Log connection pool state
170
+ */
171
+ export function debugLogPoolState(context, poolState) {
172
+ if (!debugEnabled)
173
+ return;
174
+ debugLog('DEBUG', `Connection Pool State [${context}]`, poolState);
175
+ }
176
+ /**
177
+ * Log transaction boundaries
178
+ */
179
+ export function debugLogTransaction(action, context, transactionId) {
180
+ if (!debugEnabled)
181
+ return;
182
+ debugLog('DEBUG', `Transaction ${action} [${context}]`, { transaction_id: transactionId });
183
+ }
184
+ /**
185
+ * Log parameter validation
186
+ */
187
+ export function debugLogValidation(context, paramName, value, valid, errorMsg) {
188
+ if (!debugEnabled)
189
+ return;
190
+ debugLog(valid ? 'DEBUG' : 'WARN', `Parameter Validation [${context}]`, {
191
+ parameter: paramName,
192
+ value: typeof value === 'object' ? JSON.stringify(value) : value,
193
+ valid,
194
+ error: errorMsg || null
195
+ });
196
+ }
197
+ /**
198
+ * Log schema operation (insert, update, select)
199
+ */
200
+ export function debugLogSchemaOperation(operation, table, columns, whereClause, values) {
201
+ if (!debugEnabled)
202
+ return;
203
+ debugLog('DEBUG', `Schema Operation: ${operation} ${table}`, {
204
+ columns: columns || null,
205
+ where: whereClause || null,
206
+ values: values || null
207
+ });
208
+ }
209
+ /**
210
+ * Log JSON parsing/serialization
211
+ */
212
+ export function debugLogJSON(context, operation, input, success, error) {
213
+ if (!debugEnabled)
214
+ return;
215
+ debugLog(success ? 'DEBUG' : 'ERROR', `JSON ${operation} [${context}]`, {
216
+ input: typeof input === 'string' ? input : JSON.stringify(input),
217
+ success,
218
+ error: error || null
219
+ });
220
+ }
221
+ /**
222
+ * Log function entry with parameters
223
+ */
224
+ export function debugLogFunctionEntry(functionName, params) {
225
+ if (!debugEnabled)
226
+ return;
227
+ debugLog('DEBUG', `→ Function Entry: ${functionName}`, { params });
228
+ }
229
+ /**
230
+ * Log function exit with result
231
+ */
232
+ export function debugLogFunctionExit(functionName, success, result, error) {
233
+ if (!debugEnabled)
234
+ return;
235
+ debugLog(success ? 'DEBUG' : 'ERROR', `← Function Exit: ${functionName} ${success ? 'SUCCESS' : 'FAILED'}`, success ? { result } : { error: error instanceof Error ? error.message : String(error) });
236
+ }
237
+ /**
238
+ * Log connection acquisition
239
+ */
240
+ export function debugLogConnectionAcquire(context, waitTime) {
241
+ if (!debugEnabled)
242
+ return;
243
+ debugLog('DEBUG', `Connection Acquired [${context}]`, { wait_time_ms: waitTime || 0 });
244
+ }
245
+ /**
246
+ * Log connection release
247
+ */
248
+ export function debugLogConnectionRelease(context, duration) {
249
+ if (!debugEnabled)
250
+ return;
251
+ debugLog('DEBUG', `Connection Released [${context}]`, { duration_ms: duration || 0 });
252
+ }
253
+ /**
254
+ * Log critical error with full context
255
+ */
256
+ export function debugLogCriticalError(context, error, additionalContext) {
257
+ if (!debugEnabled)
258
+ return;
259
+ const errorMessage = error instanceof Error ? error.message : String(error);
260
+ const stack = error instanceof Error ? error.stack : undefined;
261
+ debugLog('ERROR', `💥 CRITICAL ERROR [${context}]`, {
262
+ error: errorMessage,
263
+ stack,
264
+ ...additionalContext
265
+ });
266
+ }
116
267
  //# sourceMappingURL=debug-logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"debug-logger.js","sourceRoot":"","sources":["../../src/utils/debug-logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debug-logger.js","sourceRoot":"","sources":["../../src/utils/debug-logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Centralized error handling module for MCP Sqlew server
3
+ * Provides consistent error logging, reporting, and recovery
4
+ */
5
+ /**
6
+ * Handle tool execution errors
7
+ * Logs the error with context and returns formatted error response
8
+ */
9
+ export declare function handleToolError(toolName: string, action: string, error: any, params?: any): {
10
+ message: string;
11
+ stack?: string;
12
+ };
13
+ /**
14
+ * Handle initialization errors
15
+ * Logs the error and returns formatted error message
16
+ */
17
+ export declare function handleInitializationError(error: any): string;
18
+ /**
19
+ * Setup global error handlers for uncaught exceptions and unhandled rejections
20
+ * Server continues running to maintain availability
21
+ */
22
+ export declare function setupGlobalErrorHandlers(onCleanup?: () => void): void;
23
+ /**
24
+ * Handle validation errors
25
+ * Returns user-friendly error message
26
+ */
27
+ export declare function handleValidationError(toolName: string, action: string, validationMessage: string): string;
28
+ //# sourceMappingURL=error-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/utils/error-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmBH;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,GAAG,EACV,MAAM,CAAC,EAAE,GAAG,GACX;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAyBrC;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAiB5D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,CAAC,EAAE,MAAM,IAAI,GACrB,IAAI,CAsDN;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,MAAM,GACxB,MAAM,CAMR"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Centralized error handling module for MCP Sqlew server
3
+ * Provides consistent error logging, reporting, and recovery
4
+ */
5
+ import { debugLog, debugLogError } from './debug-logger.js';
6
+ /**
7
+ * Format error details for logging and reporting
8
+ */
9
+ function formatErrorDetails(error) {
10
+ const message = error instanceof Error ? error.message : String(error);
11
+ const stack = error instanceof Error ? error.stack : undefined;
12
+ const errorType = error?.constructor?.name || 'Unknown';
13
+ return { message, stack, errorType };
14
+ }
15
+ /**
16
+ * Handle tool execution errors
17
+ * Logs the error with context and returns formatted error response
18
+ */
19
+ export function handleToolError(toolName, action, error, params) {
20
+ const { message, stack, errorType } = formatErrorDetails(error);
21
+ // Enhanced debug logging with full error details
22
+ debugLogError(`Tool ${toolName}.${action}`, error, {
23
+ tool: toolName,
24
+ action: action,
25
+ params: params,
26
+ errorType: errorType,
27
+ stack: stack
28
+ });
29
+ // Log to stderr for immediate visibility
30
+ console.error(`\n❌ ERROR in ${toolName}.${action}:`);
31
+ console.error(` Message: ${message}`);
32
+ if (stack) {
33
+ console.error(` Stack trace:`);
34
+ console.error(stack.split('\n').map(line => ` ${line}`).join('\n'));
35
+ }
36
+ if (params) {
37
+ console.error(` Params: ${JSON.stringify(params, null, 2)}`);
38
+ }
39
+ console.error('');
40
+ return { message, stack };
41
+ }
42
+ /**
43
+ * Handle initialization errors
44
+ * Logs the error and returns formatted error message
45
+ */
46
+ export function handleInitializationError(error) {
47
+ const { message, stack, errorType } = formatErrorDetails(error);
48
+ debugLogError('INITIALIZATION_ERROR', error, {
49
+ errorType: errorType,
50
+ stack: stack
51
+ });
52
+ console.error('\n❌ INITIALIZATION ERROR:');
53
+ console.error(` Message: ${message}`);
54
+ if (stack) {
55
+ console.error(` Stack trace:`);
56
+ console.error(stack.split('\n').map(line => ` ${line}`).join('\n'));
57
+ }
58
+ console.error('');
59
+ return message;
60
+ }
61
+ /**
62
+ * Setup global error handlers for uncaught exceptions and unhandled rejections
63
+ * Server continues running to maintain availability
64
+ */
65
+ export function setupGlobalErrorHandlers(onCleanup) {
66
+ // Handle uncaught exceptions
67
+ process.on('uncaughtException', (error) => {
68
+ const { message, stack, errorType } = formatErrorDetails(error);
69
+ console.error('\n❌ UNCAUGHT EXCEPTION (server continuing):');
70
+ console.error(` Message: ${message}`);
71
+ console.error(` Stack trace:`);
72
+ console.error(stack?.split('\n').map(line => ` ${line}`).join('\n'));
73
+ debugLogError('UNCAUGHT_EXCEPTION', error, {
74
+ errorType: errorType,
75
+ stack: stack
76
+ });
77
+ console.error(' ⚠️ Server continuing despite error\n');
78
+ });
79
+ // Handle unhandled promise rejections
80
+ process.on('unhandledRejection', (reason, promise) => {
81
+ const { message, stack, errorType } = formatErrorDetails(reason);
82
+ console.error('\n❌ UNHANDLED PROMISE REJECTION (server continuing):');
83
+ console.error(` Reason: ${message}`);
84
+ if (stack) {
85
+ console.error(` Stack trace:`);
86
+ console.error(stack.split('\n').map(line => ` ${line}`).join('\n'));
87
+ }
88
+ debugLogError('UNHANDLED_REJECTION', reason, {
89
+ errorType: errorType,
90
+ stack: stack,
91
+ promise: String(promise)
92
+ });
93
+ console.error(' ⚠️ Server continuing despite error\n');
94
+ });
95
+ // Handle graceful shutdown
96
+ process.on('SIGINT', async () => {
97
+ console.error('\n✓ Shutting down MCP server...');
98
+ if (onCleanup) {
99
+ onCleanup();
100
+ }
101
+ process.exit(0);
102
+ });
103
+ process.on('SIGTERM', async () => {
104
+ console.error('\n✓ Shutting down MCP server...');
105
+ if (onCleanup) {
106
+ onCleanup();
107
+ }
108
+ process.exit(0);
109
+ });
110
+ }
111
+ /**
112
+ * Handle validation errors
113
+ * Returns user-friendly error message
114
+ */
115
+ export function handleValidationError(toolName, action, validationMessage) {
116
+ debugLog('WARN', `Validation error in ${toolName}.${action}`, {
117
+ validation: validationMessage
118
+ });
119
+ return validationMessage;
120
+ }
121
+ //# sourceMappingURL=error-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/utils/error-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;GAEG;AACH,SAAS,kBAAkB,CAAC,KAAU;IAKpC,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,MAAM,SAAS,GAAG,KAAK,EAAE,WAAW,EAAE,IAAI,IAAI,SAAS,CAAC;IAExD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,MAAc,EACd,KAAU,EACV,MAAY;IAEZ,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAEhE,iDAAiD;IACjD,aAAa,CAAC,QAAQ,QAAQ,IAAI,MAAM,EAAE,EAAE,KAAK,EAAE;QACjD,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,SAAS;QACpB,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;IAEH,yCAAyC;IACzC,OAAO,CAAC,KAAK,CAAC,gBAAgB,QAAQ,IAAI,MAAM,GAAG,CAAC,CAAC;IACrD,OAAO,CAAC,KAAK,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;IACxC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAElB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAU;IAClD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAEhE,aAAa,CAAC,sBAAsB,EAAE,KAAK,EAAE;QAC3C,SAAS,EAAE,SAAS;QACpB,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;IAEH,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC3C,OAAO,CAAC,KAAK,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;IACxC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAElB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,SAAsB;IAEtB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAY,EAAE,EAAE;QAC/C,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAEhE,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzE,aAAa,CAAC,oBAAoB,EAAE,KAAK,EAAE;YACzC,SAAS,EAAE,SAAS;YACpB,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,sCAAsC;IACtC,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAW,EAAE,OAAqB,EAAE,EAAE;QACtE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAEjE,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACtE,OAAO,CAAC,KAAK,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;QACvC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1E,CAAC;QAED,aAAa,CAAC,qBAAqB,EAAE,MAAM,EAAE;YAC3C,SAAS,EAAE,SAAS;YACpB,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;SACzB,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC9B,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACjD,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAC/B,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACjD,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,EAAE,CAAC;QACd,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAgB,EAChB,MAAc,EACd,iBAAyB;IAEzB,QAAQ,CAAC,MAAM,EAAE,uBAAuB,QAAQ,IAAI,MAAM,EAAE,EAAE;QAC5D,UAAU,EAAE,iBAAiB;KAC9B,CAAC,CAAC;IAEH,OAAO,iBAAiB,CAAC;AAC3B,CAAC"}
@@ -19,7 +19,7 @@
19
19
  */
20
20
  export interface HelpUsageRecord {
21
21
  tool_name: string;
22
- action_name: 'help' | 'example';
22
+ action_name: 'help' | 'example' | 'use_case';
23
23
  timestamp: string;
24
24
  token_count: number;
25
25
  context?: string;
@@ -40,7 +40,7 @@ export declare function logHelpUsage(record: HelpUsageRecord): void;
40
40
  * @param responseLength - Length of response text
41
41
  * @returns Estimated token count (request + response)
42
42
  */
43
- export declare function estimateHelpTokens(toolName: string, actionName: 'help' | 'example', responseLength: number): number;
43
+ export declare function estimateHelpTokens(toolName: string, actionName: 'help' | 'example' | 'use_case', responseLength: number): number;
44
44
  /**
45
45
  * Track help action and return the help content
46
46
  * Convenience wrapper that logs and returns content
@@ -51,5 +51,5 @@ export declare function estimateHelpTokens(toolName: string, actionName: 'help'
51
51
  * @param context - Optional context about what triggered help
52
52
  * @returns The help content (pass-through)
53
53
  */
54
- export declare function trackAndReturnHelp(toolName: string, actionName: 'help' | 'example', content: string, context?: string): string;
54
+ export declare function trackAndReturnHelp(toolName: string, actionName: 'help' | 'example' | 'use_case', content: string, context?: string): string;
55
55
  //# sourceMappingURL=help-tracking.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"help-tracking.d.ts","sourceRoot":"","sources":["../../src/utils/help-tracking.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAkBD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAW1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,cAAc,EAAE,MAAM,GACrB,MAAM,CAQR;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAYR"}
1
+ {"version":3,"file":"help-tracking.d.ts","sourceRoot":"","sources":["../../src/utils/help-tracking.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAkBD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAW1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,EAC3C,cAAc,EAAE,MAAM,GACrB,MAAM,CAQR;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,EAC3C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAYR"}
@@ -1 +1 @@
1
- {"version":3,"file":"help-tracking.js","sourceRoot":"","sources":["../../src/utils/help-tracking.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAa/B;;GAEG;AACH,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;AAEpD;;;GAGG;AACH,SAAS,kBAAkB;IACzB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,MAAuB;IAClD,IAAI,CAAC;QACH,kBAAkB,EAAE,CAAC;QAErB,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAC/C,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,+DAA+D;QAC/D,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAgB,EAChB,UAA8B,EAC9B,cAAsB;IAEtB,4DAA4D;IAC5D,MAAM,aAAa,GAAG,EAAE,CAAC;IAEzB,iDAAiD;IACjD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;IAErD,OAAO,aAAa,GAAG,cAAc,CAAC;AACxC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAgB,EAChB,UAA8B,EAC9B,OAAe,EACf,OAAgB;IAEhB,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5E,YAAY,CAAC;QACX,SAAS,EAAE,QAAQ;QACnB,WAAW,EAAE,UAAU;QACvB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,WAAW,EAAE,UAAU;QACvB,OAAO;KACR,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"help-tracking.js","sourceRoot":"","sources":["../../src/utils/help-tracking.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAa/B;;GAEG;AACH,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;AAEpD;;;GAGG;AACH,SAAS,kBAAkB;IACzB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,MAAuB;IAClD,IAAI,CAAC;QACH,kBAAkB,EAAE,CAAC;QAErB,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAC/C,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,+DAA+D;QAC/D,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAgB,EAChB,UAA2C,EAC3C,cAAsB;IAEtB,4DAA4D;IAC5D,MAAM,aAAa,GAAG,EAAE,CAAC;IAEzB,iDAAiD;IACjD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;IAErD,OAAO,aAAa,GAAG,cAAc,CAAC;AACxC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAgB,EAChB,UAA2C,EAC3C,OAAe,EACf,OAAgB;IAEhB,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5E,YAAY,CAAC;QACX,SAAS,EAAE,QAAQ;QACnB,WAAW,EAAE,UAAU;QACvB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,WAAW,EAAE,UAAU;QACvB,OAAO;KACR,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Parameter parsing utilities for MCP tool parameters
3
+ * Handles JSON array strings from MCP SDK
4
+ */
5
+ /**
6
+ * Parse a parameter that could be a string array or a JSON-encoded string array
7
+ * MCP SDK sometimes sends arrays as JSON strings: "[\"tag1\", \"tag2\"]"
8
+ *
9
+ * @param param - The parameter to parse (array or JSON string)
10
+ * @returns Parsed string array
11
+ *
12
+ * @example
13
+ * parseStringArray(['tag1', 'tag2']) // returns ['tag1', 'tag2']
14
+ * parseStringArray('["tag1", "tag2"]') // returns ['tag1', 'tag2']
15
+ * parseStringArray('single-tag') // returns ['single-tag']
16
+ */
17
+ export declare function parseStringArray(param: string | string[] | undefined | null): string[];
18
+ /**
19
+ * Parse optional string array parameter
20
+ * Returns undefined if param is null/undefined/empty
21
+ */
22
+ export declare function parseOptionalStringArray(param: string | string[] | undefined | null): string[] | undefined;
23
+ //# sourceMappingURL=param-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"param-parser.d.ts","sourceRoot":"","sources":["../../src/utils/param-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,EAAE,CA4BtF;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,EAAE,GAAG,SAAS,CAG1G"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Parameter parsing utilities for MCP tool parameters
3
+ * Handles JSON array strings from MCP SDK
4
+ */
5
+ /**
6
+ * Parse a parameter that could be a string array or a JSON-encoded string array
7
+ * MCP SDK sometimes sends arrays as JSON strings: "[\"tag1\", \"tag2\"]"
8
+ *
9
+ * @param param - The parameter to parse (array or JSON string)
10
+ * @returns Parsed string array
11
+ *
12
+ * @example
13
+ * parseStringArray(['tag1', 'tag2']) // returns ['tag1', 'tag2']
14
+ * parseStringArray('["tag1", "tag2"]') // returns ['tag1', 'tag2']
15
+ * parseStringArray('single-tag') // returns ['single-tag']
16
+ */
17
+ export function parseStringArray(param) {
18
+ if (!param) {
19
+ return [];
20
+ }
21
+ // Already an array
22
+ if (Array.isArray(param)) {
23
+ return param;
24
+ }
25
+ // Try to parse as JSON
26
+ if (typeof param === 'string') {
27
+ try {
28
+ const parsed = JSON.parse(param);
29
+ // If parsed result is an array, return it
30
+ if (Array.isArray(parsed)) {
31
+ return parsed;
32
+ }
33
+ // If it's a single string after parsing, return as array
34
+ return [String(parsed)];
35
+ }
36
+ catch (e) {
37
+ // If parse fails, treat as single string
38
+ return [param];
39
+ }
40
+ }
41
+ // Fallback: convert to string and return as single-element array
42
+ return [String(param)];
43
+ }
44
+ /**
45
+ * Parse optional string array parameter
46
+ * Returns undefined if param is null/undefined/empty
47
+ */
48
+ export function parseOptionalStringArray(param) {
49
+ const result = parseStringArray(param);
50
+ return result.length > 0 ? result : undefined;
51
+ }
52
+ //# sourceMappingURL=param-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"param-parser.js","sourceRoot":"","sources":["../../src/utils/param-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAA2C;IAC1E,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,mBAAmB;IACnB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uBAAuB;IACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjC,0CAA0C;YAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,yDAAyD;YACzD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,yCAAyC;YACzC,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAA2C;IAClF,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC"}
@@ -2,6 +2,7 @@
2
2
  * Weekend-aware retention logic for auto-deletion
3
3
  * Calculates cutoff timestamps that skip weekends when configured
4
4
  */
5
+ import { Knex } from 'knex';
5
6
  import { DatabaseAdapter } from '../adapters/index.js';
6
7
  /**
7
8
  * Calculate cutoff timestamp for message retention
@@ -52,4 +53,13 @@ export declare function countWeekendDays(startDate: Date, endDate: Date): number
52
53
  * @returns New date with business days added
53
54
  */
54
55
  export declare function addBusinessDays(date: Date, days: number): Date;
56
+ /**
57
+ * Release inactive generic agent slots for reuse
58
+ * Marks generic agents as inactive if they haven't been active for the specified hours
59
+ *
60
+ * @param adapter - Database adapter instance
61
+ * @param inactivityHours - Hours of inactivity before releasing (default: 24)
62
+ * @returns Number of agents released
63
+ */
64
+ export declare function releaseInactiveAgents(adapter: DatabaseAdapter, inactivityHours?: number, trx?: Knex.Transaction): Promise<number>;
55
65
  //# sourceMappingURL=retention.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"retention.d.ts","sourceRoot":"","sources":["../../src/utils/retention.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvD;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAKtF;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAKzF;AAED;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAK1F;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,OAAO,EACvB,IAAI,EAAE,OAAO,GAAG,MAAM,GACrB,MAAM,CAYR;AA4CD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,MAAM,CAavE;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAe9D"}
1
+ {"version":3,"file":"retention.d.ts","sourceRoot":"","sources":["../../src/utils/retention.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvD;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAKtF;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAKzF;AAED;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAK1F;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,OAAO,EACvB,IAAI,EAAE,OAAO,GAAG,MAAM,GACrB,MAAM,CAYR;AA4CD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,GAAG,MAAM,CAavE;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAe9D;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,eAAe,EACxB,eAAe,GAAE,MAAW,EAC5B,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,GACrB,OAAO,CAAC,MAAM,CAAC,CAYjB"}
@@ -134,4 +134,23 @@ export function addBusinessDays(date, days) {
134
134
  }
135
135
  return result;
136
136
  }
137
+ /**
138
+ * Release inactive generic agent slots for reuse
139
+ * Marks generic agents as inactive if they haven't been active for the specified hours
140
+ *
141
+ * @param adapter - Database adapter instance
142
+ * @param inactivityHours - Hours of inactivity before releasing (default: 24)
143
+ * @returns Number of agents released
144
+ */
145
+ export async function releaseInactiveAgents(adapter, inactivityHours = 24, trx) {
146
+ const knex = trx || adapter.getKnex();
147
+ const now = Math.floor(Date.now() / 1000);
148
+ const cutoffTs = now - (inactivityHours * 3600);
149
+ const result = await knex('m_agents')
150
+ .where('is_reusable', true)
151
+ .where('in_use', true)
152
+ .where('last_active_ts', '<', cutoffTs)
153
+ .update({ in_use: false });
154
+ return result;
155
+ }
137
156
  //# sourceMappingURL=retention.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"retention.js","sourceRoot":"","sources":["../../src/utils/retention.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retention.js","sourceRoot":"","sources":["../../src/utils/retention.ts"],"names":[],"mappings":"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"}