@oscharko-dev/keiko 0.2.0-beta.7 → 0.2.0-beta.9

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 (314) hide show
  1. package/dist/ui/csp-hashes.json +14 -14
  2. package/dist/ui/static/404.html +1 -1
  3. package/dist/ui/static/__next.__PAGE__.txt +2 -2
  4. package/dist/ui/static/__next._full.txt +3 -3
  5. package/dist/ui/static/__next._head.txt +1 -1
  6. package/dist/ui/static/__next._index.txt +2 -2
  7. package/dist/ui/static/__next._tree.txt +2 -2
  8. package/dist/ui/static/_next/static/chunks/06-q1ntr51v8r.js +1 -0
  9. package/dist/ui/static/_next/static/chunks/0y9qlvrxsyign.js +109 -0
  10. package/dist/ui/static/_next/static/chunks/1h0v66-p9cx19.css +1 -0
  11. package/dist/ui/static/_next/static/chunks/3ewv4mguqzooj.js +1 -0
  12. package/dist/ui/static/_not-found/__next._full.txt +2 -2
  13. package/dist/ui/static/_not-found/__next._head.txt +1 -1
  14. package/dist/ui/static/_not-found/__next._index.txt +2 -2
  15. package/dist/ui/static/_not-found/__next._not-found.__PAGE__.txt +1 -1
  16. package/dist/ui/static/_not-found/__next._not-found.txt +1 -1
  17. package/dist/ui/static/_not-found/__next._tree.txt +2 -2
  18. package/dist/ui/static/_not-found.html +1 -1
  19. package/dist/ui/static/_not-found.txt +2 -2
  20. package/dist/ui/static/fonts/OFL.txt +93 -0
  21. package/dist/ui/static/fonts/jetbrains-mono-latin-wght-normal.woff2 +0 -0
  22. package/dist/ui/static/index.html +1 -1
  23. package/dist/ui/static/index.txt +3 -3
  24. package/dist/ui/static/launch/__next._full.txt +3 -3
  25. package/dist/ui/static/launch/__next._head.txt +1 -1
  26. package/dist/ui/static/launch/__next._index.txt +2 -2
  27. package/dist/ui/static/launch/__next._tree.txt +2 -2
  28. package/dist/ui/static/launch/__next.launch.__PAGE__.txt +2 -2
  29. package/dist/ui/static/launch/__next.launch.txt +1 -1
  30. package/dist/ui/static/launch.html +1 -1
  31. package/dist/ui/static/launch.txt +3 -3
  32. package/dist/ui/static/local-knowledge/__next._full.txt +3 -3
  33. package/dist/ui/static/local-knowledge/__next._head.txt +1 -1
  34. package/dist/ui/static/local-knowledge/__next._index.txt +2 -2
  35. package/dist/ui/static/local-knowledge/__next._tree.txt +2 -2
  36. package/dist/ui/static/local-knowledge/__next.local-knowledge.__PAGE__.txt +2 -2
  37. package/dist/ui/static/local-knowledge/__next.local-knowledge.txt +1 -1
  38. package/dist/ui/static/local-knowledge/capsule/__next._full.txt +3 -3
  39. package/dist/ui/static/local-knowledge/capsule/__next._head.txt +1 -1
  40. package/dist/ui/static/local-knowledge/capsule/__next._index.txt +2 -2
  41. package/dist/ui/static/local-knowledge/capsule/__next._tree.txt +2 -2
  42. package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.capsule.__PAGE__.txt +2 -2
  43. package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.capsule.txt +1 -1
  44. package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.txt +1 -1
  45. package/dist/ui/static/local-knowledge/capsule.html +1 -1
  46. package/dist/ui/static/local-knowledge/capsule.txt +3 -3
  47. package/dist/ui/static/local-knowledge.html +1 -1
  48. package/dist/ui/static/local-knowledge.txt +3 -3
  49. package/dist/ui/static/memoriaviva/__next._full.txt +2 -2
  50. package/dist/ui/static/memoriaviva/__next._head.txt +1 -1
  51. package/dist/ui/static/memoriaviva/__next._index.txt +2 -2
  52. package/dist/ui/static/memoriaviva/__next._tree.txt +2 -2
  53. package/dist/ui/static/memoriaviva/__next.memoriaviva.__PAGE__.txt +1 -1
  54. package/dist/ui/static/memoriaviva/__next.memoriaviva.txt +1 -1
  55. package/dist/ui/static/memoriaviva/consolidation/__next._full.txt +2 -2
  56. package/dist/ui/static/memoriaviva/consolidation/__next._head.txt +1 -1
  57. package/dist/ui/static/memoriaviva/consolidation/__next._index.txt +2 -2
  58. package/dist/ui/static/memoriaviva/consolidation/__next._tree.txt +2 -2
  59. package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.consolidation.__PAGE__.txt +1 -1
  60. package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.consolidation.txt +1 -1
  61. package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.txt +1 -1
  62. package/dist/ui/static/memoriaviva/consolidation.html +1 -1
  63. package/dist/ui/static/memoriaviva/consolidation.txt +2 -2
  64. package/dist/ui/static/memoriaviva/detail/__next._full.txt +2 -2
  65. package/dist/ui/static/memoriaviva/detail/__next._head.txt +1 -1
  66. package/dist/ui/static/memoriaviva/detail/__next._index.txt +2 -2
  67. package/dist/ui/static/memoriaviva/detail/__next._tree.txt +2 -2
  68. package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.detail.__PAGE__.txt +1 -1
  69. package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.detail.txt +1 -1
  70. package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.txt +1 -1
  71. package/dist/ui/static/memoriaviva/detail.html +1 -1
  72. package/dist/ui/static/memoriaviva/detail.txt +2 -2
  73. package/dist/ui/static/memoriaviva/review-queue/__next._full.txt +2 -2
  74. package/dist/ui/static/memoriaviva/review-queue/__next._head.txt +1 -1
  75. package/dist/ui/static/memoriaviva/review-queue/__next._index.txt +2 -2
  76. package/dist/ui/static/memoriaviva/review-queue/__next._tree.txt +2 -2
  77. package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.review-queue.__PAGE__.txt +1 -1
  78. package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.review-queue.txt +1 -1
  79. package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.txt +1 -1
  80. package/dist/ui/static/memoriaviva/review-queue.html +1 -1
  81. package/dist/ui/static/memoriaviva/review-queue.txt +2 -2
  82. package/dist/ui/static/memoriaviva.html +1 -1
  83. package/dist/ui/static/memoriaviva.txt +2 -2
  84. package/dist/ui/static/sw.js +7 -3
  85. package/node_modules/@oscharko-dev/keiko-cli/dist/.tsbuildinfo +1 -1
  86. package/node_modules/@oscharko-dev/keiko-cli/dist/memory.d.ts.map +1 -1
  87. package/node_modules/@oscharko-dev/keiko-cli/dist/memory.js +4 -5
  88. package/node_modules/@oscharko-dev/keiko-cli/package.json +1 -1
  89. package/node_modules/@oscharko-dev/keiko-contracts/dist/.tsbuildinfo +1 -1
  90. package/node_modules/@oscharko-dev/keiko-contracts/dist/index.d.ts +2 -2
  91. package/node_modules/@oscharko-dev/keiko-contracts/dist/index.d.ts.map +1 -1
  92. package/node_modules/@oscharko-dev/keiko-contracts/dist/index.js +1 -1
  93. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/bffWire.d.ts +36 -4
  94. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/bffWire.d.ts.map +1 -1
  95. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/index.d.ts +1 -1
  96. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/index.d.ts.map +1 -1
  97. package/node_modules/@oscharko-dev/keiko-contracts/package.json +1 -1
  98. package/node_modules/@oscharko-dev/keiko-evaluations/dist/.tsbuildinfo +1 -1
  99. package/node_modules/@oscharko-dev/keiko-evaluations/package.json +1 -1
  100. package/node_modules/@oscharko-dev/keiko-evidence/dist/.tsbuildinfo +1 -1
  101. package/node_modules/@oscharko-dev/keiko-evidence/dist/index.d.ts +1 -1
  102. package/node_modules/@oscharko-dev/keiko-evidence/dist/index.d.ts.map +1 -1
  103. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.d.ts +15 -0
  104. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.d.ts.map +1 -1
  105. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.js +13 -3
  106. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.d.ts +13 -0
  107. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.d.ts.map +1 -1
  108. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.js +46 -2
  109. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.d.ts +2 -2
  110. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.d.ts.map +1 -1
  111. package/node_modules/@oscharko-dev/keiko-evidence/package.json +1 -1
  112. package/node_modules/@oscharko-dev/keiko-harness/dist/.tsbuildinfo +1 -1
  113. package/node_modules/@oscharko-dev/keiko-harness/package.json +1 -1
  114. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/.tsbuildinfo +1 -1
  115. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/pdf-parser.d.ts.map +1 -1
  116. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/pdf-parser.js +0 -10
  117. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/types.d.ts +2 -2
  118. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/types.d.ts.map +1 -1
  119. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/types.js +3 -3
  120. package/node_modules/@oscharko-dev/keiko-local-knowledge/package.json +1 -1
  121. package/node_modules/@oscharko-dev/keiko-memory-capture/package.json +1 -1
  122. package/node_modules/@oscharko-dev/keiko-memory-consolidation/package.json +1 -1
  123. package/node_modules/@oscharko-dev/keiko-memory-governance/dist/.tsbuildinfo +1 -1
  124. package/node_modules/@oscharko-dev/keiko-memory-governance/dist/index.d.ts +1 -1
  125. package/node_modules/@oscharko-dev/keiko-memory-governance/dist/index.d.ts.map +1 -1
  126. package/node_modules/@oscharko-dev/keiko-memory-governance/dist/index.js +1 -1
  127. package/node_modules/@oscharko-dev/keiko-memory-governance/dist/maintenance.d.ts +2 -16
  128. package/node_modules/@oscharko-dev/keiko-memory-governance/dist/maintenance.d.ts.map +1 -1
  129. package/node_modules/@oscharko-dev/keiko-memory-governance/dist/maintenance.js +49 -48
  130. package/node_modules/@oscharko-dev/keiko-memory-governance/dist/retention.d.ts +2 -1
  131. package/node_modules/@oscharko-dev/keiko-memory-governance/dist/retention.d.ts.map +1 -1
  132. package/node_modules/@oscharko-dev/keiko-memory-governance/dist/retention.js +15 -0
  133. package/node_modules/@oscharko-dev/keiko-memory-governance/package.json +1 -1
  134. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/.tsbuildinfo +1 -1
  135. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/decay.d.ts +2 -0
  136. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/decay.d.ts.map +1 -0
  137. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/decay.js +22 -0
  138. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/diversity.d.ts +8 -0
  139. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/diversity.d.ts.map +1 -0
  140. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/diversity.js +87 -0
  141. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/index.d.ts +4 -2
  142. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/index.d.ts.map +1 -1
  143. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/index.js +4 -1
  144. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/ranking.d.ts +5 -1
  145. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/ranking.d.ts.map +1 -1
  146. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/ranking.js +140 -21
  147. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/recency.d.ts.map +1 -1
  148. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/recency.js +4 -10
  149. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/retrieve.d.ts.map +1 -1
  150. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/retrieve.js +11 -1
  151. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/strength.d.ts +9 -0
  152. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/strength.d.ts.map +1 -0
  153. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/strength.js +51 -0
  154. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/types.d.ts +11 -0
  155. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/types.d.ts.map +1 -1
  156. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/types.js +7 -0
  157. package/node_modules/@oscharko-dev/keiko-memory-retrieval/package.json +1 -1
  158. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/.tsbuildinfo +1 -1
  159. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/access.d.ts +3 -0
  160. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/access.d.ts.map +1 -1
  161. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/access.js +31 -1
  162. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/schema.d.ts +1 -1
  163. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/schema.d.ts.map +1 -1
  164. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/schema.js +16 -1
  165. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/types.d.ts +1 -0
  166. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/types.d.ts.map +1 -1
  167. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/vault.d.ts.map +1 -1
  168. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/vault.js +4 -1
  169. package/node_modules/@oscharko-dev/keiko-memory-vault/package.json +1 -1
  170. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/.tsbuildinfo +1 -1
  171. package/node_modules/@oscharko-dev/keiko-model-gateway/package.json +1 -1
  172. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/.tsbuildinfo +1 -1
  173. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.d.ts +8 -0
  174. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.d.ts.map +1 -1
  175. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.js +9 -5
  176. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testDesignModel.d.ts +6 -0
  177. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testDesignModel.d.ts.map +1 -1
  178. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testDesignModel.js +116 -21
  179. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testQualityRubric.d.ts +6 -0
  180. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testQualityRubric.d.ts.map +1 -1
  181. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/testQualityRubric.js +12 -0
  182. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/validation.d.ts.map +1 -1
  183. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/validation.js +8 -7
  184. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/parseGeneratedCandidates.d.ts.map +1 -1
  185. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/parseGeneratedCandidates.js +29 -7
  186. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/prompt.d.ts.map +1 -1
  187. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/generation/prompt.js +61 -24
  188. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/index.d.ts +1 -1
  189. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/index.d.ts.map +1 -1
  190. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/index.js +1 -1
  191. package/node_modules/@oscharko-dev/keiko-quality-intelligence/package.json +1 -1
  192. package/node_modules/@oscharko-dev/keiko-sdk/dist/.tsbuildinfo +1 -1
  193. package/node_modules/@oscharko-dev/keiko-sdk/package.json +1 -1
  194. package/node_modules/@oscharko-dev/keiko-security/dist/.tsbuildinfo +1 -1
  195. package/node_modules/@oscharko-dev/keiko-security/package.json +1 -1
  196. package/node_modules/@oscharko-dev/keiko-server/dist/.tsbuildinfo +1 -1
  197. package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.d.ts.map +1 -1
  198. package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.js +44 -65
  199. package/node_modules/@oscharko-dev/keiko-server/dist/conversation-prompt.d.ts.map +1 -1
  200. package/node_modules/@oscharko-dev/keiko-server/dist/conversation-prompt.js +2 -0
  201. package/node_modules/@oscharko-dev/keiko-server/dist/deps.d.ts +2 -0
  202. package/node_modules/@oscharko-dev/keiko-server/dist/deps.d.ts.map +1 -1
  203. package/node_modules/@oscharko-dev/keiko-server/dist/deps.js +1 -0
  204. package/node_modules/@oscharko-dev/keiko-server/dist/gateway-setup.d.ts.map +1 -1
  205. package/node_modules/@oscharko-dev/keiko-server/dist/gateway-setup.js +333 -70
  206. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.d.ts +1 -0
  207. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.d.ts.map +1 -1
  208. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.js +410 -18
  209. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-prompt.d.ts.map +1 -1
  210. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-prompt.js +1 -0
  211. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-hybrid.d.ts.map +1 -1
  212. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-hybrid.js +7 -5
  213. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-multi-source.js +4 -3
  214. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa.d.ts +1 -0
  215. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa.d.ts.map +1 -1
  216. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa.js +4 -1
  217. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.d.ts +1 -0
  218. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.d.ts.map +1 -1
  219. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.js +8 -3
  220. package/node_modules/@oscharko-dev/keiko-server/dist/memory-conv-handlers.d.ts.map +1 -1
  221. package/node_modules/@oscharko-dev/keiko-server/dist/memory-conv-handlers.js +34 -5
  222. package/node_modules/@oscharko-dev/keiko-server/dist/memory-embedding.d.ts +12 -2
  223. package/node_modules/@oscharko-dev/keiko-server/dist/memory-embedding.d.ts.map +1 -1
  224. package/node_modules/@oscharko-dev/keiko-server/dist/memory-embedding.js +127 -0
  225. package/node_modules/@oscharko-dev/keiko-server/dist/memory-handlers.d.ts.map +1 -1
  226. package/node_modules/@oscharko-dev/keiko-server/dist/memory-handlers.js +40 -11
  227. package/node_modules/@oscharko-dev/keiko-server/dist/memory-maintenance-handlers.d.ts +16 -3
  228. package/node_modules/@oscharko-dev/keiko-server/dist/memory-maintenance-handlers.d.ts.map +1 -1
  229. package/node_modules/@oscharko-dev/keiko-server/dist/memory-maintenance-handlers.js +72 -50
  230. package/node_modules/@oscharko-dev/keiko-server/dist/memory-retrieval-signals.d.ts +12 -0
  231. package/node_modules/@oscharko-dev/keiko-server/dist/memory-retrieval-signals.d.ts.map +1 -0
  232. package/node_modules/@oscharko-dev/keiko-server/dist/memory-retrieval-signals.js +84 -0
  233. package/node_modules/@oscharko-dev/keiko-server/dist/memory-salience.d.ts.map +1 -1
  234. package/node_modules/@oscharko-dev/keiko-server/dist/memory-salience.js +11 -6
  235. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnector.d.ts.map +1 -1
  236. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnector.js +9 -4
  237. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaScopedPagination.d.ts +6 -5
  238. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaScopedPagination.d.ts.map +1 -1
  239. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaScopedPagination.js +10 -9
  240. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotBuilder.d.ts +2 -1
  241. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotBuilder.d.ts.map +1 -1
  242. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotBuilder.js +62 -26
  243. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotHash.d.ts +2 -0
  244. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotHash.d.ts.map +1 -1
  245. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotHash.js +6 -3
  246. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotTypes.d.ts +14 -0
  247. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotTypes.d.ts.map +1 -1
  248. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.d.ts +33 -0
  249. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.d.ts.map +1 -1
  250. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.js +263 -5
  251. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotScreenIds.d.ts +19 -0
  252. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotScreenIds.d.ts.map +1 -0
  253. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotScreenIds.js +75 -0
  254. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/judgePort.d.ts.map +1 -1
  255. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/judgePort.js +13 -12
  256. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/modelSelection.d.ts +6 -6
  257. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/modelSelection.d.ts.map +1 -1
  258. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/modelSelection.js +12 -7
  259. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reCheckRoutes.d.ts.map +1 -1
  260. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reCheckRoutes.js +34 -3
  261. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.d.ts +4 -2
  262. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.d.ts.map +1 -1
  263. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.js +222 -35
  264. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.d.ts +7 -0
  265. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.d.ts.map +1 -1
  266. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.js +68 -16
  267. package/node_modules/@oscharko-dev/keiko-server/dist/routes.d.ts.map +1 -1
  268. package/node_modules/@oscharko-dev/keiko-server/dist/routes.js +7 -1
  269. package/node_modules/@oscharko-dev/keiko-server/package.json +1 -1
  270. package/node_modules/@oscharko-dev/keiko-tools/dist/.tsbuildinfo +1 -1
  271. package/node_modules/@oscharko-dev/keiko-tools/package.json +1 -1
  272. package/node_modules/@oscharko-dev/keiko-verification/dist/.tsbuildinfo +1 -1
  273. package/node_modules/@oscharko-dev/keiko-verification/package.json +1 -1
  274. package/node_modules/@oscharko-dev/keiko-workflows/dist/.tsbuildinfo +1 -1
  275. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/anchors.d.ts.map +1 -1
  276. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/anchors.js +45 -0
  277. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/index.d.ts +2 -0
  278. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/index.d.ts.map +1 -1
  279. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/index.js +1 -0
  280. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/intent.d.ts +8 -0
  281. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/intent.d.ts.map +1 -0
  282. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/intent.js +140 -0
  283. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/plan.d.ts +2 -0
  284. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/plan.d.ts.map +1 -1
  285. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/plan.js +21 -5
  286. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/modelRoutedTestDesign.d.ts.map +1 -1
  287. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/modelRoutedTestDesign.js +86 -40
  288. package/node_modules/@oscharko-dev/keiko-workflows/dist/ranking/rank.d.ts.map +1 -1
  289. package/node_modules/@oscharko-dev/keiko-workflows/dist/ranking/rank.js +9 -0
  290. package/node_modules/@oscharko-dev/keiko-workflows/package.json +1 -1
  291. package/node_modules/@oscharko-dev/keiko-workspace/dist/.tsbuildinfo +1 -1
  292. package/node_modules/@oscharko-dev/keiko-workspace/dist/index.d.ts +1 -0
  293. package/node_modules/@oscharko-dev/keiko-workspace/dist/index.d.ts.map +1 -1
  294. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearch.d.ts +3 -0
  295. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearch.d.ts.map +1 -1
  296. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearch.js +23 -6
  297. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.d.ts +1 -1
  298. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.d.ts.map +1 -1
  299. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.js +24 -3
  300. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchPolicy.d.ts +34 -0
  301. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchPolicy.d.ts.map +1 -0
  302. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchPolicy.js +342 -0
  303. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchScan.d.ts +6 -1
  304. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchScan.d.ts.map +1 -1
  305. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchScan.js +57 -9
  306. package/node_modules/@oscharko-dev/keiko-workspace/package.json +1 -1
  307. package/package.json +2 -1
  308. package/dist/ui/static/_next/static/chunks/0-qhhdvxg2j_y.js +0 -1
  309. package/dist/ui/static/_next/static/chunks/0ke4ratkgvcxo.css +0 -1
  310. package/dist/ui/static/_next/static/chunks/3vf3oh2-sl2nc.js +0 -1
  311. package/dist/ui/static/_next/static/chunks/3wmd4-2vznp2g.js +0 -106
  312. /package/dist/ui/static/_next/static/{frhs0YcUqCPLHal-wHjDP → a5sUbXeTgQ9A2LRTMu_Q_}/_buildManifest.js +0 -0
  313. /package/dist/ui/static/_next/static/{frhs0YcUqCPLHal-wHjDP → a5sUbXeTgQ9A2LRTMu_Q_}/_clientMiddlewareManifest.js +0 -0
  314. /package/dist/ui/static/_next/static/{frhs0YcUqCPLHal-wHjDP → a5sUbXeTgQ9A2LRTMu_Q_}/_ssgManifest.js +0 -0
@@ -6,10 +6,10 @@
6
6
  // is injected as an abstract `generate` port so this module stays free of provider SDKs and the
7
7
  // server tier owns the gateway wiring (ADR-0023 D5/D6).
8
8
  import { QualityIntelligence as QI } from "@oscharko-dev/keiko-contracts";
9
- import { buildAtomCoverageStatuses, buildCoverageMap, buildRequirementExcerpt, computeCandidateEquivalenceSignature, deduplicateCandidates, deriveIntent, designTestCaseCandidates, scoreFromDimensions, TEST_QUALITY_WEAK_THRESHOLD, validateCandidates, QualityIntelligenceGeneration, } from "@oscharko-dev/keiko-quality-intelligence";
9
+ import { buildAtomCoverageStatuses, buildCoverageMap, buildRequirementExcerpt, computeCandidateEquivalenceSignature, deduplicateCandidates, deriveIntent, designTestCaseCandidates, scoreFromDimensions, TEST_QUALITY_WEAK_THRESHOLD, verdictFromDimensions, validateCandidates, QualityIntelligenceGeneration, } from "@oscharko-dev/keiko-quality-intelligence";
10
10
  import { sha256Hex } from "@oscharko-dev/keiko-security";
11
11
  import { QI_TEST_DESIGN_WORKFLOW_DESCRIPTOR } from "./descriptors.js";
12
- import { emit, emitCandidateProposed, emitFindingsRecorded, emitQueuedAndStarted, finaliseFailureOrCancellation, makeContext, persistRun, StageCancelledError, toCoverageMatrixRows, truncateCandidates, truncateFindings, withStage, } from "./runtimeCommon.js";
12
+ import { emit, emitCandidateProposed, emitFindingsRecorded, emitQueuedAndStarted, finaliseFailureOrCancellation, makeContext, persistRun, safeReasonSummary, StageCancelledError, toCoverageMatrixRows, truncateCandidates, truncateFindings, withStage, } from "./runtimeCommon.js";
13
13
  import { isCancelled } from "./cancellation.js";
14
14
  class EmptyEvidenceError extends Error {
15
15
  constructor() {
@@ -71,8 +71,8 @@ function buildCoverageGapFinding(runId, atomStatus, ordinal, excerpt) {
71
71
  ? `Atom ${String(atomStatus.atomId)}`
72
72
  : `Atom ${String(atomStatus.atomId)} ("${excerpt}")`;
73
73
  const summary = atomStatus.status === "uncovered"
74
- ? `${atomLabel} has no tracing test (uncovered).`
75
- : `${atomLabel} is only weakly covered (no dedicated test traces to it).`;
74
+ ? `${atomLabel} hat keinen zugeordneten Test (uncovered).`
75
+ : `${atomLabel} ist nur schwach abgedeckt (kein dedizierter Test referenziert dieses Atom).`;
76
76
  return Object.freeze({
77
77
  kind: "coverage-gap",
78
78
  id: QI.asQualityIntelligenceValidationFindingId(idStr),
@@ -82,11 +82,20 @@ function buildCoverageGapFinding(runId, atomStatus, ordinal, excerpt) {
82
82
  evidenceAtomIds: Object.freeze([atomStatus.atomId]),
83
83
  });
84
84
  }
85
+ const MODEL_DELTA_CANDIDATE_CEILING = 16;
86
+ const MODEL_DELTA_CANDIDATE_FLOOR = 3;
87
+ function modelDeltaCandidateLimit(evidenceCount, runLimit) {
88
+ const boundedRunLimit = Math.max(1, Math.trunc(runLimit));
89
+ const evidenceAwareLimit = Math.max(MODEL_DELTA_CANDIDATE_FLOOR, Math.max(1, Math.trunc(evidenceCount)) * 2);
90
+ return Math.max(1, Math.min(boundedRunLimit, MODEL_DELTA_CANDIDATE_CEILING, evidenceAwareLimit));
91
+ }
85
92
  function deterministicBaselineCandidates(ctx, input) {
93
+ const atomTextById = new Map(input.ingestedAtoms.map((entry) => [String(entry.atom.id), entry.canonicalText]));
86
94
  const candidates = designTestCaseCandidates({
87
95
  runId: input.plan.id,
88
96
  intent: deriveIntent(input.envelopes, ctx.profile),
89
97
  atoms: input.ingestedAtoms.map((entry) => entry.atom),
98
+ atomTextById,
90
99
  profile: ctx.profile,
91
100
  });
92
101
  return truncateCandidates(deduplicateCandidates(candidates), ctx.limits.maxCandidatesPerRun);
@@ -136,10 +145,10 @@ function selectReviewCandidates(persisted, baseline, delta) {
136
145
  const persistedDelta = delta.filter((candidate) => persistedIds.has(String(candidate.id)));
137
146
  return persistedDelta.length > 0 ? Object.freeze(persistedDelta) : baseline;
138
147
  }
139
- function modelGenerationOutput(result, ctx, input, maxCandidates) {
148
+ function modelGenerationOutput(result, ctx, input, runCandidateLimit, modelDeltaLimit) {
140
149
  const baseline = deterministicBaselineCandidates(ctx, input);
141
- const delta = parseModelCandidates(result, ctx, input, maxCandidates);
142
- const candidates = appendModelDelta(baseline, delta, maxCandidates);
150
+ const delta = parseModelCandidates(result, ctx, input, modelDeltaLimit);
151
+ const candidates = appendModelDelta(baseline, delta, runCandidateLimit);
143
152
  return {
144
153
  candidates,
145
154
  reviewCandidates: selectReviewCandidates(candidates, baseline, delta),
@@ -152,6 +161,25 @@ function modelGenerationOutput(result, ctx, input, maxCandidates) {
152
161
  modelParameters: result.modelParameters,
153
162
  };
154
163
  }
164
+ function baselineFallbackGenerationOutput(ctx, input, reasonSummary) {
165
+ const candidates = deterministicBaselineCandidates(ctx, input);
166
+ return {
167
+ candidates,
168
+ reviewCandidates: candidates,
169
+ skipJudge: true,
170
+ fallbackReason: reasonSummary,
171
+ modelParameters: { generationFallbackReason: reasonSummary },
172
+ };
173
+ }
174
+ function hasQiCode(error, code) {
175
+ if (!(error instanceof Error))
176
+ return false;
177
+ const coded = error;
178
+ return typeof coded.code === "string" && coded.code === code;
179
+ }
180
+ function shouldCountRejectedGenerationDispatch(error) {
181
+ return !hasQiCode(error, "QI_PROMPT_TOO_LARGE");
182
+ }
155
183
  async function generateCandidates(ctx, input, deps) {
156
184
  if (input.ingestedAtoms.length === 0) {
157
185
  throw new EmptyEvidenceError();
@@ -161,11 +189,12 @@ async function generateCandidates(ctx, input, deps) {
161
189
  kind: a.atom.kind,
162
190
  text: a.canonicalText,
163
191
  }));
164
- const maxCandidates = ctx.limits.maxCandidatesPerRun;
192
+ const runCandidateLimit = ctx.limits.maxCandidatesPerRun;
193
+ const modelDeltaLimit = modelDeltaCandidateLimit(evidence.length, runCandidateLimit);
165
194
  const instruction = QualityIntelligenceGeneration.buildTestDesignInstruction({
166
195
  evidenceCount: evidence.length,
167
196
  profile: ctx.profile,
168
- maxTestCases: maxCandidates,
197
+ maxTestCases: modelDeltaLimit,
169
198
  });
170
199
  // Count the generation gateway dispatch as an ATTEMPT, mirroring the judge contract
171
200
  // (judgeOneCandidate counts before its await). The generation port makes at most one gateway
@@ -174,37 +203,43 @@ async function generateCandidates(ctx, input, deps) {
174
203
  // under-reported a failed run's audit trail as 0 gateway calls (#273 audit; #843 undercount class).
175
204
  // The deterministic baseline port never rejects and reports modelCallCount 0, so it is unaffected.
176
205
  let result;
206
+ let countedGatewayDispatch = false;
177
207
  try {
178
208
  result = await deps.generate.generate({
179
209
  systemPrompt: QualityIntelligenceGeneration.QI_TEST_DESIGN_SYSTEM_PROMPT,
180
210
  instruction,
181
211
  evidence,
182
- maxCandidates,
212
+ maxCandidates: modelDeltaLimit,
183
213
  signal: ctx.signal,
184
214
  });
215
+ ctx.modelGatewayCallCount += result.modelCallCount;
216
+ countedGatewayDispatch = result.modelCallCount > 0;
217
+ if (result.modelId === undefined && result.modelCallCount === 0) {
218
+ const candidates = deterministicBaselineCandidates(ctx, input);
219
+ return {
220
+ candidates,
221
+ reviewCandidates: candidates,
222
+ ...(result.seedUsed !== undefined ? { seedUsed: result.seedUsed } : {}),
223
+ modelParameters: result.modelParameters,
224
+ };
225
+ }
226
+ return modelGenerationOutput(result, ctx, input, runCandidateLimit, modelDeltaLimit);
185
227
  }
186
228
  catch (error) {
187
- ctx.modelGatewayCallCount += 1;
188
- throw error;
189
- }
190
- ctx.modelGatewayCallCount += result.modelCallCount;
191
- if (result.modelId === undefined && result.modelCallCount === 0) {
192
- const candidates = deterministicBaselineCandidates(ctx, input);
193
- return {
194
- candidates,
195
- reviewCandidates: candidates,
196
- ...(result.seedUsed !== undefined ? { seedUsed: result.seedUsed } : {}),
197
- modelParameters: result.modelParameters,
198
- };
229
+ if (isCancellationError(ctx, error))
230
+ throw new StageCancelledError();
231
+ if (!countedGatewayDispatch && shouldCountRejectedGenerationDispatch(error)) {
232
+ ctx.modelGatewayCallCount += 1;
233
+ }
234
+ return baselineFallbackGenerationOutput(ctx, input, safeReasonSummary(error));
199
235
  }
200
- return modelGenerationOutput(result, ctx, input, maxCandidates);
201
236
  }
202
237
  function candidateSummaryText(candidate) {
203
238
  const parts = [
204
- `Title: ${candidate.title}`,
205
- `Preconditions: ${candidate.preconditions.join("; ")}`,
206
- `Steps: ${candidate.steps.join("; ")}`,
207
- `Expected: ${candidate.expectedResults.join("; ")}`,
239
+ `Titel: ${candidate.title}`,
240
+ `Vorbedingungen: ${candidate.preconditions.join("; ")}`,
241
+ `Schritte: ${candidate.steps.join("; ")}`,
242
+ `Erwartetes Ergebnis: ${candidate.expectedResults.join("; ")}`,
208
243
  ];
209
244
  return parts.join("\n");
210
245
  }
@@ -213,10 +248,10 @@ const FINDING_KIND_TRUNCATION_PRIORITY = {
213
248
  "test-quality": 0,
214
249
  };
215
250
  const JUDGE_DIMENSION_LABEL = {
216
- verifiability: "Verifiability",
217
- atomicity: "Atomicity",
218
- determinism: "Determinism",
219
- "ac-fidelity": "AC fidelity",
251
+ verifiability: "Prüfbarkeit",
252
+ atomicity: "Atomarität",
253
+ determinism: "Determinismus",
254
+ "ac-fidelity": "AC-Treue",
220
255
  };
221
256
  function sourceContextForCandidate(candidate, ingestedAtoms) {
222
257
  const byAtomId = new Map(ingestedAtoms.map((entry) => [
@@ -278,8 +313,8 @@ const JUDGE_CONCURRENCY = 4;
278
313
  function isCancellationError(ctx, error) {
279
314
  return error instanceof StageCancelledError || isCancelled(ctx.signal);
280
315
  }
281
- const JUDGE_ERROR_RATIONALE = "Quality judge could not evaluate this candidate; treating it as weak for audit.";
282
- const JUDGE_BUDGET_RATIONALE = "Quality judge budget exhausted before this candidate could be evaluated; treating it as weak for audit.";
316
+ const JUDGE_ERROR_RATIONALE = "Der Quality-Judge konnte diesen Kandidaten nicht bewerten; er wird für das Audit als schwach behandelt.";
317
+ const JUDGE_BUDGET_RATIONALE = "Das Quality-Judge-Budget war vor der Bewertung dieses Kandidaten ausgeschöpft; er wird für das Audit als schwach behandelt.";
283
318
  function buildSyntheticWeakJudgeOutcome(ctx, candidate, ordinal, rationale) {
284
319
  return {
285
320
  strong: false,
@@ -290,9 +325,10 @@ function buildSyntheticWeakJudgeOutcome(ctx, candidate, ordinal, rationale) {
290
325
  function cloneDimensions(dimensions) {
291
326
  return Object.freeze(dimensions.map((dimension) => Object.freeze({ ...dimension })));
292
327
  }
293
- function qualityVerdictFromJudge(verdict, score) {
328
+ function qualityVerdictFromJudge(verdict) {
329
+ const score = scoreFromDimensions(verdict.dimensions);
294
330
  return Object.freeze({
295
- verdict: verdict.verdict,
331
+ verdict: verdictFromDimensions(verdict.dimensions),
296
332
  score,
297
333
  dimensions: cloneDimensions(verdict.dimensions),
298
334
  overallRationale: verdict.overallRationale,
@@ -334,9 +370,10 @@ async function judgeOneCandidate(ctx, candidate, ordinal, ingestedAtoms, judge)
334
370
  return buildSyntheticWeakJudgeOutcome(ctx, candidate, ordinal, JUDGE_ERROR_RATIONALE);
335
371
  }
336
372
  const score = scoreFromDimensions(verdict.dimensions);
337
- const qualityVerdict = qualityVerdictFromJudge(verdict, score);
338
- if (verdict.verdict === "strong")
373
+ const qualityVerdict = qualityVerdictFromJudge(verdict);
374
+ if (qualityVerdict.verdict === "strong") {
339
375
  return { strong: true, finding: null, qualityVerdict };
376
+ }
340
377
  return {
341
378
  strong: false,
342
379
  finding: buildTestQualityFinding(ctx.plan.id, candidate, score, judgeRationaleSummary(verdict), ordinal),
@@ -476,10 +513,18 @@ export async function runQualityIntelligenceModelRoutedTestDesign(input, deps) {
476
513
  const generation = await withStage(ctx, "candidates", async () => generateCandidates(ctx, input, deps));
477
514
  const candidates = generation.candidates;
478
515
  const reviewCandidates = generation.reviewCandidates;
516
+ // A provider/parser failure is caught inside generateCandidates and degrades to the deterministic
517
+ // baseline (skipJudge), keeping the run alive. That degradation MUST stay visible: the redacted
518
+ // reason is threaded into the terminal summary (and surfaced on the wire `done` frame as
519
+ // `degraded` + `reasonSummary`) so the run is never presented as an authoritative model-backed
520
+ // result (regulated-delivery audit, QI-DEG-01).
521
+ const degradedReason = generation.skipJudge === true
522
+ ? (generation.fallbackReason ?? "qi-generation-fallback")
523
+ : undefined;
479
524
  emitCandidateProposed(ctx, candidates);
480
525
  const judge = deps.judge;
481
526
  const judgeResult = await withStage(ctx, "judge", async () => {
482
- if (judge === undefined)
527
+ if (judge === undefined || generation.skipJudge === true)
483
528
  return EMPTY_JUDGE_RESULT;
484
529
  try {
485
530
  return await runJudgeStage(ctx, reviewCandidates, input.ingestedAtoms, judge);
@@ -493,7 +538,7 @@ export async function runQualityIntelligenceModelRoutedTestDesign(input, deps) {
493
538
  }
494
539
  });
495
540
  const atoms = input.ingestedAtoms.map((a) => a.atom);
496
- const coverageMap = await withStage(ctx, "coverage", async () => Promise.resolve(buildCoverageMap({ runId: input.plan.id, atoms, candidates: reviewCandidates })));
541
+ const coverageMap = await withStage(ctx, "coverage", async () => Promise.resolve(buildCoverageMap({ runId: input.plan.id, atoms, candidates })));
497
542
  const atomStatuses = buildAtomCoverageStatuses(atoms, coverageMap);
498
543
  const excerptByAtomId = excerptsByAtomId(input.ingestedAtoms);
499
544
  const coverageMatrix = toCoverageMatrixRows(atomStatuses, excerptByAtomId);
@@ -504,7 +549,7 @@ export async function runQualityIntelligenceModelRoutedTestDesign(input, deps) {
504
549
  gapFindings.push(buildCoverageGapFinding(input.plan.id, s, i, excerptByAtomId.get(String(s.atomId))));
505
550
  }
506
551
  }
507
- const rawFindings = await withStage(ctx, "validate", async () => Promise.resolve(validateCandidates(input.plan.id, reviewCandidates)));
552
+ const rawFindings = await withStage(ctx, "validate", async () => Promise.resolve(validateCandidates(input.plan.id, candidates)));
508
553
  // Order by severity (critical -> low) BEFORE truncation so that, if the run hits the
509
554
  // per-run findings cap, the most severe findings — uncovered-requirement gaps included —
510
555
  // always survive the cut rather than being dropped by array position. Within a severity tier,
@@ -560,6 +605,7 @@ export async function runQualityIntelligenceModelRoutedTestDesign(input, deps) {
560
605
  modelGatewayCallCount: ctx.modelGatewayCallCount,
561
606
  evidence,
562
607
  qualityScore: judgeResult.qualityScore,
608
+ ...(degradedReason !== undefined ? { reasonSummary: degradedReason } : {}),
563
609
  });
564
610
  }
565
611
  catch (caught) {
@@ -1 +1 @@
1
- {"version":3,"file":"rank.d.ts","sourceRoot":"","sources":["../../src/ranking/rank.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,uBAAuB,EAG7B,MAAM,iDAAiD,CAAC;AAEzD,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAyC,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;CAC1C;AAsJD,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,GAAE,cAAmB,GAAG,aAAa,CAyB/F"}
1
+ {"version":3,"file":"rank.d.ts","sourceRoot":"","sources":["../../src/ranking/rank.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,uBAAuB,EAG7B,MAAM,iDAAiD,CAAC;AAEzD,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAyC,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;CAC1C;AA+JD,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,GAAE,cAAmB,GAAG,aAAa,CAyB/F"}
@@ -7,6 +7,12 @@ import { DEFAULT_FILTER_OPTIONS, filterCandidates, } from "./filter.js";
7
7
  import { DEFAULT_SCORING_WEIGHTS, computeScore } from "./scoring.js";
8
8
  import { DEFAULT_GENERATED_PATTERNS, extractSignals, } from "./signals.js";
9
9
  const AUTO_DUPLICATE_CLUSTER_MIN = 3;
10
+ const AUTO_DUPLICATE_BASENAME_EXEMPTIONS = new Set([
11
+ "agents.md",
12
+ "package.json",
13
+ "readme.md",
14
+ "tsconfig.json",
15
+ ]);
10
16
  function resolveHints(hints) {
11
17
  return {
12
18
  generatedPathPatterns: hints?.generatedPathPatterns ?? DEFAULT_GENERATED_PATTERNS,
@@ -67,6 +73,9 @@ function deriveDuplicateHints(group, explicit) {
67
73
  continue;
68
74
  }
69
75
  const key = basename(scopePath).toLowerCase();
76
+ if (AUTO_DUPLICATE_BASENAME_EXEMPTIONS.has(key)) {
77
+ continue;
78
+ }
70
79
  const existing = clusters.get(key);
71
80
  if (existing === undefined) {
72
81
  clusters.set(key, [entry]);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oscharko-dev/keiko-workflows",
3
- "version": "0.2.0-beta.7",
3
+ "version": "0.2.0-beta.9",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",