sqlew 3.7.4 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +243 -1
- package/LICENSE +0 -0
- package/README.md +69 -0
- package/assets/config.example.toml +0 -0
- package/assets/kanban-style.png +0 -0
- package/assets/kanban-visualizer.png +0 -0
- package/assets/sample-agents/README.md +0 -0
- package/assets/sample-agents/sqlew-architect.md +0 -0
- package/assets/sample-agents/sqlew-researcher.md +0 -0
- package/assets/sample-agents/sqlew-scrum-master.md +4 -4
- package/assets/schema.sql +0 -0
- package/assets/sqlew-logo.png +0 -0
- package/dist/adapters/postgresql-adapter.d.ts +197 -5
- package/dist/adapters/postgresql-adapter.d.ts.map +1 -1
- package/dist/adapters/postgresql-adapter.js +300 -36
- package/dist/adapters/postgresql-adapter.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +8 -71
- package/dist/cli.js.map +1 -1
- package/dist/config/knex/bootstrap/20251025021416_seed_master_data.d.ts.map +1 -1
- package/dist/config/knex/bootstrap/20251025021416_seed_master_data.js +158 -45
- package/dist/config/knex/bootstrap/20251025021416_seed_master_data.js.map +1 -1
- package/dist/config/knex/bootstrap/20251025070349_create_views.d.ts.map +1 -1
- package/dist/config/knex/bootstrap/20251025070349_create_views.js +60 -8
- package/dist/config/knex/bootstrap/20251025070349_create_views.js.map +1 -1
- package/dist/config/knex/enhancements/20251025100000_seed_help_metadata.js +1 -1
- package/dist/config/knex/enhancements/20251025100100_seed_remaining_use_cases.js +5 -5
- package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.d.ts.map +1 -1
- package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.js +9 -1
- package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.js.map +1 -1
- package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.d.ts.map +1 -1
- package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.js +8 -1
- package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.js.map +1 -1
- package/dist/config/knex/enhancements/20251108000000_add_planning_layers_v3_8_0.d.ts +21 -0
- package/dist/config/knex/enhancements/20251108000000_add_planning_layers_v3_8_0.d.ts.map +1 -0
- package/dist/config/knex/enhancements/20251108000000_add_planning_layers_v3_8_0.js +73 -0
- package/dist/config/knex/enhancements/20251108000000_add_planning_layers_v3_8_0.js.map +1 -0
- package/dist/config/knex/enhancements/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.d.ts +19 -0
- package/dist/config/knex/enhancements/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.d.ts.map +1 -0
- package/dist/config/knex/enhancements/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.js +88 -0
- package/dist/config/knex/enhancements/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.js.map +1 -0
- package/dist/config/knex/enhancements/20251109000003_token_usage_cross_db_compat_v3_7_5.d.ts +24 -0
- package/dist/config/knex/enhancements/20251109000003_token_usage_cross_db_compat_v3_7_5.d.ts.map +1 -0
- package/dist/config/knex/enhancements/20251109000003_token_usage_cross_db_compat_v3_7_5.js +79 -0
- package/dist/config/knex/enhancements/20251109000003_token_usage_cross_db_compat_v3_7_5.js.map +1 -0
- package/dist/config/knex/enhancements/20251109010000_tool_cleanup_v3_8_0.d.ts +27 -0
- package/dist/config/knex/enhancements/20251109010000_tool_cleanup_v3_8_0.d.ts.map +1 -0
- package/dist/config/knex/enhancements/20251109010000_tool_cleanup_v3_8_0.js +347 -0
- package/dist/config/knex/enhancements/20251109010000_tool_cleanup_v3_8_0.js.map +1 -0
- package/dist/config/knex/enhancements/20251109020000_fix_missing_help_actions_v3_8_0.d.ts +30 -0
- package/dist/config/knex/enhancements/20251109020000_fix_missing_help_actions_v3_8_0.d.ts.map +1 -0
- package/dist/config/knex/enhancements/20251109020000_fix_missing_help_actions_v3_8_0.js +232 -0
- package/dist/config/knex/enhancements/20251109020000_fix_missing_help_actions_v3_8_0.js.map +1 -0
- package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.d.ts.map +1 -1
- package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.js +9 -0
- package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.js.map +1 -1
- package/dist/config/knex/upgrades/20251108000000_hotfix_v_tagged_constraints_project_id.d.ts +14 -0
- package/dist/config/knex/upgrades/20251108000000_hotfix_v_tagged_constraints_project_id.d.ts.map +1 -0
- package/dist/config/knex/upgrades/20251108000000_hotfix_v_tagged_constraints_project_id.js +97 -0
- package/dist/config/knex/upgrades/20251108000000_hotfix_v_tagged_constraints_project_id.js.map +1 -0
- package/dist/config/knex/upgrades/20251109000002_multi_project_cross_db_compat_v3_7_5.d.ts +24 -0
- package/dist/config/knex/upgrades/20251109000002_multi_project_cross_db_compat_v3_7_5.d.ts.map +1 -0
- package/dist/config/knex/upgrades/20251109000002_multi_project_cross_db_compat_v3_7_5.js +303 -0
- package/dist/config/knex/upgrades/20251109000002_multi_project_cross_db_compat_v3_7_5.js.map +1 -0
- package/dist/constants.d.ts +14 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +28 -1
- package/dist/constants.js.map +1 -1
- package/dist/database/config/adapter-factory.d.ts +13 -0
- package/dist/database/config/adapter-factory.d.ts.map +1 -0
- package/dist/database/config/adapter-factory.js +21 -0
- package/dist/database/config/adapter-factory.js.map +1 -0
- package/dist/database/config/config-ops.d.ts +34 -0
- package/dist/database/config/config-ops.d.ts.map +1 -0
- package/dist/database/config/config-ops.js +76 -0
- package/dist/database/config/config-ops.js.map +1 -0
- package/dist/database/index.d.ts +21 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +31 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/initialization/cleanup.d.ts +8 -0
- package/dist/database/initialization/cleanup.d.ts.map +1 -0
- package/dist/database/initialization/cleanup.js +17 -0
- package/dist/database/initialization/cleanup.js.map +1 -0
- package/dist/database/initialization/init.d.ts +21 -0
- package/dist/database/initialization/init.d.ts.map +1 -0
- package/dist/database/initialization/init.js +83 -0
- package/dist/database/initialization/init.js.map +1 -0
- package/dist/database/operations/deletes.d.ts +10 -0
- package/dist/database/operations/deletes.d.ts.map +1 -0
- package/dist/database/operations/deletes.js +14 -0
- package/dist/database/operations/deletes.js.map +1 -0
- package/dist/database/operations/inserts.d.ts +40 -0
- package/dist/database/operations/inserts.d.ts.map +1 -0
- package/dist/database/operations/inserts.js +202 -0
- package/dist/database/operations/inserts.js.map +1 -0
- package/dist/database/operations/queries.d.ts +57 -0
- package/dist/database/operations/queries.d.ts.map +1 -0
- package/dist/database/operations/queries.js +77 -0
- package/dist/database/operations/queries.js.map +1 -0
- package/dist/database/operations/updates.d.ts +10 -0
- package/dist/database/operations/updates.d.ts.map +1 -0
- package/dist/database/operations/updates.js +14 -0
- package/dist/database/operations/updates.js.map +1 -0
- package/dist/database/types.d.ts +5 -0
- package/dist/database/types.d.ts.map +1 -0
- package/dist/database/types.js +5 -0
- package/dist/database/types.js.map +1 -0
- package/dist/database.d.ts +4 -144
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +5 -461
- package/dist/database.js.map +1 -1
- package/dist/index.js +29 -777
- package/dist/index.js.map +1 -1
- package/dist/server/arg-parser.d.ts +40 -0
- package/dist/server/arg-parser.d.ts.map +1 -0
- package/dist/server/arg-parser.js +137 -0
- package/dist/server/arg-parser.js.map +1 -0
- package/dist/server/setup.d.ts +31 -0
- package/dist/server/setup.d.ts.map +1 -0
- package/dist/server/setup.js +186 -0
- package/dist/server/setup.js.map +1 -0
- package/dist/server/shutdown.d.ts +15 -0
- package/dist/server/shutdown.d.ts.map +1 -0
- package/dist/server/shutdown.js +42 -0
- package/dist/server/shutdown.js.map +1 -0
- package/dist/server/tool-handlers.d.ts +10 -0
- package/dist/server/tool-handlers.d.ts.map +1 -0
- package/dist/server/tool-handlers.js +478 -0
- package/dist/server/tool-handlers.js.map +1 -0
- package/dist/server/tool-registry.d.ts +11 -0
- package/dist/server/tool-registry.d.ts.map +1 -0
- package/dist/server/tool-registry.js +225 -0
- package/dist/server/tool-registry.js.map +1 -0
- package/dist/tests/all-features.test.js +6 -38
- package/dist/tests/all-features.test.js.map +1 -1
- package/dist/tests/batch-validation-comprehensive.test.d.ts +12 -0
- package/dist/tests/batch-validation-comprehensive.test.d.ts.map +1 -0
- package/dist/tests/batch-validation-comprehensive.test.js +472 -0
- package/dist/tests/batch-validation-comprehensive.test.js.map +1 -0
- package/dist/tests/batch-validation-integration.test.d.ts +6 -0
- package/dist/tests/batch-validation-integration.test.d.ts.map +1 -0
- package/dist/tests/batch-validation-integration.test.js +193 -0
- package/dist/tests/batch-validation-integration.test.js.map +1 -0
- package/dist/tests/batch-validation.test.d.ts +6 -0
- package/dist/tests/batch-validation.test.d.ts.map +1 -0
- package/dist/tests/batch-validation.test.js +298 -0
- package/dist/tests/batch-validation.test.js.map +1 -0
- package/dist/tests/context-modular.test.d.ts +7 -0
- package/dist/tests/context-modular.test.d.ts.map +1 -0
- package/dist/tests/context-modular.test.js +271 -0
- package/dist/tests/context-modular.test.js.map +1 -0
- package/dist/tests/decision-batch-validation.test.d.ts +6 -0
- package/dist/tests/decision-batch-validation.test.d.ts.map +1 -0
- package/dist/tests/decision-batch-validation.test.js +253 -0
- package/dist/tests/decision-batch-validation.test.js.map +1 -0
- package/dist/tests/help-system.test.js +1 -1
- package/dist/tests/help-system.test.js.map +1 -1
- package/dist/tests/multi-project.test.js +2 -2
- package/dist/tests/multi-project.test.js.map +1 -1
- package/dist/tests/parameter-validation.test.js +2 -16
- package/dist/tests/parameter-validation.test.js.map +1 -1
- package/dist/tests/tasks.auto-pruning-decision-link.test.js +1 -1
- package/dist/tests/tasks.auto-pruning-decision-link.test.js.map +1 -1
- package/dist/tests/tasks.file-actions-integration.test.d.ts +10 -0
- package/dist/tests/tasks.file-actions-integration.test.d.ts.map +1 -0
- package/dist/tests/tasks.file-actions-integration.test.js +162 -0
- package/dist/tests/tasks.file-actions-integration.test.js.map +1 -0
- package/dist/tests/tasks.file-actions-validation.test.d.ts +6 -0
- package/dist/tests/tasks.file-actions-validation.test.d.ts.map +1 -0
- package/dist/tests/tasks.file-actions-validation.test.js +221 -0
- package/dist/tests/tasks.file-actions-validation.test.js.map +1 -0
- package/dist/tools/constraints/actions/add.d.ts +15 -0
- package/dist/tools/constraints/actions/add.d.ts.map +1 -0
- package/dist/tools/constraints/actions/add.js +101 -0
- package/dist/tools/constraints/actions/add.js.map +1 -0
- package/dist/tools/constraints/actions/deactivate.d.ts +16 -0
- package/dist/tools/constraints/actions/deactivate.d.ts.map +1 -0
- package/dist/tools/constraints/actions/deactivate.js +49 -0
- package/dist/tools/constraints/actions/deactivate.js.map +1 -0
- package/dist/tools/constraints/actions/get.d.ts +16 -0
- package/dist/tools/constraints/actions/get.d.ts.map +1 -0
- package/dist/tools/constraints/actions/get.js +76 -0
- package/dist/tools/constraints/actions/get.js.map +1 -0
- package/dist/tools/constraints/help/example.d.ts +9 -0
- package/dist/tools/constraints/help/example.d.ts.map +1 -0
- package/dist/tools/constraints/help/example.js +144 -0
- package/dist/tools/constraints/help/example.js.map +1 -0
- package/dist/tools/constraints/help/help.d.ts +9 -0
- package/dist/tools/constraints/help/help.d.ts.map +1 -0
- package/dist/tools/constraints/help/help.js +31 -0
- package/dist/tools/constraints/help/help.js.map +1 -0
- package/dist/tools/constraints/index.d.ts +12 -0
- package/dist/tools/constraints/index.d.ts.map +1 -0
- package/dist/tools/constraints/index.js +13 -0
- package/dist/tools/constraints/index.js.map +1 -0
- package/dist/tools/constraints/internal/validation.d.ts +11 -0
- package/dist/tools/constraints/internal/validation.d.ts.map +1 -0
- package/dist/tools/constraints/internal/validation.js +17 -0
- package/dist/tools/constraints/internal/validation.js.map +1 -0
- package/dist/tools/constraints/types.d.ts +6 -0
- package/dist/tools/constraints/types.d.ts.map +1 -0
- package/dist/tools/constraints/types.js +6 -0
- package/dist/tools/constraints/types.js.map +1 -0
- package/dist/tools/context/actions/add-context.d.ts +14 -0
- package/dist/tools/context/actions/add-context.d.ts.map +1 -0
- package/dist/tools/context/actions/add-context.js +62 -0
- package/dist/tools/context/actions/add-context.js.map +1 -0
- package/dist/tools/context/actions/batch-set.d.ts +16 -0
- package/dist/tools/context/actions/batch-set.d.ts.map +1 -0
- package/dist/tools/context/actions/batch-set.js +126 -0
- package/dist/tools/context/actions/batch-set.js.map +1 -0
- package/dist/tools/context/actions/create-template.d.ts +15 -0
- package/dist/tools/context/actions/create-template.d.ts.map +1 -0
- package/dist/tools/context/actions/create-template.js +68 -0
- package/dist/tools/context/actions/create-template.js.map +1 -0
- package/dist/tools/context/actions/get.d.ts +18 -0
- package/dist/tools/context/actions/get.d.ts.map +1 -0
- package/dist/tools/context/actions/get.js +80 -0
- package/dist/tools/context/actions/get.js.map +1 -0
- package/dist/tools/context/actions/hard-delete.d.ts +18 -0
- package/dist/tools/context/actions/hard-delete.d.ts.map +1 -0
- package/dist/tools/context/actions/hard-delete.js +85 -0
- package/dist/tools/context/actions/hard-delete.js.map +1 -0
- package/dist/tools/context/actions/has-updates.d.ts +16 -0
- package/dist/tools/context/actions/has-updates.d.ts.map +1 -0
- package/dist/tools/context/actions/has-updates.js +83 -0
- package/dist/tools/context/actions/has-updates.js.map +1 -0
- package/dist/tools/context/actions/list-contexts.d.ts +14 -0
- package/dist/tools/context/actions/list-contexts.d.ts.map +1 -0
- package/dist/tools/context/actions/list-contexts.js +43 -0
- package/dist/tools/context/actions/list-contexts.js.map +1 -0
- package/dist/tools/context/actions/list-templates.d.ts +15 -0
- package/dist/tools/context/actions/list-templates.d.ts.map +1 -0
- package/dist/tools/context/actions/list-templates.js +47 -0
- package/dist/tools/context/actions/list-templates.js.map +1 -0
- package/dist/tools/context/actions/list.d.ts +16 -0
- package/dist/tools/context/actions/list.d.ts.map +1 -0
- package/dist/tools/context/actions/list.js +100 -0
- package/dist/tools/context/actions/list.js.map +1 -0
- package/dist/tools/context/actions/quick-set.d.ts +21 -0
- package/dist/tools/context/actions/quick-set.d.ts.map +1 -0
- package/dist/tools/context/actions/quick-set.js +104 -0
- package/dist/tools/context/actions/quick-set.js.map +1 -0
- package/dist/tools/context/actions/search-advanced.d.ts +15 -0
- package/dist/tools/context/actions/search-advanced.d.ts.map +1 -0
- package/dist/tools/context/actions/search-advanced.js +140 -0
- package/dist/tools/context/actions/search-advanced.js.map +1 -0
- package/dist/tools/context/actions/search-layer.d.ts +15 -0
- package/dist/tools/context/actions/search-layer.d.ts.map +1 -0
- package/dist/tools/context/actions/search-layer.js +106 -0
- package/dist/tools/context/actions/search-layer.js.map +1 -0
- package/dist/tools/context/actions/search-tags.d.ts +15 -0
- package/dist/tools/context/actions/search-tags.d.ts.map +1 -0
- package/dist/tools/context/actions/search-tags.js +85 -0
- package/dist/tools/context/actions/search-tags.js.map +1 -0
- package/dist/tools/context/actions/set-from-template.d.ts +16 -0
- package/dist/tools/context/actions/set-from-template.d.ts.map +1 -0
- package/dist/tools/context/actions/set-from-template.js +83 -0
- package/dist/tools/context/actions/set-from-template.js.map +1 -0
- package/dist/tools/context/actions/set.d.ts +16 -0
- package/dist/tools/context/actions/set.d.ts.map +1 -0
- package/dist/tools/context/actions/set.js +56 -0
- package/dist/tools/context/actions/set.js.map +1 -0
- package/dist/tools/context/actions/versions.d.ts +15 -0
- package/dist/tools/context/actions/versions.d.ts.map +1 -0
- package/dist/tools/context/actions/versions.js +69 -0
- package/dist/tools/context/actions/versions.js.map +1 -0
- package/dist/tools/context/help/example.d.ts +5 -0
- package/dist/tools/context/help/example.d.ts.map +1 -0
- package/dist/tools/context/help/example.js +96 -0
- package/dist/tools/context/help/example.js.map +1 -0
- package/dist/tools/context/help/help.d.ts +5 -0
- package/dist/tools/context/help/help.d.ts.map +1 -0
- package/dist/tools/context/help/help.js +65 -0
- package/dist/tools/context/help/help.js.map +1 -0
- package/dist/tools/context/index.d.ts +25 -0
- package/dist/tools/context/index.d.ts.map +1 -0
- package/dist/tools/context/index.js +26 -0
- package/dist/tools/context/index.js.map +1 -0
- package/dist/tools/context/internal/queries.d.ts +18 -0
- package/dist/tools/context/internal/queries.d.ts.map +1 -0
- package/dist/tools/context/internal/queries.js +160 -0
- package/dist/tools/context/internal/queries.js.map +1 -0
- package/dist/tools/context/internal/validation.d.ts +39 -0
- package/dist/tools/context/internal/validation.d.ts.map +1 -0
- package/dist/tools/context/internal/validation.js +125 -0
- package/dist/tools/context/internal/validation.js.map +1 -0
- package/dist/tools/context/types.d.ts +6 -0
- package/dist/tools/context/types.d.ts.map +1 -0
- package/dist/tools/context/types.js +6 -0
- package/dist/tools/context/types.js.map +1 -0
- package/dist/tools/example/actions/get.d.ts +14 -0
- package/dist/tools/example/actions/get.d.ts.map +1 -0
- package/dist/tools/example/actions/get.js +40 -0
- package/dist/tools/example/actions/get.js.map +1 -0
- package/dist/tools/example/actions/list-all.d.ts +13 -0
- package/dist/tools/example/actions/list-all.d.ts.map +1 -0
- package/dist/tools/example/actions/list-all.js +39 -0
- package/dist/tools/example/actions/list-all.js.map +1 -0
- package/dist/tools/example/actions/search.d.ts +14 -0
- package/dist/tools/example/actions/search.d.ts.map +1 -0
- package/dist/tools/example/actions/search.js +52 -0
- package/dist/tools/example/actions/search.js.map +1 -0
- package/dist/tools/example/help/example.d.ts +6 -0
- package/dist/tools/example/help/example.d.ts.map +1 -0
- package/dist/tools/example/help/example.js +69 -0
- package/dist/tools/example/help/example.js.map +1 -0
- package/dist/tools/example/help/help.d.ts +6 -0
- package/dist/tools/example/help/help.d.ts.map +1 -0
- package/dist/tools/example/help/help.js +133 -0
- package/dist/tools/example/help/help.js.map +1 -0
- package/dist/tools/example/index.d.ts +11 -0
- package/dist/tools/example/index.d.ts.map +1 -0
- package/dist/tools/example/index.js +12 -0
- package/dist/tools/example/index.js.map +1 -0
- package/dist/tools/example/types.d.ts +59 -0
- package/dist/tools/example/types.d.ts.map +1 -0
- package/dist/tools/example/types.js +6 -0
- package/dist/tools/example/types.js.map +1 -0
- package/dist/tools/files/actions/check-lock.d.ts +16 -0
- package/dist/tools/files/actions/check-lock.d.ts.map +1 -0
- package/dist/tools/files/actions/check-lock.js +70 -0
- package/dist/tools/files/actions/check-lock.js.map +1 -0
- package/dist/tools/files/actions/get.d.ts +16 -0
- package/dist/tools/files/actions/get.d.ts.map +1 -0
- package/dist/tools/files/actions/get.js +113 -0
- package/dist/tools/files/actions/get.js.map +1 -0
- package/dist/tools/files/actions/record-batch.d.ts +18 -0
- package/dist/tools/files/actions/record-batch.d.ts.map +1 -0
- package/dist/tools/files/actions/record-batch.js +114 -0
- package/dist/tools/files/actions/record-batch.js.map +1 -0
- package/dist/tools/files/actions/record.d.ts +16 -0
- package/dist/tools/files/actions/record.d.ts.map +1 -0
- package/dist/tools/files/actions/record.js +37 -0
- package/dist/tools/files/actions/record.js.map +1 -0
- package/dist/tools/files/actions/sqlite-flush.d.ts +27 -0
- package/dist/tools/files/actions/sqlite-flush.d.ts.map +1 -0
- package/dist/tools/files/actions/sqlite-flush.js +66 -0
- package/dist/tools/files/actions/sqlite-flush.js.map +1 -0
- package/dist/tools/files/help/example.d.ts +5 -0
- package/dist/tools/files/help/example.d.ts.map +1 -0
- package/dist/tools/files/help/example.js +98 -0
- package/dist/tools/files/help/example.js.map +1 -0
- package/dist/tools/files/help/help.d.ts +5 -0
- package/dist/tools/files/help/help.d.ts.map +1 -0
- package/dist/tools/files/help/help.js +29 -0
- package/dist/tools/files/help/help.js.map +1 -0
- package/dist/tools/files/index.d.ts +14 -0
- package/dist/tools/files/index.d.ts.map +1 -0
- package/dist/tools/files/index.js +15 -0
- package/dist/tools/files/index.js.map +1 -0
- package/dist/tools/files/internal/queries.d.ts +18 -0
- package/dist/tools/files/internal/queries.d.ts.map +1 -0
- package/dist/tools/files/internal/queries.js +63 -0
- package/dist/tools/files/internal/queries.js.map +1 -0
- package/dist/tools/files/internal/validation.d.ts +18 -0
- package/dist/tools/files/internal/validation.d.ts.map +1 -0
- package/dist/tools/files/internal/validation.js +40 -0
- package/dist/tools/files/internal/validation.js.map +1 -0
- package/dist/tools/files/types.d.ts +6 -0
- package/dist/tools/files/types.d.ts.map +1 -0
- package/dist/tools/files/types.js +6 -0
- package/dist/tools/files/types.js.map +1 -0
- package/dist/tools/help/actions/batch-guide.d.ts +14 -0
- package/dist/tools/help/actions/batch-guide.d.ts.map +1 -0
- package/dist/tools/help/actions/batch-guide.js +59 -0
- package/dist/tools/help/actions/batch-guide.js.map +1 -0
- package/dist/tools/help/actions/error-recovery.d.ts +12 -0
- package/dist/tools/help/actions/error-recovery.d.ts.map +1 -0
- package/dist/tools/help/actions/error-recovery.js +107 -0
- package/dist/tools/help/actions/error-recovery.js.map +1 -0
- package/dist/tools/help/actions/query-action.d.ts +15 -0
- package/dist/tools/help/actions/query-action.d.ts.map +1 -0
- package/dist/tools/help/actions/query-action.js +15 -0
- package/dist/tools/help/actions/query-action.js.map +1 -0
- package/dist/tools/help/actions/query-params.d.ts +15 -0
- package/dist/tools/help/actions/query-params.d.ts.map +1 -0
- package/dist/tools/help/actions/query-params.js +15 -0
- package/dist/tools/help/actions/query-params.js.map +1 -0
- package/dist/tools/help/actions/query-tool.d.ts +15 -0
- package/dist/tools/help/actions/query-tool.d.ts.map +1 -0
- package/dist/tools/help/actions/query-tool.js +15 -0
- package/dist/tools/help/actions/query-tool.js.map +1 -0
- package/dist/tools/help/actions/workflow-hints.d.ts +14 -0
- package/dist/tools/help/actions/workflow-hints.d.ts.map +1 -0
- package/dist/tools/help/actions/workflow-hints.js +15 -0
- package/dist/tools/help/actions/workflow-hints.js.map +1 -0
- package/dist/tools/help/help/example.d.ts +6 -0
- package/dist/tools/help/help/example.d.ts.map +1 -0
- package/dist/tools/help/help/example.js +70 -0
- package/dist/tools/help/help/example.js.map +1 -0
- package/dist/tools/help/help/help.d.ts +6 -0
- package/dist/tools/help/help/help.d.ts.map +1 -0
- package/dist/tools/help/help/help.js +67 -0
- package/dist/tools/help/help/help.js.map +1 -0
- package/dist/tools/help/index.d.ts +14 -0
- package/dist/tools/help/index.d.ts.map +1 -0
- package/dist/tools/help/index.js +15 -0
- package/dist/tools/help/index.js.map +1 -0
- package/dist/tools/help/types.d.ts +92 -0
- package/dist/tools/help/types.d.ts.map +1 -0
- package/dist/tools/help/types.js +6 -0
- package/dist/tools/help/types.js.map +1 -0
- package/dist/tools/help-queries.d.ts.map +1 -1
- package/dist/tools/help-queries.js +1 -0
- package/dist/tools/help-queries.js.map +1 -1
- package/dist/tools/tasks/actions/add-dependency.d.ts +12 -0
- package/dist/tools/tasks/actions/add-dependency.d.ts.map +1 -0
- package/dist/tools/tasks/actions/add-dependency.js +124 -0
- package/dist/tools/tasks/actions/add-dependency.js.map +1 -0
- package/dist/tools/tasks/actions/archive.d.ts +11 -0
- package/dist/tools/tasks/actions/archive.d.ts.map +1 -0
- package/dist/tools/tasks/actions/archive.js +67 -0
- package/dist/tools/tasks/actions/archive.js.map +1 -0
- package/dist/tools/tasks/actions/create-batch.d.ts +19 -0
- package/dist/tools/tasks/actions/create-batch.d.ts.map +1 -0
- package/dist/tools/tasks/actions/create-batch.js +103 -0
- package/dist/tools/tasks/actions/create-batch.js.map +1 -0
- package/dist/tools/tasks/actions/create.d.ts +16 -0
- package/dist/tools/tasks/actions/create.d.ts.map +1 -0
- package/dist/tools/tasks/actions/create.js +180 -0
- package/dist/tools/tasks/actions/create.js.map +1 -0
- package/dist/tools/tasks/actions/get-dependencies.d.ts +12 -0
- package/dist/tools/tasks/actions/get-dependencies.d.ts.map +1 -0
- package/dist/tools/tasks/actions/get-dependencies.js +41 -0
- package/dist/tools/tasks/actions/get-dependencies.js.map +1 -0
- package/dist/tools/tasks/actions/get-pruned-files.d.ts +13 -0
- package/dist/tools/tasks/actions/get-pruned-files.d.ts.map +1 -0
- package/dist/tools/tasks/actions/get-pruned-files.js +45 -0
- package/dist/tools/tasks/actions/get-pruned-files.js.map +1 -0
- package/dist/tools/tasks/actions/get.d.ts +12 -0
- package/dist/tools/tasks/actions/get.d.ts.map +1 -0
- package/dist/tools/tasks/actions/get.js +88 -0
- package/dist/tools/tasks/actions/get.js.map +1 -0
- package/dist/tools/tasks/actions/link-pruned-file.d.ts +13 -0
- package/dist/tools/tasks/actions/link-pruned-file.d.ts.map +1 -0
- package/dist/tools/tasks/actions/link-pruned-file.js +63 -0
- package/dist/tools/tasks/actions/link-pruned-file.js.map +1 -0
- package/dist/tools/tasks/actions/link.d.ts +14 -0
- package/dist/tools/tasks/actions/link.d.ts.map +1 -0
- package/dist/tools/tasks/actions/link.js +118 -0
- package/dist/tools/tasks/actions/link.js.map +1 -0
- package/dist/tools/tasks/actions/list.d.ts +17 -0
- package/dist/tools/tasks/actions/list.d.ts.map +1 -0
- package/dist/tools/tasks/actions/list.js +98 -0
- package/dist/tools/tasks/actions/list.js.map +1 -0
- package/dist/tools/tasks/actions/move.d.ts +12 -0
- package/dist/tools/tasks/actions/move.d.ts.map +1 -0
- package/dist/tools/tasks/actions/move.js +91 -0
- package/dist/tools/tasks/actions/move.js.map +1 -0
- package/dist/tools/tasks/actions/remove-dependency.d.ts +12 -0
- package/dist/tools/tasks/actions/remove-dependency.d.ts.map +1 -0
- package/dist/tools/tasks/actions/remove-dependency.js +36 -0
- package/dist/tools/tasks/actions/remove-dependency.js.map +1 -0
- package/dist/tools/tasks/actions/update.d.ts +10 -0
- package/dist/tools/tasks/actions/update.d.ts.map +1 -0
- package/dist/tools/tasks/actions/update.js +186 -0
- package/dist/tools/tasks/actions/update.js.map +1 -0
- package/dist/tools/tasks/actions/watch-files.d.ts +14 -0
- package/dist/tools/tasks/actions/watch-files.d.ts.map +1 -0
- package/dist/tools/tasks/actions/watch-files.js +127 -0
- package/dist/tools/tasks/actions/watch-files.js.map +1 -0
- package/dist/tools/tasks/help/example.d.ts +8 -0
- package/dist/tools/tasks/help/example.d.ts.map +1 -0
- package/dist/tools/tasks/help/example.js +215 -0
- package/dist/tools/tasks/help/example.js.map +1 -0
- package/dist/tools/tasks/help/help.d.ts +8 -0
- package/dist/tools/tasks/help/help.d.ts.map +1 -0
- package/dist/tools/tasks/help/help.js +293 -0
- package/dist/tools/tasks/help/help.js.map +1 -0
- package/dist/tools/tasks/help/use-case.d.ts +11 -0
- package/dist/tools/tasks/help/use-case.d.ts.map +1 -0
- package/dist/tools/tasks/help/use-case.js +768 -0
- package/dist/tools/tasks/help/use-case.js.map +1 -0
- package/dist/tools/tasks/index.d.ts +28 -0
- package/dist/tools/tasks/index.d.ts.map +1 -0
- package/dist/tools/tasks/index.js +33 -0
- package/dist/tools/tasks/index.js.map +1 -0
- package/dist/tools/tasks/internal/state-machine.d.ts +16 -0
- package/dist/tools/tasks/internal/state-machine.d.ts.map +1 -0
- package/dist/tools/tasks/internal/state-machine.js +36 -0
- package/dist/tools/tasks/internal/state-machine.js.map +1 -0
- package/dist/tools/tasks/internal/task-queries.d.ts +12 -0
- package/dist/tools/tasks/internal/task-queries.d.ts.map +1 -0
- package/dist/tools/tasks/internal/task-queries.js +61 -0
- package/dist/tools/tasks/internal/task-queries.js.map +1 -0
- package/dist/tools/tasks/internal/validation.d.ts +47 -0
- package/dist/tools/tasks/internal/validation.d.ts.map +1 -0
- package/dist/tools/tasks/internal/validation.js +261 -0
- package/dist/tools/tasks/internal/validation.js.map +1 -0
- package/dist/tools/tasks/types.d.ts +68 -0
- package/dist/tools/tasks/types.d.ts.map +1 -0
- package/dist/tools/tasks/types.js +45 -0
- package/dist/tools/tasks/types.js.map +1 -0
- package/dist/tools/tasks/watcher/status.d.ts +9 -0
- package/dist/tools/tasks/watcher/status.d.ts.map +1 -0
- package/dist/tools/tasks/watcher/status.js +126 -0
- package/dist/tools/tasks/watcher/status.js.map +1 -0
- package/dist/tools/tasks.d.ts +12 -148
- package/dist/tools/tasks.d.ts.map +1 -1
- package/dist/tools/tasks.js +12 -2037
- package/dist/tools/tasks.js.map +1 -1
- package/dist/tools/use_case/actions/get.d.ts +14 -0
- package/dist/tools/use_case/actions/get.d.ts.map +1 -0
- package/dist/tools/use_case/actions/get.js +15 -0
- package/dist/tools/use_case/actions/get.js.map +1 -0
- package/dist/tools/use_case/actions/list-all.d.ts +15 -0
- package/dist/tools/use_case/actions/list-all.d.ts.map +1 -0
- package/dist/tools/use_case/actions/list-all.js +20 -0
- package/dist/tools/use_case/actions/list-all.js.map +1 -0
- package/dist/tools/use_case/actions/search.d.ts +14 -0
- package/dist/tools/use_case/actions/search.d.ts.map +1 -0
- package/dist/tools/use_case/actions/search.js +87 -0
- package/dist/tools/use_case/actions/search.js.map +1 -0
- package/dist/tools/use_case/help/example.d.ts +105 -0
- package/dist/tools/use_case/help/example.d.ts.map +1 -0
- package/dist/tools/use_case/help/example.js +138 -0
- package/dist/tools/use_case/help/example.js.map +1 -0
- package/dist/tools/use_case/help/help.d.ts +33 -0
- package/dist/tools/use_case/help/help.d.ts.map +1 -0
- package/dist/tools/use_case/help/help.js +109 -0
- package/dist/tools/use_case/help/help.js.map +1 -0
- package/dist/tools/use_case/index.d.ts +11 -0
- package/dist/tools/use_case/index.d.ts.map +1 -0
- package/dist/tools/use_case/index.js +12 -0
- package/dist/tools/use_case/index.js.map +1 -0
- package/dist/tools/use_case/types.d.ts +58 -0
- package/dist/tools/use_case/types.d.ts.map +1 -0
- package/dist/tools/use_case/types.js +6 -0
- package/dist/tools/use_case/types.js.map +1 -0
- package/dist/types/actions.d.ts +37 -0
- package/dist/types/actions.d.ts.map +1 -0
- package/dist/types/actions.js +6 -0
- package/dist/types/actions.js.map +1 -0
- package/dist/types/constraint/params.d.ts +2 -0
- package/dist/types/constraint/params.d.ts.map +1 -0
- package/dist/types/constraint/params.js +2 -0
- package/dist/types/constraint/params.js.map +1 -0
- package/dist/types/constraint/responses.d.ts +2 -0
- package/dist/types/constraint/responses.d.ts.map +1 -0
- package/dist/types/constraint/responses.js +2 -0
- package/dist/types/constraint/responses.js.map +1 -0
- package/dist/types/decision/batch.d.ts +24 -0
- package/dist/types/decision/batch.d.ts.map +1 -0
- package/dist/types/decision/batch.js +5 -0
- package/dist/types/decision/batch.js.map +1 -0
- package/dist/types/decision/params.d.ts +73 -0
- package/dist/types/decision/params.d.ts.map +1 -0
- package/dist/types/decision/params.js +5 -0
- package/dist/types/decision/params.js.map +1 -0
- package/dist/types/decision/responses.d.ts +79 -0
- package/dist/types/decision/responses.d.ts.map +1 -0
- package/dist/types/decision/responses.js +5 -0
- package/dist/types/decision/responses.js.map +1 -0
- package/dist/types/decision/templates.d.ts +74 -0
- package/dist/types/decision/templates.d.ts.map +1 -0
- package/dist/types/decision/templates.js +5 -0
- package/dist/types/decision/templates.js.map +1 -0
- package/dist/types/enums.d.ts +43 -0
- package/dist/types/enums.d.ts.map +1 -0
- package/dist/types/enums.js +47 -0
- package/dist/types/enums.js.map +1 -0
- package/dist/types/file/params.d.ts +40 -0
- package/dist/types/file/params.d.ts.map +1 -0
- package/dist/types/file/params.js +6 -0
- package/dist/types/file/params.js.map +1 -0
- package/dist/types/file/responses.d.ts +2 -0
- package/dist/types/file/responses.d.ts.map +1 -0
- package/dist/types/file/responses.js +2 -0
- package/dist/types/file/responses.js.map +1 -0
- package/dist/types/import-export.d.ts +126 -0
- package/dist/types/import-export.d.ts.map +1 -0
- package/dist/types/import-export.js +6 -0
- package/dist/types/import-export.js.map +1 -0
- package/dist/types/index.d.ts +25 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +35 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/master-entities.d.ts +33 -0
- package/dist/types/master-entities.d.ts.map +1 -0
- package/dist/types/master-entities.js +6 -0
- package/dist/types/master-entities.js.map +1 -0
- package/dist/types/task/params.d.ts +172 -0
- package/dist/types/task/params.d.ts.map +1 -0
- package/dist/types/task/params.js +8 -0
- package/dist/types/task/params.js.map +1 -0
- package/dist/types/task/responses.d.ts +334 -0
- package/dist/types/task/responses.d.ts.map +1 -0
- package/dist/types/task/responses.js +8 -0
- package/dist/types/task/responses.js.map +1 -0
- package/dist/types/transaction-entities.d.ts +89 -0
- package/dist/types/transaction-entities.d.ts.map +1 -0
- package/dist/types/transaction-entities.js +5 -0
- package/dist/types/transaction-entities.js.map +1 -0
- package/dist/types/validation.d.ts +44 -0
- package/dist/types/validation.d.ts.map +1 -0
- package/dist/types/validation.js +6 -0
- package/dist/types/validation.js.map +1 -0
- package/dist/types/view-entities.d.ts +61 -0
- package/dist/types/view-entities.d.ts.map +1 -0
- package/dist/types/view-entities.js +5 -0
- package/dist/types/view-entities.js.map +1 -0
- package/dist/types.d.ts +12 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/action-specs/config-specs.d.ts +10 -0
- package/dist/utils/action-specs/config-specs.d.ts.map +1 -0
- package/dist/utils/action-specs/config-specs.js +12 -0
- package/dist/utils/action-specs/config-specs.js.map +1 -0
- package/dist/utils/action-specs/constraint-specs.d.ts +9 -0
- package/dist/utils/action-specs/constraint-specs.d.ts.map +1 -0
- package/dist/utils/action-specs/constraint-specs.js +42 -0
- package/dist/utils/action-specs/constraint-specs.js.map +1 -0
- package/dist/utils/action-specs/decision-specs.d.ts +9 -0
- package/dist/utils/action-specs/decision-specs.d.ts.map +1 -0
- package/dist/utils/action-specs/decision-specs.js +194 -0
- package/dist/utils/action-specs/decision-specs.js.map +1 -0
- package/dist/utils/action-specs/file-specs.d.ts +9 -0
- package/dist/utils/action-specs/file-specs.d.ts.map +1 -0
- package/dist/utils/action-specs/file-specs.js +56 -0
- package/dist/utils/action-specs/file-specs.js.map +1 -0
- package/dist/utils/action-specs/index.d.ts +38 -0
- package/dist/utils/action-specs/index.d.ts.map +1 -0
- package/dist/utils/action-specs/index.js +63 -0
- package/dist/utils/action-specs/index.js.map +1 -0
- package/dist/utils/action-specs/task-specs.d.ts +9 -0
- package/dist/utils/action-specs/task-specs.d.ts.map +1 -0
- package/dist/utils/action-specs/task-specs.js +143 -0
- package/dist/utils/action-specs/task-specs.js.map +1 -0
- package/dist/utils/action-specs/types.d.ts +14 -0
- package/dist/utils/action-specs/types.d.ts.map +1 -0
- package/dist/utils/action-specs/types.js +9 -0
- package/dist/utils/action-specs/types.js.map +1 -0
- package/dist/utils/batch-validation.d.ts +156 -0
- package/dist/utils/batch-validation.d.ts.map +1 -0
- package/dist/utils/batch-validation.example.d.ts +48 -0
- package/dist/utils/batch-validation.example.d.ts.map +1 -0
- package/dist/utils/batch-validation.example.js +180 -0
- package/dist/utils/batch-validation.example.js.map +1 -0
- package/dist/utils/batch-validation.js +345 -0
- package/dist/utils/batch-validation.js.map +1 -0
- package/dist/utils/levenshtein.d.ts +18 -0
- package/dist/utils/levenshtein.d.ts.map +1 -0
- package/dist/utils/levenshtein.js +46 -0
- package/dist/utils/levenshtein.js.map +1 -0
- package/dist/utils/parameter-validator.d.ts +3 -3
- package/dist/utils/parameter-validator.d.ts.map +1 -1
- package/dist/utils/parameter-validator.js +3 -39
- package/dist/utils/parameter-validator.js.map +1 -1
- package/dist/utils/sql-dump/core/dependency-sort.d.ts +16 -0
- package/dist/utils/sql-dump/core/dependency-sort.d.ts.map +1 -0
- package/dist/utils/sql-dump/core/dependency-sort.js +105 -0
- package/dist/utils/sql-dump/core/dependency-sort.js.map +1 -0
- package/dist/utils/sql-dump/core/generate-dump.d.ts +13 -0
- package/dist/utils/sql-dump/core/generate-dump.d.ts.map +1 -0
- package/dist/utils/sql-dump/core/generate-dump.js +181 -0
- package/dist/utils/sql-dump/core/generate-dump.js.map +1 -0
- package/dist/utils/sql-dump/core/index-export.d.ts +9 -0
- package/dist/utils/sql-dump/core/index-export.d.ts.map +1 -0
- package/dist/utils/sql-dump/core/index-export.js +173 -0
- package/dist/utils/sql-dump/core/index-export.js.map +1 -0
- package/dist/utils/sql-dump/core/sequence-reset.d.ts +6 -0
- package/dist/utils/sql-dump/core/sequence-reset.d.ts.map +1 -0
- package/dist/utils/sql-dump/core/sequence-reset.js +28 -0
- package/dist/utils/sql-dump/core/sequence-reset.js.map +1 -0
- package/dist/utils/sql-dump/core/table-export.d.ts +2 -0
- package/dist/utils/sql-dump/core/table-export.d.ts.map +1 -0
- package/dist/utils/sql-dump/core/table-export.js +4 -0
- package/dist/utils/sql-dump/core/table-export.js.map +1 -0
- package/dist/utils/sql-dump/core/view-export.d.ts +2 -0
- package/dist/utils/sql-dump/core/view-export.d.ts.map +1 -0
- package/dist/utils/sql-dump/core/view-export.js +4 -0
- package/dist/utils/sql-dump/core/view-export.js.map +1 -0
- package/dist/utils/sql-dump/formatters/bulk-insert.d.ts +14 -0
- package/dist/utils/sql-dump/formatters/bulk-insert.d.ts.map +1 -0
- package/dist/utils/sql-dump/formatters/bulk-insert.js +177 -0
- package/dist/utils/sql-dump/formatters/bulk-insert.js.map +1 -0
- package/dist/utils/sql-dump/formatters/identifiers.d.ts +6 -0
- package/dist/utils/sql-dump/formatters/identifiers.d.ts.map +1 -0
- package/dist/utils/sql-dump/formatters/identifiers.js +16 -0
- package/dist/utils/sql-dump/formatters/identifiers.js.map +1 -0
- package/dist/utils/sql-dump/formatters/value-formatter.d.ts +14 -0
- package/dist/utils/sql-dump/formatters/value-formatter.d.ts.map +1 -0
- package/dist/utils/sql-dump/formatters/value-formatter.js +281 -0
- package/dist/utils/sql-dump/formatters/value-formatter.js.map +1 -0
- package/dist/utils/sql-dump/generators/controls.d.ts +10 -0
- package/dist/utils/sql-dump/generators/controls.d.ts.map +1 -0
- package/dist/utils/sql-dump/generators/controls.js +36 -0
- package/dist/utils/sql-dump/generators/controls.js.map +1 -0
- package/dist/utils/sql-dump/generators/headers.d.ts +6 -0
- package/dist/utils/sql-dump/generators/headers.d.ts.map +1 -0
- package/dist/utils/sql-dump/generators/headers.js +19 -0
- package/dist/utils/sql-dump/generators/headers.js.map +1 -0
- package/dist/utils/sql-dump/index.d.ts +14 -0
- package/dist/utils/sql-dump/index.d.ts.map +1 -0
- package/dist/utils/sql-dump/index.js +16 -0
- package/dist/utils/sql-dump/index.js.map +1 -0
- package/dist/utils/sql-dump/schema/indexes.d.ts +6 -0
- package/dist/utils/sql-dump/schema/indexes.d.ts.map +1 -0
- package/dist/utils/sql-dump/schema/indexes.js +42 -0
- package/dist/utils/sql-dump/schema/indexes.js.map +1 -0
- package/dist/utils/sql-dump/schema/primary-keys.d.ts +6 -0
- package/dist/utils/sql-dump/schema/primary-keys.d.ts.map +1 -0
- package/dist/utils/sql-dump/schema/primary-keys.js +41 -0
- package/dist/utils/sql-dump/schema/primary-keys.js.map +1 -0
- package/dist/utils/sql-dump/schema/tables.d.ts +12 -0
- package/dist/utils/sql-dump/schema/tables.d.ts.map +1 -0
- package/dist/utils/sql-dump/schema/tables.js +370 -0
- package/dist/utils/sql-dump/schema/tables.js.map +1 -0
- package/dist/utils/sql-dump/schema/views.d.ts +11 -0
- package/dist/utils/sql-dump/schema/views.d.ts.map +1 -0
- package/dist/utils/sql-dump/schema/views.js +110 -0
- package/dist/utils/sql-dump/schema/views.js.map +1 -0
- package/dist/utils/sql-dump/types.d.ts +10 -0
- package/dist/utils/sql-dump/types.d.ts.map +1 -0
- package/dist/utils/sql-dump/types.js +3 -0
- package/dist/utils/sql-dump/types.js.map +1 -0
- package/docs/ACCEPTANCE_CRITERIA.md +0 -0
- package/docs/AI_AGENT_GUIDE.md +2 -2
- package/docs/ARCHITECTURE.md +0 -0
- package/docs/AUTO_FILE_TRACKING.md +0 -0
- package/docs/BATCH_VALIDATION.md +617 -0
- package/docs/BEST_PRACTICES.md +0 -0
- package/docs/CONFIGURATION.md +0 -0
- package/docs/DATABASE_AUTH.md +0 -0
- package/docs/DECISION_CONTEXT.md +0 -0
- package/docs/DECISION_TO_TASK_MIGRATION_GUIDE.md +2 -2
- package/docs/GIT_AWARE_AUTO_COMPLETE.md +0 -0
- package/docs/SHARED_CONCEPTS.md +2 -2
- package/docs/SPECIALIZED_AGENTS.md +1 -1
- package/docs/TASK_ACTIONS.md +7 -7
- package/docs/TASK_DEPENDENCIES.md +0 -0
- package/docs/TASK_LINKING.md +0 -0
- package/docs/TASK_MIGRATION.md +5 -5
- package/docs/TASK_OVERVIEW.md +0 -0
- package/docs/TASK_PRUNING.md +0 -0
- package/docs/TASK_SYSTEM.md +5 -5
- package/docs/TOOL_REFERENCE.md +1 -1
- package/docs/TOOL_SELECTION.md +0 -0
- package/docs/WORKFLOWS.md +1 -1
- package/docs/cli/DATABASE_MIGRATION.md +0 -0
- package/docs/cli/DATA_EXPORT_IMPORT.md +400 -400
- package/docs/cli/README.md +227 -227
- package/package.json +5 -3
- package/dist/tools/config.d.ts +0 -58
- package/dist/tools/config.d.ts.map +0 -1
- package/dist/tools/config.js +0 -281
- package/dist/tools/config.js.map +0 -1
- package/dist/tools/constraints.d.ts +0 -49
- package/dist/tools/constraints.d.ts.map +0 -1
- package/dist/tools/constraints.js +0 -378
- package/dist/tools/constraints.js.map +0 -1
- package/dist/tools/context.d.ts +0 -208
- package/dist/tools/context.d.ts.map +0 -1
- package/dist/tools/context.js +0 -1661
- package/dist/tools/context.js.map +0 -1
- package/dist/tools/files.d.ts +0 -54
- package/dist/tools/files.d.ts.map +0 -1
- package/dist/tools/files.js +0 -478
- package/dist/tools/files.js.map +0 -1
- package/dist/tools/messaging.d.ts +0 -71
- package/dist/tools/messaging.d.ts.map +0 -1
- package/dist/tools/messaging.js +0 -483
- package/dist/tools/messaging.js.map +0 -1
- package/dist/tools/utils.d.ts +0 -70
- package/dist/tools/utils.d.ts.map +0 -1
- package/dist/tools/utils.js +0 -483
- package/dist/tools/utils.js.map +0 -1
- package/dist/utils/action-specs.d.ts +0 -46
- package/dist/utils/action-specs.d.ts.map +0 -1
- package/dist/utils/action-specs.js +0 -527
- package/dist/utils/action-specs.js.map +0 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database update operations module
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Update agent activity timestamp
|
|
6
|
+
*/
|
|
7
|
+
export async function updateAgentActivity(adapter, agentId, trx) {
|
|
8
|
+
const knex = trx || adapter.getKnex();
|
|
9
|
+
const now = Math.floor(Date.now() / 1000);
|
|
10
|
+
await knex('m_agents')
|
|
11
|
+
.where({ id: agentId })
|
|
12
|
+
.update({ last_active_ts: now });
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=updates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updates.js","sourceRoot":"","sources":["../../../src/database/operations/updates.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAwB,EACxB,OAAe,EACf,GAAsB;IAEtB,MAAM,IAAI,GAAG,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAE1C,MAAM,IAAI,CAAC,UAAU,CAAC;SACnB,KAAK,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;SACtB,MAAM,CAAC,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/database/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
package/dist/database.d.ts
CHANGED
|
@@ -1,150 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Database connection and initialization module
|
|
3
|
-
* Handles database setup with Knex.js and DatabaseAdapter pattern
|
|
4
|
-
*/
|
|
5
|
-
import { Knex } from 'knex';
|
|
6
|
-
import type { DatabaseAdapter } from './adapters/index.js';
|
|
7
|
-
/**
|
|
8
|
-
* Initialize database with adapter pattern
|
|
9
|
-
*/
|
|
10
|
-
export declare function initializeDatabase(config?: {
|
|
11
|
-
databaseType?: 'sqlite' | 'postgresql' | 'mysql';
|
|
12
|
-
connection?: any;
|
|
13
|
-
configPath?: string;
|
|
14
|
-
}): Promise<DatabaseAdapter>;
|
|
15
|
-
/**
|
|
16
|
-
* Get current database adapter
|
|
17
|
-
*/
|
|
18
|
-
export declare function getAdapter(): DatabaseAdapter;
|
|
19
|
-
/**
|
|
20
|
-
* Close database connection
|
|
21
|
-
*/
|
|
22
|
-
export declare function closeDatabase(): Promise<void>;
|
|
23
|
-
/**
|
|
24
|
-
* Get or create agent by name (simplified registry pattern)
|
|
25
|
-
*
|
|
26
|
-
* Creates a simple registry of agent names for attribution purposes.
|
|
27
|
-
* No pooling, no reuse logic - each unique name gets exactly one record.
|
|
28
|
-
*
|
|
29
|
-
* - Empty/whitespace names: Generate unique generic-N name
|
|
30
|
-
* - Named agents: Use exact name provided
|
|
31
|
-
*/
|
|
32
|
-
export declare function getOrCreateAgent(adapter: DatabaseAdapter, name: string, trx?: Knex.Transaction): Promise<number>;
|
|
33
|
-
/**
|
|
34
|
-
* Update agent activity timestamp
|
|
35
|
-
*/
|
|
36
|
-
export declare function updateAgentActivity(adapter: DatabaseAdapter, agentId: number, trx?: Knex.Transaction): Promise<void>;
|
|
37
|
-
/**
|
|
38
|
-
* Get or create context key by name
|
|
39
|
-
*/
|
|
40
|
-
export declare function getOrCreateContextKey(adapter: DatabaseAdapter, key: string, trx?: Knex.Transaction): Promise<number>;
|
|
41
|
-
/**
|
|
42
|
-
* Get or create file by path
|
|
43
|
-
*/
|
|
44
|
-
export declare function getOrCreateFile(adapter: DatabaseAdapter, projectId: number, path: string, trx?: Knex.Transaction): Promise<number>;
|
|
45
|
-
/**
|
|
46
|
-
* Get or create tag by name
|
|
47
|
-
*/
|
|
48
|
-
export declare function getOrCreateTag(adapter: DatabaseAdapter, projectId: number, name: string, trx?: Knex.Transaction): Promise<number>;
|
|
49
|
-
/**
|
|
50
|
-
* Get or create scope by name
|
|
51
|
-
*/
|
|
52
|
-
export declare function getOrCreateScope(adapter: DatabaseAdapter, projectId: number, name: string, trx?: Knex.Transaction): Promise<number>;
|
|
53
|
-
/**
|
|
54
|
-
* Get or create category ID
|
|
55
|
-
*/
|
|
56
|
-
export declare function getOrCreateCategoryId(adapter: DatabaseAdapter, category: string, trx?: Knex.Transaction): Promise<number>;
|
|
57
|
-
/**
|
|
58
|
-
* Get layer ID by name
|
|
59
|
-
*/
|
|
60
|
-
export declare function getLayerId(adapter: DatabaseAdapter, name: string, trx?: Knex.Transaction): Promise<number | null>;
|
|
61
|
-
/**
|
|
62
|
-
* Get constraint category ID by name
|
|
63
|
-
*/
|
|
64
|
-
export declare function getCategoryId(adapter: DatabaseAdapter, name: string, trx?: Knex.Transaction): Promise<number | null>;
|
|
65
|
-
/**
|
|
66
|
-
* Get configuration value from m_config table with per-project inheritance
|
|
67
3
|
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
* 2. Global config (project_id = NULL)
|
|
4
|
+
* DEPRECATED: This file is maintained for backward compatibility.
|
|
5
|
+
* New code should import from './database/index.js' instead.
|
|
71
6
|
*
|
|
72
|
-
*
|
|
73
|
-
* @param key - Config key
|
|
74
|
-
* @param projectId - Optional project ID (if not provided, only checks global config)
|
|
75
|
-
* @returns Config value or null if not found
|
|
76
|
-
*/
|
|
77
|
-
export declare function getConfigValue(adapter: DatabaseAdapter, key: string, projectId?: number | null): Promise<string | null>;
|
|
78
|
-
/**
|
|
79
|
-
* Set configuration value in m_config table
|
|
80
|
-
*/
|
|
81
|
-
export declare function setConfigValue(adapter: DatabaseAdapter, key: string, value: string | number | boolean): Promise<void>;
|
|
82
|
-
/**
|
|
83
|
-
* Get configuration value as boolean
|
|
84
|
-
*/
|
|
85
|
-
export declare function getConfigBool(adapter: DatabaseAdapter, key: string, defaultValue?: boolean): Promise<boolean>;
|
|
86
|
-
/**
|
|
87
|
-
* Get configuration value as integer
|
|
88
|
-
*/
|
|
89
|
-
export declare function getConfigInt(adapter: DatabaseAdapter, key: string, defaultValue?: number): Promise<number>;
|
|
90
|
-
/**
|
|
91
|
-
* Get all configuration as an object
|
|
92
|
-
*/
|
|
93
|
-
export declare function getAllConfig(adapter: DatabaseAdapter): Promise<Record<string, string>>;
|
|
94
|
-
/**
|
|
95
|
-
* Add decision context to a decision
|
|
96
|
-
*/
|
|
97
|
-
export declare function addDecisionContext(adapter: DatabaseAdapter, decisionKey: string, rationale: string, alternatives?: string | null, tradeoffs?: string | null, decidedBy?: string | null, relatedTaskId?: number | null, relatedConstraintId?: number | null): Promise<number>;
|
|
98
|
-
/**
|
|
99
|
-
* Get decision with context
|
|
100
|
-
*/
|
|
101
|
-
export declare function getDecisionWithContext(adapter: DatabaseAdapter, decisionKey: string): Promise<{
|
|
102
|
-
key: string;
|
|
103
|
-
value: string;
|
|
104
|
-
version: string;
|
|
105
|
-
status: string;
|
|
106
|
-
layer: string | null;
|
|
107
|
-
decided_by: string | null;
|
|
108
|
-
updated: string;
|
|
109
|
-
context: Array<{
|
|
110
|
-
id: number;
|
|
111
|
-
rationale: string;
|
|
112
|
-
alternatives_considered: string | null;
|
|
113
|
-
tradeoffs: string | null;
|
|
114
|
-
decided_by: string | null;
|
|
115
|
-
decision_date: string;
|
|
116
|
-
related_task_id: number | null;
|
|
117
|
-
related_constraint_id: number | null;
|
|
118
|
-
}>;
|
|
119
|
-
} | null>;
|
|
120
|
-
/**
|
|
121
|
-
* List decision contexts with optional filters
|
|
122
|
-
*/
|
|
123
|
-
export declare function listDecisionContexts(adapter: DatabaseAdapter, filters?: {
|
|
124
|
-
decisionKey?: string;
|
|
125
|
-
relatedTaskId?: number;
|
|
126
|
-
relatedConstraintId?: number;
|
|
127
|
-
decidedBy?: string;
|
|
128
|
-
limit?: number;
|
|
129
|
-
offset?: number;
|
|
130
|
-
}): Promise<Array<{
|
|
131
|
-
id: number;
|
|
132
|
-
decision_key: string;
|
|
133
|
-
rationale: string;
|
|
134
|
-
alternatives_considered: string | null;
|
|
135
|
-
tradeoffs: string | null;
|
|
136
|
-
decided_by: string | null;
|
|
137
|
-
decision_date: string;
|
|
138
|
-
related_task_id: number | null;
|
|
139
|
-
related_constraint_id: number | null;
|
|
140
|
-
}>>;
|
|
141
|
-
/**
|
|
142
|
-
* Backwards compatibility alias for getAdapter
|
|
143
|
-
*/
|
|
144
|
-
export declare function getDatabase(): DatabaseAdapter;
|
|
145
|
-
/**
|
|
146
|
-
* Execute a function within a database transaction
|
|
7
|
+
* This file re-exports all functions from the modular database structure.
|
|
147
8
|
*/
|
|
148
|
-
export
|
|
149
|
-
export type { DatabaseAdapter };
|
|
9
|
+
export * from './database/index.js';
|
|
150
10
|
//# sourceMappingURL=database.d.ts.map
|
package/dist/database.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,cAAc,qBAAqB,CAAC"}
|
package/dist/database.js
CHANGED
|
@@ -1,467 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Database connection and initialization module
|
|
3
|
-
* Handles database setup with Knex.js and DatabaseAdapter pattern
|
|
4
|
-
*/
|
|
5
|
-
import knexConfig from './knexfile.js';
|
|
6
|
-
import { createDatabaseAdapter } from './adapters/index.js';
|
|
7
|
-
import { syncAgentsWithConfig } from './sync-agents.js';
|
|
8
|
-
import { debugLog } from './utils/debug-logger.js';
|
|
9
|
-
// Global adapter instance
|
|
10
|
-
let adapterInstance = null;
|
|
11
|
-
/**
|
|
12
|
-
* Initialize database with adapter pattern
|
|
13
|
-
*/
|
|
14
|
-
export async function initializeDatabase(config) {
|
|
15
|
-
if (adapterInstance) {
|
|
16
|
-
return adapterInstance;
|
|
17
|
-
}
|
|
18
|
-
const dbType = config?.databaseType || 'sqlite';
|
|
19
|
-
// Build DatabaseConfig for adapter
|
|
20
|
-
// For MySQL/PostgreSQL, use provided connection config with auth
|
|
21
|
-
// For SQLite, use traditional file path
|
|
22
|
-
const databaseConfig = config?.connection
|
|
23
|
-
? {
|
|
24
|
-
type: (dbType === 'postgresql' ? 'postgres' : dbType),
|
|
25
|
-
connection: config.connection,
|
|
26
|
-
auth: config.connection.user
|
|
27
|
-
? {
|
|
28
|
-
type: 'direct',
|
|
29
|
-
user: config.connection.user,
|
|
30
|
-
password: config.connection.password,
|
|
31
|
-
}
|
|
32
|
-
: undefined,
|
|
33
|
-
}
|
|
34
|
-
: undefined;
|
|
35
|
-
const adapter = createDatabaseAdapter(dbType, databaseConfig);
|
|
36
|
-
// Determine if running from compiled code (dist/) or source (src/)
|
|
37
|
-
const isCompiledCode = import.meta.url.includes('/dist/');
|
|
38
|
-
const environment = isCompiledCode ? 'production' : 'development';
|
|
39
|
-
// Use config from knexfile or provided config
|
|
40
|
-
const baseConfig = knexConfig[environment] || knexConfig.development;
|
|
41
|
-
const knexConnConfig = config?.connection
|
|
42
|
-
? { ...baseConfig, connection: config.connection }
|
|
43
|
-
: baseConfig;
|
|
44
|
-
// Note: adapter.connect() uses this.config internally (set in constructor)
|
|
45
|
-
// The knexConnConfig here is primarily for TypeScript and backward compatibility
|
|
46
|
-
await adapter.connect(knexConnConfig);
|
|
47
|
-
// Run migrations if needed
|
|
48
|
-
const knex = adapter.getKnex();
|
|
49
|
-
// Extract migrations config from baseConfig and pass to migrate()
|
|
50
|
-
const migrationsConfig = baseConfig.migrations || {};
|
|
51
|
-
try {
|
|
52
|
-
await knex.migrate.latest(migrationsConfig);
|
|
53
|
-
}
|
|
54
|
-
catch (migrationError) {
|
|
55
|
-
// Log migration error to debug log (if initialized) and stderr
|
|
56
|
-
const errorMessage = `Migration failed: ${migrationError.message || String(migrationError)}`;
|
|
57
|
-
debugLog('ERROR', errorMessage, {
|
|
58
|
-
error: migrationError,
|
|
59
|
-
stack: migrationError.stack
|
|
60
|
-
});
|
|
61
|
-
// Re-throw with more context
|
|
62
|
-
const enhancedError = new Error(errorMessage);
|
|
63
|
-
enhancedError.cause = migrationError;
|
|
64
|
-
throw enhancedError;
|
|
65
|
-
}
|
|
66
|
-
debugLog('INFO', `Database initialized with Knex adapter (${environment})`);
|
|
67
|
-
// Sync agents with config.toml
|
|
68
|
-
syncAgentsWithConfig();
|
|
69
|
-
adapterInstance = adapter;
|
|
70
|
-
return adapter;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Get current database adapter
|
|
74
|
-
*/
|
|
75
|
-
export function getAdapter() {
|
|
76
|
-
if (!adapterInstance) {
|
|
77
|
-
throw new Error('Database not initialized. Call initializeDatabase() first.');
|
|
78
|
-
}
|
|
79
|
-
return adapterInstance;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Close database connection
|
|
83
|
-
*/
|
|
84
|
-
export async function closeDatabase() {
|
|
85
|
-
if (adapterInstance) {
|
|
86
|
-
await adapterInstance.disconnect();
|
|
87
|
-
adapterInstance = null;
|
|
88
|
-
debugLog('INFO', 'Database connection closed');
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
// ============================================================================
|
|
92
|
-
// Helper Functions for Master Table Management (Async)
|
|
93
|
-
// ============================================================================
|
|
94
|
-
/**
|
|
95
|
-
* Get or create agent by name (simplified registry pattern)
|
|
96
|
-
*
|
|
97
|
-
* Creates a simple registry of agent names for attribution purposes.
|
|
98
|
-
* No pooling, no reuse logic - each unique name gets exactly one record.
|
|
99
|
-
*
|
|
100
|
-
* - Empty/whitespace names: Generate unique generic-N name
|
|
101
|
-
* - Named agents: Use exact name provided
|
|
102
|
-
*/
|
|
103
|
-
export async function getOrCreateAgent(adapter, name, trx) {
|
|
104
|
-
const knex = trx || adapter.getKnex();
|
|
105
|
-
const now = Math.floor(Date.now() / 1000);
|
|
106
|
-
// Handle empty names by generating unique generic-N identifier
|
|
107
|
-
let agentName = name;
|
|
108
|
-
if (!name || name.trim().length === 0) {
|
|
109
|
-
// Find highest generic-N number and increment
|
|
110
|
-
const maxGeneric = await knex('m_agents')
|
|
111
|
-
.where('name', 'like', 'generic-%')
|
|
112
|
-
.orderBy('name', 'desc')
|
|
113
|
-
.first('name');
|
|
114
|
-
let nextNumber = 1;
|
|
115
|
-
if (maxGeneric && maxGeneric.name) {
|
|
116
|
-
const match = maxGeneric.name.match(/^generic-(\d+)$/);
|
|
117
|
-
if (match) {
|
|
118
|
-
nextNumber = parseInt(match[1], 10) + 1;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
agentName = `generic-${nextNumber}`;
|
|
122
|
-
}
|
|
123
|
-
// Insert or update agent with upsert pattern
|
|
124
|
-
// This handles both new agents and existing agents
|
|
125
|
-
await knex('m_agents')
|
|
126
|
-
.insert({
|
|
127
|
-
name: agentName,
|
|
128
|
-
last_active_ts: now
|
|
129
|
-
})
|
|
130
|
-
.onConflict('name')
|
|
131
|
-
.merge({ last_active_ts: now });
|
|
132
|
-
// Get the agent ID
|
|
133
|
-
const result = await knex('m_agents')
|
|
134
|
-
.where({ name: agentName })
|
|
135
|
-
.first('id');
|
|
136
|
-
if (!result) {
|
|
137
|
-
throw new Error(`Failed to get or create agent: ${agentName}`);
|
|
138
|
-
}
|
|
139
|
-
return result.id;
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Update agent activity timestamp
|
|
143
|
-
*/
|
|
144
|
-
export async function updateAgentActivity(adapter, agentId, trx) {
|
|
145
|
-
const knex = trx || adapter.getKnex();
|
|
146
|
-
const now = Math.floor(Date.now() / 1000);
|
|
147
|
-
await knex('m_agents')
|
|
148
|
-
.where({ id: agentId })
|
|
149
|
-
.update({ last_active_ts: now });
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Get or create context key by name
|
|
153
|
-
*/
|
|
154
|
-
export async function getOrCreateContextKey(adapter, key, trx) {
|
|
155
|
-
const knex = trx || adapter.getKnex();
|
|
156
|
-
await knex('m_context_keys').insert({ key }).onConflict('key').ignore();
|
|
157
|
-
const result = await knex('m_context_keys').where({ key }).first('id');
|
|
158
|
-
if (!result) {
|
|
159
|
-
throw new Error(`Failed to get or create context key: ${key}`);
|
|
160
|
-
}
|
|
161
|
-
return result.id;
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Get or create file by path
|
|
165
|
-
*/
|
|
166
|
-
export async function getOrCreateFile(adapter, projectId, path, trx) {
|
|
167
|
-
const knex = trx || adapter.getKnex();
|
|
168
|
-
// Insert with composite key (project_id, path)
|
|
169
|
-
await knex('m_files')
|
|
170
|
-
.insert({ project_id: projectId, path })
|
|
171
|
-
.onConflict(['project_id', 'path']) // Composite conflict resolution (v3.7.3)
|
|
172
|
-
.ignore();
|
|
173
|
-
const result = await knex('m_files')
|
|
174
|
-
.where({ project_id: projectId, path }) // Filter by both columns (v3.7.3)
|
|
175
|
-
.first('id');
|
|
176
|
-
if (!result) {
|
|
177
|
-
throw new Error(`Failed to get or create file: ${path} (project: ${projectId})`);
|
|
178
|
-
}
|
|
179
|
-
return result.id;
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Get or create tag by name
|
|
183
|
-
*/
|
|
184
|
-
export async function getOrCreateTag(adapter, projectId, name, trx) {
|
|
185
|
-
const knex = trx || adapter.getKnex();
|
|
186
|
-
// Insert with composite key (project_id, name)
|
|
187
|
-
await knex('m_tags')
|
|
188
|
-
.insert({ project_id: projectId, name })
|
|
189
|
-
.onConflict(['project_id', 'name']) // Composite conflict resolution (v3.7.3)
|
|
190
|
-
.ignore();
|
|
191
|
-
const result = await knex('m_tags')
|
|
192
|
-
.where({ project_id: projectId, name }) // Filter by both columns (v3.7.3)
|
|
193
|
-
.first('id');
|
|
194
|
-
if (!result) {
|
|
195
|
-
throw new Error(`Failed to get or create tag: ${name} (project: ${projectId})`);
|
|
196
|
-
}
|
|
197
|
-
return result.id;
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Get or create scope by name
|
|
201
|
-
*/
|
|
202
|
-
export async function getOrCreateScope(adapter, projectId, name, trx) {
|
|
203
|
-
const knex = trx || adapter.getKnex();
|
|
204
|
-
// Insert with composite key (project_id, name)
|
|
205
|
-
await knex('m_scopes')
|
|
206
|
-
.insert({ project_id: projectId, name })
|
|
207
|
-
.onConflict(['project_id', 'name']) // Composite conflict resolution (v3.7.3)
|
|
208
|
-
.ignore();
|
|
209
|
-
const result = await knex('m_scopes')
|
|
210
|
-
.where({ project_id: projectId, name }) // Filter by both columns (v3.7.3)
|
|
211
|
-
.first('id');
|
|
212
|
-
if (!result) {
|
|
213
|
-
throw new Error(`Failed to get or create scope: ${name} (project: ${projectId})`);
|
|
214
|
-
}
|
|
215
|
-
return result.id;
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* Get or create category ID
|
|
219
|
-
*/
|
|
220
|
-
export async function getOrCreateCategoryId(adapter, category, trx) {
|
|
221
|
-
const knex = trx || adapter.getKnex();
|
|
222
|
-
await knex('m_constraint_categories').insert({ name: category }).onConflict('name').ignore();
|
|
223
|
-
const result = await knex('m_constraint_categories').where({ name: category }).first('id');
|
|
224
|
-
if (!result) {
|
|
225
|
-
throw new Error(`Failed to get or create category: ${category}`);
|
|
226
|
-
}
|
|
227
|
-
return result.id;
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* Get layer ID by name
|
|
231
|
-
*/
|
|
232
|
-
export async function getLayerId(adapter, name, trx) {
|
|
233
|
-
const knex = trx || adapter.getKnex();
|
|
234
|
-
const result = await knex('m_layers').where({ name }).first('id');
|
|
235
|
-
return result ? result.id : null;
|
|
236
|
-
}
|
|
237
|
-
/**
|
|
238
|
-
* Get constraint category ID by name
|
|
239
|
-
*/
|
|
240
|
-
export async function getCategoryId(adapter, name, trx) {
|
|
241
|
-
const knex = trx || adapter.getKnex();
|
|
242
|
-
const result = await knex('m_constraint_categories').where({ name }).first('id');
|
|
243
|
-
return result ? result.id : null;
|
|
244
|
-
}
|
|
245
|
-
// ============================================================================
|
|
246
|
-
// Configuration Management (Async)
|
|
247
|
-
// ============================================================================
|
|
248
|
-
/**
|
|
249
|
-
* Get configuration value from m_config table with per-project inheritance
|
|
250
3
|
*
|
|
251
|
-
*
|
|
252
|
-
*
|
|
253
|
-
* 2. Global config (project_id = NULL)
|
|
4
|
+
* DEPRECATED: This file is maintained for backward compatibility.
|
|
5
|
+
* New code should import from './database/index.js' instead.
|
|
254
6
|
*
|
|
255
|
-
*
|
|
256
|
-
* @param key - Config key
|
|
257
|
-
* @param projectId - Optional project ID (if not provided, only checks global config)
|
|
258
|
-
* @returns Config value or null if not found
|
|
259
|
-
*/
|
|
260
|
-
export async function getConfigValue(adapter, key, projectId) {
|
|
261
|
-
const knex = adapter.getKnex();
|
|
262
|
-
// If projectId provided, try project-specific config first
|
|
263
|
-
if (projectId !== undefined && projectId !== null) {
|
|
264
|
-
const projectConfig = await knex('m_config')
|
|
265
|
-
.where({ key, project_id: projectId })
|
|
266
|
-
.first();
|
|
267
|
-
if (projectConfig) {
|
|
268
|
-
return projectConfig.value;
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
// Fallback to global config (project_id = NULL)
|
|
272
|
-
const globalConfig = await knex('m_config')
|
|
273
|
-
.where({ key })
|
|
274
|
-
.whereNull('project_id')
|
|
275
|
-
.first();
|
|
276
|
-
return globalConfig ? globalConfig.value : null;
|
|
277
|
-
}
|
|
278
|
-
/**
|
|
279
|
-
* Set configuration value in m_config table
|
|
280
|
-
*/
|
|
281
|
-
export async function setConfigValue(adapter, key, value) {
|
|
282
|
-
const knex = adapter.getKnex();
|
|
283
|
-
const stringValue = String(value);
|
|
284
|
-
await knex('m_config')
|
|
285
|
-
.insert({ key, value: stringValue })
|
|
286
|
-
.onConflict('key')
|
|
287
|
-
.merge({ value: stringValue });
|
|
288
|
-
}
|
|
289
|
-
/**
|
|
290
|
-
* Get configuration value as boolean
|
|
291
|
-
*/
|
|
292
|
-
export async function getConfigBool(adapter, key, defaultValue = false) {
|
|
293
|
-
const value = await getConfigValue(adapter, key);
|
|
294
|
-
if (value === null)
|
|
295
|
-
return defaultValue;
|
|
296
|
-
return value === '1' || value.toLowerCase() === 'true';
|
|
297
|
-
}
|
|
298
|
-
/**
|
|
299
|
-
* Get configuration value as integer
|
|
300
|
-
*/
|
|
301
|
-
export async function getConfigInt(adapter, key, defaultValue = 0) {
|
|
302
|
-
const value = await getConfigValue(adapter, key);
|
|
303
|
-
if (value === null)
|
|
304
|
-
return defaultValue;
|
|
305
|
-
const parsed = parseInt(value, 10);
|
|
306
|
-
return isNaN(parsed) ? defaultValue : parsed;
|
|
307
|
-
}
|
|
308
|
-
/**
|
|
309
|
-
* Get all configuration as an object
|
|
310
|
-
*/
|
|
311
|
-
export async function getAllConfig(adapter) {
|
|
312
|
-
const knex = adapter.getKnex();
|
|
313
|
-
const rows = await knex('m_config').select('key', 'value');
|
|
314
|
-
const config = {};
|
|
315
|
-
for (const row of rows) {
|
|
316
|
-
config[row.key] = row.value;
|
|
317
|
-
}
|
|
318
|
-
return config;
|
|
319
|
-
}
|
|
320
|
-
// ============================================================================
|
|
321
|
-
// Decision Context Management (Async - v3.2.2)
|
|
322
|
-
// ============================================================================
|
|
323
|
-
/**
|
|
324
|
-
* Validate JSON structure for alternatives array
|
|
325
|
-
*/
|
|
326
|
-
function validateAlternativesJson(alternatives) {
|
|
327
|
-
if (alternatives === null || alternatives === undefined)
|
|
328
|
-
return;
|
|
329
|
-
try {
|
|
330
|
-
const parsed = JSON.parse(alternatives);
|
|
331
|
-
if (!Array.isArray(parsed)) {
|
|
332
|
-
throw new Error('alternatives_considered must be a JSON array');
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
catch (error) {
|
|
336
|
-
if (error instanceof SyntaxError) {
|
|
337
|
-
throw new Error('alternatives_considered contains invalid JSON');
|
|
338
|
-
}
|
|
339
|
-
throw error;
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
/**
|
|
343
|
-
* Validate JSON structure for tradeoffs object
|
|
344
|
-
*/
|
|
345
|
-
function validateTradeoffsJson(tradeoffs) {
|
|
346
|
-
if (tradeoffs === null || tradeoffs === undefined)
|
|
347
|
-
return;
|
|
348
|
-
try {
|
|
349
|
-
const parsed = JSON.parse(tradeoffs);
|
|
350
|
-
if (typeof parsed !== 'object' || parsed === null) {
|
|
351
|
-
throw new Error('tradeoffs must be a JSON object');
|
|
352
|
-
}
|
|
353
|
-
if (parsed.pros !== undefined && !Array.isArray(parsed.pros)) {
|
|
354
|
-
throw new Error('tradeoffs.pros must be an array');
|
|
355
|
-
}
|
|
356
|
-
if (parsed.cons !== undefined && !Array.isArray(parsed.cons)) {
|
|
357
|
-
throw new Error('tradeoffs.cons must be an array');
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
catch (error) {
|
|
361
|
-
if (error instanceof SyntaxError) {
|
|
362
|
-
throw new Error('tradeoffs contains invalid JSON');
|
|
363
|
-
}
|
|
364
|
-
throw error;
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
/**
|
|
368
|
-
* Add decision context to a decision
|
|
369
|
-
*/
|
|
370
|
-
export async function addDecisionContext(adapter, decisionKey, rationale, alternatives = null, tradeoffs = null, decidedBy = null, relatedTaskId = null, relatedConstraintId = null) {
|
|
371
|
-
// Validate JSON inputs
|
|
372
|
-
validateAlternativesJson(alternatives);
|
|
373
|
-
validateTradeoffsJson(tradeoffs);
|
|
374
|
-
const knex = adapter.getKnex();
|
|
375
|
-
// Get decision key ID
|
|
376
|
-
const keyId = await getOrCreateContextKey(adapter, decisionKey);
|
|
377
|
-
// Get agent ID if provided
|
|
378
|
-
let agentId = null;
|
|
379
|
-
if (decidedBy) {
|
|
380
|
-
agentId = await getOrCreateAgent(adapter, decidedBy);
|
|
381
|
-
}
|
|
382
|
-
// Insert context
|
|
383
|
-
const [id] = await knex('t_decision_context').insert({
|
|
384
|
-
decision_key_id: keyId,
|
|
385
|
-
rationale,
|
|
386
|
-
alternatives_considered: alternatives,
|
|
387
|
-
tradeoffs,
|
|
388
|
-
agent_id: agentId,
|
|
389
|
-
related_task_id: relatedTaskId,
|
|
390
|
-
related_constraint_id: relatedConstraintId,
|
|
391
|
-
decision_date: Math.floor(Date.now() / 1000),
|
|
392
|
-
ts: Math.floor(Date.now() / 1000),
|
|
393
|
-
});
|
|
394
|
-
return id;
|
|
395
|
-
}
|
|
396
|
-
/**
|
|
397
|
-
* Get decision with context
|
|
398
|
-
*/
|
|
399
|
-
export async function getDecisionWithContext(adapter, decisionKey) {
|
|
400
|
-
const knex = adapter.getKnex();
|
|
401
|
-
// First get the decision
|
|
402
|
-
const decision = await knex('t_decisions as d')
|
|
403
|
-
.join('m_context_keys as k', 'd.key_id', 'k.id')
|
|
404
|
-
.leftJoin('m_layers as l', 'd.layer_id', 'l.id')
|
|
405
|
-
.leftJoin('m_agents as a', 'd.agent_id', 'a.id')
|
|
406
|
-
.where('k.key', decisionKey)
|
|
407
|
-
.select('k.key', 'd.value', 'd.version', knex.raw(`CASE d.status WHEN 1 THEN 'active' WHEN 2 THEN 'deprecated' ELSE 'draft' END as status`), 'l.name as layer', 'a.name as decided_by', knex.raw(`datetime(d.ts, 'unixepoch') as updated`))
|
|
408
|
-
.first();
|
|
409
|
-
if (!decision)
|
|
410
|
-
return null;
|
|
411
|
-
// Get all contexts for this decision
|
|
412
|
-
const contexts = await knex('t_decision_context as dc')
|
|
413
|
-
.join('m_context_keys as k', 'dc.decision_key_id', 'k.id')
|
|
414
|
-
.leftJoin('m_agents as a', 'dc.agent_id', 'a.id')
|
|
415
|
-
.where('k.key', decisionKey)
|
|
416
|
-
.select('dc.id', 'dc.rationale', 'dc.alternatives_considered', 'dc.tradeoffs', 'a.name as decided_by', knex.raw(`datetime(dc.decision_date, 'unixepoch') as decision_date`), 'dc.related_task_id', 'dc.related_constraint_id')
|
|
417
|
-
.orderBy('dc.decision_date', 'desc');
|
|
418
|
-
return {
|
|
419
|
-
...decision,
|
|
420
|
-
context: contexts,
|
|
421
|
-
};
|
|
422
|
-
}
|
|
423
|
-
/**
|
|
424
|
-
* List decision contexts with optional filters
|
|
425
|
-
*/
|
|
426
|
-
export async function listDecisionContexts(adapter, filters) {
|
|
427
|
-
const knex = adapter.getKnex();
|
|
428
|
-
let query = knex('t_decision_context as dc')
|
|
429
|
-
.join('m_context_keys as k', 'dc.decision_key_id', 'k.id')
|
|
430
|
-
.leftJoin('m_agents as a', 'dc.agent_id', 'a.id')
|
|
431
|
-
.select('dc.id', 'k.key as decision_key', 'dc.rationale', 'dc.alternatives_considered', 'dc.tradeoffs', 'a.name as decided_by', knex.raw(`datetime(dc.decision_date, 'unixepoch') as decision_date`), 'dc.related_task_id', 'dc.related_constraint_id');
|
|
432
|
-
if (filters?.decisionKey) {
|
|
433
|
-
query = query.where('k.key', filters.decisionKey);
|
|
434
|
-
}
|
|
435
|
-
if (filters?.relatedTaskId !== undefined) {
|
|
436
|
-
query = query.where('dc.related_task_id', filters.relatedTaskId);
|
|
437
|
-
}
|
|
438
|
-
if (filters?.relatedConstraintId !== undefined) {
|
|
439
|
-
query = query.where('dc.related_constraint_id', filters.relatedConstraintId);
|
|
440
|
-
}
|
|
441
|
-
if (filters?.decidedBy) {
|
|
442
|
-
query = query.where('a.name', filters.decidedBy);
|
|
443
|
-
}
|
|
444
|
-
query = query.orderBy('dc.decision_date', 'desc');
|
|
445
|
-
if (filters?.limit) {
|
|
446
|
-
query = query.limit(filters.limit);
|
|
447
|
-
}
|
|
448
|
-
if (filters?.offset) {
|
|
449
|
-
query = query.offset(filters.offset);
|
|
450
|
-
}
|
|
451
|
-
return await query;
|
|
452
|
-
}
|
|
453
|
-
/**
|
|
454
|
-
* Backwards compatibility alias for getAdapter
|
|
455
|
-
*/
|
|
456
|
-
export function getDatabase() {
|
|
457
|
-
return getAdapter();
|
|
458
|
-
}
|
|
459
|
-
/**
|
|
460
|
-
* Execute a function within a database transaction
|
|
7
|
+
* This file re-exports all functions from the modular database structure.
|
|
461
8
|
*/
|
|
462
|
-
export
|
|
463
|
-
|
|
464
|
-
const knex = adapter.getKnex();
|
|
465
|
-
return await knex.transaction(callback);
|
|
466
|
-
}
|
|
9
|
+
// Re-export everything from the modular database structure
|
|
10
|
+
export * from './database/index.js';
|
|
467
11
|
//# sourceMappingURL=database.js.map
|