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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Migration Orchestrator
|
|
2
|
+
* Migration Orchestrator (v4.0.0 - Hybrid Support)
|
|
3
3
|
*
|
|
4
4
|
* Coordinates automatic sequential execution of all database migrations.
|
|
5
5
|
* Supports upgrading from any previous version to the latest version in a single run.
|
|
@@ -10,8 +10,16 @@
|
|
|
10
10
|
* - Sequential execution with transaction safety
|
|
11
11
|
* - Detailed logging and error reporting
|
|
12
12
|
* - Dry-run mode support
|
|
13
|
+
* - Hybrid support: better-sqlite3 (Database) OR Knex.js (DatabaseAdapter)
|
|
14
|
+
*
|
|
15
|
+
* Migration Strategy (v4.0.0+):
|
|
16
|
+
* - Knex migrations: Run automatically via initializeDatabase() → knex.migrate.latest()
|
|
17
|
+
* - Custom migrations: Legacy orchestrator for v1.x-v3.x upgrades (this file)
|
|
18
|
+
* - New deployments: Use Knex migrations only (src/migrations/knex/*)
|
|
19
|
+
* - Old upgrades: Use custom migrations first, then Knex migrations
|
|
13
20
|
*/
|
|
14
21
|
import { Database } from 'better-sqlite3';
|
|
22
|
+
import { DatabaseAdapter } from '../adapters/index.js';
|
|
15
23
|
export interface MigrationResult {
|
|
16
24
|
success: boolean;
|
|
17
25
|
message: string;
|
|
@@ -36,19 +44,21 @@ export interface MigrationInfo {
|
|
|
36
44
|
* - v3.0.0: Has m_task_statuses but no t_task_dependencies
|
|
37
45
|
* - v3.2.0: Has t_task_dependencies but no t_decision_context
|
|
38
46
|
* - v3.2.2: Has t_decision_context but no t_task_pruned_files
|
|
39
|
-
* - v3.5.0: Has t_task_pruned_files
|
|
47
|
+
* - v3.5.0: Has t_task_pruned_files but no m_help_tools
|
|
48
|
+
* - v3.6.0: Has m_help_tools (help system tables)
|
|
49
|
+
* - v4.0.0: Has knex_migrations table (Knex migration system)
|
|
40
50
|
*
|
|
41
|
-
* @param
|
|
51
|
+
* @param dbOrAdapter - Database connection or DatabaseAdapter
|
|
42
52
|
* @returns Detected version string
|
|
43
53
|
*/
|
|
44
|
-
export declare function detectDatabaseVersion(
|
|
54
|
+
export declare function detectDatabaseVersion(dbOrAdapter: Database | DatabaseAdapter): string;
|
|
45
55
|
/**
|
|
46
56
|
* Get migration plan for current database
|
|
47
57
|
*
|
|
48
|
-
* @param
|
|
58
|
+
* @param dbOrAdapter - Database connection or DatabaseAdapter
|
|
49
59
|
* @returns Array of migration names that need to run
|
|
50
60
|
*/
|
|
51
|
-
export declare function getMigrationPlan(
|
|
61
|
+
export declare function getMigrationPlan(dbOrAdapter: Database | DatabaseAdapter): string[];
|
|
52
62
|
/**
|
|
53
63
|
* Run all pending migrations in sequence
|
|
54
64
|
*
|
|
@@ -59,11 +69,14 @@ export declare function getMigrationPlan(db: Database): string[];
|
|
|
59
69
|
* 4. Stops on first failure (rollback already handled by individual migrations)
|
|
60
70
|
* 5. Returns combined results
|
|
61
71
|
*
|
|
62
|
-
*
|
|
72
|
+
* NOTE (v4.0.0+): This function runs custom migrations (v1.x-v3.x upgrades only).
|
|
73
|
+
* Knex migrations run automatically via initializeDatabase() → knex.migrate.latest().
|
|
74
|
+
*
|
|
75
|
+
* @param dbOrAdapter - Database connection or DatabaseAdapter
|
|
63
76
|
* @param dryRun - If true, only show plan without executing (default: false)
|
|
64
77
|
* @returns Array of migration results
|
|
65
78
|
*/
|
|
66
|
-
export declare function runAllMigrations(
|
|
79
|
+
export declare function runAllMigrations(dbOrAdapter: Database | DatabaseAdapter, dryRun?: boolean): MigrationResult[];
|
|
67
80
|
/**
|
|
68
81
|
* Get detailed info about a specific migration
|
|
69
82
|
*
|
|
@@ -80,17 +93,17 @@ export declare function listAllMigrations(): Omit<MigrationInfo, 'needsMigration
|
|
|
80
93
|
/**
|
|
81
94
|
* Check if database needs any migrations
|
|
82
95
|
*
|
|
83
|
-
* @param
|
|
96
|
+
* @param dbOrAdapter - Database connection or DatabaseAdapter
|
|
84
97
|
* @returns true if migrations are needed
|
|
85
98
|
*/
|
|
86
|
-
export declare function needsAnyMigrations(
|
|
99
|
+
export declare function needsAnyMigrations(dbOrAdapter: Database | DatabaseAdapter): boolean;
|
|
87
100
|
/**
|
|
88
101
|
* Get summary of migration status
|
|
89
102
|
*
|
|
90
|
-
* @param
|
|
103
|
+
* @param dbOrAdapter - Database connection or DatabaseAdapter
|
|
91
104
|
* @returns Summary object
|
|
92
105
|
*/
|
|
93
|
-
export declare function getMigrationStatus(
|
|
106
|
+
export declare function getMigrationStatus(dbOrAdapter: Database | DatabaseAdapter): {
|
|
94
107
|
currentVersion: string;
|
|
95
108
|
upToDate: boolean;
|
|
96
109
|
pendingMigrations: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAavD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC;IAC1C,YAAY,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,eAAe,CAAC;IAChD,gBAAgB,EAAE,MAAM,MAAM,CAAC;CAChC;AA4JD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,QAAQ,GAAG,eAAe,GAAG,MAAM,CAiFrF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,QAAQ,GAAG,eAAe,GAAG,MAAM,EAAE,CAWlF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,QAAQ,GAAG,eAAe,EAAE,MAAM,GAAE,OAAe,GAAG,eAAe,EAAE,CAyFpH;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOxE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAAC,aAAa,EAAE,gBAAgB,GAAG,cAAc,GAAG,kBAAkB,CAAC,EAAE,CAMjH;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,QAAQ,GAAG,eAAe,GAAG,OAAO,CAGnF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,QAAQ,GAAG,eAAe,GAAG;IAC3E,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB,CAUA"}
|
package/dist/migrations/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Migration Orchestrator
|
|
2
|
+
* Migration Orchestrator (v4.0.0 - Hybrid Support)
|
|
3
3
|
*
|
|
4
4
|
* Coordinates automatic sequential execution of all database migrations.
|
|
5
5
|
* Supports upgrading from any previous version to the latest version in a single run.
|
|
@@ -10,6 +10,13 @@
|
|
|
10
10
|
* - Sequential execution with transaction safety
|
|
11
11
|
* - Detailed logging and error reporting
|
|
12
12
|
* - Dry-run mode support
|
|
13
|
+
* - Hybrid support: better-sqlite3 (Database) OR Knex.js (DatabaseAdapter)
|
|
14
|
+
*
|
|
15
|
+
* Migration Strategy (v4.0.0+):
|
|
16
|
+
* - Knex migrations: Run automatically via initializeDatabase() → knex.migrate.latest()
|
|
17
|
+
* - Custom migrations: Legacy orchestrator for v1.x-v3.x upgrades (this file)
|
|
18
|
+
* - New deployments: Use Knex migrations only (src/migrations/knex/*)
|
|
19
|
+
* - Old upgrades: Use custom migrations first, then Knex migrations
|
|
13
20
|
*/
|
|
14
21
|
import * as tablePrefixes from './add-table-prefixes.js';
|
|
15
22
|
import * as v210Features from './add-v2.1.0-features.js';
|
|
@@ -17,6 +24,42 @@ import * as taskTables from './add-task-tables.js';
|
|
|
17
24
|
import * as taskDependencies from './add-task-dependencies.js';
|
|
18
25
|
import * as decisionContext from './add-decision-context.js';
|
|
19
26
|
import * as prunedFiles from './add-v3.5.0-pruned-files.js';
|
|
27
|
+
import * as helpSystemTables from './add-help-system-tables.js';
|
|
28
|
+
import * as seedToolMetadata from './seed-tool-metadata.js';
|
|
29
|
+
import * as seedHelpData from './seed-help-data.js';
|
|
30
|
+
import * as tokenTracking from './add-token-tracking.js';
|
|
31
|
+
/**
|
|
32
|
+
* Type guard to check if input is DatabaseAdapter
|
|
33
|
+
*/
|
|
34
|
+
function isDatabaseAdapter(dbOrAdapter) {
|
|
35
|
+
return typeof dbOrAdapter.getKnex === 'function';
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get Database instance from either Database or DatabaseAdapter
|
|
39
|
+
* For Knex adapters, we need to access the underlying better-sqlite3 connection
|
|
40
|
+
*
|
|
41
|
+
* NOTE: This is a temporary bridge for backward compatibility with custom migrations.
|
|
42
|
+
* New code should use Knex query builder via adapter.getKnex() instead.
|
|
43
|
+
*/
|
|
44
|
+
function getDatabase(dbOrAdapter) {
|
|
45
|
+
if (isDatabaseAdapter(dbOrAdapter)) {
|
|
46
|
+
// For SQLiteAdapter, access the underlying better-sqlite3 connection
|
|
47
|
+
// This assumes SQLiteAdapter stores it in a private property
|
|
48
|
+
const knex = dbOrAdapter.getKnex();
|
|
49
|
+
const client = knex.client;
|
|
50
|
+
if (client && client.driver && client.driver.name) {
|
|
51
|
+
// Access the better-sqlite3 connection from Knex client
|
|
52
|
+
const connections = client._connectionCache || {};
|
|
53
|
+
const connectionKey = Object.keys(connections)[0];
|
|
54
|
+
if (connectionKey && connections[connectionKey]) {
|
|
55
|
+
return connections[connectionKey];
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
// Fallback: throw error if we can't extract Database
|
|
59
|
+
throw new Error('Cannot extract Database from DatabaseAdapter for custom migrations. Please use Knex migrations instead.');
|
|
60
|
+
}
|
|
61
|
+
return dbOrAdapter;
|
|
62
|
+
}
|
|
20
63
|
/**
|
|
21
64
|
* Registry of all available migrations in execution order
|
|
22
65
|
*/
|
|
@@ -69,6 +112,70 @@ const MIGRATIONS = [
|
|
|
69
112
|
runMigration: prunedFiles.migrateToPrunedFiles,
|
|
70
113
|
getMigrationInfo: prunedFiles.getPrunedFilesMigrationInfo,
|
|
71
114
|
},
|
|
115
|
+
{
|
|
116
|
+
name: 'add-help-system-tables',
|
|
117
|
+
fromVersion: '3.5.3',
|
|
118
|
+
toVersion: '3.6.0',
|
|
119
|
+
needsMigration: helpSystemTables.needsHelpSystemMigration,
|
|
120
|
+
runMigration: helpSystemTables.migrateToHelpSystem,
|
|
121
|
+
getMigrationInfo: helpSystemTables.getHelpSystemMigrationInfo,
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
name: 'seed-tool-metadata',
|
|
125
|
+
fromVersion: '3.6.0',
|
|
126
|
+
toVersion: '3.6.0',
|
|
127
|
+
needsMigration: seedToolMetadata.needsToolMetadataSeeding,
|
|
128
|
+
runMigration: (db) => {
|
|
129
|
+
try {
|
|
130
|
+
seedToolMetadata.seedToolMetadata(db);
|
|
131
|
+
return {
|
|
132
|
+
success: true,
|
|
133
|
+
message: 'Tool metadata seeded successfully',
|
|
134
|
+
details: [seedToolMetadata.getToolMetadataSeedingInfo()]
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
139
|
+
return {
|
|
140
|
+
success: false,
|
|
141
|
+
message: `Failed to seed tool metadata: ${message}`
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
getMigrationInfo: seedToolMetadata.getToolMetadataSeedingInfo,
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
name: 'seed-help-data',
|
|
149
|
+
fromVersion: '3.6.0',
|
|
150
|
+
toVersion: '3.6.0',
|
|
151
|
+
needsMigration: seedHelpData.needsHelpDataSeeding,
|
|
152
|
+
runMigration: (db) => {
|
|
153
|
+
try {
|
|
154
|
+
seedHelpData.seedHelpData(db);
|
|
155
|
+
return {
|
|
156
|
+
success: true,
|
|
157
|
+
message: 'Help system use-case data seeded successfully',
|
|
158
|
+
details: [seedHelpData.getHelpDataSeedingInfo()]
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
163
|
+
return {
|
|
164
|
+
success: false,
|
|
165
|
+
message: `Failed to seed help data: ${message}`
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
getMigrationInfo: seedHelpData.getHelpDataSeedingInfo,
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
name: 'add-token-tracking',
|
|
173
|
+
fromVersion: '3.6.0',
|
|
174
|
+
toVersion: '3.6.0',
|
|
175
|
+
needsMigration: tokenTracking.needsTokenTrackingMigration,
|
|
176
|
+
runMigration: tokenTracking.migrateToTokenTracking,
|
|
177
|
+
getMigrationInfo: tokenTracking.getTokenTrackingMigrationInfo,
|
|
178
|
+
},
|
|
72
179
|
];
|
|
73
180
|
/**
|
|
74
181
|
* Detect current database version by inspecting schema
|
|
@@ -81,13 +188,21 @@ const MIGRATIONS = [
|
|
|
81
188
|
* - v3.0.0: Has m_task_statuses but no t_task_dependencies
|
|
82
189
|
* - v3.2.0: Has t_task_dependencies but no t_decision_context
|
|
83
190
|
* - v3.2.2: Has t_decision_context but no t_task_pruned_files
|
|
84
|
-
* - v3.5.0: Has t_task_pruned_files
|
|
191
|
+
* - v3.5.0: Has t_task_pruned_files but no m_help_tools
|
|
192
|
+
* - v3.6.0: Has m_help_tools (help system tables)
|
|
193
|
+
* - v4.0.0: Has knex_migrations table (Knex migration system)
|
|
85
194
|
*
|
|
86
|
-
* @param
|
|
195
|
+
* @param dbOrAdapter - Database connection or DatabaseAdapter
|
|
87
196
|
* @returns Detected version string
|
|
88
197
|
*/
|
|
89
|
-
export function detectDatabaseVersion(
|
|
198
|
+
export function detectDatabaseVersion(dbOrAdapter) {
|
|
90
199
|
try {
|
|
200
|
+
const db = getDatabase(dbOrAdapter);
|
|
201
|
+
// Check for help system tables (v3.6.0)
|
|
202
|
+
const hasHelpTables = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='m_help_tools'").get();
|
|
203
|
+
if (hasHelpTables) {
|
|
204
|
+
return '3.6.0';
|
|
205
|
+
}
|
|
91
206
|
// Check for pruned files table (v3.5.0)
|
|
92
207
|
const hasPrunedFiles = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='t_task_pruned_files'").get();
|
|
93
208
|
if (hasPrunedFiles) {
|
|
@@ -134,10 +249,11 @@ export function detectDatabaseVersion(db) {
|
|
|
134
249
|
/**
|
|
135
250
|
* Get migration plan for current database
|
|
136
251
|
*
|
|
137
|
-
* @param
|
|
252
|
+
* @param dbOrAdapter - Database connection or DatabaseAdapter
|
|
138
253
|
* @returns Array of migration names that need to run
|
|
139
254
|
*/
|
|
140
|
-
export function getMigrationPlan(
|
|
255
|
+
export function getMigrationPlan(dbOrAdapter) {
|
|
256
|
+
const db = getDatabase(dbOrAdapter);
|
|
141
257
|
const plan = [];
|
|
142
258
|
for (const migration of MIGRATIONS) {
|
|
143
259
|
if (migration.needsMigration(db)) {
|
|
@@ -156,27 +272,34 @@ export function getMigrationPlan(db) {
|
|
|
156
272
|
* 4. Stops on first failure (rollback already handled by individual migrations)
|
|
157
273
|
* 5. Returns combined results
|
|
158
274
|
*
|
|
159
|
-
*
|
|
275
|
+
* NOTE (v4.0.0+): This function runs custom migrations (v1.x-v3.x upgrades only).
|
|
276
|
+
* Knex migrations run automatically via initializeDatabase() → knex.migrate.latest().
|
|
277
|
+
*
|
|
278
|
+
* @param dbOrAdapter - Database connection or DatabaseAdapter
|
|
160
279
|
* @param dryRun - If true, only show plan without executing (default: false)
|
|
161
280
|
* @returns Array of migration results
|
|
162
281
|
*/
|
|
163
|
-
export function runAllMigrations(
|
|
282
|
+
export function runAllMigrations(dbOrAdapter, dryRun = false) {
|
|
283
|
+
const db = getDatabase(dbOrAdapter);
|
|
164
284
|
const results = [];
|
|
165
285
|
try {
|
|
166
286
|
// Detect current version
|
|
167
|
-
const currentVersion = detectDatabaseVersion(
|
|
287
|
+
const currentVersion = detectDatabaseVersion(dbOrAdapter);
|
|
168
288
|
console.log(`\n📊 Current database version: ${currentVersion}`);
|
|
169
289
|
// Get migration plan
|
|
170
|
-
const plan = getMigrationPlan(
|
|
290
|
+
const plan = getMigrationPlan(dbOrAdapter);
|
|
171
291
|
if (plan.length === 0) {
|
|
172
|
-
console.log('✅ Database is up to date, no migrations needed.\n');
|
|
292
|
+
console.log('✅ Database is up to date, no custom migrations needed.\n');
|
|
293
|
+
if (isDatabaseAdapter(dbOrAdapter)) {
|
|
294
|
+
console.log('ℹ️ Knex migrations were run automatically via initializeDatabase().\n');
|
|
295
|
+
}
|
|
173
296
|
return [{
|
|
174
297
|
success: true,
|
|
175
298
|
message: 'No migrations needed',
|
|
176
299
|
details: [`Current version: ${currentVersion}`]
|
|
177
300
|
}];
|
|
178
301
|
}
|
|
179
|
-
console.log(`\n📋 Migration plan (${plan.length} migration${plan.length === 1 ? '' : 's'}):`);
|
|
302
|
+
console.log(`\n📋 Migration plan (${plan.length} custom migration${plan.length === 1 ? '' : 's'}):`);
|
|
180
303
|
plan.forEach((step, i) => {
|
|
181
304
|
console.log(` ${i + 1}. ${step}`);
|
|
182
305
|
});
|
|
@@ -219,8 +342,11 @@ export function runAllMigrations(db, dryRun = false) {
|
|
|
219
342
|
}
|
|
220
343
|
}
|
|
221
344
|
// Detect final version
|
|
222
|
-
const finalVersion = detectDatabaseVersion(
|
|
223
|
-
console.log(`\n✅
|
|
345
|
+
const finalVersion = detectDatabaseVersion(dbOrAdapter);
|
|
346
|
+
console.log(`\n✅ Custom migrations complete: ${currentVersion} → ${finalVersion}\n`);
|
|
347
|
+
if (isDatabaseAdapter(dbOrAdapter)) {
|
|
348
|
+
console.log('ℹ️ Knex migrations were run automatically via initializeDatabase().\n');
|
|
349
|
+
}
|
|
224
350
|
return results;
|
|
225
351
|
}
|
|
226
352
|
catch (error) {
|
|
@@ -259,21 +385,22 @@ export function listAllMigrations() {
|
|
|
259
385
|
/**
|
|
260
386
|
* Check if database needs any migrations
|
|
261
387
|
*
|
|
262
|
-
* @param
|
|
388
|
+
* @param dbOrAdapter - Database connection or DatabaseAdapter
|
|
263
389
|
* @returns true if migrations are needed
|
|
264
390
|
*/
|
|
265
|
-
export function needsAnyMigrations(
|
|
391
|
+
export function needsAnyMigrations(dbOrAdapter) {
|
|
392
|
+
const db = getDatabase(dbOrAdapter);
|
|
266
393
|
return MIGRATIONS.some(m => m.needsMigration(db));
|
|
267
394
|
}
|
|
268
395
|
/**
|
|
269
396
|
* Get summary of migration status
|
|
270
397
|
*
|
|
271
|
-
* @param
|
|
398
|
+
* @param dbOrAdapter - Database connection or DatabaseAdapter
|
|
272
399
|
* @returns Summary object
|
|
273
400
|
*/
|
|
274
|
-
export function getMigrationStatus(
|
|
275
|
-
const currentVersion = detectDatabaseVersion(
|
|
276
|
-
const plan = getMigrationPlan(
|
|
401
|
+
export function getMigrationStatus(dbOrAdapter) {
|
|
402
|
+
const currentVersion = detectDatabaseVersion(dbOrAdapter);
|
|
403
|
+
const plan = getMigrationPlan(dbOrAdapter);
|
|
277
404
|
return {
|
|
278
405
|
currentVersion,
|
|
279
406
|
upToDate: plan.length === 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251025020452_create_master_tables.d.ts","sourceRoot":"","sources":["../../../src/migrations/knex/20251025020452_create_master_tables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA4DlD;AAGD,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAapD"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export async function up(knex) {
|
|
2
|
+
// ============================================================================
|
|
3
|
+
// Master Tables (m_ prefix) - Normalization Layer
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// Agent Management
|
|
6
|
+
await knex.schema.createTable('m_agents', (table) => {
|
|
7
|
+
table.increments('id').primary();
|
|
8
|
+
table.string('name', 100).unique().notNullable();
|
|
9
|
+
});
|
|
10
|
+
// File Path Management
|
|
11
|
+
await knex.schema.createTable('m_files', (table) => {
|
|
12
|
+
table.increments('id').primary();
|
|
13
|
+
table.string('path', 1000).unique().notNullable();
|
|
14
|
+
});
|
|
15
|
+
// Context Key Management
|
|
16
|
+
await knex.schema.createTable('m_context_keys', (table) => {
|
|
17
|
+
table.increments('id').primary();
|
|
18
|
+
table.string('key', 200).unique().notNullable();
|
|
19
|
+
});
|
|
20
|
+
// Constraint Category Management
|
|
21
|
+
await knex.schema.createTable('m_constraint_categories', (table) => {
|
|
22
|
+
table.increments('id').primary();
|
|
23
|
+
table.string('name', 100).unique().notNullable();
|
|
24
|
+
});
|
|
25
|
+
// Layer Management (5 predefined layers)
|
|
26
|
+
await knex.schema.createTable('m_layers', (table) => {
|
|
27
|
+
table.increments('id').primary();
|
|
28
|
+
table.string('name', 50).unique().notNullable();
|
|
29
|
+
});
|
|
30
|
+
// Tag Management
|
|
31
|
+
await knex.schema.createTable('m_tags', (table) => {
|
|
32
|
+
table.increments('id').primary();
|
|
33
|
+
table.string('name', 100).unique().notNullable();
|
|
34
|
+
});
|
|
35
|
+
// Scope Management
|
|
36
|
+
await knex.schema.createTable('m_scopes', (table) => {
|
|
37
|
+
table.increments('id').primary();
|
|
38
|
+
table.string('name', 200).unique().notNullable();
|
|
39
|
+
});
|
|
40
|
+
// Configuration Management (key-value store)
|
|
41
|
+
await knex.schema.createTable('m_config', (table) => {
|
|
42
|
+
table.string('key').primary();
|
|
43
|
+
table.text('value').notNullable();
|
|
44
|
+
});
|
|
45
|
+
// Task Statuses (enum-like table)
|
|
46
|
+
await knex.schema.createTable('m_task_statuses', (table) => {
|
|
47
|
+
table.integer('id').primary();
|
|
48
|
+
table.string('name', 50).unique().notNullable();
|
|
49
|
+
});
|
|
50
|
+
console.log('✅ Master tables created successfully');
|
|
51
|
+
}
|
|
52
|
+
export async function down(knex) {
|
|
53
|
+
// Drop in reverse order to handle dependencies
|
|
54
|
+
await knex.schema.dropTableIfExists('m_task_statuses');
|
|
55
|
+
await knex.schema.dropTableIfExists('m_config');
|
|
56
|
+
await knex.schema.dropTableIfExists('m_scopes');
|
|
57
|
+
await knex.schema.dropTableIfExists('m_tags');
|
|
58
|
+
await knex.schema.dropTableIfExists('m_layers');
|
|
59
|
+
await knex.schema.dropTableIfExists('m_constraint_categories');
|
|
60
|
+
await knex.schema.dropTableIfExists('m_context_keys');
|
|
61
|
+
await knex.schema.dropTableIfExists('m_files');
|
|
62
|
+
await knex.schema.dropTableIfExists('m_agents');
|
|
63
|
+
console.log('✅ Master tables dropped successfully');
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=20251025020452_create_master_tables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251025020452_create_master_tables.js","sourceRoot":"","sources":["../../../src/migrations/knex/20251025020452_create_master_tables.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251025021152_create_transaction_tables.d.ts","sourceRoot":"","sources":["../../../src/migrations/knex/20251025021152_create_transaction_tables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAsOlD;AAGD,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBpD"}
|