@kaelio/ktx 0.5.0 → 0.7.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.
Files changed (875) hide show
  1. package/assets/python/{kaelio_ktx-0.5.0-py3-none-any.whl → kaelio_ktx-0.7.0-py3-none-any.whl} +0 -0
  2. package/assets/python/manifest.json +4 -4
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/clack.d.ts +8 -0
  5. package/dist/clack.js +14 -0
  6. package/dist/connection.js +2 -9
  7. package/dist/connectors/bigquery/connector.d.ts +6 -1
  8. package/dist/connectors/bigquery/connector.js +38 -9
  9. package/dist/connectors/bigquery/dialect.d.ts +11 -9
  10. package/dist/connectors/bigquery/dialect.js +25 -45
  11. package/dist/connectors/clickhouse/connector.d.ts +5 -0
  12. package/dist/connectors/clickhouse/connector.js +36 -3
  13. package/dist/connectors/clickhouse/dialect.d.ts +11 -12
  14. package/dist/connectors/clickhouse/dialect.js +25 -100
  15. package/dist/connectors/mysql/connector.d.ts +7 -1
  16. package/dist/connectors/mysql/connector.js +67 -9
  17. package/dist/connectors/mysql/dialect.d.ts +11 -9
  18. package/dist/connectors/mysql/dialect.js +25 -43
  19. package/dist/connectors/postgres/connector.d.ts +6 -0
  20. package/dist/connectors/postgres/connector.js +67 -12
  21. package/dist/connectors/postgres/dialect.d.ts +11 -9
  22. package/dist/connectors/postgres/dialect.js +26 -35
  23. package/dist/connectors/snowflake/connector.d.ts +8 -3
  24. package/dist/connectors/snowflake/connector.js +39 -20
  25. package/dist/connectors/snowflake/dialect.d.ts +11 -9
  26. package/dist/connectors/snowflake/dialect.js +25 -24
  27. package/dist/connectors/sqlite/connector.d.ts +3 -1
  28. package/dist/connectors/sqlite/connector.js +23 -3
  29. package/dist/connectors/sqlite/dialect.d.ts +11 -9
  30. package/dist/connectors/sqlite/dialect.js +25 -29
  31. package/dist/connectors/sqlserver/connector.d.ts +6 -0
  32. package/dist/connectors/sqlserver/connector.js +56 -9
  33. package/dist/connectors/sqlserver/dialect.d.ts +11 -10
  34. package/dist/connectors/sqlserver/dialect.js +24 -40
  35. package/dist/context/connections/connection-type.d.ts +1 -1
  36. package/dist/context/connections/dialect-helpers.d.ts +9 -0
  37. package/dist/context/connections/dialect-helpers.js +67 -0
  38. package/dist/context/connections/dialects.d.ts +23 -5
  39. package/dist/context/connections/dialects.js +18 -56
  40. package/dist/context/connections/drivers.d.ts +23 -0
  41. package/dist/context/connections/drivers.js +171 -0
  42. package/dist/context/connections/local-query-executor.js +25 -7
  43. package/dist/context/connections/local-warehouse-descriptor.js +0 -2
  44. package/dist/context/connections/postgres-query-executor.js +1 -1
  45. package/dist/context/connections/sqlite-query-executor.js +1 -1
  46. package/dist/context/ingest/adapters/historic-sql/chunk-unified.js +1 -1
  47. package/dist/context/ingest/adapters/historic-sql/connection-dialect.js +11 -7
  48. package/dist/context/ingest/adapters/historic-sql/evidence-tool.d.ts +1 -1
  49. package/dist/context/ingest/adapters/historic-sql/evidence-tool.js +8 -5
  50. package/dist/context/ingest/adapters/historic-sql/evidence.d.ts +4 -4
  51. package/dist/context/ingest/adapters/historic-sql/evidence.js +2 -2
  52. package/dist/context/ingest/adapters/historic-sql/projection.js +5 -2
  53. package/dist/context/ingest/adapters/live-database/daemon-introspection.js +1 -1
  54. package/dist/context/ingest/adapters/live-database/stage.d.ts +2 -0
  55. package/dist/context/ingest/adapters/live-database/stage.js +9 -0
  56. package/dist/context/ingest/adapters/looker/mapping.d.ts +0 -3
  57. package/dist/context/ingest/adapters/looker/mapping.js +0 -3
  58. package/dist/context/ingest/adapters/looker/types.d.ts +1 -1
  59. package/dist/context/ingest/historic-sql-probes/bigquery-runner.d.ts +34 -0
  60. package/dist/context/ingest/historic-sql-probes/bigquery-runner.js +99 -0
  61. package/dist/context/ingest/historic-sql-probes/postgres-runner.d.ts +26 -0
  62. package/dist/context/ingest/historic-sql-probes/postgres-runner.js +76 -0
  63. package/dist/context/ingest/historic-sql-probes/snowflake-runner.d.ts +29 -0
  64. package/dist/context/ingest/historic-sql-probes/snowflake-runner.js +62 -0
  65. package/dist/context/ingest/historic-sql-probes.d.ts +46 -0
  66. package/dist/context/ingest/historic-sql-probes.js +62 -0
  67. package/dist/context/ingest/local-adapters.js +0 -1
  68. package/dist/context/ingest/local-ingest.js +1 -1
  69. package/dist/context/llm/claude-code-runtime.js +16 -1
  70. package/dist/context/mcp/context-tools.js +11 -48
  71. package/dist/context/mcp/local-project-ports.js +0 -3
  72. package/dist/context/project/config.d.ts +0 -8
  73. package/dist/context/project/driver-schemas.d.ts +0 -4
  74. package/dist/context/project/driver-schemas.js +0 -2
  75. package/dist/context/scan/constraint-discovery.d.ts +19 -0
  76. package/dist/context/scan/constraint-discovery.js +23 -0
  77. package/dist/context/scan/enabled-tables.d.ts +4 -5
  78. package/dist/context/scan/enabled-tables.js +4 -18
  79. package/dist/context/scan/entity-details.js +14 -44
  80. package/dist/context/scan/local-enrichment.js +13 -1
  81. package/dist/context/scan/local-scan.js +5 -4
  82. package/dist/context/scan/local-structural-artifacts.js +51 -0
  83. package/dist/context/scan/relationship-benchmarks.js +9 -6
  84. package/dist/context/scan/relationship-composite-candidates.d.ts +3 -2
  85. package/dist/context/scan/relationship-composite-candidates.js +21 -33
  86. package/dist/context/scan/relationship-discovery.d.ts +3 -2
  87. package/dist/context/scan/relationship-discovery.js +4 -4
  88. package/dist/context/scan/relationship-profiling.d.ts +2 -3
  89. package/dist/context/scan/relationship-profiling.js +25 -94
  90. package/dist/context/scan/relationship-validation.d.ts +3 -2
  91. package/dist/context/scan/relationship-validation.js +12 -22
  92. package/dist/context/scan/table-ref.d.ts +1 -2
  93. package/dist/context/scan/table-ref.js +3 -4
  94. package/dist/context/scan/types.d.ts +6 -2
  95. package/dist/context/scan/warehouse-catalog.js +31 -48
  96. package/dist/context/sl/local-query.js +0 -3
  97. package/dist/context/sl/local-sl.js +0 -13
  98. package/dist/context/sl/semantic-layer.service.js +1 -4
  99. package/dist/context/tools/context-candidate-write.tool.d.ts +2 -2
  100. package/dist/context-build-view.js +1 -1
  101. package/dist/database-tree-picker.js +14 -7
  102. package/dist/error-message.d.ts +1 -0
  103. package/dist/error-message.js +29 -0
  104. package/dist/ingest-depth.js +0 -1
  105. package/dist/ingest.js +2 -2
  106. package/dist/llm/embedding-health.js +2 -2
  107. package/dist/local-scan-connectors.js +13 -56
  108. package/dist/managed-local-embeddings.js +2 -1
  109. package/dist/managed-python-daemon.d.ts +5 -0
  110. package/dist/managed-python-daemon.js +29 -9
  111. package/dist/managed-python-http.js +2 -1
  112. package/dist/public-ingest.js +1 -6
  113. package/dist/runtime-requirements.js +2 -2
  114. package/dist/setup-agents.d.ts +1 -1
  115. package/dist/setup-agents.js +16 -74
  116. package/dist/setup-context.js +2 -1
  117. package/dist/setup-databases.d.ts +3 -13
  118. package/dist/setup-databases.js +141 -313
  119. package/dist/setup-embeddings.js +10 -2
  120. package/dist/setup-project.d.ts +0 -8
  121. package/dist/setup-project.js +3 -27
  122. package/dist/setup-runtime.js +2 -1
  123. package/dist/setup-sources.js +2 -1
  124. package/dist/setup.js +11 -18
  125. package/dist/skills/historic_sql_patterns/SKILL.md +1 -3
  126. package/dist/skills/historic_sql_table_digest/SKILL.md +0 -1
  127. package/dist/skills/sl/SKILL.md +2 -2
  128. package/dist/sql.js +0 -4
  129. package/dist/status-project.d.ts +3 -18
  130. package/dist/status-project.js +42 -216
  131. package/dist/telemetry/events.d.ts +1 -1
  132. package/dist/telemetry/index.js +8 -3
  133. package/dist/tree-picker-state.d.ts +2 -2
  134. package/dist/tree-picker-state.js +29 -13
  135. package/dist/tree-picker-tui.d.ts +3 -1
  136. package/dist/tree-picker-tui.js +20 -32
  137. package/package.json +6 -6
  138. package/dist/admin-reindex.test.d.ts +0 -1
  139. package/dist/admin-reindex.test.js +0 -119
  140. package/dist/admin.test.d.ts +0 -1
  141. package/dist/admin.test.js +0 -201
  142. package/dist/cli-program-telemetry.test.d.ts +0 -1
  143. package/dist/cli-program-telemetry.test.js +0 -89
  144. package/dist/cli-program.test.d.ts +0 -1
  145. package/dist/cli-program.test.js +0 -71
  146. package/dist/command-tree.test.d.ts +0 -1
  147. package/dist/command-tree.test.js +0 -126
  148. package/dist/commands/mcp-commands.test.d.ts +0 -1
  149. package/dist/commands/mcp-commands.test.js +0 -111
  150. package/dist/commands/sql-commands.test.d.ts +0 -1
  151. package/dist/commands/sql-commands.test.js +0 -68
  152. package/dist/connection.test.d.ts +0 -1
  153. package/dist/connection.test.js +0 -426
  154. package/dist/connectors/bigquery/connector.test.d.ts +0 -1
  155. package/dist/connectors/bigquery/connector.test.js +0 -363
  156. package/dist/connectors/bigquery/dialect.test.d.ts +0 -1
  157. package/dist/connectors/bigquery/dialect.test.js +0 -36
  158. package/dist/connectors/clickhouse/connector.test.d.ts +0 -1
  159. package/dist/connectors/clickhouse/connector.test.js +0 -342
  160. package/dist/connectors/clickhouse/dialect.test.d.ts +0 -1
  161. package/dist/connectors/clickhouse/dialect.test.js +0 -36
  162. package/dist/connectors/mysql/connector.test.d.ts +0 -1
  163. package/dist/connectors/mysql/connector.test.js +0 -365
  164. package/dist/connectors/mysql/dialect.test.d.ts +0 -1
  165. package/dist/connectors/mysql/dialect.test.js +0 -36
  166. package/dist/connectors/postgres/connector.test.d.ts +0 -1
  167. package/dist/connectors/postgres/connector.test.js +0 -391
  168. package/dist/connectors/postgres/dialect.test.d.ts +0 -1
  169. package/dist/connectors/postgres/dialect.test.js +0 -37
  170. package/dist/connectors/postgres/historic-sql-query-client.test.d.ts +0 -1
  171. package/dist/connectors/postgres/historic-sql-query-client.test.js +0 -45
  172. package/dist/connectors/snowflake/connector.test.d.ts +0 -1
  173. package/dist/connectors/snowflake/connector.test.js +0 -462
  174. package/dist/connectors/snowflake/dialect.test.d.ts +0 -1
  175. package/dist/connectors/snowflake/dialect.test.js +0 -34
  176. package/dist/connectors/snowflake/identifiers.test.d.ts +0 -1
  177. package/dist/connectors/snowflake/identifiers.test.js +0 -12
  178. package/dist/connectors/snowflake/sdk-logger.test.d.ts +0 -1
  179. package/dist/connectors/snowflake/sdk-logger.test.js +0 -47
  180. package/dist/connectors/sqlite/connector.test.d.ts +0 -1
  181. package/dist/connectors/sqlite/connector.test.js +0 -207
  182. package/dist/connectors/sqlite/dialect.test.d.ts +0 -1
  183. package/dist/connectors/sqlite/dialect.test.js +0 -23
  184. package/dist/connectors/sqlserver/connector.test.d.ts +0 -1
  185. package/dist/connectors/sqlserver/connector.test.js +0 -313
  186. package/dist/connectors/sqlserver/dialect.test.d.ts +0 -1
  187. package/dist/connectors/sqlserver/dialect.test.js +0 -36
  188. package/dist/context/connections/bigquery-identifiers.test.d.ts +0 -1
  189. package/dist/context/connections/bigquery-identifiers.test.js +0 -13
  190. package/dist/context/connections/dialects.test.d.ts +0 -1
  191. package/dist/context/connections/dialects.test.js +0 -24
  192. package/dist/context/connections/local-query-executor.test.d.ts +0 -1
  193. package/dist/context/connections/local-query-executor.test.js +0 -48
  194. package/dist/context/connections/local-warehouse-descriptor.test.d.ts +0 -1
  195. package/dist/context/connections/local-warehouse-descriptor.test.js +0 -53
  196. package/dist/context/connections/notion-config.test.d.ts +0 -1
  197. package/dist/context/connections/notion-config.test.js +0 -121
  198. package/dist/context/connections/postgres-query-executor.test.d.ts +0 -1
  199. package/dist/context/connections/postgres-query-executor.test.js +0 -91
  200. package/dist/context/connections/read-only-sql.test.d.ts +0 -1
  201. package/dist/context/connections/read-only-sql.test.js +0 -20
  202. package/dist/context/connections/sqlite-query-executor.test.d.ts +0 -1
  203. package/dist/context/connections/sqlite-query-executor.test.js +0 -113
  204. package/dist/context/core/config-reference.test.d.ts +0 -1
  205. package/dist/context/core/config-reference.test.js +0 -27
  206. package/dist/context/core/git.service.assert-worktree-clean.test.d.ts +0 -1
  207. package/dist/context/core/git.service.assert-worktree-clean.test.js +0 -62
  208. package/dist/context/core/git.service.delete-directories.test.d.ts +0 -1
  209. package/dist/context/core/git.service.delete-directories.test.js +0 -61
  210. package/dist/context/core/git.service.patch.test.d.ts +0 -1
  211. package/dist/context/core/git.service.patch.test.js +0 -40
  212. package/dist/context/core/git.service.reset-hard.test.d.ts +0 -1
  213. package/dist/context/core/git.service.reset-hard.test.js +0 -47
  214. package/dist/context/core/git.service.test.d.ts +0 -1
  215. package/dist/context/core/git.service.test.js +0 -357
  216. package/dist/context/core/session-worktree.service.test.d.ts +0 -1
  217. package/dist/context/core/session-worktree.service.test.js +0 -97
  218. package/dist/context/daemon/semantic-layer-compute.test.d.ts +0 -1
  219. package/dist/context/daemon/semantic-layer-compute.test.js +0 -305
  220. package/dist/context/index-sync/reindex.test.d.ts +0 -1
  221. package/dist/context/index-sync/reindex.test.js +0 -139
  222. package/dist/context/ingest/action-identity.test.d.ts +0 -1
  223. package/dist/context/ingest/action-identity.test.js +0 -19
  224. package/dist/context/ingest/adapters/dbt/chunk.test.d.ts +0 -1
  225. package/dist/context/ingest/adapters/dbt/chunk.test.js +0 -30
  226. package/dist/context/ingest/adapters/dbt/dbt.adapter.test.d.ts +0 -1
  227. package/dist/context/ingest/adapters/dbt/dbt.adapter.test.js +0 -43
  228. package/dist/context/ingest/adapters/dbt/fetch.test.d.ts +0 -1
  229. package/dist/context/ingest/adapters/dbt/fetch.test.js +0 -30
  230. package/dist/context/ingest/adapters/dbt/parse.test.d.ts +0 -1
  231. package/dist/context/ingest/adapters/dbt/parse.test.js +0 -7
  232. package/dist/context/ingest/adapters/dbt-descriptions/parse-schema.test.d.ts +0 -1
  233. package/dist/context/ingest/adapters/dbt-descriptions/parse-schema.test.js +0 -195
  234. package/dist/context/ingest/adapters/historic-sql/bigquery-query-history-reader.test.d.ts +0 -1
  235. package/dist/context/ingest/adapters/historic-sql/bigquery-query-history-reader.test.js +0 -121
  236. package/dist/context/ingest/adapters/historic-sql/buckets.test.d.ts +0 -1
  237. package/dist/context/ingest/adapters/historic-sql/buckets.test.js +0 -49
  238. package/dist/context/ingest/adapters/historic-sql/chunk-unified.test.d.ts +0 -1
  239. package/dist/context/ingest/adapters/historic-sql/chunk-unified.test.js +0 -160
  240. package/dist/context/ingest/adapters/historic-sql/detect.test.d.ts +0 -1
  241. package/dist/context/ingest/adapters/historic-sql/detect.test.js +0 -48
  242. package/dist/context/ingest/adapters/historic-sql/evidence-tool.test.d.ts +0 -1
  243. package/dist/context/ingest/adapters/historic-sql/evidence-tool.test.js +0 -67
  244. package/dist/context/ingest/adapters/historic-sql/evidence.test.d.ts +0 -1
  245. package/dist/context/ingest/adapters/historic-sql/evidence.test.js +0 -43
  246. package/dist/context/ingest/adapters/historic-sql/historic-sql.adapter.test.d.ts +0 -1
  247. package/dist/context/ingest/adapters/historic-sql/historic-sql.adapter.test.js +0 -98
  248. package/dist/context/ingest/adapters/historic-sql/local-ingest-acceptance.test.d.ts +0 -1
  249. package/dist/context/ingest/adapters/historic-sql/local-ingest-acceptance.test.js +0 -235
  250. package/dist/context/ingest/adapters/historic-sql/pattern-inputs.test.d.ts +0 -1
  251. package/dist/context/ingest/adapters/historic-sql/pattern-inputs.test.js +0 -68
  252. package/dist/context/ingest/adapters/historic-sql/postgres-pgss-reader.test.d.ts +0 -1
  253. package/dist/context/ingest/adapters/historic-sql/postgres-pgss-reader.test.js +0 -205
  254. package/dist/context/ingest/adapters/historic-sql/projection.test.d.ts +0 -1
  255. package/dist/context/ingest/adapters/historic-sql/projection.test.js +0 -392
  256. package/dist/context/ingest/adapters/historic-sql/redaction.test.d.ts +0 -1
  257. package/dist/context/ingest/adapters/historic-sql/redaction.test.js +0 -22
  258. package/dist/context/ingest/adapters/historic-sql/skill-schemas.test.d.ts +0 -1
  259. package/dist/context/ingest/adapters/historic-sql/skill-schemas.test.js +0 -62
  260. package/dist/context/ingest/adapters/historic-sql/snowflake-query-history-reader.test.d.ts +0 -1
  261. package/dist/context/ingest/adapters/historic-sql/snowflake-query-history-reader.test.js +0 -117
  262. package/dist/context/ingest/adapters/historic-sql/stage-unified.test.d.ts +0 -1
  263. package/dist/context/ingest/adapters/historic-sql/stage-unified.test.js +0 -405
  264. package/dist/context/ingest/adapters/historic-sql/types.test.d.ts +0 -1
  265. package/dist/context/ingest/adapters/historic-sql/types.test.js +0 -87
  266. package/dist/context/ingest/adapters/live-database/chunk.test.d.ts +0 -1
  267. package/dist/context/ingest/adapters/live-database/chunk.test.js +0 -95
  268. package/dist/context/ingest/adapters/live-database/daemon-introspection.test.d.ts +0 -1
  269. package/dist/context/ingest/adapters/live-database/daemon-introspection.test.js +0 -241
  270. package/dist/context/ingest/adapters/live-database/live-database.adapter.test.d.ts +0 -1
  271. package/dist/context/ingest/adapters/live-database/live-database.adapter.test.js +0 -105
  272. package/dist/context/ingest/adapters/live-database/manifest.test.d.ts +0 -1
  273. package/dist/context/ingest/adapters/live-database/manifest.test.js +0 -291
  274. package/dist/context/ingest/adapters/live-database/stage.test.d.ts +0 -1
  275. package/dist/context/ingest/adapters/live-database/stage.test.js +0 -133
  276. package/dist/context/ingest/adapters/looker/chunk.test.d.ts +0 -1
  277. package/dist/context/ingest/adapters/looker/chunk.test.js +0 -142
  278. package/dist/context/ingest/adapters/looker/client-boundary.test.d.ts +0 -1
  279. package/dist/context/ingest/adapters/looker/client-boundary.test.js +0 -12
  280. package/dist/context/ingest/adapters/looker/client.test.d.ts +0 -1
  281. package/dist/context/ingest/adapters/looker/client.test.js +0 -407
  282. package/dist/context/ingest/adapters/looker/daemon-table-identifier-parser.test.d.ts +0 -1
  283. package/dist/context/ingest/adapters/looker/daemon-table-identifier-parser.test.js +0 -40
  284. package/dist/context/ingest/adapters/looker/detect.test.d.ts +0 -1
  285. package/dist/context/ingest/adapters/looker/detect.test.js +0 -39
  286. package/dist/context/ingest/adapters/looker/evidence-documents.test.d.ts +0 -1
  287. package/dist/context/ingest/adapters/looker/evidence-documents.test.js +0 -178
  288. package/dist/context/ingest/adapters/looker/factory.test.d.ts +0 -1
  289. package/dist/context/ingest/adapters/looker/factory.test.js +0 -55
  290. package/dist/context/ingest/adapters/looker/fetch-report.test.d.ts +0 -1
  291. package/dist/context/ingest/adapters/looker/fetch-report.test.js +0 -71
  292. package/dist/context/ingest/adapters/looker/fetch.test.d.ts +0 -1
  293. package/dist/context/ingest/adapters/looker/fetch.test.js +0 -592
  294. package/dist/context/ingest/adapters/looker/local-runtime-store.test.d.ts +0 -1
  295. package/dist/context/ingest/adapters/looker/local-runtime-store.test.js +0 -106
  296. package/dist/context/ingest/adapters/looker/looker.adapter.test.d.ts +0 -1
  297. package/dist/context/ingest/adapters/looker/looker.adapter.test.js +0 -99
  298. package/dist/context/ingest/adapters/looker/mapping.test.d.ts +0 -1
  299. package/dist/context/ingest/adapters/looker/mapping.test.js +0 -334
  300. package/dist/context/ingest/adapters/looker/reconcile.test.d.ts +0 -1
  301. package/dist/context/ingest/adapters/looker/reconcile.test.js +0 -12
  302. package/dist/context/ingest/adapters/looker/scope.test.d.ts +0 -1
  303. package/dist/context/ingest/adapters/looker/scope.test.js +0 -84
  304. package/dist/context/ingest/adapters/looker/target-connections.test.d.ts +0 -1
  305. package/dist/context/ingest/adapters/looker/target-connections.test.js +0 -71
  306. package/dist/context/ingest/adapters/looker/tools/looker-query-to-sl.tool.test.d.ts +0 -1
  307. package/dist/context/ingest/adapters/looker/tools/looker-query-to-sl.tool.test.js +0 -211
  308. package/dist/context/ingest/adapters/looker/types.test.d.ts +0 -1
  309. package/dist/context/ingest/adapters/looker/types.test.js +0 -261
  310. package/dist/context/ingest/adapters/lookml/chunk.test.d.ts +0 -1
  311. package/dist/context/ingest/adapters/lookml/chunk.test.js +0 -213
  312. package/dist/context/ingest/adapters/lookml/detect.test.d.ts +0 -1
  313. package/dist/context/ingest/adapters/lookml/detect.test.js +0 -37
  314. package/dist/context/ingest/adapters/lookml/fetch-report.test.d.ts +0 -1
  315. package/dist/context/ingest/adapters/lookml/fetch-report.test.js +0 -82
  316. package/dist/context/ingest/adapters/lookml/fetch.test.d.ts +0 -1
  317. package/dist/context/ingest/adapters/lookml/fetch.test.js +0 -121
  318. package/dist/context/ingest/adapters/lookml/graph.test.d.ts +0 -1
  319. package/dist/context/ingest/adapters/lookml/graph.test.js +0 -105
  320. package/dist/context/ingest/adapters/lookml/lookml.adapter.test.d.ts +0 -1
  321. package/dist/context/ingest/adapters/lookml/lookml.adapter.test.js +0 -49
  322. package/dist/context/ingest/adapters/lookml/parse.test.d.ts +0 -1
  323. package/dist/context/ingest/adapters/lookml/parse.test.js +0 -118
  324. package/dist/context/ingest/adapters/lookml/pull-config.test.d.ts +0 -1
  325. package/dist/context/ingest/adapters/lookml/pull-config.test.js +0 -128
  326. package/dist/context/ingest/adapters/metabase/card-references.test.d.ts +0 -1
  327. package/dist/context/ingest/adapters/metabase/card-references.test.js +0 -36
  328. package/dist/context/ingest/adapters/metabase/chunk.test.d.ts +0 -1
  329. package/dist/context/ingest/adapters/metabase/chunk.test.js +0 -299
  330. package/dist/context/ingest/adapters/metabase/client-boundary.test.d.ts +0 -1
  331. package/dist/context/ingest/adapters/metabase/client-boundary.test.js +0 -38
  332. package/dist/context/ingest/adapters/metabase/client-port.test.d.ts +0 -1
  333. package/dist/context/ingest/adapters/metabase/client-port.test.js +0 -86
  334. package/dist/context/ingest/adapters/metabase/client.test.d.ts +0 -1
  335. package/dist/context/ingest/adapters/metabase/client.test.js +0 -377
  336. package/dist/context/ingest/adapters/metabase/detect.test.d.ts +0 -1
  337. package/dist/context/ingest/adapters/metabase/detect.test.js +0 -42
  338. package/dist/context/ingest/adapters/metabase/fanout-planner.test.d.ts +0 -1
  339. package/dist/context/ingest/adapters/metabase/fanout-planner.test.js +0 -44
  340. package/dist/context/ingest/adapters/metabase/fetch-scope.test.d.ts +0 -1
  341. package/dist/context/ingest/adapters/metabase/fetch-scope.test.js +0 -124
  342. package/dist/context/ingest/adapters/metabase/fetch.test.d.ts +0 -1
  343. package/dist/context/ingest/adapters/metabase/fetch.test.js +0 -557
  344. package/dist/context/ingest/adapters/metabase/local-metabase.adapter.test.d.ts +0 -1
  345. package/dist/context/ingest/adapters/metabase/local-metabase.adapter.test.js +0 -56
  346. package/dist/context/ingest/adapters/metabase/local-source-state-store.test.d.ts +0 -1
  347. package/dist/context/ingest/adapters/metabase/local-source-state-store.test.js +0 -99
  348. package/dist/context/ingest/adapters/metabase/mapping.test.d.ts +0 -1
  349. package/dist/context/ingest/adapters/metabase/mapping.test.js +0 -215
  350. package/dist/context/ingest/adapters/metabase/metabase.adapter.test.d.ts +0 -1
  351. package/dist/context/ingest/adapters/metabase/metabase.adapter.test.js +0 -129
  352. package/dist/context/ingest/adapters/metabase/serialize-card.test.d.ts +0 -1
  353. package/dist/context/ingest/adapters/metabase/serialize-card.test.js +0 -205
  354. package/dist/context/ingest/adapters/metabase/types.test.d.ts +0 -1
  355. package/dist/context/ingest/adapters/metabase/types.test.js +0 -75
  356. package/dist/context/ingest/adapters/metricflow/chunk.test.d.ts +0 -1
  357. package/dist/context/ingest/adapters/metricflow/chunk.test.js +0 -114
  358. package/dist/context/ingest/adapters/metricflow/deep-parse.test.d.ts +0 -1
  359. package/dist/context/ingest/adapters/metricflow/deep-parse.test.js +0 -1139
  360. package/dist/context/ingest/adapters/metricflow/detect.test.d.ts +0 -1
  361. package/dist/context/ingest/adapters/metricflow/detect.test.js +0 -43
  362. package/dist/context/ingest/adapters/metricflow/fetch.test.d.ts +0 -1
  363. package/dist/context/ingest/adapters/metricflow/fetch.test.js +0 -97
  364. package/dist/context/ingest/adapters/metricflow/graph.test.d.ts +0 -1
  365. package/dist/context/ingest/adapters/metricflow/graph.test.js +0 -245
  366. package/dist/context/ingest/adapters/metricflow/import-semantic-models.test.d.ts +0 -1
  367. package/dist/context/ingest/adapters/metricflow/import-semantic-models.test.js +0 -318
  368. package/dist/context/ingest/adapters/metricflow/metricflow.adapter.test.d.ts +0 -1
  369. package/dist/context/ingest/adapters/metricflow/metricflow.adapter.test.js +0 -212
  370. package/dist/context/ingest/adapters/metricflow/parse.test.d.ts +0 -1
  371. package/dist/context/ingest/adapters/metricflow/parse.test.js +0 -171
  372. package/dist/context/ingest/adapters/metricflow/pull-config.test.d.ts +0 -1
  373. package/dist/context/ingest/adapters/metricflow/pull-config.test.js +0 -57
  374. package/dist/context/ingest/adapters/metricflow/semantic-models.test.d.ts +0 -1
  375. package/dist/context/ingest/adapters/metricflow/semantic-models.test.js +0 -204
  376. package/dist/context/ingest/adapters/notion/cluster.test.d.ts +0 -1
  377. package/dist/context/ingest/adapters/notion/cluster.test.js +0 -123
  378. package/dist/context/ingest/adapters/notion/fetch.test.d.ts +0 -1
  379. package/dist/context/ingest/adapters/notion/fetch.test.js +0 -358
  380. package/dist/context/ingest/adapters/notion/local-state-store.test.d.ts +0 -1
  381. package/dist/context/ingest/adapters/notion/local-state-store.test.js +0 -29
  382. package/dist/context/ingest/adapters/notion/normalize.test.d.ts +0 -1
  383. package/dist/context/ingest/adapters/notion/normalize.test.js +0 -64
  384. package/dist/context/ingest/adapters/notion/notion-client.test.d.ts +0 -1
  385. package/dist/context/ingest/adapters/notion/notion-client.test.js +0 -49
  386. package/dist/context/ingest/adapters/notion/notion.adapter.test.d.ts +0 -1
  387. package/dist/context/ingest/adapters/notion/notion.adapter.test.js +0 -315
  388. package/dist/context/ingest/artifact-gates.test.d.ts +0 -1
  389. package/dist/context/ingest/artifact-gates.test.js +0 -167
  390. package/dist/context/ingest/canonical-pins.test.d.ts +0 -1
  391. package/dist/context/ingest/canonical-pins.test.js +0 -66
  392. package/dist/context/ingest/clustering/kmeans.test.d.ts +0 -1
  393. package/dist/context/ingest/clustering/kmeans.test.js +0 -61
  394. package/dist/context/ingest/context-candidates/candidate-dedup.service.test.d.ts +0 -1
  395. package/dist/context/ingest/context-candidates/candidate-dedup.service.test.js +0 -216
  396. package/dist/context/ingest/context-candidates/context-candidate-carryforward.service.test.d.ts +0 -1
  397. package/dist/context/ingest/context-candidates/context-candidate-carryforward.service.test.js +0 -161
  398. package/dist/context/ingest/context-candidates/curator-pagination.service.test.d.ts +0 -1
  399. package/dist/context/ingest/context-candidates/curator-pagination.service.test.js +0 -168
  400. package/dist/context/ingest/context-candidates/embedding-text.test.d.ts +0 -1
  401. package/dist/context/ingest/context-candidates/embedding-text.test.js +0 -10
  402. package/dist/context/ingest/context-candidates/store.test.d.ts +0 -1
  403. package/dist/context/ingest/context-candidates/store.test.js +0 -67
  404. package/dist/context/ingest/context-evidence/context-evidence-index.service.test.d.ts +0 -1
  405. package/dist/context/ingest/context-evidence/context-evidence-index.service.test.js +0 -374
  406. package/dist/context/ingest/context-evidence/sqlite-context-evidence-store.test.d.ts +0 -1
  407. package/dist/context/ingest/context-evidence/sqlite-context-evidence-store.test.js +0 -416
  408. package/dist/context/ingest/context-evidence/store.test.d.ts +0 -1
  409. package/dist/context/ingest/context-evidence/store.test.js +0 -55
  410. package/dist/context/ingest/dbt-shared/project-vars.test.d.ts +0 -1
  411. package/dist/context/ingest/dbt-shared/project-vars.test.js +0 -90
  412. package/dist/context/ingest/dbt-shared/schema-files.test.d.ts +0 -1
  413. package/dist/context/ingest/dbt-shared/schema-files.test.js +0 -35
  414. package/dist/context/ingest/diff-set.service.test.d.ts +0 -1
  415. package/dist/context/ingest/diff-set.service.test.js +0 -132
  416. package/dist/context/ingest/final-gate-repair.test.d.ts +0 -1
  417. package/dist/context/ingest/final-gate-repair.test.js +0 -109
  418. package/dist/context/ingest/finalization-scope.test.d.ts +0 -1
  419. package/dist/context/ingest/finalization-scope.test.js +0 -114
  420. package/dist/context/ingest/ingest-bundle.runner.isolated-diff.test.d.ts +0 -1
  421. package/dist/context/ingest/ingest-bundle.runner.isolated-diff.test.js +0 -1928
  422. package/dist/context/ingest/ingest-bundle.runner.test.d.ts +0 -1
  423. package/dist/context/ingest/ingest-bundle.runner.test.js +0 -1899
  424. package/dist/context/ingest/ingest-prompts.test.d.ts +0 -1
  425. package/dist/context/ingest/ingest-prompts.test.js +0 -32
  426. package/dist/context/ingest/ingest-runtime-assets.test.d.ts +0 -1
  427. package/dist/context/ingest/ingest-runtime-assets.test.js +0 -89
  428. package/dist/context/ingest/ingest-trace.test.d.ts +0 -1
  429. package/dist/context/ingest/ingest-trace.test.js +0 -76
  430. package/dist/context/ingest/isolated-diff/git-patch.test.d.ts +0 -1
  431. package/dist/context/ingest/isolated-diff/git-patch.test.js +0 -76
  432. package/dist/context/ingest/isolated-diff/patch-integrator.test.d.ts +0 -1
  433. package/dist/context/ingest/isolated-diff/patch-integrator.test.js +0 -369
  434. package/dist/context/ingest/isolated-diff/textual-conflict-resolver.test.d.ts +0 -1
  435. package/dist/context/ingest/isolated-diff/textual-conflict-resolver.test.js +0 -101
  436. package/dist/context/ingest/isolated-diff/work-unit-executor.test.d.ts +0 -1
  437. package/dist/context/ingest/isolated-diff/work-unit-executor.test.js +0 -137
  438. package/dist/context/ingest/local-adapters.test.d.ts +0 -1
  439. package/dist/context/ingest/local-adapters.test.js +0 -612
  440. package/dist/context/ingest/local-bundle-ingest.test.d.ts +0 -1
  441. package/dist/context/ingest/local-bundle-ingest.test.js +0 -794
  442. package/dist/context/ingest/local-bundle-runtime.test.d.ts +0 -1
  443. package/dist/context/ingest/local-bundle-runtime.test.js +0 -240
  444. package/dist/context/ingest/local-embedding-provider.integration.test.d.ts +0 -1
  445. package/dist/context/ingest/local-embedding-provider.integration.test.js +0 -139
  446. package/dist/context/ingest/local-mapping-reconcile.test.d.ts +0 -1
  447. package/dist/context/ingest/local-mapping-reconcile.test.js +0 -61
  448. package/dist/context/ingest/local-metabase-ingest.test.d.ts +0 -1
  449. package/dist/context/ingest/local-metabase-ingest.test.js +0 -227
  450. package/dist/context/ingest/local-stage-ingest.test.d.ts +0 -1
  451. package/dist/context/ingest/local-stage-ingest.test.js +0 -581
  452. package/dist/context/ingest/memory-flow/acceptance-fixtures.d.ts +0 -6
  453. package/dist/context/ingest/memory-flow/acceptance-fixtures.js +0 -155
  454. package/dist/context/ingest/memory-flow/acceptance.test.d.ts +0 -1
  455. package/dist/context/ingest/memory-flow/acceptance.test.js +0 -43
  456. package/dist/context/ingest/memory-flow/events.test.d.ts +0 -1
  457. package/dist/context/ingest/memory-flow/events.test.js +0 -319
  458. package/dist/context/ingest/memory-flow/interaction.test.d.ts +0 -1
  459. package/dist/context/ingest/memory-flow/interaction.test.js +0 -264
  460. package/dist/context/ingest/memory-flow/interactive-render.test.d.ts +0 -1
  461. package/dist/context/ingest/memory-flow/interactive-render.test.js +0 -160
  462. package/dist/context/ingest/memory-flow/live-buffer.test.d.ts +0 -1
  463. package/dist/context/ingest/memory-flow/live-buffer.test.js +0 -77
  464. package/dist/context/ingest/memory-flow/render.test.d.ts +0 -1
  465. package/dist/context/ingest/memory-flow/render.test.js +0 -105
  466. package/dist/context/ingest/memory-flow/schema.test.d.ts +0 -1
  467. package/dist/context/ingest/memory-flow/schema.test.js +0 -147
  468. package/dist/context/ingest/memory-flow/summary.test.d.ts +0 -1
  469. package/dist/context/ingest/memory-flow/summary.test.js +0 -130
  470. package/dist/context/ingest/memory-flow/view-model.test.d.ts +0 -1
  471. package/dist/context/ingest/memory-flow/view-model.test.js +0 -397
  472. package/dist/context/ingest/memory-flow/visuals.test.d.ts +0 -1
  473. package/dist/context/ingest/memory-flow/visuals.test.js +0 -49
  474. package/dist/context/ingest/page-triage/page-triage.service.test.d.ts +0 -1
  475. package/dist/context/ingest/page-triage/page-triage.service.test.js +0 -311
  476. package/dist/context/ingest/raw-sources-paths.test.d.ts +0 -1
  477. package/dist/context/ingest/raw-sources-paths.test.js +0 -18
  478. package/dist/context/ingest/repo-fetch.test.d.ts +0 -1
  479. package/dist/context/ingest/repo-fetch.test.js +0 -168
  480. package/dist/context/ingest/report-snapshot.test.d.ts +0 -1
  481. package/dist/context/ingest/report-snapshot.test.js +0 -329
  482. package/dist/context/ingest/semantic-layer-target-policy.test.d.ts +0 -1
  483. package/dist/context/ingest/semantic-layer-target-policy.test.js +0 -25
  484. package/dist/context/ingest/source-adapter-registry.test.d.ts +0 -1
  485. package/dist/context/ingest/source-adapter-registry.test.js +0 -35
  486. package/dist/context/ingest/sqlite-bundle-ingest-store.test.d.ts +0 -1
  487. package/dist/context/ingest/sqlite-bundle-ingest-store.test.js +0 -517
  488. package/dist/context/ingest/sqlite-local-ingest-store.test.d.ts +0 -1
  489. package/dist/context/ingest/sqlite-local-ingest-store.test.js +0 -143
  490. package/dist/context/ingest/stages/build-reconcile-context.context-candidates.test.d.ts +0 -1
  491. package/dist/context/ingest/stages/build-reconcile-context.context-candidates.test.js +0 -102
  492. package/dist/context/ingest/stages/build-reconcile-context.test.d.ts +0 -1
  493. package/dist/context/ingest/stages/build-reconcile-context.test.js +0 -141
  494. package/dist/context/ingest/stages/build-wu-context.test.d.ts +0 -1
  495. package/dist/context/ingest/stages/build-wu-context.test.js +0 -196
  496. package/dist/context/ingest/stages/stage-1-stage-raw-files.test.d.ts +0 -1
  497. package/dist/context/ingest/stages/stage-1-stage-raw-files.test.js +0 -54
  498. package/dist/context/ingest/stages/stage-3-work-units.test.d.ts +0 -1
  499. package/dist/context/ingest/stages/stage-3-work-units.test.js +0 -175
  500. package/dist/context/ingest/stages/stage-4-reconciliation.test.d.ts +0 -1
  501. package/dist/context/ingest/stages/stage-4-reconciliation.test.js +0 -144
  502. package/dist/context/ingest/stages/validate-wu-sources.test.d.ts +0 -1
  503. package/dist/context/ingest/stages/validate-wu-sources.test.js +0 -27
  504. package/dist/context/ingest/tools/emit-reconciliation-records.tool.test.d.ts +0 -1
  505. package/dist/context/ingest/tools/emit-reconciliation-records.tool.test.js +0 -237
  506. package/dist/context/ingest/tools/eviction-list.tool.test.d.ts +0 -1
  507. package/dist/context/ingest/tools/eviction-list.tool.test.js +0 -44
  508. package/dist/context/ingest/tools/read-raw-file.tool.test.d.ts +0 -1
  509. package/dist/context/ingest/tools/read-raw-file.tool.test.js +0 -45
  510. package/dist/context/ingest/tools/read-raw-span.tool.test.d.ts +0 -1
  511. package/dist/context/ingest/tools/read-raw-span.tool.test.js +0 -34
  512. package/dist/context/ingest/tools/stage-diff.tool.test.d.ts +0 -1
  513. package/dist/context/ingest/tools/stage-diff.tool.test.js +0 -112
  514. package/dist/context/ingest/tools/stage-list.tool.test.d.ts +0 -1
  515. package/dist/context/ingest/tools/stage-list.tool.test.js +0 -58
  516. package/dist/context/ingest/tools/tool-transcript-summary.test.d.ts +0 -1
  517. package/dist/context/ingest/tools/tool-transcript-summary.test.js +0 -141
  518. package/dist/context/ingest/tools/warehouse-verification/discover-data.tool.test.d.ts +0 -1
  519. package/dist/context/ingest/tools/warehouse-verification/discover-data.tool.test.js +0 -107
  520. package/dist/context/ingest/tools/warehouse-verification/entity-details.tool.test.d.ts +0 -1
  521. package/dist/context/ingest/tools/warehouse-verification/entity-details.tool.test.js +0 -146
  522. package/dist/context/ingest/tools/warehouse-verification/sql-execution.tool.test.d.ts +0 -1
  523. package/dist/context/ingest/tools/warehouse-verification/sql-execution.tool.test.js +0 -50
  524. package/dist/context/ingest/wiki-body-refs.test.d.ts +0 -1
  525. package/dist/context/ingest/wiki-body-refs.test.js +0 -138
  526. package/dist/context/ingest/wiki-sl-ref-repair.test.d.ts +0 -1
  527. package/dist/context/ingest/wiki-sl-ref-repair.test.js +0 -81
  528. package/dist/context/llm/ai-sdk-runtime.test.d.ts +0 -1
  529. package/dist/context/llm/ai-sdk-runtime.test.js +0 -308
  530. package/dist/context/llm/claude-code-env.test.d.ts +0 -1
  531. package/dist/context/llm/claude-code-env.test.js +0 -17
  532. package/dist/context/llm/claude-code-models.test.d.ts +0 -1
  533. package/dist/context/llm/claude-code-models.test.js +0 -15
  534. package/dist/context/llm/claude-code-runtime.test.d.ts +0 -1
  535. package/dist/context/llm/claude-code-runtime.test.js +0 -434
  536. package/dist/context/llm/debug-request-recorder.test.d.ts +0 -1
  537. package/dist/context/llm/debug-request-recorder.test.js +0 -112
  538. package/dist/context/llm/embedding-port.test.d.ts +0 -1
  539. package/dist/context/llm/embedding-port.test.js +0 -34
  540. package/dist/context/llm/local-config.test.d.ts +0 -1
  541. package/dist/context/llm/local-config.test.js +0 -164
  542. package/dist/context/llm/runtime-local-config.test.d.ts +0 -1
  543. package/dist/context/llm/runtime-local-config.test.js +0 -17
  544. package/dist/context/llm/runtime-tools.test.d.ts +0 -1
  545. package/dist/context/llm/runtime-tools.test.js +0 -36
  546. package/dist/context/mcp/local-project-ports.test.d.ts +0 -1
  547. package/dist/context/mcp/local-project-ports.test.js +0 -689
  548. package/dist/context/mcp/server.test.d.ts +0 -1
  549. package/dist/context/mcp/server.test.js +0 -902
  550. package/dist/context/memory/local-memory.test.d.ts +0 -1
  551. package/dist/context/memory/local-memory.test.js +0 -173
  552. package/dist/context/memory/memory-agent.service.ingest.test.d.ts +0 -1
  553. package/dist/context/memory/memory-agent.service.ingest.test.js +0 -355
  554. package/dist/context/memory/memory-agent.service.test.d.ts +0 -1
  555. package/dist/context/memory/memory-agent.service.test.js +0 -413
  556. package/dist/context/memory/memory-runs.test.d.ts +0 -1
  557. package/dist/context/memory/memory-runs.test.js +0 -158
  558. package/dist/context/memory/memory-runtime-assets.test.d.ts +0 -1
  559. package/dist/context/memory/memory-runtime-assets.test.js +0 -162
  560. package/dist/context/project/config.test.d.ts +0 -1
  561. package/dist/context/project/config.test.js +0 -467
  562. package/dist/context/project/driver-schemas.test.d.ts +0 -1
  563. package/dist/context/project/driver-schemas.test.js +0 -125
  564. package/dist/context/project/local-git-file-store.test.d.ts +0 -1
  565. package/dist/context/project/local-git-file-store.test.js +0 -71
  566. package/dist/context/project/mappings-yaml-schema.test.d.ts +0 -1
  567. package/dist/context/project/mappings-yaml-schema.test.js +0 -79
  568. package/dist/context/project/project.test.d.ts +0 -1
  569. package/dist/context/project/project.test.js +0 -55
  570. package/dist/context/project/setup-config.test.d.ts +0 -1
  571. package/dist/context/project/setup-config.test.js +0 -38
  572. package/dist/context/prompts/prompt.service.test.d.ts +0 -1
  573. package/dist/context/prompts/prompt.service.test.js +0 -43
  574. package/dist/context/scan/credentials.test.d.ts +0 -1
  575. package/dist/context/scan/credentials.test.js +0 -162
  576. package/dist/context/scan/data-dictionary.test.d.ts +0 -1
  577. package/dist/context/scan/data-dictionary.test.js +0 -92
  578. package/dist/context/scan/description-generation.test.d.ts +0 -1
  579. package/dist/context/scan/description-generation.test.js +0 -693
  580. package/dist/context/scan/embedding-text.test.d.ts +0 -1
  581. package/dist/context/scan/embedding-text.test.js +0 -36
  582. package/dist/context/scan/enrichment-state.test.d.ts +0 -1
  583. package/dist/context/scan/enrichment-state.test.js +0 -147
  584. package/dist/context/scan/enrichment-summary.test.d.ts +0 -1
  585. package/dist/context/scan/enrichment-summary.test.js +0 -34
  586. package/dist/context/scan/enrichment-types.test.d.ts +0 -1
  587. package/dist/context/scan/enrichment-types.test.js +0 -141
  588. package/dist/context/scan/entity-details.test.d.ts +0 -1
  589. package/dist/context/scan/entity-details.test.js +0 -234
  590. package/dist/context/scan/local-enrichment-artifacts.test.d.ts +0 -1
  591. package/dist/context/scan/local-enrichment-artifacts.test.js +0 -771
  592. package/dist/context/scan/local-enrichment.test.d.ts +0 -1
  593. package/dist/context/scan/local-enrichment.test.js +0 -765
  594. package/dist/context/scan/local-scan.test.d.ts +0 -1
  595. package/dist/context/scan/local-scan.test.js +0 -1663
  596. package/dist/context/scan/local-structural-artifacts.test.d.ts +0 -1
  597. package/dist/context/scan/local-structural-artifacts.test.js +0 -144
  598. package/dist/context/scan/relationship-benchmark-report.test.d.ts +0 -1
  599. package/dist/context/scan/relationship-benchmark-report.test.js +0 -389
  600. package/dist/context/scan/relationship-benchmarks.test.d.ts +0 -1
  601. package/dist/context/scan/relationship-benchmarks.test.js +0 -1072
  602. package/dist/context/scan/relationship-budget.test.d.ts +0 -1
  603. package/dist/context/scan/relationship-budget.test.js +0 -71
  604. package/dist/context/scan/relationship-candidates.test.d.ts +0 -1
  605. package/dist/context/scan/relationship-candidates.test.js +0 -747
  606. package/dist/context/scan/relationship-composite-candidates.test.d.ts +0 -1
  607. package/dist/context/scan/relationship-composite-candidates.test.js +0 -69
  608. package/dist/context/scan/relationship-diagnostics.test.d.ts +0 -1
  609. package/dist/context/scan/relationship-diagnostics.test.js +0 -333
  610. package/dist/context/scan/relationship-discovery.test.d.ts +0 -1
  611. package/dist/context/scan/relationship-discovery.test.js +0 -618
  612. package/dist/context/scan/relationship-formal-metadata.test.d.ts +0 -1
  613. package/dist/context/scan/relationship-formal-metadata.test.js +0 -125
  614. package/dist/context/scan/relationship-graph-resolver.test.d.ts +0 -1
  615. package/dist/context/scan/relationship-graph-resolver.test.js +0 -604
  616. package/dist/context/scan/relationship-llm-proposal.test.d.ts +0 -1
  617. package/dist/context/scan/relationship-llm-proposal.test.js +0 -197
  618. package/dist/context/scan/relationship-locality.test.d.ts +0 -1
  619. package/dist/context/scan/relationship-locality.test.js +0 -128
  620. package/dist/context/scan/relationship-name-similarity.test.d.ts +0 -1
  621. package/dist/context/scan/relationship-name-similarity.test.js +0 -68
  622. package/dist/context/scan/relationship-profiling.test.d.ts +0 -1
  623. package/dist/context/scan/relationship-profiling.test.js +0 -392
  624. package/dist/context/scan/relationship-scoring.test.d.ts +0 -1
  625. package/dist/context/scan/relationship-scoring.test.js +0 -86
  626. package/dist/context/scan/relationship-validation.test.d.ts +0 -1
  627. package/dist/context/scan/relationship-validation.test.js +0 -455
  628. package/dist/context/scan/table-ref.test.d.ts +0 -1
  629. package/dist/context/scan/table-ref.test.js +0 -53
  630. package/dist/context/scan/type-normalization.test.d.ts +0 -1
  631. package/dist/context/scan/type-normalization.test.js +0 -21
  632. package/dist/context/scan/types.test.d.ts +0 -1
  633. package/dist/context/scan/types.test.js +0 -206
  634. package/dist/context/scan/warehouse-catalog.test.d.ts +0 -1
  635. package/dist/context/scan/warehouse-catalog.test.js +0 -158
  636. package/dist/context/search/backend-conformance.test-utils.d.ts +0 -39
  637. package/dist/context/search/backend-conformance.test-utils.js +0 -88
  638. package/dist/context/search/backend-conformance.test-utils.test.d.ts +0 -1
  639. package/dist/context/search/backend-conformance.test-utils.test.js +0 -408
  640. package/dist/context/search/discover.test.d.ts +0 -1
  641. package/dist/context/search/discover.test.js +0 -197
  642. package/dist/context/search/hybrid-search-core.test.d.ts +0 -1
  643. package/dist/context/search/hybrid-search-core.test.js +0 -113
  644. package/dist/context/search/pglite-owner-process.test.d.ts +0 -1
  645. package/dist/context/search/pglite-owner-process.test.js +0 -273
  646. package/dist/context/search/pglite-runtime-boundary.test.d.ts +0 -1
  647. package/dist/context/search/pglite-runtime-boundary.test.js +0 -40
  648. package/dist/context/search/pglite-spike.test.d.ts +0 -1
  649. package/dist/context/search/pglite-spike.test.js +0 -249
  650. package/dist/context/search/query.test.d.ts +0 -1
  651. package/dist/context/search/query.test.js +0 -23
  652. package/dist/context/search/rrf.test.d.ts +0 -1
  653. package/dist/context/search/rrf.test.js +0 -47
  654. package/dist/context/skills/skills-registry.service.test.d.ts +0 -1
  655. package/dist/context/skills/skills-registry.service.test.js +0 -161
  656. package/dist/context/sl/dictionary-search.test.d.ts +0 -1
  657. package/dist/context/sl/dictionary-search.test.js +0 -204
  658. package/dist/context/sl/local-query.test.d.ts +0 -1
  659. package/dist/context/sl/local-query.test.js +0 -283
  660. package/dist/context/sl/local-sl.test.d.ts +0 -1
  661. package/dist/context/sl/local-sl.test.js +0 -334
  662. package/dist/context/sl/pglite-sl-search-prototype.test.d.ts +0 -1
  663. package/dist/context/sl/pglite-sl-search-prototype.test.js +0 -240
  664. package/dist/context/sl/schemas.contract.test.d.ts +0 -1
  665. package/dist/context/sl/schemas.contract.test.js +0 -62
  666. package/dist/context/sl/semantic-layer.service.test.d.ts +0 -1
  667. package/dist/context/sl/semantic-layer.service.test.js +0 -1107
  668. package/dist/context/sl/sl-dictionary-profile.test.d.ts +0 -1
  669. package/dist/context/sl/sl-dictionary-profile.test.js +0 -88
  670. package/dist/context/sl/sl-search.service.test.d.ts +0 -1
  671. package/dist/context/sl/sl-search.service.test.js +0 -256
  672. package/dist/context/sl/sqlite-sl-sources-index.test.d.ts +0 -1
  673. package/dist/context/sl/sqlite-sl-sources-index.test.js +0 -175
  674. package/dist/context/sl/tools/connection-id-schema.test.d.ts +0 -1
  675. package/dist/context/sl/tools/connection-id-schema.test.js +0 -14
  676. package/dist/context/sl/tools/sl-discover.tool.test.d.ts +0 -1
  677. package/dist/context/sl/tools/sl-discover.tool.test.js +0 -72
  678. package/dist/context/sl/tools/sl-edit-source.tool.test.d.ts +0 -1
  679. package/dist/context/sl/tools/sl-edit-source.tool.test.js +0 -184
  680. package/dist/context/sl/tools/sl-read-source.tool.session.test.d.ts +0 -1
  681. package/dist/context/sl/tools/sl-read-source.tool.session.test.js +0 -55
  682. package/dist/context/sl/tools/sl-rollback.tool.test.d.ts +0 -1
  683. package/dist/context/sl/tools/sl-rollback.tool.test.js +0 -57
  684. package/dist/context/sl/tools/sl-validate.tool.test.d.ts +0 -1
  685. package/dist/context/sl/tools/sl-validate.tool.test.js +0 -54
  686. package/dist/context/sl/tools/sl-warehouse-validation.test.d.ts +0 -1
  687. package/dist/context/sl/tools/sl-warehouse-validation.test.js +0 -136
  688. package/dist/context/sl/tools/sl-write-source.tool.test.d.ts +0 -1
  689. package/dist/context/sl/tools/sl-write-source.tool.test.js +0 -307
  690. package/dist/context/sql-analysis/http-sql-analysis-port.test.d.ts +0 -1
  691. package/dist/context/sql-analysis/http-sql-analysis-port.test.js +0 -147
  692. package/dist/context/test/make-local-git-repo.d.ts +0 -10
  693. package/dist/context/test/make-local-git-repo.js +0 -34
  694. package/dist/context/tools/context-evidence-tools.test.d.ts +0 -1
  695. package/dist/context/tools/context-evidence-tools.test.js +0 -486
  696. package/dist/context/tools/touched-sl-sources.test.d.ts +0 -1
  697. package/dist/context/tools/touched-sl-sources.test.js +0 -31
  698. package/dist/context/wiki/knowledge-wiki.service.test.d.ts +0 -1
  699. package/dist/context/wiki/knowledge-wiki.service.test.js +0 -205
  700. package/dist/context/wiki/local-knowledge.test.d.ts +0 -1
  701. package/dist/context/wiki/local-knowledge.test.js +0 -270
  702. package/dist/context/wiki/sqlite-knowledge-index.test.d.ts +0 -1
  703. package/dist/context/wiki/sqlite-knowledge-index.test.js +0 -129
  704. package/dist/context/wiki/tools/wiki-list-tags.tool.test.d.ts +0 -1
  705. package/dist/context/wiki/tools/wiki-list-tags.tool.test.js +0 -35
  706. package/dist/context/wiki/tools/wiki-read.tool.test.d.ts +0 -1
  707. package/dist/context/wiki/tools/wiki-read.tool.test.js +0 -66
  708. package/dist/context/wiki/tools/wiki-remove.tool.test.d.ts +0 -1
  709. package/dist/context/wiki/tools/wiki-remove.tool.test.js +0 -95
  710. package/dist/context/wiki/tools/wiki-search.tool.test.d.ts +0 -1
  711. package/dist/context/wiki/tools/wiki-search.tool.test.js +0 -35
  712. package/dist/context/wiki/tools/wiki-write.tool.test.d.ts +0 -1
  713. package/dist/context/wiki/tools/wiki-write.tool.test.js +0 -264
  714. package/dist/context/wiki/wiki-ref-validation.test.d.ts +0 -1
  715. package/dist/context/wiki/wiki-ref-validation.test.js +0 -64
  716. package/dist/context-build-view.test.d.ts +0 -1
  717. package/dist/context-build-view.test.js +0 -942
  718. package/dist/database-tree-picker.test.d.ts +0 -1
  719. package/dist/database-tree-picker.test.js +0 -188
  720. package/dist/demo-assets.test.d.ts +0 -1
  721. package/dist/demo-assets.test.js +0 -121
  722. package/dist/demo-metrics.test.d.ts +0 -1
  723. package/dist/demo-metrics.test.js +0 -108
  724. package/dist/doctor.test.d.ts +0 -1
  725. package/dist/doctor.test.js +0 -596
  726. package/dist/embedding-resolution.test.d.ts +0 -1
  727. package/dist/embedding-resolution.test.js +0 -132
  728. package/dist/example-smoke.test.d.ts +0 -1
  729. package/dist/example-smoke.test.js +0 -83
  730. package/dist/index.test.d.ts +0 -1
  731. package/dist/index.test.js +0 -1300
  732. package/dist/ingest-query-executor.test.d.ts +0 -1
  733. package/dist/ingest-query-executor.test.js +0 -71
  734. package/dist/ingest-report-file.test.d.ts +0 -1
  735. package/dist/ingest-report-file.test.js +0 -63
  736. package/dist/ingest-viz.test.d.ts +0 -1
  737. package/dist/ingest-viz.test.js +0 -691
  738. package/dist/ingest.test-utils.d.ts +0 -126
  739. package/dist/ingest.test-utils.js +0 -629
  740. package/dist/ingest.test.d.ts +0 -1
  741. package/dist/ingest.test.js +0 -1568
  742. package/dist/io/logger.test.d.ts +0 -1
  743. package/dist/io/logger.test.js +0 -55
  744. package/dist/io/mode.test.d.ts +0 -1
  745. package/dist/io/mode.test.js +0 -48
  746. package/dist/io/print-list.test.d.ts +0 -1
  747. package/dist/io/print-list.test.js +0 -277
  748. package/dist/knowledge.test.d.ts +0 -1
  749. package/dist/knowledge.test.js +0 -198
  750. package/dist/llm/embedding-health.test.d.ts +0 -1
  751. package/dist/llm/embedding-health.test.js +0 -72
  752. package/dist/llm/embedding-provider.test.d.ts +0 -1
  753. package/dist/llm/embedding-provider.test.js +0 -84
  754. package/dist/llm/message-builder.test.d.ts +0 -1
  755. package/dist/llm/message-builder.test.js +0 -127
  756. package/dist/llm/model-health.test.d.ts +0 -1
  757. package/dist/llm/model-health.test.js +0 -55
  758. package/dist/llm/model-provider.test.d.ts +0 -1
  759. package/dist/llm/model-provider.test.js +0 -246
  760. package/dist/llm/repair.test.d.ts +0 -1
  761. package/dist/llm/repair.test.js +0 -78
  762. package/dist/local-adapters.test.d.ts +0 -1
  763. package/dist/local-adapters.test.js +0 -166
  764. package/dist/local-scan-connectors.test.d.ts +0 -1
  765. package/dist/local-scan-connectors.test.js +0 -92
  766. package/dist/managed-local-embeddings.test.d.ts +0 -1
  767. package/dist/managed-local-embeddings.test.js +0 -229
  768. package/dist/managed-mcp-daemon.test.d.ts +0 -1
  769. package/dist/managed-mcp-daemon.test.js +0 -187
  770. package/dist/managed-python-command.test.d.ts +0 -1
  771. package/dist/managed-python-command.test.js +0 -262
  772. package/dist/managed-python-daemon.test.d.ts +0 -1
  773. package/dist/managed-python-daemon.test.js +0 -360
  774. package/dist/managed-python-http.test.d.ts +0 -1
  775. package/dist/managed-python-http.test.js +0 -177
  776. package/dist/managed-python-runtime.test.d.ts +0 -1
  777. package/dist/managed-python-runtime.test.js +0 -426
  778. package/dist/mcp-http-server.test.d.ts +0 -1
  779. package/dist/mcp-http-server.test.js +0 -209
  780. package/dist/mcp-server-factory.test.d.ts +0 -1
  781. package/dist/mcp-server-factory.test.js +0 -142
  782. package/dist/memory-flow-interactive.test.d.ts +0 -1
  783. package/dist/memory-flow-interactive.test.js +0 -109
  784. package/dist/memory-flow-tui.test.d.ts +0 -1
  785. package/dist/memory-flow-tui.test.js +0 -247
  786. package/dist/next-steps.test.d.ts +0 -1
  787. package/dist/next-steps.test.js +0 -77
  788. package/dist/notion-page-picker.test.d.ts +0 -1
  789. package/dist/notion-page-picker.test.js +0 -244
  790. package/dist/print-command-tree.test.d.ts +0 -1
  791. package/dist/print-command-tree.test.js +0 -37
  792. package/dist/project-dir.test.d.ts +0 -1
  793. package/dist/project-dir.test.js +0 -124
  794. package/dist/project-resolver.test.d.ts +0 -1
  795. package/dist/project-resolver.test.js +0 -49
  796. package/dist/prompt-navigation.test.d.ts +0 -1
  797. package/dist/prompt-navigation.test.js +0 -33
  798. package/dist/proxy-env.test.d.ts +0 -1
  799. package/dist/proxy-env.test.js +0 -17
  800. package/dist/public-ingest-copy.test.d.ts +0 -1
  801. package/dist/public-ingest-copy.test.js +0 -24
  802. package/dist/public-ingest.test.d.ts +0 -1
  803. package/dist/public-ingest.test.js +0 -891
  804. package/dist/runtime-requirements.test.d.ts +0 -1
  805. package/dist/runtime-requirements.test.js +0 -73
  806. package/dist/runtime.test.d.ts +0 -1
  807. package/dist/runtime.test.js +0 -381
  808. package/dist/scan.test.d.ts +0 -1
  809. package/dist/scan.test.js +0 -1123
  810. package/dist/setup-agents.test.d.ts +0 -1
  811. package/dist/setup-agents.test.js +0 -1028
  812. package/dist/setup-context.test.d.ts +0 -1
  813. package/dist/setup-context.test.js +0 -491
  814. package/dist/setup-databases.test.d.ts +0 -1
  815. package/dist/setup-databases.test.js +0 -2101
  816. package/dist/setup-demo-tour.test.d.ts +0 -1
  817. package/dist/setup-demo-tour.test.js +0 -221
  818. package/dist/setup-embeddings.test.d.ts +0 -1
  819. package/dist/setup-embeddings.test.js +0 -436
  820. package/dist/setup-interrupt.test.d.ts +0 -1
  821. package/dist/setup-interrupt.test.js +0 -77
  822. package/dist/setup-models.test.d.ts +0 -1
  823. package/dist/setup-models.test.js +0 -885
  824. package/dist/setup-project.test.d.ts +0 -1
  825. package/dist/setup-project.test.js +0 -209
  826. package/dist/setup-prompts.test.d.ts +0 -1
  827. package/dist/setup-prompts.test.js +0 -208
  828. package/dist/setup-ready-menu.test.d.ts +0 -1
  829. package/dist/setup-ready-menu.test.js +0 -44
  830. package/dist/setup-runtime.test.d.ts +0 -1
  831. package/dist/setup-runtime.test.js +0 -111
  832. package/dist/setup-secrets.test.d.ts +0 -1
  833. package/dist/setup-secrets.test.js +0 -30
  834. package/dist/setup-sources-notion.test.d.ts +0 -1
  835. package/dist/setup-sources-notion.test.js +0 -109
  836. package/dist/setup-sources.test.d.ts +0 -1
  837. package/dist/setup-sources.test.js +0 -1303
  838. package/dist/setup.test.d.ts +0 -1
  839. package/dist/setup.test.js +0 -1825
  840. package/dist/sl.test.d.ts +0 -1
  841. package/dist/sl.test.js +0 -567
  842. package/dist/source-mapping.test.d.ts +0 -1
  843. package/dist/source-mapping.test.js +0 -65
  844. package/dist/sql.test.d.ts +0 -1
  845. package/dist/sql.test.js +0 -253
  846. package/dist/standalone-smoke.test.d.ts +0 -1
  847. package/dist/standalone-smoke.test.js +0 -250
  848. package/dist/status-project.test.d.ts +0 -1
  849. package/dist/status-project.test.js +0 -502
  850. package/dist/telemetry/command-hook.test.d.ts +0 -1
  851. package/dist/telemetry/command-hook.test.js +0 -31
  852. package/dist/telemetry/demo-detect.test.d.ts +0 -1
  853. package/dist/telemetry/demo-detect.test.js +0 -22
  854. package/dist/telemetry/emitter.test.d.ts +0 -1
  855. package/dist/telemetry/emitter.test.js +0 -103
  856. package/dist/telemetry/events.snapshot.test.d.ts +0 -1
  857. package/dist/telemetry/events.snapshot.test.js +0 -135
  858. package/dist/telemetry/events.test.d.ts +0 -1
  859. package/dist/telemetry/events.test.js +0 -136
  860. package/dist/telemetry/identity.test.d.ts +0 -1
  861. package/dist/telemetry/identity.test.js +0 -148
  862. package/dist/telemetry/project-snapshot.test.d.ts +0 -1
  863. package/dist/telemetry/project-snapshot.test.js +0 -71
  864. package/dist/telemetry/schema-writer.test.d.ts +0 -1
  865. package/dist/telemetry/schema-writer.test.js +0 -23
  866. package/dist/telemetry/scrubber.test.d.ts +0 -1
  867. package/dist/telemetry/scrubber.test.js +0 -21
  868. package/dist/text-ingest.test.d.ts +0 -1
  869. package/dist/text-ingest.test.js +0 -247
  870. package/dist/tree-picker-state.test.d.ts +0 -1
  871. package/dist/tree-picker-state.test.js +0 -303
  872. package/dist/tree-picker-tui.test.d.ts +0 -1
  873. package/dist/tree-picker-tui.test.js +0 -248
  874. package/dist/viz-fallback.test.d.ts +0 -1
  875. package/dist/viz-fallback.test.js +0 -77
@@ -0,0 +1,23 @@
1
+ export function constraintDiscoveryWarning(input) {
2
+ return {
3
+ code: 'constraint_discovery_unauthorized',
4
+ message: `Skipped ${input.kind === 'primary_key' ? 'primary-key' : 'foreign-key'} ` +
5
+ `discovery in ${input.schema} (insufficient grants on system catalogs)`,
6
+ recoverable: true,
7
+ metadata: { schema: input.schema, kind: input.kind },
8
+ };
9
+ }
10
+ export async function tryConstraintQuery(ctx, fn) {
11
+ try {
12
+ return { ok: true, value: await fn() };
13
+ }
14
+ catch (error) {
15
+ if (!ctx.isDeniedError(error)) {
16
+ throw error;
17
+ }
18
+ return {
19
+ ok: false,
20
+ warning: constraintDiscoveryWarning({ schema: ctx.schema, kind: ctx.kind }),
21
+ };
22
+ }
23
+ }
@@ -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; legacy / Postgres-shape)
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; legacy / Postgres-shape)
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 parseDottedEntry(value);
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
- function parseDottedEntry(value) {
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(driver, tables) {
14
+ function candidateList(dialect, tables) {
30
15
  return tables
31
16
  .map((table) => ({
32
17
  tableRef: tableRef(table),
33
- display: displayForTable(driver, table),
18
+ display: dialect.formatDisplayRef(table),
34
19
  }))
35
20
  .sort((left, right) => left.display.localeCompare(right.display));
36
21
  }
37
- function parseDisplayRef(driver, display) {
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: ${displayForTable(snapshot.driver, input)}`,
63
- candidates: candidateList(snapshot.driver, snapshot.tables),
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(snapshot.driver, input);
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(snapshot.driver, snapshot.tables),
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(snapshot.driver, byName),
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(snapshot.driver, snapshot.tables),
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 ${displayForTable(scan.snapshot.driver, resolved.table)}: ${missing.join(', ')}`,
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: displayForTable(scan.snapshot.driver, resolved.table),
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
- driver: snapshot.driver,
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 === 'sqlite3' ? 'sqlite' : normalized;
51
+ return normalized;
54
52
  }
55
- throw new Error(`Standalone ktx scan supports postgres/postgresql/sqlite/mysql/clickhouse/sqlserver/bigquery/snowflake in this phase, received "${driver ?? 'unknown'}"`);
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
- driver: input.snapshot.driver,
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
- driver: input.snapshot.driver,
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
- driver: input.snapshot.driver,
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
- driver: input.snapshot.driver,
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
- driver: input.snapshot.driver,
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
- driver: input.snapshot.driver,
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 { KtxConnectionDriver, KtxScanContext, KtxTableRef } from './types.js';
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
- driver: KtxConnectionDriver;
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 topSql(driver, limit) {
117
- if (driver === 'sqlserver') {
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(driver, columns) {
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(driver, columns) {
134
- return columns.map((column) => `${quoteKtxRelationshipIdentifier(driver, column)} IS NOT NULL`).join(' AND ');
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 = formatKtxRelationshipTableRef(input.driver, input.table);
128
+ const tableSql = input.dialect.formatTableName(input.table);
141
129
  return [
142
130
  'WITH tuple_values AS (',
143
- `SELECT DISTINCT ${aliasedTupleSelect(input.driver, input.columns)} FROM ${tableSql}`,
144
- `WHERE ${nonNullPredicate(input.driver, input.columns)}`,
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 = formatKtxRelationshipTableRef(input.driver, input.childTable);
151
- const parentTableSql = formatKtxRelationshipTableRef(input.driver, input.parentTable);
152
- const top = topSql(input.driver, input.maxDistinctSourceValues);
153
- const limit = limitSql(input.driver, input.maxDistinctSourceValues);
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.driver, input.childColumns)} FROM ${childTableSql}`,
157
- `WHERE ${nonNullPredicate(input.driver, input.childColumns)}${limit}`,
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.driver, input.parentColumns)} FROM ${parentTableSql}`,
160
- `WHERE ${nonNullPredicate(input.driver, input.parentColumns)}`,
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
- driver: input.driver,
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
- driver: input.driver,
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
- driver: input.driver,
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
- driver: input.driver,
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 { KtxConnectionDriver, KtxScanConnector, KtxScanContext, KtxScanEnrichmentSummary, KtxScanRelationshipSummary, KtxScanWarning } from './types.js';
8
+ import type { KtxScanConnector, KtxScanContext, KtxScanEnrichmentSummary, KtxScanRelationshipSummary, KtxScanWarning } from './types.js';
8
9
  export interface DiscoverKtxRelationshipsInput {
9
10
  connectionId: string;
10
- driver: KtxConnectionDriver;
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
- driver: input.driver,
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
- driver: input.driver,
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
- driver: input.driver,
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
- driver: input.driver,
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
- driver: KtxConnectionDriver;
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 {};