sqlew 3.6.1 → 3.6.3
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 +65 -0
- package/assets/config.example.toml +28 -0
- 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.map +1 -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.map +1 -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.map +1 -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/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/tasks.js +2 -2
- package/dist/tools/tasks.js.map +1 -1
- package/dist/utils/task-stale-detection.d.ts.map +1 -1
- package/dist/utils/task-stale-detection.js +79 -4
- package/dist/utils/task-stale-detection.js.map +1 -1
- package/docs/MIGRATION_CHAIN.md +13 -0
- package/package.json +4 -1
- 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/knex/20251027000000_add_agent_reuse_system.d.ts.map +0 -1
- package/dist/migrations/knex/20251027000000_add_agent_reuse_system.js.map +0 -1
- package/dist/migrations/knex/20251027010000_add_task_constraint_to_decision_context.d.ts.map +0 -1
- package/dist/migrations/knex/20251027010000_add_task_constraint_to_decision_context.js.map +0 -1
- package/dist/migrations/knex/20251027020000_update_agent_reusability.d.ts.map +0 -1
- package/dist/migrations/knex/20251027020000_update_agent_reusability.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
- /package/dist/migrations/knex/{20251027000000_add_agent_reuse_system.d.ts → enhancements/20251027000000_add_agent_reuse_system.d.ts} +0 -0
- /package/dist/migrations/knex/{20251027000000_add_agent_reuse_system.js → enhancements/20251027000000_add_agent_reuse_system.js} +0 -0
- /package/dist/migrations/knex/{20251027010000_add_task_constraint_to_decision_context.d.ts → enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts} +0 -0
- /package/dist/migrations/knex/{20251027010000_add_task_constraint_to_decision_context.js → enhancements/20251027010000_add_task_constraint_to_decision_context.js} +0 -0
- /package/dist/migrations/knex/{20251027020000_update_agent_reusability.d.ts → enhancements/20251027020000_update_agent_reusability.d.ts} +0 -0
- /package/dist/migrations/knex/{20251027020000_update_agent_reusability.js → enhancements/20251027020000_update_agent_reusability.js} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,71 @@ All notable changes to sqlew will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [3.6.3] - 2025-10-27
|
|
9
|
+
|
|
10
|
+
### Fixed - Critical Bug Fixes & Git Add Detection
|
|
11
|
+
|
|
12
|
+
**Transaction pool exhaustion and VCS-aware auto-complete implementation**
|
|
13
|
+
|
|
14
|
+
#### Bug Fixes
|
|
15
|
+
- **Task Move Transaction Bug** - Fixed `moveTask` using base `knex` instead of transaction `trx` (line 880)
|
|
16
|
+
- Caused "Knex: Timeout acquiring a connection" errors
|
|
17
|
+
- Now properly uses transaction object for `logTaskStatusChange`
|
|
18
|
+
- **Task Link Transaction Bug** - Fixed `linkTask` using base `knex` instead of transaction `trx` (line 948)
|
|
19
|
+
- Same connection pool exhaustion issue
|
|
20
|
+
- Now properly uses transaction object for decision link insertion
|
|
21
|
+
|
|
22
|
+
#### Features
|
|
23
|
+
- **Git Add Detection** - Implemented `detectAndCompleteOnStaging()` for VCS-aware workflow
|
|
24
|
+
- Detects `git add` operations and auto-completes tasks (`waiting_review` → `done`)
|
|
25
|
+
- Supports Git, Mercurial, and SVN
|
|
26
|
+
- Configurable via `git_auto_complete_on_stage` and `require_all_files_staged`
|
|
27
|
+
- **VCS Configuration** - Added comprehensive settings documentation to `config.example.toml`
|
|
28
|
+
- `git_auto_complete_on_stage` (default: true)
|
|
29
|
+
- `git_auto_archive_on_commit` (default: true)
|
|
30
|
+
- `require_all_files_staged` (default: true)
|
|
31
|
+
- `require_all_files_committed_for_archive` (default: true)
|
|
32
|
+
|
|
33
|
+
#### Infrastructure
|
|
34
|
+
- **Line Ending Fix** - Added `.gitattributes` to enforce LF endings for shell scripts
|
|
35
|
+
- Prevents CRLF issues in Husky hooks on Windows/WSL
|
|
36
|
+
- Applies to `*.sh` and `.husky/*` files
|
|
37
|
+
- **Husky Hooks** - Fixed pre-commit/pre-push hooks (added shebang, normalized line endings)
|
|
38
|
+
|
|
39
|
+
#### Impact
|
|
40
|
+
- ✅ Task operations no longer fail with connection pool timeouts
|
|
41
|
+
- ✅ Git add detection now functional (was stubbed in v3.5.2)
|
|
42
|
+
- ✅ Cross-platform compatibility for git hooks (Windows/WSL/Linux/macOS)
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## [3.6.2] - 2025-10-27
|
|
47
|
+
|
|
48
|
+
### Changed - Migration System Modernization
|
|
49
|
+
|
|
50
|
+
**Simplified to Knex-only migrations with organized directory structure**
|
|
51
|
+
|
|
52
|
+
#### Migration System Cleanup
|
|
53
|
+
- **Removed custom migration system** (14 obsolete files from `src/migrations/`)
|
|
54
|
+
- **Pure Knex migrations** - Standardized on Knex.js migration framework
|
|
55
|
+
- **Organized structure** - 22 migrations grouped into 3 logical subdirectories:
|
|
56
|
+
- `upgrades/` (7 files) - Version upgrade paths (v1.0 → v3.6)
|
|
57
|
+
- `bootstrap/` (5 files) - Fresh install foundation
|
|
58
|
+
- `enhancements/` (10 files) - v3.6.0+ feature additions
|
|
59
|
+
|
|
60
|
+
#### Testing & CI/CD
|
|
61
|
+
- **Migration tests updated** - Converted to use Knex migrations exclusively
|
|
62
|
+
- **Comprehensive test coverage** - 8/9 versions migrate successfully (89% backward compatibility)
|
|
63
|
+
- **Husky git hooks** - Pre-commit (build + tests), pre-push (migration tests)
|
|
64
|
+
- **GitHub Actions workflow** - CI/CD pipeline for Node 18.x/20.x
|
|
65
|
+
|
|
66
|
+
#### Benefits
|
|
67
|
+
- **Better maintainability** - Clear organization, standard tooling
|
|
68
|
+
- **Easier onboarding** - Knex is industry-standard
|
|
69
|
+
- **Faster development** - 56% time efficiency via parallel execution
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
8
73
|
## [3.6.0] - 2025-10-25
|
|
9
74
|
|
|
10
75
|
### Added - Help System Optimization
|
|
@@ -81,6 +81,34 @@ stale_hours_waiting_review = 24
|
|
|
81
81
|
# Default: true
|
|
82
82
|
auto_stale_enabled = true
|
|
83
83
|
|
|
84
|
+
# ============================================================================
|
|
85
|
+
# VCS-Aware Auto-Complete Settings (v3.5.2)
|
|
86
|
+
# ============================================================================
|
|
87
|
+
[vcs]
|
|
88
|
+
# Auto-complete tasks when files are staged (git add)
|
|
89
|
+
# When true: waiting_review → done when files are staged
|
|
90
|
+
# When false: Manual task completion required
|
|
91
|
+
# Default: true
|
|
92
|
+
git_auto_complete_on_stage = true
|
|
93
|
+
|
|
94
|
+
# Auto-archive tasks when files are committed (git commit)
|
|
95
|
+
# When true: done → archived when files are committed
|
|
96
|
+
# When false: Manual task archiving required
|
|
97
|
+
# Default: true
|
|
98
|
+
git_auto_archive_on_commit = true
|
|
99
|
+
|
|
100
|
+
# Require ALL watched files to be staged for auto-completion
|
|
101
|
+
# When true: All files must be staged to trigger waiting_review → done
|
|
102
|
+
# When false: At least one file staged is sufficient
|
|
103
|
+
# Default: true
|
|
104
|
+
require_all_files_staged = true
|
|
105
|
+
|
|
106
|
+
# Require ALL watched files to be committed for auto-archiving
|
|
107
|
+
# When true: All files must be committed to trigger done → archived
|
|
108
|
+
# When false: At least one file committed is sufficient
|
|
109
|
+
# Default: true
|
|
110
|
+
require_all_files_committed_for_archive = true
|
|
111
|
+
|
|
84
112
|
# ============================================================================
|
|
85
113
|
# Example Configurations
|
|
86
114
|
# ============================================================================
|
package/dist/knexfile.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knexfile.d.ts","sourceRoot":"","sources":["../src/knexfile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAYjC,QAAA,MAAM,MAAM,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"knexfile.d.ts","sourceRoot":"","sources":["../src/knexfile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAYjC,QAAA,MAAM,MAAM,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;CAwFzC,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/dist/knexfile.js
CHANGED
|
@@ -15,7 +15,11 @@ const config = {
|
|
|
15
15
|
},
|
|
16
16
|
useNullAsDefault: true,
|
|
17
17
|
migrations: {
|
|
18
|
-
directory:
|
|
18
|
+
directory: [
|
|
19
|
+
path.join(__dirname, 'migrations/knex/bootstrap'),
|
|
20
|
+
path.join(__dirname, 'migrations/knex/upgrades'),
|
|
21
|
+
path.join(__dirname, 'migrations/knex/enhancements'),
|
|
22
|
+
],
|
|
19
23
|
extension: 'ts',
|
|
20
24
|
tableName: 'knex_migrations',
|
|
21
25
|
loadExtensions: ['.ts'],
|
|
@@ -43,7 +47,11 @@ const config = {
|
|
|
43
47
|
},
|
|
44
48
|
useNullAsDefault: true,
|
|
45
49
|
migrations: {
|
|
46
|
-
directory:
|
|
50
|
+
directory: [
|
|
51
|
+
path.join(__dirname, 'migrations/knex/bootstrap'),
|
|
52
|
+
path.join(__dirname, 'migrations/knex/upgrades'),
|
|
53
|
+
path.join(__dirname, 'migrations/knex/enhancements'),
|
|
54
|
+
],
|
|
47
55
|
extension: 'ts',
|
|
48
56
|
loadExtensions: ['.ts'],
|
|
49
57
|
},
|
|
@@ -61,7 +69,11 @@ const config = {
|
|
|
61
69
|
},
|
|
62
70
|
useNullAsDefault: true,
|
|
63
71
|
migrations: {
|
|
64
|
-
directory:
|
|
72
|
+
directory: [
|
|
73
|
+
path.join(__dirname, 'migrations/knex/bootstrap'),
|
|
74
|
+
path.join(__dirname, 'migrations/knex/upgrades'),
|
|
75
|
+
path.join(__dirname, 'migrations/knex/enhancements'),
|
|
76
|
+
],
|
|
65
77
|
extension: 'js',
|
|
66
78
|
loadExtensions: ['.js'],
|
|
67
79
|
},
|
package/dist/knexfile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knexfile.js","sourceRoot":"","sources":["../src/knexfile.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,yDAAyD;AACzD,qEAAqE;AACrE,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,iBAAiB,CAAC;AAEvE,MAAM,MAAM,GAAmC;IAC7C,WAAW,EAAE;QACX,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE;YACV,8CAA8C;YAC9C,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC;SACvD;QACD,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE;YACV,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"knexfile.js","sourceRoot":"","sources":["../src/knexfile.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/bootstrap/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,CA+DlD;AAGD,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAapD"}
|
|
@@ -3,50 +3,53 @@ export async function up(knex) {
|
|
|
3
3
|
// Master Tables (m_ prefix) - Normalization Layer
|
|
4
4
|
// ============================================================================
|
|
5
5
|
// Agent Management
|
|
6
|
-
await knex.schema.
|
|
6
|
+
await knex.schema.createTableIfNotExists('m_agents', (table) => {
|
|
7
7
|
table.increments('id').primary();
|
|
8
8
|
table.string('name', 100).unique().notNullable();
|
|
9
9
|
});
|
|
10
10
|
// File Path Management
|
|
11
|
-
await knex.schema.
|
|
11
|
+
await knex.schema.createTableIfNotExists('m_files', (table) => {
|
|
12
12
|
table.increments('id').primary();
|
|
13
13
|
table.string('path', 1000).unique().notNullable();
|
|
14
14
|
});
|
|
15
15
|
// Context Key Management
|
|
16
|
-
await knex.schema.
|
|
16
|
+
await knex.schema.createTableIfNotExists('m_context_keys', (table) => {
|
|
17
17
|
table.increments('id').primary();
|
|
18
18
|
table.string('key', 200).unique().notNullable();
|
|
19
19
|
});
|
|
20
20
|
// Constraint Category Management
|
|
21
|
-
await knex.schema.
|
|
21
|
+
await knex.schema.createTableIfNotExists('m_constraint_categories', (table) => {
|
|
22
22
|
table.increments('id').primary();
|
|
23
23
|
table.string('name', 100).unique().notNullable();
|
|
24
24
|
});
|
|
25
25
|
// Layer Management (5 predefined layers)
|
|
26
|
-
await knex.schema.
|
|
26
|
+
await knex.schema.createTableIfNotExists('m_layers', (table) => {
|
|
27
27
|
table.increments('id').primary();
|
|
28
28
|
table.string('name', 50).unique().notNullable();
|
|
29
29
|
});
|
|
30
30
|
// Tag Management
|
|
31
|
-
await knex.schema.
|
|
31
|
+
await knex.schema.createTableIfNotExists('m_tags', (table) => {
|
|
32
32
|
table.increments('id').primary();
|
|
33
33
|
table.string('name', 100).unique().notNullable();
|
|
34
34
|
});
|
|
35
35
|
// Scope Management
|
|
36
|
-
await knex.schema.
|
|
36
|
+
await knex.schema.createTableIfNotExists('m_scopes', (table) => {
|
|
37
37
|
table.increments('id').primary();
|
|
38
38
|
table.string('name', 200).unique().notNullable();
|
|
39
39
|
});
|
|
40
40
|
// Configuration Management (key-value store)
|
|
41
|
-
await knex.schema.
|
|
41
|
+
await knex.schema.createTableIfNotExists('m_config', (table) => {
|
|
42
42
|
table.string('key').primary();
|
|
43
43
|
table.text('value').notNullable();
|
|
44
44
|
});
|
|
45
45
|
// Task Statuses (enum-like table)
|
|
46
|
-
await knex.schema.
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
const hasTaskStatuses = await knex.schema.hasTable('m_task_statuses');
|
|
47
|
+
if (!hasTaskStatuses) {
|
|
48
|
+
await knex.schema.createTable('m_task_statuses', (table) => {
|
|
49
|
+
table.integer('id').primary();
|
|
50
|
+
table.string('name', 50).unique().notNullable();
|
|
51
|
+
});
|
|
52
|
+
}
|
|
50
53
|
console.log('✅ Master tables created successfully');
|
|
51
54
|
}
|
|
52
55
|
export async function down(knex) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251025020452_create_master_tables.js","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/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/bootstrap/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"}
|
|
@@ -3,7 +3,7 @@ export async function up(knex) {
|
|
|
3
3
|
// Transaction Tables (t_ prefix) - Core Data
|
|
4
4
|
// ============================================================================
|
|
5
5
|
// Decisions (String Values)
|
|
6
|
-
await knex.schema.
|
|
6
|
+
await knex.schema.createTableIfNotExists('t_decisions', (table) => {
|
|
7
7
|
table.integer('key_id').primary();
|
|
8
8
|
table.foreign('key_id').references('m_context_keys.id');
|
|
9
9
|
table.text('value').notNullable();
|
|
@@ -16,7 +16,7 @@ export async function up(knex) {
|
|
|
16
16
|
table.integer('ts').notNullable();
|
|
17
17
|
});
|
|
18
18
|
// Decisions (Numeric Values)
|
|
19
|
-
await knex.schema.
|
|
19
|
+
await knex.schema.createTableIfNotExists('t_decisions_numeric', (table) => {
|
|
20
20
|
table.integer('key_id').primary();
|
|
21
21
|
table.foreign('key_id').references('m_context_keys.id');
|
|
22
22
|
table.double('value').notNullable();
|
|
@@ -29,7 +29,7 @@ export async function up(knex) {
|
|
|
29
29
|
table.integer('ts').notNullable();
|
|
30
30
|
});
|
|
31
31
|
// Decision Version History
|
|
32
|
-
await knex.schema.
|
|
32
|
+
await knex.schema.createTableIfNotExists('t_decision_history', (table) => {
|
|
33
33
|
table.increments('id').primary();
|
|
34
34
|
table.integer('key_id');
|
|
35
35
|
table.foreign('key_id').references('m_context_keys.id');
|
|
@@ -40,7 +40,7 @@ export async function up(knex) {
|
|
|
40
40
|
table.integer('ts').notNullable();
|
|
41
41
|
});
|
|
42
42
|
// Decision Tagging (Many-to-Many)
|
|
43
|
-
await knex.schema.
|
|
43
|
+
await knex.schema.createTableIfNotExists('t_decision_tags', (table) => {
|
|
44
44
|
table.integer('decision_key_id');
|
|
45
45
|
table.foreign('decision_key_id').references('m_context_keys.id');
|
|
46
46
|
table.integer('tag_id');
|
|
@@ -48,7 +48,7 @@ export async function up(knex) {
|
|
|
48
48
|
table.primary(['decision_key_id', 'tag_id']);
|
|
49
49
|
});
|
|
50
50
|
// Decision Scopes (Many-to-Many)
|
|
51
|
-
await knex.schema.
|
|
51
|
+
await knex.schema.createTableIfNotExists('t_decision_scopes', (table) => {
|
|
52
52
|
table.integer('decision_key_id');
|
|
53
53
|
table.foreign('decision_key_id').references('m_context_keys.id');
|
|
54
54
|
table.integer('scope_id');
|
|
@@ -56,7 +56,7 @@ export async function up(knex) {
|
|
|
56
56
|
table.primary(['decision_key_id', 'scope_id']);
|
|
57
57
|
});
|
|
58
58
|
// Agent Messages
|
|
59
|
-
await knex.schema.
|
|
59
|
+
await knex.schema.createTableIfNotExists('t_agent_messages', (table) => {
|
|
60
60
|
table.increments('id').primary();
|
|
61
61
|
table.integer('from_agent_id');
|
|
62
62
|
table.foreign('from_agent_id').references('m_agents.id');
|
|
@@ -70,7 +70,7 @@ export async function up(knex) {
|
|
|
70
70
|
table.integer('ts').notNullable();
|
|
71
71
|
});
|
|
72
72
|
// File Change Tracking
|
|
73
|
-
await knex.schema.
|
|
73
|
+
await knex.schema.createTableIfNotExists('t_file_changes', (table) => {
|
|
74
74
|
table.increments('id').primary();
|
|
75
75
|
table.integer('file_id');
|
|
76
76
|
table.foreign('file_id').references('m_files.id');
|
|
@@ -83,7 +83,7 @@ export async function up(knex) {
|
|
|
83
83
|
table.integer('ts').notNullable();
|
|
84
84
|
});
|
|
85
85
|
// Constraints
|
|
86
|
-
await knex.schema.
|
|
86
|
+
await knex.schema.createTableIfNotExists('t_constraints', (table) => {
|
|
87
87
|
table.increments('id').primary();
|
|
88
88
|
table.integer('category_id');
|
|
89
89
|
table.foreign('category_id').references('m_constraint_categories.id');
|
|
@@ -97,7 +97,7 @@ export async function up(knex) {
|
|
|
97
97
|
table.integer('ts').notNullable();
|
|
98
98
|
});
|
|
99
99
|
// Constraint Tagging (Many-to-Many)
|
|
100
|
-
await knex.schema.
|
|
100
|
+
await knex.schema.createTableIfNotExists('t_constraint_tags', (table) => {
|
|
101
101
|
table.integer('constraint_id');
|
|
102
102
|
table.foreign('constraint_id').references('t_constraints.id');
|
|
103
103
|
table.integer('tag_id');
|
|
@@ -105,7 +105,7 @@ export async function up(knex) {
|
|
|
105
105
|
table.primary(['constraint_id', 'tag_id']);
|
|
106
106
|
});
|
|
107
107
|
// Activity Log
|
|
108
|
-
await knex.schema.
|
|
108
|
+
await knex.schema.createTableIfNotExists('t_activity_log', (table) => {
|
|
109
109
|
table.increments('id').primary();
|
|
110
110
|
table.integer('agent_id');
|
|
111
111
|
table.foreign('agent_id').references('m_agents.id');
|
|
@@ -117,7 +117,7 @@ export async function up(knex) {
|
|
|
117
117
|
table.integer('ts').notNullable();
|
|
118
118
|
});
|
|
119
119
|
// Decision Templates
|
|
120
|
-
await knex.schema.
|
|
120
|
+
await knex.schema.createTableIfNotExists('t_decision_templates', (table) => {
|
|
121
121
|
table.increments('id').primary();
|
|
122
122
|
table.string('name', 200).unique().notNullable();
|
|
123
123
|
table.text('description');
|
|
@@ -125,7 +125,7 @@ export async function up(knex) {
|
|
|
125
125
|
table.text('required_fields'); // JSON
|
|
126
126
|
});
|
|
127
127
|
// Decision Context (v3.2.2)
|
|
128
|
-
await knex.schema.
|
|
128
|
+
await knex.schema.createTableIfNotExists('t_decision_context', (table) => {
|
|
129
129
|
table.increments('id').primary();
|
|
130
130
|
table.integer('decision_key_id');
|
|
131
131
|
table.foreign('decision_key_id').references('m_context_keys.id');
|
|
@@ -138,7 +138,7 @@ export async function up(knex) {
|
|
|
138
138
|
table.integer('ts').notNullable();
|
|
139
139
|
});
|
|
140
140
|
// Tasks (v3.0.0 Kanban system)
|
|
141
|
-
await knex.schema.
|
|
141
|
+
await knex.schema.createTableIfNotExists('t_tasks', (table) => {
|
|
142
142
|
table.increments('id').primary();
|
|
143
143
|
table.string('title', 500).notNullable();
|
|
144
144
|
table.integer('status_id').defaultTo(1); // 1=todo
|
|
@@ -155,7 +155,7 @@ export async function up(knex) {
|
|
|
155
155
|
table.integer('completed_ts');
|
|
156
156
|
});
|
|
157
157
|
// Task Details
|
|
158
|
-
await knex.schema.
|
|
158
|
+
await knex.schema.createTableIfNotExists('t_task_details', (table) => {
|
|
159
159
|
table.integer('task_id').primary();
|
|
160
160
|
table.foreign('task_id').references('t_tasks.id');
|
|
161
161
|
table.text('description');
|
|
@@ -164,7 +164,7 @@ export async function up(knex) {
|
|
|
164
164
|
table.text('notes');
|
|
165
165
|
});
|
|
166
166
|
// Task Tagging (Many-to-Many)
|
|
167
|
-
await knex.schema.
|
|
167
|
+
await knex.schema.createTableIfNotExists('t_task_tags', (table) => {
|
|
168
168
|
table.integer('task_id');
|
|
169
169
|
table.foreign('task_id').references('t_tasks.id');
|
|
170
170
|
table.integer('tag_id');
|
|
@@ -172,7 +172,7 @@ export async function up(knex) {
|
|
|
172
172
|
table.primary(['task_id', 'tag_id']);
|
|
173
173
|
});
|
|
174
174
|
// Task-Decision Links
|
|
175
|
-
await knex.schema.
|
|
175
|
+
await knex.schema.createTableIfNotExists('t_task_decision_links', (table) => {
|
|
176
176
|
table.integer('task_id');
|
|
177
177
|
table.foreign('task_id').references('t_tasks.id');
|
|
178
178
|
table.integer('decision_key_id');
|
|
@@ -180,7 +180,7 @@ export async function up(knex) {
|
|
|
180
180
|
table.primary(['task_id', 'decision_key_id']);
|
|
181
181
|
});
|
|
182
182
|
// Task-Constraint Links
|
|
183
|
-
await knex.schema.
|
|
183
|
+
await knex.schema.createTableIfNotExists('t_task_constraint_links', (table) => {
|
|
184
184
|
table.integer('task_id');
|
|
185
185
|
table.foreign('task_id').references('t_tasks.id');
|
|
186
186
|
table.integer('constraint_id');
|
|
@@ -188,7 +188,7 @@ export async function up(knex) {
|
|
|
188
188
|
table.primary(['task_id', 'constraint_id']);
|
|
189
189
|
});
|
|
190
190
|
// Task-File Links
|
|
191
|
-
await knex.schema.
|
|
191
|
+
await knex.schema.createTableIfNotExists('t_task_file_links', (table) => {
|
|
192
192
|
table.integer('task_id');
|
|
193
193
|
table.foreign('task_id').references('t_tasks.id');
|
|
194
194
|
table.integer('file_id');
|
|
@@ -198,7 +198,7 @@ export async function up(knex) {
|
|
|
198
198
|
// Task Dependencies (v3.2.0) - with CASCADE delete
|
|
199
199
|
// Note: Using raw SQL because Knex doesn't properly generate ON DELETE CASCADE for SQLite
|
|
200
200
|
await knex.raw(`
|
|
201
|
-
CREATE TABLE t_task_dependencies (
|
|
201
|
+
CREATE TABLE IF NOT EXISTS t_task_dependencies (
|
|
202
202
|
task_id INTEGER,
|
|
203
203
|
depends_on_task_id INTEGER,
|
|
204
204
|
created_ts INTEGER NOT NULL,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251025021152_create_transaction_tables.js","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025021152_create_transaction_tables.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251025021351_create_indexes.d.ts","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025021351_create_indexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AA4CjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA0ClD;AAGD,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BpD"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper function to safely create index only if column exists
|
|
3
|
+
* Prevents errors when running on old schemas that don't have certain columns
|
|
4
|
+
*/
|
|
5
|
+
async function createIndexIfColumnExists(knex, tableName, columns, indexName, desc = false) {
|
|
6
|
+
try {
|
|
7
|
+
// Check if table exists first
|
|
8
|
+
const tableExists = await knex.schema.hasTable(tableName);
|
|
9
|
+
if (!tableExists) {
|
|
10
|
+
console.log(`⏭️ Skipping ${indexName}: table ${tableName} doesn't exist`);
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
// Get column info for the table
|
|
14
|
+
const columnInfo = await knex(tableName).columnInfo();
|
|
15
|
+
// Check if all required columns exist
|
|
16
|
+
const columnArray = Array.isArray(columns) ? columns : [columns];
|
|
17
|
+
const missingColumns = columnArray.filter(col => !columnInfo[col]);
|
|
18
|
+
if (missingColumns.length > 0) {
|
|
19
|
+
console.log(`⏭️ Skipping ${indexName}: column(s) ${missingColumns.join(', ')} don't exist yet`);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
// Build index creation SQL
|
|
23
|
+
const columnList = columnArray.join(', ');
|
|
24
|
+
const order = desc ? 'DESC' : '';
|
|
25
|
+
await knex.raw(`CREATE INDEX IF NOT EXISTS ${indexName} ON ${tableName}(${columnList} ${order})`.trim());
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
console.log(`⚠️ Error creating index ${indexName}: ${error}`);
|
|
29
|
+
// Don't throw - indexes are performance optimizations, not critical
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export async function up(knex) {
|
|
33
|
+
// ============================================================================
|
|
34
|
+
// Indexes for Performance Optimization
|
|
35
|
+
// ============================================================================
|
|
36
|
+
// Decisions indexes
|
|
37
|
+
await createIndexIfColumnExists(knex, 't_decisions', 'ts', 'idx_decisions_ts', true);
|
|
38
|
+
await createIndexIfColumnExists(knex, 't_decisions', 'layer_id', 'idx_decisions_layer');
|
|
39
|
+
await createIndexIfColumnExists(knex, 't_decisions', 'agent_id', 'idx_decisions_agent');
|
|
40
|
+
await createIndexIfColumnExists(knex, 't_decisions', 'status', 'idx_decisions_status');
|
|
41
|
+
// Decisions numeric indexes
|
|
42
|
+
await createIndexIfColumnExists(knex, 't_decisions_numeric', 'ts', 'idx_decisions_numeric_ts', true);
|
|
43
|
+
await createIndexIfColumnExists(knex, 't_decisions_numeric', 'layer_id', 'idx_decisions_numeric_layer');
|
|
44
|
+
// Messages indexes
|
|
45
|
+
await createIndexIfColumnExists(knex, 't_agent_messages', 'ts', 'idx_messages_ts', true);
|
|
46
|
+
await createIndexIfColumnExists(knex, 't_agent_messages', ['to_agent_id', 'read'], 'idx_messages_to_agent');
|
|
47
|
+
await createIndexIfColumnExists(knex, 't_agent_messages', 'priority', 'idx_messages_priority', true);
|
|
48
|
+
// File changes indexes
|
|
49
|
+
await createIndexIfColumnExists(knex, 't_file_changes', 'ts', 'idx_file_changes_ts', true);
|
|
50
|
+
await createIndexIfColumnExists(knex, 't_file_changes', 'file_id', 'idx_file_changes_file');
|
|
51
|
+
await createIndexIfColumnExists(knex, 't_file_changes', 'layer_id', 'idx_file_changes_layer');
|
|
52
|
+
// Constraints indexes
|
|
53
|
+
await createIndexIfColumnExists(knex, 't_constraints', 'active', 'idx_constraints_active');
|
|
54
|
+
await createIndexIfColumnExists(knex, 't_constraints', 'layer_id', 'idx_constraints_layer');
|
|
55
|
+
await createIndexIfColumnExists(knex, 't_constraints', 'priority', 'idx_constraints_priority', true);
|
|
56
|
+
// Activity log indexes - agent_id may not exist in old schemas
|
|
57
|
+
await createIndexIfColumnExists(knex, 't_activity_log', 'ts', 'idx_activity_log_ts', true);
|
|
58
|
+
await createIndexIfColumnExists(knex, 't_activity_log', 'agent_id', 'idx_activity_log_agent');
|
|
59
|
+
// Task indexes - assigned_agent_id may not exist in old schemas
|
|
60
|
+
await createIndexIfColumnExists(knex, 't_tasks', 'status_id', 'idx_tasks_status');
|
|
61
|
+
await createIndexIfColumnExists(knex, 't_tasks', 'priority', 'idx_tasks_priority', true);
|
|
62
|
+
await createIndexIfColumnExists(knex, 't_tasks', 'assigned_agent_id', 'idx_tasks_agent');
|
|
63
|
+
await createIndexIfColumnExists(knex, 't_tasks', 'created_ts', 'idx_tasks_created_ts', true);
|
|
64
|
+
await createIndexIfColumnExists(knex, 't_tasks', 'updated_ts', 'idx_tasks_updated_ts', true);
|
|
65
|
+
console.log('✅ Indexes created successfully');
|
|
66
|
+
}
|
|
67
|
+
export async function down(knex) {
|
|
68
|
+
// Drop all indexes
|
|
69
|
+
await knex.raw('DROP INDEX IF EXISTS idx_tasks_updated_ts');
|
|
70
|
+
await knex.raw('DROP INDEX IF EXISTS idx_tasks_created_ts');
|
|
71
|
+
await knex.raw('DROP INDEX IF EXISTS idx_tasks_agent');
|
|
72
|
+
await knex.raw('DROP INDEX IF EXISTS idx_tasks_priority');
|
|
73
|
+
await knex.raw('DROP INDEX IF EXISTS idx_tasks_status');
|
|
74
|
+
await knex.raw('DROP INDEX IF EXISTS idx_activity_log_agent');
|
|
75
|
+
await knex.raw('DROP INDEX IF EXISTS idx_activity_log_ts');
|
|
76
|
+
await knex.raw('DROP INDEX IF EXISTS idx_constraints_priority');
|
|
77
|
+
await knex.raw('DROP INDEX IF EXISTS idx_constraints_layer');
|
|
78
|
+
await knex.raw('DROP INDEX IF EXISTS idx_constraints_active');
|
|
79
|
+
await knex.raw('DROP INDEX IF EXISTS idx_file_changes_layer');
|
|
80
|
+
await knex.raw('DROP INDEX IF EXISTS idx_file_changes_file');
|
|
81
|
+
await knex.raw('DROP INDEX IF EXISTS idx_file_changes_ts');
|
|
82
|
+
await knex.raw('DROP INDEX IF EXISTS idx_messages_priority');
|
|
83
|
+
await knex.raw('DROP INDEX IF EXISTS idx_messages_to_agent');
|
|
84
|
+
await knex.raw('DROP INDEX IF EXISTS idx_messages_ts');
|
|
85
|
+
await knex.raw('DROP INDEX IF EXISTS idx_decisions_numeric_layer');
|
|
86
|
+
await knex.raw('DROP INDEX IF EXISTS idx_decisions_numeric_ts');
|
|
87
|
+
await knex.raw('DROP INDEX IF EXISTS idx_decisions_status');
|
|
88
|
+
await knex.raw('DROP INDEX IF EXISTS idx_decisions_agent');
|
|
89
|
+
await knex.raw('DROP INDEX IF EXISTS idx_decisions_layer');
|
|
90
|
+
await knex.raw('DROP INDEX IF EXISTS idx_decisions_ts');
|
|
91
|
+
console.log('✅ Indexes dropped successfully');
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=20251025021351_create_indexes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251025021351_create_indexes.js","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025021351_create_indexes.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,KAAK,UAAU,yBAAyB,CACtC,IAAU,EACV,SAAiB,EACjB,OAA0B,EAC1B,SAAiB,EACjB,OAAgB,KAAK;IAErB,IAAI,CAAC;QACH,8BAA8B;QAC9B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,gBAAgB,SAAS,WAAW,SAAS,gBAAgB,CAAC,CAAC;YAC3E,OAAO;QACT,CAAC;QAED,gCAAgC;QAChC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC;QAEtD,sCAAsC;QACtC,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAEnE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,gBAAgB,SAAS,eAAe,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACjG,OAAO;QACT,CAAC;QAED,2BAA2B;QAC3B,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,CAAC,GAAG,CAAC,8BAA8B,SAAS,OAAO,SAAS,IAAI,UAAU,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAE3G,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,4BAA4B,SAAS,KAAK,KAAK,EAAE,CAAC,CAAC;QAC/D,oEAAoE;IACtE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,+EAA+E;IAC/E,uCAAuC;IACvC,+EAA+E;IAE/E,oBAAoB;IACpB,MAAM,yBAAyB,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;IACrF,MAAM,yBAAyB,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,CAAC,CAAC;IACxF,MAAM,yBAAyB,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,CAAC,CAAC;IACxF,MAAM,yBAAyB,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,sBAAsB,CAAC,CAAC;IAEvF,4BAA4B;IAC5B,MAAM,yBAAyB,CAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,CAAC,CAAC;IACrG,MAAM,yBAAyB,CAAC,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,6BAA6B,CAAC,CAAC;IAExG,mBAAmB;IACnB,MAAM,yBAAyB,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACzF,MAAM,yBAAyB,CAAC,IAAI,EAAE,kBAAkB,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,uBAAuB,CAAC,CAAC;IAC5G,MAAM,yBAAyB,CAAC,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,uBAAuB,EAAE,IAAI,CAAC,CAAC;IAErG,uBAAuB;IACvB,MAAM,yBAAyB,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,CAAC,CAAC;IAC3F,MAAM,yBAAyB,CAAC,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;IAC5F,MAAM,yBAAyB,CAAC,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,wBAAwB,CAAC,CAAC;IAE9F,sBAAsB;IACtB,MAAM,yBAAyB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,wBAAwB,CAAC,CAAC;IAC3F,MAAM,yBAAyB,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,uBAAuB,CAAC,CAAC;IAC5F,MAAM,yBAAyB,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,0BAA0B,EAAE,IAAI,CAAC,CAAC;IAErG,+DAA+D;IAC/D,MAAM,yBAAyB,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,CAAC,CAAC;IAC3F,MAAM,yBAAyB,CAAC,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,wBAAwB,CAAC,CAAC;IAE9F,gEAAgE;IAChE,MAAM,yBAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAClF,MAAM,yBAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,EAAE,IAAI,CAAC,CAAC;IACzF,MAAM,yBAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IACzF,MAAM,yBAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,sBAAsB,EAAE,IAAI,CAAC,CAAC;IAC7F,MAAM,yBAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,sBAAsB,EAAE,IAAI,CAAC,CAAC;IAE7F,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AAChD,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,mBAAmB;IACnB,MAAM,IAAI,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAC5D,MAAM,IAAI,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAC5D,MAAM,IAAI,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACvD,MAAM,IAAI,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IAC1D,MAAM,IAAI,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACxD,MAAM,IAAI,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC9D,MAAM,IAAI,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAC3D,MAAM,IAAI,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAChE,MAAM,IAAI,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC7D,MAAM,IAAI,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC9D,MAAM,IAAI,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC9D,MAAM,IAAI,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC7D,MAAM,IAAI,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAC3D,MAAM,IAAI,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC7D,MAAM,IAAI,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC7D,MAAM,IAAI,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACvD,MAAM,IAAI,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;IACnE,MAAM,IAAI,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAChE,MAAM,IAAI,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAC5D,MAAM,IAAI,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAC3D,MAAM,IAAI,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAC3D,MAAM,IAAI,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IAExD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251025021416_seed_master_data.d.ts","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025021416_seed_master_data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DlD;AAGD,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CASpD"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export async function up(knex) {
|
|
2
|
+
// ============================================================================
|
|
3
|
+
// Initial Data Seeding
|
|
4
|
+
// Using INSERT OR IGNORE to prevent errors when data already exists
|
|
5
|
+
// ============================================================================
|
|
6
|
+
// Seed layers (5 predefined architecture layers)
|
|
7
|
+
await knex.raw(`
|
|
8
|
+
INSERT OR IGNORE INTO m_layers (id, name) VALUES
|
|
9
|
+
(1, 'presentation'),
|
|
10
|
+
(2, 'business'),
|
|
11
|
+
(3, 'data'),
|
|
12
|
+
(4, 'infrastructure'),
|
|
13
|
+
(5, 'cross-cutting')
|
|
14
|
+
`);
|
|
15
|
+
// Seed constraint categories
|
|
16
|
+
await knex.raw(`
|
|
17
|
+
INSERT OR IGNORE INTO m_constraint_categories (name) VALUES
|
|
18
|
+
('architecture'),
|
|
19
|
+
('security'),
|
|
20
|
+
('performance'),
|
|
21
|
+
('compatibility'),
|
|
22
|
+
('maintainability')
|
|
23
|
+
`);
|
|
24
|
+
// Seed common tags
|
|
25
|
+
await knex.raw(`
|
|
26
|
+
INSERT OR IGNORE INTO m_tags (name) VALUES
|
|
27
|
+
('authentication'),
|
|
28
|
+
('authorization'),
|
|
29
|
+
('validation'),
|
|
30
|
+
('error-handling'),
|
|
31
|
+
('logging'),
|
|
32
|
+
('performance'),
|
|
33
|
+
('security'),
|
|
34
|
+
('testing')
|
|
35
|
+
`);
|
|
36
|
+
// Seed configuration defaults
|
|
37
|
+
await knex.raw(`
|
|
38
|
+
INSERT OR IGNORE INTO m_config (key, value) VALUES
|
|
39
|
+
('autodelete_ignore_weekend', '1'),
|
|
40
|
+
('autodelete_message_hours', '24'),
|
|
41
|
+
('autodelete_file_history_days', '7')
|
|
42
|
+
`);
|
|
43
|
+
// Seed task statuses
|
|
44
|
+
await knex.raw(`
|
|
45
|
+
INSERT OR IGNORE INTO m_task_statuses (id, name) VALUES
|
|
46
|
+
(1, 'todo'),
|
|
47
|
+
(2, 'in_progress'),
|
|
48
|
+
(3, 'waiting_review'),
|
|
49
|
+
(4, 'blocked'),
|
|
50
|
+
(5, 'done'),
|
|
51
|
+
(6, 'archived')
|
|
52
|
+
`);
|
|
53
|
+
console.log('✅ Master data seeded successfully');
|
|
54
|
+
}
|
|
55
|
+
export async function down(knex) {
|
|
56
|
+
// Clear all seeded data
|
|
57
|
+
await knex('m_task_statuses').del();
|
|
58
|
+
await knex('m_config').del();
|
|
59
|
+
await knex('m_tags').del();
|
|
60
|
+
await knex('m_constraint_categories').del();
|
|
61
|
+
await knex('m_layers').del();
|
|
62
|
+
console.log('✅ Master data cleared');
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=20251025021416_seed_master_data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251025021416_seed_master_data.js","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025021416_seed_master_data.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,+EAA+E;IAC/E,uBAAuB;IACvB,oEAAoE;IACpE,+EAA+E;IAE/E,iDAAiD;IACjD,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;GAOd,CAAC,CAAC;IAEH,6BAA6B;IAC7B,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;GAOd,CAAC,CAAC;IAEH,mBAAmB;IACnB,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;GAUd,CAAC,CAAC;IAEH,8BAA8B;IAC9B,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;GAKd,CAAC,CAAC;IAEH,qBAAqB;IACrB,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;GAQd,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;AACnD,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,wBAAwB;IACxB,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,CAAC;IACpC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,IAAI,CAAC,yBAAyB,CAAC,CAAC,GAAG,EAAE,CAAC;IAC5C,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;IAE7B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"20251025070349_create_views.d.ts","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025070349_create_views.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA2IlD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAUpD"}
|