@kaelio/ktx 0.4.1 → 0.5.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 (2064) hide show
  1. package/assets/python/kaelio_ktx-0.5.0-py3-none-any.whl +0 -0
  2. package/assets/python/manifest.json +4 -4
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/admin-reindex.d.ts +4 -1
  5. package/dist/admin-reindex.js +6 -3
  6. package/dist/admin-reindex.test.js +1 -1
  7. package/dist/admin.js +2 -1
  8. package/dist/clack.d.ts +0 -3
  9. package/dist/clack.js +1 -1
  10. package/dist/claude-code-prompt-caching.d.ts +1 -1
  11. package/dist/cli-program-telemetry.test.js +89 -0
  12. package/dist/cli-program.d.ts +5 -1
  13. package/dist/cli-program.js +74 -8
  14. package/dist/cli-program.test.js +25 -3
  15. package/dist/cli-runtime.d.ts +0 -1
  16. package/dist/cli-runtime.js +2 -2
  17. package/dist/command-schemas.d.ts +2 -2
  18. package/dist/commands/mcp-commands.test.js +1 -1
  19. package/dist/commands/sql-commands.test.js +1 -1
  20. package/dist/commands/status-commands.js +10 -1
  21. package/dist/connection.d.ts +5 -2
  22. package/dist/connection.js +75 -5
  23. package/dist/connection.test.js +22 -1
  24. package/dist/connectors/bigquery/connector.d.ts +146 -0
  25. package/dist/connectors/bigquery/connector.js +391 -0
  26. package/dist/connectors/bigquery/connector.test.js +363 -0
  27. package/dist/connectors/bigquery/dialect.d.ts +29 -0
  28. package/dist/connectors/bigquery/live-database-introspection.d.ts +10 -0
  29. package/dist/connectors/bigquery/live-database-introspection.js +24 -0
  30. package/dist/connectors/clickhouse/connector.d.ts +116 -0
  31. package/dist/connectors/clickhouse/connector.js +405 -0
  32. package/dist/connectors/clickhouse/connector.test.js +342 -0
  33. package/dist/connectors/clickhouse/dialect.d.ts +33 -0
  34. package/dist/connectors/clickhouse/live-database-introspection.d.ts +11 -0
  35. package/dist/connectors/clickhouse/live-database-introspection.js +25 -0
  36. package/dist/connectors/mysql/connector.d.ts +119 -0
  37. package/dist/connectors/mysql/connector.js +436 -0
  38. package/dist/connectors/mysql/connector.test.js +365 -0
  39. package/dist/connectors/mysql/dialect.d.ts +29 -0
  40. package/dist/connectors/mysql/live-database-introspection.d.ts +11 -0
  41. package/dist/connectors/mysql/live-database-introspection.js +25 -0
  42. package/dist/connectors/postgres/connector.d.ts +141 -0
  43. package/dist/connectors/postgres/connector.js +511 -0
  44. package/dist/connectors/postgres/connector.test.js +391 -0
  45. package/dist/connectors/postgres/dialect.d.ts +29 -0
  46. package/dist/connectors/postgres/historic-sql-query-client.d.ts +14 -0
  47. package/dist/connectors/postgres/live-database-introspection.d.ts +11 -0
  48. package/dist/connectors/postgres/live-database-introspection.js +25 -0
  49. package/dist/connectors/snowflake/connector.d.ts +138 -0
  50. package/dist/connectors/snowflake/connector.js +554 -0
  51. package/dist/connectors/snowflake/connector.test.js +462 -0
  52. package/dist/connectors/snowflake/dialect.d.ts +29 -0
  53. package/dist/connectors/snowflake/historic-sql-query-client.d.ts +13 -0
  54. package/dist/connectors/snowflake/historic-sql-query-client.js +20 -0
  55. package/dist/connectors/snowflake/identifiers.d.ts +2 -0
  56. package/dist/connectors/snowflake/identifiers.js +10 -0
  57. package/dist/connectors/snowflake/identifiers.test.js +12 -0
  58. package/dist/connectors/snowflake/live-database-introspection.d.ts +12 -0
  59. package/dist/connectors/snowflake/live-database-introspection.js +26 -0
  60. package/dist/connectors/snowflake/sdk-logger.d.ts +10 -0
  61. package/dist/connectors/snowflake/sdk-logger.js +29 -0
  62. package/dist/connectors/snowflake/sdk-logger.test.js +47 -0
  63. package/dist/connectors/sqlite/connector.d.ts +61 -0
  64. package/dist/connectors/sqlite/connector.js +260 -0
  65. package/dist/connectors/sqlite/connector.test.js +207 -0
  66. package/dist/connectors/sqlite/dialect.d.ts +29 -0
  67. package/dist/connectors/sqlite/live-database-introspection.d.ts +8 -0
  68. package/dist/connectors/sqlite/live-database-introspection.js +24 -0
  69. package/dist/connectors/sqlserver/connector.d.ts +139 -0
  70. package/dist/connectors/sqlserver/connector.js +534 -0
  71. package/dist/connectors/sqlserver/connector.test.js +313 -0
  72. package/dist/connectors/sqlserver/dialect.d.ts +30 -0
  73. package/dist/connectors/sqlserver/live-database-introspection.d.ts +11 -0
  74. package/dist/connectors/sqlserver/live-database-introspection.js +25 -0
  75. package/dist/context/connections/bigquery-identifiers.d.ts +2 -0
  76. package/dist/context/connections/bigquery-identifiers.js +15 -0
  77. package/dist/context/connections/bigquery-identifiers.test.js +13 -0
  78. package/dist/context/connections/dialects.d.ts +10 -0
  79. package/dist/context/connections/notion-config.d.ts +44 -0
  80. package/dist/context/connections/notion-config.js +134 -0
  81. package/dist/context/connections/query-executor.d.ts +19 -0
  82. package/dist/context/connections/sqlite-query-executor.d.ts +4 -0
  83. package/dist/context/connections/sqlite-query-executor.js +74 -0
  84. package/dist/context/core/config-reference.d.ts +3 -0
  85. package/dist/context/core/config-reference.js +30 -0
  86. package/dist/context/core/config.d.ts +26 -0
  87. package/dist/context/core/redaction.d.ts +5 -0
  88. package/dist/context/core/redaction.js +40 -0
  89. package/dist/context/core/session-worktree.service.d.ts +31 -0
  90. package/dist/context/daemon/semantic-layer-compute.d.ts +84 -0
  91. package/dist/context/daemon/semantic-layer-compute.js +194 -0
  92. package/dist/context/daemon/semantic-layer-compute.test.js +305 -0
  93. package/dist/context/index-sync/reindex.d.ts +3 -0
  94. package/dist/context/index-sync/reindex.js +144 -0
  95. package/dist/context/index-sync/reindex.test.js +139 -0
  96. package/dist/context/index-sync/types.d.ts +29 -0
  97. package/dist/context/ingest/action-identity.d.ts +3 -0
  98. package/dist/context/ingest/adapters/dbt/parse.d.ts +7 -0
  99. package/dist/context/ingest/adapters/dbt/parse.js +24 -0
  100. package/dist/context/ingest/adapters/dbt-descriptions/parse-schema.d.ts +65 -0
  101. package/dist/context/ingest/adapters/dbt-descriptions/parse-schema.js +426 -0
  102. package/dist/context/ingest/adapters/historic-sql/bigquery-query-history-reader.js +187 -0
  103. package/dist/context/ingest/adapters/historic-sql/connection-dialect.d.ts +8 -0
  104. package/dist/context/ingest/adapters/historic-sql/connection-dialect.js +30 -0
  105. package/dist/context/ingest/adapters/historic-sql/evidence.d.ts +77 -0
  106. package/dist/context/ingest/adapters/historic-sql/evidence.js +34 -0
  107. package/dist/context/ingest/adapters/historic-sql/local-ingest-acceptance.test.js +235 -0
  108. package/dist/context/ingest/adapters/historic-sql/pattern-inputs.d.ts +21 -0
  109. package/dist/context/ingest/adapters/historic-sql/pattern-inputs.js +68 -0
  110. package/dist/context/ingest/adapters/historic-sql/projection.d.ts +24 -0
  111. package/dist/context/ingest/adapters/historic-sql/skill-schemas.d.ts +37 -0
  112. package/dist/context/ingest/adapters/historic-sql/skill-schemas.js +25 -0
  113. package/dist/context/ingest/adapters/historic-sql/stage-unified.d.ts +13 -0
  114. package/dist/context/ingest/adapters/historic-sql/types.d.ts +183 -0
  115. package/dist/context/ingest/adapters/live-database/daemon-introspection.d.ts +21 -0
  116. package/dist/context/ingest/adapters/live-database/daemon-introspection.js +198 -0
  117. package/dist/context/ingest/adapters/live-database/daemon-introspection.test.js +241 -0
  118. package/dist/context/ingest/adapters/live-database/live-database.adapter.js +25 -0
  119. package/dist/context/ingest/adapters/live-database/live-database.adapter.test.js +105 -0
  120. package/dist/context/ingest/adapters/live-database/manifest.d.ts +66 -0
  121. package/dist/context/ingest/adapters/live-database/stage.d.ts +13 -0
  122. package/dist/context/ingest/adapters/live-database/stage.js +106 -0
  123. package/dist/context/ingest/adapters/live-database/types.d.ts +12 -0
  124. package/dist/context/ingest/adapters/looker/factory.d.ts +23 -0
  125. package/dist/context/ingest/adapters/looker/factory.js +23 -0
  126. package/dist/context/ingest/adapters/looker/fetch.d.ts +31 -0
  127. package/dist/context/ingest/adapters/looker/local-looker.adapter.d.ts +9 -0
  128. package/dist/context/ingest/adapters/looker/local-looker.adapter.js +35 -0
  129. package/dist/context/ingest/adapters/looker/local-runtime-store.d.ts +50 -0
  130. package/dist/context/ingest/adapters/looker/mapping.d.ts +132 -0
  131. package/dist/context/ingest/adapters/looker/mapping.js +310 -0
  132. package/dist/context/ingest/adapters/looker/reconcile.d.ts +1 -0
  133. package/dist/context/ingest/adapters/looker/reconcile.js +8 -0
  134. package/dist/context/ingest/adapters/looker/reconcile.test.js +12 -0
  135. package/dist/context/ingest/adapters/looker/scope.d.ts +7 -0
  136. package/dist/context/ingest/adapters/looker/scope.js +57 -0
  137. package/dist/context/ingest/adapters/looker/tools/looker-query-to-sl.tool.d.ts +107 -0
  138. package/dist/context/ingest/adapters/looker/tools/looker-query-to-sl.tool.js +237 -0
  139. package/dist/context/ingest/adapters/looker/types.d.ts +439 -0
  140. package/dist/context/ingest/adapters/looker/types.js +199 -0
  141. package/dist/context/ingest/adapters/looker/types.test.js +261 -0
  142. package/dist/context/ingest/adapters/lookml/fetch-report.d.ts +17 -0
  143. package/dist/context/ingest/adapters/lookml/fetch-report.js +100 -0
  144. package/dist/context/ingest/adapters/lookml/pull-config.d.ts +38 -0
  145. package/dist/context/ingest/adapters/lookml/pull-config.js +26 -0
  146. package/dist/context/ingest/adapters/metabase/client-port.d.ts +167 -0
  147. package/dist/context/ingest/adapters/metabase/client.d.ts +116 -0
  148. package/dist/context/ingest/adapters/metabase/client.js +673 -0
  149. package/dist/context/ingest/adapters/metabase/fanout-planner.d.ts +18 -0
  150. package/dist/context/ingest/adapters/metabase/local-metabase.adapter.d.ts +14 -0
  151. package/dist/context/ingest/adapters/metabase/local-metabase.adapter.js +41 -0
  152. package/dist/context/ingest/adapters/metabase/local-source-state-store.d.ts +43 -0
  153. package/dist/context/ingest/adapters/metabase/local-source-state-store.js +176 -0
  154. package/dist/context/ingest/adapters/metabase/local-source-state-store.test.js +99 -0
  155. package/dist/context/ingest/adapters/metabase/mapping.d.ts +102 -0
  156. package/dist/context/ingest/adapters/metabase/mapping.js +225 -0
  157. package/dist/context/ingest/adapters/metabase/serialize-card.d.ts +56 -0
  158. package/dist/context/ingest/adapters/metabase/serialize-card.js +68 -0
  159. package/dist/context/ingest/adapters/metabase/source-state-port.d.ts +24 -0
  160. package/dist/context/ingest/adapters/metabase/types.d.ts +143 -0
  161. package/dist/context/ingest/adapters/metabase/types.js +107 -0
  162. package/dist/context/ingest/adapters/metricflow/deep-parse.d.ts +78 -0
  163. package/dist/context/ingest/adapters/metricflow/deep-parse.js +461 -0
  164. package/dist/context/ingest/adapters/metricflow/import-semantic-models.d.ts +30 -0
  165. package/dist/context/ingest/adapters/metricflow/import-semantic-models.js +136 -0
  166. package/dist/context/ingest/adapters/metricflow/parse.d.ts +43 -0
  167. package/dist/context/ingest/adapters/metricflow/pull-config.d.ts +38 -0
  168. package/dist/context/ingest/adapters/metricflow/pull-config.js +24 -0
  169. package/dist/context/ingest/adapters/metricflow/semantic-models.d.ts +37 -0
  170. package/dist/context/ingest/adapters/metricflow/semantic-models.js +283 -0
  171. package/dist/context/ingest/adapters/metricflow/semantic-models.test.js +204 -0
  172. package/dist/context/ingest/adapters/notion/chunk.d.ts +5 -0
  173. package/dist/context/ingest/adapters/notion/chunk.js +138 -0
  174. package/dist/context/ingest/adapters/notion/cluster.d.ts +11 -0
  175. package/dist/context/ingest/adapters/notion/cluster.js +83 -0
  176. package/dist/context/ingest/adapters/notion/normalize.d.ts +11 -0
  177. package/dist/context/ingest/adapters/notion/normalize.js +166 -0
  178. package/dist/context/ingest/adapters/notion/notion-client.d.ts +75 -0
  179. package/dist/context/ingest/adapters/notion/notion-client.js +108 -0
  180. package/dist/context/ingest/artifact-gates.d.ts +26 -0
  181. package/dist/context/ingest/context-candidates/candidate-dedup.service.d.ts +27 -0
  182. package/dist/context/ingest/context-candidates/candidate-dedup.service.js +234 -0
  183. package/dist/context/ingest/context-candidates/context-candidate-carryforward.service.d.ts +31 -0
  184. package/dist/context/ingest/context-candidates/context-candidate-carryforward.service.js +131 -0
  185. package/dist/context/ingest/context-candidates/curator-pagination.service.d.ts +64 -0
  186. package/dist/context/ingest/context-candidates/curator-pagination.service.js +240 -0
  187. package/dist/context/ingest/context-candidates/types.d.ts +93 -0
  188. package/dist/context/ingest/context-evidence/context-evidence-index.service.d.ts +53 -0
  189. package/dist/context/ingest/context-evidence/context-evidence-index.service.js +303 -0
  190. package/dist/context/ingest/context-evidence/sqlite-context-evidence-store.d.ts +90 -0
  191. package/dist/context/ingest/context-evidence/sqlite-context-evidence-store.js +1025 -0
  192. package/dist/context/ingest/dbt-shared/project-vars.d.ts +14 -0
  193. package/dist/context/ingest/dbt-shared/project-vars.js +88 -0
  194. package/dist/context/ingest/dbt-shared/schema-files.d.ts +4 -0
  195. package/dist/context/ingest/dbt-shared/schema-files.js +63 -0
  196. package/dist/context/ingest/final-gate-repair.d.ts +29 -0
  197. package/dist/context/ingest/finalization-scope.d.ts +22 -0
  198. package/dist/context/ingest/ingest-bundle.runner.isolated-diff.test.js +1928 -0
  199. package/dist/context/ingest/ingest-bundle.runner.js +2247 -0
  200. package/dist/context/ingest/ingest-bundle.runner.test.js +1899 -0
  201. package/dist/context/ingest/ingest-runtime-assets.test.js +89 -0
  202. package/dist/context/ingest/ingest-trace.d.ts +25 -0
  203. package/dist/context/ingest/ingest-trace.js +74 -0
  204. package/dist/context/ingest/isolated-diff/git-patch.d.ts +17 -0
  205. package/dist/context/ingest/isolated-diff/git-patch.js +79 -0
  206. package/dist/context/ingest/isolated-diff/patch-integrator.d.ts +59 -0
  207. package/dist/context/ingest/isolated-diff/patch-integrator.test.js +369 -0
  208. package/dist/context/ingest/isolated-diff/textual-conflict-resolver.d.ts +23 -0
  209. package/dist/context/ingest/isolated-diff/work-unit-executor.test.js +137 -0
  210. package/dist/context/ingest/local-adapters.d.ts +35 -0
  211. package/dist/context/ingest/local-adapters.js +242 -0
  212. package/dist/context/ingest/local-adapters.test.js +612 -0
  213. package/dist/context/ingest/local-bundle-ingest.test.js +794 -0
  214. package/dist/context/ingest/local-bundle-runtime.d.ts +35 -0
  215. package/dist/context/ingest/local-bundle-runtime.js +636 -0
  216. package/dist/context/ingest/local-bundle-runtime.test.js +240 -0
  217. package/dist/context/ingest/local-ingest.d.ts +82 -0
  218. package/dist/context/ingest/local-ingest.js +297 -0
  219. package/dist/context/ingest/local-mapping-reconcile.d.ts +2 -0
  220. package/dist/context/ingest/local-mapping-reconcile.js +27 -0
  221. package/dist/context/ingest/local-mapping-reconcile.test.js +61 -0
  222. package/dist/context/ingest/local-metabase-ingest.test.js +227 -0
  223. package/dist/context/ingest/local-stage-ingest.d.ts +56 -0
  224. package/dist/context/ingest/local-stage-ingest.js +290 -0
  225. package/dist/context/ingest/local-stage-ingest.test.js +581 -0
  226. package/dist/context/ingest/memory-flow/events.d.ts +10 -0
  227. package/dist/context/ingest/memory-flow/events.js +197 -0
  228. package/dist/context/ingest/memory-flow/interaction.d.ts +11 -0
  229. package/dist/context/ingest/memory-flow/interaction.js +317 -0
  230. package/dist/context/ingest/memory-flow/schema.d.ts +18 -0
  231. package/dist/context/ingest/memory-flow/schema.js +174 -0
  232. package/dist/context/ingest/memory-flow/visuals.d.ts +25 -0
  233. package/dist/context/ingest/memory-flow/visuals.js +46 -0
  234. package/dist/context/ingest/page-triage/page-triage.service.d.ts +84 -0
  235. package/dist/context/ingest/page-triage/page-triage.service.js +318 -0
  236. package/dist/context/ingest/ports.d.ts +328 -0
  237. package/dist/context/ingest/raw-sources-paths.d.ts +6 -0
  238. package/dist/context/ingest/raw-sources-paths.js +18 -0
  239. package/dist/context/ingest/repo-fetch.d.ts +41 -0
  240. package/dist/context/ingest/repo-fetch.js +138 -0
  241. package/dist/context/ingest/report-snapshot.d.ts +2 -0
  242. package/dist/context/ingest/report-snapshot.js +212 -0
  243. package/dist/context/ingest/reports.d.ts +120 -0
  244. package/dist/context/ingest/reports.js +30 -0
  245. package/dist/context/ingest/semantic-layer-target-policy.d.ts +14 -0
  246. package/dist/context/ingest/semantic-layer-target-policy.js +28 -0
  247. package/dist/context/ingest/stages/build-reconcile-context.d.ts +61 -0
  248. package/dist/context/ingest/stages/build-wu-context.d.ts +27 -0
  249. package/dist/context/ingest/stages/build-wu-context.js +87 -0
  250. package/dist/context/ingest/stages/stage-3-work-units.d.ts +49 -0
  251. package/dist/context/ingest/stages/stage-3-work-units.js +108 -0
  252. package/dist/context/ingest/stages/stage-3-work-units.test.js +175 -0
  253. package/dist/context/ingest/stages/stage-4-reconciliation.d.ts +28 -0
  254. package/dist/context/ingest/stages/stage-index.types.d.ts +51 -0
  255. package/dist/context/ingest/stages/validate-wu-sources.d.ts +10 -0
  256. package/dist/context/ingest/tools/tool-call-logger.d.ts +33 -0
  257. package/dist/context/ingest/tools/verification-ledger.tool.d.ts +14 -0
  258. package/dist/context/ingest/tools/warehouse-verification/create-warehouse-verification-tools.d.ts +9 -0
  259. package/dist/context/ingest/tools/warehouse-verification/discover-data.tool.d.ts +36 -0
  260. package/dist/context/ingest/tools/warehouse-verification/discover-data.tool.js +94 -0
  261. package/dist/context/ingest/tools/warehouse-verification/entity-details.tool.d.ts +43 -0
  262. package/dist/context/ingest/tools/warehouse-verification/entity-details.tool.js +137 -0
  263. package/dist/context/ingest/tools/warehouse-verification/entity-details.tool.test.js +146 -0
  264. package/dist/context/ingest/tools/warehouse-verification/sql-execution.tool.d.ts +31 -0
  265. package/dist/context/ingest/tools/warehouse-verification/sql-execution.tool.js +84 -0
  266. package/dist/context/ingest/types.d.ts +203 -0
  267. package/dist/context/ingest/wiki-body-refs.d.ts +26 -0
  268. package/dist/context/ingest/wiki-body-refs.js +112 -0
  269. package/dist/context/ingest/wiki-sl-ref-repair.d.ts +19 -0
  270. package/dist/context/llm/ai-sdk-runtime.d.ts +24 -0
  271. package/dist/context/llm/ai-sdk-runtime.js +133 -0
  272. package/dist/context/llm/ai-sdk-runtime.test.js +308 -0
  273. package/dist/context/llm/claude-code-env.d.ts +3 -0
  274. package/dist/context/llm/claude-code-env.js +22 -0
  275. package/dist/context/llm/claude-code-runtime.d.ts +37 -0
  276. package/dist/context/llm/claude-code-runtime.js +281 -0
  277. package/dist/context/llm/claude-code-runtime.test.js +434 -0
  278. package/dist/context/llm/debug-request-recorder.d.ts +45 -0
  279. package/dist/context/llm/debug-request-recorder.js +80 -0
  280. package/dist/context/llm/embedding-port.d.ts +17 -0
  281. package/dist/context/llm/embedding-port.test.js +34 -0
  282. package/dist/context/llm/local-config.d.ts +24 -0
  283. package/dist/context/llm/local-config.js +136 -0
  284. package/dist/context/llm/local-config.test.js +164 -0
  285. package/dist/context/llm/runtime-port.d.ts +60 -0
  286. package/dist/context/llm/runtime-tools.d.ts +9 -0
  287. package/dist/context/llm/runtime-tools.js +65 -0
  288. package/dist/context/mcp/context-tools.d.ts +12 -0
  289. package/dist/context/mcp/context-tools.js +602 -0
  290. package/dist/context/mcp/local-project-ports.d.ts +16 -0
  291. package/dist/context/mcp/local-project-ports.js +202 -0
  292. package/dist/context/mcp/local-project-ports.test.js +689 -0
  293. package/dist/context/mcp/server.d.ts +8 -0
  294. package/dist/context/mcp/server.js +29 -0
  295. package/dist/context/mcp/server.test.js +902 -0
  296. package/dist/context/mcp/types.d.ts +169 -0
  297. package/dist/context/memory/capture-signals.d.ts +9 -0
  298. package/dist/context/memory/capture-signals.js +104 -0
  299. package/dist/context/memory/local-memory.d.ts +24 -0
  300. package/dist/context/memory/local-memory.js +418 -0
  301. package/dist/context/memory/local-memory.test.js +173 -0
  302. package/dist/context/memory/memory-agent.service.d.ts +60 -0
  303. package/dist/context/memory/memory-agent.service.ingest.test.js +355 -0
  304. package/dist/context/memory/memory-agent.service.js +540 -0
  305. package/dist/context/memory/memory-agent.service.test.js +413 -0
  306. package/dist/context/memory/memory-runs.d.ts +55 -0
  307. package/dist/context/memory/memory-runtime-assets.test.js +162 -0
  308. package/dist/context/memory/types.d.ts +145 -0
  309. package/dist/context/project/config.d.ts +478 -0
  310. package/dist/context/project/config.js +325 -0
  311. package/dist/context/project/config.test.js +467 -0
  312. package/dist/context/project/driver-schemas.d.ts +105 -0
  313. package/dist/context/project/driver-schemas.js +184 -0
  314. package/dist/context/project/driver-schemas.test.js +125 -0
  315. package/dist/context/project/local-git-file-store.d.ts +24 -0
  316. package/dist/context/project/local-git-file-store.test.js +71 -0
  317. package/dist/context/project/mappings-yaml-schema.d.ts +61 -0
  318. package/dist/context/project/mappings-yaml-schema.js +111 -0
  319. package/dist/context/project/project.d.ts +30 -0
  320. package/dist/context/project/project.js +94 -0
  321. package/dist/context/project/setup-config.d.ts +13 -0
  322. package/dist/context/project/setup-config.js +80 -0
  323. package/dist/context/prompts/prompt.service.d.ts +28 -0
  324. package/dist/context/prompts/prompt.service.js +84 -0
  325. package/dist/context/scan/credentials.d.ts +10 -0
  326. package/dist/context/scan/credentials.js +41 -0
  327. package/dist/context/scan/credentials.test.js +162 -0
  328. package/dist/context/scan/data-dictionary.d.ts +26 -0
  329. package/dist/context/scan/data-dictionary.js +67 -0
  330. package/dist/context/scan/description-generation.d.ts +148 -0
  331. package/dist/context/scan/description-generation.js +760 -0
  332. package/dist/context/scan/description-generation.test.js +693 -0
  333. package/dist/context/scan/embedding-text.d.ts +22 -0
  334. package/dist/context/scan/enabled-tables.d.ts +16 -0
  335. package/dist/context/scan/enabled-tables.js +62 -0
  336. package/dist/context/scan/enrichment-state.d.ts +47 -0
  337. package/dist/context/scan/enrichment-state.js +44 -0
  338. package/dist/context/scan/enrichment-types.d.ts +103 -0
  339. package/dist/context/scan/entity-details.d.ts +58 -0
  340. package/dist/context/scan/entity-details.test.js +234 -0
  341. package/dist/context/scan/local-enrichment-artifacts.d.ts +32 -0
  342. package/dist/context/scan/local-enrichment-artifacts.js +275 -0
  343. package/dist/context/scan/local-enrichment-artifacts.test.js +771 -0
  344. package/dist/context/scan/local-enrichment.d.ts +46 -0
  345. package/dist/context/scan/local-enrichment.js +467 -0
  346. package/dist/context/scan/local-enrichment.test.js +765 -0
  347. package/dist/context/scan/local-scan.d.ts +62 -0
  348. package/dist/context/scan/local-scan.js +449 -0
  349. package/dist/context/scan/local-scan.test.js +1663 -0
  350. package/dist/context/scan/local-structural-artifacts.d.ts +10 -0
  351. package/dist/context/scan/local-structural-artifacts.test.js +144 -0
  352. package/dist/context/scan/relationship-benchmarks.d.ts +148 -0
  353. package/dist/context/scan/relationship-budget.d.ts +21 -0
  354. package/dist/context/scan/relationship-budget.js +35 -0
  355. package/dist/context/scan/relationship-candidates.d.ts +50 -0
  356. package/dist/context/scan/relationship-candidates.js +557 -0
  357. package/dist/context/scan/relationship-composite-candidates.d.ts +67 -0
  358. package/dist/context/scan/relationship-diagnostics.d.ts +96 -0
  359. package/dist/context/scan/relationship-diagnostics.js +225 -0
  360. package/dist/context/scan/relationship-discovery.d.ts +27 -0
  361. package/dist/context/scan/relationship-discovery.js +248 -0
  362. package/dist/context/scan/relationship-graph-resolver.d.ts +49 -0
  363. package/dist/context/scan/relationship-llm-proposal.d.ts +26 -0
  364. package/dist/context/scan/relationship-llm-proposal.js +191 -0
  365. package/dist/context/scan/relationship-name-similarity.d.ts +15 -0
  366. package/dist/context/scan/relationship-name-similarity.js +124 -0
  367. package/dist/context/scan/relationship-profiling.d.ts +57 -0
  368. package/dist/context/scan/relationship-profiling.js +334 -0
  369. package/dist/context/scan/relationship-profiling.test.js +392 -0
  370. package/dist/context/scan/relationship-scoring.d.ts +34 -0
  371. package/dist/context/scan/relationship-scoring.js +98 -0
  372. package/dist/context/scan/relationship-validation.d.ts +46 -0
  373. package/dist/context/scan/relationship-validation.js +240 -0
  374. package/dist/context/scan/relationship-validation.test.js +455 -0
  375. package/dist/context/scan/table-ref.d.ts +26 -0
  376. package/dist/context/scan/table-ref.js +36 -0
  377. package/dist/context/scan/table-ref.test.js +53 -0
  378. package/dist/context/scan/type-normalization.d.ts +10 -0
  379. package/dist/context/scan/type-normalization.js +24 -0
  380. package/dist/context/scan/types.d.ts +328 -0
  381. package/dist/context/scan/warehouse-catalog.d.ts +69 -0
  382. package/dist/context/scan/warehouse-catalog.js +311 -0
  383. package/dist/context/scan/warehouse-catalog.test.js +158 -0
  384. package/dist/context/search/backend-conformance.test-utils.test.js +408 -0
  385. package/dist/context/search/discover.d.ts +31 -0
  386. package/dist/context/search/discover.js +341 -0
  387. package/dist/context/search/discover.test.js +197 -0
  388. package/dist/context/search/pglite-owner-process.d.ts +20 -0
  389. package/dist/context/search/pglite-owner-process.js +82 -0
  390. package/dist/context/search/pglite-owner-process.test.js +273 -0
  391. package/dist/context/search/pglite-runtime-boundary.test.js +40 -0
  392. package/dist/context/search/pglite-spike.test.js +249 -0
  393. package/dist/context/search/types.d.ts +73 -0
  394. package/dist/context/skills/skills-registry.service.d.ts +35 -0
  395. package/dist/context/skills/skills-registry.service.js +215 -0
  396. package/dist/context/sl/dictionary-search.d.ts +43 -0
  397. package/dist/context/sl/dictionary-search.test.js +204 -0
  398. package/dist/context/sl/local-query.d.ts +19 -0
  399. package/dist/context/sl/local-query.test.js +283 -0
  400. package/dist/context/sl/local-sl.d.ts +62 -0
  401. package/dist/context/sl/local-sl.js +485 -0
  402. package/dist/context/sl/local-sl.test.js +334 -0
  403. package/dist/context/sl/pglite-sl-search-prototype.d.ts +16 -0
  404. package/dist/context/sl/pglite-sl-search-prototype.js +433 -0
  405. package/dist/context/sl/pglite-sl-search-prototype.test.js +240 -0
  406. package/dist/context/sl/semantic-layer.service.d.ts +220 -0
  407. package/dist/context/sl/semantic-layer.service.js +1354 -0
  408. package/dist/context/sl/semantic-layer.service.test.js +1107 -0
  409. package/dist/context/sl/sl-dictionary-profile.d.ts +9 -0
  410. package/dist/context/sl/sl-dictionary-profile.js +80 -0
  411. package/dist/context/sl/sl-dictionary-profile.test.js +88 -0
  412. package/dist/context/sl/sl-search.service.d.ts +19 -0
  413. package/dist/context/sl/sl-search.service.js +158 -0
  414. package/dist/context/sl/sl-validator.port.d.ts +8 -0
  415. package/dist/context/sl/tools/base-semantic-layer.tool.d.ts +46 -0
  416. package/dist/context/sl/tools/base-semantic-layer.tool.js +91 -0
  417. package/dist/context/sl/tools/sl-discover.tool.d.ts +52 -0
  418. package/dist/context/sl/tools/sl-discover.tool.test.js +72 -0
  419. package/dist/context/sl/tools/sl-edit-source.tool.d.ts +33 -0
  420. package/dist/context/sl/tools/sl-edit-source.tool.js +179 -0
  421. package/dist/context/sl/tools/sl-edit-source.tool.test.js +184 -0
  422. package/dist/context/sl/tools/sl-read-source.tool.d.ts +23 -0
  423. package/dist/context/sl/tools/sl-read-source.tool.session.test.js +55 -0
  424. package/dist/context/sl/tools/sl-rollback.tool.d.ts +25 -0
  425. package/dist/context/sl/tools/sl-rollback.tool.js +64 -0
  426. package/dist/context/sl/tools/sl-rollback.tool.test.js +57 -0
  427. package/dist/context/sl/tools/sl-validate.tool.d.ts +24 -0
  428. package/dist/context/sl/tools/sl-validate.tool.js +101 -0
  429. package/dist/context/sl/tools/sl-validate.tool.test.js +54 -0
  430. package/dist/context/sl/tools/sl-warehouse-validation.d.ts +32 -0
  431. package/dist/context/sl/tools/sl-warehouse-validation.js +246 -0
  432. package/dist/context/sl/tools/sl-write-source.tool.d.ts +422 -0
  433. package/dist/context/sl/tools/sl-write-source.tool.js +321 -0
  434. package/dist/context/sl/tools/sl-write-source.tool.test.js +307 -0
  435. package/dist/context/sl/types.d.ts +141 -0
  436. package/dist/context/sql-analysis/ports.d.ts +34 -0
  437. package/dist/context/tools/base-tool.d.ts +85 -0
  438. package/dist/context/tools/base-tool.js +94 -0
  439. package/dist/context/tools/context-candidate-mark.tool.d.ts +41 -0
  440. package/dist/context/tools/context-candidate-write.tool.d.ts +64 -0
  441. package/dist/context/tools/context-candidate-write.tool.js +140 -0
  442. package/dist/context/tools/context-evidence-search.tool.d.ts +57 -0
  443. package/dist/context/tools/context-evidence-search.tool.js +97 -0
  444. package/dist/context/tools/context-evidence-tool-store.d.ts +113 -0
  445. package/dist/context/tools/context-evidence-tools.test.js +486 -0
  446. package/dist/context/tools/tool-session.d.ts +55 -0
  447. package/dist/context/tools/touched-sl-sources.d.ts +13 -0
  448. package/dist/context/tools/touched-sl-sources.js +48 -0
  449. package/dist/context/wiki/keys.d.ts +10 -0
  450. package/dist/context/wiki/keys.js +26 -0
  451. package/dist/context/wiki/knowledge-wiki.service.d.ts +79 -0
  452. package/dist/context/wiki/knowledge-wiki.service.js +370 -0
  453. package/dist/context/wiki/knowledge-wiki.service.test.js +205 -0
  454. package/dist/context/wiki/local-knowledge.d.ts +58 -0
  455. package/dist/context/wiki/local-knowledge.js +290 -0
  456. package/dist/context/wiki/local-knowledge.test.js +270 -0
  457. package/dist/context/wiki/ports.d.ts +68 -0
  458. package/dist/context/wiki/tools/wiki-list-tags.tool.d.ts +16 -0
  459. package/dist/context/wiki/tools/wiki-list-tags.tool.js +34 -0
  460. package/dist/context/wiki/tools/wiki-read.tool.d.ts +28 -0
  461. package/dist/context/wiki/tools/wiki-read.tool.js +59 -0
  462. package/dist/context/wiki/tools/wiki-read.tool.test.js +66 -0
  463. package/dist/context/wiki/tools/wiki-remove.tool.d.ts +28 -0
  464. package/dist/context/wiki/tools/wiki-remove.tool.js +86 -0
  465. package/dist/context/wiki/tools/wiki-remove.tool.test.js +95 -0
  466. package/dist/context/wiki/tools/wiki-search.tool.d.ts +50 -0
  467. package/dist/context/wiki/tools/wiki-search.tool.js +54 -0
  468. package/dist/context/wiki/tools/wiki-write.tool.d.ts +80 -0
  469. package/dist/context/wiki/tools/wiki-write.tool.js +211 -0
  470. package/dist/context/wiki/tools/wiki-write.tool.test.js +264 -0
  471. package/dist/context/wiki/types.d.ts +45 -0
  472. package/dist/context/wiki/wiki-ref-validation.d.ts +17 -0
  473. package/dist/context-build-view.d.ts +4 -0
  474. package/dist/context-build-view.js +7 -2
  475. package/dist/context-build-view.test.js +1 -4
  476. package/dist/database-tree-picker.d.ts +36 -3
  477. package/dist/database-tree-picker.js +78 -3
  478. package/dist/database-tree-picker.test.js +82 -29
  479. package/dist/demo-assets.d.ts +7 -0
  480. package/dist/demo-assets.js +18 -0
  481. package/dist/demo-assets.test.js +27 -1
  482. package/dist/demo-metrics.d.ts +5 -1
  483. package/dist/demo-metrics.js +4 -0
  484. package/dist/doctor.d.ts +2 -1
  485. package/dist/doctor.js +13 -3
  486. package/dist/doctor.test.js +4 -11
  487. package/dist/embedding-resolution.d.ts +3 -2
  488. package/dist/embedding-resolution.js +2 -2
  489. package/dist/embedding-resolution.test.js +1 -1
  490. package/dist/index.test.js +8 -10
  491. package/dist/ingest-depth.d.ts +1 -1
  492. package/dist/ingest-query-executor.d.ts +2 -2
  493. package/dist/ingest-query-executor.test.js +1 -1
  494. package/dist/ingest-report-file.d.ts +1 -1
  495. package/dist/ingest-report-file.js +1 -1
  496. package/dist/ingest.d.ts +5 -3
  497. package/dist/ingest.js +13 -5
  498. package/dist/ingest.test-utils.d.ts +9 -2
  499. package/dist/ingest.test-utils.js +7 -3
  500. package/dist/ingest.test.js +52 -18
  501. package/dist/io/logger.d.ts +1 -0
  502. package/dist/io/logger.js +1 -0
  503. package/dist/knowledge.d.ts +2 -2
  504. package/dist/knowledge.js +29 -3
  505. package/dist/knowledge.test.js +17 -3
  506. package/dist/llm/model-health.d.ts +19 -0
  507. package/dist/llm/model-provider.d.ts +21 -0
  508. package/dist/llm/model-provider.js +150 -0
  509. package/dist/llm/types.d.ts +106 -0
  510. package/dist/local-adapters.d.ts +4 -3
  511. package/dist/local-adapters.js +43 -59
  512. package/dist/local-adapters.test.js +35 -31
  513. package/dist/local-scan-connectors.d.ts +2 -2
  514. package/dist/local-scan-connectors.js +38 -21
  515. package/dist/local-scan-connectors.test.js +2 -2
  516. package/dist/managed-local-embeddings.d.ts +1 -1
  517. package/dist/managed-mcp-daemon.d.ts +1 -0
  518. package/dist/managed-python-command.d.ts +5 -2
  519. package/dist/managed-python-command.js +7 -1
  520. package/dist/managed-python-daemon.d.ts +6 -2
  521. package/dist/managed-python-http.d.ts +8 -4
  522. package/dist/managed-python-http.js +5 -3
  523. package/dist/managed-python-runtime.d.ts +6 -2
  524. package/dist/managed-python-runtime.js +3 -0
  525. package/dist/mcp-http-server.d.ts +5 -2
  526. package/dist/mcp-http-server.js +5 -2
  527. package/dist/mcp-server-factory.d.ts +1 -1
  528. package/dist/mcp-server-factory.js +15 -7
  529. package/dist/mcp-server-factory.test.js +142 -0
  530. package/dist/mcp-stdio-server.d.ts +2 -2
  531. package/dist/mcp-stdio-server.js +4 -3
  532. package/dist/memory-flow-hud.d.ts +1 -1
  533. package/dist/memory-flow-interactive.d.ts +2 -1
  534. package/dist/memory-flow-interactive.js +4 -1
  535. package/dist/memory-flow-tui.d.ts +5 -2
  536. package/dist/memory-flow-tui.js +4 -1
  537. package/dist/next-steps.d.ts +2 -1
  538. package/dist/next-steps.js +3 -1
  539. package/dist/notion-page-picker.d.ts +7 -2
  540. package/dist/notion-page-picker.js +6 -2
  541. package/dist/print-command-tree.js +2 -8
  542. package/dist/prompt-navigation.d.ts +1 -0
  543. package/dist/prompt-navigation.js +1 -0
  544. package/dist/public-ingest.d.ts +2 -2
  545. package/dist/public-ingest.js +82 -15
  546. package/dist/public-ingest.test.js +83 -7
  547. package/dist/runtime-requirements.d.ts +2 -1
  548. package/dist/runtime-requirements.js +7 -0
  549. package/dist/runtime-requirements.test.js +13 -2
  550. package/dist/scan.d.ts +5 -1
  551. package/dist/scan.js +48 -5
  552. package/dist/scan.test.js +148 -9
  553. package/dist/setup-agents.d.ts +7 -3
  554. package/dist/setup-agents.js +9 -3
  555. package/dist/setup-agents.test.js +2 -2
  556. package/dist/setup-context.d.ts +8 -4
  557. package/dist/setup-context.js +15 -8
  558. package/dist/setup-context.test.js +4 -3
  559. package/dist/setup-database-context-depth.d.ts +2 -1
  560. package/dist/setup-database-context-depth.js +2 -1
  561. package/dist/setup-databases.d.ts +11 -2
  562. package/dist/setup-databases.js +349 -155
  563. package/dist/setup-databases.test.js +300 -82
  564. package/dist/setup-demo-tour.d.ts +8 -3
  565. package/dist/setup-demo-tour.js +10 -4
  566. package/dist/setup-embeddings.d.ts +3 -1
  567. package/dist/setup-embeddings.js +5 -3
  568. package/dist/setup-embeddings.test.js +3 -1
  569. package/dist/setup-interrupt.d.ts +1 -0
  570. package/dist/setup-models.d.ts +12 -9
  571. package/dist/setup-models.js +16 -9
  572. package/dist/setup-models.test.js +44 -39
  573. package/dist/setup-project.d.ts +5 -3
  574. package/dist/setup-project.js +3 -1
  575. package/dist/setup-project.test.js +1 -21
  576. package/dist/setup-prompts.d.ts +16 -0
  577. package/dist/setup-prompts.js +39 -1
  578. package/dist/setup-prompts.test.js +38 -0
  579. package/dist/setup-ready-menu.d.ts +2 -1
  580. package/dist/setup-runtime.d.ts +1 -1
  581. package/dist/setup-runtime.js +2 -1
  582. package/dist/setup-runtime.test.js +2 -1
  583. package/dist/setup-sources-notion.test.js +4 -2
  584. package/dist/setup-sources.d.ts +9 -3
  585. package/dist/setup-sources.js +31 -7
  586. package/dist/setup-sources.test.js +28 -2
  587. package/dist/setup.d.ts +1 -1
  588. package/dist/setup.js +56 -3
  589. package/dist/setup.test.js +37 -6
  590. package/dist/sl.d.ts +8 -12
  591. package/dist/sl.js +75 -4
  592. package/dist/sl.test.js +35 -2
  593. package/dist/source-mapping.d.ts +3 -2
  594. package/dist/source-mapping.js +13 -3
  595. package/dist/sql.d.ts +4 -3
  596. package/dist/sql.js +60 -8
  597. package/dist/sql.test.js +30 -3
  598. package/dist/standalone-smoke.test.js +1 -1
  599. package/dist/status-project.d.ts +56 -6
  600. package/dist/status-project.js +472 -81
  601. package/dist/status-project.test.js +502 -0
  602. package/dist/telemetry/command-hook.d.ts +28 -0
  603. package/dist/telemetry/command-hook.js +27 -0
  604. package/dist/telemetry/command-hook.test.js +31 -0
  605. package/dist/telemetry/demo-detect.d.ts +2 -0
  606. package/dist/telemetry/demo-detect.js +9 -0
  607. package/dist/telemetry/demo-detect.test.js +22 -0
  608. package/dist/telemetry/emitter.d.ts +20 -0
  609. package/dist/telemetry/emitter.js +74 -0
  610. package/dist/telemetry/emitter.test.js +103 -0
  611. package/dist/telemetry/events.d.ts +466 -0
  612. package/dist/telemetry/events.js +347 -0
  613. package/dist/telemetry/events.snapshot.test.js +135 -0
  614. package/dist/telemetry/events.test.js +136 -0
  615. package/dist/telemetry/identity.d.ts +33 -0
  616. package/dist/telemetry/identity.js +105 -0
  617. package/dist/telemetry/identity.test.js +148 -0
  618. package/dist/telemetry/index.d.ts +27 -0
  619. package/dist/telemetry/index.js +93 -0
  620. package/dist/telemetry/project-snapshot.d.ts +15 -0
  621. package/dist/telemetry/project-snapshot.js +55 -0
  622. package/dist/telemetry/project-snapshot.test.js +71 -0
  623. package/dist/telemetry/schema-writer.d.ts +15 -0
  624. package/dist/telemetry/schema-writer.js +45 -0
  625. package/dist/telemetry/schema-writer.test.js +23 -0
  626. package/dist/telemetry/scrubber.d.ts +1 -0
  627. package/dist/telemetry/scrubber.js +22 -0
  628. package/dist/telemetry/scrubber.test.js +21 -0
  629. package/dist/text-ingest.d.ts +4 -2
  630. package/dist/text-ingest.js +2 -2
  631. package/dist/tree-picker-state.d.ts +6 -0
  632. package/dist/tree-picker-state.js +6 -0
  633. package/dist/tree-picker-tui.d.ts +8 -0
  634. package/dist/tree-picker-tui.js +6 -0
  635. package/dist/viz-fallback.d.ts +1 -0
  636. package/dist/viz-fallback.js +1 -0
  637. package/package.json +39 -16
  638. package/assets/python/kaelio_ktx-0.4.1-py3-none-any.whl +0 -0
  639. package/dist/cli-project.d.ts +0 -12
  640. package/dist/cli-project.js +0 -8
  641. package/dist/cli-project.test.js +0 -22
  642. package/node_modules/@ktx/connector-bigquery/dist/connector.d.ts +0 -141
  643. package/node_modules/@ktx/connector-bigquery/dist/connector.js +0 -371
  644. package/node_modules/@ktx/connector-bigquery/dist/connector.test.js +0 -247
  645. package/node_modules/@ktx/connector-bigquery/dist/dialect.d.ts +0 -29
  646. package/node_modules/@ktx/connector-bigquery/dist/index.d.ts +0 -3
  647. package/node_modules/@ktx/connector-bigquery/dist/index.js +0 -3
  648. package/node_modules/@ktx/connector-bigquery/dist/live-database-introspection.d.ts +0 -10
  649. package/node_modules/@ktx/connector-bigquery/dist/live-database-introspection.js +0 -20
  650. package/node_modules/@ktx/connector-bigquery/dist/package-exports.test.js +0 -10
  651. package/node_modules/@ktx/connector-bigquery/package.json +0 -20
  652. package/node_modules/@ktx/connector-clickhouse/dist/connector.d.ts +0 -113
  653. package/node_modules/@ktx/connector-clickhouse/dist/connector.js +0 -345
  654. package/node_modules/@ktx/connector-clickhouse/dist/connector.test.js +0 -228
  655. package/node_modules/@ktx/connector-clickhouse/dist/dialect.d.ts +0 -33
  656. package/node_modules/@ktx/connector-clickhouse/dist/index.d.ts +0 -3
  657. package/node_modules/@ktx/connector-clickhouse/dist/index.js +0 -3
  658. package/node_modules/@ktx/connector-clickhouse/dist/live-database-introspection.d.ts +0 -11
  659. package/node_modules/@ktx/connector-clickhouse/dist/live-database-introspection.js +0 -21
  660. package/node_modules/@ktx/connector-clickhouse/dist/package-exports.test.js +0 -10
  661. package/node_modules/@ktx/connector-clickhouse/package.json +0 -20
  662. package/node_modules/@ktx/connector-mysql/dist/connector.d.ts +0 -116
  663. package/node_modules/@ktx/connector-mysql/dist/connector.js +0 -385
  664. package/node_modules/@ktx/connector-mysql/dist/connector.test.js +0 -218
  665. package/node_modules/@ktx/connector-mysql/dist/dialect.d.ts +0 -29
  666. package/node_modules/@ktx/connector-mysql/dist/index.d.ts +0 -3
  667. package/node_modules/@ktx/connector-mysql/dist/index.js +0 -3
  668. package/node_modules/@ktx/connector-mysql/dist/live-database-introspection.d.ts +0 -11
  669. package/node_modules/@ktx/connector-mysql/dist/live-database-introspection.js +0 -21
  670. package/node_modules/@ktx/connector-mysql/dist/package-exports.test.js +0 -11
  671. package/node_modules/@ktx/connector-mysql/package.json +0 -20
  672. package/node_modules/@ktx/connector-postgres/dist/connector.d.ts +0 -140
  673. package/node_modules/@ktx/connector-postgres/dist/connector.js +0 -497
  674. package/node_modules/@ktx/connector-postgres/dist/connector.test.js +0 -336
  675. package/node_modules/@ktx/connector-postgres/dist/dialect.d.ts +0 -29
  676. package/node_modules/@ktx/connector-postgres/dist/historic-sql-query-client.d.ts +0 -14
  677. package/node_modules/@ktx/connector-postgres/dist/index.d.ts +0 -4
  678. package/node_modules/@ktx/connector-postgres/dist/index.js +0 -4
  679. package/node_modules/@ktx/connector-postgres/dist/live-database-introspection.d.ts +0 -11
  680. package/node_modules/@ktx/connector-postgres/dist/live-database-introspection.js +0 -21
  681. package/node_modules/@ktx/connector-postgres/dist/package-exports.test.js +0 -12
  682. package/node_modules/@ktx/connector-postgres/package.json +0 -20
  683. package/node_modules/@ktx/connector-snowflake/dist/connector.d.ts +0 -129
  684. package/node_modules/@ktx/connector-snowflake/dist/connector.js +0 -517
  685. package/node_modules/@ktx/connector-snowflake/dist/connector.test.js +0 -210
  686. package/node_modules/@ktx/connector-snowflake/dist/dialect.d.ts +0 -29
  687. package/node_modules/@ktx/connector-snowflake/dist/index.d.ts +0 -3
  688. package/node_modules/@ktx/connector-snowflake/dist/index.js +0 -3
  689. package/node_modules/@ktx/connector-snowflake/dist/live-database-introspection.d.ts +0 -11
  690. package/node_modules/@ktx/connector-snowflake/dist/live-database-introspection.js +0 -21
  691. package/node_modules/@ktx/connector-snowflake/dist/package-exports.test.js +0 -10
  692. package/node_modules/@ktx/connector-snowflake/package.json +0 -20
  693. package/node_modules/@ktx/connector-sqlite/dist/connector.d.ts +0 -59
  694. package/node_modules/@ktx/connector-sqlite/dist/connector.js +0 -251
  695. package/node_modules/@ktx/connector-sqlite/dist/connector.test.js +0 -196
  696. package/node_modules/@ktx/connector-sqlite/dist/dialect.d.ts +0 -29
  697. package/node_modules/@ktx/connector-sqlite/dist/index.d.ts +0 -3
  698. package/node_modules/@ktx/connector-sqlite/dist/index.js +0 -3
  699. package/node_modules/@ktx/connector-sqlite/dist/live-database-introspection.d.ts +0 -8
  700. package/node_modules/@ktx/connector-sqlite/dist/live-database-introspection.js +0 -20
  701. package/node_modules/@ktx/connector-sqlite/dist/package-exports.test.js +0 -11
  702. package/node_modules/@ktx/connector-sqlite/package.json +0 -20
  703. package/node_modules/@ktx/connector-sqlserver/dist/connector.d.ts +0 -137
  704. package/node_modules/@ktx/connector-sqlserver/dist/connector.js +0 -503
  705. package/node_modules/@ktx/connector-sqlserver/dist/connector.test.js +0 -269
  706. package/node_modules/@ktx/connector-sqlserver/dist/dialect.d.ts +0 -30
  707. package/node_modules/@ktx/connector-sqlserver/dist/index.d.ts +0 -3
  708. package/node_modules/@ktx/connector-sqlserver/dist/index.js +0 -3
  709. package/node_modules/@ktx/connector-sqlserver/dist/live-database-introspection.d.ts +0 -11
  710. package/node_modules/@ktx/connector-sqlserver/dist/live-database-introspection.js +0 -21
  711. package/node_modules/@ktx/connector-sqlserver/dist/package-exports.test.js +0 -10
  712. package/node_modules/@ktx/connector-sqlserver/package.json +0 -20
  713. package/node_modules/@ktx/context/dist/agent/agent-runner.service.d.ts +0 -18
  714. package/node_modules/@ktx/context/dist/agent/agent-runner.service.js +0 -10
  715. package/node_modules/@ktx/context/dist/agent/agent-runner.service.test.js +0 -308
  716. package/node_modules/@ktx/context/dist/agent/index.d.ts +0 -2
  717. package/node_modules/@ktx/context/dist/agent/index.js +0 -1
  718. package/node_modules/@ktx/context/dist/connections/dialects.d.ts +0 -9
  719. package/node_modules/@ktx/context/dist/connections/index.d.ts +0 -11
  720. package/node_modules/@ktx/context/dist/connections/index.js +0 -9
  721. package/node_modules/@ktx/context/dist/connections/notion-config.d.ts +0 -41
  722. package/node_modules/@ktx/context/dist/connections/notion-config.js +0 -132
  723. package/node_modules/@ktx/context/dist/connections/query-executor.d.ts +0 -19
  724. package/node_modules/@ktx/context/dist/connections/sqlite-query-executor.d.ts +0 -3
  725. package/node_modules/@ktx/context/dist/connections/sqlite-query-executor.js +0 -73
  726. package/node_modules/@ktx/context/dist/core/config-reference.d.ts +0 -2
  727. package/node_modules/@ktx/context/dist/core/config-reference.js +0 -29
  728. package/node_modules/@ktx/context/dist/core/config.d.ts +0 -25
  729. package/node_modules/@ktx/context/dist/core/index.d.ts +0 -10
  730. package/node_modules/@ktx/context/dist/core/index.js +0 -5
  731. package/node_modules/@ktx/context/dist/core/redaction.d.ts +0 -4
  732. package/node_modules/@ktx/context/dist/core/redaction.js +0 -39
  733. package/node_modules/@ktx/context/dist/core/session-worktree.service.d.ts +0 -38
  734. package/node_modules/@ktx/context/dist/daemon/index.d.ts +0 -1
  735. package/node_modules/@ktx/context/dist/daemon/index.js +0 -1
  736. package/node_modules/@ktx/context/dist/daemon/semantic-layer-compute.d.ts +0 -80
  737. package/node_modules/@ktx/context/dist/daemon/semantic-layer-compute.js +0 -191
  738. package/node_modules/@ktx/context/dist/daemon/semantic-layer-compute.test.js +0 -301
  739. package/node_modules/@ktx/context/dist/index-sync/index.d.ts +0 -2
  740. package/node_modules/@ktx/context/dist/index-sync/index.js +0 -1
  741. package/node_modules/@ktx/context/dist/index-sync/reindex.d.ts +0 -20
  742. package/node_modules/@ktx/context/dist/index-sync/reindex.js +0 -141
  743. package/node_modules/@ktx/context/dist/index-sync/reindex.test.js +0 -139
  744. package/node_modules/@ktx/context/dist/index-sync/types.d.ts +0 -29
  745. package/node_modules/@ktx/context/dist/index.d.ts +0 -22
  746. package/node_modules/@ktx/context/dist/index.js +0 -19
  747. package/node_modules/@ktx/context/dist/index.test.js +0 -10
  748. package/node_modules/@ktx/context/dist/ingest/action-identity.d.ts +0 -3
  749. package/node_modules/@ktx/context/dist/ingest/adapters/dbt/parse.d.ts +0 -6
  750. package/node_modules/@ktx/context/dist/ingest/adapters/dbt/parse.js +0 -23
  751. package/node_modules/@ktx/context/dist/ingest/adapters/dbt-descriptions/match-tables.d.ts +0 -27
  752. package/node_modules/@ktx/context/dist/ingest/adapters/dbt-descriptions/match-tables.js +0 -80
  753. package/node_modules/@ktx/context/dist/ingest/adapters/dbt-descriptions/match-tables.test.js +0 -59
  754. package/node_modules/@ktx/context/dist/ingest/adapters/dbt-descriptions/merge-semantic-model-tables.d.ts +0 -3
  755. package/node_modules/@ktx/context/dist/ingest/adapters/dbt-descriptions/merge-semantic-model-tables.js +0 -28
  756. package/node_modules/@ktx/context/dist/ingest/adapters/dbt-descriptions/merge-semantic-model-tables.test.js +0 -55
  757. package/node_modules/@ktx/context/dist/ingest/adapters/dbt-descriptions/parse-schema.d.ts +0 -65
  758. package/node_modules/@ktx/context/dist/ingest/adapters/dbt-descriptions/parse-schema.js +0 -432
  759. package/node_modules/@ktx/context/dist/ingest/adapters/dbt-descriptions/to-description-updates.d.ts +0 -13
  760. package/node_modules/@ktx/context/dist/ingest/adapters/dbt-descriptions/to-description-updates.js +0 -46
  761. package/node_modules/@ktx/context/dist/ingest/adapters/dbt-descriptions/to-description-updates.test.js +0 -88
  762. package/node_modules/@ktx/context/dist/ingest/adapters/dbt-descriptions/to-metadata-updates.d.ts +0 -9
  763. package/node_modules/@ktx/context/dist/ingest/adapters/dbt-descriptions/to-metadata-updates.js +0 -57
  764. package/node_modules/@ktx/context/dist/ingest/adapters/dbt-descriptions/to-metadata-updates.test.js +0 -68
  765. package/node_modules/@ktx/context/dist/ingest/adapters/dbt-descriptions/to-relationship-updates.d.ts +0 -12
  766. package/node_modules/@ktx/context/dist/ingest/adapters/dbt-descriptions/to-relationship-updates.js +0 -34
  767. package/node_modules/@ktx/context/dist/ingest/adapters/dbt-descriptions/to-relationship-updates.test.js +0 -56
  768. package/node_modules/@ktx/context/dist/ingest/adapters/dbt-extraction-golden-parity.test.js +0 -392
  769. package/node_modules/@ktx/context/dist/ingest/adapters/historic-sql/bigquery-query-history-reader.js +0 -199
  770. package/node_modules/@ktx/context/dist/ingest/adapters/historic-sql/evidence.d.ts +0 -77
  771. package/node_modules/@ktx/context/dist/ingest/adapters/historic-sql/evidence.js +0 -32
  772. package/node_modules/@ktx/context/dist/ingest/adapters/historic-sql/local-ingest-acceptance.test.js +0 -235
  773. package/node_modules/@ktx/context/dist/ingest/adapters/historic-sql/pattern-inputs.d.ts +0 -21
  774. package/node_modules/@ktx/context/dist/ingest/adapters/historic-sql/pattern-inputs.js +0 -66
  775. package/node_modules/@ktx/context/dist/ingest/adapters/historic-sql/projection.d.ts +0 -24
  776. package/node_modules/@ktx/context/dist/ingest/adapters/historic-sql/skill-schemas.d.ts +0 -37
  777. package/node_modules/@ktx/context/dist/ingest/adapters/historic-sql/skill-schemas.js +0 -24
  778. package/node_modules/@ktx/context/dist/ingest/adapters/historic-sql/stage-unified.d.ts +0 -13
  779. package/node_modules/@ktx/context/dist/ingest/adapters/historic-sql/types.d.ts +0 -184
  780. package/node_modules/@ktx/context/dist/ingest/adapters/live-database/daemon-introspection.d.ts +0 -20
  781. package/node_modules/@ktx/context/dist/ingest/adapters/live-database/daemon-introspection.js +0 -190
  782. package/node_modules/@ktx/context/dist/ingest/adapters/live-database/daemon-introspection.test.js +0 -236
  783. package/node_modules/@ktx/context/dist/ingest/adapters/live-database/extracted-schema.d.ts +0 -29
  784. package/node_modules/@ktx/context/dist/ingest/adapters/live-database/extracted-schema.js +0 -28
  785. package/node_modules/@ktx/context/dist/ingest/adapters/live-database/extracted-schema.test.js +0 -129
  786. package/node_modules/@ktx/context/dist/ingest/adapters/live-database/live-database.adapter.js +0 -24
  787. package/node_modules/@ktx/context/dist/ingest/adapters/live-database/live-database.adapter.test.js +0 -55
  788. package/node_modules/@ktx/context/dist/ingest/adapters/live-database/manifest.d.ts +0 -65
  789. package/node_modules/@ktx/context/dist/ingest/adapters/live-database/stage.d.ts +0 -12
  790. package/node_modules/@ktx/context/dist/ingest/adapters/live-database/stage.js +0 -105
  791. package/node_modules/@ktx/context/dist/ingest/adapters/live-database/structural-sync.d.ts +0 -89
  792. package/node_modules/@ktx/context/dist/ingest/adapters/live-database/structural-sync.js +0 -335
  793. package/node_modules/@ktx/context/dist/ingest/adapters/live-database/structural-sync.test.js +0 -416
  794. package/node_modules/@ktx/context/dist/ingest/adapters/live-database/types.d.ts +0 -8
  795. package/node_modules/@ktx/context/dist/ingest/adapters/looker/factory.d.ts +0 -21
  796. package/node_modules/@ktx/context/dist/ingest/adapters/looker/factory.js +0 -22
  797. package/node_modules/@ktx/context/dist/ingest/adapters/looker/fetch.d.ts +0 -31
  798. package/node_modules/@ktx/context/dist/ingest/adapters/looker/local-looker.adapter.d.ts +0 -11
  799. package/node_modules/@ktx/context/dist/ingest/adapters/looker/local-looker.adapter.js +0 -45
  800. package/node_modules/@ktx/context/dist/ingest/adapters/looker/local-runtime-store.d.ts +0 -50
  801. package/node_modules/@ktx/context/dist/ingest/adapters/looker/mapping.d.ts +0 -126
  802. package/node_modules/@ktx/context/dist/ingest/adapters/looker/mapping.js +0 -303
  803. package/node_modules/@ktx/context/dist/ingest/adapters/looker/reconcile.d.ts +0 -2
  804. package/node_modules/@ktx/context/dist/ingest/adapters/looker/reconcile.js +0 -20
  805. package/node_modules/@ktx/context/dist/ingest/adapters/looker/reconcile.test.js +0 -22
  806. package/node_modules/@ktx/context/dist/ingest/adapters/looker/scope.d.ts +0 -6
  807. package/node_modules/@ktx/context/dist/ingest/adapters/looker/scope.js +0 -55
  808. package/node_modules/@ktx/context/dist/ingest/adapters/looker/tools/looker-query-to-sl.tool.d.ts +0 -107
  809. package/node_modules/@ktx/context/dist/ingest/adapters/looker/tools/looker-query-to-sl.tool.js +0 -236
  810. package/node_modules/@ktx/context/dist/ingest/adapters/looker/types.d.ts +0 -438
  811. package/node_modules/@ktx/context/dist/ingest/adapters/looker/types.js +0 -198
  812. package/node_modules/@ktx/context/dist/ingest/adapters/looker/types.test.js +0 -260
  813. package/node_modules/@ktx/context/dist/ingest/adapters/lookml/fetch-report.d.ts +0 -15
  814. package/node_modules/@ktx/context/dist/ingest/adapters/lookml/fetch-report.js +0 -98
  815. package/node_modules/@ktx/context/dist/ingest/adapters/lookml/pull-config.d.ts +0 -37
  816. package/node_modules/@ktx/context/dist/ingest/adapters/lookml/pull-config.js +0 -26
  817. package/node_modules/@ktx/context/dist/ingest/adapters/metabase/client-port.d.ts +0 -167
  818. package/node_modules/@ktx/context/dist/ingest/adapters/metabase/client.d.ts +0 -114
  819. package/node_modules/@ktx/context/dist/ingest/adapters/metabase/client.js +0 -671
  820. package/node_modules/@ktx/context/dist/ingest/adapters/metabase/fanout-planner.d.ts +0 -17
  821. package/node_modules/@ktx/context/dist/ingest/adapters/metabase/local-metabase.adapter.d.ts +0 -13
  822. package/node_modules/@ktx/context/dist/ingest/adapters/metabase/local-metabase.adapter.js +0 -41
  823. package/node_modules/@ktx/context/dist/ingest/adapters/metabase/local-source-state-store.d.ts +0 -43
  824. package/node_modules/@ktx/context/dist/ingest/adapters/metabase/local-source-state-store.js +0 -176
  825. package/node_modules/@ktx/context/dist/ingest/adapters/metabase/local-source-state-store.test.js +0 -99
  826. package/node_modules/@ktx/context/dist/ingest/adapters/metabase/mapping.d.ts +0 -92
  827. package/node_modules/@ktx/context/dist/ingest/adapters/metabase/mapping.js +0 -220
  828. package/node_modules/@ktx/context/dist/ingest/adapters/metabase/serialize-card.d.ts +0 -53
  829. package/node_modules/@ktx/context/dist/ingest/adapters/metabase/serialize-card.js +0 -67
  830. package/node_modules/@ktx/context/dist/ingest/adapters/metabase/source-state-port.d.ts +0 -23
  831. package/node_modules/@ktx/context/dist/ingest/adapters/metabase/types.d.ts +0 -142
  832. package/node_modules/@ktx/context/dist/ingest/adapters/metabase/types.js +0 -106
  833. package/node_modules/@ktx/context/dist/ingest/adapters/metricflow/deep-parse.d.ts +0 -77
  834. package/node_modules/@ktx/context/dist/ingest/adapters/metricflow/deep-parse.js +0 -460
  835. package/node_modules/@ktx/context/dist/ingest/adapters/metricflow/import-semantic-models.d.ts +0 -29
  836. package/node_modules/@ktx/context/dist/ingest/adapters/metricflow/import-semantic-models.js +0 -136
  837. package/node_modules/@ktx/context/dist/ingest/adapters/metricflow/parse.d.ts +0 -42
  838. package/node_modules/@ktx/context/dist/ingest/adapters/metricflow/pull-config.d.ts +0 -37
  839. package/node_modules/@ktx/context/dist/ingest/adapters/metricflow/pull-config.js +0 -24
  840. package/node_modules/@ktx/context/dist/ingest/adapters/metricflow/semantic-models.d.ts +0 -39
  841. package/node_modules/@ktx/context/dist/ingest/adapters/metricflow/semantic-models.js +0 -278
  842. package/node_modules/@ktx/context/dist/ingest/adapters/metricflow/semantic-models.test.js +0 -204
  843. package/node_modules/@ktx/context/dist/ingest/adapters/notion/chunk.d.ts +0 -4
  844. package/node_modules/@ktx/context/dist/ingest/adapters/notion/chunk.js +0 -137
  845. package/node_modules/@ktx/context/dist/ingest/adapters/notion/cluster.d.ts +0 -10
  846. package/node_modules/@ktx/context/dist/ingest/adapters/notion/cluster.js +0 -82
  847. package/node_modules/@ktx/context/dist/ingest/adapters/notion/normalize.d.ts +0 -10
  848. package/node_modules/@ktx/context/dist/ingest/adapters/notion/normalize.js +0 -165
  849. package/node_modules/@ktx/context/dist/ingest/adapters/notion/notion-client.d.ts +0 -74
  850. package/node_modules/@ktx/context/dist/ingest/adapters/notion/notion-client.js +0 -107
  851. package/node_modules/@ktx/context/dist/ingest/artifact-gates.d.ts +0 -25
  852. package/node_modules/@ktx/context/dist/ingest/context-candidates/candidate-dedup.service.d.ts +0 -27
  853. package/node_modules/@ktx/context/dist/ingest/context-candidates/candidate-dedup.service.js +0 -234
  854. package/node_modules/@ktx/context/dist/ingest/context-candidates/context-candidate-carryforward.service.d.ts +0 -31
  855. package/node_modules/@ktx/context/dist/ingest/context-candidates/context-candidate-carryforward.service.js +0 -131
  856. package/node_modules/@ktx/context/dist/ingest/context-candidates/curator-pagination.service.d.ts +0 -64
  857. package/node_modules/@ktx/context/dist/ingest/context-candidates/curator-pagination.service.js +0 -240
  858. package/node_modules/@ktx/context/dist/ingest/context-candidates/index.d.ts +0 -9
  859. package/node_modules/@ktx/context/dist/ingest/context-candidates/index.js +0 -4
  860. package/node_modules/@ktx/context/dist/ingest/context-candidates/types.d.ts +0 -103
  861. package/node_modules/@ktx/context/dist/ingest/context-evidence/context-evidence-index.service.d.ts +0 -53
  862. package/node_modules/@ktx/context/dist/ingest/context-evidence/context-evidence-index.service.js +0 -303
  863. package/node_modules/@ktx/context/dist/ingest/context-evidence/index.d.ts +0 -5
  864. package/node_modules/@ktx/context/dist/ingest/context-evidence/index.js +0 -2
  865. package/node_modules/@ktx/context/dist/ingest/context-evidence/sqlite-context-evidence-store.d.ts +0 -89
  866. package/node_modules/@ktx/context/dist/ingest/context-evidence/sqlite-context-evidence-store.js +0 -1025
  867. package/node_modules/@ktx/context/dist/ingest/dbt-shared/project-vars.d.ts +0 -12
  868. package/node_modules/@ktx/context/dist/ingest/dbt-shared/project-vars.js +0 -86
  869. package/node_modules/@ktx/context/dist/ingest/dbt-shared/schema-files.d.ts +0 -3
  870. package/node_modules/@ktx/context/dist/ingest/dbt-shared/schema-files.js +0 -62
  871. package/node_modules/@ktx/context/dist/ingest/final-gate-repair.d.ts +0 -29
  872. package/node_modules/@ktx/context/dist/ingest/finalization-scope.d.ts +0 -22
  873. package/node_modules/@ktx/context/dist/ingest/index.d.ts +0 -154
  874. package/node_modules/@ktx/context/dist/ingest/index.js +0 -99
  875. package/node_modules/@ktx/context/dist/ingest/ingest-bundle.runner.isolated-diff.test.js +0 -1927
  876. package/node_modules/@ktx/context/dist/ingest/ingest-bundle.runner.js +0 -2247
  877. package/node_modules/@ktx/context/dist/ingest/ingest-bundle.runner.test.js +0 -1899
  878. package/node_modules/@ktx/context/dist/ingest/ingest-runtime-assets.test.js +0 -89
  879. package/node_modules/@ktx/context/dist/ingest/ingest-trace.d.ts +0 -50
  880. package/node_modules/@ktx/context/dist/ingest/ingest-trace.js +0 -88
  881. package/node_modules/@ktx/context/dist/ingest/isolated-diff/git-patch.d.ts +0 -16
  882. package/node_modules/@ktx/context/dist/ingest/isolated-diff/git-patch.js +0 -78
  883. package/node_modules/@ktx/context/dist/ingest/isolated-diff/patch-integrator.d.ts +0 -58
  884. package/node_modules/@ktx/context/dist/ingest/isolated-diff/patch-integrator.test.js +0 -369
  885. package/node_modules/@ktx/context/dist/ingest/isolated-diff/textual-conflict-resolver.d.ts +0 -23
  886. package/node_modules/@ktx/context/dist/ingest/isolated-diff/work-unit-executor.test.js +0 -137
  887. package/node_modules/@ktx/context/dist/ingest/local-adapters.d.ts +0 -35
  888. package/node_modules/@ktx/context/dist/ingest/local-adapters.js +0 -247
  889. package/node_modules/@ktx/context/dist/ingest/local-adapters.test.js +0 -625
  890. package/node_modules/@ktx/context/dist/ingest/local-bundle-ingest.test.js +0 -794
  891. package/node_modules/@ktx/context/dist/ingest/local-bundle-runtime.d.ts +0 -34
  892. package/node_modules/@ktx/context/dist/ingest/local-bundle-runtime.js +0 -601
  893. package/node_modules/@ktx/context/dist/ingest/local-bundle-runtime.test.js +0 -225
  894. package/node_modules/@ktx/context/dist/ingest/local-ingest.d.ts +0 -87
  895. package/node_modules/@ktx/context/dist/ingest/local-ingest.js +0 -297
  896. package/node_modules/@ktx/context/dist/ingest/local-mapping-reconcile.d.ts +0 -2
  897. package/node_modules/@ktx/context/dist/ingest/local-mapping-reconcile.js +0 -26
  898. package/node_modules/@ktx/context/dist/ingest/local-mapping-reconcile.test.js +0 -61
  899. package/node_modules/@ktx/context/dist/ingest/local-metabase-ingest.test.js +0 -227
  900. package/node_modules/@ktx/context/dist/ingest/local-stage-ingest.d.ts +0 -53
  901. package/node_modules/@ktx/context/dist/ingest/local-stage-ingest.js +0 -290
  902. package/node_modules/@ktx/context/dist/ingest/local-stage-ingest.test.js +0 -581
  903. package/node_modules/@ktx/context/dist/ingest/memory-flow/events.d.ts +0 -9
  904. package/node_modules/@ktx/context/dist/ingest/memory-flow/events.js +0 -196
  905. package/node_modules/@ktx/context/dist/ingest/memory-flow/index.d.ts +0 -6
  906. package/node_modules/@ktx/context/dist/ingest/memory-flow/index.js +0 -4
  907. package/node_modules/@ktx/context/dist/ingest/memory-flow/interaction.d.ts +0 -9
  908. package/node_modules/@ktx/context/dist/ingest/memory-flow/interaction.js +0 -315
  909. package/node_modules/@ktx/context/dist/ingest/memory-flow/package-export.test.d.ts +0 -1
  910. package/node_modules/@ktx/context/dist/ingest/memory-flow/package-export.test.js +0 -9
  911. package/node_modules/@ktx/context/dist/ingest/memory-flow/schema.d.ts +0 -208
  912. package/node_modules/@ktx/context/dist/ingest/memory-flow/schema.js +0 -172
  913. package/node_modules/@ktx/context/dist/ingest/memory-flow/visuals.d.ts +0 -20
  914. package/node_modules/@ktx/context/dist/ingest/memory-flow/visuals.js +0 -44
  915. package/node_modules/@ktx/context/dist/ingest/metabase-mapping.d.ts +0 -2
  916. package/node_modules/@ktx/context/dist/ingest/metabase-mapping.js +0 -1
  917. package/node_modules/@ktx/context/dist/ingest/page-triage/index.d.ts +0 -2
  918. package/node_modules/@ktx/context/dist/ingest/page-triage/index.js +0 -1
  919. package/node_modules/@ktx/context/dist/ingest/page-triage/page-triage.service.d.ts +0 -84
  920. package/node_modules/@ktx/context/dist/ingest/page-triage/page-triage.service.js +0 -318
  921. package/node_modules/@ktx/context/dist/ingest/ports.d.ts +0 -323
  922. package/node_modules/@ktx/context/dist/ingest/raw-sources-paths.d.ts +0 -4
  923. package/node_modules/@ktx/context/dist/ingest/raw-sources-paths.js +0 -16
  924. package/node_modules/@ktx/context/dist/ingest/repo-fetch.d.ts +0 -34
  925. package/node_modules/@ktx/context/dist/ingest/repo-fetch.js +0 -132
  926. package/node_modules/@ktx/context/dist/ingest/report-snapshot.d.ts +0 -298
  927. package/node_modules/@ktx/context/dist/ingest/report-snapshot.js +0 -212
  928. package/node_modules/@ktx/context/dist/ingest/reports.d.ts +0 -120
  929. package/node_modules/@ktx/context/dist/ingest/reports.js +0 -37
  930. package/node_modules/@ktx/context/dist/ingest/semantic-layer-target-policy.d.ts +0 -11
  931. package/node_modules/@ktx/context/dist/ingest/semantic-layer-target-policy.js +0 -26
  932. package/node_modules/@ktx/context/dist/ingest/stages/build-reconcile-context.d.ts +0 -61
  933. package/node_modules/@ktx/context/dist/ingest/stages/build-wu-context.d.ts +0 -27
  934. package/node_modules/@ktx/context/dist/ingest/stages/build-wu-context.js +0 -87
  935. package/node_modules/@ktx/context/dist/ingest/stages/stage-3-work-units.d.ts +0 -48
  936. package/node_modules/@ktx/context/dist/ingest/stages/stage-3-work-units.js +0 -108
  937. package/node_modules/@ktx/context/dist/ingest/stages/stage-3-work-units.test.js +0 -175
  938. package/node_modules/@ktx/context/dist/ingest/stages/stage-4-reconciliation.d.ts +0 -28
  939. package/node_modules/@ktx/context/dist/ingest/stages/stage-index.types.d.ts +0 -50
  940. package/node_modules/@ktx/context/dist/ingest/stages/validate-wu-sources.d.ts +0 -9
  941. package/node_modules/@ktx/context/dist/ingest/tools/tool-call-logger.d.ts +0 -33
  942. package/node_modules/@ktx/context/dist/ingest/tools/verification-ledger.tool.d.ts +0 -14
  943. package/node_modules/@ktx/context/dist/ingest/tools/warehouse-verification/discover-data.tool.d.ts +0 -36
  944. package/node_modules/@ktx/context/dist/ingest/tools/warehouse-verification/discover-data.tool.js +0 -94
  945. package/node_modules/@ktx/context/dist/ingest/tools/warehouse-verification/entity-details.tool.d.ts +0 -43
  946. package/node_modules/@ktx/context/dist/ingest/tools/warehouse-verification/entity-details.tool.js +0 -137
  947. package/node_modules/@ktx/context/dist/ingest/tools/warehouse-verification/entity-details.tool.test.js +0 -146
  948. package/node_modules/@ktx/context/dist/ingest/tools/warehouse-verification/index.d.ts +0 -9
  949. package/node_modules/@ktx/context/dist/ingest/tools/warehouse-verification/sql-execution.tool.d.ts +0 -31
  950. package/node_modules/@ktx/context/dist/ingest/tools/warehouse-verification/sql-execution.tool.js +0 -84
  951. package/node_modules/@ktx/context/dist/ingest/types.d.ts +0 -201
  952. package/node_modules/@ktx/context/dist/ingest/wiki-body-refs.d.ts +0 -24
  953. package/node_modules/@ktx/context/dist/ingest/wiki-body-refs.js +0 -111
  954. package/node_modules/@ktx/context/dist/ingest/wiki-sl-ref-repair.d.ts +0 -19
  955. package/node_modules/@ktx/context/dist/llm/ai-sdk-runtime.d.ts +0 -23
  956. package/node_modules/@ktx/context/dist/llm/ai-sdk-runtime.js +0 -133
  957. package/node_modules/@ktx/context/dist/llm/claude-code-env.d.ts +0 -2
  958. package/node_modules/@ktx/context/dist/llm/claude-code-env.js +0 -21
  959. package/node_modules/@ktx/context/dist/llm/claude-code-runtime.d.ts +0 -36
  960. package/node_modules/@ktx/context/dist/llm/claude-code-runtime.js +0 -269
  961. package/node_modules/@ktx/context/dist/llm/claude-code-runtime.test.js +0 -428
  962. package/node_modules/@ktx/context/dist/llm/debug-request-recorder.d.ts +0 -44
  963. package/node_modules/@ktx/context/dist/llm/debug-request-recorder.js +0 -79
  964. package/node_modules/@ktx/context/dist/llm/embedding-port.d.ts +0 -17
  965. package/node_modules/@ktx/context/dist/llm/embedding-port.test.js +0 -34
  966. package/node_modules/@ktx/context/dist/llm/generation.d.ts +0 -8
  967. package/node_modules/@ktx/context/dist/llm/generation.js +0 -6
  968. package/node_modules/@ktx/context/dist/llm/index.d.ts +0 -13
  969. package/node_modules/@ktx/context/dist/llm/index.js +0 -10
  970. package/node_modules/@ktx/context/dist/llm/local-config.d.ts +0 -20
  971. package/node_modules/@ktx/context/dist/llm/local-config.js +0 -133
  972. package/node_modules/@ktx/context/dist/llm/local-config.test.js +0 -164
  973. package/node_modules/@ktx/context/dist/llm/runtime-port.d.ts +0 -59
  974. package/node_modules/@ktx/context/dist/llm/runtime-tools.d.ts +0 -10
  975. package/node_modules/@ktx/context/dist/llm/runtime-tools.js +0 -68
  976. package/node_modules/@ktx/context/dist/mcp/context-tools.d.ts +0 -9
  977. package/node_modules/@ktx/context/dist/mcp/context-tools.js +0 -553
  978. package/node_modules/@ktx/context/dist/mcp/index.d.ts +0 -5
  979. package/node_modules/@ktx/context/dist/mcp/index.js +0 -3
  980. package/node_modules/@ktx/context/dist/mcp/local-project-ports.d.ts +0 -16
  981. package/node_modules/@ktx/context/dist/mcp/local-project-ports.js +0 -201
  982. package/node_modules/@ktx/context/dist/mcp/local-project-ports.test.js +0 -689
  983. package/node_modules/@ktx/context/dist/mcp/server.d.ts +0 -7
  984. package/node_modules/@ktx/context/dist/mcp/server.js +0 -24
  985. package/node_modules/@ktx/context/dist/mcp/server.test.js +0 -858
  986. package/node_modules/@ktx/context/dist/mcp/types.d.ts +0 -158
  987. package/node_modules/@ktx/context/dist/memory/capture-signals.d.ts +0 -8
  988. package/node_modules/@ktx/context/dist/memory/capture-signals.js +0 -103
  989. package/node_modules/@ktx/context/dist/memory/index.d.ts +0 -6
  990. package/node_modules/@ktx/context/dist/memory/index.js +0 -5
  991. package/node_modules/@ktx/context/dist/memory/local-memory.d.ts +0 -22
  992. package/node_modules/@ktx/context/dist/memory/local-memory.js +0 -391
  993. package/node_modules/@ktx/context/dist/memory/local-memory.test.js +0 -159
  994. package/node_modules/@ktx/context/dist/memory/memory-agent.service.d.ts +0 -59
  995. package/node_modules/@ktx/context/dist/memory/memory-agent.service.ingest.test.js +0 -355
  996. package/node_modules/@ktx/context/dist/memory/memory-agent.service.js +0 -539
  997. package/node_modules/@ktx/context/dist/memory/memory-agent.service.test.js +0 -413
  998. package/node_modules/@ktx/context/dist/memory/memory-runs.d.ts +0 -54
  999. package/node_modules/@ktx/context/dist/memory/memory-runtime-assets.test.js +0 -162
  1000. package/node_modules/@ktx/context/dist/memory/types.d.ts +0 -133
  1001. package/node_modules/@ktx/context/dist/package-exports.test.d.ts +0 -1
  1002. package/node_modules/@ktx/context/dist/package-exports.test.js +0 -248
  1003. package/node_modules/@ktx/context/dist/project/config.d.ts +0 -579
  1004. package/node_modules/@ktx/context/dist/project/config.js +0 -331
  1005. package/node_modules/@ktx/context/dist/project/config.test.js +0 -464
  1006. package/node_modules/@ktx/context/dist/project/driver-schemas.d.ts +0 -106
  1007. package/node_modules/@ktx/context/dist/project/driver-schemas.js +0 -184
  1008. package/node_modules/@ktx/context/dist/project/driver-schemas.test.js +0 -125
  1009. package/node_modules/@ktx/context/dist/project/index.d.ts +0 -12
  1010. package/node_modules/@ktx/context/dist/project/index.js +0 -6
  1011. package/node_modules/@ktx/context/dist/project/local-git-file-store.d.ts +0 -23
  1012. package/node_modules/@ktx/context/dist/project/local-git-file-store.test.js +0 -71
  1013. package/node_modules/@ktx/context/dist/project/mappings-yaml-schema.d.ts +0 -58
  1014. package/node_modules/@ktx/context/dist/project/mappings-yaml-schema.js +0 -109
  1015. package/node_modules/@ktx/context/dist/project/project.d.ts +0 -29
  1016. package/node_modules/@ktx/context/dist/project/project.js +0 -93
  1017. package/node_modules/@ktx/context/dist/project/setup-config.d.ts +0 -12
  1018. package/node_modules/@ktx/context/dist/project/setup-config.js +0 -79
  1019. package/node_modules/@ktx/context/dist/prompts/index.d.ts +0 -2
  1020. package/node_modules/@ktx/context/dist/prompts/index.js +0 -1
  1021. package/node_modules/@ktx/context/dist/prompts/prompt.service.d.ts +0 -28
  1022. package/node_modules/@ktx/context/dist/prompts/prompt.service.js +0 -84
  1023. package/node_modules/@ktx/context/dist/scan/credentials.d.ts +0 -8
  1024. package/node_modules/@ktx/context/dist/scan/credentials.js +0 -38
  1025. package/node_modules/@ktx/context/dist/scan/credentials.test.js +0 -161
  1026. package/node_modules/@ktx/context/dist/scan/data-dictionary.d.ts +0 -22
  1027. package/node_modules/@ktx/context/dist/scan/data-dictionary.js +0 -66
  1028. package/node_modules/@ktx/context/dist/scan/description-generation.d.ts +0 -122
  1029. package/node_modules/@ktx/context/dist/scan/description-generation.js +0 -556
  1030. package/node_modules/@ktx/context/dist/scan/description-generation.test.js +0 -587
  1031. package/node_modules/@ktx/context/dist/scan/embedding-text.d.ts +0 -21
  1032. package/node_modules/@ktx/context/dist/scan/enabled-tables.d.ts +0 -3
  1033. package/node_modules/@ktx/context/dist/scan/enabled-tables.js +0 -15
  1034. package/node_modules/@ktx/context/dist/scan/enrichment-state.d.ts +0 -48
  1035. package/node_modules/@ktx/context/dist/scan/enrichment-state.js +0 -44
  1036. package/node_modules/@ktx/context/dist/scan/enrichment-types.d.ts +0 -104
  1037. package/node_modules/@ktx/context/dist/scan/entity-details.d.ts +0 -57
  1038. package/node_modules/@ktx/context/dist/scan/entity-details.test.js +0 -234
  1039. package/node_modules/@ktx/context/dist/scan/index.d.ts +0 -72
  1040. package/node_modules/@ktx/context/dist/scan/index.js +0 -37
  1041. package/node_modules/@ktx/context/dist/scan/local-enrichment-artifacts.d.ts +0 -32
  1042. package/node_modules/@ktx/context/dist/scan/local-enrichment-artifacts.js +0 -274
  1043. package/node_modules/@ktx/context/dist/scan/local-enrichment-artifacts.test.js +0 -767
  1044. package/node_modules/@ktx/context/dist/scan/local-enrichment.d.ts +0 -45
  1045. package/node_modules/@ktx/context/dist/scan/local-enrichment.js +0 -478
  1046. package/node_modules/@ktx/context/dist/scan/local-enrichment.test.js +0 -773
  1047. package/node_modules/@ktx/context/dist/scan/local-scan.d.ts +0 -68
  1048. package/node_modules/@ktx/context/dist/scan/local-scan.js +0 -415
  1049. package/node_modules/@ktx/context/dist/scan/local-scan.test.js +0 -1398
  1050. package/node_modules/@ktx/context/dist/scan/local-structural-artifacts.d.ts +0 -10
  1051. package/node_modules/@ktx/context/dist/scan/local-structural-artifacts.test.js +0 -144
  1052. package/node_modules/@ktx/context/dist/scan/orchestrator.d.ts +0 -44
  1053. package/node_modules/@ktx/context/dist/scan/orchestrator.js +0 -186
  1054. package/node_modules/@ktx/context/dist/scan/orchestrator.test.d.ts +0 -1
  1055. package/node_modules/@ktx/context/dist/scan/orchestrator.test.js +0 -335
  1056. package/node_modules/@ktx/context/dist/scan/relationship-artifacts.d.ts +0 -20
  1057. package/node_modules/@ktx/context/dist/scan/relationship-artifacts.js +0 -45
  1058. package/node_modules/@ktx/context/dist/scan/relationship-artifacts.test.d.ts +0 -1
  1059. package/node_modules/@ktx/context/dist/scan/relationship-artifacts.test.js +0 -268
  1060. package/node_modules/@ktx/context/dist/scan/relationship-benchmarks.d.ts +0 -148
  1061. package/node_modules/@ktx/context/dist/scan/relationship-budget.d.ts +0 -19
  1062. package/node_modules/@ktx/context/dist/scan/relationship-budget.js +0 -34
  1063. package/node_modules/@ktx/context/dist/scan/relationship-candidates.d.ts +0 -49
  1064. package/node_modules/@ktx/context/dist/scan/relationship-candidates.js +0 -556
  1065. package/node_modules/@ktx/context/dist/scan/relationship-composite-candidates.d.ts +0 -66
  1066. package/node_modules/@ktx/context/dist/scan/relationship-diagnostics.d.ts +0 -94
  1067. package/node_modules/@ktx/context/dist/scan/relationship-diagnostics.js +0 -224
  1068. package/node_modules/@ktx/context/dist/scan/relationship-discovery.d.ts +0 -27
  1069. package/node_modules/@ktx/context/dist/scan/relationship-discovery.js +0 -247
  1070. package/node_modules/@ktx/context/dist/scan/relationship-feedback-calibration.d.ts +0 -70
  1071. package/node_modules/@ktx/context/dist/scan/relationship-feedback-calibration.js +0 -170
  1072. package/node_modules/@ktx/context/dist/scan/relationship-feedback-calibration.test.d.ts +0 -1
  1073. package/node_modules/@ktx/context/dist/scan/relationship-feedback-calibration.test.js +0 -175
  1074. package/node_modules/@ktx/context/dist/scan/relationship-feedback-export.d.ts +0 -54
  1075. package/node_modules/@ktx/context/dist/scan/relationship-feedback-export.js +0 -96
  1076. package/node_modules/@ktx/context/dist/scan/relationship-feedback-export.test.d.ts +0 -1
  1077. package/node_modules/@ktx/context/dist/scan/relationship-feedback-export.test.js +0 -241
  1078. package/node_modules/@ktx/context/dist/scan/relationship-graph-resolver.d.ts +0 -48
  1079. package/node_modules/@ktx/context/dist/scan/relationship-llm-proposal.d.ts +0 -25
  1080. package/node_modules/@ktx/context/dist/scan/relationship-llm-proposal.js +0 -193
  1081. package/node_modules/@ktx/context/dist/scan/relationship-name-similarity.d.ts +0 -13
  1082. package/node_modules/@ktx/context/dist/scan/relationship-name-similarity.js +0 -123
  1083. package/node_modules/@ktx/context/dist/scan/relationship-profiling.d.ts +0 -55
  1084. package/node_modules/@ktx/context/dist/scan/relationship-profiling.js +0 -321
  1085. package/node_modules/@ktx/context/dist/scan/relationship-profiling.test.js +0 -313
  1086. package/node_modules/@ktx/context/dist/scan/relationship-review-apply.d.ts +0 -34
  1087. package/node_modules/@ktx/context/dist/scan/relationship-review-apply.js +0 -152
  1088. package/node_modules/@ktx/context/dist/scan/relationship-review-apply.test.d.ts +0 -1
  1089. package/node_modules/@ktx/context/dist/scan/relationship-review-apply.test.js +0 -321
  1090. package/node_modules/@ktx/context/dist/scan/relationship-review-decisions.d.ts +0 -46
  1091. package/node_modules/@ktx/context/dist/scan/relationship-review-decisions.js +0 -92
  1092. package/node_modules/@ktx/context/dist/scan/relationship-review-decisions.test.d.ts +0 -1
  1093. package/node_modules/@ktx/context/dist/scan/relationship-review-decisions.test.js +0 -312
  1094. package/node_modules/@ktx/context/dist/scan/relationship-scoring.d.ts +0 -29
  1095. package/node_modules/@ktx/context/dist/scan/relationship-scoring.js +0 -95
  1096. package/node_modules/@ktx/context/dist/scan/relationship-threshold-advice.d.ts +0 -60
  1097. package/node_modules/@ktx/context/dist/scan/relationship-threshold-advice.js +0 -190
  1098. package/node_modules/@ktx/context/dist/scan/relationship-threshold-advice.test.d.ts +0 -1
  1099. package/node_modules/@ktx/context/dist/scan/relationship-threshold-advice.test.js +0 -205
  1100. package/node_modules/@ktx/context/dist/scan/relationship-validation.d.ts +0 -44
  1101. package/node_modules/@ktx/context/dist/scan/relationship-validation.js +0 -240
  1102. package/node_modules/@ktx/context/dist/scan/relationship-validation.test.js +0 -450
  1103. package/node_modules/@ktx/context/dist/scan/type-normalization.d.ts +0 -8
  1104. package/node_modules/@ktx/context/dist/scan/type-normalization.js +0 -23
  1105. package/node_modules/@ktx/context/dist/scan/types.d.ts +0 -309
  1106. package/node_modules/@ktx/context/dist/scan/warehouse-catalog.d.ts +0 -69
  1107. package/node_modules/@ktx/context/dist/scan/warehouse-catalog.js +0 -311
  1108. package/node_modules/@ktx/context/dist/scan/warehouse-catalog.test.js +0 -158
  1109. package/node_modules/@ktx/context/dist/search/backend-conformance.test.d.ts +0 -1
  1110. package/node_modules/@ktx/context/dist/search/backend-conformance.test.js +0 -408
  1111. package/node_modules/@ktx/context/dist/search/discover.d.ts +0 -30
  1112. package/node_modules/@ktx/context/dist/search/discover.js +0 -340
  1113. package/node_modules/@ktx/context/dist/search/discover.test.js +0 -197
  1114. package/node_modules/@ktx/context/dist/search/index.d.ts +0 -8
  1115. package/node_modules/@ktx/context/dist/search/index.js +0 -5
  1116. package/node_modules/@ktx/context/dist/search/pglite-owner-process.d.ts +0 -27
  1117. package/node_modules/@ktx/context/dist/search/pglite-owner-process.js +0 -89
  1118. package/node_modules/@ktx/context/dist/search/pglite-owner-process.test.js +0 -286
  1119. package/node_modules/@ktx/context/dist/search/pglite-runtime-boundary.test.js +0 -48
  1120. package/node_modules/@ktx/context/dist/search/pglite-spike.test.js +0 -249
  1121. package/node_modules/@ktx/context/dist/search/types.d.ts +0 -73
  1122. package/node_modules/@ktx/context/dist/skills/index.d.ts +0 -2
  1123. package/node_modules/@ktx/context/dist/skills/index.js +0 -1
  1124. package/node_modules/@ktx/context/dist/skills/skills-registry.service.d.ts +0 -35
  1125. package/node_modules/@ktx/context/dist/skills/skills-registry.service.js +0 -215
  1126. package/node_modules/@ktx/context/dist/sl/dictionary-search.d.ts +0 -42
  1127. package/node_modules/@ktx/context/dist/sl/dictionary-search.test.js +0 -204
  1128. package/node_modules/@ktx/context/dist/sl/index.d.ts +0 -15
  1129. package/node_modules/@ktx/context/dist/sl/index.js +0 -10
  1130. package/node_modules/@ktx/context/dist/sl/local-query.d.ts +0 -19
  1131. package/node_modules/@ktx/context/dist/sl/local-query.test.js +0 -283
  1132. package/node_modules/@ktx/context/dist/sl/local-sl.d.ts +0 -60
  1133. package/node_modules/@ktx/context/dist/sl/local-sl.js +0 -484
  1134. package/node_modules/@ktx/context/dist/sl/local-sl.test.js +0 -334
  1135. package/node_modules/@ktx/context/dist/sl/pglite-sl-search-prototype.d.ts +0 -16
  1136. package/node_modules/@ktx/context/dist/sl/pglite-sl-search-prototype.js +0 -433
  1137. package/node_modules/@ktx/context/dist/sl/pglite-sl-search-prototype.test.js +0 -240
  1138. package/node_modules/@ktx/context/dist/sl/semantic-layer.service.d.ts +0 -214
  1139. package/node_modules/@ktx/context/dist/sl/semantic-layer.service.js +0 -1334
  1140. package/node_modules/@ktx/context/dist/sl/semantic-layer.service.test.js +0 -1084
  1141. package/node_modules/@ktx/context/dist/sl/sl-dictionary-profile.d.ts +0 -9
  1142. package/node_modules/@ktx/context/dist/sl/sl-dictionary-profile.js +0 -80
  1143. package/node_modules/@ktx/context/dist/sl/sl-dictionary-profile.test.js +0 -88
  1144. package/node_modules/@ktx/context/dist/sl/sl-search.service.d.ts +0 -18
  1145. package/node_modules/@ktx/context/dist/sl/sl-search.service.js +0 -158
  1146. package/node_modules/@ktx/context/dist/sl/sl-validator.port.d.ts +0 -7
  1147. package/node_modules/@ktx/context/dist/sl/tools/base-semantic-layer.tool.d.ts +0 -45
  1148. package/node_modules/@ktx/context/dist/sl/tools/base-semantic-layer.tool.js +0 -91
  1149. package/node_modules/@ktx/context/dist/sl/tools/index.d.ts +0 -11
  1150. package/node_modules/@ktx/context/dist/sl/tools/index.js +0 -8
  1151. package/node_modules/@ktx/context/dist/sl/tools/sl-discover.tool.d.ts +0 -52
  1152. package/node_modules/@ktx/context/dist/sl/tools/sl-discover.tool.test.js +0 -72
  1153. package/node_modules/@ktx/context/dist/sl/tools/sl-edit-source.tool.d.ts +0 -33
  1154. package/node_modules/@ktx/context/dist/sl/tools/sl-edit-source.tool.js +0 -177
  1155. package/node_modules/@ktx/context/dist/sl/tools/sl-edit-source.tool.test.js +0 -184
  1156. package/node_modules/@ktx/context/dist/sl/tools/sl-read-source.tool.d.ts +0 -23
  1157. package/node_modules/@ktx/context/dist/sl/tools/sl-read-source.tool.session.test.js +0 -55
  1158. package/node_modules/@ktx/context/dist/sl/tools/sl-rollback.tool.d.ts +0 -25
  1159. package/node_modules/@ktx/context/dist/sl/tools/sl-rollback.tool.js +0 -63
  1160. package/node_modules/@ktx/context/dist/sl/tools/sl-rollback.tool.test.js +0 -57
  1161. package/node_modules/@ktx/context/dist/sl/tools/sl-validate.tool.d.ts +0 -23
  1162. package/node_modules/@ktx/context/dist/sl/tools/sl-validate.tool.js +0 -100
  1163. package/node_modules/@ktx/context/dist/sl/tools/sl-validate.tool.test.js +0 -54
  1164. package/node_modules/@ktx/context/dist/sl/tools/sl-warehouse-validation.d.ts +0 -29
  1165. package/node_modules/@ktx/context/dist/sl/tools/sl-warehouse-validation.js +0 -245
  1166. package/node_modules/@ktx/context/dist/sl/tools/sl-write-source.tool.d.ts +0 -422
  1167. package/node_modules/@ktx/context/dist/sl/tools/sl-write-source.tool.js +0 -319
  1168. package/node_modules/@ktx/context/dist/sl/tools/sl-write-source.tool.test.js +0 -307
  1169. package/node_modules/@ktx/context/dist/sl/types.d.ts +0 -147
  1170. package/node_modules/@ktx/context/dist/sql-analysis/index.d.ts +0 -3
  1171. package/node_modules/@ktx/context/dist/sql-analysis/index.js +0 -1
  1172. package/node_modules/@ktx/context/dist/sql-analysis/ports.d.ts +0 -33
  1173. package/node_modules/@ktx/context/dist/tools/base-tool.d.ts +0 -85
  1174. package/node_modules/@ktx/context/dist/tools/base-tool.js +0 -94
  1175. package/node_modules/@ktx/context/dist/tools/context-candidate-mark.tool.d.ts +0 -41
  1176. package/node_modules/@ktx/context/dist/tools/context-candidate-write.tool.d.ts +0 -64
  1177. package/node_modules/@ktx/context/dist/tools/context-candidate-write.tool.js +0 -140
  1178. package/node_modules/@ktx/context/dist/tools/context-evidence-search.tool.d.ts +0 -57
  1179. package/node_modules/@ktx/context/dist/tools/context-evidence-search.tool.js +0 -92
  1180. package/node_modules/@ktx/context/dist/tools/context-evidence-tool-store.d.ts +0 -112
  1181. package/node_modules/@ktx/context/dist/tools/context-evidence-tools.test.js +0 -486
  1182. package/node_modules/@ktx/context/dist/tools/index.d.ts +0 -19
  1183. package/node_modules/@ktx/context/dist/tools/index.js +0 -12
  1184. package/node_modules/@ktx/context/dist/tools/tool-session.d.ts +0 -54
  1185. package/node_modules/@ktx/context/dist/tools/touched-sl-sources.d.ts +0 -12
  1186. package/node_modules/@ktx/context/dist/tools/touched-sl-sources.js +0 -47
  1187. package/node_modules/@ktx/context/dist/wiki/index.d.ts +0 -9
  1188. package/node_modules/@ktx/context/dist/wiki/index.js +0 -6
  1189. package/node_modules/@ktx/context/dist/wiki/keys.d.ts +0 -11
  1190. package/node_modules/@ktx/context/dist/wiki/keys.js +0 -26
  1191. package/node_modules/@ktx/context/dist/wiki/knowledge-wiki.service.d.ts +0 -77
  1192. package/node_modules/@ktx/context/dist/wiki/knowledge-wiki.service.js +0 -357
  1193. package/node_modules/@ktx/context/dist/wiki/knowledge-wiki.service.test.js +0 -190
  1194. package/node_modules/@ktx/context/dist/wiki/local-knowledge.d.ts +0 -55
  1195. package/node_modules/@ktx/context/dist/wiki/local-knowledge.js +0 -289
  1196. package/node_modules/@ktx/context/dist/wiki/local-knowledge.test.js +0 -270
  1197. package/node_modules/@ktx/context/dist/wiki/ports.d.ts +0 -70
  1198. package/node_modules/@ktx/context/dist/wiki/tools/index.d.ts +0 -5
  1199. package/node_modules/@ktx/context/dist/wiki/tools/index.js +0 -5
  1200. package/node_modules/@ktx/context/dist/wiki/tools/wiki-list-tags.tool.d.ts +0 -16
  1201. package/node_modules/@ktx/context/dist/wiki/tools/wiki-list-tags.tool.js +0 -34
  1202. package/node_modules/@ktx/context/dist/wiki/tools/wiki-read.tool.d.ts +0 -28
  1203. package/node_modules/@ktx/context/dist/wiki/tools/wiki-read.tool.js +0 -59
  1204. package/node_modules/@ktx/context/dist/wiki/tools/wiki-read.tool.test.js +0 -66
  1205. package/node_modules/@ktx/context/dist/wiki/tools/wiki-remove.tool.d.ts +0 -28
  1206. package/node_modules/@ktx/context/dist/wiki/tools/wiki-remove.tool.js +0 -85
  1207. package/node_modules/@ktx/context/dist/wiki/tools/wiki-remove.tool.test.js +0 -95
  1208. package/node_modules/@ktx/context/dist/wiki/tools/wiki-search.tool.d.ts +0 -49
  1209. package/node_modules/@ktx/context/dist/wiki/tools/wiki-search.tool.js +0 -51
  1210. package/node_modules/@ktx/context/dist/wiki/tools/wiki-write.tool.d.ts +0 -80
  1211. package/node_modules/@ktx/context/dist/wiki/tools/wiki-write.tool.js +0 -210
  1212. package/node_modules/@ktx/context/dist/wiki/tools/wiki-write.tool.test.js +0 -264
  1213. package/node_modules/@ktx/context/dist/wiki/types.d.ts +0 -50
  1214. package/node_modules/@ktx/context/dist/wiki/wiki-ref-validation.d.ts +0 -17
  1215. package/node_modules/@ktx/context/package.json +0 -122
  1216. package/node_modules/@ktx/llm/dist/index.d.ts +0 -11
  1217. package/node_modules/@ktx/llm/dist/index.js +0 -6
  1218. package/node_modules/@ktx/llm/dist/model-health.d.ts +0 -18
  1219. package/node_modules/@ktx/llm/dist/model-provider.d.ts +0 -22
  1220. package/node_modules/@ktx/llm/dist/model-provider.js +0 -150
  1221. package/node_modules/@ktx/llm/dist/package-exports.test.d.ts +0 -1
  1222. package/node_modules/@ktx/llm/dist/package-exports.test.js +0 -17
  1223. package/node_modules/@ktx/llm/dist/types.d.ts +0 -105
  1224. package/node_modules/@ktx/llm/package.json +0 -20
  1225. /package/dist/{cli-project.test.d.ts → cli-program-telemetry.test.d.ts} +0 -0
  1226. /package/{node_modules/@ktx/connector-bigquery/dist → dist/connectors/bigquery}/connector.test.d.ts +0 -0
  1227. /package/{node_modules/@ktx/connector-bigquery/dist → dist/connectors/bigquery}/dialect.js +0 -0
  1228. /package/{node_modules/@ktx/connector-bigquery/dist → dist/connectors/bigquery}/dialect.test.d.ts +0 -0
  1229. /package/{node_modules/@ktx/connector-bigquery/dist → dist/connectors/bigquery}/dialect.test.js +0 -0
  1230. /package/{node_modules/@ktx/connector-clickhouse/dist → dist/connectors/clickhouse}/connector.test.d.ts +0 -0
  1231. /package/{node_modules/@ktx/connector-clickhouse/dist → dist/connectors/clickhouse}/dialect.js +0 -0
  1232. /package/{node_modules/@ktx/connector-clickhouse/dist → dist/connectors/clickhouse}/dialect.test.d.ts +0 -0
  1233. /package/{node_modules/@ktx/connector-clickhouse/dist → dist/connectors/clickhouse}/dialect.test.js +0 -0
  1234. /package/{node_modules/@ktx/connector-mysql/dist → dist/connectors/mysql}/connector.test.d.ts +0 -0
  1235. /package/{node_modules/@ktx/connector-mysql/dist → dist/connectors/mysql}/dialect.js +0 -0
  1236. /package/{node_modules/@ktx/connector-mysql/dist → dist/connectors/mysql}/dialect.test.d.ts +0 -0
  1237. /package/{node_modules/@ktx/connector-mysql/dist → dist/connectors/mysql}/dialect.test.js +0 -0
  1238. /package/{node_modules/@ktx/connector-postgres/dist → dist/connectors/postgres}/connector.test.d.ts +0 -0
  1239. /package/{node_modules/@ktx/connector-postgres/dist → dist/connectors/postgres}/dialect.js +0 -0
  1240. /package/{node_modules/@ktx/connector-postgres/dist → dist/connectors/postgres}/dialect.test.d.ts +0 -0
  1241. /package/{node_modules/@ktx/connector-postgres/dist → dist/connectors/postgres}/dialect.test.js +0 -0
  1242. /package/{node_modules/@ktx/connector-postgres/dist → dist/connectors/postgres}/historic-sql-query-client.js +0 -0
  1243. /package/{node_modules/@ktx/connector-postgres/dist → dist/connectors/postgres}/historic-sql-query-client.test.d.ts +0 -0
  1244. /package/{node_modules/@ktx/connector-postgres/dist → dist/connectors/postgres}/historic-sql-query-client.test.js +0 -0
  1245. /package/{node_modules/@ktx/connector-snowflake/dist → dist/connectors/snowflake}/connector.test.d.ts +0 -0
  1246. /package/{node_modules/@ktx/connector-snowflake/dist → dist/connectors/snowflake}/dialect.js +0 -0
  1247. /package/{node_modules/@ktx/connector-snowflake/dist → dist/connectors/snowflake}/dialect.test.d.ts +0 -0
  1248. /package/{node_modules/@ktx/connector-snowflake/dist → dist/connectors/snowflake}/dialect.test.js +0 -0
  1249. /package/{node_modules/@ktx/connector-bigquery/dist/package-exports.test.d.ts → dist/connectors/snowflake/identifiers.test.d.ts} +0 -0
  1250. /package/{node_modules/@ktx/connector-clickhouse/dist/package-exports.test.d.ts → dist/connectors/snowflake/sdk-logger.test.d.ts} +0 -0
  1251. /package/{node_modules/@ktx/connector-sqlite/dist → dist/connectors/sqlite}/connector.test.d.ts +0 -0
  1252. /package/{node_modules/@ktx/connector-sqlite/dist → dist/connectors/sqlite}/dialect.js +0 -0
  1253. /package/{node_modules/@ktx/connector-sqlite/dist → dist/connectors/sqlite}/dialect.test.d.ts +0 -0
  1254. /package/{node_modules/@ktx/connector-sqlite/dist → dist/connectors/sqlite}/dialect.test.js +0 -0
  1255. /package/{node_modules/@ktx/connector-sqlserver/dist → dist/connectors/sqlserver}/connector.test.d.ts +0 -0
  1256. /package/{node_modules/@ktx/connector-sqlserver/dist → dist/connectors/sqlserver}/dialect.js +0 -0
  1257. /package/{node_modules/@ktx/connector-sqlserver/dist → dist/connectors/sqlserver}/dialect.test.d.ts +0 -0
  1258. /package/{node_modules/@ktx/connector-sqlserver/dist → dist/connectors/sqlserver}/dialect.test.js +0 -0
  1259. /package/{node_modules/@ktx/connector-mysql/dist/package-exports.test.d.ts → dist/context/connections/bigquery-identifiers.test.d.ts} +0 -0
  1260. /package/{node_modules/@ktx/context/dist → dist/context}/connections/connection-type.d.ts +0 -0
  1261. /package/{node_modules/@ktx/context/dist → dist/context}/connections/connection-type.js +0 -0
  1262. /package/{node_modules/@ktx/context/dist → dist/context}/connections/dialects.js +0 -0
  1263. /package/{node_modules/@ktx/context/dist → dist/context}/connections/dialects.test.d.ts +0 -0
  1264. /package/{node_modules/@ktx/context/dist → dist/context}/connections/dialects.test.js +0 -0
  1265. /package/{node_modules/@ktx/context/dist → dist/context}/connections/local-query-executor.d.ts +0 -0
  1266. /package/{node_modules/@ktx/context/dist → dist/context}/connections/local-query-executor.js +0 -0
  1267. /package/{node_modules/@ktx/context/dist → dist/context}/connections/local-query-executor.test.d.ts +0 -0
  1268. /package/{node_modules/@ktx/context/dist → dist/context}/connections/local-query-executor.test.js +0 -0
  1269. /package/{node_modules/@ktx/context/dist → dist/context}/connections/local-warehouse-descriptor.d.ts +0 -0
  1270. /package/{node_modules/@ktx/context/dist → dist/context}/connections/local-warehouse-descriptor.js +0 -0
  1271. /package/{node_modules/@ktx/context/dist → dist/context}/connections/local-warehouse-descriptor.test.d.ts +0 -0
  1272. /package/{node_modules/@ktx/context/dist → dist/context}/connections/local-warehouse-descriptor.test.js +0 -0
  1273. /package/{node_modules/@ktx/context/dist → dist/context}/connections/notion-config.test.d.ts +0 -0
  1274. /package/{node_modules/@ktx/context/dist → dist/context}/connections/notion-config.test.js +0 -0
  1275. /package/{node_modules/@ktx/context/dist → dist/context}/connections/postgres-query-executor.d.ts +0 -0
  1276. /package/{node_modules/@ktx/context/dist → dist/context}/connections/postgres-query-executor.js +0 -0
  1277. /package/{node_modules/@ktx/context/dist → dist/context}/connections/postgres-query-executor.test.d.ts +0 -0
  1278. /package/{node_modules/@ktx/context/dist → dist/context}/connections/postgres-query-executor.test.js +0 -0
  1279. /package/{node_modules/@ktx/context/dist → dist/context}/connections/query-executor.js +0 -0
  1280. /package/{node_modules/@ktx/context/dist → dist/context}/connections/read-only-sql.d.ts +0 -0
  1281. /package/{node_modules/@ktx/context/dist → dist/context}/connections/read-only-sql.js +0 -0
  1282. /package/{node_modules/@ktx/context/dist → dist/context}/connections/read-only-sql.test.d.ts +0 -0
  1283. /package/{node_modules/@ktx/context/dist → dist/context}/connections/read-only-sql.test.js +0 -0
  1284. /package/{node_modules/@ktx/context/dist → dist/context}/connections/sqlite-query-executor.test.d.ts +0 -0
  1285. /package/{node_modules/@ktx/context/dist → dist/context}/connections/sqlite-query-executor.test.js +0 -0
  1286. /package/{node_modules/@ktx/context/dist → dist/context}/core/config-reference.test.d.ts +0 -0
  1287. /package/{node_modules/@ktx/context/dist → dist/context}/core/config-reference.test.js +0 -0
  1288. /package/{node_modules/@ktx/context/dist → dist/context}/core/config.js +0 -0
  1289. /package/{node_modules/@ktx/context/dist → dist/context}/core/embedding.d.ts +0 -0
  1290. /package/{node_modules/@ktx/context/dist → dist/context}/core/embedding.js +0 -0
  1291. /package/{node_modules/@ktx/context/dist → dist/context}/core/file-store.d.ts +0 -0
  1292. /package/{node_modules/@ktx/context/dist → dist/context}/core/file-store.js +0 -0
  1293. /package/{node_modules/@ktx/context/dist → dist/context}/core/git-env.d.ts +0 -0
  1294. /package/{node_modules/@ktx/context/dist → dist/context}/core/git-env.js +0 -0
  1295. /package/{node_modules/@ktx/context/dist → dist/context}/core/git.service.assert-worktree-clean.test.d.ts +0 -0
  1296. /package/{node_modules/@ktx/context/dist → dist/context}/core/git.service.assert-worktree-clean.test.js +0 -0
  1297. /package/{node_modules/@ktx/context/dist → dist/context}/core/git.service.d.ts +0 -0
  1298. /package/{node_modules/@ktx/context/dist → dist/context}/core/git.service.delete-directories.test.d.ts +0 -0
  1299. /package/{node_modules/@ktx/context/dist → dist/context}/core/git.service.delete-directories.test.js +0 -0
  1300. /package/{node_modules/@ktx/context/dist → dist/context}/core/git.service.js +0 -0
  1301. /package/{node_modules/@ktx/context/dist → dist/context}/core/git.service.patch.test.d.ts +0 -0
  1302. /package/{node_modules/@ktx/context/dist → dist/context}/core/git.service.patch.test.js +0 -0
  1303. /package/{node_modules/@ktx/context/dist → dist/context}/core/git.service.reset-hard.test.d.ts +0 -0
  1304. /package/{node_modules/@ktx/context/dist → dist/context}/core/git.service.reset-hard.test.js +0 -0
  1305. /package/{node_modules/@ktx/context/dist → dist/context}/core/git.service.test.d.ts +0 -0
  1306. /package/{node_modules/@ktx/context/dist → dist/context}/core/git.service.test.js +0 -0
  1307. /package/{node_modules/@ktx/context/dist → dist/context}/core/session-worktree.service.js +0 -0
  1308. /package/{node_modules/@ktx/context/dist → dist/context}/core/session-worktree.service.test.d.ts +0 -0
  1309. /package/{node_modules/@ktx/context/dist → dist/context}/core/session-worktree.service.test.js +0 -0
  1310. /package/{node_modules/@ktx/context/dist → dist/context}/daemon/semantic-layer-compute.test.d.ts +0 -0
  1311. /package/{node_modules/@ktx/context/dist → dist/context}/index-sync/reindex.test.d.ts +0 -0
  1312. /package/{node_modules/@ktx/context/dist → dist/context}/index-sync/types.js +0 -0
  1313. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/action-identity.js +0 -0
  1314. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/action-identity.test.d.ts +0 -0
  1315. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/action-identity.test.js +0 -0
  1316. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/dbt/chunk.d.ts +0 -0
  1317. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/dbt/chunk.js +0 -0
  1318. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/dbt/chunk.test.d.ts +0 -0
  1319. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/dbt/chunk.test.js +0 -0
  1320. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/dbt/dbt.adapter.d.ts +0 -0
  1321. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/dbt/dbt.adapter.js +0 -0
  1322. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/dbt/dbt.adapter.test.d.ts +0 -0
  1323. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/dbt/dbt.adapter.test.js +0 -0
  1324. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/dbt/detect.d.ts +0 -0
  1325. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/dbt/detect.js +0 -0
  1326. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/dbt/fetch.d.ts +0 -0
  1327. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/dbt/fetch.js +0 -0
  1328. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/dbt/fetch.test.d.ts +0 -0
  1329. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/dbt/fetch.test.js +0 -0
  1330. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/dbt/parse.test.d.ts +0 -0
  1331. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/dbt/parse.test.js +0 -0
  1332. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/dbt-descriptions/parse-schema.test.d.ts +0 -0
  1333. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/dbt-descriptions/parse-schema.test.js +0 -0
  1334. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/fake/fake.adapter.d.ts +0 -0
  1335. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/fake/fake.adapter.js +0 -0
  1336. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/bigquery-query-history-reader.d.ts +0 -0
  1337. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/bigquery-query-history-reader.test.d.ts +0 -0
  1338. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/bigquery-query-history-reader.test.js +0 -0
  1339. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/buckets.d.ts +0 -0
  1340. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/buckets.js +0 -0
  1341. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/buckets.test.d.ts +0 -0
  1342. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/buckets.test.js +0 -0
  1343. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/chunk-unified.d.ts +0 -0
  1344. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/chunk-unified.js +0 -0
  1345. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/chunk-unified.test.d.ts +0 -0
  1346. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/chunk-unified.test.js +0 -0
  1347. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/detect.d.ts +0 -0
  1348. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/detect.js +0 -0
  1349. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/detect.test.d.ts +0 -0
  1350. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/detect.test.js +0 -0
  1351. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/errors.d.ts +0 -0
  1352. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/errors.js +0 -0
  1353. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/evidence-tool.d.ts +0 -0
  1354. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/evidence-tool.js +0 -0
  1355. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/evidence-tool.test.d.ts +0 -0
  1356. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/evidence-tool.test.js +0 -0
  1357. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/evidence.test.d.ts +0 -0
  1358. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/evidence.test.js +0 -0
  1359. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/historic-sql.adapter.d.ts +0 -0
  1360. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/historic-sql.adapter.js +0 -0
  1361. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/historic-sql.adapter.test.d.ts +0 -0
  1362. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/historic-sql.adapter.test.js +0 -0
  1363. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/local-ingest-acceptance.test.d.ts +0 -0
  1364. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/pattern-inputs.test.d.ts +0 -0
  1365. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/pattern-inputs.test.js +0 -0
  1366. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/postgres-pgss-reader.d.ts +0 -0
  1367. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/postgres-pgss-reader.js +0 -0
  1368. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/postgres-pgss-reader.test.d.ts +0 -0
  1369. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/postgres-pgss-reader.test.js +0 -0
  1370. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/projection.js +0 -0
  1371. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/projection.test.d.ts +0 -0
  1372. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/projection.test.js +0 -0
  1373. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/redaction.d.ts +0 -0
  1374. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/redaction.js +0 -0
  1375. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/redaction.test.d.ts +0 -0
  1376. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/redaction.test.js +0 -0
  1377. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/skill-schemas.test.d.ts +0 -0
  1378. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/skill-schemas.test.js +0 -0
  1379. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/snowflake-query-history-reader.d.ts +0 -0
  1380. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/snowflake-query-history-reader.js +0 -0
  1381. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/snowflake-query-history-reader.test.d.ts +0 -0
  1382. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/snowflake-query-history-reader.test.js +0 -0
  1383. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/stage-unified.js +0 -0
  1384. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/stage-unified.test.d.ts +0 -0
  1385. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/stage-unified.test.js +0 -0
  1386. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/types.js +0 -0
  1387. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/types.test.d.ts +0 -0
  1388. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/historic-sql/types.test.js +0 -0
  1389. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/live-database/chunk.d.ts +0 -0
  1390. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/live-database/chunk.js +0 -0
  1391. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/live-database/chunk.test.d.ts +0 -0
  1392. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/live-database/chunk.test.js +0 -0
  1393. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/live-database/daemon-introspection.test.d.ts +0 -0
  1394. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/live-database/live-database.adapter.d.ts +0 -0
  1395. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/live-database/live-database.adapter.test.d.ts +0 -0
  1396. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/live-database/manifest.js +0 -0
  1397. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/live-database/manifest.test.d.ts +0 -0
  1398. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/live-database/manifest.test.js +0 -0
  1399. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/live-database/stage.test.d.ts +0 -0
  1400. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/live-database/stage.test.js +0 -0
  1401. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/live-database/types.js +0 -0
  1402. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/chunk.d.ts +0 -0
  1403. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/chunk.js +0 -0
  1404. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/chunk.test.d.ts +0 -0
  1405. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/chunk.test.js +0 -0
  1406. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/client-boundary.test.d.ts +0 -0
  1407. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/client-boundary.test.js +0 -0
  1408. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/client.d.ts +0 -0
  1409. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/client.js +0 -0
  1410. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/client.test.d.ts +0 -0
  1411. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/client.test.js +0 -0
  1412. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/daemon-table-identifier-parser.d.ts +0 -0
  1413. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/daemon-table-identifier-parser.js +0 -0
  1414. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/daemon-table-identifier-parser.test.d.ts +0 -0
  1415. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/daemon-table-identifier-parser.test.js +0 -0
  1416. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/detect.d.ts +0 -0
  1417. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/detect.js +0 -0
  1418. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/detect.test.d.ts +0 -0
  1419. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/detect.test.js +0 -0
  1420. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/evidence-documents.d.ts +0 -0
  1421. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/evidence-documents.js +0 -0
  1422. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/evidence-documents.test.d.ts +0 -0
  1423. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/evidence-documents.test.js +0 -0
  1424. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/factory.test.d.ts +0 -0
  1425. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/factory.test.js +0 -0
  1426. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/fetch-report.d.ts +0 -0
  1427. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/fetch-report.js +0 -0
  1428. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/fetch-report.test.d.ts +0 -0
  1429. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/fetch-report.test.js +0 -0
  1430. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/fetch.js +0 -0
  1431. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/fetch.test.d.ts +0 -0
  1432. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/fetch.test.js +0 -0
  1433. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/local-runtime-store.js +0 -0
  1434. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/local-runtime-store.test.d.ts +0 -0
  1435. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/local-runtime-store.test.js +0 -0
  1436. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/looker.adapter.d.ts +0 -0
  1437. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/looker.adapter.js +0 -0
  1438. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/looker.adapter.test.d.ts +0 -0
  1439. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/looker.adapter.test.js +0 -0
  1440. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/mapping.test.d.ts +0 -0
  1441. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/mapping.test.js +0 -0
  1442. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/reconcile.test.d.ts +0 -0
  1443. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/scope.test.d.ts +0 -0
  1444. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/scope.test.js +0 -0
  1445. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/target-connections.d.ts +0 -0
  1446. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/target-connections.js +0 -0
  1447. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/target-connections.test.d.ts +0 -0
  1448. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/target-connections.test.js +0 -0
  1449. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/tools/looker-query-to-sl.tool.test.d.ts +0 -0
  1450. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/tools/looker-query-to-sl.tool.test.js +0 -0
  1451. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/looker/types.test.d.ts +0 -0
  1452. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/chunk.d.ts +0 -0
  1453. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/chunk.js +0 -0
  1454. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/chunk.test.d.ts +0 -0
  1455. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/chunk.test.js +0 -0
  1456. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/detect.d.ts +0 -0
  1457. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/detect.js +0 -0
  1458. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/detect.test.d.ts +0 -0
  1459. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/detect.test.js +0 -0
  1460. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/fetch-report.test.d.ts +0 -0
  1461. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/fetch-report.test.js +0 -0
  1462. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/fetch.d.ts +0 -0
  1463. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/fetch.js +0 -0
  1464. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/fetch.test.d.ts +0 -0
  1465. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/fetch.test.js +0 -0
  1466. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/graph.d.ts +0 -0
  1467. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/graph.js +0 -0
  1468. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/graph.test.d.ts +0 -0
  1469. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/graph.test.js +0 -0
  1470. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/lookml.adapter.d.ts +0 -0
  1471. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/lookml.adapter.js +0 -0
  1472. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/lookml.adapter.test.d.ts +0 -0
  1473. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/lookml.adapter.test.js +0 -0
  1474. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/parse.d.ts +0 -0
  1475. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/parse.js +0 -0
  1476. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/parse.test.d.ts +0 -0
  1477. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/parse.test.js +0 -0
  1478. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/pull-config.test.d.ts +0 -0
  1479. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/lookml/pull-config.test.js +0 -0
  1480. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/card-references.d.ts +0 -0
  1481. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/card-references.js +0 -0
  1482. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/card-references.test.d.ts +0 -0
  1483. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/card-references.test.js +0 -0
  1484. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/chunk.d.ts +0 -0
  1485. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/chunk.js +0 -0
  1486. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/chunk.test.d.ts +0 -0
  1487. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/chunk.test.js +0 -0
  1488. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/client-boundary.test.d.ts +0 -0
  1489. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/client-boundary.test.js +0 -0
  1490. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/client-port.js +0 -0
  1491. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/client-port.test.d.ts +0 -0
  1492. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/client-port.test.js +0 -0
  1493. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/client.test.d.ts +0 -0
  1494. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/client.test.js +0 -0
  1495. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/detect.d.ts +0 -0
  1496. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/detect.js +0 -0
  1497. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/detect.test.d.ts +0 -0
  1498. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/detect.test.js +0 -0
  1499. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/fanout-planner.js +0 -0
  1500. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/fanout-planner.test.d.ts +0 -0
  1501. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/fanout-planner.test.js +0 -0
  1502. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/fetch-scope.d.ts +0 -0
  1503. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/fetch-scope.js +0 -0
  1504. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/fetch-scope.test.d.ts +0 -0
  1505. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/fetch-scope.test.js +0 -0
  1506. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/fetch.d.ts +0 -0
  1507. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/fetch.js +0 -0
  1508. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/fetch.test.d.ts +0 -0
  1509. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/fetch.test.js +0 -0
  1510. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/local-metabase.adapter.test.d.ts +0 -0
  1511. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/local-metabase.adapter.test.js +0 -0
  1512. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/local-source-state-store.test.d.ts +0 -0
  1513. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/mapping.test.d.ts +0 -0
  1514. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/mapping.test.js +0 -0
  1515. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/metabase.adapter.d.ts +0 -0
  1516. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/metabase.adapter.js +0 -0
  1517. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/metabase.adapter.test.d.ts +0 -0
  1518. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/metabase.adapter.test.js +0 -0
  1519. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/serialize-card.test.d.ts +0 -0
  1520. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/serialize-card.test.js +0 -0
  1521. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/source-state-port.js +0 -0
  1522. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/types.test.d.ts +0 -0
  1523. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metabase/types.test.js +0 -0
  1524. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/chunk.d.ts +0 -0
  1525. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/chunk.js +0 -0
  1526. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/chunk.test.d.ts +0 -0
  1527. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/chunk.test.js +0 -0
  1528. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/deep-parse.test.d.ts +0 -0
  1529. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/deep-parse.test.js +0 -0
  1530. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/detect.d.ts +0 -0
  1531. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/detect.js +0 -0
  1532. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/detect.test.d.ts +0 -0
  1533. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/detect.test.js +0 -0
  1534. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/fetch.d.ts +0 -0
  1535. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/fetch.js +0 -0
  1536. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/fetch.test.d.ts +0 -0
  1537. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/fetch.test.js +0 -0
  1538. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/graph.d.ts +0 -0
  1539. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/graph.js +0 -0
  1540. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/graph.test.d.ts +0 -0
  1541. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/graph.test.js +0 -0
  1542. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/import-semantic-models.test.d.ts +0 -0
  1543. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/import-semantic-models.test.js +0 -0
  1544. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/metricflow.adapter.d.ts +0 -0
  1545. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/metricflow.adapter.js +0 -0
  1546. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/metricflow.adapter.test.d.ts +0 -0
  1547. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/metricflow.adapter.test.js +0 -0
  1548. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/parse.js +0 -0
  1549. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/parse.test.d.ts +0 -0
  1550. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/parse.test.js +0 -0
  1551. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/projection-config.d.ts +0 -0
  1552. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/projection-config.js +0 -0
  1553. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/pull-config.test.d.ts +0 -0
  1554. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/pull-config.test.js +0 -0
  1555. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/metricflow/semantic-models.test.d.ts +0 -0
  1556. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/cluster.test.d.ts +0 -0
  1557. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/cluster.test.js +0 -0
  1558. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/detect.d.ts +0 -0
  1559. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/detect.js +0 -0
  1560. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/fetch.d.ts +0 -0
  1561. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/fetch.js +0 -0
  1562. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/fetch.test.d.ts +0 -0
  1563. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/fetch.test.js +0 -0
  1564. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/local-state-store.d.ts +0 -0
  1565. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/local-state-store.js +0 -0
  1566. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/local-state-store.test.d.ts +0 -0
  1567. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/local-state-store.test.js +0 -0
  1568. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/normalize.test.d.ts +0 -0
  1569. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/normalize.test.js +0 -0
  1570. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/notion-client.test.d.ts +0 -0
  1571. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/notion-client.test.js +0 -0
  1572. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/notion.adapter.d.ts +0 -0
  1573. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/notion.adapter.js +0 -0
  1574. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/notion.adapter.test.d.ts +0 -0
  1575. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/notion.adapter.test.js +0 -0
  1576. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/pull-config.d.ts +0 -0
  1577. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/pull-config.js +0 -0
  1578. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/types.d.ts +0 -0
  1579. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/adapters/notion/types.js +0 -0
  1580. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/artifact-gates.js +0 -0
  1581. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/artifact-gates.test.d.ts +0 -0
  1582. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/artifact-gates.test.js +0 -0
  1583. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/canonical-pins.d.ts +0 -0
  1584. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/canonical-pins.js +0 -0
  1585. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/canonical-pins.test.d.ts +0 -0
  1586. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/canonical-pins.test.js +0 -0
  1587. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/clustering/kmeans.d.ts +0 -0
  1588. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/clustering/kmeans.js +0 -0
  1589. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/clustering/kmeans.test.d.ts +0 -0
  1590. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/clustering/kmeans.test.js +0 -0
  1591. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-candidates/candidate-dedup.service.test.d.ts +0 -0
  1592. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-candidates/candidate-dedup.service.test.js +0 -0
  1593. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-candidates/context-candidate-carryforward.service.test.d.ts +0 -0
  1594. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-candidates/context-candidate-carryforward.service.test.js +0 -0
  1595. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-candidates/curator-pagination.service.test.d.ts +0 -0
  1596. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-candidates/curator-pagination.service.test.js +0 -0
  1597. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-candidates/embedding-text.d.ts +0 -0
  1598. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-candidates/embedding-text.js +0 -0
  1599. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-candidates/embedding-text.test.d.ts +0 -0
  1600. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-candidates/embedding-text.test.js +0 -0
  1601. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-candidates/store.d.ts +0 -0
  1602. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-candidates/store.js +0 -0
  1603. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-candidates/store.test.d.ts +0 -0
  1604. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-candidates/store.test.js +0 -0
  1605. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-candidates/types.js +0 -0
  1606. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-evidence/context-evidence-index.service.test.d.ts +0 -0
  1607. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-evidence/context-evidence-index.service.test.js +0 -0
  1608. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-evidence/sqlite-context-evidence-store.test.d.ts +0 -0
  1609. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-evidence/sqlite-context-evidence-store.test.js +0 -0
  1610. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-evidence/store.d.ts +0 -0
  1611. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-evidence/store.js +0 -0
  1612. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-evidence/store.test.d.ts +0 -0
  1613. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-evidence/store.test.js +0 -0
  1614. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-evidence/types.d.ts +0 -0
  1615. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/context-evidence/types.js +0 -0
  1616. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/dbt-shared/project-vars.test.d.ts +0 -0
  1617. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/dbt-shared/project-vars.test.js +0 -0
  1618. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/dbt-shared/schema-files.test.d.ts +0 -0
  1619. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/dbt-shared/schema-files.test.js +0 -0
  1620. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/diff-set.service.d.ts +0 -0
  1621. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/diff-set.service.js +0 -0
  1622. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/diff-set.service.test.d.ts +0 -0
  1623. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/diff-set.service.test.js +0 -0
  1624. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/final-gate-repair.js +0 -0
  1625. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/final-gate-repair.test.d.ts +0 -0
  1626. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/final-gate-repair.test.js +0 -0
  1627. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/finalization-scope.js +0 -0
  1628. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/finalization-scope.test.d.ts +0 -0
  1629. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/finalization-scope.test.js +0 -0
  1630. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/git-env.d.ts +0 -0
  1631. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/git-env.js +0 -0
  1632. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/ingest-bundle.runner.d.ts +0 -0
  1633. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/ingest-bundle.runner.isolated-diff.test.d.ts +0 -0
  1634. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/ingest-bundle.runner.test.d.ts +0 -0
  1635. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/ingest-prompts.test.d.ts +0 -0
  1636. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/ingest-prompts.test.js +0 -0
  1637. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/ingest-runtime-assets.test.d.ts +0 -0
  1638. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/ingest-trace.test.d.ts +0 -0
  1639. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/ingest-trace.test.js +0 -0
  1640. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/isolated-diff/git-patch.test.d.ts +0 -0
  1641. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/isolated-diff/git-patch.test.js +0 -0
  1642. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/isolated-diff/patch-integrator.js +0 -0
  1643. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/isolated-diff/patch-integrator.test.d.ts +0 -0
  1644. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/isolated-diff/textual-conflict-resolver.js +0 -0
  1645. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/isolated-diff/textual-conflict-resolver.test.d.ts +0 -0
  1646. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/isolated-diff/textual-conflict-resolver.test.js +0 -0
  1647. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/isolated-diff/work-unit-executor.d.ts +0 -0
  1648. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/isolated-diff/work-unit-executor.js +0 -0
  1649. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/isolated-diff/work-unit-executor.test.d.ts +0 -0
  1650. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/local-adapters.test.d.ts +0 -0
  1651. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/local-bundle-ingest.test.d.ts +0 -0
  1652. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/local-bundle-runtime.test.d.ts +0 -0
  1653. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/local-embedding-provider.integration.test.d.ts +0 -0
  1654. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/local-embedding-provider.integration.test.js +0 -0
  1655. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/local-mapping-reconcile.test.d.ts +0 -0
  1656. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/local-metabase-ingest.test.d.ts +0 -0
  1657. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/local-stage-ingest.test.d.ts +0 -0
  1658. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/acceptance-fixtures.d.ts +0 -0
  1659. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/acceptance-fixtures.js +0 -0
  1660. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/acceptance.test.d.ts +0 -0
  1661. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/acceptance.test.js +0 -0
  1662. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/events.test.d.ts +0 -0
  1663. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/events.test.js +0 -0
  1664. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/interaction.test.d.ts +0 -0
  1665. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/interaction.test.js +0 -0
  1666. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/interactive-render.d.ts +0 -0
  1667. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/interactive-render.js +0 -0
  1668. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/interactive-render.test.d.ts +0 -0
  1669. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/interactive-render.test.js +0 -0
  1670. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/known-errors.d.ts +0 -0
  1671. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/known-errors.js +0 -0
  1672. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/live-buffer.d.ts +0 -0
  1673. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/live-buffer.js +0 -0
  1674. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/live-buffer.test.d.ts +0 -0
  1675. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/live-buffer.test.js +0 -0
  1676. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/render.d.ts +0 -0
  1677. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/render.js +0 -0
  1678. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/render.test.d.ts +0 -0
  1679. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/render.test.js +0 -0
  1680. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/schema.test.d.ts +0 -0
  1681. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/schema.test.js +0 -0
  1682. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/summary.d.ts +0 -0
  1683. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/summary.js +0 -0
  1684. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/summary.test.d.ts +0 -0
  1685. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/summary.test.js +0 -0
  1686. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/types.d.ts +0 -0
  1687. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/types.js +0 -0
  1688. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/view-model.d.ts +0 -0
  1689. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/view-model.js +0 -0
  1690. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/view-model.test.d.ts +0 -0
  1691. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/view-model.test.js +0 -0
  1692. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/visuals.test.d.ts +0 -0
  1693. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/memory-flow/visuals.test.js +0 -0
  1694. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/page-triage/page-triage.service.test.d.ts +0 -0
  1695. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/page-triage/page-triage.service.test.js +0 -0
  1696. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/parsed-target-table.d.ts +0 -0
  1697. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/parsed-target-table.js +0 -0
  1698. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/ports.js +0 -0
  1699. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/raw-sources-paths.test.d.ts +0 -0
  1700. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/raw-sources-paths.test.js +0 -0
  1701. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/repo-fetch.test.d.ts +0 -0
  1702. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/repo-fetch.test.js +0 -0
  1703. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/report-snapshot.test.d.ts +0 -0
  1704. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/report-snapshot.test.js +0 -0
  1705. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/semantic-layer-target-policy.test.d.ts +0 -0
  1706. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/semantic-layer-target-policy.test.js +0 -0
  1707. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/source-adapter-registry.d.ts +0 -0
  1708. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/source-adapter-registry.js +0 -0
  1709. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/source-adapter-registry.test.d.ts +0 -0
  1710. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/source-adapter-registry.test.js +0 -0
  1711. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/sqlite-bundle-ingest-store.d.ts +0 -0
  1712. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/sqlite-bundle-ingest-store.js +0 -0
  1713. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/sqlite-bundle-ingest-store.test.d.ts +0 -0
  1714. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/sqlite-bundle-ingest-store.test.js +0 -0
  1715. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/sqlite-local-ingest-store.d.ts +0 -0
  1716. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/sqlite-local-ingest-store.js +0 -0
  1717. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/sqlite-local-ingest-store.test.d.ts +0 -0
  1718. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/sqlite-local-ingest-store.test.js +0 -0
  1719. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/stages/build-reconcile-context.context-candidates.test.d.ts +0 -0
  1720. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/stages/build-reconcile-context.context-candidates.test.js +0 -0
  1721. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/stages/build-reconcile-context.js +0 -0
  1722. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/stages/build-reconcile-context.test.d.ts +0 -0
  1723. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/stages/build-reconcile-context.test.js +0 -0
  1724. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/stages/build-wu-context.test.d.ts +0 -0
  1725. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/stages/build-wu-context.test.js +0 -0
  1726. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/stages/stage-1-stage-raw-files.d.ts +0 -0
  1727. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/stages/stage-1-stage-raw-files.js +0 -0
  1728. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/stages/stage-1-stage-raw-files.test.d.ts +0 -0
  1729. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/stages/stage-1-stage-raw-files.test.js +0 -0
  1730. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/stages/stage-3-work-units.test.d.ts +0 -0
  1731. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/stages/stage-4-reconciliation.js +0 -0
  1732. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/stages/stage-4-reconciliation.test.d.ts +0 -0
  1733. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/stages/stage-4-reconciliation.test.js +0 -0
  1734. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/stages/stage-index.types.js +0 -0
  1735. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/stages/validate-wu-sources.js +0 -0
  1736. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/stages/validate-wu-sources.test.d.ts +0 -0
  1737. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/stages/validate-wu-sources.test.js +0 -0
  1738. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/emit-artifact-resolution.tool.d.ts +0 -0
  1739. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/emit-artifact-resolution.tool.js +0 -0
  1740. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/emit-conflict-resolution.tool.d.ts +0 -0
  1741. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/emit-conflict-resolution.tool.js +0 -0
  1742. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/emit-eviction-decision.tool.d.ts +0 -0
  1743. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/emit-eviction-decision.tool.js +0 -0
  1744. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/emit-reconciliation-records.tool.test.d.ts +0 -0
  1745. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/emit-reconciliation-records.tool.test.js +0 -0
  1746. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/emit-unmapped-fallback.tool.d.ts +0 -0
  1747. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/emit-unmapped-fallback.tool.js +0 -0
  1748. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/eviction-list.tool.d.ts +0 -0
  1749. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/eviction-list.tool.js +0 -0
  1750. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/eviction-list.tool.test.d.ts +0 -0
  1751. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/eviction-list.tool.test.js +0 -0
  1752. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/read-raw-file.tool.d.ts +0 -0
  1753. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/read-raw-file.tool.js +0 -0
  1754. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/read-raw-file.tool.test.d.ts +0 -0
  1755. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/read-raw-file.tool.test.js +0 -0
  1756. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/read-raw-span.tool.d.ts +0 -0
  1757. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/read-raw-span.tool.js +0 -0
  1758. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/read-raw-span.tool.test.d.ts +0 -0
  1759. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/read-raw-span.tool.test.js +0 -0
  1760. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/stage-diff.tool.d.ts +0 -0
  1761. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/stage-diff.tool.js +0 -0
  1762. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/stage-diff.tool.test.d.ts +0 -0
  1763. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/stage-diff.tool.test.js +0 -0
  1764. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/stage-list.tool.d.ts +0 -0
  1765. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/stage-list.tool.js +0 -0
  1766. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/stage-list.tool.test.d.ts +0 -0
  1767. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/stage-list.tool.test.js +0 -0
  1768. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/tool-call-logger.js +0 -0
  1769. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/tool-transcript-summary.d.ts +0 -0
  1770. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/tool-transcript-summary.js +0 -0
  1771. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/tool-transcript-summary.test.d.ts +0 -0
  1772. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/tool-transcript-summary.test.js +0 -0
  1773. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/verification-ledger.tool.js +0 -0
  1774. /package/{node_modules/@ktx/context/dist/ingest/tools/warehouse-verification/index.js → dist/context/ingest/tools/warehouse-verification/create-warehouse-verification-tools.js} +0 -0
  1775. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/warehouse-verification/discover-data.tool.test.d.ts +0 -0
  1776. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/warehouse-verification/discover-data.tool.test.js +0 -0
  1777. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/warehouse-verification/entity-details.tool.test.d.ts +0 -0
  1778. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/warehouse-verification/sql-execution.tool.test.d.ts +0 -0
  1779. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/tools/warehouse-verification/sql-execution.tool.test.js +0 -0
  1780. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/types.js +0 -0
  1781. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/wiki-body-refs.test.d.ts +0 -0
  1782. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/wiki-body-refs.test.js +0 -0
  1783. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/wiki-sl-ref-repair.js +0 -0
  1784. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/wiki-sl-ref-repair.test.d.ts +0 -0
  1785. /package/{node_modules/@ktx/context/dist → dist/context}/ingest/wiki-sl-ref-repair.test.js +0 -0
  1786. /package/{node_modules/@ktx/connector-postgres/dist/package-exports.test.d.ts → dist/context/llm/ai-sdk-runtime.test.d.ts} +0 -0
  1787. /package/{node_modules/@ktx/context/dist → dist/context}/llm/claude-code-env.test.d.ts +0 -0
  1788. /package/{node_modules/@ktx/context/dist → dist/context}/llm/claude-code-env.test.js +0 -0
  1789. /package/{node_modules/@ktx/context/dist → dist/context}/llm/claude-code-models.d.ts +0 -0
  1790. /package/{node_modules/@ktx/context/dist → dist/context}/llm/claude-code-models.js +0 -0
  1791. /package/{node_modules/@ktx/context/dist → dist/context}/llm/claude-code-models.test.d.ts +0 -0
  1792. /package/{node_modules/@ktx/context/dist → dist/context}/llm/claude-code-models.test.js +0 -0
  1793. /package/{node_modules/@ktx/context/dist → dist/context}/llm/claude-code-runtime.test.d.ts +0 -0
  1794. /package/{node_modules/@ktx/context/dist → dist/context}/llm/debug-request-recorder.test.d.ts +0 -0
  1795. /package/{node_modules/@ktx/context/dist → dist/context}/llm/debug-request-recorder.test.js +0 -0
  1796. /package/{node_modules/@ktx/context/dist → dist/context}/llm/embedding-port.js +0 -0
  1797. /package/{node_modules/@ktx/context/dist → dist/context}/llm/embedding-port.test.d.ts +0 -0
  1798. /package/{node_modules/@ktx/context/dist → dist/context}/llm/local-config.test.d.ts +0 -0
  1799. /package/{node_modules/@ktx/context/dist → dist/context}/llm/runtime-local-config.test.d.ts +0 -0
  1800. /package/{node_modules/@ktx/context/dist → dist/context}/llm/runtime-local-config.test.js +0 -0
  1801. /package/{node_modules/@ktx/context/dist → dist/context}/llm/runtime-port.js +0 -0
  1802. /package/{node_modules/@ktx/context/dist → dist/context}/llm/runtime-tools.test.d.ts +0 -0
  1803. /package/{node_modules/@ktx/context/dist → dist/context}/llm/runtime-tools.test.js +0 -0
  1804. /package/{node_modules/@ktx/context/dist → dist/context}/mcp/local-project-ports.test.d.ts +0 -0
  1805. /package/{node_modules/@ktx/context/dist → dist/context}/mcp/server.test.d.ts +0 -0
  1806. /package/{node_modules/@ktx/context/dist → dist/context}/mcp/types.js +0 -0
  1807. /package/{node_modules/@ktx/context/dist → dist/context}/memory/local-memory-runs.d.ts +0 -0
  1808. /package/{node_modules/@ktx/context/dist → dist/context}/memory/local-memory-runs.js +0 -0
  1809. /package/{node_modules/@ktx/context/dist → dist/context}/memory/local-memory.test.d.ts +0 -0
  1810. /package/{node_modules/@ktx/context/dist → dist/context}/memory/memory-agent.service.ingest.test.d.ts +0 -0
  1811. /package/{node_modules/@ktx/context/dist → dist/context}/memory/memory-agent.service.test.d.ts +0 -0
  1812. /package/{node_modules/@ktx/context/dist → dist/context}/memory/memory-runs.js +0 -0
  1813. /package/{node_modules/@ktx/context/dist → dist/context}/memory/memory-runs.test.d.ts +0 -0
  1814. /package/{node_modules/@ktx/context/dist → dist/context}/memory/memory-runs.test.js +0 -0
  1815. /package/{node_modules/@ktx/context/dist → dist/context}/memory/memory-runtime-assets.test.d.ts +0 -0
  1816. /package/{node_modules/@ktx/context/dist → dist/context}/memory/types.js +0 -0
  1817. /package/{node_modules/@ktx/context/dist → dist/context}/project/config.test.d.ts +0 -0
  1818. /package/{node_modules/@ktx/context/dist → dist/context}/project/driver-schemas.test.d.ts +0 -0
  1819. /package/{node_modules/@ktx/context/dist → dist/context}/project/local-git-file-store.js +0 -0
  1820. /package/{node_modules/@ktx/context/dist → dist/context}/project/local-git-file-store.test.d.ts +0 -0
  1821. /package/{node_modules/@ktx/context/dist → dist/context}/project/local-state-db.d.ts +0 -0
  1822. /package/{node_modules/@ktx/context/dist → dist/context}/project/local-state-db.js +0 -0
  1823. /package/{node_modules/@ktx/context/dist → dist/context}/project/mappings-yaml-schema.test.d.ts +0 -0
  1824. /package/{node_modules/@ktx/context/dist → dist/context}/project/mappings-yaml-schema.test.js +0 -0
  1825. /package/{node_modules/@ktx/context/dist → dist/context}/project/project.test.d.ts +0 -0
  1826. /package/{node_modules/@ktx/context/dist → dist/context}/project/project.test.js +0 -0
  1827. /package/{node_modules/@ktx/context/dist → dist/context}/project/setup-config.test.d.ts +0 -0
  1828. /package/{node_modules/@ktx/context/dist → dist/context}/project/setup-config.test.js +0 -0
  1829. /package/{node_modules/@ktx/context/dist → dist/context}/prompts/prompt.service.test.d.ts +0 -0
  1830. /package/{node_modules/@ktx/context/dist → dist/context}/prompts/prompt.service.test.js +0 -0
  1831. /package/{node_modules/@ktx/context/dist → dist/context}/scan/credentials.test.d.ts +0 -0
  1832. /package/{node_modules/@ktx/context/dist → dist/context}/scan/data-dictionary.test.d.ts +0 -0
  1833. /package/{node_modules/@ktx/context/dist → dist/context}/scan/data-dictionary.test.js +0 -0
  1834. /package/{node_modules/@ktx/context/dist → dist/context}/scan/description-generation.test.d.ts +0 -0
  1835. /package/{node_modules/@ktx/context/dist → dist/context}/scan/embedding-text.js +0 -0
  1836. /package/{node_modules/@ktx/context/dist → dist/context}/scan/embedding-text.test.d.ts +0 -0
  1837. /package/{node_modules/@ktx/context/dist → dist/context}/scan/embedding-text.test.js +0 -0
  1838. /package/{node_modules/@ktx/context/dist → dist/context}/scan/enrichment-state.test.d.ts +0 -0
  1839. /package/{node_modules/@ktx/context/dist → dist/context}/scan/enrichment-state.test.js +0 -0
  1840. /package/{node_modules/@ktx/context/dist → dist/context}/scan/enrichment-summary.d.ts +0 -0
  1841. /package/{node_modules/@ktx/context/dist → dist/context}/scan/enrichment-summary.js +0 -0
  1842. /package/{node_modules/@ktx/context/dist → dist/context}/scan/enrichment-summary.test.d.ts +0 -0
  1843. /package/{node_modules/@ktx/context/dist → dist/context}/scan/enrichment-summary.test.js +0 -0
  1844. /package/{node_modules/@ktx/context/dist → dist/context}/scan/enrichment-types.js +0 -0
  1845. /package/{node_modules/@ktx/context/dist → dist/context}/scan/enrichment-types.test.d.ts +0 -0
  1846. /package/{node_modules/@ktx/context/dist → dist/context}/scan/enrichment-types.test.js +0 -0
  1847. /package/{node_modules/@ktx/context/dist → dist/context}/scan/entity-details.js +0 -0
  1848. /package/{node_modules/@ktx/context/dist → dist/context}/scan/entity-details.test.d.ts +0 -0
  1849. /package/{node_modules/@ktx/context/dist → dist/context}/scan/local-enrichment-artifacts.test.d.ts +0 -0
  1850. /package/{node_modules/@ktx/context/dist → dist/context}/scan/local-enrichment.test.d.ts +0 -0
  1851. /package/{node_modules/@ktx/context/dist → dist/context}/scan/local-scan.test.d.ts +0 -0
  1852. /package/{node_modules/@ktx/context/dist → dist/context}/scan/local-structural-artifacts.js +0 -0
  1853. /package/{node_modules/@ktx/context/dist → dist/context}/scan/local-structural-artifacts.test.d.ts +0 -0
  1854. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-benchmark-report.d.ts +0 -0
  1855. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-benchmark-report.js +0 -0
  1856. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-benchmark-report.test.d.ts +0 -0
  1857. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-benchmark-report.test.js +0 -0
  1858. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-benchmarks.js +0 -0
  1859. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-benchmarks.test.d.ts +0 -0
  1860. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-benchmarks.test.js +0 -0
  1861. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-budget.test.d.ts +0 -0
  1862. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-budget.test.js +0 -0
  1863. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-candidates.test.d.ts +0 -0
  1864. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-candidates.test.js +0 -0
  1865. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-composite-candidates.js +0 -0
  1866. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-composite-candidates.test.d.ts +0 -0
  1867. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-composite-candidates.test.js +0 -0
  1868. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-diagnostics.test.d.ts +0 -0
  1869. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-diagnostics.test.js +0 -0
  1870. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-discovery.test.d.ts +0 -0
  1871. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-discovery.test.js +0 -0
  1872. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-formal-metadata.d.ts +0 -0
  1873. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-formal-metadata.js +0 -0
  1874. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-formal-metadata.test.d.ts +0 -0
  1875. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-formal-metadata.test.js +0 -0
  1876. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-graph-resolver.js +0 -0
  1877. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-graph-resolver.test.d.ts +0 -0
  1878. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-graph-resolver.test.js +0 -0
  1879. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-llm-proposal.test.d.ts +0 -0
  1880. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-llm-proposal.test.js +0 -0
  1881. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-locality.d.ts +0 -0
  1882. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-locality.js +0 -0
  1883. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-locality.test.d.ts +0 -0
  1884. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-locality.test.js +0 -0
  1885. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-name-similarity.test.d.ts +0 -0
  1886. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-name-similarity.test.js +0 -0
  1887. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-profiling.test.d.ts +0 -0
  1888. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-scoring.test.d.ts +0 -0
  1889. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-scoring.test.js +0 -0
  1890. /package/{node_modules/@ktx/context/dist → dist/context}/scan/relationship-validation.test.d.ts +0 -0
  1891. /package/{node_modules/@ktx/context/dist → dist/context}/scan/sqlite-local-enrichment-state-store.d.ts +0 -0
  1892. /package/{node_modules/@ktx/context/dist → dist/context}/scan/sqlite-local-enrichment-state-store.js +0 -0
  1893. /package/{node_modules/@ktx/connector-snowflake/dist/package-exports.test.d.ts → dist/context/scan/table-ref.test.d.ts} +0 -0
  1894. /package/{node_modules/@ktx/context/dist → dist/context}/scan/type-normalization.test.d.ts +0 -0
  1895. /package/{node_modules/@ktx/context/dist → dist/context}/scan/type-normalization.test.js +0 -0
  1896. /package/{node_modules/@ktx/context/dist → dist/context}/scan/types.js +0 -0
  1897. /package/{node_modules/@ktx/context/dist → dist/context}/scan/types.test.d.ts +0 -0
  1898. /package/{node_modules/@ktx/context/dist → dist/context}/scan/types.test.js +0 -0
  1899. /package/{node_modules/@ktx/context/dist → dist/context}/scan/warehouse-catalog.test.d.ts +0 -0
  1900. /package/{node_modules/@ktx/context/dist/search/backend-conformance.d.ts → dist/context/search/backend-conformance.test-utils.d.ts} +0 -0
  1901. /package/{node_modules/@ktx/context/dist/search/backend-conformance.js → dist/context/search/backend-conformance.test-utils.js} +0 -0
  1902. /package/{node_modules/@ktx/connector-sqlite/dist/package-exports.test.d.ts → dist/context/search/backend-conformance.test-utils.test.d.ts} +0 -0
  1903. /package/{node_modules/@ktx/context/dist → dist/context}/search/discover.test.d.ts +0 -0
  1904. /package/{node_modules/@ktx/context/dist → dist/context}/search/hybrid-search-core.d.ts +0 -0
  1905. /package/{node_modules/@ktx/context/dist → dist/context}/search/hybrid-search-core.js +0 -0
  1906. /package/{node_modules/@ktx/context/dist → dist/context}/search/hybrid-search-core.test.d.ts +0 -0
  1907. /package/{node_modules/@ktx/context/dist → dist/context}/search/hybrid-search-core.test.js +0 -0
  1908. /package/{node_modules/@ktx/context/dist → dist/context}/search/pglite-owner-process.test.d.ts +0 -0
  1909. /package/{node_modules/@ktx/context/dist → dist/context}/search/pglite-runtime-boundary.test.d.ts +0 -0
  1910. /package/{node_modules/@ktx/context/dist → dist/context}/search/pglite-spike.test.d.ts +0 -0
  1911. /package/{node_modules/@ktx/context/dist → dist/context}/search/query.d.ts +0 -0
  1912. /package/{node_modules/@ktx/context/dist → dist/context}/search/query.js +0 -0
  1913. /package/{node_modules/@ktx/context/dist → dist/context}/search/query.test.d.ts +0 -0
  1914. /package/{node_modules/@ktx/context/dist → dist/context}/search/query.test.js +0 -0
  1915. /package/{node_modules/@ktx/context/dist → dist/context}/search/rrf.d.ts +0 -0
  1916. /package/{node_modules/@ktx/context/dist → dist/context}/search/rrf.js +0 -0
  1917. /package/{node_modules/@ktx/context/dist → dist/context}/search/rrf.test.d.ts +0 -0
  1918. /package/{node_modules/@ktx/context/dist → dist/context}/search/rrf.test.js +0 -0
  1919. /package/{node_modules/@ktx/context/dist → dist/context}/search/types.js +0 -0
  1920. /package/{node_modules/@ktx/context/dist → dist/context}/skills/skills-registry.service.test.d.ts +0 -0
  1921. /package/{node_modules/@ktx/context/dist → dist/context}/skills/skills-registry.service.test.js +0 -0
  1922. /package/{node_modules/@ktx/context/dist → dist/context}/sl/description-normalization.d.ts +0 -0
  1923. /package/{node_modules/@ktx/context/dist → dist/context}/sl/description-normalization.js +0 -0
  1924. /package/{node_modules/@ktx/context/dist → dist/context}/sl/descriptions.d.ts +0 -0
  1925. /package/{node_modules/@ktx/context/dist → dist/context}/sl/descriptions.js +0 -0
  1926. /package/{node_modules/@ktx/context/dist → dist/context}/sl/dictionary-search.js +0 -0
  1927. /package/{node_modules/@ktx/context/dist → dist/context}/sl/dictionary-search.test.d.ts +0 -0
  1928. /package/{node_modules/@ktx/context/dist → dist/context}/sl/local-query.js +0 -0
  1929. /package/{node_modules/@ktx/context/dist → dist/context}/sl/local-query.test.d.ts +0 -0
  1930. /package/{node_modules/@ktx/context/dist → dist/context}/sl/local-sl.test.d.ts +0 -0
  1931. /package/{node_modules/@ktx/context/dist → dist/context}/sl/pglite-sl-search-prototype.test.d.ts +0 -0
  1932. /package/{node_modules/@ktx/context/dist → dist/context}/sl/ports.d.ts +0 -0
  1933. /package/{node_modules/@ktx/context/dist → dist/context}/sl/ports.js +0 -0
  1934. /package/{node_modules/@ktx/context/dist → dist/context}/sl/schemas.contract.test.d.ts +0 -0
  1935. /package/{node_modules/@ktx/context/dist → dist/context}/sl/schemas.contract.test.js +0 -0
  1936. /package/{node_modules/@ktx/context/dist → dist/context}/sl/schemas.d.ts +0 -0
  1937. /package/{node_modules/@ktx/context/dist → dist/context}/sl/schemas.js +0 -0
  1938. /package/{node_modules/@ktx/context/dist → dist/context}/sl/semantic-layer.service.test.d.ts +0 -0
  1939. /package/{node_modules/@ktx/context/dist → dist/context}/sl/sl-dictionary-profile.test.d.ts +0 -0
  1940. /package/{node_modules/@ktx/context/dist → dist/context}/sl/sl-search.service.test.d.ts +0 -0
  1941. /package/{node_modules/@ktx/context/dist → dist/context}/sl/sl-search.service.test.js +0 -0
  1942. /package/{node_modules/@ktx/context/dist → dist/context}/sl/sl-validator.port.js +0 -0
  1943. /package/{node_modules/@ktx/context/dist → dist/context}/sl/sqlite-sl-sources-index.d.ts +0 -0
  1944. /package/{node_modules/@ktx/context/dist → dist/context}/sl/sqlite-sl-sources-index.js +0 -0
  1945. /package/{node_modules/@ktx/context/dist → dist/context}/sl/sqlite-sl-sources-index.test.d.ts +0 -0
  1946. /package/{node_modules/@ktx/context/dist → dist/context}/sl/sqlite-sl-sources-index.test.js +0 -0
  1947. /package/{node_modules/@ktx/context/dist → dist/context}/sl/tools/connection-id-schema.d.ts +0 -0
  1948. /package/{node_modules/@ktx/context/dist → dist/context}/sl/tools/connection-id-schema.js +0 -0
  1949. /package/{node_modules/@ktx/context/dist → dist/context}/sl/tools/connection-id-schema.test.d.ts +0 -0
  1950. /package/{node_modules/@ktx/context/dist → dist/context}/sl/tools/connection-id-schema.test.js +0 -0
  1951. /package/{node_modules/@ktx/context/dist → dist/context}/sl/tools/sl-discover.tool.js +0 -0
  1952. /package/{node_modules/@ktx/context/dist → dist/context}/sl/tools/sl-discover.tool.test.d.ts +0 -0
  1953. /package/{node_modules/@ktx/context/dist → dist/context}/sl/tools/sl-edit-source.tool.test.d.ts +0 -0
  1954. /package/{node_modules/@ktx/context/dist → dist/context}/sl/tools/sl-read-source.tool.js +0 -0
  1955. /package/{node_modules/@ktx/context/dist → dist/context}/sl/tools/sl-read-source.tool.session.test.d.ts +0 -0
  1956. /package/{node_modules/@ktx/context/dist → dist/context}/sl/tools/sl-rollback.tool.test.d.ts +0 -0
  1957. /package/{node_modules/@ktx/context/dist → dist/context}/sl/tools/sl-validate.tool.test.d.ts +0 -0
  1958. /package/{node_modules/@ktx/context/dist → dist/context}/sl/tools/sl-warehouse-validation.test.d.ts +0 -0
  1959. /package/{node_modules/@ktx/context/dist → dist/context}/sl/tools/sl-warehouse-validation.test.js +0 -0
  1960. /package/{node_modules/@ktx/context/dist → dist/context}/sl/tools/sl-write-source.tool.test.d.ts +0 -0
  1961. /package/{node_modules/@ktx/context/dist → dist/context}/sl/types.js +0 -0
  1962. /package/{node_modules/@ktx/context/dist → dist/context}/sql-analysis/http-sql-analysis-port.d.ts +0 -0
  1963. /package/{node_modules/@ktx/context/dist → dist/context}/sql-analysis/http-sql-analysis-port.js +0 -0
  1964. /package/{node_modules/@ktx/context/dist → dist/context}/sql-analysis/http-sql-analysis-port.test.d.ts +0 -0
  1965. /package/{node_modules/@ktx/context/dist → dist/context}/sql-analysis/http-sql-analysis-port.test.js +0 -0
  1966. /package/{node_modules/@ktx/context/dist → dist/context}/sql-analysis/ports.js +0 -0
  1967. /package/{node_modules/@ktx/context/dist → dist/context}/test/make-local-git-repo.d.ts +0 -0
  1968. /package/{node_modules/@ktx/context/dist → dist/context}/test/make-local-git-repo.js +0 -0
  1969. /package/{node_modules/@ktx/context/dist → dist/context}/tools/action-raw-paths.d.ts +0 -0
  1970. /package/{node_modules/@ktx/context/dist → dist/context}/tools/action-raw-paths.js +0 -0
  1971. /package/{node_modules/@ktx/context/dist → dist/context}/tools/action-target-connection.d.ts +0 -0
  1972. /package/{node_modules/@ktx/context/dist → dist/context}/tools/action-target-connection.js +0 -0
  1973. /package/{node_modules/@ktx/context/dist → dist/context}/tools/authors.d.ts +0 -0
  1974. /package/{node_modules/@ktx/context/dist → dist/context}/tools/authors.js +0 -0
  1975. /package/{node_modules/@ktx/context/dist → dist/context}/tools/context-candidate-mark.tool.js +0 -0
  1976. /package/{node_modules/@ktx/context/dist → dist/context}/tools/context-evidence-ids.d.ts +0 -0
  1977. /package/{node_modules/@ktx/context/dist → dist/context}/tools/context-evidence-ids.js +0 -0
  1978. /package/{node_modules/@ktx/context/dist → dist/context}/tools/context-evidence-neighbors.tool.d.ts +0 -0
  1979. /package/{node_modules/@ktx/context/dist → dist/context}/tools/context-evidence-neighbors.tool.js +0 -0
  1980. /package/{node_modules/@ktx/context/dist → dist/context}/tools/context-evidence-read.tool.d.ts +0 -0
  1981. /package/{node_modules/@ktx/context/dist → dist/context}/tools/context-evidence-read.tool.js +0 -0
  1982. /package/{node_modules/@ktx/context/dist → dist/context}/tools/context-evidence-tool-store.js +0 -0
  1983. /package/{node_modules/@ktx/context/dist → dist/context}/tools/context-evidence-tools.test.d.ts +0 -0
  1984. /package/{node_modules/@ktx/context/dist → dist/context}/tools/context-ingest-metadata.d.ts +0 -0
  1985. /package/{node_modules/@ktx/context/dist → dist/context}/tools/context-ingest-metadata.js +0 -0
  1986. /package/{node_modules/@ktx/context/dist → dist/context}/tools/sql-edit-replacer.d.ts +0 -0
  1987. /package/{node_modules/@ktx/context/dist → dist/context}/tools/sql-edit-replacer.js +0 -0
  1988. /package/{node_modules/@ktx/context/dist → dist/context}/tools/tool-session.js +0 -0
  1989. /package/{node_modules/@ktx/context/dist → dist/context}/tools/touched-sl-sources.test.d.ts +0 -0
  1990. /package/{node_modules/@ktx/context/dist → dist/context}/tools/touched-sl-sources.test.js +0 -0
  1991. /package/{node_modules/@ktx/context/dist → dist/context}/wiki/knowledge-search-text.d.ts +0 -0
  1992. /package/{node_modules/@ktx/context/dist → dist/context}/wiki/knowledge-search-text.js +0 -0
  1993. /package/{node_modules/@ktx/context/dist → dist/context}/wiki/knowledge-wiki.service.test.d.ts +0 -0
  1994. /package/{node_modules/@ktx/context/dist → dist/context}/wiki/local-knowledge.test.d.ts +0 -0
  1995. /package/{node_modules/@ktx/context/dist → dist/context}/wiki/ports.js +0 -0
  1996. /package/{node_modules/@ktx/context/dist → dist/context}/wiki/sqlite-knowledge-index.d.ts +0 -0
  1997. /package/{node_modules/@ktx/context/dist → dist/context}/wiki/sqlite-knowledge-index.js +0 -0
  1998. /package/{node_modules/@ktx/context/dist → dist/context}/wiki/sqlite-knowledge-index.test.d.ts +0 -0
  1999. /package/{node_modules/@ktx/context/dist → dist/context}/wiki/sqlite-knowledge-index.test.js +0 -0
  2000. /package/{node_modules/@ktx/context/dist → dist/context}/wiki/tools/wiki-list-tags.tool.test.d.ts +0 -0
  2001. /package/{node_modules/@ktx/context/dist → dist/context}/wiki/tools/wiki-list-tags.tool.test.js +0 -0
  2002. /package/{node_modules/@ktx/context/dist → dist/context}/wiki/tools/wiki-read.tool.test.d.ts +0 -0
  2003. /package/{node_modules/@ktx/context/dist → dist/context}/wiki/tools/wiki-remove.tool.test.d.ts +0 -0
  2004. /package/{node_modules/@ktx/context/dist → dist/context}/wiki/tools/wiki-search.tool.test.d.ts +0 -0
  2005. /package/{node_modules/@ktx/context/dist → dist/context}/wiki/tools/wiki-search.tool.test.js +0 -0
  2006. /package/{node_modules/@ktx/context/dist → dist/context}/wiki/tools/wiki-write.tool.test.d.ts +0 -0
  2007. /package/{node_modules/@ktx/context/dist → dist/context}/wiki/types.js +0 -0
  2008. /package/{node_modules/@ktx/context/dist → dist/context}/wiki/wiki-ref-validation.js +0 -0
  2009. /package/{node_modules/@ktx/context/dist → dist/context}/wiki/wiki-ref-validation.test.d.ts +0 -0
  2010. /package/{node_modules/@ktx/context/dist → dist/context}/wiki/wiki-ref-validation.test.js +0 -0
  2011. /package/{node_modules/@ktx/llm/dist → dist/llm}/embedding-health.d.ts +0 -0
  2012. /package/{node_modules/@ktx/llm/dist → dist/llm}/embedding-health.js +0 -0
  2013. /package/{node_modules/@ktx/llm/dist → dist/llm}/embedding-health.test.d.ts +0 -0
  2014. /package/{node_modules/@ktx/llm/dist → dist/llm}/embedding-health.test.js +0 -0
  2015. /package/{node_modules/@ktx/llm/dist → dist/llm}/embedding-provider.d.ts +0 -0
  2016. /package/{node_modules/@ktx/llm/dist → dist/llm}/embedding-provider.js +0 -0
  2017. /package/{node_modules/@ktx/llm/dist → dist/llm}/embedding-provider.test.d.ts +0 -0
  2018. /package/{node_modules/@ktx/llm/dist → dist/llm}/embedding-provider.test.js +0 -0
  2019. /package/{node_modules/@ktx/llm/dist → dist/llm}/message-builder.d.ts +0 -0
  2020. /package/{node_modules/@ktx/llm/dist → dist/llm}/message-builder.js +0 -0
  2021. /package/{node_modules/@ktx/llm/dist → dist/llm}/message-builder.test.d.ts +0 -0
  2022. /package/{node_modules/@ktx/llm/dist → dist/llm}/message-builder.test.js +0 -0
  2023. /package/{node_modules/@ktx/llm/dist → dist/llm}/model-health.js +0 -0
  2024. /package/{node_modules/@ktx/llm/dist → dist/llm}/model-health.test.d.ts +0 -0
  2025. /package/{node_modules/@ktx/llm/dist → dist/llm}/model-health.test.js +0 -0
  2026. /package/{node_modules/@ktx/llm/dist → dist/llm}/model-provider.test.d.ts +0 -0
  2027. /package/{node_modules/@ktx/llm/dist → dist/llm}/model-provider.test.js +0 -0
  2028. /package/{node_modules/@ktx/llm/dist → dist/llm}/repair.d.ts +0 -0
  2029. /package/{node_modules/@ktx/llm/dist → dist/llm}/repair.js +0 -0
  2030. /package/{node_modules/@ktx/llm/dist → dist/llm}/repair.test.d.ts +0 -0
  2031. /package/{node_modules/@ktx/llm/dist → dist/llm}/repair.test.js +0 -0
  2032. /package/{node_modules/@ktx/llm/dist → dist/llm}/types.js +0 -0
  2033. /package/{node_modules/@ktx/connector-sqlserver/dist/package-exports.test.d.ts → dist/mcp-server-factory.test.d.ts} +0 -0
  2034. /package/{node_modules/@ktx/context → dist}/prompts/memory_agent_backfill.md +0 -0
  2035. /package/{node_modules/@ktx/context → dist}/prompts/memory_agent_bundle_ingest_reconcile.md +0 -0
  2036. /package/{node_modules/@ktx/context → dist}/prompts/memory_agent_bundle_ingest_work_unit.md +0 -0
  2037. /package/{node_modules/@ktx/context → dist}/prompts/memory_agent_external_ingest.md +0 -0
  2038. /package/{node_modules/@ktx/context → dist}/prompts/memory_agent_research.md +0 -0
  2039. /package/{node_modules/@ktx/context → dist}/prompts/skills/light_extraction.md +0 -0
  2040. /package/{node_modules/@ktx/context → dist}/prompts/skills/page_triage_classifier.md +0 -0
  2041. /package/{node_modules/@ktx/context → dist}/skills/_shared/identifier-verification.md +0 -0
  2042. /package/{node_modules/@ktx/context → dist}/skills/dbt_ingest/SKILL.md +0 -0
  2043. /package/{node_modules/@ktx/context → dist}/skills/historic_sql_patterns/SKILL.md +0 -0
  2044. /package/{node_modules/@ktx/context → dist}/skills/historic_sql_table_digest/SKILL.md +0 -0
  2045. /package/{node_modules/@ktx/context → dist}/skills/ingest_triage/SKILL.md +0 -0
  2046. /package/{node_modules/@ktx/context → dist}/skills/live_database_ingest/SKILL.md +0 -0
  2047. /package/{node_modules/@ktx/context → dist}/skills/looker_ingest/SKILL.md +0 -0
  2048. /package/{node_modules/@ktx/context → dist}/skills/lookml_ingest/SKILL.md +0 -0
  2049. /package/{node_modules/@ktx/context → dist}/skills/metabase_ingest/SKILL.md +0 -0
  2050. /package/{node_modules/@ktx/context → dist}/skills/metricflow_ingest/SKILL.md +0 -0
  2051. /package/{node_modules/@ktx/context → dist}/skills/notion_synthesize/SKILL.md +0 -0
  2052. /package/{node_modules/@ktx/context → dist}/skills/sl/SKILL.md +0 -0
  2053. /package/{node_modules/@ktx/context → dist}/skills/sl_capture/SKILL.md +0 -0
  2054. /package/{node_modules/@ktx/context → dist}/skills/wiki_capture/SKILL.md +0 -0
  2055. /package/{node_modules/@ktx/context/dist/agent/agent-runner.service.test.d.ts → dist/status-project.test.d.ts} +0 -0
  2056. /package/{node_modules/@ktx/context/dist/index.test.d.ts → dist/telemetry/command-hook.test.d.ts} +0 -0
  2057. /package/{node_modules/@ktx/context/dist/ingest/adapters/dbt-descriptions/match-tables.test.d.ts → dist/telemetry/demo-detect.test.d.ts} +0 -0
  2058. /package/{node_modules/@ktx/context/dist/ingest/adapters/dbt-descriptions/merge-semantic-model-tables.test.d.ts → dist/telemetry/emitter.test.d.ts} +0 -0
  2059. /package/{node_modules/@ktx/context/dist/ingest/adapters/dbt-descriptions/to-description-updates.test.d.ts → dist/telemetry/events.snapshot.test.d.ts} +0 -0
  2060. /package/{node_modules/@ktx/context/dist/ingest/adapters/dbt-descriptions/to-metadata-updates.test.d.ts → dist/telemetry/events.test.d.ts} +0 -0
  2061. /package/{node_modules/@ktx/context/dist/ingest/adapters/dbt-descriptions/to-relationship-updates.test.d.ts → dist/telemetry/identity.test.d.ts} +0 -0
  2062. /package/{node_modules/@ktx/context/dist/ingest/adapters/dbt-extraction-golden-parity.test.d.ts → dist/telemetry/project-snapshot.test.d.ts} +0 -0
  2063. /package/{node_modules/@ktx/context/dist/ingest/adapters/live-database/extracted-schema.test.d.ts → dist/telemetry/schema-writer.test.d.ts} +0 -0
  2064. /package/{node_modules/@ktx/context/dist/ingest/adapters/live-database/structural-sync.test.d.ts → dist/telemetry/scrubber.test.d.ts} +0 -0
@@ -0,0 +1,1899 @@
1
+ import { mkdtemp, readFile, rm, writeFile } from 'node:fs/promises';
2
+ import { tmpdir } from 'node:os';
3
+ import { join } from 'node:path';
4
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
5
+ import { addTouchedSlSource } from '../../context/tools/touched-sl-sources.js';
6
+ import { IngestBundleRunner } from './ingest-bundle.runner.js';
7
+ import { createMemoryFlowLiveBuffer } from './memory-flow/live-buffer.js';
8
+ class TestJobContext {
9
+ jobId;
10
+ userId;
11
+ checkCancellation;
12
+ updateProgressFn;
13
+ parent;
14
+ start;
15
+ span;
16
+ currentProgress = 0;
17
+ constructor(jobId, userId, checkCancellation, updateProgressFn, parent, start = 0, span = 1) {
18
+ this.jobId = jobId;
19
+ this.userId = userId;
20
+ this.checkCancellation = checkCancellation;
21
+ this.updateProgressFn = updateProgressFn;
22
+ this.parent = parent;
23
+ this.start = start;
24
+ this.span = span;
25
+ }
26
+ async updateProgress(progress, message) {
27
+ const local = Math.max(0, Math.min(1, progress));
28
+ this.currentProgress = local;
29
+ if (this.parent) {
30
+ await this.parent.updateProgress(Math.max(0, Math.min(1, this.start + this.span * local)), message);
31
+ return;
32
+ }
33
+ await this.updateProgressFn(local, message);
34
+ }
35
+ startPhase(fraction) {
36
+ return new TestJobContext(this.jobId, this.userId, this.checkCancellation, this.updateProgressFn, this, this.currentProgress, Math.max(0, Math.min(1, fraction)));
37
+ }
38
+ }
39
+ const deferred = () => {
40
+ let resolve;
41
+ const promise = new Promise((r) => {
42
+ resolve = r;
43
+ });
44
+ return { promise, resolve };
45
+ };
46
+ function bundleReplayInput() {
47
+ return {
48
+ runId: 'pending',
49
+ connectionId: 'c1',
50
+ adapter: 'fake',
51
+ status: 'running',
52
+ sourceDir: '/tmp/stage/upload-x',
53
+ syncId: 'pending',
54
+ errors: [],
55
+ events: [],
56
+ plannedWorkUnits: [],
57
+ details: { actions: [], provenance: [], transcripts: [] },
58
+ };
59
+ }
60
+ const makeDeps = () => {
61
+ const runsRepo = {
62
+ create: vi.fn().mockResolvedValue({ id: 'run-1' }),
63
+ findMostRecentCompleted: vi.fn().mockResolvedValue(null),
64
+ markFailed: vi.fn(),
65
+ markCompleted: vi.fn(),
66
+ };
67
+ const provenanceRepo = {
68
+ insertMany: vi.fn(),
69
+ findHashesBySync: vi.fn().mockResolvedValue(new Map()),
70
+ findLatestArtifactsForRawPaths: vi.fn().mockResolvedValue(new Map()),
71
+ };
72
+ const reportsRepo = {
73
+ create: vi.fn().mockResolvedValue({ id: 'report-1' }),
74
+ findByJobId: vi.fn().mockResolvedValue(null),
75
+ markSuperseded: vi.fn().mockResolvedValue(undefined),
76
+ };
77
+ const canonicalPins = {
78
+ listPins: vi.fn().mockResolvedValue([]),
79
+ };
80
+ const adapter = {
81
+ source: 'fake',
82
+ skillNames: [],
83
+ reconcileSkillNames: undefined,
84
+ evidenceIndexing: undefined,
85
+ triageSupported: undefined,
86
+ detect: vi.fn().mockResolvedValue(true),
87
+ listTargetConnectionIds: undefined,
88
+ finalize: undefined,
89
+ chunk: vi.fn().mockResolvedValue({
90
+ workUnits: [{ unitKey: 'u1', rawFiles: ['a.yml'], peerFileIndex: [], dependencyPaths: [] }],
91
+ }),
92
+ };
93
+ const registry = { get: vi.fn().mockReturnValue(adapter) };
94
+ const diffSetService = {
95
+ compute: vi.fn().mockResolvedValue({ added: ['a.yml'], modified: [], deleted: [], unchanged: [] }),
96
+ };
97
+ const contextEvidenceIndex = {
98
+ indexStagedDir: vi.fn().mockResolvedValue({
99
+ documentsIndexed: 1,
100
+ chunksIndexed: 1,
101
+ documentsDeleted: 0,
102
+ embeddingFailures: 0,
103
+ warnings: [],
104
+ }),
105
+ publishSync: vi.fn().mockResolvedValue(undefined),
106
+ };
107
+ const pageTriage = {
108
+ triageRun: vi.fn().mockResolvedValue({
109
+ enabled: true,
110
+ fullRawPaths: new Set(['a.yml']),
111
+ warnings: [],
112
+ }),
113
+ };
114
+ const scopedGit = {
115
+ revParseHead: vi.fn().mockResolvedValue('h'),
116
+ commitFiles: vi.fn().mockResolvedValue({ created: true, commitHash: 'h' }),
117
+ commitStaged: vi.fn().mockResolvedValue({ created: false, commitHash: 'h' }),
118
+ resetHardTo: vi.fn(),
119
+ assertWorktreeClean: vi.fn().mockResolvedValue(undefined),
120
+ writeBinaryNoRenamePatch: vi.fn(async (_base, _head, patchPath) => {
121
+ await writeFile(patchPath, '', 'utf-8');
122
+ }),
123
+ applyPatchFile3WayIndex: vi.fn(),
124
+ diffNameStatus: vi.fn().mockResolvedValue([]),
125
+ changedPaths: vi.fn().mockResolvedValue([]),
126
+ };
127
+ const sessionWorktreeService = {
128
+ create: vi.fn().mockResolvedValue({
129
+ chatId: 'j1',
130
+ workdir: '/tmp/wt',
131
+ branch: 'session/j1',
132
+ baseSha: 'b',
133
+ createdAt: new Date(),
134
+ git: scopedGit,
135
+ config: {},
136
+ }),
137
+ cleanup: vi.fn(),
138
+ };
139
+ const agentRunner = { runLoop: vi.fn().mockResolvedValue({ stopReason: 'natural' }) };
140
+ const gitService = {
141
+ revParseHead: vi.fn().mockResolvedValue('base'),
142
+ listFilesAtHead: vi.fn().mockResolvedValue([]),
143
+ getFileAtCommit: vi.fn(),
144
+ squashMergeIntoMain: vi
145
+ .fn()
146
+ .mockResolvedValue({ ok: true, squashSha: 'sq', touchedPaths: ['raw-sources/c1/fake/s/a.yml'] }),
147
+ };
148
+ const lockingService = {
149
+ withLock: vi.fn().mockImplementation(async (_k, fn) => fn()),
150
+ };
151
+ const appSettingsService = {
152
+ settings: {
153
+ ai: { slValidation: { probeRowCount: 1 } },
154
+ llm: { memoryIngestionModel: 'test-model' },
155
+ },
156
+ };
157
+ const skillsRegistry = {
158
+ listSkills: vi.fn().mockResolvedValue([]),
159
+ getSkill: vi.fn().mockResolvedValue(null),
160
+ buildSkillsPrompt: vi.fn().mockReturnValue(''),
161
+ stripFrontmatter: vi.fn().mockImplementation((s) => s),
162
+ };
163
+ const promptService = {
164
+ loadPrompt: vi.fn().mockResolvedValue('base-framing'),
165
+ };
166
+ const wikiService = {
167
+ forWorktree: vi.fn(),
168
+ listPageKeys: vi.fn().mockResolvedValue([]),
169
+ readPage: vi.fn().mockResolvedValue(null),
170
+ syncFromCommit: vi.fn().mockResolvedValue(undefined),
171
+ };
172
+ wikiService.forWorktree.mockReturnValue(wikiService);
173
+ const knowledgeSlRefs = {
174
+ syncFromWiki: vi.fn().mockResolvedValue({ inserted: 1, deleted: 0 }),
175
+ };
176
+ const knowledgeIndex = {
177
+ listPagesForUser: vi.fn().mockResolvedValue([]),
178
+ };
179
+ const semanticLayerService = {
180
+ forWorktree: vi.fn(),
181
+ listFilesForConnection: vi
182
+ .fn()
183
+ .mockImplementation((connectionId) => Promise.resolve(connectionId === 'warehouse-2' ? ['looker__orders.yaml'] : [])),
184
+ loadAllSources: vi
185
+ .fn()
186
+ .mockImplementation((connectionId) => Promise.resolve({
187
+ sources: connectionId === 'warehouse-2' ? [{ name: 'looker__orders' }] : [],
188
+ loadErrors: [],
189
+ })),
190
+ };
191
+ semanticLayerService.forWorktree.mockReturnValue(semanticLayerService);
192
+ const slSearchService = {
193
+ indexSources: vi.fn().mockResolvedValue(undefined),
194
+ };
195
+ const slSourcesRepository = {};
196
+ const slValidator = { validateSingleSource: vi.fn().mockResolvedValue({ errors: [], warnings: [] }) };
197
+ const toolsetFactory = {
198
+ createIngestWuToolset: vi.fn().mockReturnValue({
199
+ toRuntimeTools: vi.fn().mockReturnValue({}),
200
+ getAllTools: vi.fn().mockReturnValue([]),
201
+ getToolNames: vi.fn().mockReturnValue([]),
202
+ }),
203
+ };
204
+ const configService = {
205
+ enqueueCommitMessageJobForExternalCommit: vi.fn().mockResolvedValue(undefined),
206
+ };
207
+ return {
208
+ runsRepo,
209
+ provenanceRepo,
210
+ reportsRepo,
211
+ canonicalPins,
212
+ adapter,
213
+ registry,
214
+ diffSetService,
215
+ contextEvidenceIndex,
216
+ pageTriage,
217
+ sessionWorktreeService,
218
+ agentRunner,
219
+ gitService,
220
+ lockingService,
221
+ slValidator,
222
+ appSettingsService,
223
+ skillsRegistry,
224
+ promptService,
225
+ wikiService,
226
+ knowledgeSlRefs,
227
+ knowledgeIndex,
228
+ semanticLayerService,
229
+ slSearchService,
230
+ slSourcesRepository,
231
+ toolsetFactory,
232
+ configService,
233
+ };
234
+ };
235
+ const buildRunner = (deps = makeDeps(), overrides = {}) => new IngestBundleRunner({
236
+ runs: deps.runsRepo,
237
+ provenance: deps.provenanceRepo,
238
+ registry: deps.registry,
239
+ diffSetService: deps.diffSetService,
240
+ contextEvidenceIndex: deps.contextEvidenceIndex,
241
+ pageTriage: deps.pageTriage,
242
+ sessionWorktreeService: deps.sessionWorktreeService,
243
+ agentRunner: deps.agentRunner,
244
+ gitService: deps.gitService,
245
+ lockingService: deps.lockingService,
246
+ storage: {
247
+ homeDir: '/tmp/ktx-test',
248
+ systemGitAuthor: { name: 'KTX Test', email: 'system@ktx.local' },
249
+ resolveUploadDir: (uploadId) => `/tmp/ktx-test/ingest-uploads/${uploadId}`,
250
+ resolvePullDir: (jobId) => `/tmp/ktx-test/ingest-pulls/${jobId}`,
251
+ resolveTranscriptDir: (jobId) => `/tmp/ktx-test/run/wu-transcripts/${jobId}`,
252
+ resolveTracePath: (jobId) => `/tmp/ktx-test/ingest-traces/${jobId}/trace.jsonl`,
253
+ },
254
+ settings: {
255
+ probeRowCount: 1,
256
+ memoryIngestionModel: 'test-model',
257
+ },
258
+ skillsRegistry: deps.skillsRegistry,
259
+ promptService: deps.promptService,
260
+ wikiService: deps.wikiService,
261
+ knowledgeSlRefs: deps.knowledgeSlRefs,
262
+ knowledgeIndex: deps.knowledgeIndex,
263
+ semanticLayerService: deps.semanticLayerService,
264
+ slSearchService: deps.slSearchService,
265
+ slSourcesRepository: deps.slSourcesRepository,
266
+ connections: {
267
+ listEnabledConnections: vi.fn().mockResolvedValue([]),
268
+ getConnectionById: vi.fn().mockResolvedValue({ id: 'c1', name: 'warehouse', connectionType: 'POSTGRES' }),
269
+ executeQuery: vi.fn().mockResolvedValue({ headers: [], rows: [] }),
270
+ },
271
+ reports: deps.reportsRepo,
272
+ canonicalPins: deps.canonicalPins,
273
+ slValidator: deps.slValidator,
274
+ toolsetFactory: deps.toolsetFactory,
275
+ commitMessages: {
276
+ enqueueForExternalCommit: deps.configService.enqueueCommitMessageJobForExternalCommit,
277
+ },
278
+ embedding: {
279
+ maxBatchSize: 10,
280
+ computeEmbedding: async () => [0],
281
+ computeEmbeddingsBulk: async (texts) => texts.map(() => [0]),
282
+ },
283
+ ...overrides,
284
+ });
285
+ describe('IngestBundleRunner — FIFO-per-connection', () => {
286
+ let spy;
287
+ beforeEach(() => {
288
+ spy = vi.fn();
289
+ });
290
+ it('serializes two jobs on the same connectionId', async () => {
291
+ const runner = buildRunner();
292
+ runner.runInner = async (job) => {
293
+ spy(job.jobId);
294
+ await new Promise((r) => setTimeout(r, 5));
295
+ spy(`done-${job.jobId}`);
296
+ return {
297
+ runId: 'r',
298
+ syncId: 's',
299
+ diffSummary: { added: 0, modified: 0, deleted: 0, unchanged: 0 },
300
+ workUnitCount: 0,
301
+ failedWorkUnits: [],
302
+ artifactsWritten: 0,
303
+ commitSha: null,
304
+ };
305
+ };
306
+ const p1 = runner.run({
307
+ jobId: 'j1',
308
+ connectionId: 'c1',
309
+ sourceKey: 'fake',
310
+ trigger: 'upload',
311
+ bundleRef: { kind: 'upload', uploadId: 'u1' },
312
+ });
313
+ const p2 = runner.run({
314
+ jobId: 'j2',
315
+ connectionId: 'c1',
316
+ sourceKey: 'fake',
317
+ trigger: 'upload',
318
+ bundleRef: { kind: 'upload', uploadId: 'u2' },
319
+ });
320
+ await Promise.all([p1, p2]);
321
+ expect(spy.mock.calls.map((c) => c[0])).toEqual(['j1', 'done-j1', 'j2', 'done-j2']);
322
+ });
323
+ it('runs jobs on different connections in parallel', async () => {
324
+ const runner = buildRunner();
325
+ const d1 = deferred();
326
+ const d2 = deferred();
327
+ runner.runInner = async (job) => {
328
+ spy(`start-${job.jobId}`);
329
+ if (job.jobId === 'j1') {
330
+ await d1.promise;
331
+ }
332
+ if (job.jobId === 'j2') {
333
+ await d2.promise;
334
+ }
335
+ return {
336
+ runId: 'r',
337
+ syncId: 's',
338
+ diffSummary: { added: 0, modified: 0, deleted: 0, unchanged: 0 },
339
+ workUnitCount: 0,
340
+ failedWorkUnits: [],
341
+ artifactsWritten: 0,
342
+ commitSha: null,
343
+ };
344
+ };
345
+ const p1 = runner.run({
346
+ jobId: 'j1',
347
+ connectionId: 'c1',
348
+ sourceKey: 'fake',
349
+ trigger: 'upload',
350
+ bundleRef: { kind: 'upload', uploadId: 'u1' },
351
+ });
352
+ const p2 = runner.run({
353
+ jobId: 'j2',
354
+ connectionId: 'c2',
355
+ sourceKey: 'fake',
356
+ trigger: 'upload',
357
+ bundleRef: { kind: 'upload', uploadId: 'u2' },
358
+ });
359
+ await new Promise((r) => setTimeout(r, 10));
360
+ expect(spy.mock.calls.map((c) => c[0]).sort()).toEqual(['start-j1', 'start-j2']);
361
+ d1.resolve();
362
+ d2.resolve();
363
+ await Promise.all([p1, p2]);
364
+ });
365
+ });
366
+ describe('IngestBundleRunner — Stages 1 → 7', () => {
367
+ it('runs the full pipeline, creates a run row, stages files, chunks, squashes, writes provenance', async () => {
368
+ const deps = makeDeps();
369
+ const runner = buildRunner(deps);
370
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
371
+ currentHashes: new Map([['a.yml', 'h1']]),
372
+ rawDirInWorktree: 'raw-sources/c1/fake/s',
373
+ });
374
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
375
+ const result = await runner.run({
376
+ jobId: 'j1',
377
+ connectionId: 'c1',
378
+ sourceKey: 'fake',
379
+ trigger: 'upload',
380
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
381
+ });
382
+ expect(deps.runsRepo.create).toHaveBeenCalledWith(expect.objectContaining({ jobId: 'j1', connectionId: 'c1', sourceKey: 'fake', trigger: 'upload' }));
383
+ expect(deps.adapter.detect).toHaveBeenCalled();
384
+ expect(deps.adapter.chunk).toHaveBeenCalled();
385
+ expect(result.workUnitCount).toBe(1);
386
+ expect(deps.diffSetService.compute).toHaveBeenCalled();
387
+ expect(deps.gitService.squashMergeIntoMain).toHaveBeenCalledWith('session/j1', expect.any(String), expect.any(String), expect.stringContaining('ingest(fake): j1'));
388
+ expect(deps.provenanceRepo.insertMany).toHaveBeenCalled();
389
+ expect(result.commitSha).toBe('sq');
390
+ expect(deps.runsRepo.markCompleted).toHaveBeenCalledWith('run-1', expect.any(Object), 'completed');
391
+ // Single touched path → path-scoped diff for the LLM commit-message note.
392
+ expect(deps.configService.enqueueCommitMessageJobForExternalCommit).toHaveBeenCalledWith({ commitHash: 'sq' }, expect.stringContaining('ingest(fake): j1'), 'raw-sources/c1/fake/s/a.yml');
393
+ });
394
+ it('fails before squash when reconciliation leaves a touched wiki page with dangling refs', async () => {
395
+ const deps = makeDeps();
396
+ let currentToolSession = null;
397
+ const scopedWiki = {
398
+ listPageKeys: vi.fn().mockResolvedValue(['page-a']),
399
+ readPage: vi.fn().mockImplementation((_scope, _scopeId, key) => {
400
+ if (key === 'page-a') {
401
+ return Promise.resolve({
402
+ pageKey: 'page-a',
403
+ frontmatter: { summary: 'Page A', usage_mode: 'auto', refs: ['missing-page'] },
404
+ content: 'See [[missing-page]].',
405
+ });
406
+ }
407
+ return Promise.resolve(null);
408
+ }),
409
+ };
410
+ deps.wikiService.forWorktree.mockReturnValue(scopedWiki);
411
+ deps.toolsetFactory.createIngestWuToolset.mockImplementation((toolSession) => {
412
+ currentToolSession = toolSession;
413
+ return {
414
+ toRuntimeTools: vi.fn().mockReturnValue({}),
415
+ getAllTools: vi.fn().mockReturnValue([]),
416
+ getToolNames: vi.fn().mockReturnValue([]),
417
+ };
418
+ });
419
+ deps.agentRunner.runLoop.mockImplementation(async (params) => {
420
+ if (params.telemetryTags.operationName === 'ingest-bundle-wu') {
421
+ currentToolSession.actions.push({ target: 'sl', type: 'updated', key: 'orders', detail: 'Orders source' });
422
+ }
423
+ if (params.telemetryTags.operationName === 'ingest-bundle-reconcile') {
424
+ currentToolSession.actions.push({ target: 'wiki', type: 'created', key: 'page-a', detail: 'Page A' });
425
+ }
426
+ return { stopReason: 'natural' };
427
+ });
428
+ const runner = buildRunner(deps);
429
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
430
+ currentHashes: new Map([['a.yml', 'h1']]),
431
+ rawDirInWorktree: 'raw-sources/c1/fake/s',
432
+ });
433
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
434
+ await expect(runner.run({
435
+ jobId: 'j1',
436
+ connectionId: 'c1',
437
+ sourceKey: 'fake',
438
+ trigger: 'upload',
439
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
440
+ })).rejects.toThrow(/wiki references target missing page\(s\): page-a -> missing-page/);
441
+ expect(deps.runsRepo.markFailed).toHaveBeenCalledWith('run-1');
442
+ expect(deps.gitService.squashMergeIntoMain).not.toHaveBeenCalled();
443
+ });
444
+ it('allows reconciliation to save circular wiki refs once both pages exist', async () => {
445
+ const deps = makeDeps();
446
+ let currentToolSession = null;
447
+ const scopedWiki = {
448
+ listPageKeys: vi.fn().mockResolvedValue(['page-a', 'page-b']),
449
+ readPage: vi.fn().mockImplementation((_scope, _scopeId, key) => {
450
+ if (key === 'page-a') {
451
+ return Promise.resolve({
452
+ pageKey: 'page-a',
453
+ frontmatter: { summary: 'Page A', usage_mode: 'auto', refs: ['page-b'] },
454
+ content: 'See [[page-b]].',
455
+ });
456
+ }
457
+ if (key === 'page-b') {
458
+ return Promise.resolve({
459
+ pageKey: 'page-b',
460
+ frontmatter: { summary: 'Page B', usage_mode: 'auto', refs: ['page-a'] },
461
+ content: 'See [[page-a]].',
462
+ });
463
+ }
464
+ return Promise.resolve(null);
465
+ }),
466
+ };
467
+ deps.wikiService.forWorktree.mockReturnValue(scopedWiki);
468
+ deps.toolsetFactory.createIngestWuToolset.mockImplementation((toolSession) => {
469
+ currentToolSession = toolSession;
470
+ return {
471
+ toRuntimeTools: vi.fn().mockReturnValue({}),
472
+ getAllTools: vi.fn().mockReturnValue([]),
473
+ getToolNames: vi.fn().mockReturnValue([]),
474
+ };
475
+ });
476
+ deps.agentRunner.runLoop.mockImplementation(async (params) => {
477
+ if (params.telemetryTags.operationName === 'ingest-bundle-wu') {
478
+ currentToolSession.actions.push({ target: 'sl', type: 'updated', key: 'orders', detail: 'Orders source' });
479
+ }
480
+ if (params.telemetryTags.operationName === 'ingest-bundle-reconcile') {
481
+ currentToolSession.actions.push({ target: 'wiki', type: 'created', key: 'page-a', detail: 'Page A' }, { target: 'wiki', type: 'created', key: 'page-b', detail: 'Page B' });
482
+ }
483
+ return { stopReason: 'natural' };
484
+ });
485
+ const runner = buildRunner(deps);
486
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
487
+ currentHashes: new Map([['a.yml', 'h1']]),
488
+ rawDirInWorktree: 'raw-sources/c1/fake/s',
489
+ });
490
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
491
+ const result = await runner.run({
492
+ jobId: 'j1',
493
+ connectionId: 'c1',
494
+ sourceKey: 'fake',
495
+ trigger: 'upload',
496
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
497
+ });
498
+ expect(result.failedWorkUnits).toEqual([]);
499
+ expect(deps.gitService.squashMergeIntoMain).toHaveBeenCalled();
500
+ expect(deps.runsRepo.markFailed).not.toHaveBeenCalled();
501
+ });
502
+ it('threads target warehouse connection names into WorkUnit and reconcile tool sessions', async () => {
503
+ const deps = makeDeps();
504
+ const sessions = [];
505
+ deps.adapter.listTargetConnectionIds = vi.fn().mockResolvedValue(['warehouse']);
506
+ deps.toolsetFactory.createIngestWuToolset.mockImplementation((toolSession) => {
507
+ sessions.push(toolSession);
508
+ return {
509
+ toRuntimeTools: vi.fn().mockReturnValue({}),
510
+ getAllTools: vi.fn().mockReturnValue([]),
511
+ getToolNames: vi.fn().mockReturnValue([]),
512
+ };
513
+ });
514
+ deps.agentRunner.runLoop.mockResolvedValue({ stopReason: 'natural' });
515
+ const runner = buildRunner(deps);
516
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
517
+ currentHashes: new Map([['a.yml', 'h1']]),
518
+ rawDirInWorktree: 'raw-sources/notion/fake/s',
519
+ });
520
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
521
+ await runner.run({
522
+ jobId: 'j1',
523
+ connectionId: 'notion',
524
+ sourceKey: 'fake',
525
+ trigger: 'upload',
526
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
527
+ });
528
+ expect([...sessions[0].allowedConnectionNames].sort()).toEqual(['notion', 'warehouse']);
529
+ });
530
+ it('reuses document evidence indexing and page triage for document WorkUnits', async () => {
531
+ const deps = makeDeps();
532
+ deps.adapter.source = 'notion';
533
+ deps.adapter.skillNames = ['notion_synthesize'];
534
+ deps.adapter.reconcileSkillNames = [];
535
+ deps.adapter.evidenceIndexing = 'documents';
536
+ deps.adapter.triageSupported = true;
537
+ deps.adapter.chunk.mockResolvedValue({
538
+ workUnits: [
539
+ { unitKey: 'full', rawFiles: ['pages/full/metadata.json'], dependencyPaths: [], peerFileIndex: [] },
540
+ { unitKey: 'skip', rawFiles: ['pages/skip/metadata.json'], dependencyPaths: [], peerFileIndex: [] },
541
+ ],
542
+ });
543
+ deps.diffSetService.compute.mockResolvedValue({
544
+ added: ['pages/full/metadata.json', 'pages/skip/metadata.json'],
545
+ modified: [],
546
+ deleted: [],
547
+ unchanged: [],
548
+ });
549
+ deps.pageTriage.triageRun.mockResolvedValue({
550
+ enabled: true,
551
+ fullRawPaths: new Set(['pages/full/metadata.json']),
552
+ warnings: [],
553
+ });
554
+ const runner = buildRunner(deps);
555
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
556
+ currentHashes: new Map([
557
+ ['pages/full/metadata.json', 'h-full'],
558
+ ['pages/skip/metadata.json', 'h-skip'],
559
+ ]),
560
+ rawDirInWorktree: 'raw-sources/c1/notion/s',
561
+ });
562
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
563
+ const result = await runner.run({
564
+ jobId: 'j1',
565
+ connectionId: 'c1',
566
+ sourceKey: 'notion',
567
+ trigger: 'upload',
568
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
569
+ });
570
+ const workUnitCalls = deps.agentRunner.runLoop.mock.calls.filter(([params]) => params.telemetryTags?.operationName === 'ingest-bundle-wu');
571
+ expect(deps.contextEvidenceIndex.indexStagedDir).toHaveBeenCalled();
572
+ expect(deps.pageTriage.triageRun).toHaveBeenCalled();
573
+ expect(workUnitCalls).toHaveLength(1);
574
+ expect(workUnitCalls[0][0].telemetryTags.unitKey).toBe('full');
575
+ expect(result.workUnitCount).toBe(1);
576
+ });
577
+ it('emits memory-flow source and planning events for bundle ingest', async () => {
578
+ const deps = makeDeps();
579
+ deps.adapter.chunk.mockResolvedValue({
580
+ workUnits: [
581
+ {
582
+ unitKey: 'u1',
583
+ rawFiles: ['a.yml'],
584
+ peerFileIndex: ['peer.yml'],
585
+ dependencyPaths: ['manifest.yml'],
586
+ },
587
+ ],
588
+ eviction: { deletedRawPaths: ['old.yml'] },
589
+ });
590
+ const runner = buildRunner(deps);
591
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
592
+ currentHashes: new Map([['a.yml', 'h1']]),
593
+ rawDirInWorktree: 'raw-sources/c1/fake/s',
594
+ });
595
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
596
+ const snapshots = [];
597
+ const memoryFlow = createMemoryFlowLiveBuffer(bundleReplayInput(), {
598
+ onChange: (snapshot) => snapshots.push(snapshot),
599
+ });
600
+ const ctx = new TestJobContext('j1', null, () => Promise.resolve(), () => Promise.resolve());
601
+ ctx.memoryFlow = memoryFlow;
602
+ await runner.run({
603
+ jobId: 'j1',
604
+ connectionId: 'c1',
605
+ sourceKey: 'fake',
606
+ trigger: 'upload',
607
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
608
+ }, ctx);
609
+ expect(memoryFlow.snapshot()).toMatchObject({
610
+ runId: 'run-1',
611
+ connectionId: 'c1',
612
+ adapter: 'fake',
613
+ sourceDir: '/tmp/stage/upload-x',
614
+ });
615
+ expect(memoryFlow.snapshot().plannedWorkUnits).toEqual([
616
+ {
617
+ unitKey: 'u1',
618
+ rawFiles: ['a.yml'],
619
+ peerFileCount: 1,
620
+ dependencyCount: 1,
621
+ },
622
+ ]);
623
+ expect(memoryFlow.snapshot().events).toEqual(expect.arrayContaining([
624
+ expect.objectContaining({ type: 'source_acquired', adapter: 'fake', trigger: 'upload', fileCount: 1 }),
625
+ expect.objectContaining({ type: 'scope_detected', fingerprint: null }),
626
+ expect.objectContaining({ type: 'raw_snapshot_written', rawFileCount: 1 }),
627
+ expect.objectContaining({ type: 'diff_computed', added: 1, modified: 0, deleted: 0, unchanged: 0 }),
628
+ expect.objectContaining({ type: 'chunks_planned', chunkCount: 1, workUnitCount: 1, evictionCount: 1 }),
629
+ ]));
630
+ expect(snapshots.length).toBeGreaterThan(4);
631
+ expect(deps.reportsRepo.create).toHaveBeenCalledWith(expect.objectContaining({
632
+ body: expect.objectContaining({
633
+ memoryFlow: expect.objectContaining({
634
+ metadata: expect.objectContaining({
635
+ schemaVersion: 1,
636
+ mode: 'full',
637
+ origin: 'captured',
638
+ timing: 'captured',
639
+ }),
640
+ events: expect.arrayContaining([
641
+ expect.objectContaining({
642
+ type: 'source_acquired',
643
+ emittedAt: expect.stringMatching(/^\d{4}-\d{2}-\d{2}T/),
644
+ }),
645
+ ]),
646
+ }),
647
+ }),
648
+ }));
649
+ });
650
+ it('emits memory-flow WorkUnit step, candidate action, and finish events', async () => {
651
+ const deps = makeDeps();
652
+ let currentToolSession = null;
653
+ deps.toolsetFactory.createIngestWuToolset.mockImplementation((toolSession) => {
654
+ currentToolSession = toolSession;
655
+ return {
656
+ toRuntimeTools: vi.fn().mockReturnValue({}),
657
+ getAllTools: vi.fn().mockReturnValue([]),
658
+ getToolNames: vi.fn().mockReturnValue([]),
659
+ };
660
+ });
661
+ deps.agentRunner.runLoop.mockImplementation(async (params) => {
662
+ if (params.telemetryTags.operationName === 'ingest-bundle-wu') {
663
+ await params.onStepFinish?.({ stepIndex: 1, stepBudget: params.stepBudget });
664
+ currentToolSession.actions.push({
665
+ target: 'wiki',
666
+ type: 'created',
667
+ key: 'wiki/orders.md',
668
+ detail: 'captured order context',
669
+ });
670
+ }
671
+ return { stopReason: 'natural' };
672
+ });
673
+ const runner = buildRunner(deps);
674
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
675
+ currentHashes: new Map([['a.yml', 'h1']]),
676
+ rawDirInWorktree: 'raw-sources/c1/fake/s',
677
+ });
678
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
679
+ const memoryFlow = createMemoryFlowLiveBuffer(bundleReplayInput());
680
+ const ctx = new TestJobContext('j1', null, () => Promise.resolve(), () => Promise.resolve());
681
+ ctx.memoryFlow = memoryFlow;
682
+ await runner.run({
683
+ jobId: 'j1',
684
+ connectionId: 'c1',
685
+ sourceKey: 'fake',
686
+ trigger: 'upload',
687
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
688
+ }, ctx);
689
+ expect(memoryFlow.snapshot().events).toEqual(expect.arrayContaining([
690
+ expect.objectContaining({
691
+ type: 'work_unit_started',
692
+ unitKey: 'u1',
693
+ skills: ['ingest_triage', 'sl_capture', 'wiki_capture'],
694
+ stepBudget: 40,
695
+ }),
696
+ expect.objectContaining({ type: 'work_unit_step', unitKey: 'u1', stepIndex: 1, stepBudget: 40 }),
697
+ expect.objectContaining({
698
+ type: 'candidate_action',
699
+ unitKey: 'u1',
700
+ target: 'wiki',
701
+ action: 'created',
702
+ key: 'wiki/orders.md',
703
+ }),
704
+ expect.objectContaining({ type: 'work_unit_finished', unitKey: 'u1', status: 'success' }),
705
+ ]));
706
+ });
707
+ it('emits memory-flow gate, saved, provenance, and report events', async () => {
708
+ const deps = makeDeps();
709
+ let currentToolSession = null;
710
+ deps.toolsetFactory.createIngestWuToolset.mockImplementation((toolSession) => {
711
+ currentToolSession = toolSession;
712
+ return {
713
+ toRuntimeTools: vi.fn().mockReturnValue({}),
714
+ getAllTools: vi.fn().mockReturnValue([]),
715
+ getToolNames: vi.fn().mockReturnValue([]),
716
+ };
717
+ });
718
+ deps.agentRunner.runLoop.mockImplementation(async (params) => {
719
+ if (params.telemetryTags.operationName === 'ingest-bundle-wu') {
720
+ currentToolSession.actions.push({
721
+ target: 'sl',
722
+ type: 'updated',
723
+ key: 'orders',
724
+ detail: 'captured gross revenue',
725
+ });
726
+ }
727
+ if (params.telemetryTags.operationName === 'ingest-bundle-reconcile') {
728
+ await params.toolSet.record_verification_ledger.execute({
729
+ summary: 'Reconciliation emits no warehouse identifiers before fallback recording.',
730
+ verifiedIdentifiers: [],
731
+ unverifiedIdentifiers: [],
732
+ }, { toolCallId: 'ledger-1', messages: [] });
733
+ await params.toolSet.emit_conflict_resolution.execute({
734
+ kind: 'near_duplicate',
735
+ artifactKey: 'sl:orders',
736
+ detail: 'orders retained as canonical',
737
+ flaggedForHuman: false,
738
+ }, { toolCallId: 'conflict-1', messages: [] });
739
+ await params.toolSet.emit_unmapped_fallback.execute({
740
+ rawPath: 'a.yml',
741
+ reason: 'parse_error',
742
+ clarification: 'semantic_not_representable',
743
+ fallback: 'flagged',
744
+ }, { toolCallId: 'fallback-1', messages: [] });
745
+ }
746
+ return { stopReason: 'natural' };
747
+ });
748
+ const runner = buildRunner(deps);
749
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
750
+ currentHashes: new Map([['a.yml', 'h1']]),
751
+ rawDirInWorktree: 'raw-sources/c1/fake/s',
752
+ });
753
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
754
+ const memoryFlow = createMemoryFlowLiveBuffer(bundleReplayInput());
755
+ const ctx = new TestJobContext('j1', null, () => Promise.resolve(), () => Promise.resolve());
756
+ ctx.memoryFlow = memoryFlow;
757
+ await runner.run({
758
+ jobId: 'j1',
759
+ connectionId: 'c1',
760
+ sourceKey: 'fake',
761
+ trigger: 'upload',
762
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
763
+ }, ctx);
764
+ expect(memoryFlow.snapshot()).toMatchObject({
765
+ reportId: 'report-1',
766
+ reportPath: 'report-1',
767
+ });
768
+ expect(memoryFlow.snapshot().events).toEqual(expect.arrayContaining([
769
+ expect.objectContaining({ type: 'reconciliation_finished', conflictCount: 1, fallbackCount: 1 }),
770
+ expect.objectContaining({ type: 'saved', commitSha: 'sq', wikiCount: 0, slCount: 1 }),
771
+ expect.objectContaining({ type: 'provenance_recorded', rowCount: 1 }),
772
+ expect.objectContaining({ type: 'report_created', runId: 'run-1', reportPath: 'report-1' }),
773
+ ]));
774
+ });
775
+ it('finishes successful bundle memory-flow runs as done', async () => {
776
+ const deps = makeDeps();
777
+ const runner = buildRunner(deps);
778
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
779
+ currentHashes: new Map([['a.yml', 'h1']]),
780
+ rawDirInWorktree: 'raw-sources/c1/fake/s',
781
+ });
782
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
783
+ const memoryFlow = createMemoryFlowLiveBuffer(bundleReplayInput());
784
+ const ctx = new TestJobContext('j1', null, () => Promise.resolve(), () => Promise.resolve());
785
+ ctx.memoryFlow = memoryFlow;
786
+ await runner.run({
787
+ jobId: 'j1',
788
+ connectionId: 'c1',
789
+ sourceKey: 'fake',
790
+ trigger: 'upload',
791
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
792
+ }, ctx);
793
+ expect(memoryFlow.snapshot().status).toBe('done');
794
+ });
795
+ it('finishes bundle memory-flow runs with sanitized errors when the runner fails', async () => {
796
+ const deps = makeDeps();
797
+ const sensitiveMessage = [
798
+ 'failed to read postgres://user',
799
+ ':password',
800
+ '@localhost:5432/db?api_key=abc',
801
+ ' token=',
802
+ 'secret',
803
+ ].join('');
804
+ deps.adapter.detect.mockRejectedValue(new Error(sensitiveMessage));
805
+ const runner = buildRunner(deps);
806
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
807
+ currentHashes: new Map([['a.yml', 'h1']]),
808
+ rawDirInWorktree: 'raw-sources/c1/fake/s',
809
+ });
810
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
811
+ const memoryFlow = createMemoryFlowLiveBuffer(bundleReplayInput());
812
+ const ctx = new TestJobContext('j1', null, () => Promise.resolve(), () => Promise.resolve());
813
+ ctx.memoryFlow = memoryFlow;
814
+ await expect(runner.run({
815
+ jobId: 'j1',
816
+ connectionId: 'c1',
817
+ sourceKey: 'fake',
818
+ trigger: 'upload',
819
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
820
+ }, ctx)).rejects.toThrow(/failed to read/);
821
+ expect(memoryFlow.snapshot()).toMatchObject({
822
+ status: 'error',
823
+ errors: ['failed to read postgres://[redacted] token=[redacted]'],
824
+ });
825
+ expect(memoryFlow.snapshot().events).toEqual(expect.arrayContaining([
826
+ expect.objectContaining({ type: 'source_acquired', adapter: 'fake', trigger: 'upload', fileCount: 1 }),
827
+ ]));
828
+ });
829
+ it('stores memory-flow provenance and transcript summaries in the ingest report body', async () => {
830
+ const deps = makeDeps();
831
+ deps.toolsetFactory.createIngestWuToolset.mockReturnValue({
832
+ toRuntimeTools: vi.fn().mockReturnValue({
833
+ read_raw_span: {
834
+ description: 'read a raw span',
835
+ inputSchema: {},
836
+ execute: vi.fn().mockResolvedValue('safe excerpt'),
837
+ },
838
+ wiki_write: {
839
+ description: 'write wiki',
840
+ inputSchema: {},
841
+ execute: vi.fn().mockResolvedValue('written'),
842
+ },
843
+ }),
844
+ getAllTools: vi.fn().mockReturnValue([]),
845
+ getToolNames: vi.fn().mockReturnValue([]),
846
+ });
847
+ deps.agentRunner.runLoop.mockImplementation(async (params) => {
848
+ if (params.telemetryTags.operationName === 'ingest-bundle-wu') {
849
+ await params.toolSet.read_raw_span.execute({ path: 'a.yml', startLine: 1, endLine: 2 }, { toolCallId: 'read-1', messages: [] });
850
+ await params.toolSet.record_verification_ledger.execute({
851
+ summary: 'Wiki write contains no warehouse identifiers.',
852
+ verifiedIdentifiers: [],
853
+ unverifiedIdentifiers: [],
854
+ }, { toolCallId: 'ledger-1', messages: [] });
855
+ await params.toolSet.wiki_write.execute({ key: 'wiki/a.md', content: 'safe summary' }, { toolCallId: 'wiki-1', messages: [] });
856
+ }
857
+ return { stopReason: 'natural' };
858
+ });
859
+ const runner = buildRunner(deps);
860
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
861
+ currentHashes: new Map([['a.yml', 'h1']]),
862
+ rawDirInWorktree: 'raw-sources/c1/fake/s',
863
+ });
864
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
865
+ await runner.run({
866
+ jobId: 'j1',
867
+ connectionId: 'c1',
868
+ sourceKey: 'fake',
869
+ trigger: 'upload',
870
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
871
+ });
872
+ expect(deps.reportsRepo.create).toHaveBeenCalledWith(expect.objectContaining({
873
+ body: expect.objectContaining({
874
+ provenanceRows: [
875
+ expect.objectContaining({
876
+ rawPath: 'a.yml',
877
+ artifactKind: null,
878
+ artifactKey: null,
879
+ actionType: 'skipped',
880
+ targetConnectionId: null,
881
+ }),
882
+ ],
883
+ toolTranscripts: [
884
+ {
885
+ unitKey: 'u1',
886
+ path: '/tmp/ktx-test/run/wu-transcripts/j1/u1.jsonl',
887
+ toolCallCount: 3,
888
+ errorCount: 0,
889
+ toolNames: ['read_raw_span', 'record_verification_ledger', 'wiki_write'],
890
+ },
891
+ ],
892
+ }),
893
+ }));
894
+ });
895
+ it('persists WorkUnit unmapped fallback records in the report body', async () => {
896
+ const deps = makeDeps();
897
+ deps.agentRunner.runLoop.mockImplementation(async (params) => {
898
+ if (params.telemetryTags.operationName === 'ingest-bundle-wu') {
899
+ await params.toolSet.record_verification_ledger.execute({
900
+ summary: 'Unmapped fallback records an unsupported conversion metric without verified warehouse identifiers.',
901
+ verifiedIdentifiers: [],
902
+ unverifiedIdentifiers: [],
903
+ }, { toolCallId: 'ledger-1', messages: [] });
904
+ await params.toolSet.emit_unmapped_fallback.execute({
905
+ rawPath: 'a.yml',
906
+ reason: 'conversion_metric_unsupported',
907
+ fallback: 'flagged',
908
+ }, { toolCallId: 'fallback-1', messages: [] });
909
+ }
910
+ return { stopReason: 'natural' };
911
+ });
912
+ const runner = buildRunner(deps);
913
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
914
+ currentHashes: new Map([['a.yml', 'h1']]),
915
+ rawDirInWorktree: 'raw-sources/c1/fake/s',
916
+ });
917
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
918
+ await runner.run({
919
+ jobId: 'j1',
920
+ connectionId: 'c1',
921
+ sourceKey: 'fake',
922
+ trigger: 'upload',
923
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
924
+ });
925
+ expect(deps.reportsRepo.create).toHaveBeenCalledWith(expect.objectContaining({
926
+ body: expect.objectContaining({
927
+ unmappedFallbacks: [
928
+ {
929
+ rawPath: 'a.yml',
930
+ reason: 'conversion_metric_unsupported',
931
+ detail: expect.stringContaining('conversion metric'),
932
+ fallback: 'flagged',
933
+ },
934
+ ],
935
+ }),
936
+ }));
937
+ });
938
+ it('persists reconciliation conflict and eviction records in the report body', async () => {
939
+ const deps = makeDeps();
940
+ deps.diffSetService.compute.mockResolvedValue({
941
+ added: [],
942
+ modified: [],
943
+ deleted: ['views/old_orders.view.lkml'],
944
+ unchanged: [],
945
+ });
946
+ deps.adapter.chunk.mockResolvedValue({
947
+ workUnits: [],
948
+ eviction: { deletedRawPaths: ['views/old_orders.view.lkml'] },
949
+ });
950
+ deps.agentRunner.runLoop.mockImplementation(async (params) => {
951
+ if (params.telemetryTags.operationName === 'ingest-bundle-reconcile') {
952
+ await params.toolSet.record_verification_ledger.execute({
953
+ summary: 'Reconciliation records conflict, eviction, and fallback decisions without warehouse identifiers.',
954
+ verifiedIdentifiers: [],
955
+ unverifiedIdentifiers: [],
956
+ }, { toolCallId: 'ledger-1', messages: [] });
957
+ await params.toolSet.emit_conflict_resolution.execute({
958
+ kind: 'near_duplicate',
959
+ artifactKey: 'sl:orders',
960
+ detail: 'orders and old_orders overlapped; orders is retained as canonical',
961
+ flaggedForHuman: false,
962
+ }, { toolCallId: 'conflict-1', messages: [] });
963
+ await params.toolSet.emit_eviction_decision.execute({
964
+ rawPath: 'views/old_orders.view.lkml',
965
+ artifactKind: 'sl',
966
+ artifactKey: 'old_orders',
967
+ action: 'removed',
968
+ reason: 'raw source disappeared in this sync',
969
+ }, { toolCallId: 'eviction-1', messages: [] });
970
+ await params.toolSet.emit_unmapped_fallback.execute({
971
+ rawPath: 'cards/untranslated.json',
972
+ reason: 'parse_error',
973
+ clarification: 'metabase_sql_untranslated',
974
+ fallback: 'flagged',
975
+ }, { toolCallId: 'fallback-1', messages: [] });
976
+ }
977
+ return { stopReason: 'natural' };
978
+ });
979
+ const runner = buildRunner(deps);
980
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
981
+ currentHashes: new Map([['cards/untranslated.json', 'h-card']]),
982
+ rawDirInWorktree: 'raw-sources/c1/fake/s',
983
+ });
984
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
985
+ await runner.run({
986
+ jobId: 'j1',
987
+ connectionId: 'c1',
988
+ sourceKey: 'fake',
989
+ trigger: 'upload',
990
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
991
+ });
992
+ expect(deps.reportsRepo.create).toHaveBeenCalledWith(expect.objectContaining({
993
+ body: expect.objectContaining({
994
+ conflictsResolved: [
995
+ {
996
+ kind: 'near_duplicate',
997
+ artifactKey: 'sl:orders',
998
+ detail: 'orders and old_orders overlapped; orders is retained as canonical',
999
+ flaggedForHuman: false,
1000
+ },
1001
+ ],
1002
+ evictionsApplied: [
1003
+ {
1004
+ rawPath: 'views/old_orders.view.lkml',
1005
+ artifactKind: 'sl',
1006
+ artifactKey: 'old_orders',
1007
+ action: 'removed',
1008
+ reason: 'raw source disappeared in this sync',
1009
+ },
1010
+ ],
1011
+ unmappedFallbacks: [
1012
+ {
1013
+ rawPath: 'cards/untranslated.json',
1014
+ reason: 'parse_error',
1015
+ detail: expect.stringContaining('metabase_sql_untranslated'),
1016
+ fallback: 'flagged',
1017
+ },
1018
+ ],
1019
+ }),
1020
+ }));
1021
+ });
1022
+ it('persists reconciliation artifact resolutions as provenance rows', async () => {
1023
+ const deps = makeDeps();
1024
+ deps.diffSetService.compute.mockResolvedValue({
1025
+ added: [],
1026
+ modified: [],
1027
+ deleted: ['looks/20.json'],
1028
+ unchanged: ['explores/b2b/sales_pipeline.json'],
1029
+ });
1030
+ deps.adapter.chunk.mockResolvedValue({
1031
+ workUnits: [],
1032
+ eviction: { deletedRawPaths: ['looks/20.json'] },
1033
+ });
1034
+ deps.agentRunner.runLoop.mockImplementation(async (params) => {
1035
+ if (params.telemetryTags.operationName === 'ingest-bundle-reconcile') {
1036
+ await params.toolSet.emit_artifact_resolution.execute({
1037
+ rawPath: 'explores/b2b/sales_pipeline.json',
1038
+ artifactKind: 'sl',
1039
+ artifactKey: 'looker__b2b__sales_pipeline',
1040
+ actionType: 'subsumed',
1041
+ reason: 'File adapter source b2b__sales_pipeline is canonical.',
1042
+ }, { toolCallId: 'resolution-1', messages: [] });
1043
+ }
1044
+ return { stopReason: 'natural' };
1045
+ });
1046
+ const runner = buildRunner(deps);
1047
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
1048
+ currentHashes: new Map([['explores/b2b/sales_pipeline.json', 'h-explore']]),
1049
+ rawDirInWorktree: 'raw-sources/c1/looker/s',
1050
+ });
1051
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
1052
+ await runner.run({
1053
+ jobId: 'j1',
1054
+ connectionId: 'c1',
1055
+ sourceKey: 'looker',
1056
+ trigger: 'upload',
1057
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
1058
+ });
1059
+ expect(deps.provenanceRepo.insertMany).toHaveBeenCalledWith(expect.arrayContaining([
1060
+ expect.objectContaining({
1061
+ rawPath: 'explores/b2b/sales_pipeline.json',
1062
+ artifactKind: 'sl',
1063
+ artifactKey: 'looker__b2b__sales_pipeline',
1064
+ actionType: 'subsumed',
1065
+ }),
1066
+ ]));
1067
+ expect(deps.reportsRepo.create).toHaveBeenCalledWith(expect.objectContaining({
1068
+ body: expect.objectContaining({
1069
+ artifactResolutions: [
1070
+ {
1071
+ rawPath: 'explores/b2b/sales_pipeline.json',
1072
+ artifactKind: 'sl',
1073
+ artifactKey: 'looker__b2b__sales_pipeline',
1074
+ actionType: 'subsumed',
1075
+ reason: 'File adapter source b2b__sales_pipeline is canonical.',
1076
+ },
1077
+ ],
1078
+ }),
1079
+ }));
1080
+ });
1081
+ it('runs manual override reconciliation from the prior report snapshot and marks the prior report superseded', async () => {
1082
+ const tempRoot = await mkdtemp(join(tmpdir(), 'ktx-override-'));
1083
+ const deps = makeDeps();
1084
+ deps.reportsRepo.findByJobId.mockResolvedValue({
1085
+ id: 'report-old',
1086
+ runId: 'run-old',
1087
+ jobId: 'job-old',
1088
+ connectionId: 'c1',
1089
+ sourceKey: 'fake',
1090
+ createdAt: '2026-04-27T10:00:00.000Z',
1091
+ body: {
1092
+ syncId: '2026-04-27-100000-job-old',
1093
+ diffSummary: { added: 1, modified: 0, deleted: 0, unchanged: 0 },
1094
+ commitSha: 'old-sha',
1095
+ workUnits: [
1096
+ {
1097
+ unitKey: 'wu-orders',
1098
+ rawFiles: ['a.yml'],
1099
+ status: 'success',
1100
+ actions: [
1101
+ {
1102
+ target: 'sl',
1103
+ type: 'updated',
1104
+ key: 'orders',
1105
+ detail: 'captured gross_revenue as orders.gross_revenue',
1106
+ },
1107
+ ],
1108
+ touchedSlSources: ['orders'],
1109
+ },
1110
+ ],
1111
+ failedWorkUnits: [],
1112
+ reconciliationSkipped: false,
1113
+ conflictsResolved: [
1114
+ {
1115
+ kind: 'definitional_contradiction',
1116
+ contestedKey: 'gross_revenue',
1117
+ artifactKey: 'orders.gross_revenue',
1118
+ detail: 'billing and orders disagree',
1119
+ flaggedForHuman: true,
1120
+ },
1121
+ ],
1122
+ evictionsApplied: [],
1123
+ unmappedFallbacks: [],
1124
+ evictionInputs: [],
1125
+ unresolvedCards: [],
1126
+ supersededBy: null,
1127
+ overrideOf: null,
1128
+ },
1129
+ });
1130
+ deps.gitService.listFilesAtHead.mockResolvedValue(['raw-sources/c1/fake/2026-04-27-100000-job-old/a.yml']);
1131
+ deps.gitService.getFileAtCommit.mockResolvedValue('name: orders\n');
1132
+ deps.diffSetService.compute.mockResolvedValue({ added: [], modified: [], deleted: [], unchanged: ['a.yml'] });
1133
+ deps.agentRunner.runLoop.mockImplementation(async (args) => {
1134
+ await args.toolSet.emit_conflict_resolution.execute({
1135
+ kind: 'definitional_contradiction',
1136
+ contestedKey: 'gross_revenue',
1137
+ artifactKey: 'orders.gross_revenue',
1138
+ detail: 'canonical pin applied',
1139
+ flaggedForHuman: false,
1140
+ }, { toolCallId: 'tc-1', messages: [] });
1141
+ return { stopReason: 'natural' };
1142
+ });
1143
+ const runner = new IngestBundleRunner({
1144
+ ...buildRunner(deps).deps,
1145
+ storage: {
1146
+ homeDir: tempRoot,
1147
+ systemGitAuthor: { name: 'KTX Test', email: 'system@ktx.local' },
1148
+ resolveUploadDir: (uploadId) => join(tempRoot, 'ingest-uploads', uploadId),
1149
+ resolvePullDir: (jobId) => join(tempRoot, 'ingest-pulls', jobId),
1150
+ resolveTranscriptDir: (jobId) => join(tempRoot, 'run', 'wu-transcripts', jobId),
1151
+ },
1152
+ });
1153
+ await runner.run({
1154
+ jobId: 'job-new',
1155
+ connectionId: 'c1',
1156
+ sourceKey: 'fake',
1157
+ trigger: 'manual_override',
1158
+ bundleRef: { kind: 'override', priorJobId: 'job-old' },
1159
+ });
1160
+ await expect(readFile(join(tempRoot, 'ingest-pulls/job-new/a.yml'), 'utf-8')).resolves.toBe('name: orders\n');
1161
+ expect(deps.adapter.chunk).not.toHaveBeenCalled();
1162
+ expect(deps.agentRunner.runLoop).toHaveBeenCalled();
1163
+ expect(deps.reportsRepo.create).toHaveBeenCalledWith(expect.objectContaining({
1164
+ jobId: 'job-new',
1165
+ body: expect.objectContaining({
1166
+ overrideOf: 'job-old',
1167
+ supersededBy: null,
1168
+ conflictsResolved: [
1169
+ expect.objectContaining({
1170
+ contestedKey: 'gross_revenue',
1171
+ flaggedForHuman: false,
1172
+ }),
1173
+ ],
1174
+ }),
1175
+ }));
1176
+ expect(deps.reportsRepo.markSuperseded).toHaveBeenCalledWith('job-old', 'job-new');
1177
+ await rm(tempRoot, { recursive: true, force: true });
1178
+ });
1179
+ it('passes connection canonical pins into each WorkUnit system prompt', async () => {
1180
+ const deps = makeDeps();
1181
+ deps.adapter.chunk.mockResolvedValue({
1182
+ workUnits: [
1183
+ {
1184
+ unitKey: 'wu-orders',
1185
+ rawFiles: ['cards/orders.yml'],
1186
+ peerFileIndex: [],
1187
+ dependencyPaths: [],
1188
+ },
1189
+ ],
1190
+ });
1191
+ deps.canonicalPins.listPins.mockResolvedValue([
1192
+ {
1193
+ contestedKey: 'gross_revenue',
1194
+ canonicalArtifactKey: 'finance.gross_revenue',
1195
+ pinnedAt: '2026-04-27T12:00:00.000Z',
1196
+ pinnedBy: 'user-1',
1197
+ reason: 'finance owns revenue definitions',
1198
+ },
1199
+ ]);
1200
+ deps.agentRunner.runLoop.mockResolvedValue({ stopReason: 'natural' });
1201
+ const runner = buildRunner(deps);
1202
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
1203
+ currentHashes: new Map([['cards/orders.yml', 'h1']]),
1204
+ rawDirInWorktree: 'raw-sources/c1/fake/s',
1205
+ });
1206
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
1207
+ await runner.run({
1208
+ jobId: 'j1',
1209
+ connectionId: 'c1',
1210
+ sourceKey: 'fake',
1211
+ trigger: 'upload',
1212
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
1213
+ });
1214
+ const workUnitCall = deps.agentRunner.runLoop.mock.calls.find(([params]) => params.telemetryTags.operationName === 'ingest-bundle-wu');
1215
+ expect(workUnitCall?.[0].systemPrompt).toContain('<canonical_pins>');
1216
+ expect(workUnitCall?.[0].systemPrompt).toContain('contestedKey: gross_revenue');
1217
+ expect(workUnitCall?.[0].systemPrompt).toContain('canonicalArtifactKey: finance.gross_revenue');
1218
+ expect(deps.canonicalPins.listPins).toHaveBeenCalledTimes(1);
1219
+ expect(deps.canonicalPins.listPins).toHaveBeenCalledWith(['c1']);
1220
+ });
1221
+ it('builds WorkUnit SL index and canonical pins across adapter target connections', async () => {
1222
+ const deps = makeDeps();
1223
+ deps.adapter.listTargetConnectionIds = vi.fn().mockResolvedValue(['warehouse-2']);
1224
+ deps.adapter.chunk.mockResolvedValue({
1225
+ workUnits: [
1226
+ {
1227
+ unitKey: 'looker-explore-b2b-orders',
1228
+ rawFiles: ['explores/b2b/orders.json'],
1229
+ peerFileIndex: [],
1230
+ dependencyPaths: [],
1231
+ },
1232
+ ],
1233
+ });
1234
+ deps.canonicalPins.listPins.mockResolvedValue([
1235
+ {
1236
+ contestedKey: 'gross_revenue',
1237
+ canonicalArtifactKey: 'finance.gross_revenue',
1238
+ pinnedAt: '2026-05-01T12:00:00.000Z',
1239
+ pinnedBy: 'user-1',
1240
+ reason: 'finance owns revenue definitions',
1241
+ },
1242
+ ]);
1243
+ const runner = buildRunner(deps);
1244
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
1245
+ currentHashes: new Map([['explores/b2b/orders.json', 'h1']]),
1246
+ rawDirInWorktree: 'raw-sources/looker-run/fake/s',
1247
+ });
1248
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
1249
+ await runner.run({
1250
+ jobId: 'j1',
1251
+ connectionId: 'looker-run',
1252
+ sourceKey: 'fake',
1253
+ trigger: 'upload',
1254
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
1255
+ });
1256
+ const workUnitCall = deps.agentRunner.runLoop.mock.calls.find(([params]) => params.telemetryTags.operationName === 'ingest-bundle-wu');
1257
+ expect(deps.adapter.listTargetConnectionIds).toHaveBeenCalledWith('/tmp/stage/upload-x');
1258
+ expect(deps.semanticLayerService.loadAllSources).toHaveBeenCalledWith('looker-run');
1259
+ expect(deps.semanticLayerService.loadAllSources).toHaveBeenCalledWith('warehouse-2');
1260
+ expect(workUnitCall?.[0].userPrompt).toContain('looker__orders');
1261
+ expect(deps.canonicalPins.listPins).toHaveBeenCalledWith(['looker-run', 'warehouse-2']);
1262
+ });
1263
+ it('syncs wiki refs, reindexes, and records provenance on SL target connections', async () => {
1264
+ const deps = makeDeps();
1265
+ let currentToolSession = null;
1266
+ deps.adapter.listTargetConnectionIds = vi.fn().mockResolvedValue(['warehouse-2']);
1267
+ deps.wikiService.readPage = vi.fn().mockResolvedValue({
1268
+ frontmatter: { sl_refs: ['looker__b2b__sales_pipeline.arr'] },
1269
+ });
1270
+ deps.semanticLayerService.loadAllSources.mockImplementation((connectionId) => Promise.resolve({ sources: [{ name: `${connectionId}_source` }], loadErrors: [] }));
1271
+ deps.agentRunner.runLoop.mockImplementation(async (params) => {
1272
+ if (params.telemetryTags.operationName === 'ingest-bundle-wu') {
1273
+ currentToolSession.actions.push({
1274
+ target: 'wiki',
1275
+ type: 'created',
1276
+ key: 'wiki/global/pipeline.md',
1277
+ detail: 'Pipeline article',
1278
+ }, {
1279
+ target: 'sl',
1280
+ type: 'created',
1281
+ key: 'looker__b2b__sales_pipeline',
1282
+ detail: 'Created warehouse source',
1283
+ targetConnectionId: 'warehouse-2',
1284
+ });
1285
+ addTouchedSlSource(currentToolSession.touchedSlSources, 'warehouse-2', 'looker__b2b__sales_pipeline');
1286
+ }
1287
+ return { stopReason: 'natural' };
1288
+ });
1289
+ deps.toolsetFactory.createIngestWuToolset.mockImplementation((toolSession) => {
1290
+ currentToolSession = toolSession;
1291
+ return {
1292
+ toRuntimeTools: vi.fn().mockReturnValue({}),
1293
+ getAllTools: vi.fn().mockReturnValue([]),
1294
+ getToolNames: vi.fn().mockReturnValue([]),
1295
+ };
1296
+ });
1297
+ const runner = buildRunner(deps);
1298
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
1299
+ currentHashes: new Map([['a.yml', 'h1']]),
1300
+ rawDirInWorktree: 'raw-sources/looker-run/fake/s',
1301
+ });
1302
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
1303
+ await runner.run({
1304
+ jobId: 'j1',
1305
+ connectionId: 'looker-run',
1306
+ sourceKey: 'fake',
1307
+ trigger: 'upload',
1308
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
1309
+ });
1310
+ expect(deps.knowledgeSlRefs.syncFromWiki).toHaveBeenCalledWith({
1311
+ wikiPageKey: 'wiki/global/pipeline.md',
1312
+ wikiScope: 'GLOBAL',
1313
+ wikiScopeId: null,
1314
+ refs: [{ connectionId: 'warehouse-2', sourceName: 'looker__b2b__sales_pipeline' }],
1315
+ });
1316
+ expect(deps.semanticLayerService.loadAllSources).toHaveBeenCalledWith('warehouse-2');
1317
+ expect(deps.slSearchService.indexSources).toHaveBeenCalledWith('warehouse-2', [{ name: 'warehouse-2_source' }]);
1318
+ expect(deps.provenanceRepo.insertMany).toHaveBeenCalledWith(expect.arrayContaining([
1319
+ expect.objectContaining({
1320
+ connectionId: 'looker-run',
1321
+ targetConnectionId: 'warehouse-2',
1322
+ artifactKind: 'sl',
1323
+ artifactKey: 'looker__b2b__sales_pipeline',
1324
+ }),
1325
+ expect.objectContaining({
1326
+ connectionId: 'looker-run',
1327
+ targetConnectionId: null,
1328
+ artifactKind: 'wiki',
1329
+ artifactKey: 'wiki/global/pipeline.md',
1330
+ }),
1331
+ ]));
1332
+ expect(deps.reportsRepo.create).toHaveBeenCalledWith(expect.objectContaining({
1333
+ body: expect.objectContaining({
1334
+ workUnits: [
1335
+ expect.objectContaining({
1336
+ touchedSlSources: [{ connectionId: 'warehouse-2', sourceName: 'looker__b2b__sales_pipeline' }],
1337
+ }),
1338
+ ],
1339
+ provenanceRows: expect.arrayContaining([
1340
+ expect.objectContaining({
1341
+ artifactKind: 'sl',
1342
+ artifactKey: 'looker__b2b__sales_pipeline',
1343
+ targetConnectionId: 'warehouse-2',
1344
+ }),
1345
+ ]),
1346
+ }),
1347
+ }));
1348
+ });
1349
+ it('runs adapter finalization before squash, records the outcome, and reindexes touched sources', async () => {
1350
+ const deps = makeDeps();
1351
+ deps.adapter.source = 'metricflow';
1352
+ deps.registry.get.mockReturnValue(deps.adapter);
1353
+ deps.adapter.chunk.mockResolvedValue({
1354
+ workUnits: [],
1355
+ parseArtifacts: { semanticModels: [{ name: 'orders' }] },
1356
+ });
1357
+ deps.adapter.listTargetConnectionIds = vi.fn().mockResolvedValue(['warehouse-2']);
1358
+ deps.adapter.finalize = vi.fn().mockResolvedValue({
1359
+ result: { sourcesTouched: 1 },
1360
+ warnings: ['kept going'],
1361
+ errors: [],
1362
+ touchedSources: [{ connectionId: 'warehouse-2', sourceName: 'orders' }],
1363
+ changedWikiPageKeys: [],
1364
+ actions: [
1365
+ {
1366
+ target: 'sl',
1367
+ type: 'updated',
1368
+ key: 'orders',
1369
+ targetConnectionId: 'warehouse-2',
1370
+ detail: 'Finalized orders usage',
1371
+ rawPaths: ['semantic_models.yml'],
1372
+ },
1373
+ ],
1374
+ });
1375
+ deps.semanticLayerService.loadAllSources.mockImplementation((connectionId) => Promise.resolve({ sources: [{ name: `${connectionId}_source` }], loadErrors: [] }));
1376
+ let head = 'pre-finalization';
1377
+ const git = {
1378
+ revParseHead: vi.fn(async () => head),
1379
+ commitFiles: vi.fn().mockImplementation(async (paths) => {
1380
+ if (paths.includes('semantic-layer/warehouse-2/orders.yaml')) {
1381
+ head = 'post-finalization';
1382
+ return { created: true, commitHash: 'finalization-sha' };
1383
+ }
1384
+ return { created: true, commitHash: head };
1385
+ }),
1386
+ commitStaged: vi.fn().mockResolvedValue({ created: false, commitHash: 'post-finalization' }),
1387
+ resetHardTo: vi.fn(),
1388
+ assertWorktreeClean: vi.fn().mockResolvedValue(undefined),
1389
+ writeBinaryNoRenamePatch: vi.fn(async (_base, _head, patchPath) => {
1390
+ await writeFile(patchPath, '', 'utf-8');
1391
+ }),
1392
+ applyPatchFile3WayIndex: vi.fn(),
1393
+ diffNameStatus: vi.fn().mockImplementation(async (from, to) => from === 'pre-finalization' && to === 'post-finalization'
1394
+ ? [{ status: 'M', path: 'semantic-layer/warehouse-2/orders.yaml' }]
1395
+ : []),
1396
+ changedPaths: vi.fn().mockResolvedValue(['semantic-layer/warehouse-2/orders.yaml']),
1397
+ };
1398
+ deps.sessionWorktreeService.create.mockResolvedValue({
1399
+ chatId: 'j1',
1400
+ workdir: '/tmp/wt',
1401
+ branch: 'session/j1',
1402
+ baseSha: 'b',
1403
+ createdAt: new Date(),
1404
+ git,
1405
+ config: {},
1406
+ });
1407
+ const runner = buildRunner(deps);
1408
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
1409
+ currentHashes: new Map([['semantic_models.yml', 'h1']]),
1410
+ rawDirInWorktree: 'raw-sources/c1/metricflow/s',
1411
+ });
1412
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
1413
+ await runner.run({
1414
+ jobId: 'j1',
1415
+ connectionId: 'c1',
1416
+ sourceKey: 'metricflow',
1417
+ trigger: 'upload',
1418
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
1419
+ });
1420
+ expect(deps.adapter.finalize).toHaveBeenCalledWith(expect.objectContaining({
1421
+ connectionId: 'c1',
1422
+ sourceKey: 'metricflow',
1423
+ syncId: expect.any(String),
1424
+ jobId: 'j1',
1425
+ runId: 'run-1',
1426
+ workdir: '/tmp/wt',
1427
+ parseArtifacts: { semanticModels: [{ name: 'orders' }] },
1428
+ }));
1429
+ expect(deps.reportsRepo.create).toHaveBeenCalledWith(expect.objectContaining({
1430
+ body: expect.objectContaining({
1431
+ finalization: expect.objectContaining({
1432
+ sourceKey: 'metricflow',
1433
+ status: 'success',
1434
+ commitSha: 'finalization-sha',
1435
+ touchedPaths: ['semantic-layer/warehouse-2/orders.yaml'],
1436
+ derivedTouchedSources: [{ connectionId: 'warehouse-2', sourceName: 'orders' }],
1437
+ declaredTouchedSources: [{ connectionId: 'warehouse-2', sourceName: 'orders' }],
1438
+ actions: [expect.objectContaining({ key: 'orders' })],
1439
+ }),
1440
+ }),
1441
+ }));
1442
+ expect(deps.semanticLayerService.loadAllSources).toHaveBeenCalledWith('warehouse-2');
1443
+ expect(deps.slSearchService.indexSources).toHaveBeenCalledWith('warehouse-2', [{ name: 'warehouse-2_source' }]);
1444
+ expect(deps.sessionWorktreeService.cleanup).toHaveBeenCalledWith(expect.any(Object), 'success');
1445
+ });
1446
+ it('includes finalization actions in memory-flow saved counts', async () => {
1447
+ const deps = makeDeps();
1448
+ deps.adapter.source = 'historic-sql';
1449
+ deps.registry.get.mockReturnValue(deps.adapter);
1450
+ deps.adapter.chunk.mockResolvedValue({
1451
+ workUnits: [
1452
+ {
1453
+ unitKey: 'historic-sql-table-public-orders',
1454
+ rawFiles: ['tables/public/orders.json'],
1455
+ peerFileIndex: [],
1456
+ dependencyPaths: [],
1457
+ },
1458
+ ],
1459
+ });
1460
+ deps.adapter.finalize = vi.fn().mockResolvedValue({
1461
+ warnings: [],
1462
+ errors: [],
1463
+ touchedSources: [],
1464
+ changedWikiPageKeys: [],
1465
+ actions: [
1466
+ { target: 'sl', type: 'updated', key: 'orders', detail: 'Merged usage' },
1467
+ { target: 'sl', type: 'updated', key: 'customers', detail: 'Merged usage' },
1468
+ { target: 'wiki', type: 'created', key: 'historic-sql-orders', detail: 'Projected pattern' },
1469
+ { target: 'wiki', type: 'updated', key: 'historic-sql-customers', detail: 'Projected pattern' },
1470
+ ],
1471
+ });
1472
+ const runner = buildRunner(deps);
1473
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
1474
+ currentHashes: new Map([['tables/public/orders.json', 'h1']]),
1475
+ rawDirInWorktree: 'raw-sources/c1/historic-sql/s',
1476
+ });
1477
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
1478
+ const memoryFlow = createMemoryFlowLiveBuffer(bundleReplayInput());
1479
+ await runner.run({
1480
+ jobId: 'j1',
1481
+ connectionId: 'c1',
1482
+ sourceKey: 'historic-sql',
1483
+ trigger: 'upload',
1484
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
1485
+ }, {
1486
+ jobId: 'j1',
1487
+ memoryFlow,
1488
+ startPhase: () => new TestJobContext('j1', null, () => Promise.resolve(), () => Promise.resolve()),
1489
+ });
1490
+ expect(memoryFlow.snapshot().events).toContainEqual(expect.objectContaining({
1491
+ type: 'saved',
1492
+ wikiCount: 2,
1493
+ slCount: 2,
1494
+ }));
1495
+ });
1496
+ it('marks finalization infrastructure failure as failed and preserves worktree cleanup state', async () => {
1497
+ const deps = makeDeps();
1498
+ deps.adapter.source = 'metricflow';
1499
+ deps.registry.get.mockReturnValue(deps.adapter);
1500
+ deps.adapter.chunk.mockResolvedValue({
1501
+ workUnits: [{ unitKey: 'u1', rawFiles: ['semantic_models.yml'], peerFileIndex: [], dependencyPaths: [] }],
1502
+ parseArtifacts: { semanticModels: [{ name: 'orders' }] },
1503
+ });
1504
+ deps.adapter.finalize = vi.fn().mockRejectedValue(new Error('worktree write failed'));
1505
+ const runner = buildRunner(deps);
1506
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
1507
+ currentHashes: new Map([['semantic_models.yml', 'h1']]),
1508
+ rawDirInWorktree: 'raw-sources/c1/metricflow/s',
1509
+ });
1510
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
1511
+ await expect(runner.run({
1512
+ jobId: 'j1',
1513
+ connectionId: 'c1',
1514
+ sourceKey: 'metricflow',
1515
+ trigger: 'upload',
1516
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
1517
+ })).rejects.toThrow('worktree write failed');
1518
+ expect(deps.runsRepo.markFailed).toHaveBeenCalledWith('run-1');
1519
+ expect(deps.gitService.squashMergeIntoMain).not.toHaveBeenCalled();
1520
+ expect(deps.sessionWorktreeService.cleanup).toHaveBeenCalledWith(expect.any(Object), 'crash');
1521
+ });
1522
+ it('reports finalization actions excluded from provenance when raw paths are not defensible', async () => {
1523
+ const deps = makeDeps();
1524
+ deps.adapter.finalize = vi.fn().mockResolvedValue({
1525
+ warnings: [],
1526
+ errors: [],
1527
+ touchedSources: [],
1528
+ changedWikiPageKeys: [],
1529
+ actions: [
1530
+ { target: 'wiki', type: 'updated', key: 'historic-sql-pattern', detail: 'No raw path' },
1531
+ { target: 'sl', type: 'updated', key: 'orders', detail: 'Invalid raw path', rawPaths: ['missing.json'] },
1532
+ ],
1533
+ });
1534
+ const runner = buildRunner(deps);
1535
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
1536
+ currentHashes: new Map([['current.json', 'h1']]),
1537
+ rawDirInWorktree: 'raw-sources/c1/fake/s',
1538
+ });
1539
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
1540
+ await runner.run({
1541
+ jobId: 'j1',
1542
+ connectionId: 'c1',
1543
+ sourceKey: 'fake',
1544
+ trigger: 'upload',
1545
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
1546
+ });
1547
+ expect(deps.reportsRepo.create).toHaveBeenCalledWith(expect.objectContaining({
1548
+ body: expect.objectContaining({
1549
+ finalization: expect.objectContaining({
1550
+ provenanceExclusions: [
1551
+ expect.objectContaining({ reason: 'missing_raw_paths' }),
1552
+ expect.objectContaining({ reason: 'raw_path_not_defensible', invalidRawPaths: ['missing.json'] }),
1553
+ ],
1554
+ }),
1555
+ }),
1556
+ }));
1557
+ expect(deps.provenanceRepo.insertMany).not.toHaveBeenCalledWith(expect.arrayContaining([expect.objectContaining({ rawPath: 'missing.json' })]));
1558
+ });
1559
+ it('passes explicit override replay metadata and no current work unit outcomes', async () => {
1560
+ const deps = makeDeps();
1561
+ deps.reportsRepo.findByJobId.mockResolvedValue({
1562
+ id: 'prior-report',
1563
+ runId: 'prior-run',
1564
+ jobId: 'prior-job',
1565
+ connectionId: 'c1',
1566
+ sourceKey: 'fake',
1567
+ createdAt: '2026-05-18T00:00:00.000Z',
1568
+ body: {
1569
+ status: 'completed',
1570
+ syncId: 'prior-sync',
1571
+ diffSummary: { added: 0, modified: 0, deleted: 0, unchanged: 0 },
1572
+ commitSha: 'prior-sha',
1573
+ workUnits: [
1574
+ {
1575
+ unitKey: 'prior-unit',
1576
+ rawFiles: ['prior.json'],
1577
+ status: 'success',
1578
+ actions: [{ target: 'wiki', type: 'created', key: 'prior', detail: 'prior' }],
1579
+ touchedSlSources: [],
1580
+ },
1581
+ ],
1582
+ failedWorkUnits: [],
1583
+ reconciliationSkipped: false,
1584
+ conflictsResolved: [],
1585
+ evictionsApplied: [
1586
+ {
1587
+ rawPath: 'do-not-replay.json',
1588
+ artifactKind: 'wiki',
1589
+ artifactKey: 'old',
1590
+ action: 'removed',
1591
+ reason: 'prior',
1592
+ },
1593
+ ],
1594
+ unmappedFallbacks: [],
1595
+ artifactResolutions: [],
1596
+ evictionInputs: ['evicted-from-prior-report.json'],
1597
+ unresolvedCards: [],
1598
+ supersededBy: null,
1599
+ overrideOf: null,
1600
+ provenanceRows: [],
1601
+ toolTranscripts: [],
1602
+ },
1603
+ });
1604
+ deps.adapter.finalize = vi.fn().mockResolvedValue({
1605
+ warnings: [],
1606
+ errors: [],
1607
+ touchedSources: [],
1608
+ changedWikiPageKeys: [],
1609
+ actions: [],
1610
+ });
1611
+ deps.gitService.listFilesAtHead.mockResolvedValue(['raw-sources/c1/fake/prior-sync/prior.json']);
1612
+ deps.gitService.getFileAtCommit.mockResolvedValue('{"id":1}\n');
1613
+ const runner = buildRunner(deps);
1614
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
1615
+ currentHashes: new Map([['prior.json', 'h1']]),
1616
+ rawDirInWorktree: 'raw-sources/c1/fake/prior-sync',
1617
+ });
1618
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/prior');
1619
+ await runner.run({
1620
+ jobId: 'override-job',
1621
+ connectionId: 'c1',
1622
+ sourceKey: 'fake',
1623
+ trigger: 'manual_override',
1624
+ bundleRef: { kind: 'override', priorJobId: 'prior-job' },
1625
+ });
1626
+ expect(deps.adapter.finalize).toHaveBeenCalledWith(expect.objectContaining({
1627
+ workUnitOutcomes: [],
1628
+ overrideReplay: {
1629
+ priorJobId: 'prior-job',
1630
+ priorRunId: 'prior-run',
1631
+ priorSyncId: 'prior-sync',
1632
+ evictionRawPaths: ['evicted-from-prior-report.json'],
1633
+ },
1634
+ }));
1635
+ });
1636
+ it('includes existing global wiki pages in WorkUnit prompts', async () => {
1637
+ const deps = makeDeps();
1638
+ deps.knowledgeIndex.listPagesForUser.mockResolvedValue([
1639
+ {
1640
+ page_key: 'revenue-recognition',
1641
+ summary: 'Recognize revenue net of refunds after fulfillment.',
1642
+ scope: 'GLOBAL',
1643
+ scope_id: null,
1644
+ },
1645
+ ]);
1646
+ const runner = buildRunner(deps);
1647
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
1648
+ currentHashes: new Map([['cards/orders.yml', 'h1']]),
1649
+ rawDirInWorktree: 'raw-sources/c1/fake/s',
1650
+ });
1651
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
1652
+ await runner.run({
1653
+ jobId: 'j1',
1654
+ connectionId: 'c1',
1655
+ sourceKey: 'fake',
1656
+ trigger: 'upload',
1657
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
1658
+ });
1659
+ const workUnitCall = deps.agentRunner.runLoop.mock.calls.find(([params]) => params.telemetryTags.operationName === 'ingest-bundle-wu');
1660
+ expect(workUnitCall?.[0].userPrompt).toContain('## Wiki Pages');
1661
+ expect(workUnitCall?.[0].userPrompt).toContain('- revenue-recognition: Recognize revenue net of refunds after fulfillment.');
1662
+ expect(deps.knowledgeIndex.listPagesForUser).toHaveBeenCalledWith('system');
1663
+ });
1664
+ it('includes manifest-backed target sources in WorkUnit prompts', async () => {
1665
+ const deps = makeDeps();
1666
+ deps.adapter.listTargetConnectionIds = vi.fn().mockResolvedValue(['postgres-warehouse']);
1667
+ deps.semanticLayerService.loadAllSources.mockImplementation((connectionId) => Promise.resolve({
1668
+ sources: connectionId === 'postgres-warehouse' ? [{ name: 'stg_accounts' }] : [],
1669
+ loadErrors: [],
1670
+ }));
1671
+ const runner = buildRunner(deps);
1672
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
1673
+ currentHashes: new Map([['models/schema.yml', 'h1']]),
1674
+ rawDirInWorktree: 'raw-sources/dbt-main/dbt/s',
1675
+ });
1676
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
1677
+ await runner.run({
1678
+ jobId: 'j1',
1679
+ connectionId: 'dbt-main',
1680
+ sourceKey: 'fake',
1681
+ trigger: 'upload',
1682
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
1683
+ });
1684
+ const workUnitCall = deps.agentRunner.runLoop.mock.calls.find(([params]) => params.telemetryTags.operationName === 'ingest-bundle-wu');
1685
+ expect(workUnitCall?.[0].userPrompt).toContain('## postgres-warehouse');
1686
+ expect(workUnitCall?.[0].userPrompt).toContain('stg_accounts');
1687
+ expect(deps.canonicalPins.listPins).toHaveBeenCalledWith(['dbt-main', 'postgres-warehouse']);
1688
+ });
1689
+ it('does not resolve qualified fallback table refs by source name alone', async () => {
1690
+ const deps = makeDeps();
1691
+ deps.semanticLayerService.loadAllSources.mockResolvedValue({
1692
+ sources: [{ name: 'orders', table: 'sales.orders' }],
1693
+ loadErrors: [],
1694
+ });
1695
+ const runner = buildRunner(deps);
1696
+ await expect(runner.tableRefExistsInSemanticLayer(deps.semanticLayerService, ['warehouse'], 'finance.orders')).resolves.toBe(false);
1697
+ await expect(runner.tableRefExistsInSemanticLayer(deps.semanticLayerService, ['warehouse'], 'sales.orders')).resolves.toBe(true);
1698
+ });
1699
+ it('passes relevant canonical pins into the reconciliation system prompt', async () => {
1700
+ const deps = makeDeps();
1701
+ deps.diffSetService.compute.mockResolvedValue({
1702
+ added: [],
1703
+ modified: [],
1704
+ deleted: ['metrics/old.yml'],
1705
+ unchanged: [],
1706
+ });
1707
+ deps.adapter.chunk.mockResolvedValue({
1708
+ workUnits: [
1709
+ {
1710
+ unitKey: 'wu-billing',
1711
+ rawFiles: ['metrics/churn_risk_score.yml'],
1712
+ peerFileIndex: [],
1713
+ dependencyPaths: [],
1714
+ },
1715
+ ],
1716
+ eviction: { deletedRawPaths: ['metrics/old.yml'] },
1717
+ });
1718
+ deps.canonicalPins.listPins.mockResolvedValue([
1719
+ {
1720
+ contestedKey: 'churn_risk_score',
1721
+ canonicalArtifactKey: 'billing.churn_risk_score',
1722
+ pinnedAt: '2026-04-27T12:00:00.000Z',
1723
+ pinnedBy: 'user-1',
1724
+ reason: 'billing owns the contractual definition',
1725
+ },
1726
+ {
1727
+ contestedKey: 'gross_margin',
1728
+ canonicalArtifactKey: 'finance.gross_margin',
1729
+ pinnedAt: '2026-04-27T12:01:00.000Z',
1730
+ pinnedBy: 'user-2',
1731
+ reason: null,
1732
+ },
1733
+ ]);
1734
+ deps.agentRunner.runLoop.mockImplementation(async (params) => {
1735
+ if (params.telemetryTags.operationName === 'ingest-bundle-wu') {
1736
+ return { stopReason: 'natural' };
1737
+ }
1738
+ return { stopReason: 'natural' };
1739
+ });
1740
+ const runner = buildRunner(deps);
1741
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
1742
+ currentHashes: new Map([
1743
+ ['metrics/churn_risk_score.yml', 'h1'],
1744
+ ['metrics/old.yml', 'h2'],
1745
+ ]),
1746
+ rawDirInWorktree: 'raw-sources/c1/fake/s',
1747
+ });
1748
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
1749
+ await runner.run({
1750
+ jobId: 'j1',
1751
+ connectionId: 'c1',
1752
+ sourceKey: 'fake',
1753
+ trigger: 'upload',
1754
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
1755
+ });
1756
+ const reconcileCall = deps.agentRunner.runLoop.mock.calls.find(([params]) => params.telemetryTags.operationName === 'ingest-bundle-reconcile');
1757
+ expect(reconcileCall?.[0].systemPrompt).toContain('<canonical_pins>');
1758
+ expect(reconcileCall?.[0].systemPrompt).toContain('contestedKey: churn_risk_score');
1759
+ expect(reconcileCall?.[0].systemPrompt).not.toContain('gross_margin');
1760
+ expect(deps.canonicalPins.listPins).toHaveBeenCalledWith(['c1']);
1761
+ });
1762
+ it('emits a monotonically non-decreasing progress sequence reaching 1.0, covering all 7 stages', async () => {
1763
+ const deps = makeDeps();
1764
+ // Simulate an agent that calls onStepFinish a few times so stage 3 and 4 emit per-step progress.
1765
+ deps.agentRunner.runLoop.mockImplementation(async (params) => {
1766
+ if (params.onStepFinish) {
1767
+ for (let i = 1; i <= 3; i++) {
1768
+ await params.onStepFinish({ stepIndex: i, stepBudget: params.stepBudget });
1769
+ }
1770
+ }
1771
+ return { stopReason: 'natural' };
1772
+ });
1773
+ // Trigger Stage 4 reconciliation by having at least one action.
1774
+ deps.agentRunner.runLoop.mockImplementation(async (params) => {
1775
+ if (params.onStepFinish) {
1776
+ await params.onStepFinish({ stepIndex: 1, stepBudget: params.stepBudget });
1777
+ }
1778
+ return { stopReason: 'natural' };
1779
+ });
1780
+ const runner = buildRunner(deps);
1781
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
1782
+ currentHashes: new Map([['a.yml', 'h1']]),
1783
+ rawDirInWorktree: 'raw-sources/c1/fake/s',
1784
+ });
1785
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
1786
+ const observed = [];
1787
+ const ctx = new TestJobContext('j1', null, () => Promise.resolve(), (p, m) => {
1788
+ observed.push({ p, m });
1789
+ return Promise.resolve();
1790
+ });
1791
+ await runner.run({
1792
+ jobId: 'j1',
1793
+ connectionId: 'c1',
1794
+ sourceKey: 'fake',
1795
+ trigger: 'upload',
1796
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
1797
+ }, ctx);
1798
+ // Monotonic.
1799
+ for (let i = 1; i < observed.length; i++) {
1800
+ expect(observed[i].p).toBeGreaterThanOrEqual(observed[i - 1].p);
1801
+ }
1802
+ // Reaches completion.
1803
+ expect(observed.at(-1)?.p).toBeCloseTo(1.0, 3);
1804
+ // Every stage surfaces a user-facing message.
1805
+ const phaseLabels = [
1806
+ 'Fetching source files',
1807
+ 'Planning updates',
1808
+ 'Processing',
1809
+ /Reconcil|reconcil/,
1810
+ 'Saving changes',
1811
+ 'Recording history',
1812
+ 'Wrapping up',
1813
+ ];
1814
+ for (const label of phaseLabels) {
1815
+ expect(observed.some((o) => (typeof label === 'string' ? o.m?.includes(label) : label.test(o.m ?? '')))).toBe(true);
1816
+ }
1817
+ });
1818
+ it('a Stage 3 failure leaves the shared knowledge table untouched', async () => {
1819
+ const deps = makeDeps();
1820
+ // Agent runner returns a successful result but the adapter emits a WU whose
1821
+ // outcome still produces no actions — the point is that the scoped wiki service
1822
+ // must not touch indexRepository during Stage 3, and syncFromCommit is what
1823
+ // drives the shared table. If we cancel the run before squash, syncFromCommit
1824
+ // must not be called.
1825
+ deps.gitService.squashMergeIntoMain.mockRejectedValue(new Error('simulated squash failure'));
1826
+ const runner = buildRunner(deps);
1827
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
1828
+ currentHashes: new Map([['a.yml', 'h1']]),
1829
+ rawDirInWorktree: 'raw-sources/c1/fake/s',
1830
+ });
1831
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
1832
+ await expect(runner.run({
1833
+ jobId: 'j1',
1834
+ connectionId: 'c1',
1835
+ sourceKey: 'fake',
1836
+ trigger: 'upload',
1837
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
1838
+ })).rejects.toThrow(/simulated squash failure/);
1839
+ expect(deps.wikiService.syncFromCommit).not.toHaveBeenCalled();
1840
+ });
1841
+ it('refuses to squash-merge when the session worktree has an in-progress sequencer op', async () => {
1842
+ const deps = makeDeps();
1843
+ const assertError = new Error('Worktree has in-progress git operation (sequencer ...); refusing to proceed');
1844
+ const sessionGit = {
1845
+ revParseHead: vi.fn().mockResolvedValue('h'),
1846
+ commitFiles: vi.fn().mockResolvedValue({ created: true, commitHash: 'h' }),
1847
+ commitStaged: vi.fn().mockResolvedValue({ created: false, commitHash: 'h' }),
1848
+ resetHardTo: vi.fn(),
1849
+ assertWorktreeClean: vi.fn().mockRejectedValue(assertError),
1850
+ writeBinaryNoRenamePatch: vi.fn(async (_base, _head, patchPath) => {
1851
+ await writeFile(patchPath, '', 'utf-8');
1852
+ }),
1853
+ applyPatchFile3WayIndex: vi.fn(),
1854
+ diffNameStatus: vi.fn().mockResolvedValue([]),
1855
+ };
1856
+ deps.sessionWorktreeService.create.mockResolvedValue({
1857
+ chatId: 'j1',
1858
+ workdir: '/tmp/wt',
1859
+ branch: 'session/j1',
1860
+ baseSha: 'b',
1861
+ createdAt: new Date(),
1862
+ git: sessionGit,
1863
+ config: {},
1864
+ });
1865
+ const runner = buildRunner(deps);
1866
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
1867
+ currentHashes: new Map([['a.yml', 'h1']]),
1868
+ rawDirInWorktree: 'raw-sources/c1/fake/s',
1869
+ });
1870
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
1871
+ await expect(runner.run({
1872
+ jobId: 'j1',
1873
+ connectionId: 'c1',
1874
+ sourceKey: 'fake',
1875
+ trigger: 'upload',
1876
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
1877
+ })).rejects.toThrow(/in-progress git operation/);
1878
+ expect(deps.runsRepo.markFailed).toHaveBeenCalledWith('run-1');
1879
+ expect(deps.gitService.squashMergeIntoMain).not.toHaveBeenCalled();
1880
+ });
1881
+ it('fails the run and rethrows when the adapter cannot detect the bundle', async () => {
1882
+ const deps = makeDeps();
1883
+ deps.adapter.detect.mockResolvedValue(false);
1884
+ const runner = buildRunner(deps);
1885
+ runner.stageRawFilesStage1 = vi.fn().mockResolvedValue({
1886
+ currentHashes: new Map([['a.yml', 'h1']]),
1887
+ rawDirInWorktree: 'raw-sources/c1/fake/s',
1888
+ });
1889
+ runner.resolveStagedDir = vi.fn().mockResolvedValue('/tmp/stage/upload-x');
1890
+ await expect(runner.run({
1891
+ jobId: 'j1',
1892
+ connectionId: 'c1',
1893
+ sourceKey: 'fake',
1894
+ trigger: 'upload',
1895
+ bundleRef: { kind: 'upload', uploadId: 'upload-x' },
1896
+ })).rejects.toThrow(/did not recognize/);
1897
+ expect(deps.runsRepo.markFailed).toHaveBeenCalledWith('run-1');
1898
+ });
1899
+ });