@kaelio/ktx 0.5.0 → 0.6.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/assets/python/{kaelio_ktx-0.5.0-py3-none-any.whl → kaelio_ktx-0.6.0-py3-none-any.whl} +0 -0
- package/assets/python/manifest.json +4 -4
- package/dist/.tsbuildinfo +1 -1
- package/dist/clack.d.ts +8 -0
- package/dist/clack.js +14 -0
- package/dist/connection.js +2 -9
- package/dist/connectors/bigquery/connector.d.ts +6 -1
- package/dist/connectors/bigquery/connector.js +38 -9
- package/dist/connectors/bigquery/dialect.d.ts +11 -9
- package/dist/connectors/bigquery/dialect.js +25 -45
- package/dist/connectors/clickhouse/connector.d.ts +5 -0
- package/dist/connectors/clickhouse/connector.js +36 -3
- package/dist/connectors/clickhouse/dialect.d.ts +11 -12
- package/dist/connectors/clickhouse/dialect.js +25 -100
- package/dist/connectors/mysql/connector.d.ts +7 -1
- package/dist/connectors/mysql/connector.js +67 -9
- package/dist/connectors/mysql/dialect.d.ts +11 -9
- package/dist/connectors/mysql/dialect.js +25 -43
- package/dist/connectors/postgres/connector.d.ts +6 -0
- package/dist/connectors/postgres/connector.js +67 -12
- package/dist/connectors/postgres/dialect.d.ts +11 -9
- package/dist/connectors/postgres/dialect.js +26 -35
- package/dist/connectors/snowflake/connector.d.ts +8 -3
- package/dist/connectors/snowflake/connector.js +39 -20
- package/dist/connectors/snowflake/dialect.d.ts +11 -9
- package/dist/connectors/snowflake/dialect.js +25 -24
- package/dist/connectors/sqlite/connector.d.ts +3 -1
- package/dist/connectors/sqlite/connector.js +23 -3
- package/dist/connectors/sqlite/dialect.d.ts +11 -9
- package/dist/connectors/sqlite/dialect.js +25 -29
- package/dist/connectors/sqlserver/connector.d.ts +6 -0
- package/dist/connectors/sqlserver/connector.js +56 -9
- package/dist/connectors/sqlserver/dialect.d.ts +11 -10
- package/dist/connectors/sqlserver/dialect.js +24 -40
- package/dist/context/connections/connection-type.d.ts +1 -1
- package/dist/context/connections/dialect-helpers.d.ts +9 -0
- package/dist/context/connections/dialect-helpers.js +67 -0
- package/dist/context/connections/dialects.d.ts +23 -5
- package/dist/context/connections/dialects.js +18 -56
- package/dist/context/connections/drivers.d.ts +23 -0
- package/dist/context/connections/drivers.js +171 -0
- package/dist/context/connections/local-query-executor.js +25 -7
- package/dist/context/connections/local-warehouse-descriptor.js +0 -2
- package/dist/context/connections/postgres-query-executor.js +1 -1
- package/dist/context/connections/sqlite-query-executor.js +1 -1
- package/dist/context/ingest/adapters/historic-sql/chunk-unified.js +1 -1
- package/dist/context/ingest/adapters/historic-sql/connection-dialect.js +11 -7
- package/dist/context/ingest/adapters/historic-sql/evidence-tool.d.ts +1 -1
- package/dist/context/ingest/adapters/historic-sql/evidence-tool.js +8 -5
- package/dist/context/ingest/adapters/historic-sql/evidence.d.ts +4 -4
- package/dist/context/ingest/adapters/historic-sql/evidence.js +2 -2
- package/dist/context/ingest/adapters/historic-sql/projection.js +5 -2
- package/dist/context/ingest/adapters/live-database/daemon-introspection.js +1 -1
- package/dist/context/ingest/adapters/live-database/stage.d.ts +2 -0
- package/dist/context/ingest/adapters/live-database/stage.js +9 -0
- package/dist/context/ingest/adapters/looker/mapping.d.ts +0 -3
- package/dist/context/ingest/adapters/looker/mapping.js +0 -3
- package/dist/context/ingest/adapters/looker/types.d.ts +1 -1
- package/dist/context/ingest/historic-sql-probes/bigquery-runner.d.ts +34 -0
- package/dist/context/ingest/historic-sql-probes/bigquery-runner.js +99 -0
- package/dist/context/ingest/historic-sql-probes/postgres-runner.d.ts +26 -0
- package/dist/context/ingest/historic-sql-probes/postgres-runner.js +76 -0
- package/dist/context/ingest/historic-sql-probes/snowflake-runner.d.ts +29 -0
- package/dist/context/ingest/historic-sql-probes/snowflake-runner.js +62 -0
- package/dist/context/ingest/historic-sql-probes.d.ts +46 -0
- package/dist/context/ingest/historic-sql-probes.js +62 -0
- package/dist/context/ingest/local-adapters.js +0 -1
- package/dist/context/ingest/local-ingest.js +1 -1
- package/dist/context/mcp/context-tools.js +11 -48
- package/dist/context/mcp/local-project-ports.js +0 -3
- package/dist/context/project/config.d.ts +0 -8
- package/dist/context/project/driver-schemas.d.ts +0 -4
- package/dist/context/project/driver-schemas.js +0 -2
- package/dist/context/scan/constraint-discovery.d.ts +19 -0
- package/dist/context/scan/constraint-discovery.js +23 -0
- package/dist/context/scan/enabled-tables.d.ts +4 -5
- package/dist/context/scan/enabled-tables.js +4 -18
- package/dist/context/scan/entity-details.js +14 -44
- package/dist/context/scan/local-enrichment.js +13 -1
- package/dist/context/scan/local-scan.js +5 -4
- package/dist/context/scan/local-structural-artifacts.js +51 -0
- package/dist/context/scan/relationship-benchmarks.js +9 -6
- package/dist/context/scan/relationship-composite-candidates.d.ts +3 -2
- package/dist/context/scan/relationship-composite-candidates.js +21 -33
- package/dist/context/scan/relationship-discovery.d.ts +3 -2
- package/dist/context/scan/relationship-discovery.js +4 -4
- package/dist/context/scan/relationship-profiling.d.ts +2 -3
- package/dist/context/scan/relationship-profiling.js +25 -94
- package/dist/context/scan/relationship-validation.d.ts +3 -2
- package/dist/context/scan/relationship-validation.js +12 -22
- package/dist/context/scan/table-ref.d.ts +1 -2
- package/dist/context/scan/table-ref.js +3 -4
- package/dist/context/scan/types.d.ts +6 -2
- package/dist/context/scan/warehouse-catalog.js +31 -48
- package/dist/context/sl/local-query.js +0 -3
- package/dist/context/sl/local-sl.js +0 -13
- package/dist/context/sl/semantic-layer.service.js +1 -4
- package/dist/context/tools/context-candidate-write.tool.d.ts +2 -2
- package/dist/context-build-view.js +1 -1
- package/dist/database-tree-picker.js +14 -7
- package/dist/error-message.d.ts +1 -0
- package/dist/error-message.js +29 -0
- package/dist/ingest-depth.js +0 -1
- package/dist/ingest.js +2 -2
- package/dist/llm/embedding-health.js +2 -2
- package/dist/local-scan-connectors.js +13 -56
- package/dist/managed-local-embeddings.js +2 -1
- package/dist/managed-python-daemon.d.ts +5 -0
- package/dist/managed-python-daemon.js +29 -9
- package/dist/managed-python-http.js +2 -1
- package/dist/public-ingest.js +1 -6
- package/dist/runtime-requirements.js +2 -2
- package/dist/setup-agents.d.ts +1 -1
- package/dist/setup-agents.js +16 -74
- package/dist/setup-context.js +2 -1
- package/dist/setup-databases.d.ts +3 -13
- package/dist/setup-databases.js +141 -313
- package/dist/setup-embeddings.js +10 -2
- package/dist/setup-runtime.js +2 -1
- package/dist/setup-sources.js +2 -1
- package/dist/setup.js +10 -4
- package/dist/skills/historic_sql_patterns/SKILL.md +1 -3
- package/dist/skills/historic_sql_table_digest/SKILL.md +0 -1
- package/dist/skills/sl/SKILL.md +2 -2
- package/dist/sql.js +0 -4
- package/dist/status-project.d.ts +3 -18
- package/dist/status-project.js +42 -216
- package/dist/telemetry/events.d.ts +1 -1
- package/dist/telemetry/index.js +8 -3
- package/dist/tree-picker-state.d.ts +2 -2
- package/dist/tree-picker-state.js +29 -13
- package/dist/tree-picker-tui.d.ts +3 -1
- package/dist/tree-picker-tui.js +20 -32
- package/package.json +6 -6
- package/dist/admin-reindex.test.d.ts +0 -1
- package/dist/admin-reindex.test.js +0 -119
- package/dist/admin.test.d.ts +0 -1
- package/dist/admin.test.js +0 -201
- package/dist/cli-program-telemetry.test.d.ts +0 -1
- package/dist/cli-program-telemetry.test.js +0 -89
- package/dist/cli-program.test.d.ts +0 -1
- package/dist/cli-program.test.js +0 -71
- package/dist/command-tree.test.d.ts +0 -1
- package/dist/command-tree.test.js +0 -126
- package/dist/commands/mcp-commands.test.d.ts +0 -1
- package/dist/commands/mcp-commands.test.js +0 -111
- package/dist/commands/sql-commands.test.d.ts +0 -1
- package/dist/commands/sql-commands.test.js +0 -68
- package/dist/connection.test.d.ts +0 -1
- package/dist/connection.test.js +0 -426
- package/dist/connectors/bigquery/connector.test.d.ts +0 -1
- package/dist/connectors/bigquery/connector.test.js +0 -363
- package/dist/connectors/bigquery/dialect.test.d.ts +0 -1
- package/dist/connectors/bigquery/dialect.test.js +0 -36
- package/dist/connectors/clickhouse/connector.test.d.ts +0 -1
- package/dist/connectors/clickhouse/connector.test.js +0 -342
- package/dist/connectors/clickhouse/dialect.test.d.ts +0 -1
- package/dist/connectors/clickhouse/dialect.test.js +0 -36
- package/dist/connectors/mysql/connector.test.d.ts +0 -1
- package/dist/connectors/mysql/connector.test.js +0 -365
- package/dist/connectors/mysql/dialect.test.d.ts +0 -1
- package/dist/connectors/mysql/dialect.test.js +0 -36
- package/dist/connectors/postgres/connector.test.d.ts +0 -1
- package/dist/connectors/postgres/connector.test.js +0 -391
- package/dist/connectors/postgres/dialect.test.d.ts +0 -1
- package/dist/connectors/postgres/dialect.test.js +0 -37
- package/dist/connectors/postgres/historic-sql-query-client.test.d.ts +0 -1
- package/dist/connectors/postgres/historic-sql-query-client.test.js +0 -45
- package/dist/connectors/snowflake/connector.test.d.ts +0 -1
- package/dist/connectors/snowflake/connector.test.js +0 -462
- package/dist/connectors/snowflake/dialect.test.d.ts +0 -1
- package/dist/connectors/snowflake/dialect.test.js +0 -34
- package/dist/connectors/snowflake/identifiers.test.d.ts +0 -1
- package/dist/connectors/snowflake/identifiers.test.js +0 -12
- package/dist/connectors/snowflake/sdk-logger.test.d.ts +0 -1
- package/dist/connectors/snowflake/sdk-logger.test.js +0 -47
- package/dist/connectors/sqlite/connector.test.d.ts +0 -1
- package/dist/connectors/sqlite/connector.test.js +0 -207
- package/dist/connectors/sqlite/dialect.test.d.ts +0 -1
- package/dist/connectors/sqlite/dialect.test.js +0 -23
- package/dist/connectors/sqlserver/connector.test.d.ts +0 -1
- package/dist/connectors/sqlserver/connector.test.js +0 -313
- package/dist/connectors/sqlserver/dialect.test.d.ts +0 -1
- package/dist/connectors/sqlserver/dialect.test.js +0 -36
- package/dist/context/connections/bigquery-identifiers.test.d.ts +0 -1
- package/dist/context/connections/bigquery-identifiers.test.js +0 -13
- package/dist/context/connections/dialects.test.d.ts +0 -1
- package/dist/context/connections/dialects.test.js +0 -24
- package/dist/context/connections/local-query-executor.test.d.ts +0 -1
- package/dist/context/connections/local-query-executor.test.js +0 -48
- package/dist/context/connections/local-warehouse-descriptor.test.d.ts +0 -1
- package/dist/context/connections/local-warehouse-descriptor.test.js +0 -53
- package/dist/context/connections/notion-config.test.d.ts +0 -1
- package/dist/context/connections/notion-config.test.js +0 -121
- package/dist/context/connections/postgres-query-executor.test.d.ts +0 -1
- package/dist/context/connections/postgres-query-executor.test.js +0 -91
- package/dist/context/connections/read-only-sql.test.d.ts +0 -1
- package/dist/context/connections/read-only-sql.test.js +0 -20
- package/dist/context/connections/sqlite-query-executor.test.d.ts +0 -1
- package/dist/context/connections/sqlite-query-executor.test.js +0 -113
- package/dist/context/core/config-reference.test.d.ts +0 -1
- package/dist/context/core/config-reference.test.js +0 -27
- package/dist/context/core/git.service.assert-worktree-clean.test.d.ts +0 -1
- package/dist/context/core/git.service.assert-worktree-clean.test.js +0 -62
- package/dist/context/core/git.service.delete-directories.test.d.ts +0 -1
- package/dist/context/core/git.service.delete-directories.test.js +0 -61
- package/dist/context/core/git.service.patch.test.d.ts +0 -1
- package/dist/context/core/git.service.patch.test.js +0 -40
- package/dist/context/core/git.service.reset-hard.test.d.ts +0 -1
- package/dist/context/core/git.service.reset-hard.test.js +0 -47
- package/dist/context/core/git.service.test.d.ts +0 -1
- package/dist/context/core/git.service.test.js +0 -357
- package/dist/context/core/session-worktree.service.test.d.ts +0 -1
- package/dist/context/core/session-worktree.service.test.js +0 -97
- package/dist/context/daemon/semantic-layer-compute.test.d.ts +0 -1
- package/dist/context/daemon/semantic-layer-compute.test.js +0 -305
- package/dist/context/index-sync/reindex.test.d.ts +0 -1
- package/dist/context/index-sync/reindex.test.js +0 -139
- package/dist/context/ingest/action-identity.test.d.ts +0 -1
- package/dist/context/ingest/action-identity.test.js +0 -19
- package/dist/context/ingest/adapters/dbt/chunk.test.d.ts +0 -1
- package/dist/context/ingest/adapters/dbt/chunk.test.js +0 -30
- package/dist/context/ingest/adapters/dbt/dbt.adapter.test.d.ts +0 -1
- package/dist/context/ingest/adapters/dbt/dbt.adapter.test.js +0 -43
- package/dist/context/ingest/adapters/dbt/fetch.test.d.ts +0 -1
- package/dist/context/ingest/adapters/dbt/fetch.test.js +0 -30
- package/dist/context/ingest/adapters/dbt/parse.test.d.ts +0 -1
- package/dist/context/ingest/adapters/dbt/parse.test.js +0 -7
- package/dist/context/ingest/adapters/dbt-descriptions/parse-schema.test.d.ts +0 -1
- package/dist/context/ingest/adapters/dbt-descriptions/parse-schema.test.js +0 -195
- package/dist/context/ingest/adapters/historic-sql/bigquery-query-history-reader.test.d.ts +0 -1
- package/dist/context/ingest/adapters/historic-sql/bigquery-query-history-reader.test.js +0 -121
- package/dist/context/ingest/adapters/historic-sql/buckets.test.d.ts +0 -1
- package/dist/context/ingest/adapters/historic-sql/buckets.test.js +0 -49
- package/dist/context/ingest/adapters/historic-sql/chunk-unified.test.d.ts +0 -1
- package/dist/context/ingest/adapters/historic-sql/chunk-unified.test.js +0 -160
- package/dist/context/ingest/adapters/historic-sql/detect.test.d.ts +0 -1
- package/dist/context/ingest/adapters/historic-sql/detect.test.js +0 -48
- package/dist/context/ingest/adapters/historic-sql/evidence-tool.test.d.ts +0 -1
- package/dist/context/ingest/adapters/historic-sql/evidence-tool.test.js +0 -67
- package/dist/context/ingest/adapters/historic-sql/evidence.test.d.ts +0 -1
- package/dist/context/ingest/adapters/historic-sql/evidence.test.js +0 -43
- package/dist/context/ingest/adapters/historic-sql/historic-sql.adapter.test.d.ts +0 -1
- package/dist/context/ingest/adapters/historic-sql/historic-sql.adapter.test.js +0 -98
- package/dist/context/ingest/adapters/historic-sql/local-ingest-acceptance.test.d.ts +0 -1
- package/dist/context/ingest/adapters/historic-sql/local-ingest-acceptance.test.js +0 -235
- package/dist/context/ingest/adapters/historic-sql/pattern-inputs.test.d.ts +0 -1
- package/dist/context/ingest/adapters/historic-sql/pattern-inputs.test.js +0 -68
- package/dist/context/ingest/adapters/historic-sql/postgres-pgss-reader.test.d.ts +0 -1
- package/dist/context/ingest/adapters/historic-sql/postgres-pgss-reader.test.js +0 -205
- package/dist/context/ingest/adapters/historic-sql/projection.test.d.ts +0 -1
- package/dist/context/ingest/adapters/historic-sql/projection.test.js +0 -392
- package/dist/context/ingest/adapters/historic-sql/redaction.test.d.ts +0 -1
- package/dist/context/ingest/adapters/historic-sql/redaction.test.js +0 -22
- package/dist/context/ingest/adapters/historic-sql/skill-schemas.test.d.ts +0 -1
- package/dist/context/ingest/adapters/historic-sql/skill-schemas.test.js +0 -62
- package/dist/context/ingest/adapters/historic-sql/snowflake-query-history-reader.test.d.ts +0 -1
- package/dist/context/ingest/adapters/historic-sql/snowflake-query-history-reader.test.js +0 -117
- package/dist/context/ingest/adapters/historic-sql/stage-unified.test.d.ts +0 -1
- package/dist/context/ingest/adapters/historic-sql/stage-unified.test.js +0 -405
- package/dist/context/ingest/adapters/historic-sql/types.test.d.ts +0 -1
- package/dist/context/ingest/adapters/historic-sql/types.test.js +0 -87
- package/dist/context/ingest/adapters/live-database/chunk.test.d.ts +0 -1
- package/dist/context/ingest/adapters/live-database/chunk.test.js +0 -95
- package/dist/context/ingest/adapters/live-database/daemon-introspection.test.d.ts +0 -1
- package/dist/context/ingest/adapters/live-database/daemon-introspection.test.js +0 -241
- package/dist/context/ingest/adapters/live-database/live-database.adapter.test.d.ts +0 -1
- package/dist/context/ingest/adapters/live-database/live-database.adapter.test.js +0 -105
- package/dist/context/ingest/adapters/live-database/manifest.test.d.ts +0 -1
- package/dist/context/ingest/adapters/live-database/manifest.test.js +0 -291
- package/dist/context/ingest/adapters/live-database/stage.test.d.ts +0 -1
- package/dist/context/ingest/adapters/live-database/stage.test.js +0 -133
- package/dist/context/ingest/adapters/looker/chunk.test.d.ts +0 -1
- package/dist/context/ingest/adapters/looker/chunk.test.js +0 -142
- package/dist/context/ingest/adapters/looker/client-boundary.test.d.ts +0 -1
- package/dist/context/ingest/adapters/looker/client-boundary.test.js +0 -12
- package/dist/context/ingest/adapters/looker/client.test.d.ts +0 -1
- package/dist/context/ingest/adapters/looker/client.test.js +0 -407
- package/dist/context/ingest/adapters/looker/daemon-table-identifier-parser.test.d.ts +0 -1
- package/dist/context/ingest/adapters/looker/daemon-table-identifier-parser.test.js +0 -40
- package/dist/context/ingest/adapters/looker/detect.test.d.ts +0 -1
- package/dist/context/ingest/adapters/looker/detect.test.js +0 -39
- package/dist/context/ingest/adapters/looker/evidence-documents.test.d.ts +0 -1
- package/dist/context/ingest/adapters/looker/evidence-documents.test.js +0 -178
- package/dist/context/ingest/adapters/looker/factory.test.d.ts +0 -1
- package/dist/context/ingest/adapters/looker/factory.test.js +0 -55
- package/dist/context/ingest/adapters/looker/fetch-report.test.d.ts +0 -1
- package/dist/context/ingest/adapters/looker/fetch-report.test.js +0 -71
- package/dist/context/ingest/adapters/looker/fetch.test.d.ts +0 -1
- package/dist/context/ingest/adapters/looker/fetch.test.js +0 -592
- package/dist/context/ingest/adapters/looker/local-runtime-store.test.d.ts +0 -1
- package/dist/context/ingest/adapters/looker/local-runtime-store.test.js +0 -106
- package/dist/context/ingest/adapters/looker/looker.adapter.test.d.ts +0 -1
- package/dist/context/ingest/adapters/looker/looker.adapter.test.js +0 -99
- package/dist/context/ingest/adapters/looker/mapping.test.d.ts +0 -1
- package/dist/context/ingest/adapters/looker/mapping.test.js +0 -334
- package/dist/context/ingest/adapters/looker/reconcile.test.d.ts +0 -1
- package/dist/context/ingest/adapters/looker/reconcile.test.js +0 -12
- package/dist/context/ingest/adapters/looker/scope.test.d.ts +0 -1
- package/dist/context/ingest/adapters/looker/scope.test.js +0 -84
- package/dist/context/ingest/adapters/looker/target-connections.test.d.ts +0 -1
- package/dist/context/ingest/adapters/looker/target-connections.test.js +0 -71
- package/dist/context/ingest/adapters/looker/tools/looker-query-to-sl.tool.test.d.ts +0 -1
- package/dist/context/ingest/adapters/looker/tools/looker-query-to-sl.tool.test.js +0 -211
- package/dist/context/ingest/adapters/looker/types.test.d.ts +0 -1
- package/dist/context/ingest/adapters/looker/types.test.js +0 -261
- package/dist/context/ingest/adapters/lookml/chunk.test.d.ts +0 -1
- package/dist/context/ingest/adapters/lookml/chunk.test.js +0 -213
- package/dist/context/ingest/adapters/lookml/detect.test.d.ts +0 -1
- package/dist/context/ingest/adapters/lookml/detect.test.js +0 -37
- package/dist/context/ingest/adapters/lookml/fetch-report.test.d.ts +0 -1
- package/dist/context/ingest/adapters/lookml/fetch-report.test.js +0 -82
- package/dist/context/ingest/adapters/lookml/fetch.test.d.ts +0 -1
- package/dist/context/ingest/adapters/lookml/fetch.test.js +0 -121
- package/dist/context/ingest/adapters/lookml/graph.test.d.ts +0 -1
- package/dist/context/ingest/adapters/lookml/graph.test.js +0 -105
- package/dist/context/ingest/adapters/lookml/lookml.adapter.test.d.ts +0 -1
- package/dist/context/ingest/adapters/lookml/lookml.adapter.test.js +0 -49
- package/dist/context/ingest/adapters/lookml/parse.test.d.ts +0 -1
- package/dist/context/ingest/adapters/lookml/parse.test.js +0 -118
- package/dist/context/ingest/adapters/lookml/pull-config.test.d.ts +0 -1
- package/dist/context/ingest/adapters/lookml/pull-config.test.js +0 -128
- package/dist/context/ingest/adapters/metabase/card-references.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metabase/card-references.test.js +0 -36
- package/dist/context/ingest/adapters/metabase/chunk.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metabase/chunk.test.js +0 -299
- package/dist/context/ingest/adapters/metabase/client-boundary.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metabase/client-boundary.test.js +0 -38
- package/dist/context/ingest/adapters/metabase/client-port.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metabase/client-port.test.js +0 -86
- package/dist/context/ingest/adapters/metabase/client.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metabase/client.test.js +0 -377
- package/dist/context/ingest/adapters/metabase/detect.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metabase/detect.test.js +0 -42
- package/dist/context/ingest/adapters/metabase/fanout-planner.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metabase/fanout-planner.test.js +0 -44
- package/dist/context/ingest/adapters/metabase/fetch-scope.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metabase/fetch-scope.test.js +0 -124
- package/dist/context/ingest/adapters/metabase/fetch.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metabase/fetch.test.js +0 -557
- package/dist/context/ingest/adapters/metabase/local-metabase.adapter.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metabase/local-metabase.adapter.test.js +0 -56
- package/dist/context/ingest/adapters/metabase/local-source-state-store.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metabase/local-source-state-store.test.js +0 -99
- package/dist/context/ingest/adapters/metabase/mapping.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metabase/mapping.test.js +0 -215
- package/dist/context/ingest/adapters/metabase/metabase.adapter.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metabase/metabase.adapter.test.js +0 -129
- package/dist/context/ingest/adapters/metabase/serialize-card.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metabase/serialize-card.test.js +0 -205
- package/dist/context/ingest/adapters/metabase/types.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metabase/types.test.js +0 -75
- package/dist/context/ingest/adapters/metricflow/chunk.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metricflow/chunk.test.js +0 -114
- package/dist/context/ingest/adapters/metricflow/deep-parse.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metricflow/deep-parse.test.js +0 -1139
- package/dist/context/ingest/adapters/metricflow/detect.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metricflow/detect.test.js +0 -43
- package/dist/context/ingest/adapters/metricflow/fetch.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metricflow/fetch.test.js +0 -97
- package/dist/context/ingest/adapters/metricflow/graph.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metricflow/graph.test.js +0 -245
- package/dist/context/ingest/adapters/metricflow/import-semantic-models.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metricflow/import-semantic-models.test.js +0 -318
- package/dist/context/ingest/adapters/metricflow/metricflow.adapter.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metricflow/metricflow.adapter.test.js +0 -212
- package/dist/context/ingest/adapters/metricflow/parse.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metricflow/parse.test.js +0 -171
- package/dist/context/ingest/adapters/metricflow/pull-config.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metricflow/pull-config.test.js +0 -57
- package/dist/context/ingest/adapters/metricflow/semantic-models.test.d.ts +0 -1
- package/dist/context/ingest/adapters/metricflow/semantic-models.test.js +0 -204
- package/dist/context/ingest/adapters/notion/cluster.test.d.ts +0 -1
- package/dist/context/ingest/adapters/notion/cluster.test.js +0 -123
- package/dist/context/ingest/adapters/notion/fetch.test.d.ts +0 -1
- package/dist/context/ingest/adapters/notion/fetch.test.js +0 -358
- package/dist/context/ingest/adapters/notion/local-state-store.test.d.ts +0 -1
- package/dist/context/ingest/adapters/notion/local-state-store.test.js +0 -29
- package/dist/context/ingest/adapters/notion/normalize.test.d.ts +0 -1
- package/dist/context/ingest/adapters/notion/normalize.test.js +0 -64
- package/dist/context/ingest/adapters/notion/notion-client.test.d.ts +0 -1
- package/dist/context/ingest/adapters/notion/notion-client.test.js +0 -49
- package/dist/context/ingest/adapters/notion/notion.adapter.test.d.ts +0 -1
- package/dist/context/ingest/adapters/notion/notion.adapter.test.js +0 -315
- package/dist/context/ingest/artifact-gates.test.d.ts +0 -1
- package/dist/context/ingest/artifact-gates.test.js +0 -167
- package/dist/context/ingest/canonical-pins.test.d.ts +0 -1
- package/dist/context/ingest/canonical-pins.test.js +0 -66
- package/dist/context/ingest/clustering/kmeans.test.d.ts +0 -1
- package/dist/context/ingest/clustering/kmeans.test.js +0 -61
- package/dist/context/ingest/context-candidates/candidate-dedup.service.test.d.ts +0 -1
- package/dist/context/ingest/context-candidates/candidate-dedup.service.test.js +0 -216
- package/dist/context/ingest/context-candidates/context-candidate-carryforward.service.test.d.ts +0 -1
- package/dist/context/ingest/context-candidates/context-candidate-carryforward.service.test.js +0 -161
- package/dist/context/ingest/context-candidates/curator-pagination.service.test.d.ts +0 -1
- package/dist/context/ingest/context-candidates/curator-pagination.service.test.js +0 -168
- package/dist/context/ingest/context-candidates/embedding-text.test.d.ts +0 -1
- package/dist/context/ingest/context-candidates/embedding-text.test.js +0 -10
- package/dist/context/ingest/context-candidates/store.test.d.ts +0 -1
- package/dist/context/ingest/context-candidates/store.test.js +0 -67
- package/dist/context/ingest/context-evidence/context-evidence-index.service.test.d.ts +0 -1
- package/dist/context/ingest/context-evidence/context-evidence-index.service.test.js +0 -374
- package/dist/context/ingest/context-evidence/sqlite-context-evidence-store.test.d.ts +0 -1
- package/dist/context/ingest/context-evidence/sqlite-context-evidence-store.test.js +0 -416
- package/dist/context/ingest/context-evidence/store.test.d.ts +0 -1
- package/dist/context/ingest/context-evidence/store.test.js +0 -55
- package/dist/context/ingest/dbt-shared/project-vars.test.d.ts +0 -1
- package/dist/context/ingest/dbt-shared/project-vars.test.js +0 -90
- package/dist/context/ingest/dbt-shared/schema-files.test.d.ts +0 -1
- package/dist/context/ingest/dbt-shared/schema-files.test.js +0 -35
- package/dist/context/ingest/diff-set.service.test.d.ts +0 -1
- package/dist/context/ingest/diff-set.service.test.js +0 -132
- package/dist/context/ingest/final-gate-repair.test.d.ts +0 -1
- package/dist/context/ingest/final-gate-repair.test.js +0 -109
- package/dist/context/ingest/finalization-scope.test.d.ts +0 -1
- package/dist/context/ingest/finalization-scope.test.js +0 -114
- package/dist/context/ingest/ingest-bundle.runner.isolated-diff.test.d.ts +0 -1
- package/dist/context/ingest/ingest-bundle.runner.isolated-diff.test.js +0 -1928
- package/dist/context/ingest/ingest-bundle.runner.test.d.ts +0 -1
- package/dist/context/ingest/ingest-bundle.runner.test.js +0 -1899
- package/dist/context/ingest/ingest-prompts.test.d.ts +0 -1
- package/dist/context/ingest/ingest-prompts.test.js +0 -32
- package/dist/context/ingest/ingest-runtime-assets.test.d.ts +0 -1
- package/dist/context/ingest/ingest-runtime-assets.test.js +0 -89
- package/dist/context/ingest/ingest-trace.test.d.ts +0 -1
- package/dist/context/ingest/ingest-trace.test.js +0 -76
- package/dist/context/ingest/isolated-diff/git-patch.test.d.ts +0 -1
- package/dist/context/ingest/isolated-diff/git-patch.test.js +0 -76
- package/dist/context/ingest/isolated-diff/patch-integrator.test.d.ts +0 -1
- package/dist/context/ingest/isolated-diff/patch-integrator.test.js +0 -369
- package/dist/context/ingest/isolated-diff/textual-conflict-resolver.test.d.ts +0 -1
- package/dist/context/ingest/isolated-diff/textual-conflict-resolver.test.js +0 -101
- package/dist/context/ingest/isolated-diff/work-unit-executor.test.d.ts +0 -1
- package/dist/context/ingest/isolated-diff/work-unit-executor.test.js +0 -137
- package/dist/context/ingest/local-adapters.test.d.ts +0 -1
- package/dist/context/ingest/local-adapters.test.js +0 -612
- package/dist/context/ingest/local-bundle-ingest.test.d.ts +0 -1
- package/dist/context/ingest/local-bundle-ingest.test.js +0 -794
- package/dist/context/ingest/local-bundle-runtime.test.d.ts +0 -1
- package/dist/context/ingest/local-bundle-runtime.test.js +0 -240
- package/dist/context/ingest/local-embedding-provider.integration.test.d.ts +0 -1
- package/dist/context/ingest/local-embedding-provider.integration.test.js +0 -139
- package/dist/context/ingest/local-mapping-reconcile.test.d.ts +0 -1
- package/dist/context/ingest/local-mapping-reconcile.test.js +0 -61
- package/dist/context/ingest/local-metabase-ingest.test.d.ts +0 -1
- package/dist/context/ingest/local-metabase-ingest.test.js +0 -227
- package/dist/context/ingest/local-stage-ingest.test.d.ts +0 -1
- package/dist/context/ingest/local-stage-ingest.test.js +0 -581
- package/dist/context/ingest/memory-flow/acceptance-fixtures.d.ts +0 -6
- package/dist/context/ingest/memory-flow/acceptance-fixtures.js +0 -155
- package/dist/context/ingest/memory-flow/acceptance.test.d.ts +0 -1
- package/dist/context/ingest/memory-flow/acceptance.test.js +0 -43
- package/dist/context/ingest/memory-flow/events.test.d.ts +0 -1
- package/dist/context/ingest/memory-flow/events.test.js +0 -319
- package/dist/context/ingest/memory-flow/interaction.test.d.ts +0 -1
- package/dist/context/ingest/memory-flow/interaction.test.js +0 -264
- package/dist/context/ingest/memory-flow/interactive-render.test.d.ts +0 -1
- package/dist/context/ingest/memory-flow/interactive-render.test.js +0 -160
- package/dist/context/ingest/memory-flow/live-buffer.test.d.ts +0 -1
- package/dist/context/ingest/memory-flow/live-buffer.test.js +0 -77
- package/dist/context/ingest/memory-flow/render.test.d.ts +0 -1
- package/dist/context/ingest/memory-flow/render.test.js +0 -105
- package/dist/context/ingest/memory-flow/schema.test.d.ts +0 -1
- package/dist/context/ingest/memory-flow/schema.test.js +0 -147
- package/dist/context/ingest/memory-flow/summary.test.d.ts +0 -1
- package/dist/context/ingest/memory-flow/summary.test.js +0 -130
- package/dist/context/ingest/memory-flow/view-model.test.d.ts +0 -1
- package/dist/context/ingest/memory-flow/view-model.test.js +0 -397
- package/dist/context/ingest/memory-flow/visuals.test.d.ts +0 -1
- package/dist/context/ingest/memory-flow/visuals.test.js +0 -49
- package/dist/context/ingest/page-triage/page-triage.service.test.d.ts +0 -1
- package/dist/context/ingest/page-triage/page-triage.service.test.js +0 -311
- package/dist/context/ingest/raw-sources-paths.test.d.ts +0 -1
- package/dist/context/ingest/raw-sources-paths.test.js +0 -18
- package/dist/context/ingest/repo-fetch.test.d.ts +0 -1
- package/dist/context/ingest/repo-fetch.test.js +0 -168
- package/dist/context/ingest/report-snapshot.test.d.ts +0 -1
- package/dist/context/ingest/report-snapshot.test.js +0 -329
- package/dist/context/ingest/semantic-layer-target-policy.test.d.ts +0 -1
- package/dist/context/ingest/semantic-layer-target-policy.test.js +0 -25
- package/dist/context/ingest/source-adapter-registry.test.d.ts +0 -1
- package/dist/context/ingest/source-adapter-registry.test.js +0 -35
- package/dist/context/ingest/sqlite-bundle-ingest-store.test.d.ts +0 -1
- package/dist/context/ingest/sqlite-bundle-ingest-store.test.js +0 -517
- package/dist/context/ingest/sqlite-local-ingest-store.test.d.ts +0 -1
- package/dist/context/ingest/sqlite-local-ingest-store.test.js +0 -143
- package/dist/context/ingest/stages/build-reconcile-context.context-candidates.test.d.ts +0 -1
- package/dist/context/ingest/stages/build-reconcile-context.context-candidates.test.js +0 -102
- package/dist/context/ingest/stages/build-reconcile-context.test.d.ts +0 -1
- package/dist/context/ingest/stages/build-reconcile-context.test.js +0 -141
- package/dist/context/ingest/stages/build-wu-context.test.d.ts +0 -1
- package/dist/context/ingest/stages/build-wu-context.test.js +0 -196
- package/dist/context/ingest/stages/stage-1-stage-raw-files.test.d.ts +0 -1
- package/dist/context/ingest/stages/stage-1-stage-raw-files.test.js +0 -54
- package/dist/context/ingest/stages/stage-3-work-units.test.d.ts +0 -1
- package/dist/context/ingest/stages/stage-3-work-units.test.js +0 -175
- package/dist/context/ingest/stages/stage-4-reconciliation.test.d.ts +0 -1
- package/dist/context/ingest/stages/stage-4-reconciliation.test.js +0 -144
- package/dist/context/ingest/stages/validate-wu-sources.test.d.ts +0 -1
- package/dist/context/ingest/stages/validate-wu-sources.test.js +0 -27
- package/dist/context/ingest/tools/emit-reconciliation-records.tool.test.d.ts +0 -1
- package/dist/context/ingest/tools/emit-reconciliation-records.tool.test.js +0 -237
- package/dist/context/ingest/tools/eviction-list.tool.test.d.ts +0 -1
- package/dist/context/ingest/tools/eviction-list.tool.test.js +0 -44
- package/dist/context/ingest/tools/read-raw-file.tool.test.d.ts +0 -1
- package/dist/context/ingest/tools/read-raw-file.tool.test.js +0 -45
- package/dist/context/ingest/tools/read-raw-span.tool.test.d.ts +0 -1
- package/dist/context/ingest/tools/read-raw-span.tool.test.js +0 -34
- package/dist/context/ingest/tools/stage-diff.tool.test.d.ts +0 -1
- package/dist/context/ingest/tools/stage-diff.tool.test.js +0 -112
- package/dist/context/ingest/tools/stage-list.tool.test.d.ts +0 -1
- package/dist/context/ingest/tools/stage-list.tool.test.js +0 -58
- package/dist/context/ingest/tools/tool-transcript-summary.test.d.ts +0 -1
- package/dist/context/ingest/tools/tool-transcript-summary.test.js +0 -141
- package/dist/context/ingest/tools/warehouse-verification/discover-data.tool.test.d.ts +0 -1
- package/dist/context/ingest/tools/warehouse-verification/discover-data.tool.test.js +0 -107
- package/dist/context/ingest/tools/warehouse-verification/entity-details.tool.test.d.ts +0 -1
- package/dist/context/ingest/tools/warehouse-verification/entity-details.tool.test.js +0 -146
- package/dist/context/ingest/tools/warehouse-verification/sql-execution.tool.test.d.ts +0 -1
- package/dist/context/ingest/tools/warehouse-verification/sql-execution.tool.test.js +0 -50
- package/dist/context/ingest/wiki-body-refs.test.d.ts +0 -1
- package/dist/context/ingest/wiki-body-refs.test.js +0 -138
- package/dist/context/ingest/wiki-sl-ref-repair.test.d.ts +0 -1
- package/dist/context/ingest/wiki-sl-ref-repair.test.js +0 -81
- package/dist/context/llm/ai-sdk-runtime.test.d.ts +0 -1
- package/dist/context/llm/ai-sdk-runtime.test.js +0 -308
- package/dist/context/llm/claude-code-env.test.d.ts +0 -1
- package/dist/context/llm/claude-code-env.test.js +0 -17
- package/dist/context/llm/claude-code-models.test.d.ts +0 -1
- package/dist/context/llm/claude-code-models.test.js +0 -15
- package/dist/context/llm/claude-code-runtime.test.d.ts +0 -1
- package/dist/context/llm/claude-code-runtime.test.js +0 -434
- package/dist/context/llm/debug-request-recorder.test.d.ts +0 -1
- package/dist/context/llm/debug-request-recorder.test.js +0 -112
- package/dist/context/llm/embedding-port.test.d.ts +0 -1
- package/dist/context/llm/embedding-port.test.js +0 -34
- package/dist/context/llm/local-config.test.d.ts +0 -1
- package/dist/context/llm/local-config.test.js +0 -164
- package/dist/context/llm/runtime-local-config.test.d.ts +0 -1
- package/dist/context/llm/runtime-local-config.test.js +0 -17
- package/dist/context/llm/runtime-tools.test.d.ts +0 -1
- package/dist/context/llm/runtime-tools.test.js +0 -36
- package/dist/context/mcp/local-project-ports.test.d.ts +0 -1
- package/dist/context/mcp/local-project-ports.test.js +0 -689
- package/dist/context/mcp/server.test.d.ts +0 -1
- package/dist/context/mcp/server.test.js +0 -902
- package/dist/context/memory/local-memory.test.d.ts +0 -1
- package/dist/context/memory/local-memory.test.js +0 -173
- package/dist/context/memory/memory-agent.service.ingest.test.d.ts +0 -1
- package/dist/context/memory/memory-agent.service.ingest.test.js +0 -355
- package/dist/context/memory/memory-agent.service.test.d.ts +0 -1
- package/dist/context/memory/memory-agent.service.test.js +0 -413
- package/dist/context/memory/memory-runs.test.d.ts +0 -1
- package/dist/context/memory/memory-runs.test.js +0 -158
- package/dist/context/memory/memory-runtime-assets.test.d.ts +0 -1
- package/dist/context/memory/memory-runtime-assets.test.js +0 -162
- package/dist/context/project/config.test.d.ts +0 -1
- package/dist/context/project/config.test.js +0 -467
- package/dist/context/project/driver-schemas.test.d.ts +0 -1
- package/dist/context/project/driver-schemas.test.js +0 -125
- package/dist/context/project/local-git-file-store.test.d.ts +0 -1
- package/dist/context/project/local-git-file-store.test.js +0 -71
- package/dist/context/project/mappings-yaml-schema.test.d.ts +0 -1
- package/dist/context/project/mappings-yaml-schema.test.js +0 -79
- package/dist/context/project/project.test.d.ts +0 -1
- package/dist/context/project/project.test.js +0 -55
- package/dist/context/project/setup-config.test.d.ts +0 -1
- package/dist/context/project/setup-config.test.js +0 -38
- package/dist/context/prompts/prompt.service.test.d.ts +0 -1
- package/dist/context/prompts/prompt.service.test.js +0 -43
- package/dist/context/scan/credentials.test.d.ts +0 -1
- package/dist/context/scan/credentials.test.js +0 -162
- package/dist/context/scan/data-dictionary.test.d.ts +0 -1
- package/dist/context/scan/data-dictionary.test.js +0 -92
- package/dist/context/scan/description-generation.test.d.ts +0 -1
- package/dist/context/scan/description-generation.test.js +0 -693
- package/dist/context/scan/embedding-text.test.d.ts +0 -1
- package/dist/context/scan/embedding-text.test.js +0 -36
- package/dist/context/scan/enrichment-state.test.d.ts +0 -1
- package/dist/context/scan/enrichment-state.test.js +0 -147
- package/dist/context/scan/enrichment-summary.test.d.ts +0 -1
- package/dist/context/scan/enrichment-summary.test.js +0 -34
- package/dist/context/scan/enrichment-types.test.d.ts +0 -1
- package/dist/context/scan/enrichment-types.test.js +0 -141
- package/dist/context/scan/entity-details.test.d.ts +0 -1
- package/dist/context/scan/entity-details.test.js +0 -234
- package/dist/context/scan/local-enrichment-artifacts.test.d.ts +0 -1
- package/dist/context/scan/local-enrichment-artifacts.test.js +0 -771
- package/dist/context/scan/local-enrichment.test.d.ts +0 -1
- package/dist/context/scan/local-enrichment.test.js +0 -765
- package/dist/context/scan/local-scan.test.d.ts +0 -1
- package/dist/context/scan/local-scan.test.js +0 -1663
- package/dist/context/scan/local-structural-artifacts.test.d.ts +0 -1
- package/dist/context/scan/local-structural-artifacts.test.js +0 -144
- package/dist/context/scan/relationship-benchmark-report.test.d.ts +0 -1
- package/dist/context/scan/relationship-benchmark-report.test.js +0 -389
- package/dist/context/scan/relationship-benchmarks.test.d.ts +0 -1
- package/dist/context/scan/relationship-benchmarks.test.js +0 -1072
- package/dist/context/scan/relationship-budget.test.d.ts +0 -1
- package/dist/context/scan/relationship-budget.test.js +0 -71
- package/dist/context/scan/relationship-candidates.test.d.ts +0 -1
- package/dist/context/scan/relationship-candidates.test.js +0 -747
- package/dist/context/scan/relationship-composite-candidates.test.d.ts +0 -1
- package/dist/context/scan/relationship-composite-candidates.test.js +0 -69
- package/dist/context/scan/relationship-diagnostics.test.d.ts +0 -1
- package/dist/context/scan/relationship-diagnostics.test.js +0 -333
- package/dist/context/scan/relationship-discovery.test.d.ts +0 -1
- package/dist/context/scan/relationship-discovery.test.js +0 -618
- package/dist/context/scan/relationship-formal-metadata.test.d.ts +0 -1
- package/dist/context/scan/relationship-formal-metadata.test.js +0 -125
- package/dist/context/scan/relationship-graph-resolver.test.d.ts +0 -1
- package/dist/context/scan/relationship-graph-resolver.test.js +0 -604
- package/dist/context/scan/relationship-llm-proposal.test.d.ts +0 -1
- package/dist/context/scan/relationship-llm-proposal.test.js +0 -197
- package/dist/context/scan/relationship-locality.test.d.ts +0 -1
- package/dist/context/scan/relationship-locality.test.js +0 -128
- package/dist/context/scan/relationship-name-similarity.test.d.ts +0 -1
- package/dist/context/scan/relationship-name-similarity.test.js +0 -68
- package/dist/context/scan/relationship-profiling.test.d.ts +0 -1
- package/dist/context/scan/relationship-profiling.test.js +0 -392
- package/dist/context/scan/relationship-scoring.test.d.ts +0 -1
- package/dist/context/scan/relationship-scoring.test.js +0 -86
- package/dist/context/scan/relationship-validation.test.d.ts +0 -1
- package/dist/context/scan/relationship-validation.test.js +0 -455
- package/dist/context/scan/table-ref.test.d.ts +0 -1
- package/dist/context/scan/table-ref.test.js +0 -53
- package/dist/context/scan/type-normalization.test.d.ts +0 -1
- package/dist/context/scan/type-normalization.test.js +0 -21
- package/dist/context/scan/types.test.d.ts +0 -1
- package/dist/context/scan/types.test.js +0 -206
- package/dist/context/scan/warehouse-catalog.test.d.ts +0 -1
- package/dist/context/scan/warehouse-catalog.test.js +0 -158
- package/dist/context/search/backend-conformance.test-utils.d.ts +0 -39
- package/dist/context/search/backend-conformance.test-utils.js +0 -88
- package/dist/context/search/backend-conformance.test-utils.test.d.ts +0 -1
- package/dist/context/search/backend-conformance.test-utils.test.js +0 -408
- package/dist/context/search/discover.test.d.ts +0 -1
- package/dist/context/search/discover.test.js +0 -197
- package/dist/context/search/hybrid-search-core.test.d.ts +0 -1
- package/dist/context/search/hybrid-search-core.test.js +0 -113
- package/dist/context/search/pglite-owner-process.test.d.ts +0 -1
- package/dist/context/search/pglite-owner-process.test.js +0 -273
- package/dist/context/search/pglite-runtime-boundary.test.d.ts +0 -1
- package/dist/context/search/pglite-runtime-boundary.test.js +0 -40
- package/dist/context/search/pglite-spike.test.d.ts +0 -1
- package/dist/context/search/pglite-spike.test.js +0 -249
- package/dist/context/search/query.test.d.ts +0 -1
- package/dist/context/search/query.test.js +0 -23
- package/dist/context/search/rrf.test.d.ts +0 -1
- package/dist/context/search/rrf.test.js +0 -47
- package/dist/context/skills/skills-registry.service.test.d.ts +0 -1
- package/dist/context/skills/skills-registry.service.test.js +0 -161
- package/dist/context/sl/dictionary-search.test.d.ts +0 -1
- package/dist/context/sl/dictionary-search.test.js +0 -204
- package/dist/context/sl/local-query.test.d.ts +0 -1
- package/dist/context/sl/local-query.test.js +0 -283
- package/dist/context/sl/local-sl.test.d.ts +0 -1
- package/dist/context/sl/local-sl.test.js +0 -334
- package/dist/context/sl/pglite-sl-search-prototype.test.d.ts +0 -1
- package/dist/context/sl/pglite-sl-search-prototype.test.js +0 -240
- package/dist/context/sl/schemas.contract.test.d.ts +0 -1
- package/dist/context/sl/schemas.contract.test.js +0 -62
- package/dist/context/sl/semantic-layer.service.test.d.ts +0 -1
- package/dist/context/sl/semantic-layer.service.test.js +0 -1107
- package/dist/context/sl/sl-dictionary-profile.test.d.ts +0 -1
- package/dist/context/sl/sl-dictionary-profile.test.js +0 -88
- package/dist/context/sl/sl-search.service.test.d.ts +0 -1
- package/dist/context/sl/sl-search.service.test.js +0 -256
- package/dist/context/sl/sqlite-sl-sources-index.test.d.ts +0 -1
- package/dist/context/sl/sqlite-sl-sources-index.test.js +0 -175
- package/dist/context/sl/tools/connection-id-schema.test.d.ts +0 -1
- package/dist/context/sl/tools/connection-id-schema.test.js +0 -14
- package/dist/context/sl/tools/sl-discover.tool.test.d.ts +0 -1
- package/dist/context/sl/tools/sl-discover.tool.test.js +0 -72
- package/dist/context/sl/tools/sl-edit-source.tool.test.d.ts +0 -1
- package/dist/context/sl/tools/sl-edit-source.tool.test.js +0 -184
- package/dist/context/sl/tools/sl-read-source.tool.session.test.d.ts +0 -1
- package/dist/context/sl/tools/sl-read-source.tool.session.test.js +0 -55
- package/dist/context/sl/tools/sl-rollback.tool.test.d.ts +0 -1
- package/dist/context/sl/tools/sl-rollback.tool.test.js +0 -57
- package/dist/context/sl/tools/sl-validate.tool.test.d.ts +0 -1
- package/dist/context/sl/tools/sl-validate.tool.test.js +0 -54
- package/dist/context/sl/tools/sl-warehouse-validation.test.d.ts +0 -1
- package/dist/context/sl/tools/sl-warehouse-validation.test.js +0 -136
- package/dist/context/sl/tools/sl-write-source.tool.test.d.ts +0 -1
- package/dist/context/sl/tools/sl-write-source.tool.test.js +0 -307
- package/dist/context/sql-analysis/http-sql-analysis-port.test.d.ts +0 -1
- package/dist/context/sql-analysis/http-sql-analysis-port.test.js +0 -147
- package/dist/context/test/make-local-git-repo.d.ts +0 -10
- package/dist/context/test/make-local-git-repo.js +0 -34
- package/dist/context/tools/context-evidence-tools.test.d.ts +0 -1
- package/dist/context/tools/context-evidence-tools.test.js +0 -486
- package/dist/context/tools/touched-sl-sources.test.d.ts +0 -1
- package/dist/context/tools/touched-sl-sources.test.js +0 -31
- package/dist/context/wiki/knowledge-wiki.service.test.d.ts +0 -1
- package/dist/context/wiki/knowledge-wiki.service.test.js +0 -205
- package/dist/context/wiki/local-knowledge.test.d.ts +0 -1
- package/dist/context/wiki/local-knowledge.test.js +0 -270
- package/dist/context/wiki/sqlite-knowledge-index.test.d.ts +0 -1
- package/dist/context/wiki/sqlite-knowledge-index.test.js +0 -129
- package/dist/context/wiki/tools/wiki-list-tags.tool.test.d.ts +0 -1
- package/dist/context/wiki/tools/wiki-list-tags.tool.test.js +0 -35
- package/dist/context/wiki/tools/wiki-read.tool.test.d.ts +0 -1
- package/dist/context/wiki/tools/wiki-read.tool.test.js +0 -66
- package/dist/context/wiki/tools/wiki-remove.tool.test.d.ts +0 -1
- package/dist/context/wiki/tools/wiki-remove.tool.test.js +0 -95
- package/dist/context/wiki/tools/wiki-search.tool.test.d.ts +0 -1
- package/dist/context/wiki/tools/wiki-search.tool.test.js +0 -35
- package/dist/context/wiki/tools/wiki-write.tool.test.d.ts +0 -1
- package/dist/context/wiki/tools/wiki-write.tool.test.js +0 -264
- package/dist/context/wiki/wiki-ref-validation.test.d.ts +0 -1
- package/dist/context/wiki/wiki-ref-validation.test.js +0 -64
- package/dist/context-build-view.test.d.ts +0 -1
- package/dist/context-build-view.test.js +0 -942
- package/dist/database-tree-picker.test.d.ts +0 -1
- package/dist/database-tree-picker.test.js +0 -188
- package/dist/demo-assets.test.d.ts +0 -1
- package/dist/demo-assets.test.js +0 -121
- package/dist/demo-metrics.test.d.ts +0 -1
- package/dist/demo-metrics.test.js +0 -108
- package/dist/doctor.test.d.ts +0 -1
- package/dist/doctor.test.js +0 -596
- package/dist/embedding-resolution.test.d.ts +0 -1
- package/dist/embedding-resolution.test.js +0 -132
- package/dist/example-smoke.test.d.ts +0 -1
- package/dist/example-smoke.test.js +0 -83
- package/dist/index.test.d.ts +0 -1
- package/dist/index.test.js +0 -1300
- package/dist/ingest-query-executor.test.d.ts +0 -1
- package/dist/ingest-query-executor.test.js +0 -71
- package/dist/ingest-report-file.test.d.ts +0 -1
- package/dist/ingest-report-file.test.js +0 -63
- package/dist/ingest-viz.test.d.ts +0 -1
- package/dist/ingest-viz.test.js +0 -691
- package/dist/ingest.test-utils.d.ts +0 -126
- package/dist/ingest.test-utils.js +0 -629
- package/dist/ingest.test.d.ts +0 -1
- package/dist/ingest.test.js +0 -1568
- package/dist/io/logger.test.d.ts +0 -1
- package/dist/io/logger.test.js +0 -55
- package/dist/io/mode.test.d.ts +0 -1
- package/dist/io/mode.test.js +0 -48
- package/dist/io/print-list.test.d.ts +0 -1
- package/dist/io/print-list.test.js +0 -277
- package/dist/knowledge.test.d.ts +0 -1
- package/dist/knowledge.test.js +0 -198
- package/dist/llm/embedding-health.test.d.ts +0 -1
- package/dist/llm/embedding-health.test.js +0 -72
- package/dist/llm/embedding-provider.test.d.ts +0 -1
- package/dist/llm/embedding-provider.test.js +0 -84
- package/dist/llm/message-builder.test.d.ts +0 -1
- package/dist/llm/message-builder.test.js +0 -127
- package/dist/llm/model-health.test.d.ts +0 -1
- package/dist/llm/model-health.test.js +0 -55
- package/dist/llm/model-provider.test.d.ts +0 -1
- package/dist/llm/model-provider.test.js +0 -246
- package/dist/llm/repair.test.d.ts +0 -1
- package/dist/llm/repair.test.js +0 -78
- package/dist/local-adapters.test.d.ts +0 -1
- package/dist/local-adapters.test.js +0 -166
- package/dist/local-scan-connectors.test.d.ts +0 -1
- package/dist/local-scan-connectors.test.js +0 -92
- package/dist/managed-local-embeddings.test.d.ts +0 -1
- package/dist/managed-local-embeddings.test.js +0 -229
- package/dist/managed-mcp-daemon.test.d.ts +0 -1
- package/dist/managed-mcp-daemon.test.js +0 -187
- package/dist/managed-python-command.test.d.ts +0 -1
- package/dist/managed-python-command.test.js +0 -262
- package/dist/managed-python-daemon.test.d.ts +0 -1
- package/dist/managed-python-daemon.test.js +0 -360
- package/dist/managed-python-http.test.d.ts +0 -1
- package/dist/managed-python-http.test.js +0 -177
- package/dist/managed-python-runtime.test.d.ts +0 -1
- package/dist/managed-python-runtime.test.js +0 -426
- package/dist/mcp-http-server.test.d.ts +0 -1
- package/dist/mcp-http-server.test.js +0 -209
- package/dist/mcp-server-factory.test.d.ts +0 -1
- package/dist/mcp-server-factory.test.js +0 -142
- package/dist/memory-flow-interactive.test.d.ts +0 -1
- package/dist/memory-flow-interactive.test.js +0 -109
- package/dist/memory-flow-tui.test.d.ts +0 -1
- package/dist/memory-flow-tui.test.js +0 -247
- package/dist/next-steps.test.d.ts +0 -1
- package/dist/next-steps.test.js +0 -77
- package/dist/notion-page-picker.test.d.ts +0 -1
- package/dist/notion-page-picker.test.js +0 -244
- package/dist/print-command-tree.test.d.ts +0 -1
- package/dist/print-command-tree.test.js +0 -37
- package/dist/project-dir.test.d.ts +0 -1
- package/dist/project-dir.test.js +0 -124
- package/dist/project-resolver.test.d.ts +0 -1
- package/dist/project-resolver.test.js +0 -49
- package/dist/prompt-navigation.test.d.ts +0 -1
- package/dist/prompt-navigation.test.js +0 -33
- package/dist/proxy-env.test.d.ts +0 -1
- package/dist/proxy-env.test.js +0 -17
- package/dist/public-ingest-copy.test.d.ts +0 -1
- package/dist/public-ingest-copy.test.js +0 -24
- package/dist/public-ingest.test.d.ts +0 -1
- package/dist/public-ingest.test.js +0 -891
- package/dist/runtime-requirements.test.d.ts +0 -1
- package/dist/runtime-requirements.test.js +0 -73
- package/dist/runtime.test.d.ts +0 -1
- package/dist/runtime.test.js +0 -381
- package/dist/scan.test.d.ts +0 -1
- package/dist/scan.test.js +0 -1123
- package/dist/setup-agents.test.d.ts +0 -1
- package/dist/setup-agents.test.js +0 -1028
- package/dist/setup-context.test.d.ts +0 -1
- package/dist/setup-context.test.js +0 -491
- package/dist/setup-databases.test.d.ts +0 -1
- package/dist/setup-databases.test.js +0 -2101
- package/dist/setup-demo-tour.test.d.ts +0 -1
- package/dist/setup-demo-tour.test.js +0 -221
- package/dist/setup-embeddings.test.d.ts +0 -1
- package/dist/setup-embeddings.test.js +0 -436
- package/dist/setup-interrupt.test.d.ts +0 -1
- package/dist/setup-interrupt.test.js +0 -77
- package/dist/setup-models.test.d.ts +0 -1
- package/dist/setup-models.test.js +0 -885
- package/dist/setup-project.test.d.ts +0 -1
- package/dist/setup-project.test.js +0 -209
- package/dist/setup-prompts.test.d.ts +0 -1
- package/dist/setup-prompts.test.js +0 -208
- package/dist/setup-ready-menu.test.d.ts +0 -1
- package/dist/setup-ready-menu.test.js +0 -44
- package/dist/setup-runtime.test.d.ts +0 -1
- package/dist/setup-runtime.test.js +0 -111
- package/dist/setup-secrets.test.d.ts +0 -1
- package/dist/setup-secrets.test.js +0 -30
- package/dist/setup-sources-notion.test.d.ts +0 -1
- package/dist/setup-sources-notion.test.js +0 -109
- package/dist/setup-sources.test.d.ts +0 -1
- package/dist/setup-sources.test.js +0 -1303
- package/dist/setup.test.d.ts +0 -1
- package/dist/setup.test.js +0 -1825
- package/dist/sl.test.d.ts +0 -1
- package/dist/sl.test.js +0 -567
- package/dist/source-mapping.test.d.ts +0 -1
- package/dist/source-mapping.test.js +0 -65
- package/dist/sql.test.d.ts +0 -1
- package/dist/sql.test.js +0 -253
- package/dist/standalone-smoke.test.d.ts +0 -1
- package/dist/standalone-smoke.test.js +0 -250
- package/dist/status-project.test.d.ts +0 -1
- package/dist/status-project.test.js +0 -502
- package/dist/telemetry/command-hook.test.d.ts +0 -1
- package/dist/telemetry/command-hook.test.js +0 -31
- package/dist/telemetry/demo-detect.test.d.ts +0 -1
- package/dist/telemetry/demo-detect.test.js +0 -22
- package/dist/telemetry/emitter.test.d.ts +0 -1
- package/dist/telemetry/emitter.test.js +0 -103
- package/dist/telemetry/events.snapshot.test.d.ts +0 -1
- package/dist/telemetry/events.snapshot.test.js +0 -135
- package/dist/telemetry/events.test.d.ts +0 -1
- package/dist/telemetry/events.test.js +0 -136
- package/dist/telemetry/identity.test.d.ts +0 -1
- package/dist/telemetry/identity.test.js +0 -148
- package/dist/telemetry/project-snapshot.test.d.ts +0 -1
- package/dist/telemetry/project-snapshot.test.js +0 -71
- package/dist/telemetry/schema-writer.test.d.ts +0 -1
- package/dist/telemetry/schema-writer.test.js +0 -23
- package/dist/telemetry/scrubber.test.d.ts +0 -1
- package/dist/telemetry/scrubber.test.js +0 -21
- package/dist/text-ingest.test.d.ts +0 -1
- package/dist/text-ingest.test.js +0 -247
- package/dist/tree-picker-state.test.d.ts +0 -1
- package/dist/tree-picker-state.test.js +0 -303
- package/dist/tree-picker-tui.test.d.ts +0 -1
- package/dist/tree-picker-tui.test.js +0 -248
- package/dist/viz-fallback.test.d.ts +0 -1
- package/dist/viz-fallback.test.js +0 -77
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type KtxTableRefKey } from './table-ref.js';
|
|
2
|
+
import type { KtxTableRef } from './types.js';
|
|
2
3
|
/**
|
|
3
4
|
* Parses the `enabled_tables` field on a connection into a scope of
|
|
4
5
|
* fully-qualified table refs. Returns `null` when the field is absent or
|
|
@@ -6,11 +7,9 @@ import { type KtxTableRefKey } from './table-ref.js';
|
|
|
6
7
|
*
|
|
7
8
|
* Accepted entry forms:
|
|
8
9
|
* "catalog.db.name" — fully qualified
|
|
9
|
-
* "db.name" — schema-qualified (catalog = null
|
|
10
|
+
* "db.name" — schema-qualified (catalog = null)
|
|
10
11
|
* "name" — bare (catalog = db = null; SQLite-shape)
|
|
11
|
-
* { catalog?, db?, name } — escape hatch for identifiers containing dots
|
|
12
|
-
*
|
|
13
|
-
* The setup wizard writes the fully-qualified form going forward; the lenient
|
|
14
|
-
* parser keeps existing project configs working.
|
|
15
12
|
*/
|
|
16
13
|
export declare function resolveEnabledTables(connection: Record<string, unknown> | undefined): ReadonlySet<KtxTableRefKey> | null;
|
|
14
|
+
/** @internal */
|
|
15
|
+
export declare function parseDottedTableEntry(value: string): KtxTableRef | null;
|
|
@@ -6,12 +6,8 @@ import { tableRefSet } from './table-ref.js';
|
|
|
6
6
|
*
|
|
7
7
|
* Accepted entry forms:
|
|
8
8
|
* "catalog.db.name" — fully qualified
|
|
9
|
-
* "db.name" — schema-qualified (catalog = null
|
|
9
|
+
* "db.name" — schema-qualified (catalog = null)
|
|
10
10
|
* "name" — bare (catalog = db = null; SQLite-shape)
|
|
11
|
-
* { catalog?, db?, name } — escape hatch for identifiers containing dots
|
|
12
|
-
*
|
|
13
|
-
* The setup wizard writes the fully-qualified form going forward; the lenient
|
|
14
|
-
* parser keeps existing project configs working.
|
|
15
11
|
*/
|
|
16
12
|
export function resolveEnabledTables(connection) {
|
|
17
13
|
const raw = connection?.enabled_tables;
|
|
@@ -29,22 +25,12 @@ export function resolveEnabledTables(connection) {
|
|
|
29
25
|
}
|
|
30
26
|
function parseEnabledTableEntry(value) {
|
|
31
27
|
if (typeof value === 'string') {
|
|
32
|
-
return
|
|
33
|
-
}
|
|
34
|
-
if (value && typeof value === 'object' && !Array.isArray(value)) {
|
|
35
|
-
const entry = value;
|
|
36
|
-
const name = typeof entry.name === 'string' ? entry.name : null;
|
|
37
|
-
if (!name)
|
|
38
|
-
return null;
|
|
39
|
-
return {
|
|
40
|
-
catalog: typeof entry.catalog === 'string' ? entry.catalog : null,
|
|
41
|
-
db: typeof entry.db === 'string' ? entry.db : null,
|
|
42
|
-
name,
|
|
43
|
-
};
|
|
28
|
+
return parseDottedTableEntry(value);
|
|
44
29
|
}
|
|
45
30
|
return null;
|
|
46
31
|
}
|
|
47
|
-
|
|
32
|
+
/** @internal */
|
|
33
|
+
export function parseDottedTableEntry(value) {
|
|
48
34
|
const trimmed = value.trim();
|
|
49
35
|
if (trimmed.length === 0)
|
|
50
36
|
return null;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getDialectForDriver } from '../connections/dialects.js';
|
|
1
2
|
import { readLocalScanStructuralSnapshot } from './local-structural-artifacts.js';
|
|
2
3
|
function normalize(value) {
|
|
3
4
|
return (value ?? '').toLowerCase();
|
|
@@ -7,50 +8,18 @@ function refsEqual(left, right) {
|
|
|
7
8
|
normalize(left.db) === normalize(right.db) &&
|
|
8
9
|
normalize(left.name) === normalize(right.name));
|
|
9
10
|
}
|
|
10
|
-
function cleanIdentifierPart(part) {
|
|
11
|
-
return part.trim().replace(/^["'`\[]|["'`\]]$/g, '');
|
|
12
|
-
}
|
|
13
|
-
function splitDisplay(display) {
|
|
14
|
-
return display
|
|
15
|
-
.trim()
|
|
16
|
-
.split('.')
|
|
17
|
-
.map(cleanIdentifierPart)
|
|
18
|
-
.filter(Boolean);
|
|
19
|
-
}
|
|
20
|
-
function displayForTable(driver, table) {
|
|
21
|
-
if (driver === 'sqlite') {
|
|
22
|
-
return table.name;
|
|
23
|
-
}
|
|
24
|
-
return [table.catalog, table.db, table.name].filter((part) => Boolean(part)).join('.');
|
|
25
|
-
}
|
|
26
11
|
function tableRef(table) {
|
|
27
12
|
return { catalog: table.catalog, db: table.db, name: table.name };
|
|
28
13
|
}
|
|
29
|
-
function candidateList(
|
|
14
|
+
function candidateList(dialect, tables) {
|
|
30
15
|
return tables
|
|
31
16
|
.map((table) => ({
|
|
32
17
|
tableRef: tableRef(table),
|
|
33
|
-
display:
|
|
18
|
+
display: dialect.formatDisplayRef(table),
|
|
34
19
|
}))
|
|
35
20
|
.sort((left, right) => left.display.localeCompare(right.display));
|
|
36
21
|
}
|
|
37
|
-
function
|
|
38
|
-
const parts = splitDisplay(display);
|
|
39
|
-
if (driver === 'sqlite') {
|
|
40
|
-
return parts.length === 1 ? { catalog: null, db: null, name: parts[0] } : null;
|
|
41
|
-
}
|
|
42
|
-
if (driver === 'bigquery' || driver === 'snowflake' || driver === 'sqlserver') {
|
|
43
|
-
return parts.length === 3 ? { catalog: parts[0], db: parts[1], name: parts[2] } : null;
|
|
44
|
-
}
|
|
45
|
-
if (parts.length === 2) {
|
|
46
|
-
return { catalog: null, db: parts[0], name: parts[1] };
|
|
47
|
-
}
|
|
48
|
-
if (parts.length === 3) {
|
|
49
|
-
return { catalog: parts[0], db: parts[1], name: parts[2] };
|
|
50
|
-
}
|
|
51
|
-
return null;
|
|
52
|
-
}
|
|
53
|
-
function resolveTable(snapshot, input) {
|
|
22
|
+
function resolveTable(snapshot, input, dialect) {
|
|
54
23
|
if (typeof input !== 'string') {
|
|
55
24
|
const table = snapshot.tables.find((candidate) => refsEqual(candidate, input)) ?? null;
|
|
56
25
|
return table
|
|
@@ -59,12 +28,12 @@ function resolveTable(snapshot, input) {
|
|
|
59
28
|
table: null,
|
|
60
29
|
error: {
|
|
61
30
|
code: 'table_not_found',
|
|
62
|
-
message: `Table not found in latest scan: ${
|
|
63
|
-
candidates: candidateList(
|
|
31
|
+
message: `Table not found in latest scan: ${dialect.formatDisplayRef(input)}`,
|
|
32
|
+
candidates: candidateList(dialect, snapshot.tables),
|
|
64
33
|
},
|
|
65
34
|
};
|
|
66
35
|
}
|
|
67
|
-
const parsed = parseDisplayRef(
|
|
36
|
+
const parsed = dialect.parseDisplayRef(input);
|
|
68
37
|
if (parsed) {
|
|
69
38
|
const table = snapshot.tables.find((candidate) => refsEqual(candidate, parsed)) ?? null;
|
|
70
39
|
return table
|
|
@@ -74,7 +43,7 @@ function resolveTable(snapshot, input) {
|
|
|
74
43
|
error: {
|
|
75
44
|
code: 'table_not_found',
|
|
76
45
|
message: `Table not found in latest scan: ${input}`,
|
|
77
|
-
candidates: candidateList(
|
|
46
|
+
candidates: candidateList(dialect, snapshot.tables),
|
|
78
47
|
},
|
|
79
48
|
};
|
|
80
49
|
}
|
|
@@ -88,7 +57,7 @@ function resolveTable(snapshot, input) {
|
|
|
88
57
|
error: {
|
|
89
58
|
code: 'ambiguous_table',
|
|
90
59
|
message: `Table name "${input}" is ambiguous across schemas/catalogs; pass a structured table ref.`,
|
|
91
|
-
candidates: candidateList(
|
|
60
|
+
candidates: candidateList(dialect, byName),
|
|
92
61
|
},
|
|
93
62
|
};
|
|
94
63
|
}
|
|
@@ -97,7 +66,7 @@ function resolveTable(snapshot, input) {
|
|
|
97
66
|
error: {
|
|
98
67
|
code: 'table_not_found',
|
|
99
68
|
message: `Table not found in latest scan: ${input}`,
|
|
100
|
-
candidates: candidateList(
|
|
69
|
+
candidates: candidateList(dialect, snapshot.tables),
|
|
101
70
|
},
|
|
102
71
|
};
|
|
103
72
|
}
|
|
@@ -164,9 +133,10 @@ export function createKtxEntityDetailsService(project) {
|
|
|
164
133
|
};
|
|
165
134
|
}
|
|
166
135
|
const info = snapshotInfo(scan.report, scan.snapshot);
|
|
136
|
+
const dialect = getDialectForDriver(scan.snapshot.driver);
|
|
167
137
|
const results = [];
|
|
168
138
|
for (const entity of input.entities) {
|
|
169
|
-
const resolved = resolveTable(scan.snapshot, entity.table);
|
|
139
|
+
const resolved = resolveTable(scan.snapshot, entity.table, dialect);
|
|
170
140
|
if (!resolved.table) {
|
|
171
141
|
results.push({
|
|
172
142
|
ok: false,
|
|
@@ -191,7 +161,7 @@ export function createKtxEntityDetailsService(project) {
|
|
|
191
161
|
snapshot: info,
|
|
192
162
|
error: {
|
|
193
163
|
code: 'column_not_found',
|
|
194
|
-
message: `Column(s) not found on ${
|
|
164
|
+
message: `Column(s) not found on ${dialect.formatDisplayRef(resolved.table)}: ${missing.join(', ')}`,
|
|
195
165
|
candidates: resolved.table.columns.map((column) => column.name),
|
|
196
166
|
},
|
|
197
167
|
});
|
|
@@ -201,7 +171,7 @@ export function createKtxEntityDetailsService(project) {
|
|
|
201
171
|
ok: true,
|
|
202
172
|
connectionId: input.connectionId,
|
|
203
173
|
tableRef: tableRef(resolved.table),
|
|
204
|
-
display:
|
|
174
|
+
display: dialect.formatDisplayRef(resolved.table),
|
|
205
175
|
kind: resolved.table.kind,
|
|
206
176
|
comment: resolved.table.comment,
|
|
207
177
|
estimatedRows: resolved.table.estimatedRows,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import pLimit from 'p-limit';
|
|
2
|
+
import { getDialectForDriver } from '../connections/dialects.js';
|
|
2
3
|
import { buildDefaultKtxProjectConfig } from '../project/config.js';
|
|
3
4
|
import { KtxDescriptionGenerator } from './description-generation.js';
|
|
4
5
|
import { buildKtxColumnEmbeddingText } from './embedding-text.js';
|
|
@@ -35,6 +36,11 @@ function targetMatchesForeignKey(table, foreignKey) {
|
|
|
35
36
|
(foreignKey.toCatalog === null || table.ref.catalog === foreignKey.toCatalog) &&
|
|
36
37
|
(foreignKey.toDb === null || table.ref.db === foreignKey.toDb));
|
|
37
38
|
}
|
|
39
|
+
function assertConnectorDriverMatchesSnapshot(input) {
|
|
40
|
+
if (input.connector.driver !== input.snapshot.driver) {
|
|
41
|
+
throw new Error(`ktx scan connector driver "${input.connector.driver}" does not match snapshot driver "${input.snapshot.driver}" for connection "${input.connectionId}"`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
38
44
|
function formalRelationshipsFromSnapshot(snapshot, tables) {
|
|
39
45
|
const tableById = new Map(tables.map((table) => [table.id, table]));
|
|
40
46
|
const relationships = [];
|
|
@@ -319,6 +325,12 @@ export async function runLocalScanEnrichment(input) {
|
|
|
319
325
|
detectRelationships: input.detectRelationships,
|
|
320
326
|
}, input.context));
|
|
321
327
|
await progress?.update(0.05, `Loaded schema snapshot with ${snapshot.tables.length} tables`);
|
|
328
|
+
assertConnectorDriverMatchesSnapshot({
|
|
329
|
+
connector: input.connector,
|
|
330
|
+
snapshot,
|
|
331
|
+
connectionId: input.connectionId,
|
|
332
|
+
});
|
|
333
|
+
const dialect = getDialectForDriver(snapshot.driver);
|
|
322
334
|
const now = input.now ?? (() => new Date());
|
|
323
335
|
const state = completedKtxScanEnrichmentStateSummary();
|
|
324
336
|
const syncId = input.syncId ?? input.context.runId;
|
|
@@ -420,7 +432,7 @@ export async function runLocalScanEnrichment(input) {
|
|
|
420
432
|
await relationshipProgress?.update(0, 'Detecting relationships');
|
|
421
433
|
const detection = await discoverKtxRelationships({
|
|
422
434
|
connectionId: input.connectionId,
|
|
423
|
-
|
|
435
|
+
dialect,
|
|
424
436
|
connector: input.connector,
|
|
425
437
|
schema,
|
|
426
438
|
context: input.context,
|
|
@@ -42,17 +42,15 @@ const LOCAL_AUTHOR_EMAIL = 'ktx@example.com';
|
|
|
42
42
|
function normalizeDriver(driver) {
|
|
43
43
|
const normalized = (driver ?? '').toLowerCase();
|
|
44
44
|
if (normalized === 'postgres' ||
|
|
45
|
-
normalized === 'postgresql' ||
|
|
46
45
|
normalized === 'sqlite' ||
|
|
47
|
-
normalized === 'sqlite3' ||
|
|
48
46
|
normalized === 'mysql' ||
|
|
49
47
|
normalized === 'clickhouse' ||
|
|
50
48
|
normalized === 'sqlserver' ||
|
|
51
49
|
normalized === 'bigquery' ||
|
|
52
50
|
normalized === 'snowflake') {
|
|
53
|
-
return normalized
|
|
51
|
+
return normalized;
|
|
54
52
|
}
|
|
55
|
-
throw new Error(`Standalone ktx scan supports postgres/
|
|
53
|
+
throw new Error(`Standalone ktx scan supports postgres/sqlite/mysql/clickhouse/sqlserver/bigquery/snowflake in this phase, received "${driver ?? 'unknown'}"`);
|
|
56
54
|
}
|
|
57
55
|
function tablePathCount(paths) {
|
|
58
56
|
return paths.filter((path) => path.startsWith('tables/') && path.endsWith('.json')).length;
|
|
@@ -311,6 +309,9 @@ export async function runLocalScan(options) {
|
|
|
311
309
|
extractedAtFallback: report.createdAt,
|
|
312
310
|
});
|
|
313
311
|
enrichmentSnapshot = rawSnapshot;
|
|
312
|
+
if (rawSnapshot.warnings?.length) {
|
|
313
|
+
report.warnings.push(...rawSnapshot.warnings);
|
|
314
|
+
}
|
|
314
315
|
const manifestArtifacts = await writeLocalScanManifestShards({
|
|
315
316
|
project: options.project,
|
|
316
317
|
connectionId: options.connectionId,
|
|
@@ -4,6 +4,55 @@ function isRecord(value) {
|
|
|
4
4
|
function metadataRecord(value) {
|
|
5
5
|
return isRecord(value) ? value : {};
|
|
6
6
|
}
|
|
7
|
+
const scanWarningCodes = new Set([
|
|
8
|
+
'connector_capability_missing',
|
|
9
|
+
'sampling_failed',
|
|
10
|
+
'statistics_failed',
|
|
11
|
+
'llm_unavailable',
|
|
12
|
+
'embedding_unavailable',
|
|
13
|
+
'scan_enrichment_backend_not_configured',
|
|
14
|
+
'relationship_validation_failed',
|
|
15
|
+
'relationship_llm_invalid_reference',
|
|
16
|
+
'relationship_llm_proposal_failed',
|
|
17
|
+
'credential_redacted',
|
|
18
|
+
'enrichment_failed',
|
|
19
|
+
'description_fallback_used',
|
|
20
|
+
'constraint_discovery_unauthorized',
|
|
21
|
+
]);
|
|
22
|
+
function parseWarning(rawWarning, path) {
|
|
23
|
+
if (!isRecord(rawWarning) ||
|
|
24
|
+
typeof rawWarning.code !== 'string' ||
|
|
25
|
+
!scanWarningCodes.has(rawWarning.code) ||
|
|
26
|
+
typeof rawWarning.message !== 'string' ||
|
|
27
|
+
typeof rawWarning.recoverable !== 'boolean') {
|
|
28
|
+
throw new Error(`Invalid KTX schema warning artifact: ${path}`);
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
code: rawWarning.code,
|
|
32
|
+
message: rawWarning.message,
|
|
33
|
+
recoverable: rawWarning.recoverable,
|
|
34
|
+
...(typeof rawWarning.table === 'string' ? { table: rawWarning.table } : {}),
|
|
35
|
+
...(typeof rawWarning.column === 'string' ? { column: rawWarning.column } : {}),
|
|
36
|
+
...(isRecord(rawWarning.metadata) ? { metadata: rawWarning.metadata } : {}),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
async function readWarnings(input) {
|
|
40
|
+
const path = `${input.rawSourcesDir}/warnings.json`;
|
|
41
|
+
try {
|
|
42
|
+
const warningRaw = await input.project.fileStore.readFile(path);
|
|
43
|
+
const parsed = JSON.parse(warningRaw.content);
|
|
44
|
+
if (!isRecord(parsed) || !Array.isArray(parsed.warnings)) {
|
|
45
|
+
throw new Error(`Invalid KTX schema warnings artifact: ${path}`);
|
|
46
|
+
}
|
|
47
|
+
return parsed.warnings.map((warning) => parseWarning(warning, path));
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
if (error instanceof Error && /not found|ENOENT|no such file/i.test(error.message)) {
|
|
51
|
+
return [];
|
|
52
|
+
}
|
|
53
|
+
throw error;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
7
56
|
function optionalStringOrNull(value) {
|
|
8
57
|
if (value === undefined) {
|
|
9
58
|
return undefined;
|
|
@@ -75,6 +124,7 @@ export async function readLocalScanStructuralSnapshot(input) {
|
|
|
75
124
|
const tableRaw = await input.project.fileStore.readFile(path);
|
|
76
125
|
tables.push(parseTable(tableRaw.content, path));
|
|
77
126
|
}
|
|
127
|
+
const warnings = await readWarnings(input);
|
|
78
128
|
return {
|
|
79
129
|
connectionId: typeof connection.connectionId === 'string' ? connection.connectionId : input.connectionId,
|
|
80
130
|
driver: input.driver,
|
|
@@ -82,5 +132,6 @@ export async function readLocalScanStructuralSnapshot(input) {
|
|
|
82
132
|
scope: isRecord(connection.scope) ? connection.scope : {},
|
|
83
133
|
metadata: metadataRecord(connection.metadata),
|
|
84
134
|
tables,
|
|
135
|
+
warnings,
|
|
85
136
|
};
|
|
86
137
|
}
|
|
@@ -6,6 +6,7 @@ import { gunzipSync } from 'node:zlib';
|
|
|
6
6
|
import Database from 'better-sqlite3';
|
|
7
7
|
import YAML from 'yaml';
|
|
8
8
|
import { z } from 'zod';
|
|
9
|
+
import { getDialectForDriver } from '../connections/dialects.js';
|
|
9
10
|
import { snapshotToKtxEnrichedSchema } from './local-enrichment.js';
|
|
10
11
|
import { generateKtxRelationshipDiscoveryCandidates, mergeKtxRelationshipDiscoveryCandidates, } from './relationship-candidates.js';
|
|
11
12
|
import { proposeKtxRelationshipCandidatesWithLlm } from './relationship-llm-proposal.js';
|
|
@@ -318,6 +319,7 @@ export function ktxRelationshipBenchmarkDetectorWithLlm(llmRuntime) {
|
|
|
318
319
|
const formalLinks = formalMetadata.accepted.map((relationship) => relationshipToBenchmarkLink(relationship));
|
|
319
320
|
const acceptedKeys = new Set(formalLinks.map(fkKey));
|
|
320
321
|
const sqliteDataAvailable = Boolean(input.dataPath && input.snapshot.driver === 'sqlite');
|
|
322
|
+
const dialect = getDialectForDriver(input.snapshot.driver);
|
|
321
323
|
const profilingExecutor = sqliteDataAvailable && input.mode !== 'profiling_disabled'
|
|
322
324
|
? new KtxRelationshipBenchmarkSqliteExecutor(input.dataPath)
|
|
323
325
|
: null;
|
|
@@ -330,7 +332,7 @@ export function ktxRelationshipBenchmarkDetectorWithLlm(llmRuntime) {
|
|
|
330
332
|
})
|
|
331
333
|
: await profileKtxRelationshipSchema({
|
|
332
334
|
connectionId: input.snapshot.connectionId,
|
|
333
|
-
|
|
335
|
+
dialect,
|
|
334
336
|
schema: input.schema,
|
|
335
337
|
executor: profilingExecutor,
|
|
336
338
|
ctx: { runId: `relationship-benchmark:${input.fixtureId}:${input.mode}:profile` },
|
|
@@ -358,7 +360,7 @@ export function ktxRelationshipBenchmarkDetectorWithLlm(llmRuntime) {
|
|
|
358
360
|
: Math.max(0, input.validationBudget - profiles.queryCount);
|
|
359
361
|
const validatedBroadCandidates = await validateKtxRelationshipDiscoveryCandidates({
|
|
360
362
|
connectionId: input.snapshot.connectionId,
|
|
361
|
-
|
|
363
|
+
dialect,
|
|
362
364
|
candidates,
|
|
363
365
|
profiles,
|
|
364
366
|
executor: validationExecutor,
|
|
@@ -374,7 +376,7 @@ export function ktxRelationshipBenchmarkDetectorWithLlm(llmRuntime) {
|
|
|
374
376
|
input.mode !== 'validation_disabled'
|
|
375
377
|
? await discoverKtxCompositeRelationships({
|
|
376
378
|
connectionId: input.snapshot.connectionId,
|
|
377
|
-
|
|
379
|
+
dialect,
|
|
378
380
|
schema: input.schema,
|
|
379
381
|
profiles,
|
|
380
382
|
executor: validationExecutor,
|
|
@@ -445,6 +447,7 @@ export function currentKtxRelationshipBenchmarkDetector() {
|
|
|
445
447
|
const formalLinks = formalMetadata.accepted.map((relationship) => relationshipToBenchmarkLink(relationship));
|
|
446
448
|
const acceptedKeys = new Set(formalLinks.map(fkKey));
|
|
447
449
|
const sqliteDataAvailable = Boolean(input.dataPath && input.snapshot.driver === 'sqlite');
|
|
450
|
+
const dialect = getDialectForDriver(input.snapshot.driver);
|
|
448
451
|
const profilingExecutor = sqliteDataAvailable && input.mode !== 'profiling_disabled'
|
|
449
452
|
? new KtxRelationshipBenchmarkSqliteExecutor(input.dataPath)
|
|
450
453
|
: null;
|
|
@@ -457,7 +460,7 @@ export function currentKtxRelationshipBenchmarkDetector() {
|
|
|
457
460
|
})
|
|
458
461
|
: await profileKtxRelationshipSchema({
|
|
459
462
|
connectionId: input.snapshot.connectionId,
|
|
460
|
-
|
|
463
|
+
dialect,
|
|
461
464
|
schema: input.schema,
|
|
462
465
|
executor: profilingExecutor,
|
|
463
466
|
ctx: { runId: `relationship-benchmark:${input.fixtureId}:${input.mode}:profile` },
|
|
@@ -473,7 +476,7 @@ export function currentKtxRelationshipBenchmarkDetector() {
|
|
|
473
476
|
: Math.max(0, input.validationBudget - profiles.queryCount);
|
|
474
477
|
const validatedBroadCandidates = await validateKtxRelationshipDiscoveryCandidates({
|
|
475
478
|
connectionId: input.snapshot.connectionId,
|
|
476
|
-
|
|
479
|
+
dialect,
|
|
477
480
|
candidates: broadRelationshipCandidates,
|
|
478
481
|
profiles,
|
|
479
482
|
executor: validationExecutor,
|
|
@@ -489,7 +492,7 @@ export function currentKtxRelationshipBenchmarkDetector() {
|
|
|
489
492
|
input.mode !== 'validation_disabled'
|
|
490
493
|
? await discoverKtxCompositeRelationships({
|
|
491
494
|
connectionId: input.snapshot.connectionId,
|
|
492
|
-
|
|
495
|
+
dialect,
|
|
493
496
|
schema: input.schema,
|
|
494
497
|
profiles,
|
|
495
498
|
executor: validationExecutor,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { KtxDialect } from '../connections/dialects.js';
|
|
1
2
|
import type { KtxEnrichedSchema, KtxRelationshipType } from './enrichment-types.js';
|
|
2
3
|
import { type KtxRelationshipProfileArtifact, type KtxRelationshipReadOnlyExecutor } from './relationship-profiling.js';
|
|
3
|
-
import type {
|
|
4
|
+
import type { KtxScanContext, KtxTableRef } from './types.js';
|
|
4
5
|
type KtxCompositeRelationshipStatus = 'accepted' | 'review' | 'rejected';
|
|
5
6
|
interface KtxCompositeRelationshipTupleEndpoint {
|
|
6
7
|
tableId: string;
|
|
@@ -46,7 +47,7 @@ export interface KtxCompositeRelationshipCandidate {
|
|
|
46
47
|
}
|
|
47
48
|
export interface DiscoverKtxCompositeRelationshipsInput {
|
|
48
49
|
connectionId: string;
|
|
49
|
-
|
|
50
|
+
dialect: KtxDialect;
|
|
50
51
|
schema: KtxEnrichedSchema;
|
|
51
52
|
profiles: KtxRelationshipProfileArtifact;
|
|
52
53
|
executor: KtxRelationshipReadOnlyExecutor | null;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { formatKtxRelationshipTableRef, quoteKtxRelationshipIdentifier, } from './relationship-profiling.js';
|
|
2
1
|
const KEY_NAME_PARTS = new Set(['id', 'key', 'code', 'number', 'num', 'line', 'warehouse', 'account', 'order']);
|
|
3
2
|
const DEFAULT_MAX_COMPOSITE_WIDTH = 3;
|
|
4
3
|
const DEFAULT_MAX_COLUMNS_PER_TABLE = 8;
|
|
@@ -113,51 +112,40 @@ function numberAt(result, header) {
|
|
|
113
112
|
}
|
|
114
113
|
return 0;
|
|
115
114
|
}
|
|
116
|
-
function
|
|
117
|
-
|
|
118
|
-
return ` TOP (${Math.max(1, Math.floor(limit))})`;
|
|
119
|
-
}
|
|
120
|
-
return '';
|
|
121
|
-
}
|
|
122
|
-
function limitSql(driver, limit) {
|
|
123
|
-
if (driver === 'sqlserver') {
|
|
124
|
-
return '';
|
|
125
|
-
}
|
|
126
|
-
return ` LIMIT ${Math.max(1, Math.floor(limit))}`;
|
|
115
|
+
function sqlSuffix(fragment) {
|
|
116
|
+
return fragment ? ` ${fragment}` : '';
|
|
127
117
|
}
|
|
128
|
-
function aliasedTupleSelect(
|
|
129
|
-
return columns
|
|
130
|
-
.map((column, index) => `${quoteKtxRelationshipIdentifier(driver, column)} AS c${index}`)
|
|
131
|
-
.join(', ');
|
|
118
|
+
function aliasedTupleSelect(dialect, columns) {
|
|
119
|
+
return columns.map((column, index) => `${dialect.quoteIdentifier(column)} AS c${index}`).join(', ');
|
|
132
120
|
}
|
|
133
|
-
function nonNullPredicate(
|
|
134
|
-
return columns.map((column) => `${
|
|
121
|
+
function nonNullPredicate(dialect, columns) {
|
|
122
|
+
return columns.map((column) => `${dialect.quoteIdentifier(column)} IS NOT NULL`).join(' AND ');
|
|
135
123
|
}
|
|
136
124
|
function tupleEquality(columns) {
|
|
137
125
|
return Array.from({ length: columns }, (_, index) => `child_values.c${index} = parent_values.c${index}`).join(' AND ');
|
|
138
126
|
}
|
|
139
127
|
function buildTupleDistinctSql(input) {
|
|
140
|
-
const tableSql =
|
|
128
|
+
const tableSql = input.dialect.formatTableName(input.table);
|
|
141
129
|
return [
|
|
142
130
|
'WITH tuple_values AS (',
|
|
143
|
-
`SELECT DISTINCT ${aliasedTupleSelect(input.
|
|
144
|
-
`WHERE ${nonNullPredicate(input.
|
|
131
|
+
`SELECT DISTINCT ${aliasedTupleSelect(input.dialect, input.columns)} FROM ${tableSql}`,
|
|
132
|
+
`WHERE ${nonNullPredicate(input.dialect, input.columns)}`,
|
|
145
133
|
')',
|
|
146
134
|
'SELECT COUNT(*) AS distinct_count FROM tuple_values',
|
|
147
135
|
].join(' ');
|
|
148
136
|
}
|
|
149
137
|
function buildCompositeCoverageSql(input) {
|
|
150
|
-
const childTableSql =
|
|
151
|
-
const parentTableSql =
|
|
152
|
-
const top =
|
|
153
|
-
const limit =
|
|
138
|
+
const childTableSql = input.dialect.formatTableName(input.childTable);
|
|
139
|
+
const parentTableSql = input.dialect.formatTableName(input.parentTable);
|
|
140
|
+
const top = input.dialect.getTopClause(input.maxDistinctSourceValues);
|
|
141
|
+
const limit = sqlSuffix(input.dialect.getLimitOffsetClause(input.maxDistinctSourceValues));
|
|
154
142
|
return [
|
|
155
143
|
'WITH child_values AS (',
|
|
156
|
-
`SELECT DISTINCT${top} ${aliasedTupleSelect(input.
|
|
157
|
-
`WHERE ${nonNullPredicate(input.
|
|
144
|
+
`SELECT DISTINCT${top ? ` ${top}` : ''} ${aliasedTupleSelect(input.dialect, input.childColumns)} FROM ${childTableSql}`,
|
|
145
|
+
`WHERE ${nonNullPredicate(input.dialect, input.childColumns)}${limit}`,
|
|
158
146
|
'), parent_values AS (',
|
|
159
|
-
`SELECT DISTINCT ${aliasedTupleSelect(input.
|
|
160
|
-
`WHERE ${nonNullPredicate(input.
|
|
147
|
+
`SELECT DISTINCT ${aliasedTupleSelect(input.dialect, input.parentColumns)} FROM ${parentTableSql}`,
|
|
148
|
+
`WHERE ${nonNullPredicate(input.dialect, input.parentColumns)}`,
|
|
161
149
|
')',
|
|
162
150
|
'SELECT',
|
|
163
151
|
'(SELECT COUNT(*) FROM child_values) AS child_distinct,',
|
|
@@ -216,7 +204,7 @@ async function detectCompositePrimaryKeys(input) {
|
|
|
216
204
|
const result = await input.executor.executeReadOnly({
|
|
217
205
|
connectionId: input.connectionId,
|
|
218
206
|
sql: buildTupleDistinctSql({
|
|
219
|
-
|
|
207
|
+
dialect: input.dialect,
|
|
220
208
|
table: input.table.ref,
|
|
221
209
|
columns: columnNames,
|
|
222
210
|
}),
|
|
@@ -268,7 +256,7 @@ async function validateCompositeRelationship(input) {
|
|
|
268
256
|
const result = await input.executor.executeReadOnly({
|
|
269
257
|
connectionId: input.connectionId,
|
|
270
258
|
sql: buildCompositeCoverageSql({
|
|
271
|
-
|
|
259
|
+
dialect: input.dialect,
|
|
272
260
|
childTable: input.sourceTable.ref,
|
|
273
261
|
childColumns: input.sourceColumns.map((column) => column.name),
|
|
274
262
|
parentTable: input.targetTable.ref,
|
|
@@ -356,7 +344,7 @@ export async function discoverKtxCompositeRelationships(input) {
|
|
|
356
344
|
for (const table of tables) {
|
|
357
345
|
const result = await detectCompositePrimaryKeys({
|
|
358
346
|
connectionId: input.connectionId,
|
|
359
|
-
|
|
347
|
+
dialect: input.dialect,
|
|
360
348
|
table,
|
|
361
349
|
profiles: input.profiles,
|
|
362
350
|
executor: input.executor,
|
|
@@ -396,7 +384,7 @@ export async function discoverKtxCompositeRelationships(input) {
|
|
|
396
384
|
}
|
|
397
385
|
const result = await validateCompositeRelationship({
|
|
398
386
|
connectionId: input.connectionId,
|
|
399
|
-
|
|
387
|
+
dialect: input.dialect,
|
|
400
388
|
sourceTable,
|
|
401
389
|
sourceColumns,
|
|
402
390
|
targetKey,
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import type { KtxLlmRuntimePort } from '../../context/llm/runtime-port.js';
|
|
2
|
+
import type { KtxDialect } from '../connections/dialects.js';
|
|
2
3
|
import type { KtxScanRelationshipConfig } from '../project/config.js';
|
|
3
4
|
import type { KtxEnrichedSchema, KtxRelationshipUpdate } from './enrichment-types.js';
|
|
4
5
|
import { type KtxCompositeRelationshipCandidate } from './relationship-composite-candidates.js';
|
|
5
6
|
import { type KtxResolvedRelationshipDiscoveryCandidate } from './relationship-graph-resolver.js';
|
|
6
7
|
import { type KtxRelationshipProfileArtifact } from './relationship-profiling.js';
|
|
7
|
-
import type {
|
|
8
|
+
import type { KtxScanConnector, KtxScanContext, KtxScanEnrichmentSummary, KtxScanRelationshipSummary, KtxScanWarning } from './types.js';
|
|
8
9
|
export interface DiscoverKtxRelationshipsInput {
|
|
9
10
|
connectionId: string;
|
|
10
|
-
|
|
11
|
+
dialect: KtxDialect;
|
|
11
12
|
connector: KtxScanConnector;
|
|
12
13
|
schema: KtxEnrichedSchema;
|
|
13
14
|
context: KtxScanContext;
|
|
@@ -68,7 +68,7 @@ async function detectCompositeRelationships(input) {
|
|
|
68
68
|
try {
|
|
69
69
|
const compositeDetection = await discoverKtxCompositeRelationships({
|
|
70
70
|
connectionId: input.connectionId,
|
|
71
|
-
|
|
71
|
+
dialect: input.dialect,
|
|
72
72
|
schema: input.schema,
|
|
73
73
|
profiles: input.profile,
|
|
74
74
|
executor: input.executor,
|
|
@@ -143,7 +143,7 @@ export async function discoverKtxRelationships(input) {
|
|
|
143
143
|
const profileCache = createKtxRelationshipProfileCache();
|
|
144
144
|
const profile = await profileKtxRelationshipSchema({
|
|
145
145
|
connectionId: input.connectionId,
|
|
146
|
-
|
|
146
|
+
dialect: input.dialect,
|
|
147
147
|
schema: input.schema,
|
|
148
148
|
executor,
|
|
149
149
|
ctx: input.context,
|
|
@@ -173,7 +173,7 @@ export async function discoverKtxRelationships(input) {
|
|
|
173
173
|
warnings.push(...llmProposalResult.warnings);
|
|
174
174
|
const validated = await validateKtxRelationshipDiscoveryCandidates({
|
|
175
175
|
connectionId: input.connectionId,
|
|
176
|
-
|
|
176
|
+
dialect: input.dialect,
|
|
177
177
|
candidates,
|
|
178
178
|
profiles: profile,
|
|
179
179
|
executor,
|
|
@@ -199,7 +199,7 @@ export async function discoverKtxRelationships(input) {
|
|
|
199
199
|
});
|
|
200
200
|
const compositeRelationships = await detectCompositeRelationships({
|
|
201
201
|
connectionId: input.connectionId,
|
|
202
|
-
|
|
202
|
+
dialect: input.dialect,
|
|
203
203
|
schema: input.schema,
|
|
204
204
|
profile,
|
|
205
205
|
executor,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { KtxDialect } from '../connections/dialects.js';
|
|
1
2
|
import type { KtxEnrichedSchema } from './enrichment-types.js';
|
|
2
3
|
import type { KtxConnectionDriver, KtxQueryResult, KtxReadOnlyQueryInput, KtxScanContext, KtxTableRef } from './types.js';
|
|
3
4
|
export interface KtxRelationshipReadOnlyExecutor {
|
|
@@ -41,7 +42,7 @@ export interface KtxRelationshipProfileCache {
|
|
|
41
42
|
}
|
|
42
43
|
export interface ProfileKtxRelationshipSchemaInput {
|
|
43
44
|
connectionId: string;
|
|
44
|
-
|
|
45
|
+
dialect: KtxDialect;
|
|
45
46
|
schema: KtxEnrichedSchema;
|
|
46
47
|
executor: KtxRelationshipReadOnlyExecutor | null;
|
|
47
48
|
ctx: KtxScanContext;
|
|
@@ -51,7 +52,5 @@ export interface ProfileKtxRelationshipSchemaInput {
|
|
|
51
52
|
cache?: KtxRelationshipProfileCache;
|
|
52
53
|
}
|
|
53
54
|
export declare function createKtxRelationshipProfileCache(): KtxRelationshipProfileCache;
|
|
54
|
-
export declare function quoteKtxRelationshipIdentifier(driver: KtxConnectionDriver, identifier: string): string;
|
|
55
|
-
export declare function formatKtxRelationshipTableRef(driver: KtxConnectionDriver, table: KtxTableRef): string;
|
|
56
55
|
export declare function profileKtxRelationshipSchema(input: ProfileKtxRelationshipSchemaInput): Promise<KtxRelationshipProfileArtifact>;
|
|
57
56
|
export {};
|