@qvac/core 0.0.0 → 0.1.1

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 (589) 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 +47257 -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/helpers.d.ts +28 -0
  542. package/dist-lib/schema/helpers.js +176 -0
  543. package/dist-lib/schema/local.d.ts +2 -0
  544. package/dist-lib/schema/local.js +133 -0
  545. package/dist-lib/schema/qvac.d.ts +22 -0
  546. package/dist-lib/schema/qvac.js +722 -0
  547. package/dist-lib/schema/vendor.d.ts +5 -0
  548. package/dist-lib/spec/bind.d.ts +2 -0
  549. package/dist-lib/spec/bind.js +520 -0
  550. package/dist-lib/spec/calls.d.ts +3 -0
  551. package/dist-lib/spec/calls.js +129 -0
  552. package/dist-lib/spec/capabilities.d.ts +263 -0
  553. package/dist-lib/spec/config/hyperconf/index.d.ts +15 -0
  554. package/dist-lib/spec/config/hyperconf/index.js +24 -0
  555. package/dist-lib/spec/config/hyperconf/package.json +3 -0
  556. package/dist-lib/spec/config/hyperschema/index.js +81 -0
  557. package/dist-lib/spec/config/hyperschema/schema.json +19 -0
  558. package/dist-lib/spec/hrpc/hrpc.json +1500 -0
  559. package/dist-lib/spec/hrpc/index.d.ts +3 -0
  560. package/dist-lib/spec/hrpc/index.js +1545 -0
  561. package/dist-lib/spec/hrpc/messages.d.ts +4 -0
  562. package/dist-lib/spec/hrpc/messages.js +8373 -0
  563. package/dist-lib/spec/hyperschema/index.d.ts +20 -0
  564. package/dist-lib/spec/hyperschema/index.js +8373 -0
  565. package/dist-lib/spec/hyperschema/schema.json +6202 -0
  566. package/dist-lib/spec/hyperschema/types.d.ts +1545 -0
  567. package/dist-lib/spec/index.d.ts +36 -0
  568. package/dist-lib/spec/index.js +6 -0
  569. package/dist-lib/spec/local/hyperdb/db.json +186 -0
  570. package/dist-lib/spec/local/hyperdb/index.d.ts +9 -0
  571. package/dist-lib/spec/local/hyperdb/index.js +855 -0
  572. package/dist-lib/spec/local/hyperdb/messages.js +2189 -0
  573. package/dist-lib/spec/local/hyperschema/index.js +1208 -0
  574. package/dist-lib/spec/local/hyperschema/schema.json +639 -0
  575. package/dist-lib/spec/local/hyperschema/types.d.ts +159 -0
  576. package/dist-lib/spec/mesh/hyperdb/db.json +702 -0
  577. package/dist-lib/spec/mesh/hyperdb/index.d.ts +9 -0
  578. package/dist-lib/spec/mesh/hyperdb/index.js +2260 -0
  579. package/dist-lib/spec/mesh/hyperdb/messages.js +7453 -0
  580. package/dist-lib/spec/mesh/hyperdispatch/dispatch.json +174 -0
  581. package/dist-lib/spec/mesh/hyperdispatch/index.d.ts +13 -0
  582. package/dist-lib/spec/mesh/hyperdispatch/index.js +566 -0
  583. package/dist-lib/spec/mesh/hyperdispatch/messages.js +5713 -0
  584. package/dist-lib/spec/mesh/hyperschema/index.d.ts +14 -0
  585. package/dist-lib/spec/mesh/hyperschema/index.js +5713 -0
  586. package/dist-lib/spec/mesh/hyperschema/schema.json +3142 -0
  587. package/dist-lib/spec/mesh/hyperschema/types.d.ts +754 -0
  588. package/ducks.png +0 -0
  589. package/package.json +336 -1
@@ -0,0 +1,117 @@
1
+ import { buildRagChunkMetadata } from "./metadata.js";
2
+ import { tokenizeForRag } from "./tokenizer.js";
3
+ const DEFAULT_CHUNK_SIZE = 256;
4
+ const DEFAULT_CHUNK_OVERLAP = 50;
5
+ export function chunkRagDocuments(documents, options) {
6
+ return documents.flatMap((document) => chunkDocument(document, normalizeChunkOptions(options)));
7
+ }
8
+ function chunkDocument(document, options) {
9
+ const tokens = tokenizeForRag(document.content);
10
+ if (tokens.length === 0) {
11
+ return [];
12
+ }
13
+ const chunks = [];
14
+ const paragraphEnds = paragraphEndIndexes(tokens);
15
+ for (let start = skipBreakTokens(tokens, 0); start < tokens.length;) {
16
+ const end = chunkEnd(start, tokens.length, paragraphEnds, options.chunkSize);
17
+ const first = tokens[start];
18
+ const last = tokens[end - 1];
19
+ if (!first || !last) {
20
+ break;
21
+ }
22
+ const content = document.content.slice(first.start, last.end).trim();
23
+ chunks.push(buildChunk(document, chunks.length, content, end - start));
24
+ if (end === tokens.length) {
25
+ break;
26
+ }
27
+ start = skipBreakTokens(tokens, nextStart(start, end, options.chunkOverlap));
28
+ }
29
+ return chunks;
30
+ }
31
+ function paragraphEndIndexes(tokens) {
32
+ const ends = [];
33
+ let paragraphStart = 0;
34
+ let breakStart = null;
35
+ let newlineCount = 0;
36
+ tokens.forEach((token, index) => {
37
+ const newlines = countNewlines(token.text);
38
+ if (newlines === 0 && token.text.trim().length > 0) {
39
+ breakStart = null;
40
+ newlineCount = 0;
41
+ return;
42
+ }
43
+ if (newlines === 0) {
44
+ return;
45
+ }
46
+ breakStart ??= index;
47
+ newlineCount += newlines;
48
+ if (newlineCount < 2) {
49
+ return;
50
+ }
51
+ if (paragraphStart < breakStart) {
52
+ ends.push(breakStart);
53
+ }
54
+ paragraphStart = index + 1;
55
+ breakStart = null;
56
+ newlineCount = 0;
57
+ });
58
+ return [...ends, tokens.length];
59
+ }
60
+ function chunkEnd(start, tokenCount, paragraphEnds, chunkSize) {
61
+ const maxEnd = Math.min(start + chunkSize, tokenCount);
62
+ return paragraphEnds.filter((end) => end > start && end <= maxEnd).at(-1) ?? maxEnd;
63
+ }
64
+ function nextStart(start, end, overlap) {
65
+ const overlapped = end - overlap;
66
+ return overlapped > start ? overlapped : end;
67
+ }
68
+ function skipBreakTokens(tokens, start) {
69
+ let next = start;
70
+ let token = tokens[next];
71
+ while (token && isParagraphSeparatorToken(token.text)) {
72
+ next++;
73
+ token = tokens[next];
74
+ }
75
+ return next;
76
+ }
77
+ function isParagraphSeparatorToken(text) {
78
+ return text.trim().length === 0 && text.includes('\n');
79
+ }
80
+ function countNewlines(text) {
81
+ return [...text].filter((char) => char === '\n').length;
82
+ }
83
+ function buildChunk(document, chunkIndex, content, tokenCount) {
84
+ const documentId = document.id ?? stableDocumentId(document);
85
+ return {
86
+ id: chunkId(documentId, document.chatId, chunkIndex),
87
+ content,
88
+ tokenCount,
89
+ metadataJson: JSON.stringify(buildRagChunkMetadata({ document, documentId, chunkIndex, tokenCount }))
90
+ };
91
+ }
92
+ function chunkId(documentId, chatId, chunkIndex) {
93
+ return chatId ? `${documentId}:${chatId}:${chunkIndex}` : `${documentId}:${chunkIndex}`;
94
+ }
95
+ function normalizeChunkOptions(options) {
96
+ const chunkSize = positiveInteger(options.chunkSize, DEFAULT_CHUNK_SIZE);
97
+ const requestedOverlap = nonNegativeInteger(options.chunkOverlap, DEFAULT_CHUNK_OVERLAP);
98
+ const chunkOverlap = Math.min(requestedOverlap, Math.max(0, chunkSize - 1));
99
+ return { chunkSize, chunkOverlap };
100
+ }
101
+ function positiveInteger(value, fallback) {
102
+ return Number.isInteger(value) && value !== undefined && value > 0 ? value : fallback;
103
+ }
104
+ function nonNegativeInteger(value, fallback) {
105
+ return Number.isInteger(value) && value !== undefined && value >= 0 ? value : fallback;
106
+ }
107
+ function stableDocumentId(document) {
108
+ return `doc-${fnv1a(`${document.title}\n${document.sourcePath ?? ''}\n${document.content}`)}`;
109
+ }
110
+ function fnv1a(value) {
111
+ let hash = 0x811c9dc5;
112
+ for (let i = 0; i < value.length; i++) {
113
+ hash ^= value.charCodeAt(i);
114
+ hash = Math.imul(hash, 0x01000193);
115
+ }
116
+ return (hash >>> 0).toString(16).padStart(8, '0');
117
+ }
@@ -0,0 +1,30 @@
1
+ import type { RagDocumentInput } from '../extract/types.ts';
2
+ export type RagChunkMetadata = {
3
+ readonly documentId: string;
4
+ readonly title: string;
5
+ readonly sourcePath: string | null;
6
+ readonly sourceUrl: string | null;
7
+ readonly mimeType: string | null;
8
+ readonly artifactId: string | null;
9
+ readonly attachmentId: string | null;
10
+ readonly messageId: string | null;
11
+ readonly chatId: string | null;
12
+ readonly chunkIndex: number;
13
+ readonly tokenCount: number;
14
+ readonly indexedAt: string;
15
+ };
16
+ export declare function attachmentDocumentId(attachmentId: string): string;
17
+ export declare function buildRagChunkMetadata(input: {
18
+ readonly document: RagDocumentInput;
19
+ readonly documentId: string;
20
+ readonly chunkIndex: number;
21
+ readonly tokenCount: number;
22
+ }): RagChunkMetadata;
23
+ export declare function parseRagMetadata(metadataJson: string | null): RagChunkMetadata | null;
24
+ export declare function hitMatchesFilters(hit: {
25
+ readonly metadataJson: string | null;
26
+ }, filters: {
27
+ readonly chatId?: string;
28
+ readonly documentIds?: ReadonlyArray<string>;
29
+ readonly attachmentIds?: ReadonlyArray<string>;
30
+ }, liveSourceIds?: ReadonlySet<string>): boolean;
@@ -0,0 +1,89 @@
1
+ const OPTIONAL_STRING_KEYS = [
2
+ 'sourcePath',
3
+ 'sourceUrl',
4
+ 'mimeType',
5
+ 'artifactId',
6
+ 'attachmentId',
7
+ 'messageId',
8
+ 'chatId'
9
+ ];
10
+ export function attachmentDocumentId(attachmentId) {
11
+ return `attachment-${attachmentId}`;
12
+ }
13
+ export function buildRagChunkMetadata(input) {
14
+ return {
15
+ documentId: input.documentId,
16
+ title: input.document.title,
17
+ sourcePath: input.document.sourcePath ?? null,
18
+ sourceUrl: input.document.sourceUrl ?? null,
19
+ mimeType: input.document.mimeType ?? null,
20
+ artifactId: input.document.artifactId ?? null,
21
+ attachmentId: input.document.attachmentId ?? null,
22
+ messageId: input.document.messageId ?? null,
23
+ chatId: input.document.chatId ?? null,
24
+ chunkIndex: input.chunkIndex,
25
+ tokenCount: input.tokenCount,
26
+ indexedAt: new Date().toISOString()
27
+ };
28
+ }
29
+ export function parseRagMetadata(metadataJson) {
30
+ if (!metadataJson)
31
+ return null;
32
+ let parsed;
33
+ try {
34
+ parsed = JSON.parse(metadataJson);
35
+ }
36
+ catch {
37
+ return null;
38
+ }
39
+ if (typeof parsed !== 'object' || parsed === null)
40
+ return null;
41
+ const value = parsed;
42
+ const { documentId, title, indexedAt, chunkIndex, tokenCount } = value;
43
+ if (typeof documentId !== 'string' || typeof title !== 'string')
44
+ return null;
45
+ if (typeof indexedAt !== 'string')
46
+ return null;
47
+ if (!isNumber(chunkIndex) || !isNumber(tokenCount))
48
+ return null;
49
+ for (const key of OPTIONAL_STRING_KEYS) {
50
+ const optional = value[key];
51
+ if (optional !== undefined && optional !== null && typeof optional !== 'string')
52
+ return null;
53
+ }
54
+ return {
55
+ documentId,
56
+ title,
57
+ sourcePath: stringOrNull(value.sourcePath),
58
+ sourceUrl: stringOrNull(value.sourceUrl),
59
+ mimeType: stringOrNull(value.mimeType),
60
+ artifactId: stringOrNull(value.artifactId),
61
+ attachmentId: stringOrNull(value.attachmentId),
62
+ messageId: stringOrNull(value.messageId),
63
+ chatId: stringOrNull(value.chatId),
64
+ chunkIndex,
65
+ tokenCount,
66
+ indexedAt
67
+ };
68
+ }
69
+ export function hitMatchesFilters(hit, filters, liveSourceIds) {
70
+ const metadata = parseRagMetadata(hit.metadataJson);
71
+ if (!metadata)
72
+ return false;
73
+ if (filters.chatId && metadata.chatId !== filters.chatId)
74
+ return false;
75
+ if (filters.documentIds?.length && !filters.documentIds.includes(metadata.documentId)) {
76
+ return false;
77
+ }
78
+ if (filters.attachmentIds?.length &&
79
+ (!metadata.attachmentId || !filters.attachmentIds.includes(metadata.attachmentId))) {
80
+ return false;
81
+ }
82
+ return !(liveSourceIds && metadata.attachmentId && !liveSourceIds.has(metadata.attachmentId));
83
+ }
84
+ function isNumber(value) {
85
+ return typeof value === 'number' && !Number.isNaN(value);
86
+ }
87
+ function stringOrNull(value) {
88
+ return typeof value === 'string' ? value : null;
89
+ }
@@ -0,0 +1,7 @@
1
+ export type RagToken = {
2
+ readonly text: string;
3
+ readonly start: number;
4
+ readonly end: number;
5
+ };
6
+ export declare function tokenizeForRag(text: string): ReadonlyArray<RagToken>;
7
+ export declare function estimateRagTokens(text: string): number;
@@ -0,0 +1,18 @@
1
+ const TOKEN_PATTERN = /'s|'t|'re|'ve|'m|'ll|'d| ?[\p{L}]+| ?[\p{N}]+| ?[^\s\p{L}\p{N}]+|\s+(?!\S)|\s+/gu;
2
+ export function tokenizeForRag(text) {
3
+ const tokens = [];
4
+ TOKEN_PATTERN.lastIndex = 0;
5
+ let match = TOKEN_PATTERN.exec(text);
6
+ while (match) {
7
+ tokens.push({
8
+ text: match[0],
9
+ start: match.index,
10
+ end: match.index + match[0].length
11
+ });
12
+ match = TOKEN_PATTERN.exec(text);
13
+ }
14
+ return tokens;
15
+ }
16
+ export function estimateRagTokens(text) {
17
+ return tokenizeForRag(text).length;
18
+ }
@@ -0,0 +1,11 @@
1
+ export declare const RAG_ACCEPT_EXTENSIONS: readonly [".pdf", ".txt", ".md", ".markdown", ".rtf", ".html", ".htm", ".xhtml", ".log", ".json", ".jsonl", ".csv", ".tsv", ".xml", ".yaml", ".yml"];
2
+ export declare const EXEC_ATTACHABLE_EXTENSIONS: readonly [".docx", ".xlsx", ".pptx"];
3
+ export declare const EXEC_ATTACHABLE_MIME_TYPES: readonly ["application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "application/vnd.openxmlformats-officedocument.presentationml.presentation"];
4
+ export declare function isExecAttachableDocument(input: {
5
+ readonly fileName?: string;
6
+ readonly mimeType?: string;
7
+ }): boolean;
8
+ export declare function isKnownUnsupportedDocument(input: {
9
+ readonly fileName?: string;
10
+ readonly mimeType?: string;
11
+ }): boolean;
@@ -0,0 +1,94 @@
1
+ function extensionForName(fileName) {
2
+ if (!fileName) {
3
+ return null;
4
+ }
5
+ const index = fileName.lastIndexOf('.');
6
+ return index >= 0 ? fileName.slice(index).toLowerCase() : null;
7
+ }
8
+ function normalizeMimeType(mimeType) {
9
+ return mimeType?.split(';')[0]?.trim().toLowerCase() ?? '';
10
+ }
11
+ export const RAG_ACCEPT_EXTENSIONS = [
12
+ '.pdf',
13
+ '.txt',
14
+ '.md',
15
+ '.markdown',
16
+ '.rtf',
17
+ '.html',
18
+ '.htm',
19
+ '.xhtml',
20
+ '.log',
21
+ '.json',
22
+ '.jsonl',
23
+ '.csv',
24
+ '.tsv',
25
+ '.xml',
26
+ '.yaml',
27
+ '.yml'
28
+ ];
29
+ const KNOWN_UNSUPPORTED_EXTENSIONS = new Set([
30
+ '.7z',
31
+ '.apk',
32
+ '.avi',
33
+ '.bin',
34
+ '.bz2',
35
+ '.dmg',
36
+ '.doc',
37
+ '.epub',
38
+ '.exe',
39
+ '.gz',
40
+ '.iso',
41
+ '.key',
42
+ '.mkv',
43
+ '.mov',
44
+ '.numbers',
45
+ '.odp',
46
+ '.ods',
47
+ '.odt',
48
+ '.pages',
49
+ '.ppt',
50
+ '.rar',
51
+ '.tar',
52
+ '.tgz',
53
+ '.xls',
54
+ '.zip'
55
+ ]);
56
+ const KNOWN_UNSUPPORTED_MIME_PREFIXES = [
57
+ 'video/',
58
+ 'application/zip',
59
+ 'application/x-tar',
60
+ 'application/gzip',
61
+ 'application/x-7z',
62
+ 'application/x-rar',
63
+ 'application/vnd.openxmlformats-officedocument',
64
+ 'application/vnd.ms-',
65
+ 'application/vnd.oasis.opendocument',
66
+ 'application/msword',
67
+ 'application/epub'
68
+ ];
69
+ export const EXEC_ATTACHABLE_EXTENSIONS = ['.docx', '.xlsx', '.pptx'];
70
+ export const EXEC_ATTACHABLE_MIME_TYPES = [
71
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
72
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
73
+ 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
74
+ ];
75
+ const EXEC_ATTACHABLE_EXTENSION_SET = new Set(EXEC_ATTACHABLE_EXTENSIONS);
76
+ const EXEC_ATTACHABLE_MIME_SET = new Set(EXEC_ATTACHABLE_MIME_TYPES);
77
+ export function isExecAttachableDocument(input) {
78
+ const extension = extensionForName(input.fileName);
79
+ if (extension && EXEC_ATTACHABLE_EXTENSION_SET.has(extension)) {
80
+ return true;
81
+ }
82
+ return EXEC_ATTACHABLE_MIME_SET.has(normalizeMimeType(input.mimeType));
83
+ }
84
+ export function isKnownUnsupportedDocument(input) {
85
+ if (isExecAttachableDocument(input)) {
86
+ return false;
87
+ }
88
+ const extension = extensionForName(input.fileName);
89
+ if (extension && KNOWN_UNSUPPORTED_EXTENSIONS.has(extension)) {
90
+ return true;
91
+ }
92
+ const mimeType = normalizeMimeType(input.mimeType);
93
+ return KNOWN_UNSUPPORTED_MIME_PREFIXES.some((prefix) => mimeType.startsWith(prefix));
94
+ }
@@ -0,0 +1 @@
1
+ export declare function extractCsvText(source: string, delimiter?: string): string;
@@ -0,0 +1,117 @@
1
+ const FIELD_SEPARATOR = ' | ';
2
+ const KEY_VALUE_SEPARATOR = ': ';
3
+ const DEFAULT_DELIMITER = ',';
4
+ export function extractCsvText(source, delimiter = DEFAULT_DELIMITER) {
5
+ const rows = parseCsv(source, delimiter);
6
+ if (rows.length === 0)
7
+ return '';
8
+ const headerRow = rows[0];
9
+ if (!headerRow || headerRow.length === 0)
10
+ return '';
11
+ const headers = headerRow
12
+ .map(normalizeCell)
13
+ .map((value, index) => (value.length > 0 ? value : `column_${index + 1}`));
14
+ const dataRows = rows.slice(1);
15
+ if (dataRows.length === 0 || headers.length < 2) {
16
+ return formatFlat(rows);
17
+ }
18
+ const headerLine = `Columns: ${headers.join(', ')}`;
19
+ const formatted = dataRows
20
+ .filter((row) => row.some((cell) => cell.trim().length > 0))
21
+ .map((row) => formatRow(headers, row));
22
+ return [headerLine, ...formatted].join('\n').trim();
23
+ }
24
+ function formatFlat(rows) {
25
+ return rows
26
+ .map((row) => row
27
+ .map(normalizeCell)
28
+ .filter((cell) => cell.length > 0)
29
+ .join(', '))
30
+ .filter((line) => line.length > 0)
31
+ .join('\n')
32
+ .trim();
33
+ }
34
+ function formatRow(headers, row) {
35
+ const parts = [];
36
+ for (let index = 0; index < headers.length; index++) {
37
+ const value = normalizeCell(row[index] ?? '');
38
+ if (value.length === 0)
39
+ continue;
40
+ const header = headers[index] ?? `column_${index + 1}`;
41
+ parts.push(`${header}${KEY_VALUE_SEPARATOR}${value}`);
42
+ }
43
+ return parts.join(FIELD_SEPARATOR);
44
+ }
45
+ function normalizeCell(value) {
46
+ return value.replace(/\s+/g, ' ').trim();
47
+ }
48
+ function parseCsv(source, delimiter) {
49
+ const state = {
50
+ rows: [],
51
+ current: [],
52
+ field: '',
53
+ inQuotes: false,
54
+ index: 0,
55
+ delimiter
56
+ };
57
+ while (state.index < source.length) {
58
+ if (state.inQuotes) {
59
+ consumeQuotedChar(state, source);
60
+ }
61
+ else {
62
+ consumeUnquotedChar(state, source);
63
+ }
64
+ }
65
+ flushFinalField(state);
66
+ return state.rows.filter((row) => row.length > 1 || (row[0] ?? '').length > 0);
67
+ }
68
+ function consumeQuotedChar(state, source) {
69
+ const char = source[state.index];
70
+ if (char !== '"') {
71
+ state.field += char;
72
+ state.index += 1;
73
+ return;
74
+ }
75
+ if (source[state.index + 1] === '"') {
76
+ state.field += '"';
77
+ state.index += 2;
78
+ return;
79
+ }
80
+ state.inQuotes = false;
81
+ state.index += 1;
82
+ }
83
+ function consumeUnquotedChar(state, source) {
84
+ const char = source[state.index];
85
+ if (char === '"' && state.field.length === 0) {
86
+ state.inQuotes = true;
87
+ state.index += 1;
88
+ return;
89
+ }
90
+ if (char === state.delimiter) {
91
+ finishField(state);
92
+ state.index += 1;
93
+ return;
94
+ }
95
+ if (char === '\n' || char === '\r') {
96
+ finishRow(state);
97
+ state.index += char === '\r' && source[state.index + 1] === '\n' ? 2 : 1;
98
+ return;
99
+ }
100
+ state.field += char;
101
+ state.index += 1;
102
+ }
103
+ function finishField(state) {
104
+ state.current.push(state.field);
105
+ state.field = '';
106
+ }
107
+ function finishRow(state) {
108
+ finishField(state);
109
+ state.rows.push(state.current);
110
+ state.current = [];
111
+ }
112
+ function flushFinalField(state) {
113
+ if (state.field.length === 0 && state.current.length === 0)
114
+ return;
115
+ state.current.push(state.field);
116
+ state.rows.push(state.current);
117
+ }
@@ -0,0 +1,22 @@
1
+ export declare const RAG_DOCUMENT_KIND: {
2
+ readonly pdf: "pdf";
3
+ readonly office: "office";
4
+ readonly rtf: "rtf";
5
+ readonly html: "html";
6
+ readonly csv: "csv";
7
+ readonly tsv: "tsv";
8
+ readonly text: "text";
9
+ readonly unsupported: "unsupported";
10
+ };
11
+ export type RagDocumentKind = (typeof RAG_DOCUMENT_KIND)[keyof typeof RAG_DOCUMENT_KIND];
12
+ export declare const RAG_ACCEPT_EXTENSIONS: readonly [".pdf", ".docx", ".doc", ".docm", ".dot", ".dotx", ".odt", ".fodt", ".ott", ".txt", ".md", ".markdown", ".rtf", ".html", ".htm", ".xhtml", ".log", ".json", ".jsonl", ".csv", ".tsv", ".xml", ".yaml", ".yml"];
13
+ export declare function classifyRagDocument(input: {
14
+ readonly fileName?: string;
15
+ readonly mimeType?: string;
16
+ readonly bytes?: Uint8Array;
17
+ }): RagDocumentKind;
18
+ export declare function isSupportedRagDocument(input: {
19
+ readonly fileName?: string;
20
+ readonly mimeType?: string;
21
+ readonly bytes?: Uint8Array;
22
+ }): boolean;
@@ -0,0 +1,152 @@
1
+ export const RAG_DOCUMENT_KIND = {
2
+ pdf: 'pdf',
3
+ office: 'office',
4
+ rtf: 'rtf',
5
+ html: 'html',
6
+ csv: 'csv',
7
+ tsv: 'tsv',
8
+ text: 'text',
9
+ unsupported: 'unsupported'
10
+ };
11
+ const PDF_EXTENSIONS = new Set(['.pdf']);
12
+ const OFFICE_EXTENSIONS = new Set([
13
+ '.docx',
14
+ '.doc',
15
+ '.docm',
16
+ '.dot',
17
+ '.dotx',
18
+ '.odt',
19
+ '.fodt',
20
+ '.ott'
21
+ ]);
22
+ const OFFICE_MIME_TYPES = new Set([
23
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
24
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
25
+ 'application/msword',
26
+ 'application/vnd.oasis.opendocument.text',
27
+ 'application/vnd.oasis.opendocument.text-template'
28
+ ]);
29
+ const RTF_EXTENSIONS = new Set(['.rtf']);
30
+ const HTML_EXTENSIONS = new Set(['.html', '.htm', '.xhtml']);
31
+ const CSV_EXTENSIONS = new Set(['.csv']);
32
+ const TSV_EXTENSIONS = new Set(['.tsv']);
33
+ const TEXT_EXTENSIONS = new Set([
34
+ '.json',
35
+ '.jsonl',
36
+ '.log',
37
+ '.markdown',
38
+ '.md',
39
+ '.mdown',
40
+ '.mkd',
41
+ '.text',
42
+ '.txt',
43
+ '.xml',
44
+ '.yaml',
45
+ '.yml'
46
+ ]);
47
+ const TEXT_MIME_TYPES = new Set([
48
+ 'application/json',
49
+ 'application/ld+json',
50
+ 'application/rtf',
51
+ 'application/x-ndjson',
52
+ 'application/xml',
53
+ 'application/yaml',
54
+ 'text/rtf'
55
+ ]);
56
+ export const RAG_ACCEPT_EXTENSIONS = [
57
+ '.pdf',
58
+ '.docx',
59
+ '.doc',
60
+ '.docm',
61
+ '.dot',
62
+ '.dotx',
63
+ '.odt',
64
+ '.fodt',
65
+ '.ott',
66
+ '.txt',
67
+ '.md',
68
+ '.markdown',
69
+ '.rtf',
70
+ '.html',
71
+ '.htm',
72
+ '.xhtml',
73
+ '.log',
74
+ '.json',
75
+ '.jsonl',
76
+ '.csv',
77
+ '.tsv',
78
+ '.xml',
79
+ '.yaml',
80
+ '.yml'
81
+ ];
82
+ export function classifyRagDocument(input) {
83
+ const extension = extensionForName(input.fileName);
84
+ const mimeType = normalizeMimeType(input.mimeType);
85
+ const explicit = kindFromExtension(extension) ?? kindFromMimeType(mimeType);
86
+ if (explicit)
87
+ return explicit;
88
+ return input.bytes && looksLikeText(input.bytes)
89
+ ? RAG_DOCUMENT_KIND.text
90
+ : RAG_DOCUMENT_KIND.unsupported;
91
+ }
92
+ export function isSupportedRagDocument(input) {
93
+ return classifyRagDocument(input) !== RAG_DOCUMENT_KIND.unsupported;
94
+ }
95
+ function extensionForName(fileName) {
96
+ if (!fileName)
97
+ return null;
98
+ const index = fileName.lastIndexOf('.');
99
+ return index >= 0 ? fileName.slice(index).toLowerCase() : null;
100
+ }
101
+ function normalizeMimeType(mimeType) {
102
+ return mimeType?.split(';')[0]?.trim().toLowerCase() ?? '';
103
+ }
104
+ function kindFromExtension(extension) {
105
+ if (!extension)
106
+ return null;
107
+ if (PDF_EXTENSIONS.has(extension))
108
+ return RAG_DOCUMENT_KIND.pdf;
109
+ if (OFFICE_EXTENSIONS.has(extension))
110
+ return RAG_DOCUMENT_KIND.office;
111
+ if (RTF_EXTENSIONS.has(extension))
112
+ return RAG_DOCUMENT_KIND.rtf;
113
+ if (HTML_EXTENSIONS.has(extension))
114
+ return RAG_DOCUMENT_KIND.html;
115
+ if (CSV_EXTENSIONS.has(extension))
116
+ return RAG_DOCUMENT_KIND.csv;
117
+ if (TSV_EXTENSIONS.has(extension))
118
+ return RAG_DOCUMENT_KIND.tsv;
119
+ return TEXT_EXTENSIONS.has(extension) ? RAG_DOCUMENT_KIND.text : null;
120
+ }
121
+ function kindFromMimeType(mimeType) {
122
+ if (mimeType === 'application/pdf')
123
+ return RAG_DOCUMENT_KIND.pdf;
124
+ if (OFFICE_MIME_TYPES.has(mimeType))
125
+ return RAG_DOCUMENT_KIND.office;
126
+ if (mimeType === 'application/rtf' || mimeType === 'text/rtf')
127
+ return RAG_DOCUMENT_KIND.rtf;
128
+ if (mimeType === 'text/html' || mimeType === 'application/xhtml+xml') {
129
+ return RAG_DOCUMENT_KIND.html;
130
+ }
131
+ if (mimeType === 'text/csv' || mimeType === 'application/csv')
132
+ return RAG_DOCUMENT_KIND.csv;
133
+ if (mimeType === 'text/tab-separated-values')
134
+ return RAG_DOCUMENT_KIND.tsv;
135
+ return mimeType.startsWith('text/') || TEXT_MIME_TYPES.has(mimeType)
136
+ ? RAG_DOCUMENT_KIND.text
137
+ : null;
138
+ }
139
+ function looksLikeText(bytes) {
140
+ const length = Math.min(bytes.byteLength, 4096);
141
+ if (length === 0)
142
+ return true;
143
+ let suspicious = 0;
144
+ for (let index = 0; index < length; index++) {
145
+ const byte = bytes[index] ?? 0;
146
+ if (byte === 0)
147
+ return false;
148
+ if (byte < 32 && byte !== 9 && byte !== 10 && byte !== 12 && byte !== 13)
149
+ suspicious++;
150
+ }
151
+ return suspicious / length < 0.02;
152
+ }
@@ -0,0 +1,17 @@
1
+ import type { AbortSignal } from 'bare-abort-controller';
2
+ import { type RagDocumentInput, type RagFileInput } from './types.ts';
3
+ export type RagTextExtractor = (bytes: Uint8Array) => Promise<string>;
4
+ export type RagFileExtractor = (bytes: Uint8Array, fileName: string, opts?: {
5
+ readonly signal?: AbortSignal;
6
+ }) => Promise<string>;
7
+ export type RagExtractors = {
8
+ readonly pdf?: RagTextExtractor;
9
+ readonly office?: RagFileExtractor;
10
+ };
11
+ export type RagExtractOptions = {
12
+ readonly extractors?: RagExtractors;
13
+ readonly signal?: AbortSignal;
14
+ };
15
+ export declare function extractRagDocumentFromBytes(input: RagFileInput & {
16
+ readonly bytes: Uint8Array;
17
+ }, opts?: RagExtractOptions): Promise<RagDocumentInput>;