@qvac/core 0.0.0 → 0.1.0

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 (586) hide show
  1. package/LICENSE.md +198 -0
  2. package/NOTICE.md +13 -0
  3. package/README.md +694 -0
  4. package/SECURITY.md +6 -0
  5. package/dist/assistant.bundle +47256 -0
  6. package/dist/assistant.cjs +18 -0
  7. package/dist/assistant.d.ts +8 -0
  8. package/dist/prebuilds-manifest.json +380 -0
  9. package/dist-lib/client.d.ts +2 -0
  10. package/dist-lib/client.js +1 -0
  11. package/dist-lib/index.d.ts +13 -0
  12. package/dist-lib/index.js +10 -0
  13. package/dist-lib/lib/agent-icons.d.ts +3 -0
  14. package/dist-lib/lib/agent-icons.js +1 -0
  15. package/dist-lib/lib/api/agents.d.ts +5 -0
  16. package/dist-lib/lib/api/agents.js +38 -0
  17. package/dist-lib/lib/api/app-config.d.ts +5 -0
  18. package/dist-lib/lib/api/app-config.js +108 -0
  19. package/dist-lib/lib/api/approval-rules.d.ts +3 -0
  20. package/dist-lib/lib/api/approval-rules.js +9 -0
  21. package/dist-lib/lib/api/attachments.d.ts +8 -0
  22. package/dist-lib/lib/api/attachments.js +15 -0
  23. package/dist-lib/lib/api/chat-groups.d.ts +5 -0
  24. package/dist-lib/lib/api/chat-groups.js +12 -0
  25. package/dist-lib/lib/api/chat.d.ts +5 -0
  26. package/dist-lib/lib/api/chat.js +38 -0
  27. package/dist-lib/lib/api/chunks.d.ts +5 -0
  28. package/dist-lib/lib/api/chunks.js +61 -0
  29. package/dist-lib/lib/api/config.d.ts +5 -0
  30. package/dist-lib/lib/api/config.js +15 -0
  31. package/dist-lib/lib/api/current-mesh.d.ts +5 -0
  32. package/dist-lib/lib/api/current-mesh.js +12 -0
  33. package/dist-lib/lib/api/custom-models.d.ts +5 -0
  34. package/dist-lib/lib/api/custom-models.js +45 -0
  35. package/dist-lib/lib/api/devices.d.ts +8 -0
  36. package/dist-lib/lib/api/devices.js +125 -0
  37. package/dist-lib/lib/api/diagnostics.d.ts +7 -0
  38. package/dist-lib/lib/api/diagnostics.js +7 -0
  39. package/dist-lib/lib/api/effective-ctx-size.d.ts +2 -0
  40. package/dist-lib/lib/api/effective-ctx-size.js +10 -0
  41. package/dist-lib/lib/api/execution.d.ts +3 -0
  42. package/dist-lib/lib/api/execution.js +45 -0
  43. package/dist-lib/lib/api/files.d.ts +3 -0
  44. package/dist-lib/lib/api/files.js +48 -0
  45. package/dist-lib/lib/api/index.d.ts +62 -0
  46. package/dist-lib/lib/api/index.js +172 -0
  47. package/dist-lib/lib/api/instrument.d.ts +2 -0
  48. package/dist-lib/lib/api/instrument.js +86 -0
  49. package/dist-lib/lib/api/knowledge.d.ts +8 -0
  50. package/dist-lib/lib/api/knowledge.js +26 -0
  51. package/dist-lib/lib/api/logs.d.ts +14 -0
  52. package/dist-lib/lib/api/logs.js +116 -0
  53. package/dist-lib/lib/api/mesh.d.ts +13 -0
  54. package/dist-lib/lib/api/mesh.js +25 -0
  55. package/dist-lib/lib/api/model-download.d.ts +5 -0
  56. package/dist-lib/lib/api/model-download.js +47 -0
  57. package/dist-lib/lib/api/network.d.ts +8 -0
  58. package/dist-lib/lib/api/network.js +6 -0
  59. package/dist-lib/lib/api/notifications.d.ts +21 -0
  60. package/dist-lib/lib/api/notifications.js +108 -0
  61. package/dist-lib/lib/api/rag.d.ts +7 -0
  62. package/dist-lib/lib/api/rag.js +216 -0
  63. package/dist-lib/lib/api/sync.d.ts +3 -0
  64. package/dist-lib/lib/api/sync.js +6 -0
  65. package/dist-lib/lib/api/tool-activity.d.ts +5 -0
  66. package/dist-lib/lib/api/tool-activity.js +53 -0
  67. package/dist-lib/lib/api/tool-configs.d.ts +6 -0
  68. package/dist-lib/lib/api/tool-configs.js +27 -0
  69. package/dist-lib/lib/api/watchable.d.ts +12 -0
  70. package/dist-lib/lib/api/watchable.js +121 -0
  71. package/dist-lib/lib/assistant-client.d.ts +21 -0
  72. package/dist-lib/lib/assistant-client.js +52 -0
  73. package/dist-lib/lib/assistant-tree.d.ts +50 -0
  74. package/dist-lib/lib/assistant-tree.js +184 -0
  75. package/dist-lib/lib/assistant.d.ts +425 -0
  76. package/dist-lib/lib/assistant.js +2706 -0
  77. package/dist-lib/lib/audio-format.d.ts +4 -0
  78. package/dist-lib/lib/audio-format.js +4 -0
  79. package/dist-lib/lib/chat-title.d.ts +5 -0
  80. package/dist-lib/lib/chat-title.js +58 -0
  81. package/dist-lib/lib/client.d.ts +25 -0
  82. package/dist-lib/lib/client.js +53 -0
  83. package/dist-lib/lib/collabora/convert.d.ts +9 -0
  84. package/dist-lib/lib/collabora/convert.js +62 -0
  85. package/dist-lib/lib/collabora/entry.d.ts +1 -0
  86. package/dist-lib/lib/collabora/entry.js +44 -0
  87. package/dist-lib/lib/collabora/protocol.d.ts +15 -0
  88. package/dist-lib/lib/collabora/protocol.js +24 -0
  89. package/dist-lib/lib/collabora/worker.d.ts +5 -0
  90. package/dist-lib/lib/collabora/worker.js +111 -0
  91. package/dist-lib/lib/compaction.d.ts +30 -0
  92. package/dist-lib/lib/compaction.js +95 -0
  93. package/dist-lib/lib/constants.d.ts +4 -0
  94. package/dist-lib/lib/constants.js +4 -0
  95. package/dist-lib/lib/core/agent.d.ts +15 -0
  96. package/dist-lib/lib/core/agent.js +149 -0
  97. package/dist-lib/lib/core/app-build.d.ts +7 -0
  98. package/dist-lib/lib/core/app-build.js +1 -0
  99. package/dist-lib/lib/core/approval-rules.d.ts +15 -0
  100. package/dist-lib/lib/core/approval-rules.js +41 -0
  101. package/dist-lib/lib/core/async-iterable.d.ts +13 -0
  102. package/dist-lib/lib/core/async-iterable.js +65 -0
  103. package/dist-lib/lib/core/attachment-link.d.ts +7 -0
  104. package/dist-lib/lib/core/attachment-link.js +6 -0
  105. package/dist-lib/lib/core/audio-attachment.d.ts +1 -0
  106. package/dist-lib/lib/core/audio-attachment.js +4 -0
  107. package/dist-lib/lib/core/blind-peers.d.ts +6 -0
  108. package/dist-lib/lib/core/blind-peers.js +13 -0
  109. package/dist-lib/lib/core/chat-activity.d.ts +7 -0
  110. package/dist-lib/lib/core/chat-activity.js +244 -0
  111. package/dist-lib/lib/core/chat-group.d.ts +14 -0
  112. package/dist-lib/lib/core/chat-group.js +79 -0
  113. package/dist-lib/lib/core/chat-search.d.ts +17 -0
  114. package/dist-lib/lib/core/chat-search.js +199 -0
  115. package/dist-lib/lib/core/chat.d.ts +37 -0
  116. package/dist-lib/lib/core/chat.js +196 -0
  117. package/dist-lib/lib/core/chunk.d.ts +61 -0
  118. package/dist-lib/lib/core/chunk.js +212 -0
  119. package/dist-lib/lib/core/contract/activity.d.ts +11 -0
  120. package/dist-lib/lib/core/contract/activity.js +45 -0
  121. package/dist-lib/lib/core/contract/agents.d.ts +2 -0
  122. package/dist-lib/lib/core/contract/agents.js +29 -0
  123. package/dist-lib/lib/core/contract/approval-rules.d.ts +2 -0
  124. package/dist-lib/lib/core/contract/approval-rules.js +14 -0
  125. package/dist-lib/lib/core/contract/attestations.d.ts +2 -0
  126. package/dist-lib/lib/core/contract/attestations.js +14 -0
  127. package/dist-lib/lib/core/contract/chat-group.d.ts +2 -0
  128. package/dist-lib/lib/core/contract/chat-group.js +20 -0
  129. package/dist-lib/lib/core/contract/chat.d.ts +2 -0
  130. package/dist-lib/lib/core/contract/chat.js +18 -0
  131. package/dist-lib/lib/core/contract/chunks.d.ts +2 -0
  132. package/dist-lib/lib/core/contract/chunks.js +156 -0
  133. package/dist-lib/lib/core/contract/devices.d.ts +2 -0
  134. package/dist-lib/lib/core/contract/devices.js +110 -0
  135. package/dist-lib/lib/core/contract/index.d.ts +2 -0
  136. package/dist-lib/lib/core/contract/index.js +30 -0
  137. package/dist-lib/lib/core/contract/indexing.d.ts +4 -0
  138. package/dist-lib/lib/core/contract/indexing.js +82 -0
  139. package/dist-lib/lib/core/contract/knowledge.d.ts +2 -0
  140. package/dist-lib/lib/core/contract/knowledge.js +55 -0
  141. package/dist-lib/lib/core/contract/members.d.ts +2 -0
  142. package/dist-lib/lib/core/contract/members.js +96 -0
  143. package/dist-lib/lib/core/contract/seed-defaults.d.ts +2 -0
  144. package/dist-lib/lib/core/contract/seed-defaults.js +29 -0
  145. package/dist-lib/lib/core/contract/tool-activity.d.ts +2 -0
  146. package/dist-lib/lib/core/contract/tool-activity.js +25 -0
  147. package/dist-lib/lib/core/contract/tool-configs.d.ts +2 -0
  148. package/dist-lib/lib/core/contract/tool-configs.js +50 -0
  149. package/dist-lib/lib/core/contract/types.d.ts +11 -0
  150. package/dist-lib/lib/core/contract/types.js +1 -0
  151. package/dist-lib/lib/core/contract/writers.d.ts +2 -0
  152. package/dist-lib/lib/core/contract/writers.js +112 -0
  153. package/dist-lib/lib/core/cpu-info-node.d.ts +3 -0
  154. package/dist-lib/lib/core/cpu-info-node.js +2 -0
  155. package/dist-lib/lib/core/departures.d.ts +41 -0
  156. package/dist-lib/lib/core/departures.js +145 -0
  157. package/dist-lib/lib/core/device-attestation.d.ts +6 -0
  158. package/dist-lib/lib/core/device-attestation.js +12 -0
  159. package/dist-lib/lib/core/devices.d.ts +14 -0
  160. package/dist-lib/lib/core/devices.js +11 -0
  161. package/dist-lib/lib/core/document-attachment.d.ts +22 -0
  162. package/dist-lib/lib/core/document-attachment.js +35 -0
  163. package/dist-lib/lib/core/files/attachments.d.ts +8 -0
  164. package/dist-lib/lib/core/files/attachments.js +50 -0
  165. package/dist-lib/lib/core/files/index.d.ts +133 -0
  166. package/dist-lib/lib/core/files/index.js +585 -0
  167. package/dist-lib/lib/core/files/knowledge.d.ts +9 -0
  168. package/dist-lib/lib/core/files/knowledge.js +31 -0
  169. package/dist-lib/lib/core/files/preview/image.d.ts +4 -0
  170. package/dist-lib/lib/core/files/preview/image.js +42 -0
  171. package/dist-lib/lib/core/files/preview/index.d.ts +33 -0
  172. package/dist-lib/lib/core/files/preview/index.js +161 -0
  173. package/dist-lib/lib/core/files/processing/claims.d.ts +26 -0
  174. package/dist-lib/lib/core/files/processing/claims.js +89 -0
  175. package/dist-lib/lib/core/files/processing/document.d.ts +100 -0
  176. package/dist-lib/lib/core/files/processing/document.js +101 -0
  177. package/dist-lib/lib/core/files/processing/index.d.ts +75 -0
  178. package/dist-lib/lib/core/files/processing/index.js +295 -0
  179. package/dist-lib/lib/core/files/processing/ownership.d.ts +11 -0
  180. package/dist-lib/lib/core/files/processing/ownership.js +41 -0
  181. package/dist-lib/lib/core/files/processing/protocol.d.ts +29 -0
  182. package/dist-lib/lib/core/files/processing/protocol.js +70 -0
  183. package/dist-lib/lib/core/files/processing/settle.d.ts +10 -0
  184. package/dist-lib/lib/core/files/processing/settle.js +75 -0
  185. package/dist-lib/lib/core/files/processing/source.d.ts +36 -0
  186. package/dist-lib/lib/core/files/processing/source.js +96 -0
  187. package/dist-lib/lib/core/files/processing/state.d.ts +64 -0
  188. package/dist-lib/lib/core/files/processing/state.js +118 -0
  189. package/dist-lib/lib/core/files/rag/artifact/codec.d.ts +3 -0
  190. package/dist-lib/lib/core/files/rag/artifact/codec.js +172 -0
  191. package/dist-lib/lib/core/files/rag/artifact/id.d.ts +10 -0
  192. package/dist-lib/lib/core/files/rag/artifact/id.js +39 -0
  193. package/dist-lib/lib/core/files/rag/artifact/types.d.ts +24 -0
  194. package/dist-lib/lib/core/files/rag/artifact/types.js +41 -0
  195. package/dist-lib/lib/core/files/rag/build.d.ts +25 -0
  196. package/dist-lib/lib/core/files/rag/build.js +60 -0
  197. package/dist-lib/lib/core/files/rag/chunk/chunking.d.ts +12 -0
  198. package/dist-lib/lib/core/files/rag/chunk/chunking.js +117 -0
  199. package/dist-lib/lib/core/files/rag/chunk/metadata.d.ts +30 -0
  200. package/dist-lib/lib/core/files/rag/chunk/metadata.js +89 -0
  201. package/dist-lib/lib/core/files/rag/chunk/tokenizer.d.ts +7 -0
  202. package/dist-lib/lib/core/files/rag/chunk/tokenizer.js +18 -0
  203. package/dist-lib/lib/core/files/rag/document-types.d.ts +11 -0
  204. package/dist-lib/lib/core/files/rag/document-types.js +94 -0
  205. package/dist-lib/lib/core/files/rag/extract/csv-text.d.ts +1 -0
  206. package/dist-lib/lib/core/files/rag/extract/csv-text.js +117 -0
  207. package/dist-lib/lib/core/files/rag/extract/document-types.d.ts +22 -0
  208. package/dist-lib/lib/core/files/rag/extract/document-types.js +152 -0
  209. package/dist-lib/lib/core/files/rag/extract/extract.d.ts +17 -0
  210. package/dist-lib/lib/core/files/rag/extract/extract.js +81 -0
  211. package/dist-lib/lib/core/files/rag/extract/html-table-text.d.ts +1 -0
  212. package/dist-lib/lib/core/files/rag/extract/html-table-text.js +125 -0
  213. package/dist-lib/lib/core/files/rag/extract/html-text.d.ts +1 -0
  214. package/dist-lib/lib/core/files/rag/extract/html-text.js +132 -0
  215. package/dist-lib/lib/core/files/rag/extract/office-collabora.d.ts +2 -0
  216. package/dist-lib/lib/core/files/rag/extract/office-collabora.js +8 -0
  217. package/dist-lib/lib/core/files/rag/extract/pdf-platform.d.ts +17 -0
  218. package/dist-lib/lib/core/files/rag/extract/pdf-platform.js +141 -0
  219. package/dist-lib/lib/core/files/rag/extract/pdf-text.d.ts +12 -0
  220. package/dist-lib/lib/core/files/rag/extract/pdf-text.js +43 -0
  221. package/dist-lib/lib/core/files/rag/extract/rtf-text.d.ts +1 -0
  222. package/dist-lib/lib/core/files/rag/extract/rtf-text.js +15 -0
  223. package/dist-lib/lib/core/files/rag/extract/text-decoding.d.ts +1 -0
  224. package/dist-lib/lib/core/files/rag/extract/text-decoding.js +91 -0
  225. package/dist-lib/lib/core/files/rag/extract/types.d.ts +36 -0
  226. package/dist-lib/lib/core/files/rag/extract/types.js +12 -0
  227. package/dist-lib/lib/core/files/rag/extract/utf.d.ts +2 -0
  228. package/dist-lib/lib/core/files/rag/extract/utf.js +18 -0
  229. package/dist-lib/lib/core/files/rag/index.d.ts +54 -0
  230. package/dist-lib/lib/core/files/rag/index.js +79 -0
  231. package/dist-lib/lib/core/files/rag/limits.d.ts +2 -0
  232. package/dist-lib/lib/core/files/rag/limits.js +2 -0
  233. package/dist-lib/lib/core/files/rag/load.d.ts +28 -0
  234. package/dist-lib/lib/core/files/rag/load.js +250 -0
  235. package/dist-lib/lib/core/files/rag/models.d.ts +1 -0
  236. package/dist-lib/lib/core/files/rag/models.js +1 -0
  237. package/dist-lib/lib/core/files/rag/policy.d.ts +2 -0
  238. package/dist-lib/lib/core/files/rag/policy.js +23 -0
  239. package/dist-lib/lib/core/files/rag/produce.d.ts +21 -0
  240. package/dist-lib/lib/core/files/rag/produce.js +214 -0
  241. package/dist-lib/lib/core/files/rag/retrieval/citation-match.d.ts +2 -0
  242. package/dist-lib/lib/core/files/rag/retrieval/citation-match.js +16 -0
  243. package/dist-lib/lib/core/files/rag/retrieval/coverage.d.ts +4 -0
  244. package/dist-lib/lib/core/files/rag/retrieval/coverage.js +48 -0
  245. package/dist-lib/lib/core/files/rag/retrieval/diversity.d.ts +10 -0
  246. package/dist-lib/lib/core/files/rag/retrieval/diversity.js +37 -0
  247. package/dist-lib/lib/core/files/rag/retrieval/floor.d.ts +5 -0
  248. package/dist-lib/lib/core/files/rag/retrieval/floor.js +21 -0
  249. package/dist-lib/lib/core/files/rag/retrieval/format.d.ts +6 -0
  250. package/dist-lib/lib/core/files/rag/retrieval/format.js +21 -0
  251. package/dist-lib/lib/core/files/rag/retrieval/full-text.d.ts +22 -0
  252. package/dist-lib/lib/core/files/rag/retrieval/full-text.js +137 -0
  253. package/dist-lib/lib/core/files/rag/retrieval/knowledge.d.ts +2 -0
  254. package/dist-lib/lib/core/files/rag/retrieval/knowledge.js +53 -0
  255. package/dist-lib/lib/core/files/rag/retrieval/notices.d.ts +16 -0
  256. package/dist-lib/lib/core/files/rag/retrieval/notices.js +27 -0
  257. package/dist-lib/lib/core/files/rag/retrieval/scoring.d.ts +8 -0
  258. package/dist-lib/lib/core/files/rag/retrieval/scoring.js +82 -0
  259. package/dist-lib/lib/core/files/rag/retrieval/search.d.ts +3 -0
  260. package/dist-lib/lib/core/files/rag/retrieval/search.js +46 -0
  261. package/dist-lib/lib/core/files/rag/retrieval/selection.d.ts +10 -0
  262. package/dist-lib/lib/core/files/rag/retrieval/selection.js +63 -0
  263. package/dist-lib/lib/core/files/rag/retrieval/source-tag-filter.d.ts +6 -0
  264. package/dist-lib/lib/core/files/rag/retrieval/source-tag-filter.js +79 -0
  265. package/dist-lib/lib/core/files/rag/retrieval/sources.d.ts +13 -0
  266. package/dist-lib/lib/core/files/rag/retrieval/sources.js +20 -0
  267. package/dist-lib/lib/core/files/rag/retrieval/target.d.ts +13 -0
  268. package/dist-lib/lib/core/files/rag/retrieval/target.js +89 -0
  269. package/dist-lib/lib/core/files/rag/retrieval/terms.d.ts +8 -0
  270. package/dist-lib/lib/core/files/rag/retrieval/terms.js +70 -0
  271. package/dist-lib/lib/core/files/rag/retrieval/types.d.ts +28 -0
  272. package/dist-lib/lib/core/files/rag/retrieval/types.js +1 -0
  273. package/dist-lib/lib/core/files/rag/retrieval/web-sources.d.ts +8 -0
  274. package/dist-lib/lib/core/files/rag/retrieval/web-sources.js +41 -0
  275. package/dist-lib/lib/core/files/rag/retrieval/whole-document-query.d.ts +1 -0
  276. package/dist-lib/lib/core/files/rag/retrieval/whole-document-query.js +96 -0
  277. package/dist-lib/lib/core/files/rag/vector/memory.d.ts +15 -0
  278. package/dist-lib/lib/core/files/rag/vector/memory.js +135 -0
  279. package/dist-lib/lib/core/files/rag/vector/types.d.ts +28 -0
  280. package/dist-lib/lib/core/files/rag/vector/types.js +1 -0
  281. package/dist-lib/lib/core/files/records/chunks.d.ts +3 -0
  282. package/dist-lib/lib/core/files/records/chunks.js +12 -0
  283. package/dist-lib/lib/core/files/records/index.d.ts +10 -0
  284. package/dist-lib/lib/core/files/records/index.js +8 -0
  285. package/dist-lib/lib/core/files/records/knowledge.d.ts +22 -0
  286. package/dist-lib/lib/core/files/records/knowledge.js +105 -0
  287. package/dist-lib/lib/core/files/records/linkage.d.ts +11 -0
  288. package/dist-lib/lib/core/files/records/linkage.js +27 -0
  289. package/dist-lib/lib/core/files/records/output.d.ts +8 -0
  290. package/dist-lib/lib/core/files/records/output.js +38 -0
  291. package/dist-lib/lib/core/files/records/reclaim.d.ts +5 -0
  292. package/dist-lib/lib/core/files/records/reclaim.js +73 -0
  293. package/dist-lib/lib/core/files/records/routing.d.ts +23 -0
  294. package/dist-lib/lib/core/files/records/routing.js +62 -0
  295. package/dist-lib/lib/core/files/records/source.d.ts +16 -0
  296. package/dist-lib/lib/core/files/records/source.js +70 -0
  297. package/dist-lib/lib/core/files/records/sweep.d.ts +2 -0
  298. package/dist-lib/lib/core/files/records/sweep.js +30 -0
  299. package/dist-lib/lib/core/files/store/blob.d.ts +29 -0
  300. package/dist-lib/lib/core/files/store/blob.js +98 -0
  301. package/dist-lib/lib/core/files/store/index.d.ts +36 -0
  302. package/dist-lib/lib/core/files/store/index.js +89 -0
  303. package/dist-lib/lib/core/files/store/inline.d.ts +8 -0
  304. package/dist-lib/lib/core/files/store/inline.js +38 -0
  305. package/dist-lib/lib/core/files/store/reference.d.ts +27 -0
  306. package/dist-lib/lib/core/files/store/reference.js +168 -0
  307. package/dist-lib/lib/core/files/store/server.d.ts +27 -0
  308. package/dist-lib/lib/core/files/store/server.js +114 -0
  309. package/dist-lib/lib/core/files/store/sweep.d.ts +2 -0
  310. package/dist-lib/lib/core/files/store/sweep.js +45 -0
  311. package/dist-lib/lib/core/files/upload-input.d.ts +27 -0
  312. package/dist-lib/lib/core/files/upload-input.js +52 -0
  313. package/dist-lib/lib/core/files/upload.d.ts +32 -0
  314. package/dist-lib/lib/core/files/upload.js +201 -0
  315. package/dist-lib/lib/core/fs-drives.d.ts +18 -0
  316. package/dist-lib/lib/core/fs-drives.js +58 -0
  317. package/dist-lib/lib/core/gpu-info-node.d.ts +3 -0
  318. package/dist-lib/lib/core/gpu-info-node.js +2 -0
  319. package/dist-lib/lib/core/handoff-channel.d.ts +46 -0
  320. package/dist-lib/lib/core/handoff-channel.js +102 -0
  321. package/dist-lib/lib/core/health-assistant.d.ts +7 -0
  322. package/dist-lib/lib/core/health-assistant.js +24 -0
  323. package/dist-lib/lib/core/helpers/index.d.ts +5 -0
  324. package/dist-lib/lib/core/helpers/index.js +74 -0
  325. package/dist-lib/lib/core/hosted-agents.d.ts +36 -0
  326. package/dist-lib/lib/core/hosted-agents.js +127 -0
  327. package/dist-lib/lib/core/id.d.ts +1 -0
  328. package/dist-lib/lib/core/id.js +5 -0
  329. package/dist-lib/lib/core/identity.d.ts +14 -0
  330. package/dist-lib/lib/core/identity.js +45 -0
  331. package/dist-lib/lib/core/image/cache-sweep.d.ts +12 -0
  332. package/dist-lib/lib/core/image/cache-sweep.js +67 -0
  333. package/dist-lib/lib/core/image/normalize.d.ts +3 -0
  334. package/dist-lib/lib/core/image/normalize.js +49 -0
  335. package/dist-lib/lib/core/image/sniff.d.ts +3 -0
  336. package/dist-lib/lib/core/image/sniff.js +149 -0
  337. package/dist-lib/lib/core/invite.d.ts +14 -0
  338. package/dist-lib/lib/core/invite.js +36 -0
  339. package/dist-lib/lib/core/local/index.d.ts +71 -0
  340. package/dist-lib/lib/core/local/index.js +391 -0
  341. package/dist-lib/lib/core/membership.d.ts +15 -0
  342. package/dist-lib/lib/core/membership.js +40 -0
  343. package/dist-lib/lib/core/mesh.d.ts +153 -0
  344. package/dist-lib/lib/core/mesh.js +509 -0
  345. package/dist-lib/lib/core/migrations/agent-catalog.d.ts +6 -0
  346. package/dist-lib/lib/core/migrations/agent-catalog.js +17 -0
  347. package/dist-lib/lib/core/migrations/index.d.ts +5 -0
  348. package/dist-lib/lib/core/migrations/index.js +7 -0
  349. package/dist-lib/lib/core/migrations/membership.d.ts +11 -0
  350. package/dist-lib/lib/core/migrations/membership.js +26 -0
  351. package/dist-lib/lib/core/min-version.d.ts +6 -0
  352. package/dist-lib/lib/core/min-version.js +31 -0
  353. package/dist-lib/lib/core/next-frame.d.ts +6 -0
  354. package/dist-lib/lib/core/next-frame.js +27 -0
  355. package/dist-lib/lib/core/notification.d.ts +6 -0
  356. package/dist-lib/lib/core/notification.js +162 -0
  357. package/dist-lib/lib/core/ota-config.d.ts +19 -0
  358. package/dist-lib/lib/core/ota-config.js +44 -0
  359. package/dist-lib/lib/core/prompt-history.d.ts +12 -0
  360. package/dist-lib/lib/core/prompt-history.js +40 -0
  361. package/dist-lib/lib/core/search-fold.d.ts +1 -0
  362. package/dist-lib/lib/core/search-fold.js +4 -0
  363. package/dist-lib/lib/core/secret-handoff.d.ts +17 -0
  364. package/dist-lib/lib/core/secret-handoff.js +29 -0
  365. package/dist-lib/lib/core/send.d.ts +18 -0
  366. package/dist-lib/lib/core/send.js +46 -0
  367. package/dist-lib/lib/core/skill-overlay-handoff.d.ts +25 -0
  368. package/dist-lib/lib/core/skill-overlay-handoff.js +50 -0
  369. package/dist-lib/lib/core/skill-overlay-receiver.d.ts +8 -0
  370. package/dist-lib/lib/core/skill-overlay-receiver.js +20 -0
  371. package/dist-lib/lib/core/skill-secrets.d.ts +25 -0
  372. package/dist-lib/lib/core/skill-secrets.js +79 -0
  373. package/dist-lib/lib/core/sync/chats.d.ts +3 -0
  374. package/dist-lib/lib/core/sync/chats.js +5 -0
  375. package/dist-lib/lib/core/sync/chunks.d.ts +9 -0
  376. package/dist-lib/lib/core/sync/chunks.js +16 -0
  377. package/dist-lib/lib/core/sync/devices.d.ts +4 -0
  378. package/dist-lib/lib/core/sync/devices.js +12 -0
  379. package/dist-lib/lib/core/sync/files.d.ts +16 -0
  380. package/dist-lib/lib/core/sync/files.js +109 -0
  381. package/dist-lib/lib/core/sync/index.d.ts +5 -0
  382. package/dist-lib/lib/core/sync/index.js +63 -0
  383. package/dist-lib/lib/core/sync-status.d.ts +17 -0
  384. package/dist-lib/lib/core/sync-status.js +129 -0
  385. package/dist-lib/lib/core/system-info.d.ts +24 -0
  386. package/dist-lib/lib/core/system-info.js +66 -0
  387. package/dist-lib/lib/core/tool-activity.d.ts +22 -0
  388. package/dist-lib/lib/core/tool-activity.js +39 -0
  389. package/dist-lib/lib/core/tool-configs.d.ts +13 -0
  390. package/dist-lib/lib/core/tool-configs.js +141 -0
  391. package/dist-lib/lib/core.d.ts +291 -0
  392. package/dist-lib/lib/core.js +2126 -0
  393. package/dist-lib/lib/credential-pusher.d.ts +67 -0
  394. package/dist-lib/lib/credential-pusher.js +290 -0
  395. package/dist-lib/lib/custom-model-pusher.d.ts +9 -0
  396. package/dist-lib/lib/custom-model-pusher.js +42 -0
  397. package/dist-lib/lib/custom-model-source.d.ts +15 -0
  398. package/dist-lib/lib/custom-model-source.js +46 -0
  399. package/dist-lib/lib/deadline.d.ts +9 -0
  400. package/dist-lib/lib/deadline.js +31 -0
  401. package/dist-lib/lib/diagnostics.d.ts +35 -0
  402. package/dist-lib/lib/diagnostics.js +14 -0
  403. package/dist-lib/lib/fetch-node.d.ts +1 -0
  404. package/dist-lib/lib/fetch-node.js +1 -0
  405. package/dist-lib/lib/fs-drive-bridge.d.ts +12 -0
  406. package/dist-lib/lib/fs-drive-bridge.js +186 -0
  407. package/dist-lib/lib/fs-grant-keys.d.ts +2 -0
  408. package/dist-lib/lib/fs-grant-keys.js +6 -0
  409. package/dist-lib/lib/fs-grants.d.ts +10 -0
  410. package/dist-lib/lib/fs-grants.js +44 -0
  411. package/dist-lib/lib/image-cache-dir.d.ts +1 -0
  412. package/dist-lib/lib/image-cache-dir.js +5 -0
  413. package/dist-lib/lib/integrations/index.d.ts +4 -0
  414. package/dist-lib/lib/integrations/index.js +3 -0
  415. package/dist-lib/lib/integrations/mcp-providers.d.ts +12 -0
  416. package/dist-lib/lib/integrations/mcp-providers.js +22 -0
  417. package/dist-lib/lib/integrations/oauth-providers.d.ts +14 -0
  418. package/dist-lib/lib/integrations/oauth-providers.js +116 -0
  419. package/dist-lib/lib/integrations/setup-routes.d.ts +12 -0
  420. package/dist-lib/lib/integrations/setup-routes.js +114 -0
  421. package/dist-lib/lib/knowledge-search.d.ts +7 -0
  422. package/dist-lib/lib/knowledge-search.js +53 -0
  423. package/dist-lib/lib/kv-cache-reclaim.d.ts +5 -0
  424. package/dist-lib/lib/kv-cache-reclaim.js +29 -0
  425. package/dist-lib/lib/kv-cache.d.ts +18 -0
  426. package/dist-lib/lib/kv-cache.js +33 -0
  427. package/dist-lib/lib/legacy-core-domain.d.ts +258 -0
  428. package/dist-lib/lib/legacy-core-domain.js +1 -0
  429. package/dist-lib/lib/llm-model-names.d.ts +1 -0
  430. package/dist-lib/lib/llm-model-names.js +1 -0
  431. package/dist-lib/lib/log-buffer.d.ts +7 -0
  432. package/dist-lib/lib/log-buffer.js +16 -0
  433. package/dist-lib/lib/log-levels.d.ts +7 -0
  434. package/dist-lib/lib/log-levels.js +1 -0
  435. package/dist-lib/lib/log.d.ts +60 -0
  436. package/dist-lib/lib/log.js +149 -0
  437. package/dist-lib/lib/logger-type.d.ts +13 -0
  438. package/dist-lib/lib/logger-type.js +1 -0
  439. package/dist-lib/lib/logger.d.ts +5 -0
  440. package/dist-lib/lib/logger.js +18 -0
  441. package/dist-lib/lib/model-catalog-revision.d.ts +9 -0
  442. package/dist-lib/lib/model-catalog-revision.js +65 -0
  443. package/dist-lib/lib/model-clamp.d.ts +6 -0
  444. package/dist-lib/lib/model-clamp.js +20 -0
  445. package/dist-lib/lib/model-context.d.ts +13 -0
  446. package/dist-lib/lib/model-context.js +71 -0
  447. package/dist-lib/lib/model-download-status.d.ts +29 -0
  448. package/dist-lib/lib/model-download-status.js +56 -0
  449. package/dist-lib/lib/model-download.d.ts +191 -0
  450. package/dist-lib/lib/model-download.js +787 -0
  451. package/dist-lib/lib/oauth/asana.d.ts +35 -0
  452. package/dist-lib/lib/oauth/asana.js +71 -0
  453. package/dist-lib/lib/oauth/browser-connect.d.ts +22 -0
  454. package/dist-lib/lib/oauth/browser-connect.js +83 -0
  455. package/dist-lib/lib/oauth/client.d.ts +9 -0
  456. package/dist-lib/lib/oauth/client.js +9 -0
  457. package/dist-lib/lib/oauth/common.d.ts +38 -0
  458. package/dist-lib/lib/oauth/common.js +36 -0
  459. package/dist-lib/lib/oauth/crypto.d.ts +3 -0
  460. package/dist-lib/lib/oauth/crypto.js +25 -0
  461. package/dist-lib/lib/oauth/fetch-platform.d.ts +1 -0
  462. package/dist-lib/lib/oauth/fetch-platform.js +1 -0
  463. package/dist-lib/lib/oauth/flow-core.d.ts +6 -0
  464. package/dist-lib/lib/oauth/flow-core.js +37 -0
  465. package/dist-lib/lib/oauth/flow.d.ts +3 -0
  466. package/dist-lib/lib/oauth/flow.js +24 -0
  467. package/dist-lib/lib/oauth/google.d.ts +37 -0
  468. package/dist-lib/lib/oauth/google.js +77 -0
  469. package/dist-lib/lib/oauth/host.d.ts +5 -0
  470. package/dist-lib/lib/oauth/host.js +3 -0
  471. package/dist-lib/lib/oauth/keys.d.ts +25 -0
  472. package/dist-lib/lib/oauth/keys.js +93 -0
  473. package/dist-lib/lib/oauth/loopback.d.ts +3 -0
  474. package/dist-lib/lib/oauth/loopback.js +119 -0
  475. package/dist-lib/lib/oauth/loopback.stub.d.ts +3 -0
  476. package/dist-lib/lib/oauth/loopback.stub.js +6 -0
  477. package/dist-lib/lib/oauth/notion.d.ts +34 -0
  478. package/dist-lib/lib/oauth/notion.js +82 -0
  479. package/dist-lib/lib/oauth/pkce-runtime.d.ts +3 -0
  480. package/dist-lib/lib/oauth/pkce-runtime.js +5 -0
  481. package/dist-lib/lib/oauth/pkce.d.ts +8 -0
  482. package/dist-lib/lib/oauth/pkce.js +6 -0
  483. package/dist-lib/lib/oauth/providers.d.ts +5 -0
  484. package/dist-lib/lib/oauth/providers.js +73 -0
  485. package/dist-lib/lib/oauth/redirect-types.d.ts +19 -0
  486. package/dist-lib/lib/oauth/redirect-types.js +1 -0
  487. package/dist-lib/lib/oauth/register.d.ts +3 -0
  488. package/dist-lib/lib/oauth/register.js +34 -0
  489. package/dist-lib/lib/oauth/resolve.d.ts +17 -0
  490. package/dist-lib/lib/oauth/resolve.js +57 -0
  491. package/dist-lib/lib/oauth/spotify.d.ts +32 -0
  492. package/dist-lib/lib/oauth/spotify.js +73 -0
  493. package/dist-lib/lib/oauth/token-exchange-core.d.ts +6 -0
  494. package/dist-lib/lib/oauth/token-exchange-core.js +97 -0
  495. package/dist-lib/lib/oauth/token-exchange.d.ts +5 -0
  496. package/dist-lib/lib/oauth/token-exchange.js +9 -0
  497. package/dist-lib/lib/oauth/types.d.ts +54 -0
  498. package/dist-lib/lib/oauth/types.js +1 -0
  499. package/dist-lib/lib/oauth.client.d.ts +5 -0
  500. package/dist-lib/lib/oauth.client.js +2 -0
  501. package/dist-lib/lib/oauth.d.ts +14 -0
  502. package/dist-lib/lib/oauth.js +12 -0
  503. package/dist-lib/lib/obsidian-key.d.ts +1 -0
  504. package/dist-lib/lib/obsidian-key.js +1 -0
  505. package/dist-lib/lib/race-resource.d.ts +5 -0
  506. package/dist-lib/lib/race-resource.js +25 -0
  507. package/dist-lib/lib/reconnecting-watch.d.ts +2 -0
  508. package/dist-lib/lib/reconnecting-watch.js +78 -0
  509. package/dist-lib/lib/retry-budget.d.ts +14 -0
  510. package/dist-lib/lib/retry-budget.js +39 -0
  511. package/dist-lib/lib/run-notices.d.ts +23 -0
  512. package/dist-lib/lib/run-notices.js +33 -0
  513. package/dist-lib/lib/run-transcript.d.ts +35 -0
  514. package/dist-lib/lib/run-transcript.js +106 -0
  515. package/dist-lib/lib/skill-readiness.d.ts +2 -0
  516. package/dist-lib/lib/skill-readiness.js +21 -0
  517. package/dist-lib/lib/skill-types.d.ts +70 -0
  518. package/dist-lib/lib/skill-types.js +1 -0
  519. package/dist-lib/lib/spec-loader.d.ts +14 -0
  520. package/dist-lib/lib/spec-loader.js +9 -0
  521. package/dist-lib/lib/suspend-lifecycle.d.ts +17 -0
  522. package/dist-lib/lib/suspend-lifecycle.js +33 -0
  523. package/dist-lib/lib/task.d.ts +26 -0
  524. package/dist-lib/lib/task.js +69 -0
  525. package/dist-lib/lib/unref.d.ts +3 -0
  526. package/dist-lib/lib/unref.js +4 -0
  527. package/dist-lib/lib/wav-duration.d.ts +1 -0
  528. package/dist-lib/lib/wav-duration.js +53 -0
  529. package/dist-lib/lib/write-queue.d.ts +22 -0
  530. package/dist-lib/lib/write-queue.js +39 -0
  531. package/dist-lib/schema/build.d.ts +1 -0
  532. package/dist-lib/schema/build.js +120 -0
  533. package/dist-lib/schema/config.d.ts +4 -0
  534. package/dist-lib/schema/config.js +7 -0
  535. package/dist-lib/schema/content.d.ts +20 -0
  536. package/dist-lib/schema/content.js +122 -0
  537. package/dist-lib/schema/engine.d.ts +2 -0
  538. package/dist-lib/schema/engine.js +2013 -0
  539. package/dist-lib/schema/field-order.d.ts +1 -0
  540. package/dist-lib/schema/field-order.js +95 -0
  541. package/dist-lib/schema/local.d.ts +2 -0
  542. package/dist-lib/schema/local.js +133 -0
  543. package/dist-lib/schema/qvac.d.ts +22 -0
  544. package/dist-lib/schema/qvac.js +722 -0
  545. package/dist-lib/spec/bind.d.ts +2 -0
  546. package/dist-lib/spec/bind.js +520 -0
  547. package/dist-lib/spec/calls.d.ts +3 -0
  548. package/dist-lib/spec/calls.js +129 -0
  549. package/dist-lib/spec/capabilities.d.ts +263 -0
  550. package/dist-lib/spec/config/hyperconf/index.d.ts +15 -0
  551. package/dist-lib/spec/config/hyperconf/index.js +24 -0
  552. package/dist-lib/spec/config/hyperconf/package.json +3 -0
  553. package/dist-lib/spec/config/hyperschema/index.js +81 -0
  554. package/dist-lib/spec/config/hyperschema/schema.json +19 -0
  555. package/dist-lib/spec/hrpc/hrpc.json +1500 -0
  556. package/dist-lib/spec/hrpc/index.d.ts +3 -0
  557. package/dist-lib/spec/hrpc/index.js +1545 -0
  558. package/dist-lib/spec/hrpc/messages.d.ts +4 -0
  559. package/dist-lib/spec/hrpc/messages.js +8373 -0
  560. package/dist-lib/spec/hyperschema/index.d.ts +20 -0
  561. package/dist-lib/spec/hyperschema/index.js +8373 -0
  562. package/dist-lib/spec/hyperschema/schema.json +6202 -0
  563. package/dist-lib/spec/hyperschema/types.d.ts +1545 -0
  564. package/dist-lib/spec/index.d.ts +36 -0
  565. package/dist-lib/spec/index.js +6 -0
  566. package/dist-lib/spec/local/hyperdb/db.json +186 -0
  567. package/dist-lib/spec/local/hyperdb/index.d.ts +9 -0
  568. package/dist-lib/spec/local/hyperdb/index.js +855 -0
  569. package/dist-lib/spec/local/hyperdb/messages.js +2189 -0
  570. package/dist-lib/spec/local/hyperschema/index.js +1208 -0
  571. package/dist-lib/spec/local/hyperschema/schema.json +639 -0
  572. package/dist-lib/spec/local/hyperschema/types.d.ts +159 -0
  573. package/dist-lib/spec/mesh/hyperdb/db.json +702 -0
  574. package/dist-lib/spec/mesh/hyperdb/index.d.ts +9 -0
  575. package/dist-lib/spec/mesh/hyperdb/index.js +2260 -0
  576. package/dist-lib/spec/mesh/hyperdb/messages.js +7453 -0
  577. package/dist-lib/spec/mesh/hyperdispatch/dispatch.json +174 -0
  578. package/dist-lib/spec/mesh/hyperdispatch/index.d.ts +13 -0
  579. package/dist-lib/spec/mesh/hyperdispatch/index.js +566 -0
  580. package/dist-lib/spec/mesh/hyperdispatch/messages.js +5713 -0
  581. package/dist-lib/spec/mesh/hyperschema/index.d.ts +14 -0
  582. package/dist-lib/spec/mesh/hyperschema/index.js +5713 -0
  583. package/dist-lib/spec/mesh/hyperschema/schema.json +3142 -0
  584. package/dist-lib/spec/mesh/hyperschema/types.d.ts +754 -0
  585. package/ducks.png +0 -0
  586. package/package.json +332 -1
@@ -0,0 +1,64 @@
1
+ import type { AssistantFileProcessorStatus } from '../../../../spec/hyperschema/types.d.ts';
2
+ import type { IndexingProgress } from '../rag/index.ts';
3
+ export type LocalWork = Pick<AssistantFileProcessorStatus, 'state' | 'reason' | 'retryAt'>;
4
+ export type IndexingProgressEntry = Omit<Parameters<IndexingProgress>[0], 'error'> & {
5
+ error: string | null;
6
+ };
7
+ export type LoadedArtifact = {
8
+ artifactId: string;
9
+ blobRef?: string;
10
+ evict?: string;
11
+ };
12
+ type DocumentState = {
13
+ work?: LocalWork;
14
+ load?: LocalWork;
15
+ progress?: IndexingProgressEntry;
16
+ loaded?: LoadedArtifact;
17
+ sourceMisses?: number;
18
+ artifactIdMemo?: string;
19
+ embedFailures?: number;
20
+ preferredUntil?: number;
21
+ };
22
+ type ArtifactState = {
23
+ knowledgeId?: string;
24
+ terminal?: boolean;
25
+ failedReference?: string;
26
+ unavailable?: {
27
+ blobRef: string;
28
+ repeated: boolean;
29
+ };
30
+ rebuildFailures?: number;
31
+ published?: {
32
+ artifactBlobId: string;
33
+ };
34
+ };
35
+ export declare class FileRetries {
36
+ private readonly _entries;
37
+ private readonly _missing;
38
+ blockedUntil(id: string, now: number): number | null;
39
+ miss(id: string, now: number, retryMs: number): number;
40
+ missing(id: string, missing: boolean): void;
41
+ clear(id?: string): void;
42
+ reconnect(onRetry?: (id: string, deadline: number) => void): number | null;
43
+ get(id: string): Readonly<{
44
+ at: number;
45
+ delay: number;
46
+ }> | undefined;
47
+ rewind(id: string): void;
48
+ }
49
+ export declare class FileState {
50
+ private readonly _documents;
51
+ private readonly _artifacts;
52
+ readonly sourceRetries: FileRetries;
53
+ readonly outputRetries: FileRetries;
54
+ document(id: string): DocumentState;
55
+ artifact(id: string): ArtifactState;
56
+ get(id: string): Readonly<DocumentState> | undefined;
57
+ readArtifact(id: string): Readonly<ArtifactState> | undefined;
58
+ progress(chatId: string): IndexingProgressEntry[];
59
+ clearLoaded(): void;
60
+ retry(id: string): void;
61
+ reset(): void;
62
+ close(): void;
63
+ }
64
+ export {};
@@ -0,0 +1,118 @@
1
+ export class FileRetries {
2
+ _entries = new Map();
3
+ _missing = new Set();
4
+ blockedUntil(id, now) {
5
+ const entry = this._entries.get(id);
6
+ return entry && now < entry.at ? entry.at : null;
7
+ }
8
+ miss(id, now, retryMs) {
9
+ const previous = this._entries.get(id);
10
+ const delay = previous ? Math.min(previous.delay * 2, 600_000) : retryMs;
11
+ const at = now + delay;
12
+ this._entries.set(id, { at, delay });
13
+ return at;
14
+ }
15
+ missing(id, missing) {
16
+ if (missing)
17
+ this._missing.add(id);
18
+ else
19
+ this._missing.delete(id);
20
+ }
21
+ clear(id) {
22
+ if (id !== undefined) {
23
+ this._entries.delete(id);
24
+ this._missing.delete(id);
25
+ }
26
+ else {
27
+ this._entries.clear();
28
+ this._missing.clear();
29
+ }
30
+ }
31
+ reconnect(onRetry) {
32
+ let deadline = null;
33
+ for (const id of this._missing) {
34
+ const entry = this._entries.get(id);
35
+ if (!entry)
36
+ continue;
37
+ deadline ??= Date.now() + 250;
38
+ entry.at = Math.min(entry.at, deadline);
39
+ onRetry?.(id, entry.at);
40
+ }
41
+ return deadline;
42
+ }
43
+ get(id) {
44
+ return this._entries.get(id);
45
+ }
46
+ rewind(id) {
47
+ const entry = this._entries.get(id);
48
+ if (entry)
49
+ entry.at = 0;
50
+ }
51
+ }
52
+ export class FileState {
53
+ _documents = new Map();
54
+ _artifacts = new Map();
55
+ sourceRetries = new FileRetries();
56
+ outputRetries = new FileRetries();
57
+ document(id) {
58
+ let entry = this._documents.get(id);
59
+ if (!entry)
60
+ this._documents.set(id, (entry = {}));
61
+ return entry;
62
+ }
63
+ artifact(id) {
64
+ let entry = this._artifacts.get(id);
65
+ if (!entry)
66
+ this._artifacts.set(id, (entry = {}));
67
+ return entry;
68
+ }
69
+ get(id) {
70
+ return this._documents.get(id);
71
+ }
72
+ readArtifact(id) {
73
+ return this._artifacts.get(id);
74
+ }
75
+ progress(chatId) {
76
+ return [...this._documents.values()].flatMap((entry) => entry.progress?.chatId === chatId ? [entry.progress] : []);
77
+ }
78
+ clearLoaded() {
79
+ for (const entry of this._documents.values()) {
80
+ entry.loaded = undefined;
81
+ entry.load = undefined;
82
+ }
83
+ }
84
+ retry(id) {
85
+ const entry = this.document(id);
86
+ entry.work = undefined;
87
+ entry.load = undefined;
88
+ entry.preferredUntil = 0;
89
+ entry.embedFailures = undefined;
90
+ entry.sourceMisses = undefined;
91
+ this.sourceRetries.clear(id);
92
+ this.outputRetries.clear(id);
93
+ for (const [artifactId, output] of this._artifacts) {
94
+ if (output.knowledgeId !== id && artifactId !== entry.artifactIdMemo)
95
+ continue;
96
+ output.terminal = false;
97
+ output.failedReference = undefined;
98
+ output.unavailable = undefined;
99
+ output.rebuildFailures = undefined;
100
+ this.outputRetries.clear(artifactId);
101
+ }
102
+ }
103
+ reset() {
104
+ this._documents.clear();
105
+ for (const [id, entry] of this._artifacts) {
106
+ if (entry.published)
107
+ this._artifacts.set(id, { published: entry.published });
108
+ else
109
+ this._artifacts.delete(id);
110
+ }
111
+ this.sourceRetries.clear();
112
+ this.outputRetries.clear();
113
+ }
114
+ close() {
115
+ this.reset();
116
+ this._artifacts.clear();
117
+ }
118
+ }
@@ -0,0 +1,3 @@
1
+ import { type RagArtifactPayload } from './types.ts';
2
+ export declare function encodeRagArtifact(payload: RagArtifactPayload): Buffer;
3
+ export declare function decodeRagArtifact(bytes: Buffer): RagArtifactPayload;
@@ -0,0 +1,172 @@
1
+ import b4a from 'b4a';
2
+ import { ARTIFACT_FORMAT_VERSION, assertRagArtifactPayload } from "./types.js";
3
+ const MAGIC = b4a.from(ARTIFACT_FORMAT_VERSION, 'ascii');
4
+ const HEADER_LENGTH_BYTES = 4;
5
+ export function encodeRagArtifact(payload) {
6
+ assertRagArtifactPayload(payload);
7
+ assertPayloadDimensions(payload);
8
+ const sections = buildSections(payload);
9
+ const header = b4a.from(JSON.stringify(sections.header), 'utf8');
10
+ const headerLength = b4a.alloc(HEADER_LENGTH_BYTES);
11
+ b4a.writeUInt32LE(headerLength, header.byteLength, 0);
12
+ return b4a.concat([
13
+ MAGIC,
14
+ headerLength,
15
+ header,
16
+ sections.text,
17
+ sections.metadata,
18
+ sections.embeddings
19
+ ]);
20
+ }
21
+ export function decodeRagArtifact(bytes) {
22
+ assertMagic(bytes);
23
+ const headerLengthOffset = MAGIC.byteLength;
24
+ const headerLength = b4a.readUInt32LE(bytes, headerLengthOffset);
25
+ const headerStart = headerLengthOffset + HEADER_LENGTH_BYTES;
26
+ const headerEnd = headerStart + headerLength;
27
+ let parsed;
28
+ try {
29
+ parsed = JSON.parse(b4a.toString(bytes.subarray(headerStart, headerEnd), 'utf8'));
30
+ }
31
+ catch {
32
+ throw new Error('RAG artifact header is not valid JSON');
33
+ }
34
+ const header = parseArtifactHeader(parsed);
35
+ const textStart = headerEnd;
36
+ const metadataStart = textStart + header.textByteLength;
37
+ const embeddingStart = metadataStart + header.metadataByteLength;
38
+ assertExpectedLength(bytes, header, embeddingStart);
39
+ return {
40
+ modelName: header.modelName,
41
+ dimensions: header.dimensions,
42
+ chunks: header.chunks.map((chunk, index) => decodeChunk(bytes, header, chunk, index, textStart, metadataStart, embeddingStart))
43
+ };
44
+ }
45
+ function buildSections(payload) {
46
+ const textBuffers = [];
47
+ const metadataBuffers = [];
48
+ const chunks = [];
49
+ let contentOffset = 0;
50
+ let metadataOffset = 0;
51
+ for (const chunk of payload.chunks) {
52
+ const content = b4a.from(chunk.content, 'utf8');
53
+ const metadata = b4a.from(chunk.metadataJson, 'utf8');
54
+ chunks.push({
55
+ id: chunk.id,
56
+ contentOffset,
57
+ contentLength: content.byteLength,
58
+ metadataOffset,
59
+ metadataLength: metadata.byteLength
60
+ });
61
+ textBuffers.push(content);
62
+ metadataBuffers.push(metadata);
63
+ contentOffset += content.byteLength;
64
+ metadataOffset += metadata.byteLength;
65
+ }
66
+ return {
67
+ header: {
68
+ modelName: payload.modelName,
69
+ dimensions: payload.dimensions,
70
+ chunkCount: payload.chunks.length,
71
+ textByteLength: contentOffset,
72
+ metadataByteLength: metadataOffset,
73
+ chunks
74
+ },
75
+ text: b4a.concat(textBuffers),
76
+ metadata: b4a.concat(metadataBuffers),
77
+ embeddings: encodeEmbeddings(payload)
78
+ };
79
+ }
80
+ function encodeEmbeddings(payload) {
81
+ const embeddings = b4a.alloc(payload.chunks.length * payload.dimensions * 4);
82
+ let offset = 0;
83
+ for (const chunk of payload.chunks) {
84
+ for (const value of chunk.embedding) {
85
+ b4a.writeFloatLE(embeddings, finite(value), offset);
86
+ offset += 4;
87
+ }
88
+ }
89
+ return embeddings;
90
+ }
91
+ function decodeChunk(bytes, header, chunk, index, textStart, metadataStart, embeddingStart) {
92
+ return {
93
+ id: chunk.id,
94
+ content: b4a.toString(bytes.subarray(textStart + chunk.contentOffset, textStart + chunk.contentOffset + chunk.contentLength), 'utf8'),
95
+ metadataJson: b4a.toString(bytes.subarray(metadataStart + chunk.metadataOffset, metadataStart + chunk.metadataOffset + chunk.metadataLength), 'utf8'),
96
+ embedding: decodeEmbedding(bytes, header.dimensions, embeddingStart, index)
97
+ };
98
+ }
99
+ function decodeEmbedding(bytes, dimensions, embeddingStart, chunkIndex) {
100
+ const values = [];
101
+ let offset = embeddingStart + chunkIndex * dimensions * 4;
102
+ for (let index = 0; index < dimensions; index++) {
103
+ const value = b4a.readFloatLE(bytes, offset);
104
+ if (!Number.isFinite(value)) {
105
+ throw new Error('RAG artifact has a non-finite embedding value');
106
+ }
107
+ values.push(value);
108
+ offset += 4;
109
+ }
110
+ return values;
111
+ }
112
+ function parseArtifactHeader(value) {
113
+ const header = value;
114
+ if (!header ||
115
+ typeof header.modelName !== 'string' ||
116
+ !isNonNegativeInteger(header.dimensions) ||
117
+ header.dimensions === 0 ||
118
+ !isNonNegativeInteger(header.chunkCount) ||
119
+ !isNonNegativeInteger(header.textByteLength) ||
120
+ !isNonNegativeInteger(header.metadataByteLength) ||
121
+ !Array.isArray(header.chunks) ||
122
+ !header.chunks.every(isChunkHeader)) {
123
+ throw new Error('RAG artifact header is malformed');
124
+ }
125
+ const parsed = header;
126
+ for (const chunk of parsed.chunks) {
127
+ if (chunk.contentOffset + chunk.contentLength > parsed.textByteLength ||
128
+ chunk.metadataOffset + chunk.metadataLength > parsed.metadataByteLength) {
129
+ throw new Error('RAG artifact chunk range is out of bounds');
130
+ }
131
+ }
132
+ return parsed;
133
+ }
134
+ function isChunkHeader(value) {
135
+ const chunk = value;
136
+ return Boolean(chunk &&
137
+ typeof chunk.id === 'string' &&
138
+ isNonNegativeInteger(chunk.contentOffset) &&
139
+ isNonNegativeInteger(chunk.contentLength) &&
140
+ isNonNegativeInteger(chunk.metadataOffset) &&
141
+ isNonNegativeInteger(chunk.metadataLength));
142
+ }
143
+ function isNonNegativeInteger(value) {
144
+ return typeof value === 'number' && Number.isInteger(value) && value >= 0;
145
+ }
146
+ function assertPayloadDimensions(payload) {
147
+ for (const chunk of payload.chunks) {
148
+ if (chunk.embedding.length !== payload.dimensions) {
149
+ throw new Error(`Chunk ${chunk.id} has ${chunk.embedding.length} dimensions`);
150
+ }
151
+ }
152
+ }
153
+ function assertMagic(bytes) {
154
+ if (bytes.byteLength < MAGIC.byteLength + HEADER_LENGTH_BYTES) {
155
+ throw new Error('RAG artifact is truncated');
156
+ }
157
+ if (!b4a.equals(bytes.subarray(0, MAGIC.byteLength), MAGIC)) {
158
+ throw new Error('RAG artifact has an unsupported format');
159
+ }
160
+ }
161
+ function assertExpectedLength(bytes, header, embeddingStart) {
162
+ const expected = embeddingStart + header.chunkCount * header.dimensions * 4;
163
+ if (bytes.byteLength !== expected || header.chunkCount !== header.chunks.length) {
164
+ throw new Error('RAG artifact length does not match its header');
165
+ }
166
+ }
167
+ function finite(value) {
168
+ if (!Number.isFinite(value)) {
169
+ throw new Error('Embedding value must be finite');
170
+ }
171
+ return value;
172
+ }
@@ -0,0 +1,10 @@
1
+ export type ArtifactIdInput = {
2
+ readonly attachmentId: string;
3
+ readonly sourceBlobId: string;
4
+ readonly sourceHash: string;
5
+ readonly embeddingModel: string;
6
+ };
7
+ export declare function contentHash(bytes: Buffer): string;
8
+ export declare function documentIndexArtifactId(input: ArtifactIdInput): string;
9
+ export declare function pipelineVersionFor(model: string): string;
10
+ export declare function stableHashString(value: string): string;
@@ -0,0 +1,39 @@
1
+ import b4a from 'b4a';
2
+ import { CHUNKER_VERSION, EMBEDDER_CODE_VERSION, EXTRACTOR_VERSION } from "./types.js";
3
+ export function contentHash(bytes) {
4
+ return stableHashBytes(bytes);
5
+ }
6
+ export function documentIndexArtifactId(input) {
7
+ return [
8
+ 'docidx',
9
+ stableHashString([
10
+ input.attachmentId,
11
+ input.sourceBlobId,
12
+ input.sourceHash,
13
+ input.embeddingModel,
14
+ EMBEDDER_CODE_VERSION,
15
+ EXTRACTOR_VERSION,
16
+ CHUNKER_VERSION
17
+ ].join('\u0000'))
18
+ ].join('-');
19
+ }
20
+ export function pipelineVersionFor(model) {
21
+ return `${model}|${EMBEDDER_CODE_VERSION}|${EXTRACTOR_VERSION}|${CHUNKER_VERSION}`;
22
+ }
23
+ export function stableHashString(value) {
24
+ return stableHashBytes(b4a.from(value, 'utf8'));
25
+ }
26
+ function stableHashBytes(bytes) {
27
+ let high = 0x811c9dc5;
28
+ let low = 0x01000193;
29
+ for (const byte of bytes) {
30
+ high ^= byte;
31
+ high = Math.imul(high, 0x01000193);
32
+ low ^= byte + 0x9e3779b9;
33
+ low = Math.imul(low, 0x85ebca6b);
34
+ }
35
+ return `${hex32(high)}${hex32(low)}`;
36
+ }
37
+ function hex32(value) {
38
+ return (value >>> 0).toString(16).padStart(8, '0');
39
+ }
@@ -0,0 +1,24 @@
1
+ export declare const DOCUMENT_INDEX_ARTIFACT_STATUS: {
2
+ readonly pending: "pending";
3
+ readonly indexing: "indexing";
4
+ readonly ready: "ready";
5
+ readonly failed: "failed";
6
+ };
7
+ export type DocumentIndexArtifactStatus = (typeof DOCUMENT_INDEX_ARTIFACT_STATUS)[keyof typeof DOCUMENT_INDEX_ARTIFACT_STATUS];
8
+ export declare const EXTRACTOR_VERSION = "document-extractor-v1";
9
+ export declare const CHUNKER_VERSION = "rag-chunker-v1";
10
+ export declare const ARTIFACT_FORMAT_VERSION = "QVRAGIDX1";
11
+ export declare const EMBEDDER_CODE_VERSION = "embedder-v1";
12
+ export type RagArtifactChunk = {
13
+ readonly id: string;
14
+ readonly content: string;
15
+ readonly metadataJson: string;
16
+ readonly embedding: ReadonlyArray<number>;
17
+ };
18
+ export type RagArtifactPayload = {
19
+ readonly modelName: string;
20
+ readonly dimensions: number;
21
+ readonly chunks: ReadonlyArray<RagArtifactChunk>;
22
+ };
23
+ export declare function isDocumentIndexArtifactStatus(value: unknown): value is DocumentIndexArtifactStatus;
24
+ export declare function assertRagArtifactPayload(payload: RagArtifactPayload): void;
@@ -0,0 +1,41 @@
1
+ export const DOCUMENT_INDEX_ARTIFACT_STATUS = {
2
+ pending: 'pending',
3
+ indexing: 'indexing',
4
+ ready: 'ready',
5
+ failed: 'failed'
6
+ };
7
+ export const EXTRACTOR_VERSION = 'document-extractor-v1';
8
+ export const CHUNKER_VERSION = 'rag-chunker-v1';
9
+ export const ARTIFACT_FORMAT_VERSION = 'QVRAGIDX1';
10
+ export const EMBEDDER_CODE_VERSION = 'embedder-v1';
11
+ export function isDocumentIndexArtifactStatus(value) {
12
+ return typeof value === 'string' && value in DOCUMENT_INDEX_ARTIFACT_STATUS;
13
+ }
14
+ export function assertRagArtifactPayload(payload) {
15
+ if (typeof payload.modelName !== 'string' || payload.modelName.length === 0) {
16
+ throw new Error('RAG artifact payload needs a model name');
17
+ }
18
+ if (!Number.isInteger(payload.dimensions) || payload.dimensions <= 0) {
19
+ throw new Error('RAG artifact payload needs positive integer dimensions');
20
+ }
21
+ if (!Array.isArray(payload.chunks)) {
22
+ throw new Error('RAG artifact payload needs a chunk array');
23
+ }
24
+ for (const chunk of payload.chunks) {
25
+ if (chunk === null || typeof chunk !== 'object') {
26
+ throw new Error('RAG artifact chunk must be an object');
27
+ }
28
+ if (typeof chunk.id !== 'string' || chunk.id.length === 0) {
29
+ throw new Error('RAG artifact chunk needs an id');
30
+ }
31
+ if (typeof chunk.content !== 'string' || typeof chunk.metadataJson !== 'string') {
32
+ throw new Error(`RAG artifact chunk ${chunk.id} needs string content and metadata`);
33
+ }
34
+ if (!Array.isArray(chunk.embedding) || !chunk.embedding.every(isNumber)) {
35
+ throw new Error(`RAG artifact chunk ${chunk.id} needs a numeric embedding`);
36
+ }
37
+ }
38
+ }
39
+ function isNumber(value) {
40
+ return typeof value === 'number';
41
+ }
@@ -0,0 +1,25 @@
1
+ import type { AbortSignal } from 'bare-abort-controller';
2
+ import type { QvacKnowledge } from '../../../../spec/mesh/hyperschema/types.d.ts';
3
+ import { type RagExtractors } from './extract/extract.ts';
4
+ import type { RagArtifactPayload } from './artifact/types.ts';
5
+ export type BuildEmbedder = {
6
+ model: string;
7
+ embed(input: {
8
+ texts: string[];
9
+ signal?: AbortSignal;
10
+ }): Promise<number[][]>;
11
+ };
12
+ export type BuildProgress = (processedChunks: number, totalChunks: number) => void;
13
+ export declare class EmbedderFailure extends Error {
14
+ constructor(cause: unknown);
15
+ }
16
+ export interface ArtifactBuildInput {
17
+ embedder: BuildEmbedder;
18
+ knowledge: QvacKnowledge;
19
+ artifactId: string;
20
+ bytes: Buffer;
21
+ signal: AbortSignal;
22
+ onProgress?: BuildProgress;
23
+ extractors?: RagExtractors;
24
+ }
25
+ export declare function buildArtifactPayload(input: ArtifactBuildInput): Promise<RagArtifactPayload>;
@@ -0,0 +1,60 @@
1
+ import { chunkRagDocuments } from "./chunk/chunking.js";
2
+ import { extractRagDocumentFromBytes } from "./extract/extract.js";
3
+ import { AbortedError } from '@qvac/harness/race-abort';
4
+ const EMBED_BATCH = 8;
5
+ export class EmbedderFailure extends Error {
6
+ constructor(cause) {
7
+ super(cause instanceof Error ? cause.message : String(cause), { cause });
8
+ this.name = 'EmbedderFailure';
9
+ }
10
+ }
11
+ export async function buildArtifactPayload(input) {
12
+ const { embedder, knowledge, artifactId, bytes, signal, onProgress, extractors } = input;
13
+ const document = await extractRagDocumentFromBytes({
14
+ id: artifactId,
15
+ artifactId,
16
+ attachmentId: knowledge.id,
17
+ chatId: knowledge.chatId,
18
+ blobId: knowledge.blobId,
19
+ fileName: knowledge.fileName,
20
+ mimeType: knowledge.mimeType,
21
+ bytes
22
+ }, { extractors, signal });
23
+ const chunks = chunkRagDocuments([document], {});
24
+ if (!document.content.trim() || chunks.length === 0) {
25
+ throw new Error(`no extractable text: ${knowledge.fileName}`);
26
+ }
27
+ onProgress?.(0, chunks.length);
28
+ const vectors = [];
29
+ for (let start = 0; start < chunks.length; start += EMBED_BATCH) {
30
+ if (signal.aborted)
31
+ throw new AbortedError();
32
+ const batch = chunks.slice(start, start + EMBED_BATCH);
33
+ let rows;
34
+ try {
35
+ rows = await embedder.embed({ texts: batch.map((c) => c.content), signal });
36
+ }
37
+ catch (err) {
38
+ throw new EmbedderFailure(err);
39
+ }
40
+ vectors.push(...rows);
41
+ onProgress?.(Math.min(start + batch.length, chunks.length), chunks.length);
42
+ }
43
+ if (vectors.length !== chunks.length) {
44
+ throw new Error(`embedder returned ${vectors.length} vectors for ${chunks.length} chunks`);
45
+ }
46
+ const dimensions = vectors[0]?.length ?? 0;
47
+ if (dimensions <= 0 || vectors.some((v) => v.length !== dimensions)) {
48
+ throw new Error('embedder returned inconsistent dimensions');
49
+ }
50
+ return {
51
+ modelName: embedder.model,
52
+ dimensions,
53
+ chunks: chunks.map((chunk, i) => ({
54
+ id: chunk.id,
55
+ content: chunk.content,
56
+ metadataJson: chunk.metadataJson,
57
+ embedding: vectors[i]
58
+ }))
59
+ };
60
+ }
@@ -0,0 +1,12 @@
1
+ import type { RagDocumentInput } from '../extract/types.ts';
2
+ export type RagPreparedChunk = {
3
+ readonly id: string;
4
+ readonly content: string;
5
+ readonly tokenCount: number;
6
+ readonly metadataJson: string;
7
+ };
8
+ export type ChunkOptions = {
9
+ readonly chunkSize?: number;
10
+ readonly chunkOverlap?: number;
11
+ };
12
+ export declare function chunkRagDocuments(documents: ReadonlyArray<RagDocumentInput>, options: ChunkOptions): ReadonlyArray<RagPreparedChunk>;