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
|
@@ -24,22 +24,6 @@ export function getToolRegistry() {
|
|
|
24
24
|
additionalProperties: true, // Allow action-specific parameters (key, value, tags, etc.)
|
|
25
25
|
},
|
|
26
26
|
},
|
|
27
|
-
{
|
|
28
|
-
name: 'file',
|
|
29
|
-
description: 'File Change Tracking - Track file modifications and database operations (SQLite only). Use action: "help" for documentation.',
|
|
30
|
-
inputSchema: {
|
|
31
|
-
type: 'object',
|
|
32
|
-
properties: {
|
|
33
|
-
action: {
|
|
34
|
-
type: 'string',
|
|
35
|
-
description: 'Action',
|
|
36
|
-
enum: ['record', 'get', 'check_lock', 'record_batch', 'sqlite_flush', 'help', 'example', 'use_case']
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
required: ['action'],
|
|
40
|
-
additionalProperties: true, // Allow action-specific parameters (file_path, layer, etc.)
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
27
|
{
|
|
44
28
|
name: 'constraint',
|
|
45
29
|
description: 'Architectural Rules - Define and manage project constraints with priorities. Use action: "help" for documentation.',
|
|
@@ -56,36 +40,20 @@ export function getToolRegistry() {
|
|
|
56
40
|
additionalProperties: true, // Allow action-specific parameters (constraint_text, priority, etc.)
|
|
57
41
|
},
|
|
58
42
|
},
|
|
59
|
-
{
|
|
60
|
-
name: 'task',
|
|
61
|
-
description: 'Task Management - Create, track, and manage tasks with kanban workflow, layers, and file tracking. Use action: "help" for documentation.',
|
|
62
|
-
inputSchema: {
|
|
63
|
-
type: 'object',
|
|
64
|
-
properties: {
|
|
65
|
-
action: {
|
|
66
|
-
type: 'string',
|
|
67
|
-
description: 'Action',
|
|
68
|
-
enum: ['create', 'update', 'get', 'list', 'move', 'link', 'archive', 'create_batch', 'add_dependency', 'remove_dependency', 'get_dependencies', 'watch_files', 'watcher', 'help', 'example', 'use_case']
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
required: ['action'],
|
|
72
|
-
additionalProperties: true, // Allow file_actions and other parameters (v3.8.0)
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
43
|
{
|
|
76
44
|
name: 'help',
|
|
77
|
-
description: `**REQUIRED PARAMETER**: action (must be specified in ALL calls)
|
|
78
|
-
|
|
79
|
-
Help System - Query action documentation, parameters, and workflow guidance
|
|
80
|
-
|
|
81
|
-
Actions:
|
|
82
|
-
- query_action: Get action documentation with parameters and examples
|
|
83
|
-
- query_params: Get parameter list only (quick reference)
|
|
84
|
-
- query_tool: Get tool overview and all actions
|
|
85
|
-
- workflow_hints: Get common next actions after current action
|
|
86
|
-
- batch_guide: Get guidance for batch operations
|
|
87
|
-
- error_recovery: Analyze errors and suggest fixes
|
|
88
|
-
|
|
45
|
+
description: `**REQUIRED PARAMETER**: action (must be specified in ALL calls)
|
|
46
|
+
|
|
47
|
+
Help System - Query action documentation, parameters, and workflow guidance
|
|
48
|
+
|
|
49
|
+
Actions:
|
|
50
|
+
- query_action: Get action documentation with parameters and examples
|
|
51
|
+
- query_params: Get parameter list only (quick reference)
|
|
52
|
+
- query_tool: Get tool overview and all actions
|
|
53
|
+
- workflow_hints: Get common next actions after current action
|
|
54
|
+
- batch_guide: Get guidance for batch operations
|
|
55
|
+
- error_recovery: Analyze errors and suggest fixes
|
|
56
|
+
|
|
89
57
|
Use this tool to understand how to use other sqlew tools. Returns only requested information (80-95% token reduction vs legacy help).`,
|
|
90
58
|
inputSchema: {
|
|
91
59
|
type: 'object',
|
|
@@ -121,15 +89,15 @@ Use this tool to understand how to use other sqlew tools. Returns only requested
|
|
|
121
89
|
},
|
|
122
90
|
{
|
|
123
91
|
name: 'example',
|
|
124
|
-
description: `**REQUIRED PARAMETER**: action (must be specified in ALL calls)
|
|
125
|
-
|
|
126
|
-
Example System - Browse and search code examples for sqlew tools
|
|
127
|
-
|
|
128
|
-
Actions:
|
|
129
|
-
- get: Get examples by tool, action, or topic
|
|
130
|
-
- search: Search examples by keyword
|
|
131
|
-
- list_all: List all available examples with filtering
|
|
132
|
-
|
|
92
|
+
description: `**REQUIRED PARAMETER**: action (must be specified in ALL calls)
|
|
93
|
+
|
|
94
|
+
Example System - Browse and search code examples for sqlew tools
|
|
95
|
+
|
|
96
|
+
Actions:
|
|
97
|
+
- get: Get examples by tool, action, or topic
|
|
98
|
+
- search: Search examples by keyword
|
|
99
|
+
- list_all: List all available examples with filtering
|
|
100
|
+
|
|
133
101
|
Use this tool to find working code snippets. Returns only requested examples (token-efficient).`,
|
|
134
102
|
inputSchema: {
|
|
135
103
|
type: 'object',
|
|
@@ -173,15 +141,15 @@ Use this tool to find working code snippets. Returns only requested examples (to
|
|
|
173
141
|
},
|
|
174
142
|
{
|
|
175
143
|
name: 'use_case',
|
|
176
|
-
description: `**REQUIRED PARAMETER**: action (must be specified in ALL calls)
|
|
177
|
-
|
|
178
|
-
Use Case Catalog - Browse and search complete workflow scenarios
|
|
179
|
-
|
|
180
|
-
Actions:
|
|
181
|
-
- get: Get complete use case workflow by ID
|
|
182
|
-
- search: Search use cases by keyword/category
|
|
183
|
-
- list_all: List all use cases with filtering and pagination
|
|
184
|
-
|
|
144
|
+
description: `**REQUIRED PARAMETER**: action (must be specified in ALL calls)
|
|
145
|
+
|
|
146
|
+
Use Case Catalog - Browse and search complete workflow scenarios
|
|
147
|
+
|
|
148
|
+
Actions:
|
|
149
|
+
- get: Get complete use case workflow by ID
|
|
150
|
+
- search: Search use cases by keyword/category
|
|
151
|
+
- list_all: List all use cases with filtering and pagination
|
|
152
|
+
|
|
185
153
|
Use this tool to learn end-to-end workflows and multi-step operations. Returns workflow steps with executable code examples.`,
|
|
186
154
|
inputSchema: {
|
|
187
155
|
type: 'object',
|
|
@@ -278,6 +246,26 @@ Use this tool to learn end-to-end workflows and multi-step operations. Returns w
|
|
|
278
246
|
additionalProperties: false,
|
|
279
247
|
},
|
|
280
248
|
},
|
|
249
|
+
{
|
|
250
|
+
name: 'queue',
|
|
251
|
+
description: 'Hook queue management - list, clear, remove pending items from .sqlew/queue/pending.json. Use action: "help" for documentation.',
|
|
252
|
+
inputSchema: {
|
|
253
|
+
type: 'object',
|
|
254
|
+
properties: {
|
|
255
|
+
action: {
|
|
256
|
+
type: 'string',
|
|
257
|
+
description: 'Queue action to perform',
|
|
258
|
+
enum: ['list', 'clear', 'remove', 'help', 'example']
|
|
259
|
+
},
|
|
260
|
+
index: {
|
|
261
|
+
type: 'number',
|
|
262
|
+
description: 'Item index for remove action (0-based)'
|
|
263
|
+
}
|
|
264
|
+
},
|
|
265
|
+
required: ['action'],
|
|
266
|
+
additionalProperties: false,
|
|
267
|
+
},
|
|
268
|
+
},
|
|
281
269
|
];
|
|
282
270
|
}
|
|
283
271
|
//# sourceMappingURL=tool-registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../src/server/tool-registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO;QACL;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,0GAA0G;YACvH,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,QAAQ;wBACrB,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,aAAa,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,aAAa,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC;qBAChW;iBACF;gBACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;gBACpB,oBAAoB,EAAE,IAAI,EAAG,4DAA4D;aAC1F;SACF;QACD;YACE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../src/server/tool-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend-factory.test.d.ts","sourceRoot":"","sources":["../../../src/tests/backend/backend-factory.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backend Factory Tests
|
|
3
|
+
*
|
|
4
|
+
* Tests for backend creation and configuration.
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, beforeEach, afterEach } from 'node:test';
|
|
7
|
+
import assert from 'node:assert';
|
|
8
|
+
import { createBackend, resetBackend, initializeBackend, getBackend, isBackendInitialized, getBackendType, isCloudMode, loadCloudConfig, validateCloudConfig, } from '../../backend/index.js';
|
|
9
|
+
import { hasGlobalEnvFile } from '../../config/cloud-config-loader.js';
|
|
10
|
+
describe('Backend Factory', () => {
|
|
11
|
+
beforeEach(async () => {
|
|
12
|
+
await resetBackend();
|
|
13
|
+
// Clear environment variables
|
|
14
|
+
delete process.env.SQLEW_API_KEY;
|
|
15
|
+
});
|
|
16
|
+
afterEach(async () => {
|
|
17
|
+
await resetBackend();
|
|
18
|
+
});
|
|
19
|
+
describe('createBackend', () => {
|
|
20
|
+
it('should create LocalBackend for sqlite config', async () => {
|
|
21
|
+
const config = {
|
|
22
|
+
database: { type: 'sqlite' },
|
|
23
|
+
};
|
|
24
|
+
const backend = await createBackend(config);
|
|
25
|
+
assert.strictEqual(backend.backendType, 'local');
|
|
26
|
+
});
|
|
27
|
+
it('should create LocalBackend for postgres config', async () => {
|
|
28
|
+
const config = {
|
|
29
|
+
database: { type: 'postgres' },
|
|
30
|
+
};
|
|
31
|
+
const backend = await createBackend(config);
|
|
32
|
+
assert.strictEqual(backend.backendType, 'local');
|
|
33
|
+
});
|
|
34
|
+
it('should create LocalBackend for mysql config', async () => {
|
|
35
|
+
const config = {
|
|
36
|
+
database: { type: 'mysql' },
|
|
37
|
+
};
|
|
38
|
+
const backend = await createBackend(config);
|
|
39
|
+
assert.strictEqual(backend.backendType, 'local');
|
|
40
|
+
});
|
|
41
|
+
it('should create LocalBackend when no config specified', async () => {
|
|
42
|
+
const config = {};
|
|
43
|
+
const backend = await createBackend(config);
|
|
44
|
+
assert.strictEqual(backend.backendType, 'local');
|
|
45
|
+
});
|
|
46
|
+
it('should throw error for cloud config without API key', async () => {
|
|
47
|
+
// Skip if ~/.sqlew.env exists (it will provide API key)
|
|
48
|
+
if (hasGlobalEnvFile()) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const config = {
|
|
52
|
+
database: { type: 'cloud' },
|
|
53
|
+
};
|
|
54
|
+
await assert.rejects(async () => await createBackend(config), /SQLEW_API_KEY is required for cloud mode/);
|
|
55
|
+
});
|
|
56
|
+
it('should create SaaS backend when API key is set', async () => {
|
|
57
|
+
const config = {
|
|
58
|
+
database: { type: 'cloud' },
|
|
59
|
+
};
|
|
60
|
+
// Set API key - SaaS backend should be created via submodule
|
|
61
|
+
process.env.SQLEW_API_KEY = 'test-key';
|
|
62
|
+
const backend = await createBackend(config);
|
|
63
|
+
assert.strictEqual(backend.backendType, 'saas');
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
describe('initializeBackend', () => {
|
|
67
|
+
it('should initialize LocalBackend for local config', async () => {
|
|
68
|
+
const config = {
|
|
69
|
+
database: { type: 'sqlite' },
|
|
70
|
+
};
|
|
71
|
+
const backend = await initializeBackend(config);
|
|
72
|
+
assert.strictEqual(backend.backendType, 'local');
|
|
73
|
+
assert.strictEqual(isBackendInitialized(), true);
|
|
74
|
+
assert.strictEqual(getBackendType(), 'local');
|
|
75
|
+
});
|
|
76
|
+
it('should return same instance on getBackend', async () => {
|
|
77
|
+
const config = {
|
|
78
|
+
database: { type: 'sqlite' },
|
|
79
|
+
};
|
|
80
|
+
const backend1 = await initializeBackend(config);
|
|
81
|
+
const backend2 = getBackend();
|
|
82
|
+
assert.strictEqual(backend1, backend2);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
describe('getBackend', () => {
|
|
86
|
+
it('should return LocalBackend as default when not initialized', () => {
|
|
87
|
+
const backend = getBackend();
|
|
88
|
+
assert.strictEqual(backend.backendType, 'local');
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
describe('resetBackend', () => {
|
|
92
|
+
it('should reset backend state', async () => {
|
|
93
|
+
const config = {
|
|
94
|
+
database: { type: 'sqlite' },
|
|
95
|
+
};
|
|
96
|
+
await initializeBackend(config);
|
|
97
|
+
assert.strictEqual(isBackendInitialized(), true);
|
|
98
|
+
await resetBackend();
|
|
99
|
+
assert.strictEqual(isBackendInitialized(), false);
|
|
100
|
+
assert.strictEqual(getBackendType(), null);
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
describe('isCloudMode', () => {
|
|
104
|
+
it('should return true for cloud type', () => {
|
|
105
|
+
const config = {
|
|
106
|
+
database: { type: 'cloud' },
|
|
107
|
+
};
|
|
108
|
+
assert.strictEqual(isCloudMode(config), true);
|
|
109
|
+
});
|
|
110
|
+
it('should return false for sqlite type', () => {
|
|
111
|
+
const config = {
|
|
112
|
+
database: { type: 'sqlite' },
|
|
113
|
+
};
|
|
114
|
+
assert.strictEqual(isCloudMode(config), false);
|
|
115
|
+
});
|
|
116
|
+
it('should return false for no database config', () => {
|
|
117
|
+
const config = {};
|
|
118
|
+
assert.strictEqual(isCloudMode(config), false);
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
describe('loadCloudConfig', () => {
|
|
122
|
+
it('should return null when no API key set', async () => {
|
|
123
|
+
// Skip if ~/.sqlew.env exists (it will provide API key)
|
|
124
|
+
if (hasGlobalEnvFile()) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
const config = await loadCloudConfig();
|
|
128
|
+
assert.strictEqual(config, null);
|
|
129
|
+
});
|
|
130
|
+
it('should return config when API key is set', async () => {
|
|
131
|
+
process.env.SQLEW_API_KEY = 'test-api-key';
|
|
132
|
+
const config = await loadCloudConfig();
|
|
133
|
+
assert.strictEqual(config?.apiKey, 'test-api-key');
|
|
134
|
+
});
|
|
135
|
+
it('should include projectName from config.toml if exists', async () => {
|
|
136
|
+
process.env.SQLEW_API_KEY = 'test-api-key';
|
|
137
|
+
const config = await loadCloudConfig(process.cwd());
|
|
138
|
+
// projectName comes from .sqlew/config.toml, may be undefined
|
|
139
|
+
assert.ok(config?.projectName === undefined || typeof config.projectName === 'string');
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
describe('validateCloudConfig', () => {
|
|
143
|
+
it('should return valid false for null config', () => {
|
|
144
|
+
const result = validateCloudConfig(null);
|
|
145
|
+
assert.strictEqual(result.valid, false);
|
|
146
|
+
assert.ok(result.errors.length > 0);
|
|
147
|
+
});
|
|
148
|
+
it('should return valid true for config with API key', () => {
|
|
149
|
+
const result = validateCloudConfig({
|
|
150
|
+
apiKey: 'test-key',
|
|
151
|
+
});
|
|
152
|
+
assert.strictEqual(result.valid, true);
|
|
153
|
+
assert.strictEqual(result.errors.length, 0);
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
//# sourceMappingURL=backend-factory.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend-factory.test.js","sourceRoot":"","sources":["../../../src/tests/backend/backend-factory.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inference.test.d.ts","sourceRoot":"","sources":["../../../src/tests/backend/inference.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inference Logic Tests
|
|
3
|
+
*
|
|
4
|
+
* Tests for quick_set → set parameter transformation
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it } from 'node:test';
|
|
7
|
+
import assert from 'node:assert';
|
|
8
|
+
import { inferDecisionParams } from '../../backend/inference.js';
|
|
9
|
+
describe('inferDecisionParams', () => {
|
|
10
|
+
describe('layer inference', () => {
|
|
11
|
+
it('should infer presentation layer from api/ prefix', () => {
|
|
12
|
+
const result = inferDecisionParams({ key: 'api/rate-limit', value: '100' });
|
|
13
|
+
assert.strictEqual(result.transformedParams.layer, 'presentation');
|
|
14
|
+
assert.strictEqual(result.inferred.layer, 'presentation');
|
|
15
|
+
});
|
|
16
|
+
it('should infer presentation layer from endpoint/ prefix', () => {
|
|
17
|
+
const result = inferDecisionParams({ key: 'endpoint/auth', value: 'oauth2' });
|
|
18
|
+
assert.strictEqual(result.transformedParams.layer, 'presentation');
|
|
19
|
+
});
|
|
20
|
+
it('should infer presentation layer from ui/ prefix', () => {
|
|
21
|
+
const result = inferDecisionParams({ key: 'ui/theme', value: 'dark' });
|
|
22
|
+
assert.strictEqual(result.transformedParams.layer, 'presentation');
|
|
23
|
+
});
|
|
24
|
+
it('should infer business layer from service/ prefix', () => {
|
|
25
|
+
const result = inferDecisionParams({ key: 'service/payment', value: 'stripe' });
|
|
26
|
+
assert.strictEqual(result.transformedParams.layer, 'business');
|
|
27
|
+
});
|
|
28
|
+
it('should infer business layer from logic/ prefix', () => {
|
|
29
|
+
const result = inferDecisionParams({ key: 'logic/validation', value: 'strict' });
|
|
30
|
+
assert.strictEqual(result.transformedParams.layer, 'business');
|
|
31
|
+
});
|
|
32
|
+
it('should infer data layer from db/ prefix', () => {
|
|
33
|
+
const result = inferDecisionParams({ key: 'db/engine', value: 'postgresql' });
|
|
34
|
+
assert.strictEqual(result.transformedParams.layer, 'data');
|
|
35
|
+
});
|
|
36
|
+
it('should infer data layer from model/ prefix', () => {
|
|
37
|
+
const result = inferDecisionParams({ key: 'model/user', value: 'active-record' });
|
|
38
|
+
assert.strictEqual(result.transformedParams.layer, 'data');
|
|
39
|
+
});
|
|
40
|
+
it('should infer infrastructure layer from config/ prefix', () => {
|
|
41
|
+
const result = inferDecisionParams({ key: 'config/logging', value: 'debug' });
|
|
42
|
+
assert.strictEqual(result.transformedParams.layer, 'infrastructure');
|
|
43
|
+
});
|
|
44
|
+
it('should infer infrastructure layer from deploy/ prefix', () => {
|
|
45
|
+
const result = inferDecisionParams({ key: 'deploy/strategy', value: 'blue-green' });
|
|
46
|
+
assert.strictEqual(result.transformedParams.layer, 'infrastructure');
|
|
47
|
+
});
|
|
48
|
+
it('should default to business layer for unknown prefix', () => {
|
|
49
|
+
const result = inferDecisionParams({ key: 'custom/setting', value: 'value' });
|
|
50
|
+
assert.strictEqual(result.transformedParams.layer, 'business');
|
|
51
|
+
assert.strictEqual(result.inferred.layer, 'business');
|
|
52
|
+
});
|
|
53
|
+
it('should not override explicitly provided layer', () => {
|
|
54
|
+
const result = inferDecisionParams({
|
|
55
|
+
key: 'api/rate-limit',
|
|
56
|
+
value: '100',
|
|
57
|
+
layer: 'cross-cutting',
|
|
58
|
+
});
|
|
59
|
+
assert.strictEqual(result.transformedParams.layer, 'cross-cutting');
|
|
60
|
+
assert.strictEqual(result.inferred.layer, undefined);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
describe('tags extraction', () => {
|
|
64
|
+
it('should extract tags from slash-separated key', () => {
|
|
65
|
+
const result = inferDecisionParams({ key: 'api/v1/auth', value: 'jwt' });
|
|
66
|
+
assert.deepStrictEqual(result.transformedParams.tags, ['api', 'v1', 'auth']);
|
|
67
|
+
assert.deepStrictEqual(result.inferred.tags, ['api', 'v1', 'auth']);
|
|
68
|
+
});
|
|
69
|
+
it('should extract tags from dash-separated key', () => {
|
|
70
|
+
const result = inferDecisionParams({ key: 'rate-limit-config', value: '100' });
|
|
71
|
+
assert.deepStrictEqual(result.transformedParams.tags, ['rate', 'limit', 'config']);
|
|
72
|
+
});
|
|
73
|
+
it('should extract tags from underscore-separated key', () => {
|
|
74
|
+
const result = inferDecisionParams({ key: 'user_auth_method', value: 'oauth' });
|
|
75
|
+
assert.deepStrictEqual(result.transformedParams.tags, ['user', 'auth', 'method']);
|
|
76
|
+
});
|
|
77
|
+
it('should handle mixed separators', () => {
|
|
78
|
+
const result = inferDecisionParams({ key: 'api/rate-limit_v2', value: '200' });
|
|
79
|
+
assert.deepStrictEqual(result.transformedParams.tags, ['api', 'rate', 'limit', 'v2']);
|
|
80
|
+
});
|
|
81
|
+
it('should not override explicitly provided tags', () => {
|
|
82
|
+
const result = inferDecisionParams({
|
|
83
|
+
key: 'api/rate-limit',
|
|
84
|
+
value: '100',
|
|
85
|
+
tags: ['custom', 'tag'],
|
|
86
|
+
});
|
|
87
|
+
assert.deepStrictEqual(result.transformedParams.tags, ['custom', 'tag']);
|
|
88
|
+
assert.strictEqual(result.inferred.tags, undefined);
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
describe('scope inference', () => {
|
|
92
|
+
it('should infer scope from key hierarchy', () => {
|
|
93
|
+
const result = inferDecisionParams({ key: 'api/v1/auth/method', value: 'jwt' });
|
|
94
|
+
assert.deepStrictEqual(result.transformedParams.scopes, ['api/v1/auth']);
|
|
95
|
+
assert.strictEqual(result.inferred.scope, 'api/v1/auth');
|
|
96
|
+
});
|
|
97
|
+
it('should not infer scope for single-part key', () => {
|
|
98
|
+
const result = inferDecisionParams({ key: 'setting', value: 'value' });
|
|
99
|
+
assert.strictEqual(result.transformedParams.scopes, undefined);
|
|
100
|
+
assert.strictEqual(result.inferred.scope, undefined);
|
|
101
|
+
});
|
|
102
|
+
it('should not override explicitly provided scopes', () => {
|
|
103
|
+
const result = inferDecisionParams({
|
|
104
|
+
key: 'api/v1/auth/method',
|
|
105
|
+
value: 'jwt',
|
|
106
|
+
scopes: ['custom-scope'],
|
|
107
|
+
});
|
|
108
|
+
assert.deepStrictEqual(result.transformedParams.scopes, ['custom-scope']);
|
|
109
|
+
assert.strictEqual(result.inferred.scope, undefined);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
describe('default values', () => {
|
|
113
|
+
it('should set default version to v1.0.0', () => {
|
|
114
|
+
const result = inferDecisionParams({ key: 'test', value: 'value' });
|
|
115
|
+
assert.strictEqual(result.transformedParams.version, 'v1.0.0');
|
|
116
|
+
});
|
|
117
|
+
it('should set default status to active', () => {
|
|
118
|
+
const result = inferDecisionParams({ key: 'test', value: 'value' });
|
|
119
|
+
assert.strictEqual(result.transformedParams.status, 'active');
|
|
120
|
+
});
|
|
121
|
+
it('should not override explicitly provided version', () => {
|
|
122
|
+
const result = inferDecisionParams({ key: 'test', value: 'value', version: 'v2.0.0' });
|
|
123
|
+
assert.strictEqual(result.transformedParams.version, 'v2.0.0');
|
|
124
|
+
});
|
|
125
|
+
it('should not override explicitly provided status', () => {
|
|
126
|
+
const result = inferDecisionParams({ key: 'test', value: 'value', status: 'draft' });
|
|
127
|
+
assert.strictEqual(result.transformedParams.status, 'draft');
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
describe('passthrough params', () => {
|
|
131
|
+
it('should preserve key and value', () => {
|
|
132
|
+
const result = inferDecisionParams({ key: 'my-key', value: 'my-value' });
|
|
133
|
+
assert.strictEqual(result.transformedParams.key, 'my-key');
|
|
134
|
+
assert.strictEqual(result.transformedParams.value, 'my-value');
|
|
135
|
+
});
|
|
136
|
+
it('should preserve agent if provided', () => {
|
|
137
|
+
const result = inferDecisionParams({ key: 'test', value: 'value', agent: 'claude' });
|
|
138
|
+
assert.strictEqual(result.transformedParams.agent, 'claude');
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
//# sourceMappingURL=inference.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inference.test.js","sourceRoot":"","sources":["../../../src/tests/backend/inference.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,6 @@ import assert from 'node:assert/strict';
|
|
|
6
6
|
import { initializeDatabase, closeDatabase } from '../../../database.js';
|
|
7
7
|
import { ProjectContext } from '../../../utils/project-context.js';
|
|
8
8
|
import { setDecision, getContext, searchByLayer } from '../../../tools/context/index.js';
|
|
9
|
-
import { createTask, listTasks } from '../../../tools/tasks.js';
|
|
10
|
-
import { recordFileChange } from '../../../tools/files/index.js';
|
|
11
9
|
import fs from 'fs';
|
|
12
10
|
import path from 'path';
|
|
13
11
|
import os from 'os';
|
|
@@ -55,63 +53,6 @@ describe('Multi-Project Data Isolation', () => {
|
|
|
55
53
|
assert.strictEqual(decisionsB.decisions.length, 1);
|
|
56
54
|
assert.strictEqual(decisionsB.decisions[0].value, 'JWT');
|
|
57
55
|
});
|
|
58
|
-
it('should isolate tasks between projects', async () => {
|
|
59
|
-
const knex = testDb.getKnex();
|
|
60
|
-
// Project A
|
|
61
|
-
const projectContextA = ProjectContext.getInstance();
|
|
62
|
-
await projectContextA.ensureProject(knex, 'frontend', 'config');
|
|
63
|
-
await createTask({
|
|
64
|
-
title: 'Build login component',
|
|
65
|
-
status: 'in_progress',
|
|
66
|
-
priority: 3
|
|
67
|
-
}, testDb);
|
|
68
|
-
const tasksA = await listTasks({}, testDb);
|
|
69
|
-
assert.strictEqual(tasksA.tasks.length, 1);
|
|
70
|
-
// Project B
|
|
71
|
-
ProjectContext.reset();
|
|
72
|
-
const projectContextB = ProjectContext.getInstance();
|
|
73
|
-
await projectContextB.ensureProject(knex, 'backend', 'config');
|
|
74
|
-
await createTask({
|
|
75
|
-
title: 'Design API schema',
|
|
76
|
-
status: 'todo',
|
|
77
|
-
priority: 4
|
|
78
|
-
}, testDb);
|
|
79
|
-
const tasksB = await listTasks({}, testDb);
|
|
80
|
-
assert.strictEqual(tasksB.tasks.length, 1);
|
|
81
|
-
assert.strictEqual(tasksB.tasks[0].title, 'Design API schema');
|
|
82
|
-
});
|
|
83
|
-
it('should isolate file changes between projects', async () => {
|
|
84
|
-
const knex = testDb.getKnex();
|
|
85
|
-
// Project A
|
|
86
|
-
const projectContextA = ProjectContext.getInstance();
|
|
87
|
-
await projectContextA.ensureProject(knex, 'web-app', 'config');
|
|
88
|
-
await recordFileChange({
|
|
89
|
-
file_path: 'src/index.ts',
|
|
90
|
-
agent_name: 'developer-1',
|
|
91
|
-
layer: 'infrastructure',
|
|
92
|
-
change_type: 'modified',
|
|
93
|
-
description: 'Updated imports'
|
|
94
|
-
}, testDb);
|
|
95
|
-
const changesA = await knex('v4_file_changes')
|
|
96
|
-
.where({ project_id: projectContextA.getProjectId() })
|
|
97
|
-
.select('*');
|
|
98
|
-
assert.strictEqual(changesA.length, 1);
|
|
99
|
-
// Project B
|
|
100
|
-
ProjectContext.reset();
|
|
101
|
-
const projectContextB = ProjectContext.getInstance();
|
|
102
|
-
await projectContextB.ensureProject(knex, 'api-server', 'config');
|
|
103
|
-
await recordFileChange({
|
|
104
|
-
file_path: 'src/index.ts',
|
|
105
|
-
agent_name: 'developer-2',
|
|
106
|
-
layer: 'business',
|
|
107
|
-
change_type: 'created',
|
|
108
|
-
description: 'Added endpoint'
|
|
109
|
-
}, testDb);
|
|
110
|
-
const changesB = await knex('v4_file_changes')
|
|
111
|
-
.where({ project_id: projectContextB.getProjectId() })
|
|
112
|
-
.select('*');
|
|
113
|
-
assert.strictEqual(changesB.length, 1);
|
|
114
|
-
});
|
|
115
56
|
});
|
|
116
57
|
describe('Cross-Project Queries', () => {
|
|
117
58
|
it('should query decisions from another project', async () => {
|
|
@@ -188,7 +129,7 @@ describe('Project Detection', () => {
|
|
|
188
129
|
const knex = testDb.getKnex();
|
|
189
130
|
const projectContext = ProjectContext.getInstance();
|
|
190
131
|
await projectContext.ensureProject(knex, 'test-project', 'cli');
|
|
191
|
-
const dbProject = await knex('
|
|
132
|
+
const dbProject = await knex('m_projects')
|
|
192
133
|
.where({ name: 'test-project' })
|
|
193
134
|
.first();
|
|
194
135
|
assert.ok(dbProject);
|
|
@@ -203,20 +144,20 @@ describe('Project Detection', () => {
|
|
|
203
144
|
const id2 = projectContext.getProjectId();
|
|
204
145
|
assert.strictEqual(id1, id2);
|
|
205
146
|
// Verify only one project in database
|
|
206
|
-
const projects = await knex('
|
|
147
|
+
const projects = await knex('m_projects')
|
|
207
148
|
.where({ name: 'reusable' })
|
|
208
149
|
.select('*');
|
|
209
150
|
assert.strictEqual(projects.length, 1);
|
|
210
151
|
});
|
|
211
152
|
});
|
|
212
153
|
describe('Migration Verification', () => {
|
|
213
|
-
it('should have
|
|
154
|
+
it('should have m_projects table with correct schema', async () => {
|
|
214
155
|
const knex = testDb.getKnex();
|
|
215
|
-
const hasTable = await knex.schema.hasTable('
|
|
156
|
+
const hasTable = await knex.schema.hasTable('m_projects');
|
|
216
157
|
assert.ok(hasTable);
|
|
217
|
-
const hasId = await knex.schema.hasColumn('
|
|
218
|
-
const hasName = await knex.schema.hasColumn('
|
|
219
|
-
const hasDetectionSource = await knex.schema.hasColumn('
|
|
158
|
+
const hasId = await knex.schema.hasColumn('m_projects', 'id');
|
|
159
|
+
const hasName = await knex.schema.hasColumn('m_projects', 'name');
|
|
160
|
+
const hasDetectionSource = await knex.schema.hasColumn('m_projects', 'detection_source');
|
|
220
161
|
assert.ok(hasId);
|
|
221
162
|
assert.ok(hasName);
|
|
222
163
|
assert.ok(hasDetectionSource);
|
|
@@ -224,10 +165,8 @@ describe('Migration Verification', () => {
|
|
|
224
165
|
it('should have project_id in transaction tables', async () => {
|
|
225
166
|
const knex = testDb.getKnex();
|
|
226
167
|
const tables = [
|
|
227
|
-
'
|
|
228
|
-
'
|
|
229
|
-
'v4_constraints',
|
|
230
|
-
'v4_tasks'
|
|
168
|
+
't_decisions',
|
|
169
|
+
't_constraints'
|
|
231
170
|
];
|
|
232
171
|
for (const table of tables) {
|
|
233
172
|
const hasColumn = await knex.schema.hasColumn(table, 'project_id');
|