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.
- package/CHANGELOG.md +247 -1772
- package/README.md +70 -304
- package/assets/config.example.toml +97 -0
- package/dist/adapters/index.d.ts +11 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +21 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/mysql-adapter.d.ts +31 -0
- package/dist/adapters/mysql-adapter.d.ts.map +1 -0
- package/dist/adapters/mysql-adapter.js +63 -0
- package/dist/adapters/mysql-adapter.js.map +1 -0
- package/dist/adapters/postgresql-adapter.d.ts +31 -0
- package/dist/adapters/postgresql-adapter.d.ts.map +1 -0
- package/dist/adapters/postgresql-adapter.js +63 -0
- package/dist/adapters/postgresql-adapter.js.map +1 -0
- package/dist/adapters/sqlite-adapter.d.ts +37 -0
- package/dist/adapters/sqlite-adapter.d.ts.map +1 -0
- package/dist/adapters/sqlite-adapter.js +129 -0
- package/dist/adapters/sqlite-adapter.js.map +1 -0
- package/dist/adapters/types.d.ts +33 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +2 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/cli.js +55 -54
- package/dist/cli.js.map +1 -1
- package/dist/config/example-generator.d.ts +11 -0
- package/dist/config/example-generator.d.ts.map +1 -0
- package/dist/config/example-generator.js +48 -0
- package/dist/config/example-generator.js.map +1 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +4 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/types.d.ts +9 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/database.d.ts +44 -122
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +145 -416
- package/dist/database.js.map +1 -1
- package/dist/index.js +215 -185
- package/dist/index.js.map +1 -1
- package/dist/knexfile.d.ts +6 -0
- package/dist/knexfile.d.ts.map +1 -0
- package/dist/knexfile.js +85 -0
- package/dist/knexfile.js.map +1 -0
- package/dist/migrations/add-help-system-tables.d.ts +35 -0
- package/dist/migrations/add-help-system-tables.d.ts.map +1 -0
- package/dist/migrations/add-help-system-tables.js +206 -0
- package/dist/migrations/add-help-system-tables.js.map +1 -0
- package/dist/migrations/add-token-tracking.d.ts +28 -0
- package/dist/migrations/add-token-tracking.d.ts.map +1 -0
- package/dist/migrations/add-token-tracking.js +108 -0
- package/dist/migrations/add-token-tracking.js.map +1 -0
- package/dist/migrations/index.d.ts +25 -12
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +147 -20
- package/dist/migrations/index.js.map +1 -1
- package/dist/migrations/knex/20251025020452_create_master_tables.d.ts +4 -0
- package/dist/migrations/knex/20251025020452_create_master_tables.d.ts.map +1 -0
- package/dist/migrations/knex/20251025020452_create_master_tables.js +65 -0
- package/dist/migrations/knex/20251025020452_create_master_tables.js.map +1 -0
- package/dist/migrations/knex/20251025021152_create_transaction_tables.d.ts +4 -0
- package/dist/migrations/knex/20251025021152_create_transaction_tables.d.ts.map +1 -0
- package/dist/migrations/knex/20251025021152_create_transaction_tables.js +235 -0
- package/dist/migrations/knex/20251025021152_create_transaction_tables.js.map +1 -0
- package/dist/migrations/knex/20251025021351_create_indexes.d.ts +4 -0
- package/dist/migrations/knex/20251025021351_create_indexes.d.ts.map +1 -0
- package/dist/migrations/knex/20251025021351_create_indexes.js +62 -0
- package/dist/migrations/knex/20251025021351_create_indexes.js.map +1 -0
- package/dist/migrations/knex/20251025021416_seed_master_data.d.ts +4 -0
- package/dist/migrations/knex/20251025021416_seed_master_data.d.ts.map +1 -0
- package/dist/migrations/knex/20251025021416_seed_master_data.js +58 -0
- package/dist/migrations/knex/20251025021416_seed_master_data.js.map +1 -0
- package/dist/migrations/knex/20251025070349_create_views.d.ts +4 -0
- package/dist/migrations/knex/20251025070349_create_views.d.ts.map +1 -0
- package/dist/migrations/knex/20251025070349_create_views.js +143 -0
- package/dist/migrations/knex/20251025070349_create_views.js.map +1 -0
- package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.d.ts +4 -0
- package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.d.ts.map +1 -0
- package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.js +15 -0
- package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.js.map +1 -0
- package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.d.ts +8 -0
- package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.d.ts.map +1 -0
- package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.js +12 -0
- package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.js.map +1 -0
- package/dist/migrations/knex/20251025090000_create_help_system_tables.d.ts +19 -0
- package/dist/migrations/knex/20251025090000_create_help_system_tables.d.ts.map +1 -0
- package/dist/migrations/knex/20251025090000_create_help_system_tables.js +115 -0
- package/dist/migrations/knex/20251025090000_create_help_system_tables.js.map +1 -0
- package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.d.ts +13 -0
- package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.d.ts.map +1 -0
- package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.js +377 -0
- package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.js.map +1 -0
- package/dist/migrations/knex/20251025100000_seed_help_metadata.d.ts +15 -0
- package/dist/migrations/knex/20251025100000_seed_help_metadata.d.ts.map +1 -0
- package/dist/migrations/knex/20251025100000_seed_help_metadata.js +253 -0
- package/dist/migrations/knex/20251025100000_seed_help_metadata.js.map +1 -0
- package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.d.ts +16 -0
- package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.d.ts.map +1 -0
- package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.js +276 -0
- package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.js.map +1 -0
- package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.d.ts +8 -0
- package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.d.ts.map +1 -0
- package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.js +64 -0
- package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.js.map +1 -0
- package/dist/migrations/seed-help-data.d.ts +48 -0
- package/dist/migrations/seed-help-data.d.ts.map +1 -0
- package/dist/migrations/seed-help-data.js +1466 -0
- package/dist/migrations/seed-help-data.js.map +1 -0
- package/dist/migrations/seed-tool-metadata.d.ts +24 -0
- package/dist/migrations/seed-tool-metadata.d.ts.map +1 -0
- package/dist/migrations/seed-tool-metadata.js +392 -0
- package/dist/migrations/seed-tool-metadata.js.map +1 -0
- package/dist/migrations/v3.6.0-help-system-refactor.d.ts +46 -0
- package/dist/migrations/v3.6.0-help-system-refactor.d.ts.map +1 -0
- package/dist/migrations/v3.6.0-help-system-refactor.js +223 -0
- package/dist/migrations/v3.6.0-help-system-refactor.js.map +1 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +2 -0
- package/dist/schema.js.map +1 -1
- package/dist/tests/git-aware-completion.test.js +89 -70
- package/dist/tests/git-aware-completion.test.js.map +1 -1
- package/dist/tests/help-system.test.d.ts +23 -0
- package/dist/tests/help-system.test.d.ts.map +1 -0
- package/dist/tests/help-system.test.js +374 -0
- package/dist/tests/help-system.test.js.map +1 -0
- package/dist/tests/tasks.auto-pruning-decision-link.test.js +92 -78
- package/dist/tests/tasks.auto-pruning-decision-link.test.js.map +1 -1
- package/dist/tests/tasks.auto-pruning-partial.test.js +106 -95
- package/dist/tests/tasks.auto-pruning-partial.test.js.map +1 -1
- package/dist/tests/tasks.auto-pruning-persistence.test.js +115 -97
- package/dist/tests/tasks.auto-pruning-persistence.test.js.map +1 -1
- package/dist/tests/tasks.auto-pruning-safety.test.js +124 -103
- package/dist/tests/tasks.auto-pruning-safety.test.js.map +1 -1
- package/dist/tests/tasks.dependencies.test.js +338 -307
- package/dist/tests/tasks.dependencies.test.js.map +1 -1
- package/dist/tests/tasks.link-file-backward-compat.test.js +116 -104
- package/dist/tests/tasks.link-file-backward-compat.test.js.map +1 -1
- package/dist/tests/tasks.watch-files-action.test.js +122 -101
- package/dist/tests/tasks.watch-files-action.test.js.map +1 -1
- package/dist/tests/tasks.watch-files-parameter.test.js +105 -94
- package/dist/tests/tasks.watch-files-parameter.test.js.map +1 -1
- package/dist/tests/two-step-git-completion.test.js +176 -133
- package/dist/tests/two-step-git-completion.test.js.map +1 -1
- package/dist/tests/vcs-staging.test.js +1 -1
- package/dist/tests/vcs-staging.test.js.map +1 -1
- package/dist/tools/config.d.ts +9 -6
- package/dist/tools/config.d.ts.map +1 -1
- package/dist/tools/config.js +16 -14
- package/dist/tools/config.js.map +1 -1
- package/dist/tools/constraints.d.ts +10 -7
- package/dist/tools/constraints.d.ts.map +1 -1
- package/dist/tools/constraints.js +66 -48
- package/dist/tools/constraints.js.map +1 -1
- package/dist/tools/context.d.ts +36 -33
- package/dist/tools/context.d.ts.map +1 -1
- package/dist/tools/context.js +374 -330
- package/dist/tools/context.js.map +1 -1
- package/dist/tools/files.d.ts +12 -9
- package/dist/tools/files.d.ts.map +1 -1
- package/dist/tools/files.js +173 -95
- package/dist/tools/files.js.map +1 -1
- package/dist/tools/help-queries.d.ts +130 -0
- package/dist/tools/help-queries.d.ts.map +1 -0
- package/dist/tools/help-queries.js +393 -0
- package/dist/tools/help-queries.js.map +1 -0
- package/dist/tools/messaging.d.ts +14 -11
- package/dist/tools/messaging.d.ts.map +1 -1
- package/dist/tools/messaging.js +217 -133
- package/dist/tools/messaging.js.map +1 -1
- package/dist/tools/tasks.d.ts +18 -16
- package/dist/tools/tasks.d.ts.map +1 -1
- package/dist/tools/tasks.js +513 -439
- package/dist/tools/tasks.js.map +1 -1
- package/dist/tools/utils.d.ts +14 -11
- package/dist/tools/utils.d.ts.map +1 -1
- package/dist/tools/utils.js +86 -121
- package/dist/tools/utils.js.map +1 -1
- package/dist/utils/activity-logging.d.ts +114 -0
- package/dist/utils/activity-logging.d.ts.map +1 -0
- package/dist/utils/activity-logging.js +162 -0
- package/dist/utils/activity-logging.js.map +1 -0
- package/dist/utils/batch.d.ts +2 -2
- package/dist/utils/batch.d.ts.map +1 -1
- package/dist/utils/batch.js +8 -8
- package/dist/utils/batch.js.map +1 -1
- package/dist/utils/cleanup.d.ts +21 -13
- package/dist/utils/cleanup.d.ts.map +1 -1
- package/dist/utils/cleanup.js +31 -24
- package/dist/utils/cleanup.js.map +1 -1
- package/dist/utils/debug-logger.d.ts +44 -0
- package/dist/utils/debug-logger.d.ts.map +1 -0
- package/dist/utils/debug-logger.js +116 -0
- package/dist/utils/debug-logger.js.map +1 -0
- package/dist/utils/help-tracking.d.ts +55 -0
- package/dist/utils/help-tracking.d.ts.map +1 -0
- package/dist/utils/help-tracking.js +88 -0
- package/dist/utils/help-tracking.js.map +1 -0
- package/dist/utils/retention.d.ts +7 -7
- package/dist/utils/retention.d.ts.map +1 -1
- package/dist/utils/retention.js +12 -12
- package/dist/utils/retention.js.map +1 -1
- package/dist/utils/task-stale-detection.d.ts +15 -13
- package/dist/utils/task-stale-detection.d.ts.map +1 -1
- package/dist/utils/task-stale-detection.js +100 -302
- package/dist/utils/task-stale-detection.js.map +1 -1
- package/dist/utils/token-estimation.d.ts +72 -0
- package/dist/utils/token-estimation.d.ts.map +1 -0
- package/dist/utils/token-estimation.js +71 -0
- package/dist/utils/token-estimation.js.map +1 -0
- package/dist/utils/token-logging.d.ts +48 -0
- package/dist/utils/token-logging.d.ts.map +1 -0
- package/dist/utils/token-logging.js +112 -0
- package/dist/utils/token-logging.js.map +1 -0
- package/dist/utils/view-queries.d.ts +34 -0
- package/dist/utils/view-queries.d.ts.map +1 -0
- package/dist/utils/view-queries.js +192 -0
- package/dist/utils/view-queries.js.map +1 -0
- package/dist/watcher/file-watcher.d.ts.map +1 -1
- package/dist/watcher/file-watcher.js +25 -11
- package/dist/watcher/file-watcher.js.map +1 -1
- package/docs/BEST_PRACTICES.md +56 -448
- package/docs/MIGRATION_v3.6.0.md +170 -0
- package/docs/SHARED_CONCEPTS.md +63 -208
- package/docs/TASK_OVERVIEW.md +2 -2
- package/docs/TOOL_SELECTION.md +41 -248
- 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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"}
|
package/dist/utils/batch.d.ts
CHANGED
|
@@ -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
|
|
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
|
|
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,
|
|
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"}
|
package/dist/utils/batch.js
CHANGED
|
@@ -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(
|
|
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(
|
|
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);
|
package/dist/utils/batch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/utils/batch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAsB7C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,YAAY,
|
|
1
|
+
{"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/utils/batch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAsB7C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,EAAY,EACZ,KAAc,EACd,SAAoE,EACpE,SAAkB,IAAI,EACtB,WAAmB,EAAE;IAErB,kBAAkB;IAClB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,mCAAmC,QAAQ,gBAAgB,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,OAAO,GAA+B,EAAE,CAAC;IAC/C,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,kCAAkC;IAClC,MAAM,iBAAiB,GAAG,KAAK,EAAE,IAAW,EAAiB,EAAE;QAC7D,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,IAAI;gBACb,IAAI;aACL,CAAC,CAAC;YACH,SAAS,EAAE,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,OAAO,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,YAAY;aACpB,CAAC,CAAC;YACH,MAAM,EAAE,CAAC;YAET,wDAAwD;YACxD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,IAAI,MAAM,EAAE,CAAC;YACX,4DAA4D;YAC5D,OAAO,MAAM,WAAW,CAAC,KAAK,IAAI,EAAE;gBAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;gBAED,OAAO;oBACL,OAAO,EAAE,MAAM,KAAK,CAAC;oBACrB,SAAS;oBACT,MAAM;oBACN,OAAO;iBACR,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,0DAA0D;YAC1D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,MAAM,KAAK,CAAC;gBACrB,SAAS;gBACT,MAAM;gBACN,OAAO;aACR,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,MAAM,EAAE,CAAC;YACX,oDAAoD;YACpD,MAAM,IAAI,KAAK,CACb,yCAAyC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAClG,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,6CAA6C;YAC7C,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,SAAS;gBACT,MAAM;gBACN,OAAO;aACR,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,eAAe,CAC7B,UAAyE,EACzE,cAAsB,kBAAkB;IAExC,OAAO,KAAK,EAAE,MAAe,EAAoB,EAAE;QACjD,0DAA0D;QAC1D,yDAAyD;QACzD,MAAM,EAAE,GAAI,MAAc,CAAC,UAAU,CAAC;QACtC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,GAAG,WAAW,KAAK,OAAO,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/utils/cleanup.d.ts
CHANGED
|
@@ -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 {
|
|
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
|
|
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(
|
|
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
|
|
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(
|
|
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
|
|
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(
|
|
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
|
|
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(
|
|
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
|
|
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(
|
|
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
|
|
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"}
|
package/dist/utils/cleanup.js
CHANGED
|
@@ -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
|
|
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(
|
|
14
|
-
const messageCutoff = calculateMessageCutoff(
|
|
15
|
-
const fileChangeCutoff = calculateFileChangeCutoff(
|
|
16
|
-
const messagesDeleted = cleanupMessages(
|
|
17
|
-
const fileChangesDeleted = cleanupFileChanges(
|
|
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(
|
|
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
|
|
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(
|
|
30
|
-
const
|
|
31
|
-
return
|
|
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
|
|
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(
|
|
41
|
-
const
|
|
42
|
-
return
|
|
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
|
|
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(
|
|
53
|
-
const
|
|
54
|
-
return
|
|
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
|
|
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(
|
|
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(
|
|
77
|
+
messagesDeleted = await cleanupMessages(adapter, messageCutoff, trx);
|
|
71
78
|
// Activity log uses same retention as messages (constraint #4)
|
|
72
|
-
activityLogsDeleted = cleanupActivityLogs(
|
|
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(
|
|
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
|
|
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"}
|