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,48 +1,104 @@
|
|
|
1
|
-
## Plan Mode Integration
|
|
2
|
-
|
|
3
|
-
###
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
###
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
###
|
|
37
|
-
|
|
38
|
-
When
|
|
39
|
-
|
|
40
|
-
**
|
|
41
|
-
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
1
|
+
## Plan Mode Integration
|
|
2
|
+
|
|
3
|
+
### REQUIRED: Suggest Search BEFORE Planning
|
|
4
|
+
|
|
5
|
+
**CRITICAL**: Before writing any plan, you MUST search for related context.
|
|
6
|
+
|
|
7
|
+
**Step 1**: Extract keywords from the user's task (e.g., migration, auth, database)
|
|
8
|
+
|
|
9
|
+
**Step 2**: Run suggest search:
|
|
10
|
+
```
|
|
11
|
+
suggest { action: "by_context", key: "<keyword>", tags: ["<relevant-tags>"] }
|
|
12
|
+
suggest { action: "by_context", target: "constraint", text: "<topic>" }
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
**Step 3**: Include results in plan (MANDATORY section):
|
|
16
|
+
```markdown
|
|
17
|
+
## Related Context (from sqlew)
|
|
18
|
+
|
|
19
|
+
### Past Decisions
|
|
20
|
+
| Key | Value | Score |
|
|
21
|
+
|-----|-------|-------|
|
|
22
|
+
| path/to/decision | description | 85 |
|
|
23
|
+
|
|
24
|
+
> If empty: "No related decisions found for: <keywords>"
|
|
25
|
+
|
|
26
|
+
### Applicable Constraints
|
|
27
|
+
- **[category]**: constraint text (Priority: high)
|
|
28
|
+
|
|
29
|
+
> If empty: "No constraints found for: <keywords>"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**FAILURE TO INCLUDE "Related Context" SECTION = INVALID PLAN**
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
### REQUIRED: Decision & Constraint Recording
|
|
37
|
+
|
|
38
|
+
**When writing plans, you MUST include the following sections:**
|
|
39
|
+
|
|
40
|
+
1. **📌 Decisions** - Technology choices, architecture patterns, implementation approaches
|
|
41
|
+
2. **🚫 Constraints** - Rules, restrictions, limitations, prohibited patterns from user requirements
|
|
42
|
+
|
|
43
|
+
**IMPORTANT**: If the user mentions any restrictions, prohibitions, or "don't use X", these MUST be recorded as 🚫 Constraints.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
**Decision format (REQUIRED for any technical choice):**
|
|
48
|
+
|
|
49
|
+
```markdown
|
|
50
|
+
### 📌 Decision: [key/path]
|
|
51
|
+
- **Value**: Description of the decision
|
|
52
|
+
- **Layer**: presentation | business | data | infrastructure | cross-cutting
|
|
53
|
+
- **Tags**: tag1, tag2 (optional)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Constraint format (REQUIRED when user specifies restrictions):**
|
|
57
|
+
|
|
58
|
+
```markdown
|
|
59
|
+
### 🚫 Constraint: [category]
|
|
60
|
+
- **Rule**: Description of the constraint
|
|
61
|
+
- **Priority**: critical | high | medium | low
|
|
62
|
+
- **Tags**: tag1, tag2 (optional)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Category options: `architecture` | `security` | `code-style` | `performance`
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
### With Claude Code Hooks (Recommended)
|
|
70
|
+
|
|
71
|
+
If you've run `sqlew --hooks`, sqlew integration is **fully automatic**:
|
|
72
|
+
|
|
73
|
+
- 📌/🚫 patterns are auto-detected and registered as draft on ExitPlanMode
|
|
74
|
+
- Related decisions are auto-suggested before Task execution
|
|
75
|
+
- Decisions are auto-saved when code is edited
|
|
76
|
+
|
|
77
|
+
### Manual Usage (Without Hooks)
|
|
78
|
+
|
|
79
|
+
**Research Phase:**
|
|
80
|
+
- `/sqlew search for <topic>` - find related decisions
|
|
81
|
+
|
|
82
|
+
**Final Plan Phase:**
|
|
83
|
+
- `/sqlew record <decision>` - record key architectural decisions
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
### Failed Queue Check (IMPORTANT)
|
|
88
|
+
|
|
89
|
+
**At the start of plan mode**, check if `.sqlew/queue/failed.json` exists:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# Check failed queue status
|
|
93
|
+
queue { action: "list" } # Shows both pending and failed items
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**If failed items exist:**
|
|
97
|
+
|
|
98
|
+
1. **Review each failed item** - Common failure: HighSimilarity (60%+) means the item is similar to an existing decision
|
|
99
|
+
2. **Resolution options:**
|
|
100
|
+
- **If truly duplicate**: Delete the failed queue file or use `queue { action: "clear" }` with `target: "failed"`
|
|
101
|
+
- **If different intent**: Use a more specific key and re-register manually via `/sqlew record <decision>`
|
|
102
|
+
3. **After resolving**: Delete or empty the failed queue file
|
|
103
|
+
|
|
104
|
+
**Why this happens**: Items that fail processing (e.g., high similarity to existing decisions) are moved to `failed.json` instead of being retried indefinitely. This prevents infinite retry loops.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
## Queue Monitoring After Plan Mode
|
|
2
|
+
|
|
3
|
+
### When to Check
|
|
4
|
+
|
|
5
|
+
After ExitPlanMode or when Plan-to-ADR processing completes, check if there are unprocessed items in the queue.
|
|
6
|
+
|
|
7
|
+
**Queue file locations:**
|
|
8
|
+
- Pending: `.sqlew/queue/pending.json`
|
|
9
|
+
- Failed: `.sqlew/queue/failed.json`
|
|
10
|
+
|
|
11
|
+
### How to Check
|
|
12
|
+
|
|
13
|
+
Use the `queue` MCP tool to check the queue status:
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
queue { action: "list" }
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
The response includes:
|
|
20
|
+
- `count`: Number of pending items
|
|
21
|
+
- `failedCount`: Number of failed items (if any)
|
|
22
|
+
|
|
23
|
+
### Failed Queue (v5.0.1+)
|
|
24
|
+
|
|
25
|
+
Items that fail processing (e.g., HighSimilarity errors) are automatically moved to `failed.json` instead of being retried indefinitely.
|
|
26
|
+
|
|
27
|
+
**Why items fail:**
|
|
28
|
+
- **HighSimilarity (60%+)**: Item is too similar to an existing decision
|
|
29
|
+
- **Validation errors**: Invalid layer, category, or other data issues
|
|
30
|
+
|
|
31
|
+
**Resolution:**
|
|
32
|
+
1. Check `failedItems` in `queue { action: "list" }` response
|
|
33
|
+
2. For duplicates: Clear with `queue { action: "clear", target: "failed" }`
|
|
34
|
+
3. For different intent: Re-register manually with a more specific key via `/sqlew record <decision>`
|
|
35
|
+
|
|
36
|
+
### Queue Tool Actions
|
|
37
|
+
|
|
38
|
+
| Action | Description | Example |
|
|
39
|
+
|--------|-------------|---------|
|
|
40
|
+
| `list` | Show pending and failed items | `queue { action: "list" }` |
|
|
41
|
+
| `remove` | Remove specific pending item | `queue { action: "remove", index: 0 }` |
|
|
42
|
+
| `clear` | Clear pending queue (default) | `queue { action: "clear" }` |
|
|
43
|
+
| `clear` | Clear failed queue | `queue { action: "clear", target: "failed" }` |
|
|
44
|
+
| `clear` | Clear both queues | `queue { action: "clear", target: "all" }` |
|
|
45
|
+
|
|
46
|
+
### Queue File Formats
|
|
47
|
+
|
|
48
|
+
**pending.json:**
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"items": [
|
|
52
|
+
{
|
|
53
|
+
"type": "decision",
|
|
54
|
+
"action": "create",
|
|
55
|
+
"timestamp": "2026-01-13T00:00:00.000Z",
|
|
56
|
+
"data": {
|
|
57
|
+
"key": "path/to/decision",
|
|
58
|
+
"value": "description",
|
|
59
|
+
"status": "draft",
|
|
60
|
+
"layer": "infrastructure",
|
|
61
|
+
"tags": ["plan", "auto-extracted", "..."]
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**failed.json:**
|
|
69
|
+
```json
|
|
70
|
+
{
|
|
71
|
+
"items": [
|
|
72
|
+
{
|
|
73
|
+
"item": {
|
|
74
|
+
"type": "decision",
|
|
75
|
+
"action": "create",
|
|
76
|
+
"timestamp": "2026-01-24T...",
|
|
77
|
+
"data": { "key": "...", "value": "..." }
|
|
78
|
+
},
|
|
79
|
+
"error": "HighSimilarity: 65% match with existing decision 'path/to/existing'",
|
|
80
|
+
"failedAt": "2026-01-24T..."
|
|
81
|
+
}
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
```
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backend Factory
|
|
3
|
+
*
|
|
4
|
+
* Creates and manages backend instances based on configuration.
|
|
5
|
+
* Supports LocalBackend (direct DB) and SaaS backend (submodule).
|
|
6
|
+
*/
|
|
7
|
+
import type { ToolBackend } from './types.js';
|
|
8
|
+
import type { SqlewConfig, CloudConfig } from '../config/types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Check if the configuration specifies cloud mode
|
|
11
|
+
*/
|
|
12
|
+
export declare function isCloudMode(config: SqlewConfig): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Load cloud configuration from global ~/.sqlew.env or environment variables
|
|
15
|
+
*
|
|
16
|
+
* Flow:
|
|
17
|
+
* 1. Load API key from ~/.sqlew.env
|
|
18
|
+
* 2. Load project name from .sqlew/config.toml
|
|
19
|
+
* 3. Check cached project ID in ~/.sqlew.env
|
|
20
|
+
* 4. If not cached, resolve via /api/v1/project/resolve and cache
|
|
21
|
+
*
|
|
22
|
+
* @param projectRoot - Project root directory (for ConnectionIdentity)
|
|
23
|
+
* @returns CloudConfig or null if not configured
|
|
24
|
+
*/
|
|
25
|
+
export declare function loadCloudConfig(projectRoot?: string): Promise<CloudConfig | null>;
|
|
26
|
+
/**
|
|
27
|
+
* Validate cloud configuration
|
|
28
|
+
*/
|
|
29
|
+
export declare function validateCloudConfig(config: CloudConfig | null): {
|
|
30
|
+
valid: boolean;
|
|
31
|
+
errors: string[];
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Create a backend instance based on configuration
|
|
35
|
+
*
|
|
36
|
+
* @param config - sqlew configuration
|
|
37
|
+
* @param projectRoot - Project root directory
|
|
38
|
+
* @returns Backend instance
|
|
39
|
+
*/
|
|
40
|
+
export declare function createBackend(config: SqlewConfig, projectRoot?: string): Promise<ToolBackend>;
|
|
41
|
+
/**
|
|
42
|
+
* Initialize the global backend instance
|
|
43
|
+
*
|
|
44
|
+
* @param config - sqlew configuration
|
|
45
|
+
* @param projectRoot - Project root directory
|
|
46
|
+
* @returns Backend instance
|
|
47
|
+
*/
|
|
48
|
+
export declare function initializeBackend(config: SqlewConfig, projectRoot?: string): Promise<ToolBackend>;
|
|
49
|
+
/**
|
|
50
|
+
* Get the current backend instance
|
|
51
|
+
*
|
|
52
|
+
* @returns Backend instance (creates LocalBackend if not initialized)
|
|
53
|
+
*/
|
|
54
|
+
export declare function getBackend(): ToolBackend;
|
|
55
|
+
/**
|
|
56
|
+
* Check if backend is initialized
|
|
57
|
+
*/
|
|
58
|
+
export declare function isBackendInitialized(): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Get current backend type
|
|
61
|
+
*/
|
|
62
|
+
export declare function getBackendType(): 'local' | 'saas' | null;
|
|
63
|
+
/**
|
|
64
|
+
* Reset backend state (for testing)
|
|
65
|
+
*/
|
|
66
|
+
export declare function resetBackend(): Promise<void>;
|
|
67
|
+
//# sourceMappingURL=backend-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend-factory.d.ts","sourceRoot":"","sources":["../../src/backend/backend-factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAsBnE;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAExD;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAwCvF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAapG;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAwBnG;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAcvG;AAED;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,WAAW,CAMxC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,GAAG,MAAM,GAAG,IAAI,CAExD;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAMlD"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backend Factory
|
|
3
|
+
*
|
|
4
|
+
* Creates and manages backend instances based on configuration.
|
|
5
|
+
* Supports LocalBackend (direct DB) and SaaS backend (submodule).
|
|
6
|
+
*/
|
|
7
|
+
import { CLOUD_ENV_VARS } from '../config/types.js';
|
|
8
|
+
import { LocalBackend } from './local-backend.js';
|
|
9
|
+
import { TransformingBackend } from './transforming-backend.js';
|
|
10
|
+
import { createBackend as createSaaSBackend, resolveProject, } from '@sqlew/saas-connector';
|
|
11
|
+
import { debugLog } from '../utils/debug-logger.js';
|
|
12
|
+
import { loadCloudConfigFromGlobal, checkEnvFilePermissions, loadCachedProjectId, saveCachedProjectId, } from '../config/cloud-config-loader.js';
|
|
13
|
+
/**
|
|
14
|
+
* Global backend instance (singleton)
|
|
15
|
+
*/
|
|
16
|
+
let globalBackend = null;
|
|
17
|
+
let initialized = false;
|
|
18
|
+
/**
|
|
19
|
+
* Check if the configuration specifies cloud mode
|
|
20
|
+
*/
|
|
21
|
+
export function isCloudMode(config) {
|
|
22
|
+
return config.database?.type === 'cloud';
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Load cloud configuration from global ~/.sqlew.env or environment variables
|
|
26
|
+
*
|
|
27
|
+
* Flow:
|
|
28
|
+
* 1. Load API key from ~/.sqlew.env
|
|
29
|
+
* 2. Load project name from .sqlew/config.toml
|
|
30
|
+
* 3. Check cached project ID in ~/.sqlew.env
|
|
31
|
+
* 4. If not cached, resolve via /api/v1/project/resolve and cache
|
|
32
|
+
*
|
|
33
|
+
* @param projectRoot - Project root directory (for ConnectionIdentity)
|
|
34
|
+
* @returns CloudConfig or null if not configured
|
|
35
|
+
*/
|
|
36
|
+
export async function loadCloudConfig(projectRoot) {
|
|
37
|
+
// Check file permissions (Unix: warn if not 600)
|
|
38
|
+
const permCheck = checkEnvFilePermissions();
|
|
39
|
+
if (!permCheck.ok) {
|
|
40
|
+
console.warn(`⚠️ ${permCheck.message}`);
|
|
41
|
+
}
|
|
42
|
+
// Load base config (API key, project name, connection identity)
|
|
43
|
+
const baseConfig = loadCloudConfigFromGlobal(projectRoot);
|
|
44
|
+
if (!baseConfig) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
// Resolve project ID if project name is set
|
|
48
|
+
let projectId;
|
|
49
|
+
if (baseConfig.projectName) {
|
|
50
|
+
// 1. Check cache
|
|
51
|
+
const cachedId = loadCachedProjectId(baseConfig.projectName);
|
|
52
|
+
if (cachedId) {
|
|
53
|
+
projectId = cachedId;
|
|
54
|
+
debugLog('INFO', 'Using cached project ID', { projectName: baseConfig.projectName });
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
// 2. Resolve via API
|
|
58
|
+
try {
|
|
59
|
+
debugLog('INFO', 'Resolving project ID via API', { projectName: baseConfig.projectName });
|
|
60
|
+
projectId = await resolveProject(baseConfig.apiKey, baseConfig.projectName);
|
|
61
|
+
// 3. Cache for future use
|
|
62
|
+
saveCachedProjectId(baseConfig.projectName, projectId);
|
|
63
|
+
debugLog('INFO', 'Project ID resolved and cached', { projectName: baseConfig.projectName });
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
console.warn(`⚠️ Failed to resolve project ID: ${error instanceof Error ? error.message : String(error)}`);
|
|
67
|
+
// Continue without projectId - some features may not work
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
...baseConfig,
|
|
73
|
+
projectId,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Validate cloud configuration
|
|
78
|
+
*/
|
|
79
|
+
export function validateCloudConfig(config) {
|
|
80
|
+
const errors = [];
|
|
81
|
+
if (!config) {
|
|
82
|
+
errors.push(`${CLOUD_ENV_VARS.API_KEY} is required for cloud mode`);
|
|
83
|
+
return { valid: false, errors };
|
|
84
|
+
}
|
|
85
|
+
if (!config.apiKey) {
|
|
86
|
+
errors.push(`${CLOUD_ENV_VARS.API_KEY} is required for cloud mode`);
|
|
87
|
+
}
|
|
88
|
+
return { valid: errors.length === 0, errors };
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Create a backend instance based on configuration
|
|
92
|
+
*
|
|
93
|
+
* @param config - sqlew configuration
|
|
94
|
+
* @param projectRoot - Project root directory
|
|
95
|
+
* @returns Backend instance
|
|
96
|
+
*/
|
|
97
|
+
export async function createBackend(config, projectRoot) {
|
|
98
|
+
if (isCloudMode(config)) {
|
|
99
|
+
// Load cloud config from environment (async: resolves project ID)
|
|
100
|
+
const cloudConfig = await loadCloudConfig(projectRoot);
|
|
101
|
+
const validation = validateCloudConfig(cloudConfig);
|
|
102
|
+
if (!validation.valid) {
|
|
103
|
+
throw new Error(validation.errors.join('; '));
|
|
104
|
+
}
|
|
105
|
+
// Create SaaS backend and wrap with TransformingBackend
|
|
106
|
+
// TransformingBackend handles quick_set → set transformation locally
|
|
107
|
+
try {
|
|
108
|
+
const saasBackend = createSaaSBackend(cloudConfig);
|
|
109
|
+
return new TransformingBackend(saasBackend);
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
throw new Error(`SaaS connector initialization failed. Run: cd saas-connector && npm run build`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// Default: LocalBackend
|
|
116
|
+
return new LocalBackend();
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Initialize the global backend instance
|
|
120
|
+
*
|
|
121
|
+
* @param config - sqlew configuration
|
|
122
|
+
* @param projectRoot - Project root directory
|
|
123
|
+
* @returns Backend instance
|
|
124
|
+
*/
|
|
125
|
+
export async function initializeBackend(config, projectRoot) {
|
|
126
|
+
if (initialized && globalBackend) {
|
|
127
|
+
return globalBackend;
|
|
128
|
+
}
|
|
129
|
+
globalBackend = await createBackend(config, projectRoot);
|
|
130
|
+
initialized = true;
|
|
131
|
+
const modeInfo = globalBackend.backendType === 'saas'
|
|
132
|
+
? `saas (${globalBackend.pluginName || 'saas-connector'})`
|
|
133
|
+
: globalBackend.backendType;
|
|
134
|
+
debugLog('INFO', 'Backend initialized', { type: modeInfo });
|
|
135
|
+
return globalBackend;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get the current backend instance
|
|
139
|
+
*
|
|
140
|
+
* @returns Backend instance (creates LocalBackend if not initialized)
|
|
141
|
+
*/
|
|
142
|
+
export function getBackend() {
|
|
143
|
+
if (!globalBackend) {
|
|
144
|
+
console.error('⚠️ Backend not initialized, using default LocalBackend');
|
|
145
|
+
globalBackend = new LocalBackend();
|
|
146
|
+
}
|
|
147
|
+
return globalBackend;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Check if backend is initialized
|
|
151
|
+
*/
|
|
152
|
+
export function isBackendInitialized() {
|
|
153
|
+
return initialized;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Get current backend type
|
|
157
|
+
*/
|
|
158
|
+
export function getBackendType() {
|
|
159
|
+
return globalBackend?.backendType ?? null;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Reset backend state (for testing)
|
|
163
|
+
*/
|
|
164
|
+
export async function resetBackend() {
|
|
165
|
+
if (globalBackend) {
|
|
166
|
+
await globalBackend.disconnect();
|
|
167
|
+
globalBackend = null;
|
|
168
|
+
}
|
|
169
|
+
initialized = false;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=backend-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend-factory.js","sourceRoot":"","sources":["../../src/backend/backend-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backend Module
|
|
3
|
+
*
|
|
4
|
+
* Provides abstraction layer for local and SaaS backends.
|
|
5
|
+
*/
|
|
6
|
+
export type { ToolBackend, HealthCheckResult, BackendType } from './types.js';
|
|
7
|
+
export { LocalBackend } from './local-backend.js';
|
|
8
|
+
export { TransformingBackend } from './transforming-backend.js';
|
|
9
|
+
export { inferDecisionParams } from './inference.js';
|
|
10
|
+
export type { InferredParams, InferenceResult } from './inference.js';
|
|
11
|
+
export { initializeBackend, getBackend, isBackendInitialized, getBackendType, resetBackend, createBackend, isCloudMode, loadCloudConfig, validateCloudConfig, } from './backend-factory.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/backend/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtE,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,WAAW,EACX,eAAe,EACf,mBAAmB,GACpB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backend Module
|
|
3
|
+
*
|
|
4
|
+
* Provides abstraction layer for local and SaaS backends.
|
|
5
|
+
*/
|
|
6
|
+
// Backend implementations
|
|
7
|
+
export { LocalBackend } from './local-backend.js';
|
|
8
|
+
export { TransformingBackend } from './transforming-backend.js';
|
|
9
|
+
// Inference utilities (for quick_set transformation)
|
|
10
|
+
export { inferDecisionParams } from './inference.js';
|
|
11
|
+
// Factory and global state
|
|
12
|
+
export { initializeBackend, getBackend, isBackendInitialized, getBackendType, resetBackend, createBackend, isCloudMode, loadCloudConfig, validateCloudConfig, } from './backend-factory.js';
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/backend/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,0BAA0B;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,qDAAqD;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGrD,2BAA2B;AAC3B,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,WAAW,EACX,eAAe,EACf,mBAAmB,GACpB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inference logic for quick_set → set transformation
|
|
3
|
+
*
|
|
4
|
+
* Extracted from tools/context/actions/quick-set.ts for use in
|
|
5
|
+
* TransformingBackend when SaaS mode is active.
|
|
6
|
+
*
|
|
7
|
+
* @since v5.0.1
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Inferred parameters from key analysis
|
|
11
|
+
*/
|
|
12
|
+
export interface InferredParams {
|
|
13
|
+
layer?: string;
|
|
14
|
+
tags?: string[];
|
|
15
|
+
scope?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Result of parameter inference
|
|
19
|
+
*/
|
|
20
|
+
export interface InferenceResult {
|
|
21
|
+
/** Transformed parameters ready for decision.set */
|
|
22
|
+
transformedParams: Record<string, unknown>;
|
|
23
|
+
/** What was inferred (for response metadata) */
|
|
24
|
+
inferred: InferredParams;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Infer decision parameters from key structure
|
|
28
|
+
*
|
|
29
|
+
* Inference Rules:
|
|
30
|
+
* - Layer: Inferred from key prefix (api/ → presentation, db/ → data, etc.)
|
|
31
|
+
* - Tags: Extracted from key hierarchy (split by /, -, _)
|
|
32
|
+
* - Scope: Parent path of key (everything except last part)
|
|
33
|
+
*
|
|
34
|
+
* @param params - Quick set parameters (key and value required)
|
|
35
|
+
* @returns Transformed params and inference metadata
|
|
36
|
+
*/
|
|
37
|
+
export declare function inferDecisionParams(params: Record<string, unknown>): InferenceResult;
|
|
38
|
+
//# sourceMappingURL=inference.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inference.d.ts","sourceRoot":"","sources":["../../src/backend/inference.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oDAAoD;IACpD,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,gDAAgD;IAChD,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,CAuDpF"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inference logic for quick_set → set transformation
|
|
3
|
+
*
|
|
4
|
+
* Extracted from tools/context/actions/quick-set.ts for use in
|
|
5
|
+
* TransformingBackend when SaaS mode is active.
|
|
6
|
+
*
|
|
7
|
+
* @since v5.0.1
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Infer decision parameters from key structure
|
|
11
|
+
*
|
|
12
|
+
* Inference Rules:
|
|
13
|
+
* - Layer: Inferred from key prefix (api/ → presentation, db/ → data, etc.)
|
|
14
|
+
* - Tags: Extracted from key hierarchy (split by /, -, _)
|
|
15
|
+
* - Scope: Parent path of key (everything except last part)
|
|
16
|
+
*
|
|
17
|
+
* @param params - Quick set parameters (key and value required)
|
|
18
|
+
* @returns Transformed params and inference metadata
|
|
19
|
+
*/
|
|
20
|
+
export function inferDecisionParams(params) {
|
|
21
|
+
const key = params.key;
|
|
22
|
+
const inferred = {};
|
|
23
|
+
// Layer inference from key prefix
|
|
24
|
+
let layer = params.layer;
|
|
25
|
+
if (!layer) {
|
|
26
|
+
const keyLower = key.toLowerCase();
|
|
27
|
+
if (keyLower.startsWith('api/') || keyLower.startsWith('endpoint/') || keyLower.startsWith('ui/')) {
|
|
28
|
+
layer = 'presentation';
|
|
29
|
+
}
|
|
30
|
+
else if (keyLower.startsWith('service/') || keyLower.startsWith('logic/') || keyLower.startsWith('workflow/')) {
|
|
31
|
+
layer = 'business';
|
|
32
|
+
}
|
|
33
|
+
else if (keyLower.startsWith('db/') || keyLower.startsWith('model/') || keyLower.startsWith('schema/')) {
|
|
34
|
+
layer = 'data';
|
|
35
|
+
}
|
|
36
|
+
else if (keyLower.startsWith('config/') || keyLower.startsWith('deploy/')) {
|
|
37
|
+
layer = 'infrastructure';
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
layer = 'business'; // Default layer
|
|
41
|
+
}
|
|
42
|
+
inferred.layer = layer;
|
|
43
|
+
}
|
|
44
|
+
// Tags extraction from key hierarchy
|
|
45
|
+
let tags = params.tags;
|
|
46
|
+
if (!tags || tags.length === 0) {
|
|
47
|
+
// Split key by '/', '-', or '_' to get hierarchy parts
|
|
48
|
+
tags = key.split(/[\/\-_]/).filter((p) => p.trim() !== '');
|
|
49
|
+
inferred.tags = tags;
|
|
50
|
+
}
|
|
51
|
+
// Scope inference from key hierarchy
|
|
52
|
+
let scopes = params.scopes;
|
|
53
|
+
if (!scopes || scopes.length === 0) {
|
|
54
|
+
// Get parent scope from key (everything except last part)
|
|
55
|
+
const parts = key.split('/');
|
|
56
|
+
if (parts.length > 1) {
|
|
57
|
+
const scope = parts.slice(0, -1).join('/');
|
|
58
|
+
scopes = [scope];
|
|
59
|
+
inferred.scope = scope;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
transformedParams: {
|
|
64
|
+
key: params.key,
|
|
65
|
+
value: params.value,
|
|
66
|
+
agent: params.agent,
|
|
67
|
+
layer,
|
|
68
|
+
version: params.version || 'v1.0.0',
|
|
69
|
+
status: params.status || 'active',
|
|
70
|
+
tags,
|
|
71
|
+
scopes,
|
|
72
|
+
},
|
|
73
|
+
inferred,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=inference.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inference.js","sourceRoot":"","sources":["../../src/backend/inference.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAqBH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAA+B;IACjE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAa,CAAC;IACjC,MAAM,QAAQ,GAAmB,EAAE,CAAC;IAEpC,kCAAkC;IAClC,IAAI,KAAK,GAAG,MAAM,CAAC,KAA2B,CAAC;IAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAClG,KAAK,GAAG,cAAc,CAAC;QACzB,CAAC;aAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAChH,KAAK,GAAG,UAAU,CAAC;QACrB,CAAC;aAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACzG,KAAK,GAAG,MAAM,CAAC;QACjB,CAAC;aAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5E,KAAK,GAAG,gBAAgB,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,UAAU,CAAC,CAAC,gBAAgB;QACtC,CAAC;QACD,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,qCAAqC;IACrC,IAAI,IAAI,GAAG,MAAM,CAAC,IAA4B,CAAC;IAC/C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,uDAAuD;QACvD,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACnE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,qCAAqC;IACrC,IAAI,MAAM,GAAG,MAAM,CAAC,MAA8B,CAAC;IACnD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,0DAA0D;QAC1D,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC;YACjB,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO;QACL,iBAAiB,EAAE;YACjB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK;YACL,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,QAAQ;YACnC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,QAAQ;YACjC,IAAI;YACJ,MAAM;SACP;QACD,QAAQ;KACT,CAAC;AACJ,CAAC"}
|