@oscharko-dev/keiko 0.2.0-beta.2 → 0.2.0-beta.4

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