sqlew 3.6.10 → 3.7.1
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 +346 -0
- package/README.md +54 -39
- package/assets/config.example.toml +93 -0
- package/assets/kanban-visualizer.png +0 -0
- package/assets/sample-agents/sqlew-architect.md +32 -13
- package/assets/sample-agents/sqlew-researcher.md +70 -17
- package/assets/sample-agents/sqlew-scrum-master.md +60 -25
- package/assets/schema.sql +2 -2
- package/dist/adapters/auth/auth-factory.d.ts +86 -0
- package/dist/adapters/auth/auth-factory.d.ts.map +1 -0
- package/dist/adapters/auth/auth-factory.js +103 -0
- package/dist/adapters/auth/auth-factory.js.map +1 -0
- package/dist/adapters/auth/auth-types.d.ts +30 -0
- package/dist/adapters/auth/auth-types.d.ts.map +1 -0
- package/dist/adapters/auth/auth-types.js +30 -0
- package/dist/adapters/auth/auth-types.js.map +1 -0
- package/dist/adapters/auth/base-auth-provider.d.ts +327 -0
- package/dist/adapters/auth/base-auth-provider.d.ts.map +1 -0
- package/dist/adapters/auth/base-auth-provider.js +111 -0
- package/dist/adapters/auth/base-auth-provider.js.map +1 -0
- package/dist/adapters/auth/direct-auth-provider.d.ts +356 -0
- package/dist/adapters/auth/direct-auth-provider.d.ts.map +1 -0
- package/dist/adapters/auth/direct-auth-provider.js +406 -0
- package/dist/adapters/auth/direct-auth-provider.js.map +1 -0
- package/dist/adapters/base-adapter.d.ts +638 -0
- package/dist/adapters/base-adapter.d.ts.map +1 -0
- package/dist/adapters/base-adapter.js +557 -0
- package/dist/adapters/base-adapter.js.map +1 -0
- package/dist/adapters/index.d.ts +13 -2
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +27 -5
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/mysql-adapter.d.ts +547 -6
- package/dist/adapters/mysql-adapter.d.ts.map +1 -1
- package/dist/adapters/mysql-adapter.js +651 -32
- package/dist/adapters/mysql-adapter.js.map +1 -1
- package/dist/adapters/postgresql-adapter.d.ts +15 -4
- package/dist/adapters/postgresql-adapter.d.ts.map +1 -1
- package/dist/adapters/postgresql-adapter.js +19 -2
- package/dist/adapters/postgresql-adapter.js.map +1 -1
- package/dist/adapters/sqlite-adapter.d.ts +35 -5
- package/dist/adapters/sqlite-adapter.d.ts.map +1 -1
- package/dist/adapters/sqlite-adapter.js +57 -18
- package/dist/adapters/sqlite-adapter.js.map +1 -1
- package/dist/cli/db-dump.d.ts +32 -0
- package/dist/cli/db-dump.d.ts.map +1 -0
- package/dist/cli/db-dump.js +409 -0
- package/dist/cli/db-dump.js.map +1 -0
- package/dist/cli.js +24 -14
- package/dist/cli.js.map +1 -1
- package/dist/config/knex/bootstrap/20251025020452_create_master_tables.d.ts.map +1 -0
- package/dist/{migrations → config}/knex/bootstrap/20251025020452_create_master_tables.js +7 -2
- package/dist/config/knex/bootstrap/20251025020452_create_master_tables.js.map +1 -0
- package/dist/config/knex/bootstrap/20251025021152_create_transaction_tables.d.ts.map +1 -0
- package/dist/{migrations → config}/knex/bootstrap/20251025021152_create_transaction_tables.js +49 -50
- package/dist/config/knex/bootstrap/20251025021152_create_transaction_tables.js.map +1 -0
- package/dist/config/knex/bootstrap/20251025021351_create_indexes.d.ts.map +1 -0
- package/dist/config/knex/bootstrap/20251025021351_create_indexes.js.map +1 -0
- package/dist/config/knex/bootstrap/20251025021416_seed_master_data.d.ts.map +1 -0
- package/dist/{migrations → config}/knex/bootstrap/20251025021416_seed_master_data.js +11 -6
- package/dist/config/knex/bootstrap/20251025021416_seed_master_data.js.map +1 -0
- package/dist/config/knex/bootstrap/20251025070349_create_views.d.ts.map +1 -0
- package/dist/{migrations → config}/knex/bootstrap/20251025070349_create_views.js +66 -14
- package/dist/config/knex/bootstrap/20251025070349_create_views.js.map +1 -0
- package/dist/config/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts.map +1 -0
- package/dist/config/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js +22 -0
- package/dist/config/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js.map +1 -0
- package/dist/config/knex/enhancements/20251025082220_fix_task_dependencies_columns.d.ts.map +1 -0
- package/dist/config/knex/enhancements/20251025082220_fix_task_dependencies_columns.js.map +1 -0
- package/dist/config/knex/enhancements/20251025090000_create_help_system_tables.d.ts.map +1 -0
- package/dist/{migrations → config}/knex/enhancements/20251025090000_create_help_system_tables.js +6 -0
- package/dist/config/knex/enhancements/20251025090000_create_help_system_tables.js.map +1 -0
- package/dist/config/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts.map +1 -0
- package/dist/{migrations → config}/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.js +6 -0
- package/dist/config/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.js.map +1 -0
- package/dist/config/knex/enhancements/20251025100000_seed_help_metadata.d.ts.map +1 -0
- package/dist/{migrations → config}/knex/enhancements/20251025100000_seed_help_metadata.js +6 -0
- package/dist/config/knex/enhancements/20251025100000_seed_help_metadata.js.map +1 -0
- package/dist/config/knex/enhancements/20251025100100_seed_remaining_use_cases.d.ts.map +1 -0
- package/dist/config/knex/enhancements/20251025100100_seed_remaining_use_cases.js.map +1 -0
- package/dist/config/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts.map +1 -0
- package/dist/{migrations → config}/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.js +7 -0
- package/dist/config/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.js.map +1 -0
- package/dist/config/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts.map +1 -0
- package/dist/config/knex/enhancements/20251027000000_add_agent_reuse_system.js +62 -0
- package/dist/config/knex/enhancements/20251027000000_add_agent_reuse_system.js.map +1 -0
- package/dist/config/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts.map +1 -0
- package/dist/config/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js.map +1 -0
- package/dist/config/knex/enhancements/20251027020000_update_agent_reusability.d.ts.map +1 -0
- package/dist/{migrations → config}/knex/enhancements/20251027020000_update_agent_reusability.js +6 -0
- package/dist/config/knex/enhancements/20251027020000_update_agent_reusability.js.map +1 -0
- package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.d.ts.map +1 -0
- package/dist/{migrations → config}/knex/enhancements/20251028000000_simplify_agent_system.js +6 -0
- package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.js.map +1 -0
- package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.d.ts +13 -0
- package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.d.ts.map +1 -0
- package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.js +48 -0
- package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.js.map +1 -0
- package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.d.ts +24 -0
- package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.d.ts.map +1 -0
- package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.js +189 -0
- package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.js.map +1 -0
- package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.d.ts +16 -0
- package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.d.ts.map +1 -0
- package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.js +65 -0
- package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.js.map +1 -0
- package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.d.ts +23 -0
- package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.d.ts.map +1 -0
- package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.js +118 -0
- package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.js.map +1 -0
- package/dist/config/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts.map +1 -0
- package/dist/config/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js.map +1 -0
- package/dist/config/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts.map +1 -0
- package/dist/config/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js.map +1 -0
- package/dist/config/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts.map +1 -0
- package/dist/config/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js.map +1 -0
- package/dist/config/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts.map +1 -0
- package/dist/config/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js.map +1 -0
- package/dist/config/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts.map +1 -0
- package/dist/config/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js.map +1 -0
- package/dist/config/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts.map +1 -0
- package/dist/config/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js.map +1 -0
- package/dist/config/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts.map +1 -0
- package/dist/config/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js.map +1 -0
- package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.d.ts +49 -0
- package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.d.ts.map +1 -0
- package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.js +864 -0
- package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.js.map +1 -0
- package/dist/config/loader.d.ts +19 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +149 -4
- package/dist/config/loader.js.map +1 -1
- package/dist/config/types.d.ts +261 -2
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/config/writer.d.ts +65 -0
- package/dist/config/writer.d.ts.map +1 -0
- package/dist/config/writer.js +139 -0
- package/dist/config/writer.js.map +1 -0
- package/dist/database.d.ts +11 -2
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +62 -6
- package/dist/database.js.map +1 -1
- package/dist/index.js +173 -39
- package/dist/index.js.map +1 -1
- package/dist/knexfile.d.ts.map +1 -1
- package/dist/knexfile.js +88 -12
- package/dist/knexfile.js.map +1 -1
- package/dist/tests/all-features.test.js +15 -3
- package/dist/tests/all-features.test.js.map +1 -1
- package/dist/tests/config-loader.test.d.ts +6 -0
- package/dist/tests/config-loader.test.d.ts.map +1 -0
- package/dist/tests/config-loader.test.js +201 -0
- package/dist/tests/config-loader.test.js.map +1 -0
- package/dist/tests/connection-manager-integration.test.d.ts +2 -0
- package/dist/tests/connection-manager-integration.test.d.ts.map +1 -0
- package/dist/tests/connection-manager-integration.test.js +431 -0
- package/dist/tests/connection-manager-integration.test.js.map +1 -0
- package/dist/tests/connection-manager.test.d.ts +2 -0
- package/dist/tests/connection-manager.test.d.ts.map +1 -0
- package/dist/tests/connection-manager.test.js +361 -0
- package/dist/tests/connection-manager.test.js.map +1 -0
- package/dist/tests/dump-import.test.d.ts +15 -0
- package/dist/tests/dump-import.test.d.ts.map +1 -0
- package/dist/tests/dump-import.test.js +430 -0
- package/dist/tests/dump-import.test.js.map +1 -0
- package/dist/tests/migration-idempotency.test.d.ts +2 -0
- package/dist/tests/migration-idempotency.test.d.ts.map +1 -0
- package/dist/tests/migration-idempotency.test.js +330 -0
- package/dist/tests/migration-idempotency.test.js.map +1 -0
- package/dist/tests/migration-upgrade-paths.test.d.ts +2 -0
- package/dist/tests/migration-upgrade-paths.test.d.ts.map +1 -0
- package/dist/tests/migration-upgrade-paths.test.js +248 -0
- package/dist/tests/migration-upgrade-paths.test.js.map +1 -0
- package/dist/tests/migrations/test-all-versions-real.js +3 -0
- package/dist/tests/migrations/test-all-versions-real.js.map +1 -1
- package/dist/tests/multi-project-migration.test.d.ts +17 -0
- package/dist/tests/multi-project-migration.test.d.ts.map +1 -0
- package/dist/tests/multi-project-migration.test.js +399 -0
- package/dist/tests/multi-project-migration.test.js.map +1 -0
- package/dist/tests/multi-project.test.d.ts +5 -0
- package/dist/tests/multi-project.test.d.ts.map +1 -0
- package/dist/tests/multi-project.test.js +238 -0
- package/dist/tests/multi-project.test.js.map +1 -0
- package/dist/tests/schema-migration.test.d.ts +8 -0
- package/dist/tests/schema-migration.test.d.ts.map +1 -0
- package/dist/tests/schema-migration.test.js +108 -0
- package/dist/tests/schema-migration.test.js.map +1 -0
- package/dist/tests/sql-dump-converters.test.d.ts +7 -0
- package/dist/tests/sql-dump-converters.test.d.ts.map +1 -0
- package/dist/tests/sql-dump-converters.test.js +314 -0
- package/dist/tests/sql-dump-converters.test.js.map +1 -0
- package/dist/tests/sql-dump-cross-database.test.d.ts +21 -0
- package/dist/tests/sql-dump-cross-database.test.d.ts.map +1 -0
- package/dist/tests/sql-dump-cross-database.test.js +314 -0
- package/dist/tests/sql-dump-cross-database.test.js.map +1 -0
- package/dist/tests/sql-dump-default-conversions.test.d.ts +8 -0
- package/dist/tests/sql-dump-default-conversions.test.d.ts.map +1 -0
- package/dist/tests/sql-dump-default-conversions.test.js +141 -0
- package/dist/tests/sql-dump-default-conversions.test.js.map +1 -0
- package/dist/tests/sql-dump-fk-constraints.test.d.ts +13 -0
- package/dist/tests/sql-dump-fk-constraints.test.d.ts.map +1 -0
- package/dist/tests/sql-dump-fk-constraints.test.js +381 -0
- package/dist/tests/sql-dump-fk-constraints.test.js.map +1 -0
- package/dist/tests/sql-dump-indexes.test.d.ts +12 -0
- package/dist/tests/sql-dump-indexes.test.d.ts.map +1 -0
- package/dist/tests/sql-dump-indexes.test.js +269 -0
- package/dist/tests/sql-dump-indexes.test.js.map +1 -0
- package/dist/tests/sql-dump-integration.test.d.ts +16 -0
- package/dist/tests/sql-dump-integration.test.d.ts.map +1 -0
- package/dist/tests/sql-dump-integration.test.js +342 -0
- package/dist/tests/sql-dump-integration.test.js.map +1 -0
- package/dist/tests/sql-dump-table-ordering.test.d.ts +8 -0
- package/dist/tests/sql-dump-table-ordering.test.d.ts.map +1 -0
- package/dist/tests/sql-dump-table-ordering.test.js +253 -0
- package/dist/tests/sql-dump-table-ordering.test.js.map +1 -0
- package/dist/tests/tasks.link-file-backward-compat.test.js +11 -1
- package/dist/tests/tasks.link-file-backward-compat.test.js.map +1 -1
- package/dist/tests/tasks.watch-files-action.test.js +11 -1
- package/dist/tests/tasks.watch-files-action.test.js.map +1 -1
- package/dist/tests/type-conversion.test.d.ts +8 -0
- package/dist/tests/type-conversion.test.d.ts.map +1 -0
- package/dist/tests/type-conversion.test.js +312 -0
- package/dist/tests/type-conversion.test.js.map +1 -0
- package/dist/tests/utils/test-helpers.d.ts +93 -0
- package/dist/tests/utils/test-helpers.d.ts.map +1 -0
- package/dist/tests/utils/test-helpers.js +407 -0
- package/dist/tests/utils/test-helpers.js.map +1 -0
- package/dist/tools/config.d.ts +58 -0
- package/dist/tools/config.d.ts.map +1 -0
- package/dist/tools/config.js +281 -0
- package/dist/tools/config.js.map +1 -0
- package/dist/tools/constraints.d.ts.map +1 -1
- package/dist/tools/constraints.js +138 -122
- package/dist/tools/constraints.js.map +1 -1
- package/dist/tools/context.d.ts.map +1 -1
- package/dist/tools/context.js +216 -109
- package/dist/tools/context.js.map +1 -1
- package/dist/tools/files.d.ts.map +1 -1
- package/dist/tools/files.js +123 -102
- package/dist/tools/files.js.map +1 -1
- package/dist/tools/tasks.d.ts.map +1 -1
- package/dist/tools/tasks.js +593 -518
- package/dist/tools/tasks.js.map +1 -1
- package/dist/tools/utils.d.ts +5 -0
- package/dist/tools/utils.d.ts.map +1 -1
- package/dist/tools/utils.js +176 -122
- package/dist/tools/utils.js.map +1 -1
- package/dist/types.d.ts +9 -26
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/cleanup.d.ts +3 -0
- package/dist/utils/cleanup.d.ts.map +1 -1
- package/dist/utils/cleanup.js +14 -2
- package/dist/utils/cleanup.js.map +1 -1
- package/dist/utils/connection-manager.d.ts +59 -0
- package/dist/utils/connection-manager.d.ts.map +1 -0
- package/dist/utils/connection-manager.js +178 -0
- package/dist/utils/connection-manager.js.map +1 -0
- package/dist/utils/debug-logger.d.ts +8 -4
- package/dist/utils/debug-logger.d.ts.map +1 -1
- package/dist/utils/debug-logger.js +27 -7
- package/dist/utils/debug-logger.js.map +1 -1
- package/dist/utils/error-handler.d.ts +6 -4
- package/dist/utils/error-handler.d.ts.map +1 -1
- package/dist/utils/error-handler.js +34 -9
- package/dist/utils/error-handler.js.map +1 -1
- package/dist/utils/parameter-validator.d.ts.map +1 -1
- package/dist/utils/parameter-validator.js +50 -16
- package/dist/utils/parameter-validator.js.map +1 -1
- package/dist/utils/project-context.d.ts +111 -0
- package/dist/utils/project-context.d.ts.map +1 -0
- package/dist/utils/project-context.js +187 -0
- package/dist/utils/project-context.js.map +1 -0
- package/dist/utils/sql-dump-converters.d.ts +188 -0
- package/dist/utils/sql-dump-converters.d.ts.map +1 -0
- package/dist/utils/sql-dump-converters.js +311 -0
- package/dist/utils/sql-dump-converters.js.map +1 -0
- package/dist/utils/sql-dump.d.ts +102 -0
- package/dist/utils/sql-dump.d.ts.map +1 -0
- package/dist/utils/sql-dump.js +1550 -0
- package/dist/utils/sql-dump.js.map +1 -0
- package/dist/utils/vcs-adapter.d.ts +42 -0
- package/dist/utils/vcs-adapter.d.ts.map +1 -1
- package/dist/utils/vcs-adapter.js +154 -0
- package/dist/utils/vcs-adapter.js.map +1 -1
- package/docs/BASEADAPTER_IMPLEMENTATION.md +399 -0
- package/docs/DATABASE_AUTH.md +445 -0
- package/docs/DATABASE_MIGRATION.md +247 -0
- package/docs/MULTI_PROJECT_ARCHITECTURE.md +497 -0
- package/package.json +12 -4
- package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.d.ts.map +0 -1
- package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.js.map +0 -1
- package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.d.ts.map +0 -1
- package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.js.map +0 -1
- package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.d.ts.map +0 -1
- package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.js.map +0 -1
- package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.d.ts.map +0 -1
- package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.js.map +0 -1
- package/dist/migrations/knex/bootstrap/20251025070349_create_views.d.ts.map +0 -1
- package/dist/migrations/knex/bootstrap/20251025070349_create_views.js.map +0 -1
- package/dist/migrations/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts.map +0 -1
- package/dist/migrations/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js +0 -15
- package/dist/migrations/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js.map +0 -1
- package/dist/migrations/knex/enhancements/20251025082220_fix_task_dependencies_columns.d.ts.map +0 -1
- package/dist/migrations/knex/enhancements/20251025082220_fix_task_dependencies_columns.js.map +0 -1
- package/dist/migrations/knex/enhancements/20251025090000_create_help_system_tables.d.ts.map +0 -1
- package/dist/migrations/knex/enhancements/20251025090000_create_help_system_tables.js.map +0 -1
- package/dist/migrations/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts.map +0 -1
- package/dist/migrations/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.js.map +0 -1
- package/dist/migrations/knex/enhancements/20251025100000_seed_help_metadata.d.ts.map +0 -1
- package/dist/migrations/knex/enhancements/20251025100000_seed_help_metadata.js.map +0 -1
- package/dist/migrations/knex/enhancements/20251025100100_seed_remaining_use_cases.d.ts.map +0 -1
- package/dist/migrations/knex/enhancements/20251025100100_seed_remaining_use_cases.js.map +0 -1
- package/dist/migrations/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts.map +0 -1
- package/dist/migrations/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.js.map +0 -1
- package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts.map +0 -1
- package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.js +0 -34
- package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.js.map +0 -1
- package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts.map +0 -1
- package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js.map +0 -1
- package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.d.ts.map +0 -1
- package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.js.map +0 -1
- package/dist/migrations/knex/enhancements/20251028000000_simplify_agent_system.d.ts.map +0 -1
- package/dist/migrations/knex/enhancements/20251028000000_simplify_agent_system.js.map +0 -1
- package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts.map +0 -1
- package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js.map +0 -1
- package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts.map +0 -1
- package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js.map +0 -1
- package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts.map +0 -1
- package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js.map +0 -1
- package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts.map +0 -1
- package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js.map +0 -1
- package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts.map +0 -1
- package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js.map +0 -1
- package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts.map +0 -1
- package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js.map +0 -1
- package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts.map +0 -1
- package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js.map +0 -1
- /package/dist/{migrations → config}/knex/bootstrap/20251025020452_create_master_tables.d.ts +0 -0
- /package/dist/{migrations → config}/knex/bootstrap/20251025021152_create_transaction_tables.d.ts +0 -0
- /package/dist/{migrations → config}/knex/bootstrap/20251025021351_create_indexes.d.ts +0 -0
- /package/dist/{migrations → config}/knex/bootstrap/20251025021351_create_indexes.js +0 -0
- /package/dist/{migrations → config}/knex/bootstrap/20251025021416_seed_master_data.d.ts +0 -0
- /package/dist/{migrations → config}/knex/bootstrap/20251025070349_create_views.d.ts +0 -0
- /package/dist/{migrations → config}/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts +0 -0
- /package/dist/{migrations → config}/knex/enhancements/20251025082220_fix_task_dependencies_columns.d.ts +0 -0
- /package/dist/{migrations → config}/knex/enhancements/20251025082220_fix_task_dependencies_columns.js +0 -0
- /package/dist/{migrations → config}/knex/enhancements/20251025090000_create_help_system_tables.d.ts +0 -0
- /package/dist/{migrations → config}/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts +0 -0
- /package/dist/{migrations → config}/knex/enhancements/20251025100000_seed_help_metadata.d.ts +0 -0
- /package/dist/{migrations → config}/knex/enhancements/20251025100100_seed_remaining_use_cases.d.ts +0 -0
- /package/dist/{migrations → config}/knex/enhancements/20251025100100_seed_remaining_use_cases.js +0 -0
- /package/dist/{migrations → config}/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts +0 -0
- /package/dist/{migrations → config}/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts +0 -0
- /package/dist/{migrations → config}/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts +0 -0
- /package/dist/{migrations → config}/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js +0 -0
- /package/dist/{migrations → config}/knex/enhancements/20251027020000_update_agent_reusability.d.ts +0 -0
- /package/dist/{migrations → config}/knex/enhancements/20251028000000_simplify_agent_system.d.ts +0 -0
- /package/dist/{migrations → config}/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts +0 -0
- /package/dist/{migrations → config}/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js +0 -0
- /package/dist/{migrations → config}/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts +0 -0
- /package/dist/{migrations → config}/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js +0 -0
- /package/dist/{migrations → config}/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts +0 -0
- /package/dist/{migrations → config}/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js +0 -0
- /package/dist/{migrations → config}/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts +0 -0
- /package/dist/{migrations → config}/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js +0 -0
- /package/dist/{migrations → config}/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts +0 -0
- /package/dist/{migrations → config}/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js +0 -0
- /package/dist/{migrations → config}/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts +0 -0
- /package/dist/{migrations → config}/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js +0 -0
- /package/dist/{migrations → config}/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts +0 -0
- /package/dist/{migrations → config}/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js +0 -0
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config tool for MCP Shared Context Server
|
|
3
|
+
* Manages per-project configuration with inheritance (project-specific > global)
|
|
4
|
+
*
|
|
5
|
+
* CONVERTED: Using Knex.js query builder only (NO knex.raw())
|
|
6
|
+
*/
|
|
7
|
+
import { getAdapter } from '../database.js';
|
|
8
|
+
import { getProjectContext } from '../utils/project-context.js';
|
|
9
|
+
import { validateActionParams } from '../utils/parameter-validator.js';
|
|
10
|
+
import connectionManager from '../utils/connection-manager.js';
|
|
11
|
+
/**
|
|
12
|
+
* Get configuration value with per-project inheritance
|
|
13
|
+
*
|
|
14
|
+
* Lookup priority:
|
|
15
|
+
* 1. Project-specific config (project_id = current project)
|
|
16
|
+
* 2. Global config (project_id = NULL)
|
|
17
|
+
*
|
|
18
|
+
* @param params - Config key to retrieve
|
|
19
|
+
* @param adapter - Optional database adapter (for testing)
|
|
20
|
+
* @returns Config value or null if not found
|
|
21
|
+
*/
|
|
22
|
+
export async function getConfig(params, adapter) {
|
|
23
|
+
const actualAdapter = adapter ?? getAdapter();
|
|
24
|
+
const knex = actualAdapter.getKnex();
|
|
25
|
+
try {
|
|
26
|
+
// Validate parameters
|
|
27
|
+
validateActionParams('config', 'get', params);
|
|
28
|
+
return await connectionManager.executeWithRetry(async () => {
|
|
29
|
+
const projectId = getProjectContext().getProjectId();
|
|
30
|
+
const configKey = params.key;
|
|
31
|
+
// Try project-specific config first
|
|
32
|
+
let config = await knex('m_config')
|
|
33
|
+
.where({ key: configKey, project_id: projectId })
|
|
34
|
+
.first();
|
|
35
|
+
if (config) {
|
|
36
|
+
return {
|
|
37
|
+
key: config.key,
|
|
38
|
+
value: config.value,
|
|
39
|
+
scope: 'project'
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
// Fallback to global config (project_id = NULL)
|
|
43
|
+
config = await knex('m_config')
|
|
44
|
+
.where({ key: configKey })
|
|
45
|
+
.whereNull('project_id')
|
|
46
|
+
.first();
|
|
47
|
+
if (config) {
|
|
48
|
+
return {
|
|
49
|
+
key: config.key,
|
|
50
|
+
value: config.value,
|
|
51
|
+
scope: 'global'
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
// Not found
|
|
55
|
+
return {
|
|
56
|
+
key: configKey,
|
|
57
|
+
value: null,
|
|
58
|
+
scope: 'not_found'
|
|
59
|
+
};
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
64
|
+
throw new Error(`Failed to get config: ${message}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Update configuration value (project-specific or global)
|
|
69
|
+
*
|
|
70
|
+
* @param params - Config key, value, and optional scope
|
|
71
|
+
* @param adapter - Optional database adapter (for testing)
|
|
72
|
+
* @returns Success status
|
|
73
|
+
*/
|
|
74
|
+
export async function updateConfig(params, adapter) {
|
|
75
|
+
const actualAdapter = adapter ?? getAdapter();
|
|
76
|
+
const knex = actualAdapter.getKnex();
|
|
77
|
+
try {
|
|
78
|
+
// Validate parameters
|
|
79
|
+
validateActionParams('config', 'update', params);
|
|
80
|
+
return await connectionManager.executeWithRetry(async () => {
|
|
81
|
+
const configKey = params.key;
|
|
82
|
+
const configValue = params.value;
|
|
83
|
+
const scope = params.scope || 'project'; // Default to project-specific
|
|
84
|
+
// Determine project_id based on scope
|
|
85
|
+
const projectId = scope === 'global' ? null : getProjectContext().getProjectId();
|
|
86
|
+
// Use Knex insert with onConflict for upsert (works across SQLite, MySQL, PostgreSQL)
|
|
87
|
+
await knex('m_config')
|
|
88
|
+
.insert({
|
|
89
|
+
key: configKey,
|
|
90
|
+
project_id: projectId,
|
|
91
|
+
value: configValue
|
|
92
|
+
})
|
|
93
|
+
.onConflict(['key', 'project_id'])
|
|
94
|
+
.merge({ value: configValue });
|
|
95
|
+
return {
|
|
96
|
+
success: true,
|
|
97
|
+
key: configKey,
|
|
98
|
+
value: configValue,
|
|
99
|
+
scope: scope
|
|
100
|
+
};
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
105
|
+
throw new Error(`Failed to update config: ${message}`);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get help documentation for config tool
|
|
110
|
+
* @returns Help documentation object
|
|
111
|
+
*/
|
|
112
|
+
export function configHelp() {
|
|
113
|
+
return {
|
|
114
|
+
tool: 'config',
|
|
115
|
+
description: 'Manage per-project configuration with inheritance',
|
|
116
|
+
note: '💡 TIP: Use action: "example" to see comprehensive usage scenarios for config actions.',
|
|
117
|
+
config_inheritance: {
|
|
118
|
+
priority: 'Project-specific config > Global config',
|
|
119
|
+
scopes: {
|
|
120
|
+
project: 'Config specific to current project (default for update)',
|
|
121
|
+
global: 'Config shared across all projects (project_id = NULL)'
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
actions: {
|
|
125
|
+
get: 'Get configuration value with inheritance. Params: key (string)',
|
|
126
|
+
update: 'Set configuration value. Params: key (string), value (string), scope ("project" | "global", default: "project")'
|
|
127
|
+
},
|
|
128
|
+
examples: {
|
|
129
|
+
get: '{ action: "get", key: "autodelete_message_hours" }',
|
|
130
|
+
update_project: '{ action: "update", key: "autodelete_message_hours", value: "48", scope: "project" }',
|
|
131
|
+
update_global: '{ action: "update", key: "autodelete_message_hours", value: "72", scope: "global" }'
|
|
132
|
+
},
|
|
133
|
+
common_config_keys: [
|
|
134
|
+
'autodelete_message_hours',
|
|
135
|
+
'autodelete_file_history_days',
|
|
136
|
+
'autodelete_ignore_weekend'
|
|
137
|
+
]
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Get comprehensive examples for config tool
|
|
142
|
+
* @returns Examples documentation object
|
|
143
|
+
*/
|
|
144
|
+
export function configExample() {
|
|
145
|
+
return {
|
|
146
|
+
tool: 'config',
|
|
147
|
+
description: 'Per-project configuration management examples',
|
|
148
|
+
scenarios: {
|
|
149
|
+
get_with_inheritance: {
|
|
150
|
+
title: 'Get Config with Automatic Inheritance',
|
|
151
|
+
steps: [
|
|
152
|
+
{
|
|
153
|
+
step: 1,
|
|
154
|
+
action: 'Get config (will check project-specific first, then global)',
|
|
155
|
+
request: '{ action: "get", key: "autodelete_message_hours" }',
|
|
156
|
+
response: '{ key: "autodelete_message_hours", value: "48", scope: "project" }'
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
step: 2,
|
|
160
|
+
action: 'If no project-specific config exists, returns global',
|
|
161
|
+
request: '{ action: "get", key: "autodelete_ignore_weekend" }',
|
|
162
|
+
response: '{ key: "autodelete_ignore_weekend", value: "true", scope: "global" }'
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
step: 3,
|
|
166
|
+
action: 'If neither exists, returns not_found',
|
|
167
|
+
request: '{ action: "get", key: "nonexistent_key" }',
|
|
168
|
+
response: '{ key: "nonexistent_key", value: null, scope: "not_found" }'
|
|
169
|
+
}
|
|
170
|
+
]
|
|
171
|
+
},
|
|
172
|
+
project_specific_override: {
|
|
173
|
+
title: 'Override Global Config for Specific Project',
|
|
174
|
+
workflow: [
|
|
175
|
+
{
|
|
176
|
+
step: 1,
|
|
177
|
+
description: 'Set global config (applies to all projects)',
|
|
178
|
+
request: '{ action: "update", key: "autodelete_message_hours", value: "72", scope: "global" }'
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
step: 2,
|
|
182
|
+
description: 'Override for current project (project-specific takes precedence)',
|
|
183
|
+
request: '{ action: "update", key: "autodelete_message_hours", value: "24", scope: "project" }'
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
step: 3,
|
|
187
|
+
description: 'Get config - returns project-specific value',
|
|
188
|
+
request: '{ action: "get", key: "autodelete_message_hours" }',
|
|
189
|
+
response: '{ key: "autodelete_message_hours", value: "24", scope: "project" }'
|
|
190
|
+
}
|
|
191
|
+
]
|
|
192
|
+
},
|
|
193
|
+
global_config_fallback: {
|
|
194
|
+
title: 'Global Config as Fallback',
|
|
195
|
+
example: {
|
|
196
|
+
scenario: 'Project without specific config uses global default',
|
|
197
|
+
global_config: '{ action: "update", key: "autodelete_file_history_days", value: "14", scope: "global" }',
|
|
198
|
+
get_request: '{ action: "get", key: "autodelete_file_history_days" }',
|
|
199
|
+
response: '{ key: "autodelete_file_history_days", value: "14", scope: "global" }',
|
|
200
|
+
explanation: 'No project-specific config exists, so global config is returned'
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
best_practices: {
|
|
205
|
+
scopes: [
|
|
206
|
+
'Use "global" scope for organization-wide defaults',
|
|
207
|
+
'Use "project" scope (default) for project-specific overrides',
|
|
208
|
+
'Get action automatically handles inheritance (no need to specify scope)'
|
|
209
|
+
],
|
|
210
|
+
common_patterns: [
|
|
211
|
+
'Set global defaults first, then override per-project as needed',
|
|
212
|
+
'Use consistent key names across projects for easier management',
|
|
213
|
+
'Document project-specific overrides in project documentation'
|
|
214
|
+
]
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Get use case documentation for config tool
|
|
220
|
+
* @returns Use case documentation object
|
|
221
|
+
*/
|
|
222
|
+
export function configUseCase() {
|
|
223
|
+
return {
|
|
224
|
+
tool: 'config',
|
|
225
|
+
description: 'When to use per-project configuration',
|
|
226
|
+
use_cases: [
|
|
227
|
+
{
|
|
228
|
+
id: 'config_uc_001',
|
|
229
|
+
title: 'Multi-Project Retention Policies',
|
|
230
|
+
scenario: 'Different projects have different data retention requirements',
|
|
231
|
+
example: {
|
|
232
|
+
problem: 'Production project needs 7-day retention, staging needs 2-day',
|
|
233
|
+
solution: [
|
|
234
|
+
'1. Set global default: { action: "update", key: "autodelete_file_history_days", value: "7", scope: "global" }',
|
|
235
|
+
'2. Override for staging: { action: "update", key: "autodelete_file_history_days", value: "2", scope: "project" }'
|
|
236
|
+
],
|
|
237
|
+
benefit: 'Each project gets appropriate retention without code changes'
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
id: 'config_uc_002',
|
|
242
|
+
title: 'Weekend-Aware Mode Per Project',
|
|
243
|
+
scenario: 'Some projects operate 24/7, others are business-hours only',
|
|
244
|
+
example: {
|
|
245
|
+
problem: 'E-commerce project is 24/7, internal tools are Mon-Fri',
|
|
246
|
+
solution: [
|
|
247
|
+
'1. Global default (24/7): { action: "update", key: "autodelete_ignore_weekend", value: "false", scope: "global" }',
|
|
248
|
+
'2. Business-hours project: { action: "update", key: "autodelete_ignore_weekend", value: "true", scope: "project" }'
|
|
249
|
+
],
|
|
250
|
+
benefit: 'Retention logic respects project operational hours'
|
|
251
|
+
}
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
id: 'config_uc_003',
|
|
255
|
+
title: 'Organizational Defaults with Project Flexibility',
|
|
256
|
+
scenario: 'Organization sets standards but allows project-level adjustments',
|
|
257
|
+
example: {
|
|
258
|
+
problem: 'Company standard is 48h message retention, but critical projects need 1 week',
|
|
259
|
+
solution: [
|
|
260
|
+
'1. Set org standard: { action: "update", key: "autodelete_message_hours", value: "48", scope: "global" }',
|
|
261
|
+
'2. Critical projects override: { action: "update", key: "autodelete_message_hours", value: "168", scope: "project" }'
|
|
262
|
+
],
|
|
263
|
+
benefit: 'Centralized defaults with granular control where needed'
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
],
|
|
267
|
+
when_to_use: {
|
|
268
|
+
use_project_scope: [
|
|
269
|
+
'Project has unique requirements different from organization defaults',
|
|
270
|
+
'Temporary adjustments needed for specific project phase (e.g., launch, debugging)',
|
|
271
|
+
'Project operates under different compliance/retention rules'
|
|
272
|
+
],
|
|
273
|
+
use_global_scope: [
|
|
274
|
+
'Setting organization-wide standards and defaults',
|
|
275
|
+
'Ensuring consistency across all projects without overrides',
|
|
276
|
+
'Establishing baseline configuration for new projects'
|
|
277
|
+
]
|
|
278
|
+
}
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/tools/config.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;AAsBvD,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,CA4FhC;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,oBAAoB,EAC5B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,sBAAsB,CAAC,CAkEjC;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,0BAA0B,EAClC,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,4BAA4B,CAAC,CAmCvC;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,GAAG,CAsBpC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,GAAG,CAuIvC"}
|
|
@@ -10,6 +10,8 @@ import { validateCategory, validatePriority } from '../utils/validators.js';
|
|
|
10
10
|
import { validateActionParams } from '../utils/parameter-validator.js';
|
|
11
11
|
import { logConstraintAdd } from '../utils/activity-logging.js';
|
|
12
12
|
import { parseStringArray } from '../utils/param-parser.js';
|
|
13
|
+
import { getProjectContext } from '../utils/project-context.js';
|
|
14
|
+
import connectionManager from '../utils/connection-manager.js';
|
|
13
15
|
/**
|
|
14
16
|
* Get or create constraint category ID
|
|
15
17
|
* Uses INSERT OR IGNORE for idempotent operation
|
|
@@ -24,73 +26,78 @@ import { parseStringArray } from '../utils/param-parser.js';
|
|
|
24
26
|
export async function addConstraint(params, adapter) {
|
|
25
27
|
const actualAdapter = adapter ?? getAdapter();
|
|
26
28
|
try {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
const result = await actualAdapter.transaction(async (trx) => {
|
|
49
|
-
// Get or create category
|
|
50
|
-
const categoryId = await getOrCreateCategoryId(actualAdapter, params.category, trx);
|
|
51
|
-
// Get or create created_by agent (default to generic pool)
|
|
52
|
-
const createdBy = params.created_by || '';
|
|
53
|
-
const agentId = await getOrCreateAgent(actualAdapter, createdBy, trx);
|
|
54
|
-
// Calculate timestamp
|
|
55
|
-
const ts = Math.floor(Date.now() / 1000);
|
|
56
|
-
// Insert constraint
|
|
57
|
-
const [constraintId] = await trx('t_constraints').insert({
|
|
58
|
-
category_id: categoryId,
|
|
59
|
-
layer_id: layerId,
|
|
60
|
-
constraint_text: params.constraint_text,
|
|
61
|
-
priority: priority,
|
|
62
|
-
active: SQLITE_TRUE,
|
|
63
|
-
agent_id: agentId,
|
|
64
|
-
ts: ts
|
|
65
|
-
});
|
|
66
|
-
// Insert m_tags if provided
|
|
67
|
-
if (params.tags && params.tags.length > 0) {
|
|
68
|
-
// Parse tags (handles both arrays and JSON strings from MCP)
|
|
69
|
-
const tags = parseStringArray(params.tags);
|
|
70
|
-
for (const tagName of tags) {
|
|
71
|
-
const tagId = await getOrCreateTag(actualAdapter, tagName, trx);
|
|
72
|
-
await trx('t_constraint_tags').insert({
|
|
73
|
-
constraint_id: Number(constraintId),
|
|
74
|
-
tag_id: tagId
|
|
75
|
-
});
|
|
29
|
+
return await connectionManager.executeWithRetry(async () => {
|
|
30
|
+
// Fail-fast project_id validation (Constraint #29)
|
|
31
|
+
const projectId = getProjectContext().getProjectId();
|
|
32
|
+
// Validate parameters
|
|
33
|
+
validateActionParams('constraint', 'add', params);
|
|
34
|
+
// Validate category
|
|
35
|
+
validateCategory(params.category);
|
|
36
|
+
// Validate priority if provided
|
|
37
|
+
const priorityStr = params.priority || 'medium';
|
|
38
|
+
validatePriority(priorityStr);
|
|
39
|
+
const priority = STRING_TO_PRIORITY[priorityStr] || DEFAULT_PRIORITY;
|
|
40
|
+
// Validate and get layer ID if provided
|
|
41
|
+
let layerId = null;
|
|
42
|
+
if (params.layer) {
|
|
43
|
+
const validLayers = ['presentation', 'business', 'data', 'infrastructure', 'cross-cutting'];
|
|
44
|
+
if (!validLayers.includes(params.layer)) {
|
|
45
|
+
throw new Error(`Invalid layer. Must be one of: ${validLayers.join(', ')}`);
|
|
46
|
+
}
|
|
47
|
+
layerId = await getLayerId(actualAdapter, params.layer);
|
|
48
|
+
if (!layerId) {
|
|
49
|
+
throw new Error(`Layer not found: ${params.layer}`);
|
|
76
50
|
}
|
|
77
51
|
}
|
|
78
|
-
//
|
|
79
|
-
await
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
52
|
+
// Use transaction for multi-table insert
|
|
53
|
+
const result = await actualAdapter.transaction(async (trx) => {
|
|
54
|
+
// Get or create category
|
|
55
|
+
const categoryId = await getOrCreateCategoryId(actualAdapter, params.category, trx);
|
|
56
|
+
// Get or create created_by agent (default to generic pool)
|
|
57
|
+
const createdBy = params.created_by || '';
|
|
58
|
+
const agentId = await getOrCreateAgent(actualAdapter, createdBy, trx);
|
|
59
|
+
// Calculate timestamp
|
|
60
|
+
const ts = Math.floor(Date.now() / 1000);
|
|
61
|
+
// Insert constraint with project_id
|
|
62
|
+
const [constraintId] = await trx('t_constraints').insert({
|
|
63
|
+
category_id: categoryId,
|
|
64
|
+
layer_id: layerId,
|
|
65
|
+
constraint_text: params.constraint_text,
|
|
66
|
+
priority: priority,
|
|
67
|
+
active: SQLITE_TRUE,
|
|
68
|
+
agent_id: agentId,
|
|
69
|
+
ts: ts,
|
|
70
|
+
project_id: projectId
|
|
71
|
+
});
|
|
72
|
+
// Insert m_tags if provided
|
|
73
|
+
if (params.tags && params.tags.length > 0) {
|
|
74
|
+
// Parse tags (handles both arrays and JSON strings from MCP)
|
|
75
|
+
const tags = parseStringArray(params.tags);
|
|
76
|
+
for (const tagName of tags) {
|
|
77
|
+
const tagId = await getOrCreateTag(actualAdapter, tagName, trx);
|
|
78
|
+
await trx('t_constraint_tags').insert({
|
|
79
|
+
constraint_id: Number(constraintId),
|
|
80
|
+
tag_id: tagId
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Activity logging (replaces trigger)
|
|
85
|
+
await logConstraintAdd(trx, {
|
|
86
|
+
constraint_id: Number(constraintId),
|
|
87
|
+
category: params.category,
|
|
88
|
+
constraint_text: params.constraint_text,
|
|
89
|
+
priority: priorityStr,
|
|
90
|
+
layer: params.layer || null,
|
|
91
|
+
created_by: createdBy,
|
|
92
|
+
agent_id: agentId
|
|
93
|
+
});
|
|
94
|
+
return { constraintId: Number(constraintId) };
|
|
87
95
|
});
|
|
88
|
-
return {
|
|
96
|
+
return {
|
|
97
|
+
success: true,
|
|
98
|
+
constraint_id: result.constraintId,
|
|
99
|
+
};
|
|
89
100
|
});
|
|
90
|
-
return {
|
|
91
|
-
success: true,
|
|
92
|
-
constraint_id: result.constraintId,
|
|
93
|
-
};
|
|
94
101
|
}
|
|
95
102
|
catch (error) {
|
|
96
103
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -109,48 +116,53 @@ export async function getConstraints(params, adapter) {
|
|
|
109
116
|
const actualAdapter = adapter ?? getAdapter();
|
|
110
117
|
const knex = actualAdapter.getKnex();
|
|
111
118
|
try {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
119
|
+
return await connectionManager.executeWithRetry(async () => {
|
|
120
|
+
// Fail-fast project_id validation (Constraint #29)
|
|
121
|
+
const projectId = getProjectContext().getProjectId();
|
|
122
|
+
// Validate parameters
|
|
123
|
+
validateActionParams('constraint', 'get', params);
|
|
124
|
+
// Build query using v_tagged_constraints view (already filters active=1)
|
|
125
|
+
let query = knex('v_tagged_constraints')
|
|
126
|
+
.where('project_id', projectId);
|
|
127
|
+
// Filter by category
|
|
128
|
+
if (params.category) {
|
|
129
|
+
validateCategory(params.category);
|
|
130
|
+
query = query.where('category', params.category);
|
|
131
|
+
}
|
|
132
|
+
// Filter by layer
|
|
133
|
+
if (params.layer) {
|
|
134
|
+
query = query.where('layer', params.layer);
|
|
135
|
+
}
|
|
136
|
+
// Filter by priority
|
|
137
|
+
if (params.priority) {
|
|
138
|
+
query = query.where('priority', params.priority);
|
|
139
|
+
}
|
|
140
|
+
// Filter by m_tags (OR logic - match ANY tag)
|
|
141
|
+
if (params.tags && params.tags.length > 0) {
|
|
142
|
+
// Parse tags (handles both arrays and JSON strings from MCP)
|
|
143
|
+
const tags = parseStringArray(params.tags);
|
|
144
|
+
query = query.where((builder) => {
|
|
145
|
+
for (const tag of tags) {
|
|
146
|
+
builder.orWhere('tags', 'like', `%${tag}%`);
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
// Note: v_tagged_constraints view already orders by priority DESC, category, ts DESC
|
|
151
|
+
// Add limit if provided
|
|
152
|
+
const limit = params.limit || 50;
|
|
153
|
+
query = query.limit(limit);
|
|
154
|
+
// Execute query
|
|
155
|
+
const rows = await query.select('*');
|
|
156
|
+
// Parse m_tags from comma-separated to array for consistency
|
|
157
|
+
const constraints = rows.map(row => ({
|
|
158
|
+
...row,
|
|
159
|
+
tags: row.tags ? row.tags.split(',') : null,
|
|
160
|
+
}));
|
|
161
|
+
return {
|
|
162
|
+
constraints,
|
|
163
|
+
count: constraints.length,
|
|
164
|
+
};
|
|
165
|
+
});
|
|
154
166
|
}
|
|
155
167
|
catch (error) {
|
|
156
168
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -169,23 +181,27 @@ export async function deactivateConstraint(params, adapter) {
|
|
|
169
181
|
const actualAdapter = adapter ?? getAdapter();
|
|
170
182
|
const knex = actualAdapter.getKnex();
|
|
171
183
|
try {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
184
|
+
return await connectionManager.executeWithRetry(async () => {
|
|
185
|
+
// Fail-fast project_id validation (Constraint #29)
|
|
186
|
+
const projectId = getProjectContext().getProjectId();
|
|
187
|
+
// Validate parameters
|
|
188
|
+
validateActionParams('constraint', 'deactivate', params);
|
|
189
|
+
// Check if constraint exists in current project
|
|
190
|
+
const constraint = await knex('t_constraints')
|
|
191
|
+
.where({ id: params.constraint_id, project_id: projectId })
|
|
192
|
+
.select('id', 'active')
|
|
193
|
+
.first();
|
|
194
|
+
if (!constraint) {
|
|
195
|
+
throw new Error(`Constraint not found: ${params.constraint_id}`);
|
|
196
|
+
}
|
|
197
|
+
// Update constraint to inactive (idempotent) with project_id filter
|
|
198
|
+
await knex('t_constraints')
|
|
199
|
+
.where({ id: params.constraint_id, project_id: projectId })
|
|
200
|
+
.update({ active: SQLITE_FALSE });
|
|
201
|
+
return {
|
|
202
|
+
success: true,
|
|
203
|
+
};
|
|
204
|
+
});
|
|
189
205
|
}
|
|
190
206
|
catch (error) {
|
|
191
207
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -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,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"constraints.js","sourceRoot":"","sources":["../../src/tools/constraints.ts"],"names":[],"mappings":"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"}
|