@oscharko-dev/keiko 0.2.0-beta.2 → 0.2.0-beta.4

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 (517) hide show
  1. package/README.md +139 -1
  2. package/dist/ui/csp-hashes.json +34 -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/Hb6brrvZY2nZtizQlYhVt/_buildManifest.js +11 -0
  10. package/dist/ui/static/_next/static/Hb6brrvZY2nZtizQlYhVt/_clientMiddlewareManifest.js +1 -0
  11. package/dist/ui/static/_next/static/chunks/05-c3ty_6dwfk.js +1 -0
  12. package/dist/ui/static/_next/static/chunks/082obv3v03b-9.js +2 -0
  13. package/dist/ui/static/_next/static/chunks/0iq1i69206cyl.js +31 -0
  14. package/dist/ui/static/_next/static/chunks/0uifns067thv8.js +1 -0
  15. package/dist/ui/static/_next/static/chunks/0x31-j53ab1tt.js +1 -0
  16. package/dist/ui/static/_next/static/chunks/14mrh2-p_w84d.js +1 -0
  17. package/dist/ui/static/_next/static/chunks/1t04tfgin0v_g.js +106 -0
  18. package/dist/ui/static/_next/static/chunks/1v4hrxrm_6_rw.js +1 -0
  19. package/dist/ui/static/_next/static/chunks/27jktro2p5rq9.js +4 -0
  20. package/dist/ui/static/_next/static/chunks/2lypy3ewh0r04.js +1 -0
  21. package/dist/ui/static/_next/static/chunks/32573pyyglqxl.js +1 -0
  22. package/dist/ui/static/_next/static/chunks/3_t_pzet29qtn.js +1 -0
  23. package/dist/ui/static/_next/static/chunks/3jgg_oe0iok0l.js +1 -0
  24. package/dist/ui/static/_next/static/chunks/3o_oia3vsam60.js +1 -0
  25. package/dist/ui/static/_next/static/chunks/3peubv2924kx4.js +1 -0
  26. package/dist/ui/static/_next/static/chunks/3wr_35f2vg6sd.css +1 -0
  27. package/dist/ui/static/_next/static/chunks/turbopack-2lg1g6kbsfm0x.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/manifest.webmanifest +2 -2
  64. package/dist/ui/static/memoriaviva/__next._full.txt +17 -0
  65. package/dist/ui/static/memoriaviva/__next._head.txt +6 -0
  66. package/dist/ui/static/memoriaviva/__next._index.txt +5 -0
  67. package/dist/ui/static/memoriaviva/__next._tree.txt +2 -0
  68. package/dist/ui/static/memoriaviva/__next.memoriaviva.__PAGE__.txt +6 -0
  69. package/dist/ui/static/memoriaviva/__next.memoriaviva.txt +5 -0
  70. package/dist/ui/static/memoriaviva/consolidation/__next._full.txt +17 -0
  71. package/dist/ui/static/memoriaviva/consolidation/__next._head.txt +6 -0
  72. package/dist/ui/static/memoriaviva/consolidation/__next._index.txt +5 -0
  73. package/dist/ui/static/memoriaviva/consolidation/__next._tree.txt +2 -0
  74. package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.consolidation.__PAGE__.txt +6 -0
  75. package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.consolidation.txt +5 -0
  76. package/dist/ui/static/memoriaviva/consolidation/__next.memoriaviva.txt +5 -0
  77. package/dist/ui/static/memoriaviva/consolidation.html +1 -1
  78. package/dist/ui/static/memoriaviva/consolidation.txt +15 -15
  79. package/dist/ui/static/memoriaviva/detail/__next._full.txt +17 -0
  80. package/dist/ui/static/memoriaviva/detail/__next._head.txt +6 -0
  81. package/dist/ui/static/memoriaviva/detail/__next._index.txt +5 -0
  82. package/dist/ui/static/memoriaviva/detail/__next._tree.txt +2 -0
  83. package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.detail.__PAGE__.txt +6 -0
  84. package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.detail.txt +5 -0
  85. package/dist/ui/static/memoriaviva/detail/__next.memoriaviva.txt +5 -0
  86. package/dist/ui/static/memoriaviva/detail.html +1 -1
  87. package/dist/ui/static/memoriaviva/detail.txt +14 -14
  88. package/dist/ui/static/memoriaviva/review-queue/__next._full.txt +17 -0
  89. package/dist/ui/static/memoriaviva/review-queue/__next._head.txt +6 -0
  90. package/dist/ui/static/memoriaviva/review-queue/__next._index.txt +5 -0
  91. package/dist/ui/static/memoriaviva/review-queue/__next._tree.txt +2 -0
  92. package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.review-queue.__PAGE__.txt +6 -0
  93. package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.review-queue.txt +5 -0
  94. package/dist/ui/static/memoriaviva/review-queue/__next.memoriaviva.txt +5 -0
  95. package/dist/ui/static/memoriaviva/review-queue.html +1 -1
  96. package/dist/ui/static/memoriaviva/review-queue.txt +15 -15
  97. package/dist/ui/static/memoriaviva.html +1 -1
  98. package/dist/ui/static/memoriaviva.txt +14 -14
  99. package/node_modules/@oscharko-dev/keiko-cli/dist/.tsbuildinfo +1 -1
  100. package/node_modules/@oscharko-dev/keiko-cli/dist/evaluate.d.ts.map +1 -1
  101. package/node_modules/@oscharko-dev/keiko-cli/dist/evaluate.js +61 -2
  102. package/node_modules/@oscharko-dev/keiko-cli/dist/evidence.d.ts.map +1 -1
  103. package/node_modules/@oscharko-dev/keiko-cli/dist/evidence.js +65 -21
  104. package/node_modules/@oscharko-dev/keiko-cli/dist/launcher-platforms.js +3 -3
  105. package/node_modules/@oscharko-dev/keiko-cli/dist/lifecycle.d.ts +2 -0
  106. package/node_modules/@oscharko-dev/keiko-cli/dist/lifecycle.d.ts.map +1 -1
  107. package/node_modules/@oscharko-dev/keiko-cli/dist/lifecycle.js +51 -10
  108. package/node_modules/@oscharko-dev/keiko-cli/dist/ui.d.ts +3 -1
  109. package/node_modules/@oscharko-dev/keiko-cli/dist/ui.d.ts.map +1 -1
  110. package/node_modules/@oscharko-dev/keiko-cli/dist/ui.js +128 -38
  111. package/node_modules/@oscharko-dev/keiko-cli/package.json +2 -2
  112. package/node_modules/@oscharko-dev/keiko-contracts/dist/.tsbuildinfo +1 -1
  113. package/node_modules/@oscharko-dev/keiko-contracts/dist/bff-wire.d.ts +20 -1
  114. package/node_modules/@oscharko-dev/keiko-contracts/dist/bff-wire.d.ts.map +1 -1
  115. package/node_modules/@oscharko-dev/keiko-contracts/dist/connected-context.d.ts +1 -1
  116. package/node_modules/@oscharko-dev/keiko-contracts/dist/connected-context.d.ts.map +1 -1
  117. package/node_modules/@oscharko-dev/keiko-contracts/dist/connected-context.js +256 -75
  118. package/node_modules/@oscharko-dev/keiko-contracts/dist/evidence.d.ts +11 -0
  119. package/node_modules/@oscharko-dev/keiko-contracts/dist/evidence.d.ts.map +1 -1
  120. package/node_modules/@oscharko-dev/keiko-contracts/dist/index.d.ts +7 -7
  121. package/node_modules/@oscharko-dev/keiko-contracts/dist/index.d.ts.map +1 -1
  122. package/node_modules/@oscharko-dev/keiko-contracts/dist/index.js +4 -4
  123. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-records.d.ts +11 -0
  124. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-records.d.ts.map +1 -1
  125. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-records.js +4 -0
  126. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-schema.d.ts +1 -1
  127. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-schema.d.ts.map +1 -1
  128. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-schema.js +109 -4
  129. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-validation.d.ts +2 -0
  130. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-validation.d.ts.map +1 -1
  131. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge-validation.js +94 -7
  132. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge.d.ts +5 -0
  133. package/node_modules/@oscharko-dev/keiko-contracts/dist/local-knowledge.d.ts.map +1 -1
  134. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/bffWire.d.ts +15 -0
  135. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/bffWire.d.ts.map +1 -1
  136. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/bffWire.js +1 -1
  137. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/ids.d.ts.map +1 -1
  138. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/ids.js +3 -0
  139. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/index.d.ts +1 -1
  140. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/index.d.ts.map +1 -1
  141. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/sourceEnvelope.d.ts +14 -0
  142. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/sourceEnvelope.d.ts.map +1 -1
  143. package/node_modules/@oscharko-dev/keiko-contracts/dist/qualityIntelligence/sourceEnvelope.js +53 -5
  144. package/node_modules/@oscharko-dev/keiko-contracts/package.json +2 -2
  145. package/node_modules/@oscharko-dev/keiko-evaluations/dist/.tsbuildinfo +1 -1
  146. package/node_modules/@oscharko-dev/keiko-evaluations/dist/runner.d.ts.map +1 -1
  147. package/node_modules/@oscharko-dev/keiko-evaluations/dist/runner.js +11 -3
  148. package/node_modules/@oscharko-dev/keiko-evaluations/package.json +2 -2
  149. package/node_modules/@oscharko-dev/keiko-evidence/dist/.tsbuildinfo +1 -1
  150. package/node_modules/@oscharko-dev/keiko-evidence/dist/connected-context-evidence.d.ts +20 -1
  151. package/node_modules/@oscharko-dev/keiko-evidence/dist/connected-context-evidence.d.ts.map +1 -1
  152. package/node_modules/@oscharko-dev/keiko-evidence/dist/connected-context-evidence.js +34 -2
  153. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/candidatesArtifact.d.ts +1 -0
  154. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/candidatesArtifact.d.ts.map +1 -1
  155. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/candidatesArtifact.js +3 -1
  156. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/companionStore.d.ts +17 -0
  157. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/companionStore.d.ts.map +1 -1
  158. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/companionStore.js +19 -0
  159. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.d.ts +5 -1
  160. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/schema.d.ts.map +1 -1
  161. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.d.ts +32 -2
  162. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.d.ts.map +1 -1
  163. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/figmaSnapshot/store.js +259 -40
  164. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/retention.d.ts +3 -0
  165. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/retention.d.ts.map +1 -1
  166. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/retention.js +48 -5
  167. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/store.d.ts.map +1 -1
  168. package/node_modules/@oscharko-dev/keiko-evidence/dist/qualityIntelligence/store.js +30 -13
  169. package/node_modules/@oscharko-dev/keiko-evidence/dist/types.d.ts +1 -1
  170. package/node_modules/@oscharko-dev/keiko-evidence/dist/types.d.ts.map +1 -1
  171. package/node_modules/@oscharko-dev/keiko-evidence/package.json +2 -2
  172. package/node_modules/@oscharko-dev/keiko-harness/dist/.tsbuildinfo +1 -1
  173. package/node_modules/@oscharko-dev/keiko-harness/package.json +2 -2
  174. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/.tsbuildinfo +1 -1
  175. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-lifecycle.d.ts.map +1 -1
  176. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-lifecycle.js +25 -1
  177. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-set-lifecycle.d.ts +1 -1
  178. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-set-lifecycle.d.ts.map +1 -1
  179. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/capsule-set-lifecycle.js +16 -0
  180. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker-persist.d.ts +3 -1
  181. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker-persist.d.ts.map +1 -1
  182. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker-persist.js +9 -5
  183. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker-runner.d.ts.map +1 -1
  184. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker-runner.js +22 -7
  185. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker.d.ts +4 -1
  186. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker.d.ts.map +1 -1
  187. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/chunker.js +61 -9
  188. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/citation-mapper.d.ts.map +1 -1
  189. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/citation-mapper.js +64 -36
  190. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/index.d.ts +2 -2
  191. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/index.d.ts.map +1 -1
  192. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/index.js +2 -2
  193. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/types.d.ts +7 -1
  194. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/types.d.ts.map +1 -1
  195. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/chunking/types.js +5 -1
  196. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/composition.d.ts +1 -1
  197. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/composition.d.ts.map +1 -1
  198. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/composition.js +27 -4
  199. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/model-gateway-answer-generator.d.ts +5 -1
  200. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/model-gateway-answer-generator.d.ts.map +1 -1
  201. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/conversation/model-gateway-answer-generator.js +18 -5
  202. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/discovery-runner.d.ts.map +1 -1
  203. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/discovery-runner.js +10 -1
  204. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/extract.d.ts +4 -1
  205. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/extract.d.ts.map +1 -1
  206. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/extract.js +370 -45
  207. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/test-support.d.ts +2 -0
  208. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/test-support.d.ts.map +1 -1
  209. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/test-support.js +8 -4
  210. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/types.d.ts +1 -1
  211. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/types.d.ts.map +1 -1
  212. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/types.js +10 -5
  213. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/walk.d.ts.map +1 -1
  214. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/discovery/walk.js +65 -20
  215. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/fixtures.d.ts +1 -0
  216. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/fixtures.d.ts.map +1 -1
  217. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/fixtures.js +79 -0
  218. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/index.d.ts +1 -1
  219. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/index.d.ts.map +1 -1
  220. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/index.js +1 -1
  221. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/runner-seed.d.ts.map +1 -1
  222. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/evaluations/runner-seed.js +4 -0
  223. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/index.d.ts +6 -5
  224. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/index.d.ts.map +1 -1
  225. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/index.js +4 -4
  226. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/embedding-batcher.d.ts.map +1 -1
  227. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/embedding-batcher.js +71 -29
  228. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/orchestrator.d.ts.map +1 -1
  229. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/orchestrator.js +258 -132
  230. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/types.d.ts +12 -0
  231. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/types.d.ts.map +1 -1
  232. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/vector-persist.d.ts.map +1 -1
  233. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/indexing/vector-persist.js +9 -0
  234. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/_internal.d.ts +3 -1
  235. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/_internal.d.ts.map +1 -1
  236. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/_internal.js +13 -1
  237. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/docx-parser.d.ts.map +1 -1
  238. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/docx-parser.js +86 -46
  239. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/index.d.ts +1 -1
  240. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/index.d.ts.map +1 -1
  241. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/index.js +1 -1
  242. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/json-parser.d.ts.map +1 -1
  243. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/json-parser.js +50 -22
  244. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/pdf-parser.d.ts +21 -1
  245. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/pdf-parser.d.ts.map +1 -1
  246. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/pdf-parser.js +93 -14
  247. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/registry.d.ts.map +1 -1
  248. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/registry.js +3 -1
  249. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/types.d.ts +7 -2
  250. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/types.d.ts.map +1 -1
  251. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/parsers/types.js +7 -3
  252. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/audit-emitter.js +8 -0
  253. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/diagnostic-redactor.d.ts.map +1 -1
  254. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/diagnostic-redactor.js +17 -10
  255. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/retention-applier.d.ts.map +1 -1
  256. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/retention-applier.js +7 -0
  257. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/types.d.ts +4 -0
  258. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/privacy/types.d.ts.map +1 -1
  259. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/retrieval-runner.js +1 -1
  260. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/scoped-vector-search.d.ts +1 -0
  261. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/scoped-vector-search.d.ts.map +1 -1
  262. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/retrieval/scoped-vector-search.js +318 -32
  263. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/source-lifecycle.d.ts +1 -1
  264. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/source-lifecycle.d.ts.map +1 -1
  265. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/source-lifecycle.js +46 -16
  266. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/store.d.ts +14 -0
  267. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/store.d.ts.map +1 -1
  268. package/node_modules/@oscharko-dev/keiko-local-knowledge/dist/store.js +26 -1
  269. package/node_modules/@oscharko-dev/keiko-local-knowledge/package.json +10 -5
  270. package/node_modules/@oscharko-dev/keiko-memory-capture/dist/.tsbuildinfo +1 -1
  271. package/node_modules/@oscharko-dev/keiko-memory-capture/package.json +2 -2
  272. package/node_modules/@oscharko-dev/keiko-memory-consolidation/dist/.tsbuildinfo +1 -1
  273. package/node_modules/@oscharko-dev/keiko-memory-consolidation/package.json +2 -2
  274. package/node_modules/@oscharko-dev/keiko-memory-governance/dist/.tsbuildinfo +1 -1
  275. package/node_modules/@oscharko-dev/keiko-memory-governance/package.json +2 -2
  276. package/node_modules/@oscharko-dev/keiko-memory-retrieval/dist/.tsbuildinfo +1 -1
  277. package/node_modules/@oscharko-dev/keiko-memory-retrieval/package.json +2 -2
  278. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/.tsbuildinfo +1 -1
  279. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/paths.d.ts.map +1 -1
  280. package/node_modules/@oscharko-dev/keiko-memory-vault/dist/paths.js +11 -5
  281. package/node_modules/@oscharko-dev/keiko-memory-vault/package.json +2 -2
  282. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/.tsbuildinfo +1 -1
  283. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/config.d.ts +2 -1
  284. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/config.d.ts.map +1 -1
  285. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/config.js +50 -0
  286. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/http.d.ts +3 -0
  287. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/http.d.ts.map +1 -1
  288. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/http.js +114 -44
  289. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/dispatcher.d.ts +14 -0
  290. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/dispatcher.d.ts.map +1 -1
  291. package/node_modules/@oscharko-dev/keiko-model-gateway/dist/qualityIntelligence/dispatcher.js +14 -0
  292. package/node_modules/@oscharko-dev/keiko-model-gateway/package.json +2 -2
  293. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/.tsbuildinfo +1 -1
  294. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/a11yBaseline.d.ts.map +1 -1
  295. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/a11yBaseline.js +9 -2
  296. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/cleanToScreenIr.js +1 -1
  297. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/emissionPlan.d.ts +9 -1
  298. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/emissionPlan.d.ts.map +1 -1
  299. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/emissionPlan.js +9 -1
  300. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/htmlCssAdapter.d.ts +5 -0
  301. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/htmlCssAdapter.d.ts.map +1 -1
  302. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/htmlCssAdapter.js +229 -33
  303. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/irTypes.d.ts +62 -0
  304. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/irTypes.d.ts.map +1 -1
  305. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/links.d.ts.map +1 -1
  306. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/links.js +24 -4
  307. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/navGraph.d.ts +4 -2
  308. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/navGraph.d.ts.map +1 -1
  309. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/navGraph.js +0 -0
  310. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/normalize.d.ts.map +1 -1
  311. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/normalize.js +119 -5
  312. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/prune.d.ts +2 -1
  313. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/prune.d.ts.map +1 -1
  314. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/prune.js +26 -11
  315. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.d.ts.map +1 -1
  316. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/screenIrTestBaseline.js +86 -9
  317. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/tokens.d.ts.map +1 -1
  318. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/figma/tokens.js +10 -3
  319. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/validation.d.ts.map +1 -1
  320. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/domain/validation.js +14 -12
  321. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/ingestion/sourceMixPlanning.js +0 -0
  322. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/ingestion/untrustedContentNormalisation.d.ts +1 -1
  323. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/ingestion/untrustedContentNormalisation.d.ts.map +1 -1
  324. package/node_modules/@oscharko-dev/keiko-quality-intelligence/dist/ingestion/untrustedContentNormalisation.js +9 -1
  325. package/node_modules/@oscharko-dev/keiko-quality-intelligence/package.json +2 -2
  326. package/node_modules/@oscharko-dev/keiko-sdk/dist/.tsbuildinfo +1 -1
  327. package/node_modules/@oscharko-dev/keiko-sdk/package.json +2 -2
  328. package/node_modules/@oscharko-dev/keiko-security/dist/.tsbuildinfo +1 -1
  329. package/node_modules/@oscharko-dev/keiko-security/dist/redaction.d.ts.map +1 -1
  330. package/node_modules/@oscharko-dev/keiko-security/dist/redaction.js +4 -2
  331. package/node_modules/@oscharko-dev/keiko-security/package.json +2 -2
  332. package/node_modules/@oscharko-dev/keiko-server/dist/.tsbuildinfo +1 -1
  333. package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.d.ts.map +1 -1
  334. package/node_modules/@oscharko-dev/keiko-server/dist/chat-handlers.js +6 -1
  335. package/node_modules/@oscharko-dev/keiko-server/dist/deps.d.ts +2 -0
  336. package/node_modules/@oscharko-dev/keiko-server/dist/deps.d.ts.map +1 -1
  337. package/node_modules/@oscharko-dev/keiko-server/dist/deps.js +62 -12
  338. package/node_modules/@oscharko-dev/keiko-server/dist/evidence.d.ts +1 -1
  339. package/node_modules/@oscharko-dev/keiko-server/dist/evidence.d.ts.map +1 -1
  340. package/node_modules/@oscharko-dev/keiko-server/dist/evidence.js +4 -3
  341. package/node_modules/@oscharko-dev/keiko-server/dist/files.d.ts +18 -3
  342. package/node_modules/@oscharko-dev/keiko-server/dist/files.d.ts.map +1 -1
  343. package/node_modules/@oscharko-dev/keiko-server/dist/files.js +208 -72
  344. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-answer.d.ts.map +1 -1
  345. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-answer.js +7 -2
  346. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-context-index.d.ts +3 -0
  347. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-context-index.d.ts.map +1 -1
  348. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-context-index.js +27 -4
  349. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-handoff.d.ts.map +1 -1
  350. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-handoff.js +46 -14
  351. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.d.ts +1 -0
  352. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.d.ts.map +1 -1
  353. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-orchestrator.js +433 -31
  354. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-prompt.d.ts.map +1 -1
  355. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-prompt.js +5 -3
  356. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-hybrid.d.ts +9 -0
  357. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-hybrid.d.ts.map +1 -1
  358. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-hybrid.js +194 -45
  359. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-multi-source.d.ts +4 -0
  360. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-multi-source.d.ts.map +1 -1
  361. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa-multi-source.js +100 -24
  362. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa.d.ts +7 -0
  363. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa.d.ts.map +1 -1
  364. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-qa.js +196 -20
  365. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-turn-registry.d.ts.map +1 -1
  366. package/node_modules/@oscharko-dev/keiko-server/dist/grounded-turn-registry.js +21 -1
  367. package/node_modules/@oscharko-dev/keiko-server/dist/index.d.ts +1 -1
  368. package/node_modules/@oscharko-dev/keiko-server/dist/index.d.ts.map +1 -1
  369. package/node_modules/@oscharko-dev/keiko-server/dist/index.js +1 -1
  370. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.d.ts +9 -6
  371. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.d.ts.map +1 -1
  372. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-grounded-qa.js +189 -66
  373. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-handlers.d.ts.map +1 -1
  374. package/node_modules/@oscharko-dev/keiko-server/dist/local-knowledge-handlers.js +198 -72
  375. package/node_modules/@oscharko-dev/keiko-server/dist/memory-handlers.d.ts +1 -1
  376. package/node_modules/@oscharko-dev/keiko-server/dist/memory-handlers.d.ts.map +1 -1
  377. package/node_modules/@oscharko-dev/keiko-server/dist/memory-handlers.js +6 -5
  378. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorErrors.d.ts +10 -2
  379. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorErrors.d.ts.map +1 -1
  380. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaConnectorErrors.js +110 -30
  381. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaHttpPort.d.ts +13 -4
  382. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaHttpPort.d.ts.map +1 -1
  383. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaHttpPort.js +29 -17
  384. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaRenderPort.d.ts +13 -3
  385. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaRenderPort.d.ts.map +1 -1
  386. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaRenderPort.js +54 -5
  387. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotBuilder.d.ts.map +1 -1
  388. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotBuilder.js +84 -12
  389. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotHash.d.ts.map +1 -1
  390. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotHash.js +16 -8
  391. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotTypes.d.ts +6 -2
  392. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figma/figmaSnapshotTypes.d.ts.map +1 -1
  393. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotAdapter.d.ts +13 -1
  394. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotAdapter.d.ts.map +1 -1
  395. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotAdapter.js +15 -2
  396. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotOrchestration.d.ts +9 -0
  397. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotOrchestration.d.ts.map +1 -1
  398. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotOrchestration.js +2 -2
  399. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.d.ts +9 -1
  400. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.d.ts.map +1 -1
  401. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/figmaSnapshotRoutes.js +138 -19
  402. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/generationPort.d.ts.map +1 -1
  403. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/generationPort.js +26 -7
  404. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/judgePort.d.ts.map +1 -1
  405. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/judgePort.js +26 -7
  406. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reCheckRoutes.d.ts.map +1 -1
  407. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/reCheckRoutes.js +28 -5
  408. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runExecution.d.ts.map +1 -1
  409. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runExecution.js +11 -0
  410. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.d.ts.map +1 -1
  411. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runIngestion.js +90 -19
  412. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.d.ts +4 -1
  413. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.d.ts.map +1 -1
  414. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/runRoutes.js +17 -3
  415. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/uiRoutes.d.ts.map +1 -1
  416. package/node_modules/@oscharko-dev/keiko-server/dist/qualityIntelligence/uiRoutes.js +19 -2
  417. package/node_modules/@oscharko-dev/keiko-server/dist/routes.d.ts.map +1 -1
  418. package/node_modules/@oscharko-dev/keiko-server/dist/routes.js +4 -2
  419. package/node_modules/@oscharko-dev/keiko-server/dist/run-engine.d.ts.map +1 -1
  420. package/node_modules/@oscharko-dev/keiko-server/dist/run-engine.js +6 -1
  421. package/node_modules/@oscharko-dev/keiko-server/dist/store/chats.d.ts +2 -2
  422. package/node_modules/@oscharko-dev/keiko-server/dist/store/chats.d.ts.map +1 -1
  423. package/node_modules/@oscharko-dev/keiko-server/dist/store/chats.js +84 -8
  424. package/node_modules/@oscharko-dev/keiko-server/dist/store/db.d.ts.map +1 -1
  425. package/node_modules/@oscharko-dev/keiko-server/dist/store/db.js +4 -2
  426. package/node_modules/@oscharko-dev/keiko-server/dist/store/index.d.ts +1 -1
  427. package/node_modules/@oscharko-dev/keiko-server/dist/store/index.d.ts.map +1 -1
  428. package/node_modules/@oscharko-dev/keiko-server/dist/store/paths.d.ts.map +1 -1
  429. package/node_modules/@oscharko-dev/keiko-server/dist/store/paths.js +9 -2
  430. package/node_modules/@oscharko-dev/keiko-server/dist/store/types.d.ts +5 -1
  431. package/node_modules/@oscharko-dev/keiko-server/dist/store/types.d.ts.map +1 -1
  432. package/node_modules/@oscharko-dev/keiko-server/dist/store-handlers.d.ts.map +1 -1
  433. package/node_modules/@oscharko-dev/keiko-server/dist/store-handlers.js +67 -14
  434. package/node_modules/@oscharko-dev/keiko-server/package.json +2 -2
  435. package/node_modules/@oscharko-dev/keiko-tools/dist/.tsbuildinfo +1 -1
  436. package/node_modules/@oscharko-dev/keiko-tools/package.json +2 -2
  437. package/node_modules/@oscharko-dev/keiko-verification/dist/.tsbuildinfo +1 -1
  438. package/node_modules/@oscharko-dev/keiko-verification/package.json +2 -2
  439. package/node_modules/@oscharko-dev/keiko-workflows/dist/.tsbuildinfo +1 -1
  440. package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/assemble.d.ts +2 -0
  441. package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/assemble.d.ts.map +1 -1
  442. package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/assemble.js +45 -10
  443. package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/index.d.ts +1 -1
  444. package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/index.d.ts.map +1 -1
  445. package/node_modules/@oscharko-dev/keiko-workflows/dist/contextpack/index.js +1 -1
  446. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/plan.d.ts.map +1 -1
  447. package/node_modules/@oscharko-dev/keiko-workflows/dist/planner/plan.js +4 -6
  448. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/__tests__/fixtures/runEntryFixtures.d.ts +30 -0
  449. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/__tests__/fixtures/runEntryFixtures.d.ts.map +1 -0
  450. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/__tests__/fixtures/runEntryFixtures.js +114 -0
  451. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/modelRoutedTestDesign.d.ts.map +1 -1
  452. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/modelRoutedTestDesign.js +58 -23
  453. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runEntries.d.ts.map +1 -1
  454. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runEntries.js +15 -7
  455. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runtimeCommon.d.ts.map +1 -1
  456. package/node_modules/@oscharko-dev/keiko-workflows/dist/qualityIntelligence/runtimeCommon.js +28 -4
  457. package/node_modules/@oscharko-dev/keiko-workflows/dist/ranking/rank.d.ts.map +1 -1
  458. package/node_modules/@oscharko-dev/keiko-workflows/dist/ranking/rank.js +51 -1
  459. package/node_modules/@oscharko-dev/keiko-workflows/dist/ranking/signals.d.ts.map +1 -1
  460. package/node_modules/@oscharko-dev/keiko-workflows/dist/ranking/signals.js +8 -3
  461. package/node_modules/@oscharko-dev/keiko-workflows/package.json +2 -2
  462. package/node_modules/@oscharko-dev/keiko-workspace/dist/.tsbuildinfo +1 -1
  463. package/node_modules/@oscharko-dev/keiko-workspace/dist/fs.d.ts +1 -0
  464. package/node_modules/@oscharko-dev/keiko-workspace/dist/fs.d.ts.map +1 -1
  465. package/node_modules/@oscharko-dev/keiko-workspace/dist/fs.js +1 -0
  466. package/node_modules/@oscharko-dev/keiko-workspace/dist/gitHistory.d.ts.map +1 -1
  467. package/node_modules/@oscharko-dev/keiko-workspace/dist/gitHistory.js +84 -27
  468. package/node_modules/@oscharko-dev/keiko-workspace/dist/ignore.d.ts.map +1 -1
  469. package/node_modules/@oscharko-dev/keiko-workspace/dist/ignore.js +22 -0
  470. package/node_modules/@oscharko-dev/keiko-workspace/dist/importGraph.d.ts.map +1 -1
  471. package/node_modules/@oscharko-dev/keiko-workspace/dist/importGraph.js +6 -3
  472. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearch.d.ts.map +1 -1
  473. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearch.js +72 -25
  474. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchEntries.d.ts +15 -0
  475. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchEntries.d.ts.map +1 -0
  476. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchEntries.js +107 -0
  477. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchLineSelection.d.ts +18 -0
  478. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchLineSelection.d.ts.map +1 -0
  479. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchLineSelection.js +42 -0
  480. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.d.ts.map +1 -1
  481. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchMatchers.js +4 -11
  482. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchRegexSafety.d.ts +2 -0
  483. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchRegexSafety.d.ts.map +1 -0
  484. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchRegexSafety.js +15 -0
  485. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchScan.d.ts +2 -2
  486. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchScan.d.ts.map +1 -1
  487. package/node_modules/@oscharko-dev/keiko-workspace/dist/repoSearchScan.js +89 -75
  488. package/node_modules/@oscharko-dev/keiko-workspace/package.json +2 -2
  489. package/node_modules/@types/node/README.md +1 -1
  490. package/node_modules/@types/node/http2.d.ts +1 -0
  491. package/node_modules/@types/node/package.json +2 -2
  492. package/package.json +3 -1
  493. package/dist/ui/static/_next/static/BNiyfCos3TiM2QdurajIZ/_buildManifest.js +0 -1
  494. package/dist/ui/static/_next/static/chunks/18-ac3e3551b4e0ce8a.js +0 -1
  495. package/dist/ui/static/_next/static/chunks/664-6d821dc1aacb6b48.js +0 -1
  496. package/dist/ui/static/_next/static/chunks/87c73c54-24122e7b92478d00.js +0 -1
  497. package/dist/ui/static/_next/static/chunks/923-4141696576191bc0.js +0 -1
  498. package/dist/ui/static/_next/static/chunks/982-abc19630e6305864.js +0 -1
  499. package/dist/ui/static/_next/static/chunks/app/_not-found/page-03d642dcd0f15b52.js +0 -1
  500. package/dist/ui/static/_next/static/chunks/app/launch/page-c725ff0c02b50663.js +0 -1
  501. package/dist/ui/static/_next/static/chunks/app/layout-aadefe615729db05.js +0 -1
  502. package/dist/ui/static/_next/static/chunks/app/local-knowledge/capsule/page-4a7f242906e19a07.js +0 -1
  503. package/dist/ui/static/_next/static/chunks/app/local-knowledge/page-3361769b8964e659.js +0 -1
  504. package/dist/ui/static/_next/static/chunks/app/memoriaviva/consolidation/page-44b3f4fa3e10085f.js +0 -1
  505. package/dist/ui/static/_next/static/chunks/app/memoriaviva/detail/page-0cdfb3eeb659daeb.js +0 -1
  506. package/dist/ui/static/_next/static/chunks/app/memoriaviva/page-e78e0cd2876fec41.js +0 -1
  507. package/dist/ui/static/_next/static/chunks/app/memoriaviva/review-queue/page-e32fe86466827484.js +0 -1
  508. package/dist/ui/static/_next/static/chunks/app/page-9ad91065d05ddfa0.js +0 -1
  509. package/dist/ui/static/_next/static/chunks/framework-d8f01f7e25201916.js +0 -1
  510. package/dist/ui/static/_next/static/chunks/main-app-b52a8fa1d8127a5f.js +0 -1
  511. package/dist/ui/static/_next/static/chunks/main-bc552b04f2b6dbe2.js +0 -1
  512. package/dist/ui/static/_next/static/chunks/pages/_app-2e239ff05bfdf6d6.js +0 -1
  513. package/dist/ui/static/_next/static/chunks/pages/_error-bda15e7831eec981.js +0 -1
  514. package/dist/ui/static/_next/static/chunks/webpack-0cfe6f51555ca84e.js +0 -1
  515. package/dist/ui/static/_next/static/css/51fdcfdc624e723d.css +0 -1
  516. /package/dist/ui/static/_next/static/{BNiyfCos3TiM2QdurajIZ → Hb6brrvZY2nZtizQlYhVt}/_ssgManifest.js +0 -0
  517. /package/dist/ui/static/_next/static/chunks/{polyfills-42372ed130431b0a.js → 0cz1d0mv5g_q7.js} +0 -0
@@ -14,9 +14,12 @@
14
14
  // 6. Inside a single transaction: REPLACEs the documents row, deletes prior dependent
15
15
  // rows, then inserts the new pages/sections/parsed_units/diagnostics.
16
16
  import { createHash } from "node:crypto";
17
+ import { isSafeScopePath } from "@oscharko-dev/keiko-contracts";
18
+ import { isDenied } from "@oscharko-dev/keiko-workspace";
17
19
  import { buildParserOptions, unsupportedParser } from "../parsers/index.js";
18
20
  import { redactDiagnosticMessage } from "../privacy/diagnostic-redactor.js";
19
21
  import { basenameOf, extensionOf, mediaTypeFor } from "./media-type.js";
22
+ import { compileGlobList, matchesAny } from "./glob.js";
20
23
  import { deleteDependentRows, insertDiagnosticRow, insertDocumentRow, insertDocumentTextRow, insertPageRow, insertParsedUnitRow, insertSectionRow, readExistingDocumentRow, } from "./persist.js";
21
24
  import { documentIdFor, } from "./types.js";
22
25
  // ─── Path helpers (re-derived to keep extract.ts self-contained for the realpath gate) ──
@@ -39,6 +42,14 @@ function joinAbs(root, rel) {
39
42
  return `${root}${rel}`;
40
43
  return `${root}/${rel}`;
41
44
  }
45
+ function toPosixRelative(absoluteRoot, absolutePath) {
46
+ const normRoot = normaliseSep(absoluteRoot);
47
+ const normPath = normaliseSep(absolutePath);
48
+ if (normPath === normRoot)
49
+ return "";
50
+ const prefix = normRoot.endsWith("/") ? normRoot : `${normRoot}/`;
51
+ return normPath.startsWith(prefix) ? normPath.slice(prefix.length) : normPath;
52
+ }
42
53
  function scopeRoot(source) {
43
54
  const { scope } = source;
44
55
  if (scope.kind === "folder")
@@ -54,6 +65,24 @@ function safeDisplay(relativePath) {
54
65
  const base = basenameOf(relativePath);
55
66
  return base.length === 0 ? relativePath : base;
56
67
  }
68
+ function safeRelativePath(relativePath) {
69
+ const normalised = normaliseSep(relativePath);
70
+ if (normalised.startsWith("/")) {
71
+ return {
72
+ code: "INVALID_SCOPE",
73
+ message: "file path failed the selected-scope policy",
74
+ relativePath,
75
+ };
76
+ }
77
+ if (!isSafeScopePath(normalised)) {
78
+ return {
79
+ code: "INVALID_SCOPE",
80
+ message: "file path failed the selected-scope policy",
81
+ relativePath,
82
+ };
83
+ }
84
+ return normalised;
85
+ }
57
86
  function redactionPrefixFor(source) {
58
87
  return scopeRoot(source);
59
88
  }
@@ -76,7 +105,40 @@ function redactParserResult(parserResult, source) {
76
105
  };
77
106
  }
78
107
  // ─── Failure / unsupported helpers ───────────────────────────────────────────
79
- function buildFailureResult(params, documentId, error) {
108
+ function persistFailureRow(deps, params, documentId, document, diagnostic, now) {
109
+ const db = deps.store._internal.db;
110
+ db.exec("BEGIN");
111
+ try {
112
+ insertDocumentRow(db, {
113
+ id: documentId,
114
+ capsuleId: params.capsuleId,
115
+ sourceId: String(params.source.id),
116
+ documentPath: document.documentPath,
117
+ sizeBytes: document.sizeBytes,
118
+ mediaType: document.mediaType,
119
+ contentHash: document.contentHash,
120
+ parserId: document.parser.parserId,
121
+ parserVersion: document.parser.parserVersion,
122
+ lastExtractedAt: document.lastExtractedAt,
123
+ status: document.status,
124
+ safeDisplayName: document.safeDisplayName,
125
+ });
126
+ deleteDependentRows(db, params.capsuleId, documentId);
127
+ insertDiagnosticRow(db, {
128
+ id: `${String(documentId)}#d0`,
129
+ capsuleId: params.capsuleId,
130
+ diagnostic,
131
+ createdAt: now(),
132
+ });
133
+ db.exec("COMMIT");
134
+ }
135
+ catch (cause) {
136
+ db.exec("ROLLBACK");
137
+ throw cause;
138
+ }
139
+ }
140
+ function buildFailureResult(deps, params, documentId, error, options = { persist: true }) {
141
+ const now = deps.store._internal.now;
80
142
  const redactedMessage = redactMessage(error.message, params.source);
81
143
  const diagnostic = {
82
144
  severity: "error",
@@ -93,14 +155,17 @@ function buildFailureResult(params, documentId, error) {
93
155
  mediaType: mediaTypeFor(extensionOf(params.file.relativePath)),
94
156
  contentHash: "",
95
157
  parser: { parserId: "none", parserVersion: "0" },
96
- lastExtractedAt: 0,
158
+ lastExtractedAt: now(),
97
159
  status: "failed",
98
160
  safeDisplayName: safeDisplay(params.file.relativePath),
99
161
  };
162
+ if (options.persist) {
163
+ persistFailureRow(deps, params, documentId, document, diagnostic, now);
164
+ }
100
165
  const outcome = {
101
166
  kind: "failed",
102
167
  document,
103
- error: { ...error, message: redactedMessage },
168
+ error: { ...error, message: redactedMessage, relativePath: params.file.relativePath },
104
169
  };
105
170
  return {
106
171
  capsuleId: params.capsuleId,
@@ -174,43 +239,207 @@ function persistDocumentAndDependents(deps, params, documentId, document, parser
174
239
  throw cause;
175
240
  }
176
241
  }
242
+ const HIDDEN_OR_GENERATED_DIRS = new Set([
243
+ ".git",
244
+ ".hg",
245
+ ".svn",
246
+ ".next",
247
+ ".turbo",
248
+ "node_modules",
249
+ "dist",
250
+ "build",
251
+ "coverage",
252
+ "out",
253
+ ]);
254
+ function deriveScopePolicy(scope) {
255
+ if (scope.kind === "folder") {
256
+ if (!isSafeScopePath(scope.rootPath)) {
257
+ return { code: "INVALID_SCOPE", message: "scope.rootPath failed the safe-path gate" };
258
+ }
259
+ return {
260
+ rootPath: scope.rootPath,
261
+ recursive: scope.recursive,
262
+ includeGlobs: compileGlobList(scope.includeGlobs),
263
+ excludeGlobs: compileGlobList(scope.excludeGlobs),
264
+ };
265
+ }
266
+ if (scope.kind === "repository") {
267
+ if (!isSafeScopePath(scope.repositoryRoot)) {
268
+ return { code: "INVALID_SCOPE", message: "scope.repositoryRoot failed the safe-path gate" };
269
+ }
270
+ return {
271
+ rootPath: scope.repositoryRoot,
272
+ recursive: true,
273
+ includeGlobs: compileGlobList(scope.includeGlobs),
274
+ excludeGlobs: compileGlobList(scope.excludeGlobs),
275
+ };
276
+ }
277
+ if (!isSafeScopePath(scope.rootPath)) {
278
+ return { code: "INVALID_SCOPE", message: "scope.rootPath failed the safe-path gate" };
279
+ }
280
+ const explicitFiles = new Set();
281
+ for (const entry of scope.files) {
282
+ const safeEntry = safeRelativePath(entry);
283
+ if (typeof safeEntry !== "string") {
284
+ return {
285
+ code: "INVALID_SCOPE",
286
+ message: `scope.files entry failed the safe-path gate: ${entry}`,
287
+ };
288
+ }
289
+ explicitFiles.add(safeEntry);
290
+ }
291
+ return {
292
+ rootPath: scope.rootPath,
293
+ recursive: false,
294
+ includeGlobs: [],
295
+ excludeGlobs: [],
296
+ explicitFiles,
297
+ };
298
+ }
299
+ function matchesSourceGlobs(policy, relativePath) {
300
+ if (matchesAny(policy.excludeGlobs, relativePath, false))
301
+ return false;
302
+ return matchesAny(policy.includeGlobs, relativePath, true);
303
+ }
304
+ function hasHiddenOrGeneratedParent(relativePath) {
305
+ const segments = relativePath.split("/").filter((segment) => segment.length > 0);
306
+ for (const segment of segments.slice(0, -1)) {
307
+ if (segment.startsWith(".") || HIDDEN_OR_GENERATED_DIRS.has(segment))
308
+ return true;
309
+ }
310
+ return false;
311
+ }
312
+ function isSelectedByScope(policy, relativePath) {
313
+ if (isDenied(relativePath))
314
+ return false;
315
+ if (policy.explicitFiles !== undefined)
316
+ return policy.explicitFiles.has(relativePath);
317
+ if (!policy.recursive && relativePath.includes("/"))
318
+ return false;
319
+ if (hasHiddenOrGeneratedParent(relativePath))
320
+ return false;
321
+ return matchesSourceGlobs(policy, relativePath);
322
+ }
323
+ function targetError(error, persistFailure) {
324
+ return { error, persistFailure };
325
+ }
326
+ function selectedRelativePath(policy, rawRelativePath) {
327
+ const relativePath = safeRelativePath(rawRelativePath);
328
+ if (typeof relativePath !== "string") {
329
+ return targetError(relativePath, false);
330
+ }
331
+ if (!isSelectedByScope(policy, relativePath)) {
332
+ return targetError({
333
+ code: "INVALID_SCOPE",
334
+ message: "file is outside the selected source scope",
335
+ relativePath,
336
+ }, false);
337
+ }
338
+ return relativePath;
339
+ }
177
340
  function resolveTargetPath(deps, params) {
178
- const root = scopeRoot(params.source);
179
- const absolute = joinAbs(root, params.file.relativePath);
341
+ const policy = deriveScopePolicy(params.source.scope);
342
+ if ("code" in policy) {
343
+ return targetError(policy, false);
344
+ }
345
+ const relativePath = selectedRelativePath(policy, params.file.relativePath);
346
+ if (typeof relativePath !== "string") {
347
+ return relativePath;
348
+ }
349
+ const root = policy.rootPath;
350
+ const absolute = joinAbs(root, relativePath);
180
351
  let real;
181
352
  try {
182
353
  real = deps.fs.realPath(absolute);
183
354
  }
184
- catch (cause) {
355
+ catch {
356
+ return targetError({
357
+ code: "READ_FAILED",
358
+ message: "realPath failed for selected file",
359
+ relativePath,
360
+ }, true);
361
+ }
362
+ if (!isContained(root, real)) {
363
+ return targetError({
364
+ code: "PATH_ESCAPE",
365
+ message: `realpath escapes scope root: ${relativePath}`,
366
+ relativePath,
367
+ }, true);
368
+ }
369
+ const realRelativePath = toPosixRelative(root, real);
370
+ if (isDenied(realRelativePath)) {
371
+ return targetError({
372
+ code: "READ_FAILED",
373
+ message: "resolved file is denied by workspace policy",
374
+ relativePath,
375
+ }, true);
376
+ }
377
+ // Normalise to forward slashes so subsequent IO calls (readFileBytes, stat) receive
378
+ // a consistent path even when realPath returned a Windows backslash path.
379
+ return { absolutePath: normaliseSep(real), requestedAbsolutePath: absolute, relativePath };
380
+ }
381
+ function validateRequestedTarget(deps, params, target) {
382
+ try {
383
+ deps.fs.stat(target.requestedAbsolutePath);
384
+ return undefined;
385
+ }
386
+ catch {
387
+ return {
388
+ code: "STAT_FAILED",
389
+ message: "stat failed for selected file",
390
+ relativePath: params.file.relativePath,
391
+ };
392
+ }
393
+ }
394
+ function validateResolvedTarget(deps, params, target) {
395
+ try {
396
+ const realStat = deps.fs.stat(target.absolutePath);
397
+ if (!realStat.isFile) {
398
+ return {
399
+ code: "READ_FAILED",
400
+ message: "selected path is not a file",
401
+ relativePath: params.file.relativePath,
402
+ };
403
+ }
404
+ if (realStat.hardLinkCount === undefined || realStat.hardLinkCount <= 1)
405
+ return undefined;
185
406
  return {
186
407
  code: "READ_FAILED",
187
- message: `realPath failed: ${cause instanceof Error ? cause.message : String(cause)}`,
408
+ message: "selected file is not eligible for extraction",
188
409
  relativePath: params.file.relativePath,
189
410
  };
190
411
  }
191
- if (!isContained(root, real)) {
412
+ catch {
192
413
  return {
193
- code: "PATH_ESCAPE",
194
- message: `realpath escapes scope root: ${params.file.relativePath}`,
414
+ code: "STAT_FAILED",
415
+ message: "stat failed for selected file",
195
416
  relativePath: params.file.relativePath,
196
417
  };
197
418
  }
198
- // Normalise to forward slashes so subsequent IO calls (readFileBytes, stat) receive
199
- // a consistent path even when realPath returned a Windows backslash path.
200
- return { absolutePath: normaliseSep(real) };
201
419
  }
202
- async function readBytes(deps, absolutePath, maxBytes) {
420
+ async function readBytes(deps, params, target, maxBytes) {
203
421
  const reader = deps.fs.readFileBytes;
204
422
  if (reader === undefined) {
205
- return { code: "READ_FAILED", message: "WorkspaceFs.readFileBytes is unavailable" };
423
+ return {
424
+ code: "READ_FAILED",
425
+ message: "WorkspaceFs.readFileBytes is unavailable",
426
+ relativePath: params.file.relativePath,
427
+ };
206
428
  }
429
+ const requestedError = validateRequestedTarget(deps, params, target);
430
+ if (requestedError !== undefined)
431
+ return requestedError;
432
+ const resolvedError = validateResolvedTarget(deps, params, target);
433
+ if (resolvedError !== undefined)
434
+ return resolvedError;
207
435
  try {
208
- return await reader(absolutePath, maxBytes);
436
+ return await reader(target.absolutePath, maxBytes);
209
437
  }
210
- catch (cause) {
438
+ catch {
211
439
  return {
212
440
  code: "READ_FAILED",
213
- message: `readFileBytes failed: ${cause instanceof Error ? cause.message : String(cause)}`,
441
+ message: "readFileBytes failed for selected file",
442
+ relativePath: params.file.relativePath,
214
443
  };
215
444
  }
216
445
  }
@@ -261,8 +490,44 @@ function isUnsupportedResult(result) {
261
490
  return (result.parser.parserId === "unsupported" ||
262
491
  (result.units.length > 0 && result.units.every((unit) => unit.kind === "unsupported-media")));
263
492
  }
493
+ const FAILED_PARSER_DIAGNOSTIC_CODES = new Set([
494
+ "OVERSIZED_FILE",
495
+ "PARSER_TIMEOUT",
496
+ "PARSER_CANCELLED",
497
+ "MALFORMED_INPUT",
498
+ "OBJECT_LIMIT_REACHED",
499
+ ]);
500
+ function firstParserFailureDiagnostic(result) {
501
+ return result.diagnostics.find((diagnostic) => diagnostic.severity === "error" || FAILED_PARSER_DIAGNOSTIC_CODES.has(diagnostic.code));
502
+ }
264
503
  function statusForResult(result) {
265
- return isUnsupportedResult(result) ? "unsupported" : "extracted";
504
+ if (isUnsupportedResult(result))
505
+ return "unsupported";
506
+ if (firstParserFailureDiagnostic(result) !== undefined)
507
+ return "failed";
508
+ return "extracted";
509
+ }
510
+ function discoveryErrorCodeForParserDiagnostic(diagnostic) {
511
+ if (diagnostic.code === "OVERSIZED_FILE")
512
+ return "OVERSIZED_FILE";
513
+ if (diagnostic.code === "PARSER_CANCELLED")
514
+ return "CANCELLED";
515
+ if (diagnostic.code === "MALFORMED_INPUT")
516
+ return "MALFORMED_INPUT";
517
+ if (diagnostic.code === "PARSER_TIMEOUT")
518
+ return "PARSER_TIMEOUT";
519
+ return "PARSER_FAILED";
520
+ }
521
+ function parserFailureOutcome(document, diagnostic, relativePath) {
522
+ return {
523
+ kind: "failed",
524
+ document,
525
+ error: {
526
+ code: discoveryErrorCodeForParserDiagnostic(diagnostic),
527
+ message: diagnostic.message,
528
+ relativePath,
529
+ },
530
+ };
266
531
  }
267
532
  const SOURCE_TEXT_PARSER_IDS = new Set(["text", "json", "csv", "html"]);
268
533
  function decodeUtf8ForStorage(bytes) {
@@ -304,29 +569,60 @@ async function runParserForPersistence(deps, documentId, params, bytes, options)
304
569
  function persistExtractedDocument(deps, params, documentId, document, parserResult) {
305
570
  persistDocumentAndDependents(deps, params, documentId, document, parserResult, deps.store._internal.now);
306
571
  }
307
- export async function extractDocument(deps, params) {
308
- const documentId = documentIdFor({
572
+ async function readBoundedDocumentBytes(deps, params, documentId, target, options) {
573
+ const bytes = await readBytes(deps, params, target, options.maxBytes + 1);
574
+ if (!(bytes instanceof Uint8Array)) {
575
+ return buildFailureResult(deps, params, documentId, bytes);
576
+ }
577
+ if (bytes.byteLength > options.maxBytes) {
578
+ return buildOversizedFailure(deps, params, documentId, options, bytes.byteLength);
579
+ }
580
+ return bytes;
581
+ }
582
+ function parserExtractionResult(params, document, parserResult, status) {
583
+ const failureDiagnostic = firstParserFailureDiagnostic(parserResult);
584
+ return {
585
+ capsuleId: params.capsuleId,
586
+ sourceId: params.source.id,
587
+ relativePath: params.file.relativePath,
588
+ outcome: status === "failed" && failureDiagnostic !== undefined
589
+ ? parserFailureOutcome(document, failureDiagnostic, params.file.relativePath)
590
+ : { kind: "persisted", document },
591
+ diagnostics: parserResult.diagnostics,
592
+ };
593
+ }
594
+ function paramsWithRelativePath(params, relativePath) {
595
+ if (params.file.relativePath === relativePath)
596
+ return params;
597
+ return { ...params, file: { ...params.file, relativePath } };
598
+ }
599
+ function extractionDocumentId(params) {
600
+ return documentIdFor({
309
601
  capsuleId: params.capsuleId,
310
602
  sourceId: params.source.id,
311
603
  relativePath: params.file.relativePath,
312
604
  });
313
- const resolved = resolveTargetPath(deps, params);
314
- if ("code" in resolved) {
315
- return buildFailureResult(params, documentId, resolved);
316
- }
317
- const options = params.parserOptions ?? buildParserOptions();
318
- if (params.file.sizeBytes > options.maxBytes) {
319
- return buildOversizedFailure(deps, params, documentId, options);
605
+ }
606
+ function targetResolutionFailure(deps, params, resolved) {
607
+ const failureParams = resolved.error.relativePath === undefined
608
+ ? params
609
+ : paramsWithRelativePath(params, resolved.error.relativePath);
610
+ return buildFailureResult(deps, failureParams, extractionDocumentId(failureParams), resolved.error, {
611
+ persist: resolved.persistFailure,
612
+ });
613
+ }
614
+ async function parseAndPersistDocument(deps, params, documentId, bytes, contentHash, options) {
615
+ let parserResult;
616
+ try {
617
+ parserResult = await runParserForPersistence(deps, documentId, params, bytes, options);
320
618
  }
321
- const bytes = await readBytes(deps, resolved.absolutePath, options.maxBytes);
322
- if (!(bytes instanceof Uint8Array)) {
323
- return buildFailureResult(params, documentId, bytes);
619
+ catch {
620
+ return buildFailureResult(deps, params, documentId, {
621
+ code: "PARSER_FAILED",
622
+ message: "parser adapter failed while extracting document",
623
+ relativePath: params.file.relativePath,
624
+ });
324
625
  }
325
- const contentHash = hashBytes(bytes);
326
- const fast = readUnchangedFastPath(deps, params, documentId, contentHash);
327
- if (fast !== undefined)
328
- return fast;
329
- const parserResult = await runParserForPersistence(deps, documentId, params, bytes, options);
330
626
  const redactedParserResult = redactParserResult(parserResult, params.source);
331
627
  const status = statusForResult(redactedParserResult);
332
628
  const document = buildDocumentRecord({
@@ -338,21 +634,47 @@ export async function extractDocument(deps, params) {
338
634
  status,
339
635
  });
340
636
  persistExtractedDocument(deps, params, documentId, document, redactedParserResult);
341
- return {
637
+ return parserExtractionResult(params, document, redactedParserResult, status);
638
+ }
639
+ export async function extractDocument(deps, params) {
640
+ const resolved = resolveTargetPath(deps, params);
641
+ if ("error" in resolved) {
642
+ return targetResolutionFailure(deps, params, resolved);
643
+ }
644
+ const canonicalParams = paramsWithRelativePath(params, resolved.relativePath);
645
+ const documentId = extractionDocumentId(canonicalParams);
646
+ const options = canonicalParams.parserOptions ?? buildParserOptions();
647
+ if (canonicalParams.file.sizeBytes > options.maxBytes) {
648
+ return buildOversizedFailure(deps, canonicalParams, documentId, options);
649
+ }
650
+ const bytes = await readBoundedDocumentBytes(deps, canonicalParams, documentId, resolved, options);
651
+ if (!(bytes instanceof Uint8Array)) {
652
+ return bytes;
653
+ }
654
+ const contentHash = hashBytes(bytes);
655
+ const fast = readUnchangedFastPath(deps, canonicalParams, documentId, contentHash);
656
+ if (fast !== undefined)
657
+ return fast;
658
+ return parseAndPersistDocument(deps, canonicalParams, documentId, bytes, contentHash, options);
659
+ }
660
+ export function recordExtractionFailure(deps, params) {
661
+ const documentId = documentIdFor({
342
662
  capsuleId: params.capsuleId,
343
663
  sourceId: params.source.id,
344
664
  relativePath: params.file.relativePath,
345
- outcome: { kind: "persisted", document },
346
- diagnostics: redactedParserResult.diagnostics,
347
- };
665
+ });
666
+ return buildFailureResult(deps, params, documentId, params.error);
348
667
  }
349
- function oversizedDocumentRecord(params, documentId, lastExtractedAt) {
668
+ function oversizedDocumentRecord(params, documentId, lastExtractedAt, observedSizeBytes) {
669
+ const sizeBytes = observedSizeBytes === undefined
670
+ ? params.file.sizeBytes
671
+ : Math.max(params.file.sizeBytes, observedSizeBytes);
350
672
  return {
351
673
  id: documentId,
352
674
  capsuleId: params.capsuleId,
353
675
  sourceId: params.source.id,
354
676
  documentPath: params.file.relativePath,
355
- sizeBytes: params.file.sizeBytes,
677
+ sizeBytes,
356
678
  mediaType: mediaTypeFor(extensionOf(params.file.relativePath)),
357
679
  contentHash: "",
358
680
  parser: { parserId: "none", parserVersion: "0" },
@@ -393,16 +715,19 @@ function persistOversizedRow(deps, params, documentId, document, diagnostic, now
393
715
  throw cause;
394
716
  }
395
717
  }
396
- function buildOversizedFailure(deps, params, documentId, options) {
718
+ function buildOversizedFailure(deps, params, documentId, options, observedSizeBytes) {
397
719
  const now = deps.store._internal.now;
398
- const message = redactMessage(`file size ${String(params.file.sizeBytes)} exceeds maxBytes=${String(options.maxBytes)}`, params.source);
720
+ const sizeBytes = observedSizeBytes === undefined
721
+ ? params.file.sizeBytes
722
+ : Math.max(params.file.sizeBytes, observedSizeBytes);
723
+ const message = redactMessage(`file size ${String(sizeBytes)} exceeds maxBytes=${String(options.maxBytes)}`, params.source);
399
724
  const diagnostic = {
400
725
  severity: "error",
401
726
  code: "OVERSIZED_FILE",
402
727
  message,
403
728
  documentId,
404
729
  };
405
- const document = oversizedDocumentRecord(params, documentId, now());
730
+ const document = oversizedDocumentRecord(params, documentId, now(), observedSizeBytes);
406
731
  persistOversizedRow(deps, params, documentId, document, diagnostic, now);
407
732
  return {
408
733
  capsuleId: params.capsuleId,
@@ -4,6 +4,8 @@ export interface MemoryFsFile {
4
4
  readonly relativePath: string;
5
5
  readonly content: string | Uint8Array;
6
6
  readonly realPathOverride?: string;
7
+ readonly hardLinkCount?: number;
8
+ readonly isSymbolicLink?: boolean;
7
9
  }
8
10
  export declare function memoryFs(root: string, files: readonly MemoryFsFile[]): WorkspaceFs;
9
11
  export declare function folderScope(rootPath: string, options?: {
@@ -1 +1 @@
1
- {"version":3,"file":"test-support.d.ts","sourceRoot":"","sources":["../../src/discovery/test-support.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,EAAqB,WAAW,EAAiB,MAAM,+BAA+B,CAAC;AAiDnG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;IACtC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAyCD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,YAAY,EAAE,GAAG,WAAW,CAgClF;AAED,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IACP,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC,GACL,oBAAoB,CAWtB"}
1
+ {"version":3,"file":"test-support.d.ts","sourceRoot":"","sources":["../../src/discovery/test-support.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,EAAqB,WAAW,EAAiB,MAAM,+BAA+B,CAAC;AAmDnG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC;IACtC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACnC;AA4CD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,YAAY,EAAE,GAAG,WAAW,CAgClF;AAED,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IACP,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC,GACL,oBAAoB,CAWtB"}
@@ -41,9 +41,12 @@ function buildMap(files) {
41
41
  const map = new Map();
42
42
  for (const f of files) {
43
43
  const bytes = typeof f.content === "string" ? encoder.encode(f.content) : f.content;
44
- const entry = f.realPathOverride !== undefined
45
- ? { content: bytes, realPathOverride: f.realPathOverride }
46
- : { content: bytes };
44
+ const entry = {
45
+ content: bytes,
46
+ ...(f.realPathOverride !== undefined ? { realPathOverride: f.realPathOverride } : {}),
47
+ ...(f.hardLinkCount !== undefined ? { hardLinkCount: f.hardLinkCount } : {}),
48
+ ...(f.isSymbolicLink !== undefined ? { isSymbolicLink: f.isSymbolicLink } : {}),
49
+ };
47
50
  map.set(f.relativePath, entry);
48
51
  }
49
52
  return map;
@@ -62,7 +65,8 @@ function memoryStat(root, map, findKey) {
62
65
  size: map.get(key)?.content.byteLength ?? 0,
63
66
  isFile: true,
64
67
  isDirectory: false,
65
- isSymbolicLink: false,
68
+ isSymbolicLink: map.get(key)?.isSymbolicLink ?? false,
69
+ hardLinkCount: map.get(key)?.hardLinkCount,
66
70
  };
67
71
  };
68
72
  }
@@ -9,7 +9,7 @@ export interface DiscoveryOptions {
9
9
  readonly signal?: AbortSignal;
10
10
  }
11
11
  export declare const DEFAULT_DISCOVERY_OPTIONS: DiscoveryOptions;
12
- export type DiscoveryErrorCode = "PATH_ESCAPE" | "READ_FAILED" | "OVERSIZED_FILE" | "UNSUPPORTED_FORMAT" | "CANCELLED" | "STAT_FAILED" | "INVALID_SCOPE";
12
+ export type DiscoveryErrorCode = "PATH_ESCAPE" | "READ_FAILED" | "OVERSIZED_FILE" | "UNSUPPORTED_FORMAT" | "CANCELLED" | "MALFORMED_INPUT" | "PARSER_TIMEOUT" | "PARSER_FAILED" | "STAT_FAILED" | "INVALID_SCOPE";
13
13
  export interface DiscoveryError {
14
14
  readonly code: DiscoveryErrorCode;
15
15
  readonly message: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/discovery/types.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,+BAA+B,CAAC;AAGvC,MAAM,WAAW,cAAc;IAE7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAGD,MAAM,WAAW,gBAAgB;IAG/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAG1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAG1B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,eAAO,MAAM,yBAAyB,EAAE,gBAG9B,CAAC;AAMX,MAAM,MAAM,kBAAkB,GAC1B,aAAa,GACb,aAAa,GACb,gBAAgB,GAChB,oBAAoB,GACpB,WAAW,GACX,aAAa,GACb,eAAe,CAAC;AAEpB,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAGD,MAAM,MAAM,iBAAiB,GAIzB;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,GAEjE;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GAE7F;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC;AAEnG,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACnD;AAGD,MAAM,MAAM,eAAe,GACvB;IACE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;CAChC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AAIN,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AASD,wBAAgB,aAAa,CAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,CAGjE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/discovery/types.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,+BAA+B,CAAC;AAGvC,MAAM,WAAW,cAAc;IAE7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAGD,MAAM,WAAW,gBAAgB;IAG/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAG1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAG1B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,eAAO,MAAM,yBAAyB,EAAE,gBAG9B,CAAC;AAOX,MAAM,MAAM,kBAAkB,GAC1B,aAAa,GACb,aAAa,GACb,gBAAgB,GAChB,oBAAoB,GACpB,WAAW,GACX,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,aAAa,GACb,eAAe,CAAC;AAEpB,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAGD,MAAM,MAAM,iBAAiB,GAIzB;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,GAEjE;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GAE7F;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC;AAEnG,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACnD;AAGD,MAAM,MAAM,eAAe,GACvB;IACE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;CAChC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AAIN,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAaD,wBAAgB,aAAa,CAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,CAKjE"}
@@ -14,10 +14,15 @@ export const DEFAULT_DISCOVERY_OPTIONS = {
14
14
  // deterministic in `(capsuleId, sourceId, relativePath)` so a re-walk of the same scope
15
15
  // targets the SAME `documents` row — that's the lineage anchor for incremental updates.
16
16
  //
17
- // The `#` character is encoded as `%23` before embedding so that a file literally named
18
- // `a#u0.md` cannot produce an id that collides with a parsed_unit suffix (`#u0`) or a
19
- // diagnostic suffix (`#d0`) derived from a different document.
17
+ // Delimiter characters are percent-escaped before embedding so that the three tuple members
18
+ // stay injective even when source ids or paths contain `:`, `%`, or `#`. Ordinary paths keep
19
+ // their historical ids; only collision-capable characters are escaped.
20
+ function encodeDocumentIdComponent(value) {
21
+ return value.replace(/%/g, "%25").replace(/#/g, "%23").replace(/:/g, "%3A");
22
+ }
20
23
  export function documentIdFor(input) {
21
- const encodedPath = input.relativePath.replace(/#/g, "%23");
22
- return `doc:${String(input.capsuleId)}:${String(input.sourceId)}:${encodedPath}`;
24
+ const encodedCapsuleId = encodeDocumentIdComponent(String(input.capsuleId));
25
+ const encodedSourceId = encodeDocumentIdComponent(String(input.sourceId));
26
+ const encodedPath = encodeDocumentIdComponent(input.relativePath);
27
+ return `doc:${encodedCapsuleId}:${encodedSourceId}:${encodedPath}`;
23
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"walk.d.ts","sourceRoot":"","sources":["../../src/discovery/walk.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGjE,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AAMpB,MAAM,MAAM,SAAS,GACjB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC;AA6P/D,wBAAiB,UAAU,CACzB,EAAE,EAAE,WAAW,EACf,KAAK,EAAE,oBAAoB,EAC3B,OAAO,GAAE,gBAA4C,GACpD,SAAS,CAAC,SAAS,CAAC,CAYtB"}
1
+ {"version":3,"file":"walk.d.ts","sourceRoot":"","sources":["../../src/discovery/walk.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,+BAA+B,CAAC;AAIhF,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AAMpB,MAAM,MAAM,SAAS,GACjB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC;AAoT/D,wBAAiB,UAAU,CACzB,EAAE,EAAE,WAAW,EACf,KAAK,EAAE,oBAAoB,EAC3B,OAAO,GAAE,gBAA4C,GACpD,SAAS,CAAC,SAAS,CAAC,CAYtB"}