@oscharko-dev/keiko 0.2.0-beta.4 → 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 (682) hide show
  1. package/README.md +39 -14
  2. package/dist/ui/csp-hashes.json +16 -21
  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 +3 -1
  109. package/node_modules/@oscharko-dev/keiko-cli/dist/run.d.ts.map +1 -1
  110. package/node_modules/@oscharko-dev/keiko-cli/dist/run.js +123 -43
  111. package/node_modules/@oscharko-dev/keiko-cli/dist/runner.d.ts.map +1 -1
  112. package/node_modules/@oscharko-dev/keiko-cli/dist/runner.js +20 -4
  113. package/node_modules/@oscharko-dev/keiko-cli/dist/ui.d.ts +1 -1
  114. package/node_modules/@oscharko-dev/keiko-cli/dist/ui.d.ts.map +1 -1
  115. package/node_modules/@oscharko-dev/keiko-cli/dist/ui.js +17 -14
  116. package/node_modules/@oscharko-dev/keiko-cli/package.json +1 -1
  117. package/node_modules/@oscharko-dev/keiko-contracts/dist/.tsbuildinfo +1 -1
  118. package/node_modules/@oscharko-dev/keiko-contracts/dist/bff-wire.d.ts +7 -0
  119. package/node_modules/@oscharko-dev/keiko-contracts/dist/bff-wire.d.ts.map +1 -1
  120. package/node_modules/@oscharko-dev/keiko-contracts/dist/connected-context.d.ts.map +1 -1
  121. package/node_modules/@oscharko-dev/keiko-contracts/dist/connected-context.js +1 -2
  122. package/node_modules/@oscharko-dev/keiko-contracts/dist/evidence.d.ts +1 -0
  123. package/node_modules/@oscharko-dev/keiko-contracts/dist/evidence.d.ts.map +1 -1
  124. package/node_modules/@oscharko-dev/keiko-contracts/dist/gateway.d.ts +12 -0
  125. package/node_modules/@oscharko-dev/keiko-contracts/dist/gateway.d.ts.map +1 -1
  126. package/node_modules/@oscharko-dev/keiko-contracts/dist/index.d.ts +4 -2
  127. package/node_modules/@oscharko-dev/keiko-contracts/dist/index.d.ts.map +1 -1
  128. package/node_modules/@oscharko-dev/keiko-contracts/dist/index.js +4 -1
  129. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-validation.d.ts.map +1 -1
  130. package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-audit-events.d.ts +13 -1
  131. package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-audit-events.d.ts.map +1 -1
  132. package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-audit-events.js +7 -6
  133. package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-internal.d.ts.map +1 -1
  134. package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-internal.js +1 -1
  135. package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-operations.d.ts.map +1 -1
  136. package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-workflow-port.d.ts.map +1 -1
  137. package/node_modules/@oscharko-dev/keiko-contracts/dist/memory-workflow-port.js +1 -1
  138. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/bffWire.d.ts +23 -4
  139. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/bffWire.d.ts.map +1 -1
  140. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/index.d.ts +1 -0
  141. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/index.d.ts.map +1 -1
  142. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/index.js +1 -0
  143. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/sourceEnvelope.d.ts +1 -0
  144. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/sourceEnvelope.d.ts.map +1 -1
  145. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/sourceEnvelope.js +26 -0
  146. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/testQualityRubric.d.ts +5 -3
  147. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/testQualityRubric.d.ts.map +1 -1
  148. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/testQualityRubric.js +29 -3
  149. package/node_modules/@oscharko-dev/keiko-contracts/dist/text-safety.d.ts +7 -0
  150. package/node_modules/@oscharko-dev/keiko-contracts/dist/text-safety.d.ts.map +1 -0
  151. package/node_modules/@oscharko-dev/keiko-contracts/dist/text-safety.js +58 -0
  152. package/node_modules/@oscharko-dev/keiko-contracts/package.json +5 -1
  153. package/node_modules/@oscharko-dev/keiko-evaluations/dist/.tsbuildinfo +1 -1
  154. package/node_modules/@oscharko-dev/keiko-evaluations/dist/surface-parity.d.ts.map +1 -1
  155. package/node_modules/@oscharko-dev/keiko-evaluations/package.json +1 -1
  156. package/node_modules/@oscharko-dev/keiko-evidence/dist/.tsbuildinfo +1 -1
  157. package/node_modules/@oscharko-dev/keiko-evidence/dist/index.d.ts +1 -1
  158. package/node_modules/@oscharko-dev/keiko-evidence/dist/index.d.ts.map +1 -1
  159. package/node_modules/@oscharko-dev/keiko-evidence/dist/index.js +1 -1
  160. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/candidatesArtifact.d.ts +7 -0
  161. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/candidatesArtifact.d.ts.map +1 -1
  162. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/candidatesArtifact.js +62 -13
  163. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/companionStore.d.ts +3 -3
  164. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/companionStore.d.ts.map +1 -1
  165. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/companionStore.js +31 -11
  166. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.d.ts +35 -3
  167. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.d.ts.map +1 -1
  168. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.js +107 -3
  169. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.d.ts +15 -1
  170. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.d.ts.map +1 -1
  171. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.js +248 -36
  172. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.d.ts +4 -4
  173. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.d.ts.map +1 -1
  174. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.js +1 -1
  175. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/manifestSchema.d.ts +33 -2
  176. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/manifestSchema.d.ts.map +1 -1
  177. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/store.d.ts +34 -1
  178. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/store.d.ts.map +1 -1
  179. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/store.js +95 -22
  180. package/node_modules/@oscharko-dev/keiko-evidence/dist/side-file.d.ts.map +1 -1
  181. package/node_modules/@oscharko-dev/keiko-evidence/dist/side-file.js +17 -5
  182. package/node_modules/@oscharko-dev/keiko-evidence/dist/store.d.ts.map +1 -1
  183. package/node_modules/@oscharko-dev/keiko-evidence/dist/store.js +128 -12
  184. package/node_modules/@oscharko-dev/keiko-evidence/dist/workflow-evidence.d.ts.map +1 -1
  185. package/node_modules/@oscharko-dev/keiko-evidence/dist/workflow-evidence.js +1 -3
  186. package/node_modules/@oscharko-dev/keiko-evidence/package.json +1 -1
  187. package/node_modules/@oscharko-dev/keiko-harness/dist/.tsbuildinfo +1 -1
  188. package/node_modules/@oscharko-dev/keiko-harness/package.json +1 -1
  189. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/.tsbuildinfo +1 -1
  190. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-set-lifecycle.d.ts.map +1 -1
  191. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-set-lifecycle.js +1 -2
  192. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/composition.d.ts.map +1 -1
  193. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/composition.js +1 -1
  194. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/index.d.ts +0 -1
  195. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/index.d.ts.map +1 -1
  196. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/index.js +0 -1
  197. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/model-gateway-answer-generator.d.ts.map +1 -1
  198. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/model-gateway-answer-generator.js +7 -1
  199. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/types.d.ts.map +1 -1
  200. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/types.js +2 -3
  201. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/extract.d.ts.map +1 -1
  202. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/extract.js +45 -21
  203. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/media-type.d.ts.map +1 -1
  204. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/media-type.js +1 -0
  205. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/walk.d.ts.map +1 -1
  206. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/walk.js +11 -3
  207. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/dimensions.d.ts +2 -0
  208. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/dimensions.d.ts.map +1 -1
  209. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/dimensions.js +42 -0
  210. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/fixtures.d.ts.map +1 -1
  211. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/fixtures.js +34 -0
  212. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/index.d.ts +1 -1
  213. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/index.d.ts.map +1 -1
  214. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/index.js +1 -1
  215. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/report.d.ts.map +1 -1
  216. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/report.js +7 -6
  217. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/runner.d.ts.map +1 -1
  218. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/runner.js +7 -1
  219. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/types.d.ts +4 -0
  220. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/types.d.ts.map +1 -1
  221. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/types.js +2 -0
  222. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/index.d.ts +1 -1
  223. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/index.d.ts.map +1 -1
  224. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/index.js +1 -1
  225. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/embedding-batcher.d.ts.map +1 -1
  226. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/embedding-batcher.js +121 -3
  227. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/orchestrator.d.ts.map +1 -1
  228. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/orchestrator.js +34 -4
  229. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/_internal.d.ts +1 -0
  230. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/_internal.d.ts.map +1 -1
  231. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/_internal.js +63 -0
  232. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/docx-parser.d.ts.map +1 -1
  233. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/docx-parser.js +4 -7
  234. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/html-parser.d.ts.map +1 -1
  235. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/html-parser.js +67 -11
  236. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/index.d.ts +1 -0
  237. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/index.d.ts.map +1 -1
  238. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/index.js +3 -0
  239. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/json-parser.d.ts.map +1 -1
  240. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/json-parser.js +39 -3
  241. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/ocr/null-ocr-adapter.d.ts.map +1 -1
  242. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/ocr/ocr-pipeline-parser.d.ts.map +1 -1
  243. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/ocr/ocr-pipeline-parser.js +46 -11
  244. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/parser-test-fixtures.d.ts +2 -0
  245. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/parser-test-fixtures.d.ts.map +1 -1
  246. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/parser-test-fixtures.js +2 -0
  247. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/pdf-parser.d.ts.map +1 -1
  248. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/pdf-parser.js +114 -0
  249. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/xlsx-parser.d.ts +3 -0
  250. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/xlsx-parser.d.ts.map +1 -0
  251. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/xlsx-parser.js +425 -0
  252. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/retention-applier.d.ts.map +1 -1
  253. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/qualityIntelligence/capsuleCorpus.d.ts +9 -4
  254. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/qualityIntelligence/capsuleCorpus.d.ts.map +1 -1
  255. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/qualityIntelligence/capsuleCorpus.js +11 -6
  256. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/retrieval-runner.js +15 -2
  257. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/scoped-vector-search.d.ts +1 -0
  258. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/scoped-vector-search.d.ts.map +1 -1
  259. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/scoped-vector-search.js +220 -7
  260. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/types.d.ts +2 -1
  261. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/types.d.ts.map +1 -1
  262. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/source-lifecycle.d.ts.map +1 -1
  263. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/source-lifecycle.js +3 -1
  264. package/node_modules/@oscharko-dev/keiko-local-knowledge/package.json +4 -2
  265. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/.tsbuildinfo +1 -1
  266. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/capture-safety.d.ts +4 -0
  267. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/capture-safety.d.ts.map +1 -0
  268. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/capture-safety.js +17 -0
  269. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/errors.d.ts +1 -1
  270. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/errors.d.ts.map +1 -1
  271. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/index.d.ts +1 -0
  272. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/index.d.ts.map +1 -1
  273. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/index.js +1 -0
  274. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/salience.js +1 -1
  275. package/node_modules/@oscharko-dev/keiko-memory-capture/package.json +1 -1
  276. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/.tsbuildinfo +1 -1
  277. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/_constants.d.ts +3 -0
  278. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/_constants.d.ts.map +1 -1
  279. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/_constants.js +5 -0
  280. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/consolidate.d.ts.map +1 -1
  281. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/consolidate.js +93 -30
  282. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/stale.d.ts.map +1 -1
  283. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/stale.js +3 -1
  284. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/types.d.ts +5 -0
  285. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/types.d.ts.map +1 -1
  286. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/types.js +1 -1
  287. package/node_modules/@oscharko-dev/keiko-memory-consolidation/package.json +2 -2
  288. package/node_modules/@oscharko-dev/keiko-memory-governance/dist/.tsbuildinfo +1 -1
  289. package/node_modules/@oscharko-dev/keiko-memory-governance/dist/forget.js +1 -1
  290. package/node_modules/@oscharko-dev/keiko-memory-governance/dist/types.js +1 -1
  291. package/node_modules/@oscharko-dev/keiko-memory-governance/package.json +2 -2
  292. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/.tsbuildinfo +1 -1
  293. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/context.d.ts.map +1 -1
  294. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/context.js +61 -18
  295. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/ranking.d.ts.map +1 -1
  296. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/ranking.js +3 -1
  297. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/retrieve.d.ts.map +1 -1
  298. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/retrieve.js +26 -4
  299. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/types.d.ts +9 -1
  300. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/types.d.ts.map +1 -1
  301. package/node_modules/@oscharko-dev/keiko-memory-retrieval/package.json +1 -1
  302. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/.tsbuildinfo +1 -1
  303. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/embeddings.d.ts +1 -0
  304. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/embeddings.d.ts.map +1 -1
  305. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/embeddings.js +21 -0
  306. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/index.d.ts +1 -1
  307. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/index.d.ts.map +1 -1
  308. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/migrate-encrypt.d.ts.map +1 -1
  309. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/migrate-encrypt.js +24 -4
  310. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/schema.d.ts +1 -1
  311. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/schema.d.ts.map +1 -1
  312. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/schema.js +27 -4
  313. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/tombstones.d.ts +1 -0
  314. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/tombstones.d.ts.map +1 -1
  315. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/tombstones.js +21 -4
  316. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/types.d.ts +22 -1
  317. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/types.d.ts.map +1 -1
  318. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/validate.d.ts.map +1 -1
  319. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/validate.js +3 -0
  320. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/vault.d.ts.map +1 -1
  321. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/vault.js +105 -28
  322. package/node_modules/@oscharko-dev/keiko-memory-vault/package.json +1 -1
  323. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/.tsbuildinfo +1 -1
  324. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/config.d.ts +2 -0
  325. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/config.d.ts.map +1 -1
  326. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/config.js +83 -69
  327. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/embedding.d.ts +3 -2
  328. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/embedding.d.ts.map +1 -1
  329. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/embedding.js +20 -16
  330. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/gateway.d.ts.map +1 -1
  331. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/gateway.js +9 -3
  332. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/http.d.ts.map +1 -1
  333. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/http.js +29 -3
  334. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/index.d.ts +4 -4
  335. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/index.d.ts.map +1 -1
  336. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/index.js +3 -3
  337. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/normalize.d.ts +1 -0
  338. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/normalize.d.ts.map +1 -1
  339. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/normalize.js +22 -1
  340. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-adapter.d.ts.map +1 -1
  341. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-adapter.js +69 -10
  342. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-embedding-adapter.d.ts +20 -1
  343. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-embedding-adapter.d.ts.map +1 -1
  344. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-embedding-adapter.js +122 -7
  345. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityGate.d.ts +10 -1
  346. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityGate.d.ts.map +1 -1
  347. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityGate.js +33 -11
  348. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityMapping.d.ts +4 -0
  349. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityMapping.d.ts.map +1 -0
  350. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/capabilityMapping.js +21 -0
  351. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/index.d.ts +1 -1
  352. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/index.d.ts.map +1 -1
  353. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/index.js +1 -1
  354. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/routing.d.ts.map +1 -1
  355. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/routing.js +2 -13
  356. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/resilience.d.ts +1 -0
  357. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/resilience.d.ts.map +1 -1
  358. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/resilience.js +18 -2
  359. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/types.d.ts +5 -1
  360. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/types.d.ts.map +1 -1
  361. package/node_modules/@oscharko-dev/keiko-model-gateway/package.json +1 -1
  362. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/.tsbuildinfo +1 -1
  363. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/assertions.d.ts +35 -0
  364. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/assertions.d.ts.map +1 -1
  365. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/assertions.js +74 -0
  366. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/deduplication.d.ts.map +1 -1
  367. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/deduplication.js +6 -2
  368. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/a11yBaseline.d.ts.map +1 -1
  369. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/a11yBaseline.js +64 -19
  370. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/cleanToScreenIr.d.ts.map +1 -1
  371. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/cleanToScreenIr.js +3 -0
  372. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/color.d.ts +6 -1
  373. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/color.d.ts.map +1 -1
  374. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/color.js +22 -9
  375. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/emissionPlan.d.ts +4 -1
  376. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/emissionPlan.d.ts.map +1 -1
  377. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/emissionPlan.js +28 -12
  378. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/htmlCssAdapter.d.ts.map +1 -1
  379. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/htmlCssAdapter.js +123 -33
  380. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/index.d.ts +2 -2
  381. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/index.d.ts.map +1 -1
  382. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/irTypes.d.ts +7 -4
  383. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/irTypes.d.ts.map +1 -1
  384. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/links.d.ts.map +1 -1
  385. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/links.js +13 -17
  386. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/navGraph.d.ts.map +1 -1
  387. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/navGraph.js +35 -12
  388. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/normalize.d.ts.map +1 -1
  389. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/normalize.js +54 -6
  390. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.d.ts +4 -0
  391. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.d.ts.map +1 -1
  392. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.js +29 -10
  393. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/tokens.d.ts.map +1 -1
  394. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/tokens.js +10 -4
  395. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/requirementExcerpt.d.ts.map +1 -1
  396. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/requirementExcerpt.js +15 -6
  397. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/staleness.d.ts +4 -0
  398. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/staleness.d.ts.map +1 -1
  399. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/staleness.js +162 -6
  400. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testDesignModel.d.ts +14 -2
  401. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testDesignModel.d.ts.map +1 -1
  402. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testDesignModel.js +50 -12
  403. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/validation.d.ts.map +1 -1
  404. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/validation.js +4 -2
  405. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/alm.d.ts.map +1 -1
  406. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/alm.js +29 -30
  407. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/markdown.d.ts.map +1 -1
  408. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/markdown.js +34 -5
  409. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/qtest.d.ts.map +1 -1
  410. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/qtest.js +29 -29
  411. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/spreadsheetSafeCsv.d.ts +2 -1
  412. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/spreadsheetSafeCsv.d.ts.map +1 -1
  413. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/spreadsheetSafeCsv.js +40 -2
  414. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/traceability.d.ts.map +1 -1
  415. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/traceability.js +12 -9
  416. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/xray.d.ts.map +1 -1
  417. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/xray.js +6 -2
  418. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/textSafety.d.ts +7 -0
  419. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/textSafety.d.ts.map +1 -1
  420. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/textSafety.js +7 -0
  421. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/candidateBounds.d.ts +10 -0
  422. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/candidateBounds.d.ts.map +1 -0
  423. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/candidateBounds.js +14 -0
  424. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/index.d.ts.map +1 -1
  425. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/index.js +3 -2
  426. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/parseGeneratedCandidates.d.ts.map +1 -1
  427. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/parseGeneratedCandidates.js +97 -50
  428. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/prompt.d.ts.map +1 -1
  429. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/prompt.js +35 -7
  430. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/index.d.ts +2 -2
  431. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/index.d.ts.map +1 -1
  432. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/index.js +2 -2
  433. package/node_modules/@oscharko-dev/keiko-quality-intelligence/package.json +1 -1
  434. package/node_modules/@oscharko-dev/keiko-sdk/dist/.tsbuildinfo +1 -1
  435. package/node_modules/@oscharko-dev/keiko-sdk/package.json +1 -1
  436. package/node_modules/@oscharko-dev/keiko-security/dist/.tsbuildinfo +1 -1
  437. package/node_modules/@oscharko-dev/keiko-security/dist/errors/gateway.d.ts +11 -0
  438. package/node_modules/@oscharko-dev/keiko-security/dist/errors/gateway.d.ts.map +1 -1
  439. package/node_modules/@oscharko-dev/keiko-security/dist/errors/gateway.js +13 -0
  440. package/node_modules/@oscharko-dev/keiko-security/package.json +1 -1
  441. package/node_modules/@oscharko-dev/keiko-server/dist/.tsbuildinfo +1 -1
  442. package/node_modules/@oscharko-dev/keiko-server/dist/assistant-response.d.ts +6 -0
  443. package/node_modules/@oscharko-dev/keiko-server/dist/assistant-response.d.ts.map +1 -0
  444. package/node_modules/@oscharko-dev/keiko-server/dist/assistant-response.js +12 -0
  445. package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.d.ts +1 -1
  446. package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.d.ts.map +1 -1
  447. package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.js +61 -16
  448. package/node_modules/@oscharko-dev/keiko-server/dist/chat-stream-handlers.d.ts.map +1 -1
  449. package/node_modules/@oscharko-dev/keiko-server/dist/chat-stream-handlers.js +11 -9
  450. package/node_modules/@oscharko-dev/keiko-server/dist/conversation-prompt.d.ts +1 -0
  451. package/node_modules/@oscharko-dev/keiko-server/dist/conversation-prompt.d.ts.map +1 -1
  452. package/node_modules/@oscharko-dev/keiko-server/dist/conversation-prompt.js +3 -0
  453. package/node_modules/@oscharko-dev/keiko-server/dist/deps.d.ts +4 -2
  454. package/node_modules/@oscharko-dev/keiko-server/dist/deps.d.ts.map +1 -1
  455. package/node_modules/@oscharko-dev/keiko-server/dist/deps.js +44 -69
  456. package/node_modules/@oscharko-dev/keiko-server/dist/gateway-setup.d.ts.map +1 -1
  457. package/node_modules/@oscharko-dev/keiko-server/dist/gateway-setup.js +120 -28
  458. package/node_modules/@oscharko-dev/keiko-server/dist/governed-workflow.d.ts.map +1 -1
  459. package/node_modules/@oscharko-dev/keiko-server/dist/governed-workflow.js +4 -1
  460. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-handoff.d.ts.map +1 -1
  461. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-handoff.js +2 -0
  462. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.d.ts +0 -1
  463. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.d.ts.map +1 -1
  464. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.js +222 -18
  465. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-hybrid.d.ts.map +1 -1
  466. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-hybrid.js +118 -23
  467. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-multi-source.d.ts.map +1 -1
  468. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-multi-source.js +57 -22
  469. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa.d.ts.map +1 -1
  470. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa.js +14 -5
  471. package/node_modules/@oscharko-dev/keiko-server/dist/index.d.ts +1 -0
  472. package/node_modules/@oscharko-dev/keiko-server/dist/index.d.ts.map +1 -1
  473. package/node_modules/@oscharko-dev/keiko-server/dist/index.js +1 -0
  474. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.d.ts.map +1 -1
  475. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.js +11 -4
  476. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-handlers.d.ts.map +1 -1
  477. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-handlers.js +26 -14
  478. package/node_modules/@oscharko-dev/keiko-server/dist/memory-audit-handler.d.ts +1 -0
  479. package/node_modules/@oscharko-dev/keiko-server/dist/memory-audit-handler.d.ts.map +1 -1
  480. package/node_modules/@oscharko-dev/keiko-server/dist/memory-audit-handler.js +52 -27
  481. package/node_modules/@oscharko-dev/keiko-server/dist/memory-capture-policy.d.ts +10 -0
  482. package/node_modules/@oscharko-dev/keiko-server/dist/memory-capture-policy.d.ts.map +1 -0
  483. package/node_modules/@oscharko-dev/keiko-server/dist/memory-capture-policy.js +44 -0
  484. package/node_modules/@oscharko-dev/keiko-server/dist/memory-consolidation-handlers.d.ts.map +1 -1
  485. package/node_modules/@oscharko-dev/keiko-server/dist/memory-consolidation-handlers.js +79 -57
  486. package/node_modules/@oscharko-dev/keiko-server/dist/memory-consolidation-registry.d.ts +1 -0
  487. package/node_modules/@oscharko-dev/keiko-server/dist/memory-consolidation-registry.d.ts.map +1 -1
  488. package/node_modules/@oscharko-dev/keiko-server/dist/memory-conv-handlers.d.ts.map +1 -1
  489. package/node_modules/@oscharko-dev/keiko-server/dist/memory-conv-handlers.js +6 -4
  490. package/node_modules/@oscharko-dev/keiko-server/dist/memory-conversation-context.d.ts.map +1 -1
  491. package/node_modules/@oscharko-dev/keiko-server/dist/memory-diagnostics.d.ts.map +1 -1
  492. package/node_modules/@oscharko-dev/keiko-server/dist/memory-diagnostics.js +16 -9
  493. package/node_modules/@oscharko-dev/keiko-server/dist/memory-handlers.d.ts +3 -1
  494. package/node_modules/@oscharko-dev/keiko-server/dist/memory-handlers.d.ts.map +1 -1
  495. package/node_modules/@oscharko-dev/keiko-server/dist/memory-handlers.js +538 -87
  496. package/node_modules/@oscharko-dev/keiko-server/dist/memory-maintenance-handlers.d.ts +6 -1
  497. package/node_modules/@oscharko-dev/keiko-server/dist/memory-maintenance-handlers.d.ts.map +1 -1
  498. package/node_modules/@oscharko-dev/keiko-server/dist/memory-maintenance-handlers.js +17 -38
  499. package/node_modules/@oscharko-dev/keiko-server/dist/memory-retention.d.ts.map +1 -1
  500. package/node_modules/@oscharko-dev/keiko-server/dist/memory-retention.js +7 -15
  501. package/node_modules/@oscharko-dev/keiko-server/dist/memory-salience.d.ts.map +1 -1
  502. package/node_modules/@oscharko-dev/keiko-server/dist/memory-salience.js +17 -2
  503. package/node_modules/@oscharko-dev/keiko-server/dist/memory-scope-sanitizer.d.ts.map +1 -1
  504. package/node_modules/@oscharko-dev/keiko-server/dist/memory-scope-sanitizer.js +19 -0
  505. package/node_modules/@oscharko-dev/keiko-server/dist/memory-target-resolver.d.ts.map +1 -1
  506. package/node_modules/@oscharko-dev/keiko-server/dist/memory-target-resolver.js +4 -1
  507. package/node_modules/@oscharko-dev/keiko-server/dist/memory-workflow-port.d.ts +1 -0
  508. package/node_modules/@oscharko-dev/keiko-server/dist/memory-workflow-port.d.ts.map +1 -1
  509. package/node_modules/@oscharko-dev/keiko-server/dist/memory-workflow-port.js +108 -27
  510. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/capsuleAdapter.d.ts +4 -0
  511. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/capsuleAdapter.d.ts.map +1 -1
  512. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/capsuleAdapter.js +3 -0
  513. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/connectorErrors.d.ts.map +1 -1
  514. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/connectorErrors.js +11 -8
  515. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/editRoutes.d.ts.map +1 -1
  516. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/editRoutes.js +62 -7
  517. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/exportRoutes.d.ts.map +1 -1
  518. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/exportRoutes.js +98 -33
  519. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConcurrency.d.ts.map +1 -1
  520. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConcurrency.js +2 -1
  521. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnector.d.ts +6 -0
  522. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnector.d.ts.map +1 -1
  523. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnector.js +16 -3
  524. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorAudit.d.ts +7 -0
  525. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorAudit.d.ts.map +1 -1
  526. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorErrors.d.ts +1 -1
  527. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorErrors.d.ts.map +1 -1
  528. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorErrors.js +3 -1
  529. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConsent.d.ts +2 -2
  530. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConsent.d.ts.map +1 -1
  531. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConsent.js +3 -3
  532. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaObservedActions.d.ts +5 -0
  533. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaObservedActions.d.ts.map +1 -1
  534. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaObservedActions.js +10 -8
  535. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaReadiness.d.ts.map +1 -1
  536. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaReadiness.js +11 -5
  537. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaRenderPort.d.ts.map +1 -1
  538. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaRenderPort.js +1 -0
  539. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaScopedPagination.d.ts +3 -0
  540. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaScopedPagination.d.ts.map +1 -1
  541. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaScopedPagination.js +71 -10
  542. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotBuilder.d.ts +2 -0
  543. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotBuilder.d.ts.map +1 -1
  544. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotBuilder.js +86 -23
  545. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotTypes.d.ts +1 -1
  546. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotTypes.d.ts.map +1 -1
  547. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaTokenSource.d.ts.map +1 -1
  548. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaTokenSource.js +4 -3
  549. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaUrl.d.ts.map +1 -1
  550. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaUrl.js +2 -0
  551. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/index.d.ts +1 -1
  552. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/index.d.ts.map +1 -1
  553. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/index.js +1 -1
  554. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaCodegenRoutes.d.ts.map +1 -1
  555. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaCodegenRoutes.js +60 -20
  556. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotAdapter.d.ts +11 -6
  557. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotAdapter.d.ts.map +1 -1
  558. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotAdapter.js +144 -6
  559. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotOrchestration.d.ts +9 -0
  560. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotOrchestration.d.ts.map +1 -1
  561. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotOrchestration.js +84 -15
  562. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.d.ts +9 -7
  563. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.d.ts.map +1 -1
  564. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.js +206 -42
  565. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/generationPort.d.ts.map +1 -1
  566. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/generationPort.js +12 -1
  567. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffErrors.d.ts +1 -1
  568. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffErrors.d.ts.map +1 -1
  569. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffErrors.js +1 -0
  570. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffRoutes.d.ts.map +1 -1
  571. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffRoutes.js +41 -9
  572. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/index.d.ts +1 -0
  573. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/index.d.ts.map +1 -1
  574. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/index.js +2 -0
  575. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/judgePort.d.ts +3 -1
  576. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/judgePort.d.ts.map +1 -1
  577. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/judgePort.js +86 -68
  578. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/modelSelection.d.ts +15 -1
  579. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/modelSelection.d.ts.map +1 -1
  580. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/modelSelection.js +56 -39
  581. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reCheckRoutes.d.ts +1 -1
  582. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reCheckRoutes.d.ts.map +1 -1
  583. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reCheckRoutes.js +382 -75
  584. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/retentionRoutes.d.ts +5 -0
  585. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/retentionRoutes.d.ts.map +1 -0
  586. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/retentionRoutes.js +70 -0
  587. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewRoutes.d.ts.map +1 -1
  588. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewRoutes.js +20 -8
  589. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewStore.d.ts +25 -4
  590. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewStore.d.ts.map +1 -1
  591. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewStore.js +72 -9
  592. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runExecution.d.ts +3 -2
  593. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runExecution.d.ts.map +1 -1
  594. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runExecution.js +44 -16
  595. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.d.ts +7 -0
  596. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.d.ts.map +1 -1
  597. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.js +370 -38
  598. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRegistry.d.ts.map +1 -1
  599. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRegistry.js +2 -0
  600. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.d.ts.map +1 -1
  601. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.js +15 -5
  602. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/traceabilityRoutes.d.ts.map +1 -1
  603. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/traceabilityRoutes.js +36 -4
  604. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/uiRoutes.d.ts.map +1 -1
  605. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/uiRoutes.js +73 -8
  606. package/node_modules/@oscharko-dev/keiko-server/dist/routes.d.ts.map +1 -1
  607. package/node_modules/@oscharko-dev/keiko-server/dist/routes.js +20 -6
  608. package/node_modules/@oscharko-dev/keiko-server/dist/run-engine.d.ts +1 -0
  609. package/node_modules/@oscharko-dev/keiko-server/dist/run-engine.d.ts.map +1 -1
  610. package/node_modules/@oscharko-dev/keiko-server/dist/run-engine.js +3 -0
  611. package/node_modules/@oscharko-dev/keiko-server/dist/run-handlers.d.ts.map +1 -1
  612. package/node_modules/@oscharko-dev/keiko-server/dist/run-handlers.js +2 -0
  613. package/node_modules/@oscharko-dev/keiko-server/dist/sse-write.d.ts +9 -0
  614. package/node_modules/@oscharko-dev/keiko-server/dist/sse-write.d.ts.map +1 -0
  615. package/node_modules/@oscharko-dev/keiko-server/dist/sse-write.js +26 -0
  616. package/node_modules/@oscharko-dev/keiko-server/dist/store/chats.d.ts.map +1 -1
  617. package/node_modules/@oscharko-dev/keiko-server/dist/store/chats.js +16 -8
  618. package/node_modules/@oscharko-dev/keiko-server/dist/store/messages.d.ts.map +1 -1
  619. package/node_modules/@oscharko-dev/keiko-server/dist/store-handlers.d.ts.map +1 -1
  620. package/node_modules/@oscharko-dev/keiko-server/dist/store-handlers.js +4 -1
  621. package/node_modules/@oscharko-dev/keiko-server/dist/terminal.d.ts.map +1 -1
  622. package/node_modules/@oscharko-dev/keiko-server/package.json +1 -1
  623. package/node_modules/@oscharko-dev/keiko-tools/dist/.tsbuildinfo +1 -1
  624. package/node_modules/@oscharko-dev/keiko-tools/dist/patch-normalize.d.ts.map +1 -1
  625. package/node_modules/@oscharko-dev/keiko-tools/dist/patch-normalize.js +13 -7
  626. package/node_modules/@oscharko-dev/keiko-tools/package.json +1 -1
  627. package/node_modules/@oscharko-dev/keiko-verification/dist/.tsbuildinfo +1 -1
  628. package/node_modules/@oscharko-dev/keiko-verification/package.json +1 -1
  629. package/node_modules/@oscharko-dev/keiko-workflows/dist/.tsbuildinfo +1 -1
  630. package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/memory.d.ts +2 -2
  631. package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/memory.d.ts.map +1 -1
  632. package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/memory.js +16 -18
  633. package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/prompt.d.ts.map +1 -1
  634. package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/prompt.js +6 -1
  635. package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/workflow.d.ts.map +1 -1
  636. package/node_modules/@oscharko-dev/keiko-workflows/dist/bug-investigation/workflow.js +3 -3
  637. package/node_modules/@oscharko-dev/keiko-workflows/dist/governed-handoff.d.ts.map +1 -1
  638. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/anchors.d.ts.map +1 -1
  639. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/anchors.js +68 -0
  640. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/descriptors.d.ts +2 -2
  641. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/modelRoutedTestDesign.d.ts +18 -2
  642. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/modelRoutedTestDesign.d.ts.map +1 -1
  643. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/modelRoutedTestDesign.js +209 -54
  644. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runtimeCommon.d.ts +4 -4
  645. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runtimeCommon.d.ts.map +1 -1
  646. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runtimeCommon.js +4 -1
  647. package/node_modules/@oscharko-dev/keiko-workflows/dist/unit-tests/target-guard.d.ts.map +1 -1
  648. package/node_modules/@oscharko-dev/keiko-workflows/package.json +1 -1
  649. package/node_modules/@oscharko-dev/keiko-workspace/dist/.tsbuildinfo +1 -1
  650. package/node_modules/@oscharko-dev/keiko-workspace/dist/discovery.d.ts.map +1 -1
  651. package/node_modules/@oscharko-dev/keiko-workspace/dist/discovery.js +34 -2
  652. package/node_modules/@oscharko-dev/keiko-workspace/dist/realpath.d.ts +1 -0
  653. package/node_modules/@oscharko-dev/keiko-workspace/dist/realpath.d.ts.map +1 -1
  654. package/node_modules/@oscharko-dev/keiko-workspace/dist/realpath.js +2 -2
  655. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchEntries.d.ts.map +1 -1
  656. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchEntries.js +1 -2
  657. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchLineSelection.d.ts.map +1 -1
  658. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchLineSelection.js +2 -1
  659. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.d.ts.map +1 -1
  660. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.js +74 -2
  661. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchRegexSafety.d.ts.map +1 -1
  662. package/node_modules/@oscharko-dev/keiko-workspace/package.json +1 -1
  663. package/package.json +23 -6
  664. package/dist/ui/static/_next/static/chunks/082obv3v03b-9.js +0 -2
  665. package/dist/ui/static/_next/static/chunks/0uifns067thv8.js +0 -1
  666. package/dist/ui/static/_next/static/chunks/0x31-j53ab1tt.js +0 -1
  667. package/dist/ui/static/_next/static/chunks/1t04tfgin0v_g.js +0 -106
  668. package/dist/ui/static/_next/static/chunks/1v4hrxrm_6_rw.js +0 -1
  669. package/dist/ui/static/_next/static/chunks/27jktro2p5rq9.js +0 -4
  670. package/dist/ui/static/_next/static/chunks/2lypy3ewh0r04.js +0 -1
  671. package/dist/ui/static/_next/static/chunks/32573pyyglqxl.js +0 -1
  672. package/dist/ui/static/_next/static/chunks/3_t_pzet29qtn.js +0 -1
  673. package/dist/ui/static/_next/static/chunks/3jgg_oe0iok0l.js +0 -1
  674. package/dist/ui/static/_next/static/chunks/3o_oia3vsam60.js +0 -1
  675. package/dist/ui/static/_next/static/chunks/3wr_35f2vg6sd.css +0 -1
  676. package/dist/ui/static/_next/static/chunks/turbopack-2lg1g6kbsfm0x.js +0 -1
  677. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/scripted-answer-generator.d.ts +0 -6
  678. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/scripted-answer-generator.d.ts.map +0 -1
  679. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/scripted-answer-generator.js +0 -49
  680. /package/dist/ui/static/_next/static/{Hb6brrvZY2nZtizQlYhVt → fQMXe8UmV01bh25WOoIt3}/_buildManifest.js +0 -0
  681. /package/dist/ui/static/_next/static/{Hb6brrvZY2nZtizQlYhVt → fQMXe8UmV01bh25WOoIt3}/_clientMiddlewareManifest.js +0 -0
  682. /package/dist/ui/static/_next/static/{Hb6brrvZY2nZtizQlYhVt → fQMXe8UmV01bh25WOoIt3}/_ssgManifest.js +0 -0
@@ -15,17 +15,19 @@
15
15
  //
16
16
  // Both routes go through the central CSRF guard in server.ts (all POSTs do).
17
17
  import { randomUUID } from "node:crypto";
18
+ import { isAbsolute } from "node:path";
18
19
  import { QualityIntelligence } from "@oscharko-dev/keiko-contracts";
19
- import { ALL_POLICY_PROFILES, buildAtomCoverageStatuses, buildCoverageMap, compareStaleness, regressionDefault, validateCandidates, } from "@oscharko-dev/keiko-quality-intelligence";
20
+ import { ALL_POLICY_PROFILES, buildAtomCoverageStatuses, buildCoverageMap, compareStaleness, deduplicateCandidates, regressionDefault, validateCandidates, } from "@oscharko-dev/keiko-quality-intelligence";
20
21
  import { assertValidRunId, sha256Hex } from "@oscharko-dev/keiko-security";
21
22
  import { createInMemoryQualityIntelligenceLocalStore, loadQualityIntelligenceCandidates, loadQualityIntelligenceRun, recordQualityIntelligenceCandidates, recordQualityIntelligenceRun, } from "@oscharko-dev/keiko-evidence";
22
- import { excerptsByAtomId, runQualityIntelligenceModelRoutedTestDesign, } from "@oscharko-dev/keiko-workflows";
23
+ import { QUALITY_INTELLIGENCE_DEFAULT_WORKFLOW_LIMITS, excerptsByAtomId, runQualityIntelligenceModelRoutedTestDesign, } from "@oscharko-dev/keiko-workflows";
24
+ import { currentRedactionSecrets } from "../deps.js";
23
25
  import { makeCapsuleResolver } from "./capsuleAdapter.js";
24
26
  import { makeFigmaSnapshotLoader, makeFigmaVisionHintProvider } from "./figmaSnapshotAdapter.js";
25
27
  import { createQiGenerationPort, QiGenerationError } from "./generationPort.js";
26
28
  import { createQiJudgePort } from "./judgePort.js";
27
29
  import { resolveQiTestDesignSelection } from "./modelSelection.js";
28
- import { ingestInlineSources, QiIngestionError } from "./runIngestion.js";
30
+ import { ingestInlineSourcesAsync, QiIngestionError } from "./runIngestion.js";
29
31
  const MAX_BODY_BYTES = 2 * 1024 * 1024;
30
32
  const REQUIREMENTS_ENVELOPE_PREFIX = "qi-src-req-";
31
33
  const errorResult = (status, code, message) => ({
@@ -49,20 +51,66 @@ const isObject = (value) => typeof value === "object" && value !== null && !Arra
49
51
  const readBody = (req) => new Promise((resolve, reject) => {
50
52
  const chunks = [];
51
53
  let total = 0;
54
+ let capped = false;
52
55
  req.on("data", (chunk) => {
53
56
  total += chunk.length;
54
57
  if (total > MAX_BODY_BYTES) {
55
- reject(new Error("body too large"));
56
- req.resume();
58
+ if (!capped) {
59
+ capped = true;
60
+ chunks.length = 0;
61
+ reject(new Error("body too large"));
62
+ req.resume();
63
+ }
57
64
  return;
58
65
  }
59
66
  chunks.push(chunk);
60
67
  });
61
68
  req.on("end", () => {
62
- resolve(Buffer.concat(chunks).toString("utf8"));
69
+ if (!capped)
70
+ resolve(Buffer.concat(chunks).toString("utf8"));
63
71
  });
64
72
  req.on("error", reject);
65
73
  });
74
+ function cancellationResult(signal) {
75
+ return signal.aborted
76
+ ? errorResult(499, "QI_REQUEST_CANCELLED", "Quality Intelligence request was cancelled.")
77
+ : null;
78
+ }
79
+ function requestAbortSignal(ctx) {
80
+ const controller = new AbortController();
81
+ const abort = () => {
82
+ if (!controller.signal.aborted) {
83
+ controller.abort("quality intelligence request cancelled");
84
+ }
85
+ };
86
+ const abortOnIncompleteRequestClose = () => {
87
+ if (!ctx.req.complete)
88
+ abort();
89
+ };
90
+ const abortOnResponseClose = () => {
91
+ if (!ctx.res.writableEnded)
92
+ abort();
93
+ };
94
+ if (ctx.req.destroyed) {
95
+ abort();
96
+ return { signal: controller.signal, dispose: () => undefined };
97
+ }
98
+ ctx.req.once("aborted", abort);
99
+ ctx.req.once("close", abortOnIncompleteRequestClose);
100
+ if (typeof ctx.res.once === "function") {
101
+ ctx.res.once("close", abortOnResponseClose);
102
+ }
103
+ return {
104
+ signal: controller.signal,
105
+ dispose: () => {
106
+ ctx.req.off("aborted", abort);
107
+ ctx.req.off("close", abortOnIncompleteRequestClose);
108
+ if (typeof ctx.res.off === "function") {
109
+ ctx.res.off("close", abortOnResponseClose);
110
+ }
111
+ },
112
+ };
113
+ }
66
114
  function validateCapsuleSource(label, raw) {
67
115
  if (typeof raw.capsuleId !== "string" || raw.capsuleId.trim().length === 0)
68
116
  return undefined;
@@ -143,6 +191,12 @@ async function parseSources(req) {
143
191
  result: errorResult(400, "QI_BAD_SOURCE", "A source entry is malformed."),
144
192
  };
145
193
  }
194
+ if (source.kind === "file" && !isAbsolute(source.path)) {
195
+ return {
196
+ ok: false,
197
+ result: errorResult(400, "QI_BAD_SOURCE", "File source paths must be absolute local paths."),
198
+ };
199
+ }
146
200
  sources.push(source);
147
201
  }
148
202
  return { ok: true, sources };
@@ -165,6 +219,12 @@ function mapCurrentAtomFingerprints(ingestedAtoms) {
165
219
  atomId: String(entry.atom.id),
166
220
  envelopeId: String(entry.atom.sourceEnvelopeId),
167
221
  canonicalHashSha256Hex: entry.atom.canonicalHashSha256Hex,
222
+ ...(entry.replacementGroupId !== undefined
223
+ ? { replacementGroupId: entry.replacementGroupId }
224
+ : {}),
225
+ ...(entry.replacementOrdinal !== undefined
226
+ ? { replacementOrdinal: entry.replacementOrdinal }
227
+ : {}),
168
228
  }));
169
229
  }
170
230
  function mapCurrentSourceFingerprints(ingestion) {
@@ -260,14 +320,15 @@ function loadManifestForDrift(id, evidenceDir) {
260
320
  }
261
321
  : { ok: true, manifest };
262
322
  }
263
- function ingestSourcesForDrift(sources, ingestRunId, deps) {
323
+ async function ingestSourcesForDrift(sources, ingestRunId, deps) {
264
324
  try {
265
325
  return {
266
326
  ok: true,
267
- ingestion: ingestInlineSources({
327
+ ingestion: await ingestInlineSourcesAsync({
268
328
  request: { sources },
269
329
  runId: ingestRunId,
270
330
  registeredAt: new Date().toISOString(),
331
+ allowEmpty: true,
271
332
  capsuleResolver: makeCapsuleResolver(deps),
272
333
  // Drift must see the board's LATEST snapshot, not the pinned immutable record — a pinned
273
334
  // write-once runId can never drift under its own identity (#735). Generate keeps pinning.
@@ -283,8 +344,13 @@ function ingestSourcesForDrift(sources, ingestRunId, deps) {
283
344
  }
284
345
  }
285
346
  function buildDriftStaleness(manifest, oldCandidates, ingestion) {
347
+ const oldAtomFingerprints = manifest.atomFingerprints;
348
+ const oldFingerprints = oldAtomFingerprints === undefined ? Object.freeze([]) : (manifest.sourceFingerprints ?? []);
286
349
  return compareStaleness({
287
- oldFingerprints: manifest.sourceFingerprints ?? [],
350
+ // Newer runs persist atom fingerprints, which are required for exact per-test drift. Older
351
+ // source-only manifests cannot safely distinguish an unchanged workspace path set from edited
352
+ // file content, so fail closed instead of reporting "fresh" from envelope fingerprints alone.
353
+ oldFingerprints,
288
354
  evidenceRefs: manifest.evidenceRefs.map((ref) => ({
289
355
  envelopeId: ref.envelopeId,
290
356
  atomId: ref.atomId,
@@ -295,9 +361,7 @@ function buildDriftStaleness(manifest, oldCandidates, ingestion) {
295
361
  })),
296
362
  currentFingerprints: mapCurrentSourceFingerprints(ingestion),
297
363
  currentAtomFingerprints: mapCurrentAtomFingerprints(ingestion.ingestedAtoms),
298
- ...(manifest.atomFingerprints !== undefined
299
- ? { oldAtomFingerprints: manifest.atomFingerprints }
300
- : {}),
364
+ ...(oldAtomFingerprints !== undefined ? { oldAtomFingerprints } : {}),
301
365
  });
302
366
  }
303
367
  function buildDriftContext(sources, manifest, ingestion, oldArtifact) {
@@ -318,15 +382,24 @@ async function computeDrift(req, evidenceDir, id, ingestRunId, deps) {
318
382
  const loaded = loadManifestForDrift(id, evidenceDir);
319
383
  if (!loaded.ok)
320
384
  return { ok: false, result: loaded.result };
321
- const ingested = ingestSourcesForDrift(parsed.sources, ingestRunId, deps);
385
+ const ingested = await ingestSourcesForDrift(parsed.sources, ingestRunId, deps);
322
386
  if (!ingested.ok)
323
387
  return { ok: false, result: ingested.result };
324
388
  const oldArtifact = loadQualityIntelligenceCandidates(id, { evidenceDir });
389
+ if (oldArtifact === undefined && loaded.manifest.totals.candidates > 0) {
390
+ return {
391
+ ok: false,
392
+ result: errorResult(500, "QI_CANDIDATES_MISSING", "The candidate artifact for this Quality Intelligence run is missing."),
393
+ };
394
+ }
325
395
  return {
326
396
  ok: true,
327
397
  value: buildDriftContext(parsed.sources, loaded.manifest, ingested.ingestion, oldArtifact),
328
398
  };
329
399
  }
400
+ const ALIGN_INSERT_DELETE_COST = 3;
401
+ const ALIGN_SUBSTITUTE_COST = 4;
402
+ const ALIGN_CROSS_OLD_ATOM_COST = 10;
330
403
  function collectStaleIds(staleness) {
331
404
  return new Set([
332
405
  ...staleness.changedStale.map((reason) => reason.candidateId),
@@ -354,6 +427,7 @@ function looksLikeLegacyRequirementsFallback(drift, staleIds) {
354
427
  function buildCurrentAtomIndexes(ingestion) {
355
428
  const byId = new Map(ingestion.ingestedAtoms.map((entry) => [String(entry.atom.id), entry]));
356
429
  const byEnvelope = new Map();
430
+ const replacementEntries = [];
357
431
  for (const entry of ingestion.ingestedAtoms) {
358
432
  const envelopeId = String(entry.atom.sourceEnvelopeId);
359
433
  const current = byEnvelope.get(envelopeId);
@@ -363,19 +437,39 @@ function buildCurrentAtomIndexes(ingestion) {
363
437
  else {
364
438
  current.push(entry);
365
439
  }
440
+ if (entry.replacementGroupId !== undefined && entry.replacementOrdinal !== undefined) {
441
+ replacementEntries.push({
442
+ atomId: String(entry.atom.id),
443
+ canonicalHashSha256Hex: entry.atom.canonicalHashSha256Hex,
444
+ replacementGroupId: entry.replacementGroupId,
445
+ replacementOrdinal: entry.replacementOrdinal,
446
+ });
447
+ }
366
448
  }
367
449
  return {
368
450
  byId,
369
451
  byEnvelope,
452
+ replacementEntries,
370
453
  envelopeIds: new Set(ingestion.envelopes.map((envelope) => String(envelope.id))),
371
454
  };
372
455
  }
373
456
  function buildOldAtomIndexes(atomFingerprints) {
374
457
  const byId = new Map(atomFingerprints.map((fp) => [
375
458
  fp.atomId,
376
- { envelopeId: fp.envelopeId, canonicalHashSha256Hex: fp.canonicalHashSha256Hex },
459
+ {
460
+ envelopeId: fp.envelopeId,
461
+ canonicalHashSha256Hex: fp.canonicalHashSha256Hex,
462
+ ...(fp.replacementGroupId !== undefined
463
+ ? { replacementGroupId: fp.replacementGroupId }
464
+ : {}),
465
+ ...(fp.replacementOrdinal !== undefined
466
+ ? { replacementOrdinal: fp.replacementOrdinal }
467
+ : {}),
468
+ },
377
469
  ]));
378
470
  const idsByEnvelope = new Map();
471
+ const idsInEnvelope = new Map();
472
+ const replacementEntries = [];
379
473
  for (const fp of atomFingerprints) {
380
474
  const ids = idsByEnvelope.get(fp.envelopeId);
381
475
  if (ids === undefined) {
@@ -384,42 +478,185 @@ function buildOldAtomIndexes(atomFingerprints) {
384
478
  else {
385
479
  ids.add(fp.atomId);
386
480
  }
481
+ const orderedIds = idsInEnvelope.get(fp.envelopeId);
482
+ if (orderedIds === undefined) {
483
+ idsInEnvelope.set(fp.envelopeId, [fp.atomId]);
484
+ }
485
+ else {
486
+ orderedIds.push(fp.atomId);
487
+ }
488
+ if (fp.replacementGroupId !== undefined && fp.replacementOrdinal !== undefined) {
489
+ replacementEntries.push({
490
+ atomId: fp.atomId,
491
+ canonicalHashSha256Hex: fp.canonicalHashSha256Hex,
492
+ replacementGroupId: fp.replacementGroupId,
493
+ replacementOrdinal: fp.replacementOrdinal,
494
+ });
495
+ }
496
+ }
497
+ return { byId, idsByEnvelope, idsInEnvelope, replacementEntries };
498
+ }
499
+ function replacementEntriesByGroup(entries) {
500
+ const groups = new Map();
501
+ for (const entry of entries) {
502
+ const group = groups.get(entry.replacementGroupId);
503
+ if (group === undefined) {
504
+ groups.set(entry.replacementGroupId, [entry]);
505
+ }
506
+ else {
507
+ group.push(entry);
508
+ }
509
+ }
510
+ for (const group of groups.values()) {
511
+ group.sort((a, b) => a.replacementOrdinal - b.replacementOrdinal);
512
+ }
513
+ return groups;
514
+ }
515
+ function alignmentPairCost(oldEntry, currentEntry, oldAtomIds) {
516
+ if (oldEntry.atomId === currentEntry.atomId)
517
+ return 0;
518
+ if (currentEntry.canonicalHashSha256Hex === oldEntry.canonicalHashSha256Hex)
519
+ return 0;
520
+ return oldAtomIds.has(currentEntry.atomId) ? ALIGN_CROSS_OLD_ATOM_COST : ALIGN_SUBSTITUTE_COST;
521
+ }
522
+ function replacementIndexEntryAt(entries, index) {
523
+ const entry = entries[index];
524
+ if (entry === undefined)
525
+ throw new Error("Replacement alignment index out of bounds.");
526
+ return entry;
527
+ }
528
+ function matrixValue(matrix, row, col) {
529
+ const value = matrix[row]?.[col];
530
+ if (value === undefined)
531
+ throw new Error("Replacement alignment matrix index out of bounds.");
532
+ return value;
533
+ }
534
+ function setMatrixValue(matrix, row, col, value) {
535
+ const rowValues = matrix[row];
536
+ if (rowValues === undefined) {
537
+ throw new Error("Replacement alignment matrix index out of bounds.");
538
+ }
539
+ rowValues[col] = value;
540
+ }
541
+ function buildAlignmentCostMatrix(oldEntries, currentEntries, oldAtomIds) {
542
+ const matrix = Array.from({ length: oldEntries.length + 1 }, () => Array.from({ length: currentEntries.length + 1 }, () => 0));
543
+ for (let oldIndex = 1; oldIndex <= oldEntries.length; oldIndex += 1) {
544
+ setMatrixValue(matrix, oldIndex, 0, oldIndex * ALIGN_INSERT_DELETE_COST);
545
+ }
546
+ for (let currentIndex = 1; currentIndex <= currentEntries.length; currentIndex += 1) {
547
+ setMatrixValue(matrix, 0, currentIndex, currentIndex * ALIGN_INSERT_DELETE_COST);
548
+ }
549
+ for (let oldIndex = 1; oldIndex <= oldEntries.length; oldIndex += 1) {
550
+ for (let currentIndex = 1; currentIndex <= currentEntries.length; currentIndex += 1) {
551
+ const pairCost = alignmentPairCost(replacementIndexEntryAt(oldEntries, oldIndex - 1), replacementIndexEntryAt(currentEntries, currentIndex - 1), oldAtomIds);
552
+ const pair = matrixValue(matrix, oldIndex - 1, currentIndex - 1) + pairCost;
553
+ const deletion = matrixValue(matrix, oldIndex - 1, currentIndex) + ALIGN_INSERT_DELETE_COST;
554
+ const insertion = matrixValue(matrix, oldIndex, currentIndex - 1) + ALIGN_INSERT_DELETE_COST;
555
+ setMatrixValue(matrix, oldIndex, currentIndex, Math.min(pair, deletion, insertion));
556
+ }
557
+ }
558
+ return matrix;
559
+ }
560
+ function alignReplacementEntries(oldEntries, currentEntries) {
561
+ const mapping = new Map();
562
+ const oldAtomIds = new Set(oldEntries.map((entry) => entry.atomId));
563
+ const costs = buildAlignmentCostMatrix(oldEntries, currentEntries, oldAtomIds);
564
+ let oldIndex = oldEntries.length;
565
+ let currentIndex = currentEntries.length;
566
+ while (oldIndex > 0 && currentIndex > 0) {
567
+ const oldEntry = replacementIndexEntryAt(oldEntries, oldIndex - 1);
568
+ const currentEntry = replacementIndexEntryAt(currentEntries, currentIndex - 1);
569
+ const pairCost = alignmentPairCost(oldEntry, currentEntry, oldAtomIds);
570
+ const currentCost = matrixValue(costs, oldIndex, currentIndex);
571
+ const pair = matrixValue(costs, oldIndex - 1, currentIndex - 1) + pairCost;
572
+ const deletion = matrixValue(costs, oldIndex - 1, currentIndex) + ALIGN_INSERT_DELETE_COST;
573
+ const insertion = matrixValue(costs, oldIndex, currentIndex - 1) + ALIGN_INSERT_DELETE_COST;
574
+ if (pairCost === 0 && currentCost === pair) {
575
+ mapping.set(oldEntry.atomId, currentEntry.atomId);
576
+ oldIndex -= 1;
577
+ currentIndex -= 1;
578
+ }
579
+ else if (currentCost === insertion) {
580
+ currentIndex -= 1;
581
+ }
582
+ else if (currentCost === deletion) {
583
+ oldIndex -= 1;
584
+ }
585
+ else {
586
+ mapping.set(oldEntry.atomId, currentEntry.atomId);
587
+ oldIndex -= 1;
588
+ currentIndex -= 1;
589
+ }
387
590
  }
388
- return { byId, idsByEnvelope };
591
+ return mapping;
389
592
  }
390
- function addReplacementRequirementAtoms(envelopeId, current, old, atomIdsToRegenerate) {
593
+ function buildReplacementAtomMap(oldEntries, currentEntries) {
594
+ const oldGroups = replacementEntriesByGroup(oldEntries);
595
+ const currentGroups = replacementEntriesByGroup(currentEntries);
596
+ const mapping = new Map();
597
+ for (const [groupId, oldGroup] of oldGroups) {
598
+ const currentGroup = currentGroups.get(groupId);
599
+ if (currentGroup === undefined)
600
+ continue;
601
+ for (const [oldAtomId, currentAtomId] of alignReplacementEntries(oldGroup, currentGroup)) {
602
+ mapping.set(oldAtomId, currentAtomId);
603
+ }
604
+ }
605
+ return mapping;
606
+ }
607
+ function addPositionalReplacementRequirementAtom(atomId, envelopeId, current, old, atomIdsToRegenerate) {
391
608
  const oldIds = old.idsByEnvelope.get(envelopeId) ?? new Set();
392
- for (const replacement of current.byEnvelope.get(envelopeId) ?? []) {
393
- const replacementId = String(replacement.atom.id);
394
- if (!oldIds.has(replacementId))
395
- atomIdsToRegenerate.add(replacementId);
609
+ const oldIdsInEnvelope = old.idsInEnvelope.get(envelopeId) ?? [];
610
+ const currentAtomsInEnvelope = current.byEnvelope.get(envelopeId) ?? [];
611
+ const oldIndex = oldIdsInEnvelope.indexOf(atomId);
612
+ const replacement = oldIndex >= 0 ? currentAtomsInEnvelope[oldIndex] : undefined;
613
+ const replacementId = replacement === undefined ? undefined : String(replacement.atom.id);
614
+ if (replacementId !== undefined && !oldIds.has(replacementId)) {
615
+ atomIdsToRegenerate.add(replacementId);
396
616
  }
397
617
  }
398
- function addRegenerationAtomsForCandidate(candidate, current, old, atomIdsToRegenerate) {
618
+ function addChangedCurrentAtom(oldAtom, currentEntry, atomIdsToRegenerate) {
619
+ if (currentEntry === undefined)
620
+ return false;
621
+ if (currentEntry.atom.canonicalHashSha256Hex === oldAtom.canonicalHashSha256Hex)
622
+ return false;
623
+ atomIdsToRegenerate.add(String(currentEntry.atom.id));
624
+ return true;
625
+ }
626
+ function addMappedReplacementAtom(atomId, current, old, replacementAtomIdsByOldAtomId, atomIdsToRegenerate) {
627
+ const replacementAtomId = replacementAtomIdsByOldAtomId.get(atomId);
628
+ if (replacementAtomId === undefined || replacementAtomId === atomId)
629
+ return false;
630
+ if (old.byId.has(replacementAtomId) || !current.byId.has(replacementAtomId))
631
+ return false;
632
+ atomIdsToRegenerate.add(replacementAtomId);
633
+ return true;
634
+ }
635
+ function addRegenerationAtomsForCandidate(candidate, current, old, replacementAtomIdsByOldAtomId, atomIdsToRegenerate) {
399
636
  for (const atomId of candidate.derivedFromAtomIds) {
400
637
  const oldAtom = old.byId.get(atomId);
401
638
  const currentAtom = current.byId.get(atomId);
402
- if (oldAtom !== undefined &&
403
- currentAtom !== undefined &&
404
- currentAtom.atom.canonicalHashSha256Hex !== oldAtom.canonicalHashSha256Hex) {
405
- atomIdsToRegenerate.add(String(currentAtom.atom.id));
406
- continue;
407
- }
408
639
  if (oldAtom === undefined || !current.envelopeIds.has(oldAtom.envelopeId))
409
640
  continue;
641
+ if (addChangedCurrentAtom(oldAtom, currentAtom, atomIdsToRegenerate))
642
+ continue;
643
+ if (addMappedReplacementAtom(atomId, current, old, replacementAtomIdsByOldAtomId, atomIdsToRegenerate)) {
644
+ continue;
645
+ }
410
646
  if (!oldAtom.envelopeId.startsWith(REQUIREMENTS_ENVELOPE_PREFIX))
411
647
  continue;
412
- addReplacementRequirementAtoms(oldAtom.envelopeId, current, old, atomIdsToRegenerate);
648
+ addPositionalReplacementRequirementAtom(atomId, oldAtom.envelopeId, current, old, atomIdsToRegenerate);
413
649
  }
414
650
  }
415
651
  function collectAtomsToRegenerate(drift, staleIds) {
416
652
  const current = buildCurrentAtomIndexes(drift.ingestion);
417
653
  const old = buildOldAtomIndexes(drift.manifest.atomFingerprints ?? []);
654
+ const replacementAtomIdsByOldAtomId = buildReplacementAtomMap(old.replacementEntries, current.replacementEntries);
418
655
  const atomIdsToRegenerate = new Set();
419
656
  for (const candidate of drift.oldCandidates) {
420
657
  if (!staleIds.has(candidate.id))
421
658
  continue;
422
- addRegenerationAtomsForCandidate(candidate, current, old, atomIdsToRegenerate);
659
+ addRegenerationAtomsForCandidate(candidate, current, old, replacementAtomIdsByOldAtomId, atomIdsToRegenerate);
423
660
  }
424
661
  return drift.ingestion.ingestedAtoms.filter((entry) => atomIdsToRegenerate.has(String(entry.atom.id)));
425
662
  }
@@ -444,9 +681,10 @@ function narrowRegeneration(drift) {
444
681
  legacyRequirementsFallback: false,
445
682
  };
446
683
  }
447
- function regenWorkflowDeps(deps, target, evidenceStore, capture) {
684
+ function regenWorkflowDeps(deps, target, evidenceStore, capture, signal) {
448
685
  return {
449
686
  sink: { emit: () => undefined },
687
+ signal,
450
688
  evidenceStore,
451
689
  candidatesSink: {
452
690
  record: (cands, generatedAt) => {
@@ -454,6 +692,16 @@ function regenWorkflowDeps(deps, target, evidenceStore, capture) {
454
692
  },
455
693
  },
456
694
  generate: createQiGenerationPort(deps, target),
695
+ // The regenerate-stale judge deliberately shares the auto-selected generation model id rather than
696
+ // resolving an independent qi:judge-logic model the way the initial run does (runExecution.ts).
697
+ // This is safe because the regen target comes from resolveQiTestDesignSelection(deps) with NO
698
+ // explicit model request: auto-selection prefers structured-output models, so whenever a judge is
699
+ // possible (a structured-output model is configured) the generation model already satisfies
700
+ // qi:judge-logic, and when only chat-only models exist both generation and the judge degrade
701
+ // (judge skipped via buildJudgePortIfAvailable's typed-unavailable catch). The initial-run
702
+ // asymmetry — an explicitly requested chat-only generation model paired with a separate
703
+ // structured-output judge — cannot arise here because the regen path never carries an explicit
704
+ // generation-model request.
457
705
  ...(target.kind === "model" ? { judge: buildJudgePortIfAvailable(deps, target.modelId) } : {}),
458
706
  };
459
707
  }
@@ -466,7 +714,7 @@ function buildScopedRegenPlan(newRunId, requestedAt) {
466
714
  };
467
715
  }
468
716
  async function executeScopedWorkflow(args) {
469
- const { deps, target, evidenceStore, capture, plan, ingestion, atomsToRegenerate, profile } = args;
717
+ const { deps, target, evidenceStore, capture, plan, ingestion, atomsToRegenerate, profile, signal, } = args;
470
718
  try {
471
719
  const summary = await runQualityIntelligenceModelRoutedTestDesign({
472
720
  plan,
@@ -474,7 +722,7 @@ async function executeScopedWorkflow(args) {
474
722
  ingestedAtoms: atomsToRegenerate,
475
723
  provenanceRefs: ingestion.provenanceRefs,
476
724
  profile,
477
- }, regenWorkflowDeps(deps, target, evidenceStore, capture));
725
+ }, regenWorkflowDeps(deps, target, evidenceStore, capture, signal));
478
726
  return summary.status === "succeeded"
479
727
  ? null
480
728
  : errorResult(500, "QI_REGEN_FAILED", "Scoped regeneration did not succeed.");
@@ -499,7 +747,7 @@ function finalizeScopedWorkflow(evidenceStore, newRunId, generatedCandidates, ge
499
747
  };
500
748
  }
501
749
  async function runScopedEphemeral(args) {
502
- const { deps, target, newRunId, requestedAt, ingestion, atomsToRegenerate, profile } = args;
750
+ const { deps, target, newRunId, requestedAt, ingestion, atomsToRegenerate, profile, signal } = args;
503
751
  const evidenceStore = createInMemoryQualityIntelligenceLocalStore();
504
752
  let generatedCandidates = [];
505
753
  let generatedAt;
@@ -515,16 +763,23 @@ async function runScopedEphemeral(args) {
515
763
  ingestion,
516
764
  atomsToRegenerate,
517
765
  profile,
766
+ signal,
518
767
  });
519
768
  if (failure !== null)
520
769
  return { ok: false, result: failure };
521
770
  return finalizeScopedWorkflow(evidenceStore, newRunId, generatedCandidates, generatedAt);
522
771
  }
523
772
  function buildMergedCandidates(newRunId, preservedCandidates, regeneratedCandidates) {
524
- return [
773
+ return deduplicateCandidates([
525
774
  ...preservedCandidates.map((candidate) => rowToCandidate(candidate, newRunId)),
526
775
  ...regeneratedCandidates,
527
- ];
776
+ ]);
777
+ }
778
+ function assertMergedCandidateBudget(preservedCandidates, regeneratedCandidates) {
779
+ const limit = QUALITY_INTELLIGENCE_DEFAULT_WORKFLOW_LIMITS.maxCandidatesPerRun;
780
+ if (preservedCandidates.length + regeneratedCandidates.length <= limit)
781
+ return null;
782
+ return errorResult(409, "QI_REGEN_CANDIDATE_CAP_EXCEEDED", "Regenerating the stale tests would exceed the per-run candidate limit. Reduce the stale scope or start a fresh QI run against the current source.");
528
783
  }
529
784
  function buildCoverageArtifacts(runId, ingestion, mergedCandidates) {
530
785
  const atoms = ingestion.ingestedAtoms.map((entry) => entry.atom);
@@ -540,6 +795,18 @@ function buildCoverageArtifacts(runId, ingestion, mergedCandidates) {
540
795
  .filter((row) => row !== null),
541
796
  };
542
797
  }
798
+ // Order by severity (critical -> low) BEFORE truncating, then cap to the per-run limit — mirroring
799
+ // the initial run path (modelRoutedTestDesign). Sorting first guarantees that if the merge hits the
800
+ // cap, the most severe findings (including high-severity uncovered-requirement coverage gaps) survive
801
+ // rather than being dropped by array position. Array.prototype.sort is stable, so same-severity
802
+ // insertion order — coverage-gap rows first — is preserved, matching the initial path exactly.
803
+ function sortAndCapMergedFindings(rows, cap) {
804
+ return rows
805
+ .slice()
806
+ .sort((a, b) => QualityIntelligence.QUALITY_INTELLIGENCE_SEVERITY_RANK[a.severity] -
807
+ QualityIntelligence.QUALITY_INTELLIGENCE_SEVERITY_RANK[b.severity])
808
+ .slice(0, cap);
809
+ }
543
810
  function buildMergedFindings(args) {
544
811
  const preservedIds = new Set(args.preservedCandidates.map((candidate) => candidate.id));
545
812
  const regeneratedIds = new Set(args.regeneratedCandidates.map((candidate) => String(candidate.id)));
@@ -547,12 +814,16 @@ function buildMergedFindings(args) {
547
814
  const regeneratedJudgeRows = args.regeneratedManifest === undefined
548
815
  ? []
549
816
  : filteredJudgeFindings(args.regeneratedManifest.findings, regeneratedIds);
550
- return Object.freeze([
817
+ // Source the cap from the default workflow limits: the re-check regeneration sub-run
818
+ // (regenWorkflowDeps) passes no custom `limits`, so it runs under these defaults — keeping the
819
+ // merge cap consistent with the sub-run's own maxFindingsPerRun.
820
+ const merged = sortAndCapMergedFindings([
551
821
  ...args.coverageGapRows,
552
822
  ...validateCandidates(args.runId, args.mergedCandidates).map(toCandidateFindingRow),
553
823
  ...preservedJudgeRows,
554
824
  ...regeneratedJudgeRows,
555
- ]);
825
+ ], QUALITY_INTELLIGENCE_DEFAULT_WORKFLOW_LIMITS.maxFindingsPerRun);
826
+ return Object.freeze(merged);
556
827
  }
557
828
  function buildMergedRunRecord(args) {
558
829
  const { newRunId, requestedAt, profile, oldManifest, ingestion, preservedCandidates } = args;
@@ -600,8 +871,16 @@ function optionalModelFields(regeneratedManifest) {
600
871
  : {}),
601
872
  };
602
873
  }
603
- function recordMergedManifest(evidenceDir, args) {
604
- recordQualityIntelligenceRun(buildMergedRunRecord(args), { evidenceDir });
874
+ function recordMergedManifest(evidenceDir, args, additionalSecrets) {
875
+ // Persist-time secret scrubbing at parity with the initial-run path (runExecution.ts
876
+ // buildWorkflowDeps): the merged manifest carries judge rationales forwarded from the regenerated
877
+ // run, so the live additionalSecrets list must reach the manifest writer here too — otherwise a
878
+ // configured provider secret echoed in a rationale that the security-package builtin patterns do
879
+ // not match would survive into the on-disk merged manifest (Issue #747 defence-in-depth).
880
+ recordQualityIntelligenceRun(buildMergedRunRecord(args), {
881
+ evidenceDir,
882
+ redaction: { additionalSecrets },
883
+ });
605
884
  }
606
885
  function recordMergedCandidatesArtifact(args) {
607
886
  recordQualityIntelligenceCandidates({
@@ -626,6 +905,14 @@ function persistMergedRun(args) {
626
905
  regeneratedCandidates: args.regeneratedCandidates,
627
906
  regeneratedManifest: args.regeneratedManifest,
628
907
  });
908
+ recordMergedCandidatesArtifact({
909
+ deps: args.deps,
910
+ evidenceDir: args.evidenceDir,
911
+ newRunId: args.newRunId,
912
+ completedAt: args.completedAt,
913
+ mergedCandidates,
914
+ preservedEditedRevisions: args.preservedEditedRevisions,
915
+ });
629
916
  recordMergedManifest(args.evidenceDir, {
630
917
  newRunId: args.newRunId,
631
918
  requestedAt: args.requestedAt,
@@ -638,23 +925,9 @@ function persistMergedRun(args) {
638
925
  completedAt: args.completedAt,
639
926
  findings,
640
927
  coverageMatrix: coverage.coverageMatrix,
641
- });
642
- recordMergedCandidatesArtifact({
643
- deps: args.deps,
644
- evidenceDir: args.evidenceDir,
645
- newRunId: args.newRunId,
646
- completedAt: args.completedAt,
647
- mergedCandidates,
648
- preservedEditedRevisions: args.preservedEditedRevisions,
649
- });
928
+ }, currentRedactionSecrets(args.deps));
650
929
  }
651
- function immediateRegenerationResult(id, drift, narrowed) {
652
- if (narrowed.staleIds.size === 0) {
653
- return {
654
- status: 200,
655
- body: { runId: id, regeneratedCount: 0, preservedCount: drift.oldCandidates.length },
656
- };
657
- }
930
+ function immediateRegenerationResult(narrowed) {
658
931
  if (narrowed.legacyRequirementsFallback) {
659
932
  return errorResult(409, "QI_REGEN_LEGACY_REQUIREMENTS_UNSUPPORTED", "This run predates atom-level requirements drift metadata. Start a new QI run against the current requirements sources instead.");
660
933
  }
@@ -663,7 +936,7 @@ function immediateRegenerationResult(id, drift, narrowed) {
663
936
  // regenerate), persisting the merge would silently drop the entire run. This is the catastrophic
664
937
  // shape an atom-id scheme drift would take; fail closed with an actionable error instead (Epic
665
938
  // #735 drift correctness). The legitimate "some tests orphaned, some preserved" case keeps
666
- // preserved > 0 and is unaffected; a no-drift run already returned above.
939
+ // preserved > 0 and is unaffected.
667
940
  if (narrowed.preservedCandidates.length === 0 && narrowed.atomsToRegenerate.length === 0) {
668
941
  return errorResult(409, "QI_REGEN_WOULD_EMPTY", "Regenerating the stale tests would remove every test in this run because the current source no longer maps to any of them. Start a fresh QI run against the current source instead.");
669
942
  }
@@ -690,6 +963,7 @@ async function regenerateCandidateSlice(args) {
690
963
  ingestion: args.drift.ingestion,
691
964
  atomsToRegenerate: args.narrowed.atomsToRegenerate,
692
965
  profile: args.profile,
966
+ signal: args.signal,
693
967
  });
694
968
  return outcome.ok
695
969
  ? {
@@ -702,12 +976,41 @@ async function regenerateCandidateSlice(args) {
702
976
  }
703
977
  : outcome;
704
978
  }
979
+ function persistRegenerationResult(args) {
980
+ persistMergedRun({
981
+ deps: args.deps,
982
+ evidenceDir: args.evidenceDir,
983
+ newRunId: args.newRunId,
984
+ requestedAt: args.requestedAt,
985
+ profile: args.profile,
986
+ oldManifest: args.drift.manifest,
987
+ ingestion: args.drift.ingestion,
988
+ preservedCandidates: args.narrowed.preservedCandidates,
989
+ preservedEditedRevisions: args.narrowed.preservedEditedRevisions,
990
+ regeneratedCandidates: args.regenerated.candidates,
991
+ regeneratedManifest: args.regenerated.manifest,
992
+ completedAt: args.regenerated.completedAt,
993
+ });
994
+ }
995
+ function regenerationSuccessResult(args) {
996
+ return {
997
+ status: 200,
998
+ body: {
999
+ runId: args.newRunId,
1000
+ regeneratedCount: args.regeneratedCount,
1001
+ preservedCount: args.preservedCount,
1002
+ },
1003
+ };
1004
+ }
705
1005
  async function regenerateFromDrift(args) {
706
- const { deps, id, evidenceDir, newRunId, requestedAt, drift } = args;
1006
+ const { deps, evidenceDir, newRunId, requestedAt, drift, signal } = args;
707
1007
  const narrowed = narrowRegeneration(drift);
708
- const immediate = immediateRegenerationResult(id, drift, narrowed);
1008
+ const immediate = immediateRegenerationResult(narrowed);
709
1009
  if (immediate !== null)
710
1010
  return immediate;
1011
+ const cancelledBeforeRegeneration = cancellationResult(signal);
1012
+ if (cancelledBeforeRegeneration !== null)
1013
+ return cancelledBeforeRegeneration;
711
1014
  const profile = resolveProfile(drift.manifest.policyProfileIds[0]);
712
1015
  const regenerated = await regenerateCandidateSlice({
713
1016
  deps,
@@ -716,31 +1019,31 @@ async function regenerateFromDrift(args) {
716
1019
  drift,
717
1020
  narrowed,
718
1021
  profile,
1022
+ signal,
719
1023
  });
720
1024
  if (!regenerated.ok)
721
1025
  return regenerated.result;
722
- persistMergedRun({
1026
+ const cancelledBeforePersist = cancellationResult(signal);
1027
+ if (cancelledBeforePersist !== null)
1028
+ return cancelledBeforePersist;
1029
+ const budgetError = assertMergedCandidateBudget(narrowed.preservedCandidates, regenerated.value.candidates);
1030
+ if (budgetError !== null)
1031
+ return budgetError;
1032
+ persistRegenerationResult({
723
1033
  deps,
724
1034
  evidenceDir,
725
1035
  newRunId,
726
1036
  requestedAt,
1037
+ drift,
1038
+ narrowed,
727
1039
  profile,
728
- oldManifest: drift.manifest,
729
- ingestion: drift.ingestion,
730
- preservedCandidates: narrowed.preservedCandidates,
731
- preservedEditedRevisions: narrowed.preservedEditedRevisions,
732
- regeneratedCandidates: regenerated.value.candidates,
733
- regeneratedManifest: regenerated.value.manifest,
734
- completedAt: regenerated.value.completedAt,
1040
+ regenerated: regenerated.value,
1041
+ });
1042
+ return regenerationSuccessResult({
1043
+ newRunId,
1044
+ regeneratedCount: regenerated.value.candidates.length,
1045
+ preservedCount: narrowed.preservedCandidates.length,
735
1046
  });
736
- return {
737
- status: 200,
738
- body: {
739
- runId: newRunId,
740
- regeneratedCount: regenerated.value.candidates.length,
741
- preservedCount: narrowed.preservedCandidates.length,
742
- },
743
- };
744
1047
  }
745
1048
  export async function handleQiReCheck(ctx, deps) {
746
1049
  const { id } = ctx.params;
@@ -788,22 +1091,26 @@ export async function handleQiRegenerateStale(ctx, deps) {
788
1091
  }
789
1092
  const newRunId = `qi-run-${randomUUID()}`;
790
1093
  const requestedAt = new Date().toISOString();
1094
+ const abortScope = requestAbortSignal(ctx);
791
1095
  try {
792
1096
  const drift = await computeDrift(ctx.req, evidenceDir, id, newRunId, deps);
793
1097
  if (!drift.ok)
794
1098
  return drift.result;
795
1099
  return await regenerateFromDrift({
796
1100
  deps,
797
- id,
798
1101
  evidenceDir,
799
1102
  newRunId,
800
1103
  requestedAt,
801
1104
  drift: drift.value,
1105
+ signal: abortScope.signal,
802
1106
  });
803
1107
  }
804
1108
  catch {
805
1109
  return errorResult(500, "QI_REGEN_FAILED", "Failed to regenerate stale candidates.");
806
1110
  }
1111
+ finally {
1112
+ abortScope.dispose();
1113
+ }
807
1114
  }
808
1115
  export const QI_RECHECK_ROUTE_GROUP = [
809
1116
  {