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

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 (622) hide show
  1. package/README.md +39 -14
  2. package/dist/ui/csp-hashes.json +17 -22
  3. package/dist/ui/static/404.html +1 -1
  4. package/dist/ui/static/__next.__PAGE__.txt +2 -2
  5. package/dist/ui/static/__next._full.txt +3 -3
  6. package/dist/ui/static/__next._head.txt +1 -1
  7. package/dist/ui/static/__next._index.txt +2 -2
  8. package/dist/ui/static/__next._tree.txt +2 -2
  9. package/dist/ui/static/_next/static/chunks/0-qhhdvxg2j_y.js +1 -0
  10. package/dist/ui/static/_next/static/chunks/0ke4ratkgvcxo.css +1 -0
  11. package/dist/ui/static/_next/static/chunks/0xhu-pfsyvbmx.js +5 -0
  12. package/dist/ui/static/_next/static/chunks/3vf3oh2-sl2nc.js +1 -0
  13. package/dist/ui/static/_next/static/chunks/3wmd4-2vznp2g.js +106 -0
  14. package/dist/ui/static/_next/static/chunks/turbopack-18q50fp2-1qbt.js +1 -0
  15. package/dist/ui/static/_not-found/__next._full.txt +2 -2
  16. package/dist/ui/static/_not-found/__next._head.txt +1 -1
  17. package/dist/ui/static/_not-found/__next._index.txt +2 -2
  18. package/dist/ui/static/_not-found/__next._not-found.__PAGE__.txt +1 -1
  19. package/dist/ui/static/_not-found/__next._not-found.txt +1 -1
  20. package/dist/ui/static/_not-found/__next._tree.txt +2 -2
  21. package/dist/ui/static/_not-found.html +1 -1
  22. package/dist/ui/static/_not-found.txt +2 -2
  23. package/dist/ui/static/index.html +1 -1
  24. package/dist/ui/static/index.txt +3 -3
  25. package/dist/ui/static/launch/__next._full.txt +3 -3
  26. package/dist/ui/static/launch/__next._head.txt +1 -1
  27. package/dist/ui/static/launch/__next._index.txt +2 -2
  28. package/dist/ui/static/launch/__next._tree.txt +2 -2
  29. package/dist/ui/static/launch/__next.launch.__PAGE__.txt +2 -2
  30. package/dist/ui/static/launch/__next.launch.txt +1 -1
  31. package/dist/ui/static/launch.html +1 -1
  32. package/dist/ui/static/launch.txt +3 -3
  33. package/dist/ui/static/local-knowledge/__next._full.txt +3 -3
  34. package/dist/ui/static/local-knowledge/__next._head.txt +1 -1
  35. package/dist/ui/static/local-knowledge/__next._index.txt +2 -2
  36. package/dist/ui/static/local-knowledge/__next._tree.txt +2 -2
  37. package/dist/ui/static/local-knowledge/__next.local-knowledge.__PAGE__.txt +2 -2
  38. package/dist/ui/static/local-knowledge/__next.local-knowledge.txt +1 -1
  39. package/dist/ui/static/local-knowledge/capsule/__next._full.txt +3 -3
  40. package/dist/ui/static/local-knowledge/capsule/__next._head.txt +1 -1
  41. package/dist/ui/static/local-knowledge/capsule/__next._index.txt +2 -2
  42. package/dist/ui/static/local-knowledge/capsule/__next._tree.txt +2 -2
  43. package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.capsule.__PAGE__.txt +2 -2
  44. package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.capsule.txt +1 -1
  45. package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.txt +1 -1
  46. package/dist/ui/static/local-knowledge/capsule.html +1 -1
  47. package/dist/ui/static/local-knowledge/capsule.txt +3 -3
  48. package/dist/ui/static/local-knowledge.html +1 -1
  49. package/dist/ui/static/local-knowledge.txt +3 -3
  50. package/dist/ui/static/memoriaviva/__next._full.txt +6 -6
  51. package/dist/ui/static/memoriaviva/__next._head.txt +1 -1
  52. package/dist/ui/static/memoriaviva/__next._index.txt +2 -2
  53. package/dist/ui/static/memoriaviva/__next._tree.txt +2 -2
  54. package/dist/ui/static/memoriaviva/__next.memoriaviva.__PAGE__.txt +4 -4
  55. package/dist/ui/static/memoriaviva/__next.memoriaviva.txt +1 -1
  56. package/dist/ui/static/memoriaviva/consolidation/__next._full.txt +4 -4
  57. package/dist/ui/static/memoriaviva/consolidation/__next._head.txt +1 -1
  58. package/dist/ui/static/memoriaviva/consolidation/__next._index.txt +2 -2
  59. package/dist/ui/static/memoriaviva/consolidation/__next._tree.txt +2 -2
  60. package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.consolidation.__PAGE__.txt +2 -2
  61. package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.consolidation.txt +1 -1
  62. package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.txt +1 -1
  63. package/dist/ui/static/memoriaviva/consolidation.html +1 -1
  64. package/dist/ui/static/memoriaviva/consolidation.txt +4 -4
  65. package/dist/ui/static/memoriaviva/detail/__next._full.txt +6 -6
  66. package/dist/ui/static/memoriaviva/detail/__next._head.txt +1 -1
  67. package/dist/ui/static/memoriaviva/detail/__next._index.txt +2 -2
  68. package/dist/ui/static/memoriaviva/detail/__next._tree.txt +2 -2
  69. package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.detail.__PAGE__.txt +4 -4
  70. package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.detail.txt +1 -1
  71. package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.txt +1 -1
  72. package/dist/ui/static/memoriaviva/detail.html +1 -1
  73. package/dist/ui/static/memoriaviva/detail.txt +6 -6
  74. package/dist/ui/static/memoriaviva/review-queue/__next._full.txt +4 -4
  75. package/dist/ui/static/memoriaviva/review-queue/__next._head.txt +1 -1
  76. package/dist/ui/static/memoriaviva/review-queue/__next._index.txt +2 -2
  77. package/dist/ui/static/memoriaviva/review-queue/__next._tree.txt +2 -2
  78. package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.review-queue.__PAGE__.txt +2 -2
  79. package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.review-queue.txt +1 -1
  80. package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.txt +1 -1
  81. package/dist/ui/static/memoriaviva/review-queue.html +1 -1
  82. package/dist/ui/static/memoriaviva/review-queue.txt +4 -4
  83. package/dist/ui/static/memoriaviva.html +1 -1
  84. package/dist/ui/static/memoriaviva.txt +6 -6
  85. package/node_modules/@oscharko-dev/keiko-cli/dist/.tsbuildinfo +1 -1
  86. package/node_modules/@oscharko-dev/keiko-cli/dist/doctor.d.ts +24 -0
  87. package/node_modules/@oscharko-dev/keiko-cli/dist/doctor.d.ts.map +1 -0
  88. package/node_modules/@oscharko-dev/keiko-cli/dist/doctor.js +108 -0
  89. package/node_modules/@oscharko-dev/keiko-cli/dist/evaluate.d.ts.map +1 -1
  90. package/node_modules/@oscharko-dev/keiko-cli/dist/evaluate.js +7 -4
  91. package/node_modules/@oscharko-dev/keiko-cli/dist/index.d.ts +1 -0
  92. package/node_modules/@oscharko-dev/keiko-cli/dist/index.d.ts.map +1 -1
  93. package/node_modules/@oscharko-dev/keiko-cli/dist/index.js +1 -0
  94. package/node_modules/@oscharko-dev/keiko-cli/dist/init.d.ts +2 -2
  95. package/node_modules/@oscharko-dev/keiko-cli/dist/init.d.ts.map +1 -1
  96. package/node_modules/@oscharko-dev/keiko-cli/dist/init.js +4 -4
  97. package/node_modules/@oscharko-dev/keiko-cli/dist/install-layout.d.ts +6 -0
  98. package/node_modules/@oscharko-dev/keiko-cli/dist/install-layout.d.ts.map +1 -0
  99. package/node_modules/@oscharko-dev/keiko-cli/dist/install-layout.js +24 -0
  100. package/node_modules/@oscharko-dev/keiko-cli/dist/launcher.d.ts.map +1 -1
  101. package/node_modules/@oscharko-dev/keiko-cli/dist/launcher.js +5 -7
  102. package/node_modules/@oscharko-dev/keiko-cli/dist/lifecycle.d.ts +1 -0
  103. package/node_modules/@oscharko-dev/keiko-cli/dist/lifecycle.d.ts.map +1 -1
  104. package/node_modules/@oscharko-dev/keiko-cli/dist/lifecycle.js +75 -30
  105. package/node_modules/@oscharko-dev/keiko-cli/dist/memory.d.ts +3 -0
  106. package/node_modules/@oscharko-dev/keiko-cli/dist/memory.d.ts.map +1 -1
  107. package/node_modules/@oscharko-dev/keiko-cli/dist/memory.js +76 -7
  108. package/node_modules/@oscharko-dev/keiko-cli/dist/run.d.ts.map +1 -1
  109. package/node_modules/@oscharko-dev/keiko-cli/dist/run.js +50 -2
  110. package/node_modules/@oscharko-dev/keiko-cli/dist/runner.d.ts.map +1 -1
  111. package/node_modules/@oscharko-dev/keiko-cli/dist/runner.js +20 -4
  112. package/node_modules/@oscharko-dev/keiko-cli/dist/ui.d.ts +1 -1
  113. package/node_modules/@oscharko-dev/keiko-cli/dist/ui.d.ts.map +1 -1
  114. package/node_modules/@oscharko-dev/keiko-cli/dist/ui.js +17 -14
  115. package/node_modules/@oscharko-dev/keiko-cli/package.json +1 -1
  116. package/node_modules/@oscharko-dev/keiko-contracts/dist/.tsbuildinfo +1 -1
  117. package/node_modules/@oscharko-dev/keiko-contracts/dist/bff-wire.d.ts +7 -0
  118. package/node_modules/@oscharko-dev/keiko-contracts/dist/bff-wire.d.ts.map +1 -1
  119. package/node_modules/@oscharko-dev/keiko-contracts/dist/connected-context.d.ts.map +1 -1
  120. package/node_modules/@oscharko-dev/keiko-contracts/dist/connected-context.js +1 -2
  121. package/node_modules/@oscharko-dev/keiko-contracts/dist/evidence.d.ts +1 -0
  122. package/node_modules/@oscharko-dev/keiko-contracts/dist/evidence.d.ts.map +1 -1
  123. package/node_modules/@oscharko-dev/keiko-contracts/dist/gateway.d.ts +12 -0
  124. package/node_modules/@oscharko-dev/keiko-contracts/dist/gateway.d.ts.map +1 -1
  125. package/node_modules/@oscharko-dev/keiko-contracts/dist/index.d.ts +4 -2
  126. package/node_modules/@oscharko-dev/keiko-contracts/dist/index.d.ts.map +1 -1
  127. package/node_modules/@oscharko-dev/keiko-contracts/dist/index.js +4 -1
  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/memory-audit-events.d.ts +13 -1
  130. package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-audit-events.d.ts.map +1 -1
  131. package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-audit-events.js +7 -6
  132. package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-internal.d.ts.map +1 -1
  133. package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-internal.js +1 -1
  134. package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-operations.d.ts.map +1 -1
  135. package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-workflow-port.d.ts.map +1 -1
  136. package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-workflow-port.js +1 -1
  137. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/bffWire.d.ts +21 -4
  138. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/bffWire.d.ts.map +1 -1
  139. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/index.d.ts +1 -0
  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/index.js +1 -0
  142. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/sourceEnvelope.d.ts +1 -0
  143. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/sourceEnvelope.d.ts.map +1 -1
  144. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/sourceEnvelope.js +26 -0
  145. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/testQualityRubric.d.ts +5 -3
  146. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/testQualityRubric.d.ts.map +1 -1
  147. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/testQualityRubric.js +29 -3
  148. package/node_modules/@oscharko-dev/keiko-contracts/dist/text-safety.d.ts +7 -0
  149. package/node_modules/@oscharko-dev/keiko-contracts/dist/text-safety.d.ts.map +1 -0
  150. package/node_modules/@oscharko-dev/keiko-contracts/dist/text-safety.js +58 -0
  151. package/node_modules/@oscharko-dev/keiko-contracts/package.json +5 -1
  152. package/node_modules/@oscharko-dev/keiko-evaluations/dist/.tsbuildinfo +1 -1
  153. package/node_modules/@oscharko-dev/keiko-evaluations/dist/surface-parity.d.ts.map +1 -1
  154. package/node_modules/@oscharko-dev/keiko-evaluations/package.json +1 -1
  155. package/node_modules/@oscharko-dev/keiko-evidence/dist/.tsbuildinfo +1 -1
  156. package/node_modules/@oscharko-dev/keiko-evidence/dist/index.d.ts +1 -1
  157. package/node_modules/@oscharko-dev/keiko-evidence/dist/index.d.ts.map +1 -1
  158. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/candidatesArtifact.d.ts +7 -0
  159. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/candidatesArtifact.d.ts.map +1 -1
  160. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/candidatesArtifact.js +62 -13
  161. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/companionStore.d.ts +3 -3
  162. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/companionStore.d.ts.map +1 -1
  163. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/companionStore.js +31 -11
  164. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.d.ts +35 -3
  165. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.d.ts.map +1 -1
  166. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.js +107 -3
  167. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.d.ts +15 -1
  168. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.d.ts.map +1 -1
  169. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.js +248 -36
  170. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.d.ts +2 -2
  171. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.d.ts.map +1 -1
  172. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/manifestSchema.d.ts +17 -3
  173. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/manifestSchema.d.ts.map +1 -1
  174. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/store.d.ts +1 -1
  175. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/store.d.ts.map +1 -1
  176. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/store.js +26 -22
  177. package/node_modules/@oscharko-dev/keiko-evidence/dist/side-file.d.ts.map +1 -1
  178. package/node_modules/@oscharko-dev/keiko-evidence/dist/side-file.js +17 -5
  179. package/node_modules/@oscharko-dev/keiko-evidence/dist/store.d.ts.map +1 -1
  180. package/node_modules/@oscharko-dev/keiko-evidence/dist/store.js +128 -12
  181. package/node_modules/@oscharko-dev/keiko-evidence/dist/workflow-evidence.d.ts.map +1 -1
  182. package/node_modules/@oscharko-dev/keiko-evidence/dist/workflow-evidence.js +1 -3
  183. package/node_modules/@oscharko-dev/keiko-evidence/package.json +1 -1
  184. package/node_modules/@oscharko-dev/keiko-harness/dist/.tsbuildinfo +1 -1
  185. package/node_modules/@oscharko-dev/keiko-harness/package.json +1 -1
  186. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/.tsbuildinfo +1 -1
  187. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-set-lifecycle.d.ts.map +1 -1
  188. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-set-lifecycle.js +1 -2
  189. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/composition.d.ts.map +1 -1
  190. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/composition.js +1 -1
  191. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/extract.d.ts.map +1 -1
  192. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/extract.js +45 -21
  193. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/media-type.d.ts.map +1 -1
  194. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/media-type.js +1 -0
  195. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/walk.d.ts.map +1 -1
  196. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/walk.js +11 -3
  197. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/dimensions.d.ts +2 -0
  198. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/dimensions.d.ts.map +1 -1
  199. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/dimensions.js +42 -0
  200. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/fixtures.d.ts.map +1 -1
  201. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/fixtures.js +34 -0
  202. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/index.d.ts +1 -1
  203. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/index.d.ts.map +1 -1
  204. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/index.js +1 -1
  205. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/report.d.ts.map +1 -1
  206. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/report.js +7 -6
  207. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/runner.d.ts.map +1 -1
  208. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/runner.js +7 -1
  209. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/types.d.ts +4 -0
  210. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/types.d.ts.map +1 -1
  211. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/types.js +2 -0
  212. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/index.d.ts +1 -1
  213. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/index.d.ts.map +1 -1
  214. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/index.js +1 -1
  215. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/embedding-batcher.d.ts.map +1 -1
  216. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/embedding-batcher.js +121 -3
  217. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/orchestrator.d.ts.map +1 -1
  218. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/orchestrator.js +34 -4
  219. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/_internal.d.ts +1 -0
  220. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/_internal.d.ts.map +1 -1
  221. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/_internal.js +63 -0
  222. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/docx-parser.d.ts.map +1 -1
  223. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/docx-parser.js +4 -7
  224. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/html-parser.d.ts.map +1 -1
  225. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/html-parser.js +67 -11
  226. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/index.d.ts +1 -0
  227. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/index.d.ts.map +1 -1
  228. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/index.js +3 -0
  229. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/json-parser.d.ts.map +1 -1
  230. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/json-parser.js +39 -3
  231. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/ocr/null-ocr-adapter.d.ts.map +1 -1
  232. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/ocr/ocr-pipeline-parser.d.ts.map +1 -1
  233. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/ocr/ocr-pipeline-parser.js +46 -11
  234. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/parser-test-fixtures.d.ts +2 -0
  235. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/parser-test-fixtures.d.ts.map +1 -1
  236. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/parser-test-fixtures.js +2 -0
  237. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/pdf-parser.d.ts.map +1 -1
  238. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/pdf-parser.js +114 -0
  239. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/xlsx-parser.d.ts +3 -0
  240. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/xlsx-parser.d.ts.map +1 -0
  241. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/xlsx-parser.js +425 -0
  242. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/retention-applier.d.ts.map +1 -1
  243. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/qualityIntelligence/capsuleCorpus.d.ts +9 -4
  244. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/qualityIntelligence/capsuleCorpus.d.ts.map +1 -1
  245. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/qualityIntelligence/capsuleCorpus.js +11 -6
  246. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/retrieval-runner.js +15 -2
  247. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/scoped-vector-search.d.ts +1 -0
  248. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/scoped-vector-search.d.ts.map +1 -1
  249. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/scoped-vector-search.js +220 -7
  250. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/types.d.ts +2 -1
  251. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/types.d.ts.map +1 -1
  252. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/source-lifecycle.d.ts.map +1 -1
  253. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/source-lifecycle.js +3 -1
  254. package/node_modules/@oscharko-dev/keiko-local-knowledge/package.json +4 -2
  255. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/.tsbuildinfo +1 -1
  256. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/capture-safety.d.ts +4 -0
  257. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/capture-safety.d.ts.map +1 -0
  258. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/capture-safety.js +17 -0
  259. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/errors.d.ts +1 -1
  260. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/errors.d.ts.map +1 -1
  261. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/index.d.ts +1 -0
  262. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/index.d.ts.map +1 -1
  263. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/index.js +1 -0
  264. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/salience.js +1 -1
  265. package/node_modules/@oscharko-dev/keiko-memory-capture/package.json +1 -1
  266. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/.tsbuildinfo +1 -1
  267. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/_constants.d.ts +3 -0
  268. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/_constants.d.ts.map +1 -1
  269. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/_constants.js +5 -0
  270. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/consolidate.d.ts.map +1 -1
  271. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/consolidate.js +93 -30
  272. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/stale.d.ts.map +1 -1
  273. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/stale.js +3 -1
  274. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/types.d.ts +5 -0
  275. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/types.d.ts.map +1 -1
  276. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/types.js +1 -1
  277. package/node_modules/@oscharko-dev/keiko-memory-consolidation/package.json +2 -2
  278. package/node_modules/@oscharko-dev/keiko-memory-governance/dist/.tsbuildinfo +1 -1
  279. package/node_modules/@oscharko-dev/keiko-memory-governance/dist/forget.js +1 -1
  280. package/node_modules/@oscharko-dev/keiko-memory-governance/dist/types.js +1 -1
  281. package/node_modules/@oscharko-dev/keiko-memory-governance/package.json +2 -2
  282. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/.tsbuildinfo +1 -1
  283. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/context.d.ts.map +1 -1
  284. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/context.js +61 -18
  285. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/ranking.d.ts.map +1 -1
  286. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/ranking.js +3 -1
  287. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/retrieve.d.ts.map +1 -1
  288. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/retrieve.js +26 -4
  289. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/types.d.ts +9 -1
  290. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/types.d.ts.map +1 -1
  291. package/node_modules/@oscharko-dev/keiko-memory-retrieval/package.json +1 -1
  292. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/.tsbuildinfo +1 -1
  293. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/embeddings.d.ts +1 -0
  294. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/embeddings.d.ts.map +1 -1
  295. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/embeddings.js +21 -0
  296. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/index.d.ts +1 -1
  297. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/index.d.ts.map +1 -1
  298. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/migrate-encrypt.d.ts.map +1 -1
  299. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/migrate-encrypt.js +24 -4
  300. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/schema.d.ts +1 -1
  301. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/schema.d.ts.map +1 -1
  302. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/schema.js +27 -4
  303. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/tombstones.d.ts +1 -0
  304. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/tombstones.d.ts.map +1 -1
  305. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/tombstones.js +21 -4
  306. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/types.d.ts +22 -1
  307. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/types.d.ts.map +1 -1
  308. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/validate.d.ts.map +1 -1
  309. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/validate.js +3 -0
  310. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/vault.d.ts.map +1 -1
  311. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/vault.js +105 -28
  312. package/node_modules/@oscharko-dev/keiko-memory-vault/package.json +1 -1
  313. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/.tsbuildinfo +1 -1
  314. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/config.d.ts +2 -0
  315. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/config.d.ts.map +1 -1
  316. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/config.js +83 -69
  317. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/embedding.d.ts +3 -2
  318. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/embedding.d.ts.map +1 -1
  319. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/embedding.js +20 -16
  320. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/gateway.d.ts.map +1 -1
  321. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/gateway.js +9 -3
  322. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/http.d.ts.map +1 -1
  323. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/http.js +29 -3
  324. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/index.d.ts +4 -4
  325. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/index.d.ts.map +1 -1
  326. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/index.js +3 -3
  327. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-adapter.d.ts.map +1 -1
  328. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-adapter.js +51 -6
  329. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-embedding-adapter.d.ts +20 -1
  330. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-embedding-adapter.d.ts.map +1 -1
  331. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-embedding-adapter.js +122 -7
  332. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityGate.d.ts +10 -1
  333. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityGate.d.ts.map +1 -1
  334. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityGate.js +33 -11
  335. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityMapping.d.ts +4 -0
  336. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityMapping.d.ts.map +1 -0
  337. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityMapping.js +21 -0
  338. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/index.d.ts +1 -1
  339. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/index.d.ts.map +1 -1
  340. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/index.js +1 -1
  341. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/routing.d.ts.map +1 -1
  342. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/routing.js +2 -13
  343. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/resilience.d.ts +1 -0
  344. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/resilience.d.ts.map +1 -1
  345. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/resilience.js +18 -2
  346. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/types.d.ts +5 -1
  347. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/types.d.ts.map +1 -1
  348. package/node_modules/@oscharko-dev/keiko-model-gateway/package.json +1 -1
  349. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/.tsbuildinfo +1 -1
  350. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/assertions.d.ts +35 -0
  351. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/assertions.d.ts.map +1 -1
  352. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/assertions.js +74 -0
  353. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/deduplication.d.ts.map +1 -1
  354. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/deduplication.js +6 -2
  355. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/a11yBaseline.d.ts.map +1 -1
  356. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/a11yBaseline.js +64 -19
  357. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/cleanToScreenIr.d.ts.map +1 -1
  358. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/cleanToScreenIr.js +3 -0
  359. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/color.d.ts +6 -1
  360. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/color.d.ts.map +1 -1
  361. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/color.js +22 -9
  362. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/emissionPlan.d.ts +4 -1
  363. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/emissionPlan.d.ts.map +1 -1
  364. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/emissionPlan.js +28 -12
  365. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/htmlCssAdapter.d.ts.map +1 -1
  366. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/htmlCssAdapter.js +123 -33
  367. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/index.d.ts +2 -2
  368. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/index.d.ts.map +1 -1
  369. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/irTypes.d.ts +7 -4
  370. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/irTypes.d.ts.map +1 -1
  371. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/links.d.ts.map +1 -1
  372. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/links.js +13 -17
  373. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/navGraph.d.ts.map +1 -1
  374. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/navGraph.js +35 -12
  375. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/normalize.d.ts.map +1 -1
  376. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/normalize.js +54 -6
  377. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.d.ts +4 -0
  378. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.d.ts.map +1 -1
  379. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.js +29 -10
  380. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/tokens.d.ts.map +1 -1
  381. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/tokens.js +10 -4
  382. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/requirementExcerpt.d.ts.map +1 -1
  383. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/requirementExcerpt.js +15 -6
  384. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/staleness.d.ts +4 -0
  385. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/staleness.d.ts.map +1 -1
  386. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/staleness.js +162 -6
  387. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testDesignModel.d.ts +14 -2
  388. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testDesignModel.d.ts.map +1 -1
  389. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testDesignModel.js +50 -12
  390. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/validation.d.ts.map +1 -1
  391. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/validation.js +4 -2
  392. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/markdown.d.ts.map +1 -1
  393. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/markdown.js +8 -3
  394. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/traceability.d.ts.map +1 -1
  395. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/traceability.js +12 -9
  396. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/textSafety.d.ts +7 -0
  397. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/textSafety.d.ts.map +1 -1
  398. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/textSafety.js +7 -0
  399. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/candidateBounds.d.ts +10 -0
  400. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/candidateBounds.d.ts.map +1 -0
  401. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/candidateBounds.js +14 -0
  402. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/index.d.ts.map +1 -1
  403. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/index.js +3 -2
  404. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/parseGeneratedCandidates.d.ts.map +1 -1
  405. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/parseGeneratedCandidates.js +97 -50
  406. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/prompt.d.ts.map +1 -1
  407. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/prompt.js +35 -7
  408. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/index.d.ts +2 -2
  409. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/index.d.ts.map +1 -1
  410. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/index.js +2 -2
  411. package/node_modules/@oscharko-dev/keiko-quality-intelligence/package.json +1 -1
  412. package/node_modules/@oscharko-dev/keiko-sdk/dist/.tsbuildinfo +1 -1
  413. package/node_modules/@oscharko-dev/keiko-sdk/package.json +1 -1
  414. package/node_modules/@oscharko-dev/keiko-security/dist/.tsbuildinfo +1 -1
  415. package/node_modules/@oscharko-dev/keiko-security/dist/errors/gateway.d.ts +11 -0
  416. package/node_modules/@oscharko-dev/keiko-security/dist/errors/gateway.d.ts.map +1 -1
  417. package/node_modules/@oscharko-dev/keiko-security/dist/errors/gateway.js +13 -0
  418. package/node_modules/@oscharko-dev/keiko-security/package.json +1 -1
  419. package/node_modules/@oscharko-dev/keiko-server/dist/.tsbuildinfo +1 -1
  420. package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.d.ts.map +1 -1
  421. package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.js +50 -12
  422. package/node_modules/@oscharko-dev/keiko-server/dist/chat-stream-handlers.d.ts.map +1 -1
  423. package/node_modules/@oscharko-dev/keiko-server/dist/chat-stream-handlers.js +10 -8
  424. package/node_modules/@oscharko-dev/keiko-server/dist/conversation-prompt.d.ts +1 -0
  425. package/node_modules/@oscharko-dev/keiko-server/dist/conversation-prompt.d.ts.map +1 -1
  426. package/node_modules/@oscharko-dev/keiko-server/dist/conversation-prompt.js +3 -0
  427. package/node_modules/@oscharko-dev/keiko-server/dist/deps.d.ts +4 -2
  428. package/node_modules/@oscharko-dev/keiko-server/dist/deps.d.ts.map +1 -1
  429. package/node_modules/@oscharko-dev/keiko-server/dist/deps.js +44 -69
  430. package/node_modules/@oscharko-dev/keiko-server/dist/gateway-setup.d.ts.map +1 -1
  431. package/node_modules/@oscharko-dev/keiko-server/dist/gateway-setup.js +120 -28
  432. package/node_modules/@oscharko-dev/keiko-server/dist/governed-workflow.d.ts.map +1 -1
  433. package/node_modules/@oscharko-dev/keiko-server/dist/governed-workflow.js +4 -1
  434. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-handoff.d.ts.map +1 -1
  435. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-handoff.js +2 -0
  436. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-hybrid.d.ts.map +1 -1
  437. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-hybrid.js +115 -22
  438. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-multi-source.d.ts.map +1 -1
  439. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-multi-source.js +54 -21
  440. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa.d.ts.map +1 -1
  441. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa.js +11 -4
  442. package/node_modules/@oscharko-dev/keiko-server/dist/index.d.ts +1 -0
  443. package/node_modules/@oscharko-dev/keiko-server/dist/index.d.ts.map +1 -1
  444. package/node_modules/@oscharko-dev/keiko-server/dist/index.js +1 -0
  445. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.d.ts.map +1 -1
  446. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.js +7 -3
  447. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-handlers.d.ts.map +1 -1
  448. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-handlers.js +26 -14
  449. package/node_modules/@oscharko-dev/keiko-server/dist/memory-audit-handler.d.ts +1 -0
  450. package/node_modules/@oscharko-dev/keiko-server/dist/memory-audit-handler.d.ts.map +1 -1
  451. package/node_modules/@oscharko-dev/keiko-server/dist/memory-audit-handler.js +52 -27
  452. package/node_modules/@oscharko-dev/keiko-server/dist/memory-capture-policy.d.ts +10 -0
  453. package/node_modules/@oscharko-dev/keiko-server/dist/memory-capture-policy.d.ts.map +1 -0
  454. package/node_modules/@oscharko-dev/keiko-server/dist/memory-capture-policy.js +44 -0
  455. package/node_modules/@oscharko-dev/keiko-server/dist/memory-consolidation-handlers.d.ts.map +1 -1
  456. package/node_modules/@oscharko-dev/keiko-server/dist/memory-consolidation-handlers.js +79 -57
  457. package/node_modules/@oscharko-dev/keiko-server/dist/memory-consolidation-registry.d.ts +1 -0
  458. package/node_modules/@oscharko-dev/keiko-server/dist/memory-consolidation-registry.d.ts.map +1 -1
  459. package/node_modules/@oscharko-dev/keiko-server/dist/memory-conv-handlers.d.ts.map +1 -1
  460. package/node_modules/@oscharko-dev/keiko-server/dist/memory-conv-handlers.js +6 -4
  461. package/node_modules/@oscharko-dev/keiko-server/dist/memory-conversation-context.d.ts.map +1 -1
  462. package/node_modules/@oscharko-dev/keiko-server/dist/memory-diagnostics.d.ts.map +1 -1
  463. package/node_modules/@oscharko-dev/keiko-server/dist/memory-diagnostics.js +16 -9
  464. package/node_modules/@oscharko-dev/keiko-server/dist/memory-handlers.d.ts +3 -1
  465. package/node_modules/@oscharko-dev/keiko-server/dist/memory-handlers.d.ts.map +1 -1
  466. package/node_modules/@oscharko-dev/keiko-server/dist/memory-handlers.js +538 -87
  467. package/node_modules/@oscharko-dev/keiko-server/dist/memory-maintenance-handlers.d.ts +6 -1
  468. package/node_modules/@oscharko-dev/keiko-server/dist/memory-maintenance-handlers.d.ts.map +1 -1
  469. package/node_modules/@oscharko-dev/keiko-server/dist/memory-maintenance-handlers.js +17 -38
  470. package/node_modules/@oscharko-dev/keiko-server/dist/memory-retention.d.ts.map +1 -1
  471. package/node_modules/@oscharko-dev/keiko-server/dist/memory-retention.js +7 -15
  472. package/node_modules/@oscharko-dev/keiko-server/dist/memory-salience.d.ts.map +1 -1
  473. package/node_modules/@oscharko-dev/keiko-server/dist/memory-salience.js +17 -2
  474. package/node_modules/@oscharko-dev/keiko-server/dist/memory-scope-sanitizer.d.ts.map +1 -1
  475. package/node_modules/@oscharko-dev/keiko-server/dist/memory-scope-sanitizer.js +19 -0
  476. package/node_modules/@oscharko-dev/keiko-server/dist/memory-target-resolver.d.ts.map +1 -1
  477. package/node_modules/@oscharko-dev/keiko-server/dist/memory-target-resolver.js +4 -1
  478. package/node_modules/@oscharko-dev/keiko-server/dist/memory-workflow-port.d.ts +1 -0
  479. package/node_modules/@oscharko-dev/keiko-server/dist/memory-workflow-port.d.ts.map +1 -1
  480. package/node_modules/@oscharko-dev/keiko-server/dist/memory-workflow-port.js +108 -27
  481. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/capsuleAdapter.d.ts +4 -0
  482. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/capsuleAdapter.d.ts.map +1 -1
  483. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/capsuleAdapter.js +3 -0
  484. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/editRoutes.d.ts.map +1 -1
  485. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/editRoutes.js +61 -7
  486. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/exportRoutes.d.ts.map +1 -1
  487. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/exportRoutes.js +9 -3
  488. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConcurrency.d.ts.map +1 -1
  489. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConcurrency.js +2 -1
  490. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnector.d.ts +6 -0
  491. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnector.d.ts.map +1 -1
  492. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnector.js +16 -3
  493. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorAudit.d.ts +7 -0
  494. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorAudit.d.ts.map +1 -1
  495. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorErrors.d.ts +1 -1
  496. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorErrors.d.ts.map +1 -1
  497. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorErrors.js +3 -1
  498. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConsent.d.ts +2 -2
  499. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConsent.d.ts.map +1 -1
  500. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConsent.js +3 -3
  501. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaObservedActions.d.ts +5 -0
  502. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaObservedActions.d.ts.map +1 -1
  503. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaObservedActions.js +10 -8
  504. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaReadiness.d.ts.map +1 -1
  505. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaReadiness.js +11 -5
  506. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaRenderPort.d.ts.map +1 -1
  507. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaRenderPort.js +1 -0
  508. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaScopedPagination.d.ts +3 -0
  509. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaScopedPagination.d.ts.map +1 -1
  510. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaScopedPagination.js +71 -10
  511. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotBuilder.d.ts +2 -0
  512. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotBuilder.d.ts.map +1 -1
  513. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotBuilder.js +86 -23
  514. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotTypes.d.ts +1 -1
  515. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotTypes.d.ts.map +1 -1
  516. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaTokenSource.d.ts.map +1 -1
  517. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaTokenSource.js +4 -3
  518. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaUrl.d.ts.map +1 -1
  519. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaUrl.js +2 -0
  520. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/index.d.ts +1 -1
  521. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/index.d.ts.map +1 -1
  522. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/index.js +1 -1
  523. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaCodegenRoutes.d.ts.map +1 -1
  524. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaCodegenRoutes.js +60 -20
  525. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotAdapter.d.ts +11 -6
  526. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotAdapter.d.ts.map +1 -1
  527. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotAdapter.js +144 -6
  528. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotOrchestration.d.ts +9 -0
  529. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotOrchestration.d.ts.map +1 -1
  530. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotOrchestration.js +84 -15
  531. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.d.ts +9 -7
  532. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.d.ts.map +1 -1
  533. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.js +206 -42
  534. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/judgePort.d.ts +3 -1
  535. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/judgePort.d.ts.map +1 -1
  536. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/judgePort.js +69 -65
  537. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/modelSelection.d.ts +15 -1
  538. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/modelSelection.d.ts.map +1 -1
  539. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/modelSelection.js +56 -39
  540. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reCheckRoutes.d.ts +1 -1
  541. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reCheckRoutes.d.ts.map +1 -1
  542. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reCheckRoutes.js +382 -75
  543. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewRoutes.d.ts.map +1 -1
  544. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewRoutes.js +14 -6
  545. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runExecution.d.ts +3 -2
  546. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runExecution.d.ts.map +1 -1
  547. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runExecution.js +44 -16
  548. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.d.ts +7 -0
  549. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.d.ts.map +1 -1
  550. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.js +336 -47
  551. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.d.ts.map +1 -1
  552. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.js +15 -5
  553. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/traceabilityRoutes.d.ts.map +1 -1
  554. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/traceabilityRoutes.js +36 -4
  555. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/uiRoutes.d.ts.map +1 -1
  556. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/uiRoutes.js +61 -6
  557. package/node_modules/@oscharko-dev/keiko-server/dist/routes.d.ts.map +1 -1
  558. package/node_modules/@oscharko-dev/keiko-server/dist/routes.js +16 -5
  559. package/node_modules/@oscharko-dev/keiko-server/dist/run-engine.d.ts +1 -0
  560. package/node_modules/@oscharko-dev/keiko-server/dist/run-engine.d.ts.map +1 -1
  561. package/node_modules/@oscharko-dev/keiko-server/dist/run-engine.js +3 -0
  562. package/node_modules/@oscharko-dev/keiko-server/dist/run-handlers.d.ts.map +1 -1
  563. package/node_modules/@oscharko-dev/keiko-server/dist/run-handlers.js +2 -0
  564. package/node_modules/@oscharko-dev/keiko-server/dist/sse-write.d.ts +9 -0
  565. package/node_modules/@oscharko-dev/keiko-server/dist/sse-write.d.ts.map +1 -0
  566. package/node_modules/@oscharko-dev/keiko-server/dist/sse-write.js +26 -0
  567. package/node_modules/@oscharko-dev/keiko-server/dist/store/chats.d.ts.map +1 -1
  568. package/node_modules/@oscharko-dev/keiko-server/dist/store/chats.js +16 -8
  569. package/node_modules/@oscharko-dev/keiko-server/dist/store/messages.d.ts.map +1 -1
  570. package/node_modules/@oscharko-dev/keiko-server/dist/store-handlers.d.ts.map +1 -1
  571. package/node_modules/@oscharko-dev/keiko-server/dist/terminal.d.ts.map +1 -1
  572. package/node_modules/@oscharko-dev/keiko-server/package.json +1 -1
  573. package/node_modules/@oscharko-dev/keiko-tools/dist/.tsbuildinfo +1 -1
  574. package/node_modules/@oscharko-dev/keiko-tools/dist/patch-normalize.d.ts.map +1 -1
  575. package/node_modules/@oscharko-dev/keiko-tools/dist/patch-normalize.js +13 -7
  576. package/node_modules/@oscharko-dev/keiko-tools/package.json +1 -1
  577. package/node_modules/@oscharko-dev/keiko-verification/dist/.tsbuildinfo +1 -1
  578. package/node_modules/@oscharko-dev/keiko-verification/package.json +1 -1
  579. package/node_modules/@oscharko-dev/keiko-workflows/dist/.tsbuildinfo +1 -1
  580. package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/memory.d.ts +2 -2
  581. package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/memory.d.ts.map +1 -1
  582. package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/memory.js +16 -18
  583. package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/prompt.d.ts.map +1 -1
  584. package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/prompt.js +6 -1
  585. package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/workflow.d.ts.map +1 -1
  586. package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/workflow.js +3 -3
  587. package/node_modules/@oscharko-dev/keiko-workflows/dist/governed-handoff.d.ts.map +1 -1
  588. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/descriptors.d.ts +2 -2
  589. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/modelRoutedTestDesign.d.ts +18 -2
  590. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/modelRoutedTestDesign.d.ts.map +1 -1
  591. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/modelRoutedTestDesign.js +209 -54
  592. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runtimeCommon.d.ts +4 -4
  593. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runtimeCommon.d.ts.map +1 -1
  594. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runtimeCommon.js +4 -1
  595. package/node_modules/@oscharko-dev/keiko-workflows/dist/unit-tests/target-guard.d.ts.map +1 -1
  596. package/node_modules/@oscharko-dev/keiko-workflows/package.json +1 -1
  597. package/node_modules/@oscharko-dev/keiko-workspace/dist/.tsbuildinfo +1 -1
  598. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchEntries.d.ts.map +1 -1
  599. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchEntries.js +1 -2
  600. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchLineSelection.d.ts.map +1 -1
  601. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchLineSelection.js +2 -1
  602. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.d.ts.map +1 -1
  603. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.js +6 -2
  604. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchRegexSafety.d.ts.map +1 -1
  605. package/node_modules/@oscharko-dev/keiko-workspace/package.json +1 -1
  606. package/package.json +23 -6
  607. package/dist/ui/static/_next/static/chunks/082obv3v03b-9.js +0 -2
  608. package/dist/ui/static/_next/static/chunks/0uifns067thv8.js +0 -1
  609. package/dist/ui/static/_next/static/chunks/0x31-j53ab1tt.js +0 -1
  610. package/dist/ui/static/_next/static/chunks/1m-kvwm6_90_3.css +0 -1
  611. package/dist/ui/static/_next/static/chunks/1v4hrxrm_6_rw.js +0 -1
  612. package/dist/ui/static/_next/static/chunks/27jktro2p5rq9.js +0 -4
  613. package/dist/ui/static/_next/static/chunks/2lypy3ewh0r04.js +0 -1
  614. package/dist/ui/static/_next/static/chunks/2ngm8iwdb1cbv.js +0 -106
  615. package/dist/ui/static/_next/static/chunks/32573pyyglqxl.js +0 -1
  616. package/dist/ui/static/_next/static/chunks/3_t_pzet29qtn.js +0 -1
  617. package/dist/ui/static/_next/static/chunks/3jgg_oe0iok0l.js +0 -1
  618. package/dist/ui/static/_next/static/chunks/3o_oia3vsam60.js +0 -1
  619. package/dist/ui/static/_next/static/chunks/turbopack-2lg1g6kbsfm0x.js +0 -1
  620. /package/dist/ui/static/_next/static/{hR2gBQqCDKdPdSxBqZhqv → fQMXe8UmV01bh25WOoIt3}/_buildManifest.js +0 -0
  621. /package/dist/ui/static/_next/static/{hR2gBQqCDKdPdSxBqZhqv → fQMXe8UmV01bh25WOoIt3}/_clientMiddlewareManifest.js +0 -0
  622. /package/dist/ui/static/_next/static/{hR2gBQqCDKdPdSxBqZhqv → fQMXe8UmV01bh25WOoIt3}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../src/embedding.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACnG,OAAO,KAAK,EAEV,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAG3D,MAAM,MAAM,sBAAsB,GAC9B,qBAAqB,GACrB,aAAa,GACb,cAAc,GACd,cAAc,GACd,oBAAoB,GACpB,SAAS,GACT,WAAW,GACX,mBAAmB,GACnB,kBAAkB,GAClB,mCAAmC,CAAC;AAExC,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,MAAM,wBAAwB,GAChC;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,wBAAwB,CAAC;CAC7C,GACD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAElG,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;IAC7C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAKD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACtF;AA4DD,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,wBAAwB,CAAC,CAiCnC;AA4BD,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,sBAAsB,GAC9B,wBAAwB,CAW1B"}
1
+ {"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../src/embedding.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACnG,OAAO,KAAK,EACV,2BAA2B,EAC3B,2BAA2B,EAE3B,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAG3D,MAAM,MAAM,sBAAsB,GAC9B,qBAAqB,GACrB,aAAa,GACb,cAAc,GACd,cAAc,GACd,oBAAoB,GACpB,SAAS,GACT,WAAW,GACX,mBAAmB,GACnB,mBAAmB,GACnB,qBAAqB,GACrB,qBAAqB,GACrB,yBAAyB,GACzB,gBAAgB,GAChB,kBAAkB,GAClB,mCAAmC,CAAC;AAExC,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,MAAM,wBAAwB,GAChC;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,wBAAwB,CAAC;CAC7C,GACD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAElG,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,qBAAqB,CAAC;IAC7C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAKD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAIrF,QAAQ,CAAC,YAAY,CAAC,EAAE,CACtB,KAAK,EAAE,2BAA2B,KAC/B,OAAO,CAAC,2BAA2B,CAAC,CAAC;CAC3C;AAkED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,wBAAwB,CAAC,CAiCnC;AA4BD,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,sBAAsB,GAC9B,wBAAwB,CAW1B"}
@@ -15,29 +15,33 @@ const SAFE_MESSAGES = Object.freeze({
15
15
  timeout: "embedding probe timed out",
16
16
  cancelled: "embedding probe was cancelled by the caller",
17
17
  "unsupported-model": "embedding model is not available on the configured gateway",
18
+ "proxy-unreachable": "configured proxy is unreachable",
19
+ "proxy-auth-required": "configured proxy requires authentication",
20
+ "proxy-egress-failed": "configured proxy failed outbound egress",
21
+ "proxy-blocked-by-policy": "configured proxy blocked outbound egress",
22
+ "tls-ca-failure": "TLS certificate verification failed for outbound egress",
18
23
  "invalid-response": "embedding response was malformed",
19
24
  "incompatible-with-stored-identity": "embedding model identity changed — existing capsules are no longer compatible",
20
25
  });
26
+ const ADAPTER_FAILURE_REASONS = Object.freeze({
27
+ "wrong-header": "wrong-header",
28
+ "rate-limited": "rate-limited",
29
+ "unsupported-model": "unsupported-model",
30
+ timeout: "timeout",
31
+ cancelled: "cancelled",
32
+ "invalid-response": "invalid-response",
33
+ "proxy-unreachable": "proxy-unreachable",
34
+ "proxy-auth-required": "proxy-auth-required",
35
+ "proxy-egress-failed": "proxy-egress-failed",
36
+ "proxy-blocked-by-policy": "proxy-blocked-by-policy",
37
+ "tls-ca-failure": "tls-ca-failure",
38
+ transport: "unavailable",
39
+ });
21
40
  function fail(reason) {
22
41
  return { ok: false, reason, safeMessage: SAFE_MESSAGES[reason] };
23
42
  }
24
43
  function reasonFromAdapter(kind) {
25
- switch (kind) {
26
- case "wrong-header":
27
- return "wrong-header";
28
- case "rate-limited":
29
- return "rate-limited";
30
- case "unsupported-model":
31
- return "unsupported-model";
32
- case "timeout":
33
- return "timeout";
34
- case "cancelled":
35
- return "cancelled";
36
- case "invalid-response":
37
- return "invalid-response";
38
- case "transport":
39
- return "unavailable";
40
- }
44
+ return ADAPTER_FAILURE_REASONS[kind];
41
45
  }
42
46
  function hasCredentials(adapter) {
43
47
  return adapter.apiKey.trim().length > 0;
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,KAAK,EACL,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,EAGlB,kBAAkB,EAClB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CACpC;AAOD,qBAAa,OAAO;IAOhB,OAAO,CAAC,QAAQ,CAAC,MAAM;IANzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2C;IACrE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;gBAG3C,MAAM,EAAE,aAAa,EACtC,IAAI,GAAE,WAAgB;IAOlB,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA+BzD,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,CAAC,kBAAkB,CAAC;YAoB/D,UAAU;IAczB,OAAO,CAAC,MAAM;IAiBd,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB;YAYtC,MAAM;IAiBpB,OAAO,CAAC,KAAK;IAiBb,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,UAAU;CAUnB"}
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,KAAK,EACL,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,EAGlB,kBAAkB,EAClB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CACpC;AAOD,qBAAa,OAAO;IAOhB,OAAO,CAAC,QAAQ,CAAC,MAAM;IANzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2C;IACrE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;gBAG3C,MAAM,EAAE,aAAa,EACtC,IAAI,GAAE,WAAgB;IAOlB,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA+BzD,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,CAAC,kBAAkB,CAAC;YAuB/D,UAAU;IAczB,OAAO,CAAC,MAAM;IAiBd,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB;YAYtC,MAAM;IAoBpB,OAAO,CAAC,KAAK;IAiBb,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,UAAU;CAUnB"}
@@ -3,7 +3,7 @@
3
3
  // (request id, latency, cost class) is owned by the gateway, not the provider, so
4
4
  // the audit ledger (issue #10) has a reliable typed target on every response.
5
5
  import { randomUUID } from "node:crypto";
6
- import { UnknownModelError } from "@oscharko-dev/keiko-security/errors/gateway";
6
+ import { CancelledError, UnknownModelError } from "@oscharko-dev/keiko-security/errors/gateway";
7
7
  import { findConfiguredCapability } from "./model-selection.js";
8
8
  import { OpenAiAdapter } from "./openai-adapter.js";
9
9
  import { CircuitBreaker, executeWithRetry, systemClock } from "./resilience.js";
@@ -59,7 +59,10 @@ export class Gateway {
59
59
  breaker.recordSuccess();
60
60
  }
61
61
  catch (error) {
62
- breaker.recordFailure();
62
+ // A client-initiated cancel is not a provider fault — skip the breaker.
63
+ if (!(error instanceof CancelledError)) {
64
+ breaker.recordFailure();
65
+ }
63
66
  throw error;
64
67
  }
65
68
  }
@@ -100,7 +103,10 @@ export class Gateway {
100
103
  return response;
101
104
  }
102
105
  catch (error) {
103
- breaker.recordFailure();
106
+ // A client-initiated cancel is not a provider fault — skip the breaker.
107
+ if (!(error instanceof CancelledError)) {
108
+ breaker.recordFailure();
109
+ }
104
110
  throw error;
105
111
  }
106
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D,YAAY,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAG3D,eAAO,MAAM,kBAAkB,WAAa,CAAC;AAE7C,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAIvD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAExC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChD;AAED,MAAM,MAAM,2BAA2B,GACnC,mBAAmB,GACnB,qBAAqB,GACrB,qBAAqB,GACrB,yBAAyB,GACzB,gBAAgB,CAAC;AAErB,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAC;gBAE/B,IAAI,EAAE,2BAA2B,EAAE,OAAO,EAAE,MAAM;CAK/D;AA2BD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAO5D;AASD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAOlE;AAoDD,wBAAgB,4BAA4B,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAUrF;AAGD,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAmBD,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,OAAO,WAAW,EAAE,eAAe,EACxC,QAAQ,EAAE,MAAM,IAAI,EACpB,QAAQ,GAAE,MAA2B,GACpC,QAAQ,CAqCV;AAmeD,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,QAAQ,CAAC,CAoBnB;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,GAAE,MAA2B,GACpC,OAAO,CAAC,OAAO,CAAC,CAoBlB;AAoCD,wBAAuB,aAAa,CAClC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,GAAE,MAA2B,GACpC,cAAc,CA2BhB"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D,YAAY,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAG3D,eAAO,MAAM,kBAAkB,WAAa,CAAC;AAE7C,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAIvD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAExC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChD;AAED,MAAM,MAAM,2BAA2B,GACnC,mBAAmB,GACnB,qBAAqB,GACrB,qBAAqB,GACrB,yBAAyB,GACzB,gBAAgB,CAAC;AAErB,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAC;gBAE/B,IAAI,EAAE,2BAA2B,EAAE,OAAO,EAAE,MAAM;CAK/D;AAsCD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAO5D;AASD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAOlE;AAoDD,wBAAgB,4BAA4B,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAUrF;AAGD,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAmBD,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,OAAO,WAAW,EAAE,eAAe,EACxC,QAAQ,EAAE,MAAM,IAAI,EACpB,QAAQ,GAAE,MAA2B,GACpC,QAAQ,CAqCV;AAufD,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,QAAQ,CAAC,CAoBnB;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,GAAE,MAA2B,GACpC,OAAO,CAAC,OAAO,CAAC,CAoBlB;AAoCD,wBAAuB,aAAa,CAClC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,GAAE,MAA2B,GACpC,cAAc,CA2BhB"}
@@ -13,6 +13,12 @@ export class OutboundHttpEgressError extends Error {
13
13
  this.code = code;
14
14
  }
15
15
  }
16
+ const FORWARDED_CREDENTIAL_HEADERS = new Set([
17
+ "authorization",
18
+ "x-litellm-key",
19
+ "x-api-key",
20
+ "api-key",
21
+ ]);
16
22
  function headersFromNode(headers) {
17
23
  const out = new Headers();
18
24
  for (const [name, value] of Object.entries(headers)) {
@@ -34,6 +40,9 @@ function headersToRecord(headers) {
34
40
  });
35
41
  return out;
36
42
  }
43
+ function hasForwardedCredentialHeader(headers) {
44
+ return Object.keys(headers).some((name) => FORWARDED_CREDENTIAL_HEADERS.has(name.toLowerCase()));
45
+ }
37
46
  function isRecord(value) {
38
47
  return typeof value === "object" && value !== null && !Array.isArray(value);
39
48
  }
@@ -234,7 +243,7 @@ function noProxyRuleMatches(rule, host, hostPort) {
234
243
  const domain = rule.startsWith(".") ? rule.slice(1) : rule;
235
244
  if (host === domain)
236
245
  return true;
237
- return rule.startsWith(".") && host.endsWith(`.${domain}`);
246
+ return host.endsWith(`.${domain}`);
238
247
  }
239
248
  function noProxyMatches(url, rules) {
240
249
  if (rules === undefined || rules.length === 0)
@@ -291,7 +300,7 @@ function mapProxyError(error) {
291
300
  if (error instanceof OutboundHttpEgressError)
292
301
  return error;
293
302
  if (isRecoverableTlsTrustError(error)) {
294
- return new OutboundHttpEgressError("TLS_CA_FAILURE", "TLS certificate verification failed for outbound egress.");
303
+ return tlsCaFailureError();
295
304
  }
296
305
  if (error instanceof Error) {
297
306
  const code = isRecord(error) ? error.code : undefined;
@@ -303,6 +312,9 @@ function mapProxyError(error) {
303
312
  }
304
313
  return new OutboundHttpEgressError("PROXY_EGRESS_FAILED", "Outbound egress failed.");
305
314
  }
315
+ function tlsCaFailureError() {
316
+ return new OutboundHttpEgressError("TLS_CA_FAILURE", "TLS certificate verification failed for outbound egress.");
317
+ }
306
318
  const PROXY_UNREACHABLE_ERROR = new OutboundHttpEgressError("PROXY_UNREACHABLE", "Configured proxy is unreachable.");
307
319
  function attachAbortGuard(signal, onAbort) {
308
320
  if (signal.aborted) {
@@ -470,6 +482,9 @@ function responseFromClientRequest(start) {
470
482
  function fetchHttpViaProxy(target, init, proxy, ca, maxResponseBytes) {
471
483
  const body = bodyToString(init.body);
472
484
  const headers = headersToRecord(init.headers);
485
+ if (hasForwardedCredentialHeader(headers)) {
486
+ throw new OutboundHttpEgressError("PROXY_BLOCKED_BY_POLICY", "Refusing to forward credential headers to a plaintext HTTP target through the configured proxy.");
487
+ }
473
488
  // Ensure Host header omits the default port (fixes SigV4 pre-signed S3 URLs).
474
489
  if (!Object.prototype.hasOwnProperty.call(headers, "host")) {
475
490
  headers.host = hostHeader(target);
@@ -544,7 +559,18 @@ async function fetchDirectWithCaFallback(url, init, doFetch, useCaFallback, egre
544
559
  }
545
560
  catch (error) {
546
561
  if (useCaFallback && usesHttps(url) && isRecoverableTlsTrustError(error)) {
547
- return fetchWithCaBundle(url, init, egress, maxResponseBytes);
562
+ try {
563
+ return await fetchWithCaBundle(url, init, egress, maxResponseBytes);
564
+ }
565
+ catch (fallbackError) {
566
+ if (isRecoverableTlsTrustError(fallbackError)) {
567
+ throw tlsCaFailureError();
568
+ }
569
+ throw fallbackError;
570
+ }
571
+ }
572
+ if (usesHttps(url) && isRecoverableTlsTrustError(error)) {
573
+ throw tlsCaFailureError();
548
574
  }
549
575
  throw error;
550
576
  }
@@ -1,14 +1,14 @@
1
1
  export { KEIKO_MODEL_GATEWAY_VERSION } from "./version.js";
2
- export type { CircuitBreakerConfig, CircuitBreakerStatus, CircuitState, ChatMessage, Clock, CostClass, FinishReason, GatewayConfig, GatewayRequest, GatewayStreamChunk, LatencyClass, ModelCapability, ModelKind, ModelProviderConfig, NormalizedResponse, NormalizedToolCall, ProviderAdapter, ResponseFormat, StreamDelta, StreamEvent, ToolDefinition, UsageMetadata, } from "./types.js";
2
+ export type { CircuitBreakerConfig, CircuitBreakerStatus, CircuitState, ChatMessage, Clock, CostClass, FinishReason, GatewayConfig, GatewayRequest, GatewayStreamChunk, LatencyClass, ModelCapability, ModelKind, ModelProviderConfig, NormalizedResponse, NormalizedToolCall, OutboundHttpEgressConfig, ProviderAdapter, ResponseFormat, StreamDelta, StreamEvent, ToolDefinition, UsageMetadata, } from "./types.js";
3
3
  export { CAPABILITY_REGISTRY, createDefaultChatCapability, explainConversationIneligibility, findCapability, isConversationEligibleModel, listCapabilities, resolveCostClass, selectCheapest, type CapabilityQuery, type ConversationIneligibilityReason, } from "./capabilities.js";
4
4
  export { CAPABILITY_DATA } from "./capabilities.data.js";
5
- export { apiKeyHeaderValue, DEFAULT_API_KEY_HEADER_NAME, loadConfigFromFile, normalizeApiKeyHeaderName, parseGatewayConfig, toSafeObject, validateBaseUrl, type EnvSource, type SafeGatewayConfig, type SafeProviderConfig, } from "./config.js";
5
+ export { apiKeyHeaderValue, DEFAULT_API_KEY_HEADER_NAME, loadConfigFromFile, loadEgressConfigFromFile, normalizeApiKeyHeaderName, parseGatewayConfig, resolveOutboundHttpEgressConfig, toSafeObject, validateBaseUrl, type EnvSource, type SafeGatewayConfig, type SafeProviderConfig, } from "./config.js";
6
6
  export { Gateway, type GatewayDeps } from "./gateway.js";
7
7
  export { assertConfiguredModel, findConfiguredCapability, listConfiguredCapabilities, selectConfiguredModel, type ModelSelectionQuery, } from "./model-selection.js";
8
8
  export { assertCompatibleEmbeddingIdentity, verifyEmbeddingCapability, type EmbeddingCapabilityCheck, type EmbeddingFailureReason, type EmbeddingIdentityWarning, type EmbeddingProbeOptions, type OpenAIEmbeddingAdapter, } from "./embedding.js";
9
- export { requestOpenAIEmbedding, type OpenAIEmbeddingErrorKind, type OpenAIEmbeddingOutcome, type OpenAIEmbeddingRequest, type OpenAIEmbeddingSuccess, } from "./openai-embedding-adapter.js";
9
+ export { requestOpenAIEmbedding, requestOpenAIEmbeddingBatch, type OpenAIEmbeddingBatchOutcome, type OpenAIEmbeddingBatchRequest, type OpenAIEmbeddingErrorKind, type OpenAIEmbeddingOutcome, type OpenAIEmbeddingRequest, type OpenAIEmbeddingSuccess, } from "./openai-embedding-adapter.js";
10
10
  export { redact } from "@oscharko-dev/keiko-security";
11
- export { AuthenticationError, CancelledError, CircuitOpenError, ConfigInvalidError, ContextOverflowError, ERROR_CODES, GatewayError, MalformedToolCallError, ModelRefusalError, ProviderError, RateLimitError, TimeoutError, TransportError, UnknownModelError, type ErrorCode, } from "@oscharko-dev/keiko-security/errors/gateway";
11
+ export { AuthenticationError, CancelledError, CircuitOpenError, ConfigInvalidError, ContextOverflowError, ERROR_CODES, GatewayEgressError, GatewayError, MalformedToolCallError, ModelRefusalError, ProviderError, RateLimitError, TimeoutError, TransportError, UnknownModelError, type ErrorCode, type GatewayEgressErrorCode, } from "@oscharko-dev/keiko-security/errors/gateway";
12
12
  export * as QualityIntelligence from "./qualityIntelligence/index.js";
13
13
  export { QualityIntelligenceSafeErrorException, createInMemoryReplayCache, deriveReplayCacheKey, dispatchQualityIntelligenceRequest, isCacheable, type QualityIntelligenceBudgetState, type QualityIntelligenceCancellationHandle, type QualityIntelligenceReplayCachePort, type QualityIntelligenceSafeError, type QualityIntelligenceSafeErrorCode, } from "./qualityIntelligence/index.js";
14
14
  export type { QualityIntelligenceDispatcherArgs, QualityIntelligenceDispatcherResult, } from "./qualityIntelligence/dispatcher.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAE3D,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,KAAK,EACL,SAAS,EACT,YAAY,EACZ,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,SAAS,EACT,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,WAAW,EACX,WAAW,EACX,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,gCAAgC,EAChC,cAAc,EACd,2BAA2B,EAC3B,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,+BAA+B,GACrC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,qBAAqB,EACrB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,iCAAiC,EACjC,yBAAyB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,sBAAsB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,GAC5B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAEtD,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,KAAK,SAAS,GACf,MAAM,6CAA6C,CAAC;AAKrD,OAAO,KAAK,mBAAmB,MAAM,gCAAgC,CAAC;AAGtE,OAAO,EACL,qCAAqC,EACrC,yBAAyB,EACzB,oBAAoB,EACpB,kCAAkC,EAClC,WAAW,EACX,KAAK,8BAA8B,EACnC,KAAK,qCAAqC,EAC1C,KAAK,kCAAkC,EACvC,KAAK,4BAA4B,EACjC,KAAK,gCAAgC,GACtC,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,iCAAiC,EACjC,mCAAmC,GACpC,MAAM,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAE3D,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,KAAK,EACL,SAAS,EACT,YAAY,EACZ,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,SAAS,EACT,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,eAAe,EACf,cAAc,EACd,WAAW,EACX,WAAW,EACX,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,gCAAgC,EAChC,cAAc,EACd,2BAA2B,EAC3B,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,+BAA+B,GACrC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,+BAA+B,EAC/B,YAAY,EACZ,eAAe,EACf,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,qBAAqB,EACrB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,iCAAiC,EACjC,yBAAyB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,GAC5B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAEtD,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,sBAAsB,GAC5B,MAAM,6CAA6C,CAAC;AAKrD,OAAO,KAAK,mBAAmB,MAAM,gCAAgC,CAAC;AAGtE,OAAO,EACL,qCAAqC,EACrC,yBAAyB,EACzB,oBAAoB,EACpB,kCAAkC,EAClC,WAAW,EACX,KAAK,8BAA8B,EACnC,KAAK,qCAAqC,EAC1C,KAAK,kCAAkC,EACvC,KAAK,4BAA4B,EACjC,KAAK,gCAAgC,GACtC,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,iCAAiC,EACjC,mCAAmC,GACpC,MAAM,qCAAqC,CAAC"}
@@ -13,13 +13,13 @@
13
13
  export { KEIKO_MODEL_GATEWAY_VERSION } from "./version.js";
14
14
  export { CAPABILITY_REGISTRY, createDefaultChatCapability, explainConversationIneligibility, findCapability, isConversationEligibleModel, listCapabilities, resolveCostClass, selectCheapest, } from "./capabilities.js";
15
15
  export { CAPABILITY_DATA } from "./capabilities.data.js";
16
- export { apiKeyHeaderValue, DEFAULT_API_KEY_HEADER_NAME, loadConfigFromFile, normalizeApiKeyHeaderName, parseGatewayConfig, toSafeObject, validateBaseUrl, } from "./config.js";
16
+ export { apiKeyHeaderValue, DEFAULT_API_KEY_HEADER_NAME, loadConfigFromFile, loadEgressConfigFromFile, normalizeApiKeyHeaderName, parseGatewayConfig, resolveOutboundHttpEgressConfig, toSafeObject, validateBaseUrl, } from "./config.js";
17
17
  export { Gateway } from "./gateway.js";
18
18
  export { assertConfiguredModel, findConfiguredCapability, listConfiguredCapabilities, selectConfiguredModel, } from "./model-selection.js";
19
19
  export { assertCompatibleEmbeddingIdentity, verifyEmbeddingCapability, } from "./embedding.js";
20
- export { requestOpenAIEmbedding, } from "./openai-embedding-adapter.js";
20
+ export { requestOpenAIEmbedding, requestOpenAIEmbeddingBatch, } from "./openai-embedding-adapter.js";
21
21
  export { redact } from "@oscharko-dev/keiko-security";
22
- export { AuthenticationError, CancelledError, CircuitOpenError, ConfigInvalidError, ContextOverflowError, ERROR_CODES, GatewayError, MalformedToolCallError, ModelRefusalError, ProviderError, RateLimitError, TimeoutError, TransportError, UnknownModelError, } from "@oscharko-dev/keiko-security/errors/gateway";
22
+ export { AuthenticationError, CancelledError, CircuitOpenError, ConfigInvalidError, ContextOverflowError, ERROR_CODES, GatewayEgressError, GatewayError, MalformedToolCallError, ModelRefusalError, ProviderError, RateLimitError, TimeoutError, TransportError, UnknownModelError, } from "@oscharko-dev/keiko-security/errors/gateway";
23
23
  // Quality Intelligence sub-module (Epic #270, Issue #279). Exposed under a namespace so
24
24
  // callers reach typed task profiles, the prompt-segmentation seam, the capability gate,
25
25
  // the safe-error taxonomy, and (post-M3) the dispatcher via a single import surface.
@@ -1 +1 @@
1
- {"version":3,"file":"openai-adapter.d.ts","sourceRoot":"","sources":["../src/openai-adapter.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACV,SAAS,EAET,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAElB,eAAe,EAEhB,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC;CAC3C;AA4PD,qBAAa,aAAc,YAAW,eAAe;IAGvC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;gBAEN,IAAI,EAAE,WAAW;IAI9C,IAAI,GACF,SAAS,cAAc,EACvB,QAAQ,mBAAmB,KAC1B,OAAO,CAAC,kBAAkB,CAAC,CA2B5B;IAKF,UAAU,GACR,MAAM,aAAa,EACnB,SAAS,cAAc,EACvB,QAAQ,mBAAmB,KAC1B,cAAc,CAAC,kBAAkB,CAAC,CAqBnC;YAIa,YAAY;IA0B3B,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,cAAc;YAWR,QAAQ;IA6BtB,OAAO,CAAC,gBAAgB;YAmBV,QAAQ;YAYR,aAAa;CAO5B"}
1
+ {"version":3,"file":"openai-adapter.d.ts","sourceRoot":"","sources":["../src/openai-adapter.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAEV,SAAS,EAET,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAElB,eAAe,EAEhB,MAAM,YAAY,CAAC;AAmBpB,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC;CAC3C;AA2RD,qBAAa,aAAc,YAAW,eAAe;IAGvC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;gBAEN,IAAI,EAAE,WAAW;IAI9C,IAAI,GACF,SAAS,cAAc,EACvB,QAAQ,mBAAmB,KAC1B,OAAO,CAAC,kBAAkB,CAAC,CA2B5B;IAKF,UAAU,GACR,MAAM,aAAa,EACnB,SAAS,cAAc,EACvB,QAAQ,mBAAmB,KAC1B,cAAc,CAAC,kBAAkB,CAAC,CAqBnC;YAUa,YAAY;IA+B3B,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,cAAc;YAeR,QAAQ;IA6BtB,OAAO,CAAC,gBAAgB;YAuBV,QAAQ;YAYR,aAAa;CAO5B"}
@@ -2,12 +2,33 @@
2
2
  // AbortSignal. fetch, clock, request-id, and cost class are injected so tests run
3
3
  // with no network I/O and no real time. The raw provider body is never echoed into
4
4
  // an error; only a redacted, status-level summary is surfaced.
5
- import { AuthenticationError, CancelledError, ContextOverflowError, ModelRefusalError, ProviderError, RateLimitError, TimeoutError, TransportError, } from "@oscharko-dev/keiko-security/errors/gateway";
5
+ import { AuthenticationError, CancelledError, ContextOverflowError, ERROR_CODES, GatewayEgressError, ModelRefusalError, ProviderError, RateLimitError, TimeoutError, TransportError, } from "@oscharko-dev/keiko-security/errors/gateway";
6
6
  import { apiKeyHeaderValue, DEFAULT_API_KEY_HEADER_NAME } from "./config.js";
7
- import { gatewayFetch, readJsonCapped, readSseStream } from "./http.js";
7
+ import { gatewayFetch, OutboundHttpEgressError, readJsonCapped, readSseStream, } from "./http.js";
8
8
  import { normalizeChatResponse, textFromContent } from "./normalize.js";
9
9
  import { redact } from "@oscharko-dev/keiko-security";
10
10
  const PROVIDER_EMPTY_ASSISTANT_STATUS = 200;
11
+ const GATEWAY_EGRESS_CODES = {
12
+ PROXY_UNREACHABLE: ERROR_CODES.PROXY_UNREACHABLE,
13
+ PROXY_AUTH_REQUIRED: ERROR_CODES.PROXY_AUTH_REQUIRED,
14
+ PROXY_EGRESS_FAILED: ERROR_CODES.PROXY_EGRESS_FAILED,
15
+ PROXY_BLOCKED_BY_POLICY: ERROR_CODES.PROXY_BLOCKED_BY_POLICY,
16
+ TLS_CA_FAILURE: ERROR_CODES.TLS_CA_FAILURE,
17
+ };
18
+ const GATEWAY_EGRESS_MESSAGES = {
19
+ PROXY_UNREACHABLE: "configured proxy is unreachable",
20
+ PROXY_AUTH_REQUIRED: "configured proxy requires authentication",
21
+ PROXY_EGRESS_FAILED: "configured proxy failed outbound egress",
22
+ PROXY_BLOCKED_BY_POLICY: "configured proxy blocked outbound egress",
23
+ TLS_CA_FAILURE: "TLS certificate verification failed for outbound egress",
24
+ };
25
+ function buildMessageContent(content, parts) {
26
+ if (parts === undefined)
27
+ return content;
28
+ return parts.map((part) => part.type === "text"
29
+ ? { type: "text", text: part.text }
30
+ : { type: "image_url", image_url: { url: part.image_url.url } });
31
+ }
11
32
  function buildMessage(message) {
12
33
  const toolCalls = message.toolCalls?.map((call) => ({
13
34
  id: call.id,
@@ -18,7 +39,7 @@ function buildMessage(message) {
18
39
  role: message.role,
19
40
  content: message.role === "assistant" && toolCalls !== undefined && toolCalls.length > 0
20
41
  ? null
21
- : message.content,
42
+ : buildMessageContent(message.content, message.contentParts),
22
43
  ...(message.role === "tool" && message.toolCallId !== undefined
23
44
  ? { tool_call_id: message.toolCallId }
24
45
  : {}),
@@ -184,6 +205,11 @@ function apiKeyHeaders(config) {
184
205
  const headerName = config.apiKeyHeaderName ?? DEFAULT_API_KEY_HEADER_NAME;
185
206
  return { [headerName]: apiKeyHeaderValue(headerName, config.apiKey) };
186
207
  }
208
+ function mapOutboundEgressError(error, secrets) {
209
+ if (!(error instanceof OutboundHttpEgressError))
210
+ return undefined;
211
+ return new GatewayEgressError(GATEWAY_EGRESS_CODES[error.code], GATEWAY_EGRESS_MESSAGES[error.code], secrets);
212
+ }
187
213
  export class OpenAiAdapter {
188
214
  deps;
189
215
  now;
@@ -233,15 +259,26 @@ export class OpenAiAdapter {
233
259
  assertUsableAssistantResponse(assembled, config.modelId, secrets);
234
260
  yield { type: "done", response: redactResponse(assembled, secrets) };
235
261
  };
236
- // Iterates the SSE stream, yielding each redacted content token while mutating
237
- // `acc` with the raw accumulated content, finish reason, and final usage counts.
262
+ // Iterates the SSE stream, yielding redacted content tokens while mutating `acc`.
263
+ // Redaction is applied to the full accumulated buffer on every delta so that a
264
+ // configured secret straddling two SSE chunk boundaries is still caught. We track
265
+ // how many characters of the REDACTED output we have already emitted and yield only
266
+ // the new suffix each time. When a cross-delta match shrinks the redacted string
267
+ // relative to what was emitted, the cursor overshoots and the tail (containing the
268
+ // secret or its replacement) is deferred to the terminal `done` chunk, which always
269
+ // redacts the full `acc.content` independently via redactResponse().
238
270
  async *streamDeltas(response, config, secrets, acc) {
271
+ let emittedRedactedLength = 0;
239
272
  try {
240
273
  for await (const chunk of readSseStream(response)) {
241
274
  const content = deltaFromChunk(chunk);
242
275
  if (content !== undefined) {
243
276
  acc.content += content;
244
- yield redact(content, secrets);
277
+ const redacted = redact(acc.content, secrets);
278
+ if (redacted.length > emittedRedactedLength) {
279
+ yield redacted.slice(emittedRedactedLength);
280
+ emittedRedactedLength = redacted.length;
281
+ }
245
282
  }
246
283
  const finish = finishReasonFromChunk(chunk);
247
284
  if (finish !== undefined)
@@ -280,6 +317,10 @@ export class OpenAiAdapter {
280
317
  if (error instanceof CancelledError || error instanceof TimeoutError) {
281
318
  return error;
282
319
  }
320
+ const egressError = mapOutboundEgressError(error, secrets);
321
+ if (egressError !== undefined) {
322
+ return egressError;
323
+ }
283
324
  return new TransportError(`stream read failed for '${config.modelId}'`, secrets);
284
325
  }
285
326
  async dispatch(request, config, secrets, stream = false) {
@@ -310,6 +351,10 @@ export class OpenAiAdapter {
310
351
  if (cancel?.aborted === true) {
311
352
  return new CancelledError(`request for '${config.modelId}' cancelled`, secrets);
312
353
  }
354
+ const egressError = mapOutboundEgressError(error, secrets);
355
+ if (egressError !== undefined) {
356
+ return egressError;
357
+ }
313
358
  if (timeout.aborted) {
314
359
  return new TimeoutError(`request for '${config.modelId}' timed out`, secrets);
315
360
  }
@@ -15,6 +15,24 @@ export interface OpenAIEmbeddingSuccess {
15
15
  readonly modelId: string;
16
16
  readonly modelRevision?: string;
17
17
  }
18
+ export interface OpenAIEmbeddingBatchRequest {
19
+ readonly endpoint: string;
20
+ readonly apiKey: string;
21
+ readonly apiKeyHeaderName?: string;
22
+ readonly modelId: string;
23
+ readonly inputs: readonly string[];
24
+ readonly signal?: AbortSignal;
25
+ readonly timeoutMs?: number;
26
+ readonly fetchImpl?: typeof fetch;
27
+ readonly egress?: OutboundHttpEgressConfig | undefined;
28
+ }
29
+ export type OpenAIEmbeddingBatchOutcome = {
30
+ readonly ok: true;
31
+ readonly value: readonly OpenAIEmbeddingSuccess[];
32
+ } | {
33
+ readonly ok: false;
34
+ readonly kind: OpenAIEmbeddingErrorKind;
35
+ };
18
36
  export type OpenAIEmbeddingOutcome = {
19
37
  readonly ok: true;
20
38
  readonly value: OpenAIEmbeddingSuccess;
@@ -22,6 +40,7 @@ export type OpenAIEmbeddingOutcome = {
22
40
  readonly ok: false;
23
41
  readonly kind: OpenAIEmbeddingErrorKind;
24
42
  };
25
- export type OpenAIEmbeddingErrorKind = "wrong-header" | "rate-limited" | "unsupported-model" | "timeout" | "cancelled" | "transport" | "invalid-response";
43
+ export type OpenAIEmbeddingErrorKind = "wrong-header" | "rate-limited" | "unsupported-model" | "timeout" | "cancelled" | "transport" | "proxy-unreachable" | "proxy-auth-required" | "proxy-egress-failed" | "proxy-blocked-by-policy" | "tls-ca-failure" | "invalid-response";
26
44
  export declare function requestOpenAIEmbedding(request: OpenAIEmbeddingRequest): Promise<OpenAIEmbeddingOutcome>;
45
+ export declare function requestOpenAIEmbeddingBatch(request: OpenAIEmbeddingBatchRequest): Promise<OpenAIEmbeddingBatchOutcome>;
27
46
  //# sourceMappingURL=openai-embedding-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai-embedding-adapter.d.ts","sourceRoot":"","sources":["../src/openai-embedding-adapter.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;CACxD;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,MAAM,sBAAsB,GAC9B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,wBAAwB,GAChC,cAAc,GACd,cAAc,GACd,mBAAmB,GACnB,SAAS,GACT,WAAW,GACX,WAAW,GACX,kBAAkB,CAAC;AA0KvB,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,sBAAsB,CAAC,CAYjC"}
1
+ {"version":3,"file":"openai-embedding-adapter.d.ts","sourceRoot":"","sources":["../src/openai-embedding-adapter.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;CACxD;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAQD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;CACxD;AAED,MAAM,MAAM,2BAA2B,GAEnC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,sBAAsB,EAAE,CAAA;CAAE,GACxE;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,sBAAsB,GAC9B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,wBAAwB,GAChC,cAAc,GACd,cAAc,GACd,mBAAmB,GACnB,SAAS,GACT,WAAW,GACX,WAAW,GACX,mBAAmB,GACnB,qBAAqB,GACrB,qBAAqB,GACrB,yBAAyB,GACzB,gBAAgB,GAChB,kBAAkB,CAAC;AAoLvB,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,sBAAsB,CAAC,CAYjC;AAuHD,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,2BAA2B,CAAC,CAetC"}
@@ -2,7 +2,14 @@
2
2
  // dependency), mirroring openai-adapter.ts. Surfaces only structural status
3
3
  // information; the raw provider body never escapes this module.
4
4
  import { apiKeyHeaderValue } from "./config.js";
5
- import { gatewayFetch, readJsonCapped } from "./http.js";
5
+ import { gatewayFetch, OutboundHttpEgressError, readJsonCapped, } from "./http.js";
6
+ const OUTBOUND_EMBEDDING_KINDS = {
7
+ PROXY_UNREACHABLE: "proxy-unreachable",
8
+ PROXY_AUTH_REQUIRED: "proxy-auth-required",
9
+ PROXY_EGRESS_FAILED: "proxy-egress-failed",
10
+ PROXY_BLOCKED_BY_POLICY: "proxy-blocked-by-policy",
11
+ TLS_CA_FAILURE: "tls-ca-failure",
12
+ };
6
13
  function isRecord(value) {
7
14
  return typeof value === "object" && value !== null && !Array.isArray(value);
8
15
  }
@@ -67,10 +74,12 @@ function classifyStatus(status) {
67
74
  // transport error. Without this distinction, callers cannot tell whether their user
68
75
  // pressed Cancel or the server hung. #192 Copilot finding.
69
76
  function classifyDispatchError(error, timeoutSignal, callerSignal) {
70
- if (timeoutSignal.aborted)
71
- return "timeout";
72
77
  if (callerSignal?.aborted === true)
73
78
  return "cancelled";
79
+ if (error instanceof OutboundHttpEgressError)
80
+ return OUTBOUND_EMBEDDING_KINDS[error.code];
81
+ if (timeoutSignal.aborted)
82
+ return "timeout";
74
83
  if (error instanceof DOMException && error.name === "TimeoutError")
75
84
  return "timeout";
76
85
  // A bare AbortError without either of our signals being aborted is a transport error
@@ -107,15 +116,15 @@ async function discardBody(response) {
107
116
  // ignore — body discarded intentionally
108
117
  }
109
118
  }
110
- async function dispatch(request, built) {
119
+ async function dispatch(built, fetchImpl, egress) {
111
120
  try {
112
121
  return await gatewayFetch(built.url, {
113
122
  method: "POST",
114
123
  headers: built.headers,
115
124
  body: built.body,
116
125
  signal: built.signal,
117
- ...(request.fetchImpl !== undefined ? { fetchImpl: request.fetchImpl } : {}),
118
- ...(request.egress !== undefined ? { egress: request.egress } : {}),
126
+ ...(fetchImpl !== undefined ? { fetchImpl } : {}),
127
+ ...(egress !== undefined ? { egress } : {}),
119
128
  });
120
129
  }
121
130
  catch (error) {
@@ -143,7 +152,7 @@ async function decodeSuccess(response, request) {
143
152
  }
144
153
  export async function requestOpenAIEmbedding(request) {
145
154
  const built = buildRequest(request);
146
- const dispatched = await dispatch(request, built);
155
+ const dispatched = await dispatch(built, request.fetchImpl, request.egress);
147
156
  if (typeof dispatched === "string") {
148
157
  return { ok: false, kind: dispatched };
149
158
  }
@@ -154,3 +163,109 @@ export async function requestOpenAIEmbedding(request) {
154
163
  }
155
164
  return decodeSuccess(dispatched, request);
156
165
  }
166
+ // ─── Array-batch transport (#189 GRD-004) ────────────────────────────────────
167
+ function buildBatchRequest(request) {
168
+ const name = headerName(request.apiKeyHeaderName);
169
+ const headers = {
170
+ "content-type": "application/json",
171
+ [name]: apiKeyHeaderValue(name, request.apiKey),
172
+ };
173
+ // OpenAI-compatible body: `input` is the array. Identical envelope to the scalar path
174
+ // except the array value, so the same gateway/TLS/egress handling applies.
175
+ const body = JSON.stringify({ model: request.modelId, input: request.inputs });
176
+ const timeoutSignal = AbortSignal.timeout(request.timeoutMs ?? 30_000);
177
+ const signal = request.signal !== undefined ? AbortSignal.any([timeoutSignal, request.signal]) : timeoutSignal;
178
+ return {
179
+ url: joinUrl(request.endpoint),
180
+ headers,
181
+ body,
182
+ signal,
183
+ timeoutSignal,
184
+ callerSignal: request.signal,
185
+ };
186
+ }
187
+ // Resolve the slot index for one `data[]` entry, or -1 if its index is missing, non-integer,
188
+ // out of range, or already filled (duplicate).
189
+ function batchSlotIndex(item, count, slots) {
190
+ const index = typeof item.index === "number" ? item.index : -1;
191
+ if (!Number.isInteger(index) || index < 0 || index >= count)
192
+ return -1;
193
+ return slots[index] === undefined ? index : -1;
194
+ }
195
+ function buildBatchSuccess(item, embedding, ctx) {
196
+ const modelId = (typeof item.model === "string" ? item.model : undefined) ?? ctx.topModel ?? ctx.requestModelId;
197
+ return {
198
+ vector: Float32Array.from(embedding),
199
+ modelId,
200
+ ...(ctx.topRevision !== undefined ? { modelRevision: ctx.topRevision } : {}),
201
+ };
202
+ }
203
+ // Validate one `data[]` entry and place it at its declared `index`. Returns false on any
204
+ // malformed/duplicate/out-of-range item so the caller can fail the whole batch.
205
+ function placeBatchItem(item, ctx, slots) {
206
+ if (!isRecord(item))
207
+ return false;
208
+ const index = batchSlotIndex(item, ctx.count, slots);
209
+ if (index < 0)
210
+ return false;
211
+ const embedding = item.embedding;
212
+ if (!isNumberArray(embedding) || embedding.length === 0)
213
+ return false;
214
+ slots[index] = buildBatchSuccess(item, embedding, ctx);
215
+ return true;
216
+ }
217
+ function buildBatchContext(payload, request) {
218
+ return {
219
+ count: request.inputs.length,
220
+ topModel: typeof payload.model === "string" ? payload.model : undefined,
221
+ topRevision: typeof payload.model_revision === "string" ? payload.model_revision : undefined,
222
+ requestModelId: request.modelId,
223
+ };
224
+ }
225
+ async function decodeBatchSuccess(response, request) {
226
+ let payload;
227
+ try {
228
+ payload = await readJsonCapped(response);
229
+ }
230
+ catch {
231
+ return { ok: false, kind: "invalid-response" };
232
+ }
233
+ if (!isRecord(payload) || !Array.isArray(payload.data)) {
234
+ return { ok: false, kind: "invalid-response" };
235
+ }
236
+ const ctx = buildBatchContext(payload, request);
237
+ if (payload.data.length !== ctx.count) {
238
+ return { ok: false, kind: "invalid-response" };
239
+ }
240
+ // Place each item at its declared `index` so the result is strictly aligned to `inputs`
241
+ // regardless of provider ordering. Any missing/duplicate/out-of-range index → invalid.
242
+ const slots = new Array(ctx.count);
243
+ for (const item of payload.data) {
244
+ if (!placeBatchItem(item, ctx, slots)) {
245
+ return { ok: false, kind: "invalid-response" };
246
+ }
247
+ }
248
+ const value = [];
249
+ for (const slot of slots) {
250
+ if (slot === undefined)
251
+ return { ok: false, kind: "invalid-response" };
252
+ value.push(slot);
253
+ }
254
+ return { ok: true, value };
255
+ }
256
+ export async function requestOpenAIEmbeddingBatch(request) {
257
+ if (request.inputs.length === 0) {
258
+ return { ok: true, value: [] };
259
+ }
260
+ const built = buildBatchRequest(request);
261
+ const dispatched = await dispatch(built, request.fetchImpl, request.egress);
262
+ if (typeof dispatched === "string") {
263
+ return { ok: false, kind: dispatched };
264
+ }
265
+ if (!dispatched.ok) {
266
+ const kind = classifyStatus(dispatched.status) ?? "transport";
267
+ await discardBody(dispatched);
268
+ return { ok: false, kind };
269
+ }
270
+ return decodeBatchSuccess(dispatched, request);
271
+ }
@@ -1,4 +1,13 @@
1
1
  import type { ModelCapability } from "@oscharko-dev/keiko-contracts";
2
- import type { QualityIntelligenceTaskProfile } from "./taskProfiles.js";
2
+ import type { ModelSelectionQuery } from "../model-selection.js";
3
+ import type { QualityIntelligenceCapability, QualityIntelligenceTaskProfile } from "./taskProfiles.js";
4
+ /**
5
+ * Project a profile's required QI capabilities onto the gateway `ModelSelectionQuery` constraints
6
+ * the selector understands. This is the WRITE side of the SAME capability mapping that `modelSupports`
7
+ * READS, kept in one file so auto-selection and the gate can never drift (Issue #762: a single shared
8
+ * capability mapping, never a per-stage duplicate). text → chat kind (every QI task profile is a chat
9
+ * task); structured-output → structuredOutput; function-calling → toolCalling; vision → supportsImageInput.
10
+ */
11
+ export declare function buildSelectionQueryForCapabilities(required: readonly QualityIntelligenceCapability[]): ModelSelectionQuery;
3
12
  export declare function assertProfileCompatibleWithModel(profile: QualityIntelligenceTaskProfile, modelCapability: ModelCapability): void;
4
13
  //# sourceMappingURL=capabilityGate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capabilityGate.d.ts","sourceRoot":"","sources":["../../src/qualityIntelligence/capabilityGate.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,KAAK,EAEV,8BAA8B,EAC/B,MAAM,mBAAmB,CAAC;AAe3B,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,8BAA8B,EACvC,eAAe,EAAE,eAAe,GAC/B,IAAI,CAWN"}
1
+ {"version":3,"file":"capabilityGate.d.ts","sourceRoot":"","sources":["../../src/qualityIntelligence/capabilityGate.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EACV,6BAA6B,EAC7B,8BAA8B,EAC/B,MAAM,mBAAmB,CAAC;AAE3B;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,SAAS,6BAA6B,EAAE,GACjD,mBAAmB,CAyBrB;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,8BAA8B,EACvC,eAAe,EAAE,eAAe,GAC/B,IAAI,CAWN"}