sqlew 3.6.0 → 3.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +403 -376
- package/assets/config.example.toml +9 -0
- package/dist/config/types.d.ts +2 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/database.d.ts +14 -1
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +128 -5
- package/dist/database.js.map +1 -1
- package/dist/index.js +136 -82
- package/dist/index.js.map +1 -1
- package/dist/knexfile.d.ts.map +1 -1
- package/dist/knexfile.js +15 -3
- package/dist/knexfile.js.map +1 -1
- package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.d.ts.map +1 -0
- package/dist/migrations/knex/{20251025020452_create_master_tables.js → bootstrap/20251025020452_create_master_tables.js} +15 -12
- package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.js.map +1 -0
- package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.d.ts.map +1 -0
- package/dist/migrations/knex/{20251025021152_create_transaction_tables.js → bootstrap/20251025021152_create_transaction_tables.js} +19 -19
- package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.js.map +1 -0
- package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.d.ts.map +1 -0
- package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.js +93 -0
- package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.js.map +1 -0
- package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.d.ts.map +1 -0
- package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.js +64 -0
- package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.js.map +1 -0
- package/dist/migrations/knex/bootstrap/20251025070349_create_views.d.ts.map +1 -0
- package/dist/migrations/knex/bootstrap/20251025070349_create_views.js.map +1 -0
- package/dist/migrations/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts.map +1 -0
- package/dist/migrations/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js.map +1 -0
- package/dist/migrations/knex/enhancements/20251025082220_fix_task_dependencies_columns.d.ts.map +1 -0
- package/dist/migrations/knex/enhancements/20251025082220_fix_task_dependencies_columns.js.map +1 -0
- package/dist/migrations/knex/enhancements/20251025090000_create_help_system_tables.d.ts.map +1 -0
- package/dist/migrations/knex/enhancements/20251025090000_create_help_system_tables.js.map +1 -0
- package/dist/migrations/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts.map +1 -0
- package/dist/migrations/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.js.map +1 -0
- package/dist/migrations/knex/enhancements/20251025100000_seed_help_metadata.d.ts.map +1 -0
- package/dist/migrations/knex/enhancements/20251025100000_seed_help_metadata.js.map +1 -0
- package/dist/migrations/knex/enhancements/20251025100100_seed_remaining_use_cases.d.ts.map +1 -0
- package/dist/migrations/knex/enhancements/20251025100100_seed_remaining_use_cases.js.map +1 -0
- package/dist/migrations/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts.map +1 -0
- package/dist/migrations/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.js.map +1 -0
- package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts +14 -0
- package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts.map +1 -0
- package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.js +34 -0
- package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.js.map +1 -0
- package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts +4 -0
- package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts.map +1 -0
- package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js +24 -0
- package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js.map +1 -0
- package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.d.ts +16 -0
- package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.d.ts.map +1 -0
- package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.js +27 -0
- package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.js.map +1 -0
- package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts +13 -0
- package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts.map +1 -0
- package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js +70 -0
- package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js.map +1 -0
- package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts +11 -0
- package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts.map +1 -0
- package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js +36 -0
- package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js.map +1 -0
- package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts +14 -0
- package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts.map +1 -0
- package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js +84 -0
- package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js.map +1 -0
- package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts +9 -0
- package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts.map +1 -0
- package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js +37 -0
- package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js.map +1 -0
- package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts +9 -0
- package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts.map +1 -0
- package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js +41 -0
- package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js.map +1 -0
- package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts +9 -0
- package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts.map +1 -0
- package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js +36 -0
- package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js.map +1 -0
- package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts +10 -0
- package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts.map +1 -0
- package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js +28 -0
- package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js.map +1 -0
- package/dist/tests/agent-reuse.test.d.ts +6 -0
- package/dist/tests/agent-reuse.test.d.ts.map +1 -0
- package/dist/tests/agent-reuse.test.js +242 -0
- package/dist/tests/agent-reuse.test.js.map +1 -0
- package/dist/tests/all-features.test.d.ts +7 -0
- package/dist/tests/all-features.test.d.ts.map +1 -0
- package/dist/tests/all-features.test.js +514 -0
- package/dist/tests/all-features.test.js.map +1 -0
- package/dist/tests/migrations/test-all-versions-real.d.ts +8 -0
- package/dist/tests/migrations/test-all-versions-real.d.ts.map +1 -0
- package/dist/tests/migrations/test-all-versions-real.js +234 -0
- package/dist/tests/migrations/test-all-versions-real.js.map +1 -0
- package/dist/tests/migrations/test-all-versions.d.ts +14 -0
- package/dist/tests/migrations/test-all-versions.d.ts.map +1 -0
- package/dist/tests/migrations/test-all-versions.js +521 -0
- package/dist/tests/migrations/test-all-versions.js.map +1 -0
- package/dist/tools/constraints.d.ts.map +1 -1
- package/dist/tools/constraints.js +11 -7
- package/dist/tools/constraints.js.map +1 -1
- package/dist/tools/context.d.ts.map +1 -1
- package/dist/tools/context.js +73 -16
- package/dist/tools/context.js.map +1 -1
- package/dist/tools/messaging.d.ts.map +1 -1
- package/dist/tools/messaging.js +23 -1
- package/dist/tools/messaging.js.map +1 -1
- package/dist/tools/tasks.d.ts.map +1 -1
- package/dist/tools/tasks.js +8 -5
- package/dist/tools/tasks.js.map +1 -1
- package/dist/tools/utils.d.ts.map +1 -1
- package/dist/tools/utils.js +4 -1
- package/dist/tools/utils.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/cleanup.d.ts +3 -1
- package/dist/utils/cleanup.d.ts.map +1 -1
- package/dist/utils/cleanup.js +6 -3
- package/dist/utils/cleanup.js.map +1 -1
- package/dist/utils/debug-logger.d.ts +57 -2
- package/dist/utils/debug-logger.d.ts.map +1 -1
- package/dist/utils/debug-logger.js +155 -4
- package/dist/utils/debug-logger.js.map +1 -1
- package/dist/utils/error-handler.d.ts +28 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +121 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/help-tracking.d.ts +3 -3
- package/dist/utils/help-tracking.d.ts.map +1 -1
- package/dist/utils/help-tracking.js.map +1 -1
- package/dist/utils/param-parser.d.ts +23 -0
- package/dist/utils/param-parser.d.ts.map +1 -0
- package/dist/utils/param-parser.js +52 -0
- package/dist/utils/param-parser.js.map +1 -0
- package/dist/utils/retention.d.ts +10 -0
- package/dist/utils/retention.d.ts.map +1 -1
- package/dist/utils/retention.js +19 -0
- package/dist/utils/retention.js.map +1 -1
- package/docs/MIGRATION_CHAIN.md +293 -280
- package/package.json +85 -81
- package/dist/migrations/add-decision-context.d.ts +0 -28
- package/dist/migrations/add-decision-context.d.ts.map +0 -1
- package/dist/migrations/add-decision-context.js +0 -125
- package/dist/migrations/add-decision-context.js.map +0 -1
- package/dist/migrations/add-help-system-tables.d.ts +0 -35
- package/dist/migrations/add-help-system-tables.d.ts.map +0 -1
- package/dist/migrations/add-help-system-tables.js +0 -206
- package/dist/migrations/add-help-system-tables.js.map +0 -1
- package/dist/migrations/add-table-prefixes.d.ts +0 -29
- package/dist/migrations/add-table-prefixes.d.ts.map +0 -1
- package/dist/migrations/add-table-prefixes.js +0 -150
- package/dist/migrations/add-table-prefixes.js.map +0 -1
- package/dist/migrations/add-task-dependencies.d.ts +0 -26
- package/dist/migrations/add-task-dependencies.d.ts.map +0 -1
- package/dist/migrations/add-task-dependencies.js +0 -94
- package/dist/migrations/add-task-dependencies.js.map +0 -1
- package/dist/migrations/add-task-tables.d.ts +0 -47
- package/dist/migrations/add-task-tables.d.ts.map +0 -1
- package/dist/migrations/add-task-tables.js +0 -285
- package/dist/migrations/add-task-tables.js.map +0 -1
- package/dist/migrations/add-token-tracking.d.ts +0 -28
- package/dist/migrations/add-token-tracking.d.ts.map +0 -1
- package/dist/migrations/add-token-tracking.js +0 -108
- package/dist/migrations/add-token-tracking.js.map +0 -1
- package/dist/migrations/add-v2.1.0-features.d.ts +0 -29
- package/dist/migrations/add-v2.1.0-features.d.ts.map +0 -1
- package/dist/migrations/add-v2.1.0-features.js +0 -198
- package/dist/migrations/add-v2.1.0-features.js.map +0 -1
- package/dist/migrations/add-v3.5.0-pruned-files.d.ts +0 -26
- package/dist/migrations/add-v3.5.0-pruned-files.d.ts.map +0 -1
- package/dist/migrations/add-v3.5.0-pruned-files.js +0 -107
- package/dist/migrations/add-v3.5.0-pruned-files.js.map +0 -1
- package/dist/migrations/index.d.ts +0 -112
- package/dist/migrations/index.d.ts.map +0 -1
- package/dist/migrations/index.js +0 -411
- package/dist/migrations/index.js.map +0 -1
- package/dist/migrations/knex/20251025020452_create_master_tables.d.ts.map +0 -1
- package/dist/migrations/knex/20251025020452_create_master_tables.js.map +0 -1
- package/dist/migrations/knex/20251025021152_create_transaction_tables.d.ts.map +0 -1
- package/dist/migrations/knex/20251025021152_create_transaction_tables.js.map +0 -1
- package/dist/migrations/knex/20251025021351_create_indexes.d.ts.map +0 -1
- package/dist/migrations/knex/20251025021351_create_indexes.js +0 -62
- package/dist/migrations/knex/20251025021351_create_indexes.js.map +0 -1
- package/dist/migrations/knex/20251025021416_seed_master_data.d.ts.map +0 -1
- package/dist/migrations/knex/20251025021416_seed_master_data.js +0 -58
- package/dist/migrations/knex/20251025021416_seed_master_data.js.map +0 -1
- package/dist/migrations/knex/20251025070349_create_views.d.ts.map +0 -1
- package/dist/migrations/knex/20251025070349_create_views.js.map +0 -1
- package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.d.ts.map +0 -1
- package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.js.map +0 -1
- package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.d.ts.map +0 -1
- package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.js.map +0 -1
- package/dist/migrations/knex/20251025090000_create_help_system_tables.d.ts.map +0 -1
- package/dist/migrations/knex/20251025090000_create_help_system_tables.js.map +0 -1
- package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.d.ts.map +0 -1
- package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.js.map +0 -1
- package/dist/migrations/knex/20251025100000_seed_help_metadata.d.ts.map +0 -1
- package/dist/migrations/knex/20251025100000_seed_help_metadata.js.map +0 -1
- package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.d.ts.map +0 -1
- package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.js.map +0 -1
- package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.d.ts.map +0 -1
- package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.js.map +0 -1
- package/dist/migrations/migrate-decisions-to-tasks.d.ts +0 -61
- package/dist/migrations/migrate-decisions-to-tasks.d.ts.map +0 -1
- package/dist/migrations/migrate-decisions-to-tasks.js +0 -442
- package/dist/migrations/migrate-decisions-to-tasks.js.map +0 -1
- package/dist/migrations/seed-help-data.d.ts +0 -48
- package/dist/migrations/seed-help-data.d.ts.map +0 -1
- package/dist/migrations/seed-help-data.js +0 -1466
- package/dist/migrations/seed-help-data.js.map +0 -1
- package/dist/migrations/seed-tool-metadata.d.ts +0 -24
- package/dist/migrations/seed-tool-metadata.d.ts.map +0 -1
- package/dist/migrations/seed-tool-metadata.js +0 -392
- package/dist/migrations/seed-tool-metadata.js.map +0 -1
- package/dist/migrations/v3.6.0-help-system-refactor.d.ts +0 -46
- package/dist/migrations/v3.6.0-help-system-refactor.d.ts.map +0 -1
- package/dist/migrations/v3.6.0-help-system-refactor.js +0 -223
- package/dist/migrations/v3.6.0-help-system-refactor.js.map +0 -1
- package/dist/tests/migrations/test-v3.2-migration.d.ts +0 -6
- package/dist/tests/migrations/test-v3.2-migration.d.ts.map +0 -1
- package/dist/tests/migrations/test-v3.2-migration.js +0 -191
- package/dist/tests/migrations/test-v3.2-migration.js.map +0 -1
- /package/dist/migrations/knex/{20251025020452_create_master_tables.d.ts → bootstrap/20251025020452_create_master_tables.d.ts} +0 -0
- /package/dist/migrations/knex/{20251025021152_create_transaction_tables.d.ts → bootstrap/20251025021152_create_transaction_tables.d.ts} +0 -0
- /package/dist/migrations/knex/{20251025021351_create_indexes.d.ts → bootstrap/20251025021351_create_indexes.d.ts} +0 -0
- /package/dist/migrations/knex/{20251025021416_seed_master_data.d.ts → bootstrap/20251025021416_seed_master_data.d.ts} +0 -0
- /package/dist/migrations/knex/{20251025070349_create_views.d.ts → bootstrap/20251025070349_create_views.d.ts} +0 -0
- /package/dist/migrations/knex/{20251025070349_create_views.js → bootstrap/20251025070349_create_views.js} +0 -0
- /package/dist/migrations/knex/{20251025081221_add_link_type_to_task_decision_links.d.ts → enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts} +0 -0
- /package/dist/migrations/knex/{20251025081221_add_link_type_to_task_decision_links.js → enhancements/20251025081221_add_link_type_to_task_decision_links.js} +0 -0
- /package/dist/migrations/knex/{20251025082220_fix_task_dependencies_columns.d.ts → enhancements/20251025082220_fix_task_dependencies_columns.d.ts} +0 -0
- /package/dist/migrations/knex/{20251025082220_fix_task_dependencies_columns.js → enhancements/20251025082220_fix_task_dependencies_columns.js} +0 -0
- /package/dist/migrations/knex/{20251025090000_create_help_system_tables.d.ts → enhancements/20251025090000_create_help_system_tables.d.ts} +0 -0
- /package/dist/migrations/knex/{20251025090000_create_help_system_tables.js → enhancements/20251025090000_create_help_system_tables.js} +0 -0
- /package/dist/migrations/knex/{20251025090100_seed_help_categories_and_use_cases.d.ts → enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts} +0 -0
- /package/dist/migrations/knex/{20251025090100_seed_help_categories_and_use_cases.js → enhancements/20251025090100_seed_help_categories_and_use_cases.js} +0 -0
- /package/dist/migrations/knex/{20251025100000_seed_help_metadata.d.ts → enhancements/20251025100000_seed_help_metadata.d.ts} +0 -0
- /package/dist/migrations/knex/{20251025100000_seed_help_metadata.js → enhancements/20251025100000_seed_help_metadata.js} +0 -0
- /package/dist/migrations/knex/{20251025100100_seed_remaining_use_cases.d.ts → enhancements/20251025100100_seed_remaining_use_cases.d.ts} +0 -0
- /package/dist/migrations/knex/{20251025100100_seed_remaining_use_cases.js → enhancements/20251025100100_seed_remaining_use_cases.js} +0 -0
- /package/dist/migrations/knex/{20251025120000_add_cascade_to_task_dependencies.d.ts → enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts} +0 -0
- /package/dist/migrations/knex/{20251025120000_add_cascade_to_task_dependencies.js → enhancements/20251025120000_add_cascade_to_task_dependencies.js} +0 -0
|
@@ -0,0 +1,521 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Comprehensive Migration Test: All Versions → v3.6.1
|
|
3
|
+
*
|
|
4
|
+
* Tests migration paths from all released versions to the current version.
|
|
5
|
+
* This ensures backward compatibility and safe upgrade paths for all users.
|
|
6
|
+
*
|
|
7
|
+
* Released versions tested:
|
|
8
|
+
* - v1.x: 1.0.0, 1.1.0, 1.1.1, 1.1.2
|
|
9
|
+
* - v2.x: 2.0.0, 2.1.0, 2.1.1, 2.1.2, 2.1.3, 2.1.4
|
|
10
|
+
* - v3.0-v3.2: 3.0.2, 3.1.0, 3.1.1, 3.1.2, 3.2.2, 3.2.4, 3.2.5
|
|
11
|
+
* - v3.5-v3.6: 3.5.3, 3.6.0
|
|
12
|
+
*/
|
|
13
|
+
import Database from 'better-sqlite3';
|
|
14
|
+
import { execSync } from 'child_process';
|
|
15
|
+
import { writeFileSync, existsSync, mkdirSync } from 'fs';
|
|
16
|
+
import { join } from 'path';
|
|
17
|
+
import Knex from 'knex';
|
|
18
|
+
import knexConfig from '../../knexfile.js';
|
|
19
|
+
// Colors for console output
|
|
20
|
+
const GREEN = '\x1b[32m';
|
|
21
|
+
const RED = '\x1b[31m';
|
|
22
|
+
const BLUE = '\x1b[34m';
|
|
23
|
+
const YELLOW = '\x1b[33m';
|
|
24
|
+
const CYAN = '\x1b[36m';
|
|
25
|
+
const RESET = '\x1b[0m';
|
|
26
|
+
function log(message, color = RESET) {
|
|
27
|
+
console.log(`${color}${message}${RESET}`);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* All released versions to test
|
|
31
|
+
*/
|
|
32
|
+
const RELEASED_VERSIONS = [
|
|
33
|
+
'1.0.0',
|
|
34
|
+
'1.1.0',
|
|
35
|
+
'1.1.1',
|
|
36
|
+
'1.1.2',
|
|
37
|
+
'2.0.0',
|
|
38
|
+
'2.1.0',
|
|
39
|
+
'2.1.1',
|
|
40
|
+
'2.1.2',
|
|
41
|
+
'2.1.3',
|
|
42
|
+
'2.1.4',
|
|
43
|
+
'3.0.2',
|
|
44
|
+
'3.1.0',
|
|
45
|
+
'3.1.1',
|
|
46
|
+
'3.1.2',
|
|
47
|
+
'3.2.2',
|
|
48
|
+
'3.2.4',
|
|
49
|
+
'3.2.5',
|
|
50
|
+
'3.5.3',
|
|
51
|
+
'3.6.0',
|
|
52
|
+
];
|
|
53
|
+
const CURRENT_VERSION = '3.6.2';
|
|
54
|
+
/**
|
|
55
|
+
* Simple version detection based on table existence
|
|
56
|
+
*/
|
|
57
|
+
function detectInitialVersion(db) {
|
|
58
|
+
const tables = db.prepare("SELECT name FROM sqlite_master WHERE type='table'").all();
|
|
59
|
+
const tableNames = tables.map(t => t.name);
|
|
60
|
+
// Check for version indicators
|
|
61
|
+
if (tableNames.includes('m_help_tools'))
|
|
62
|
+
return '3.6.0';
|
|
63
|
+
if (tableNames.includes('t_task_pruned_files'))
|
|
64
|
+
return '3.5.x';
|
|
65
|
+
if (tableNames.includes('t_decision_context'))
|
|
66
|
+
return '3.2.2+';
|
|
67
|
+
if (tableNames.includes('t_task_dependencies'))
|
|
68
|
+
return '3.2.0';
|
|
69
|
+
if (tableNames.includes('t_tasks'))
|
|
70
|
+
return '3.0.x';
|
|
71
|
+
if (tableNames.includes('t_activity_log'))
|
|
72
|
+
return '2.1.x';
|
|
73
|
+
if (tableNames.includes('m_agents'))
|
|
74
|
+
return '1.1.x/2.0.0';
|
|
75
|
+
if (tableNames.includes('agents'))
|
|
76
|
+
return '1.0.0';
|
|
77
|
+
return 'unknown';
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Extract database schema from a git tag
|
|
81
|
+
*/
|
|
82
|
+
function extractSchemaFromTag(version) {
|
|
83
|
+
const tmpDir = join(process.cwd(), '.sqlew', 'tmp', 'schema-extraction');
|
|
84
|
+
try {
|
|
85
|
+
// Create temp directory
|
|
86
|
+
if (!existsSync(tmpDir)) {
|
|
87
|
+
mkdirSync(tmpDir, { recursive: true });
|
|
88
|
+
}
|
|
89
|
+
// Try to extract schema.sql from the tag
|
|
90
|
+
try {
|
|
91
|
+
const schemaPath = 'assets/schema.sql';
|
|
92
|
+
const content = execSync(`git show v${version}:${schemaPath}`, { encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe'] });
|
|
93
|
+
return content;
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// If schema.sql doesn't exist, try to extract from schema.ts initialization
|
|
97
|
+
try {
|
|
98
|
+
const schemaPath = 'src/schema.ts';
|
|
99
|
+
const schemaTs = execSync(`git show v${version}:${schemaPath}`, { encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe'] });
|
|
100
|
+
// Extract SQL from initializeSchema function
|
|
101
|
+
// This is a simplified extraction - may need adjustment
|
|
102
|
+
const sqlMatch = schemaTs.match(/db\.exec\(`([\s\S]*?)`\)/);
|
|
103
|
+
if (sqlMatch) {
|
|
104
|
+
return sqlMatch[1];
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
// Schema extraction failed
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
log(` ⚠️ Could not extract schema for v${version}: ${error}`, YELLOW);
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Create a database with the schema from a specific version
|
|
120
|
+
*/
|
|
121
|
+
function createDatabaseForVersion(version) {
|
|
122
|
+
log(`\n 📦 Creating database for v${version}...`, CYAN);
|
|
123
|
+
// Create temporary file database (not in-memory) so Knex can access it
|
|
124
|
+
const tmpDir = join(process.cwd(), '.sqlew', 'tmp', 'migration-tests');
|
|
125
|
+
if (!existsSync(tmpDir)) {
|
|
126
|
+
mkdirSync(tmpDir, { recursive: true });
|
|
127
|
+
}
|
|
128
|
+
const dbPath = join(tmpDir, `test-v${version}-${Date.now()}.db`);
|
|
129
|
+
// For testing, we'll create databases based on version detection logic
|
|
130
|
+
// This simulates databases from different versions
|
|
131
|
+
const db = new Database(dbPath);
|
|
132
|
+
try {
|
|
133
|
+
// Enable foreign keys
|
|
134
|
+
db.exec('PRAGMA foreign_keys = ON');
|
|
135
|
+
// Create schema based on version
|
|
136
|
+
// We'll use a simplified approach: create tables that match version detection
|
|
137
|
+
if (version === '1.0.0') {
|
|
138
|
+
// v1.0.0: Unprefixed tables
|
|
139
|
+
db.exec(`
|
|
140
|
+
CREATE TABLE agents (
|
|
141
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
142
|
+
name TEXT NOT NULL UNIQUE,
|
|
143
|
+
created_ts INTEGER NOT NULL DEFAULT (strftime('%s', 'now'))
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
CREATE TABLE decisions (
|
|
147
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
148
|
+
agent_id INTEGER NOT NULL,
|
|
149
|
+
key TEXT NOT NULL,
|
|
150
|
+
value TEXT NOT NULL,
|
|
151
|
+
ts INTEGER NOT NULL DEFAULT (strftime('%s', 'now')),
|
|
152
|
+
FOREIGN KEY (agent_id) REFERENCES agents(id)
|
|
153
|
+
);
|
|
154
|
+
`);
|
|
155
|
+
log(` ✓ Created v1.0.0 schema (unprefixed tables)`, GREEN);
|
|
156
|
+
}
|
|
157
|
+
else if (version.startsWith('1.1.') || version === '2.0.0') {
|
|
158
|
+
// v1.1.x and v2.0.0: Prefixed tables, no activity log
|
|
159
|
+
db.exec(`
|
|
160
|
+
CREATE TABLE m_agents (
|
|
161
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
162
|
+
name TEXT NOT NULL UNIQUE,
|
|
163
|
+
created_ts INTEGER NOT NULL DEFAULT (strftime('%s', 'now'))
|
|
164
|
+
);
|
|
165
|
+
|
|
166
|
+
CREATE TABLE t_decisions (
|
|
167
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
168
|
+
agent_id INTEGER NOT NULL,
|
|
169
|
+
context_key TEXT NOT NULL,
|
|
170
|
+
value TEXT NOT NULL,
|
|
171
|
+
ts INTEGER NOT NULL DEFAULT (strftime('%s', 'now')),
|
|
172
|
+
FOREIGN KEY (agent_id) REFERENCES m_agents(id)
|
|
173
|
+
);
|
|
174
|
+
`);
|
|
175
|
+
log(` ✓ Created v${version} schema (prefixed tables)`, GREEN);
|
|
176
|
+
}
|
|
177
|
+
else if (version.startsWith('2.1.')) {
|
|
178
|
+
// v2.1.x: Has activity log, no task tables
|
|
179
|
+
db.exec(`
|
|
180
|
+
CREATE TABLE m_agents (
|
|
181
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
182
|
+
name TEXT NOT NULL UNIQUE,
|
|
183
|
+
created_ts INTEGER NOT NULL DEFAULT (strftime('%s', 'now'))
|
|
184
|
+
);
|
|
185
|
+
|
|
186
|
+
CREATE TABLE t_decisions (
|
|
187
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
188
|
+
agent_id INTEGER NOT NULL,
|
|
189
|
+
context_key TEXT NOT NULL,
|
|
190
|
+
value TEXT NOT NULL,
|
|
191
|
+
ts INTEGER NOT NULL DEFAULT (strftime('%s', 'now')),
|
|
192
|
+
FOREIGN KEY (agent_id) REFERENCES m_agents(id)
|
|
193
|
+
);
|
|
194
|
+
|
|
195
|
+
CREATE TABLE t_activity_log (
|
|
196
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
197
|
+
ts INTEGER NOT NULL DEFAULT (strftime('%s', 'now')),
|
|
198
|
+
action_type TEXT NOT NULL,
|
|
199
|
+
details TEXT
|
|
200
|
+
);
|
|
201
|
+
`);
|
|
202
|
+
log(` ✓ Created v${version} schema (with activity log)`, GREEN);
|
|
203
|
+
}
|
|
204
|
+
else if (version === '3.0.2' || version.startsWith('3.1.')) {
|
|
205
|
+
// v3.0.x - v3.1.x: Has task tables, no dependencies
|
|
206
|
+
db.exec(`
|
|
207
|
+
CREATE TABLE m_agents (
|
|
208
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
209
|
+
name TEXT NOT NULL UNIQUE,
|
|
210
|
+
created_ts INTEGER NOT NULL DEFAULT (strftime('%s', 'now'))
|
|
211
|
+
);
|
|
212
|
+
|
|
213
|
+
CREATE TABLE m_task_statuses (
|
|
214
|
+
id INTEGER PRIMARY KEY,
|
|
215
|
+
name TEXT NOT NULL UNIQUE
|
|
216
|
+
);
|
|
217
|
+
|
|
218
|
+
INSERT INTO m_task_statuses (id, name) VALUES
|
|
219
|
+
(1, 'pending'),
|
|
220
|
+
(2, 'in_progress'),
|
|
221
|
+
(3, 'completed'),
|
|
222
|
+
(4, 'archived');
|
|
223
|
+
|
|
224
|
+
CREATE TABLE t_tasks (
|
|
225
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
226
|
+
title TEXT NOT NULL,
|
|
227
|
+
status_id INTEGER NOT NULL,
|
|
228
|
+
created_by_agent_id INTEGER NOT NULL,
|
|
229
|
+
created_ts INTEGER NOT NULL DEFAULT (strftime('%s', 'now')),
|
|
230
|
+
FOREIGN KEY (status_id) REFERENCES m_task_statuses(id),
|
|
231
|
+
FOREIGN KEY (created_by_agent_id) REFERENCES m_agents(id)
|
|
232
|
+
);
|
|
233
|
+
|
|
234
|
+
CREATE TABLE t_activity_log (
|
|
235
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
236
|
+
ts INTEGER NOT NULL DEFAULT (strftime('%s', 'now')),
|
|
237
|
+
action_type TEXT NOT NULL,
|
|
238
|
+
details TEXT
|
|
239
|
+
);
|
|
240
|
+
`);
|
|
241
|
+
log(` ✓ Created v${version} schema (with tasks, no dependencies)`, GREEN);
|
|
242
|
+
}
|
|
243
|
+
else if (version.startsWith('3.2.') && version !== '3.2.2') {
|
|
244
|
+
// v3.2.0 - v3.2.1: Has task dependencies, no decision context
|
|
245
|
+
db.exec(`
|
|
246
|
+
CREATE TABLE m_agents (
|
|
247
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
248
|
+
name TEXT NOT NULL UNIQUE,
|
|
249
|
+
created_ts INTEGER NOT NULL DEFAULT (strftime('%s', 'now'))
|
|
250
|
+
);
|
|
251
|
+
|
|
252
|
+
CREATE TABLE m_task_statuses (
|
|
253
|
+
id INTEGER PRIMARY KEY,
|
|
254
|
+
name TEXT NOT NULL UNIQUE
|
|
255
|
+
);
|
|
256
|
+
|
|
257
|
+
INSERT INTO m_task_statuses (id, name) VALUES
|
|
258
|
+
(1, 'pending'),
|
|
259
|
+
(2, 'in_progress'),
|
|
260
|
+
(3, 'completed'),
|
|
261
|
+
(4, 'archived');
|
|
262
|
+
|
|
263
|
+
CREATE TABLE t_tasks (
|
|
264
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
265
|
+
title TEXT NOT NULL,
|
|
266
|
+
status_id INTEGER NOT NULL,
|
|
267
|
+
created_by_agent_id INTEGER NOT NULL,
|
|
268
|
+
created_ts INTEGER NOT NULL DEFAULT (strftime('%s', 'now')),
|
|
269
|
+
FOREIGN KEY (status_id) REFERENCES m_task_statuses(id),
|
|
270
|
+
FOREIGN KEY (created_by_agent_id) REFERENCES m_agents(id)
|
|
271
|
+
);
|
|
272
|
+
|
|
273
|
+
CREATE TABLE t_task_dependencies (
|
|
274
|
+
blocker_task_id INTEGER NOT NULL,
|
|
275
|
+
blocked_task_id INTEGER NOT NULL,
|
|
276
|
+
PRIMARY KEY (blocker_task_id, blocked_task_id),
|
|
277
|
+
FOREIGN KEY (blocker_task_id) REFERENCES t_tasks(id),
|
|
278
|
+
FOREIGN KEY (blocked_task_id) REFERENCES t_tasks(id)
|
|
279
|
+
);
|
|
280
|
+
`);
|
|
281
|
+
log(` ✓ Created v${version} schema (with task dependencies)`, GREEN);
|
|
282
|
+
}
|
|
283
|
+
else if (version === '3.2.2' || version.startsWith('3.2.') || version.startsWith('3.4.')) {
|
|
284
|
+
// v3.2.2+: Has decision context, no pruned files
|
|
285
|
+
db.exec(`
|
|
286
|
+
CREATE TABLE m_agents (
|
|
287
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
288
|
+
name TEXT NOT NULL UNIQUE,
|
|
289
|
+
created_ts INTEGER NOT NULL DEFAULT (strftime('%s', 'now'))
|
|
290
|
+
);
|
|
291
|
+
|
|
292
|
+
CREATE TABLE m_task_statuses (
|
|
293
|
+
id INTEGER PRIMARY KEY,
|
|
294
|
+
name TEXT NOT NULL UNIQUE
|
|
295
|
+
);
|
|
296
|
+
|
|
297
|
+
INSERT INTO m_task_statuses (id, name) VALUES
|
|
298
|
+
(1, 'pending'),
|
|
299
|
+
(2, 'in_progress'),
|
|
300
|
+
(3, 'completed'),
|
|
301
|
+
(4, 'archived');
|
|
302
|
+
|
|
303
|
+
CREATE TABLE t_tasks (
|
|
304
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
305
|
+
title TEXT NOT NULL,
|
|
306
|
+
status_id INTEGER NOT NULL,
|
|
307
|
+
created_by_agent_id INTEGER NOT NULL,
|
|
308
|
+
created_ts INTEGER NOT NULL DEFAULT (strftime('%s', 'now')),
|
|
309
|
+
FOREIGN KEY (status_id) REFERENCES m_task_statuses(id),
|
|
310
|
+
FOREIGN KEY (created_by_agent_id) REFERENCES m_agents(id)
|
|
311
|
+
);
|
|
312
|
+
|
|
313
|
+
CREATE TABLE t_task_dependencies (
|
|
314
|
+
blocker_task_id INTEGER NOT NULL,
|
|
315
|
+
blocked_task_id INTEGER NOT NULL,
|
|
316
|
+
PRIMARY KEY (blocker_task_id, blocked_task_id),
|
|
317
|
+
FOREIGN KEY (blocker_task_id) REFERENCES t_tasks(id),
|
|
318
|
+
FOREIGN KEY (blocked_task_id) REFERENCES t_tasks(id)
|
|
319
|
+
);
|
|
320
|
+
|
|
321
|
+
CREATE TABLE t_decision_context (
|
|
322
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
323
|
+
decision_id INTEGER NOT NULL,
|
|
324
|
+
rationale TEXT,
|
|
325
|
+
alternatives TEXT,
|
|
326
|
+
tradeoffs TEXT
|
|
327
|
+
);
|
|
328
|
+
`);
|
|
329
|
+
log(` ✓ Created v${version} schema (with decision context)`, GREEN);
|
|
330
|
+
}
|
|
331
|
+
else if (version.startsWith('3.5.')) {
|
|
332
|
+
// v3.5.x: Has pruned files, no help system
|
|
333
|
+
db.exec(`
|
|
334
|
+
CREATE TABLE m_agents (
|
|
335
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
336
|
+
name TEXT NOT NULL UNIQUE,
|
|
337
|
+
created_ts INTEGER NOT NULL DEFAULT (strftime('%s', 'now'))
|
|
338
|
+
);
|
|
339
|
+
|
|
340
|
+
CREATE TABLE m_task_statuses (
|
|
341
|
+
id INTEGER PRIMARY KEY,
|
|
342
|
+
name TEXT NOT NULL UNIQUE
|
|
343
|
+
);
|
|
344
|
+
|
|
345
|
+
INSERT INTO m_task_statuses (id, name) VALUES
|
|
346
|
+
(1, 'pending'),
|
|
347
|
+
(2, 'in_progress'),
|
|
348
|
+
(3, 'completed'),
|
|
349
|
+
(4, 'archived');
|
|
350
|
+
|
|
351
|
+
CREATE TABLE t_tasks (
|
|
352
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
353
|
+
title TEXT NOT NULL,
|
|
354
|
+
status_id INTEGER NOT NULL,
|
|
355
|
+
created_by_agent_id INTEGER NOT NULL,
|
|
356
|
+
created_ts INTEGER NOT NULL DEFAULT (strftime('%s', 'now')),
|
|
357
|
+
FOREIGN KEY (status_id) REFERENCES m_task_statuses(id),
|
|
358
|
+
FOREIGN KEY (created_by_agent_id) REFERENCES m_agents(id)
|
|
359
|
+
);
|
|
360
|
+
|
|
361
|
+
CREATE TABLE t_task_pruned_files (
|
|
362
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
363
|
+
task_id INTEGER NOT NULL,
|
|
364
|
+
file_path TEXT NOT NULL,
|
|
365
|
+
FOREIGN KEY (task_id) REFERENCES t_tasks(id)
|
|
366
|
+
);
|
|
367
|
+
`);
|
|
368
|
+
log(` ✓ Created v${version} schema (with pruned files)`, GREEN);
|
|
369
|
+
}
|
|
370
|
+
else if (version === '3.6.0') {
|
|
371
|
+
// v3.6.0: Has help system
|
|
372
|
+
db.exec(`
|
|
373
|
+
CREATE TABLE m_agents (
|
|
374
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
375
|
+
name TEXT NOT NULL UNIQUE,
|
|
376
|
+
created_ts INTEGER NOT NULL DEFAULT (strftime('%s', 'now'))
|
|
377
|
+
);
|
|
378
|
+
|
|
379
|
+
CREATE TABLE m_help_tools (
|
|
380
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
381
|
+
tool_name TEXT NOT NULL UNIQUE,
|
|
382
|
+
short_description TEXT
|
|
383
|
+
);
|
|
384
|
+
`);
|
|
385
|
+
log(` ✓ Created v${version} schema (with help system)`, GREEN);
|
|
386
|
+
}
|
|
387
|
+
return { db, dbPath };
|
|
388
|
+
}
|
|
389
|
+
catch (error) {
|
|
390
|
+
log(` ❌ Failed to create database for v${version}: ${error}`, RED);
|
|
391
|
+
db.close();
|
|
392
|
+
return null;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Test migration from a specific version to current
|
|
397
|
+
*/
|
|
398
|
+
async function testMigrationFromVersion(version) {
|
|
399
|
+
log(`\n${'='.repeat(70)}`, BLUE);
|
|
400
|
+
log(`Testing migration: v${version} → v${CURRENT_VERSION}`, BLUE);
|
|
401
|
+
log(`${'='.repeat(70)}`, BLUE);
|
|
402
|
+
const result = createDatabaseForVersion(version);
|
|
403
|
+
if (!result) {
|
|
404
|
+
return {
|
|
405
|
+
version,
|
|
406
|
+
success: false,
|
|
407
|
+
initialVersion: 'unknown',
|
|
408
|
+
finalVersion: 'unknown',
|
|
409
|
+
error: 'Failed to create database'
|
|
410
|
+
};
|
|
411
|
+
}
|
|
412
|
+
const { db, dbPath } = result;
|
|
413
|
+
try {
|
|
414
|
+
// Detect initial version by checking table structure
|
|
415
|
+
const initialVersion = detectInitialVersion(db);
|
|
416
|
+
log(`\n 📊 Detected version: ${initialVersion}`, CYAN);
|
|
417
|
+
// Run Knex migrations
|
|
418
|
+
log(`\n 🔄 Running Knex migrations...`, CYAN);
|
|
419
|
+
// Create Knex instance with the test database path
|
|
420
|
+
const knex = Knex({
|
|
421
|
+
...knexConfig.test,
|
|
422
|
+
connection: {
|
|
423
|
+
filename: dbPath
|
|
424
|
+
}
|
|
425
|
+
});
|
|
426
|
+
const [batch, migrations] = await knex.migrate.latest();
|
|
427
|
+
log(` ✓ Batch: ${batch}, Migrations run: ${migrations.length}`, GREEN);
|
|
428
|
+
// Detect final version
|
|
429
|
+
const finalVersion = CURRENT_VERSION;
|
|
430
|
+
log(`\n ✅ Final version: ${finalVersion}`, GREEN);
|
|
431
|
+
// Cleanup
|
|
432
|
+
await knex.destroy();
|
|
433
|
+
return {
|
|
434
|
+
version,
|
|
435
|
+
success: true,
|
|
436
|
+
initialVersion,
|
|
437
|
+
finalVersion,
|
|
438
|
+
migrationResults: migrations.map((m) => ({ name: m, success: true }))
|
|
439
|
+
};
|
|
440
|
+
}
|
|
441
|
+
catch (error) {
|
|
442
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
443
|
+
log(`\n ❌ Error: ${message}`, RED);
|
|
444
|
+
return {
|
|
445
|
+
version,
|
|
446
|
+
success: false,
|
|
447
|
+
initialVersion: 'error',
|
|
448
|
+
finalVersion: 'error',
|
|
449
|
+
error: message
|
|
450
|
+
};
|
|
451
|
+
}
|
|
452
|
+
finally {
|
|
453
|
+
db.close();
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* Run all migration tests
|
|
458
|
+
*/
|
|
459
|
+
async function runAllTests() {
|
|
460
|
+
log('\n' + '='.repeat(70), BLUE);
|
|
461
|
+
log('🧪 COMPREHENSIVE MIGRATION TEST SUITE', BLUE);
|
|
462
|
+
log(`Testing ${RELEASED_VERSIONS.length} versions → v${CURRENT_VERSION}`, BLUE);
|
|
463
|
+
log('='.repeat(70) + '\n', BLUE);
|
|
464
|
+
const results = [];
|
|
465
|
+
for (const version of RELEASED_VERSIONS) {
|
|
466
|
+
const result = await testMigrationFromVersion(version);
|
|
467
|
+
results.push(result);
|
|
468
|
+
// Brief pause between tests
|
|
469
|
+
await new Promise(resolve => setTimeout(resolve, 100));
|
|
470
|
+
}
|
|
471
|
+
// Generate report
|
|
472
|
+
log('\n\n' + '='.repeat(70), BLUE);
|
|
473
|
+
log('📊 TEST RESULTS SUMMARY', BLUE);
|
|
474
|
+
log('='.repeat(70) + '\n', BLUE);
|
|
475
|
+
const successful = results.filter(r => r.success);
|
|
476
|
+
const failed = results.filter(r => !r.success);
|
|
477
|
+
log(`Total tests: ${results.length}`, CYAN);
|
|
478
|
+
log(`✅ Successful: ${successful.length}`, GREEN);
|
|
479
|
+
log(`❌ Failed: ${failed.length}`, failed.length > 0 ? RED : GREEN);
|
|
480
|
+
if (failed.length > 0) {
|
|
481
|
+
log('\n❌ Failed migrations:', RED);
|
|
482
|
+
failed.forEach(r => {
|
|
483
|
+
log(` - v${r.version}: ${r.error}`, RED);
|
|
484
|
+
});
|
|
485
|
+
}
|
|
486
|
+
log('\n✅ Successful migrations:', GREEN);
|
|
487
|
+
successful.forEach(r => {
|
|
488
|
+
log(` - v${r.version}: ${r.initialVersion} → ${r.finalVersion}`, GREEN);
|
|
489
|
+
});
|
|
490
|
+
// Save detailed results to file
|
|
491
|
+
const reportPath = join(process.cwd(), '.sqlew', 'tmp', 'migration-test-report.json');
|
|
492
|
+
try {
|
|
493
|
+
const reportDir = join(process.cwd(), '.sqlew', 'tmp');
|
|
494
|
+
if (!existsSync(reportDir)) {
|
|
495
|
+
mkdirSync(reportDir, { recursive: true });
|
|
496
|
+
}
|
|
497
|
+
writeFileSync(reportPath, JSON.stringify(results, null, 2));
|
|
498
|
+
log(`\n📄 Detailed report saved to: ${reportPath}`, CYAN);
|
|
499
|
+
}
|
|
500
|
+
catch (error) {
|
|
501
|
+
log(`\n⚠️ Could not save report: ${error}`, YELLOW);
|
|
502
|
+
}
|
|
503
|
+
log('\n' + '='.repeat(70) + '\n', BLUE);
|
|
504
|
+
return failed.length === 0;
|
|
505
|
+
}
|
|
506
|
+
// Run tests
|
|
507
|
+
runAllTests().then(success => {
|
|
508
|
+
if (success) {
|
|
509
|
+
log('🎉 ALL MIGRATION TESTS PASSED!', GREEN);
|
|
510
|
+
process.exit(0);
|
|
511
|
+
}
|
|
512
|
+
else {
|
|
513
|
+
log('❌ SOME MIGRATION TESTS FAILED!', RED);
|
|
514
|
+
process.exit(1);
|
|
515
|
+
}
|
|
516
|
+
}).catch(error => {
|
|
517
|
+
log(`\n❌ Fatal error: ${error}`, RED);
|
|
518
|
+
console.error(error);
|
|
519
|
+
process.exit(1);
|
|
520
|
+
});
|
|
521
|
+
//# sourceMappingURL=test-all-versions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-all-versions.js","sourceRoot":"","sources":["../../../src/tests/migrations/test-all-versions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraints.d.ts","sourceRoot":"","sources":["../../src/tools/constraints.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"constraints.d.ts","sourceRoot":"","sources":["../../src/tools/constraints.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAmBvD,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,4BAA4B,EAG7B,MAAM,aAAa,CAAC;AAErB;;;GAGG;AAEH;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,mBAAmB,EAC3B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,qBAAqB,CAAC,CAwFhC;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,oBAAoB,EAC5B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,sBAAsB,CAAC,CAyDjC;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,0BAA0B,EAClC,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,4BAA4B,CAAC,CAgCvC;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,GAAG,CAsBpC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,GAAG,CAuIvC"}
|
|
@@ -8,6 +8,7 @@ import { getAdapter, getOrCreateAgent, getLayerId, getOrCreateTag, getOrCreateCa
|
|
|
8
8
|
import { STRING_TO_PRIORITY, DEFAULT_PRIORITY, SQLITE_TRUE, SQLITE_FALSE } from '../constants.js';
|
|
9
9
|
import { validateCategory, validatePriority } from '../utils/validators.js';
|
|
10
10
|
import { logConstraintAdd } from '../utils/activity-logging.js';
|
|
11
|
+
import { parseStringArray } from '../utils/param-parser.js';
|
|
11
12
|
/**
|
|
12
13
|
* Get or create constraint category ID
|
|
13
14
|
* Uses INSERT OR IGNORE for idempotent operation
|
|
@@ -46,11 +47,10 @@ export async function addConstraint(params, adapter) {
|
|
|
46
47
|
}
|
|
47
48
|
// Use transaction for multi-table insert
|
|
48
49
|
const result = await actualAdapter.transaction(async (trx) => {
|
|
49
|
-
const knex = actualAdapter.getKnex();
|
|
50
50
|
// Get or create category
|
|
51
51
|
const categoryId = await getOrCreateCategoryId(actualAdapter, params.category, trx);
|
|
52
|
-
// Get or create created_by agent
|
|
53
|
-
const createdBy = params.created_by || '
|
|
52
|
+
// Get or create created_by agent (default to generic pool)
|
|
53
|
+
const createdBy = params.created_by || '';
|
|
54
54
|
const agentId = await getOrCreateAgent(actualAdapter, createdBy, trx);
|
|
55
55
|
// Calculate timestamp
|
|
56
56
|
const ts = Math.floor(Date.now() / 1000);
|
|
@@ -61,12 +61,14 @@ export async function addConstraint(params, adapter) {
|
|
|
61
61
|
constraint_text: params.constraint_text,
|
|
62
62
|
priority: priority,
|
|
63
63
|
active: SQLITE_TRUE,
|
|
64
|
-
|
|
64
|
+
agent_id: agentId,
|
|
65
65
|
ts: ts
|
|
66
66
|
});
|
|
67
67
|
// Insert m_tags if provided
|
|
68
68
|
if (params.tags && params.tags.length > 0) {
|
|
69
|
-
|
|
69
|
+
// Parse tags (handles both arrays and JSON strings from MCP)
|
|
70
|
+
const tags = parseStringArray(params.tags);
|
|
71
|
+
for (const tagName of tags) {
|
|
70
72
|
const tagId = await getOrCreateTag(actualAdapter, tagName, trx);
|
|
71
73
|
await trx('t_constraint_tags').insert({
|
|
72
74
|
constraint_id: Number(constraintId),
|
|
@@ -75,7 +77,7 @@ export async function addConstraint(params, adapter) {
|
|
|
75
77
|
}
|
|
76
78
|
}
|
|
77
79
|
// Activity logging (replaces trigger)
|
|
78
|
-
await logConstraintAdd(
|
|
80
|
+
await logConstraintAdd(trx, {
|
|
79
81
|
constraint_id: Number(constraintId),
|
|
80
82
|
category: params.category,
|
|
81
83
|
constraint_text: params.constraint_text,
|
|
@@ -125,8 +127,10 @@ export async function getConstraints(params, adapter) {
|
|
|
125
127
|
}
|
|
126
128
|
// Filter by m_tags (OR logic - match ANY tag)
|
|
127
129
|
if (params.tags && params.tags.length > 0) {
|
|
130
|
+
// Parse tags (handles both arrays and JSON strings from MCP)
|
|
131
|
+
const tags = parseStringArray(params.tags);
|
|
128
132
|
query = query.where((builder) => {
|
|
129
|
-
for (const tag of
|
|
133
|
+
for (const tag of tags) {
|
|
130
134
|
builder.orWhere('tags', 'like', `%${tag}%`);
|
|
131
135
|
}
|
|
132
136
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraints.js","sourceRoot":"","sources":["../../src/tools/constraints.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,kBAAkB,EAElB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"constraints.js","sourceRoot":"","sources":["../../src/tools/constraints.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/tools/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/tools/context.ts"],"names":[],"mappings":"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"}
|