sqlew 3.9.1 → 4.0.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 +20 -0
- package/README.md +20 -3
- package/assets/sample-agents/sqlew-architect.md +3 -4
- package/assets/sample-agents/sqlew-researcher.md +6 -15
- package/assets/sample-agents/sqlew-scrum-master.md +58 -50
- package/assets/sample-commands/sqw-documentor.md +62 -16
- package/assets/sample-commands/sqw-plan.md +82 -35
- package/assets/sample-commands/sqw-research.md +78 -17
- package/assets/sample-commands/sqw-review.md +66 -29
- package/assets/sample-commands/sqw-scrum.md +37 -3
- package/dist/adapters/mysql-adapter.js +3 -3
- package/dist/adapters/postgresql-adapter.js +3 -3
- package/dist/cli/db-dump.js +73 -73
- package/dist/cli/db-export.js +50 -50
- package/dist/cli/db-import.js +51 -51
- package/dist/cli.js +52 -52
- package/dist/config/minimal-generator.js +91 -91
- package/dist/database/config/config-ops.d.ts +19 -11
- package/dist/database/config/config-ops.d.ts.map +1 -1
- package/dist/database/config/config-ops.js +62 -36
- package/dist/database/config/config-ops.js.map +1 -1
- package/dist/database/index.d.ts +3 -1
- package/dist/database/index.d.ts.map +1 -1
- package/dist/database/index.js +4 -2
- package/dist/database/index.js.map +1 -1
- package/dist/database/initialization/init.d.ts.map +1 -1
- package/dist/database/initialization/init.js +31 -0
- package/dist/database/initialization/init.js.map +1 -1
- package/dist/database/initialization/schema-version.d.ts +94 -0
- package/dist/database/initialization/schema-version.d.ts.map +1 -0
- package/dist/database/initialization/schema-version.js +166 -0
- package/dist/database/initialization/schema-version.js.map +1 -0
- package/dist/database/migrations/v4/20251126000000_v4_bootstrap.d.ts +36 -0
- package/dist/database/migrations/v4/20251126000000_v4_bootstrap.d.ts.map +1 -0
- package/dist/database/migrations/v4/20251126000000_v4_bootstrap.js +597 -0
- package/dist/database/migrations/v4/20251126000000_v4_bootstrap.js.map +1 -0
- package/dist/database/migrations/v4/20251126000001_v4_migrate_data.d.ts +26 -0
- package/dist/database/migrations/v4/20251126000001_v4_migrate_data.d.ts.map +1 -0
- package/dist/database/migrations/v4/20251126000001_v4_migrate_data.js +390 -0
- package/dist/database/migrations/v4/20251126000001_v4_migrate_data.js.map +1 -0
- package/dist/database/migrations/v4/20251127000000_add_rejected_status.d.ts +17 -0
- package/dist/database/migrations/v4/20251127000000_add_rejected_status.d.ts.map +1 -0
- package/dist/database/migrations/v4/20251127000000_add_rejected_status.js +50 -0
- package/dist/database/migrations/v4/20251127000000_add_rejected_status.js.map +1 -0
- package/dist/database/migrations/v4/20251127000001_update_task_move_help.d.ts +13 -0
- package/dist/database/migrations/v4/20251127000001_update_task_move_help.d.ts.map +1 -0
- package/dist/database/migrations/v4/20251127000001_update_task_move_help.js +76 -0
- package/dist/database/migrations/v4/20251127000001_update_task_move_help.js.map +1 -0
- package/dist/database/migrations/v4/20251127000002_v4_seed_help_system.d.ts +17 -0
- package/dist/database/migrations/v4/20251127000002_v4_seed_help_system.d.ts.map +1 -0
- package/dist/database/migrations/v4/20251127000002_v4_seed_help_system.js +334 -0
- package/dist/database/migrations/v4/20251127000002_v4_seed_help_system.js.map +1 -0
- package/dist/database/migrations/v4/20251127000003_add_task_notes_column.d.ts +11 -0
- package/dist/database/migrations/v4/20251127000003_add_task_notes_column.d.ts.map +1 -0
- package/dist/database/migrations/v4/20251127000003_add_task_notes_column.js +33 -0
- package/dist/database/migrations/v4/20251127000003_add_task_notes_column.js.map +1 -0
- package/dist/database/operations/inserts.d.ts +12 -7
- package/dist/database/operations/inserts.d.ts.map +1 -1
- package/dist/database/operations/inserts.js +30 -60
- package/dist/database/operations/inserts.js.map +1 -1
- package/dist/database/operations/queries.d.ts.map +1 -1
- package/dist/database/operations/queries.js +19 -21
- package/dist/database/operations/queries.js.map +1 -1
- package/dist/database/operations/updates.d.ts +2 -1
- package/dist/database/operations/updates.d.ts.map +1 -1
- package/dist/database/operations/updates.js +3 -6
- package/dist/database/operations/updates.js.map +1 -1
- package/dist/init-agents.js +27 -27
- package/dist/init-commands.js +25 -25
- package/dist/knexfile.d.ts.map +1 -1
- package/dist/knexfile.js +5 -25
- package/dist/knexfile.js.map +1 -1
- package/dist/schema.d.ts +7 -3
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +43 -50
- package/dist/schema.js.map +1 -1
- package/dist/server/arg-parser.js +18 -18
- package/dist/server/tool-registry.d.ts.map +1 -1
- package/dist/server/tool-registry.js +18 -1
- package/dist/server/tool-registry.js.map +1 -1
- package/dist/sync-gitignore.d.ts +13 -0
- package/dist/sync-gitignore.d.ts.map +1 -0
- package/dist/sync-gitignore.js +60 -0
- package/dist/sync-gitignore.js.map +1 -0
- package/dist/tests/database/multi-project/multi-project.test.js +13 -13
- package/dist/tests/database/multi-project/multi-project.test.js.map +1 -1
- package/dist/tests/database/sql-dump/default-conversions.test.js +4 -4
- package/dist/tests/database/sql-dump/default-conversions.test.js.map +1 -1
- package/dist/tests/database/sql-dump/table-ordering.test.js +14 -14
- package/dist/tests/database/sql-dump/table-ordering.test.js.map +1 -1
- package/dist/tests/docker/cross-database.test.js +12 -18
- package/dist/tests/docker/cross-database.test.js.map +1 -1
- package/dist/tests/docker/dump-import.test.js +15 -15
- package/dist/tests/docker/dump-import.test.js.map +1 -1
- package/dist/tests/docker/multi-project-migration.test.js +44 -61
- package/dist/tests/docker/multi-project-migration.test.js.map +1 -1
- package/dist/tests/docker/native/constraint-operations.test.d.ts +1 -1
- package/dist/tests/docker/native/constraint-operations.test.js +65 -114
- package/dist/tests/docker/native/constraint-operations.test.js.map +1 -1
- package/dist/tests/docker/native/db-init.d.ts +1 -1
- package/dist/tests/docker/native/db-init.js +3 -3
- package/dist/tests/docker/native/db-init.js.map +1 -1
- package/dist/tests/docker/native/decision-operations.test.js +93 -148
- package/dist/tests/docker/native/decision-operations.test.js.map +1 -1
- package/dist/tests/docker/native/help-system.test.js +60 -60
- package/dist/tests/docker/native/help-system.test.js.map +1 -1
- package/dist/tests/docker/native/suggest-tool.test.js +25 -33
- package/dist/tests/docker/native/suggest-tool.test.js.map +1 -1
- package/dist/tests/docker/native/task-operations.test.js +114 -140
- package/dist/tests/docker/native/task-operations.test.js.map +1 -1
- package/dist/tests/docker/native/test-harness.d.ts +0 -9
- package/dist/tests/docker/native/test-harness.d.ts.map +1 -1
- package/dist/tests/docker/native/test-harness.js +42 -69
- package/dist/tests/docker/native/test-harness.js.map +1 -1
- package/dist/tests/feature/task/auto-pruning-decision-link.test.js +6 -9
- package/dist/tests/feature/task/auto-pruning-decision-link.test.js.map +1 -1
- package/dist/tests/feature/task/auto-pruning-partial.test.js +17 -19
- package/dist/tests/feature/task/auto-pruning-partial.test.js.map +1 -1
- package/dist/tests/feature/task/auto-pruning-persistence.test.js +11 -14
- package/dist/tests/feature/task/auto-pruning-persistence.test.js.map +1 -1
- package/dist/tests/feature/task/auto-pruning-safety.test.js +23 -42
- package/dist/tests/feature/task/auto-pruning-safety.test.js.map +1 -1
- package/dist/tests/feature/task/dependencies.test.js +30 -34
- package/dist/tests/feature/task/dependencies.test.js.map +1 -1
- package/dist/tests/feature/task/link-file-backward-compat.test.js +19 -21
- package/dist/tests/feature/task/link-file-backward-compat.test.js.map +1 -1
- package/dist/tests/feature/task/watch-files-action.test.js +10 -12
- package/dist/tests/feature/task/watch-files-action.test.js.map +1 -1
- package/dist/tests/feature/task/watch-files-parameter.test.js +25 -27
- package/dist/tests/feature/task/watch-files-parameter.test.js.map +1 -1
- package/dist/tests/feature/vcs/git-aware-completion.test.js +32 -42
- package/dist/tests/feature/vcs/git-aware-completion.test.js.map +1 -1
- package/dist/tests/feature/vcs/two-step-git-completion.test.js +83 -104
- package/dist/tests/feature/vcs/two-step-git-completion.test.js.map +1 -1
- package/dist/tests/integration/all-features.standalone.js +4 -6
- package/dist/tests/integration/all-features.standalone.js.map +1 -1
- package/dist/tests/integration/auto-trigger-suggestions.test.js +26 -68
- package/dist/tests/integration/auto-trigger-suggestions.test.js.map +1 -1
- package/dist/tests/integration/decision-intelligence-e2e.test.js +32 -71
- package/dist/tests/integration/decision-intelligence-e2e.test.js.map +1 -1
- package/dist/tests/integration/e2e-workflow1-debug.test.js +3 -17
- package/dist/tests/integration/e2e-workflow1-debug.test.js.map +1 -1
- package/dist/tests/integration/hybrid-similarity-detection.test.js +45 -55
- package/dist/tests/integration/hybrid-similarity-detection.test.js.map +1 -1
- package/dist/tests/migrations/test-all-versions.d.ts +1 -1
- package/dist/tests/migrations/test-all-versions.js +11 -9
- package/dist/tests/migrations/test-all-versions.js.map +1 -1
- package/dist/tests/migrations/v4/v4-fresh-install.test.d.ts +7 -0
- package/dist/tests/migrations/v4/v4-fresh-install.test.d.ts.map +1 -0
- package/dist/tests/migrations/v4/v4-fresh-install.test.js +168 -0
- package/dist/tests/migrations/v4/v4-fresh-install.test.js.map +1 -0
- package/dist/tests/migrations/v4/v4-migrate-data.test.d.ts +13 -0
- package/dist/tests/migrations/v4/v4-migrate-data.test.d.ts.map +1 -0
- package/dist/tests/migrations/v4/v4-migrate-data.test.js +264 -0
- package/dist/tests/migrations/v4/v4-migrate-data.test.js.map +1 -0
- package/dist/tests/test-v4-native-rdbms.d.ts +10 -0
- package/dist/tests/test-v4-native-rdbms.d.ts.map +1 -0
- package/dist/tests/test-v4-native-rdbms.js +235 -0
- package/dist/tests/test-v4-native-rdbms.js.map +1 -0
- package/dist/tests/unit/constraint-scorer.test.d.ts +13 -0
- package/dist/tests/unit/constraint-scorer.test.d.ts.map +1 -0
- package/dist/tests/unit/constraint-scorer.test.js +390 -0
- package/dist/tests/unit/constraint-scorer.test.js.map +1 -0
- package/dist/tests/unit/validation/policy-validation.test.js +15 -15
- package/dist/tests/unit/validation/policy-validation.test.js.map +1 -1
- package/dist/tests/utils/db-config.d.ts.map +1 -1
- package/dist/tests/utils/db-config.js +2 -3
- package/dist/tests/utils/db-config.js.map +1 -1
- package/dist/tests/utils/db-seeding.d.ts.map +1 -1
- package/dist/tests/utils/db-seeding.js +17 -20
- package/dist/tests/utils/db-seeding.js.map +1 -1
- package/dist/tests/utils/task-helpers.d.ts +9 -9
- package/dist/tests/utils/task-helpers.d.ts.map +1 -1
- package/dist/tests/utils/task-helpers.js +26 -43
- package/dist/tests/utils/task-helpers.js.map +1 -1
- package/dist/tests/utils/test-helpers.d.ts +13 -8
- package/dist/tests/utils/test-helpers.d.ts.map +1 -1
- package/dist/tests/utils/test-helpers.js +55 -69
- package/dist/tests/utils/test-helpers.js.map +1 -1
- package/dist/tools/constraints/actions/add.d.ts.map +1 -1
- package/dist/tools/constraints/actions/add.js +8 -23
- package/dist/tools/constraints/actions/add.js.map +1 -1
- package/dist/tools/constraints/actions/deactivate.js +2 -2
- package/dist/tools/constraints/actions/deactivate.js.map +1 -1
- package/dist/tools/constraints/actions/get.d.ts +2 -2
- package/dist/tools/constraints/actions/get.js +2 -2
- package/dist/tools/context/actions/create-policy.d.ts.map +1 -1
- package/dist/tools/context/actions/create-policy.js +3 -20
- package/dist/tools/context/actions/create-policy.js.map +1 -1
- package/dist/tools/context/actions/create-template.d.ts.map +1 -1
- package/dist/tools/context/actions/create-template.js +5 -9
- package/dist/tools/context/actions/create-template.js.map +1 -1
- package/dist/tools/context/actions/hard-delete.js +12 -12
- package/dist/tools/context/actions/hard-delete.js.map +1 -1
- package/dist/tools/context/actions/has-updates.js +3 -3
- package/dist/tools/context/actions/has-updates.js.map +1 -1
- package/dist/tools/context/actions/list-policies.d.ts.map +1 -1
- package/dist/tools/context/actions/list-policies.js +3 -3
- package/dist/tools/context/actions/list-policies.js.map +1 -1
- package/dist/tools/context/actions/list-templates.d.ts.map +1 -1
- package/dist/tools/context/actions/list-templates.js +4 -5
- package/dist/tools/context/actions/list-templates.js.map +1 -1
- package/dist/tools/context/actions/list.js +1 -1
- package/dist/tools/context/actions/list.js.map +1 -1
- package/dist/tools/context/actions/search-layer.d.ts.map +1 -1
- package/dist/tools/context/actions/search-layer.js +11 -12
- package/dist/tools/context/actions/search-layer.js.map +1 -1
- package/dist/tools/context/actions/set-from-policy.js +1 -1
- package/dist/tools/context/actions/set-from-policy.js.map +1 -1
- package/dist/tools/context/actions/set-from-template.js +2 -2
- package/dist/tools/context/actions/set-from-template.js.map +1 -1
- package/dist/tools/context/actions/versions.d.ts.map +1 -1
- package/dist/tools/context/actions/versions.js +6 -7
- package/dist/tools/context/actions/versions.js.map +1 -1
- package/dist/tools/context/internal/queries.d.ts.map +1 -1
- package/dist/tools/context/internal/queries.js +73 -53
- package/dist/tools/context/internal/queries.js.map +1 -1
- package/dist/tools/example/actions/get.js +7 -7
- package/dist/tools/example/actions/get.js.map +1 -1
- package/dist/tools/example/actions/list-all.js +4 -4
- package/dist/tools/example/actions/list-all.js.map +1 -1
- package/dist/tools/example/actions/search.js +8 -8
- package/dist/tools/example/actions/search.js.map +1 -1
- package/dist/tools/example/help/example.js +21 -21
- package/dist/tools/files/actions/check-lock.d.ts.map +1 -1
- package/dist/tools/files/actions/check-lock.js +4 -6
- package/dist/tools/files/actions/check-lock.js.map +1 -1
- package/dist/tools/files/actions/get.d.ts.map +1 -1
- package/dist/tools/files/actions/get.js +6 -8
- package/dist/tools/files/actions/get.js.map +1 -1
- package/dist/tools/files/internal/queries.d.ts.map +1 -1
- package/dist/tools/files/internal/queries.js +5 -14
- package/dist/tools/files/internal/queries.js.map +1 -1
- package/dist/tools/help/actions/batch-guide.js +5 -5
- package/dist/tools/help/actions/batch-guide.js.map +1 -1
- package/dist/tools/help-queries.js +29 -29
- package/dist/tools/help-queries.js.map +1 -1
- package/dist/tools/suggest/actions/by-tags.d.ts +2 -2
- package/dist/tools/suggest/actions/by-tags.js +2 -2
- package/dist/tools/suggest/actions/constraint-by-context.d.ts +66 -0
- package/dist/tools/suggest/actions/constraint-by-context.d.ts.map +1 -0
- package/dist/tools/suggest/actions/constraint-by-context.js +82 -0
- package/dist/tools/suggest/actions/constraint-by-context.js.map +1 -0
- package/dist/tools/suggest/actions/constraint-by-tags.d.ts +48 -0
- package/dist/tools/suggest/actions/constraint-by-tags.d.ts.map +1 -0
- package/dist/tools/suggest/actions/constraint-by-tags.js +68 -0
- package/dist/tools/suggest/actions/constraint-by-tags.js.map +1 -0
- package/dist/tools/suggest/actions/constraint-by-text.d.ts +47 -0
- package/dist/tools/suggest/actions/constraint-by-text.d.ts.map +1 -0
- package/dist/tools/suggest/actions/constraint-by-text.js +65 -0
- package/dist/tools/suggest/actions/constraint-by-text.js.map +1 -0
- package/dist/tools/suggest/actions/constraint-check-duplicate.d.ts +50 -0
- package/dist/tools/suggest/actions/constraint-check-duplicate.d.ts.map +1 -0
- package/dist/tools/suggest/actions/constraint-check-duplicate.js +68 -0
- package/dist/tools/suggest/actions/constraint-check-duplicate.js.map +1 -0
- package/dist/tools/suggest/help/constraint-help.d.ts +12 -0
- package/dist/tools/suggest/help/constraint-help.d.ts.map +1 -0
- package/dist/tools/suggest/help/constraint-help.js +126 -0
- package/dist/tools/suggest/help/constraint-help.js.map +1 -0
- package/dist/tools/suggest/index.d.ts +3 -2
- package/dist/tools/suggest/index.d.ts.map +1 -1
- package/dist/tools/suggest/index.js +67 -4
- package/dist/tools/suggest/index.js.map +1 -1
- package/dist/tools/suggest/internal/constraint-queries.d.ts +55 -0
- package/dist/tools/suggest/internal/constraint-queries.d.ts.map +1 -0
- package/dist/tools/suggest/internal/constraint-queries.js +85 -0
- package/dist/tools/suggest/internal/constraint-queries.js.map +1 -0
- package/dist/tools/suggest/internal/queries.d.ts +4 -4
- package/dist/tools/suggest/internal/queries.d.ts.map +1 -1
- package/dist/tools/suggest/internal/queries.js +44 -37
- package/dist/tools/suggest/internal/queries.js.map +1 -1
- package/dist/tools/suggest/types.d.ts +10 -0
- package/dist/tools/suggest/types.d.ts.map +1 -1
- package/dist/tools/tasks/actions/add-dependency.d.ts.map +1 -1
- package/dist/tools/tasks/actions/add-dependency.js +15 -10
- package/dist/tools/tasks/actions/add-dependency.js.map +1 -1
- package/dist/tools/tasks/actions/archive.d.ts.map +1 -1
- package/dist/tools/tasks/actions/archive.js +2 -11
- package/dist/tools/tasks/actions/archive.js.map +1 -1
- package/dist/tools/tasks/actions/create.d.ts.map +1 -1
- package/dist/tools/tasks/actions/create.js +7 -24
- package/dist/tools/tasks/actions/create.js.map +1 -1
- package/dist/tools/tasks/actions/get-dependencies.js +1 -1
- package/dist/tools/tasks/actions/get-dependencies.js.map +1 -1
- package/dist/tools/tasks/actions/get-pruned-files.js +4 -4
- package/dist/tools/tasks/actions/get-pruned-files.js.map +1 -1
- package/dist/tools/tasks/actions/get.d.ts.map +1 -1
- package/dist/tools/tasks/actions/get.js +15 -16
- package/dist/tools/tasks/actions/get.js.map +1 -1
- package/dist/tools/tasks/actions/link-pruned-file.js +6 -6
- package/dist/tools/tasks/actions/link-pruned-file.js.map +1 -1
- package/dist/tools/tasks/actions/link.js +8 -8
- package/dist/tools/tasks/actions/link.js.map +1 -1
- package/dist/tools/tasks/actions/list.js +2 -2
- package/dist/tools/tasks/actions/list.js.map +1 -1
- package/dist/tools/tasks/actions/move.d.ts +2 -1
- package/dist/tools/tasks/actions/move.d.ts.map +1 -1
- package/dist/tools/tasks/actions/move.js +22 -22
- package/dist/tools/tasks/actions/move.js.map +1 -1
- package/dist/tools/tasks/actions/remove-dependency.js +1 -1
- package/dist/tools/tasks/actions/remove-dependency.js.map +1 -1
- package/dist/tools/tasks/actions/update.d.ts.map +1 -1
- package/dist/tools/tasks/actions/update.js +12 -15
- package/dist/tools/tasks/actions/update.js.map +1 -1
- package/dist/tools/tasks/actions/watch-files.js +8 -8
- package/dist/tools/tasks/actions/watch-files.js.map +1 -1
- package/dist/tools/tasks/help/example.js +4 -4
- package/dist/tools/tasks/help/example.js.map +1 -1
- package/dist/tools/tasks/help/help.d.ts.map +1 -1
- package/dist/tools/tasks/help/help.js +20 -10
- package/dist/tools/tasks/help/help.js.map +1 -1
- package/dist/tools/tasks/internal/state-machine.js +2 -2
- package/dist/tools/tasks/internal/state-machine.js.map +1 -1
- package/dist/tools/tasks/internal/task-queries.d.ts.map +1 -1
- package/dist/tools/tasks/internal/task-queries.js +9 -11
- package/dist/tools/tasks/internal/task-queries.js.map +1 -1
- package/dist/tools/tasks/types.d.ts +13 -1
- package/dist/tools/tasks/types.d.ts.map +1 -1
- package/dist/tools/tasks/types.js +30 -7
- package/dist/tools/tasks/types.js.map +1 -1
- package/dist/tools/tasks/watcher/status.js +8 -8
- package/dist/tools/tasks/watcher/status.js.map +1 -1
- package/dist/tools/use_case/actions/search.js +4 -4
- package/dist/tools/use_case/actions/search.js.map +1 -1
- package/dist/tools/use_case/help/example.js +16 -16
- package/dist/types/task/params.d.ts +2 -1
- package/dist/types/task/params.d.ts.map +1 -1
- package/dist/types.d.ts +10 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/action-specs/task-specs.js +5 -5
- package/dist/utils/action-specs/task-specs.js.map +1 -1
- package/dist/utils/batch-validation.d.ts +1 -1
- package/dist/utils/batch-validation.js +3 -3
- package/dist/utils/batch-validation.js.map +1 -1
- package/dist/utils/cleanup.js +3 -3
- package/dist/utils/cleanup.js.map +1 -1
- package/dist/utils/constraint-scorer.d.ts +113 -0
- package/dist/utils/constraint-scorer.d.ts.map +1 -0
- package/dist/utils/constraint-scorer.js +220 -0
- package/dist/utils/constraint-scorer.js.map +1 -0
- package/dist/utils/db-aggregations.js +10 -10
- package/dist/utils/db-aggregations.js.map +1 -1
- package/dist/utils/exporter/export.js +70 -70
- package/dist/utils/exporter/export.js.map +1 -1
- package/dist/utils/file-pruning.js +16 -16
- package/dist/utils/file-pruning.js.map +1 -1
- package/dist/utils/importer/import.js +33 -33
- package/dist/utils/importer/import.js.map +1 -1
- package/dist/utils/importer/master-tables.js +25 -25
- package/dist/utils/importer/master-tables.js.map +1 -1
- package/dist/utils/importer/topological-sort.d.ts +1 -1
- package/dist/utils/importer/topological-sort.js +1 -1
- package/dist/utils/policy-validator.js +5 -1
- package/dist/utils/policy-validator.js.map +1 -1
- package/dist/utils/project-context.js +3 -3
- package/dist/utils/project-context.js.map +1 -1
- package/dist/utils/quality-checks.js +3 -3
- package/dist/utils/quality-checks.js.map +1 -1
- package/dist/utils/retention.js +1 -1
- package/dist/utils/retention.js.map +1 -1
- package/dist/utils/sql-dump/core/dependency-sort.js +17 -17
- package/dist/utils/sql-dump/core/index-export.js +7 -7
- package/dist/utils/sql-dump/core/sequence-reset.js +5 -5
- package/dist/utils/sql-dump/generators/headers.js +10 -10
- package/dist/utils/sql-dump/schema/indexes.js +15 -15
- package/dist/utils/sql-dump/schema/primary-keys.js +14 -14
- package/dist/utils/sql-dump/schema/tables.js +44 -44
- package/dist/utils/sql-dump/schema/views.js +21 -21
- package/dist/utils/suggestion-scorer.d.ts.map +1 -1
- package/dist/utils/suggestion-scorer.js +9 -0
- package/dist/utils/suggestion-scorer.js.map +1 -1
- package/dist/utils/task-stale-detection.d.ts.map +1 -1
- package/dist/utils/task-stale-detection.js +20 -19
- package/dist/utils/task-stale-detection.js.map +1 -1
- package/dist/utils/token-logging.js +6 -6
- package/dist/utils/token-logging.js.map +1 -1
- package/dist/utils/validators.d.ts +4 -4
- package/dist/utils/validators.d.ts.map +1 -1
- package/dist/utils/validators.js +10 -4
- package/dist/utils/validators.js.map +1 -1
- package/dist/utils/view-queries.d.ts +3 -3
- package/dist/utils/view-queries.d.ts.map +1 -1
- package/dist/utils/view-queries.js +41 -66
- package/dist/utils/view-queries.js.map +1 -1
- package/dist/watcher/file-watcher.js +20 -20
- package/dist/watcher/file-watcher.js.map +1 -1
- package/docs/AI_AGENT_GUIDE.md +81 -1376
- package/docs/ARCHITECTURE.md +127 -608
- package/docs/AUTO_FILE_TRACKING.md +22 -20
- package/docs/BATCH_VALIDATION.md +3 -3
- package/docs/CONFIGURATION.md +69 -68
- package/docs/CONSTRAINT_INTELLIGENCE.md +339 -0
- package/docs/DATABASE_AUTH.md +1 -1
- package/docs/DECISION_CONTEXT.md +12 -0
- package/docs/DECISION_INTELLIGENCE.md +19 -8
- package/docs/GIT_AWARE_AUTO_COMPLETE.md +21 -20
- package/docs/SHARED_CONCEPTS.md +46 -16
- package/docs/SLASH_COMMANDS.md +88 -117
- package/docs/SPECIALIZED_AGENTS.md +45 -572
- package/docs/TASK_ACTIONS.md +63 -53
- package/docs/TASK_OVERVIEW.md +49 -61
- package/docs/TASK_PRUNING.md +32 -27
- package/docs/TOOL_REFERENCE.md +119 -76
- package/docs/TOOL_SELECTION.md +15 -18
- package/docs/WORKFLOWS.md +504 -350
- package/package.json +121 -121
- package/assets/sample-commands/sqw-secretary.md +0 -187
- package/dist/config/knex/bootstrap/20251025020452_create_master_tables.d.ts +0 -4
- package/dist/config/knex/bootstrap/20251025020452_create_master_tables.d.ts.map +0 -1
- package/dist/config/knex/bootstrap/20251025020452_create_master_tables.js +0 -97
- package/dist/config/knex/bootstrap/20251025020452_create_master_tables.js.map +0 -1
- package/dist/config/knex/bootstrap/20251025021152_create_transaction_tables.d.ts +0 -4
- package/dist/config/knex/bootstrap/20251025021152_create_transaction_tables.d.ts.map +0 -1
- package/dist/config/knex/bootstrap/20251025021152_create_transaction_tables.js +0 -270
- package/dist/config/knex/bootstrap/20251025021152_create_transaction_tables.js.map +0 -1
- package/dist/config/knex/bootstrap/20251025021351_create_indexes.d.ts +0 -4
- package/dist/config/knex/bootstrap/20251025021351_create_indexes.d.ts.map +0 -1
- package/dist/config/knex/bootstrap/20251025021351_create_indexes.js +0 -93
- package/dist/config/knex/bootstrap/20251025021351_create_indexes.js.map +0 -1
- package/dist/config/knex/bootstrap/20251025021352_fix_mysql_index_syntax.d.ts +0 -4
- package/dist/config/knex/bootstrap/20251025021352_fix_mysql_index_syntax.d.ts.map +0 -1
- package/dist/config/knex/bootstrap/20251025021352_fix_mysql_index_syntax.js +0 -146
- package/dist/config/knex/bootstrap/20251025021352_fix_mysql_index_syntax.js.map +0 -1
- package/dist/config/knex/bootstrap/20251025021416_seed_master_data.d.ts +0 -4
- package/dist/config/knex/bootstrap/20251025021416_seed_master_data.d.ts.map +0 -1
- package/dist/config/knex/bootstrap/20251025021416_seed_master_data.js +0 -182
- package/dist/config/knex/bootstrap/20251025021416_seed_master_data.js.map +0 -1
- package/dist/config/knex/bootstrap/20251025070349_create_views.d.ts +0 -4
- package/dist/config/knex/bootstrap/20251025070349_create_views.d.ts.map +0 -1
- package/dist/config/knex/bootstrap/20251025070349_create_views.js +0 -247
- package/dist/config/knex/bootstrap/20251025070349_create_views.js.map +0 -1
- package/dist/config/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts +0 -4
- package/dist/config/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js +0 -22
- package/dist/config/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js.map +0 -1
- package/dist/config/knex/enhancements/20251025082220_fix_task_dependencies_columns.d.ts +0 -8
- package/dist/config/knex/enhancements/20251025082220_fix_task_dependencies_columns.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251025082220_fix_task_dependencies_columns.js +0 -12
- package/dist/config/knex/enhancements/20251025082220_fix_task_dependencies_columns.js.map +0 -1
- package/dist/config/knex/enhancements/20251025090000_create_help_system_tables.d.ts +0 -19
- package/dist/config/knex/enhancements/20251025090000_create_help_system_tables.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251025090000_create_help_system_tables.js +0 -121
- package/dist/config/knex/enhancements/20251025090000_create_help_system_tables.js.map +0 -1
- package/dist/config/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts +0 -13
- package/dist/config/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.js +0 -383
- package/dist/config/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.js.map +0 -1
- package/dist/config/knex/enhancements/20251025100000_seed_help_metadata.d.ts +0 -15
- package/dist/config/knex/enhancements/20251025100000_seed_help_metadata.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251025100000_seed_help_metadata.js +0 -259
- package/dist/config/knex/enhancements/20251025100000_seed_help_metadata.js.map +0 -1
- package/dist/config/knex/enhancements/20251025100100_seed_remaining_use_cases.d.ts +0 -16
- package/dist/config/knex/enhancements/20251025100100_seed_remaining_use_cases.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251025100100_seed_remaining_use_cases.js +0 -276
- package/dist/config/knex/enhancements/20251025100100_seed_remaining_use_cases.js.map +0 -1
- package/dist/config/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts +0 -8
- package/dist/config/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.js +0 -71
- package/dist/config/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.js.map +0 -1
- package/dist/config/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts +0 -14
- package/dist/config/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251027000000_add_agent_reuse_system.js +0 -62
- package/dist/config/knex/enhancements/20251027000000_add_agent_reuse_system.js.map +0 -1
- package/dist/config/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts +0 -4
- package/dist/config/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js +0 -24
- package/dist/config/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js.map +0 -1
- package/dist/config/knex/enhancements/20251027020000_update_agent_reusability.d.ts +0 -16
- package/dist/config/knex/enhancements/20251027020000_update_agent_reusability.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251027020000_update_agent_reusability.js +0 -33
- package/dist/config/knex/enhancements/20251027020000_update_agent_reusability.js.map +0 -1
- package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.d.ts +0 -23
- package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.js +0 -58
- package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.js.map +0 -1
- package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.d.ts +0 -13
- package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.js +0 -48
- package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.js.map +0 -1
- package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.d.ts +0 -24
- package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.js +0 -189
- package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.js.map +0 -1
- package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.d.ts +0 -16
- package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.js +0 -72
- package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.js.map +0 -1
- package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.d.ts +0 -23
- package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.js +0 -118
- package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.js.map +0 -1
- package/dist/config/knex/enhancements/20251106000000_fix_master_tables_project_id_v3_7_3.d.ts +0 -29
- package/dist/config/knex/enhancements/20251106000000_fix_master_tables_project_id_v3_7_3.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251106000000_fix_master_tables_project_id_v3_7_3.js +0 -556
- package/dist/config/knex/enhancements/20251106000000_fix_master_tables_project_id_v3_7_3.js.map +0 -1
- package/dist/config/knex/enhancements/20251108000000_add_planning_layers_v3_8_0.d.ts +0 -21
- package/dist/config/knex/enhancements/20251108000000_add_planning_layers_v3_8_0.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251108000000_add_planning_layers_v3_8_0.js +0 -73
- package/dist/config/knex/enhancements/20251108000000_add_planning_layers_v3_8_0.js.map +0 -1
- package/dist/config/knex/enhancements/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.d.ts +0 -19
- package/dist/config/knex/enhancements/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.js +0 -88
- package/dist/config/knex/enhancements/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.js.map +0 -1
- package/dist/config/knex/enhancements/20251109000003_token_usage_cross_db_compat_v3_7_5.d.ts +0 -24
- package/dist/config/knex/enhancements/20251109000003_token_usage_cross_db_compat_v3_7_5.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251109000003_token_usage_cross_db_compat_v3_7_5.js +0 -79
- package/dist/config/knex/enhancements/20251109000003_token_usage_cross_db_compat_v3_7_5.js.map +0 -1
- package/dist/config/knex/enhancements/20251109010000_tool_cleanup_v3_8_0.d.ts +0 -27
- package/dist/config/knex/enhancements/20251109010000_tool_cleanup_v3_8_0.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251109010000_tool_cleanup_v3_8_0.js +0 -347
- package/dist/config/knex/enhancements/20251109010000_tool_cleanup_v3_8_0.js.map +0 -1
- package/dist/config/knex/enhancements/20251109020000_fix_missing_help_actions_v3_8_0.d.ts +0 -30
- package/dist/config/knex/enhancements/20251109020000_fix_missing_help_actions_v3_8_0.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251109020000_fix_missing_help_actions_v3_8_0.js +0 -232
- package/dist/config/knex/enhancements/20251109020000_fix_missing_help_actions_v3_8_0.js.map +0 -1
- package/dist/config/knex/enhancements/20251112000001_fix_task_file_links_schema_v3_9_0.d.ts +0 -22
- package/dist/config/knex/enhancements/20251112000001_fix_task_file_links_schema_v3_9_0.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251112000001_fix_task_file_links_schema_v3_9_0.js +0 -106
- package/dist/config/knex/enhancements/20251112000001_fix_task_file_links_schema_v3_9_0.js.map +0 -1
- package/dist/config/knex/enhancements/20251112000002_fix_task_pruned_files_schema_v3_9_0.d.ts +0 -21
- package/dist/config/knex/enhancements/20251112000002_fix_task_pruned_files_schema_v3_9_0.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251112000002_fix_task_pruned_files_schema_v3_9_0.js +0 -106
- package/dist/config/knex/enhancements/20251112000002_fix_task_pruned_files_schema_v3_9_0.js.map +0 -1
- package/dist/config/knex/enhancements/20251114000000_fix_v_tagged_decisions_numeric_support.d.ts +0 -21
- package/dist/config/knex/enhancements/20251114000000_fix_v_tagged_decisions_numeric_support.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251114000000_fix_v_tagged_decisions_numeric_support.js +0 -91
- package/dist/config/knex/enhancements/20251114000000_fix_v_tagged_decisions_numeric_support.js.map +0 -1
- package/dist/config/knex/enhancements/20251114120000_add_suggest_tool_to_help_system_v3_9_0.d.ts +0 -15
- package/dist/config/knex/enhancements/20251114120000_add_suggest_tool_to_help_system_v3_9_0.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251114120000_add_suggest_tool_to_help_system_v3_9_0.js +0 -270
- package/dist/config/knex/enhancements/20251114120000_add_suggest_tool_to_help_system_v3_9_0.js.map +0 -1
- package/dist/config/knex/enhancements/20251114121000_add_suggest_tool_use_cases_v3_9_0.d.ts +0 -15
- package/dist/config/knex/enhancements/20251114121000_add_suggest_tool_use_cases_v3_9_0.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251114121000_add_suggest_tool_use_cases_v3_9_0.js +0 -241
- package/dist/config/knex/enhancements/20251114121000_add_suggest_tool_use_cases_v3_9_0.js.map +0 -1
- package/dist/config/knex/enhancements/20251114130000_seed_builtin_policies_v3_9_0.d.ts +0 -16
- package/dist/config/knex/enhancements/20251114130000_seed_builtin_policies_v3_9_0.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251114130000_seed_builtin_policies_v3_9_0.js +0 -168
- package/dist/config/knex/enhancements/20251114130000_seed_builtin_policies_v3_9_0.js.map +0 -1
- package/dist/config/knex/enhancements/20251114140000_add_policy_help_v3_9_0.d.ts +0 -14
- package/dist/config/knex/enhancements/20251114140000_add_policy_help_v3_9_0.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251114140000_add_policy_help_v3_9_0.js +0 -228
- package/dist/config/knex/enhancements/20251114140000_add_policy_help_v3_9_0.js.map +0 -1
- package/dist/config/knex/enhancements/20251114141000_add_policy_use_cases_v3_9_0.d.ts +0 -14
- package/dist/config/knex/enhancements/20251114141000_add_policy_use_cases_v3_9_0.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251114141000_add_policy_use_cases_v3_9_0.js +0 -237
- package/dist/config/knex/enhancements/20251114141000_add_policy_use_cases_v3_9_0.js.map +0 -1
- package/dist/config/knex/enhancements/20251114150000_fix_policy_unique_constraint_v3_9_0.d.ts +0 -14
- package/dist/config/knex/enhancements/20251114150000_fix_policy_unique_constraint_v3_9_0.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251114150000_fix_policy_unique_constraint_v3_9_0.js +0 -61
- package/dist/config/knex/enhancements/20251114150000_fix_policy_unique_constraint_v3_9_0.js.map +0 -1
- package/dist/config/knex/enhancements/20251115000000_fix_task_decision_links_unique_constraint.d.ts +0 -21
- package/dist/config/knex/enhancements/20251115000000_fix_task_decision_links_unique_constraint.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251115000000_fix_task_decision_links_unique_constraint.js +0 -127
- package/dist/config/knex/enhancements/20251115000000_fix_task_decision_links_unique_constraint.js.map +0 -1
- package/dist/config/knex/enhancements/20251115100000_fix_read_keyword_index_v3_9_0.d.ts +0 -15
- package/dist/config/knex/enhancements/20251115100000_fix_read_keyword_index_v3_9_0.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251115100000_fix_read_keyword_index_v3_9_0.js +0 -69
- package/dist/config/knex/enhancements/20251115100000_fix_read_keyword_index_v3_9_0.js.map +0 -1
- package/dist/config/knex/enhancements/20251115110000_fix_cross_database_timestamps_v3_9_0.d.ts +0 -15
- package/dist/config/knex/enhancements/20251115110000_fix_cross_database_timestamps_v3_9_0.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251115110000_fix_cross_database_timestamps_v3_9_0.js +0 -132
- package/dist/config/knex/enhancements/20251115110000_fix_cross_database_timestamps_v3_9_0.js.map +0 -1
- package/dist/config/knex/enhancements/20251115120000_fix_all_cross_db_issues_v3_9_0.d.ts +0 -18
- package/dist/config/knex/enhancements/20251115120000_fix_all_cross_db_issues_v3_9_0.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251115120000_fix_all_cross_db_issues_v3_9_0.js +0 -47
- package/dist/config/knex/enhancements/20251115120000_fix_all_cross_db_issues_v3_9_0.js.map +0 -1
- package/dist/config/knex/enhancements/20251118000000_fix_native_db_test_issues_v3_9_1.d.ts +0 -20
- package/dist/config/knex/enhancements/20251118000000_fix_native_db_test_issues_v3_9_1.d.ts.map +0 -1
- package/dist/config/knex/enhancements/20251118000000_fix_native_db_test_issues_v3_9_1.js +0 -119
- package/dist/config/knex/enhancements/20251118000000_fix_native_db_test_issues_v3_9_1.js.map +0 -1
- package/dist/config/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts +0 -13
- package/dist/config/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts.map +0 -1
- package/dist/config/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js +0 -70
- package/dist/config/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js.map +0 -1
- package/dist/config/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts +0 -11
- package/dist/config/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts.map +0 -1
- package/dist/config/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js +0 -36
- package/dist/config/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js.map +0 -1
- package/dist/config/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts +0 -14
- package/dist/config/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts.map +0 -1
- package/dist/config/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js +0 -84
- package/dist/config/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js.map +0 -1
- package/dist/config/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts +0 -9
- package/dist/config/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts.map +0 -1
- package/dist/config/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js +0 -37
- package/dist/config/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js.map +0 -1
- package/dist/config/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts +0 -9
- package/dist/config/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts.map +0 -1
- package/dist/config/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js +0 -41
- package/dist/config/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js.map +0 -1
- package/dist/config/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts +0 -9
- package/dist/config/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts.map +0 -1
- package/dist/config/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js +0 -36
- package/dist/config/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js.map +0 -1
- package/dist/config/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts +0 -10
- package/dist/config/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts.map +0 -1
- package/dist/config/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js +0 -28
- package/dist/config/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js.map +0 -1
- package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.d.ts +0 -49
- package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.d.ts.map +0 -1
- package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.js +0 -974
- package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.js.map +0 -1
- package/dist/config/knex/upgrades/20251108000000_hotfix_v_tagged_constraints_project_id.d.ts +0 -14
- package/dist/config/knex/upgrades/20251108000000_hotfix_v_tagged_constraints_project_id.d.ts.map +0 -1
- package/dist/config/knex/upgrades/20251108000000_hotfix_v_tagged_constraints_project_id.js +0 -97
- package/dist/config/knex/upgrades/20251108000000_hotfix_v_tagged_constraints_project_id.js.map +0 -1
- package/dist/config/knex/upgrades/20251109000002_multi_project_cross_db_compat_v3_7_5.d.ts +0 -24
- package/dist/config/knex/upgrades/20251109000002_multi_project_cross_db_compat_v3_7_5.d.ts.map +0 -1
- package/dist/config/knex/upgrades/20251109000002_multi_project_cross_db_compat_v3_7_5.js +0 -303
- package/dist/config/knex/upgrades/20251109000002_multi_project_cross_db_compat_v3_7_5.js.map +0 -1
- package/dist/config/knex/upgrades/20251111235959_preemptive_fix_cross_database_v3_9_0.d.ts +0 -19
- package/dist/config/knex/upgrades/20251111235959_preemptive_fix_cross_database_v3_9_0.d.ts.map +0 -1
- package/dist/config/knex/upgrades/20251111235959_preemptive_fix_cross_database_v3_9_0.js +0 -196
- package/dist/config/knex/upgrades/20251111235959_preemptive_fix_cross_database_v3_9_0.js.map +0 -1
- package/dist/config/knex/upgrades/20251112000000_decision_intelligence_v3_9_0.d.ts +0 -22
- package/dist/config/knex/upgrades/20251112000000_decision_intelligence_v3_9_0.d.ts.map +0 -1
- package/dist/config/knex/upgrades/20251112000000_decision_intelligence_v3_9_0.js +0 -375
- package/dist/config/knex/upgrades/20251112000000_decision_intelligence_v3_9_0.js.map +0 -1
- package/dist/database/migrations/20251024010000_upgrade_v1_0_to_v1_1.d.ts +0 -16
- package/dist/database/migrations/20251024010000_upgrade_v1_0_to_v1_1.d.ts.map +0 -1
- package/dist/database/migrations/20251024010000_upgrade_v1_0_to_v1_1.js +0 -84
- package/dist/database/migrations/20251024010000_upgrade_v1_0_to_v1_1.js.map +0 -1
- package/dist/database/migrations/20251024020000_upgrade_v2_0_to_v2_1.d.ts +0 -14
- package/dist/database/migrations/20251024020000_upgrade_v2_0_to_v2_1.d.ts.map +0 -1
- package/dist/database/migrations/20251024020000_upgrade_v2_0_to_v2_1.js +0 -42
- package/dist/database/migrations/20251024020000_upgrade_v2_0_to_v2_1.js.map +0 -1
- package/dist/database/migrations/20251024030000_upgrade_v2_1_to_v3_0.d.ts +0 -17
- package/dist/database/migrations/20251024030000_upgrade_v2_1_to_v3_0.d.ts.map +0 -1
- package/dist/database/migrations/20251024030000_upgrade_v2_1_to_v3_0.js +0 -122
- package/dist/database/migrations/20251024030000_upgrade_v2_1_to_v3_0.js.map +0 -1
- package/dist/database/migrations/20251024040000_upgrade_v3_0_to_v3_2.d.ts +0 -12
- package/dist/database/migrations/20251024040000_upgrade_v3_0_to_v3_2.d.ts.map +0 -1
- package/dist/database/migrations/20251024040000_upgrade_v3_0_to_v3_2.js +0 -49
- package/dist/database/migrations/20251024040000_upgrade_v3_0_to_v3_2.js.map +0 -1
- package/dist/database/migrations/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts +0 -12
- package/dist/database/migrations/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts.map +0 -1
- package/dist/database/migrations/20251024050000_upgrade_v3_2_0_to_v3_2_2.js +0 -53
- package/dist/database/migrations/20251024050000_upgrade_v3_2_0_to_v3_2_2.js.map +0 -1
- package/dist/database/migrations/20251024060000_upgrade_v3_4_to_v3_5.d.ts +0 -12
- package/dist/database/migrations/20251024060000_upgrade_v3_4_to_v3_5.d.ts.map +0 -1
- package/dist/database/migrations/20251024060000_upgrade_v3_4_to_v3_5.js +0 -44
- package/dist/database/migrations/20251024060000_upgrade_v3_4_to_v3_5.js.map +0 -1
- package/dist/database/migrations/20251024070000_upgrade_v3_5_to_v3_6.d.ts +0 -13
- package/dist/database/migrations/20251024070000_upgrade_v3_5_to_v3_6.d.ts.map +0 -1
- package/dist/database/migrations/20251024070000_upgrade_v3_5_to_v3_6.js +0 -33
- package/dist/database/migrations/20251024070000_upgrade_v3_5_to_v3_6.js.map +0 -1
- package/dist/database/migrations/20251025020452_create_master_tables_wrapper.d.ts +0 -17
- package/dist/database/migrations/20251025020452_create_master_tables_wrapper.d.ts.map +0 -1
- package/dist/database/migrations/20251025020452_create_master_tables_wrapper.js +0 -119
- package/dist/database/migrations/20251025020452_create_master_tables_wrapper.js.map +0 -1
- package/dist/database/migrations/20251025021152_create_transaction_tables_wrapper.d.ts +0 -15
- package/dist/database/migrations/20251025021152_create_transaction_tables_wrapper.d.ts.map +0 -1
- package/dist/database/migrations/20251025021152_create_transaction_tables_wrapper.js +0 -282
- package/dist/database/migrations/20251025021152_create_transaction_tables_wrapper.js.map +0 -1
- package/dist/database/migrations/20251025021351_create_indexes_wrapper.d.ts +0 -21
- package/dist/database/migrations/20251025021351_create_indexes_wrapper.d.ts.map +0 -1
- package/dist/database/migrations/20251025021351_create_indexes_wrapper.js +0 -83
- package/dist/database/migrations/20251025021351_create_indexes_wrapper.js.map +0 -1
- package/dist/database/migrations/20251025021352_fix_mysql_index_syntax_wrapper.d.ts +0 -22
- package/dist/database/migrations/20251025021352_fix_mysql_index_syntax_wrapper.d.ts.map +0 -1
- package/dist/database/migrations/20251025021352_fix_mysql_index_syntax_wrapper.js +0 -94
- package/dist/database/migrations/20251025021352_fix_mysql_index_syntax_wrapper.js.map +0 -1
- package/dist/database/migrations/20251025021416_seed_master_data_wrapper.d.ts +0 -19
- package/dist/database/migrations/20251025021416_seed_master_data_wrapper.d.ts.map +0 -1
- package/dist/database/migrations/20251025021416_seed_master_data_wrapper.js +0 -120
- package/dist/database/migrations/20251025021416_seed_master_data_wrapper.js.map +0 -1
- package/dist/database/migrations/20251025070349_create_views_wrapper.d.ts +0 -14
- package/dist/database/migrations/20251025070349_create_views_wrapper.d.ts.map +0 -1
- package/dist/database/migrations/20251025070349_create_views_wrapper.js +0 -160
- package/dist/database/migrations/20251025070349_create_views_wrapper.js.map +0 -1
- package/dist/database/migrations/20251025081221_add_link_type_to_task_decision_links.d.ts +0 -9
- package/dist/database/migrations/20251025081221_add_link_type_to_task_decision_links.d.ts.map +0 -1
- package/dist/database/migrations/20251025081221_add_link_type_to_task_decision_links.js +0 -21
- package/dist/database/migrations/20251025081221_add_link_type_to_task_decision_links.js.map +0 -1
- package/dist/database/migrations/20251025082220_fix_task_dependencies_columns.d.ts +0 -13
- package/dist/database/migrations/20251025082220_fix_task_dependencies_columns.d.ts.map +0 -1
- package/dist/database/migrations/20251025082220_fix_task_dependencies_columns.js +0 -17
- package/dist/database/migrations/20251025082220_fix_task_dependencies_columns.js.map +0 -1
- package/dist/database/migrations/20251025090000_create_help_system_tables.d.ts +0 -27
- package/dist/database/migrations/20251025090000_create_help_system_tables.d.ts.map +0 -1
- package/dist/database/migrations/20251025090000_create_help_system_tables.js +0 -120
- package/dist/database/migrations/20251025090000_create_help_system_tables.js.map +0 -1
- package/dist/database/migrations/20251025090100_seed_help_categories_and_use_cases.d.ts +0 -18
- package/dist/database/migrations/20251025090100_seed_help_categories_and_use_cases.d.ts.map +0 -1
- package/dist/database/migrations/20251025090100_seed_help_categories_and_use_cases.js +0 -388
- package/dist/database/migrations/20251025090100_seed_help_categories_and_use_cases.js.map +0 -1
- package/dist/database/migrations/20251025100000_seed_help_metadata.d.ts +0 -20
- package/dist/database/migrations/20251025100000_seed_help_metadata.d.ts.map +0 -1
- package/dist/database/migrations/20251025100000_seed_help_metadata.js +0 -264
- package/dist/database/migrations/20251025100000_seed_help_metadata.js.map +0 -1
- package/dist/database/migrations/20251025100100_seed_remaining_use_cases.d.ts +0 -21
- package/dist/database/migrations/20251025100100_seed_remaining_use_cases.d.ts.map +0 -1
- package/dist/database/migrations/20251025100100_seed_remaining_use_cases.js +0 -281
- package/dist/database/migrations/20251025100100_seed_remaining_use_cases.js.map +0 -1
- package/dist/database/migrations/20251025120000_add_cascade_to_task_dependencies.d.ts +0 -13
- package/dist/database/migrations/20251025120000_add_cascade_to_task_dependencies.d.ts.map +0 -1
- package/dist/database/migrations/20251025120000_add_cascade_to_task_dependencies.js +0 -76
- package/dist/database/migrations/20251025120000_add_cascade_to_task_dependencies.js.map +0 -1
- package/dist/database/migrations/20251027000000_add_agent_reuse_system.d.ts +0 -17
- package/dist/database/migrations/20251027000000_add_agent_reuse_system.d.ts.map +0 -1
- package/dist/database/migrations/20251027000000_add_agent_reuse_system.js +0 -42
- package/dist/database/migrations/20251027000000_add_agent_reuse_system.js.map +0 -1
- package/dist/database/migrations/20251027010000_add_task_constraint_to_decision_context.d.ts +0 -10
- package/dist/database/migrations/20251027010000_add_task_constraint_to_decision_context.d.ts.map +0 -1
- package/dist/database/migrations/20251027010000_add_task_constraint_to_decision_context.js +0 -28
- package/dist/database/migrations/20251027010000_add_task_constraint_to_decision_context.js.map +0 -1
- package/dist/database/migrations/20251027020000_update_agent_reusability.d.ts +0 -21
- package/dist/database/migrations/20251027020000_update_agent_reusability.d.ts.map +0 -1
- package/dist/database/migrations/20251027020000_update_agent_reusability.js +0 -38
- package/dist/database/migrations/20251027020000_update_agent_reusability.js.map +0 -1
- package/dist/database/migrations/20251028000000_simplify_agent_system.d.ts +0 -26
- package/dist/database/migrations/20251028000000_simplify_agent_system.d.ts.map +0 -1
- package/dist/database/migrations/20251028000000_simplify_agent_system.js +0 -56
- package/dist/database/migrations/20251028000000_simplify_agent_system.js.map +0 -1
- package/dist/database/migrations/20251031000000_drop_orphaned_message_view.d.ts +0 -16
- package/dist/database/migrations/20251031000000_drop_orphaned_message_view.d.ts.map +0 -1
- package/dist/database/migrations/20251031000000_drop_orphaned_message_view.js +0 -52
- package/dist/database/migrations/20251031000000_drop_orphaned_message_view.js.map +0 -1
- package/dist/database/migrations/20251104000000_add_multi_project_v3_7_0.d.ts +0 -56
- package/dist/database/migrations/20251104000000_add_multi_project_v3_7_0.d.ts.map +0 -1
- package/dist/database/migrations/20251104000000_add_multi_project_v3_7_0.js +0 -701
- package/dist/database/migrations/20251104000000_add_multi_project_v3_7_0.js.map +0 -1
- package/dist/database/migrations/20251104000003_rename_constraints_created_by_to_agent_id.d.ts +0 -30
- package/dist/database/migrations/20251104000003_rename_constraints_created_by_to_agent_id.d.ts.map +0 -1
- package/dist/database/migrations/20251104000003_rename_constraints_created_by_to_agent_id.js +0 -180
- package/dist/database/migrations/20251104000003_rename_constraints_created_by_to_agent_id.js.map +0 -1
- package/dist/database/migrations/20251105000000_add_token_usage_table.d.ts +0 -19
- package/dist/database/migrations/20251105000000_add_token_usage_table.d.ts.map +0 -1
- package/dist/database/migrations/20251105000000_add_token_usage_table.js +0 -47
- package/dist/database/migrations/20251105000000_add_token_usage_table.js.map +0 -1
- package/dist/database/migrations/20251105000001_rename_decision_context_decided_by_to_agent_id.d.ts +0 -28
- package/dist/database/migrations/20251105000001_rename_decision_context_decided_by_to_agent_id.d.ts.map +0 -1
- package/dist/database/migrations/20251105000001_rename_decision_context_decided_by_to_agent_id.js +0 -123
- package/dist/database/migrations/20251105000001_rename_decision_context_decided_by_to_agent_id.js.map +0 -1
- package/dist/database/migrations/20251106000000_fix_master_tables_project_id_v3_7_3.d.ts +0 -36
- package/dist/database/migrations/20251106000000_fix_master_tables_project_id_v3_7_3.d.ts.map +0 -1
- package/dist/database/migrations/20251106000000_fix_master_tables_project_id_v3_7_3.js +0 -559
- package/dist/database/migrations/20251106000000_fix_master_tables_project_id_v3_7_3.js.map +0 -1
- package/dist/database/migrations/20251108000000_add_planning_layers_v3_8_0.d.ts +0 -26
- package/dist/database/migrations/20251108000000_add_planning_layers_v3_8_0.d.ts.map +0 -1
- package/dist/database/migrations/20251108000000_add_planning_layers_v3_8_0.js +0 -78
- package/dist/database/migrations/20251108000000_add_planning_layers_v3_8_0.js.map +0 -1
- package/dist/database/migrations/20251108000000_hotfix_v_tagged_constraints_project_id.d.ts +0 -17
- package/dist/database/migrations/20251108000000_hotfix_v_tagged_constraints_project_id.d.ts.map +0 -1
- package/dist/database/migrations/20251108000000_hotfix_v_tagged_constraints_project_id.js +0 -78
- package/dist/database/migrations/20251108000000_hotfix_v_tagged_constraints_project_id.js.map +0 -1
- package/dist/database/migrations/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.d.ts +0 -24
- package/dist/database/migrations/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.d.ts.map +0 -1
- package/dist/database/migrations/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.js +0 -63
- package/dist/database/migrations/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.js.map +0 -1
- package/dist/database/migrations/20251109000002_multi_project_cross_db_compat_v3_7_5.d.ts +0 -27
- package/dist/database/migrations/20251109000002_multi_project_cross_db_compat_v3_7_5.d.ts.map +0 -1
- package/dist/database/migrations/20251109000002_multi_project_cross_db_compat_v3_7_5.js +0 -276
- package/dist/database/migrations/20251109000002_multi_project_cross_db_compat_v3_7_5.js.map +0 -1
- package/dist/database/migrations/20251109000003_token_usage_cross_db_compat_v3_7_5.d.ts +0 -27
- package/dist/database/migrations/20251109000003_token_usage_cross_db_compat_v3_7_5.d.ts.map +0 -1
- package/dist/database/migrations/20251109000003_token_usage_cross_db_compat_v3_7_5.js +0 -67
- package/dist/database/migrations/20251109000003_token_usage_cross_db_compat_v3_7_5.js.map +0 -1
- package/dist/database/migrations/20251109010000_tool_cleanup_v3_8_0.d.ts +0 -32
- package/dist/database/migrations/20251109010000_tool_cleanup_v3_8_0.d.ts.map +0 -1
- package/dist/database/migrations/20251109010000_tool_cleanup_v3_8_0.js +0 -352
- package/dist/database/migrations/20251109010000_tool_cleanup_v3_8_0.js.map +0 -1
- package/dist/database/migrations/20251109020000_fix_missing_help_actions_v3_8_0.d.ts +0 -35
- package/dist/database/migrations/20251109020000_fix_missing_help_actions_v3_8_0.d.ts.map +0 -1
- package/dist/database/migrations/20251109020000_fix_missing_help_actions_v3_8_0.js +0 -237
- package/dist/database/migrations/20251109020000_fix_missing_help_actions_v3_8_0.js.map +0 -1
- package/dist/database/migrations/20251111235959_preemptive_fix_cross_database_v3_9_0.d.ts +0 -22
- package/dist/database/migrations/20251111235959_preemptive_fix_cross_database_v3_9_0.d.ts.map +0 -1
- package/dist/database/migrations/20251111235959_preemptive_fix_cross_database_v3_9_0.js +0 -190
- package/dist/database/migrations/20251111235959_preemptive_fix_cross_database_v3_9_0.js.map +0 -1
- package/dist/database/migrations/20251112000000_decision_intelligence_v3_9_0.d.ts +0 -32
- package/dist/database/migrations/20251112000000_decision_intelligence_v3_9_0.d.ts.map +0 -1
- package/dist/database/migrations/20251112000000_decision_intelligence_v3_9_0.js +0 -342
- package/dist/database/migrations/20251112000000_decision_intelligence_v3_9_0.js.map +0 -1
- package/dist/database/migrations/20251112000001_fix_task_file_links_schema_v3_9_0.d.ts +0 -25
- package/dist/database/migrations/20251112000001_fix_task_file_links_schema_v3_9_0.d.ts.map +0 -1
- package/dist/database/migrations/20251112000001_fix_task_file_links_schema_v3_9_0.js +0 -109
- package/dist/database/migrations/20251112000001_fix_task_file_links_schema_v3_9_0.js.map +0 -1
- package/dist/database/migrations/20251112000002_fix_task_pruned_files_schema_v3_9_0.d.ts +0 -24
- package/dist/database/migrations/20251112000002_fix_task_pruned_files_schema_v3_9_0.d.ts.map +0 -1
- package/dist/database/migrations/20251112000002_fix_task_pruned_files_schema_v3_9_0.js +0 -111
- package/dist/database/migrations/20251112000002_fix_task_pruned_files_schema_v3_9_0.js.map +0 -1
- package/dist/database/migrations/20251114000000_fix_v_tagged_decisions_numeric_support.d.ts +0 -24
- package/dist/database/migrations/20251114000000_fix_v_tagged_decisions_numeric_support.d.ts.map +0 -1
- package/dist/database/migrations/20251114000000_fix_v_tagged_decisions_numeric_support.js +0 -90
- package/dist/database/migrations/20251114000000_fix_v_tagged_decisions_numeric_support.js.map +0 -1
- package/dist/database/migrations/20251114120000_add_suggest_tool_to_help_system_v3_9_0.d.ts +0 -20
- package/dist/database/migrations/20251114120000_add_suggest_tool_to_help_system_v3_9_0.d.ts.map +0 -1
- package/dist/database/migrations/20251114120000_add_suggest_tool_to_help_system_v3_9_0.js +0 -275
- package/dist/database/migrations/20251114120000_add_suggest_tool_to_help_system_v3_9_0.js.map +0 -1
- package/dist/database/migrations/20251114121000_add_suggest_tool_use_cases_v3_9_0.d.ts +0 -20
- package/dist/database/migrations/20251114121000_add_suggest_tool_use_cases_v3_9_0.d.ts.map +0 -1
- package/dist/database/migrations/20251114121000_add_suggest_tool_use_cases_v3_9_0.js +0 -246
- package/dist/database/migrations/20251114121000_add_suggest_tool_use_cases_v3_9_0.js.map +0 -1
- package/dist/database/migrations/20251114130000_seed_builtin_policies_v3_9_0.d.ts +0 -23
- package/dist/database/migrations/20251114130000_seed_builtin_policies_v3_9_0.d.ts.map +0 -1
- package/dist/database/migrations/20251114130000_seed_builtin_policies_v3_9_0.js +0 -175
- package/dist/database/migrations/20251114130000_seed_builtin_policies_v3_9_0.js.map +0 -1
- package/dist/database/migrations/20251114140000_add_policy_help_v3_9_0.d.ts +0 -21
- package/dist/database/migrations/20251114140000_add_policy_help_v3_9_0.d.ts.map +0 -1
- package/dist/database/migrations/20251114140000_add_policy_help_v3_9_0.js +0 -235
- package/dist/database/migrations/20251114140000_add_policy_help_v3_9_0.js.map +0 -1
- package/dist/database/migrations/20251114141000_add_policy_use_cases_v3_9_0.d.ts +0 -21
- package/dist/database/migrations/20251114141000_add_policy_use_cases_v3_9_0.d.ts.map +0 -1
- package/dist/database/migrations/20251114141000_add_policy_use_cases_v3_9_0.js +0 -244
- package/dist/database/migrations/20251114141000_add_policy_use_cases_v3_9_0.js.map +0 -1
- package/dist/database/migrations/20251114150000_fix_policy_unique_constraint_v3_9_0.d.ts +0 -23
- package/dist/database/migrations/20251114150000_fix_policy_unique_constraint_v3_9_0.d.ts.map +0 -1
- package/dist/database/migrations/20251114150000_fix_policy_unique_constraint_v3_9_0.js +0 -70
- package/dist/database/migrations/20251114150000_fix_policy_unique_constraint_v3_9_0.js.map +0 -1
- package/dist/database/migrations/20251115000000_fix_task_decision_links_unique_constraint.d.ts +0 -29
- package/dist/database/migrations/20251115000000_fix_task_decision_links_unique_constraint.d.ts.map +0 -1
- package/dist/database/migrations/20251115000000_fix_task_decision_links_unique_constraint.js +0 -135
- package/dist/database/migrations/20251115000000_fix_task_decision_links_unique_constraint.js.map +0 -1
- package/dist/database/migrations/20251115100000_fix_read_keyword_index_v3_9_0.d.ts +0 -23
- package/dist/database/migrations/20251115100000_fix_read_keyword_index_v3_9_0.d.ts.map +0 -1
- package/dist/database/migrations/20251115100000_fix_read_keyword_index_v3_9_0.js +0 -42
- package/dist/database/migrations/20251115100000_fix_read_keyword_index_v3_9_0.js.map +0 -1
- package/dist/database/migrations/20251115110000_fix_cross_database_timestamps_v3_9_0.d.ts +0 -25
- package/dist/database/migrations/20251115110000_fix_cross_database_timestamps_v3_9_0.d.ts.map +0 -1
- package/dist/database/migrations/20251115110000_fix_cross_database_timestamps_v3_9_0.js +0 -102
- package/dist/database/migrations/20251115110000_fix_cross_database_timestamps_v3_9_0.js.map +0 -1
- package/dist/database/migrations/20251115120000_fix_all_cross_db_issues_v3_9_0.d.ts +0 -25
- package/dist/database/migrations/20251115120000_fix_all_cross_db_issues_v3_9_0.d.ts.map +0 -1
- package/dist/database/migrations/20251115120000_fix_all_cross_db_issues_v3_9_0.js +0 -55
- package/dist/database/migrations/20251115120000_fix_all_cross_db_issues_v3_9_0.js.map +0 -1
- package/dist/database/migrations/20251118000000_eliminate_views_v3_9_0.d.ts +0 -29
- package/dist/database/migrations/20251118000000_eliminate_views_v3_9_0.d.ts.map +0 -1
- package/dist/database/migrations/20251118000000_eliminate_views_v3_9_0.js +0 -62
- package/dist/database/migrations/20251118000000_eliminate_views_v3_9_0.js.map +0 -1
- package/dist/database/migrations/20251119000000_add_constraint_text_hash_v3_9_1.d.ts +0 -25
- package/dist/database/migrations/20251119000000_add_constraint_text_hash_v3_9_1.d.ts.map +0 -1
- package/dist/database/migrations/20251119000000_add_constraint_text_hash_v3_9_1.js +0 -100
- package/dist/database/migrations/20251119000000_add_constraint_text_hash_v3_9_1.js.map +0 -1
- package/dist/tests/database/migrations/idempotency.test.d.ts +0 -2
- package/dist/tests/database/migrations/idempotency.test.d.ts.map +0 -1
- package/dist/tests/database/migrations/idempotency.test.js +0 -331
- package/dist/tests/database/migrations/idempotency.test.js.map +0 -1
- package/dist/tests/database/migrations/upgrade-paths.test.d.ts +0 -2
- package/dist/tests/database/migrations/upgrade-paths.test.d.ts.map +0 -1
- package/dist/tests/database/migrations/upgrade-paths.test.js +0 -249
- package/dist/tests/database/migrations/upgrade-paths.test.js.map +0 -1
- package/dist/utils/activity-logging.d.ts +0 -114
- package/dist/utils/activity-logging.d.ts.map +0 -1
- package/dist/utils/activity-logging.js +0 -169
- package/dist/utils/activity-logging.js.map +0 -1
- package/docs/DECISION_TO_TASK_MIGRATION_GUIDE.md +0 -457
- package/docs/TASK_DEPENDENCIES.md +0 -748
- package/docs/TASK_LINKING.md +0 -909
- package/docs/TASK_MIGRATION.md +0 -701
- package/docs/TASK_SYSTEM.md +0 -1314
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
import { describe, it } from 'node:test';
|
|
16
16
|
import assert from 'node:assert';
|
|
17
17
|
import { createHash } from 'crypto';
|
|
18
|
-
import { runTestsOnAllDatabases, getLayerId,
|
|
18
|
+
import { runTestsOnAllDatabases, getLayerId, getTagId } from './test-harness.js';
|
|
19
19
|
// ============================================================================
|
|
20
20
|
// Hash Helper
|
|
21
21
|
// ============================================================================
|
|
@@ -32,7 +32,7 @@ function hashConstraintText(text) {
|
|
|
32
32
|
* Get task status ID by status name
|
|
33
33
|
*/
|
|
34
34
|
async function getStatusId(db, statusName) {
|
|
35
|
-
const status = await db('
|
|
35
|
+
const status = await db('v4_task_statuses').where({ name: statusName }).first();
|
|
36
36
|
assert.ok(status, `Status "${statusName}" should exist`);
|
|
37
37
|
return status.id;
|
|
38
38
|
}
|
|
@@ -42,20 +42,17 @@ async function getStatusId(db, statusName) {
|
|
|
42
42
|
async function insertTask(db, data) {
|
|
43
43
|
const statusId = await getStatusId(db, data.status || 'todo');
|
|
44
44
|
const layerId = data.layer ? await getLayerId(db, data.layer) : await getLayerId(db, 'business');
|
|
45
|
-
const agentId = await getAgentId(db, data.assigned_agent || 'system');
|
|
46
45
|
const timestamp = Math.floor(Date.now() / 1000);
|
|
47
46
|
const insertData = {
|
|
48
47
|
title: data.title,
|
|
49
48
|
status_id: statusId,
|
|
50
49
|
priority: data.priority || 2,
|
|
51
50
|
layer_id: layerId,
|
|
52
|
-
assigned_agent_id: agentId,
|
|
53
|
-
created_by_agent_id: agentId,
|
|
54
51
|
project_id: 1,
|
|
55
52
|
created_ts: timestamp,
|
|
56
53
|
updated_ts: timestamp,
|
|
57
54
|
};
|
|
58
|
-
const result = await db('
|
|
55
|
+
const result = await db('v4_tasks').insert(insertData);
|
|
59
56
|
// Get the inserted ID (different return format across databases)
|
|
60
57
|
let taskId;
|
|
61
58
|
if (Array.isArray(result) && result.length > 0) {
|
|
@@ -66,7 +63,7 @@ async function insertTask(db, data) {
|
|
|
66
63
|
}
|
|
67
64
|
else {
|
|
68
65
|
// Fallback: query the last inserted task
|
|
69
|
-
const task = await db('
|
|
66
|
+
const task = await db('v4_tasks')
|
|
70
67
|
.where({ title: data.title, project_id: 1 })
|
|
71
68
|
.orderBy('id', 'desc')
|
|
72
69
|
.first();
|
|
@@ -74,7 +71,7 @@ async function insertTask(db, data) {
|
|
|
74
71
|
}
|
|
75
72
|
// Insert task details if description provided
|
|
76
73
|
if (data.description) {
|
|
77
|
-
await db('
|
|
74
|
+
await db('v4_task_details').insert({
|
|
78
75
|
task_id: taskId,
|
|
79
76
|
description: data.description,
|
|
80
77
|
});
|
|
@@ -85,10 +82,10 @@ async function insertTask(db, data) {
|
|
|
85
82
|
* Assert task has expected status
|
|
86
83
|
*/
|
|
87
84
|
async function assertTaskHasStatus(db, taskId, expectedStatus) {
|
|
88
|
-
const task = await db('
|
|
89
|
-
.join('
|
|
90
|
-
.where({ '
|
|
91
|
-
.select('
|
|
85
|
+
const task = await db('v4_tasks')
|
|
86
|
+
.join('v4_task_statuses', 'v4_tasks.status_id', 'v4_task_statuses.id')
|
|
87
|
+
.where({ 'v4_tasks.id': taskId })
|
|
88
|
+
.select('v4_task_statuses.name as status')
|
|
92
89
|
.first();
|
|
93
90
|
assert.ok(task, `Task ${taskId} should exist`);
|
|
94
91
|
assert.strictEqual(task.status, expectedStatus, `Task ${taskId} status should be ${expectedStatus}`);
|
|
@@ -110,7 +107,7 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
110
107
|
});
|
|
111
108
|
assert.ok(taskId, 'Should return task ID');
|
|
112
109
|
// Verify task exists
|
|
113
|
-
const task = await db('
|
|
110
|
+
const task = await db('v4_tasks').where({ id: taskId, project_id: 1 }).first();
|
|
114
111
|
assert.strictEqual(task.title, 'Implement authentication');
|
|
115
112
|
assert.strictEqual(task.priority, 3);
|
|
116
113
|
await assertTaskHasStatus(db, taskId, 'todo');
|
|
@@ -122,16 +119,15 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
122
119
|
description: 'This is a detailed description',
|
|
123
120
|
priority: 4,
|
|
124
121
|
layer: 'infrastructure',
|
|
125
|
-
assigned_agent: 'backend-specialist',
|
|
126
122
|
});
|
|
127
123
|
// Verify core task data
|
|
128
|
-
const task = await db('
|
|
124
|
+
const task = await db('v4_tasks').where({ id: taskId, project_id: 1 }).first();
|
|
129
125
|
assert.strictEqual(task.title, 'Complex task with all fields');
|
|
130
126
|
assert.strictEqual(task.priority, 4);
|
|
131
127
|
const layerId = await getLayerId(db, 'infrastructure');
|
|
132
128
|
assert.strictEqual(task.layer_id, layerId);
|
|
133
129
|
// Verify task details
|
|
134
|
-
const details = await db('
|
|
130
|
+
const details = await db('v4_task_details').where({ task_id: taskId }).first();
|
|
135
131
|
assert.ok(details, 'Task details should exist');
|
|
136
132
|
assert.strictEqual(details.description, 'This is a detailed description');
|
|
137
133
|
});
|
|
@@ -142,7 +138,7 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
142
138
|
priority: 2,
|
|
143
139
|
});
|
|
144
140
|
// Update title and priority
|
|
145
|
-
await db('
|
|
141
|
+
await db('v4_tasks')
|
|
146
142
|
.where({ id: taskId, project_id: 1 })
|
|
147
143
|
.update({
|
|
148
144
|
title: 'Updated title',
|
|
@@ -150,7 +146,7 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
150
146
|
updated_ts: Math.floor(Date.now() / 1000),
|
|
151
147
|
});
|
|
152
148
|
// Verify update
|
|
153
|
-
const task = await db('
|
|
149
|
+
const task = await db('v4_tasks').where({ id: taskId, project_id: 1 }).first();
|
|
154
150
|
assert.strictEqual(task.title, 'Updated title');
|
|
155
151
|
assert.strictEqual(task.priority, 4);
|
|
156
152
|
});
|
|
@@ -160,9 +156,9 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
160
156
|
title: 'Task to delete',
|
|
161
157
|
});
|
|
162
158
|
// Delete task
|
|
163
|
-
await db('
|
|
159
|
+
await db('v4_tasks').where({ id: taskId, project_id: 1 }).delete();
|
|
164
160
|
// Verify deletion
|
|
165
|
-
const task = await db('
|
|
161
|
+
const task = await db('v4_tasks').where({ id: taskId, project_id: 1 }).first();
|
|
166
162
|
assert.strictEqual(task, undefined, 'Task should be deleted');
|
|
167
163
|
});
|
|
168
164
|
});
|
|
@@ -172,14 +168,12 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
172
168
|
describe('Foreign Key Constraints', () => {
|
|
173
169
|
it('should enforce FK constraint on status_id', async () => {
|
|
174
170
|
const db = getDb();
|
|
175
|
-
const insertPromise = db('
|
|
171
|
+
const insertPromise = db('v4_tasks').insert({
|
|
176
172
|
title: 'Invalid status task',
|
|
177
173
|
status_id: 99999, // Non-existent status
|
|
178
174
|
priority: 2,
|
|
179
175
|
project_id: 1,
|
|
180
176
|
layer_id: 1,
|
|
181
|
-
assigned_agent_id: 1,
|
|
182
|
-
created_by_agent_id: 1,
|
|
183
177
|
created_ts: Math.floor(Date.now() / 1000),
|
|
184
178
|
updated_ts: Math.floor(Date.now() / 1000),
|
|
185
179
|
});
|
|
@@ -190,33 +184,12 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
190
184
|
it('should enforce FK constraint on layer_id', async () => {
|
|
191
185
|
const db = getDb();
|
|
192
186
|
const statusId = await getStatusId(db, 'todo');
|
|
193
|
-
const insertPromise = db('
|
|
187
|
+
const insertPromise = db('v4_tasks').insert({
|
|
194
188
|
title: 'Invalid layer task',
|
|
195
189
|
status_id: statusId,
|
|
196
190
|
priority: 2,
|
|
197
191
|
project_id: 1,
|
|
198
192
|
layer_id: 99999, // Non-existent layer
|
|
199
|
-
assigned_agent_id: 1,
|
|
200
|
-
created_by_agent_id: 1,
|
|
201
|
-
created_ts: Math.floor(Date.now() / 1000),
|
|
202
|
-
updated_ts: Math.floor(Date.now() / 1000),
|
|
203
|
-
});
|
|
204
|
-
await assert.rejects(insertPromise, {
|
|
205
|
-
message: /foreign key constraint|violates foreign key|Cannot add or update a child row/i,
|
|
206
|
-
});
|
|
207
|
-
});
|
|
208
|
-
it('should enforce FK constraint on assigned_agent_id', async () => {
|
|
209
|
-
const db = getDb();
|
|
210
|
-
const statusId = await getStatusId(db, 'todo');
|
|
211
|
-
const layerId = await getLayerId(db, 'business');
|
|
212
|
-
const insertPromise = db('t_tasks').insert({
|
|
213
|
-
title: 'Invalid agent task',
|
|
214
|
-
status_id: statusId,
|
|
215
|
-
priority: 2,
|
|
216
|
-
project_id: 1,
|
|
217
|
-
layer_id: layerId,
|
|
218
|
-
assigned_agent_id: 99999, // Non-existent agent
|
|
219
|
-
created_by_agent_id: 1,
|
|
220
193
|
created_ts: Math.floor(Date.now() / 1000),
|
|
221
194
|
updated_ts: Math.floor(Date.now() / 1000),
|
|
222
195
|
});
|
|
@@ -235,7 +208,7 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
235
208
|
await assertTaskHasStatus(db, taskId, 'todo');
|
|
236
209
|
// Move to in_progress
|
|
237
210
|
const inProgressId = await getStatusId(db, 'in_progress');
|
|
238
|
-
await db('
|
|
211
|
+
await db('v4_tasks')
|
|
239
212
|
.where({ id: taskId })
|
|
240
213
|
.update({
|
|
241
214
|
status_id: inProgressId,
|
|
@@ -250,7 +223,7 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
250
223
|
// Move to done
|
|
251
224
|
const doneId = await getStatusId(db, 'done');
|
|
252
225
|
const completedTs = Math.floor(Date.now() / 1000);
|
|
253
|
-
await db('
|
|
226
|
+
await db('v4_tasks')
|
|
254
227
|
.where({ id: taskId })
|
|
255
228
|
.update({
|
|
256
229
|
status_id: doneId,
|
|
@@ -259,14 +232,14 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
259
232
|
});
|
|
260
233
|
await assertTaskHasStatus(db, taskId, 'done');
|
|
261
234
|
// Verify completed_ts was set
|
|
262
|
-
const task = await db('
|
|
235
|
+
const task = await db('v4_tasks').where({ id: taskId }).first();
|
|
263
236
|
assert.ok(task.completed_ts, 'completed_ts should be set');
|
|
264
237
|
});
|
|
265
238
|
it('should transition to blocked status', async () => {
|
|
266
239
|
const db = getDb();
|
|
267
240
|
const taskId = await insertTask(db, { title: 'Blocked task' });
|
|
268
241
|
const blockedId = await getStatusId(db, 'blocked');
|
|
269
|
-
await db('
|
|
242
|
+
await db('v4_tasks')
|
|
270
243
|
.where({ id: taskId })
|
|
271
244
|
.update({
|
|
272
245
|
status_id: blockedId,
|
|
@@ -278,7 +251,7 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
278
251
|
const db = getDb();
|
|
279
252
|
const taskId = await insertTask(db, { title: 'Archive task' });
|
|
280
253
|
const archivedId = await getStatusId(db, 'archived');
|
|
281
|
-
await db('
|
|
254
|
+
await db('v4_tasks')
|
|
282
255
|
.where({ id: taskId })
|
|
283
256
|
.update({
|
|
284
257
|
status_id: archivedId,
|
|
@@ -296,25 +269,25 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
296
269
|
const taskId = await insertTask(db, { title: 'Task with files' });
|
|
297
270
|
const timestamp = Math.floor(Date.now() / 1000);
|
|
298
271
|
// First, create file records in m_files
|
|
299
|
-
const file1Result = await db('
|
|
300
|
-
const file2Result = await db('
|
|
301
|
-
const file3Result = await db('
|
|
272
|
+
const file1Result = await db('v4_files').insert({ project_id: 1, path: 'src/auth/login.ts' });
|
|
273
|
+
const file2Result = await db('v4_files').insert({ project_id: 1, path: 'src/auth/types.ts' });
|
|
274
|
+
const file3Result = await db('v4_files').insert({ project_id: 1, path: 'src/auth/old.ts' });
|
|
302
275
|
// Get file IDs
|
|
303
|
-
const file1 = await db('
|
|
304
|
-
const file2 = await db('
|
|
305
|
-
const file3 = await db('
|
|
276
|
+
const file1 = await db('v4_files').where({ path: 'src/auth/login.ts', project_id: 1 }).first();
|
|
277
|
+
const file2 = await db('v4_files').where({ path: 'src/auth/types.ts', project_id: 1 }).first();
|
|
278
|
+
const file3 = await db('v4_files').where({ path: 'src/auth/old.ts', project_id: 1 }).first();
|
|
306
279
|
// Insert file links
|
|
307
|
-
await db('
|
|
280
|
+
await db('v4_task_file_links').insert([
|
|
308
281
|
{ task_id: taskId, file_id: file1.id, project_id: 1, linked_ts: timestamp },
|
|
309
282
|
{ task_id: taskId, file_id: file2.id, project_id: 1, linked_ts: timestamp },
|
|
310
283
|
{ task_id: taskId, file_id: file3.id, project_id: 1, linked_ts: timestamp },
|
|
311
284
|
]);
|
|
312
285
|
// Verify file links
|
|
313
|
-
const fileLinks = await db('
|
|
314
|
-
.join('
|
|
315
|
-
.where({ '
|
|
316
|
-
.select('
|
|
317
|
-
.orderBy('
|
|
286
|
+
const fileLinks = await db('v4_task_file_links')
|
|
287
|
+
.join('v4_files', 'v4_task_file_links.file_id', 'v4_files.id')
|
|
288
|
+
.where({ 'v4_task_file_links.task_id': taskId })
|
|
289
|
+
.select('v4_task_file_links.*', 'v4_files.path')
|
|
290
|
+
.orderBy('v4_files.path');
|
|
318
291
|
assert.strictEqual(fileLinks.length, 3);
|
|
319
292
|
assert.strictEqual(fileLinks[0].path, 'src/auth/login.ts');
|
|
320
293
|
assert.strictEqual(fileLinks[1].path, 'src/auth/old.ts');
|
|
@@ -325,16 +298,16 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
325
298
|
const taskId = await insertTask(db, { title: 'Unique file link test' });
|
|
326
299
|
const timestamp = Math.floor(Date.now() / 1000);
|
|
327
300
|
// Create a file record
|
|
328
|
-
await db('
|
|
329
|
-
const file = await db('
|
|
330
|
-
await db('
|
|
301
|
+
await db('v4_files').insert({ project_id: 1, path: 'src/unique-test.ts' });
|
|
302
|
+
const file = await db('v4_files').where({ path: 'src/unique-test.ts', project_id: 1 }).first();
|
|
303
|
+
await db('v4_task_file_links').insert({
|
|
331
304
|
task_id: taskId,
|
|
332
305
|
file_id: file.id,
|
|
333
306
|
project_id: 1,
|
|
334
307
|
linked_ts: timestamp,
|
|
335
308
|
});
|
|
336
309
|
// Try to insert duplicate
|
|
337
|
-
const duplicatePromise = db('
|
|
310
|
+
const duplicatePromise = db('v4_task_file_links').insert({
|
|
338
311
|
task_id: taskId,
|
|
339
312
|
file_id: file.id,
|
|
340
313
|
project_id: 1,
|
|
@@ -349,18 +322,18 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
349
322
|
const taskId = await insertTask(db, { title: 'Cascade delete file links' });
|
|
350
323
|
const timestamp = Math.floor(Date.now() / 1000);
|
|
351
324
|
// Create a file record
|
|
352
|
-
await db('
|
|
353
|
-
const file = await db('
|
|
354
|
-
await db('
|
|
325
|
+
await db('v4_files').insert({ project_id: 1, path: 'src/cascade-test.ts' });
|
|
326
|
+
const file = await db('v4_files').where({ path: 'src/cascade-test.ts', project_id: 1 }).first();
|
|
327
|
+
await db('v4_task_file_links').insert({
|
|
355
328
|
task_id: taskId,
|
|
356
329
|
file_id: file.id,
|
|
357
330
|
project_id: 1,
|
|
358
331
|
linked_ts: timestamp,
|
|
359
332
|
});
|
|
360
333
|
// Delete task
|
|
361
|
-
await db('
|
|
334
|
+
await db('v4_tasks').where({ id: taskId }).delete();
|
|
362
335
|
// Verify file links were cascade deleted
|
|
363
|
-
const fileLinks = await db('
|
|
336
|
+
const fileLinks = await db('v4_task_file_links').where({ task_id: taskId });
|
|
364
337
|
assert.strictEqual(fileLinks.length, 0, 'File links should be cascade deleted');
|
|
365
338
|
});
|
|
366
339
|
});
|
|
@@ -375,17 +348,17 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
375
348
|
const apiTagId = await getTagId(db, 'api');
|
|
376
349
|
const securityTagId = await getTagId(db, 'security');
|
|
377
350
|
const perfTagId = await getTagId(db, 'performance');
|
|
378
|
-
// Insert tag associations (
|
|
379
|
-
await db('
|
|
380
|
-
{ task_id: taskId, tag_id: apiTagId },
|
|
381
|
-
{ task_id: taskId, tag_id: securityTagId },
|
|
382
|
-
{ task_id: taskId, tag_id: perfTagId },
|
|
351
|
+
// Insert tag associations (v4_task_tags requires project_id)
|
|
352
|
+
await db('v4_task_tags').insert([
|
|
353
|
+
{ task_id: taskId, tag_id: apiTagId, project_id: 1 },
|
|
354
|
+
{ task_id: taskId, tag_id: securityTagId, project_id: 1 },
|
|
355
|
+
{ task_id: taskId, tag_id: perfTagId, project_id: 1 },
|
|
383
356
|
]);
|
|
384
357
|
// Verify tags
|
|
385
|
-
const tags = await db('
|
|
386
|
-
.join('
|
|
387
|
-
.where({ '
|
|
388
|
-
.select('
|
|
358
|
+
const tags = await db('v4_task_tags as tt')
|
|
359
|
+
.join('v4_tags as t', 'tt.tag_id', 't.id')
|
|
360
|
+
.where({ 'tt.task_id': taskId })
|
|
361
|
+
.select('t.name as tag_name');
|
|
389
362
|
assert.strictEqual(tags.length, 3);
|
|
390
363
|
const tagNames = tags.map(t => t.tag_name);
|
|
391
364
|
assert.ok(tagNames.includes('api'));
|
|
@@ -396,14 +369,15 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
396
369
|
const db = getDb();
|
|
397
370
|
const taskId = await insertTask(db, { title: 'Task with tags for cascade' });
|
|
398
371
|
const tagId = await getTagId(db, 'test');
|
|
399
|
-
await db('
|
|
372
|
+
await db('v4_task_tags').insert({
|
|
400
373
|
task_id: taskId,
|
|
401
374
|
tag_id: tagId,
|
|
375
|
+
project_id: 1,
|
|
402
376
|
});
|
|
403
377
|
// Delete task
|
|
404
|
-
await db('
|
|
378
|
+
await db('v4_tasks').where({ id: taskId }).delete();
|
|
405
379
|
// Verify tags were cascade deleted
|
|
406
|
-
const tags = await db('
|
|
380
|
+
const tags = await db('v4_task_tags').where({ task_id: taskId });
|
|
407
381
|
assert.strictEqual(tags.length, 0, 'Tags should be cascade deleted');
|
|
408
382
|
});
|
|
409
383
|
});
|
|
@@ -416,13 +390,14 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
416
390
|
const blockerTaskId = await insertTask(db, { title: 'Blocker task' });
|
|
417
391
|
const blockedTaskId = await insertTask(db, { title: 'Blocked task' });
|
|
418
392
|
// Add dependency: blocker blocks blocked
|
|
419
|
-
await db('
|
|
393
|
+
await db('v4_task_dependencies').insert({
|
|
420
394
|
blocker_task_id: blockerTaskId,
|
|
421
395
|
blocked_task_id: blockedTaskId,
|
|
396
|
+
project_id: 1,
|
|
422
397
|
created_ts: Math.floor(Date.now() / 1000),
|
|
423
398
|
});
|
|
424
399
|
// Verify dependency exists
|
|
425
|
-
const dependency = await db('
|
|
400
|
+
const dependency = await db('v4_task_dependencies')
|
|
426
401
|
.where({ blocker_task_id: blockerTaskId, blocked_task_id: blockedTaskId })
|
|
427
402
|
.first();
|
|
428
403
|
assert.ok(dependency, 'Dependency should exist');
|
|
@@ -431,9 +406,10 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
431
406
|
const db = getDb();
|
|
432
407
|
const taskId = await insertTask(db, { title: 'Self-blocking task' });
|
|
433
408
|
// Try to create self-dependency
|
|
434
|
-
const selfDepPromise = db('
|
|
409
|
+
const selfDepPromise = db('v4_task_dependencies').insert({
|
|
435
410
|
blocker_task_id: taskId,
|
|
436
411
|
blocked_task_id: taskId, // Same task
|
|
412
|
+
project_id: 1,
|
|
437
413
|
created_ts: Math.floor(Date.now() / 1000),
|
|
438
414
|
});
|
|
439
415
|
// Should fail (either via trigger or application-level check)
|
|
@@ -444,7 +420,7 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
444
420
|
await selfDepPromise;
|
|
445
421
|
// If insert succeeds, check if there's a trigger that prevents it
|
|
446
422
|
// This is database-specific behavior
|
|
447
|
-
const dep = await db('
|
|
423
|
+
const dep = await db('v4_task_dependencies')
|
|
448
424
|
.where({ blocker_task_id: taskId, blocked_task_id: taskId })
|
|
449
425
|
.first();
|
|
450
426
|
// If dependency was inserted, we need to check if the application
|
|
@@ -483,9 +459,10 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
483
459
|
const taskA = await insertTask(db, { title: 'Task A' });
|
|
484
460
|
const taskB = await insertTask(db, { title: 'Task B' });
|
|
485
461
|
// Create A blocks B
|
|
486
|
-
await db('
|
|
462
|
+
await db('v4_task_dependencies').insert({
|
|
487
463
|
blocker_task_id: taskA,
|
|
488
464
|
blocked_task_id: taskB,
|
|
465
|
+
project_id: 1,
|
|
489
466
|
created_ts: Math.floor(Date.now() / 1000),
|
|
490
467
|
});
|
|
491
468
|
// Try to create B blocks A (circular)
|
|
@@ -493,9 +470,10 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
493
470
|
// application-level logic or recursive triggers.
|
|
494
471
|
// The schema may allow this at database level.
|
|
495
472
|
// This test documents expected behavior.
|
|
496
|
-
const circularPromise = db('
|
|
473
|
+
const circularPromise = db('v4_task_dependencies').insert({
|
|
497
474
|
blocker_task_id: taskB,
|
|
498
475
|
blocked_task_id: taskA,
|
|
476
|
+
project_id: 1,
|
|
499
477
|
created_ts: Math.floor(Date.now() / 1000),
|
|
500
478
|
});
|
|
501
479
|
// For now, we expect application-level validation to prevent this
|
|
@@ -503,7 +481,7 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
503
481
|
try {
|
|
504
482
|
await circularPromise;
|
|
505
483
|
// If it succeeds, verify both dependencies exist
|
|
506
|
-
const deps = await db('
|
|
484
|
+
const deps = await db('v4_task_dependencies')
|
|
507
485
|
.whereIn('blocker_task_id', [taskA, taskB])
|
|
508
486
|
.whereIn('blocked_task_id', [taskA, taskB]);
|
|
509
487
|
// Note: Schema allows this, but application should prevent it
|
|
@@ -526,17 +504,18 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
526
504
|
const db = getDb();
|
|
527
505
|
const blockerTaskId = await insertTask(db, { title: 'Blocker for removal' });
|
|
528
506
|
const blockedTaskId = await insertTask(db, { title: 'Blocked for removal' });
|
|
529
|
-
await db('
|
|
507
|
+
await db('v4_task_dependencies').insert({
|
|
530
508
|
blocker_task_id: blockerTaskId,
|
|
531
509
|
blocked_task_id: blockedTaskId,
|
|
510
|
+
project_id: 1,
|
|
532
511
|
created_ts: Math.floor(Date.now() / 1000),
|
|
533
512
|
});
|
|
534
513
|
// Remove dependency
|
|
535
|
-
await db('
|
|
514
|
+
await db('v4_task_dependencies')
|
|
536
515
|
.where({ blocker_task_id: blockerTaskId, blocked_task_id: blockedTaskId })
|
|
537
516
|
.delete();
|
|
538
517
|
// Verify removal
|
|
539
|
-
const dependency = await db('
|
|
518
|
+
const dependency = await db('v4_task_dependencies')
|
|
540
519
|
.where({ blocker_task_id: blockerTaskId, blocked_task_id: blockedTaskId })
|
|
541
520
|
.first();
|
|
542
521
|
assert.strictEqual(dependency, undefined, 'Dependency should be removed');
|
|
@@ -545,15 +524,16 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
545
524
|
const db = getDb();
|
|
546
525
|
const blockerTaskId = await insertTask(db, { title: 'Blocker for cascade' });
|
|
547
526
|
const blockedTaskId = await insertTask(db, { title: 'Blocked for cascade' });
|
|
548
|
-
await db('
|
|
527
|
+
await db('v4_task_dependencies').insert({
|
|
549
528
|
blocker_task_id: blockerTaskId,
|
|
550
529
|
blocked_task_id: blockedTaskId,
|
|
530
|
+
project_id: 1,
|
|
551
531
|
created_ts: Math.floor(Date.now() / 1000),
|
|
552
532
|
});
|
|
553
533
|
// Delete blocker task
|
|
554
|
-
await db('
|
|
534
|
+
await db('v4_tasks').where({ id: blockerTaskId }).delete();
|
|
555
535
|
// Verify dependencies were cascade deleted
|
|
556
|
-
const dependencies = await db('
|
|
536
|
+
const dependencies = await db('v4_task_dependencies')
|
|
557
537
|
.where({ blocker_task_id: blockerTaskId })
|
|
558
538
|
.orWhere({ blocked_task_id: blockerTaskId });
|
|
559
539
|
assert.strictEqual(dependencies.length, 0, 'Dependencies should be cascade deleted');
|
|
@@ -564,20 +544,22 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
564
544
|
const blocked1Id = await insertTask(db, { title: 'Blocked 1' });
|
|
565
545
|
const blocked2Id = await insertTask(db, { title: 'Blocked 2' });
|
|
566
546
|
// Blocker blocks both blocked tasks
|
|
567
|
-
await db('
|
|
547
|
+
await db('v4_task_dependencies').insert([
|
|
568
548
|
{
|
|
569
549
|
blocker_task_id: blockerTaskId,
|
|
570
550
|
blocked_task_id: blocked1Id,
|
|
551
|
+
project_id: 1,
|
|
571
552
|
created_ts: Math.floor(Date.now() / 1000),
|
|
572
553
|
},
|
|
573
554
|
{
|
|
574
555
|
blocker_task_id: blockerTaskId,
|
|
575
556
|
blocked_task_id: blocked2Id,
|
|
557
|
+
project_id: 1,
|
|
576
558
|
created_ts: Math.floor(Date.now() / 1000),
|
|
577
559
|
},
|
|
578
560
|
]);
|
|
579
561
|
// Query what blocker is blocking
|
|
580
|
-
const blocking = await db('
|
|
562
|
+
const blocking = await db('v4_task_dependencies')
|
|
581
563
|
.where({ blocker_task_id: blockerTaskId })
|
|
582
564
|
.select('blocked_task_id');
|
|
583
565
|
assert.strictEqual(blocking.length, 2);
|
|
@@ -591,20 +573,22 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
591
573
|
const blocker1Id = await insertTask(db, { title: 'Blocker 1' });
|
|
592
574
|
const blocker2Id = await insertTask(db, { title: 'Blocker 2' });
|
|
593
575
|
// Blocked is blocked by both blockers
|
|
594
|
-
await db('
|
|
576
|
+
await db('v4_task_dependencies').insert([
|
|
595
577
|
{
|
|
596
578
|
blocker_task_id: blocker1Id,
|
|
597
579
|
blocked_task_id: blockedTaskId,
|
|
580
|
+
project_id: 1,
|
|
598
581
|
created_ts: Math.floor(Date.now() / 1000),
|
|
599
582
|
},
|
|
600
583
|
{
|
|
601
584
|
blocker_task_id: blocker2Id,
|
|
602
585
|
blocked_task_id: blockedTaskId,
|
|
586
|
+
project_id: 1,
|
|
603
587
|
created_ts: Math.floor(Date.now() / 1000),
|
|
604
588
|
},
|
|
605
589
|
]);
|
|
606
590
|
// Query what is blocking this task
|
|
607
|
-
const blockers = await db('
|
|
591
|
+
const blockers = await db('v4_task_dependencies')
|
|
608
592
|
.where({ blocked_task_id: blockedTaskId })
|
|
609
593
|
.select('blocker_task_id');
|
|
610
594
|
assert.strictEqual(blockers.length, 2);
|
|
@@ -622,27 +606,25 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
622
606
|
const taskId = await insertTask(db, { title: 'Task implementing decision' });
|
|
623
607
|
const timestamp = Math.floor(Date.now() / 1000);
|
|
624
608
|
// Create a decision
|
|
625
|
-
const agentId = await getAgentId(db);
|
|
626
609
|
const layerId = await getLayerId(db, 'business');
|
|
627
610
|
// m_context_keys has no project_id column
|
|
628
|
-
await db('
|
|
611
|
+
await db('v4_context_keys').insert({
|
|
629
612
|
key: 'test/link-decision',
|
|
630
613
|
});
|
|
631
|
-
const contextKey = await db('
|
|
614
|
+
const contextKey = await db('v4_context_keys')
|
|
632
615
|
.where({ key: 'test/link-decision' })
|
|
633
616
|
.first();
|
|
634
|
-
await db('
|
|
617
|
+
await db('v4_decisions').insert({
|
|
635
618
|
key_id: contextKey.id,
|
|
636
619
|
project_id: 1,
|
|
637
620
|
value: 'test value',
|
|
638
621
|
version: '1.0.0',
|
|
639
622
|
ts: timestamp,
|
|
640
|
-
agent_id: agentId,
|
|
641
623
|
layer_id: layerId,
|
|
642
624
|
status: 1, // 1=active (integer enum, not string)
|
|
643
625
|
});
|
|
644
626
|
// Link task to decision (using decision_key_id, not decision_id)
|
|
645
|
-
await db('
|
|
627
|
+
await db('v4_task_decision_links').insert({
|
|
646
628
|
task_id: taskId,
|
|
647
629
|
decision_key_id: contextKey.id,
|
|
648
630
|
project_id: 1,
|
|
@@ -650,7 +632,7 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
650
632
|
linked_ts: timestamp,
|
|
651
633
|
});
|
|
652
634
|
// Verify link
|
|
653
|
-
const link = await db('
|
|
635
|
+
const link = await db('v4_task_decision_links')
|
|
654
636
|
.where({ task_id: taskId, decision_key_id: contextKey.id })
|
|
655
637
|
.first();
|
|
656
638
|
assert.ok(link, 'Link should exist');
|
|
@@ -661,24 +643,22 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
661
643
|
const taskId = await insertTask(db, { title: 'Task for cascade link delete' });
|
|
662
644
|
const timestamp = Math.floor(Date.now() / 1000);
|
|
663
645
|
// Create decision and link (simplified)
|
|
664
|
-
const agentId = await getAgentId(db);
|
|
665
646
|
const layerId = await getLayerId(db, 'business');
|
|
666
647
|
// m_context_keys has no project_id column
|
|
667
|
-
await db('
|
|
668
|
-
const contextKey = await db('
|
|
669
|
-
.where({
|
|
648
|
+
await db('v4_context_keys').insert({ key_name: 'test/cascade-link' });
|
|
649
|
+
const contextKey = await db('v4_context_keys')
|
|
650
|
+
.where({ key_name: 'test/cascade-link' })
|
|
670
651
|
.first();
|
|
671
|
-
await db('
|
|
652
|
+
await db('v4_decisions').insert({
|
|
672
653
|
key_id: contextKey.id,
|
|
673
654
|
project_id: 1,
|
|
674
655
|
value: 'test',
|
|
675
656
|
version: '1.0.0',
|
|
676
657
|
ts: timestamp,
|
|
677
|
-
agent_id: agentId,
|
|
678
658
|
layer_id: layerId,
|
|
679
659
|
status: 1, // 1=active (integer enum)
|
|
680
660
|
});
|
|
681
|
-
await db('
|
|
661
|
+
await db('v4_task_decision_links').insert({
|
|
682
662
|
task_id: taskId,
|
|
683
663
|
decision_key_id: contextKey.id,
|
|
684
664
|
project_id: 1,
|
|
@@ -686,9 +666,9 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
686
666
|
linked_ts: timestamp,
|
|
687
667
|
});
|
|
688
668
|
// Delete task
|
|
689
|
-
await db('
|
|
669
|
+
await db('v4_tasks').where({ id: taskId }).delete();
|
|
690
670
|
// Verify links were cascade deleted
|
|
691
|
-
const links = await db('
|
|
671
|
+
const links = await db('v4_task_decision_links').where({ task_id: taskId });
|
|
692
672
|
assert.strictEqual(links.length, 0, 'Task-decision links should be cascade deleted');
|
|
693
673
|
});
|
|
694
674
|
});
|
|
@@ -700,25 +680,23 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
700
680
|
const db = getDb();
|
|
701
681
|
const taskId = await insertTask(db, { title: 'Task with constraint' });
|
|
702
682
|
// Create a constraint
|
|
703
|
-
const agentId = await getAgentId(db);
|
|
704
683
|
const layerId = await getLayerId(db, 'business');
|
|
705
684
|
// Get constraint category
|
|
706
|
-
const category = await db('
|
|
685
|
+
const category = await db('v4_constraint_categories')
|
|
707
686
|
.where({ name: 'architecture' })
|
|
708
687
|
.first();
|
|
709
688
|
const constraintText = 'Test constraint for linking';
|
|
710
|
-
await db('
|
|
689
|
+
await db('v4_constraints').insert({
|
|
711
690
|
constraint_text: constraintText,
|
|
712
691
|
constraint_text_hash: hashConstraintText(constraintText),
|
|
713
692
|
category_id: category.id,
|
|
714
693
|
priority: 2,
|
|
715
694
|
project_id: 1,
|
|
716
695
|
layer_id: layerId,
|
|
717
|
-
agent_id: agentId,
|
|
718
696
|
ts: Math.floor(Date.now() / 1000),
|
|
719
697
|
active: 1,
|
|
720
698
|
});
|
|
721
|
-
const constraint = await db('
|
|
699
|
+
const constraint = await db('v4_constraints')
|
|
722
700
|
.where({ constraint_text: constraintText, project_id: 1 })
|
|
723
701
|
.first();
|
|
724
702
|
// Link task to constraint
|
|
@@ -736,24 +714,22 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
736
714
|
const db = getDb();
|
|
737
715
|
const taskId = await insertTask(db, { title: 'Task for constraint cascade' });
|
|
738
716
|
// Create constraint and link (simplified)
|
|
739
|
-
const agentId = await getAgentId(db);
|
|
740
717
|
const layerId = await getLayerId(db, 'business');
|
|
741
|
-
const category = await db('
|
|
718
|
+
const category = await db('v4_constraint_categories')
|
|
742
719
|
.where({ name: 'architecture' })
|
|
743
720
|
.first();
|
|
744
721
|
const constraintText = 'Cascade test constraint';
|
|
745
|
-
await db('
|
|
722
|
+
await db('v4_constraints').insert({
|
|
746
723
|
constraint_text: constraintText,
|
|
747
724
|
constraint_text_hash: hashConstraintText(constraintText),
|
|
748
725
|
category_id: category.id,
|
|
749
726
|
priority: 2,
|
|
750
727
|
project_id: 1,
|
|
751
728
|
layer_id: layerId,
|
|
752
|
-
agent_id: agentId,
|
|
753
729
|
ts: Math.floor(Date.now() / 1000),
|
|
754
730
|
active: 1,
|
|
755
731
|
});
|
|
756
|
-
const constraint = await db('
|
|
732
|
+
const constraint = await db('v4_constraints')
|
|
757
733
|
.where({ constraint_text: constraintText, project_id: 1 })
|
|
758
734
|
.first();
|
|
759
735
|
await db('t_task_constraint_links').insert({
|
|
@@ -761,7 +737,7 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
761
737
|
constraint_id: constraint.id,
|
|
762
738
|
});
|
|
763
739
|
// Delete task
|
|
764
|
-
await db('
|
|
740
|
+
await db('v4_tasks').where({ id: taskId }).delete();
|
|
765
741
|
// Verify links were cascade deleted
|
|
766
742
|
const links = await db('t_task_constraint_links').where({ task_id: taskId });
|
|
767
743
|
assert.strictEqual(links.length, 0, 'Task-constraint links should be cascade deleted');
|
|
@@ -778,7 +754,7 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
778
754
|
title: longTitle,
|
|
779
755
|
priority: 2,
|
|
780
756
|
});
|
|
781
|
-
const task = await db('
|
|
757
|
+
const task = await db('v4_tasks').where({ id: taskId, project_id: 1 }).first();
|
|
782
758
|
assert.strictEqual(task.title, longTitle);
|
|
783
759
|
});
|
|
784
760
|
it('should handle special characters in descriptions', async () => {
|
|
@@ -788,7 +764,7 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
788
764
|
title: 'Special chars test',
|
|
789
765
|
description: specialDesc,
|
|
790
766
|
});
|
|
791
|
-
const details = await db('
|
|
767
|
+
const details = await db('v4_task_details').where({ task_id: taskId }).first();
|
|
792
768
|
assert.strictEqual(details.description, specialDesc);
|
|
793
769
|
});
|
|
794
770
|
it('should handle unicode in task fields', async () => {
|
|
@@ -797,24 +773,22 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
797
773
|
const taskId = await insertTask(db, {
|
|
798
774
|
title: unicodeTitle,
|
|
799
775
|
});
|
|
800
|
-
const task = await db('
|
|
776
|
+
const task = await db('v4_tasks').where({ id: taskId, project_id: 1 }).first();
|
|
801
777
|
assert.strictEqual(task.title, unicodeTitle);
|
|
802
778
|
});
|
|
803
779
|
it('should handle NULL optional fields', async () => {
|
|
804
780
|
const db = getDb();
|
|
805
781
|
const statusId = await getStatusId(db, 'todo');
|
|
806
782
|
const layerId = await getLayerId(db, 'business');
|
|
807
|
-
|
|
808
|
-
// Insert with NULL assigned_agent_id
|
|
783
|
+
// Insert with NULL optional fields (completed_ts is nullable)
|
|
809
784
|
const timestamp = Math.floor(Date.now() / 1000);
|
|
810
|
-
const result = await db('
|
|
811
|
-
title: 'Task with NULL
|
|
785
|
+
const result = await db('v4_tasks').insert({
|
|
786
|
+
title: 'Task with NULL completed_ts',
|
|
812
787
|
status_id: statusId,
|
|
813
788
|
priority: 2,
|
|
814
789
|
project_id: 1,
|
|
815
790
|
layer_id: layerId,
|
|
816
|
-
|
|
817
|
-
created_by_agent_id: agentId,
|
|
791
|
+
completed_ts: null, // NULL is allowed
|
|
818
792
|
created_ts: timestamp,
|
|
819
793
|
updated_ts: timestamp,
|
|
820
794
|
});
|
|
@@ -823,13 +797,13 @@ runTestsOnAllDatabases('Task Operations', (getDb, dbType) => {
|
|
|
823
797
|
taskId = result[0];
|
|
824
798
|
}
|
|
825
799
|
else {
|
|
826
|
-
const task = await db('
|
|
827
|
-
.where({ title: 'Task with NULL
|
|
800
|
+
const task = await db('v4_tasks')
|
|
801
|
+
.where({ title: 'Task with NULL completed_ts', project_id: 1 })
|
|
828
802
|
.first();
|
|
829
803
|
taskId = task.id;
|
|
830
804
|
}
|
|
831
|
-
const task = await db('
|
|
832
|
-
assert.strictEqual(task.
|
|
805
|
+
const task = await db('v4_tasks').where({ id: taskId, project_id: 1 }).first();
|
|
806
|
+
assert.strictEqual(task.completed_ts, null);
|
|
833
807
|
});
|
|
834
808
|
});
|
|
835
809
|
});
|