@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
@@ -0,0 +1,342 @@
1
+ const METADATA_FILENAMES = new Set([
2
+ "package.json",
3
+ "tsconfig.json",
4
+ "tsconfig.base.json",
5
+ "tsconfig.build.json",
6
+ "vite.config.ts",
7
+ "vite.config.js",
8
+ "vitest.config.ts",
9
+ "vitest.config.js",
10
+ "jest.config.ts",
11
+ "jest.config.js",
12
+ "playwright.config.ts",
13
+ "playwright.config.js",
14
+ "next.config.ts",
15
+ "next.config.js",
16
+ "eslint.config.ts",
17
+ "eslint.config.js",
18
+ ]);
19
+ const OVERVIEW_FILENAMES = new Set([
20
+ "readme.md",
21
+ "agents.md",
22
+ "contributing.md",
23
+ "architecture.md",
24
+ "docs/architecture.md",
25
+ "docs/overview.md",
26
+ "docs/readme.md",
27
+ ]);
28
+ const LOCKFILE_FILENAMES = new Set([
29
+ "bun.lock",
30
+ "bun.lockb",
31
+ "cargo.lock",
32
+ "composer.lock",
33
+ "gemfile.lock",
34
+ "package-lock.json",
35
+ "pnpm-lock.yaml",
36
+ "yarn.lock",
37
+ ]);
38
+ const LOW_VALUE_SEGMENTS = new Set([
39
+ ".parcel-cache",
40
+ ".svelte-kit",
41
+ ".vercel",
42
+ "coverage",
43
+ "dist",
44
+ "generated",
45
+ "storybook-static",
46
+ "tmp",
47
+ ]);
48
+ const LOW_VALUE_IGNORE_LINES = Object.freeze([
49
+ ".parcel-cache/",
50
+ ".svelte-kit/",
51
+ ".vercel/",
52
+ "coverage/",
53
+ "dist/",
54
+ "generated/",
55
+ "storybook-static/",
56
+ "tmp/",
57
+ "bun.lock",
58
+ "bun.lockb",
59
+ "cargo.lock",
60
+ "composer.lock",
61
+ "Gemfile.lock",
62
+ "package-lock.json",
63
+ "pnpm-lock.yaml",
64
+ "yarn.lock",
65
+ ]);
66
+ const SOURCE_EXTENSIONS = new Set([
67
+ "cjs",
68
+ "cts",
69
+ "go",
70
+ "java",
71
+ "js",
72
+ "jsx",
73
+ "mjs",
74
+ "mts",
75
+ "py",
76
+ "rs",
77
+ "ts",
78
+ "tsx",
79
+ "vue",
80
+ ]);
81
+ const DOC_EXTENSIONS = new Set(["adoc", "md", "mdx", "rst", "txt"]);
82
+ const TEST_FILE_RE = /(?:^|[./_-])(?:test|spec|fixture|mock)s?(?:[./_-]|$)/iu;
83
+ // Identifier tokens with a SINGLE greedy quantifier — no two overlapping `[A-Za-z0-9_$]*` runs
84
+ // around `[A-Z]`, which is a polynomial-ReDoS shape on uncontrolled query text (CodeQL). The
85
+ // camelCase test (an uppercase at position >= 1) is applied separately as a constant-width probe.
86
+ const IDENTIFIER_TOKEN_RE = /\b[A-Za-z_$][A-Za-z0-9_$]*\b/gu;
87
+ const HAS_INNER_UPPERCASE_RE = /[A-Za-z0-9_$][A-Z]/u;
88
+ const TOKEN_RE = /[A-Za-z0-9_.-]{3,}/gu;
89
+ function emptyBucketCounts() {
90
+ return {
91
+ "canonical-metadata": 0,
92
+ "overview-doc": 0,
93
+ "exact-path": 0,
94
+ "symbol-source": 0,
95
+ source: 0,
96
+ test: 0,
97
+ docs: 0,
98
+ lockfile: 0,
99
+ "low-value": 0,
100
+ other: 0,
101
+ };
102
+ }
103
+ function basename(scopePath) {
104
+ const index = scopePath.lastIndexOf("/");
105
+ return index >= 0 ? scopePath.slice(index + 1) : scopePath;
106
+ }
107
+ function extension(scopePath) {
108
+ const name = basename(scopePath).toLowerCase();
109
+ const dot = name.lastIndexOf(".");
110
+ return dot < 0 ? "" : name.slice(dot + 1);
111
+ }
112
+ function normalizedPath(scopePath) {
113
+ return scopePath.split("\\").join("/").toLowerCase();
114
+ }
115
+ function pathSegments(scopePath) {
116
+ return normalizedPath(scopePath)
117
+ .split("/")
118
+ .filter((segment) => segment.length > 0);
119
+ }
120
+ function isLockfile(scopePath) {
121
+ return LOCKFILE_FILENAMES.has(basename(scopePath).toLowerCase());
122
+ }
123
+ function hasLowValueSegment(scopePath) {
124
+ return pathSegments(scopePath).some((segment) => LOW_VALUE_SEGMENTS.has(segment));
125
+ }
126
+ function normalizedQueryTerms(query) {
127
+ const terms = new Set();
128
+ for (const match of query.text.matchAll(TOKEN_RE)) {
129
+ terms.add(match[0].toLowerCase());
130
+ }
131
+ for (const match of query.text.matchAll(IDENTIFIER_TOKEN_RE)) {
132
+ if (HAS_INNER_UPPERCASE_RE.test(match[0])) {
133
+ terms.add(match[0].toLowerCase());
134
+ }
135
+ }
136
+ return [...terms];
137
+ }
138
+ function bucketByPath(scopePath) {
139
+ const path = normalizedPath(scopePath);
140
+ const name = basename(path);
141
+ const ext = extension(path);
142
+ if (METADATA_FILENAMES.has(name)) {
143
+ return "canonical-metadata";
144
+ }
145
+ if (OVERVIEW_FILENAMES.has(path) || OVERVIEW_FILENAMES.has(name)) {
146
+ return "overview-doc";
147
+ }
148
+ if (isLockfile(path)) {
149
+ return "lockfile";
150
+ }
151
+ if (hasLowValueSegment(path)) {
152
+ return "low-value";
153
+ }
154
+ if (TEST_FILE_RE.test(path)) {
155
+ return "test";
156
+ }
157
+ if (SOURCE_EXTENSIONS.has(ext)) {
158
+ return "source";
159
+ }
160
+ if (DOC_EXTENSIONS.has(ext)) {
161
+ return "docs";
162
+ }
163
+ return "other";
164
+ }
165
+ function bucketScore(bucket, intent) {
166
+ if (intent === "project-metadata") {
167
+ return metadataBucketScore(bucket);
168
+ }
169
+ if (intent === "repository-overview") {
170
+ return overviewBucketScore(bucket);
171
+ }
172
+ if (intent === "targeted-code-search" || intent === "diagnostic-search") {
173
+ return targetedBucketScore(bucket);
174
+ }
175
+ return genericBucketScore(bucket);
176
+ }
177
+ function metadataBucketScore(bucket) {
178
+ const scores = {
179
+ "canonical-metadata": 100,
180
+ "overview-doc": 70,
181
+ "exact-path": 95,
182
+ "symbol-source": 80,
183
+ source: 45,
184
+ test: 40,
185
+ docs: 55,
186
+ lockfile: 15,
187
+ "low-value": 5,
188
+ other: 20,
189
+ };
190
+ return scores[bucket];
191
+ }
192
+ function overviewBucketScore(bucket) {
193
+ const scores = {
194
+ "canonical-metadata": 75,
195
+ "overview-doc": 100,
196
+ "exact-path": 95,
197
+ "symbol-source": 80,
198
+ source: 50,
199
+ test: 35,
200
+ docs: 70,
201
+ lockfile: 5,
202
+ "low-value": 5,
203
+ other: 20,
204
+ };
205
+ return scores[bucket];
206
+ }
207
+ function targetedBucketScore(bucket) {
208
+ const scores = {
209
+ "canonical-metadata": 65,
210
+ "overview-doc": 35,
211
+ "exact-path": 100,
212
+ "symbol-source": 95,
213
+ source: 80,
214
+ test: 55,
215
+ docs: 25,
216
+ lockfile: 5,
217
+ "low-value": 5,
218
+ other: 20,
219
+ };
220
+ return scores[bucket];
221
+ }
222
+ function genericBucketScore(bucket) {
223
+ const scores = {
224
+ "canonical-metadata": 80,
225
+ "overview-doc": 65,
226
+ "exact-path": 90,
227
+ "symbol-source": 85,
228
+ source: 60,
229
+ test: 45,
230
+ docs: 50,
231
+ lockfile: 5,
232
+ "low-value": 5,
233
+ other: 20,
234
+ };
235
+ return scores[bucket];
236
+ }
237
+ function pathTermBonus(scopePath, terms) {
238
+ const path = normalizedPath(scopePath);
239
+ const name = basename(path);
240
+ let score = 0;
241
+ for (const term of terms) {
242
+ if (name === term || name.startsWith(`${term}.`)) {
243
+ score = Math.max(score, 25);
244
+ }
245
+ else if (path.includes(term)) {
246
+ score = Math.max(score, 12);
247
+ }
248
+ }
249
+ return score;
250
+ }
251
+ function depthPenalty(scopePath) {
252
+ return Math.min(pathSegments(scopePath).length, 12);
253
+ }
254
+ function priorityForFile(file, terms, policy) {
255
+ return (bucketScore(bucketByPath(file.relativePath), policy.intent) +
256
+ pathTermBonus(file.relativePath, terms) -
257
+ depthPenalty(file.relativePath));
258
+ }
259
+ function bucketCounts(files) {
260
+ const counts = emptyBucketCounts();
261
+ for (const file of files) {
262
+ counts[bucketByPath(file.relativePath)] += 1;
263
+ }
264
+ return counts;
265
+ }
266
+ function sortFiles(files, query, policy) {
267
+ // Score each file ONCE (query tokenization + path bucketing are O(path) and were previously
268
+ // recomputed twice per comparison — O(n log n) blocking work on the 2000-file candidate cap).
269
+ // Tie-break on raw code-point order, not localeCompare, so evidence ordering is reproducible
270
+ // across locales/ICU builds (regulated-delivery determinism).
271
+ const terms = normalizedQueryTerms(query);
272
+ const scored = files.map((file) => ({ file, score: priorityForFile(file, terms, policy) }));
273
+ scored.sort((a, b) => {
274
+ if (a.score !== b.score)
275
+ return b.score - a.score;
276
+ if (a.file.relativePath < b.file.relativePath)
277
+ return -1;
278
+ return a.file.relativePath > b.file.relativePath ? 1 : 0;
279
+ });
280
+ return scored.map((entry) => entry.file);
281
+ }
282
+ export function resolveSearchPolicy(hasExplicitRelativePaths, hints) {
283
+ const mode = hasExplicitRelativePaths ? "explicit-scope" : "workspace-root-default";
284
+ const intent = hints?.retrievalIntent ?? "generic";
285
+ return {
286
+ mode,
287
+ intent,
288
+ applyGitignore: mode === "workspace-root-default",
289
+ omitLowValueWorkspaceFiles: mode === "workspace-root-default",
290
+ };
291
+ }
292
+ // The legacy `gatherCandidates(scope, limits, fs)` overload predates the search-policy work and is
293
+ // still used by importGraph / testSourcePairing, which expect FULL-tree discovery (no .gitignore
294
+ // subset, no low-value omission) — that was the hardcoded `applyGitignore: false` behavior before
295
+ // this change. Resolving the default workspace-root policy for them would silently start dropping
296
+ // gitignored / low-value files from those callers, so they get this neutral policy instead.
297
+ export function legacyDiscoveryPolicy(hasExplicitRelativePaths) {
298
+ return {
299
+ mode: hasExplicitRelativePaths ? "explicit-scope" : "workspace-root-default",
300
+ intent: "generic",
301
+ applyGitignore: false,
302
+ omitLowValueWorkspaceFiles: false,
303
+ };
304
+ }
305
+ export function policyOmissionReason(scopePath, policy) {
306
+ if (!policy.omitLowValueWorkspaceFiles) {
307
+ return undefined;
308
+ }
309
+ if (isLockfile(scopePath) && policy.intent !== "project-metadata") {
310
+ return "generated";
311
+ }
312
+ return hasLowValueSegment(scopePath) ? "generated" : undefined;
313
+ }
314
+ export function extraIgnoreLinesForSearch(policy) {
315
+ return policy.omitLowValueWorkspaceFiles ? LOW_VALUE_IGNORE_LINES : [];
316
+ }
317
+ export function orderCandidatesForSearch(files, query, policy, ignoredByDiscovery, deniedByDiscovery) {
318
+ const ordered = sortFiles(files, query, policy);
319
+ return {
320
+ files: ordered,
321
+ diagnostics: {
322
+ policyMode: policy.mode,
323
+ intent: policy.intent,
324
+ filesDiscovered: files.length,
325
+ filesAfterPolicy: ordered.length,
326
+ ignoredByDiscovery,
327
+ deniedByDiscovery,
328
+ candidateBuckets: bucketCounts(ordered),
329
+ },
330
+ };
331
+ }
332
+ export function shouldScoreContent(query, text, policy) {
333
+ if (query.kind !== "natural-language" && query.kind !== "exact-symbol") {
334
+ return true;
335
+ }
336
+ if (policy.intent === "repository-overview" || policy.intent === "project-metadata") {
337
+ return true;
338
+ }
339
+ const haystack = query.caseSensitive ? text : text.toLowerCase();
340
+ const terms = normalizedQueryTerms(query).filter((term) => term.length >= 4);
341
+ return terms.length === 0 || terms.some((term) => haystack.includes(term));
342
+ }
@@ -1,6 +1,7 @@
1
- import type { CandidateFile, CandidateOmissionReason, EvidenceAtom, EvidenceAtomProvenanceKind } from "@oscharko-dev/keiko-contracts/connected-context";
1
+ import type { CandidateFile, CandidateOmissionReason, EvidenceAtom, EvidenceAtomProvenanceKind, RetrievalQuery } from "@oscharko-dev/keiko-contracts/connected-context";
2
2
  import type { WorkspaceFs } from "./fs.js";
3
3
  import type { LineMatcher } from "./repoSearchMatchers.js";
4
+ import { type SearchDiagnostics, type SearchPolicy } from "./repoSearchPolicy.js";
4
5
  import type { DiscoveredFile, WorkspaceInfo } from "./types.js";
5
6
  export declare function isImageScopePath(scopePath: string): boolean;
6
7
  export interface ScopeShape {
@@ -32,8 +33,10 @@ export declare function buildCandidate(scopePath: string, omitted: CandidateOmis
32
33
  export interface CandidateSet {
33
34
  readonly files: readonly DiscoveredFile[];
34
35
  readonly truncated: boolean;
36
+ readonly diagnostics: SearchDiagnostics;
35
37
  }
36
38
  export declare function gatherCandidates(scope: ScopeShape, limits: LimitsShape, fs: WorkspaceFs): CandidateSet;
39
+ export declare function gatherCandidates(scope: ScopeShape, query: RetrievalQuery, limits: LimitsShape, fs: WorkspaceFs, policy: SearchPolicy): CandidateSet;
37
40
  export declare function probeBinary(fs: WorkspaceFs, abs: string, size: number): Promise<boolean>;
38
41
  export interface SearchTextRunner {
39
42
  readonly scope: ScopeShape;
@@ -43,6 +46,8 @@ export interface SearchTextRunner {
43
46
  readonly startMs: number;
44
47
  readonly matcher: LineMatcher;
45
48
  readonly fingerprint: string;
49
+ readonly policy: SearchPolicy;
50
+ readonly query: RetrievalQuery;
46
51
  }
47
52
  export interface RunState {
48
53
  filesScanned: number;
@@ -1 +1 @@
1
- {"version":3,"file":"repoSearchScan.d.ts","sourceRoot":"","sources":["../src/repoSearchScan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repoSearchScan.d.ts","sourceRoot":"","sources":["../src/repoSearchScan.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  // Every file system touch goes through the injected WorkspaceFs port; nothing here calls
4
4
  // node:fs directly.
5
5
  import { CONNECTED_CONTEXT_SCHEMA_VERSION, isValidScopePath, } from "@oscharko-dev/keiko-contracts/connected-context";
6
- import { discoverFiles, readWorkspaceFile } from "./discovery.js";
6
+ import { discoverWithStats, readWorkspaceFile } from "./discovery.js";
7
7
  import { FileTooLargeError, RepoSearchInvalidQueryError } from "./errors.js";
8
8
  import { isDenied } from "./ignore.js";
9
9
  import { resolveWithinWorkspace } from "./paths.js";
@@ -12,6 +12,7 @@ import { looksBinary } from "./binaryDetect.js";
12
12
  import { collectFromEntries } from "./repoSearchEntries.js";
13
13
  import { collectBestLines } from "./repoSearchLineSelection.js";
14
14
  import { evidenceAtomStableId } from "./stableId.js";
15
+ import { extraIgnoreLinesForSearch, legacyDiscoveryPolicy, orderCandidatesForSearch, policyOmissionReason, resolveSearchPolicy, shouldScoreContent, } from "./repoSearchPolicy.js";
15
16
  const BINARY_PROBE_BYTES = 512;
16
17
  const IMAGE_EXTENSIONS = new Set([
17
18
  ".avif",
@@ -64,14 +65,52 @@ export function buildAtom(shape) {
64
65
  export function buildCandidate(scopePath, omitted) {
65
66
  return { scopePath, score: 0, signals: [], omitted };
66
67
  }
67
- function collectFromDirectory(scope, limits, fs) {
68
- const files = discoverFiles(scope.workspace, { maxDepth: 12, maxFiles: limits.maxFilesScanned + 1, applyGitignore: false }, fs);
68
+ function collectFromDirectory(scope, limits, fs, policy) {
69
+ const extraIgnoreLines = extraIgnoreLinesForSearch(policy);
70
+ const workspace = extraIgnoreLines.length === 0
71
+ ? scope.workspace
72
+ : { ...scope.workspace, ignoreLines: [...scope.workspace.ignoreLines, ...extraIgnoreLines] };
73
+ const result = discoverWithStats(workspace, {
74
+ maxDepth: 12,
75
+ maxFiles: limits.maxFilesScanned + 1,
76
+ applyGitignore: policy.applyGitignore,
77
+ }, fs);
78
+ const files = result.files;
69
79
  return {
70
80
  files: files.slice(0, limits.maxFilesScanned),
71
81
  truncated: files.length > limits.maxFilesScanned,
82
+ ignored: result.stats.ignored,
83
+ denied: result.stats.denied,
72
84
  };
73
85
  }
74
- export function gatherCandidates(scope, limits, fs) {
86
+ const DEFAULT_GATHER_QUERY = {
87
+ kind: "natural-language",
88
+ text: "generic repository search",
89
+ caseSensitive: false,
90
+ maxResults: 100,
91
+ emittedAtMs: 0,
92
+ };
93
+ function isRetrievalQuery(value) {
94
+ return typeof value === "object" && value !== null && "kind" in value && "text" in value;
95
+ }
96
+ function resolveGatherInputs(scope, queryOrLimits, limitsOrFs, fsOrPolicy, policy) {
97
+ if (isRetrievalQuery(queryOrLimits)) {
98
+ return {
99
+ query: queryOrLimits,
100
+ limits: limitsOrFs,
101
+ fs: fsOrPolicy,
102
+ policy: policy ?? resolveSearchPolicy(scope.relativePaths.length > 0, undefined),
103
+ };
104
+ }
105
+ return {
106
+ query: DEFAULT_GATHER_QUERY,
107
+ limits: queryOrLimits,
108
+ fs: limitsOrFs,
109
+ policy: legacyDiscoveryPolicy(scope.relativePaths.length > 0),
110
+ };
111
+ }
112
+ export function gatherCandidates(scope, queryOrLimits, limitsOrFs, fsOrPolicy, policy) {
113
+ const inputs = resolveGatherInputs(scope, queryOrLimits, limitsOrFs, fsOrPolicy, policy);
75
114
  // Defense in depth alongside the realpath gate: validate scope.relativePaths against the
76
115
  // contracts-layer shape rules (no absolute paths, no `..`, no drive letters, no backslashes).
77
116
  // resolveWithinWorkspace + assertContainedRealPath already provide a complete barrier; this
@@ -83,16 +122,20 @@ export function gatherCandidates(scope, limits, fs) {
83
122
  }
84
123
  }
85
124
  if (scope.relativePaths.length === 0) {
86
- const result = collectFromDirectory(scope, limits, fs);
125
+ const result = collectFromDirectory(scope, inputs.limits, inputs.fs, inputs.policy);
126
+ const ordered = orderCandidatesForSearch(result.files, inputs.query, inputs.policy, result.ignored, result.denied);
87
127
  return {
88
- files: [...result.files].sort((a, b) => (a.relativePath < b.relativePath ? -1 : 1)),
128
+ files: ordered.files,
89
129
  truncated: result.truncated,
130
+ diagnostics: ordered.diagnostics,
90
131
  };
91
132
  }
92
- const result = collectFromEntries(scope, limits, fs);
133
+ const result = collectFromEntries(scope, inputs.limits, inputs.fs);
134
+ const ordered = orderCandidatesForSearch(result.files, inputs.query, inputs.policy, 0, 0);
93
135
  return {
94
- files: [...result.files].sort((a, b) => (a.relativePath < b.relativePath ? -1 : 1)),
136
+ files: ordered.files,
95
137
  truncated: result.truncated,
138
+ diagnostics: ordered.diagnostics,
96
139
  };
97
140
  }
98
141
  export async function probeBinary(fs, abs, size) {
@@ -199,6 +242,11 @@ export async function scanFile(runner, file, state, atoms, candidates) {
199
242
  candidates.push(buildCandidate(file.relativePath, "ignored"));
200
243
  return;
201
244
  }
245
+ const omitted = policyOmissionReason(file.relativePath, runner.policy);
246
+ if (omitted !== undefined) {
247
+ candidates.push(buildCandidate(file.relativePath, omitted));
248
+ return;
249
+ }
202
250
  let isBinary;
203
251
  try {
204
252
  isBinary = await probeBinary(runner.fs, contained.path, file.sizeBytes);
@@ -217,7 +265,7 @@ export async function scanFile(runner, file, state, atoms, candidates) {
217
265
  }
218
266
  state.filesScanned += 1;
219
267
  const text = readForScan(runner, file.relativePath, candidates);
220
- if (text === undefined) {
268
+ if (text === undefined || !shouldScoreContent(runner.query, text, runner.policy)) {
221
269
  return;
222
270
  }
223
271
  scanLines(runner, file.relativePath, text, state, atoms);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oscharko-dev/keiko-workspace",
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",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oscharko-dev/keiko",
3
- "version": "0.2.0-beta.7",
3
+ "version": "0.2.0-beta.9",
4
4
  "description": "Enterprise model-agnostic developer-assist coding agent for regulated engineering workflows.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -45,6 +45,7 @@
45
45
  "test:coverage:ui": "vitest run --config packages/keiko-ui/vitest.coverage.config.ts --coverage",
46
46
  "test:coverage:quality": "npm run test:coverage:packages && npm run test:coverage:ui && npm run check:coverage && npm run check:coverage:release-targets && npm run check:coverage:branches",
47
47
  "test:e2e:smoke": "playwright test --project=chromium --grep @smoke",
48
+ "test:e2e:local-knowledge": "playwright test --config playwright.local-knowledge-regression.config.ts",
48
49
  "test:release:smoke": "npm run test:e2e:smoke",
49
50
  "dev:start": "node scripts/dev-start.mjs",
50
51
  "dev:stop": "node scripts/dev-stop.mjs",