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

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 (573) hide show
  1. package/README.md +139 -1
  2. package/dist/ui/csp-hashes.json +33 -39
  3. package/dist/ui/static/404.html +1 -1
  4. package/dist/ui/static/__next.__PAGE__.txt +9 -0
  5. package/dist/ui/static/__next._full.txt +18 -0
  6. package/dist/ui/static/__next._head.txt +6 -0
  7. package/dist/ui/static/__next._index.txt +5 -0
  8. package/dist/ui/static/__next._tree.txt +2 -0
  9. package/dist/ui/static/_next/static/chunks/05-c3ty_6dwfk.js +1 -0
  10. package/dist/ui/static/_next/static/chunks/082obv3v03b-9.js +2 -0
  11. package/dist/ui/static/_next/static/chunks/0iq1i69206cyl.js +31 -0
  12. package/dist/ui/static/_next/static/chunks/0uifns067thv8.js +1 -0
  13. package/dist/ui/static/_next/static/chunks/0x31-j53ab1tt.js +1 -0
  14. package/dist/ui/static/_next/static/chunks/14mrh2-p_w84d.js +1 -0
  15. package/dist/ui/static/_next/static/chunks/1m-kvwm6_90_3.css +1 -0
  16. package/dist/ui/static/_next/static/chunks/1v4hrxrm_6_rw.js +1 -0
  17. package/dist/ui/static/_next/static/chunks/27jktro2p5rq9.js +4 -0
  18. package/dist/ui/static/_next/static/chunks/2lypy3ewh0r04.js +1 -0
  19. package/dist/ui/static/_next/static/chunks/2ngm8iwdb1cbv.js +106 -0
  20. package/dist/ui/static/_next/static/chunks/32573pyyglqxl.js +1 -0
  21. package/dist/ui/static/_next/static/chunks/3_t_pzet29qtn.js +1 -0
  22. package/dist/ui/static/_next/static/chunks/3jgg_oe0iok0l.js +1 -0
  23. package/dist/ui/static/_next/static/chunks/3o_oia3vsam60.js +1 -0
  24. package/dist/ui/static/_next/static/chunks/3peubv2924kx4.js +1 -0
  25. package/dist/ui/static/_next/static/chunks/turbopack-2lg1g6kbsfm0x.js +1 -0
  26. package/dist/ui/static/_next/static/hR2gBQqCDKdPdSxBqZhqv/_buildManifest.js +11 -0
  27. package/dist/ui/static/_next/static/hR2gBQqCDKdPdSxBqZhqv/_clientMiddlewareManifest.js +1 -0
  28. package/dist/ui/static/_not-found/__next._full.txt +16 -0
  29. package/dist/ui/static/_not-found/__next._head.txt +6 -0
  30. package/dist/ui/static/_not-found/__next._index.txt +5 -0
  31. package/dist/ui/static/_not-found/__next._not-found.__PAGE__.txt +5 -0
  32. package/dist/ui/static/_not-found/__next._not-found.txt +5 -0
  33. package/dist/ui/static/_not-found/__next._tree.txt +2 -0
  34. package/dist/ui/static/_not-found.html +1 -0
  35. package/dist/ui/static/_not-found.txt +16 -0
  36. package/dist/ui/static/index.html +1 -1
  37. package/dist/ui/static/index.txt +16 -18
  38. package/dist/ui/static/launch/__next._full.txt +20 -0
  39. package/dist/ui/static/launch/__next._head.txt +6 -0
  40. package/dist/ui/static/launch/__next._index.txt +5 -0
  41. package/dist/ui/static/launch/__next._tree.txt +2 -0
  42. package/dist/ui/static/launch/__next.launch.__PAGE__.txt +9 -0
  43. package/dist/ui/static/launch/__next.launch.txt +5 -0
  44. package/dist/ui/static/launch.html +1 -1
  45. package/dist/ui/static/launch.txt +17 -17
  46. package/dist/ui/static/local-knowledge/__next._full.txt +20 -0
  47. package/dist/ui/static/local-knowledge/__next._head.txt +6 -0
  48. package/dist/ui/static/local-knowledge/__next._index.txt +5 -0
  49. package/dist/ui/static/local-knowledge/__next._tree.txt +2 -0
  50. package/dist/ui/static/local-knowledge/__next.local-knowledge.__PAGE__.txt +9 -0
  51. package/dist/ui/static/local-knowledge/__next.local-knowledge.txt +5 -0
  52. package/dist/ui/static/local-knowledge/capsule/__next._full.txt +17 -0
  53. package/dist/ui/static/local-knowledge/capsule/__next._head.txt +6 -0
  54. package/dist/ui/static/local-knowledge/capsule/__next._index.txt +5 -0
  55. package/dist/ui/static/local-knowledge/capsule/__next._tree.txt +2 -0
  56. package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.capsule.__PAGE__.txt +6 -0
  57. package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.capsule.txt +5 -0
  58. package/dist/ui/static/local-knowledge/capsule/__next.local-knowledge.txt +5 -0
  59. package/dist/ui/static/local-knowledge/capsule.html +1 -1
  60. package/dist/ui/static/local-knowledge/capsule.txt +14 -14
  61. package/dist/ui/static/local-knowledge.html +1 -1
  62. package/dist/ui/static/local-knowledge.txt +19 -16
  63. package/dist/ui/static/memoriaviva/__next._full.txt +17 -0
  64. package/dist/ui/static/memoriaviva/__next._head.txt +6 -0
  65. package/dist/ui/static/memoriaviva/__next._index.txt +5 -0
  66. package/dist/ui/static/memoriaviva/__next._tree.txt +2 -0
  67. package/dist/ui/static/memoriaviva/__next.memoriaviva.__PAGE__.txt +6 -0
  68. package/dist/ui/static/memoriaviva/__next.memoriaviva.txt +5 -0
  69. package/dist/ui/static/memoriaviva/consolidation/__next._full.txt +17 -0
  70. package/dist/ui/static/memoriaviva/consolidation/__next._head.txt +6 -0
  71. package/dist/ui/static/memoriaviva/consolidation/__next._index.txt +5 -0
  72. package/dist/ui/static/memoriaviva/consolidation/__next._tree.txt +2 -0
  73. package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.consolidation.__PAGE__.txt +6 -0
  74. package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.consolidation.txt +5 -0
  75. package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.txt +5 -0
  76. package/dist/ui/static/memoriaviva/consolidation.html +1 -1
  77. package/dist/ui/static/memoriaviva/consolidation.txt +15 -15
  78. package/dist/ui/static/memoriaviva/detail/__next._full.txt +17 -0
  79. package/dist/ui/static/memoriaviva/detail/__next._head.txt +6 -0
  80. package/dist/ui/static/memoriaviva/detail/__next._index.txt +5 -0
  81. package/dist/ui/static/memoriaviva/detail/__next._tree.txt +2 -0
  82. package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.detail.__PAGE__.txt +6 -0
  83. package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.detail.txt +5 -0
  84. package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.txt +5 -0
  85. package/dist/ui/static/memoriaviva/detail.html +1 -1
  86. package/dist/ui/static/memoriaviva/detail.txt +14 -14
  87. package/dist/ui/static/memoriaviva/review-queue/__next._full.txt +17 -0
  88. package/dist/ui/static/memoriaviva/review-queue/__next._head.txt +6 -0
  89. package/dist/ui/static/memoriaviva/review-queue/__next._index.txt +5 -0
  90. package/dist/ui/static/memoriaviva/review-queue/__next._tree.txt +2 -0
  91. package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.review-queue.__PAGE__.txt +6 -0
  92. package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.review-queue.txt +5 -0
  93. package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.txt +5 -0
  94. package/dist/ui/static/memoriaviva/review-queue.html +1 -1
  95. package/dist/ui/static/memoriaviva/review-queue.txt +15 -15
  96. package/dist/ui/static/memoriaviva.html +1 -1
  97. package/dist/ui/static/memoriaviva.txt +14 -14
  98. package/node_modules/@oscharko-dev/keiko-cli/dist/.tsbuildinfo +1 -1
  99. package/node_modules/@oscharko-dev/keiko-cli/dist/evaluate.d.ts.map +1 -1
  100. package/node_modules/@oscharko-dev/keiko-cli/dist/evaluate.js +61 -2
  101. package/node_modules/@oscharko-dev/keiko-cli/dist/evidence.d.ts.map +1 -1
  102. package/node_modules/@oscharko-dev/keiko-cli/dist/evidence.js +65 -21
  103. package/node_modules/@oscharko-dev/keiko-cli/dist/launcher-platforms.js +3 -3
  104. package/node_modules/@oscharko-dev/keiko-cli/dist/run.d.ts +3 -1
  105. package/node_modules/@oscharko-dev/keiko-cli/dist/run.d.ts.map +1 -1
  106. package/node_modules/@oscharko-dev/keiko-cli/dist/run.js +73 -41
  107. package/node_modules/@oscharko-dev/keiko-cli/dist/ui.d.ts.map +1 -1
  108. package/node_modules/@oscharko-dev/keiko-cli/dist/ui.js +36 -11
  109. package/node_modules/@oscharko-dev/keiko-cli/package.json +2 -2
  110. package/node_modules/@oscharko-dev/keiko-contracts/dist/.tsbuildinfo +1 -1
  111. package/node_modules/@oscharko-dev/keiko-contracts/dist/bff-wire.d.ts +20 -1
  112. package/node_modules/@oscharko-dev/keiko-contracts/dist/bff-wire.d.ts.map +1 -1
  113. package/node_modules/@oscharko-dev/keiko-contracts/dist/connected-context.d.ts +1 -1
  114. package/node_modules/@oscharko-dev/keiko-contracts/dist/connected-context.d.ts.map +1 -1
  115. package/node_modules/@oscharko-dev/keiko-contracts/dist/connected-context.js +256 -75
  116. package/node_modules/@oscharko-dev/keiko-contracts/dist/evidence.d.ts +11 -0
  117. package/node_modules/@oscharko-dev/keiko-contracts/dist/evidence.d.ts.map +1 -1
  118. package/node_modules/@oscharko-dev/keiko-contracts/dist/index.d.ts +6 -6
  119. package/node_modules/@oscharko-dev/keiko-contracts/dist/index.d.ts.map +1 -1
  120. package/node_modules/@oscharko-dev/keiko-contracts/dist/index.js +4 -4
  121. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-records.d.ts +11 -0
  122. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-records.d.ts.map +1 -1
  123. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-records.js +4 -0
  124. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-schema.d.ts +1 -1
  125. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-schema.d.ts.map +1 -1
  126. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-schema.js +109 -4
  127. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-validation.d.ts +2 -0
  128. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-validation.d.ts.map +1 -1
  129. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-validation.js +94 -7
  130. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge.d.ts +5 -0
  131. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge.d.ts.map +1 -1
  132. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/bffWire.d.ts +2 -0
  133. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/bffWire.d.ts.map +1 -1
  134. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/ids.d.ts.map +1 -1
  135. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/ids.js +3 -0
  136. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/sourceEnvelope.d.ts +14 -0
  137. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/sourceEnvelope.d.ts.map +1 -1
  138. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/sourceEnvelope.js +53 -5
  139. package/node_modules/@oscharko-dev/keiko-contracts/package.json +2 -2
  140. package/node_modules/@oscharko-dev/keiko-evaluations/dist/.tsbuildinfo +1 -1
  141. package/node_modules/@oscharko-dev/keiko-evaluations/dist/runner.d.ts.map +1 -1
  142. package/node_modules/@oscharko-dev/keiko-evaluations/dist/runner.js +11 -3
  143. package/node_modules/@oscharko-dev/keiko-evaluations/package.json +2 -2
  144. package/node_modules/@oscharko-dev/keiko-evidence/dist/.tsbuildinfo +1 -1
  145. package/node_modules/@oscharko-dev/keiko-evidence/dist/connected-context-evidence.d.ts +20 -1
  146. package/node_modules/@oscharko-dev/keiko-evidence/dist/connected-context-evidence.d.ts.map +1 -1
  147. package/node_modules/@oscharko-dev/keiko-evidence/dist/connected-context-evidence.js +34 -2
  148. package/node_modules/@oscharko-dev/keiko-evidence/dist/index.d.ts +1 -1
  149. package/node_modules/@oscharko-dev/keiko-evidence/dist/index.d.ts.map +1 -1
  150. package/node_modules/@oscharko-dev/keiko-evidence/dist/index.js +1 -1
  151. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/candidatesArtifact.d.ts +1 -0
  152. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/candidatesArtifact.d.ts.map +1 -1
  153. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/candidatesArtifact.js +3 -1
  154. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/companionStore.d.ts +17 -0
  155. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/companionStore.d.ts.map +1 -1
  156. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/companionStore.js +19 -0
  157. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.d.ts +5 -1
  158. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.d.ts.map +1 -1
  159. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.d.ts +32 -2
  160. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.d.ts.map +1 -1
  161. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.js +259 -40
  162. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.d.ts +3 -3
  163. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.d.ts.map +1 -1
  164. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/index.js +1 -1
  165. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/manifestSchema.d.ts +18 -1
  166. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/manifestSchema.d.ts.map +1 -1
  167. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/retention.d.ts +3 -0
  168. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/retention.d.ts.map +1 -1
  169. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/retention.js +48 -5
  170. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/store.d.ts +33 -0
  171. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/store.d.ts.map +1 -1
  172. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/store.js +99 -13
  173. package/node_modules/@oscharko-dev/keiko-evidence/dist/types.d.ts +1 -1
  174. package/node_modules/@oscharko-dev/keiko-evidence/dist/types.d.ts.map +1 -1
  175. package/node_modules/@oscharko-dev/keiko-evidence/package.json +2 -2
  176. package/node_modules/@oscharko-dev/keiko-harness/dist/.tsbuildinfo +1 -1
  177. package/node_modules/@oscharko-dev/keiko-harness/package.json +2 -2
  178. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/.tsbuildinfo +1 -1
  179. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-lifecycle.d.ts.map +1 -1
  180. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-lifecycle.js +25 -1
  181. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-set-lifecycle.d.ts +1 -1
  182. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-set-lifecycle.d.ts.map +1 -1
  183. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-set-lifecycle.js +16 -0
  184. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker-persist.d.ts +3 -1
  185. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker-persist.d.ts.map +1 -1
  186. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker-persist.js +9 -5
  187. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker-runner.d.ts.map +1 -1
  188. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker-runner.js +22 -7
  189. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker.d.ts +4 -1
  190. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker.d.ts.map +1 -1
  191. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker.js +61 -9
  192. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/citation-mapper.d.ts.map +1 -1
  193. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/citation-mapper.js +64 -36
  194. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/index.d.ts +2 -2
  195. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/index.d.ts.map +1 -1
  196. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/index.js +2 -2
  197. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/types.d.ts +7 -1
  198. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/types.d.ts.map +1 -1
  199. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/types.js +5 -1
  200. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/composition.d.ts +1 -1
  201. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/composition.d.ts.map +1 -1
  202. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/composition.js +27 -4
  203. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/index.d.ts +0 -1
  204. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/index.d.ts.map +1 -1
  205. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/index.js +0 -1
  206. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/model-gateway-answer-generator.d.ts +5 -1
  207. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/model-gateway-answer-generator.d.ts.map +1 -1
  208. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/model-gateway-answer-generator.js +25 -6
  209. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/types.d.ts.map +1 -1
  210. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/types.js +2 -3
  211. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/discovery-runner.d.ts.map +1 -1
  212. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/discovery-runner.js +10 -1
  213. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/extract.d.ts +4 -1
  214. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/extract.d.ts.map +1 -1
  215. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/extract.js +370 -45
  216. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/test-support.d.ts +2 -0
  217. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/test-support.d.ts.map +1 -1
  218. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/test-support.js +8 -4
  219. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/types.d.ts +1 -1
  220. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/types.d.ts.map +1 -1
  221. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/types.js +10 -5
  222. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/walk.d.ts.map +1 -1
  223. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/walk.js +65 -20
  224. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/fixtures.d.ts +1 -0
  225. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/fixtures.d.ts.map +1 -1
  226. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/fixtures.js +79 -0
  227. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/index.d.ts +1 -1
  228. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/index.d.ts.map +1 -1
  229. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/index.js +1 -1
  230. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/runner-seed.d.ts.map +1 -1
  231. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/runner-seed.js +4 -0
  232. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/index.d.ts +6 -5
  233. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/index.d.ts.map +1 -1
  234. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/index.js +4 -4
  235. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/embedding-batcher.d.ts.map +1 -1
  236. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/embedding-batcher.js +71 -29
  237. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/orchestrator.d.ts.map +1 -1
  238. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/orchestrator.js +253 -131
  239. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/types.d.ts +12 -0
  240. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/types.d.ts.map +1 -1
  241. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/vector-persist.d.ts.map +1 -1
  242. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/vector-persist.js +9 -0
  243. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/_internal.d.ts +3 -1
  244. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/_internal.d.ts.map +1 -1
  245. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/_internal.js +13 -1
  246. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/docx-parser.d.ts.map +1 -1
  247. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/docx-parser.js +86 -46
  248. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/index.d.ts +1 -1
  249. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/index.d.ts.map +1 -1
  250. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/index.js +1 -1
  251. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/json-parser.d.ts.map +1 -1
  252. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/json-parser.js +50 -22
  253. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/pdf-parser.d.ts +21 -1
  254. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/pdf-parser.d.ts.map +1 -1
  255. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/pdf-parser.js +90 -13
  256. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/registry.d.ts.map +1 -1
  257. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/registry.js +3 -1
  258. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/types.d.ts +7 -2
  259. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/types.d.ts.map +1 -1
  260. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/types.js +7 -3
  261. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/audit-emitter.js +8 -0
  262. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/diagnostic-redactor.d.ts.map +1 -1
  263. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/diagnostic-redactor.js +17 -10
  264. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/retention-applier.d.ts.map +1 -1
  265. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/retention-applier.js +7 -0
  266. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/types.d.ts +4 -0
  267. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/types.d.ts.map +1 -1
  268. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/retrieval-runner.js +1 -1
  269. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/scoped-vector-search.d.ts +1 -0
  270. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/scoped-vector-search.d.ts.map +1 -1
  271. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/scoped-vector-search.js +318 -32
  272. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/source-lifecycle.d.ts +1 -1
  273. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/source-lifecycle.d.ts.map +1 -1
  274. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/source-lifecycle.js +46 -16
  275. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/store.d.ts +14 -0
  276. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/store.d.ts.map +1 -1
  277. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/store.js +26 -1
  278. package/node_modules/@oscharko-dev/keiko-local-knowledge/package.json +10 -5
  279. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/.tsbuildinfo +1 -1
  280. package/node_modules/@oscharko-dev/keiko-memory-capture/package.json +2 -2
  281. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/.tsbuildinfo +1 -1
  282. package/node_modules/@oscharko-dev/keiko-memory-consolidation/package.json +2 -2
  283. package/node_modules/@oscharko-dev/keiko-memory-governance/dist/.tsbuildinfo +1 -1
  284. package/node_modules/@oscharko-dev/keiko-memory-governance/package.json +2 -2
  285. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/.tsbuildinfo +1 -1
  286. package/node_modules/@oscharko-dev/keiko-memory-retrieval/package.json +2 -2
  287. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/.tsbuildinfo +1 -1
  288. package/node_modules/@oscharko-dev/keiko-memory-vault/package.json +2 -2
  289. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/.tsbuildinfo +1 -1
  290. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/config.d.ts +2 -1
  291. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/config.d.ts.map +1 -1
  292. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/config.js +50 -0
  293. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/http.d.ts +3 -0
  294. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/http.d.ts.map +1 -1
  295. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/http.js +114 -44
  296. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/normalize.d.ts +1 -0
  297. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/normalize.d.ts.map +1 -1
  298. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/normalize.js +22 -1
  299. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-adapter.d.ts.map +1 -1
  300. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/openai-adapter.js +18 -4
  301. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/dispatcher.d.ts +14 -0
  302. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/dispatcher.d.ts.map +1 -1
  303. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/dispatcher.js +14 -0
  304. package/node_modules/@oscharko-dev/keiko-model-gateway/package.json +2 -2
  305. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/.tsbuildinfo +1 -1
  306. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/a11yBaseline.d.ts.map +1 -1
  307. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/a11yBaseline.js +9 -2
  308. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/cleanToScreenIr.js +1 -1
  309. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/emissionPlan.d.ts +9 -1
  310. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/emissionPlan.d.ts.map +1 -1
  311. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/emissionPlan.js +9 -1
  312. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/htmlCssAdapter.d.ts +5 -0
  313. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/htmlCssAdapter.d.ts.map +1 -1
  314. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/htmlCssAdapter.js +229 -33
  315. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/irTypes.d.ts +62 -0
  316. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/irTypes.d.ts.map +1 -1
  317. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/links.d.ts.map +1 -1
  318. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/links.js +24 -4
  319. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/navGraph.d.ts +4 -2
  320. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/navGraph.d.ts.map +1 -1
  321. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/navGraph.js +0 -0
  322. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/normalize.d.ts.map +1 -1
  323. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/normalize.js +119 -5
  324. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/prune.d.ts +2 -1
  325. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/prune.d.ts.map +1 -1
  326. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/prune.js +26 -11
  327. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.d.ts.map +1 -1
  328. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.js +86 -9
  329. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/tokens.d.ts.map +1 -1
  330. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/tokens.js +10 -3
  331. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/validation.d.ts.map +1 -1
  332. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/validation.js +14 -12
  333. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/alm.d.ts.map +1 -1
  334. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/alm.js +29 -30
  335. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/markdown.d.ts.map +1 -1
  336. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/markdown.js +29 -5
  337. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/qtest.d.ts.map +1 -1
  338. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/qtest.js +29 -29
  339. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/spreadsheetSafeCsv.d.ts +2 -1
  340. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/spreadsheetSafeCsv.d.ts.map +1 -1
  341. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/spreadsheetSafeCsv.js +40 -2
  342. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/xray.d.ts.map +1 -1
  343. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/export/adapters/xray.js +6 -2
  344. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/ingestion/sourceMixPlanning.js +0 -0
  345. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/ingestion/untrustedContentNormalisation.d.ts +1 -1
  346. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/ingestion/untrustedContentNormalisation.d.ts.map +1 -1
  347. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/ingestion/untrustedContentNormalisation.js +9 -1
  348. package/node_modules/@oscharko-dev/keiko-quality-intelligence/package.json +2 -2
  349. package/node_modules/@oscharko-dev/keiko-sdk/dist/.tsbuildinfo +1 -1
  350. package/node_modules/@oscharko-dev/keiko-sdk/package.json +2 -2
  351. package/node_modules/@oscharko-dev/keiko-security/dist/.tsbuildinfo +1 -1
  352. package/node_modules/@oscharko-dev/keiko-security/dist/redaction.d.ts.map +1 -1
  353. package/node_modules/@oscharko-dev/keiko-security/dist/redaction.js +4 -2
  354. package/node_modules/@oscharko-dev/keiko-security/package.json +2 -2
  355. package/node_modules/@oscharko-dev/keiko-server/dist/.tsbuildinfo +1 -1
  356. package/node_modules/@oscharko-dev/keiko-server/dist/assistant-response.d.ts +6 -0
  357. package/node_modules/@oscharko-dev/keiko-server/dist/assistant-response.d.ts.map +1 -0
  358. package/node_modules/@oscharko-dev/keiko-server/dist/assistant-response.js +12 -0
  359. package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.d.ts +1 -1
  360. package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.d.ts.map +1 -1
  361. package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.js +17 -5
  362. package/node_modules/@oscharko-dev/keiko-server/dist/chat-stream-handlers.js +1 -1
  363. package/node_modules/@oscharko-dev/keiko-server/dist/deps.d.ts +2 -0
  364. package/node_modules/@oscharko-dev/keiko-server/dist/deps.d.ts.map +1 -1
  365. package/node_modules/@oscharko-dev/keiko-server/dist/deps.js +59 -9
  366. package/node_modules/@oscharko-dev/keiko-server/dist/evidence.d.ts +1 -1
  367. package/node_modules/@oscharko-dev/keiko-server/dist/evidence.d.ts.map +1 -1
  368. package/node_modules/@oscharko-dev/keiko-server/dist/evidence.js +4 -3
  369. package/node_modules/@oscharko-dev/keiko-server/dist/files.d.ts +18 -3
  370. package/node_modules/@oscharko-dev/keiko-server/dist/files.d.ts.map +1 -1
  371. package/node_modules/@oscharko-dev/keiko-server/dist/files.js +208 -72
  372. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-answer.d.ts.map +1 -1
  373. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-answer.js +7 -2
  374. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-context-index.d.ts +3 -0
  375. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-context-index.d.ts.map +1 -1
  376. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-context-index.js +27 -4
  377. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-handoff.d.ts.map +1 -1
  378. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-handoff.js +46 -14
  379. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.d.ts +1 -1
  380. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.d.ts.map +1 -1
  381. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.js +651 -45
  382. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-prompt.d.ts.map +1 -1
  383. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-prompt.js +5 -3
  384. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-hybrid.d.ts +9 -0
  385. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-hybrid.d.ts.map +1 -1
  386. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-hybrid.js +197 -46
  387. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-multi-source.d.ts +4 -0
  388. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-multi-source.d.ts.map +1 -1
  389. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-multi-source.js +103 -25
  390. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa.d.ts +7 -0
  391. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa.d.ts.map +1 -1
  392. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa.js +199 -21
  393. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-turn-registry.d.ts.map +1 -1
  394. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-turn-registry.js +21 -1
  395. package/node_modules/@oscharko-dev/keiko-server/dist/index.d.ts +1 -1
  396. package/node_modules/@oscharko-dev/keiko-server/dist/index.d.ts.map +1 -1
  397. package/node_modules/@oscharko-dev/keiko-server/dist/index.js +1 -1
  398. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.d.ts +9 -6
  399. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.d.ts.map +1 -1
  400. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.js +193 -67
  401. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-handlers.d.ts.map +1 -1
  402. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-handlers.js +189 -72
  403. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/connectorErrors.d.ts.map +1 -1
  404. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/connectorErrors.js +11 -8
  405. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/editRoutes.d.ts.map +1 -1
  406. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/editRoutes.js +1 -0
  407. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/exportRoutes.d.ts.map +1 -1
  408. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/exportRoutes.js +89 -30
  409. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorErrors.d.ts +10 -2
  410. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorErrors.d.ts.map +1 -1
  411. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorErrors.js +110 -30
  412. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaHttpPort.d.ts +13 -4
  413. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaHttpPort.d.ts.map +1 -1
  414. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaHttpPort.js +29 -17
  415. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaRenderPort.d.ts +13 -3
  416. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaRenderPort.d.ts.map +1 -1
  417. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaRenderPort.js +54 -5
  418. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotBuilder.d.ts.map +1 -1
  419. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotBuilder.js +84 -12
  420. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotHash.d.ts.map +1 -1
  421. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotHash.js +16 -8
  422. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotTypes.d.ts +6 -2
  423. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotTypes.d.ts.map +1 -1
  424. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotAdapter.d.ts +13 -1
  425. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotAdapter.d.ts.map +1 -1
  426. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotAdapter.js +15 -2
  427. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotOrchestration.d.ts +9 -0
  428. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotOrchestration.d.ts.map +1 -1
  429. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotOrchestration.js +2 -2
  430. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.d.ts +9 -1
  431. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.d.ts.map +1 -1
  432. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.js +138 -19
  433. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/generationPort.d.ts.map +1 -1
  434. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/generationPort.js +38 -8
  435. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffErrors.d.ts +1 -1
  436. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffErrors.d.ts.map +1 -1
  437. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffErrors.js +1 -0
  438. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffRoutes.d.ts.map +1 -1
  439. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/handoffRoutes.js +41 -9
  440. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/index.d.ts +1 -0
  441. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/index.d.ts.map +1 -1
  442. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/index.js +2 -0
  443. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/judgePort.d.ts.map +1 -1
  444. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/judgePort.js +43 -10
  445. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reCheckRoutes.d.ts.map +1 -1
  446. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reCheckRoutes.js +3 -1
  447. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/retentionRoutes.d.ts +5 -0
  448. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/retentionRoutes.d.ts.map +1 -0
  449. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/retentionRoutes.js +70 -0
  450. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewRoutes.d.ts.map +1 -1
  451. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewRoutes.js +6 -2
  452. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewStore.d.ts +25 -4
  453. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewStore.d.ts.map +1 -1
  454. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reviewStore.js +72 -9
  455. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.d.ts.map +1 -1
  456. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.js +97 -18
  457. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRegistry.d.ts.map +1 -1
  458. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRegistry.js +2 -0
  459. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.d.ts +4 -1
  460. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.d.ts.map +1 -1
  461. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.js +17 -3
  462. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/uiRoutes.d.ts.map +1 -1
  463. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/uiRoutes.js +18 -4
  464. package/node_modules/@oscharko-dev/keiko-server/dist/routes.d.ts.map +1 -1
  465. package/node_modules/@oscharko-dev/keiko-server/dist/routes.js +8 -3
  466. package/node_modules/@oscharko-dev/keiko-server/dist/run-engine.d.ts.map +1 -1
  467. package/node_modules/@oscharko-dev/keiko-server/dist/run-engine.js +6 -1
  468. package/node_modules/@oscharko-dev/keiko-server/dist/store/chats.d.ts +2 -2
  469. package/node_modules/@oscharko-dev/keiko-server/dist/store/chats.d.ts.map +1 -1
  470. package/node_modules/@oscharko-dev/keiko-server/dist/store/chats.js +84 -8
  471. package/node_modules/@oscharko-dev/keiko-server/dist/store/db.d.ts.map +1 -1
  472. package/node_modules/@oscharko-dev/keiko-server/dist/store/db.js +4 -2
  473. package/node_modules/@oscharko-dev/keiko-server/dist/store/index.d.ts +1 -1
  474. package/node_modules/@oscharko-dev/keiko-server/dist/store/index.d.ts.map +1 -1
  475. package/node_modules/@oscharko-dev/keiko-server/dist/store/types.d.ts +5 -1
  476. package/node_modules/@oscharko-dev/keiko-server/dist/store/types.d.ts.map +1 -1
  477. package/node_modules/@oscharko-dev/keiko-server/dist/store-handlers.d.ts.map +1 -1
  478. package/node_modules/@oscharko-dev/keiko-server/dist/store-handlers.js +71 -15
  479. package/node_modules/@oscharko-dev/keiko-server/package.json +2 -2
  480. package/node_modules/@oscharko-dev/keiko-tools/dist/.tsbuildinfo +1 -1
  481. package/node_modules/@oscharko-dev/keiko-tools/package.json +2 -2
  482. package/node_modules/@oscharko-dev/keiko-verification/dist/.tsbuildinfo +1 -1
  483. package/node_modules/@oscharko-dev/keiko-verification/package.json +2 -2
  484. package/node_modules/@oscharko-dev/keiko-workflows/dist/.tsbuildinfo +1 -1
  485. package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/assemble.d.ts +2 -0
  486. package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/assemble.d.ts.map +1 -1
  487. package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/assemble.js +45 -10
  488. package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/index.d.ts +1 -1
  489. package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/index.d.ts.map +1 -1
  490. package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/index.js +1 -1
  491. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/anchors.d.ts.map +1 -1
  492. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/anchors.js +68 -0
  493. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/plan.d.ts.map +1 -1
  494. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/plan.js +4 -6
  495. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/__tests__/fixtures/runEntryFixtures.d.ts +30 -0
  496. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/__tests__/fixtures/runEntryFixtures.d.ts.map +1 -0
  497. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/__tests__/fixtures/runEntryFixtures.js +114 -0
  498. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/modelRoutedTestDesign.d.ts.map +1 -1
  499. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/modelRoutedTestDesign.js +20 -7
  500. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runEntries.d.ts.map +1 -1
  501. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runEntries.js +15 -7
  502. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runtimeCommon.d.ts.map +1 -1
  503. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runtimeCommon.js +28 -4
  504. package/node_modules/@oscharko-dev/keiko-workflows/dist/ranking/rank.d.ts.map +1 -1
  505. package/node_modules/@oscharko-dev/keiko-workflows/dist/ranking/rank.js +51 -1
  506. package/node_modules/@oscharko-dev/keiko-workflows/dist/ranking/signals.d.ts.map +1 -1
  507. package/node_modules/@oscharko-dev/keiko-workflows/dist/ranking/signals.js +8 -3
  508. package/node_modules/@oscharko-dev/keiko-workflows/package.json +2 -2
  509. package/node_modules/@oscharko-dev/keiko-workspace/dist/.tsbuildinfo +1 -1
  510. package/node_modules/@oscharko-dev/keiko-workspace/dist/discovery.d.ts.map +1 -1
  511. package/node_modules/@oscharko-dev/keiko-workspace/dist/discovery.js +34 -2
  512. package/node_modules/@oscharko-dev/keiko-workspace/dist/fs.d.ts +1 -0
  513. package/node_modules/@oscharko-dev/keiko-workspace/dist/fs.d.ts.map +1 -1
  514. package/node_modules/@oscharko-dev/keiko-workspace/dist/fs.js +1 -0
  515. package/node_modules/@oscharko-dev/keiko-workspace/dist/gitHistory.d.ts.map +1 -1
  516. package/node_modules/@oscharko-dev/keiko-workspace/dist/gitHistory.js +84 -27
  517. package/node_modules/@oscharko-dev/keiko-workspace/dist/ignore.d.ts.map +1 -1
  518. package/node_modules/@oscharko-dev/keiko-workspace/dist/ignore.js +19 -0
  519. package/node_modules/@oscharko-dev/keiko-workspace/dist/importGraph.d.ts.map +1 -1
  520. package/node_modules/@oscharko-dev/keiko-workspace/dist/importGraph.js +6 -3
  521. package/node_modules/@oscharko-dev/keiko-workspace/dist/realpath.d.ts +1 -0
  522. package/node_modules/@oscharko-dev/keiko-workspace/dist/realpath.d.ts.map +1 -1
  523. package/node_modules/@oscharko-dev/keiko-workspace/dist/realpath.js +2 -2
  524. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearch.d.ts.map +1 -1
  525. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearch.js +72 -25
  526. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchEntries.d.ts +15 -0
  527. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchEntries.d.ts.map +1 -0
  528. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchEntries.js +107 -0
  529. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchLineSelection.d.ts +18 -0
  530. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchLineSelection.d.ts.map +1 -0
  531. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchLineSelection.js +42 -0
  532. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.d.ts.map +1 -1
  533. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.js +72 -11
  534. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchRegexSafety.d.ts +2 -0
  535. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchRegexSafety.d.ts.map +1 -0
  536. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchRegexSafety.js +15 -0
  537. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchScan.d.ts +2 -2
  538. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchScan.d.ts.map +1 -1
  539. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchScan.js +89 -75
  540. package/node_modules/@oscharko-dev/keiko-workspace/package.json +2 -2
  541. package/node_modules/@types/node/README.md +1 -1
  542. package/node_modules/@types/node/http2.d.ts +1 -0
  543. package/node_modules/@types/node/package.json +2 -2
  544. package/package.json +3 -1
  545. package/dist/ui/static/_next/static/RAzN8WLtYaktD-ZePowXl/_buildManifest.js +0 -1
  546. package/dist/ui/static/_next/static/chunks/18-ac3e3551b4e0ce8a.js +0 -1
  547. package/dist/ui/static/_next/static/chunks/258-e3b5ee46b0669967.js +0 -1
  548. package/dist/ui/static/_next/static/chunks/422-4c94c107b90d3ccc.js +0 -1
  549. package/dist/ui/static/_next/static/chunks/664-6d821dc1aacb6b48.js +0 -1
  550. package/dist/ui/static/_next/static/chunks/87c73c54-24122e7b92478d00.js +0 -1
  551. package/dist/ui/static/_next/static/chunks/982-abc19630e6305864.js +0 -1
  552. package/dist/ui/static/_next/static/chunks/app/_not-found/page-c4d800f366186be0.js +0 -1
  553. package/dist/ui/static/_next/static/chunks/app/launch/page-17ca39367f25f372.js +0 -1
  554. package/dist/ui/static/_next/static/chunks/app/layout-0f75a39edc90325d.js +0 -1
  555. package/dist/ui/static/_next/static/chunks/app/local-knowledge/capsule/page-87a2ea239308ed34.js +0 -1
  556. package/dist/ui/static/_next/static/chunks/app/local-knowledge/page-98bb7704fc7fd0ad.js +0 -1
  557. package/dist/ui/static/_next/static/chunks/app/memoriaviva/consolidation/page-f912263f1ee5d2dd.js +0 -1
  558. package/dist/ui/static/_next/static/chunks/app/memoriaviva/detail/page-fa590f135356e0af.js +0 -1
  559. package/dist/ui/static/_next/static/chunks/app/memoriaviva/page-b8555600c1113f14.js +0 -1
  560. package/dist/ui/static/_next/static/chunks/app/memoriaviva/review-queue/page-85cfbeb3598c0a36.js +0 -1
  561. package/dist/ui/static/_next/static/chunks/app/page-2881856ad25d9935.js +0 -1
  562. package/dist/ui/static/_next/static/chunks/framework-d8f01f7e25201916.js +0 -1
  563. package/dist/ui/static/_next/static/chunks/main-app-5b043f6c611974ae.js +0 -1
  564. package/dist/ui/static/_next/static/chunks/main-bc552b04f2b6dbe2.js +0 -1
  565. package/dist/ui/static/_next/static/chunks/pages/_app-2e239ff05bfdf6d6.js +0 -1
  566. package/dist/ui/static/_next/static/chunks/pages/_error-bda15e7831eec981.js +0 -1
  567. package/dist/ui/static/_next/static/chunks/webpack-0cfe6f51555ca84e.js +0 -1
  568. package/dist/ui/static/_next/static/css/eac94895f3edc5a5.css +0 -1
  569. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/scripted-answer-generator.d.ts +0 -6
  570. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/scripted-answer-generator.d.ts.map +0 -1
  571. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/scripted-answer-generator.js +0 -49
  572. /package/dist/ui/static/_next/static/chunks/{polyfills-42372ed130431b0a.js → 0cz1d0mv5g_q7.js} +0 -0
  573. /package/dist/ui/static/_next/static/{RAzN8WLtYaktD-ZePowXl → hR2gBQqCDKdPdSxBqZhqv}/_ssgManifest.js +0 -0
@@ -1,7 +1,9 @@
1
1
  // ADR-0013 — chats CRUD scoped to a project. Parameterized SQL only.
2
2
  import { isAbsolute } from "node:path";
3
3
  import { SELECTED_SCOPE_KINDS, isValidScopePath, } from "@oscharko-dev/keiko-contracts/connected-context";
4
- import { DEFAULT_GROUNDING_LIMITS, MAX_CONNECTED_SOURCES, MAX_LOCAL_KNOWLEDGE_SOURCES, } from "@oscharko-dev/keiko-contracts/bff-wire";
4
+ import { DEFAULT_GROUNDING_LIMITS, GROUNDING_LIMIT_CEILINGS, } from "@oscharko-dev/keiko-contracts/bff-wire";
5
+ import { redact } from "@oscharko-dev/keiko-security";
6
+ import { pathIsDenied } from "../files-deny.js";
5
7
  import { invalidRequest, notFound } from "./errors.js";
6
8
  const MAX_CONNECTED_SCOPE_PATHS = 50;
7
9
  const SELECTED_SCOPE_KIND_SET = new Set(SELECTED_SCOPE_KINDS);
@@ -49,6 +51,18 @@ function validateScopePathsForKind(kind, paths) {
49
51
  }
50
52
  return items;
51
53
  }
54
+ function metadataIsSafe(value) {
55
+ const redacted = redact(value);
56
+ return typeof redacted !== "string" || redacted === value;
57
+ }
58
+ function assertMetadataSafe(value, label) {
59
+ if (!metadataIsSafe(value)) {
60
+ throw invalidRequest(`${label} must not contain credential-shaped metadata.`);
61
+ }
62
+ }
63
+ function allMetadataSafe(values) {
64
+ return values.every(metadataIsSafe);
65
+ }
52
66
  // Epic #532 — the connected_scope_paths column now holds EITHER a single scope object (legacy)
53
67
  // OR a JSON array of scope objects (multi-source). The Issue #184 legacy form (a bare array of
54
68
  // path strings) is still tolerated as a single files scope. Disambiguation: an array whose first
@@ -62,8 +76,13 @@ function validateScopePathsForKind(kind, paths) {
62
76
  function decodeScopeRoot(raw) {
63
77
  if (raw === undefined)
64
78
  return { ok: true };
65
- if (typeof raw === "string" && raw.length > 0 && isAbsolute(raw))
79
+ if (typeof raw === "string" &&
80
+ raw.length > 0 &&
81
+ isAbsolute(raw) &&
82
+ !pathIsDenied(raw) &&
83
+ metadataIsSafe(raw)) {
66
84
  return { ok: true, root: raw };
85
+ }
67
86
  return { ok: false };
68
87
  }
69
88
  function decodeSingleScopeObject(raw) {
@@ -72,6 +91,8 @@ function decodeSingleScopeObject(raw) {
72
91
  const relativePaths = validateScopePathsForKind(raw.kind, raw.relativePaths);
73
92
  if (relativePaths === undefined)
74
93
  return undefined;
94
+ if (!allMetadataSafe(relativePaths))
95
+ return undefined;
75
96
  const decodedRoot = decodeScopeRoot(raw.root);
76
97
  if (!decodedRoot.ok)
77
98
  return undefined;
@@ -88,10 +109,12 @@ function decodeSingleScopeObject(raw) {
88
109
  }
89
110
  function decodeLegacyFilesArray(parsed) {
90
111
  const relativePaths = validateScopePathsForKind("files", parsed);
91
- return relativePaths === undefined ? undefined : { kind: "files", relativePaths };
112
+ if (relativePaths === undefined || !allMetadataSafe(relativePaths))
113
+ return undefined;
114
+ return { kind: "files", relativePaths };
92
115
  }
93
116
  function decodeScopeObjectArray(entries) {
94
- if (entries.length > MAX_CONNECTED_SOURCES)
117
+ if (entries.length > GROUNDING_LIMIT_CEILINGS.maxConnectedSources)
95
118
  return undefined;
96
119
  const payloads = [];
97
120
  for (const entry of entries) {
@@ -180,8 +203,9 @@ function decodeLocalKnowledgeScopes(raw) {
180
203
  return single === undefined ? undefined : [single];
181
204
  }
182
205
  function decodeLocalKnowledgeScopeArray(entries) {
183
- if (entries.length === 0 || entries.length > MAX_LOCAL_KNOWLEDGE_SOURCES)
206
+ if (entries.length === 0 || entries.length > GROUNDING_LIMIT_CEILINGS.maxLocalKnowledgeSources) {
184
207
  return undefined;
208
+ }
185
209
  const scopes = [];
186
210
  for (const entry of entries) {
187
211
  const decoded = decodeLocalKnowledgeScopeObject(entry);
@@ -326,9 +350,25 @@ function validateConnectedScopeShape(scope) {
326
350
  if (!Array.isArray(scope.relativePaths)) {
327
351
  throw invalidRequest("connectedScope.relativePaths must be an array.");
328
352
  }
329
- if (validateScopePathsForKind(scope.kind, scope.relativePaths) === undefined) {
353
+ const relativePaths = validateScopePathsForKind(scope.kind, scope.relativePaths);
354
+ if (relativePaths === undefined) {
330
355
  throw invalidRequest("connectedScope.relativePaths must match connectedScope.kind and contain valid workspace-relative paths.");
331
356
  }
357
+ validateConnectedScopeTimestamp(scope);
358
+ validateConnectedScopeMetadata(relativePaths, scope.root);
359
+ }
360
+ function validateConnectedScopeMetadata(relativePaths, root) {
361
+ if (root !== undefined && pathIsDenied(root)) {
362
+ throw invalidRequest("connectedScope.root must not reference a deny-listed path.");
363
+ }
364
+ for (const relativePath of relativePaths) {
365
+ assertMetadataSafe(relativePath, "connectedScope.relativePaths");
366
+ }
367
+ if (root !== undefined) {
368
+ assertMetadataSafe(root, "connectedScope.root");
369
+ }
370
+ }
371
+ function validateConnectedScopeTimestamp(scope) {
332
372
  if (typeof scope.connectedAtMs !== "number" ||
333
373
  !Number.isInteger(scope.connectedAtMs) ||
334
374
  scope.connectedAtMs < 0) {
@@ -511,8 +551,44 @@ function localKnowledgeScopesUpdateParams(value) {
511
551
  }
512
552
  return { apply: 1, json: JSON.stringify(value.map(encodeLocalKnowledgeScopeObject)) };
513
553
  }
514
- export function updateChat(db, id, patch, now) {
515
- validateChatPatch(patch);
554
+ // Release 0.2.0 combined source cap. "Up to 16 sources" is a TOTAL across both lists
555
+ // (folders/files/repos in connectedScopes + knowledge connectors in localKnowledgeScopes),
556
+ // mirroring the QI ingestion total cap (MAX_QI_SOURCES = 16) so "16 sources" means the same
557
+ // thing everywhere. The cap is max(maxConnectedSources, maxLocalKnowledgeSources): never
558
+ // smaller than either per-list limit, so each list's own cap stays reachable. Growth-only:
559
+ // a pre-existing over-cap chat may shrink or hold its lists (no migration lock-out), but no
560
+ // patch may grow the combined total past the cap.
561
+ // Effective count after applying a resolved list patch: undefined = unchanged, null = cleared.
562
+ function patchedCount(resolved, prev) {
563
+ if (resolved === undefined)
564
+ return prev;
565
+ return resolved === null ? 0 : resolved.length;
566
+ }
567
+ function combinedSourceCap(options) {
568
+ return Math.max(options?.maxConnectedSources ?? DEFAULT_GROUNDING_LIMITS.maxConnectedSources, options?.maxLocalKnowledgeSources ?? DEFAULT_GROUNDING_LIMITS.maxLocalKnowledgeSources);
569
+ }
570
+ function validateTotalSourceCap(db, id, patch, options) {
571
+ const nextConnected = resolveScopePatch(patch);
572
+ const nextLk = resolveLocalKnowledgeScopePatch(patch);
573
+ if (nextConnected === undefined && nextLk === undefined)
574
+ return;
575
+ const existing = findChatById(db, id);
576
+ if (existing === undefined)
577
+ return; // the UPDATE below raises notFound
578
+ const prevConnected = existing.connectedScopes ??
579
+ (existing.connectedScope !== undefined ? [existing.connectedScope] : []);
580
+ const prevLk = existing.localKnowledgeScopes ??
581
+ (existing.localKnowledgeScope !== undefined ? [existing.localKnowledgeScope] : []);
582
+ const total = patchedCount(nextConnected, prevConnected.length) + patchedCount(nextLk, prevLk.length);
583
+ const prevTotal = prevConnected.length + prevLk.length;
584
+ const cap = combinedSourceCap(options);
585
+ if (total > cap && total > prevTotal) {
586
+ throw invalidRequest(`A chat may connect at most ${String(cap)} sources in total (folders, files, repositories, and knowledge connectors combined).`);
587
+ }
588
+ }
589
+ export function updateChat(db, id, patch, now, options) {
590
+ validateChatPatch(patch, options);
591
+ validateTotalSourceCap(db, id, patch, options);
516
592
  if (patch.selectedModel !== undefined)
517
593
  validateSelectedModel(patch.selectedModel);
518
594
  const titleParam = patch.title ?? null;
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/store/db.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,KAAK,EAMV,OAAO,EACP,qBAAqB,EAItB,MAAM,YAAY,CAAC;AAiCpB,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAM9E;AA6JD,eAAO,MAAM,qBAAqB,OAAQ,CAAC;AAa3C,wBAAgB,qBAAqB,CAAC,IAAI,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAI3E;AAgCD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAkB/D;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAEhG;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAEvF"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/store/db.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,KAAK,EAMV,OAAO,EACP,qBAAqB,EAKtB,MAAM,YAAY,CAAC;AAiCpB,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAM9E;AA+JD,eAAO,MAAM,qBAAqB,OAAQ,CAAC;AAa3C,wBAAgB,qBAAqB,CAAC,IAAI,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAI3E;AAgCD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAkB/D;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAEhG;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAEvF"}
@@ -93,10 +93,12 @@ function buildStore(db, options) {
93
93
  deleteProject: (path) => {
94
94
  deleteProjectRecord(db, path);
95
95
  },
96
- listChats: (projectPath, limit) => limit === undefined ? sqlListChats(db, projectPath) : sqlListChatsLimited(db, projectPath, limit),
96
+ listChats: (projectPath, limit) => limit === undefined
97
+ ? sqlListChats(db, projectPath)
98
+ : sqlListChatsLimited(db, projectPath, limit),
97
99
  findChatById: (id) => sqlFindChatById(db, id),
98
100
  createChat: (projectPath, title, selectedModel, opts) => createChatRecord(db, options, projectPath, title, selectedModel, opts),
99
- updateChat: (id, patch) => sqlUpdateChat(db, id, patch, options.now()),
101
+ updateChat: (id, patch, updateOptions) => sqlUpdateChat(db, id, patch, options.now(), updateOptions),
100
102
  deleteChat: (id) => {
101
103
  sqlDeleteChat(db, id);
102
104
  },
@@ -1,4 +1,4 @@
1
- export type { Chat, ChatConnectedScope, ChatLocalKnowledgeScope, ChatMessage, ChatRole, CreateChatOptions, NewChatMessage, Project, UiStore, UiStoreFactoryOptions, UpdateChatMessagePatch, UpdateChatPatch, UpdateProjectPatch, WorkflowStatus, } from "./types.js";
1
+ export type { Chat, ChatConnectedScope, ChatLocalKnowledgeScope, ChatMessage, ChatRole, CreateChatOptions, NewChatMessage, Project, UiStore, UiStoreFactoryOptions, UpdateChatOptions, UpdateChatMessagePatch, UpdateChatPatch, UpdateProjectPatch, WorkflowStatus, } from "./types.js";
2
2
  export { UiStoreError, type UiStoreErrorCode, invalidPath, invalidRequest, notFound, pathNotDirectory, pathNotFound, projectExists, } from "./errors.js";
3
3
  export { classifyPathShape, validateProjectPath, type PathShape, type ValidateProjectPathOptions, } from "./validation.js";
4
4
  export { assertUiDbOutsideProject, resolveUiDbPath, UI_DB_FILENAME, UI_DB_DIRNAME, } from "./paths.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,IAAI,EACJ,kBAAkB,EAClB,uBAAuB,EACvB,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,OAAO,EACP,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,YAAY,EACZ,KAAK,gBAAgB,EACrB,WAAW,EACX,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,SAAS,EACd,KAAK,0BAA0B,GAChC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,IAAI,EACJ,kBAAkB,EAClB,uBAAuB,EACvB,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,OAAO,EACP,OAAO,EACP,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,YAAY,EACZ,KAAK,gBAAgB,EACrB,WAAW,EACX,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,SAAS,EACd,KAAK,0BAA0B,GAChC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,SAAS,CAAC"}
@@ -8,7 +8,7 @@ export interface UiStore {
8
8
  readonly listChats: (projectPath: string, limit?: number) => readonly Chat[];
9
9
  readonly findChatById: (id: string) => Chat | undefined;
10
10
  readonly createChat: (projectPath: string, title: string, selectedModel: string, opts?: CreateChatOptions) => Chat;
11
- readonly updateChat: (id: string, patch: UpdateChatPatch) => Chat;
11
+ readonly updateChat: (id: string, patch: UpdateChatPatch, options?: UpdateChatOptions) => Chat;
12
12
  readonly deleteChat: (id: string) => void;
13
13
  readonly listMessages: (chatId: string, limit?: number) => readonly ChatMessage[];
14
14
  readonly findMessageById: (id: string) => ChatMessage | undefined;
@@ -17,6 +17,10 @@ export interface UiStore {
17
17
  readonly updateMessage: (id: string, patch: UpdateChatMessagePatch) => ChatMessage;
18
18
  readonly close: () => void;
19
19
  }
20
+ export interface UpdateChatOptions {
21
+ readonly maxConnectedSources?: number;
22
+ readonly maxLocalKnowledgeSources?: number;
23
+ }
20
24
  export interface UiStoreFactoryOptions {
21
25
  readonly now?: () => number;
22
26
  readonly newId?: () => string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,OAAO,EACP,IAAI,EACJ,kBAAkB,EAClB,uBAAuB,EACvB,QAAQ,EACR,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,sBAAsB,EACvB,MAAM,wCAAwC,CAAC;AAChD,YAAY,EACV,OAAO,EACP,IAAI,EACJ,kBAAkB,EAClB,uBAAuB,EACvB,QAAQ,EACR,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,sBAAsB,GACvB,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,SAAS,OAAO,EAAE,CAAC;IAChD,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACjE,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC;IAC7E,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAE/C,QAAQ,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,SAAS,IAAI,EAAE,CAAC;IAC7E,QAAQ,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,UAAU,EAAE,CACnB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,iBAAiB,KACrB,IAAI,CAAC;IACV,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAClE,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C,QAAQ,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,SAAS,WAAW,EAAE,CAAC;IAClF,QAAQ,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,WAAW,CAAC;IAC7D,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,KAAK,SAAS,WAAW,EAAE,CAAC;IACzF,QAAQ,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,KAAK,WAAW,CAAC;IAEnF,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAC5B;AAID,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACnD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,OAAO,EACP,IAAI,EACJ,kBAAkB,EAClB,uBAAuB,EACvB,QAAQ,EACR,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,sBAAsB,EACvB,MAAM,wCAAwC,CAAC;AAChD,YAAY,EACV,OAAO,EACP,IAAI,EACJ,kBAAkB,EAClB,uBAAuB,EACvB,QAAQ,EACR,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,sBAAsB,GACvB,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,SAAS,OAAO,EAAE,CAAC;IAChD,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACjE,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC;IAC7E,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAE/C,QAAQ,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,SAAS,IAAI,EAAE,CAAC;IAC7E,QAAQ,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,UAAU,EAAE,CACnB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,iBAAiB,KACrB,IAAI,CAAC;IACV,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC/F,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C,QAAQ,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,SAAS,WAAW,EAAE,CAAC;IAClF,QAAQ,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAC;IAClE,QAAQ,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,WAAW,CAAC;IAC7D,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,KAAK,SAAS,WAAW,EAAE,CAAC;IACzF,QAAQ,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,KAAK,WAAW,CAAC;IAEnF,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;CAC5C;AAID,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACnD"}
@@ -1 +1 @@
1
- {"version":3,"file":"store-handlers.d.ts","sourceRoot":"","sources":["../src/store-handlers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAuH/C,iBAAS,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAEpD;AAqMD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,WAAW,CAGvF;AAMD,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAUtB;AAeD,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAQtB;AAMD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,WAAW,CASvF;AAgBD,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,WAAW,CAYnF;AAMD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAetB;AA+XD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAoBtB;AAMD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,WAAW,CAQpF;AAMD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,WAAW,CAgBtF;AAMD,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAwBtB;AA6CD,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAWtB;AAuBD,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAgBtB;AAGD,OAAO,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"store-handlers.d.ts","sourceRoot":"","sources":["../src/store-handlers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAwH/C,iBAAS,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAEpD;AAmND,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,WAAW,CAMvF;AAMD,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAatB;AAeD,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAQtB;AAMD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,WAAW,CAcvF;AAgBD,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,WAAW,CAYnF;AAMD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAetB;AA0bD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAuBtB;AAMD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,WAAW,CAQpF;AAMD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,GAAG,WAAW,CAkBtF;AAMD,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAwBtB;AA6CD,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAWtB;AAuBD,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAgBtB;AAGD,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -10,6 +10,7 @@ import { UiStoreError, assertUiDbOutsideProject, isProjectAvailable, validatePro
10
10
  import { pathIsDenied } from "./files-deny.js";
11
11
  import { clearGroundedContextIndexesForConversation, clearGroundedContextIndexesForWorkspace, } from "./grounded-context-index.js";
12
12
  import { clearGroundedTurnsForConversation, clearGroundedTurnsForWorkspace, } from "./grounded-turn-registry.js";
13
+ import { isLegacyEmptyAssistantPlaceholder } from "./assistant-response.js";
13
14
  // Issue #184 — workspace-relative path gate. isValidScopePath is the canonical validator from
14
15
  // @oscharko-dev/keiko-contracts/connected-context (issue #178). Reusing it here keeps the BFF
15
16
  // boundary aligned with the rest of the connected-repo surface and avoids regex drift.
@@ -94,6 +95,9 @@ function badRequest(code, message) {
94
95
  function notFoundResult(message) {
95
96
  return { status: 404, body: errorBody("not_found", message) };
96
97
  }
98
+ function forbiddenResult(code, message) {
99
+ return { status: 403, body: errorBody(code, message) };
100
+ }
97
101
  function payloadTooLarge() {
98
102
  return {
99
103
  status: 413,
@@ -235,6 +239,14 @@ function optionalBoundedQueryInteger(ctx, name, fallback, max) {
235
239
  function projectWithAvailability(p) {
236
240
  return { ...p, available: isProjectAvailable(p) };
237
241
  }
242
+ function putPreferredProjectFirst(projects, preferredProjectPath) {
243
+ if (preferredProjectPath === undefined)
244
+ return projects;
245
+ const preferred = projects.find((project) => project.path === preferredProjectPath);
246
+ if (preferred === undefined)
247
+ return projects;
248
+ return [preferred, ...projects.filter((project) => project.path !== preferredProjectPath)];
249
+ }
238
250
  function chatBelongsToProject(deps, projectPath, chatId) {
239
251
  return deps.store.findChatById(chatId)?.projectPath === projectPath;
240
252
  }
@@ -251,7 +263,7 @@ function messageBelongsToChat(deps, chatId, messageId) {
251
263
  // Route 13 — GET /api/projects
252
264
  // ──────────────────────────────────────────────────────────────────────────
253
265
  export function handleListProjects(_ctx, deps) {
254
- const projects = deps.store.listProjects().map(projectWithAvailability);
266
+ const projects = putPreferredProjectFirst(deps.store.listProjects().map(projectWithAvailability), deps.preferredProjectPath);
255
267
  return { status: 200, body: { projects } };
256
268
  }
257
269
  // ──────────────────────────────────────────────────────────────────────────
@@ -263,6 +275,9 @@ export async function handleCreateProject(ctx, deps) {
263
275
  const path = requireString(body, "path");
264
276
  const name = optionalString(body, "name");
265
277
  const normalizedPath = validateProjectPath(path, { mustExist: true });
278
+ if (pathIsDenied(normalizedPath)) {
279
+ return forbiddenResult("DENIED", "The project path is excluded from Keiko's safe read surface.");
280
+ }
266
281
  assertUiDbOutsideProject(deps.uiDbPath, normalizedPath);
267
282
  const project = deps.store.createProject(normalizedPath, name);
268
283
  return { status: 201, body: { project: projectWithAvailability(project) } };
@@ -295,7 +310,12 @@ export function handleDeleteProject(ctx, deps) {
295
310
  return runHandlerSync(() => {
296
311
  const targetPath = requireQuery(ctx, "path");
297
312
  const normalizedPath = validateProjectPath(targetPath, { mustExist: false });
313
+ const deletedChats = deps.store.listChats(normalizedPath);
298
314
  deps.store.deleteProject(normalizedPath);
315
+ for (const chat of deletedChats) {
316
+ clearGroundedContextIndexesForConversation(chat.id);
317
+ clearGroundedTurnsForConversation(chat.id);
318
+ }
299
319
  clearGroundedContextIndexesForWorkspace(normalizedPath);
300
320
  clearGroundedTurnsForWorkspace(normalizedPath);
301
321
  return { status: 204, body: null };
@@ -405,6 +425,9 @@ function scopeTargetPath(realProjectRoot, relativePath) {
405
425
  return realProjectRoot;
406
426
  return resolve(realProjectRoot, ...relativePath.split("/").filter((part) => part.length > 0));
407
427
  }
428
+ function scopeRelativePath(realProjectRoot, absolutePath) {
429
+ return relative(realProjectRoot, absolutePath).split("\\").join("/");
430
+ }
408
431
  function assertScopePathMetadataSafe(deps, relativePath) {
409
432
  if (pathIsDenied(relativePath)) {
410
433
  throw new InvalidRequest("Connected scope is excluded from Keiko's safe read surface.");
@@ -427,6 +450,9 @@ function validateScopePathAccess(deps, realProjectRoot, kind, entry) {
427
450
  if (!isContainedPath(realProjectRoot, targetReal)) {
428
451
  throw new InvalidRequest("Connected scope path must stay inside the selected project.");
429
452
  }
453
+ if (pathIsDenied(scopeRelativePath(realProjectRoot, targetReal))) {
454
+ throw new InvalidRequest("Connected scope is excluded from Keiko's safe read surface.");
455
+ }
430
456
  let info;
431
457
  try {
432
458
  info = statSync(targetReal);
@@ -444,7 +470,7 @@ function validateScopePathAccess(deps, realProjectRoot, kind, entry) {
444
470
  function resolveRealRoot(rootInput, notAccessibleMessage) {
445
471
  const root = validateProjectPath(rootInput, { mustExist: true });
446
472
  try {
447
- return realpathSync(root);
473
+ return { root, realRoot: realpathSync(root) };
448
474
  }
449
475
  catch {
450
476
  throw new InvalidRequest(notAccessibleMessage);
@@ -454,10 +480,10 @@ function resolveRealRoot(rootInput, notAccessibleMessage) {
454
480
  // (a folder outside the chat's project, so non-developers can connect any folder). Validate it like
455
481
  // a project root, then refuse credential/secret locations (deny-list) and credential-shaped path
456
482
  // metadata so home-directory browsing can never bind a secret folder as a grounded scope.
457
- function validateConnectedScopeRoot(deps, rootInput) {
458
- const realRoot = resolveRealRoot(rootInput, "Connected scope root is not accessible.");
459
- if (pathIsDenied(realRoot)) {
460
- throw new InvalidRequest("Connected scope root is excluded from Keiko's safe read surface.");
483
+ function validateAccessibleRoot(deps, rootInput, notAccessibleMessage, deniedMessage) {
484
+ const { root, realRoot } = resolveRealRoot(rootInput, notAccessibleMessage);
485
+ if (pathIsDenied(root) || pathIsDenied(realRoot)) {
486
+ throw new InvalidRequest(deniedMessage);
461
487
  }
462
488
  const redacted = deps.redactor(realRoot);
463
489
  if (typeof redacted === "string" && redacted !== realRoot) {
@@ -465,15 +491,23 @@ function validateConnectedScopeRoot(deps, rootInput) {
465
491
  }
466
492
  return realRoot;
467
493
  }
494
+ function validateConnectedScopeRoot(deps, rootInput) {
495
+ return validateAccessibleRoot(deps, rootInput, "Connected scope root is not accessible.", "Connected scope root is excluded from Keiko's safe read surface.");
496
+ }
497
+ function validateFallbackProjectRoot(deps, projectPath) {
498
+ return validateAccessibleRoot(deps, projectPath, "Selected project is not accessible.", "Selected project is excluded from Keiko's safe read surface.");
499
+ }
468
500
  function validateConnectedScopeAccess(deps, chat, scope) {
469
501
  const realRoot = scope.root !== undefined
470
502
  ? validateConnectedScopeRoot(deps, scope.root)
471
- : resolveRealRoot(chat.projectPath, "Selected project is not accessible.");
472
- if (scope.kind === "workspace-root")
473
- return;
503
+ : validateFallbackProjectRoot(deps, chat.projectPath);
504
+ if (scope.kind === "workspace-root") {
505
+ return scope.root === undefined ? scope : { ...scope, root: realRoot };
506
+ }
474
507
  for (const entry of scope.relativePaths) {
475
508
  validateScopePathAccess(deps, realRoot, scope.kind, entry);
476
509
  }
510
+ return scope.root === undefined ? scope : { ...scope, root: realRoot };
477
511
  }
478
512
  function validateScopeConnectedAtMs(value) {
479
513
  if (typeof value !== "number" || !Number.isInteger(value) || value < 0) {
@@ -642,6 +676,23 @@ function scopesRequiringAccessValidation(patch) {
642
676
  }
643
677
  return [];
644
678
  }
679
+ function canonicalizeConnectedScopePatch(deps, chat, patch) {
680
+ if (patch.connectedScopes !== undefined) {
681
+ return {
682
+ ...patch,
683
+ connectedScopes: patch.connectedScopes === null
684
+ ? null
685
+ : patch.connectedScopes.map((scope) => validateConnectedScopeAccess(deps, chat, scope)),
686
+ };
687
+ }
688
+ if (patch.connectedScope !== undefined && patch.connectedScope !== null) {
689
+ return {
690
+ ...patch,
691
+ connectedScope: validateConnectedScopeAccess(deps, chat, patch.connectedScope),
692
+ };
693
+ }
694
+ return patch;
695
+ }
645
696
  // Epic #189 — the grounded index is invalidated when ANY grounding source changes: a connected
646
697
  // folder scope (#532) OR a local-knowledge connector scope. The hybrid path reads both.
647
698
  function patchTouchesGroundingScope(patch) {
@@ -656,16 +707,19 @@ export async function handleUpdateChat(ctx, deps) {
656
707
  const body = await readJsonObject(ctx.req);
657
708
  const patch = buildChatPatch(deps, body);
658
709
  const scopesToCheck = scopesRequiringAccessValidation(patch);
710
+ let safePatch = patch;
659
711
  if (scopesToCheck.length > 0) {
660
712
  const existing = findChatById(deps, id);
661
713
  if (existing === undefined)
662
714
  return notFoundResult("Chat not found.");
663
- for (const scope of scopesToCheck) {
664
- validateConnectedScopeAccess(deps, existing, scope);
665
- }
715
+ safePatch = canonicalizeConnectedScopePatch(deps, existing, patch);
666
716
  }
667
- const chat = deps.store.updateChat(id, patch);
668
- if (patchTouchesGroundingScope(patch) || patch.status === "closed") {
717
+ const limits = currentGroundingLimits(deps);
718
+ const chat = deps.store.updateChat(id, safePatch, {
719
+ maxConnectedSources: limits.maxConnectedSources,
720
+ maxLocalKnowledgeSources: limits.maxLocalKnowledgeSources,
721
+ });
722
+ if (patchTouchesGroundingScope(safePatch) || safePatch.status === "closed") {
669
723
  clearGroundedContextIndexesForConversation(id);
670
724
  clearGroundedTurnsForConversation(id);
671
725
  }
@@ -695,7 +749,9 @@ export function handleListMessages(ctx, deps) {
695
749
  if (!chatBelongsToProject(deps, projectPath, chatId)) {
696
750
  return notFoundResult("Chat not found.");
697
751
  }
698
- const messages = deps.store.listMessages(chatId, limit);
752
+ const messages = deps.store
753
+ .listMessages(chatId, limit)
754
+ .filter((message) => !isLegacyEmptyAssistantPlaceholder(message));
699
755
  return { status: 200, body: { messages } };
700
756
  });
701
757
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oscharko-dev/keiko-server",
3
- "version": "0.2.0-beta.3",
3
+ "version": "0.2.0-beta.5",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "scripts": {
17
17
  "build": "tsc -b tsconfig.json",
18
- "typecheck": "tsc -b tsconfig.json --noEmit",
18
+ "typecheck": "tsc -b tsconfig.json",
19
19
  "test": "vitest run"
20
20
  },
21
21
  "files": [