sqlew 3.5.3 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/CHANGELOG.md +247 -1772
  2. package/README.md +70 -304
  3. package/assets/config.example.toml +97 -0
  4. package/dist/adapters/index.d.ts +11 -0
  5. package/dist/adapters/index.d.ts.map +1 -0
  6. package/dist/adapters/index.js +21 -0
  7. package/dist/adapters/index.js.map +1 -0
  8. package/dist/adapters/mysql-adapter.d.ts +31 -0
  9. package/dist/adapters/mysql-adapter.d.ts.map +1 -0
  10. package/dist/adapters/mysql-adapter.js +63 -0
  11. package/dist/adapters/mysql-adapter.js.map +1 -0
  12. package/dist/adapters/postgresql-adapter.d.ts +31 -0
  13. package/dist/adapters/postgresql-adapter.d.ts.map +1 -0
  14. package/dist/adapters/postgresql-adapter.js +63 -0
  15. package/dist/adapters/postgresql-adapter.js.map +1 -0
  16. package/dist/adapters/sqlite-adapter.d.ts +37 -0
  17. package/dist/adapters/sqlite-adapter.d.ts.map +1 -0
  18. package/dist/adapters/sqlite-adapter.js +129 -0
  19. package/dist/adapters/sqlite-adapter.js.map +1 -0
  20. package/dist/adapters/types.d.ts +33 -0
  21. package/dist/adapters/types.d.ts.map +1 -0
  22. package/dist/adapters/types.js +2 -0
  23. package/dist/adapters/types.js.map +1 -0
  24. package/dist/cli.js +55 -54
  25. package/dist/cli.js.map +1 -1
  26. package/dist/config/example-generator.d.ts +11 -0
  27. package/dist/config/example-generator.d.ts.map +1 -0
  28. package/dist/config/example-generator.js +48 -0
  29. package/dist/config/example-generator.js.map +1 -0
  30. package/dist/config/loader.d.ts.map +1 -1
  31. package/dist/config/loader.js +4 -0
  32. package/dist/config/loader.js.map +1 -1
  33. package/dist/config/types.d.ts +9 -0
  34. package/dist/config/types.d.ts.map +1 -1
  35. package/dist/config/types.js.map +1 -1
  36. package/dist/database.d.ts +44 -122
  37. package/dist/database.d.ts.map +1 -1
  38. package/dist/database.js +145 -416
  39. package/dist/database.js.map +1 -1
  40. package/dist/index.js +215 -185
  41. package/dist/index.js.map +1 -1
  42. package/dist/knexfile.d.ts +6 -0
  43. package/dist/knexfile.d.ts.map +1 -0
  44. package/dist/knexfile.js +85 -0
  45. package/dist/knexfile.js.map +1 -0
  46. package/dist/migrations/add-help-system-tables.d.ts +35 -0
  47. package/dist/migrations/add-help-system-tables.d.ts.map +1 -0
  48. package/dist/migrations/add-help-system-tables.js +206 -0
  49. package/dist/migrations/add-help-system-tables.js.map +1 -0
  50. package/dist/migrations/add-token-tracking.d.ts +28 -0
  51. package/dist/migrations/add-token-tracking.d.ts.map +1 -0
  52. package/dist/migrations/add-token-tracking.js +108 -0
  53. package/dist/migrations/add-token-tracking.js.map +1 -0
  54. package/dist/migrations/index.d.ts +25 -12
  55. package/dist/migrations/index.d.ts.map +1 -1
  56. package/dist/migrations/index.js +147 -20
  57. package/dist/migrations/index.js.map +1 -1
  58. package/dist/migrations/knex/20251025020452_create_master_tables.d.ts +4 -0
  59. package/dist/migrations/knex/20251025020452_create_master_tables.d.ts.map +1 -0
  60. package/dist/migrations/knex/20251025020452_create_master_tables.js +65 -0
  61. package/dist/migrations/knex/20251025020452_create_master_tables.js.map +1 -0
  62. package/dist/migrations/knex/20251025021152_create_transaction_tables.d.ts +4 -0
  63. package/dist/migrations/knex/20251025021152_create_transaction_tables.d.ts.map +1 -0
  64. package/dist/migrations/knex/20251025021152_create_transaction_tables.js +235 -0
  65. package/dist/migrations/knex/20251025021152_create_transaction_tables.js.map +1 -0
  66. package/dist/migrations/knex/20251025021351_create_indexes.d.ts +4 -0
  67. package/dist/migrations/knex/20251025021351_create_indexes.d.ts.map +1 -0
  68. package/dist/migrations/knex/20251025021351_create_indexes.js +62 -0
  69. package/dist/migrations/knex/20251025021351_create_indexes.js.map +1 -0
  70. package/dist/migrations/knex/20251025021416_seed_master_data.d.ts +4 -0
  71. package/dist/migrations/knex/20251025021416_seed_master_data.d.ts.map +1 -0
  72. package/dist/migrations/knex/20251025021416_seed_master_data.js +58 -0
  73. package/dist/migrations/knex/20251025021416_seed_master_data.js.map +1 -0
  74. package/dist/migrations/knex/20251025070349_create_views.d.ts +4 -0
  75. package/dist/migrations/knex/20251025070349_create_views.d.ts.map +1 -0
  76. package/dist/migrations/knex/20251025070349_create_views.js +143 -0
  77. package/dist/migrations/knex/20251025070349_create_views.js.map +1 -0
  78. package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.d.ts +4 -0
  79. package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.d.ts.map +1 -0
  80. package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.js +15 -0
  81. package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.js.map +1 -0
  82. package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.d.ts +8 -0
  83. package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.d.ts.map +1 -0
  84. package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.js +12 -0
  85. package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.js.map +1 -0
  86. package/dist/migrations/knex/20251025090000_create_help_system_tables.d.ts +19 -0
  87. package/dist/migrations/knex/20251025090000_create_help_system_tables.d.ts.map +1 -0
  88. package/dist/migrations/knex/20251025090000_create_help_system_tables.js +115 -0
  89. package/dist/migrations/knex/20251025090000_create_help_system_tables.js.map +1 -0
  90. package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.d.ts +13 -0
  91. package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.d.ts.map +1 -0
  92. package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.js +377 -0
  93. package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.js.map +1 -0
  94. package/dist/migrations/knex/20251025100000_seed_help_metadata.d.ts +15 -0
  95. package/dist/migrations/knex/20251025100000_seed_help_metadata.d.ts.map +1 -0
  96. package/dist/migrations/knex/20251025100000_seed_help_metadata.js +253 -0
  97. package/dist/migrations/knex/20251025100000_seed_help_metadata.js.map +1 -0
  98. package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.d.ts +16 -0
  99. package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.d.ts.map +1 -0
  100. package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.js +276 -0
  101. package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.js.map +1 -0
  102. package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.d.ts +8 -0
  103. package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.d.ts.map +1 -0
  104. package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.js +64 -0
  105. package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.js.map +1 -0
  106. package/dist/migrations/seed-help-data.d.ts +48 -0
  107. package/dist/migrations/seed-help-data.d.ts.map +1 -0
  108. package/dist/migrations/seed-help-data.js +1466 -0
  109. package/dist/migrations/seed-help-data.js.map +1 -0
  110. package/dist/migrations/seed-tool-metadata.d.ts +24 -0
  111. package/dist/migrations/seed-tool-metadata.d.ts.map +1 -0
  112. package/dist/migrations/seed-tool-metadata.js +392 -0
  113. package/dist/migrations/seed-tool-metadata.js.map +1 -0
  114. package/dist/migrations/v3.6.0-help-system-refactor.d.ts +46 -0
  115. package/dist/migrations/v3.6.0-help-system-refactor.d.ts.map +1 -0
  116. package/dist/migrations/v3.6.0-help-system-refactor.js +223 -0
  117. package/dist/migrations/v3.6.0-help-system-refactor.js.map +1 -0
  118. package/dist/schema.d.ts.map +1 -1
  119. package/dist/schema.js +2 -0
  120. package/dist/schema.js.map +1 -1
  121. package/dist/tests/git-aware-completion.test.js +89 -70
  122. package/dist/tests/git-aware-completion.test.js.map +1 -1
  123. package/dist/tests/help-system.test.d.ts +23 -0
  124. package/dist/tests/help-system.test.d.ts.map +1 -0
  125. package/dist/tests/help-system.test.js +374 -0
  126. package/dist/tests/help-system.test.js.map +1 -0
  127. package/dist/tests/tasks.auto-pruning-decision-link.test.js +92 -78
  128. package/dist/tests/tasks.auto-pruning-decision-link.test.js.map +1 -1
  129. package/dist/tests/tasks.auto-pruning-partial.test.js +106 -95
  130. package/dist/tests/tasks.auto-pruning-partial.test.js.map +1 -1
  131. package/dist/tests/tasks.auto-pruning-persistence.test.js +115 -97
  132. package/dist/tests/tasks.auto-pruning-persistence.test.js.map +1 -1
  133. package/dist/tests/tasks.auto-pruning-safety.test.js +124 -103
  134. package/dist/tests/tasks.auto-pruning-safety.test.js.map +1 -1
  135. package/dist/tests/tasks.dependencies.test.js +338 -307
  136. package/dist/tests/tasks.dependencies.test.js.map +1 -1
  137. package/dist/tests/tasks.link-file-backward-compat.test.js +116 -104
  138. package/dist/tests/tasks.link-file-backward-compat.test.js.map +1 -1
  139. package/dist/tests/tasks.watch-files-action.test.js +122 -101
  140. package/dist/tests/tasks.watch-files-action.test.js.map +1 -1
  141. package/dist/tests/tasks.watch-files-parameter.test.js +105 -94
  142. package/dist/tests/tasks.watch-files-parameter.test.js.map +1 -1
  143. package/dist/tests/two-step-git-completion.test.js +176 -133
  144. package/dist/tests/two-step-git-completion.test.js.map +1 -1
  145. package/dist/tests/vcs-staging.test.js +1 -1
  146. package/dist/tests/vcs-staging.test.js.map +1 -1
  147. package/dist/tools/config.d.ts +9 -6
  148. package/dist/tools/config.d.ts.map +1 -1
  149. package/dist/tools/config.js +16 -14
  150. package/dist/tools/config.js.map +1 -1
  151. package/dist/tools/constraints.d.ts +10 -7
  152. package/dist/tools/constraints.d.ts.map +1 -1
  153. package/dist/tools/constraints.js +66 -48
  154. package/dist/tools/constraints.js.map +1 -1
  155. package/dist/tools/context.d.ts +36 -33
  156. package/dist/tools/context.d.ts.map +1 -1
  157. package/dist/tools/context.js +374 -330
  158. package/dist/tools/context.js.map +1 -1
  159. package/dist/tools/files.d.ts +12 -9
  160. package/dist/tools/files.d.ts.map +1 -1
  161. package/dist/tools/files.js +173 -95
  162. package/dist/tools/files.js.map +1 -1
  163. package/dist/tools/help-queries.d.ts +130 -0
  164. package/dist/tools/help-queries.d.ts.map +1 -0
  165. package/dist/tools/help-queries.js +393 -0
  166. package/dist/tools/help-queries.js.map +1 -0
  167. package/dist/tools/messaging.d.ts +14 -11
  168. package/dist/tools/messaging.d.ts.map +1 -1
  169. package/dist/tools/messaging.js +217 -133
  170. package/dist/tools/messaging.js.map +1 -1
  171. package/dist/tools/tasks.d.ts +18 -16
  172. package/dist/tools/tasks.d.ts.map +1 -1
  173. package/dist/tools/tasks.js +513 -439
  174. package/dist/tools/tasks.js.map +1 -1
  175. package/dist/tools/utils.d.ts +14 -11
  176. package/dist/tools/utils.d.ts.map +1 -1
  177. package/dist/tools/utils.js +86 -121
  178. package/dist/tools/utils.js.map +1 -1
  179. package/dist/utils/activity-logging.d.ts +114 -0
  180. package/dist/utils/activity-logging.d.ts.map +1 -0
  181. package/dist/utils/activity-logging.js +162 -0
  182. package/dist/utils/activity-logging.js.map +1 -0
  183. package/dist/utils/batch.d.ts +2 -2
  184. package/dist/utils/batch.d.ts.map +1 -1
  185. package/dist/utils/batch.js +8 -8
  186. package/dist/utils/batch.js.map +1 -1
  187. package/dist/utils/cleanup.d.ts +21 -13
  188. package/dist/utils/cleanup.d.ts.map +1 -1
  189. package/dist/utils/cleanup.js +31 -24
  190. package/dist/utils/cleanup.js.map +1 -1
  191. package/dist/utils/debug-logger.d.ts +44 -0
  192. package/dist/utils/debug-logger.d.ts.map +1 -0
  193. package/dist/utils/debug-logger.js +116 -0
  194. package/dist/utils/debug-logger.js.map +1 -0
  195. package/dist/utils/help-tracking.d.ts +55 -0
  196. package/dist/utils/help-tracking.d.ts.map +1 -0
  197. package/dist/utils/help-tracking.js +88 -0
  198. package/dist/utils/help-tracking.js.map +1 -0
  199. package/dist/utils/retention.d.ts +7 -7
  200. package/dist/utils/retention.d.ts.map +1 -1
  201. package/dist/utils/retention.js +12 -12
  202. package/dist/utils/retention.js.map +1 -1
  203. package/dist/utils/task-stale-detection.d.ts +15 -13
  204. package/dist/utils/task-stale-detection.d.ts.map +1 -1
  205. package/dist/utils/task-stale-detection.js +100 -302
  206. package/dist/utils/task-stale-detection.js.map +1 -1
  207. package/dist/utils/token-estimation.d.ts +72 -0
  208. package/dist/utils/token-estimation.d.ts.map +1 -0
  209. package/dist/utils/token-estimation.js +71 -0
  210. package/dist/utils/token-estimation.js.map +1 -0
  211. package/dist/utils/token-logging.d.ts +48 -0
  212. package/dist/utils/token-logging.d.ts.map +1 -0
  213. package/dist/utils/token-logging.js +112 -0
  214. package/dist/utils/token-logging.js.map +1 -0
  215. package/dist/utils/view-queries.d.ts +34 -0
  216. package/dist/utils/view-queries.d.ts.map +1 -0
  217. package/dist/utils/view-queries.js +192 -0
  218. package/dist/utils/view-queries.js.map +1 -0
  219. package/dist/watcher/file-watcher.d.ts.map +1 -1
  220. package/dist/watcher/file-watcher.js +25 -11
  221. package/dist/watcher/file-watcher.js.map +1 -1
  222. package/docs/BEST_PRACTICES.md +56 -448
  223. package/docs/MIGRATION_v3.6.0.md +170 -0
  224. package/docs/SHARED_CONCEPTS.md +63 -208
  225. package/docs/TASK_OVERVIEW.md +2 -2
  226. package/docs/TOOL_SELECTION.md +41 -248
  227. package/package.json +16 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-logging.js","sourceRoot":"","sources":["../../src/utils/activity-logging.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,7 @@ export interface BatchResponse<T = any> {
41
41
  * );
42
42
  * ```
43
43
  */
44
- export declare function processBatch<TItem, TResult>(db: Database, items: TItem[], processor: (item: TItem, db: Database) => TResult, atomic?: boolean, maxItems?: number): BatchResponse<TResult>;
44
+ export declare function processBatch<TItem, TResult>(db: Database, items: TItem[], processor: (item: TItem, db: Database) => TResult | Promise<TResult>, atomic?: boolean, maxItems?: number): Promise<BatchResponse<TResult>>;
45
45
  /**
46
46
  * Wrap a function with transaction handling
47
47
  * Converts an internal function (no transaction) to a public API (with transaction)
@@ -65,5 +65,5 @@ export declare function processBatch<TItem, TResult>(db: Database, items: TItem[
65
65
  * );
66
66
  * ```
67
67
  */
68
- export declare function withTransaction<TParams, TResult>(internalFn: (params: TParams, db: Database) => TResult, errorPrefix?: string): (params: TParams) => TResult;
68
+ export declare function withTransaction<TParams, TResult>(internalFn: (params: TParams, db: Database) => TResult | Promise<TResult>, errorPrefix?: string): (params: TParams) => Promise<TResult>;
69
69
  //# sourceMappingURL=batch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../src/utils/batch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,GAAG;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,GAAG;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EACzC,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,KAAK,EAAE,EACd,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,KAAK,OAAO,EACjD,MAAM,GAAE,OAAc,EACtB,QAAQ,GAAE,MAAW,GACpB,aAAa,CAAC,OAAO,CAAC,CAsFxB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAC9C,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,KAAK,OAAO,EACtD,WAAW,GAAE,MAA2B,GACvC,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAgB9B"}
1
+ {"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../src/utils/batch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,GAAG;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,GAAG;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,OAAO,EAC/C,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,KAAK,EAAE,EACd,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EACpE,MAAM,GAAE,OAAc,EACtB,QAAQ,GAAE,MAAW,GACpB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAsFjC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAC9C,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EACzE,WAAW,GAAE,MAA2B,GACvC,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAgBvC"}
@@ -24,7 +24,7 @@ import { transaction } from '../database.js';
24
24
  * );
25
25
  * ```
26
26
  */
27
- export function processBatch(db, items, processor, atomic = true, maxItems = 50) {
27
+ export async function processBatch(db, items, processor, atomic = true, maxItems = 50) {
28
28
  // Validate inputs
29
29
  if (!items || !Array.isArray(items)) {
30
30
  throw new Error('Items must be an array');
@@ -39,9 +39,9 @@ export function processBatch(db, items, processor, atomic = true, maxItems = 50)
39
39
  let processed = 0;
40
40
  let failed = 0;
41
41
  // Helper to process a single item
42
- const processSingleItem = (item) => {
42
+ const processSingleItem = async (item) => {
43
43
  try {
44
- const data = processor(item, db);
44
+ const data = await processor(item, db);
45
45
  results.push({
46
46
  success: true,
47
47
  data
@@ -64,9 +64,9 @@ export function processBatch(db, items, processor, atomic = true, maxItems = 50)
64
64
  try {
65
65
  if (atomic) {
66
66
  // Atomic mode: wrap in transaction, all succeed or all fail
67
- return transaction(db, () => {
67
+ return await transaction(async () => {
68
68
  for (const item of items) {
69
- processSingleItem(item);
69
+ await processSingleItem(item);
70
70
  }
71
71
  return {
72
72
  success: failed === 0,
@@ -79,7 +79,7 @@ export function processBatch(db, items, processor, atomic = true, maxItems = 50)
79
79
  else {
80
80
  // Non-atomic mode: process all, return individual results
81
81
  for (const item of items) {
82
- processSingleItem(item);
82
+ await processSingleItem(item);
83
83
  }
84
84
  return {
85
85
  success: failed === 0,
@@ -129,7 +129,7 @@ export function processBatch(db, items, processor, atomic = true, maxItems = 50)
129
129
  * ```
130
130
  */
131
131
  export function withTransaction(internalFn, errorPrefix = 'Operation failed') {
132
- return (params) => {
132
+ return async (params) => {
133
133
  // Note: getDatabase() must be imported where this is used
134
134
  // We can't import it here to avoid circular dependencies
135
135
  const db = global.__database;
@@ -137,7 +137,7 @@ export function withTransaction(internalFn, errorPrefix = 'Operation failed') {
137
137
  throw new Error('Database not initialized');
138
138
  }
139
139
  try {
140
- return transaction(db, () => internalFn(params, db));
140
+ return await transaction(async () => await internalFn(params, db));
141
141
  }
142
142
  catch (error) {
143
143
  const message = error instanceof Error ? error.message : String(error);
@@ -1 +1 @@
1
- {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/utils/batch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/utils/batch.ts"],"names":[],"mappings":"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"}
@@ -1,56 +1,64 @@
1
1
  /**
2
2
  * Programmatic cleanup utilities for old messages and file changes
3
3
  * Replaces the automatic triggers with weekend-aware logic
4
+ *
5
+ * CONVERTED: Using Knex.js with DatabaseAdapter (async/await)
4
6
  */
5
- import { Database } from '../types.js';
7
+ import { DatabaseAdapter } from '../adapters/index.js';
8
+ import { Knex } from 'knex';
6
9
  /**
7
10
  * Perform automatic cleanup of old data
8
11
  * Deletes old messages, file changes, and activity logs based on m_config settings
9
12
  *
10
- * @param db - Database instance
13
+ * @param adapter - Database adapter instance
14
+ * @param trx - Optional transaction
11
15
  * @returns Object with counts of deleted records
12
16
  */
13
- export declare function performAutoCleanup(db: Database): {
17
+ export declare function performAutoCleanup(adapter: DatabaseAdapter, trx?: Knex.Transaction): Promise<{
14
18
  messagesDeleted: number;
15
19
  fileChangesDeleted: number;
16
20
  activityLogsDeleted: number;
17
- };
21
+ }>;
18
22
  /**
19
23
  * Delete old messages before the cutoff timestamp
20
24
  *
21
- * @param db - Database instance
25
+ * @param adapter - Database adapter instance
22
26
  * @param cutoffTimestamp - Unix timestamp (seconds) for cutoff
27
+ * @param trx - Optional transaction
23
28
  * @returns Number of messages deleted
24
29
  */
25
- export declare function cleanupMessages(db: Database, cutoffTimestamp: number): number;
30
+ export declare function cleanupMessages(adapter: DatabaseAdapter, cutoffTimestamp: number, trx?: Knex.Transaction): Promise<number>;
26
31
  /**
27
32
  * Delete old file changes before the cutoff timestamp
28
33
  *
29
- * @param db - Database instance
34
+ * @param adapter - Database adapter instance
30
35
  * @param cutoffTimestamp - Unix timestamp (seconds) for cutoff
36
+ * @param trx - Optional transaction
31
37
  * @returns Number of file changes deleted
32
38
  */
33
- export declare function cleanupFileChanges(db: Database, cutoffTimestamp: number): number;
39
+ export declare function cleanupFileChanges(adapter: DatabaseAdapter, cutoffTimestamp: number, trx?: Knex.Transaction): Promise<number>;
34
40
  /**
35
41
  * Delete old activity logs before the cutoff timestamp
36
42
  * Activity logs use the same retention as messages (constraint #4)
37
43
  *
38
- * @param db - Database instance
44
+ * @param adapter - Database adapter instance
39
45
  * @param cutoffTimestamp - Unix timestamp (seconds) for cutoff
46
+ * @param trx - Optional transaction
40
47
  * @returns Number of activity logs deleted
41
48
  */
42
- export declare function cleanupActivityLogs(db: Database, cutoffTimestamp: number): number;
49
+ export declare function cleanupActivityLogs(adapter: DatabaseAdapter, cutoffTimestamp: number, trx?: Knex.Transaction): Promise<number>;
43
50
  /**
44
51
  * Cleanup with custom retention periods (overrides config)
45
52
  *
46
- * @param db - Database instance
53
+ * @param adapter - Database adapter instance
47
54
  * @param messageHours - Message retention in hours (optional)
48
55
  * @param fileChangeDays - File change retention in days (optional)
56
+ * @param trx - Optional transaction
49
57
  * @returns Object with counts of deleted records
50
58
  */
51
- export declare function cleanupWithCustomRetention(db: Database, messageHours?: number, fileChangeDays?: number): {
59
+ export declare function cleanupWithCustomRetention(adapter: DatabaseAdapter, messageHours?: number, fileChangeDays?: number, trx?: Knex.Transaction): Promise<{
52
60
  messagesDeleted: number;
53
61
  fileChangesDeleted: number;
54
62
  activityLogsDeleted: number;
55
- };
63
+ }>;
56
64
  //# sourceMappingURL=cleanup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../src/utils/cleanup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,GAAG;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,CAUrI;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAG7E;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAGhF;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAGjF;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,EAAE,EAAE,QAAQ,EACZ,YAAY,CAAC,EAAE,MAAM,EACrB,cAAc,CAAC,EAAE,MAAM,GACtB;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,CAkBtF"}
1
+ {"version":3,"file":"cleanup.d.ts","sourceRoot":"","sources":["../../src/utils/cleanup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,eAAe,EACxB,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,GACrB,OAAO,CAAC;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,CAAC,CAU/F;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,eAAe,EACxB,eAAe,EAAE,MAAM,EACvB,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,GACrB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,eAAe,EACxB,eAAe,EAAE,MAAM,EACvB,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,GACrB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,eAAe,EACxB,eAAe,EAAE,MAAM,EACvB,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,GACrB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,eAAe,EACxB,YAAY,CAAC,EAAE,MAAM,EACrB,cAAc,CAAC,EAAE,MAAM,EACvB,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,GACrB,OAAO,CAAC;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,CAAC,CAkB/F"}
@@ -1,79 +1,86 @@
1
1
  /**
2
2
  * Programmatic cleanup utilities for old messages and file changes
3
3
  * Replaces the automatic triggers with weekend-aware logic
4
+ *
5
+ * CONVERTED: Using Knex.js with DatabaseAdapter (async/await)
4
6
  */
5
7
  import { calculateMessageCutoff, calculateFileChangeCutoff } from './retention.js';
6
8
  /**
7
9
  * Perform automatic cleanup of old data
8
10
  * Deletes old messages, file changes, and activity logs based on m_config settings
9
11
  *
10
- * @param db - Database instance
12
+ * @param adapter - Database adapter instance
13
+ * @param trx - Optional transaction
11
14
  * @returns Object with counts of deleted records
12
15
  */
13
- export function performAutoCleanup(db) {
14
- const messageCutoff = calculateMessageCutoff(db);
15
- const fileChangeCutoff = calculateFileChangeCutoff(db);
16
- const messagesDeleted = cleanupMessages(db, messageCutoff);
17
- const fileChangesDeleted = cleanupFileChanges(db, fileChangeCutoff);
16
+ export async function performAutoCleanup(adapter, trx) {
17
+ const messageCutoff = await calculateMessageCutoff(adapter);
18
+ const fileChangeCutoff = await calculateFileChangeCutoff(adapter);
19
+ const messagesDeleted = await cleanupMessages(adapter, messageCutoff, trx);
20
+ const fileChangesDeleted = await cleanupFileChanges(adapter, fileChangeCutoff, trx);
18
21
  // Activity log uses same retention as messages (constraint #4)
19
- const activityLogsDeleted = cleanupActivityLogs(db, messageCutoff);
22
+ const activityLogsDeleted = await cleanupActivityLogs(adapter, messageCutoff, trx);
20
23
  return { messagesDeleted, fileChangesDeleted, activityLogsDeleted };
21
24
  }
22
25
  /**
23
26
  * Delete old messages before the cutoff timestamp
24
27
  *
25
- * @param db - Database instance
28
+ * @param adapter - Database adapter instance
26
29
  * @param cutoffTimestamp - Unix timestamp (seconds) for cutoff
30
+ * @param trx - Optional transaction
27
31
  * @returns Number of messages deleted
28
32
  */
29
- export function cleanupMessages(db, cutoffTimestamp) {
30
- const result = db.prepare('DELETE FROM t_agent_messages WHERE ts < ?').run(cutoffTimestamp);
31
- return result.changes;
33
+ export async function cleanupMessages(adapter, cutoffTimestamp, trx) {
34
+ const knex = trx || adapter.getKnex();
35
+ return await knex('t_agent_messages').where('ts', '<', cutoffTimestamp).delete();
32
36
  }
33
37
  /**
34
38
  * Delete old file changes before the cutoff timestamp
35
39
  *
36
- * @param db - Database instance
40
+ * @param adapter - Database adapter instance
37
41
  * @param cutoffTimestamp - Unix timestamp (seconds) for cutoff
42
+ * @param trx - Optional transaction
38
43
  * @returns Number of file changes deleted
39
44
  */
40
- export function cleanupFileChanges(db, cutoffTimestamp) {
41
- const result = db.prepare('DELETE FROM t_file_changes WHERE ts < ?').run(cutoffTimestamp);
42
- return result.changes;
45
+ export async function cleanupFileChanges(adapter, cutoffTimestamp, trx) {
46
+ const knex = trx || adapter.getKnex();
47
+ return await knex('t_file_changes').where('ts', '<', cutoffTimestamp).delete();
43
48
  }
44
49
  /**
45
50
  * Delete old activity logs before the cutoff timestamp
46
51
  * Activity logs use the same retention as messages (constraint #4)
47
52
  *
48
- * @param db - Database instance
53
+ * @param adapter - Database adapter instance
49
54
  * @param cutoffTimestamp - Unix timestamp (seconds) for cutoff
55
+ * @param trx - Optional transaction
50
56
  * @returns Number of activity logs deleted
51
57
  */
52
- export function cleanupActivityLogs(db, cutoffTimestamp) {
53
- const result = db.prepare('DELETE FROM t_activity_log WHERE ts < ?').run(cutoffTimestamp);
54
- return result.changes;
58
+ export async function cleanupActivityLogs(adapter, cutoffTimestamp, trx) {
59
+ const knex = trx || adapter.getKnex();
60
+ return await knex('t_activity_log').where('ts', '<', cutoffTimestamp).delete();
55
61
  }
56
62
  /**
57
63
  * Cleanup with custom retention periods (overrides config)
58
64
  *
59
- * @param db - Database instance
65
+ * @param adapter - Database adapter instance
60
66
  * @param messageHours - Message retention in hours (optional)
61
67
  * @param fileChangeDays - File change retention in days (optional)
68
+ * @param trx - Optional transaction
62
69
  * @returns Object with counts of deleted records
63
70
  */
64
- export function cleanupWithCustomRetention(db, messageHours, fileChangeDays) {
71
+ export async function cleanupWithCustomRetention(adapter, messageHours, fileChangeDays, trx) {
65
72
  let messagesDeleted = 0;
66
73
  let fileChangesDeleted = 0;
67
74
  let activityLogsDeleted = 0;
68
75
  if (messageHours !== undefined) {
69
76
  const messageCutoff = Math.floor(Date.now() / 1000) - (messageHours * 3600);
70
- messagesDeleted = cleanupMessages(db, messageCutoff);
77
+ messagesDeleted = await cleanupMessages(adapter, messageCutoff, trx);
71
78
  // Activity log uses same retention as messages (constraint #4)
72
- activityLogsDeleted = cleanupActivityLogs(db, messageCutoff);
79
+ activityLogsDeleted = await cleanupActivityLogs(adapter, messageCutoff, trx);
73
80
  }
74
81
  if (fileChangeDays !== undefined) {
75
82
  const fileChangeCutoff = Math.floor(Date.now() / 1000) - (fileChangeDays * 86400);
76
- fileChangesDeleted = cleanupFileChanges(db, fileChangeCutoff);
83
+ fileChangesDeleted = await cleanupFileChanges(adapter, fileChangeCutoff, trx);
77
84
  }
78
85
  return { messagesDeleted, fileChangesDeleted, activityLogsDeleted };
79
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../src/utils/cleanup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEnF;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAY;IAC7C,MAAM,aAAa,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,EAAE,CAAC,CAAC;IAEvD,MAAM,eAAe,GAAG,eAAe,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACpE,+DAA+D;IAC/D,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;IAEnE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,CAAC;AACtE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,EAAY,EAAE,eAAuB;IACnE,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC5F,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAY,EAAE,eAAuB;IACtE,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC1F,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAY,EAAE,eAAuB;IACvE,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC1F,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACxC,EAAY,EACZ,YAAqB,EACrB,cAAuB;IAEvB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAE5B,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;QAC5E,eAAe,GAAG,eAAe,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QACrD,+DAA+D;QAC/D,mBAAmB,GAAG,mBAAmB,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC,CAAC;QAClF,kBAAkB,GAAG,kBAAkB,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../src/utils/cleanup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Debug Logger for MCP Shared Context Server
3
+ *
4
+ * Enables debug logging when specified via CLI arg, environment variable, or config file.
5
+ * Priority: CLI arg > Environment variable > Config file
6
+ *
7
+ * Usage:
8
+ * node dist/index.js --debug-log=/path/to/debug.log
9
+ * SQLEW_DEBUG=/path/to/debug.log node dist/index.js
10
+ * OR set debug.log_path in .sqlew/config.toml
11
+ */
12
+ /**
13
+ * Initialize debug logger
14
+ * @param debugLogPath - Log path (already resolved with priority: CLI > env > config)
15
+ */
16
+ export declare function initDebugLogger(debugLogPath?: string): void;
17
+ /**
18
+ * Write debug log entry
19
+ * @param level - Log level (INFO, WARN, ERROR, DEBUG)
20
+ * @param message - Log message
21
+ * @param data - Optional data to log
22
+ */
23
+ export declare function debugLog(level: 'INFO' | 'WARN' | 'ERROR' | 'DEBUG', message: string, data?: any): void;
24
+ /**
25
+ * Log MCP tool call
26
+ */
27
+ export declare function debugLogToolCall(toolName: string, action: string, params: any): void;
28
+ /**
29
+ * Log MCP tool response
30
+ */
31
+ export declare function debugLogToolResponse(toolName: string, action: string, success: boolean, result?: any, error?: any): void;
32
+ /**
33
+ * Log error with stack trace
34
+ */
35
+ export declare function debugLogError(context: string, error: any): void;
36
+ /**
37
+ * Close debug logger
38
+ */
39
+ export declare function closeDebugLogger(): void;
40
+ /**
41
+ * Check if debug logging is enabled
42
+ */
43
+ export declare function isDebugEnabled(): boolean;
44
+ //# sourceMappingURL=debug-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-logger.d.ts","sourceRoot":"","sources":["../../src/utils/debug-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAmC3D;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAoBtG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI,CAEpF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,IAAI,CAMxH;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAK/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAQvC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Debug Logger for MCP Shared Context Server
3
+ *
4
+ * Enables debug logging when specified via CLI arg, environment variable, or config file.
5
+ * Priority: CLI arg > Environment variable > Config file
6
+ *
7
+ * Usage:
8
+ * node dist/index.js --debug-log=/path/to/debug.log
9
+ * SQLEW_DEBUG=/path/to/debug.log node dist/index.js
10
+ * OR set debug.log_path in .sqlew/config.toml
11
+ */
12
+ import * as fs from 'fs';
13
+ import * as path from 'path';
14
+ let debugEnabled = false;
15
+ let debugStream = null;
16
+ let currentLogPath = null;
17
+ /**
18
+ * Initialize debug logger
19
+ * @param debugLogPath - Log path (already resolved with priority: CLI > env > config)
20
+ */
21
+ export function initDebugLogger(debugLogPath) {
22
+ if (!debugLogPath) {
23
+ return;
24
+ }
25
+ currentLogPath = debugLogPath;
26
+ try {
27
+ // Ensure directory exists
28
+ const logDir = path.dirname(debugLogPath);
29
+ if (!fs.existsSync(logDir)) {
30
+ fs.mkdirSync(logDir, { recursive: true });
31
+ }
32
+ // Create write stream (append mode)
33
+ debugStream = fs.createWriteStream(debugLogPath, { flags: 'a' });
34
+ debugEnabled = true;
35
+ // Detect source (for logging purposes)
36
+ const cliArg = process.argv.find(arg => arg.startsWith('--debug-log'));
37
+ const envVar = process.env.SQLEW_DEBUG;
38
+ const source = cliArg ? 'CLI Argument' : envVar ? 'Environment Variable' : 'Config File';
39
+ const sourceDetail = cliArg ? '--debug-log' : envVar ? 'SQLEW_DEBUG' : 'debug.log_path';
40
+ debugLog('INFO', '='.repeat(80));
41
+ debugLog('INFO', `MCP Shared Context Server Debug Log Started`);
42
+ debugLog('INFO', `Timestamp: ${new Date().toISOString()}`);
43
+ debugLog('INFO', `Process ID: ${process.pid}`);
44
+ debugLog('INFO', `Debug Log Path: ${debugLogPath}`);
45
+ debugLog('INFO', `Source: ${source} (${sourceDetail})`);
46
+ debugLog('INFO', '='.repeat(80));
47
+ }
48
+ catch (error) {
49
+ console.error(`Failed to initialize debug logger: ${error}`);
50
+ debugEnabled = false;
51
+ }
52
+ }
53
+ /**
54
+ * Write debug log entry
55
+ * @param level - Log level (INFO, WARN, ERROR, DEBUG)
56
+ * @param message - Log message
57
+ * @param data - Optional data to log
58
+ */
59
+ export function debugLog(level, message, data) {
60
+ if (!debugEnabled || !debugStream) {
61
+ return;
62
+ }
63
+ const timestamp = new Date().toISOString();
64
+ let logEntry = `[${timestamp}] [${level}] ${message}`;
65
+ try {
66
+ if (data !== undefined) {
67
+ const dataStr = typeof data === 'string'
68
+ ? data
69
+ : JSON.stringify(data);
70
+ logEntry += ` | Data: ${dataStr}`;
71
+ }
72
+ debugStream.write(logEntry + '\n');
73
+ }
74
+ catch (error) {
75
+ console.error(`Failed to write debug log: ${error}`);
76
+ }
77
+ }
78
+ /**
79
+ * Log MCP tool call
80
+ */
81
+ export function debugLogToolCall(toolName, action, params) {
82
+ debugLog('DEBUG', `Tool Call: ${toolName}.${action}`, { params });
83
+ }
84
+ /**
85
+ * Log MCP tool response
86
+ */
87
+ export function debugLogToolResponse(toolName, action, success, result, error) {
88
+ debugLog(success ? 'DEBUG' : 'ERROR', `Tool Response: ${toolName}.${action} ${success ? 'SUCCESS' : 'FAILED'}`, success ? result : error);
89
+ }
90
+ /**
91
+ * Log error with stack trace
92
+ */
93
+ export function debugLogError(context, error) {
94
+ const errorMessage = error instanceof Error ? error.message : String(error);
95
+ const stack = error instanceof Error ? error.stack : undefined;
96
+ debugLog('ERROR', `${context}: ${errorMessage}`, { stack });
97
+ }
98
+ /**
99
+ * Close debug logger
100
+ */
101
+ export function closeDebugLogger() {
102
+ if (debugStream) {
103
+ debugLog('INFO', 'MCP Shared Context Server Debug Log Ended');
104
+ debugLog('INFO', '='.repeat(80));
105
+ debugStream.end();
106
+ debugStream = null;
107
+ debugEnabled = false;
108
+ }
109
+ }
110
+ /**
111
+ * Check if debug logging is enabled
112
+ */
113
+ export function isDebugEnabled() {
114
+ return debugEnabled;
115
+ }
116
+ //# sourceMappingURL=debug-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-logger.js","sourceRoot":"","sources":["../../src/utils/debug-logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Help Action Usage Tracking
3
+ *
4
+ * Lightweight logging system to track help/example action invocations
5
+ * for understanding usage patterns and optimizing documentation.
6
+ *
7
+ * Data collected:
8
+ * - tool_name: Which MCP tool invoked help/example
9
+ * - action_name: "help" or "example"
10
+ * - timestamp: When the action was invoked
11
+ * - token_count: Estimated tokens in request + response
12
+ *
13
+ * Storage: Temporary log file in .sqlew/tmp/help-usage.log
14
+ * Format: JSON lines (one JSON object per line for easy parsing)
15
+ * Retention: Manual cleanup after 1-2 week analysis period
16
+ */
17
+ /**
18
+ * Help action invocation record
19
+ */
20
+ export interface HelpUsageRecord {
21
+ tool_name: string;
22
+ action_name: 'help' | 'example';
23
+ timestamp: string;
24
+ token_count: number;
25
+ context?: string;
26
+ }
27
+ /**
28
+ * Log a help action invocation
29
+ * Appends JSON line to log file for analysis
30
+ *
31
+ * @param record - Help usage record to log
32
+ */
33
+ export declare function logHelpUsage(record: HelpUsageRecord): void;
34
+ /**
35
+ * Estimate token count for help/example action
36
+ * Rough estimation based on response length
37
+ *
38
+ * @param toolName - Name of the MCP tool
39
+ * @param actionName - "help" or "example"
40
+ * @param responseLength - Length of response text
41
+ * @returns Estimated token count (request + response)
42
+ */
43
+ export declare function estimateHelpTokens(toolName: string, actionName: 'help' | 'example', responseLength: number): number;
44
+ /**
45
+ * Track help action and return the help content
46
+ * Convenience wrapper that logs and returns content
47
+ *
48
+ * @param toolName - Name of the MCP tool
49
+ * @param actionName - "help" or "example"
50
+ * @param content - Help content to return
51
+ * @param context - Optional context about what triggered help
52
+ * @returns The help content (pass-through)
53
+ */
54
+ export declare function trackAndReturnHelp(toolName: string, actionName: 'help' | 'example', content: string, context?: string): string;
55
+ //# sourceMappingURL=help-tracking.d.ts.map
@@ -0,0 +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"}