sqlew 4.3.0 → 5.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 +95 -0
- package/LICENSE +1 -1
- package/NOTICE +2 -2
- package/README.md +338 -269
- package/assets/claude-md-snippets/plan-mode-integration.md +104 -48
- package/assets/claude-md-snippets/queue-monitoring.md +84 -0
- package/dist/backend/backend-factory.d.ts +67 -0
- package/dist/backend/backend-factory.d.ts.map +1 -0
- package/dist/backend/backend-factory.js +171 -0
- package/dist/backend/backend-factory.js.map +1 -0
- package/dist/backend/index.d.ts +12 -0
- package/dist/backend/index.d.ts.map +1 -0
- package/dist/backend/index.js +13 -0
- package/dist/backend/index.js.map +1 -0
- package/dist/backend/inference.d.ts +38 -0
- package/dist/backend/inference.d.ts.map +1 -0
- package/dist/backend/inference.js +76 -0
- package/dist/backend/inference.js.map +1 -0
- package/dist/backend/local-backend.d.ts +40 -0
- package/dist/backend/local-backend.d.ts.map +1 -0
- package/dist/backend/local-backend.js +410 -0
- package/dist/backend/local-backend.js.map +1 -0
- package/dist/backend/transforming-backend.d.ts +47 -0
- package/dist/backend/transforming-backend.d.ts.map +1 -0
- package/dist/backend/transforming-backend.js +80 -0
- package/dist/backend/transforming-backend.js.map +1 -0
- package/dist/backend/types.d.ts +58 -0
- package/dist/backend/types.d.ts.map +1 -0
- package/dist/backend/types.js +7 -0
- package/dist/backend/types.js.map +1 -0
- package/dist/cli/db-dump.js +45 -45
- package/dist/cli/db-dump.js.map +1 -1
- package/dist/cli/db-export.js +30 -30
- package/dist/cli/db-export.js.map +1 -1
- package/dist/cli/db-import.d.ts.map +1 -1
- package/dist/cli/db-import.js +32 -33
- package/dist/cli/db-import.js.map +1 -1
- package/dist/cli/hooks/check-completion.d.ts +1 -0
- package/dist/cli/hooks/check-completion.d.ts.map +1 -1
- package/dist/cli/hooks/check-completion.js +15 -26
- package/dist/cli/hooks/check-completion.js.map +1 -1
- package/dist/cli/hooks/mark-done.d.ts +1 -0
- package/dist/cli/hooks/mark-done.d.ts.map +1 -1
- package/dist/cli/hooks/mark-done.js +12 -17
- package/dist/cli/hooks/mark-done.js.map +1 -1
- package/dist/cli/hooks/on-enter-plan.js +2 -2
- package/dist/cli/hooks/on-enter-plan.js.map +1 -1
- package/dist/cli/hooks/on-session-start.d.ts +23 -0
- package/dist/cli/hooks/on-session-start.d.ts.map +1 -0
- package/dist/cli/hooks/on-session-start.js +70 -0
- package/dist/cli/hooks/on-session-start.js.map +1 -0
- package/dist/cli/hooks/on-stop.js +5 -5
- package/dist/cli/hooks/on-stop.js.map +1 -1
- package/dist/cli/hooks/{plan-toml-parser.d.ts → plan-parser.d.ts} +1 -1
- package/dist/cli/hooks/plan-parser.d.ts.map +1 -0
- package/dist/cli/hooks/{plan-toml-parser.js → plan-parser.js} +1 -1
- package/dist/cli/hooks/plan-parser.js.map +1 -0
- package/dist/cli/hooks/plan-pattern-extractor.d.ts.map +1 -1
- package/dist/cli/hooks/plan-pattern-extractor.js +6 -3
- package/dist/cli/hooks/plan-pattern-extractor.js.map +1 -1
- package/dist/cli/hooks/plan-processor.js +1 -1
- package/dist/cli/hooks/plan-processor.js.map +1 -1
- package/dist/cli/hooks/stdin-parser.d.ts +4 -0
- package/dist/cli/hooks/stdin-parser.d.ts.map +1 -1
- package/dist/cli/hooks/stdin-parser.js.map +1 -1
- package/dist/cli/hooks/suggest.js +2 -2
- package/dist/cli/hooks/suggest.js.map +1 -1
- package/dist/cli/hooks/track-plan.d.ts.map +1 -1
- package/dist/cli/hooks/track-plan.js +24 -18
- package/dist/cli/hooks/track-plan.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +108 -108
- package/dist/cli.js.map +1 -1
- package/dist/config/cloud-config-loader.d.ts +107 -0
- package/dist/config/cloud-config-loader.d.ts.map +1 -0
- package/dist/config/cloud-config-loader.js +273 -0
- package/dist/config/cloud-config-loader.js.map +1 -0
- package/dist/config/global-config.d.ts +10 -10
- package/dist/config/global-config.d.ts.map +1 -1
- package/dist/config/global-config.js +12 -12
- package/dist/config/global-config.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +5 -1
- package/dist/config/loader.js.map +1 -1
- package/dist/config/minimal-generator.d.ts.map +1 -1
- package/dist/config/minimal-generator.js +22 -72
- package/dist/config/minimal-generator.js.map +1 -1
- package/dist/config/types.d.ts +59 -1
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +14 -0
- package/dist/config/types.js.map +1 -1
- package/dist/constants.d.ts +1 -29
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +1 -38
- package/dist/constants.js.map +1 -1
- package/dist/database/initialization/cleanup.d.ts.map +1 -1
- package/dist/database/initialization/cleanup.js +0 -13
- package/dist/database/initialization/cleanup.js.map +1 -1
- package/dist/database/initialization/init.d.ts.map +1 -1
- package/dist/database/initialization/init.js +0 -9
- package/dist/database/initialization/init.js.map +1 -1
- package/dist/database/initialization/schema-version.d.ts +4 -4
- package/dist/database/initialization/schema-version.js +9 -9
- package/dist/database/initialization/schema-version.js.map +1 -1
- package/dist/database/migrations/v4/20260107000000_v5_drop_task_file_tables.d.ts +36 -0
- package/dist/database/migrations/v4/20260107000000_v5_drop_task_file_tables.d.ts.map +1 -0
- package/dist/database/migrations/v4/20260107000000_v5_drop_task_file_tables.js +135 -0
- package/dist/database/migrations/v4/20260107000000_v5_drop_task_file_tables.js.map +1 -0
- package/dist/database/migrations/v4/20260107000001_v5_drop_legacy_tables.d.ts +20 -0
- package/dist/database/migrations/v4/20260107000001_v5_drop_legacy_tables.d.ts.map +1 -0
- package/dist/database/migrations/v4/20260107000001_v5_drop_legacy_tables.js +168 -0
- package/dist/database/migrations/v4/20260107000001_v5_drop_legacy_tables.js.map +1 -0
- package/dist/database/migrations/v4/20260108000000_v5_rename_to_m_t_prefix.d.ts +23 -0
- package/dist/database/migrations/v4/20260108000000_v5_rename_to_m_t_prefix.d.ts.map +1 -0
- package/dist/database/migrations/v4/20260108000000_v5_rename_to_m_t_prefix.js +570 -0
- package/dist/database/migrations/v4/20260108000000_v5_rename_to_m_t_prefix.js.map +1 -0
- package/dist/database/migrations/v4/20260109000000_v5_drop_help_tables.d.ts +29 -0
- package/dist/database/migrations/v4/20260109000000_v5_drop_help_tables.d.ts.map +1 -0
- package/dist/database/migrations/v4/20260109000000_v5_drop_help_tables.js +80 -0
- package/dist/database/migrations/v4/20260109000000_v5_drop_help_tables.js.map +1 -0
- package/dist/database/operations/inserts.js +11 -11
- package/dist/database/operations/inserts.js.map +1 -1
- package/dist/database/operations/queries.js +9 -9
- package/dist/database/operations/queries.js.map +1 -1
- package/dist/formatters/adr-formatter.d.ts +22 -0
- package/dist/formatters/adr-formatter.d.ts.map +1 -0
- package/dist/formatters/adr-formatter.js +127 -0
- package/dist/formatters/adr-formatter.js.map +1 -0
- package/dist/formatters/confluence-formatter.d.ts +26 -0
- package/dist/formatters/confluence-formatter.d.ts.map +1 -0
- package/dist/formatters/confluence-formatter.js +129 -0
- package/dist/formatters/confluence-formatter.js.map +1 -0
- package/dist/formatters/index.d.ts +34 -0
- package/dist/formatters/index.d.ts.map +1 -0
- package/dist/formatters/index.js +57 -0
- package/dist/formatters/index.js.map +1 -0
- package/dist/formatters/markdown-formatter.d.ts +16 -0
- package/dist/formatters/markdown-formatter.d.ts.map +1 -0
- package/dist/formatters/markdown-formatter.js +110 -0
- package/dist/formatters/markdown-formatter.js.map +1 -0
- package/dist/formatters/notion-formatter.d.ts +29 -0
- package/dist/formatters/notion-formatter.d.ts.map +1 -0
- package/dist/formatters/notion-formatter.js +177 -0
- package/dist/formatters/notion-formatter.js.map +1 -0
- package/dist/formatters/types.d.ts +31 -0
- package/dist/formatters/types.d.ts.map +1 -0
- package/dist/formatters/types.js +6 -0
- package/dist/formatters/types.js.map +1 -0
- package/dist/help-data/_schema.toml +21 -0
- package/dist/help-data/constraint.toml +259 -0
- package/dist/help-data/decision.toml +833 -0
- package/dist/help-data/example.toml +177 -0
- package/dist/help-data/help.toml +246 -0
- package/dist/help-data/queue.toml +134 -0
- package/dist/help-data/suggest.toml +219 -0
- package/dist/help-data/use-cases/_categories.toml +22 -0
- package/dist/help-data/use-cases/constraint-basic.toml +34 -0
- package/dist/help-data/use-cases/cross-tool-workflow.toml +50 -0
- package/dist/help-data/use-cases/decision-intelligence-duplicate.toml +35 -0
- package/dist/help-data/use-cases/decision-intelligence-related.toml +35 -0
- package/dist/help-data/use-cases/decision-tracking-basic.toml +42 -0
- package/dist/help-data/use-cases/decision-tracking-versions.toml +42 -0
- package/dist/help-data/use_case.toml +147 -0
- package/dist/help-loader.d.ts +194 -0
- package/dist/help-loader.d.ts.map +1 -0
- package/dist/help-loader.js +419 -0
- package/dist/help-loader.js.map +1 -0
- package/dist/index.js +15 -10
- package/dist/index.js.map +1 -1
- package/dist/init-rules.d.ts +42 -0
- package/dist/init-rules.d.ts.map +1 -0
- package/dist/init-rules.js +217 -0
- package/dist/init-rules.js.map +1 -0
- package/dist/schema.d.ts +4 -6
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +28 -45
- package/dist/schema.js.map +1 -1
- package/dist/server/setup.d.ts +0 -10
- package/dist/server/setup.d.ts.map +1 -1
- package/dist/server/setup.js +97 -89
- package/dist/server/setup.js.map +1 -1
- package/dist/server/shutdown.d.ts +1 -1
- package/dist/server/shutdown.d.ts.map +1 -1
- package/dist/server/shutdown.js +1 -16
- package/dist/server/shutdown.js.map +1 -1
- package/dist/server/tool-handlers.d.ts +15 -0
- package/dist/server/tool-handlers.d.ts.map +1 -1
- package/dist/server/tool-handlers.js +47 -462
- package/dist/server/tool-handlers.js.map +1 -1
- package/dist/server/tool-registry.d.ts.map +1 -1
- package/dist/server/tool-registry.js +50 -62
- package/dist/server/tool-registry.js.map +1 -1
- package/dist/tests/backend/backend-factory.test.d.ts +7 -0
- package/dist/tests/backend/backend-factory.test.d.ts.map +1 -0
- package/dist/tests/backend/backend-factory.test.js +157 -0
- package/dist/tests/backend/backend-factory.test.js.map +1 -0
- package/dist/tests/backend/inference.test.d.ts +7 -0
- package/dist/tests/backend/inference.test.d.ts.map +1 -0
- package/dist/tests/backend/inference.test.js +142 -0
- package/dist/tests/backend/inference.test.js.map +1 -0
- package/dist/tests/database/multi-project/multi-project.test.js +9 -70
- package/dist/tests/database/multi-project/multi-project.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 +32 -32
- package/dist/tests/docker/cross-database.test.js.map +1 -1
- package/dist/tests/docker/dump-import.test.js +55 -55
- package/dist/tests/docker/dump-import.test.js.map +1 -1
- package/dist/tests/docker/fk-constraints.test.js +3 -3
- package/dist/tests/docker/indexes.test.js +34 -34
- package/dist/tests/docker/integration.test.js +33 -33
- package/dist/tests/docker/multi-project-migration.test.js +47 -47
- package/dist/tests/docker/multi-project-migration.test.js.map +1 -1
- package/dist/tests/docker/native/constraint-operations.test.js +49 -49
- package/dist/tests/docker/native/constraint-operations.test.js.map +1 -1
- package/dist/tests/docker/native/db-init.d.ts +3 -1
- package/dist/tests/docker/native/db-init.d.ts.map +1 -1
- package/dist/tests/docker/native/db-init.js +14 -12
- package/dist/tests/docker/native/db-init.js.map +1 -1
- package/dist/tests/docker/native/decision-operations.test.js +91 -91
- package/dist/tests/docker/native/decision-operations.test.js.map +1 -1
- package/dist/tests/docker/native/help-system.test.d.ts +2 -2
- package/dist/tests/docker/native/help-system.test.js +113 -138
- package/dist/tests/docker/native/help-system.test.js.map +1 -1
- package/dist/tests/docker/native/suggest-tool.test.d.ts +2 -2
- package/dist/tests/docker/native/suggest-tool.test.js +35 -35
- package/dist/tests/docker/native/suggest-tool.test.js.map +1 -1
- package/dist/tests/docker/native/test-harness.d.ts +6 -12
- package/dist/tests/docker/native/test-harness.d.ts.map +1 -1
- package/dist/tests/docker/native/test-harness.js +74 -156
- package/dist/tests/docker/native/test-harness.js.map +1 -1
- package/dist/tests/docker/schema-migration.test.js +6 -6
- package/dist/tests/feature/decision/batch-validation-comprehensive.test.d.ts +3 -7
- package/dist/tests/feature/decision/batch-validation-comprehensive.test.d.ts.map +1 -1
- package/dist/tests/feature/decision/batch-validation-comprehensive.test.js +7 -318
- package/dist/tests/feature/decision/batch-validation-comprehensive.test.js.map +1 -1
- package/dist/tests/feature/help/help-system.test.d.ts +6 -6
- package/dist/tests/feature/help/help-system.test.js +166 -124
- package/dist/tests/feature/help/help-system.test.js.map +1 -1
- package/dist/tests/integration/auto-trigger-suggestions.test.js +22 -22
- package/dist/tests/integration/auto-trigger-suggestions.test.js.map +1 -1
- package/dist/tests/integration/decision-intelligence-e2e.test.js +23 -22
- package/dist/tests/integration/decision-intelligence-e2e.test.js.map +1 -1
- package/dist/tests/integration/e2e-workflow1-debug.test.js +3 -3
- package/dist/tests/integration/e2e-workflow1-debug.test.js.map +1 -1
- package/dist/tests/integration/hybrid-similarity-detection.test.js +25 -25
- package/dist/tests/integration/hybrid-similarity-detection.test.js.map +1 -1
- package/dist/tests/integration/suggest-simple.test.js +18 -0
- package/dist/tests/integration/suggest-simple.test.js.map +1 -1
- package/dist/tests/migrations/test-all-versions.js +212 -212
- package/dist/tests/migrations/test-all-versions.js.map +1 -1
- package/dist/tests/migrations/v4/v4-fresh-install.test.js +29 -29
- package/dist/tests/migrations/v4/v4-fresh-install.test.js.map +1 -1
- package/dist/tests/migrations/v4/v4-migrate-data.test.js +20 -20
- package/dist/tests/migrations/v4/v4-migrate-data.test.js.map +1 -1
- package/dist/tests/test-v4-native-rdbms.js +20 -20
- package/dist/tests/test-v4-native-rdbms.js.map +1 -1
- package/dist/tests/unit/config/cloud-config-loader.test.d.ts +2 -0
- package/dist/tests/unit/config/cloud-config-loader.test.d.ts.map +1 -0
- package/dist/tests/unit/config/cloud-config-loader.test.js +103 -0
- package/dist/tests/unit/config/cloud-config-loader.test.js.map +1 -0
- package/dist/tests/unit/config/{plan-toml-cache.test.d.ts → plan-cache.test.d.ts} +1 -1
- package/dist/tests/unit/config/plan-cache.test.d.ts.map +1 -0
- package/dist/tests/unit/config/{plan-toml-cache.test.js → plan-cache.test.js} +32 -32
- package/dist/tests/unit/config/plan-cache.test.js.map +1 -0
- package/dist/tests/unit/hooks/{plan-toml-parser.test.d.ts → plan-parser.test.d.ts} +1 -1
- package/dist/tests/unit/hooks/plan-parser.test.d.ts.map +1 -0
- package/dist/tests/unit/hooks/{plan-toml-parser.test.js → plan-parser.test.js} +179 -179
- package/dist/tests/unit/hooks/plan-parser.test.js.map +1 -0
- package/dist/tests/unit/server/tool-handlers.test.d.ts +7 -0
- package/dist/tests/unit/server/tool-handlers.test.d.ts.map +1 -0
- package/dist/tests/unit/server/tool-handlers.test.js +76 -0
- package/dist/tests/unit/server/tool-handlers.test.js.map +1 -0
- package/dist/tests/unit/utils/config-loader.test.js +17 -17
- package/dist/tests/unit/utils/connection-hash.test.d.ts +2 -0
- package/dist/tests/unit/utils/connection-hash.test.d.ts.map +1 -0
- package/dist/tests/unit/utils/connection-hash.test.js +57 -0
- package/dist/tests/unit/utils/connection-hash.test.js.map +1 -0
- package/dist/tests/unit/utils/environment-detector.test.d.ts +2 -0
- package/dist/tests/unit/utils/environment-detector.test.d.ts.map +1 -0
- package/dist/tests/unit/utils/environment-detector.test.js +43 -0
- package/dist/tests/unit/utils/environment-detector.test.js.map +1 -0
- package/dist/tests/unit/utils/path-utils.test.d.ts +2 -0
- package/dist/tests/unit/utils/path-utils.test.d.ts.map +1 -0
- package/dist/tests/unit/utils/path-utils.test.js +72 -0
- package/dist/tests/unit/utils/path-utils.test.js.map +1 -0
- package/dist/tests/unit/utils/project-detector.test.js +14 -13
- package/dist/tests/unit/utils/project-detector.test.js.map +1 -1
- package/dist/tests/unit/validation/parameter-validation.test.d.ts +2 -1
- package/dist/tests/unit/validation/parameter-validation.test.d.ts.map +1 -1
- package/dist/tests/unit/validation/parameter-validation.test.js +5 -133
- package/dist/tests/unit/validation/parameter-validation.test.js.map +1 -1
- 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-schema.js +48 -48
- package/dist/tests/utils/db-seeding.js +11 -11
- package/dist/tests/utils/db-seeding.js.map +1 -1
- package/dist/tests/utils/json-export-import.test.d.ts +6 -0
- package/dist/tests/utils/json-export-import.test.d.ts.map +1 -0
- package/dist/tests/utils/json-export-import.test.js +474 -0
- package/dist/tests/utils/json-export-import.test.js.map +1 -0
- package/dist/tests/utils/test-helpers.js +59 -59
- package/dist/tests/utils/test-helpers.js.map +1 -1
- package/dist/tools/constraints/actions/activate.d.ts +2 -2
- package/dist/tools/constraints/actions/activate.d.ts.map +1 -1
- package/dist/tools/constraints/actions/activate.js +12 -12
- package/dist/tools/constraints/actions/activate.js.map +1 -1
- package/dist/tools/constraints/actions/add.js +3 -3
- package/dist/tools/constraints/actions/add.js.map +1 -1
- package/dist/tools/constraints/actions/deactivate.js +6 -6
- 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 +9 -9
- package/dist/tools/constraints/actions/get.js.map +1 -1
- package/dist/tools/constraints/actions/suggest-pending.js +2 -2
- package/dist/tools/constraints/actions/suggest-pending.js.map +1 -1
- package/dist/tools/constraints/index.d.ts +1 -1
- package/dist/tools/constraints/index.d.ts.map +1 -1
- package/dist/tools/constraints/index.js +1 -1
- package/dist/tools/constraints/index.js.map +1 -1
- package/dist/tools/context/actions/create-policy.js +3 -3
- package/dist/tools/context/actions/create-policy.js.map +1 -1
- package/dist/tools/context/actions/create-template.js +2 -2
- package/dist/tools/context/actions/create-template.js.map +1 -1
- package/dist/tools/context/actions/export.d.ts +35 -0
- package/dist/tools/context/actions/export.d.ts.map +1 -0
- package/dist/tools/context/actions/export.js +93 -0
- package/dist/tools/context/actions/export.js.map +1 -0
- package/dist/tools/context/actions/hard-delete.js +11 -11
- package/dist/tools/context/actions/hard-delete.js.map +1 -1
- package/dist/tools/context/actions/has-updates.d.ts +1 -1
- package/dist/tools/context/actions/has-updates.d.ts.map +1 -1
- package/dist/tools/context/actions/has-updates.js +5 -17
- package/dist/tools/context/actions/has-updates.js.map +1 -1
- package/dist/tools/context/actions/list-policies.js +1 -1
- package/dist/tools/context/actions/list-policies.js.map +1 -1
- package/dist/tools/context/actions/list-templates.js +2 -2
- 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.js +8 -8
- 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.js +3 -3
- package/dist/tools/context/actions/versions.js.map +1 -1
- package/dist/tools/context/index.d.ts +1 -0
- package/dist/tools/context/index.d.ts.map +1 -1
- package/dist/tools/context/index.js +2 -0
- package/dist/tools/context/index.js.map +1 -1
- package/dist/tools/context/internal/queries.d.ts.map +1 -1
- package/dist/tools/context/internal/queries.js +54 -43
- package/dist/tools/context/internal/queries.js.map +1 -1
- package/dist/tools/context/types.d.ts +1 -1
- package/dist/tools/context/types.d.ts.map +1 -1
- package/dist/tools/example/actions/get.d.ts +8 -3
- package/dist/tools/example/actions/get.d.ts.map +1 -1
- package/dist/tools/example/actions/get.js +29 -30
- package/dist/tools/example/actions/get.js.map +1 -1
- package/dist/tools/example/actions/list-all.d.ts +8 -2
- package/dist/tools/example/actions/list-all.d.ts.map +1 -1
- package/dist/tools/example/actions/list-all.js +37 -29
- package/dist/tools/example/actions/list-all.js.map +1 -1
- package/dist/tools/example/actions/search.d.ts +8 -3
- package/dist/tools/example/actions/search.d.ts.map +1 -1
- package/dist/tools/example/actions/search.js +29 -43
- package/dist/tools/example/actions/search.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/actions/query-action.d.ts +7 -3
- package/dist/tools/help/actions/query-action.d.ts.map +1 -1
- package/dist/tools/help/actions/query-action.js +35 -6
- package/dist/tools/help/actions/query-action.js.map +1 -1
- package/dist/tools/help/actions/query-params.d.ts +5 -3
- package/dist/tools/help/actions/query-params.d.ts.map +1 -1
- package/dist/tools/help/actions/query-params.js +28 -6
- package/dist/tools/help/actions/query-params.js.map +1 -1
- package/dist/tools/help/actions/query-tool.d.ts +5 -3
- package/dist/tools/help/actions/query-tool.d.ts.map +1 -1
- package/dist/tools/help/actions/query-tool.js +23 -6
- package/dist/tools/help/actions/query-tool.js.map +1 -1
- package/dist/tools/help/actions/workflow-hints.d.ts +5 -3
- package/dist/tools/help/actions/workflow-hints.d.ts.map +1 -1
- package/dist/tools/help/actions/workflow-hints.js +21 -6
- package/dist/tools/help/actions/workflow-hints.js.map +1 -1
- package/dist/tools/queue/actions/clear.d.ts +19 -0
- package/dist/tools/queue/actions/clear.d.ts.map +1 -0
- package/dist/tools/queue/actions/clear.js +79 -0
- package/dist/tools/queue/actions/clear.js.map +1 -0
- package/dist/tools/queue/actions/list.d.ts +16 -0
- package/dist/tools/queue/actions/list.d.ts.map +1 -0
- package/dist/tools/queue/actions/list.js +95 -0
- package/dist/tools/queue/actions/list.js.map +1 -0
- package/dist/tools/queue/actions/remove.d.ts +19 -0
- package/dist/tools/queue/actions/remove.d.ts.map +1 -0
- package/dist/tools/queue/actions/remove.js +81 -0
- package/dist/tools/queue/actions/remove.js.map +1 -0
- package/dist/tools/queue/index.d.ts +13 -0
- package/dist/tools/queue/index.d.ts.map +1 -0
- package/dist/tools/queue/index.js +13 -0
- package/dist/tools/queue/index.js.map +1 -0
- package/dist/tools/queue/types.d.ts +87 -0
- package/dist/tools/queue/types.d.ts.map +1 -0
- package/dist/tools/queue/types.js +9 -0
- package/dist/tools/queue/types.js.map +1 -0
- package/dist/tools/suggest/actions/by-context.d.ts.map +1 -1
- package/dist/tools/suggest/actions/by-context.js +7 -15
- package/dist/tools/suggest/actions/by-context.js.map +1 -1
- package/dist/tools/suggest/actions/by-key.d.ts.map +1 -1
- package/dist/tools/suggest/actions/by-key.js +7 -15
- package/dist/tools/suggest/actions/by-key.js.map +1 -1
- package/dist/tools/suggest/actions/by-tags.d.ts +2 -2
- package/dist/tools/suggest/actions/by-tags.d.ts.map +1 -1
- package/dist/tools/suggest/actions/by-tags.js +8 -18
- package/dist/tools/suggest/actions/by-tags.js.map +1 -1
- package/dist/tools/suggest/actions/constraint-by-context.d.ts +1 -1
- package/dist/tools/suggest/actions/constraint-by-context.d.ts.map +1 -1
- package/dist/tools/suggest/actions/constraint-by-context.js +9 -16
- package/dist/tools/suggest/actions/constraint-by-context.js.map +1 -1
- package/dist/tools/suggest/actions/constraint-by-tags.d.ts +1 -1
- package/dist/tools/suggest/actions/constraint-by-tags.d.ts.map +1 -1
- package/dist/tools/suggest/actions/constraint-by-tags.js +11 -17
- package/dist/tools/suggest/actions/constraint-by-tags.js.map +1 -1
- package/dist/tools/suggest/actions/constraint-by-text.d.ts +1 -1
- package/dist/tools/suggest/actions/constraint-by-text.d.ts.map +1 -1
- package/dist/tools/suggest/actions/constraint-by-text.js +6 -15
- package/dist/tools/suggest/actions/constraint-by-text.js.map +1 -1
- package/dist/tools/suggest/internal/constraint-queries.d.ts +4 -4
- package/dist/tools/suggest/internal/constraint-queries.js +14 -14
- package/dist/tools/suggest/internal/constraint-queries.js.map +1 -1
- package/dist/tools/suggest/internal/queries.d.ts +4 -4
- package/dist/tools/suggest/internal/queries.js +25 -25
- package/dist/tools/suggest/internal/queries.js.map +1 -1
- package/dist/tools/use_case/actions/get.d.ts +5 -3
- package/dist/tools/use_case/actions/get.d.ts.map +1 -1
- package/dist/tools/use_case/actions/get.js +20 -6
- package/dist/tools/use_case/actions/get.js.map +1 -1
- package/dist/tools/use_case/actions/list-all.d.ts +5 -3
- package/dist/tools/use_case/actions/list-all.d.ts.map +1 -1
- package/dist/tools/use_case/actions/list-all.js +36 -6
- package/dist/tools/use_case/actions/list-all.js.map +1 -1
- package/dist/tools/use_case/actions/search.d.ts +6 -3
- package/dist/tools/use_case/actions/search.d.ts.map +1 -1
- package/dist/tools/use_case/actions/search.js +37 -67
- package/dist/tools/use_case/actions/search.js.map +1 -1
- package/dist/tools/use_case/help/example.js +17 -17
- package/dist/tools/use_case/help/example.js.map +1 -1
- package/dist/types.d.ts +81 -380
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -10
- package/dist/types.js.map +1 -1
- package/dist/utils/action-specs/constraint-specs.js +6 -6
- package/dist/utils/action-specs/constraint-specs.js.map +1 -1
- package/dist/utils/action-specs/index.d.ts +0 -2
- package/dist/utils/action-specs/index.d.ts.map +1 -1
- package/dist/utils/action-specs/index.js +0 -6
- package/dist/utils/action-specs/index.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/case-insensitive-validator.d.ts +2 -2
- package/dist/utils/case-insensitive-validator.js +2 -2
- package/dist/utils/connection-hash.d.ts +37 -0
- package/dist/utils/connection-hash.d.ts.map +1 -0
- package/dist/utils/connection-hash.js +55 -0
- package/dist/utils/connection-hash.js.map +1 -0
- package/dist/utils/db-aggregations.js +16 -16
- package/dist/utils/db-aggregations.js.map +1 -1
- package/dist/utils/enum-converter.d.ts +0 -21
- package/dist/utils/enum-converter.d.ts.map +1 -1
- package/dist/utils/enum-converter.js +1 -23
- package/dist/utils/enum-converter.js.map +1 -1
- package/dist/utils/environment-detector.d.ts +30 -0
- package/dist/utils/environment-detector.d.ts.map +1 -0
- package/dist/utils/environment-detector.js +86 -0
- package/dist/utils/environment-detector.js.map +1 -0
- package/dist/utils/example-filter.d.ts +34 -0
- package/dist/utils/example-filter.d.ts.map +1 -0
- package/dist/utils/example-filter.js +45 -0
- package/dist/utils/example-filter.js.map +1 -0
- package/dist/utils/exporter/export.d.ts +2 -16
- package/dist/utils/exporter/export.d.ts.map +1 -1
- package/dist/utils/exporter/export.js +49 -130
- package/dist/utils/exporter/export.js.map +1 -1
- package/dist/utils/hook-queue.d.ts +60 -0
- package/dist/utils/hook-queue.d.ts.map +1 -1
- package/dist/utils/hook-queue.js +114 -11
- package/dist/utils/hook-queue.js.map +1 -1
- package/dist/utils/importer/import.d.ts.map +1 -1
- package/dist/utils/importer/import.js +33 -188
- package/dist/utils/importer/import.js.map +1 -1
- package/dist/utils/importer/master-tables.d.ts +2 -1
- package/dist/utils/importer/master-tables.d.ts.map +1 -1
- package/dist/utils/importer/master-tables.js +35 -81
- package/dist/utils/importer/master-tables.js.map +1 -1
- package/dist/utils/param-normalizer.d.ts +0 -1
- package/dist/utils/param-normalizer.d.ts.map +1 -1
- package/dist/utils/param-normalizer.js +1 -3
- package/dist/utils/param-normalizer.js.map +1 -1
- package/dist/utils/path-utils.d.ts +46 -0
- package/dist/utils/path-utils.d.ts.map +1 -0
- package/dist/utils/path-utils.js +74 -0
- package/dist/utils/path-utils.js.map +1 -0
- package/dist/utils/policy-validator.js +1 -1
- package/dist/utils/policy-validator.js.map +1 -1
- package/dist/utils/project-context.d.ts +23 -0
- package/dist/utils/project-context.d.ts.map +1 -1
- package/dist/utils/project-context.js +45 -3
- package/dist/utils/project-context.js.map +1 -1
- package/dist/utils/project-root.d.ts +2 -2
- package/dist/utils/project-root.js +2 -2
- package/dist/utils/sql-dump/core/index-export.js +7 -7
- package/dist/utils/sql-dump/schema/indexes.js +24 -24
- package/dist/utils/sql-dump/schema/tables.js +44 -44
- package/dist/utils/suggest-helpers.d.ts +82 -0
- package/dist/utils/suggest-helpers.d.ts.map +1 -0
- package/dist/utils/suggest-helpers.js +93 -0
- package/dist/utils/suggest-helpers.js.map +1 -0
- package/dist/utils/token-logging.js +6 -6
- package/dist/utils/token-logging.js.map +1 -1
- package/dist/utils/validators.js +1 -1
- package/dist/utils/validators.js.map +1 -1
- package/dist/utils/view-queries.d.ts +0 -8
- package/dist/utils/view-queries.d.ts.map +1 -1
- package/dist/utils/view-queries.js +29 -84
- package/dist/utils/view-queries.js.map +1 -1
- package/dist/watcher/index.d.ts +1 -4
- package/dist/watcher/index.d.ts.map +1 -1
- package/dist/watcher/index.js +1 -3
- package/dist/watcher/index.js.map +1 -1
- package/dist/watcher/queue-watcher.d.ts +10 -3
- package/dist/watcher/queue-watcher.d.ts.map +1 -1
- package/dist/watcher/queue-watcher.js +24 -21
- package/dist/watcher/queue-watcher.js.map +1 -1
- package/docs/CONFIGURATION.md +14 -14
- package/docs/DATABASE_AUTH.md +1 -1
- package/docs/HOOKS_GUIDE.md +30 -50
- package/docs/HOW_TO_UNINSTALL.md +199 -0
- package/docs/MIGRATION_CLEANUP_GUIDE.md +212 -0
- package/docs/MIGRATION_TO_SAAS.md +176 -0
- package/docs/SLASH_COMMANDS.md +1 -1
- package/docs/cli/DATABASE_MIGRATION.md +13 -13
- package/docs/cli/DATA_EXPORT_IMPORT.md +71 -69
- package/package.json +10 -8
- package/saas-connector/LICENSE +190 -0
- package/saas-connector/README.md +122 -0
- package/saas-connector/dist/auth/auth-manager.d.ts +6 -0
- package/saas-connector/dist/auth/auth-manager.d.ts.map +1 -0
- package/saas-connector/dist/auth/auth-manager.js +39 -0
- package/saas-connector/dist/auth/auth-manager.js.map +7 -0
- package/saas-connector/dist/backend/saas-backend.d.ts +20 -0
- package/saas-connector/dist/backend/saas-backend.d.ts.map +1 -0
- package/saas-connector/dist/backend/saas-backend.js +104 -0
- package/saas-connector/dist/backend/saas-backend.js.map +7 -0
- package/saas-connector/dist/client/http-client.d.ts +33 -0
- package/saas-connector/dist/client/http-client.d.ts.map +1 -0
- package/saas-connector/dist/client/http-client.js +226 -0
- package/saas-connector/dist/client/http-client.js.map +7 -0
- package/saas-connector/dist/client/types.d.ts +62 -0
- package/saas-connector/dist/client/types.d.ts.map +1 -0
- package/saas-connector/dist/client/types.js +17 -0
- package/saas-connector/dist/client/types.js.map +7 -0
- package/saas-connector/dist/config/constants.d.ts +14 -0
- package/saas-connector/dist/config/constants.d.ts.map +1 -0
- package/saas-connector/dist/config/constants.js +68 -0
- package/saas-connector/dist/config/constants.js.map +7 -0
- package/saas-connector/dist/errors/api-error.d.ts +26 -0
- package/saas-connector/dist/errors/api-error.d.ts.map +1 -0
- package/saas-connector/dist/errors/api-error.js +62 -0
- package/saas-connector/dist/errors/api-error.js.map +7 -0
- package/saas-connector/dist/index.d.ts +18 -0
- package/saas-connector/dist/index.d.ts.map +1 -0
- package/saas-connector/dist/index.js +51 -0
- package/saas-connector/dist/index.js.map +7 -0
- package/saas-connector/package-lock.json +518 -0
- package/saas-connector/package.json +34 -0
- package/scripts/copy-help-data.js +19 -0
- package/assets/config.example.toml +0 -282
- package/assets/kanban-style.png +0 -0
- package/assets/kanban-visualizer.png +0 -0
- package/assets/sample-agents/README.md +0 -36
- package/assets/sample-agents/sqlew-architect.md +0 -321
- package/assets/sample-agents/sqlew-researcher.md +0 -292
- package/assets/sample-agents/sqlew-scrum-master.md +0 -286
- package/assets/sample-commands/README.md +0 -56
- package/assets/sample-commands/sqlew.md +0 -144
- package/assets/sample-skills/sqlew-decision-format/SKILL.md +0 -73
- package/assets/sample-skills/sqlew-plan-guidance/SKILL.md +0 -62
- package/assets/schema.sql +0 -564
- package/dist/cli/hooks/init-hooks.d.ts +0 -35
- package/dist/cli/hooks/init-hooks.d.ts.map +0 -1
- package/dist/cli/hooks/init-hooks.js +0 -517
- package/dist/cli/hooks/init-hooks.js.map +0 -1
- package/dist/cli/hooks/plan-toml-parser.d.ts.map +0 -1
- package/dist/cli/hooks/plan-toml-parser.js.map +0 -1
- package/dist/init-agents.d.ts +0 -7
- package/dist/init-agents.d.ts.map +0 -1
- package/dist/init-agents.js +0 -206
- package/dist/init-agents.js.map +0 -1
- package/dist/init-commands.d.ts +0 -10
- package/dist/init-commands.d.ts.map +0 -1
- package/dist/init-commands.js +0 -46
- package/dist/init-commands.js.map +0 -1
- package/dist/init-skills.d.ts +0 -25
- package/dist/init-skills.d.ts.map +0 -1
- package/dist/init-skills.js +0 -160
- package/dist/init-skills.js.map +0 -1
- package/dist/sync-agents.d.ts +0 -13
- package/dist/sync-agents.d.ts.map +0 -1
- package/dist/sync-agents.js +0 -157
- package/dist/sync-agents.js.map +0 -1
- package/dist/sync-commands.d.ts +0 -13
- package/dist/sync-commands.d.ts.map +0 -1
- package/dist/sync-commands.js +0 -150
- package/dist/sync-commands.js.map +0 -1
- package/dist/sync-gitignore.d.ts +0 -13
- package/dist/sync-gitignore.d.ts.map +0 -1
- package/dist/sync-gitignore.js +0 -60
- package/dist/sync-gitignore.js.map +0 -1
- package/dist/tests/docker/native/task-operations.test.d.ts +0 -16
- package/dist/tests/docker/native/task-operations.test.d.ts.map +0 -1
- package/dist/tests/docker/native/task-operations.test.js +0 -800
- package/dist/tests/docker/native/task-operations.test.js.map +0 -1
- package/dist/tests/feature/decision/batch-validation-integration.test.d.ts +0 -6
- package/dist/tests/feature/decision/batch-validation-integration.test.d.ts.map +0 -1
- package/dist/tests/feature/decision/batch-validation-integration.test.js +0 -193
- package/dist/tests/feature/decision/batch-validation-integration.test.js.map +0 -1
- package/dist/tests/feature/task/auto-pruning-decision-link.test.d.ts +0 -6
- package/dist/tests/feature/task/auto-pruning-decision-link.test.d.ts.map +0 -1
- package/dist/tests/feature/task/auto-pruning-decision-link.test.js +0 -281
- package/dist/tests/feature/task/auto-pruning-decision-link.test.js.map +0 -1
- package/dist/tests/feature/task/auto-pruning-partial.test.d.ts +0 -6
- package/dist/tests/feature/task/auto-pruning-partial.test.d.ts.map +0 -1
- package/dist/tests/feature/task/auto-pruning-partial.test.js +0 -305
- package/dist/tests/feature/task/auto-pruning-partial.test.js.map +0 -1
- package/dist/tests/feature/task/auto-pruning-persistence.test.d.ts +0 -6
- package/dist/tests/feature/task/auto-pruning-persistence.test.d.ts.map +0 -1
- package/dist/tests/feature/task/auto-pruning-persistence.test.js +0 -267
- package/dist/tests/feature/task/auto-pruning-persistence.test.js.map +0 -1
- package/dist/tests/feature/task/auto-pruning-safety.test.d.ts +0 -12
- package/dist/tests/feature/task/auto-pruning-safety.test.d.ts.map +0 -1
- package/dist/tests/feature/task/auto-pruning-safety.test.js +0 -224
- package/dist/tests/feature/task/auto-pruning-safety.test.js.map +0 -1
- package/dist/tests/feature/task/dependencies.test.d.ts +0 -7
- package/dist/tests/feature/task/dependencies.test.d.ts.map +0 -1
- package/dist/tests/feature/task/dependencies.test.js +0 -656
- package/dist/tests/feature/task/dependencies.test.js.map +0 -1
- package/dist/tests/feature/task/file-actions-integration.test.d.ts +0 -10
- package/dist/tests/feature/task/file-actions-integration.test.d.ts.map +0 -1
- package/dist/tests/feature/task/file-actions-integration.test.js +0 -162
- package/dist/tests/feature/task/file-actions-integration.test.js.map +0 -1
- package/dist/tests/feature/task/file-actions-validation.test.d.ts +0 -6
- package/dist/tests/feature/task/file-actions-validation.test.d.ts.map +0 -1
- package/dist/tests/feature/task/file-actions-validation.test.js +0 -228
- package/dist/tests/feature/task/file-actions-validation.test.js.map +0 -1
- package/dist/tests/feature/task/link-file-backward-compat.test.d.ts +0 -6
- package/dist/tests/feature/task/link-file-backward-compat.test.d.ts.map +0 -1
- package/dist/tests/feature/task/link-file-backward-compat.test.js +0 -280
- package/dist/tests/feature/task/link-file-backward-compat.test.js.map +0 -1
- package/dist/tests/feature/task/watch-files-action.test.d.ts +0 -8
- package/dist/tests/feature/task/watch-files-action.test.d.ts.map +0 -1
- package/dist/tests/feature/task/watch-files-action.test.js +0 -402
- package/dist/tests/feature/task/watch-files-action.test.js.map +0 -1
- package/dist/tests/feature/task/watch-files-parameter.test.d.ts +0 -8
- package/dist/tests/feature/task/watch-files-parameter.test.d.ts.map +0 -1
- package/dist/tests/feature/task/watch-files-parameter.test.js +0 -283
- package/dist/tests/feature/task/watch-files-parameter.test.js.map +0 -1
- package/dist/tests/integration/all-features.standalone.d.ts +0 -7
- package/dist/tests/integration/all-features.standalone.d.ts.map +0 -1
- package/dist/tests/integration/all-features.standalone.js +0 -417
- package/dist/tests/integration/all-features.standalone.js.map +0 -1
- package/dist/tests/unit/config/plan-toml-cache.test.d.ts.map +0 -1
- package/dist/tests/unit/config/plan-toml-cache.test.js.map +0 -1
- package/dist/tests/unit/hooks/plan-toml-parser.test.d.ts.map +0 -1
- package/dist/tests/unit/hooks/plan-toml-parser.test.js.map +0 -1
- package/dist/tools/files/actions/check-lock.d.ts +0 -16
- package/dist/tools/files/actions/check-lock.d.ts.map +0 -1
- package/dist/tools/files/actions/check-lock.js +0 -74
- package/dist/tools/files/actions/check-lock.js.map +0 -1
- package/dist/tools/files/actions/get.d.ts +0 -16
- package/dist/tools/files/actions/get.d.ts.map +0 -1
- package/dist/tools/files/actions/get.js +0 -85
- package/dist/tools/files/actions/get.js.map +0 -1
- package/dist/tools/files/actions/record-batch.d.ts +0 -18
- package/dist/tools/files/actions/record-batch.d.ts.map +0 -1
- package/dist/tools/files/actions/record-batch.js +0 -119
- package/dist/tools/files/actions/record-batch.js.map +0 -1
- package/dist/tools/files/actions/record.d.ts +0 -16
- package/dist/tools/files/actions/record.d.ts.map +0 -1
- package/dist/tools/files/actions/record.js +0 -43
- package/dist/tools/files/actions/record.js.map +0 -1
- package/dist/tools/files/actions/sqlite-flush.d.ts +0 -27
- package/dist/tools/files/actions/sqlite-flush.d.ts.map +0 -1
- package/dist/tools/files/actions/sqlite-flush.js +0 -66
- package/dist/tools/files/actions/sqlite-flush.js.map +0 -1
- package/dist/tools/files/help/example.d.ts +0 -5
- package/dist/tools/files/help/example.d.ts.map +0 -1
- package/dist/tools/files/help/example.js +0 -98
- package/dist/tools/files/help/example.js.map +0 -1
- package/dist/tools/files/help/help.d.ts +0 -5
- package/dist/tools/files/help/help.d.ts.map +0 -1
- package/dist/tools/files/help/help.js +0 -24
- package/dist/tools/files/help/help.js.map +0 -1
- package/dist/tools/files/index.d.ts +0 -14
- package/dist/tools/files/index.d.ts.map +0 -1
- package/dist/tools/files/index.js +0 -15
- package/dist/tools/files/index.js.map +0 -1
- package/dist/tools/files/internal/queries.d.ts +0 -18
- package/dist/tools/files/internal/queries.d.ts.map +0 -1
- package/dist/tools/files/internal/queries.js +0 -54
- package/dist/tools/files/internal/queries.js.map +0 -1
- package/dist/tools/files/internal/validation.d.ts +0 -18
- package/dist/tools/files/internal/validation.d.ts.map +0 -1
- package/dist/tools/files/internal/validation.js +0 -39
- package/dist/tools/files/internal/validation.js.map +0 -1
- package/dist/tools/files/types.d.ts +0 -6
- package/dist/tools/files/types.d.ts.map +0 -1
- package/dist/tools/files/types.js +0 -6
- package/dist/tools/files/types.js.map +0 -1
- package/dist/tools/help-queries.d.ts +0 -130
- package/dist/tools/help-queries.d.ts.map +0 -1
- package/dist/tools/help-queries.js +0 -411
- package/dist/tools/help-queries.js.map +0 -1
- package/dist/tools/tasks/actions/add-dependency.d.ts +0 -12
- package/dist/tools/tasks/actions/add-dependency.d.ts.map +0 -1
- package/dist/tools/tasks/actions/add-dependency.js +0 -129
- package/dist/tools/tasks/actions/add-dependency.js.map +0 -1
- package/dist/tools/tasks/actions/archive.d.ts +0 -11
- package/dist/tools/tasks/actions/archive.d.ts.map +0 -1
- package/dist/tools/tasks/actions/archive.js +0 -58
- package/dist/tools/tasks/actions/archive.js.map +0 -1
- package/dist/tools/tasks/actions/create-batch.d.ts +0 -19
- package/dist/tools/tasks/actions/create-batch.d.ts.map +0 -1
- package/dist/tools/tasks/actions/create-batch.js +0 -103
- package/dist/tools/tasks/actions/create-batch.js.map +0 -1
- package/dist/tools/tasks/actions/create.d.ts +0 -16
- package/dist/tools/tasks/actions/create.d.ts.map +0 -1
- package/dist/tools/tasks/actions/create.js +0 -163
- package/dist/tools/tasks/actions/create.js.map +0 -1
- package/dist/tools/tasks/actions/get-dependencies.d.ts +0 -12
- package/dist/tools/tasks/actions/get-dependencies.d.ts.map +0 -1
- package/dist/tools/tasks/actions/get-dependencies.js +0 -41
- package/dist/tools/tasks/actions/get-dependencies.js.map +0 -1
- package/dist/tools/tasks/actions/get-pruned-files.d.ts +0 -13
- package/dist/tools/tasks/actions/get-pruned-files.d.ts.map +0 -1
- package/dist/tools/tasks/actions/get-pruned-files.js +0 -45
- package/dist/tools/tasks/actions/get-pruned-files.js.map +0 -1
- package/dist/tools/tasks/actions/get.d.ts +0 -12
- package/dist/tools/tasks/actions/get.d.ts.map +0 -1
- package/dist/tools/tasks/actions/get.js +0 -84
- package/dist/tools/tasks/actions/get.js.map +0 -1
- package/dist/tools/tasks/actions/link-pruned-file.d.ts +0 -14
- package/dist/tools/tasks/actions/link-pruned-file.d.ts.map +0 -1
- package/dist/tools/tasks/actions/link-pruned-file.js +0 -68
- package/dist/tools/tasks/actions/link-pruned-file.js.map +0 -1
- package/dist/tools/tasks/actions/link.d.ts +0 -14
- package/dist/tools/tasks/actions/link.d.ts.map +0 -1
- package/dist/tools/tasks/actions/link.js +0 -120
- package/dist/tools/tasks/actions/link.js.map +0 -1
- package/dist/tools/tasks/actions/list.d.ts +0 -17
- package/dist/tools/tasks/actions/list.d.ts.map +0 -1
- package/dist/tools/tasks/actions/list.js +0 -100
- package/dist/tools/tasks/actions/list.js.map +0 -1
- package/dist/tools/tasks/actions/move.d.ts +0 -13
- package/dist/tools/tasks/actions/move.d.ts.map +0 -1
- package/dist/tools/tasks/actions/move.js +0 -91
- package/dist/tools/tasks/actions/move.js.map +0 -1
- package/dist/tools/tasks/actions/remove-dependency.d.ts +0 -12
- package/dist/tools/tasks/actions/remove-dependency.d.ts.map +0 -1
- package/dist/tools/tasks/actions/remove-dependency.js +0 -36
- package/dist/tools/tasks/actions/remove-dependency.js.map +0 -1
- package/dist/tools/tasks/actions/update.d.ts +0 -10
- package/dist/tools/tasks/actions/update.d.ts.map +0 -1
- package/dist/tools/tasks/actions/update.js +0 -183
- package/dist/tools/tasks/actions/update.js.map +0 -1
- package/dist/tools/tasks/actions/watch-files.d.ts +0 -14
- package/dist/tools/tasks/actions/watch-files.d.ts.map +0 -1
- package/dist/tools/tasks/actions/watch-files.js +0 -127
- package/dist/tools/tasks/actions/watch-files.js.map +0 -1
- package/dist/tools/tasks/help/example.d.ts +0 -8
- package/dist/tools/tasks/help/example.d.ts.map +0 -1
- package/dist/tools/tasks/help/example.js +0 -225
- package/dist/tools/tasks/help/example.js.map +0 -1
- package/dist/tools/tasks/help/help.d.ts +0 -8
- package/dist/tools/tasks/help/help.d.ts.map +0 -1
- package/dist/tools/tasks/help/help.js +0 -307
- package/dist/tools/tasks/help/help.js.map +0 -1
- package/dist/tools/tasks/help/use-case.d.ts +0 -11
- package/dist/tools/tasks/help/use-case.d.ts.map +0 -1
- package/dist/tools/tasks/help/use-case.js +0 -767
- package/dist/tools/tasks/help/use-case.js.map +0 -1
- package/dist/tools/tasks/index.d.ts +0 -28
- package/dist/tools/tasks/index.d.ts.map +0 -1
- package/dist/tools/tasks/index.js +0 -33
- package/dist/tools/tasks/index.js.map +0 -1
- package/dist/tools/tasks/internal/state-machine.d.ts +0 -16
- package/dist/tools/tasks/internal/state-machine.d.ts.map +0 -1
- package/dist/tools/tasks/internal/state-machine.js +0 -36
- package/dist/tools/tasks/internal/state-machine.js.map +0 -1
- package/dist/tools/tasks/internal/task-queries.d.ts +0 -12
- package/dist/tools/tasks/internal/task-queries.d.ts.map +0 -1
- package/dist/tools/tasks/internal/task-queries.js +0 -53
- package/dist/tools/tasks/internal/task-queries.js.map +0 -1
- package/dist/tools/tasks/internal/validation.d.ts +0 -47
- package/dist/tools/tasks/internal/validation.d.ts.map +0 -1
- package/dist/tools/tasks/internal/validation.js +0 -261
- package/dist/tools/tasks/internal/validation.js.map +0 -1
- package/dist/tools/tasks/types.d.ts +0 -80
- package/dist/tools/tasks/types.d.ts.map +0 -1
- package/dist/tools/tasks/types.js +0 -68
- package/dist/tools/tasks/types.js.map +0 -1
- package/dist/tools/tasks/watcher/status.d.ts +0 -9
- package/dist/tools/tasks/watcher/status.d.ts.map +0 -1
- package/dist/tools/tasks/watcher/status.js +0 -130
- package/dist/tools/tasks/watcher/status.js.map +0 -1
- package/dist/tools/tasks.d.ts +0 -16
- package/dist/tools/tasks.d.ts.map +0 -1
- package/dist/tools/tasks.js +0 -17
- package/dist/tools/tasks.js.map +0 -1
- package/dist/utils/action-specs/file-specs.d.ts +0 -9
- package/dist/utils/action-specs/file-specs.d.ts.map +0 -1
- package/dist/utils/action-specs/file-specs.js +0 -54
- package/dist/utils/action-specs/file-specs.js.map +0 -1
- package/dist/utils/action-specs/task-specs.d.ts +0 -9
- package/dist/utils/action-specs/task-specs.d.ts.map +0 -1
- package/dist/utils/action-specs/task-specs.js +0 -143
- package/dist/utils/action-specs/task-specs.js.map +0 -1
- package/dist/utils/cleanup.d.ts +0 -69
- package/dist/utils/cleanup.d.ts.map +0 -1
- package/dist/utils/cleanup.js +0 -102
- package/dist/utils/cleanup.js.map +0 -1
- package/dist/utils/file-pruning.d.ts +0 -93
- package/dist/utils/file-pruning.d.ts.map +0 -1
- package/dist/utils/file-pruning.js +0 -194
- package/dist/utils/file-pruning.js.map +0 -1
- package/dist/utils/importer/topological-sort.d.ts +0 -61
- package/dist/utils/importer/topological-sort.d.ts.map +0 -1
- package/dist/utils/importer/topological-sort.js +0 -143
- package/dist/utils/importer/topological-sort.js.map +0 -1
- package/dist/utils/retention.d.ts +0 -65
- package/dist/utils/retention.d.ts.map +0 -1
- package/dist/utils/retention.js +0 -156
- package/dist/utils/retention.js.map +0 -1
- package/dist/utils/task-stale-detection.d.ts +0 -98
- package/dist/utils/task-stale-detection.d.ts.map +0 -1
- package/dist/utils/task-stale-detection.js +0 -479
- package/dist/utils/task-stale-detection.js.map +0 -1
- package/dist/watcher/file-watcher.d.ts +0 -131
- package/dist/watcher/file-watcher.d.ts.map +0 -1
- package/dist/watcher/file-watcher.js +0 -730
- package/dist/watcher/file-watcher.js.map +0 -1
- package/dist/watcher/test-executor.d.ts +0 -23
- package/dist/watcher/test-executor.d.ts.map +0 -1
- package/dist/watcher/test-executor.js +0 -226
- package/dist/watcher/test-executor.js.map +0 -1
- package/docs/TASK_SYSTEM_DEPRECATED.md +0 -88
|
@@ -1,305 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Integration test for v3.5.0 Auto-Pruning feature
|
|
3
|
-
* Tests partial pruning scenario: keeps existing files, removes non-existent ones
|
|
4
|
-
*/
|
|
5
|
-
import { describe, it, beforeEach, afterEach } from 'node:test';
|
|
6
|
-
import assert from 'node:assert/strict';
|
|
7
|
-
import { initializeDatabase, getOrCreateFile, closeDatabase } from '../../../database.js';
|
|
8
|
-
import { detectAndTransitionToReview } from '../../../utils/task-stale-detection.js';
|
|
9
|
-
import { ProjectContext } from '../../../utils/project-context.js';
|
|
10
|
-
import fs from 'fs';
|
|
11
|
-
import path from 'path';
|
|
12
|
-
import os from 'os';
|
|
13
|
-
describe('Auto-pruning: Partial file existence', () => {
|
|
14
|
-
let db;
|
|
15
|
-
let tempDir;
|
|
16
|
-
let tempDbPath;
|
|
17
|
-
let testCount = 0;
|
|
18
|
-
const totalTests = 4; // Total number of tests in this suite
|
|
19
|
-
beforeEach(async () => {
|
|
20
|
-
// Create temp directory for test files and database
|
|
21
|
-
tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'sqlew-test-'));
|
|
22
|
-
tempDbPath = path.join(tempDir, 'test.db');
|
|
23
|
-
// Initialize database with Knex adapter
|
|
24
|
-
db = await initializeDatabase({
|
|
25
|
-
databaseType: 'sqlite',
|
|
26
|
-
connection: {
|
|
27
|
-
filename: tempDbPath,
|
|
28
|
-
},
|
|
29
|
-
});
|
|
30
|
-
// Reset and re-initialize ProjectContext after creating new database
|
|
31
|
-
ProjectContext.reset();
|
|
32
|
-
const knex = db.getKnex();
|
|
33
|
-
const projectContext = ProjectContext.getInstance();
|
|
34
|
-
await projectContext.ensureProject(knex, 'test-auto-pruning-partial', 'config', {
|
|
35
|
-
projectRootPath: process.cwd(),
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
afterEach(async () => {
|
|
39
|
-
testCount++;
|
|
40
|
-
await closeDatabase();
|
|
41
|
-
// Cleanup temp directory
|
|
42
|
-
if (fs.existsSync(tempDir)) {
|
|
43
|
-
fs.rmSync(tempDir, { recursive: true, force: true });
|
|
44
|
-
}
|
|
45
|
-
// Detect if running filtered tests (IDE scenario with --test-name-pattern)
|
|
46
|
-
const isFilteredTest = process.argv.some(arg => arg.includes('--test-name-pattern'));
|
|
47
|
-
});
|
|
48
|
-
it('should prune non-existent files and keep existing ones', async () => {
|
|
49
|
-
// 1. Create test task
|
|
50
|
-
const taskId = await createTestTask(db);
|
|
51
|
-
// 2. Create 4 watched files (2 exist, 2 don't)
|
|
52
|
-
const existingFile1 = path.join(tempDir, 'exists1.ts');
|
|
53
|
-
const existingFile2 = path.join(tempDir, 'exists2.ts');
|
|
54
|
-
const nonExistentFile1 = path.join(tempDir, 'missing1.ts');
|
|
55
|
-
const nonExistentFile2 = path.join(tempDir, 'missing2.ts');
|
|
56
|
-
fs.writeFileSync(existingFile1, '// test file 1');
|
|
57
|
-
fs.writeFileSync(existingFile2, '// test file 2');
|
|
58
|
-
// Don't create nonExistentFile1 and nonExistentFile2
|
|
59
|
-
// Add all 4 files to watch list
|
|
60
|
-
await addWatchedFiles(db, taskId, [
|
|
61
|
-
existingFile1,
|
|
62
|
-
existingFile2,
|
|
63
|
-
nonExistentFile1,
|
|
64
|
-
nonExistentFile2,
|
|
65
|
-
]);
|
|
66
|
-
// Set task to in_progress status and update timestamp to be old enough
|
|
67
|
-
// for auto-transition (older than 15 minutes, which is the default review_idle_minutes)
|
|
68
|
-
const fifteenMinutesAgo = Math.floor(Date.now() / 1000) - (15 * 60 + 10);
|
|
69
|
-
const knex = db.getKnex();
|
|
70
|
-
await knex('v4_tasks')
|
|
71
|
-
.where({ id: taskId })
|
|
72
|
-
.update({
|
|
73
|
-
status_id: 2,
|
|
74
|
-
updated_ts: fifteenMinutesAgo,
|
|
75
|
-
});
|
|
76
|
-
// 3. Trigger auto-pruning by detecting ready for review
|
|
77
|
-
// Change cwd to tempDir so file existence checks work correctly
|
|
78
|
-
const originalCwd = process.cwd();
|
|
79
|
-
try {
|
|
80
|
-
process.chdir(tempDir);
|
|
81
|
-
const transitioned = await detectAndTransitionToReview(db);
|
|
82
|
-
// Task should have transitioned
|
|
83
|
-
assert.equal(transitioned, 1, 'Should have transitioned 1 task');
|
|
84
|
-
// 4. Verify results
|
|
85
|
-
// Check watch list - should have only 2 files (the existing ones)
|
|
86
|
-
const watchedFiles = await getWatchedFiles(db, taskId);
|
|
87
|
-
assert.equal(watchedFiles.length, 2, 'Should have 2 files in watch list');
|
|
88
|
-
assert.ok(watchedFiles.includes('exists1.ts'), 'Should keep existing file 1');
|
|
89
|
-
assert.ok(watchedFiles.includes('exists2.ts'), 'Should keep existing file 2');
|
|
90
|
-
// Check pruned files table - should have 2 records
|
|
91
|
-
const prunedFiles = await knex('v4_task_pruned_files')
|
|
92
|
-
.where({ task_id: taskId })
|
|
93
|
-
.select('file_path');
|
|
94
|
-
assert.equal(prunedFiles.length, 2, 'Should have 2 pruned file records');
|
|
95
|
-
// Verify pruned files are the correct ones
|
|
96
|
-
const prunedPaths = prunedFiles.map((f) => f.file_path);
|
|
97
|
-
assert.ok(prunedPaths.includes('missing1.ts'), 'Should have pruned missing1.ts');
|
|
98
|
-
assert.ok(prunedPaths.includes('missing2.ts'), 'Should have pruned missing2.ts');
|
|
99
|
-
// Check task status transitioned to waiting_review
|
|
100
|
-
const task = await knex('v4_tasks')
|
|
101
|
-
.where({ id: taskId })
|
|
102
|
-
.first('status_id');
|
|
103
|
-
assert.equal(task.status_id, 3, 'Task should be in waiting_review status (3)');
|
|
104
|
-
}
|
|
105
|
-
finally {
|
|
106
|
-
// Restore original cwd
|
|
107
|
-
process.chdir(originalCwd);
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
it('should not transition if all files are non-existent', async () => {
|
|
111
|
-
// 1. Create test task
|
|
112
|
-
const taskId = await createTestTask(db);
|
|
113
|
-
// 2. Create 2 watched files that don't exist
|
|
114
|
-
const nonExistentFile1 = path.join(tempDir, 'missing1.ts');
|
|
115
|
-
const nonExistentFile2 = path.join(tempDir, 'missing2.ts');
|
|
116
|
-
// Don't create these files
|
|
117
|
-
// Add files to watch list
|
|
118
|
-
await addWatchedFiles(db, taskId, [nonExistentFile1, nonExistentFile2]);
|
|
119
|
-
// Set task to in_progress status and update timestamp to be old enough
|
|
120
|
-
const fifteenMinutesAgo = Math.floor(Date.now() / 1000) - (15 * 60 + 10);
|
|
121
|
-
const knex = db.getKnex();
|
|
122
|
-
await knex('v4_tasks')
|
|
123
|
-
.where({ id: taskId })
|
|
124
|
-
.update({
|
|
125
|
-
status_id: 2,
|
|
126
|
-
updated_ts: fifteenMinutesAgo,
|
|
127
|
-
});
|
|
128
|
-
// 3. Trigger auto-pruning
|
|
129
|
-
const originalCwd = process.cwd();
|
|
130
|
-
try {
|
|
131
|
-
process.chdir(tempDir);
|
|
132
|
-
const transitioned = await detectAndTransitionToReview(db);
|
|
133
|
-
// Task should NOT have transitioned (safety check prevents it)
|
|
134
|
-
assert.equal(transitioned, 0, 'Should not have transitioned any tasks');
|
|
135
|
-
// 4. Verify task is still in in_progress
|
|
136
|
-
const task = await knex('v4_tasks')
|
|
137
|
-
.where({ id: taskId })
|
|
138
|
-
.first('status_id');
|
|
139
|
-
assert.equal(task.status_id, 2, 'Task should still be in in_progress (2)');
|
|
140
|
-
// 5. Verify no pruning occurred (safety check blocked it)
|
|
141
|
-
const prunedFiles = await knex('v4_task_pruned_files')
|
|
142
|
-
.where({ task_id: taskId })
|
|
143
|
-
.count('* as count')
|
|
144
|
-
.first();
|
|
145
|
-
assert.ok(prunedFiles, 'Should have pruned files result');
|
|
146
|
-
assert.equal(prunedFiles.count, 0, 'Should have 0 pruned records (safety check prevented pruning)');
|
|
147
|
-
}
|
|
148
|
-
finally {
|
|
149
|
-
process.chdir(originalCwd);
|
|
150
|
-
}
|
|
151
|
-
});
|
|
152
|
-
it('should not prune when all files exist', async () => {
|
|
153
|
-
// 1. Create test task
|
|
154
|
-
const taskId = await createTestTask(db);
|
|
155
|
-
// 2. Create 3 watched files that all exist
|
|
156
|
-
const existingFile1 = path.join(tempDir, 'exists1.ts');
|
|
157
|
-
const existingFile2 = path.join(tempDir, 'exists2.ts');
|
|
158
|
-
const existingFile3 = path.join(tempDir, 'exists3.ts');
|
|
159
|
-
fs.writeFileSync(existingFile1, '// test file 1');
|
|
160
|
-
fs.writeFileSync(existingFile2, '// test file 2');
|
|
161
|
-
fs.writeFileSync(existingFile3, '// test file 3');
|
|
162
|
-
// Add files to watch list
|
|
163
|
-
await addWatchedFiles(db, taskId, [
|
|
164
|
-
existingFile1,
|
|
165
|
-
existingFile2,
|
|
166
|
-
existingFile3,
|
|
167
|
-
]);
|
|
168
|
-
// Set task to in_progress status and update timestamp to be old enough
|
|
169
|
-
const fifteenMinutesAgo = Math.floor(Date.now() / 1000) - (15 * 60 + 10);
|
|
170
|
-
const knex = db.getKnex();
|
|
171
|
-
await knex('v4_tasks')
|
|
172
|
-
.where({ id: taskId })
|
|
173
|
-
.update({
|
|
174
|
-
status_id: 2,
|
|
175
|
-
updated_ts: fifteenMinutesAgo,
|
|
176
|
-
});
|
|
177
|
-
// 3. Trigger auto-pruning
|
|
178
|
-
const originalCwd = process.cwd();
|
|
179
|
-
try {
|
|
180
|
-
process.chdir(tempDir);
|
|
181
|
-
const transitioned = await detectAndTransitionToReview(db);
|
|
182
|
-
// Task should have transitioned (all files exist)
|
|
183
|
-
assert.equal(transitioned, 1, 'Should have transitioned 1 task');
|
|
184
|
-
// 4. Verify no pruning occurred
|
|
185
|
-
const prunedFiles = await knex('v4_task_pruned_files')
|
|
186
|
-
.where({ task_id: taskId })
|
|
187
|
-
.count('* as count')
|
|
188
|
-
.first();
|
|
189
|
-
assert.ok(prunedFiles, 'Should have pruned files result');
|
|
190
|
-
assert.equal(prunedFiles.count, 0, 'Should have 0 pruned records');
|
|
191
|
-
// 5. Verify all files still in watch list
|
|
192
|
-
const watchedFiles = await getWatchedFiles(db, taskId);
|
|
193
|
-
assert.equal(watchedFiles.length, 3, 'Should still have 3 files in watch list');
|
|
194
|
-
// 6. Verify task transitioned to waiting_review
|
|
195
|
-
const task = await knex('v4_tasks')
|
|
196
|
-
.where({ id: taskId })
|
|
197
|
-
.first('status_id');
|
|
198
|
-
assert.equal(task.status_id, 3, 'Task should be in waiting_review status (3)');
|
|
199
|
-
}
|
|
200
|
-
finally {
|
|
201
|
-
process.chdir(originalCwd);
|
|
202
|
-
}
|
|
203
|
-
});
|
|
204
|
-
it('should handle mixed ratios (3 exist, 1 missing)', async () => {
|
|
205
|
-
// 1. Create test task
|
|
206
|
-
const taskId = await createTestTask(db);
|
|
207
|
-
// 2. Create 4 watched files (3 exist, 1 doesn't)
|
|
208
|
-
const existingFile1 = path.join(tempDir, 'exists1.ts');
|
|
209
|
-
const existingFile2 = path.join(tempDir, 'exists2.ts');
|
|
210
|
-
const existingFile3 = path.join(tempDir, 'exists3.ts');
|
|
211
|
-
const nonExistentFile = path.join(tempDir, 'missing.ts');
|
|
212
|
-
fs.writeFileSync(existingFile1, '// test file 1');
|
|
213
|
-
fs.writeFileSync(existingFile2, '// test file 2');
|
|
214
|
-
fs.writeFileSync(existingFile3, '// test file 3');
|
|
215
|
-
// Don't create nonExistentFile
|
|
216
|
-
// Add all files to watch list
|
|
217
|
-
await addWatchedFiles(db, taskId, [
|
|
218
|
-
existingFile1,
|
|
219
|
-
existingFile2,
|
|
220
|
-
existingFile3,
|
|
221
|
-
nonExistentFile,
|
|
222
|
-
]);
|
|
223
|
-
// Set task to in_progress status and update timestamp to be old enough
|
|
224
|
-
const fifteenMinutesAgo = Math.floor(Date.now() / 1000) - (15 * 60 + 10);
|
|
225
|
-
const knex = db.getKnex();
|
|
226
|
-
await knex('v4_tasks')
|
|
227
|
-
.where({ id: taskId })
|
|
228
|
-
.update({
|
|
229
|
-
status_id: 2,
|
|
230
|
-
updated_ts: fifteenMinutesAgo,
|
|
231
|
-
});
|
|
232
|
-
// 3. Trigger auto-pruning
|
|
233
|
-
const originalCwd = process.cwd();
|
|
234
|
-
try {
|
|
235
|
-
process.chdir(tempDir);
|
|
236
|
-
const transitioned = await detectAndTransitionToReview(db);
|
|
237
|
-
// Task should have transitioned
|
|
238
|
-
assert.equal(transitioned, 1, 'Should have transitioned 1 task');
|
|
239
|
-
// 4. Verify results
|
|
240
|
-
const watchedFiles = await getWatchedFiles(db, taskId);
|
|
241
|
-
assert.equal(watchedFiles.length, 3, 'Should have 3 files in watch list');
|
|
242
|
-
const prunedFiles = await knex('v4_task_pruned_files')
|
|
243
|
-
.where({ task_id: taskId })
|
|
244
|
-
.select('file_path');
|
|
245
|
-
assert.equal(prunedFiles.length, 1, 'Should have 1 pruned file record');
|
|
246
|
-
assert.equal(prunedFiles[0].file_path, 'missing.ts', 'Should have pruned missing.ts');
|
|
247
|
-
}
|
|
248
|
-
finally {
|
|
249
|
-
process.chdir(originalCwd);
|
|
250
|
-
}
|
|
251
|
-
});
|
|
252
|
-
});
|
|
253
|
-
// Helper functions
|
|
254
|
-
/**
|
|
255
|
-
* Create a test task in in_progress status
|
|
256
|
-
* Note: Agent tracking removed in v4.0
|
|
257
|
-
*/
|
|
258
|
-
async function createTestTask(db) {
|
|
259
|
-
const knex = db.getKnex();
|
|
260
|
-
const projectId = ProjectContext.getInstance().getProjectId();
|
|
261
|
-
const now = Math.floor(Date.now() / 1000);
|
|
262
|
-
const [taskId] = await knex('v4_tasks').insert({
|
|
263
|
-
title: 'Test Task for Auto-Pruning',
|
|
264
|
-
status_id: 2,
|
|
265
|
-
priority: 2,
|
|
266
|
-
project_id: projectId, // Required after v3.7.0
|
|
267
|
-
created_ts: now, // Required NOT NULL field
|
|
268
|
-
updated_ts: now // Required NOT NULL field
|
|
269
|
-
});
|
|
270
|
-
return taskId;
|
|
271
|
-
}
|
|
272
|
-
/**
|
|
273
|
-
* Add watched files to a task
|
|
274
|
-
*/
|
|
275
|
-
async function addWatchedFiles(db, taskId, filePaths) {
|
|
276
|
-
const knex = db.getKnex();
|
|
277
|
-
const projectId = ProjectContext.getInstance().getProjectId();
|
|
278
|
-
const now = Math.floor(Date.now() / 1000);
|
|
279
|
-
for (const filePath of filePaths) {
|
|
280
|
-
// Extract just the filename (last segment) for relative paths
|
|
281
|
-
const fileName = path.basename(filePath);
|
|
282
|
-
const fileId = await getOrCreateFile(db, 1, fileName);
|
|
283
|
-
await knex('v4_task_file_links')
|
|
284
|
-
.insert({
|
|
285
|
-
task_id: taskId,
|
|
286
|
-
file_id: fileId,
|
|
287
|
-
project_id: projectId, // Required after v3.8.0
|
|
288
|
-
linked_ts: now, // Required after v3.8.0
|
|
289
|
-
})
|
|
290
|
-
.onConflict(['project_id', 'task_id', 'file_id']) // Fixed for v3.8.0 UNIQUE constraint
|
|
291
|
-
.ignore();
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
/**
|
|
295
|
-
* Get watched files for a task
|
|
296
|
-
*/
|
|
297
|
-
async function getWatchedFiles(db, taskId) {
|
|
298
|
-
const knex = db.getKnex();
|
|
299
|
-
const files = await knex('v4_task_file_links as tfl')
|
|
300
|
-
.join('v4_files as mf', 'tfl.file_id', 'mf.id')
|
|
301
|
-
.where('tfl.task_id', taskId)
|
|
302
|
-
.select('mf.path');
|
|
303
|
-
return files.map((row) => row.path);
|
|
304
|
-
}
|
|
305
|
-
//# sourceMappingURL=auto-pruning-partial.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-pruning-partial.test.js","sourceRoot":"","sources":["../../../../src/tests/feature/task/auto-pruning-partial.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-pruning-persistence.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/feature/task/auto-pruning-persistence.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -1,267 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Integration tests for v3.5.0 Auto-Pruning persistence
|
|
3
|
-
* Tests audit trail persistence after task archival (no cascade deletion)
|
|
4
|
-
*/
|
|
5
|
-
import { describe, it, beforeEach, afterEach } from 'node:test';
|
|
6
|
-
import assert from 'node:assert/strict';
|
|
7
|
-
import { initializeDatabase, closeDatabase } from '../../../database.js';
|
|
8
|
-
import { ProjectContext } from '../../../utils/project-context.js';
|
|
9
|
-
/**
|
|
10
|
-
* Test database instance
|
|
11
|
-
*/
|
|
12
|
-
let testDb;
|
|
13
|
-
/**
|
|
14
|
-
* Create an in-memory test database with schema and migrations
|
|
15
|
-
*/
|
|
16
|
-
async function createTestDatabase() {
|
|
17
|
-
const adapter = await initializeDatabase({
|
|
18
|
-
databaseType: 'sqlite',
|
|
19
|
-
connection: {
|
|
20
|
-
filename: ':memory:',
|
|
21
|
-
},
|
|
22
|
-
});
|
|
23
|
-
// Enable foreign keys for SQLite
|
|
24
|
-
const knex = adapter.getKnex();
|
|
25
|
-
await knex.raw('PRAGMA foreign_keys = ON');
|
|
26
|
-
return adapter;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Helper: Create a test task in 'done' status (ready to archive)
|
|
30
|
-
* Note: Agent tracking removed in v4.0
|
|
31
|
-
*/
|
|
32
|
-
async function createTestTask(adapter, title) {
|
|
33
|
-
const knex = adapter.getKnex();
|
|
34
|
-
const projectId = ProjectContext.getInstance().getProjectId();
|
|
35
|
-
const statusId = 5; // done (ready to archive)
|
|
36
|
-
const now = Math.floor(Date.now() / 1000);
|
|
37
|
-
const [taskId] = await knex('v4_tasks').insert({
|
|
38
|
-
title,
|
|
39
|
-
status_id: statusId,
|
|
40
|
-
priority: 2,
|
|
41
|
-
project_id: projectId, // Required after v3.7.0
|
|
42
|
-
created_ts: now, // Required NOT NULL field
|
|
43
|
-
updated_ts: now // Required NOT NULL field
|
|
44
|
-
});
|
|
45
|
-
return taskId;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Helper: Create a pruned file record in audit table
|
|
49
|
-
*/
|
|
50
|
-
async function createPrunedFileRecord(adapter, taskId, filePath) {
|
|
51
|
-
const knex = adapter.getKnex();
|
|
52
|
-
const projectId = ProjectContext.getInstance().getProjectId();
|
|
53
|
-
const [id] = await knex('v4_task_pruned_files').insert({
|
|
54
|
-
task_id: taskId,
|
|
55
|
-
file_path: filePath,
|
|
56
|
-
pruned_ts: knex.raw('unixepoch()'),
|
|
57
|
-
project_id: projectId, // Required after v3.7.0
|
|
58
|
-
});
|
|
59
|
-
return id;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Helper: Get task status by ID
|
|
63
|
-
*/
|
|
64
|
-
async function getTaskStatus(adapter, taskId) {
|
|
65
|
-
const knex = adapter.getKnex();
|
|
66
|
-
const row = await knex('v4_tasks')
|
|
67
|
-
.where({ id: taskId })
|
|
68
|
-
.first('status_id');
|
|
69
|
-
if (!row) {
|
|
70
|
-
throw new Error(`Task not found: ${taskId}`);
|
|
71
|
-
}
|
|
72
|
-
return row.status_id;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Helper: Count pruned file records for a task
|
|
76
|
-
*/
|
|
77
|
-
async function countPrunedFiles(adapter, taskId) {
|
|
78
|
-
const knex = adapter.getKnex();
|
|
79
|
-
const row = await knex('v4_task_pruned_files')
|
|
80
|
-
.where({ task_id: taskId })
|
|
81
|
-
.count('* as count')
|
|
82
|
-
.first();
|
|
83
|
-
return row?.count || 0;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Helper: Archive a task (test version)
|
|
87
|
-
*/
|
|
88
|
-
async function archiveTask(adapter, taskId) {
|
|
89
|
-
const TASK_STATUS_DONE = 5;
|
|
90
|
-
const TASK_STATUS_ARCHIVED = 6;
|
|
91
|
-
const knex = adapter.getKnex();
|
|
92
|
-
return await knex.transaction(async (trx) => {
|
|
93
|
-
// Check if task is in 'done' status
|
|
94
|
-
const taskRow = await trx('v4_tasks')
|
|
95
|
-
.where({ id: taskId })
|
|
96
|
-
.first('status_id');
|
|
97
|
-
if (!taskRow) {
|
|
98
|
-
throw new Error(`Task with id ${taskId} not found`);
|
|
99
|
-
}
|
|
100
|
-
if (taskRow.status_id !== TASK_STATUS_DONE) {
|
|
101
|
-
throw new Error(`Task ${taskId} must be in 'done' status to archive`);
|
|
102
|
-
}
|
|
103
|
-
// Update to archived
|
|
104
|
-
await trx('v4_tasks')
|
|
105
|
-
.where({ id: taskId })
|
|
106
|
-
.update({ status_id: TASK_STATUS_ARCHIVED });
|
|
107
|
-
return { success: true, task_id: taskId };
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Helper: Get pruned files for a task (test version)
|
|
112
|
-
*/
|
|
113
|
-
async function getPrunedFiles(adapter, taskId) {
|
|
114
|
-
const knex = adapter.getKnex();
|
|
115
|
-
const rows = await knex('v4_task_pruned_files')
|
|
116
|
-
.where({ task_id: taskId })
|
|
117
|
-
.select('file_path', 'pruned_ts')
|
|
118
|
-
.orderBy('pruned_ts', 'desc');
|
|
119
|
-
return {
|
|
120
|
-
success: true,
|
|
121
|
-
count: rows.length,
|
|
122
|
-
pruned_files: rows
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
describe('Auto-pruning: Audit trail persistence after archival', () => {
|
|
126
|
-
let testCount = 0;
|
|
127
|
-
const totalTests = 6; // Total number of tests in this suite
|
|
128
|
-
beforeEach(async () => {
|
|
129
|
-
testDb = await createTestDatabase();
|
|
130
|
-
// Reset and re-initialize ProjectContext after creating new database
|
|
131
|
-
ProjectContext.reset();
|
|
132
|
-
const knex = testDb.getKnex();
|
|
133
|
-
const projectContext = ProjectContext.getInstance();
|
|
134
|
-
await projectContext.ensureProject(knex, 'test-auto-pruning-persistence', 'config', {
|
|
135
|
-
projectRootPath: process.cwd(),
|
|
136
|
-
});
|
|
137
|
-
});
|
|
138
|
-
afterEach(async () => {
|
|
139
|
-
testCount++;
|
|
140
|
-
await closeDatabase();
|
|
141
|
-
// Detect if running filtered tests (IDE scenario with --test-name-pattern)
|
|
142
|
-
const isFilteredTest = process.argv.some(arg => arg.includes('--test-name-pattern'));
|
|
143
|
-
});
|
|
144
|
-
it('should preserve audit trail after task archival', async () => {
|
|
145
|
-
// 1. Setup: Create task with pruned files
|
|
146
|
-
const taskId = await createTestTask(testDb, 'Task with pruned files');
|
|
147
|
-
// Create multiple pruned file records
|
|
148
|
-
const prunedFileIds = [
|
|
149
|
-
await createPrunedFileRecord(testDb, taskId, '/tmp/file1.ts'),
|
|
150
|
-
await createPrunedFileRecord(testDb, taskId, '/tmp/file2.ts'),
|
|
151
|
-
await createPrunedFileRecord(testDb, taskId, '/tmp/file3.ts')
|
|
152
|
-
];
|
|
153
|
-
assert.equal(prunedFileIds.length, 3, 'Should create 3 pruned file records');
|
|
154
|
-
// 2. Verify pruned files exist before archival
|
|
155
|
-
const beforeCount = await countPrunedFiles(testDb, taskId);
|
|
156
|
-
assert.equal(beforeCount, 3, 'Should have 3 pruned file records before archival');
|
|
157
|
-
// 3. Archive the task
|
|
158
|
-
const archiveResult = await archiveTask(testDb, taskId);
|
|
159
|
-
assert.ok(archiveResult.success, 'Task archival should succeed');
|
|
160
|
-
assert.equal(archiveResult.task_id, taskId);
|
|
161
|
-
// 4. Verify task is archived
|
|
162
|
-
const taskStatus = await getTaskStatus(testDb, taskId);
|
|
163
|
-
assert.equal(taskStatus, 6, 'Task should be archived (status_id 6)');
|
|
164
|
-
// 5. Verify pruned files still exist (NOT cascade deleted)
|
|
165
|
-
const afterCount = await countPrunedFiles(testDb, taskId);
|
|
166
|
-
assert.equal(afterCount, 3, 'Should still have 3 pruned file records after archival');
|
|
167
|
-
// 6. Verify get_pruned_files works for archived tasks
|
|
168
|
-
const getPrunedResult = await getPrunedFiles(testDb, taskId);
|
|
169
|
-
assert.ok(getPrunedResult.success, 'get_pruned_files should work for archived tasks');
|
|
170
|
-
assert.equal(getPrunedResult.count, 3, 'Should return count of 3 pruned files');
|
|
171
|
-
assert.equal(getPrunedResult.pruned_files.length, 3, 'Should return all 3 pruned files');
|
|
172
|
-
// Verify file paths are preserved
|
|
173
|
-
const filePaths = getPrunedResult.pruned_files.map((f) => f.file_path);
|
|
174
|
-
assert.ok(filePaths.includes('/tmp/file1.ts'), 'Should include file1.ts');
|
|
175
|
-
assert.ok(filePaths.includes('/tmp/file2.ts'), 'Should include file2.ts');
|
|
176
|
-
assert.ok(filePaths.includes('/tmp/file3.ts'), 'Should include file3.ts');
|
|
177
|
-
});
|
|
178
|
-
it('should maintain foreign key integrity after archival', async () => {
|
|
179
|
-
const taskId = await createTestTask(testDb, 'Task for FK test');
|
|
180
|
-
await createPrunedFileRecord(testDb, taskId, '/tmp/test.ts');
|
|
181
|
-
// Archive task
|
|
182
|
-
const archiveResult = await archiveTask(testDb, taskId);
|
|
183
|
-
assert.ok(archiveResult.success, 'Task archival should succeed');
|
|
184
|
-
// Verify foreign key still valid (can JOIN successfully)
|
|
185
|
-
const knex = testDb.getKnex();
|
|
186
|
-
const result = await knex('v4_task_pruned_files as tpf')
|
|
187
|
-
.join('v4_tasks as t', 'tpf.task_id', 't.id')
|
|
188
|
-
.where('tpf.task_id', taskId)
|
|
189
|
-
.select('tpf.id', 'tpf.task_id', 't.status_id')
|
|
190
|
-
.first();
|
|
191
|
-
assert.ok(result, 'Foreign key join should succeed');
|
|
192
|
-
assert.equal(result.task_id, taskId, 'Task ID should match');
|
|
193
|
-
assert.equal(result.status_id, 6, 'Task status should be archived (6)');
|
|
194
|
-
});
|
|
195
|
-
it('should handle zero pruned files for archived task', async () => {
|
|
196
|
-
const taskId = await createTestTask(testDb, 'Task with no pruned files');
|
|
197
|
-
// Archive without any pruned files
|
|
198
|
-
const archiveResult = await archiveTask(testDb, taskId);
|
|
199
|
-
assert.ok(archiveResult.success);
|
|
200
|
-
// Query pruned files - should return empty array
|
|
201
|
-
const getPrunedResult = await getPrunedFiles(testDb, taskId);
|
|
202
|
-
assert.ok(getPrunedResult.success);
|
|
203
|
-
assert.equal(getPrunedResult.count, 0);
|
|
204
|
-
assert.equal(getPrunedResult.pruned_files.length, 0);
|
|
205
|
-
});
|
|
206
|
-
it('should preserve pruned file timestamps after archival', async () => {
|
|
207
|
-
const taskId = await createTestTask(testDb, 'Task for timestamp test');
|
|
208
|
-
// Create pruned file with explicit timestamp check
|
|
209
|
-
const beforeTs = Math.floor(Date.now() / 1000);
|
|
210
|
-
await createPrunedFileRecord(testDb, taskId, '/tmp/timestamped.ts');
|
|
211
|
-
// Archive task
|
|
212
|
-
await archiveTask(testDb, taskId);
|
|
213
|
-
// Get pruned files and verify timestamp
|
|
214
|
-
const getPrunedResult = await getPrunedFiles(testDb, taskId);
|
|
215
|
-
assert.equal(getPrunedResult.pruned_files.length, 1);
|
|
216
|
-
const prunedFile = getPrunedResult.pruned_files[0];
|
|
217
|
-
assert.ok(prunedFile.pruned_ts, 'Should have pruned_ts timestamp');
|
|
218
|
-
assert.ok(prunedFile.file_path === '/tmp/timestamped.ts', 'File path should match');
|
|
219
|
-
// Verify timestamp is reasonable (within last few seconds)
|
|
220
|
-
const prunedAt = prunedFile.pruned_ts;
|
|
221
|
-
assert.ok(prunedAt >= beforeTs, 'Timestamp should be after or equal to test start');
|
|
222
|
-
assert.ok(prunedAt <= beforeTs + 5, 'Timestamp should be within 5 seconds');
|
|
223
|
-
});
|
|
224
|
-
it('should handle multiple archived tasks with pruned files', async () => {
|
|
225
|
-
// Create multiple tasks with pruned files
|
|
226
|
-
const task1Id = await createTestTask(testDb, 'Task 1');
|
|
227
|
-
const task2Id = await createTestTask(testDb, 'Task 2');
|
|
228
|
-
const task3Id = await createTestTask(testDb, 'Task 3');
|
|
229
|
-
await createPrunedFileRecord(testDb, task1Id, '/tmp/task1-file1.ts');
|
|
230
|
-
await createPrunedFileRecord(testDb, task1Id, '/tmp/task1-file2.ts');
|
|
231
|
-
await createPrunedFileRecord(testDb, task2Id, '/tmp/task2-file1.ts');
|
|
232
|
-
await createPrunedFileRecord(testDb, task3Id, '/tmp/task3-file1.ts');
|
|
233
|
-
await createPrunedFileRecord(testDb, task3Id, '/tmp/task3-file2.ts');
|
|
234
|
-
await createPrunedFileRecord(testDb, task3Id, '/tmp/task3-file3.ts');
|
|
235
|
-
// Archive all tasks
|
|
236
|
-
await archiveTask(testDb, task1Id);
|
|
237
|
-
await archiveTask(testDb, task2Id);
|
|
238
|
-
await archiveTask(testDb, task3Id);
|
|
239
|
-
// Verify each task's pruned files are isolated and preserved
|
|
240
|
-
const task1Pruned = await getPrunedFiles(testDb, task1Id);
|
|
241
|
-
assert.equal(task1Pruned.count, 2, 'Task 1 should have 2 pruned files');
|
|
242
|
-
const task2Pruned = await getPrunedFiles(testDb, task2Id);
|
|
243
|
-
assert.equal(task2Pruned.count, 1, 'Task 2 should have 1 pruned file');
|
|
244
|
-
const task3Pruned = await getPrunedFiles(testDb, task3Id);
|
|
245
|
-
assert.equal(task3Pruned.count, 3, 'Task 3 should have 3 pruned files');
|
|
246
|
-
// Verify file paths are isolated (no cross-contamination)
|
|
247
|
-
const task1Paths = task1Pruned.pruned_files.map((f) => f.file_path);
|
|
248
|
-
assert.ok(!task1Paths.includes('/tmp/task2-file1.ts'), 'Task 1 should not include Task 2 files');
|
|
249
|
-
assert.ok(!task1Paths.includes('/tmp/task3-file1.ts'), 'Task 1 should not include Task 3 files');
|
|
250
|
-
});
|
|
251
|
-
it('should verify CASCADE constraint when task is deleted (not archived)', async () => {
|
|
252
|
-
// This test verifies the ON DELETE CASCADE behavior
|
|
253
|
-
const taskId = await createTestTask(testDb, 'Task for deletion test');
|
|
254
|
-
await createPrunedFileRecord(testDb, taskId, '/tmp/cascade-test.ts');
|
|
255
|
-
// Verify pruned file exists
|
|
256
|
-
const beforeCount = await countPrunedFiles(testDb, taskId);
|
|
257
|
-
assert.equal(beforeCount, 1);
|
|
258
|
-
// DELETE task (not archive) - should cascade delete pruned files
|
|
259
|
-
const knex = testDb.getKnex();
|
|
260
|
-
await knex('v4_tasks').where({ id: taskId }).delete();
|
|
261
|
-
// Verify pruned file was cascade deleted
|
|
262
|
-
const afterCount = await countPrunedFiles(testDb, taskId);
|
|
263
|
-
assert.equal(afterCount, 0, 'Pruned files should be CASCADE deleted when task is deleted');
|
|
264
|
-
});
|
|
265
|
-
console.log('\n✅ All auto-pruning persistence tests passed!\n');
|
|
266
|
-
});
|
|
267
|
-
//# sourceMappingURL=auto-pruning-persistence.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-pruning-persistence.test.js","sourceRoot":"","sources":["../../../../src/tests/feature/task/auto-pruning-persistence.test.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE;;GAEG;AACH,IAAI,MAAuB,CAAC;AAE5B;;GAEG;AACH,KAAK,UAAU,kBAAkB;IAC/B,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC;QACvC,YAAY,EAAE,QAAQ;QACtB,UAAU,EAAE;YACV,QAAQ,EAAE,UAAU;SACrB;KACF,CAAC,CAAC;IAEH,iCAAiC;IACjC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,MAAM,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAE3C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,cAAc,CAAC,OAAwB,EAAE,KAAa;IACnE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;IAC9D,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,0BAA0B;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAE1C,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QAC7C,KAAK;QACL,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,SAAS,EAAG,wBAAwB;QAChD,UAAU,EAAE,GAAG,EAAG,0BAA0B;QAC5C,UAAU,EAAE,GAAG,CAAG,0BAA0B;KAC7C,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,sBAAsB,CACnC,OAAwB,EACxB,MAAc,EACd,QAAgB;IAEhB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;IAE9D,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC;QACrD,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,QAAQ;QACnB,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;QAClC,UAAU,EAAE,SAAS,EAAG,wBAAwB;KACjD,CAAC,CAAC;IAEH,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAAC,OAAwB,EAAE,MAAc;IACnE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC;SAC/B,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;SACrB,KAAK,CAAC,WAAW,CAAC,CAAC;IAEtB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,GAAG,CAAC,SAAS,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAAC,OAAwB,EAAE,MAAc;IACtE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC;SAC3C,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;SAC1B,KAAK,CAAC,YAAY,CAAC;SACnB,KAAK,EAAE,CAAC;IAEX,OAAO,GAAG,EAAE,KAAe,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,WAAW,CAAC,OAAwB,EAAE,MAAc;IACjE,MAAM,gBAAgB,GAAG,CAAC,CAAC;IAC3B,MAAM,oBAAoB,GAAG,CAAC,CAAC;IAE/B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAE/B,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC1C,oCAAoC;QACpC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC;aAClC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;aACrB,KAAK,CAAC,WAAW,CAAC,CAAC;QAEtB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,YAAY,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,KAAK,gBAAgB,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,sCAAsC,CAAC,CAAC;QACxE,CAAC;QAED,qBAAqB;QACrB,MAAM,GAAG,CAAC,UAAU,CAAC;aAClB,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;aACrB,MAAM,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,CAAC;QAE/C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,OAAwB,EAAE,MAAc;IAKpE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAE/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC;SAC5C,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;SAC1B,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC;SAChC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAEhC,OAAO;QACL,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,IAAI,CAAC,MAAM;QAClB,YAAY,EAAE,IAAI;KACnB,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,sDAAsD,EAAE,GAAG,EAAE;IACpE,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,sCAAsC;IAE5D,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAEpC,qEAAqE;QACrE,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,cAAc,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;QACpD,MAAM,cAAc,CAAC,aAAa,CAAC,IAAI,EAAE,+BAA+B,EAAE,QAAQ,EAAE;YAClF,eAAe,EAAE,OAAO,CAAC,GAAG,EAAE;SAC/B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,SAAS,EAAE,CAAC;QAEZ,MAAM,aAAa,EAAE,CAAC;QAEtB,2EAA2E;QAC3E,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,0CAA0C;QAC1C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;QAEtE,sCAAsC;QACtC,MAAM,aAAa,GAAG;YACpB,MAAM,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC;YAC7D,MAAM,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC;YAC7D,MAAM,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC;SAC9D,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,qCAAqC,CAAC,CAAC;QAE7E,+CAA+C;QAC/C,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,mDAAmD,CAAC,CAAC;QAElF,sBAAsB;QACtB,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAExD,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;QACjE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE5C,6BAA6B;QAC7B,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,uCAAuC,CAAC,CAAC;QAErE,2DAA2D;QAC3D,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,wDAAwD,CAAC,CAAC;QAEtF,sDAAsD;QACtD,MAAM,eAAe,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE7D,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,iDAAiD,CAAC,CAAC;QACtF,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,uCAAuC,CAAC,CAAC;QAChF,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,kCAAkC,CAAC,CAAC;QAEzF,kCAAkC;QAClC,MAAM,SAAS,GAAG,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC5E,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,yBAAyB,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,yBAAyB,CAAC,CAAC;QAC1E,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,yBAAyB,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAChE,MAAM,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QAE7D,eAAe;QACf,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;QAEjE,yDAAyD;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAAC;aACrD,IAAI,CAAC,eAAe,EAAE,aAAa,EAAE,MAAM,CAAC;aAC5C,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC;aAC5B,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,CAAC;aAC9C,KAAK,EAAE,CAAC;QAEX,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;QACrD,MAAM,CAAC,KAAK,CAAC,MAAO,CAAC,OAAO,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;QAC9D,MAAM,CAAC,KAAK,CAAC,MAAO,CAAC,SAAS,EAAE,CAAC,EAAE,oCAAoC,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;QAEzE,mCAAmC;QACnC,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAEjC,iDAAiD;QACjD,MAAM,eAAe,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;QAEvE,mDAAmD;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC/C,MAAM,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAC;QAEpE,eAAe;QACf,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAElC,wCAAwC;QACxC,MAAM,eAAe,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAErD,MAAM,UAAU,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,iCAAiC,CAAC,CAAC;QACnE,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,KAAK,qBAAqB,EAAE,wBAAwB,CAAC,CAAC;QAEpF,2DAA2D;QAC3D,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC;QACtC,MAAM,CAAC,EAAE,CAAC,QAAQ,IAAI,QAAQ,EAAE,kDAAkD,CAAC,CAAC;QACpF,MAAM,CAAC,EAAE,CAAC,QAAQ,IAAI,QAAQ,GAAG,CAAC,EAAE,sCAAsC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,0CAA0C;QAC1C,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEvD,MAAM,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;QACrE,MAAM,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;QAErE,MAAM,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;QAErE,MAAM,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;QACrE,MAAM,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;QACrE,MAAM,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;QAErE,oBAAoB;QACpB,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEnC,6DAA6D;QAC7D,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,mCAAmC,CAAC,CAAC;QAExE,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,kCAAkC,CAAC,CAAC;QAEvE,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,mCAAmC,CAAC,CAAC;QAExE,0DAA0D;QAC1D,MAAM,UAAU,GAAG,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACzE,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,wCAAwC,CAAC,CAAC;QACjG,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,wCAAwC,CAAC,CAAC;IACnG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,oDAAoD;QACpD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;QACtE,MAAM,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;QAErE,4BAA4B;QAC5B,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAE7B,iEAAiE;QACjE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QAEtD,yCAAyC;QACzC,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,6DAA6D,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;AAClE,CAAC,CAAC,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Integration tests for v3.5.0 Auto-Pruning Safety Check
|
|
3
|
-
* Tests that the system blocks task transition when ALL watched files are non-existent
|
|
4
|
-
*
|
|
5
|
-
* Test Scenario: Zero Work Done Protection
|
|
6
|
-
* - Create task with 3 watched files
|
|
7
|
-
* - Make ALL 3 files non-existent
|
|
8
|
-
* - Trigger detectAndTransitionToReview()
|
|
9
|
-
* - Expected: Error thrown, task status unchanged, transaction rolled back
|
|
10
|
-
*/
|
|
11
|
-
export {};
|
|
12
|
-
//# sourceMappingURL=auto-pruning-safety.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-pruning-safety.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/feature/task/auto-pruning-safety.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|