@oscharko-dev/keiko 0.2.0-beta.3 → 0.2.0-beta.5

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 (573) hide show
  1. package/README.md +139 -1
  2. package/dist/ui/csp-hashes.json +33 -39
  3. package/dist/ui/static/404.html +1 -1
  4. package/dist/ui/static/__next.__PAGE__.txt +9 -0
  5. package/dist/ui/static/__next._full.txt +18 -0
  6. package/dist/ui/static/__next._head.txt +6 -0
  7. package/dist/ui/static/__next._index.txt +5 -0
  8. package/dist/ui/static/__next._tree.txt +2 -0
  9. package/dist/ui/static/_next/static/chunks/05-c3ty_6dwfk.js +1 -0
  10. package/dist/ui/static/_next/static/chunks/082obv3v03b-9.js +2 -0
  11. package/dist/ui/static/_next/static/chunks/0iq1i69206cyl.js +31 -0
  12. package/dist/ui/static/_next/static/chunks/0uifns067thv8.js +1 -0
  13. package/dist/ui/static/_next/static/chunks/0x31-j53ab1tt.js +1 -0
  14. package/dist/ui/static/_next/static/chunks/14mrh2-p_w84d.js +1 -0
  15. package/dist/ui/static/_next/static/chunks/1m-kvwm6_90_3.css +1 -0
  16. package/dist/ui/static/_next/static/chunks/1v4hrxrm_6_rw.js +1 -0
  17. package/dist/ui/static/_next/static/chunks/27jktro2p5rq9.js +4 -0
  18. package/dist/ui/static/_next/static/chunks/2lypy3ewh0r04.js +1 -0
  19. package/dist/ui/static/_next/static/chunks/2ngm8iwdb1cbv.js +106 -0
  20. package/dist/ui/static/_next/static/chunks/32573pyyglqxl.js +1 -0
  21. package/dist/ui/static/_next/static/chunks/3_t_pzet29qtn.js +1 -0
  22. package/dist/ui/static/_next/static/chunks/3jgg_oe0iok0l.js +1 -0
  23. package/dist/ui/static/_next/static/chunks/3o_oia3vsam60.js +1 -0
  24. package/dist/ui/static/_next/static/chunks/3peubv2924kx4.js +1 -0
  25. package/dist/ui/static/_next/static/chunks/turbopack-2lg1g6kbsfm0x.js +1 -0
  26. package/dist/ui/static/_next/static/hR2gBQqCDKdPdSxBqZhqv/_buildManifest.js +11 -0
  27. package/dist/ui/static/_next/static/hR2gBQqCDKdPdSxBqZhqv/_clientMiddlewareManifest.js +1 -0
  28. package/dist/ui/static/_not-found/__next._full.txt +16 -0
  29. package/dist/ui/static/_not-found/__next._head.txt +6 -0
  30. package/dist/ui/static/_not-found/__next._index.txt +5 -0
  31. package/dist/ui/static/_not-found/__next._not-found.__PAGE__.txt +5 -0
  32. package/dist/ui/static/_not-found/__next._not-found.txt +5 -0
  33. package/dist/ui/static/_not-found/__next._tree.txt +2 -0
  34. package/dist/ui/static/_not-found.html +1 -0
  35. package/dist/ui/static/_not-found.txt +16 -0
  36. package/dist/ui/static/index.html +1 -1
  37. package/dist/ui/static/index.txt +16 -18
  38. package/dist/ui/static/launch/__next._full.txt +20 -0
  39. package/dist/ui/static/launch/__next._head.txt +6 -0
  40. package/dist/ui/static/launch/__next._index.txt +5 -0
  41. package/dist/ui/static/launch/__next._tree.txt +2 -0
  42. package/dist/ui/static/launch/__next.launch.__PAGE__.txt +9 -0
  43. package/dist/ui/static/launch/__next.launch.txt +5 -0
  44. package/dist/ui/static/launch.html +1 -1
  45. package/dist/ui/static/launch.txt +17 -17
  46. package/dist/ui/static/local-knowledge/__next._full.txt +20 -0
  47. package/dist/ui/static/local-knowledge/__next._head.txt +6 -0
  48. package/dist/ui/static/local-knowledge/__next._index.txt +5 -0
  49. package/dist/ui/static/local-knowledge/__next._tree.txt +2 -0
  50. package/dist/ui/static/local-knowledge/__next.local-knowledge.__PAGE__.txt +9 -0
  51. package/dist/ui/static/local-knowledge/__next.local-knowledge.txt +5 -0
  52. package/dist/ui/static/local-knowledge/capsule/__next._full.txt +17 -0
  53. package/dist/ui/static/local-knowledge/capsule/__next._head.txt +6 -0
  54. package/dist/ui/static/local-knowledge/capsule/__next._index.txt +5 -0
  55. package/dist/ui/static/local-knowledge/capsule/__next._tree.txt +2 -0
  56. package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.capsule.__PAGE__.txt +6 -0
  57. package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.capsule.txt +5 -0
  58. package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.txt +5 -0
  59. package/dist/ui/static/local-knowledge/capsule.html +1 -1
  60. package/dist/ui/static/local-knowledge/capsule.txt +14 -14
  61. package/dist/ui/static/local-knowledge.html +1 -1
  62. package/dist/ui/static/local-knowledge.txt +19 -16
  63. package/dist/ui/static/memoriaviva/__next._full.txt +17 -0
  64. package/dist/ui/static/memoriaviva/__next._head.txt +6 -0
  65. package/dist/ui/static/memoriaviva/__next._index.txt +5 -0
  66. package/dist/ui/static/memoriaviva/__next._tree.txt +2 -0
  67. package/dist/ui/static/memoriaviva/__next.memoriaviva.__PAGE__.txt +6 -0
  68. package/dist/ui/static/memoriaviva/__next.memoriaviva.txt +5 -0
  69. package/dist/ui/static/memoriaviva/consolidation/__next._full.txt +17 -0
  70. package/dist/ui/static/memoriaviva/consolidation/__next._head.txt +6 -0
  71. package/dist/ui/static/memoriaviva/consolidation/__next._index.txt +5 -0
  72. package/dist/ui/static/memoriaviva/consolidation/__next._tree.txt +2 -0
  73. package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.consolidation.__PAGE__.txt +6 -0
  74. package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.consolidation.txt +5 -0
  75. package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.txt +5 -0
  76. package/dist/ui/static/memoriaviva/consolidation.html +1 -1
  77. package/dist/ui/static/memoriaviva/consolidation.txt +15 -15
  78. package/dist/ui/static/memoriaviva/detail/__next._full.txt +17 -0
  79. package/dist/ui/static/memoriaviva/detail/__next._head.txt +6 -0
  80. package/dist/ui/static/memoriaviva/detail/__next._index.txt +5 -0
  81. package/dist/ui/static/memoriaviva/detail/__next._tree.txt +2 -0
  82. package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.detail.__PAGE__.txt +6 -0
  83. package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.detail.txt +5 -0
  84. package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.txt +5 -0
  85. package/dist/ui/static/memoriaviva/detail.html +1 -1
  86. package/dist/ui/static/memoriaviva/detail.txt +14 -14
  87. package/dist/ui/static/memoriaviva/review-queue/__next._full.txt +17 -0
  88. package/dist/ui/static/memoriaviva/review-queue/__next._head.txt +6 -0
  89. package/dist/ui/static/memoriaviva/review-queue/__next._index.txt +5 -0
  90. package/dist/ui/static/memoriaviva/review-queue/__next._tree.txt +2 -0
  91. package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.review-queue.__PAGE__.txt +6 -0
  92. package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.review-queue.txt +5 -0
  93. package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.txt +5 -0
  94. package/dist/ui/static/memoriaviva/review-queue.html +1 -1
  95. package/dist/ui/static/memoriaviva/review-queue.txt +15 -15
  96. package/dist/ui/static/memoriaviva.html +1 -1
  97. package/dist/ui/static/memoriaviva.txt +14 -14
  98. package/node_modules/@oscharko-dev/keiko-cli/dist/.tsbuildinfo +1 -1
  99. package/node_modules/@oscharko-dev/keiko-cli/dist/evaluate.d.ts.map +1 -1
  100. package/node_modules/@oscharko-dev/keiko-cli/dist/evaluate.js +61 -2
  101. package/node_modules/@oscharko-dev/keiko-cli/dist/evidence.d.ts.map +1 -1
  102. package/node_modules/@oscharko-dev/keiko-cli/dist/evidence.js +65 -21
  103. package/node_modules/@oscharko-dev/keiko-cli/dist/launcher-platforms.js +3 -3
  104. package/node_modules/@oscharko-dev/keiko-cli/dist/run.d.ts +3 -1
  105. package/node_modules/@oscharko-dev/keiko-cli/dist/run.d.ts.map +1 -1
  106. package/node_modules/@oscharko-dev/keiko-cli/dist/run.js +73 -41
  107. package/node_modules/@oscharko-dev/keiko-cli/dist/ui.d.ts.map +1 -1
  108. package/node_modules/@oscharko-dev/keiko-cli/dist/ui.js +36 -11
  109. package/node_modules/@oscharko-dev/keiko-cli/package.json +2 -2
  110. package/node_modules/@oscharko-dev/keiko-contracts/dist/.tsbuildinfo +1 -1
  111. package/node_modules/@oscharko-dev/keiko-contracts/dist/bff-wire.d.ts +20 -1
  112. package/node_modules/@oscharko-dev/keiko-contracts/dist/bff-wire.d.ts.map +1 -1
  113. package/node_modules/@oscharko-dev/keiko-contracts/dist/connected-context.d.ts +1 -1
  114. package/node_modules/@oscharko-dev/keiko-contracts/dist/connected-context.d.ts.map +1 -1
  115. package/node_modules/@oscharko-dev/keiko-contracts/dist/connected-context.js +256 -75
  116. package/node_modules/@oscharko-dev/keiko-contracts/dist/evidence.d.ts +11 -0
  117. package/node_modules/@oscharko-dev/keiko-contracts/dist/evidence.d.ts.map +1 -1
  118. package/node_modules/@oscharko-dev/keiko-contracts/dist/index.d.ts +6 -6
  119. package/node_modules/@oscharko-dev/keiko-contracts/dist/index.d.ts.map +1 -1
  120. package/node_modules/@oscharko-dev/keiko-contracts/dist/index.js +4 -4
  121. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-records.d.ts +11 -0
  122. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-records.d.ts.map +1 -1
  123. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-records.js +4 -0
  124. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-schema.d.ts +1 -1
  125. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-schema.d.ts.map +1 -1
  126. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-schema.js +109 -4
  127. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-validation.d.ts +2 -0
  128. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-validation.d.ts.map +1 -1
  129. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-validation.js +94 -7
  130. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge.d.ts +5 -0
  131. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge.d.ts.map +1 -1
  132. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/bffWire.d.ts +2 -0
  133. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/bffWire.d.ts.map +1 -1
  134. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/ids.d.ts.map +1 -1
  135. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/ids.js +3 -0
  136. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/sourceEnvelope.d.ts +14 -0
  137. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/sourceEnvelope.d.ts.map +1 -1
  138. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/sourceEnvelope.js +53 -5
  139. package/node_modules/@oscharko-dev/keiko-contracts/package.json +2 -2
  140. package/node_modules/@oscharko-dev/keiko-evaluations/dist/.tsbuildinfo +1 -1
  141. package/node_modules/@oscharko-dev/keiko-evaluations/dist/runner.d.ts.map +1 -1
  142. package/node_modules/@oscharko-dev/keiko-evaluations/dist/runner.js +11 -3
  143. package/node_modules/@oscharko-dev/keiko-evaluations/package.json +2 -2
  144. package/node_modules/@oscharko-dev/keiko-evidence/dist/.tsbuildinfo +1 -1
  145. package/node_modules/@oscharko-dev/keiko-evidence/dist/connected-context-evidence.d.ts +20 -1
  146. package/node_modules/@oscharko-dev/keiko-evidence/dist/connected-context-evidence.d.ts.map +1 -1
  147. package/node_modules/@oscharko-dev/keiko-evidence/dist/connected-context-evidence.js +34 -2
  148. package/node_modules/@oscharko-dev/keiko-evidence/dist/index.d.ts +1 -1
  149. package/node_modules/@oscharko-dev/keiko-evidence/dist/index.d.ts.map +1 -1
  150. package/node_modules/@oscharko-dev/keiko-evidence/dist/index.js +1 -1
  151. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/candidatesArtifact.d.ts +1 -0
  152. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/candidatesArtifact.d.ts.map +1 -1
  153. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/candidatesArtifact.js +3 -1
  154. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/companionStore.d.ts +17 -0
  155. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/companionStore.d.ts.map +1 -1
  156. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/companionStore.js +19 -0
  157. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.d.ts +5 -1
  158. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.d.ts.map +1 -1
  159. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.d.ts +32 -2
  160. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.d.ts.map +1 -1
  161. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.js +259 -40
  162. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.d.ts +3 -3
  163. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.d.ts.map +1 -1
  164. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.js +1 -1
  165. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/manifestSchema.d.ts +18 -1
  166. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/manifestSchema.d.ts.map +1 -1
  167. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/retention.d.ts +3 -0
  168. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/retention.d.ts.map +1 -1
  169. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/retention.js +48 -5
  170. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/store.d.ts +33 -0
  171. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/store.d.ts.map +1 -1
  172. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/store.js +99 -13
  173. package/node_modules/@oscharko-dev/keiko-evidence/dist/types.d.ts +1 -1
  174. package/node_modules/@oscharko-dev/keiko-evidence/dist/types.d.ts.map +1 -1
  175. package/node_modules/@oscharko-dev/keiko-evidence/package.json +2 -2
  176. package/node_modules/@oscharko-dev/keiko-harness/dist/.tsbuildinfo +1 -1
  177. package/node_modules/@oscharko-dev/keiko-harness/package.json +2 -2
  178. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/.tsbuildinfo +1 -1
  179. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-lifecycle.d.ts.map +1 -1
  180. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-lifecycle.js +25 -1
  181. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-set-lifecycle.d.ts +1 -1
  182. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-set-lifecycle.d.ts.map +1 -1
  183. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-set-lifecycle.js +16 -0
  184. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker-persist.d.ts +3 -1
  185. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker-persist.d.ts.map +1 -1
  186. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker-persist.js +9 -5
  187. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker-runner.d.ts.map +1 -1
  188. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker-runner.js +22 -7
  189. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker.d.ts +4 -1
  190. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker.d.ts.map +1 -1
  191. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker.js +61 -9
  192. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/citation-mapper.d.ts.map +1 -1
  193. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/citation-mapper.js +64 -36
  194. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/index.d.ts +2 -2
  195. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/index.d.ts.map +1 -1
  196. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/index.js +2 -2
  197. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/types.d.ts +7 -1
  198. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/types.d.ts.map +1 -1
  199. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/types.js +5 -1
  200. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/composition.d.ts +1 -1
  201. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/composition.d.ts.map +1 -1
  202. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/composition.js +27 -4
  203. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/index.d.ts +0 -1
  204. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/index.d.ts.map +1 -1
  205. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/index.js +0 -1
  206. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/model-gateway-answer-generator.d.ts +5 -1
  207. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/model-gateway-answer-generator.d.ts.map +1 -1
  208. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/model-gateway-answer-generator.js +25 -6
  209. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/types.d.ts.map +1 -1
  210. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/types.js +2 -3
  211. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/discovery-runner.d.ts.map +1 -1
  212. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/discovery-runner.js +10 -1
  213. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/extract.d.ts +4 -1
  214. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/extract.d.ts.map +1 -1
  215. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/extract.js +370 -45
  216. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/test-support.d.ts +2 -0
  217. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/test-support.d.ts.map +1 -1
  218. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/test-support.js +8 -4
  219. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/types.d.ts +1 -1
  220. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/types.d.ts.map +1 -1
  221. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/types.js +10 -5
  222. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/walk.d.ts.map +1 -1
  223. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/walk.js +65 -20
  224. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/fixtures.d.ts +1 -0
  225. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/fixtures.d.ts.map +1 -1
  226. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/fixtures.js +79 -0
  227. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/index.d.ts +1 -1
  228. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/index.d.ts.map +1 -1
  229. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/index.js +1 -1
  230. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/runner-seed.d.ts.map +1 -1
  231. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/runner-seed.js +4 -0
  232. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/index.d.ts +6 -5
  233. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/index.d.ts.map +1 -1
  234. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/index.js +4 -4
  235. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/embedding-batcher.d.ts.map +1 -1
  236. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/embedding-batcher.js +71 -29
  237. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/orchestrator.d.ts.map +1 -1
  238. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/orchestrator.js +253 -131
  239. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/types.d.ts +12 -0
  240. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/types.d.ts.map +1 -1
  241. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/vector-persist.d.ts.map +1 -1
  242. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/vector-persist.js +9 -0
  243. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/_internal.d.ts +3 -1
  244. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/_internal.d.ts.map +1 -1
  245. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/_internal.js +13 -1
  246. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/docx-parser.d.ts.map +1 -1
  247. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/docx-parser.js +86 -46
  248. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/index.d.ts +1 -1
  249. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/index.d.ts.map +1 -1
  250. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/index.js +1 -1
  251. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/json-parser.d.ts.map +1 -1
  252. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/json-parser.js +50 -22
  253. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/pdf-parser.d.ts +21 -1
  254. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/pdf-parser.d.ts.map +1 -1
  255. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/pdf-parser.js +90 -13
  256. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/registry.d.ts.map +1 -1
  257. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/registry.js +3 -1
  258. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/types.d.ts +7 -2
  259. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/types.d.ts.map +1 -1
  260. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/types.js +7 -3
  261. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/audit-emitter.js +8 -0
  262. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/diagnostic-redactor.d.ts.map +1 -1
  263. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/diagnostic-redactor.js +17 -10
  264. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/retention-applier.d.ts.map +1 -1
  265. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/retention-applier.js +7 -0
  266. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/types.d.ts +4 -0
  267. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/types.d.ts.map +1 -1
  268. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/retrieval-runner.js +1 -1
  269. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/scoped-vector-search.d.ts +1 -0
  270. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/scoped-vector-search.d.ts.map +1 -1
  271. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/scoped-vector-search.js +318 -32
  272. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/source-lifecycle.d.ts +1 -1
  273. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/source-lifecycle.d.ts.map +1 -1
  274. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/source-lifecycle.js +46 -16
  275. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/store.d.ts +14 -0
  276. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/store.d.ts.map +1 -1
  277. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/store.js +26 -1
  278. package/node_modules/@oscharko-dev/keiko-local-knowledge/package.json +10 -5
  279. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/.tsbuildinfo +1 -1
  280. package/node_modules/@oscharko-dev/keiko-memory-capture/package.json +2 -2
  281. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/.tsbuildinfo +1 -1
  282. package/node_modules/@oscharko-dev/keiko-memory-consolidation/package.json +2 -2
  283. package/node_modules/@oscharko-dev/keiko-memory-governance/dist/.tsbuildinfo +1 -1
  284. package/node_modules/@oscharko-dev/keiko-memory-governance/package.json +2 -2
  285. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/.tsbuildinfo +1 -1
  286. package/node_modules/@oscharko-dev/keiko-memory-retrieval/package.json +2 -2
  287. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/.tsbuildinfo +1 -1
  288. package/node_modules/@oscharko-dev/keiko-memory-vault/package.json +2 -2
  289. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/.tsbuildinfo +1 -1
  290. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/config.d.ts +2 -1
  291. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/config.d.ts.map +1 -1
  292. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/config.js +50 -0
  293. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/http.d.ts +3 -0
  294. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/http.d.ts.map +1 -1
  295. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/http.js +114 -44
  296. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/normalize.d.ts +1 -0
  297. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/normalize.d.ts.map +1 -1
  298. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/normalize.js +22 -1
  299. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-adapter.d.ts.map +1 -1
  300. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-adapter.js +18 -4
  301. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/dispatcher.d.ts +14 -0
  302. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/dispatcher.d.ts.map +1 -1
  303. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/dispatcher.js +14 -0
  304. package/node_modules/@oscharko-dev/keiko-model-gateway/package.json +2 -2
  305. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/.tsbuildinfo +1 -1
  306. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/a11yBaseline.d.ts.map +1 -1
  307. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/a11yBaseline.js +9 -2
  308. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/cleanToScreenIr.js +1 -1
  309. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/emissionPlan.d.ts +9 -1
  310. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/emissionPlan.d.ts.map +1 -1
  311. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/emissionPlan.js +9 -1
  312. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/htmlCssAdapter.d.ts +5 -0
  313. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/htmlCssAdapter.d.ts.map +1 -1
  314. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/htmlCssAdapter.js +229 -33
  315. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/irTypes.d.ts +62 -0
  316. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/irTypes.d.ts.map +1 -1
  317. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/links.d.ts.map +1 -1
  318. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/links.js +24 -4
  319. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/navGraph.d.ts +4 -2
  320. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/navGraph.d.ts.map +1 -1
  321. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/navGraph.js +0 -0
  322. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/normalize.d.ts.map +1 -1
  323. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/normalize.js +119 -5
  324. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/prune.d.ts +2 -1
  325. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/prune.d.ts.map +1 -1
  326. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/prune.js +26 -11
  327. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.d.ts.map +1 -1
  328. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.js +86 -9
  329. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/tokens.d.ts.map +1 -1
  330. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/tokens.js +10 -3
  331. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/validation.d.ts.map +1 -1
  332. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/validation.js +14 -12
  333. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/alm.d.ts.map +1 -1
  334. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/alm.js +29 -30
  335. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/markdown.d.ts.map +1 -1
  336. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/markdown.js +29 -5
  337. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/qtest.d.ts.map +1 -1
  338. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/qtest.js +29 -29
  339. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/spreadsheetSafeCsv.d.ts +2 -1
  340. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/spreadsheetSafeCsv.d.ts.map +1 -1
  341. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/spreadsheetSafeCsv.js +40 -2
  342. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/xray.d.ts.map +1 -1
  343. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/xray.js +6 -2
  344. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/ingestion/sourceMixPlanning.js +0 -0
  345. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/ingestion/untrustedContentNormalisation.d.ts +1 -1
  346. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/ingestion/untrustedContentNormalisation.d.ts.map +1 -1
  347. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/ingestion/untrustedContentNormalisation.js +9 -1
  348. package/node_modules/@oscharko-dev/keiko-quality-intelligence/package.json +2 -2
  349. package/node_modules/@oscharko-dev/keiko-sdk/dist/.tsbuildinfo +1 -1
  350. package/node_modules/@oscharko-dev/keiko-sdk/package.json +2 -2
  351. package/node_modules/@oscharko-dev/keiko-security/dist/.tsbuildinfo +1 -1
  352. package/node_modules/@oscharko-dev/keiko-security/dist/redaction.d.ts.map +1 -1
  353. package/node_modules/@oscharko-dev/keiko-security/dist/redaction.js +4 -2
  354. package/node_modules/@oscharko-dev/keiko-security/package.json +2 -2
  355. package/node_modules/@oscharko-dev/keiko-server/dist/.tsbuildinfo +1 -1
  356. package/node_modules/@oscharko-dev/keiko-server/dist/assistant-response.d.ts +6 -0
  357. package/node_modules/@oscharko-dev/keiko-server/dist/assistant-response.d.ts.map +1 -0
  358. package/node_modules/@oscharko-dev/keiko-server/dist/assistant-response.js +12 -0
  359. package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.d.ts +1 -1
  360. package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.d.ts.map +1 -1
  361. package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.js +17 -5
  362. package/node_modules/@oscharko-dev/keiko-server/dist/chat-stream-handlers.js +1 -1
  363. package/node_modules/@oscharko-dev/keiko-server/dist/deps.d.ts +2 -0
  364. package/node_modules/@oscharko-dev/keiko-server/dist/deps.d.ts.map +1 -1
  365. package/node_modules/@oscharko-dev/keiko-server/dist/deps.js +59 -9
  366. package/node_modules/@oscharko-dev/keiko-server/dist/evidence.d.ts +1 -1
  367. package/node_modules/@oscharko-dev/keiko-server/dist/evidence.d.ts.map +1 -1
  368. package/node_modules/@oscharko-dev/keiko-server/dist/evidence.js +4 -3
  369. package/node_modules/@oscharko-dev/keiko-server/dist/files.d.ts +18 -3
  370. package/node_modules/@oscharko-dev/keiko-server/dist/files.d.ts.map +1 -1
  371. package/node_modules/@oscharko-dev/keiko-server/dist/files.js +208 -72
  372. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-answer.d.ts.map +1 -1
  373. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-answer.js +7 -2
  374. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-context-index.d.ts +3 -0
  375. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-context-index.d.ts.map +1 -1
  376. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-context-index.js +27 -4
  377. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-handoff.d.ts.map +1 -1
  378. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-handoff.js +46 -14
  379. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.d.ts +1 -1
  380. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.d.ts.map +1 -1
  381. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.js +651 -45
  382. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-prompt.d.ts.map +1 -1
  383. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-prompt.js +5 -3
  384. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-hybrid.d.ts +9 -0
  385. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-hybrid.d.ts.map +1 -1
  386. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-hybrid.js +197 -46
  387. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-multi-source.d.ts +4 -0
  388. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-multi-source.d.ts.map +1 -1
  389. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-multi-source.js +103 -25
  390. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa.d.ts +7 -0
  391. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa.d.ts.map +1 -1
  392. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa.js +199 -21
  393. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-turn-registry.d.ts.map +1 -1
  394. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-turn-registry.js +21 -1
  395. package/node_modules/@oscharko-dev/keiko-server/dist/index.d.ts +1 -1
  396. package/node_modules/@oscharko-dev/keiko-server/dist/index.d.ts.map +1 -1
  397. package/node_modules/@oscharko-dev/keiko-server/dist/index.js +1 -1
  398. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.d.ts +9 -6
  399. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.d.ts.map +1 -1
  400. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.js +193 -67
  401. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-handlers.d.ts.map +1 -1
  402. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-handlers.js +189 -72
  403. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/connectorErrors.d.ts.map +1 -1
  404. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/connectorErrors.js +11 -8
  405. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/editRoutes.d.ts.map +1 -1
  406. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/editRoutes.js +1 -0
  407. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/exportRoutes.d.ts.map +1 -1
  408. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/exportRoutes.js +89 -30
  409. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorErrors.d.ts +10 -2
  410. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorErrors.d.ts.map +1 -1
  411. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorErrors.js +110 -30
  412. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaHttpPort.d.ts +13 -4
  413. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaHttpPort.d.ts.map +1 -1
  414. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaHttpPort.js +29 -17
  415. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaRenderPort.d.ts +13 -3
  416. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaRenderPort.d.ts.map +1 -1
  417. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaRenderPort.js +54 -5
  418. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotBuilder.d.ts.map +1 -1
  419. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotBuilder.js +84 -12
  420. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotHash.d.ts.map +1 -1
  421. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotHash.js +16 -8
  422. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotTypes.d.ts +6 -2
  423. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotTypes.d.ts.map +1 -1
  424. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotAdapter.d.ts +13 -1
  425. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotAdapter.d.ts.map +1 -1
  426. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotAdapter.js +15 -2
  427. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotOrchestration.d.ts +9 -0
  428. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotOrchestration.d.ts.map +1 -1
  429. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotOrchestration.js +2 -2
  430. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.d.ts +9 -1
  431. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.d.ts.map +1 -1
  432. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.js +138 -19
  433. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/generationPort.d.ts.map +1 -1
  434. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/generationPort.js +38 -8
  435. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffErrors.d.ts +1 -1
  436. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffErrors.d.ts.map +1 -1
  437. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffErrors.js +1 -0
  438. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffRoutes.d.ts.map +1 -1
  439. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffRoutes.js +41 -9
  440. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/index.d.ts +1 -0
  441. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/index.d.ts.map +1 -1
  442. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/index.js +2 -0
  443. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/judgePort.d.ts.map +1 -1
  444. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/judgePort.js +43 -10
  445. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reCheckRoutes.d.ts.map +1 -1
  446. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reCheckRoutes.js +3 -1
  447. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/retentionRoutes.d.ts +5 -0
  448. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/retentionRoutes.d.ts.map +1 -0
  449. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/retentionRoutes.js +70 -0
  450. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewRoutes.d.ts.map +1 -1
  451. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewRoutes.js +6 -2
  452. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewStore.d.ts +25 -4
  453. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewStore.d.ts.map +1 -1
  454. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewStore.js +72 -9
  455. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.d.ts.map +1 -1
  456. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.js +97 -18
  457. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRegistry.d.ts.map +1 -1
  458. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRegistry.js +2 -0
  459. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.d.ts +4 -1
  460. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.d.ts.map +1 -1
  461. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.js +17 -3
  462. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/uiRoutes.d.ts.map +1 -1
  463. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/uiRoutes.js +18 -4
  464. package/node_modules/@oscharko-dev/keiko-server/dist/routes.d.ts.map +1 -1
  465. package/node_modules/@oscharko-dev/keiko-server/dist/routes.js +8 -3
  466. package/node_modules/@oscharko-dev/keiko-server/dist/run-engine.d.ts.map +1 -1
  467. package/node_modules/@oscharko-dev/keiko-server/dist/run-engine.js +6 -1
  468. package/node_modules/@oscharko-dev/keiko-server/dist/store/chats.d.ts +2 -2
  469. package/node_modules/@oscharko-dev/keiko-server/dist/store/chats.d.ts.map +1 -1
  470. package/node_modules/@oscharko-dev/keiko-server/dist/store/chats.js +84 -8
  471. package/node_modules/@oscharko-dev/keiko-server/dist/store/db.d.ts.map +1 -1
  472. package/node_modules/@oscharko-dev/keiko-server/dist/store/db.js +4 -2
  473. package/node_modules/@oscharko-dev/keiko-server/dist/store/index.d.ts +1 -1
  474. package/node_modules/@oscharko-dev/keiko-server/dist/store/index.d.ts.map +1 -1
  475. package/node_modules/@oscharko-dev/keiko-server/dist/store/types.d.ts +5 -1
  476. package/node_modules/@oscharko-dev/keiko-server/dist/store/types.d.ts.map +1 -1
  477. package/node_modules/@oscharko-dev/keiko-server/dist/store-handlers.d.ts.map +1 -1
  478. package/node_modules/@oscharko-dev/keiko-server/dist/store-handlers.js +71 -15
  479. package/node_modules/@oscharko-dev/keiko-server/package.json +2 -2
  480. package/node_modules/@oscharko-dev/keiko-tools/dist/.tsbuildinfo +1 -1
  481. package/node_modules/@oscharko-dev/keiko-tools/package.json +2 -2
  482. package/node_modules/@oscharko-dev/keiko-verification/dist/.tsbuildinfo +1 -1
  483. package/node_modules/@oscharko-dev/keiko-verification/package.json +2 -2
  484. package/node_modules/@oscharko-dev/keiko-workflows/dist/.tsbuildinfo +1 -1
  485. package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/assemble.d.ts +2 -0
  486. package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/assemble.d.ts.map +1 -1
  487. package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/assemble.js +45 -10
  488. package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/index.d.ts +1 -1
  489. package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/index.d.ts.map +1 -1
  490. package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/index.js +1 -1
  491. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/anchors.d.ts.map +1 -1
  492. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/anchors.js +68 -0
  493. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/plan.d.ts.map +1 -1
  494. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/plan.js +4 -6
  495. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/__tests__/fixtures/runEntryFixtures.d.ts +30 -0
  496. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/__tests__/fixtures/runEntryFixtures.d.ts.map +1 -0
  497. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/__tests__/fixtures/runEntryFixtures.js +114 -0
  498. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/modelRoutedTestDesign.d.ts.map +1 -1
  499. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/modelRoutedTestDesign.js +20 -7
  500. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runEntries.d.ts.map +1 -1
  501. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runEntries.js +15 -7
  502. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runtimeCommon.d.ts.map +1 -1
  503. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runtimeCommon.js +28 -4
  504. package/node_modules/@oscharko-dev/keiko-workflows/dist/ranking/rank.d.ts.map +1 -1
  505. package/node_modules/@oscharko-dev/keiko-workflows/dist/ranking/rank.js +51 -1
  506. package/node_modules/@oscharko-dev/keiko-workflows/dist/ranking/signals.d.ts.map +1 -1
  507. package/node_modules/@oscharko-dev/keiko-workflows/dist/ranking/signals.js +8 -3
  508. package/node_modules/@oscharko-dev/keiko-workflows/package.json +2 -2
  509. package/node_modules/@oscharko-dev/keiko-workspace/dist/.tsbuildinfo +1 -1
  510. package/node_modules/@oscharko-dev/keiko-workspace/dist/discovery.d.ts.map +1 -1
  511. package/node_modules/@oscharko-dev/keiko-workspace/dist/discovery.js +34 -2
  512. package/node_modules/@oscharko-dev/keiko-workspace/dist/fs.d.ts +1 -0
  513. package/node_modules/@oscharko-dev/keiko-workspace/dist/fs.d.ts.map +1 -1
  514. package/node_modules/@oscharko-dev/keiko-workspace/dist/fs.js +1 -0
  515. package/node_modules/@oscharko-dev/keiko-workspace/dist/gitHistory.d.ts.map +1 -1
  516. package/node_modules/@oscharko-dev/keiko-workspace/dist/gitHistory.js +84 -27
  517. package/node_modules/@oscharko-dev/keiko-workspace/dist/ignore.d.ts.map +1 -1
  518. package/node_modules/@oscharko-dev/keiko-workspace/dist/ignore.js +19 -0
  519. package/node_modules/@oscharko-dev/keiko-workspace/dist/importGraph.d.ts.map +1 -1
  520. package/node_modules/@oscharko-dev/keiko-workspace/dist/importGraph.js +6 -3
  521. package/node_modules/@oscharko-dev/keiko-workspace/dist/realpath.d.ts +1 -0
  522. package/node_modules/@oscharko-dev/keiko-workspace/dist/realpath.d.ts.map +1 -1
  523. package/node_modules/@oscharko-dev/keiko-workspace/dist/realpath.js +2 -2
  524. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearch.d.ts.map +1 -1
  525. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearch.js +72 -25
  526. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchEntries.d.ts +15 -0
  527. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchEntries.d.ts.map +1 -0
  528. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchEntries.js +107 -0
  529. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchLineSelection.d.ts +18 -0
  530. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchLineSelection.d.ts.map +1 -0
  531. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchLineSelection.js +42 -0
  532. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.d.ts.map +1 -1
  533. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.js +72 -11
  534. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchRegexSafety.d.ts +2 -0
  535. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchRegexSafety.d.ts.map +1 -0
  536. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchRegexSafety.js +15 -0
  537. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchScan.d.ts +2 -2
  538. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchScan.d.ts.map +1 -1
  539. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchScan.js +89 -75
  540. package/node_modules/@oscharko-dev/keiko-workspace/package.json +2 -2
  541. package/node_modules/@types/node/README.md +1 -1
  542. package/node_modules/@types/node/http2.d.ts +1 -0
  543. package/node_modules/@types/node/package.json +2 -2
  544. package/package.json +3 -1
  545. package/dist/ui/static/_next/static/RAzN8WLtYaktD-ZePowXl/_buildManifest.js +0 -1
  546. package/dist/ui/static/_next/static/chunks/18-ac3e3551b4e0ce8a.js +0 -1
  547. package/dist/ui/static/_next/static/chunks/258-e3b5ee46b0669967.js +0 -1
  548. package/dist/ui/static/_next/static/chunks/422-4c94c107b90d3ccc.js +0 -1
  549. package/dist/ui/static/_next/static/chunks/664-6d821dc1aacb6b48.js +0 -1
  550. package/dist/ui/static/_next/static/chunks/87c73c54-24122e7b92478d00.js +0 -1
  551. package/dist/ui/static/_next/static/chunks/982-abc19630e6305864.js +0 -1
  552. package/dist/ui/static/_next/static/chunks/app/_not-found/page-c4d800f366186be0.js +0 -1
  553. package/dist/ui/static/_next/static/chunks/app/launch/page-17ca39367f25f372.js +0 -1
  554. package/dist/ui/static/_next/static/chunks/app/layout-0f75a39edc90325d.js +0 -1
  555. package/dist/ui/static/_next/static/chunks/app/local-knowledge/capsule/page-87a2ea239308ed34.js +0 -1
  556. package/dist/ui/static/_next/static/chunks/app/local-knowledge/page-98bb7704fc7fd0ad.js +0 -1
  557. package/dist/ui/static/_next/static/chunks/app/memoriaviva/consolidation/page-f912263f1ee5d2dd.js +0 -1
  558. package/dist/ui/static/_next/static/chunks/app/memoriaviva/detail/page-fa590f135356e0af.js +0 -1
  559. package/dist/ui/static/_next/static/chunks/app/memoriaviva/page-b8555600c1113f14.js +0 -1
  560. package/dist/ui/static/_next/static/chunks/app/memoriaviva/review-queue/page-85cfbeb3598c0a36.js +0 -1
  561. package/dist/ui/static/_next/static/chunks/app/page-2881856ad25d9935.js +0 -1
  562. package/dist/ui/static/_next/static/chunks/framework-d8f01f7e25201916.js +0 -1
  563. package/dist/ui/static/_next/static/chunks/main-app-5b043f6c611974ae.js +0 -1
  564. package/dist/ui/static/_next/static/chunks/main-bc552b04f2b6dbe2.js +0 -1
  565. package/dist/ui/static/_next/static/chunks/pages/_app-2e239ff05bfdf6d6.js +0 -1
  566. package/dist/ui/static/_next/static/chunks/pages/_error-bda15e7831eec981.js +0 -1
  567. package/dist/ui/static/_next/static/chunks/webpack-0cfe6f51555ca84e.js +0 -1
  568. package/dist/ui/static/_next/static/css/eac94895f3edc5a5.css +0 -1
  569. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/scripted-answer-generator.d.ts +0 -6
  570. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/scripted-answer-generator.d.ts.map +0 -1
  571. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/scripted-answer-generator.js +0 -49
  572. /package/dist/ui/static/_next/static/chunks/{polyfills-42372ed130431b0a.js → 0cz1d0mv5g_q7.js} +0 -0
  573. /package/dist/ui/static/_next/static/{RAzN8WLtYaktD-ZePowXl → hR2gBQqCDKdPdSxBqZhqv}/_ssgManifest.js +0 -0
@@ -18,22 +18,25 @@
18
18
  // already persisted for completed documents are kept (the source-of-truth for resume is
19
19
  // the chunks/vectors tables, not the in-flight buffer).
20
20
  //
21
- // Force mode: deletes the capsule's pre-existing vector rows up front, then passes
22
- // `force=true` into the chunker so chunks are also re-emitted. Discovery's incremental
23
- // fast-path is bypassed by re-reading the bytes (the discovery layer already does the
24
- // content-hash compare for us when force=true the orchestrator deletes the vectors but
25
- // the documents row stays valid, so chunk-and-embed still re-runs).
21
+ // Force mode: passes `force=true` into the chunker per document so existing chunks are
22
+ // replaced from the current source text, then re-embeds. Discovery's incremental
23
+ // fast-path is bypassed (the skipped outcome is re-shaped to persisted in
24
+ // handleFileExtracted) so chunk-and-embed re-runs even for unchanged file hashes.
25
+ // Recovery mode (partial vector coverage, non-force): re-embeds using existing chunks
26
+ // only — the chunker runs with force=false so it reuses the already-correct chunk rows.
26
27
  import { randomUUID } from "node:crypto";
27
- import { verifyEmbeddingCapability } from "@oscharko-dev/keiko-model-gateway";
28
+ import { assertCompatibleEmbeddingIdentity, verifyEmbeddingCapability, } from "@oscharko-dev/keiko-model-gateway";
28
29
  import { chunkDocument } from "../chunking/chunker-runner.js";
29
- import { deleteChunksForDocument, hasStaleChunksForDocument } from "../chunking/chunker-persist.js";
30
+ import { countChunksForDocument, deleteChunksForDocument, hasStaleChunksForDocument, } from "../chunking/chunker-persist.js";
31
+ import { chunkingStrategyKey } from "../chunking/index.js";
30
32
  import { getCapsule, updateCapsuleState } from "../capsule-lifecycle.js";
31
33
  import { discoverAndExtract } from "../discovery/discovery-runner.js";
34
+ import { DEFAULT_DISCOVERY_OPTIONS } from "../discovery/index.js";
32
35
  import { deleteDocumentRow, listPersistedDocumentsForSource, readDocumentTextRow, updateDocumentStatusRow, } from "../discovery/persist.js";
33
36
  import { listCapsuleSources } from "../source-lifecycle.js";
34
37
  import { finalizeJobRow, isJobCancellationRequested, insertJobRow, updateJobCounters, } from "./job-persist.js";
35
38
  import { embedChunkBatch } from "./embedding-batcher.js";
36
- import { countVectorsForDocument, deleteVectorsForCapsule, deleteVectorsForDocument, selectChunksForDocument, } from "./vector-persist.js";
39
+ import { countVectorsForDocument, deleteVectorsForDocument, selectChunksForDocument, } from "./vector-persist.js";
37
40
  import { DEFAULT_INDEXING_BATCH_SIZE, DEFAULT_INDEXING_CONCURRENCY, IndexingError, } from "./types.js";
38
41
  // ─── Abort helper ─────────────────────────────────────────────────────────────
39
42
  // Reads `signal?.aborted` through a function call so TypeScript's control-flow analysis
@@ -55,6 +58,20 @@ function clampConcurrency(raw) {
55
58
  const v = raw ?? DEFAULT_INDEXING_CONCURRENCY;
56
59
  return Math.max(1, Math.min(DEFAULT_INDEXING_CONCURRENCY, Math.floor(v)));
57
60
  }
61
+ function clampDiscoveryInteger(raw, fallback) {
62
+ if (raw === undefined || !Number.isFinite(raw))
63
+ return fallback;
64
+ return Math.max(1, Math.min(fallback, Math.floor(raw)));
65
+ }
66
+ function resolvedDiscoveryOptions(state) {
67
+ const raw = state.options.discoveryOptions;
68
+ const base = {
69
+ maxDepth: clampDiscoveryInteger(raw?.maxDepth, DEFAULT_DISCOVERY_OPTIONS.maxDepth),
70
+ maxFiles: clampDiscoveryInteger(raw?.maxFiles, DEFAULT_DISCOVERY_OPTIONS.maxFiles),
71
+ };
72
+ const signal = raw?.signal ?? state.options.signal;
73
+ return signal === undefined ? base : { ...base, signal };
74
+ }
58
75
  // ─── Source resolution ────────────────────────────────────────────────────────
59
76
  function resolveSources(options, capsule) {
60
77
  const all = listCapsuleSources(options.store, capsule.id);
@@ -64,7 +81,14 @@ function resolveSources(options, capsule) {
64
81
  if (options.sourceIds === undefined)
65
82
  return all;
66
83
  const allow = new Set(options.sourceIds.map((s) => String(s)));
67
- return all.filter((s) => allow.has(String(s.id)));
84
+ if (allow.size === 0) {
85
+ throw new IndexingError("INVALID_OPTIONS", "sourceIds must contain at least one source id.");
86
+ }
87
+ const selected = all.filter((s) => allow.has(String(s.id)));
88
+ if (selected.length !== allow.size) {
89
+ throw new IndexingError("INVALID_OPTIONS", "sourceIds must reference sources attached to the target capsule.");
90
+ }
91
+ return selected;
68
92
  }
69
93
  function buildCounters(state) {
70
94
  return {
@@ -103,7 +127,8 @@ function markDocumentFailed(state, documentId) {
103
127
  }
104
128
  const SELECT_CHUNKS_WITH_OFFSETS_SQL = [
105
129
  "SELECT c.id, c.capsule_id, c.source_id, c.document_id, c.parsed_unit_id, c.order_index,",
106
- " pu.character_start AS char_start, pu.character_end AS char_end",
130
+ " COALESCE(c.character_start, pu.character_start) AS char_start,",
131
+ " COALESCE(c.character_end, pu.character_end) AS char_end",
107
132
  "FROM chunks AS c",
108
133
  "JOIN parsed_units AS pu ON pu.capsule_id = c.capsule_id AND pu.id = c.parsed_unit_id",
109
134
  "WHERE c.capsule_id = :c AND c.document_id = :d",
@@ -164,12 +189,17 @@ function readSourceText(state, source, relativePath) {
164
189
  real = state.options.workspaceFs.realPath(abs);
165
190
  }
166
191
  catch (cause) {
167
- throw new IndexingError("PERSISTENCE_FAILED", `source realPath failed before embedding: ${cause instanceof Error ? cause.message : String(cause)}`, { cause });
192
+ throw new IndexingError("PERSISTENCE_FAILED", "source text could not be read before embedding", { cause });
168
193
  }
169
194
  if (!isContained(absoluteRoot, real)) {
170
195
  throw new IndexingError("PERSISTENCE_FAILED", `source realpath escapes scope root before embedding: ${relativePath}`);
171
196
  }
172
- return state.options.workspaceFs.readFileUtf8(normaliseSep(real));
197
+ try {
198
+ return state.options.workspaceFs.readFileUtf8(normaliseSep(real));
199
+ }
200
+ catch (cause) {
201
+ throw new IndexingError("PERSISTENCE_FAILED", "source text could not be read before embedding", { cause });
202
+ }
173
203
  }
174
204
  function resolveChunkSourceText(state, documentId, source, relativePath) {
175
205
  const persistedText = readDocumentTextRow(state.options.store._internal.db, state.capsule.id, documentId);
@@ -188,6 +218,14 @@ function sliceIntoBatches(items, batchSize) {
188
218
  }
189
219
  return out;
190
220
  }
221
+ function cancellationError() {
222
+ return { code: "CANCELLED", message: "indexing aborted via AbortSignal" };
223
+ }
224
+ function recordCancellationIfRequested(state, errors) {
225
+ if (cancellationRequested(state) && !errors.some((error) => error.code === "CANCELLED")) {
226
+ errors.push(cancellationError());
227
+ }
228
+ }
191
229
  async function embedDocumentChunks(state, documentId, source, relativePath) {
192
230
  // Text-like documents are re-read from disk; binary parsers persist a normalized text
193
231
  // projection so chunk slicing stays aligned with extracted content.
@@ -227,6 +265,7 @@ async function embedDocumentChunks(state, documentId, source, relativePath) {
227
265
  if (cancellationRequested(state))
228
266
  break;
229
267
  }
268
+ recordCancellationIfRequested(state, errors);
230
269
  return { vectorCount, errors, lastChunkId };
231
270
  }
232
271
  // ─── Document handlers ────────────────────────────────────────────────────────
@@ -235,6 +274,8 @@ function handleExtractionSkipped(state, result) {
235
274
  return {
236
275
  kind: "document-skipped",
237
276
  jobId: state.jobId,
277
+ capsuleId: state.capsule.id,
278
+ sourceId: result.sourceId,
238
279
  documentId: result.outcome.kind === "skipped" ? result.outcome.document.id : "",
239
280
  reason: "unchanged",
240
281
  };
@@ -252,6 +293,8 @@ function handleExtractionFailed(state, result) {
252
293
  return {
253
294
  kind: "document-failed",
254
295
  jobId: state.jobId,
296
+ capsuleId: state.capsule.id,
297
+ sourceId: result.sourceId,
255
298
  ...(result.outcome.kind === "failed" ? { documentId: result.outcome.document.id } : {}),
256
299
  relativePath: result.relativePath,
257
300
  error,
@@ -265,11 +308,24 @@ function resolveChunkCount(state, documentId, skippedExisting, freshChunkIds) {
265
308
  return selectChunksForDocument(state.options.store._internal.db, state.capsule.id, documentId)
266
309
  .length;
267
310
  }
268
- function chunkPersistedDocument(state, result) {
311
+ function embeddingCoverage(state, documentId) {
312
+ return {
313
+ chunkCount: countChunksForDocument(state.options.store._internal.db, state.capsule.id, documentId),
314
+ vectorCount: countVectorsForDocument(state.options.store._internal.db, state.capsule.id, documentId),
315
+ };
316
+ }
317
+ function hasCompleteVectorCoverage(state, documentId) {
318
+ const coverage = embeddingCoverage(state, documentId);
319
+ return coverage.chunkCount > 0 && coverage.vectorCount === coverage.chunkCount;
320
+ }
321
+ function persistedDocumentId(result) {
269
322
  if (result.outcome.kind !== "persisted") {
270
323
  throw new IndexingError("INVALID_OPTIONS", "chunkPersistedDocument called with non-persisted result");
271
324
  }
272
- const documentId = result.outcome.document.id;
325
+ return result.outcome.document.id;
326
+ }
327
+ function chunkPersistedDocument(state, result) {
328
+ const documentId = persistedDocumentId(result);
273
329
  const sourceText = resolveChunkSourceText(state, documentId, sourceForResult(state, result), result.relativePath);
274
330
  const chunkResult = chunkDocument(state.options.store, {
275
331
  capsuleId: state.capsule.id,
@@ -281,15 +337,29 @@ function chunkPersistedDocument(state, result) {
281
337
  }, state.options.chunkingOptions);
282
338
  const chunkCount = resolveChunkCount(state, documentId, chunkResult.skippedExisting, chunkResult.chunkIds);
283
339
  return {
284
- events: chunkedDocumentEvents(state.jobId, documentId, result.relativePath, chunkCount),
340
+ events: chunkedDocumentEvents(state, result.sourceId, documentId, result.relativePath, chunkCount),
285
341
  documentId,
286
342
  chunkCount,
287
343
  };
288
344
  }
289
- function chunkedDocumentEvents(jobId, documentId, relativePath, chunkCount) {
345
+ function chunkedDocumentEvents(state, sourceId, documentId, relativePath, chunkCount) {
290
346
  return [
291
- { kind: "document-extracted", jobId, documentId, relativePath },
292
- { kind: "document-chunked", jobId, documentId, chunkCount },
347
+ {
348
+ kind: "document-extracted",
349
+ jobId: state.jobId,
350
+ capsuleId: state.capsule.id,
351
+ sourceId,
352
+ documentId,
353
+ relativePath,
354
+ },
355
+ {
356
+ kind: "document-chunked",
357
+ jobId: state.jobId,
358
+ capsuleId: state.capsule.id,
359
+ sourceId,
360
+ documentId,
361
+ chunkCount,
362
+ },
293
363
  ];
294
364
  }
295
365
  function sourceForResult(state, result) {
@@ -305,27 +375,30 @@ function sourceForResult(state, result) {
305
375
  // Incremental fast-path: skips embedding when vectors already exist (non-force run), or
306
376
  // deletes prior vectors to prepare for a forced re-embed.
307
377
  // Returns a PersistedHandling to short-circuit when already-embedded, undefined to continue.
308
- function applyIncrementalFastPath(state, documentId) {
309
- const staleChunks = hasStaleChunksForDocument(state.options.store._internal.db, state.capsule.id, documentId);
378
+ function applyIncrementalFastPath(state, sourceId, documentId) {
379
+ const staleChunks = hasStaleChunksForDocument(state.options.store._internal.db, state.capsule.id, documentId, chunkingStrategyKey(state.options.chunkingOptions));
310
380
  if (state.options.force !== true) {
311
- // Incremental fast-path #2: if vectors already exist for this document AND not in force
312
- // mode, skip the embedding step entirely. The chunker is also a no-op in this case.
313
- const existing = countVectorsForDocument(state.options.store._internal.db, state.capsule.id, documentId);
314
- if (existing > 0 && !staleChunks) {
381
+ const coverage = embeddingCoverage(state, documentId);
382
+ if (coverage.chunkCount > 0 && coverage.vectorCount === coverage.chunkCount && !staleChunks) {
315
383
  state.skippedDocuments += 1;
316
384
  return {
317
385
  events: [
318
- { kind: "document-skipped", jobId: state.jobId, documentId, reason: "already-embedded" },
386
+ {
387
+ kind: "document-skipped",
388
+ jobId: state.jobId,
389
+ capsuleId: state.capsule.id,
390
+ sourceId,
391
+ documentId,
392
+ reason: "already-embedded",
393
+ },
319
394
  ],
320
395
  };
321
396
  }
322
- if (existing > 0 && staleChunks) {
397
+ if (coverage.vectorCount > 0) {
323
398
  deleteVectorsForDocument(state.options.store._internal.db, state.capsule.id, documentId);
324
399
  }
325
400
  return undefined;
326
401
  }
327
- // Force mode: tear down prior vectors so the re-embed is the only surviving set.
328
- deleteVectorsForDocument(state.options.store._internal.db, state.capsule.id, documentId);
329
402
  return undefined;
330
403
  }
331
404
  // Runs the chunker and returns its result, or a PersistedHandling failure event on throw.
@@ -333,7 +406,7 @@ function tryChunkDocument(state, result, documentId) {
333
406
  try {
334
407
  return { chunked: chunkPersistedDocument(state, result) };
335
408
  }
336
- catch (cause) {
409
+ catch {
337
410
  if (cancellationRequested(state)) {
338
411
  clearDocumentArtifacts(state, documentId, { deleteChunks: true });
339
412
  return { events: [] };
@@ -343,7 +416,7 @@ function tryChunkDocument(state, result, documentId) {
343
416
  markDocumentFailed(state, documentId);
344
417
  const error = {
345
418
  code: "CHUNKING_FAILED",
346
- message: cause instanceof Error ? cause.message : String(cause),
419
+ message: "document chunking failed",
347
420
  };
348
421
  state.lastError = error;
349
422
  return {
@@ -351,6 +424,8 @@ function tryChunkDocument(state, result, documentId) {
351
424
  {
352
425
  kind: "document-failed",
353
426
  jobId: state.jobId,
427
+ capsuleId: state.capsule.id,
428
+ sourceId: result.sourceId,
354
429
  documentId,
355
430
  relativePath: result.relativePath,
356
431
  error,
@@ -359,7 +434,7 @@ function tryChunkDocument(state, result, documentId) {
359
434
  };
360
435
  }
361
436
  }
362
- function appendDocumentFailure(state, events, documentId, relativePath, error, options) {
437
+ function appendDocumentFailure(state, events, sourceId, documentId, relativePath, error, options) {
363
438
  state.failedDocuments += 1;
364
439
  clearDocumentArtifacts(state, documentId, options);
365
440
  markDocumentFailed(state, documentId);
@@ -367,13 +442,15 @@ function appendDocumentFailure(state, events, documentId, relativePath, error, o
367
442
  events.push({
368
443
  kind: "document-failed",
369
444
  jobId: state.jobId,
445
+ capsuleId: state.capsule.id,
446
+ sourceId,
370
447
  documentId,
371
448
  relativePath,
372
449
  error,
373
450
  });
374
451
  return { events };
375
452
  }
376
- function completeEmbeddedDocument(state, events, documentId, embedResult) {
453
+ function completeEmbeddedDocument(state, events, sourceId, documentId, embedResult) {
377
454
  state.processedDocuments += 1;
378
455
  state.vectorsPersisted += embedResult.vectorCount;
379
456
  if (embedResult.lastChunkId !== null)
@@ -381,6 +458,8 @@ function completeEmbeddedDocument(state, events, documentId, embedResult) {
381
458
  events.push({
382
459
  kind: "document-embedded",
383
460
  jobId: state.jobId,
461
+ capsuleId: state.capsule.id,
462
+ sourceId,
384
463
  documentId,
385
464
  vectorCount: embedResult.vectorCount,
386
465
  resumeToken: embedResult.lastChunkId ?? `${String(documentId)}#empty`,
@@ -393,16 +472,15 @@ function isCancellationOnlyEmbedResult(state, embedResult) {
393
472
  embedResult.errors.every((error) => error.code === "CANCELLED"));
394
473
  }
395
474
  // Maps an EmbedDocumentResult into PersistedHandling events, mutating run-state counters.
396
- function applyEmbedResult(state, documentId, relativePath, priorEvents, embedResult) {
475
+ function applyEmbedResult(state, sourceId, documentId, relativePath, priorEvents, embedResult) {
397
476
  const events = [...priorEvents];
398
477
  if (isCancellationOnlyEmbedResult(state, embedResult)) {
399
- clearDocumentArtifacts(state, documentId, { deleteChunks: false });
400
478
  return { events };
401
479
  }
402
480
  const identityErr = embedResult.errors.find((e) => e.code === "INCOMPATIBLE_EMBEDDING_IDENTITY");
403
481
  if (identityErr !== undefined) {
404
482
  return {
405
- ...appendDocumentFailure(state, events, documentId, relativePath, identityErr, {
483
+ ...appendDocumentFailure(state, events, sourceId, documentId, relativePath, identityErr, {
406
484
  deleteChunks: false,
407
485
  }),
408
486
  identityFailure: identityErr,
@@ -413,89 +491,78 @@ function applyEmbedResult(state, documentId, relativePath, priorEvents, embedRes
413
491
  code: "EMBEDDING_ADAPTER_FAILED",
414
492
  message: "embedding adapter failed",
415
493
  };
416
- return appendDocumentFailure(state, events, documentId, relativePath, firstErr, {
494
+ return appendDocumentFailure(state, events, sourceId, documentId, relativePath, firstErr, {
417
495
  deleteChunks: false,
418
496
  });
419
497
  }
420
- return completeEmbeddedDocument(state, events, documentId, embedResult);
498
+ return completeEmbeddedDocument(state, events, sourceId, documentId, embedResult);
421
499
  }
422
- // Wraps the chunk-then-embed pipeline for a single persisted document.
423
- async function handlePersistedDocument(state, result) {
500
+ function* persistedEvents(handling) {
501
+ for (const event of handling.events) {
502
+ yield event;
503
+ }
504
+ }
505
+ // Wraps the chunk-then-embed pipeline for a single persisted document. Extraction/chunking
506
+ // events are yielded before awaiting embeddings, so progress consumers see pre-model work
507
+ // immediately instead of only after all embedding batches finish.
508
+ async function* handlePersistedDocument(state, result) {
424
509
  const documentId = result.outcome.kind === "persisted" ? result.outcome.document.id : null;
425
510
  if (documentId === null)
426
- return { events: [] };
511
+ return;
427
512
  if (result.outcome.document.status === "unsupported") {
428
513
  clearDocumentArtifacts(state, documentId, { deleteChunks: true });
429
514
  state.skippedDocuments += 1;
430
- return {
431
- events: [
432
- {
433
- kind: "document-extracted",
434
- jobId: state.jobId,
435
- documentId,
436
- relativePath: result.relativePath,
437
- },
438
- { kind: "document-skipped", jobId: state.jobId, documentId, reason: "unsupported" },
439
- ],
515
+ yield {
516
+ kind: "document-extracted",
517
+ jobId: state.jobId,
518
+ capsuleId: state.capsule.id,
519
+ sourceId: result.sourceId,
520
+ documentId,
521
+ relativePath: result.relativePath,
522
+ };
523
+ yield {
524
+ kind: "document-skipped",
525
+ jobId: state.jobId,
526
+ capsuleId: state.capsule.id,
527
+ sourceId: result.sourceId,
528
+ documentId,
529
+ reason: "unsupported",
440
530
  };
531
+ return;
532
+ }
533
+ const fastPath = applyIncrementalFastPath(state, result.sourceId, documentId);
534
+ if (fastPath !== undefined) {
535
+ yield* persistedEvents(fastPath);
536
+ return;
441
537
  }
442
- const fastPath = applyIncrementalFastPath(state, documentId);
443
- if (fastPath !== undefined)
444
- return fastPath;
445
538
  const chunkStep = tryChunkDocument(state, result, documentId);
446
- if (!("chunked" in chunkStep))
447
- return chunkStep;
539
+ if (!("chunked" in chunkStep)) {
540
+ yield* persistedEvents(chunkStep);
541
+ return;
542
+ }
543
+ yield* chunkStep.chunked.events;
544
+ persistJobProgress(state);
448
545
  const embedResult = await embedDocumentChunks(state, documentId, sourceForResult(state, result), result.relativePath);
449
- return applyEmbedResult(state, documentId, result.relativePath, chunkStep.chunked.events, embedResult);
546
+ yield* persistedEvents(applyEmbedResult(state, result.sourceId, documentId, result.relativePath, [], embedResult));
450
547
  }
451
- // ─── Per-source pipeline ──────────────────────────────────────────────────────
452
- async function* runOneSource(state, source) {
453
- const stream = discoverAndExtract({
454
- fs: state.options.workspaceFs,
455
- store: state.options.store,
456
- parserRegistry: state.options.parserRegistry,
457
- }, sourceDiscoveryParams(state, source));
458
- const progress = {
459
- cancelled: false,
460
- sawScopeError: false,
461
- completed: false,
462
- discoveredPaths: new Set(),
463
- };
464
- for await (const evt of stream) {
465
- observeSourceEvent(progress, evt);
466
- if (cancellationRequested(state)) {
467
- progress.cancelled = true;
468
- break;
469
- }
470
- const events = await handleDiscoveryEvent(state, evt);
471
- if (events.length > 0) {
472
- persistJobProgress(state);
473
- }
474
- for (const e of events) {
475
- yield e;
476
- if (e.kind === "document-failed" && e.error.code === "INCOMPATIBLE_EMBEDDING_IDENTITY") {
477
- return;
478
- }
479
- }
480
- // After yielding a batch we re-check the signal — the consumer's awaiting iterator
481
- // may have aborted between events.
482
- if (cancellationRequested(state)) {
483
- progress.cancelled = true;
484
- break;
485
- }
486
- }
487
- finalizeSourceRun(state, source, progress);
548
+ function* handleExtractionSkippedEvents(state, result) {
549
+ yield handleExtractionSkipped(state, result);
550
+ }
551
+ function* handleExtractionFailedEvents(state, result) {
552
+ yield handleExtractionFailed(state, result);
488
553
  }
489
554
  // Routes a file-extracted event: force-skipped docs are re-shaped to persisted so the
490
555
  // standard chunk-and-embed pipeline runs on them.
491
- async function handleFileExtracted(state, result) {
556
+ async function* handleFileExtracted(state, result) {
492
557
  if (result.outcome.kind === "skipped") {
493
558
  // In force mode, an "unchanged" document still needs chunk-and-embed because the
494
- // orchestrator deleted the vector rows at job-started. Re-shape the skipped outcome
495
- // as a persisted outcome (the document row exists and is valid) so the standard
496
- // pipeline runs. Outside force mode, surface the skip as-is.
497
- const staleChunks = hasStaleChunksForDocument(state.options.store._internal.db, state.capsule.id, result.outcome.document.id);
498
- if (state.options.force === true || staleChunks) {
559
+ // caller explicitly requested a fresh embedding pass. Re-shape the skipped outcome as
560
+ // a persisted outcome (the document row exists and is valid) so the standard pipeline
561
+ // runs. Outside force/recovery mode, surface the skip as-is.
562
+ const staleChunks = hasStaleChunksForDocument(state.options.store._internal.db, state.capsule.id, result.outcome.document.id, chunkingStrategyKey(state.options.chunkingOptions));
563
+ const missingVectors = result.outcome.document.status === "extracted" &&
564
+ !hasCompleteVectorCoverage(state, result.outcome.document.id);
565
+ if (state.options.force === true || staleChunks || missingVectors) {
499
566
  const synthetic = {
500
567
  capsuleId: result.capsuleId,
501
568
  sourceId: result.sourceId,
@@ -503,28 +570,30 @@ async function handleFileExtracted(state, result) {
503
570
  outcome: { kind: "persisted", document: result.outcome.document },
504
571
  diagnostics: result.diagnostics,
505
572
  };
506
- const handled = await handlePersistedDocument(state, synthetic);
507
- return handled.events;
573
+ yield* handlePersistedDocument(state, synthetic);
574
+ return;
508
575
  }
509
- return [handleExtractionSkipped(state, result)];
576
+ yield* handleExtractionSkippedEvents(state, result);
577
+ return;
510
578
  }
511
579
  if (result.outcome.kind === "failed") {
512
- return [handleExtractionFailed(state, result)];
580
+ yield* handleExtractionFailedEvents(state, result);
581
+ return;
513
582
  }
514
- const handled = await handlePersistedDocument(state, result);
515
- return handled.events;
583
+ yield* handlePersistedDocument(state, result);
516
584
  }
517
- async function handleDiscoveryEvent(state, evt) {
585
+ async function* handleDiscoveryEvent(state, source, evt) {
518
586
  if (evt.kind === "file-discovered") {
519
587
  state.totalDocuments += 1;
520
- return [
521
- {
522
- kind: "document-discovered",
523
- jobId: state.jobId,
524
- relativePath: evt.relativePath,
525
- sizeBytes: evt.sizeBytes,
526
- },
527
- ];
588
+ yield {
589
+ kind: "document-discovered",
590
+ jobId: state.jobId,
591
+ capsuleId: state.capsule.id,
592
+ sourceId: source.id,
593
+ relativePath: evt.relativePath,
594
+ sizeBytes: evt.sizeBytes,
595
+ };
596
+ return;
528
597
  }
529
598
  if (evt.kind === "scope-error") {
530
599
  state.failedDocuments += 1;
@@ -533,30 +602,73 @@ async function handleDiscoveryEvent(state, evt) {
533
602
  message: evt.error.message,
534
603
  };
535
604
  state.lastError = err;
536
- const failed = {
605
+ yield {
537
606
  kind: "document-failed",
538
607
  jobId: state.jobId,
608
+ capsuleId: state.capsule.id,
609
+ sourceId: source.id,
539
610
  ...(evt.error.relativePath !== undefined ? { relativePath: evt.error.relativePath } : {}),
540
611
  error: err,
541
612
  };
542
- return [failed];
613
+ return;
543
614
  }
544
615
  if (evt.kind === "cancelled" || evt.kind === "completed") {
545
616
  // No-op at this level: the outer loop drives terminal events.
546
- return [];
617
+ return;
547
618
  }
548
619
  // evt.kind === "file-extracted"
549
- return handleFileExtracted(state, evt.result);
620
+ yield* handleFileExtracted(state, evt.result);
621
+ }
622
+ function shouldStopAfterEvent(event) {
623
+ return event.kind === "document-failed" && event.error.code === "INCOMPATIBLE_EMBEDDING_IDENTITY";
624
+ }
625
+ async function* streamDiscoveryEvent(state, source, evt) {
626
+ for await (const event of handleDiscoveryEvent(state, source, evt)) {
627
+ persistJobProgress(state);
628
+ yield event;
629
+ if (shouldStopAfterEvent(event)) {
630
+ return true;
631
+ }
632
+ }
633
+ return false;
634
+ }
635
+ // ─── Per-source pipeline ──────────────────────────────────────────────────────
636
+ async function* runOneSource(state, source) {
637
+ const stream = discoverAndExtract({
638
+ fs: state.options.workspaceFs,
639
+ store: state.options.store,
640
+ parserRegistry: state.options.parserRegistry,
641
+ }, sourceDiscoveryParams(state, source));
642
+ const progress = {
643
+ cancelled: false,
644
+ sawScopeError: false,
645
+ completed: false,
646
+ discoveredPaths: new Set(),
647
+ };
648
+ for await (const evt of stream) {
649
+ observeSourceEvent(progress, evt);
650
+ if (cancellationRequested(state)) {
651
+ progress.cancelled = true;
652
+ break;
653
+ }
654
+ const shouldStop = yield* streamDiscoveryEvent(state, source, evt);
655
+ if (shouldStop) {
656
+ return;
657
+ }
658
+ // After yielding a batch we re-check the signal — the consumer's awaiting iterator
659
+ // may have aborted between events.
660
+ if (cancellationRequested(state)) {
661
+ progress.cancelled = true;
662
+ break;
663
+ }
664
+ }
665
+ finalizeSourceRun(state, source, progress);
550
666
  }
551
667
  function sourceDiscoveryParams(state, source) {
552
668
  return {
553
669
  capsuleId: state.capsule.id,
554
670
  source,
555
- ...(state.options.discoveryOptions !== undefined
556
- ? { discovery: state.options.discoveryOptions }
557
- : state.options.signal !== undefined
558
- ? { discovery: { maxDepth: 12, maxFiles: 5_000, signal: state.options.signal } }
559
- : {}),
671
+ discovery: resolvedDiscoveryOptions(state),
560
672
  };
561
673
  }
562
674
  function observeSourceEvent(progress, evt) {
@@ -589,6 +701,8 @@ function finalizeSourceRun(state, source, progress) {
589
701
  return;
590
702
  if (!progress.completed || progress.sawScopeError)
591
703
  return;
704
+ if (progress.discoveredPaths.size >= resolvedDiscoveryOptions(state).maxFiles)
705
+ return;
592
706
  pruneDeletedSourceDocuments(state, source, progress.discoveredPaths);
593
707
  }
594
708
  // ─── Capsule resolution + job lifecycle ───────────────────────────────────────
@@ -646,8 +760,15 @@ async function verifyEmbeddingPreflight(state) {
646
760
  expectedDimensions: state.capsule.embeddingModelIdentity.vectorDimensions,
647
761
  ...(state.options.signal !== undefined ? { signal: state.options.signal } : {}),
648
762
  });
649
- if (result.ok)
650
- return undefined;
763
+ if (result.ok) {
764
+ const compatibility = assertCompatibleEmbeddingIdentity(state.capsule.embeddingModelIdentity, result.identity);
765
+ if (compatibility.ok)
766
+ return undefined;
767
+ return {
768
+ code: "INCOMPATIBLE_EMBEDDING_IDENTITY",
769
+ message: compatibility.safeMessage,
770
+ };
771
+ }
651
772
  return {
652
773
  code: result.reason === "dimension-mismatch"
653
774
  ? "INCOMPATIBLE_EMBEDDING_IDENTITY"
@@ -662,7 +783,7 @@ async function verifyEmbeddingPreflight(state) {
662
783
  }
663
784
  return {
664
785
  code: "EMBEDDING_ADAPTER_FAILED",
665
- message: cause instanceof Error ? cause.message : String(cause),
786
+ message: "embedding capability preflight failed before indexing started",
666
787
  };
667
788
  }
668
789
  }
@@ -681,6 +802,9 @@ function persistStartedJob(state, sources) {
681
802
  // run. The events stream remains the source of truth.
682
803
  }
683
804
  }
805
+ function sourceIdsForState(state) {
806
+ return [...state.sourcesById.values()].map((source) => source.id);
807
+ }
684
808
  function emitJobStarted(state, sources) {
685
809
  const event = {
686
810
  kind: "job-started",
@@ -692,6 +816,7 @@ function emitJobStarted(state, sources) {
692
816
  state.options.auditSink?.emit({
693
817
  kind: "indexing-job-started",
694
818
  capsuleId: state.capsule.id,
819
+ sourceIds: sources.map((source) => source.id),
695
820
  jobId: state.jobId,
696
821
  occurredAt: state.startedAt,
697
822
  });
@@ -732,11 +857,6 @@ export async function* runIndexingJob(options) {
732
857
  yield* finalize(state, preflightFailure);
733
858
  return;
734
859
  }
735
- // Force mode: tear down ALL vectors for the capsule up front. Per-document teardown
736
- // still runs in handlePersistedDocument as a defence-in-depth measure.
737
- if (options.force === true) {
738
- deleteVectorsForCapsule(state.options.store._internal.db, capsule.id);
739
- }
740
860
  const identityFailure = yield* runSourcesWithProgress(state, sources);
741
861
  yield* finalize(state, identityFailure);
742
862
  }
@@ -792,6 +912,7 @@ function* finalize(state, fatalFailure) {
792
912
  state.options.auditSink?.emit({
793
913
  kind: "indexing-job-failed",
794
914
  capsuleId: state.capsule.id,
915
+ sourceIds: sourceIdsForState(state),
795
916
  jobId: state.jobId,
796
917
  errorCode: err.code,
797
918
  occurredAt: finishedAt,
@@ -802,6 +923,7 @@ function* finalize(state, fatalFailure) {
802
923
  state.options.auditSink?.emit({
803
924
  kind: "indexing-job-completed",
804
925
  capsuleId: state.capsule.id,
926
+ sourceIds: sourceIdsForState(state),
805
927
  jobId: state.jobId,
806
928
  processedDocuments: result.processedDocuments,
807
929
  failedDocuments: result.failedDocuments,